From 169619db8c99a3653b797939f44bf069834c51ca Mon Sep 17 00:00:00 2001 From: Ondrej Samohel Date: Fri, 9 Jul 2021 18:26:24 +0200 Subject: [PATCH 001/120] =?UTF-8?q?=E2=9A=99=EF=B8=8Fmerge=20of=20BigRoys?= =?UTF-8?q?=20expected=20files=20overhaul?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- openpype/hosts/maya/api/lib_renderproducts.py | 1031 +++++++++++++++++ openpype/hosts/maya/api/lib_rendersetup.py | 346 ++++++ .../maya/plugins/publish/collect_render.py | 20 +- 3 files changed, 1393 insertions(+), 4 deletions(-) create mode 100644 openpype/hosts/maya/api/lib_renderproducts.py create mode 100644 openpype/hosts/maya/api/lib_rendersetup.py diff --git a/openpype/hosts/maya/api/lib_renderproducts.py b/openpype/hosts/maya/api/lib_renderproducts.py new file mode 100644 index 0000000000..76156e3bb3 --- /dev/null +++ b/openpype/hosts/maya/api/lib_renderproducts.py @@ -0,0 +1,1031 @@ +# -*- coding: utf-8 -*- +"""Module handling expected render output from Maya. + +This module is used in :mod:`collect_render` and :mod:`collect_vray_scene`. + +Note: + To implement new renderer, just create new class inheriting from + :class:`ARenderProducts` and add it to :func:`RenderProducts.get()`. + +Attributes: + R_SINGLE_FRAME (:class:`re.Pattern`): Find single frame number. + R_FRAME_RANGE (:class:`re.Pattern`): Find frame range. + R_FRAME_NUMBER (:class:`re.Pattern`): Find frame number in string. + R_LAYER_TOKEN (:class:`re.Pattern`): Find layer token in image prefixes. + R_AOV_TOKEN (:class:`re.Pattern`): Find AOV token in image prefixes. + R_SUBSTITUTE_AOV_TOKEN (:class:`re.Pattern`): Find and substitute AOV token + in image prefixes. + R_REMOVE_AOV_TOKEN (:class:`re.Pattern`): Find and remove AOV token in + image prefixes. + R_CLEAN_FRAME_TOKEN (:class:`re.Pattern`): Find and remove unfilled + Renderman frame token in image prefix. + R_CLEAN_EXT_TOKEN (:class:`re.Pattern`): Find and remove unfilled Renderman + extension token in image prefix. + R_SUBSTITUTE_LAYER_TOKEN (:class:`re.Pattern`): Find and substitute render + layer token in image prefixes. + R_SUBSTITUTE_SCENE_TOKEN (:class:`re.Pattern`): Find and substitute scene + token in image prefixes. + R_SUBSTITUTE_CAMERA_TOKEN (:class:`re.Pattern`): Find and substitute camera + token in image prefixes. + IMAGE_PREFIXES (dict): Mapping between renderers and their respective + image prefix attribute names. + +Thanks: + Roy Nieterau (BigRoy) / Colorbleed for overhaul of original + *expected_files*. + +""" + +import logging +import re +import os +from abc import ABCMeta, abstractmethod + +import six +import attr + +from . import lib +from . import lib_rendersetup + +from maya import cmds, mel + +log = logging.getLogger(__name__) + +R_SINGLE_FRAME = re.compile(r"^(-?)\d+$") +R_FRAME_RANGE = re.compile(r"^(?P(-?)\d+)-(?P(-?)\d+)$") +R_FRAME_NUMBER = re.compile(r".+\.(?P[0-9]+)\..+") +R_LAYER_TOKEN = re.compile( + r".*((?:%l)|(?:)|(?:)).*", re.IGNORECASE +) +R_AOV_TOKEN = re.compile(r".*%a.*|.*.*|.*.*", re.IGNORECASE) +R_SUBSTITUTE_AOV_TOKEN = re.compile(r"%a||", re.IGNORECASE) +R_REMOVE_AOV_TOKEN = re.compile( + r"_%a|\.%a|_|\.|_|\.", re.IGNORECASE) +# to remove unused renderman tokens +R_CLEAN_FRAME_TOKEN = re.compile(r"\.?\.?", re.IGNORECASE) +R_CLEAN_EXT_TOKEN = re.compile(r"\.?\.?", re.IGNORECASE) + +R_SUBSTITUTE_LAYER_TOKEN = re.compile( + r"%l||", re.IGNORECASE +) +R_SUBSTITUTE_CAMERA_TOKEN = re.compile(r"%c|", re.IGNORECASE) +R_SUBSTITUTE_SCENE_TOKEN = re.compile(r"%s|", re.IGNORECASE) + +# not sure about the renderman image prefix +IMAGE_PREFIXES = { + "vray": "vraySettings.fileNamePrefix", + "arnold": "defaultRenderGlobals.imageFilePrefix", + "renderman": "rmanGlobals.imageFileFormat", + "redshift": "defaultRenderGlobals.imageFilePrefix", +} + + +@attr.s +class LayerMetadata(object): + """Data class for Render Layer metadata.""" + frameStart = attr.ib() + frameEnd = attr.ib() + cameras = attr.ib() + sceneName = attr.ib() + layerName = attr.ib() + renderer = attr.ib() + defaultExt = attr.ib() + filePrefix = attr.ib() + frameStep = attr.ib(default=1) + padding = attr.ib(default=4) + + # Render Products + products = attr.ib(init=False, default=attr.Factory(list)) + + +@attr.s +class RenderProduct(object): + """Describes an image or other file-like artifact produced by a render. + + Warning: + This currently does NOT return as a product PER render camera. + A single Render Product will generate files per camera. E.g. with two + cameras each render product generates two sequences on disk assuming + the file path prefix correctly uses the tokens. + + """ + productName = attr.ib() + ext = attr.ib() # extension + aov = attr.ib(default=None) # source aov + driver = attr.ib(default=None) # source driver + multipart = attr.ib(default=False) # multichannel file + + +def get(layer, render_instance=None): + # type: (str, object) -> ARenderProducts + """Get render details and products for given renderer and render layer. + + Args: + layer (str): Name of render layer + render_instance (pyblish.api.Instance): Publish instance. + If not provided an empty mock instance is used. + + Returns: + ARenderProducts: The correct RenderProducts instance for that + renderlayer. + + Raises: + :exc:`UnsupportedRendererException`: If requested renderer + is not supported. It needs to be implemented by extending + :class:`ARenderProducts` and added to this methods ``if`` + statement. + + """ + + if render_instance is None: + # For now produce a mock instance + class Instance(object): + data = {} + render_instance = Instance() + + renderer_name = lib.get_attr_in_layer( + "defaultRenderGlobals.currentRenderer", + layer=layer + ) + + renderer = { + "arnold": RenderProductsArnold, + "vray": RenderProductsVray, + "redshift": RenderProductsRedshift, + "renderman": RenderProductsRenderman + }.get(renderer_name.lower(), None) + if renderer is None: + raise UnsupportedRendererException( + "unsupported {}".format(renderer_name) + ) + + return renderer(layer, render_instance) + + +@six.add_metaclass(ABCMeta) +class ARenderProducts: + """Abstract class with common code for all renderers. + + Attributes: + renderer (str): name of renderer. + + """ + + renderer = None + + def __init__(self, layer, render_instance): + """Constructor.""" + self.layer = layer + self.render_instance = render_instance + self.multipart = False + + # Initialize + self.layer_data = self._get_layer_data() + self.layer_data.products = self.get_render_products() + + @abstractmethod + def get_render_products(self): + """To be implemented by renderer class. + + This should return a list of RenderProducts. + + Returns: + list: List of RenderProduct + + """ + + @staticmethod + def sanitize_camera_name(camera): + # type: (str) -> str + """Sanitize camera name. + + Remove Maya illegal characters from camera name. + + Args: + camera (str): Maya camera name. + + Returns: + (str): sanitized camera name + + Example: + >>> ARenderProducts.sanizite_camera_name('test:camera_01') + test_camera_01 + + """ + return re.sub('[^0-9a-zA-Z_]+', '_', camera) + + def get_renderer_prefix(self): + # type: () -> str + """Return prefix for specific renderer. + + This is for most renderers the same and can be overridden if needed. + + Returns: + str: String with image prefix containing tokens + + Raises: + :exc:`UnsupportedRendererException`: If we requested image + prefix for renderer we know nothing about. + See :data:`IMAGE_PREFIXES` for mapping of renderers and + image prefixes. + + """ + try: + file_prefix_attr = IMAGE_PREFIXES[self.renderer] + except KeyError: + raise UnsupportedRendererException( + "Unsupported renderer {}".format(self.renderer) + ) + + file_prefix = self._get_attr(file_prefix_attr) + + if not file_prefix: + # Fall back to scene name by default + log.debug("Image prefix not set, using ") + file_prefix = "" + + return file_prefix + + def get_render_attribute(self, attribute): + """Get attribute from render options. + + Args: + attribute (str): name of attribute to be looked up. + + Returns: + Attribute value + + """ + return self._get_attr("defaultRenderGlobals", attribute) + + def _get_attr(self, node_attr, attr=None): + """Return the value of the attribute in the renderlayer + + For readability this allows passing in the attribute in two ways. + + As a single argument: + _get_attr("node.attr") + Or as two arguments: + _get_attr("node", "attr") + + Returns: + Value of the attribute inside the layer this instance is set to. + + """ + + if attr is None: + plug = node_attr + else: + plug = "{}.{}".format(node_attr, attr) + + return lib.get_attr_in_layer(plug, layer=self.layer) + + def _get_layer_data(self): + # type: () -> LayerMetadata + # ______________________________________________ + # ____________________/ ____________________________________________/ + # 1 - get scene name /__________________/ + # ____________________/ + _, scene_basename = os.path.split(cmds.file(q=True, loc=True)) + scene_name, _ = os.path.splitext(scene_basename) + + file_prefix = self.get_renderer_prefix() + + # If the Render Layer belongs to a Render Setup layer then the + # output name is based on the Render Setup Layer name without + # the `rs_` prefix. + layer_name = self.layer + rs_layer = lib_rendersetup.get_rendersetup_layer(layer_name) + if rs_layer: + layer_name = rs_layer + + if self.layer == "defaultRenderLayer": + # defaultRenderLayer renders as masterLayer + layer_name = "masterLayer" + + # todo: Support Custom Frames sequences 0,5-10,100-120 + # Deadline allows submitting renders with a custom frame list + # to support those cases we might want to allow 'custom frames' + # to be overridden to `ExpectFiles` class? + layer_data = LayerMetadata( + frameStart=int(self.get_render_attribute("startFrame")), + frameEnd=int(self.get_render_attribute("endFrame")), + frameStep=int(self.get_render_attribute("byFrameStep")), + padding=int(self.get_render_attribute("extensionPadding")), + # if we have token in prefix path we'll expect output for + # every renderable camera in layer. + cameras=self.get_renderable_cameras(), + sceneName=scene_name, + layerName=layer_name, + renderer=self.renderer, + defaultExt=self._get_attr("defaultRenderGlobals.imfPluginKey"), + filePrefix=file_prefix + ) + return layer_data + + def _generate_file_sequence( + self, layer_data, + force_aov_name=None, + force_ext=None, + force_cameras=None): + # type: (LayerMetadata, str, str, list) -> list + expected_files = [] + cameras = force_cameras if force_cameras else layer_data.cameras + ext = force_ext or layer_data.defaultExt + for cam in cameras: + file_prefix = layer_data.filePrefix + mappings = ( + (R_SUBSTITUTE_SCENE_TOKEN, layer_data.sceneName), + (R_SUBSTITUTE_LAYER_TOKEN, layer_data.layerName), + (R_SUBSTITUTE_CAMERA_TOKEN, self.sanitize_camera_name(cam)), + # this is required to remove unfilled aov token, for example + # in Redshift + (R_REMOVE_AOV_TOKEN, "") if not force_aov_name \ + else (R_SUBSTITUTE_AOV_TOKEN, force_aov_name), + + (R_CLEAN_FRAME_TOKEN, ""), + (R_CLEAN_EXT_TOKEN, ""), + ) + + for regex, value in mappings: + file_prefix = re.sub(regex, value, file_prefix) + + for frame in range( + int(layer_data.frameStart), + int(layer_data.frameEnd) + 1, + int(layer_data.frameStep), + ): + frame_str = str(frame).rjust(layer_data.padding, "0") + expected_files.append( + "{}.{}.{}".format(file_prefix, frame_str, ext) + ) + return expected_files + + def get_files(self, product, camera): + # type: (RenderProduct, str) -> list + """Return list of expected files. + + It will translate render token strings ('', etc.) to + their values. This task is tricky as every renderer deals with this + differently. That's why we expose `get_files` as a method on the + Renderer class so it can be overridden for complex cases. + + Args: + product (RenderProduct): Render product to be used for file + generation. + camera (str): Camera name. + + Returns: + List of files + + """ + return self._generate_file_sequence( + self.layer_data, + force_aov_name=product.productName, + force_ext=product.ext, + force_cameras=[camera] + ) + + def get_renderable_cameras(self): + # type: () -> list + """Get all renderable camera transforms. + + Returns: + list: list of renderable cameras. + + """ + + renderable_cameras = [ + cam for cam in cmds.ls(cameras=True) + if self._get_attr(cam, "renderable") + ] + + # The output produces a sanitized name for using its + # shortest unique path of the transform so we'll return + # at least that unique path. This could include a parent + # name too when two cameras have the same name but are + # in a different hierarchy, e.g. "group1|cam" and "group2|cam" + def get_name(camera): + return cmds.ls(cmds.listRelatives(camera, + parent=True, + fullPath=True))[0] + + return [get_name(cam) for cam in renderable_cameras] + + +class RenderProductsArnold(ARenderProducts): + """Render products for Arnold renderer. + + References: + mtoa.utils.getFileName() + mtoa.utils.ui.common.updateArnoldTargetFilePreview() + + Notes: + - Output Denoising AOVs are not currently included. + - Only Frame/Animation ext: name.#.ext is supported. + - Use Custom extension is not supported. + - and tokens not tested + - With Merge AOVs but in File Name Prefix Arnold + will still NOT merge the aovs. This class correctly resolves + it - but user should be aware. + - File Path Prefix overrides per AOV driver are not implemented + + Attributes: + aiDriverExtension (dict): Arnold AOV driver extension mapping. + Is there a better way? + renderer (str): name of renderer. + + """ + renderer = "arnold" + aiDriverExtension = { + "jpeg": "jpg", + "exr": "exr", + "deepexr": "exr", + "png": "png", + "tiff": "tif", + "mtoa_shaders": "ass", # TODO: research what those last two should be + "maya": "", + } + + def get_renderer_prefix(self): + + prefix = super(RenderProductsArnold, self).get_renderer_prefix() + merge_aovs = self._get_attr("defaultArnoldDriver.mergeAOVs") + if not merge_aovs and "" not in prefix.lower(): + # When Merge AOVs is disabled and token not present + # then Arnold prepends / to the output path. + # todo: It's untested what happens if AOV driver has an + # an explicit override path prefix. + prefix = "/" + prefix + + return prefix + + def _get_aov_render_products(self, aov): + """Return all render products for the AOV""" + + products = list() + aov_name = self._get_attr(aov, "name") + ai_drivers = cmds.listConnections("{}.outputs".format(aov), + source=True, + destination=False, + type="aiAOVDriver") or [] + + for ai_driver in ai_drivers: + # todo: check aiAOVDriver.prefix as it could have + # a custom path prefix set for this driver + + # Skip Drivers set only for GUI + # 0: GUI, 1: Batch, 2: GUI and Batch + output_mode = self._get_attr(ai_driver, "outputMode") + if output_mode == 0: # GUI only + log.warning("%s has Output Mode set to GUI, " + "skipping...", ai_driver) + continue + + ai_translator = self._get_attr(ai_driver, "aiTranslator") + try: + ext = self.aiDriverExtension[ai_translator] + except KeyError: + raise AOVError( + "Unrecognized arnold driver format " + "for AOV - {}".format(aov_name) + ) + + # If aov RGBA is selected, arnold will translate it to `beauty` + name = aov_name + if name == "RGBA": + name = "beauty" + + # Support Arnold light groups for AOVs + # Global AOV: When disabled the main layer is not written: `{pass}` + # All Light Groups: When enabled, a `{pass}_lgroups` file is + # written and is always merged into a single file + # Light Groups List: When set, a product per light group is written + # e.g. {pass}_front, {pass}_rim + global_aov = self._get_attr(aov, "globalAov") + if global_aov: + product = RenderProduct(productName=name, + ext=ext, + aov=aov_name, + driver=ai_driver) + products.append(product) + + all_light_groups = self._get_attr(aov, "lightGroups") + if all_light_groups: + # All light groups is enabled. A single multipart Render Product + product = RenderProduct(productName=name + "_lgroups", + ext=ext, + aov=aov_name, + driver=ai_driver, + # Always multichannel output + multipart=True) + products.append(product) + else: + value = self._get_attr(aov, "lightGroupsList") + if not value: + continue + selected_light_groups = value.strip().split() + for light_group in selected_light_groups: + # Render Product per selected light group + aov_light_group_name = "{}_{}".format(name, light_group) + product = RenderProduct(productName=aov_light_group_name, + aov=aov_name, + driver=ai_driver, + ext=ext) + products.append(product) + + return products + + def get_render_products(self): + """Get all AOVs. + + See Also: + :func:`ARenderProducts.get_render_products()` + + Raises: + :class:`AOVError`: If AOV cannot be determined. + + """ + + if not cmds.ls("defaultArnoldRenderOptions", type="aiOptions"): + # this occurs when Render Setting windows was not opened yet. In + # such case there are no Arnold options created so query for AOVs + # will fail. We terminate here as there are no AOVs specified then. + # This state will most probably fail later on some Validator + # anyway. + return [] + + default_ext = self._get_attr("defaultRenderGlobals.imfPluginKey") + beauty_product = RenderProduct(productName="beauty", + ext=default_ext, + driver="defaultArnoldDriver") + + # AOVs > Legacy > Maya Render View > Mode + aovs_enabled = bool( + self._get_attr("defaultArnoldRenderOptions.aovMode") + ) + if not aovs_enabled: + return [beauty_product] + + # Common > File Output > Merge AOVs or + # We don't need to check for Merge AOVs due to overridden + # `get_renderer_prefix()` behavior which forces + has_renderpass_token = ( + "" in self.layer_data.filePrefix.lower() + ) + if not has_renderpass_token: + beauty_product.multipart = True + return [beauty_product] + + # AOVs are set to be rendered separately. We should expect + # token in path. + # handle aovs from references + use_ref_aovs = self.render_instance.data.get( + "useReferencedAovs", False) or False + + aovs = cmds.ls(type="aiAOV") + if not use_ref_aovs: + ref_aovs = cmds.ls(type="aiAOV", referencedNodes=True) + aovs = list(set(aovs) - set(ref_aovs)) + + products = [] + + # Append the AOV products + for aov in aovs: + enabled = self._get_attr(aov, "enabled") + if not enabled: + continue + + # For now stick to the legacy output format. + aov_products = self._get_aov_render_products(aov) + products.extend(aov_products) + + if not any(product.aov == "RGBA" for product in products): + # Append default 'beauty' as this is arnolds default. + # However, it is excluded whenever a RGBA pass is enabled. + # For legibility add the beauty layer as first entry + products.insert(0, beauty_product) + + # TODO: Output Denoising AOVs? + + return products + + +class RenderProductsVray(ARenderProducts): + """Expected files for V-Ray renderer. + + Notes: + - "Disabled" animation incorrectly returns frames in filename + - "Renumber Frames" is not supported + + Reference: + vrayAddRenderElementImpl() in vrayCreateRenderElementsTab.mel + + """ + # todo: detect whether rendering with V-Ray GPU + whether AOV is supported + + renderer = "vray" + + def get_renderer_prefix(self): + # type: () -> str + """Get image prefix for V-Ray. + + This overrides :func:`ARenderProducts.get_renderer_prefix()` as + we must add `` token manually. + + See also: + :func:`ARenderProducts.get_renderer_prefix()` + + """ + prefix = super(RenderProductsVray, self).get_renderer_prefix() + prefix = "{}.".format(prefix) + return prefix + + def _get_layer_data(self): + # type: () -> LayerMetadata + """Override to get vray specific extension.""" + layer_data = super(RenderProductsVray, self)._get_layer_data() + + default_ext = self._get_attr("vraySettings.imageFormatStr") + if default_ext in ["exr (multichannel)", "exr (deep)"]: + default_ext = "exr" + layer_data.defaultExt = default_ext + layer_data.padding = self._get_attr("vraySettings.fileNamePadding") + + return layer_data + + def get_render_products(self): + """Get all AOVs. + + See Also: + :func:`ARenderProducts.get_render_products()` + + """ + if not cmds.ls("vraySettings", type="VRaySettingsNode"): + # this occurs when Render Setting windows was not opened yet. In + # such case there are no VRay options created so query for AOVs + # will fail. We terminate here as there are no AOVs specified then. + # This state will most probably fail later on some Validator + # anyway. + return [] + + image_format_str = self._get_attr("vraySettings.imageFormatStr") + default_ext = image_format_str + if default_ext in {"exr (multichannel)", "exr (deep)"}: + default_ext = "exr" + + products = [] + + # add beauty as default when not disabled + dont_save_rgb = self._get_attr("vraySettings.dontSaveRgbChannel") + if not dont_save_rgb: + products.append(RenderProduct(productName="", ext=default_ext)) + + # separate alpha file + separate_alpha = self._get_attr("vraySettings.separateAlpha") + if separate_alpha: + products.append(RenderProduct(productName="Alpha", + ext=default_ext)) + + if image_format_str == "exr (multichannel)": + # AOVs are merged in m-channel file, only main layer is rendered + self.multipart = True + return products + + # handle aovs from references + use_ref_aovs = self.render_instance.data.get( + "useReferencedAovs", False) or False + + # this will have list of all aovs no matter if they are coming from + # reference or not. + aov_types = ["VRayRenderElement", "VRayRenderElementSet"] + aovs = cmds.ls(type=aov_types) + if not use_ref_aovs: + ref_aovs = cmds.ls(type=aov_types, referencedNodes=True) or [] + aovs = list(set(aovs) - set(ref_aovs)) + + for aov in aovs: + enabled = self._get_attr(aov, "enabled") + if not enabled: + continue + + class_type = self._get_attr(aov + ".vrayClassType") + if class_type == "LightMixElement": + # Special case which doesn't define a name by itself but + # instead seems to output multiple Render Products, + # specifically "Self_Illumination" and "Environment" + product_names = ["Self_Illumination", "Environment"] + for name in product_names: + product = RenderProduct(productName=name, + ext=default_ext, + aov=aov) + products.append(product) + # Continue as we've processed this special case AOV + continue + + aov_name = self._get_vray_aov_name(aov) + product = RenderProduct(productName=aov_name, + ext=default_ext, + aov=aov) + products.append(product) + + return products + + def _get_vray_aov_attr(self, node, prefix): + """Get value for attribute that starts with key in name + + V-Ray AOVs have attribute names that include the type + of AOV in the attribute name, for example: + - vray_filename_rawdiffuse + - vray_filename_velocity + - vray_name_gi + - vray_explicit_name_extratex + + To simplify querying the "vray_filename" or "vray_name" + attributes we just find the first attribute that has + that particular "{prefix}_" in the attribute name. + + Args: + node (str): AOV node name + prefix (str): Prefix of the attribute name. + + Returns: + Value of the attribute if it exists, else None + + """ + attrs = cmds.listAttr(node, string="{}_*".format(prefix)) + if not attrs: + return None + + assert len(attrs) == 1, "Found more than one attribute: %s" % attrs + attr = attrs[0] + + return self._get_attr(node, attr) + + def _get_vray_aov_name(self, node): + """Get AOVs name from Vray. + + Args: + node (str): aov node name. + + Returns: + str: aov name. + + """ + + vray_explicit_name = self._get_vray_aov_attr(node, + "vray_explicit_name") + vray_filename = self._get_vray_aov_attr(node, "vray_filename") + vray_name = self._get_vray_aov_attr(node, "vray_name") + final_name = vray_explicit_name or vray_filename or vray_name or None + + class_type = self._get_attr(node, "vrayClassType") + if not vray_explicit_name: + # Explicit name takes precedence and overrides completely + # otherwise add the connected node names to the special cases + # Any namespace colon ':' gets replaced to underscore '_' + # so we sanitize using `sanitize_camera_name` + def _get_source_name(node, attr): + """Return sanitized name of input connection to attribute""" + plug = "{}.{}".format(node, attr) + connections = cmds.listConnections(plug, + source=True, + destination=False) + if connections: + return self.sanitize_camera_name(connections[0]) + + if class_type == "MaterialSelectElement": + # Name suffix is based on the connected material or set + attrs = [ + "vray_mtllist_mtlselect", + "vray_mtl_mtlselect" + ] + for attr in attrs: + name = _get_source_name(node, attr) + if name: + final_name += '_{}'.format(name) + break + else: + log.warning("Material Select Element has no " + "selected materials: %s", node) + + elif class_type == "ExtraTexElement": + # Name suffix is based on the connected textures + extratex_type = self._get_attr(node, "vray_type_extratex") + attr = { + 0: "vray_texture_extratex", + 1: "vray_float_texture_extratex", + 2: "vray_int_texture_extratex", + }.get(extratex_type) + name = _get_source_name(node, attr) + if name: + final_name += '_{}'.format(name) + else: + log.warning("Extratex Element has no incoming texture") + + assert final_name, "Output filename not defined for AOV: %s" % node + + return final_name + + +class RenderProductsRedshift(ARenderProducts): + """Expected files for Redshift renderer. + + Notes: + - `get_files()` only supports rendering with frames, like "animation" + + Attributes: + + unmerged_aovs (list): Name of aovs that are not merged into resulting + exr and we need them specified in Render Products output. + + """ + + renderer = "redshift" + unmerged_aovs = {"Cryptomatte"} + + def get_renderer_prefix(self): + """Get image prefix for Redshift. + + This overrides :func:`ARenderProducts.get_renderer_prefix()` as + we must add `` token manually. + + See also: + :func:`ARenderProducts.get_renderer_prefix()` + + """ + prefix = super(RenderProductsRedshift, self).get_renderer_prefix() + prefix = "{}.".format(prefix) + return prefix + + def get_render_products(self): + """Get all AOVs. + + See Also: + :func:`ARenderProducts.get_render_products()` + + """ + + if not cmds.ls("redshiftOptions", type="RedshiftOptions"): + # this occurs when Render Setting windows was not opened yet. In + # such case there are no Redshift options created so query for AOVs + # will fail. We terminate here as there are no AOVs specified then. + # This state will most probably fail later on some Validator + # anyway. + return [] + + # For Redshift we don't directly return upon forcing multilayer + # due to some AOVs still being written into separate files, + # like Cryptomatte. + # AOVs are merged in multi-channel file + multipart = bool(self._get_attr("redshiftOptions.exrForceMultilayer")) + + # Get Redshift Extension from image format + image_format = self._get_attr("redshiftOptions.imageFormat") # integer + ext = mel.eval("redshiftGetImageExtension(%i)" % image_format) + + use_ref_aovs = self.render_instance.data.get( + "useReferencedAovs", False) or False + + aovs = cmds.ls(type="RedshiftAOV") + if not use_ref_aovs: + ref_aovs = cmds.ls(type="RedshiftAOV", referencedNodes=True) + aovs = list(set(aovs) - set(ref_aovs)) + + products = [] + has_beauty_aov = False + for aov in aovs: + enabled = self._get_attr(aov, "enabled") + if not enabled: + continue + + aov_type = self._get_attr(aov, "aovType") + if multipart and aov_type not in self.unmerged_aovs: + continue + + # Any AOVs that still get processed, like Cryptomatte + # by themselves are not multipart files. + aov_multipart = not multipart + + # Redshift skips rendering of masterlayer without AOV suffix + # when a Beauty AOV is rendered. It overrides the main layer. + if aov_type == "Beauty": + has_beauty_aov = True + + aov_name = self._get_attr(aov, "name") + + # Support light Groups + light_groups = [] + if self._get_attr(aov, "supportsLightGroups"): + all_light_groups = self._get_attr(aov, "allLightGroups") + if all_light_groups: + # All light groups is enabled + light_groups = self._get_redshift_light_groups() + else: + value = self._get_attr(aov, "lightGroupList") + # note: string value can return None when never set + if value: + selected_light_groups = value.strip().split() + light_groups = selected_light_groups + + for light_group in light_groups: + aov_light_group_name = "{}_{}".format(aov_name, + light_group) + product = RenderProduct(productName=aov_light_group_name, + aov=aov_name, + ext=ext, + multipart=aov_multipart) + products.append(product) + + # Redshift AOV Light Select always renders the global AOV + # even when light groups are present so we don't need to + # exclude it when light groups are active + product = RenderProduct(productName=aov_name, + aov=aov_name, + ext=ext, + multipart=aov_multipart) + products.append(product) + + # When a Beauty AOV is added manually, it will be rendered as + # 'Beauty_other' in file name and "standard" beauty will have + # 'Beauty' in its name. When disabled, standard output will be + # without `Beauty`. + beauty_name = "Beauty_other" if has_beauty_aov else "" + products.insert(0, + RenderProduct(productName=beauty_name, + ext=ext, + multipart=multipart)) + + return products + + @staticmethod + def _get_redshift_light_groups(): + return sorted(mel.eval("redshiftAllAovLightGroups")) + + +class RenderProductsRenderman(ARenderProducts): + """Expected files for Renderman renderer. + + Warning: + This is very rudimentary and needs more love and testing. + """ + + renderer = "renderman" + + def get_render_products(self): + """Get all AOVs. + + See Also: + :func:`ARenderProducts.get_render_products()` + + """ + products = [] + + default_ext = "exr" + displays = cmds.listConnections("rmanGlobals.displays") + for aov in displays: + enabled = self._get_attr(aov, "enabled") + if not enabled: + continue + + aov_name = str(aov) + if aov_name == "rmanDefaultDisplay": + aov_name = "beauty" + + product = RenderProduct(productName=aov_name, + ext=default_ext) + products.append(product) + + return products + + def get_files(self, product, camera): + """Get expected files. + + In renderman we hack it with prepending path. This path would + normally be translated from `rmanGlobals.imageOutputDir`. We skip + this and hardcode prepend path we expect. There is no place for user + to mess around with this settings anyway and it is enforced in + render settings validator. + """ + files = super(RenderProductsRenderman, self).get_files(product, camera) + + layer_data = self.layer_data + new_files = [] + for file in files: + new_file = "{}/{}/{}".format( + layer_data["sceneName"], layer_data["layerName"], file + ) + new_files.append(new_file) + + return new_files + + +class AOVError(Exception): + """Custom exception for determining AOVs.""" + + +class UnsupportedRendererException(Exception): + """Custom exception. + + Raised when requesting data from unsupported renderer. + """ \ No newline at end of file diff --git a/openpype/hosts/maya/api/lib_rendersetup.py b/openpype/hosts/maya/api/lib_rendersetup.py new file mode 100644 index 0000000000..441001eaf4 --- /dev/null +++ b/openpype/hosts/maya/api/lib_rendersetup.py @@ -0,0 +1,346 @@ +# -*- coding: utf-8 -*- +"""Library for handling Render Setup in Maya.""" +from maya import cmds +import maya.api.OpenMaya as om +import logging + +import maya.app.renderSetup.model.utils as utils +from maya.app.renderSetup.model import ( + override, + selector, + collection, + renderLayer, + renderSetup +) +from maya.app.renderSetup.model.override import ( + AbsOverride, + RelOverride, + UniqueOverride +) + +ExactMatch = 0 +ParentMatch = 1 +ChildMatch = 2 + +DefaultRenderLayer = "defaultRenderLayer" + +log = logging.getLogger(__name__) + + +def get_rendersetup_layer(layer): + """Return render setup layer name. + + This also converts names from legacy renderLayer node name to render setup + name. + + Note: `defaultRenderLayer` is not a renderSetupLayer node but it is however + the valid layer name for Render Setup - so we return that as is. + + Example: + >>> for legacy_layer in cmds.ls(type="renderLayer"): + >>> layer = get_rendersetup_layer(legacy_layer) + + Returns: + str or None: Returns renderSetupLayer node name if `layer` is a valid + layer name in legacy renderlayers or render setup layers. + Returns None if the layer can't be found or Render Setup is + currently disabled. + + + """ + if layer == DefaultRenderLayer: + # defaultRenderLayer doesn't have a `renderSetupLayer` + return layer + + if not cmds.mayaHasRenderSetup(): + return None + + if not cmds.objExists(layer): + return None + + if cmds.nodeType(layer) == "renderSetupLayer": + return layer + + # By default Render Setup renames the legacy renderlayer + # to `rs_` but lets not rely on that as the + # layer node can be renamed manually + connections = cmds.listConnections(layer + ".message", + type="renderSetupLayer", + exactType=True, + source=False, + destination=True, + plugs=True) or [] + return next((conn.split(".", 1)[0] for conn in connections + if conn.endswith(".legacyRenderLayer")), None) + + +def get_attr_in_layer(node_attr, layer): + """Return attribute value in Render Setup layer. + + This will only work for attributes which can be + retrieved with `maya.cmds.getAttr` and for which + Relative and Absolute overrides are applicable. + + Examples: + >>> get_attr_in_layer("defaultResolution.width", layer="layer1") + >>> get_attr_in_layer("defaultRenderGlobals.startFrame", layer="layer") + >>> get_attr_in_layer("transform.translate", layer="layer3") + + Args: + attr (str): attribute name as 'node.attribute' + layer (str): layer name + + Returns: + object: attribute value in layer + + """ + + # Delay pymel import to here because it's slow to load + import pymel.core as pm + + def _layer_needs_update(layer): + """Return whether layer needs updating.""" + # Use `getattr` as e.g. DefaultRenderLayer does not have the attribute + return getattr(layer, "needsMembershipUpdate", False) or \ + getattr(layer, "needsApplyUpdate", False) + + def get_default_layer_value(node_attr_): + """Return attribute value in defaultRenderLayer""" + inputs = cmds.listConnections(node_attr_, + source=True, + destination=False, + # We want to skip conversion nodes since + # an override to `endFrame` could have + # a `unitToTimeConversion` node in-between + skipConversionNodes=True, + type="applyOverride") or [] + if inputs: + override = inputs[0] + history_overrides = cmds.ls(cmds.listHistory(override, + pruneDagObjects=True), + type="applyOverride") + node = history_overrides[-1] if history_overrides else override + node_attr_ = node + ".original" + + return pm.getAttr(node_attr_, asString=True) + + layer = get_rendersetup_layer(layer) + rs = renderSetup.instance() + current_layer = rs.getVisibleRenderLayer() + if current_layer.name() == layer: + + # Ensure layer is up-to-date + if _layer_needs_update(current_layer): + try: + rs.switchToLayer(current_layer) + except RuntimeError as exc: + # Some cases can cause errors on switching + # the first time with Render Setup layers + # e.g. different overrides to compounds + # and its children plugs. So we just force + # it another time. If it then still fails + # we will let it error out. + rs.switchToLayer(current_layer) + + return pm.getAttr(node_attr, asString=True) + + overrides = get_attr_overrides(node_attr, layer) + default_layer_value = get_default_layer_value(node_attr) + if not overrides: + return default_layer_value + + value = default_layer_value + for match, layer_override, index in overrides: + if isinstance(layer_override, AbsOverride): + # Absolute override + value = pm.getAttr(layer_override.name() + ".attrValue") + if match == ExactMatch: + value = value + if match == ParentMatch: + value = value[index] + if match == ChildMatch: + value[index] = value + + elif isinstance(layer_override, RelOverride): + # Relative override + # Value = Original * Multiply + Offset + multiply = pm.getAttr(layer_override.name() + ".multiply") + offset = pm.getAttr(layer_override.name() + ".offset") + + if match == ExactMatch: + value = value * multiply + offset + if match == ParentMatch: + value = value * multiply[index] + offset[index] + if match == ChildMatch: + value[index] = value[index] * multiply + offset + + else: + raise TypeError("Unsupported override: %s" % layer_override) + + return value + + +def get_attr_overrides(node_attr, layer, + skip_disabled=True, + skip_local_render=True, + stop_at_absolute_override=True): + """Return all Overrides applicable to the attribute. + + Overrides are returned as a 3-tuple: + (Match, Override, Index) + + Match: + This is any of ExactMatch, ParentMatch, ChildMatch + and defines whether the override is exactly on the + plug, on the parent or on a child plug. + + Override: + This is the RenderSetup Override instance. + + Index: + This is the Plug index under the parent or for + the child that matches. The ExactMatch index will + always be None. For ParentMatch the index is which + index the plug is under the parent plug. For ChildMatch + the index is which child index matches the plug. + + Args: + node_attr (str): attribute name as 'node.attribute' + layer (str): layer name + skip_disabled (bool): exclude disabled overrides + skip_local_render (bool): exclude overrides marked + as local render. + stop_at_absolute_override: exclude overrides prior + to the last absolute override as they have + no influence on the resulting value. + + Returns: + list: Ordered Overrides in order of strength + + """ + + def get_mplug_children(plug): + """Return children MPlugs of compound MPlug""" + children = [] + if plug.isCompound: + for i in range(plug.numChildren()): + children.append(plug.child(i)) + return children + + def get_mplug_names(mplug): + """Return long and short name of MPlug""" + l = mplug.partialName(useLongNames=True) + s = mplug.partialName(useLongNames=False) + return {l, s} + + def iter_override_targets(override): + try: + for target in override._targets(): + yield target + except AssertionError: + # Workaround: There is a bug where the private `_targets()` method + # fails on some attribute plugs. For example overrides + # to the defaultRenderGlobals.endFrame + # (Tested in Maya 2020.2) + log.debug("Workaround for %s" % override) + from maya.app.renderSetup.common.utils import findPlug + + attr = override.attributeName() + if isinstance(override, UniqueOverride): + node = override.targetNodeName() + yield findPlug(node, attr) + else: + nodes = override.parent().selector().nodes() + for node in nodes: + if cmds.attributeQuery(attr, node=node, exists=True): + yield findPlug(node, attr) + + # Get the MPlug for the node.attr + sel = om.MSelectionList() + sel.add(node_attr) + plug = sel.getPlug(0) + + layer = get_rendersetup_layer(layer) + if layer == DefaultRenderLayer: + # DefaultRenderLayer will never have overrides + # since it's the default layer + return [] + + rs_layer = renderSetup.instance().getRenderLayer(layer) + if rs_layer is None: + # Renderlayer does not exist + return + + # Get any parent or children plugs as we also + # want to include them in the attribute match + # for overrides + parent = plug.parent() if plug.isChild else None + parent_index = None + if parent: + parent_index = get_mplug_children(parent).index(plug) + + children = get_mplug_children(plug) + + # Create lookup for the attribute by both long + # and short names + attr_names = get_mplug_names(plug) + for child in children: + attr_names.update(get_mplug_names(child)) + if parent: + attr_names.update(get_mplug_names(parent)) + + # Get all overrides of the layer + # And find those that are relevant to the attribute + plug_overrides = [] + + # Iterate over the overrides in reverse so we get the last + # overrides first and can "break" whenever an absolute + # override is reached + layer_overrides = list(utils.getOverridesRecursive(rs_layer)) + for layer_override in reversed(layer_overrides): + + if skip_disabled and not layer_override.isEnabled(): + # Ignore disabled overrides + continue + + if skip_local_render and layer_override.isLocalRender(): + continue + + # The targets list can be very large so we'll do + # a quick filter by attribute name to detect whether + # it matches the attribute name, or its parent or child + if layer_override.attributeName() not in attr_names: + continue + + override_match = None + for override_plug in iter_override_targets(layer_override): + + override_match = None + if plug == override_plug: + override_match = (ExactMatch, layer_override, None) + + elif parent and override_plug == parent: + override_match = (ParentMatch, layer_override, parent_index) + + elif children and override_plug in children: + child_index = children.index(override_plug) + override_match = (ChildMatch, layer_override, child_index) + + if override_match: + plug_overrides.append(override_match) + break + + if ( + override_match and + stop_at_absolute_override and + isinstance(layer_override, AbsOverride) and + # When the override is only on a child plug then it doesn't + # override the entire value so we not stop at this override + not override_match[0] == ChildMatch + ): + # If override is absolute override, then BREAK out + # of parent loop we don't need to look any further as + # this is the absolute override + break + + return reversed(plug_overrides) \ No newline at end of file diff --git a/openpype/hosts/maya/plugins/publish/collect_render.py b/openpype/hosts/maya/plugins/publish/collect_render.py index 647a46e240..154b736be8 100644 --- a/openpype/hosts/maya/plugins/publish/collect_render.py +++ b/openpype/hosts/maya/plugins/publish/collect_render.py @@ -50,6 +50,7 @@ import pyblish.api from avalon import maya, api from openpype.hosts.maya.api.expected_files import ExpectedFiles +from openpype.hosts.maya.api.lib_renderproducts import get as get_layer_render_products # noqa: E501 from openpype.hosts.maya.api import lib @@ -157,10 +158,21 @@ class CollectMayaRender(pyblish.api.ContextPlugin): # return all expected files for all cameras and aovs in given # frame range - ef = ExpectedFiles(render_instance) - exp_files = ef.get(renderer, layer_name) - self.log.info("multipart: {}".format(ef.multipart)) + layer_render_products = get_layer_render_products( + layer_name, render_instance) + render_products = layer_render_products.layer_data.products + assert render_products, "no render products generated" + exp_files = [] + for product in render_products: + for camera in layer_render_products.layer_data.cameras: + exp_files.append( + {product.productName: layer_render_products.get_files( + product, camera)}) + # ef = ExpectedFiles(render_instance) + # exp_files = [render_products.get_files(p) for p in render_products] + # self.log.info("multipart: {}".format(ef.multipart)) assert exp_files, "no file names were generated, this is bug" + self.log.info(exp_files) # if we want to attach render to subset, check if we have AOV's # in expectedFiles. If so, raise error as we cannot attach AOV @@ -224,7 +236,7 @@ class CollectMayaRender(pyblish.api.ContextPlugin): "subset": expected_layer_name, "attachTo": attach_to, "setMembers": layer_name, - "multipartExr": ef.multipart, + "multipartExr": layer_render_products.multipart, "review": render_instance.data.get("review") or False, "publish": True, From ed1834064c3536358086d7b3a001b58362e1e911 Mon Sep 17 00:00:00 2001 From: Ondrej Samohel Date: Fri, 9 Jul 2021 18:46:13 +0200 Subject: [PATCH 002/120] =?UTF-8?q?fix=20hound=20=F0=9F=90=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- openpype/hosts/maya/api/lib_renderproducts.py | 13 ++++--- openpype/hosts/maya/api/lib_rendersetup.py | 39 +++++++++---------- .../maya/plugins/publish/collect_render.py | 6 +-- 3 files changed, 28 insertions(+), 30 deletions(-) diff --git a/openpype/hosts/maya/api/lib_renderproducts.py b/openpype/hosts/maya/api/lib_renderproducts.py index 76156e3bb3..a7f04e86ed 100644 --- a/openpype/hosts/maya/api/lib_renderproducts.py +++ b/openpype/hosts/maya/api/lib_renderproducts.py @@ -258,7 +258,7 @@ class ARenderProducts: """ return self._get_attr("defaultRenderGlobals", attribute) - def _get_attr(self, node_attr, attr=None): + def _get_attr(self, node_attr, attribute=None): """Return the value of the attribute in the renderlayer For readability this allows passing in the attribute in two ways. @@ -273,10 +273,10 @@ class ARenderProducts: """ - if attr is None: + if attribute is None: plug = node_attr else: - plug = "{}.{}".format(node_attr, attr) + plug = "{}.{}".format(node_attr, attribute) return lib.get_attr_in_layer(plug, layer=self.layer) @@ -512,7 +512,8 @@ class RenderProductsArnold(ARenderProducts): all_light_groups = self._get_attr(aov, "lightGroups") if all_light_groups: - # All light groups is enabled. A single multipart Render Product + # All light groups is enabled. A single multipart + # Render Product product = RenderProduct(productName=name + "_lgroups", ext=ext, aov=aov_name, @@ -571,7 +572,7 @@ class RenderProductsArnold(ARenderProducts): # We don't need to check for Merge AOVs due to overridden # `get_renderer_prefix()` behavior which forces has_renderpass_token = ( - "" in self.layer_data.filePrefix.lower() + "" in self.layer_data.filePrefix.lower() ) if not has_renderpass_token: beauty_product.multipart = True @@ -1028,4 +1029,4 @@ class UnsupportedRendererException(Exception): """Custom exception. Raised when requesting data from unsupported renderer. - """ \ No newline at end of file + """ diff --git a/openpype/hosts/maya/api/lib_rendersetup.py b/openpype/hosts/maya/api/lib_rendersetup.py index 441001eaf4..0736febe9c 100644 --- a/openpype/hosts/maya/api/lib_rendersetup.py +++ b/openpype/hosts/maya/api/lib_rendersetup.py @@ -6,10 +6,6 @@ import logging import maya.app.renderSetup.model.utils as utils from maya.app.renderSetup.model import ( - override, - selector, - collection, - renderLayer, renderSetup ) from maya.app.renderSetup.model.override import ( @@ -102,7 +98,7 @@ def get_attr_in_layer(node_attr, layer): """Return whether layer needs updating.""" # Use `getattr` as e.g. DefaultRenderLayer does not have the attribute return getattr(layer, "needsMembershipUpdate", False) or \ - getattr(layer, "needsApplyUpdate", False) + getattr(layer, "needsApplyUpdate", False) def get_default_layer_value(node_attr_): """Return attribute value in defaultRenderLayer""" @@ -111,15 +107,16 @@ def get_attr_in_layer(node_attr, layer): destination=False, # We want to skip conversion nodes since # an override to `endFrame` could have - # a `unitToTimeConversion` node in-between + # a `unitToTimeConversion` node + # in-between skipConversionNodes=True, type="applyOverride") or [] if inputs: - override = inputs[0] - history_overrides = cmds.ls(cmds.listHistory(override, + _override = inputs[0] + history_overrides = cmds.ls(cmds.listHistory(_override, pruneDagObjects=True), type="applyOverride") - node = history_overrides[-1] if history_overrides else override + node = history_overrides[-1] if history_overrides else _override node_attr_ = node + ".original" return pm.getAttr(node_attr_, asString=True) @@ -133,7 +130,7 @@ def get_attr_in_layer(node_attr, layer): if _layer_needs_update(current_layer): try: rs.switchToLayer(current_layer) - except RuntimeError as exc: + except RuntimeError: # Some cases can cause errors on switching # the first time with Render Setup layers # e.g. different overrides to compounds @@ -229,28 +226,28 @@ def get_attr_overrides(node_attr, layer, def get_mplug_names(mplug): """Return long and short name of MPlug""" - l = mplug.partialName(useLongNames=True) - s = mplug.partialName(useLongNames=False) - return {l, s} + long_name = mplug.partialName(useLongNames=True) + short_name = mplug.partialName(useLongNames=False) + return {long_name, short_name} - def iter_override_targets(override): + def iter_override_targets(_override): try: - for target in override._targets(): + for target in _override._targets(): yield target except AssertionError: # Workaround: There is a bug where the private `_targets()` method # fails on some attribute plugs. For example overrides # to the defaultRenderGlobals.endFrame # (Tested in Maya 2020.2) - log.debug("Workaround for %s" % override) + log.debug("Workaround for %s" % _override) from maya.app.renderSetup.common.utils import findPlug - attr = override.attributeName() - if isinstance(override, UniqueOverride): - node = override.targetNodeName() + attr = _override.attributeName() + if isinstance(_override, UniqueOverride): + node = _override.targetNodeName() yield findPlug(node, attr) else: - nodes = override.parent().selector().nodes() + nodes = _override.parent().selector().nodes() for node in nodes: if cmds.attributeQuery(attr, node=node, exists=True): yield findPlug(node, attr) @@ -343,4 +340,4 @@ def get_attr_overrides(node_attr, layer, # this is the absolute override break - return reversed(plug_overrides) \ No newline at end of file + return reversed(plug_overrides) diff --git a/openpype/hosts/maya/plugins/publish/collect_render.py b/openpype/hosts/maya/plugins/publish/collect_render.py index 154b736be8..5766dd67e5 100644 --- a/openpype/hosts/maya/plugins/publish/collect_render.py +++ b/openpype/hosts/maya/plugins/publish/collect_render.py @@ -168,9 +168,9 @@ class CollectMayaRender(pyblish.api.ContextPlugin): exp_files.append( {product.productName: layer_render_products.get_files( product, camera)}) - # ef = ExpectedFiles(render_instance) - # exp_files = [render_products.get_files(p) for p in render_products] - # self.log.info("multipart: {}".format(ef.multipart)) + + self.log.info("multipart: {}".format( + layer_render_products.multipart)) assert exp_files, "no file names were generated, this is bug" self.log.info(exp_files) From d2fa72cc9a808dc9c687dd5ec17d30346b4d0999 Mon Sep 17 00:00:00 2001 From: Ondrej Samohel Date: Fri, 9 Jul 2021 18:48:46 +0200 Subject: [PATCH 003/120] =?UTF-8?q?fix=20hound=20=F0=9F=90=BA=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- openpype/hosts/maya/api/lib_renderproducts.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openpype/hosts/maya/api/lib_renderproducts.py b/openpype/hosts/maya/api/lib_renderproducts.py index a7f04e86ed..c4c8102f58 100644 --- a/openpype/hosts/maya/api/lib_renderproducts.py +++ b/openpype/hosts/maya/api/lib_renderproducts.py @@ -801,8 +801,8 @@ class RenderProductsVray(ARenderProducts): "vray_mtllist_mtlselect", "vray_mtl_mtlselect" ] - for attr in attrs: - name = _get_source_name(node, attr) + for attribute in attrs: + name = _get_source_name(node, attribute) if name: final_name += '_{}'.format(name) break From 070baad607482addbb1cf769586d7cb919525e97 Mon Sep 17 00:00:00 2001 From: Ondrej Samohel Date: Mon, 12 Jul 2021 19:10:47 +0200 Subject: [PATCH 004/120] =?UTF-8?q?removed=20layer=20switching=20?= =?UTF-8?q?=F0=9F=93=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- openpype/hosts/maya/api/lib.py | 6 ++---- openpype/hosts/maya/plugins/publish/collect_render.py | 4 ---- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/openpype/hosts/maya/api/lib.py b/openpype/hosts/maya/api/lib.py index b87e106865..b24235447f 100644 --- a/openpype/hosts/maya/api/lib.py +++ b/openpype/hosts/maya/api/lib.py @@ -2252,10 +2252,8 @@ def get_attr_in_layer(attr, layer): try: if cmds.mayaHasRenderSetup(): - log.debug("lib.get_attr_in_layer is not " - "optimized for render setup") - with renderlayer(layer): - return cmds.getAttr(attr) + from . import lib_rendersetup + return lib_rendersetup.get_attr_in_layer(attr, layer) except AttributeError: pass diff --git a/openpype/hosts/maya/plugins/publish/collect_render.py b/openpype/hosts/maya/plugins/publish/collect_render.py index 5766dd67e5..86ee7d4d64 100644 --- a/openpype/hosts/maya/plugins/publish/collect_render.py +++ b/openpype/hosts/maya/plugins/publish/collect_render.py @@ -318,10 +318,6 @@ class CollectMayaRender(pyblish.api.ContextPlugin): instance.data.update(data) self.log.debug("data: {}".format(json.dumps(data, indent=4))) - # Restore current layer. - self.log.info("Restoring to {}".format(current_layer.name())) - self._rs.switchToLayer(current_layer) - def parse_options(self, render_globals): """Get all overrides with a value, skip those without. From f37319965ad2472b99c2b91fb1ca233dcc6865b1 Mon Sep 17 00:00:00 2001 From: Ondrej Samohel Date: Tue, 13 Jul 2021 11:25:56 +0200 Subject: [PATCH 005/120] remove old expected files --- openpype/hosts/maya/api/expected_files.py | 945 ------------------ .../maya/plugins/publish/collect_render.py | 1 - 2 files changed, 946 deletions(-) delete mode 100644 openpype/hosts/maya/api/expected_files.py diff --git a/openpype/hosts/maya/api/expected_files.py b/openpype/hosts/maya/api/expected_files.py deleted file mode 100644 index 15e0dc598c..0000000000 --- a/openpype/hosts/maya/api/expected_files.py +++ /dev/null @@ -1,945 +0,0 @@ -# -*- coding: utf-8 -*- -"""Module handling expected render output from Maya. - -This module is used in :mod:`collect_render` and :mod:`collect_vray_scene`. - -Note: - To implement new renderer, just create new class inheriting from - :class:`AExpectedFiles` and add it to :func:`ExpectedFiles.get()`. - -Attributes: - R_SINGLE_FRAME (:class:`re.Pattern`): Find single frame number. - R_FRAME_RANGE (:class:`re.Pattern`): Find frame range. - R_FRAME_NUMBER (:class:`re.Pattern`): Find frame number in string. - R_LAYER_TOKEN (:class:`re.Pattern`): Find layer token in image prefixes. - R_AOV_TOKEN (:class:`re.Pattern`): Find AOV token in image prefixes. - R_SUBSTITUTE_AOV_TOKEN (:class:`re.Pattern`): Find and substitute AOV token - in image prefixes. - R_REMOVE_AOV_TOKEN (:class:`re.Pattern`): Find and remove AOV token in - image prefixes. - R_CLEAN_FRAME_TOKEN (:class:`re.Pattern`): Find and remove unfilled - Renderman frame token in image prefix. - R_CLEAN_EXT_TOKEN (:class:`re.Pattern`): Find and remove unfilled Renderman - extension token in image prefix. - R_SUBSTITUTE_LAYER_TOKEN (:class:`re.Pattern`): Find and substitute render - layer token in image prefixes. - R_SUBSTITUTE_SCENE_TOKEN (:class:`re.Pattern`): Find and substitute scene - token in image prefixes. - R_SUBSTITUTE_CAMERA_TOKEN (:class:`re.Pattern`): Find and substitute camera - token in image prefixes. - RENDERER_NAMES (dict): Renderer names mapping between reported name and - *human readable* name. - IMAGE_PREFIXES (dict): Mapping between renderers and their respective - image prefix attribute names. - -Todo: - Determine `multipart` from render instance. - -""" - -import types -import re -import os -from abc import ABCMeta, abstractmethod - -import six -import attr - -import openpype.hosts.maya.api.lib as lib - -from maya import cmds -import maya.app.renderSetup.model.renderSetup as renderSetup - - -R_SINGLE_FRAME = re.compile(r"^(-?)\d+$") -R_FRAME_RANGE = re.compile(r"^(?P(-?)\d+)-(?P(-?)\d+)$") -R_FRAME_NUMBER = re.compile(r".+\.(?P[0-9]+)\..+") -R_LAYER_TOKEN = re.compile( - r".*((?:%l)|(?:)|(?:)).*", re.IGNORECASE -) -R_AOV_TOKEN = re.compile(r".*%a.*|.*.*|.*.*", re.IGNORECASE) -R_SUBSTITUTE_AOV_TOKEN = re.compile(r"%a||", re.IGNORECASE) -R_REMOVE_AOV_TOKEN = re.compile( - r"_%a|\.%a|_|\.|_|\.", re.IGNORECASE) -# to remove unused renderman tokens -R_CLEAN_FRAME_TOKEN = re.compile(r"\.?\.?", re.IGNORECASE) -R_CLEAN_EXT_TOKEN = re.compile(r"\.?\.?", re.IGNORECASE) - -R_SUBSTITUTE_LAYER_TOKEN = re.compile( - r"%l||", re.IGNORECASE -) -R_SUBSTITUTE_CAMERA_TOKEN = re.compile(r"%c|", re.IGNORECASE) -R_SUBSTITUTE_SCENE_TOKEN = re.compile(r"%s|", re.IGNORECASE) - -RENDERER_NAMES = { - "mentalray": "MentalRay", - "vray": "V-Ray", - "arnold": "Arnold", - "renderman": "Renderman", - "redshift": "Redshift", -} - -# not sure about the renderman image prefix -IMAGE_PREFIXES = { - "mentalray": "defaultRenderGlobals.imageFilePrefix", - "vray": "vraySettings.fileNamePrefix", - "arnold": "defaultRenderGlobals.imageFilePrefix", - "renderman": "rmanGlobals.imageFileFormat", - "redshift": "defaultRenderGlobals.imageFilePrefix", -} - - -@attr.s -class LayerMetadata(object): - """Data class for Render Layer metadata.""" - frameStart = attr.ib() - frameEnd = attr.ib() - cameras = attr.ib() - sceneName = attr.ib() - layerName = attr.ib() - renderer = attr.ib() - defaultExt = attr.ib() - filePrefix = attr.ib() - enabledAOVs = attr.ib() - frameStep = attr.ib(default=1) - padding = attr.ib(default=4) - - -class ExpectedFiles: - """Class grouping functionality for all supported renderers. - - Attributes: - multipart (bool): Flag if multipart exrs are used. - - """ - multipart = False - - def __init__(self, render_instance): - """Constructor.""" - self._render_instance = render_instance - - def get(self, renderer, layer): - """Get expected files for given renderer and render layer. - - Args: - renderer (str): Name of renderer - layer (str): Name of render layer - - Returns: - dict: Expected rendered files by AOV - - Raises: - :exc:`UnsupportedRendererException`: If requested renderer - is not supported. It needs to be implemented by extending - :class:`AExpectedFiles` and added to this methods ``if`` - statement. - - """ - renderSetup.instance().switchToLayerUsingLegacyName(layer) - - if renderer.lower() == "arnold": - return self._get_files(ExpectedFilesArnold(layer, - self._render_instance)) - if renderer.lower() == "vray": - return self._get_files(ExpectedFilesVray( - layer, self._render_instance)) - if renderer.lower() == "redshift": - return self._get_files(ExpectedFilesRedshift( - layer, self._render_instance)) - if renderer.lower() == "mentalray": - return self._get_files(ExpectedFilesMentalray( - layer, self._render_instance)) - if renderer.lower() == "renderman": - return self._get_files(ExpectedFilesRenderman( - layer, self._render_instance)) - - raise UnsupportedRendererException( - "unsupported {}".format(renderer) - ) - - def _get_files(self, renderer): - # type: (AExpectedFiles) -> list - files = renderer.get_files() - self.multipart = renderer.multipart - return files - - -@six.add_metaclass(ABCMeta) -class AExpectedFiles: - """Abstract class with common code for all renderers. - - Attributes: - renderer (str): name of renderer. - layer (str): name of render layer. - multipart (bool): flag for multipart exrs. - - """ - - renderer = None - layer = None - multipart = False - - def __init__(self, layer, render_instance): - """Constructor.""" - self.layer = layer - self.render_instance = render_instance - - @abstractmethod - def get_aovs(self): - """To be implemented by renderer class.""" - - @staticmethod - def sanitize_camera_name(camera): - """Sanitize camera name. - - Remove Maya illegal characters from camera name. - - Args: - camera (str): Maya camera name. - - Returns: - (str): sanitized camera name - - Example: - >>> AExpectedFiles.sanizite_camera_name('test:camera_01') - test_camera_01 - - """ - return re.sub('[^0-9a-zA-Z_]+', '_', camera) - - def get_renderer_prefix(self): - """Return prefix for specific renderer. - - This is for most renderers the same and can be overridden if needed. - - Returns: - str: String with image prefix containing tokens - - Raises: - :exc:`UnsupportedRendererException`: If we requested image - prefix for renderer we know nothing about. - See :data:`IMAGE_PREFIXES` for mapping of renderers and - image prefixes. - - """ - try: - file_prefix = cmds.getAttr(IMAGE_PREFIXES[self.renderer]) - except KeyError: - raise UnsupportedRendererException( - "Unsupported renderer {}".format(self.renderer) - ) - return file_prefix - - def _get_layer_data(self): - # type: () -> LayerMetadata - # ______________________________________________ - # ____________________/ ____________________________________________/ - # 1 - get scene name /__________________/ - # ____________________/ - _, scene_basename = os.path.split(cmds.file(q=True, loc=True)) - scene_name, _ = os.path.splitext(scene_basename) - - file_prefix = self.get_renderer_prefix() - - if not file_prefix: - raise RuntimeError("Image prefix not set") - - layer_name = self.layer - if self.layer.startswith("rs_"): - layer_name = self.layer[3:] - - return LayerMetadata( - frameStart=int(self.get_render_attribute("startFrame")), - frameEnd=int(self.get_render_attribute("endFrame")), - frameStep=int(self.get_render_attribute("byFrameStep")), - padding=int(self.get_render_attribute("extensionPadding")), - # if we have token in prefix path we'll expect output for - # every renderable camera in layer. - cameras=self.get_renderable_cameras(), - sceneName=scene_name, - layerName=layer_name, - renderer=self.renderer, - defaultExt=cmds.getAttr("defaultRenderGlobals.imfPluginKey"), - filePrefix=file_prefix, - enabledAOVs=self.get_aovs() - ) - - def _generate_single_file_sequence( - self, layer_data, force_aov_name=None): - # type: (LayerMetadata, str) -> list - expected_files = [] - for cam in layer_data.cameras: - file_prefix = layer_data.filePrefix - mappings = ( - (R_SUBSTITUTE_SCENE_TOKEN, layer_data.sceneName), - (R_SUBSTITUTE_LAYER_TOKEN, layer_data.layerName), - (R_SUBSTITUTE_CAMERA_TOKEN, self.sanitize_camera_name(cam)), - # this is required to remove unfilled aov token, for example - # in Redshift - (R_REMOVE_AOV_TOKEN, "") if not force_aov_name \ - else (R_SUBSTITUTE_AOV_TOKEN, force_aov_name), - - (R_CLEAN_FRAME_TOKEN, ""), - (R_CLEAN_EXT_TOKEN, ""), - ) - - for regex, value in mappings: - file_prefix = re.sub(regex, value, file_prefix) - - for frame in range( - int(layer_data.frameStart), - int(layer_data.frameEnd) + 1, - int(layer_data.frameStep), - ): - expected_files.append( - "{}.{}.{}".format( - file_prefix, - str(frame).rjust(layer_data.padding, "0"), - layer_data.defaultExt, - ) - ) - return expected_files - - def _generate_aov_file_sequences(self, layer_data): - # type: (LayerMetadata) -> list - expected_files = [] - aov_file_list = {} - for aov in layer_data.enabledAOVs: - for cam in layer_data.cameras: - file_prefix = layer_data.filePrefix - - mappings = ( - (R_SUBSTITUTE_SCENE_TOKEN, layer_data.sceneName), - (R_SUBSTITUTE_LAYER_TOKEN, layer_data.layerName), - (R_SUBSTITUTE_CAMERA_TOKEN, - self.sanitize_camera_name(cam)), - (R_SUBSTITUTE_AOV_TOKEN, aov[0]), - (R_CLEAN_FRAME_TOKEN, ""), - (R_CLEAN_EXT_TOKEN, ""), - ) - - for regex, value in mappings: - file_prefix = re.sub(regex, value, file_prefix) - - aov_files = [] - for frame in range( - int(layer_data.frameStart), - int(layer_data.frameEnd) + 1, - int(layer_data.frameStep), - ): - aov_files.append( - "{}.{}.{}".format( - file_prefix, - str(frame).rjust(layer_data.padding, "0"), - aov[1], - ) - ) - - # if we have more then one renderable camera, append - # camera name to AOV to allow per camera AOVs. - aov_name = aov[0] - if len(layer_data.cameras) > 1: - aov_name = "{}_{}".format(aov[0], - self.sanitize_camera_name(cam)) - - aov_file_list[aov_name] = aov_files - file_prefix = layer_data.filePrefix - - expected_files.append(aov_file_list) - return expected_files - - def get_files(self): - """Return list of expected files. - - It will translate render token strings ('', etc.) to - their values. This task is tricky as every renderer deals with this - differently. It depends on `get_aovs()` abstract method implemented - for every supported renderer. - - """ - layer_data = self._get_layer_data() - - expected_files = [] - if layer_data.enabledAOVs: - return self._generate_aov_file_sequences(layer_data) - else: - return self._generate_single_file_sequence(layer_data) - - def get_renderable_cameras(self): - # type: () -> list - """Get all renderable cameras. - - Returns: - list: list of renderable cameras. - - """ - cam_parents = [ - cmds.listRelatives(x, ap=True)[-1] for x in cmds.ls(cameras=True) - ] - - return [ - cam - for cam in cam_parents - if self.maya_is_true(cmds.getAttr("{}.renderable".format(cam))) - ] - - @staticmethod - def maya_is_true(attr_val): - """Whether a Maya attr evaluates to True. - - When querying an attribute value from an ambiguous object the - Maya API will return a list of values, which need to be properly - handled to evaluate properly. - - Args: - attr_val (mixed): Maya attribute to be evaluated as bool. - - Returns: - bool: cast Maya attribute to Pythons boolean value. - - """ - if isinstance(attr_val, types.BooleanType): - return attr_val - if isinstance(attr_val, (types.ListType, types.GeneratorType)): - return any(attr_val) - - return bool(attr_val) - - @staticmethod - def get_layer_overrides(attribute): - """Get overrides for attribute on current render layer. - - Args: - attribute (str): Maya attribute name. - - Returns: - Value of attribute override. - - """ - connections = cmds.listConnections(attribute, plugs=True) - if connections: - for connection in connections: - if connection: - # node_name = connection.split(".")[0] - - attr_name = "%s.value" % ".".join( - connection.split(".")[:-1] - ) - yield cmds.getAttr(attr_name) - - def get_render_attribute(self, attribute): - """Get attribute from render options. - - Args: - attribute (str): name of attribute to be looked up. - - Returns: - Attribute value - - """ - return lib.get_attr_in_layer( - "defaultRenderGlobals.{}".format(attribute), layer=self.layer - ) - - -class ExpectedFilesArnold(AExpectedFiles): - """Expected files for Arnold renderer. - - Attributes: - aiDriverExtension (dict): Arnold AOV driver extension mapping. - Is there a better way? - renderer (str): name of renderer. - - """ - - aiDriverExtension = { - "jpeg": "jpg", - "exr": "exr", - "deepexr": "exr", - "png": "png", - "tiff": "tif", - "mtoa_shaders": "ass", # TODO: research what those last two should be - "maya": "", - } - - def __init__(self, layer, render_instance): - """Constructor.""" - super(ExpectedFilesArnold, self).__init__(layer, render_instance) - self.renderer = "arnold" - - def get_aovs(self): - """Get all AOVs. - - See Also: - :func:`AExpectedFiles.get_aovs()` - - Raises: - :class:`AOVError`: If AOV cannot be determined. - - """ - enabled_aovs = [] - try: - if not ( - cmds.getAttr("defaultArnoldRenderOptions.aovMode") - and not cmds.getAttr("defaultArnoldDriver.mergeAOVs") # noqa: W503, E501 - ): - # AOVs are merged in mutli-channel file - self.multipart = True - return enabled_aovs - except ValueError: - # this occurs when Render Setting windows was not opened yet. In - # such case there are no Arnold options created so query for AOVs - # will fail. We terminate here as there are no AOVs specified then. - # This state will most probably fail later on some Validator - # anyway. - return enabled_aovs - - # AOVs are set to be rendered separately. We should expect - # token in path. - - # handle aovs from references - use_ref_aovs = self.render_instance.data.get( - "useReferencedAovs", False) or False - - ai_aovs = cmds.ls(type="aiAOV") - if not use_ref_aovs: - ref_aovs = cmds.ls(type="aiAOV", referencedNodes=True) - ai_aovs = list(set(ai_aovs) - set(ref_aovs)) - - for aov in ai_aovs: - enabled = self.maya_is_true(cmds.getAttr("{}.enabled".format(aov))) - ai_driver = cmds.listConnections("{}.outputs".format(aov))[0] - ai_translator = cmds.getAttr("{}.aiTranslator".format(ai_driver)) - try: - aov_ext = self.aiDriverExtension[ai_translator] - except KeyError: - msg = ( - "Unrecognized arnold " "driver format for AOV - {}" - ).format(cmds.getAttr("{}.name".format(aov))) - raise AOVError(msg) - - for override in self.get_layer_overrides( - "{}.enabled".format(aov) - ): - enabled = self.maya_is_true(override) - if enabled: - # If aov RGBA is selected, arnold will translate it to `beauty` - aov_name = cmds.getAttr("%s.name" % aov) - if aov_name == "RGBA": - aov_name = "beauty" - enabled_aovs.append((aov_name, aov_ext)) - # Append 'beauty' as this is arnolds - # default. If token is specified and no AOVs are - # defined, this will be used. - enabled_aovs.append( - (u"beauty", cmds.getAttr("defaultRenderGlobals.imfPluginKey")) - ) - return enabled_aovs - - -class ExpectedFilesVray(AExpectedFiles): - """Expected files for V-Ray renderer.""" - - def __init__(self, layer, render_instance): - """Constructor.""" - super(ExpectedFilesVray, self).__init__(layer, render_instance) - self.renderer = "vray" - - def get_renderer_prefix(self): - """Get image prefix for V-Ray. - - This overrides :func:`AExpectedFiles.get_renderer_prefix()` as - we must add `` token manually. - - See also: - :func:`AExpectedFiles.get_renderer_prefix()` - - """ - prefix = super(ExpectedFilesVray, self).get_renderer_prefix() - prefix = "{}_".format(prefix) - return prefix - - def _get_layer_data(self): - # type: () -> LayerMetadata - """Override to get vray specific extension.""" - layer_data = super(ExpectedFilesVray, self)._get_layer_data() - default_ext = cmds.getAttr("vraySettings.imageFormatStr") - if default_ext in ["exr (multichannel)", "exr (deep)"]: - default_ext = "exr" - layer_data.defaultExt = default_ext - layer_data.padding = cmds.getAttr("vraySettings.fileNamePadding") - return layer_data - - def get_files(self): - """Get expected files. - - This overrides :func:`AExpectedFiles.get_files()` as we - we need to add one sequence for plain beauty if AOVs are enabled - as vray output beauty without 'beauty' in filename. - - """ - expected_files = super(ExpectedFilesVray, self).get_files() - - layer_data = self._get_layer_data() - # remove 'beauty' from filenames as vray doesn't output it - update = {} - if layer_data.enabledAOVs: - for aov, seqs in expected_files[0].items(): - if aov.startswith("beauty"): - new_list = [] - for seq in seqs: - new_list.append(seq.replace("_beauty", "")) - update[aov] = new_list - - expected_files[0].update(update) - return expected_files - - def get_aovs(self): - """Get all AOVs. - - See Also: - :func:`AExpectedFiles.get_aovs()` - - """ - enabled_aovs = [] - - try: - # really? do we set it in vray just by selecting multichannel exr? - if ( - cmds.getAttr("vraySettings.imageFormatStr") - == "exr (multichannel)" # noqa: W503 - ): - # AOVs are merged in mutli-channel file - self.multipart = True - return enabled_aovs - except ValueError: - # this occurs when Render Setting windows was not opened yet. In - # such case there are no VRay options created so query for AOVs - # will fail. We terminate here as there are no AOVs specified then. - # This state will most probably fail later on some Validator - # anyway. - return enabled_aovs - - default_ext = cmds.getAttr("vraySettings.imageFormatStr") - if default_ext in ["exr (multichannel)", "exr (deep)"]: - default_ext = "exr" - - # add beauty as default - enabled_aovs.append( - (u"beauty", default_ext) - ) - - # handle aovs from references - use_ref_aovs = self.render_instance.data.get( - "useReferencedAovs", False) or False - - # this will have list of all aovs no matter if they are coming from - # reference or not. - vr_aovs = cmds.ls( - type=["VRayRenderElement", "VRayRenderElementSet"]) or [] - if not use_ref_aovs: - ref_aovs = cmds.ls( - type=["VRayRenderElement", "VRayRenderElementSet"], - referencedNodes=True) or [] - # get difference - vr_aovs = list(set(vr_aovs) - set(ref_aovs)) - - for aov in vr_aovs: - enabled = self.maya_is_true(cmds.getAttr("{}.enabled".format(aov))) - for override in self.get_layer_overrides( - "{}.enabled".format(aov) - ): - enabled = self.maya_is_true(override) - - if enabled: - enabled_aovs.append( - (self._get_vray_aov_name(aov), default_ext)) - - return enabled_aovs - - @staticmethod - def _get_vray_aov_name(node): - """Get AOVs name from Vray. - - Args: - node (str): aov node name. - - Returns: - str: aov name. - - """ - vray_name = None - vray_explicit_name = None - vray_file_name = None - for node_attr in cmds.listAttr(node): - if node_attr.startswith("vray_filename"): - vray_file_name = cmds.getAttr("{}.{}".format(node, node_attr)) - elif node_attr.startswith("vray_name"): - vray_name = cmds.getAttr("{}.{}".format(node, node_attr)) - elif node_attr.startswith("vray_explicit_name"): - vray_explicit_name = cmds.getAttr( - "{}.{}".format(node, node_attr)) - - if vray_file_name is not None and vray_file_name != "": - final_name = vray_file_name - elif vray_explicit_name is not None and vray_explicit_name != "": - final_name = vray_explicit_name - elif vray_name is not None and vray_name != "": - final_name = vray_name - else: - continue - # special case for Material Select elements - these are named - # based on the materia they are connected to. - if "vray_mtl_mtlselect" in cmds.listAttr(node): - connections = cmds.listConnections( - "{}.vray_mtl_mtlselect".format(node)) - if connections: - final_name += '_{}'.format(str(connections[0])) - - return final_name - - -class ExpectedFilesRedshift(AExpectedFiles): - """Expected files for Redshift renderer. - - Attributes: - - unmerged_aovs (list): Name of aovs that are not merged into resulting - exr and we need them specified in expectedFiles output. - - """ - - unmerged_aovs = ["Cryptomatte"] - - def __init__(self, layer, render_instance): - """Construtor.""" - super(ExpectedFilesRedshift, self).__init__(layer, render_instance) - self.renderer = "redshift" - - def get_renderer_prefix(self): - """Get image prefix for Redshift. - - This overrides :func:`AExpectedFiles.get_renderer_prefix()` as - we must add `` token manually. - - See also: - :func:`AExpectedFiles.get_renderer_prefix()` - - """ - prefix = super(ExpectedFilesRedshift, self).get_renderer_prefix() - prefix = "{}.".format(prefix) - return prefix - - def get_files(self): - """Get expected files. - - This overrides :func:`AExpectedFiles.get_files()` as we - we need to add one sequence for plain beauty if AOVs are enabled - as vray output beauty without 'beauty' in filename. - - """ - expected_files = super(ExpectedFilesRedshift, self).get_files() - layer_data = self._get_layer_data() - - # Redshift doesn't merge Cryptomatte AOV to final exr. We need to check - # for such condition and add it to list of expected files. - - for aov in layer_data.enabledAOVs: - if aov[0].lower() == "cryptomatte": - aov_name = aov[0] - expected_files.append( - {aov_name: self._generate_single_file_sequence(layer_data)} - ) - - if layer_data.get("enabledAOVs"): - # because if Beauty is added manually, it will be rendered as - # 'Beauty_other' in file name and "standard" beauty will have - # 'Beauty' in its name. When disabled, standard output will be - # without `Beauty`. - if expected_files[0].get(u"Beauty"): - expected_files[0][u"Beauty_other"] = expected_files[0].pop( - u"Beauty") - new_list = [ - seq.replace(".Beauty", ".Beauty_other") - for seq in expected_files[0][u"Beauty_other"] - ] - - expected_files[0][u"Beauty_other"] = new_list - expected_files[0][u"Beauty"] = self._generate_single_file_sequence( # noqa: E501 - layer_data, force_aov_name="Beauty" - ) - else: - expected_files[0][u"Beauty"] = self._generate_single_file_sequence( # noqa: E501 - layer_data - ) - - return expected_files - - def get_aovs(self): - """Get all AOVs. - - See Also: - :func:`AExpectedFiles.get_aovs()` - - """ - enabled_aovs = [] - - try: - if self.maya_is_true( - cmds.getAttr("redshiftOptions.exrForceMultilayer") - ): - # AOVs are merged in mutli-channel file - self.multipart = True - return enabled_aovs - except ValueError: - # this occurs when Render Setting windows was not opened yet. In - # such case there are no Redshift options created so query for AOVs - # will fail. We terminate here as there are no AOVs specified then. - # This state will most probably fail later on some Validator - # anyway. - return enabled_aovs - - default_ext = cmds.getAttr( - "redshiftOptions.imageFormat", asString=True) - rs_aovs = cmds.ls(type="RedshiftAOV", referencedNodes=False) - - for aov in rs_aovs: - enabled = self.maya_is_true(cmds.getAttr("{}.enabled".format(aov))) - for override in self.get_layer_overrides( - "{}.enabled".format(aov) - ): - enabled = self.maya_is_true(override) - - if enabled: - # If AOVs are merged into multipart exr, append AOV only if it - # is in the list of AOVs that renderer cannot (or will not) - # merge into final exr. - if self.maya_is_true( - cmds.getAttr("redshiftOptions.exrForceMultilayer") - ): - if cmds.getAttr("%s.name" % aov) in self.unmerged_aovs: - enabled_aovs.append( - (cmds.getAttr("%s.name" % aov), default_ext) - ) - else: - enabled_aovs.append( - (cmds.getAttr("%s.name" % aov), default_ext) - ) - - if self.maya_is_true( - cmds.getAttr("redshiftOptions.exrForceMultilayer") - ): - # AOVs are merged in mutli-channel file - self.multipart = True - - return enabled_aovs - - -class ExpectedFilesRenderman(AExpectedFiles): - """Expected files for Renderman renderer. - - Warning: - This is very rudimentary and needs more love and testing. - """ - - def __init__(self, layer, render_instance): - """Constructor.""" - super(ExpectedFilesRenderman, self).__init__(layer, render_instance) - self.renderer = "renderman" - - def get_aovs(self): - """Get all AOVs. - - See Also: - :func:`AExpectedFiles.get_aovs()` - - """ - enabled_aovs = [] - - default_ext = "exr" - displays = cmds.listConnections("rmanGlobals.displays") - for aov in displays: - aov_name = str(aov) - if aov_name == "rmanDefaultDisplay": - aov_name = "beauty" - - enabled = self.maya_is_true(cmds.getAttr("{}.enable".format(aov))) - for override in self.get_layer_overrides( - "{}.enable".format(aov) - ): - enabled = self.maya_is_true(override) - - if enabled: - enabled_aovs.append((aov_name, default_ext)) - - return enabled_aovs - - def get_files(self): - """Get expected files. - - This overrides :func:`AExpectedFiles.get_files()` as we - we need to add one sequence for plain beauty if AOVs are enabled - as vray output beauty without 'beauty' in filename. - - In renderman we hack it with prepending path. This path would - normally be translated from `rmanGlobals.imageOutputDir`. We skip - this and hardcode prepend path we expect. There is no place for user - to mess around with this settings anyway and it is enforced in - render settings validator. - """ - layer_data = self._get_layer_data() - new_aovs = {} - - expected_files = super(ExpectedFilesRenderman, self).get_files() - # we always get beauty - for aov, files in expected_files[0].items(): - new_files = [] - for file in files: - new_file = "{}/{}/{}".format( - layer_data["sceneName"], layer_data["layerName"], file - ) - new_files.append(new_file) - new_aovs[aov] = new_files - - return [new_aovs] - - -class ExpectedFilesMentalray(AExpectedFiles): - """Skeleton unimplemented class for Mentalray renderer.""" - - def __init__(self, layer, render_instance): - """Constructor. - - Raises: - :exc:`UnimplementedRendererException`: as it is not implemented. - - """ - super(ExpectedFilesMentalray, self).__init__(layer, render_instance) - raise UnimplementedRendererException("Mentalray not implemented") - - def get_aovs(self): - """Get all AOVs. - - See Also: - :func:`AExpectedFiles.get_aovs()` - - """ - return [] - - -class AOVError(Exception): - """Custom exception for determining AOVs.""" - - -class UnsupportedRendererException(Exception): - """Custom exception. - - Raised when requesting data from unsupported renderer. - """ - - -class UnimplementedRendererException(Exception): - """Custom exception. - - Raised when requesting data from renderer that is not implemented yet. - """ diff --git a/openpype/hosts/maya/plugins/publish/collect_render.py b/openpype/hosts/maya/plugins/publish/collect_render.py index 86ee7d4d64..14f15fbf2a 100644 --- a/openpype/hosts/maya/plugins/publish/collect_render.py +++ b/openpype/hosts/maya/plugins/publish/collect_render.py @@ -49,7 +49,6 @@ import maya.app.renderSetup.model.renderSetup as renderSetup import pyblish.api from avalon import maya, api -from openpype.hosts.maya.api.expected_files import ExpectedFiles from openpype.hosts.maya.api.lib_renderproducts import get as get_layer_render_products # noqa: E501 from openpype.hosts.maya.api import lib From 704b9cad07c82f9526e5acb0cc44a64e926525e1 Mon Sep 17 00:00:00 2001 From: Ondrej Samohel Date: Tue, 13 Jul 2021 15:38:15 +0200 Subject: [PATCH 006/120] simplify file list transform --- .../maya/plugins/publish/collect_render.py | 21 ++++++------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/openpype/hosts/maya/plugins/publish/collect_render.py b/openpype/hosts/maya/plugins/publish/collect_render.py index 14f15fbf2a..4ebc1aebad 100644 --- a/openpype/hosts/maya/plugins/publish/collect_render.py +++ b/openpype/hosts/maya/plugins/publish/collect_render.py @@ -186,24 +186,15 @@ class CollectMayaRender(pyblish.api.ContextPlugin): full_exp_files = [] aov_dict = {} - # we either get AOVs or just list of files. List of files can - # mean two things - there are no AOVs enabled or multipass EXR - # is produced. In either case we treat those as `beauty`. - if isinstance(exp_files[0], dict): - for aov, files in exp_files[0].items(): - full_paths = [] - for e in files: - full_path = os.path.join(workspace, "renders", e) - full_path = full_path.replace("\\", "/") - full_paths.append(full_path) - aov_dict[aov] = full_paths - else: + # replace relative paths with absolute. Render products are + # returned as list of dictionaries. + for aov in exp_files: full_paths = [] - for e in exp_files: - full_path = os.path.join(workspace, "renders", e) + for file in aov[aov.keys()[0]]: + full_path = os.path.join(workspace, "renders", file) full_path = full_path.replace("\\", "/") full_paths.append(full_path) - aov_dict["beauty"] = full_paths + aov_dict[aov.keys()[0]] = full_paths frame_start_render = int(self.get_render_attribute( "startFrame", layer=layer_name)) From 1a950f5c5a5b1cc02d5631c22a598173c7c04304 Mon Sep 17 00:00:00 2001 From: Ondrej Samohel Date: Mon, 26 Jul 2021 13:11:22 +0200 Subject: [PATCH 007/120] don't add reference members as connections to the set --- openpype/hosts/maya/api/plugin.py | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/openpype/hosts/maya/api/plugin.py b/openpype/hosts/maya/api/plugin.py index 257908c768..121f7a08a7 100644 --- a/openpype/hosts/maya/api/plugin.py +++ b/openpype/hosts/maya/api/plugin.py @@ -99,14 +99,24 @@ class ReferenceLoader(api.Loader): nodes = self[:] if not nodes: return - - loaded_containers.append(containerise( - name=name, - namespace=namespace, - nodes=nodes, - context=context, - loader=self.__class__.__name__ - )) + # FIXME: there is probably better way to do this for looks. + if "look" in self.families: + loaded_containers.append(containerise( + name=name, + namespace=namespace, + nodes=nodes, + context=context, + loader=self.__class__.__name__ + )) + else: + ref_node = self._get_reference_node(nodes) + loaded_containers.append(containerise( + name=name, + namespace=namespace, + nodes=[ref_node], + context=context, + loader=self.__class__.__name__ + )) c += 1 namespace = None @@ -235,9 +245,6 @@ class ReferenceLoader(api.Loader): self.log.info("Setting %s.verticesOnlySet to False", node) cmds.setAttr("{}.verticesOnlySet".format(node), False) - # Add new nodes of the reference to the container - cmds.sets(content, forceElement=node) - # Remove any placeHolderList attribute entries from the set that # are remaining from nodes being removed from the referenced file. members = cmds.sets(node, query=True) From 6a3992a3e11b949a5948319f78b403314ac83d87 Mon Sep 17 00:00:00 2001 From: Ondrej Samohel Date: Thu, 5 Aug 2021 17:54:58 +0200 Subject: [PATCH 008/120] =?UTF-8?q?add=20support=20for=20multiple=20deadli?= =?UTF-8?q?ne=20servers=20=F0=9F=96=A5=EF=B8=8F=F0=9F=96=A5=EF=B8=8F?= =?UTF-8?q?=F0=9F=96=A5=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../maya/plugins/create/create_render.py | 172 ++++++++++++------ openpype/modules/deadline/deadline_module.py | 10 +- .../plugins/publish/submit_maya_deadline.py | 16 +- .../plugins/publish/submit_nuke_deadline.py | 16 +- .../plugins/publish/submit_publish_job.py | 23 ++- .../publish/validate_deadline_connection.py | 27 +-- .../validate_expected_and_rendered_files.py | 17 +- .../defaults/project_settings/deadline.json | 1 + .../defaults/project_settings/maya.json | 12 +- .../defaults/project_settings/unreal.json | 3 +- .../defaults/system_settings/modules.json | 4 +- openpype/settings/entities/__init__.py | 4 +- openpype/settings/entities/enum_entity.py | 51 ++++++ .../schema_project_deadline.json | 6 + .../schemas/schema_maya_create.json | 24 ++- .../schemas/system_schema/schema_modules.json | 8 +- 16 files changed, 274 insertions(+), 120 deletions(-) diff --git a/openpype/hosts/maya/plugins/create/create_render.py b/openpype/hosts/maya/plugins/create/create_render.py index cbca091365..76cac5fe25 100644 --- a/openpype/hosts/maya/plugins/create/create_render.py +++ b/openpype/hosts/maya/plugins/create/create_render.py @@ -4,6 +4,7 @@ import os import json import appdirs import requests +import six from maya import cmds import maya.app.renderSetup.model.renderSetup as renderSetup @@ -12,7 +13,13 @@ from openpype.hosts.maya.api import ( lib, plugin ) -from openpype.api import (get_system_settings, get_asset) +from openpype.api import ( + get_system_settings, + get_project_settings, + get_asset) +from openpype.modules import ModulesManager + +from avalon.api import Session class CreateRender(plugin.Creator): @@ -83,6 +90,19 @@ class CreateRender(plugin.Creator): def __init__(self, *args, **kwargs): """Constructor.""" super(CreateRender, self).__init__(*args, **kwargs) + project_settings = get_project_settings(Session["AVALON_PROJECT"]) + try: + self.deadline_servers = ( + project_settings["deadline"] + ["deadline_servers"] + ) + except AttributeError: + # Handle situation were we had only one url for deadline. + manager = ModulesManager() + deadline_module = manager.modules_by_name["deadline"] + # get default deadline webservice url from deadline module + deadline_url = deadline_module.deadline_url + self.deadline_servers = {"default": deadline_url} def process(self): """Entry point.""" @@ -94,10 +114,10 @@ class CreateRender(plugin.Creator): use_selection = self.options.get("useSelection") with lib.undo_chunk(): self._create_render_settings() - instance = super(CreateRender, self).process() + self.instance = super(CreateRender, self).process() # create namespace with instance index = 1 - namespace_name = "_{}".format(str(instance)) + namespace_name = "_{}".format(str(self.instance)) try: cmds.namespace(rm=namespace_name) except RuntimeError: @@ -105,12 +125,19 @@ class CreateRender(plugin.Creator): pass while cmds.namespace(exists=namespace_name): - namespace_name = "_{}{}".format(str(instance), index) + namespace_name = "_{}{}".format(str(self.instance), index) index += 1 namespace = cmds.namespace(add=namespace_name) - cmds.setAttr("{}.machineList".format(instance), lock=True) + # add Deadline server selection list + cmds.scriptJob( + attributeChange=[ + "{}.deadlineServers".format(self.instance), + self._deadline_webservice_changed + ]) + + cmds.setAttr("{}.machineList".format(self.instance), lock=True) self._rs = renderSetup.instance() layers = self._rs.getRenderLayers() if use_selection: @@ -122,7 +149,7 @@ class CreateRender(plugin.Creator): render_set = cmds.sets( n="{}:{}".format(namespace, layer.name())) sets.append(render_set) - cmds.sets(sets, forceElement=instance) + cmds.sets(sets, forceElement=self.instance) # if no render layers are present, create default one with # asterisk selector @@ -138,62 +165,56 @@ class CreateRender(plugin.Creator): renderer = 'renderman' self._set_default_renderer_settings(renderer) + return self.instance + + def _deadline_webservice_changed(self): + """Refresh Deadline server dependent options.""" + # get selected server + webservice = self.deadline_servers[ + self.server_aliases[ + cmds.getAttr("{}.deadlineServers".format(self.instance)) + ] + ] + pools = self._get_deadline_pools(webservice) + cmds.deleteAttr("{}.primaryPool".format(self.instance)) + cmds.deleteAttr("{}.secondaryPool".format(self.instance)) + cmds.addAttr(self.instance, longName="primaryPool", + attributeType="enum", + enumName=":".join(pools)) + cmds.addAttr(self.instance, longName="secondaryPool", + attributeType="enum", + enumName=":".join(["-"] + pools)) + + def _get_deadline_pools(self, webservice): + # type: (str) -> list + """Get pools from Deadline. + Args: + webservice (str): Server url. + Returns: + list: Pools. + Throws: + RuntimeError: If deadline webservice is unreachable. + + """ + argument = "{}/api/pools?NamesOnly=true".format(webservice) + try: + response = self._requests_get(argument) + except requests.exceptions.ConnectionError as exc: + msg = 'Cannot connect to deadline web service' + self.log.error(msg) + six.reraise(exc, RuntimeError('{} - {}'.format(msg, exc))) + if not response.ok: + self.log.warning("No pools retrieved") + return [] + + return response.json() def _create_render_settings(self): # get pools - pools = [] - - system_settings = get_system_settings()["modules"] - - deadline_enabled = system_settings["deadline"]["enabled"] - muster_enabled = system_settings["muster"]["enabled"] - deadline_url = system_settings["deadline"]["DEADLINE_REST_URL"] - muster_url = system_settings["muster"]["MUSTER_REST_URL"] - - if deadline_enabled and muster_enabled: - self.log.error( - "Both Deadline and Muster are enabled. " "Cannot support both." - ) - raise RuntimeError("Both Deadline and Muster are enabled") - - if deadline_enabled: - argument = "{}/api/pools?NamesOnly=true".format(deadline_url) - try: - response = self._requests_get(argument) - except requests.exceptions.ConnectionError as e: - msg = 'Cannot connect to deadline web service' - self.log.error(msg) - raise RuntimeError('{} - {}'.format(msg, e)) - if not response.ok: - self.log.warning("No pools retrieved") - else: - pools = response.json() - self.data["primaryPool"] = pools - # We add a string "-" to allow the user to not - # set any secondary pools - self.data["secondaryPool"] = ["-"] + pools - - if muster_enabled: - self.log.info(">>> Loading Muster credentials ...") - self._load_credentials() - self.log.info(">>> Getting pools ...") - try: - pools = self._get_muster_pools() - except requests.exceptions.HTTPError as e: - if e.startswith("401"): - self.log.warning("access token expired") - self._show_login() - raise RuntimeError("Access token expired") - except requests.exceptions.ConnectionError: - self.log.error("Cannot connect to Muster API endpoint.") - raise RuntimeError("Cannot connect to {}".format(muster_url)) - pool_names = [] - for pool in pools: - self.log.info(" - pool: {}".format(pool["name"])) - pool_names.append(pool["name"]) - - self.data["primaryPool"] = pool_names + pool_names = [] + self.server_aliases = self.deadline_servers.keys() + self.data["deadlineServers"] = self.server_aliases self.data["suspendPublishJob"] = False self.data["review"] = True self.data["extendFrames"] = False @@ -212,6 +233,41 @@ class CreateRender(plugin.Creator): # Disable for now as this feature is not working yet # self.data["assScene"] = False + system_settings = get_system_settings()["modules"] + + deadline_enabled = system_settings["deadline"]["enabled"] + muster_enabled = system_settings["muster"]["enabled"] + muster_url = system_settings["muster"]["MUSTER_REST_URL"] + + if deadline_enabled and muster_enabled: + self.log.error( + "Both Deadline and Muster are enabled. " "Cannot support both." + ) + raise RuntimeError("Both Deadline and Muster are enabled") + + if deadline_enabled: + pool_names = self._get_deadline_pools( + self.deadline_servers["default"]) + + if muster_enabled: + self.log.info(">>> Loading Muster credentials ...") + self._load_credentials() + self.log.info(">>> Getting pools ...") + try: + pools = self._get_muster_pools() + except requests.exceptions.HTTPError as e: + if e.startswith("401"): + self.log.warning("access token expired") + self._show_login() + raise RuntimeError("Access token expired") + except requests.exceptions.ConnectionError: + self.log.error("Cannot connect to Muster API endpoint.") + raise RuntimeError("Cannot connect to {}".format(muster_url)) + for pool in pools: + self.log.info(" - pool: {}".format(pool["name"])) + pool_names.append(pool["name"]) + + self.data["primaryPool"] = pool_names self.options = {"useSelection": False} # Force no content def _load_credentials(self): diff --git a/openpype/modules/deadline/deadline_module.py b/openpype/modules/deadline/deadline_module.py index 2a2fba41d6..8329b3151b 100644 --- a/openpype/modules/deadline/deadline_module.py +++ b/openpype/modules/deadline/deadline_module.py @@ -10,7 +10,15 @@ class DeadlineModule(PypeModule, IPluginPaths): # This module is always enabled deadline_settings = modules_settings[self.name] self.enabled = deadline_settings["enabled"] - self.deadline_url = deadline_settings["DEADLINE_REST_URL"] + deadline_url = deadline_settings.get("DEADLINE_REST_URL") + if not deadline_url: + deadline_url = deadline_settings.get("deadline_urls", {}).get("default") # noqa: E501 + if not deadline_url: + self.enabled = False + self.log.warning(("default Deadline Webservice URL " + "not specified. Disabling module.")) + return + self.deadline_url = deadline_url def get_global_environments(self): """Deadline global environments for OpenPype implementation.""" diff --git a/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py b/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py index a652da7786..f8577e24fa 100644 --- a/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py +++ b/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py @@ -36,6 +36,7 @@ from avalon import api import pyblish.api from openpype.hosts.maya.api import lib +from openpype.modules import ModulesManager # Documentation for keys available at: # https://docs.thinkboxsoftware.com @@ -264,12 +265,15 @@ class MayaSubmitDeadline(pyblish.api.InstancePlugin): self._instance = instance self.payload_skeleton = copy.deepcopy(payload_skeleton_template) - self._deadline_url = ( - context.data["system_settings"] - ["modules"] - ["deadline"] - ["DEADLINE_REST_URL"] - ) + + manager = ModulesManager() + deadline_module = manager.modules_by_name["deadline"] + # get default deadline webservice url from deadline module + self.deadline_url = deadline_module.deadline_url + # if custom one is set in instance, use that + if instance.data.get("deadlineUrl"): + self.deadline_url = instance.data.get("deadlineUrl") + assert self.deadline_url, "Requires Deadline Webservice URL" self._job_info = ( context.data["project_settings"].get( diff --git a/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py b/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py index fed98d8a08..1624423715 100644 --- a/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py +++ b/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py @@ -4,6 +4,7 @@ import getpass from avalon import api from avalon.vendor import requests +from openpype.modules import ModulesManager import re import pyblish.api import nuke @@ -42,13 +43,14 @@ class NukeSubmitDeadline(pyblish.api.InstancePlugin): node = instance[0] context = instance.context - deadline_url = ( - context.data["system_settings"] - ["modules"] - ["deadline"] - ["DEADLINE_REST_URL"] - ) - assert deadline_url, "Requires DEADLINE_REST_URL" + manager = ModulesManager() + deadline_module = manager.modules_by_name["deadline"] + # get default deadline webservice url from deadline module + self.deadline_url = deadline_module.deadline_url + # if custom one is set in instance, use that + if instance.data.get("deadlineUrl"): + self.deadline_url = instance.data.get("deadlineUrl") + assert self.deadline_url, "Requires Deadline Webservice URL" self.deadline_url = "{}/api/jobs".format(deadline_url) self._comment = context.data.get("comment", "") diff --git a/openpype/modules/deadline/plugins/publish/submit_publish_job.py b/openpype/modules/deadline/plugins/publish/submit_publish_job.py index 41f8337fd8..ed838e64ed 100644 --- a/openpype/modules/deadline/plugins/publish/submit_publish_job.py +++ b/openpype/modules/deadline/plugins/publish/submit_publish_job.py @@ -5,7 +5,7 @@ import os import json import re from copy import copy, deepcopy -import sys +from openpype.modules import ModulesManager import openpype.api from avalon import api, io @@ -615,14 +615,16 @@ class ProcessSubmittedJobOnFarm(pyblish.api.InstancePlugin): instance["families"] = families def process(self, instance): + # type: (pyblish.api.Instance) -> None """Process plugin. Detect type of renderfarm submission and create and post dependend job in case of Deadline. It creates json file with metadata needed for publishing in directory of render. - :param instance: Instance data - :type instance: dict + Args: + instance (pyblish.api.Instance): Instance data. + """ data = instance.data.copy() context = instance.context @@ -908,13 +910,14 @@ class ProcessSubmittedJobOnFarm(pyblish.api.InstancePlugin): } if submission_type == "deadline": - self.deadline_url = ( - context.data["system_settings"] - ["modules"] - ["deadline"] - ["DEADLINE_REST_URL"] - ) - assert self.deadline_url, "Requires DEADLINE_REST_URL" + manager = ModulesManager() + deadline_module = manager.modules_by_name["deadline"] + # get default deadline webservice url from deadline module + self.deadline_url = deadline_module.deadline_url + # if custom one is set in instance, use that + if instance.data.get("deadlineUrl"): + self.deadline_url = instance.data.get("deadlineUrl") + assert self.deadline_url, "Requires Deadline Webservice URL" self._submit_deadline_post_job(instance, render_job, instances) diff --git a/openpype/modules/deadline/plugins/publish/validate_deadline_connection.py b/openpype/modules/deadline/plugins/publish/validate_deadline_connection.py index 9b10619c0b..1dba94d822 100644 --- a/openpype/modules/deadline/plugins/publish/validate_deadline_connection.py +++ b/openpype/modules/deadline/plugins/publish/validate_deadline_connection.py @@ -1,11 +1,11 @@ import pyblish.api from avalon.vendor import requests -from openpype.plugin import contextplugin_should_run +from openpype.modules import ModulesManager import os -class ValidateDeadlineConnection(pyblish.api.ContextPlugin): +class ValidateDeadlineConnection(pyblish.api.InstancePlugin): """Validate Deadline Web Service is running""" label = "Validate Deadline Web Service" @@ -13,18 +13,19 @@ class ValidateDeadlineConnection(pyblish.api.ContextPlugin): hosts = ["maya", "nuke"] families = ["renderlayer"] - def process(self, context): + def process(self, instance): - # Workaround bug pyblish-base#250 - if not contextplugin_should_run(self, context): - return - - deadline_url = ( - context.data["system_settings"] - ["modules"] - ["deadline"] - ["DEADLINE_REST_URL"] - ) + manager = ModulesManager() + deadline_module = manager.modules_by_name["deadline"] + # get default deadline webservice url from deadline module + deadline_url = deadline_module.deadline_url + # if custom one is set in instance, use that + if instance.data.get("deadlineUrl"): + deadline_url = instance.data.get("deadlineUrl") + self.log.info( + "We have deadline URL on instance {}".format( + deadline_url)) + assert deadline_url, "Requires Deadline Webservice URL" # Check response response = self._requests_get(deadline_url) diff --git a/openpype/modules/deadline/plugins/publish/validate_expected_and_rendered_files.py b/openpype/modules/deadline/plugins/publish/validate_expected_and_rendered_files.py index c71b5106ec..ca82c54fb8 100644 --- a/openpype/modules/deadline/plugins/publish/validate_expected_and_rendered_files.py +++ b/openpype/modules/deadline/plugins/publish/validate_expected_and_rendered_files.py @@ -4,9 +4,9 @@ import pyblish.api from avalon.vendor import requests -from openpype.api import get_system_settings from openpype.lib.abstract_submit_deadline import requests_get from openpype.lib.delivery import collect_frames +from openpype.modules import ModulesManager class ValidateExpectedFiles(pyblish.api.InstancePlugin): @@ -129,13 +129,14 @@ class ValidateExpectedFiles(pyblish.api.InstancePlugin): Might be different than job info saved in metadata.json if user manually changes job pre/during rendering. """ - deadline_url = ( - get_system_settings() - ["modules"] - ["deadline"] - ["DEADLINE_REST_URL"] - ) - assert deadline_url, "Requires DEADLINE_REST_URL" + manager = ModulesManager() + deadline_module = manager.modules_by_name["deadline"] + # get default deadline webservice url from deadline module + deadline_url = deadline_module.deadline_url + # if custom one is set in instance, use that + if instance.data.get("deadlineUrl"): + deadline_url = instance.data.get("deadlineUrl") + assert deadline_url, "Requires Deadline Webservice URL" url = "{}/api/jobs?JobID={}".format(deadline_url, job_id) try: diff --git a/openpype/settings/defaults/project_settings/deadline.json b/openpype/settings/defaults/project_settings/deadline.json index 2dba20d63c..81d611af1e 100644 --- a/openpype/settings/defaults/project_settings/deadline.json +++ b/openpype/settings/defaults/project_settings/deadline.json @@ -1,4 +1,5 @@ { + "deadline_servers": [], "publish": { "ValidateExpectedFiles": { "enabled": true, diff --git a/openpype/settings/defaults/project_settings/maya.json b/openpype/settings/defaults/project_settings/maya.json index 1db6cdf9f1..e19c03b139 100644 --- a/openpype/settings/defaults/project_settings/maya.json +++ b/openpype/settings/defaults/project_settings/maya.json @@ -31,6 +31,12 @@ "Main" ] }, + "CreateRender": { + "enabled": true, + "defaults": [ + "Main" + ] + }, "CreateAnimation": { "enabled": true, "defaults": [ @@ -81,12 +87,6 @@ "Main" ] }, - "CreateRender": { - "enabled": true, - "defaults": [ - "Main" - ] - }, "CreateRenderSetup": { "enabled": true, "defaults": [ diff --git a/openpype/settings/defaults/project_settings/unreal.json b/openpype/settings/defaults/project_settings/unreal.json index 46b9ca2a18..dad61cd1f0 100644 --- a/openpype/settings/defaults/project_settings/unreal.json +++ b/openpype/settings/defaults/project_settings/unreal.json @@ -1,6 +1,5 @@ { "project_setup": { - "dev_mode": true, - "install_unreal_python_engine": false + "dev_mode": true } } \ No newline at end of file diff --git a/openpype/settings/defaults/system_settings/modules.json b/openpype/settings/defaults/system_settings/modules.json index 1b74b4695c..3a70b90590 100644 --- a/openpype/settings/defaults/system_settings/modules.json +++ b/openpype/settings/defaults/system_settings/modules.json @@ -140,7 +140,9 @@ }, "deadline": { "enabled": true, - "DEADLINE_REST_URL": "http://localhost:8082" + "deadline_urls": { + "default": "http://127.0.0.1:8082" + } }, "muster": { "enabled": false, diff --git a/openpype/settings/entities/__init__.py b/openpype/settings/entities/__init__.py index c0eef15e69..9cda702e9a 100644 --- a/openpype/settings/entities/__init__.py +++ b/openpype/settings/entities/__init__.py @@ -105,7 +105,8 @@ from .enum_entity import ( AppsEnumEntity, ToolsEnumEntity, TaskTypeEnumEntity, - ProvidersEnum + ProvidersEnum, + DeadlineUrlEnumEntity ) from .list_entity import ListEntity @@ -160,6 +161,7 @@ __all__ = ( "ToolsEnumEntity", "TaskTypeEnumEntity", "ProvidersEnum", + "DeadlineUrlEnumEntity", "ListEntity", diff --git a/openpype/settings/entities/enum_entity.py b/openpype/settings/entities/enum_entity.py index 4f6a2886bc..7b3de1ffe7 100644 --- a/openpype/settings/entities/enum_entity.py +++ b/openpype/settings/entities/enum_entity.py @@ -423,3 +423,54 @@ class ProvidersEnum(BaseEnumEntity): self._current_value = value_on_not_set self.value_on_not_set = value_on_not_set + + +class DeadlineUrlEnumEntity(BaseEnumEntity): + schema_types = ["deadline_url-enum"] + + def _item_initalization(self): + self.multiselection = self.schema_data.get("multiselection", True) + + self.enum_items = [] + self.valid_keys = set() + + if self.multiselection: + self.valid_value_types = (list,) + self.value_on_not_set = [] + else: + for key in self.valid_keys: + if self.value_on_not_set is NOT_SET: + self.value_on_not_set = key + break + + self.valid_value_types = (STRING_TYPE,) + + # GUI attribute + self.placeholder = self.schema_data.get("placeholder") + + def _get_enum_values(self): + system_settings_entity = self.get_entity_from_path("system_settings") + + valid_keys = set() + enum_items_list = [] + deadline_urls_entity = (system_settings_entity + ["modules"] + ["deadline"] + ["deadline_urls"] + ) + for server_name, url_entity in deadline_urls_entity.items(): + enum_items_list.append( + {server_name: "{}: {}".format(server_name, url_entity.value)}) + valid_keys.add(server_name) + return enum_items_list, valid_keys + + def set_override_state(self, *args, **kwargs): + super(DeadlineUrlEnumEntity, self).set_override_state(*args, **kwargs) + + self.enum_items, self.valid_keys = self._get_enum_values() + new_value = [] + for key in self._current_value: + if key in self.valid_keys: + new_value.append(key) + self._current_value = new_value + diff --git a/openpype/settings/entities/schemas/projects_schema/schema_project_deadline.json b/openpype/settings/entities/schemas/projects_schema/schema_project_deadline.json index 27eeaef559..bd14d2ea9d 100644 --- a/openpype/settings/entities/schemas/projects_schema/schema_project_deadline.json +++ b/openpype/settings/entities/schemas/projects_schema/schema_project_deadline.json @@ -5,6 +5,12 @@ "collapsible": true, "is_file": true, "children": [ + { + "type": "deadline_url-enum", + "key": "deadline_servers", + "label": "Deadline Webservice URLs", + "multiselect": true + }, { "type": "dict", "collapsible": true, diff --git a/openpype/settings/entities/schemas/projects_schema/schemas/schema_maya_create.json b/openpype/settings/entities/schemas/projects_schema/schemas/schema_maya_create.json index d728f1def3..44a35af7c1 100644 --- a/openpype/settings/entities/schemas/projects_schema/schemas/schema_maya_create.json +++ b/openpype/settings/entities/schemas/projects_schema/schemas/schema_maya_create.json @@ -29,6 +29,26 @@ } ] }, + { + "type": "dict", + "collapsible": true, + "key": "CreateRender", + "label": "Create Render", + "checkbox_key": "enabled", + "children": [ + { + "type": "boolean", + "key": "enabled", + "label": "Enabled" + }, + { + "type": "list", + "key": "defaults", + "label": "Default Subsets", + "object_type": "text" + } + ] + }, { "type": "schema_template", "name": "template_create_plugin", @@ -65,10 +85,6 @@ "key": "CreatePointCache", "label": "Create Cache" }, - { - "key": "CreateRender", - "label": "Create Render" - }, { "key": "CreateRenderSetup", "label": "Create Render Setup" diff --git a/openpype/settings/entities/schemas/system_schema/schema_modules.json b/openpype/settings/entities/schemas/system_schema/schema_modules.json index 7d734ff4fd..75c08b2cd9 100644 --- a/openpype/settings/entities/schemas/system_schema/schema_modules.json +++ b/openpype/settings/entities/schemas/system_schema/schema_modules.json @@ -130,9 +130,11 @@ "label": "Enabled" }, { - "type": "text", - "key": "DEADLINE_REST_URL", - "label": "Deadline Resl URL" + "type": "dict-modifiable", + "object_type": "text", + "key": "deadline_urls", + "required_keys": ["default"], + "label": "Deadline Webservice URLs" } ] }, From 8424821fbc090ddb82ae8028dbf76b7284bc01ae Mon Sep 17 00:00:00 2001 From: Ondrej Samohel Date: Fri, 6 Aug 2021 14:41:50 +0200 Subject: [PATCH 009/120] =?UTF-8?q?finalize=20support=20for=20multiple=20d?= =?UTF-8?q?eadline=20servers=20=EF=B8=8F=EF=B8=8F=EF=B8=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../maya/plugins/create/create_render.py | 34 ++++++++--- .../maya/plugins/publish/collect_render.py | 61 ++++++++++++++++++- openpype/lib/abstract_submit_deadline.py | 12 ++-- .../collect_default_deadline_server.py | 17 ++++++ .../plugins/publish/submit_maya_deadline.py | 13 ++-- .../plugins/publish/submit_nuke_deadline.py | 9 +-- .../plugins/publish/submit_publish_job.py | 5 +- .../publish/validate_deadline_connection.py | 6 +- .../validate_expected_and_rendered_files.py | 10 ++- 9 files changed, 120 insertions(+), 47 deletions(-) create mode 100644 openpype/modules/deadline/plugins/publish/collect_default_deadline_server.py diff --git a/openpype/hosts/maya/plugins/create/create_render.py b/openpype/hosts/maya/plugins/create/create_render.py index 76cac5fe25..98ad3114d1 100644 --- a/openpype/hosts/maya/plugins/create/create_render.py +++ b/openpype/hosts/maya/plugins/create/create_render.py @@ -5,6 +5,7 @@ import json import appdirs import requests import six +import sys from maya import cmds import maya.app.renderSetup.model.renderSetup as renderSetup @@ -90,12 +91,20 @@ class CreateRender(plugin.Creator): def __init__(self, *args, **kwargs): """Constructor.""" super(CreateRender, self).__init__(*args, **kwargs) + deadline_settings = get_system_settings()["modules"]["deadline"] + if not deadline_settings["enabled"]: + self.deadline_servers = {} + return project_settings = get_project_settings(Session["AVALON_PROJECT"]) try: - self.deadline_servers = ( + default_servers = deadline_settings["deadline_urls"] + project_servers = ( project_settings["deadline"] ["deadline_servers"] ) + self.deadline_servers = dict( + (k, default_servers[k]) + for k in project_servers if k in default_servers) except AttributeError: # Handle situation were we had only one url for deadline. manager = ModulesManager() @@ -131,11 +140,12 @@ class CreateRender(plugin.Creator): namespace = cmds.namespace(add=namespace_name) # add Deadline server selection list - cmds.scriptJob( - attributeChange=[ - "{}.deadlineServers".format(self.instance), - self._deadline_webservice_changed - ]) + if self.deadline_servers: + cmds.scriptJob( + attributeChange=[ + "{}.deadlineServers".format(self.instance), + self._deadline_webservice_changed + ]) cmds.setAttr("{}.machineList".format(self.instance), lock=True) self._rs = renderSetup.instance() @@ -170,6 +180,7 @@ class CreateRender(plugin.Creator): def _deadline_webservice_changed(self): """Refresh Deadline server dependent options.""" # get selected server + from maya import cmds webservice = self.deadline_servers[ self.server_aliases[ cmds.getAttr("{}.deadlineServers".format(self.instance)) @@ -194,7 +205,7 @@ class CreateRender(plugin.Creator): list: Pools. Throws: RuntimeError: If deadline webservice is unreachable. - + """ argument = "{}/api/pools?NamesOnly=true".format(webservice) try: @@ -202,7 +213,10 @@ class CreateRender(plugin.Creator): except requests.exceptions.ConnectionError as exc: msg = 'Cannot connect to deadline web service' self.log.error(msg) - six.reraise(exc, RuntimeError('{} - {}'.format(msg, exc))) + six.reraise( + RuntimeError, + RuntimeError('{} - {}'.format(msg, exc)), + sys.exc_info()[2]) if not response.ok: self.log.warning("No pools retrieved") return [] @@ -268,6 +282,9 @@ class CreateRender(plugin.Creator): pool_names.append(pool["name"]) self.data["primaryPool"] = pool_names + # We add a string "-" to allow the user to not + # set any secondary pools + self.data["secondaryPool"] = ["-"] + pool_names self.options = {"useSelection": False} # Force no content def _load_credentials(self): @@ -388,6 +405,7 @@ class CreateRender(plugin.Creator): if renderer == "arnold": # set format to exr + cmds.setAttr( "defaultArnoldDriver.ai_translator", "exr", type="string") # enable animation diff --git a/openpype/hosts/maya/plugins/publish/collect_render.py b/openpype/hosts/maya/plugins/publish/collect_render.py index 647a46e240..85afd971c6 100644 --- a/openpype/hosts/maya/plugins/publish/collect_render.py +++ b/openpype/hosts/maya/plugins/publish/collect_render.py @@ -51,6 +51,12 @@ import pyblish.api from avalon import maya, api from openpype.hosts.maya.api.expected_files import ExpectedFiles from openpype.hosts.maya.api import lib +from openpype.api import ( + get_system_settings, + get_project_settings +) + +from avalon.api import Session class CollectMayaRender(pyblish.api.ContextPlugin): @@ -86,6 +92,10 @@ class CollectMayaRender(pyblish.api.ContextPlugin): asset = api.Session["AVALON_ASSET"] workspace = context.data["workspaceDir"] + deadline_settings = get_system_settings()["modules"]["deadline"] + + if deadline_settings["enabled"]: + deadline_url = self._collect_deadline_url(render_instance) self._rs = renderSetup.instance() current_layer = self._rs.getVisibleRenderLayer() maya_render_layers = { @@ -263,6 +273,9 @@ class CollectMayaRender(pyblish.api.ContextPlugin): "vrayUseReferencedAovs") or False } + if deadline_url: + data["deadlineUrl"] = deadline_url + if self.sync_workfile_version: data["version"] = context.data["version"] @@ -392,11 +405,13 @@ class CollectMayaRender(pyblish.api.ContextPlugin): rset = self.maya_layers[layer].renderSettingsCollectionInstance() return rset.getOverrides() - def get_render_attribute(self, attr, layer): + @staticmethod + def get_render_attribute(attr, layer): """Get attribute from render options. Args: - attr (str): name of attribute to be looked up. + attr (str): name of attribute to be looked up + layer (str): name of render layer Returns: Attribute value @@ -405,3 +420,45 @@ class CollectMayaRender(pyblish.api.ContextPlugin): return lib.get_attr_in_layer( "defaultRenderGlobals.{}".format(attr), layer=layer ) + + @staticmethod + def _collect_deadline_url(render_instance): + # type: (pyblish.api.Instance) -> str + """Get Deadline Webservice URL from render instance. + + This will get all configured Deadline Webservice URLs and create + subset of them based upon project configuration. It will then take + `deadlineServers` from render instance that is now basically `int` + index of that list. + + Args: + render_instance (pyblish.api.Instance): Render instance created + by Creator in Maya. + + Returns: + str: Selected Deadline Webservice URL. + + """ + + deadline_settings = get_system_settings()["modules"]["deadline"] + project_settings = get_project_settings(Session["AVALON_PROJECT"]) + try: + default_servers = deadline_settings["deadline_urls"] + project_servers = ( + project_settings["deadline"] + ["deadline_servers"] + ) + deadline_servers = dict( + (k, default_servers[k]) + for k in project_servers if k in default_servers) + except AttributeError: + # Handle situation were we had only one url for deadline. + deadline_url = render_instance.context.data["defaultDeadline"] + deadline_servers = {"default": deadline_url} + + deadline_url = deadline_servers[ + list(deadline_servers.keys())[ + int(render_instance.data.get("deadlineServers")) + ] + ] + return deadline_url diff --git a/openpype/lib/abstract_submit_deadline.py b/openpype/lib/abstract_submit_deadline.py index 4a052a4ee2..5b6e1743e0 100644 --- a/openpype/lib/abstract_submit_deadline.py +++ b/openpype/lib/abstract_submit_deadline.py @@ -415,13 +415,11 @@ class AbstractSubmitDeadline(pyblish.api.InstancePlugin): """Plugin entry point.""" self._instance = instance context = instance.context - self._deadline_url = ( - context.data["system_settings"] - ["modules"] - ["deadline"] - ["DEADLINE_REST_URL"] - ) - assert self._deadline_url, "Requires DEADLINE_REST_URL" + self._deadline_url = context.data.get("defaultDeadline") + self._deadline_url = instance.data.get( + "deadlineUrl", self._deadline_url) + + assert self._deadline_url, "Requires Deadline Webservice URL" file_path = None if self.use_published: diff --git a/openpype/modules/deadline/plugins/publish/collect_default_deadline_server.py b/openpype/modules/deadline/plugins/publish/collect_default_deadline_server.py new file mode 100644 index 0000000000..2bb18486ff --- /dev/null +++ b/openpype/modules/deadline/plugins/publish/collect_default_deadline_server.py @@ -0,0 +1,17 @@ +# -*- coding: utf-8 -*- +"""Collect default Deadline server.""" +from openpype.modules import ModulesManager +import pyblish.api + + +class CollectDefaultDeadlineServer(pyblish.api.ContextPlugin): + """Collect default Deadline Webservice URL.""" + + order = pyblish.api.CollectorOrder + 0.01 + label = "Default Deadline Webservice" + + def process(self, context): + manager = ModulesManager() + deadline_module = manager.modules_by_name["deadline"] + # get default deadline webservice url from deadline module + context.data["defaultDeadline"] = deadline_module.deadline_url diff --git a/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py b/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py index f8577e24fa..898a257112 100644 --- a/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py +++ b/openpype/modules/deadline/plugins/publish/submit_maya_deadline.py @@ -36,7 +36,6 @@ from avalon import api import pyblish.api from openpype.hosts.maya.api import lib -from openpype.modules import ModulesManager # Documentation for keys available at: # https://docs.thinkboxsoftware.com @@ -266,10 +265,8 @@ class MayaSubmitDeadline(pyblish.api.InstancePlugin): self._instance = instance self.payload_skeleton = copy.deepcopy(payload_skeleton_template) - manager = ModulesManager() - deadline_module = manager.modules_by_name["deadline"] # get default deadline webservice url from deadline module - self.deadline_url = deadline_module.deadline_url + self.deadline_url = instance.context.data.get("defaultDeadline") # if custom one is set in instance, use that if instance.data.get("deadlineUrl"): self.deadline_url = instance.data.get("deadlineUrl") @@ -291,8 +288,6 @@ class MayaSubmitDeadline(pyblish.api.InstancePlugin): "pluginInfo", {}) ) - assert self._deadline_url, "Requires DEADLINE_REST_URL" - context = instance.context workspace = context.data["workspaceDir"] anatomy = context.data['anatomy'] @@ -674,7 +669,7 @@ class MayaSubmitDeadline(pyblish.api.InstancePlugin): self.log.info( "Submitting tile job(s) [{}] ...".format(len(frame_payloads))) - url = "{}/api/jobs".format(self._deadline_url) + url = "{}/api/jobs".format(self.deadline_url) tiles_count = instance.data.get("tilesX") * instance.data.get("tilesY") # noqa: E501 for tile_job in frame_payloads: @@ -758,7 +753,7 @@ class MayaSubmitDeadline(pyblish.api.InstancePlugin): self.log.debug(json.dumps(payload, indent=4, sort_keys=True)) # E.g. http://192.168.0.1:8082/api/jobs - url = "{}/api/jobs".format(self._deadline_url) + url = "{}/api/jobs".format(self.deadline_url) response = self._requests_post(url, json=payload) if not response.ok: raise Exception(response.text) @@ -968,7 +963,7 @@ class MayaSubmitDeadline(pyblish.api.InstancePlugin): payload = self._get_arnold_export_payload(data) self.log.info("Submitting ass export job.") - url = "{}/api/jobs".format(self._deadline_url) + url = "{}/api/jobs".format(self.deadline_url) response = self._requests_post(url, json=payload) if not response.ok: self.log.error("Submition failed!") diff --git a/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py b/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py index 1624423715..1baef5c297 100644 --- a/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py +++ b/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py @@ -4,7 +4,6 @@ import getpass from avalon import api from avalon.vendor import requests -from openpype.modules import ModulesManager import re import pyblish.api import nuke @@ -43,14 +42,12 @@ class NukeSubmitDeadline(pyblish.api.InstancePlugin): node = instance[0] context = instance.context - manager = ModulesManager() - deadline_module = manager.modules_by_name["deadline"] # get default deadline webservice url from deadline module - self.deadline_url = deadline_module.deadline_url + deadline_url = instance.context.data["defaultDeadline"] # if custom one is set in instance, use that if instance.data.get("deadlineUrl"): - self.deadline_url = instance.data.get("deadlineUrl") - assert self.deadline_url, "Requires Deadline Webservice URL" + deadline_url = instance.data.get("deadlineUrl") + assert deadline_url, "Requires Deadline Webservice URL" self.deadline_url = "{}/api/jobs".format(deadline_url) self._comment = context.data.get("comment", "") diff --git a/openpype/modules/deadline/plugins/publish/submit_publish_job.py b/openpype/modules/deadline/plugins/publish/submit_publish_job.py index ed838e64ed..19e3174384 100644 --- a/openpype/modules/deadline/plugins/publish/submit_publish_job.py +++ b/openpype/modules/deadline/plugins/publish/submit_publish_job.py @@ -5,7 +5,6 @@ import os import json import re from copy import copy, deepcopy -from openpype.modules import ModulesManager import openpype.api from avalon import api, io @@ -910,10 +909,8 @@ class ProcessSubmittedJobOnFarm(pyblish.api.InstancePlugin): } if submission_type == "deadline": - manager = ModulesManager() - deadline_module = manager.modules_by_name["deadline"] # get default deadline webservice url from deadline module - self.deadline_url = deadline_module.deadline_url + self.deadline_url = instance.context.data["defaultDeadline"] # if custom one is set in instance, use that if instance.data.get("deadlineUrl"): self.deadline_url = instance.data.get("deadlineUrl") diff --git a/openpype/modules/deadline/plugins/publish/validate_deadline_connection.py b/openpype/modules/deadline/plugins/publish/validate_deadline_connection.py index 1dba94d822..ff664d9f83 100644 --- a/openpype/modules/deadline/plugins/publish/validate_deadline_connection.py +++ b/openpype/modules/deadline/plugins/publish/validate_deadline_connection.py @@ -1,7 +1,6 @@ import pyblish.api from avalon.vendor import requests -from openpype.modules import ModulesManager import os @@ -14,11 +13,8 @@ class ValidateDeadlineConnection(pyblish.api.InstancePlugin): families = ["renderlayer"] def process(self, instance): - - manager = ModulesManager() - deadline_module = manager.modules_by_name["deadline"] # get default deadline webservice url from deadline module - deadline_url = deadline_module.deadline_url + deadline_url = instance.context.data["defaultDeadline"] # if custom one is set in instance, use that if instance.data.get("deadlineUrl"): deadline_url = instance.data.get("deadlineUrl") diff --git a/openpype/modules/deadline/plugins/publish/validate_expected_and_rendered_files.py b/openpype/modules/deadline/plugins/publish/validate_expected_and_rendered_files.py index ca82c54fb8..2d16bc965d 100644 --- a/openpype/modules/deadline/plugins/publish/validate_expected_and_rendered_files.py +++ b/openpype/modules/deadline/plugins/publish/validate_expected_and_rendered_files.py @@ -6,7 +6,6 @@ from avalon.vendor import requests from openpype.lib.abstract_submit_deadline import requests_get from openpype.lib.delivery import collect_frames -from openpype.modules import ModulesManager class ValidateExpectedFiles(pyblish.api.InstancePlugin): @@ -22,6 +21,7 @@ class ValidateExpectedFiles(pyblish.api.InstancePlugin): allow_user_override = True def process(self, instance): + self.instance = instance frame_list = self._get_frame_list(instance.data["render_job_id"]) for repre in instance.data["representations"]: @@ -129,13 +129,11 @@ class ValidateExpectedFiles(pyblish.api.InstancePlugin): Might be different than job info saved in metadata.json if user manually changes job pre/during rendering. """ - manager = ModulesManager() - deadline_module = manager.modules_by_name["deadline"] # get default deadline webservice url from deadline module - deadline_url = deadline_module.deadline_url + deadline_url = self.instance.context.data["defaultDeadline"] # if custom one is set in instance, use that - if instance.data.get("deadlineUrl"): - deadline_url = instance.data.get("deadlineUrl") + if self.instance.data.get("deadlineUrl"): + deadline_url = self.instance.data.get("deadlineUrl") assert deadline_url, "Requires Deadline Webservice URL" url = "{}/api/jobs?JobID={}".format(deadline_url, job_id) From dfb230566af0aa4682f08e491795f060daed3a46 Mon Sep 17 00:00:00 2001 From: Ondrej Samohel Date: Fri, 6 Aug 2021 14:45:49 +0200 Subject: [PATCH 010/120] =?UTF-8?q?hound=20=F0=9F=90=95=E2=80=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- openpype/settings/entities/enum_entity.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openpype/settings/entities/enum_entity.py b/openpype/settings/entities/enum_entity.py index 7b3de1ffe7..a31c1ba5ec 100644 --- a/openpype/settings/entities/enum_entity.py +++ b/openpype/settings/entities/enum_entity.py @@ -453,7 +453,8 @@ class DeadlineUrlEnumEntity(BaseEnumEntity): valid_keys = set() enum_items_list = [] - deadline_urls_entity = (system_settings_entity + deadline_urls_entity = ( + system_settings_entity ["modules"] ["deadline"] ["deadline_urls"] @@ -473,4 +474,3 @@ class DeadlineUrlEnumEntity(BaseEnumEntity): if key in self.valid_keys: new_value.append(key) self._current_value = new_value - From 55fd0ded900d92f61304ae58dc20572bf1f53b05 Mon Sep 17 00:00:00 2001 From: Ondrej Samohel Date: Tue, 10 Aug 2021 19:11:02 +0200 Subject: [PATCH 011/120] rework collector and settings flow --- .../maya/plugins/publish/collect_render.py | 59 +++------------ openpype/modules/deadline/deadline_module.py | 16 ++--- .../collect_deadline_server_from_instance.py | 71 +++++++++++++++++++ .../collect_default_deadline_server.py | 11 +-- openpype/plugins/publish/collect_modules.py | 15 ++++ 5 files changed, 108 insertions(+), 64 deletions(-) create mode 100644 openpype/modules/deadline/plugins/publish/collect_deadline_server_from_instance.py create mode 100644 openpype/plugins/publish/collect_modules.py diff --git a/openpype/hosts/maya/plugins/publish/collect_render.py b/openpype/hosts/maya/plugins/publish/collect_render.py index 85afd971c6..e90efbc64d 100644 --- a/openpype/hosts/maya/plugins/publish/collect_render.py +++ b/openpype/hosts/maya/plugins/publish/collect_render.py @@ -51,12 +51,6 @@ import pyblish.api from avalon import maya, api from openpype.hosts.maya.api.expected_files import ExpectedFiles from openpype.hosts.maya.api import lib -from openpype.api import ( - get_system_settings, - get_project_settings -) - -from avalon.api import Session class CollectMayaRender(pyblish.api.ContextPlugin): @@ -70,6 +64,8 @@ class CollectMayaRender(pyblish.api.ContextPlugin): def process(self, context): """Entry point to collector.""" render_instance = None + deadline_url = None + for instance in context: if "rendering" in instance.data["families"]: render_instance = instance @@ -92,10 +88,15 @@ class CollectMayaRender(pyblish.api.ContextPlugin): asset = api.Session["AVALON_ASSET"] workspace = context.data["workspaceDir"] - deadline_settings = get_system_settings()["modules"]["deadline"] + deadline_settings = ( + context.data + ["system_settings"] + ["modules"] + ["deadline"] + ) if deadline_settings["enabled"]: - deadline_url = self._collect_deadline_url(render_instance) + deadline_url = render_instance.data.get("deadlineUrl") self._rs = renderSetup.instance() current_layer = self._rs.getVisibleRenderLayer() maya_render_layers = { @@ -420,45 +421,3 @@ class CollectMayaRender(pyblish.api.ContextPlugin): return lib.get_attr_in_layer( "defaultRenderGlobals.{}".format(attr), layer=layer ) - - @staticmethod - def _collect_deadline_url(render_instance): - # type: (pyblish.api.Instance) -> str - """Get Deadline Webservice URL from render instance. - - This will get all configured Deadline Webservice URLs and create - subset of them based upon project configuration. It will then take - `deadlineServers` from render instance that is now basically `int` - index of that list. - - Args: - render_instance (pyblish.api.Instance): Render instance created - by Creator in Maya. - - Returns: - str: Selected Deadline Webservice URL. - - """ - - deadline_settings = get_system_settings()["modules"]["deadline"] - project_settings = get_project_settings(Session["AVALON_PROJECT"]) - try: - default_servers = deadline_settings["deadline_urls"] - project_servers = ( - project_settings["deadline"] - ["deadline_servers"] - ) - deadline_servers = dict( - (k, default_servers[k]) - for k in project_servers if k in default_servers) - except AttributeError: - # Handle situation were we had only one url for deadline. - deadline_url = render_instance.context.data["defaultDeadline"] - deadline_servers = {"default": deadline_url} - - deadline_url = deadline_servers[ - list(deadline_servers.keys())[ - int(render_instance.data.get("deadlineServers")) - ] - ] - return deadline_url diff --git a/openpype/modules/deadline/deadline_module.py b/openpype/modules/deadline/deadline_module.py index 8329b3151b..17e7674f5b 100644 --- a/openpype/modules/deadline/deadline_module.py +++ b/openpype/modules/deadline/deadline_module.py @@ -11,20 +11,16 @@ class DeadlineModule(PypeModule, IPluginPaths): deadline_settings = modules_settings[self.name] self.enabled = deadline_settings["enabled"] deadline_url = deadline_settings.get("DEADLINE_REST_URL") - if not deadline_url: - deadline_url = deadline_settings.get("deadline_urls", {}).get("default") # noqa: E501 - if not deadline_url: + if deadline_url: + deadline_urls = {"default": deadline_url} + else: + deadline_urls = deadline_settings.get("deadline_urls") # noqa: E501 + + if not deadline_urls: self.enabled = False self.log.warning(("default Deadline Webservice URL " "not specified. Disabling module.")) return - self.deadline_url = deadline_url - - def get_global_environments(self): - """Deadline global environments for OpenPype implementation.""" - return { - "DEADLINE_REST_URL": self.deadline_url - } def connect_with_modules(self, *_a, **_kw): return diff --git a/openpype/modules/deadline/plugins/publish/collect_deadline_server_from_instance.py b/openpype/modules/deadline/plugins/publish/collect_deadline_server_from_instance.py new file mode 100644 index 0000000000..784616615d --- /dev/null +++ b/openpype/modules/deadline/plugins/publish/collect_deadline_server_from_instance.py @@ -0,0 +1,71 @@ +# -*- coding: utf-8 -*- +"""Collect Deadline servers from instance. + +This is resolving index of server lists stored in `deadlineServers` instance +attribute or using default server if that attribute doesn't exists. + +""" +import pyblish.api + + +class CollectDeadlineServerFromInstance(pyblish.api.InstancePlugin): + """Collect Deadline Webservice URL from instance.""" + + order = pyblish.api.CollectorOrder + label = "Deadline Webservice from the Instance" + families = ["rendering"] + + def process(self, instance): + instance.data["deadlineUrl"] = self._collect_deadline_url(instance) + self.log.info( + "Using {} for submission.".format(instance.data["deadlineUrl"])) + + @staticmethod + def _collect_deadline_url(render_instance): + # type: (pyblish.api.Instance) -> str + """Get Deadline Webservice URL from render instance. + + This will get all configured Deadline Webservice URLs and create + subset of them based upon project configuration. It will then take + `deadlineServers` from render instance that is now basically `int` + index of that list. + + Args: + render_instance (pyblish.api.Instance): Render instance created + by Creator in Maya. + + Returns: + str: Selected Deadline Webservice URL. + + """ + + deadline_settings = ( + render_instance.context.data + ["system_settings"] + ["modules"] + ["deadline"] + ) + + try: + default_servers = deadline_settings["deadline_urls"] + project_servers = ( + render_instance.context.data + ["project_settings"] + ["deadline"] + ["deadline_servers"] + ) + deadline_servers = { + k: default_servers[k] + for k in project_servers + if k in default_servers + } + + except AttributeError: + # Handle situation were we had only one url for deadline. + return render_instance.context.data["defaultDeadline"] + + return deadline_servers[ + list(deadline_servers.keys())[ + int(render_instance.data.get("deadlineServers")) + ] + ] diff --git a/openpype/modules/deadline/plugins/publish/collect_default_deadline_server.py b/openpype/modules/deadline/plugins/publish/collect_default_deadline_server.py index 2bb18486ff..80d6b6539b 100644 --- a/openpype/modules/deadline/plugins/publish/collect_default_deadline_server.py +++ b/openpype/modules/deadline/plugins/publish/collect_default_deadline_server.py @@ -1,6 +1,5 @@ # -*- coding: utf-8 -*- """Collect default Deadline server.""" -from openpype.modules import ModulesManager import pyblish.api @@ -11,7 +10,11 @@ class CollectDefaultDeadlineServer(pyblish.api.ContextPlugin): label = "Default Deadline Webservice" def process(self, context): - manager = ModulesManager() - deadline_module = manager.modules_by_name["deadline"] + try: + deadline_module = context.data.get("openPypeModules")["deadline"] + except AttributeError: + self.log.error("Cannot get OpenPype Deadline module.") + raise AssertionError("OpenPype Deadline module not found.") + # get default deadline webservice url from deadline module - context.data["defaultDeadline"] = deadline_module.deadline_url + context.data["defaultDeadline"] = deadline_module.deadline_urls["default"] diff --git a/openpype/plugins/publish/collect_modules.py b/openpype/plugins/publish/collect_modules.py new file mode 100644 index 0000000000..6a6d5da511 --- /dev/null +++ b/openpype/plugins/publish/collect_modules.py @@ -0,0 +1,15 @@ +# -*- coding: utf-8 -*- +"""Collect OpenPype modules.""" +from openpype.modules import ModulesManager +import pyblish.api + + +class CollectModules(pyblish.api.ContextPlugin): + """Collect OpenPype modules.""" + + order = pyblish.api.CollectorOrder + label = "OpenPype Modules" + + def process(self, context): + manager = ModulesManager() + context.data["openPypeModules"] = manager.modules From 50f638972413bf2af705b7e146c374b6227ad544 Mon Sep 17 00:00:00 2001 From: Ondrej Samohel Date: Tue, 10 Aug 2021 19:21:16 +0200 Subject: [PATCH 012/120] fix creator --- openpype/hosts/maya/plugins/create/create_render.py | 3 +-- openpype/modules/deadline/deadline_module.py | 10 +++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/openpype/hosts/maya/plugins/create/create_render.py b/openpype/hosts/maya/plugins/create/create_render.py index 98ad3114d1..84582f4177 100644 --- a/openpype/hosts/maya/plugins/create/create_render.py +++ b/openpype/hosts/maya/plugins/create/create_render.py @@ -110,8 +110,7 @@ class CreateRender(plugin.Creator): manager = ModulesManager() deadline_module = manager.modules_by_name["deadline"] # get default deadline webservice url from deadline module - deadline_url = deadline_module.deadline_url - self.deadline_servers = {"default": deadline_url} + self.deadline_servers = deadline_module.deadline_urls def process(self): """Entry point.""" diff --git a/openpype/modules/deadline/deadline_module.py b/openpype/modules/deadline/deadline_module.py index 17e7674f5b..c687d579c6 100644 --- a/openpype/modules/deadline/deadline_module.py +++ b/openpype/modules/deadline/deadline_module.py @@ -6,17 +6,21 @@ from openpype.modules import ( class DeadlineModule(PypeModule, IPluginPaths): name = "deadline" + def __init__(self, manager, settings): + super().__init__(manager, settings) + self.deadline_urls = {} + def initialize(self, modules_settings): # This module is always enabled deadline_settings = modules_settings[self.name] self.enabled = deadline_settings["enabled"] deadline_url = deadline_settings.get("DEADLINE_REST_URL") if deadline_url: - deadline_urls = {"default": deadline_url} + self.deadline_urls = {"default": deadline_url} else: - deadline_urls = deadline_settings.get("deadline_urls") # noqa: E501 + self.deadline_urls = deadline_settings.get("deadline_urls") # noqa: E501 - if not deadline_urls: + if not self.deadline_urls: self.enabled = False self.log.warning(("default Deadline Webservice URL " "not specified. Disabling module.")) From a8bf58142e8f61fb1cb4e9cc2fd62465bae8a47f Mon Sep 17 00:00:00 2001 From: Ondrej Samohel Date: Wed, 11 Aug 2021 12:28:18 +0200 Subject: [PATCH 013/120] fix default states --- .../maya/plugins/create/create_render.py | 139 +++++++++++------- openpype/modules/deadline/deadline_module.py | 2 +- .../collect_default_deadline_server.py | 1 + openpype/plugins/publish/collect_modules.py | 2 +- 4 files changed, 85 insertions(+), 59 deletions(-) diff --git a/openpype/hosts/maya/plugins/create/create_render.py b/openpype/hosts/maya/plugins/create/create_render.py index 84582f4177..66e3fb89c9 100644 --- a/openpype/hosts/maya/plugins/create/create_render.py +++ b/openpype/hosts/maya/plugins/create/create_render.py @@ -1,6 +1,7 @@ # -*- coding: utf-8 -*- """Create ``Render`` instance in Maya.""" import os +from collections import OrderedDict import json import appdirs import requests @@ -102,9 +103,15 @@ class CreateRender(plugin.Creator): project_settings["deadline"] ["deadline_servers"] ) - self.deadline_servers = dict( - (k, default_servers[k]) - for k in project_servers if k in default_servers) + self.deadline_servers = { + k: default_servers[k] + for k in project_servers + if k in default_servers + } + + if not self.deadline_servers: + self.deadline_servers = default_servers + except AttributeError: # Handle situation were we had only one url for deadline. manager = ModulesManager() @@ -223,6 +230,7 @@ class CreateRender(plugin.Creator): return response.json() def _create_render_settings(self): + """Create instance settings.""" # get pools pool_names = [] @@ -259,13 +267,22 @@ class CreateRender(plugin.Creator): raise RuntimeError("Both Deadline and Muster are enabled") if deadline_enabled: - pool_names = self._get_deadline_pools( - self.deadline_servers["default"]) + # if default server is not between selected, use first one for + # initial list of pools. + try: + deadline_url = self.deadline_servers["default"] + except KeyError: + deadline_url = [ + self.deadline_servers[k] for k in self.deadline_servers.keys() + ][0] + + pool_names = self._get_deadline_pools(deadline_url) if muster_enabled: self.log.info(">>> Loading Muster credentials ...") self._load_credentials() self.log.info(">>> Getting pools ...") + pools = [] try: pools = self._get_muster_pools() except requests.exceptions.HTTPError as e: @@ -365,9 +382,7 @@ class CreateRender(plugin.Creator): """ if "verify" not in kwargs: - kwargs["verify"] = ( - False if os.getenv("OPENPYPE_DONT_VERIFY_SSL", True) else True - ) # noqa + kwargs["verify"] = not os.getenv("OPENPYPE_DONT_VERIFY_SSL", True) return requests.post(*args, **kwargs) def _requests_get(self, *args, **kwargs): @@ -384,9 +399,7 @@ class CreateRender(plugin.Creator): """ if "verify" not in kwargs: - kwargs["verify"] = ( - False if os.getenv("OPENPYPE_DONT_VERIFY_SSL", True) else True - ) # noqa + kwargs["verify"] = not os.getenv("OPENPYPE_DONT_VERIFY_SSL", True) return requests.get(*args, **kwargs) def _set_default_renderer_settings(self, renderer): @@ -407,12 +420,7 @@ class CreateRender(plugin.Creator): cmds.setAttr( "defaultArnoldDriver.ai_translator", "exr", type="string") - # enable animation - cmds.setAttr("defaultRenderGlobals.outFormatControl", 0) - cmds.setAttr("defaultRenderGlobals.animation", 1) - cmds.setAttr("defaultRenderGlobals.putFrameBeforeExt", 1) - cmds.setAttr("defaultRenderGlobals.extensionPadding", 4) - + self._set_global_output_settings() # resolution cmds.setAttr( "defaultResolution.width", @@ -422,43 +430,12 @@ class CreateRender(plugin.Creator): asset["data"].get("resolutionHeight")) if renderer == "vray": - vray_settings = cmds.ls(type="VRaySettingsNode") - if not vray_settings: - node = cmds.createNode("VRaySettingsNode") - else: - node = vray_settings[0] - - # set underscore as element separator instead of default `.` - cmds.setAttr( - "{}.fileNameRenderElementSeparator".format( - node), - "_" - ) - # set format to exr - cmds.setAttr( - "{}.imageFormatStr".format(node), 5) - - # animType - cmds.setAttr( - "{}.animType".format(node), 1) - - # resolution - cmds.setAttr( - "{}.width".format(node), - asset["data"].get("resolutionWidth")) - cmds.setAttr( - "{}.height".format(node), - asset["data"].get("resolutionHeight")) - + self._set_vray_settings(asset) if renderer == "redshift": - redshift_settings = cmds.ls(type="RedshiftOptions") - if not redshift_settings: - node = cmds.createNode("RedshiftOptions") - else: - node = redshift_settings[0] + _ = self._set_renderer_option( + "RedshiftOptions", "{}.imageFormat", 1 + ) - # set exr - cmds.setAttr("{}.imageFormat".format(node), 1) # resolution cmds.setAttr( "defaultResolution.width", @@ -467,8 +444,56 @@ class CreateRender(plugin.Creator): "defaultResolution.height", asset["data"].get("resolutionHeight")) - # enable animation - cmds.setAttr("defaultRenderGlobals.outFormatControl", 0) - cmds.setAttr("defaultRenderGlobals.animation", 1) - cmds.setAttr("defaultRenderGlobals.putFrameBeforeExt", 1) - cmds.setAttr("defaultRenderGlobals.extensionPadding", 4) + self._set_global_output_settings() + + @staticmethod + def _set_renderer_option(renderer_node, arg=None, value=None): + # type: (str, str, str) -> str + """Set option on renderer node. + + If renderer settings node doesn't exists, it is created first. + + Args: + renderer_node (str): Renderer name. + arg (str, optional): Argument name. + value (str, optional): Argument value. + + Returns: + str: Renderer settings node. + + """ + settings = cmds.ls(type=renderer_node) + result = settings[0] if settings else cmds.createNode(renderer_node) + cmds.setAttr(arg.format(result), value) + return result + + def _set_vray_settings(self, asset): + # type: (dict) -> None + """Sets important settings for Vray.""" + node = self._set_renderer_option( + "VRaySettingsNode", "{}.fileNameRenderElementSeparator", "_" + ) + + # set format to exr + cmds.setAttr( + "{}.imageFormatStr".format(node), 5) + + # animType + cmds.setAttr( + "{}.animType".format(node), 1) + + # resolution + cmds.setAttr( + "{}.width".format(node), + asset["data"].get("resolutionWidth")) + cmds.setAttr( + "{}.height".format(node), + asset["data"].get("resolutionHeight")) + + @staticmethod + def _set_global_output_settings(): + # enable animation + cmds.setAttr("defaultRenderGlobals.outFormatControl", 0) + cmds.setAttr("defaultRenderGlobals.animation", 1) + cmds.setAttr("defaultRenderGlobals.putFrameBeforeExt", 1) + cmds.setAttr("defaultRenderGlobals.extensionPadding", 4) diff --git a/openpype/modules/deadline/deadline_module.py b/openpype/modules/deadline/deadline_module.py index c687d579c6..a07cb1a660 100644 --- a/openpype/modules/deadline/deadline_module.py +++ b/openpype/modules/deadline/deadline_module.py @@ -7,8 +7,8 @@ class DeadlineModule(PypeModule, IPluginPaths): name = "deadline" def __init__(self, manager, settings): - super().__init__(manager, settings) self.deadline_urls = {} + super(DeadlineModule, self).__init__(manager, settings) def initialize(self, modules_settings): # This module is always enabled diff --git a/openpype/modules/deadline/plugins/publish/collect_default_deadline_server.py b/openpype/modules/deadline/plugins/publish/collect_default_deadline_server.py index 80d6b6539b..17851032cf 100644 --- a/openpype/modules/deadline/plugins/publish/collect_default_deadline_server.py +++ b/openpype/modules/deadline/plugins/publish/collect_default_deadline_server.py @@ -17,4 +17,5 @@ class CollectDefaultDeadlineServer(pyblish.api.ContextPlugin): raise AssertionError("OpenPype Deadline module not found.") # get default deadline webservice url from deadline module + self.log.debug(deadline_module.deadline_urls) context.data["defaultDeadline"] = deadline_module.deadline_urls["default"] diff --git a/openpype/plugins/publish/collect_modules.py b/openpype/plugins/publish/collect_modules.py index 6a6d5da511..bec0c2b436 100644 --- a/openpype/plugins/publish/collect_modules.py +++ b/openpype/plugins/publish/collect_modules.py @@ -12,4 +12,4 @@ class CollectModules(pyblish.api.ContextPlugin): def process(self, context): manager = ModulesManager() - context.data["openPypeModules"] = manager.modules + context.data["openPypeModules"] = manager.modules_by_name From 7fa840e8ae3954231ec0f43fba1dc81001719d48 Mon Sep 17 00:00:00 2001 From: Ondrej Samohel Date: Wed, 11 Aug 2021 12:31:39 +0200 Subject: [PATCH 014/120] =?UTF-8?q?fix=20hound=20=F0=9F=90=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- openpype/hosts/maya/plugins/create/create_render.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openpype/hosts/maya/plugins/create/create_render.py b/openpype/hosts/maya/plugins/create/create_render.py index 66e3fb89c9..4fd4b9d986 100644 --- a/openpype/hosts/maya/plugins/create/create_render.py +++ b/openpype/hosts/maya/plugins/create/create_render.py @@ -1,7 +1,6 @@ # -*- coding: utf-8 -*- """Create ``Render`` instance in Maya.""" import os -from collections import OrderedDict import json import appdirs import requests @@ -273,7 +272,8 @@ class CreateRender(plugin.Creator): deadline_url = self.deadline_servers["default"] except KeyError: deadline_url = [ - self.deadline_servers[k] for k in self.deadline_servers.keys() + self.deadline_servers[k] + for k in self.deadline_servers.keys() ][0] pool_names = self._get_deadline_pools(deadline_url) From 29184a5bf17a6bd8ecc41082318ea9a17714c41f Mon Sep 17 00:00:00 2001 From: Ondrej Samohel Date: Wed, 11 Aug 2021 12:33:15 +0200 Subject: [PATCH 015/120] =?UTF-8?q?fix=20hound=20=F0=9F=90=95=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../deadline/plugins/publish/collect_default_deadline_server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/modules/deadline/plugins/publish/collect_default_deadline_server.py b/openpype/modules/deadline/plugins/publish/collect_default_deadline_server.py index 17851032cf..53231bd7e4 100644 --- a/openpype/modules/deadline/plugins/publish/collect_default_deadline_server.py +++ b/openpype/modules/deadline/plugins/publish/collect_default_deadline_server.py @@ -18,4 +18,4 @@ class CollectDefaultDeadlineServer(pyblish.api.ContextPlugin): # get default deadline webservice url from deadline module self.log.debug(deadline_module.deadline_urls) - context.data["defaultDeadline"] = deadline_module.deadline_urls["default"] + context.data["defaultDeadline"] = deadline_module.deadline_urls["default"] # noqa: E501 From f6323020d3c815c504e8e4ba086ff67a9e948da5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Samohel?= <33513211+antirotor@users.noreply.github.com> Date: Wed, 11 Aug 2021 15:09:34 +0200 Subject: [PATCH 016/120] don't add `beauty_other` when lightgroups are on --- openpype/hosts/maya/api/lib_renderproducts.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/openpype/hosts/maya/api/lib_renderproducts.py b/openpype/hosts/maya/api/lib_renderproducts.py index c4c8102f58..7f897fa4ce 100644 --- a/openpype/hosts/maya/api/lib_renderproducts.py +++ b/openpype/hosts/maya/api/lib_renderproducts.py @@ -894,6 +894,7 @@ class RenderProductsRedshift(ARenderProducts): aovs = list(set(aovs) - set(ref_aovs)) products = [] + light_groups_enabled = False has_beauty_aov = False for aov in aovs: enabled = self._get_attr(aov, "enabled") @@ -937,6 +938,9 @@ class RenderProductsRedshift(ARenderProducts): ext=ext, multipart=aov_multipart) products.append(product) + + if light_groups: + light_groups_enabled = True # Redshift AOV Light Select always renders the global AOV # even when light groups are present so we don't need to @@ -950,7 +954,10 @@ class RenderProductsRedshift(ARenderProducts): # When a Beauty AOV is added manually, it will be rendered as # 'Beauty_other' in file name and "standard" beauty will have # 'Beauty' in its name. When disabled, standard output will be - # without `Beauty`. + # without `Beauty`. Except when using light groups. + if light_groups_enabled: + return products + beauty_name = "Beauty_other" if has_beauty_aov else "" products.insert(0, RenderProduct(productName=beauty_name, From d325b33119620413e7727d4599bf057d8e38887c Mon Sep 17 00:00:00 2001 From: Ondrej Samohel Date: Wed, 11 Aug 2021 15:12:00 +0200 Subject: [PATCH 017/120] remove spaces --- openpype/hosts/maya/api/lib_renderproducts.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openpype/hosts/maya/api/lib_renderproducts.py b/openpype/hosts/maya/api/lib_renderproducts.py index 7f897fa4ce..fb99584c5d 100644 --- a/openpype/hosts/maya/api/lib_renderproducts.py +++ b/openpype/hosts/maya/api/lib_renderproducts.py @@ -938,7 +938,7 @@ class RenderProductsRedshift(ARenderProducts): ext=ext, multipart=aov_multipart) products.append(product) - + if light_groups: light_groups_enabled = True @@ -957,7 +957,7 @@ class RenderProductsRedshift(ARenderProducts): # without `Beauty`. Except when using light groups. if light_groups_enabled: return products - + beauty_name = "Beauty_other" if has_beauty_aov else "" products.insert(0, RenderProduct(productName=beauty_name, From 6dbd3b0df3cfc3c47344ecf3325b54ffb3740020 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 11 Aug 2021 17:42:16 +0200 Subject: [PATCH 018/120] initial version of breadcrumbs widget --- .../settings/settings/breadcrumb_widget.py | 387 ++++++++++++++++++ 1 file changed, 387 insertions(+) create mode 100644 openpype/tools/settings/settings/breadcrumb_widget.py diff --git a/openpype/tools/settings/settings/breadcrumb_widget.py b/openpype/tools/settings/settings/breadcrumb_widget.py new file mode 100644 index 0000000000..306ac14218 --- /dev/null +++ b/openpype/tools/settings/settings/breadcrumb_widget.py @@ -0,0 +1,387 @@ +import os +import sys +sys.path.append(r"C:\Users\jakub.trllo\Desktop\pype\pype3_2\.venv\Lib\site-packages") + +from Qt import QtWidgets, QtGui, QtCore + +# px, size of generated semi-transparent icons +TRANSP_ICON_SIZE = 40, 40 + +PREFIX_ROLE = QtCore.Qt.UserRole + 1 +LAST_SEGMENT_ROLE = QtCore.Qt.UserRole + 2 + + +class BreadcrumbItem(QtGui.QStandardItem): + def __init__(self, *args, **kwargs): + self._display_value = None + self._edit_value = None + super(BreadcrumbItem, self).__init__(*args, **kwargs) + + def data(self, role=None): + if role == QtCore.Qt.DisplayRole: + return self._display_value + + if role == QtCore.Qt.EditRole: + return self._edit_value + + if role is None: + args = tuple() + else: + args = (role, ) + return super(BreadcrumbItem, self).data(*args) + + def setData(self, value, role): + if role == QtCore.Qt.DisplayRole: + self._display_value = value + return True + + if role == QtCore.Qt.EditRole: + self._edit_value = value + return True + + if role is None: + args = (value, ) + else: + args = (value, role) + return super(BreadcrumbItem, self).setData(*args) + + +class BreadcrumbsModel(QtGui.QStandardItemModel): + def __init__(self): + super(BreadcrumbsModel, self).__init__() + self.current_path = "" + + self.reset() + + def reset(self): + root_item = self.invisibleRootItem() + rows = root_item.rowCount() + if rows > 0: + root_item.removeRows(0, rows) + + paths = [ + "project_settings", + "project_settings/blabla", + "project_settings/blabla2", + "project_settings/blabla2/dada" + ] + items = [] + for path in paths: + if not path: + continue + path_items = path.split("/") + value = path + label = path_items.pop(-1) + prefix = "/".join(path_items) + if prefix: + prefix += "/" + + item = QtGui.QStandardItem(value) + item.setData(label, LAST_SEGMENT_ROLE) + item.setData(prefix, PREFIX_ROLE) + + items.append(item) + + root_item.appendRows(items) + + +class BreadcrumbsProxy(QtCore.QSortFilterProxyModel): + def __init__(self, *args, **kwargs): + super(BreadcrumbsProxy, self).__init__(*args, **kwargs) + + self._current_path = "" + + def set_path_prefix(self, prefix): + path = prefix + if not prefix.endswith("/"): + path_items = path.split("/") + if len(path_items) == 1: + path = "" + else: + path_items.pop(-1) + path = "/".join(path_items) + "/" + + if path == self._current_path: + return + + self._current_path = prefix + + self.invalidateFilter() + + def filterAcceptsRow(self, row, parent): + index = self.sourceModel().index(row, 0, parent) + prefix_path = index.data(PREFIX_ROLE) + return prefix_path == self._current_path + + +class BreadcrumbsHintMenu(QtWidgets.QMenu): + def __init__(self, model, path_prefix, parent): + super(BreadcrumbsHintMenu, self).__init__(parent) + + self._path_prefix = path_prefix + self._model = model + + def showEvent(self, event): + self.clear() + + self._model.set_path_prefix(self._path_prefix) + + row_count = self._model.rowCount() + if row_count == 0: + action = self.addAction("* Nothing") + action.setData(".") + else: + for row in range(self._model.rowCount()): + index = self._model.index(row, 0) + label = index.data(LAST_SEGMENT_ROLE) + value = index.data(QtCore.Qt.EditRole) + action = self.addAction(label) + action.setData(value) + + super(BreadcrumbsHintMenu, self).showEvent(event) + + +class ClickableWidget(QtWidgets.QWidget): + clicked = QtCore.Signal() + + def mouseReleaseEvent(self, event): + if event.button() == QtCore.Qt.LeftButton: + self.clicked.emit() + super(ClickableWidget, self).mouseReleaseEvent(event) + + +class BreadcrumbsPathInput(QtWidgets.QLineEdit): + cancelled = QtCore.Signal() + confirmed = QtCore.Signal() + + def __init__(self, model, parent): + super(BreadcrumbsPathInput, self).__init__(parent) + + self.setFrame(False) + + completer = QtWidgets.QCompleter(self) + completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive) + completer.setModel(model) + + popup = completer.popup() + popup.setUniformItemSizes(True) + popup.setLayoutMode(QtWidgets.QListView.Batched) + + self.setCompleter(completer) + + completer.activated.connect(self._on_completer_activated) + self.textEdited.connect(self._on_text_change) + + self._completer = completer + self._model = model + + self._context_menu_visible = False + + def keyPressEvent(self, event): + if event.key() == QtCore.Qt.Key_Escape: + self.cancelled.emit() + elif event.key() in (QtCore.Qt.Key_Return, QtCore.Qt.Key_Enter): + self.confirmed.emit() + else: + super(BreadcrumbsPathInput, self).keyPressEvent(event) + + def focusOutEvent(self, event): + if not self._context_menu_visible: + self.cancelled.emit() + + self._context_menu_visible = False + super(BreadcrumbsPathInput, self).focusOutEvent(event) + + def contextMenuEvent(self, event): + self._context_menu_visible = True + super(BreadcrumbsPathInput, self).contextMenuEvent(event) + + def _on_completer_activated(self, path): + self.confirmed.emit(path) + + def _on_text_change(self, path): + self._model.set_path_prefix(path) + + +class BreadcrumbsButton(QtWidgets.QToolButton): + path_selected = QtCore.Signal(str) + + def __init__(self, path, model, parent): + super(BreadcrumbsButton, self).__init__(parent) + + path_prefix = path + "/" + + self.setAutoRaise(True) + self.setPopupMode(QtWidgets.QToolButton.MenuButtonPopup) + + self.setMouseTracking(True) + + self.setText(path.split("/")[-1]) + + menu = BreadcrumbsHintMenu(model, path_prefix, self) + + self.setMenu(menu) + + # fixed size breadcrumbs + self.setMinimumSize(self.minimumSizeHint()) + size_policy = self.sizePolicy() + size_policy.setVerticalPolicy(size_policy.Minimum) + self.setSizePolicy(size_policy) + + menu.triggered.connect(self._on_menu_click) + self.clicked.connect(self._on_click) + + self._path = path + self._path_prefix = path_prefix + self._model = model + self._menu = menu + + def _on_click(self): + self.path_selected.emit(self._path) + + def _on_menu_click(self, action): + item = action.data() + self.path_selected.emit(item) + + +class BreadcrumbsAddressBar(QtWidgets.QFrame): + "Windows Explorer-like address bar" + path_selected = QtCore.Signal(str) + + def __init__(self, parent=None): + super(BreadcrumbsAddressBar, self).__init__(parent) + + model = BreadcrumbsModel() + proxy_model = BreadcrumbsProxy() + proxy_model.setSourceModel(model) + + self.setAutoFillBackground(True) + self.setFrameShape(self.StyledPanel) + + # Edit presented path textually + path_input = BreadcrumbsPathInput(proxy_model, self) + path_input.setVisible(False) + + path_input.cancelled.connect(self._on_input_cancel) + path_input.confirmed.connect(self._on_input_confirm) + + # Container for `crumbs_panel` + crumbs_container = QtWidgets.QWidget(self) + + # Container for breadcrumbs + crumbs_panel = QtWidgets.QWidget(crumbs_container) + + crumbs_layout = QtWidgets.QHBoxLayout() + crumbs_layout.setContentsMargins(0, 0, 0, 0) + crumbs_layout.setSpacing(0) + + crumbs_cont_layout = QtWidgets.QHBoxLayout(crumbs_container) + crumbs_cont_layout.setContentsMargins(0, 0, 0, 0) + crumbs_cont_layout.setSpacing(0) + crumbs_cont_layout.addWidget(crumbs_panel) + + # Clicking on empty space to the right puts the bar into edit mode + switch_space = ClickableWidget(self) + + crumb_panel_layout = QtWidgets.QHBoxLayout(crumbs_panel) + crumb_panel_layout.setContentsMargins(0, 0, 0, 0) + crumb_panel_layout.setSpacing(0) + crumb_panel_layout.addLayout(crumbs_layout, 0) + crumb_panel_layout.addWidget(switch_space, 1) + + switch_space.clicked.connect(self.switch_space_mouse_up) + + layout = QtWidgets.QHBoxLayout(self) + layout.setContentsMargins(0, 0, 0, 0) + layout.setSpacing(0) + layout.addWidget(path_input) + layout.addWidget(crumbs_container) + + self.setMaximumHeight(path_input.height()) + + self.crumbs_layout = crumbs_layout + self.crumbs_panel = crumbs_panel + self.switch_space = switch_space + self.path_input = path_input + self.crumbs_container = crumbs_container + + self.model = model + self.proxy_model = proxy_model + + self._current_path = None + + self.set_path("project_settings") + + def _on_input_confirm(self): + self.set_path(self.path_input.text()) + self._show_address_field(False) + + def _on_input_cancel(self): + self._cancel_edit() + + def _clear_crumbs(self): + while self.crumbs_layout.count(): + widget = self.crumbs_layout.takeAt(0).widget() + if widget: + widget.deleteLater() + + def _insert_crumb(self, path): + btn = BreadcrumbsButton(path, self.proxy_model, self.crumbs_panel) + + self.crumbs_layout.insertWidget(0, btn) + + btn.path_selected.connect(self._on_crumb_clicked) + + def _on_crumb_clicked(self, path): + "Breadcrumb was clicked" + self.set_path(path) + + def set_path(self, path): + if path is None or path == ".": + path = self._current_path + + # exit edit mode + self._cancel_edit() + + self._clear_crumbs() + self._current_path = path + self.path_input.setText(path) + path_items = [ + item + for item in path.split("/") + if item + ] + while path_items: + item = "/".join(path_items) + self._insert_crumb(item) + path_items.pop(-1) + + self.path_selected.emit(self._current_path) + + def _cancel_edit(self): + "Set edit line text back to current path and switch to view mode" + # revert path + self.path_input.setText(self.path()) + # switch back to breadcrumbs view + self._show_address_field(False) + + def path(self): + "Get path displayed in this BreadcrumbsAddressBar" + return self._current_path + + def switch_space_mouse_up(self): + "EVENT: switch_space mouse clicked" + self._show_address_field(True) + + def _show_address_field(self, show=True): + "Show text address field" + self.crumbs_container.setVisible(not show) + self.path_input.setVisible(show) + if show: + self.path_input.setFocus() + self.path_input.selectAll() + + def minimumSizeHint(self): + result = super(BreadcrumbsAddressBar, self).minimumSizeHint() + result.setHeight(self.path_input.height()) + return result From 30e131685ece0a01622048a786502b0812c3c338 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 11 Aug 2021 17:42:31 +0200 Subject: [PATCH 019/120] use breadcrumbs widget in category --- openpype/tools/settings/settings/categories.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/openpype/tools/settings/settings/categories.py b/openpype/tools/settings/settings/categories.py index 8be3eddfa8..fa00c8a814 100644 --- a/openpype/tools/settings/settings/categories.py +++ b/openpype/tools/settings/settings/categories.py @@ -31,6 +31,7 @@ from openpype.settings.entities import ( from openpype.settings import SaveWarningExc from .widgets import ProjectListWidget +from .breadcrumb_widget import BreadcrumbsAddressBar from .base import GUIWidget from .list_item_widget import ListWidget @@ -175,6 +176,7 @@ class SettingsCategoryWidget(QtWidgets.QWidget): scroll_widget = QtWidgets.QScrollArea(self) scroll_widget.setObjectName("GroupWidget") content_widget = QtWidgets.QWidget(scroll_widget) + content_layout = QtWidgets.QVBoxLayout(content_widget) content_layout.setContentsMargins(3, 3, 3, 3) content_layout.setSpacing(5) @@ -197,6 +199,8 @@ class SettingsCategoryWidget(QtWidgets.QWidget): if self.user_role == "developer": self._add_developer_ui(footer_layout) + breadcrumbs_widget = BreadcrumbsAddressBar(content_widget) + save_btn = QtWidgets.QPushButton("Save", footer_widget) require_restart_label = QtWidgets.QLabel(footer_widget) require_restart_label.setAlignment(QtCore.Qt.AlignCenter) @@ -207,6 +211,7 @@ class SettingsCategoryWidget(QtWidgets.QWidget): configurations_layout.setContentsMargins(0, 0, 0, 0) configurations_layout.setSpacing(0) + configurations_layout.addWidget(breadcrumbs_widget, 0) configurations_layout.addWidget(scroll_widget, 1) configurations_layout.addWidget(footer_widget, 0) From f236acdc08a69d81b678a3e8c2f3d630021486bb Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 11 Aug 2021 17:44:50 +0200 Subject: [PATCH 020/120] fixed height issues --- openpype/tools/settings/settings/breadcrumb_widget.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openpype/tools/settings/settings/breadcrumb_widget.py b/openpype/tools/settings/settings/breadcrumb_widget.py index 306ac14218..05f7b983c2 100644 --- a/openpype/tools/settings/settings/breadcrumb_widget.py +++ b/openpype/tools/settings/settings/breadcrumb_widget.py @@ -383,5 +383,8 @@ class BreadcrumbsAddressBar(QtWidgets.QFrame): def minimumSizeHint(self): result = super(BreadcrumbsAddressBar, self).minimumSizeHint() - result.setHeight(self.path_input.height()) + result.setHeight(max( + self.path_input.height(), + self.crumbs_container.height() + )) return result From 048da648e967c26ad7d44223c706c8fe6395016a Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 11:34:24 +0200 Subject: [PATCH 021/120] diverse between path changed and path edited --- .../tools/settings/settings/breadcrumb_widget.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/openpype/tools/settings/settings/breadcrumb_widget.py b/openpype/tools/settings/settings/breadcrumb_widget.py index 05f7b983c2..9584186419 100644 --- a/openpype/tools/settings/settings/breadcrumb_widget.py +++ b/openpype/tools/settings/settings/breadcrumb_widget.py @@ -246,7 +246,8 @@ class BreadcrumbsButton(QtWidgets.QToolButton): class BreadcrumbsAddressBar(QtWidgets.QFrame): "Windows Explorer-like address bar" - path_selected = QtCore.Signal(str) + path_changed = QtCore.Signal(str) + path_edited = QtCore.Signal(str) def __init__(self, parent=None): super(BreadcrumbsAddressBar, self).__init__(parent) @@ -310,10 +311,9 @@ class BreadcrumbsAddressBar(QtWidgets.QFrame): self._current_path = None - self.set_path("project_settings") def _on_input_confirm(self): - self.set_path(self.path_input.text()) + self.change_path(self.path_input.text()) self._show_address_field(False) def _on_input_cancel(self): @@ -334,7 +334,11 @@ class BreadcrumbsAddressBar(QtWidgets.QFrame): def _on_crumb_clicked(self, path): "Breadcrumb was clicked" + self.change_path(path) + + def change_path(self, path): self.set_path(path) + self.path_edited.emit(path) def set_path(self, path): if path is None or path == ".": @@ -356,7 +360,7 @@ class BreadcrumbsAddressBar(QtWidgets.QFrame): self._insert_crumb(item) path_items.pop(-1) - self.path_selected.emit(self._current_path) + self.path_changed.emit(self._current_path) def _cancel_edit(self): "Set edit line text back to current path and switch to view mode" From a4ccb3eb6deec734e84806eefb5daf3611327412 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 11:34:40 +0200 Subject: [PATCH 022/120] model is not set by default --- openpype/tools/settings/settings/breadcrumb_widget.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/openpype/tools/settings/settings/breadcrumb_widget.py b/openpype/tools/settings/settings/breadcrumb_widget.py index 9584186419..76f08e5f8e 100644 --- a/openpype/tools/settings/settings/breadcrumb_widget.py +++ b/openpype/tools/settings/settings/breadcrumb_widget.py @@ -252,9 +252,7 @@ class BreadcrumbsAddressBar(QtWidgets.QFrame): def __init__(self, parent=None): super(BreadcrumbsAddressBar, self).__init__(parent) - model = BreadcrumbsModel() proxy_model = BreadcrumbsProxy() - proxy_model.setSourceModel(model) self.setAutoFillBackground(True) self.setFrameShape(self.StyledPanel) @@ -306,11 +304,14 @@ class BreadcrumbsAddressBar(QtWidgets.QFrame): self.path_input = path_input self.crumbs_container = crumbs_container - self.model = model - self.proxy_model = proxy_model + self._model = None + self._proxy_model = proxy_model self._current_path = None + def set_model(self, model): + self._model = model + self._proxy_model.setSourceModel(model) def _on_input_confirm(self): self.change_path(self.path_input.text()) @@ -326,7 +327,7 @@ class BreadcrumbsAddressBar(QtWidgets.QFrame): widget.deleteLater() def _insert_crumb(self, path): - btn = BreadcrumbsButton(path, self.proxy_model, self.crumbs_panel) + btn = BreadcrumbsButton(path, self._proxy_model, self.crumbs_panel) self.crumbs_layout.insertWidget(0, btn) From ca1c04f14210439022d9cb52dfc7a3f026c3fc85 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 11:34:54 +0200 Subject: [PATCH 023/120] added base concept of settings models --- .../settings/settings/breadcrumb_widget.py | 30 +++++++++++++++---- 1 file changed, 24 insertions(+), 6 deletions(-) diff --git a/openpype/tools/settings/settings/breadcrumb_widget.py b/openpype/tools/settings/settings/breadcrumb_widget.py index 76f08e5f8e..d63c8bb980 100644 --- a/openpype/tools/settings/settings/breadcrumb_widget.py +++ b/openpype/tools/settings/settings/breadcrumb_widget.py @@ -53,18 +53,32 @@ class BreadcrumbsModel(QtGui.QStandardItemModel): self.reset() + def reset(self): + return + + +class SettingsBreadcrumbs(BreadcrumbsModel): + def __init__(self): + self.entity = None + + super(SettingsBreadcrumbs, self).__init__() + + def set_entity(self, entity): + self.entity = entity + self.reset() + + +class SystemSettingsBreadcrumbs(SettingsBreadcrumbs): def reset(self): root_item = self.invisibleRootItem() rows = root_item.rowCount() if rows > 0: root_item.removeRows(0, rows) - paths = [ - "project_settings", - "project_settings/blabla", - "project_settings/blabla2", - "project_settings/blabla2/dada" - ] + if self.entity is None: + return + + paths = [] items = [] for path in paths: if not path: @@ -85,6 +99,10 @@ class BreadcrumbsModel(QtGui.QStandardItemModel): root_item.appendRows(items) +class ProjectSettingsBreadcrumbs(SettingsBreadcrumbs): + pass + + class BreadcrumbsProxy(QtCore.QSortFilterProxyModel): def __init__(self, *args, **kwargs): super(BreadcrumbsProxy, self).__init__(*args, **kwargs) From e04cedb2d15aeb0fe5f33fbc3e30b3a2d66dd29f Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 11:35:44 +0200 Subject: [PATCH 024/120] added base logic of breadcrumbs in category widget --- .../tools/settings/settings/categories.py | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/openpype/tools/settings/settings/categories.py b/openpype/tools/settings/settings/categories.py index fa00c8a814..55528a3d0d 100644 --- a/openpype/tools/settings/settings/categories.py +++ b/openpype/tools/settings/settings/categories.py @@ -31,7 +31,11 @@ from openpype.settings.entities import ( from openpype.settings import SaveWarningExc from .widgets import ProjectListWidget -from .breadcrumb_widget import BreadcrumbsAddressBar +from .breadcrumb_widget import ( + BreadcrumbsAddressBar, + SystemSettingsBreadcrumbs, + ProjectSettingsBreadcrumbs +) from .base import GUIWidget from .list_item_widget import ListWidget @@ -222,6 +226,7 @@ class SettingsCategoryWidget(QtWidgets.QWidget): save_btn.clicked.connect(self._save) refresh_btn.clicked.connect(self._on_refresh) + breadcrumbs_widget.path_edited.connect(self._on_path_edit) self.save_btn = save_btn self.refresh_btn = refresh_btn @@ -230,6 +235,8 @@ class SettingsCategoryWidget(QtWidgets.QWidget): self.content_layout = content_layout self.content_widget = content_widget self.configurations_widget = configurations_widget + self.breadcrumbs_widget = breadcrumbs_widget + self.breadcrumbs_model = None self.main_layout = main_layout self.ui_tweaks() @@ -237,6 +244,9 @@ class SettingsCategoryWidget(QtWidgets.QWidget): def ui_tweaks(self): return + def _on_path_edit(self, path): + print("Path edited:", path) + def _add_developer_ui(self, footer_layout): modify_defaults_widget = QtWidgets.QWidget() modify_defaults_checkbox = QtWidgets.QCheckBox(modify_defaults_widget) @@ -432,10 +442,16 @@ class SettingsCategoryWidget(QtWidgets.QWidget): def _on_reset_crash(self): self.save_btn.setEnabled(False) + if self.breadcrumbs_model is not None: + self.breadcrumbs_model.set_entity(None) + def _on_reset_success(self): if not self.save_btn.isEnabled(): self.save_btn.setEnabled(True) + if self.breadcrumbs_model is not None: + self.breadcrumbs_model.set_entity(self.entity) + def add_children_gui(self): for child_obj in self.entity.children: item = self.create_ui_for_entity(self, child_obj, self) @@ -526,6 +542,10 @@ class SystemWidget(SettingsCategoryWidget): self.modify_defaults_checkbox.setChecked(True) self.modify_defaults_checkbox.setEnabled(False) + def ui_tweaks(self): + self.breadcrumbs_model = SystemSettingsBreadcrumbs() + self.breadcrumbs_widget.set_model(self.breadcrumbs_model) + def _on_modify_defaults(self): if self.modify_defaults_checkbox.isChecked(): if not self.entity.is_in_defaults_state(): @@ -540,6 +560,9 @@ class ProjectWidget(SettingsCategoryWidget): self.project_name = None def ui_tweaks(self): + self.breadcrumbs_model = ProjectSettingsBreadcrumbs() + self.breadcrumbs_widget.set_model(self.breadcrumbs_model) + project_list_widget = ProjectListWidget(self) self.main_layout.insertWidget(0, project_list_widget, 0) From 71434871b8a473cdb5878576f6048577306c3b11 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Thu, 12 Aug 2021 11:39:14 +0200 Subject: [PATCH 025/120] Fix - not changing separator in AVALON_APP_NAME \ was recognized in AVALON_APP_NAME as a path separator and normalized for all OS, currently \ is used in this env var as plain separator, cannot be replaced. --- .../modules/deadline/plugins/publish/submit_nuke_deadline.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py b/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py index fed98d8a08..80a264fcd4 100644 --- a/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py +++ b/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py @@ -264,6 +264,9 @@ class NukeSubmitDeadline(pyblish.api.InstancePlugin): self.log.debug("key: {}".format(key)) if "://" in value: clean_path = value + # env var contains now \ separator, dont replace that, its not path + elif key == "AVALON_APP_NAME": + continue else: valid_paths = [] for path in value.split(os.pathsep): From a5c85100f3faf4dabd1b5e74f887de50edcca721 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Thu, 12 Aug 2021 11:40:51 +0200 Subject: [PATCH 026/120] Fix - not changing separator in AVALON_APP_NAME \ was recognized in AVALON_APP_NAME as a path separator and normalized for all OS, currently \ is used in this env var as plain separator, cannot be replaced. --- .../deadline/plugins/publish/submit_nuke_deadline.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py b/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py index 80a264fcd4..4f4f924054 100644 --- a/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py +++ b/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py @@ -262,11 +262,9 @@ class NukeSubmitDeadline(pyblish.api.InstancePlugin): for key, value in environment.items(): clean_path = "" self.log.debug("key: {}".format(key)) - if "://" in value: - clean_path = value # env var contains now \ separator, dont replace that, its not path - elif key == "AVALON_APP_NAME": - continue + if "://" in value or key == "AVALON_APP_NAME": + clean_path = value else: valid_paths = [] for path in value.split(os.pathsep): From 2ba972a4824944132a561127d264bb305b1a4e8b Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 12:32:26 +0200 Subject: [PATCH 027/120] fix signal emit --- openpype/tools/settings/settings/breadcrumb_widget.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/tools/settings/settings/breadcrumb_widget.py b/openpype/tools/settings/settings/breadcrumb_widget.py index d63c8bb980..2de23163d3 100644 --- a/openpype/tools/settings/settings/breadcrumb_widget.py +++ b/openpype/tools/settings/settings/breadcrumb_widget.py @@ -215,7 +215,7 @@ class BreadcrumbsPathInput(QtWidgets.QLineEdit): super(BreadcrumbsPathInput, self).contextMenuEvent(event) def _on_completer_activated(self, path): - self.confirmed.emit(path) + self.confirmed.emit() def _on_text_change(self, path): self._model.set_path_prefix(path) From 91eaa205ce643ce02e5ba84578fc513426485f5c Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 12:33:15 +0200 Subject: [PATCH 028/120] added ability to collect static entities by path --- openpype/settings/entities/base_entity.py | 8 ++++++++ openpype/settings/entities/dict_conditional.py | 5 +++++ .../entities/dict_immutable_keys_entity.py | 12 ++++++++++++ openpype/settings/entities/input_entities.py | 5 +++++ openpype/settings/entities/item_entities.py | 15 +++++++++++++++ openpype/settings/entities/root_entities.py | 8 ++++++++ 6 files changed, 53 insertions(+) diff --git a/openpype/settings/entities/base_entity.py b/openpype/settings/entities/base_entity.py index b4ebe885f5..851684520b 100644 --- a/openpype/settings/entities/base_entity.py +++ b/openpype/settings/entities/base_entity.py @@ -174,6 +174,14 @@ class BaseItemEntity(BaseEntity): roles = [roles] self.roles = roles + @abstractmethod + def collect_static_entities_by_path(self): + """Collect all paths of all static path entities. + + Static path is entity which is not dynamic or under dynamic entity. + """ + pass + @property def require_restart_on_change(self): return self._require_restart_on_change diff --git a/openpype/settings/entities/dict_conditional.py b/openpype/settings/entities/dict_conditional.py index d275d8ac3d..b898588322 100644 --- a/openpype/settings/entities/dict_conditional.py +++ b/openpype/settings/entities/dict_conditional.py @@ -318,6 +318,11 @@ class DictConditionalEntity(ItemEntity): self.non_gui_children[item_key][child_obj.key] = child_obj + def collect_static_entities_by_path(self): + if self.is_dynamic_item or self.is_in_dynamic_item: + return {} + return {self.path: self} + def get_child_path(self, child_obj): """Get hierarchical path of child entity. diff --git a/openpype/settings/entities/dict_immutable_keys_entity.py b/openpype/settings/entities/dict_immutable_keys_entity.py index bde5304787..73b08f101a 100644 --- a/openpype/settings/entities/dict_immutable_keys_entity.py +++ b/openpype/settings/entities/dict_immutable_keys_entity.py @@ -203,6 +203,18 @@ class DictImmutableKeysEntity(ItemEntity): ) self.show_borders = self.schema_data.get("show_borders", True) + def collect_static_entities_by_path(self): + output = {} + if self.is_dynamic_item or self.is_in_dynamic_item: + return output + + output[self.path] = self + for children in self.non_gui_children.values(): + result = children.collect_static_entities_by_path() + if result: + output.update(result) + return output + def get_child_path(self, child_obj): """Get hierarchical path of child entity. diff --git a/openpype/settings/entities/input_entities.py b/openpype/settings/entities/input_entities.py index 6952529963..336d1f5c1e 100644 --- a/openpype/settings/entities/input_entities.py +++ b/openpype/settings/entities/input_entities.py @@ -53,6 +53,11 @@ class EndpointEntity(ItemEntity): def _settings_value(self): pass + def collect_static_entities_by_path(self): + if self.is_dynamic_item or self.is_in_dynamic_item: + return {} + return {self.path: self} + def settings_value(self): if self._override_state is OverrideState.NOT_DEFINED: return NOT_SET diff --git a/openpype/settings/entities/item_entities.py b/openpype/settings/entities/item_entities.py index 7e84f8c801..ecce7a22c0 100644 --- a/openpype/settings/entities/item_entities.py +++ b/openpype/settings/entities/item_entities.py @@ -106,6 +106,9 @@ class PathEntity(ItemEntity): self.valid_value_types = valid_value_types self.child_obj = self.create_schema_object(item_schema, self) + def collect_static_entities_by_path(self): + return self.child_obj.collect_static_entities_by_path() + def get_child_path(self, _child_obj): return self.path @@ -222,6 +225,18 @@ class ListStrictEntity(ItemEntity): super(ListStrictEntity, self).schema_validations() + def collect_static_entities_by_path(self): + output = {} + if self.is_dynamic_item or self.is_in_dynamic_item: + return output + + output[self.path] = self + for child_obj in self.children: + result = child_obj.collect_static_entities_by_path() + if result: + output.update(result) + return output + def get_child_path(self, child_obj): result_idx = None for idx, _child_obj in enumerate(self.children): diff --git a/openpype/settings/entities/root_entities.py b/openpype/settings/entities/root_entities.py index 00677480e8..4a06d2d591 100644 --- a/openpype/settings/entities/root_entities.py +++ b/openpype/settings/entities/root_entities.py @@ -242,6 +242,14 @@ class RootEntity(BaseItemEntity): """Whan any children has changed.""" self.on_change() + def collect_static_entities_by_path(self): + output = {} + for child_obj in self.non_gui_children.values(): + result = child_obj.collect_static_entities_by_path() + if result: + output.update(result) + return output + def get_child_path(self, child_entity): """Return path of children entity""" for key, _child_entity in self.non_gui_children.items(): From f174aff062d4d598c2a448765b9af75921f2657b Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 12:33:33 +0200 Subject: [PATCH 029/120] implemented base of model --- .../settings/settings/breadcrumb_widget.py | 43 ++++++++++++++++--- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/openpype/tools/settings/settings/breadcrumb_widget.py b/openpype/tools/settings/settings/breadcrumb_widget.py index 2de23163d3..d8a35daa5a 100644 --- a/openpype/tools/settings/settings/breadcrumb_widget.py +++ b/openpype/tools/settings/settings/breadcrumb_widget.py @@ -61,9 +61,14 @@ class SettingsBreadcrumbs(BreadcrumbsModel): def __init__(self): self.entity = None + self.entities_by_path = {} + self.dynamic_paths = set() + super(SettingsBreadcrumbs, self).__init__() def set_entity(self, entity): + self.entities_by_path = {} + self.dynamic_paths = set() self.entity = entity self.reset() @@ -78,9 +83,10 @@ class SystemSettingsBreadcrumbs(SettingsBreadcrumbs): if self.entity is None: return - paths = [] + entities_by_path = self.entity.collect_static_entities_by_path() + self.entities_by_path = entities_by_path items = [] - for path in paths: + for path in entities_by_path.keys(): if not path: continue path_items = path.split("/") @@ -100,7 +106,35 @@ class SystemSettingsBreadcrumbs(SettingsBreadcrumbs): class ProjectSettingsBreadcrumbs(SettingsBreadcrumbs): - pass + def reset(self): + root_item = self.invisibleRootItem() + rows = root_item.rowCount() + if rows > 0: + root_item.removeRows(0, rows) + + if self.entity is None: + return + + entities_by_path = self.entity.collect_static_entities_by_path() + self.entities_by_path = entities_by_path + items = [] + for path in entities_by_path.keys(): + if not path: + continue + path_items = path.split("/") + value = path + label = path_items.pop(-1) + prefix = "/".join(path_items) + if prefix: + prefix += "/" + + item = QtGui.QStandardItem(value) + item.setData(label, LAST_SEGMENT_ROLE) + item.setData(prefix, PREFIX_ROLE) + + items.append(item) + + root_item.appendRows(items) class BreadcrumbsProxy(QtCore.QSortFilterProxyModel): @@ -270,12 +304,11 @@ class BreadcrumbsAddressBar(QtWidgets.QFrame): def __init__(self, parent=None): super(BreadcrumbsAddressBar, self).__init__(parent) - proxy_model = BreadcrumbsProxy() - self.setAutoFillBackground(True) self.setFrameShape(self.StyledPanel) # Edit presented path textually + proxy_model = BreadcrumbsProxy() path_input = BreadcrumbsPathInput(proxy_model, self) path_input.setVisible(False) From 19c6a4a72e5054bdfb8a4839ad47b22efd609ff5 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 12:33:46 +0200 Subject: [PATCH 030/120] fixed layouts --- .../tools/settings/settings/categories.py | 46 +++++++++++-------- 1 file changed, 27 insertions(+), 19 deletions(-) diff --git a/openpype/tools/settings/settings/categories.py b/openpype/tools/settings/settings/categories.py index 55528a3d0d..9edd22ed89 100644 --- a/openpype/tools/settings/settings/categories.py +++ b/openpype/tools/settings/settings/categories.py @@ -181,6 +181,15 @@ class SettingsCategoryWidget(QtWidgets.QWidget): scroll_widget.setObjectName("GroupWidget") content_widget = QtWidgets.QWidget(scroll_widget) + breadcrumbs_label = QtWidgets.QLabel("Path:", content_widget) + breadcrumbs_widget = BreadcrumbsAddressBar(content_widget) + + breadcrumbs_layout = QtWidgets.QHBoxLayout() + breadcrumbs_layout.setContentsMargins(5, 0, 5, 0) + breadcrumbs_layout.setSpacing(5) + breadcrumbs_layout.addWidget(breadcrumbs_label) + breadcrumbs_layout.addWidget(breadcrumbs_widget) + content_layout = QtWidgets.QVBoxLayout(content_widget) content_layout.setContentsMargins(3, 3, 3, 3) content_layout.setSpacing(5) @@ -189,40 +198,39 @@ class SettingsCategoryWidget(QtWidgets.QWidget): scroll_widget.setWidgetResizable(True) scroll_widget.setWidget(content_widget) - configurations_widget = QtWidgets.QWidget(self) - - footer_widget = QtWidgets.QWidget(configurations_widget) - footer_layout = QtWidgets.QHBoxLayout(footer_widget) - refresh_icon = qtawesome.icon("fa.refresh", color="white") - refresh_btn = QtWidgets.QPushButton(footer_widget) + refresh_btn = QtWidgets.QPushButton(self) refresh_btn.setIcon(refresh_icon) - footer_layout.addWidget(refresh_btn, 0) - + footer_layout = QtWidgets.QHBoxLayout() if self.user_role == "developer": self._add_developer_ui(footer_layout) - breadcrumbs_widget = BreadcrumbsAddressBar(content_widget) - - save_btn = QtWidgets.QPushButton("Save", footer_widget) - require_restart_label = QtWidgets.QLabel(footer_widget) + save_btn = QtWidgets.QPushButton("Save", self) + require_restart_label = QtWidgets.QLabel(self) require_restart_label.setAlignment(QtCore.Qt.AlignCenter) + + footer_layout.addWidget(refresh_btn, 0) footer_layout.addWidget(require_restart_label, 1) footer_layout.addWidget(save_btn, 0) - configurations_layout = QtWidgets.QVBoxLayout(configurations_widget) + configurations_layout = QtWidgets.QVBoxLayout() configurations_layout.setContentsMargins(0, 0, 0, 0) configurations_layout.setSpacing(0) - configurations_layout.addWidget(breadcrumbs_widget, 0) configurations_layout.addWidget(scroll_widget, 1) - configurations_layout.addWidget(footer_widget, 0) + configurations_layout.addLayout(footer_layout, 0) - main_layout = QtWidgets.QHBoxLayout(self) + conf_wrapper_layout = QtWidgets.QHBoxLayout() + conf_wrapper_layout.setContentsMargins(0, 0, 0, 0) + conf_wrapper_layout.setSpacing(0) + conf_wrapper_layout.addLayout(configurations_layout, 1) + + main_layout = QtWidgets.QVBoxLayout(self) main_layout.setContentsMargins(0, 0, 0, 0) main_layout.setSpacing(0) - main_layout.addWidget(configurations_widget, 1) + main_layout.addLayout(breadcrumbs_layout, 0) + main_layout.addLayout(conf_wrapper_layout, 1) save_btn.clicked.connect(self._save) refresh_btn.clicked.connect(self._on_refresh) @@ -234,9 +242,9 @@ class SettingsCategoryWidget(QtWidgets.QWidget): self.scroll_widget = scroll_widget self.content_layout = content_layout self.content_widget = content_widget - self.configurations_widget = configurations_widget self.breadcrumbs_widget = breadcrumbs_widget self.breadcrumbs_model = None + self.conf_wrapper_layout = conf_wrapper_layout self.main_layout = main_layout self.ui_tweaks() @@ -565,7 +573,7 @@ class ProjectWidget(SettingsCategoryWidget): project_list_widget = ProjectListWidget(self) - self.main_layout.insertWidget(0, project_list_widget, 0) + self.conf_wrapper_layout.insertWidget(0, project_list_widget, 0) project_list_widget.project_changed.connect(self._on_project_change) From 75610ff8392977e561ef9275ea8db5472184f334 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Thu, 12 Aug 2021 15:03:51 +0200 Subject: [PATCH 031/120] daedline nuke: removing obsolete code --- .../plugins/publish/submit_nuke_deadline.py | 29 ------------------- 1 file changed, 29 deletions(-) diff --git a/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py b/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py index 4f4f924054..d6290251ba 100644 --- a/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py +++ b/openpype/modules/deadline/plugins/publish/submit_nuke_deadline.py @@ -252,40 +252,11 @@ class NukeSubmitDeadline(pyblish.api.InstancePlugin): environment = dict({key: os.environ[key] for key in keys if key in os.environ}, **api.Session) - # self.log.debug("enviro: {}".format(pprint(environment))) for _path in os.environ: if _path.lower().startswith('openpype_'): environment[_path] = os.environ[_path] - clean_environment = {} - for key, value in environment.items(): - clean_path = "" - self.log.debug("key: {}".format(key)) - # env var contains now \ separator, dont replace that, its not path - if "://" in value or key == "AVALON_APP_NAME": - clean_path = value - else: - valid_paths = [] - for path in value.split(os.pathsep): - if not path: - continue - try: - path.decode('UTF-8', 'strict') - valid_paths.append(os.path.normpath(path)) - except UnicodeDecodeError: - print('path contains non UTF characters') - - if valid_paths: - clean_path = os.pathsep.join(valid_paths) - - if key == "PYTHONPATH": - clean_path = clean_path.replace('python2', 'python3') - - self.log.debug("clean path: {}".format(clean_path)) - clean_environment[key] = clean_path - - environment = clean_environment # to recognize job from PYPE for turning Event On/Off environment["OPENPYPE_RENDER_JOB"] = "1" From 9cf06f1673e09dfdb4c8d03b2b1fdb25f9a98931 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 15:09:12 +0200 Subject: [PATCH 032/120] added ability to set focus and scroll to a widget --- openpype/tools/settings/settings/base.py | 24 +++++++++++++++++++ .../tools/settings/settings/categories.py | 9 ++++++- .../settings/settings/dict_conditional.py | 19 +++++++++++++++ .../settings/settings/dict_mutable_widget.py | 22 +++++++++++++++++ .../tools/settings/settings/item_widgets.py | 22 +++++++++++++++++ .../settings/settings/list_item_widget.py | 22 +++++++++++++++++ .../settings/settings/list_strict_widget.py | 13 ++++++++++ openpype/tools/settings/settings/widgets.py | 3 +++ 8 files changed, 133 insertions(+), 1 deletion(-) diff --git a/openpype/tools/settings/settings/base.py b/openpype/tools/settings/settings/base.py index eb5f82ab9a..6775e8fc82 100644 --- a/openpype/tools/settings/settings/base.py +++ b/openpype/tools/settings/settings/base.py @@ -25,6 +25,21 @@ class BaseWidget(QtWidgets.QWidget): self.label_widget = None self.create_ui() + def scroll_to(self, widget): + self.category_widget.scroll_to(widget) + + def set_focus(self, scroll_to=False): + if scroll_to: + self.scroll_to(self) + self.setFocus() + + def make_sure_is_visible(self, path, scroll_to): + raise NotImplementedError( + "{} not implemented `make_sure_is_visible`".format( + self.__class__.__name__ + ) + ) + def trigger_hierarchical_style_update(self): self.category_widget.hierarchical_style_update() @@ -337,6 +352,12 @@ class InputWidget(BaseWidget): ) ) + def make_sure_is_visible(self, path, scroll_to): + if path: + entity_path = self.entity.path + if entity_path == path: + self.set_focus(scroll_to) + def update_style(self): has_unsaved_changes = self.entity.has_unsaved_changes if not has_unsaved_changes and self.entity.group_item: @@ -427,6 +448,9 @@ class GUIWidget(BaseWidget): def hierarchical_style_update(self): pass + def make_sure_is_visible(self, *args, **kwargs): + pass + def get_invalid(self): return [] diff --git a/openpype/tools/settings/settings/categories.py b/openpype/tools/settings/settings/categories.py index 9edd22ed89..c791786609 100644 --- a/openpype/tools/settings/settings/categories.py +++ b/openpype/tools/settings/settings/categories.py @@ -253,7 +253,14 @@ class SettingsCategoryWidget(QtWidgets.QWidget): return def _on_path_edit(self, path): - print("Path edited:", path) + for input_field in self.input_fields: + input_field.make_sure_is_visible(path, True) + + def scroll_to(self, widget): + if not widget: + return + + self.scroll_widget.ensureWidgetVisible(widget) def _add_developer_ui(self, footer_layout): modify_defaults_widget = QtWidgets.QWidget() diff --git a/openpype/tools/settings/settings/dict_conditional.py b/openpype/tools/settings/settings/dict_conditional.py index 31a4fa9fab..222cca03f9 100644 --- a/openpype/tools/settings/settings/dict_conditional.py +++ b/openpype/tools/settings/settings/dict_conditional.py @@ -213,6 +213,25 @@ class DictConditionalWidget(BaseWidget): else: body_widget.hide_toolbox(hide_content=False) + def make_sure_is_visible(self, path, scroll_to): + if not path: + return + + entity_path = self.entity.path + if entity_path == path: + self.set_focus(scroll_to) + return + + if not path.startswith(entity_path): + return + + if self.body_widget and not self.body_widget.is_expanded(): + self.body_widget.toggle_content(True) + QtWidgets.QApplication.processEvents() + + for input_field in self.input_fields: + input_field.make_sure_is_visible(path, scroll_to) + def add_widget_to_layout(self, widget, label=None): if not widget.entity: map_id = widget.id diff --git a/openpype/tools/settings/settings/dict_mutable_widget.py b/openpype/tools/settings/settings/dict_mutable_widget.py index df6525e86a..596923fee4 100644 --- a/openpype/tools/settings/settings/dict_mutable_widget.py +++ b/openpype/tools/settings/settings/dict_mutable_widget.py @@ -319,6 +319,9 @@ class ModifiableDictItem(QtWidgets.QWidget): self.category_widget, self.entity, self ) + def make_sure_is_visible(self, *args, **kwargs): + self.input_field.make_sure_is_visible(*args, **kwargs) + def get_style_state(self): if self.is_invalid: return "invalid" @@ -846,6 +849,25 @@ class DictMutableKeysWidget(BaseWidget): if changed: self.on_shuffle() + def make_sure_is_visible(self, path, scroll_to): + if not path: + return + + entity_path = self.entity.path + if entity_path == path: + self.set_focus(scroll_to) + return + + if not path.startswith(entity_path): + return + + if self.body_widget and not self.body_widget.is_expanded(): + self.body_widget.toggle_content(True) + QtWidgets.QApplication.processEvents() + + for input_field in self.input_fields: + input_field.make_sure_is_visible(path, scroll_to) + def set_entity_value(self): while self.input_fields: self.remove_row(self.input_fields[0]) diff --git a/openpype/tools/settings/settings/item_widgets.py b/openpype/tools/settings/settings/item_widgets.py index 82afbb0a13..6724b913d4 100644 --- a/openpype/tools/settings/settings/item_widgets.py +++ b/openpype/tools/settings/settings/item_widgets.py @@ -154,6 +154,25 @@ class DictImmutableKeysWidget(BaseWidget): else: body_widget.hide_toolbox(hide_content=False) + def make_sure_is_visible(self, path, scroll_to): + if not path: + return + + entity_path = self.entity.path + if entity_path == path: + self.set_focus(scroll_to) + return + + if not path.startswith(entity_path): + return + + if self.body_widget and not self.body_widget.is_expanded(): + self.body_widget.toggle_content(True) + QtWidgets.QApplication.processEvents() + + for input_field in self.input_fields: + input_field.make_sure_is_visible(path, scroll_to) + def add_widget_to_layout(self, widget, label=None): if self.checkbox_child and widget.entity is self.checkbox_child: self.body_widget.add_widget_before_label(widget) @@ -562,6 +581,9 @@ class PathWidget(BaseWidget): def set_entity_value(self): self.input_field.set_entity_value() + def make_sure_is_visible(self, *args, **kwargs): + self.input_field.make_sure_is_visible(*args, **kwargs) + def hierarchical_style_update(self): self.update_style() self.input_field.hierarchical_style_update() diff --git a/openpype/tools/settings/settings/list_item_widget.py b/openpype/tools/settings/settings/list_item_widget.py index c9df5caf01..5abd9b0b20 100644 --- a/openpype/tools/settings/settings/list_item_widget.py +++ b/openpype/tools/settings/settings/list_item_widget.py @@ -129,6 +129,9 @@ class ListItem(QtWidgets.QWidget): *args, **kwargs ) + def make_sure_is_visible(self, *args, **kwargs): + self.input_field.make_sure_is_visible(*args, **kwargs) + @property def is_invalid(self): return self.input_field.is_invalid @@ -275,6 +278,25 @@ class ListWidget(InputWidget): invalid.extend(input_field.get_invalid()) return invalid + def make_sure_is_visible(self, path, scroll_to): + if not path: + return + + entity_path = self.entity.path + if entity_path == path: + self.set_focus(scroll_to) + return + + if not path.startswith(entity_path): + return + + if self.body_widget and not self.body_widget.is_expanded(): + self.body_widget.toggle_content(True) + QtWidgets.QApplication.processEvents() + + for input_field in self.input_fields: + input_field.make_sure_is_visible(path, scroll_to) + def _on_entity_change(self): # TODO do less inefficient childen_order = [] diff --git a/openpype/tools/settings/settings/list_strict_widget.py b/openpype/tools/settings/settings/list_strict_widget.py index 340db2e8c6..94a6ff53e2 100644 --- a/openpype/tools/settings/settings/list_strict_widget.py +++ b/openpype/tools/settings/settings/list_strict_widget.py @@ -65,6 +65,19 @@ class ListStrictWidget(BaseWidget): invalid.extend(input_field.get_invalid()) return invalid + def make_sure_is_visible(self, path, scroll_to): + if not path: + return + + entity_path = self.entity.path + if entity_path == path: + self.set_focus(scroll_to) + return + + if path.startswith(entity_path): + for input_field in self.input_fields: + input_field.make_sure_is_visible(path, scroll_to) + def add_widget_to_layout(self, widget, label=None): # Horizontally added children if self.entity.is_horizontal: diff --git a/openpype/tools/settings/settings/widgets.py b/openpype/tools/settings/settings/widgets.py index b20ce5ed66..2f9b504525 100644 --- a/openpype/tools/settings/settings/widgets.py +++ b/openpype/tools/settings/settings/widgets.py @@ -215,6 +215,9 @@ class ExpandingWidget(QtWidgets.QWidget): self.main_layout.addWidget(content_widget) self.content_widget = content_widget + def is_expanded(self): + return self.button_toggle.isChecked() + def _btn_clicked(self): self.toggle_content(self.button_toggle.isChecked()) From ad52e0f1400157fafc6d238826c5b3826236a04a Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 15:25:21 +0200 Subject: [PATCH 033/120] change path based on focus --- openpype/tools/settings/settings/base.py | 17 ++++++++++++++++- openpype/tools/settings/settings/categories.py | 7 ++++--- openpype/tools/settings/settings/widgets.py | 2 ++ 3 files changed, 22 insertions(+), 4 deletions(-) diff --git a/openpype/tools/settings/settings/base.py b/openpype/tools/settings/settings/base.py index 6775e8fc82..b10ec58142 100644 --- a/openpype/tools/settings/settings/base.py +++ b/openpype/tools/settings/settings/base.py @@ -28,6 +28,9 @@ class BaseWidget(QtWidgets.QWidget): def scroll_to(self, widget): self.category_widget.scroll_to(widget) + def set_path(self, path): + self.category_widget.set_path(path) + def set_focus(self, scroll_to=False): if scroll_to: self.scroll_to(self) @@ -292,11 +295,23 @@ class BaseWidget(QtWidgets.QWidget): if to_run: to_run() + def focused_in(self): + if self.entity is not None: + self.set_path(self.entity.path) + def mouseReleaseEvent(self, event): if self.allow_actions and event.button() == QtCore.Qt.RightButton: return self.show_actions_menu() - return super(BaseWidget, self).mouseReleaseEvent(event) + focused_in = False + if event.button() == QtCore.Qt.LeftButton: + focused_in = True + self.focused_in() + + result = super(BaseWidget, self).mouseReleaseEvent(event) + if focused_in and not event.isAccepted(): + event.accept() + return result class InputWidget(BaseWidget): diff --git a/openpype/tools/settings/settings/categories.py b/openpype/tools/settings/settings/categories.py index c791786609..1506e5bbfd 100644 --- a/openpype/tools/settings/settings/categories.py +++ b/openpype/tools/settings/settings/categories.py @@ -257,10 +257,11 @@ class SettingsCategoryWidget(QtWidgets.QWidget): input_field.make_sure_is_visible(path, True) def scroll_to(self, widget): - if not widget: - return + if widget: + self.scroll_widget.ensureWidgetVisible(widget) - self.scroll_widget.ensureWidgetVisible(widget) + def set_path(self, path): + self.breadcrumbs_widget.set_path(path) def _add_developer_ui(self, footer_layout): modify_defaults_widget = QtWidgets.QWidget() diff --git a/openpype/tools/settings/settings/widgets.py b/openpype/tools/settings/settings/widgets.py index 2f9b504525..ac5870eabc 100644 --- a/openpype/tools/settings/settings/widgets.py +++ b/openpype/tools/settings/settings/widgets.py @@ -383,6 +383,8 @@ class GridLabelWidget(QtWidgets.QWidget): def mouseReleaseEvent(self, event): if self.input_field: + if event and event.button() == QtCore.Qt.LeftButton: + self.input_field.focused_in() return self.input_field.show_actions_menu(event) return super(GridLabelWidget, self).mouseReleaseEvent(event) From d4b8c7be863d173048f0180e54eab47228d5e53b Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 15:48:47 +0200 Subject: [PATCH 034/120] got rid of spacer widgets --- .../settings/settings/dict_mutable_widget.py | 4 +-- .../tools/settings/settings/item_widgets.py | 5 +-- .../settings/settings/list_item_widget.py | 13 +------ openpype/tools/settings/settings/widgets.py | 35 ++++++------------- 4 files changed, 14 insertions(+), 43 deletions(-) diff --git a/openpype/tools/settings/settings/dict_mutable_widget.py b/openpype/tools/settings/settings/dict_mutable_widget.py index 596923fee4..b733727e4e 100644 --- a/openpype/tools/settings/settings/dict_mutable_widget.py +++ b/openpype/tools/settings/settings/dict_mutable_widget.py @@ -61,7 +61,6 @@ class ModifiableDictEmptyItem(QtWidgets.QWidget): def create_addible_ui(self): add_btn = create_add_btn(self) remove_btn = create_remove_btn(self) - spacer_widget = SpacerWidget(self) remove_btn.setEnabled(False) @@ -70,13 +69,12 @@ class ModifiableDictEmptyItem(QtWidgets.QWidget): layout.setSpacing(3) layout.addWidget(add_btn, 0) layout.addWidget(remove_btn, 0) - layout.addWidget(spacer_widget, 1) + layout.addStretch(1) add_btn.clicked.connect(self._on_add_clicked) self.add_btn = add_btn self.remove_btn = remove_btn - self.spacer_widget = spacer_widget def _on_focus_lose(self): if self.key_input.hasFocus() or self.key_label_input.hasFocus(): diff --git a/openpype/tools/settings/settings/item_widgets.py b/openpype/tools/settings/settings/item_widgets.py index 6724b913d4..57631f4530 100644 --- a/openpype/tools/settings/settings/item_widgets.py +++ b/openpype/tools/settings/settings/item_widgets.py @@ -289,11 +289,8 @@ class BoolWidget(InputWidget): height=checkbox_height, parent=self.content_widget ) - spacer = QtWidgets.QWidget(self.content_widget) - spacer.setAttribute(QtCore.Qt.WA_TranslucentBackground) - self.content_layout.addWidget(self.input_field, 0) - self.content_layout.addWidget(spacer, 1) + self.content_layout.addStretch(1) self.setFocusProxy(self.input_field) diff --git a/openpype/tools/settings/settings/list_item_widget.py b/openpype/tools/settings/settings/list_item_widget.py index 5abd9b0b20..52b96a658f 100644 --- a/openpype/tools/settings/settings/list_item_widget.py +++ b/openpype/tools/settings/settings/list_item_widget.py @@ -18,8 +18,6 @@ class EmptyListItem(QtWidgets.QWidget): add_btn = QtWidgets.QPushButton("+", self) remove_btn = QtWidgets.QPushButton("-", self) - spacer_widget = QtWidgets.QWidget(self) - spacer_widget.setAttribute(QtCore.Qt.WA_TranslucentBackground) add_btn.setFocusPolicy(QtCore.Qt.ClickFocus) remove_btn.setEnabled(False) @@ -35,13 +33,12 @@ class EmptyListItem(QtWidgets.QWidget): layout.setSpacing(3) layout.addWidget(add_btn, 0) layout.addWidget(remove_btn, 0) - layout.addWidget(spacer_widget, 1) + layout.addStretch(1) add_btn.clicked.connect(self._on_add_clicked) self.add_btn = add_btn self.remove_btn = remove_btn - self.spacer_widget = spacer_widget def _on_add_clicked(self): self.entity_widget.add_new_item() @@ -101,12 +98,6 @@ class ListItem(QtWidgets.QWidget): self.category_widget, self.entity, self ) - spacer_widget = QtWidgets.QWidget(self) - spacer_widget.setAttribute(QtCore.Qt.WA_TranslucentBackground) - spacer_widget.setVisible(False) - - layout.addWidget(spacer_widget, 1) - layout.addWidget(up_btn, 0) layout.addWidget(down_btn, 0) @@ -115,8 +106,6 @@ class ListItem(QtWidgets.QWidget): self.up_btn = up_btn self.down_btn = down_btn - self.spacer_widget = spacer_widget - self._row = -1 self._is_last = False diff --git a/openpype/tools/settings/settings/widgets.py b/openpype/tools/settings/settings/widgets.py index ac5870eabc..17eab5c89f 100644 --- a/openpype/tools/settings/settings/widgets.py +++ b/openpype/tools/settings/settings/widgets.py @@ -160,15 +160,13 @@ class ExpandingWidget(QtWidgets.QWidget): after_label_layout = QtWidgets.QHBoxLayout(after_label_widget) after_label_layout.setContentsMargins(0, 0, 0, 0) - spacer_widget = QtWidgets.QWidget(side_line_widget) - side_line_layout = QtWidgets.QHBoxLayout(side_line_widget) side_line_layout.setContentsMargins(5, 10, 0, 10) side_line_layout.addWidget(button_toggle) side_line_layout.addWidget(before_label_widget) side_line_layout.addWidget(label_widget) side_line_layout.addWidget(after_label_widget) - side_line_layout.addWidget(spacer_widget, 1) + side_line_layout.addStretch(1) top_part_layout = QtWidgets.QHBoxLayout(top_part) top_part_layout.setContentsMargins(0, 0, 0, 0) @@ -176,7 +174,6 @@ class ExpandingWidget(QtWidgets.QWidget): before_label_widget.setAttribute(QtCore.Qt.WA_TranslucentBackground) after_label_widget.setAttribute(QtCore.Qt.WA_TranslucentBackground) - spacer_widget.setAttribute(QtCore.Qt.WA_TranslucentBackground) label_widget.setAttribute(QtCore.Qt.WA_TranslucentBackground) self.setAttribute(QtCore.Qt.WA_TranslucentBackground) @@ -344,31 +341,21 @@ class GridLabelWidget(QtWidgets.QWidget): self.properties = {} + label_widget = QtWidgets.QLabel(label, self) + + label_proxy_layout = QtWidgets.QHBoxLayout() + label_proxy_layout.setContentsMargins(0, 0, 0, 0) + label_proxy_layout.setSpacing(0) + + label_proxy_layout.addWidget(label_widget, 0, QtCore.Qt.AlignRight) + layout = QtWidgets.QVBoxLayout(self) layout.setContentsMargins(0, 2, 0, 0) layout.setSpacing(0) - label_proxy = QtWidgets.QWidget(self) + layout.addLayout(label_proxy_layout, 0) + layout.addStretch(1) - label_proxy_layout = QtWidgets.QHBoxLayout(label_proxy) - label_proxy_layout.setContentsMargins(0, 0, 0, 0) - label_proxy_layout.setSpacing(0) - - label_widget = QtWidgets.QLabel(label, label_proxy) - spacer_widget_h = SpacerWidget(label_proxy) - label_proxy_layout.addWidget( - spacer_widget_h, 0, alignment=QtCore.Qt.AlignRight - ) - label_proxy_layout.addWidget( - label_widget, 0, alignment=QtCore.Qt.AlignRight - ) - - spacer_widget_v = SpacerWidget(self) - - layout.addWidget(label_proxy, 0) - layout.addWidget(spacer_widget_v, 1) - - label_proxy.setAttribute(QtCore.Qt.WA_TranslucentBackground) label_widget.setAttribute(QtCore.Qt.WA_TranslucentBackground) self.label_widget = label_widget From 3ebc4b34af41232953aeea9596b7f1c9c97e5bd4 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 15:55:13 +0200 Subject: [PATCH 035/120] handle text input focus --- .../tools/settings/settings/item_widgets.py | 26 ++++++++++++++----- openpype/tools/settings/settings/widgets.py | 16 ++++++++++++ 2 files changed, 36 insertions(+), 6 deletions(-) diff --git a/openpype/tools/settings/settings/item_widgets.py b/openpype/tools/settings/settings/item_widgets.py index 57631f4530..c98c3ba0b8 100644 --- a/openpype/tools/settings/settings/item_widgets.py +++ b/openpype/tools/settings/settings/item_widgets.py @@ -7,7 +7,9 @@ from .widgets import ( NumberSpinBox, GridLabelWidget, ComboBox, - NiceCheckbox + NiceCheckbox, + SettingsPlainTextEdit, + SettingsLineEdit ) from .multiselection_combobox import MultiSelectionComboBox from .wrapper_widgets import ( @@ -313,9 +315,9 @@ class TextWidget(InputWidget): def _add_inputs_to_layout(self): multiline = self.entity.multiline if multiline: - self.input_field = QtWidgets.QPlainTextEdit(self.content_widget) + self.input_field = SettingsPlainTextEdit(self.content_widget) else: - self.input_field = QtWidgets.QLineEdit(self.content_widget) + self.input_field = SettingsLineEdit(self.content_widget) placeholder_text = self.entity.placeholder_text if placeholder_text: @@ -329,8 +331,12 @@ class TextWidget(InputWidget): self.content_layout.addWidget(self.input_field, 1, **layout_kwargs) + self.input_field.focused_in.connect(self._on_input_focus) self.input_field.textChanged.connect(self._on_value_change) + def _on_input_focus(self): + self.focused_in() + def _on_entity_change(self): if self.entity.value != self.input_value(): self.set_entity_value() @@ -382,7 +388,7 @@ class NumberWidget(InputWidget): self.entity.set(self.input_field.value()) -class RawJsonInput(QtWidgets.QPlainTextEdit): +class RawJsonInput(SettingsPlainTextEdit): tab_length = 4 def __init__(self, valid_type, *args, **kwargs): @@ -444,15 +450,18 @@ class RawJsonWidget(InputWidget): QtWidgets.QSizePolicy.Minimum, QtWidgets.QSizePolicy.MinimumExpanding ) - self.setFocusProxy(self.input_field) self.content_layout.addWidget( self.input_field, 1, alignment=QtCore.Qt.AlignTop ) + self.input_field.focused_in.connect(self._on_input_focus) self.input_field.textChanged.connect(self._on_value_change) + def _on_input_focus(self): + self.focused_in() + def set_entity_value(self): self.input_field.set_value(self.entity.value) self._is_invalid = self.input_field.has_invalid_value() @@ -651,14 +660,19 @@ class PathWidget(BaseWidget): class PathInputWidget(InputWidget): def _add_inputs_to_layout(self): - self.input_field = QtWidgets.QLineEdit(self.content_widget) + self.input_field = SettingsLineEdit(self.content_widget) placeholder = self.entity.placeholder_text if placeholder: self.input_field.setPlaceholderText(placeholder) self.setFocusProxy(self.input_field) self.content_layout.addWidget(self.input_field) + self.input_field.textChanged.connect(self._on_value_change) + self.input_field.focused_in.connect(self._on_input_focus) + + def _on_input_focus(self): + self.focused_in() def _on_entity_change(self): if self.entity.value != self.input_value(): diff --git a/openpype/tools/settings/settings/widgets.py b/openpype/tools/settings/settings/widgets.py index 17eab5c89f..c727b22169 100644 --- a/openpype/tools/settings/settings/widgets.py +++ b/openpype/tools/settings/settings/widgets.py @@ -9,6 +9,22 @@ from avalon.mongodb import ( from openpype.settings.lib import get_system_settings +class SettingsLineEdit(QtWidgets.QLineEdit): + focused_in = QtCore.Signal() + + def focusInEvent(self, event): + super(SettingsLineEdit, self).focusInEvent(event) + self.focused_in.emit() + + +class SettingsPlainTextEdit(QtWidgets.QPlainTextEdit): + focused_in = QtCore.Signal() + + def focusInEvent(self, event): + super(SettingsPlainTextEdit, self).focusInEvent(event) + self.focused_in.emit() + + class ShadowWidget(QtWidgets.QWidget): def __init__(self, message, parent): super(ShadowWidget, self).__init__(parent) From 8491018e68927c94afb9a7ab198536a000f2b444 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 16:02:36 +0200 Subject: [PATCH 036/120] added focus in signals to comboboxes --- openpype/tools/settings/settings/item_widgets.py | 8 ++++++-- .../settings/settings/multiselection_combobox.py | 6 ++++++ openpype/tools/settings/settings/widgets.py | 11 ++++++++--- 3 files changed, 20 insertions(+), 5 deletions(-) diff --git a/openpype/tools/settings/settings/item_widgets.py b/openpype/tools/settings/settings/item_widgets.py index c98c3ba0b8..97a63c7838 100644 --- a/openpype/tools/settings/settings/item_widgets.py +++ b/openpype/tools/settings/settings/item_widgets.py @@ -6,7 +6,7 @@ from .widgets import ( ExpandingWidget, NumberSpinBox, GridLabelWidget, - ComboBox, + SettingsComboBox, NiceCheckbox, SettingsPlainTextEdit, SettingsLineEdit @@ -495,7 +495,7 @@ class EnumeratorWidget(InputWidget): ) else: - self.input_field = ComboBox(self.content_widget) + self.input_field = SettingsComboBox(self.content_widget) for enum_item in self.entity.enum_items: for value, label in enum_item.items(): @@ -505,8 +505,12 @@ class EnumeratorWidget(InputWidget): self.setFocusProxy(self.input_field) + self.input_field.focused_in.connect(self._on_input_focus) self.input_field.value_changed.connect(self._on_value_change) + def _on_input_focus(self): + self.focused_in() + def _on_entity_change(self): if self.entity.value != self.input_field.value(): self.set_entity_value() diff --git a/openpype/tools/settings/settings/multiselection_combobox.py b/openpype/tools/settings/settings/multiselection_combobox.py index 30ecb7b84b..2e625faa2d 100644 --- a/openpype/tools/settings/settings/multiselection_combobox.py +++ b/openpype/tools/settings/settings/multiselection_combobox.py @@ -21,6 +21,8 @@ class ComboItemDelegate(QtWidgets.QStyledItemDelegate): class MultiSelectionComboBox(QtWidgets.QComboBox): value_changed = QtCore.Signal() + focused_in = QtCore.Signal() + ignored_keys = { QtCore.Qt.Key_Up, QtCore.Qt.Key_Down, @@ -56,6 +58,10 @@ class MultiSelectionComboBox(QtWidgets.QComboBox): self.lines = {} self.item_height = None + def focusInEvent(self, event): + self.focused_in.emit() + return super(SettingsComboBox, self).focusInEvent(event) + def mousePressEvent(self, event): """Reimplemented.""" self._popup_is_shown = False diff --git a/openpype/tools/settings/settings/widgets.py b/openpype/tools/settings/settings/widgets.py index c727b22169..f7c379eb3e 100644 --- a/openpype/tools/settings/settings/widgets.py +++ b/openpype/tools/settings/settings/widgets.py @@ -109,18 +109,23 @@ class NumberSpinBox(QtWidgets.QDoubleSpinBox): return output -class ComboBox(QtWidgets.QComboBox): +class SettingsComboBox(QtWidgets.QComboBox): value_changed = QtCore.Signal() + focused_in = QtCore.Signal() def __init__(self, *args, **kwargs): - super(ComboBox, self).__init__(*args, **kwargs) + super(SettingsComboBox, self).__init__(*args, **kwargs) self.currentIndexChanged.connect(self._on_change) self.setFocusPolicy(QtCore.Qt.StrongFocus) def wheelEvent(self, event): if self.hasFocus(): - return super(ComboBox, self).wheelEvent(event) + return super(SettingsComboBox, self).wheelEvent(event) + + def focusInEvent(self, event): + self.focused_in.emit() + return super(SettingsComboBox, self).focusInEvent(event) def _on_change(self, *args, **kwargs): self.value_changed.emit() From fd138b53be2f487a23e670dd19f16ebb8bfcdadc Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 16:07:37 +0200 Subject: [PATCH 037/120] set names of breadcrumb widgets to be able style them --- openpype/tools/settings/settings/breadcrumb_widget.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/openpype/tools/settings/settings/breadcrumb_widget.py b/openpype/tools/settings/settings/breadcrumb_widget.py index d8a35daa5a..ccd55b7bda 100644 --- a/openpype/tools/settings/settings/breadcrumb_widget.py +++ b/openpype/tools/settings/settings/breadcrumb_widget.py @@ -209,6 +209,8 @@ class BreadcrumbsPathInput(QtWidgets.QLineEdit): def __init__(self, model, parent): super(BreadcrumbsPathInput, self).__init__(parent) + self.setObjectName("BreadcrumbsPathInput") + self.setFrame(False) completer = QtWidgets.QCompleter(self) @@ -261,6 +263,8 @@ class BreadcrumbsButton(QtWidgets.QToolButton): def __init__(self, path, model, parent): super(BreadcrumbsButton, self).__init__(parent) + self.setObjectName("BreadcrumbsButton") + path_prefix = path + "/" self.setAutoRaise(True) @@ -304,6 +308,8 @@ class BreadcrumbsAddressBar(QtWidgets.QFrame): def __init__(self, parent=None): super(BreadcrumbsAddressBar, self).__init__(parent) + self.setObjectName("BreadcrumbsAddressBar") + self.setAutoFillBackground(True) self.setFrameShape(self.StyledPanel) From a9e41a704c27060a218c7c1b70250a494c5f7462 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 16:08:02 +0200 Subject: [PATCH 038/120] renamed file with breadcrumbs content --- .../settings/{breadcrumb_widget.py => breadcrumbs_widget.py} | 0 openpype/tools/settings/settings/categories.py | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename openpype/tools/settings/settings/{breadcrumb_widget.py => breadcrumbs_widget.py} (100%) diff --git a/openpype/tools/settings/settings/breadcrumb_widget.py b/openpype/tools/settings/settings/breadcrumbs_widget.py similarity index 100% rename from openpype/tools/settings/settings/breadcrumb_widget.py rename to openpype/tools/settings/settings/breadcrumbs_widget.py diff --git a/openpype/tools/settings/settings/categories.py b/openpype/tools/settings/settings/categories.py index 1506e5bbfd..3f332378eb 100644 --- a/openpype/tools/settings/settings/categories.py +++ b/openpype/tools/settings/settings/categories.py @@ -31,7 +31,7 @@ from openpype.settings.entities import ( from openpype.settings import SaveWarningExc from .widgets import ProjectListWidget -from .breadcrumb_widget import ( +from .breadcrumbs_widget import ( BreadcrumbsAddressBar, SystemSettingsBreadcrumbs, ProjectSettingsBreadcrumbs From c8eb053cb732455384a378e25d695b1b6f57c2b0 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 17:13:18 +0200 Subject: [PATCH 039/120] insert empty item on init --- openpype/tools/settings/settings/breadcrumbs_widget.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/openpype/tools/settings/settings/breadcrumbs_widget.py b/openpype/tools/settings/settings/breadcrumbs_widget.py index ccd55b7bda..8f010de136 100644 --- a/openpype/tools/settings/settings/breadcrumbs_widget.py +++ b/openpype/tools/settings/settings/breadcrumbs_widget.py @@ -265,14 +265,19 @@ class BreadcrumbsButton(QtWidgets.QToolButton): self.setObjectName("BreadcrumbsButton") - path_prefix = path + "/" + path_prefix = path + if path: + path_prefix += "/" self.setAutoRaise(True) self.setPopupMode(QtWidgets.QToolButton.MenuButtonPopup) self.setMouseTracking(True) - self.setText(path.split("/")[-1]) + if path: + self.setText(path.split("/")[-1]) + else: + self.setProperty("empty", "1") menu = BreadcrumbsHintMenu(model, path_prefix, self) @@ -417,6 +422,7 @@ class BreadcrumbsAddressBar(QtWidgets.QFrame): item = "/".join(path_items) self._insert_crumb(item) path_items.pop(-1) + self._insert_crumb("") self.path_changed.emit(self._current_path) From 6064471b71f5b3e2cefc212c35af8ab7f93fdc0f Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 17:17:06 +0200 Subject: [PATCH 040/120] added styles --- .../settings/settings/breadcrumbs_widget.py | 3 +- .../tools/settings/settings/style/style.css | 29 ++++++++++++++++++- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/openpype/tools/settings/settings/breadcrumbs_widget.py b/openpype/tools/settings/settings/breadcrumbs_widget.py index 8f010de136..085034a1f8 100644 --- a/openpype/tools/settings/settings/breadcrumbs_widget.py +++ b/openpype/tools/settings/settings/breadcrumbs_widget.py @@ -313,8 +313,6 @@ class BreadcrumbsAddressBar(QtWidgets.QFrame): def __init__(self, parent=None): super(BreadcrumbsAddressBar, self).__init__(parent) - self.setObjectName("BreadcrumbsAddressBar") - self.setAutoFillBackground(True) self.setFrameShape(self.StyledPanel) @@ -331,6 +329,7 @@ class BreadcrumbsAddressBar(QtWidgets.QFrame): # Container for breadcrumbs crumbs_panel = QtWidgets.QWidget(crumbs_container) + crumbs_panel.setObjectName("BreadcrumbsPanel") crumbs_layout = QtWidgets.QHBoxLayout() crumbs_layout.setContentsMargins(0, 0, 0, 0) diff --git a/openpype/tools/settings/settings/style/style.css b/openpype/tools/settings/settings/style/style.css index 3ce9837a8b..6a6eb7209a 100644 --- a/openpype/tools/settings/settings/style/style.css +++ b/openpype/tools/settings/settings/style/style.css @@ -388,4 +388,31 @@ QTableView::item:pressed, QListView::item:pressed, QTreeView::item:pressed { QTableView::item:selected:active, QTreeView::item:selected:active, QListView::item:selected:active { background: #3d8ec9; -} \ No newline at end of file +} + +#BreadcrumbsPathInput { + padding: 2px; +} + +#BreadcrumbsButton { + padding-right: 12px; + font-size: 9pt; +} + +#BreadcrumbsButton[empty="1"] { + padding-right: 0px; +} + +#BreadcrumbsButton::menu-button { + width: 12px; + background: rgba(127, 127, 127, 60); +} +#BreadcrumbsButton::menu-button:hover { + background: rgba(127, 127, 127, 90); +} + +#BreadcrumbsPanel { + border: 1px solid #4e5254; + border-radius: 5px; + background: #21252B;; +} From d1191ab7e0742850fd5b90bb84b6a2a5069bcf8a Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 17:17:17 +0200 Subject: [PATCH 041/120] fixed GUIWIdget --- openpype/tools/settings/settings/base.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/openpype/tools/settings/settings/base.py b/openpype/tools/settings/settings/base.py index b10ec58142..0541c36ffe 100644 --- a/openpype/tools/settings/settings/base.py +++ b/openpype/tools/settings/settings/base.py @@ -458,7 +458,7 @@ class GUIWidget(BaseWidget): layout.addWidget(splitter_item) def set_entity_value(self): - return + pass def hierarchical_style_update(self): pass @@ -466,6 +466,9 @@ class GUIWidget(BaseWidget): def make_sure_is_visible(self, *args, **kwargs): pass + def set_path(self, *args, **kwargs): + pass + def get_invalid(self): return [] From d17d6d801bbfa15f38b3a5bd32ead1c3341c7665 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 17:17:42 +0200 Subject: [PATCH 042/120] use only path input reference --- openpype/tools/settings/settings/breadcrumbs_widget.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/openpype/tools/settings/settings/breadcrumbs_widget.py b/openpype/tools/settings/settings/breadcrumbs_widget.py index 085034a1f8..ce3d06dbc3 100644 --- a/openpype/tools/settings/settings/breadcrumbs_widget.py +++ b/openpype/tools/settings/settings/breadcrumbs_widget.py @@ -450,8 +450,5 @@ class BreadcrumbsAddressBar(QtWidgets.QFrame): def minimumSizeHint(self): result = super(BreadcrumbsAddressBar, self).minimumSizeHint() - result.setHeight(max( - self.path_input.height(), - self.crumbs_container.height() - )) + result.setHeight(self.path_input.minimumSizeHint().height()) return result From 37b3af142ef153d6f1fb11ec80f5fa4318777727 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 17:18:35 +0200 Subject: [PATCH 043/120] set font size for path input --- openpype/tools/settings/settings/style/style.css | 1 + 1 file changed, 1 insertion(+) diff --git a/openpype/tools/settings/settings/style/style.css b/openpype/tools/settings/settings/style/style.css index 6a6eb7209a..250c15063f 100644 --- a/openpype/tools/settings/settings/style/style.css +++ b/openpype/tools/settings/settings/style/style.css @@ -392,6 +392,7 @@ QTableView::item:selected:active, QTreeView::item:selected:active, QListView::it #BreadcrumbsPathInput { padding: 2px; + font-size: 9pt; } #BreadcrumbsButton { From 58983c21793939bdeea818951919afb9a1654eea Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 17:18:44 +0200 Subject: [PATCH 044/120] reset path after refresh --- openpype/tools/settings/settings/categories.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openpype/tools/settings/settings/categories.py b/openpype/tools/settings/settings/categories.py index 3f332378eb..88e987e793 100644 --- a/openpype/tools/settings/settings/categories.py +++ b/openpype/tools/settings/settings/categories.py @@ -466,7 +466,10 @@ class SettingsCategoryWidget(QtWidgets.QWidget): self.save_btn.setEnabled(True) if self.breadcrumbs_model is not None: + path = self.breadcrumbs_widget.path() + self.breadcrumbs_widget.set_path("") self.breadcrumbs_model.set_entity(self.entity) + self.breadcrumbs_widget.change_path(path) def add_children_gui(self): for child_obj in self.entity.children: From f5712bb99130688b93a6c82251a23173329a8757 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 17:21:37 +0200 Subject: [PATCH 045/120] path is also changed for number inputs --- openpype/tools/settings/settings/item_widgets.py | 4 ++++ openpype/tools/settings/settings/widgets.py | 6 ++++++ 2 files changed, 10 insertions(+) diff --git a/openpype/tools/settings/settings/item_widgets.py b/openpype/tools/settings/settings/item_widgets.py index 97a63c7838..4b60ef8d1c 100644 --- a/openpype/tools/settings/settings/item_widgets.py +++ b/openpype/tools/settings/settings/item_widgets.py @@ -374,6 +374,10 @@ class NumberWidget(InputWidget): self.content_layout.addWidget(self.input_field, 1) self.input_field.valueChanged.connect(self._on_value_change) + self.input_field.focused_in.connect(self._on_input_focus) + + def _on_input_focus(self): + self.focused_in() def _on_entity_change(self): if self.entity.value != self.input_field.value(): diff --git a/openpype/tools/settings/settings/widgets.py b/openpype/tools/settings/settings/widgets.py index f7c379eb3e..34b222dd8e 100644 --- a/openpype/tools/settings/settings/widgets.py +++ b/openpype/tools/settings/settings/widgets.py @@ -86,6 +86,8 @@ class IconButton(QtWidgets.QPushButton): class NumberSpinBox(QtWidgets.QDoubleSpinBox): + focused_in = QtCore.Signal() + def __init__(self, *args, **kwargs): min_value = kwargs.pop("minimum", -99999) max_value = kwargs.pop("maximum", 99999) @@ -96,6 +98,10 @@ class NumberSpinBox(QtWidgets.QDoubleSpinBox): self.setMinimum(min_value) self.setMaximum(max_value) + def focusInEvent(self, event): + super(NumberSpinBox, self).focusInEvent(event) + self.focused_in.emit() + def wheelEvent(self, event): if self.hasFocus(): super(NumberSpinBox, self).wheelEvent(event) From bda4d311c5ec4175db9f73da690299a9ac803046 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 17:54:42 +0200 Subject: [PATCH 046/120] enhanced filling of path --- .../settings/settings/breadcrumbs_widget.py | 44 ++++++++++++++++--- 1 file changed, 37 insertions(+), 7 deletions(-) diff --git a/openpype/tools/settings/settings/breadcrumbs_widget.py b/openpype/tools/settings/settings/breadcrumbs_widget.py index ce3d06dbc3..2a9eb2dce9 100644 --- a/openpype/tools/settings/settings/breadcrumbs_widget.py +++ b/openpype/tools/settings/settings/breadcrumbs_widget.py @@ -72,6 +72,12 @@ class SettingsBreadcrumbs(BreadcrumbsModel): self.entity = entity self.reset() + def has_children(self, path): + for key in self.entities_by_path.keys(): + if key.startswith(path): + return True + return False + class SystemSettingsBreadcrumbs(SettingsBreadcrumbs): def reset(self): @@ -206,7 +212,7 @@ class BreadcrumbsPathInput(QtWidgets.QLineEdit): cancelled = QtCore.Signal() confirmed = QtCore.Signal() - def __init__(self, model, parent): + def __init__(self, model, proxy_model, parent): super(BreadcrumbsPathInput, self).__init__(parent) self.setObjectName("BreadcrumbsPathInput") @@ -215,7 +221,7 @@ class BreadcrumbsPathInput(QtWidgets.QLineEdit): completer = QtWidgets.QCompleter(self) completer.setCaseSensitivity(QtCore.Qt.CaseInsensitive) - completer.setModel(model) + completer.setModel(proxy_model) popup = completer.popup() popup.setUniformItemSizes(True) @@ -228,16 +234,39 @@ class BreadcrumbsPathInput(QtWidgets.QLineEdit): self._completer = completer self._model = model + self._proxy_model = proxy_model self._context_menu_visible = False + def set_model(self, model): + self._model = model + + def event(self, event): + if ( + event.type() == QtCore.QEvent.KeyPress + and event.key() == QtCore.Qt.Key_Tab + ): + if self._model: + find_value = self.text() + "/" + if self._model.has_children(find_value): + self.insert("/") + else: + self._completer.popup().hide() + event.accept() + return True + + return super(BreadcrumbsPathInput, self).event(event) + def keyPressEvent(self, event): if event.key() == QtCore.Qt.Key_Escape: self.cancelled.emit() - elif event.key() in (QtCore.Qt.Key_Return, QtCore.Qt.Key_Enter): + return + + if event.key() in (QtCore.Qt.Key_Return, QtCore.Qt.Key_Enter): self.confirmed.emit() - else: - super(BreadcrumbsPathInput, self).keyPressEvent(event) + return + + super(BreadcrumbsPathInput, self).keyPressEvent(event) def focusOutEvent(self, event): if not self._context_menu_visible: @@ -254,7 +283,7 @@ class BreadcrumbsPathInput(QtWidgets.QLineEdit): self.confirmed.emit() def _on_text_change(self, path): - self._model.set_path_prefix(path) + self._proxy_model.set_path_prefix(path) class BreadcrumbsButton(QtWidgets.QToolButton): @@ -318,7 +347,7 @@ class BreadcrumbsAddressBar(QtWidgets.QFrame): # Edit presented path textually proxy_model = BreadcrumbsProxy() - path_input = BreadcrumbsPathInput(proxy_model, self) + path_input = BreadcrumbsPathInput(None, proxy_model, self) path_input.setVisible(False) path_input.cancelled.connect(self._on_input_cancel) @@ -372,6 +401,7 @@ class BreadcrumbsAddressBar(QtWidgets.QFrame): def set_model(self, model): self._model = model + self.path_input.set_model(model) self._proxy_model.setSourceModel(model) def _on_input_confirm(self): From a5a29d8895bab7a332b18c748654b709792e87a6 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 18:10:21 +0200 Subject: [PATCH 047/120] list items have implemented getters --- openpype/settings/entities/item_entities.py | 13 +++++++++++++ openpype/settings/entities/list_entity.py | 13 +++++++++++++ 2 files changed, 26 insertions(+) diff --git a/openpype/settings/entities/item_entities.py b/openpype/settings/entities/item_entities.py index ecce7a22c0..efba6dbb61 100644 --- a/openpype/settings/entities/item_entities.py +++ b/openpype/settings/entities/item_entities.py @@ -195,6 +195,19 @@ class PathEntity(ItemEntity): class ListStrictEntity(ItemEntity): schema_types = ["list-strict"] + def __getitem__(self, idx): + if not isinstance(idx, int): + idx = int(idx) + return self.children[idx] + + def get(self, idx, default=None): + if not isinstance(idx, int): + idx = int(idx) + + if idx < len(self.children): + return self.children[idx] + return default + def _item_initalization(self): self.valid_value_types = (list, ) self.require_key = True diff --git a/openpype/settings/entities/list_entity.py b/openpype/settings/entities/list_entity.py index b07441251a..bcfacbf144 100644 --- a/openpype/settings/entities/list_entity.py +++ b/openpype/settings/entities/list_entity.py @@ -45,6 +45,19 @@ class ListEntity(EndpointEntity): return True return False + def __getitem__(self, idx): + if not isinstance(idx, int): + idx = int(idx) + return self.children[idx] + + def get(self, idx, default=None): + if not isinstance(idx, int): + idx = int(idx) + + if idx < len(self.children): + return self.children[idx] + return default + def index(self, item): if isinstance(item, BaseEntity): for idx, child_entity in enumerate(self.children): From 689e480cd5c16713d1aad8e5b0504c959e5676e6 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 18:10:56 +0200 Subject: [PATCH 048/120] validate path before confirming it --- .../settings/settings/breadcrumbs_widget.py | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/openpype/tools/settings/settings/breadcrumbs_widget.py b/openpype/tools/settings/settings/breadcrumbs_widget.py index 2a9eb2dce9..90105a4b4e 100644 --- a/openpype/tools/settings/settings/breadcrumbs_widget.py +++ b/openpype/tools/settings/settings/breadcrumbs_widget.py @@ -78,6 +78,19 @@ class SettingsBreadcrumbs(BreadcrumbsModel): return True return False + def is_valid_path(self, path): + if not path: + return True + + path_items = path.split("/") + try: + entity = self.entity + for item in path_items: + entity = entity[item] + except Exception: + return False + return True + class SystemSettingsBreadcrumbs(SettingsBreadcrumbs): def reset(self): @@ -406,7 +419,6 @@ class BreadcrumbsAddressBar(QtWidgets.QFrame): def _on_input_confirm(self): self.change_path(self.path_input.text()) - self._show_address_field(False) def _on_input_cancel(self): self._cancel_edit() @@ -429,8 +441,11 @@ class BreadcrumbsAddressBar(QtWidgets.QFrame): self.change_path(path) def change_path(self, path): - self.set_path(path) - self.path_edited.emit(path) + if self._model and not self._model.is_valid_path(path): + self._show_address_field() + else: + self.set_path(path) + self.path_edited.emit(path) def set_path(self, path): if path is None or path == ".": From ea0aff363eea0685e9e2f445543d567c5709f765 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 12 Aug 2021 18:14:19 +0200 Subject: [PATCH 049/120] list have also setters --- openpype/settings/entities/item_entities.py | 5 +++++ openpype/settings/entities/list_entity.py | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/openpype/settings/entities/item_entities.py b/openpype/settings/entities/item_entities.py index efba6dbb61..ac6b3e76dd 100644 --- a/openpype/settings/entities/item_entities.py +++ b/openpype/settings/entities/item_entities.py @@ -200,6 +200,11 @@ class ListStrictEntity(ItemEntity): idx = int(idx) return self.children[idx] + def __setitem__(self, idx, value): + if not isinstance(idx, int): + idx = int(idx) + self.children[idx].set(value) + def get(self, idx, default=None): if not isinstance(idx, int): idx = int(idx) diff --git a/openpype/settings/entities/list_entity.py b/openpype/settings/entities/list_entity.py index bcfacbf144..b06f4d7a2e 100644 --- a/openpype/settings/entities/list_entity.py +++ b/openpype/settings/entities/list_entity.py @@ -50,6 +50,11 @@ class ListEntity(EndpointEntity): idx = int(idx) return self.children[idx] + def __setitem__(self, idx, value): + if not isinstance(idx, int): + idx = int(idx) + self.children[idx].set(value) + def get(self, idx, default=None): if not isinstance(idx, int): idx = int(idx) From ec13c2228095a9791732a3ace68dc5aafc887814 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 13 Aug 2021 09:22:40 +0200 Subject: [PATCH 050/120] removed unused parts --- openpype/tools/settings/settings/breadcrumbs_widget.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/openpype/tools/settings/settings/breadcrumbs_widget.py b/openpype/tools/settings/settings/breadcrumbs_widget.py index 90105a4b4e..b625a7bb07 100644 --- a/openpype/tools/settings/settings/breadcrumbs_widget.py +++ b/openpype/tools/settings/settings/breadcrumbs_widget.py @@ -1,12 +1,5 @@ -import os -import sys -sys.path.append(r"C:\Users\jakub.trllo\Desktop\pype\pype3_2\.venv\Lib\site-packages") - from Qt import QtWidgets, QtGui, QtCore -# px, size of generated semi-transparent icons -TRANSP_ICON_SIZE = 40, 40 - PREFIX_ROLE = QtCore.Qt.UserRole + 1 LAST_SEGMENT_ROLE = QtCore.Qt.UserRole + 2 From 2691d294c4236ec257ce1d54470938c9f71a1517 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 13 Aug 2021 09:22:48 +0200 Subject: [PATCH 051/120] added margins to path widget --- openpype/tools/settings/settings/categories.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/tools/settings/settings/categories.py b/openpype/tools/settings/settings/categories.py index 88e987e793..d524462600 100644 --- a/openpype/tools/settings/settings/categories.py +++ b/openpype/tools/settings/settings/categories.py @@ -185,7 +185,7 @@ class SettingsCategoryWidget(QtWidgets.QWidget): breadcrumbs_widget = BreadcrumbsAddressBar(content_widget) breadcrumbs_layout = QtWidgets.QHBoxLayout() - breadcrumbs_layout.setContentsMargins(5, 0, 5, 0) + breadcrumbs_layout.setContentsMargins(5, 5, 5, 5) breadcrumbs_layout.setSpacing(5) breadcrumbs_layout.addWidget(breadcrumbs_label) breadcrumbs_layout.addWidget(breadcrumbs_widget) From c39ea2b65409c9ee2a5adcf7d39c3bfd0e798435 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 13 Aug 2021 09:22:54 +0200 Subject: [PATCH 052/120] fixed super --- openpype/tools/settings/settings/multiselection_combobox.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/tools/settings/settings/multiselection_combobox.py b/openpype/tools/settings/settings/multiselection_combobox.py index 2e625faa2d..176f4cab8c 100644 --- a/openpype/tools/settings/settings/multiselection_combobox.py +++ b/openpype/tools/settings/settings/multiselection_combobox.py @@ -60,7 +60,7 @@ class MultiSelectionComboBox(QtWidgets.QComboBox): def focusInEvent(self, event): self.focused_in.emit() - return super(SettingsComboBox, self).focusInEvent(event) + return super(MultiSelectionComboBox, self).focusInEvent(event) def mousePressEvent(self, event): """Reimplemented.""" From 65cf4559d278b68b0d9bea699ced3a14ad073ff9 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 13 Aug 2021 09:50:02 +0200 Subject: [PATCH 053/120] dict stores all direct children --- openpype/tools/settings/settings/item_widgets.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openpype/tools/settings/settings/item_widgets.py b/openpype/tools/settings/settings/item_widgets.py index 4b60ef8d1c..4d344cb8fc 100644 --- a/openpype/tools/settings/settings/item_widgets.py +++ b/openpype/tools/settings/settings/item_widgets.py @@ -48,6 +48,7 @@ class DictImmutableKeysWidget(BaseWidget): self._ui_item_base() label = self.entity.label + self._direct_children_widgets = [] self._parent_widget_by_entity_id = {} self._added_wrapper_ids = set() self._prepare_entity_layouts( @@ -193,6 +194,8 @@ class DictImmutableKeysWidget(BaseWidget): self._added_wrapper_ids.add(wrapper.id) return + self._direct_children_widgets.append(widget) + row = self.content_layout.rowCount() if not label or isinstance(widget, WrapperWidget): self.content_layout.addWidget(widget, row, 0, 1, 2) From 4a7995e9adeaa45f39e00a2bbe608175e247b122 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 13 Aug 2021 09:51:03 +0200 Subject: [PATCH 054/120] make_sure_is_visible expect result --- openpype/tools/settings/settings/base.py | 5 +++++ .../tools/settings/settings/dict_conditional.py | 10 ++++++---- .../tools/settings/settings/dict_mutable_widget.py | 10 ++++++---- openpype/tools/settings/settings/item_widgets.py | 14 ++++++++------ .../tools/settings/settings/list_item_widget.py | 12 +++++++----- .../tools/settings/settings/list_strict_widget.py | 8 +++++--- 6 files changed, 37 insertions(+), 22 deletions(-) diff --git a/openpype/tools/settings/settings/base.py b/openpype/tools/settings/settings/base.py index 0541c36ffe..915a408f4e 100644 --- a/openpype/tools/settings/settings/base.py +++ b/openpype/tools/settings/settings/base.py @@ -372,6 +372,8 @@ class InputWidget(BaseWidget): entity_path = self.entity.path if entity_path == path: self.set_focus(scroll_to) + return True + return False def update_style(self): has_unsaved_changes = self.entity.has_unsaved_changes @@ -464,6 +466,9 @@ class GUIWidget(BaseWidget): pass def make_sure_is_visible(self, *args, **kwargs): + return False + + def focused_in(self): pass def set_path(self, *args, **kwargs): diff --git a/openpype/tools/settings/settings/dict_conditional.py b/openpype/tools/settings/settings/dict_conditional.py index 222cca03f9..c30159195c 100644 --- a/openpype/tools/settings/settings/dict_conditional.py +++ b/openpype/tools/settings/settings/dict_conditional.py @@ -215,22 +215,24 @@ class DictConditionalWidget(BaseWidget): def make_sure_is_visible(self, path, scroll_to): if not path: - return + return False entity_path = self.entity.path if entity_path == path: self.set_focus(scroll_to) - return + return True if not path.startswith(entity_path): - return + return False if self.body_widget and not self.body_widget.is_expanded(): self.body_widget.toggle_content(True) QtWidgets.QApplication.processEvents() for input_field in self.input_fields: - input_field.make_sure_is_visible(path, scroll_to) + if input_field.make_sure_is_visible(path, scroll_to): + return True + return False def add_widget_to_layout(self, widget, label=None): if not widget.entity: diff --git a/openpype/tools/settings/settings/dict_mutable_widget.py b/openpype/tools/settings/settings/dict_mutable_widget.py index b733727e4e..5bab74fabf 100644 --- a/openpype/tools/settings/settings/dict_mutable_widget.py +++ b/openpype/tools/settings/settings/dict_mutable_widget.py @@ -318,7 +318,7 @@ class ModifiableDictItem(QtWidgets.QWidget): ) def make_sure_is_visible(self, *args, **kwargs): - self.input_field.make_sure_is_visible(*args, **kwargs) + return self.input_field.make_sure_is_visible(*args, **kwargs) def get_style_state(self): if self.is_invalid: @@ -854,17 +854,19 @@ class DictMutableKeysWidget(BaseWidget): entity_path = self.entity.path if entity_path == path: self.set_focus(scroll_to) - return + return True if not path.startswith(entity_path): - return + return False if self.body_widget and not self.body_widget.is_expanded(): self.body_widget.toggle_content(True) QtWidgets.QApplication.processEvents() for input_field in self.input_fields: - input_field.make_sure_is_visible(path, scroll_to) + if input_field.make_sure_is_visible(path, scroll_to): + return True + return False def set_entity_value(self): while self.input_fields: diff --git a/openpype/tools/settings/settings/item_widgets.py b/openpype/tools/settings/settings/item_widgets.py index 4d344cb8fc..9c69ee6705 100644 --- a/openpype/tools/settings/settings/item_widgets.py +++ b/openpype/tools/settings/settings/item_widgets.py @@ -159,22 +159,24 @@ class DictImmutableKeysWidget(BaseWidget): def make_sure_is_visible(self, path, scroll_to): if not path: - return + return False entity_path = self.entity.path if entity_path == path: self.set_focus(scroll_to) - return + return True if not path.startswith(entity_path): - return + return False if self.body_widget and not self.body_widget.is_expanded(): self.body_widget.toggle_content(True) QtWidgets.QApplication.processEvents() - for input_field in self.input_fields: - input_field.make_sure_is_visible(path, scroll_to) + for direct_child in self._direct_children_widgets: + if direct_child.make_sure_is_visible(path, scroll_to): + return True + return False def add_widget_to_layout(self, widget, label=None): if self.checkbox_child and widget.entity is self.checkbox_child: @@ -599,7 +601,7 @@ class PathWidget(BaseWidget): self.input_field.set_entity_value() def make_sure_is_visible(self, *args, **kwargs): - self.input_field.make_sure_is_visible(*args, **kwargs) + return self.input_field.make_sure_is_visible(*args, **kwargs) def hierarchical_style_update(self): self.update_style() diff --git a/openpype/tools/settings/settings/list_item_widget.py b/openpype/tools/settings/settings/list_item_widget.py index 52b96a658f..50630986d6 100644 --- a/openpype/tools/settings/settings/list_item_widget.py +++ b/openpype/tools/settings/settings/list_item_widget.py @@ -119,7 +119,7 @@ class ListItem(QtWidgets.QWidget): ) def make_sure_is_visible(self, *args, **kwargs): - self.input_field.make_sure_is_visible(*args, **kwargs) + return self.input_field.make_sure_is_visible(*args, **kwargs) @property def is_invalid(self): @@ -269,22 +269,24 @@ class ListWidget(InputWidget): def make_sure_is_visible(self, path, scroll_to): if not path: - return + return False entity_path = self.entity.path if entity_path == path: self.set_focus(scroll_to) - return + return True if not path.startswith(entity_path): - return + return False if self.body_widget and not self.body_widget.is_expanded(): self.body_widget.toggle_content(True) QtWidgets.QApplication.processEvents() for input_field in self.input_fields: - input_field.make_sure_is_visible(path, scroll_to) + if input_field.make_sure_is_visible(path, scroll_to): + return True + return False def _on_entity_change(self): # TODO do less inefficient diff --git a/openpype/tools/settings/settings/list_strict_widget.py b/openpype/tools/settings/settings/list_strict_widget.py index 94a6ff53e2..046b6992f6 100644 --- a/openpype/tools/settings/settings/list_strict_widget.py +++ b/openpype/tools/settings/settings/list_strict_widget.py @@ -67,16 +67,18 @@ class ListStrictWidget(BaseWidget): def make_sure_is_visible(self, path, scroll_to): if not path: - return + return False entity_path = self.entity.path if entity_path == path: self.set_focus(scroll_to) - return + return True if path.startswith(entity_path): for input_field in self.input_fields: - input_field.make_sure_is_visible(path, scroll_to) + if input_field.make_sure_is_visible(path, scroll_to): + return True + return False def add_widget_to_layout(self, widget, label=None): # Horizontally added children From b859ff99ddcec420427532813ca3a5ac16a9ab51 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 13 Aug 2021 09:51:23 +0200 Subject: [PATCH 055/120] wrappers use the result to be able expand themselves --- .../tools/settings/settings/wrapper_widgets.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/openpype/tools/settings/settings/wrapper_widgets.py b/openpype/tools/settings/settings/wrapper_widgets.py index 915a2cf875..b14a226912 100644 --- a/openpype/tools/settings/settings/wrapper_widgets.py +++ b/openpype/tools/settings/settings/wrapper_widgets.py @@ -19,6 +19,14 @@ class WrapperWidget(QtWidgets.QWidget): self.create_ui() + def make_sure_is_visible(self, *args, **kwargs): + changed = False + for input_field in self.input_fields: + if input_field.make_sure_is_visible(*args, **kwargs): + changed = True + break + return changed + def create_ui(self): raise NotImplementedError( "{} does not have implemented `create_ui`.".format( @@ -89,6 +97,14 @@ class CollapsibleWrapper(WrapperWidget): else: body_widget.hide_toolbox(hide_content=False) + def make_sure_is_visible(self, *args, **kwargs): + result = super(CollapsibleWrapper, self).make_sure_is_visible( + *args, **kwargs + ) + if result: + self.body_widget.toggle_content(True) + return result + def add_widget_to_layout(self, widget, label=None): self.input_fields.append(widget) From a706fecda4cef15627288c32b32e14675b2999eb Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 13 Aug 2021 09:56:29 +0200 Subject: [PATCH 056/120] process app events before scrolling instead of each widget --- openpype/tools/settings/settings/categories.py | 5 +++++ openpype/tools/settings/settings/dict_conditional.py | 1 - openpype/tools/settings/settings/dict_mutable_widget.py | 1 - openpype/tools/settings/settings/item_widgets.py | 1 - openpype/tools/settings/settings/list_item_widget.py | 1 - 5 files changed, 5 insertions(+), 4 deletions(-) diff --git a/openpype/tools/settings/settings/categories.py b/openpype/tools/settings/settings/categories.py index d524462600..6d8a5aa6b2 100644 --- a/openpype/tools/settings/settings/categories.py +++ b/openpype/tools/settings/settings/categories.py @@ -258,6 +258,11 @@ class SettingsCategoryWidget(QtWidgets.QWidget): def scroll_to(self, widget): if widget: + # Process events which happened before ensurence + # - that is because some widgets could be not visible before + # this method was called and have incorrect size + QtWidgets.QApplication.processEvents() + # Scroll to widget self.scroll_widget.ensureWidgetVisible(widget) def set_path(self, path): diff --git a/openpype/tools/settings/settings/dict_conditional.py b/openpype/tools/settings/settings/dict_conditional.py index c30159195c..3e3270cac9 100644 --- a/openpype/tools/settings/settings/dict_conditional.py +++ b/openpype/tools/settings/settings/dict_conditional.py @@ -227,7 +227,6 @@ class DictConditionalWidget(BaseWidget): if self.body_widget and not self.body_widget.is_expanded(): self.body_widget.toggle_content(True) - QtWidgets.QApplication.processEvents() for input_field in self.input_fields: if input_field.make_sure_is_visible(path, scroll_to): diff --git a/openpype/tools/settings/settings/dict_mutable_widget.py b/openpype/tools/settings/settings/dict_mutable_widget.py index 5bab74fabf..25908f5a60 100644 --- a/openpype/tools/settings/settings/dict_mutable_widget.py +++ b/openpype/tools/settings/settings/dict_mutable_widget.py @@ -861,7 +861,6 @@ class DictMutableKeysWidget(BaseWidget): if self.body_widget and not self.body_widget.is_expanded(): self.body_widget.toggle_content(True) - QtWidgets.QApplication.processEvents() for input_field in self.input_fields: if input_field.make_sure_is_visible(path, scroll_to): diff --git a/openpype/tools/settings/settings/item_widgets.py b/openpype/tools/settings/settings/item_widgets.py index 9c69ee6705..fed924e0bf 100644 --- a/openpype/tools/settings/settings/item_widgets.py +++ b/openpype/tools/settings/settings/item_widgets.py @@ -171,7 +171,6 @@ class DictImmutableKeysWidget(BaseWidget): if self.body_widget and not self.body_widget.is_expanded(): self.body_widget.toggle_content(True) - QtWidgets.QApplication.processEvents() for direct_child in self._direct_children_widgets: if direct_child.make_sure_is_visible(path, scroll_to): diff --git a/openpype/tools/settings/settings/list_item_widget.py b/openpype/tools/settings/settings/list_item_widget.py index 50630986d6..17412a30b9 100644 --- a/openpype/tools/settings/settings/list_item_widget.py +++ b/openpype/tools/settings/settings/list_item_widget.py @@ -281,7 +281,6 @@ class ListWidget(InputWidget): if self.body_widget and not self.body_widget.is_expanded(): self.body_widget.toggle_content(True) - QtWidgets.QApplication.processEvents() for input_field in self.input_fields: if input_field.make_sure_is_visible(path, scroll_to): From c08bf6b4ad4b5b3d8e55ffd4f14cfbb511d5c6dc Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 13 Aug 2021 09:57:11 +0200 Subject: [PATCH 057/120] added few docstrings --- openpype/tools/settings/settings/base.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/openpype/tools/settings/settings/base.py b/openpype/tools/settings/settings/base.py index 915a408f4e..8235cf8642 100644 --- a/openpype/tools/settings/settings/base.py +++ b/openpype/tools/settings/settings/base.py @@ -32,11 +32,25 @@ class BaseWidget(QtWidgets.QWidget): self.category_widget.set_path(path) def set_focus(self, scroll_to=False): + """Set focus of a widget. + + Args: + scroll_to(bool): Also scroll to widget in category widget. + """ if scroll_to: self.scroll_to(self) self.setFocus() def make_sure_is_visible(self, path, scroll_to): + """Make a widget of entity visible by it's path. + + Args: + path(str): Path to entity. + scroll_to(bool): Should be scrolled to entity. + + Returns: + bool: Entity with path was found. + """ raise NotImplementedError( "{} not implemented `make_sure_is_visible`".format( self.__class__.__name__ From 255de274056fb689e08a56da6f12df94643487e9 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Fri, 13 Aug 2021 12:18:37 +0200 Subject: [PATCH 058/120] Fix - ftrack family was added incorrectly in some cases --- .../modules/ftrack/plugins/publish/collect_ftrack_family.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openpype/modules/ftrack/plugins/publish/collect_ftrack_family.py b/openpype/modules/ftrack/plugins/publish/collect_ftrack_family.py index 8464a43ef7..cc2a5b7d37 100644 --- a/openpype/modules/ftrack/plugins/publish/collect_ftrack_family.py +++ b/openpype/modules/ftrack/plugins/publish/collect_ftrack_family.py @@ -63,8 +63,9 @@ class CollectFtrackFamily(pyblish.api.InstancePlugin): self.log.debug("Adding ftrack family for '{}'". format(instance.data.get("family"))) - if families and "ftrack" not in families: - instance.data["families"].append("ftrack") + if families: + if "ftrack" not in families: + instance.data["families"].append("ftrack") else: instance.data["families"] = ["ftrack"] else: From 4390c85e5accb38acc0a47ae7a06b87c96ffc2c8 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Fri, 13 Aug 2021 14:13:12 +0200 Subject: [PATCH 059/120] Fix - make AE workfile publish to Ftrack configurable By default workfile is sent to Ftrack, could be disabled by Settings --- .../hosts/aftereffects/plugins/publish/collect_workfile.py | 2 +- openpype/settings/defaults/project_settings/ftrack.json | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/openpype/hosts/aftereffects/plugins/publish/collect_workfile.py b/openpype/hosts/aftereffects/plugins/publish/collect_workfile.py index 2f8f9ae91b..c1c2be4855 100644 --- a/openpype/hosts/aftereffects/plugins/publish/collect_workfile.py +++ b/openpype/hosts/aftereffects/plugins/publish/collect_workfile.py @@ -47,7 +47,7 @@ class CollectWorkfile(pyblish.api.ContextPlugin): "subset": subset, "label": scene_file, "family": family, - "families": [family, "ftrack"], + "families": [family], "representations": list() }) diff --git a/openpype/settings/defaults/project_settings/ftrack.json b/openpype/settings/defaults/project_settings/ftrack.json index 9fa78ac588..692176a585 100644 --- a/openpype/settings/defaults/project_settings/ftrack.json +++ b/openpype/settings/defaults/project_settings/ftrack.json @@ -304,7 +304,8 @@ "aftereffects" ], "families": [ - "render" + "render", + "workfile" ], "tasks": [], "add_ftrack_family": true, From 8a62360491413b711d183e3bde3dcf2c5e2c1a35 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Fri, 13 Aug 2021 14:16:25 +0200 Subject: [PATCH 060/120] Revert "Fix - make AE workfile publish to Ftrack configurable" This reverts commit 4390c85e --- .../hosts/aftereffects/plugins/publish/collect_workfile.py | 2 +- openpype/settings/defaults/project_settings/ftrack.json | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/openpype/hosts/aftereffects/plugins/publish/collect_workfile.py b/openpype/hosts/aftereffects/plugins/publish/collect_workfile.py index c1c2be4855..2f8f9ae91b 100644 --- a/openpype/hosts/aftereffects/plugins/publish/collect_workfile.py +++ b/openpype/hosts/aftereffects/plugins/publish/collect_workfile.py @@ -47,7 +47,7 @@ class CollectWorkfile(pyblish.api.ContextPlugin): "subset": subset, "label": scene_file, "family": family, - "families": [family], + "families": [family, "ftrack"], "representations": list() }) diff --git a/openpype/settings/defaults/project_settings/ftrack.json b/openpype/settings/defaults/project_settings/ftrack.json index 692176a585..9fa78ac588 100644 --- a/openpype/settings/defaults/project_settings/ftrack.json +++ b/openpype/settings/defaults/project_settings/ftrack.json @@ -304,8 +304,7 @@ "aftereffects" ], "families": [ - "render", - "workfile" + "render" ], "tasks": [], "add_ftrack_family": true, From e04523beabe8fabb84ea60bcd67c7decf5a18578 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Fri, 13 Aug 2021 14:19:01 +0200 Subject: [PATCH 061/120] Fix - make AE workfile publish to Ftrack configurable By default workfile is sent to Ftrack, could be disabled by Settings --- .../hosts/aftereffects/plugins/publish/collect_workfile.py | 2 +- openpype/settings/defaults/project_settings/ftrack.json | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/openpype/hosts/aftereffects/plugins/publish/collect_workfile.py b/openpype/hosts/aftereffects/plugins/publish/collect_workfile.py index 2f8f9ae91b..c1c2be4855 100644 --- a/openpype/hosts/aftereffects/plugins/publish/collect_workfile.py +++ b/openpype/hosts/aftereffects/plugins/publish/collect_workfile.py @@ -47,7 +47,7 @@ class CollectWorkfile(pyblish.api.ContextPlugin): "subset": subset, "label": scene_file, "family": family, - "families": [family, "ftrack"], + "families": [family], "representations": list() }) diff --git a/openpype/settings/defaults/project_settings/ftrack.json b/openpype/settings/defaults/project_settings/ftrack.json index 9fa78ac588..692176a585 100644 --- a/openpype/settings/defaults/project_settings/ftrack.json +++ b/openpype/settings/defaults/project_settings/ftrack.json @@ -304,7 +304,8 @@ "aftereffects" ], "families": [ - "render" + "render", + "workfile" ], "tasks": [], "add_ftrack_family": true, From de1e3759a2803122e4270d36f86c56aa8898c636 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 13 Aug 2021 14:28:45 +0200 Subject: [PATCH 062/120] base of python interpreter as qt widget --- .../python_console_interpreter/__init__.py | 8 + .../python_console_interpreter/widgets.py | 321 ++++++++++++++++++ 2 files changed, 329 insertions(+) create mode 100644 openpype/tools/python_console_interpreter/__init__.py create mode 100644 openpype/tools/python_console_interpreter/widgets.py diff --git a/openpype/tools/python_console_interpreter/__init__.py b/openpype/tools/python_console_interpreter/__init__.py new file mode 100644 index 0000000000..92fd6f1df2 --- /dev/null +++ b/openpype/tools/python_console_interpreter/__init__.py @@ -0,0 +1,8 @@ +from .widgets import ( + PythonInterpreterWidget +) + + +__all__ = ( + "PythonInterpreterWidget", +) diff --git a/openpype/tools/python_console_interpreter/widgets.py b/openpype/tools/python_console_interpreter/widgets.py new file mode 100644 index 0000000000..651169864d --- /dev/null +++ b/openpype/tools/python_console_interpreter/widgets.py @@ -0,0 +1,321 @@ +import os +import sys +from code import InteractiveInterpreter + +from Qt import QtCore, QtWidgets, QtGui + + +class MultipleRedirection: + """ Dummy file which redirects stream to multiple file """ + + def __init__(self, *files): + """ The stream is redirect to the file list 'files' """ + + self.files = files + + def write(self, line): + """ Emulate write function """ + + for _file in self.files: + _file.write(line) + + +class StringObj: + def __init__(self, text=None): + if isinstance(text, StringObj): + text = str(text) + + self._text = text or "" + + def __str__(self): + return self._text + + def __len__(self): + return self.length() + + def length(self): + return len(self._text) + + def clear(self): + self._text = "" + + def insert(self, point, text): + if isinstance(text, StringObj): + text = str(text) + self._text = self._text[:point] + text + self._text[point:] + + def remove(self, point, count): + self._text = self._text[:point] + self._text[point + count:] + + def copy(self): + return StringObj(self._text) + + +class PythonInterpreterWidget(QtWidgets.QTextEdit): + def __init__(self, parent=None): + super(PythonInterpreterWidget, self).__init__(parent) + + self._indent = 4 + + self._interpreter = InteractiveInterpreter() + + # to exit the main interpreter by a Ctrl-D if PyCute has no parent + if parent is None: + self.eofKey = QtCore.Qt.Key_D + else: + self.eofKey = None + + # capture all interactive input/output + sys.stdout = MultipleRedirection(sys.stdout, self) + sys.stderr = MultipleRedirection(sys.stderr, self) + sys.stdin = MultipleRedirection(sys.stdin, self) + + # last line + last incomplete lines + self.line = StringObj() + self.lines = [] + # the cursor position in the last line + self.point = 0 + # flag: the interpreter needs more input to run the last lines. + self.more = False + # flag: readline() is being used for e.g. raw_input() and input() + self.reading = False + # history + self.history = [] + self.pointer = 0 + self.cursor_pos = 0 + + # user interface setup + self.setLineWrapMode(QtWidgets.QTextEdit.NoWrap) + + # interpreter prompt. + try: + sys.ps1 + except AttributeError: + sys.ps1 = ">>> " + try: + sys.ps2 + except AttributeError: + sys.ps2 = "... " + + # Font + # TODO use OpenPype font + self.setStyleSheet("font-family: \"Courier New\";") + + # interpreter banner + self.write("The shell running Python {} on {}.\n".format( + sys.version, sys.platform + )) + self.write(( + "Type \"copyright\", \"credits\" or \"license\"" + " for more information on Python.\n" + )) + self.write("\nWelcome to OpenPype!\n\n") + self.write(sys.ps1) + + @property + def interpreter(self): + """Interpreter object.""" + return self._interpreter + + def moveCursor(self, operation, mode=None): + if mode is None: + mode = QtGui.QTextCursor.MoveAnchor + cursor = self.textCursor() + cursor.movePosition(operation, mode) + self.setTextCursor(cursor) + + def flush(self): + """Simulate stdin, stdout, and stderr flush.""" + pass + + def isatty(self): + """Simulate stdin, stdout, and stderr isatty.""" + return 1 + + def readline(self): + """Simulate stdin, stdout, and stderr readline.""" + self.reading = True + self.__clearLine() + self.moveCursor(QtGui.QTextCursor.End) + while self.reading: + QtWidgets.QApplication.processOneEvent() + if self.line.length() == 0: + return "\n" + return str(self.line) + + def write(self, text): + """Simulate stdin, stdout, and stderr write.""" + cursor = self.textCursor() + + cursor.movePosition(QtGui.QTextCursor.End) + + # pos1 = cursor.position() + cursor.insertText(str(text)) + + self.cursor_pos = cursor.position() + self.setTextCursor(cursor) + self.ensureCursorVisible() + + # Set the format + # cursor.setPosition(pos1, QtGui.QTextCursor.KeepAnchor) + # char_format = cursor.charFormat() + # char_format.setForeground(QtGui.QBrush(QtGui.QColor(0, 0, 0))) + # cursor.setCharFormat(char_format) + + def writelines(self, text): + """ + Simulate stdin, stdout, and stderr. + """ + for line in text.split("\n"): + self.write(line) + + def fake_user_input(self, lines): + """Simulate a user input lines is a sequence of strings. + + Args: + lines(list, tuple): Lines to process. + """ + for line in lines: + self.line = StringObj(line.rstrip()) + self.write(self.line) + self.write("\n") + self.__run() + + def __run(self): + """ + Append the last line to the history list, let the interpreter execute + the last line(s), and clean up accounting for the interpreter results: + (1) the interpreter succeeds + (2) the interpreter fails, finds no errors and wants more line(s) + (3) the interpreter fails, finds errors and writes them to sys.stderr + """ + self.pointer = 0 + self.history.append(self.line.copy()) + try: + self.lines.append(str(self.line)) + except Exception as exc: + print(exc) + + source = "\n".join(self.lines) + self.more = self._interpreter.runsource(source) + if self.more: + self.write(sys.ps2) + else: + self.write(sys.ps1) + self.lines = [] + self.__clearLine() + + def __clearLine(self): + """Clear input line buffer.""" + self.line.clear() + self.point = 0 + + def __insertText(self, text): + """Insert text at the current cursor position.""" + + self.line.insert(self.point, text) + self.point += len(text) + + cursor = self.textCursor() + cursor.insertText(str(text)) + + def keyPressEvent(self, event): + """Handle user input a key at a time.""" + text = event.text() + key = event.key() + + if key == QtCore.Qt.Key_Backspace: + if self.point: + cursor = self.textCursor() + cursor.movePosition( + QtGui.QTextCursor.PreviousCharacter, + QtGui.QTextCursor.KeepAnchor + ) + cursor.removeSelectedText() + + self.point -= 1 + + self.line.remove(self.point, 1) + + elif key == QtCore.Qt.Key_Delete: + cursor = self.textCursor() + cursor.movePosition( + QtGui.QTextCursor.NextCharacter, + QtGui.QTextCursor.KeepAnchor + ) + cursor.removeSelectedText() + + self.line.remove(self.point, 1) + + elif key in (QtCore.Qt.Key_Return, QtCore.Qt.Key_Enter): + self.write("\n") + if self.reading: + self.reading = False + else: + self.__run() + + elif key == QtCore.Qt.Key_Tab: + self.__insertText(" " * self._indent) + + elif key == QtCore.Qt.Key_Left: + if self.point: + self.moveCursor(QtGui.QTextCursor.Left) + self.point -= 1 + elif key == QtCore.Qt.Key_Right: + if self.point < self.line.length(): + self.moveCursor(QtGui.QTextCursor.Right) + self.point += 1 + + elif key == QtCore.Qt.Key_Home: + cursor = self.textCursor() + cursor.setPosition(self.cursor_pos) + self.setTextCursor(cursor) + self.point = 0 + + elif key == QtCore.Qt.Key_End: + self.moveCursor(QtGui.QTextCursor.EndOfLine) + self.point = self.line.length() + + elif key == QtCore.Qt.Key_Up: + if self.history: + if self.pointer == 0: + self.pointer = len(self.history) + self.pointer -= 1 + self.__recall() + + elif key == QtCore.Qt.Key_Down: + if self.history: + self.pointer += 1 + if self.pointer == len(self.history): + self.pointer = 0 + self.__recall() + + elif text: + self.__insertText(text) + return + + else: + event.ignore() + + def __recall(self): + """Display the current item from the command history.""" + cursor = self.textCursor() + cursor.select(QtGui.QTextCursor.LineUnderCursor) + cursor.removeSelectedText() + + if self.more: + self.write(sys.ps2) + else: + self.write(sys.ps1) + + self.__clearLine() + self.__insertText(self.history[self.pointer]) + + def mousePressEvent(self, event): + """Keep the cursor after the last prompt.""" + if event.button() == QtCore.Qt.LeftButton: + self.moveCursor(QtGui.QTextCursor.End) + + def contentsContextMenuEvent(self, event): + """Suppress the right button context menu.""" + pass From cabc446102d8a06b6fa0d1e61fc59f62580965f4 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 13 Aug 2021 14:29:39 +0200 Subject: [PATCH 063/120] added action which shows the console widget --- openpype/modules/python_interpreter_action.py | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 openpype/modules/python_interpreter_action.py diff --git a/openpype/modules/python_interpreter_action.py b/openpype/modules/python_interpreter_action.py new file mode 100644 index 0000000000..5b779838c3 --- /dev/null +++ b/openpype/modules/python_interpreter_action.py @@ -0,0 +1,40 @@ +from . import PypeModule, ITrayAction + + +class PythonInterpreterAction(PypeModule, ITrayAction): + label = "Console" + name = "python_interpreter" + + def initialize(self, modules_settings): + self.enabled = True + self._interpreter_window = None + + def tray_init(self): + self.create_interpreter_window() + + def connect_with_modules(self, *args, **kwargs): + pass + + def create_interpreter_window(self): + """Initializa Settings Qt window.""" + if self._interpreter_window: + return + + from openpype.tools.python_console_interpreter import ( + PythonInterpreterWidget + ) + + self._interpreter_window = PythonInterpreterWidget() + + def on_action_trigger(self): + self.show_interpreter_window() + + def show_interpreter_window(self): + self.create_interpreter_window() + + if self._interpreter_window.isVisible(): + self._interpreter_window.activateWindow() + self._interpreter_window.raise_() + return + + self._interpreter_window.show() From b7d8520bff58def12579be3813de8a1e376ed87f Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 13 Aug 2021 14:49:42 +0200 Subject: [PATCH 064/120] skip visibility when done --- openpype/tools/settings/settings/categories.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openpype/tools/settings/settings/categories.py b/openpype/tools/settings/settings/categories.py index 6d8a5aa6b2..d1babd7fdb 100644 --- a/openpype/tools/settings/settings/categories.py +++ b/openpype/tools/settings/settings/categories.py @@ -254,7 +254,8 @@ class SettingsCategoryWidget(QtWidgets.QWidget): def _on_path_edit(self, path): for input_field in self.input_fields: - input_field.make_sure_is_visible(path, True) + if input_field.make_sure_is_visible(path, True): + break def scroll_to(self, widget): if widget: From 6f1636ec8cb947086be01b61a4a25348ab511a37 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 13 Aug 2021 14:49:56 +0200 Subject: [PATCH 065/120] add checbkox widget to direct children --- openpype/tools/settings/settings/item_widgets.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openpype/tools/settings/settings/item_widgets.py b/openpype/tools/settings/settings/item_widgets.py index fed924e0bf..7bf2ffa59b 100644 --- a/openpype/tools/settings/settings/item_widgets.py +++ b/openpype/tools/settings/settings/item_widgets.py @@ -180,6 +180,7 @@ class DictImmutableKeysWidget(BaseWidget): def add_widget_to_layout(self, widget, label=None): if self.checkbox_child and widget.entity is self.checkbox_child: self.body_widget.add_widget_before_label(widget) + self._direct_children_widgets.append(widget) return if not widget.entity: From 3537202caf37c58bde43f0a279f6d9d038f779be Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 13 Aug 2021 14:50:04 +0200 Subject: [PATCH 066/120] fixed return value --- openpype/tools/settings/settings/dict_mutable_widget.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/tools/settings/settings/dict_mutable_widget.py b/openpype/tools/settings/settings/dict_mutable_widget.py index 25908f5a60..14314b8ab3 100644 --- a/openpype/tools/settings/settings/dict_mutable_widget.py +++ b/openpype/tools/settings/settings/dict_mutable_widget.py @@ -849,7 +849,7 @@ class DictMutableKeysWidget(BaseWidget): def make_sure_is_visible(self, path, scroll_to): if not path: - return + return False entity_path = self.entity.path if entity_path == path: From f2d59de930ec9dd91bd46c695e371a240be7eff4 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 13 Aug 2021 14:50:13 +0200 Subject: [PATCH 067/120] handle checkbox widget properly --- .../tools/settings/settings/item_widgets.py | 21 ++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/openpype/tools/settings/settings/item_widgets.py b/openpype/tools/settings/settings/item_widgets.py index 7bf2ffa59b..d29fa6f42b 100644 --- a/openpype/tools/settings/settings/item_widgets.py +++ b/openpype/tools/settings/settings/item_widgets.py @@ -169,13 +169,24 @@ class DictImmutableKeysWidget(BaseWidget): if not path.startswith(entity_path): return False - if self.body_widget and not self.body_widget.is_expanded(): - self.body_widget.toggle_content(True) - + is_checkbox_child = False + changed = False for direct_child in self._direct_children_widgets: if direct_child.make_sure_is_visible(path, scroll_to): - return True - return False + changed = True + if direct_child.entity is self.checkbox_child: + is_checkbox_child = True + break + + # Change scroll to this widget + if is_checkbox_child: + self.scroll_to(self) + + elif self.body_widget and not self.body_widget.is_expanded(): + # Expand widget if is callapsible + self.body_widget.toggle_content(True) + + return changed def add_widget_to_layout(self, widget, label=None): if self.checkbox_child and widget.entity is self.checkbox_child: From 64a8bd457985ffd48f86b9962f8fa90dceea8f0a Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 13 Aug 2021 15:00:06 +0200 Subject: [PATCH 068/120] added python interpretter to modules init --- openpype/modules/__init__.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openpype/modules/__init__.py b/openpype/modules/__init__.py index d6fb9c0aef..4d98eac406 100644 --- a/openpype/modules/__init__.py +++ b/openpype/modules/__init__.py @@ -38,6 +38,7 @@ from .muster import MusterModule from .deadline import DeadlineModule from .project_manager_action import ProjectManagerAction from .standalonepublish_action import StandAlonePublishAction +from .python_interpreter_action import PythonInterpreterAction from .sync_server import SyncServerModule from .slack import SlackIntegrationModule @@ -77,6 +78,7 @@ __all__ = ( "DeadlineModule", "ProjectManagerAction", "StandAlonePublishAction", + "PythonInterpreterAction", "SyncServerModule", From 5dbc467885024431714bb6b02b55473064b89a75 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 13 Aug 2021 15:44:31 +0200 Subject: [PATCH 069/120] moved widget to module --- .../python_console_interpreter/window}/__init__.py | 0 .../python_console_interpreter/window}/widgets.py | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename openpype/{tools/python_console_interpreter => modules/python_console_interpreter/window}/__init__.py (100%) rename openpype/{tools/python_console_interpreter => modules/python_console_interpreter/window}/widgets.py (100%) diff --git a/openpype/tools/python_console_interpreter/__init__.py b/openpype/modules/python_console_interpreter/window/__init__.py similarity index 100% rename from openpype/tools/python_console_interpreter/__init__.py rename to openpype/modules/python_console_interpreter/window/__init__.py diff --git a/openpype/tools/python_console_interpreter/widgets.py b/openpype/modules/python_console_interpreter/window/widgets.py similarity index 100% rename from openpype/tools/python_console_interpreter/widgets.py rename to openpype/modules/python_console_interpreter/window/widgets.py From b4167862fe179e18a280c96f4e5bff43252ba6a7 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 13 Aug 2021 15:44:44 +0200 Subject: [PATCH 070/120] moved action to module --- openpype/modules/__init__.py | 2 +- openpype/modules/python_console_interpreter/__init__.py | 8 ++++++++ .../module.py} | 4 ++-- 3 files changed, 11 insertions(+), 3 deletions(-) create mode 100644 openpype/modules/python_console_interpreter/__init__.py rename openpype/modules/{python_interpreter_action.py => python_console_interpreter/module.py} (89%) diff --git a/openpype/modules/__init__.py b/openpype/modules/__init__.py index 4d98eac406..068aeb98af 100644 --- a/openpype/modules/__init__.py +++ b/openpype/modules/__init__.py @@ -38,7 +38,7 @@ from .muster import MusterModule from .deadline import DeadlineModule from .project_manager_action import ProjectManagerAction from .standalonepublish_action import StandAlonePublishAction -from .python_interpreter_action import PythonInterpreterAction +from .python_console_interpreter import PythonInterpreterAction from .sync_server import SyncServerModule from .slack import SlackIntegrationModule diff --git a/openpype/modules/python_console_interpreter/__init__.py b/openpype/modules/python_console_interpreter/__init__.py new file mode 100644 index 0000000000..5f54ac497b --- /dev/null +++ b/openpype/modules/python_console_interpreter/__init__.py @@ -0,0 +1,8 @@ +from .module import ( + PythonInterpreterAction +) + + +__all__ = ( + "PythonInterpreterAction", +) diff --git a/openpype/modules/python_interpreter_action.py b/openpype/modules/python_console_interpreter/module.py similarity index 89% rename from openpype/modules/python_interpreter_action.py rename to openpype/modules/python_console_interpreter/module.py index 5b779838c3..e589615960 100644 --- a/openpype/modules/python_interpreter_action.py +++ b/openpype/modules/python_console_interpreter/module.py @@ -1,4 +1,4 @@ -from . import PypeModule, ITrayAction +from .. import PypeModule, ITrayAction class PythonInterpreterAction(PypeModule, ITrayAction): @@ -20,7 +20,7 @@ class PythonInterpreterAction(PypeModule, ITrayAction): if self._interpreter_window: return - from openpype.tools.python_console_interpreter import ( + from openpype.modules.python_console_interpreter.window import ( PythonInterpreterWidget ) From 143c4c9038c4a1d859f3bf00c583df52b4bc2191 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 13 Aug 2021 15:44:53 +0200 Subject: [PATCH 071/120] added roboto font --- openpype/style/__init__.py | 1 + openpype/style/fonts/RobotoMono/LICENSE.txt | 202 ++++++++++++++++++ openpype/style/fonts/RobotoMono/README.txt | 77 +++++++ .../RobotoMono-Italic-VariableFont_wght.ttf | Bin 0 -> 195012 bytes .../RobotoMono-VariableFont_wght.ttf | Bin 0 -> 182172 bytes .../RobotoMono/static/RobotoMono-Bold.ttf | Bin 0 -> 87008 bytes .../static/RobotoMono-BoldItalic.ttf | Bin 0 -> 94148 bytes .../static/RobotoMono-ExtraLight.ttf | Bin 0 -> 87788 bytes .../static/RobotoMono-ExtraLightItalic.ttf | Bin 0 -> 93408 bytes .../RobotoMono/static/RobotoMono-Italic.ttf | Bin 0 -> 93904 bytes .../RobotoMono/static/RobotoMono-Light.ttf | Bin 0 -> 87592 bytes .../static/RobotoMono-LightItalic.ttf | Bin 0 -> 93760 bytes .../RobotoMono/static/RobotoMono-Medium.ttf | Bin 0 -> 86820 bytes .../static/RobotoMono-MediumItalic.ttf | Bin 0 -> 93948 bytes .../RobotoMono/static/RobotoMono-Regular.ttf | Bin 0 -> 86908 bytes .../RobotoMono/static/RobotoMono-SemiBold.ttf | Bin 0 -> 87076 bytes .../static/RobotoMono-SemiBoldItalic.ttf | Bin 0 -> 93940 bytes .../RobotoMono/static/RobotoMono-Thin.ttf | Bin 0 -> 87872 bytes .../static/RobotoMono-ThinItalic.ttf | Bin 0 -> 93056 bytes 19 files changed, 280 insertions(+) create mode 100644 openpype/style/fonts/RobotoMono/LICENSE.txt create mode 100644 openpype/style/fonts/RobotoMono/README.txt create mode 100644 openpype/style/fonts/RobotoMono/RobotoMono-Italic-VariableFont_wght.ttf create mode 100644 openpype/style/fonts/RobotoMono/RobotoMono-VariableFont_wght.ttf create mode 100644 openpype/style/fonts/RobotoMono/static/RobotoMono-Bold.ttf create mode 100644 openpype/style/fonts/RobotoMono/static/RobotoMono-BoldItalic.ttf create mode 100644 openpype/style/fonts/RobotoMono/static/RobotoMono-ExtraLight.ttf create mode 100644 openpype/style/fonts/RobotoMono/static/RobotoMono-ExtraLightItalic.ttf create mode 100644 openpype/style/fonts/RobotoMono/static/RobotoMono-Italic.ttf create mode 100644 openpype/style/fonts/RobotoMono/static/RobotoMono-Light.ttf create mode 100644 openpype/style/fonts/RobotoMono/static/RobotoMono-LightItalic.ttf create mode 100644 openpype/style/fonts/RobotoMono/static/RobotoMono-Medium.ttf create mode 100644 openpype/style/fonts/RobotoMono/static/RobotoMono-MediumItalic.ttf create mode 100644 openpype/style/fonts/RobotoMono/static/RobotoMono-Regular.ttf create mode 100644 openpype/style/fonts/RobotoMono/static/RobotoMono-SemiBold.ttf create mode 100644 openpype/style/fonts/RobotoMono/static/RobotoMono-SemiBoldItalic.ttf create mode 100644 openpype/style/fonts/RobotoMono/static/RobotoMono-Thin.ttf create mode 100644 openpype/style/fonts/RobotoMono/static/RobotoMono-ThinItalic.ttf diff --git a/openpype/style/__init__.py b/openpype/style/__init__.py index 89a210bee9..87547b1a90 100644 --- a/openpype/style/__init__.py +++ b/openpype/style/__init__.py @@ -65,6 +65,7 @@ def _load_font(): font_dirs = [] font_dirs.append(os.path.join(fonts_dirpath, "Montserrat")) font_dirs.append(os.path.join(fonts_dirpath, "Spartan")) + font_dirs.append(os.path.join(fonts_dirpath, "RobotoMono", "static")) loaded_fonts = [] for font_dir in font_dirs: diff --git a/openpype/style/fonts/RobotoMono/LICENSE.txt b/openpype/style/fonts/RobotoMono/LICENSE.txt new file mode 100644 index 0000000000..d645695673 --- /dev/null +++ b/openpype/style/fonts/RobotoMono/LICENSE.txt @@ -0,0 +1,202 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/openpype/style/fonts/RobotoMono/README.txt b/openpype/style/fonts/RobotoMono/README.txt new file mode 100644 index 0000000000..1bc1b1cfa2 --- /dev/null +++ b/openpype/style/fonts/RobotoMono/README.txt @@ -0,0 +1,77 @@ +Roboto Mono Variable Font +========================= + +This download contains Roboto Mono as both variable fonts and static fonts. + +Roboto Mono is a variable font with this axis: + wght + +This means all the styles are contained in these files: + RobotoMono-VariableFont_wght.ttf + RobotoMono-Italic-VariableFont_wght.ttf + +If your app fully supports variable fonts, you can now pick intermediate styles +that aren’t available as static fonts. Not all apps support variable fonts, and +in those cases you can use the static font files for Roboto Mono: + static/RobotoMono-Thin.ttf + static/RobotoMono-ExtraLight.ttf + static/RobotoMono-Light.ttf + static/RobotoMono-Regular.ttf + static/RobotoMono-Medium.ttf + static/RobotoMono-SemiBold.ttf + static/RobotoMono-Bold.ttf + static/RobotoMono-ThinItalic.ttf + static/RobotoMono-ExtraLightItalic.ttf + static/RobotoMono-LightItalic.ttf + static/RobotoMono-Italic.ttf + static/RobotoMono-MediumItalic.ttf + static/RobotoMono-SemiBoldItalic.ttf + static/RobotoMono-BoldItalic.ttf + +Get started +----------- + +1. Install the font files you want to use + +2. Use your app's font picker to view the font family and all the +available styles + +Learn more about variable fonts +------------------------------- + + https://developers.google.com/web/fundamentals/design-and-ux/typography/variable-fonts + https://variablefonts.typenetwork.com + https://medium.com/variable-fonts + +In desktop apps + + https://theblog.adobe.com/can-variable-fonts-illustrator-cc + https://helpx.adobe.com/nz/photoshop/using/fonts.html#variable_fonts + +Online + + https://developers.google.com/fonts/docs/getting_started + https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Fonts/Variable_Fonts_Guide + https://developer.microsoft.com/en-us/microsoft-edge/testdrive/demos/variable-fonts + +Installing fonts + + MacOS: https://support.apple.com/en-us/HT201749 + Linux: https://www.google.com/search?q=how+to+install+a+font+on+gnu%2Blinux + Windows: https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows + +Android Apps + + https://developers.google.com/fonts/docs/android + https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts + +License +------- +Please read the full license text (LICENSE.txt) to understand the permissions, +restrictions and requirements for usage, redistribution, and modification. + +You can use them freely in your products & projects - print or digital, +commercial or otherwise. + +This isn't legal advice, please consider consulting a lawyer and see the full +license for all details. diff --git a/openpype/style/fonts/RobotoMono/RobotoMono-Italic-VariableFont_wght.ttf b/openpype/style/fonts/RobotoMono/RobotoMono-Italic-VariableFont_wght.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d30055a9e8129a14109dccc385222c2ef159922c GIT binary patch literal 195012 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

*i*^joGZ@7Z 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 z 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%0AQgj4>w_BPDNFPUrVg=+r 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 Db)2zp literal 0 HcmV?d00001 diff --git a/openpype/style/fonts/RobotoMono/RobotoMono-VariableFont_wght.ttf b/openpype/style/fonts/RobotoMono/RobotoMono-VariableFont_wght.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d2b47461965de05ab8e66da60df65e3f2796cd59 GIT binary patch literal 182172 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

41`eR`3l$Vv=zMNJq(73Y|ij<8OWC=ZbCZutR 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 MmDnSJgEZ}b0mzqS2><{9 literal 0 HcmV?d00001 diff --git a/openpype/style/fonts/RobotoMono/static/RobotoMono-BoldItalic.ttf b/openpype/style/fonts/RobotoMono/static/RobotoMono-BoldItalic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4bfe29ae89075e46bc813f4530cb3d6a9c5a5ae8 GIT binary patch literal 94148 zcmd44cYGYxwE#SK%FeE|+TMGwT1ng0rB!d1EEieTmTbwEd!g81Of$Wg7-M6=fGG|b z3>ZRj=nxVh1wwc!R0EHWDG5zG`p%tMtz{s2?|r}Tk1tuH7i97GPM?|1b13@?sZ`d@kVN!I-x$wLT+Oq^X zeK$eS)yzToUO*5TwUcrqr#h`xQz9!e{_eYM5(O_bCpdMfbP7H`zt88#UuM30)r?N3*XdZ12!H%)HT=l`c56uW%4gqtOzfF|KL`1ocpq{*yUPW zoov!*6iCciL^`E1>T>p1RCnpLa-^WjQ|a3_3}2tgtnm5bQfmRDQZ~e67Y(d?s2IL*?|nb_2)Yix7l8NPhW8}1-c!>kkiEH?ydyZ(IEB?QyC$#&|U|9(3?v}BNDydTFSo63`|TAhZZSjH;St5q?V zYhg0kssj)zV5(B-n^q59S6{!}>x;p5id4$Rcsnh+D=A5nWFKCO99I9ZfVDB; zNWdHahdP|)zL?}TO>&=4A;mg$**fN6_D*skpkQCn&g4p>EdSLiH21-K9{=$7SMcolNLcavGgWIS82Y-e(G8n~4#m!_KQB)iTB1gG< zvQzD=YA!_9)8u-_NBUnCb-HYX=-_lMiB1^z7{~oPfdLq$0MWunK=;px9lcIO zFL4%#RqCdA;==x+-F0>29&c3YED$M`^|9#ri-z}rJn{QtA2?Z^QWbN$`cmNlD3k2L^?l&IQGhepof;Qj8}BVTV=gV?3b< z(#DHXCPLzRzBO^Jt2`)RaM_H!G))g>YUy;V{JOEOvFaL-o;5$hia-S@7yqX zM|E`rg@CTVME4L@}4ZfiZQ6!UfzM0Z>JjlENCmuDI_g+eieB;x6vZ`qo? zE&EXaw10s=)M2$cNz!Apb_N1-UDM&w(vk%Zy9Z<4wJ;JHfc5JD>jwbq8o~|hS38r` zamp4DpFR%rZgS{O_9t=&l9nmm#4=IjJ($I z`LO($QKc-Cdms?MPM{I^o2p`C9?zoU>S3$RMsiNT z`AbA1zExt5$!J8VfXY-?-?41TujkBJE)q3XR_^Q$E^s>BXnR?+POn8yyJNTttvgUt zlOf5{^5l+{LsyrV_nM_nqoFlk)@sn}5pr0q^P*_^zDkhEWGs=`GdXf)DmBL_^O(#X zSRR}QlFJPkXED8jR0R~%-v@uVIDqbc6{%mPUwH4mACfd!iNxaR59ueNr4?E_j}xXK zM`nvt`bqBStzwVOK3H2`QzS#o&D>|VN`2Ajjq5f)-qO;q1OZc-m<$G^6jc!ljfJV_ zrYe^|)Z8+kq&l0M9@~iLbvw*U3!{laPC2nW^;1r?4(UN`{*GH?Vuv}4%^nAM}HDI*bS7^3t5V*+;J8enY9r>!+4xKSLi=&%%h`=43j^ z;|YW}0D)#h8>n{kRDqYgb?R4Ey1;#eHsAN&51;%Bv;av|0)?9CxnP&}VBDmE+10b@ z&O4hTS-&eMiD%3@Os;8>&hPSpY!;{&{*LPfQAQp{MMx`=bV@4H<<~Cky|t-nP=w^H zRj04<_-nNqrKo66&9c6c~rBXrDsvOi23LI*ZmMZ}lcB3)lcDDizjRK!V>0Y85DB|B)d8~f+j?ZkZ zPOsy4H@B5)Pf}$vFcd}6BC}rV(^=Xg;d-rBMNKowMDm)E6CQ7!J1PTKma690mYmYD zXn%84Kf{TFR$KdTkxpgm47l4Jwz6emLzzlv07+>wwFc10uJUv(Np-i)d*LK|#rjzH z_K3rW$YeZz^)MNz*XnezOG7}VkMg@zPZ0BeGQ&7>QpX#rj6jPZE%9fzd;xVfPKlVJ zq8OmCEk5YCCJnN$Pyu&zQWem<=a+P!nMm|ltRBRWtjpmTZL-HTT6*@mT^AItDXa;=y^ERb(h8AZyPFS^?UlGeXd8#9e&-!QE*2vbxY;ab%(m$OfUM#pznXDH-% zItLObuY9bdy`Lh3UR!TT%N>Kkb%&c<=22&nPK%|h*jU`>a)J4Ri2Wdq2vI4P*kevG zmS<2L)9KR~`TRUtFUTA(QtU#fc)4vw1!0?iWnI~l(op@GnKchIw+yQaxv#xQL#=%Y z)kHf?E(a{zO}?>mn&r1uS!b#G6m=GkmM zBqBlnImeqUWm=u5Xr4N#H`jZD6>7DHrb*JKtv;QnhcbjzYFWTgUp`=WfQgc+ylvqC zN!3(W-Mx<1qm>4~40I`Qa9~Yc-9^YTykME{Dp1cGOnHa zJM^gMtug5FxP25%V)b$TZwnyF4%TU~&X0RK-JZxmWb!~JGhg=WuLm;qBO`SUc&Mo> zf(?3$1tC`au2_s>iTIwC^n9eq^pXo&8hc=9z#-UwG&pyTKT!cHN%HTgnmdTz=kDP4 z5AGC@SB`$oHIi%4@43T^sIl(}R1ZBsH`I5~18CM`*g(qysOm8HT!1&3y z*>~PyY@mtXf)P)mdx!*X563E=UE{zjIuIVSe`@%jz&|_-@l@;vEsM_i;P5w>vWkL2 zt4gP5XoR+Zex+D0mYS7XJ;RXOzd5Zy;#PO0nwA9^wMcJ=LL@2B$mMRu)OY0PRhKt-N)XD#4Zb3cc2UC&g*C!lfx=GsPvpg>SqD;_ zuPrf|YhCe-N-1I1A^CcV&h6g1xNd!^qr#;6nj#H>BDoxlMT=!lX?7*Kd;WDbH60{! zIkYMJwFoGo7yL;Lpp)!G#n15fjNHqK6#Z;To^!_V$np)5V!2+O@)uv(f68y#+lOQn z{#_l2oxku@{Ck?`*JaJ+Eh+=WkYcaXwX7-Au27PsL)&plO?0k5TuxGpy1HK2r0cxA zF1E-Mjv=al&YYLd*H(hyt|qBiFnwxDTd}z;S_7P1R=OT+hUtHBqjVDR_477Engzn* zrF2d>&9)hYng7IQh>&126oJjKt|K)T0-HhkEjNYaW2%teyP#yw8Hsq0)#Bm4CmE$& zUg|J6hn(d)m8D>=(yz7DdwofjR!>qCY1DzuP_-%;C?%1}EcfZwpznQf5c0^hAaWuB zEOO58*Lr)rp*Ew|fRIul^O?|ddaq0gGT5XuwEJAm*e)7|HLe92%&+k$G8n8;_s>gQ z*sY&ex)US|N;ewtuWO4g@`H)D3@H%(WeBVu&!W;fXT%fptX3~5T}CCBh0WHE5|Fc6 zw{)J;r!!}~!E&Wa1;z(y*H(d?T@88{A)T(sqva^(Z|hAVxgPXx$m;{Wd&!{I*W>dx z7>!ntt5Rve!bNpnnF?0uFk!=}1yeot=UxUYGysPRW^Fp{#_|+v6ubtt&qqB~wX(Ey zo`=;=9Y*qvrW#LpyfQVJ=!j3ybFFabDK0+mhv&$PgLPVy3Di7TyG3&7y92DsE}#&w zsdMK(!B+HYbUb$O5VPnUb3YGB@e)GEGT^fn1OgV4!aKRY$!Rv~bamQ;?G~$x-NrX+t=E=iJ?2I3@J;nFJNi`eZ`6*c6*E6n=u&72+2BYYWK`*-ci$c5=FI?moBY! zw1>1Ixk`gdePuoF#wPHplD=P7MqH>v3sZ^Ew z(a`pAI0#D08n|p?&N{Cns1SoJP!-C&u=f41_61C1?qui24n|?>v#lHK;3U82z9>2B zIod0+2Ls!OdJeWrDmGP?R>>7C(}gbZa9fy0?wgl5P2bh2R2?EsfhVOZ5;@G~wlI46 zCA^0l!MZ(zt|Tmi^~7TLRbH*&qfG8BiT00OU#6gNgD&DPmT0U#ylW zeC};pa=dF7U6~b|f^tkI;JKL}BDZJHTzE@!9T*{q*a6gXKV8M2Ai>pC6wfw;bR;Ml6>=3FLbOX}QnQVea?j zhp0FEZT9zQjJuJvkf4PKf@@D%W>4!$Wo121@?-9|+$!`4dFB+lSQAmJP2j6RuSkke*ymkdLBE~_bCCB~(r3Xq z$DcdzB@bDqIy_`5yTD5Q!~G`t%X{C+E`IP$91}SWc5WDA3SQ6wb6|EeW(?3hP(1&E zo#dGXs7K(J6fiv2p9q*I&9f=|Eg1f31n&`E)E-FGax|OCVn@A-q3R{eo zWEc&#TwGVTHVDTt((TZt?7c5<;P#b`MpDa*dzVwB-{W0X->{RCkd@)^(lGZvBlG?t zzOF=JlWO!o93jg?!O;*hYYghgK>WJl$fv-V`w)VQ`>*o53MMmg9h*;g`id1iPw)mfU6mF9d}F@(1%#+H=gVsl&(56o$g}A@kH|4 zk(Ez$c8!VQ2<~&(2P(ofYE==#COzJH?(CQLH<2s7xv^nq-;!PFR5b}M>AHifQF74f z^dQn{Hn#>6qs5VK7bkxn=9Biks563yA)fhTTlf7oM6*Qw7_96{CR=|7C!6N6~TyfZzG(}x~ zBllibsU#T@CmGQ zAm??k3v3(eozc-m9V=~jhI>QBV) z*u3u1mX<{lu{{{PXgt*I4z@XzVPj-dYxIPADR)babYA=?Pw*Mxdt4roW;yfVDC#FE;zxc*>Jbsb+;-eKYhm8*e#GiVzlbITJ}h3)TYy zfo0_e(*ww{a`G&_locygbtR>z_ja6HQL)(N4vWOjaQM>k&>Xj|(xj_!`4^X$u0hgN zgAxwLjLT;0tFVI74R=9E}JY4rx8*stixrtYU6}GrPe_79KA_iO`Xf! ziY0soOL&kH^jQY(a_f^z;EC$QTSD2t1O1^I@;d4*<}tz#?b6;E{f5__Q;7lyEJR`5 zEW=XQSh$1d1QvQcWh7PX_b)H6TOSH1ndcaYXa&t)AIn(Ony`xdosqomMsmnf=kpGv zY6oprFpPa3&+>X?2r3k+u+Lbk)%xT=TmkdwAuppoW)AaQ4`b)Jnx99`Oa=!pKFH3@ z15CVG{GRiQ`j3}h)OE6;*~@5VR?BdMtCAoA+xJoLLlis?Tufx*AfEDU zDo~<+7H_h7$2VSfT=x@~cU;&Ka(X{Y0SU^*4u@l`wqji*QY*ewq*H*jvUm$5B1(Kg z)z)~tks@IW=Es^hfQR~k##M-_2>=}Jj~#G$trgQ<=tweF%K2e>2>I{xdTiqeF)EBZ#VBb)t?tWV*YLT43Z}KG`$J;S7_c-|Zfbmyi4W zrObVdN+$Cf)K*pmoM=+2d`j*^-M`37&d8ob9wnciyxPa9vWm;edBzH-Yi_i>7w5$w zm(wv^iQpJ12el<3ya&*X{(An&3d+RqQiZ@huo>5v_B|;=ElNP#+I^Je7 zhzIsJHuZ@pr^mgrIn?0*oEG>SzR;(05 zq#tjGUH?=e*eMJci6&LtG5q`SYbq-`NYdvGfu;`!Lz_DbK#j=2fvr<0y^2#PZ@Bp4 zWeppH!BPNeeXCb{(71nG*b=F#w$&qbGAoRT&Z?nm0CDAlNi)o4htD$uI zW2OjBiEg4&*g3F%u?6h&&EOBbsX3{}qmkE^fHOGy=h02MM6@}`?Q2IiANO_!&Gm81 z8qR2#drl(KYIcSSJ6KvKO9TV!+8WPp_@^Z#ldG5lhG`R9&E~$0F06Y@AN~OC{VO{8 zuZ$9fyv_yD>PtGfvf9%sDwcY@#Rw^wS4o8od{M!%5c+d!Z8)4nh$4UZ7@yokKrh(O z)J1F}&IdltZ9Fz#V9LS=?{%90j+G017syG-7Dy)GxSOXaSe%FjV&f@|!fpAFo_`xZ zz<>CUfD3q>Hzra-E1m$+3vDMx9C589AhC*QsYp@aJatKWEG#t?s)9Pt{E(;BX)Mte zt37J)3q)dtSX{E`3VQ)lSQrFjywcxd*ZS2;zsBD5wt04N)SRkrzq5Cb?F`un^@WrF0Jpc#I96%JZ9^Pj8CrBbtT zssgpGP^Cc9q5`Y>L9v3N85FR?cnXKY^V`fsSt+F1_yGHg0*eBip>lb4@&&n9qYkKj z2@;vLx`fG8D*v4(ZZ;=08aT&UwAv(q-jXOo1`~iFr9oQ2Dkb`;st>4*g%i&&n2$jF z;CvZCaN3X2jKfT<-V1;8IM3mKwl0Mo05pSTpGP_T6l^4YZa?U1wk-5;_20_3cdT{P zm|usWpvy^GsvPzP*T%=&+WIAu%BspcCiDp4?KoQP zXmvTOG?ZMVkri5~&7+Tu44t+i)vo)C%%#0*XUD`4rno^6Q+z~8S@vdeH z;=gu<-(aW`YwCmcR$txu4SY-<_6K6}8jZ|vAS2%nfU7;oJD25uL`70r*oL09gk|7Z zfBNn3&7k<1=DqMi2-TtP=!ZPsZMTCIVlbxKW@C$+X@PVH4KgS#p#nne__SWKhQu>~=+ zxtI|}A|+>auRqk#Fi-vv9Sw~Jg9(bXXmv?bYA{?poG$J4LSC4sGl2ky=I)#lpQfh1M&FY)r)r3m$x|r z2?oJQv`Z(x3a`;@1?sDSl?yt2YnIn^|`Fw5mBM&h7|`JGMyAzTI`z_ z%k1b0u6eAjb>Y+i3re*ehgOOvS{hr(wxK^zDXr%V^pZH$kAK;i$GKZ0j1!k=R^$BX1Q zM0i4mGtF|52oBp64RIdG6gD>ma##3yn%KD*e1DLlJ4`8iFW1tuNRHBw?DGN9$j4QZ+EsV*M0G> zq$UQGklIuyJO*Sn_HA0QmL>FM_Q5B&%I(1feWc6 z5(W=S5s6s3EE>IP@%Vv;h6PgFPX7&hMph&X+B*X@@@F>{$0TI?>mLWYAWIygD+Xhu z9}VwJVJB;CMdi)QK6?E&TeZm?l#*}1Lq(R?Va$V9oT&$CjD7crjY7s6WNY*P$KUW- z!kKm>TEsou<-UY_^E>WqE1CmGANV_lR56sXa*u)EtKRwvI?5d6(R z8`*C?S#%ruJDf4bwbQRbR!1p}l6C_Y;G;i2rGpRQ;C;oS11m!vZUlMGPdc726qmSM zi(>AKJyJFrUw&_6)1o5D9><;wL?)fSA>wYcdP|m+ExWEf-6*{Pl0JIk9R`CQRQ78M zBP97GQ#Y>Yd1>mrfZ!`qDgU8XBUD#We*Fk_>h$#VuVJ4cyIthN8HEH38E;o{eSjMp z;19$8VOaoZ_@B4X4Y6y1HfOdmOD!r*8ANFOA|cNV@Xh3sRka$P$zVD3uT1+(o+%liEiU)E zt`Dc4o~&AUc3D}2zGadr&}n-!o-V6W=~0=DG)@C*!>NWsagplOEhkr8*go%Su9~sx^^E~Y(ec%re6a!v zO^a-LW3|se6f17Em_yP+rfbD{r_^88+jepDraha(V5*n;PdIm5)6Rv>7c@>>x4g6r zh!FibyucS|)f+$;K~Q~8siVbJ+~*54>P-+hwHS;|emAIE5{*uOPQgtAu<7v)0EjI@ zwhAl(5@OORoD&250ckO?9P*Jv+($c>8MWF9r?XP0H5l+WSEUw$30dm?sX5%aPVf$D z5r(^5<=}xvMy;+2#z=GLP+jyq7()(Y0H>=V*G44L@_9GtlLwFQT907ve>n*M^m5Y9|tUf;mXWq0(T9!w{1M&DN zU1OJ*mX<=Aa4df91PWyIdO)vAscndqEb#g==FZ(*KTLU1YeOFiZgi4Zz@0=rN~gj4 zu7Q=qnrD45nsZ`j_64MwmEk2)uo0=0pT`!N{Y)e;DhgPWYa@{wkvNe^T;0Fq_WJr> z3HJqS)_~l0MdgY@hAnkEyWC|}kaBrHYN@JjMJ=^;8S+fzsWh4*hVW1#d1}YVrDbK{ z%ZkNgJC-6>rOpfll>irWtElq;?gz+I zR3-SMmUIx)(}WJ<7MGy`4CkJQ-|$}hG=2~L4t^o@1?in=JWT6&@Jen)LQCayr+xh86kIe&Dk_OC!kwNtHsP^2yVNbzt@AN{nQO0@geTn46zt$vw!MB-(UawSBxWu zRMCCpSNIvoewHo?O#Q`As@{GZuwF?H&E>=!It&h5_IjB)!Yz)NH_I0wNDi0ZGFKM^7C{})?5E(Q?x}-jm)vxL-Z~8+`H(S zwq9?4EVdTjGEnbQ*NP1MTeE40I?eJotD-dqZ`o}jX3bp(`j5SZqTHi6-YF%NDJlC)aRmwkRi*<1YQp4goIPx zF9w6+kAPN?7-$Yv$Veom!N4gC>MJ2e3ce_rgi>Xai5)A#qc>$5R=}-7vP-}4@v)_k zFI;$8*^cP;&dytUdv`Y&Py5%#jn8*q7d~g+{Kv*8_zaUMJ^QFt|)Yt1^%ty~2OZhdrIcWGxK5bm`-L3okAG z1q|G^ueWy>9(dEH=eu{+f3f2NR0_2E1$Qs?wrDqCAJaH;f}KD;?&9WfPow)?w|>Vw z{o1$s*F;shmha?RLaL1$(r?KU*KOb3=0b;1jcE64-#z;p3rPkDdAMDW>0XZ`&Y3jU z1gV+xHO&2ZG~z|^hMq2G%2T3ntgJxH!X*l&R@W9i?HZ+)1y^NPy?Wx>WGW-os;)Xi zQ{8LO%UP|&Xmg*cpQl`K zucK;T=dPNzWiUtLN$wZatDa2LU#8TG40=Q73pa`8*4N)Qc+2UhlFy5_oxE@E z%?%BG^!2pQU9vr~ul9s8Ppu(-=k{AlR+p640`ArkXHsWSH}Ww&JVvt-o*5_8EI7*X!H|^zq^91Ta)D7G=ZXBJjfpzv1SJB<{ zgS@N-I|8hF-liu%ZsNFRZci~9Z$)GqT2@RIql>tcIe2dm2k%`$4p39aWEl15z|`RY zFW*R_4Q%3ShK4?|2Y3@NU>a6^{5@kFG@r%^0XbE@I2i#?7 z(+5*SAS7XgO~fDQjr65>X7lw(orWZFM6v2km!i?H?)w*7b}6?P|9kp9sGNI#7pg{8 zcXQ99@?G3BSXwV5E}+-Ze}Zpv-bR9v(TpAg(+DgKL8rlYx+O4W4WI}5YN`kNt26U2 z@2{>NSX2wzrRK;HG+oox+fX})TrhP_Z6|!|CKqBEv=rIsHPpS(zrYzR!Wy6{Ftsv3 zb>Y9sm)?Ds>*eMBFmVpO96Sb)uK_%S4@=LVuL9iArKl?KZ0+WC*;ipE zmvRpT{!+DN6|x<9@!f&u8{U2KNMF-#7--h$I>b13H*0$L8b_1!hX%hqE7#TF0Bp3ga1^l8$vADpdvW5&=O~U$T zcu{MRh$R+<++0vtgpAM-DCGiT2i-|8#2In(k=pA|d)4Ry${OK_=zKB~ni?k=?h3>l z)>t1w8V(}M;IF!nw$dH=jm;>HC`QjRoz$KFsaGSUA=H_D;zG3H9kiayKBd$j2E2C@ zZu&g>6KIcpWe^5Lu-{(1<>(*65Pp6jl*D;oVbz;A!X~bTUm+UfwRir*De-Rp->J zc5-D2IvL$_CpQJFnm4_jzfBJINHc;kNI&J_zMFb|n<(<#D_HKHHNBlWkv}y6SH>y$ z{WZrN{O%PI2suRjm3WUjLjN9HEE6~~xQGviy(fgOVBAx|Y8wP=9!GHJ5G$}&%xB|b z+M1DzK5Q=QF<^$?a;ixnN%f3N=705$aGeWBD$iwUo5QiBrhauW5Mx=|Vs|X5&8&eG zn!8vE9Qi(o-iXBv5>s+%5%`SkVhQsV%h;UItbR>^f5(d7fgi#6U1CaBROB-m?GpZ- zBB|78HaH{_5qC2A$1}5K^qpPR6JBo^!EF@pWbK^l1}9K$jD6=WiEr{f}{r4;}FN3C>vllq#I1uuJG?QJxkKS-DgR!A=l1BXB!YXgZCN)S4w1wt+ zcip7d7a`?jK|z7tpfka#6hcyv7vV7KjM&@D-HsnQ@{c6=krqE1ga;C5{y`x;(ChgQ z_ERv9X+cE|Y*Ga7g28MSRo52E`Msw%SXiItg4_;#VX+vgZ`^H8vbrHgriO;x8y%(9n3- zvXM(7CBELmL}kT+_1#z2*R2ltV`5fqFu?8V(>r>uti$237oYem9J!~lv4DlerE*2O7R(l4lw!Ur^UVlNn0?;wD_yq+E zG1i9jSj&A!jVE@jU1Ck?v=$O9Y1`cJbK@J*wsAuU!uSlNP^rRNQrB{RP0ggwAAy_k zc*S*BbWT3oJqHjF^!ZoS*I(YX`0g1z-Li1x?#4#IS#PHP7S9y2NUa)m!WC`N>$DIl z*^b5@LWnIWa9a${LTMoa4SSTjihdVpT8gVyWMFM>$Yg?l)M>1z#DmR06UIvi-uq$2Xum>20uP zaJys>ZzOyD3@qHsk_Ft;w;=kehhIfkJGgUJ{>91dUre3OJ$5#l;4V28wGI8(jp!b( z>yGEJbpodZ`XKaU=I{0as)W20>=Wky@aH*>YUnV}a{pqR)t~`9j z{a10ecP75E{r$2-msd<29!I;m#R7sGy_0)me-6gI0rJ8K^5Poiw~%3& zBp|rM({w7Wcj6=7?|(3(}EaP4rzY65o2>-S5k2NdXv_;gUW#q()xWSqWl7sSFzmpNKBki|02- z%_N=jFK3Gwu?Vd>@Fz&eF6;el^s@`P&aFeq_Ub*G&Uuoi|Mtu9yg;DGZ?-iBVkdt@ zuFcr1&E_&S%iXDWQroH^e%0%XH(Q%k9+fEtcnwZ}1DU-0z;kgS>`;pI zie!{TEHd;_>R56`@eZV022rq!sDZ+WLqks?m59s?K=Ln9rL6s?Dxp zR7J9Y*;wZn6|tul>WYdiiXsgoXK9k9YOg@1ew>t7lP=%c*Z1(?f?GSg&MGZ~Y+slE zB7ASE#P6T1tURT%`Kp%YttAmif(^P_{=Qn%8VoLQxk8YMDJ`_fNJYSlkk{!PjK|j| zg3F_xjKKnz1m$vvstnSs&0V*_)j1j8O-9bR<_&s1-{JA@xFRsPh{_zzNfT z;}Z0Jkd3*4_yyiE*pK5r$8F5k(Xe5!GuCK1%KT!*p(^dw8 z35J#`3$1EjgV7PB*@jAEg(I-2SeLe1A>Ulhh?8D#pFcX!YI9IfAgCjgxp(5Uf6WcV z8CtHB7!~engC~-`UmMhV2EewFFnXojtCQ-b+KA3K2uYz5NbxQ5>WfV1Nd1bS+O04K zm2z`op-HQ)kC)V{)nIs;O~$S=v}$iEnIa(>Pg5H%-p~>q4jM~z+L+ZlQoiK8GOb&# zamZLjVWCB>j@l#DN|g-h^!oPXy6fW!P^ImC;SDXRiHO>#R2Q3kOHmf$hNh^s zRHL#2@6xOca`CkKri7(Tqq0dExCR8<3({>lb1wl&4`Xq)SI8X}c0f<=d}WIJ14PT) zhYBRIRO+UQ408}Q)YKkaH*rUGO%sK%o%I@d4=n=uh)B$EeqZ%>^A>B#q zQ|iF)zqGu2b1+yUx=Un+!>-d%s?+(E_IkH#PH_)BC?&s8St|_&J7js-6&kM`C%V@r z66dyPEtPt`O)dqnHL6l+Q6`zZ0Q{VM^|%A99U_^K@ItU?i1;lU$idHM8}jfa#5{Ck z4t@^Xo`(+;kD-wq{8F|o4<92c^YChLBh2(aIQ*uT4 zd2qgYvmnRPfL}4Zl2Zb zh530dB_`27bMW`XeKT-!HBo`~=HS<`%Vywcg!mI$3~f?=kWg>6cQ5P@35VD_&Bi!W9RGPaGC|HL*nlp9(jv3Ql@Ylw%b5|h8V|N~ERP+j-SRovcn2OamKqmI{GXBC_)s*A_3STfXxRt*h)ec_gt3u@+H8Bb?Ols*5@ zA+%#w!MTNdYic`5bQ91cM1P>(9IJyFgB8Nl;~&x7JiHET*Tn^uspQrDSPJ=oQ*dRzAdDoO+9)BJ=*J9_(-k<+ z`?$J&WX4Zd8QSn55;Gl@CJNPNY=|3A|dUs;gNz+QpG2AWzz zEJruM9%A^lJl6>DVd7<;YvyrUT!}E>ev-JEdkk|8@UR^)t_J%b;~WxioH!8&`^e!> zJPiR6C%rhteG%d|g}Bc{rM9vMggSpn{@@d~?3dgoC%TM&>NEJ?oj-hti~iC2JGotl zG3A4IoPLaBd%SD z=@I)4*#Ah4eoT!}18SzSA$svY5hJ_)xVne`i5hWD#Qf~B92RCdLfnhxFs_xzJkQnu z9K0kL%Md2%1-OPQ#I+3p4)y`SCy903A%MebsP9-3;6(!Vr?;VM0S;%aduQNa)4w;p z3&S}Vu5dU5hkiD5FU<5a3qDGOv#$fz!hlU&0StQ202Q%t4GV}!olc`KmvNtLJj-+T zBvePtuA2L)hdLE*EN}6?;LYB01ijdVd&M;K5KkNMji-$Vc-j!)T`&s)J`Q_|X+X}I zalOAhe3CecdnVrx#+J~2g!na&EnF4xMm7O(u$K7#A4L%37pf()i}LU#L=(c;;;SgK zi}Ubd;vm|Thd1ZpV?^;RcsdUsoc<-+2$o16?9yE3EvP;OqAr6KlVAztBx%kN=A|mg z)|{z5>$pSZ8s?5kKUWbJlp4JTvXXW2F0;uldW4Y{7CMc(guV3S_WyTv8W*N!)oJX# zxl_{wcNOcAwbo)OkvUR2hwuN3qKyJJnNfB$kF{mQL$k2S=HZKpI9dcZL++lwiJoFU zBTC?O4QUL3&ji>_ezlwZ2_kVqkDiLd!6N5g{+TR&AydkG9EuTObKJ>_#ZKcRPc6|W zt*-9kV_2kVtL^nCx5c*i&6K;$>W@{oG{6bLSinK`Fa*a)5FEz}VQSDt)#q@Jh?A@6E1?=_c>@ zcVK%Bmv!u*le6OlNqAiONw`}nl%I4K z7hkrtNF!oIKRWo3NLEm2Q$QuLNM+H_t#a&OQ&WF|%BPh(l|M4`z<;B#NKM0awYwJO zcl5mc%9av~(U*BRmP!I9Mu^{_A%LF&v}opalp#kkH}X14fa8;-03RlP!RsgiUY3WC z5sF!GY>x=-2d6LN?U6^I|2n>Z$VlcX@@c+*0gn3@;KLv#u?`gAxPJjYMkHpzasL8* zaQZ&nzfil9r+CP&uQ+Ea&F4wqB5*M=Q@FTg0`4Z82`TL=7Y|f zpE;7}jvJDa|7$_c*kI661ta&-KXYXHzgFwi zXyieY#mutyB=!=9ZARjZh`e+zu?|=po z&N=K)%mrcJXSN>79HBHXo^pPJ*>W0O*^I%l&%hlueeC$KSQj-r+k-PTEyc$wU&aRf zwiHypdj0sLv3K)Okt`1#{jzwb2j=Y@6m#(yzeD^i z_;ZHP$6~m<3Dx!Cc0>Sjh`_J-68sV5<2`$7AsGqY~s`D0B; zf={*7*n2tm#_`oh@5z-OwRT0|nk_w3el+BFElxG;>J2V~MDszpZ=~W!>d_k2s2xSx zg-`=-c4bo7Q@&m(FWX%_T`l<@%XR^ZWxD_!p1^!7Ko8}hEZGeesCL0lmx8@HA2<=b zp?N+8U&AaeJ63B`kjH9@b$n;$zA#?r*z*c(wIN}FFfg6wh&_=qC=0| z>M5Dt3kM*GvK(J_6K()Bg^(3<3D6%s#NGijbi-<}e_{tZ3~)H1K{fYhL_V~ZhYt~V zPjfl=3g-PBT!faS8*|W=%%}O*!^ACc+eheS6Z7YM>oI!{3a9Dk^3cKS@l5cDr!qV9 z(8a$026~(1`k^xDdw{7rz}5f41A))k|L&$lzJ@5$|3|+B>flR^!i|b@hqDsyBMRRt z;6{Z|ZuCF9Dxef8T)0qcph&c)+?D&P(U#Awax1Xx3|>cw2f+t5O~irsZ)e^FINb8* z_u=j7uK@1mq_~zS?2nI!PZ9&%137H{g`EI6&=7CGe98NXz~jIaiWrdn{s#a~tcCN< zr?@@m#uY{L?I(%-+=~E*_Vh9lG1DH65?^Hh3KY5=;1>ghDg~_LQekk~0Ni@hj2dl( zN~Epa!yeSyJ5!HzIr4kBzYd6qBi!Ugf4GP%e&-!>?zTT{gAEs`Y?#+};CaDT(iW`i z95BXGUe^iG@lP<%IN)pr^+92#7>a#1C-P@2+`5_9uL698IFrDV7uWY($@d-N+Yb@v z@|u*d`^m2u!+}y|m`?>L=2HPWd@3FjLpyjIOn{DkGXrhlZ7`wd!RZshiX@2^X#F~U zJyASUX+LjD9g}%^%jq~bN6v%c=T&YlX(p#t;i%0Nxedu3;|s5;jrTi)i2|}PnADX! zBO4oMDvqj5v2K&j#5~9-kLF5@mSr>+xtIjI&AF^OT&+=S8JeQ~=7_wa5&k<70q1Zs zv#VFT`sofwN@I1PTm{nZUu5)cWr4AB(pH`QAXjq~`D~@9F3eRUCHb=6o_0*NfFC9# zlH{<)qGiO{ydJ}N6Z~re-WGE>FSlj-1bT>m9AsSz-_x4OAcQLk$6*DK0NMOAxXWb| z;z%}v|JYArrt~?+6{rZfhBid91qwyEf5+|P-i6T|N?3_P9{23JZ9FiNJgyF_&a2>V z6|*FII)^BgU54g~7z)a<5-wyCx8w zL6L|d3yg82CW!IEuax;KaBVqHV?#sg95v13DOI4G5y;`flnSX~^kqDyMugUjF&FSq zo(lx%_{*5~76BJP9S6WTh5{E%KgDwaU+a_aqeSRq1oy#1`91{b_@8he9pGJnx}ea9 z09|hTCf^owfB+qyX9j-12`nI7M>CMqNZ5~yeG9^sRKX%lVKXqV^3!Rm!SQDkUpliy zsI6&w%<+U#sIM953x|3=$4YE!N%Nr_UP2Nmv3bLx-F;W%8k>k=S(D~inawj{c00g! z9S}VV@~HF^L4G|++yZdE_9pW@%o=VK@bYduFE<7F$2mA~xwI|c8pk1VYY`gWBFaNy zw{p<2e;$LrkneeLdK1Le5Lka7F_+VOF#aK;3@gWW7JT5pmBfGHnHW+v@{S5X5|1JB zo`0Tu)30O?vj(-Y#Abvlpt`sfQY4R60mTIZpf19)hUkFb-((}R=HER+!sQ&e$bV^8 zY%75*p;=Wy%QyT#ti1=EBvsWmKDVkm=bUry>D<%PlXK3SbDYhYUD##GQAv`Q9CRh4 z0+L~sAW;w%1e9Q6QBg^XugFZ-{GVIhGdsJ0-~0W4AN0=7R(Dt3d+s^so_oS`^3Vr9 zU{BbsmbNhEJIq=X6@4}{=5gr4BXhZ7W`-*#(a)^vIGheCZYjJIn90`-Ul@C3j$eIt zWbd+3Oj8r0MjfFevyth7!BfV|Q_=ex%@))#9vz^qoCX0nDs?3^6t4LQEhhXtk=TUx@me{#mbrME2=I8y2ex)7ggXHpdip)=Qz64 z?t&D)Dx$nmzPfw^rCj+c<&E;yHSZm{N_m4`rS|*kD(W8+kWPg=*HpL>nfo)>>AlO> zmsedPtV{Xx^zQV!n52;h8RrDU^ zPk%mhb+rvBaEzC`hkYCwZOHR(hh51&ekT8?*SUL$h5rD#5-;H0!_)8P33JyU-y`*+ z=lBnZ1>Ev6_YV7C4w4YHMMAsLkjDf{f1fD=)9O`&$Lw=)EcOqZYghFGss`ONfE zM>s#`bb3X9b(lgFjm@dkxvB%fB}o@>%aq#kzk>nz4$1K%B{UYTkA)45x{L;UslhH% z-f|1xyOBGE%ZR>Pt`-!eH9+^7FtisPOIc94%rjz}(U9}{Q)-ohJVjEm*m0fRCuh=) zqVF=E9Lh9_$)L+PN%yu8#j^~DLpu?pWk$GX+1;W)3K_YxY8RQ210NS_l6yYZWwki~P&AN; zQqUx~!#NbA&`Ub4N)^x>!)moosZfS6vOM=bcL$;p<(e7PB%vyZuov)$-y@4kr+@Yi ziHSbq|4sJ+A_FbSMX;pyiar*&EfSGf@}Yu+d2jFU$<*DX?IY2yQyJ?Q6Bf3LOdjB` zDE$JNEr{@SPgnL}qLT+!wY02W+1j!E{r29`&bIz}xT}-TG3P^z!!NRay0)yWy(I!s ziu5OChzJvSDWOXPuZI)a^@fC59GM@B_BkD1U@ICl)eaH4h+)MNr`--{Fgdve4I~sn zWS?XLjb@!y3>o+*FjMxUiWvU5?nwC|U#UKs{ny6l`+O)K_$uYdwwa27;G+CjDLo)i-!n%UH)l&j?A#rElw#eta?53s#;uv2~_NWBMM5}GwXYd1bx zzKe#}OV5~8{kOxhtS^;HIazTAm<1? zMmtvsQalUthB`20aa#L_#ZvgW$Fo7Zw}ca`jS-Njx?j2W~HXvyY* z@zIu>^*fcZ2zHL!fx3a1&zf0Ih9XsoVhm71B1HWoc`g!O-(*c%($Ue_?n6C2OSRl^ z!x}$*qD1rtGN?#LYwH741Jctfdp%Z->NA|lXVYTZJ4Mcj68QmX)a@Khh6aPdZwDxa{}^I7NoMj>;I(Lh@04e)9LXwTBrqL#ev)7 zYq3~dTREjvVp1!#A~DM_Dw)(Mw;2xm3VMSPC1-VhZxQ|wD*zEZ3Ny-5WD==Kt~5&} zGFKHTt>zx%FGY27tmF@Z4y8YHk4{}Dww2$_6aI%U-2;pi8~<&f zH%v`_&V4ZT8qVSpvSLzAxxMr>_t8{`_#B~Hv2x(4=po50H7zMU{hG|vU@W~0v0~DORn>#%9vl$JH-JfQ$ z@E1SHzxy$hzl{I$6Wn3+ANn8q2YcCfxqsko}WjAHVkPQer`&ICoyLZVqFdhlXzWZLUPdA0l0RQ)4&7^f%V`1G1p5 zfdUsa)Z^#i)D)8f7Qh;IAt$a{2QUUA_yuUDx=cmwLduBK$WZ%=7;bdqZyc-S4FTPuoLc7q}C&3xU3H z@6hZNYy`}m>xt!I{%@r*66R_qUZ#|z^ituI*9qEILigQ$&~2phrzXPQA1(PJ%(7MCWp~o@^y0Y>+}KK%M&&DB=&X= zz-{HKOPXsXfm*;{>_Wo-omm&1%-YBpPT{mU?M2M%dh-6^i%QRy9y|DZI>JFb=TG>y z3;rC6c!jSE+NiRGxKU-prz>1RgJFf`4wXMwhQMU^$M}z;yB_QAUZ9W#lgUfhMu;x5 z<5A(?{zUSU(zz19%Q?4pcd|yMVwgP=AW)Ch>`vwZ0L=aMxo4Ei`ud*Ox$>T#p4FNs zexzL7+w=I2mG|}ajhFsjyEYbW(v}|9HiSb9nrl`@BJ~=kPuCKO!sSV5#7;Db8NmNa zSA&ji)~OQQU!DNo5(dnQZstF}Ig^#iIq@p~qg6^rb^P+JokZ8U=f1Yq5$$UJ!_`uU z)jGg5vBytdZ0Jc;uSzh*(oe@9=^q%^@VAjA>SevXkMBg<(NAmE#jD%E5ubyKS3oWX zFb1{^JcXxzy<`BU$3O>KL#aDW;aX^P;Y9_AiV`zFL0*jUpN*WJNw)wkTW&CR=kn*y zUwlnl+s1Gtrx2?=adVxYFU81 z4|AE*1_$m~njg5bt81SC^qY!T@9XZlZZyC3r^}LyW9(s~H4bGn+Y2=-yfxvaiNsuw z+mCW2uWxR=dXA^I<&usCm%x&k3rnH_G1FqzBFs7<`9J6YVQxpl7vLs}l=&sF%OiWC zu#jBCQ)Bw1-9MTbJ}s9;PLiL(11glMP-t^c{hGKvV^*cyuAY#$!NDku3Znsvj3uRe z84i##A&0#?X-^wiBW(ZRfR_>rZNEKxe}Y z>`N5E*g^%Z4rrFjUjg=#ShXUhNNJHjY6{GWM*18ygIunV+V!Q6G*+1a9%!|-`h0EB ztbgNoplBE)eEkS#-u-t_Ylo!5y&NvDzvHS+}>G%UZ zy(`uKL)43{SzB~b60nhNBT`Ohw)E#S^Ss`ONYYR&Uh|_?_wGyw8XAiw=|FI4-rejp z$Mxq*q8|5XCemQgYdDb`t-3_dGA#{_-yQ#AHF-s2mua+wX=!Y@Z3FU(l6_Wtdo;SL ze#Ir(Oik%3@-xDOJ)W^dem?3Tq;iQx%SsYsZd%Rt9N#UU zHOn)f*;51p&XO!j%CZE}bFyHQ;S!~~;TXZHNEIbLRM{d%qtVxe6m!qZ*R;tQd9J?x zp56Oj8Xj7sW)vyFAgwfJjS8Iz73Gq!!`|p@IFuMA05+23YMox~#S6zqv?gf`yzzBi>YDaG=xOlDV+yy~88i!%NEXFZoU zw=9%NLea8(^6m7A zK0Q>Gt8l~={*W1g|*A`*c=@Uu)_?6|GdWwVt5 z3)K;vvt1@LXbPdk{?P>&)zvR?*#fdQsaUINNF??Ro%m22x^)^H|FW`j^h#0L$C|1O zYLyh=!>l!^=M+*oFfZF;NN3O*#GtdDk&`R?E^V(_?nfg}CK0PXzO(M+R(@;eIgL#l z!l(*n7Y_kpF0=X8Z(Fk#TiS@$YK+fr$~&A5j&HwtrlaTxb(o>{Q4a^sMUS5|LHFNG z{gr)w)@ckA73LbjEXy4}0CN~6hGD%g5;=WI*St{_@Ma*wO?q3~)kM-=i`DME9|;b?U> zO}xtFui|?fHbtUoA`-nrkU|Rdhk7%+r?560N@3RL@Ox3u`YdqKVfD?p9O=Re^RKM1 z@Oy;^%a<%=d+N*LMfHn7E=;9Z`4B}@;dXTNTsF{pc1!E7cy$fOIDo_%8#pIl(;-%# zxG}er!%L`yX^LiEv(mx)N;AYXs1PC`aQG< z-1^$4IZj7FWl?w?_L2Izo7^rl`4c)X7jc9>1 z#h|ZkOS%+3?(dD_J)ABi?qwypo2>|M&!(D5!$JI$0 zT1+i(kE7cR%2qi>WbQhzr3KafX@(u^>w9|Vq?b|KqFTVy(!%sj%}wVlGS%%)rs^4m zLKSy^QL`tLh6g3!boPcq{bgM|kIP|39cA7J^HexXn2F>om`T`}Df7&p5419<5N0mk z|Ki}_3Kb_$6$;;DA6Ql zeUrO!ZyGZMexPk6N7h_lTiZyjlv?P_N6=l)iTEtms!}XDJ-b>u`pNY-ri^Sn7969aA-NYDD`yzXuG*#Yu4B5;U6;99hXd^Jy3HpxjAJTxG7_U7o;td z5&TYDaDHzCKhu5}bT9leFC%l9v&1InM#=nPnKcwTWqI2P_44pgJeI;X!VR9<@@q&7?LpPTH3{f%vu<5c1xzG@uExT$V?F6IlXv+~))~`< znp=0wzo@=$r8ksTXysAfBi75pLGS9$Vw+YA+|-8Bo%;{9wDe%tf`!%6^X&zv6Y7TigG-ZGnMOo?@8J4yCK-kWK=({xHI9|03Zs?Z6XaMJm$@uKq4KxN z#!-2|_(?8ATFTr2;p4TqF^T=J6lT13(QBLPFI zPx^6J=RA#$asQ7_VvvPg?)eRHQr~TA4LXW0U%QKZ%p23o6ZuuubN1Qz80NHjZ1iXQ z_J6*Q?Em-vrd^rL2-uAvr{n|f5{wQOYr7BKnE?qgTc^$bU05{=(Hb$+&y`;S(+Ep8 zeU!)bBNv75kPrCJdRObjXh`93yH@w6hCH4cvmAROI%w>U#~RSxL?V&u%_S$%qQRg@ zt5o{YunxTnV9ztP{ClXgoobL)ybiv3sgk<;QG1f*saSHHXS3CVlK4P|+{5hyhs@9g$!V0Gel7;|T6h zYJ`;y3hrJV8j!>kB9+9f3Z1-Y$>p`R9msk~q|+BJ(My4VK2nqKGnqA_I6oOvqzi?c z)@^?jP5QK2PZJ+xS#+|EyHrLvA<&$c$;IllS_RYnSFu9$Y1?+3u}$^84BJ#&d&PXq z@`LRiE3NAiivt0GJH^q$JWXhukhOQWwGAOY zHq`q4FhWVy%kb%J6}?0=EZSK~p*#n=7s7(dmpMf^Qwobt1$D+3&z|?HeN3K0$BRZc z@}QMgmD+~(%A)TqCAzs}FDxcQOITr1q`hr{j;+?QJ=49kw;z5{zM0S6^#IY zlc+g{{{S8h*f}^;Sb_XR80Z)`|DKx)k5R3Oq2UH?dM+mF;R0qv*yCP&f!X%g{WY7i z*#&@lMehT^1V>^$HuQI5{9ezZd~R3WalhZqH>s00d){QS2VKrCuQ#vw`Omd=K7Xgf z;b9q<*_5|hBJvYI*v=gH2fA(-Ont=t2rI1hW^oshInjIn$c z6qHDqx($mW{9hScZF$fVUuCzbsG(zzLtGpGsUqPItZdG88cjxq(wsaUbFEgKAaraK`fBW6cx7|*cra3Hc0^52Ho%@=dhh^;_9jZH zSS>Xc!#am&bbm70W|pYMGOc*$S+D=6Wm^)72o9e}VhIFKUM{t3BGob(!MWIM>B?wP zSaZ3(KVn9oY_}RMV31f`?h^mu8~pA!Xn=sfhHOG~Hpjg}cNjC!4Q|KC z%l%>yADB(QNW{Pj)T>BnAi|vgpO9LTXEYLDN=;b0pui!t3=@)cO1P>yQh5FLG^=Pk_~%wSP+} zz!pLqSk5vS4}0ymHoso#x=3l(Xk%{Ag8EF&pIRAX%gDl8f55+7=(pQK{B=wp_e$w| zbtg49@6FdNbdu5|K#aSNdz$Q;G;>|o&z*xVyi*rq5Aoxvh}zP)076^>OcRKOz&*uj zVoE+@8Ygr4xBeVE?$aF!6aT>){u~nfNA0#xwlG7b2bj;9M@mgk2#Jsd#`{i`^uV zHpZ(r=2Jl2_7eVMw!gjY`)k&{Fn{4*smL2NH->6fg+m#U6pdi-S-I-R!^0b;L@&z* z0t=GWV=kv#EXf2zD{Foj{+T0d(tDT=`)F<5T)Q2Z?l^q+XUL|T3WXv=5;cW8PVCy3 zcBXaK7Bm2A-g0d&OHttSH8*S`sUC<2z|$?3o=n{s{q{SANTp&ur2q>#cmUL;c?X2D zAOT_7>r21Bng6IntW5M~VkklKce0lOt>MziUHB}SdIsNm2ES20I7%}~pqVORYMiEV zJMNjuN53Hgn4!m}bm@>U9&ik-xTvP4-)8eER}=s1#2~u2Bo435*Q|>eJW3T13jfet zK#P^(Zx1kL8X23KK-Mjd454zZ9iS7~)hY4mI!UO^3Mvq>yDjna_`@Ved)s@5)4^VU zys)`AdUkE?;vn-B{}OW_q;6{B&u#9k9=Wyf9KEA50(~qR+0l+9WFm2q=%MwYdUI#T^!}#cFj8cP+Y*y@ws%8-4HU7hs z^BZbv8)1Kl2KbK#mEmmW#%=lW%qD>b%M}{9!qC?vNuJ{yH~yftt&eEcC8URtsXsvm zC?*d^h9^)}L5CI~AMyVxae)&5uQ$$lgD<`Djp;})_sRqk_3%BkrKR7~l)ndI5xzI` zUH0?&j4!>n|Elw&?XrktFEyF0Jbq-TRw~7^$zXyM5dEjm6qV7O2aUZ_;)$ z=y8x8b9#XkiJ0cp@333^6HnH{lS=h8U5(k#K4yy(;eB$(Mv#Owj~{Go?3Icg!O%&I zN0UCc2(36cy-r^j4>Nx(fwkF{%v|gholT9mtR6kk(9p}i!LVtMr^Dma6^3(Q20RA_l8k-x4y%!CS2Az3Jp`By%(a2itA|GIO7sGB#R?VYp zI)m;Wt_)ftq52($0p?KN%4WP}7}@NZ2}XALkPl;TX4~UhdL@ih8uI(s_4Mtmu5LD& z9a7_hou5tqbIW|SgcFNl8L#RdI6j#`e+<_hLoCckgGQV3+MGy@VWnh<5sO4RjXLgj zdZiM=;L;>{w79h4d6XPTw+w#Kb*hZPy=`+>``MD%VcD%|TloX2NT7AC3n;JN$dV*~WUDCN?4Wwi4&86%=auXJDG(6`qn< zzQR2wXkiLkPZy^=$cpQad1~#gz0RIwVrTE1ON+&BK>TF9zJCAsjV&$9(IQrf^E!$< zYVJDW_^12&mMR%pD3!kYzQzHgLC!Jakk`Aitz|%Okct>_7_DGgo*6`^zF4%V)Up~_a=)Y2BnE(+ zloLnnj%F8e1@&34XE>D_MD$Iejk{cf+4{vkZ@Ix;>3l-aV>#vtq*ZDZdy?32bSY7Y3rFW3ybO

8H^QD9=0*hH)U-KYUYGJwz2G~l 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 literal 0 HcmV?d00001 diff --git a/openpype/style/fonts/RobotoMono/static/RobotoMono-ExtraLight.ttf b/openpype/style/fonts/RobotoMono/static/RobotoMono-ExtraLight.ttf new file mode 100644 index 0000000000000000000000000000000000000000..d5358845531f601bdf67156a2271a656bb2fa408 GIT binary patch literal 87788 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�?D37n?91#G?aGd zI)+$v<6t{b7EoxRY(cQ#At5225(|)!P#363AQlKw7A%ku{{XQchaK$;$qrU#_y0cmrM;u6JW6SHQ|;1p=x(Aa5&)V&@; zhwLyE%kI>Bt$OErtIlhOXPRp~+ikVmtwz7q$Pe1_zDLd((A4SU^>)8-qS?I$GH|8c zvr+r#Dpl#io?P6Mi+g20I$qh!?bY`?y?(c|zuUAmWxdYI9v_dg$H$}W@$vAM%lY_Y z5i$YtmX~s*2{twz_IIt3jl*GU<*IgT)wYAMcCnhcj3&);YtK~&@rHHDSFBk`sEhSy z{YG;Kr&PCIE=+-u*w}b6JOnlujsWD=Q|s1KO0FMXw?4XVBhfjxnc8DBwa4b6J#w4L zqPfk{{kBtkY^V0vKD5W&_UO7x$+dZrJst=NptbX2f1L1>6~z?y)1<|~XR7e3~%YNHIkic{%B!wezBmnn?D^i%Z%>VSN}T zTfdlMmNqb-rkC7{9FwzYhN;=aoNP=vIZEEiHEGtV*N>YU9PNL*6pGHS&;brIwMgayzn6Yv;vNHIba{j1g8FUKnAvT9&%+#T1XV z*$t=a5TFfzc^yvg2Qgb-+ZvM zow|5tGbRi+J|FXqfhIOGWeAfskddQ8n7oY61P~_U&8JS+_xJ1LXAj0V4)EoHVN9Ig z?Mz$%H4)5&zuSTa zYX11%!9)YdX`>2JZatf}Tf-9%s%IU4)N(%lI zL^%deCFd#VWrTvhf=In}oTqi3f<{lluBTvEZ!lL@a9GxUWd)TCkVnraK`$awnc=V(QUge{ z$O{=xLK>nM4QQ0YT&Hl>9PDs-O((HsZJH4=G_Y+e1 zHR0EUPnw5$;n##;6FzAl=7nDqeogoTe<%IJb;7R+pZ?~B^fyT1lP01s`+ed2!Y6IS zyzKXd?+f1-zAyWI+3yRV{_KVHXGqyke@0*S)1T27KK&Ve*-yHPzVPYa=nJ2IjlS^d z*XYZB(p)bj&4rZx^mFuOKm8ni*-t-5U-r|_(U<-7bM$3D{TzMSPe1oU`Z=WRr(dHl zdn4gRvX_32d9$}%8hnnd8E(m~ncXEvKZexvLO(>G&x50%l^p#H(r_RRr{sA5AoZM5 z4?ItrU(@w#>eH{VUe7Q6ujE#Rx2k=X?R=r*~dziCPjEs-n&HVN++135~=2!nYBYXcfH<5vT z8F|v%$gRGFjOlxpVSNQz(+`kmeII$#7m;iI7+KRe-}(tMuOA_YdJ`GcPc4V~8ZxMH z2KEc&Vn0VN^)uyC?;x8R=Tg5yHuVkUX73_9`xdgaUn8^nCi1G^AhY@{a;o1Uw|Wbi z)pw9rjkC6IBe(iJva3HJ*Ln{*T;^DRMwa!zYk645|69Ww<2O*(u!z4E+}AVs<4|dH z4!w6#yRwXmhc8jvatC!Q8>nvi5%o7ep<1?KH4<&qNBoWoraw??^Bihz{zOg7U#S1Q zg$mFkncHL2s7ZMp^(c#|&3F*CB_E=$#G%F&)g!26eR%97{!g}3sQkExx{q_HK-n7G zMxDt;RF3|FO#1VgUy)0H0hJi=*VxCP-!c35q0IO*_(CamzE;29Ms*Bo{4qCyfpJvF Ryb2N5OvmdosFK0Ie*@7}kFNj# literal 0 HcmV?d00001 diff --git a/openpype/style/fonts/RobotoMono/static/RobotoMono-Light.ttf b/openpype/style/fonts/RobotoMono/static/RobotoMono-Light.ttf new file mode 100644 index 0000000000000000000000000000000000000000..276af4c55a60d3327513b6bdd08b54400d149d29 GIT binary patch literal 87592 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

eNPK7RZkaz3zjf1&A1zt3 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

09kRVf9S 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

;k(N+E3~9 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 literal 0 HcmV?d00001 diff --git a/openpype/style/fonts/RobotoMono/static/RobotoMono-Thin.ttf b/openpype/style/fonts/RobotoMono/static/RobotoMono-Thin.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ee8a3fd41a9d3daea9cf8358289e4ec10d482c5c GIT binary patch literal 87872 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ⅆ_9 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 Date: Fri, 13 Aug 2021 15:45:05 +0200 Subject: [PATCH 072/120] use roboto font in python interpreter --- openpype/style/style.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/openpype/style/style.css b/openpype/style/style.css index b955bdc2a6..d2d7a300c1 100644 --- a/openpype/style/style.css +++ b/openpype/style/style.css @@ -623,3 +623,8 @@ QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { border: 1px solid {color:border}; border-radius: 0.1em; } + +/* Python console interpreter */ +#PythonInterpreterWidget { + font-family: "Roboto Mono"; +} From e97a332fd3cb57865b7b585205496f7a2a790b63 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 13 Aug 2021 15:45:34 +0200 Subject: [PATCH 073/120] use openpype stylesheets --- .../modules/python_console_interpreter/window/widgets.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/openpype/modules/python_console_interpreter/window/widgets.py b/openpype/modules/python_console_interpreter/window/widgets.py index 651169864d..8c45d8d3ab 100644 --- a/openpype/modules/python_console_interpreter/window/widgets.py +++ b/openpype/modules/python_console_interpreter/window/widgets.py @@ -4,6 +4,8 @@ from code import InteractiveInterpreter from Qt import QtCore, QtWidgets, QtGui +from openpype.style import load_stylesheet + class MultipleRedirection: """ Dummy file which redirects stream to multiple file """ @@ -55,6 +57,7 @@ class PythonInterpreterWidget(QtWidgets.QTextEdit): def __init__(self, parent=None): super(PythonInterpreterWidget, self).__init__(parent) + self.setObjectName("PythonInterpreterWidget") self._indent = 4 self._interpreter = InteractiveInterpreter() @@ -87,6 +90,8 @@ class PythonInterpreterWidget(QtWidgets.QTextEdit): # user interface setup self.setLineWrapMode(QtWidgets.QTextEdit.NoWrap) + self.setStyleSheet(load_stylesheet()) + # interpreter prompt. try: sys.ps1 @@ -97,10 +102,6 @@ class PythonInterpreterWidget(QtWidgets.QTextEdit): except AttributeError: sys.ps2 = "... " - # Font - # TODO use OpenPype font - self.setStyleSheet("font-family: \"Courier New\";") - # interpreter banner self.write("The shell running Python {} on {}.\n".format( sys.version, sys.platform From eb8a430a5b075cf848d838663b8da56f0d8e111c Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 13 Aug 2021 15:45:43 +0200 Subject: [PATCH 074/120] text has bool --- openpype/modules/python_console_interpreter/window/widgets.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openpype/modules/python_console_interpreter/window/widgets.py b/openpype/modules/python_console_interpreter/window/widgets.py index 8c45d8d3ab..fec86a1052 100644 --- a/openpype/modules/python_console_interpreter/window/widgets.py +++ b/openpype/modules/python_console_interpreter/window/widgets.py @@ -35,6 +35,9 @@ class StringObj: def __len__(self): return self.length() + def __bool__(self): + return bool(self._text) + def length(self): return len(self._text) From 0199ee1fb3428090c8f27506f8b5e696a991eb10 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 13 Aug 2021 15:48:38 +0200 Subject: [PATCH 075/120] skip stdin --- openpype/modules/python_console_interpreter/window/widgets.py | 1 - 1 file changed, 1 deletion(-) diff --git a/openpype/modules/python_console_interpreter/window/widgets.py b/openpype/modules/python_console_interpreter/window/widgets.py index fec86a1052..94dccf019f 100644 --- a/openpype/modules/python_console_interpreter/window/widgets.py +++ b/openpype/modules/python_console_interpreter/window/widgets.py @@ -74,7 +74,6 @@ class PythonInterpreterWidget(QtWidgets.QTextEdit): # capture all interactive input/output sys.stdout = MultipleRedirection(sys.stdout, self) sys.stderr = MultipleRedirection(sys.stderr, self) - sys.stdin = MultipleRedirection(sys.stdin, self) # last line + last incomplete lines self.line = StringObj() From 82c7a596ed6b6ce25016541fc088243b2a9d0ebe Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Fri, 13 Aug 2021 15:48:49 +0200 Subject: [PATCH 076/120] try better stdout --- .../python_console_interpreter/window/widgets.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/openpype/modules/python_console_interpreter/window/widgets.py b/openpype/modules/python_console_interpreter/window/widgets.py index 94dccf019f..20be862d70 100644 --- a/openpype/modules/python_console_interpreter/window/widgets.py +++ b/openpype/modules/python_console_interpreter/window/widgets.py @@ -72,8 +72,18 @@ class PythonInterpreterWidget(QtWidgets.QTextEdit): self.eofKey = None # capture all interactive input/output - sys.stdout = MultipleRedirection(sys.stdout, self) - sys.stderr = MultipleRedirection(sys.stderr, self) + stdout = [] + stderr = [] + if sys.stdout is not None: + stdout.append(sys.stdout) + if sys.stderr is not None: + stderr.append(sys.stderr) + + stdout.append(self) + stderr.append(self) + + sys.stdout = MultipleRedirection(*stdout) + sys.stderr = MultipleRedirection(*stderr) # last line + last incomplete lines self.line = StringObj() From d34d139224589d56683463be38c041fccd3454cd Mon Sep 17 00:00:00 2001 From: OpenPype Date: Sat, 14 Aug 2021 03:39:56 +0000 Subject: [PATCH 077/120] [Automated] Bump version --- CHANGELOG.md | 46 ++++++++++++++++----------------------------- openpype/version.py | 2 +- 2 files changed, 17 insertions(+), 31 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0f2cb2b1ab..5f25a1b63d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,16 @@ # Changelog -## [3.3.0-nightly.9](https://github.com/pypeclub/OpenPype/tree/HEAD) +## [3.3.0-nightly.10](https://github.com/pypeclub/OpenPype/tree/HEAD) [Full Changelog](https://github.com/pypeclub/OpenPype/compare/3.2.0...HEAD) **πŸš€ Enhancements** +- Global: Updated logos and Default settings [\#1927](https://github.com/pypeclub/OpenPype/pull/1927) +- Check for missing ✨ Python when using `pyenv` [\#1925](https://github.com/pypeclub/OpenPype/pull/1925) +- Maya: Scene patching 🩹on submission to Deadline [\#1923](https://github.com/pypeclub/OpenPype/pull/1923) +- Settings: Default values for enum [\#1920](https://github.com/pypeclub/OpenPype/pull/1920) +- Settings UI: Modifiable dict view enhance [\#1919](https://github.com/pypeclub/OpenPype/pull/1919) - submodules: avalon-core update [\#1911](https://github.com/pypeclub/OpenPype/pull/1911) - Feature AE local render [\#1901](https://github.com/pypeclub/OpenPype/pull/1901) - Ftrack: Where I run action enhancement [\#1900](https://github.com/pypeclub/OpenPype/pull/1900) @@ -22,21 +27,20 @@ - Workfile tool start at host launch support [\#1865](https://github.com/pypeclub/OpenPype/pull/1865) - Anatomy schema validation [\#1864](https://github.com/pypeclub/OpenPype/pull/1864) - Ftrack prepare project structure [\#1861](https://github.com/pypeclub/OpenPype/pull/1861) +- Maya: support for configurable `dirmap` πŸ—ΊοΈ [\#1859](https://github.com/pypeclub/OpenPype/pull/1859) - Independent general environments [\#1853](https://github.com/pypeclub/OpenPype/pull/1853) - TVPaint Start Frame [\#1844](https://github.com/pypeclub/OpenPype/pull/1844) -- Ftrack push attributes action adds traceback to job [\#1843](https://github.com/pypeclub/OpenPype/pull/1843) -- Prepare project action enhance [\#1838](https://github.com/pypeclub/OpenPype/pull/1838) - Standalone Publish of textures family [\#1834](https://github.com/pypeclub/OpenPype/pull/1834) -- nuke: settings create missing default subsets [\#1829](https://github.com/pypeclub/OpenPype/pull/1829) -- Update poetry lock [\#1823](https://github.com/pypeclub/OpenPype/pull/1823) -- Settings: settings for plugins [\#1819](https://github.com/pypeclub/OpenPype/pull/1819) - Settings list can use template or schema as object type [\#1815](https://github.com/pypeclub/OpenPype/pull/1815) -- Maya: Deadline custom settings [\#1797](https://github.com/pypeclub/OpenPype/pull/1797) -- Maya: Shader name validation [\#1762](https://github.com/pypeclub/OpenPype/pull/1762) **πŸ› Bug fixes** -- Nuke: update video file crassing [\#1916](https://github.com/pypeclub/OpenPype/pull/1916) +- Fix - ftrack family was added incorrectly in some cases [\#1935](https://github.com/pypeclub/OpenPype/pull/1935) +- Fix - Deadline publish on Linux started Tray instead of headless publishing [\#1930](https://github.com/pypeclub/OpenPype/pull/1930) +- Maya: Validate Model Name - repair accident deletion in settings defaults [\#1929](https://github.com/pypeclub/OpenPype/pull/1929) +- Nuke: submit to farm failed due `ftrack` family remove [\#1926](https://github.com/pypeclub/OpenPype/pull/1926) +- Fix - validate takes repre\["files"\] as list all the time [\#1922](https://github.com/pypeclub/OpenPype/pull/1922) +- standalone: validator asset parents [\#1917](https://github.com/pypeclub/OpenPype/pull/1917) - Fix - texture validators for workfiles triggers only for textures workfiles [\#1914](https://github.com/pypeclub/OpenPype/pull/1914) - Settings UI: List order works as expected [\#1906](https://github.com/pypeclub/OpenPype/pull/1906) - Hiero: loaded clip was not set colorspace from version data [\#1904](https://github.com/pypeclub/OpenPype/pull/1904) @@ -48,20 +52,14 @@ - Normalize path returned from Workfiles. [\#1880](https://github.com/pypeclub/OpenPype/pull/1880) - Workfiles tool event arguments fix [\#1862](https://github.com/pypeclub/OpenPype/pull/1862) - imageio: fix grouping [\#1856](https://github.com/pypeclub/OpenPype/pull/1856) -- publisher: missing version in subset prop [\#1849](https://github.com/pypeclub/OpenPype/pull/1849) - Ftrack type error fix in sync to avalon event handler [\#1845](https://github.com/pypeclub/OpenPype/pull/1845) -- Nuke: updating effects subset fail [\#1841](https://github.com/pypeclub/OpenPype/pull/1841) -- nuke: write render node skipped with crop [\#1836](https://github.com/pypeclub/OpenPype/pull/1836) -- Project folder structure overrides [\#1813](https://github.com/pypeclub/OpenPype/pull/1813) -- Maya: fix yeti settings path in extractor [\#1809](https://github.com/pypeclub/OpenPype/pull/1809) -- Failsafe for cross project containers. [\#1806](https://github.com/pypeclub/OpenPype/pull/1806) - Settings error dialog on show [\#1798](https://github.com/pypeclub/OpenPype/pull/1798) **Merged pull requests:** +- Fix - make AE workfile publish to Ftrack configurable [\#1937](https://github.com/pypeclub/OpenPype/pull/1937) +- Settings UI: Breadcrumbs in settings [\#1932](https://github.com/pypeclub/OpenPype/pull/1932) - Maya: add support for `RedshiftNormalMap` node, fix `tx` linear space πŸš€ [\#1863](https://github.com/pypeclub/OpenPype/pull/1863) -- Add support for pyenv-win on windows [\#1822](https://github.com/pypeclub/OpenPype/pull/1822) -- PS, AE - send actual context when another webserver is running [\#1811](https://github.com/pypeclub/OpenPype/pull/1811) ## [3.2.0](https://github.com/pypeclub/OpenPype/tree/3.2.0) (2021-07-13) @@ -69,16 +67,10 @@ **πŸš€ Enhancements** -- Nuke: ftrack family plugin settings preset [\#1805](https://github.com/pypeclub/OpenPype/pull/1805) - Standalone publisher last project [\#1799](https://github.com/pypeclub/OpenPype/pull/1799) - Ftrack Multiple notes as server action [\#1795](https://github.com/pypeclub/OpenPype/pull/1795) - Settings conditional dict [\#1777](https://github.com/pypeclub/OpenPype/pull/1777) - Settings application use python 2 only where needed [\#1776](https://github.com/pypeclub/OpenPype/pull/1776) -- Settings UI copy/paste [\#1769](https://github.com/pypeclub/OpenPype/pull/1769) -- Workfile tool widths [\#1766](https://github.com/pypeclub/OpenPype/pull/1766) -- Push hierarchical attributes care about task parent changes [\#1763](https://github.com/pypeclub/OpenPype/pull/1763) -- Application executables with environment variables [\#1757](https://github.com/pypeclub/OpenPype/pull/1757) -- Deadline: Nuke submission additional attributes [\#1756](https://github.com/pypeclub/OpenPype/pull/1756) **πŸ› Bug fixes** @@ -88,18 +80,12 @@ - Fix: staging and `--use-version` option [\#1786](https://github.com/pypeclub/OpenPype/pull/1786) - Otio unrelated error on import [\#1782](https://github.com/pypeclub/OpenPype/pull/1782) - FFprobe streams order [\#1775](https://github.com/pypeclub/OpenPype/pull/1775) -- Fix - single file files are str only, cast it to list to count properly [\#1772](https://github.com/pypeclub/OpenPype/pull/1772) -- Environments in app executable for MacOS [\#1768](https://github.com/pypeclub/OpenPype/pull/1768) -- Project specific environments [\#1767](https://github.com/pypeclub/OpenPype/pull/1767) -- Settings UI with refresh button [\#1764](https://github.com/pypeclub/OpenPype/pull/1764) -- Standalone publisher thumbnail extractor fix [\#1761](https://github.com/pypeclub/OpenPype/pull/1761) -- Anatomy others templates don't cause crash [\#1758](https://github.com/pypeclub/OpenPype/pull/1758) **Merged pull requests:** +- PS, AE - send actual context when another webserver is running [\#1811](https://github.com/pypeclub/OpenPype/pull/1811) - Build: don't add Poetry to `PATH` [\#1808](https://github.com/pypeclub/OpenPype/pull/1808) - Bump prismjs from 1.23.0 to 1.24.0 in /website [\#1773](https://github.com/pypeclub/OpenPype/pull/1773) -- Bc/fix/docs [\#1771](https://github.com/pypeclub/OpenPype/pull/1771) ## [2.18.4](https://github.com/pypeclub/OpenPype/tree/2.18.4) (2021-06-24) diff --git a/openpype/version.py b/openpype/version.py index c4bd5a14cb..f5c8081d61 100644 --- a/openpype/version.py +++ b/openpype/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- """Package declaring Pype version.""" -__version__ = "3.3.0-nightly.9" +__version__ = "3.3.0-nightly.10" From c811251b23bbc05c39a0a3e117de22eeaa397808 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Sun, 15 Aug 2021 21:35:51 +0200 Subject: [PATCH 078/120] Created new better way how to run scripts --- .../window/widgets.py | 605 +++++++++--------- openpype/style/style.css | 2 +- 2 files changed, 311 insertions(+), 296 deletions(-) diff --git a/openpype/modules/python_console_interpreter/window/widgets.py b/openpype/modules/python_console_interpreter/window/widgets.py index 20be862d70..1802d99ac7 100644 --- a/openpype/modules/python_console_interpreter/window/widgets.py +++ b/openpype/modules/python_console_interpreter/window/widgets.py @@ -1,5 +1,7 @@ import os +import re import sys +import collections from code import InteractiveInterpreter from Qt import QtCore, QtWidgets, QtGui @@ -7,328 +9,341 @@ from Qt import QtCore, QtWidgets, QtGui from openpype.style import load_stylesheet -class MultipleRedirection: - """ Dummy file which redirects stream to multiple file """ +class StdOEWrap: + def __init__(self): + self._origin_stdout_write = None + self._origin_stderr_write = None + self._listening = False + self.lines = collections.deque() - def __init__(self, *files): - """ The stream is redirect to the file list 'files' """ + if not sys.stdout: + sys.stdout = open(os.devnull, "w") - self.files = files + if not sys.stderr: + sys.stderr = open(os.devnull, "w") - def write(self, line): - """ Emulate write function """ + if self._origin_stdout_write is None: + self._origin_stdout_write = sys.stdout.write - for _file in self.files: - _file.write(line) + if self._origin_stderr_write is None: + self._origin_stderr_write = sys.stderr.write + + self._listening = True + sys.stdout.write = self._stdout_listener + sys.stderr.write = self._stderr_listener + + def stop_listen(self): + self._listening = False + + def _stdout_listener(self, text): + if self._listening: + self.lines.append(text) + if self._origin_stdout_write is not None: + self._origin_stdout_write(text) + + def _stderr_listener(self, text): + if self._listening: + self.lines.append(text) + if self._origin_stderr_write is not None: + self._origin_stderr_write(text) -class StringObj: - def __init__(self, text=None): - if isinstance(text, StringObj): - text = str(text) +class PythonCodeEditor(QtWidgets.QPlainTextEdit): + execute_requested = QtCore.Signal() - self._text = text or "" + def __init__(self, parent): + super(PythonCodeEditor, self).__init__(parent) - def __str__(self): - return self._text - - def __len__(self): - return self.length() - - def __bool__(self): - return bool(self._text) - - def length(self): - return len(self._text) - - def clear(self): - self._text = "" - - def insert(self, point, text): - if isinstance(text, StringObj): - text = str(text) - self._text = self._text[:point] + text + self._text[point:] - - def remove(self, point, count): - self._text = self._text[:point] + self._text[point + count:] - - def copy(self): - return StringObj(self._text) - - -class PythonInterpreterWidget(QtWidgets.QTextEdit): - def __init__(self, parent=None): - super(PythonInterpreterWidget, self).__init__(parent) - - self.setObjectName("PythonInterpreterWidget") self._indent = 4 - self._interpreter = InteractiveInterpreter() - - # to exit the main interpreter by a Ctrl-D if PyCute has no parent - if parent is None: - self.eofKey = QtCore.Qt.Key_D - else: - self.eofKey = None - - # capture all interactive input/output - stdout = [] - stderr = [] - if sys.stdout is not None: - stdout.append(sys.stdout) - if sys.stderr is not None: - stderr.append(sys.stderr) - - stdout.append(self) - stderr.append(self) - - sys.stdout = MultipleRedirection(*stdout) - sys.stderr = MultipleRedirection(*stderr) - - # last line + last incomplete lines - self.line = StringObj() - self.lines = [] - # the cursor position in the last line - self.point = 0 - # flag: the interpreter needs more input to run the last lines. - self.more = False - # flag: readline() is being used for e.g. raw_input() and input() - self.reading = False - # history - self.history = [] - self.pointer = 0 - self.cursor_pos = 0 - - # user interface setup - self.setLineWrapMode(QtWidgets.QTextEdit.NoWrap) - - self.setStyleSheet(load_stylesheet()) - - # interpreter prompt. - try: - sys.ps1 - except AttributeError: - sys.ps1 = ">>> " - try: - sys.ps2 - except AttributeError: - sys.ps2 = "... " - - # interpreter banner - self.write("The shell running Python {} on {}.\n".format( - sys.version, sys.platform - )) - self.write(( - "Type \"copyright\", \"credits\" or \"license\"" - " for more information on Python.\n" - )) - self.write("\nWelcome to OpenPype!\n\n") - self.write(sys.ps1) - - @property - def interpreter(self): - """Interpreter object.""" - return self._interpreter - - def moveCursor(self, operation, mode=None): - if mode is None: - mode = QtGui.QTextCursor.MoveAnchor + def _tab_shift_right(self): cursor = self.textCursor() - cursor.movePosition(operation, mode) - self.setTextCursor(cursor) + selected_text = cursor.selectedText() + if not selected_text: + cursor.insertText(" " * self._indent) + return - def flush(self): - """Simulate stdin, stdout, and stderr flush.""" - pass + sel_start = cursor.selectionStart() + sel_end = cursor.selectionEnd() + cursor.setPosition(sel_end) + end_line = cursor.blockNumber() + cursor.setPosition(sel_start) + while True: + cursor.movePosition(QtGui.QTextCursor.StartOfLine) + text = cursor.block().text() + spaces = len(text) - len(text.lstrip(" ")) + new_spaces = spaces % self._indent + if not new_spaces: + new_spaces = self._indent - def isatty(self): - """Simulate stdin, stdout, and stderr isatty.""" - return 1 + cursor.insertText(" " * new_spaces) + if cursor.blockNumber() == end_line: + break - def readline(self): - """Simulate stdin, stdout, and stderr readline.""" - self.reading = True - self.__clearLine() - self.moveCursor(QtGui.QTextCursor.End) - while self.reading: - QtWidgets.QApplication.processOneEvent() - if self.line.length() == 0: - return "\n" - return str(self.line) + cursor.movePosition(QtGui.QTextCursor.NextBlock) - def write(self, text): - """Simulate stdin, stdout, and stderr write.""" - cursor = self.textCursor() + def _tab_shift_left(self): + tmp_cursor = self.textCursor() + sel_start = tmp_cursor.selectionStart() + sel_end = tmp_cursor.selectionEnd() - cursor.movePosition(QtGui.QTextCursor.End) + cursor = QtGui.QTextCursor(self.document()) + cursor.setPosition(sel_end) + end_line = cursor.blockNumber() + cursor.setPosition(sel_start) + while True: + cursor.movePosition(QtGui.QTextCursor.StartOfLine) + text = cursor.block().text() + spaces = len(text) - len(text.lstrip(" ")) + if spaces: + spaces_to_remove = (spaces % self._indent) or self._indent + if spaces_to_remove > spaces: + spaces_to_remove = spaces - # pos1 = cursor.position() - cursor.insertText(str(text)) - - self.cursor_pos = cursor.position() - self.setTextCursor(cursor) - self.ensureCursorVisible() - - # Set the format - # cursor.setPosition(pos1, QtGui.QTextCursor.KeepAnchor) - # char_format = cursor.charFormat() - # char_format.setForeground(QtGui.QBrush(QtGui.QColor(0, 0, 0))) - # cursor.setCharFormat(char_format) - - def writelines(self, text): - """ - Simulate stdin, stdout, and stderr. - """ - for line in text.split("\n"): - self.write(line) - - def fake_user_input(self, lines): - """Simulate a user input lines is a sequence of strings. - - Args: - lines(list, tuple): Lines to process. - """ - for line in lines: - self.line = StringObj(line.rstrip()) - self.write(self.line) - self.write("\n") - self.__run() - - def __run(self): - """ - Append the last line to the history list, let the interpreter execute - the last line(s), and clean up accounting for the interpreter results: - (1) the interpreter succeeds - (2) the interpreter fails, finds no errors and wants more line(s) - (3) the interpreter fails, finds errors and writes them to sys.stderr - """ - self.pointer = 0 - self.history.append(self.line.copy()) - try: - self.lines.append(str(self.line)) - except Exception as exc: - print(exc) - - source = "\n".join(self.lines) - self.more = self._interpreter.runsource(source) - if self.more: - self.write(sys.ps2) - else: - self.write(sys.ps1) - self.lines = [] - self.__clearLine() - - def __clearLine(self): - """Clear input line buffer.""" - self.line.clear() - self.point = 0 - - def __insertText(self, text): - """Insert text at the current cursor position.""" - - self.line.insert(self.point, text) - self.point += len(text) - - cursor = self.textCursor() - cursor.insertText(str(text)) - - def keyPressEvent(self, event): - """Handle user input a key at a time.""" - text = event.text() - key = event.key() - - if key == QtCore.Qt.Key_Backspace: - if self.point: - cursor = self.textCursor() - cursor.movePosition( - QtGui.QTextCursor.PreviousCharacter, + cursor.setPosition( + cursor.position() + spaces_to_remove, QtGui.QTextCursor.KeepAnchor ) cursor.removeSelectedText() - self.point -= 1 + if cursor.blockNumber() == end_line: + break - self.line.remove(self.point, 1) + cursor.movePosition(QtGui.QTextCursor.NextBlock) - elif key == QtCore.Qt.Key_Delete: - cursor = self.textCursor() - cursor.movePosition( - QtGui.QTextCursor.NextCharacter, - QtGui.QTextCursor.KeepAnchor - ) - cursor.removeSelectedText() - - self.line.remove(self.point, 1) - - elif key in (QtCore.Qt.Key_Return, QtCore.Qt.Key_Enter): - self.write("\n") - if self.reading: - self.reading = False - else: - self.__run() - - elif key == QtCore.Qt.Key_Tab: - self.__insertText(" " * self._indent) - - elif key == QtCore.Qt.Key_Left: - if self.point: - self.moveCursor(QtGui.QTextCursor.Left) - self.point -= 1 - elif key == QtCore.Qt.Key_Right: - if self.point < self.line.length(): - self.moveCursor(QtGui.QTextCursor.Right) - self.point += 1 - - elif key == QtCore.Qt.Key_Home: - cursor = self.textCursor() - cursor.setPosition(self.cursor_pos) - self.setTextCursor(cursor) - self.point = 0 - - elif key == QtCore.Qt.Key_End: - self.moveCursor(QtGui.QTextCursor.EndOfLine) - self.point = self.line.length() - - elif key == QtCore.Qt.Key_Up: - if self.history: - if self.pointer == 0: - self.pointer = len(self.history) - self.pointer -= 1 - self.__recall() - - elif key == QtCore.Qt.Key_Down: - if self.history: - self.pointer += 1 - if self.pointer == len(self.history): - self.pointer = 0 - self.__recall() - - elif text: - self.__insertText(text) + def keyPressEvent(self, event): + if event.key() == QtCore.Qt.Key_Backtab: + self._tab_shift_left() + event.accept() return - else: - event.ignore() + if event.key() == QtCore.Qt.Key_Tab: + if event.modifiers() == QtCore.Qt.NoModifier: + self._tab_shift_right() + event.accept() + return - def __recall(self): - """Display the current item from the command history.""" - cursor = self.textCursor() - cursor.select(QtGui.QTextCursor.LineUnderCursor) - cursor.removeSelectedText() + if ( + event.key() == QtCore.Qt.Key_Return + and event.modifiers() == QtCore.Qt.ControlModifier + ): + self.execute_requested.emit() + event.accept() + return - if self.more: - self.write(sys.ps2) - else: - self.write(sys.ps1) + super(PythonCodeEditor, self).keyPressEvent(event) - self.__clearLine() - self.__insertText(self.history[self.pointer]) - def mousePressEvent(self, event): - """Keep the cursor after the last prompt.""" - if event.button() == QtCore.Qt.LeftButton: - self.moveCursor(QtGui.QTextCursor.End) +class PythonTabWidget(QtWidgets.QWidget): + before_execute = QtCore.Signal(str) - def contentsContextMenuEvent(self, event): - """Suppress the right button context menu.""" - pass + def __init__(self, parent): + super(PythonTabWidget, self).__init__(parent) + + code_input = PythonCodeEditor(self) + + execute_btn = QtWidgets.QPushButton("Execute", self) + execute_btn.setToolTip("Execute command (Ctrl + Enter)") + + btns_layout = QtWidgets.QHBoxLayout() + btns_layout.setContentsMargins(0, 0, 0, 0) + btns_layout.addStretch(1) + btns_layout.addWidget(execute_btn) + + layout = QtWidgets.QVBoxLayout(self) + layout.setContentsMargins(0, 0, 0, 0) + layout.addWidget(code_input, 1) + layout.addLayout(btns_layout, 0) + + execute_btn.clicked.connect(self._on_execute_clicked) + code_input.execute_requested.connect(self.execute) + + self._code_input = code_input + self._interpreter = InteractiveInterpreter() + + def _on_execute_clicked(self): + self.execute() + + def execute(self): + code_text = self._code_input.toPlainText() + self.before_execute.emit(code_text) + self._interpreter.runcode(code_text) + + +class TabNameDialog(QtWidgets.QDialog): + def __init__(self, parent): + super(TabNameDialog, self).__init__(parent) + + self.setWindowTitle("Enter tab name") + + name_label = QtWidgets.QLabel("Tab name:", self) + name_input = QtWidgets.QLineEdit(self) + + inputs_layout = QtWidgets.QHBoxLayout() + inputs_layout.addWidget(name_label) + inputs_layout.addWidget(name_input) + + ok_btn = QtWidgets.QPushButton("Ok", self) + cancel_btn = QtWidgets.QPushButton("Cancel", self) + btns_layout = QtWidgets.QHBoxLayout() + btns_layout.addStretch(1) + btns_layout.addWidget(ok_btn) + btns_layout.addWidget(cancel_btn) + + layout = QtWidgets.QVBoxLayout(self) + layout.addLayout(inputs_layout) + layout.addStretch(1) + layout.addLayout(btns_layout) + + ok_btn.clicked.connect(self._on_ok_clicked) + cancel_btn.clicked.connect(self._on_cancel_clicked) + + self._name_input = name_input + self._ok_btn = ok_btn + self._cancel_btn = cancel_btn + + self._result = "" + + def set_tab_name(self, name): + self._name_input.setText(name) + + def result(self): + return self._result + + def showEvent(self, event): + super(TabNameDialog, self).showEvent(event) + btns_width = max( + self._ok_btn.width(), + self._cancel_btn.width() + ) + + self._ok_btn.setMinimumWidth(btns_width) + self._cancel_btn.setMinimumWidth(btns_width) + + def _on_ok_clicked(self): + self._result = self._name_input.text() + self.accept() + + def _on_cancel_clicked(self): + self._result = "" + self.reject() + + +class PythonInterpreterWidget(QtWidgets.QWidget): + def __init__(self, parent=None): + super(PythonInterpreterWidget, self).__init__(parent) + + self.ansi_escape = re.compile( + r"(?:\x1B[@-_]|[\x80-\x9F])[0-?]*[ -/]*[@-~]" + ) + + self._tabs = [] + + self._stdout_err_wrapper = StdOEWrap() + + output_widget = QtWidgets.QTextEdit(self) + output_widget.setObjectName("PythonInterpreterOutput") + output_widget.setLineWrapMode(QtWidgets.QTextEdit.NoWrap) + output_widget.setTextInteractionFlags(QtCore.Qt.TextBrowserInteraction) + + tab_widget = QtWidgets.QTabWidget(self) + tab_widget.setTabsClosable(False) + tab_widget.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) + + add_tab_btn = QtWidgets.QPushButton("+", tab_widget) + tab_widget.setCornerWidget(add_tab_btn, QtCore.Qt.TopLeftCorner) + + layout = QtWidgets.QVBoxLayout(self) + layout.addWidget(output_widget) + layout.addWidget(tab_widget) + + timer = QtCore.QTimer() + timer.setInterval(200) + timer.start() + + timer.timeout.connect(self._on_timer_timeout) + add_tab_btn.clicked.connect(self._on_add_clicked) + tab_widget.customContextMenuRequested.connect( + self._on_tab_context_menu + ) + tab_widget.tabCloseRequested.connect(self._on_tab_close_req) + + self._add_tab_btn = add_tab_btn + self._output_widget = output_widget + self._tab_widget = tab_widget + self._timer = timer + + self.setStyleSheet(load_stylesheet()) + + self.add_tab("Python") + + def _on_tab_context_menu(self, point): + tab = self._tab_widget.tabBar().tabAt(point) + last_index = self._tab_widget.tabBar().count() - 1 + if tab < 0 or tab > last_index: + return + # TODO add menu + + def _on_tab_close_req(self, tab_index): + widget = self._tab_widget.widget(tab_index) + if widget in self._tabs: + self._tabs.remove(widget) + self._tab_widget.removeTab(tab_index) + + if self._tab_widget.count() == 1: + self._tab_widget.setTabsClosable(False) + + def _on_timer_timeout(self): + if self._stdout_err_wrapper.lines: + tmp_cursor = QtGui.QTextCursor(self._output_widget.document()) + tmp_cursor.movePosition(QtGui.QTextCursor.End) + while self._stdout_err_wrapper.lines: + line = self._stdout_err_wrapper.lines.popleft() + + tmp_cursor.insertText(self.ansi_escape.sub("", line)) + + def _on_add_clicked(self): + dialog = TabNameDialog(self) + dialog.exec_() + tab_name = dialog.result() + if tab_name: + self.add_tab(tab_name) + + def _on_before_execute(self, code_text): + document = self._output_widget.document() + tmp_cursor = QtGui.QTextCursor(document) + tmp_cursor.movePosition(QtGui.QTextCursor.End) + tmp_cursor.insertText("{}\nExecuting command:\n".format(20 * "-")) + + code_block_format = QtGui.QTextFrameFormat() + code_block_format.setBackground(QtGui.QColor(27, 27, 27)) + code_block_format.setPadding(4) + + tmp_cursor.insertFrame(code_block_format) + char_format = tmp_cursor.charFormat() + char_format.setForeground( + QtGui.QBrush(QtGui.QColor(114, 224, 198)) + ) + tmp_cursor.setCharFormat(char_format) + tmp_cursor.insertText(code_text) + + # Create new cursor + tmp_cursor = QtGui.QTextCursor(document) + tmp_cursor.movePosition(QtGui.QTextCursor.End) + tmp_cursor.insertText("{}\n".format(20 * "-")) + + def add_tab(self, tab_name, index=None): + widget = PythonTabWidget(self) + widget.before_execute.connect(self._on_before_execute) + if index is None: + if self._tab_widget.count() > 1: + index = self._tab_widget.currentIndex() + 1 + else: + index = 0 + + self._tabs.append(widget) + self._tab_widget.insertTab(index, widget, tab_name) + self._tab_widget.setCurrentIndex(index) + + if self._tab_widget.count() > 1: + self._tab_widget.setTabsClosable(True) diff --git a/openpype/style/style.css b/openpype/style/style.css index d2d7a300c1..123bb2ee70 100644 --- a/openpype/style/style.css +++ b/openpype/style/style.css @@ -625,6 +625,6 @@ QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { } /* Python console interpreter */ -#PythonInterpreterWidget { +#PythonInterpreterOutput { font-family: "Roboto Mono"; } From 1b65d807fb0d8ca014e96d42b3904a45a8de7d6d Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Sun, 15 Aug 2021 21:45:43 +0200 Subject: [PATCH 079/120] added renaming feature --- .../window/widgets.py | 27 ++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/openpype/modules/python_console_interpreter/window/widgets.py b/openpype/modules/python_console_interpreter/window/widgets.py index 1802d99ac7..0e01c5e9f3 100644 --- a/openpype/modules/python_console_interpreter/window/widgets.py +++ b/openpype/modules/python_console_interpreter/window/widgets.py @@ -202,7 +202,7 @@ class TabNameDialog(QtWidgets.QDialog): self._ok_btn = ok_btn self._cancel_btn = cancel_btn - self._result = "" + self._result = None def set_tab_name(self, name): self._name_input.setText(name) @@ -225,7 +225,7 @@ class TabNameDialog(QtWidgets.QDialog): self.accept() def _on_cancel_clicked(self): - self._result = "" + self._result = None self.reject() @@ -278,11 +278,26 @@ class PythonInterpreterWidget(QtWidgets.QWidget): self.add_tab("Python") def _on_tab_context_menu(self, point): - tab = self._tab_widget.tabBar().tabAt(point) - last_index = self._tab_widget.tabBar().count() - 1 - if tab < 0 or tab > last_index: + tab_bar = self._tab_widget.tabBar() + tab_idx = tab_bar.tabAt(point) + last_index = tab_bar.count() - 1 + if tab_idx < 0 or tab_idx > last_index: return - # TODO add menu + + menu = QtWidgets.QMenu(self._tab_widget) + menu.addAction("Rename") + global_point = self._tab_widget.mapToGlobal(point) + result = menu.exec_(global_point) + if result is None: + return + + if result.text() == "Rename": + dialog = TabNameDialog(self) + dialog.set_tab_name(self._tab_widget.tabText(tab_idx)) + dialog.exec_() + tab_name = dialog.result() + if tab_name: + self._tab_widget.setTabText(tab_idx, tab_name) def _on_tab_close_req(self, tab_index): widget = self._tab_widget.widget(tab_index) From 207738dda3c8f0946f20fbd0145b7212b35ec842 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Sun, 15 Aug 2021 22:08:29 +0200 Subject: [PATCH 080/120] added saves of interpreter code --- .../python_console_interpreter/module.py | 4 + .../window/widgets.py | 79 ++++++++++++++++++- 2 files changed, 82 insertions(+), 1 deletion(-) diff --git a/openpype/modules/python_console_interpreter/module.py b/openpype/modules/python_console_interpreter/module.py index e589615960..78aaddf6d8 100644 --- a/openpype/modules/python_console_interpreter/module.py +++ b/openpype/modules/python_console_interpreter/module.py @@ -12,6 +12,10 @@ class PythonInterpreterAction(PypeModule, ITrayAction): def tray_init(self): self.create_interpreter_window() + def tray_exit(self): + if self._interpreter_window is not None: + self._interpreter_window.save_registry() + def connect_with_modules(self, *args, **kwargs): pass diff --git a/openpype/modules/python_console_interpreter/window/widgets.py b/openpype/modules/python_console_interpreter/window/widgets.py index 0e01c5e9f3..da90e64b4d 100644 --- a/openpype/modules/python_console_interpreter/window/widgets.py +++ b/openpype/modules/python_console_interpreter/window/widgets.py @@ -4,9 +4,28 @@ import sys import collections from code import InteractiveInterpreter +import appdirs from Qt import QtCore, QtWidgets, QtGui from openpype.style import load_stylesheet +from openpype.lib import JSONSettingRegistry + + +class PythonInterpreterRegistry(JSONSettingRegistry): + """Class handling OpenPype general settings registry. + + Attributes: + vendor (str): Name used for path construction. + product (str): Additional name used for path construction. + + """ + + def __init__(self): + self.vendor = "pypeclub" + self.product = "openpype" + name = "python_interpreter_tool" + path = appdirs.user_data_dir(self.product, self.vendor) + super(PythonInterpreterRegistry, self).__init__(name, path) class StdOEWrap: @@ -164,6 +183,12 @@ class PythonTabWidget(QtWidgets.QWidget): def _on_execute_clicked(self): self.execute() + def get_code(self): + return self._code_input.toPlainText() + + def set_code(self, code_text): + self._code_input.setPlainText(code_text) + def execute(self): code_text = self._code_input.toPlainText() self.before_execute.emit(code_text) @@ -230,6 +255,9 @@ class TabNameDialog(QtWidgets.QDialog): class PythonInterpreterWidget(QtWidgets.QWidget): + default_width = 1000 + default_height = 600 + def __init__(self, parent=None): super(PythonInterpreterWidget, self).__init__(parent) @@ -275,7 +303,51 @@ class PythonInterpreterWidget(QtWidgets.QWidget): self.setStyleSheet(load_stylesheet()) - self.add_tab("Python") + self.resize(self.default_width, self.default_height) + + self._init_from_registry() + + if self._tab_widget.count() < 1: + self.add_tab("Python") + + def _init_from_registry(self): + setting_registry = PythonInterpreterRegistry() + + try: + width = setting_registry.get_item("width") + height = setting_registry.get_item("height") + if width is not None and height is not None: + self.resize(width, height) + + except ValueError: + pass + + try: + tab_defs = setting_registry.get_item("tabs") or [] + for tab_def in tab_defs: + widget = self.add_tab(tab_def["name"]) + widget.set_code(tab_def["code"]) + + except ValueError: + pass + + def save_registry(self): + setting_registry = PythonInterpreterRegistry() + + setting_registry.set_item("width", self.width()) + setting_registry.set_item("height", self.height()) + + tabs = [] + for tab_idx in range(self._tab_widget.count()): + widget = self._tab_widget.widget(tab_idx) + tab_code = widget.get_code() + tab_name = self._tab_widget.tabText(tab_idx) + tabs.append({ + "name": tab_name, + "code": tab_code + }) + + setting_registry.set_item("tabs", tabs) def _on_tab_context_menu(self, point): tab_bar = self._tab_widget.tabBar() @@ -362,3 +434,8 @@ class PythonInterpreterWidget(QtWidgets.QWidget): if self._tab_widget.count() > 1: self._tab_widget.setTabsClosable(True) + return widget + + def closeEvent(self, event): + self.save_registry() + super(PythonInterpreterWidget, self).closeEvent(event) From 7edcd4d762eb043c5fe3662a05e6999a107fd531 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Sun, 15 Aug 2021 22:29:57 +0200 Subject: [PATCH 081/120] added splitter to interpreter --- .../window/widgets.py | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/openpype/modules/python_console_interpreter/window/widgets.py b/openpype/modules/python_console_interpreter/window/widgets.py index da90e64b4d..485d59a856 100644 --- a/openpype/modules/python_console_interpreter/window/widgets.py +++ b/openpype/modules/python_console_interpreter/window/widgets.py @@ -281,9 +281,17 @@ class PythonInterpreterWidget(QtWidgets.QWidget): add_tab_btn = QtWidgets.QPushButton("+", tab_widget) tab_widget.setCornerWidget(add_tab_btn, QtCore.Qt.TopLeftCorner) + widgets_splitter = QtWidgets.QSplitter(self) + widgets_splitter.setOrientation(QtCore.Qt.Vertical) + widgets_splitter.addWidget(output_widget) + widgets_splitter.addWidget(tab_widget) + widgets_splitter.setStretchFactor(0, 1) + widgets_splitter.setStretchFactor(1, 1) + height = int(self.default_height / 2) + widgets_splitter.setSizes([height, self.default_height - height]) + layout = QtWidgets.QVBoxLayout(self) - layout.addWidget(output_widget) - layout.addWidget(tab_widget) + layout.addWidget(widgets_splitter) timer = QtCore.QTimer() timer.setInterval(200) @@ -296,6 +304,7 @@ class PythonInterpreterWidget(QtWidgets.QWidget): ) tab_widget.tabCloseRequested.connect(self._on_tab_close_req) + self._widgets_splitter = widgets_splitter self._add_tab_btn = add_tab_btn self._output_widget = output_widget self._tab_widget = tab_widget @@ -322,6 +331,14 @@ class PythonInterpreterWidget(QtWidgets.QWidget): except ValueError: pass + try: + sizes = setting_registry.get_item("splitter_sizes") + if len(sizes) == len(self._widgets_splitter.sizes()): + self._widgets_splitter.setSizes(sizes) + + except ValueError: + pass + try: tab_defs = setting_registry.get_item("tabs") or [] for tab_def in tab_defs: @@ -337,6 +354,10 @@ class PythonInterpreterWidget(QtWidgets.QWidget): setting_registry.set_item("width", self.width()) setting_registry.set_item("height", self.height()) + setting_registry.set_item( + "splitter_sizes", self._widgets_splitter.sizes() + ) + tabs = [] for tab_idx in range(self._tab_widget.count()): widget = self._tab_widget.widget(tab_idx) From 3c6130fc65ab10922704098274583ff8044023c3 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Sun, 15 Aug 2021 22:30:07 +0200 Subject: [PATCH 082/120] output has auto scroll --- .../window/widgets.py | 35 +++++++++++++++---- 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/openpype/modules/python_console_interpreter/window/widgets.py b/openpype/modules/python_console_interpreter/window/widgets.py index 485d59a856..826e290888 100644 --- a/openpype/modules/python_console_interpreter/window/widgets.py +++ b/openpype/modules/python_console_interpreter/window/widgets.py @@ -254,6 +254,16 @@ class TabNameDialog(QtWidgets.QDialog): self.reject() +class OutputTextWidget(QtWidgets.QTextEdit): + def vertical_scroll_at_max(self): + v_scroll = self.verticalScrollBar() + return v_scroll.value() == v_scroll.maximum() + + def scroll_to_bottom(self): + v_scroll = self.verticalScrollBar() + return v_scroll.setValue(v_scroll.maximum()) + + class PythonInterpreterWidget(QtWidgets.QWidget): default_width = 1000 default_height = 600 @@ -269,7 +279,7 @@ class PythonInterpreterWidget(QtWidgets.QWidget): self._stdout_err_wrapper = StdOEWrap() - output_widget = QtWidgets.QTextEdit(self) + output_widget = OutputTextWidget(self) output_widget.setObjectName("PythonInterpreterOutput") output_widget.setLineWrapMode(QtWidgets.QTextEdit.NoWrap) output_widget.setTextInteractionFlags(QtCore.Qt.TextBrowserInteraction) @@ -293,11 +303,10 @@ class PythonInterpreterWidget(QtWidgets.QWidget): layout = QtWidgets.QVBoxLayout(self) layout.addWidget(widgets_splitter) - timer = QtCore.QTimer() - timer.setInterval(200) - timer.start() + line_check_timer = QtCore.QTimer() + line_check_timer.setInterval(200) - timer.timeout.connect(self._on_timer_timeout) + line_check_timer.timeout.connect(self._on_timer_timeout) add_tab_btn.clicked.connect(self._on_add_clicked) tab_widget.customContextMenuRequested.connect( self._on_tab_context_menu @@ -308,7 +317,7 @@ class PythonInterpreterWidget(QtWidgets.QWidget): self._add_tab_btn = add_tab_btn self._output_widget = output_widget self._tab_widget = tab_widget - self._timer = timer + self._line_check_timer = line_check_timer self.setStyleSheet(load_stylesheet()) @@ -403,6 +412,7 @@ class PythonInterpreterWidget(QtWidgets.QWidget): def _on_timer_timeout(self): if self._stdout_err_wrapper.lines: + at_max = self._output_widget.vertical_scroll_at_max() tmp_cursor = QtGui.QTextCursor(self._output_widget.document()) tmp_cursor.movePosition(QtGui.QTextCursor.End) while self._stdout_err_wrapper.lines: @@ -410,6 +420,9 @@ class PythonInterpreterWidget(QtWidgets.QWidget): tmp_cursor.insertText(self.ansi_escape.sub("", line)) + if at_max: + self._output_widget.scroll_to_bottom() + def _on_add_clicked(self): dialog = TabNameDialog(self) dialog.exec_() @@ -418,6 +431,7 @@ class PythonInterpreterWidget(QtWidgets.QWidget): self.add_tab(tab_name) def _on_before_execute(self, code_text): + at_max = self._output_widget.vertical_scroll_at_max() document = self._output_widget.document() tmp_cursor = QtGui.QTextCursor(document) tmp_cursor.movePosition(QtGui.QTextCursor.End) @@ -440,6 +454,9 @@ class PythonInterpreterWidget(QtWidgets.QWidget): tmp_cursor.movePosition(QtGui.QTextCursor.End) tmp_cursor.insertText("{}\n".format(20 * "-")) + if at_max: + self._output_widget.scroll_to_bottom() + def add_tab(self, tab_name, index=None): widget = PythonTabWidget(self) widget.before_execute.connect(self._on_before_execute) @@ -457,6 +474,12 @@ class PythonInterpreterWidget(QtWidgets.QWidget): self._tab_widget.setTabsClosable(True) return widget + def showEvent(self, event): + self._line_check_timer.start() + super(PythonInterpreterWidget, self).showEvent(event) + self._output_widget.scroll_to_bottom() + def closeEvent(self, event): self.save_registry() super(PythonInterpreterWidget, self).closeEvent(event) + self._line_check_timer.stop() From 063da54aa29c72fa0f9221369b0a13faaaecc064 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Sun, 15 Aug 2021 22:34:08 +0200 Subject: [PATCH 083/120] added maximum offset --- openpype/modules/python_console_interpreter/window/widgets.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/openpype/modules/python_console_interpreter/window/widgets.py b/openpype/modules/python_console_interpreter/window/widgets.py index 826e290888..8807f87817 100644 --- a/openpype/modules/python_console_interpreter/window/widgets.py +++ b/openpype/modules/python_console_interpreter/window/widgets.py @@ -255,9 +255,11 @@ class TabNameDialog(QtWidgets.QDialog): class OutputTextWidget(QtWidgets.QTextEdit): + v_max_offset = 4 + def vertical_scroll_at_max(self): v_scroll = self.verticalScrollBar() - return v_scroll.value() == v_scroll.maximum() + return v_scroll.value() > v_scroll.maximum() - self.v_max_offset def scroll_to_bottom(self): v_scroll = self.verticalScrollBar() From a7eed5ac91e61495d9caea31c69ccd44a99f66c6 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Sun, 15 Aug 2021 22:34:21 +0200 Subject: [PATCH 084/120] set focus of code editor --- openpype/modules/python_console_interpreter/window/widgets.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openpype/modules/python_console_interpreter/window/widgets.py b/openpype/modules/python_console_interpreter/window/widgets.py index 8807f87817..ebef769b73 100644 --- a/openpype/modules/python_console_interpreter/window/widgets.py +++ b/openpype/modules/python_console_interpreter/window/widgets.py @@ -161,6 +161,8 @@ class PythonTabWidget(QtWidgets.QWidget): code_input = PythonCodeEditor(self) + self.setFocusProxy(code_input) + execute_btn = QtWidgets.QPushButton("Execute", self) execute_btn.setToolTip("Execute command (Ctrl + Enter)") @@ -474,6 +476,7 @@ class PythonInterpreterWidget(QtWidgets.QWidget): if self._tab_widget.count() > 1: self._tab_widget.setTabsClosable(True) + widget.setFocus() return widget def showEvent(self, event): From a214ad277e33668b2a9066913fe0e206c1bc9553 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Sun, 15 Aug 2021 22:34:28 +0200 Subject: [PATCH 085/120] added window title --- openpype/modules/python_console_interpreter/window/widgets.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openpype/modules/python_console_interpreter/window/widgets.py b/openpype/modules/python_console_interpreter/window/widgets.py index ebef769b73..bcf2450442 100644 --- a/openpype/modules/python_console_interpreter/window/widgets.py +++ b/openpype/modules/python_console_interpreter/window/widgets.py @@ -275,6 +275,8 @@ class PythonInterpreterWidget(QtWidgets.QWidget): def __init__(self, parent=None): super(PythonInterpreterWidget, self).__init__(parent) + self.setWindowTitle("OpenPype Console") + self.ansi_escape = re.compile( r"(?:\x1B[@-_]|[\x80-\x9F])[0-?]*[ -/]*[@-~]" ) From 3b5bc8841c9791fdea7b524f0320fc803b71518e Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Sun, 15 Aug 2021 22:39:17 +0200 Subject: [PATCH 086/120] added console to admin actions --- openpype/modules/python_console_interpreter/module.py | 1 + 1 file changed, 1 insertion(+) diff --git a/openpype/modules/python_console_interpreter/module.py b/openpype/modules/python_console_interpreter/module.py index 78aaddf6d8..b37f35dfe0 100644 --- a/openpype/modules/python_console_interpreter/module.py +++ b/openpype/modules/python_console_interpreter/module.py @@ -4,6 +4,7 @@ from .. import PypeModule, ITrayAction class PythonInterpreterAction(PypeModule, ITrayAction): label = "Console" name = "python_interpreter" + admin_action = True def initialize(self, modules_settings): self.enabled = True From f47c4223cdd830b63f2dda09c937458c2952205b Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Sun, 15 Aug 2021 22:39:33 +0200 Subject: [PATCH 087/120] tab name dialog has default size --- .../modules/python_console_interpreter/window/widgets.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/openpype/modules/python_console_interpreter/window/widgets.py b/openpype/modules/python_console_interpreter/window/widgets.py index bcf2450442..585bf3fcde 100644 --- a/openpype/modules/python_console_interpreter/window/widgets.py +++ b/openpype/modules/python_console_interpreter/window/widgets.py @@ -198,6 +198,9 @@ class PythonTabWidget(QtWidgets.QWidget): class TabNameDialog(QtWidgets.QDialog): + default_width = 330 + default_height = 85 + def __init__(self, parent): super(TabNameDialog, self).__init__(parent) @@ -231,6 +234,8 @@ class TabNameDialog(QtWidgets.QDialog): self._result = None + self.resize(self.default_width, self.default_height) + def set_tab_name(self, name): self._name_input.setText(name) From aefe81d665242e6c9857a724756657b676e2e94e Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Sun, 15 Aug 2021 22:39:41 +0200 Subject: [PATCH 088/120] added openpype icon --- openpype/modules/python_console_interpreter/window/widgets.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openpype/modules/python_console_interpreter/window/widgets.py b/openpype/modules/python_console_interpreter/window/widgets.py index 585bf3fcde..3f88dd9235 100644 --- a/openpype/modules/python_console_interpreter/window/widgets.py +++ b/openpype/modules/python_console_interpreter/window/widgets.py @@ -7,6 +7,7 @@ from code import InteractiveInterpreter import appdirs from Qt import QtCore, QtWidgets, QtGui +from openpype import resources from openpype.style import load_stylesheet from openpype.lib import JSONSettingRegistry @@ -281,6 +282,7 @@ class PythonInterpreterWidget(QtWidgets.QWidget): super(PythonInterpreterWidget, self).__init__(parent) self.setWindowTitle("OpenPype Console") + self.setWindowIcon(QtGui.QIcon(resources.pype_icon_filepath())) self.ansi_escape = re.compile( r"(?:\x1B[@-_]|[\x80-\x9F])[0-?]*[ -/]*[@-~]" From dd3be3cd339c1434a30f3c42870848d8e8825152 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Sun, 15 Aug 2021 22:45:27 +0200 Subject: [PATCH 089/120] added monospace font to editor --- openpype/modules/python_console_interpreter/window/widgets.py | 2 ++ openpype/style/style.css | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/openpype/modules/python_console_interpreter/window/widgets.py b/openpype/modules/python_console_interpreter/window/widgets.py index 3f88dd9235..0a408a93da 100644 --- a/openpype/modules/python_console_interpreter/window/widgets.py +++ b/openpype/modules/python_console_interpreter/window/widgets.py @@ -74,6 +74,8 @@ class PythonCodeEditor(QtWidgets.QPlainTextEdit): def __init__(self, parent): super(PythonCodeEditor, self).__init__(parent) + self.setObjectName("PythonCodeEditor") + self._indent = 4 def _tab_shift_right(self): diff --git a/openpype/style/style.css b/openpype/style/style.css index 123bb2ee70..236c4e52ab 100644 --- a/openpype/style/style.css +++ b/openpype/style/style.css @@ -625,6 +625,6 @@ QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical { } /* Python console interpreter */ -#PythonInterpreterOutput { +#PythonInterpreterOutput, #PythonCodeEditor { font-family: "Roboto Mono"; } From 0f57451bdbcf748f009320beb4b4bb6e74616d00 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Sun, 15 Aug 2021 23:20:02 +0200 Subject: [PATCH 090/120] fix addin tab when only one item is available --- openpype/modules/python_console_interpreter/window/widgets.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/modules/python_console_interpreter/window/widgets.py b/openpype/modules/python_console_interpreter/window/widgets.py index 0a408a93da..7f53697019 100644 --- a/openpype/modules/python_console_interpreter/window/widgets.py +++ b/openpype/modules/python_console_interpreter/window/widgets.py @@ -476,7 +476,7 @@ class PythonInterpreterWidget(QtWidgets.QWidget): widget = PythonTabWidget(self) widget.before_execute.connect(self._on_before_execute) if index is None: - if self._tab_widget.count() > 1: + if self._tab_widget.count() > 0: index = self._tab_widget.currentIndex() + 1 else: index = 0 From 3df9c2cd561bb47b3d2563de0a4778bc08a3ee39 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Sun, 15 Aug 2021 23:26:43 +0200 Subject: [PATCH 091/120] made tabs a little bit more visible --- openpype/style/style.css | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/openpype/style/style.css b/openpype/style/style.css index 236c4e52ab..830ed85f9b 100644 --- a/openpype/style/style.css +++ b/openpype/style/style.css @@ -271,37 +271,38 @@ QTabWidget::tab-bar { } QTabBar::tab { - border-top-left-radius: 4px; - border-top-right-radius: 4px; padding: 5px; - + border-left: 3px solid transparent; + border-top: 1px solid {color:border}; + border-right: 1px solid {color:border}; + background: qlineargradient( + x1: 0, y1: 1, x2: 0, y2: 0, + stop: 0.5 {color:bg}, stop: 1.0 {color:bg-inputs} + ); } QTabBar::tab:selected { background: {color:grey-lighter}; - /* background: qradialgradient( - cx:0.5, cy:0.5, radius: 2, - fx:0.5, fy:1, - stop:0.3 {color:bg}, stop:1 white - ) */ - /* background: qlineargradient( - x1: 0, y1: 0, x2: 0, y2: 1, - stop: 0 {color:bg-inputs}, stop: 1.0 {color:bg} - ); */ + border-left: 3px solid {color:border-focus}; + background: qlineargradient( + x1: 0, y1: 1, x2: 0, y2: 0, + stop: 0.5 {color:bg}, stop: 1.0 {color:border} + ); } QTabBar::tab:!selected { - /* Make it smaller*/ - margin-top: 3px; background: {color:grey-light}; } QTabBar::tab:!selected:hover { background: {color:grey-lighter}; } - +QTabBar::tab:first { + border-left: 1px solid {color:border}; +} QTabBar::tab:first:selected { margin-left: 0; + border-left: 3px solid {color:border-focus}; } QTabBar::tab:last:selected { From 1ea25c66e4d26c5ad904705c9ec324b5547a7b55 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Sun, 15 Aug 2021 23:31:28 +0200 Subject: [PATCH 092/120] added openpype art to console --- .../window/widgets.py | 42 +++++++++++++++---- 1 file changed, 34 insertions(+), 8 deletions(-) diff --git a/openpype/modules/python_console_interpreter/window/widgets.py b/openpype/modules/python_console_interpreter/window/widgets.py index 7f53697019..b4941973b3 100644 --- a/openpype/modules/python_console_interpreter/window/widgets.py +++ b/openpype/modules/python_console_interpreter/window/widgets.py @@ -12,6 +12,25 @@ from openpype.style import load_stylesheet from openpype.lib import JSONSettingRegistry +openpype_art = """ + . . .. . .. + _oOOP3OPP3Op_. . + .PPpo~. .. ~2p. .. .... . . + .Ppo . .pPO3Op.. . O:. . . . + .3Pp . oP3'. 'P33. . 4 .. . . . .. . . . + .~OP 3PO. .Op3 : . .. _____ _____ _____ + .P3O . oP3oP3O3P' . . . . / /./ /./ / + O3:. O3p~ . .:. . ./____/./____/ /____/ + 'P . 3p3. oP3~. ..P:. . . .. . . .. . . . + . ': . Po' .Opo'. .3O. . o[ by Pype Club ]]]==- - - . . + . '_ .. . . _OP3.. . .https://openpype.io.. . + ~P3.OPPPO3OP~ . .. . + . ' '. . .. . . . .. . + + +""" + + class PythonInterpreterRegistry(JSONSettingRegistry): """Class handling OpenPype general settings registry. @@ -334,6 +353,8 @@ class PythonInterpreterWidget(QtWidgets.QWidget): self._tab_widget = tab_widget self._line_check_timer = line_check_timer + self._append_lines([openpype_art]) + self.setStyleSheet(load_stylesheet()) self.resize(self.default_width, self.default_height) @@ -425,18 +446,23 @@ class PythonInterpreterWidget(QtWidgets.QWidget): if self._tab_widget.count() == 1: self._tab_widget.setTabsClosable(False) + def _append_lines(self, lines): + at_max = self._output_widget.vertical_scroll_at_max() + tmp_cursor = QtGui.QTextCursor(self._output_widget.document()) + tmp_cursor.movePosition(QtGui.QTextCursor.End) + for line in lines: + tmp_cursor.insertText(line) + + if at_max: + self._output_widget.scroll_to_bottom() + def _on_timer_timeout(self): if self._stdout_err_wrapper.lines: - at_max = self._output_widget.vertical_scroll_at_max() - tmp_cursor = QtGui.QTextCursor(self._output_widget.document()) - tmp_cursor.movePosition(QtGui.QTextCursor.End) + lines = [] while self._stdout_err_wrapper.lines: line = self._stdout_err_wrapper.lines.popleft() - - tmp_cursor.insertText(self.ansi_escape.sub("", line)) - - if at_max: - self._output_widget.scroll_to_bottom() + lines.append(self.ansi_escape.sub("", line)) + self._append_lines(lines) def _on_add_clicked(self): dialog = TabNameDialog(self) From 868796553918ea385cadf96c81bbda3d7d0dcad2 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 16 Aug 2021 10:00:36 +0200 Subject: [PATCH 093/120] added more mouse events to tabs --- .../window/widgets.py | 78 ++++++++++++++++--- 1 file changed, 67 insertions(+), 11 deletions(-) diff --git a/openpype/modules/python_console_interpreter/window/widgets.py b/openpype/modules/python_console_interpreter/window/widgets.py index b4941973b3..975decf4f4 100644 --- a/openpype/modules/python_console_interpreter/window/widgets.py +++ b/openpype/modules/python_console_interpreter/window/widgets.py @@ -295,6 +295,34 @@ class OutputTextWidget(QtWidgets.QTextEdit): return v_scroll.setValue(v_scroll.maximum()) +class EnhancedTabBar(QtWidgets.QTabBar): + double_clicked = QtCore.Signal(QtCore.QPoint) + right_clicked = QtCore.Signal(QtCore.QPoint) + mid_clicked = QtCore.Signal(QtCore.QPoint) + + def __init__(self, parent): + super(EnhancedTabBar, self).__init__(parent) + + self.setDrawBase(False) + + def mouseDoubleClickEvent(self, event): + self.double_clicked.emit(event.globalPos()) + event.accept() + + def mouseReleaseEvent(self, event): + if event.button() == QtCore.Qt.RightButton: + self.right_clicked.emit(event.globalPos()) + event.accept() + return + + elif event.button() == QtCore.Qt.MidButton: + self.mid_clicked.emit(event.globalPos()) + event.accept() + + else: + super(EnhancedTabBar, self).mouseReleaseEvent(event) + + class PythonInterpreterWidget(QtWidgets.QWidget): default_width = 1000 default_height = 600 @@ -319,6 +347,8 @@ class PythonInterpreterWidget(QtWidgets.QWidget): output_widget.setTextInteractionFlags(QtCore.Qt.TextBrowserInteraction) tab_widget = QtWidgets.QTabWidget(self) + tab_bar = EnhancedTabBar(tab_widget) + tab_widget.setTabBar(tab_bar) tab_widget.setTabsClosable(False) tab_widget.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) @@ -342,9 +372,9 @@ class PythonInterpreterWidget(QtWidgets.QWidget): line_check_timer.timeout.connect(self._on_timer_timeout) add_tab_btn.clicked.connect(self._on_add_clicked) - tab_widget.customContextMenuRequested.connect( - self._on_tab_context_menu - ) + tab_bar.right_clicked.connect(self._on_tab_right_click) + tab_bar.double_clicked.connect(self._on_tab_double_click) + tab_bar.mid_clicked.connect(self._on_tab_mid_click) tab_widget.tabCloseRequested.connect(self._on_tab_close_req) self._widgets_splitter = widgets_splitter @@ -415,7 +445,8 @@ class PythonInterpreterWidget(QtWidgets.QWidget): setting_registry.set_item("tabs", tabs) - def _on_tab_context_menu(self, point): + def _on_tab_right_click(self, global_point): + point = self._tab_widget.mapFromGlobal(global_point) tab_bar = self._tab_widget.tabBar() tab_idx = tab_bar.tabAt(point) last_index = tab_bar.count() - 1 @@ -424,20 +455,45 @@ class PythonInterpreterWidget(QtWidgets.QWidget): menu = QtWidgets.QMenu(self._tab_widget) menu.addAction("Rename") - global_point = self._tab_widget.mapToGlobal(point) result = menu.exec_(global_point) if result is None: return if result.text() == "Rename": - dialog = TabNameDialog(self) - dialog.set_tab_name(self._tab_widget.tabText(tab_idx)) - dialog.exec_() - tab_name = dialog.result() - if tab_name: - self._tab_widget.setTabText(tab_idx, tab_name) + self._rename_tab_req(tab_idx) + + def _rename_tab_req(self, tab_idx): + dialog = TabNameDialog(self) + dialog.set_tab_name(self._tab_widget.tabText(tab_idx)) + dialog.exec_() + tab_name = dialog.result() + if tab_name: + self._tab_widget.setTabText(tab_idx, tab_name) + + def _on_tab_mid_click(self, global_point): + point = self._tab_widget.mapFromGlobal(global_point) + tab_bar = self._tab_widget.tabBar() + tab_idx = tab_bar.tabAt(point) + last_index = tab_bar.count() - 1 + if tab_idx < 0 or tab_idx > last_index: + return + + self._on_tab_close_req(tab_idx) + + def _on_tab_double_click(self, global_point): + point = self._tab_widget.mapFromGlobal(global_point) + tab_bar = self._tab_widget.tabBar() + tab_idx = tab_bar.tabAt(point) + last_index = tab_bar.count() - 1 + if tab_idx < 0 or tab_idx > last_index: + return + + self._rename_tab_req(tab_idx) def _on_tab_close_req(self, tab_index): + if self._tab_widget.count() == 1: + return + widget = self._tab_widget.widget(tab_index) if widget in self._tabs: self._tabs.remove(widget) From a5ef0ffedbbf904058031c2e7563d7091be0a7ac Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Mon, 16 Aug 2021 15:57:31 +0200 Subject: [PATCH 094/120] fix loggers without stream --- openpype/lib/log.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/openpype/lib/log.py b/openpype/lib/log.py index 39b6c67080..85cbc733ba 100644 --- a/openpype/lib/log.py +++ b/openpype/lib/log.py @@ -72,6 +72,8 @@ class PypeStreamHandler(logging.StreamHandler): msg = self.format(record) msg = Terminal.log(msg) stream = self.stream + if stream is None: + return fs = "%s\n" # if no unicode support... if not USE_UNICODE: From f28a1e484af17c514fec702768935837b23ce36c Mon Sep 17 00:00:00 2001 From: Ondrej Samohel Date: Tue, 17 Aug 2021 16:25:51 +0200 Subject: [PATCH 095/120] get assets from ref nodes --- openpype/tools/mayalookassigner/commands.py | 40 ++++++++++++--------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/openpype/tools/mayalookassigner/commands.py b/openpype/tools/mayalookassigner/commands.py index 2add5d3499..a53251cdef 100644 --- a/openpype/tools/mayalookassigner/commands.py +++ b/openpype/tools/mayalookassigner/commands.py @@ -103,12 +103,19 @@ def create_asset_id_hash(nodes): """ node_id_hash = defaultdict(list) for node in nodes: - value = lib.get_id(node) - if value is None: - continue + # iterate over content of reference node + if cmds.nodeType(node) == "reference": + ref_hashes = create_asset_id_hash( + cmds.referenceQuery(node, nodes=True)) + for asset_id, ref_nodes in ref_hashes.items(): + node_id_hash[asset_id] += ref_nodes + else: + value = lib.get_id(node) + if value is None: + continue - asset_id = value.split(":")[0] - node_id_hash[asset_id].append(node) + asset_id = value.split(":")[0] + node_id_hash[asset_id].append(node) return dict(node_id_hash) @@ -135,18 +142,19 @@ def create_items_from_nodes(nodes): id_hashes = create_asset_id_hash(nodes) # get ids from alembic - vray_proxy_nodes = cmds.ls(nodes, type="VRayProxy") - for vp in vray_proxy_nodes: - path = cmds.getAttr("{}.fileName".format(vp)) - ids = vray_proxies.get_alembic_ids_cache(path) - parent_id = {} - for k, _ in ids.items(): - pid = k.split(":")[0] - if not parent_id.get(pid): - parent_id.update({pid: [vp]}) + if cmds.pluginInfo('vrayformaya', query=True, loaded=True): + vray_proxy_nodes = cmds.ls(nodes, type="VRayProxy") + for vp in vray_proxy_nodes: + path = cmds.getAttr("{}.fileName".format(vp)) + ids = vray_proxies.get_alembic_ids_cache(path) + parent_id = {} + for k, _ in ids.items(): + pid = k.split(":")[0] + if not parent_id.get(pid): + parent_id.update({pid: [vp]}) - print("Adding ids from alembic {}".format(path)) - id_hashes.update(parent_id) + print("Adding ids from alembic {}".format(path)) + id_hashes.update(parent_id) if not id_hashes: return asset_view_items From 6181c4f6de46a74c0a1cf8bddfa9e3c559e00431 Mon Sep 17 00:00:00 2001 From: OpenPype Date: Tue, 17 Aug 2021 15:12:44 +0000 Subject: [PATCH 096/120] [Automated] Bump version --- CHANGELOG.md | 21 ++++++++------------- openpype/version.py | 2 +- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f25a1b63d..b4029086f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,12 @@ # Changelog -## [3.3.0-nightly.10](https://github.com/pypeclub/OpenPype/tree/HEAD) +## [3.3.0-nightly.11](https://github.com/pypeclub/OpenPype/tree/HEAD) [Full Changelog](https://github.com/pypeclub/OpenPype/compare/3.2.0...HEAD) **πŸš€ Enhancements** +- Python console interpreter [\#1940](https://github.com/pypeclub/OpenPype/pull/1940) - Global: Updated logos and Default settings [\#1927](https://github.com/pypeclub/OpenPype/pull/1927) - Check for missing ✨ Python when using `pyenv` [\#1925](https://github.com/pypeclub/OpenPype/pull/1925) - Maya: Scene patching 🩹on submission to Deadline [\#1923](https://github.com/pypeclub/OpenPype/pull/1923) @@ -26,11 +27,7 @@ - Local actions with process identifier [\#1867](https://github.com/pypeclub/OpenPype/pull/1867) - Workfile tool start at host launch support [\#1865](https://github.com/pypeclub/OpenPype/pull/1865) - Anatomy schema validation [\#1864](https://github.com/pypeclub/OpenPype/pull/1864) -- Ftrack prepare project structure [\#1861](https://github.com/pypeclub/OpenPype/pull/1861) - Maya: support for configurable `dirmap` πŸ—ΊοΈ [\#1859](https://github.com/pypeclub/OpenPype/pull/1859) -- Independent general environments [\#1853](https://github.com/pypeclub/OpenPype/pull/1853) -- TVPaint Start Frame [\#1844](https://github.com/pypeclub/OpenPype/pull/1844) -- Standalone Publish of textures family [\#1834](https://github.com/pypeclub/OpenPype/pull/1834) - Settings list can use template or schema as object type [\#1815](https://github.com/pypeclub/OpenPype/pull/1815) **πŸ› Bug fixes** @@ -41,6 +38,7 @@ - Nuke: submit to farm failed due `ftrack` family remove [\#1926](https://github.com/pypeclub/OpenPype/pull/1926) - Fix - validate takes repre\["files"\] as list all the time [\#1922](https://github.com/pypeclub/OpenPype/pull/1922) - standalone: validator asset parents [\#1917](https://github.com/pypeclub/OpenPype/pull/1917) +- Nuke: update video file crassing [\#1916](https://github.com/pypeclub/OpenPype/pull/1916) - Fix - texture validators for workfiles triggers only for textures workfiles [\#1914](https://github.com/pypeclub/OpenPype/pull/1914) - Settings UI: List order works as expected [\#1906](https://github.com/pypeclub/OpenPype/pull/1906) - Hiero: loaded clip was not set colorspace from version data [\#1904](https://github.com/pypeclub/OpenPype/pull/1904) @@ -51,15 +49,16 @@ - publisher: editorial plugins fixes [\#1889](https://github.com/pypeclub/OpenPype/pull/1889) - Normalize path returned from Workfiles. [\#1880](https://github.com/pypeclub/OpenPype/pull/1880) - Workfiles tool event arguments fix [\#1862](https://github.com/pypeclub/OpenPype/pull/1862) -- imageio: fix grouping [\#1856](https://github.com/pypeclub/OpenPype/pull/1856) -- Ftrack type error fix in sync to avalon event handler [\#1845](https://github.com/pypeclub/OpenPype/pull/1845) +- Maya: don't add reference members as connections to the container set πŸ“¦ [\#1855](https://github.com/pypeclub/OpenPype/pull/1855) - Settings error dialog on show [\#1798](https://github.com/pypeclub/OpenPype/pull/1798) **Merged pull requests:** - Fix - make AE workfile publish to Ftrack configurable [\#1937](https://github.com/pypeclub/OpenPype/pull/1937) - Settings UI: Breadcrumbs in settings [\#1932](https://github.com/pypeclub/OpenPype/pull/1932) +- Add support for multiple Deadline β˜ οΈβž– servers [\#1905](https://github.com/pypeclub/OpenPype/pull/1905) - Maya: add support for `RedshiftNormalMap` node, fix `tx` linear space πŸš€ [\#1863](https://github.com/pypeclub/OpenPype/pull/1863) +- Maya: expected files -\> render products βš™οΈ overhaul [\#1812](https://github.com/pypeclub/OpenPype/pull/1812) ## [3.2.0](https://github.com/pypeclub/OpenPype/tree/3.2.0) (2021-07-13) @@ -67,25 +66,21 @@ **πŸš€ Enhancements** +- Nuke: ftrack family plugin settings preset [\#1805](https://github.com/pypeclub/OpenPype/pull/1805) - Standalone publisher last project [\#1799](https://github.com/pypeclub/OpenPype/pull/1799) - Ftrack Multiple notes as server action [\#1795](https://github.com/pypeclub/OpenPype/pull/1795) -- Settings conditional dict [\#1777](https://github.com/pypeclub/OpenPype/pull/1777) -- Settings application use python 2 only where needed [\#1776](https://github.com/pypeclub/OpenPype/pull/1776) **πŸ› Bug fixes** +- Failsafe for cross project containers. [\#1806](https://github.com/pypeclub/OpenPype/pull/1806) - nuke: fixing wrong name of family folder when `used existing frames` [\#1803](https://github.com/pypeclub/OpenPype/pull/1803) - Collect ftrack family bugs [\#1801](https://github.com/pypeclub/OpenPype/pull/1801) - Invitee email can be None which break the Ftrack commit. [\#1788](https://github.com/pypeclub/OpenPype/pull/1788) - Fix: staging and `--use-version` option [\#1786](https://github.com/pypeclub/OpenPype/pull/1786) -- Otio unrelated error on import [\#1782](https://github.com/pypeclub/OpenPype/pull/1782) -- FFprobe streams order [\#1775](https://github.com/pypeclub/OpenPype/pull/1775) **Merged pull requests:** -- PS, AE - send actual context when another webserver is running [\#1811](https://github.com/pypeclub/OpenPype/pull/1811) - Build: don't add Poetry to `PATH` [\#1808](https://github.com/pypeclub/OpenPype/pull/1808) -- Bump prismjs from 1.23.0 to 1.24.0 in /website [\#1773](https://github.com/pypeclub/OpenPype/pull/1773) ## [2.18.4](https://github.com/pypeclub/OpenPype/tree/2.18.4) (2021-06-24) diff --git a/openpype/version.py b/openpype/version.py index f5c8081d61..803d70e954 100644 --- a/openpype/version.py +++ b/openpype/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- """Package declaring Pype version.""" -__version__ = "3.3.0-nightly.10" +__version__ = "3.3.0-nightly.11" From b37046c8bfa62ed25dd64a48961e05398c4be441 Mon Sep 17 00:00:00 2001 From: Milan Kolar Date: Tue, 17 Aug 2021 17:18:39 +0200 Subject: [PATCH 097/120] bump avalon-core --- repos/avalon-core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/repos/avalon-core b/repos/avalon-core index e5c8a15fde..82d5b8137e 160000 --- a/repos/avalon-core +++ b/repos/avalon-core @@ -1 +1 @@ -Subproject commit e5c8a15fde77708c924eab3018bda255f17b5390 +Subproject commit 82d5b8137eea3b49d4781a4af51d7f375bb9f628 From aab548d255982e8c8c033f2419adc1bdc31a1b42 Mon Sep 17 00:00:00 2001 From: Jakub Jezek Date: Tue, 17 Aug 2021 17:27:07 +0200 Subject: [PATCH 098/120] standalone: editorial shared object problem --- .../plugins/publish/collect_editorial_instances.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/openpype/hosts/standalonepublisher/plugins/publish/collect_editorial_instances.py b/openpype/hosts/standalonepublisher/plugins/publish/collect_editorial_instances.py index 3a9a7a3445..45c6a264dd 100644 --- a/openpype/hosts/standalonepublisher/plugins/publish/collect_editorial_instances.py +++ b/openpype/hosts/standalonepublisher/plugins/publish/collect_editorial_instances.py @@ -2,7 +2,7 @@ import os import opentimelineio as otio import pyblish.api from openpype import lib as plib - +from copy import deepcopy class CollectInstances(pyblish.api.InstancePlugin): """Collect instances from editorial's OTIO sequence""" @@ -186,8 +186,8 @@ class CollectInstances(pyblish.api.InstancePlugin): properities.pop("version") # adding Review-able instance - subset_instance_data = instance_data.copy() - subset_instance_data.update(properities) + subset_instance_data = deepcopy(instance_data) + subset_instance_data.update(deepcopy(properities)) subset_instance_data.update({ # unique attributes "name": f"{name}_{subset}", From 1ad70f43c74344bf2fc859427c113b66e20d1ae4 Mon Sep 17 00:00:00 2001 From: OpenPype Date: Tue, 17 Aug 2021 15:46:07 +0000 Subject: [PATCH 099/120] [Automated] Release --- CHANGELOG.md | 5 ++--- openpype/version.py | 2 +- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b4029086f0..f78a492c70 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,8 @@ # Changelog -## [3.3.0-nightly.11](https://github.com/pypeclub/OpenPype/tree/HEAD) +## [3.3.0](https://github.com/pypeclub/OpenPype/tree/3.3.0) (2021-08-17) -[Full Changelog](https://github.com/pypeclub/OpenPype/compare/3.2.0...HEAD) +[Full Changelog](https://github.com/pypeclub/OpenPype/compare/3.2.0...3.3.0) **πŸš€ Enhancements** @@ -72,7 +72,6 @@ **πŸ› Bug fixes** -- Failsafe for cross project containers. [\#1806](https://github.com/pypeclub/OpenPype/pull/1806) - nuke: fixing wrong name of family folder when `used existing frames` [\#1803](https://github.com/pypeclub/OpenPype/pull/1803) - Collect ftrack family bugs [\#1801](https://github.com/pypeclub/OpenPype/pull/1801) - Invitee email can be None which break the Ftrack commit. [\#1788](https://github.com/pypeclub/OpenPype/pull/1788) diff --git a/openpype/version.py b/openpype/version.py index 803d70e954..8dc277b38a 100644 --- a/openpype/version.py +++ b/openpype/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- """Package declaring Pype version.""" -__version__ = "3.3.0-nightly.11" +__version__ = "3.3.0" From 8d69c751d8a41497859131d080ed40bc02d0de93 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 18 Aug 2021 13:40:46 +0200 Subject: [PATCH 100/120] use project settings only if menu is not passed --- openpype/hosts/maya/api/menu.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/openpype/hosts/maya/api/menu.py b/openpype/hosts/maya/api/menu.py index 0dced48868..888cd78be1 100644 --- a/openpype/hosts/maya/api/menu.py +++ b/openpype/hosts/maya/api/menu.py @@ -16,12 +16,10 @@ log = logging.getLogger(__name__) def _get_menu(menu_name=None): """Return the menu instance if it currently exists in Maya""" - - project_settings = get_project_settings(os.getenv("AVALON_PROJECT")) - _menu = project_settings["maya"]["scriptsmenu"]["name"] - if menu_name is None: - menu_name = _menu + project_settings = get_project_settings(os.getenv("AVALON_PROJECT")) + menu_name = project_settings["maya"]["scriptsmenu"]["name"] + widgets = dict(( w.objectName(), w) for w in QtWidgets.QApplication.allWidgets()) menu = widgets.get(menu_name) From c34f96b9b4ed5268b31b1d283c99c8981598dcd8 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 18 Aug 2021 13:41:05 +0200 Subject: [PATCH 101/120] added back workfiles tool replacement --- openpype/hosts/maya/api/menu.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/openpype/hosts/maya/api/menu.py b/openpype/hosts/maya/api/menu.py index 888cd78be1..f95918e070 100644 --- a/openpype/hosts/maya/api/menu.py +++ b/openpype/hosts/maya/api/menu.py @@ -56,6 +56,34 @@ def deferred(): parent=pipeline._parent ) + # Find the pipeline menu + top_menu = _get_menu(pipeline._menu) + + # Try to find workfile tool action in the menu + workfile_action = None + for action in top_menu.actions(): + if action.text() == "Work Files": + workfile_action = action + break + + # Add at the top of menu if "Work Files" action was not found + after_action = "" + if workfile_action: + # Use action's object name for `insertAfter` argument + after_action = workfile_action.objectName() + + # Insert action to menu + cmds.menuItem( + "Work Files", + parent=pipeline._menu, + command=launch_workfiles_app, + insertAfter=after_action + ) + + # Remove replaced action + if workfile_action: + top_menu.removeAction(workfile_action) + log.info("Attempting to install scripts menu ...") add_build_workfiles_item() From df21d988895212ef0bc058c2db7ed2a3a08ec716 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 18 Aug 2021 13:41:18 +0200 Subject: [PATCH 102/120] remove project manager action --- openpype/hosts/maya/api/menu.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/openpype/hosts/maya/api/menu.py b/openpype/hosts/maya/api/menu.py index f95918e070..b1f6adbd5e 100644 --- a/openpype/hosts/maya/api/menu.py +++ b/openpype/hosts/maya/api/menu.py @@ -84,11 +84,36 @@ def deferred(): if workfile_action: top_menu.removeAction(workfile_action) + def remove_project_manager(): + top_menu = _get_menu(pipeline._menu) + + # Try to find workfile tool action in the menu + system_menu = None + for action in top_menu.actions(): + if action.text() == "System": + system_menu = action + break + + if system_menu is None: + return + + project_manager_action = None + for action in system_menu.menu().children(): + if hasattr(action, "text"): + print(action.text()) + if action.text() == "Project Manager": + project_manager_action = action + break + + if project_manager_action is not None: + system_menu.menu().removeAction(project_manager_action) + log.info("Attempting to install scripts menu ...") add_build_workfiles_item() add_look_assigner_item() modify_workfiles() + remove_project_manager() try: import scriptsmenu.launchformaya as launchformaya From df836474ff6f6bd3ef25cced8e4a5e7dc74ae469 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 18 Aug 2021 13:58:30 +0200 Subject: [PATCH 103/120] do not uninstall on install --- openpype/hosts/maya/api/menu.py | 1 - 1 file changed, 1 deletion(-) diff --git a/openpype/hosts/maya/api/menu.py b/openpype/hosts/maya/api/menu.py index b1f6adbd5e..58a9c54923 100644 --- a/openpype/hosts/maya/api/menu.py +++ b/openpype/hosts/maya/api/menu.py @@ -161,7 +161,6 @@ def install(): log.info("Skipping openpype.menu initialization in batch mode..") return - uninstall() # Allow time for uninstallation to finish. cmds.evalDeferred(deferred) From 14e40a2bca80904e6d12e5d35a723a66041da973 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 18 Aug 2021 14:00:52 +0200 Subject: [PATCH 104/120] don't use settings in `_get_menu` --- openpype/hosts/maya/api/menu.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/openpype/hosts/maya/api/menu.py b/openpype/hosts/maya/api/menu.py index 58a9c54923..939c6f9c82 100644 --- a/openpype/hosts/maya/api/menu.py +++ b/openpype/hosts/maya/api/menu.py @@ -17,8 +17,7 @@ log = logging.getLogger(__name__) def _get_menu(menu_name=None): """Return the menu instance if it currently exists in Maya""" if menu_name is None: - project_settings = get_project_settings(os.getenv("AVALON_PROJECT")) - menu_name = project_settings["maya"]["scriptsmenu"]["name"] + menu_name = pipeline._menu widgets = dict(( w.objectName(), w) for w in QtWidgets.QApplication.allWidgets()) @@ -57,7 +56,7 @@ def deferred(): ) # Find the pipeline menu - top_menu = _get_menu(pipeline._menu) + top_menu = _get_menu() # Try to find workfile tool action in the menu workfile_action = None @@ -85,7 +84,7 @@ def deferred(): top_menu.removeAction(workfile_action) def remove_project_manager(): - top_menu = _get_menu(pipeline._menu) + top_menu = _get_menu() # Try to find workfile tool action in the menu system_menu = None From 0e0d06b2684c7ef9bf5d75a7cadf0eb5610ec4d0 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Wed, 18 Aug 2021 14:01:01 +0200 Subject: [PATCH 105/120] simplified conditions --- openpype/hosts/maya/api/menu.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/openpype/hosts/maya/api/menu.py b/openpype/hosts/maya/api/menu.py index 939c6f9c82..6811887e87 100644 --- a/openpype/hosts/maya/api/menu.py +++ b/openpype/hosts/maya/api/menu.py @@ -98,11 +98,9 @@ def deferred(): project_manager_action = None for action in system_menu.menu().children(): - if hasattr(action, "text"): - print(action.text()) - if action.text() == "Project Manager": - project_manager_action = action - break + if hasattr(action, "text") and action.text() == "Project Manager": + project_manager_action = action + break if project_manager_action is not None: system_menu.menu().removeAction(project_manager_action) From cf3cc7a0a00c140802810d1bef336859bb0bbdf6 Mon Sep 17 00:00:00 2001 From: Milan Kolar Date: Wed, 18 Aug 2021 17:26:21 +0200 Subject: [PATCH 106/120] add maya ascii xgen export --- openpype/hosts/maya/plugins/create/create_xgen.py | 11 +++++++++++ openpype/hosts/maya/plugins/load/load_reference.py | 3 ++- .../maya/plugins/publish/extract_maya_scene_raw.py | 3 ++- .../hosts/maya/plugins/publish/extract_pointcache.py | 3 ++- openpype/plugins/publish/integrate_new.py | 3 ++- 5 files changed, 19 insertions(+), 4 deletions(-) create mode 100644 openpype/hosts/maya/plugins/create/create_xgen.py diff --git a/openpype/hosts/maya/plugins/create/create_xgen.py b/openpype/hosts/maya/plugins/create/create_xgen.py new file mode 100644 index 0000000000..3953972952 --- /dev/null +++ b/openpype/hosts/maya/plugins/create/create_xgen.py @@ -0,0 +1,11 @@ +from openpype.hosts.maya.api import plugin + + +class CreateXgen(plugin.Creator): + """Xgen interactive export""" + + name = "xgen" + label = "Xgen Interactive" + family = "xgen" + icon = "pagelines" + defaults = ['Main'] diff --git a/openpype/hosts/maya/plugins/load/load_reference.py b/openpype/hosts/maya/plugins/load/load_reference.py index 96269f2771..d5952ed267 100644 --- a/openpype/hosts/maya/plugins/load/load_reference.py +++ b/openpype/hosts/maya/plugins/load/load_reference.py @@ -17,7 +17,8 @@ class ReferenceLoader(openpype.hosts.maya.api.plugin.ReferenceLoader): "layout", "camera", "rig", - "camerarig"] + "camerarig", + "xgen"] representations = ["ma", "abc", "fbx", "mb"] label = "Reference" diff --git a/openpype/hosts/maya/plugins/publish/extract_maya_scene_raw.py b/openpype/hosts/maya/plugins/publish/extract_maya_scene_raw.py index c85bc0387d..3c2b70900d 100644 --- a/openpype/hosts/maya/plugins/publish/extract_maya_scene_raw.py +++ b/openpype/hosts/maya/plugins/publish/extract_maya_scene_raw.py @@ -19,7 +19,8 @@ class ExtractMayaSceneRaw(openpype.api.Extractor): families = ["mayaAscii", "setdress", "layout", - "camerarig"] + "camerarig", + "xgen"] scene_type = "ma" def process(self, instance): diff --git a/openpype/hosts/maya/plugins/publish/extract_pointcache.py b/openpype/hosts/maya/plugins/publish/extract_pointcache.py index ba716c0d18..5595ab001f 100644 --- a/openpype/hosts/maya/plugins/publish/extract_pointcache.py +++ b/openpype/hosts/maya/plugins/publish/extract_pointcache.py @@ -19,7 +19,8 @@ class ExtractAlembic(openpype.api.Extractor): hosts = ["maya"] families = ["pointcache", "model", - "vrayproxy"] + "vrayproxy", + "xgen"] def process(self, instance): diff --git a/openpype/plugins/publish/integrate_new.py b/openpype/plugins/publish/integrate_new.py index 3504206fe1..67e9f9ca19 100644 --- a/openpype/plugins/publish/integrate_new.py +++ b/openpype/plugins/publish/integrate_new.py @@ -97,7 +97,8 @@ class IntegrateAssetNew(pyblish.api.InstancePlugin): "background", "camerarig", "redshiftproxy", - "effect" + "effect", + "xgen" ] exclude_families = ["clip"] db_representation_context_keys = [ From 0aa35cc18b74764d6490340d5f8d13643c55ae77 Mon Sep 17 00:00:00 2001 From: Milan Kolar Date: Wed, 18 Aug 2021 18:14:42 +0200 Subject: [PATCH 107/120] export grooms to alembic curves --- .../plugins/publish/extract_pointcache.py | 3 +- .../plugins/publish/extract_xgen_cache.py | 69 +++++++++++++++++++ 2 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 openpype/hosts/maya/plugins/publish/extract_xgen_cache.py diff --git a/openpype/hosts/maya/plugins/publish/extract_pointcache.py b/openpype/hosts/maya/plugins/publish/extract_pointcache.py index 5595ab001f..ba716c0d18 100644 --- a/openpype/hosts/maya/plugins/publish/extract_pointcache.py +++ b/openpype/hosts/maya/plugins/publish/extract_pointcache.py @@ -19,8 +19,7 @@ class ExtractAlembic(openpype.api.Extractor): hosts = ["maya"] families = ["pointcache", "model", - "vrayproxy", - "xgen"] + "vrayproxy"] def process(self, instance): diff --git a/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py b/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py new file mode 100644 index 0000000000..a0bfca902c --- /dev/null +++ b/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py @@ -0,0 +1,69 @@ +import os + +from maya import cmds + +import avalon.maya +import openpype.api +from openpype.hosts.maya.api.lib import extract_alembic + + +class ExtractXgenCache(openpype.api.Extractor): + """Produce an alembic of just xgen interactive groom + + """ + + label = "Extract Xgen Cache" + hosts = ["maya"] + families = ["xgen"] + + def process(self, instance): + + # Collect the out set nodes + out_descriptions = [node for node in instance if cmds.nodeType(node) == "xgmSplineDescription"] + + self.log.info(out_descriptions) + + out_description = out_descriptions[0] + self.log.info(out_description) + + # Include all descendants + # nodes = roots + cmds.listRelatives(roots, + # allDescendents=True, + # fullPath=True) or [] + + # Collect the start and end including handles + # start = instance.data["frameStart"] + # end = instance.data["frameEnd"] + start = 1 + end = 1 + # handles = instance.data.get("handles", 0) or 0 + # if handles: + # start -= handles + # end += handles + + self.log.info("Extracting Xgen Cache..") + dirname = self.staging_dir(instance) + + parent_dir = self.staging_dir(instance) + filename = "{name}.abc".format(**instance.data) + path = os.path.join(parent_dir, filename) + + with avalon.maya.suspended_refresh(): + with avalon.maya.maintained_selection(): + command = ('-file ' + path + ' -df "ogawa" -fr ' + str(start) + ' ' + str(end) + ' -step 1 -mxf -wfw') + for desc in out_descriptions: + command += (" -obj " + desc) + cmds.xgmSplineCache(export=True, j=command) + + if "representations" not in instance.data: + instance.data["representations"] = [] + + representation = { + 'name': 'abc', + 'ext': 'abc', + 'files': filename, + "stagingDir": dirname, + } + instance.data["representations"].append(representation) + + self.log.info("Extracted {} to {}".format(instance, dirname)) From 07ebf273c13768fe4f4b968e0211a090118d7556 Mon Sep 17 00:00:00 2001 From: Milan Kolar Date: Wed, 18 Aug 2021 18:21:33 +0200 Subject: [PATCH 108/120] format command --- .../hosts/maya/plugins/publish/extract_xgen_cache.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py b/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py index a0bfca902c..acea7fa382 100644 --- a/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py +++ b/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py @@ -50,7 +50,15 @@ class ExtractXgenCache(openpype.api.Extractor): with avalon.maya.suspended_refresh(): with avalon.maya.maintained_selection(): - command = ('-file ' + path + ' -df "ogawa" -fr ' + str(start) + ' ' + str(end) + ' -step 1 -mxf -wfw') + command = ( + '-file ' + + path + + ' -df "ogawa" -fr ' + + str(start) + + ' ' + + str(end) + + ' -step 1 -mxf -wfw' + ) for desc in out_descriptions: command += (" -obj " + desc) cmds.xgmSplineCache(export=True, j=command) From 126a874420959f9d1fd8787ae2756892f8b56239 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 19 Aug 2021 11:01:49 +0200 Subject: [PATCH 109/120] fixed comments in remove project action --- openpype/hosts/maya/api/menu.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/openpype/hosts/maya/api/menu.py b/openpype/hosts/maya/api/menu.py index 6811887e87..ad225dcd28 100644 --- a/openpype/hosts/maya/api/menu.py +++ b/openpype/hosts/maya/api/menu.py @@ -86,7 +86,7 @@ def deferred(): def remove_project_manager(): top_menu = _get_menu() - # Try to find workfile tool action in the menu + # Try to find "System" menu action in the menu system_menu = None for action in top_menu.actions(): if action.text() == "System": @@ -96,12 +96,14 @@ def deferred(): if system_menu is None: return + # Try to find "Project manager" action in "System" menu project_manager_action = None for action in system_menu.menu().children(): if hasattr(action, "text") and action.text() == "Project Manager": project_manager_action = action break + # Remove "Project manager" action if was found if project_manager_action is not None: system_menu.menu().removeAction(project_manager_action) From 559cd6a0b723dba94389da3ed1e3d145e68e488a Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 19 Aug 2021 13:10:01 +0200 Subject: [PATCH 110/120] set start frame to 0 before rendering --- .../hosts/tvpaint/plugins/publish/extract_sequence.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/openpype/hosts/tvpaint/plugins/publish/extract_sequence.py b/openpype/hosts/tvpaint/plugins/publish/extract_sequence.py index 1df7512588..00a0bd49f5 100644 --- a/openpype/hosts/tvpaint/plugins/publish/extract_sequence.py +++ b/openpype/hosts/tvpaint/plugins/publish/extract_sequence.py @@ -50,12 +50,12 @@ class ExtractSequence(pyblish.api.Extractor): mark_in = instance.context.data["sceneMarkIn"] mark_out = instance.context.data["sceneMarkOut"] - # Scene start frame offsets the output files, so we need to offset the - # marks. + # Change scene Start Frame to 0 to prevend frame index issues + # - issue is that TVPaint versions deal with frame indexes in a + # different way + # It should be set back after rendering scene_start_frame = instance.context.data["sceneStartFrame"] - difference = scene_start_frame - mark_in - mark_in += difference - mark_out += difference + lib.execute_george("tv_startframe 0") # Frame start/end may be stored as float frame_start = int(instance.data["frameStart"]) From 5837607c7c5a1ddbd3ad1c01f849228ae689a59e Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 19 Aug 2021 13:10:15 +0200 Subject: [PATCH 111/120] set frame index back to previous values when rendering is done --- openpype/hosts/tvpaint/plugins/publish/extract_sequence.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/openpype/hosts/tvpaint/plugins/publish/extract_sequence.py b/openpype/hosts/tvpaint/plugins/publish/extract_sequence.py index 00a0bd49f5..84017c50f3 100644 --- a/openpype/hosts/tvpaint/plugins/publish/extract_sequence.py +++ b/openpype/hosts/tvpaint/plugins/publish/extract_sequence.py @@ -145,6 +145,9 @@ class ExtractSequence(pyblish.api.Extractor): filtered_layers ) + # Change scene frame Start back + lib.execute_george("tv_startframe {}".format(scene_start_frame)) + # Sequence of one frame if not output_filenames: self.log.warning("Extractor did not create any output.") From 0f13afedfc9b6a58e7d7b8108770947aa2497b02 Mon Sep 17 00:00:00 2001 From: iLLiCiTiT Date: Thu, 19 Aug 2021 13:18:31 +0200 Subject: [PATCH 112/120] modified comments --- .../hosts/tvpaint/plugins/publish/extract_sequence.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/openpype/hosts/tvpaint/plugins/publish/extract_sequence.py b/openpype/hosts/tvpaint/plugins/publish/extract_sequence.py index 84017c50f3..36f0b0c954 100644 --- a/openpype/hosts/tvpaint/plugins/publish/extract_sequence.py +++ b/openpype/hosts/tvpaint/plugins/publish/extract_sequence.py @@ -50,10 +50,10 @@ class ExtractSequence(pyblish.api.Extractor): mark_in = instance.context.data["sceneMarkIn"] mark_out = instance.context.data["sceneMarkOut"] - # Change scene Start Frame to 0 to prevend frame index issues + # Change scene Start Frame to 0 to prevent frame index issues # - issue is that TVPaint versions deal with frame indexes in a - # different way - # It should be set back after rendering + # different way when Start Frame is not `0` + # NOTE It will be set back after rendering scene_start_frame = instance.context.data["sceneStartFrame"] lib.execute_george("tv_startframe 0") @@ -145,7 +145,7 @@ class ExtractSequence(pyblish.api.Extractor): filtered_layers ) - # Change scene frame Start back + # Change scene frame Start back to previous value lib.execute_george("tv_startframe {}".format(scene_start_frame)) # Sequence of one frame From 3a8fe722f2da2b276137bc58544c9c63e4f45b5b Mon Sep 17 00:00:00 2001 From: Milan Kolar Date: Thu, 19 Aug 2021 14:42:00 +0200 Subject: [PATCH 113/120] add simple xgen docs --- website/docs/artist_hosts_maya.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/website/docs/artist_hosts_maya.md b/website/docs/artist_hosts_maya.md index 6fbd59ae1e..2b31de37ce 100644 --- a/website/docs/artist_hosts_maya.md +++ b/website/docs/artist_hosts_maya.md @@ -701,6 +701,27 @@ under `input_SET`). This mechanism uses *cbId* attribute on those shapes. If match is found shapes are connected using their `outMesh` and `outMesh`. Thus you can easily connect existing animation to loaded rig. ::: +## Working with Xgen in OpenPype + +OpenPype support publishing and loading of Xgen interactive grooms. You can publish +them as mayaAscii files with scalps that can be loaded into another maya scene, or as +alembic caches. + +### Publishing Xgen Grooms + +To prepare xgen for publishing just select all the descriptions that should be published together and the create Xgen Subset in the scene using - **OpenPype menu** β†’ **Create**... and select **Xgen Interactive**. Leave Use selection checked. + +For actual publishing of your groom to go **OpenPype β†’ Publish** and then press β–Ά to publish. This will export `.ma` file containing your grooms with any geometries they are attached to and also a baked cache in `.abc` format + + +### Loading Xgen + +You can use published xgens by loading them using OpenPype Publisher. You can choose to reference or import xgen. We don't have any automatic mesh linking at the moment and it is expected, that groom is published with a scalp, that can then be manually attached to your animated mesh for example. + +The alembic representation can be loaded too and it contains the groom converted to curves. Keep in mind that the density of the alembic directly depends on your viewport xgen density at the point of export. + + + ## Using Redshift Proxies OpenPype supports working with Redshift Proxy files. You can create Redshift Proxy from almost From 4b71f21d6063b344f67b8edca70749a0b217eb32 Mon Sep 17 00:00:00 2001 From: Milan Kolar Date: Thu, 19 Aug 2021 15:06:13 +0200 Subject: [PATCH 114/120] add tip --- website/docs/artist_hosts_maya.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/website/docs/artist_hosts_maya.md b/website/docs/artist_hosts_maya.md index 2b31de37ce..6387da4adc 100644 --- a/website/docs/artist_hosts_maya.md +++ b/website/docs/artist_hosts_maya.md @@ -714,6 +714,11 @@ To prepare xgen for publishing just select all the descriptions that should be p For actual publishing of your groom to go **OpenPype β†’ Publish** and then press β–Ά to publish. This will export `.ma` file containing your grooms with any geometries they are attached to and also a baked cache in `.abc` format +:::tip adding more descriptions +You can add multiple xgen desctiption into the subset you are about to publish, simply by +adding them to the maya set that was created for you. Please make sure that only xgen description nodes are present inside of the set and not the scalp geometry. +::: + ### Loading Xgen You can use published xgens by loading them using OpenPype Publisher. You can choose to reference or import xgen. We don't have any automatic mesh linking at the moment and it is expected, that groom is published with a scalp, that can then be manually attached to your animated mesh for example. From d5691b884dc2790c0c566b79805bc4d8dd7eb922 Mon Sep 17 00:00:00 2001 From: Milan Kolar Date: Thu, 19 Aug 2021 15:10:11 +0200 Subject: [PATCH 115/120] remove trailing whitespace --- .../hosts/maya/plugins/publish/extract_xgen_cache.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py b/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py index acea7fa382..a294920fcb 100644 --- a/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py +++ b/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py @@ -51,11 +51,11 @@ class ExtractXgenCache(openpype.api.Extractor): with avalon.maya.suspended_refresh(): with avalon.maya.maintained_selection(): command = ( - '-file ' - + path - + ' -df "ogawa" -fr ' - + str(start) - + ' ' + '-file ' + + path + + ' -df "ogawa" -fr ' + + str(start) + + ' ' + str(end) + ' -step 1 -mxf -wfw' ) From 66f00827419a454d39ea2e73872c266ac12f5a1c Mon Sep 17 00:00:00 2001 From: Milan Kolar Date: Thu, 19 Aug 2021 15:13:55 +0200 Subject: [PATCH 116/120] cleanup --- .../plugins/publish/extract_xgen_cache.py | 21 ++----------------- 1 file changed, 2 insertions(+), 19 deletions(-) diff --git a/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py b/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py index a294920fcb..77f1056e8f 100644 --- a/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py +++ b/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py @@ -4,7 +4,6 @@ from maya import cmds import avalon.maya import openpype.api -from openpype.hosts.maya.api.lib import extract_alembic class ExtractXgenCache(openpype.api.Extractor): @@ -19,27 +18,11 @@ class ExtractXgenCache(openpype.api.Extractor): def process(self, instance): # Collect the out set nodes - out_descriptions = [node for node in instance if cmds.nodeType(node) == "xgmSplineDescription"] + out_descriptions = [(node for node in instance + if cmds.nodeType(node) == "xgmSplineDescription")] - self.log.info(out_descriptions) - - out_description = out_descriptions[0] - self.log.info(out_description) - - # Include all descendants - # nodes = roots + cmds.listRelatives(roots, - # allDescendents=True, - # fullPath=True) or [] - - # Collect the start and end including handles - # start = instance.data["frameStart"] - # end = instance.data["frameEnd"] start = 1 end = 1 - # handles = instance.data.get("handles", 0) or 0 - # if handles: - # start -= handles - # end += handles self.log.info("Extracting Xgen Cache..") dirname = self.staging_dir(instance) From b13c5ed60a69715f624fd8ed422c65f642b6c943 Mon Sep 17 00:00:00 2001 From: Milan Kolar Date: Thu, 19 Aug 2021 15:29:45 +0200 Subject: [PATCH 117/120] set abc cache export as optional --- openpype/hosts/maya/plugins/publish/extract_xgen_cache.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py b/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py index 77f1056e8f..e0e4847625 100644 --- a/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py +++ b/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py @@ -11,9 +11,10 @@ class ExtractXgenCache(openpype.api.Extractor): """ - label = "Extract Xgen Cache" + label = "Extract Xgen ABC Cache" hosts = ["maya"] families = ["xgen"] + optional = true def process(self, instance): From a37c85341a03604d78c8209594d58dba6fd71f9f Mon Sep 17 00:00:00 2001 From: Milan Kolar Date: Thu, 19 Aug 2021 16:43:21 +0200 Subject: [PATCH 118/120] Update openpype/hosts/maya/plugins/publish/extract_xgen_cache.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: OndΕ™ej Samohel <33513211+antirotor@users.noreply.github.com> --- openpype/hosts/maya/plugins/publish/extract_xgen_cache.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py b/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py index e0e4847625..b15c9decc2 100644 --- a/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py +++ b/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py @@ -14,7 +14,7 @@ class ExtractXgenCache(openpype.api.Extractor): label = "Extract Xgen ABC Cache" hosts = ["maya"] families = ["xgen"] - optional = true + optional = True def process(self, instance): From f3d7e02555426d25d53d544651c9730fdbe0ca41 Mon Sep 17 00:00:00 2001 From: Milan Kolar Date: Thu, 19 Aug 2021 16:43:44 +0200 Subject: [PATCH 119/120] Update openpype/hosts/maya/plugins/publish/extract_xgen_cache.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: OndΕ™ej Samohel <33513211+antirotor@users.noreply.github.com> --- openpype/hosts/maya/plugins/publish/extract_xgen_cache.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py b/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py index b15c9decc2..d69911c404 100644 --- a/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py +++ b/openpype/hosts/maya/plugins/publish/extract_xgen_cache.py @@ -19,8 +19,8 @@ class ExtractXgenCache(openpype.api.Extractor): def process(self, instance): # Collect the out set nodes - out_descriptions = [(node for node in instance - if cmds.nodeType(node) == "xgmSplineDescription")] + out_descriptions = [node for node in instance + if cmds.nodeType(node) == "xgmSplineDescription"] start = 1 end = 1 From 1a2b760580dff7412042eebe94292f82602e5114 Mon Sep 17 00:00:00 2001 From: OpenPype Date: Thu, 19 Aug 2021 14:52:53 +0000 Subject: [PATCH 120/120] [Automated] Bump version --- CHANGELOG.md | 17 +++++++++++++---- openpype/version.py | 2 +- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f78a492c70..ef4ddeeb59 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,19 @@ # Changelog +## [3.3.1-nightly.1](https://github.com/pypeclub/OpenPype/tree/HEAD) + +[Full Changelog](https://github.com/pypeclub/OpenPype/compare/3.3.0...HEAD) + +**πŸ› Bug fixes** + +- TVPaint: Fixed rendered frame indexes [\#1946](https://github.com/pypeclub/OpenPype/pull/1946) +- Maya: Menu actions fix [\#1945](https://github.com/pypeclub/OpenPype/pull/1945) +- standalone: editorial shared object problem [\#1941](https://github.com/pypeclub/OpenPype/pull/1941) +- Bugfix nuke deadline app name [\#1928](https://github.com/pypeclub/OpenPype/pull/1928) + ## [3.3.0](https://github.com/pypeclub/OpenPype/tree/3.3.0) (2021-08-17) -[Full Changelog](https://github.com/pypeclub/OpenPype/compare/3.2.0...3.3.0) +[Full Changelog](https://github.com/pypeclub/OpenPype/compare/CI/3.3.0-nightly.11...3.3.0) **πŸš€ Enhancements** @@ -26,7 +37,6 @@ - Filter hosts in settings host-enum [\#1868](https://github.com/pypeclub/OpenPype/pull/1868) - Local actions with process identifier [\#1867](https://github.com/pypeclub/OpenPype/pull/1867) - Workfile tool start at host launch support [\#1865](https://github.com/pypeclub/OpenPype/pull/1865) -- Anatomy schema validation [\#1864](https://github.com/pypeclub/OpenPype/pull/1864) - Maya: support for configurable `dirmap` πŸ—ΊοΈ [\#1859](https://github.com/pypeclub/OpenPype/pull/1859) - Settings list can use template or schema as object type [\#1815](https://github.com/pypeclub/OpenPype/pull/1815) @@ -40,6 +50,7 @@ - standalone: validator asset parents [\#1917](https://github.com/pypeclub/OpenPype/pull/1917) - Nuke: update video file crassing [\#1916](https://github.com/pypeclub/OpenPype/pull/1916) - Fix - texture validators for workfiles triggers only for textures workfiles [\#1914](https://github.com/pypeclub/OpenPype/pull/1914) +- Fix - validators for textures workfiles trigger only for textures workfiles [\#1913](https://github.com/pypeclub/OpenPype/pull/1913) - Settings UI: List order works as expected [\#1906](https://github.com/pypeclub/OpenPype/pull/1906) - Hiero: loaded clip was not set colorspace from version data [\#1904](https://github.com/pypeclub/OpenPype/pull/1904) - Pyblish UI: Fix collecting stage processing [\#1903](https://github.com/pypeclub/OpenPype/pull/1903) @@ -74,8 +85,6 @@ - nuke: fixing wrong name of family folder when `used existing frames` [\#1803](https://github.com/pypeclub/OpenPype/pull/1803) - Collect ftrack family bugs [\#1801](https://github.com/pypeclub/OpenPype/pull/1801) -- Invitee email can be None which break the Ftrack commit. [\#1788](https://github.com/pypeclub/OpenPype/pull/1788) -- Fix: staging and `--use-version` option [\#1786](https://github.com/pypeclub/OpenPype/pull/1786) **Merged pull requests:** diff --git a/openpype/version.py b/openpype/version.py index 8dc277b38a..e804077e54 100644 --- a/openpype/version.py +++ b/openpype/version.py @@ -1,3 +1,3 @@ # -*- coding: utf-8 -*- """Package declaring Pype version.""" -__version__ = "3.3.0" +__version__ = "3.3.1-nightly.1"

@b*n$NX0V*me^ZSnU&OKIFJBpqo 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 literal 0 HcmV?d00001 diff --git a/openpype/style/fonts/RobotoMono/static/RobotoMono-Medium.ttf b/openpype/style/fonts/RobotoMono/static/RobotoMono-Medium.ttf new file mode 100644 index 0000000000000000000000000000000000000000..8461be77a38bdc0e47b678f1623df33379535d8f GIT binary patch literal 86820 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 Ce6P0v literal 0 HcmV?d00001 diff --git a/openpype/style/fonts/RobotoMono/static/RobotoMono-MediumItalic.ttf b/openpype/style/fonts/RobotoMono/static/RobotoMono-MediumItalic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..a3bfaa115a3f3a30eddad5c6c3aafb9b5ee2624b GIT binary patch literal 93948 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%0D@A?Vb^R#DS|+Cj3`jOj(eO`fft;vZ)JVx z3YS3s0bb9|B6s``MmXy&T0ZS9Jn!ZaABx_5Op%UqA9R;%CmVrx^GLo~65KqJu^Jbj zV$WI0o^$iaX6t#`QSdg_^CFVOaQ-W+#fC%A1YiCHpsCkgq}*V z7>6pL8`2YGY@|F#M&W7Sq7DmWCjpOj!|$gnch_NOn;4DfNi(^e%vA~~rOMgK_{u{0 z3eTGR5v}n#P-BIB1aL7=!Ok+>aSu*Ud1NA1;%=E(>w1ff1Y8_>@~Id?x1$eCP@?BO3*)SsTlpG2$LEAEV+9cKtBEZ&ZxM zeP`Kyi^N3)_8%$xiaZ7Ib8fhSD+WB)sTLoi7A^7sYsXC2d#&NyuGLvDe#Pdp^{l2h$wSu; z;H#MYx}Vjso*TsE*JJ3dV{F_$PisQz6?EL*d^gp?W-H232k0?O`qhxTDITPNiLUP4 zy;tvDOM4pFi<#_|u<6W2wE~JAPi-`A?8ZN_@^HNbYzL(|jWLAlE5O>#X6Z`S5@{Z! zmPlzHtmkTI&85D@!D!Fus`sq}ltnC(Q_BwH9L$<_LhV$yqSXFud<|ix((A!&Y~mX2 zZZu$Qx~YUYmq=7<yoHM=Xi-qjla`5J{Da1kizEaT|6tBGyz_Mvdd%_JiSXA zMQYJvJSzVhP)X8{<6;P1HA%eqAmEbZ9QVWT9&ANu4|XFLMdu+mHm!+--S{1?37ZWR zg`kC})x~5E;7tB9ipNW>By_Fk&LRb_KFw(1&ZmUyGwhmuufXbuevjU6YhJSvCn(>;%lP9BvQ;SmWtLk8^k zo&A`mY{9M&u=!cMNNMZ3iYQ4`r?k)=F$$+GLtUD|Gf&Ami~{fj@QwnHt_&>XAvfMn z41Nsoee`~Ual`Kan!yh{clMI53NlfA6j76@eBIMazEb#fj!IZMMxzywOzsiAP(05h zCLN<1`5M5fJXVl};vF2caf*+F?{w_4G0hL)keHm7@46&wmxFtyG0hJ+LwlK)K1cCc z4|ab}M@l7Z(JbHEgWdmK)RC1vTY)j_F1re4=eo-_%b)APt~&jfyX+}mi9OhroQY6- z0pJ)ByHMOt zdC!eMvIl=G_Yr1b3BQQipxpRlxpmC4i1NXEXFd3g_aK#N`LYiALvDOIKj19YucX?* zq9fIYr@U9_F1?R@TMu^sf79_n%bu}dJ(J=j%euX@V%vi4w8-g9H4 zrI&lKD?bINN_13|xUnVPt6_BRMNb@{mD&s5o1=4oOR37{U^YU1+*IAqMkv(;74jL7 z08|sCBlH~?WF@Da`~W()Al85705F6epO zXy<0ON|sixbfoNb{R+4=$9#d>N^{IY@iZAn@#(6XNenv2(E8j2= zo;gXjokWt zL&C25j`jnqxfj(Sq_QhHJsH?jHkB9>cI7EZ3}|7Xi(;G`oA%m^(1R%*deMhT40;!O z?G{O5NK~pt%_o=xO=R z9kL1;rHE7;^gSElgF%zC;(a~%6UDn2uZ(wYW2;6BwNx=0?Z7@RGKvq`Wl+2UxP-q@JVECKNta^Ogmhyg@?Wg} z5^0U|``Qe`YZo$rQdAQnlG{Grmo8-XqnP zT27#e%p^`m)fn{syG%pbFTr_#);bN~)Rqa$tQ-FXgGYLJg}m&BpJeb|pi-~heSRjl zmccuK{|+nvRSBP3q|u7^flqCd9*t`zJm4t&D)4)2Trra2wzVyNc)1^*_pYF^h_8 z2kNh4`1eb2-c0dbj{*M}!>4Nx;PdD`lwXc@;cgjvpZ5VAtHqh?0WEVz(+I?X!oEeJ z6I%dH!km%8v`dr;Eh`o}YXsu`gwhj;*u}&tC&W$>+>Y>)$t4D1378M2WMxsr@UI%2 zCsh|!D-0_(@!H|{mGm7cm*r(-v{gHQ2(pm`a{)VIkQ8aGwjw{EdGD-Qd%I7P_{7BZ zV@Ixtk4H%H$b|h-O7St`sW%GsBmEp!%d+)w`@3m4gY?U(snU&vlKGn=;gO5XZO>tYe0H4C(fq*~C@DI=t z3HWdd$C_=HxQ~rswq^r-AcG$R{7#0?)@)Mwpt{?JL-%IT(;!M3jRnX0TG(V*Oul#i z6KCb;{EFZ9!zv`&upLfXjI)33{bR!ddes?+{H(9 zJL_VEJ>Pz{-SAe$cNJu>u%+8MvcKTpJ!7x4f$T;p9$POhMXHB@0~iY0`RFU*N&O0B z>pbJU>jmdu-D?aRoYDAV)*(2`UE#Ow<>w;bv)<9Z7pdMYjuZSgly?<94~g5WJXR%I zo?Q?&8fKEk@YQ|$l`EGw88$j+6D28p`-+1c-%Iv8w~}ej^1aSjoU&g}j#D|uc893t zhV2evpM#$%?z!%9DlSO6_FfV{^Yzz34^Ftiy${`@1Kymt>h&Y^Tt{%rxUWevsUqW% zGUgm{@@f1KemuX1-zkI%!-S8-5OJfpOZ-Hv-@V)HE`&saEp+ryo@FkOl+PuEXZqno9>Tla|W1>F(d$GUGKIBd6MMhu7;9nl=o z8F6RCy%DGNI(@3XOn-;|oc<4kufbwSH`Evw8Xh*hYWO;GR^%6|8|)oz-f!TMMoIty`?S ztdClsx4v$D&-#V+y!98WGq!(hP3(l&S+PrF*T-&&-4*+2>{oHtxcPA_<67gk#~qFP zDDJDcOL2e13-N*Rx_E2+toWtz>*Ke??}~pk{`vUV7`^{ zvNhSBT$tQHxh8o+@~q^g$?KE1B=1UoH2L}DL&@(ZA5T7){A2Rflm}CuNqITtSjs0U zXHqVw{E;f82Bxk}?MU5``e5qQsRvSzrhb%qDlH}LskE2Uj--8HQ`@3!Nw#cTscn$0 z);7`hZ`%pmdD|~Gr`^Y{v779b_Tlz=`!xF^`)Yf;{Z9M+_9xS05fiR3{kinl(%(%# zo_;R<$MmZivJ7R0E~7qUTE?P`RT*s=+cWOV_$i}1Q;|6}b3x{9nXQ?3WbVm)B6EM{ zk<1S=zs&qL^Gc>O%Reh3%a%1K>(;C%vW{l`oZTmTWcKvzHQD>Kzt0iyQs(r}8I?0T z=aF3BTzhUq?%v$zbC2Y{mq+qK^Q?Jwc@y#$a!^!Mst-2ce|*#j00_`P~U^@8drtG^sL zY2a-G?;ZHjz@G>C4T>6+IcVpg7Y2Phm>+B!Tt9fv;FCl0hP*nI44pXi=&Ds{ByxQq?>bm`7%Evr2 z_MvfW>wW4w>Mu8BHZ(RYXn4BeP{W7ggT_xD|LBC63AqynP1rQyy$OFd8JqexH8rhn z+S7DpqHW^k=FaA4nm?N4JE>&SoJr2fD<;1(*)hd7rFqJ!sYz3pP2Dtg$JCFfrB6FO zy>a@<8AE2gHq$oqzM0o%4V(4SY~}3Q*$>Q#{Kr?qoboxt=FFe7cdq~3{qy4IJvHBd z{!0svEqr28-J&y#{#dM8oVG-_WZaTfOIF>|e#;L_bCxb#+OhPJrC%+*x=g!l(XtPh z`z*IC@3Z`_<@=Vuzd~4HUXi|H*ox^ZKDjmH)`ctimD-inD<`gOUHRC`H&>pyt@yS@ zx2?VH_-%i!YFIUE)g7xoSoQPjVXNy_Pgp%`^)0K{t?pdCbM?ck_pN?y^}DN&uRgc> zht*ft$kzm|iC7c6#=fR-P1Tx_YZ})~U$bbu+DbYyBhZ_pLv; z{_XXjtv|c|`}KcqkZqW_VfKcl8`f>;+;I1Xhc^6c!>b$K-tgIma~po#aIHn&640V) zF|=4(l3Oxc`m~g{3~U+MGOne$WoFC5mQ^k7EqAuu-|}S3{+2gd-fj7$pJ?6RdZhKk)>EzLTYqT1+9q!cZqv8Lw%ObA+Dh8`x7D(s``&lg`tfKXtmge7m$= z=C0(f+^+Jjp9-f&UUmD> z+qd8TnmH|-TL{~Z?^ut)v?Wcn|fR3w$a;e+qQSxQ`=r)GrGWW z$Lqom)CcDO#`$`&3IFg%C;>ZF!y{D{xczp$uU5R*a= z3t$e;uW4X!D+Qzg`UNM!A?t{d8%h4a zUXnNWJ?dG?`;ytbg%2h1`0f^NH@zl>IP>M;ej^FoOJoi)qrP_|zRzORWF|KSIkmgE zk%&Y$klWAIljYoL)O#G6O8R3zQ-|z6rQG-Ab+kSJbV+x8PJFmioYHmpZ(c8jp}cDW#ZbzUis+d+Fq{-_-vs4 zkKU=}lz3{A`!$;LyauyR)m%0Hzlv9FPwD^Sc7xuY*UX+z%h5mV1*Ke6|J1s?SMaaD&l-UI)t1F*9!aGgZd-M;XaZ-Q5AIV{IB zxi_(ryB%?4snz8^lwroHhaK4C4@ER`Cw95MaQ%t$?#KEy277{kxVE9Cv7F6yH+D}; zu&Wj0I);@_Bwiixh>YU8T-Pu@CWC)tu~+!D>q|UkBHaxJ4I=?F;aT6oNAD5W8PMU1 z>tn2?K6Rad#iEoOf;v46E{(zX9RVH=1cxT${uSI#cy$_G>FAX#WcfY9z)@ahLT2BID!KBseixa}zU3U?Bb z<&PpV`S;+Kg%}s}QOke$aa|xP?g%lFEZ}xx)cN9cz}xuTgp*aH5Mind?MMfWcR&(- z&mpo1e9#VJjK0d-aXzFRHOK|khGT46;8{Hz_3H<#T@l7?DOz0%FV`g)+buX%xtA*; z?~zw=5-)`>B|pFhc^BG|23!u3VFaEziZkKNO)2_g7i7~e-1{v0?pbcDYhUjdo>1a` zHR74{MW5$+Ex{A%Yp-+hW|c)u)30u7Y|tyy=)v05AWF z*hK~&_qo1BDOI2^Ers5((9N5%XaS}E8yH_zt{oT!RSc72OY*)R^t+Y2m3>FCLvc5K zk3fAXhtqcy#)cEmcfYY`-Gve6?RpnW3#`#*T2p7sCrU4<4_p`ElA|MafK z?0EBgJR}%>H$zt3{C)%U^1RiceGI4_2|9PMcA!nPUFZoLqXiv_Nf=w;63l+@z&cgL z=tA$&ae=hel&b9BYV;*m`d;H5pU|1T`!Q#L{QjP`zGrk2P86RZztU(5vb$v1c_)$5 zf8hhJnU}DrRa*LS;a?rzMtV7W$=rD;&)?;cp5Zl~PcU+XN?cCNh0ToOp$1I5fHndt zDcKrAuuYeb>sPpyu$lLPRW1eGRRp>b*$I9H*G zGDRgvjWhA4KvS?uZ3;ITObMn6Q-f(@%v-;|4o7bxcBXpD9sQ+&A zBa4|Ui72dzTfMy=6kj6wZv#+;t|--r4?+N=I`to}ha)W6AH zf9yzM7Z28O$lBNNrgIGEJWT%*>V+}hmFxHuGZE+9iubL~dCs}c8P3VhzQ7&e>QC_; zALDbP<4p%_c8=9}FU5N{-qUdheNVw>SUSJ4etm)CzCMEY;d5V}jiL9_pVMPc7o9FX zd;WC4GY8K+_tmpsK?gl!I}>xp{MFnuey2~LE;yaWai`{=jy)Z7I_y;5Dbp#_mrH#f z5c**!lyVofG}1k}vv_~UVW)zBjE5fzeM>()IFY`u|485Q&*8i-$A2fm1u(l%h4);% zZ^wH#xHz72GTs9z4*e^Rl&}#aXCy4jpv=ub;;8?Cpwxf(A>f#4n5~CG5^hJ-UkS=J&x>z$CF8@WZ8F`G#(^q_Xk3_JOGn1zO6Hl%vsX6`O{ zBz0ldo62qA=W|=gILv4(z?XfYQ%|Eh3u(qUD<#t*Kg%Fv$6=CGG-u5tRNNGsQ#d#mkrR%H zTqW@#AtV4s@L*Up^(2xQxd9}Fq?1%)Be~$Hl_Z-~kWx}k`oS}MAQ{2kM|em(Cp3S7 zdzg4}j}c#f0l$!Y1RCAr#E*M|_;b$@HTM(=> z)&TF3MD7EUj6L8aehK$H(QqfApL|TxxX(!@WPX3{6v>0nQ~~!D$>+|HKCqJ(bLU7A zca{|LEBKY%c~ZiCL;7+*BS_5;q(Ap9DdT=3)zC_-xF5*??g}!-|3QXxe{xqz4cARZ zbJxfyGMhV&edf#1OdcdMZZA=AUy>Z0rfMSfqybjgNn|XUfMeQA_>ajg{3raU{AXk- zS;n8@zv54m<@_1`ELnlLLtm3y`ESTd{ye!239r8;tN4p#HCe-d$6w+v^WXD7@IUfD z@jsJx{tEvq+06e!I!Gs^)E06(*-EzYzmYr0b|Id>hCD;vWGC<7oxBUe`W~{2>=t+- z0lCQT6-2T}kO^{fA3|K*kMs8r3SLOL@(|>)kKil#3I0NW5C}WEQV0@)$-l_6WFL7> zP?6`!3*<#1gzP6TkptvqK}}u}G=i2OyfQfm%W|R+PTm%D(G+SK)Kvgz%B@A^DB`juqdZ!Y9I~`wm#r}cwgZ?;e8<+CdFLdkM|e85>E30e4y}!@FixRw}g|zDPAd* z38g~0&`+okDupUOhz}Ot7Tyu+g$7>5hX{?rc;TGzHLn&X2;T@z!bGe+hjPD=LENuo z2=^Bm2`M{8IFGf+ba)ZZB(bAR^d#-P?xnE~8zzTN#<$!Ykr?$1G7IPbm}qT5dhmf*zq zdOb1D{RFxSL%T>2gO@N`EaB#2Wj+aXnveO`h8Z^vs~00=-(+qg{tpG#c)aK1ZG>!^ z1#OFd8jSm9LAFkW=0@)SmmyEk+p+_im z7G9IkKNF$F(bDJRjuck9=eaW&d=}PI|5Tf5+}(uo7of~al+cLsrr;TNJSmmE@=z1n z)_KtGdY9s9Q4-qr_ht0P?oEN-_{JNaIua$(Crx4XHukDT@3Q{ipF9O+8_`B1S~?g1 zoAA6D_&*o3o)OP%#@~MU@1bk*4OcgQBlSZG`i1hrJd`*ECCx+$QeA0FXphjI8Ng^d z5ufHUS{Xs_ne6FvSzRQKDF&q*L3`=y#(NThcQbWttdA)FQEriVWf5lNMS#WtI zhxZLX*aM_eA{y%l3s%{&;L~`l*%DEYWYmq0C>wYn9pfq!>*{Q1<+;*fab^OZx1|6aU+Q(De(~xA}W8UPs7U%&A=sato2R(=x6B$ammtk$V53AQbSn&qI zu3>*1;V|UhKFt1d%%fDI^ntE34tmrp&}9O+9}!XaCs-$q z(32j*dMOGvo2}gaTrgtO9Dp722(+$mabo)rEFl}AkFADYPfr(`;cK}8Qlk<2gBN!c zGU0LJ4U69dNUbNJp+NtEUgZzHClFzjl#p3(LdOV(exZUkq=v5aClY{YNhmaycc7`f z3#-aiXdF5c0UgOewIpauCSryz5lv#CqclSgv2q`PgFYg$Bn~=CCv=o2Ng_$Y?raLA z_%&!$X~YH%#SYDEGWRKTtPGM#vY=n(K-0=2`OsA^K~H&!6hccmPl~xI&`zd-Bd5YT zR?5vJW!wx>&N;y(v!IPtK$DwIDxs}F9zcJYLk5s)G7vMo^gaQBiXZaJAqnxV@~=DvaE zGX-|kX;|e=$LjAk?p8@ZgGF`@nM>x8`D6iE2#shFv^(fM+y!zA#!DM!vCp{^&_2I} z-g}b!3Od+Q*j!JOWmsKOd)Fh}XRs8}wc|=y09R4%hpdIYcRkraTHpz>muw=fq>Z$b z%~bc{c3szgsP04VBzKV=@C4pLc1l_gR-k(jmx}2* z4%Ksd>o`=Ok#rfV$x!`;>Mp#JYA94Q;nlo`*J7O-#)o6I9l`5)1OI<&yVf8%uIjux zXLeS*Gm=&Ys!|G70b;^4uIZWXnOPo&dGttYt#@Uu*0RJSv}W5oZOzWC=i!wF#xHC` z2mxaQeqmmIfdK>NVP19uMJg{$z*MC|_zMZ7@+YZ~=Z~B|=bP&}-(h^-x z%d{fjjdq267vn0Opf$RZPSRDv`A^fE=*{#NdMo`Ny^R7nhtQ^V3h8RvpbkZJ4V|Sf zZOW;yK5fypG@v1kV(viOQ=g@C^1YGg>Fx9mx0NqI+q`T;D`Vf7XK0^1uVlPY=*X=|TD!eVjf)pQKOGL-a5` zLXXm8^lADGJuY1HbM$$7g1$gsq%YBv^kw>r@XD{zQ}lKE27OcBTzs3Jrf2An=#S|; z^j-Na+3(Sx$lHuRmG=REE?*G-m-KylmVQ8gML(n;(R1`;%kt%2!QaqN=x^z#^43GM z{W#Z;GkyA*eCd+p`1FelvwQldIJ>8RpBg-@+SAV&s%&g4|vEU9`kj) z&FA=fKF@FGckm7TPQH0!IG9b~%E zAjoco!*CR2H>2Ko6lRBEyWd;S*3JyV>%y7ZX3!q=do#8EM!y%HovRI^-bT=thBGx^ zWvu0^T{PDg;o71Z$S#he?s}NJENPiPnzEB!Qg^dU>P>zrrOGUc zYuRPfFPnZjrO&P?;`B5OFv2II|cFdogUm>0Q~VK*3d%*1gBvvfRdX;oFZ z)x^on35hRzLfdB73}{V()^-7{A>1_!cX}3wNx}gl3LI znePzuy^-|KZ={AO(~0N1lW4P%`4qvY2=g7;d|#8a%%4r!$#&JxY}aO?n^I-E@qG78 z-!pwLrO)j7OA(XnWHHQLw=_*f_6W5Z}V=x%j_%o%Aly`eqU z!|o`U3AcukIG8yv3XYYd*ia^tj~JPFwRSGzL8qS`#^#)96+8;YGh^$@TY@0P>HcQ8 z5t!3W2eJrRR_PY3?iO6s7a(hpb;y=U$LzQc+B>l0*f_dQ746WkSh9K%?TTnuM7tvJ zioh#Q`Zdt63F$+^j}rVS!T%C)O7N=$Jj}0K0$vF?CE%2RQvyy2_FdR@Vb6s<7yi4j z=fZy%c3s$YVb_IS7yi4j@4>zY`yT9gu;amwhxX-y#a~9;WyD)X|FQ=?{FGm>jMueW zhM#5FFT;Kr_RH|I3_r{8vkcq{{FGl&QF|5ORe)E4{R-??V7~(U71*!9eg*a`uwO-7 zRm4>VUKMy%;8lTFMSNA@R)JfE-74%Z!0rO@2{q1^87%`x@HU(7uNDHQ?4T zt~KD-fL}-ZI@;HvuTS(CmpX9kz-=JT2KqN(zk&WuNFVW4^;Po(-GQvDFAeuz{*M5-Sm)en*NedFGGI2gA3gK+&!ci**R`IwCpxWO=7kJn_e zP=w8jJKGzMx57cxA7uRTps#BAnpcyKx#BqG*>E_LXYMFmpOw@vj5a!>PJYyp9Ma0e z+||)_lX8A2U_B^eOD(^p!M9p19UPI(=Os_1okzw+$+h_55kEyz&32wPscSpWo&Eao z+-Y)9`c9I@fjkE!m#tkg+-z@U>n0i|nkIY`Efa@L95JzI;xZFQO)QzX+{Chp6%$vO zIBsIq#0e8?CayGb(!^CJPMJ8ZVxPt{83l`OC)mA`QV)lcI?V2*VzcYPFbewTqQKhj zjA^cY{UGXgqxL9j=O^XZZuXc0O&`4^=#CB?4hNe;2F`ScdNrOkSy8rx9V~GNOWY~i zt>YA(Trb$_4@ZOkRwvXxMLf=mj@=$b$8L|JW4DJ>F6Lv~A`>8|T*?_u&})1BQAZ22 zaXPG}TurAIWgQ4D&)1SA1Eof;<^8ouzM)m)D_T5|P#3N5YqZ048KppLIX?wv#73{r z`xk)i_jdv07E}EeQ%){k*l%%nzvaZ|+)B#EO3KE{1vYXkNvHiQyX~!|Y^r)$&EVD5FV_JGX=+308UYtG~J2BHYc>NGB)f?0sb6b$pK^?fD zdmeq%Odd+D%qfr3q8fB9$tk!jTdRo)0`9cs}qjUv3NI&;ou7_$}bKfZqaM3wV|(7u=TF_izV!Soxl5aGR9ul7r$~)cq{b;y{Sc{fiqtqAzpnEs68LrC*MV;| zPxQdA1HTS@qkWcF>k zEp^0iG}rNs=88o8w$7!F_-&m_9r4>bmpbCNbuM+pZ|hv@h~L(^)Dgd}bH}%JE)wzE zx|TZPZ2_-^cx|1FUgIqmCZ8hsTc27h8u?xBJ1hbyjd~orzQ&k&07r zZT>{!J~cn&eu91h?H5qDbtV0A|JwR1xK-d)VW+I)D}GKS{9Dj*k?ZJRMLbo+W9v)& z!F5|tQb#{qpHiR1fzL_1uf%V(GbUZ|?6qRC;COOc!@i|CKD99?XE83F$~0R`C#DVw z-Rn*rlAWHjQ-`|2s3#{WGV!qvIeQ$p-4hdHIlmw!{hNW@E63cPp8Dzkvb(zVYxh_G z=N;K!-{%(DfxS)kNpF|E)pyB`=_hoD^$yuJeMt6MKPCI7H_Kk@qq1un@3%fCJFkz( z9_lT!gZjAcq24JwsPPW$ld>241=&k|0(+@X$!==Am-;Q)O}$(8W}lYb*?VP|_8Hk( zy+`&{zau-V-<3Vp@5$ckt+KOvzwE2VySDeq-s+#p?&@F2UhA{6hiiMR&&e+9|J}Ey*8OPTCxk+Jka-r7R~NzA9&1o|1Db%W}Hq`*Qx~2Xacc zt!E^8<>YC0>h?W*^U;^jC=#Y^3=0(?&Fx8Kv~_hCg)5}%8Av#mYwu>PW?po(r=QJ z7_wev)yat?Ipq`od+`))%L}D=5k{k+E2m@R{}#vzo%q7ko&)lK4B{0kH8~+8|Nb{Y CrTcsU literal 0 HcmV?d00001 diff --git a/openpype/style/fonts/RobotoMono/static/RobotoMono-Regular.ttf b/openpype/style/fonts/RobotoMono/static/RobotoMono-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7c4ce36a442d14eeb12444ad707c2afa19422fd8 GIT binary patch literal 86908 zcmc$H2Y4LSweZ}TU9GydXnXHP+gIBpt+cD&Ey^00AO}3}h0mrXE7ot~Nku<|`vcJ550cO8^3~pM@ z$wFoDIRfoGCqZ!banHkbEu5hj57bpcm;S5~)POE6(C&W%2X^L4f%z zWCv&oYL~sXfRdJ4%!{I9w|hJ;H2DQ-(i;XUV*`4<8Icd7w~#`qnj4GGRco|} zK*X}CKXDdvUm>bszD5{OR+iDg4Af!?221fQ;3we6LzV_$G8T)`z>FN)ikXqaoq!*= z;w+rVahlD`nrcSOW^YkZK|xWG&ukj4ZdztGJ98%TTPiEhu2^t;v~0Fgr9=q+%r1)_ z=w147Rb@MRvU-i(;V!Y5ha%y1p*KV8!r>vaxx`mevbK83*~(Z=z~$Q7*m%72jn3nZ zjayuedofXx#ypHB7-U8Z1Geg=EROLU#LOHq>Wz1!&ZQR{Ygd|# zW@I(nZ<-%J+)bZ*_F&z5PxS(&Sd36{v2<1_u(RVJ^14d4v^1U_ST=ILdERcjMvsml zwZgcjKD4cNMa|Y=VyVe!!T5XS^BDRR8k0M5+mWe{IeoBNH3TtA>BV}A znGK#J`|}^Km{h{7SRX~(kd2hqTCKA!)l00lh)^g%g?zr>Vi~KhTVgT0^Pb9SkH^oB z_1#fcK1YSuO{>-PR#Y7Boqun=z4ZlBa+IFX+w=3Y5pr29Baz5>_~Fp{NMzJvag|ss z%c{m6C@-rDxjoyPn@@J0?mF4je2v=^M9A)tC16gs!u+dPj13Bm0zLc&;4i1@T=L;Z zA0@lF=aaXQYXJi%ll>S6k3xG5+kUnfFf3+q{3zLhMI z1QafT_DaC7fWcRa!i^01va}l(Q1eNv$-JaGz8I*EdN!xIGWO8e=)+Z2O(ggHWM1Ve zhr{QvT9(8{?~9gI)>X#Nj8gx^{bSz0ANtRS{!svd$lx(kAoI}EA0$6O$q(r6Tc3N5 zyg%7T1;}m5|2a?o7s!r3;b&iiXB*&IF03b>dk}4(psqc}6#;eN`**&TWQm*OW+B%cACfe1y!UUFpMoglPoliSB9GBDoJb6rOjv>- zm|vmSWEzUIkivX&*MsdRnwzindc$F_@7m_(d)gmtKRylc?f}4Nr%Km`f&8p)x79Kh z39k*D3ap8QN39mO%VHf3N7lehG1qMd%ZnzSzRuhZF!t*L}lUd$)!v04TsA}SchMe5o9x)ud1$IY%*Cvfs(|c zsa(!2fL9yQ{vY6#8@96gGFBqTI5<=Dk^7M5WkkPGF=8^=+iGf`7^AzN{(H?DyWQ=zJ62YbUCBrD$(4#` zuXjVk%KJj05XN=a5z>uJM$^*z>QN)eaiIAPK*LJ`*G=$VMyY-SyQhZ1(l?{!zCp!_ ziy5uQND1mxsolObRJ+dUjO08=wN*ENZ^^tz>+0rpR@dCy>09OTR)Si#js~ljS}gAD z=gF?x+VlN$&(ze+o?V@|r!Bb7>y4q+74uYTrP*v+TD$1ZXm!2M=e>Ps@Qy&ZL0)9j zXy#Rw^=LF2J1kMv$i2~MRWJ~^W6`2L0e^#B;Lz&&V0Nv5*Ij^D9;PFZeL$<6U6;R$ zUV4HnJbwJkzi@?^@Am)>s-cw{S{Yd-k-`FHq%y=_kQ0BLA}uEK@`i>LCbJcB&XcIV zvhvZZmONTj)d+&mlGx<-gd=YErUdn~Nz2&d)itecHPw%e!CM+&EZgBN*&to8sl>A) zBPlwG-guRMULvNy^BRbkmzx?mRnQhzgL53(!tmCCNhK8pL`I5dh2h{oUq1g>UhakG zE}UDMm3QIf`Mj*9=Q(+mvCIE}5lAY^sgL1r83k4%F%SCL3;kgI3a`Wh7t3674gLCi z=pnlO=coo%|CFAE9{L$IPL?O#NdsA*yhQ$rd>fvQ!PA)QVZ``p7z8}JfWG(+dX+j$ zp;zA~e@y;-a#ivJQcLZJ_G_Vi7}|sU97R?@H*yIl}4#*_jNm+uIuO5jyp>H5|PNSGE{9+$z`=R zN43nL|GBOl+TnSfgL&0t5x~n}c_h-@lbRJ)ci{}GVzdHl&!){uL8c)ILaRolRMeJu zH`GT4Y`Tba;!KXvCULK;k1ch^<|&KC6Zr-FkWJI-_IBuWKB2&;({^~BjcP}ku%Lhx zh`aBsiY(9>EE2K6qbAF~B(_Q|e4Rm~v~FyP?(7qL`)t9vDv4AsmBviyJyT37krxZ) zJ;9PeSl7KUp8%{=0M?bocM9PtLpNj1#52~1HId1!^Tv%Pt=423pBou88tv#@by@kz zfvr!+D&fD_(_7~rkHwnMIpi{%`>(5ug!eQ!>TiyO>nwWxJYUzoU}>zUx#g8*j^!^m zxAc_zeLEXnZ7Q`6;~Mj>3UDpO_U!B{ZJ(ZEjJwqdhLfK~~ zg8K)DPeh`z34_VFs(ry0lWEJswv|ScfwYL%f3LZDPHpwtEF$?5bdOv-XBV z@$PCmw_#3ID0CYh#|3>E0Pm{~EPU(qi>yICO9CkZX2&REa3>bCx|F=-_`9Js zfxCuVu6CCAcoa8UR(5WD;f1>TIjyy|FZ4DnHW)0)OL<|NZKQa6S5I|E#OK~Li#L1C zON|YktqqND?R2d9PJMkl^?IqpvCf~3S%fQK1@ zK0PYTt}k6eC+U8pK{r@cxxy|{_~n*%+rZIqBu4)PIjD#Cw$_g6v|4fDoxD6QF9*Da zV@q21!t8IM=W^5xC(oL(3P8rJQIL|SybQVz3XHsr5oD|pG|DtRZ>flcPYjojIg}o; z&1|`<+T3h5HyQ@aizDIXjNMPl?sBvL-1$E)aW)oQ&$p;x1A^WwGC zPp_q1T4a+gtY2<2TZ#mNsC`wiQ7jQvl$AZWjAPs&vlXc|8LKQU7Do&;-&iIVOWCz% zZE7db9JYlRU-BMMVcH~$%6n!TYVg3ujTPFwFmg;m$ zL?SMAgu^3AG8zt@Si(slwJR2LxvHu#b)JX$T?Lr@syBc>MYn!T^U#wY(8o4kx`e)< zdE`d)GJW(q>g<;U+JK*Ba0AbRwz-0tG#;{ula~`GPH+dHO6)7V!n8hRGjOj;tK6+|Dn8Co$kBl&yW8NvB7}f+Cw#ZYvau zP#gjxEQQ%V%|zCK)Y!CT~5vS-Ln91h5k=`%PJ1bi0616Y3EQX8*& zYTeo=<5jh_RdIY(6|bFu;jL|JTW7_?w61GyTMrkcRWklv5TtXOo4-3Q83&o#-QC>$ zy*-jy`@`WxA{^d7OVRo0v8d1{ zPtx3GSe0=7W=s7)u9RaM0^a?}2d! zSSyWPEldkw-=&ogNXkG4jj>1r`3XPNwqlWXWwU3%Y725Esw&FQt{k|xtSk`?g^rK3 z4y!dXjYd7cJi0)qGfl)IkrN{e?~X(&E5e~W7q*URwF;zFxJ6oHu}sz;t=r-CmAf5| z4UIKpR!dl1q$>s-YRe=Ng-)TUF*a;rk%LGBJRmqV{^lywESYDuR!bFvphg?l*qc-;9Xd*naO3os zdy`L$-0F1Mv$J{P!kwHvE|*s+*mGFs8vS8`W|w3a@*!dB9Y+y4(NLb)_oNEp5c9H zZ$%T&(LWRl=+~czhksC0LwTVsSTLN2pe=YGgJ1VPkmUAO7+=|k0>SA z+)o}pbt<`(QQCmyeeom;)?TtzG%kHyZfTK#B6MLd~jcNj;j6T=3hJ)2YF zHVjo&3>eJr95O_@Q1_m9o15F(nw#INA57DKl|~OU61aNX#ion$Zp6VT;)ri$)(P4N&>JNR#oRb; zJd93NY_6=_o|tz>C=_dq#qR5?U1_yA>_%gM$T{2XS=o^M3+yjI{O3>97cdI&-V@@K zR?a|O(3ruBDe1zf^h~_~(j}C#b3xRwPowL1)vdGJTvn55tf~r!nGb;H+PYDLL2uIQ7exmS zm6nFUvN=BHA9K5#rSg^%N3Ub_E?D}iQ24;?XrEqh)M|Bui7;GQux4uk9504-$YtV` z5S(Pf5&=LrgjJ8enp{sFnRsLJ0(wM){)hUn$)XkXqp0gJd1oZ)0o*(T)He&B1|FR) z%`{}v2+9o9Ucrb6gw$W}kb9KM8h8D2v)O7i7{{u|4+_rb&Z>+ZpTGWWG!m%*VLCc% zQ;D6Nl@yadvq%j2`33$G=Z4yrEhSFRj;lwH`2GH-MEtQOE1!s0)m!9f7i?CM#H}zY zGxq{vCE~DV46TqeT)`^?0nTNI9iUhjC_Qkzhr-;VdiX~_o4ajpJW+OL^{Ug+Xw(}B z9ADvIV71jMvJzDlPw(P?S~H^8>tGTiiO87M>K2q)EIr%{^X6`&PdqvAs&{5J_O{p7 zJTW%^Y;Emqsi-)p9eA?3s)d$BJf6+*#;s1LAL2y^2P)mIN~H$V{%Tkkh~Z%VNH9Vm zz-gScQN_uJUg9<`x%bOYf%h*k*nfraKs2Wx+I?MvF@h=61jr;%Ds!$G^!aUYj=Q=H z!WavWMWS(yQrYf}^y+km#;VHGLj$L(Dw~Wt{elR@1H7Tbc9VH57RNNrPvv0|D>=0|)y45K;LG)p$}8R!Ko?GnK*8n z07+^D)&&+6&afpjF%xFPHKNQAPRc80u!zP*q9-mlY-p^mjy$k>_2~#h2gjC2`mNSV z8P{7EeWtT!Sf|&SjE0d!6e89xLAlv7|NaMtJ9eS&(={7E>8PFESzGti;vNV-c1w$k zgBr5$Y)h;L{i59K-5PJ)=601vN`prRD?AWT(1Lw*9eF4D8TV0!3b2$63&_ue^znDe zJ1Oz_j%e~BXj4JnO+Cnc21`kx6p%9TlS$y;AbWU7Og%`iIaku4kSm#Rcik$h)p1-X z1T#zR;q&<-aiLv7|C+pe$9`*r(a>NE&(mu4cB5$^r1lAf#rz_0Tg4s~IJ)%TmcuA& z$i37(+)MxGQj#p3tGed*Y4DON63=J~N z5tc}-nRGQB8q9y7FyCReEKAg_wb@wKvH*4L1e{^fxR!4~&oTx<=-gb?|SU}}{ z&luq6=L?16I_E9fR=J{_e9_h8MP;>1K=2r}+PQ&zsTmL@0C!Gb3bW~nmd;kgcBf2K zXcQ`Zqx_;gU9rScB$TWWnhJ{qcxHU^G3r^E8RK;&G8tk9r+mBDh4@~Vb9=|EYn)Dx z$LZQW3$9$=`y^6HjmuRdl}M!$NsZH83jogeIEXrz-|up6Z5(gf>T>%1PS@7w$L$SD zg+`-LHrU4<4GMgzXaMJg)7`xXSj^k8n}ftpjxPrK05D+1G!PdOfW{6STYU$dU1n z<@BVNeGP{I#m#wy`!u7o7ci24X7}j-(o7M-SUGJoMyYNwfD@gS)`Zw@78>7TA~)E3$Yw=!+7E zV{50U%TR3Q^Q{tNx4&_N-Qjv%Boqa8AXY@es?oawKEKrrdq&<4y*?lkl*k=d(E(Ff zC=!84oD+nP4y|UP=P{mDi|2XF+ zpEoFx z7~ECPgY;6=L!Uyo(u*puuN%BO6e=qZhwdJ%+f_+_5yjhe8Z`(>a8~5L!(_n`^ot|e z`L)&6FYlmZJ6^7?t|{Q{G?$d@U5Z{^dTU9EnItbSLL@jYgd0Y79%!P57$(NQ60HJZ z56k%tt~ri4d^?$lGNTdDK`OKbz9s9}qm(gng&N#0r*p^b()nhwm0x5kwhTtSts0F> z5ayet(lVpkEfi^Tv$^PXi`BMyc1edpVigpb#OA(m*NzgW>yl6;EO$6!qMSl5hnthd zRm%#UijoSENI>3T4hZ-~^e0&yo>p9BAh*A^^h`xXwL)HGk%~=)Diyz=z#zP)P?npU z50R%zySBj^zqsING#Zz~cBo8ZE>xl`y{M>@cXS6nv4} zZeK?x%o=UGqnl%>Qo7nDMMbdYO@LVk_iwO&0y~t6uoZI>4*&9`5DJl|S3bk%0=@uM zMWRdv3%CLfVjV5OAl3Fx)9J2_&SfHE{Ja)R$3@1}7$vc>H2jWg<~ob#a{j7>V20!45R+6|8NiKW5U{qE*qz z(S-|-Mk7^6AVXp}6dW>JT-g3)VwPDFHfEW~v97Hps>@!1f*!rj$zgB}%gO^JX$nVK0(M zaRl=wHfAZ8K#Z8o(uG7~DHF3q#3jJYT8MdkHS$j8pzVL8i_v%Ar`N6oZ2XdjEnoCL zJ-Ue$U49Kg>L4OcLta%Y%oFne1|i&<>7m2Yvlb2Jrwnh0p{QvdWif-9lMx=7h!P9X zAlf*rtCGt!#YKEm5x>}NFmxCUE=ZrN^%&~3x}eZeTx+-W*ju-|-2oSS*D90QB0k@B zE#3P{gXNs6yYC03)#A5QsWoA>rrKJ&*zRaB7~4FSxJ;%j%Fk2g-OX3zcckX3gF1aM-IVD$cLI{32dg?Dh3?W`VsAnUXka3hs$C!}`ILuTL3r zk`T)s7MLED+AP&G?hHBDvd!mjQ8vkACdcAf`v$w&$wkS0aBChJA2?T2-QG}L{akOu z61_oB2J`%8%OGc#R3!4sw~5V#0#TXYv$dX^%iX;6LOkAxIvN{Z8+VSs*3{TJ8N{h% zAw_(p%?|mb#Jy8qPF>bf0`}rEqq3>Ei4=??X7K4{NUua{CE3hHYtYE5!}Nl}no@hf zys3Pjz)O4_Ox7!ma z3k44?Y+i0KXwk;-JdIYT((6~vS#xhN6v=+!J2@48-_7&pUmpmxY87FfuH7G)t8%u+&YFSjTZ-bd0n975U0}IX~{q~*dD-%i0WEuhC z)c*ALukB9g4|wMp^wvw*aUB@Azr4IA=fnfq*?Dom~&}e0*9R{%rdkxcj&oJRD!EVq!sf_~xwf#p(qtgy0Yz+#jXTE3Pu28t_ z!Ud$qTUe5Qb)mJx-hG3|?T4-D;j&(hR*U!r2LzH*KSXwh_fF~)LmH8o&%dLXAMkni zEu`L`ngTz8$so@Bw2;0hE4@^<33jROE3c@|y5~Obsk2m0UY;qnT7?o`PBw+!-E#BRiEmo3iLEzp zX_#IxNvYb5yJJ}-vczup<54f3`W@$X zP6YN<0MDaRoV$nR5My>=aHW`$&ApjoVy4 zuXD={S10b8+j*dB-3`mVp%D6@d6(Z;R_62XYHr@;^Or-q$u5FKzn}Ui`QLzT3Va-9 z*FSSloP6w(5TcajS)ib)@&5v&rK zJ0UKQK)y#bQcey}+NpQZR&OHVb>kg!$h@5TCr1fX>BHGr2{xz=8U`zw41(l+J=%?x z6xdZT2*JMzt?7OHo9v}=7se3>1mV1f76>d z1g9-Eaw99ym_emfCA+1=-bihwvBH6wUgpTjA5BoaY@OP*z-0D7jPlOGc?ZMcDl}oy z>N-mz^HfTuQKhWb`pS!na(+@4#n_CNkteMc3Z-9NG8~ESNR8a%#v_->rCN=uD;Vgt z+gpsT8k4CHT?Ytv1L7gFHbkF?1oEFV`$3=tVdPTCpWOL9n|EEuqLTBEcOS2>YJlw& zg#J49XQ~+S@c!0lCZ_+|)Y#D4(%96vsjRc3ykhp8sVUL`ZR;LAAwqYNQp!jDf{Bu3t^pYH*j!G_fHg*!D%l-BU|Bup0r?P1Hf$oa3EbcK9&tlp*40 zq>p-+{2smo5>-sSo1{qJkt1-YncTy0+>v425cmJyG^a;#mLmWNT&)kRAU|XOtZil`&gswwd&>?g!_rQv6 z^l`Kn|Hb(G6Q_ur%2G2{FjxgZejp`*ZP1@CdOV|!IKO(@k^D9L3gKZmlO9gRN>=8J2V0+Jw&P zUm1eEM2m}@mAiLx*>XsN8&s{)FRZA#XJOyZwiRCY;i4ty5{_Eg7S&K)-DAs^PvSAe zVGNzAFhzf4{7h)I->R?ImvpI%^>V4C&TO6Qu=-bpL(CZJ za_{`-(iM+3)D5ZDDBA*wb1U0^aYNz8ANCI3mxvE(*Qf^T>nugYi~=e|uSd81lKY1vpEn-Kx)G1`Aha^1T7lgICY}Ht{ME0}tyw#ce6i^W?`ddL zL*Gt)loexk7{E?qkO==Uem9o=DMaE~8No4vfAKu2x5bs6GI=ptxqkhse2KWbQ9OE^ z(^GQOt+(Ffc6n~2Z(m2o{l2Z0r#D`7doFG|6T8~)i<9f9&Unq~&NKV3-H)!@ce>-g z>bf}@V+a9XOIeMRTF79^uVJJ{%Ck!i0hBkaZVKC|Mm%(z$L)me(`Aia<9eyo6>#kt zEN+}55f`|<@*0~pq40UcGI`hKb>!Tdn)^CV*N+*%58q$n(J!btGv{nwtd)X6`}|kO z&b06L!_EWWq3~Tl>vZK-pFa+xyoI=vic>iLOC-Qh6{7%IiO5^&_mK5g(t`HVTSfHM zOuHlLc1$94kW}1;NSeM4S*VNj8hS0-Edu$ok+_|+knQS)%p!x2b>IDTaE3@bY?65r>Pafb0YW=jzYBOJiyp^F<)3u@g+Uqp=? z>8I$YH=+jAv=w#I=im=&-%4LVv$oQZdqENFhzp$goG0L_h{>RUx1tOkk*Qxf^CuPP zMxZO4Bo!vp7d=lujsAx723?hvllMDgF(+JLtK<>1g5#hbfxcN<7b7hB9g{n$ZSb3a z@+3WY;snMHagk%;BnT115n{fc3KEm zQk%`%UJLiEW`}$h%<>HJ3iTzY1?Sd`2F=#6IS9LbUnY+RgXGBM`Bz@~lTh&2SLo|+ z2ks{xBVOg0Ijy+uMg;A+QXcm)YTe|m-4W3qRuXe|nxiyEEAU1Vj=q5j;+i^9cLo?CCe*CtteqHmVjL z-GRDyp*d%NDk%Cz@@I?=ehzJk*2(=r@DU7mc2+>JJ((Nw|zSogyz z0fde+dlNrS?ImytCq$QyGx;?EqK#OLb#n-oK%cT;fQX(zawrQghsZuGG zM3cqsR~o}5+j#7Tc5NBkxJ(O|Y~wOJr=ark-$4q70DC6@dp^iB86~z8cM`|aS~=wt zG79k<@WNxgM<%}Y?bt)C5=c3anK8cq%^haHaIRLX?TeWzgf1v(*wd;qG|(!Yib^uCIUUM)lha0>>C9?mPsx2ZL@g8aO^e0*ikFUX^R zoe3?lso;J=9=QWUHER2nwg648r1-Uye?=Z=1TT@GC`VF|C(ag#@M1-r5quzyUzjT` zERyFI6uRMP990KUIKSk!SVp127&HLz*re8}iAp6ZI8G7OI5pENMBP0DJiW@3Cue}C zTmOu_c1{wa5~PY=OI~1k3Fn%V7Y@>Ed6l2Pgzdd4`cv|0<{p;9U`m9c1$cSzAN?sM zy+D4J%*EWg5h5FKFqF}0V3$m5HBL9ZY=T~m_DxVH??fBuo9~?Lr%poq&5(OL7uti= z9%Ss8>1S9C#+eJdJcsF}6ZAUR=z-sf!&GjngU=4r1Ly?sb}!K3PS~#r038m)=w`Ti zGe~Gg8fYfdn!m;Kw`MYShUY>pS_%93A+sea5(!~Ks)Q_*`bu~7;yau1C=;~@{d}+&>@F`#j&C%!$POEiU<-Dq^ELNvpr=EM);KT8FQ&T+t@Ziwdc%r2_5r1T8 z{LR+3o}RYWH^;~SyS1ffc60Mvux~vN@UsKFV=2VNVmNIcxTy?rV3FJ-zg(i<8QXK_Vl#2 zz<}RuZJjr-6^0JescLGfik}@Cf+;pP!xT%BNGoZN4E85?qeag;!(v^2UOvKFYcX}0 zIR};x=NTbZ0)$CXc#Loy7xWLrrUcY4dspw#=D-53p58#p={0C?@*{K; zy%Bx4vy+aX?_w%nN_~eKf(Qu46vVSLgnGu>e;bz2QoGTxur#p1V6fQ?h6RDrg^*Qw zwOA(7(fzq0zr&EjLcT9$S5-NU>28e|ItrwpCZsTA^M>DF*$u8L>-_fu7a?_ z!Ih|X(PM|u!}Nl~=P;%qro*`tI8Di%C7}YMK+wqi8Yw-T_yc}}-vGeFB0WXE+_AS~ z^2546yxFz4i~bz{`3)lL=zo0za77);u0waxW9Y7%(9j-q0`nm~u!lZ=QwoMXUW%z; za2oVOh-k)qnMrkFX#jf|I4F+7tihjw;gn+s);;`WZvBPBh=I)rXtU8CR--J#IoiXq zbwOQBHT#zr>zf`zHY5G!B4?{gsdd`y>l?auc{~9@k*LgU@^xxWHgrDL2T7B80)C}m zg=%C0rMcq-xH*XueJO0ML-5q59hY13b92%7-2J7cWw1?Zldb%7&(C-C9Eqa?9r{{} zWnQpyb&138cDi&}(VfNme1VYqy{$p1)G5W1 zs7C6Q%G~0Grdqu`0BaPV`kb?e`xvnZ?>i@$x)e;Lgydxj(*{P$A!EZ>Eb>?l$>J*o z7flCQcv)A-IGmx6xeVIzlT_w|oEsohIPv_JZEv-9^k;F)YpUNlpldW5<8qxOq|sDr zRzDC7dbynDnyPySAtg27=O75wM$LRxPHrycRP@v|Y;d|FIava!q|s-nR7$LTo}@@z zW@;YO>vYMkY`s!BD_Ep1w4gjip){Wd_4M?w9a&2M`ox{|)WU^}b8>T3 zqVXbGc1})PbJLG*-2eBv9rK#&>tEmAbe-21%`GYn*wN>vU`=J!&g?xux zW-Ss+=GN9eWbE4QaR;(^bX%^>Tqr44tCX;fND}jC0cSmM`BlUoz%uJuGWLj-`TOk} zgAoWRx0Ah2`}`TwGRXUy-~d{Og+l4p3=y*w3-3(1x^VV#eIll9E-4udd1mQNWnw#a ze%G`#t+QI~6LnSbC)cicA|7whsQFf@CRl8-SI6|TJ>|DlR4vjuEDoz}b$!JqueV~N zx2frwp%srO;tg^coWfKG#CB)$!_s*sjla0WhE$5;u-@F^tQ@g)*C`aDpx)ex&Mn&Q zmDzv9a$tC)e4Np~7B@$ItPi>gT zJ>O7S_3-G}SxBnJ&wfNcK>ZG$1&?Podzt_lKRWwzQPFD;(=To(A3(pat)&$dIJ$81 z0Nu_x3f{C2Xu!%YUlyP{^}_}zXJq#P1EzV9bM$(JL>e<{B1)-OVQqmb9qyWykO%`{ zNz5oM5o=<4TZ`4w>8V+1vpLD%3N7^tr4AJpGr)-ccR|u_E}%1;fn|nYKAd%(zBTAJ4T$HmM}7@Rtybav7xM4S&#*pBIN)QiO83j zsyyiT%QU6MRxe}IB)U~veo*Hysg;s)qc^F4`8#a69{PmPDswOLcp79fnTo$TTZAB` zxJE5=ibw@h%4d3XygljB4H1Rt{%Lr&Y#L53o0>!qPQ!U!({QwqIDiHLt^@2o%wV@M zh23`<>@pR1ctL0n8aKW)2;i6 zvuHKI?}oRo<~0EvqRPQn zM!^}>dE}GXUGor{*ERc-BlNl7{SF=Z#la0{;ZP(*a3ayO8xEr3`91$SwCvEo=JyPf z$!iZE2Jg6|uKu}ID^@*UU*CyH3P#0L#bIy(Q7vZ9TNzxia7<||yr1AQl*YpGELivm zk%juw{a^}Y;eEt5hSI*;{~+{(DUgNB)9nXlz%gaA{q#=lWhj$r&rl`{Uqs{pWx}a2 z*zr{Z_SBdz1yGy`EIx23vv_Q%=E?>yM>RobQ;=nH8P3?*6~eOOLUlmXy1{NMfno?h z=9sgf*oy1&j~4`IEBHcQ)`8q?kIQv!7rf(1pnhCA$Oi97`6z6f#kWyEG@33eM2>?k zr_s)&evML6W}I`S-cYeqYVNSkr2Sg8tVDzh5&i$B5T>#buOC(fq$*HIKOsktzzVW( zOy?}TkJ!)9`3P;sm5|c#CBy~#Es!BHpz~)LI+p?-v1bUscsCw|Jp2ZN*kI>W;MziK z*Ftrnb2}!lCc8O%k)D1Z|L&b6aG@a%v6nvg(o2}rnEFIKOmlFW3P#pPtYK*DQFxPv zhov64qzp|rFf`4=F-^1Z{;9Vanr7j+9~Rz6G<{<~gU}w+F54c{F57-!1{~8a3-6s; zz|bz!o}pb9zG&(v4DCJ&bcO3B0bQj|75_V#s%J=#DW-%D%N+u}aVAk|)sU!wOjpV* z39Vvlw|xdxnd>xChmfhil%5BckL65Wh^#C4h8=amB-6eY$hdJ(ll`?GW+R71 zu|D}K@E@F|=ClBwpchOxJV+DA$biu2&WU~dsB4oE1WAD8aB|3XuPeFl7+E;`UQ8c* z;kinN4j?Md(7_^x4p=yrVJv)P>W_>J+Y94@noMc<5@HuKF19_!6We|vv7EsZQ!!cj&XAs(Bjlser>Gr)-$IvR^q+wW} z*SKH8S^63*k-%hO%u6eqV#J!2tlN;OPIU-c#h$ zIX5&qo0Kwrwmw`em322QqW`?-!SRp#2RE(jU+_<)IW^~n#=7pV%J!GKPc8V-tYEyU ztm##}PI#WH7zxATWtg}#WBx_y`7a`*AblvJVd_4p+4Lud5XHWA~^MwqKd_7tSlrBqYVJR2-Ln7iWgdNERCVYO{gUekEP)w1cf><9H<@Y zK&9bJh@%X(GgX=xs)mRP)6aDbRkLtx1+nlEqJXi2Hqf=Ws#6LMR#4}^pm(-4rggS; zAF&Iq23~H3QQ|5|z)1Fe)X#-sPJJ_d;B>4?BU7pQCOBR z&++gq#LTGh+wm-zdP>Z!C8^Qg$IP0AS3-Lh-cPvDE$Q|ZX?P#;0GgGCW9+f*2ci8H zxHJv#oq7tj!#tpW?oRF>a3z?3U&jgJX5jikJ|s3tc>lht6YAJxb=V&&5(+C^|E|Il zc^B7L;@Pt>(yi7QvQneJiFakT!^GoPMxXVU^yn86K2(WEPhZ1Sp{n@S(M$dQz`xT* z?5w_NI<>L#2Nxp>70Pmo_%l^hVSzAYjE%sdk+08g^n7)qo#N{R%BX6F&XRj2s(@78 zTUK^sGv*6+Ww)p2G(PS3&S(L!Kp1-7#%KW+jd;keU9W`HXh_xdn#Nrgwo&kEWuc+mp)~X-(@=8R=Obw-KLzE1 zpSzdP0=xwD>S^x#00)|8DE|l{0XS1*i&;ZBjLg6fFqFW+K}=Z)49`L%8U=0*UM^JR zN<+t57~2Z^1_65BernknclZBylyge;ZskGgHqtXoMso zZ2L26I2CKT;!S~Yftp$~_V{L0Y2v*7>crGku}k3?t6++0G4-{={Wg76mVG8^V@hk; z8`OqSvCym4w!+~BD6qwO8*;@C(@CkdNG`{vOE$9wx5UK)w`MKp?PL{OY)iy1t}xNL z#%Qrvg3B-g4w#Bt3?_99W)@tH@yI~4asUS`v_A{SXjmxbCl)%wQ>LL9w=A^p8jRbo z_B)t$1^Ux;+kp(|hiPc(rRC`f zzFn^G2~{poE0uCN-=!2)hzm6#P1Aat+v|s@-rU-?ZiTBDuthB&x4lZD1;%Z7cElGYg)fKR1jSwf0oC zGxV=j&(+m+aJ)-{Gg#UJUXxuY?+-vNw5TVzrvhcvLPG~j9hUWB9$N(sR)ncf#>i6x zLo5BCVR_0zF~6|Tz7=@&Sm=RiDA~^Ifz<=Ai&GA~0`Z^(94TWtWx6y|2nQj*S~yBT z-bnvt;<3jjiv1eP0)P2J*sx~nGet(7)*2;C`j_3)CBXE0-Ej4l5@1S&G;Tvt;OnW6 z;N4E%Dj1OwMh|>FWkJ`$NZ$Z>H}`v47PNwaFMv!GEC*Ql-&1hV9;Jyi^l$0b5CbDP zY4~(6pgl^jK>s`4NAL4EGR5|Me;T?d@(-Y(H$Z#fDrFW-+y9~0oSA;a6zxLmrFOp2 zJd;pVa!G|5pABWonn7i=Fk8?}U@o@JEtx?O#)Jx}KV9hzvU$_vy_}x&LITe40{lGG zKKm#44**}oVw8Ay>M{e5<9cL(X$u2iLJZM=obHD=25?w^Mmpb%jsg5mSb=j{9FVNm z?=zAWy*2e0+@6kdx|x31_DhJj>E8f+H{^r~vk-272|+&ts4V#rP#1$&pe_MW7n5;= z%d>zLjy>uy`H$qgP~PnkG@C8)hV+PflMI}s<#*kCSMv1}C&)d!7~dMlH0+EHvBM~{ z(1I1%mSCWa24SHiUtoFmD0muBVGL%3p*U`Efblfg)>v<`tru>^T8pU^#`Nr9d)|P1 zW}pmLvCw`3a}^84T*X5BHes&%Y7c{qW@4e(Mq%6b-Yf%p+6a2-QO+4ygE*$A%$*x7 zZ5Y`SP8sjhJ8Iva)U)wQkurzfRw+14<2 zrdh3=F<0=J%~v9;>}J-MtAJS-5gmD*bOlm{0W-@Kz(oH1hooCS#ydh3AcJpXtzt7z*?{^&vyA=YUp1OdoCrz5x2hw8_AkUN9W&rXo!B=jb|Y=Rz+mbgcIC zbX!cZY#)7iy?`sHYk-wtj|{UTHjgsNamKE15K0XgK{ZU*0(a|M$3Ld)fn7R$ z`5Oy@T|RtiFUBW6<8y7+;~+0Qe`Dp#Ndn6qrcxO9br`Xi#oRbbL;sP6_7l}<=%;CD z-$rg4dZh>014u*POtO#Vmk;EFkV8+41fq=noGe-428H=rwaIm zF5RVkZLwul^UOMBd8ZEC!Z{G^QppY3w@!Yp^oUIMua+!3NEt*=q(-!WJ3S}NOS>~h z`apW5i=ezbj1)9cEu3lv>if49)H3&raVRR&z~N}nr6Q-=JXAGv)VcB!p~XH^KS{-s zYABrcIg|%gey!@-Euf_w3tTg_l&)N<3gDGxRxk_iYq2XhG=-zN?7B{-pqNv35_tfJ zHk^l;^#%=#CHvKQy;&$;Sr*!N4PL{qwjIp60>vxKw(Z@AwLDW{jp?^E#XUC>xMvoQ zduHJf6=kqKvpv`fBHT9%#eL(}S*Z6I?)wCcImYxIO!a*i(>DtT>jYOA!JKKv(GnK= zavC~d;zF+IJ)9RP7neOjLK#Jr>)iXFb6!BX^k=YJjP8QF{^`2`M0P!W3(DtykNynh z0xi7A`7Nd4{u%FtB&J5mxQSe@fxKVE;LtOpdy>O?T^ANQkGEQLY zeP-UAG0kLfdSU+|Ts(;R5(?oVsK&Fh4yvhH9o)w>;bJI#SX>;|ln)z?;5!&0(FdVV zIUkTeo(X z52>GUKLPynV1{r^NDp~dM5&!dZA%T)s`V?I-wHxEOE(1?V>okr(o<=d8Bcj_VSbH2P8Z@#8RZ^N< zno*;`N^aP#wN*fE5=alOFz{ldW`9T_mW0*UQ~9}hP(s0+pP#o(B2vzcl*C}+xp=g< z(X%K7QV`-4gCN^@)2H&kD(lFf&x5+)y07e7>0s9?qO6DfiJ3c9mO8D(4!ygl=8`tz zldqhQvz<4amo_w?u5W7DUfEdr6qa&7A~sO(Qn$ldr7cs9Q@;dEZy^rDzleAia!mOk zsUfPt)Mc3762L)*nYsmyPfXa?HbJ6{+$qX==u)0eq900lJJlK;r|e4$`mxC@lL}nQ z^&p5pP`O1=Qp#-JF#>P@8*zl9sf+OTty80bX&$kacpm;u+1v2;oV33JmUg;!aJpzR zP|1#|KQrGcLNU06p`mo0Z}iEx>&7 zy~Fc%Ky3lH)49EqvjPMp(LuLEJ--)VuiOf`vT)=x0TGyVJOHdSmNMA=5-2qacj3ek zK3SAOUzt2fKKd)RJToLXLV0GXQ>>}bGv%2l`G5R`yz%|lafN8?N|Du>^_qv;7HhO} zgzGgQ=VXx-8G#d`OE^{2^`m8}vdzxv^34dRXL9o3WH&_rLEEOYb;Hwksu+FulF4XX zTnmL!q~-?m2(Gct8LL|jVk(P!TTXsOwCprs0qQ`5Kjwh-z!?Lu_weoWM;x>qrndm9 zPb-xHsAJ=lsLR>ueXZy;o)-_ zOe~J*v>`DTr{a)S7ZHnPbCFf0uvio->;FJK4Urg%?1pr@FhnjTqT;YlZMCXZW($EP zU*|lVybR|Av3v*JmAt(DvBx>jqF(wzm~nCm=UMttmXy645GDV3-TF&eQu+Z%E1H^` zypi*psR;LP9IyZ`)0kqD^EvO)d$ZOvCwT%OYvCs~ZeGSwZeDWLE~JV`Buby#vNXZd zS4gGs-Auw#J?Fg!4y3V$EZ!EF%T%0^DWK9f4HM zJa;sMR@ZxP*pPf1jvC_wyHRv``YP)M`g4>`?{~-J_z<->^)H;F^^(gd3Dv~OB1XW- zL(C4F7qlpdJ3g0yqf49N~No&dy1| zc^gOtBdOWxsRt*|k)KXJLmh&6 zEcwupBTzpApVYknS-MBR`r9px@C-YHITLuIehoL4e=fm%RpEtX%?%7qVpRKFw;=S?;Z%%#PGpko!f=|gWX6^F%%6Um)R=Ll+ zyQ>4f-=~~M{)JcW^#Oe&yhFl#R}V-LocX{|MY=q*6ey5oPV5q4#Y_IzL}LCTY#1pGCEKt%<}_8!)V68+-=| zymJuVxg6-R9Cl|gUfEY<3a;t%m*Azcgqk{aJL8-Vc?!Kke^xmJ#cP{uYF`*1f4-)+ z32-!ANq>o6XrmpEKd(`MC+FCO;X(9v;W{;WM8chBkXpVR&Eo>}wH zcXZz1IsBq<<8b1^;m+}kmAHCw<;C&N;fJb+;IIivTnncgZibk$2gj5XMjkJNcV^^2 zgwy$(V5X#;$(dOJg6XPk>|N@U)o!ZTt8^_-3?B{zN=pNQLqqZ9PNlavN6uF^dvxVm zX|A$JsLsvHPqwIZ+R;W_I^8QO)E67(M;b<;^bDtLW46*IP-%MF+JC%Fy!wT@`dKQa zphTf^@|B7L@y#R$490-veR22Q73K9H;!Cx(P9!RjIRqL*MZkYO%<)lr2WJ7SiG}%= zDmEn+RzE$VX#vf~tJt-oAb^k|uGuMBuc*%Hk{sl+zLOQPhD+K;i?!1>^dQi7BnUO? zbzzCw2I=(2N9XK~!57*Xpp@vc8h?*T9}>gCh5m3E9FcUP4U38?%PV$E8~<8maU&pwadxP)E@^XsoeLlpn=B<(>HtI2h%Y9vre*IDcd4;0C%J&1pzgPc(LYle}+VB-+prjqJmkF_G{2sPCBq4YNqsD7Y;Pl%Ag~BzXj$ zqrA)al%&tt!F*x9Dh8nh~9 zGe}G>Qk3$zM@o66;tF}vZb>Nt;;m3N*?YEl+&-7nwYlHZXM|x@WmTHzV!oT{-P|BJ zIfQZ=Jcum`VSQx`9x1bLEXP)|?prp)zj)IVgc}@dr@l{rd+yB`ki+fTHR~yN3KchE zag{~BP}iiT+v!--Mo>O;f_`QAq2AtG>V~%Y{7JF3OeGW;CF+n` z=21;kw7Hx!oQ*w7rKYN;96*QNHT^fHQkyg6EW^zoLiEcEPG$OhRBlou7e4Ihhc3#Z zChLr7)2PvGz8J5mIXFALK4`90lB%z8T&4)LLA}wmyz9~hZtuqXYr;NaHX^B1cqb%X z7WANkJ*`G&AtW8sAqWhjILcSRR!rmx0kDPadQA$r%H`C`We+40bxaGrWlK+?g9p6v*~YHZHAe3b;Aa`tr`^?@9!hi_r2f4AjbE+zmGn<@BOaszGKmv z@S(W}4lFndC>QFH-AnHZyWDPP=MnfENRhls<;8sg9MM z>XeiSTmnl%p|A)O^k(X@E!WaL85HkY%1e)PC?H_Qt(>P_qi$Ecf_IQ`QSj1cz5Nn1 zs&n)fZUCHoHfVQ(=M-qS$awyr((xCZXU;!0q1!rkzR}*%89VbqkM;M-@!%P;RS70O- zNd|5^EQWKNXWi4>Ix~xWkI=@JrFVmIW=$6B>fXpSvn47^L@mS7zLjRPf&5Lr^ZWgM zGwYI#uO1yUP-3M^q|x=ax4n3iya$kTNu|8H&P?pHABdVA?aAal%qm<*&jNZwf8HWz zWqW}j@+6DYABZ4^LUD={Mb%1^wJx@_m0G$5)iIftO!}1@<5P56JuxX&aYdhhw%ryW zQ8e$EG51!V-)nW)HxG5Jv|4TFpuIlA?MKtImsfdKoXfP#l=0EX&8~5!6iQ>o_Ue?& zwJ4bx*6GYug0^sYduyRzn#nw~X5O8Vni$r3HBRx(*hd{>AHX&$o<+f(z%IV?3LaA= zUb#2t-rVp+BLj!o_~gb7Pc}9H++Uq><({>nCrxkPdO%}Z?RMrB-oU<3>F9WQ9oy<> zMn}hmMasUtb)HTGy-v})H_8ad=-%FQ zCzitO#p)nCHcF7){7^I+s;jBFxxaY?r3+0nkp)7@s%4G-C4f^zch#Djdx@u_lCKa3 zS^+0SX`uuP=@9vjXjyOXb4%8}+SNJDZL!V@<$9%46Y(3GqpM=kh3=c23v0U`o4@q= zp5A4*QO_%_Rb}O^@x;FNrrn8JC@-)*XczYe%mtBbtl$@!J5b;zmXc3BmyOLZ7|mJ0 ziQK&?d;M4Au~5+TvLj4EJ}&KorZ`R1Qk%GE8Tl=(x$XVl-kCx=M&1;z7#Mi%nukcq z==GnK+}ygaJ~>0mj9>tJxECY9aMEl(HM>$Q6@%j|C%lKB-&d^bW!-ArD4TdQ7MGIs z-(=vdD-Blb2Bu$!%ve=rkXh!`*UmD#YO2c1gka3_Z~E&gF0WK67Fgsk9mL8~F6Sbb zQ>v0k{2EI@D5|0$G7~rU*6-4dHn%*c<)ebWBtIv#@6d1JLyZe z#FqNwb4+T$mTCH<`m~*R>GvG1`e>gTFzl(+-P3L%JW$aI%=;woHRuaHm^niulk|lG zLt^!W0@}TVKZ(Wx^f~!(v-`(AS#D~z2E5*#1Kr!u38THa>4`N!To_5gHni9-rjzxj zmoB^?O_iLTxv#?fNm!h9D1Po(2PKo*c(hEwAq!^i3xy&~InI!1@nbEmv&E;o*4Z6S z0<~;y8yTeN$Co{lOr_CS@6754xMK3Lq^1KR6#WmTB!v9>}cFQq6d=pY|E zf{gTCdFeJ|gJH@(pV8{`s+t_GjN0YyX)^V=ozuLnH>R4eOVC0~MvoLKcUYxXb%l)G zo=ca!JtlWrX*7z3s+n(9UX!ix+8wKV2DU)Y zMW5SO-EP;Gfu7ZNyRRZ!(b?E^e#7Qx)0y`6O#0c)8_qX1c9LiMHo`t^NhVK?&OFgG zaw=Kh;&HjI?OF4+RH|vXzyC*j=-2oBuzz5GiSKv@z;T5n_f5^R!?dDYQ`I1V3rCMRCon_IugaQeV%O$Up>S?>ZUZ2nF z-92s29B%_a3;<2g;G2U+=F{4C#2c2o9m#67=6JwoS(u7$ZL7V$g{uDax2>tWMgY98Z|*;!3o*D%YV*JbPD@p~8Hrvd>z&*4DYjkeMW^5)7D z;c$Rpm0n@!_Cfk&-g^mW#MFZKlBscfkgUp*McLf%86PHnlAs;aryubUZl&`6PNs)E zix>`%@?^kpv^p>L-Hg|HwO{o9gNwn7`nj z+C+-Hm^yF5&V3BehT5M7HU|JF@*54;KZ=PNGN3Mf``7e;{Py3z*7!`@ zWAFcl{`fcVG(JP^&uylDNWGuiNFB(3J9F;*d;6Jt&VoL-4z|=4evg8t$xfqK4Z1pT z>G*+wU}qU;;mFUL-P!rf=*Cyj^fnYQO^qOpvL;U8%Y1(0qQ_fW2eM(edtK9%ZEm;Q zY?cOfrau2O&qQX~9BAJv5BUSThdQtGdPC&M+EZw=TAPU9zpQUtz!;LiCl=V;vh<#4 zG+G;p9-SATYcbnhR_jP2I&73`D=I6=34uW1Ht738OwVwC9E(6KgX1UH`NWG<_R=?}=L1YqKIU?oK9!HIjGr$o0CT=hb7q{D9?s_enLl5r$R%Did%j4? zSsddw|I&C%)jhN0eJ?@GKPToVw3}BpP#j~96U3l-pd-+&J{)~V6QU3E7_ZfVisd!>O zkM`=t*IfIsboTgV^eOUBggL+-a4E%P&*Xce=lMfE*L5_&PhR4ixRcq4ImOu$sKrB4@M~l zcPK;~CUGNzF<-%zNf#Ozj2@~9*Wl~WD0Lc%N+1{5&J{O zc*yptJlpy^Ao88$yKA0kYHpj>*ZYG#q<7EzeZA9qGnvPi^j`1thMMc@ z?jM%7f!otom1M|Zv6*4EkC*7o|Y6VyG} ztLwMzdcBo-r}cHpLr)()7|j1UI7-fr9KcKTskw_8Gb~T81G^|=vfHmf?NB02Xf7aY zBcUMga^$Se(*2vC&$M(zYOEvm^x0QIyYbvNJ#P2b!B0Nxzs}`CGDB@Fe(&NbUy4}k z4`Gc%uo1L~U)C{55k<_vSseJWnq`xZ zjbt*Tc!>OI^d!3Fz$EOcDKkc^ZT6=6>Q0~cX4pjq`P>|dPzCigD$FpKe!~D=S6EX)kF+lYsX)U#3@Xdaku~fa3olSLR#Sk~zVQ0(tJ-ui_~M&4Wy6 z9%Nke`1|`Gpyzzq4_-)Slh6MESo81y{QYE>{DAgQ5sFVYlb4w9+$X>d#e3uj%w2DR z=d%0rF_&W9quAYebw z3k7DGWm>3zGomU!w`WU_y@?IBq%4-WOi*3Q) ziB-(&9t;;^EM?A`+@CL8pd?u)9g1Vbwi?EMi4WoP47DD`OD0MW1^_jH|31SD1E8B^;NN3^mC(N1{wA2XKG4>e+g+*Mc z=&5sa;wuk&G?p?R4+&`(x%G6oW|kB9UP$zKcXd_B?YKB z8RlZ8=6?9+?2m5ve)glkbK1~;`iWd0b$5>GV|;n`&^;C~GAhr8k)7bo=KccR3&~|5 z!uK$NZ_^Okmp{*EK99lTo9i6gng1k1{1^y6wHzbaj{D>(jy)Fy|gy&En1T}h@}giyo^QL62`-`@Aa`AQ z4TS|eIy$zYn`3T1vp8r+kG{TUYg(-_f`>DFp*jED|B3!KlBKu{PN0o3H0|RHfGpip zKNZBM)@rBK(@(Jvj0XJIcXnZ#;p1jZ(Q3=6)dptgAnofBC5hp*GBX)X*k}!&6F6Ctu?^9nNc~)h@8vJm=wed2s%&7n|{?srjW{GahJY z>^>iG*ynSej{E(anogv5ps%~bY?@g!_4a5iHQdwv$|}#QSGv1rCTnWG)D`H{>k!hV zO4eh9yD>r|v-6BD3stRH(JUSlzo@Y0$~*&4HoLnt?Dy{(p0^i4H=p0XZ{GA9{QesL z1#xwCYc$q|l2zoYv_)gB)p9YlmV67W=l$hRqFvbxbmH2e*zjgg&y23-^tq)YivBxl z6PZk+_Kto<|Dgo)GJ)hQ^xwnInJ0GcGR_*Ku7SO?iX!Y3}^HVzIh)%jrMA zfrRqGY|e~+@H6UwAAdU5tJbKv_2}NbwR7eD4!Q|#dgf4nvZgg^BYo1KRy89V|97ZK zwS$i_YXfK6RjV2&!a>MHE%=2v>_)OmoP=6Rf0BLv`K+?hW*zi4pw7{NVo3NUGcu7O zZt6vXfsdd^{r>666+U~DhMPTp{`~Pv9UQ4WC6_4(nno>1kBvq8HPv!{>5&S)&+Gfr zbPl!pe%R>5pj9?H2=_E16HLpirHpI^Bt!p>K(c|{J#8@k z^);%fmXWRCPun{>w}Mm9Pg`2iCWWjws@2U5t=))`-ieXsy?%w0G1<~%_^|Q{ewfT= zKOt39c6mKMpU1mv%G7Ljs;3@pe#KI0y=N+Qia?X3DsunGKe>Z>GP##tb~p1>bAANO zPC|}wy`Vd&F<(e`lhZFG)JgiC?4d(hRmN%Vbtf5oP_~*jwJHFRXzmNg&z?PgDZ`OE z8|6|NF_}$^i>hf6MMoj2oq6`d^gVf52I_K=r<_mIVm%wev$ z20Vm8gJW`AtgK&mLikPkk%QkddSgK=D&{lXofilS6`X3MfBpLyh_X|h6EsJ^yj}|UP7!fZj zWRieZ?Gj2PSpvx8H7%&)*Z4#Tix~%lnKdq_mz&HHZ<|uBkxG<(5$dxX33VaQSRq$+ z2AQ9x>_n0gnn%T~`jAAc@p(NME0w2%RH>>!gYdS3+(=TLSdWpQf z07$1WtfR*k(0?Sd`Y8}vYK?YEJ^e>+^aSappFDBt?I=Vg1hn55CP#AbL3p)VY!H)> z&+r<-UN{2p!!+zGD;chg?|`|mAqW1rrwRg$X(?I=Jiwx5&j({K6o()1c{!RQT)1#d zC=i8Af$Mu?vu%NlqDq9?p7PQPiyRgL&Bc_Wt8YK%*o>{ETlTD6NoZboHHPtZ9MyZiW( z=p1KkNUubHrs^7#CS{p_Pa>YQ+Z;QFYBn`5VrG6fD0(kAX;=RIjoasiqh8EKF%KXc zvJQ?sIZse`9w)eHRh%)->-2jB^RTLAL7f@Nax}8iUp^)!3>^%LsY*xV_5~98k;TkYwGi?%knKtV^U zeU}Q)^$gzVP-}qIxw+Za1cOK_(M+i^b=W9S6gUd^ah%mkXkB@)HnO4fzHB>_Z^T)0 z$Mdx40lM`0!$-38Z?lyZPm>FDC*uQS{wEhsQ9h$7_a4I^hjFLf;E!K$r|zvU&~^9I zspqe~B}?b_s#W`mn|_~R9nAm4eF7+uQ|L$YItcE>qU@;(W5P+yuPKB03}N8RkL}dx zbM#~Pzx&;6_L0rcFK;{Y^fhJt1?2m*51!svIY|r=ui5WYnsbg;@228E}D8@G7qfI8iV_3VI!3qPR1%IQlJtsoB0ji$bBuhR`u=27y2_ zlOfKGTLQr__0d}t^#M8CFh#9a?w3~zW zco@$LjAs_+>SlcC8}sd&aQ-5U*_9}aNQrkDC6gUdUO|y#L{=wfMYg)Sy1~=HyI2A1}Bq7zpvm z2eg?J3UbgU=^T%>E8yTuc_bpYaZlSHdKU)(M-;YD`wN!)BNqem5~TCx`4g zSy_qLLiD6Zht}vqauN#O0zdgfPWcCV*V(go^Z2l;Dc&xM+C~0`p7b&)$=yKRAP|Xb zU9j8#hQ^x?3w0v5oI=?Hb%RhZmbw)j8@&o6Ji?4{2qR>2fr3nh=EjMqGvkUgJZ#b$ zj*r$^7%h+4(V?^VaLXtzhn%dc5_%1evb*?tlTRoRkdqd(wm-!AUe5CW=!0iD@$H0c zC(jD>BAHuBf0qP-o-dQ~P-^iES0oX~9n5>ZYpez{kNloilaFqvUq(Em0i%42Zs*$g zn@Z-EECDT#$AAjfGFVN4!dO0pJOG9l7sj90rZAJj?&mpL;WaD{7$rqfJMc7)(^@Fu z(;YZ4u*2*1qdw57vX3SLJ=?s#5D7Z$^Mc*Vgj#JDiKR(*Z1_aVT&u9yLVok?c->so z%$bdb>9N@Lt@O7^O()#Ss6>>ceWn2sTNDViG_%>fw9VSA)A*zsJ^ES9Z%Hk7xsug8 zDvSUmcBx#rwabCRqVU#^-fezMjYQGxa*f0qukm@>6iU?zo5?g>V@+wyHR8%D&O>aK zAyx7-tW$ZZp=2S`8)aghz?uJlT&m)`U0yBUfdlR?gFOMCVpWx_(WQ#(-96ix1q)%p z0zLT!LpS-PCls3FYFmRuH>+9O8*nzO%vP<|vZm89%}akDO;(yT?ph(AZ#0XXN^P@% zT{CLM@iKn7rdk@-1J7FPsx0MSW!an}i4;%o44Vf7a3>)yj(ZsUyul%}uT@fBak8vT z;L=v=X!+M%5m=8mrk*Or}am&=?J z*2cxJ^;G`+;sRC^WLQp&JDWiN7^8lObAH}s5RKNR=4UqMp(My3TCYK$wzAwQK6;?6Y;Q*ufsaqk=ldLv zYv8Hc{6=^8G!{o<^PAn>(-{Z}qKW$bTU%SV`u)+dx8cax-rl}F5P$=LF!{#ZUjRo& zft?|c+l8c`NW#g+5eT2^pdb1!`Sc9gBh*PH9<6``YG+!lwJMsnkZVy6I>^1nkwC`y zSz@svWpC{L-MBBq{g_;Q+<(FNO)=AnOd>uQ9G>@w1Eir$Ef(rULS?C36V;g-w9btB zyjn&7?FCM+!Y-(&*(!n1XEu2Sf~qQk zz-u!3g@UTDi)*Xv26b9X`ClJe$me!Fbiay+N_DrsDo{l}BEQ)9TuY|2GlMSbv~lCJ znU>DZmdvx%_T2Y6H@VzCpWC&mlk#_N1p2bq<=*(IhgTVMIp;dLzs$WF3{uHUua3wY z^?Em#!mJaR^|N`J%Fnvs0lf-M{TDu!|6UMF6HJoyBH$udUG>gvh?`oZOZ;TSg*?+ z{mMbSOs5lxJH{U1Ruv{pC%*m!dA(@DsMKBg*+%Yy(irB>hooofSs=(|_$L1&F5)cU zgiqoalQnNJ9qOBC-b2m&AMlZ6>X)}c5AI?37h#WX;@a`ECtdfnByOV;6ZZ0PIT2=WKPZ|v>c zgcqE4rUCVsmgzr4y>?X&vtKa)mm0I9hX#sLjWOOnSjKz!Ly(&{mmJ3a$tT!(F_;OS zmM`aH4j{h9E&cp)g$zi&CZt0_cL54Te$OW)NhHEk=HH3s za|AgSV?-`wx@!=kl%paIxu#W89*1+0!!4DI#BP;7Adyz{O8FXTb=){`V?b`M5{m;K z*jd3TCMkOG7^J4D;r7j_GKXlfDuOqzcKQ1(mPUiI$x=7lpwaDuyeSuW4b?7rwO1M1 z)a9W~z3QM;s@QMgojWeCh9;zGvgN#qY4FI&t3@7-$Rr_SG#B}mI-f`+QL8kA5$Zi% zjlvXxABr5ubmB(mym-z#d=p$$dY#0>)F0^$a8}(kOuZMGWw+F;Y9hoY6AH~jfy`jg z4n%EIm0chcSC*G6Dpjt()(ZSuO;W#fzN3SYTFbCoJ9s}UnE}jzTPAi3i+*`mu)<%s zRS|Zd{<}@Ge||$Q*J2emO*UzV{Mw*YXON0TE;Yb}MeK}g=!TUVk$FZGeJ7mWu+P6e_ZD_RSS566okL-{Uv290;KRUI@KlH9 zMC<1mG}<@E_k`PbyjrGT(m~%G9Y75hyhtvM*jCM8Q%KDsV?ZPj$g4F&ak8yrvA(+c zI5I!(oKN38{3ST46>@+rDjZ@62*2-3!(`k1JMrtoQjJp}hSpReFRK*p5>}N}S16qZ zqqaXn|Gsz|SpWG=d@guiJF^GKf<<3+NU6{50{hP81M^?_!ibhsJwo*4gZ{(^#IEHG%4TLesmdumPIF~;Yvy8ilA^j9w(40fyJ3Z(+g ze?Xy(PYe{Q^*}$=>r@%{gp*9GMZ*=XPog)lPBPdUc`q4kHhu}5p_k`XOkJ`6xxWms z1foZXi9C>1Dg@T*U~?5R5MShS1o#rA5(T?X{GSiMT6Z1+z%&ulh^zT9H7nRT8)uQ^WN$Xx>e6;QPxiwbpP zMQX*>{NYLo$Fq9ot$|?3?Q(7I=~xB75XrVQAc1DXg>w zv+3r(kk_}PXU!AM&20;&P5*GuKexU&W$HCT8W9Up@*>8NgdTv3uB(ngeuX!wkno|D zP`RajtE^TNQ=!-!oozNb&NbE6-ZiIvTTOhb&SZ{+!-qzhfwa{o_IG&N_SYub;D4VP zo_c#M)?hW7N9&r7^m`UQ(b>5`Oe0kaaY2ZuJ9&-pg}@WSOV~lCc0Mov9l_7k?01Q& zlm78X4?jo$w4GSqp?};;%)fZ#X<}_9FObz|ww)y>=%>zJf0jOccKca$giW78_75rf zF84I>c*a00$m@+cm1e$@Y@sv{liaV#X`c1p$g1BF=5u2_CFd`t@_eoqW4*?UdA%Gb zhjjvs%Mar4_!^e`Z7l{%qfzS@34}MGA=bR4tJ7-hbh>8qj_s6-1$u!{CK3UzPHKzv zYmLS{0~KP5guKjCP>+`m=W{uf2_VFgmrwPl$dkOEyq4Z{8$Lm$cnXfE@Cg9c$obT* z4?bDXQ@pnQwoN4^W%OD4mC_F0IjooyaqNMTMd%f{zvO<*6X7{9^+~%&uJWGjD(`Ww z^4`_1z1n+MyY_0&ASc#)5^?`JG>z^Lh5EHRJvFew8;kqb8+7bDTEnyJeRyNyBU;0& zSH6*ZY4STdeeQ(~lkaOdzuq66xJ#c_XE?pVhc^n(Vcy_=>}+gsx!crg9aC^je{<50 zxeq4)`0k`1>1UZAJ#A{0PN!10asM*ux492o4Mlg(y*ueg?BA30BHrInA;Luth%oO1 z)Fa!=iJBuTT#NX!a?oNnX2+MDN0ew%N1QyRos;13WrQzFaHwbYw$I=8?OX8=^*FFe zp18D(K27>Kk1imNR{F)e2Wf*We-S5hE4VGEkjaQn#&$MxS8&oW z`4|#ZLqG*CI5D_k`p6z~P3~L7xbR#i)7O{DoLfk{vc%ZD8s$!Ymupos`5yWAcDnjm z!qmgASn(k0VJSGkKA>s|3gcI1GRtf>C&5#{hJ1}Ca48O(!M6m@M@>2O$wD-mpYKsq zq{3ZMdsw8iapUx{_2inZC~bORd1|>wA5oM)nyn6Md@CB4-VZpetlnVXG|ks(U60x`POfBb;0Q=@oBI9)IpUg?IM*LM)I3`<()T2oBCuDS*-;D z{aWPFH^&pe1Izd2=_vgy&wpTVFl)u_$mU#tIUyg>U(X|*u%8O^woLj|_+qXJ$z4d1 zdYMUa!M(Ed2l-f*8D|{v7PtagC76}xld3qZ5^fY&Di`J-uBlHFgT=CTh}!t|RH|XH zx9_J1FXU6(sRu&-*q2w%J{*nK9qwvt`_`VDf6&uC$mU~Rpg)AAP@m6iFM3vCg9}Pk z!7(a9vh#t9KSIFJAJG{M^IJp9js%0gfj0C;`cXbTjeO{Kx~}c5o$qudrFY7fWikir z*MGesl_pxu>oHK+E1cvM8mP2gR7GM zjJgRVbL8)T&#eMv7VdFoVB1G|f8l`D; z{JrBFS$d-N|CB00bP0(CgI zn));KjodcsW~Lu~kb^OvV-} zZ;`Tv>o?%~yYPGgo}Zrpb15QM5@gI~$;Jz$mF9Ac)FI6NmfTkCW^OI6T7#?Z!Banf zl@nL($dYE7Pc0eGtHQ?6UR<@B{(1gc@XMzQxmBR7{CUEOW{VgZ)sUqxh{eLOhhazk zB6r&b!pU+R?OK#KBhen6*BplGn2CyyI2)!Z#3GeS-CYyj(Z)$rYgx=0>OP`UXr?E; zOX})Yc;f>qsr0Z?W#2k2zPoGM(Z=+08?t;cu1)l>xjQf$WKT0*Z{}|ixlgL!wPJNQ zWk1T6#fObX3qkT^UtMVWc8}jpF~}|R%5q;}a>U5503flsD-J45N$-@7q}q-*tUlk^ zm?2L=s{|@3^3Y$+_pL5zi$NvJbB@GSd_sVroG=axDZ*HnNWs-LVO?VR7)3&%AjN6K z1uKY;^>aA5gT8(%s={;zg0XGv?A+*bd9@l=&ubOX-+Qla=8Ybc|j_AU7Dy9OMLb7^pfiP92U=)25Wb<(!cA!Gd=A<(Bai< zjb`dzGPC8nfIlAb`?s~xN84^l*wR{KuP=tgeX3+GEWQ2Q0j%0;NUn)hE4UCYGifHK znvYmdtQ|fQXIAa9O+G1ti&bMkztgK91U1g9~n*}mm z8G55iB?7Agi!PT}-CJ3qO`4K7cde*j9g5EcWSvoCZt;dTH7)Ny*x>3kmX@|8>+hSB z${-pVzAxx84*DaTn(C+Bm2O&YcX_QQC^l`YTwO+UOk7zh7Rg$ih8F9p_#&^VPNi#e zyBC1U>rl<`G)}sxaQX^W7_ijjq@Bt>EIpK^5C19G%b+!(oFQM0!A0*mhD$_|OSc~< zIFXe2Ju04i>w8RUVreCp&o^0&Bh8aj6G_Rh@T^g+ ztUAv>#)$~UX|f6BL1O(?wu32FLF#svB%-ks3l`j(&Qcdqt75UPpHA12*YmY1Iu(U% z5@ZN{_IvJLc)9Bs+@J#9{$sV6a;aL<=@)mbeaIG6 z#7ySC;LIIPmyJ3t7R%ehfvsIlo5D4NdZR@N-;0zGmr^eFYW1xyceBditST$x*7fWR zhMKDGxZ(Z&fteZ0twMu9AZ|}3@1K3^b5rj~^=xohZBCnQMY`?LMZ5}=+&I1FpW->k z>)g$VSt;e3!5Zi6(7OCg|DAgiv@RdhEsQ}t!Q=`&Z+vE~hlP(Rv6+H^Vo-qP$?}I) zE@yQ_ir#xZ)E(NtxNQZz!5r!|V4v>4X7Esb{UA(cas-Wg7q?{^8qN(i%+l+1w7T49 zGEJ+VUb7?6RF9JRF6z1!kEffvn(LEaULe1wFSEuQZmuGmU+e4|;=F~P?Th28<~43t z0O#Qi`bX$vb)L!NVqy>l(O)byCd61_Z>TrPh4<+t2ea7^=Iuu@B!O!_Y&8x=sEy~6 z$%a&2-6JbGF}T?gXNRo4t2P$9Yf=3&Z@62dP~F+p-uBj>Ew6TU%@g72Ptr6u1=>c% z#+6UMiq=G(BL_a9Z{3p3zTUCL=dFSLG29ehupgOOb&<&J)MDs;g&b}c7-NpjUMs#+ zy0EG7*4p{U67g1s13Zl!Ks9Ep$1|D8G?TMd*rm%Ee>h@hvKAV^Ut7|p8leb{Vf9fx z)2Y#urA7G~qMLG-;nj%b@;Kvd8cWM_tC%M|fhQ<1tN;E9tC%NrWcYZ34o`>~kUZ%2 z;R*S?if`wBID6&gC-`_ zVmNHHE1%tyKZ1Nfw>5Td@cNRHpt`|spB0PGvH6>;71d+UNu-*EEs6b8+jl40S6fvY zgTcJ8x&B~NYQ*NM7nGM#`-xO4&-g73dfV+&ce?FPkJGunqiKcR?#T{iGLH_gL}^P`vZ4Q_3?V2Oy_=_^ zlgAxS+nSyv>Kol&hka4q+6SW1nz}^dzNL###oKDhzh8TT+0VW7W^O0;^M5}YAAQ?_ z88^CZc4jo45OEIo#VMK0Bf~47WJXip@^Uk31uz=UDU8PDv90P%E@G=K7uBvAAI*}5 zch{wx$e*u0$zaT8KwaB;=eZ8Dy$2bE)XL8UKyBeuYd=GT7r)rzzS^%Z zz9E%LJ$~){m*&iQbx!9NuQv$HX-)3==DPX^Mn@k^rdp1p418s6Vriikc?l%bVPxYC zFt)>ZO~XWxF0aie#+_QsxWTo-A#k<|qsIisPf-FZmzPro247lgXUZM&vt*$vaCJd@ z!#QM?vn3Vfk|vL7Fc|DJiFE>jx!N>68lB^E1*IYhAtGU!tn%?n86P$R^32Lr5}_5b zk_v$gE_jlyR14K9OYJp0GxSXNay)ss*Ec#;hHC&#F_Z|?8j6V`f!l}I4)Xr2(O zu`x`kFY0m9UQ`+hg@`n_h0%K48>|B~%fes$A~~$rBR9n`uX)N%j2lWzHY`go1~v%k zXm>1323Dn(y|u7*eXVb{&p*{}Y0$)yL?M&b=vE|G`g|>N1QEi!`xf7YOw1EDvt=~d zyvS@cp8)9iLd<&bvk&w37c!*Sp6*twlHF@ooH0MLGiOiSq%~obf^pg^oP&bM%`XV` z)4F)#zQw;T{ds0YuU5%q+JzlQsjnrbV59QNWDqX=yo7CAajHp!7n7Ji6%LvDf*@U#5nq7VNZo7Ae zr~k|SnN>hbtf;88D*7VBW`(s<PxaFi#07LmQI_k)7)g68>v|qJkJ;KZ*5rR^JS`~K26}d?xlA} zp|@iD7Nk;hO$>T*$-DHO`N~EnLv+#>DX*M~#bU+P%vYWx6cekNUz~S^*{J^-9n`9| z6pyEwKoBf@4F2SR;Y+-~nNod(4Njt040$?Q%w&fr5hgV4Lv zoIKg#%w0)x;AjPOukmBZa4OE_syCdcD~t6x)FMJ5>m;DprX4WlbnZ%I-T?!#R95)} z;-g#+S5PhqTdHL6ZSaspmwO#R+gypL(oih{D!rwC#I6lU^%g!d9eJut|BMZrO$gr# zNN2l$bBAj<6dDc0uZfYxZ!NaBn>^iySPDdqK$6%h<(|q724*^KO_0_Qj`?~7jGvi8Q9S|}a14qcYg%8iA}nKKuVMZjXYeuV)7+aJ zE~l&%xlBrqqh`ox4oNCST#ECmR4DT6b#1N?aOqMqp@cBfN~q+QA;GtlU#67`E!8mb z@L?=WJsoXc7qBE%@G(AY&>QD9`<5r2)BGfoyCFKmVv7U*kyy=^CFzqC(V++26I8=@INNJZI2k8R5-nv;WJDuFBHyK@0T~u|Vq7={h|v z8@(z=Re1&2NO`$N__)qQaS_=o7l$nsVt$nf`w3U#D(VQ7`%qw8m-m{-cn(jQ}H?|d~lXbPnz zkfP~k>&%#MaV?g0mOM+>zP@zpPHSy#^Lgk?&jt*qok~UO*pmKq|sZ= zU-J3PM(^IK&4&l+Pp9A0(y`g;f_*?r9>CZKVTs1!F<|w%f=b1X5+{5-Kcl!J0t^j{ z&kAMg$vJyG9+%za+BRe8wzv<3;h0sk{e^V8wWGD=wHtd2A+6 zHI@!du_mU%;D)5P&rO8aH$l=fWEvWFz_|oDUsWZFn&kl%=S4t)V}xB8;Y!e|Yhr}s zgzCTwUKZBlv;b$b9IZcs9?y>ceg^)JLgGn=|vWFWH&g)qdd*Y^jgo@2+DQLI8X<66*R@3{A*kaRW)8;Vue z$6<9ZZ#I}gaX`8tob!vidZ@GG<&AUBx3|s65)JGu(oco-R^bSY>QKEi_9h? zq^oI8ZDIs{cHyL%8=rR+NHei$?CzzJ5tloI9Cnj`E3B2%^h(t3pxU-%DLVfUV7f1@ z#H<0R%%^^dZUR+U`xr#9LdnnT*W^1-1%pdGaJ?vbdk!C)aipV@5%SAn`JhkWAG!5} zk9*Dk42C!&L-Psz8YL7FQMEv$eHlIGh0I=B3FvQkwq-UYAG5JbWL*L2ER8!8Mp1*PG&p=TS_LrTPSI7YyH_4YWu!zyc>Sf+R-T%-6fHr zCh@^}JVac(Fgm7sD3bT~UxP7Pi;`jrwoPGGCea*AbS%}%ihn35ge)ui;+#3ea0%7B z4@cZEMF5moZj&;G#q7@eDZ zO!iIQ99I1)IF}XO^w9KJ# z3I)R8^7`84VdP!hx4T-7ayGdITDwN08Ia!#l)}}m!_h-ih92#6cW&~y{Z5;@*#VwT zn+3x2f-2#X)5%nZ`U$zEajs5Qjj(jR-CMgp7N3v3--;7@E$<~n-K{`-OT(I%05l6{ zfrGvW6LdJ?U;6KMR0c*#{pviS|90*?lJf`$agLY(+U+dm!T93ETEz4UEYhXz?9T1|)R+pbPDqB3f=oqv2z;S!;G zPbhLJo>Mx}C`p2H2l|oGQS8M@@Y5rZjbpB0lM4%GutWJ+pQ zcBKEd1gE4w)AH1^%-2{YxUR%^-_q@Uwq#v%JT^^WxCamzJ!|^Cq4=A>kDbhFxFQ zl`v_o^Pgb@ZpG{ffkd<(?f-)Sd6GHbF8S} zQm?Jp7|H$W=izP?Dxz4iJ8X$oRGso!nA|ngIc-MUnqmC8(;bw9+rI$BS1I!8(2e{JFPeN68U%c|Ff~ zb0(SHtPV7(IKOE1inksaK;tYIsu0WI$p67^{JzJMkV(+vOByy=q7tF-V8CHp5UF46 zuzTbRaloKWt+XRqZ z;!2Y=F`(9}bQ(>6jV&n`Ys$*iB1Oy)?$w|d835-4z$q7?uB*x{V~}PAxf}mA1n^XW zzw%0KpMA>x8t?1y(9SE_4D=49>P=-m4Alcg7*JnixcZA6+)p+ zneGI62TZXR-fbMe%|0&z)ONE8I@6pwSBtco)YDVAwf}4HFz z^7%u(8m-o8HqQ#hhYbd!wCv=TvAO@64ZApgV$(RWU%`GAb3VufGl~3Pa6W2H?t4h6 zfAtt=(Z67sm*tn4H-Bhz?%Xf`HS1X5d{oI!=w$7@e}`Vd_^nt+da;aPJRNMW5k@5A zM6g^@ISx7oYlv}<;A_I+$Z$VuFpv5Q5cDTD^zDf^&DY4P(=Dyvxqb7&I&sG>{oOa# z)MP4Cr@OkZL9n8F6W$IQ0)5`%5jaDKI*x2@9Fad4&E1!9}cG!o=LT!Tp zW?UOw``C?Hs_MPcn?Bjj`{SpKpE*K*%sqimLL2o?B5SihUe)GYBEHgzbl96 z=%rIA#pS?f@d5WP&QGDkEiJhX*A+Z~+;?j}~>iK{FOpX`|h^nf@F^h2^7@c9Y zz%)V9|BPs;*XoXl%FB1~czhj<5Q8D6RN7G2$>Bf(<@+Q6NKK+BE$5FNW@<2G(xA~0 zSEB2IfccC7eJGVNgCQW5X^{y+b$dc1ZnWdHIAvmagGCWgdS+OyKE1{?CvM1?J?=qU za8Rq#`mEL&p8T&+)ju<8YVY@GqbhS9!XA31qE@F3i}a$fPFt%~>Z+w8uTtC8M=%DT2Rlmk$LSRLMcmR1;{5m(M06OcES2rx^fJc&O-g-`2@|VN9YC0?3|KOWGyd4 zCG6UgjnH>)K>z1kL5+7n^MOY#AIfHIG3KB{KWC+1UXwwaDaPx=&?F{qXN+p*)W;(E zp9y>iF)I)M%2A03(-^N|A|oRJniP}1#=#G$HqU=VR{Xl~dn*r@D)BADckyfTm$tgP z4s@_+zkl1ZL?gCTS4Uq$UmLgEW_3}*ntFdI6)|d*hOt9uRyA^VpJ`YBoK!Pr> z+)`fVRC>Kz8XaD*gZW4F?z{dPe?X%$&{LY$KK9sJj%i+V^Spa=f1QWg3Jv)VAefq) z$GA<*AIdou9u)Dz`}Tcj?_P5M-o5WmyuvPva_@1^l`RBk2*N5(6lvmo>Ya zb^3%+tQU!$o6ejW`zn`Pv6stbydn~G4E}TJCy>HE&<^+?S_aFUMMgbq$H|pNDlvOz zIDe*pe3bslnO9zI?h{s48N~XKQdwiP)XNp>K2cSrUTp9w!18=;^-s-;l9wQt&$E;r^M*FwR z*J1S{#Ev9%DoFq2wKI>tO8=BBJ9yv?-tXy8@4Jtbo~3hy!(7+M{W<5J(tV&CCPTz& zRq`hJ@`}wA>h$`P50SYiiL6>0x4Y1kKzai0sMfW$u5~$myjNa(ty=993niGFR~2Nk z^9?#}AADAya1T;{DNW|F5 zWN2OvMr4URLdVk8&(fZUY3p-qQfCatM~IUC9rwVcjYN5zJk~crPs0q}#ntV&S_6~{ zu;9svpyNjX^2rJyh%mMx@gU|q=>UmooR%7laf?io&Q9!dR zWP~as(+N^MTcW{cS+#`8kzMoIU$}AZy-ZF*nq7Cs0WcwY3mVcSa2qyI!IC~Vo~>{i zY%4paZMNA=gjgMp>!vp^u$ny;*{c3j!>N%i+2(XBA(^Jer#Fv$xv6Oi*_xPcu-Qpl zZSBFXr9HRTCRzZBJiC76NF)*;?&*1b{gSn>_4Le))YKr^kIG|~PQ{vv7?0ydHYY4m zD7rN(*<~A70j$rE(e3Z{_0A+@dUww|Tj`@0zdq--P%umYK~{77+=oejXUAJRo3_8z z)j3F=B=ynQp_%D?{yJeK<{Q{QE1m_XYZ|%IP@wYPoLA8$;>6fl&YavrN_c|wpS-m3 zIN8En@e!_Qz!l|}uK)_?hq;%jV`FDtA|Ib5%kg3IG4t6SSnD*_8XnChOfolE9=-}n z3#;nBjb=-`d3dMW<08cDux}l1Txc`6E1wY#H8k8iYumHvI7A5GkYC!G z+EHJ>>=?=3@h26~hIm-@JNsw!9;&NrH3OR=G-rPx5FGC5{nn;wo8Ic_9R_v4DF=)o zsCb{SD*^8ov`sdg#`)xNy7ckK$*0@{xg5p8%>ILh6Pc9!5bGf3-j+v|M4CEgmtVUd zGC7r;1pPc|;of#??5PJH;PjkgK7Z`9zi@to`)jdovZ8f}6~o;yJ89!uk+ zxa&7@R}o%bme1T=aIi-I)^!{an-6ZC@(;01GRL6S{P&jP-C$!U3>xy zmE~8VB5pTnNHsil-IgaC8X5^{YG`mmNzR8}{Gc)_(*_R(pN@;l8%s z!}WFT(7O&Z>v{+F!H0cdQPrW{ks`+IWK1iB!;6_SwSaJ6r+-#6Y%$L_RknLd51*OQP|x((7gS2$fQ69cZPKQa4ezt3wiJ9o~SfjmvL z<93*|U~L3mrxNZ8tT1dr zg(x1*&x;i?39jcEf`Tz*7a^cwu@mwX`TvUh^7yEV<=@lYGm}69N!SxY2q6mu2s6oK zVJAC*K-fZLXGj7GWP$7}*;xby6$AwpQ3M1L6cBL%QMoFJqPXD#2;zzhf>$re2XWt^n_mdNETi@$LB3Rn(LeSa01o-%h z1$$fEgEK%h3%dTEsN8Z}4zV`}>G|06ojX1I*!TO^xpdm~@ZL@?_v~eC#E9k=w1^BY zH=4zf_@8rL07{EMiT5Vp%9|nnB@mr&{pNFQ%8>H~!4l9ftl4Ds=kx-3zU9@H!{jAv zJe@#e@HSsBSckXag<)4IE;Zk#gc@EVC(c`6)$6S%__CNy^v{+P9XimlE#2_Wi+Cpn z@1TvzUWWGt2LmAX(yO(KbK>8>rUw&2_ zP|SY%0~k}so=|SwMN5`0TJqS@%)N7`fqeo;VD-pU*g{W?rsD#Cl*GV4+z$WHQ(B6H zp|o4~%ACR?+4g^M4gXxe2upwd#y2D#PMv~(7>+s3=a?TnIAO8uxt0dH7N0pVa!xmv z?KTwPNpJpTWi+_pJo7v1s+!>u14p<^bJxBNV8{M-<@7_Inj`r(6 zx@Rx%R1)gn-$ac4{X-1}M~_;U`;Y97;~9E%AL;Kux(8}jj~=7_14Bat`-g^d|M-@! zp1pv1P`%hM9b+?yI^n~LMvJ?#s5kW4$wzlvuT}EZe%(8b!<>POyY5jhGN}8Jbt`)f z>ESuF2g7&uJp{cX-Dm8i;eFMwIF@>QeIoRcoeB?=d)fxeU=r-)CXX&%A_If4)sDv| z6nSoJY;I6saEEC|KVLJp=Ib|Z-gFYuzu(YaJtGDr&eQMjHHe>T;O>qRPx1Ed+t=GW zg$(Nz7}gVe?c^tR$4zIqo~V1&V10-l*B%z-fS#8ge-QxE(u&%IPfjPWF4|_Ug-msz z7MIUHauLqDya-z~`*n`#!iOqS>jw1ezxh`zu;}IGWO$^bb5!`C@(H{LID=X;0kuS} z`MtCGZ~rAKX(U~yKRRmU`0?{r!T2{rb-_ks~CSpT{|eABBWwpH3oA z5pS>FlOu5IhG$RF>hA$J{(VlHCn7&9z`pCJuC#ndemQTA-v&>_;Uhq-CF0)zet@|- z?k|o;j@z;+r)v7Qos`O#*Vwjl!#D?;P6W{6Mn)Ih99_aA^M|F~7j7P5;^*KH(j_R( z6uK-reUr%?cC@=^uW4iahxP2zr_=T6$+>=5xZ1n-q|k`zhqrk33^f|p%}T&mw?m!C z_`q1tUVU)F7HWe_qb4TnSVf}24mv{H*L8d8veERjpN(S}MU_d_jI_wM7 z#6F>KBfVIp`L3#Sok9$Om`}yp1hPOglV!kL4|tgV6Tq=ar)D4v`gj7Gfsx%g0voNk z!1ff_>#Q?$eFQclWRCp@uv?Eo;{y#nKw}`s)^b~}3!Wube_giz4ZynzDp}fL>se5L z)*65qXcFKd3clO=9^lE=5M87G0N}7WaLv-5uzm{oy?_tYj|Cik1&0&8fG1lgI^Y|~ zqA@(@bFC@7H#7uN3$Ot-QbA*4I~t3$$GMEHJf1+b1MI1sHeF(UuC?r+;kLfkMx8GC z{Sv5)C|2JJC|1FP=d866c4)I5I=eK?1~vHGp>xV3?NF4Dpx{L2YE9ZG8(iN;!$R7y z7u&HHf@`e}+i=qcr%PLZhF{x?6Ees1s1xuhQYXPJfQsl#NIi|`oy=;@)wtXe&UtdU zfy|!CO^Ma>$09UxWU;DpM%lF z-Zr@2hHoGiZw}>teGdcI)Epu8T)J-e zh7a0(IaK%~qU09|+Orqhtw;YcXiH0*rw;_Kus=hf9Xg*Bq1}x@O}G#3Zhx_c46YdV z!xa5j+awM8GmJk-uQw8hlEM9=N5z;6H7xeQN}oUsdJ%WBs$+;GP501`kc_)vK4cd%1I0G7y{o_VFCjmFy?SM~z zwvh{uz^((*g4^pSrjO^~t{Bp=NhR_nWzG18=Sz%T2+gF5+|DWDnvqbRFA1IB!t+&S z9mM-B1?BDLBi4@q7h?*727GeZ;T-KzVQ->#8oB_V*G}HnY}fh$U)I`V3T`0td^_5p zhK_dVd~bfz?`O~&AAf+>#JODRAcB9eEQi4flGDf7wRfNPD(mareYhX#(Kc++eW<5@ za$q~11;qLE9MnaOXV|3De`c3zfoK~r%AqS2IlfEgn9LM8K4dlPFggM3nF5}rEwz3H zDo0>bQ-xK|67bor-lC?Svqta{3E)e3mX>AZ?ff~8-v-AQ)Elk54DW!G1)66IFRzop zcN6qwTQyrdE9jrJhVroq(3kKm?HB78Hhf_V91a_w$!$TlVcf=L%Qi2F+qi70xGhNN z{Qle)IJ8Ez1hV}~*Y*evh$vi0f*=i)XZ!H_w*mP?Yz`V6$}J~ePx^E z87g#vngP*}6DeysB;cn3Uv8)Zyn}-8(BP*DUvjdc67Y@+ejiTG;Qw$gt)SzM0G-qM zSkS2joxK9?rSQ?F0sA)KB^*u~75)btt{nxP;apB~kH}N`)t7A2!}Bz7>5<-tw-<;s zB2=V#J7E@SgGd)39VyZnPsMZ4;&ZQfA0q)s??>84q`_R#LqLq@h)R&&i08>7jlo=` z*CRbzq}@b%38b{Zb2cDm;?IxcId=3x+C!w1k>;MVfqTk$KFa>wOQfL#-FordQ>2AF zPQEA|$OG+JT0bDOZSOht1sv}Qcr(1fR-82Rqwa3Q3TUZGXsOIi2k2TzwZKpf=o$&_ z#sGcNYQgCe9CxjRdUIT<=OuPMmv#OXP;oxI(EcWYTYiFT{}`k#K&cq`j;=^ofX`IK z2L`@I66u$*pO8C$PL_%^>Z}f@QsKEtr1R|Whl#Y{t$*9j+oIe0=y4(=i!4h7B8o zQ=2x-GxW9kjzW)BjGyV@w{c-qw2W#Te{-;xaAbT9XF~>J{kku@5cxU|=8qi;a zr9cD7vBkin&lh-kiu#X|2XuBJ*VeOk?S%+hr-7BKe;u^_9n!ol$(6LsynXl(V`Fy- ztN?-aB;ML2XrnFTw1YTpA*UYEIG2-azH1DiSvcK&5x$@g(q>yxq8KlkO&%6h4uI-y z{rBJniwAzjf@XYI@-DtbxrEUb1K+O)?+g1A?M-L?HtIn!NdugFQ3d+1zzsgRfN#^f z13tyNQnvy2BYS28DG1yo=jp2;c`nb-peImJ8`@X;Ckc z#@m(wyk1Hz@qSWj$pS5L$vuRYc+HbqvfSh~Pn>w}6t2pados;pWKx_)s{hhfy2R44 z7qEqW8h!>;w&C-z+v{k+r6oQIxNH;W{dv=djjum#*cP<-DRyiwiNuzYh<2V!BI^qJ z{jNe1(XtASOOL{$agC=#7dQ(6HhxLyLY)$T^ktD2&z*XM2cE-LELu0h%T?g%{{uMi zxX#`W2UMKo>=Xg$0g2uE8(9vxI3bYpCT~gX>zudfAq||yZh<{d3n1eGm+jL||UG;YCw%#{g+vR|5Yx|r?I>y~N{$7-7kf8pwlKgpr z&wJ4z(Sn|olK1ANy#de(0vol1Yo+zFz~=BV0{fK2j^)^C)(LvZv%7fy2oI0?z$eZ-WN=>?_hkfp>+!Pj<=o$vFX!1pF)hK6y#O&j|Pw>u!gZ z)rn;4E(-WIz}wnZ4u3-8L+TAqryz%{qb0hx$W+KDYjh*vypB5IXoWX4cfe6gbl*F{ zdL=$hZoNfjD*SH@`xL%`CjZtGZFjSvjvAn_C$#=V#sU5(av5RRYR8`Nok7ul$ysN| z9?xgx6z!vi*X`Kjt-NM%Nj5kSwPPo>{!aKvr<9yaC|Vbq^b5Bjp%S6 zcjyOe2<2P+c>_x9PCfCSOz4Sb!y)1Az2vsd&MmvSi(R(1oJ_y zlkK##T5pmh8@5wNJ9gHuPIlV;?AW=j=gAZswt;&XGT*uHyK!u85B3&22<<&u?ElKQ zt>q5nEw@9ik651*F=n7@b2D`xXng!_6{vE5PPVyROX%$Ymu)n+CWEq?SA{jnHoD1< zU!ps%dD!u%+VSUVYfztTZMugYe=bH4d=>shVSR!=tnWu*eVqO!!!rsW*7p-y+SVJe z5VI4vK8Zb{^=n~$zXLnoz{|`RQX1%lD_pN!_UDB4N$l~he+uj4w4XP;VaFc-7q=&o zQ(=7)JE`@1VSO^Ezu2*pe)xl9b3F>{xb-m+^U64sm-4%<|K|A6h{fr1(2;#>iS7(p%<%!AYT#`K?`60= zFN!vU<6n1XHhh%YUnEcAUl47E=#^;lHMAM9BTgMXxAONUwEjxwqBO4y>b%X6*b~0w zZ3d@(+!_9s!X6K=fcGO@mS;qpA+g8*&f5$jxpSNyJE`^GWP-w;%KKzRJLxJfW1$zP zxeA+?+FG)V>&;O=qRrquP-?)`i!v@u(26h3h&;QK{?7!El6@~ZCO zC9%0TE3s#_ZV}$B#J-F&me{j4a34Zq^Li$+OLYGd79p^C2?%Un0>?!ONPJ$;B>r6O zeo@aPzPlZt*R#HyKI-==-oq>WOx=f~ewV@`_UoRu<7etl3yW9_d~A0G{2n5&nL70K zpmPZDzM_{iD)^%U&U?8Sr(<^f65TbD!0`d^Ygi7r#4phuZRN9qz}GhjUH+tWStN7` ze7)>*;UjWgmT;~To9j|y&uU#QbSbg9uP?D@-OW9HiOqE>u}gF>2we(nQM)*{ux3%a zBtF-r#Gk9x3tdX;w-t3hgV88z*IMg#eS`ixJ3g;Pymmo1`Z3sTOG?A73LXUDqfkrv zxSDPJD^rKB^Z}2vx`+r3`2l!0Rb=_qHPJh?>{w8)$BSUE-TGU1T8u4@w+K!7{ zT0SBIKPHd*YP>al()th%#o+!4k3In>w?*#m0erW}T?YmKUch$(j#G1i|B8Zx8R#Sf z?lAvO^Z0j0fM)@YQ`&)#u?tQg^O+o;2KcvvzVx^9=l}uF102UgA$J%(5c0r-2mW5b z4{&_)bUVIWPAL!f{kZ&69*!U6h_8Jm=x}_Tj}AHtU;9$P4+D<9Q$OHHkH3aepT1W7`M4|tV60RL@-J#&v zc@uEZ<@h-9lf!vmGT6ZV%l?2I7JWz8KYzy25JDZjpW z{ycfT$hHGtk@XMKanf?R0pIdT)<1NUH^2S%=GzDOHhc>#+oB>z{@YqG$Uh)GYS?1A z%iaGs&ZM;kd4@G;o!aJgd7iN(xx#vjzSi7y^yo3VZ!`I5OUnbBTc*=}m}fw};g<3@ z@03~pqAxbz^YY8b$i>ZM&_mXdo2~uGMLsuycTRv$H}Dbb4Y4x;<~x;&!LFynx+CIl z{q@B|ha6TPkultIXCinbkbs|SDTOTRE zapTyzbEKpJdxV#g*R9*?Y3}CTyEj9k9oD;bSL|b#@I?98B}SU&(*>;;@O&qpU$T!0 z!V|q2EuPL5Pw&CgPkFuIvl#-O+V+;H7oyz&HHp8`dbgem{LTu$M&PdjovQ->Wd*kg z_)rcP^-jcDpd;atfL|2&BF+MQPU{7XMUH}2&`R?WfoT3snEZ7Q<4Z*&+14jW-3Qjg z)OzGYQv2A~l4WK)XmnVm z^_|a1(az_rMW2&c67#9Gm_E80ThhKsN3=9;#=?MvmSYs1v)un3GavszZO6T2+Go~_ z)~`P%({>%UZu}JcWDWWlThU+MOio(!@j2h<&DOqTn>7Q211MGWmi**Bj47;vzKNDX z*Xq`_t+LduyZyRYWl8X@!MEB$_z$bF$`L7tf6Sit#=aXDNIx>1OeV+32jmCpMWg6A znni2rEjF0#WMAv1=rVMhb3-Ea>wWd>FxnYoSZVkG-!@e_9dx?r+|PN8^K|ED zoG*0<>Co8WLPyduujB5HA9wu8#lywulHpS6@`=m$u7h2-x*qGK@3gp6d1vR&OFCC| zKJFIcw$<%>_ZatLY&kvHhq4zb3P}0&ink-w{zb|eO-OSe5-vQ_r1`s5GTUk>fg2h!2YHE8~U&BzqS9a z{?GS6?oa(Y`+NBZ`iJ_D_8;$`>TmJS_21`z)c+0t_x-={|IYtrfEM5yFgjpGz$*c7 z2YeK8Ik013k3he`kig-A34v1s=LIead^+$*;K{(VffoX=1>Oj>26+Vq289NV4jLac zBWPhzUQk8Q%AlWv{xiTZpnO2nfcpkKGGNbu!vkI$@a}+52V5Pf4RjsYYoI@Nk{LO0 z+`#n%w+`GDtPl1G?h`yPI6OEycw+F(;LPCV!PUWQf;R;}9{f!3(cm|N-wVDF{LP@U zK@EfM9rW;^rv^PY=#@cl4LU#Q(%>+4TUxoY-a%-qI)MaRo zq5Xyq9=dMmmZ47=I~cneeT{>R5ylwfB;!nDhH;tkpz#&sTgDHKUm3qQ-ZX`pMw^mM zkDB(F4x3JxPMbb9T{c}e{S~SUbqnns8i-@I#)hVZriVTjx-ayT(4X=3==`vfur*4gQksI+w#HSHA zBK48|A}b>gM|Fy-iMlz=W7xgJ4Z{}>e{lFuBRofBjQDY6?~!>U-y7vOYU-$aM*Tk8 zJo>;GzcKk^ZjB8ayK3y!Xy525(MzItL|=;O7*ij!HRioo66+NkA3Ha;BKAP+PjUU? zisRmk?-*Yfe6z1ns6&IAaP7$TH=z#>clS+Z;kUGH*(ypaT~^+Ng_#8 zllCNC9v?OS?(r8V^qDYwLeYfN$^DWSB!4+^{KWi;8z-Ke`0J#oNsW^}N*R#y^5mJ5 z&rcaJW%`tcDb}f_Q*TeZYx>aXH&W-No|r*rjGIw3WA%&^GtSMpoc7vX-S0}h>(E{Q zy6eJB_n8SZm(E;2^Vym2&HQ1Oe%6#(Yi9e;eq;96bF?`l<}9DHb*}r|C3E-8y)v)c zy!d&C=QYodoj+}U`ur{PzgzI2#ly13^7F#G7JisME`3M(zcW%Zc4hpTIU@7vfBYTE zd_VKc%;rVLMKz22EUsRBC2K&|ne2C$>|C0(^o6DGEWMVa<($iP&qa~sIp<~N9nAYF z-#Onue@6b&{JZn7EHf`#vaDg*L(6_y?zFt`@|5Md%d3}fS$?2^6wE1jsIXI^Z{hU9 zoWlDG4-~#rc)7@2w5X`C=upuY#lgi<#dC`{79T8eE9qI%w`5RBL`h7^#FCjMnI+3h zs!P_CY%F=KWN*m}C9jv9E%~hEYRNApw@VGBT}pjQ2bPAHjxC)~I-}H5np;|4+E}`w zbZhCZ(&tN$m%dZ_QR(H<>!p8|v9iu(o@MjPmXsBj)t0R-d$8>BvVCPgmHoS%mUk-m zEDtC*m5(e>EMHZAfBB>3PnRDlKUsdZ{6hJ)@*CwX70wl1EBaOhS431qS0q=YRV=K? ztthK#tXN<1aK%#<&sDlq_N?@)98x)~GOjYEa(3n7%EHQ;%C(i7E1#&`UwNeR)yh+q zXDdIh{HpR=<`ZttJhU;soq|_yZS)&(dsv<&s3kU{-XM7^-t9|tD9Ho zR=BR{w!(Ww(2AieB3Cr6xM#(t728+rUGe;imsXrwadyRLE3U5iZAEj9uExE_yC$e6 zv}Sb8_?j6tmYUp};+pE3H8q=Rw%6>fIa2dl&D%BSYCfy^rsmh0KWlZhZneE@18YNS zBWh!6C)UoawbbU+men@YuCIN#_Nm%~wXf8^ReQenV(quJztrBYGt_md>r*$d&RjRP zZbDsJU3y)9T}9o>y8G%LsoPU`u(%7Jq>15N{rVCBi znr^HlD?6?9Tp6&^v~twSq?M^FEh}?ZmalADdEd%MR_ukI)XRpL27* z+sIp*i?itP-}u!dgx_5Fbj;pnealCNM0`!I!RLds#Q*8u6_+Vk4YL$$36EeEN(NTC z?8k|o`?OP-hg^?6qmFCyw8JVo63k><&+WICm+Wz;f zb_CE2@#`fty&w8={7KE9g7!~gSBCZKw*=)Nf9c|yh>}G`ij{gOoqtwovK`AdQ} z`EQi^6`=fh3I6wQkey?OR)w-{|2vBGI`MPCs`}G+{0@lne+bYf{MqtU0c()IQu|#6 z%B34h{8{z87iD_rZ+}K;ng8O{Z#&9hJ9!Lc{hD?+A!G!(LHZ)~2Qjt;p~UYc+}_V? zFKfR+hFWbhX2}kaXPVz>$!cERGP7Av2a>Lc^$)|smS9cweXy-%T0G{bEm|F9PSnbv zy<+W2tc*K~JzSpEW@09>4D<5OU}bF{uu@>}5qLWo_&%7`hy{fm*gK;SFn3_B-XQHM z%z#zn7mB&9-OzI>_Oq)4#TW3N2Q;`7_mSEfTz6_&(8<%VgF2MqFyQaR-Eyo#`X1#F zsMTZcVJEC$#CS}+;5_YOu&(oy5Qa32qvOF(TRz6M#2H#Vbwlwj3r zGkKkk#JPlrkbXv3BhT4>th5}0@97JWr(CTFa?AmLGbF!Xy8_OESYLez*w4fEH$v7J z;8;LA6I><(`aa^@G>m5iQBz{r42#WuLf_2`J?xjN_DJo^Ue8jr^gP z6($oC?dN@7SjIY(}hB8v5l_%dmahIN5x8J0q)8QMCmKP*AHCWBux-o3Z= zTiEhkaB}?RfusC=2A=%K`PqK5-W>)%`A!~Wlv3K>s)DpqUfcUz?jw+#|4xdZq_zQh z;JJ`Lo|m@YP;fw=#BWOLm#wE;k74A#7GoGkQR4eRuRydR`|K@sGHQ4lN_Q0OXf5pQ zD6IAvtm0*~!g(T90Z0no>YTU|8a}v7S8_)kf%Z5X8YRur?&_d+lH9bPYauDMpF4pO)u;JmQqBi^$&>#Zvd ziS}6ERx^pF)4fYJU{pZUKdi^-E$J(-?3}hpxdnVo2>&i=wAEenosC;xo=!|jNknOO zYHg7`oEOqTz8ZNf1zdH*F=E2;a4)dG}R4{rvg`_6zAZ&yV^U{M`Jy_;vU5^7HW< zb}^s66mhXLC>@7>I0r4S#$z zPP4wj|0jGze_`wJmOo*WnicZ^)*5S}wZNKd&BBL1T5EFa1di8&5$D#yEpN5FiTeip zRpM_M{?HRx`Cm5fG0OQ((A94>?dmD~y>aD>uLJnI{NJUym&RU-{`%Ub#LFixAGvtw z;&YmIIrMVC<^C57F3r2_dg;=oQ5Q=tnKbRIqDuoV1zhs{YQ$H5U-^Ae*>NXJq!Wat zodBUP@OKS=KWjH(dIu=z@IU#F9zqI#ZU5vmdW?RICqGL#gC5u<{FUHu3;r-$po1r& z8;!rI9Ebm}nos1Ks& zn2%n30qVB}?Qs=-^qJGN>8MMoXkj15s-pX~ zSh7T0O^dV#$UMyBtbmQikl9#Sy;aK~i%{?4NDe%fc(fby(3(7o9()(RmE5U~L)&v0 zE&Frm;om^}{~BuSi|9Q+K|B8udhU|7|8l5{gmAFszS`BI8ILNg#=2nl_1~YEKY~^O3FElZ0t| zh_kkjxX@x+qCHJIXwMK=Z9nOx9U8Twg?%GSlQ#(d_(NbEby-d8c zSBbaw3QjKl7xCBLB!1cn;-j4+{k7LgF3BVL+FK+*dz%EJ?|X*?A#xa~ohAdccS*2z z7T*4QWUzJ)zT^932rbuMAU!ZH8mXNpChap4ftX@~_7xeST_U5ji)5sBnT*!1l4$J; z8LNFw#?TeCR=Y-GwQop__8Xa`{Y)lk-;sFjS29t%PR47$kYw$5GFkgKnGQeaKO_xa z*-Y&=xeN2(pJHzLC&Wrm5xusXIB8#yVepnR$b7N@QOsg8m!y+2Qclm43i=WKn0`Vk zNfrHyUZj^uHN8x~CM)O_dX?1BZ%8e@M(XId^gB{dzb6f(k^Vq`q(9N?^k*D~`YZj7 z+)IC_H_3W>gKQx8p~ZTDY(z}-AiYI4lPxTm-X_~k{59D z{EMs`#+YA1O!f-vPF`g_SWj}C^&%&jCq|mR$Z6J_oMGOq5A$Jt;mMyR?=fFCg!Lou z!<+knoo69zD7i!~lds7YW@IMvJGsd|V;9(m>;rgve~^EZKiNm@WAYdI4|^B=LnsSl z$Jq&Tn>4de*r%k0SlMgrB>EVQ5=tqfI%a0!>~;1Ai@*uam)Y0sO?Havse%2Ay+xg< zGws06(T>!Gy~o~XQEV6+PF-myc9C78ov9o9oPB|w=pFVY`--}=coxSJSRxz8lGu3a zLA$Wi>dbXZKM!9Vzb_pmzNU-LFj-V==aA5!-e z`_aFn?iqTkPu0B+>npmbd%fmGqSQUsL_;b`$4MJcO4NM^&6S)`_bynsct+j3g3cv% z-$|Q84eGwLHXYw%2|92HTb`TEZ1DMA=~={5JkRCu^s>?ZWuZ0nMHFS! zOo$JB(Z*%Lqx3~vnU7X6A5ZgSTpbr&ttZb%GZIP zEYMsLs9O*_WkNqZKT842hi-h4k2YO}v`e*rB6S;!65wT92#VRDlm`k@LM}hoGS_x8 zo~46V9@3fM>I*&Q3GM~B=OxOmAR6Up0iH~?e`heB->H*OQ3l+mxCO}aFGX)!3b@6A zRtRJ$K-mpN**VI=Er7?lvFJA^p~sC!{48mvK^~jECV{#|y*Wux;u_1bjkmQfK|bJO z;ji641`i3f!e0x3zaIok9fmt#~%gnc{nU+q=+Qq(U&Kp z?@ki^R5EJBBv=?9ADAjUgH-4uO}h(G*erM(bKpsIg=gL!twc|(7Vt!b)*IssziBtL z-?c~J4cydjp>N*+uiyY8vLCeT=+7ut5;DyRzDN`Nlc&&=>Cj)jf}JLw(EQ*-xS=iT zgYl5P+Utm^Vl;Q*Lv%!xaRiaf8)%OXqgTe+X&PDp?7lG;p2q_1Rrna4wO=s0_bXyk zU-&P(uuiuhBAZQ!i@M;{!I!be&?$IB-y!xsiJ0nc_(=`$z4=#o{k4_YnKT;ueH(tm zzfgyt!8l+?EuFZ)YjEX$3H+T-@JHORb&osRn77dPcR|136<$hr_%MHx9;7Gf1yAA( z@zUPKm%IOgC(s+Ck$s2{_g>(|_>unTan?w`i7X?_NdYM&MWh(L!B3-?8_E?)&!hI6*5P6tvCEK*E4mnNENS{M`8{|WBo_s_; z#-WFwlF!Hm@;Ui}d`Z3{7i}I0xk|plxbwHwdSX_-H}$4{s1NN+eQ7`H zNBdKM8bAYS5FJ1V(qKA>4yHqB2pvj|)I>vR7&X&y_zRJk&mTsI<4miObQB#;$I!7f zn#Ryr8b{-40!_qhe-a&!*yCZu7dsI4%Y`TOlr8zVgYpU|;GP;}=&_Y_oeR^7| z?W1M1oL10ET1BhjH`idLK^?894YZLqVb{P_bTwT=@1|?%I(iSim#(K9=za8l`T*TX zH_->_X1awwL?5PG={EWZeUv^%x6{Yz4*CRrlJ2BW(Oq;m-9w+Id+9#<4BbzkMLc+r zK1ZLYhv;E?guXzJQXC~sU&08(EA&-*oSvYs(UbIb`UZWIp2DcZTZq};p{MB?`Yt_7 z-=pu-bMyoHAw4g>Z^ZMT(F^o*`UOTOgcr_zaPEQAZ|F7dd(-dl^t$N{?sd~!^bh)P z`X~L1{)gVC%{Ct!BODat132`I8JH71>UQ3=^rcx>){S-NJ~QhDf7y%mwt33T7bofY zVRXcw1+YLC#0Ic|EExX!VEE4Pn7OAcJYnwXaxYhSv1|kz$wsl!Yz!OAqFD@!h3^{Q z=Do5BESXJYlUNFy%%-rZY#N)+QrQfa#_nP>*(^4j&0%xdJnr2J&o-TVv}_Su%(7TE zTf&yI9G1)SSUy|Ema_s@$ck7oD`BOqjFqzrR>`VZHCw@ISS_n#^{jz4vL?2YtzxU$ z8jSR;#W=}57%5rLHn96J>hl2G$TqPD*=DwdJ;WYnTiG`D2z!)0#CJ-?I ze1Gou3y+?A?mULze*Za)G<}Hp1F;2J%4!pJQ5Ib13Y_p_1D<9>^t^7`@wbT z;)2Y~yc|njMs~WsFg>f(qRYuHuo#wQ7G@S%47u5P#YLHh!p!viybMG1!h+0_OsD8v zOL{?mo>O%G;{3eKr5&RSvhx;O(t+p{9WSmfvFX_b>BYH=ax%*dap@Ld<5G}sDKf+h z8isfQ>=>VsUt~#7&&(@wikDPbeBNTGcuCnMv5kytVtRgVu0dDkuDjc879f+ljQSB4$loKf}=hq zE59JGQ%Y7bR8UZyn`0?1a!Qd>xTF;3SPHWwiK*%$DNS{xG)+8mnbszxZaVU3m@aS) zsghBuV3gX9QL4&rs?4rFm6wDeRb<+bCdsC?k?oL{k)2tPS(sgDNLyTBDamx1+4j&d zQ-BP!#A_XA*-OS?k-D`gW)@ZKmbPNIWJ+G?4&*YV^qJyiL#9Y|%(PQ=%9P|-CdxZg zmG|Pd_gxn|s7RN^%R8&>sUcg+l&xgSR^^>7%X>*1rt4A%I))q}ry)m{LXN{DT@Ekr zJo!9NKF@P_ZpfF#kS~fMzg;opODSCP9m=~vQYw&?3LGgFN@W$c38^dM=xoR!Tc z7iQ}%Im@yvx`n{fFBWfPWaboEoHCacW`68nbb8@T_eQRY?NuU(X7(L)HPaNW7IW4UQLpY z*`)AIijGO@(QJxRcpZ zu35=%R`kOa{cuG;T+sKT^?;Qu&Hf z`HE8fq7=U<#V<8e4~|KqZR*X#Xm;j$0+<5^*qM*T@beDO-Y z1Vt}F>N(sfpNFgZ9B!0!!&SWwH%hs}jWQqMM#(4KDCvhArJUhLNjKbRqbubNH%fWK zjZ)9yMycm;li-UTHf>iSAJU>6aTRjlD)NV`kONmC2d+X6T!kFC3OR5Ua^M=%sW>kq zv!F0NzaTSXVNR#z#b{=^16NR(nZa#7)EKI0Mw&b16&5ecEXd9;(8U)QF0C<{KMyf1WFlwD%GcP#|7JoSK6Oo&eqnNLVa z5X!+du4`M5WbZP%w841i!Fv%0G<$F30JHZyokizqNAbYBHm9)w{Q!K~=#awP^ks$^ zd5M*mIC+Vemjro9l$UYxk|ZzV+G(IgOign1a6lPoU%d#yJ*RE5S^zwr2oSf|R zqU>~6+dZdim@F9SCxlpXirf-23vv+*EX*ksP|-9RqooO(l!=>^iJL-Y)xm;jmpsd| z{KBGw{AF30;+;^{orRiY^$0b|>Je&^)x#7K>dM^+T-z9#BEno`m>^)z@kLqUrUQ3} z#hpvEC|Y$d6d~^2quWeIJrp??_no6{{)R}(ctza0wS_Js-6=LbGXq+(h?Gmb12Y-e z2)KLv9n3n%w`1UvOdpa zfkx^bG&-lYe{W_RuB!_6q(Wo>DDGWV^d}$0w!Pu*5c{cz!mpM0G8mK;RKzDA$hc74 zyR}7y3Q@Yd3bBovyF+{^A0~?GBJMpL14aRHcL*3Ix(pA+y{ifx)q^%Vt}2!k58RUM zZn8+bJ4BWO;NcivN?J0;lusQaO!c%aI~{n)DWNj%l>n?U2Mf4j#8a+1Y&LLncxkkUOUEfI+}Lc)VegL_qX{gDwWah?C-=n}q}e2OTG_ zpI}+G%t9v?(@Dh`JPTnMLp$zC+#VKK2Zub8ESvty>*?s(l*y(7rDs)r)cQN&T=RuD8B zl@q3%EVFX1%*wekE9c6roGY{HHOxlk{3$2OES)E#*`%Ca>7gL4oJiH{m`&p`r!$8s`eDjB4O8^Y>bY6bF)QcPtnkAXJY2!U zZE)orhb!kbTsf`bO78IZ4w+@?2wu@63k{kQB&Sg64x8eo1h|SEnc}58iL2mfO0b1d z%FQ(^chnrNBo0@aiB#!GC26FREK*4}Oi4COblpYck{{+Q9LGe#e{1X(v z1jSE!%0_d7q#v$o5RSAG_7E;D-xM#yFkEH1$486jNDDr=3O=|BKDdf};wtiqtKf^P z;ESusC$1u&xQcw@D&)XbGR`HkiY>JomjH}AOv}dGM{-r%5t@ulOMq1@xhO0;`{?fjYR{W)1Bdz#LyGB~& zUxvA+cp2v6s`4-G9BGw*Y3E3*{7XAWTIFBbInpZs($0}q`ImN%w93DO&WvVhXSfPJ zxC%Z-vn)ScRXvq*pgyVR!xa87m6mpe_f`Fs_GdIlDSlCkPK3}ei{-i;X!yn%+E-YDLfNUKqz@t`{I8y zySnUe=U4yd8QH&oryet~O_(QLiMiEA%$PndW>{BY*7Qltvp#`&(>lzx?!v4opKslb znb)TU&d_eM$FB=irLwRFiU$J zGpk!LuX++QtFL2D^-avJHehCTE9O=CtnI^?TYVd|tEVy7dKPoIa*p*w%(DL9OL?b^ z|F0#ip*2|7;Dx_%lq>(@%8ZpZlaYE9YgZz$;^7F^wj9N}l}T9L@-Eijyoc4Z>0*sU z4%SEfh?Pv&vDT&b-YMwk%tgWZAN0S+?90$1RTIxWsmP?*#}gVIiT0&=Rr` z5(p4N?;Vz27D9ksb{BRRcG;!BEU-YV@ptZwtjH|v_dehAKhK}Y$>_|TJNKS@?&#Zy=EMAJA%~yC>fBk?UoGK;56g z_u$yd(KWXpc=KTb*_sJLFtT`b{ThIa;Q0vrpR;(y)^#2?9Zd;0* zG#^#N_gA64Y1Qb;iA9%RdYnL>y9k1Mea-6i8?Ju%PCkLk&L#-+V{6t;tXaa}vlH$g zh4uo1B%B06KgqibuJZ^YE;S=7GD|~JDb+I{i5TxEj17qg;tkS zbrP_15j=SbJgFtzM3^Afn=68$U@%bWa5@~$KoEZk1@RZF8JQIdr9vT)@dbRoz$_N~ z+3#}h`$Z&g{bPwltI?#N*WjvC7kdzDZ)|*GEn`J|R9G`lZ_p!~*)&kaO#ME-$fVI3 zb*6>UP$2m0rQxL|#W5)oxwW1(b&K|u`+Sq{A){X3<*(?}YxIcRj4nkwgEHwWO{$<9 z0ujAapVI4i&k-@0uNj8J=UXl8m>rHlppqMQ&|iTEtTe+^U;-9)+!JDQ?P98Pzs z+p)Z%>9&Q;rAV+Ww7}tSQ%a=>NhON7+qJNIqp#GtzOnV*u}w=JYHwKMaC=Xx75W7= zig7D^5Mxi^=v9Z?tBxS|IUw{C(+%o zPl$u?#27r0oArd47NxEvpPZ~gd~)n6LW6*YB>N9#N?>9t(ASNiY+)uGHfdxr_ ze!5!z|I2DEB^h!O34I1*gQaSoMQJOP%1}{}IB3;1I-~OpT5}GQ*Ak1}zp4B3NU+aj zw%P5bp_-aYyXN0mUo&u=48Fj8D%R%aDT|YC{xNZ8qrp{I&f$m74j1YL3V5Ub*<*`ucVf@$Q-w28Jvar^TZ039h~+ z6b?5;qqi@nzQ+CIJ^x4OzX1A2W&|GrI|;G`ZAGC}3Vp#m&0MmR`2h*YMXBqkQt~{e z@NV)j@Qp|C^EbfreegUFRun%NKsPf#QV*P@{|E#E_c3J;!hIq1Zx;K-l+-V!;D0lP zUSJ;ky71BS-zfZ=dF&pR6TJ>dI+wgAwTP(zv^|LX#~7}M=YhIL@k8(mDWdC{A4#Si z4+^0NV1i-lg&#YqmnVa;mwEwXn}EjbL>s&_Fil&TEiaI>tO}Sx8hODWO7pG%#yAuT zdK0pkjs4ZtdwY8?30KcG7>x)43m6F3T-MjMr#d=fGMbnl@(YAz7JYkJd7I8yQjnjU zmtRQ2_V&P(Z^1U zc`#VsXENFFo90d-`T@YHiu+SZ+0R_(I6NDmo2@ zvO-}#+5Oj9SHyewl$ZE?C1vMzCJuD{we^y^rZY=RD)MrfYk%ij7_8rmd>?t{y8Q!2 zwO+3_%@4VHi$5wGa7UL|GMav>q&xLaA-O=?TH!mRedXa`C=8f(zm5K6&>0p) zD!cVoJJ9>^)aUe0z;p||HEX*&v$uN&|G+gljyWyd*oEOJJtNqF(5Z85Ci6g5-Eyb1 zlwugv+cN9Kie(QsG|pbwRdaDie06bgsl{X(2t|j?Mk|Ggj)sOuS1o-A8q`HPH3JMWxw(CAAf8U<}FxLIt=g00p4Q9oX-jWe1s_UIP+KLdyR_uk@*Ys;T;;J zPU7~k6=+~ogal-?Um8*ZE3;ApC&m5q@&D}1&%fxa=l*A0kh|-tv-9|4Us1{C=E+B( zi(6|WRR821kucQ<{kWl@N1-1qW8sa{A94-z9rIgsfSHFXkpd}^j~Re(uTuv|S<0KT zkowez+hP#qC51aDmn z&j2T#Ku$nDQUX<9OFoAt`Q+27YD7y;($$CFIrZwzFk6y116HAlo<#&OEsmOjkp{%s z^krr>t2B?1XA@nTuPPLFcH5^()X#APDu#08@?<1>^XT$hs;g@eC6g-}y_K`I8qJYS z562plp^Ea|J^lfQJ*uLG%s1{jVAy)SX;Jf)g{4MgyV$+H6a8-J;(uLv=o^%%tvxz+=3}wCx_B)1_?d%8qOleL zTMUL-kA?y3aZ}yava+yAr)_gDxHcG!^tHA0P(aU&O1F`@w5!yR1*pwT)5z3f8i%g%71?U_`y)98j%{EZeFZy z++Y~*i1lmrYSJ#>_)=?2cQUq?Po&-rM>|_uUcF4-bVivsP#gzuY>@2^oH@ev6C@myEu8YR*-?;Me zWODYb=H{0M!@UN*nK9&fOvY~6_Kpi<^)8#Wzky!0>A7Tb)|{5s*UoaSdNSEGhq}xT z9I{kaJ!m#t@V>+v(wY2H!i0AjR=7_iBb257%H?>=9zrzQ!)(y%^a~s7#vD>p#9&U? zR@@n_O)!5!MrzwrvC27Gqe+60oa_C2b5-J@+u?T5(y1qzi8F}T# zTY>?<)hG{O%mTZl+j)Nk&I(%kX{{cyq6*A75YrrcJc;7WlhhXGb>{B|ovub#6Q`(- zI!j0@Q_$6Kr&galNi9MOOI4AGm&a=jh8koNX(fKcADK341-wB|6vKQ#Zf2_nGZzfr z3i}J_8D5FXkyp0Q0A0rg4*Rrf$cJX?`%xYnFHhtZ=T#0?og^^2#f{l z1kEQYvZB&|U^zV-DI=Y;Ya_Gg0G(b9vpfhG{SQk)gBrn?;6w+Rmzb9ZF)q<7OaSck zXPJ8zQ`>(8Ukax47vcGN@I1($(>Qt&bujl*morcEiMLPPdh#T%1X==p(wl)&t6{EI zuobe{tsK5qR&u_GwCKSQY(H`+K25I3`@!eD!rVfWTxu%FFZh@)$}ccT;krQhxz%Lq zt8mq8Qm2CfkIVIK|x+YfyX%cHD%5#q=bsxoV>h(LIC`WDww<7 z>9EQqLZ?dY1n0mk5Fs3`wZeFT*49rG8pk|l5}Lqiy%JGH4yCTiQ!yJX2Sf(TD=zG+ zTj$gJ6{1flQe9jmmB}>fx%H_< zZSC%EZGCC8d=p&u^uXnAdE@pnUohw^+ujH)){8H_XTaF5W=7~97@M95!Pv~=Y!;Hu zS^)!TTPv;5Wv}hkh?KciuA!<$2ZMpCs$lTo;>!7UL!~0`3-S@*`vXyD9HYI+tyM*A zv3Yu(mKh-lxmBo8^|ZFUyiu|3m6qmCg-qnptxSC(Po4o9g1AUjqD3bRC89zhu!b`@ zPB=pQGow8%lYq`(!Tz@#FB}T~dQo|=P3u=6>TgAIpVqk`wD^Wls0xu2c1OXcg3oDj1f0{Hwbf==7+or*c5Y4S zT&tyo{yrX!KD1@|-O*@6eWd2*g~S5KDkDV$0!EI?1bNZ8lg*xnG<$DJ<|a0xN(eE%-80Q&S;-#l^ke1s+eE zPAdr*j0vNs84MY;k6F&EXTE=mA(ma`EBEH+SFXc;f+hV?A9> z=s&E3;8e0`9vPVux}kyNHK=th#{d8r-S z?yL$|4t7HC9kBLiLGRc?@gp-fHq7XMK0`M$|N2o>#4!J&t0#YKZKc2;jJXee1GN2l z>*SvwoTXHq`@zef^^4`_96MWHH1HYOvu#`I7`%S-=1t^9srBpDkrzWh3!tBCpdW0V zz}qs`$<}X~kI_2jY@`GGf<_v+TF-n;{s9fAK1;oaRxwwQ4pN3!A;h%NPe2dYXT^F| zL+sF@CqO^90#*=OsI+UV+fywe?O<+sEDXbZgkG&LkjbP$OHrlNY^r72s$9h*#q^(2 zo7Su+FF5t>848nHT}-`@3$AU>H#7n70f{n!usMmqn}+^Gu9!@a^T1d2_czE_e*IRe z_V63vIwvlHm5PIxSPk}94U8;XYRFG7R4`}<0h3MiN@*4obt0KePRHwkf>*D+vo;#9 zkJjF`a`m0Hwei#(ok7##FKbmB%`^gMLWjR{wnnX`(QTv$4P5+gOLJRWbIZFIGdExS zZgXpETTAo1|1#J-_x7IUwAu6q+xkw%*SDkCW`#YzxB*3V9_*354+dWXb{mM!QL&XL zw~MKgqSVz0{KbFy@Pbp|s6cox({V1^cT)(bjm~?IX1#W~0TZ z)6e!>TZ-KiQ3lthC3H5d#FCq4%+biSa6P3tHrkevhmwvu_i>C4Z2z0z#NTM z3p1G?rP^Kwt~|FE)MJCu0Cr31;{E>0O5ox*EUH>uTGFUcC*8&Ky%YNbm4TYd;1&HP zNwrF&(`ws&-q~6s=;|a91w3P4cOL7{6k`(__PifZ9uiacGT*26=8{Vhb=Tzks7Fgm zsDqQ`H!x44_?x7-A_cBrM4S&8YK9)b2I*F2D>fN4S+j*_hTTemUET4z#Hmz8-7#?7 z8PytXPxa{bf)w48s6Vz~+kG`P)sd?3;U#VBEjBVa`8V>7N{JyqUs!CjFN#E$IUSyr z6B7plflx=H{;u(L*g@iuq1k`N^I8j|s^>id9+5g&Ije;h@W~mbV)gt;JDyRDx<8s64Q!bw`EKFO>z1rK?hR1iJNlqh71;4OR9U3?`Go z&`Wlgb%1jj_CZG(T*0MA2b-3Jc*A$Jm-Y09k#yzHXz@ zTIkUkl5hTD{lpsNy<_0)_h)y^os(>Qbm{m#^@&*$QIS*0>$=EaUWrcnT(0He$a1&K z=ka*X>X~n;mMbtNpkI+!Qu(}FFwcx*o(a1%U&>te8vsi;U+qo325r3Le(Gl4qnKv` zwE)L~Pd1s${n^u*=9$#Z%$4U<&eCeM7L#M^tfnYI|~a7iX=k2n)wU4 z|C%M9CabmC6X-QKoF1EFVU@~VB$f&b3M?{Fv0CC*FsIIeQFzEpsUxuSeu-oLj8^u) z8L5@z&9wx?B2i&sQJL9TE*6TO4wZUVRW)uZ^;9V3(x6#eB2uZmuHto#k>##p-%}zX z_?`@&LSdmqTIA8uE6*zs=G!zW!feQusstgNxXF4pPc z(-Rb_A&v$UG>Dasf_#wBB$AT%Qg;G1RT9mBWr*g@bRjCUG5qr`L}xZ-O}h|@JB0;q zhjV$nX`QRM^mZ6=*kLGzRk&!@Hn+!XHW?R0N}BWKwhPykj{#C2hgU8Sia zpDyVyN7apstrjadt9$)IxurlX7K_9_qaSw3yl`a?>=LP{$RXF1Er-B@Q3eh-k#vc~ zQYaL|tn$fws3%}ntR)uD-VQVNi85P>m|=;b{PNP$vpYM_E-fi5OJ9}x?vN|waZgDc z)NFj^F0F_E=#3kj&nPLWs3<8pqj_V?c8FzEl$36NVxy~31L1Fty3w_P(PJb`nJJd2GBK)patgf@wp2kxT&#yqsq3qF69*<@W-UpHa1 z*^eOzZ@Kj_U;GurOaQ658Yvhy2qG|Df(jOoCs4CTiiI%h?f&!NyUa9<$gA;#KYsfOrjsb>;tc^GRW>^wQI#+*^?H%(nPNx%q&-VuP*}99G9GT+XqI=yI2{M5z>) z=#&nTTvcqhEsh39>^9G_!h%AlLgy?f$QKHQ#oDLP)DDI~hOEg^t2P!Dl&%73FG0Vs&0o zQK_qVLvyayB^1Nz75Ob^hJz(r+nP24PlNb{SFLgusgzGkL?XA^R6@9$ zPzCcknqVekze)~WUloqV!c_-{lDlHew_wzOBCS@plqr2mMcKRP!B^0pS8@tt@w#Wv zV=B&j7UBejInU@VmQDTWjrm)xHa$t6dIOP|CR{)hhk+&%#2B&hC%&stmbN=hCM?Sb zN(uZjnMkvFE6_uly>iASJet-`<)^8^<@0)X&GmI#v3O;a>Y7v&W?H3qj( zBqYO1YkoogBNW9eD#+E7XTP}Oc5rRTWCcd4SYMz}6crX2M7QRN`2vALUR0t{28^x~ zBL@M&NGi?OOGVl|xuPx-xt)3KrRpJ*$!awTEmC!j`6XLSqxOj83Z2?CLGtBNdDPx3 zH-(huVqsw+ta&Nx@AwR2D^0*RLr%Ptusc|w#CXlDe3sRPm7G8&iL%8i2mshVnJ5>v z<)Mz(>-Khc*;}o@@A$W`SrOXZvG)F0JlWQecw$}4u5fa-Rij_Y3_!+%#cDR0=2fq{ z%p@!n2dw%e{q3UF>jQ1_*9vXQtt&6Ayr8$l-&|k+@R~)SzO`E|uCux#m&{H)i>fE9 zy)MT@Rn01QaYd|HBF?Sz4>*0T8krJib}4WqoZBEF%rG<7%3@s!X$=i4rV707oHlMn zS3u;K`h3STiTcLI`ouFkKL5OF+ys`a(LC1lIh$PKsE<_NG&*uqO?Ca7PLsK>w6xb` zf)H@pd&$q^yqD>SVA`7u*4+$mW;z!5Gu}(O2h!ILF0Saa>-``V5h-;kiWgQdx;_{P zF)1~Kt)i~DM(q%aO7zMaD>wvoT2d-!U6xWQgg{9D_kAQOw-l|K%G- zP+|%>|0N=h0B&vtzsG-g;@glEwK4tZa^`X7H!E0A{QXQDxgJt&t~m?+{nYc2hzNGl zO+Yn!_-bMf_9(DC05Az3%!)HcPzJZ$Zk!QhnD!2Gn{bBGEJjDXPIb(z_KJ!`6s?yi z9mPfia8I{PDycAA6FNhg*e|bhI(nS*FE6hM6dR0924k^BA+yHov%O1iC8GKs7pH%F2CTcJ{rlj|$>Uf3U-a2Ge3&Gq)G z7OQn=*8B@fOG{$4wfAp4^)jsR4Zwj`0|#;wRX|OwOGKc|(ta@go70M%BFOC#2e1)} z+a>`ntB@RNJ0}q6(svl*4(EdE`U$(aI42dVjYRI=xcb3FeM@Vi@!8>Uk4CFO&*wSx z`q}hsg+x-SJ}NOn)WKu7jf7~5ylU0Gb#+P9)!OpXrs8$aHaB%muCnO$bIR0#0h1YQ zR7C8WDxsJ0uf>s&Y#(jff1(7Xh#fqKc^D^rvKgYB%W`xEtejBfX2vZtwM3`U_t$vm zS!^C=vLzBZ&~yFZRlz{GHXJ@Q);I)NF)FpXGf>u{)0-d{0zzTC`wq?n(G`wWhi@8- zFEHpd=uFT#A^NH}jJ0jPHB?od^X#*^wctnXAKDWL%(kn_wYoZYaZ&@Bod)xG-QvTM zs;2z+ewSNU>EF{kjN4chKAo-s=6dN=K0TY~z!|5%9KAk0mGoSuQ7|3DKEG*5tAiM} zc0saij!thRzaay@@(boXw{TxYx!+%2v2WpX?Yk<Z+=nmWp zuovP)a;35@ICxbcSX~neA6op?>-QNFdcB8#;)KL5H#Rx|i(vNB&j7y!{W%>)hPNW{ zxLR>i3;0IyU-U8Jp}EYh@bf*ofcb#=)IjQ)PnZwj%RkXDb0Zo?&I3EICtpdu7>j~R z7r1`s0ZflqgGYA^V$@|Y??76nVg?+_h!{ERY{&cq^G4tnT#7+JOx^N^2K;Zeo(8R| zVyI%pZIPO~!-q9mX~3dds1SPRdk3$8wh+1Q_O$|=6bWAzt3s85{S)0!O|Gq;tCoNQ z^qO1*Vr%~dbty451vUfgh2uML9uXlRmoaZM!!Sxn+ya^L8`irEi}Qb9pr2bLr;|!B zCwR!uyuj133)Q628YgQ)RW~gi!wbc`<^X-e5t5&qn_jCTr64~Cf}U^h-MshU&#l)% zxDlFOF{xXrueXB2jWcXMrSF3^D_ap& z*>zDxc?c5G{K4|_Uv;H+^=)%FtxD-dbY78ITvJMJKS{*z>7Yi#JPT$53$MzmYPlhIMDDeWt9+^17}1k|n#>SR8K0mfag87tiY0 z6Is7|qtoNCt=v5k-P_f5W$G_Jk9%Exe4WSb^SM3i;`Qs?9^dR`m#(YbGpp;$=oy!8 z@pwx;n=aWB+t)Me(%RLREcW{S=>3*6y*NDNJ+r0xtkSYjsI2rX0%ForUz4W*+Z0$i zI4@obsbnxZ7(0xbe6NuCzQEMkob2jKHg}?LsYfRpncb1Du1K`I8=n3fvx`!I1mT{B zJTxi$9Ly8?AZa1WEwpvRlh8vq8JldP9!6)zdU~Ugt~r3STc*B&JmKd+GY4xo&N-Gq z%3wj0#We&Ro5Q&*&V1#o!xtI(*TZ$Q>&d-V%*ABVg4Qy{_3=-VUao zRjX^X_yR(qz>Wum2Zru-RjXBH2G3x?zqx7n@{00`^74wk3(FcniBc$)$+F_vc6-v~ zthYOdnG4yO_w>NnUuHH#c2PJzb}Pr!vNVM>otm>&He-Up1hdCZ<$gvA1V*EG$Zju- z0P9=4;D(x-Mv|E{YSan4JE4#(%vw#{uO^1rQWZmy|mZmuGCxvC(4L0>Xd8Q78> z0O`d4aBzQ6SP=9XC>LCXiGKBH`?8ArV)vgiUmFxuNYHad6i@HH)C3tQVJ z7EMh7C4EMP={>ZA7*XIe7bAp%Y5@2X%vP!o;7)*4Pz~UN8ScmY>Vm0HdAXK zVQYGq_(qnar6=HQ+@>N zCibIGpFy{v+tD+(@UC33fmwyFTd|f|4x{@Np3w4LtS$^X0k9h2lCWjar|(p_wma)p z5P!Sr*4u~nB|5Bwm6gl!jNYU^r3k)?eFomaQ3WPd;$5F>s|!EFTXXc*p{wd=*#;~9 zEATU~GEY$iqVY2mGoSgO)V0G|uU6_3Pd_ufmwk*vO0Iq1>pI_6r&4H8-TQv$ zc`#;`w*Ka$!&laKSQb?Jm;1A>;f-mm^ZCRwb_8iW!*@Uk%x;jWq|V~^pQbf;ykN^p9FFmD)#gxzA!hK*(#f=HxjOE&wAv~{o2#lO9F7t)BHQ!rvgOB< z4I`S1RSll#vE@B)Y*lS}WA5;EwGcGCR5Q}pc;~X^-{CRrV;-Pd`TMY50kjU@6RVhN zW!ljF_w!zP`Fr!r{5IU`a%h!Iw}KP{Q1Ha)@&_J3_w)C?{KNe(3qF80Rm|1YTl`u! zx)9>0k?6p(lEbBvLnNM+RbGK-r+`UP_Zce_Qkii5_H7&ZVo@??T)4;MFWYhMxjQ_* z(#x2u_n|7UcU{%t%@36M9^7&`w9e}dqbpHcP2%33!xwFOeDei|I}bP3&xH}R!U+Bb zBM8EdR&us8_iBG2ZPjpQoFItboE|_r_QjdisMR=jd1_Xn!p^MtyafOHp4atAUO6^0-nSH-wcB1XSn_T|ZTQFMU5b;~Og+3pTqg#nk2w~T?03F(os!(`8 z^F03NMdl^^b=iItWuDoO>QHPy^DL^}&peHJ@JixxdI|j!Totid6!6yUyuNIiN-vq@ zp_T24LQ8Qlyi;Z&N+JMWCv9(?DWw--llg122ld{4L2eBftbGvSE0pCvaevS0^reiVU)PyOPZYw~<& z)weE;M;9j(Ys&J!C<8AfpsWmS* zb|8nv=xR^GmEB-;cG( zC`kP_9w*Bu_wJv1MyY(BVJ>|Wuj~=xI@->)-Hf0ePbuIXq0XK>o9u|xrtZ5Atvi9% zOui_SzJf7*oG{Q@`d#Q5dupcpX3?#k?w=Z-ycM1M_v3Q;J%3~FeKa*2NQflvB6PHm z{tNeH_w<|alXsnd8#Mrr?m_L3qxKK)lZYQo9fM~P@d(iQBxPeIEV~D&$;l_kGtnk= z{8r`^p2de#=g|bK2@{RTiqHwt`(^3` z=beZ@Q~T*RfO_yL0)+On(U(7`<19SF4xW}<*en}AWG^ko^5vIv75__w>=!kgUw#Hh zi0p9Ia#^xzDTMZ{R?D)cy$CvNOqbipijsYD`^i6I~`3mQx0 za*4$2r1^EHegy8;1lYS9EZA~5yEXx5->xOD&q(C7o(*z2V_eTL9#~1uxh<(*#2!kE z0M2>Jv3YJ2{=eK|V}%VCvw1Xbj;O?j!UC;G6SKue%qEM)WEqXwV_Km$ztAL6Rh#QZ z%w|iOe&=*H!qi;n`2fh%(?k_%=eIYYf>sr`MK~X z&!|+Ha`SV^6&R|57SJ{)*Q8OJ^78Ui%c;`&lW!rnlSO)AL9U{(K%OHMvgik((@|1X zB#;*fmAM54kU+ACYPN?bxW$|Z+pA%z@M12SG&o^_*wrjmJJSm!E~EC_)m{mtwTdNP zHC(dmCiYHV^|P%%A%_Q3H^NRM70gl+pT)+yGe{Bg$y=GFf~M~u2JV19XTB!!$xDt8 zgBlTn7U=UY;ScjQr8!Q1mx35N0$D(?r=dWausR95r{UaG8*>?xVnF;LiW++tZDKBZ zck+5_44&8l*|_-3C2;OhE(V0%*dPtrA2B@$M}*fhm%`Imqow!foYES?XJOSK-N{eCNCE?6ucr*nC1pl+GN z;W5Mc*!^R-#bV9PvDj^6W5;53EiHAiV`H0NYj5xCYj1yT^QPC@+xmLj+Ft`7R6lrc z&IbG_!7EmaGw`~9VOBFDnpsw|-LLdhtOtPg_XGf&+=dkNvtx%@H1+f}!7SMM48SaJ z92~rnn{WCGb!^$R{)+nK&edSqj?8~Ua(oE6s;i`_nkuUg0&!9l_DM-W^8)b?SJamqFFNnc z%QtRLFc&hbcb~;0n7!aj+=aHKK13^-z3Acbai#^q8D0`CqHd)&16RYC0)KWE1Iu!L z{1TSXBDdW(8VU~EY{ifoIT8$w+H9UZatR#p(v*rp`4n+i5;=W;)u`R(cH8WuRjmEN zS}0ndSR#cWsZXo*is2GYhQS`$j~<{eh8YTBLH@$!{g(K$|LO)veqzUDhLgbwNu~Jqz z9SF!`f8e;F)K8K7T5oTg{2=trJMG8X-)X%t1wFADvKYl+*HN&#yd^EmyV zv*|*Jg;D>pRRsc8qI5;VRX0vVS5+8m4GqZsXh+KjaHxct?Djy0sHx0dvbDAUVvtQr zxyYkYRQ4LJcJ!D#sZ?ol3i8WL`A8}&Rv6;TBoax;u699GofPDljSEE@$RI)M`!1`j zgou2BRX*>_1^>LDb9XhG-C#^Qo%1RaTfC)#%Cho{`pOrSS(_aqM~A0;)hUBk)9jX) z>$LUST;`fWc}`vdb+x%#p;Rj+(sDKASIJ9ct*SDmrV`f2Gxa@vCGQBFeuT(#{PamU zQoxsF1Zmo;<#-#1JdU+-^)1qHNVVt0tAKx+ghN^Kn8%_WKS^j;O4^7O6bB(36L@e^^^A&=e9MWSL zZEM?FS{lyFk!iJk)y9xoY!c>aMe?AbeI;l&sf7X)a5is&Sl~dpvOKX(qPD}ibINz| zKYF?bHZ5Ah{NvZxPZ0wHqaZVN((?-Bg4~>j#>6YTe)VD395`uR`_T4|ojzX(T-r7h znP)1itBKsQq<42kML;Spgq&S#p;$c7(tN+Yb)C~$Op#2YK%~lnsJ2nt3pnm$%IMv& zzn2la0mqzG$~hz5?fjkP#&WQ;r6OaII%G3e%CttQTGbUpTMm_%yUTrL7Y)=dbgE0Fpj5e* zq5|l-Kvk%TI7|UWkvg|Pk*_XRXk%q?Y(}KbEl^?&;$1K){{cJ-j(^}Y3S34whf_bL ze3SXZ=7*wi(lZu)XmbzmuBK@0*!aY;Xe^1J{XKaHErMskI_l=mJR|Gx-@aQWyZAST6}-WqTS20gS(>#G zPTR+6V)jF-2>Cfzyazqi2N|6zpd){2OzT17ezx^_@YeMLymsKKf!@cbj-x(;oH_yUa{;$fyz0|cjM920dnyR~ z^*9EfuB8JC*cIrEOa9T-H89ZK^Vt>5rB6MD{`uEs3wHawWeE97%PyF^apAoF@Ahum z`|o-EW2s%okE5F#BDJ@SZ-H}6kvPN;rnuTU0u_u0T-fYvccVEOcq9WKCUVeK88{w4 z*M1z}eHnOt20lpaM!gxhJp&(|f>I6{cy$IoLKLBe8MrnBADG&PdZyw0&ol5L7;7!; z-|HaC8wI@Sfg-`B>BPA&S;zHG2X*NvbBbAvm{Sl=zD^+*xzwtFTxhGc_3iR`p>)gS zVrm}^1zE0{TvA@qq!fvG{MYjY{)+O;pa=nePaj)j$OZ42wom>m?L(vK0z~APsu&WY zrb)jKl)&+9|@WO@4!s~=fi}8-BlbM(>DhnB(7!Y zdw@~nYDpRR65<`^8Q>kj)M@a@0DZ$1U=Sx5$Z`A~FBs0<#7a7?;c5`YVsKpRSwuWE zxf4B0KllUuIdbX?T#bm99AOSV{y652JD|se08<>CrGk+S5-V8Bf~W*t#O`Y_MOlg- zX7@D*$CS&#ho}C;a!n47`346cB!*e;$iXq!uL3MV?{T0L0UV3Ks0an1;K`};&!-+p&Hj>FNhVTj9FIFw z2Tr0tHD#!yo}~haoU>H0ilqWfHT8m4cs~appZbhl)g6ol*KEqbmk>vpmtkC7dyFTp z{Q_bWizl{Xlb{mdprNq+Z$Yb|JqPd4z=x;)jqc6BhcfU%Vk=sgfn#do`Wc=2Gz$(< zm^6G~Y6)5k`)CL}9Dm^b4bIdj@IC^?l~pU9=@@sGLoFR0;WU+WS)-rvgwSVMtj>rG zj<`OSlOs@y49zb8#>Dm~;>niAc>FhK?|8nkp$V#1!5N&z%`FQ-eb!kFBaO`yCaVdT zg}S3%7IV9o)!AcemA$}HEz@X+y86G_^YR6s&Yd?tHh1plsOQ!GUss0{^;MBy_rE%D zQ%$fo7OK7h?_rFs%UIdW&3=qHH*5B}nb{9beT(LSEg6`)k>1Yx0&4Pv+3Zm~|Im!X z&(kp>3Rgto=5EjSA1V=xqO6=q(8%d64e?*y*{TT}T>ZWsPuC|Jpn!wdaQ*S2noH-N z^;|=;W%6SWVpwOZU!gcx|etUz5mN|;ryDgXuP-o z%U``5Kcgx%;bA^K?D38Q;KEnu9;~TK$}Nu>7w{ndd(kx;bQPJZaYni@Ml z!2+1~AJSB{5nY|3l8qUBEFjK78vuSWQ1eX!DZs&R#!}%p>d3&O8Tk0rhpbe;7XrVf(q1rDhI34DC7iI8n&1&oEPgD?X*+p!4+pJJSoMajx|s zaT!_%d)N-6#1)ia2SI!s?_W8q(!hSEUi%n5gNrGB^bw*d>NqNfSkAl0CsUxELyzo} zf=1|3&W>vw=%63qY_%nU2H=p)z>fEPR!iXEc-|a*m>?16Ivl(q10N)IX7%IDz(--X zp6*|tfe%b=KoFmV9LLXi$9R9obz$N&syqdLQss%O5fDi4O1hI_NCX)SJ;AD8txAha zJ|&}2?rz=vb+N>P^WARe(|KZ16ssYj<~30Isl;Pn7N1%DiCj$uD$4gRjLd_hq%3yu ztPTj0nNf~`W}6v3|H}+~2x1^H82vfSUe+s%Gq-+z^va3~|9_K0oR215!b%6Hssdd) ztqxD8zP9=Zq=uWdbKdjVm2aSFyvfvJp>j z!$bA4W}eU}lo!h@APY##D*Y~l+#!)ziqx}%k?Zlk;MVW_%#0QiBJ@E9K0gCrKwOLl z0B!?{yNBiekYmWw#~POVb8sx{Irt#4mgW8&9LstRJ_`E!FWGkXdJdrh}_;&4Kt3G4bE%%m4pb#ja{d z*;c452K}tk#{M)RiX_r#N%_n|UTP@9JJbqfU~u> zSSm22;X4UT2P~YQ1MM-KkH#syw%fp-h00tR=%OlY&vI??IJiE5gA%xP065~WATP*4 z7@vf95-Z6Ip)ZnH47}+Cn22_^!Y$bvjY5T0u^ z%of#R3vGploZ1Rm;U}piTVcyuqtrt+C8tVL=Va?_(Jvg|z5DoAGP6*v#g&(~b7i;G zO7QxwrC&(3a3!~j3Pj~brdH<_i6poZ6U=HOjDD2Gq>07M{N)&rER>IRT@E_@Ps}4Y zDArXt==eW%87Rgr2OV6Vf$~1hKu6!tK>0)lI`Wlkx(D80(onp|23U-9W4kxgdgx;c zc>4jcgUex$Rs3f?pNv=Qv@x7rM?wIV8xA0<&?eV4d%TS*g-Rv`1gU}wp)G3b*;VHA z`@P=tI%}4A3;_iy_!1(u=0dSVrPcIBQ-QKZg-F8ZpU4wb_- zKBy;9!;D$M)-a3W^TM3>A3M;d4{iL1*9c^cb2`i7r&Z3lBT~wAeY1_p`nm^~(==J) zo?#3b!L1Z_x2!O-wa=D-FI13S`;4TZ@R`nx(v{E9zn47N*f=)_s@9BnE3zC<2JCne zY5TlvVKnlH;c$ln_qdK}8)nH$V4uIWVJM7PcY_=vq^E!`nLq2VhiIm;qRR zQ&w~rjOj&y&%^#Lw33C-Cyq`r8Tdcaa6TG#Br?!1GOY)RTfw_E-OHPq)}z|f&=)e$ zfom`pxHn#xfezU|0XjMfQUq5lb6^_(Us}xB2}o=qGgJdb(bVdhasfhZ5f2;*g%W37 z4av^VWaAvJw3*Z;|EV*wQl%`GuqDqTvu8(YXJgx#9WS4knezhTZUXbn-@%@Y;~fl^ z8;eom(I*v&jO-H%`b;6MQ^|2~X<4e(vC0{8KGz+;_Husjys zH}yGg&$w`PvP}CW#9x><0e&vD@8J`;{Uf-a5j2qcBk+i~06q@%B?kIpB*Di=#Iyr?<=8?R#ui2!x%xMSb-%8 z3uPq<2Oa+u)A^NPZ9t7N7$1gWpTSYq+TdDa>BY5Pun|iywpJM1vzzOA3+|bPvipjI z4*whPD-MeH6$c&Mir>fefOQoPI?9fMgJN9;Lopv+0@@ZyjDv^vD18vtpbpbhcDyEI zR);cXH5Uo^lq7MbX2HxT0kgl&%>1NzpRh%%WxU z4%W+S9j>t&N1a-3E(q5AmjY(#`Ci7yl82iaSkJ74;AV`qFb)qx-;!WEFQ3`~wb-5j zPUIuv=@|=7TgmBEY|fnikJ%!JW2VUrEPVNjMT@R#a?kUzvo;!43D1(Nno33k*+trP zP+Rn`Q1bpOwosd*80rn@iv>9XnD|v+HNUY}DCFw3&AGg`yxVm03b8nA&UtyMhsw?v z59V#SjhxX76K0&J(s1dQm%CurmS}` zl%-h?I{qfm5Gnwgh00~n2ZjR8PW_9eS+)Wh+lQCyV;uLvLfJkz==g`24tIie4Ash@ z4-UG>^zTetOtTzxa6*f1GN3|S{fo6IarH0k6wM~a8FAhK6czwgYPt&83oraa9kBP` z&r||CeEj&&mIAx>_+iX*R!seqKE{6#ctzQ#4A$S!F#_`(wniB5MHsD*o9{NvuQ}*v z8R+o$O&RFd8R+0Peg^t>20HrrY3M6yDBg`rArb-=Md7?bKYcAL`_h{Z+X%O@j|s|8x?2Bp!vW!=4>F z&{Zmx?&&q)S7he35O95Q297xgH{S)oIdTAQggtQsyXqigS?-QkorB`_<)DKrF>W|0 zUSAG6`oU=^USABw>pMvBpfy`xjqSOTh0iB0XY~ROj{D}|g8;|FTAMOuN-}fUj`pAn&%7fp;faE|Cm(cH11H8|0EF^A++C6@- zXQ%<@qpO*ZU%lqq-_k#R{gq+oP8>%%m;RXQ;*;33H6z|UBhn1a6|2Z>0zB2Vv#_AR zCUrEJERDs!Svs9@r&3yEl~}_DeWKJi3yL4}J~S$9g+h@|EYf)_mboQ*ohLUhhom$` zB2}@)JQvSE$P-Z?ffo+X5OhoGqm-K`y5R=69e1agIRCX-Ir?kVYj zb4aV9ERh4ezrq42q)}j%$?Z^Mi2k!D$=Lb>}<{Bn3bp&I%F$+^E$s9NqIH#$l^RJLgAFi4` z8~S{VsiAOG8+=3)xR@c(SUP7Veb$0YgCVbb(&!9J#A2C5T&5LtZg-b@HF9}KNAIDa zS`t*)GlOQc4}QN*U(i!4mnngNqjQ)(N(`qf!Fw?Zd`|F7<{kNu-KDKsyB+hll8k2t zN3Uw+A%kmvNj4k978nR`gw#|0q>=cZJrkEXR74sdwL8|dx89R%X*)O8R{s=OF~n2E zLh2NC4xCfkHWixs6G*ge#I5i@BJP9?(=OoJ;J;vNGfZzVuB>;qq(S%K!VHe#a9NiH zDryM6VkV*Dg?@Ix-2{tGSO4fhPeFB1sFfiBLt*jqpi=CmzHd6nR|}MU5wKycz2z;!rcH#ZF7g`p6zxQdrL}obkeJUSrYBcEV`HX z6hzIPkSiMlj6ftd<0k+o4M!au2ZFMra2Fp5hm%EFG?u+H$-91UH=E~G2q9y!Qe3Dk zRp=w82`GOao}~Z&8F|HD-m0z&S67Fts>x(HjIY9By87tklD2W3Q3VH)dDIcMh%=PX zyb5_{W) zUIbMKJ)lv_Yc1v)g3GeA~R%-o0J;!pUpuiy{&+Pqh?bTY(Aw-US-l) zts1q-M4-t-^dpP{&Iw{J580fI;=u3Tq8~v+%pst_)GD}p0;*`Rcm2{->e2%*^40hZ zJy7oC2KwWv20lp((1KH6V~S0c)1NR0_~&4b5%&Y4;gcS>fXl{bX-1H0d=lw`a=A7X zC^>Vsz!;Lrl<*skLU#I-1TB+D{I>EAwOqaf3SVgDA}HvT3j-ie{YZZ_Rdt#p!jXT< zEKN;*$9#iaq~cj7^)3Ao#}S$DU^HZm{ugx_|Lp0}lY2VO{Vo4&W<9zXlEo08ehsSj z{{VNn^GCp4v(5h*)Ov2o<=3aqZHd*kwbj-&llqoeO?xX`@qb`mLLp|3zqL6KYHsxh zTbe_`=9Z}`(hKKZ`>8o_Drh_kV_{EQg<*&C05hPdLT-C_auB%oAECMw{YRJ`8@u|7 z-NRTbK;~RBq?D2}MohoLIG9nCCoY;wZ&M4^?)OjL2eV+~yJtaOA_Y_#V*8du{PHxZ zq<<3-w=;h^s!LTdE6Den8XBKJ=gcP)4UGsjB#xmeJJ{d#Yg{&OZt9v` zug$T%5q=qrxg>{NEO6+Gw_wTxb%}lsMh*NV4)|cl11y>|j+Ai0ZBq=vVwjRLlb%ME zR?D2KtEssK#<%c>a5&2Rs8Y#eq=(u$xjnDU?pohY)}@|0>#2rBM;>zw_2zdb>YqFV z!#dWxY-RA?et7ShK$$h5Jz(r|ugRv(>DW7VDRINfj=cXL-rfVgt@3Oe_j7b)*|PTD zd+%XM-j;{FN8;=_(@C5OnPd@02`d2-X4tc3rePNfVH2Q?Qkp_{DRjIor4vdAwobn5 zkz_}v@V@`=`~AN!u^m~_Ip-PobMO1Q@xOFD%su2J_t&OzB)t!Ib)DF`>*ZY6V8HEO z+r)iFPR9Cyx$UsnmNo)0*B8)f^gX9ey&Kv$(0^>S{=jeNjx1R+GWWL!>PNrXKe#XS z?kV~Fp0+1;HmDe}hS= zJLPvy&CD5)gP)Zt2yDeeNuCn0?_&*PN0Lbx<;m+-Hmvj-BPxkYYoC{NG}?648i^F? z;-dUktzI{~-d?ZMxFkeuRq0wi4MTc8x+iQA=>2j)oDK|}JV(9brLOKFqh1~|S|W0t zu15Y6!>dMHF6Rk#-~L3rK_n7cRh(6t zdP-9ayO<_Y+$|nl3}x)QXkU9zi_$5zkl8zSG~3n>X!v?_U{P?*J&g@*iI{mfX06ru zg8=`!e`ELN%v_7f4Di>{I&YWN6jRyFrr}7uPmez)T_69IY<>Oh%RgUA-cp!^5;4V& zSwHKdxGgS6)kk=HcFEPXiA?^;%Wj)}G!+NTtg}W4kWQX7F@pX%c9XHko1AUbAv{Vd zqTF)!A;@cLQItSpFjd04i~F^Lk#axfJ|)iqQsQ~4llAoQ1QWmE+Q`$aovza=M0C!s zv?Fh1&U6$4)QGPcc`{R8umY_V1s){!Y0Q`@47bAimMFToexCqot|!Fg_MiZutE2Pf zbN9X2+1|Z&ZPU$5V)YUU%jY``x>k2~b09c;-SD#OlBvvg8`yBJY0T+xTkZB$ow;$l z-OBzhGRtnSQ;TH74Gq`MQ*C{zyL&cjYhKx|y6Aho=|xVJPoefm0pEr$Jd9Iv%n=R( zlW+0^Rr}s(I8)ORiJqBObpcK!lL4FvUAK!c_rvU9#mLmmOM2ax!e4-%O9U~MlwP8h zugZeI2*>!Pvz9&4)3uO0Rj7697_-={0EmoQbq%(UKC&d$dcVZ1qs@9c6ASG&4`GJd zJ04xV^LTqlx67ex^M!hhZs6Yy?G6M&{($fNMdl=q90E~EvppdfDS%z~IFHXts^t;0 zA*NJlVV%S*17`;UVZYb6b1*PuMNS-`>g|gur{d0G!{Ctc&$NLT@yeMx-OVZb7HG>f z8n3s=vWgWZgbhyynX~_~=;B}~>03MszQjc#`egc6%}&aXU0AoA6pHi5~@LYzEKJBli$;kM*9Sny^dTAJg%O<>kZnTSgc2H z(5rj8a^Jm}TypU{-QB&t-QDk8%G#!11TQnJ-DvD^ES&f)M)fdoYc@c}E(YbEHfRddE_Wts z|36YOhW%xynN@mQE?so~>$zNCIB1=n=-uIuB|6*Np5NQzOal0kmM3V>a}U@o{-DRZ zwsE{|dmsP^O=Z0&vZw#>wdwhGQ%GtxSl!MYa~oH(Z@j71C8M#+7Su0u8$vR5HV{95 zXv;P6Sesc|rIm{GGEG3E3hLGw;8j@~XrBWVF^NX%v|8rXMFy<~KR~A66IKh#t89=55U%U$oclwW-{X3MFWj6ZJ6-R3=;wkHBJ_IAZ~Ic!nl3Q-qdmaUtajs^`WAGn)snpWoRb3s^Ljfv zUfwrpW5in87Hzn@>!kzg&Yi(f9DRCx`ct`cqy9ugJh30^uoQ96dW@1<>BTabqViIr zfkHd9DNa_P*b*ZvA7%;Yjajj-$@$6C?VxDXK8pXOS#53xhVPH9^nYipjZ7D!bhyT(?p(K-az=sLrpGqN2^tQMcN zD(v*{>?<`{LkFk8%A3#=2kT60Auh&FnkcRZtflfXYHQ+kI+MLNn3WI2~9Xn=7lZoOU-5jZ|x6ecXz+Et=JI=NbFCq z)6{Q>h6XI$QFYsnP$-!Ug?6-+^#g*`z$g`kQ5O88U&U?YtYWf@tN=3Wh4bu97E6=W zVed)UDZ}B7{rJb6@{A+VNPv%eJH?AKtxzHFZYD6Mi#=>+;r_@ega2uokf#+ir$$jk z-z$pW6!7i1cC-QBdeKu2^|b($^J}?i6Pn4H7iDS7J39gbSD*7lLu38YS;IfvJ#uYZ zc1z?Oj=Q+?(p0*`WVfyD$J)bS z*cf1T?YXbE7MNwp8`r|$>kY=*R4N6dkSl84_XE4h<_IT~-ynOcswyebN-vE?nva!rr7F4Y>D?;-=?qIoa2-f;2zks|_C*%d{Ou(L!TjhkCQ9v*ad$-F3$r!kqsQ z8bH-L{$&jkwN^KnfwFj$tO;;yBWN3}K6tXXf1#WUlkY1w&z}9-rrZCyc-Ozr&+dvR z`&1Y~3Yye6Fal^&ZM15&+{=men-(Hvi;TgP_7$H#tyy6wiX)tQGnH15oAVm4SSqu5 zy!)2K=Q%WPsno4;%uCMO<J@?3J^2zc)O4iOZ>Na=99{F4su6f2=OOyLI+8*|x1wN-Uwd9$URG zlop8;%~5k-h|J<1?pkBlIsiA(nyS6D_hQ0OUU?m6egcvyQ|M3(?kkv~FO*nP$(>wO z8{~o+R1RZ$=J77l9ebi0dDn?Z^rE@5FO4NKoh?ldjN7cbPJbP`72E!ezRwSD*!XZu zbI#tJe?cmi0E^fulF7oo2J{RW{;@#FCzci0*CsQyiNvABsbekNoEiZfT%9+(+q;dr0mFq|7gOt(c_LX$7q?TW5JZ zgK{}J+cohsQcqZ!U7MK;-biXx%Dz@+&;6-P3=Mc5J5%pfz<2lVgp1kBFlM85S&MtX zV)4G(S>JHuye;?D)zx9fmr*Ji$4;Ebf3@H-Dq`%G7fjIDo9~D@Jr0LsZRfVfTUy)a4-bEEko)DqUk(k=>u70tkkSk!4SN&TDN;ai zL>pqtu!>(!>H;SmgHS3{R~j;}e2lX)`ea*f6l%be~I#tnjJFUGiabceT7U*1;I~imCI%Z>D>3295 zMPrK{PCs@Qwg5YV=hAq<6kR2f1*Sfoc<1$0I^}F+;uK(p_(F{^-mTMW3BR+s;jXb7 zT}_FGju0N~vcU}3NM6}=Yi&HqLqXeiN({`&bNA)O14TP({@Jc{Xb{AxhHh5aQEx{(rOu>t>kWE>e%=5 z57w;?&Hh?!aMY0h4jIQ&PLOja{t@3h5Z%-mT8@>$pF(vp;yOS&<>9Na%?JtLs{r32 zx}KQ+^$YIf1CfsshqyodYJwPUssD&sn7@z7Gmqu3Vm24P2l8y;Jvb~$#VnlG%OSVE z==&(FUAa@NqzwIMBQMG&r;Y=7?FK-9{p95|!EWh0jEQxGL88N*0q9Lk^bZRwPuiL#T*Rxw})9#FG2lquR zQJJRM;~z_n)4pEywW%AHL)sZkb_AmX?pA}*kA{A4vuw4)ghpRcw2}u53=-YxeD`7% z8?k@YSVf`)sSs=#F9leWLgnidq!NcR%Xskyz z=pc8~ziy@@DIW9*2mL&E7t7)Ev{H(Go({eAmtMoW>(8n^QHtcx3xjCC{Zhm~nnl+7cjRrmK(AKzy|L~g=#%x2w9V=Ge-cZ-d z^iTd8PMO&e+Ug4X2%IH6>nw~@20l@WL(Jewl<2;|pAmwbAhEF{waHW>8ozuAbCR3L z|2gAI$dD=_m7!%9Z#gsj^I65m-ioGulXue9VXi4YdY;WraS$Ma*~Nt?Td_uX%#7!v zUR!hej5>kFH~~)hN+;!nov#!)p~H?=W)5&d-T}t@`K;5d@MIYuBo%S+jrM6NPj6b1 zK{M1|yC)3+T6(A&sz^C^0G{R~ueY=P_?i1&>&o>H=5jBcwez`lv@7JZ78}r^npeT| z%WWdpdR(rx+03ZjZYLj{^;BD1=g8o|&kvH+f%gXo=gi9Go?4eX)8p~QVzDb%Bz}-s zbtUjtd~VMstj8!$)F$Yx_5yZi5q^JjmFcd_V=#5h`9he zwQBr=*HAmz)Y$$#W|ULU+TwDeF^Fr+Eb{U2X1uo8oZCRDr~ZOH)M5{nG%J23wy@|B zD7v}84U#4FZ6qBOED4^RRC0;ECvv&o+N8NB$h|A=eWaa<3Eg@ zxP9Hc11VENnLm^1B;Tr?gPvGi0xdOwuz;@aAG2eXD)@SaK{?XgMfef|xtYYs%Bk?$kZepY((+8#Mg-*P~ zx!m(xG#j4;dgjR}P|h1PSwM`(uS6$TARJKvFW~bTqoh3igf@BP^s2*L{2?bJD}63 zl`3s_9Io^ogTW!2H7aJr9*uPcIOW%6|%6&5|+v2qwO6F$nS5;Z}ZHLcYgz;pz-W` z@Qkn4L8`7I;!i&0K06rsZTKMfk6-_dR9~6?ExCtV%(RhzbIZ}@mVPt&6ZAcD50ytd z!All@N&Mw2bP&P+o({5eZfEYXrJKIp(K+C88*%|hgT~|QYRx{nY3vw{-XR&rW|Zl zaHr4f4+jEg4_IPQ>yhXeqYZvUib@{)7|W|v%Vbdtjo0V^dXqF`z87E>>#&Li9fY!I zf*;U9X3?}N@-Xa(hJ1#39eti(&%^(MD=xby1LINZ!GK{?mkc&8xJB`u1qTN)6T58 zhkNFu`ycw|N8B@{o<}g9vHWe!x;$+}Tv`P>Drg}q=^~W=vgoYCjc}95VR#Ua?I6!$ z7RR_bW$Pw5eFa-L*;o7|Jq8#Mp?%;AG>T76St;y26Hk#lfT_6Qop&aW@HXK5=iuAE zq_P58x?w6AO7#t=(*sHlR}8Aa@Ja}!Q|S#w4ksvvk#m_;>ZUQmUv+c3wyv%=ee)`A zV(ca~W&M{*t!fSiTU2T#GlFJJ*hZ_AyH+a6 z^IV&11$ve2RoAZY`?IS2PG!~~SlO#ijRpK|3g&Y9>k7Jh`?=>qU4_*v*Wvc_B7auh zz)f;n*oKK$x#t-fZ)0J`q~d(63(e*#WXyea>bRVp$K|y_jkC+$yvS@caa?CM`^2_} z9iZ4e$D&gftI@+RNQSvbHr|{_#zi8oKnF{4{~g5^gM7WL*th0)wr^t$*nBs+`#;S zlJNzGO}fdg>+S?HS6w=D=eirf;iQCrLnMpJRq*C)g$`(_W9n86mC1&Q;36Udy?F*nGHK z?G>}p23M=6tI-ba0>RbKXY;qyDk2z^dYt%;WJ!Br& zqBinf)Y9d^&*43JP4QHnNCCMpZ^+ua>lRUeQNV)b`}ezQ1sJfZp?z35&7W zksLOe%mBPqQZT3tEq8U#yCf1#korXOig}q;0egdvec-|S?t5@zKFTKp5)sNLO-7VY zrenPt893)#sCtdZ4=-cBbJo4-6gshL8eF7cgKo!uq6&yoT(LtGZS7MWZGiv<$P$-Y0U!vuI1TtmfYRa+KabQ z(>Q!Q;BqcY9Zj$HxWgd2{=m{3)9I#S^ls~`1)@t{F;eUd#ZYUPeH(jN$O8CE$q7+c z&Jdi%&hi4776tm`#qyW2Ec~0&pixhJYc30$UDYiAYlOezhT2+c9Nn;3esiI8Kq7Zj zXk036L&Nsw#pr4N%i-bLgYyE*Y9VaXvDigJgZrb=40o%!PNOyf#Eck}*nZF(^$FgB zu@-!SrStKHfq@+O<*F+jtK(GTI6^E-562U5u*459HPUyC&REgvj5&?W&E$5_|C?MY z9gAN$G_*e!O_5F9%3HxEQ)Ww@Mgz5?=$#q_{Xy4&)P;8tE}<{bAAX%lZTEA3;<#(C zMO(d?1rXC{Eemqvp*h*1d8rjXXN#VF{K4C9dvIcahnk-Pam}dBH5xQcZla)1zX1L+ zs!>6gDEI{^d%$0EG4zO0!jMIfh{$b+M7)WNQz3+FhCzWyNhxH(IA@xD|M{zC+Q7|} za~<}!zat&MBv;x*D)nbdIbJGEH45dYiEwydZ*;^aHPzJUCC){)UAqyyh9~2RXeauB zqIq#|itU?tqP9ncCX^y&PvN(vhoZ5##e#miDx27D2QuWLr5I@+MtT6Vqxm}jIW+3A zp7O^yk$?UbBR%jJVYSer)H)GB`wR@usX@P3k@(Lf9t`g8iO#aov^g-RS&^Q|6oXknp&{Q4DJ`yjjp-+6H2 zt=eex{K0|qqLC!on}0&9RMi^IwFT~<;hj<}t1Bz3ba z`Sq_6>p@fVu-z1pD%5Y{##LXU44eoj>H89|o||E95niZ^+$yuHWuN)9i~Em?Cl{#z~a*XeFpsf}U`^ z*-vpwYoG^J!0!#yr|9i=)2t-kl1qt{Q^I1964|9If5ZLjLcRV1@&E@2HFPn?zvO`z z$o0d++Dn+l_bE1F47#ui-!GEyyxMOUvMYB_ww^U{_)l8e?A(&^}Yqw zRYPbh1t_)2H+X4`5wDBi&yWX#0ghtt!ZFW2hjD)Oy)zlDmUnX(z4z-+{p2U-&inaL z)4kv9Q^-0<4fh$&?iI{-Fm1dpem^tW+LFhekzayd1T-=jqCSt3e~U8el3>8AqSfuB zHfF)}Q4<>LO%uLcA;UQ#tlgD@!-nvqq40V0cqBCOOVV38?_wwh%nz?%*xShUu`Ce0 z^Di^aGNm#blY62~^9Tf!X>glKA$i2w{?% zVyNDwRH{b4ba7O)?;#~(#0xPhr1P2y@gN^k)u*+dut+_I(ES@d8y`_=C)-8<;Sg+LP!T(H;&&wm*US+C;H7=9oHI>OJ6bdTe zVC{C>$|nAAC;$Fy?xy$N+r|nQK93PCWtipUMQa+#T?Fx(g*v4=W8+%MivxR*jZ;aO z8}b{O>%cOWh>Q|l(#Q*O?+OG2+sIU8G0LZ~f>B!axqW&BbZqGiI2zV6IlY$CBX$-? z%ohl}-t2ql@~apu(d&G)ZEzZ7%y(FUu`uB8@B=<$Uj*$VtG>hC_a3ilA&*%|?v~mW zs(_aJgh(tYxHcFRY}{O_g-T$h@69{kZ*oZ^mjS6;DEU8$7 z6EhVtDp}GHVWj|5kuM>0fO6*2_zU_KW>TVpf|^)*jRZuPDrL41XoELh5Gc9!(7<+= z%`U8#L~W*=w|>?I;c$W=DRxV4wi>L~iWZ7-XQp#^BD=#|-`Qe*Img+kuV#hOK? z;yG@Bwez`(G1_TmdZp+=I30T`x`hAF7pwek%IWp;-+mK@<8MSZRaKQF;nLOFlKp#w z!6=D(eQWDyE8}X7StOEW{IT#{&%6tra;4pB8jd>~GpH#qJAAu~~1|7g% z(NOSXpC*%{jf2Cf{(|V6&by&!rD*+XH0INBzJiHX&=c5ga=G>Fh3O0WMlP@KUSn3P z2q2s-V;v1w&7X6qv2)z2(@p*!82C|#k=C`C{b{kFszxY{y3GC2Sg*+y5h43%+Z*lY zHk|Q5t<4$q#*Qp$y{zwz-bP0+-n`cP1*w&e!|;=2BFOU;16H zvAVi3balwL`drQx_4O;9E*~@$_;}b!{!0{fu#HM^Qnd7v8E1xe&%RSy!-F~(DN8G18iOPu{B|PT45&>{Lb_{W= z*RN-eV|8=fZ18`Y37#xaQ@H^%BV*;O<3`AwF1cCJIs#*HDvJUPs+NvMhEfyMs{)bgOs>KD}r(YeTPhWaHHKP_ogH_S%Gb@d+~?A1w<$8J>frDCzq zER5HXUy@I@KGoLV-QC{y)K*S1{hGNv|6J!rw?7yRxHon%?OmG?C38DGTRyk2qBN3= zJnXNy+*MbR;}b8;RW_T=0fZNTB1&gnpsB*FznZ508$Zi`GwYPc=R0S?{C$2OM&mzc z!Ge8WzxzbBM3M{zQ&LGaUeyM}wGv4+IV`I$%-UZ4@v$zGEMA(m*IW~?0TG_{Mv?N~ zIP3JwgX*Ef>2x-mP9Gjp4(xAAMHCcNz7hsj;1C(I)Mb{D&|GK856;0;Fo z3$-4U_$I|NEu8(5W9iGe$7!~FnpJ#33)g6vS6({t60?=aWY%*RrO)phxvZgM+^W(L zqSaYfb=4i5J@-&!#~K@A=l_PR3E9mQTFiQ8?%nIEx0V=4urhXOBRBg7~jgQjnvLJn=Cf7 zZD}UBJn`1Z;gm71M9zfSxxURkf|}<|r#1kG>^p^3C`C(4t56;wo#ANvYPcWfnPU$; z$gS*bYkPLju4l7to%Gf2J;xEdC5*WM^s^KN@&(YF_T?6fnI}T|edpvd@;xrjJX_35 zE+XGdvzN=%xwE4&WT!^Y&Xr{*Q`Fm!+20Eike3%%T!Y<1??s3=D&fk_ddk7Er_&;| zuveuJFXjBHDFHF#U}p+9D)G~jZtU?Wrwyf&)>3R!S|&e|NxrtIrxfb(c{#O5rm>5v zs#FT8U$3x;Ah#Ia1jF!=A7W9$h?Xn(tk7+gc{H87W8q${N((pJWpjf4R<%ni^Jy%- z{yCQ=6ZKlPX?|U3-C;wZ-{H*J9G$NE#TKLKLLe!44XUu-(&zInO&PhG+4`7LslCR@ zfB0Qtwa91Dq^$Xckq)3105HR&mpYZ`fLg1xOOSjf5i69c_AqlFpc*|%v9S7GtJN?N z3$AO*FN9Yj8rNtfZmr%cQL5u`YA__K{e2Cmi^V@#Ka1*De+b#qjYZ&9*}sUKyAnkt@v9X&r&uOch$VJejqD=qu3040m@USk z6!%}{J5a1NxLZ&OKG#LpA6c^S)ggzba44o}`pb?9K0{AbNtBfz3Q|L4j}rS6f0xOs z4HC6OER-SN=`$XWl?X*?o5K0DF69LTUqU^1`d4l&{SXmn3osrseh zdcPr)ZnB!~8?wz;4%yZ`-rc=Y#@$49x-+2DUBz#K{{x;Ce#Q;O$t~a)zLWT!S@d0E z>*s#<+oMl$zvv~7H@Kg56Z?k`ev3G}$qQut1LqzkN4Tese(flC{n7J|a@$Dj1Lxts z`9HE>uQ<-ngI3@rPIR}C5E*qW z@N~j`c?-u#FvmTe?^wmX*G+Pe;+9)u5(SITWf7i4#` z%q8QbKL08ISW&RBbGa4gliTv&|K0XyIy?IMIy#@(&Z!9hcg;&}RvZ2-X(o3t(U$zX z$4Pr*5Ehx;htf?fxV!)=!IBIkw=v*O!bVoq#SWCAh0}i^<6>{04AMg z>w@MhUTtk{m^U>1{=tU|iSNuAx7_Mqok}dU+1#%!9iH{Q9fyC`*E>LNz}Ro$e#P#A zm+=eFDj7dTh00sp3ulT=(d@KuwQulx{1&TWD7k9YmC%UDNN?}!yT4V)S|iUn?T+#G zy2UPQLixCPQ#O0Ban}>gP0jC88E~kgf{#>e+9?4!*Tq~Cx?D-9EPw_h>@T>NKG%PJ z9``w^ocDDn+y?#JjYzM)oe=I6vl6tk_V>Tf-^erIUNk565sbWaFX)$)N=o-aNP)eH zd-j>|^?fvbs_%xxt7xnS0FbAUaDsa= z*Q0_V!aYC|+{s_H=3gQWgk_fIzs`Kd9M3<*%zl3&!q8YAR*yY_vCuo<(dBn|^f+07 ze&JT`sbeGg7tvz8id>IgvkgoIH%4yz<>cK2Nq~q3;tsT1gcx@yIGiz&LeCeHo0uS$ z3DTE8&YR6F#}b^8zlJ^eKHAojicws3H=bL#sz`bG37R3Rxqp&s;=s2i{~@!VJc+;o zQuBDDzvSSWClxK+!|eTd9=!8ybkT}`3ula)SX1^?sl+xj?WKhWm-%CUWa8TsGJ8^? z&mSOt^)Uno zx0p+O6Erp21G^%Zf~r7I|%r22-2MzZ5Ih1B>q!@asXU)0M5*e|lx7^hpE)imv}sK=$;Cl}ad!HV9Vi zKO?rdM9qYGUjl30F;rmWw*dt zt5s=$&au3{`RX}+7d7NW=0(jFZ*LR0N3hbTbkz&U)|EY1|CwA z!DwWHhsF(jsrK1s}?ueTfs^xMq|wV}mf>!znqj9LwfN(m3@9D4dnwHmP7)OqGN zpUAIA?DJb6=ELmCi3mzI+S%_;)bjrP{`>S=H!|!V#|in8YyZH!_z&fk+&{S=e>=aI zw`B4gNU<~XmQ8-0Igeh;6guZ*@myZ9egVF)uTB}nDL}gCt#>k=+=QvYWT`hK`T=rL zssYhAn9U6))W5ix-{*Dg<@tqGB4CxwtOw!qSy2^ALh$6h;8e3PYF>p6xk2D?e9U`> zH=w-ggn9BVrjeUe`joB#U(-Uf$;9Pz+14kwHk_4th}n|A5`Z{JTNLp4d^OS*>t?1c z7UT@O4D&>;58|OyUIR5^V+AUrYK7c>h=}U8w4?_>OMD{clg^gxLz~*qOmlx{ZjvZ% z7VENB8mim*cvDl8Ou|Hw!~b8v4Ze*3GV-y8Dk?e(&1De*pE9An#rYH-;Z4~yMJ_e1 z#o&L7M4aIlA-2F(OU59LhAIVShkaEm>FR8M`Mga}WMbL|o4wC7`%IKM5$1A&ERF6& z@{)PYXGYuB+Vy500j3pr2Q9sFlWy4xa~s` z(C2DMb8YgX-q=ecw{`WL9SX+nX8+e_HC)v;=``QT)kALRvPDojTvJz z_Dzq-3&oQPA@WkdOu-~eJP^5EGYi&79FXtACv*P@eyLP*;lp_cA&ZC{#pKJR4_8!!<9z0x=}ScbX}m%=X8wL z^7n6iCf7Bqy}sf0CHhreedorLIa&3ZZ)ZFDco)(_v7kO&D4D@I`6l-y`)$yG2NDia zy`&rz232epjI%$ZWY)`5k@L8hxcBzZqOl)#uJ?o@1aV%E#XLJhu6VVjwV@%Mxp_G+ z$(%!jxe&$cectGiwZZwm0u1Ww%V!P0vu*E*p6(?ua-kP;AF!K1^T?hl8$n@l)CE#0 zN!Ox&g?f)s?pf|nJE_9*?Z#COrw45dbUl$(%Pt88{UjC&pTjIcNV}8*&V!P@thIK& z-5OUuZd%{ka#7>xRdtzu`s5?DF9zmLYdVW+L4k*QA>2-93E}|S$xVfv?5m9ialoLB zDkZK~*St&M8AMGc8qi^iYw{avdkdKX{He~6{15Y&(5GCFrvx#-|M@957IN6HG#Mm* zJVhZziw&A{7za)Pl3}5m9OLY@ee@}nh5nOq^q*umaUGO%%s%x8^ul`uQSctjrs&Qs zssUw(2PH_9=BVV=q%-9L9Kx1YaKGRM65@;N4nVflz}|4AMH16zecol6*sv|qER%>P ze{V9H7u7c$UeJ3IsnOR| zOH>NO+?0P=qVL3#JKK9Ud)+?bb$fUBcHXg=2!;>0&OZQ+c>?XCwY?E@)-jq~?oZA( z(JWX}Kttby-3n7WL4`7%Mp5V$Pg=@e=A|nMSts!V&DhJ`dT?O7+vb4My`nh{=m0x6 zv7jsW=#s6^LHai|WNt<-$6hkIhW$CW{}GqlzNYJR<>Zz-3+0!YJI2TFs?W65kOv+p zXz9DSvkJKz|NG-nad#i=Lnkk{%WhwZ@u298n_Q6VdUVN_=ejzFnwwHbW;0|vnOwzN z%bowA-DzLn8=Ymg*zM?@71~@H&+X&uzR{3stszJ6{{h984TH|m0iN}cv*#ig5kWZ}kjn@?>!HA(3QlBWl&Tgcq ziAy;Nyp9j|o#@Q<^mL+x7?}D7me7K^4Bx)DFF!soQ8f;7F7QH%*C-%+=PK*$~HD;GPj*)2xd`#fUj)OFwoWY%HHLZqodrZ#m#4hBN>8<<4@ zFVvTZT&`t__+lsOycy(^eZ<}YjMU+ZZPO8DdR~fY7=^QwnM%o^0Gc}zh9mTJUs7>g9W6i6QJ5!*mG*kh6Cgf%*ecVl~YdjxL! zY7tF26Y4~h5-mWh2w^GeS(Q>$4HZEMR0YCKRw;y!!uTUP?s$S9K; zYE(LOCWINHl8Y=#vA(9Vh8espzSuXk&!acmEJ%PmTji3M(d8}vs~Q&Vk}N^A=DWd8GNX{A(ZH3beV3@-ag{?CSpx=M^38X^=b+C%z` z^)g%56zS8+ckyx7u4%pqzT8o2-YD8A~#)h?lK&wLT*GJDA z9KQ)_`45eHLw_VW3-I9Y*({cMlyeQ7`ZY@ne`aCcB_{#OkIMKLb+i_K{gPEF5?G14 z3RIIRF}DK$Wqw3MxX!* z_2Nl-WPlfAQpycg;u@mSX}fA|X{FuH{BvNB-yb@Os=Znps<>2|*W_|Zz|h;W*kZRZ z$)veI;$Ka`>si_r3 zPjZIOB$aX2)_&O*+qLC+O-|?EKW|uUFD3a-`- zrvE~&0>*QLXIL24>mxNv+Y-O8*V*SS&PgB=1foW*UoJNZWiGX2PGb1HP%!#Ety-0~ zSz>TIU{*4mM2gJ|{k*N{G6eb0IE*vMu8gUrz|^MQ9#9SGSxkd_6~9t)rk+$+iM&SF zn%4H+5pxK-0Kq$z@~Zz*X&Ly1c+~>L8ig`GA2DE(-^VaaRV80sB~JoHeE#_nb5tr( zRzf@f>13Cq$>7gw>{cAZ&{^HS(L~+mba+X4^_!~!q~mVW`y)hHC6Eb)S}}WNepYhS z4^(z*Qk|)Nx4zN6rX{|!BYtKh`6*`X$BggAK0@(>t~WIUrvO#qWy4P;zkD^mlr>?O zQ#@<_A|NhRRn~Zn8aCcC=2qJ!a(#7G^;twHsPP*;>)YCPhHY_awU96Y<0Opf>S`ox z@>p@T&>*XlRPqHp!ocNL8=L3!x9bxT@}bM6O4>b3Qgs*h|1C3IHv~(&2@Ul8lz`6r#IBbRz$INwkD&mQ|}9rs!E`ML7ZXCL(pC?!S2u+ ztmzcB8T5!9_;LwboFK_F8WqljV@?zhZdwhxuh6F^$Cw%PIMnJrk_WiKob587-=1@cowLV>(mY?JeDwH1Nmi z3U7jEhx)>he^tcCEGjTl11vD$yVYe-7YPnurSD*Rjj)e~|Sn$Y#%p$AZ zNwS&DwR1^TW^Jf$o zfKV=tQG%vRx>tGP3$@X)0Y!6+d2wWi+YP*Y#~J-2SEM7>SqaBT? z7YuWy24n031yj#{{42TBmr?^*6FfuY3PvQ9#cYxDXN?@GH`B(A^x$!3JA?FTfm*7F zS>;xgod}RZyl8S1eCE3FusuFt2zo)R&V{wfU7Zm3pwz&i-P5YE01!%8V^OMNM&8CB z{t)Bq!1$<4@J)|zic||q-RZ%VD4{T{4SX~ox@`XJt1@-%Oi>hnjxjMxxialSavw_F zS5EHat>Y@!UK@#pm`r`<-YxC{kEhSob5n1Mq8}5Z7CE!z^OGm(PWEFb*MSP5&KEl; z7C9Nrph}#SnM!jh31mi4dq!xzD4YwbY5$zwzBhKQc&4XqHaFq2+7_j98$E8X$>cn< z_obIQmRqeRDEe!1u#n6SQaRMt{?OR26S=N_^e~>6N{m>7VRFOT+tJ=3U0-|4hVYOX z9vh2gRx~}^gMsp5}&_aCr{YIw9DolT%5)J zqf^Fsg^-)9sH_+lV%FqU-p9<}p`VMe_9-Y68m*u}wdB z+Og~MkAAK|ANhs(i^raP@V8lFz$Hv&wR2Q&I6OY?VzA7FUWlBVS}l00s!BY5Z(~!I`4dT{2h>s-QjkODU}8lGIc+R*EGpRD{1*_j zcLGJO4fZ_L4MYV2gFyZdc2o)O&HUkb{`m1c5ku8&aJU;)w4I5n$?XDIn|d9O6-@Cq?L1!}Q47pEUK<1QO z1sAYa|AO9w^kRe^JlvCGW7r3ZUwI{DqMha;ttp)w2$M2$1xKBp5rL?LPL)oxN@meh z%Z4t`@G6EnIv!u!ettvaDwo^8u&4X@hE-2A7gPkNj(X(Fd=^634 z-Qz8-hX;3kf1qbxGw-$LTI7DK>#=-%cpv`3{*?bsaJw{g^YMxeRKhs<>WrLUHkjf_ z%0Zt?tiSM?qUBLc;h!M|3MS@Py-#qQ$WwCeTaWObfeNs^zHT{UH(FJVO^&`+I(@+9 z9&cz|<97KCda*+#Hw(4eo6)_>t1|`=!l@C$XKC;upHl&FP_s&H15k8zb&W%#wF49~ ze{rY$TV16RY3jMZ zC@n&oAcv$hg$ZpB#7IvgYPkhQES_PK$&6J9Ayo@e5MDf5e4s%7gZ&A3^FYNu^dJ3Z z#lzH>Q{v6#>}f`6f7$AlZ#{B{sD&`&YV!YJH-0R4gME}t?W12(BU03eq4a2MI5JcFD6G!k$y89*c<3zP-J4Z1YmEpmYD}`G5ra`@ zG8%>w-X^sa5f`A%rtR^;;w}%w#0aej#X^xmiey5eD8J|b4gtJX;;nr2_WV2hH2(>B zi3hWAYp zb9={9xpm;oW{Y)cv!_$6Byp~t9sK`iH&35R?B>J8-RyA)k&2H48?D&5nQ*%p4Hv9DM;Y;f}*BIqWYVRG~c4gX?+cea%JrZh>G+mQQ&#{=@)qFvf zS#6%z)V2h<@dk@|DJ$sj=zMacW*d5z%nAn*cZ@Y3=xKb3BsXr@8Z|s`FgB*s*Dq;q ze#ffS)#+BbyX=8JQz%)4E^9g?5Qsw;zU`EZb;B|gKwm02HjqQ+p42wuKM9yKO%4bjC)E8OsJQBkbe)Mjq4WEilI!!-`E#;KZFi9 zPO+-mO5WKiLz*sSnO#j4iIV)D;yal#9)!*DeqsHwQQrTIgqO-s@cGjA;U=YU>D0#I zLiPnzXQo{Cc?nyC0WIO=rW#G1(>XU5n{D$VNe>MuWf`}9P9iqP=>)7soy$2Vo|xnC zW#lzA$64fn$i)tg$}QJ>#WehYS_+q5?$_GGl4>y^e<%M4cn^(2;?NkQDm3w_sbLsl zRpB!lrB$TVLsMgBc|sIEOQ$s;l_q9X2Grhe^f}S0^!-uSNXQc&aYlOd8lBT@>i7Bj zO=c%PIxB7;81m?RO89aFLb+I3r&n03lmeq%lTb+&8q~5WWUe}o+N;oFY(kw<;Ya*J zpcI(o+LTVFtf~|`HOc}te2iXxe@0h8*z39YY0dex@pQTdU^?#0{6wixH~B1KmCo1i zTXaP{QL9Atib2z=6uBB*a}k$KM%Z6@no;D+=f74hO2lH9k4{)3eOjfmQcw&6UqiM0 zi$GJeK~wxf{uu#+ArYW@U*P2_;fcD0oc$xRm%DJI=DTmHRo{OLJ~VIM&-{q_$&a&K zE7#cEN?s-}R-k%tVTF+0j~;VkpjZWvXOKl5!vL^rM}hja3Rzhj(d%qG^quo7F08l| zlz1iWyxs<4!ZD^!9!e+B&5;a^^IedEXk8<&=REuvVzRO>eKj!M|yV2{h>-N2CGc8&) z|EcFD{0PALT}~e(Ni>9GO-ZXkYni<2flV#EuRYLw#^iY|n;zhO?TqFJxJSFXfRA{| zjW_=M#v8fb8*cd7^s7@zJA#m$1-4F03ma^ve;9X5y1hM3e|$`$zM$GsUFFpVgS%Qh z!Jvo!kiPRyIDs~%Itw?_y7|EeH}h;uv)QG$=Kr=-r`8zA_b7lPlzyWgmfdlVMzrqen^Y5__RgHlwL}3wU3b>oq41XGzg7V(NnhTue?t&?XTVM{( zloHF#!#6PFjxlqXLC)|73Td5Yp;07~+uS-o^Ck(pT`TJldUv?B3Po5`1N*S@jb&^l zTRAcrpN#XqHxWxHl|B~~bZyd5n~i0F+;6jZUGBA6f7WEqSY>9Z%)8@(2PVJCvcdx_ zOZ_2c_9Nb8<)@IrACgp?hmgVJ^J)2br@b$ zV1f>W`Hp%7PGC9ubnHie{p*n<`yf69}sG3YkX0=My~h)CBt}E3CX4 z&!keI_)IrSS6LzV;T_zEKe**quH}|r{+#{vZ-2Y=(reHZ{_k|8QuZUhwer%^Rdn5w zZZ{IwnJD+c4{p8XU384zcFXNQBmiz|htCaO z210(xE@l3O?q=0^0-8@_=e(7bX~<}w6Pdr)>v8AT5TK5xoaUGu9iQGKYUs9U zpCu~QsIk+eV$rF;0{QJ$nu*X>OnE7W<;z^+7-l(A|BMcs>>!tC(4B2Tym6`B?gG@p zXkGI%8~QmC_J0-k-SJTs(Z6@*?rtCnkc66q6i6k3WOuWhgce9A5FnIL6T*@#B#=gW zLP!tAuBf0`5DOp*7F1N41r-$(1w}=Q1yt-^A-nH8Wj6u!_ul*CeO@lhy>srFGiT16 znK@@>?o972EGb=4@_b6lR6-`FV9mc}cS`bXa$PKpXm4!7Frp%DYtqVyi0D9npNy!2 z%^3HYnv!;);(?V1Qc|a4!~D&xJhnojMUZGeHp=Lbr&Ro5S}8;!MVFwh5yMq;1CtuxQG1|}+fm|eyQq#weGk;!aH4DIi4*jT6HMFg zgCu;Bf-j`jy&WA!{BX2}(+9<{^I)8*=shGc6vtf-9D-e$!^uQqwv8csYzJ(I zSMZrHeEUk$7k>;DQEzWy8cVudrUoua>sjoMy8n~>8or? z5xc42|6#QBCEI)7Kla!|-`PH)nKbcorRv)CH~Fhe1v272f_VM$2yKC6`?Dp6D$(?} zE7W$2ohX#7M79FyxyzOGY}YWR^(BzhBIpd;dB9;$i;m~2`iC*b|Ij7PqKw4k=PRpT zNJ>m2Bt0?dh3X1CPqKAkpT?Z=iMf8*G|wMLLnYvFssQrSjukjvH7hGEZQqI=D_&%e z*z1rCd~|$yWTY`BGNODu9@#$15s_u!Z?S!XrV#vz{TO9+6eIoJdW%olc$0V4S2$O- zESkd1I6XCOU&)RVY{odPm&>8*t-~h+P4laAy zA=>0oWQ%RF8~JF^nDEeLDf2t9BRKSE%e!Q<*8nWKib%k4Ey}(_*8WVCV~@fL6Dsf2 zdLcse=J?lh#^9>9*XcDOnz}Gxs9%=BxM2A35m@y^!-fr;YaG*&v}AYEgei$*$823Z zehKzC#FxjJqef2k#|$}9Y39UbcUPENWm_hyg2Y5sc^EY6#)FFcgC4^b7#~M>yO|$1#hmVN$?h`n0pdR_0 z1Nq(p`NA(ni#U+C9JgS)_)elz_haAPWOYBVwn7>Sz~U=Gdk(~gp#b;{oE(VKBw!~( zKGI^!!kM@Dst2c&JZdf2F@Ag+DvQ=M9bF@q-Deu<$oyIiQncER=o*+V?YGqxXWUwDuS>a@$1nj5b?!PnUbBhDto@j@RH!#aERy&e1$ z@!uccRJgiUfAii?b6wq*e_hzS*W6#}Orx=D7dSbbkU++C16|LMTWw`@3Qb}yMFQeKjQFs-EciGF zoQL5*@-5u^XKY{Ce(Tc*i}pV!yU0fRyN%-Wds|n37H0ZY zHBIc=rS3SU#;<+%%F*kNp)Qa_%{%HT-Ct;3*lL6Sw6{WHu3Ex#wV8QpkEdtzlO!G{rphj>H{)jlx@pV8q{`hMZeIP+sG zIcH@WR1fT8;u{q2<>8rze$m^j-$0$ptx#fsW%w2>LvOAv|IMXKOq}}G9xpFu6pr=k z?;(xCRWJ%|pVh73seR&K%)&np9Dv+NG+nQLsK&u^<64XUejZ)FYnP&uS2bDcCEa$s z@nv6OCL$G_mwrus6-_c+0pU}kPp3cce$>|WQGkz6dUzNP_Q7d;KB-~h={`OIMKPfv z(b3poR=53)H*E89j1LAy# z#t+L_h{r&KkN23cNx6_YO4|!AM)+VHRgLp|ahfGb3=A<0?9+E(dAgr?fXz%u7rw%_ zD+hTQu+G|!#on7~aMx+Pn}l(Tc;!5kfmNOZGp8rqny#O zu%S3qRg(4R*P9eus{ormvckb(7hY5D`A2GE4nBx**W% zdq?#57~1E#nWN|8E2hB%28<4hO!@hkPk=r;>c-r}+|c7}hMvKb;QwVCxS0P;boy`VGR%SeT!6S>ckZ z3&q?iRw0nZ${11tcmwi0Mr#M$A8;L6+&c`=1(=mA;@D`*Ikq3iuEm+32^O!dn z*nk=swAD7Y2Ms`LAr<>`;2b^Z?& z?D{HqgcxzLR}Lqc815@0^&z;X7LI`*hAT_s6u1X9fq)d5mWc>xAZ1MLD5HCp5QF?|^D; zPN?M~!{zoAhc1!nH7W5<_+?-V_(Gg`Vs^lFAx?M>;G>=JUJ{O6QU>ML2rq@DpboBA zI5kJR54cRvbY#(w?!XoL%Su4#-@-gr0vyUqKtOXAGpP#bP$zD| znP@=aMrew3UV!piN($`7I49eoe@q@i{}!EQ@({YpVc1Veh zK7?~CM2tT09$pyytgE_ONh$8$$1HAe}L>=KWE|plBH}!XcroC4JF$81P#mF;8A! z;T@os!!{h_@Zv+!aExZd{Jkgl5l92jyj+^;)Le8EQHLCLS}620Wyw$O<&;#{ll4Ro> z-|O4~#U8#azhr|F0Qmj3U^XrRIKKS>yilpJ9R-|^H)u}+j%hT&7uw^Lehh94VdD@^ zc%hPEJLbUG-0XnktLj2qofF=TzgY3_ngBR&rFi`nt<*xyiLe^{h|QmkM}Uri7b>sY zUU%Sg4QFs2DR5(@CEB#Zz-Db4tM3CHP}bW@Xx`6E6BzCdIzJ~gzlmwhZP0@PEo+VP zIE95q))w7{T*4!lP$rcso=c9c3w2@_Ji*!`?nm?byI9a@X7!gtxt200)36qWrPyJM zml`Rsm&SEDv01$q&;lE)*W7dExfVTj!LKaWyk*sm1FmR6b8!aKSO;ADu7pDxZh;P{ zF2D)Rb7w0!1r4i{#uAJRACmA#bYV_-zOo5l3d1|b*WS!K9*uTDo-`<|ai@1Y7~8J@ zPkN3yfo{*4tvwkE&pCPQnEMxDsl+2sa+X22KsPeDj>1A@eM}?MP!83xc2YnWQ-c%AS}Fl8xXdVo zfxbjO;Zo_VW8t_fJCct~65o7R5K<#!6 z|7)T-zH6X>mvj7WutHmOEx`AHTh8zcIsH`%(GK8npIpM><8Ts(-M$ZW)-pKhkoc>) z?YjpyZi4PfT`0kzAaYv&;a&&#ur_s!dxWn;?3;KPJ}JU?BMf&6?{z%92;r4Hj8Rm) zXJeAdJPh9-;r$5r<6$H&>7C|bjEW-Mj`uk{+}9Z&+mVBQKOW9TZfjsI>)TEW9p zf#1aO4Lpn%k$u+&{1_hQX|onxma*kWog;1S8E4v-4_GVD(_-ASw4e`lXGBgJpG{8O zx;K~)V@CcTVmgk!csTBPXqwOs7g%#lH@FOKBpYz#P&3+P2(VXi_(G+Q%s~5+hZ7Ru z3Guyb|2Y=f(<8J?E$|8KCyu1bt4-8xom#}D90CuxdrlzF4SX#6fIDtclP8~Vnf$WqVzoCOk zePr5@AwD?Wd~s6Aj?ohnO))XIFV4O`E_R0Bz>(g40{Zti_(!IrZ3_wrm}6S<(Acqw z@n+MVIq|un5y?ZN(|rf({f1729ImYk|D}t?kZvN^SvOva(tpPY3v52nxeoF??SgiP z%`8C93zem03gB+gmSZmHBM7WL!1I(qawp)tMdI}Sy-xG;VeeV_0RP%L-hlMRxh*+d)EDH>uww9@O+ULp3b#(IUD>}Xb(es;f;g-wRJlQ@lSC+K?(1n zr&rbOM#wFl*OsCDeKo=s9uDMTmVUhUH{|1adD&SZhgwRKGH>IE($fyGw)V=Mq` zkx`@m@qG?Hf$DiK$5pGk947;nrRVzk4Z@0woHU#XG&G>+nLra0Crs#hCXoNM7yq#_ z;eVb91m5HDg*nb<0Iw#V!)xn5mw@&XGzAhsjxA@HUAqx-&}-j=9G>COh1G6=b|Rl_ z{6WXY9}vbAnI=DiO4NnKgVGBVxrI3#End4Zu3YX}=(7Co|fd zPwlth1AH>c_e}>h#s0Hq1HO+B!|qA-fV(IQS$l#vr;x8n+Ru;{G#>Z`1;1hR=D2!E zRdhqZ5jX%A*FP6nIqX{zUJokCe8ACmYHGFcshKs-;hU7ffQQ*`VP{qYPC3(WC2$`2fs77D6c#AHfD2t@Ei=f!+ZT*70O48XH&?(9Tuz|prLAEoy5_LYFw*aopv zE&<;w;TPmy&3QZz)=g34}XdOEr(y*-$vW=;9;{KYAxsY+BOf7 zH3xYc^$??jw&ZW#Mu93$%VBl%Il!SI-?O@TZEW6>xg>)NR)VaBQ^|e6<29f8WU>tN zF0j5^V6(nnU|Z~e@xGp8vr!(2ZTWH$|EJ_}&t1S6E zr5ER%m#~fk9w<2fn%NV4_Yd74unoEXz|Q!Ed$(IawTx4p!Kv~vub~Jd-xeLKq4_tid84tK?_d^r#NZnE06cUhR4CNT}VDg<{ADLl=du6{ZYyJevaP) zcs94wUIrYT`!X5N2eg`5s$`eMewAx=G2ms~)_YB04`Z|=Y*Vx;yv_4w*tCqoW&k`F zEiBFw0x#&-7@U1b3pmpmBaC|;Ti=542*k%OBuH(WjE|B9JPh#BEIxTr!ij|6)1!@b zAy&+5)bLNng}i(%U!7ncl)9fpyCH5jG6 zMm{ZIhP#D0XNII&qjCuo=K@ zTszwBP=a>5N3QR-ZRNhEqs6sqKIS@8ZQI1{I!B*s)qKEpPqfg7z=KZe%*P}FyonZi z4d8(i{yf)7fj{4gpQ~&j^PKq1u3-2&l3VEyD6qAIT+reP>d?GD$Q+6NyY3+eHqHDH zEx7$0G%wfXs1th%qzYZKAA;stxaM)%bjqs^&uOmZdDY!Rp~IUO&;6YUb-oQ2&`V$l!n2FCn%4C^P2oJMgWVoxIFW0M4w*P-abX`oD5` zHuf85{=K8euxj40vwmlV?RxI{3U8FvlSB4j02e(Bqa%8l8qMplsT|%bYcE(2!}xif zw->>OKdONWv+rJ_XkK$q8UI^^TU$JuFocChoz&WQG@S>(WIcM#Kz|Q!TwHI72E{h~K zE46x3!R6LNKD@nPu~2IDqP-AOS_IBMabX&Aic4dm(gI71jhA1-XbCK1Vg?+eTNTVM z7T6=4*bD6CeD+LWGfRPCGaJ>y=b!{W(``Y$M)MBIbWqo!3?zPy<|SSR0)LqkKUY~# ztWJD?CpWnbevBK`?oYI=g%{MV8uTy>8=A6RgPvJZw`%rtO=-1l&`jYPH;8j-)f})h zdEWy%NxX;COSl*_X@zX2xV#Md0>4J{K5y^tfozg=D*+eyHJT&#A3^#;$mFzy9@jpl96J-3Uv zESVL>xIf2bDexKh0zX&jB#S^t;Io<}@N<>B6vqED+Z&pb7!C+k0)FCqq$xIY5>`h45+vdym-UJ-uSJ>~aw6X=z+o3BslNXj{5TKN;e&8pHi!*}REaO0Y$8z=A zti!N_h*$(E#s`Pd{kD@fTVvz@bh@}2w5zCS*OgDZ&lk_L9q)OaP9!cU^ul zdEB@iORYFSd*VJ@MMyy49D^}u_;85q|5v)ij<$tqg3^c0=wi7qCTzK^J?ZU#)BCUF z?AU>&Kbv=v4JW$p+SO&Hn=y01Y-ebRjKgPvWt@&nbmNs}`}W}|W$_Y(m~lKI#wFtJ0ypAJ!!;MD~>K+v|R?79;=Q>;;s!Fc3r-e=7SpAf6aE7 za-fFYaN`6)7f&a_2MBE?sbqpJjNE5CVmp%a>8Cc^kt1YQoy|;Z$t$*}mQnMrO`CQ> z`xZ8P2qtA@86h&9I<%Y)Yp z-f{pwm&4nEKZeyLF){@>dL5)v1GuP3`&f+uyp+R703N_=-Zlwe#^GUr3;O5-IX>uP zOp>>wkh3Q*Pqv_o{RYMi#!kU;>i%j{W;0@24 zyL4C&-qjD3| zE?U<0EgjHx>#nX6>eux--M}d3qV(AweU3b;SilOlB*nueB*u2}uitDJiLrH^?RkRp z$FVBa$F`T8*hTi*9w2$PNxQH{y3}?XIl)>(K4*g#NXO@Fu(p-vYwqY?YpJ>8@(!AR z;sjDw)QifKunyK@wIf13{#0k!PpMZvCRnXZrjcjKJLDoAOyg)eT}E5zZ)$}4pn4Xg zsTR#0n#VQAH9u?JwZYn3w14T+bvNivVMn-jm*-u+={2%fW-m*x=X-tIdra?Jdw=EX z;o9W-oa+VGD{g^qiEh}U6w z=W)HKkLLu>D_$91zxU7Ye^>vX26zs*Zop>)=MCI7@baLDK`RHX9&~cBe((*0cMg7Y zNcfO7LpBe2a>)K6M}~YfQgns848U zs1ctCP7a+Dx+JtTv?28Q(8Hm}Lq84uI`p?N64obdM3^}&F>Gqs{4i_S%COa8>%;B{ zyAs|jd_Z_d_$}f0gl`Yu6MiWC?eJ6KpNIc2!hOV$5y2z$BgT!GG-CFM%_Fvrcsjx( zVrWEogehWTL}tXih=Pdnh{lL@5w}NdiFhpHxrmn|jz*k{_#)zm$kxakBR54p7`Z$0 z#mLtpk4JtQ`Sr+2BWI0VG_q)9)yU?N*Nwb$2;k9UJxWs4qwT zH0nx}OO#hsUet=H+Nk!Zo1->IZHsz3>SWZps7q0QMAPU#(LjA@hRg$<2NxRCOoDhW_`@PF;B;wH+h&sa2ZWYO_io~ zroHAt=CS4y^TXyn=2y&bn=i-qj~yO6BX)l5^4QMU)3HCtxyJ>>jg7lA?!EYk_noQXRV zT@sTMs}pZdJe)+6MkPI*bTH}H_ym6noL zmUb~+Ne@V$mcBf_J^jw~9g})b8a`>}q~(*=PTD`|?+krLYsN>DJtr4UesPNDlo?ZQ zneylqduDd#hN=CguAchf)FV^>m=-*(blSe@{iZLO{zujwGy2R}Jmbb0`)0*m?{*}>U2W`94&FsF9TgL9sn^W$7H*K6+2^U~&Z%==>ApYz@4C(W;)fB*bf=YP3C zw_wz8vZIBD z!kQwV<-W^*U9qWHSL{<9TbxxgtYmRXM@dKNoYH4YZDsLgv&u@#wv;_vcCvg_c~kk5 zDMU2fghy2tDG*1b~qPTj|KU)KFtA6-ADKD9opKBvC0zN)^t{<``j^(X4j z)qh+6XM?7}qhV-6c!Q~7Lc`>S?1se+D;jDW+8SG`!Yuyy0}iR}H_e z%3L*XRsO2dRrRYnR^7a6^QvvDo?dlu)my7RT=n^??^pf4%GRiB?Ath~(Z4aYF{&}P zF`+T7aa!Y?#zl?G8*3U{8*gab*toUv@y2Hw_ctDHJlc4&@m%Aj#@|O-sFUVUoyxz%5-{&Dr6O`0b6rU6Yun}VB0Hkq2nHKjCVHqCCzXPYcxanxq$)%rEy zT0dz0to8fW-`i+g-!`AN&^BXRLfhoF>^4hVaa&zmd)v)zceg#-_I%snws+f3w_R-e zrOnpv+CH#7q}|j$u|2bWUVA}%dHbsNwe7dH-`BpQ{h9Vd?Qge#*nYA7_YT_8x5K9+ zw8Pku&@s7VPRA0cXnjXV$1NS3JGON^)$wx2@s3YBzUuh3Q|WZ?9MT!w8QnRyGre#?tG;4sm=qPZ+4#SJm2|U=U;2IYdqKZtr@Y#ye4H$)|#9(g=?zT zw5+*d&89UEt$AY2zBO;GIkD#4ns3+qxmL5*W3BJnptY8@_pbeD?Jw*4tTU}!ux|Of z`gNV_Ze4fpx*hADS@+Vq3+r9i$E;ttK7V~V@6lDP+M96sg}i>_epB3f@ecphA3ZS- zswf|yny~YVw(F!W9bb_v_@af4z~WDHl;6TI8=sAt$h)yJWr5O+8LMJIwgA!$_~xcdne0~BY{9US!jwfyBfQ%Nr3Sm;v}4Dv+cDF68gsI5VBYd}>>038sU_jqqo5V% zE=|QKd@jD!Y{m&hdoT~R7^{{#u<~=7vPvl?>qr#A;V8rn--L|E_t>LwWnj*86jsr0 z#9ERE!N(drSHjQPh&lCAq&%0rMZQ$FDQ}Wxuv^|D2b8tsN321)gY;1*DhcE`2`88E z|Jx*;j3ncEI0yGT$gQw-CX@A~9c$Hdc653{`CR#)3`K6! z=^*kQ-Zx{mVxCe?mSU!36m~|4#Ok&Wm5-3Cuz$HmL1N-+x4#F8{^J640lx-wN$-cW zdtO5FTafE57)NN9mxE?DB+s7BxUx|y?8=i@2rr>l$edkkmGz_*#*D(NtAW>bpp?)c=@lvQ=9TWv_M=dpbg?Ga6YYoZhU}G)lq%; z)e3#P$9c6opYDN-#T5trVHcMNxrcP1#M($-5`_V`>WUGmW^8d4{sZa>)8-JQSc4RAfZnis8%iz}^``|X%*D6u#n@e=65LF+pTON4)D_@N$N5yl zu`5R|zNDMZbrG}T*aKoBMotbu9~WajeH`d8jVQ+dS-4L|ygm3@l#-J{%z-%a3bAo4I7`+Owew-EEieZb$1$iq$c3rPDh;NFQCGoU}UT<>Qf?OfE+ zOnmk8s^WpXW}yxjgHoE3%yvNjkH0PCHGI9@hZsS7wDLHp-2pnou(~}RyW!u5x;_FW zdkOMYAmx6V@b3q#S$PCCb1_!IcAz$H#rKK9 zpq8L)A&JC*n6F}iiiLEMN#J!e%0ofRkd5>gKzHjP^-koq6~8$+|KT}&D>4Tu^}OaI zMR6TPn(SifIj*fpkzENg&V2AVA1#_A&UWz1F2=9p5`6Cj?>j+@U4q(e$OFrTxL97g zuVAErJn<{c{)qi)`)>O-tZ>+evSn@d-OypyT3_dEsY3vd03;0B+zBn-ga02!z1xje zIG2Z30AfbWJ0Jzt?i52l*FkF;y*mJJkhIz$>1;?S3G^CK@7q9SBi_b=PBor7(c-^> zHva}dQc%Z^Bi?jSX|&JhR9K8mXhlDaL}x+Une@X@zt|XqKj*NKVMDV<0lyl0#`4MD zG3*A!X1{Et$~2t)45$-sNX_xvf_gI_{6~PJ8t4#f-2_d>#V2+q1!wqQpIN#+e)ea4r}p_+fVCXwNW8px_@r*6Xp~8p!0@Ul?-W_$`C%Z$JsQLC$$RA1qJo zcLyX4S@4>8yE4H3KCW+(r>`-d#N@)_v^#Sh&Es}LSK#UQTGDlr_3T%)wl%tRr>_rk z{EsLa%~7nS*J38{ZY{=gNr1Sk$CahhEMVh9_&bNeJ`W{uAsz!+IDPu`bhJ8s>|G*_ zUQ1|XphE7Sj#Tlb*%KU(jWsYbDt-g-KMM~~G%gsmRbEEUbkL|i(1X#Sv;d{rpfr(Y zavOPoJb^ykPJJ-~F`w?EuhS#+Q~HaFp>f+7Dk1U#H%n-ljgFKA}FZ9#M~}@2MYX zLNw8uRD1)q1nW_1HET4-G#_ftYkt!bt%tV1Kk=X7-|7F8|1bW31xyWe3mh2e505@H zP#+i*I3{phU`k+BU~}L@f!hKf8>SuBf7qa5!-s_qiyF3QI32DV-fy_q@PWg9hWihX z96o9I;^EeiH-CS{X18}?97aJN0-@Psus`WS#R5xa3-Yjq>_#5`rbA>NUPB&EArFc( z4;{$EP3i`WtURf{puVXdM;2wO$tV1Al z8ovwpeXslq)q8@14*Q8ex(6Zry8pyG`U1t=F#TS@Rmee|hF=YSoA7%G8V$=?lYrk$ zhQt2XED+e(uVMjqYCs;Z{nId+{^L(G`5zz$0B0`pc6BD&flb(#wF)iLooKc4V0|sd zS9BKGA022*I?=}6h5CLSde3{XQg#8Xj+Y&(rAP z4=OLA#y+pS2W$6z<)red@&VeNPta3eRK8ZeQGQ3Cl0}HprC={?q7aReL0kz=Xd<4( z3nQF<7+DO21s08AQav%^_|6#2;Kq|lB!#5GGM}YPBiYJ>grY~cDGw1<*+F_Kj}bRo zO>2}#NpGw;a#wbt=YEz9RGuLHls%-svX=~2o+KX1i?H-wAVX*^tyA_9ALRgS_Wi_H zd7T6+hski|5b;-DBSFe5q=b}`GUW{tq8uTi=%d~wVanTNgz^@w(4!JVOqRgE$tC%uj?~i=q=BBKAJ7lUD$+>L(6jU$ zSxwK=&qx#foPI%?>6fI1ULdXXBK?ZA(XUB6>7d`xOY~d%9sQpEK!2n^k(=l*^jC5- z{h8bXU+6Znf!q$S=uVspype2DBj{yv54}R}rCroU?P$F3BlnXnDpez~vBCqYhHO=} zs*XIUx{!y+!{iaQmrBSsw9l@po9eFiQTwX>$ad93^;Esc)7To~8S*Ulqk9e~20f1h z-d@1@+WW|Ubs#yQ4#JK!2h}0ukm{|DRDE#DjxTvz9jf}N{%Qa@N{*3t)IfC<#>?M@ z|Ms4GLXA?R$vJYKd`3Q3^{RpVLVi_0Qa@JTSKlMQk>AN5@jZeMfy)jaNsjW2igrqn=gI(Y~~w`iXiPJ<*%$r|KE%p{A-SYMPp^ zPEs?}$<&j2sc)%ot9j~T+MfCmy#}JaD^#qw&ji*I{HpK^M0-?*@d5Ufg?MFXPp$BwSjQm8~99*t`m(qS0YpcjQ$Whey(EyJ}8WnzWD$Ea5!Ml`4HNVkN; z%V2^27dNvIy9D%;fLRQCaVEmdyDmoiUI9Nb3i)E!ShUE~ai!y_CoM<5Mxmv@n$jGE zS&oW04}m>s{h!6}iPcknMO;c2NU93-E#R4@%eY+uSQ%sy2rj#26LnSS>Ni4`$&f88 z%Suoz0;N(=5UH~qFsU->X5w8w(keyRic|w3rBa@H1)f>?uu@M%xmkcGLRZHbiTBq^ z#mFVhbcmI>C~rQF0l1|HttjwNfs%@m=zaq!qvz;PN%XcF?k`m#*alxfhjEO=crx%H3@nazdwJs)<& zLRb{JN`F}G12KO%7~^it0% zRdIp6(g_>p5%hK%^lAGQ4aV?>!_Mf3Sx`UtcRQ6=Fe{ma5d>yuxWW^8R(THg#va%n zhha&$z{7KgFEbI=$zqIf97G%TgR(*SQQ3>Ky&1Mj07egPhh_5+TEGd)KI}^L8Z4%- z;1j)!(TM9{OSQv3*I|?<2>#bP=!*q?e=p^A)a}P{Dz~eWj}~VatP9vKu!;J>X6c7b zemsaLJia%H7i@$6uw(|p&iRv1@eYBt@iwfCqslSmZ&(Yyn5y+7{>;LGr8Ara!43!} zA!tXJ!iES_jzf#y$0+0o*cZ3LzSxa%$Wa*Sj8?utzpuv_g%Q?846Ld`jD(p8cFw}- z9lWa1F%!TbSpDch?m;);&mnYJE z5mls`)WDjlg=GetMY%{CP-kw$$lyoH$FLkv!)EM)2C0=R*~IBXMgfE*-;$V=p9Y>@jZ zIgGKZ*U1~?2ze9Z%x??3L|7y^L;VDHfBb-aNKTQD$j9UpavGzNXUJKHl|sHCUy=*t zBKeAZO}@d1^ta?Y@;&(hKH^X0XJ)@R>=tITFgu0WC_U{HW{U_rgjpfX_F#4g^ZV0X&4QsBWMJTq$BAl8bzb2o*Jl; z#!wSA!={L%@pLpDL&wr_bUaO<6X-;mNRwzXO`)kY4eJ3W(F{5n{>k0&K^}&GagXvm zHrL9eQ|UB1oo3M)bS5^GolUdp96FcIga5vOE~Gg$moB1tbTPHiB{ZKFP%B-EwFQN= zh%ToqXfZ9pDy%YEPFKT9uh3WNVfq?ICfrv`dZ5z`xU`5r@ztP=^yk@`WOA1UZz(Zb~r{sD8>*p%=%VcV0B+* zaSMA}?XM0{2Qs@_9Ri!$NA-1B)3Bq5slzdX60C-(p=y{Ku8zR!j!4+uqnK6AtZ8m7 zGi#Vx!ranT$ExGh@oIuPL7k{3s!3`x?Az3C3s;?@W~x)wY3g(}OP!(4RA;HP)ogW+ zI#->i&Q}+x3)LJoS6##`U~c{9Gpko!sxDIt)gpDdxMFHSU9C2$&1#F(uoa4Z0p#V|yVSeY&FVesz3P4H{puEs8g0dx%R}nJ>Lcnlb-TJleN^44KBhj7 zbwIl@qV%Ntl=`%~M}0VEYA^C6hu!2JaH2h2C%RzI`unV-RY zgX0*DdLKRt{14`9aKD6k2k;D-x4?Z1SpTs6FQ^yQuhg&AZ`@ZbtFT&2i!G%EMfuvw z{K8s`rnsoWqARynTB|I&lA_Y;Dyy#2nqO90pi5j*VXd*cB$in6E6Pe;63dpAm0DN0 zCRP-cF0vSpk7GUF6QD&*qrE(g&R1S1aEhww9!$M*wbKjBDoXoIFRX?LDymD0 zE!9;n(*+l9(<_TDm4$-DOnDQOX7;2si@$Q4)y<@4Hu9&N&2e?vBB5-aQ1(>`Wy|bl zi|lH%SxM-!d8T!91=+dXWP8soD6&>qD~l?1bC*?EYOHSayI<<&bC7NUkLJ3-Su#3{ zkgY`~W|75i=`MDQRiu^QgIs~&-pV8EtUTmuby9V)3UaCyT1I>5VaQ;+_`Mn-c=^lHQyaf8so`Crx2l*$R#tqfgUTVQo!i9|v1J)Z0>8 zR%I==7Fo3E7F2QV>_XP`WLip=6jMh??!o#<#&@_giU&r43C!gM0rn=_cU=g2s$Q%#5YJf1|dh2AztFi zc*YnJHcC9B#4}1fqfE~z(=$5aCChjz@}4U1l8+e4M~vh@My3-Z`HGS0$?`SD$n;`l zIx#Yx7@1CtOeaRtH%YoCNzWwdnI!)vNzWwtH%YoCN!KLlnj~G5Bma?v69bN$!DzOGghV> zC;5z%>BY(P;$(Vpl75_|A1CR@N&0b;ew?HqC+WvY`tdSf@iJfWGQD`2Uc5{%UZxi> z^A|7EjhE@hOSQ-{A5W#S;kM1_f*MWs^l+C(n}L^HtWTEv#if% zy`XEB_1df#e3|tkA7;Hs$E+9h&3eJ7Sug0C^$xm%U$b8DYt{=noApA@W&=+bN2@sQ zoIiwlIpWUwz@6t0cg_dyoDbYNAGmWqaOZsB&iTMSsZVujfwiJCzpTPqu%x)p%4#&T z%z&$?v=%U(H|mX&W}K;aX=Qb}wW6r3LX%ouQN~{zWReDhV8vjF?QN~BLZ4e@E$9u? z&swysu&U6#st`7$c&>C?T2$kBcCSQYrSb)%n3kHxGoO~0#)X4>O8@R2$=PLib;DTa z!FrJ%XwKfI2h7>;^yQtW6U7s89Y$jX`T^LoiBXj$`Q^GKaZ47r6md%xw={7}7q>~` zmLYDF#chhXWs2KWahoP?)5UFuxXl!|S>iTZ+_J@Oj=0Sgw|U|=U)&b(TOXbuhZIEa zoSE$fle)4JrbBP1Db~BdQdwjvt1GeyT&GOk^6M*#ii?Z#tBUg79nXxeE{i9mof2g! zuIiU=ttf#ru%x(>LwVDvPZTO_kScDFDsC`}s$(!3+)6FwWtCMGW#xrd9>*xVGowLN z52Ha;52Ha;4@0ccotY81cPC_sjd2rh0*CcVtt#XXy_q@8pWG68(aL8o2>$Gm*sU`1 zCC@p3?wjbaH+WF^EBvuvx9h^geUkI71(1@3hul(oBqkgi4);jCCb7P$S0&(<(IZ|) z4<<9NjhAtCylLG$yG`#wV|ou7)32f7HoZGi-|1J=%kDuVy9bTzYiRV%zB=CgZd`Zi z>5?n=aNY92lO zL-8`5R~P>5+0$X<5RV=Xqd*t#A%Aw4uA_X>O~+mOlKe%#45yjQ!yY|6OAhet>0Sz2 z!p9VEdwQ7iZFhEhGnZ39h2JUS^z=IA+wM5-($^F(gip$!y{>Xe#cSb%@@LPU9;kfV zP1Q}fq#W)s>l$t8GwZ5KGOI^4;js#G!VBfk?$S?{FS=#x${kh?_PWZmmC<^XyGIW{ zmcRAr;k$A`-}zT-v2bMhtA5?yEDyUa=w{kAk$Dr`6LC)!ZU7IU^%2nC8LZ=AehY+M z#6~_uAiD>$>vZNYaJVP)HyoUBh?b|INrE%tB2&;TKtM$b8b(|@#Zq2wp;N2rv}z0< z@HEt!g=Ok&xF#|gHMy_|s@P4spM2p+%9VRXf;H(0@jx%6#2Fzk9a-env zW5T6OB+nc1n51M{TCL_I<(`@9cTIG68HbZ`moIt1mHScrkrOoOr4c5LER!^@OwzbA zN#n{SjVqJvHB5SG{7ECqB#bA$$smnhVWA)_jY!$+m<%$WK^lz)Y3v%Lu`7EplTq?z zl=O_!s1yd0-V`HxI#Z0KA0v&^7)j40-IlQd3E65lN0W(hYt;L7>eh zr^<9vWxA;{y;PZAs!T6crk5(yljUVflX6It>8Hu`(`5Q-GW|4}UYbl#Sju`+nxJo% zHOMSA-z+rWkSg3T+(o&kCh~L;=IP+h)4`pmgFDYB?mVBk^K^0N>Eh1wi963H?mVBk zb3SnA`NW;)(~z3P%M*8*ev(W-Nv1E{JiM3bC&~1aWctGG!+V*2l1x8Irti>q;r;oS$~E8=}qx6y?99{mdh7>I_{Fc(OfQo%lPp!Kk+g@LchR| zgbRH_SjH3jiLfIdvYiz53VcgE;YsVwVp!3rH<+DD-?9-Tw#R^=^sfxMOy_ij9bE*3mP*Cd{k8jG5I} zFsFJLbF1x`S>23zRW@sTH|AE4V0QH_%(WiF9IlvSeIK)||My&8%j5rR4x4E+);0Lx zXGWQ3;xb{SO%_7;VeLvRRy;h5wJm$GZe`s!<(wTkC~2DI2imfDhJY48_`#hq122gmtl4J%ZJ*W5^`sAii&# zrX0h%k1VV}nMJa(&SWlDn|_Fy^d{wF%%!(rB?j~rTE|u#4d5CVtk7BvC^020swWWyLy+^i!DpCCE1cJ$(Fk@rW(_XA@pJlrW3%F zU`z`klu#1NgGusG3?vXz2&4dMl#tlk(Rc35YApkK-sk;&-ydJHR(8+anYs7e)6cml z6rw1qlscE9sfo6M!KTcQ(yvlzlYye}y?q0*#0}rOznMaHm%*rsf#r?MKMcGwN1-jx z!SBS>=E-f}NgrAV*FU8wwtwB^$=d*~fcq8jzmj#E&RF~8<`qWx{wakb=g-bePUGsE zODU9@09a-g0L70{*Tem@@Y^%HdB^FOSg#}3_rvpE+q89RQadmnqEPfI@_X~->Dw4F zS_8kydmLLPH_vSHT(^=!OIj$3QEc0K@{a2td{9iG&gB&4e0tmVnQgP;%l5$a8W_(~ zc>W0(S1x)8z86tcquNQkkyD*jtLYL4qF?zimqDtl*XAlvJ@>rmp`-n%{x>+7dxrw- zSm)=NJK#SU)blg+@#=lA*i2*3*EG8enS`9x6zui_WTKD7b zu1N{4*6G_5sWFc$B$6ztZ@71atKWf?i4MI+$x70`z-0Q<%}ahA?K7K=@H-HgOrT^s zbJt19HNmn*m9EzBo2prNRV)_9XzpEvomO*CEIVMfS`o&lp(_#6!wZtxUZcrCA*yfw zPt5hAm#KPKw=gv_aq`Jz`N_llGr~;u`ur7s0k8&EOcua@$S5XqR95cxtf|ko>$GZw zS+SKhs8lJBd#t*yPp?;^IU0uDxn=C;hQ_sCUs7f(5~-Ap$@s-9Hb2|hF^OKpm22E? zAC1Ev_h@-+wf~ja+IW1W)8WH7;`Oe{pxK8S8oMw~M54ReJMQRzsr$yZ_Fd6f1*Ti- z>K~>srHB343Hza?LW_2TtVLLr&+pYQOj-jgSXhf+kItDm)X{TZdAPbnS*)@c1~PTG zui@@_e|!C?)8>~-S*6rvb`Mtv)?}wqEEGDgul=5tr;a_))x13f6F^509dNpa;)#u^ zGpbICH;vo%281cVaRjLAXE3K?z;V{8c4nP4{8Q7v_vD^v!FPG*R^{k>e7WInyytav z!P`gskD!OieQ~(&9k@?={Jx}`{=%EPy93|nn;V*&--xH)LU+I&cnZc3&VS786}?E+ zQq+vv$tG#B_&;xE@;`5;hY_#j;*ymYA?+cYd71k-=-_v9Wjr<>_(^0s5g&26{1|&3 zj^V`2-PP5N7$u_7vpYI&?|-i6ru;_YQCNu@R{lc)W0Pt(?Sy|x;7aPt5Bq1Oz>(7%nq3x`ie(az$;&P8>vu#?f9M9uaI(6&X z^-pxPPs;BXJv3L6T;=iv5%N0hLvb{H7c39qmiqdGYw6G6Emn#WHNabB@D}7m@L^#= zPBr!+jGWvpc!Ya`>%3*hJe5PJ6Hn)Erd{|7PWJ%59^}nK@Ps6Yo6q41B7S#)g3$0U z=BYXQM&A+US3ola13JLKYcQr1-r}T_W}HMc!5qTf+{?L7`_?VljgmW;eVXH*n*2WJK9el znG1tT04ee@bAjk3%1d<-S}pLJZ-KqOCMp1S1RK!=gP`-yH2lV zuo$2GO4p6;OLmpVvVsWdXuqxhaOeKEwq3FE3XJ2C2uPLNk>zKR>3DqD>GWVCiAG|v zQSZ+pQ}J>E6mq*(M9as>x(SDVA8@6h?67Wqf+rPW^fBZ!Rp9@d~%X58+PY_f%*ml26PtX`!|xLqSvnN9#K_+98M!7mE^AcwR>5l?JiXNQD`(2U23i|pP+UUUf-zC9~Fy}KJREW+h;ME{zW%bSKqy6^^@J*(_(RRW#zu^ z(6GztMdu|u3`QMtJDlUyXyg4gHH{d@vgv)ZBiCdr`pqRSlc^(>=r$US2)XU{q2%