From a33fb2a0a99a560dfdae390e4a54d74db833c00e Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 6 Feb 2025 14:43:02 -0500 Subject: [PATCH 01/27] Closes #17918: Fix styling of "tagged items" list under tag view --- netbox/templates/extras/tag.html | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/netbox/templates/extras/tag.html b/netbox/templates/extras/tag.html index 4e1379fed..5f259e124 100644 --- a/netbox/templates/extras/tag.html +++ b/netbox/templates/extras/tag.html @@ -55,22 +55,23 @@

{% trans "Tagged Item Types" %}

- + - - - + {% with viewname=object_type.content_type.model_class|validated_viewname:"list" %} + {% if viewname %} + + {{ object_type.content_type.name|bettertitle }} + {{ object_type.item_count }} + + {% else %} +
  • + {{ object_type.content_type.name|bettertitle }} + {{ object_type.item_count }} +
  • + {% endif %} + {% endwith %} {% endfor %} -
    {{ object_type.content_type.name|bettertitle }} - {% with viewname=object_type.content_type.model_class|validated_viewname:"list" %} - {% if viewname %} - {{ object_type.item_count }} - {% else %} - {{ object_type.item_count }} - {% endif %} - {% endwith %} -
    +
    {% plugin_right_page object %} @@ -79,7 +80,7 @@

    {% trans "Tagged Objects" %}

    -
    +
    {% render_table taggeditem_table 'inc/table.html' %} {% include 'inc/paginator.html' with paginator=taggeditem_table.paginator page=taggeditem_table.page %}
    From 4b98f74943fcde3d3dad31335cf9a8137e46a03c Mon Sep 17 00:00:00 2001 From: Alexander Haase Date: Mon, 10 Feb 2025 15:42:08 +0100 Subject: [PATCH 02/27] Fixes 18247: Fix dark mode button classes (#18617) --- netbox/dcim/tables/template_code.py | 42 +++++++++---------- .../templates/extras/inc/format_toggle.html | 4 +- 2 files changed, 23 insertions(+), 23 deletions(-) diff --git a/netbox/dcim/tables/template_code.py b/netbox/dcim/tables/template_code.py index 4b51cd06a..1c526649b 100644 --- a/netbox/dcim/tables/template_code.py +++ b/netbox/dcim/tables/template_code.py @@ -159,8 +159,8 @@ CONSOLEPORT_BUTTONS = """ {% endif %} {% elif perms.dcim.add_cable %} - - + +
    diff --git a/netbox/utilities/views.py b/netbox/utilities/views.py index b3334ca87..b9a5f85fb 100644 --- a/netbox/utilities/views.py +++ b/netbox/utilities/views.py @@ -196,7 +196,10 @@ class GetRelatedModelsMixin: ] related_models.extend(extra) - return sorted(related_models, key=lambda x: x[0].model._meta.verbose_name.lower()) + return sorted( + filter(lambda qs: qs[0].exists(), related_models), + key=lambda qs: qs[0].model._meta.verbose_name.lower(), + ) class ViewTab: From 3e1cc0d7f388ae6ffa7442f3b0f9d5deb3b520cf Mon Sep 17 00:00:00 2001 From: Alexander Haase Date: Mon, 10 Feb 2025 17:03:08 +0100 Subject: [PATCH 05/27] Fixes 18208: Consolidate rendering configuration templates (#18604) --- netbox/dcim/views.py | 50 +------------ netbox/extras/views.py | 56 ++++++++++++++ .../object_render_config.html} | 5 +- .../virtualmachine/render_config.html | 75 ------------------- netbox/virtualization/views.py | 50 +------------ 5 files changed, 67 insertions(+), 169 deletions(-) rename netbox/templates/{dcim/device/render_config.html => extras/object_render_config.html} (95%) delete mode 100644 netbox/templates/virtualization/virtualmachine/render_config.html diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 0978747d1..6efdb63f0 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -4,17 +4,15 @@ from django.core.paginator import EmptyPage, PageNotAnInteger from django.db import transaction from django.db.models import Prefetch from django.forms import ModelMultipleChoiceField, MultipleHiddenInput, modelformset_factory -from django.http import HttpResponse from django.shortcuts import get_object_or_404, redirect, render from django.urls import reverse from django.utils.html import escape from django.utils.safestring import mark_safe from django.utils.translation import gettext_lazy as _ from django.views.generic import View -from jinja2.exceptions import TemplateError from circuits.models import Circuit, CircuitTermination -from extras.views import ObjectConfigContextView +from extras.views import ObjectConfigContextView, ObjectRenderConfigView from ipam.models import ASN, IPAddress, Prefix, VLANGroup from ipam.tables import InterfaceVLANTable, VLANTranslationRuleTable from netbox.constants import DEFAULT_ACTION_PERMISSIONS @@ -2253,54 +2251,14 @@ class DeviceConfigContextView(ObjectConfigContextView): @register_model_view(Device, 'render-config') -class DeviceRenderConfigView(generic.ObjectView): +class DeviceRenderConfigView(ObjectRenderConfigView): queryset = Device.objects.all() - template_name = 'dcim/device/render_config.html' + base_template = 'dcim/device/base.html' tab = ViewTab( label=_('Render Config'), - weight=2100 + weight=2100, ) - def get(self, request, **kwargs): - instance = self.get_object(**kwargs) - context = self.get_extra_context(request, instance) - - # If a direct export has been requested, return the rendered template content as a - # downloadable file. - if request.GET.get('export'): - content = context['rendered_config'] or context['error_message'] - response = HttpResponse(content, content_type='text') - filename = f"{instance.name or 'config'}.txt" - response['Content-Disposition'] = f'attachment; filename="{filename}"' - return response - - return render(request, self.get_template_name(), { - 'object': instance, - 'tab': self.tab, - **context, - }) - - def get_extra_context(self, request, instance): - # Compile context data - context_data = instance.get_config_context() - context_data.update({'device': instance}) - - # Render the config template - rendered_config = None - error_message = None - if config_template := instance.get_config_template(): - try: - rendered_config = config_template.render(context=context_data) - except TemplateError as e: - error_message = _("An error occurred while rendering the template: {error}").format(error=e) - - return { - 'config_template': config_template, - 'context_data': context_data, - 'rendered_config': rendered_config, - 'error_message': error_message, - } - @register_model_view(Device, 'virtual-machines') class DeviceVirtualMachinesView(generic.ObjectChildrenView): diff --git a/netbox/extras/views.py b/netbox/extras/views.py index 3672e5336..86e7f214a 100644 --- a/netbox/extras/views.py +++ b/netbox/extras/views.py @@ -10,6 +10,7 @@ from django.utils import timezone from django.utils.module_loading import import_string from django.utils.translation import gettext as _ from django.views.generic import View +from jinja2.exceptions import TemplateError from core.choices import ManagedFileRootPathChoices from core.forms import ManagedFileForm @@ -885,6 +886,61 @@ class ConfigTemplateBulkSyncDataView(generic.BulkSyncDataView): queryset = ConfigTemplate.objects.all() +class ObjectRenderConfigView(generic.ObjectView): + base_template = None + template_name = 'extras/object_render_config.html' + + def get(self, request, **kwargs): + instance = self.get_object(**kwargs) + context = self.get_extra_context(request, instance) + + # If a direct export has been requested, return the rendered template content as a + # downloadable file. + if request.GET.get('export'): + content = context['rendered_config'] or context['error_message'] + response = HttpResponse(content, content_type='text') + filename = f"{instance.name or 'config'}.txt" + response['Content-Disposition'] = f'attachment; filename="{filename}"' + return response + + return render( + request, + self.get_template_name(), + { + 'object': instance, + 'tab': self.tab, + **context, + }, + ) + + def get_extra_context_data(self, request, instance): + return { + f'{instance._meta.model_name}': instance, + } + + def get_extra_context(self, request, instance): + # Compile context data + context_data = instance.get_config_context() + context_data.update(self.get_extra_context_data(request, instance)) + + # Render the config template + rendered_config = None + error_message = None + if config_template := instance.get_config_template(): + try: + rendered_config = config_template.render(context=context_data) + except TemplateError as e: + error_message = _("An error occurred while rendering the template: {error}").format(error=e) + + return { + 'base_template': self.base_template, + 'config_template': config_template, + 'context_data': context_data, + 'rendered_config': rendered_config, + 'error_message': error_message, + } + + # # Image attachments # diff --git a/netbox/templates/dcim/device/render_config.html b/netbox/templates/extras/object_render_config.html similarity index 95% rename from netbox/templates/dcim/device/render_config.html rename to netbox/templates/extras/object_render_config.html index ab2f1c531..b28146ff4 100644 --- a/netbox/templates/dcim/device/render_config.html +++ b/netbox/templates/extras/object_render_config.html @@ -1,4 +1,5 @@ -{% extends 'dcim/device/base.html' %} +{% extends base_template %} +{% load helpers %} {% load static %} {% load i18n %} @@ -67,7 +68,7 @@ {% endif %} {% else %}
    - {% trans "No configuration template has been assigned for this device." %} + {% trans "No configuration template has been assigned." %}
    {% endif %}
    diff --git a/netbox/templates/virtualization/virtualmachine/render_config.html b/netbox/templates/virtualization/virtualmachine/render_config.html deleted file mode 100644 index fa6f1723b..000000000 --- a/netbox/templates/virtualization/virtualmachine/render_config.html +++ /dev/null @@ -1,75 +0,0 @@ -{% extends 'virtualization/virtualmachine/base.html' %} -{% load static %} -{% load i18n %} - -{% block title %}{{ object }} - {% trans "Config" %}{% endblock %} - -{% block content %} -
    -
    -
    -

    {% trans "Config Template" %}

    - - - - - - - - - - - - - -
    {% trans "Config Template" %}{{ config_template|linkify|placeholder }}
    {% trans "Data Source" %}{{ config_template.data_file.source|linkify|placeholder }}
    {% trans "Data File" %}{{ config_template.data_file|linkify|placeholder }}
    -
    -
    -
    -
    -
    -
    -
    -

    - -

    -
    -
    -
    {{ context_data|pprint }}
    -
    -
    -
    -
    -
    -
    -
    -
    -
    -
    - {% if config_template %} - {% if rendered_config %} -
    -

    - {% trans "Rendered Config" %} - - {% trans "Download" %} - -

    -
    {{ rendered_config }}
    -
    - {% else %} -
    -

    {% trans "Error rendering template" %}

    - {% trans error_message %} -
    - {% endif %} - {% else %} -
    - {% trans "No configuration template has been assigned for this virtual machine." %} -
    - {% endif %} -
    -
    -{% endblock %} diff --git a/netbox/virtualization/views.py b/netbox/virtualization/views.py index 7682d0fc8..343d346e4 100644 --- a/netbox/virtualization/views.py +++ b/netbox/virtualization/views.py @@ -1,17 +1,15 @@ from django.contrib import messages from django.db import transaction from django.db.models import Prefetch, Sum -from django.http import HttpResponse from django.shortcuts import get_object_or_404, redirect, render from django.urls import reverse from django.utils.translation import gettext_lazy as _ -from jinja2.exceptions import TemplateError from dcim.filtersets import DeviceFilterSet from dcim.forms import DeviceFilterForm from dcim.models import Device from dcim.tables import DeviceTable -from extras.views import ObjectConfigContextView +from extras.views import ObjectConfigContextView, ObjectRenderConfigView from ipam.models import IPAddress from ipam.tables import InterfaceVLANTable, VLANTranslationRuleTable from netbox.constants import DEFAULT_ACTION_PERMISSIONS @@ -427,54 +425,14 @@ class VirtualMachineConfigContextView(ObjectConfigContextView): @register_model_view(VirtualMachine, 'render-config') -class VirtualMachineRenderConfigView(generic.ObjectView): +class VirtualMachineRenderConfigView(ObjectRenderConfigView): queryset = VirtualMachine.objects.all() - template_name = 'virtualization/virtualmachine/render_config.html' + base_template = 'virtualization/virtualmachine/base.html' tab = ViewTab( label=_('Render Config'), - weight=2100 + weight=2100, ) - def get(self, request, **kwargs): - instance = self.get_object(**kwargs) - context = self.get_extra_context(request, instance) - - # If a direct export has been requested, return the rendered template content as a - # downloadable file. - if request.GET.get('export'): - content = context['rendered_config'] or context['error_message'] - response = HttpResponse(content, content_type='text') - filename = f"{instance.name or 'config'}.txt" - response['Content-Disposition'] = f'attachment; filename="{filename}"' - return response - - return render(request, self.get_template_name(), { - 'object': instance, - 'tab': self.tab, - **context, - }) - - def get_extra_context(self, request, instance): - # Compile context data - context_data = instance.get_config_context() - context_data.update({'virtualmachine': instance}) - - # Render the config template - rendered_config = None - error_message = None - if config_template := instance.get_config_template(): - try: - rendered_config = config_template.render(context=context_data) - except TemplateError as e: - error_message = _("An error occurred while rendering the template: {error}").format(error=e) - - return { - 'config_template': config_template, - 'context_data': context_data, - 'rendered_config': rendered_config, - 'error_message': error_message, - } - @register_model_view(VirtualMachine, 'add', detail=False) @register_model_view(VirtualMachine, 'edit') From 015ef25ca03291ab111c0e86169013f79269a57d Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 10 Feb 2025 18:34:35 +0000 Subject: [PATCH 06/27] Update source translation strings --- netbox/translations/en/LC_MESSAGES/django.po | 174 +++++++++---------- 1 file changed, 81 insertions(+), 93 deletions(-) diff --git a/netbox/translations/en/LC_MESSAGES/django.po b/netbox/translations/en/LC_MESSAGES/django.po index 3a6dff6c2..52257d7f2 100644 --- a/netbox/translations/en/LC_MESSAGES/django.po +++ b/netbox/translations/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-08 05:02+0000\n" +"POT-Creation-Date: 2025-02-10 18:34+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -2218,11 +2218,10 @@ msgstr "" #: netbox/extras/forms/model_forms.py:632 netbox/extras/tables/tables.py:191 #: netbox/extras/tables/tables.py:483 netbox/extras/tables/tables.py:518 #: netbox/templates/core/datasource.html:31 -#: netbox/templates/dcim/device/render_config.html:18 #: netbox/templates/extras/configcontext.html:29 #: netbox/templates/extras/configtemplate.html:21 #: netbox/templates/extras/exporttemplate.html:35 -#: netbox/templates/virtualization/virtualmachine/render_config.html:18 +#: netbox/templates/extras/object_render_config.html:19 msgid "Data Source" msgstr "" @@ -6981,7 +6980,7 @@ msgstr "" #: netbox/netbox/navigation/menu.py:75 #: netbox/virtualization/forms/model_forms.py:122 #: netbox/virtualization/tables/clusters.py:87 -#: netbox/virtualization/views.py:218 +#: netbox/virtualization/views.py:216 msgid "Devices" msgstr "" @@ -6992,14 +6991,12 @@ msgstr "" #: netbox/dcim/tables/devices.py:111 netbox/dcim/tables/devices.py:226 #: netbox/extras/forms/model_forms.py:630 netbox/templates/dcim/device.html:112 -#: netbox/templates/dcim/device/render_config.html:11 -#: netbox/templates/dcim/device/render_config.html:14 #: netbox/templates/dcim/devicerole.html:44 #: netbox/templates/dcim/platform.html:41 #: netbox/templates/extras/configtemplate.html:10 +#: netbox/templates/extras/object_render_config.html:12 +#: netbox/templates/extras/object_render_config.html:15 #: netbox/templates/virtualization/virtualmachine.html:48 -#: netbox/templates/virtualization/virtualmachine/render_config.html:11 -#: netbox/templates/virtualization/virtualmachine/render_config.html:14 #: netbox/virtualization/tables/virtualmachines.py:77 msgid "Config Template" msgstr "" @@ -7057,8 +7054,8 @@ msgid "Power outlets" msgstr "" #: netbox/dcim/tables/devices.py:256 netbox/dcim/tables/devices.py:1112 -#: netbox/dcim/tables/devicetypes.py:128 netbox/dcim/views.py:1144 -#: netbox/dcim/views.py:1388 netbox/dcim/views.py:2139 +#: netbox/dcim/tables/devicetypes.py:128 netbox/dcim/views.py:1142 +#: netbox/dcim/views.py:1386 netbox/dcim/views.py:2137 #: netbox/netbox/navigation/menu.py:94 netbox/netbox/navigation/menu.py:258 #: netbox/templates/dcim/device/base.html:37 #: netbox/templates/dcim/device_list.html:43 @@ -7070,7 +7067,7 @@ msgstr "" #: netbox/templates/virtualization/virtualmachine/base.html:27 #: netbox/templates/virtualization/virtualmachine_list.html:14 #: netbox/virtualization/tables/virtualmachines.py:71 -#: netbox/virtualization/views.py:383 netbox/wireless/tables/wirelesslan.py:63 +#: netbox/virtualization/views.py:381 netbox/wireless/tables/wirelesslan.py:63 msgid "Interfaces" msgstr "" @@ -7096,8 +7093,8 @@ msgid "Module Bay" msgstr "" #: netbox/dcim/tables/devices.py:327 netbox/dcim/tables/devicetypes.py:47 -#: netbox/dcim/tables/devicetypes.py:143 netbox/dcim/views.py:1219 -#: netbox/dcim/views.py:2237 netbox/netbox/navigation/menu.py:103 +#: netbox/dcim/tables/devicetypes.py:143 netbox/dcim/views.py:1217 +#: netbox/dcim/views.py:2235 netbox/netbox/navigation/menu.py:103 #: netbox/templates/dcim/device/base.html:52 #: netbox/templates/dcim/device_list.html:71 #: netbox/templates/dcim/devicetype/base.html:49 @@ -7226,8 +7223,8 @@ msgstr "" msgid "Instances" msgstr "" -#: netbox/dcim/tables/devicetypes.py:116 netbox/dcim/views.py:1084 -#: netbox/dcim/views.py:1328 netbox/dcim/views.py:2075 +#: netbox/dcim/tables/devicetypes.py:116 netbox/dcim/views.py:1082 +#: netbox/dcim/views.py:1326 netbox/dcim/views.py:2073 #: netbox/netbox/navigation/menu.py:97 #: netbox/templates/dcim/device/base.html:25 #: netbox/templates/dcim/device_list.html:15 @@ -7237,8 +7234,8 @@ msgstr "" msgid "Console Ports" msgstr "" -#: netbox/dcim/tables/devicetypes.py:119 netbox/dcim/views.py:1099 -#: netbox/dcim/views.py:1343 netbox/dcim/views.py:2091 +#: netbox/dcim/tables/devicetypes.py:119 netbox/dcim/views.py:1097 +#: netbox/dcim/views.py:1341 netbox/dcim/views.py:2089 #: netbox/netbox/navigation/menu.py:98 #: netbox/templates/dcim/device/base.html:28 #: netbox/templates/dcim/device_list.html:22 @@ -7248,8 +7245,8 @@ msgstr "" msgid "Console Server Ports" msgstr "" -#: netbox/dcim/tables/devicetypes.py:122 netbox/dcim/views.py:1114 -#: netbox/dcim/views.py:1358 netbox/dcim/views.py:2107 +#: netbox/dcim/tables/devicetypes.py:122 netbox/dcim/views.py:1112 +#: netbox/dcim/views.py:1356 netbox/dcim/views.py:2105 #: netbox/netbox/navigation/menu.py:99 #: netbox/templates/dcim/device/base.html:31 #: netbox/templates/dcim/device_list.html:29 @@ -7259,8 +7256,8 @@ msgstr "" msgid "Power Ports" msgstr "" -#: netbox/dcim/tables/devicetypes.py:125 netbox/dcim/views.py:1129 -#: netbox/dcim/views.py:1373 netbox/dcim/views.py:2123 +#: netbox/dcim/tables/devicetypes.py:125 netbox/dcim/views.py:1127 +#: netbox/dcim/views.py:1371 netbox/dcim/views.py:2121 #: netbox/netbox/navigation/menu.py:100 #: netbox/templates/dcim/device/base.html:34 #: netbox/templates/dcim/device_list.html:36 @@ -7270,8 +7267,8 @@ msgstr "" msgid "Power Outlets" msgstr "" -#: netbox/dcim/tables/devicetypes.py:131 netbox/dcim/views.py:1159 -#: netbox/dcim/views.py:1403 netbox/dcim/views.py:2161 +#: netbox/dcim/tables/devicetypes.py:131 netbox/dcim/views.py:1157 +#: netbox/dcim/views.py:1401 netbox/dcim/views.py:2159 #: netbox/netbox/navigation/menu.py:95 #: netbox/templates/dcim/device/base.html:40 #: netbox/templates/dcim/devicetype/base.html:37 @@ -7280,8 +7277,8 @@ msgstr "" msgid "Front Ports" msgstr "" -#: netbox/dcim/tables/devicetypes.py:134 netbox/dcim/views.py:1174 -#: netbox/dcim/views.py:1418 netbox/dcim/views.py:2177 +#: netbox/dcim/tables/devicetypes.py:134 netbox/dcim/views.py:1172 +#: netbox/dcim/views.py:1416 netbox/dcim/views.py:2175 #: netbox/netbox/navigation/menu.py:96 #: netbox/templates/dcim/device/base.html:43 #: netbox/templates/dcim/device_list.html:50 @@ -7291,16 +7288,16 @@ msgstr "" msgid "Rear Ports" msgstr "" -#: netbox/dcim/tables/devicetypes.py:137 netbox/dcim/views.py:1204 -#: netbox/dcim/views.py:2217 netbox/netbox/navigation/menu.py:102 +#: netbox/dcim/tables/devicetypes.py:137 netbox/dcim/views.py:1202 +#: netbox/dcim/views.py:2215 netbox/netbox/navigation/menu.py:102 #: netbox/templates/dcim/device/base.html:49 #: netbox/templates/dcim/device_list.html:57 #: netbox/templates/dcim/devicetype/base.html:46 msgid "Device Bays" msgstr "" -#: netbox/dcim/tables/devicetypes.py:140 netbox/dcim/views.py:1189 -#: netbox/dcim/views.py:1433 netbox/dcim/views.py:2197 +#: netbox/dcim/tables/devicetypes.py:140 netbox/dcim/views.py:1187 +#: netbox/dcim/views.py:1431 netbox/dcim/views.py:2195 #: netbox/netbox/navigation/menu.py:101 #: netbox/templates/dcim/device/base.html:46 #: netbox/templates/dcim/device_list.html:64 @@ -7365,67 +7362,62 @@ msgstr "" msgid "Test case must set peer_termination_type" msgstr "" -#: netbox/dcim/views.py:139 +#: netbox/dcim/views.py:137 #, python-brace-format msgid "Disconnected {count} {type}" msgstr "" -#: netbox/dcim/views.py:826 netbox/netbox/navigation/menu.py:51 +#: netbox/dcim/views.py:824 netbox/netbox/navigation/menu.py:51 msgid "Reservations" msgstr "" -#: netbox/dcim/views.py:845 netbox/templates/dcim/location.html:90 +#: netbox/dcim/views.py:843 netbox/templates/dcim/location.html:90 #: netbox/templates/dcim/site.html:140 msgid "Non-Racked Devices" msgstr "" -#: netbox/dcim/views.py:2250 netbox/extras/forms/model_forms.py:577 +#: netbox/dcim/views.py:2248 netbox/extras/forms/model_forms.py:577 #: netbox/templates/extras/configcontext.html:10 #: netbox/virtualization/forms/model_forms.py:232 -#: netbox/virtualization/views.py:424 +#: netbox/virtualization/views.py:422 msgid "Config Context" msgstr "" -#: netbox/dcim/views.py:2260 netbox/virtualization/views.py:434 +#: netbox/dcim/views.py:2258 netbox/virtualization/views.py:432 msgid "Render Config" msgstr "" -#: netbox/dcim/views.py:2295 netbox/virtualization/views.py:469 -#, python-brace-format -msgid "An error occurred while rendering the template: {error}" -msgstr "" - -#: netbox/dcim/views.py:2313 netbox/extras/tables/tables.py:550 +#: netbox/dcim/views.py:2271 netbox/extras/tables/tables.py:550 #: netbox/netbox/navigation/menu.py:255 netbox/netbox/navigation/menu.py:257 -#: netbox/virtualization/views.py:192 +#: netbox/virtualization/views.py:190 msgid "Virtual Machines" msgstr "" -#: netbox/dcim/views.py:3146 +#: netbox/dcim/views.py:3104 #, python-brace-format msgid "Installed device {device} in bay {device_bay}." msgstr "" -#: netbox/dcim/views.py:3187 +#: netbox/dcim/views.py:3145 #, python-brace-format msgid "Removed device {device} from bay {device_bay}." msgstr "" -#: netbox/dcim/views.py:3303 netbox/ipam/tables/ip.py:180 +#: netbox/dcim/views.py:3261 netbox/ipam/tables/ip.py:180 msgid "Children" msgstr "" -#: netbox/dcim/views.py:3770 +#: netbox/dcim/views.py:3728 #, python-brace-format msgid "Added member {device}" msgstr "" -#: netbox/dcim/views.py:3819 +#: netbox/dcim/views.py:3777 #, python-brace-format msgid "Unable to remove master device {device} from the virtual chassis." msgstr "" -#: netbox/dcim/views.py:3832 +#: netbox/dcim/views.py:3790 #, python-brace-format msgid "Removed {device} from virtual chassis {chassis}" msgstr "" @@ -9251,12 +9243,11 @@ msgstr "" #: netbox/extras/tables/tables.py:195 netbox/extras/tables/tables.py:487 #: netbox/extras/tables/tables.py:522 netbox/templates/core/datafile.html:24 -#: netbox/templates/dcim/device/render_config.html:22 #: netbox/templates/extras/configcontext.html:39 #: netbox/templates/extras/configtemplate.html:31 #: netbox/templates/extras/exporttemplate.html:45 +#: netbox/templates/extras/object_render_config.html:23 #: netbox/templates/generic/bulk_import.html:35 -#: netbox/templates/virtualization/virtualmachine/render_config.html:22 msgid "Data File" msgstr "" @@ -9347,27 +9338,32 @@ msgstr "" msgid "Invalid attribute \"{name}\" for {model}" msgstr "" -#: netbox/extras/views.py:1029 +#: netbox/extras/views.py:933 +#, python-brace-format +msgid "An error occurred while rendering the template: {error}" +msgstr "" + +#: netbox/extras/views.py:1085 msgid "Your dashboard has been reset." msgstr "" -#: netbox/extras/views.py:1075 +#: netbox/extras/views.py:1131 msgid "Added widget: " msgstr "" -#: netbox/extras/views.py:1116 +#: netbox/extras/views.py:1172 msgid "Updated widget: " msgstr "" -#: netbox/extras/views.py:1152 +#: netbox/extras/views.py:1208 msgid "Deleted widget: " msgstr "" -#: netbox/extras/views.py:1154 +#: netbox/extras/views.py:1210 msgid "Error deleting widget: " msgstr "" -#: netbox/extras/views.py:1244 +#: netbox/extras/views.py:1300 msgid "Unable to run script: RQ worker process not running." msgstr "" @@ -11285,7 +11281,7 @@ msgstr "" #: netbox/templates/virtualization/virtualmachine/base.html:32 #: netbox/templates/virtualization/virtualmachine_list.html:21 #: netbox/virtualization/tables/virtualmachines.py:74 -#: netbox/virtualization/views.py:405 +#: netbox/virtualization/views.py:403 msgid "Virtual Disks" msgstr "" @@ -11957,6 +11953,7 @@ msgstr "" #: netbox/templates/extras/webhook.html:75 #: netbox/templates/inc/panel_table.html:13 #: netbox/templates/inc/panels/comments.html:10 +#: netbox/templates/inc/panels/related_objects.html:23 #: netbox/templates/ipam/inc/panels/fhrp_groups.html:56 #: netbox/templates/users/group.html:34 netbox/templates/users/group.html:44 #: netbox/templates/users/objectpermission.html:77 @@ -12838,35 +12835,6 @@ msgstr "" msgid "Add Rear Ports" msgstr "" -#: netbox/templates/dcim/device/render_config.html:5 -#: netbox/templates/virtualization/virtualmachine/render_config.html:5 -msgid "Config" -msgstr "" - -#: netbox/templates/dcim/device/render_config.html:35 -#: netbox/templates/virtualization/virtualmachine/render_config.html:35 -msgid "Context Data" -msgstr "" - -#: netbox/templates/dcim/device/render_config.html:55 -#: netbox/templates/virtualization/virtualmachine/render_config.html:55 -msgid "Rendered Config" -msgstr "" - -#: netbox/templates/dcim/device/render_config.html:57 -#: netbox/templates/virtualization/virtualmachine/render_config.html:57 -msgid "Download" -msgstr "" - -#: netbox/templates/dcim/device/render_config.html:64 -#: netbox/templates/virtualization/virtualmachine/render_config.html:64 -msgid "Error rendering template" -msgstr "" - -#: netbox/templates/dcim/device/render_config.html:70 -msgid "No configuration template has been assigned for this device." -msgstr "" - #: netbox/templates/dcim/device_edit.html:44 msgid "Parent Bay" msgstr "" @@ -13666,6 +13634,30 @@ msgstr "" msgid "New Journal Entry" msgstr "" +#: netbox/templates/extras/object_render_config.html:6 +msgid "Config" +msgstr "" + +#: netbox/templates/extras/object_render_config.html:36 +msgid "Context Data" +msgstr "" + +#: netbox/templates/extras/object_render_config.html:56 +msgid "Rendered Config" +msgstr "" + +#: netbox/templates/extras/object_render_config.html:58 +msgid "Download" +msgstr "" + +#: netbox/templates/extras/object_render_config.html:65 +msgid "Error rendering template" +msgstr "" + +#: netbox/templates/extras/object_render_config.html:71 +msgid "No configuration template has been assigned." +msgstr "" + #: netbox/templates/extras/report/base.html:30 msgid "Report" msgstr "" @@ -13750,7 +13742,7 @@ msgstr "" msgid "Tagged Item Types" msgstr "" -#: netbox/templates/extras/tag.html:81 +#: netbox/templates/extras/tag.html:82 msgid "Tagged Objects" msgstr "" @@ -14514,10 +14506,6 @@ msgstr "" msgid "Add Virtual Disk" msgstr "" -#: netbox/templates/virtualization/virtualmachine/render_config.html:70 -msgid "No configuration template has been assigned for this virtual machine." -msgstr "" - #: netbox/templates/vpn/ikepolicy.html:10 #: netbox/templates/vpn/ipsecprofile.html:33 netbox/vpn/tables/crypto.py:166 msgid "IKE Policy" @@ -15698,12 +15686,12 @@ msgstr "" msgid "virtual disks" msgstr "" -#: netbox/virtualization/views.py:291 +#: netbox/virtualization/views.py:289 #, python-brace-format msgid "Added {count} devices to cluster {cluster}" msgstr "" -#: netbox/virtualization/views.py:326 +#: netbox/virtualization/views.py:324 #, python-brace-format msgid "Removed {count} devices from cluster {cluster}" msgstr "" From 154b3a7abbbcb0d700257a250af82315644206cb Mon Sep 17 00:00:00 2001 From: Renato Almeida de Oliveira Date: Tue, 11 Feb 2025 10:31:40 -0300 Subject: [PATCH 07/27] Fixes: 18593 - "Create & Add Another" broken for new IP addresses (#18602) * update IPAddressEditView get_extra_addanother_params * Simplify get_extra_addanother_params --- netbox/ipam/views.py | 1 + 1 file changed, 1 insertion(+) diff --git a/netbox/ipam/views.py b/netbox/ipam/views.py index 007a652ca..d9ee0e685 100644 --- a/netbox/ipam/views.py +++ b/netbox/ipam/views.py @@ -868,6 +868,7 @@ class IPAddressEditView(generic.ObjectEditView): return {'interface': request.GET['interface']} elif 'vminterface' in request.GET: return {'vminterface': request.GET['vminterface']} + return {} # TODO: Standardize or remove this view From 81144926730bf82bc7636279c2aac4a7c716b51f Mon Sep 17 00:00:00 2001 From: Tobias Genannt Date: Thu, 9 Jan 2025 09:38:01 +0100 Subject: [PATCH 08/27] Close #18357: Display author name for plugins --- netbox/core/plugins.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/netbox/core/plugins.py b/netbox/core/plugins.py index 1fcb37f2b..66580c936 100644 --- a/netbox/core/plugins.py +++ b/netbox/core/plugins.py @@ -80,6 +80,13 @@ def get_local_plugins(plugins=None): plugin = importlib.import_module(plugin_name) plugin_config: PluginConfig = plugin.config + if plugin_config.author: + author = PluginAuthor( + name=plugin_config.author, + ) + else: + author = None + local_plugins[plugin_config.name] = Plugin( config_name=plugin_config.name, title_short=plugin_config.verbose_name, @@ -88,6 +95,7 @@ def get_local_plugins(plugins=None): description_short=plugin_config.description, is_local=True, is_installed=True, + author=author, installed_version=plugin_config.version, ) From f8022040b245790796a82b38a67570335a320b74 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 12 Feb 2025 05:02:12 +0000 Subject: [PATCH 09/27] Update source translation strings --- netbox/translations/en/LC_MESSAGES/django.po | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/netbox/translations/en/LC_MESSAGES/django.po b/netbox/translations/en/LC_MESSAGES/django.po index 52257d7f2..a6af44ae7 100644 --- a/netbox/translations/en/LC_MESSAGES/django.po +++ b/netbox/translations/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-10 18:34+0000\n" +"POT-Creation-Date: 2025-02-12 05:01+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -9932,7 +9932,7 @@ msgstr "" #: netbox/ipam/forms/filtersets.py:419 netbox/ipam/models/vlans.py:273 #: netbox/ipam/tables/ip.py:122 netbox/ipam/tables/vlans.py:51 -#: netbox/ipam/views.py:1035 netbox/netbox/navigation/menu.py:199 +#: netbox/ipam/views.py:1036 netbox/netbox/navigation/menu.py:199 #: netbox/netbox/navigation/menu.py:201 msgid "VLANs" msgstr "" @@ -10644,15 +10644,15 @@ msgstr "" msgid "Child Ranges" msgstr "" -#: netbox/ipam/views.py:957 +#: netbox/ipam/views.py:958 msgid "Related IPs" msgstr "" -#: netbox/ipam/views.py:1314 +#: netbox/ipam/views.py:1315 msgid "Device Interfaces" msgstr "" -#: netbox/ipam/views.py:1332 +#: netbox/ipam/views.py:1333 msgid "VM Interfaces" msgstr "" From b1ac20ac19fdd44bf01c2d693ec87d4fc8364382 Mon Sep 17 00:00:00 2001 From: Renato Almeida de Oliveira Zaroubin Date: Fri, 14 Feb 2025 00:01:11 +0000 Subject: [PATCH 10/27] Update ModuleBay instance name before saving it --- netbox/dcim/models/devices.py | 1 + 1 file changed, 1 insertion(+) diff --git a/netbox/dcim/models/devices.py b/netbox/dcim/models/devices.py index 2acd98801..12b0dae18 100644 --- a/netbox/dcim/models/devices.py +++ b/netbox/dcim/models/devices.py @@ -1298,6 +1298,7 @@ class Module(PrimaryModel, ConfigContextModel): else: # ModuleBays must be saved individually for MPTT for instance in create_instances: + instance.name = instance.name.replace(MODULE_TOKEN, str(self.module_bay.position)) instance.save() update_fields = ['module'] From f9431f1c293931046753c145fc7d2b2869667adf Mon Sep 17 00:00:00 2001 From: Alexander Haase Date: Thu, 13 Feb 2025 22:39:11 +0100 Subject: [PATCH 11/27] Replace DurationChoices by JobIntervalChoices --- netbox/core/choices.py | 2 ++ netbox/extras/choices.py | 11 ----------- netbox/extras/forms/reports.py | 4 ++-- netbox/extras/forms/scripts.py | 4 ++-- 4 files changed, 6 insertions(+), 15 deletions(-) diff --git a/netbox/core/choices.py b/netbox/core/choices.py index 442acc26b..6603a7d4f 100644 --- a/netbox/core/choices.py +++ b/netbox/core/choices.py @@ -81,8 +81,10 @@ class JobIntervalChoices(ChoiceSet): CHOICES = ( (INTERVAL_MINUTELY, _('Minutely')), (INTERVAL_HOURLY, _('Hourly')), + (INTERVAL_HOURLY * 12, _('12 hours')), (INTERVAL_DAILY, _('Daily')), (INTERVAL_WEEKLY, _('Weekly')), + (INTERVAL_DAILY * 30, _('30 days')), ) diff --git a/netbox/extras/choices.py b/netbox/extras/choices.py index 3cd7daab4..8258f4aaf 100644 --- a/netbox/extras/choices.py +++ b/netbox/extras/choices.py @@ -178,17 +178,6 @@ class LogLevelChoices(ChoiceSet): } -class DurationChoices(ChoiceSet): - - CHOICES = ( - (60, _('Hourly')), - (720, _('12 hours')), - (1440, _('Daily')), - (10080, _('Weekly')), - (43200, _('30 days')), - ) - - # # Webhooks # diff --git a/netbox/extras/forms/reports.py b/netbox/extras/forms/reports.py index 95692b3f6..72d0417f2 100644 --- a/netbox/extras/forms/reports.py +++ b/netbox/extras/forms/reports.py @@ -1,7 +1,7 @@ from django import forms from django.utils.translation import gettext_lazy as _ -from extras.choices import DurationChoices +from core.choices import JobIntervalChoices from utilities.forms.widgets import DateTimePicker, NumberWithOptions from utilities.datetime import local_now @@ -22,7 +22,7 @@ class ReportForm(forms.Form): min_value=1, label=_("Recurs every"), widget=NumberWithOptions( - options=DurationChoices + options=JobIntervalChoices ), help_text=_("Interval at which this report is re-run (in minutes)") ) diff --git a/netbox/extras/forms/scripts.py b/netbox/extras/forms/scripts.py index 331f7f01f..8ac476544 100644 --- a/netbox/extras/forms/scripts.py +++ b/netbox/extras/forms/scripts.py @@ -1,7 +1,7 @@ from django import forms from django.utils.translation import gettext_lazy as _ -from extras.choices import DurationChoices +from core.choices import JobIntervalChoices from utilities.forms.widgets import DateTimePicker, NumberWithOptions from utilities.datetime import local_now @@ -28,7 +28,7 @@ class ScriptForm(forms.Form): min_value=1, label=_("Recurs every"), widget=NumberWithOptions( - options=DurationChoices + options=JobIntervalChoices ), help_text=_("Interval at which this script is re-run (in minutes)") ) From c324d23634b1a2d192969996ef99f269d5baa66c Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Sat, 15 Feb 2025 05:02:03 +0000 Subject: [PATCH 12/27] Update source translation strings --- netbox/translations/en/LC_MESSAGES/django.po | 106 +++++++++---------- 1 file changed, 53 insertions(+), 53 deletions(-) diff --git a/netbox/translations/en/LC_MESSAGES/django.po b/netbox/translations/en/LC_MESSAGES/django.po index a6af44ae7..cab5ed729 100644 --- a/netbox/translations/en/LC_MESSAGES/django.po +++ b/netbox/translations/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-12 05:01+0000\n" +"POT-Creation-Date: 2025-02-15 05:01+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -28,7 +28,7 @@ msgstr "" msgid "Write Enabled" msgstr "" -#: netbox/account/tables.py:35 netbox/core/choices.py:100 +#: netbox/account/tables.py:35 netbox/core/choices.py:102 #: netbox/core/tables/jobs.py:29 netbox/core/tables/tasks.py:79 #: netbox/extras/tables/tables.py:335 netbox/extras/tables/tables.py:566 #: netbox/templates/account/token.html:43 @@ -1430,7 +1430,7 @@ msgstr "" #: netbox/core/models/jobs.py:85 netbox/dcim/models/cables.py:49 #: netbox/dcim/models/device_components.py:1281 #: netbox/dcim/models/devices.py:645 netbox/dcim/models/devices.py:1177 -#: netbox/dcim/models/devices.py:1404 netbox/dcim/models/power.py:94 +#: netbox/dcim/models/devices.py:1405 netbox/dcim/models/power.py:94 #: netbox/dcim/models/racks.py:288 netbox/dcim/models/sites.py:154 #: netbox/dcim/models/sites.py:270 netbox/ipam/models/ip.py:237 #: netbox/ipam/models/ip.py:508 netbox/ipam/models/ip.py:729 @@ -1561,7 +1561,7 @@ msgstr "" #: netbox/core/models/jobs.py:46 #: netbox/dcim/models/device_component_templates.py:43 #: netbox/dcim/models/device_components.py:52 netbox/dcim/models/devices.py:589 -#: netbox/dcim/models/devices.py:1336 netbox/dcim/models/devices.py:1399 +#: netbox/dcim/models/devices.py:1337 netbox/dcim/models/devices.py:1400 #: netbox/dcim/models/power.py:38 netbox/dcim/models/power.py:89 #: netbox/dcim/models/racks.py:257 netbox/dcim/models/sites.py:142 #: netbox/extras/models/configs.py:36 netbox/extras/models/configs.py:215 @@ -2046,24 +2046,32 @@ msgstr "" msgid "Minutely" msgstr "" -#: netbox/core/choices.py:83 netbox/extras/choices.py:184 +#: netbox/core/choices.py:83 msgid "Hourly" msgstr "" -#: netbox/core/choices.py:84 netbox/extras/choices.py:186 +#: netbox/core/choices.py:84 +msgid "12 hours" +msgstr "" + +#: netbox/core/choices.py:85 msgid "Daily" msgstr "" -#: netbox/core/choices.py:85 netbox/extras/choices.py:187 +#: netbox/core/choices.py:86 msgid "Weekly" msgstr "" -#: netbox/core/choices.py:101 netbox/core/tables/plugins.py:63 +#: netbox/core/choices.py:87 +msgid "30 days" +msgstr "" + +#: netbox/core/choices.py:103 netbox/core/tables/plugins.py:63 #: netbox/templates/generic/object.html:61 msgid "Updated" msgstr "" -#: netbox/core/choices.py:102 +#: netbox/core/choices.py:104 msgid "Deleted" msgstr "" @@ -3531,7 +3539,7 @@ msgstr "" #: netbox/dcim/filtersets.py:1104 netbox/dcim/forms/filtersets.py:819 #: netbox/dcim/forms/filtersets.py:1390 netbox/dcim/forms/filtersets.py:1586 #: netbox/dcim/forms/filtersets.py:1591 netbox/dcim/forms/model_forms.py:1762 -#: netbox/dcim/models/devices.py:1500 netbox/dcim/models/devices.py:1521 +#: netbox/dcim/models/devices.py:1501 netbox/dcim/models/devices.py:1522 #: netbox/virtualization/filtersets.py:196 #: netbox/virtualization/filtersets.py:268 #: netbox/virtualization/forms/filtersets.py:177 @@ -6370,12 +6378,12 @@ msgstr "" msgid "rack face" msgstr "" -#: netbox/dcim/models/devices.py:663 netbox/dcim/models/devices.py:1420 +#: netbox/dcim/models/devices.py:663 netbox/dcim/models/devices.py:1421 #: netbox/virtualization/models/virtualmachines.py:95 msgid "primary IPv4" msgstr "" -#: netbox/dcim/models/devices.py:671 netbox/dcim/models/devices.py:1428 +#: netbox/dcim/models/devices.py:671 netbox/dcim/models/devices.py:1429 #: netbox/virtualization/models/virtualmachines.py:103 msgid "primary IPv6" msgstr "" @@ -6538,68 +6546,68 @@ msgid "" "device ({device})." msgstr "" -#: netbox/dcim/models/devices.py:1341 +#: netbox/dcim/models/devices.py:1342 msgid "domain" msgstr "" -#: netbox/dcim/models/devices.py:1354 netbox/dcim/models/devices.py:1355 +#: netbox/dcim/models/devices.py:1355 netbox/dcim/models/devices.py:1356 msgid "virtual chassis" msgstr "" -#: netbox/dcim/models/devices.py:1367 +#: netbox/dcim/models/devices.py:1368 #, python-brace-format msgid "The selected master ({master}) is not assigned to this virtual chassis." msgstr "" -#: netbox/dcim/models/devices.py:1383 +#: netbox/dcim/models/devices.py:1384 #, python-brace-format msgid "" "Unable to delete virtual chassis {self}. There are member interfaces which " "form a cross-chassis LAG interfaces." msgstr "" -#: netbox/dcim/models/devices.py:1409 netbox/vpn/models/l2vpn.py:37 +#: netbox/dcim/models/devices.py:1410 netbox/vpn/models/l2vpn.py:37 msgid "identifier" msgstr "" -#: netbox/dcim/models/devices.py:1410 +#: netbox/dcim/models/devices.py:1411 msgid "Numeric identifier unique to the parent device" msgstr "" -#: netbox/dcim/models/devices.py:1438 netbox/extras/models/customfields.py:225 +#: netbox/dcim/models/devices.py:1439 netbox/extras/models/customfields.py:225 #: netbox/extras/models/models.py:107 netbox/extras/models/models.py:694 #: netbox/netbox/models/__init__.py:119 msgid "comments" msgstr "" -#: netbox/dcim/models/devices.py:1454 +#: netbox/dcim/models/devices.py:1455 msgid "virtual device context" msgstr "" -#: netbox/dcim/models/devices.py:1455 +#: netbox/dcim/models/devices.py:1456 msgid "virtual device contexts" msgstr "" -#: netbox/dcim/models/devices.py:1484 +#: netbox/dcim/models/devices.py:1485 #, python-brace-format msgid "{ip} is not an IPv{family} address." msgstr "" -#: netbox/dcim/models/devices.py:1490 +#: netbox/dcim/models/devices.py:1491 msgid "Primary IP address must belong to an interface on the assigned device." msgstr "" -#: netbox/dcim/models/devices.py:1522 +#: netbox/dcim/models/devices.py:1523 msgid "MAC addresses" msgstr "" -#: netbox/dcim/models/devices.py:1551 +#: netbox/dcim/models/devices.py:1552 msgid "" "Cannot unassign MAC Address while it is designated as the primary MAC for an " "object" msgstr "" -#: netbox/dcim/models/devices.py:1555 +#: netbox/dcim/models/devices.py:1556 msgid "" "Cannot reassign MAC Address while it is designated as the primary MAC for an " "object" @@ -7560,15 +7568,7 @@ msgstr "" msgid "Failure" msgstr "" -#: netbox/extras/choices.py:185 -msgid "12 hours" -msgstr "" - -#: netbox/extras/choices.py:188 -msgid "30 days" -msgstr "" - -#: netbox/extras/choices.py:224 +#: netbox/extras/choices.py:213 #: netbox/templates/dcim/virtualchassis_edit.html:107 #: netbox/templates/generic/bulk_add_component.html:68 #: netbox/templates/generic/object_edit.html:47 @@ -7578,11 +7578,11 @@ msgstr "" msgid "Create" msgstr "" -#: netbox/extras/choices.py:225 +#: netbox/extras/choices.py:214 msgid "Update" msgstr "" -#: netbox/extras/choices.py:226 +#: netbox/extras/choices.py:215 #: netbox/templates/circuits/inc/circuit_termination.html:23 #: netbox/templates/dcim/inc/panels/inventory_items.html:37 #: netbox/templates/dcim/powerpanel.html:66 @@ -7597,82 +7597,82 @@ msgstr "" msgid "Delete" msgstr "" -#: netbox/extras/choices.py:250 netbox/netbox/choices.py:59 +#: netbox/extras/choices.py:239 netbox/netbox/choices.py:59 #: netbox/netbox/choices.py:104 msgid "Blue" msgstr "" -#: netbox/extras/choices.py:251 netbox/netbox/choices.py:58 +#: netbox/extras/choices.py:240 netbox/netbox/choices.py:58 #: netbox/netbox/choices.py:105 msgid "Indigo" msgstr "" -#: netbox/extras/choices.py:252 netbox/netbox/choices.py:56 +#: netbox/extras/choices.py:241 netbox/netbox/choices.py:56 #: netbox/netbox/choices.py:106 msgid "Purple" msgstr "" -#: netbox/extras/choices.py:253 netbox/netbox/choices.py:53 +#: netbox/extras/choices.py:242 netbox/netbox/choices.py:53 #: netbox/netbox/choices.py:107 msgid "Pink" msgstr "" -#: netbox/extras/choices.py:254 netbox/netbox/choices.py:52 +#: netbox/extras/choices.py:243 netbox/netbox/choices.py:52 #: netbox/netbox/choices.py:108 msgid "Red" msgstr "" -#: netbox/extras/choices.py:255 netbox/netbox/choices.py:70 +#: netbox/extras/choices.py:244 netbox/netbox/choices.py:70 #: netbox/netbox/choices.py:109 msgid "Orange" msgstr "" -#: netbox/extras/choices.py:256 netbox/netbox/choices.py:68 +#: netbox/extras/choices.py:245 netbox/netbox/choices.py:68 #: netbox/netbox/choices.py:110 msgid "Yellow" msgstr "" -#: netbox/extras/choices.py:257 netbox/netbox/choices.py:65 +#: netbox/extras/choices.py:246 netbox/netbox/choices.py:65 #: netbox/netbox/choices.py:111 msgid "Green" msgstr "" -#: netbox/extras/choices.py:258 netbox/netbox/choices.py:62 +#: netbox/extras/choices.py:247 netbox/netbox/choices.py:62 #: netbox/netbox/choices.py:112 msgid "Teal" msgstr "" -#: netbox/extras/choices.py:259 netbox/netbox/choices.py:61 +#: netbox/extras/choices.py:248 netbox/netbox/choices.py:61 #: netbox/netbox/choices.py:113 msgid "Cyan" msgstr "" -#: netbox/extras/choices.py:260 netbox/netbox/choices.py:114 +#: netbox/extras/choices.py:249 netbox/netbox/choices.py:114 msgid "Gray" msgstr "" -#: netbox/extras/choices.py:261 netbox/netbox/choices.py:76 +#: netbox/extras/choices.py:250 netbox/netbox/choices.py:76 #: netbox/netbox/choices.py:115 msgid "Black" msgstr "" -#: netbox/extras/choices.py:262 netbox/netbox/choices.py:77 +#: netbox/extras/choices.py:251 netbox/netbox/choices.py:77 #: netbox/netbox/choices.py:116 msgid "White" msgstr "" -#: netbox/extras/choices.py:277 netbox/extras/forms/model_forms.py:353 +#: netbox/extras/choices.py:266 netbox/extras/forms/model_forms.py:353 #: netbox/extras/forms/model_forms.py:430 #: netbox/templates/extras/webhook.html:10 msgid "Webhook" msgstr "" -#: netbox/extras/choices.py:278 netbox/extras/forms/model_forms.py:418 +#: netbox/extras/choices.py:267 netbox/extras/forms/model_forms.py:418 #: netbox/templates/extras/script/base.html:29 msgid "Script" msgstr "" -#: netbox/extras/choices.py:279 +#: netbox/extras/choices.py:268 msgid "Notification" msgstr "" From 11514bfb219501dadd9ae1448a76247f65f2a63b Mon Sep 17 00:00:00 2001 From: Renato Almeida de Oliveira Date: Tue, 18 Feb 2025 10:41:12 -0300 Subject: [PATCH 13/27] Fixes: #18584 Add rack types column to manufacturers table (#18636) * Add racktype_count annotation to list view queryset, create the LinkedCountColumn in ManufacturerTable * Add Manufacturer field to RackTypeFilterForm --- netbox/dcim/forms/filtersets.py | 2 +- netbox/dcim/tables/devicetypes.py | 13 +++++++++---- netbox/dcim/views.py | 1 + 3 files changed, 11 insertions(+), 5 deletions(-) diff --git a/netbox/dcim/forms/filtersets.py b/netbox/dcim/forms/filtersets.py index 37b8afd17..4dbceb4f5 100644 --- a/netbox/dcim/forms/filtersets.py +++ b/netbox/dcim/forms/filtersets.py @@ -303,7 +303,7 @@ class RackTypeFilterForm(RackBaseFilterForm): model = RackType fieldsets = ( FieldSet('q', 'filter_id', 'tag'), - FieldSet('form_factor', 'width', 'u_height', name=_('Rack Type')), + FieldSet('manufacturer_id', 'form_factor', 'width', 'u_height', name=_('Rack Type')), FieldSet('starting_unit', 'desc_units', name=_('Numbering')), FieldSet('weight', 'max_weight', 'weight_unit', name=_('Weight')), ) diff --git a/netbox/dcim/tables/devicetypes.py b/netbox/dcim/tables/devicetypes.py index a7f8f08e8..91f9f3b47 100644 --- a/netbox/dcim/tables/devicetypes.py +++ b/netbox/dcim/tables/devicetypes.py @@ -31,6 +31,11 @@ class ManufacturerTable(ContactsColumnMixin, NetBoxTable): verbose_name=_('Name'), linkify=True ) + racktype_count = columns.LinkedCountColumn( + viewname='dcim:racktype_list', + url_params={'manufacturer_id': 'pk'}, + verbose_name=_('Rack Types') + ) devicetype_count = columns.LinkedCountColumn( viewname='dcim:devicetype_list', url_params={'manufacturer_id': 'pk'}, @@ -58,12 +63,12 @@ class ManufacturerTable(ContactsColumnMixin, NetBoxTable): class Meta(NetBoxTable.Meta): model = models.Manufacturer fields = ( - 'pk', 'id', 'name', 'devicetype_count', 'moduletype_count', 'inventoryitem_count', 'platform_count', - 'description', 'slug', 'tags', 'contacts', 'actions', 'created', 'last_updated', + 'pk', 'id', 'name', 'racktype_count', 'devicetype_count', 'moduletype_count', 'inventoryitem_count', + 'platform_count', 'description', 'slug', 'tags', 'contacts', 'actions', 'created', 'last_updated', ) default_columns = ( - 'pk', 'name', 'devicetype_count', 'moduletype_count', 'inventoryitem_count', 'platform_count', - 'description', 'slug', + 'pk', 'name', 'racktype_count', 'devicetype_count', 'moduletype_count', 'inventoryitem_count', + 'platform_count', 'description', 'slug', ) diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 6efdb63f0..583b89f1a 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -964,6 +964,7 @@ class RackReservationBulkDeleteView(generic.BulkDeleteView): @register_model_view(Manufacturer, 'list', path='', detail=False) class ManufacturerListView(generic.ObjectListView): queryset = Manufacturer.objects.annotate( + racktype_count=count_related(RackType, 'manufacturer'), devicetype_count=count_related(DeviceType, 'manufacturer'), moduletype_count=count_related(ModuleType, 'manufacturer'), inventoryitem_count=count_related(InventoryItem, 'manufacturer'), From 6c6cb321bf60a03ff23ec2db2f6fcdc4e354098d Mon Sep 17 00:00:00 2001 From: Alexander Haase Date: Tue, 18 Feb 2025 15:11:32 +0100 Subject: [PATCH 14/27] Fixes 18555: Fix model URL generator for plugins (#18607) * Fix model URL generator for plugins * Fix reverse accessor warning * Revert "Fix reverse accessor warning" This reverts commit f07642bb997910205d0acc09fc8df3dde30c7981. * Add URL test case for regular models * Split dummy models Instead of using a single model for testing, one is used for testing the plugin API and a dedicated one is used for testing the NetBox plugin model features. * Fix filterset test case error * Rename test module --------- Co-authored-by: Jeremy Stretch --- netbox/extras/tests/test_filtersets.py | 1 + netbox/netbox/models/__init__.py | 3 +- .../migrations/0002_dummynetboxmodel.py | 30 +++++++++++++++++++ netbox/netbox/tests/dummy_plugin/models.py | 6 ++++ netbox/netbox/tests/dummy_plugin/urls.py | 2 ++ netbox/netbox/tests/dummy_plugin/views.py | 19 +++++++++++- netbox/netbox/tests/test_models.py | 23 ++++++++++++++ 7 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 netbox/netbox/tests/dummy_plugin/migrations/0002_dummynetboxmodel.py create mode 100644 netbox/netbox/tests/test_models.py diff --git a/netbox/extras/tests/test_filtersets.py b/netbox/extras/tests/test_filtersets.py index cf914e665..03d8508af 100644 --- a/netbox/extras/tests/test_filtersets.py +++ b/netbox/extras/tests/test_filtersets.py @@ -1118,6 +1118,7 @@ class TagTestCase(TestCase, ChangeLoggedFilterSetTests): 'devicerole', 'devicetype', 'dummymodel', # From dummy_plugin + 'dummynetboxmodel', # From dummy_plugin 'eventrule', 'fhrpgroup', 'frontport', diff --git a/netbox/netbox/models/__init__.py b/netbox/netbox/models/__init__.py index b1f7cfd48..ca79d5e7e 100644 --- a/netbox/netbox/models/__init__.py +++ b/netbox/netbox/models/__init__.py @@ -10,6 +10,7 @@ from mptt.models import MPTTModel, TreeForeignKey from netbox.models.features import * from utilities.mptt import TreeManager from utilities.querysets import RestrictedQuerySet +from utilities.views import get_viewname __all__ = ( @@ -42,7 +43,7 @@ class NetBoxFeatureSet( return f'{settings.STATIC_URL}docs/models/{self._meta.app_label}/{self._meta.model_name}/' def get_absolute_url(self): - return reverse(f'{self._meta.app_label}:{self._meta.model_name}', args=[self.pk]) + return reverse(get_viewname(self), args=[self.pk]) # diff --git a/netbox/netbox/tests/dummy_plugin/migrations/0002_dummynetboxmodel.py b/netbox/netbox/tests/dummy_plugin/migrations/0002_dummynetboxmodel.py new file mode 100644 index 000000000..517178bd9 --- /dev/null +++ b/netbox/netbox/tests/dummy_plugin/migrations/0002_dummynetboxmodel.py @@ -0,0 +1,30 @@ +import taggit.managers +import utilities.json +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('dummy_plugin', '0001_initial'), + ('extras', '0122_charfield_null_choices'), + ] + + operations = [ + migrations.CreateModel( + name='DummyNetBoxModel', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False)), + ('created', models.DateTimeField(auto_now_add=True, null=True)), + ('last_updated', models.DateTimeField(auto_now=True, null=True)), + ( + 'custom_field_data', + models.JSONField(blank=True, default=dict, encoder=utilities.json.CustomFieldJSONEncoder), + ), + ('tags', taggit.managers.TaggableManager(through='extras.TaggedItem', to='extras.Tag')), + ], + options={ + 'abstract': False, + }, + ), + ] diff --git a/netbox/netbox/tests/dummy_plugin/models.py b/netbox/netbox/tests/dummy_plugin/models.py index 9bd39a46b..ed4522c65 100644 --- a/netbox/netbox/tests/dummy_plugin/models.py +++ b/netbox/netbox/tests/dummy_plugin/models.py @@ -1,5 +1,7 @@ from django.db import models +from netbox.models import NetBoxModel + class DummyModel(models.Model): name = models.CharField( @@ -11,3 +13,7 @@ class DummyModel(models.Model): class Meta: ordering = ['name'] + + +class DummyNetBoxModel(NetBoxModel): + pass diff --git a/netbox/netbox/tests/dummy_plugin/urls.py b/netbox/netbox/tests/dummy_plugin/urls.py index 9e383ffe2..6cdd48f7e 100644 --- a/netbox/netbox/tests/dummy_plugin/urls.py +++ b/netbox/netbox/tests/dummy_plugin/urls.py @@ -6,4 +6,6 @@ from . import views urlpatterns = ( path('models/', views.DummyModelsView.as_view(), name='dummy_model_list'), path('models/add/', views.DummyModelAddView.as_view(), name='dummy_model_add'), + + path('netboxmodel//', views.DummyNetBoxModelView.as_view(), name='dummynetboxmodel'), ) diff --git a/netbox/netbox/tests/dummy_plugin/views.py b/netbox/netbox/tests/dummy_plugin/views.py index 82f250fc1..3aac26cf3 100644 --- a/netbox/netbox/tests/dummy_plugin/views.py +++ b/netbox/netbox/tests/dummy_plugin/views.py @@ -5,12 +5,17 @@ from django.http import HttpResponse from django.views.generic import View from dcim.models import Site +from netbox.views import generic from utilities.views import register_model_view -from .models import DummyModel +from .models import DummyModel, DummyNetBoxModel # Trigger registration of custom column from .tables import mycol # noqa: F401 +# +# DummyModel +# + class DummyModelsView(View): def get(self, request): @@ -32,6 +37,18 @@ class DummyModelAddView(View): return HttpResponse("Instance created") +# +# DummyNetBoxModel +# + +class DummyNetBoxModelView(generic.ObjectView): + queryset = DummyNetBoxModel.objects.all() + + +# +# API +# + @register_model_view(Site, 'extra', path='other-stuff') class ExtraCoreModelView(View): diff --git a/netbox/netbox/tests/test_models.py b/netbox/netbox/tests/test_models.py new file mode 100644 index 000000000..3da4144c2 --- /dev/null +++ b/netbox/netbox/tests/test_models.py @@ -0,0 +1,23 @@ +from unittest import skipIf + +from django.conf import settings +from django.test import TestCase + +from core.models import ObjectChange +from netbox.tests.dummy_plugin.models import DummyNetBoxModel + + +class ModelTest(TestCase): + + def test_get_absolute_url(self): + m = ObjectChange() + m.pk = 123 + + self.assertEqual(m.get_absolute_url(), f'/core/changelog/{m.pk}/') + + @skipIf('netbox.tests.dummy_plugin' not in settings.PLUGINS, "dummy_plugin not in settings.PLUGINS") + def test_get_absolute_url_plugin(self): + m = DummyNetBoxModel() + m.pk = 123 + + self.assertEqual(m.get_absolute_url(), f'/plugins/dummy-plugin/netboxmodel/{m.pk}/') From 70dddb673b82c476ec5ce09570b41baa10597aae Mon Sep 17 00:00:00 2001 From: Jason Novinger Date: Tue, 18 Feb 2025 12:33:05 -0600 Subject: [PATCH 15/27] Fixes #18585: filtering circuits by location (#18641) * Fixes #18585: filtering circuits by location This also fixes a related issue where selected filter is not shown in the filter form. Changes: - Adds `CircuitFilterSet.location_id` field to enable filtering with incoming GET params - Adds `CirciotFilterForm.location_id` field to enable filtering from list form - Adds `location_id` to the Location fieldset on `CircuitFilterForm` * Adds test for new CircuitFilterset.location_id filter --- netbox/circuits/filtersets.py | 5 +++++ netbox/circuits/forms/filtersets.py | 7 ++++++- netbox/circuits/tests/test_filtersets.py | 24 ++++++++++++++++++++++-- 3 files changed, 33 insertions(+), 3 deletions(-) diff --git a/netbox/circuits/filtersets.py b/netbox/circuits/filtersets.py index 964f69f83..188b5343e 100644 --- a/netbox/circuits/filtersets.py +++ b/netbox/circuits/filtersets.py @@ -234,6 +234,11 @@ class CircuitFilterSet(NetBoxModelFilterSet, TenancyFilterSet, ContactModelFilte to_field_name='slug', label=_('Site (slug)'), ) + location_id = django_filters.ModelMultipleChoiceFilter( + field_name='terminations___location', + label=_('Location (ID)'), + queryset=Location.objects.all(), + ) termination_a_id = django_filters.ModelMultipleChoiceFilter( queryset=CircuitTermination.objects.all(), label=_('Termination A (ID)'), diff --git a/netbox/circuits/forms/filtersets.py b/netbox/circuits/forms/filtersets.py index aefc62655..297af5e71 100644 --- a/netbox/circuits/forms/filtersets.py +++ b/netbox/circuits/forms/filtersets.py @@ -126,7 +126,7 @@ class CircuitFilterForm(TenancyFilterForm, ContactModelFilterForm, NetBoxModelFi 'type_id', 'status', 'install_date', 'termination_date', 'commit_rate', 'distance', 'distance_unit', name=_('Attributes') ), - FieldSet('region_id', 'site_group_id', 'site_id', name=_('Location')), + FieldSet('region_id', 'site_group_id', 'site_id', 'location_id', name=_('Location')), FieldSet('tenant_group_id', 'tenant_id', name=_('Tenant')), FieldSet('contact', 'contact_role', 'contact_group', name=_('Contacts')), ) @@ -181,6 +181,11 @@ class CircuitFilterForm(TenancyFilterForm, ContactModelFilterForm, NetBoxModelFi }, label=_('Site') ) + location_id = DynamicModelMultipleChoiceField( + queryset=Location.objects.all(), + required=False, + label=_('Location') + ) install_date = forms.DateField( label=_('Install date'), required=False, diff --git a/netbox/circuits/tests/test_filtersets.py b/netbox/circuits/tests/test_filtersets.py index b32abd34e..91077ee64 100644 --- a/netbox/circuits/tests/test_filtersets.py +++ b/netbox/circuits/tests/test_filtersets.py @@ -3,8 +3,10 @@ from django.test import TestCase from circuits.choices import * from circuits.filtersets import * from circuits.models import * -from dcim.choices import InterfaceTypeChoices -from dcim.models import Cable, Device, DeviceRole, DeviceType, Interface, Manufacturer, Region, Site, SiteGroup +from dcim.choices import InterfaceTypeChoices, LocationStatusChoices +from dcim.models import ( + Cable, Device, DeviceRole, DeviceType, Interface, Location, Manufacturer, Region, Site, SiteGroup +) from ipam.models import ASN, RIR from netbox.choices import DistanceUnitChoices from tenancy.models import Tenant, TenantGroup @@ -225,6 +227,17 @@ class CircuitTestCase(TestCase, ChangeLoggedFilterSetTests): ) ProviderNetwork.objects.bulk_create(provider_networks) + locations = ( + Location.objects.create( + site=sites[0], name='Test Location 1', slug='test-location-1', + status=LocationStatusChoices.STATUS_ACTIVE, + ), + Location.objects.create( + site=sites[1], name='Test Location 2', slug='test-location-2', + status=LocationStatusChoices.STATUS_ACTIVE, + ), + ) + circuits = ( Circuit( provider=providers[0], @@ -305,7 +318,9 @@ class CircuitTestCase(TestCase, ChangeLoggedFilterSetTests): circuit_terminations = (( CircuitTermination(circuit=circuits[0], termination=sites[0], term_side='A'), + CircuitTermination(circuit=circuits[0], termination=locations[0], term_side='Z'), CircuitTermination(circuit=circuits[1], termination=sites[1], term_side='A'), + CircuitTermination(circuit=circuits[1], termination=locations[1], term_side='Z'), CircuitTermination(circuit=circuits[2], termination=sites[2], term_side='A'), CircuitTermination(circuit=circuits[3], termination=provider_networks[0], term_side='A'), CircuitTermination(circuit=circuits[4], termination=provider_networks[1], term_side='A'), @@ -395,6 +410,11 @@ class CircuitTestCase(TestCase, ChangeLoggedFilterSetTests): params = {'site': [sites[0].slug, sites[1].slug]} self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + def test_location(self): + location_ids = Location.objects.values_list('id', flat=True)[:2] + params = {'location_id': location_ids} + self.assertEqual(self.filterset(params, self.queryset).qs.count(), 2) + def test_tenant(self): tenants = Tenant.objects.all()[:2] params = {'tenant_id': [tenants[0].pk, tenants[1].pk]} From 57ef44706a7cfb1abb3aac1f49206ae216f2bba8 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Wed, 19 Feb 2025 05:02:03 +0000 Subject: [PATCH 16/27] Update source translation strings --- netbox/translations/en/LC_MESSAGES/django.po | 287 ++++++++++--------- 1 file changed, 145 insertions(+), 142 deletions(-) diff --git a/netbox/translations/en/LC_MESSAGES/django.po b/netbox/translations/en/LC_MESSAGES/django.po index cab5ed729..55d263183 100644 --- a/netbox/translations/en/LC_MESSAGES/django.po +++ b/netbox/translations/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-15 05:01+0000\n" +"POT-Creation-Date: 2025-02-19 05:01+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -158,7 +158,7 @@ msgid "Spoke" msgstr "" #: netbox/circuits/filtersets.py:37 netbox/circuits/filtersets.py:204 -#: netbox/circuits/filtersets.py:279 netbox/dcim/base_filtersets.py:22 +#: netbox/circuits/filtersets.py:284 netbox/dcim/base_filtersets.py:22 #: netbox/dcim/filtersets.py:99 netbox/dcim/filtersets.py:153 #: netbox/dcim/filtersets.py:213 netbox/dcim/filtersets.py:334 #: netbox/dcim/filtersets.py:465 netbox/dcim/filtersets.py:1022 @@ -170,7 +170,7 @@ msgid "Region (ID)" msgstr "" #: netbox/circuits/filtersets.py:44 netbox/circuits/filtersets.py:211 -#: netbox/circuits/filtersets.py:286 netbox/dcim/base_filtersets.py:29 +#: netbox/circuits/filtersets.py:291 netbox/dcim/base_filtersets.py:29 #: netbox/dcim/filtersets.py:106 netbox/dcim/filtersets.py:159 #: netbox/dcim/filtersets.py:220 netbox/dcim/filtersets.py:341 #: netbox/dcim/filtersets.py:472 netbox/dcim/filtersets.py:1029 @@ -182,7 +182,7 @@ msgid "Region (slug)" msgstr "" #: netbox/circuits/filtersets.py:50 netbox/circuits/filtersets.py:217 -#: netbox/circuits/filtersets.py:292 netbox/dcim/base_filtersets.py:35 +#: netbox/circuits/filtersets.py:297 netbox/dcim/base_filtersets.py:35 #: netbox/dcim/filtersets.py:129 netbox/dcim/filtersets.py:226 #: netbox/dcim/filtersets.py:347 netbox/dcim/filtersets.py:478 #: netbox/dcim/filtersets.py:1035 netbox/dcim/filtersets.py:1382 @@ -193,7 +193,7 @@ msgid "Site group (ID)" msgstr "" #: netbox/circuits/filtersets.py:57 netbox/circuits/filtersets.py:224 -#: netbox/circuits/filtersets.py:299 netbox/dcim/base_filtersets.py:42 +#: netbox/circuits/filtersets.py:304 netbox/dcim/base_filtersets.py:42 #: netbox/dcim/filtersets.py:136 netbox/dcim/filtersets.py:233 #: netbox/dcim/filtersets.py:354 netbox/dcim/filtersets.py:485 #: netbox/dcim/filtersets.py:1042 netbox/dcim/filtersets.py:1389 @@ -205,7 +205,7 @@ msgstr "" #: netbox/circuits/filtersets.py:62 netbox/circuits/forms/filtersets.py:59 #: netbox/circuits/forms/filtersets.py:182 -#: netbox/circuits/forms/filtersets.py:235 +#: netbox/circuits/forms/filtersets.py:240 #: netbox/circuits/tables/circuits.py:129 netbox/dcim/forms/bulk_edit.py:172 #: netbox/dcim/forms/bulk_edit.py:333 netbox/dcim/forms/bulk_edit.py:686 #: netbox/dcim/forms/bulk_edit.py:891 netbox/dcim/forms/bulk_import.py:133 @@ -252,7 +252,7 @@ msgid "Site" msgstr "" #: netbox/circuits/filtersets.py:68 netbox/circuits/filtersets.py:235 -#: netbox/circuits/filtersets.py:310 netbox/dcim/base_filtersets.py:53 +#: netbox/circuits/filtersets.py:315 netbox/dcim/base_filtersets.py:53 #: netbox/dcim/filtersets.py:243 netbox/dcim/filtersets.py:364 #: netbox/dcim/filtersets.py:459 netbox/extras/filtersets.py:531 #: netbox/ipam/filtersets.py:243 netbox/ipam/filtersets.py:958 @@ -272,31 +272,31 @@ msgid "ASN" msgstr "" #: netbox/circuits/filtersets.py:101 netbox/circuits/filtersets.py:128 -#: netbox/circuits/filtersets.py:162 netbox/circuits/filtersets.py:333 -#: netbox/circuits/filtersets.py:401 netbox/circuits/filtersets.py:477 -#: netbox/circuits/filtersets.py:545 netbox/ipam/filtersets.py:248 +#: netbox/circuits/filtersets.py:162 netbox/circuits/filtersets.py:338 +#: netbox/circuits/filtersets.py:406 netbox/circuits/filtersets.py:482 +#: netbox/circuits/filtersets.py:550 netbox/ipam/filtersets.py:248 msgid "Provider (ID)" msgstr "" #: netbox/circuits/filtersets.py:107 netbox/circuits/filtersets.py:134 -#: netbox/circuits/filtersets.py:168 netbox/circuits/filtersets.py:339 -#: netbox/circuits/filtersets.py:483 netbox/circuits/filtersets.py:551 +#: netbox/circuits/filtersets.py:168 netbox/circuits/filtersets.py:344 +#: netbox/circuits/filtersets.py:488 netbox/circuits/filtersets.py:556 #: netbox/ipam/filtersets.py:254 msgid "Provider (slug)" msgstr "" -#: netbox/circuits/filtersets.py:173 netbox/circuits/filtersets.py:488 -#: netbox/circuits/filtersets.py:556 +#: netbox/circuits/filtersets.py:173 netbox/circuits/filtersets.py:493 +#: netbox/circuits/filtersets.py:561 msgid "Provider account (ID)" msgstr "" -#: netbox/circuits/filtersets.py:179 netbox/circuits/filtersets.py:494 -#: netbox/circuits/filtersets.py:562 +#: netbox/circuits/filtersets.py:179 netbox/circuits/filtersets.py:499 +#: netbox/circuits/filtersets.py:567 msgid "Provider account (account)" msgstr "" -#: netbox/circuits/filtersets.py:184 netbox/circuits/filtersets.py:498 -#: netbox/circuits/filtersets.py:567 +#: netbox/circuits/filtersets.py:184 netbox/circuits/filtersets.py:503 +#: netbox/circuits/filtersets.py:572 msgid "Provider network (ID)" msgstr "" @@ -308,7 +308,7 @@ msgstr "" msgid "Circuit type (slug)" msgstr "" -#: netbox/circuits/filtersets.py:229 netbox/circuits/filtersets.py:304 +#: netbox/circuits/filtersets.py:229 netbox/circuits/filtersets.py:309 #: netbox/dcim/base_filtersets.py:47 netbox/dcim/filtersets.py:237 #: netbox/dcim/filtersets.py:358 netbox/dcim/filtersets.py:453 #: netbox/dcim/filtersets.py:1046 netbox/dcim/filtersets.py:1394 @@ -319,12 +319,20 @@ msgstr "" msgid "Site (ID)" msgstr "" -#: netbox/circuits/filtersets.py:239 netbox/circuits/filtersets.py:243 +#: netbox/circuits/filtersets.py:239 netbox/circuits/filtersets.py:321 +#: netbox/dcim/base_filtersets.py:59 netbox/dcim/filtersets.py:259 +#: netbox/dcim/filtersets.py:370 netbox/dcim/filtersets.py:491 +#: netbox/dcim/filtersets.py:1058 netbox/dcim/filtersets.py:1405 +#: netbox/dcim/filtersets.py:2305 +msgid "Location (ID)" +msgstr "" + +#: netbox/circuits/filtersets.py:244 netbox/circuits/filtersets.py:248 msgid "Termination A (ID)" msgstr "" -#: netbox/circuits/filtersets.py:268 netbox/circuits/filtersets.py:370 -#: netbox/circuits/filtersets.py:532 netbox/core/filtersets.py:77 +#: netbox/circuits/filtersets.py:273 netbox/circuits/filtersets.py:375 +#: netbox/circuits/filtersets.py:537 netbox/core/filtersets.py:77 #: netbox/core/filtersets.py:136 netbox/core/filtersets.py:173 #: netbox/dcim/filtersets.py:752 netbox/dcim/filtersets.py:1363 #: netbox/dcim/filtersets.py:2400 netbox/extras/filtersets.py:41 @@ -348,12 +356,12 @@ msgstr "" msgid "Search" msgstr "" -#: netbox/circuits/filtersets.py:272 netbox/circuits/forms/bulk_edit.py:195 +#: netbox/circuits/filtersets.py:277 netbox/circuits/forms/bulk_edit.py:195 #: netbox/circuits/forms/bulk_edit.py:284 #: netbox/circuits/forms/bulk_import.py:128 -#: netbox/circuits/forms/filtersets.py:218 -#: netbox/circuits/forms/filtersets.py:245 -#: netbox/circuits/forms/filtersets.py:291 +#: netbox/circuits/forms/filtersets.py:223 +#: netbox/circuits/forms/filtersets.py:250 +#: netbox/circuits/forms/filtersets.py:296 #: netbox/circuits/forms/model_forms.py:139 #: netbox/circuits/forms/model_forms.py:162 #: netbox/circuits/forms/model_forms.py:262 @@ -367,64 +375,57 @@ msgstr "" msgid "Circuit" msgstr "" -#: netbox/circuits/filtersets.py:316 netbox/dcim/base_filtersets.py:59 -#: netbox/dcim/filtersets.py:259 netbox/dcim/filtersets.py:370 -#: netbox/dcim/filtersets.py:491 netbox/dcim/filtersets.py:1058 -#: netbox/dcim/filtersets.py:1405 netbox/dcim/filtersets.py:2305 -msgid "Location (ID)" -msgstr "" - -#: netbox/circuits/filtersets.py:323 netbox/dcim/base_filtersets.py:66 +#: netbox/circuits/filtersets.py:328 netbox/dcim/base_filtersets.py:66 #: netbox/dcim/filtersets.py:266 netbox/dcim/filtersets.py:377 #: netbox/dcim/filtersets.py:498 netbox/dcim/filtersets.py:1411 #: netbox/extras/filtersets.py:542 msgid "Location (slug)" msgstr "" -#: netbox/circuits/filtersets.py:328 +#: netbox/circuits/filtersets.py:333 msgid "ProviderNetwork (ID)" msgstr "" -#: netbox/circuits/filtersets.py:376 +#: netbox/circuits/filtersets.py:381 msgid "Circuit (CID)" msgstr "" -#: netbox/circuits/filtersets.py:381 +#: netbox/circuits/filtersets.py:386 msgid "Circuit (ID)" msgstr "" -#: netbox/circuits/filtersets.py:386 +#: netbox/circuits/filtersets.py:391 msgid "Virtual circuit (CID)" msgstr "" -#: netbox/circuits/filtersets.py:391 netbox/dcim/filtersets.py:1848 +#: netbox/circuits/filtersets.py:396 netbox/dcim/filtersets.py:1848 msgid "Virtual circuit (ID)" msgstr "" -#: netbox/circuits/filtersets.py:396 +#: netbox/circuits/filtersets.py:401 msgid "Provider (name)" msgstr "" -#: netbox/circuits/filtersets.py:405 +#: netbox/circuits/filtersets.py:410 msgid "Circuit group (ID)" msgstr "" -#: netbox/circuits/filtersets.py:411 +#: netbox/circuits/filtersets.py:416 msgid "Circuit group (slug)" msgstr "" -#: netbox/circuits/filtersets.py:502 +#: netbox/circuits/filtersets.py:507 msgid "Virtual circuit type (ID)" msgstr "" -#: netbox/circuits/filtersets.py:508 +#: netbox/circuits/filtersets.py:513 msgid "Virtual circuit type (slug)" msgstr "" -#: netbox/circuits/filtersets.py:536 netbox/circuits/forms/bulk_edit.py:355 +#: netbox/circuits/filtersets.py:541 netbox/circuits/forms/bulk_edit.py:355 #: netbox/circuits/forms/bulk_import.py:249 -#: netbox/circuits/forms/filtersets.py:367 -#: netbox/circuits/forms/filtersets.py:373 +#: netbox/circuits/forms/filtersets.py:372 +#: netbox/circuits/forms/filtersets.py:378 #: netbox/circuits/forms/model_forms.py:343 #: netbox/circuits/forms/model_forms.py:358 #: netbox/circuits/tables/virtual_circuits.py:88 @@ -433,7 +434,7 @@ msgstr "" msgid "Virtual circuit" msgstr "" -#: netbox/circuits/filtersets.py:572 netbox/dcim/filtersets.py:1268 +#: netbox/circuits/filtersets.py:577 netbox/dcim/filtersets.py:1268 #: netbox/dcim/filtersets.py:1633 netbox/ipam/filtersets.py:601 #: netbox/vpn/filtersets.py:102 netbox/vpn/filtersets.py:401 msgid "Interface (ID)" @@ -600,13 +601,13 @@ msgstr "" #: netbox/circuits/forms/filtersets.py:96 #: netbox/circuits/forms/filtersets.py:124 #: netbox/circuits/forms/filtersets.py:142 -#: netbox/circuits/forms/filtersets.py:219 -#: netbox/circuits/forms/filtersets.py:263 -#: netbox/circuits/forms/filtersets.py:286 -#: netbox/circuits/forms/filtersets.py:324 -#: netbox/circuits/forms/filtersets.py:332 -#: netbox/circuits/forms/filtersets.py:368 -#: netbox/circuits/forms/filtersets.py:391 +#: netbox/circuits/forms/filtersets.py:224 +#: netbox/circuits/forms/filtersets.py:268 +#: netbox/circuits/forms/filtersets.py:291 +#: netbox/circuits/forms/filtersets.py:329 +#: netbox/circuits/forms/filtersets.py:337 +#: netbox/circuits/forms/filtersets.py:373 +#: netbox/circuits/forms/filtersets.py:396 #: netbox/circuits/forms/model_forms.py:60 #: netbox/circuits/forms/model_forms.py:76 #: netbox/circuits/forms/model_forms.py:110 @@ -637,14 +638,14 @@ msgstr "" #: netbox/circuits/forms/bulk_edit.py:112 #: netbox/circuits/forms/bulk_edit.py:303 #: netbox/circuits/forms/filtersets.py:115 -#: netbox/circuits/forms/filtersets.py:315 netbox/dcim/forms/bulk_edit.py:210 +#: netbox/circuits/forms/filtersets.py:320 netbox/dcim/forms/bulk_edit.py:210 #: netbox/dcim/forms/bulk_edit.py:613 netbox/dcim/forms/bulk_edit.py:822 #: netbox/dcim/forms/bulk_edit.py:1191 netbox/dcim/forms/bulk_edit.py:1218 #: netbox/dcim/forms/bulk_edit.py:1740 netbox/dcim/forms/filtersets.py:1065 #: netbox/dcim/forms/filtersets.py:1323 netbox/dcim/forms/filtersets.py:1460 #: netbox/dcim/forms/filtersets.py:1484 netbox/dcim/tables/devices.py:737 #: netbox/dcim/tables/devices.py:793 netbox/dcim/tables/devices.py:1034 -#: netbox/dcim/tables/devicetypes.py:251 netbox/dcim/tables/devicetypes.py:266 +#: netbox/dcim/tables/devicetypes.py:256 netbox/dcim/tables/devicetypes.py:271 #: netbox/dcim/tables/racks.py:33 netbox/extras/forms/bulk_edit.py:270 #: netbox/extras/tables/tables.py:443 #: netbox/templates/circuits/circuittype.html:30 @@ -663,7 +664,7 @@ msgstr "" #: netbox/circuits/forms/bulk_import.py:94 #: netbox/circuits/forms/bulk_import.py:221 #: netbox/circuits/forms/filtersets.py:137 -#: netbox/circuits/forms/filtersets.py:353 +#: netbox/circuits/forms/filtersets.py:358 #: netbox/circuits/tables/circuits.py:65 netbox/circuits/tables/circuits.py:200 #: netbox/circuits/tables/virtual_circuits.py:58 #: netbox/core/forms/bulk_edit.py:18 netbox/core/forms/filtersets.py:33 @@ -725,7 +726,7 @@ msgstr "" #: netbox/circuits/forms/bulk_import.py:87 #: netbox/circuits/forms/bulk_import.py:214 #: netbox/circuits/forms/filtersets.py:150 -#: netbox/circuits/forms/filtersets.py:340 +#: netbox/circuits/forms/filtersets.py:345 #: netbox/circuits/forms/model_forms.py:116 #: netbox/circuits/forms/model_forms.py:330 #: netbox/templates/circuits/virtualcircuit.html:31 @@ -738,7 +739,7 @@ msgstr "" #: netbox/circuits/forms/bulk_import.py:100 #: netbox/circuits/forms/bulk_import.py:227 #: netbox/circuits/forms/filtersets.py:161 -#: netbox/circuits/forms/filtersets.py:356 netbox/core/forms/filtersets.py:38 +#: netbox/circuits/forms/filtersets.py:361 netbox/core/forms/filtersets.py:38 #: netbox/core/forms/filtersets.py:80 netbox/core/tables/data.py:23 #: netbox/core/tables/jobs.py:26 netbox/core/tables/tasks.py:88 #: netbox/dcim/forms/bulk_edit.py:110 netbox/dcim/forms/bulk_edit.py:185 @@ -815,8 +816,8 @@ msgstr "" #: netbox/circuits/forms/bulk_import.py:170 #: netbox/circuits/forms/bulk_import.py:232 #: netbox/circuits/forms/filtersets.py:130 -#: netbox/circuits/forms/filtersets.py:272 -#: netbox/circuits/forms/filtersets.py:326 netbox/dcim/forms/bulk_edit.py:126 +#: netbox/circuits/forms/filtersets.py:277 +#: netbox/circuits/forms/filtersets.py:331 netbox/dcim/forms/bulk_edit.py:126 #: netbox/dcim/forms/bulk_edit.py:191 netbox/dcim/forms/bulk_edit.py:350 #: netbox/dcim/forms/bulk_edit.py:470 netbox/dcim/forms/bulk_edit.py:699 #: netbox/dcim/forms/bulk_edit.py:812 netbox/dcim/forms/bulk_edit.py:1768 @@ -885,22 +886,22 @@ msgid "Tenant" msgstr "" #: netbox/circuits/forms/bulk_edit.py:159 -#: netbox/circuits/forms/filtersets.py:185 +#: netbox/circuits/forms/filtersets.py:190 msgid "Install date" msgstr "" #: netbox/circuits/forms/bulk_edit.py:164 -#: netbox/circuits/forms/filtersets.py:190 +#: netbox/circuits/forms/filtersets.py:195 msgid "Termination date" msgstr "" #: netbox/circuits/forms/bulk_edit.py:170 -#: netbox/circuits/forms/filtersets.py:197 +#: netbox/circuits/forms/filtersets.py:202 msgid "Commit rate (Kbps)" msgstr "" #: netbox/circuits/forms/bulk_edit.py:176 -#: netbox/circuits/forms/filtersets.py:203 +#: netbox/circuits/forms/filtersets.py:208 #: netbox/circuits/forms/model_forms.py:136 #: netbox/templates/circuits/circuit.html:38 #: netbox/templates/wireless/wirelesslink.html:38 @@ -913,7 +914,7 @@ msgstr "" #: netbox/circuits/forms/bulk_edit.py:181 #: netbox/circuits/forms/bulk_import.py:105 #: netbox/circuits/forms/bulk_import.py:108 -#: netbox/circuits/forms/filtersets.py:207 +#: netbox/circuits/forms/filtersets.py:212 #: netbox/wireless/forms/bulk_edit.py:137 #: netbox/wireless/forms/bulk_import.py:121 #: netbox/wireless/forms/bulk_import.py:124 @@ -931,8 +932,8 @@ msgstr "" #: netbox/circuits/forms/filtersets.py:91 #: netbox/circuits/forms/filtersets.py:110 #: netbox/circuits/forms/filtersets.py:127 -#: netbox/circuits/forms/filtersets.py:310 -#: netbox/circuits/forms/filtersets.py:325 netbox/core/forms/filtersets.py:68 +#: netbox/circuits/forms/filtersets.py:315 +#: netbox/circuits/forms/filtersets.py:330 netbox/core/forms/filtersets.py:68 #: netbox/core/forms/filtersets.py:136 netbox/dcim/forms/bulk_edit.py:846 #: netbox/dcim/forms/filtersets.py:173 netbox/dcim/forms/filtersets.py:205 #: netbox/dcim/forms/filtersets.py:916 netbox/dcim/forms/filtersets.py:1008 @@ -995,7 +996,7 @@ msgstr "" #: netbox/circuits/forms/bulk_edit.py:218 #: netbox/circuits/forms/bulk_import.py:133 -#: netbox/circuits/forms/filtersets.py:220 +#: netbox/circuits/forms/filtersets.py:225 #: netbox/circuits/forms/model_forms.py:173 #: netbox/templates/circuits/inc/circuit_termination.html:6 #: netbox/templates/dcim/cable.html:68 netbox/templates/dcim/cable.html:72 @@ -1035,7 +1036,7 @@ msgstr "" #: netbox/circuits/forms/bulk_edit.py:289 #: netbox/circuits/forms/bulk_import.py:188 -#: netbox/circuits/forms/filtersets.py:299 +#: netbox/circuits/forms/filtersets.py:304 #: netbox/circuits/tables/circuits.py:207 netbox/dcim/forms/model_forms.py:562 #: netbox/templates/circuits/circuitgroupassignment.html:34 #: netbox/templates/dcim/device.html:133 @@ -1049,9 +1050,9 @@ msgstr "" #: netbox/circuits/forms/bulk_edit.py:321 #: netbox/circuits/forms/bulk_import.py:208 #: netbox/circuits/forms/filtersets.py:158 -#: netbox/circuits/forms/filtersets.py:258 -#: netbox/circuits/forms/filtersets.py:348 -#: netbox/circuits/forms/filtersets.py:386 +#: netbox/circuits/forms/filtersets.py:263 +#: netbox/circuits/forms/filtersets.py:353 +#: netbox/circuits/forms/filtersets.py:391 #: netbox/circuits/forms/model_forms.py:325 #: netbox/circuits/tables/virtual_circuits.py:51 #: netbox/circuits/tables/virtual_circuits.py:99 @@ -1060,7 +1061,7 @@ msgstr "" #: netbox/circuits/forms/bulk_edit.py:365 #: netbox/circuits/forms/bulk_import.py:254 -#: netbox/circuits/forms/filtersets.py:376 +#: netbox/circuits/forms/filtersets.py:381 #: netbox/circuits/forms/model_forms.py:365 netbox/dcim/forms/bulk_edit.py:361 #: netbox/dcim/forms/bulk_edit.py:1280 netbox/dcim/forms/bulk_edit.py:1711 #: netbox/dcim/forms/bulk_import.py:255 netbox/dcim/forms/bulk_import.py:1106 @@ -1069,7 +1070,7 @@ msgstr "" #: netbox/dcim/forms/model_forms.py:1090 netbox/dcim/forms/model_forms.py:1559 #: netbox/dcim/forms/object_import.py:182 netbox/dcim/tables/devices.py:179 #: netbox/dcim/tables/devices.py:840 netbox/dcim/tables/devices.py:966 -#: netbox/dcim/tables/devicetypes.py:306 netbox/dcim/tables/racks.py:128 +#: netbox/dcim/tables/devicetypes.py:311 netbox/dcim/tables/racks.py:128 #: netbox/extras/filtersets.py:552 netbox/ipam/forms/bulk_edit.py:245 #: netbox/ipam/forms/bulk_edit.py:295 netbox/ipam/forms/bulk_edit.py:343 #: netbox/ipam/forms/bulk_edit.py:495 netbox/ipam/forms/bulk_import.py:193 @@ -1214,7 +1215,8 @@ msgstr "" #: netbox/circuits/forms/filtersets.py:38 #: netbox/circuits/forms/filtersets.py:129 -#: netbox/circuits/forms/filtersets.py:240 +#: netbox/circuits/forms/filtersets.py:187 +#: netbox/circuits/forms/filtersets.py:245 #: netbox/circuits/tables/circuits.py:144 netbox/dcim/forms/bulk_edit.py:342 #: netbox/dcim/forms/bulk_edit.py:450 netbox/dcim/forms/bulk_edit.py:691 #: netbox/dcim/forms/bulk_edit.py:746 netbox/dcim/forms/bulk_edit.py:900 @@ -1270,7 +1272,7 @@ msgstr "" #: netbox/circuits/forms/filtersets.py:45 #: netbox/circuits/forms/filtersets.py:168 -#: netbox/circuits/forms/filtersets.py:225 +#: netbox/circuits/forms/filtersets.py:230 #: netbox/circuits/tables/circuits.py:139 netbox/dcim/forms/bulk_edit.py:116 #: netbox/dcim/forms/bulk_edit.py:317 netbox/dcim/forms/bulk_edit.py:875 #: netbox/dcim/forms/bulk_import.py:95 netbox/dcim/forms/filtersets.py:74 @@ -1298,7 +1300,7 @@ msgstr "" #: netbox/circuits/forms/filtersets.py:50 #: netbox/circuits/forms/filtersets.py:173 -#: netbox/circuits/forms/filtersets.py:230 netbox/dcim/forms/bulk_edit.py:325 +#: netbox/circuits/forms/filtersets.py:235 netbox/dcim/forms/bulk_edit.py:325 #: netbox/dcim/forms/bulk_edit.py:883 netbox/dcim/forms/filtersets.py:79 #: netbox/dcim/forms/filtersets.py:191 netbox/dcim/forms/filtersets.py:217 #: netbox/dcim/forms/filtersets.py:348 netbox/dcim/forms/filtersets.py:431 @@ -1323,11 +1325,11 @@ msgstr "" msgid "Account" msgstr "" -#: netbox/circuits/forms/filtersets.py:248 +#: netbox/circuits/forms/filtersets.py:253 msgid "Term Side" msgstr "" -#: netbox/circuits/forms/filtersets.py:281 netbox/dcim/forms/bulk_edit.py:1570 +#: netbox/circuits/forms/filtersets.py:286 netbox/dcim/forms/bulk_edit.py:1570 #: netbox/extras/forms/model_forms.py:582 netbox/ipam/forms/filtersets.py:144 #: netbox/ipam/forms/filtersets.py:598 netbox/ipam/forms/model_forms.py:329 #: netbox/templates/dcim/macaddress.html:25 @@ -1338,7 +1340,7 @@ msgstr "" msgid "Assignment" msgstr "" -#: netbox/circuits/forms/filtersets.py:296 +#: netbox/circuits/forms/filtersets.py:301 #: netbox/circuits/forms/model_forms.py:252 #: netbox/circuits/tables/circuits.py:191 netbox/dcim/forms/bulk_edit.py:121 #: netbox/dcim/forms/bulk_import.py:102 netbox/dcim/forms/model_forms.py:120 @@ -1535,8 +1537,8 @@ msgstr "" #: netbox/extras/models/models.py:158 netbox/extras/models/models.py:396 #: netbox/extras/models/models.py:511 netbox/extras/models/notifications.py:131 #: netbox/extras/models/staging.py:32 netbox/extras/models/tags.py:32 -#: netbox/ipam/models/vlans.py:358 netbox/netbox/models/__init__.py:114 -#: netbox/netbox/models/__init__.py:149 netbox/netbox/models/__init__.py:195 +#: netbox/ipam/models/vlans.py:358 netbox/netbox/models/__init__.py:115 +#: netbox/netbox/models/__init__.py:150 netbox/netbox/models/__init__.py:196 #: netbox/users/models/permissions.py:24 netbox/users/models/tokens.py:57 #: netbox/users/models/users.py:33 #: netbox/virtualization/models/virtualmachines.py:276 @@ -1574,8 +1576,8 @@ msgstr "" #: netbox/ipam/models/services.py:51 netbox/ipam/models/services.py:84 #: netbox/ipam/models/vlans.py:37 netbox/ipam/models/vlans.py:199 #: netbox/ipam/models/vlans.py:337 netbox/ipam/models/vrfs.py:20 -#: netbox/ipam/models/vrfs.py:75 netbox/netbox/models/__init__.py:141 -#: netbox/netbox/models/__init__.py:185 netbox/tenancy/models/contacts.py:58 +#: netbox/ipam/models/vrfs.py:75 netbox/netbox/models/__init__.py:142 +#: netbox/netbox/models/__init__.py:186 netbox/tenancy/models/contacts.py:58 #: netbox/tenancy/models/tenants.py:19 netbox/tenancy/models/tenants.py:42 #: netbox/users/models/permissions.py:20 netbox/users/models/users.py:28 #: netbox/virtualization/models/clusters.py:52 @@ -1596,8 +1598,8 @@ msgstr "" #: netbox/circuits/models/providers.py:28 netbox/dcim/models/devices.py:88 #: netbox/dcim/models/racks.py:137 netbox/dcim/models/sites.py:149 #: netbox/extras/models/models.py:506 netbox/ipam/models/asns.py:23 -#: netbox/ipam/models/vlans.py:42 netbox/netbox/models/__init__.py:145 -#: netbox/netbox/models/__init__.py:190 netbox/tenancy/models/tenants.py:25 +#: netbox/ipam/models/vlans.py:42 netbox/netbox/models/__init__.py:146 +#: netbox/netbox/models/__init__.py:191 netbox/tenancy/models/tenants.py:25 #: netbox/tenancy/models/tenants.py:47 netbox/vpn/models/l2vpn.py:27 #: netbox/wireless/models.py:59 msgid "slug" @@ -1681,7 +1683,7 @@ msgstr "" #: netbox/dcim/tables/devices.py:872 netbox/dcim/tables/devices.py:941 #: netbox/dcim/tables/devices.py:1006 netbox/dcim/tables/devices.py:1025 #: netbox/dcim/tables/devices.py:1054 netbox/dcim/tables/devices.py:1084 -#: netbox/dcim/tables/devicetypes.py:31 netbox/dcim/tables/devicetypes.py:222 +#: netbox/dcim/tables/devicetypes.py:31 netbox/dcim/tables/devicetypes.py:227 #: netbox/dcim/tables/power.py:22 netbox/dcim/tables/power.py:62 #: netbox/dcim/tables/racks.py:24 netbox/dcim/tables/racks.py:113 #: netbox/dcim/tables/sites.py:24 netbox/dcim/tables/sites.py:51 @@ -1824,7 +1826,7 @@ msgstr "" #: netbox/circuits/tables/providers.py:82 #: netbox/circuits/tables/providers.py:107 #: netbox/circuits/tables/virtual_circuits.py:68 -#: netbox/dcim/tables/devices.py:1067 netbox/dcim/tables/devicetypes.py:92 +#: netbox/dcim/tables/devices.py:1067 netbox/dcim/tables/devicetypes.py:97 #: netbox/dcim/tables/modules.py:29 netbox/dcim/tables/modules.py:73 #: netbox/dcim/tables/power.py:39 netbox/dcim/tables/power.py:96 #: netbox/dcim/tables/racks.py:84 netbox/dcim/tables/racks.py:144 @@ -2187,7 +2189,7 @@ msgstr "" #: netbox/core/forms/bulk_edit.py:25 netbox/core/forms/filtersets.py:43 #: netbox/core/tables/data.py:26 netbox/dcim/forms/bulk_edit.py:1140 #: netbox/dcim/forms/bulk_edit.py:1418 netbox/dcim/forms/filtersets.py:1375 -#: netbox/dcim/tables/devices.py:566 netbox/dcim/tables/devicetypes.py:226 +#: netbox/dcim/tables/devices.py:566 netbox/dcim/tables/devicetypes.py:231 #: netbox/extras/forms/bulk_edit.py:123 netbox/extras/forms/bulk_edit.py:187 #: netbox/extras/forms/bulk_edit.py:246 netbox/extras/forms/filtersets.py:145 #: netbox/extras/forms/filtersets.py:235 netbox/extras/forms/filtersets.py:300 @@ -2735,7 +2737,7 @@ msgid "Last updated" msgstr "" #: netbox/core/tables/jobs.py:10 netbox/core/tables/tasks.py:76 -#: netbox/dcim/tables/devicetypes.py:164 netbox/extras/tables/tables.py:216 +#: netbox/dcim/tables/devicetypes.py:169 netbox/extras/tables/tables.py:216 #: netbox/extras/tables/tables.py:460 netbox/netbox/tables/tables.py:192 #: netbox/templates/dcim/virtualchassis_edit.html:52 #: netbox/utilities/forms/forms.py:73 netbox/wireless/tables/wirelesslink.py:16 @@ -3867,7 +3869,7 @@ msgstr "" #: netbox/dcim/forms/model_forms.py:498 netbox/dcim/forms/model_forms.py:557 #: netbox/dcim/forms/object_create.py:197 #: netbox/dcim/forms/object_create.py:345 netbox/dcim/tables/devices.py:175 -#: netbox/dcim/tables/devices.py:740 netbox/dcim/tables/devicetypes.py:248 +#: netbox/dcim/tables/devices.py:740 netbox/dcim/tables/devicetypes.py:253 #: netbox/templates/dcim/device.html:43 netbox/templates/dcim/device.html:131 #: netbox/templates/dcim/modulebay.html:38 #: netbox/templates/dcim/virtualchassis.html:66 @@ -3914,8 +3916,8 @@ msgstr "" #: netbox/dcim/forms/model_forms.py:445 netbox/dcim/forms/model_forms.py:1095 #: netbox/dcim/forms/model_forms.py:1564 netbox/dcim/forms/object_import.py:188 #: netbox/dcim/tables/devices.py:107 netbox/dcim/tables/devices.py:182 -#: netbox/dcim/tables/devices.py:969 netbox/dcim/tables/devicetypes.py:80 -#: netbox/dcim/tables/devicetypes.py:310 netbox/dcim/tables/modules.py:20 +#: netbox/dcim/tables/devices.py:969 netbox/dcim/tables/devicetypes.py:85 +#: netbox/dcim/tables/devicetypes.py:315 netbox/dcim/tables/modules.py:20 #: netbox/dcim/tables/modules.py:61 netbox/dcim/tables/racks.py:58 #: netbox/dcim/tables/racks.py:131 netbox/templates/dcim/devicetype.html:14 #: netbox/templates/dcim/inventoryitem.html:48 @@ -3979,7 +3981,7 @@ msgstr "" #: netbox/dcim/forms/filtersets.py:489 netbox/dcim/forms/filtersets.py:595 #: netbox/dcim/forms/filtersets.py:614 netbox/dcim/forms/filtersets.py:675 #: netbox/dcim/forms/model_forms.py:226 netbox/dcim/forms/model_forms.py:306 -#: netbox/dcim/tables/devicetypes.py:106 netbox/dcim/tables/modules.py:35 +#: netbox/dcim/tables/devicetypes.py:111 netbox/dcim/tables/modules.py:35 #: netbox/dcim/tables/racks.py:74 netbox/dcim/tables/racks.py:171 #: netbox/extras/forms/bulk_edit.py:53 netbox/extras/forms/bulk_edit.py:133 #: netbox/extras/forms/bulk_edit.py:183 netbox/extras/forms/bulk_edit.py:288 @@ -4109,12 +4111,12 @@ msgstr "" msgid "U height" msgstr "" -#: netbox/dcim/forms/bulk_edit.py:530 netbox/dcim/tables/devicetypes.py:102 +#: netbox/dcim/forms/bulk_edit.py:530 netbox/dcim/tables/devicetypes.py:107 msgid "Exclude from utilization" msgstr "" #: netbox/dcim/forms/bulk_edit.py:559 netbox/dcim/forms/model_forms.py:377 -#: netbox/dcim/tables/devicetypes.py:77 netbox/templates/dcim/device.html:88 +#: netbox/dcim/tables/devicetypes.py:82 netbox/templates/dcim/device.html:88 #: netbox/templates/dcim/devicebay.html:52 netbox/templates/dcim/module.html:61 msgid "Device Type" msgstr "" @@ -6576,7 +6578,7 @@ msgstr "" #: netbox/dcim/models/devices.py:1439 netbox/extras/models/customfields.py:225 #: netbox/extras/models/models.py:107 netbox/extras/models/models.py:694 -#: netbox/netbox/models/__init__.py:119 +#: netbox/netbox/models/__init__.py:120 msgid "comments" msgstr "" @@ -7062,8 +7064,8 @@ msgid "Power outlets" msgstr "" #: netbox/dcim/tables/devices.py:256 netbox/dcim/tables/devices.py:1112 -#: netbox/dcim/tables/devicetypes.py:128 netbox/dcim/views.py:1142 -#: netbox/dcim/views.py:1386 netbox/dcim/views.py:2137 +#: netbox/dcim/tables/devicetypes.py:133 netbox/dcim/views.py:1143 +#: netbox/dcim/views.py:1387 netbox/dcim/views.py:2138 #: netbox/netbox/navigation/menu.py:94 netbox/netbox/navigation/menu.py:258 #: netbox/templates/dcim/device/base.html:37 #: netbox/templates/dcim/device_list.html:43 @@ -7100,9 +7102,9 @@ msgstr "" msgid "Module Bay" msgstr "" -#: netbox/dcim/tables/devices.py:327 netbox/dcim/tables/devicetypes.py:47 -#: netbox/dcim/tables/devicetypes.py:143 netbox/dcim/views.py:1217 -#: netbox/dcim/views.py:2235 netbox/netbox/navigation/menu.py:103 +#: netbox/dcim/tables/devices.py:327 netbox/dcim/tables/devicetypes.py:52 +#: netbox/dcim/tables/devicetypes.py:148 netbox/dcim/views.py:1218 +#: netbox/dcim/views.py:2236 netbox/netbox/navigation/menu.py:103 #: netbox/templates/dcim/device/base.html:52 #: netbox/templates/dcim/device_list.html:71 #: netbox/templates/dcim/devicetype/base.html:49 @@ -7159,7 +7161,7 @@ msgstr "" msgid "Tunnel" msgstr "" -#: netbox/dcim/tables/devices.py:625 netbox/dcim/tables/devicetypes.py:229 +#: netbox/dcim/tables/devices.py:625 netbox/dcim/tables/devicetypes.py:234 #: netbox/templates/dcim/interface.html:65 msgid "Management Only" msgstr "" @@ -7188,7 +7190,7 @@ msgstr "" msgid "Module Status" msgstr "" -#: netbox/dcim/tables/devices.py:973 netbox/dcim/tables/devicetypes.py:314 +#: netbox/dcim/tables/devices.py:973 netbox/dcim/tables/devicetypes.py:319 #: netbox/templates/dcim/inventoryitem.html:44 msgid "Component" msgstr "" @@ -7197,42 +7199,47 @@ msgstr "" msgid "Items" msgstr "" -#: netbox/dcim/tables/devicetypes.py:37 netbox/netbox/navigation/menu.py:84 +#: netbox/dcim/tables/devicetypes.py:37 netbox/netbox/navigation/menu.py:60 +#: netbox/netbox/navigation/menu.py:62 +msgid "Rack Types" +msgstr "" + +#: netbox/dcim/tables/devicetypes.py:42 netbox/netbox/navigation/menu.py:84 #: netbox/netbox/navigation/menu.py:86 msgid "Device Types" msgstr "" -#: netbox/dcim/tables/devicetypes.py:42 netbox/netbox/navigation/menu.py:87 +#: netbox/dcim/tables/devicetypes.py:47 netbox/netbox/navigation/menu.py:87 msgid "Module Types" msgstr "" -#: netbox/dcim/tables/devicetypes.py:52 netbox/extras/forms/filtersets.py:378 +#: netbox/dcim/tables/devicetypes.py:57 netbox/extras/forms/filtersets.py:378 #: netbox/extras/forms/model_forms.py:537 netbox/extras/tables/tables.py:540 #: netbox/netbox/navigation/menu.py:78 msgid "Platforms" msgstr "" -#: netbox/dcim/tables/devicetypes.py:84 +#: netbox/dcim/tables/devicetypes.py:89 #: netbox/templates/dcim/devicetype.html:29 msgid "Default Platform" msgstr "" -#: netbox/dcim/tables/devicetypes.py:88 +#: netbox/dcim/tables/devicetypes.py:93 #: netbox/templates/dcim/devicetype.html:45 msgid "Full Depth" msgstr "" -#: netbox/dcim/tables/devicetypes.py:98 +#: netbox/dcim/tables/devicetypes.py:103 msgid "U Height" msgstr "" -#: netbox/dcim/tables/devicetypes.py:113 netbox/dcim/tables/modules.py:26 +#: netbox/dcim/tables/devicetypes.py:118 netbox/dcim/tables/modules.py:26 #: netbox/dcim/tables/racks.py:89 msgid "Instances" msgstr "" -#: netbox/dcim/tables/devicetypes.py:116 netbox/dcim/views.py:1082 -#: netbox/dcim/views.py:1326 netbox/dcim/views.py:2073 +#: netbox/dcim/tables/devicetypes.py:121 netbox/dcim/views.py:1083 +#: netbox/dcim/views.py:1327 netbox/dcim/views.py:2074 #: netbox/netbox/navigation/menu.py:97 #: netbox/templates/dcim/device/base.html:25 #: netbox/templates/dcim/device_list.html:15 @@ -7242,8 +7249,8 @@ msgstr "" msgid "Console Ports" msgstr "" -#: netbox/dcim/tables/devicetypes.py:119 netbox/dcim/views.py:1097 -#: netbox/dcim/views.py:1341 netbox/dcim/views.py:2089 +#: netbox/dcim/tables/devicetypes.py:124 netbox/dcim/views.py:1098 +#: netbox/dcim/views.py:1342 netbox/dcim/views.py:2090 #: netbox/netbox/navigation/menu.py:98 #: netbox/templates/dcim/device/base.html:28 #: netbox/templates/dcim/device_list.html:22 @@ -7253,8 +7260,8 @@ msgstr "" msgid "Console Server Ports" msgstr "" -#: netbox/dcim/tables/devicetypes.py:122 netbox/dcim/views.py:1112 -#: netbox/dcim/views.py:1356 netbox/dcim/views.py:2105 +#: netbox/dcim/tables/devicetypes.py:127 netbox/dcim/views.py:1113 +#: netbox/dcim/views.py:1357 netbox/dcim/views.py:2106 #: netbox/netbox/navigation/menu.py:99 #: netbox/templates/dcim/device/base.html:31 #: netbox/templates/dcim/device_list.html:29 @@ -7264,8 +7271,8 @@ msgstr "" msgid "Power Ports" msgstr "" -#: netbox/dcim/tables/devicetypes.py:125 netbox/dcim/views.py:1127 -#: netbox/dcim/views.py:1371 netbox/dcim/views.py:2121 +#: netbox/dcim/tables/devicetypes.py:130 netbox/dcim/views.py:1128 +#: netbox/dcim/views.py:1372 netbox/dcim/views.py:2122 #: netbox/netbox/navigation/menu.py:100 #: netbox/templates/dcim/device/base.html:34 #: netbox/templates/dcim/device_list.html:36 @@ -7275,8 +7282,8 @@ msgstr "" msgid "Power Outlets" msgstr "" -#: netbox/dcim/tables/devicetypes.py:131 netbox/dcim/views.py:1157 -#: netbox/dcim/views.py:1401 netbox/dcim/views.py:2159 +#: netbox/dcim/tables/devicetypes.py:136 netbox/dcim/views.py:1158 +#: netbox/dcim/views.py:1402 netbox/dcim/views.py:2160 #: netbox/netbox/navigation/menu.py:95 #: netbox/templates/dcim/device/base.html:40 #: netbox/templates/dcim/devicetype/base.html:37 @@ -7285,8 +7292,8 @@ msgstr "" msgid "Front Ports" msgstr "" -#: netbox/dcim/tables/devicetypes.py:134 netbox/dcim/views.py:1172 -#: netbox/dcim/views.py:1416 netbox/dcim/views.py:2175 +#: netbox/dcim/tables/devicetypes.py:139 netbox/dcim/views.py:1173 +#: netbox/dcim/views.py:1417 netbox/dcim/views.py:2176 #: netbox/netbox/navigation/menu.py:96 #: netbox/templates/dcim/device/base.html:43 #: netbox/templates/dcim/device_list.html:50 @@ -7296,16 +7303,16 @@ msgstr "" msgid "Rear Ports" msgstr "" -#: netbox/dcim/tables/devicetypes.py:137 netbox/dcim/views.py:1202 -#: netbox/dcim/views.py:2215 netbox/netbox/navigation/menu.py:102 +#: netbox/dcim/tables/devicetypes.py:142 netbox/dcim/views.py:1203 +#: netbox/dcim/views.py:2216 netbox/netbox/navigation/menu.py:102 #: netbox/templates/dcim/device/base.html:49 #: netbox/templates/dcim/device_list.html:57 #: netbox/templates/dcim/devicetype/base.html:46 msgid "Device Bays" msgstr "" -#: netbox/dcim/tables/devicetypes.py:140 netbox/dcim/views.py:1187 -#: netbox/dcim/views.py:1431 netbox/dcim/views.py:2195 +#: netbox/dcim/tables/devicetypes.py:145 netbox/dcim/views.py:1188 +#: netbox/dcim/views.py:1432 netbox/dcim/views.py:2196 #: netbox/netbox/navigation/menu.py:101 #: netbox/templates/dcim/device/base.html:46 #: netbox/templates/dcim/device_list.html:64 @@ -7384,48 +7391,48 @@ msgstr "" msgid "Non-Racked Devices" msgstr "" -#: netbox/dcim/views.py:2248 netbox/extras/forms/model_forms.py:577 +#: netbox/dcim/views.py:2249 netbox/extras/forms/model_forms.py:577 #: netbox/templates/extras/configcontext.html:10 #: netbox/virtualization/forms/model_forms.py:232 #: netbox/virtualization/views.py:422 msgid "Config Context" msgstr "" -#: netbox/dcim/views.py:2258 netbox/virtualization/views.py:432 +#: netbox/dcim/views.py:2259 netbox/virtualization/views.py:432 msgid "Render Config" msgstr "" -#: netbox/dcim/views.py:2271 netbox/extras/tables/tables.py:550 +#: netbox/dcim/views.py:2272 netbox/extras/tables/tables.py:550 #: netbox/netbox/navigation/menu.py:255 netbox/netbox/navigation/menu.py:257 #: netbox/virtualization/views.py:190 msgid "Virtual Machines" msgstr "" -#: netbox/dcim/views.py:3104 +#: netbox/dcim/views.py:3105 #, python-brace-format msgid "Installed device {device} in bay {device_bay}." msgstr "" -#: netbox/dcim/views.py:3145 +#: netbox/dcim/views.py:3146 #, python-brace-format msgid "Removed device {device} from bay {device_bay}." msgstr "" -#: netbox/dcim/views.py:3261 netbox/ipam/tables/ip.py:180 +#: netbox/dcim/views.py:3262 netbox/ipam/tables/ip.py:180 msgid "Children" msgstr "" -#: netbox/dcim/views.py:3728 +#: netbox/dcim/views.py:3729 #, python-brace-format msgid "Added member {device}" msgstr "" -#: netbox/dcim/views.py:3777 +#: netbox/dcim/views.py:3778 #, python-brace-format msgid "Unable to remove master device {device} from the virtual chassis." msgstr "" -#: netbox/dcim/views.py:3790 +#: netbox/dcim/views.py:3791 #, python-brace-format msgid "Removed {device} from virtual chassis {chassis}" msgstr "" @@ -11139,10 +11146,6 @@ msgstr "" msgid "Elevations" msgstr "" -#: netbox/netbox/navigation/menu.py:60 netbox/netbox/navigation/menu.py:62 -msgid "Rack Types" -msgstr "" - #: netbox/netbox/navigation/menu.py:76 msgid "Modules" msgstr "" From 2a44affd03ae13daeaf3d22ffcadea87b653d95d Mon Sep 17 00:00:00 2001 From: Jason Novinger Date: Thu, 20 Feb 2025 09:01:04 -0600 Subject: [PATCH 17/27] Fixes #18594: asn_count sort in Sites list (#18634) * Fixes #18594: asn_count sort in Sites list * Fixes similar issue in `circuits.views.ProviderListView` Thanks @bctiemann for point this out! --- netbox/circuits/tables/providers.py | 1 - netbox/circuits/views.py | 4 +++- netbox/dcim/tables/sites.py | 1 - netbox/dcim/views.py | 3 ++- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/netbox/circuits/tables/providers.py b/netbox/circuits/tables/providers.py index d70c77e9c..c7eba9012 100644 --- a/netbox/circuits/tables/providers.py +++ b/netbox/circuits/tables/providers.py @@ -33,7 +33,6 @@ class ProviderTable(ContactsColumnMixin, NetBoxTable): verbose_name=_('ASNs') ) asn_count = columns.LinkedCountColumn( - accessor=tables.A('asns__count'), viewname='ipam:asn_list', url_params={'provider_id': 'pk'}, verbose_name=_('ASN Count') diff --git a/netbox/circuits/views.py b/netbox/circuits/views.py index 3bd81c33a..07c1113bd 100644 --- a/netbox/circuits/views.py +++ b/netbox/circuits/views.py @@ -4,6 +4,7 @@ from django.shortcuts import get_object_or_404, redirect, render from django.utils.translation import gettext_lazy as _ from dcim.views import PathTraceView +from ipam.models import ASN from netbox.views import generic from tenancy.views import ObjectContactsView from utilities.forms import ConfirmationForm @@ -20,7 +21,8 @@ from .models import * @register_model_view(Provider, 'list', path='', detail=False) class ProviderListView(generic.ObjectListView): queryset = Provider.objects.annotate( - count_circuits=count_related(Circuit, 'provider') + count_circuits=count_related(Circuit, 'provider'), + asn_count=count_related(ASN, 'providers'), ) filterset = filtersets.ProviderFilterSet filterset_form = forms.ProviderFilterForm diff --git a/netbox/dcim/tables/sites.py b/netbox/dcim/tables/sites.py index 77844f086..e8cb9140e 100644 --- a/netbox/dcim/tables/sites.py +++ b/netbox/dcim/tables/sites.py @@ -94,7 +94,6 @@ class SiteTable(TenancyColumnsMixin, ContactsColumnMixin, NetBoxTable): verbose_name=_('ASNs') ) asn_count = columns.LinkedCountColumn( - accessor=tables.A('asns__count'), viewname='ipam:asn_list', url_params={'site_id': 'pk'}, verbose_name=_('ASN Count') diff --git a/netbox/dcim/views.py b/netbox/dcim/views.py index 583b89f1a..60de8c355 100644 --- a/netbox/dcim/views.py +++ b/netbox/dcim/views.py @@ -422,7 +422,8 @@ class SiteGroupContactsView(ObjectContactsView): @register_model_view(Site, 'list', path='', detail=False) class SiteListView(generic.ObjectListView): queryset = Site.objects.annotate( - device_count=count_related(Device, 'site') + device_count=count_related(Device, 'site'), + asn_count=count_related(ASN, 'sites') ) filterset = filtersets.SiteFilterSet filterset_form = forms.SiteFilterForm From b5bc0bad3858d51912bd466cc4d4e897811cf952 Mon Sep 17 00:00:00 2001 From: Alexander Haase Date: Tue, 18 Feb 2025 21:48:12 +0100 Subject: [PATCH 18/27] Cover multitable inheritance in serialization During serialization, custom fields may be available to a model due to multi-table inheritance, but might not be available in serialized data because only direct fields of the model are covered. Now this attribute is only used if available in serialized data. Models using multi-table inheritance must modify their serialize_object() method to cover parent serialization. --- netbox/utilities/serialization.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox/utilities/serialization.py b/netbox/utilities/serialization.py index af1169e97..f402a30eb 100644 --- a/netbox/utilities/serialization.py +++ b/netbox/utilities/serialization.py @@ -29,7 +29,7 @@ def serialize_object(obj, resolve_tags=True, extra=None, exclude=None): exclude = exclude or [] # Include custom_field_data as "custom_fields" - if hasattr(obj, 'custom_field_data'): + if 'custom_field_data' in data: data['custom_fields'] = data.pop('custom_field_data') # Resolve any assigned tags to their names. Check for tags cached on the instance; From ed79e3bbf4617ec0764c6e7bd1f289d7abb22106 Mon Sep 17 00:00:00 2001 From: Jason Novinger Date: Tue, 18 Feb 2025 10:03:49 -0600 Subject: [PATCH 19/27] Fixes #18619: shift-select selects hidden items This also fixes the inverse, when a range is unselected via shift-click, previously checked checkboxes that are hidden are not changed. --- netbox/project-static/dist/netbox.js | Bin 391058 -> 391196 bytes netbox/project-static/dist/netbox.js.map | Bin 525511 -> 525648 bytes .../src/buttons/selectMultiple.ts | 8 ++++++-- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/netbox/project-static/dist/netbox.js b/netbox/project-static/dist/netbox.js index 7e516f7f4859ffcafee6698af56ca52c89acb58c..bb402ec3321ec44f949a3f8bf9b7518cd03ead91 100644 GIT binary patch delta 249 zcmbRAUVP36@rD-07N#xC@$J!NiA4%UnL7EI);Xyq3VE5fiiXx{`9&HaUU8;Eewso_ zre-yWmzZf=oN1kzrU6uBYpZCWrlz4$lxdrosh6CSUz}Q8qM=k$q@<~-Xq#7>lcT0q zH2uIqCNa$v-Msv~R3*)t8V!)rjMU`p)D+uHI8#$orx;{l>huro%!=|l8u@t4%mW+scnAYI$%3LOH^%(4msr38V1z8en_cvL36}NcUjOUG0O}j;F+Ll01Bl4L+uuS zp|ivy delta 357 zcmcc6rEt7cp`nGbg{g&k3(K>7CTG9tzw=pS6Ww&&9UT*OoE@FBoOL`M9ev$F0;w)Q z(znP7NP2m?=y*Fi8aM$-XHzFvi26WB$It)}GuKHc*wMYh*%zcJ(gP$^>;y8dz!}8$ zbe+DjfW^SU-O;%Mn_hpQna)7vu8v^U5L5g>?0m2(IS^C4!KO^_EM!q*44S^7kVS$w z7^KKo2WWt?li&2Kg)9zYfe@i!N9PcrxF^VKZjMpYwToD64ZzA%!KPU_>Et>CUGA*o z>gZhJ76P#i91!_VVDA?@`A?rw#8Si;1(5?PbS-d-oGww!V!>$G9$3r*#H>Kfwmq;SMEXygC@ diff --git a/netbox/project-static/src/buttons/selectMultiple.ts b/netbox/project-static/src/buttons/selectMultiple.ts index d8bad3105..5695b6c24 100644 --- a/netbox/project-static/src/buttons/selectMultiple.ts +++ b/netbox/project-static/src/buttons/selectMultiple.ts @@ -43,7 +43,9 @@ function toggleCheckboxRange( const typedElement = element as HTMLInputElement; //Change loop's current checkbox state to eventTargetElement checkbox state if (changePkCheckboxState === true) { - typedElement.checked = eventTargetElement.checked; + if (!typedElement.closest('tr')?.classList.contains('d-none')) { + typedElement.checked = eventTargetElement.checked; + } } //The previously clicked checkbox was above the shift clicked checkbox if (element === previousStateElement) { @@ -52,7 +54,9 @@ function toggleCheckboxRange( return; } changePkCheckboxState = true; - typedElement.checked = eventTargetElement.checked; + if (!typedElement.closest('tr')?.classList.contains('d-none')) { + typedElement.checked = eventTargetElement.checked; + } } //The previously clicked checkbox was below the shift clicked checkbox if (element === eventTargetElement) { From bcd974210daea6fad43c837a35d8331cf5e2ab20 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 20 Feb 2025 12:13:08 -0500 Subject: [PATCH 20/27] Update Transifex resource slug --- .tx/config | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.tx/config b/.tx/config index 342331d4e..b0562b978 100755 --- a/.tx/config +++ b/.tx/config @@ -1,7 +1,7 @@ [main] host = https://app.transifex.com -[o:netbox-community:p:netbox:r:9cbf4fcf95b3d92e4ebbf1a5e5d1caee] +[o:netbox-community:p:netbox:r:034999968a7366ba27a8bdf1ab63bf42] file_filter = netbox/translations//LC_MESSAGES/django.po source_file = netbox/translations/en/LC_MESSAGES/django.po type = PO From 63b7145baaaf9e7b17d65796c42d1dddd5851096 Mon Sep 17 00:00:00 2001 From: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 21 Feb 2025 05:02:07 +0000 Subject: [PATCH 21/27] Update source translation strings --- netbox/translations/en/LC_MESSAGES/django.po | 104 +++++++++---------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/netbox/translations/en/LC_MESSAGES/django.po b/netbox/translations/en/LC_MESSAGES/django.po index 55d263183..e76dac85c 100644 --- a/netbox/translations/en/LC_MESSAGES/django.po +++ b/netbox/translations/en/LC_MESSAGES/django.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-02-19 05:01+0000\n" +"POT-Creation-Date: 2025-02-21 05:01+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -223,7 +223,7 @@ msgstr "" #: netbox/dcim/forms/object_create.py:383 netbox/dcim/tables/devices.py:163 #: netbox/dcim/tables/power.py:26 netbox/dcim/tables/power.py:93 #: netbox/dcim/tables/racks.py:121 netbox/dcim/tables/racks.py:206 -#: netbox/dcim/tables/sites.py:134 netbox/extras/filtersets.py:525 +#: netbox/dcim/tables/sites.py:133 netbox/extras/filtersets.py:525 #: netbox/ipam/forms/bulk_edit.py:468 netbox/ipam/forms/bulk_import.py:452 #: netbox/ipam/forms/filtersets.py:155 netbox/ipam/forms/filtersets.py:229 #: netbox/ipam/forms/filtersets.py:435 netbox/ipam/forms/filtersets.py:530 @@ -613,8 +613,8 @@ msgstr "" #: netbox/circuits/forms/model_forms.py:110 #: netbox/circuits/tables/circuits.py:57 netbox/circuits/tables/circuits.py:112 #: netbox/circuits/tables/circuits.py:196 -#: netbox/circuits/tables/providers.py:72 -#: netbox/circuits/tables/providers.py:103 +#: netbox/circuits/tables/providers.py:71 +#: netbox/circuits/tables/providers.py:102 #: netbox/circuits/tables/virtual_circuits.py:46 #: netbox/circuits/tables/virtual_circuits.py:93 #: netbox/templates/circuits/circuit.html:18 @@ -759,7 +759,7 @@ msgstr "" #: netbox/dcim/tables/devices.py:848 netbox/dcim/tables/devices.py:982 #: netbox/dcim/tables/devices.py:1094 netbox/dcim/tables/modules.py:70 #: netbox/dcim/tables/power.py:74 netbox/dcim/tables/racks.py:125 -#: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:138 +#: netbox/dcim/tables/sites.py:82 netbox/dcim/tables/sites.py:137 #: netbox/ipam/forms/bulk_edit.py:240 netbox/ipam/forms/bulk_edit.py:290 #: netbox/ipam/forms/bulk_edit.py:338 netbox/ipam/forms/bulk_edit.py:490 #: netbox/ipam/forms/bulk_import.py:188 netbox/ipam/forms/bulk_import.py:256 @@ -1317,7 +1317,7 @@ msgid "Site group" msgstr "" #: netbox/circuits/forms/filtersets.py:81 netbox/circuits/tables/circuits.py:62 -#: netbox/circuits/tables/providers.py:66 +#: netbox/circuits/tables/providers.py:65 #: netbox/circuits/tables/virtual_circuits.py:55 #: netbox/circuits/tables/virtual_circuits.py:103 #: netbox/templates/circuits/circuit.html:22 @@ -1668,8 +1668,8 @@ msgstr "" #: netbox/circuits/tables/circuits.py:30 netbox/circuits/tables/circuits.py:168 #: netbox/circuits/tables/providers.py:18 -#: netbox/circuits/tables/providers.py:69 -#: netbox/circuits/tables/providers.py:99 +#: netbox/circuits/tables/providers.py:68 +#: netbox/circuits/tables/providers.py:98 #: netbox/circuits/tables/virtual_circuits.py:18 netbox/core/tables/data.py:16 #: netbox/core/tables/jobs.py:14 netbox/core/tables/plugins.py:44 #: netbox/core/tables/tasks.py:11 netbox/core/tables/tasks.py:115 @@ -1687,7 +1687,7 @@ msgstr "" #: netbox/dcim/tables/power.py:22 netbox/dcim/tables/power.py:62 #: netbox/dcim/tables/racks.py:24 netbox/dcim/tables/racks.py:113 #: netbox/dcim/tables/sites.py:24 netbox/dcim/tables/sites.py:51 -#: netbox/dcim/tables/sites.py:78 netbox/dcim/tables/sites.py:130 +#: netbox/dcim/tables/sites.py:78 netbox/dcim/tables/sites.py:129 #: netbox/extras/forms/filtersets.py:218 netbox/extras/tables/tables.py:58 #: netbox/extras/tables/tables.py:122 netbox/extras/tables/tables.py:155 #: netbox/extras/tables/tables.py:180 netbox/extras/tables/tables.py:246 @@ -1789,8 +1789,8 @@ msgid "Name" msgstr "" #: netbox/circuits/tables/circuits.py:39 netbox/circuits/tables/circuits.py:174 -#: netbox/circuits/tables/providers.py:45 -#: netbox/circuits/tables/providers.py:79 +#: netbox/circuits/tables/providers.py:44 +#: netbox/circuits/tables/providers.py:78 #: netbox/circuits/tables/virtual_circuits.py:27 #: netbox/netbox/navigation/menu.py:274 netbox/netbox/navigation/menu.py:278 #: netbox/netbox/navigation/menu.py:280 @@ -1822,15 +1822,15 @@ msgstr "" msgid "Commit Rate" msgstr "" -#: netbox/circuits/tables/circuits.py:84 netbox/circuits/tables/providers.py:48 -#: netbox/circuits/tables/providers.py:82 -#: netbox/circuits/tables/providers.py:107 +#: netbox/circuits/tables/circuits.py:84 netbox/circuits/tables/providers.py:47 +#: netbox/circuits/tables/providers.py:81 +#: netbox/circuits/tables/providers.py:106 #: netbox/circuits/tables/virtual_circuits.py:68 #: netbox/dcim/tables/devices.py:1067 netbox/dcim/tables/devicetypes.py:97 #: netbox/dcim/tables/modules.py:29 netbox/dcim/tables/modules.py:73 #: netbox/dcim/tables/power.py:39 netbox/dcim/tables/power.py:96 #: netbox/dcim/tables/racks.py:84 netbox/dcim/tables/racks.py:144 -#: netbox/dcim/tables/racks.py:224 netbox/dcim/tables/sites.py:108 +#: netbox/dcim/tables/racks.py:224 netbox/dcim/tables/sites.py:107 #: netbox/extras/tables/tables.py:582 netbox/ipam/tables/asn.py:69 #: netbox/ipam/tables/fhrp.py:34 netbox/ipam/tables/ip.py:82 #: netbox/ipam/tables/ip.py:226 netbox/ipam/tables/ip.py:281 @@ -1891,7 +1891,7 @@ msgstr "" msgid "Account Count" msgstr "" -#: netbox/circuits/tables/providers.py:39 netbox/dcim/tables/sites.py:100 +#: netbox/circuits/tables/providers.py:38 netbox/dcim/tables/sites.py:99 msgid "ASN Count" msgstr "" @@ -1973,12 +1973,12 @@ msgstr "" msgid "Device" msgstr "" -#: netbox/circuits/views.py:353 +#: netbox/circuits/views.py:355 #, python-brace-format msgid "No terminations have been defined for circuit {circuit}." msgstr "" -#: netbox/circuits/views.py:402 +#: netbox/circuits/views.py:404 #, python-brace-format msgid "Swapped terminations for circuit {circuit}." msgstr "" @@ -6984,8 +6984,8 @@ msgid "Reachable" msgstr "" #: netbox/dcim/tables/devices.py:69 netbox/dcim/tables/devices.py:117 -#: netbox/dcim/tables/racks.py:149 netbox/dcim/tables/sites.py:105 -#: netbox/dcim/tables/sites.py:148 netbox/extras/tables/tables.py:545 +#: netbox/dcim/tables/racks.py:149 netbox/dcim/tables/sites.py:104 +#: netbox/dcim/tables/sites.py:147 netbox/extras/tables/tables.py:545 #: netbox/netbox/navigation/menu.py:69 netbox/netbox/navigation/menu.py:73 #: netbox/netbox/navigation/menu.py:75 #: netbox/virtualization/forms/model_forms.py:122 @@ -7064,8 +7064,8 @@ msgid "Power outlets" msgstr "" #: netbox/dcim/tables/devices.py:256 netbox/dcim/tables/devices.py:1112 -#: netbox/dcim/tables/devicetypes.py:133 netbox/dcim/views.py:1143 -#: netbox/dcim/views.py:1387 netbox/dcim/views.py:2138 +#: netbox/dcim/tables/devicetypes.py:133 netbox/dcim/views.py:1144 +#: netbox/dcim/views.py:1388 netbox/dcim/views.py:2139 #: netbox/netbox/navigation/menu.py:94 netbox/netbox/navigation/menu.py:258 #: netbox/templates/dcim/device/base.html:37 #: netbox/templates/dcim/device_list.html:43 @@ -7103,8 +7103,8 @@ msgid "Module Bay" msgstr "" #: netbox/dcim/tables/devices.py:327 netbox/dcim/tables/devicetypes.py:52 -#: netbox/dcim/tables/devicetypes.py:148 netbox/dcim/views.py:1218 -#: netbox/dcim/views.py:2236 netbox/netbox/navigation/menu.py:103 +#: netbox/dcim/tables/devicetypes.py:148 netbox/dcim/views.py:1219 +#: netbox/dcim/views.py:2237 netbox/netbox/navigation/menu.py:103 #: netbox/templates/dcim/device/base.html:52 #: netbox/templates/dcim/device_list.html:71 #: netbox/templates/dcim/devicetype/base.html:49 @@ -7238,8 +7238,8 @@ msgstr "" msgid "Instances" msgstr "" -#: netbox/dcim/tables/devicetypes.py:121 netbox/dcim/views.py:1083 -#: netbox/dcim/views.py:1327 netbox/dcim/views.py:2074 +#: netbox/dcim/tables/devicetypes.py:121 netbox/dcim/views.py:1084 +#: netbox/dcim/views.py:1328 netbox/dcim/views.py:2075 #: netbox/netbox/navigation/menu.py:97 #: netbox/templates/dcim/device/base.html:25 #: netbox/templates/dcim/device_list.html:15 @@ -7249,8 +7249,8 @@ msgstr "" msgid "Console Ports" msgstr "" -#: netbox/dcim/tables/devicetypes.py:124 netbox/dcim/views.py:1098 -#: netbox/dcim/views.py:1342 netbox/dcim/views.py:2090 +#: netbox/dcim/tables/devicetypes.py:124 netbox/dcim/views.py:1099 +#: netbox/dcim/views.py:1343 netbox/dcim/views.py:2091 #: netbox/netbox/navigation/menu.py:98 #: netbox/templates/dcim/device/base.html:28 #: netbox/templates/dcim/device_list.html:22 @@ -7260,8 +7260,8 @@ msgstr "" msgid "Console Server Ports" msgstr "" -#: netbox/dcim/tables/devicetypes.py:127 netbox/dcim/views.py:1113 -#: netbox/dcim/views.py:1357 netbox/dcim/views.py:2106 +#: netbox/dcim/tables/devicetypes.py:127 netbox/dcim/views.py:1114 +#: netbox/dcim/views.py:1358 netbox/dcim/views.py:2107 #: netbox/netbox/navigation/menu.py:99 #: netbox/templates/dcim/device/base.html:31 #: netbox/templates/dcim/device_list.html:29 @@ -7271,8 +7271,8 @@ msgstr "" msgid "Power Ports" msgstr "" -#: netbox/dcim/tables/devicetypes.py:130 netbox/dcim/views.py:1128 -#: netbox/dcim/views.py:1372 netbox/dcim/views.py:2122 +#: netbox/dcim/tables/devicetypes.py:130 netbox/dcim/views.py:1129 +#: netbox/dcim/views.py:1373 netbox/dcim/views.py:2123 #: netbox/netbox/navigation/menu.py:100 #: netbox/templates/dcim/device/base.html:34 #: netbox/templates/dcim/device_list.html:36 @@ -7282,8 +7282,8 @@ msgstr "" msgid "Power Outlets" msgstr "" -#: netbox/dcim/tables/devicetypes.py:136 netbox/dcim/views.py:1158 -#: netbox/dcim/views.py:1402 netbox/dcim/views.py:2160 +#: netbox/dcim/tables/devicetypes.py:136 netbox/dcim/views.py:1159 +#: netbox/dcim/views.py:1403 netbox/dcim/views.py:2161 #: netbox/netbox/navigation/menu.py:95 #: netbox/templates/dcim/device/base.html:40 #: netbox/templates/dcim/devicetype/base.html:37 @@ -7292,8 +7292,8 @@ msgstr "" msgid "Front Ports" msgstr "" -#: netbox/dcim/tables/devicetypes.py:139 netbox/dcim/views.py:1173 -#: netbox/dcim/views.py:1417 netbox/dcim/views.py:2176 +#: netbox/dcim/tables/devicetypes.py:139 netbox/dcim/views.py:1174 +#: netbox/dcim/views.py:1418 netbox/dcim/views.py:2177 #: netbox/netbox/navigation/menu.py:96 #: netbox/templates/dcim/device/base.html:43 #: netbox/templates/dcim/device_list.html:50 @@ -7303,16 +7303,16 @@ msgstr "" msgid "Rear Ports" msgstr "" -#: netbox/dcim/tables/devicetypes.py:142 netbox/dcim/views.py:1203 -#: netbox/dcim/views.py:2216 netbox/netbox/navigation/menu.py:102 +#: netbox/dcim/tables/devicetypes.py:142 netbox/dcim/views.py:1204 +#: netbox/dcim/views.py:2217 netbox/netbox/navigation/menu.py:102 #: netbox/templates/dcim/device/base.html:49 #: netbox/templates/dcim/device_list.html:57 #: netbox/templates/dcim/devicetype/base.html:46 msgid "Device Bays" msgstr "" -#: netbox/dcim/tables/devicetypes.py:145 netbox/dcim/views.py:1188 -#: netbox/dcim/views.py:1432 netbox/dcim/views.py:2196 +#: netbox/dcim/tables/devicetypes.py:145 netbox/dcim/views.py:1189 +#: netbox/dcim/views.py:1433 netbox/dcim/views.py:2197 #: netbox/netbox/navigation/menu.py:101 #: netbox/templates/dcim/device/base.html:46 #: netbox/templates/dcim/device_list.html:64 @@ -7335,7 +7335,7 @@ msgstr "" msgid "Available Power (VA)" msgstr "" -#: netbox/dcim/tables/racks.py:30 netbox/dcim/tables/sites.py:143 +#: netbox/dcim/tables/racks.py:30 netbox/dcim/tables/sites.py:142 #: netbox/netbox/navigation/menu.py:43 netbox/netbox/navigation/menu.py:47 #: netbox/netbox/navigation/menu.py:49 msgid "Racks" @@ -7382,57 +7382,57 @@ msgstr "" msgid "Disconnected {count} {type}" msgstr "" -#: netbox/dcim/views.py:824 netbox/netbox/navigation/menu.py:51 +#: netbox/dcim/views.py:825 netbox/netbox/navigation/menu.py:51 msgid "Reservations" msgstr "" -#: netbox/dcim/views.py:843 netbox/templates/dcim/location.html:90 +#: netbox/dcim/views.py:844 netbox/templates/dcim/location.html:90 #: netbox/templates/dcim/site.html:140 msgid "Non-Racked Devices" msgstr "" -#: netbox/dcim/views.py:2249 netbox/extras/forms/model_forms.py:577 +#: netbox/dcim/views.py:2250 netbox/extras/forms/model_forms.py:577 #: netbox/templates/extras/configcontext.html:10 #: netbox/virtualization/forms/model_forms.py:232 #: netbox/virtualization/views.py:422 msgid "Config Context" msgstr "" -#: netbox/dcim/views.py:2259 netbox/virtualization/views.py:432 +#: netbox/dcim/views.py:2260 netbox/virtualization/views.py:432 msgid "Render Config" msgstr "" -#: netbox/dcim/views.py:2272 netbox/extras/tables/tables.py:550 +#: netbox/dcim/views.py:2273 netbox/extras/tables/tables.py:550 #: netbox/netbox/navigation/menu.py:255 netbox/netbox/navigation/menu.py:257 #: netbox/virtualization/views.py:190 msgid "Virtual Machines" msgstr "" -#: netbox/dcim/views.py:3105 +#: netbox/dcim/views.py:3106 #, python-brace-format msgid "Installed device {device} in bay {device_bay}." msgstr "" -#: netbox/dcim/views.py:3146 +#: netbox/dcim/views.py:3147 #, python-brace-format msgid "Removed device {device} from bay {device_bay}." msgstr "" -#: netbox/dcim/views.py:3262 netbox/ipam/tables/ip.py:180 +#: netbox/dcim/views.py:3263 netbox/ipam/tables/ip.py:180 msgid "Children" msgstr "" -#: netbox/dcim/views.py:3729 +#: netbox/dcim/views.py:3730 #, python-brace-format msgid "Added member {device}" msgstr "" -#: netbox/dcim/views.py:3778 +#: netbox/dcim/views.py:3779 #, python-brace-format msgid "Unable to remove master device {device} from the virtual chassis." msgstr "" -#: netbox/dcim/views.py:3791 +#: netbox/dcim/views.py:3792 #, python-brace-format msgid "Removed {device} from virtual chassis {chassis}" msgstr "" From 9c1358e6e7dbf892036a8a58fc1e10ac7a09097f Mon Sep 17 00:00:00 2001 From: mr1716 Date: Fri, 21 Feb 2025 06:29:15 -0500 Subject: [PATCH 22/27] #18698 Correct REST Wikipedia URL In Documentation --- docs/integrations/rest-api.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/integrations/rest-api.md b/docs/integrations/rest-api.md index 215b561a7..e0d2c445f 100644 --- a/docs/integrations/rest-api.md +++ b/docs/integrations/rest-api.md @@ -2,7 +2,7 @@ ## What is a REST API? -REST stands for [representational state transfer](https://en.wikipedia.org/wiki/Representational_state_transfer). It's a particular type of API which employs HTTP requests and [JavaScript Object Notation (JSON)](https://www.json.org/) to facilitate create, retrieve, update, and delete (CRUD) operations on objects within an application. Each type of operation is associated with a particular HTTP verb: +REST stands for [representational state transfer](https://en.wikipedia.org/wiki/REST). It's a particular type of API which employs HTTP requests and [JavaScript Object Notation (JSON)](https://www.json.org/) to facilitate create, retrieve, update, and delete (CRUD) operations on objects within an application. Each type of operation is associated with a particular HTTP verb: * `GET`: Retrieve an object or list of objects * `POST`: Create an object From fbaa82df7b92fb2743dcae38872bc7ec45984a89 Mon Sep 17 00:00:00 2001 From: Jeremy Stretch Date: Thu, 20 Feb 2025 10:54:36 -0500 Subject: [PATCH 23/27] Fixes #18674: Fix form reset when selecting a value from a speed selection dropdown --- netbox/project-static/dist/netbox.js | Bin 391196 -> 391201 bytes netbox/project-static/dist/netbox.js.map | Bin 525648 -> 525672 bytes netbox/project-static/package.json | 3 ++- netbox/project-static/src/htmx.ts | 4 +++- 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/netbox/project-static/dist/netbox.js b/netbox/project-static/dist/netbox.js index bb402ec3321ec44f949a3f8bf9b7518cd03ead91..6650f0fab4a9f2f68e0feb7adbbba5879c6f261c 100644 GIT binary patch delta 6266 zcmZ8l33wF8vHq%iMgk;Gfi94c7Fq1VAPxfti52KZLKixbguGhq%xVYr5W73Ng|QRg zF-Jrw@_Ya$zA!#z+?e<_F@E;5jd>U+V0^uVIKu#kaU^LhNX)9K*ccBKk3hN|Gs3a63fa(ca1O;^IYEi*I2Yt_w1 zMblftdaEr*cUwb-%^e6@yPUzau$~rhr-cmaZ?pM3|84Bh47L=!L#-^2xs0LbVCvAX z*=^t)%H>`#hMweiL&oqTDH)^+)$Sdxm6yIY%4=9@Vx?(l`{4!Snp}3fCD6W3bA>I- zn}&}cE}Oa3Wmv17O25+`)`AsI-Jfl>*>gJ#C8DU&oN7ejxvFRk>R~OSX&-9*rZ%(F zP}((Gymq~(dQJ0V*RG+X-(*1k(D&c0NGdcGS5R|?wdz1;rxq-~HeJdxvM9Zz=r&zp zQQEI{z51$wd+jYlx1LX6O8YRL9~T4bh9AAi0UX2oe#l|54ub-~mJ`-9GuI7WxSR=& zp~NenK+*8|EAdg#Euy1ffF!OS3-j>PIWQLAh=ncmf)rC^*dRJ40Rw0h>*C;Z2~S#K zGPWi{3~WF>5mKQM?@ELdP>+rzxE*@%4@qzz^oUS06mU7;o9)ywbsi+(u@pE6eRyvw zEQEUTdMYF{XcDK=V75du`Ud!K&gu+&rkW?o&#E z?bLAUN>En<)OP9i0>kR1CzYPW{#o!F31e@9v0~#~xF4WIB+rMXG8AFmVp_l|9D5U# zz-p|&32fB5pJFN~a!bI* zAb_4yus{diTMF+(P&Adn*AN?0?YeHy?WZhHAA0WXBy^XJ?f=(xWE zvPhh&fU+3fWz%%4ZP2FZIIj}wsn;Eqa2&kYQUyIU|M4oAVe4=yA@XrZ3)ksBEntML zX4>`#^nrnZYJ$fgZ3z81Fs&Lsi1oYd{ew!mVV|$K#6PM*V_;xgEu=0eH)hWsY#SKR z^(;eIi@G#_cwiu+bQ^w`X=R$Kni1RY)xv3-Za47RT9_8+ceQAGt9?Wa4AAU;{Ja)! zqK!?cgTIg%QxDDHMy(#!fd`M)lfj)B(*TR00`nT6V6w+ts0oD>M>(3Fru)-exU&JC zu#9}sj4iL;;?!FQ1}LJ;2eKj(Vs3ObLLS-hNFzKywaaB<>b1E{!y}6g=yo>-*T4(V zg)^IIX`Se3qAhaaZKkNeN17mm#Jf%8We=t`Lo%qC(+nLnU~h9|+?p2HFxshFZ8WRB z6OXmPn`GKA*22Rimb6ktugBx9@P81*_iu)N5~U6(Cb884|DbpGw!yOK^=8Uvb>Msl zBv53WX@f%?!nj9;?l=UpDy%qh6Cys(NypO>OI zAl~zW4mO`^Z_CQ)Z|odwQ|deIZ7y#hq-FH`RBAU}YpbLXt$z45W0eNJ@gT&BIU8UB zKqa;XVPRCIVaq9T;_6|_oE0BKj5rj8FQO>U?(d~^2;t~H@J;P7r!4T9pU_?FGy2yD z1~d92$}Zg22S2s;s&-43lj5bzghaF9as~rNNb}Ail=NAY3ZK1Ko!u_%{m{x$Thy<6a2=oN)qVXnlSF5EK&$zscPQi4-7?;sz8bH`5jGxhmq zCp^rc7q{FGXP^eV9)MYdyL%phs15Y{*3+~)vk_++UUHd6wU`>K!O_a*&gu7tj53(U63T4k3nYC zc!$gCze*15cKb@P<0+U2P%4f*4W*`>_$*8WSSe;a2O3ZS-u*me$wjKt=*0V;hdDTA z7*a8M7}CLkwqa;m+)X>t?sTnJg8^E96&d4ps!cPH;@h1nNhNAbxL3jutZS>o5(^9tA7eT=fym!t)E+m>mHsKVCuYwH)ej z|8dBq!aL;)n2vur4!cVV%zRLtVdorYr*2W4UG_F_z)6YOYo<|wnOoj2yQL`Pa(2?@ zG+sBW{_2zN@31IM_`8qEeYJS$W5|aRTycWXBoEh|fca1$?l}R|IaU3AzXO9fK-x*L zuzCYOx(HLzaT30RCagLIg>s{zG)1;B6JI@L);m-_h0|1)$DD?sS)K@~p zu+_N#9Hf9D-aSVA%A=i5adP7bz7MUW5upQ{8q6 z_LG=<89s*g$K)%N>n;%m>}8p7|E(zYAPHwQ+cGj2(p*Vm+$gqh4Eg@0Nz9toW9H== zTFcdBjkNXNYtHXMh+~C>_{DL|LL@_vV@oHL8G}k%Mt`VxFfEs4nRq^q{U8w|c_xvi zNNWs56-N`lp_i0p^hU7S=Vc~nCWWfBc&|nSePxg(`9eV_6Ne&jQ%R@w6L40mVIbp z@yVSoT5n4*;MItj5MZ@t^pmPhDOX3}a1xyu#`$P;Mt@;%#I*9qnr1Lg^{zRSy+))X zc_#ZcwNA`rZ_Lzbp9dXRVa#L^5#G|$-K#VkN>8t%sbrB7##gPZPl`M(v#}XefXImKfapFRDj`>wgKMCm~eG!Y6 z<1@y17L+jul;Y3JST`+X%qq4drO+fZ zwk)5slOV^Q8*V2-+{Q+KN)0+zvB!zbjw)w=rte{#urRyV}_?0`s7YJq%Fs*c9TFY`qI_{Rg{~ zh|exJ%OX(yz|D@tY=|(@93sMvxVwW@{kvi|uDHx5unj6Mx6^5((!*{g2s`RwJIRT< z&a4^rBQ&}ya&$GLDim>&SMzs-Jya^^DK&&WvAhT8tYZ(+`Q^XXu>wYDHo?axn3Xf# z&n|P4X+gF(YF4RB>5Mpa&~(olmBttN?Jln~6iU;2!o=%CX$3B8z-hw^0ckR}eM0pj zx|baSIxf7~$LJihM%+BW1c&t^eiOTa>W5hN6GkkhPuz7on?4!x#pAzZGe=YK9(|ZS zGllSa(?OO)D|`7MTRWCmXVTm361`10!Y**A5u@K@B~ef>R)54cai|c-jWxJ=-l4@1!>k5;4u4 zSJ(_r+-q<=UnQbB|BUz(o{{)w(it+}Na+1HnI~{u9K$DwsiXN+6T8pH@_4L>F|Q@W zp%}gh2q#S)V{Uh3Y0Trs2`ZZhoq}ej!r&A4OyFxFxzlY8>Lb@46vYAEJm%OGFOlyZ zlXw~dRr(|zKi2KG8j%>M{YCP!4K@Oz@kE#FP!Y2*l; zn8K%$-E&fS65&Wm3ZG6~y(5LE5*NLLM4HoW%PH_@sT!e>X0_=4P9yAa8sR_(kwA;$ z#ltCl23h#EIn=;Wsq|?TZK*s3d{~moGiU|gRGP0#+?&ehOT;f%dJL$x{;ok|ct&_#Bhe?Vimq<5!D#oaAsTMdEj0kNFFD;?GyV7xNhRY28xBJik~n+V0jH+P4T_0 zh9;nHs> zB0I$EsqfYhpGU1XLgbfru_Vkt1xm&#U3{l0pYG-jMDkGX zPjZ}a_VMxN>kR|kO;qr=1AOm9+LVFK{3ha3FKp%^N=fS$`aCs{Y^6EtMcX$1xw%g( zhWPHuRCC;(f2ld$Uc7Z9pMs;e^O?{i=5ObP(NHJ4?&q_3Oo7*4=Z#=;4bIo3Bs}~O zZzgP*zKh>Mu>R;S?gY988MTK}W|hd@!($lTjg;->Yo*mLr5LyUiYMckM<~;d@8#RM zsr2FNj}mCU@EA|R2Oi^S>Uu|X)sOPgqVaJ)EE9o=d74*29kx8pFR?r?#y-s}X<1J^ z!@rYwq1Qh2(JRS#;01mcREgXJe6>8Oz&l8{R9TULDx?cLd!E>Hh%b$%4yWGWD~SE! zw6|%!g}5;y#20V#V^Nk8m$lumESeX&*`)CfRcjB>Rf47#c%1$Y&0Zpozt6Wv6Bz3s z^Lz?zvH!Fga4SXp=X`oRO~3eizHuDM16=ycc#74>PD$ajxF}u z%ly{Jii>gm66r}g*d#2K?xx`1vs9|&v=`@>Nvq5?F3Xk9(|KIX$(PPqawsj8}WD=!m7zInyd-l6LIP(g)FT1(aumSx&)uhMc^Ssos<@ETo=$6*!3`cfyjo9y&YG7Kq*WTm*kuJ4UB=?uo^31~u=6R$< ziSV@?7ki`{Iikm0kCY?c@knlol5MU}dQXNjaWNw8WniY@1=z#Ui-cDQhY_^KHL&Hf*PH~ku*AIRp917NVnn5XQcU< zcScH~dlAPOsWF$Tt;mp*7}E@#pD9nnqcL(cwprz9>TxMk&Y@yQx9~IN>HqS^W0eb{ zs7CJ3l0TD(o7{V&JZP5Og>u;_sKmNu@^ZPxtCR)tsVq5BJiAOTehMExD;MCFv$Bl2 zXXSBba~f5Q*UrkBrZ$eAE6&POM^y81+n?n-@$_^SjT`?Qd3oWid)xy|Bp^5yGu&#Ag~ zt4^KspTBDNNc@8%@mqe&{044W&f~V8PJ`gq?<--&P$k@19yGFC4qdmpH6^6kGBQ@^ zR?U1=+*(UWYqjNQ9;@H5dHexuwndY9d9@jKVJ zT_MZT`r+e;OJ^+B4QrJ{>34WS?m)Ri^JQCY_S{ZG2^(tM4mE7>Ts1TXw2(V&=^bkP zvNpqOC{8y`-hI8Nan15W*N&m1U#3I)&^KQ$OUyGASHSHExvTtLUG6~Hwc!eeD$aT0 zy9}k%uWBC69jNj;g6?4WQ+-44oEwNy4JF|AxC3sV>>44>g@%4c$X8o_EmT314Nw z@}Z)y_TOR{cFPZwvM4I)^hwpCcOU=F)}s^8ipUg$N`+gd%w$J(N2Q`z?KuzGBO&5 zE?mw4=TO4;A3@vj$oFv(P$(iJV1Oi6kA*q-@hljNuSLUVY9Pa88PvS${dKtW65v;mgBuC zFdrJlt0|DgpkACxg_#n`$Q$5y97_^l5}vohFQ5+ZvcY%O^@cU5DL&1n7@D0Fho%HH z#ZS6Rv)36`ot{*B68kdYw-Pjoz--t9B$MXCVj0@7ZXtcO2*=(8MX(ax7-8| zK{X~XffjbHcVlCI$q9!gr6UR(U_D&J~@?5?$C4KHrA|*ksOEwmT%zh zT$qgG>@X8*MYbIjfPC!8g#pMHf69d_kXPx}W*rwVgQHN3WAeyP)xwqsrvOS(&WBEV zFPIP80rGH6Axwn=oKXlmxW%?YvQFxB*)5@f!xz*-n&0R4Q6Tw5ZV}iR1khUo7U;x# zOW6p)@Mw zvbi;@ZP2EKa83o(Q?ENJ;5az2r4rWD_{S?@x~8*Fws?N@M2C!S;axP0KPgwXoam z3k?i}jUL12GFO>usAib<>+VphTeG|H*;<$ytGQa-TC4qv7#N_@HT<*|Zlb-7uY<2i zjH!oaP|;lvYrum?>uJGWjB0=dP=(}fm23Elf(1A0WXlh<; zYoaaE@itSG;bTpZPU7t*^0Eh0n;{7d%xQ)Wdg0OL@O!ITVBP4TYPHd*b}t@lf!Aqi zKVJ=xkXY0T4?sB{Z-sw?58u5R`bm_u!3q*v+TdGiySE*dM3$R*p4EYK+aR7I<4ijo zHrU;(&NZ2Mugp zs=Ylcy}z+*uwAL|vbVc*f6$%Y-=&h?bWK;uAXrs%Jpl6~ z)*7~)A_rCvQ|2uD5TeAv0DKlfarQtjrGpPi&EZc?^b8_3VS~|8TohDAUQ37zt{lZ z(MPu50$ac@W^9BhGVfLuoOnAVh}PTTj|7%t*`2VGQLp>%hW~_K(QpqqXb5rOJ`*5< zcyJT!W!+V(kJ-+n*AIz?fu-WLkW)zNxU_gQj@yTxR%B;e`_g#=E9D5)mV!YF3^<8BI zcDubqY=0W&0Mv*h&p?SOCq4@k0ZPR5=fDjVfOkI+S#q1IG&=D9=OL3hRUADG(=c)v z(!hzfVQ5-dNSonwxYnuxKP{n>*5h%gv`NLZ#Gu#TV^OLMdwZw3SLWoioIwhyLUCZ2 z;-B2nxt}UdF<#maw~!co5j0k1;LeK>CoaDTKLx15pB#W13g8n5;9*!Hj9)`0hZVT% z5ctQeFtV#UY=eVJIwrmZ3#rajy#&*tPlR3~#D{cz_+_dy%MGOu-+dW&kiqi`Ob;8x z{jb1z9@9g9^=hi>CbzB(kfYb*{cpg}paD}4Lt@mL>#J~xg2V7CW9wCPoTPGf^!G3k zXTJq8Xg>lK&>-$R0@1+M7+CcIBw?i=BE-SB;3A_s`r!vnY;kd%Ny;P;T~`nN(+{m)>o+6b4<6F4~-R*O%3J z^-1$}Sd@DF!-wR)e7y7_EQcmsc7gz<7FV5sxlkwWIRVo+75u$_0E5bZ>PfJ$Mgu>% z2ve}_Bzy(+Sa}Kxkska65Xel^pGO}n{tRxB z^HrOz9IJ*Q4*&QW)yq8b^5@Vakz9BNs8aU||6kyeOyJsi4(5$5qL`vMD(j|&t;Buj zAQ@cZ?Q^sP^u|Z$p*BJ;GHl99G5Z^M8YuNo{{xmt%;nmCk+Na_MJQ(`PG5q3BxYZR z521ID{5_?+E+T*(k_r0Xh+q$qa741rSH?mbD^ZLa#rBRN-~T#>SyOw=)U2ktT+P?8 zuJvAXeh)${D4kBGwoOyG72c2h;kBTDE4>Krn)Hx3Qfw;>?iJd z6)QtzypoU}>Ubp~>w4`LGhNMmv?v9bV_~*vugl(^?emAM>HP)RWnni{IeXv2;*z{B znr}wuTp9#>wA@EgI0taZEP}rU}YWbno?e+0xW@$c`Zm8}cjgmzJ+H!oF-HHEUW4+KNCS|gh`M3g=oMF~hYksfd!Ov!~qp@8s z+fuid-Kb@GG@n}Ob6dN_8(EAhR;BpIY<3TTCT^X}HZ#z0;(T_FX)30jgfx-1fJMr2 zE6VIH!&*iq+m>^k!mP*KY^G9TKAO$$CowmNJw@Vl4qHu$lf8r`N)+gI%h+BD`|p>r zGsOSS0wy}rSEyzk*GCc zDw;zKcpdKQV3q%Fn2F0Svk7dCic9T09xJ@;Rsyc0UbcgrrfJNY-gt#SSB4L&W)ua( zPSM@Ij*ypXI-gtoJ(98}UV5`Rx z-AsIwU82_bBkTev9x(bHRun-euj&ujMh<1-*m3rx41G9ol4U2YbBrzu0o|#TRTWux3^K?_U{mC>5K}u{Y_A zBO1P9OMpmc-bI#)HK1L&;h>Q9Yv$p`rszbux5w~Q!ltws9yeC?SdDN%(;>iv z1!fDKFJkxxyn6y4hZPrDf*2jkn@w`4PUiPSl3Tu-%2UY^I5C+|p>@wn=81%OMag^` zk@SvaoHME2cl+fHe3RL7 zVHc+vk87l5`j!U3$QVhkHvj6`PcD<9;>b2ybLlAUYdCs)Z+9gZDPN|X~Ro! z(E@%W34H&yFf~ z5jxnEV%)iu4??j>UdDTXRk?7mf=|JhGI*RglE;aEcZt3ETr<&PQX#J$L+IhHwC;$rBw-ykA=GvZmviCccrVU`I2bmymA4S(Xvd!|_|7S?Qln zjmz=5X8sIyYH#7|N&KOOk5Kf#y_z3`PVrDHUu>QhK5FAnl6q@9e{O>5yLJ3wBJju7 z@iHKFT97A^$PV&)>boV#=aBYVko?js7KQl7KuJ2eo9{5?Gd;Y4C?Cpw+#bEoWnba9 z_IGRUo^1U5uX3z#^zrd#^SS}`YO?WVLwwgHsy!a>k7`e$j<;^$lX3JmJ_CBh+-dl18=v6AGSQi+XEGq)yUP{9KFYvpdK;-V{)pAUoK1g>}S>b>xpldsOt=N5#FOH-R zr(WaBhzsJ>H)+0kxFIaWXK(Uj5tb&G)#+0f%n9Fb()(?y+v%sf1-F{-b@)2m_9k)s zUA`@nKwA5dFQ?EJ`%aqyS0ds*<#y4h2s|dfQTBTdeyRZipsfj%J4@K$)QoFLGX{2t+l9o!7tFOfVj~9cq7>kIw zQEHN-t8{y*&l;X_6|P+*Jw?Zy_{GxQ6#TmvOBI~>ivriQhIugeid#kRN4oB=tg!A z@h`JddGWQ!qy&s>l;+VVOB$s%iQMpHirzt)y`D{XmgwLZ!7f~fQ9lFYJ)1M`} z>7zTVGtz9#J0m6Igfr4yvH6TNBbQ3CNS70t**-Tzo{C4Ke4KWgz><@^XLp!>4qPbBlI=0Xyh$4J_Hx5Sg>EAin_1QvoTpgXmrYmx?Crg9?*^a3? t&W_IdE;`Q6c}|Wx!H$l>q0=w$vS@5S!pZ*R2di6tQEu_}1xy?pm;e}k9OM81 delta 77 zcmV-T0J8t+iXhO6Ab^AcgaU*Egam{Iga)(+_6Pwvm-h$ Date: Fri, 21 Feb 2025 15:15:14 -0500 Subject: [PATCH 24/27] Release v4.2.4 --- .../ISSUE_TEMPLATE/01-feature_request.yaml | 2 +- .github/ISSUE_TEMPLATE/02-bug_report.yaml | 2 +- docs/release-notes/version-4.2.md | 27 +++ netbox/project-static/package.json | 4 +- netbox/release.yaml | 4 +- netbox/translations/cs/LC_MESSAGES/django.mo | Bin 230181 -> 231540 bytes netbox/translations/cs/LC_MESSAGES/django.po | 170 +++++++++--------- netbox/translations/da/LC_MESSAGES/django.mo | Bin 225478 -> 224346 bytes netbox/translations/da/LC_MESSAGES/django.po | 19 +- netbox/translations/de/LC_MESSAGES/django.mo | Bin 237308 -> 236143 bytes netbox/translations/de/LC_MESSAGES/django.po | 64 +++---- netbox/translations/es/LC_MESSAGES/django.mo | Bin 239192 -> 237992 bytes netbox/translations/es/LC_MESSAGES/django.po | 33 ++-- netbox/translations/fr/LC_MESSAGES/django.mo | Bin 237945 -> 239998 bytes netbox/translations/fr/LC_MESSAGES/django.po | 120 +++++++------ netbox/translations/it/LC_MESSAGES/django.mo | Bin 237392 -> 236189 bytes netbox/translations/it/LC_MESSAGES/django.po | 17 +- netbox/translations/ja/LC_MESSAGES/django.mo | Bin 254773 -> 253226 bytes netbox/translations/ja/LC_MESSAGES/django.po | 128 ++++++------- netbox/translations/nl/LC_MESSAGES/django.mo | Bin 233233 -> 232078 bytes netbox/translations/nl/LC_MESSAGES/django.po | 39 ++-- netbox/translations/pl/LC_MESSAGES/django.mo | Bin 235040 -> 233894 bytes netbox/translations/pl/LC_MESSAGES/django.po | 16 +- netbox/translations/pt/LC_MESSAGES/django.mo | Bin 235452 -> 234260 bytes netbox/translations/pt/LC_MESSAGES/django.po | 23 +-- netbox/translations/ru/LC_MESSAGES/django.mo | Bin 301870 -> 300424 bytes netbox/translations/ru/LC_MESSAGES/django.po | 45 +++-- netbox/translations/tr/LC_MESSAGES/django.mo | Bin 229529 -> 228424 bytes netbox/translations/tr/LC_MESSAGES/django.po | 16 +- netbox/translations/uk/LC_MESSAGES/django.mo | Bin 302307 -> 300826 bytes netbox/translations/uk/LC_MESSAGES/django.po | 21 +-- netbox/translations/zh/LC_MESSAGES/django.mo | Bin 212098 -> 212087 bytes netbox/translations/zh/LC_MESSAGES/django.po | 21 +-- requirements.txt | 16 +- 34 files changed, 380 insertions(+), 407 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/01-feature_request.yaml b/.github/ISSUE_TEMPLATE/01-feature_request.yaml index 62c33b424..f8c7f7e9b 100644 --- a/.github/ISSUE_TEMPLATE/01-feature_request.yaml +++ b/.github/ISSUE_TEMPLATE/01-feature_request.yaml @@ -15,7 +15,7 @@ body: attributes: label: NetBox version description: What version of NetBox are you currently running? - placeholder: v4.2.3 + placeholder: v4.2.4 validations: required: true - type: dropdown diff --git a/.github/ISSUE_TEMPLATE/02-bug_report.yaml b/.github/ISSUE_TEMPLATE/02-bug_report.yaml index 0fa8b4084..1789d27aa 100644 --- a/.github/ISSUE_TEMPLATE/02-bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/02-bug_report.yaml @@ -27,7 +27,7 @@ body: attributes: label: NetBox Version description: What version of NetBox are you currently running? - placeholder: v4.2.3 + placeholder: v4.2.4 validations: required: true - type: dropdown diff --git a/docs/release-notes/version-4.2.md b/docs/release-notes/version-4.2.md index c6c99be7f..5612bfca7 100644 --- a/docs/release-notes/version-4.2.md +++ b/docs/release-notes/version-4.2.md @@ -1,5 +1,32 @@ # NetBox v4.2 +## v4.2.4 (2025-02-21) + +### Enhancements + +* [#17309](https://github.com/netbox-community/netbox/issues/17309) - Omit empty counts in related object tables +* [#18277](https://github.com/netbox-community/netbox/issues/18277) - Improve multi-table inheritance in serialization of change-logged models +* [#18286](https://github.com/netbox-community/netbox/issues/18286) - Add more job duration choices +* [#18357](https://github.com/netbox-community/netbox/issues/18357) - Display author name in plugin list for locally installed plugins +* [#18408](https://github.com/netbox-community/netbox/issues/18408) - Add Paused status for virtual machines +* [#18584](https://github.com/netbox-community/netbox/issues/18584) - Add rack type column to manufacturer list + +### Bug Fixes + +* [#17436](https://github.com/netbox-community/netbox/issues/17436) - Fix {module} replacement in module bays +* [#18013](https://github.com/netbox-community/netbox/issues/18013) - Limit object type to selected object in change log filter +* [#18241](https://github.com/netbox-community/netbox/issues/18241) - Default logging level of custom scripts changed to INFO +* [#18247](https://github.com/netbox-community/netbox/issues/18247) - Fix visibility of disabled cable paths in dark mode +* [#18480](https://github.com/netbox-community/netbox/issues/18480) - Clean data passed to script in runscript command +* [#18555](https://github.com/netbox-community/netbox/issues/18555) - Add default get_absolute_url method to plugin models +* [#18585](https://github.com/netbox-community/netbox/issues/18585) - Fix filtering circuits by location +* [#18593](https://github.com/netbox-community/netbox/issues/18593) - Fix "Create & Add Another" IP Address workflow +* [#18594](https://github.com/netbox-community/netbox/issues/18594) - Enable sorting by ASN count on site and provider lists +* [#18619](https://github.com/netbox-community/netbox/issues/18619) - Ensure shift-click selection selects only visible list items +* [#18674](https://github.com/netbox-community/netbox/issues/18674) - Preserve form values when selecting speed on circuit termination + +--- + ## v4.2.3 (2025-02-04) ### Enhancements diff --git a/netbox/project-static/package.json b/netbox/project-static/package.json index 1a99fba2e..bc8f3cee4 100644 --- a/netbox/project-static/package.json +++ b/netbox/project-static/package.json @@ -30,8 +30,8 @@ "gridstack": "11.3.0", "htmx.org": "1.9.12", "query-string": "9.1.1", - "sass": "1.83.4", - "tom-select": "2.4.2", + "sass": "1.85.0", + "tom-select": "2.4.3", "typeface-inter": "3.18.1", "typeface-roboto-mono": "1.1.13" }, diff --git a/netbox/release.yaml b/netbox/release.yaml index 420e71a20..15756c597 100644 --- a/netbox/release.yaml +++ b/netbox/release.yaml @@ -1,3 +1,3 @@ -version: "4.2.3" +version: "4.2.4" edition: "Community" -published: "2025-02-04" +published: "2025-02-21" diff --git a/netbox/translations/cs/LC_MESSAGES/django.mo b/netbox/translations/cs/LC_MESSAGES/django.mo index 964d8f54c07d09f825b4212b35d61b079f85033e..ddb972342822d84825a96c6b6d0ad7ef4283562d 100644 GIT binary patch delta 69153 zcmXWkci@gy8^H0$4^d=936;I~F4@@%nWaH!3KbfXhnBnw4H_y$NlB$GBc(xFQX(xC zl?o*q#{2y~=X(G7+~?f)ea>~RGoI)7L+|6a7uz?pSoZ7V3e3vzzvGH#GAH4ZA(>2t z5}8b^HP&V_ujb2_se!NIG58%e!e6l!o|2a@(*w`Li*ONMj7R6smnn>+u{vIlbdi~h zg>VTL%Ve^d7vsiTcmg**#v-^Ai6iqTF2Di>@@2;3lh_5T6wH^Yg(L7NoP{m$VQh<= zupgE_Dqp5AUXCMiC3eO-h4N)CqyNk`T%1A0mtlp%`7(_u4-04G>6F*uIau)Me3?`6 zLTrZjV;lScyJFE}Qh@!@@*`+~JFq+ch7Ix5B4m>OGnadTbI=Aq2=fQQn3H zsNabt@mD+^4`VqjT`XVb6l{PeVo!ABm*TNF3S9#e(0->D%a_eXcuzd=5Ekdgli{oJ z;CpC8pP&tW5$-_O%06_Ync^vvh0*6*q9bjOzSjv$VP8BBFD;%;4UDJ4hHghzW#%4q zg!9pnyb$FLXlA}f1N}Mt2P;uNxN zbLg5_9rb^qffX#7?w3K|ua2g)QPj7L`fgF*FX}Id`YX}hmA#G&JH8`sJb*T|ARbtP zrfg;0|0L?Sq1*L0bYumNO97Qc%N5Z;>!F!#8}&WVsW=DAy8kbUib?2$)6oteLIYch zM!E_O>?3rO!Qu#8qu`-(Cv%(>G8s#zA9G}4k?*AX6qIBtenY!HQ zfi9-&(FP}>fy_WVo{Kj86dJ%vbnf3m1N|}T_oLhHAo|`>$LGsjh$YeTRanUVeK1gh&O%4}AR6&waeo`y;O}T)f1{ZybV4eZM+2*k?XWd^q)$XMI|uKiD4alg!^sqf z$x>mJunGG78R0o-dn2=4*wOf?n2H888=aDc=-j=E9<^)H7q_B|Z6~@7|BiC;is=Zh zh_>4nT@yXgMS2l>RNsP5P4-bPjO;UX5&jY$MD}N~59(Exje7exIC^rXBI zUETMg@6SaC@EZF5+gJ@hOXY0lKQ0_;k;>`C3Sn(@wKv1uNHF)If{y4?G$Z5D_h-ia zg;Bo}eeTmJ??9hBh<-MdsN&jT|CQmw2v0&kPHW;o9DxS#7Mht4(2;+GX6!e#p}eYT zQ67zUSQ34{Dmq2YqrMBecn6`2eW<$s@8rUL|1#R(avY3n(8X1$T3YS3!-nXpZ;l3Z zI{I8UG~hni63<5iy&rvk3EKYi=zFhX){A%I#-{K~Y)k$2uyXaZ=!T*r8;vfy$x(g) z-HuP8Q}P^|(Ra}HH%9qeG{9e@yuUj8-v{$*q!)^ztGirS15c&g6l>$isDB`Q99`AR z(2h2tfow+?;ZJD$f1>Xn32WC(ndo0Ln=a0$!j6WabM`Qr(r3^)dl_wTRk$whZ$eZ0 z6*{sXurdCQt+7(Ae3?2p82t`84Nt~*u^s-H<)S(l)oZ71aTZplJSLotF3Q)i2_8f{ zXjms-rYa7@F?a{MXb)m{>{r)MH?|-8{ox}#7Yo))NAX}ZpzOn3^yK0Tw1XP;)7g9; z)~9?g*1$KzU(kc&xCSYZZs>ax(2PBYru;Q@D&Iykvk}eIHZ+spBj-Uj^E(%=(!=Q2 z=u!<+%KM-%4#HA69Gl|xasL@~F}{S({k!OA$!F+i$8Tr`YBWmk4@5ID0zHW4VE0y;K45nc6F(EFXRA)bYGaUz=Pr{n%IG@#|^K;Db; zXPEU!{hkX)a1b4Nk!C3qC!kYP8-1}Y+R&NkNjE6&k3`$K89npoU}t;@ouY$iW{WjX z1FMW~(>l%B|6Vkr!j!fM+oJ*XKvOmdZSWfO`Pb0rSEGTgLo@Mtl)pv;-G#REPt+G~ zk?M~RtF&PMJCa6JIMR;j3+JK@Uxtog96Ew2Xv1^RDO!wnybKL&IlB1Xi28q{KJV1D z7z<+`?w^W&A(@ut!UlGr4gQWEKnKvpQ~0zLP-%4ARl!{9qkbfsi3#ED=%Sp7wlfb6 z`1!cM8Xf35bfDR<~L+_&9Dt5&IQk)S9oq0+=nD^{nOYL}UqnZ;9_`?pa1Z)izE&wS zN2B*kp#!OkPHBUj?7#M0nCiah91lk4eheDeq^O^ccKBG_e+3P6E&AM6^!=aEuiXdH z=gYQE?bk;GYl*hs0gJo;dvTHLI2?nHd~LY!FGCwx6Mh)?zl`$FQQjXGXp`DG z4$W{yG_WR^wV|%@Kz}qf!_a`np^I`Vx~lI%7uyCjrJtiC+KC3b8*T3px;Bn!o7yXh zZsRIg4^KyT%jIp^|2{aH3M0A}ZD1NYR}Y{aEQs>cXh$!j8Cr`5_-WK{L*M%aotnSU z_KLJi@12O2tE2auw9BSXw{BDz$kk}W*T;iX(7^6PJ6?>gl~>~aTiAf|$LNPwrhWR5 zX^Z|QWE`5&`_T8FK);H;h`EC-%S9d)tI?6X84tW4<&VQHXkgpX7x$t89|#YlBQMw? zO;HIn&~jmQwEf0t0H>o==f8w0UCPDL~Ecru%LfeRyAgGT%gI+BgySJ;{IPuLV2bWGo1hNEAx=A#+; z23;#Zq5=Pgo*M_FzG$ZuU}-dfYPmA|uL&0wsOX3;is9&L9gmLm9&`?0Lr3^N`rJ13 zxj)d|a!lv+v3v?zZifxAAG+;sL)Xd!XaMiwW$ypaxiHeUUDBfIg{E#4I%o5-6F!A* z!#(KS*Y29$YlM!xJsMy)^h@R-Y=+lkMO+$wgl2dTX1(~23sZJfx0K4`(T2*0b$u+|?hiy89FFa9bliUquco{LO?mwusl5x)sTqL=knO?#ugb+VDyrafabpwO@we#Q z?Tz{ZXQuiRXhW6I`_0gAKwZ&+T!ao_3>x?(9E#J?ZMPSlvj4JNn9BTTrIB<+7gb+u zh$Eu@VKl{y&<2;Hsa+BG-$u9B$5H+jUDOBA-BqS%>i8ryW7W~Mlx@U?k&Hmsz!>a> zH)A#2h;FmL(GHvUN&&P*pFay-oadt*J%(m-5gPFO=nonj(f5n>PMIl#1f0!O<-&;C z#f={5i|3%bU@*Gx??G4dyI2Pg;Q*|4c4~MMdJarQf7vtx4QKYxSs!Z5VqQBgk@{qcGpcE&H!wNkln`rL1Vu7Td@R1QUdS{{#P z`ffC!2eGvKe~}ls0&Vyc^!EWp`=yRcps79qowI5<5C>y-d<9)pdHvJDR20ovWwhOa zXvbHEW6=yu!0fAB+{Q&CY%?JJ%y$*qz}#>X`sMTJfho1^upQ-_umi5b`k3#We3`M> z5S^OG(RL1^8EABF8c(E!Jg@*w>9c4+uZ0`YKzE@5X3k3i z7DlJ2IC_+yf(BYY%5Bm2dZBYaJj&N(x$wm)=!>(%C(tjEFQW~8ioW;*`urbQ7xSH; zMpz#m$Z1jTgtpfk&CC#V3a&+;y9?bN*$26BF+3VK7NIGB0quA>Iz{iJBmN%E)GqY7 zz3BUYhxsl@Z?> zDF20KqQHe|5jH|Q8iF3dmtX@NgB@`Jx@~{Lss8-mU~n4QYv^iSgN|rFx{r^bi>>64 z6j)WPOt}Hta34GsZ$<-q9ew^?bP;YvGxaw*&?9Jo$6mzq?*CF;IN}OcVC^V3M?YlR zM}2>^fs4?o7>#D;I`sVs=%Ss1W$|uw?w>{nv<6)h>%*;>HFdvm;ek_TXo|EvUO~BX zl zPDe*}9h%C?XvcS;9Y26h)gx$N&!Qc@9`)}<{Z{n(9cV^&4a=q%_fg?$KWccg44Uei zXbPL79h`|~;zBfl>oB){(W#n^&iPYu|2=fueSyBeJL>aYoIYzxX1VZlyDmDiu4o2& zp$EnwG~&_d$i|}2O+o{kf(H5s+QHN4$XABz(SSFj?d(A_`B#*)N4Tg)MS)9F!?n?E z*9ct`!!ZvpLq|3O8{$;-fLe|Quo><6M|1#xMEOwMKjzXjfD_T@sv^&2GmW?~m8~$B z;&|Y~s2_oLa3h+5sb~kY(1zxrbNLK9vX|rj8)&=lqtAVbzW)>Y{60L|{eOrHM_lN# zbfYDjsx#2J?TR)q5DjE_)L#=$Mmw4r<$37y&!Pibfv$}Y(f7Bb=ffV%eg5aaJau$p zSOa~rIofd7s6Qv_FOBjIXh(No4V;A)aV5HTzD9ot{S$rexGT~DR{?FmALhRQU&4i7 zJg&y-xCEQwr|9-OdPG_qop2%LGtmb3qUXV3w7~*brtbqMpo{cew0;Ph`fH+oBAVIT zu4Ml^!uzPO!G&n#&!ee&C(4`97k);c|2r%^GA+Ur(e2v|eXle6d_Q!qhoJ#oi4JTG zx`q~yWdAqk;>D=g6%X!5*T5mP;k;34q@~cKw=5cPrLaD__)bTk?-UL|GjM5?Z$P*0 z|Ikm>d08&%bMb22*oiiD2zy|m(dk2`FWT`fXvfpg=N>>u`WV{r^JuEy3_nCW+=>lx z54!j&U6nGBZOVnKvn?8FUo>SGqo0PO!UbqUUtm@I9V=m}tJ9xmHN%RO2V)(ag#H|` z1U=wB#_{+oy2dWOCTBJ?oeLX!2`l1ewBx_A1=bsrR`5)JHLwxo8*^p$|1(^4qaxq6=})tJ;4sSbuss&IF71xa=;EA= z1~3~N;A(UY?GCG7pU#sD(3H=_j<^P$vZHQDnJ$6F{QR%Xg%LJFJLrV2@iqPwH~P~2aHruz9Pe}Jxq%~Ah7`u-7gmlPe({&(?|Vy!IgLu8p!E4rYY=*elxlR&FECT89znW&VUK|GUM<{ES-;&a02_^519iurHKAR zBR+a!3g~z=BNfqzo1yp5z;f6N9q|?DNq2kHKaOVf4fNx86FPuh*bMie1FW89|C{Ri zXa{Z3lkiM5uqoI9r(qNP5LaN{q%?=C(W&_a&ES`4M?2#Ft|%WuGnqFzJy#f=ic(oF z+_x3cMbrr0hL@rHbUfPdUFZq+02D29nn(YK`rtDz&Vk9OD!4dBdhAl9Wk6kUWfuq!S= z*U+zMfE90#{a>34=jJptb*<4zJE9$(iSB|yQ9l};s_W3_Z$(Es4W0A*@GN`?&FD|z zKCDVPGbQy`4YNj4iwkWMH(H~qZ;vjj&gddN7wg~^=*c!4Yva3U2L3=Zawt6Zjuhz0 z=%TKTW~3EX!`^qW{~h7ARG5KV(FX58NAv=^$X0~!qa)uM<(+7U`_YDvnwl(!9ys;U z40J>@)jP@q(SCSv%+ zcYoY}I9z}Z@F{eSyokP+UCxD(zk_!46*>jGqI|-gslF=KpuREs!{s3KWE_j_@D;S- zztI2=V_nRDS2_n8qW1@(86JWRAe$M%g^^r?retC~FeB<8LIZmud@<_ZL{s@8+TfSy zlPx{zxjUF^p(EG2W8T=L9W&ffBJ&d`(|5N1NR8bavusWK`rszmJ zqKolNbYz#J=fbt6-(STN>&wYR{rmg6RzD1|(2lU+7j|OxEowDO+r8QC^tc~uTX0zD;j-VA4dDuQ4 z=!m&FMCbTIw1d%D2`5MW0&GY5MRcnELNilicACnT=oE}bkMMbDU@xKVzn|s8ly5~B z#ZTyiMea`{u80QE5PhM2*c)ARgVBsVfIjye+QAz1Lv1q}&;fLy$2^ewD~|4(?8#i% zaLu^UBJ33QMW^VZD33&6yb*2ic63Unp&dPd&iT_(UX2F05gq6+SPTC~rY4)I{9szO zb2%4edQ7(;6)rn|;HKN=k z>@Y8zA~~B1Q+7VOdPk!j+=51W7aGt5QJ#xV!Bgmauc95ik7jOj-2W9F`M+2b%gs*% zIRiZr`)0Xt@r^|1Xe#<^wx_WQuEV zy0*$LNCEUk1I-TO!q5Nfu|3X+@+a7q@=w?iYc5QVL`S|Xd;`tEhiHS}p_$l^www2O z+SX;m#%Mr2u)6#I5-!}IccF9t5Zb_F;Zn52<#GQ#w4;y1AH#pc;!mVCQWZUt>!GP1 z9OXOE-xn;$67K(hxG?p{EJ}-~F1lzMp@FnR*T9+B7zbi&{9oLE4_$Pd&?(u14rCX) zSpP)dKZq{kLQkf4%V2%_&s5=}8TP>@cn7+@R-kL)%_x71Hn;)mLIGmBHeWzd0C zM?30@{#1MpIz`u^f&LF&+%qt1qz`go!}Bq>s?i2sMIU?*U4$Fa%p5__^kPq?A2h0? z?Tkei?F7t^^U!t|hR=jAhpV4r|NFpuQSk}7&9;W$p%MQS_kTkcO=f@8pZs)6d1W+H zO{3fg4SYBn*eEok*P>G~0qu9n)9in@%SPbN84dg{^x&C?_LE)Cg)eMC=XP7TEBrU^AH6g+R2DtasztdI znu)W~4$naYyb^71e3Yl6DZd}j!FgEI{r?XaK3MtL^sTlLI%k)oFI*kv@z|O2&1go} zp(FS_%0ET_8)rkm3%(EUl)&e|F`DCi2I_8?J{(P*F-ssrg$pa(M;@u zbJ4}OGw%O}4rCuz!_2buUUjs+dUz|gM8E8=#@xUEdy@+flK0X5yB*!XN4=0zcnrF@ zN}=2Flqgq01FDZsRqMFl868LuG@$et~=%3EG!|9j-NdMW*8<0|w^=)-8k zFQF-3jc%W}(IfSXs6T*yd>_JkSoYMznQP{iCw@c#w+h}0x(ZIe&-`|BT z@gJ;%P2XVucjRKo8)@W^qYZCFQ?w0@cxSj9?eGA)&-1TIYo;_>UmLA&9`#+K{sQ!O z#h0Uj-i{9B&NbPz9qy*W)j11oU}5-DJopZ}ir+^&`WhYCFX+e)M7iLb>Hcw8oBC72 zZs@?qq8Xlu_A@=pg$>L_=j53ve~M<{JG7x+(a6iZmFiCpYoZ5M6LgWCi3ZpgJ(vcE zH=>LDesm!3U>(eE;ll571=prjpNuwC4GpX=nwgeS?iLP2M|3gT;OHpdjJ|&-x)|?8 z7xlyFK-OUm+=qM-$!1P^J3ZJOeX%X}z|J@Z??FFik9sHViW9LjBx#-+piY~sfQJ#QyI29f7eQ1Y^&;VbJ@_KaS zUxq)R1N$xR?~D3^@6oUOzZe&$_#|}h>Y%H&1y;v?=xV(YZDgP+|4iI} zG3wt8KaBfZ(E)yk*-l*i&V?gwx-M;}R_FtL(2fU3c{rN7tI>{cL<5=^`(yF{sAz|4aTpeSKm8TU%h6T42K{jQ6>TVQLkh4kT0S0~ z^YT%y8ux3X0kuFoY=b`68GWx;mJ8>ye>^ZO$|KMscj zAbvPSzsmg&&A@!Lqi4_$r5Df-vG>q`vOBmi!r##p{}ng>MFYtDF#V&nlIU|I(bSJc z1D}XCbSK)ueNkSFKKDEt`0MEV8_>^&PqC5veRhmHpUj8rC&l_fjuZci+;-ehc;a1^L&|U*bX1U4d@q+OE;(ckD=|qkA8_gw3+>1 zmy70Kq>sm8cm?Hq(Cu{yXJOkd`7(>}Gpvs{ZB4)PU4j)T|AhWrQ25JqzXrCTJOB-B zI=W3?!OFN3UF64Px1|S8M=OS78=QsHaTDH#!@kOw8G=8f&vpMgb#x;(rTi3{p>NOw z>$q>ym(SK%iSnh`4yU5+uSdUIW{>_h-8c($up(#6n1F+V2>A6XGCgsO) zH15VeICy*dQ}ku%*Yq;qr=JIAqEq%ol&k)b``b3z%#~dD;2Io`Eq_e^0in6*6cpT% z)>z#@WB7BX}qFqI?)VsCxdE4!9BM z5qulw{`)@*xVSAJiwm1`U;@i*wvK0+rI~wuM@Bp@>Txeekv}<@a zx|jxG6TA}*_zg6p8=|~9%HN}z{2g5be`KSg#9!$~X>>#|=ErgRW`#9o3PxwoNf=5cgwEJf#f1va8;S~4?bkSXfu7$Dam)S#Ny(37$&n&G)||3!4| ztUtp3ckz8pg>$$a?O+cYz~AWo!sMY8mP7B?M@Q5=Y#FveGtmJZP!Du~{n7Uap@EJ< zr|gDIHeLKLD&}AVZY)6~+=l*my&dc0f9RU1oi8u98#-Wh%I9N6yamt3h3M+vAN8g3 z@^Xu|DK@6Q9~#({EEkUGPIScg#f^ngUW|_9H8h29p#gn?zPA@$bpN35AC*5ncLG+U zTnB68+34DufK~8bbRgMRxUhkb&?(r49;Lsa9UemG^0)%2gHzDd)sJ#p^toPG6NjT6 z-Gv6a5bbCs+U{p)KtCn3nNkJwa-Vu_&=HJ78@vr|=pk%~&!Z>Xc69NTI4a$*fM%k3 z*ai)xGy2?UwBw0Ue>b{zmSbu6|0*s#P(DQ;{1ZK!k1CWJu8Mvis2k-G*qHJdbc9c! zi*7Y~@Vpm(gcT`&j%M%xUW@q)=VjL8c--v%?{sut#?SYYk4cMf2)fv2qKj}f+Q8dU z{shg)W^~F57fEa61T>I}=#ogN-_4oFVv&L z08WhuTA>-~h&Ip{P3>TG1ec)=T#G(830(^_&=c@Uw8K?s>OVmbvLDe5ABb|{Z1HrX z9J>1Jq8+qCJM4~j)E6D$1yMg7ZD=Gq*AvkcPYdrx-@6|j;Cyr-OVB`GMFY&P=fZ}+ zLL2%44PY<2Z;zl2lqr!?S2?VW);C6A9H{He{ob? zo2%fL!)Sx|qk%ky&gm=Yf%E}7k{{5K{(+wLM;({WjVkEK+oLHTfCfAiZTAZFy_+!i z`@g%nFv7WLhfBSIucIShhc>Vgo%5~ebGy(f`Wsz*B}%3DYM~vsK%YAUT?@U@%nU+5 zd@jb^-~YWLZj41A%%TlUMH`qE_aBS;XE67@0S#;w8rVB%;G3iTBihb>bSm;nrvQ#d zGf=uT``=X6q{0VVhuzSQ`$u_blt-Z*-iVIm7Bt}LXa*lZGqwl~2cGMdk=>T-(7l)(KjNO2~cRL!$J!q;QK?m@B z+U*GpoP!2BJRBAE z*C(@?Te)ys%tRwyfClgi8qk~Qh~JOX2p#G7;a>FpBk1$R%BPH#N9(Jhfiy+iZ5QPp zQ65-6KL3YO;VK@9b~F)<^d7W1w^DLVz7+j?kVP0@y0hux!oAex~eXuy|6{Wal@=m2g-&xKi0UKHh5 zk@vEh^<0?JO{pTY1%2^*^u>Kqf7B^yBqh)e%SX8yn)-%lJI&+%>FC<&6rO`-U<8_x zEav|F?|)o4lDp%^gXqW?q76QScCZX>;8ipu8_<+*iSo`U??VI3tB^8T6n(A~n&C=l ze+{j7|DPHaozc|y^al2i`eA6qBhbuTi)LmD8t8-QdymEa#h6>9=zFWtxn7UCMH=_F zVea$)yQtU|59~olxE~E9f5jAeNwk5AXnl2bBu%5-3Js(?`u^Ebe__;LiJq8a;{J6N z+5bj%YgEicBYy-<;bUk=OVEawqYbZ#`VY|nwxJ{a0eycr`u;vN;KS%|QVLW`?G!@m zi&e^|iqcfLEy~9O4bcW#pdGeH1L=t_s`JscFd7Zu7PRAOXu~tn=VznabYa|Ij<&lR zoyv7tE_`8Y_-)+S5#{pz9tc0@Zo8+~pt+QDe_{Yl{+=$e^{ zW;FXC7f!)EGy_Y}fYzW5zl)A|6FTCZXh;8{9UNUHmCK>4yJnPIgq^T0^?h+X-i!Y7 zsaVxK|9CH(>B>bTD#l`Md;*){C+UGqp=#;p`6hTa_2=WMxD;F9PV9mes^?|e;ic%; z@h8K#u?pqwSObr$k(c{(g!*`?KmT9BMLTY6#GzQKX8QU5+Hf(txVE8@@5ByRsa6VP zI2za^SQmGr9iCJ>{m|MD9oS%8m5)D~jdHiTWZ3;bmJ1u6jQ*nGb?k%x;>CDYy}aD- z^xTowAqX{#ty6@)pcaQ7Pf7im$@15LjS0yM3cPSA6}n{XHfoM z_#wI`j%&*PznqIcO;ZOeup8xk&C&}!(1vGVfBXu4u}Sl^ddFZ-%Hy#yu0uOMh^_I| z7HO)kMF;R2`u<_`xi+V=|GgN0YMRTJu^r{z=nD-`OTUO1hpvISXsVxz@-lR{tVBAJM!7dSmwnJ}IRyPI z7=w0j8@jLWMz`Yw=yQwEwXr5xGnr0eLvGW4di6>`MPKTXGD1bI<+IQg8P3N7mi>f+VNhrgQMG|hRUOWH1(NwDS#4a$ETp}wTN;z%o_PnE_`7OI=8nVXLDv6`ob&N z2-ijVKXgRLwogZIxo{{pr~WCdhu=lHc!#toJEQNNg=TP22ll@emr&u4$z#w(I33Nz zBWQ}>#ytEIU7TN|+iE8c#l7ev?srDY&|q}L*PyF>8rtqm?16L9jO{ujn<6zq| zW4ciV?YITHs?WmScsV-9%h3il;avO)7vdeAQaklJr>W?KwlfUP@D1TqTuJ%CEElcV z=mWc?BlW(ndAa`v^snf_(zRPkT~D;!9~r85ZiE0&9(pDW8o_-L2?B z_cEHPKkz}!9^%3|zrROH>0C5ri!rx)@fyl2@C;`U*0 zbi{+v#XA~ZYqz3{dls^ovzaAa*wJb><9l=tccTpy?wLk*a@Yu6Go8>W8G?2& z9(`|Gloz6l_$BnYcd-h7hq*uhFW4)+*c|Ps3%ZTYkMek|O?gI?m!l*227+I4DCb%`yCBnADWRt{gcD{v;S>i6cxU3EqYMg6c5}P z&PE%ahtB1f=<|P}BR+_}mv2CtsuJk^lhONCu`AX>chNQIz+TRB;T*3+KfS(-8;8-r zN)Akah*TCGaZ7ZSpN%#!6wS=IsGov9_W&B`v*>f{!foieu^UgrY|V3`p>Q0!nC?L5 z_IWggYtVz^U34*SL|6Ye=viO%+?3Lm=*T-_BkX|&coX{m3^Y>@rTT1UF&FOt*U=8w zp(Eddu7&TgIsSrevC^RQo6?KWl-`Q&=MT`-?#1fZ?7Z|Rpy#9Io3S!3#zD9NPxbS^ z#`$S(hhPnE%)v?c7M_P4FGyd<=V1%Vf1(}LxiBwtK8{8M*?|1oz z*BYAMZ-TCkc9?C*#UL(hXc{_K_n?bxA-XtU!ZYy$bn%oMmKIrG^uy;0bn2c#*UCzC z?%zT`J^w-jE;&5)QxR>q#&Gt(H`-F+D(x9w6plp$nG!yL9z2WDz*k{4+>Imf_=}U1 z(IfdcybjA;k^-B79ze6uOwGT9{cq&YQsE+5jizb`dgkxJ##sK+6nRf{g#FQm&O=xA zrD!|XpxgN7D9=UPdlntwYvBg;y>GHyIH$j$BRhcZ-=deLhN_?`Y=^z@e6*t_=+V3a zox0D^z_y`*ZAaVvJ^T+nVGCcLK0{8yb17#}|@F&hcmA4m5)Y&;T-5rMWMSX0j4`05!OZ{qHxLZt=iy zbkSTL58e?E&PLDp=g{Xjp&jf-1Na+VTm`O9Q&18OunOAY=~3S;JP*z2$gA1^&e?Wo8#X+%}f_FAJI^g`PmiVo~LH1O%@$M5}FE==tw zXbQhXSN*T($o`1>!%<&+OzQA>^jxTiwXqx8&e(8b+`j`2XdybVm(eL)i$0(IC~j;) z1K1f4{Edz*|Jc+(d2|HzqTCT3;eaS#9`|p=y42r;o-3=-j@O18(ZIh=Np&vFEqMwHMV>SF7P3b{&YD!+4Qd$WeQEkk_rszmppn-IVa+k0V7IFVy zz=bE><+%zLYdkOk4QvWJg4vi$CED@JXvW?_-`|Wr|1}!OZ)gAq(A|`GUAliFx+`j6 z?!W(gIu{M8=z<;;*P{)*j5hcNn(B|R9&QgyT%Y!T8#IuC=yR8$Yv@LFS4@uk)5E#g zgZk$%>$lp2Ty(+~H>A(`o6uFd9v#7_XvANmss95Fu+aEaUlPqsH8e9V(5dQzj(j9~ zuH1snZ~?jowv3PO|9?^8Np|#&X@6HnJ8F%!uus%aKm)!XZD1pwj=!S;)Si%+`@7(+ z&`dmsHSsO4LEBvyZbSRqo#n#0`UjnpBWQy?2+Rh1qjP&cnvs#{V!Sz= ziEh(J(e3$i_yHRD59s^4Z8u{0F1MWo^>4?cG z<%`j&dmVjl6Sl>j*Z^zX9E%eT=rT0miAcZM%xo?k*%NW&bu@ra(G>m?5=Waso2Kye3bO!pu zB6QB5L#JpnI)~fP_jh1B+>f@?;tjP zp(C1u&ebAxM6Y6dd;@(xZ%SGd#nDB2G8$NG^nMpKL;cY0Hw>Mk2Qk}@i!EH3nsRrf zAC1mJ7ul0&123c7?kzNc!)QQ9O-;|0L7%IJ-fxVKv?aPt2V-5l5j{tqL^HZ#D*NAq z;%zGYF1HJvyPE$?8My|H_zrX}tU{;c3p^S3pbZt97J;B^r&`zw+fnX|?y~#P%shln z*}`dT3%^{xNX2>hH}=AQcczgnL{qv1{V>{qj;P>WX=*B=i?JR$=N<4fJPX|=Ri>xU z`HQeQO;%J>2L+@5eh`ds!P7apDE?n$YuixnxKfqo|(j(+G&Mpyr{cpQEn{*0#b zAi8FX-kZwh(5b17F1{vF?tq>HJ(AhXMO-+i*P(&TKtE3BV{Q?mi|u7}@w|(6_$4~m zyU@j#cVB9_IQm{S^t~qN{f_8}&yMnFJjT!e30&Cl6m${Ji3h$2e+>UX13ZE*#*(vA zhU%albVUR2k8a!Z(KT@yx+}(@8NCtxGW&q_^q*P5g)gi{8~8ZNo6!!x5C1~vu+Z$Z zxQ;~|?tzZ9FM2QyM^k<|x>l}7r{ZaBi!Y-6?8B@b{Kti>_}KeXhn2A@<)-NNyBzIk zE}E%DXhW}~i}gS3jh!CI%iNE%(GKcAm;!BvW?~H5-$b;XnGdr6jeH>$uHKi>hQCG| zKINe_*O#F$T#u&iPIQFNp$)G_N4OsC;8S!B{D?mHXO#2iq^T=`*4LiH{&z8*MuiP^ zLsQ%jZD0^Ox0hi#9EZ8c(Gf008+saTXE~bk_2^U_LJyq0hx2m(Sgk19&p7mV!IQFF z*x_U78h8@T$ctzPZ=Nf{`Cc2pUyuNSt$j+A?#{bgrz zVFwSRBVLF`z6>4FE9isoM)}k5`>6jjJc3R^kw?=uER9Y@Z8T%8(13cQ=f`=-n#*QJ zad8S2x1cG03=L!@`o-dXtc5?I2S>5FX|YyC@1GXsK3I+NrC1&BLI?IDI)D}EN%$U` z@m+YF`+qMNK3HI03ZN(&c@501jj$UU`MGFASE3Egi27M*2A)Jeo}WkO{!esKA3~?B z_5Ab$N_Wit{_iX<8gOGAy1E}nQ?(9_d{g*s)c+dg184{NA4|_28j7<#5(9pyXF7iLF!DLMr!(C0ov-`{~w*`MedDY!6oP#%4*R+QU? zJ<)-jzc8C#91%BeLPs8>ETiI{sOYpPEuwSKZF3R2U&lrL@~D3c?PxQa@*U`$?~VI;Po~9t z0-Ay9m|J{khPtEAXNSba)$zd1=m=*-`5Cl>;VV?D}mVKv-~o|t8p zroU3v9P3hk9&6&)XeJ6ho4$tE!j_bKqF->Pq9^1#n61jiZ(P{nanGd}I$~GKm!pes z84kt+=(ps7&!-H$fUfd&*bJ*KOFuIXLhD!KxmfOn^yxPids6-i&0O6V+5gVnl`p1< z{)c|+eIA{|U$8Y+e^4|Ug^Tdx@GEpp{DLmBedr6tUx|YS?VuL={uyCEbkSano^WH)c5g-loq?`}htN;i z1z9c{bMYju$1l;2o_IB_g=OdzeU82GKb(d=UP~j|j5ksK4SVO~$MWTAyRCRVExxzV zfIbU1DS(< zA(qUcmM#!1){UBn-uYh@q0#_FzR|2x7yYttN^i>CYvw4er%E^By{7ABW#&x$x-SgPwSm-%TUC5M8AU(6#VP z_&VCbx+rf%8~hd<;-0u)>AkdTYNO{%1N6P2=vo_rZs%;43+MX&s91td!CEv$o5Q{6 z>MpV_rLrnIqDE*&PD3--5$&LFcq!W6jpz|P9Uag@dU^L0<4cNzAorVHw?|p(N2#H6(K)_6$`jCl??f|nFFGaj(eq?w_|Zq~e^c}w6?Xg= zx`^^VP6tIvbS-oXhhRI(*G2hN>_Yh?bd{I+Bro@$>*`B%=XH1VM?w*M>+vb-M#2`dkFom_X7IDMs#ugh83~U=XsfaSQE|UO=tjj zqZxe!-RDoCfxH>@8_|HW-^7hQ=;Fz2P9B8@R1|Hf3ffRZbfjI;H83E&DC)07M>rny z@Mg5*+pr?eLf68}Si}9lk&8N1{EPm2toj#unIU)vcE*KR4R@h)S8_|5ssZTp525#8 zK{NFgx)=|lQ&@a!x_<^%pnN%2#HqP5`|l|(Ox=2HjbCFWJn75ysnrG@`7pGB8`0e{ z2R%}skMeS~*qoO;yn9e~{I}~kjWH>3j7Y*nM z^tn}77uTT;@5fX)MpzKM4DA-Y|^#jCOSx9J3(jP)pQM9+cDcj@o{orX;*&c#l+>AP%7dAaQ=qN->B zEyA|wfz%}&fNsBw(Z!ZUkM2j&_g3H;xE4oa;qTKFU5{q!7PP(lqJBY^3+G}fI?|WW z51Uo!2;V}d=CkmpsQ(YEP=D+XX^}QUpBoTfj&9otXuDI<0PhJOLfg+i77x6Lrgmkx z4)as~3=L>Yl)pyT!gh3x>_85G za6g*T=g>9rA)4~<(QS7KYhbAz>5pztNAKT(Rq-)&5x$Epa4*)xT07JCfIjGMxCQ6= z`TsT-c67;4DS#W%)q5Y>;d4=b2P;zEjvhGqe@+KdE%doj=z(-AdQQy8?zjdkV$omH z-y^Jt11V3kO#hiLxUhjbyHY0Fqx-ub+TfLFs;8oh?m=|!U&YF}4b8|Abk*1RHEqxS z;jr-PFpFmVF3kP?pLtw()-Mj<2seknV?pj0{4H&tBG`a(J8XtmVOM+tT?@Oh4rYE& z@6|=uOk?!G>WnVFvwvs*`|&%BilO)fI)_K^PK&NSnu#XpF6n_T(mv=Sx)5D#m!Yfu zIy@b3#h&;Ey3dR6NrCi7+dmK84U_h;|6P@LP+^MiMpx^6bR;X#weUfde?}MQzi0|i z+?xWag9gwH4X^`xu=PX(JRcp%2sH3pusYtA<-)mt5ncW3u{VB?M%eU^w3u3<+wpuf zg+tK$BcePe$`hk}dz9}+2lyb`@ndKvm&E<-3tTj$;&pVN|B42*7hPP1{!F{0Hrha2 zbY$JoKn9{C9Evu4HJYL8Lv z9$hrk(8csf_C3LW_lG}U{tBL0Uq zeA0omMjE04bVHvTghOyRHpaKn=l@1iU-a*^R=S{zvlrUWd6+$ui%Yn0q%WYEcq__Z zMENK5AUcFDrgHzJj;o+^SubpgF3QuiF`asQZq)0tlZU2LbJ&kaO((TMO?G>}Ko0WLuUSb+{?oqsLHij7qC#Bb0M z)&DQ0s2Lh*J8Xk}(EE3zbNB!*z-KWJ`yNaU55U}-LZ@Ubx_uYL{io3>crhC{R-=)= zh0f8&c;IWa!=Iym4?2>A=m?4)N*<2}dI~zAhGA>8z3%9?9e_^BaI~H5xTv@dFQ#HP z`oh7eFMK$y=CWa3^u@M#JN7~w{2WK%PHcdEkE9ds7WBw{3VrV*bd7w2e3H#(wP`O)ff{JUP0YcZF~^>;ot%(z!$>}=py?8J(&JMM|yn0{JGsw2i>-9 z@k~4)yW?W?`F)sO%teW#xWMITgDnfC5%oe3rgPDNCZi+24;{fP=%?j-=;Hex>)~JM z)Kw{*KlgR}!th>nYTiQw{j6~QY;JMvqQX>{I68lB|5ik&;xu$uoQ>}9A=n7VqKoK> za4EVLUPiaoTC}5&umx^I7h&mR(i%Dq&G>|4viWmAB(9>uIs60d_+XSv7fB7Bf_7L3 zz25|#(;iXZ2hGeNG?1In_NHMaoE7C)(010K&#lXH;m7Xgcwig4NOna1A81Dh&=em= zM_8h0dagX4PPqow#9`PQ@5F}q71~j;V^bzi!rVa6^CR1Y3m<5O&T)5igcn5pxTwD+ z>SvE<{F?=2k{0H>;KhSpa7f|^%nz#t-;V8`g_dg!y!VxV9pGCiBzn*)5 zUoxXFeusY8{Eii|Xo(b1J#;k>K^wjn{SaD+j&vm&z}slRo8taZD0Vp3x=a}JUe_B4g7C3V`Yv@Yo{U(q+A2-FN?N+#ByyeN|wr> z`z=>1G!xUYH$H^!?_Fq$k18FhMMqW>n_@#Wz>CpUe-+xn`0!3N@JFM(1RdC_((Hd< zd_Qh{j&}4@_)mDu@u|b|XhT)djvAqJetOjRLZ{*abTN;K`?q5S$`4@;T#oLl?Z>nK zP1Vm-IA?#Li?GNEDZ=vT{hH|gM(F+Saeq+UzZ4DpD(r-l(K&w?E8^#9;0Mr-3zkU% z7R_>D$}6A^)Il@S3hlTH+F|dwKLl;)>d^Nc>0Riyofq}5qHF3MG*e%p?d(L`JrHIy zC#H^%MjI}N22>LrK~r>ppAqG5Xou&ZYhXl_$He{Hu`~6vus3eQtFT_#{JFmY^(eaL z3YE*9nAuEYE{v!@8sUX#ibkP4d7YyBzy%O z*a|ezx6zN?k8lR=!rb5gz47GK@Dy~U_o6S(L$}{zw8ORNl)R6Qa4R}ByV1G+3+rIf zQ_}mVqJg)^hIkRy#e2|pR%7n(|9!}Xi|<>kj(gDq=EMpqW!=${ofG9D=<}n{k!9ol zRCGJu9X=lQuc1@B1~0)+(1D&>k^S!rohqi0o{N^pqH}!*`r;gP`#p`hIYt}UfM#k7 zI=9=gBkqa%W|dOr+Mv&MLZ9o2wtIf1Y&xl~q{0+VL_3;=o?uJEH{$-rxc_t1=T%N0 zzooGi&-X?UKm%Te4s3OlH)gpomEWMh#o80)W2&S8%A<2t4{fMb*cENC zAD)UAp^NSz^!d5C0hgk4e`D43O=t;Dqx=K*!0c7k^5=f*y#mjo;$JkvuGP~wn)7fv z<%zf&kFAkE_b-<|K-Ws4n)x$ru|ArCQRrvF)7SvN#VfHyEx&H_%?M}UDqQU6f6vZG=Y7BbyZ&`uJI~%rp0(CK`<$6fLO@Zdw6T>vK_Qr{ z>(gL4*8XLT&Z~e@SQOY0oD8-AFMxHx++~d&=?zL@OF?-LxF58DcR^|B8`z%wrefs` z!w9em>!n~c_zY|f_9$=MHXFd*80f}>cU0tbLCEBTtH zgS$bw=1nX6x_`TN4(O1;dragSmaO9I{;wFqK`HDhC{MP2Rejw*W}5fd*HhKL z2$Toe3I`J*UJuIsy$6&BPa-G@u7PR6UqE?%{|NenX&V|3tjwV3OM>~qhM+u0Lco;Z z7*GnD4oaL8Ob#vvrC`SzCX&ddcpQ{x`ZZ7rc>u~I`7J0fIsuIg|D2$#OMvp^tP4t^ zT|h|~0!pGtP`)1+s%r-*g-rsvogF486G?arltP|>HNp3w9Ln;Ijqlx}LHQPIp04-l z`aUQLe47~d08rM&6ib1!!{xwsU>$G>I14N-$2?V2<`rG~#idGW~A z!g#b60;{lY2^Iy%gYy1<3n+)`94Ljp0%gYvw=^CsHn1z}>7bm2UqSKrYh~O81wh&H z7NA26otWeY<3Q4^VUUZIuLVOLBz*nGbb<#G*VapE66Rb2S_Mu=l?(^Ad-_+J9 zAOVyF=Ri4}H^5=wAD|fwZ)eye+j0L(#qp{b56XHvD3@Xp*b-a?mIdE}a<~e%H*Tk* zp!k;t8-dk9c^MuJN&yoE#-lK3zvPryX50Qfs7XC^~O{&oLGZs+vWp&*cltbJFltyQOl5al9UEwh8W+ELt2j%t% z=xkJ26qFaAcAym;43+|Ksy$g3qr-Aw9rT?+*@1bWJn0sLvZE_Nc_3{ErNOtI>f4lxtQAlta`6EDrVt<$j(FO2PZVa^PK19#HAJ89Pw{l=z0A z>_}(Da8M5Y7_pPzG?R%`wi1*_stc5Bej1c(^i91o*_qLx6u1?X z=fNFN3dqqz<3PFHn}RLC5YQnngS(i>seA)Ur{6$%4rK0WT-&^01J=brsoV|<@d!`~ zoDRyFIRHunM?iU=Tm|J!d+3KQO+--( z#SBm?J`YOb2cYcC3s83EBPgAu2{aCEX~mYHJh(zZxg=viDR4e0ubvxJe;AaVy9&x( z@XWzP-thzk8P}*gD1n1Oxdf9yISX?@sdzIeFCP0qIn~!eNqA53Jt((X3Y&3BGJxe+ zX8{X?%|IzA3Y5FcFfGZ$7>o7fMB8TcvP`2K`ztL%CP_{H5C;`mp5>7*|xXCYWI z7L?9LgW^9Ol*B7Q*%22gXXT*cT~HeO8<~JSc_KRBQ=Kf}Wrx zhy>+qj0L5jX`m!r1PadzQ2f^_?gz#194I?+8x;Q+p!@fK-!KuvkDwef-vP$UYZ_4W zML>69pxA4IQbaShN^{e|I6*v z0EJvjD=2Hb;uO`d1!e18pb-89O6ONWxt1?LxjVjq;^z}?_@xDf*8)nyQlQwYfD+f( z!9+Uf0t$g06vr4)wrm6_jx#~&Yy~LSco!%;uwV5jKzR|n12MV&#Op!ne23z3P|m_lQ2gJ6;+G=Q=rkiJJ68~t zou~>*gWW;d`u?Ca76;FVmOa-N~rMlh>O5!7`zYI!ek3l)4ZxmAwG>8j<;$IPz z9clu~-P1GhD24nA$|d*+N{8ks z15<;-lU=bSD1LQ7*{Nor9NzYzLpljo#b{98ia8Z`g0jVzKp}VzN}{)*Y~?pl4rl6U zqo6#X6j%}zeN9l#Kr2u>?+yx2UtNbqbN@@F(J17aj90@vP%2%jxCWGKz7>@B{ii|M znJ1uh@(Gl}QpXsHvV&4cUQo_bSx_!TWl;R;fl^Sb818>jbVMPASQTSHNiYEvqJ^OQ zFe>fN(%Xfj&Ng^nO=RqO514_Y;>Ql!V{+Sdlp!gLBrC~>HHM9dIK~KdnP&yf^ z_U}|b8_7*5R_5^g_o{A|38GLyaOM_fehp8qL>AVXl1ie7%ELioi zpzP34P>9EX;x|iiF(`$v1|{JxP_4pd7j|PY!Zn#-J3?5fq}HY7YV>Q6wlYx8p&%9hZQ@;{wJ17%1_lK;gTj_6MLm`F;oGlE01D z`~MRPxmGEM8iiy5WsCBIvZdugA!-0hf_AF!3QA`KKuI_Zl)}b>;#V-#i1(i{KEyc#FZv#rFy;L6vN<(3w z#1B)P>R=)jEdk}){s>Ct`*eL26ryXOZ1HWy=b#kuCn#scZ@7^l6)5+2F2%B-#5V+` zp=O}Obx?HlWg=S>sW=*xvoIT!!j^$Tutx10LAiE^Kr@&Kir)!P3O}#wYoJ_;d!YD# z0NpzZO1^**ZgiNkF_BYQT(K4?L~TJ|unQ<1_5dZ&2FmR=2o%EEpzPcdP!8jEP#QQ5 zO5xW*iMso6VPF0l6s8s`CO#pI z#8~4ynQ+Capu8w;1RH{*P|ZDE|w{?C$&j$C0xalvy- zCZvM_rZcRa_-EzxzL&qhvVed_oTQI9zu>~2!ocs0{v!*RRpuntl2fVjo8k8L_Ok67U=&0;HhkxgEFKU2(K=%=8&1+Sbx(@GTO>AV|wS%cb> zU*@*i)0Qo=erwm6b{WIhRx z(!@?}t_EC}uun?n?%(5PUInqP|;cf;Tv(Yr6h|EeOs~O(;BKdaRr~ zun&^YU!qZ-CUGuJ{)~W9kbT23jXLui*ruiEwh0STm7Tal5vepL7t9B+52nyRh@Zv$ zIx%0dpVrRvVyj5pI(%m{7r7w+{^A;obU2r$qTV=!Dyf46>9OTxJyW|F2w6%9df-=t znE7C5CEK8J{N}!?5{1iah)9ISzJk9m@g0a+q(#lTcGdlVP^~3b4Rl3yXN^eSkH8&C zoXB)|u8`w5{3K;b@|0tKo_ez4Gs-&_+iGkXh$%zN5#^}G#_U0tQP+p5#c>ShM81^)ogj7xS;`=S!h8@lVe> z6TbuR4t}VYx)I99I2=dYlAyH|7Q_&l29}0!BZ;RnZ-ws}d_*=%JO#|5$P{$kS@p}n z4CuBKBl3>*CSvcay{UW#(30Rr5VwV}DNg(^?*B+1ou}gcpATammWB|D)HA?TSGzt7 zsl1@BhVKYP1dzxhTkzRHfg=0KBhnd6?!aj)fu+G4TIF#Z^D*Da_4*#$XdIiPn*d1) z{9aQ)DGEDC5(`A%lW;!sFG?)rR{5e549_j*ZMAEUzB+4128f#zxCN&oTEK4@UO<|H z^^YX2$NCvhdx)R+)8Xctx_qa~+?06z0DFhTwDz zr`wFF82`X=BMEonP=W;I(S2c_gdqMwom(D|EE_hD+{I=^*A88K)jtKt!QGqKx)j5| z9yB$@?-lr*TsP!1z>_Sd;KUneQ#S1&D+w1ezeC_b0zI;m$#4if@{X88*nRQ4OUyBB z=QVkH5{R@lz+_jwnOtj$dxCFYx&PxZtUw_$h2hJ57sfjpuo9xw1U+|q@R~xhzSx^; zf?x3uqljGSMGj*V>8dF&*}@M`;0KzE9HP6gry1?rOn5Qbb>DEBPMC zP0@|uq$rb+C>M?*!w3|4!#W-Mr_8JCC8?x7VsA@qKVA2SqbYG!SwCSn#%s5$*n!im zzk?@Ii%5gd4!QoB)k(-iu4*UUaU4X#?BH4LXdUY|kcq4$krUt7biWpIk&W0VY2k*3 zt@q;3P61b0TZk*ncqV@X?jZs7AgHF@?eN;ZB?LSm!E}7&!;n0T4~)j>Pk~>sRb?*H z&H(q4<26jL3aA>cYcu77pN zL;`R+sn_utFKVE7B&_C+UN(9*4?>5vSyIpLjP2Kv+52#5=NbMLv3D@j|5qILXa!3NNCJ5b z#2?GuolTko;2Ektjn@KAn*U8 zShQk<;=CP)b_Boos#reWNk)Pn7-1ARo8mq|dIuDVLf03bV%UdM#3POUllfjaFR>%V z!1k=a*8&Qn3&zj!3Zgt1XF|qL^GrJ+T%=C%5FW;<2tH$Y+A@t z^efa)3d_!Vy%rb)Jb-M>KfuuMadpQzKX(f;#^3gk)N>L2e;tM zKSwp?21QCzU=D^zHwyB|S)J5`cM5qTh~X~|xTPEXdj5H$k?0i;gHip&d;kGSSd09E z;|aGjpU@C|pMt88WU(fkq<(|&JtZmER7lk_3FLXaebkbmcD`T)rWd_PM;`Ye~YUD$nfH}c{CBlZ@oZ{vUD-|aTN z##UDgzl`2}|0gBsD#&+|xQ`a1KBh{LT*a}gBqVr=+U4LjR^kDeEEFJ;1$z+q0M6Qw zWLBd760foqpC5@w93~r%-g23Q%`mP-rfUP~sC`f|tWOrg~r&YAn-PsENFU(765v%Z-NK8E;nn6X)ARDg45$N(# zSb8v#1mW04&S}RTAniZ)WX@;zrXN^`6BAD{N!-31 zrNT_22~LH>Yv!5V2HsSIA8`Bx!9DOc#79AIIZmQ*VyEMKmF{ogtKp_abo&n5M-7-p z;^Gw2S=aC2y5)etpX$#Lya|Vz1Z>x1)dJ_Gj4cFQhE;C+Q0(~$yhL0}l1;+ijlyqZ z-^FOm4ozo$6q`sVINRa#7jgcKNsPJJmw+OU*ARJ&`{y2Bidi_0g>0M>iYW&LWQF7p z3N6FBlkUnuxJpq(L2MV4!%jgh@jFla18i0B-2~?h<_+Y(lgLJORsuvaVvrxi1Y;Db zr907D6U^``_6LahDTnDK@jHo&p;M6x_#y z{fG@>EYRH;g)NS_n(DJ%oK(t_!x0X7KFCHxBp*`NWA>Edx$acD0hL%@yIIhDng33;Y7yTl?jYt81-vIdh8U5l__fm<70`=(qlh^9D4_*`bu`$* zx+eyH8^z?qj=YCxlvcZppx@E++e`eh2BF}aWi7--QH8bG$=K@=JDAuI@Eo=u4EKM& zuBM>Y=pE;97|TMW1cCmnA5p{}l8%P(B(^ma*ATKpU{-=eW}#2cJiB%?2LBesKBl0u z=$3(B;rr)t$n=pGEAbQYX(@kB_9etk=w_M{xwNxgI3**=6^Qpk^aIHoQIPz6^b$m+ znXeZlX_YmW>?cUKpE(9ecXq&f2x6yQsu^2EFWJE7mB1-%v2^JhvfTjeF` zAl*R1F$BeGvJh}SqYLhV}C~H$i$c4 z1j!HDMNVmTCkPr#u(#}nG$*BU0Ox~VlrwY2u6P=mC%dMF1)w`a zTyoZn-T$2s1YPKIFGJ)!kss9Kq{45;9+y$}!`Kh!m=W7`XiO267 zLnIczC&V9P-G^i|NOT8Ik6eInAL~Zwn=0pe{QtTBTh>9ytv>yhS(>>iTp&NL27$WOiG>qjO`EN9j&~olz==+8cwCx zuuYVk!cD}k;W1r%qzrhw~UxbkOG4nKUap#PaB!sYrOq^ib{ zoYl&Na0yN`AP6P6GLCNn5Z;d9Wo&-< z`~qK2cmnYA$RHoC|6G)5(Ii5C8)H#TGLOKL1RjFq8@dqfd@@8ou|AI7tlfPh{vPXm zx=xPo8wyy%I<>}ml9q$7G&cTTka7JVqo_lo!VnbG?HA`tIJ}`ak&`4{sN|C=(vNj7 zNYWFxOk;MVzlm>M*0=Ee3H+1wX9}1vBuG{*Mt+Pg;)ukl2Z^hyAvuP&kTy5$?%x=a z>1yobNP11T?;YzI#MLJLKK`kgXT#o=W<2t@PTIlQO8N8QQH2RTx33}q+kokH>PIwlR>$MU*V0{i>$9@8%HDCqCl&nR@8erNB`D2F23Obud zUBf2@bCF2-DDj>yL=mL(MpS-N=W`)R z&3!G>0iw4Qo0kN0>1Hy7W3;$a*j6w^lA~`&dHy z1b-%Ij$X?e%=e%l44KGYMrGCyDDE*nV@aHz?nU0S{sa7oU1T-36I#qOeCBGAVk^t2 zBoidJ{K~=w3fMy6W)k(%uFuioU=qzCcnwwWBS9?dzrf4rcH`TexL@#VzewPB-jAcXA)$_ZyRI2Cg_T80SW7a*YRu0&b=kRIpi0U0vH0c+VyHNVE4u<3j^PF^(i;;nXeg!>}k7WHwS^zu*VO{$f%?ev~{wm3>J#gG6b#*9&5tOcABPUu2t*KoZ=fxHx>K8Y&BA?4)zf00oHn(62jgg-O7Gp>=a6~Pyo z`%z>%3LA!RAr0%nv0lFa z+ra2YlE*lVpuz!+Is_EdZkYZfc4nC&FT)67HyTrb$QAG}{4c_Ff&@!x#v_mM4Z@xZ z-mKU+l2{}g@s31e?*6(31HPuA;6fZrP}F9I$SX!KNIOFE9f>~Uvy?<4uL)|yIu%Kp zVOy?+zr@}My-0SFi43C2g^b3mN6D|Vxp0ofsiZpW!|895i2R~mv{w>CYkYkH`AT9h zVC&8N5HV@MND3D@hV3)O-<6J3ey6}k=sSTID8k?U&xtTDXK^2bdXRl%grOS+*?C4Y zY?0VbdJ*-8pcRP@qDw~MA0eHhiE|Nukizp~n}@9n`tjH!;1T%@=a0tJlv+NKzm7vE zlzo*zZEh%qJq=_vAnO6aREQejH9%}$p3((6$BpnUJ1%#+lcaaFaiIC`1mpMiH`2KXxE-NK_AUo zG6g>*N)Pc|90x9w~OwS9?YwEVuFcg03#KJt+AG zK2^2vRA3Ekm+%w0K&B+E>3# zSdC;Nc`)|Ve)g(;3bsMI=_m17!a9OPh1r)@_$09YnRN_!ig=L|B-)^b%6bLy!PrI4 zgJFJrk5UAO$t;S}RR=%!XZZK8%8$cM8I@*);xlxU@m@=x)3vO%iWTvxkG>N4jaEc< zz$nszw9)8hVylKv4a!PX+jG7ABX#di;hTuB!^WgBWnEB12ZHi=^&-S0uw{UtC-dRV zLv_y;ZWPlDE+U=D-^ZM;3fN(pf%3>W||NO}-7|Q`S}-H$eQS z68@wl-xE0nTU*vn-H{m9CgL*^C(?$P@f6bm{XO*&{Y~b+*oskz6K;_d@(lSx(()+w zVCY8WBB3}xMVFgI`BisRgQB#98j3DWTpr((=r)5nz#bHFL2aSTr>XxH_*Rjt6r+Xw z3c^Sd4ut#)T@=UBBb%9Y)b((>nE=@(bOXVRkgQ|=7xt$l6d9?>j1_C$Jz0-pY^H!o z_*VtDGG?K3zlP?4tSh4+!y|>66lI+a@*mg@E7)2)SU|C_^pdrwu&Hz+(o=Ux<~9=f z5R+6nXR&@kfx}pzMqijQKt4mBO|TDve|uG58{Kk}-ty9wBhaM<)Y9Z@AdP{@Bbm|n zqU#Wk0!)feFO55(#pK4XD>>iF_1{gB%^2cIdJnQz7`HQ4F}@P)kKihmT`v0A`b^$SH`37!s~A4l%dt=j>X#d#~q$}&U>L-sSe z@t}xsHD%jBsr>}{1r+!a-DQl67zNc={I^p`8Rf4gx+B|2*aCYqI7QyVBXSSD z6aFyeDYZZG4@R*gBW zJMkMa*YVFod>2LK`c%KG|5$hMefk~P6)oI zgQ|=V1QlV-#4jiM5)`%?pOMV#qT7jW8-+!q_sB-(Qz_D0UTPlE6_8&?UO?b50zDFl z!+6$9RguX2J-P<0Z)!J5D0&#W6U2t0n@1t(z)uu^9RG9_?2*0{F$n+GjEcW9`NNv*OPfi zk`4n8fC7>dcS(ztq#}O!C1IqdfR^ABIsY$Z0+GlKNI&TIl&7#`%=17b zauwo}jA{6YOlLgDwu6HH!mk2JC#vr{61QePP<;#0c{xTFa{UR1NB&I8^?yL3J{Z~VV$2OKWc(<_=q&nZGVbib9~~6Y0cb@ zUH%!RDN-E|XtmGTjiTu564)N+Dg=4U@A#*qkYQf>Occ0*#C>VxCv{GNZVQ~-(N8AE zpD{vrIv9Qt$1oH_nH*ruV}4z$7vpEfSAr@*bPU@-is>nZF`otQ!6q`Bq#`*e_!0^G zQrJaw_p!$ivq&xn_RGZVh2I}r9XP(1&ya@Vu#SKc7;VhQfQ@iijN?AW3rNed4#ZXq zTnTAS^i@bSjkQR7-HAi!MaIF=9sjf>?uP9!$(G^kf-5pS4Ibd_~Gb{1m_Q>Jti1)CMg0 zJi;y^^}rY8SdDL2^lia&@)^<{t#*_Wx>@=135VN|Wu~*<6j>V-`Hn6;(hpq)*uT)F zNKQDKk-QjVq$EH$(rY)wCj+)u%HfjFkh2lIgzBafFas2+4QX>tDC;;SNvGW(^s?30 zZvAuzQgXn4gYy&XB@&DzG9Qj^wO28H$d^an|F2W!Ax-`c!i_l3B4|EN?ZF3-yk!?Q z&|xQRS+#=(`0hvlBl;s?D!6iCyNG{P;_k>UXo2aOi;yhYO{y<+PW}d?7`54%X1k~?7_rE;v-T5E`R3p8IFY{YUovUVVF5n2doFWqj9{(Yl_*WbzYe7$G<`+gUl6}DEH^yOX`_X+Q_9(eFX#v7J&+{3w zCrLG~V-K8{GTxx<&S*_wB?|ivvJtGuLN1a;i5}rAa*<+(VEYyS7p#xt|0_l2U_AhR ze})zQ?2L`Xyq2Qn{7KW#mE{O`u`x+Vz0DVsVCqJY8b7y~xM_7e$aX<-Q@ z+)3O;bXKozy$tabd^=Kv4WA9}RNQXjV<{3C8x>`Xh_S?kgxg$$e0~3AV&Q7-^3Vi3zbsSmLZ){tF5Re+Ei#ICU2N>L-`};c zrO$Q0W}RBpZDncNz!DN+iLyrYw^@n|b#L47qLx6TN88{)8?i&ft%F0tW5b7=8b$=k zPX2eKv+W(9e7WTUM8{a8+?(xjDKgZ}J-nzZw4G1?f+@V}b)6mL(Zo0GT zIG>`fvg3SiC3DrC=99(Gd25zWYkzkePM_I6IlP&i`DgpoO#PokuBx+rqWuH3ap%VQ zK9>L2hDkcBI+b!wneX$iq-)M`pNr-yo(}%+?cqR%$vKG$wnnf?ArbCPa`imv)4ynpQWWw@jfhgye^1j)eHM^U$W|6xlVR@90x;u-NYj1dDclJ4I&f;9y-FzVf z%KxOWTf~~#$L8wM!~8Ny+R&)jU`vtuO&b(7wU)WFYoK|ypL_N?&|J|ya}^6RU+^tv zGc}hTh;esgDH0l$uskL-;XqMS`|z;XIH@FRNMLZ7Jvzo&AlTd^-TzX%W(S*F2Kcir zwEN6%PMV^5$EagdZE{QUVDdCFz#7U9(YVof92@%YhRB{K&X?_WZ)Chxu8gcUx?aVb zpCoZT9%UZqU#MfKJpyJa%5x6mEK&COXlronzxSzgLOb8w*_+!V0_D2Mz3g`W$J4p5 zxNoikT-iwbv8i-xJ2n-@aOzRdfA7xV31&;OfcCbqU~8D&HGR5yKn9;SuD@28$D~f- zbp>4U+sym@Y9=fQvjaR;hgR=7i#stqT{VRNa7&=&*%s=VK#QlOFzKgx3^^d*XA_uHWy)&VunQ8c$P)j z!s3my%)SSO#8?vcQv48Cv)$&M$%@4DA{5M_XN$sYa-F=IrN4i#&if;Jdm%O!JG*TT!@IG@z+V>>i3Bq}gA zBxblX(^Yd(SL3VZhQ7|JH_ZXbOaPLU;44hFZd z92T#Nxk-aLdVLcP#8~X{5mq@)LoDvY`7hD`(QPSHGdaYbo7C0(mibL`XWggflD^>y z8=ZNdnln1jJvAo{U=DI%r}&NENVnVg57npbghY`>UWB=NOJ#klsoH23xKY2nKG z%A6!1Uw-!y3AIEIi3kjivPXo(TLVKZLxZd_)@XZdRG@9R`*^tcA10^zB$X#ia2R*n zqYviM{>i!p#o0M-JQD|gH4jhjmv~Tan*iT?K6+DLN#^@1pkhlY%5LJZ$^qm7XSGC! z#zuy4Obv^rh&(Pl^Z3vxYfPxs`8l0$%hK+COzjPKi+g2w|Ch=WG%USuUDxIGz5%{Q z1Erf8M@9_W!(lIho;!n-dS(jBCWBDRDWMFv6C2@ZVPx=k(0J z*4@>n4{t)E>t&Hn!b1@rYG delta 68466 zcmXuscfgj@|G@FPr;LVDk%sc5y@z(%N=rkfMI{xfl+2{=B9V{~Nk#~vFACX;A`y|Y zg(wOsigzJ#WFEqY@L9YH2Nf!iIUP4+Ev#@vfy|NE8JlBI z?2far8-9T8u-uUaGW~Hd_QU_-1p3e99aSLHg^Edd0j|PMn16I~6gH;(Soj6Drd+&m zfy^N6jxF#ZY>HoETP#(iK&C79MFUl7tW`p-1xq9IO0Q~SU08??bv#gbjo z5l=^_jOCR|9hE`ftBh{n#^}hpp#hy0<ytz0-4_hLDGBFgK~ z2REY~ZbJjxk9JtFbPDV^bi@_W#at8JCH2t&24QVHAI

    ;Zkhr{(pgsX59D<8(^*D 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 T#DpK%^?(1+5IZ3_Wy=2pLyp%$ diff --git a/netbox/translations/cs/LC_MESSAGES/django.po b/netbox/translations/cs/LC_MESSAGES/django.po index 2a5e42b12..fdd9a8b88 100644 --- a/netbox/translations/cs/LC_MESSAGES/django.po +++ b/netbox/translations/cs/LC_MESSAGES/django.po @@ -4,10 +4,10 @@ # FIRST AUTHOR , YEAR. # # Translators: -# czarnian, 2024 -# Jeremy Stretch, 2024 # Pavel Valach, 2024 # Matěj Gordon, 2025 +# czarnian, 2025 +# Jeremy Stretch, 2025 # #, fuzzy msgid "" @@ -16,7 +16,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-01-04 05:02+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" -"Last-Translator: Matěj Gordon, 2025\n" +"Last-Translator: Jeremy Stretch, 2025\n" "Language-Team: Czech (https://app.transifex.com/netbox-community/teams/178115/cs/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -64,7 +64,7 @@ msgstr "Naposledy použitý" #: netbox/templates/users/token.html:47 netbox/users/forms/bulk_edit.py:122 #: netbox/users/forms/model_forms.py:124 msgid "Allowed IPs" -msgstr "Povolené IP adresy" +msgstr "Povolené adresy IP" #: netbox/account/views.py:114 #, python-brace-format @@ -179,7 +179,7 @@ msgstr "Region (zkratka)" #: netbox/ipam/filtersets.py:974 netbox/virtualization/filtersets.py:58 #: netbox/virtualization/filtersets.py:186 msgid "Site group (ID)" -msgstr "Skupina stránek (ID)" +msgstr "Skupina míst (ID)" #: netbox/circuits/filtersets.py:51 netbox/circuits/filtersets.py:218 #: netbox/dcim/filtersets.py:135 netbox/dcim/filtersets.py:232 @@ -191,7 +191,7 @@ msgstr "Skupina stránek (ID)" #: netbox/virtualization/filtersets.py:65 #: netbox/virtualization/filtersets.py:193 msgid "Site group (slug)" -msgstr "Skupina stránek (slug)" +msgstr "Skupina míst (zkratka)" #: netbox/circuits/filtersets.py:56 netbox/circuits/forms/bulk_edit.py:188 #: netbox/circuits/forms/bulk_edit.py:216 @@ -252,7 +252,7 @@ msgstr "Skupina stránek (slug)" #: netbox/vpn/forms/filtersets.py:266 netbox/wireless/forms/model_forms.py:76 #: netbox/wireless/forms/model_forms.py:118 msgid "Site" -msgstr "Stránky" +msgstr "Místo" #: netbox/circuits/filtersets.py:62 netbox/circuits/filtersets.py:229 #: netbox/circuits/filtersets.py:274 netbox/dcim/filtersets.py:242 @@ -262,7 +262,7 @@ msgstr "Stránky" #: netbox/virtualization/filtersets.py:75 #: netbox/virtualization/filtersets.py:203 netbox/vpn/filtersets.py:363 msgid "Site (slug)" -msgstr "Místo (slug)" +msgstr "Místo (zkratka)" #: netbox/circuits/filtersets.py:67 msgid "ASN (ID)" @@ -316,7 +316,7 @@ msgstr "Typ okruhu (URL zkratka)" #: netbox/ipam/filtersets.py:985 netbox/virtualization/filtersets.py:69 #: netbox/virtualization/filtersets.py:197 netbox/vpn/filtersets.py:368 msgid "Site (ID)" -msgstr "Stránky (ID)" +msgstr "Místo (ID)" #: netbox/circuits/filtersets.py:233 netbox/circuits/filtersets.py:237 msgid "Termination A (ID)" @@ -371,15 +371,15 @@ msgstr "Síť poskytovatele (ID)" #: netbox/circuits/filtersets.py:335 msgid "Circuit (ID)" -msgstr "Obvod (ID)" +msgstr "Okruh (ID)" #: netbox/circuits/filtersets.py:341 msgid "Circuit (CID)" -msgstr "Obvod (CID)" +msgstr "Okruh (CID)" #: netbox/circuits/filtersets.py:345 msgid "Circuit group (ID)" -msgstr "Skupina obvodů (ID)" +msgstr "Skupina okruhů (ID)" #: netbox/circuits/filtersets.py:351 msgid "Circuit group (slug)" @@ -804,7 +804,7 @@ msgstr "Datum ukončení" #: netbox/circuits/forms/bulk_edit.py:158 #: netbox/circuits/forms/filtersets.py:186 msgid "Commit rate (Kbps)" -msgstr "Rychlost odevzdání (Kbps)" +msgstr "Smluvní rychlost (Kbps)" #: netbox/circuits/forms/bulk_edit.py:173 #: netbox/circuits/forms/model_forms.py:112 @@ -1042,7 +1042,7 @@ msgstr "Region" #: netbox/virtualization/forms/filtersets.py:138 #: netbox/virtualization/forms/model_forms.py:98 msgid "Site group" -msgstr "Skupina stránek" +msgstr "Skupina míst" #: netbox/circuits/forms/filtersets.py:65 #: netbox/circuits/forms/filtersets.py:83 @@ -1160,19 +1160,19 @@ msgstr "barva" #: netbox/circuits/models/circuits.py:36 msgid "circuit type" -msgstr "typ obvodu" +msgstr "typ okruhu" #: netbox/circuits/models/circuits.py:37 msgid "circuit types" -msgstr "typy obvodů" +msgstr "typy okruhů" #: netbox/circuits/models/circuits.py:48 msgid "circuit ID" -msgstr "ID obvodu" +msgstr "ID okruhu" #: netbox/circuits/models/circuits.py:49 msgid "Unique circuit ID" -msgstr "Jedinečné ID obvodu" +msgstr "Jedinečné ID okruhu" #: netbox/circuits/models/circuits.py:69 netbox/core/models/data.py:52 #: netbox/core/models/jobs.py:85 netbox/dcim/models/cables.py:49 @@ -1194,11 +1194,11 @@ msgstr "nainstalován" #: netbox/circuits/models/circuits.py:89 msgid "terminates" -msgstr "ukončí" +msgstr "končí" #: netbox/circuits/models/circuits.py:94 msgid "commit rate (Kbps)" -msgstr "rychlost odevzdání (Kbps)" +msgstr "smluvní rychlost (Kbps)" #: netbox/circuits/models/circuits.py:95 msgid "Committed rate" @@ -1214,11 +1214,11 @@ msgstr "okruhy" #: netbox/circuits/models/circuits.py:170 msgid "circuit group" -msgstr "skupina obvodů" +msgstr "skupina okruhů" #: netbox/circuits/models/circuits.py:171 msgid "circuit groups" -msgstr "skupiny obvodů" +msgstr "skupiny okruhů" #: netbox/circuits/models/circuits.py:195 netbox/ipam/models/fhrp.py:93 #: netbox/tenancy/models/contacts.py:134 @@ -1227,7 +1227,7 @@ msgstr "přednost" #: netbox/circuits/models/circuits.py:213 msgid "Circuit group assignment" -msgstr "Přiřazení skupiny obvodů" +msgstr "Přiřazení skupiny okruhů" #: netbox/circuits/models/circuits.py:214 msgid "Circuit group assignments" @@ -1235,7 +1235,7 @@ msgstr "Přiřazení skupin obvodů" #: netbox/circuits/models/circuits.py:240 msgid "termination" -msgstr "zakončení" +msgstr "" #: netbox/circuits/models/circuits.py:257 msgid "port speed (Kbps)" @@ -1297,14 +1297,11 @@ msgstr "zakončení okruhů" msgid "" "A circuit termination must attach to either a site or a provider network." msgstr "" -"Zakončení okruhu se musí připojit buď k místu, nebo k síti poskytovatele." #: netbox/circuits/models/circuits.py:310 msgid "" "A circuit termination cannot attach to both a site and a provider network." msgstr "" -"Zakončení okruhu se nemůže připojit jak k síti webu, tak k síti " -"poskytovatele." #: netbox/circuits/models/providers.py:22 #: netbox/circuits/models/providers.py:66 @@ -1534,7 +1531,7 @@ msgstr "Strana Z" #: netbox/circuits/tables/circuits.py:77 #: netbox/templates/circuits/circuit.html:55 msgid "Commit Rate" -msgstr "Míra odevzdání" +msgstr "Smluvní rychlost" #: netbox/circuits/tables/circuits.py:80 #: netbox/circuits/tables/providers.py:48 @@ -1563,7 +1560,7 @@ msgstr "Míra odevzdání" #: netbox/vpn/tables/tunnels.py:61 netbox/wireless/tables/wirelesslan.py:27 #: netbox/wireless/tables/wirelesslan.py:58 msgid "Comments" -msgstr "Komentář" +msgstr "Komentáře" #: netbox/circuits/tables/circuits.py:86 #: netbox/templates/tenancy/contact.html:84 @@ -1586,12 +1583,12 @@ msgstr "Počet ASN" #: netbox/circuits/views.py:331 #, python-brace-format msgid "No terminations have been defined for circuit {circuit}." -msgstr "Pro obvod nebyla definována žádná zakončení {circuit}." +msgstr "Pro okruh {circuit} nebyla definována žádná zakončení ." #: netbox/circuits/views.py:380 #, python-brace-format msgid "Swapped terminations for circuit {circuit}." -msgstr "Vyměněné zakončení pro obvod {circuit}." +msgstr "Vyměněná zakončení pro okruh {circuit}." #: netbox/core/api/views.py:39 msgid "This user does not have permission to synchronize this data source." @@ -1620,7 +1617,7 @@ msgstr "Dokončeno" #: netbox/dcim/choices.py:187 netbox/dcim/choices.py:239 #: netbox/dcim/choices.py:1609 netbox/virtualization/choices.py:47 msgid "Failed" -msgstr "Neuspěl" +msgstr "Selhalo" #: netbox/core/choices.py:35 netbox/netbox/navigation/menu.py:335 #: netbox/netbox/navigation/menu.py:339 @@ -1647,7 +1644,7 @@ msgstr "Naplánováno" #: netbox/core/choices.py:56 msgid "Running" -msgstr "Běh" +msgstr "Běží" #: netbox/core/choices.py:58 msgid "Errored" @@ -1656,7 +1653,7 @@ msgstr "Chyba" #: netbox/core/choices.py:87 netbox/core/tables/plugins.py:63 #: netbox/templates/generic/object.html:61 msgid "Updated" -msgstr "aktualizováno" +msgstr "Aktualizováno" #: netbox/core/choices.py:88 msgid "Deleted" @@ -1725,7 +1722,7 @@ msgstr "Tajný přístupový klíč AWS" #: netbox/core/events.py:27 msgid "Object created" -msgstr "Vytvořený objekt" +msgstr "Objekt vytvořen" #: netbox/core/events.py:28 msgid "Object updated" @@ -1737,7 +1734,7 @@ msgstr "Objekt odstraněn" #: netbox/core/events.py:30 msgid "Job started" -msgstr "Práce byla zahájena" +msgstr "Úloha zahájena" #: netbox/core/events.py:31 msgid "Job completed" @@ -1850,7 +1847,7 @@ msgstr "Vytvořeno po" #: netbox/core/forms/filtersets.py:89 msgid "Created before" -msgstr "Vytvořeno dříve" +msgstr "Vytvořeno před" #: netbox/core/forms/filtersets.py:94 msgid "Scheduled after" @@ -1858,7 +1855,7 @@ msgstr "Naplánováno po" #: netbox/core/forms/filtersets.py:99 msgid "Scheduled before" -msgstr "Naplánováno dříve" +msgstr "Naplánováno před" #: netbox/core/forms/filtersets.py:104 msgid "Started after" @@ -1866,7 +1863,7 @@ msgstr "Začalo po" #: netbox/core/forms/filtersets.py:109 msgid "Started before" -msgstr "Začalo dříve" +msgstr "Začalo před" #: netbox/core/forms/filtersets.py:114 msgid "Completed after" @@ -1905,7 +1902,7 @@ msgstr "Po" #: netbox/core/forms/filtersets.py:144 netbox/extras/forms/filtersets.py:450 msgid "Before" -msgstr "Dříve" +msgstr "Před" #: netbox/core/forms/filtersets.py:148 netbox/core/tables/change_logging.py:29 #: netbox/extras/forms/model_forms.py:396 @@ -1941,7 +1938,7 @@ msgstr "" #: netbox/core/forms/model_forms.py:153 #: netbox/templates/dcim/rack_elevation_list.html:6 msgid "Rack Elevations" -msgstr "Výšky stojanů" +msgstr "Přehled stojanů" #: netbox/core/forms/model_forms.py:157 netbox/dcim/choices.py:1520 #: netbox/dcim/forms/bulk_edit.py:984 netbox/dcim/forms/bulk_edit.py:1372 @@ -2259,16 +2256,16 @@ msgstr "ID úlohy" #: netbox/core/models/jobs.py:112 msgid "job" -msgstr "práce" +msgstr "úloha" #: netbox/core/models/jobs.py:113 msgid "jobs" -msgstr "pracovní místa" +msgstr "úlohy" #: netbox/core/models/jobs.py:136 #, python-brace-format msgid "Jobs cannot be assigned to this object type ({type})." -msgstr "K tomuto typu objektu nelze přiřadit úlohy ({type})." +msgstr "K tomuto typu objektu ({type}) nelze přiřadit úlohy." #: netbox/core/models/jobs.py:190 #, python-brace-format @@ -2278,7 +2275,7 @@ msgstr "Neplatný stav pro ukončení úlohy. Možnosti jsou: {choices}" #: netbox/core/models/jobs.py:221 msgid "" "enqueue() cannot be called with values for both schedule_at and immediate." -msgstr "enqueue () nelze volat s hodnotami pro schedule_at a instant." +msgstr "enqueue() nelze volat s hodnotami pro schedule_at a ihned zároveň." #: netbox/core/signals.py:126 #, python-brace-format @@ -2396,7 +2393,7 @@ msgstr "Hostitel" #: netbox/core/tables/tasks.py:50 netbox/ipam/forms/filtersets.py:535 msgid "Port" -msgstr "Přístav" +msgstr "Port" #: netbox/core/tables/tasks.py:54 msgid "DB" @@ -2445,7 +2442,7 @@ msgstr "Nebyli nalezeni žádní pracovníci" #: netbox/core/views.py:90 #, python-brace-format msgid "Queued job #{id} to sync {datasource}" -msgstr "Úloha ve frontě #{id} synchronizovat {datasource}" +msgstr "Úloha #{id} k synchronizaci {datasource} zařazena do fronty." #: netbox/core/views.py:319 #, python-brace-format @@ -2455,12 +2452,12 @@ msgstr "Obnovená revize konfigurace #{id}" #: netbox/core/views.py:412 netbox/core/views.py:455 netbox/core/views.py:531 #, python-brace-format msgid "Job {job_id} not found" -msgstr "Práce {job_id} nenalezeno" +msgstr "Úloha {job_id} nenalezena" #: netbox/core/views.py:463 #, python-brace-format msgid "Job {id} has been deleted." -msgstr "Práce {id} byl vymazán." +msgstr "Úloha {id} byla vymazána." #: netbox/core/views.py:465 #, python-brace-format @@ -2470,22 +2467,22 @@ msgstr "Chyba při mazání úlohy {id}: {error}" #: netbox/core/views.py:478 netbox/core/views.py:496 #, python-brace-format msgid "Job {id} not found." -msgstr "Práce {id} nenalezeno." +msgstr "Úloha {id} nenalezena." #: netbox/core/views.py:484 #, python-brace-format msgid "Job {id} has been re-enqueued." -msgstr "Práce {id} byla znovu zařazena do fronty." +msgstr "Úloha {id} byla znovu zařazena do fronty." #: netbox/core/views.py:519 #, python-brace-format msgid "Job {id} has been enqueued." -msgstr "Práce {id} byl zařazen do fronty." +msgstr "Úloha {id} byla zařazena do fronty." #: netbox/core/views.py:538 #, python-brace-format msgid "Job {id} has been stopped." -msgstr "Práce {id} byl zastaven." +msgstr "Úloha {id} byla zastavena." #: netbox/core/views.py:540 #, python-brace-format @@ -2535,7 +2532,7 @@ msgstr "4-sloupový rám" #: netbox/dcim/choices.py:67 msgid "4-post cabinet" -msgstr "4-sloupová skříňka" +msgstr "4-sloupová skříň" #: netbox/dcim/choices.py:68 msgid "Wall-mounted frame" @@ -2547,7 +2544,7 @@ msgstr "Nástěnný rám (vertikální)" #: netbox/dcim/choices.py:70 msgid "Wall-mounted cabinet" -msgstr "Nástěnná skříňka" +msgstr "Nástěnná skříň" #: netbox/dcim/choices.py:71 msgid "Wall-mounted cabinet (vertical)" @@ -2582,7 +2579,7 @@ msgstr "Milimetry" #: netbox/dcim/choices.py:115 netbox/dcim/choices.py:1555 msgid "Inches" -msgstr "palce" +msgstr "Palce" #: netbox/dcim/choices.py:136 netbox/dcim/choices.py:207 #: netbox/dcim/choices.py:254 @@ -2679,12 +2676,12 @@ msgstr "Zdola nahoru" #: netbox/dcim/choices.py:214 msgid "Top to bottom" -msgstr "Nahoru dolů" +msgstr "Shora dolů" #: netbox/dcim/choices.py:215 netbox/dcim/choices.py:259 #: netbox/dcim/choices.py:1305 msgid "Passive" -msgstr "pasivní" +msgstr "Pasivní" #: netbox/dcim/choices.py:216 msgid "Mixed" @@ -2802,17 +2799,17 @@ msgstr "Auto" #: netbox/dcim/choices.py:1265 msgid "Access" -msgstr "Přístup" +msgstr "Přístupový" #: netbox/dcim/choices.py:1266 netbox/ipam/tables/vlans.py:172 #: netbox/ipam/tables/vlans.py:217 #: netbox/templates/dcim/inc/interface_vlans_table.html:7 msgid "Tagged" -msgstr "Označeno" +msgstr "Značkovaný" #: netbox/dcim/choices.py:1267 msgid "Tagged (All)" -msgstr "Označeno (Vše)" +msgstr "Značkovaný (Vše)" #: netbox/dcim/choices.py:1296 msgid "IEEE Standard" @@ -2888,7 +2885,7 @@ msgstr "Gramy" #: netbox/dcim/choices.py:1572 netbox/templates/dcim/device.html:328 #: netbox/templates/dcim/rack.html:108 msgid "Pounds" -msgstr "libry" +msgstr "Libry" #: netbox/dcim/choices.py:1573 msgid "Ounces" @@ -2896,7 +2893,7 @@ msgstr "Unce" #: netbox/dcim/choices.py:1620 msgid "Redundant" -msgstr "Redundantní" +msgstr "Zdvojený" #: netbox/dcim/choices.py:1641 msgid "Single phase" @@ -2922,15 +2919,15 @@ msgstr "Nadřazená oblast (ID)" #: netbox/dcim/filtersets.py:92 msgid "Parent region (slug)" -msgstr "Nadřazená oblast (URL zkratka)" +msgstr "Nadřazená oblast (zkratka)" #: netbox/dcim/filtersets.py:116 msgid "Parent site group (ID)" -msgstr "Nadřazená skupina webů (ID)" +msgstr "Nadřazená skupina míst (ID)" #: netbox/dcim/filtersets.py:122 msgid "Parent site group (slug)" -msgstr "Nadřazená skupina stránek (slimák)" +msgstr "Nadřazená skupina míst (zkratka)" #: netbox/dcim/filtersets.py:164 netbox/extras/filtersets.py:364 #: netbox/ipam/filtersets.py:843 netbox/ipam/filtersets.py:995 @@ -4231,7 +4228,7 @@ msgstr "Šířka musí být nastavena, pokud není zadán typ stojanu." #: netbox/dcim/forms/bulk_import.py:326 msgid "U height must be set if not specifying a rack type." -msgstr "" +msgstr "Pokud není zadán typ stojanu, musí být nastavena výška U." #: netbox/dcim/forms/bulk_import.py:334 msgid "Parent site" @@ -4890,6 +4887,11 @@ msgid "" "present, will be automatically replaced with the position value when " "creating a new module." msgstr "" +"Pro hromadné vytváření jsou podporovány alfanumerické rozsahy. Smíšené " +"případy a typy v rámci jednoho rozsahu nejsou podporovány (příklad: " +"[ge, xe] -0/0/ [0-9]). Žeton {module}, pokud je " +"přítomen, bude automaticky nahrazen hodnotou pozice při vytváření nového " +"modulu." #: netbox/dcim/forms/model_forms.py:1094 msgid "Console port template" @@ -9595,11 +9597,11 @@ msgstr "Nastavte to jako primární IP pro přiřazené zařízení" #: netbox/ipam/forms/bulk_import.py:330 msgid "Is out-of-band" -msgstr "" +msgstr "Je mimo pásmo" #: netbox/ipam/forms/bulk_import.py:331 msgid "Designate this as the out-of-band IP address for the assigned device" -msgstr "" +msgstr "Určete tuto adresu jako mimopásmovou IP adresu přiřazeného zařízení" #: netbox/ipam/forms/bulk_import.py:371 msgid "No device or virtual machine specified; cannot set as primary IP" @@ -9609,11 +9611,11 @@ msgstr "" #: netbox/ipam/forms/bulk_import.py:375 msgid "No device specified; cannot set as out-of-band IP" -msgstr "" +msgstr "Není určeno žádné zařízení; nelze nastavit jako IP mimo pásmo" #: netbox/ipam/forms/bulk_import.py:379 msgid "Cannot set out-of-band IP for virtual machines" -msgstr "" +msgstr "Nelze nastavit IP mimo pásmo pro virtuální počítače" #: netbox/ipam/forms/bulk_import.py:383 msgid "No interface specified; cannot set as primary IP" @@ -9621,7 +9623,7 @@ msgstr "Není určeno žádné rozhraní; nelze nastavit jako primární IP" #: netbox/ipam/forms/bulk_import.py:387 msgid "No interface specified; cannot set as out-of-band IP" -msgstr "" +msgstr "Není určeno žádné rozhraní; nelze nastavit jako IP mimo pásmo" #: netbox/ipam/forms/bulk_import.py:422 msgid "Auth type" @@ -9780,7 +9782,7 @@ msgstr "Řada ASN" #: netbox/ipam/forms/model_forms.py:231 msgid "Site/VLAN Assignment" -msgstr "Přiřazení webu/VLAN" +msgstr "" #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10 msgid "IP Range" @@ -9798,7 +9800,7 @@ msgstr "Nastavte z něj primární IP pro zařízení/virtuální počítač" #: netbox/ipam/forms/model_forms.py:314 msgid "Make this the out-of-band IP for the device" -msgstr "" +msgstr "Nastavte z tohoto pole IP mimo pásmo zařízení" #: netbox/ipam/forms/model_forms.py:329 msgid "NAT IP (Inside)" @@ -9811,10 +9813,12 @@ msgstr "IP adresu lze přiřadit pouze jednomu objektu." #: netbox/ipam/forms/model_forms.py:398 msgid "Cannot reassign primary IP address for the parent device/VM" msgstr "" +"Nelze znovu přiřadit primární adresu IP pro nadřazené zařízení/virtuální " +"počítač" #: netbox/ipam/forms/model_forms.py:402 msgid "Cannot reassign out-of-Band IP address for the parent device" -msgstr "" +msgstr "Nelze znovu přiřadit IP adresu mimo pásmo pro nadřazené zařízení" #: netbox/ipam/forms/model_forms.py:412 msgid "" @@ -9827,6 +9831,8 @@ msgid "" "Only IP addresses assigned to a device interface can be designated as the " "out-of-band IP for a device." msgstr "" +"Pouze IP adresy přiřazené k rozhraní zařízení mohou být označeny jako IP " +"adresy mimo pásmo zařízení." #: netbox/ipam/forms/model_forms.py:508 msgid "Virtual IP Address" @@ -10220,12 +10226,12 @@ msgstr "Nelze nastavit scope_id bez scope_type." #: netbox/ipam/models/vlans.py:105 #, python-brace-format msgid "Starting VLAN ID in range ({value}) cannot be less than {minimum}" -msgstr "" +msgstr "Spuštění VLAN ID v dosahu ({value}) nemůže být menší než {minimum}" #: netbox/ipam/models/vlans.py:111 #, python-brace-format msgid "Ending VLAN ID in range ({value}) cannot exceed {maximum}" -msgstr "" +msgstr "Ukončení VLAN ID v rozsahu ({value}) nesmí překročit {maximum}" #: netbox/ipam/models/vlans.py:118 #, python-brace-format @@ -10233,6 +10239,8 @@ msgid "" "Ending VLAN ID in range must be greater than or equal to the starting VLAN " "ID ({range})" msgstr "" +"Koncové ID VLAN v rozsahu musí být větší nebo roven počátečnímu ID VLAN " +"({range})" #: netbox/ipam/models/vlans.py:124 msgid "Ranges cannot overlap." @@ -12587,7 +12595,7 @@ msgstr "Chyba při vykreslování šablony" #: netbox/templates/dcim/device/render_config.html:70 msgid "No configuration template has been assigned for this device." -msgstr "Pro toto zařízení nebyla přiřazena žádná konfigurační šablona." +msgstr "" #: netbox/templates/dcim/device_edit.html:44 msgid "Parent Bay" @@ -13852,7 +13860,7 @@ msgstr "Centrum nápovědy" #: netbox/templates/inc/user_menu.html:41 msgid "Django Admin" -msgstr "Správce Django" +msgstr "" #: netbox/templates/inc/user_menu.html:61 msgid "Log Out" @@ -14266,7 +14274,6 @@ msgstr "Přidat virtuální disk" #: netbox/templates/virtualization/virtualmachine/render_config.html:70 msgid "No configuration template has been assigned for this virtual machine." msgstr "" -"Pro tento virtuální počítač nebyla přiřazena žádná konfigurační šablona." #: netbox/templates/vpn/ikepolicy.html:10 #: netbox/templates/vpn/ipsecprofile.html:33 netbox/vpn/tables/crypto.py:166 @@ -15365,7 +15372,6 @@ msgid "" "{device} belongs to a different site ({device_site}) than the cluster " "({cluster_site})" msgstr "" -"{device} patří k jinému webu ({device_site}) než cluster ({cluster_site})" #: netbox/virtualization/forms/model_forms.py:192 msgid "Optionally pin this VM to a specific host device within the cluster" @@ -16098,7 +16104,7 @@ msgstr "bezdrátové spoje" #: netbox/wireless/models.py:236 msgid "Must specify a unit when setting a wireless distance" -msgstr "Při nastavování bezdrátové vzdálenosti je nutné zadat jednotku" +msgstr "" #: netbox/wireless/models.py:242 netbox/wireless/models.py:248 #, python-brace-format diff --git a/netbox/translations/da/LC_MESSAGES/django.mo b/netbox/translations/da/LC_MESSAGES/django.mo index 2988b90ff53d5fc83b2065306d44c9252733fecc..993b688e4760f2064b2f251acb5af1a899196fd0 100644 GIT binary patch delta 66531 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 ahrL_&LrL?xr59nzvL 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 Ac>n+a diff --git a/netbox/translations/da/LC_MESSAGES/django.po b/netbox/translations/da/LC_MESSAGES/django.po index 1b48b5849..bb8f0a346 100644 --- a/netbox/translations/da/LC_MESSAGES/django.po +++ b/netbox/translations/da/LC_MESSAGES/django.po @@ -6,7 +6,7 @@ # Translators: # Jeff Gehlbach, 2024 # ch, 2024 -# Frederik Spang Thomsen , 2024 +# Frederik Spang , 2024 # Jeremy Stretch, 2025 # #, fuzzy @@ -1235,7 +1235,7 @@ msgstr "Kredsløbsgruppeopgaver" #: netbox/circuits/models/circuits.py:240 msgid "termination" -msgstr "opsigelse" +msgstr "" #: netbox/circuits/models/circuits.py:257 msgid "port speed (Kbps)" @@ -1297,15 +1297,11 @@ msgstr "kredsløbsafslutninger" msgid "" "A circuit termination must attach to either a site or a provider network." msgstr "" -"En kredsløbsafslutning skal tilsluttes enten et websted eller et " -"udbydernetværk." #: netbox/circuits/models/circuits.py:310 msgid "" "A circuit termination cannot attach to both a site and a provider network." msgstr "" -"En kredsløbsafslutning kan ikke knyttes til både et websted og et " -"udbydernetværk." #: netbox/circuits/models/providers.py:22 #: netbox/circuits/models/providers.py:66 @@ -9803,7 +9799,7 @@ msgstr "ASN-rækkevidde" #: netbox/ipam/forms/model_forms.py:231 msgid "Site/VLAN Assignment" -msgstr "Websted/VLAN-tildeling" +msgstr "" #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10 msgid "IP Range" @@ -12635,7 +12631,7 @@ msgstr "Fejl ved gengivelse af skabelon" #: netbox/templates/dcim/device/render_config.html:70 msgid "No configuration template has been assigned for this device." -msgstr "Der er ikke tildelt nogen konfigurationsskabelon til denne enhed." +msgstr "" #: netbox/templates/dcim/device_edit.html:44 msgid "Parent Bay" @@ -13903,7 +13899,7 @@ msgstr "Hjælpecenter" #: netbox/templates/inc/user_menu.html:41 msgid "Django Admin" -msgstr "Django Admin" +msgstr "" #: netbox/templates/inc/user_menu.html:61 msgid "Log Out" @@ -14317,8 +14313,6 @@ msgstr "Tilføj virtuel disk" #: netbox/templates/virtualization/virtualmachine/render_config.html:70 msgid "No configuration template has been assigned for this virtual machine." msgstr "" -"Der er ikke tildelt nogen konfigurationsskabelon til denne virtuelle " -"maskine." #: netbox/templates/vpn/ikepolicy.html:10 #: netbox/templates/vpn/ipsecprofile.html:33 netbox/vpn/tables/crypto.py:166 @@ -15421,7 +15415,6 @@ msgid "" "{device} belongs to a different site ({device_site}) than the cluster " "({cluster_site})" msgstr "" -"{device} tilhører et andet sted ({device_site}) end klyngen ({cluster_site})" #: netbox/virtualization/forms/model_forms.py:192 msgid "Optionally pin this VM to a specific host device within the cluster" @@ -16151,7 +16144,7 @@ msgstr "trådløse links" #: netbox/wireless/models.py:236 msgid "Must specify a unit when setting a wireless distance" -msgstr "Skal angive en enhed, når du indstiller en trådløs afstand" +msgstr "" #: netbox/wireless/models.py:242 netbox/wireless/models.py:248 #, python-brace-format diff --git a/netbox/translations/de/LC_MESSAGES/django.mo b/netbox/translations/de/LC_MESSAGES/django.mo index aa2135609c1e4c4c6f2a435002584b79166c4203..69d6143e4385d332124ab03c512a9592715cf1fe 100644 GIT binary patch delta 66895 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 delta 67866 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 E53dY_5dZ)H diff --git a/netbox/translations/de/LC_MESSAGES/django.po b/netbox/translations/de/LC_MESSAGES/django.po index 5faf9b341..be453b8cf 100644 --- a/netbox/translations/de/LC_MESSAGES/django.po +++ b/netbox/translations/de/LC_MESSAGES/django.po @@ -5,13 +5,13 @@ # # Translators: # Martin R, 2024 -# Niklas, 2024 # fepilins, 2024 # Steffen, 2024 # haagehan, 2024 +# Jeremy Stretch, 2024 # Robin Reinhardt, 2024 -# Jeremy Stretch, 2025 # chbally, 2025 +# Niklas, 2025 # #, fuzzy msgid "" @@ -20,7 +20,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-01-04 05:02+0000\n" "PO-Revision-Date: 2023-10-30 17:48+0000\n" -"Last-Translator: chbally, 2025\n" +"Last-Translator: Niklas, 2025\n" "Language-Team: German (https://app.transifex.com/netbox-community/teams/178115/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1240,7 +1240,7 @@ msgstr "Transportnetzzuweisungen" #: netbox/circuits/models/circuits.py:240 msgid "termination" -msgstr "Abschlusspunkt" +msgstr "" #: netbox/circuits/models/circuits.py:257 msgid "port speed (Kbps)" @@ -1303,15 +1303,11 @@ msgstr "Transportnetzabschlusspunkte" msgid "" "A circuit termination must attach to either a site or a provider network." msgstr "" -"Ein Leitungsabschluss muss entweder an einen Standort oder an ein " -"Providernetzwerk angeschlossen werden." #: netbox/circuits/models/circuits.py:310 msgid "" "A circuit termination cannot attach to both a site and a provider network." msgstr "" -"Ein Leitungsabschluss kann nicht sowohl an einen Standort als auch an ein " -"Providernetzwerk angeschlossen werden." #: netbox/circuits/models/providers.py:22 #: netbox/circuits/models/providers.py:66 @@ -8438,8 +8434,7 @@ msgstr "Gewicht anzeigen" #: netbox/extras/models/customfields.py:173 msgid "Fields with higher weights appear lower in a form." -msgstr "" -"Felder mit höheren Gewichten werden in einem Formular niedriger angezeigt." +msgstr "Höher gewichtete Felder werden im Formular weiter unten angezeigt." #: netbox/extras/models/customfields.py:178 msgid "minimum value" @@ -9531,7 +9526,7 @@ msgstr "Dienst (ID)" #: netbox/ipam/filtersets.py:675 msgid "NAT inside IP address (ID)" -msgstr "NAT innerhalb der IP-Adresse (ID)" +msgstr "NAT inside IP-Adresse (ID)" #: netbox/ipam/filtersets.py:1043 netbox/ipam/forms/bulk_import.py:322 msgid "Assigned interface" @@ -9959,7 +9954,7 @@ msgstr "Ziel der Route" #: netbox/templates/ipam/aggregate.html:11 #: netbox/templates/ipam/prefix.html:38 msgid "Aggregate" -msgstr "Aggregat" +msgstr "Aggregieren" #: netbox/ipam/forms/model_forms.py:135 netbox/templates/ipam/asnrange.html:12 msgid "ASN Range" @@ -9967,7 +9962,7 @@ msgstr "ASN-Bereich" #: netbox/ipam/forms/model_forms.py:231 msgid "Site/VLAN Assignment" -msgstr "Standort-/VLAN-Zuweisung" +msgstr "" #: netbox/ipam/forms/model_forms.py:259 netbox/templates/ipam/iprange.html:10 msgid "IP Range" @@ -10095,9 +10090,7 @@ msgstr "ASN-Bereiche" #: netbox/ipam/models/asns.py:72 #, python-brace-format msgid "Starting ASN ({start}) must be lower than ending ASN ({end})." -msgstr "" -"ASN wird gestartet ({start}) muss niedriger sein als das Ende der ASN " -"({end})." +msgstr "Der ASN ({start}) muss niedriger sein als das letzte ASN ({end})." #: netbox/ipam/models/asns.py:104 msgid "Regional Internet Registry responsible for this AS number space" @@ -10171,7 +10164,7 @@ msgstr "Aggregat" #: netbox/ipam/models/ip.py:116 msgid "aggregates" -msgstr "Aggregate" +msgstr "aggregiert" #: netbox/ipam/models/ip.py:132 msgid "Cannot create aggregate with /0 mask." @@ -10227,7 +10220,8 @@ msgstr "ist ein Pool" #: netbox/ipam/models/ip.py:267 msgid "All IP addresses within this prefix are considered usable" msgstr "" -"Alle IP-Adressen innerhalb dieses Prefixes werden als nutzbar betrachtet" +"Alle IP-Adressen (inklusive Netzwerk- und Broadcast-Adresse) innerhalb " +"dieses Prefixes werden als nutzbar betrachtet" #: netbox/ipam/models/ip.py:270 netbox/ipam/models/ip.py:537 msgid "mark utilized" @@ -10503,7 +10497,7 @@ msgstr "einzigartigen Raum erzwingen" #: netbox/ipam/models/vrfs.py:43 msgid "Prevent duplicate prefixes/IP addresses within this VRF" -msgstr "Vermeiden Sie doppelte Präfixe/IP-Adressen in diesem VRF" +msgstr "Vermeiden Sie doppelte Präfixe/IP-Adressen in dieser VRF" #: netbox/ipam/models/vrfs.py:63 netbox/netbox/navigation/menu.py:186 #: netbox/netbox/navigation/menu.py:188 @@ -10524,7 +10518,7 @@ msgstr "Routenziele" #: netbox/ipam/tables/asn.py:52 msgid "ASDOT" -msgstr "ALS PUNKT" +msgstr "ASDOT" #: netbox/ipam/tables/asn.py:57 msgid "Site Count" @@ -11552,7 +11546,7 @@ msgstr "" #: netbox/netbox/registry.py:14 #, python-brace-format msgid "Invalid store: {key}" -msgstr "Ungültiger Shop: {key}" +msgstr "Ungültiger Store: {key}" #: netbox/netbox/registry.py:17 msgid "Cannot add stores to registry after initialization" @@ -12431,7 +12425,7 @@ msgstr "Warteschlange" #: netbox/templates/core/rq_task.html:65 msgid "Timeout" -msgstr "Auszeit" +msgstr "Timeout" #: netbox/templates/core/rq_task.html:69 msgid "Result TTL" @@ -12501,7 +12495,7 @@ msgstr "Anzahl fehlgeschlagener Jobs" #: netbox/templates/core/rq_worker.html:75 msgid "Total working time" -msgstr "Gesamtarbeitszeit" +msgstr "Gesamtlaufzeit" #: netbox/templates/core/rq_worker.html:76 msgid "seconds" @@ -12827,7 +12821,7 @@ msgstr "Fehler beim Rendern der Vorlage" #: netbox/templates/dcim/device/render_config.html:70 msgid "No configuration template has been assigned for this device." -msgstr "Diesem Gerät wurde keine Konfigurationsvorlage zugewiesen." +msgstr "" #: netbox/templates/dcim/device_edit.html:44 msgid "Parent Bay" @@ -14098,7 +14092,7 @@ msgstr "Hilfecenter" #: netbox/templates/inc/user_menu.html:41 msgid "Django Admin" -msgstr "Django-Administrator" +msgstr "" #: netbox/templates/inc/user_menu.html:61 msgid "Log Out" @@ -14513,7 +14507,6 @@ msgstr "Virtuelles Laufwerk hinzufügen" #: netbox/templates/virtualization/virtualmachine/render_config.html:70 msgid "No configuration template has been assigned for this virtual machine." msgstr "" -"Für diese virtuelle Maschine wurde keine Konfigurationsvorlage zugewiesen." #: netbox/templates/vpn/ikepolicy.html:10 #: netbox/templates/vpn/ipsecprofile.html:33 netbox/vpn/tables/crypto.py:166 @@ -14540,11 +14533,11 @@ msgstr "Secret anzeigen" #: netbox/vpn/forms/model_forms.py:316 netbox/vpn/forms/model_forms.py:352 #: netbox/vpn/tables/crypto.py:68 netbox/vpn/tables/crypto.py:134 msgid "Proposals" -msgstr "Vorschläge" +msgstr "Proposals" #: netbox/templates/vpn/ikeproposal.html:10 msgid "IKE Proposal" -msgstr "IKE-Vorschlag" +msgstr "IKE- Proposal" #: netbox/templates/vpn/ikeproposal.html:21 netbox/vpn/forms/bulk_edit.py:97 #: netbox/vpn/forms/bulk_import.py:145 netbox/vpn/forms/filtersets.py:101 @@ -14575,7 +14568,7 @@ msgstr "DH-Gruppe" #: netbox/templates/vpn/ipsecproposal.html:29 #: netbox/vpn/forms/bulk_edit.py:182 netbox/vpn/models/crypto.py:146 msgid "SA lifetime (seconds)" -msgstr "SA-Lebensdauer (Sekunden)" +msgstr "SA-Gültigkeitsdauer (Sekunden)" #: netbox/templates/vpn/ipsecpolicy.html:10 #: netbox/templates/vpn/ipsecprofile.html:66 netbox/vpn/tables/crypto.py:170 @@ -14660,7 +14653,7 @@ msgstr "Peer-Abschlusspunkt" #: netbox/templates/wireless/inc/authentication_attrs.html:12 msgid "Cipher" -msgstr "Chiffre" +msgstr "Verschlüsselungsalgorithmus" #: netbox/templates/wireless/inc/authentication_attrs.html:16 msgid "PSK" @@ -15638,8 +15631,6 @@ msgid "" "{device} belongs to a different site ({device_site}) than the cluster " "({cluster_site})" msgstr "" -"{device} gehört zu einer anderen Seite ({device_site}) als der Cluster " -"({cluster_site})" #: netbox/virtualization/forms/model_forms.py:192 msgid "Optionally pin this VM to a specific host device within the cluster" @@ -15977,7 +15968,7 @@ msgstr "SA-Lebendauer" #: netbox/wireless/forms/filtersets.py:64 #: netbox/wireless/forms/filtersets.py:98 msgid "Pre-shared key" -msgstr "Vorab geteilter Schlüssel (Pre-shared key)" +msgstr "Vorab geteilter Schlüssel (PSK)" #: netbox/vpn/forms/bulk_edit.py:237 netbox/vpn/forms/bulk_import.py:239 #: netbox/vpn/forms/filtersets.py:199 netbox/vpn/forms/model_forms.py:370 @@ -15993,7 +15984,7 @@ msgstr "IPSec-Richtlinie" #: netbox/vpn/forms/bulk_import.py:50 msgid "Tunnel encapsulation" -msgstr "Tunnelkapselung" +msgstr "Tunnel Encapsulation" #: netbox/vpn/forms/bulk_import.py:83 msgid "Operational role" @@ -16140,7 +16131,7 @@ msgstr "Vorschläge" #: netbox/vpn/models/crypto.py:91 netbox/wireless/models.py:39 msgid "pre-shared key" -msgstr "vorab geteilter Schlüssel" +msgstr "vorab geteilter Schlüssel (PSK)" #: netbox/vpn/models/crypto.py:105 msgid "IKE policies" @@ -16273,7 +16264,7 @@ msgstr "SA-Lebensdauer" #: netbox/vpn/tables/crypto.py:71 msgid "Pre-shared Key" -msgstr "Vorab geteilter Schlüssel" +msgstr "Vorab geteilter Schlüssel (PSK)" #: netbox/vpn/tables/crypto.py:103 msgid "SA Lifetime (Seconds)" @@ -16390,7 +16381,6 @@ msgstr "Funkverbindungen" #: netbox/wireless/models.py:236 msgid "Must specify a unit when setting a wireless distance" msgstr "" -"Beim Einstellen einer Funkreichweite muss eine Einheit angegeben werden" #: netbox/wireless/models.py:242 netbox/wireless/models.py:248 #, python-brace-format diff --git a/netbox/translations/es/LC_MESSAGES/django.mo b/netbox/translations/es/LC_MESSAGES/django.mo index 34276d7000868fcbb655f738f36e8594be1705f0..29c90fab3934d7f8281867a1fb519397c2c2d640 100644 GIT binary patch delta 66628 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 az{%i+83W$74-N_nco;JH%EEwQA^#5vPzGcG delta 67644 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 z zf;!PwP=ybIBDfCf?e-CbqjX@O%0yVKvP_H9fK;0vUL0ziTpbmBo z)Ioj$bxHh(=pN(w&w!%DVxX>N4NxyUtwG&n5oR9^>Qc-Hb&{=MWAF;7ljj`j#Mc1z z*tG&R$zV{83#vZWtH?oB--+m#r3TeN4p0Xu2r8}&sB2vh)C*QS!(dRCxErVg4F=Wdgb|F)b4@X5BwInf zIh+7>lbi#U_zcuZK7(p7H zAgD=B19kJQ1~sYuU>rUFCsA~_Uj#MktDqWr3aaCepc;ui&he)LHOgF|8Z8OxQq(qk zLr@2552~>NpcSANbNvPs3WMG zC=zS|P62f(o`9OfKcFTWW1_wTtUQ>5eJ4;aJQF~jd?ly@?f`Y5L!b`m zzF+~jL7n6|r~)6&o^+~nvjl?j=K|GG2~Z=h2 z4{QOs8Qrdvj^eriD&aaP;`_FL3+e=agBoFiY0kvbgE~P@P5>+1~uUU zpyEe?n!q$Lv7Z0sC`#B4YDC9D6}$}U#1G8=+V+2gy1U~~cTSoF)MJ$j)Loqk)Xh}} z%mubK`$$j+SORKdTR_jRtvZaN(VVh?d!R=68dL-C4P(x5E=_V!*ETPxMyr83Q4>%T z2)2DcQ1{F@Pz7gzI_N4;jqCy4A~=Pj(Od^r@DV7YKR_kKoay+}f+~~))HN&#Y7&h= zO`tibOVQ5kT|njc0L3>P)TNjOs@~F>JpXcR#Gug~1l92kP>nnUmGC>L=k_nNr=I0Z zAP1gK)zW&>Z$;`!I(l61BcPzqE+BT#p3S5PM# z4eDf*K}~Fq;c8F~?*bKf5LCm*&3@7Lw?MrPJORc32~>kg-E*7~Wdk*m(x8Z{gBo=` zPzmiob>0WmwVMoTw2MK-?Ev+Y$!0jRibpf1H>+h4N%15gdU1r`6r>?!AYCcx)E6cLsI zMNkD)15M4|7F2^FX73B?L~c-oQ$Wu(2G!_3Pz8^Hn$QJMjXws}=yOnfpTSsq{u9i1 z8b}W6`A-KbAr~mZ0-zE~foiZ8sB6~-RHI>_3iY%7B=gS(^%$=M#k&>MO}!t~r9KTh zzqSrV1@3|(dJXDCF&8)uqz84P9H9J#&0Yi4P1Vrs!Jy&>fSTwiP=zOfYGgjB2`n@J zHqh;d;X5w(kyV za#5fj_pu9k{?+LU3?keB>Mq|8ir@;Uk=+6HF83VNrAfHR@h1m$FQfYn%GiMb$2e}`IoW}g9;u6)$tin#1}!G=pLxJPoN0>7dt0T4(f#^52yoF z1$Dw^pbB*bb(0P@oB`?*t^=!p2izztP+Uu#zvZq33$lF*mH<;Nbw1732TQRZ3>E;t z1r_%Q3z?|S+FpJ** zW3O>em<&ok1c?(}{T}z~-AJ4y}p)Nl1H3fH5WG`gtAegQP6={IpgcaW!I%LR4 z0oPZo&&2hHcni55b%!E}tO34N+%?4bW$%tYlei1oSbZ128uvfsG`p%a(I4E$vzP-+ zM*-fEJ(9zR@C9~BQfu~WVp?JQg}gH6<5zCG#^V3pVmfkwmQ2CD^1ljCB;h)Vf9Vo{ zG1)&r_q>qM(0_~W`fM~e&@L1HEdrm?Qtsry*dUu@K?t+88Hc@kF6`5+$O|Su<<6fL&(<&-$EbmuU+)~xz8CHbD1r>xBAw^YDKMiGAzzU-`maLi@z z&QG-)82UrdibTmlRvhe?ZLE1Hc7d21BxIw>HD>n&^G6j^=8&%s7!z1Wh%HE7MR>=s zpGn>U{KaT$3%;)4bN%~EGXnl#bJk9oh(b#VmNX+_pU)|}5qpnhUpa$qE~oJ$wjR0n zh+j(cX*5QpCA_JO?;MSnBhD*d$7BBb5@;5Jf*{HVrl!CjBy?rzGr)BGUU^H5S9aqs z%_@v-mrs*?L~!+BeXzhBG#5r;e*DullLoutn@xN;dF|a8FIuOI>1-W=Z%O!(AXL{f z3N&T^8@Q3=ci4tnvD)NDqVG|lk9?OIu64)NuUbZ7P#soHzn%2}7_)25j1ZRl(5|hWr0oOb@E0OmJF3Adg z|NR7b7i6I(J1Ib8Ch<`i&Ox9!u zFxswt5%i7dGt4)hf@N7{;HqJ#&Trg)*eh9{r+y5GKVd9P;C_mpVBa51N>g!ZBqPN) zk~|pyBk&sjeCRPC`Apn1^o8Uq0oYtqwWsntzEE)O7XrdiWJ!joxzmRwdKb7tJ$C{sn zF9yDs;6(CXX#VlpoX1#@z+rUSiQxT~umjTl1a8BA-=}a&;$PvbKy!aH_D{s5vw|y# ztqa#Nd|ToF6Mji)Vp8Kv!@encGjz}OZwYY}WG^6^h_gAxSFoBB6im=yib?)P@2x3d zug@xI#PS`o>D`2@6MA7*1n~`slVpHjQUaS~mSgwScl~5Rj*EW*LpcV)_pFR09HN09 z6dMN)r%6di_N^dYh<@2lE_+cL*bLtp@_uK36^_An31i{=ii1tICjNc??%B9SFjs#d zs|aca@hg1$NxTVB5eiO4m+YXKT-ZiZtR79>C2k!#L#)B$tIf!8}gkHITt*Ld|65}}hZHRrWMC2rkue5vQYb&bFKse4}&*Ec~y$Nds zP5o>&=D_V9Mo<+DNsMSd0nh1nJI=MNtcpi(mI9)Mp z{fM23ZM&U5nmRFAUCECNcXNII_k0Heoh>G)5XL_^^+gir+cj&0z7w0|DQgLFKj529 zft~12ERL@$xoV-01~=n-X*qM@{0)0E4)KMxhX&r_dxUM6{{B~m0(UsI**l#2@6U$wVVs(uy55+E_=OD12*pYBM$qx`6w#G8i$X4`*6yJkAKSaH(a6R^t z@%XloTbbs*v&PrrduDoWC*JLviXnhi1d_uf^dmWzH56o+kz#q#2jlyR%OF{e?JR`9 zk(Y|Rm2ix(Y0a^`S=R6_d+~?M05`F!x6+sE;CJdt4bln>Kimn@CZ%Wc4bV(xY ziAjvZei;R-A7&S9UC+}bQjZ`N53ky;yF|5bF?kQ3y@ zSdD~m$g-lBKwpdRopoCVf}6yhRUURta2WgJ*ke$58ifj=uOu%Gcngkw*y<3Q1J0$y zZzV1oTRxV={h7e#ki=mvCa?sozoYLaAs)ett+;{{JJ(FAE2ZhDnL>7AX2B!5Lh)_n zOA?Tum;D>|9ju`2392FSS0+z#9-K;ke)R9ab>!a1c9n)Vvj!3Cng6dw5D(%oOk-`|gC-=|4HH80 zJ-VMY+YZ9z5T+nL3Ao6bRnANFT3}HMT_h(Xt1IyPmsLYq_3-&a%vV-j9pK;}P+h0U4~6F@Qtv;e57D{ zxE^7<2G4r9CGIMgFv;1w{-D?Zk`@pg(|oZ=_R1jiJ0$5 z*?T1)N*^Zsl{FGh+~08IXQk!eA6&0QXeZP6eP@H9Jmm8ss{#2=lKCH)Tq}vYNnD^h zXMKxbvH?9eIe&m{$Zt%{3--Oq*~R_=T*=7gU))?vu<;*lxbj)9=lTB`=L3k!+i5?r zmvkWTYimsV%GhJjeKJlrMNJ^d%wLxx2Oxb3M|J#%IPFLF?}EYH1OUgW9hE- zZb%2=OinRLB|JY^kRQHCYpMzQDD=hnIujQJ`7UBNL3*0p;@A@rBgqM0UdyXY%vhQp z!2U1C&HsYH{ex`>%bn1SB}i_Eqcgl(NZ3KpK`Wq%)?h8Ppo`XkH+dpWO0E$9ng(9e zXm=}kk-emYYepKY3Lsqx?P1NB{FA)2GR*`x|&2dtTYjJPCSoi_5U#FmA$E^8A0 z($>&=@^7=QVt~C2tmMRhL%!(0I-Q2CBmRYU zv;9bc;pnBTa9`plvR?=J5;!8Qm^hbVYiyI$z6-g&;;st$bvxw_^a_xTrsD{7Nq34I z_Gu^*`>(`b0)MB_1Z%z}g<4}f4u*rH@U^AzHx7;G&vG>Rfd+cwn?&3}U4O4!fhZ{n z0}1*XXCOV$G$EG z^;1I_mt_8nACL4W=su0S!Zwg@`?4-uL4WMI(N94*lf3w5ziBw#IAT(4Ecx+$?)okq zq&NA8@r`1YpiVA5|C@36N+w9E*>$Q<;AF_>l9-Hy=@h<9@F(ydHc5R4TtkW5i+&Q{ zJ9tl;_G(&FSl zs{2<`*okIQ;F6stHbiTQox*8mTjV=zkBKQo?ik{hf}`OYivAOadHydWUwWnCCGeJ2 z(Qqs93jGNQr64Ixa0bYSW6SF^nZ}$ZC&X7E?dxM-W#oTSXdHTe{AJ+rN-4Ouk~;vy zRP^QWKBKPZ{HrjGV-?1*-Ar)vZ84eZmF>wW1|KP93$tsZZhQiq(K8G!lPeaNX%YHd=>UTB%7U=be-GF@wwv77v{~H`X zS`j6!C7_`c+-Ycys{D@ddBlHLOM#A+gIafGk6zdYcb8w%a>2)k$ z$xKeiqY#H$*Xby5jiloc>EHN$Wi2E@kT(JcQ{WuQ`B;)y*u8QRu5a*{f#VzeU&o)B z`I_gyxju^3D@p9QiHR=H5dw{2D_DRoI?~k(VkWXi(RLM>BI&HARV;5EH^e6So18J| z+wF+8sJ;?C0^1Vm+GEa#cnHsvu)-QxLqWd1&Xvk%HvQP2VM$WaTpo(Xqu>Pevyi1H zb|1v6$ZZ18TUKRat5WnU>_=!ua*nuP*mu;g8F@rdLP$>=u>#^i_%$T)SnVKwOQ9Cn z^&KK!Nefwh;!3e3IUwx@X+9bXMK7lbszKtC(14^OTvr^`{^b0(DbkwaDF_;1rdy3zt zsm1ux!E@Xvzd5$6#FR5zLi{ypoc}@76-ys;C95einBu`0CB>M^cN86lEjG#Dftzho z8?j4P5c?L~!ODfLK25X*Pg39vt2Xi3@g=ar3#joMO=bcmg@{e0FIU!td<%v@z%!6G z0{2qXE7?ezVI-?bno0Lw2|`K1&AAlPFXY~(Xl-KBvev^rlBUjC){xP z-MtdxzDD>10dXPfP6Lvd5HvgtxGrQ&EcTWIqaDaboA& zNxPuGVcllm&KlpqevokoneC?P2N0AAV#!(b&JZuLeG2w`OSDHGV)L`a>Nc?)>|f)} zVD`~8mc=gBL3lco--mraCM!8k12f3|i*<*bZ}iuk81~{)2V++VDzR!(bOFgd2>Ovz zN{$+FIQne#A1P1`^aIlo6KqYrCfA=rrlP|>7(27~m0$>$;qyvqllhsME{_FkE1Ptp=KLSOkeCnxIF7wg;_7~ z{R8O|;v|2Oqc53fXTJlyNdZYZ>@&e3;5&GF;UCCaV|kwEZymwySbst|g43Rapg5Eu?0 z@3~(8f5Z6_=SB-Y&t9_1hjbFYp(I=)u_0?Vz9YosBz7Ozh=Na;R4$*K$~KL16fJ>% zkJvlJ{D)}%bs>zTfx=)nib%$ydu2Iet_H!M5Y*;WF~ACt#vx}6zGGkl@@C*`0KUZL zmGwRi$#w?6e&>$l6+U+=+bqSg2E8K2jFnXVh>U1w)r2zdB~dozyVj#Sbn%?nXRSX|0O9%>W}jz*oN-(z97j; zQews$8=G#T=2lVU|f6f{O*J$vzjlK%}h1l0;x${~l5d_^e z!d%vrQ#)VPwUZVD$G~-vB0GKZnWTT_{szMh8_i}C22jM0k(afG^kWU*)8HwJ9W&c_a`qb02IAAu+#f!tCdHK- zdw*62ivL007-BZTpURq2Ob)$f@1pn!oRUH8pRn54cxB5(;h$+B88L~>zS=N=0+MPJ zxsRR&ETG2l|HeLyrgm7Xo08DtURtiq zdLhfmz9a=|lXss(`7^~NG#`LH0(&)LCQ$U5UAEr3{%4G&G}xJ>d367mo$3@xV>$V3 zPW}(J8y4HcF4qoh6)jdx9D@8k`IGPmSj==eOe$I7P#P=)ucz(O7?*IO24I9;)0q&( zXFm{)PgS2{y*55sv*pOTTrBGxOdh@DNrPOJ>*%OHMioQjD}?i%t6;rr2= z-a`YDrYv1H*L_YQsRc=h6)y?NZT8#P_lBe>6YWVxC~{N!}WK zG00s)(aSUth@KaM9_VlF^laU(79<>|SYeFcSZBK^C`rn`4rGha3lsN&xF}Wu$mS5A z1APmGhly*;+D!v@iQR^6J9+6@F^RcjeD7#xJ23;uO^44+D33?@r#NYAX1}kFx3E~YDUQT=u2+LB$pM4hc9$1q{ zi9Z2HSL{{MbAjKHSDW}UG`ZaPbLz(&23S&70{21sks?DNlZ;@UCwVg%L<8Rw8&2{k z)(_~pDBgfP$tExlb*F9_x(Obab-o;6$*a^M^ z{n^JOXu1{n+EB&f@#0ef-+0JV*@S*a-%CUDS=oqfioFkdPYRT^=8BQ~mbeh?N$r5` z@SW7_e`69dvRO^>uAKN6x*JRp$tvvUA^m~9KmK-(+4JWXPP`k^N)R5x@}9U%#Ajyz zh5ZVA-(u^;lFWtsEo(CMim`qt)-(U19)*)ZI0J{TOd~l34fP^Xl7;;{PO*$NnY^)% z*;NJqN^Hr&mu3^(r|GwFw#A+u+)GoFsZ$7j3%2xn{<{<8m9;jWsuUeUaDAJE*Dp*- z6UG0_{wqA+!t*oak7%S9G4t3@ha-a>FcY>Yc!S|6Wi>tbUmiPkS;ImEE@DZlW2+zV+SoxaVr9ZFqJ^A#tb z55aJPeu1zJ*xaV^8NzWSO727CmCq2hB{qyaH?doZIfnBwP0RpC!_gkBjbBod_@u<| zC3YaO2lUUJCkd*=lC%V`&}|dz{0D-6LvMwzm&N3SBnJ9by99&r?_}K~rV}d^UpyL^ zk8Kl$r(s*gA#1RT!B?IAFk+%ONDFoSJA{(H7)P=S;OJvx36Hl-Z9&nzkR-LKREK!3B?LgW+JeW~Y0nU!gktU32h(H}@fFb%m; zf(Ej}=auB9?7%;dRfycgH0CJm?TU7!qJD-o}kXyzM_E;8o5Job{ZK<ZRN z(?BiuC)rD$qCY2Z06C4xO^JSynBVYcCf6%n;A%?#aALM$%;NFc^{;@#?bG!@pTs&e z;+1ERXQI$Cib@{hiv)kgHirTmD7sJ0Foi%ko)DLhRn`;DQ-eQ0%}Mf*b6EB7Vt7x` zPv#f~k>o4^1*}k7$nu(fDI^W>w`LzoA+Ho6_8r9~J@6f4CF4-3EM`0>m&E0sTMFMC z*1z}v5sC#6aF>Jwoa(71buyfQ{}&3+VjcD=x(>oAtOoeK@&%qBAU{e2-(ar{=QVOZ z`Q&}3(YmT%hGIME{4$1hU^xm5BVn@-p_h0O_OlT8!BCsE6vB=adx?FTPkc^nzEU0T z4{8SfGGIC;P#xWK{)#l=z>7<06c1^+7EFc z`#rWliQbg_62whr63wueCPvZ&j(q5=j6Ws5VAg1HBcAJ@27*)0-W5V&NgKM}4A}?^ z+-COqoMaV*HCR8BR~J0OL=vH2XKF_&R0x}7mgP$CPtl&l{7B3NuqcS+b^S$9QS0t3 zL37csQ8+22IUp(uIugCx&o6TfcW6YXKA};8Q6UjML&JiiLc_xXI|YS>g+~PjMMVX5 z>KYgo9@sHFs%v0SU}R`iNMKM{Flw)e@V=qJArXOLAyNIpBf1xGRSxX*zfkq;6X{D7 z5*pQ&B%=yPOZq>kqA$ht8&NA}N@$peC3^L2zkbD%6l`9%a{a){o^m}y!lI&6o%XxY zJl_AEX!NT<|06MCd8!YYJK>67rh-l@?KRRNx#=z_j6XsGJM~~-OeohN(<~x-b9Vpi z@!fWnI)xtH8OCY6BM%P@3lHqoCq$O;u#iqsK@pK5feeak7ZlhhOjj;cXYT3jg90NM z3(>laAtAxx5h0NUT+PCQytl#sED#*hF(j~%54#WV|C==WOdLi4PvE z?!UcE+-f0_J!vkaM|9LM|N9A3d9F2AHX?{t)K|4`L1A6Oqnl3gKUUVSZgkqy{;$58 z+xnh={Iq>&(r$v#pg``}9!Hn=>=+T+DQNECd;a;OQ{MM)7Bg9pt~_LcVWDANl+tT% z`AGk?MFV>UMFa(gFk+GP3fElvhI?)Z2G%u*d***ljG@H2`|1Rwi4J<=e?E2sPGGYL z4v*%yy1qyot7A~d@W`O(f^h@R#f=%+qfeLIbL%7zC>vcdc|h%y=AAn^SHP(>l|4oN zow4WQcI39m=6l|%#swTn=&hsXvs?v4N1{5l7>xah@@c^ z4OuPY{eJIr-hV#VIoEZa^E$B;M@r*RQx&YYGQhp%93ERiKGQ4WVbvAJuOk4^1$fRSfBD1?2TD+q$TR&%~%Vc z!A7_P+u-Gwg#de?<@soUN3k9LhE=g{PBKaVi95Z(d1!+>qM0raBfK7+f`QS;V*N^N zM*Vl_RAgL{mMDe&(5ZR^P4!I7flp%=T!@))2_~JR*Wv>!qwCNHHpTLuSU!N6sXvB! z@mIVOFJd7qkSi@w1gl^{?1YZ|cDw>dple_}+VAvSX~|TCv*QELV{UG|5`8~DxEXC| zH`>rQ(WB^EIfITgkvn8EJNkS*bfitu_gZ3p?1uU9_T0(Pz&I*wXbQ3_6SL6~zKD)w zWh`$;Gjk9P^q1&ASd4OxJfWQm=>0lqd#%xt_l)I%XaJ* z)}KWK%aS+TzZ!kNG@8~nO)-=M4c5PA;$f@Um#{{%(9!S5Ti|!QOjhCWjrq}~Xo}y84}OGpuruEO7R}rdbfo{HYa~>{!qjUE@denZ3zPKMRVPs#Si|}~#JhDF%xr&7j%AzA|j0V^_+Ar1*MNi5H(A7N$ zeSZNufDh33Kf_Y^RVXJD|8e0+a~2OT7LAriS9>i?jRaF4D(HxAM>8@GeScQGzc|*f zL!bL1mXD&(oku?#@|1Axu>Y>+!U(TLKTgYHFC2;n@Cllk9q7ovM>F;t+E9AQuqbn& z9p*)!FNsc3?O5L$UA%qJ#eS>0{~zbVeg7`n;A-rT8_>m7tW;R-<)c;6RbLwos6P5! zTQuOVSP%Q6fj)yizYJ~vE%d$jG3mv|c;n0Hx7e8apQ6P}hedZQIbKF3 zzC;8030;IgqwSwY-@g7vG>Al&Kuf=9{oG z<)^R=ejGiH9vu0qgh1M&?~O+@wgOH02k2COhGu3DnyCY5CJ!O!K{D|>7p~Ha=-24{ zRYS_VqA&Kr{5S|};{Ead8|Y$u2c7#(=x51S=x4`oXa>qu3-9+rGcgoBh+f2O?*F&A za0DNq9sPzzm{vV3rpwWh#pBTc7vTV0gM-}v z*VYJU_C&mi@o^HI_!T(QjH2n+5&yyMzrBO&=K5=j$kU<@H}*iUPU{88x3qVy7)ed_5a5D^txd& zX2-7FuZw;mc`V6=4ID)q{2e`j{z4Z|_Ul7H1<-9*0#m7v^~2FjjE_!17v(IporP$? zZ^irT(SdG32bw$>FMdN8(RuXjuT(EQFdSVI$vtB1DV40F5xJ9ClhIC>8{@~LRUPe&KW`nS;rHbi&E``^a$FR^?snz>PE zCm)*O3^cGBn6#lb@qr#_Y6hYK-HR^D>FBDSjV`wBXiC3EM|2Dg^bfSX3+URotZ`^B zFS?COU?r@N?v^_nv;Tc?Bo#(925sOmbgrI7J6IIUucIBki)QFkG{7%n{Q>m7nwc_dmfZly{*YUWumR zL#8qMn~;0ajLt#dUxI!WTZO5EEXhSW73kLx7R$S$`_RCCLSOt74fwC(^Z|J#kKGt8}G6Yxv4WLx2%>JvvMNukRpo?M?v~41g^%STXt@bi#qQ{~n~biNXVCyQ;~nn*uemVN#;wDm>5Qgs1UhFgVoQ7t z-G(R8xi8-)yjKk!c~dmNw&<74K3EIy#|&H^{T$8kNlbe29~Y)9Yuk{@E767uM=PSw zHAJVV4Yt7UvHTnw(95yB3?1S7=m0iGKS$g725sk1TlT-H{euckYZq?hM;BvJG?0pD zgAL>T_VIo%w825x1V_gEEAVd0YtfWfZXepa8J(J;XaLFf?EjKnJVr$cToG@4iFW)0 zI(L7@`pg|deIB%-V(9%^=r^D?=s<2k2XGG>_yoKaXQJEgPjt%uOLAc^T#lx8ZM^>(y1jPA@~`Nk{tMk*S9b~>UyEj}G`g0O)wnQ{q39a8 z2Rq}#SPJ)`+w5<&!`hug0FBY-JEDuTFWS*dXeO7U0dGTp(Aa~%pX-K@nX8e2lZldC z7*UgWqdod!Z*&**NB8|~bTx0n3U~o~V!1A%;R)zDFdhA6(-UYw+tG~eM*I054dghc zzW<-*B7=(m&|i&Q+ck7h2Yq26+VF^2KN|h z9GdAT(SV-A0`C8%Uf^1^;oa!(11|3#I?jWp`YLqJN?|YTkL~b1bWx@E2nW;UXvT`8 z?e;=D9u^&qW?(!f-{)d77uB#)&+s$fU1$RfqFPFH7}#>oJTWI?Zz;mHkd)V(~azZQ#6taBb|zFqZiPK-$B>Hx_JLnG}ZgiZFfA@ zUqFxKe0{?j*InE`mq1K@gx<_@%;F}A~dCMq5*vn-Gc^t0u3;6 zQwT6SIz_qBqr3l;Q`86C*=vD^}E?*=q81JEfLgFZI{-5ts2xNtH2FWy*+rhFyZ@oIF6wxJ_Fgl6gl z`rM!B`+rB%`i1gkXb1VR5*9??YlQ~TA(WGe-ds4co3T6&L+9)nbpOAEHuM!b^8IK7 zzr^xcG!vO`4vVlF+R*^?2)+%g;62y^7opqsXPoZO|5f^jk$r%!)(z;0&Y}DG61v#( z4hVsj#Nw2zpbdA$y7({}*c$ZtP3R)rk7nv`bfA~e0I#@(=iUGLxp2fqt-$iJTpRt6 zX&UQ$pbgxDPQ^$xGxwqIk4G2nRJ;bCMCbl>bU+)>HL*3iACso;I2Rr`SKk^UEsR4b z7mwu`=q{LpM*apG=t{J~^=KfU$NOK#^8Q%<9u4paIwdEg7jBK8|CbF65nhWvSSnf- z{qU%dj_f`(l@rm9r=cA`i%!*iG_W_(j@HEb&9Qzz`utHeBPRwX!;5FAaJ6S06ucTu zby+lpwb2ebpqaQC4d6aZZC`Y%o<`^VwRnFsy6wI}-~S`lrwtCDHF=X<__RT`h3f1Pc#F!$MRTo z+dhhZsxC}&QJIVP|;W*ZqkWV)dpKZ17r82a3^=ty5eJAMmI^~cejXovf; zDxO3aU$MJF29hZWoTjU(q#o`>2%3#7r)1=pD?!y=cdOV;!t?Pgvc9(T-4&C#7Pi0*=#*t08#0{-bNTsSoC_nYhIY^rUFChEL(mt; zp>sb8ouVgW`T2N%DVplHVtEI;7WT&aL+JaL&|Px*IQGAbrw|uzhjP)H=wfS(?(f#< zZs>^Ru`8~_2hl+4KMj2J|WEEdUR@bqZ#}b?dWK{e%7?>qh0*uQpi@=> zZ8upnRy0N)HOsSZGm>w0o?_CV*N;Ts_sLdpM;L|F?7!7U`Ko&&FIh3 zGgy*xVruBG6ef+N92Z(6-e`!XzA3t>TA_>dMy!BC(39A^zifm0dH zKnpZeH^g!;wBLc#+0S0wO@$dqq9d7(HasVm7o*R;8SB@@`W1Kxta?j--vef9XbUkV)?4aLw!jsLw$Ahhs!?b$v7ID;CpDp zf1?3h#EO_{MmPtmqWAlt86JQPAek7-g^`RxQ}R%J;E7oOJQ~=N=&D%%F`CMqXoKIP zQ+71oKZiF`PM;at?~As72f9|q;uY@y8C;msd1!-+(5YB~ru^gRZZw5IpwAyi8$5*` zFqxhRyQKm8US~8zH^=geSfBC=bjp9lVSfJSo)x|@jK`Xk-^40-7^`7{CqoKbp`TuN zq2G*_U{ySbl`!}0@UhzvJ!qz)_t&5q{1x40|DprEh^fE-lk=%iaSi%lX*88J(UG=5 z7h?x>WVfT|!WeX}r=#0#Ci)q$IF{Ft^^=N>5(19Mua`-ngHOWNr=fbM3 zi2kNx3|7V`(2hSu=V~k3z-~0)@1wt?&s~W3b37l)S4T^r0aiiZYY=UZ<=p>$xbX9R z657y0bo(ts=k5Ud;uZ5kL)W6^a_H`;i|*?t=;9k6>nEdu&p_LqgRY&0cpH9<9o+xr zUI-nH!Rsk6#ew)Ex+YrA4?p4Dfu?*Znu%p-0IShe{xP}+wxd(=9l8ciq8;b?U-)8E z9i75%m~76)&0Oe9Xv9a+Mfe*!qVxq}9*52J|~R;=iJ43&S~(6U|WWST2B0RY5esGO=7E z+H7GmMAC%{Q`Q$ynmo6$x0B|0Vh(1Dyl z7wc*C{qyJ|&h|=Z_iC(6|A`V@)WWV<1E-4>V;H%Mr zltw#hgZ@<98=a#2&_EwW7xxpGG}7m|u;CXmwW`qu-bWwYj4r}GXl5>vSu4tfx z(T0bib3Y30U=q4^o_;0q8q0s94P<^J1ezCZs0`Xc zEp#n3Mce6$PF+9rTo{f%HxUhd272%;MEgmu=E4`YqjP&8dLsI7yq{xvXy_XBL@O1` zEzwMLK|Ab?1~?3DZ(J--M^pX`_Qr)+*8Tqv7d}}0&G4wS1$0D&@0u87#I#mth{Z{Be+M@yWKnHM3^bRzWBUiHjeK1Ld9ZW~db7J{_XaldJ z9le9T_$hY6FVW{qtP1xlp;OZUeXe6H_rpGvN5uLqcq`?7tJwb@xeeY4zuCA8{Sx{D z+VDGQir1st=QH$3{U+A`g?@Zrz)E<{yCIXUu_oo4u{1t~wznG1;HS|oNiH1u&iKGS zw4+0@{#>k2doTQcFlV$G`rKIb{m0Qo`V2bPFQXZF8#D0ZSbqqe+LLHN$unH|;6-$# zx!wJAn)RbxCLFD(>@6A??Ue%K&S8z^qjbe^qWlN zTOB$mj&75x*aTZ)1DuM!@F_lt-{Ac?WKGNzy134vslI>?sN~xCnSf@bE80$fbYS;j zc|ZS?TvVpwwdg*qLOJ`o&~RO}!N%x^OlNep4@WaICf=WfrgRRvo&SgBa3vbxcWA~A zqf_>)W%vJIT-e|xtcck^3`cA&Y)-icX5e#J5?7-m_#Pe633P;)&~`3gAExq3H1NV` zU=`2+YN6*tLrneo-@tfd1p305Se_D{iH`JXboDMq8+;WFWF@9{Nxc6V8rW7eu!HFP zC$Jv=gB7smN9_L=TnzXqjQnM^;XP=I4xkYqi~fOj_!qj*Gi?ZKrT|)B9<8q(>s!bA ze(3Lt??eNgf)3>I4au+_o}|LnITvkUarB+|;6`*6Z$mpeh>q+yI=3_pbSGc(DB4J<(Cn8eli{ zVCo-z0A1wIpaa>66)?Gv3%|={`81^ZI<%ouXkZo5%+!nJw$Wbbhz6q#j*R7p(f1!m z7vodtqJ9A#$QCSvXOJ%<$;7pvg$HY+FE+;Z*b48#+33e?){S9T6vS4P>!KM-Vl#Xc zP3ey4!RQ}opovXkTVIBj>tR;+e+w=gY5VAn=-l3pF22#RJRa?EIy&MxXopMD0N;=0 zt?0 zZge5~-0QLY9=iHJMl-f&OZ@r&FcqfqB-%mR)(}8Wbk!F`11S>gOQ6qHjrH}=0W?Mf zYK?Z>3GJ{C+RhNPTVedk8Q) zTD}sU^TM%QGTtwb22=;_uo3!PEA+k2NiLkr9`S*Ju{;!A6JyaIHm9K(+8FQe#io>x zU==L0BmQuTewBL^&A^LjM{l4XN-NP1vCU{e$)j8t;qPdQ&&C`7q5-7u4F4!CFZ$eY zH1(s=z#l>zdK~RwPAtEQKKB+H_!{*6?dWI27g){xe~b$|zUK4rlSvV*O1Umpz&p|V zbI}H$M;ls7a`DM=!h%Favdy7xdl3}CH~~qTel(IerK?I-(EG#1gmyjr2=2Wq)B$Ecau0ZUT0o z{1T4DKd>wI|0(<_`rGK&^s5hrp9f~4Q}#_Pmpq*M+cwF>FfM#>0}jG^N5X$VXaPC} zS&oLa&>HJgo`{Wc9o~T#(C-Pi9Sf^_KQ^J9_?bUmgQn;dEJqjfUUWdmv8wz3+FwEd z9dRNzHlitNb3CMQDz>8h7IwkE(M+^E5&osbi@2EbpLhd4{cAXak6~xZ7tw>N({JH` z8;TymlQH$*|5?PvD4Ll?=o}uwPFU{Gw8Wiw zKe~;7LbuuP==MGxy?~xG*-o+lJqmMk;fZ%8=EjUzu8Q8TkD0J(tZ#{)4>zC((#_GK zn2YlLXsV~8?>~>WyAVBTSD@cHKRd<#&*0)aDzf86G~#Th!wGmfI+FZohegp2E5&j> zbYyMN4!fcU(_pltvFP(NF)z-G_us%glsBAChE(jK!j$Ys1NaGz_*nEWY(hEPnGk53 zXcu%b^}!nWI2!OrXhyfk^4?fJgl6)0bPb$J#)>>=!;J#yhzepiERG{_3|7LUSPl!E z3u~Yey8kEOD0~NfuIyhSke+BDx1#S2M?YJhK?j)p9~Y)(IXZ%m&;#ZS`bDDD-@yjx zFAlq*--L#vbNdKp;B-tKL|BIM_vot6_D>jTNi#xLC6M z7e-bHD^jkCuF`(!nz$F8nsI0YlhD;Z3+-S58o&zlxpnA=&!%`k{d`*DAIkaBz^}MK z2I)U>6&E&mEt>MO_z*V6bo?;h-w@pq-4{KAHuxuc9{h_ApwYz;_)v7w-G#1&(dd`n zBqkl%2V5BOhiD+1(Z%s4`oiH@{|B1V|Im?Vx)eIjhdx&rT^ps*b{e23Wg9fZ3*!A% z=-SzOiT&^5+eL+Q_!HW}Ni=}J(firSLw+oT-mi>~sCKkov=N$#X6S(0qXX=LzTXE8 zbObtOV-v}6@o21=hgG<-42|#r`s4LaSQ-CA*F^cW^we%>hNUU@#SDA|yWnDU^`DFN z`P0)=i?$|Kr@lKH*wiE!j_7f8#B<_}#j*SMjLt_tKwVe$@UYv`0`{8_lu&L zs2y#D2GRw0)6l_dNyax78)*zejlh9%R{j`<$KT( zE;7+;-Bl%WvHyLc z5)}qeH$Kn+%}5Khfo^DO`=cYc18rao`rHI`Ej)pqfUlq(eu$=iH+qmAK{NbUEN4&V z4mS#+tG^=JK?AhIc4$Z4&=K~F^@GrchNE-+5Srr0qEDjlJ%bMLMRXv`&_Lct159q^ z!iK*?8#;^z@F%)&FQE-wohPKOc(goPUmbnEA)1Nym^y0FsT+Z|`w05nEOcQ1L)J(# zu{7Rz6K!A}`oi{DzYl%k7&^j}=;AsT>o1}s$(A>axDXmxNpxUU&~|I18EzTvfvG?L z9~>*jq$>F3FxucVXdthlbNU{7Ania$au^-yDfFz*nlGFiCD4&KMN{4r4fs~H-680E z4`S-~e@}8@gbUCPmwN-(pd;UcHn0bs^Zn>^C(tSS8(n;P@`v}zp&i#jpKFe;g&WY! z^g%y-24m{){|<>aMxzfV(FUfY4a|-AUyAi_VCs7V8rX+uU>niE_r~%Ow4HP4RHPRO z0pvh4P@n+&-&B>Q!Ur2h+oB!!h~-;jc?8 z9l%@h{zmlq=<3f@Fr>CHn$ntRhb^L=&_H`f z2cvA#cf9`d2){NywvD`Y^1?}J_G@v`s0LR4oDY5=3G=ne3 z@(T314>9%Ue>=Ibp?&dzqi8^9VmVPL1eOaOVSY3-*Pv6CflgfobZQ!-?{|+5K-(XN zuKuxTKobkG|Gk(+g(F{pHn&yDqO|G(T*NMBb|*l@O-Raf(E)8ZE$_OzZK2Q*U6f7*u@8Om5c=YoSf8~>7)c(q!@{v#3Qc`gw4K`VetmT9w2byf zGcXj*ND@+)(=BZ z%zNVf`!d-7Mm8x{%t9ldkEZY?w4-Hc!>iGTH^lm#XaEP$kse0h{{wyh3>xr7^fxJ) zi-mTwq4l|nB|}94D%=)@;{#RE2I`<4Hbn#Jgf6PS=vo+w2Ji^l@ndMiv(V?CMz`tW zcz-q8?s{}8w&T|= zAvz6RGqcc)CZFTNDOiYRU>O?F2DIT#=!m~WM|=$J=s&cB93?`z5W2d{#&Vr#OKePi zHynpgp}%~}RWjW_-b*Iha8Zql(O4drU@hDo9!O*>6@H$tfnBKYi*<21*1==g8jF@r zPc*^X(XZpLL_fn4lz+l9n6*rL>dz4>=le0ySJB0F0FC?@ zHp61&LLh_Cz~*B``~&Uq+VbIt)+Xq{`s1QB{%95%d7^SfGUop8!-c;nyc3(?V(f=U z@E&YlDLru?zK1TJDwRWn*Q00uAaqV2Ko{GjSpPgaWpANV{24lxyYWLjjL9inEUJ>8 z`VWtmuNr<8GX-sM9X7{}*ak1FmY(_}m2TLF@<;d>7OtM2`U8li_$1|X=#)&W5!{9C zC>N|59Ecq#FR#h|e~^p+;*GJj(o=u3@hNtqK5OmtL|^QIHt;sK#|!AHZd)fk^$&`= zpi}cY`m35F*c40FO;7#Dscu6DuncS9S@h46%3aU?H}!+B4~uCbwxawE+ELMZ;rDw( z(cLf`T?-3h`89O6ycf&s(9CU(2(52{F0Kyfb{l}M`UlaDUW~3n7wIPSxr101|3iMu#()2-VQ8osW^kh? znt}VUJkCZ}^}1O91=`^6SQN7~3guF0xdA$$zG#Od&|gA57JV6;P+pJ4-T#Tk@#l8* zmrPC3kqtnP($Q!@lVbgXSidsXe}bNz2hjjdqepZ8CLxdtXgdwjKsutoU%cJ>_CJ{m zf1UOWR=|~L0NoB(bf7gy1ka6@4bT~aeb_>(lTtby6C`~qaVvR zVQNaTC*{$Y8bHfri0m*GM)WHh$i?_T{#GI4is*^e7|Y?~XrS-nF8mC);M1+c91my{ z9ET2I4jRDg(e=2K@)t=i?qs9C)HaOd^7iS8ySOnP9qDiA0do!=@p){3Sv!Q2tvPm~ zJRKY2x0r#~bPPv%J*-aoZgh$kqig4TT!YDzTsSw&I)x5ap(*$zCJG?qU^r)oRe@we!?@F%AJ{a>!G;l;XWN3GBYdZQz` z7faz3wBu#yNY-La+>M@SS-YjD4wfotV0WP%PDP)ekM5qg(QUc|^SJ*{a$&=1-9sRG z(Ljo#2Szo_iS5yIqE{^6gJvv=mGN2hy-jGx`_PR1foAjqnyG9(!oZ4R(u1HX7vAWE zc5quPKaAdg9;@N|vHm#vTzb#&UJ-PA)}W!8nfLPI_``HItU&4a5Uwk(E&Y*zV{p&;EQM`mSGD# zg$7b5*(V$fEzptnMn^UhZFmx9;A7}^S{7Z8KDP&*^JB66PrRS&rchrjS|i#L9Y`!C zCq8g%{Bnt{D3=@<8XAhG^dR=f z(u2|y18@pp@uQ@n9^`GUKg$8m^-T%37OHch>k0y8n?r*dI= zhwIP|_M!p(js}!IG<1|7o%2#y47;P59D`2TIjo6ehlL+lmZO;}JUmzeU2_$NC&NWO zDqQt#(M*iN#yB2bd~4AZrjG~>fhK{f@dbT%310RGA5n(9~4hE}5ueT=5;b97_}(FRYU14zF+WS{^#kTU2%8l%tOh(13Y z9l(Rg0FsH>T-d;?XaH-XpP~Wmz#jNjtgkRC)Yrsj)HlG%n8YcV<({xh9!CRz7F}#F zqk*kK1N#DpyJ~*p!a2EVba-Jjy3Hn{0nI=oe;Uoe5;Q~apxbaG`nkR<)}KHJbRJ!V zx$X@=q&7$E=cDbviLG3PX1G^QS z>tSeMV=;BWpaXabo%;{a0CuBO@zYrLzpL|1d?5R{5NQVbVpa5o*60hpV|hp{KY%to z10CthXo^2X-`{}-au|K?Uvy37dmwDT!bvVn)gbhRk?5+Qf_6L;-7X8zZMq7b<27gs z_hCaki@sN5e0Z)t`dl-#odM{YxI5lYqWvbP#2ZhdDO`Z2bQzk;chR}qf(Ez`eeq+uwN^j3T*I0`FL zeji;UN6?Y^SGfG@mKRO!RhW)N(Sa0?_bZ|qsuuNEKe^ohO;ZzkM<7fj%(HH+g z7gyei>8XD@T^{>Wegw5OnQWV%*9B|@<@8( z0lXJY-Jj^l{zFrpc~V#lSE3myg|3NeXuxgI)qWE?Rd=HY(El(4-^V(*51qoiliB|^ zP;qit&CStO+aG=LL9C0s$FMq9nI0C~t>`WpjCOD@8c-75 zEwj;q&X2A_Gq}wMyx5CQ#i3X({b)#ib#xBvqX$b{w87rdf#^s_pn*P&u9at^E8_hv z@&0$Q{#2|_=6ozfUKBmys-O)vMZdN7KpTDw{dnDot+3F6>|y+R)2rs@9{Q4PT=#oJKpyH8V7rfp=4`iDqyKn)vK`^sqmA}0KARzZ1jbH&<6Nhsi|K& zU4fnl?a(RehOY7I^qDl6_>{c z@;)6pE{mx}gHFi=^q_eG9qHR>CRU?sXmj)@Y(x1xX2O=wgaNcgcT?AA*#ACo3l;u0 z>ovRqb37X!=!2yx--(`Fv#>aBMms)%Hgp=Dy7cE*%xV11CTvW(-1A`occLj@g0=8R zY>HPW=Y>UcBeteu0UFRTbZV-;ke--^!_e>lXR#CBI6tKJ6?CdLp$F1Vtbl3%3->Fb z2UiDlcML-VAA@Ex`4AVLT+gH1@HO-ZUXP~uJM^p9=~#cwf^b6CLHBcK^u0UKweVmp z&%!K}Uq;(`9SvXu`rfu+GI5v-7s&;5B-btsb5sI7iYuZGv_KbKA2ii>qf_xntY3o8 z{W|o$z37M5A83Gy7sK;cqJh@M!tVd}T=?MaSOxD#_w_62YF!n}8_?%=po{S!+R;Dg zb9rA1?-fCJLwPjdT9_R>pxd|y`XksVyxjf&3>WV6#pv9;8hr~5b_Zy&rHbd7?w|M^v>_&M$+RvYu`v3p^hYJ@&uEn9F^4OemWAwmy1RcRz zbgDi>zjPi(w`=j2!>`vS|gDI2>IQ4@Mu3PDOXgC0n(D%N_RL9ZGE7||PSYTy%ur%6WEv$;o&?&hGZQyClz}L~|wqr}&hpE6< zh0IjL&eS)=N;m^M;u>s?Io=7G>5}AP7ZrWcxvKPTSVT?HkKxvM0}jU2HbY0g0qt-v zn)+YR08hpGZ108gHRxikjD8s1fG+CW=yNO3-SHk8_&Q|wBom)=;fs6G4Ez{98|!m?5CX}M22eVd z>qOh3tGXY$ZSTd}I1|m(XK4H1;y^rtZqK%>4UGLajSCmc6X=8U(M7WqT`cdSt9@g1 z51Pt@*c8vAf!A3Rrl>tS6+O|B4vqB>qM4e8*W)Kx$o+qTiwan9Z8!;AV0FsFu{l15+5Z)}Xu(A-yc>OC zDfYq7@g^+)QTR3b6zoFzG@A038^Rwj^g~Cq8VBPU9Dsd34k=%QqbL{sB=(;R(cSPSn$b_N9e$0DxY*A4r)1d4{Xd0^FS+p*8pvy(hln>scc3rsL-+r| zSpEY&P|lz!{ue!xv+N4nHXqiZTpZnoeb9i0p;MH^)c&8zg>yR>9q9sej@P0uY{gOd z9eUK>usZ~LBl>xM7n<_X=*S;HQ~d-wpvCCoTZ4AI8$E)5@V@*1-}pe@Jt5LEXhYYd zBkYKF+zlO3Uo4Ar&;Zw=0qjDjWG|YL@1w_~XVK>pUxX7f8>asKelqBwTM28tLQFr_dLlN4MDy?1o3tjMV!&1UL%)@;L#`#0zMQ_0`b~w4ri18mplJFNwa5>$7j%toR8+-7aA`@}74^|Gy#qQW528~t4gJuWi9Wvt&A>O& z@?D5Djo8n%Xtd&GG(M=m>vCx8HfRpIqODsVad4 z!vFsl7v5+aZ`_P-mtp8Z^Dz1`JU`xl1M5;=gPw$E(2+fPAO?nID6d3E`Yo2m)96$c z`YyEB0`vO$-<=CbavQqMMxd+xzF0pQP2~)9Zl6M*n~!Eu_kD&qo z70Xo*hQ-|ktGoYObK#;GhrRGA?13lHj+=fTwr6W>Nx1{o!r5rxo6!vHiskRoMS2W9 z&`zUkBF_&Y;KJydsf?R7*0 z>xXtc7@gv~(5amqo%bXA--@@WaM5kT)ESRWDF1;5Q1z#W!rYfZ7h?_d{U+!(ya}D^;pkK)$8+I}kE2KKB6RLvLyyw8 z(Z#egmiMDCoQ*J4-9_G`#UA2f5L&<-9$173(la2XcIZL$12IyoNLwhaJbEO}q_WwXG z?C>5mkO}A_nT5{rf>{3+`rL+ie`hRz7w;cOx8c8N>Z|-2p6`TpDBpzcs;AJ5?fH}a zZ%2oyu%lDxBFua${KcZ2=wj-H9whzI=ZB!HdMtXT&p|W!Ar8Yvr_)paZK&7L^P#|* z^u#P2f>rT9?1mN3vj6RH!r8ERrlK9bfOfPPUA-%#o6wPci!Q2vqt~4abJ_$uQQrZF z;ykqdY=4Dza-p9g#nDVwOmbm|*P{wFkVIdnTU#tgg( zo8tI*|3fTB`AhU@K8KyLz=hDxAZ$-LiCu9Uc5&4fxfn)%S9AiJfmvukFQW&>S~P&o z=psCfc9`i>IH*ctMapf_xgUcLWD+`M^U*1JGv5CUlP-=gxUi%B(LbZvSpn7;MW>=R zHpJ%W6ikfechHfZ#-iR&%al3?2BM4mS+ss3I>jHMYiCzlrerD=KT^?~ikj(}QmcFh zy69d+16YDCs&(iIxfu;;H`?Gqbi}`-DL#+AuuY~+sqYI5(Oq>M-7P24j26zE3=Nja z93rZUrno7(sQRHPzAN6Jjio3rLQ}Z~4fK07z{BYN{v($EK?BU3B~xk&3ZNaA#tK+H z$%P%=j4rmj@g{s69qG^LD*hAQjwQ0jfYFAk#&Uyb%V?)~zZV+Nz*s*VP5l^jYLZjA zsLsU`=tw?B_v!uaR6?>)Crh9 zlV47giHcm9%C_iY?2kTh8+!8Hg*G$|o#VNfI(X1ky$W3;8`0;#Lr==H=q}2UBMhhr z`hH#X{Z^Rz^S@qP*w8&_Lz7cC_zXZBdLP|J+tF=z1Z_C;Wug8Wbd6L;-|vpDp`qye zQ={{uZ=wVK1arIp_i<4Ye?cS6l{2LHTD0R*=pt%_cHAjC5Y5#6I0PR?x8-l>^TjUD zl=?DT4V~*@=$aXgPT>ShdJ;|N!q0#MXv8OC`BE(Bx+09MINIU$=u|b2wnH24f=*RG zbRa{}k=~EKHxqsCS#$~(U%~!&^}iDz+>DO+Aezd*&^gVOE7X@pGu0TaAB0ZH_*kBY zzP~cM9S!IRI>o2ZOk~a-25@<9_P-;~PenH@j+V!uFHA-Qc?LcCmZPct6&=BO+<;f) z$&^UP&(YNGLD#^ySO)(>w{OwBArmFg^P*Cc3ty~@W}-eCKqoZPe(1IwjHYl1`r>GG z3VdIupn=Xn16+)$-GOFcBRVBtpn?AwO`hVy2Q%f%l=>SGSE4VBM(Zb{YvL)i;iYJx z@8Ja8icUfM{FzdJcWel{2#;bFEL0#<>ML41Of5e2+?aqYW`6(2MFth~;*GUv%09-9 zcpS@O-77PtJ}Yj)s+3ou899PB_y?N$vuFk{q9eZIs<8hHqxH4W`WD#O&;PDmIJdLW z#j^{2@E7z*{u})qM0hoAvWL<5?NZqp}Y{StI4m!X+mg|@!|o4fya zaZwiw6bvKih&J34&){$zinm@9BHxK_s{?35r(!v+P?+1R(Wxto9_9706?VtYI1hdQ z1SVhSBCT+y)W6$(16{R^uMH!)37v|;=ysbC%P*rH>_E@@@6nDfU!bU>8M+NyqZzshosv=L z+&+r6a5vtF*@|aM{V;nAn#q^Y_uoSU+=lj>+!t?rkJYF+jm}l65~18L`UG0P0nNle z=q|`!GBi{L4YU?|($zzsYlNA6 zeKBX*uokXD%h#c+w=CAf+tAFsh;G+?=psui7uvfF`%*55Gw@#YV9QjV{qIPMa4`rw zqa$5~EpZbvM~N#cgp;un8dxhdkiOUyZ$|@v6zIWbXW8zG$UuwDLP+){clQg zR1B%fKm(|Q&RM%y?vK7O3Z3gDI>K4#bI+jxEJx3YwdiX98g1`5I*56bak(Y_t&ExZ^qX66S{WFR}OPs6U|r$beHr( z-|w5`!Uu<<+u~j{g%hLGFx7E%0UF?&vHTI5fn8`OkHq`u(UD(KB@843Q|Ai0@9U%e zB%5+!2W`**dPfJLf!&2ZI4;&tL^Cxb)-OQcUxH@pU2Ko*u^;BFnu-6+Du06#hvOl1 zZFQ-Z%1kox3>PknH_?>5heo&&ZE!mp`B(A&Pw3SA8OxW@=W|sL0T)0=UL=;Qp&6@> z2HF7)urH>5|NjaXj&wEl!B5duU9?7s^cM7hT8akp3EJT5!gicW}d>lt$4)_0mUSO75VG44iFBV1@RSC3#hUiFIq5HQN+TkcPz)9E~7oyJ} z#!~njR>%Cc!^zhQ9mqIL+QHOV@gjP{Ek{qb-Dt|P)(H(>g?3mpS`A$r&C!6{q3v~z z4ntS{6!g6(@qS!{zISb1_P=vkqHZ`ctD&p86FP?j(E!GvN9GiCk^T=I;cIBeE79lH zV1L{e?^n1!JYN%it_eEwHt1UGaXtIr4hK1e=DqXT^jZEr;^f0E?F0CuAzJQ~Xv(FgO_4;__88?1+}mDcE5 z=z@NCycJ!P^U&vB#0$6_JL0kinNokg_%A+3xn{#~P$hSAaRU`s{lBrZfR5_w`u@x$ z1b6qr6WrY)XmEEzG9-Z*5j+g;ZiBlNcLpoc-~|d4cPPcJNP!}Ke|zqpcHU=w&-&iI z*2({zE&sjux#!+VCRWqS_0DAoD4&w;2Bo9R;7rg`%gb~IoCDSbd(}4HN?8ud%jp?V z?iy1a<7KxlD1OmkEVu=%3l^wr6wn*oA+P_Ydd6Yf2@1heP%c5S`bK9BK{<@WL4R-; zSP=XIRsgO3#rIotlxoS!Jf^G#E-#NtSdA(F5Ng#9$;6%F<_Y%#@7u_ za3SjgEe*dzpj?VHt+@ZCgH}xHgG<3-;6rd87}VO>%CDewR-lcSX%rX@%GSOI<-RW7 z);L@>6$gS+z;0jij-81-XcmA%xD}KK#vxFiXg`D5z?-1Fc)SObfGK+#_Vi$0*7-m=oOM9C z3*tbDTLwy^y`VgD4}!vf3`_;uFEEkH?|>P=*Ps++2{bSpC=aHRiVZ-y=G{RlC>oSR z6t(|e12ecFaneY)`N1pp9G7@{r{MWyq>2G zHMXuOSe$iPP;Sc}pf9)z%m1$wGP!3NnP_DhN>T7{=b^^d;U=L6ZWhf|L35^Hq zfUChm;A2pDQipT@%a&yiHx5-%P!3;pP&#Q13UNQRj|Q8vo~!l;V16^t_6Q@sV5CuK zMNksd1EtUw;3Tj&XaV1XvI8F??M8ril%YruO2<}EPI(D10IUVdi_m0H4%-pMW1xJ7 za|&z?UIOLR7l}3sFAj>m7AQN~1eC(MgOaC@T@3?3*@;P@1S|r@aV;pf*A7qu&Va+g z>#FbE&v-SA1tsx3umHFilxu$kltcHM>di5Ry%1Osy}dCLIed|zR5$^Y4i_sf2j!Zs z2IV%|tol8mT&e@06nqhs_}i-gL)S@TjVEeOQ0|g2PzsC&Iiz;eY$j6a4NwlvSFkFW zE6#YC?EnsDJpz=&^A(g!kw0GTpxm}2Kq>qNC=Z}Jpgg!9fzrTtP+lvN_BSqVJ}{Tu z|K*s-Rpk1C!g$ElI2Z6FhF`(?kWX0KFOV*1(>Fgya1%Cx)C(;cu zw!SGS_7ns#pb$Gj zIqfGvDdYkux8Ds=I)4mGM_+WEd4zGB`hjxI>w>cNZ9qw6Q+=GS$AI!l?rb}gMohMX za-V(%g&^xlnP*J%U*>^85AL45I7$!3Vs8nbKlWM;xeGzzcoR*hW?;jsy3h$5~=q7pzK_NuE&8= z_*761;X+Uj;dT%|{{Al$>G%>To&2urPoV5b@-aq%ML-Gcq}UIX+jasdFTX&{#%-4ul*HvhX`m@61-AxM$o=1$iF9fM<(fq*4hJP*rs8~1ZntHi6ucXhf={Ua z1}KT%fRZ5TIHQ2Hpy&&Na%QT5vLo$4*Z=?N#Y6%^L2--*g?Jn&oh(rOW>Bu(F;EWa z9Z(8>1xf>^@di(FP~y{r5?>G$|H`2FHv+}KGwAyNe?d&-#ilPPl??#pb$c`@j>|!L z#;*ruM|OeI$pKK#z!k+mKsnW^CK!eKg5p<4u?r}L#DfwyW&-!WBwB_-w)96eoCD=P ze+m`>(@r#qD}hpI8&D2e4^TP`1Eu2x#p$YF2@0wD8y$$;kg2e-!o9+{#MK|*{~M^Wv8py znaHVb0Lp#a9h9>W49Zyu2W6{9>3Rt$JFp9sghxP0cp8-F!W~fVns1;KkaLP*FAd7N zJ}8BE0%b?+VN7Hzhk$a8$AFSxx;iWZCDCS3I&p$h;Av2{@S@tUtNsBf&xdEA@O%R0 z40um99!PmWc_QWqX^fx$WzrKx04RrN6DY)|Kp{8}$`0KE6 zRbxXhE(XdDRR<+eLr@ZR z1EtV7P&yk9N-e_0?&eSEpLHB{6_UjXBb-l)}4%ayW;9l4zW+XMw`E2$au?x2Sz5D3{`}uFuWl{+Et!pb&fr zN@uS?x#r(MAxbmbu;&A%pkkn$m5QMFH3DU;JAslQ5)_`HpzO#b)i2cbI#3GRYiA-` zaS)U(Iu5$d0w^8d0_6$$Cn$+B&N1u-L0OjrCB8l=hcW<^!g_)7`X8t3fuL;tL{RP~ z2Pl`wzJ-ZYd=ivSuYj_}PeCcfG}q`jEhv6DK(YIR;$I7tOV}EeOVAsX9f|>^kOWY6 zW*R63tWy0puz=kEiA<#P$Djnh0)^-^C}$vv!&s*TrQ@ui`1z{7oa$?VQdmn+&O`_( z38O)|v?>Yrl8y{JwPis z43tinf)c+I6u*n06!Zv`LSBQiv!4a!{!cdFFk}T~C-Q+(xv%OgfU+aCK-u!9pd{)J zNQyPUHq;)kG|`sbh|_*2)G#fCmLCq|3LLGK`HnhD39pBbe&^~amMn2(pX85 zLhYv7OeAp|P_BI#C|foHlmrt%>0l}-x6=Yp{5GrpIOy6bP;SSEpxgysOO3|Tff82; zl)|cj!e1M7{r|5lv^t>ntmbx8oawC0UOGD}&p?Qs8s29GG(@_kSpp7ED@zd%yrN*(xvBkIlCOTeIE( zTEXv%c~={6K-LE9qYnXVfg8bi@P+DotufxdUkg@4pL4D8#b^gm&e-I&-2eVe94G{D zgLS|HKNvp+YXhsYJ_7oJUqN0pOoi4NM2$f+>rs4Y1>)Bm=hT*xV8bpIql{=tVYr@SUQVFX$(uy9uwHKhr7{<>8?s_yQw3u#GO1-}T!8@Wf3%#a?TfXZ}Sha|O$Nr&ztTp~BYlv>b*D^gg?>5E^V$l zT)$$U==%P<+e@*$BELIknn~bV*8I!wf20BliesAtK~_cyMhLokB+Y`~&$>gYnaAm_ z{ESUxHtW>Hu4jinPD#$AUxa=IgMS(B zlDQDdy}z8{`k8+4H8D%z6`6wHGTpsrU^h4l5pUnY;yO-ea5_wa8mz~PflCk$7J%3a zu7IF6)$i7XK~$d>--#}I?htSees1}Z1V>oRW_ZI}2_BL0=tUO8vqav18AO$Sk`RY* z2t_vN^{;_VBsBz4_#|gUq1&TH?4pQ{>bs351~I>?>#x{?;q0pkg-1*em2)Td0rLJ! zEXp$^&aKIx5Kt1bzi~{f&iopWX(_tx!h%#`CvHPJ#^Bac4jZSOu9ZyF-PUMw~i6;0@4RC zH`R_LsmMy!g$bw)mWI?V?;xtd;ulCnex{IU4|{TAZm@pBZscbEP5rzmbSC~8SZ5|L zr;o&Xts9_xh{Flg%?MhDL$J$<&)2|G5N;yz6z0wGJ&TXXCW)tjITV?ajytG+8JH2> z4q`;!v))YXJ+(K6qnX^_4IpmCqA^bV8~1;tr_NLJX^ojN4~sv9B6STg)zPlcK`Jk` zYvDUW5lKnpmaX_~q(G4a)xnYYre-TG>*GxB+esVRY5aq`syUSN0*X-d{> zNLrWmT@o)L>0b0wb`=qL7BHFET$&fhX{dV!a8!Ux?2GTJcSW zPGm7jjx$=Ke~xb>Y;L*EB#m7ENQTG}$cJd9vc8J*SBP$qXf=hsg=ilgmWN1WJ8`#J z=VLvWxJ~%(KzBs>&Y^pybMe1{?{#==_+MoF2EV;3q#|1|oIue4r^6HyfbK3fD~^33 z`bj&QgP&VgV;f3wpU^d-Ly@z@EG51>`ZDm{#8!!Q7I;N+z;g|sx<+BV4&ZbYr(29E z7~kNyiG;gwC{BWM=)N-dA&B2ScFBE`Wyj{0JJK6)|Vjq$bytb!;FK~I(F49R+7Z>$NP z;U7*BxzURp#wOB3?fq1LkplBGAFTH2-~`t8nRMC?k`9nGA?ZxECzyn*7(d{U6HJFa z5z@_I5Pq)r3PF*9m$+N-?veLlzY{Q?Q4&R2 z#zKb3Zxk~feJJaW5P3>Y2oqE>n)zW5dyEz!=6fV9Mxi4q?2Z<^h9Y`l<7*m(>))B+ zWGH<|lp9Bpp#+M&Wt|@VBj(lgl2lY5v9}_&x2{9rXiQuc*1xkGW3}7W?7$h;6X1!~ zBGTfs6TU3+d4Q)}(N4PHH~@zn;5qGRJ?oZ`iL4@#1K&UBVjbino3KyR!VL{u@4=sg z0#VJ;$HFS_Lm zx?+%rs7>_i;qc)_Ohn!#vr-Olk6I2Vmk9O_N`UPvZ ze5Z>8BwDT8`VqfmBnial3dzsHR|%VZIWA%&UZk#agn4uQN22HiiIap`G0arsJCB|C z9pbb2O`z)M_)P>aDp^tVD|H^EI10XljA4vVx(glPNJ}x*@EHWIXVv zcp3Z(u}kcK<1m?yU4IY|RVC*9y#bd5;aHFY+_D@(5sMbu1zSEXW-D`VosWQ{g3gTy z9%{qLN1>3OZJ9sWB zgf0}n*Gakm^J1I{Sro>dn0bTKC4(V6jFT_u&~1GQ7QsFh{azBEq6?cAvK0MF^%H^| ztT$*evaUtZ^(b_Whi((^Lz&v6jG;Pz94af>1ISlXST39kOEhvE+dXhAzWmJrQyx&H z1O?_~h;*hPx17^S4S4yktSOQh{@RO6I>YZ0@|#|e=rs-lnIC7~hX5beB9C!Asm_-O zzDGfoNwQcI^8IU<4B+Eo=DfvcdXN1x90S;m-$5(7Kee$-@Lz@_Knt-iN70NS5`}X! zC45EF2j~hzk{m+*D1zxDBpdPlOA69wxy0?p?xnktAOAJj16bd}|A@zS|ADQJ7JkXl z+fB(xx*GCbB<`t&sE?^4Bv)|kBnb&#qINs}4VAbLCMyMqWW^o~-iNamBw3UwMB-Jp z;j@N#5u3aZ=qZ;-*aYJS2o^KX3yRbrs2c^eF_xwyBs_)ft0q>p>8)<_HO1T%IR(Fs zaEZw6{+x9TIm{H7Qr@!}sm2u;R+HqBcGjJMw>WiTofV%e?2v_RUkLecn&2yijl*Xl zu|x3F#`xmSxIz=qJ-~M*c9BE)SJX>q*y;FQq5JFjYPe|;-M+{6Ndu;lxEO_WaINY8 zJ!Cf_NJ8~z3EqrD4FY!P$qK-EDPt=Emtd7G>x;bralaDRjARqBcc$=L*mpA;vP1kN zgy|=2BJJU9jn5b2k}xJR=3-ys`dfxL`~i`tRACmoY$7#vCt7HN z86L&1fOs5nr-|Q1TpXQ>l*i{2yIGusi_!Pg!XJ1v&{a0`2uU0e)Wz@$$5JFK0TvrwFXCzec~nCtoH ziNnGdM<0v}DIkXRaf-T3vdk1Vg|6Cz?FdPLSmX{Q{qW6O=H6C2D}pt~^w zTYutesLu{@5|P7HjwBI~%TI-mgh<|}l)sBQj*%#9q%A}p@e>Jwq=gbK!{-FCBH^x% zD2&7+X=tbiLnJ*oj`$wfyzuXh?|wL4_y3QOh>S#eOdPdp(bXrQ6x(|o-C@v7LGn#m zk&>FYza|#lAo+kipxZJO*;;qY(DGsq$2B;HF?zWEmZ{qUHq^?iU`(Td76JxoqP5tQ zQtVLdChX${kz#b_r$tOq+(`_7+tc)c_&9BF3Vy9MM|t$F{{N=4{wx9rtgXRT*4@y@ z<7{R}K0q`=cV!u2uh92n_$%>PEyPJtMYPyS*y|EIkk~Nr7i=per-!VSFI`$-_yvd2 z%teY5n1uCj6tS12BOyGE?FWkUhwKoTjTn(x=uX5Gfjz{+SzWLl9S{z#0MZ+fo}r}>V*DRh)OZvAV|_);Bex9 z5N4HY@OYtrh+QOsJZ{-7pFCm+<&J~W@hvtNPf^lZ5&3ROUEckOeSrl97*cKHJC=`$*yT(Nzt7p&Yl9rV!Z?% z!F@VE4|yfXUXrX5&ZSk~0rH*bmJ?iAlN5ru3I5seOGQj6^dXGRTDAPZZX@zcQ2$|C z_&IqGZKzgMfJ$3IUK|oH$OjPA3}SCymb*bJ^4NfXK9;7C!T9~n5Q)d{cjAw-?n$y4 zB)Sc!TQ0!2pLGNDja{7V{{{lwQjYm~7D*{;0Yxk);2dP%m~YeS-M(fD-VMoBjhCN| z`L4};!gmz0zY`~NoI-=u_LP`ZIzJ`X{|yAqJ*t#|yh<8DrB|^{q=>PQxMja?VIgn> ziA3svg^4SUt||o-WBfq@*T4wn&#WBY_+CbDKSdW2kRPO~hLD`o%7kzUPBS3rOK>Ip z-Z2)VkJp6b(3fESjxiRp1&}|5D>;{}21V?Hs}Q{Hz)RS?@p%kiE_jmShe-ciYn+U4TK-@Bo*@ONDzI9mN z#P>M(C+oi`V7`zb*|ZqDd@o%j8mF!#uA+t%=vzVB)G)h#?n$O=v5z6?Rb%^1?^(|v zt`_n4@K4P=JN8aAaOH=)KfWPwcR?3||5J4N zm z_LPFGYvY%R!qa1jCeKjT?TG2jdOUOb#{kh?7H$dFc>^lHq4T+rq~X36X$#Riip@uY zxpXrL!ckh>&)8NnL{gw{O?+{7v^VRY7z2sBOpJ;vzsV2BsyNlbxQpPw2%4kUvO4p< z=m+8>vX4=T^?izah|g#eXP|qL53JvSpRkLp#dcDQd4kVeEmCY{7!~#WneyOtfdaM? zxP?UBwd-H#a3G215c~sG?o4FXbbIh^O59`o>N6ijd^$!R;-|s+09}2sA^swb ziOoO}*_qo!A^p#X;5&vVI8`9<3yHcw7@IaPpqmsR5~~C`J&5LDs|Z0Vbo)t?oKYFwJak7O z6$v%K^cM-T;J2MIU$?sxx&RLjNo1Mr4p~*Axv{4#8CB zbs=3zP$T?uGe1P3ZdptbB2S3D%jimyvviq6d^FKHd}7gwI2qyS{Tca~hq=FpGFg*; zMY$ViZ`PrZ{LVZV-Q;Fuq@ZV@Tk?~vH%SYEhajv&flaVq(OvkC?g^tQ_E;^n4L*y| zxyAm4S#^|sRN0G!Gf0${d%Y00Nfc2Me2kAs5D9KjTz`C~7%J0dwOt}nJjtJfBJl>e zK4w9mgP2vUwouGHcpJHXmkmW(-JTHyTIlFCgr^u?7*|QyoZyShy(uz1g$*U9uxv5X zo!Eld(_zcQd^!4J%p-|=1HOXu7Kz7!bMa4!&jHpqu_u$~e_j?F2-?W#O_GN=45Pw6 zjM@Yg(r%dkBT>w=#%?sE0Fle!7yK{6b&>>2X~r!N@eRhF8s2Q!H<8zM|7C~Z znA;27iUD8K5O5)m#VKkFL*zB1JEZL(nLwhy@L5VCkv|A($vQPjnqXV5g}=n!0KG^K za)}I}Nq$b;WN(OK1WBAY$KzB&9rok&og^ZUwTm`NVrY$z&mmt$>;-H+m>(i0Ef@`_ z$Wd&6QT!e0NaYm;{)WE2-2WG-B8eti&io$px{&?N2q$0!Wak-8utj4#?LpK7qUIzz zh%PyWe}Z(fCeBU#K?=`@Z63Cc=*MD@gh%8rI9-2BSr%zoowJ5JC{PPw&BC75J@crK0u zA!x47`@#Aou%PdTK2I|DTh_nIrjlkiy|rN!#(E3SujuN)*p;%c<5NX@PYqVb_A7oO z7s%#=ZW5UvsZVWe)8MFyt_&lAc~VA4Ml~wPN;Q)}dtr$3>jqcESe0ZVc`^1TP-LIl zCu19+8-E)864sFl7>CQxAPb@NZZ}cETvqmb9_xW@4*~ zPj$*VrnaYg1cvM0{fzH1d~NbXZAe)c)X@i1%|A?U_Dfq7ruvqfN5Vt@_1-j?JowSYPB#>0^nU$=CCD@4Ac+NsI6V|+wlAdVX${!U!KBB+D+zVS#3URyZ|APGy2}Oo$GGoOWa<`0NvV{UB;$H>a#+YRo`K~l% zofw4}ZYjdVk9Bs)SFjs_U<>VF0mZ)7OV)=e4OponlaX4^lj{UrJY z6!;R|C5($0h16I4cTh-a<*!LGa^OY2fQO9#DZycZpf}Y`&wyc1IfdVD=Gz(LnJ<#>O22^k7Zg1pKgoPN z7=Uw4Mp3#P4Ux!UMkbjcsU$f?yJZ?a8+1pulP~~#6F5cQ!6R}Py#xMmVy@wzm-vp1 zwAhOgd5de4gLz8=-)i+8(TyQ6BmViZ{Y57~5OWp%Y2Ar* z=uFYXSK;3i6zM3xof3~zA5C(FV3FH&z6*k>bWnxyksx2jO#E`8 zFHT`=@fps%4!T{~wo_Ovdbez1K7}GZ<)!8kT|r_N$bW|)N}yYUa2U&asVa^!|A4MO z>l@mQ4_yyMcM^hdbn_@AJ@}d8PvD=Pg5A=KA_m~!f>D8aZ(>B2x_!v+lC!D^hG;S5 zrNL%c8qr}VEik9-qu49)jN<{JKJz3tczn?MONl{1HqfZXS(@ z)S!S7c;n~8NJ9b5z~9lml>7g8h(xYK`cb#1992Wf@sX`X?N2`IDIYb`tf(u#Ux3kBXyNH^Mmu zqo)#&R(mm$ekSf1K0lB=2aHzM1xT_+6O_eAq`q$ZBmA1;)1R0Y%%iaH0qxQ1_@h?) zl-=;dP=~-aI9DdfQ(obpol!|65Uofcc7m{OcKU0-RV&HMTW|E zREIG6kueYBHLYHZe=)uhR1u=1*!odSHz|zyEO0M2k=Y~_$w|S#lCT$rT|{>edmJ%~ zb*xA@m|+;OK&XIudurc9>+#@O8qKg2#9z^r19$NaEc0Up<09Dp5X+rAg35*T3Pn z8G`DpgYdf!fyiePb%r!6{;9AX0C%uHPmwc8>XwY^KMWj+-)?;7V4Mk;-CwH~=akG_ zQ@N*%(nVDWKQf{q*n=(v-~A*^$H)X>Ns=bRe#Rs5a(ugD?@yt@G&G$8EW`zpV=N6- zke{eIin2UGMNt&+$b1IJc?2ib>cw=AwMcS&Man_^2*2~{(-$1C4OsE{4ZDQY1)q~+ zExw)5w*r5m;M+dB|09&p#ma}zINX9P3!U}Au@)#YfiB$A8(n$WztW{hE;yQyyeMP1 zBtSRZV>iSnBevJd;l!3*?*AoJH=TePphzu9n`%N?_g9ki+WkQfTRrX8TX!H82kZr$ zpII-FVB{F{1axaXis?zdycA+zugXK3{5^!5aGpibe4N^V_aS-5E^MU3_Smv%2leqi zfPM}7BVcN{a$~!Qe-+|x%Pwev8JLTd!S6hN`|$fq?*DrjEG$AXyin(z=*lzh)9H8c z8)PDL!9nQ4NVpn(O=8^gBeADx;wnCV%zws5Bs1J+@hwQo$w?NF{lLzKU*pALgAH%OI$Yt^y+!NegK4DYRILPs-&mYvQLAB9fQ5`{Y^KE6R|&0{AMjcc;~TpU4L1KROLE$#d#^?E$c3f z76ewLunCY2V?7#jk*rGe8@?hJDRvOHXZSy7eFFby6q%ECAM_!NK=^YoHWBlO7HyZN zpDM|5f*RqN4`U#6w=9E1%^~{{w+c`Ojxo}2DrflY+c5B;En>8+~uPxGA zJt!*JR&z*1RB(K_EunfT*Rr@ZthY5f#uf`naqEDv@NjD{n>8>#E-E50E-WZ8JbaKf z#ugnO7-S2^92aVhgD^TOHY_eID$?3NFg)I79S{nAP>hX;$PjCwHPSY~YNT;a%Vv(w zXb+5y4GW31M#aaKi0WOUZeV1vwQ);pU~n*rW39cTVhq+mS1ZA`{$W8jQ@y~*$f!7y zYjAW-SVUmVp#N`RsrJqOjg5%vZ?gtDk`y;P3uyLUnq9K?4~vP54-B_P1O|nMMcQJW zTZ@|$(iII4wo2;osK8)rY*0*CbR0#-L`7&*)zZ&M($^B?9Fphl=4U4q~ z#=4sMk8Ikjqt$40c4y{>=KV>Ww*$=AyqmNSsMFlqxV|+k(i#&O8Dg{g4smU2f}b_W z*a6$XARC)MBqDHNSVVk8g2_KJSoZlpBORM#%vl_%Z<$l&k!uti7Z~HZ9&SJ1A+7`o ze$Gv;%+I|uvbB-Hwiuy`vqf-;<802E?ag76#j5IcyXa58xj!~>DpJP*C}&I zkuug$TUbbFoHZgoHcl#uwZ+LjA_pQi+7=YndysL+V*-QvTH^*q+ngb9%sI1^4CdbW zKgX1G+I=ifGdtsQSq^(Uj^?xEb*|56DU~E`;)J*`TV$loS~n&>(iZOgP}pMjaULjP zDVoW z&o5X~I?PWknY>CRE_0mk=at#YD@Oq6hl#5?0;@?EguyALAI7?}Z<8W86Y=vU~x$%Q-(ed2Y;kN(B-QT*uWlBnizrQ(; zGxbPIQcH36jALsXTmtu?sE7z2rLJe3P41e18j(GUk8vElV9DalINDMvsk7%Ki?@$& z1CA^k7+!?uf$J0p2S$=P(8|r}`DB<|&yuz9zt4k!fBbugMe;QBjB>Q9>y@>boQ1@7 zA=na^dD3&AC9dNF#_`l~KOBN)Sp0pG@Tx+EwHsNoJJ&cYJG@f1h~Zqu@q~|xboN+i z8CWRAzwJ0L9=4dhl5sX-264MMo+MgMIs6Bk`=sXHF%DXAU|gWH;W0~EZ^yj^b6RKQ zDNA>=S3qEh^WtgCNuP@KLZiZB!#KBttwFXpo~8eN-)JB(nxbu7vH2G)dr~=mxoyek zJaEVI&XQSnk2?S3XeHjae6(b6M_D6_1hO5RK1b9;OQ}?zm&UREp(QA_r^e>I`p{C# zJ3~YNHf6Qk+H*@xs+6r0*Y!?Z#}hfo=1lg&dHRj2suwW8nF+!owxn7SA2dD^=q9xELEx zU&$RN_b=z;-v?r~VqQgkGP&%ph`ckr)y*p zc@o7&C$8hM%QM2cr?c0rOy_+OSQ6Nw@?U`Qg7 zGgl(<)H@XT-~L2eq8xsM*)T0FEl~rn#KzbJJK!|D0YAhMSRp+vkp<^tSzL^Ck$4*~ z$6c5skw_-Kj5mJ7tGRI+ufWSQ(h|gx$cxLdG~R(9VH<3bDJ@X}=i+6!9_!&&Y>#KL z9X8FJmS~D|uqW=s9(c`VX^C<4pP0Z!Ybp-oXe@VmTA~F$9Q_h&QZA4s*Z~_+o{oL+ zO{|Z3v!*5LU`K3%cVk=Jjs~19TPSx&173pd=|Axt7uE4MG_}`U5$uXKcz1LYI^vV) zloYr!*bJ>7jm>c(IyGNm8O)PCOkI66^(`Pxxp5g@h3l{o?!;^GCoF&&Il{<`V0Ox-a-=0wi=qY?k+Tiv(bhgj4naf&MLH>^=L-7q0gT}2YL>D?_!Q*S|TqOS#qW&@?a6Pfojo4 z$SO^=K}UE!I+D?`JQK~#A~euvqHC}O<+srG4#)am(f0m9cf%FQT%n=>8bCR;!G>sq zt)jiq7e}CLVp6Ps2@UMccz+lA{Y;@vHss!pEY-AFPVo6UnqfYx5{Y8*T(uz zXhVJC{TtAXO^Ekr$NB~6_I(Z=*=9804`TT%G|(exM$U$M)_d>KiCEr= zl_@9kg~e0_ZLkg+NK3Tio@m2^(Eui(b3YXg^vPKNGP>>7qVH|NLGJ$#Vnvy&LPyon zRMkgUYkPF0ov{J-j`tU!4K7Cmdj-wZ)>!@w4eWbthQFgne66cPX1ii?Ar%9-cot7# zK72TTXlO-rGuqJZ=wW=C@*mh87ZeCb>rd!5Yfvy`q8S=^Yc#`M(1U4qEWcNf{qLE5 zk&66Svrw43_E?tkBy_|}&`f-VPvJM{{+?VobTl13h-RUSZw}syk6~NPQY3shb;Ev? z*P)rqQI!4fK~SJ*uq=9`cC-na+P3k2Z?uCE@%{ufV|St>U4X8QC!;S#-;92YK7Sy3 zD#?WnX1XSHlp8G;ekD`n7 zFZ75`7Ah9zrVbj}P3YpA8C`^K%N1w`Z=)mJhX!~odN$Ul7Y`?79(0vgLf@~84xlUg z{s1iF=l@NyVj()x=g=27M7N_;vI|oqL66|0=!pJBGm^VRc)uKazY$vB6MgQ+SiTGG zXAxfJ{(q4R7tb0r!gc7!=-b#E(@TZ``k|Q_j*fgXnz32vs(%7ql+U6au0)^Tf=E}$d3tV~!F1<-OeG{Ec7)VD!1IuLDt zOe{}91H7jU``-s1j5nT$u0T6l8+{AwQ~m@iVy3d;ezj<0bXB)QI~t1yayz<~l4w5< zpzl8x-Ci~sQt>MlrsNN_ql@UA)hZWK+7g|!PH2O@qC?{SvFQ7g(2-5Uns_f>i<__# zotK9uNhW% z9`t@~td5PbGLA!2{banq3=L=%I*^UAyaPQM_o4$hfk`{M$b~7-Tr12?LG;C{XhV(A z6RlmmKLBm$R`hIt09)hp=oFnm+q;AgEO+gY*+S9cXhzG{X8(IpoeCprh^DL^+Tac7 zl&nObTZ0C+3C+a&vAi1%^Z?q<&$0e|tj|;@+|Pp!q&T_=Yt>=@`$AhPY`8Z%g5l^0 zCZi2MfR1D_+VL_puvO^ddo|Yo66?>Pi}5^m$8vSU7mqv8_rF5hJDB9cgXS2zc+R5% zWz-AXE)S+skJb-BGch)L8@ecyXgl-KfS--`*PtWagucH!`W?E4k|((Ej4x6@c7U#l zu~-8q$MQ;ak*z};dK2wNO zA2QJn7sUH7pn5 zg?4-+x=5y?_h(@>T!8*=XFJxxMALAV*F{I(3w?hS`qk_TaLc?I-0so(YMi&e}GQS=V+kcMvtQ%{DB7W5BgkMv+&#%=z#LaaBv&tfsknOlT4 zQwH<<`QL~ON7@6O!#mIh=An!0Y4k&B9lA?CLBDK%AIoVi!%=z_nvvG%TIq`hFb7BD z<7l9XR$JiT=YFdO{UpTpk@+Z8Y%a(GKYQJ<<0EqZu6= zy(`wwM;GCeHtc^pUP*-wZjKLp7$5ioZSXKQ!xQm-<+kDH`}%0AUqTx^fKJhIG=RUc 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