From 1ca0f96a8657205586db97904ecdc62f431ac71a Mon Sep 17 00:00:00 2001 From: Fiona Ebner Date: Thu, 11 Apr 2024 11:29:43 +0200 Subject: [PATCH 01/16] vzdump: add section about backup fleecing Signed-off-by: Fiona Ebner --- vzdump.adoc | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/vzdump.adoc b/vzdump.adoc index 8c3ebef..f0a7131 100644 --- a/vzdump.adoc +++ b/vzdump.adoc @@ -136,6 +136,44 @@ not included in backups. For volume mount points you can set the *Backup* option to include the mount point in the backup. Device and bind mounts are never backed up as their content is managed outside the {pve} storage library. +VM Backup Fleecing +~~~~~~~~~~~~~~~~~~ + +WARNING: Backup fleecing is still being worked on (also in upstream QEMU) and is +currently only a technology preview. + +When a backup for a VM is started, QEMU will install a "copy-before-write" +filter in its block layer. This filter ensures that upon new guest writes, old +data still needed for the backup is sent to the backup target first. The guest +write blocks until this operation is finished so guest IO to not-yet-backed-up +sectors will be limited by the speed of the backup target. + +With backup fleecing, such old data is cached in a fleecing image rather than +sent directly to the backup target. This can help guest IO performance and even +prevent hangs in certain scenarios, at the cost of requiring more storage space. +Use e.g. `vzdump 123 --fleecing enabled=1,storage=local-lvm` to enable backup +fleecing, with fleecing images created on the storage `local-lvm`. + +The fleecing storage should be a fast local storage, with thin provisioning and +discard support. Examples are LVM-thin, RBD, ZFS with `sparse 1` in the storage +configuration, many file-based storages. Ideally, the fleecing storage is a +dedicated storage, so it running full will not affect other guests and just fail +the backup. Parts of the fleecing image that have been backed up will be +discarded to try and keep the space usage low. + +For file-based storages that do not support discard (e.g. NFS before version +4.2), you should set `preallocation off` in the storage configuration. In +combination with `qcow2` (used automatically as the format for the fleecing +image when the storage supports it), this has the advantage that already +allocated parts of the image can be re-used later, which can still help save +quite a bit of space. + +WARNING: On a storage that's not thinly provisioned, e.g. LVM or ZFS without the +`sparse` option, the full size of the original disk needs to be reserved for the +fleecing image up-front. On a thinly provisioned storage, the fleecing image can +grow to the same size as the original image only if the guest re-writes a whole +disk while the backup is busy with another disk. + Backup File Names ----------------- -- 2.39.2 From 905fff4902347e1c981c9769ed38ec1415e27c5b Mon Sep 17 00:00:00 2001 From: Stoiko Ivanov Date: Fri, 19 Apr 2024 20:43:29 +0200 Subject: [PATCH 02/16] firmware: adapt to proxmox packaged fwupd MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit We ship our own fwupd package, since it needs to handle the differently named efi_os_dir (proxmox vs debian). Due to our experience with `udisks2` causing issues on hypervisors, our package downgraded the Recommends udisks2, to a Suggests. The downside is, that users need to explicitly set their ESP mountpoint in the config file. Additionally a minor stylistic rephrasing (is an option vs. could be an option). Tested this today, while giving our fwupd package a spin. Suggested-by: Fabian Grünbichler Signed-off-by: Stoiko Ivanov --- firmware-updates.adoc | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/firmware-updates.adoc b/firmware-updates.adoc index 279cf11..8354955 100644 --- a/firmware-updates.adoc +++ b/firmware-updates.adoc @@ -43,13 +43,22 @@ ConnectX or https://techdocs.broadcom.com/us/en/storage-and-ethernet-connectivity/ethernet-nic-controllers/bcm957xxx/adapters/software-installation/updating-the-firmware/manually-updating-the-adapter-firmware-on-linuxesx.html['bnxtnvm'/'niccli'] for Broadcom network cards. -* https://fwupd.org[LVFS] could also be an option if there is a cooperation with -a https://fwupd.org/lvfs/vendors/[vendor] and +* https://fwupd.org[LVFS] is also an option if there is a cooperation with +the https://fwupd.org/lvfs/vendors/[hardware vendor] and https://fwupd.org/lvfs/devices/[supported hardware] in use. The technical -requirement for this is that the system was manufactured after 2014, is booted -via UEFI and the easiest way is to mount the EFI partition from which you boot -(`mount /dev/disk/by-partuuid/ /boot/efi`) before installing -'fwupd'. +requirement for this is that the system was manufactured after 2014 and is +booted via UEFI. + +Since {pve} ships its own version of the `fwupd` package, for Secure Boot +Support with the Proxmox signing key, which does not recommend the `udisks2` +package, due to observed issues with its use on hypervisors setting the mount +point of the EFI partition in `/etc/fwupd/daemon.conf` is necessary: + +.File `/etc/fwupd/daemon.conf` +---- +# Override the location used for the EFI system partition (ESP) path. +EspLocation=/boot/efi +---- TIP: If the update instructions require a host reboot, make sure that it can be done safely. See also xref:ha_manager_node_maintenance[Node Maintenance]. -- 2.39.2 From a3806d641c0541159d47a669e13741ef56171cf5 Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Sun, 21 Apr 2024 11:03:23 +0200 Subject: [PATCH 03/16] firmware updates: split overly long sentence into three separate one Surely still not perfect but even me, a comma loving creator of complex sentences, found rather hard to follow, so this had to get split up. Signed-off-by: Thomas Lamprecht --- firmware-updates.adoc | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/firmware-updates.adoc b/firmware-updates.adoc index 8354955..2ccbb30 100644 --- a/firmware-updates.adoc +++ b/firmware-updates.adoc @@ -49,10 +49,11 @@ https://fwupd.org/lvfs/devices/[supported hardware] in use. The technical requirement for this is that the system was manufactured after 2014 and is booted via UEFI. -Since {pve} ships its own version of the `fwupd` package, for Secure Boot -Support with the Proxmox signing key, which does not recommend the `udisks2` -package, due to observed issues with its use on hypervisors setting the mount -point of the EFI partition in `/etc/fwupd/daemon.conf` is necessary: +{pve} ships its own version of the `fwupd` package to enable Secure Boot +Support with the Proxmox signing key. This package conciosuly dropped the +dependency recommendation for the `udisks2` package, due to observed issues with +its use on hypervisors. That means you must explicitly configure the correct +mount point of the EFI partition in `/etc/fwupd/daemon.conf`, for example: .File `/etc/fwupd/daemon.conf` ---- -- 2.39.2 From 0500f140bf41a9c244f94e17ab74437d95de080d Mon Sep 17 00:00:00 2001 From: Stefan Hanreich Date: Fri, 12 Apr 2024 10:07:33 +0200 Subject: [PATCH 04/16] network: update specification for bridge names MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Reviewed-by: Fabian Grünbichler Signed-off-by: Stefan Hanreich --- pve-network.adoc | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pve-network.adoc b/pve-network.adoc index d1ec64b..ef586ec 100644 --- a/pve-network.adoc +++ b/pve-network.adoc @@ -13,11 +13,11 @@ page contains the complete format description. All {pve} tools try hard to keep direct user modifications, but using the GUI is still preferable, because it protects you from errors. -A 'vmbr' interface is needed to connect guests to the underlying physical -network. They are a Linux bridge which can be thought of as a virtual switch -to which the guests and physical interfaces are connected to. This section -provides some examples on how the network can be set up to accomodate different -use cases like redundancy with a xref:sysadmin_network_bond['bond'], +A Linux bridge interface (commonly called 'vmbrX') is needed to connect guests +to the underlying physical network. It can be thought of as a virtual switch +which the guests and physical interfaces are connected to. This section provides +some examples on how the network can be set up to accomodate different use cases +like redundancy with a xref:sysadmin_network_bond['bond'], xref:sysadmin_network_vlan['vlans'] or xref:sysadmin_network_routed['routed'] and xref:sysadmin_network_masquerading['NAT'] setups. @@ -75,7 +75,9 @@ We currently use the following naming conventions for device names: scheme is used for {pve} hosts which were installed before the 5.0 release. When upgrading to 5.0, the names are kept as-is. -* Bridge names: `vmbr[N]`, where 0 ≤ N ≤ 4094 (`vmbr0` - `vmbr4094`) +* Bridge names: Commonly `vmbr[N]`, where 0 ≤ N ≤ 4094 (`vmbr0` - `vmbr4094`), +but you can use any alphanumeric string that starts with a character and is at +most 10 characters long. * Bonds: `bond[N]`, where 0 ≤ N (`bond0`, `bond1`, ...) -- 2.39.2 From 62ef2acb18029e7c6734a5283298c23c6b236d90 Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Sun, 21 Apr 2024 12:03:30 +0200 Subject: [PATCH 05/16] firmware-updates: fix typo Signed-off-by: Thomas Lamprecht --- firmware-updates.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/firmware-updates.adoc b/firmware-updates.adoc index 2ccbb30..f722f4c 100644 --- a/firmware-updates.adoc +++ b/firmware-updates.adoc @@ -50,7 +50,7 @@ requirement for this is that the system was manufactured after 2014 and is booted via UEFI. {pve} ships its own version of the `fwupd` package to enable Secure Boot -Support with the Proxmox signing key. This package conciosuly dropped the +Support with the Proxmox signing key. This package consciously dropped the dependency recommendation for the `udisks2` package, due to observed issues with its use on hypervisors. That means you must explicitly configure the correct mount point of the EFI partition in `/etc/fwupd/daemon.conf`, for example: -- 2.39.2 From 907e4bc32b66bfcdd3fe90c6098da041bb0f67f5 Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Mon, 22 Apr 2024 13:15:46 +0200 Subject: [PATCH 06/16] update static/schema information Signed-off-by: Thomas Lamprecht --- api-viewer/apidata.js | 439 ++++++++++++++++++++++++++++-------- datacenter.cfg.5-opts.adoc | 21 +- pct.1-synopsis.adoc | 14 +- pve-firewall-host-opts.adoc | 4 + pveam.1-synopsis.adoc | 4 +- pvecm.1-synopsis.adoc | 4 + pvenode.1-synopsis.adoc | 4 +- pvesm.1-synopsis.adoc | 20 +- qm.1-synopsis.adoc | 48 ++-- qm.conf.5-opts.adoc | 12 +- qmrestore.1-synopsis.adoc | 2 +- vzdump.1-synopsis.adoc | 6 +- vzdump.conf.5-opts.adoc | 14 +- 13 files changed, 435 insertions(+), 157 deletions(-) diff --git a/api-viewer/apidata.js b/api-viewer/apidata.js index 6eb7cff..ffc3a1f 100644 --- a/api-viewer/apidata.js +++ b/api-viewer/apidata.js @@ -2127,7 +2127,8 @@ const apiSchema = [ "description" : "Type of the target.", "enum" : [ "sendmail", - "gotify" + "gotify", + "smtp" ], "type" : "string" } @@ -5568,6 +5569,13 @@ const apiSchema = [ "type" : "array", "typetext" : "" }, + "fleecing" : { + "description" : "Options for backup fleecing (VM only).", + "format" : "backup-fleecing", + "optional" : 1, + "type" : "string", + "typetext" : "[[enabled=]<1|0>] [,storage=]" + }, "id" : { "description" : "The job ID.", "maxLength" : 50, @@ -5772,9 +5780,10 @@ const apiSchema = [ "storage" : { "description" : "Store resulting file to this storage.", "format" : "pve-storage-id", + "format_description" : "storage ID", "optional" : 1, "type" : "string", - "typetext" : "" + "typetext" : "" }, "tmpdir" : { "description" : "Store temporary files to specified directory.", @@ -5938,6 +5947,13 @@ const apiSchema = [ "type" : "array", "typetext" : "" }, + "fleecing" : { + "description" : "Options for backup fleecing (VM only).", + "format" : "backup-fleecing", + "optional" : 1, + "type" : "string", + "typetext" : "[[enabled=]<1|0>] [,storage=]" + }, "id" : { "description" : "Job ID (will be autogenerated).", "format" : "pve-configid", @@ -6143,9 +6159,10 @@ const apiSchema = [ "storage" : { "description" : "Store resulting file to this storage.", "format" : "pve-storage-id", + "format_description" : "storage ID", "optional" : 1, "type" : "string", - "typetext" : "" + "typetext" : "" }, "tmpdir" : { "description" : "Store temporary files to specified directory.", @@ -9336,6 +9353,8 @@ const apiSchema = [ "typetext" : "" }, "mdev" : { + "default" : 0, + "description" : "Marks the device(s) as being capable of providing mediated devices.", "optional" : 1, "type" : "boolean", "typetext" : "" @@ -9503,6 +9522,8 @@ const apiSchema = [ "typetext" : "" }, "mdev" : { + "default" : 0, + "description" : "Marks the device(s) as being capable of providing mediated devices.", "optional" : 1, "type" : "boolean", "typetext" : "" @@ -12270,6 +12291,7 @@ const apiSchema = [ "storage" : { "description" : "The storage identifier (when type == storage).", "format" : "pve-storage-id", + "format_description" : "storage ID", "optional" : 1, "type" : "string" }, @@ -12651,19 +12673,17 @@ const apiSchema = [ "description" : "Cluster-wide notification settings.", "format" : { "fencing" : { - "default" : "always", - "description" : "Control if notifications about node fencing should be sent.", + "description" : "UNUSED - Use datacenter notification settings instead.", "enum" : [ "always", "never" ], "optional" : 1, - "type" : "string", - "verbose_description" : "Control if notifications about node fencing should be sent.\n* 'always' always send out notifications\n* 'never' never send out notifications.\nFor production systems, turning off node fencing notifications is notrecommended!\n" + "type" : "string" }, "package-updates" : { "default" : "auto", - "description" : "Control when the daily update job should send out notifications.", + "description" : "DEPRECATED: Use datacenter notification settings instead. Control when the daily update job should send out notifications.", "enum" : [ "auto", "always", @@ -12671,39 +12691,34 @@ const apiSchema = [ ], "optional" : 1, "type" : "string", - "verbose_description" : "Control how often the daily update job should send out notifications:\n* 'auto' daily for systems with a valid subscription, as those are assumed to be production-ready and thus should know about pending updates.\n* 'always' every update, if there are new pending updates.\n* 'never' never send a notification for new pending updates.\n" + "verbose_description" : "DEPRECATED: Use datacenter notification settings instead.\nControl how often the daily update job should send out notifications:\n* 'auto' daily for systems with a valid subscription, as those are assumed to be production-ready and thus should know about pending updates.\n* 'always' every update, if there are new pending updates.\n* 'never' never send a notification for new pending updates.\n" }, "replication" : { - "default" : "always", - "description" : "Control if notifications for replication failures should be sent.", + "description" : "UNUSED - Use datacenter notification settings instead.", "enum" : [ "always", "never" ], "optional" : 1, - "type" : "string", - "verbose_description" : "Control if notifications for replication failures should be sent.\n* 'always' always send out notifications\n* 'never' never send out notifications.\nFor production systems, turning off replication notifications is notrecommended!\n" + "type" : "string" }, "target-fencing" : { - "description" : "Control where notifications about fenced cluster nodes should be sent to.", + "description" : "UNUSED - Use datacenter notification settings instead.", "format_description" : "TARGET", "optional" : 1, - "type" : "string", - "verbose_description" : "Control where notifications about fenced cluster nodes should be sent to. Has to be the name of a notification target (endpoint or notification group). If the 'target-fencing' parameter is not set, the system will send mails to root via a 'sendmail' notification endpoint." + "type" : "string" }, "target-package-updates" : { - "description" : "Control where notifications about available updates should be sent to.", + "description" : "UNUSED - Use datacenter notification settings instead.", "format_description" : "TARGET", "optional" : 1, - "type" : "string", - "verbose_description" : "Control where notifications about available updates should be sent to. Has to be the name of a notification target (endpoint or notification group). If the 'target-package-updates' parameter is not set, the system will send mails to root via a 'sendmail' notification endpoint." + "type" : "string" }, "target-replication" : { - "description" : "Control where notifications for failed storage replication jobs should be sent to.", + "description" : "UNUSED - Use datacenter notification settings instead.", "format_description" : "TARGET", "optional" : 1, - "type" : "string", - "verbose_description" : "Control where notifications for failed storage replication jobs should be sent to. Has to be the name of a notification target (endpoint or notification group). If the 'target-replication' parameter is not set, the system will send mails to root via a 'sendmail' notification endpoint." + "type" : "string" } }, "optional" : 1, @@ -17218,10 +17233,28 @@ const apiSchema = [ "type" : "string" }, "machine" : { - "description" : "Specifies the QEMU machine type.", - "maxLength" : 40, + "description" : "Specify the QEMU machine.", + "format" : { + "type" : { + "default_key" : 1, + "description" : "Specifies the QEMU machine type.", + "format_description" : "machine type", + "maxLength" : 40, + "optional" : 1, + "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)", + "type" : "string" + }, + "viommu" : { + "description" : "Enable and set guest vIOMMU variant (Intel vIOMMU needs q35 to be set as machine type).", + "enum" : [ + "intel", + "virtio" + ], + "optional" : 1, + "type" : "string" + } + }, "optional" : 1, - "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)", "type" : "string" }, "memory" : { @@ -18777,6 +18810,7 @@ const apiSchema = [ "vmstatestorage" : { "description" : "Default storage for VM state volumes/files.", "format" : "pve-storage-id", + "format_description" : "storage ID", "optional" : 1, "type" : "string" }, @@ -19575,11 +19609,30 @@ const apiSchema = [ "type" : "string" }, "machine" : { - "description" : "Specifies the QEMU machine type.", - "maxLength" : 40, + "description" : "Specify the QEMU machine.", + "format" : { + "type" : { + "default_key" : 1, + "description" : "Specifies the QEMU machine type.", + "format_description" : "machine type", + "maxLength" : 40, + "optional" : 1, + "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)", + "type" : "string" + }, + "viommu" : { + "description" : "Enable and set guest vIOMMU variant (Intel vIOMMU needs q35 to be set as machine type).", + "enum" : [ + "intel", + "virtio" + ], + "optional" : 1, + "type" : "string" + } + }, "optional" : 1, - "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)", - "type" : "string" + "type" : "string", + "typetext" : "[[type=]] [,viommu=]" }, "memory" : { "description" : "Memory properties.", @@ -21220,9 +21273,10 @@ const apiSchema = [ "vmstatestorage" : { "description" : "Default storage for VM state volumes/files.", "format" : "pve-storage-id", + "format_description" : "storage ID", "optional" : 1, "type" : "string", - "typetext" : "" + "typetext" : "" }, "watchdog" : { "description" : "Create a virtual hardware watchdog device.", @@ -22035,11 +22089,30 @@ const apiSchema = [ "type" : "string" }, "machine" : { - "description" : "Specifies the QEMU machine type.", - "maxLength" : 40, + "description" : "Specify the QEMU machine.", + "format" : { + "type" : { + "default_key" : 1, + "description" : "Specifies the QEMU machine type.", + "format_description" : "machine type", + "maxLength" : 40, + "optional" : 1, + "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)", + "type" : "string" + }, + "viommu" : { + "description" : "Enable and set guest vIOMMU variant (Intel vIOMMU needs q35 to be set as machine type).", + "enum" : [ + "intel", + "virtio" + ], + "optional" : 1, + "type" : "string" + } + }, "optional" : 1, - "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)", - "type" : "string" + "type" : "string", + "typetext" : "[[type=]] [,viommu=]" }, "memory" : { "description" : "Memory properties.", @@ -23680,9 +23753,10 @@ const apiSchema = [ "vmstatestorage" : { "description" : "Default storage for VM state volumes/files.", "format" : "pve-storage-id", + "format_description" : "storage ID", "optional" : 1, "type" : "string", - "typetext" : "" + "typetext" : "" }, "watchdog" : { "description" : "Create a virtual hardware watchdog device.", @@ -24464,11 +24538,30 @@ const apiSchema = [ "typetext" : "" }, "machine" : { - "description" : "Specifies the QEMU machine type.", - "maxLength" : 40, + "description" : "Specify the QEMU machine.", + "format" : { + "type" : { + "default_key" : 1, + "description" : "Specifies the QEMU machine type.", + "format_description" : "machine type", + "maxLength" : 40, + "optional" : 1, + "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)", + "type" : "string" + }, + "viommu" : { + "description" : "Enable and set guest vIOMMU variant (Intel vIOMMU needs q35 to be set as machine type).", + "enum" : [ + "intel", + "virtio" + ], + "optional" : 1, + "type" : "string" + } + }, "optional" : 1, - "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)", - "type" : "string" + "type" : "string", + "typetext" : "[[type=]] [,viommu=]" }, "migratedfrom" : { "description" : "The cluster node name.", @@ -24561,7 +24654,7 @@ const apiSchema = [ "info" : { "POST" : { "allowtoken" : 1, - "description" : "Stop virtual machine. The qemu process will exit immediately. Thisis akin to pulling the power plug of a running computer and may damage the VM data", + "description" : "Stop virtual machine. The qemu process will exit immediately. This is akin to pulling the power plug of a running computer and may damage the VM data.", "method" : "POST", "name" : "vm_stop", "parameters" : { @@ -24587,6 +24680,13 @@ const apiSchema = [ "type" : "string", "typetext" : "" }, + "overrule-shutdown" : { + "default" : 0, + "description" : "Try to abort active 'qmshutdown' tasks before stopping.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, "skiplock" : { "description" : "Ignore locks - only root is allowed to use this option.", "optional" : 1, @@ -24686,7 +24786,7 @@ const apiSchema = [ "info" : { "POST" : { "allowtoken" : 1, - "description" : "Shutdown virtual machine. This is similar to pressing the power button on a physical machine.This will send an ACPI event for the guest OS, which should then proceed to a clean shutdown.", + "description" : "Shutdown virtual machine. This is similar to pressing the power button on a physical machine. This will send an ACPI event for the guest OS, which should then proceed to a clean shutdown.", "method" : "POST", "name" : "vm_shutdown", "parameters" : { @@ -24833,10 +24933,11 @@ const apiSchema = [ "statestorage" : { "description" : "The storage for the VM state", "format" : "pve-storage-id", + "format_description" : "storage ID", "optional" : 1, "requires" : "todisk", "type" : "string", - "typetext" : "" + "typetext" : "" }, "todisk" : { "default" : 0, @@ -25196,9 +25297,10 @@ const apiSchema = [ "storage" : { "description" : "Target storage for full clone.", "format" : "pve-storage-id", + "format_description" : "storage ID", "optional" : 1, "type" : "string", - "typetext" : "" + "typetext" : "" }, "target" : { "description" : "Target node. Only allowed if the original VM is on shared storage.", @@ -25632,9 +25734,10 @@ const apiSchema = [ "storage" : { "description" : "Target storage.", "format" : "pve-storage-id", + "format_description" : "storage ID", "optional" : 1, "type" : "string", - "typetext" : "" + "typetext" : "" }, "target-digest" : { "description" : "Prevent changes if the current config file of the target VM has a\"\n\t\t .\" different SHA1 digest. This can be used to detect concurrent modifications.", @@ -26228,7 +26331,7 @@ const apiSchema = [ "description" : "Remote target endpoint", "format" : "proxmox-remote", "type" : "string", - "typetext" : "apitoken= ,host=
[,fingerprint=] [,port=]" + "typetext" : "apitoken= ,host=
[,fingerprint=] [,port=]" }, "target-storage" : { "description" : "Mapping from source to target storages. Providing only a single storage ID maps all source storages to that storage. Providing the special value '1' will map each source storage to itself.", @@ -28149,11 +28252,30 @@ const apiSchema = [ "type" : "string" }, "machine" : { - "description" : "Specifies the QEMU machine type.", - "maxLength" : 40, + "description" : "Specify the QEMU machine.", + "format" : { + "type" : { + "default_key" : 1, + "description" : "Specifies the QEMU machine type.", + "format_description" : "machine type", + "maxLength" : 40, + "optional" : 1, + "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)", + "type" : "string" + }, + "viommu" : { + "description" : "Enable and set guest vIOMMU variant (Intel vIOMMU needs q35 to be set as machine type).", + "enum" : [ + "intel", + "virtio" + ], + "optional" : 1, + "type" : "string" + } + }, "optional" : 1, - "pattern" : "(pc|pc(-i440fx)?-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|q35|pc-q35-\\d+(\\.\\d+)+(\\+pve\\d+)?(\\.pxe)?|virt(?:-\\d+(\\.\\d+)+)?(\\+pve\\d+)?)", - "type" : "string" + "type" : "string", + "typetext" : "[[type=]] [,viommu=]" }, "memory" : { "description" : "Memory properties.", @@ -29282,9 +29404,10 @@ const apiSchema = [ "storage" : { "description" : "Default storage.", "format" : "pve-storage-id", + "format_description" : "storage ID", "optional" : 1, "type" : "string", - "typetext" : "" + "typetext" : "" }, "tablet" : { "default" : 1, @@ -29809,9 +29932,10 @@ const apiSchema = [ "vmstatestorage" : { "description" : "Default storage for VM state volumes/files.", "format" : "pve-storage-id", + "format_description" : "storage ID", "optional" : 1, "type" : "string", - "typetext" : "" + "typetext" : "" }, "watchdog" : { "description" : "Create a virtual hardware watchdog device.", @@ -31221,6 +31345,13 @@ const apiSchema = [ "type" : "string", "typetext" : "" }, + "overrule-shutdown" : { + "default" : 0, + "description" : "Try to abort active 'vzshutdown' tasks before stopping.", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, "skiplock" : { "description" : "Ignore locks - only root is allowed to use this option.", "optional" : 1, @@ -34285,7 +34416,7 @@ const apiSchema = [ "description" : "Remote target endpoint", "format" : "proxmox-remote", "type" : "string", - "typetext" : "apitoken= ,host=
[,fingerprint=] [,port=]" + "typetext" : "apitoken= ,host=
[,fingerprint=] [,port=]" }, "target-storage" : { "description" : "Mapping from source to target storages. Providing only a single storage ID maps all source storages to that storage. Providing the special value '1' will map each source storage to itself.", @@ -34612,9 +34743,10 @@ const apiSchema = [ "storage" : { "description" : "Target storage for full clone.", "format" : "pve-storage-id", + "format_description" : "storage ID", "optional" : 1, "type" : "string", - "typetext" : "" + "typetext" : "" }, "target" : { "description" : "Target node. Only allowed if the original VM is on shared storage.", @@ -35041,9 +35173,10 @@ const apiSchema = [ "storage" : { "description" : "Target Storage.", "format" : "pve-storage-id", + "format_description" : "storage ID", "optional" : 1, "type" : "string", - "typetext" : "" + "typetext" : "" }, "target-digest" : { "description" : "Prevent changes if current configuration file of the target \" .\n\t\t \"container has a different SHA1 digest. This can be used to prevent \" .\n\t\t \"concurrent modifications.", @@ -37175,9 +37308,10 @@ const apiSchema = [ "default" : "local", "description" : "Default Storage.", "format" : "pve-storage-id", + "format_description" : "storage ID", "optional" : 1, "type" : "string", - "typetext" : "" + "typetext" : "" }, "swap" : { "default" : 512, @@ -39945,9 +40079,10 @@ const apiSchema = [ "storage" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "optional" : 1, "type" : "string", - "typetext" : "" + "typetext" : "" } } }, @@ -40004,6 +40139,12 @@ const apiSchema = [ "optional" : 1, "type" : "array" }, + "fleecing" : { + "description" : "Options for backup fleecing (VM only).", + "format" : "backup-fleecing", + "optional" : 1, + "type" : "string" + }, "ionice" : { "default" : 7, "description" : "Set IO priority when using the BFQ scheduler. For snapshot and suspend mode backups of VMs, this only affects the compressor. A value of 8 means the idle priority is used, otherwise the best-effort priority is used with the specified value.", @@ -40162,6 +40303,7 @@ const apiSchema = [ "storage" : { "description" : "Store resulting file to this storage.", "format" : "pve-storage-id", + "format_description" : "storage ID", "optional" : 1, "type" : "string" }, @@ -40289,6 +40431,13 @@ const apiSchema = [ "type" : "array", "typetext" : "" }, + "fleecing" : { + "description" : "Options for backup fleecing (VM only).", + "format" : "backup-fleecing", + "optional" : 1, + "type" : "string", + "typetext" : "[[enabled=]<1|0>] [,storage=]" + }, "ionice" : { "default" : 7, "description" : "Set IO priority when using the BFQ scheduler. For snapshot and suspend mode backups of VMs, this only affects the compressor. A value of 8 means the idle priority is used, otherwise the best-effort priority is used with the specified value.", @@ -40471,9 +40620,10 @@ const apiSchema = [ "storage" : { "description" : "Store resulting file to this storage.", "format" : "pve-storage-id", + "format_description" : "storage ID", "optional" : 1, "type" : "string", - "typetext" : "" + "typetext" : "" }, "tmpdir" : { "description" : "Store temporary files to specified directory.", @@ -40498,7 +40648,7 @@ const apiSchema = [ } }, "permissions" : { - "description" : "The user needs 'VM.Backup' permissions on any VM, and 'Datastore.AllocateSpace' on the backup storage. The 'tmpdir', 'dumpdir' and 'script' parameters are restricted to the 'root@pam' user. The 'maxfiles' and 'prune-backups' settings require 'Datastore.Allocate' on the backup storage. The 'bwlimit', 'performance' and 'ionice' parameters require 'Sys.Modify' on '/'. ", + "description" : "The user needs 'VM.Backup' permissions on any VM, and 'Datastore.AllocateSpace' on the backup storage (and fleecing storage when fleecing is used). The 'tmpdir', 'dumpdir' and 'script' parameters are restricted to the 'root@pam' user. The 'maxfiles' and 'prune-backups' settings require 'Datastore.Allocate' on the backup storage. The 'bwlimit', 'performance' and 'ionice' parameters require 'Sys.Modify' on '/'.", "user" : "all" }, "protected" : 1, @@ -43287,8 +43437,9 @@ const apiSchema = [ "storage" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" }, "type" : { "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.", @@ -43344,8 +43495,9 @@ const apiSchema = [ "storage" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" }, "type" : { "description" : "Either 'qemu' or 'lxc'. Only consider backups for guests of this type.", @@ -43451,9 +43603,10 @@ const apiSchema = [ "storage" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "optional" : 1, "type" : "string", - "typetext" : "" + "typetext" : "" }, "volume" : { "description" : "Volume identifier", @@ -43490,9 +43643,10 @@ const apiSchema = [ "storage" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "optional" : 1, "type" : "string", - "typetext" : "" + "typetext" : "" }, "volume" : { "description" : "Volume identifier", @@ -43558,9 +43712,10 @@ const apiSchema = [ "storage" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "optional" : 1, "type" : "string", - "typetext" : "" + "typetext" : "" }, "target" : { "description" : "Target volume identifier", @@ -43616,9 +43771,10 @@ const apiSchema = [ "storage" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "optional" : 1, "type" : "string", - "typetext" : "" + "typetext" : "" }, "volume" : { "description" : "Volume identifier", @@ -43668,8 +43824,9 @@ const apiSchema = [ "storage" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" }, "vmid" : { "description" : "Only list images for this VM", @@ -43813,8 +43970,9 @@ const apiSchema = [ "storage" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" }, "vmid" : { "description" : "Specify owner VM", @@ -43873,8 +44031,9 @@ const apiSchema = [ "storage" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" }, "volume" : { "description" : "Backup volume ID or name. Currently only PBS snapshots are supported.", @@ -43953,8 +44112,9 @@ const apiSchema = [ "storage" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" }, "tar" : { "default" : 0, @@ -44009,8 +44169,9 @@ const apiSchema = [ "storage" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" } } }, @@ -44071,8 +44232,9 @@ const apiSchema = [ "storage" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" }, "timeframe" : { "description" : "Specify the time frame you are interested in.", @@ -44143,8 +44305,9 @@ const apiSchema = [ "storage" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" }, "timeframe" : { "description" : "Specify the time frame you are interested in.", @@ -44241,8 +44404,9 @@ const apiSchema = [ "storage" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" }, "tmpfilename" : { "description" : "The source file name. This parameter is usually set by the REST handler. You can only overwrite it when connecting to the trusted port on localhost.", @@ -44333,8 +44497,9 @@ const apiSchema = [ "storage" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" }, "url" : { "description" : "The URL to download the file from.", @@ -44411,8 +44576,9 @@ const apiSchema = [ "storage" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" }, "volume" : { "description" : "Volume identifier for the guest archive/entry.", @@ -44523,8 +44689,9 @@ const apiSchema = [ "storage" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" } } }, @@ -44603,9 +44770,10 @@ const apiSchema = [ "storage" : { "description" : "Only list status for specified storage", "format" : "pve-storage-id", + "format_description" : "storage ID", "optional" : 1, "type" : "string", - "typetext" : "" + "typetext" : "" }, "target" : { "description" : "If target is different to 'node', we only lists shared storages which content is accessible on this 'node' and the specified 'target' node.", @@ -44654,6 +44822,7 @@ const apiSchema = [ "storage" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string" }, "total" : { @@ -44726,8 +44895,9 @@ const apiSchema = [ "name" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" }, "node" : { "description" : "The cluster node name.", @@ -44867,8 +45037,9 @@ const apiSchema = [ "name" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" }, "node" : { "description" : "The cluster node name.", @@ -44928,8 +45099,9 @@ const apiSchema = [ "name" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" }, "node" : { "description" : "The cluster node name.", @@ -44940,8 +45112,9 @@ const apiSchema = [ "volume-group" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" } } }, @@ -45051,8 +45224,9 @@ const apiSchema = [ "name" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" }, "node" : { "description" : "The cluster node name.", @@ -45112,8 +45286,9 @@ const apiSchema = [ "name" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" }, "node" : { "description" : "The cluster node name.", @@ -45235,8 +45410,9 @@ const apiSchema = [ "name" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" }, "node" : { "description" : "The cluster node name.", @@ -45296,8 +45472,9 @@ const apiSchema = [ "name" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" }, "node" : { "description" : "The cluster node name.", @@ -45334,8 +45511,9 @@ const apiSchema = [ "name" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" }, "node" : { "description" : "The cluster node name.", @@ -45565,8 +45743,9 @@ const apiSchema = [ "name" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" }, "node" : { "description" : "The cluster node name.", @@ -47115,6 +47294,12 @@ const apiSchema = [ "optional" : 1, "type" : "integer" }, + "nftables" : { + "default" : 0, + "description" : "Enable nftables based firewall (tech preview)", + "optional" : 1, + "type" : "boolean" + }, "nosmurfs" : { "description" : "Enable SMURFS filter.", "optional" : 1, @@ -47294,6 +47479,13 @@ const apiSchema = [ "type" : "integer", "typetext" : " (30 - 60)" }, + "nftables" : { + "default" : 0, + "description" : "Enable nftables based firewall (tech preview)", + "optional" : 1, + "type" : "boolean", + "typetext" : "" + }, "node" : { "description" : "The cluster node name.", "format" : "pve-node", @@ -48331,8 +48523,32 @@ const apiSchema = [ "type" : "integer" }, "wakeonlan" : { - "description" : "MAC address for wake on LAN", - "format" : "mac-addr", + "description" : "Node specific wake on LAN settings.", + "format" : { + "bind-interface" : { + "default" : "The interface carrying the default route", + "description" : "Bind to this interface when sending wake on LAN packet", + "format" : "pve-iface", + "format_description" : "bind interface", + "optional" : 1, + "type" : "string" + }, + "broadcast-address" : { + "default" : "255.255.255.255", + "description" : "IPv4 broadcast address to use when sending wake on LAN packet", + "format" : "ipv4", + "format_description" : "IPv4 broadcast address", + "optional" : 1, + "type" : "string" + }, + "mac" : { + "default_key" : 1, + "description" : "MAC address for wake on LAN", + "format" : "mac-addr", + "format_description" : "MAC address", + "type" : "string" + } + }, "optional" : 1, "type" : "string" } @@ -48438,11 +48654,35 @@ const apiSchema = [ "typetext" : " (0 - 300)" }, "wakeonlan" : { - "description" : "MAC address for wake on LAN", - "format" : "mac-addr", + "description" : "Node specific wake on LAN settings.", + "format" : { + "bind-interface" : { + "default" : "The interface carrying the default route", + "description" : "Bind to this interface when sending wake on LAN packet", + "format" : "pve-iface", + "format_description" : "bind interface", + "optional" : 1, + "type" : "string" + }, + "broadcast-address" : { + "default" : "255.255.255.255", + "description" : "IPv4 broadcast address to use when sending wake on LAN packet", + "format" : "ipv4", + "format_description" : "IPv4 broadcast address", + "optional" : 1, + "type" : "string" + }, + "mac" : { + "default_key" : 1, + "description" : "MAC address for wake on LAN", + "format" : "mac-addr", + "format_description" : "MAC address", + "type" : "string" + } + }, "optional" : 1, "type" : "string", - "typetext" : "" + "typetext" : "[mac=] [,bind-interface=] [,broadcast-address=]" } } }, @@ -49827,8 +50067,9 @@ const apiSchema = [ "storage" : { "description" : "The storage where the template will be stored", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" }, "template" : { "description" : "The template which will downloaded", @@ -50407,8 +50648,9 @@ const apiSchema = [ "storage" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" } } }, @@ -50437,8 +50679,9 @@ const apiSchema = [ "storage" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" } } }, @@ -50732,7 +50975,6 @@ const apiSchema = [ "typetext" : "" }, "port" : { - "default" : 8007, "description" : "For non default port.", "maximum" : 65535, "minimum" : 1, @@ -50822,8 +51064,9 @@ const apiSchema = [ "storage" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" }, "subdir" : { "description" : "Subdir to mount.", @@ -51273,7 +51516,6 @@ const apiSchema = [ "typetext" : "" }, "port" : { - "default" : 8007, "description" : "For non default port.", "maximum" : 65535, "minimum" : 1, @@ -51376,8 +51618,9 @@ const apiSchema = [ "storage" : { "description" : "The storage identifier.", "format" : "pve-storage-id", + "format_description" : "storage ID", "type" : "string", - "typetext" : "" + "typetext" : "" }, "subdir" : { "description" : "Subdir to mount.", diff --git a/datacenter.cfg.5-opts.adoc b/datacenter.cfg.5-opts.adoc index 4363451..473f906 100644 --- a/datacenter.cfg.5-opts.adoc +++ b/datacenter.cfg.5-opts.adoc @@ -117,38 +117,33 @@ Upper, exclusive boundary for free next-id API range. Cluster-wide notification settings. -`fencing`=`` ('default =' `always`);; +`fencing`=`` ;; -Control if notifications about node fencing should be sent. -* 'always' always send out notifications -* 'never' never send out notifications. -For production systems, turning off node fencing notifications is notrecommended! +UNUSED - Use datacenter notification settings instead. `package-updates`=`` ('default =' `auto`);; +DEPRECATED: Use datacenter notification settings instead. Control how often the daily update job should send out notifications: * 'auto' daily for systems with a valid subscription, as those are assumed to be production-ready and thus should know about pending updates. * 'always' every update, if there are new pending updates. * 'never' never send a notification for new pending updates. -`replication`=`` ('default =' `always`);; +`replication`=`` ;; -Control if notifications for replication failures should be sent. -* 'always' always send out notifications -* 'never' never send out notifications. -For production systems, turning off replication notifications is notrecommended! +UNUSED - Use datacenter notification settings instead. `target-fencing`=`` ;; -Control where notifications about fenced cluster nodes should be sent to. Has to be the name of a notification target (endpoint or notification group). If the 'target-fencing' parameter is not set, the system will send mails to root via a 'sendmail' notification endpoint. +UNUSED - Use datacenter notification settings instead. `target-package-updates`=`` ;; -Control where notifications about available updates should be sent to. Has to be the name of a notification target (endpoint or notification group). If the 'target-package-updates' parameter is not set, the system will send mails to root via a 'sendmail' notification endpoint. +UNUSED - Use datacenter notification settings instead. `target-replication`=`` ;; -Control where notifications for failed storage replication jobs should be sent to. Has to be the name of a notification target (endpoint or notification group). If the 'target-replication' parameter is not set, the system will send mails to root via a 'sendmail' notification endpoint. +UNUSED - Use datacenter notification settings instead. `registered-tags`: `[;...]` :: diff --git a/pct.1-synopsis.adoc b/pct.1-synopsis.adoc index 5096033..47e8304 100644 --- a/pct.1-synopsis.adoc +++ b/pct.1-synopsis.adoc @@ -36,7 +36,7 @@ Add the new CT to the specified pool. The name of the snapshot. -`--storage` `` :: +`--storage` `` :: Target storage for full clone. @@ -214,7 +214,7 @@ Start the CT after its creation finished successfully. Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped. -`--storage` `` ('default =' `local`):: +`--storage` `` ('default =' `local`):: Default Storage. @@ -432,7 +432,7 @@ The (unique) ID of the VM. Volume which will be moved. -``: `` :: +``: `` :: Target Storage. @@ -557,7 +557,7 @@ The (unique) ID of the VM. The (unique) ID of the VM. -``: `apitoken= ,host=
[,fingerprint=] [,port=]` :: +``: `apitoken= ,host=
[,fingerprint=] [,port=]` :: Remote target endpoint @@ -755,7 +755,7 @@ Start the CT after its creation finished successfully. Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped. -`--storage` `` ('default =' `local`):: +`--storage` `` ('default =' `local`):: Default Storage. @@ -1029,6 +1029,10 @@ container. The (unique) ID of the VM. +`--overrule-shutdown` `` ('default =' `0`):: + +Try to abort active 'vzshutdown' tasks before stopping. + `--skiplock` `` :: Ignore locks - only root is allowed to use this option. diff --git a/pve-firewall-host-opts.adoc b/pve-firewall-host-opts.adoc index 1dfcf5a..f9adbc5 100644 --- a/pve-firewall-host-opts.adoc +++ b/pve-firewall-host-opts.adoc @@ -38,6 +38,10 @@ Conntrack established timeout. Conntrack syn recv timeout. +`nftables`: `` ('default =' `0`):: + +Enable nftables based firewall (tech preview) + `nosmurfs`: `` :: Enable SMURFS filter. diff --git a/pveam.1-synopsis.adoc b/pveam.1-synopsis.adoc index feab465..36e559f 100644 --- a/pveam.1-synopsis.adoc +++ b/pveam.1-synopsis.adoc @@ -12,7 +12,7 @@ Restrict list to specified section. Download appliance templates. -``: `` :: +``: `` :: The storage where the template will be stored @@ -36,7 +36,7 @@ Verbose output format. Get list of all templates on storage -``: `` :: +``: `` :: Only list templates on specified storage diff --git a/pvecm.1-synopsis.adoc b/pvecm.1-synopsis.adoc index e0bdec2..ae3b202 100644 --- a/pvecm.1-synopsis.adoc +++ b/pvecm.1-synopsis.adoc @@ -185,4 +185,8 @@ Force generation of new SSL certificate. Ignore errors (i.e. when cluster has no quorum). +`--unmerge-known-hosts` `` ('default =' `0`):: + +Unmerge legacy SSH known hosts. + diff --git a/pvenode.1-synopsis.adoc b/pvenode.1-synopsis.adoc index 7f7085a..2c17e99 100644 --- a/pvenode.1-synopsis.adoc +++ b/pvenode.1-synopsis.adoc @@ -229,9 +229,9 @@ Prevent changes if current configuration file has different SHA1 digest. This ca Initial delay in seconds, before starting all the Virtual Guests with on-boot enabled. -`--wakeonlan` `` :: +`--wakeonlan` `[mac=] [,bind-interface=] [,broadcast-address=]` :: -MAC address for wake on LAN +Node specific wake on LAN settings. *pvenode help* `[OPTIONS]` diff --git a/pvesm.1-synopsis.adoc b/pvesm.1-synopsis.adoc index 7ad4249..e5f885f 100644 --- a/pvesm.1-synopsis.adoc +++ b/pvesm.1-synopsis.adoc @@ -8,7 +8,7 @@ Create a new storage. Storage type. -``: `` :: +``: `` :: The storage identifier. @@ -170,7 +170,7 @@ File system path. Pool. -`--port` ` (1 - 65535)` ('default =' `8007`):: +`--port` ` (1 - 65535)` :: For non default port. @@ -260,7 +260,7 @@ Glusterfs Volume. Allocate disk images. -``: `` :: +``: `` :: The storage identifier. @@ -342,7 +342,7 @@ Volume identifier Time to wait for the task to finish. We return 'null' if the task finish within that time. -`--storage` `` :: +`--storage` `` :: The storage identifier. @@ -406,7 +406,7 @@ An alias for 'pvesm scan iscsi'. List storage content. -``: `` :: +``: `` :: The storage identifier. @@ -444,7 +444,7 @@ Prune backups. Only those using the standard naming scheme are considered. If no keep options are specified, those from the storage configuration are used. -``: `` :: +``: `` :: The storage identifier. @@ -492,7 +492,7 @@ Only consider backups for this guest. Delete storage configuration. -``: `` :: +``: `` :: The storage identifier. @@ -584,7 +584,7 @@ Scan zfs pool list on local node. Update storage configuration. -``: `` :: +``: `` :: The storage identifier. @@ -730,7 +730,7 @@ Password for accessing the share/datastore. Pool. -`--port` ` (1 - 65535)` ('default =' `8007`):: +`--port` ` (1 - 65535)` :: For non default port. @@ -808,7 +808,7 @@ Only list stores which are enabled (not disabled in config). Include information about formats -`--storage` `` :: +`--storage` `` :: Only list status for specified storage diff --git a/qm.1-synopsis.adoc b/qm.1-synopsis.adoc index 089b32f..adc713e 100644 --- a/qm.1-synopsis.adoc +++ b/qm.1-synopsis.adoc @@ -61,7 +61,7 @@ Add the new VM to the specified pool. The name of the snapshot. -`--storage` `` :: +`--storage` `` :: Target storage for full clone. @@ -295,9 +295,9 @@ Set the real time clock (RTC) to local time. This is enabled by default if the ` Lock/unlock the VM. -`--machine` `(pc|pc(-i440fx)?-\d+(\.\d+)+(\+pve\d+)?(\.pxe)?|q35|pc-q35-\d+(\.\d+)+(\+pve\d+)?(\.pxe)?|virt(?:-\d+(\.\d+)+)?(\+pve\d+)?)` :: +`--machine` `[[type=]] [,viommu=]` :: -Specifies the QEMU machine type. +Specify the QEMU machine. `--memory` `[current=]` :: @@ -415,7 +415,7 @@ Set the initial date of the real time clock. Valid format for date are:'now' or Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped. -`--storage` `` :: +`--storage` `` :: Default storage. @@ -469,7 +469,7 @@ Use volume as VIRTIO hard disk (n is 0 to 15). Use the special syntax STORAGE_ID Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly. -`--vmstatestorage` `` :: +`--vmstatestorage` `` :: Default storage for VM state volumes/files. @@ -527,7 +527,7 @@ The (unique) ID of the VM. Path to the disk image to import -``: `` :: +``: `` :: Target storage ID @@ -547,7 +547,7 @@ The (unique) ID of the VM. The disk you want to move. -``: `` :: +``: `` :: Target storage. @@ -892,9 +892,9 @@ Set the real time clock (RTC) to local time. This is enabled by default if the ` Lock/unlock the VM. -`--machine` `(pc|pc(-i440fx)?-\d+(\.\d+)+(\+pve\d+)?(\.pxe)?|q35|pc-q35-\d+(\.\d+)+(\+pve\d+)?(\.pxe)?|virt(?:-\d+(\.\d+)+)?(\+pve\d+)?)` :: +`--machine` `[[type=]] [,viommu=]` :: -Specifies the QEMU machine type. +Specify the QEMU machine. `--memory` `[current=]` :: @@ -1004,7 +1004,7 @@ Set the initial date of the real time clock. Valid format for date are:'now' or Startup and shutdown behavior. Order is a non-negative number defining the general startup order. Shutdown in done with reverse ordering. Additionally you can set the 'up' or 'down' delay in seconds, which specifies a delay to wait before the next VM is started or stopped. -`--storage` `` :: +`--storage` `` :: Default storage. @@ -1052,7 +1052,7 @@ Use volume as VIRTIO hard disk (n is 0 to 15). Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly. -`--vmstatestorage` `` :: +`--vmstatestorage` `` :: Default storage for VM state volumes/files. @@ -1076,7 +1076,7 @@ The (unique) ID of the VM. path to the ovf file -``: `` :: +``: `` :: Target storage ID @@ -1206,7 +1206,7 @@ The (unique) ID of the VM. The (unique) ID of the VM. -``: `apitoken= ,host=
[,fingerprint=] [,port=]` :: +``: `apitoken= ,host=
[,fingerprint=] [,port=]` :: Remote target endpoint @@ -1476,9 +1476,9 @@ Set the real time clock (RTC) to local time. This is enabled by default if the ` Lock/unlock the VM. -`--machine` `(pc|pc(-i440fx)?-\d+(\.\d+)+(\+pve\d+)?(\.pxe)?|q35|pc-q35-\d+(\.\d+)+(\+pve\d+)?(\.pxe)?|virt(?:-\d+(\.\d+)+)?(\+pve\d+)?)` :: +`--machine` `[[type=]] [,viommu=]` :: -Specifies the QEMU machine type. +Specify the QEMU machine. `--memory` `[current=]` :: @@ -1640,7 +1640,7 @@ Use volume as VIRTIO hard disk (n is 0 to 15). Use the special syntax STORAGE_ID Set VM Generation ID. Use '1' to autogenerate on create or update, pass '0' to disable explicitly. -`--vmstatestorage` `` :: +`--vmstatestorage` `` :: Default storage for VM state volumes/files. @@ -1667,7 +1667,7 @@ Fetch config values from given snapshot. *qm shutdown* `` `[OPTIONS]` Shutdown virtual machine. This is similar to pressing the power button on a -physical machine.This will send an ACPI event for the guest OS, which +physical machine. This will send an ACPI event for the guest OS, which should then proceed to a clean shutdown. ``: ` (100 - 999999999)` :: @@ -1722,9 +1722,9 @@ The (unique) ID of the VM. Override QEMU's -cpu argument with the given string. -`--machine` `(pc|pc(-i440fx)?-\d+(\.\d+)+(\+pve\d+)?(\.pxe)?|q35|pc-q35-\d+(\.\d+)+(\+pve\d+)?(\.pxe)?|virt(?:-\d+(\.\d+)+)?(\+pve\d+)?)` :: +`--machine` `[[type=]] [,viommu=]` :: -Specifies the QEMU machine type. +Specify the QEMU machine. `--migratedfrom` `` :: @@ -1768,8 +1768,8 @@ Verbose output format *qm stop* `` `[OPTIONS]` -Stop virtual machine. The qemu process will exit immediately. Thisis akin -to pulling the power plug of a running computer and may damage the VM data +Stop virtual machine. The qemu process will exit immediately. This is akin +to pulling the power plug of a running computer and may damage the VM data. ``: ` (100 - 999999999)` :: @@ -1783,6 +1783,10 @@ Do not deactivate storage volumes. The cluster node name. +`--overrule-shutdown` `` ('default =' `0`):: + +Try to abort active 'qmshutdown' tasks before stopping. + `--skiplock` `` :: Ignore locks - only root is allowed to use this option. @@ -1803,7 +1807,7 @@ The (unique) ID of the VM. Ignore locks - only root is allowed to use this option. -`--statestorage` `` :: +`--statestorage` `` :: The storage for the VM state + diff --git a/qm.conf.5-opts.adoc b/qm.conf.5-opts.adoc index 616d4ca..f0425c0 100644 --- a/qm.conf.5-opts.adoc +++ b/qm.conf.5-opts.adoc @@ -525,10 +525,18 @@ Set the real time clock (RTC) to local time. This is enabled by default if the ` Lock/unlock the VM. -`machine`: `(pc|pc(-i440fx)?-\d+(\.\d+)+(\+pve\d+)?(\.pxe)?|q35|pc-q35-\d+(\.\d+)+(\+pve\d+)?(\.pxe)?|virt(?:-\d+(\.\d+)+)?(\+pve\d+)?)` :: +`machine`: `[[type=]] [,viommu=]` :: + +Specify the QEMU machine. + +`type`=`` ;; Specifies the QEMU machine type. +`viommu`=`` ;; + +Enable and set guest vIOMMU variant (Intel vIOMMU needs q35 to be set as machine type). + `memory`: `[current=]` :: Memory properties. @@ -1423,7 +1431,7 @@ Write error action. The VM generation ID (vmgenid) device exposes a 128-bit integer value identifier to the guest OS. This allows to notify the guest operating system when the virtual machine is executed with a different configuration (e.g. snapshot execution or creation from a template). The guest operating system notices the change, and is then able to react as appropriate by marking its copies of distributed databases as dirty, re-initializing its random number generator, etc. Note that auto-creation only works when done through API/CLI create or update methods, but not when manually editing the config file. -`vmstatestorage`: `` :: +`vmstatestorage`: `` :: Default storage for VM state volumes/files. diff --git a/qmrestore.1-synopsis.adoc b/qmrestore.1-synopsis.adoc index 5d808b0..cf2792c 100644 --- a/qmrestore.1-synopsis.adoc +++ b/qmrestore.1-synopsis.adoc @@ -28,7 +28,7 @@ Start the VM immediately from the backup and restore in background. PBS only. Add the VM to the specified pool. -`--storage` `` :: +`--storage` `` :: Default storage. diff --git a/vzdump.1-synopsis.adoc b/vzdump.1-synopsis.adoc index dbed2b3..375d23a 100644 --- a/vzdump.1-synopsis.adoc +++ b/vzdump.1-synopsis.adoc @@ -32,6 +32,10 @@ Exclude specified guest systems (assumes --all) Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory. +`--fleecing` `[[enabled=]<1|0>] [,storage=]` :: + +Options for backup fleecing (VM only). + `--ionice` ` (0 - 8)` ('default =' `7`):: Set IO priority when using the BFQ scheduler. For snapshot and suspend mode backups of VMs, this only affects the compressor. A value of 8 means the idle priority is used, otherwise the best-effort priority is used with the specified value. @@ -128,7 +132,7 @@ Stop running backup jobs on this host. Maximal time to wait until a guest system is stopped (minutes). -`--storage` `` :: +`--storage` `` :: Store resulting file to this storage. diff --git a/vzdump.conf.5-opts.adoc b/vzdump.conf.5-opts.adoc index 3ef6e97..eef13d9 100644 --- a/vzdump.conf.5-opts.adoc +++ b/vzdump.conf.5-opts.adoc @@ -14,6 +14,18 @@ Store resulting files to specified directory. Exclude certain files/directories (shell globs). Paths starting with '/' are anchored to the container's root, other paths match relative to each subdirectory. +`fleecing`: `[[enabled=]<1|0>] [,storage=]` :: + +Options for backup fleecing (VM only). + +`enabled`=`` ('default =' `0`);; + +Enable backup fleecing. Cache backup data from blocks where new guest writes happen on specified storage instead of copying them directly to the backup target. This can help guest IO performance and even prevent hangs, at the cost of requiring more storage space. + +`storage`=`` ;; + +Use this storage to storage fleecing images. For efficient space usage, it's best to use a local storage that supports discard and either thin provisioning or sparse files. + `ionice`: ` (0 - 8)` ('default =' `7`):: Set IO priority when using the BFQ scheduler. For snapshot and suspend mode backups of VMs, this only affects the compressor. A value of 8 means the idle priority is used, otherwise the best-effort priority is used with the specified value. @@ -130,7 +142,7 @@ Exclude temporary files and logs. Maximal time to wait until a guest system is stopped (minutes). -`storage`: `` :: +`storage`: `` :: Store resulting file to this storage. -- 2.39.2 From e0695f4133ffece65cb031b437917204f4daf3f0 Mon Sep 17 00:00:00 2001 From: Aaron Lauterer Date: Thu, 18 Apr 2024 18:07:42 +0200 Subject: [PATCH 07/16] installation: add section about unattended/automatic installation Mention and briefly explain it. The main part of the documentation will live in the Wiki for now as it applies to not just Proxmox VE. Signed-off-by: Aaron Lauterer [ TL: adapt to changes made in the wiki article ] Signed-off-by: Thomas Lamprecht --- pve-installation.adoc | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/pve-installation.adoc b/pve-installation.adoc index 274d9ad..bbfef04 100644 --- a/pve-installation.adoc +++ b/pve-installation.adoc @@ -374,6 +374,24 @@ parameter. Then press `Ctrl-X` or `F10` to boot the configuration. +[[installation_unattended]] +Unattended Installation +----------------------- + +It is possible to install {pve} automatically in an unattended manner. This +enables you to fully automate the setup process on bare-metal. Once the +installation is complete and the host has booted up, automation tools like +Ansible can be used to further configure the installation. + +The necessary options for the installer must be provided in an answer file. This +file allows the use of filter rules to determine which disks and network cards +should be used. + +To use the automated installation, it is first necessary to prepare an +installation ISO. +https://pve.proxmox.com/wiki/Automated_Installation[Visit our wiki] for more +details and information on the unattended installation. + ifndef::wiki[] Install {pve} on Debian -- 2.39.2 From 49152567fd896663b9c9438135585140903c3dfb Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Mon, 22 Apr 2024 13:44:30 +0200 Subject: [PATCH 08/16] bump version to 8.2.0 Signed-off-by: Thomas Lamprecht --- debian/changelog | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/debian/changelog b/debian/changelog index 2b36bba..9d00143 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,37 @@ +pve-docs (8.2.0) bookworm; urgency=medium + + * installation: fix volume group name + + * pvenode/wake-on-lan: mention defaults and optional config options + + * system-requirements: mention that SSDs with PLP should be used + + * add vIOMMU documentation + + * backup: update information about performance settings + + * backup: clarify where repeat-missed option can be found now + + * storage: pbs: document port option + + * secure boot: mention proxmox-secure-boot-support metapackage + + * qm: add overrule-shutdown to CLI usage examples + + * ssh: document PVE-specific setup + + * vzdump: add section about backup fleecing + + * firmware: adapt to proxmox packaged fwupd + + * network: update specification for the reduced restrictions on bridge names + + * update static/schema information + + * installation: add section about unattended/automatic installation + + -- Proxmox Support Team Mon, 22 Apr 2024 13:42:22 +0200 + pve-docs (8.1.5) bookworm; urgency=medium * zfs: add a note about dRaid performance -- 2.39.2 From d00d6f56770e6ba80a661d3426f507688ba7b244 Mon Sep 17 00:00:00 2001 From: Stefan Hanreich Date: Fri, 19 Apr 2024 11:42:38 +0200 Subject: [PATCH 09/16] firewall: add documentation for proxmox-firewall Add a section that explains how to use the new nftables-based proxmox-firewall. Signed-off-by: Stefan Hanreich --- pve-firewall.adoc | 181 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 181 insertions(+) diff --git a/pve-firewall.adoc b/pve-firewall.adoc index a5e40f9..9fb4e46 100644 --- a/pve-firewall.adoc +++ b/pve-firewall.adoc @@ -379,6 +379,7 @@ discovery protocol to work. ---- +[[pve_firewall_services_commands]] Services and Commands --------------------- @@ -637,6 +638,186 @@ Ports used by {pve} * corosync cluster traffic: 5405-5412 UDP * live migration (VM memory and local-disk data): 60000-60050 (TCP) + +nftables +-------- + +As an alternative to `pve-firewall` we offer `proxmox-firewall`, which is an +implementation of the Proxmox VE firewall based on the newer +https://wiki.nftables.org/wiki-nftables/index.php/What_is_nftables%3F[nftables] +rather than iptables. + +WARNING: `proxmox-firewall` is currently in tech preview. There might be bugs or +incompatibilies with the original firewall. It is currently not suited for +production use. + +This implementation uses the same configuration files and configuration format, +so you can use your old configuration when switching. It provides the exact same +functionality with a few exceptions: + +* REJECT is currently not possible for guest traffic (traffic will instead be + dropped). +* Using the `NDP`, `Router Advertisement` or `DHCP` options will *always* create + firewall rules, irregardless of your default policy. +* firewall rules for guests are evaluated even for connections that have + conntrack table entries. + + +Installation and Usage +~~~~~~~~~~~~~~~~~~~~~~ + +Install the `proxmox-firewall` package: + +---- +apt install proxmox-firewall +---- + +Enable the nftables backend via the Web UI on your hosts (Host > Firewall > +Options > nftables), or by enabling it in the configuration file for your hosts +(`/etc/pve/nodes//host.fw`): + +---- +[OPTIONS] + +nftables: 1 +---- + +NOTE: After enabling/disabling `proxmox-firewall`, all running VMs and +containers need to be restarted for the old/new firewall to work properly. + +After setting the `nftables` configuration key, the new `proxmox-firewall` +service will take over. You can check if the new service is working by +checking the systemctl status of `proxmox-firewall`: + +---- +systemctl status proxmox-firewall +---- + +You can also examine the generated ruleset. You can find more information about +this in the section xref:pve_firewall_nft_helpful_commands[Helpful Commands]. +You should also check whether `pve-firewall` is no longer generating iptables +rules, you can find the respective commands in the +xref:pve_firewall_services_commands[Services and Commands] section. + +Switching back to the old firewall can be done by simply setting the +configuration value back to 0 / No. + +Usage +~~~~~ + +`proxmox-firewall` will create two tables that are managed by the +`proxmox-firewall` service: `proxmox-firewall` and `proxmox-firewall-guests`. If +you want to create custom rules that live outside the Proxmox VE firewall +configuration you can create your own tables to manage your custom firewall +rules. `proxmox-firewall` will only touch the tables it generates, so you can +easily extend and modify the behavior of the `proxmox-firewall` by adding your +own tables. + +Instead of using the `pve-firewall` command, the nftables-based firewall uses +`proxmox-firewall`. It is a systemd service, so you can start and stop it via +`systemctl`: + +---- +systemctl start proxmox-firewall +systemctl stop proxmox-firewall +---- + +Stopping the firewall service will remove all generated rules. + +To query the status of the firewall, you can query the status of the systemctl +service: + +---- +systemctl status proxmox-firewall +---- + + +[[pve_firewall_nft_helpful_commands]] +Helpful Commands +~~~~~~~~~~~~~~~~ +You can check the generated ruleset via the following command: + +---- +nft list ruleset +---- + +If you want to debug `proxmox-firewall` you can simply run the daemon in +foreground with the `RUST_LOG` environment variable set to `trace`. This should +provide you with detailed debugging output: + +---- +RUST_LOG=trace /usr/libexec/proxmox/proxmox-firewall +---- + +You can also edit the systemctl service if you want to have detailed output for +your firewall daemon: + +---- +systemctl edit proxmox-firewall +---- + +Then you need to add the override for the `RUST_LOG` environment variable: + +---- +[Service] +Environment="RUST_LOG=trace" +---- + +This will generate a large amount of logs very quickly, so only use this for +debugging purposes. Other, less verbose, log levels are `info` and `debug`. + +Running in foreground writes the log output to STDERR, so you can redirect it +with the following command (e.g. for submitting logs to the community forum): + +---- +RUST_LOG=trace /usr/libexec/proxmox/proxmox-firewall 2> firewall_log_$(hostname).txt +---- + +It can be helpful to trace packet flow through the different chains in order to +debug firewall rules. This can be achieved by setting `nftrace` to 1 for packets +that you want to track. It is advisable that you do not set this flag for *all* +packets, in the example below we only examine ICMP packets. + +---- +#!/usr/sbin/nft -f +table bridge tracebridge +delete table bridge tracebridge + +table bridge tracebridge { + chain trace { + meta l4proto icmp meta nftrace set 1 + } + + chain prerouting { + type filter hook prerouting priority -350; policy accept; + jump trace + } + + chain postrouting { + type filter hook postrouting priority -350; policy accept; + jump trace + } +} +---- + +Saving this file, making it executable, and then running it once will create the +respective tracing chains. You can then inspect the tracing output via the +Proxmox VE Web UI (Firewall > Log) or via `nft monitor trace`. + +The above example traces traffic on all bridges, which is usually where guest +traffic flows through. If you want to examine host traffic, create those chains +in the `inet` table instead of the `bridge` table. + +NOTE: Be aware that this can generate a *lot* of log spam and slow down the +performance of your networking stack significantly. + +You can remove the tracing rules via running the following command: + +---- +nft delete table bridge tracebridge +---- + + ifdef::manvolnum[] Macro Definitions -- 2.39.2 From 354b96de8c17d193c0afe144c8c7991d8e5537d3 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Tue, 23 Apr 2024 11:26:09 +0200 Subject: [PATCH 10/16] vzdump: add backup job screenshots Signed-off-by: Dominik Csapak --- .../gui-cluster-backup-edit-01-general.png | Bin 0 -> 41111 bytes .../gui-cluster-backup-edit-02-retention.png | Bin 0 -> 26392 bytes .../gui-cluster-backup-edit-03-template.png | Bin 0 -> 23626 bytes .../gui-cluster-backup-edit-04-advanced.png | Bin 0 -> 63060 bytes .../screenshot/gui-cluster-backup-overview.png | Bin 0 -> 62464 bytes vzdump.adoc | 9 +++++++++ 6 files changed, 9 insertions(+) create mode 100644 images/screenshot/gui-cluster-backup-edit-01-general.png create mode 100644 images/screenshot/gui-cluster-backup-edit-02-retention.png create mode 100644 images/screenshot/gui-cluster-backup-edit-03-template.png create mode 100644 images/screenshot/gui-cluster-backup-edit-04-advanced.png create mode 100644 images/screenshot/gui-cluster-backup-overview.png diff --git a/images/screenshot/gui-cluster-backup-edit-01-general.png b/images/screenshot/gui-cluster-backup-edit-01-general.png new file mode 100644 index 0000000000000000000000000000000000000000..ece894c0cc4230dc254b5f5b0bc62cf4d2a56a8a GIT binary patch literal 41111 zcmb@ubyS?svMxM8@E`$#ySuv+EVunuBzv$>IspT6-R)>h64Zq2ohgK6afJ6DbN)Q0|hF19z1yly?rnd zk`V#`s-xgv^dLds2@Sp~$^Zavpj41TM2Micm7!HT85uhSu z13g(MPzRzQ0jdB1uvXB8WX*oS1{w_@AtLn6W%*>yT`k_|?ctK6_v2Xj5ThS=a#1+C zt|?-9ylJW8PN>cdug7)OVM86B%5hrZsxpt7nWn~RVq(2QX@#0ArG0-q`e`B13`agz zkh&;7TZj>+x9j8e%Ud$oWi(fT--GLSj0Lu9+_Pt|v!Im6F}|#QFAv#t&YXvbhwM2s zh2n3Z4}<~8Utov=Y?RO-MHPz5%S9E?z5(3Y@#{4rB!8Km-N6$5sW6>e^o`oX({tLa z9#G`SjYpjTC#sOzYWb%r@|QYJ1lt-=?V;sp1(Uz^iRc5PqL8Qw2net|(f?Kgnox!U z5wp`;iT-J$B}MA<&z&B46hZjEt+pUxvw!{-=fdy9)IarHgw|FO{+1yFC5PxsNNbDy z+JMv@&(%;q6Q>R$fl$b(=ptEFT~gEwg)J=_dsV1^8;)1BOo&Fzc&=D@>kuqIJp;G5 zJ-H}o%pVutP;u#MKh5+D8k%bMgmVKzN6d$4_(k`aXukX3zQ|QZI>6lAm%Nms3i8lA zb}obxU5dS-9~v4-5_uza_+|)$SGde26^<`_DF};0S{E2oG=M)>{VV_Gvm~@x0umm? z?2BpXeyb#Oz3c+k%7fc{P=j(_%h1;+LnFHP)qA|PmBy{JqPv3^kIB~WGT-@D?7TNG zkmg?48){XB>M*Eq9m`(!^)mV2P)n8Fv_0x*?&}{Pse{%(i`9u8yPg5lUO%g~){|76 z_Sf&E;RRteR8~l=As1b5&s#y^}5VGf;7eH3k(ttX-3y~`6Fd; zn4x`BQBiSWTS2B${cXhP95ul={!JUI*;cejRqm?g<7TQpg8HL<{{!z+0ipXlOHA9a zL%)^77Y{7ku#gCygp0~oiU-ekdWQd5)rgS$VS8c`u-XbSzZjJaf489_=tOpnLF6o*d-(Swo{Re(WtUQpneG zwUqIcRUxt)mQzk}%12Urig4;$RONTNv0#U?3g%#mKqJ7@J>sVkYWDr1agO;$l{~Xm zIjHsdJMPob2l#vCSUtzB4VA&66`8Si(b49@!brJy<-RzIl`4-m*j{f$mJ-V7N%DG% zvD$tP9z>R-WRsw6+gPGt=J>1y{> zHNmmVd*^O=1QYmK%t10e6mu9gJ-1KCO9+@OjuiW=pmFP+MJ9GPMjSVa)6j_1f@^~^ z^i|_VJ%wz!@$YxBi~jcyz)D3_4Ah={n{)l=WdfRq&EzorJwZ3XCb7YwGwq9P@7Tur z*S8xO_KmHMNbW%1p!+71e_GmE@@v?1i7NKyieZ6@BLYB+(=;juR7`MTN=jP(8T+;cs#j8 zuXY|Lbc`4*Rhof8%Tn1CIy5yyg|N2r%ygzI_SSqZ9;tcEX;r?R_3UN1S{d$O?d|5k z#9T+`+OPa)&xmK!AbE(3tT&HBv;jV&%)phcN+z?4H3Nh zZY||jCoPoC>Gqu~)z{>-=&3WP-BxEacOkHIH9y<>_b&Y^GCe|3n zCoc4qOIfYe(Qr@3>jA=-!+FP=zmRjuVRHpC=nijti&tPTqSd!sJ3qxIw3|ujM!uC` z!vYpKA0C%a;K-C)n6&X-lKNpYKlPbBed4lX38lwVUHstzhet^!)7wuMg2j5SS;>&Q zejAA+;kqk_8u3+Q|55+10-Szn!Fpw^=d-7WZ{K_2nh?uiP;uv*bF6?*d|ZoSi>S3^ zoku+xJh!qQT;Ul7xR?quX829K{NNueGEd(-(|5^&Sjz)F-3*>l|IW_VB8}3xxFT2< zR&}iWoIxY}<2#Thk=kCiuPt2FD2Ale- zDszFI+fkd*;G*U14Q!IbE58Lm3dPh%YRI|zioFlSqsV_U{?^;*nC@V^H0k@tD)s$R zEcJl7Xl+ViW6cbMKGq!C8C~BOeExATJuw=ffic_C)rxiJ6*!WF2qn;i?f1o>K#7NX zhn8n}#g&Nme0THqw%>xa!Q}CL+14KCb5n`S(>U=&8~u5Y2{7&a7;8ypd=N_@dYUA@ zNyi1bo}R(^g8iU9xK!z{ova{pD&*0gd67<^Y0ikuy}~Bu&cr|AQ&bTj!4SBb!aGwK z@;-Ttf%RO;u+`I3a7D;i`7Rw5S(pXR^d-Ow!iO#4z5+?kZF{Z0KCJR(%Et22Xu z&&IB*>@a8Et_rs&yik0aX7pIL@e_uCTE^5s6e9Bz?H_Ap9t|G9yvn4Keb)mfV`vI+ z?Jva6B6#ce?B29CSeYK)6sPbf=!~!&e150fzd$N16qx`SbHjuF4e{RRs*%I|Ar0sC z&Jpge*~D(kqlZm_UEC5!1^1DG4VIEsu$xCQ9c5~pW=iT(d+3hYm`l+a!aItlqw36( zZRklIg<&cctH+pAYCICR2j9*>#)vTgjiurbW}`IfHSKV%h-J#RKA}zPU=EyDB=DWp zO6tcuQ@;9{PtK4*sfc5x00BOhb6E1S%@1;3hgPa;?gB3~rNflY)+(Bc1JL^(Qa07E zokoW90D20ncPffroyn<+{lhzUFWqwB?WE*GUEc)9M&{-%F9l!EN{bSMw3t|Gx<^%M zytNrvQkZoI@9=<<#@X@Q4$chHZd>Mlrf^F`onPa1`pv<#%2n2%H8M?{urPZ)4$FhM z(5wy?3NAi!Tx8pHap@Zgh9R373=2!?o_bpqy=P%i z=0``vyvAhYvC$FLb8;Lf9jr%(HX?mY%JGp#PdcRaz@eEfjNL^T$Zg=o3Gu1qh zQcNb%O|$zvTT$;9*L?}xZKN;?PYfSZ+Q8mdF_||uRhi4FPjfvxhH{uT4&)a@X>Dky+*o?!) z8QyH1Kmpwn5{;~lt2SOV*=h1aO|?L*&ctf#p7wjnCzKHL^na^T@S3$@CjC%Uddef&(%@^*0zvdLaRRZ^LWM1fG!~W<45ha1Fa}UBQ~t(jDz< zu8qg&C*qB|_bryq0#j^i-qT8p-E%Do_qPXXOwMJcMn?oKwppqy&VQY5Edgq?BPzYkB-KB-QANBvS!8(8%!%v)dQa^*L9UMDnFQXxTaC z@BJot&M-Iojnx@{T;iAA8UH>9CSe|?C2FnRv$Ow?Kw3vwJ{o$<`m_nYl`@M3bnR?QE0 zl$XVnVtf7?2%-QCLpzp#KDH5p)%_!=b~Hfa@0?&5{ykCv#{U!^fSdk5?aq^m$MfkF zwnlk zRTCvEl$NQ!OqH9HPyKk%JiB%jl9@1vznZ(YbvQ!l&3fOMd`VLE914&PX>+V=)_h_4 z{T|%B;n89Dc9jcSC|d3nf`C(DhYfn#R$;j%-)(8xw?MDa>&MKuNutRu~q0CpnHH(**_3^$n(|g>D&U$#B=HrTamR%ogk+s2HAr|eE zqy7DO|3Tp8bLZ8*vN-*ZbEzYNTfuco%DiO_8Ao;Qs13tSZ&l^iEX~nHo6ekOp53~F z{rX>3-V>p6Etg|Tja6*B*J01Olprzdbdv=7W}z>A`m-vX35=%S%pw=SZ*OtAGzM63 z5Lq0>A&oL+cpNz{udGQP79c*onAl$nLzrG4=cOY=emzNcs4fX)El`PcR`(T5vz!r=}l_^Ny001$f)=2z>iNL&2XS zJ9d$@nx`Y)$n0%_%W)q`G=MT#Bw%UrF_S;bjNI!?v+ZV+QVbzt+gOVDdZt{yKIV{Q zzqU~qva{0woTg)KG^{hkVB-Cn_3%RM&BGd(DG^hjmWh=A3SCF}RXRmAtc4_QU#7tD z5|{twjiRCWDfF`vYRKWKmG{`ip~pk{+VNYfsem)$+YS0P0j4MrkHg-+Cu=GBlE}Mb z`!iQQ zkCe!BjGBTsf4s)k!KTaYCeL#?{vX`DXS_W@a($q>m_Vo~{ihNwIUmn}#y}_H%W-m? z6#)~s^R$#qtM@~GzzKnD_DnlNH82GllZ`hsd7UZz=~!E?S>>+d4RF~$o;+@R?}ebO zRa7Z!Vf1!^X?2Dt{xSvaLRY(Y{^agXTJtSAmxb&4)qYzFX zt}~#HI(U1E?ysGHsK)qdI;X7_1-^P1#kuM+3$ zT60Q}Yud&nUr!SUM|6uP#CFNsh-PtSp8U$AnI^vfTZ`{(-N%NP>4~fNXBziOH>zC* z@AyY?@tUn;>xaE#hc~%)zr#u|M3bzAv!v|@uVPe>wj&xS8B9MSUBbAaoy#Z$aqI<+ zg^8_@wZ_YVOljtZLdK;huB-)c2ZNm=e#1hq)#OP1jmDVrj(eMp%6fq{=uG~~@rQVl z-gU#?0te=IF27jSw*d;3D(h#KPH)x0_g|mo<)i!IIV^UjQwa3iH(l#$Zyygm7B8`W zcTNz#<_ThPGg9A;L*IdxBH*PSPAWruV zY-3zT%N*WRiDU8^Za4DekY{7?*E+KP^rk83_h~$jCmDh>9B+6HfFs8ljyn%omiN&F zPe(j60}rUzN98~dt{?$xo>HasM~{~B0N-tj85#KO-NeiLX$o&>o(cTwx8}E2ObmNO zsK_052tf|wmgkw<1>x0wm9>OmD|x%zRi$Kf;TO*c&y~xwPdATV4DOR=&V8tdXdXA5 zYqLHrBoN!gR03{0s|=`rAHTI~Rjwh-{i_DNX|rVyC$%EK#Tee({H60>Zu- zX``!lD&Bc>)Jo^_(BKBd;!>*~&D(wWHv8@5t*^iv$7`T1lZLa<9%T!c6eZQq_TsFb z=x5C7=~r*o9fp-*w`*@Ekcvpxxy)+c?OSIFh|F}{7F&yapF0u;IT>^lyHUi)M_j+A zkx!s!0hA{X-amIt0UH40aLb@hq`J8$;KF>Dju(cDn+`$tR|HM~hU2ZtI^+}*KnI)+ zq#AUP-W;C~@m{~ze`vhqb(~cyPS;)-U(F11Z_J6Ku*|c}MkE?j;{|0U2bpVyfM}`SKBKS!oi*9 zP> z#~;7N{9_2It1|KQ-n8DokCpbW*k{k@&av?>^r#n$2z3h;X4OsS`~rVgKW*@ShP~E# zfOhY!^~XM;xGIWhntX2f{_{NAUA1je6_RY#Tzk5ytYLZR87sB|5QUfLG>R8!!hZVB>U`v>W)XanWra8X6Z~}vn7=~asiO)#=G4U zzkFOwQ)&G4Oy=Q!w^rkMi&2!5Inv_BeCIiubscX%59PpV?#mRQ?hnD)aY`A7G^Y@h z3Y%xG|Db#fglA&hDW(W%GT^_S3A&JMLx<@>w$R;C(zz1Ly-VloFnc0h6p4Np#9#05 z9o}zdzP^?+iwz;XQ&fan-PAT@pzF3e5JqN&nx^yJ$~18?w&eBp`a!sjodl)F7;m3H zi|F!HS(Xmx$C&O}zA<^TA=*5)pPgF*VFv^efKSa@V)Z#fq{_~6^0 zHQv1|w^dYqweEc?vcCTF(G&cj;2KOvr^S)|YOxBjkIRgzPH1jgvSYr{D13>pB3yRz zJTQQ5*!K6=lC#H><;4}u~~R| z8*a)`i$i|hL*Vb?eHM074{@Z4nPLi@xmSrk522B@a1RlfSQ~;BECnl5xtE*c__)Q< zXn5Vd(aG)UJFD|Pbfb(Bvt0sJQvNMH!)@9TxwDxo4QbwGq>ezZfBAjt^o(frH&ASq z`>GQ@v#-vH|J^kCPTCW`vw5X&-(1Co9#DHdmx?shy36sgd5if@XZx}BqY-P3fy}#4 zL}va5NtOj^>#^mkmvEd+`saAfdIvUV`ye}Uj;p9~@uK<_9Q#?E$zvnSwEMC&m5W0J zlIFtalu@2_7Qc!Wl?w^1n?rA&-S@YyxJ<*{>jZ)m7zt{=(xT_u!^v z{w5!O=XWT@_wFEZzFWGcq$bxagLZkHVr#vra*aFBnz@Xq@3)_6_+KWK5C7_)na?Q) zrz`&p1YPZ`(XTWS7WV!r#g?eI~P=uO%t_`!*+^@J;~Fb%CdC#COKv=<}v0T z#GUlL97dDlx%H3WrJXwZvyxgN(lm|R2X$Jk3_VW9S682n1L-Gr6F>PMz&Jz@NbIar zRNZ7usJL_B>%5USdOlJ%-gTs;xeqX%j#`B`@c{Q}+Kpg@{RH-WlU=l*fZ_8^qpPo! zwjl5GDMH_1q4Q!r%lgNe6?bPvoU2i4NNjI?M3~j{wL9;OElJ)}i;0rU&FG4Y5^O@>cYKoU^`A<*4tfQijLN7<7KOQC(-*7r~X+m#pPpOc>4Q? z#@)`Lc6))r<(sy%)^yA3`A_R|OG1V~J_jE6IRp|c+iS$P%dJn`k)FO7R^xk7iD@B+ z9GOThuYp9C*_RejAN5u%uOArs{GQJaofJIfU42!sP;@ref;KCKLH;Fr!7kEHJK4L` zAbh4cop7dGf_q1naA%r+aPxho&HYzt)f@~EBCM0~w8$_s_8N>Daw+-grTz(owm~5cTznJvFH3O`lEX}F~)|5FSL%Y)YjQwB1L;WQS zc0onXzcUHA2>oB7z5gfJ{V559NF(*+80%60`Dc{>~NVKL;BBlQimoqz;QK<^)K1MEiT-VDPQ=S!7#{ zp_>AcMuF6$pL@ub8DY!SxAph7y5=Z#EiwUPukNV!psB_^_`3vFXY&A4?KF1F+=_~` z^j$|sM~mgU;uMYB(e)%t=--RU%6<@nM#g<7kKyOAO_GaQ$|CpAI>05{m;-A${b>V# zdM+0zXhZ`E4RjxL3`$oxNV^myRX)`nG z-XNsGg#`?srzbZ>C8fiu9N}x$qog(lO^&PI&|Hg0QI{t`15%k|(Y-Kh{Z?!C@BBIw zk#UH)1pK3ZB=;<9@dN3BpAG`A>?Esl1`V-M-mq0WW!Ryu($o#j`DUEY*iwGJ=XPZy}Un5@YUJ22j8$W?U|R_TFF@ z?_VVKt4T@OI$;g;O8CRvUWv;Q1w8zs=hFK!LlU$9pytQp|iM7o~>;W7SC#pb_~9G`?U`YVd^)!&Y|;#Re2wK z0?A`A3v!|LF-Zm{U;jLL}~?VH@^_0jn|qno#-cgnQ-Bkcqs7VQ^x(z-}yOjyoS zhLfW#NZA&qEnevYn!H~9!VUOhNCsz)hcxDmmnO7!sfn*~Xg<9@yNf}w2HbWcC=Gkr zc~KHqc1hf8(tQ9o{c`Btni2>W@WNofnfL)JWmO8?8Y^5ht#{o6I-7`f-_b8mpD3IsHwNa0MinW2|up1YR!7gnG3v0!zE%f(IPslnKrBvI+3a%e$=Gtp#kvR}Ix^fiP$(7Di` zjpUobvj^9j{hV={RPuVrDpk$;Imq%QxH8&T1r!ww(BpURX+;%eN>ZAXlf zR#v4~dpLER`k@63>Sk8AcByK4_TaW~;RpClCScij+&GU}AVr<4(Aja`uXzMdFidA} zHq%-C>QLc6?m}W-D^CKCZtw znH&REJNOv+-OcE;PCEEE%R?Sla)_`=v%zzHh6-9Djp%NF=vv3)`GG;Y9IW1RI-n&Ec~x*zJIY6^J;fy_94+Eu*J>}me&9CcjnUw`#x2lXmvGMrEg+?ec3 zwx+iB{zP8L)8UQCc$=>df0?{4dnS!t9JsWAaPvgyXOr<;r>0?dIDoi0cr~wDmaVi` zqp{TmupU5w!-lxW|J)uMU*jlOTVnB=F{pMBye2 zY=)gKd{<9*EpxY}d6on=UF-kmQ|5aZ&tt(lxSE}Yn$4Ir6SsE`M@|y_rO4!PFtukj zz}4oh(-E)1yQ`komZX}fsA1h@L-}(jgVAeVOW&VubBOqH*ik?!6RKTXxW4}BhFBG0 zo_Y$0)KU&+x<)HdVjKKWzzQ>vfxV`6%S13CBsmQM?POi17-CiR`}r?Y+Q5TNM&i~V zoG+q@JmQrN!FcanV!cr|pAx?w)ihR5DkX03@Xxok$MB}LrUPGS;YM~STBQo+ryDFa z@3UkPsM%Tq_bnYwyz=Zkza;?jD!Wbg8J?bq}XLGpact8Pxn56Sj zu`Uc;Hg@`_wfda4a6GgH@OsgF`tM(_yd`ay&1@cmP|Ril>~Ia|x!E0vL2F&Tvy22D4%`mhcr6WLV~ISVR1kz6mG6dF z;)=x^HwE9yup=(djN$?D`EhN<7vP#JOV=+MeSDd+qBFlV3x3zO$24Ks zwU_YR=NaC;tdcTMXeE*jFxo~)LzAU0?4~$!xgc)`e$clZv!2oIxc?-Ed3SZhVxPjZ zudafBIFS#H0wd~gbVKTukW=bEsJ3=%Eh1ftE{%>mv|5>0w?wA}uyBTp>pX>@5w^W^7Q zNjrM#(7SkyrX|1#@@KvO@SFp07I}eFZpT!jXG17_;F~LOLm%D>-JEzw6rwg z=*Ud84qsheeSGZ$QJ-A&!v5`{-~QUAwUMMrTx{KG*=`|oJl3?3BoL?nY@ZD}elDt? zMuD#)eu)q<#CPN5ah+_7V);*lJ`aqgv>jMe1-Lhpw>(81x+h;r1^|MenQ~3AyRt*0Yq0 zb-v+Ycw6Y@>vNgf-~M{Dxj&ifk$SW>q<^x6-KN2Xy!WEff&qkX+)au3oGU2Wf$8mE zm*u|>*uPGJ2lRc~fQO5UcUOOwt2Hr-UZR7Nn$c9`zK>4NH2{*r1B8U*f;Y0pj!4#% zvYLOee3a3Tr@$jShzuchnjmy6q{#Xu_c5_V`VO}RjzUO_rDE?U*X}kE?5Rt`W zK*VUH(P^}ovb7ie1sWn!-(n<33haPck>XNBLPSF0UT1*wj|-W##eAj1ap$oqPtV_S z`K3)9zaYyCUGZ&^zKgKkm4r1(Uhd%%e=e=9HeK zcN)_bAk%#oV8vo`R*~02EQlryXo~(b@IN?%E;J+d1YzuXgOojpLAU#XP+k+0k2ikY zTaJ7I)iKdReaK(VYBL>ntwfU285=eV&d$2g6AR~Vr8=twKsbvgdD*SyY*kYmFh^jN z&JjIl<`Wuvy~hZhB7GqY+m8SrSw`+Ehnp7!ozbj!V~R3|^HsJskL_nJ9rcdSnrC=3 zfhA$B1Y&I>+z8*yT|WXIlxFPGCRbBvM(L6~%48J}uMU2CKUz{MV<53eZS1)y z*5))&Mkp{hA=)DfdCzN3joK+Qm^CK_#%0p3euWWCZqL8^|VRR9!yqG`-TXDX1urV3e6e#(zoF`=!*O;KtJd@<88RMFxfInWV#3)rk-B^h0;KtsL`>OPqv3}^K&E`^1#`O!HeFtoRaMqABb?tC@q7yqSZ zOsg-ViqKH0T4PfP;T&kr^y9pYwD7oh%$pdcJui5+v!mx~vL~5?6)ob?D)ww)O4QGU zsLxRl{6OWa@g{PvQ7bV<+>e&2QF~2JnIL(;>giHBLckMZ4yMH~wd3x@42WqY)Z=FH zpZxlOX(-WAojyl`M2YiWzFFE?Gevz<-8v*;;LZO2-p$(%?z91HoCQ3ruM>V zGp)rAm^U^}B~WRjP;Pt?=E}YYj+ukXD%8heUp;NnSFq<7c&0xDC?5JDW4XSmGdF>N zFwq|dM~j2?;1;{2e6A3q*{n*%cRgF!`W_-J!i*5POF3lD-T)r_;|H^rI7Vx1fAG|2 z&I&%}B2Zgm11QkCz+?KC6ShjWw%FJGWE;$P4t%s5yU0D3C+_U-XKN1lLq#oVtZp zYf3w$5$AUw$tchu2Io>;Wzdvl``0KfAH$t=hUqjSg&9y6IQ&!kkFkEWzx1n?Vaq&} zxY#wyT&{Wu{b6!)9h(C_9q9jFmmp_wA(i_JId4I*lRRYT_qTQFVLKh)?}`0;lXpr- zW@o*qUxG)iX9{Fy=jJkM+bSv|WzyK$oUi}H6ZF=j1Y1Wa>1U>Q*I~eM$PbZNS%A~c zH_lj7D>Z75S7LA@Y;BLyRK57_;cpe5Wl~FDWsBYIGq`+*QK3E+I7eSk#ChOG3!1(; z!C9q`^}rfm@k{Kzh8uiafOw++m>DgiAAoNof1}PktckQeg##0UAO1Lm9eL{=G6=kp z|8KV_xoU7$p5Z8O0dKo+8TAxO!0tV~8aquUVK%8Hky55Kd0sx$_kEXwww7=#2)}IV zFrz3ry`?*p6Q72K4~cEnK7AA8o~&QA@VdLZ^9u@?Jsxa8S^Qu{m6a51Yzc^X+^qke ze^4wnOXKaG!A9t>vZaQowp>YE02oog2Qxuyz25<9;1Sil-0w_Kj+Er5Yizh@moSs` z8bdvgGnkT%AHrn?wKJnrK4-ScYq=K*y zlZBp1(!bA@V7;mQ{Z=7x7x_`wR!~zO6+j&_8vS)AN=C^E@vDQ z@+M3?4Pn}YIlCb}yucL?jybO87DNp#=V$^OuPvp$S*2J4#PP|!bS!H^M=7`1uY<^V*X)2&lUsTR; zxegnc8*AoDKR5_(vl{yA(&!E@N1X8KLq=emm8%_-td*J_304-$^fpjK5J6S3&noGN z9EH^`&R2D;hmaG-OJW2J4PA4MNYQj*22>Aw`!b1yy~;z9Ask~bn8L!@3e@ad>aN=l z8=}qmV4sjRFXoZ6-fzL!&LQCQCYNhAvh#y@Xj{(y<+LwuEBmGB}bU+5cz& zOviNV09i~kR(S1XiTMXeQhuy{@%Gf`?7xwT3fe3XDuxuS?1UOL`YvkW@%B0NeV+`! zS^0W&)SRrQw$>-vpQ>hBCOjd(x`~Wyr+Jo_ROnsBd`obiV) zCib6+Neo~w5M13WdDNg4x{_{N(HRZi@k&ZcDcq-bZFklq!^9hx8_W&5b7{lt650(J zk|Q`J)n4|4nEWi$0J^XQ2J8H6t=_cBc;=Jp!GrVV!It=lo%j}x=@istUOi+zHye-U z^dELv08qy2PC1ALsBrv`_R)pdZ1BIK+gW}1f?n%kd6_-guQO9X=3Y$E9&eMH@HXoQ zC-j8z<@F@9wH8Js9wnbQ54CeGFk{X1ZJ!FA0c2Jwpmd)X?AXx(rc*^_JDvn1ixkEz z=W-;lZ*B;s9U!{vu-4USo^knPWvn93$CBV!<&4bc#smG`h$#&JM0WZK%_;u7q4xou zbSkn`HdCVbzQ8~>Vt;;nYhW)Q{??KxygH{hHbe<~&C50~uFt;1CmXTNh!Ncq(fxYOIk=xAJh>ys6!0PwfQ|P}15Z9xT-z0c zwwmbd)Q|4tf$JNQ>58xP6@-5C3UHVkG1ACJ4o6)F-KAk_Y7ICnfe1rJD(K(r9N-?X zs!Ob<<6n>RZ`S;@Lj2#XdD0@^e_7$x!9v)a_fzAtN3QrLKpvLVdDVQ}9&tbuko3>4 z(SYRB^F&RV<@jWy%ab{ICO2Po!v~-)uN&Opg zcCkn(LVKY~-k)C(NqN7aOXWwetsQjb_>!Yr4#a^a#K*ICwnA%t5` zEP?VYG(|ZJF}lwMk6dEK1phaUy?^GN6Z74hk2`(Q>_Vgou}lT$A+xoZUp{It@I%3* z6zR=LLPc&EKkf&+W1Bl3`5nX=Ecl6V3_PzSsv{qrzr zuOpHASp77FLL|~?81>4jd}Ulwu`p0oM~QR7uiv*7Wej!&d{R!HtkJRXam* zskJs(=sqCF7Oj>i&nNmoFQC|GgxD_9mrLU}DD;XU4uXJ^#y}7RY$4XM;UT?P+^#x{ zyLa`HqGG$vp2lPpz1@$Y3JCza!Jo{dScty5qMdI6$iTFpWePg;$-Dd3C>saL9LU*? ze93%~j@p8Pf2GSoOSjJIdXx65ivLW|F;wO~59Z}?#Nzkd`r|@uvs_qWu`yJ2&rlDB z6*-16kg0l9J*6g{-W%7+_Gdu<6pb#|=sqps)|M+NKPUdNK%A>nBo7QyIHvG#zO!kU z!R~R|q(4z(?Tg}y3KhVO+vED0hM|dx6o5_yo~&~6I4<3pNQ2&5JBvLHA^LB88KmL= z$5C;u->gpm89aI94D)J6pgY3)koBV!tuu^wx2TcT{|;#d#&d5}7!< zKlr?MjwW-T8nF|U_-1EHdz|4Vh9iL7Y7|iNtjyj4M(%A>0H7tg&N+6NMW9CsNwk&X zq>@&5TeI@oSQ6%%pl(RyhHf!awXlYZFcd`wp}7=2R^xXRq<17mu$E$@@Jrg(x3ZL> zK4-_abd|9HeEElU5g_?E;nAj-*^J*dxc!`yk=F(T_OXF+UZs#v-iF@=$?C zi*-Lxg#$l!PfnhP{|#QRwIpoy25~r}io%m9Ey7N>xDfm=c;|fa5!uwZFVFt)oEdb^ z2?ugTB{nuwPMz+c_0HsFhe-ryHH}BoDXxt&qKz2`lP=uT0j0XzCog%8pp2BQ5bc|n z=@$d6>y=L;IAE$&&nk2#ma+(zAAOSzTDNb$=`_D8@4YPaA+IGPoqGLP@=cJDO!O-fIA z0NL0xWm5CB!nmi)7p>3#JM3G#udDd~Z_h}x$Zju1a)wHAM%ey=imC^tbTGcNntXSW#(ZVq3 z47X4rs$R{xaNt)W4x8dK1u0YZ1Gw7kRxSS^DK* zea>gxtbdD|==xZZ7>EjU?Yv-sk12K0Eq%9wi_0VL!%dy|mCpyte$_JI(QU!*-_{T1 zKpPo%bTgB^ro%ye>Z!_BR}|oC-U$9- zRN8bsf{{aLNVD}sS8m`{3HFrPTHZYVG5~M!6h$!Xc%;i0V*1d*Vx=Jhg#B`64ly}x zbnQ8${v;~fNML;O%dF}Mkv>X;;jF@&G`XiRS9?nJUy>u!{}-i|W`1+FxdfRlu zfw0}KV!;m0bv~&#|1@Ks(LuCWBB->TE%P;w8RF)_73*z<+LBZDY_p!LRhGd4&~B+( zKa-Zgp8k+?7Nj7Ix`tHpd+FupPd#h%$wk(;dT=xCV#518S7}^+Z1-hjF?YXRIMa{0 zr^>s?*`n?-GRV30n7l5GnvGVL9-w1?z^6@5z;|`Qd78zx$rnOG)qxu_h6PZOK+K6@n46B)6R8~a9Ua4Vbg+wAUdiqp> zU)R*TIW!*ZqHmIBaGHj;sb&cLhDzWHs!>w7pm`GEn3Q$OzjA5 zZ;yzfd8jaRg1ZYi>h9U_27~GcUIrLu{43&-bg`!G5p5YM@w2TEmfv*=Q?C>wc?jjV zvt4w^MQ?3Z)Rhn12av1TBk;H&FbVKr>P1gnym2CV$YXTpb!kS3Hl}~w7TTthnM-kR z!LnQ!@)>N@2jt5!!!FkaxS)PJ(HMVflLxv(3f+i^F~yLb%NX7gDB5UGlQ_MyCoC(>m#_k7_xc%2gsUC=7Vttll`r$fyL?% zkO8{*vtcmfUbwf}AsuOb;f5-FjXu%35ad#%pHg`zngG_u*nSA8B#-ZH%j3TN59Y3-@g!Q|nWWc3D!E7rxqlHkDxt_cG$U_JW*> zf-K!*zOB{^n4l6j4<$K_n3F!7UWNXfZfEQG@J&^f2J|-=W9zGbZ1-q--j_Q0tEV=8 zWfheX7*Ix8JV&Km+PLRh`s#@0Ux4<1IlA^!sx1a|b}TrtZ_7qrOH10(k&QkH9`yeh z;1Cdpv&E>?bGvvnRP^)(9UYky89W@L)q8t;znkq%mK!YH2e#)4|3Bv5GOUhn>lVZb zP6!Tx;7)M2;O_43uEAY{ySoN=hXf7o?(PuW;TFkz&ONvLyYh7RkN!b+YO{AywQ9|| zri?KbD{E4oNYrGbjgFtcKTZ+`8k*hlJpIG%+1j!cD*q=?$I^t1jFmUwo2F2IS`-&HIZP?lZAB@E3UA6Q*O|ajJVBI`AT3Q}yI@YAcSo416mXnji<#xLY2a5f6 zdSue+*`AL#d+?Y|nzUYb8_*oi$6wWs;y_x^Vkv3@nqKBloH+no#N9^Dgz5fb{SnsE z)7@57d}3lQIjnhos&obi;CgJ?aJP4M?79(HW##02yEpiXrX~u$J?^Toq(z){JR&9y z1uB;cmA@QBA*PM=op1Hqaby4jBfyFIWMz>-TwPrQ0s>^!)Woc;Xsj0News2}bR+Su z+p?K1HPB>mIDxHCmncLKtsv|Go*V=bkL&BI+@4M6bE5Of;(PmzrPT&i5)u;NcU@gw zcQ;Emc5Jw&OeU)d*~P^nXPvK^OE#S!eSo^y+sJrbrmcb4KHb^D!op(G>4K2SWD>Ko zVgz>sgSXj-V?#_$9lpG*`ThI%{iQ}5gJvDCdlEn&rFKEm*_j2va*~JfFEv;-?<8vc zzP+_MJ$=9F$ApaloF(6&KN1jF0ReDSz)=qnoYVk?gK?l83JU=VDW|9?Xl6#?+}chr zYW>a`=*ho5eT%sYK|w)e6cm0vJ%X^@^{p-cTynMy>0x6=*43{>Mba6$-@n890Am>W zcB@!eV!&Hf>g9V@0-m1Sfq{W_Hfx!`eu=g?9rfL=c}J~SL;vXShfW&_TCm(LOtbDX zuh*|vr%xMkJX_6}oRr5!gbvHKz1o+PB>e!)1IN?ll-yjxbm=|F$4^X5SEn&UsfXN56q11hGtegJ)07V+$QL)*sg9r%;vEiP&*Ql2( z!$S#diRS*)HHA0DVG95KU6JzX`5AcZY`BQW&hA^}HCb6}GOM=Pz~}+WHa~UQ43@&e z!uqVRXYU^#-V8!DQN6qmzzG7+9Z;?T#v`}lzP z`T5!|9T~6D?W{#Na&oealpp zWk*G9HX^HT;HHv>oTQ(ni{e^ZIP4u9aFQs(Cg(}l!=D84@v|HbEoHT}y@c0K?3=Mg zv^4UFL?U$?m+r5oWd5Kc1_uX6VL%oeZN{Q_Uqk_eJXx$KVq;4NYM_4%Tt#K>&Zr15 ztgZg2tVX2nt}b$N@@)6pQ(RuJ^r|X45MVC8i2(&8;gd2l#zjXXyImgw=5KXMi?W#u z0S(RiVs1||)%?cy4Y5e?-pFogX`#0T8$WPNmLvsiJ0zDJmEZ)shgdfn`?Kq(BB{YflS)=_xhL9rY*!P zH|{?e$izMd4yQvwX=y}Yxd)t`{SZwfQ^nC@J(X6gbMJv;jrXfp$Nesjb^G<~?kOn& zZ5VLJfIT#AUIQRx*a3K4{yIyQP5!kv%LSeSKR>^0i6UUw;t~>OQ-ugTJUp22P?31t z;-aGO0Gj|>RC1b{%WM~S3V<_td3lLXN}B5MbT_xKV0Sv4#>yK+0A{EE)WJ632mMdReUIJI@csyTCZ!%}e^12Ox=kYs9O*Yuv zuJ&EMvBu5ofiVTFd^9-%FoGlitO)>sr;@$ifWcl~Je?0Sl^`y^JptE0IW;9$I$L)&C)$u}YwPo$X@XPb#J+PddpP%Ody~C^1mDc7~(Gc|h zKY)VK`(3IEt%ZdJ0J1s3KX7#Ups1#HABUmCk_5Ocz+DUR^LH6_E<_^Fp#a%G0*3Yw zl`s%HG>rmF?c3xTHm-#jU704N8EQq~NFKAAq0@}WHfYbPc#%E~$ zA8P_1ia{yi=I>^Y+EP%uo}g(o4`9wM-vH)}J}-?yxpIFh%_?n^vwfM;7a|+fU!{j? zln$sd(?gbvl|sJNnoW@g!DHEvB5)oa9?rKoQ32>~n^V#-^uhuuJ+gp1qc)^$EhE&V zgME9O0M4&a@BY=s<+3Y_@Ee`zCS1xC!tr!84OBUkcwP!-g7 zd$=qq#ax=mj$Q{iKsCH52VR#)=@)hBgg#8w!Qu8Ezvz;buoq-s2z!QUI*=hxSe z%Ps>FQc~@djnQbp;?dTIG@@v1eRR^_fhM6=YlZJBl)wf822dpgrz0!pe(x&dfaB@( zYzo1pa7%WdHqJ&XxEsr1ELV82QmqaV8ZLWid)_Mr~}1jqNH+#gc6oa={q*rWtdIw?Yr`Gh>`=J zhhr-gGh8fl<>LG)`LloEm?7K7fP*mzO?OnKm%a+zV#yiwzr^V)+ zUAM7Mad$^E>$&z#WcRc2MsBktgHg=W*oq<;_T>uk3U4y43b90c!1bBYdv9;TFQDhd z2qPq}RvQV$q9Mval!cf#@hg!=L-tMaZob9{4uHEiH8t&8XTC8#j#0W8xhLZG7~CBp zBK?=tuIJb#Ggy)^)+9(Om)nJ2lGtq}!2BgoeK>w6{#31FKOS*OmzxZ1sNFG%#W&TH zjd%aWLVWsumzObfA8uP}$^O=XjV=-NeWsqa0d*tL3mjnoNbJ(doQRz8$i^?_W~odS zd5Knd!2kK1dw|*$LA-9ucxlul8JlOYEIbR<>_b*bEmKt61+A(+cVhxV16_8J38xB7 zicS*B`z*fX&Q|VS-)ac_VZ%-Yy430`#8!qB3fBQ*3^E40D)jM5n@PbzmBQ$qr(O~` zyA_}$@IUVj+u@o1pB2n!m=v8fZ8&sZ3mo?h(#X^kNCoN1p^D9%=fx)lS> zcDV2-GP0=Xavn9V3Ba+7LqKBM|6G+pBY>pDQbzku5purh6{GfxmJ-r)wcrFo^q zp6#D8r*JS20C3tJy8B{SZ`0w@SR4Y5KDQ*p1_80heEgY zW|m`E!}+VeieA-07`y=kaItiEetCUC{*3+6*YD{CJ)#FIo*?=}4sy7@X*HV@k~u<) zSBM7dRE;8fIU-3CS?EwapTYXZwJs#s_-Fc1h9|E=X}@|v_fEhBm}g%cMU-)m2Uc%U zLnx!iIKU52B(X;1ZRQ!W1VU)oqiO$%Qa+)CnY3!!!UWRdcCm{A^~2}ktfIs zfp0%vuv1ps*rkSeNeOgBpAW@%-Y7{iV)$$Te9he)6rW^LJqrmyCY){|T8_^1KR21t z)@67hiy_6ww%xcEw(kY-G5UM)rkHx$3Tn`Kb_6xcd?Ynn^_haieq_A&l~?v?if)z$ z`M7&0g0-eGm27Xfpj9kA44*chwH+VGb)SOQje!23!B6p9Q_`$sPp{9TDz-qzDi85D z-2P~`9Sj6mq<@;47o_oqYCB~{W_J>@*G<@H9@dNn-hc(H7<>!AC&}9qIsyBy#9uQ1 zZ{jZ+4CMN4Je4x`tAVD?ZLXe+0F}*p=dT=2fXe?~q-KJWjr_&_;}FJ((c*Nl>(@gj zW16oSPFO;FolA%HgTR7YWL(X#mxM8+kL#Agx%9A}$No4rJgk*z6`9Xq!;iaLCCe`m z5fF5}JsO-?T?BS_#^rXHdb~HaZMVdx%>xlwxfUv&2ju%X7Ny;oi*ZeIjA{)>CWT*} zc5A5VgF-FDK{(wrJ3lx)%IarIc5Zjqzp@6#TRx(lPV;L=vNE`hBvkByP2v$xGel9l zPw}9Z_mZrJ%GNpl=?y1sjwN19?waeLxd+@g0`1f9`Q#Ri6c##qW+$432#EJP33U*Z zj6}v`ow+U+?T2o|>uW{EOlrC&W9e+9#$+*$oP4yO*LY*Dyp9IgFr&oa;!pK90^}sq z@uYWK;n-wrf3#by4)t71ksYiX$4VASP(w5sfI?52G!@a)jF5Pa3=OxjMuxL8sB+Ib zt`_dlO6#YX;bCn_tq+qt$4Nf4%MBk^Cwa{+hP&)lx7ZMVc+ezs=};1(--)2eCnb(q zwqX=oNp1a74gkN>Fc}QrqH7cC%FCbe)x98 z#KZ$;2+^W(>oBY?U}QyC{UH|feNKPF zrBdb-VYr|tx*2aD!?O$#-F8vz#fCHD+{4BmPRM-)j3hQ@5EQh~l1dFBO%!%EB6ti; zTnZB#yp${Y(dyE#)i}hbVgZAe2>Q5wWGiyrtv?(#`ncSjizBD9JMwP^_3OcrRWAm~ zOw=gtr9Mt$#0KqoyxV&U4+azk9q)nOM(kssmJY4SB3iP=t9|i2Q$l{d9Q6WwAUX3o zHSuk9O!6MrPewjb-d(R`0P0KrB}raP6!ko+z1!`CPJfsBljoiM=2)bO1Z&kgf~Yu- z5ON@~4CcsWI_$AbA97NHWFIcg5MEYS%?Zgos8uBlwW|SWXol~Ze9CRVYyS4)guVz4 zvoE9#^(V)X3`tF;5KjeM`eum%4~myzj?x;h8p+4hiGYeQJ+Uls%R3u_z(BMB-uU4M zwdZktvZE2=SnWlB?q7m;>l1>{(=wk&`Q`Dlezi%Fm`ZK*@MenMUtRYc59kUbkuNYr zQOMYQDuu0s(7S&IOB@MvxxLIm820c0EeSl0IT`m-P`y|L;PHH7l$WF<#09e7D5%3G zV5AO@Sz=soJ0vHm4kSHjGLN=PyOq%XC)~pBoysZzT>RGg1N@0*9%7lSG0#n5&74gmj7Q~W@sv?_rfGK)`d@M_IXBGo541^)4*CbZT61x= z8AVd=PrZ7d4;0IBU*^&VIXNS##GmzyPTEoi!=A%(pPIB>cS7042SLY7=A+ybT#R{h z+Ai13g-Un}J)W*mjds&o%-%K>1%FaTEqbTKZV8n{yi`fJAbm-pmr8`<%Y;I_cT($->Z@sd?o1z* z1RRN6Z66A=C!yy5G*kd2hem+! z8jSqN>E+z{&C8QAY!aEZvFdCEND|w2suqeTaNbR8>Jq8EPgzq9-3R6ef=^J@OQRm; zf{Zkl54Ki7Akc;K9Y=J7f8S2`2>u?a7pU1e-LuuD1}EgY$L&+K2CxNj3gb;uw;Bd8a-jP#%m>wK z<)`Vke;^x)2{8I&`WxVvRj>3ZkpBLuW$y^jBj6`7dJWc^!&3yh=^M@lGLYIOA3jT! zBEXU;YJ9P~Z!Wd({M9wjdb-Rx=O#EZn9b${wPDU@Mfeh#8IMnq4@MUlB>&P2729Yi zr;n7oRyNai$;ZaK$8Y3^ZnaHE`ZCDqwUkG;F{&RXk)tmIm9i2v`4)Y-t$$pOhFzUk!(KBD~s3HSL6zKt?%xju3J;9g$-8xCOSZQ-<_z!1|O(M}V z8#hqd+kP zXx1TQNcRJsyGl{5KN5L!Y!TW~qsrn18F1TBOH~Vw`%Y51#~|Qt=D(L!;dn<5mcJlm zPo%FZ=YeS!xy(Rgn`)NM<@JY_&t7U4iR@uzRx2&qrZ4}raB$98T>!mm@bzYjE0p@= zbc8tj>_kHHosJsD0E>5Ca$hUzqRN<&vw@oI`Xf$I$V)gTE7Z5@f%i%apZEX}sBARB z52Su17FQNaH`GM)&w7p-0c3bd3N83SwGsiW8}HazH{BucGKfAJXTIRpeMurd zUs7E2!O(G*LTEW=0q$r*A*$jR{pI6bhJvZ52GJvHyoeu{ktRdIW-n_V&E>q4# zHsst<19UnkAShl|8(vU*^B#rQ;`jPb%axY;^YaA4KluEkmYdvG(v%f*&9IhQx4mHekpTPHQ z#ltc?BRf=L%)CR%6~2Oqcrx3%*$v5_rHM5c&$NPE*!IE;iVIaOpJXA|f2bP?6v0_e zS2PL*@KAjj5Of0Au-aP{U%l zQIo(jR*sGfdguN1>2d{dWTou_KXU1KQ;LU`*k-MsF~b0#hQ!q!uYd(Qa#0@Exneuv_C}u(Dpw^Xqw(W{Pq_kT{%yXRFr^L*8dqwkS7kOv1u~m} zjtSKtJ3H3%j7Il!&-W(^n+Dg-ZSk(~Uya(I(4xh-)l$t+xD?5q&L3z7oBjOrWxc|Ki#ZLzzf`dvK z!}(l&(hjCeE~0sLekoz`Fsjkc&RV|(!`Rz%?{GgHzpVU1!Z@?g^ZtT z5r5|?WW8TrlLG$^3V+n%cZ)Hci_K@0{g`b>?2I7jFb8r|)HayzJ>&cN4zi!_#S6|Y zOghQxcx)S5Twt7`>y1i6V~8FZ?vfPqqD64vvakBJ51S^D z*ChIW8Fkji&vi_S;Ix^45VS6*hnTq9>jXZRwjnp;a=#>P&kGk>T(MKI&?9~{9`wuJ z3fK3_z>7{3S@dQ;tA@ndZcPw7}0lzs2VTHf`>pw&|?(Q z{9TJ3>X3FCA2Kp8S0toN{{-Wa(WHv>565bwoAw{oLZj@$i)0&tS?RJ;5##KOZ4#Y`K?QC`_%?r!C|sp3>`tYH)~!}E$hehO*oSEc(+tNLK_1TV&wC6w0_%fU})egb};|z9DMkX z@T{gD12~Y$r!}&2{FSz8g58!50MvMrE+AF@txWSDn@;?jtn|MZsSUBnpbAc4#M|94 zVUgeFu*jhKwlf7BVN8)!afast~o|7ZY-|c3XG1y_WQ} zLy2Kv+WKfh&>S4z!-WwgcBFGN)6ir# zHaSz8z9T;tvgz9=#oo(%INVk=Nds-L|EQg315k|VX+;2(U<>r18`*&&BjLAhkBA0u z{Z-?N9)DtVHlV$Xo|B`extLfVv^}(#qRW94V(-0GB?*GGPP+38ve(@;9mA^pOQ=GgjIee`=F3c4!>dFv#BFrhDkI7- zW+jG-&9}9C`LRZ7{KnSwy%gu$v=`I2S`1>HG9*t0@UZqswz`j!jy5ueyCP_+#^uJ^ zou4){hoaZjG?f5t7yxPU#-++7ClBiaD(iIE5k0-VS~m~d<$$=9I*e5766W|0U2A6< zMD`u8d&x1kkLl~w5~|@I-_OEcVF{eBOoDV0YX${KOrwtIu)T zlT{J_#QGm(Z}-KTYLhqRKbfKqKqFN-nnt@1Ep3HPpex+19C&W^N%!PC&!O?Q;qSOJ z{89==!Il+$Xr(x2R|H)lt=jHx?t%V#bC@VP`P=q(tHVxkqoPvZgc1wjWH|=6@<`?- zM`s&2s2e-D99lc3@IJAo2r;9cX^QJBG2{h*CLTIi5G)m1ivC)112HM>gTkx4{Ta+amfiAcFdp6gnm;#MNWR;doEFjquUKyC~G|3okMx;Y= z%zXHV!zG4N3~;#GbHN5Y&_}F*m>I}Qfwnr(Qt!~e7DWV#!gYiX`=D3qttp;5@v#M= zM&>GP+|NP((nLY5z%EnDX5AlOdj4UYhy4!1R!QILUC;l(btTtGiKS*a_PukbfpA5K z6zXF%7!_2$9r{!YmP=dJ`kaR)>4BrYnmG_K>cgD?-EES&`opZKZ5px3U)NoT{U+Ns z+=s;;)nN^@S2Npij-NDAN?&YEa#t&x$3PVMN%l+ihp}RozcerYZ^$DOe-&P+bYvXx zi-Fe9&@Wy;P*2K*7dcYj>gs^Z`o(23YM)PJUqTzfr_1SBu3=UFfp$rw>i~D+YF0+ZwfdpC8p%Z{z+pSP;mXRh_==msje2WY*)GjgHz=uPB~?Ll&gx!7Qiz9(>97MT|Z zv#dbT8T)Yxy8Oeun!HNxdXSa-(_ju|Hy;z}&Q39F!ooKCh!Z=|qh_b$usTz_hC7U17K0WA zJ9z;+u3Y!~z?T;L@9^o-Tm(4Lh+mF6uqOOwL+AP^GFFx(ro#@Z;BZ@stm5-efHYKq z4}=Uo3DFrDQdvBn6<)og+{3k!`I`w~iKI*}pWjU|xL!WgEi8A|4zT^%!2>|*|A+ki z+f;rxpt?T{8p%Dn3MTGy0J*obL3?ZeT{t--Qk~GBT{1c84(E3Rl09?|yiy--r z^Zp~C|NoJ!eQ{bV=-XeoUO#DEyK&13#&aufPNNB6L;9mK5K`Kc=5r?xW=+sD^Otpg zq{&{Ee$CNZI$Ap#|D(;M581f{#=Qb;miv;l;SrsYV)2_3aNl8KZ`WDwmpM;S89UwD zyae1+dDdG%X7|z7ux+&N)lpAUm0nFmoPws5U^|ky5RowtRJ?Y!`f#fqw-S;Lnca{f z4k|e3{Md#wb?_p}#i3~#>Z5+j@A0qHLA8_=L;5SQQ8Io#8yLV$_-qaB zNV@BcO=FO~r%0*<8cTK;ETjO6031QKDob7hWy*NOU?UH`OoO$y61M8ZU}dl!A~JJq zvy<9*!heNAJ*z8{VXWgiVSBH;N)1k}?JF(O^`q!L8+1Pw8fx6lsJOl4R`P37Aa#0{ zV9%|E>Wf-+tJ^=F;)@cZ08>aqh&O~8B+lciN3y30HJ~uGr)G?VV8@Ga+G}MzmRwT; z_j6mX989vB__-JC<8aJ|3A6ZH*WJ01bV4e!Tg{)1Z3mu{a zu4Lg^%t`aQ2y8W?UiK>o2!|i%zvHeCgg8&L*_tBMnW>BV`11WjgXMF;j{!>6Y7C@+ z@W&i`Q8`qwH+haQf^MGfBQ5OVk?lNAP5MVvkLomeXg(4(o!z{n_n{>RWTI~*R9u5O z6Ug}=TBC`E%BPNddZ6132N*zXvrjBLf`4bU6Ht27xip_3+2BQDo0jO{|xmxoaV*5x|c{ZYEKIau|z6l z}N+; zn|yhVp2&FA$qTBLoaTSpawP=6Xi2Dcgq-){b<3HN>6t?FTf5jeAwIuYetcB)Pkxpq z)XPk8Q(%G-Q-B#DCz!9*+5zf(=W^)%=0A}>>OJ?tGPxkdI zGl)-|(QP^Mg5q?JOH`0FOZjkFRYJV-9&Dcc&Juy*z*Y6UTLxeF)hHuP5J(uW4ZqveO_FxI1eZpBD zS!$1nvq6s`ai@qGtY*0~Gjt2rw+sOt%eSN5NamPYD`-esTaWf2*2YE5-*<#>n4n`l zZ0FAUp!CHcd;9;Joa2}IablEiCdW<_+Of!QP(aoxtuJV!<&fq5XToe03}NuKhW&c# z6Bm4a2`~rwx3uHna+)bWHGEZ*i01X~QWZp!ZPWU(2RxNB4(1{@t!f613vV#E0TyzO z%V)YidyV+i^mMQ>bnF(5To{OV|By~0+(7(8bv+Sg2ZN+q$A>mYhi4t%ktEYz9d4PK z`~~8;{d#49wieTk9{9Kby~=?3jU~AKK64s=jZXg|s6}M@`7iBtEU6*quZHA6@EG{p7_FqfSK`2l+ zc&QFBOt2^0C*5ve&bwJt=|-WgQl86uwUunMeHgUt$?>L=zj8DSK#AE{dGvrgqh7b- z0%8D=Q+zRDo_4x-Q~fhjn0PC}_czO!U>9$Sype8yRd!Dx7i0gcmYw-eEqh_XIIk~| zQ`D&$+`{w6g48==j;@}*&(1Noyj!7`*wHOv3o$j|&nsJ@h|>ZI2&Hf`vZsIR)!T#N zN9N6Y=-v^ zwZ48UtrSi^?z^Gw@d3TaCn?UOb`0ON?oT&N`(xS-6N2BH&1NZx>}wH)8nF%xvBWAV zhIa1&niav*MwM0PAwkIC`$YO7#mjT5cspvxgGwLF4!n9fsJc+Zv~E~#5}0wv{-`Fl zWo4lCASudfEmh_C|B+8LRDP>G0a)XRIim4h_gGB1j@ZUs$=*U30ykY01NYW`kC9uR zu8??CKu87wL@L;nlslS_T(>)Px6hQn!{Zy|S(1Le*}j(zia$qs5sD{MoUs(yNnC{G zlLhvWRW@rf-5N*if!H(5CG^vO0bg$;uX2y5wdvxhVX(2!L}7S{Llc-#!&Ob&$VG z@#QVR2V@jFhgcZDdV03cJ>ES$u-u-57XkZW3fV!AUQ3g8m^1U-{Z+;RcJzX?SF??ABm^fW2X4|>HL!0`_nSh*PCl4)>WA5 zj#bx>5EIhJMV4$H^>q`E%=heFQ$07m>Wn@lU<=Fh)5rI=l|EUMm&Tr)NrkD-0n?CGEnt@c==2YPWM3_TIhs&zp&T zGb$VGa^X_WIGzsmt4t(LAv?LV;(~_4R5vRe$3q8!$iknsQBm&gQBh-9U+UD$%}%>p z{1oq+%&X^0CLYDIXWBHUXQ$V%W`Mp6Omu>qxrOEQyi(mn$+;bSNvXreS<%bFXY#Px zNcAEh7w8Omy8sNCJR1ptp7k>Jz!eb@pN5%0bw6cHKGvPBJpPj+fgOWxWs4&1a!#`S z-{V3TSBXS=vlL%Pp4EU z4-A#8p4l0f_P5-9E>E66+Tqdh{L$e`UI|Z!X`T9$r^Zpp%jcc0or|Ayodf$dQJ-I0 zSWIO%^4O}E%Qc8b$svXusF9Q zI1KYTb)EEjM9na`q_G35pMl-hMY9eJo{HE{ICC(7Qp9z=(){5w%(w;D**WZJD&;XH zx0PbOBD=@A%FLD{MU&>!>&+<-OC)FK*_}z|O{j!CmD~`ST;lcDM6)BqN6RcH9)&Q^ zxn*V~(Zx^go9f$9H?~qfg~4Da1mufgG_j~caYy)Kaa6DnX5W~8K}z9!v_mh|cn&V` zEY%pQF_Z`Akt^gYqs~dtxVShQn>_T>l86&hyb#Of7vI7me>xq0VM|}QA2I2;Ok1#c z*kHR-x&&u##nO-_6vJ=tI{g+KcH(Bgxi9`JdB_eOFITTbEmZq5Js{SaxD$QY{m8Jp zaxhBEs7B4GR;?f-$XrP$CcjEqL6>AEapXHqT>Q+t%7*u|isk(m3?sMoBn8>(3csFH z;B2>DA&kiwV`!BZz5d!4|B7~{?)40X&c$;`BUW!cPF_>nq8cpOp!MtOqsocqIsG3HtVhMZ9dZ?j*EsTU26)Hya z^Fpfez`5o^gwF>o-SR4KS80JS?P??6x@B`t2GdTuXjE1$M@F4@7Gtm@RP8W}_1wjW zod+9=0zOc^V^6Ngf6Q*9q=-ZvKp}!g*J~Cp#2uOT2($`i|DfMnO=5A{Qd>5ARGoXb z_|VR5(#IBw7Ra2?&0gLc`=Ng_wVnRbSqH>q&GoG(uXIIaAy za(!J}&gxQEGtzO;uJ1hsD?=MGuf>NjC;kxTCmT68+h!sWd)(ZwU~wZ`sw$5=qeKI( zk`_kdnyyuu|47Iu@+JG1eS915;Ys7Ly@L268nqc9V*KsZpyqF*hV5f>3n@!nmDQz4<53l|q)rg{fI8BS?uy zqZZ@tg^E}+6*1=iMWs^anG6<^1xJa~A2=T1!9 zt~O^i8IT|`gzWI6+Uot-Tu~q_J9jJ*@kzGZZl}Q-+Y+MOF4a!pI@_)Q+*V5j_DE$Z z3~UA+Hxi^5VWw0`>Bylkra#8dt@xL7>Q;6^X@(^(RU%C*GXdgJx!sF{^6%reL>h^h zTq+#9QOv!dO7WdT=W5)?hg=Hc5#U~s>=Uh6W!!RQuj%A1pOhpcHRqI7J6p1Pb1Kbg z4B?ro5>+!%tn;&XOEvNNoA!~Q8Iz(4^wxj zk8F~gl58dwt1%q1$8|kufXo7qIGTqkh|MuJSGkoWOHr=bEtRj3Fjp3uD%njo03$Xq+2VTTk;qxBPKj-&8}rw*f+)2Kr>cY%owgrjD& zv(n5(ILbkIthP{nN)6aj;tnZ5oA^Ha{rjSocx%P6o79fIz=5TFs9?6bkuX9lGwqz5 z!+vm@Y*)!(7KMfLm|a_b(@%Fi)?@q%6fqSgZ{eL5lBJt?NfI|%mn6f4OsjEzYX^Cd}Z^I0WjWJ>e$wu0txB7)8_N`_fqk1Im zR%5$<=c_X_c8;dYNCw7AZCCV3b!rtiNOH^8v+%Y>AqvGpVu!qJn19%yulq_8%ZBy4 zZrKEJqg6}JEb#(Dvk{~X5D*Ym8p0V1-))j6Z1iT0x?7%icWw2h;HVb;1cg_t4dNI?3uh&H% zC-yCi#Z(LX9>ld+hR4~*kN4|D84m~STCfZNY0Dy$xu*lR`|ObH?Bm?Pl!=oUhq8!@ zwAr3@ne%dDQ+`}!XGQfDi&G=b4noWzzIV3E8h7pova$W+KrHqQoSBq5^(l;d_;U1@ zeBsYx84Cqx21BK}jJ#fIMJMHlM^)CH%}V`q`x>7QOkMNv_Qkb0DQL~^u2r1+uw^@) z)GJ?qBV^pn9r>PySEzkZ=y&?P!|FtP+EI-lcBS=0y|&J)oAWVj^*P_d*DEKtt2uUg zbl6IX%|B{w7D;BBxyo$C=|m9QeXrH+WS@lOfyHcvIT%$Z&&E@yvQtOCf0oC{rrIK^ z59#RfOl5{OdI~|LEQOKdYS4_tI`4T$HlVBcFS||^Io)-K zT|_;HYk%D^xw_)hDnj%w)+eTU!BXe;8+eZ(6R+Y%e@Y~FjkvAE=`9^MQLm7@ncVl> z#&X-hv1BOR@>M(VcWN^eyRvM&cCkR=8Q5%Q!8OkPih!G&#@>^ZA}ohPVYYZ%n?$OZ zGL!R5i-EY2=AMcCAobp7>!n<>+cUWrJejP?k9b{nx9o$KtEHYF#XO&8v9vDb-oZZH z>9;m`&{pP?P)rnjOyj)1xVO6pcSR!=ALRbsWDg@I{@vurIOF9!nKsb%dU?yjXuxF0FC+!!z04WlI}pPS>_FP-bxF81QDq zf7WQ2D;a5pu4iuKbE;#=+3M$+7Nn5v9w~NT%7$Wf8C0&a<@`pybUeC39(A~Xz?e$? zD6i4!?CmDYeR+Iea1H~xf@CHk;t(}rxmcJv70j%>T)rG6#3SIMp*b-RE#h>cUvTe0 zSTur!U~b_dY=isxS5%=>6-#!z%&F|*X4NV_-kc)<&n$7!O@eB48u<2& zatrZVWl7>Mi`ya>s;qce5wGmHQI?%2F{#H6b3OHEfA>0rb~2g)WTtF=*E4jFYK6*M&oO15=j@_r+QpEX%H&YQFD!;@QF3SBXo#sU&D0vN8TwUT1G zG8gGN=HDpVX^&+GWiIAOdn<}WqQ)<@%RmPOFeVOcW?PZNjz5pttlFTJn3)!XX{A|X46!{M1Mf)we%dTT$2(;>5fzmQ%WA?P z%T@i6=eF3sS1+TPTnsIP-Ci~DSisHsH9Cl=Q$;IjZEhl~B9p4Rlz^2wN;o^nK<5#f zBl4I|F<(@!JBHgOcW1B~CycOr&7rb(uC%Dp>644Ypv`Z^bV{+4_QNsB@8ja*U-UHN z7PPNT3QFL%FLC^KZu_MB$@*EVp|7VZY=lVk-g)_X1Wugey!FXUj*zF<)<%~WFS_v<8)1tW!lcX zmN%*{*L%3RL_{uK5$Yn9fmDJu3w2tuL8W^NihedRUrt zrZP9o9x);sTX}vtb$B>5)SiHs*a6p6L{q;Ook~!aSERF`u}@XAbaN0`)WAYjqb#p= zw1lQeC4n<)RA1W3ThP@XH?k>iC%Glv`M|kH9Ws~4{TR%YY=dWUteM0CDDo-MxLGC< zlV!~Dxm?Cpt)wU@cRW3C4Q)75t}(i&kCCT^DPDq?$jj=rD1ak5Ggta8sUckLDYnSU z?wneWLYA+icitrry<&pRr4Np&$OOi!IgZO zC=Rg34Rg3C>z^k_H-|{Y8c;@;BX*c{qP}5!JzGUQ#KuqV_TQFFwewIzn==uQX&Jd_ zIh{_%W!*R$JF41bky8!s)*H=bH&{10n@S=F$alrD?lB}LRiP>I3)vG7DHGZ`t;|OP zS+C}SVtX@Ax1AxCERm*%JA~em%cyh}m+LB}hWAiTxsK-%FbD2y8Z49gcxWkEtM>Zn z{j8IqTB45T?_(QoFr2(dD^GB^4<>1zq#tP4R~x3i1Y!-TVw&pHy7MlYc%Jst!|H36eA^s@ z)>O|V&OJ<{#z?ek;-kKuCO2}sibN*?oi7IBWZq9Tqr=jXI5q9gke3Y(x8*A!8D=WV zkO@@s9ZD3JLq?ER+=KHcgAMnoZMem1UGYo~YDQG0tB)rW({{z5rW0iNkp*kCR2uRn zWug|xP!*G7`o3ix;#kh|$A!i-fV(qa$)5Jz8cMX+$SXMHU6ukwg*?CGIV>cu?etH*1aoC78qx8cSu~*t;0ASkJ8Y zmCNH6Gr0+#;bJNGzx=c~HN4?cxd5NhH@o>l_=P)quYOhvw?sRNY3YNIUiPn%Uvb-w zyX}PVsDp8Pi{GrH*3)Tb(g?UH#HuURJ)M+(CyB_XLAfzMZ6t@`SVbsZEKYE)?e!^J zD^xmul{8S6t3O>itSKPTmTX7&#ITLhFz?i>n0QAl5uxRD^W! z-`czKu%@mo&eU3qRIx>5*rZc70c8;oNDNT{Q-TE9At_=-3=uWCP2_zW^izpOA*pm=Q2$@G`{+Ri`nfd1b@vnE@x%b@VymRk4_jlg+ z-eBJ8Fv8vkk2mFwk)lcd1h|jiAd8sgVA|0QxW~llVDF5| zlhq#T3n@ND8q~?Lm>`(^}K&D|w>W*8R&H3wcpwW@wUl3Q5kanD=_ zoQ60(aC0qEns@1jx4VV`u@L>>^l6RUeKTBYgKapT!}A{AfQ1$IOCl4Lp_93Rb~fc1 z$l8pahgpn7pWItU{9NKW^GD};MAyuK?+?S=!_fEl8oAjTf>P(OnRz&Ne_sLi%Y>J{ z#~=9}pXzR{>@PhWz87uh15`36K`Lyhfr|E`6Y+umXD7M3Oe86=*EeN-z75MPIB2)4 zj+f8-jBqB*w_ek~Xt3QKwz(zaj_uQALZimJ79+Q|DxZyg)`H48X!h`AV+J>Z*z@`a zxS%*j&_%sV>@`D~MWl8F%fwd2zGbcK$c3dR4*MTN5A(XGZ0u!+1co3PXW26%$<9Z) znA$c+yO}bPBhS>GIAZn%%AZ^5(>)@OH{z%jwhhlqKb$%pVUgSYU3(c$e8w&F2%8Oy zO`abgCJTnD?OLL88wNH`L(adu!l|?0ZJznys`o^vbelboa@0FL8HuhfG6=z}U9zBL}wvpi9|))WR3-!a^~@ZiL? zky?nN-hBS~;YErbtBFT9g|6i-PSh|B=8><^2i2~}^t7WT+_D^V&Z+KFSThy3zGXw1 znAl(9i1gcD?F{TUU(BS5H@F(0^*6ns!yZpr~$Z!UGX9*SN7WkS1Mdxhs9``!%dHPOOcN!11%#NIfJZ19aOm)FUBll7+v@MXfmLU8p7#<=_-N#t% zfVUJ5w+7z-A_OIwQ2bIF6Vk30RZT)DRK#V;>#q!Y zui_SbCpvz9Y(;RHaU7xfgWqHe>hEau80Gdr+B|4-b>XjaoQ3?ghT37i{SDKAi)T^N z1@Dy?-ukJ=KVIq<>J7Tw8KE`*0oPyn=uw8TS#I!XuCl7Sn!}3zz$!!5>ku@iQbkt7 z&IK>tYU>xK6~Da-mNonqj_P|~o*oLWyC?;s=x5O}Q*-Kt*FlkDAZvwlqOmAG4?M~UU%iIzd;9ja8stp_vc4xiWG2RGUSm^M?JCfE2^lGK1Cfawq3u1R#& zUbg35>W^8!WA1;4w|8FD3%D@7K*vo4=wvX-Fv&nQtND-_%5Ler&yqW_N-zNqAM2APXxz) zc3C;LRNR_KZrCdBZIktch0J550r*wilXIGLHHfV)ssz0pk~2+_XOMVSjFq<5=}G~K zUZKShF~m{dyY5l;8q|s$luhaQ0K7dg@{3N6tz?p7803FDoetj0=(*t{v~5_&Vgg}3 ztVncJYH^Io_d+!=Si&AdRx6V*=tMq9g6A_5oAXQDfOCfD~b9)T(o3SoFLN<>Z3t_Ug z66=RpBF)Tmn--lLB4mLIWNk^_F^reNB-6dJ?J@^R2~OdmC?d#@bvl}0#uFA7qCAyz z`udE%PeWuPLPMyWp*|_jT$vSp>*O(9XrJq7A? z3UoUnm}dnc>D5519{2_ZtjwkUnrCFC!JPf2&2Nc!Y$NvuZQ+L?RdeT zP6ftKy(Bw9vji~0Dq6;x#zWSr^csaC$JvRTZP{G4$5*!TzHd}4=_GWZP>E5UvSlr0 zMY@Z7jUaQGQRAiP;fejKji@Nbip7B7rN_Nt()LR9oHVC-_&1g53n}G9GiZ$t2fp-)0{07ny z5J?|V@*dhoFDq=&|8+Iv9(hDb^xJZUx5Qia-UGI%n|972JhVXsuP7mSs`z`oksm5D zg995C%{OLRDDcO4L$*gXT(;&SwDVWBcZwyAxwg$T!J4NE3qr8TYaTK-@osaKII578Vo69TI`T_Nh%(0_2Bu>34;yl3bQHU>GiDiIRP@L8Zo{ zYr7R|8oE)=p)vRAD-I;~;tdjf)=H7J{qB)eEI}XUzRGrPV2FrpE%k+t=(CC0rBO-) z8Cj7nm?9|*$=lsHp+OX?U}puZxJT;=X$CjSeOk&Gs}zKylS#8{u6IFOa>O5gQG>d_ zcP*ppe2iwg?vubbK+uCY)d3gSP>|o@JftKba&>Y!T9|<|Ea|Mydu%z}5YT^xJ^qIg9F(r2&>{#Hd@eyPCCS^lew> zvmp=&RIqAtrV&Mww-BoIVd{c>7o2c7NLc%f7cYGAf*Y9Jh!Svia;Oi3fAc-yHJ-g+ z5NM!}6fiUZUYp?(Nrx^k-hQ<@8-O+;O(mxY}e`{^_POK=vc_HD=bRsEG6jZSLIp<+&-v^q^nM#8&qICAj(5j;}|x;6lw4Bf2skz#zCL2 zJ8wnuN9hx+?PF?aT2@w8(Vm@@t%|3G(8pWm7fCr>Ar0*Bg}H_>%~w*!7L?wzrd z1pe(yW)qy8V!(&{+ bqv9~w@VM|80gKZLR8nzwL%24axp@0;O2Jk> literal 0 HcmV?d00001 diff --git a/images/screenshot/gui-cluster-backup-edit-02-retention.png b/images/screenshot/gui-cluster-backup-edit-02-retention.png new file mode 100644 index 0000000000000000000000000000000000000000..06a006e5a14eb2f049de814af39eabd928c69523 GIT binary patch literal 26392 zcmc$m1ymeQyXLXrPJm#+EjR>sCuoo`5ZnU{?hYZi>)?byNN~5{E`z(fyABRJ{6D$h z-f!=oJ!jAEZO)vju4!tjtGcUx@AFho*hghq3{+xN7#J9g4{}m!FfeeVFfg!m$cWG! z1?OL{pl=8k;!5H$FcmRq4@NKh6eefb{Lzw!ZsOL{^BEzy zJd8O21-~GaDjY2(?>9XMsLdp8PIWK+ZH!IwuOLO0IdjX*@%=p4>Y$A=<lydvXk-Lf*iT1rYI|eBR$!XghSSy4oJ!g@r=5Y6j@h z_4W0uYiqFnMZbR0LwB`GrngJeUp|$KaC)!e>gp;YU?tf+{8xcdYtS#LN=QiX%$Amd zZp4N)pKVZ_od7R8QkxP#5I(;ox?ttM|MfZP_y3%+I=_gIjRW2I$z8WV@o@$cuHrTC;lzRtxw$EO*<6# zm~YpfjZ5tr!dwlJW%0q!buqoZfL zk|tqJ;)4f9_ZBy4X)!;~($pM^1wFe?@uXJqgQiuFma62An44}UiSiH88&^@Xg=%As zk?)?M3uh-IjS&j97S_!`yX%X(Cjif%W6YQU$R24|h{LaekC_eCs$oT3Hmp}ahQ>fs zbjweE-SzjpA_0i@c1NA@T|80(@C1D2D}5bNNVf+vfZAxt#-L1fHM)_{d__%T5V`9n zmxrCxj108@HXr!Ygzi1-?So=q*?4uza^{T9p4Y5U!G-*4W=1PH?>ZJHR}`9xqtqu;C2rJ!@8`^Qn646ZSaqQQ^c}mim&-K?^1|JF#u0Qb?ACL}CBLE0mAb8|K zH5&=m&C0E~7KGk9jblB_TnjyQ7p~9)Q`&*G%v;np|fBSgywmCMR)Lk+yFmBhbt}wH}W`8kuYs+ue<6G0Dxx zen~eys^cSBt*VK#$#mD6d4dGCvkTpC=VYB=7>B7t?@l8pzqsfC8|8 zbfgt<2HjtLeS|gZ`6IXNl9swPZw%$Kf&9%!8{?;Yr2hIm402_(9dMWp%A7ULkYl)+ zo{#%pnN6sRi`lwC$L;xuNWEYqE(uv*7iRPpB&ij23K=2jknllB)g~%@ndKXPX zSY4q5j;pwK?!mD=mh+xlD|VL8xpQ_X(~YB)HN*S!F(cldrB&Hb5`X#)V;`-j$CD`C zK#~fddF+KYwWJ>7r$239yo@S7em+vv+Tmd)vVY&`LdR1IuTwHy?NH~Vg1on`0Q^kU zh*r49X)#_oz+P(yz8to#hZk9zKaZaFdVGymka%8mUlBwz0(WF4iH{qj*8Dy_(`)9D5afxtvu? z$qCZyu*r-_ZK{iG_B*fkt9TiuEq#w3myoS|9;%p|(0{$%I6T?=TJa;8`ctwe_+jh% z+(c!8uQm&Y_i6qbSO4)48>S8md6lzugKa3}#_O%upq>ez2%_<2 zXK^VB+YQYNTnO9SqoI+U(%+k;4C_KC(1^E=bldap-O<+VO(Qvp8r<-=o5qgoPo(Ac z!`A^X*G8(Ni)+V1iG#{C`>fsDVoORa16ObK>hyqe1ya(F)&cTpe2{O=hlO=UQCB=(@*p{vr7a->Ski(>%b4t9Z%u-!?V+*GTvOn1X5FKsTl5BVd@uU8}fKZ zAYa66pO=B2%T>{Q*w5u(@wK_vb7u+p!inzrBkfO@<@B>F@#LMiK2lj+Gu?XqRWnFV z=?aWoyovUwyFZl0xNBvH=2pDEA9gwLPaU$9CUB5*IJF%rl4PrU+i@hbyL}QV!=F}u zS5ocYPDI}Jh|AmYdpktZg|{Z2Je;ztwU)5Cy1uYBT8r;Xaj>SXZsD>8^s;Jz(GH+W zVCg+S`z@NYhkK~x+P-E|c1>2j#D3$)0kTgmBLUt1IfEuop<~mbpw_+I=Hb^)=oJ5O z@`W!;^AjM!u2^8pz!D#OGOb?oQ`4g~hZhrz##^4V&z`9)0V1DHimJG@m^aA_D`{Ia z;-1WwXdv&Ix!+&`97dl&2JR_a2Y&QJa|xW0 zc)>U+D8&6f&kluPyhT7thTpJ&?lHo6e5pCq&Mn;BZVR!8lfYN4Pc{hu@X1#ct*Qv+ zV0516lBzFzOnj=Txh8Ze$-lefI1@>Z|FFIO*rkPojM?0%_K0XaNt(7PO;1Tn%R0)B z00$?IprF1fcS0?74MSM6ZHr4EGNgQ9P91ZQ13Hq8xDj-`wzaAXV zc_mbPMSoXZC%kRztczSFk$GhD{Qwz#bIv-N-5gxTjB43ieabUoW$T?i-x?DHlu*;hNv@3ZyK+!7^)n&Oixk`erNoG!Po~X>*2eqC_2= zt=p3VI>nBULwRcRNk6FDingfy>-T9y@5M|9SGa^Z`F10&Epr_#ppG59e(>GBuUF7b z?3oh^`3ZmD?<{dBwDdEAtjSkp?qL?1Vy;Q^^!x$2wj zAz6zr)PCNps-`b#>wwRlJn<_}yaYpc&H6isn`cdV_BpiYq2OHiAfy-SeDQs?Jazq? zcn~6M!zakUwy~xdTNf~W97XQpT@WMqOz8BA+`BQ`&-W633~)D2TYpv2yRbzFO3<@U ziOi0wMmu%n^FX8>eF2E^!A0GSFFQLjf}#uMm=XB8dKtu18{Y3gcl9r1SP2EQ$Oqi` zx+m{L{tgnK*`{lnS!`cb3 zYJ4$v9in~NeUg~YGNhM8&_1y`Slt4$*V~yM(!+;VE6zzmcyuQverF>oorU>s{d&7J z_+|Lz&qcT+RX_LUta*u$bQKfDB3{mpPYk8{6>1Ts7RV-%s0m`?@W)mI5;-1Lnp`PHh#5T104M z+%tUiGM0#@!6A@ge+8zuS(8C?M#@T)*cQJ%(LQAAIA}k>ITjua&yFxrvzeTGMKPE> z6D0rK=5JbVlz{)TwJ-pgDg1Qw+yWcv(doX-yHw8^2bO8+ctQjXnsk!r5Lf6<+}#yu zu{Lt1g*+L+!+r-W#=tBeCD2 zRXkpeUYOJDTnS0{@^nhY`)Fd^p4L2gKQ_M@HGzC|_Iza^bSbk;)Vxr?g>T*p+L%q( zEn8b@2;nmp>WGs}um4rW=I5~ydQ@|UZEbgEb1YMEHG!!A`4q>4g|VV&wxjZT{^BNA zc&^+Sjb%>|+BtoxeAg(|96^4=3*Foofb+qWtm-QmUEwd}Tw#RMW|ez$s-#N1kl=%DXWj#oB1egGMKdCveH%QW_k70*HIhnP#ikI96i)9%TYhlY!8wCb_)4 z@`24IN7BEYXJ{#+LQ=5YT%M0y5z}G|qaFR?Rb6y@(|j5JG61paJfEV}5w;G-;B9>l z9=RgQPGEngyG^KQCI*Z$dc;Y`0Hw{%efGk|{Ef0VdjmC=vn#xcpSi(G@bI#)khhc9 z6Y*xZFmLeLci{jx>y434UYGU2{@PYE6r1{issPUPaBCepVa~7)53H*FnF(ff2sb#N z7JG?0ZTI(=AF^~6`}e3fepO-5y@-%jkkqBzLPfg@Ns5m;^OC0&9vMD3#V?P~7dWZj zlWduT{?yAfm?aeaEnsPv=aN!w9B?+uQadw7ooy2FNU{|yC`lyb6JWDEs`cZZ_FVUl zvBfsoXNbuSlkSf-?;n>VnM^8v9EaPdw2@~nwU`Gq^}6DKagjCQ>-+6Uo3an%Lumo_jO z#qyh#Bv~eN8wo^Qj_hN?KZq{Mjv$UvKm)$ic3}w=42+uQlihdw)a+5 zojO=02&@vm4Z{%p>i!T_ljobGyy=8S2Sj1L>kG)>{SB2ThhXc%(D6uC&SUR2$9*%wIM(r@#Lh4X`#`;$ zH^{s#tmsZ}m<*J7F&Iwz)Z|Q#7NK*tx~hQuP!VfUS@ip^!5`)1^?A}%V80~m&btj? zI+mfe5hmZQBLCXKKLb2nxdU(@y<_F!Z6RB)1El<;fP>t}U0v!k;ZyIdzYecO#T5<|Z`@Zn*n z3SV*GowfD^cx16eV!*}Vz}K=o!*1!$^Q@Qd1}r_x3~8`in0mOsKp&sbWbdyJVo8EI zA`;FgY*d>eBZ*e4pbo-do#8rGdHc%_-YXrD?i+4LdJ-wd`^o!l)?p@^7aW5*5P*PW6ZA{f(x-(DnJ=S8KUHhzB%eRP7xdg!- zOBLx49NoU+2vfIlrx@2R)YVSEkID|-=+7bbupG=Tx(Z#>RoAdg+L9(962_me%|P55 z@VL%B=l{Un;4brr#yA?kcxRg4WH=CkI&Hs``~EB+_d ztvz`|A8P4`=CCU!dX@uZGnj2u&65&})5_^fd;U(&5q^VG-(Bh86YrD|5fRFu(&4q- z7_e2SV8?>w+EZ@t52TjBUJju)Na0br>gAn_;DX9;w;P}I zKA-Ei^Nnz&HVt&OXx*Y)nGa^`y1aBdG76x5s zLJtpTY>av3aM8>7yxz(JsaT&rsx}Atq3cSRVZ0`Pm&56XV)6qt)zSbb$AIt^21}?p zX5@_x$WVcum}%}bX4%>6hpT>rwP1Jz@VW8+c0<{)RC)CYrhe7Le!bAw$b0m9*DJ%mP6Kx|d;^!9SB0=C zbFslgkwGy94Y2Wh@AG4g=a!2^K;7Lg0 zASKAwp$B>mxdQ*P|CIhVM03y`(cCXJ{QKU(&0|hHjp! zZcn`K8%)kwm!D=qXGLB-r5Hj&_M(4$N+B9``ClJH-klz4{)!Uzwn1^S^|AS6B$)qT zb+AXW8X}8Voek|U#hoW=3QxWncg3wEw`;C_0x!1mI<}VOmK)9cbxQ+ghBmD0((4MI zqqiL@%(-_5o|>y6cK&R+k(sv6nz_X=etzQ4JGsdUsZ>!^&a8j;1M+Dq&T61|tJvdSRx{CIyfSe3 zyUeF8?!+~Df5MNJ>D$mANpFa!q9|`jFUDLsAm2H2L%bMunqhyM)e!aeiRfo4ggNZ( z%`uig?Y!<%m4+3+X)x#{v$RfqZ6BQU<$ELxCIP_lcOE3@Oyg?UsGaP(!l%nqZDltM zDfXhQz01a_$#zF?4l%j;q<3SFXmO&#_57(D1zo=)sQ39j>58TybAgkNkt$^nx2(Yp z=R>gdO)tqopXD{T4lDUcvmO~RaKn9+rw!gjHIs*RL1oz&xv;FHux?|yFr_1Y-ejP@ z72CvRAy|`vii)tnNz`%5i;wH=5ty)wF7~p=6#{~t!ap35TWjdYsu*rWTZ3J782Wp14e+|u^Wqes42?-ga)3Fg)9KZ_d)E9AlXipy>f}45opWwzCrI;X&>F()~Sxnh=txP z%mx0)R=91+&yh&~tn2ZFhhBxK$fHi*E-Z1jCfng&BH8OpfuG^Plry0~y>I#^+J{O44 z0DS~re%JfrrStAu9rgKU7gfLcbraKvSa)WX}3h+I!3?LhFYX!Frk?w9K` z&SgP_=DX{kHxqS7on?_g?Uv(u+0I+K$n7*A#)pe2mTD5G<|DAHq|L_|{m#+*_ z`un@>MX^I_9ro!N%~D~a$%R0&6Pxnxl*%&g+WiPROG&6km^utDF*vfj#Y#`smF+Gp zxIB0x*0z;{-g1u*aehKNn0T@w*_eZ{G5h+w4^rtKE0N{>)2&R`?ZemU_5LApBMXal zEBi<-1$!dOR`?H&s2!HDEXI1`qj)C0!wCyMbLfE#P#5m{*Y)O^Y*}x;GpAe0Q?rK- zISiAw0e)qBe|D?ERuGA1%iRM&pYdut^%-p^kTKKa>K*Sngp6*)nD%6c)7KiWODCb! zFh${&g6P}`Zvg0QI?-MvWihU`jynOeF}6nW3sCdSE?D%L>mZr^ZGGi1jQPv4EEM#+ zoXcs8VOURW-|8y^g`RHX5Wzr#Bf7JWNAcIkMM6A#`yt8a?hCJbE-QqUjP{3%JRJIk ztC8k0-YS8Pu5qU5!!YoV8Z7#aOPBeRmWBU7!vyB*6X3{iqcu#8Roz5~M5MLA#`1%f z_Aba?Pw4Z_Sq$hn*J6o{zZ7sWgH%Sn6Q=b836pNEAp4E*y-4Y>M>2`IP5Z19Unl%D z2fru#$PpjN#Yy9>UCFE>=-Yv%-+D1vmaA~V{HgI>Of9c)Cs(tZ13-iK$Gy_(5oCs= zX{sWEd{sE(%x}PaD&M|GZ>2@m=Hq9T5^ub$HPO1x)^$k~jHvae3~MccXSV7RH&IXa zhcUv2rIgsAdcAT_6 zw=^6;3x`Gk#xBQ;M87ZI2(q!2ZI>pz#QJg(W}K-o7;As|l@6i*O>)LTYSZ2nz`*53 zxNgPQ%gL_jrD}cJg1HF9qza)UG;4pUEtX+vZpb0D5nEV`D(Ac|`AKF~j>Cb2+6hqw z9t%DCy}FvBcNE|%fB1sI1`A5TcPhGliqi+z7hP!&PW9^-s`)RaW|SmzBhDu(416_( z1SwJO^{~2gyZO9yn3S@8k0jr4!+^J%fxe>o{Rf(;vUH*JzDHA9CLS}BE)3o>?7Nt3 zIf)dTuyNsnVy&c}7J1%9U2kNv_`WV{33e?p^he-BHe`rHC+r7QKCCiE>#l@-rNc8h34G| zX#s3gDGjRwD#{wfrcd5zPEeYFQ2rj^Negt55RK^UdqFBC<^2 z&yI>9EZ-QHipQlsD-b+LPhws+G;R}C;X2uC7$h|^Twr4AFGP^9t2n%}dGqwZaFLY- zUc5&%yfZ{$Y^c2^W}rHtH|SaBO-PLyF)sE)WSTZL7IApYCo9%(A|5C? zTooZDva{Ipnb_BA;o)QpxMijAyM6_*?AYVHX|d}-2z~&iF_ns_5B=k#jSFh@?pHfY z9BFRDfqsf!`fzcaS{J0A<^IE7dh9)0wn??N+Mf!u4!1NE2Nspj89P)^|p;q~=v0>#m@5Yh4J3Y81R8TqrDI(r7a zBkR}Y`9l=3H&$KUZ*QjQ>h)XPRig@U*|#chGhf&45VfzOCdou{>%p)mrL}=0G;3ges5QJ-E$uGJ z39SZG6wS+j)ogR(na8XO^cOZ~umNHph!oxJ2{>R8*)8IQOlmrH)IOObNE`+cbF77d z2u;iM6s^wK%^yq{+K=0olLkHKAdxt1c5Dn>M%Df?T>fD{RutV|-NLOBi3FscNz<^& znY+v?_5^29P1MZdUFGgC*h2666~3S+-mkYG35p0=j66OwaD}|$nRt3xo6t~R?N3SS zf^cauP{Q$MMX&4J4v1pzu0dGn>NALW?{0b#KvwL{9R$R4cZs5Faz{$9lDFYvx|nNX zPK|1imE}+Ge{>{~HuqO^Jsj-jDn=8h2fEZ0kXCuIw?84aN!iY8I$9U915!v-_dfsR zU+8D9DXCipqocwLjCZdnHWUy8o(f_Cqmg0tD-U-W{x=hCqmti3PtVoiQ<0gQh9=tL^TqIi?8W6 zg}N*8Q-wUOU!O_3p7#8p@54lIToPC zN36sA&90!r{P^FTF|%FjpW)T$dSrF{E>up~^J;%;@lz~aem(PeB|kAJNz5Sc5|(A0 zlQHgYLrs?eipVsq*8ea{{>?#nkN8ENoF{Vi0^$*Qov_zN4A zWAOO+xV@`u&)i&Ub#?W2X>@2GxxRY0*-LX+7=n{o5@hH7ht7uI@0P`*Io+1het*BazWC&(lY^;Ao1h~SI zm6er-hQ@w(G-tbXxf>rOEk&GDuyH=OB&C(AvJZ~v2a1N}ow)>7hb^jTRvN4G$Sm4l zpyoW^gwcGPOJ-O~7zqDld06D!In*68N*SiuM28Sa3rdQiG1(^x^swXU>HL}KDa{F) zMv=M|)a1UfThO|ddACCF3DyT>tg#pKBFoA zoW55urkUD0g+$Y!X^W>QBWQRtY>cwj%#GEk2dSM#SR~wkMBlUrL`marR(W>)Cf?k+ z4y4u9W06fky^ms!iB?@klb#eqXCm*N7Pf8L?HCuKtKPfCrSg5~7O30gPX?lkPka-m zvZTFIYNB!14Oqv2m{Y z3ivQ050R!jlTt%QbizqD$O6Z^hzrHdRxG;_qnE~lg3hK>n`S$am>Ymd6tPA3t~6#B zJgC7@RBzZ%mc$X4QgMyiKIUt&QteC=(T$o{u4qf}Oc}DPnyuBhQ}7E`ecvI2LP?Nj zc9w%wiC!Oslq)A6-Lc6eg~$x+2$rMEMQ>;zvmw$3%aEd41wCLGMqdhYD0l01-&ZGv zGrzmK)A{{AD_2y%cJ-J{83Z26!zT&Qyr~WD7%VYG?8aUeNfA#tsctSg|7QFkIZ_`Y zEtO|klUNU=a@u=b^y_eTB9ek59avvj`C9L370Mz)0=Kuqn>ck)#ZWz&Ew%x7Bjf0j zH}av%+w+>;ea(?nhV2B62U?y%Id+$g28XMZRP|*O*O9hM7u_CO>N!&Ai$BdY~U|g$)K=z zAyyXoyXhL5b_4n4xVo7+58sJKKEjaSseJf)MPB7GryH-(ygO_0dc!W9vcBOu7#cEs zA##|D=yRx&JKWb4EHEcO$Wp3Z8q_k+d(GzEY;8f()XbiuNNPDKC=;YnMO}oisxF!C1q$tx-bcs#0v|w0`KHP6aI)g{!v(&+rC{Lw##dN){bdn^ z9%ZxRn}k5n9vT}u2#ay|la zYOI5oD5!>hyo^3E$Y{GGi8?0iEsddDE3hzt+y=}wPY)O--MQQpY zgQwpVIHdivHZ|!MsGmI8vzSXcu6PVuVBmyLtTeG;%`(zMcFfD)k{MtTK|orda^K5} z0zTsxG8N`hFlo*vKnh4wt{u=kLtUOOY#`#F)D2|MbOu@~a zl$MreGGS$9C8wlBOF{9yp=gG4Y*~!w3N1WN{c7n=b*HUg*HzciSFnnF ztK+J?3!?91Ai)ntsJ|gU8et;U%${6tRWH{1iwn32 z@J}86&4S`LZ<`xMMJx;!`JLL2+~UwCZ==C<_w28H2nlicB^?|bw3rE)3DBU4Aw4q2 z;mu5y@X)uU6F=fDa4ZFs@IfQ}*qAtRqEr?Z7V8@u>5as2o2BWU9V}bA{HCaQRKq~~ zuu$Ebw0Ep^#R&8Ki4`hC*2kZr(T*yioGvEWBQjgGEp)$+JSf=y1+M;O&BEttY)pO& z*Q0qTrC{U43A_eLv%Y0H;BfsLcO||xp?^s^BK{ki{4+yktsZ$#*)A@*1W=|wr1#3w zI2=sHlAi0JjdCe1Pd*A2f^Z8&S-Z{RlJ^wXEB~zu|18J^x-xt?w%gdKGZ+H~om_;} z!s6;fXz2T2`QhMj2$W|SSXeNiO^}h9`9VR!`gk9TiEG@SbTy&K=ZIJfoRfeO4)lLb zX3LGB*i&T&PTnp}hMu;jdXHHz-WLS|FnN9Urro|G6WDw!11YtNjznF(CjKvJq@7It z$ZsP5Y;|KKzKJ#A>p;(IL%M^jdkpO{FgYFVu>n0xk$6@06wRQhwc>)~})3WO>>V#HbRs_XFY8Vm6i zKLr(GM1C~bVg=r2fYwZ$^S&cL*4c!xDXqGpDKzyCwT#&}2td%>mz%JD`e^iOL^xZ* zHn4p{%zYhb{=lF2!J3(hu;stvCVj5%EwMjt7+9T%(teGAEN-$Jaa)c3Is>D z$vJVwH-=+vhf^OQSD8FBVWV-4n zSoYMDj#J~VD6PcX5KBc8+OO(VvZ$i(-?6Ot0^~c)M8p`iwSy33q;R!XJYg}-D(|9R z*Ak{VIPqY=No`}{?Z*DXXO#Xgx=@JEe4GvQL$A!&6R)ooM~4%>3Tt5=qFk2+t#}X1 zflVJh@z|D$I>Wld`htEzr-#&QvGj|%dUsesRwWun4&3ZNRV~{6>lk#1ix=--w3R^| z#M-0aYYEA{qR$kllxJbFa(SobejIZ3dBz!M<-;Etx6-6e?#*$V! zo3){!xbpEd(sXjOq6;D8;*o;N5t1gz8X|>zoCL1pujT*g)zUp%D(HX%P^;h3S@?*n z&NFx0A|->!TfPj()6$Yr{QYe3X-9W^I7{NDj7j^v|4dTq_aME?87HczirIYZ>bz1dNQXL?gXKp@=>r{!WB>MTnrnO?`P9wHaL@bMMH| zT9-OVXZYZbapK$h_MH^`)LWS{vh(~!nVqdb~z-7WVg&xkuoo7Sh z>@0yxZB;e&DT;|3FQ{fRz57uo_7d|Kc*{IIJnEOk2Bfb$}gD}X#Far;l?%7S&7fw(cDy{iM)|ML1cYu!X+MBL*92cp> zfGUp%!imx{zSxf;3tnRwl<529@@u@>ugUbXfBM@ffXX+{KRi6%jpD@{u~C`i{vKGA zQKmKQr>DL^jswW9y>btd!o}YYd|7q0K}q_*0Xog2^Qk24&*nWE<{jRKTxf5XKMPKv zU$VpMuNt?3i+Cit-HF*XQhqyrx9u^ezPVcuOZ{P|rrpe#-XU-A5_}$LE+l!d#94a0 z5SOU5&_^zk_%)Lsp*xbc{(~EIY1&4bC@Tr_5s~thm-c4*K>sk>53oDiDHi?Wvt-K< z_r|>*Yv~%^?k;-IxaYKvd0sVL_M`>*=0@&?RUwBvlDd`3V#GM0avYs<1}Vcaqb}zF z<_8Aa++9>ypF&-N_Ht%L+`bb*T$Nk!e<4fx!?M}^LzhY|{1@a)Q2Ph+ohYz_QrW!_ zCJHM)ahX-H6s4UW2pTi|JN!)}hM(>&WuLkf0H0Z7zb-O02ym1aKte)wVV3=#eS)#b zqtnwD943ki3!$UGBv(|REfi^)ehB6;)y6l26-(_1ap7RT?v3|HZLOHCH_k})-q@r2 zgH(hMgf;wQa;PQA8?wch>4)DZymAj#F*Nta=|_v#CgVw{$f2j{9nL`yJ=+Q*OEuL? z3u@?<>PQle&`o@aZ6DS7;O@A#rr$)Kuo~a;)>d?{sp|cnzv2))mAk=>imN}X{a=m_*5M@#YUfi zAKNzDBJ$BTZ*g7HzWj(&@1LZ2z&0Ql4!aZyG^mJP9DQRPz06?3O2y077#9P@<%myW zVlV{-1(TDLr0JUK>XKGg?_gnBR_VgFBf-l{d%oI~f;?MdTGu9F4sud_vXvrq7atjx zj7ZSvx;Vc4b{gsp{AcOwJ+EiVY{dfuN4Oair^n?TULoG=&MC@*Vjhg|evR|}LD?+S+A3?<4PV~>muSf~vsI_D&CFnU zdB`aBhu5u>&wQp-?{a^tsG*3`aqRwbLZzUzR&UJF#bs;Wy3FQOm~ioSE`I%-=w-6p z@Lu$#;|k$kv2Q}NZH>_VKJ2E;lL`d=xl~{NWeknh8!fQ~55Fp8N$2f#b$1(8Xq9U* zLlfL?E}O3vz0~CTkK}ZVkIisyslOD~dn*Uq>uR)U4+ko6S>khqGoBIuqNMt@b9kue z?d=V<*pv(Wqu7LG_X8;I=#^=E?hh4S$0e5)tUH2k5cIr&O;^T{V~HdLWv z+8k*VSpGYk+MPdCSWA?9bYNtSs8+PV1#y4-OE3HvbMYTf9}>eu;V~Er-y}Rh7{i;> zH9o;26$z<4{ui*Ue!+7~OG`dM!42q1fByX02_P%Ai3L5yN~q@-$5n0yCKv#NiFkl- zpx~L?)RX~@O5VHGNJ%}Fr*X0hW{K%kYCW|*()g)ceAeb++7ar@;GRoKD@Xr-AaG7gzBPWk_kvjNWeh_y59VT`uf<|*tQ(W zkhDh6q1T}1&^xfwx1AD`Zjg)G?t_LV(8X+YND_tPy<2B!AJqE)f281L8$S-WIEQ_U zyd>=jmNkwT`gwS>ZXw{>9G?MSbJefknlY7ql)KoCkpUk@?1N^K3%AxLljUPhz9j2a zVP^r`^Mk6ej1&t0h^mkMXf%G>;kW4xLaOWm+GI9n(DgNO0N1C;ip2<~5JjW;(2rK4 zgyFL{hj^w^!tH}b0kt2tftn&|k&I`SbZH6yp$LjmJBt6$gbE!}@Fdp_INhy=1WjcW zDF=%DqnLO)xj)cUbG79tYPQC8KqR=&NQWfFEf#c9LG+T!x@~bZkn8$F^!0eg-=y{ zH;E#8{f_0furMf<8Xf3mMys79w#Sp)+=9`WO>VY4;gssN0;5RIOi4Qf(f^woID2o- zd2yy4c{O6#ou;TfgG4%eZw1%7Aiq6kofuME^(f|6ipfjr6~pL63w0l7120nUCw0xE zu&AtWNr0?~=wi|YE1H;F!+EJf=QlJG7iw}#CUi8us3??(0{Ws6^gXiksP`-p*=0>Z z^jW@f4Rs;v)oYTjiDUrk7npe%sUsuVH(G8CME^4(+Tl;>{6^h2Y(xH)6Au5(XE9yK zUP7M|R}o zuA@DVK`&Q2NsI-pGkqTOHbeWMCg#WrE|0S{)o-K`+2M6m<3hvi#VP&17AWL|nofCx zQd1}hcDd>@LG4_+K zAq^IAY_g!dK->A1tyX>B1Samd2E2JZ@U>68Yt~DlsRIdnuPVmQ>2Pg@_S>#Vd#%3d zHO1G*p+sVpgi0hS+?j>xi8cKBAd1L0;An%cUv7RK3a;fWGt-*)uD%gEWw6d1Fi$yB zSICy@IjmHUXV#1kb0H~RV+cM~-z-Gmk3T0PNMN+(Fms*mE z8Ts~tIjfN^zz}|wRL)cjW~(~{_~8%QDoOuToCtlH67JHlF@PfC*pk_F9PFGb}~ZI$dd_2L<@%>p!S{f>e` z_b6LgbVj{PXfweruI{oN-xuUH^DMaD<)x8nmxQJfdk(v%h4vLxr_>*=WaId#^)r&n zOZ@h!mrjivPxDsG_KA&&VFjp1wF{=Gq1`MXHdHW;|IJzjqOd_! zyZ>@l4L?t*la%$rI{WQNx_WC%V*9{o-bBRM_iwC{4y8}=OFNDcs%?RZ#e!pHgK z8qQ%>QVn_^kV&dFUR1xsv2=tkIT7g$!Rj3vI;!9M^yw3Dwmc`bN4&1MJ`&B4eR7$6 z{V3u;K$SH^Wx!9fvdjXP>lm{ejp4=~)5-74qASyKxE$0Ss3IpK7|mv^>oN3p!vVKe zU`S!c>`P3Q#>^SD?u~gHA~6{#Q7$0p>*b=bEw^to-|Nl)Q?Qhz8{G75h@#>WV}y!@ z>qOH*-|wvU-wylh|IBMn4^UAY{6G$q(@bSFV($8SK|j4kfqLS#va`En-M7X7F46+$ z2g;AZrSPGUKGSYNZG`C(bxRR#?OUbmdQlwy9XL2RsAl;yKYx3+IxUS@O; zZyD|WFKkxxf45oV@6`3+a~@5;)ChxMIRfZs*sS2x(Lhzk%gkypi-Do3LSauLVh%oA zci2Qzag*2EoJ@AiA5<~lhdVLAd)`;x;u*+X7L+91hG1#`XzY+?{Zdg;0i3H0f998|TEiR9d~n>Og^w^jbclgY?13^;=L2cI zsWr=l+2FG6{4*^#98u}L zU47f7gL6zv=Ts_Y-KV=tk7xY%>%=zyU`bws%^%l$zp~Zz^f3I3ikN2fy=($c8dir# z&}dkB0Zlf=|H_Xu)t8wM-v1#?QUx}IW;EB=^Fg_ZAR-9*I}zKZ!{i|7tuzb8CJ}l` zzD@UrgY9yA1%3c#YR5O^$IIlt?g6Mtd2@5KUD`vQ20e6gO2eVS3}Y?UNdkll<-^Qu zKgIbIDi+Y+6~YXQf1)49C}DwKqbs)?KGgHYger*b`OUc{+`-j@vh-gM{g+$piW<73um6j6UV~-qP^cR zuDg}~`SAQ=@k|p~x#ni9v6v&u82&N>5fTc6gS(0$lx@L?y02+-_CxsSO@Jd#$c5Ene00k-B+jpOQ5B zO`4RfgO&3BC>u{;DWo_`Lw~Shv%^tFl8-952j{_zI9>h_50YP1AdqD#iB-vX^xbD& zoad(*4)^)NjEx?Zp6HM6Z~jJRTxj*CaJhA9E&j>Nut9ImkI zaY)MvuW)BUpqz}aCtAv1LLK?%$KBG3u|Um78ge+Bo3x0c#^0mhlUJX+@!C%jlrw5@ z-6wAFXtxpT4)f=gBi^2Ypf~Eh{ru3HMq@50+Z?uf6~E*S*Qbc7j?Y6KiJ>RwiEif} zNynbhau!6HRj_4kge8h#t_4!Iq2|XR_bD0RRWrLWENWZY;3-uz-vWo4CY|EO9O1_F z1Pnnj?YQt7dH9ssPAR&3Jwf+~q^oA?F*3S4zA)-}ps1m1f$|8GxCF(!|0LWT845r5 zK~Os0)K+gTS@0k^hwylm4btnw)+<`T7l-CVm0$M6Pjx`d#td$mi*U09L?em}E}gqhJuA^Zn!1O(i|YZ(T2G#P0=OzRV&fILir?z6ep+~Zc3D=u)G2U zvoD4&4-2Ahk+$UJPtsOPny=r`4HRfNJUQgnKDY{Dqd2~On8dg z_Hs!&p4}0qKCphX@x0~>x8~TP&H1C$LKikZuTwTqUsN^}>EnkEHR9xRRH%1%24Ev2 z-MGdZah=%ge#ScO6-D!Ut6loCaURSN5FHculvXyy2@XADexb5^B!qM$&sto=wu#~j_=Zga=ZT6a81DG%8Ss2HnfsFJ9rr-}t52Cd1L zyDA>8qp=qb22^N&{fWb1A14GDTZvI$VaZm-vsePpj~kdE?_U+26|>g;%K{aF)sZg- z+&e3r!Nkr5Abh?Ij%Ry*>m*9efvBi$ZU$HJ%u&Cx`;B(}#b;;1MOSx?sE-8zupiOp zn3=t7zlPh~UB?i#`it57r!b`yQpY7b2UETU=j?Ub(V4-~F+dJBb-u5Y`5n)onP$7v zdN?2|6*5FD*{b&;#51Na07-7nymsZOM~_vQS+nwsvjAvpsvEfzMD+{Jd^A$50|dja zC{e773Emih8Gl(|wdd#JoPb?X*DB^Ojgrv?FN1og2-ocXj#1*1A13%;Ve6mN3Gs2- z-~iSjn-!dk)kTsp^Rso(nS&`=PMsII^>w1HgrZVQv?`4O|;_`Bj^2hs|^b<>8jTt;JU@HAs|q|ueLZ%B47 zUPO@Eq*p z?ST7@?Fj_)B<@&RM-r~yZN^ASmJx13X040KW>xyzDdi=~g9J}AdjM?mA&HYU(19mT z#L5+uUz27dH~oP{_9K^JCByd#RA6OU;1(+}191qJLvJP#tv*V!dvNs!!Z7R{oM-94 zP9~k6=7|yHnl1NoMw@v;>2oT*%n2P5%U8ICNbu?NxxLHb_`8c0*&}@jz(_E?>>)X1 z!E+O^cX|3Y6h~tBHbU;9GJER_9sT(!>3~B6m{o=Cnm;zYq~lBS&&+B znEuYW^J^8+1mFj($L4=#x!jks{}h*c7C)^<`wFGh#~7`V?uf?d8;NLuG^HGBhQmJ&@l@KmluZbiM3C z3G)+YE9i#COp(4d`>?pygM~{KOD;_byForxhg(Td)V3;>3dCyQ?5UdMe!zk=?P+rb z&Tn<)Ar;f0O=#lP*3@QTBwSMBF{5N=KY5!C%lZgk&m7g8Bch&P8>;k?vv8-nrBY2T zY%lj_&gUU@T3y^c){>xlrLjrtt^oY2G%4IJYvV%n0U;rspDu2B_JZB7q8J?{ox!wg ze_{lH&e@|?vDMaLo6RONc7KhV>Dj6^z1S8KFS3w13VhCWKS|usGn75_BEQE;2pB{* zTGPZS|Bw|MthnT%mXKD!U2`_LRXcxm2fd@X9!JDUvDtJb-}85WjQq8dgl-pEHpQ^{ zjQa=`mt55Zl0BfIk*wZZXG5N0mnCQufpUyby$5UdZz%;ks6B-1|5Gl!W( zc`2-cP*c-a3cJdhbx-?r$&*`fx~ydN!t>TIn`;xy1AGlm;u2sFYU(#9wcg=*4`wUl z-TP}^lI~cmf?xHc~b5Hj8#G=(toa zcMOWsc!4TQYOAZ^S#3EnbYWlO)?M%9Zj-9kmtr2u&*k-f)_eMo)7+b1VQq{eRfxFa zsQR-b5)r>u`{uSN7MXM(xxgRQP}a^Y$^k(e?9W*qsNG&+hcQQ0h=B?r2C6Po_X#6s zd@+9}yJuBrpGXVTt@o9&uk@v>twC4xmiQz^O|~=U9pBt5pYJf^i)iAB4pH4oyqOna zoe)Vh15Y^%&Ky(oKiWXWQ<@2|mUj+_%(O*qPzPnJ=c+38~gt_?1=CkUlNL!61hHvt#SC;ATxIgRT zsFm5UBds?dcW9@&>rNK!z7T$s0S@518?h=I_=B9eyK(V+stqzN{UmvcxF2G_qjcwv zgSS{C2!Dac$R3QQkUMfkg5JLZbc{PcJ1H%@HNO17W_kR*$%o%j-$L_Fq$Z zCILn=X9Y_n8Cngt(PU z=mEvnk9mxt&6R7~lEFFU?_)Qs8qwbMX)}MQpBqP$if9zGY&a)k2}`nN5D_De=bW-FOkZv z%EsbQ6#NL?@S)Tjn)t>ZRSRx8et}U^HM|iaJFim) zetPJ-NDL2CNtPxZ4N>j$)?XaXtHBA3#pDZFLYJ}6CeKTAqO=PxSJnM6gx;^7{~4N@ z5hRA{yFlFkOW1E7RPIwRqytR8Ffs7}u3CINR2w1Vqtov8#$S$6hP}M@wgX$$>9pcv zt}@h}{rTT+1IkGTL@))Zl{Iej?H%*v9I`<#dIm zOknI#w5VoLYH1oVH{?%ioH7e*VaN=D9;R8It|q zO;$JKXO_B=D)~`*ADVkeR%#pSg$lCk*s~*BRoi;(6`2@B(xkS`h)~A?lfjAtwwL-N z<#z%IJE@|vj*duFGXhxGf|7`_ji_MJ{k2&O!24IzRGyb3-2zSo%M)ZV zTha+}$7y^$L(DL-&kA*)CAIuypRuv|>P&rl`g!RbTC)c-^>0S{4%+|NmlR92PaS`j zL0+kl?}?#j(#E{ifH@2dBVX6*h{Od*>rSDXS3O1gSk#c%WMOd7Sr`p?$8tJfDLj{^ zFNUZNKD=9=I{guN;WbTmJ14VlXQ21Htr1g`x(IwI?nu*|-`Y&ln)eN{Bcalyz-sIg$u*qPUk4P~jzxs!(1T4kHlbMF}MfCL2(;!rx| z3-!6_iN52BUV1#vY3_|5KA(qa{B(PrI>0WvX^T?Y9r~L3Ug60>_|vu1S&TB7jbD?U z4^%Jy^*2L-G8++8eo@R}il>=bWeroTo~{VMTuF9n`QEm9G3VkpbD2Y8gX{3K7U3`d zJQy6b3l#8(fow09kxlNc4uss<%(<}rMIpbsC7b_=6fW!BvUEDRqaZi8FYxt*KmG>G z>g4%~;PvCIPTSMlGNmI%aa-3&r%T#=pGIotHUw@`2T}3$C@UC5l9wD=%h3NKKWP~M z%b|4=1pL{F`dOKehv>}V2bZRaq1xrgO?>E5xhCyyepZcXt9+aZ>DkMs1sqiN#UBb zVwHJwWTm+7*t$0ee9t__Xzek_f|MctEj0|4SWS(mABfgZs{`jm-S*q?)UrERyJ35cVlgko6L8wa{&bzp%?0)HKFcDP+n&pVEFi>m?Q7H zc795Y_o4))<>49;=cLap<&&X`%5rnk`uBX{kiV(9k#gtEoIC#EuPZMnM=~ z*y*K^#Cf@tM|@LD`R0PGR=)Gmtez)xpdHE31OsL?zTLVGF8mu&q2+X*F%jlvwoRT@JiMo=u3fD(3H8&8NP3OYlCruBW$N5 z&`AW~`N+g4lF`MG*G<`rK2UvaD2KgyDg;fdo2u4W;<@j^C%rnSY?a;B!K-rdXDDk( zS%kX;**{k5@il_pY904SxKV{XyA+3Li~pq6fass|JHZ^K2kGx9p@*U}&ZbqrOpJ&* zdU&N!j`K%&>d{BIW0RhhQtY^yt_WBf-2{A|&9q%mNuAG-4{jh|=d!YVHwj+9;cFmc zyIQ0TdD)*yA1r84A^)vGBmI5kNy~Q-3)|9QPt_s^om?F<`Ca26Aq}ESRrhCmEUXFr zylYTeG4e!Cmz_Ha;^m&|bCkXC%NYVmK*Y0{%=R(;O7+ z_tUztYdozm^b&kR^~`b4zhggI2V!eP|X+4kZR#WdE9jbULzx{v~e z7_W9R(lvM}>PXKm9|OG>L7FJ`)lbL$T-{M>QM=rBS=EI1DU<@dq387Lz9&BllfZCo zL*E+!2S5d+xlSqNw3z%H@M{@D)wSmDzS%x(b3NuOWcW$97$8lMKnfh-n*F8)xY$v* zt{OT*kXc3FI-cEy+O*$FxSeq{`NC@Ma)5htXSXS3{qts@)IqRTSp2&caYb^^PNPyV z4m|1Q(o2?fVt&^KNApNZIAk_%;F5ND)3_S>`F~*wcbfinryc(Bf5bum-hleQPdq&= zkn2A3C~;34e_mLc{{Nx?|E+oYkFdc1DKS2zDERKyr`eK!=z@kxlw%eT9}-9C|DXok zR=L6}wSS431pi}t|7NR~9KT{=XO}wc!CjG54|-%HE+;3)clba~&cCn=Y5GPT@-EBE zS1oNW@4*o91H+kLO>E;~_K{wcy=_J6yd?Ai_Z_%fgd7fstBtB)>T!4cxI*|ZMMbam zxH%doA>Tac>TVO|f+Br<-Is`!;QR8H16I|2n;S;{F^Do%RHtzcbz*TbnY-!fTv1a~ zwAW~T@9P`o;U$QSQ`I%sDmFLYg&>Q7szr_{7sa6wGd+T;&VCwk0@JIVa^9C|{LgU-ot=-^8CeCAbG{5rL`qel#D2cY`h^fLaUzPrv0zS_-5IPiXo~`??^5oC zE!QG-bUH`*_FBhRyZV}@Ah}f_qb8QFA^Ykc;b{U=o=vK1!#BU!MTV|Ty{aF{I!hQv zZqzjkNqWJ}H8mkxJ#aw9Y?1E1V1`KdC{W;i2IQ4w?6a-|)lLg3dcpf&!^3u(0{PMO zW1AH-=!6!=oW8#$7fbji&Cj90kA8S*A?v&DdWMLqO4LxH)yZ9~1l@FR5N1In6nyZ_ z0}1Al7xRZKQ)=3NahjdgBfRsV&om=)@S7A-+bj{uB|NY(vz=96UQ-llOp%T1>ezat z%P5F^wfi*zQRV5j)+0@)#x~%Ft^(9hiyE(9KYuHPr!M0oC zbhmPVQP)uu_;^zw?v=SiE9-M!q(5MXC1uCv)Zt3G8MOl*K7}2CAT4i0H8^FBaq_Th zR`)xdw6VHsS=o;bZ1(#ipZh#%<7h%A=3_Eu+7e97mWaj!$ zy9Tm1+MAPY&#!LjEGzaYNVd|?l}4UBG;Mjna-|h-Gq;A+tR@OS_3S8Yv~A{?12cjg zluIV~0KKOKp5X?S>TJ~Q7w-V}s3h&%ld}uAYPSD$-&40HTYQS`l7UeHz)QD z`+fELj!^1HKE32`C>tjBQ`oXThwc0~Ioz7>8v`} z0DdvTkhl1bn}k^4X0Eq4UHhLQsR(bq_v+q&QeK53C#Qt_Vd-rneSg{2FfERGUzt0b zwO^-Qb)KLoBbn6u%@R)j~H*R!c9M>ao zoaL*8Fu%D!>spE~Jy(L1{?1K^Nd3yCxoYLehK2tfRH<2YlR}|PQHwtOgBUKq!ucW; z*?r;Lp{4!zZS6Y$6or{-bmQ?9@R**fYsa&ns`DG2>V3HI)-ih;*T6UUhChvgUSq(P zX7_qZ(C0UtbIjqrCqgHAS-G&L>h7L-emZMwYGb0-u9=tosDA{zH@~Fu+IG|y-`;yQ z?@$piDv;}Rawt>7VIVR|t4V(!O}GyqD~WJTW~~G6*gLki$!Ih>B=?{B!>q|2>!2q3*VgW(I;Ekzp*Qon zr@hGf-?Z{~eB$o}g8DjfZ}zDusi<91QoEv}YN>P$q^1T^(vVkD0x2n}9La?KuK-VP zM>l8qe-6;SCq?E4oZYM8p1+&F-#!bsU?&eh3nyP)Cog|DPbYsT-}&AF9JkOuqnl=W JB{v>N{};bkHwOR! literal 0 HcmV?d00001 diff --git a/images/screenshot/gui-cluster-backup-edit-03-template.png b/images/screenshot/gui-cluster-backup-edit-03-template.png new file mode 100644 index 0000000000000000000000000000000000000000..8f70b273198f050bc20411edbaf11a6eafe3657a GIT binary patch literal 23626 zcmeFYbx>Sgv@ZxDfe`E?5L^{H zL;@cbbp?Xo_o*N9629~fpvRK_v9Z$d!!l67HlP;Uqz>#!<}UVI6bHxnMn(RWUck!9 zTBxa>9U23tmKd?*lCz#_G$wYEa?Gn;#?R}BbFLcDR5j$usag>5CpzySgt)1kELfjV zHE+B)(f6u|8cTIEJs5t{;{IUm#k~DjyVp)cnPL$v#6n(SpoyoSR}-CDFT-S+08A5Y zQ*BeeW>6{NBJWAxsmSBiwz-Fdgncez6m)cNl$9T{{5`fEXz-)0e$LK*u%d~)M@%bp zKW$Xr(ed}oEKParvD^BXj&AJps|bO-Nt|qK{f8tZLjnome0j0hW5lyuMuU`u#I>mD zi?#zf_DDfvU-3+YjZMCI`d|K`0>lH%FUfpf{pBW)&f|Jd^|v13hkK6y)_?ln2-*1U zIR8Eh?(cwHYqhNn?6)iWg)9^IexqQeagS&7Y>ZMVj$zd9eulU@nG-(#%hC@)LZHOij2n6CRI(B1$r*jQMqJ^ZS?!7-bwHI4FDLtRV*I<;5 z#P|;@YtT_K>7gw&aZVrum{l`^sXC-xXR=bfbAaQGf57F35u5I#V%>dAbPk_vVaT>k zrUEncpXfS1WMx$kS@wC)7;NkWZ}K&A(0aNiHZSi8WIdR^Zaiyg@$*=T zrI6SV{1Dq0(QZ}~h`}|lMt?}|SprW_F+I`yhjEZH2?e-oNp8CZ%CNqJ6MkNknqG`;rBUDn9YYaIPVeVZEdEfPdfRs->D*7L~dsVLZ1S`bo zhVl%27_LS#A((Q-{~y%#wZ9j(!L4U%&NW90#7u)x4#t6}T|sCxTB91-$Bp6({^|WW zroheaWd4+8UQ6T9V3TevHZ5AO+;mq`Uzo04OISnYv+8lffNyQLNT zTJM_VJ4I&1RSO(`ib|lLL2$vb!f`fw%CWD3CdEnagtG(b=v9u-`pgz8*1C!eWZ&(6 z^w!u70Y60FY%6tkglhIcBkytd7%ZlWyhW!kD(}zyt zW|&*KDcUQ7n-WFVtn@dOLjoq9whLoqw}u4E&y$_xg4R`jKm8g_YAnA_|kZL|) z>CA|zC<6H2&1ruIbi6y``ohKCi8bU~4y}Vx+hs8MOitB9YqKR`QWi^(W(0SB(st z9Xzic{~_?g`rmr z_!hT2NW<4cKn-aLIoKN2gwRlkCkWy+YNMwad6&r*Pp60L?PeqvG-xM!#E>z;_vW;W zn->J#ag!tb-S=rzF;(#7tMZ}zE-P$alSJbV7H~%;ud0J;dNj%lP~tw#>cbMl`HRv4q_C5#jjo$04Z!(a#rsk#l&l6FOn zo>n2B7Wpoj3X!XW?6i#Dot$ig9x88NOowfHP&zLMX(9Px-t8lxEzH(QF)#^p5pL@~4fWj@SB@X5d4zYlmO6n>*fW2}y_Pj)XQ7 z+Du2J%u)%`e2jgOFS}omsCV8hP*0#BVNBW1?1Bu&bo7C{MQ-Mm5KXzyUDqNl@UCXD zUho1xL}HX_-KibBCg3w_IA^$xb*O>q?3SjeUD|R_E1%j@5kZc2-Jt>X1X6b!=VG#l zZW;>lfKz4l*NUwyV`D+^)xUps- zB?576n^@aB89|Vg7Q;^fBna}LvC$y*dhJTz*!aprbLmL#_fw6JbQ8a?J`21PSY{;= zGOQ&x3t0PH$>nm#r?l6QZl^Q(x zHM(hARfwZ#X>Yh6YZ4U;mWm|X!<0hRghIZ>rJdDveVOa$H(3f(%WaT$Jzn0xN92BY zdB`59^E3e8@vQ!G^Ec9R*zomocSn>=L333IjEHG%0Ug_^6()2^i53|jej9OhmX`$x zndyG_aB~3jt*y7YNSsNE9}L#_FOLnh;3;Z}7P2-JUwlErlv%klC3ndfe}x?uL#~1M zXA}g&_{_{Fr>4KCWW5G{|4!2WBXf#kv@1#Erwj4ux73*Z-SD@Y)I#sg)X_A~*=^VF z?K@wjPWlFub)#>HFeDK`X@tB+65Yh8cEs)SGUxfAw3{sY>rTo@-qDrN`T}NS=Amrm z`R&qrZ4abJ27!B|RaRJA#JS#IfXG#&0opEC&PB|)MfD6TK1H_!^PU^# z-HXeP!1LOQNHMX_hP*NR&yz~G^loDVF#z)zMnrwWH8^LLqYt^A+2e_Vh9== z=EI^OtHgblieyd;$PmGcmnQVg$RqDUi1U7`u#}l#=+=JWB-%l_<@o$;)1KL8nD`g+ zuj?ks*Oo_i)~CT=u0&w)J{`@uz7x82zW zslr}dkFhv3J&^@s2{dPUfyUDdTY0(dsM<5mfK-oUUJ%|JIGqbil}bWz%BSYh$qkGb zr3GoqY{{{<+K$DU>Rn3~`HP!aJF;cvpYE6Wik7(1zJhB`rW>4Y4+(O51e#9kDi~j# zTCL+T+JLtr)Dt8nQ%(38N7-j^_dL(^`Kq zXST#B)#O`;=!UHUjpEraTc+FZ3F2kHh9mZh{DoD- z?Ro$`C}%cIX~(iU7sY72aI%|q4Z8vk^VvVlGPT|LLGxbBc;z*%3|yXLK1A`b9pwW2 zXDqT#AD!x=h_%7H0p6b{Eg@M5Ct+f-h2T0;5*xz+t}oAi&cD-YY022v$2>e984-w% zyp+9?cKRdm9C&%=bxCa+P?o_nC0Pf#w2mR;@M{I0>>ct;_}+X91NM`4R~Mb5#qJuD zxHVfog}&v@x_`M#ik;yUcQVZj+~&4x@6T1xPxDeD30SND2dYuCb6no}*CCKk;!_=b z%0Vio+tTvH{{q(-FL~u5387WCB&D-0jobhNcyv=@wS_!B)<&XG1xWZ%GS)lz2ygyE z!0g_#wl=Zf-h~x`-tPl3_Za~Z|KZ`&T1F5=dHk>wC^tsVNv#kIkUTnAjP>@%y4+J4 zK#3^-7T6cBj+p*MS(%%Bs5Ymfz&h3Fab#LVZu3k|na5vM8hig0nK;GYaN++TZ1`_+ z#Qze)zrjgC*UgrBW*3}&vdR_DEZw~{wpOctS~8_5U)JYyJl5!WtZ9 z;N&pT$tihbW_v(aSq>EOJIPn z(J5O31Z^8!ZWaRJADuf8@z6pQFxu(Uz;wc1hN|K}kVRU0x~bc==*zD4#p5m@oA)_) z-0B%9^w0V5Tig8O-Ed9(_Q6oDj_B4BlYnXQpAWFI7w(}ZYu~b(^=hmJ9e4R7L(c^= zd0GJB3f_GD)go8vu%@us>a(-VXGO0e-Hzoh>9ZDZdOOu&_^JE8r)uDaiFoHZP79!C zuY!6fE$e1{jbG;oPi+G#&Y$TGAtPvaz1zVFX4TwXB-~PJygbv@uq~9y?|XGpA5PDN zd|whQ`}AO4({RpF3!SWvUc7eMUhz*Z=6W7PQ!UIY*~Yy1*n%F$12_-i?ddpBGk+dd z3Znjqok(z9G4o4t0GJsTlEwT4Fm>YOAT&#yJuz4q`oLetL}9szkL^e3FHA>7pf0Dt zvu7!TqZ(8)%|n>2!{B6-)W=3X8*8S*;v~>?c@8y;LGP1do%I)$W4@_3YlLhZY^i{2 zQuAfnkqbDnMxi&6|FkNb+Z|&k6b}|tVJIS;LI|hG{--Eb*gpg40pQDylfghuMNTQ2 zU6z-FQD_*IJ@Sg(Pqrs^FbCZZA5~oy;>;o3P-hc-meaT)>tE|uV+&5Hzrj7tE>c`c zu;pNrXe+J6r7ND_-QxOtJTYOe#27*Z%(p1!xu`I};{LGtO z!?NedcABcrKl*qnX)Z{S_84Clji)xlPL+k?Qy6gvN}vpPWMBDmfWX0h7R@^N4Fit@ z$%j6yOPC{*+2fG31G^YL|CwAYDZ|^!a+$C65IRjWy#thu%Qy04x?Pq)haHSg050X- zI!C5hvyyjU-Y)s#Y_-+ifMiYJXp!H6Av!FOcX361Z2<iX6=QOTGE`^2M3AZVL(?hc;E-y?sQnO`%elJNy;= z0}t2l1=)lIEi|-1|EjzHD@?;uJBONXV<+6A>=O+z96RR9`QAkQp;U&hZ}B;&yCams z#FHCyxY@$QQyMX$!k^sn+}DMZ(_zEp)YQ<8>QL&geAVNSI1_sgp{ zJL^X*KC<_l;3urB-=v$_Ge!9Dtnph)f{R6`_Y(sQl8~jEXD8yvo99K{k#`U%yu1ZD zN*>a$>TYzqX2YJ|-5$PSRJ4~FvvC32z6wP8jcXbjp>Z?b(%)PhObfvbDwYT%W8}v3 z__f8aA2e5W6bh?L2cC=fY$pyPZWhbPZZ>~G;zDl?R?m@eA=1;*=07z6I9y`tc70_1 z=z3tobEDH!ezHA&Omxw^?0aShNHRG~qo?2;WT0bImwF-Fn&f;+l%SQj*){tj|F-<` z8*?s)lY0T1Q%c_wJ3n<~nt!}Z=Lxv^WnCS6WLo%Q6*XQFctLQjZT?ne55jI*kI%#R5qWF8fxcvk>P&7tKlW-ml3$~`>k9ygrQrN5Ph9O3 z;Pyu%v5Upjm5A>onrkC9<`~&)eLbD-FWEeF=35z5?+y9hnLeLR$vOvWfPRjA&+<@sBQsqU z%3u3d!eKgpNSWd#<&H+n_OcOK_jN#XVx;E-r$o(lIHOgeQbF?h`Sk5#Y+9=y@)>JmMD!;SsRWQaI+e@>m-K9E zSZ3Z>W3y7O=HP2g3ZOG8>&I1X2Z^K8_Q9mNwI+!*sVDG!2~i}|Id{LYNvi>Dxd^&C zgV}Gs6mANBYOfs3xZ;S^#N&UUh;Rn3E1eLMhfL4v3D~DbYfl#E4XBuWaaxsyD ze;$tcO@!V&OrE#sWe1Aj*>@Ltau;sDC4iFl!0+hgH9KONZ>0qsrn+Kb1i3c5m8ufZ zE@;4&Fb=t|E1 zDr*Yw%+Bl&;ywDH|^1+ASukWRx?WlLNbbTYJYhX{pr1!#%N#6&z#ALc&r)AzKgNMy~jmQjf zg~?OQl*W)2eL;?nj$5T0VabF&FlA@4f{(#j7>tLih<3p{eZ)D&Yh13Twv>E=Rd37&>ci3@Zj|tp1I%Y)nn1VS*I>8P;X}ycGgto zZmK#ZIg=;;2#=m)s)@(0ll7C!Y}7c z-1;&At!K!%3uRB_hmX(^_3+f#ZaFc=`>#XUN^hQoT@Mh&O5xH03fy>B-)f@zoMXB8 zvQeyIh@}P>$x9jY+o@8dCZLz<6g^ZEAbk1Y4f6#^w|)<#n|&8#@jyt}t2HOutWd*l zRpmsZ_R5d%cAX7*U;L7Z|E4GFi@t?piRn zJ5CL5B-y#9zvGhX?WqT!vP2)oP6dmj4?`k=^bz~{E*D?yBiz>#p{8tg ziR#GlIj4+ITG7!hb>nldZRm-am?kw(IPmjc)6zYn`6=Z1PfA&_S@Wi7Wnd(Ak2iUP z#!-97ZY7cA<(^VNn7G2*2txnO>4>_k)J8@-oxG z8*z|A|E@ykZlc{5>Kcv$nN42*eIb0*^t#574*)XVke0c)$47(ay?CtKx^u!;3Wwg_ z{bJ)}OU+In_AW=KWQgZW{+yieTC?ziDl!Yotx(gX_n>Kc@}fNv)5CQ^>ojgOGlOfG zn-63V;&(vTT_9^Ez;lReih0*=59oIe%T5bq@n!%O`O_^Xx!B1iW}#4PAc*!zF{?0I zcVp~;+Y=Brbim8(poJWx?woVdCm^_j|LM8%Jii9l-kl2q(kX|57MRpTxfpLmpf>SZ zTNdbqd2D-p_>*w^9#`fI!zO?>Qgc|^fjro8)}L>?pAfTKQ}K>g66)uMS?@4S69^wH zX#>zADEK6BjaL>EJKw8rsfd2-3d3ycBGWdQK;mjdOXky zhRK2SSVandZoAPPI&3hlxcfU>-%$9c0?pHB`9K?no~4$8HcSi5`JqQ}i|m~2Pm+Hl zb*ZVa8nwUR$La7aKm;_V0$C9`GM>+MC{ygivMQl*9mCZ^coU!3JPNl?$*&Z zUT)o%3hN0%)K$2CK3)bHE18)`5t(=C|QXKc{#mpxC6o2y29 z5n6(KU7FpnoOu|*uweXLR8aPwh+rreLtnb8vYlHZOlF zb@854(|C@(cinEc%WT2uU~(cSs!(VQ4JewwNQ-068$p8Kk?zl#7fL7r;3|BX-CL4N zidWkDXJY;$D_qiI7Q%Rfvi#T?0%sMU$vw9sruP<$ThMv#FODPlk|M8&e>d)2bJ-t< z#_N%;u#jgG{k`78#A*15ZcSa)OpMc#L|Ho@SdydCxjB(O@XwUel8hbsGTgmxH`!Mr z3!U09fOE(-Y0+OUjGo}9Xub$Af2I!2S3g>q6ggfSD11h7dw^_XllRwM{mC`eK z+?l-7$B&677oHil^Pb}1AkJ-0*SQ%y3R$_=_-bO1s12~=;_?N3-UFI)Mec(K@Y~54 z%FuArdUJK#OT@TxTxGef)uU=f`q9vIRpG=z2+?SM zVMM5$>;)_uiG5ITO!czhJDWuZ0~8XkB7mD{r=npxjo(6}wOFCOLZwC%X z?d-q)vA@4#n5A^b=tflok>95gE)=~`Da?!CK|PURm3~+9-Uz#ZNqs5zU$)dcj34Qp z(y4C`(qK{#%eg}ylwtNYPCGBes0!9zI>DuyTX0Vo18wb|2xhJK7iFPyHq_kh2Jkc+ zuufg(3kY`?jQp_MUvwGROunE**uOM1toilkpeAg(ZgKBSLb^hw72vWp=euGe0)*Vpn6~bD=&sl$90vqhy zlvf(s+on*pWu_Y7-6qspA-;Whqq*r@LXy{(JLXTRgH`+?5Ui5%p>UVUR)5R&bK%WV z__INjL>i1>|9+$-AG8@_Oh`oVaA2QCa~|kdcZ5T{p);CkMTnf=Vopp_L9@4nP)A1& zD86r&GPk&8a1Vt(sxEr6=y1lc#Oj$g&A~xw`H*57khl*8+6SB5^IS7$A+|y)cuTTk z$P0huD%-yG_EG1Sfv!pST|(9lx%2m)1_yIEi{J2=g$4_a z`oB6QGP)Vi;4f6<&#cQ#np8BZyDTpcIP?e}A1$H-&tBPe+fN9R0_-`*&ABWO))aOp zM!v43$2x1{-Wsr59&qq9v>go%^%)dCdgMM;{@b;s=UQw*cSrT0lbzhG%rj3=$uDfL z#sOZa z7aghP%Mw$|b)9wLGQ`h*=>B{{B^g;;#&Pwk+>2mArnX=fh|0}^WHFwRQ#sjaLIlD- zwLLTs$N|aLNA}CeNw}UznMy%jTu>d)CGab4GxaD^Qq1cR{Ns-i7MnPv@Z+=Ax|qt5?f3^fUXE_0JblY3C+S!R2)~>mpQm zmo+c?L^;zwjArZ-Xh+nWnC&j^Yc)S3ilGf)&AQ1ceCmZGV3Sy9Rb((&CY{=DVYlOT zzQ|VF`P`$pwC2MHlM0Vay#|-|57^Dc6!(VWbDEA?t71w1Kn6X7b0>NizP4nYYk46M zBKX{Gf)!RT{}umsk@2zQeY!kHi5toU4nLFwwR-p>`Of}1!a_49>rr5k30a!JN{EPW z;koDMjIy#MUlaN~M^Ul^x??|^k?Vbrl*`bm>I-|ONQo@vKG zscDC5Yv)=8U>c`Ln@!jh@B+Glng^cC*opwLN~7HbJyCSAZ;kq`&9vrWE6&d(%E7~} zdpxhV$Y8pgof}zIcDJc3@R*ZRr^QY5N#gsO!dU_X-8H6{V8ghw=))>>*1EsGZoB9| zuadpC)xMS7bpPmGwIX}sKgAhrC)(K%=`;lx1EAkl?Jycn`rO}6EKGXZrDP81Sd|}? zs?Ec77mXsz(uR8Pka*cEoV#$YJ7j9tvwre+6>Q7mmo$`>U6H?BqSRS|HLfNuE_-N0>vAOVrXk*4c2XmPtz2MeMRmPg0_NeFu4r7RA><+O8 z3#=R25|1wz$I^ z*LeBr>gf30gQWoz%!=Y*HrxAO8+)YS33cUDrf)<1?NSX6* zC{7Ft(=a|F{;;sm0a`hWV+(`onj^qsxk!?}X6i?Qe|||hE|2WAtjQhtfrk3ORxN$) zC(UeeQ+)#QBm3C^AVsbBQErjh;#FQe8u3q0*^lM)d`GpHW>(Tj);?U4<{v7e;Qcsf zUybu3Pur7Uig9ZNL(!&mX#EkG`yYbVfnikogpntXAt#4r=$I>gG-?yAM58y_#9B(fbfdz{ zJ&1pXB&~l?_r7N|lwsS{Q*ANT7~viFf^DrfQ(fF={b|F_h9T$ev~)*Krqxj3(YyQ> zzXo7@n%!Hs%%&b$2l_mza!rfj=EGi$!(QzjD!&?HFweNU5#+BAJ{Ocs_wW9h+nRkI z;ZJX@+#2*?&%l4p2Q=r zMUvd#A41Yp!hl)r+aeS1ubWIC^Iy~-7u%JDsII)kMud>hHLc$p$~Z9jc&PO2mQQx} zR7RAaLKHX4J8jHtC#zZc`!Kre``_DmJ7!h;DCs?~0%k30b!&y7CXWG&x*>rK+}Dbq zeBVB@M*{a4f#vrR{S#pTA`@(nx(`I|p-3nvGSaadzauTnDG4tz*U9BkSV$AND*3bY zpTA+AJE8j4-;4kE_r3p@Y^MMJO#i<+w|~^$~iy16d<&u=H*niGzbfOq3h?=rDk z`$n=O)`63HT8b!+ZVqlfNRv@==oYa>!d=m0Cee)afFx znI$WH|Ho%97))#<-v*1wfM5T_^%?$QpP-Ld{LAtLKy>B2$Q*JKwj}xU61TU(N-}U- zkIYA~n|wZV<7HDRZ&yV+-G;&RyQky(ofWzDM-(5%(8|r&(UqJR%_P~)3>yj`1E zn-UQC?AHl%Y*Xp(P%7*V|@>RY07vCOUm_VErY&q7PU-M(BFBo)-9slRKj=nGJRCp&Z!=44E00jzOu0Qeu52ti}VQsS326)CJH}KQV zomd06biDXA>{im{w<)BUcjW%)U0129G`AUg1wV%u>l$?zCwqS{N3R&ZzDfX$wNP#6 z=4)&%$ew@aXNMsJwud=V^S7-Jq$mFjqo#CBRnX1x(!i`)#!a&<^?aGUdW}RwjMnoR zZqNWHFcZ?^UQ~y*nLEmr1rCD8i&e084}=iwkc(id zo3Z;mZM0QL-O31!ov4s%9?8IxJ*8R`4PlSDdn?I+K(09LgSjfjF|$0Yo;VxL!m@&5ffdcE(j4*lAcIX8<|$1^3kR*e_s6=*{j+Ufr*YYpu6T3E z=P5(M0c*C^f0j<;n-uqH;#2CzTxp`M(lg(l*R`w~h9nIsw*{LphgR@h z7du5u&RW^Zz&1eML)NT)skW3MwlvYfO(|AQ^f{$ylxR<`4V$4(f*l0UH~*ce>1= zU0Zvva-50)RS%_qYcs1@7~K4=Ul@RNEVe5dC#FNjP*4qKsE#}8SAgVrZSpkXaZgJ~Zeo+c zG6}-20(G+1Icg|2_b!{0@9KJb%6L3+XlF9oSMl?7lbf*qL>=8##RA=A)t=&1Kt+o7 zwi}FLxSp13Akckni{xjUOI3ymA#w-a*Ykn?CEw z%uDoSUcwUtJDLaX%!Q#~u}Q_-8pdefeIbwu{iNcat4j1 zl;E22?>v)zZuivmb;<^Js;l~T__+)VTFXoj>(DP{RJ8}iEJBL67oKYB{rVPijGN!N z%7w%-8ddCZcy)zU=qZ+}n-l68M@uG~5f;f~y`pQ|m<@xWLs8KZ(+q{zZ11B=9`J2j zn5pLwj9I+k3<{FsMn}Btw>x0VyYnEhA z?f1Lkv!sn!7z`X%9Cuw;oeq|zNDlOXE{qOJ!1}u8TezxpQOvH^%fz7IoN1M3Gp0(D zNiP{I9*;hpp8?3mG%;tSh<}&S<<9{5rJyvPS1?cZTb(WvhT8?O$ESQrv zVUVt?{*y^QkOeID5B>pewN8Ews z_%)-i_9GN_^M9!}cfVWc)>0a?%Rx5}tM%LQJr>W>UI;S{Is~$?oL4Ot)gC;|j+3Q{ zRP;F>(v5+bXrSjMGMhOOxq@JcvzvAvb^cq+A*wm2Ng8_lWCHPj*0>3-`N-C*#+7|3 z{doV}6Fz!6J6ccu$S}yCTvE9Hn;84HvEEDcTSBzuR|?qv<8!wcB_YAW*}WzfiHj*S zbs$v{DqY~!=(7ucnJ1L%`I<8jHxP>M=sUdh<^mq@bY)hXIW5Xj^=Sya6>j;gUH4V7 z%~!Y*mm7eIzchY3uA`2%YuOguHBQ9DpE*;||1|!@ayj^yQiuP70sVZZ*30!!J3ZKg z20}nymtpD(HVIi<^S!ca`Ob`7(eLO$`SPF~Uc;|_bH5)Pa`*5jmrfgO4-*G`bGpCS zC*|jA&@kjxd$ZnhF&Y9PnloEsIcWKvt`f#12W=hsSOOk<30l9NuoU}3e{_(9UE^nr*VLwwJ;i6V>Hcg*W z8SvG-cT{uItv9)TWwQlc|8?+qU}soPB)qjVt^0@x`)NcCR7X_x4q_2J4mJpvoK-I< zF9sCeNddZW?7i4F_y&gXfY585!2Ug^^hIkfcHzQ zX75iF^M0~rg!R6|Ck>X*B4`08geI(Ev`tK2Z(WE6bgjF&KR@&>G7Eqodr^=doq-aM ztIE!{gbqX8I?Zd@*msuNGgJLhkY6?2fPfvAx>2^|=jFS!m|bev0?Q-u`&SNco`#ks zHjzEiVO+995vgW_LJ2QlZl~L>9(}xbd8KuAb~wPSx?rBA;ksqR=gk|3<^7jkE~MKwX(J%6ynTp}(RmWJ zn!by^xTp!9ztidS(h`(mBQw-@DE)q_b0PN^A+fk!?U;1&?DlIvzRO=0>Mx54T56I* z)UbG+m@ZuHJI2#3@hx_&*Ht5exq~~oJTA;-*r(IU3(`Lf+_&TmbrZ_)cWCGwRvG@o z6df&{RnD~nO9R|uTw21*=EQ!LtZ~; zuT$l2Uk1wb%gQh+VZX~1uIFyD)w*$%@)hSq6t#ZZ{5p6%C^<^(V3+ExFWQ!dr)iU| zgR{uXdHu63t&B~`U9I$PSbm$6Q}|?`Zq|L8y-fv)M_fbYXuMdIc@0aHODSROD6no=H5rr#~ad_Y=ho_mn3xD zAo8zsL8rC8ZnzK9cyeH|tg_Dvtb?CVDYtjg{GQERUx##UxC+Rotp-l=s()k^bfPn= zVgCejrYnpwodB)M%}y%pCO>EKt;9P2K4ZiDQiAQFqT7gc%C>1}7xSq`!4?O^>v zb^ONh{>K-#XL?xN6ZAM=!bX3`i>+ZdaeYcfc*-Ozt(i3|at1y)&Gnx4U@6Gai{DSD zd_K)Tj0J8(F>-BNf4rX_fd^k$&XJJ$B>++I(uBK0>${exZ5VT2FZ}Wwl0+9{Z_cOh4wo4T8Hum~$8&73|Gp-ev@teB zHSl{oXL9O{Q6=-|OUEmuB&pw6Huh5pgWUdSe{&gT$xd`7MDG3HNpKK)-|5ba^$uL>YgE|L$h~;2zJ+G6h50NAR;-s9q`NpU32{ zg5XCYQdQLXbZ-nYL#z5!Yc6Rv>wUK>p289& z>K8A&-W}Ydj}tct9lB!zAC8Z7019r!vwTd*rs-94Ky~q};2(&B(%XFA%(adLJAa2% zkIFD=pPk418_O7>%e*Cqz0ZOfS{J+TT(h3EO_Fz6~#}!{}Q{w;dWa;>obVwWm(${5+{v?>b@ncX4 z0{(dmlfAn&c%0L}UH-@;@sU?Y_tb{$UFwMV8hO%7lhKgwoc;aY4TOS(|881y?fvOG zuDxvDH^AqEft6w5EzRkr{uw&n0P{dHpJnWFb^TUidH7O%u(u*GMDo)6qoJoW-NJy5 zO!~T+#%z}YrKw*&YPJBJh%nrB)?k75v7EbLb1#DKAD}*q0mnG(>nj5!36CCexdH&o zvgPl;66h}bOdqlm?S|O#f`&E1;E(Ft5u;cBMBE~F4R>1%I=pymG$*_g?uM^s0Q^yF z=CPL<>tvzx9oJ##w>fp1UY3MG4YL2$qnVt3D|MEm6}=@b#Zt0fxuGJnzo`>I*20_7 z@4Homos5WgT;>vq*i8d;4;!_r#Rbl0pex})+D;r65)l_GbRvpJh3_ovNr3HjR>E?Q zDy%NQ>OE!@b1A0qTw6pvsdX55Y^vfpD7hU6w4qz(sUWkcsf#?O4NP}`F(@io&|me^ zl{>KEaU52mb+V?+D`1m5mg*mfrBc7(Az8{}`j%tifAK+%*{6144qVkzzpFrS2# zljp4bFH!E8u;!a#WZ)Q$FjDCOWrp=;CNY!mehu1sW7Kt){ z7gld~iUb$OHT$ILSq#rUI4H3=?$1ckxXVB>q+GsD5$DPJICbP^`uecHp3l{&^=H)4 z`Rzo{EVf8OgQcTv`Lm~y(qrGAk2;_~U~h0_ZBG__Z0-YoIBNHjtxmY*HCmj>IV>7w zmwA!lL^wART$X*@s5d*OS~23J%2uofzt(beGbTicAWaQMZG9v->k4{E1xFk<+cV2lL)AH$1WYk=X0}}I`u+%e~jj`o4+;g0ALlzXx7(_L-8%; zvNTTYbYzoCeuHPZFP4JdtRD>lwrlYehbAwK+RHw5K0tewOPTS4%60qvZ>OIv?xDR$ zn!dHFb{#HacUgHph1oGV`}n{i!^2Ib!SudnYiPLZM8)2@XW=t(tc$DaIa)t!;@O zl$am)`?kd&Bc8+kynkGVp|57L2J<#zCbm18~Wc$x_o@*0=ExsaA*@QDdko4C%?LJ~fBS1GO(pT3O# zuLz$$8m=9lVyhyoFHRqgm=PIZI1s2WthuPsuUk^CWutw->}xjtjYnvHaTi};98#1VCi!{C1vi+BGn{yf#;i*HvtFS6e zw@L57J1TS*n}F`pX9SZBIIh|57THJ|#xxli5np7h*_=?L*XCu8MJg$%>G!J8L55}g z!iU5IOFkwata6MkU7SUUi~qM;&NHg1ty{yWA0UWep&05xP>7<0DlMQ=ML>Fy-h%WN zdQ&kV3X#wu6zL#H6%axwMnfkQDWM)}fKa4MzZ*T@x#Qk%oN<5M{K?23d##k zgS9H16COM#CPgTHcEiSuqp^badwnka zYqc&xxx0Dc{x#(4j2eB`JrU2yZR(=Y(iQWgAR20Xi(4FkT`m;?G^KhlyWsf z6KE#HHVvgTjiha70BLz0)}_|^sY{ zURoj>Xg2;;)TG?DIH)<}Pd`gBTO?c0{;ykYtW&&{80NHL1ACiQZG5FQ@Nh z`WClxKKOObexY_&X*bO$8Vip}LXcHDPM`{pSUz>6H_GiY{RwJl9g zxBK5CYjvd21XaA*LwqP*8J<+I6pE*P0~*9S0ATSRs!Ad0CBptvK%s z^@PFDbTW$AE5{S7B0U*gMt8JI64LLKcJNOR8#eG4^e^&xcQh7vepc0(8&p$&gn)`f)3!Dtcq3 z%i^qSkeHdW(mjOd%(^ewl<~<}6vtzf}^WRGc*z%Di0 zf0vQfM{R%qsVy}CW__%-+oiMl@QmMXycU+_RPwZA^=L_@#_RaUCk1OEj;E6oWQ)e? z*L|&L6OM?A!C`EpTWT9?tu3H{1$Wv!`sPo@_X3#&(&E1@t?$Jl7jFhxbC(n);J)iB+IAB>lDhb1rG~vczgpX}SU}999U#*S$%A`PhU7eITHm&Q>PU?=+mR0%;qMJJ! z%o^ZCh_XpfmREf$)$ag27&`oh*}EJ1-npOy)|Z8?$$cSRhE@V;cT4=si;yWP+6iVv z$yuj7q{7M2_q@`EP@)Z$L&27mw8Ir*!$*+kEVrdYNIPfr zr=D*WlHg8r!>?~T=vOl6E9PH#I!K8ze7xzXeX^u?qAPA+Gce^J=zj0ar|=54{?vRyM zl{wa9fzsN1aeOIzB52FAC6#e$l^-WP9 zs;MNNNCp)EG0VgO5VH&cg?joXH@u3ICQMU6j*%b&OPWjOx?h23s2Kk2^B{lvjy%$H zg8YDda*lbj@)zX}m2%!_cQUQ83*{P8djp1P4d##77O7ipChz<@8 zu^)%CK@D6 z8|o?b!Y}-p>6VbDk;v~W6Esj$DrNYn?!)t(BHH)mDbt9>&n55jVR}l53_X7?T{6LN z;NuiD>_Iz}$&4;uF`f(5<6qU@h<}X@SQoxEKO6gfu~@i8VJ4`N9{FSNJq{TPL}bx> zVe>*76{{XG1BU8TXIcE@hhiu9&}=%pUe&~9Ui12wFFoHCJfrp-63BJhcNjExl*`)6 z9-W5?Fbl?~-@VaPS=8~eWcT6EG2b1kp9|YOXW(=5078x~M*$^+r6HEW-B}mzU=IjKxw@b8zx!{~v zdW=+RouRo5xv`s{!*l$C;>%*M-Jaj~mx0#}ZV%{$BWw=WjyT_icLR!@M7FcGYd&(5 zT3;(h)Y{Fu7aETCRo9N+Z<(z%?E5)Mb>n4Jp%K1A5B5!!$;`NCS?k`|-T~601cTHf z`EUg*7!l~n5lgzyM^Hhq(1K|K?=1RNy^h&u)Xq;T^y5#nzwo$V_sq=;$n_TtZ}7q% zI(GR$y2Y!>Qb@{pcKB7cdS-`WIX-en?V_|v^Wk$#*)oaWot3S1(FX| zC^wDf+1AfnS^H~<> z9(Z5OqYtV=m!`jAY2W|ZK5``~ys{E$m(oEl&IMge%Uk$kW;;tby8=kL zu<+zpImkuoZAVr9wY8d=BXEF)+%~53>$}CNqX7eDjvZW{sNV!Q(^sBL#~m+Gw(^0z zUJe@+@~+41`#o@T%hpXT&U3R?F4-n9Y6m5}<-MAepJNf6Sule)ab?OSJJ2U&P96ms zKqs_z(nDul`mwsD;5@kJ8g=2W|L!2+V-Df@00UEnxbVe%L^f{r4_hmyZ!f^X6u>u< z?he)PmuvjB*RyDuZL6G5ret*Px^Cwn<43_vT{1lfC{HA7CGO2e3yZUq(v$%YqBRd~ z0sUoz#F!u>nGP%kY*}X$oMe~(7{2f~k5m-<9?%IS+ZA8}WmWzDgLJf9AGyhRo9UAE zv&`(3n}*_r=&R7?2oXG@qda1)rNijZje8Z54AccYXAp=L0e?PF;f%G#3ynXR6Kk6d z(R~;GuMN)j8_fzW)J5QkPBtBYRH_`B>N_Ff8?J<02N&6HGDqCFuL{vcz-n=un3GY? zC}>fA6Xj*6&oG15?<4U>W8SlqK4dkqHG)WAWZulzzLvvCv$iIEDdz9`Q>Jcnkq}~m5?G9 zH46|Lzky-kSf^>Ar@>aC?e6Tc2=dit#eBQ^?h8#%ZUK09Qt!z`maaZpAW8kXWb#-* zr3&OhmyVx6$UtZ!>j&A5n3^)y%C<1iUaQn>ft>LqrJXEY6Cv^IYRp$)7?t2mo`V#z z+F7WM@+--gunab$srrI?40BpP8(4hw#0K<;HgeW@ak01GDlx%HJKLYaT>9B=8~UrCp|Q(BK^7Op zYi(g?-rj>v)%k*Y6V8|Mq9k%>>T3ucJbNi>eM7|8;^^|5lJ04}!7rSe{fs%i?%Blz z3o4)wC(k6sRv3EgeKBy|oRGfI?Wo;qmV~^0Gv!$JcY=8MADzxcxy!*l|+@ z?ZDts*JNOOW3xmcVJtPGgXO`i(qx$9Ey^0ICDB{4a|UxL&+-cbmlcwhB}jSRod>H` z86g7|16uydH*;C?|6~u@;<`_5k-W%zotvQ}RI<710E3v7eTo<&<<`~FZe}^PtHG8l zH(Qe(xEJTo-eR$hIo1{Jy;-K_J?+6Rs|mMxVtsj!`TRbZz0cLLw1So9o?h^FNl*$?vB0F0D?isQdJTC@7q-q zH45aLKrEYAUY$>kb210w)0O#0tX{VxBguois9k>^$9=2p`uzH$jfEEPWH`BJ^~#j8%)5RR4CBV(i$DTIXq_=fbAN0AT2nPadP zk|yZM6$YIFnfQ)FW3oyk(Q6n;6(XPYvE*!}H-ZuM!TdvJo6HQKKev{YB!e?ERy z%k*g0+?hcNi=X9nRN}J6{eqUV_xGiKKQiE_hNdDEKnb02kL?~F3{;d6o~q7$G(RHi zTwctNLfA}dg|WScyub*tlAGjq^jd>$pO|T7{TgXy=Nx_}m=e5>t7XSa)mIds)mTiX6W{=qO-# zWt}5G5n~^}Gp{+Vtnj`UY`MfV8*9AY7xf^1&#EMh3K0geu1Dkzo~tkWCU4zwMuXjI znz~#b1mpaA;ymg(EG|zK?s2@R6*sgBU43cS!+2`=by+fOnJ>&*98q?h4gHJ`{KN?v zuC0mp;u3co`QavT*|fzIM}=@}mbh?o{N!qtc{Lq;9h3W8p^5~J_CRE}mr3{0y|#N3 z3FiWP7iMNHEvXX`VNLH^l-3I|h$RA=x^4m5_t(W>fGB*gqHW0esSf$f7j=%A+K6lo zio@pZbv2$}!c>n=(VA)@8@F9I={uM zEo$TGN2v~{hP2y!mw2cdtQ2x02s_JipO-ssavd;yDi3x%M@scSE5!GT5`!uId#oJB z5A4T6o^xezD#BkyJjmpZd`&mglCNAocR?_qKK#khFqY6Vnz1_5VjXTN&Ji;8Vg8r0 zw^hjc8kL~aj@w{?O0cjjZ6!Dkf8^}6SD(B~M*EMI>~F$~abF}{J0WHx)6I~V!;3D%*mFD=r%Ey2(f#gLgq0^x)B$1ud#jk+m!-ZY!|2m1KIFgutYG@L z9rMJemd;FPXJo$|B6%AEk%B;k&nH{|j|R@JHuf;Te{LYJ$2|!&0G(bz s4{i_lq|mhYwRQ5;wDpj;b%EPE+rn)<7JCP(fs-g6DQYN`JhXWEU(4VA5&!@I literal 0 HcmV?d00001 diff --git a/images/screenshot/gui-cluster-backup-edit-04-advanced.png b/images/screenshot/gui-cluster-backup-edit-04-advanced.png new file mode 100644 index 0000000000000000000000000000000000000000..b9ca95b46229bff602bf51ae40aef3f10fb0eb97 GIT binary patch literal 63060 zcmcG#1yCH#*EfnJ!68_13l0gvorR#mgF~?37FZk>+u*@1!C}$h?ry=|-Q8Umb}xCJ z|NDM*Z@ss^`l{}&ovEGanK}JC)7_`f`JL&I&q^{_=%nZf2nblRpCnZg5Rk?Y5D-DA zubxY4izyhN|6W*pRQ!m5P!WakX!P>=oZ94*sv-h{2Ll4a_W%Thhv%a2dk6?F><9=4 zUl9-l6A=)I>{A<6gr6_GGM1N-M1cSOWwhkQJ(r-_f6{S6KzNh?cSkf+={|cdL~)i? zltS5iL4^7aP0Y!i?78T*iII})vjC}Q0Oik+nx1zYAnzW}b8QH+k{{LG7mk)az0|Is z?#_wm19RRai;YWuOqR0qO$vhm#hSccj*AG|w{?w>`|7?h{bTqPfy^$0Wv2@}Hot>T0{iXo{ z0avcD7aw2$-PW`4@bJV}TfJijw-NdX&|lKf(0q!WS_I+$dqY5&l6)#T9^M3}jYPO0 z#=la<-LCd0gQEf74?o5&{+07_&yP;l7oo9^>+OH47NvXp{mp-bP`*a2{tu+9@2D9s z|9vJCMH1otf9@8cK0Lpc8q@qm%cwFk-3`{ywc>QVu9~j{ z^_fqY`aA0znhh>gAvc@k$ix{rcZgU)RN|N){&}TiiV=##?#+z$p33%Hb0IU^&#(io ze1DsV;1A=$OMqD;ZhkhjP+E+A!5=XD-jAgujwE%4Whc%;Qf;kEJ}t>L@Z$9@3Y4V# zs-mW}Tgp*iO81iF*mDZ0d>Xx#l6IZ|nuK7Eob8gfm^N6KB3R=V+44IK`PGHoz-#G1 zgyFN}4nc#3JBqeNCX+)7xe+_*!EU2JbL-zImWNhsp-C$9iw(H{v}V2i7r$LpkYNxu zCVjEt*QxRXosBhIQ64OxNJ^mjYUXA*`NTcb`OVX{mrH)kzDXI<+ORT?le_}Iia#{1 zTK_t8^V`Z|dkY_qah4tGD9rZ5;_a-Pr;_t1@a@lj;y2@ElZuf~b@BI94a_1-3UI`y zhD(d%JOXlHN@vX25PS>VwO}#^PZMbdmjsoVlYD4_5rWA$Qrj2<((b8gyhDh`qG&o| z=4o&x>R0zOuTo6BFnkdn5)(AQqJ4#hCP$((&q5s;Rx@@AAS|frV6I_h_O0InmSrYjzK>7oG?*B6=ciG(F;_13I@f&R ztT#@hWm{eiCB6gMJ_ir|4NlELL%30`jl&)#ql1W}4A4Ps3c%8wlIJ5}mrC(+l4%P1Qhb0BB{O|3b zs@D%t2W~wZDa0V~5JZ^t#f-PieFn`>)9|fJ&(g2jW)!)@6yI3M`XFGw7ugCuB5f4? zyKR)8;IB!fCFpJ~J>M)+2_3DM8S-(x^`NFju#O=`iWPkc-GI;_-&gyjJ!jlQIIwkvSCV- zOUKsKnv=Y_>&Y}v^@pzrpGQ4AyhLaOd>DBNUc`2q#bPNXnc!_CE+T2S(~_vWT-n6k zd(cNAZh&5GBfCi43p*f8O`X@#KGi!F#u_~#5G+}d_Z7m)Pj+x0jL3yvm=Nhw6ggcs znYsA#4G&L2C5Ro4UmM(m6@13`5~JF`3w|ejT``Fm>F-w@%yCCrvZM;RCN& zz?rD9@_#0kk9*!Kg+BQxsgLi%%Euyi`HKj=3og^v_Re>dCWY570mpp z_U2PVP0|@|Xlc#un*wQ`NPY)Ax%3LWQ2=HXf)9V6D;hN5Ei zIKBH*u|s(>HknaJ=9Y*4Pe*->zI*g_e_tKOZ?Q-H61r?4Z7|L|r|Z4P9|)n^fjRi9 z^ugZ?DGbbgWL(y+Up+S4%QzVt$KpRViG4!pt0xzQ9xl8W_6mO@$`KTrPWA0KaBu<2&pqAgZDo+*Ws8~kS zW8lxC(rXr{nKx1*JqCQ3YBdpAvrSQT+cD;?MVDP>PxX4?fPdVOGh{l%nh0NFn~dhm z?+lvwBX+YfGq=!Ij3xFvxE=YQU${^8oLN-x)1HsbPk|}kt2H8cpt?iUisTbGRYZEQ zhR?I2k#2W|qS*N;?6Ats$7?mdU%kl!t~oKY$5_w4O!oL}^lM8yb9m;aZ+pV#oG6g$ zPx{A8w1Y_U-KI4g@G!1siKv3r55Gm3D}PufCWfu~DI(Q%JBOPHC>QIF;Pb3K5^Bd? zoIP6^K;fj#dy48(tzocxGeuavmMRek@gXnhhgTfS+;Om7&HW3B8mZ@k$PN66g z_+zLH{WYerPZZ2_i!|(W1Zk|e#WA@!!!CTP^!Ys7E)OnS2l4=5PZ0m+>cvsi<{6Tcown{5PnWyk#ykzjg^Aom2l2a`FF+)6?~g?$yY*F)|# zwnz0~Q4-ox%-w>f(lsT*b_7larhAippPu-x^1-f#(*y|}y#~mtEi^f&wTlTB81xHY zPq^ZmwWkzEc;_VYysIx18*Rkbj*&BV*G@ogVh5-V_{L8{8yvm;7_?nXH>{`y5yh%)xN&C2|fGVDK10>rQrHT zy=~}um%kxo*Jd#M?AsjJH|2Lc{U9aRzE$aV!=xggIhL90xVkKU(^EXvy<<8@p@`K6LW9%NvAgf=V7%cYCrfa5BlQ5~qFi8Co@eh&t##Gk z>~OYZ6htZb>0>cNYQY1mC%0|32uGmAzb5syhnVn^!havX82b<8G35WV2m{ITzhV_c zT(SQOWpI8VeEI)Nbf1S1vLE%M{nN3ij5ciFs9ABiCGA&O=v(f9@D!BuA{&$|SIuX? zHvmH{{27q_jO5u8$Me`56ct%ood1i8?e$-ze=m5MXW9KN(EmTu+1?k)l4_djol%b| z^0*eZ`Pmw4$V^Jo`O&LF?-uz`%KmMEZbIzbn%fT3^3<(GJj`{3^uso zD}4HX!~nbF6H(65WPfUJ(Z2Ni)B z_B~3YkvRoa_*MonPKC-v+=Sk*OD~JYvzt7+=;iT!CAKji(e*^iE{B0DnO53U6B5qH zuIPp~G4=S2ux;AVPxcnOgp$lLMH{gFSH3$u;PIjaFCA#+*>6`%y-P8o_UOce?W3%M zSBypokY~H~dtDq}4JDoGNg@WN=7+RxM#dOcSd4az4BkdbDfl=eqlhN@8_8vS^Q!Tc znhe*w#YcYC5|bk{TN`idB+dQ1SWAbKH6*8Bx^yx{$F#^lsAj0a1Q(*w(m&+D+b*nG$aM?$#>M#ft^s8ph-b zg1oo@CUOS5!8Q*ao?LXbY|r+J-X+HbfRO3#^@r>Vx_^Rz{4M&oX?YiE*&Vd%k5`{5PEW4R zAT+p3yyeRSt&Toi`=o$Wp4cpc_hHi4GT38zqBu(=y(uQpI$JWqXeldN9qz0TOl+HO zJGfqnyqx90%Ak&H5W%Fq0mKzc%8H|zfQk}x$&46CIdV{~&AUQHHuvGq zcM53#!YQxk#Y8G@*I}EwgRSM+94_v=MBdm4D~{q;Cw{Kd*Hx>}!Eh2^esIBDdN77&_#BM}dv>1nsIAL)wcK4DtIDG>$;)br`Bou}`G%kz_( z!l?*o^}mI0!k+BZ;?`y-1FCT>5~U?2`RN{>hq0mw_ArBvqO(~6!g6Uv?LMb|1z zBN;6&FRz;+%r_LxX&biNKZTBpo6Ur9M9afPL`vH1_NB?bmF{SPS$Z0C15n%}l60n* zt{pjMCX7$4@9@jM_~%C7-|fmYHC!uqYx6DWz@wwIV7tm*u5#^7yT4F$uBIsn;D@V^ zP(xmr%ngH+!4hU(?IF)@w%0CGj;NY3^nClo0~>UxbF0V{x3N`HR7Re=gL7cAMR-Ef zaAq^Z%(l4z`0gBz1#Om;!l7fiW1a@yiTNye1z;JbeVxK0HOI`i7%3Ea^f2R*8pa)J zb)bGicx;az96J(f_qMs=@RmT!f-7f`#EcOwigCjK*5%UPF@#+C<^tmmCQ< zH0Z{1L1}Q?ru5Oj!!pEd^(!XZ5;J5Vi7~2{p{BcP+$%U)>&z zMyT0sqLYZdpe@tb6wpS7fiGHXl6B3OMz7a>UHFEZ!{(G%a3Z&^gIO6I5||U&wCqn0 z(7#2k5)jXmdU4empcr}|pX9QL_8I0G_W#mCG4Mw*4BSs5J#l|-1<_2hZJXU9tjA-B zN&Ri6E>iZxMa)u)BiCXH84_ZNg0JAZE5pm(IO&LRDTB?8uNJh?hTcP~Fp(gkJVUDd z4>|;HN=-@0&*Nf92#~@(+JtK7aU{jy-SE8^AegKA=y|s&!?VQsWRSIm;8+UrVKlk% z8tTo9)OOPVFOR43)^B6mg(Cbg-r{*8frZKX*8ak>FeR8G|F$3I_*TKKcIKE6A80Ye z2RWZ-zNfq|k0`t~$EQbrHc(+4Z*H}w^Wcg6RNF#Y2}Oy{^D4aj$_RLdN7fmusD#-M zNLNNvzZ@gIHak{O?fpK$^p$G}=4w2EB5)O~tr^tst;A&w;U*)3t(Jaiu8bk4;9hX@ zcl_SF&gnnj%ReK*`E~t*Uh$IiBetJQ^xgq~gm;7jmh6Yk>@y;cYPGfG`#lSbKbgJjC;zG&&nK z0rJyzjX?;<#ie)dY)`r2q`%h1VBUVI#(ByqnXmjI~& zHSP(Q8X7~}5)lsO&OB+I9^KBq3$WC;9$wTG7IiosaiyntQ4D^Gzi;V7iOOLk9=kaO zJ5sPT4jAZTQI?7=pD?h2a!5h?6qF;J!x%IhZ{DyqzBHM6%e#8j>&hxTHC^yos&>#M z0G*!lKq-Q~sj%%Nl|sZ8If=X>YrBP9sR2z1uO->MHQ-7QDnFml-L4bJ$97Wy|<=M^5i9m*djgH}eeV zezGfO_ev})UwH;#b!TE$9Jj7#Q+~r1zvy}70NFdQ?KR4kY;4Y?!at&we7x$W-lz?H zr)RQJL0@ODb*M^@i)&YC<1JPW!)`dwpxcyQ}7$*8ORqlygeqxWfDu z%YygO^=WSn@_L)h6Za>BP}o6E`TEc0haj$VNmPGmAcC*TF`^OY!*zqDUCv*(xYc48 zjO~0!wA5I3pU$+Uv0vT4ce6j_175bh=gZ(ZS|1(? zcCTp;3vTEy-Nmj-ZY%MM6X{UI@u?07uAFgw+$+sSIZyqJ$HVzLko>W?sQBrY!%K!O zR$xqPd5{Z-86K`gLh-rP#msi*|;2Ab30uc(aCQxP$49eyck}GA-t~@I^=ef+G(f9+lyp zY2Yhh{N?%RG}!F+y3Ke(W48kKW${!vXM8{=?YOKM%XRAjXQtBoPI1Xgqe=0Ra>>Op zNJi$R52aU4Jp6sZPU7gSpiE1R{;180$H{<=#*+ONYHqNSfq}lxXl5ph56@>~i--h7 zEoP1&L>f-J7CUOK+7w-{{K|AN7N$iITeyUV%VQqN9)9O{*zlA`Q_UrE?gE)MM!+QGm-8u&& zPm}Nad2sbekgnRoSN|{}U6%YcWK_8rj;x@mW#CuOZLPZ%Q1qS6E3UgjONIS1Rfps3 z;tx;qUn6%3+qSm}-9A^j3(r1n36^q=e6@wkDm;WV4_=i)>S8T|%gi1kW*wH5OHD2= z3H89x620;9p4pW__|mb-{M{jYB;VzaCyzG(A2JtKi?gw&V9&Z6e`#~!t`?XU=;)V- zemt;#AKO^ellW;);MTn2yH@mDC;yEg-sj*UQ!zdN) za-*!?WV~ysdRO4Lx$W;#?TWdGqH9TJ3pAb~AKarL@`Vh16~M+V$OM0Bnn0 z2nBN|Ntc#*O12jJ*tNo*h;Ef5Hlj-U3}ss70st5Sr+61XLO;R?LG-}9h^;P?*|T8Q zWG0sf{t-0ZpA>&60Rem#kvU8PcsEq*ub=H-XOspcTP7+r$;;0kcP<)tIE!_q3w9^< zV3LcB_QnEev7S}Sthl(S^G|4taL%swKLzA^&UJxkol(;{+ZqZ7#|r;uu;@9E{#UB- zZy-OC{8rs7AT=bP?73ITC)@=Py;v_cTN3{CB9!8DKv1;9WrmaTr{{|5nL>K!(Ei3~ z)TrV(KQd|mr#k=lB!K0Uasd2(6zn1N;a^#P_T!B=3pT#4Q56^%7>CEg|EZ%>s;Hs@ z_q7`Tvz_|8Wj-gH|L@TMxv=;D2?t@in;u|aG2iO#`S;~=n-3+fjQk5P0RdOcFiW!B zo%1|f{4bDzODTo*e-J$%|Gy<<|Bzd*qvSO-Bw>;9BCuOc(20xxITiaykyg>S7q5Nn z<>ckj(9me;=mI7tCRRrNrL#mipIHf?&%D5u@YzGNjXxm@srQ{{VXY zaV7lSZl%Al0q3mU|9u%IC5Ss%3os}9^s?{kbn-h&orbE#MLs)FNcb+V>f-uLK4p9e>VZ9yydJHnMKr3XE@$#e0Lk2A@I*t5ra=cvkWj!%u!G|x{qFSQBZnVU>A zeuEb7BTX@kHK(`{4O_q-)eJHE;9H-Fpg!HfqwjZ?m)kQH9|fRTdvu#$Vg07###fhl4zU( zYb{JrkNw3n#W=)#jlYNPRrH&-?FtJ-EQrUNm>XT|&pjOIfOv)$=EfU2D`jNjDk_4l zG}*fI<$lkhto>=6c$1$!$*&`*B(-tK!}x)#JLcYMEzP1SaA=h@WQOT86M?0(v?>vS z>iAfiiJ=%)AYBn&U)hPBh?_w|U>kz08R@_XLr9=`XK#W`550^s{g2byoFvOMYoS2NWXMsKBP0vDTR z`@IaexNP*wv7FINOB*b0G+qbT2@VR387}dTfStJ zr%bv(gcQC%y_Ef# zP8MvK->9AeUw-?$S3hIxL$pLNwh?d2{$d^Qu(H(~YRsFWyDJG1{ZgHdgbo-MhhNs_ zrn|iS*1fDmQ#ZCu+?>S9{l1`n-ue#E<@Bzx^_4@+%WHI%}tWO{BRv{ zl!F4T-P(-@Nyx7lFbu@^Tcuf4kPg9tYzO`;}G>LffCZ&+zX*&gzLNVA>26> zy9cD=X|X?jDOMI0lZNs76;wjuJ25rCLwl6pzjNQ;Y)5r=dcU|bWVF)!E`10TsiCWX zhuDm*`CeaM~o%?E>_jqcG{!!7U$qGw4wIXtov37p;S?z8jYzOMknK89OY!VZ8Clr$6YpTZc}G8;{83>x^zk zOwEAT5QmkvO;~?oYDCL~_`#g%yI=ZL6IJ7KQq3gUOR_Nh`#W=j&u57w`Z?s$*_3gT zBSLRt(*(AP3j|CA30W;-GNPojLwel7G$UWZSI2C0CdTCB3zk_m4s=6yx)x1_{tiBX zhFiK=OU~CN^3OlI=)s`OE_8Cx`BmvLhAH>$O42~%sH zo8&f!0%}!kDU#mY;~e9X5ZA{W?{m!SRVg3xQAT!~8jRTk9b!9OxxiKb<0Ml|j&WZA zJ8#lb{H2`*+ba#0?h+T>k9N(WQ@2VZp_}(FR9791!JR*hTCuF((_ynmFOGLlyzkcD zW;RvAc|41clC?N_!68&4c#sO@a~}7cOy@B? zEqrMjPEI(S+2V<$#zuNmUS>sn0CZEEeo+n)fqvb}H)7l_hD}Zvmo_I?OEm~5i3CIV zPRtGQGsc{h2O==lm;3y~VC^LdD79rpb24+bV7l9T`k{t~kSNi+;>`kTk^JRkk(%(v zU0hiGSycG0$va?Ez10luqr*D6-M6K_p5q9{W6p1mq&r5LdQQ4;lvjAr39{?Gdw}&0 zXSZWy2+i04z0I%R1>$=K|U%lbNZFsrpoA znF)vhA$ldQmys-bg!g-LRXU9ohx^D2{RPD20(8Se-IXi8lgQLE6uHvO$oXIQhn&eb zG3K@%*Yy&@oj#HZ7``ZS$Ri8}L|vd0m5SpND(|WsAzGu$$}@{`tSV`Av$>YYcU-Hp z2y|HSp{LHVIB$8Cqe0`zt50)dYE_hBC@JL$=9yoTBtG)2F`J(}1zM)Fn>0z8 zA&`*m_I)z}lc!0L&($Swg>mDn<8UNbZ+4>Pcyjai{zDTig{e(U_a(v2qFWGvei8ly z=%r~dD+jJlx(ElZa#sf2`j@2cuweB5iO!ptC> zzxnctq>8JrukY&$1Q3*h-@xo1BB<_$qb&O5>GK;2RVq7-KC3l;0l#AzirvMoDZwNL z<{{OQZ&9wjQWS9cz4&q2q7SXe0X~G$ixtz`*?XcGe6`}_`=2&PGo;- z;wJGfJ9|+XWVvyuuhHkshe!6NPp0~uA?RAfseqsn;&k{cQ;exg+7i_^KezQ>uTU$< zI0xYVh{~N1jLYH3J^thy{fS#kOkZDrS2jQz?`cxSvU7x;vYIt>&I= zzel*0L#P;9Y21mkuGXf@YAV9iDYXtZmk@ysx8qA1;Gep#QL|Qto zmvO(mo8+a%GkVTF;7ZFbg7u%jdP%MWy!C&zwn(&p{tshZSLYIf zon%)ndNqG{2^*kM;@GvlQZ(&NDSXRwCtMoo|2oNcE9u;K9xujRm7%B{Sb=Ok5t=p! zL4UO!Bdw6#p+oT)$fTB$6dfSou3%e?-7qK>L3N~il+QqCqKecvzM2-U^5$-lpN7&R zi2`Sh>Aege7nVd|nxp7l?Hto=iqZ++H19W*a5_aSrE%h9@q-uJNrzH))Ym?089>Pc zj-EUFX=mEUP{q8hOQeY@rBH}mPln2i9kDX(SHNlBVr*n)w?pLY>wTvvks?pd&MJ*c|=@@-N1)>de-;{g_ai|oSqx@1G zL#fB}ofBX9_Rgda`Ef1PHg23}q<-MENCcl{1G{WwExqz^vyBw zZI-dqR!Zp}cT10TMLzP9>g3GD5fCrn-?ayZ6dW9G>^34URU4EroZJ zq#|RvyAs8TEPtx(RqFTt!os`o)e9i_oy?I*r{-sFnMIs%8*(j z^1#Qf+l#ZC(~)r^&2L=_LmJ4GSfqNsVyp*Oipw=@TQSLzQOs)T1nxyY9ld_}e($aU zL>(pAs*@u&U5nUuguW@k zuyq)3vbgX6-t3QJ-^Y2_f?sb03O$QildyClDyEK`-f7{PtH41=aGdaf5Pa)#5mcf&(I{SmfL0 zlF}_ssjmPpcDSvLb$MIr@C43)11*X$KNU)s-yf~ZpYp-P=#ShUx^K8uv}QTGKT3R4V1nKpnab4o*%)_@g*U%CT@g8& zuY#~{8Vk5Y^Qz+xjQ3>QVjLXuFR&sW;sm=vJ&R$*Ar-d(g`F;V7u@tQc@DNbS1~_` z3v6=sQVbX%>^rEfct}eNNHTvlk>V}dM(p7#syI`k+k3v5Cwj1XcfMJyTX*6&^=x2B z%`G?ri!hkt^I`>m2Sa-qV&Zc;YFjaJl)mLsDje^8wqYDHyBBhGZAc}^z3YP{MI3*F z;Mt?udznfIbcDYVBZ*>OkvbQuos>Bc)s&~9o2r6XF zKX*>AWKa$9QfHv|EXubA9lNPq6FH4K-mU1V8eYaWHj+c%2;D@0=v>_c^DZAwWqrOW z=f0cw^lP)^G zw}B6(Y(6Mb3Fcn6y`ojK`f-Fq?sVQCFEYi$Gcl!c<^g&)i}^^}Tl*#X`){DA(P4V6 zKxdb{x?+YoW**|&_b;e{uWQe5mExD=5&*reb zLYh?BK4u?<#{NpXd`YoJUBGoy@aBnp`Sf~x3XaYe6^&@n`d~_Cm}c2|dib``1{OpC zK>_k!otQ(xkC<(){O(a}wv_GLS}%g~qK=+WBCArjgxt@*7HhIHDpm6=gy1ule<{JF z^zvm08C1+saxnsB5!=dHf8DA_@%p8S4zSN6%azbE={n#xMvrtAG*o6Va^>LhLE^Gy(c(5TNm2cuOtp~kX|CgCIhOs1Ma69R#l|KC5{PDs2F#P-nFYP#G`vyBR|rz1J;Zt`*f>)IU?W{u3K*^fWbE)yNm4OqL7?^rHnBb3eW zPe!7csUYF|VuHeydpJ}!UO!y2V!Z02DM*r@6SNWtF=`Rr#?Pj z?$*mpStQ)d^{etJJDLCG6&V^KFQBtl5hw>1;#$qiC_rQ9=?=I0dCz^F}#*#%4SGvXq@Qu z`y1ecX%*`pgLJ1gigg;}3rGC+qAl^%d|uV+?T98zofz7LOxt|X3YLyCpL5fglIqUF zMtm@oC@u_TF(z5=5bpQwX}TLeV_EU?qSV1K+=%NN56864+JC`5)V^nrQueOT$d)f1 z)4r0y8V)1J5k3=JWZk3(SRGjjQjqj9J@Jq~uqPDH0y0;c;%egS=5LN0@|Gx&eT+Ba z*-^?w;$&7T>+B^JHfA3_yEfOMLz9qJ@x|b{;d^i#gC{l0u!Q3E6q}Q^NDlPRWcSm` zPu~n`6Prc1tA0E3x23zgj*f7WM&zrr%#;~M(aC;_{qt~rs8XO#9MOZJ$#~9Oz(jUM zr+D0RWNOG^B|%U!>Nlg%*CVhZ-hm{NuF6ViGF%c>HmNlDM=vFqnc?h(U;VvOEG#x+ z-)o5Cpn~+>4&VyS){|Lbcb}x)gKMYnt*VQ(qv)||lQmf_DgJM=g*W}ck&apbMjCC3 zWLhWyov_gg#1HK2y7?&B$Tj_IBAi(m^2Z%{JljGAKm%#ElKY`Z>lBobdp=IQf&Xc> zka4$wPPizs`qU}~P@08?kP{XJ=mug4p`PTfLDIWBiw=mNj# zQ_2$Gx=Y$# zVIeYaD;9@m#vtxu9VR?sa%`$JlBi+i z3CUw&wZPSpL=F=VAu^(&--;<`P-F>Z&ZO|?6-!j!X@3cPKl^na-dED{-E9|deC&Io zsFaL4D>#At~-qIPRP^S0pO@I?F9$x2Gf1IZf*}nwzrx4u#?FWEEzO9nB ztF0|{RsZA*{Oo1%qALDtDU{vo|8-nN{lEX3P&jZCk1oC4!HSH_Tmks+LMfjqNd)f@ zypJ=vvXA_De`)y@#^3h;sP<2K;(z`a(HOg$`YLv3$DH@u9721JY#b^YZkxs5#T@Iw zVqPW~;vbmbzo&oZ>T&J)+&?e+e$OZGa3IU1V4%2;jKYg!f*=T zt!wSSX^5b7l(E$>ppy<1_cdQN!%J=b`R>;1ru#ejSrW~e%JT+HgNN$h7D!8n z-!^>hOco5C*RPLmjs=dGu#EzfU7INC7KfkPXaAXW_kOrCy4dP}X5x=rp)ZRLBk!3W zOZ)(t-biHt?*$n4vA^|iLhP-$47r@KOA!k!MtMb+SS@JlDY9FC1vU1tL@oBr9g}XV z*wt&Sp!-_NJWqgnvqfg{4JIq!h>^!E^=U5)!6$#yV!E2nvrp8jq`P)#bR@<$<& zf^7u8^F0QWj16mltpUN76p?sK9jRL?O4nm~PC_ zi$@#s>8*h*TpyBy=MRQn^)J zd^esY83t;tt;D0%Z&L>qQp=PP|C@I&A`sEGNa?$wGa-LT_>4KB+$p_N1-{Ml&ag0v z*90l~bw+=8EgyvTa2(`2oAsAw4+wSBxtLAkh80CKLJZ|KobaLYhU@*H%f2s(U15QX z`63S3Bm%WKhpYmo!=3>$l-`kUZZpVZ_1jXM2JS?MtUAIMR}1Zy=QJp%uzlGbkz}bE zKStzUJCZwqW_J(a^HV9k&ClXI*7eCx)&y^rR=fdWpeXb6EvK@tC3bvYPF&AUFgm!Y z(t6{-9tmk3Plf2aG3Nuk$&I>iGKbI0?qt>>AlGx_za)57nNQzHqur64GaprJOm9^f zQRP{~>|FUQncjNtMK)jGAXZKt|0x#l@n!9atLg2ll|J2}PALqX$4(Yr4NoBj=yG#+ zbM5wG70bj=X0^T9vQ?`===EXm^NB}O&uHJh0R!5DCAS1O@kzxCY0XD7)5u8L&HHb7 z)#Ev(=e}iro%3jax+U@R!n&e=hLyOy{_`KIR?;Rrgfd0pL{r&54X1aofVg`6&wd2m z2y@T0$Hbj|voJ=l-)?Q#M@AWM(e7Nzx!SzLY;gCIll zULu!QB*I-90l<{*3t2D?ASV1*lhVS8!o7nqq`i2WO|QtpsQx`Wl6Q}Z>p5t;^V|!m z04Pu)YJ_PpUr5adQ^+24tmeWfFO!oI%^>pm15YFu@lY4^xXO3d#EzHyV9NFr-L2*r z-0T&2b%t+~_AY_W>aleDceASfvBA0BGjO?BI$6UqeWqMd-M3G- z^>ng~t#NV*BJa##z(8j`LAGOeTD1YMYpw#NzmI`)qv8SYmLV)MCae+@}S6xysflbh6g5*mLpnQ6f!B zg#a2^MYs;F$aRj?!w{`(>=Yfv(jDV|#V(wIf}chBs!!RDYkV(-J$S&Sn;&BDYX5n5)0izOx;*Pk$XCT=4jVPBvDzQuKGilo|#SbYVyC zi%YC}xnV3_KkM-qkJ8IJ z5`L1kPW!2Og#NotTrPA%UdK!|BRu_nnyS@HuYaPMQjt6^m&F>2xCF{N^#IB%D zMa(8M6m-?74it)sG={0sxeT5^zk+ke2GcK<@)ys2jiN%{NrpK$N28STmKG|UmeW!u ziGD-S-%2MX=b2qN>9b+*i;kJ`U4mY$R^{lV>;dy&E(g zf7fPiaphNOa-CQJr!31}eoX2hy_#vP`q^^-ZYW4co`g?!pZ3c`7aQ~Gt{gLLUyMRt zQDY*M*;@AYhyF8=>iv&3bWw^4a(-4C@3~|L&OxdgGEbRSaX$gi4e#xIVO++es49~y zpOWl%kF6Yw{$(VFp-#PZ=$#d?FZQS-t3i`q_TW?6&#O7~0?R?R{^R2{?G-#`+kAro zN9So-df7s4wxqYys*mC1R)IBog@Pp`BTJ*rr#YV-a}DG^VBgT|Hs+|kI&2BM-+H)zoOWNzk_pXPHxLf>m+i;wg`)yM;wo zH8Ppi))58Tr*KT+k1X+2$#bFd+{VHmwXWh4e*eKg45>UB_FQk+`_LQny zhWS#QgjZa`QsVvfu$UpWF#%r$`p(*z(!g!e{d|sgCxUpe!{KOF!Tqd~wXadzh;e_H zId`VmC%SBD%$`Glq}rvAtJZzPPF_c4fc4${@OX)u3W5KtjWSrcGOPyjU}7Z62urWl z<@T+_A`1j~e2p5oG}(YZNTiFnU_0B}U23#>CH9^wuQ`&u=KP_3Ox^4f+(bUC^=GLs z!r$zBcoAlHL!lj&VZ+Bamt>TlN0fHq2+eYyTH(XB8Glx2{_P0TMI` z5Zr>h1a}M2xCVE3cMA~Q8+WI1cXxMpcXyZ5`Iqdq&fe?nn{(G)PxUP6n)Ou8@r`$` z)I|@z%Vy{$hrqD!;?^H+@STtA*xa>RxV=?lW131}x4Dlv!i=l}qf;bS{cxWd4F= z#}xZ#fOkyOP5(QWV|B6H#eTf0Fvfm_1kn3KVZ3ZXs;Ov?uX|1K2o5oV0oT!cjir#wS)Cc$6mQSo&n#QXJhE{FBemB%$j}w2kRMUNQdSr zKGX8>C=)=cWw)a07mSryig5|iP8>|NaTiK}<_G)GWYL9~VJ=?^gH2D9Wcp-X} z8y_}>SQiiV%9xRy@yM?qPFf@?x1Ogcq}@+Q;UG!Rxdi?X+$j93)8rV$wyfc#>f@v` z5eMYW>cIo%e9}EdhiB<@mLe5{6btNVktofgC~_$lU*d0rGuk-mpD?$L3%~hKJ6+bV zv*zpOWhF&>bIcEj21;%g9XuBgIvARy!yTIw@5vcDmy<^sVT|?nmcG^sKl}5NB5}I# z*j=A+F%m%@#oejAdLs70M(DcR!Wpg%ywlIF``p=CUu?kN&)11+q!sD;(zVzE&)uLM zOpi*#i-vWW&s%|iWOsF+Z}9SwH**8)Fqv>O*`oMGo65~JInvLkt<|5@A!FDfjIpzG zQ4AXkoJrs~LWjTYJ^qD9^9^nmEleo%8MAKf2K(A~%q~R32aJPG$|#JwMAGG5=B4uy zlEQJiyT(T) zfpS`Z=DM8|L6|>Q%4@s38JIIsk`%_J>We81uA>XpC+-|wDK{4XYKWdHh{P04jTRa8 zc*Gm#RE)k%LeuQ;yUd8HhN29esv2?ddBrrCCPoq=VJ_Vb>$~Rg()(Q4JSz zP!#Ploacs{b{P~STdLq#hR`pYa?MREg17pLOLkIZs-zh!7hX1r-psW6;+gXz_-^)` zE3Pd;Oez?Akrlx#)0(O&= z-&3gY&@HEp7h|>X3iwYi)-Ab@2hyp7weibW@kJIJ+pm-B*;!b)A!P*lfx%gEy8X-; zpk0|u`zDt<+wWhEtdW@37c?Yp?TH5PI7#lHAr)^%DD+oS1ir2p*=T!kCl3z{-1Dpn zxhiC|nSAR|-14zZvA85hF_BJ&yrW^BmZ_zUXsD88GeAS_PAN!-mSXKxBKPYEr zMGuab$q0>a&a&csH_ce?>vQN7?~`EA^T7Mlhk^ITmilcYot3PsdxxMi!mO2_I>Daf z^Zl|PLibtbIF*z(q+t!=4EQMA$;>A%MQcx1WyTi(4ZuWoIRY6U9i z&5{jneW~p&k=J31g#WN{TtF@AUpyo;SxG%sxOyAIW|cHzx<^hnddyw{ae&-*1z zcQZmy@VQ*a+|#9!L=I*0Oad&UN^6fh zn9by32`X+Qj)I;BmsL5aV!7xI4PZ{Wgg5gzsiA_Vqc5l7c%MUnnrvXJt zE@cyAVn(=0K0s4a$vooLbJJj6ZIs$f-K_B2PDj~ttu-utec-NN&agy8J-F^mFw!G6 zu`=nWNDV3VaN-nXXIYu^w1U30W~GgYh#Ph_Rd;?qoI=i-&bW++7FO{k8c92Za~IR7 z8yvUrl+M8OO>eP`KyHv*;8%29jo_1f_HgN5i$`|`b|34@?e%TAlR@ubJ^~D%s$(rv zYAkL9O0bbBV~k{TEagpQY;19#Of~LfU=)5mg>nuu&{6bVC=j$=T9d3pPUn2BYYHmo zR0)*)MneI+^~lKOB-qmk7ZW|Q?{h+^bOdlUr@d7iU~`0!<)+Ap2oC$HzDO)VqZAHS zrKHCQ?OObf$EdWA6Q5L!6w3~dpRYOhY1iEB03L{OadEJvJ`csilZKAvxi|)F&dVo; z+;ffA4^2_&RXm36fOMtKA0>VAY)Q9j70q6O$%d;aⅅTi<9xrr*Amk2PlL(`DMX5 zT0_uxt>fDkIUheX84@1~a?al>YHPG)$E2Q~ZLlrUf1g*ObTb7#9$1a&zHINIL*LYpZDZ>y*|<&I9#Y@3{Ya3gIT?c z(4XJ2&0x_XTIp+1`7*?s|jurVRIk>70%O` z5=Lt@BlDxgTdvQTQrp;RDWeUHFD!DeX^ris(2_8y$mtN%N# zZJ_ojk_6Pd=?ac%TPb|Bn1YG?6*ekg*12g_3R=X|X>FpZnBht7N86frsifzUB>w6GZL@OkUra&zLP+(9 zPHn-e?I4Q;!H&0#=v_-67At?7R&&zZFk|E_q5D6;IXmjEg6AF7Hne8%LA_k(Z1gQQ zLFA{XfX%0{oKkxj5t^EPy_l6VGDhy8Xy*CV%J)_THyh4Hzcj$OCzG2hT&~3bY*AA7 zKmy!$zAc>U;F+DSiiHU00#3b7*%TCoY|%{qj93hJQms9sR&J~ha>~B&fy^LR3^jnn zr50Lb=o+;RwoeSc2ao8Y1ge0!-jqKZDYVLshbFJQdP^4JAC$2Uv=a!vHT2093gDL= zRi``TOzeB@YS2mfeAnxvt#zsGmYsid5y3qm4eC2SzADVV zy{dj5zT8+g%`JZ1bnD)W07L|g-&)Y-7G|au?tPzk9&GFnTG*Bn)4xs=NPE&F?0bR? zE^0V9b;Cr1lgz%(XDuT=y70*1W=M@0cq*q(9-Dprtj>P;^LheFeZ+#O8QtIiW7TQq zX^A4W`!#vWuc0i@Q7bv7PgxtY-LlQ9)se+FpAni5N%K|=c8}sqsJ+y>p10jFTCyVj z?B>4YVfBuAas+!j8tW1~YQ3i5`q5RccWsTMKO(ZwzgTkX@Xf@rR!mE8^{lNq^NTwU ze8lv=h_5K79N1D>;)BV*d43Fk-|AwAVpZId!sO7`^x$2jTbAWIlK!ydbmQC*thJoj zu1LsOTF>lV1o!i5*bWLKKUDX4TT8E4Wh9`?TwA7>IB(4*Vdm(yyR+?4r`n`0{u|OiBt_?)l=XK#3-tT~TNDl5&8K zT5j(NGmss>3AGI#5lfdA3B$QMHit9J`NFE|>zWW%4Z0LvixS)2R%gn!Q+X6(Kaj6h z?quF41x2B13HhzTvgR<{`P(!03Bwvn^-p*6#z^lLTzO6a8wn7Pa8P=gRhb0C5=f8A zAHA(n4vN&&R@!#)$-i>4xgx^r5E=tLvqyO>}i7bn&J-9nu@y&%j) zmp>jZ_06FW$xU!hOY@S#1yv#MyOTT40)!ZDf!{+;zBlbIABWPOton&?L;E~O7(ZUL z)C8>Em^xB}Pd5e6B$>#TbJlMl=n{~W804wUQb^8i0vIq}-QPFnm{i)`awSJh?M1Yu z$s>d7Z^hhB@xYWS`$TlH@j%=gzs0rA&&{0fV={<$OGL68Fj+ndAU>tQ@8`pe7J98j zjUh4}U6x+t9;121;o2#wT8~I| zl~Y=yj{MF=<;pxW?W@|OBDDzoMxQDGb190OXYv*9>pnjW`x#oM>$i9X4^mou0{P6D zOLkgot|3Mi?ZHcDz$7+#Hq-@lzNi~(?M z3`{8y<8$ft?0uCQ%#>okdRTxuG_f1djP_Ph`u(${gN-wwxk(=2Mvl4S_9LgxZ8*)< z70*R&G9foaxO7(6o&2+1Je z^!c@&ELVb*h>$RI$U|rej#n8xI2~RSeL(r`0N5aOLhP0Gd1(bH`1EJGn=LxwTBAxg zcW!Pzb*7edl7U@6OQ?T#Cs+V-k_O=}s6? zDSlzv*yfWfZr)8Nir!I0kRkvsVi^|~5D-Y6qu0XT1js+|vgpF~k%+4Aw%G^OqWuLhiT(*NJ5~Of{6cX3tDa{4 zOO40V?LU;HP7=Vd_g|SqVC-r6$?hLHkQ>zhyMFaadZYe*5Sg|5VmGhcpRB;&t0a*7 z;xQj8X(c!NqW;j@Yo32ijQI~KG2o46#xt?9R_S!XK#)o%35f>Yb5s4{ue|R!vB4)1 zU}8c6&cFmCXBk!1#ifP6atSk&|2SMN+F%vKxkZyyDy1I`Q!iXwz+|od%}?F6&Wx^No33Uz_5%5g+8k3UghPXZc9k$}u zXu#H#|Cj4zZf`f-sHrAOT7kO?wLUCkT&K(`fU&PNWu^s{2lnelO&w1&nGvj3 z$3|N`JKdWWR$kqjbzy6|gc-zUmJ~_U$t#PzMzY1@%5z?hF4pKbzqIh!?vE1=8-54( z3=56fIx8*k=Kv(!!;|B8>q~Mzdc~O8IPPjy43hml1!H;o0oY}8VR{avi*&oX%@!2l zXH*$4tzn{ljdMOKt6eXJCDa}r!B;q~%A5*jBznz>?h%R2H&V@-bfsf7Ils}PIB3zt z9hxlq_GD*>2~)2x<(OJZ=v8Z?eP+-=+bw~eEm+lSddynQDav?*y>@MW0cR3K%!B?0 zBL^K~6KX6>6eiuUMYjR+Wwx96YEqR%(ZhFKD~nx!Nl>)FRmwha)%xS;Kps0~uu)#6 zy^~e^-qSx=EdIz3r?gYzs^bmn#sAVWVo+0h-jy!WJleD4a@M0;5Ym zsY7<76zfrzkybqj>rb+;oG+!%D!;Q~X)3ZsgeukAiGaIw9jy^%kEAEW(aCWW}% z&LA(S%!R##pYC?CUOGEo2z=$a!@|CG^`&Z7@Vtg`Y4E=Oy4TW?=dn7w5`Mhej_nen zQg2KcqNUuEXKEE-(w1D8Fjwoo6c(CdIT%B6eKdDgy#s!D(F1>J(b)Qhy!6Ouj}l65 z1AG(WX~l#_cH zvZWDw^d&}nHBAT|%o*bb<0xs2z{NsrB`}H-kPFyq;d>nym(-z+##s(F-p%fd{F)Gb zmFCog=E19?eM|x$f4LiTnG6LFOfB_$E{ffG4fRh*(r>tcAViuN6^d!wnMZ%$s{8m1 z=3)d8M?Y;+e<35)#=#A^$n0!K4%S}lcjifcZ^2Yx=Kd?75?!9*Fe?ZfS7do!sB*66 zrXVS-ff!bVE4#1OtVn8cxr#Y{yTay=zZ4!sq~kbr(X?>;tIVFFVU)PiD4#!%$RN-A zQV}`@6-()>HpTZy$GTFZn?+xDd<k(>d*wbm>#>AmSthp`*pS5^Z)C!%rn6?X#tJ z)6HptgVm@Y36V#4qFT^Z6EpCzaM_QuS7?*mz|5s)Do)Q1HJasHeSTwtgdNTV7Ge^{ zA2MEj6mMxRO{_O=B4YwJ&svKeQbA1d)A#Ex^c>!yv1r~7|H4=8tPBYaj%)#lt*oOJ zwVD?ND)Ew8JYcwLoF&ca$q9DckTHX1dvyZA4epdi*K*4Ln`s3f%9nnT0KR7QvIdNu zLc|wR*s`P_xa_#n`3}{jj-@dehU?y;ZTC7cHR2RsB|^_D>zSN-)X4xuF#_GVemE0x73B}ur3GgR>#0(wXrAV4Xzv??aMuv%Z4Hp>Gq}Z z-K%I-_%?22W0o}~B?aSpx7XXSHr9z3T z_ZKX=zVN~ir!J2!p1ds8E8bWOFSoX{Oi~1Tyd=+G;Wd891|$qQMUhl~o>-q(6Ke!lCTzFcU7l$V~~Iwi5trOy0-KFEp> zPFV~PVYsU3bK#;&)%xu@>V{2ua9H)a#Jxtpe;eR(ebLwO)=SEQZnartcz#BszM%$!|u1_*^94Ll6Rv;@xu`k%u3oomS2eIn;-s@8p$!wD(%MBTKT~UGtTn> z_b`r=itFyLMP;exhw(GWRO~gw(JVUMeX%@!5VZ4 zQXKXpZdIbMA;9LlOZp!^TLlWcr!4a8`MOGesn7G@hA~vB(s&Vb(iyGXN{uF|fCZh7UIT+xdgB-) zJwLx=uiMl&H2KG{T6;7H#@7SX>Ou;GHRjRD%O%FTT^FY@$Z99yLID8WQ0D?bnq{Yw zDJO;T5s=4EL4_fXrghelj{G)?Nl{uFc13zhyJt6Dd_n{)HmT5C0?6zf5D7$R?R03S z%A2!-eN1e*ju-(i@cNd;x^v+gV2`YPRHDlkBAn$RjfQycxbI^iydXfUv>gm1+v^l zbEkXRSyOiJG1>l2A=6$nCB#n`12%sca+S6QApSU8V2~330Z&dwtW!vlrEN4fQka?& z+z}->Ijl~7gv-VaVLL5r8dIt5X_U8xq18?s55L!_p8`MG|8X|a>i^chK33bQioFYd z@Mc-6p@p84FW7z$LZYzNEgFxy>L5KQ9M>P$#M5I%%Dr{tm25irV;+h<|wQAQz)r#_Le9+`gwoPLbt~raS;>x_)(j- z(f<_xO5*wou0LE!*L_gx;R{Lz$s(9$it>P#PvSk;&rcH+Li&n00* z8=m4v$g~^J9CZ+l3*vfEzY#5VHi_;SC9Fi^r_Q8|`dt%p6k>ubkg&x9@KL|51uDH5=+AEv(|i~uIg zQJ&`72Gz6RzdnlDtk3M&si?V|k#k!srq8WO&~f z@oq(Xoq%4IF(!iA$WFdWX1I3=XGY-7FIn9C?)`7L^5*|1uFQQx=szKuk0F(i{nh8Y zRK}08aFJIiipUdj6!RI6z4zk<+t9Hygop`yW1OQB(U8$LBiWz{R=>r41cPHBsmA#a<`O%z=ZsN=v>t)oyS2@MB9jfS+yUv`Y50e!%9{jCWbl|_}W98 zqJRl)kD;%|ZPI^?NGI|Qq;v;!q zt}dQwUt>=I*!x-<*PraAdMC4Hk@b22LHWhWN`p(X3AF#wp zVOKv9F;hbmEb+}EIHD6=hH<$-u6#mhBm8ABdT`aD#gP+#MkAdl=_4S)cMrt!Gk|Np zZt)UD`j826w$8^c6&Y3bm_CY$*_o-q`ww^wx4hn&w-@7~Bal4Fxi8R1!1|$$bbYvP zY*T|+)Ws)8-*!3Q5OZ7;#ZBs*PyXFR9x^-g@50&_V_ zSRoVPT$ONFKpyLXVNHYKti^@76myc@A#ZmlNZy97#ZyoH(s;D2`zzA>x1V5Y6B64C zc5OvwIOz}K&mPIv#p>;aUeKeaH{B1kQ9gz7>+^{4PmihhL{|FRZ|jx* z9EZ}!eUHmrJf;h$zthL95pO!8F3Zo$XJrlk6T@_CI-tb`zZgjx_R?WYcW`(~vSaf+ zrVMs@3K)#rZxg&)B0T?vGME1o%ETbO#=G!Q_s*g*0;5cyt(AZ_=k&Ye^+JH}qJ`Z- z!Mw5W#lt?tH)dmN=+=}hskK>+BLTbub_*sUp3&bro|v~VMB$8Ry#W&ab2NRmQ?P1- zfyt4+lX@Ltk2&k=o?-;~a)nY-OGZR)d5BuhrcE!)&RjgjcAJ5k(A@`DS13k+lY_NSF-X)9f}+w`!^?- zD-fg+u!{i(jLe0i=hO8WzKPYXs_3nvG$nPxp+h?H7MAFCmOI9v+zhp!d^RN?9Wv2I zti;C$q!MX~u51=b@OkZBF-7x)W=b^_#n@ZLw9duV!zn9s&3R0@cw({@!K@PuOu=`U zvv;wTCF=dM!jP}vt|R$q_S2aVf5=yO5-FcvYK-*k0M&lQ!mSNnsRSl0&*LmwFD>!6 zdlK}KJn66+97PKeHBu;Sw>#qR~Gugb1*B=V4;X*B!!Kv5*DQ5nwNGXd4I zZ}=WdvE~LmP9<7M|AUJsn`Igw3byfTnLd@mg)2ZYx|nI%{!cpI3i78!NS7nEA5CL{ zSjTimRoA|@%l+?=M`1*{OHg^Z@bCw9P8OvKOh(l99wyR(Kb;~TxWP%QxVul$3_!S4L)3qag+c zCcRj3pwCa%-iFf~ZFq&ICWtJo znnljD_%eTq9Z|B(tO&UF($zQP%e?T6l_Ct={rvB^^F`5S1UDxcscNw@3AyIr`SGxd z)8mix2X+Rel3_ib?`^;e!T8WsM(Vs6cLE-~CxCp5p{J?et55iLBrn=mB_g)-hDSmg zTe>X;!=y83q)*edYa@cpC?D%VnVh<&W6x9q*@VB8{|9ENDgoQ$ev!k5JeJHmTpnkU zJR&`fcaLqvK!&DIZaQ$L3gkqw#Jn{jX!26{6%`JVp^lyEancF!p2*>IQ=(~!VV-BU z5^G23p*Rlu=W^%3d)nF=T`UkuQ++}(Z;I;{FksWcQDJLxe5m~gGJ+(jgE{RFGdLNG z>8Q)@0>U~N$sFuGPh>J^B}BAijtqWIg$0{NPh?BvPtTzaZtnfDgGjWTL$V@+7w&sJ zCR*{>(@|myo+R#j9Xqf!2<;*xmgtxHqf0o~Ib1b9F`#y*cCp)O1xC#XqbdCAz1dq< zP!!9wPzMKD>kUc1ym^T{m+Q~6m1Ez*DmD?0FUdlO^Ekn4RU2+&fK4L6%7<9#oowA~ zw0M?}@*31`EcKzyBgilv+7)AU$yzFg%L$jd1DIvrlBCa`w2qqGqQ!sanAHw^4XPY#zu}iQ5vpIP?ZOD@*h@duX=0%~1j_N8Lq|ZwQ>wHVl z7#_I{1nwV9v2IYmIiS& z7u2y67{_^mI`MTctyarzC?bm7ozRoVJx7QJ?P&4Y5YMNn^GBscEnq69JD4qiAL@2*tuKSt^Cid&bn@d|k7(TJ|q} z(G>hrmBSqy{#>F$Ojj!>i|ve%^lx$^zkurS*7m$6b#DQ3sQZ2|rcH@j@Q6_-7i1u# z4xXY^hgt`=rMnb$(TOox@)(!gx2cSf8C_2ub^w|kz-{3pBlmzjQ%tjE=C^wfEmhj3kZ9Cl4EkPkR1 zu&36VUWamLHc&P+(!-4sUcCQKd_)JT&(+}m8O-X+5dPg>9X1+8r^RnG4jZBlRYqO! zn@tMN4%_$MBuMHG>@Cw-eK4yHSy=-lv(EQ3kyJ6=i_$kN{-R|AE}zuKn~V!JS~p0w zoR<(eh>Y7l5FU&-h&*G8ww=s(K`d1re-DCn`8yhg z`zIPDtM3*WnRTbmrM$jqQpI;PB*&YRk#YKVo6m4ESBrR!jd6s*!Z4anYpXvU1%_kKHZn1h#+f0V^f8+=WvdAX zDe`WuVzSCTNztlA7)9N5iu_K((|?q1Z1tnFzdy;5MB3S6T{UpZ{)1czYhBUc!G=e( z3%rUVT98gmUf1)1*Mpq^uSXR0)h@%?1T^)U9pY5<&F^>2YOCFs6P6dK;qWB-?|Zd+ zZR?36jILgXi%0?{)}q?a1(TiiPENm%9$Z2x^=SUMN#c#ZTmIhsSm2}eOzK@Epx?ck z)UG%>!*!*O=cW08{M@Uh*ZfSy<8A<@g-Fl%GAfIsc}Mn@R$X*;t!3GHu54+S4;Jxp z!Txkyp?tT+a@k?(UG_wvSgtO3{81G6n;1~6)rJ=<<~Lz{JVSXGqgwERr?u4Yc^Ak0 zsA`NoY;kkx~Q^r!1xZH0~JN>*VV+KUfgi|5%lFThF+mw9V2aXGA;5?T;5G;B9D*<#)*xygI~T_lb=43x1lkZnO9P1ZIqMKUrB9zA8aFP^3dJl9lH? z=HnJ5+27b~rit>ZXlFzFFK{f|TXk|Z>m_}F-7X60o5dIRlrDB#(^gQP&aFcG^mO#7mHST2 z$#~WrtgXt06sZX=PlG_X$p9%eiu$(XOr~6c4B~`tijl~j{pUC^2o-r8bPr9>%bYSE zmm=qT5PG-3>J;06N?ioB;nqQ@PUMNzZNR)rNP8hxkWLn_Erh5V{bi$02`yMP(4;0c zAvmy|{-wJJv=_x%o1)Taym>uuL(bs^T zN}o>1!&tb9iK=&lWbOPqDo)yT(>r#10uFcl1O`w3p<#IDcGcvl!Lwv;`{<|@OtZpC zQht=AQIHNu(9+#n<@{&(RXidQc(LI5>$-pc7Vo(|S;G9ws1)4q{F^13p7S?Ll=kkk z1=V|Jusj%-LT<*I=jA>|8Lx|DMmD7=G>Lq#wxpEAzl=ljBYjUD%TB}tY%)oTv{t61 zU@y{WvWC=ys!?MNG_ZD1f5R77FwlE#e0fnq^Rd3b=Jn(POQv9K_}%mQ-cDNP{}iJOVRE!%8>&P4xNEK7jOlpUCfj7i0gW z>B`m7U)DO!;2=%z)xFoJv$GTPzs<~{ehn67KOO=2+*#h${k4Og5wc?-Yo;^(ndQH^ zs+e3#s>o}q1BowRmclg>5dIk+IfUj^aQ^h-{;(6@l8Ttg`e31ta3qND2ifzhT^vo1 z_y!Z3c`u>*Z*Z|iqjSo6RZN(ffmfy#3p>tXbanL0J?{1)^RTMdDd3@%Jjc3;?tGVz z=VPG|9Jf)_c#j;bQFdmez9JZKu1#IcjtQVd0}|UTqW;J5#--RR?jrSI*;t8+v*T#C zgB0$WUKQi(1-55yaJbBFcjF~BuhI+Jb~0j4=_~rzs=}=?MQ~nPOK|s`nRRQ-udImR z>6x@CmLligz;6nIy}f4z^DD+)W4#CnTa^?~?^3ai*kL(Bv8S|lW|WrN;;#BGpy-_a zyDX))4tSTvw(rzs#ZQ zIp~^j4FrukmjFoqnor^q6I?m-gADfA6BhbxIs>zC|74LZ$W{RFL9Zl-SGE^Nm#-np`h1sl+jMG+V zjfYugZpOJ95xREPXILexsQ3e1D`90MQr}N*CDmDcC1cl)roP#6E5YawhATA_e?(!Y zB9Oz=ADnaqHi4PIOAJh!97;?r^bfNE?hTM@qv{BS3c+e^qLlq%N>Pt^>vTl&=zYaT zwg6_bNP3p=`k+K*Y24b2_$YRc@Zk~~6>4IaUp~L%O&2F|ut$p9EJ*F_aWKb>qBFus z9m0^ul9;O7YGmY-!c4+rlkOP7k{~ulM`10{BiVaD0gUxvzU-l% z02<~wFa~Y^l>*h!I<>|Fe0Z=%z|OTBwZi+M?IjJ--tKz7Cetm^1Pu&wD-j1f;P?2g zP?JYo{iCgZXA_Dl;1>V}wv#O;r}5hD$*c+P|E2pawgz$@SwYP7=qG`tPvh}!jKrHp zqWUt}zM(35Fth`Epy=s?lhT~~OQ8P;_B7)#ZvO8mFs|`P#{DT=VsdVvw?_kIPgJ@JZsEP1lzJ-f>^MTt<9539O&^GO5x&q_O|y zS2n#m?>5(@RY5TStR(CGjH}mfEM{Bcia3p_N!bUsb0bRu~~IsU+?FV5F(De6&KsWMP1uhNRz8*8OT8j6JmLx zjo#bLJme+pp8LF9ou4pq{e4M6W#l;-FAp~+?|L>!B~Cnp>^bofk*M#;KB1$Cq|kyd zB23g%r0tG64$N3~^dTRGFJxFjAwfhJ5Ar@6f_}uv43RA@E0w7YU{)%xOhxAD$&tj& zu8efvWqrLbd$2!|EmxO1PuRk~r(@E?J68Ux9aMdfJd`u$4zzzxr^*=~Hjpbg0-K6J z1*KL2)yM{c#f@m<0?VRmbFfX4Hdk(+w~Ey+(T>QY5WuH?u?Qa_ZCOn8lA`Wgvex3St})b z>L_g;I<1Xla?W+8DaA>4?T=C#b|A$d@s8qq^!fj!45~xR0afWnY8s%PO2wk8We+Av z%ZOu_L2=h$jS^U=KA4;lD{NW@t=u;z8o=q2`h+iENsCPtpW=R%`-%-6I9?w(!}C1Bt=1*={CFYpn)42> zEe>+08q(lZ?zsvI0l*y6_-frk)yY>Kc{84x3KO{~D&<;O2cWB}_qHWvylrnk$xRGb z!7>d%PCmBUy;5$H`zP2>BaZ!}Q=(kvToQS|9RCq5ry&O%TzhkNP{4L$7+-77%MeMl zIzl^ciWBZ3z$O_DoGuT zrXcj{T8j=Q2Qy6R(|Aywnvui$AI(r?B$fplON!EqQWH2NIcaNz{vx?ZvJ<8xo=36+ zR00xP{YcXfo)%Y07YEKI(VAofbI{zNFs;2JNe{9nbAUv+3V~otFd~6!0qm(hTKeh# zJj^K`{=%k<=4VO%2d&B_nC0epM8=P4SC%~>`U`&Gs&p7=VXIXAld`2_h1o6d?sbpWdFF#e!=M z#T!MAOFX>hrd$EsE#%5bbqe%~6p3-EuLX__CPB$#w(lFGEFM6k-k!e|Ii*)k$Kp9R z9zQM@B0+1f-)v0`IbANKkzzT;R*^jmlOFm`@xZM0-`5M{X#MQSOg+9YOG@rVBtrer zGC7>mbJgIX46B04m6V(Xb&%bf)G;kP2NC9WCu7&(jU5mGnQ7d+GPv)kMBV8hCV=m; z0ZO^fgMvk}-XG75j(d3VWU*KjQdC5XCYAg~Nm*D|MWK#rN-ipwiIpY5%;#;`XF8T`NMJUc%EBS$dS`vNWpaPA)KP_Hvba7OlZ7??YB@t$#j&o{C zhS%O&`koXNnS&HF^6Zlu%qj=jCm4QlYJV-pm)GO$3*!_9|BMto%g(S8AI`&7uJ!y< z&}~7{xqBexfF;_phFbrOThNEG)up%vHJyXTS;32D9xqCiH?dyq=#;pfI5eS{WV;C> zt*I@cWl`=$N}0CQnD+Jv!JYZ7FX8Pk=;g%Nd%8@jWzls=A8A{M$4(HDDn6izy`Tr) zu@8AU;F6Sao0#Y+032PWvpBkmD_8vs7L!qeS$^>J`c*wgs{+k;Ad@6|e$%=0@Rs6y zUCdoQ&oma|=~zfbv6IY}{1@J`UufT}3Fb0BI_bJ)M^=g<3*|=MNqx;bx12^(9iG~R z@~DB`8#LL58J1TY%>ThU98lCd)zbWcJ3qACEzJ!3Sfws<$fS3)CnmjE+&mqA_*QrK zwjr77~}}`Z1{y! z9g#%>9_c_v5Y$cj^r>lpIPmy)%>ijmqJNDuDT3`SVeC?51t-cZsTR2|oSF%?lf7tY zi8k5YT?Ek^q+0Fp7;*ZXgN=shUdq#5!`O-19Xp6kyEYMr${^ys^=STxe*aVG5G#5z zqARk$vDSZ*6+9MnB4E; zqf9?0nq55+RpZpkS1hJ^aQM5K@S^tBkp^l&UE#p5vwtSE9epmQp(U|aY9#&IP>$Re zBweo~+0~YpGVT2-%JchhEsO8u)APZrbYIJ`)L2DnL^or&3Xh*2tyZCX@H#r#!gX@g z8v+A8eS4Etz&x9!Hup0R+hYL6KEC!oYgvWc)sY@{z%M!^zBiXu16sR2MCZNj5!@96 zpQXLX?*r-YpnTDFPStt1FMCRyBE4W!+W4V8i0qx5^e|w&9zkBgJ-Qpd$UFpJf!uhjPn2&*ggMr5!K=1)5m`N`sF3>Fq-@83}EvP&P}2NiT$I#HFx;wUCqyS z;BXG`B(!QXQ)i=}FMoUp#4QBfCVpr+^Nxe+4MKI@u-`D~hgrI7gn+QW1qksg^i}Ja zZtt4J|BfSE$-apzK#Jmjz>j9c4<^31fxfaR%p#c+e;<6cW8T9jnJ_<3qeu9e zR4t0)hUv9SwynNk@$_0E*5egj= z-ST>lV08Y9Y4Tv{gM2@)`I(eM-M^NGZza+68*Z#2=&=e*oeB}+%I7tl-#y{FSU0#k zh;8v(6;)jfla0P$XbqL`G;M^8Q#=fNf^R_7r~_Ni`n~M5^&k#vZU6=a5kRai0=qbG z=jnVQInYsPACET2vK7q&v)W#0JppZv$dMof^lN*m+?a=wbLpd$9q4lUL2BZfk7UA) zNJx{>h}kXudXpP2LuX`;eiic$#OLLs3~3Jkz1KgjOun@wfSampU8-0-6<+p68)HxW zb5e*yJAr*!>UcG*VSm6Z&k#K*x&finMVq*fIjfcJB1(&zv4(ZU-=Kafg(BI?(;(%5 zB$u;dcd49rTw-k0fl&)I|19Xu4p~mTn6e%W*o+d!<-qD#1pAQ+E7?FUxT>^`O zNh4i=1v1(afdj3?Ng;&d7`pAYEaz0!7w3$W#gP&FuX~g3z0xO#1O6#el$6J) zEz6-*WhiSY%;$(iV&3&k7aL^-^X+fLp4=310&TBdlREO_r-xt<0h~6@rNYUtOD+A z07~dbTi#Wn@0nmv3>v^xK4!E6}NdZ0M5SSZ$BwTwoZ1Y%JVOKksJb1ogp8*fcF#?_gjqb@ zh?3J!wfhe?kar=kT8Goi9H!f2ZNBB+L^Y%Kw+da`nbbS~U@gmR0^Ku}4Mdo!$My*`_ ztIYGJsB%|Df{=e-^GcYs@4YPKJvWi6hhVk(rItduy7Tbs94thZ_aja5?$P zR4KE_@l{6MWbS!$mSs-h`@31K*~BG$xQX)Wuo~<|(d~HorU8K~Q{*47wmxO^7wD$+ zDXn}v^XD|;GHwyDO5VwhuLNOg9?_%o>`Kl6oRiL$Z`}R$Qz1_!AA)vvf4OqpZrY}# z#K8!BK$aEF1@fMj$CIfeH}>y3a%(1%wC#xL zQ$ihi+)UFQ>6T1+4{1n+w4i!vy1Iz=-tOjH`jIyC!f#eDl%um|TUq4YT8;-F8Lvc& zdsJYin;8U72QxN5UYpFEmJ-<-!;hY-ilu(F9H?1W*N{Fgb^TVRAk{Ma^ZyX{o>5J; z-`*~YfCvJD^d>4Iz4xXdAiaasP^9F zRtk>pQ0G(@Wf?tsq!FOY$v-$`PBXZ-mhj5<@P0*8hQ3#5Y1eaw!Ox+m{?~O+OXP9J z^s-oaQy3gJ9z8@gyc!spS~Xtn($*kk+{}l3w9>Si#@Q`#lYQ;ha$H{gvW1OHfI6cZ zeMRh7h^`l|&kS&d+U+F|^G{7h6ZkpYB#Yw7>}W3t4J8o!hOk%g=-RXSX{v+=sdjP#*2)gQ0lbkH)T zq8A{kB`SCN=r#RRWBL{P+_i)j7ges7=0(@FE-WlAuR|qrIsbP7-l;%;C-M`?rGCKO zS{8M7hTUQFR!-*et1d#x+ph*r?H)Y{JeO{KFO59{lYJ3o^OIPW7^0c66706Yyvd&i z%!tUla%4iPbzUE3;rj0>qg2;lH}emhGLPM9a(%HOrAxOObxTKiHggG4gYSqL6qeYp zMdQ_)k7bKoY%wum8($^CRi|{`Ay)J#TsPEhRTC=uj6w)0vedJ6z1tO!TJ;HS%Q1M! z5cA%j~_I=K&UBmiU&UR)#}JtSG&1Hy-A1)1~nQ*TD3 zY&~Ovttw;9wNbMH7Z1pnx1Wv-^?G55Un%+{Ga)a}^O?Nu0R+PO5;Q{Wg8 zS3CfJ&8KYh0(E*YaHW?2<&_orM;^n9MI9r(=sj)ds0T|{F5Ohqc;&f&>!XIpBO>2A z&4){y{Vsc^nd9gr`P^cX85Z(=>mz%qrf97M&*?-nQYZc8s*R^Sfy`0{AJt7o^@dw;mmFFOBB6$=06x{$kjojTg(WxaWqF)lqW)r4LxxPS}|wZ>qF(bB*_aejS1uK zlULry$vJO0WQu;cAN^!$_g5{mtB)B^X!<-L?iVC`6ovu1@^&F@dL2;1n?3z>3Hso8 zmbPipSV6Gv3B8#waw&A0bdAM%&9%jONmFJpDq)e@U4pd3z@*!V-_xBN`Y4{g$ezN7bX9q`&6DF91Zu<#MB<7X%cvc5z==xc=Gg{1?+>)$mPt$MUYLiJwY{+4sR1Nz5tCW zV=9Umf9x=^g~?@1V1|;7eDLPE(t$V!4HjJ+7~`=MLEMVlZiDbdgCL7+2vllpqT0n` zUS2skq&`A}1Y)q82fIjkS*La<+Wb^JyHd<|4m{L3-_6`boptT$scMXa-kdA)V8ns^nT0G5Tv&Vx&ZS4s|2Eu{ zE4N)q+Ze-YzWAiodDedRRb2$WgMXsLhva*iIIjJjX3vUdU4()1nHk@zG(rGu0Ry4S0(8r6}>W;*YxeKKXfPW|*2;1B}$n<9{ z&cX{RMT%S88Gf_U2GgpiWU)E)>u8(Sm!XFViFnuPH+ukW#YFqTX}9OIwcQoxq!+vA zUo~uBS6-Iaupshb(1Nj86^o!^Bami6o+zu9^N|fm%aEUJZvf&oKKT*f?HI%Z+9WMy z&)xxMv^Ku>3QSMWNxB$F0~GI$D@rF;>97ok8 zRceaw+*ETClukFLM_fi^545!CF=`tgFps4mMAdnNj_S%*pBrhneT3PRGSY;sovXI( zykzV)(E4Rw!BUyL>$_NSjx#T(@OCOlMmJ2fW#~9UrA(Z)VgUY)awQ?6LIFUdHC%mu zm|$zsm|6m>wWRa)yh#qU%7$y6_WNoVlb5!bhbWZ1_3(8HtJ#W8j&2_M)qWB=CxGpz z6;Q1W_q z0@OhwJh>S-Qwb3VrOsAR>*iL-y5=DwW7xmv>NV>2(bUcI&z1}|94qP+)d}sj4Y?uz z_K8v!n1MEzzmH!=O$DKh_Qmto(wLZqEAFBiNza!{D()cmN2QnN=m7=BkQ$D;yu2Mo z!VH+sl-$J0#dKNMt(10<2D67}{HeiGsYs$k#CiowQ(x(42YFC<%VeskhXr7&*mpca z#oi!&WXEPCLJ?6MRUv9FN&yKq-v#H&O;!D1Sy8E7BD|bt1%M44gawqTA$9T8yBY?m z+XJZX1V)nKQnOrvU&L|vTc>JirLCHpmxv5)|2`$VGutxPz#_Z(TVvZE2Rr{(C3Px#M=_+quv3iKpqH+k|d>`n|1d z{4F%P!em-`b>c?{K8Fi;(AW<`2F4euky~Gg=$}NXP~|u>H5TAI5q!edkqkCt#gLU_ zePZ`%Hw9)zhW(JN*TxTosQI3UV_<5**eL@`eAr%)SkvY?9~ZZ8+6!rMJ_TT1@JKQF zS+j9B+Ik_5tzFEvzNNaECwn(h`4N0I|JArCbE<@o`D5PxWqkb;kxAv}AkC)gba6r@ z)P#2-*IQ`=Lxt7K^YM5Yj{RKa==kjcxQy+qmYBVbu&pe0m zSK42F+Ikn-CmcyWmWokBiKL@njZe+25-Ia1Brb0kXm?fVwKQ z-;xEE>Em4a`e$n7lU}y8$;jouYJ&H4(T-=t{ zO_|nKiCx-(y!07K9kxf?HF+@(Ze$M77M4#(O1#5P_X{HF9_Cj(TFv}H^}gG{@O?S& zmwWDB?rZ*Bkwt7w`2`_{m&@$LMG@>v7Ru zx4uUBmLbzv!Y$`1Nt0-H^{+q$@=M|aKCZa%s1Z)4CPP*F53({Y90w7t7=2iaW%q?@ zjTrcc;m$VnDaxYX)P1s}hz>8+5*)AQ*KOxjWsBRBVjLFvD&s{-(D+|*uGF1&sOp(o zx$0D2p>P`iBi$6!;d`Sl91RIdKWhh$QtB$0H&CHX;db96D9{XasZrXVM(_t+AUzFI z8vmS->pXL2wjF*^9V^{Ij`JNQcEpp`yn)^3b_$C-r4L){S@38&E>@bq=TN4es3O<+Ivq}Hg{ZEnja9+94?Gy-GU{)Wd0I?uTezB>=EAc`TafC zjZc{;fLAy8>$G+*G*k%BAN2m=rh$Fc-?vl~*ofZ&OF(NW9EsMS-j>tf=j~J9eMeot zAoUJPAVp9>jP7odV$9Mzyvov5-O#+Z%aSYXuD!kK06JB8Y zNv4;l1`rn~13Yw1{mI4l;k5Ul$lwoOW+o0`J_n_`xa{Qzh5jU%(nKhQE?>PFytnc0 zQM+@-_F-v0@)tH$P8G;sle6SkAWI{^db<>`3HXF5igck#Wa8ApI=r*bVkys{hhtin zDYwFdk6tlDH|y>}wJ9)Nx*H?f!?1a_dU$5&Ud6wh%PiSnFb<^bOtdXEj!|oUFi)_P-0ttwX*U?)E#N_Xa5cVU(}{>A zJTQ5Yu)!=eA63@mh&`x;?lgq#FES6B4>U-G@c&A^bva<=B#(W`{DKx?<&clOXT1%< zlnwgw`-f@6Mb^ohb%6?H!H;h{BR~nSv_W@?0!{A9_>9+@qTft?C|we_KlCsfO-#`9 z)VY|L(ObRb=D_VubYej2UR&@02dSEUNDv8HsqpN@q50|L6GAVI*76v&`yH~!n;g4f zo{1(&k;*mmeHfRZ6CHdxV(w14*TMiNP#{ehRr&34eV~1sp$eCWDRa`5qzT3om!R8UXt5hOJ&s~&R-4}*eB$h zsC7$xV(2SiS4tnDfm4brhVz)#2)3`nGNkV}jIS}P*o~R;?kJYXr$38(H()&4>*KU& zufm%2#Zw6_LS%bgIVaPPewls7mHqCaj>Mw3<1{Av_rghjA~Ysw!z!7gEW$M*il%o`9B#t(L^n|?!*Vf$KBXVP#orK6sZ#LlsZDtAW&=2$i@dIDg{;DV4SfeE=2YnsNhGo-& z70{Gf@V15beS(q_+m-s3RIONAZQoJ-SIzeaYsRJFnqTvWzXwWWRPHE;0-QNv>zu}$ zu`3zCh`=*!1Q3DCgl$qe*iD}3bUc6JH5_{c+^mP-xm=$U`CH;DR^SHG2@hj%C40w0 zmd5(*qSAZCXV#vf1f9l^dkiL#U?8~1h4M|NAm4`po6N&`am606E87)cf{b=l{4)m` zVX)h9C;>H$9N8W^T?N`19;8n7N&!v=qodD`4WbiL!^njwiiuwHb4rR9ydu&eYOvHh zO=k2~Z8SpmU-|gKZhD%ZE+H~@To5Nv994N{8vHTW9=6Or^h6Qm zCoy*q`c3gXi_(kU$&olXf!?>LHFuap(=_YAu|K)K=5H9<)3+DexnXp3G4+$(9CPmE z`2cRPOSNJ~?_OULOCAmue$=1{kar~)83rzCwufHIMiMf~gWdpOzXHXS3~pq9%z|aR zUI=OpUu}4Kjhzn7#_DIQR)Ww~rW>MJMgP*v^3cw8@jBJUo$g^K;=+q$o}P9otHfcX z;lO4PGkLRKqqc+=AvjQYjX4n))GYhEM8M3E{*cC*~ET`FTo*9>nNm-`3p3gH@nz&ng3NEc zFL2n5<3`cr%(>H<)@v76=ED_8t_Ax83>-qb-{|2jX#qhe>oNp%V&3^lg1pm@q&QPa zR(AP;YO4gJh42&A(`~_urnu?H&6DJrs=Uq>_zC*z;kv-Ld}U=N^?Vy%zQ-JdqhgTM z8-A*a_~Z%q=iR}=VGjh;##`q??9$WnD!2zAfRM&U0#qRf`1bwR#Q+d&g71;xgE(KC zdDBYz%Zl^y+TrNEyVR(V+89$=9!^37L*;HA>I&8ap)9)3a!bjiXdv#hZPZksE@DRw zQXDQ)dl2tqGj9+}JF5HtW!G5Kzuwx?Q558k1{eK^9GF>}bYSiFmgtyAY7z<_l-V6$ zO>MBgpP4A6u#hbOm4^A>(7A9)AVcVtHBtOT*r1WZLKk*MV+#|mb~gk}<|T(Qqd~Y_ z^Xh}H>gM`ue#V6zLqqwASFviY4KiM+` zeh$@$8Iw`G_X(Sa+Ig1B0WW{P%|t33J?VPYqt&^BU}JIay)%Q!V>C?8ntjDt39?Mz zs&p!>{CEoAigI9ebL7b;Ot)~v;brAyO5x;NL+TL~4TrZkQ3lxY)_bW=^l&-=g~KKf zD?^uz?XfugGtI7bgqe=;c(Mm2Zw|Ek(AQ(^34hupr4rXEH;AJ^Me#Ej(=9Vin%KD{ z-E!W*p(_i*tjLvvLyJ^2K1Sj(!<}t5OY1~sxlUQligxa9d|_kT42X*Uwbn=&x`MOT z9Z50J^1CT{D0mZmPLCytZo^CkW8zF6A0Kafb$55~b_8SY7D*y)ddxR*S=Y@Sish!3 zKxJPj+xhb4ro`2}kj9fqVb^Yf7Jwx&c#?(0bDnl*xf`DodCxG_wd;ozXfR#Yc)Skz zruYt91)|b;B231a<(9AMc_u{u{Mv*9G4i^|&u@FDnBl4!gC7U~eVv+55bLFp(a#N+ zyuDl-W%h)p=MuC9mrBA1OsZ}-ACq^ph_ppt=w@Z9KB}6DMk^wtxzeveY6>psF<5M5 zc*a#%122fy^Si8H{OFLGV(7lTt|h9lYP(JyHmSD<1|z|bvIG~P-BALzUcImVgb?IJ zxC{~^jt!MtyXgo<@ZB(g_-2emtbsFvhMitj=4(|TOqOXM#(mn9dxINKUCQ9xg!f`f z;bWli*g5U>G(SU&!kd{-vFhvbv0@G#{>i$^a{Hx~z?&w-hUA@j9F1@nS{{A$#?g@@ z=(ab=KR=1_=LINDy^(cb{;`UE{O`m}tD^k~zlS5gE8O5=T0_T$Gkc&jKjVQw>(x1; zJeRPxevQcZ+V~?3sy=`xeNg>Am^wQqQ>O;{?bJm&D#0P&pl+=9SPAi(lluj$PWdYR z-5R|tit{H^LV$<3oX*V3_D4g~uz0yB$-sO~7msUT^aju@6I__`JA*n~iovlw{sKe) zqh1WD*BwCKA>k9X_z2)cypT4XUly$Df zSqKR+xzMN=3}nK>r6zBh9SMYB`!24FJ&IDXS2$wU4C}|Ka>i4UWyuYoG6b z6ZI-Qx+W291>CNaFZyg{3yM&#Q+;hAMZd@~D>(R`Nvfhyc;LiveCF=#2P8$j_$5WW zw$mC8Ck^bpqmM3t1_kW(xsu(|cnco?$yfTRMXbuv~c?YU3Kmln>oj#s2<8whff#PjpkeeQ27=inlS+}at z(iJvT?1Zlhi5*Vt^do47tifIYHFe+?&eg z8Dc#1F9OY?Ya?C2bvQLKAkV4$MjT2xqccb5UyH z#ipf17MjDl$1i`)6#Af8vfw{lmv6E!^gpS3+K8e^0Gf`=>`iz)q@Z2EeJV0k$N7iP zFAqB1@c&P`9x5nwa;~EJqX`czn@9+n??u0i~H}MomKV*;)s0m8B!n&9aS}JEj z*{0dTBY7xkO`uA$IQu05sbu6=1{Sdz<8zo}w0r^{cO^A?2OJogVIHJU3{DU$R$ zc&&A_fDT#`%DQ(;FMLGvSjhFXxyqBN zzLc^nx^J!o=re;RO}yGq4frhruKPAE-2cM@`6PP{w4D>Qu@(}OlE)Ye`>P6@wJ*lb zgWE4kxgcs&KrIDE1MRS>%Fm{}Bc1tE0~H9ZjX8JlY573oi;O^{a~o|GX&H+jcQ&|_ zu6`@`k#>+0GpUn~g-+3<1`wc)W+8uotYs>7M1I`2K^^W6(TlTP+{@~n0g6=Y>TVC9 zQ7Yw?Nqi}11ItQf&d?5#RAhWGt9QzkVd^cM?5^|{4?la~WF=@$Y0BK-x)aY-K*`D6Y>*6Q$*OY-hupu z)mM=yrS!a4an7~~Zr#-;b<4{3F5dIrSG*=&EN9yeXU>C&_3P;e)pi(Ehy3@%n4Z5I z*||PqWeoh0a%gJOlsO%O4Z4D-|HzQ4H64t8GPfYL#f(X&qlOwM^Y_`f?5Bu_>;2__ z?tRgQvk@CV5wH3)VVw}$mrkBpcp5)Ru(P6wg||Ta60OY(*(ndAnE+SZr_&>=p^cuf z@j&lHo))${o72`l)z!oE;Amtr$3Ek{%_n2o?T>`9jFwsROA=!GS+mUvpAN2d$qUn3 zf1B05J?bQKaO!!#DTFIAqjX_p;$BBwja_VP!%t{H@$3Ul(Lsv5WvbP>(l_VEh*e)8 zW#fM!Up4;Uk0(hFtqgMDrNWzo(&;J8R%e{fCUh?+n*1UmzPHd1T!AxpXKjOqhZJ5e zSxJIv!kCzb6u9h8952e=QV0#(aiT(jKw&~R*Hz?M7Rsc$+2;89Q1)Pv+-3U(!RgVb zvll1+&Z)1~SCI-Q?@n{bSX?;{)opsY*0oKrg3<(hf1c z{sX9DpL*bl$m3(yt@9|%%#8cC5nMU5t_4b7q=CnUpsE|WzEqxqnnoJ(PH_<(;l8_c zuJH@ZZeo@-vc^n=zYDIYEfbBEyLskOzvCPP6DhVooL3|5b*Rq)#$xHq^XXl#@{~qq z8Mn5;`rNG;&|4HO*Nx_z&)dB9d~M@0#E-cmFQiTCM%eP5aIjcOp<$-FB)Jjo51@L- z%esolxJPvoA(JJt3fZ~Ue4tM$E*;9#F+%-X$t|P=RI*@dx_5(KX85Yv1V!cYFc2zlXv`Ob?GZbFY^YhE=D@NunE?>@x^}+y=NbzCR z*ybDNf=k^m3wyXJrNO74dkeVb1R9X?=#2CpH~wuh_m*M*EzE*QruBRaE`}M(<$2*G z7t_Mq!bF#tgkaQ<;DiT8GxD?#iMk zUv^(h9Pr)`9M@0~emP>BrJKKa>hOV&J|+9$!5Pz>gp5d>m@Pzslqr-*(D?GKrUY=h zyCN>VJw?)%34R+NEaXIUSP0!+b@S;c`gDauagA|3M4WmT_!&qqK1kG|mIahmO@e%6 z#^Z<%i0lkDb!8Jcb;4PWKby#RatpNnluKw@+5Ps;X*mxuBi%t1AQ=$5@d9%j%GP;y z6!>coCD;h@OWo*&@_Zs%=jk@8J5XHtZuzeqw{?m{JAA3Lk^6Wc zCw#@R_NsKcMtYP##^V*if%jp1He$u>_sVzkScKBhJ4HnmS;H!6h zDbM+Zds||p(b{{{>m+IC0gv{0Ppyo zzwesvwQtztPq|44Vu<`^E#zt-Sx{H1+e2>lVMSA85>S}Y&k@QGy8L5p`at)Yu8QGF zhvHm!n;1H4)WK zO-+Ig!&c_LEZKIqg5z%Z?|qI>-tg}c(b>A0pAr-9dkr$kT`+%Nx&-nHOrmzS(YkC zEN!P9mL0RYaRI>iWnI<;1`v_d;%()&a;PB3l+&^O1)1?J`5A2lW)Yxh;hH9zd|*}Y zVM4_N2FT;1>GQLE5>tHwLXD=|((hmV6ez}@tGUs=L`g{C?)Cpx%YDOYyRd& z$-~nr=;C%Lx{&lOf8aSi26x6l-0z!mU%U#l)(5Tpc_y@}KcFtn`LD9{&?VcS@4xPc z^#30)nf@9|b{l9nZSdxs$KLeP_D8%w1>NHLM+_u)>hLFT0Zhj~4@9cw?WZ~WduNfC zp*};ry>B5bbZGgd?OGDbwHtxc2cGL?K7e3*+#G6>H5iD@^%pJ$?S$CY(HX# zS%QIspC;F~lYKEUQ}M75vQlkgpsz56w^UH+>b~Y7AZE~7H6OSRGv8{FzWHZB!K+Z8!mthvYBE3JT(`7C$``j%ANdaZd~qt3vjtncYm!Q0ZVX;GJ{@zn z%;36_O4e7vy)ZI<#hV&QBtnsC@ye2NtKPFR>bW8_dyn?Ry<>g*L;aSBqB*BjhdYg) zTq-dEyaqq2?QD*b_|h^hotXi)nK#f)MM4yN5MrngQZ!q0<91tmp%-|28A~Na=yJ2Y zayG%MOM$8&xZAI~%Rm?kzNVI1BtpAN_&h@2?yiipwpEynsP9jL13k=7k9HYr`UCQL z*(w?S)P9O@%V!vFC#yZXgtgzPG!SQ@Cx}^f@$Ek%K{OF?St<<545C-|VX#t6+$&qc z^AV1~l8Ca(JvHi{T^+M3osH!B2ZBGfTcVr^;DB3}oE1@MRiLG3z$1Uu!WHE47&nokO^bAFY!w~ zE(sp{cGD6xq^WBEaRXf-o-BBTiVW!;)kb(e5xL}m_*;msAjdW*dV2xhF)gWRf-+Zh z-3dS+AP(sc^bJ8OtDb}~3Dj)%1D(w4c$tEsl(KBO+IWAiA%TM zGyfEn=raW)0D)N}^v4U1fwzG11%aTnBK_s>P9F_{Vk7au#V#~xU2B!}PCdT9hia`l z(VFst_s>x;v4xKQNPEBxpviBX$r7|}UHQD_x54op2lGR!LlJpodF|TL0e*SP=%bMC^`=(bNi6K(G3tf&qK)3`gmbnqrt17TkOBP zPJVW{z)U`o|LIKK_Lcj7IkcKy_YiRwrWMNCXpBv>kqj9rx({mraTpFNl!yxnKvRXZ z6yZGN1Vwmh6N;<-53xI(1?wHr6|vxthVtY*3l5sWGHX${ic^d=90%_iLAA43jW4Nw z&dq~!cQ@~8E&6(sEyO(*dj{X`uRM$$79!}iUQ+wgYt!A(A-$U3KW-fpzJ=DnNU^Q2 z=YBg_^WDZ#wPkiu6j9-_;VESWA3Eii7Nl;M5CvOohN{GBS&=^`MLS*8sh>{{+)J;` z`L5ZXiiZO-$Ul#TRPU+nLp8=iT$%g@_XaB>jRu>Atd zUcK$E)Qmi(o(Kr|p>A;Zt?oCKAUSsMV^dwwA1!J+d6lbjvQ^9MJ&mT-H^F` z68rD)VD@T-x7VkBB&lSa;Oj2q`THl8SOWF}0pKPSN-?oLiro{d~?y@E_bR_GW83os=3NIr{31@k%b8&qGNByK0l|5%e0C2htQ}7 zciUqQ_FORSG&CX8Sq6~ChFBcv{Y!~_Y}x-haNZwUp<=)oa)s(eO~r{DSGP>J(mMue z5vOE4a*pCZH%i1R`-K-Z7<74icFoCI>eZq@NfIxSdv_NDho^Ch=YlT;4|a8#LCGy9 zfy>Aikt&YT#vD|t{*|tu){Gx)Yzwde0&62`ZZ>fgjBdBYOA9Ru}oEb^(BZSQ;COm+@fW zgN2!rfg@!5jfDd9MQ7F2N>HQ5!QBoPNa7mg+uR_FTryB7xiZ#mr9)C*?4smx#;@F_ z#;>n-E0Q%Jix9o3{Q$-EY9lqsEj_eYyb7t$d|`L7yW+1XUJaR9^gPim4cKa&yy}AJ zC>Uuu9aO0E2O-=%jQ>Ce{r34|_WH_8i;FVCWDW8ab%;NjLF}=WnzIBU8iV|lugK|N zNXuz$`jLP5FwCSwNGcHuY8@ZDIQ8(zhTjgmlX|nNG1d z6HW?R!Llk+-BD~Pu4Dk^QD+a_skQoKDU@!HJR)5bmAC&_5)-n4?ONBn?nz8}>o8x8 z&}~AmN^U;*u6(F1H8v`WYx9z)puAKB6Kh?{kd|K9i?qD2cilov<&Q z$-?xSsUC%{KK}^3l|v{y9~Eu5!lF{p7TM-Bo;Fe*H2KHiN-LRu3&QUHk-WeXRX4m7SkEL;9h1nJ${ZkHFOsNbzBA)r%3YW&vQX@wQF+_yH`L;L6j^HcQM=O_ z#zX1!$LSMoEUt71C$6!Vu2<`j>MD4MAL`s-9=xE`_ET`*yo>XxEcKd4vztm5W1fY} z|5#kuMe%30*-YuUKpw5JG(cSGu7J90D6wPH&y_(t8+c$dvPA+e@?QF&C}`IH zdd2z2(?!nPCyJ*-C@3P2+V1oLWIv=4wIg&JVFtF%Hg`l2vO3%K!r=?jTvv(@P?k7X zK`tB^ZZwK|&WP4?Myo^^jVol;^2G3y=nv$w;o)_c22CSoBg`Cu>VThZG12jC5x|y~ z^_#)& z59xL2LiV4XaQ5yXj@g)02+weWwk_#8Xs7|;h0d(8>rMKf&17v0>&ZtB7K7QmLSjth1}>C${%83C)gj%9~xiE+$3?n z)NKswf2B5z;c#|N*^f?m*+uvtKDDY<-gXPkKYUM!9d-yJbe*|L%7FcW}aKIYq?_J9)|+x9oRNixKpa zpRK%zH~2918=gpA>i{!gRzoGgcnFeR6?ZOzC7$y$9>TUl-=}I>5iI6)T=SkaJ7B$; z{JVz-@uLfAQk*6EKDu)+6o25K6%lZcnPW)Z9nI|L`l@Xm3 zVRrW|=e9^Syo6-;q%X&K@X%X3_zZb%u)lwzTCn;rYNNMw5yh=M8Ta5)vj2}wcP2C} zZ&IH|`O(WPz!)R|+_~kSJE`J$2Q0r8)sOmssa2&kbJ~T`xh~{T^$kKSLT^{l0ttTe zOFyI7656fe1|hvT&$2Hx1MA6+kcQ0?bIaPj>J143>GkLbllaADj=R(N2ICn3%_g6j^MKLZ|6eD{Nr)cJ3l{-TE!;e>2aQc$d4#|zX} zd+Zmlsc!O)5_(~{Z7p#NIA@8bHRJOh-w|PAVzwbXBV#voOz|Ovad!+RUmH;;76e|v zO)=r$TzyVBtBSlz7Y=TY)JPQC;LH*>2RdPKv?m;0GA^P%V66pt$I_$H$mJJXFuYD| z4-M8jF6$%U(ZUC9p4)m|e%MVLcmNm_4EI<>Zuwk=)P@HANYIt*f}4C3_7PY{I)6ID z6duYJ+XI%Q6ll0Q!6LQS5%jbemg7kak^Qa1;_e&!pw|JbfFW;W0>r)x; zJdeVr_<6&C@pY@{L{0p0Yi0>YNr7Omw28F12Vpalv321hRKDwdE@yqrL1w;r?VBRg zuQUQ3=zRLjp#CYpMiIWo2aMRowy3nl{-C(FM?Ms>L5BKgu4C^Lc{C``xIOe#X|F6C zHfjaVv#Ni1;87qq+%lh!S^bH%Z;Z}1{)x5Yf8!IZ&EHg>Rw;^-gv6N0^J{a;78~7n zh;Sb;=4fNv{|IOq={1vv;)Ewrgkve*HQh|JZ@=V@NiP%&GyM~sCp0%~F5IY%xx1H? zi6p(N6qyIue_w;^4+vf)>hBl18jwt}a&V$%bA4@rQKJYtYhjbD_qp+8QQ?dLpn7t? zg(qmMU&{uN!{HZTNa1tSM8+?Zj`re8UVE_8@Wt5E{ew3NjmZlCq~c54s&q1;{&yKb zc1zK$yj#t`e&Z{$;{l=7a2lrIh{Z{rcgK*)F9CJ_BDf9}`S1_pY_)#`!Ih@3{H{z| znc=B|cN0yh_#^t!(V#8#FdpokwtJOb<7drHx+$mnORCq14aKIQe#2D)7;N|#66i_f z4iFKeSr_6O4Wj#C63FkIbI&zh)a$?J-^nIAs;zKo!w>?FYl^^hOzEXi0pxWC*=W{^ z*O?Vz6P!2P`|5xTDu#G&+Uo_s+1jf1{uRJxe6NjuD>fju?K&TN66Unr*(MzH#^u1= z|6)A-8yXCpE#L@Cay{5FJsX94QLe|?W#BN>l_jb~gv;bMjhn@F--s`5gI!jFWBh_IF>pY?_EjrHi-97?Y1PBK!bC_{zD>dyG z5NMJ7MX5vSiCW+4FEhpt=GS=|ZhyqEzgfRHc%Xw*0+^Or$|gw?nF<8^KiJ_czVdN} zb5{vn)gPHCqM9J|M9#qa zPgMLyBZh$Xrf2@l;viR&zyF!KG!*lNu%jX%>slMk4K+4YHh1C2r*@a5FSza0Uu2^0 zMXFlewP`Fi zW1$EDonl%y!pi5s3PR;~zM@87)T&ApgtFDGCDO~FF9>W`IV%(qnGlBz+r9{_5e#rs z{S3n#V{HvK&m}}9a%5bAoG9dfp;tjO&XWxlLW%VV18c<wzJ3c(>}Ou zM7;5XwHq9xOtD?tyjL;T^}wjChMM0|vgqQaV* zHD7GcnB_dNghHC#HtX#*aRnc}GQIbIjJNVHJEgzx)r!T+5AteCXlSN+2)F>LSR*Dm zGi)TcI(3CyzO5N;GI@MYXgE&{pG+sSJzSBXx-0*UfyC~o#OEoB1{lzNXRAudP(GN2 zs0-}K7y=G^Gp%1GgSoj+TuGM`58g#A{fE#?{lA2Mv|OOBmfLrTBzPIq!Cg7g66(s? z-#xs;NBQouK?OBi$2Rct(qC9+Z(#_eD=aed>vF8~y8sRs{@Lx3>Q|Zu6R%xM3DFE| zKUSGt@fUkSRntB^7V~admU9rIJVC5;uZiQwgq>*{>6lqZy+?<6o9Qls_>#@3rR2U0 zy|Mq~;(hW>&_Dt?HYRPQ4@_S${PLH~E3FJ#?nV^mSG?}^ax5PnUs1G1>Srt~-NR0( z&<;(T(S+nj`Fc@n8@!+>;JQit&EcLgXr}QW`EeMQ=gcBj8DtH*7}`Wi!`wfgSW>go z)&>l%?;F-f0NJkRXW*w$DjT1R_+oaWPaDgS)jbqahKfEYCA!1GCkTDns%Kw`#Igtc zI4MKv$XyF=HFsAwp#`+CLria>lnw)bc8-t?Y2k4)8P;n z=i_x8wqA91!6`l%%?>?nE|t?;zr*aRvbP#cuR7D+1B+43ln30gCI{XfU8^t2a$qd_ z;shN}Ijy5^#bEvitZh@LPcu=yGS^QRFDVJHDqMKegr8Qm1J4k~zoVQ0p9ohc@E~0? zto9g9gGXBx;_PDTND`Pn+3}{NVOQI0*fZZ_AxYf!@Qo_)AdtPO^59M6pb)*?v)T2c zn;i^vzy1+@3FsWG-!>>c>)?4C2AVZf;{K4Sj;{qFdJdL|+>)s!sUsB}ZR1C}E&d2^ z{i!_j!gyEZ6_>Ln!vFCh4ei#8w_Vf@{MIG$*_ylli0oD z9crp7J6F_WtGWB=-4 z=8pLw2(=%Xi&?wKR{x~U%(w+W-sUZBNOyCS&Y!V51Ob%N1-?#^zi*yZ-p34o3m_{9 zY=jpj1sRZ75KgZet3_MnW}4^;H?+TSu(7;IZyx@IdxTGX7fy&;A0iB$)Un)-C^Rs4 zs(6Nu9t{i|)5I5`E0|J!s-sCRf*CcBKDmIRW`adXZ4S&rdouN12>_sYhI!9W(cuHR zH?Ct@(P;$+THCBXn5eZ$upacE?YSZp`8p=k^47fqX(=IX}ZfY;D`#!9yRkwRQQLmhX6(BC(3~2s& z2J$Av+4e12XQ><@GjlD$v@4-<{0QCM(Bh+r(ie9LN$4s>+I* z6vo@!t3pYOsyIjZSd3bVuk!1?*d~cA z)eGz_{bfX;b-h~Olt;- z6AgDsk`8mPRaZaerBPY`*X=fc8M8L6xu2J#^V%$tJpH`l;LUSGECMu%_hN1WC> ziv0K_IDk9Ppxs*_z4sNtlm>Vxtb3Rhq``*{U;{x}Wz;EOav$>liJQrJ^I#tf0%) z_irc%@X+<wBWC7su$R%`ESRzj*U5Q(VeWDF(qxN~ zmiSV~d<`1UH@`}id#*Gr&Vd$j#lZD^;Snpbk1}?5{-5%kD5~In~XisDzb(=DH?U@ z>GGFdTO|C{Hm|O{^-F^F{>v5<&bPeF9&yx^ni!m(p113l>_?YryT51t7c+WTwC^gg zfWlSEdWemLArmPUzR4n|KeTP4S+xVU)jV z3aQfj6)_|xSk+KCXs%W-`H{bo8KiX@`G?fiF&b#ijDn&l|4SJo%mB7}K4n23icIDI z5x}H&0NjH;F%zYqP5HUm({3d-|DW2#TF?R<}F+qZr7&I);8&K^T*XqgW5T=^-;@|-w#GWqBlt_3v3Jr!eeA|lLoaUYM z{iR;k-lK(Ek!y>Ohu9gu*cuCsb9#N|tTtt^UVDKc-_qg=@par^X>0qTtocc3>eNVQ z{gq#f1dhmXgZ=Zn@?2Bn=`8ru36wN&j_``=?vHmJT<+u@AoE>@Vs8yQuJ94ja;YiX z2!si#8g0gGWh6HV?;3G*SaDn_>)251ngYrcy(#oqTa1lZi6@!PKlw$q_WRtPBP?YI zP@uJc$SQ-;#B|1~f%RVjK$4be9`L<@f2YAkXX1+pX0d@W9ZPGg#5S?Yf8;K=GNU-L zXKj%!#P1BAdLX`^Hb*v$u6Di9ez7>h$>cQlu_sF{UA*6h4$dW%_L}HY%~pWR%g2Qc zBf)5!!C5f)$J(yY)sX-+<;&K&0I@(IK<=8vm)H@#e80D?gwy<@3=>S<&kr#cG-~tLLvYj$h0ffz9tyrgfBbE^uDsC*X+{HC?Z6x?%Y};jMW> zT!-FLp_+Wcq>b$-lMC_djmTnwSjPzh-l$sM{^e9_cUXHNBdCCI^s(erW>m6^4j5t~ zbbh4vXtH=EIz3*V?di$bGFP5WHE?G<1ek))a+N;@Im}9WEBg?QD^!jHGHOW}jr8@h zy0$?B%#@QZlJrvp0Yy!BR~m9%Y{9tLzn<%?*1w&uFH6C6Kw5_I$}-l5Yde=ZSx-y} ze+RG<)+`qJ|J+i84xeH^v(oksCrivEj%JIJR%q$pBQo{bfFIuXc{@7pJgk4Q6JVX#PcD~WgI3B{Bh zEyaLaD$Ou$Pk%LPu5Aw#{IP}b)`-a}Dt%iy0ACf~j*0}ZmXZ8oR|5^XGeQ!IEYg#d zR{%mST&7uW_3{P~13M7Q5Cu$VIK!NIJ^V#y0V5Kd`$+)!EzL`5k+}F(QW87*31+T0Cx_*pRzpBE z0Gz-0JFK%&0~gTsh^`g{45(MmH2;UcwIV0qEegU^eevS#0=uJ#R0fwE&1@vr^3s+>+Ow5gD5a_2O~R5&=4LIGZG1DcVQQi-XbMuk$0IM2u}mTfX)~X zOx*=6GD+c6fX~vuqZ(R}(K6&%b6;{hOm+>w!ZGCQ|4b0Nt_-LE`Io6DZ=i+z)Wyp9yPxG{xyhLHx zH5!t`aa!fkeVfkk=?F;ga2Eh7g0HkVp3sQ-k>h@({66 zEX^7E^P=v~*PME#ZBEVZ{FzE9BZzL&2jL7S<$Fyw@?|Yv43(b?CLfs8_>wYhS{|Dg zW^w5LIpB29j@1LG|MR{S{49%^grT~8or~$V=l}&*A1O{{f|}p(N<9G7GvNH(2J81d zdAeri$jw=Bb}ldJNmm7vV#?Yx2F_|H0Jwm?X&c$SF^IOoM z`#y2LWd=M8y#fS(=Qe<<=tr5s61`3ftpB7H^qiVKQFv( z*@cuhL z;mF(QF>|Socrr7vu*a_r7zW+i|MA&k4-pe5dv8=70Wc-+Y~P;0&p;mZvVw~T>HC9! zuo1WS;uHmt)L}*fqP&&lxMJVoGQIaw&;N6sd!3dAvYjz-Yv!p!L2 zL~X`gVG}G0I8xBT7R|9mXCEr-ZxQlk=;EH}Er<4y@k{rdY(#-B|K$|rbLW#l<9|() zA3cE?hU||`$rx!7=G`pXyq-rxY^&?Y{OTgoaTitu%fmK&_<_EXU9owLNL%2LVMn=c zw7Y((1uKv~Yb%Q;{Q^-WmnNK?ZYt}K^`zK9kNY>>M=~U8m@~59vyoTg zfP4+&Ppl~A88dx2mSDnRhPM}?-%CURm70h{X7kk)jaEzoxI^MziR$) zqWra*iiJW3W>=3Ezkp<2mDpY;ID75)h13dubz&G_N*G`Es!FHAW&p^L$Lk_<)lVn~ zUUlB<&oY@d)~LmRq?frAKlJ49H_^Gd0{QN~$4Z%ynoARy!IH0Ui~*Fw7*JD`%a1;e z$hzVrBx!W+GAw-uvgTVm(}4nJN@KH|BF?OUHvPy&&1OBiZmOXWFiJuoQ(+N)wfpAVnC| z8*3Btb>NMnxmqs$S~i41@V$kpd%a+#<*>teySiq6<)jql0eM+ro{6$GaGE@s>waF@ zobiI2dKraz7Rqh^(wN}dWmWQjWgwDW+WNts_Lw`nT%O?=*fM`CMHZhSZPG6rml%Sqo>G`dUgBlMaggBXofnlGi%CQeq}y9HtH&3%Awh zKvg*W6}B+f|6TU=F=hO5xWNEprpONE2-irL;Av~uMGky4VHyf|&nKRmmU<}JKapM7 zmFw5=I?ZO)z|a+eZQEWNO+^kCq}Au$&pggw&bIPV<2G3?9xLk0jtvy;vYoLm>!UPE zD1M!e5JEXc(|4*x8dR%=tHm*lL~Q!j6P8i@S481gmyyNODJ6`!kk zPPoQFRx?1rBxPo6zgGzlwqDqa0{R%-)3EQ8+kWOa42<&wmuGeHWz+;P!I2ojeZUn+kV6fk8Do=BxD}g@ zYgiePSrpKoaUy=w(rZKhCE8WD(vo~VPsMFbm6E4{-z7|FDq~fDrKiA9sisnv+=)fO zed-Frxmq1Z8(T2-hNJkk3`u*eaNE)YH%4c;P<*L?x+n*dliPm2{LG2S{j4o0K`Ibg z84$0$r&EAPzcfOE;45Vw>-P^FaSX@%;wCGFuXtw*x`H|!K~au>5EFGJfwXUT&FFi3bxA=zA>NVdfk?}4~I^n>m>CX<-@0R0(8l*n9uxB z(wH-wG`EIbdT$hq-Wooo(!%8Lv@=oWKEGF1Vg88e$IB0XoG%((%P=7nbZj`iUSGcz zhD<+2Io$p0{UdwtwJdY#Ec@xvqWH->I(5F-Jg<#6_fnb8LQ`u6Jlx&FwtFA^U4SDI z`l3OF!D%$m?;oomw}wypj_mJg&ZVvCI`-{3DaQoN7jOytR7#}6u(-L3mTtH>=X`Ro zLo>zmKv)`3wRJzQ$+A$#Z{CI|`ttXTE0;5StQj#9q9S3P$0)fq`2`ui zXT`mNssAAFZj@cD%Ik?4qObU)8G?oq#Gc-SWB9~qL_X@iJRMo80=1BjnVM4p7d|qI zotWLPKF6ZuOBu*FPqA+P0Gr|RR*WczDP*FLSU)lvQ90}?Y%Q2877++01Buj>zbi(3 zr7>{qw!2r8TO)SI!6j35P7J;H$6#@S{~H(RVyUj!Oha9}FGdiwrQ(UGfLzFcf`Df!X|?B>8uhW9mP+IP2m~-LLI1Gld!bjUdbksL}vr%q=7&9gJvzoe)b;Q zUvkCJd2@fJceW{SMt$M#hFy8&zKAv4^uvnjr%x_2Xg$8KkE4^4K>IT~?-u*jbj3AR z8|y~K4OzYgOA^hwO;naH2pUZBYLRwYfslR3%u&qANLkdS1S^B5jgz#rnkcvi1dC_a z)w{jNV%`wRt>vCSqov@h!QH=J(;>!A=rhxKHIObfKmTpTxli__<%?y7-#k)vk*^~t z!Aw263!?^8q_~EdI(+Wgp(c3HK}KOo#cBh&ug?1JFa2Swmb&=t+gQizjc&(Sb}dMf z=b&7o~G|97I`@WvLIGe;@93_&#(|VYhBHR)`W)<@^EOgwzBcOR&tI zzED4!6-8q?y43l`+EAaHUSy=mT28-FE-cv;9In#|&DK^$o>Bc5R05(b1-^p9?|_V;UqJ5T@kd-7jZY*D6`B)P1Zw)u zjlUF1?-QrWa>}og`St^v``5(3J3d6&QQE4F-3R=clHnDYTQ)3{4>^kubo9>CIcsau zPeQHFh$?T#&5v+WtB{hb2Bo}2h;1JB;K-8B4bmUrxGv$0P0tU9;4rVDbD9BxCMOh7 zjDW&YhjEa`o~iq3cKlYeZsoalV+eOGYN*duGTpTGwVUBkOFB@E!Nr|$60ibU&~A4h z;XLa(QCOrSRc46CR;VhE{Mo2&hOG&#K9aaOW#W2{$H1Yc4WAo2@=}~@Z-eN_yZu|} z!I^ZfnpJYca+~FR!!|a=IqjP1wPA9T7l!?ou4J0wzr=QxI0rUZQVe|}>zB(M64#b| z_iFG{F?(H?*viqh>YjO=PBkVwWv#)(UwbpTyl^G5r9r7$r&Iae9pDiha&Hf z%s(A^=QH!5t@c4`47~kyNZ*F)x5TBjFv~T)p7stopVl7aB)vOm)oG%yEW4dWnftW*tJV7aAZWR9;#okjuynBW zGvw;J>|T%C52Zp&O*JA39Hz)Jm21O)JDDD4BB-;(O1HoHjLEn8wQGN%d|bn55P%vy z^oEDa3@YoiZ?83*Au7Tw8oxJHO6>iRSfNO-S(kZuk=MDjQWB+6u&`z%Wn#3I+sxZl z8&N%az&58spYadfq2ng6H#BCN?(e|LxyQ@HA9+BxD`SnPO$}x_kT^aIuCfj1Jn zlXrq6J4cTu>1rGUW!>i$kFu)3DC_%UnVaeFeo-)#zFgIe8dJKF9nX>qQHV=e?OGiJ zGyhQ2#J1_(326!_u(y0ROVp^GPM#rMK46fSF<=*Ut2=$_n5SH_$Mc-&A%D)djeI(e zohse#3sK{?EyB@*sebIesSKB?ss1@_Pj^8hTeLYXRDSCb<91bGKR|0rmiaiWz<2U9 zovF^k5U;pr8f(;bk$^#zcl%ewEIvRNv(?I%EQUMz-V49M48O(T6pcj&vnluBlQ8^CnH|{X3Ei3 zZb~KYQ2!+!dLSn0L`81z&W$^@O#pX_uH$+fp-@m9I`p**_88;2Twp=~Lj5L-YNo3m z_U7-Ui@z>C0gQIp$TuyjSmw&4ze88{*n}*Pu(5x4WBv(k zdUy+-I@tG~YSLi@@eRI8{1)4MANlM1U}FCEoK$fioFneyPZ0LEb}eeVoI@umEV#?S zy|UD~1c7W4raY(7;@FZ(P{<-mI(xfL<2KGqeb)V62nGG@UWtMUN6|auml6oF*+>l1(GE*NG~% zUYa)BaYT}pjV1u%$CHA;HcvXE&e(g^{~f=?{Ns-++*zI z&#Q^izXbrB-){Ql7>}5w*rk#C097zDV+w_FKPh-zY61UyteAat%7X7){KNbvBj=Vb zvlSuFYMQaQvpsXmCrh;tV=e;aSmOhGn8xF)BIx5WF~+JRhLaMSf5O=KjERBi6Q8;k zQ&&F*E>1iI!(YXT%?uf?E^;fV>ozLCk$rCsh?Y0{$)IWQl9<*Gtp}5l+Lqog4_9cN z1DHu9o82t-EjBqQjf<=9*}D`xEZ;W&GNZ8|9ZB^-P+n@K4ZtO&=)Y!CE2)0LW!}<- z22nx_Li5C{9V7UjJIew!eMnHr!&mn4yY)>H3)nJ_?vI*`i}YA5#HPliHzxXvy>lA= z39ffrd)QRf z;$DtG8gf&9>=D<`>OuH}sG4#zC=_4_lorVsz+Zrs8XsFH&rIA)60wAz;Euv#Wdi4d z*hA%fC+2eWVq>>c2U+9~@BzO=>rA|G0+IX1o;R#MOunJR259K<1iP3Ib2 z%1K%6%dMIAkwM_T=_=@g~ihb!^YL+xc z1&(l@=dP99ex{zEE@_7)6Dtv07rNb*zm(#SAk&YG}&pGuHaQguAL{r;n-kLSZh$mQ7g`BLcXstQb-iJhfp8T(0VDt7z}$dUp6xl?WS$_RJvp4C03;SJ>_UDYuif6t@wMwhp zj*gqxhoNg_GECI}$k1*qU_mfB4>;J4U-^im9+ul<=DC>m=L^J({kzsKuvUNa2_Oj< zxNYc&Fjz2ipCE!TSv&GCSYQHC+m=E!+_};K{Ho@S#9gE|Z8fYYAE=(^oO$-6d!r=@Ot0 zTWfd=6qcB-2lp3Vxe5_*d#m9jZrsv{&Qdo^JN1FQa(K{p0t*@gFBB&TbghKG&9)U* z-0+vaFZ*RuL~F!BY{mD-=kbJOH&@6+;|p3EQs!VCEH1;=sP2e(1Lz8GC#} z)v^mf`Fvy1l?VE53z2|jo!d1dKkEUkE&)5MhKGD;mv&Z&!8uZ58vK?!5TZnF0 z_Zl9RU^iiML&sidI}tLaJAppgujq*l^AJ>KV{A+m89O5ko?xv9{F$FS@6g(3u8s;(i+b zyZ*uNMo@8@Wu6~7P>)EDYVwHQzxG)LcH9W(lR+sX%a4avA&OX6zFvmHKDcQ2SX5>} zqp}?2$l9NXvu=}pvl0U5#E8#qYU3oemSMqI!~KqLQgWX{evBtP;Wca69O(M?hy1LO zy4hCnu87t*PLi&cMfz7OZV<0UyULi6yWlHJKAAsB^jjF_Yt^^3KO+r7p)Fd8ff%Nz zxd9P)YWP5g_7d-?+PMLfrE2I(+qKxAR$ojrGWFlt8lK+x+E_>b{U{4TI%E}DzT({E z2hH+IUV@nY-OtU*u(1w{4%vXIdwtxGApEu7U|2LW8T_og zjKY1gX?g?S+eme+c?{S58Li*Nrp>7swz)d5Cx8DG2u~hW{{+_?PrzGLv34`vLW8&& zbz^9glJZMj{o<1>Ey3!8F!|anQmF6!zM|>Pt}YHHvlJjn1f)Nv5ESDEg1P?`$9X65 zPjMX2$w-qsf>V$#N{Z_nSL`1Yu7aBnboH6=crgYB2AWfN*`L(zC9QS!&HrI?`TtJ> zyOsE;r@p>EK-Ta2gt=?TJRGK6frR{@M0w0)wG-<7U7zc(NB_4+ZLQdOa(yp~i?$$N z%AWng#Bo2I36O1^<7mmH7KE z+v$uCyJLJasEl=E=h6Sf>|O3M__h<)^?z5MZqZW_UbW~R-J@Z#v>&UnTz5!CHzo1A z=l6{;d9+-Z+VWY~lZ<0|G}Xn$H-)NnHah~o2cIlpk7)lkOSz$--5My2X^5EU*h9pU zbhqx}Mjb!54-3mF`J!>c>;>d()1alZW;-F`kY)F>L)qj_9maAm9h#|(18y&Fz7>U#Kc#wR zqbop5%ID@l#Mc~Mgwo2Tdjy^bJ5fCu%Zuo< zfOyY-9T=ZPKC2Vj;yOQr+CoWw*wF!);nl;St7)pHb!qQcTZP>$BLT|dlZx;n2iphGNHcNR$MYFIl9bhM^TZ=-(NSk%sB=X(Ba1^F)`bU2&Q2`%oLa7^{? zufV>7%G|-N8or+Nfonh~4got`O?EnM{DmQDK)Aw5`}eG6a9tCZPlpeHSJnaVNNDwX z6+&Ul23&cx*mU){{#fq&zq0?Bz5f)r&MmVu)W-e8*gNR&|G5U?!c4~#a@N1S@C^tc zx6`J9W++^C5DK>za`KP6yvdsAn!b2fz+#E#2kKnww|ywJojfSPyk(Q^$x~+!7#|tB z1sq<@h_`B8Yz6h@F8f{hb4=U+aGRDtoF39JAiKIPs9w=h>n~~uoo|jM! z9zG5ZK2}~vR#rY%R`xqc{r|Rsx#fFfL#O|F0}&;vDPRNQ%OfbkjA6EDZ;Txc%xvEn f*oYWdz>LieUoViF@W45H@Av)16TjCdmlb7pZacV*jEroj>_w?7WMo_L z{iZw$a=fyE;R*4B&4yfsE`v3mKW42N~HCUUC~GBeUTm zBOBHxBNGlKBcr_=k)te%ACT+H$w-l{6aRai|L!?np}c!h&5Dd{|9j%k27To(lX!8f zwXDL0t%I9sDcC3ktS|cFrQLcuinjQG3%G$#xR*0{jp@F}6cesSCM$LJntjV?yPcE5 zJY&UFsoaZo$l(G5$nYN9c!`&oW|`AT)BGnD)ry5XNKWH zvD=R@{rw7lC;7(f@7IaTC;q<9w2kKJ->#U0Fp%7K@HNRW&i^R~Ej~$3i%@%FE09 z3yMqLSxj7z`uA5g4I|_FPjbqmi5GM_@*Hr1Lf4yev^W0#yzGjPbnn$e%z0m`s;Uyq ze<|6q|GkQrmm19pn!is={rx`M-zU1qSy@@RvN#ZB+F9@_&9HW3*YNPAKf}Kq))og+ zQXKA=nA}nR&*R^t#hn>U|E^@y_#Cj8Rq^gv3xASkZuyhFtg4^y9(~TL)IZ(#ZT>r} zkPw}tqvP7z@`Uw-QW(#pxv|zxJ7+t)d65QZn(A#d!a_pNj>%Asj*fnPB_h!GEo30t zU%Y4d*GB`h-=ocGY`5|jo=wQxwio<;08zET=g%prsQQ0bK5uGj`jO{gCGC6g%V*18 ziXA(cRgyF!L>&Uv(hQzOM3@fs7*M9E({N}NM8w1}*F;Iw&JL0Avz>oN8d*=C94Z(| zQqQV+>z=c<-R07yr(df6vlzi?X02xwUkPuKoaz5={Nwe8%*@OKzS1AAf0VB9qu(It zFwN|`wrCh^YPGU3wXm>oIs2YI`HllczJ~~;Q_3qBE4|&VuxqNqidg0p?%ieOf z)&Y4tvCOQjclg|dn;B0F*VkTR%QpqQcp(+Sp?O02?dA*K`;Q+v;$}5aGqpTXI5XF3 zF*8#uarK=dJ((Z9h-Xw()Jd~Km(`033jBRD4eA!kdG?mu_MIwo+ptNVBw*2+=^M^( zawXGLEiXSmOv1GwUZYlQ{_xc}`R>?|TW@b>-1+(8x;L+3O`FX!UEfu_nMFQSvb*Gw z+UL7E!PnFOv&KTUqfI(X>;2zfHfNa7GP$78a3NNX(w6sJ;Mde+irG0tWm-|Ar5N>64b<`#%COOta zC5ZNkug8=kMHdzqH~ff^-HZJy|Kd%Xb~}pk&duPr7rety>Hm0rHt$b^`tPsLHo1B3 zJT#3x?zG8|l?&0;585AH9VH=g{o@VnEJ;a%+q8)bN%1KyO|R5*C*JY!$B)anh|EYs z;)WAysmypXJ?z{IPAvvE6)opqd?fk4s-VS@cU zWtWpQvU8K>@rb;}^~^oJy(y`wOgub+IW{93ckkW%+`MAC|GUZk^`G%qUz|`bNoPBG z@(J$t%WO+sUEQqf>C+!`{kV-3#qE}N|1E33o4bdH@5>xZSJ$InTN+7@doyhw%P+IG zvPg=xxqJ6wNQL7>zFlWh8M29qpMT%O;vyt^_WeJ1f;UrkAKmzfs9BYP$K@kM>D-En zBoFc#6+PIpo$J63A9|5s{Ay=P2e!<(?(G(d)!Dt@UkYsPLf%|bIk|4u5{3nMbMDaz z%^bevxiQE0^k-NZ9~K834?6v~fGWiy)7z;}nAXQo#>dAeXy%@2U;gz`1=+G?^JXsF zQB?%WgNF|{A-tJn{0`^MwU`XmYv$VeA_D3^Tt6MmruN|7JJy<-8nx8gFox(KMtrFz zjT|ehtMRHSZ{v@5EY1wX-^@6LeLW`QH`(hi5f~6aCW$oi^7Y+PztKm)qJ!^x7iZy0 z3HDOnSUuy;7auy_i}Lc!+}zKQeQ8E@Oe-rZUVeToe0(%+Wo1%1b`$1zBEz1wX03BA z{!Ra{X>U+cY1nVh`pvJm79oLjMb}qmcID^0xslyWH#$4kl5tY2K=fNMd$dler(Mj< ztym@@Tu|y?bww9WPE^ z^(=5+=5b!K#+?)wxo=uTE?$(CeS>o2H1&m6Rb8E^-AnTmwOB6hgTCozt-;)S<=SRu z3fcGiLIo|Eus}Ry$g1A5CwraNSLf02#M z-iY&d8;82L7f=*VS7(FIXV8lKGU>EN=nKb z+p(6PNt&(o7aV@`h)Mq!iHN!cow|O1@QDlW+y65@spU9*`m~R9bgcK(MLJ*UgoJTM z@@uaz|4pSxH9tQ;jRL2|_?`O?`bwii`b04Zq#Jv)83`TEz$D?Ybum31I z`dCs@(!9dQ|GD7%k(9qdN<2Zr{h-bJ;b?|6Y$eh3mYouI`7}?MDNzGaWlN zH8quD&HbMn799RBRQX@<<+btAf7a~5|I7Cqn^bein1b)ljjEv#Atr)3wxLQ13JdoP z4~NGtvaqn+TV48Nn&R&t9u%}s$g01rqoX5XwmIHB@^`BGO@omdjaprLi4Qpha(c!p zV|!mQIN^D7=)C!e^TiXLW$mJ$_j)jDWU%GN-PeVh){7&oJSvd}Y-^`7};zg{)KH99D z7`{S0e&pfiF(I{7MFTymrP;o)y^M@ei5xDt|KI4RxF*}TnWaA?wbx#kYIA8D8dji? zO}spl`|JC24O_Wy^6gNk=uUShvTWj5m7c>cpiHuh> zsz_zEwf-Mfl2grEGacia@dkHy_tDm@2|s-TTy+&cRJ$)~xFx#oYg39|O3LCqPXIt| zq~o|yIG^!36lgY0DeuPb?d5}mO)1CFW0dAQaQ|xQM$|<4Ky}c_vww!_`u6SHyOx&4 zb#+rI6Qw|#6uWkTJ4^%W>8pB5tgk$u8K`}kG%~+u-@Y#^i!%z1^%~jtrrNA(m6LCY z9X@<`Ts;mScqRTy><*HYjLg5`keO{ZgTO11e*z#u*naZJMB%zPy4bPf#~<~4@t&Eg zVC)?j23?Za z|4xaKtR>y}JRZQ|&o33moV9B9&iPK)T9f4bxgV{LyA8H%tNj-=Ov%VN&d2xS>Aut9 z!TC$WAMG6+l(Wn=4Qe7PQN&MPdmqreMUc3){CNiK26@r<@4j2M?+*wJ)V&16dbnU^ zS`Ns+5+Dh?SJK*g$SuR9kq0n|z!oVf-R*Xrv8cjiFHWoYq5bjbSJ9OF(aWKyEOb5G zg&wvA?J))$h?ZEM{t9ra-1m@-wKd<`+M3hMcY%Y|Gjz1n)b41|Tei`3`Ae*IJ)*t! z$@*EUM)IwE`Li(|9-D*N)yt7<#%-TdV!aJ4otI`Stpk$L_T%0hz;d}KCnsOn_(&m~ z?~Uwp7N_Y-R<-ct=g;?IOIY~%gPNLD&scO+XLY*BUB0{<%_wK!K7fM9qetxmmj}VN zfLj0?V<+f3^zhOb*0o!pAGwQD2Ah-Ue4 z>#jY!cT0xx=o__t<|a^vVNHa8qA0H6w9x%HY#WV%ey?EKTWw&-V?shA|6*p6z0IfKwVB3J{eL&55tdVh6TDHt4?pxyZ4PUm@gE$2V`I-O>G zhg4#~8Z8HZ93|OOF^UsAxV@+@S_VMcB2?U2SYl=JeCFZ(+5kkrmSJJMhWBO%l}XDY zcH_6(b8Jl8bAoy+{L@UEQ>~YcWzj;MR{u20M~S~epx>M7xj;%iBw#*Sx=Uj63#}Fx zf*m2vTm4O&D}Yl=9E{ErF$B8FN=D0h>o*WJ@hk);!DDUu1WcE7E5E8y%T>Y2NfbM- z(~zJh|MHA49k0P8Ufp1v$ZJ8rRVi>iQbaw|R0k{}t}m-F603kJ%f!s=0j!ncFw>vg zAEum>>l}wzRTFvw;_%TW-N=lNU2O%zRW|@CS zV#rIp=G4rAGQo&AR=9jQz}QPzU0r=`zHq&}ukQk)QZ>u`)ydAO-iqGd-t)K(IxcOu zA+>v0p=%$mQR0nA$j8OnWcBx@78e#m8`dXA)CrD=e4m_}BCyc>=yCgnNgZHV`JGL9 zd3jBrbT(z&`L(gjSD=GnhbYPZ2l?-CIW62hc*gW1FjCWJ%VT4$Sp*-So#>Rf+LvoR zv?ozLEAHH*Z74xuH|cB#f4HNnUQN8ouNWn+U~0++_9Tq{kJd_nb~4+E4h7$X{Pw-R z0;%b=!D{X$ggSCL^>(FW+|=YG*+p7yu8M&u*P4Z?-sViRLttjn7oRcBjy69J4Lv}% zpYxVH0z;wI9J~V19gF!eLda?l9bKgyXZ~hMfN9i51=>*KUmx}X8IZB5rFvlB=tV?C zP|;O$Z4=}F9F57KB2YAn;=R5q%i*8#Y#)srrek7aJ~=JkyP0WP`Hi!%8nTH3Z8idW zX6Rj1s!l0+rg?k#c(>ztTXuxFb2u_E&3;O^q@;u`|FnVJ#f#dV1rgE=%W;mNSb+p+D3h3Mt8rxD zyyt;om_{hO7$73q4)-G%pNEh=?~RqE`}Bxk;a$Ag%ny z-nry4YOq|ma6uWYm}Gb@MfbwF^XC^eYH0}s=NK0` z5pB(?81Z?)Pz|CV%AD`x$6K+Zh_l`F^a_w_zP=Q&@N6&rM`9iyK#yS+6bwbvtNW^;Vk)1tz77E{j-*}#)qTiUc}1hAb-_Q?br5G zJrFKl0LXaP$I88v%ewRHl*>Z*)+1xtuhHXH5DC`fZFJFf7g2!HW_iz?zTEU)`52x= zt-whLm^e3jc?!zoB7|_L6a)18BA=m(1Gk~2n#oTD0aifsP)0=z3=F($XZH@FXZMPk zz_xhyG|OJ;OD|5i*BSBIs1@|xAYF4q{=}I~*^jpgp?>gJK56?!0A!SEOFO%*^*0Zc zfB90EsxPOjr$-X|*(tuilu(26YoJwSQqgqW=?)4FC4|d(jqFt8Ku@eAYHM@06>Gr$ z-QYh0i70Q|V_q3%t?e>)pF>UFvv+T0&}o&N87|auq8u9<8ls(-4w2p|oTq9#Re^<< zFBCo7B1Nr|e2d?t#3#Xe`G9p6z(DxWH?oWK>!ZWCyP*eCXU?37E7}_{-pGSigr}{p zSw`$bud(_wd>s#iy79rd88R92dYFEsO*qL%`WUz%ZbD8)IZhu7T|2fn^1u#HYl*w< zoSM>6`cL*8UqEmX(#GXC=i-X;UcI6}e(A+0>!2s7r(gHhG&BSQyw{_M6LtdXxdWj2 z$ty7w1GQ1Ca7Nlqxi3$HYqubbitm>BWUkZDA!@gMQG4Ij1rL{ zS}t@8b`8BqClq3fZ688QjrfSiQH&Io#jjf4z1xM>MBp>pTlO2Uuu$bMXlow<&W}d$ zMhIFyKzu>4+QFgmS<-#umJ>G;4q#C!_p)en9gyEuu>K1L4l<%~LjqmE8F5|QD{0HA z3r7-P_M@E$IxnRUofQMRNBCQHmu!J>``KwR_2lZ<1|viQO00Y`?~M0@E?{x&EL#(K{hc%#F9p zVJYjk;PHFLMLP1(yg)QN=xcXB-o>amukk7%Ks#sanuT6+u371?U;E%$;q!Rf)}USz zrNFo`iJtr+5exv57f{6Hi$7QMymKOhd>iY!z7}`G-|pq!&0N1m5*gPxH9l((x7#~L zM&*N%D|6-a|RIC|EQIR{0>h=&~{;Gu)UQmBjDw>$?-^wx@#8 zH3r4jv?cus>fMzqR~F#eDGWurt~msAYSj=~Za>9z`bNU1+40as{3bB0C*)Z&p#AS_ ztIG;!{U#?TM4O-7TrKoVA0|<~Ie}ANHUV+a3d&Ki}Sf@<*|A=W&SMs8_v%gI;NAyj!UblhqekgWObs z;(f}@EQc_MPep-%;;|KN1^!;9MW^DOJHwh4LylKg=G)MF{fAhFfCh(H@*Gs@oP*Iq zj>D)xd-?WLY!LwopeOO;$G`mIEDfX$8dwS-`PJmtz#=JD1B%275>5jkgP`@`?vp1^ z&Z50R+PEERC@CqKL&;|NJ^TxLf)cEWO5BP`W73u*f`UynZbYkx8xl7Va$GLB?U@DC zn3J%6z#xtV?AI7+$rzzOn~Qzmx%c~GxeuM*HmOLI515F`ApcuGuv%4ZHQsyn2FR5g zqss!pa==Ku5LJLUapWfn;bXqtPV(lY4Uju5yWh{8Yx@5@TY5K5#0LRT6V%cOc?^}2 z;L{9Z_wS;lkW(Etx)W?{PL>2=j_qdpiBdj-GU3k>{e+01;3T+6jAOF?w_qoT^O7y4 zq%jnP@3dM@#rX4V+*w7XQRL=keFG;Bho$P50{-I8OKnpw@BH2~_&D|#?COM-R-dZ>O@61*9a$)~F+iLIJT!05QI3Q$z^p(WO@xG$zdch z>j3{98qi9@9kttGsBdQW9et>pkhjo!2;B~y(0cgi6GWisWwGqs+?Ur2c1f%Rpe7){ zFQVNHfrAn{8+=`$5#=NeAwn7bQHJlLczma<`0S`ik zAOka4S?Kjw6BbMJ5(2=Q5FT3?gVYnjuHFzKZ1WTW*CEiJ_=Jz=-sz^9glu$F=(>)T zNj5XgA?@|m@ghI6^{A{y{w>(|w{10S9JpO6++Th;)w-+{w@pYp0pKrbTdkoo{`>3O zx0ZNiH*jDWA8ZZR|6|Wc@o;|I^oVKND2%t#!>dhpz>nA@QEzKTwy-z<*MC2FMDXL^`)r;PB8&xH zs{2ds1?Hg%9VQFy^|O_Ac`LfPKSV*?Z=m_*`vY1 zVL7~wX*VnU-*Ws*9(vXu`TY3E?KAz_@Ex5pBRzk|@28`~h)S(9>EDKusU>wfv<#T% zCwHOF{(t$N?2sI-B=g6yj(pf{yZ`->4n0_6C34=+aPPh7j6Mo;(RoI`nr1o*7EV{o}`=bp6A_!3IdH z`Lp$MpL27cL(RZ6h0cvgl+)uVj{vhFAf`lJq+$^Lik8i;DKH-d$$f~42)KW~Za(A0y;}#jVbJF=*>yJjjM*g!O&ji7S?Lu&*y3}5d!rjF zP(5ZLt}cBG;ncIRs6`nN0zl*7;Mlx%D=FRhDghoaz3{~_%2}F_`KG6PP%t-Y!_((8 zY4ADwki72o*-cRT7RItV2itQ6b{^z=jjjVFl8l&}@n;a5oSlt?j@-0M-rE(T-EowpdFIIFWP4%4>@_<;li>;%s3u+xOL3GDDGHB}c%4bkX!(D8Txy{3V2iZA}& zEA7v)(+%JXOdt*|olv?7c?%yyDs**qSsoJr0IN+mCXt2m=x>Aeq6aL&%?u?Vi+h^LjCW?Q>TT|pUAu0y%EYbSr??_ zyl8$Ml*LL+RdMD`ZY01F>Y_p4GSDoq%ZfdoOd2TR1gI5+CuSCw^3hjD9eF}zXk&e- z=IEK*+@Qrx0hzq44`Ndb1Q~l790dOz$n9lAe$X7Y!~l0ljI$g%bcnz>5JWbh-=eoQ z{;Zk`Qn}R)O?0#+WBWxDo8}}<5yDQJH$3?_)~AcAsc5hgSsH~dVx@d8E-r*rjtLQ6 zt^?H^Qs|VS0u~GqF0>(%5)K(UVt9T*e!iI7Nx=bZ+kNL{!3S9#g&CuT$riD`PoKU8 zrTv+x9s-kQ2Fi#Y-$4cA?KCH}mkLqbuyBTmP`I;c)pU`ui5x|2gafd_NsZ53`%Yc6|E>Q*W&l0Xhe7P%>5n44 zgV0cWGGIP-6wIfjD-jH2e~o$UBdT zlmnvncXMWRF^5LzET^u2xP7V+EQ`x^&50DSAy5ch8yL+C6C(i;5k3e=V3;0k%~4nd zbV(wR$_bGb@0-1>|Jh-N1&v-G7lOst$=hCfcw*XK|Br)9E-^wiG-SL~JYfrxq6g)8 z$Zr>h8F4RL0C$pl`zZ};{@ekL{rOR)w*G>%0ruS+(BK{OZ^3JVIc{do z)QC*n1^g!Q*Hu+LMcR;1C(_2hKy4!=C7?Bz!PGXF$Q|^;F94~#ap|E`fm>&}=I^Ol zTKwtMyIS$$Yg%Q3WH(F$_{UbB#t1Hlq1cd6E}e~-NaQo=1#5I{C+69uupEo zuFRV(+1}LLOek-Jkpcf5oC4EV>(5lG9&M+6uaV6IojzK|Kh>!2ZLWA(+ZC9r1cF6@ zB;*K2hsEDh3mAX{h0U<$PR&PkBZQyfhD4L0x1uxfG-WX;LI+F(S+xs!0}A*Mh<_4j zLp{fSdb8uTfki+HQ2QpaLOsZs@{l7o5d9TOGxV9Bt}aQ~S!|l@)4Rv*@}GKp>!HYm zQPE&lW6LwfBIt)T5Xg+cN&#(%=`aYyyr_IhT7~9wO}({&KzX5_d^`tzM>`9n-~@H` z_e)RpeBsp)U}AcJ@DR0rJy|$V38(yP(CLuakJ1beVki3698HHq_c)vh+jm0rZkMFz zw?wQdz^IVTFb$M^11))C+7Q)$@%MA3h0(NH%(j%*)jb0p4BPks`TH|L?K$$d2Umlr zzFG%G8Vp-GmINyOCuo!rBN;bD-S*(ApI^J9X z+($eXJqiBl_@n2&smy~;&#HH6cZO02jA#OSwZnz znI$Qq#b8AD5@Z9yvj;RD0GV_`u|mftN8n?`l9ZV1Fk?U{D3I?#CZK}4gPzFIwvGW7JwS+?0*48FpVGScz zE|^URDMm)<@xa=M2RCR|cw&#okI_h@#^1PLfC-ZKD@;0WybC>!7L%gYc%;<6v&1n(SX3&v%P#2@o&B6{cTww6^Nm3CoZ_`G#AmnNI(xhZ92`~rv zp__oO0lBM!*-h@~@H)CB zTQLEG3E3j#J+J6E+~J34Jt!i~92|a_2Ds%o#t*UAvch2+ep~oWSIs>8smOuq{AsqU zaXzshr^5_u@*}e6E9hcH?*0D9HODX+3M(l^PsSXpR*`~Qr%K}92QN@bVzms_5_sY* zs4Smp)9$Ye%@?I2MGe~jKyoFdc3tp1^J^~XFRUT-L zAc9o%!eyA0lTTv+N+G5v)>dYeAmb=PXvClm4V&t2$mYO?n1tO#Xy)ku;nN)08|Wh& z>kU-aR_8kvz7Y=y{;Pk#9V{HZms}D_Ed&t*TCpxVDKQmDj9bH$uZOjN#;nDOcMrx{k)0z42sMaMK9Khi@`KP6d&b8V2^Y2_UnJm+d(-LzkAQ}^lhDY( z_bd3Q)ui!E*{G5bRNp|B%v)buCLkp&Vf7s0M?T3as0gp&DIy05(P(<0mQYKG-i&&y zyD-@enLKp77YRdH3>Nu+_9I!l0OBwN`oON!IV44|qGxREJ3!&C7@H9wBL;LH!!j>w zniH4Z&@#g}y2HpTZ*C4F6w9OMJ@4W}txIb~eZf46iP5wrJ$uN3C!mA`OwDJb5HHV9 zyd#_<>`+Wx91+v#Amv2e!90WG+-RkB3+tmgBW6+2i0!l-@ZDv*IvT%VzUMO9GO940 zs6AJ}lqC^rD3!zj=|sUY2OyO$nvI>9l6gp-kX5qim+5gkPQ&q4OX(qEUIM_|2$i2O zL^0ci5eVfE*WyL|zN;fE!p@i-#3&R|I`aTj5;U>{y}T%n^co(cc9_P1Cn1YuTlSKh zo15EJ+d7TZq6MCROf^+?I$8C86hkfqR2IdEuZRG%p|=g1;lUq0+~SpA*Ppzv6Y5zF9ni~^P=#W#1IH6p(X3Eur&pA>8ok$ zfJ;{~v|~HoMi`lxR^qZTnVOp;PLAyV_zuE7F&c}VYASSHr~g)3S{kpJn;Cz|4wDuH zxWWy9Z$5xs$MCS&4ZV@yq=7FHRd1U@uD5nPOj7{Znd`1+FIvB9auHvY!= z@3r@r-O+tEiT<$HrK6t+6lAya5#lq5qq zV;HqsE+|dBJ?l&bMEnE}7MuYA0Rd4lF(P5{7t~hRc?u5tEM~U+aB@h0;+3Mri7)~l zMG8~hcGApyB~+n_098m_hw^wQXCNjbN zf{po@E;F+*qb6~D4#N-E5>)Gc>h2$3HDzXku9U;j+R`!&(nAm*^_;xsn!&ngxC`Vk z`wLCxl^yOm!;7Ws;Oo3oxy^Xj$*i39NKE=;E3H5?(6upe`#C#1tbQ%4H8MXxe~4un z)4%p;I%U{0g^Bh&hv#UNU7%gts@m=?@8}4|v?<{op`+-a0@#gy8*5Lp2>OHjML&r< z^m24=mB0+(SaDjXHV_@J@$tn)6%Y{l=W;7(F>ILGz%+LK&r2{}e!alp#F=((mt{+v zWo~FLwJ657@7U}N;5AglgtGj(a}S2zP%wHf+b{1HlUwNFaH$3-xEkDv1b5?qD2^IJ3fb#S(z$7SFtu^zllEEhrNL;C>2)Bs@q?=A>DZ1m zn~@t=?Rr}0`{t(Ga~wc~iHTQ56~?SiQ4t{_0%zTF{&QV!qGfM4=n70xW=+}}sMI7d zD?-cw5=6_=%cWlYo_0Ii^k?bT=2^ILqAF?8&^k|U?q2eYXtdtu zF2Ynox5nuELt&fY%Yc^h7OilzP!#qaJa`F#Pd4MvU3sfI`&RpS!!A>VU|jRhWF$%w z|LRzAZb z+8x}oKX69C>&cThz}0jvQ4%9iguW2RQ>+IA;)5Dilf1J;pZ3;7SV^ZcS|$0?wKH~h zJm8GB#=xGu9Y<$48(Z{p@p|Ms8A4k)PAc+>(!|$lru~pZ_C2NL1k30``5JA@20Yx`D-LN z47Zb-jRnZ8PsSt`Qq#%8^)(TYy;8te6#q$7>A-&tiK}Os^Czm{L=@`2an4XS#2#LQ z>MmR(xZ}I&Neq~x@A<*7d^vmqqbo2+F9owbL3szW8HHCy*gxUnRp5=Pm|b(8NxBld z4Z5p9U#{!A%YF_GiWr-yPRx4(U!o81*}vc5CZ>L!a2%*(_D3Obc5Z)E-4sW2ZT>&p z0&DdfFqt@B0cgkrPzBQvXh&5|t(`hOn-*;WwE=9**I00?)xUSSxv7a@{TLpA5&qhG zs6H+w4qdAfoNI#4P4?nNV(b?LD-hZqMvcMXp@!ixFp6O)ulE{Z*!(l_l-+n6(I<&V zt;z;>dAIgC6%)V^H3&J9aD(8fK%8sB^bs^Jo{TG1gUc(*EePfu#y42LFmus1=p1S* z%O#bSPoTH#*|SIYLzGXFH%d?(V>3hl=iF7%Y)yk&x=M!X>@(qxL^&oV?+^hb)z`qk zJs8#cqRkZ}a>fE+O9-ez;d#U@XjEW&5Ha+I?(BUgBgww)!uT7lLKnL{mDiFR0Q|zb z?W9SZfE7RWyOCxTc7(v(7Wr6_2j6+cv z?8Y&qjl{XeFdXm#~@Y( zUj|3pq5-?&IOL%$5Z)003t?B0>|d;l-QX4OIKG_S>fn;B$1E-$3201$?F4ii5An?v zv#^CL)7yd3UPIJ$nrk-Xv*>8!v(l9&X6|8lR|6su4%Bz?a%M;Ff&16fjg%oE*yFSh zVH6SU;^@(%ahB<)ZX{g96xu|%EB=dPr3QejabeH}Xh`3vVlRng0SQy_| zPlz@R31P;g8NggX4-SoLT8!@?jHDs?85~c@PIymh?xCqB5xe3Gp4A36MEk5hS`zsoqi_s_CZjO*>$J0kg#( z(i)eYXLe?2cK<*49ADE20dB`ZzOO%>$5CO?8;C=xa;$bp5>sA^t` z%%CX|t~;V<5KJo0pm#sefkXJof1RwZ-C<#20Z7lTxdSghGnM`S;phCX&qMZqJ6Xi8 zx%uC+?=#jwU!3+1{N?22#P&b0`u(qov&g>f4J0C0O4-_{<|RjrJFVff>L~f_6T2A z3QQN>kNgNULhe}6I9B3e>>+HcG3Y;7|oaZ%31Ty>Q>zSciCIt-! z1)kuIT=tV)xg1fDQSmcVoGC_*ca4oHWSO@UjtWRbX=i5?K=H=iG&EArm@eRuiXpNG z%-)?i&&+lE>uw0H=yr}xAOMg&KtX@h=W_m){dFyynJ$N-70EC6yj>zR zw6#;Iqw3Ss<3qXo1%)ZK2F|c4rdsPnaaDHj_(<~ovA!e!pm_SWovczDEIkw`${I`Q z0ERE!uqb6USzo0Iw3Uxle-#MduXnsT;OzEjwtShuon+frl3ByQqmmEya*|l4rMMQc>$1jw26ic+&F&CL7@8Wb(2$d ze!I`vjp zEbkUPP3zn!z4y?e@5%W(RU@0!BFLB@ala=qC;eFndOv9NwtsnV2WNoNocjIFvbVbD z21%9-+2kvitWDYKB)0CEH$GD8BDb+ewT&~tVNoWn?;2lS_ti;_LsCCR(<@#i9&7z! zSjbqstoy{5%1}4^^3p67i{^rm@#*MgPL@jc=ySL8=%1f|J}7efpyA6MsZ~avb*D_|3Q>Fg-M;W` z0VT7Mp8kW<=qKVCk94StH&aop3S4~IhXcinZ4}!Sj{oT&b8S?uYai=Qb7>2Vrcf{N z4kx{B;_s-fkKLgCEkUPxyNc8|4Pw_4h+TtRg+ZmS_%|KitEKgC8X$(l2p6q16?daCD>pODZ9DASp@dwaU5#{UL?-ooVxa25+s}WR}5f25vQ(+ ze<%Q)wyUr25vFH}e;xs zB&R#_)!l>tfC8gZt|RTy(y^6eLJwqD`@6aC9pUHwda86)*0yA#T{~_^(i4(It1+qR z)%#<1CTb>+D-O*x@x0p=G_zv(kgCAv*5c{Ct779CV*`>A78yL%cMIQAXr^xO?06{u zr}4hzZu8Rv)WKvL6f8%Sg3=||N`F6BC`&jj{c`x$i`m(dZ={eSN}V`KgX$I~qpL!R zu~wDC?(!|OwSgXY;|jXHLu6zx-G5Q`agpnsl7#jKsZ`bK+ER-58i9eaa#vE*Iok^; zDY?L!Qx`y*uH#o_=ud zZMWN(b&g!IiR6tZ)SP$g42=s#Q;auxo?PywaL(FRa6T(8kd+G8A}iao{jj z)Q^CoY-Llr@nxm$6@r;A`@ND4W%Ewm@4hbPrX#WbythtvA!qA!WfNK6Q*y39v(Ce( zSYDjvyx)DR#ru>?d+5@2flD_IOWRAc7p94{t9ySvrad#MwqgP+l28(%3)PR>;2g$; zeKH1Op>s9P3WHO~hw}|3ji_KoS99b%V0(XUlxt%;fq60Er>6dpX+H39&C_OY%KXmK zPz9RERq5WS&IFApBiTa_!$MdC_U$V=<|@;6sQQ?xy~4^UgZPBut5+}SmDQh9g#QYe zTvQg^X}9r+f!P6N8}cj7VWm8|mJ~TJGR<;{(nvGkU`}wWu<`z1~4*zO~KtNKaZp^=a<#PjRxd4nI~? zHWgB>2Mdm0rYM$R?G~t?=b&ru9_ppEGYL_N;R)K{*P)*={4i8t=ZB^?!@|I~UV=S- zhQ{w)X@e(=jyW(;v%1}L*|B}9D1P(Z*`w3(Zhfz)SO$GBi=NN?^xl1M8C#tCD@pR8 zr`iVJFE8a4Q1}OEvfb&Ds&12X64@DjuZ*URbu0I%)RA1j9c2#>JZQZhH(@W~=Ncw< zQ>v1e&76Caqeqvx3GL}{;b-Z_y9>UPQ@72kEZzRu#dXqWU)>uI&)Tw~b0^yGkni~zcYxAsks?Qpnc@*;~Af5lkppcG~fXzcv@#eOX!)D~! zUQBEy&)L686pfvuFuSys`u8U<;%_HeLdk0Dsz(NDi}noJ*^Pueq_BMXwYYDsiMpbJ z(wXAcp)b|NGY2vop8udySFQW?Eb8@Tk(Ih2?wGly&JL3n&q1F;{!}p{xTCdgy-Q$jhv)3? z9IMsl`h+8AFp(~R^0Mb^F*UpGt?A#qJ{ob?E)^B_vEaD@&z|Nt3O6T<5_g^rDy3Kx zs;S@ND9qg2-E6{CD!lV{k9uU&@l9panP(n^`#O`hER`$;F{?1xwRn7$cEAh^^)~w0S?wqFQmH6; z#OYnkADU@c_^qmPgsngNxRR=jZ34Pojz4>GTPCTMwngySH;yMJvTnXx`Cl$}4^0Lv z-ri(+=zQ~)n4M>B*5VDb8mvtty!V;dQO~zBl{`&9`u=PSPnKfwXp1!r!@xX>%HcXY<12&x<2J8k3@dy3s^-o|k9u&VKEth?8l z)G6BSN0|EEU0Yp;$HZ+i^!4`ei=?l;OK_QW?lqU#EGBDh!OrCG+3a2dqYEc(>}w0* ztP++w4$HCSD={@c^kuy2r_tLIq^heo@yE{BWFU*{Q(LLUxTSYkJBwNUc00Sa)-8Lj zjP~sGUYlv@t)b-iQj?ktJaKNTeUC;F-M~hM&8vqm431vt-z6B87o-!k-t6hP&(kbN z4#)DjgLMbowMbP>I*$#nuBUJH^x(Q-nk+B*aMt}mA*a99*iANdPZ8b>wL@_XTLxSo zJh04)mAmA%WvfUA3r&x${9A>GI#Tnh#c#9LjCJk|_-K~6Zmg7*Wfl_bb{es{N8`P` zNd39&`AL&^T@&QSntsclVi&J@{`x#KnA00kVnC) zlycoRx^QHz?aJF-g|}q;TAqDbU>x@Dbo(T;m#y~G+UTcc3ocF}Ka=&HOZxia`}a5= zrHXh}@5??E(difSSy0!Uec8^?vMTDvWXySQy1D!3olKT`)GI>HkZgx!b~^a9QQUlf z>CUj3t3Y&E{edH%>{@?f6<(cMXqftvRea<|DCt*cIput-i?*$8>an3HE0H^WQV&*~ z|Iv~l9Jchqqt=)f17r%M=oz1 z_i&13`B0{FuAQdlF^*z7y8&0Z-~IiO<6E!Dk@7RVZqur@{85!!D=nwWeaH8sr{QR* zSDdlHCtF)ZL7}3zlahgfq`B5H36+rdi$|r>Z%U1_t-FpKJLyxf?=knp<=va)!cvr9 zhVM{6bhh(1^QV;3O3Kj>tM3j6Cxx0a8=D+Z7h4Vc{bEjdIBR#w%mOJVd~cIrcXQ@0 z_o$^kIoy8YeWI3;wgFzZ-y3fVfXcxa898jbk|5VIM`@Ph**&jtfbpm8lHJ*pN}_6K z%P1$;2UdKacpb^K9!bA(t5Vq`kGe?8Gey^-BE5@Wa(aLN>S2XzR}SU%$K>0vv-o|! z%jq=#UGLkE^$60LH}f4eZ@wgWd9lRV?Yk7$CuOa1_>E1TS7@g9$zD5ZaURM~r8UJT zdsnk}*YpIXTpR!Wc&oNb49lk6hTF5bZ#-C+SFLW{e&aJ-TeH2kzRu%9+1U)&Dto>M z6o-^rUf4@5s(M+uunIED%u2L>-Jr`^))Uc5nI#f@oZ9Nd!Q3md@?$NJ*}s=kET{0; zN|tTbauT?C-$Lq$ai!$OLQmPkvA25EM^3&lXLvYXsC(~lily86mTyg;nMWfcK8euF zcM6=FTH*F_@O|Yb_~51E?j3Htii#;xniq3xHZW^?F`cTUS0X#4w6rGbUq#wD*vjd_ zew4m))cQ2ttLR-euG+oQ-^cgHH#;*iOYN>t-swJZpZZVlSn1ZL?%+N~FAJMj6ywaAn%iOz>+UJw+2LRA z5~to3qp+89m_PiJtII*ZRzCj=kK5uk>L~A!*N5+Bsqs5P>D9^?{-n@>x~YLwpL;Zz zhW1itlJ|R2Gv%e%2i+brx+~~WFcb=!JqQfFEUnb~Nb4P0o10f<`+@xe0TT3 z(`3ZU=xwy0)yh{(KgQ-SgTjjGYtu*6r5o~Qh+-km`02RtQk0XQm8kBi#8*yq`BO)( zhPSwrBpSD8rEg8zF<-&*^umO#-VYVy0WwNukLu2C`#y%2Uw1O%?)FIXy=apCQfD>0 zF76?xdYrG~OZy`yp9V}7mt|}#>D+M9PiLfxi)jx7Pn2mseyE%XA-v$UKXAvxoVRSMF|^ zi08DC=44O+_EiVRFb5{J8-Dq%$ria@8^da;!*BS$@(ZX1eCI7Nz*crcCld!BeI*)ELIM z!K!VgAw|u~#>*pJXZuT9#WD>nhlqz48K?a>aN-4G1eB(gx+L*Q1I&&{&|k_wB;Kg zoN~N$ev##d`$R5psIl63m$S>qF!}CE-1lgIp+f0zS5FURIaG@rthwfD2X8@tY3AUk zeRoUNNe-Kj`;<4f(+v!ldYKFOcTt&3ZuUN(xjQ41^OnP!CTEBhS@HkH+?#;qoVV}) z8H|~j!HBUhGesi%uB>Cp8f}uY6J;-{ELmbOM3G1d6>XwLipstvR4QA=D5+3dG)4Nq zuDWaHd1k)fn$76=W8~_{B%5Vz=hoGN>Gz{rgKbTR`A?V`v!_c_ z>vgs_}nR+qTndgHrRSM}Ey#z8w<&#X_cqT#et%{=9o z&mK#E=-1ET*W(5S{_iJVdpRwv)zEJ;eogozw$06j6Z2iPlAb^Pet}z&)@SX27bacy z*^b%X` z9rKH4k0bZ0ejSgfrJm89dz;Vh@YRH=_1mlr82qd4wa^6JMnC=ZWLs4GIK44{0_p94 z`zyHp7ssr>I*EDRnUvWz47mf=O^Ub3+<9`uaV_h9hefF?f5yM|`w#5D{_2PN*RK~L zHG#b7H)$eFe1IFBNt42gztp_mufMjsw|pAYcej@rng|x>!G~uqbocEjp$PzR>oP*a zU`p&b5mOG(%*U$&Z^{p&-@OsqmZjy}SAn&J`2AfdDo5Gde`-{@d@wq5;PSTGc8>zr zFTUq?#eGGL4oo-E<00NJ&Q0D8Ul!%Sb6lSwlC5TnI4Q`53F5+MwPKw+_wVJ}eLfx4 zq)X?{g#zBjR#rGM(r`~-0Sy;TCt~~bb9+%YLOwhW(yk;1pyF%^Ij|6w^20MuMdqZ{k46y?b znXGf0YJFILa&kA;RL)O5QV_d|Pq=80#Rca2Of$_hVk+9j!B*K39K6DJ?IQ4NtNe5X zI3LgQ1E^p{xFsGpN=zhPF*)sBzxlvrPp?BR5CgAGm0y&Y?z&*yAy--d+ZtI-=Ha=9 zyGLEv6mZpK^A(f%Dt7kv83P~SY{Ybp_+sSxc9H^?XNG-}*{s0wO56pc_%wn%#cdEi zm2ghF^6Z&ABTk4XGJnJ`$#_P54YvN%6ZbK<)Vu3?DFLeE`?KKAeNjvcEmT}jp-ydY z)aok3j`!njFm+4cRJj56jUf2=eZY~DNxR0O>Sck2%&} z!Ht$o!1eME-9DPKIiefnzHv_NH!Lu99rOO*LLC-DJLf0#R<2o4zo^>xvj5X{u&J$` zVis7n7XA`F{{I;L{YM6X{~h1ITDP7u`%~lwkk&54BS07Qdv^9Mroh}vf1lDSzq_jF z+1{bbDDe4p^wTfUZr(8O_xsD2BiShkRYfBM?UI?{eIWrbOJ=eRwP1!_WoD~pRoXcx zpWU4ld!z8WINV`|BIJKj5sLwFdHIo>Ij|%JoR??=ZcJr5Vj;Os=q8#51aH( z8X9-sj>us6vJPDZQMVyX!k;uWcEJ-!z+CS2eGiMAa>bC6IdNyVa8sYUMv^-n1Ghh1l5dI6gej;!1l0>a6Jbs6jD&!5kl z`3YFMm9Giu2q%HgC?1r=Lj%sX_&x}eRh0Hh5L|xeogogjSK^g`x$An@?*Pq*eE*wI zo~fdsfF960Aa50_cafKnKw-v*&bjgx3;25Fm(t;QL_iXn18yjyC#Z-F>ZZUieeb@4 zrHJLNTBlA|RO(%F=gAa8vFMB0bdo*7N}+W+tS>7(oNi-fRWEVNJ|%{Ez6&Ed&mef6 zvx=_OXD;ZrC|sS4s)igw4f{ugxa92{BCHa9)6?*7gg@vM2~bZkRl5dPa!LB7vJFLi zLJhLkLYS&H-LctiK6_)Cn$r9C?}duO$8-AvoG)rG2fvbzm$^Sm1oU%OX@AcBd*gkc ze#CqMmeA-1>tU-Qia?>pK&Kc?ZpQIW9M2d6dr(t=S=o3U2rZnk-H}3bcy3UmUUU6}1`X;3D|TXPKu!9%-R#Cb>b|8@uCf^l zh!IKHAwzz;&Xy7jDG2=HC{DGNgdY)i{Tc?7V-ejz*K%6l0DCWqr7ef8zu=QMJ!CT% zUPb5-5{dlT-(|0D{1*pkjiOy=WlzBQ7XC>as>~BOLZOfON@O5#ftdBPAvSa$dDUdP zUi>cW+9!5f+YN!G8a1MbgL2Xve*3LX=~Ic)u{G=Y7w+eKyY7Xm3f7CfbA$OQfwyY6 zU7?lUU)0BcHR7-TXF{y^|G?MVc6=kDOUfX&;gi@+u|B2Mt%`iu_M;FPqjc~_sUl1@ zhx)=UEK^X#%{V)! z4lIua6x`yu2jT0;OqKiS|AadYB?l#|F=|&OEKqQMazx4JiSH}Kd)dTum#UTFWBQVx zV`*Y~_!4D6c=6&|d3fP%R^jt#`+>AAzNy@dpP+H^u@Yg$Cw)RG3(4eapcX39EeYn{ z)QmRW1E4if?_r`c7lj1RCUWh&*2Ikkq)M_K^VdU?O4u;$pFy};O+Iu>^o49xvBVOe zPx72E&jEL(Z>v?$VvtFdFbCR*k|?HlTo`p(PDnaFx`Cdj%=THN*CEmpteUiKdyiT{ z^v=UEcc-0l${JmBT}^GDqeO1q=D4T>>EdE7s z@}XWxVuZOod7%A=pl`>BK!A-e>=`9!Sd=np`#14qjB(s$kqN46VcM7lj;>8bJFEm%bgj!<2fWu4cb$!tC&n(dXUfpqN^tS?+Se4b*m#Pi5n#LEw zM?d4`T@%o5|GWU%K<(8R7Ek|wINzM@J@7cHR;p<#_MYNcBes2v|CI1ORmbUu`zFOa zslVRVD|7yZbJ`}LT=$9WR7K8W}Hi8IOdBw>~Vlb1NnCen{KlS3@j(ACLv|z1R0Q4Wa42t5NLp?i)fR^4K z1JeC?ZuVJMFh@z8G<(e*hy~^ZxM@#eR9qWUNJariQO%wX>X(v=oYsie5Plj zk@_0=LyT_dOGIgGo%`q|O!X|m1Q4(S#0aJYje81#wvJoh#oyyhEaq;1eEKBjYPceN z%Q-rfmUZfWjSI?VZ~!js75Zw9{dhaK-HopvF?*~2lX=B0?ZiWH9I>22jJF7A4WvMn z31aaIV^f6hFtpEMQcV6^u(pmkzGJ8Dre)g));ivJKvARU=)|W2rN=3PooE$)P@4d` zblagrKOz8p33c@a1Y0nNrb;;GiLnpXTV>Q?B1=Zk)fV}@#5h?k@Mm!7TmLaH)k$t3 z&v_b>L1?Di!FZG~k`zsKLBUG#HpMrI#D4y78Hys9<8y||8sP!(ELwKy(glP|ooq$3 z?}Y*yI7g1F32j(a1^<(w#_PRdau*1N0E`VC2<3(3O7UG)V%O8=pTJ%~Ni?)lm%M)c z^$0Su=<}4sZ~|=v4FBfi^S)Y!!K3sLGbkI-a^1q^f5nQati%2zYdaaO@O$sa4TZfp z$y)pVZy;L&xh=(n9a=OR6TU3;_G3}#-d0hTR=J@8 zQF9IlNX_jSbns;L<*ioHDo`N^3I480YdQA=^jQ=ug)~u*vvU|PDX=&|n7jYvw z$88u=8~L0h!mkt#Q3guT9RXW6f{xQa>D$~I&xtwi<4p1#?z=OqU;e55YWdFk+Z z>C>FuB0V*%byYRB50qqtmfaU$!y2|lh`bdD6J?MTfNZEW73J1q^2U3!*c;A}hV}JL>A6q&~j>G!q1f>oX?N{(~5isJw zNmKj^@-_I}3{DH6&-5|2Z9z#y%`KV%l8vZ$xrJBhg;e$xW0Z}v<^kNiQ0(+x^Li4C zzyYSCEL#eLOBElV*~C|hbqjk2i|dE5V1-eR&laleDpN6qV}MAg-@Gx$^aT4cr8z_o z0Q3VGKB6e{11uk3 zhTciY4Ds3Bx#o!%KE?otUbd-}wsdi%lk790?LYnTN0TN^=5T{u42(`a>>i*^Uwg2-2P~6t=BQgD0fZo zQu7F#-cjYOv@h1hz1r-(amqeF;`YRC?P9*U3>~(2$fki`o)^f`0FO?6vvHxR`5R-0 zAG=*hyz*ejzTn}T-n47e_d=Jx!`qd#^sn_W%e+&nYw8pfwCwD;bM-HODx3M6$A`Md z8f|p(FxmJ(f7tw3lK!8rVavUD?fBHwvHbPM$GjMdvO~W2To5zGW4cu`aSjZ161Q z5$-cRx2>-joPR0hw}ED7ZoD`Xv@?3$mxN6})U2?dS{%q3G55ptg_A2wyXB4A+NUfr zI=f=M=KZ5XK8$eWRGGI=qdeavb+JAEWw%n>Zz^2|>)q^Ia;ty$=j--8-BZ`CVC2k> zeL8*VGdg|!L9=|Pc{%5Q4$Dd0eO!B}cSE!E3!c~awSTwd`6W%wx);+T8l|KdzWp-4 z*|Gb^Hv?x6aEVLb{ABiT8?=tql###w>gc9@_>SfpqZJPdN3DOH-9IpB+4vY+mrVD8 zIprTeU1;9pYllNqtv5bZ*}TCs%+R6dqhr9Wk?AL6|Aq78nv7d#JaOE9nZBC%}Epdnd( zvrwx!>ct?vh#R#f()QJmkrl)5>D#vTsEkheY|J)>H~cxnwypzr<>lk!b=UV^Q9p9^vo#$*Pc64@q;z@k zCg?0j`v$oqGuiobQx#3))(%Uw`bYKmiSCXO7)gB!F;^(%*h;R9B`zn777_w1sa#?LRUYBzs^a-M7Dc!LZ( z*NOu*xBr*+=PVOS){QUy*z!xOW)C|#{hYjX;GDzl!|eA@{PDhCNZ^mA<>9x5In%iA;_Oio1e_?hEE8hez2@J>Zv_WqB`txx|Bs!cSiJu&R|=)OaB zFWBUp(MNuZUW-16DlMaE1>>W`8qyUnnlobV()Ic>zKt-;K$*cD~8Doq{Xz|GY9Cu>~ei1y2lZG zatH*7+b|{2{QI=gfLvE@-P!@}zKViOY0H)^_(CU7P z2nPQ8@}{5?p&Kjgl*AApXJK)H0`R9RbR3wzZtJ5*k8XX^sV%V=yolL+m0W~N)dLJ* z>Ih`R$s*YTOkj4DmO=l~A!-EHx?(4QEKe6zz0$CXV!bbaylMe9oKk1`q>nUA zfSfrDZnf=-Z?9~F2cjI3h^Gn#cY7HL$N@=!c5*TWgRI`%Zz(&)3*7GKopvkzsH%JC@~6j zVoHEaV+(Zv zRTBO{Y3VJ{XlZrCb470^E?-I*dE`e%^F10>=j9$~`|A`)KR_>pf8$i9ZfKsj`z8+2fn9byO(vR19$F?ju z>6ih<|2%xan>M;sGgN@V&r0A`4({$IhWf#^&-v%YphT_MjNh?qMn#qS8wF3H9q8+E z2yTPuyqV34u6M*to8Q6ckMPWu41>+$86&NjxtQ))%sZ3>`llUO&{AFOT5zZEJ=dH* zGY&jOAOML}_;I5Z$3u%_s(LL;#o7zVa%iCi{UZ2ruRX6W;Fbv{k3r2^*A2S0kI`v5 zsek^>->#&m4@=9ShsFD(gF05zN&*&x7x?y8>I<^H@j0#}be>;1fIHA9?P2P~j7u!Z zd|UliM?6VosEwRjKwnzA+r29Bqk6@GMDSBM4de%wXck&+%#2b5X@+?7dtTl|Y%S&R zE%sqHz=L>;P90Vz^QTjB!3;gt7hGw8;=FD3nMJp%F~$5>75!>EHH^~8Q03Wm{>r4S+{gjNccaDuAa&o{SVv5HyLf}-0xa`&>uwjxc<3pG5?7EG9wo5u-pKU*D(Yk=5^^ zq;griz9TdC9n2z5()a?M>5zO3t*pXGY60T9K6@FfIWjWxPFk8N(_Vj$Wo26JP2z|i z-{CXkj6N+J-Mx1&>`q1XYhK=(>AB@9&1NpEXxDGQJ)$e^4*@Cu*znonnM49AO1sYh z>EMwg{`fXwD?SEegWc&w{;&3^4IOHNk4)K_{JgvX63Xp_gmbzNHU^j0t$y{!&i2a6 zPVI(v)>)bs74E}z=2@|FxkL(9pVEyLdNPOY#@MjF;04e#u4BqtDt-GMwwRi7nSUmFi^f`VG za?^26bU6*yr2Ne{y6e|pQtdiym>HZbLz1@vJ`d4A4gByu>sZzJ!+poG!4BS8Fnz=b z2k070b8cO`HkynujeudmU@*GyZZ}t54y6ID&~IeX_lBA7m7omP#u&k`fe zjyf9CPHe;Ta;{%x_P_=WUon|I!kH7C#H+5eYwupel`GG3o|>u-CX5F>JUj@-3l}f$ zqNDuXcj2F1y}9nV`}e0XjdVVB>eRx6Cl4Ju1c%;=8T_mbxRG*))HO6F0N*Wr65=zA zgW_}s&hEW;=gtJ=|CyPY-qd3LtdYp~PCIu_V{DU|m)A{aY5Ju|oVda`@Nc3AMm0Ll z0RaKr)YCw~aW`&^p^iJk@#Un%&a<~0#t{WppV0Ybr2g#L%noxqwE5vn+2^q*d#7gP zP31>HmJbB&_@?R}6pX)XROPcBmwUzJ&fU8qm$r9LYxF6d)7#cJJ^?As)zoF{mMzSO zwTXx0opGY!DQa%ov?*>Ci-P@re|7AkLq=yl!Zg*4ZP&JK;nB(pV^*Xu4pGYrR zMF(&COBBayI!6GH;W!E>it~9^D>rUzGNKRw@^r|EwiYee;$rPv5&YiNa_qb|FJJ5RR+v4;a0t!*DZ(Z?dcm zI9xg0@=4)Th4lZ6XQ zOO2*X+1sa2AC)FeyqKHoIO}sbgYCL?nPo9%tT@r#!?>B?jI%>9qhpPZ9bfFNXg_TI z3?49VdPr4=8hw9g=$g%IS8Q~vC~G~SQ>Uu?;_yzpNjK$uZ%n=z9qLkQ9o)aa6Y%_= zmc2)Py>%p?_+rlupyy+ls~NDRvfjK=hlRvU=1!Le>pE=m53 z(J}XaOHRPaJ1m@GF-;?UtzNx4^X=O}MhIn} zK0UL08nk`S#OnRmzR_B4#+kTOw%c)_-?WcI9U)1i_R}&Hh;RS4y>6u!&0bico4YvicS%DK-7y`_{faTdw~0TcbVg zh8hwm3yX@9aPT~^fB)RPnmpRxc)+*HP>W3oc9W@2Crp`=0!^%W)27o-pKtW_Rzio% zsY`TsB*d^AuN1kyaXa^Vj<6caH0*U3EMDBLOP5GAlzyL$&AN!c=keCceMe8G$EM9yH=WVSlDQeob zTQMx1@1MpKEXnh>|4SVr!Mn=Z!*)wMzfp@iFaA{#-$mbZ-p^zU_j*eB_ zyO_|Wy0pEMd`_L3=uE42oT4N%%9ET&A+eM)qilInYN`>vp&hMR_l2>QUoO&H2f-Pb z=={%-30r=Hz!}qcAn{4d*;$?;&%&ibp1G!V^}=xYbl*R?eLiR1#5^hszzN*|3g>=2 zc>Gv}9$L23Ar%-K!|dkR-3_$C&_y1qHfO$@G^5jnfQ3-%!%6Ub9Az-lznoL0o#e88@W$ z;MLxCrSF4S3X&TMp?ZWAK1S~#v*?-mmx}gEarE}BrBsm2T^`c2tS(t|N|B`7e2VSkK(AQ=(;J~!7NI^9#dDb*M5 zFmA7bk;+$N_B5{vAoG)JzEo;IsV1!aZw8Ym>gt>!@*AgkcBNgiwYLx8K*%BX9|ME3 z6>)9d0%Pr}pTTYH1c6c>&JdjXJU5mvVaL0jRdfMon+7y+1no-X-}}R9<+b9TJu{Kb z={0g|F^=*oQE8hh@@8Xu4jN{ErjTHMXHKu%X=!Pzfs*uK!-PEo{Yr(Nbo3NO>0*Ce z1EoHKMbQI_!Qj%;(%5%1NOEdhuXvGJEvELYzR|kshK-d6T0ZuA`0$}t7RmN00KoC5 z_io>QNWs+)!+&b}N>^)?2LTlFrWaO@6oV~n(p8!_x4yL&CUhWqPW(g5nOkRZHr(Lh zcEzW|PbmV3dLP~Za?uL=_&ay}beECF48eVjIN<^=%m7SEay~Y;ToKHSa3*h0WnZDK z9mh~vpX&MWq|Wv0)iY+WMeY)BqC!!ge`1#RhLubY)smf$dc&fj_%;E0eRh3Aru& z;~~L{wW-v@gbi;wrmDmfbFZP>U2Q_~THiq5K9dt{rM$*M*Kyl6_5S_)8$|;u%%mHC z2;*22x!7cnAqFTfcxV^-$&Q$Seb;V?eqwwRYubaQ88Oksv=R=`F$XW1FmYlMa85Yg z3GmxgX`^Dll=K`kZrqPq$CRs|mQ#~}uN^U-8nXV6vtSDSHk4bbb?MS=@L*$kQ(T#? zI7RrzjT_BR#}jsQQ1S$;EqI%B%84_tRz54I>3Ry~5z{nZO3)VN#-K<5R71(*477Aqd6UVChmt>_S;D;Mo{I{ zbR>6;9lISIq07mH)3}Rs0BBb=wK3$FM~vVtgdIK;1uLbmqBYhU`0u1(njIcgpC?`IUx29l~y+6TRpA(p6(z;mBg`{%Z zyq`Y-F&7s)&K3#AdrsFZhI*~6H4sch~LB2$j{K)jvZkm6>*1^MvyMiiG zI8xx8y6vgBPfjfYg48EXm=Lo5LH-m(HU|$JI1oGl?m{qw^4?P;6U-0XS&%5r06tVd z*?O`fWGm!y&GfHXuV4E@!1iBo$2p3FseC+Xrs$oM;llN|e5^|lOy-{-5wI36TzCgj z2c>(r{@l}mTMqpTa(h>OW5mlD%f={5Uxx-i z)>gq=Mpgg3Qf-?1MYp;OR2uQ${4K-pm7O{aKLh9(_uv8G@rP~YAKwMwSNF_L5zigQ zc_weUiZG7HKc2c)mLWXiFwO@2uEVfP50|aYOPS2kr@9=8nwguc0rw@&mMxwCsV_&n zPvkI$#9PP4akS-ozclVTY_Ex>8!lCU;1L@K&phcu{%|JQ9S698WDfYKfE|_l z_}od*0y^uyi}!M#N;h5-di1iiCbw?b=?KaqQ z6}s0Hkaa;0KsQbU=ajsAX2e4=($&@7U))MX#T#E(okXZJEJ0tKI*p0+&fXAZ{9v#h z(XtIefZ~oX_ZktipgC{)o}ofy0OWkSppqi!rjAs_Gl!@{n}} zUV;yi50`*pIeYWw(HvLsG-Tm!Ib}PDY)%gVIbs`!^c^^IL<6p}Y3xQ*!F}erupVe;0L)1u)o<7fRRqG<303NJxmvk3XIQffA6a z9GR&V{3MUTYsTVQ7brOk2^H+*@y>jXQ{Y`WAdL~0HWaJil#zRfU%MZXZa0zP)#|lt zT>-&B6s$R;Kqrwh+lK~?h&zU|^XY|EC#fC|pQ_+fv8|_YG^4XO0TpZc(ZFnH17jL} z_g&V(`PHlQxshSn*tygq;jHzzve}z}C=EgTAHoMe!NXkwd=Fq*qFtJklhc(z&~DJm z5hmv?rMH%DfyZ%&mWej#AQ)M7l3EhC0Vu`Uo0Q2>RDGsiv?(9^65PxeP<*O@5s=V8 zMM@s&P1O-hM|0W4>1-@jox_I@M?OVlHx0Od%|QSNbq-@({XQ$pAZ$~w>g&~79T;+= zz-8*NY2(NLNsZyC{E58(=MW^t?hpsC(p?BTSfnp$^{^a`8C=OgL%*@Op%b8~; zz-uZB`%wDf^I+erzcr}7sM|dQ>N!H&m&GhKC8eu53(J4n$?eo{#hBl5dckCpTne_i z`k{*^3xLW#ys2H=pm{a*M&EyLxL|>IVp5V?+Vk<=jDR#S zE#Ca;;>wp>U^4#}Wd!%EpvG^s2MSi>3A2;$=&pbi^j5D9VX1b}X^o->ez~`RtX;Z{BMv5$SsNy2P{Q?F{(R7e z;)HSjX3j_Ry%p6SPjAI1$DI5on!J>#kk9H1rj?i_(~D8YAbT!#h({Tx|7k=#i(V*_)54 zfyO7fXVM^o-udgD+ABpt1$iiComTamyg0u2U=?^Hg%3!QM0x1q|B5qlWW~8z)>x_* zCWADEmVm&#fpwh%XdB4*zJht2Av#13v2{DO5gCZ*3&qn}_o%sT6?81^4<&mloWp+5 zt7+NS@-t#*FA6ngfI839f@tHKfhDfgV|1Us41K8%mR#NT?GPGO zYGX}umH^8Prjs}Y#O78uoLqsSr|7q9hQt3JO_ zG^}2=s%x%ab=p=^4!UimVus2nwTu)+*BYT!LVjfOw0&s$CmZM})6w-p>F7Q22`O2i z?6_6AkGgVQI?lus%~(#ylq@&V0sZc922T@FsNP9k45hDMb@34PCBE zRR?JT72T!z&xqo*=FayPF@Rzyo=SR(l z-H#ugs}z-RgItyJ^LYafzw#p_=p=$=JmN^u<~_}3QD6*N_4_vFW2!pT&bIF>*SI*# ze3bbMyFD2%ZZ>H*Iv55EJ`((0V zK>->#@<$deyyjrK`&_v;CRzs=8fM4v!g*|AX|n+%^*L-I-eagyVtlI4F^uK=FG>7G z9{ji8?gyP+xOlz}NRzC1$x-};Holf(Ru2}B%sqHKTv#`zgG^LYjx4IaJ}=$3EEWUT zi<3RIj44@{$K=Lf6w(?{Q8PR1JlK;Dw>yW%e>Dwf$;yI(;HeBn&$qAMG?z!;S{mHG z(z?j$Vq{w0)y6-Vby57o@SSuVH~>U*z9AJ|%(8X}&0&U5VB4Md{814@_s8_eas&S9n%u(Aw)y^UQE2r`Q>1zcxQMq~Z=3QpbR|1Qk3PxAQ)< zPP5SU9c8L(sjX<9FaI2Ld+SxK`bSbv$`q1f!;gDU-!i`L*Nq-R@b}_D`_nJ&+OtPf z{}TWKv2L}E4Q!W-GIeBbkOK`UHv8PCPoFG^!eg|@RNpO!c;k1;ufT7YQhd2e>T+~+ z^y3-X!G&wyqJ`m`vn#1ACrqAf!0tJ3`Q!u){V|j_=fm57SN#&}-q7}nptJ;ZB3t9) zvAHjgaV%ayr_tNZiKMO}s0B{LDd7<_NPkG+)J)~$J%Z`Zsp2MJ$O-5MTu;RVD9enC zeiGqWxGXRxA{LVs3060gkYATUmrm3&r9T$WXxY5^!fzXrkRQPX7*%@M!$XrHnNA|0 zRxww}G;$Ym)$YBx+J{o+b=SOrkB&e77w9l5v{>mU6I) z#N!(`Z)z|HB+sem<|z0GfhUOOYpED{U^ankh8wl;q!%GN=~5-D=}-xAaFYk{hMEqk z>ClcHJHQ8y^JQFI+(d*q&fZ--*Nq|xq>wsShcD^ZnxlwMFm{zOJeji`>|nQDO~Db+ zwb1J<=iR&G+T~TWYQgJG0~}Ru*f5E4O;IxQUhM__T4%j_C8Y()Zz`#}x{K&x zI>cy0Xm@Gd;IAx-a7@_0XS5LmBRL!8M)ergIT)j z$i$67T7Qm{8$4(b&P1b_#@tOFOPUPB+n!OBDHCCtqR@BrueqV>(>DcW z6?<1|YMPrc*rB|4mZy!@&6Apc8;7tTW0jSa6KN25ZEd+xjEbi*QI`V_$14D!#}1PX znTt5q3_~2}yVQKC)V}-QgWLc7ko8F~^+_~;G$+0?)nX8I-c!;1z1aWSJYX-ICV;|W z=6z<|7Jr$pN;^Q^>KK!1-VfAnGDIYaWzaJO4LJK`8+1W1Go{{-kz zT>>bjC{cqDWBOB4L(QD+X%8^qPmEla5n~GYvM(Yc0&TE{4!hVD_KC~@Drk-+w-iI^ zG`26VzF7`G%`NdNKx_7pQyq#95JSpc>&)ATrP63p2mf)$rQVk@h=JeqG0rLsbukdT z4P4^Pp#imZXz~=eV{(XQWK`4y=k)bOlY@*y$FdtG^5XU5MIo0*;oBNDJetkr?`k6H zuIqKr9ljGiGs?;jm#yCpRjrX`)QoL0jC9| z6oLqIxS$S-gmIxK1Dzp*2Hj5Ro!?$Vw&=>07qUNQ*yn2p&5kt#kU4jt3dgA5Q-NdL zu?|i!r$kG#Dt9>WVVbn3^EA#nlsh;MKL^eN6%m(ZmweH!M+V9qlyorJpt@nRqMcxP`Q z)rlo`M~j6=il zx(bBJH(F|DRjDRO3Pvzq^-+Nf@WGroevMGM4fuwj=cL<*IA?j&5lwKG+etoRY;VBt zrQ%M~pUI!aRK?UrS5->8$*wnAHTqhp3eLcDi;ZtIcrK!57QIR1>P-3Kc#+fNdx~cL za`dW8rJa>e!55LH7hdy>$u&XDEq=>Y^5e7eC)MzR(&tT=>=ey`!{3pB|0!C?zJpt; z>MhE2fJ7T@DQ6hNKe01YY@l(wfMcNoQX6mNq1k8)Iu3X4@xT5A6%CIrE8q+`A9Zt4 z+Ia>YFmIlxrDeT;--CKxxNwwnPqdxv@d+aAhul2~_VVd;Y0Pqqgbf&W?$#M((9A@nCD0J~u&ib9^EOb8!-olv7^*i+lt32Y_ zu&Ea*C1h+VJb=rWM@VsjrZ>f*PF)okTQcG%vN(JHBcmm$g`T2v%-qfO#qL1 zyD;H|j*4hUs6i^4i@M>U>OYT7o%?YXn}F%ke4`CN!5kavQrD>$+2n!(mKW!oWK{{{ zgjObj#U2g^rT?<0`q126Rb?=|sq%~bHtfGs)CNLlJny!&`nGkPZTW*76(n;mXFy{P zX!b*0{W{9*p^+1Y4V_LVsPmspbtxc3u!_0KPeL_J5g?8^hfX5?i+<2b)#2}Oz>X_W zHH@n64929C!456r?JXh}TkMdk?6s-dB?qvw>#pNJ-Dekp;b$EJr~x1j0ME}_^Uy;cmU$8WE7&EvFkp>}b zTnStl%9jZ|P~ouQwzZ&FOIpJ~Ihl!5!?p|1OU=BLXcUn)DeHmPG-q~f;nBqc$S_Bz zGGB^8pHHTPW&+EEx!I-|Qhc<`VPK(us zgPI%D7xin+Bk9);)5_I|kaKo+@zh0OA>aiIb19V>T;_c3;U}5)$xN5UB>0DLk%c&0 z+pfn5xdPiF%{W+z-MbYkm*;+%4edsH38)k20)NkYi1fN|w&=Sa*xPQfWz)7cwav)k9MoqXsXTD>roQs$I+on@_4Yu?jKKfla` zdT_@5e6<;EwAP&!5lp;W@6pcvU~WibLpadqR)gSn@MB`=?EP)C&gPUF{w5J;WM+>; z6vGvBJlPy`pZ&?)V?FejU#AQgBHv#==aa+nuYa1IJAjC+lL#s8y@lzE{J+g94GdMD zK6?gptnX~=(2$S?D^|F~yH$r2hjFg2q6eQ-Zn#B<{`MObrh13=y&d>Du_N@LP#={?v)mkOXCa?`Va(UYKS~cjTP) z;ALG@Rc|lo^Q63K^<8W~q-^Filv>5JvZ=l<$Qj-5(k_;|b~>&K>hmt9@mi9A&|nz~ zSuv=}d(h&&JDt9;9%A8|1?^Bgf~>ykVwSqbW1#uN5hypjY3RzHrR%ATOlM4R90>a~ zQ~&bcclQj`GPscOO+&@|w=GjvjyurRCGQdgz9E~wTryktvc66tGmaoASTFXLJ`Z4m z$f;@)Af#f3=y}EF{g*nmuh58BptW|-yF_iwIjl|+R&=IQ!ZY_64mof}?(x5*G$~owfv#ewO_`PAt`!o|_U-&Kdv>nTi2rv2kau`Ix1cvvugZ6Pp=5N%X>mE^ z3y=^iB!}dP?hnF2@61_TmP-rw0c!8NGN+?zb$zzZ;W2UL=$3R@yuix2*ax_%)~{b5 z&x?hk6R@n%T6djDB@5ZErQ$j~)-PLBXyc^)(M>SYCys;IFU+<$JE-~xlpJZ6bfd~P zL^2djOnIef{8n~QdDBM0TA^{J)Glq3CgxVjMT)1th^ zik+o9VsGim{fxQ0(&#&jL_~^YAh6JqP(>)bed-hQ)QF6Yp`T;$K?O2ckXJ+X(^V=} zQ?~?609Vqek^!(T59Ql8Yt}3o7@tO7hu6~MZ+|Rx4#zLjNrYoS4rT_@gOWmm8PjhX zqa|n75_+Ikp8>d?l?8l6%NuMt@jN7$+Mv7Go$Uo6>Q(r)bWl>v#FTm*!N-}tBKA`VI_z%v`Gtz0roOm|6$C*p0mv) z(V!-QAJJ3i$e>jxm`R-$!Ns#@&r;UxHbL9y4TXNWeHy$|h%zA&i$^c7{&*I5ZCV#$ zB)fzP$k`hv><0W(tAH&yalsGkz5%>K^YGmU#sNZtqq@#|`La{bp20)YOYil4aGUa~ zs>7367oDN4;m^Nc5fd;bD`_92FtM(o+kcnYZ9fj(5Ai_qhWy|!I2`*_Uq&${ys5WmFU-9|I~dbLc1{flaDC+-GYHkK%0MGDx`s%Ys0XBA*j`zJm$o zmln==L-2#i@Wk%d>QCw9y}rKVr_%h0&%-E2#qTd@#<@|HOS;UnWw2*XTm|fNVYDs^ z4FctB`zBN^LY1uk> z?W<;)UOr#gTm{u`l4}Mr{^=##P(g?(a5X4qP)lwR@(MS(o2KSuiiGL<`j1SXY1_O% ziaydKAds<9>!E7{!6~}<`1quKOs6dK7_@4X=qx=gfTRVxEk?E+mvHXkvAMrAEw`9~ zLvz*Vonv1%A%PfmirMuWU=JiX$g?4iG93^)!{B5rj+OQ%Vvy zmDe|=!lt-$_U5TB9P#f{kW&vk6u1wyIV1EM@ReL#uEI;!R4*K*3k@92rhTLJ z>x^mDw^n!1`i=@>*8lwAyf&)-Q_${K-%*rtSLTp&9`YGXy%cjSr7;hx?uK=jueWwe zjeKHx-{y%2mXb3;ByQ_@Qp!;i<gVVC7$gt0v zgL=o478CkD(3Xz1h7W~?J;Bw2Z8AJm1or;Qzs*c_7 zJG(rBT^Xk_QYV*4+qNC!4FH4`pf)ufV0%0Ku7uR5W5-1cWd@M-F5ytft)h6MeXt;< zNGbc5YiL|DP`Og3`*de?N8OEV@k|m|#(;ZVJOHt4Q5E}k!Q*GR)lPJlz7)Oqos5jx zgsP=UzI)(A0E398MM^}r=b>ZAjzNX6!o$*Hl3MlV&{b_4lyHY&(a?15KzL5cjJ|@2 z(L9T>ZH~NNrj9wb_w>(DQ;7$U-?Ch z{pr|ge*mXg;G8w{(zT1gdxUU!g)$F`~hl#@N1a7IP^# zInY?L1Jqv`rP7p(v;|I9TKGFkh+Im_rH{`ZhchQ7Ht~Oa6`IEsjv{@SGX*6Ww>Of2 zne#QO3mIVG#RJ@TukSjGRjAo%4!bD~Tx9*BI`#MO+XvryLEhZz&#h$@_=Cz%F;SSxJ;f&{JL?&HRe z)j)g8aMD?oq$e;BVGJ$vN6lwKr)10ty!VK-DeK4?Yu|n{ToSqfA_^*~{uqo)@B?ZR z88b@RWxe-Qe~8N)<{yloL<%%7TLxls^yu?rW29Z7ZYZ=|xjLfYA*7&ayOQb5z^Hh; z=tNN&11p>)h8yR~2nPDPkmNYzGnlQJy)>HzD_oRepWgO`(ljl$;-foc*{ZNgOp`fa z2_6=HusPAIyGYl>mhvMQ1K}7jcR(gEXOEvE#P8acY^3rtCzNXzS}MM4Q)&k z#6vY5;g^E$2;M!>LnsS_2605aG1DVX{>WY(e(s<3Y4?+kAu=F9F|iX7GhIS1W{l@Q z_EQwcr3b-)O@bN;7B8bi5mypz%A&Fjg?b?=p4j2MJZA0lh!q(oDM5hWgsOh?uKzkK zOJswTYfLP&9y4&z95}>}L9`49={P{rwQ)_9&Y{0=)9MF+e8#q95E%=%*UbxUUJW<; z{!6Q`8IV4m-h#EoiifVc_fvFiDMGy>wZLl4B&AQd#~bng#->F~ljd)SA98FCvM&fIiLw7Mg_j_OLLY zrC3{ACkva*@^LTFWgX}LK#}IWd}G58h~)@;<(mOeV&sfy<` z)~S6ErZN&l6X6}m{H3OsC*wmaeKp>d{32BM+3evBd>p z*hz;fyfNmD0vAKY%KY>N@>VWHac6H*9-1_u@1!Go3b^|50R(~f&lxTz8YDAR%AawH z)Cw12bj&mCina@;2Jj+sEh&5?UxVui`JY{S!J-ZJF}^bU6$A-^c@$h;u)U!Enirh@ zj(-}dAh9YqV_hYQkFeoX7fgBVj|^VpOL5)C!`C4%*K;S6}$#qAZ0gGpzFS z8bG9(!bvH3c};L^D*h#m*`&4?xEp2ygzmUqSN}$8QPaU}L5e{n)sMi2MWV(5GrJZZ z%)~y0z>7LUlbww`XyzJ!MF#%r+)Ukd6mo!8D_n~(q#Q{Xz)GXJ*yr;Z4h3Uh^O&dL zOs9y?5cE!IrSd2=5E^dah#V%Gf1xKzJqs&6iNaJcXx@v0WD2~Yxn~9lbBBSfF0h*< zCn+6hJ*aN)61R~tAmUE|(Fh=I@`)$o2jY%@)fpiULBtb`qL|wF4ReiYC}_id6{0!y zCIR&wNi>N>TZ_R}il*z$roI8ne@KU>nFWlNOeyXXJfP?7nC?A$_I&azqr5j_fRm8j z;%u>eP`yJ(2e?62yg2{UKT~Mt`Za6OV$qUNh;Fj&afy%;hoURC9P)0y}Zm6BMDI+?tOO( z3Jy?T>CWZCAe?ZGUM~Qc$u)#*Z?f?ePvY9O zS9{+v#>rN$ua?7_fmt7!_gJbn_FIlXJ3_9Jrm`HqZ(#p4MSZb(hNe13_aUC^3w7dz zXKH|nvcZ{IgHwCl60iy8K~b_V-511&Q|v1da73;9aDwFFPf_oWzOl8ooz)tVmJg zYgR^KJUyq$vco2jl!XN=O&_-!V~aypMb@ui2IYo67$%h&H!$+k(|ooZHpTr-q5k7^ zkYYFM@rb`M;+N|FVMHrMdMS}{5+63}ll7~sfAm$qv^r~7+jc=wzy4r2wzha4FfpEw zjeKrd#pmj~rL^Fh*TW-J4O7*>t^UsQ&B<%E6|1@6MQzTgow(Ev$NvkQgZ@*lqGel^ z^73+jSPkbr718{~{%rH0z0lm?viRWKfz;-{JH#=F1K<=-*Vf3u$8AeCR7vlldg&m% z95bZ!_l(jU9FzbBr&f({`Qf|OK0_oE9^IZWMhde^Ey1+lph(>E{7BP1sk5GEA;q|m z@(C0vM-;p6@=_$EQIU~Z7nhUYSrcxfO7tL1DTd-i<;g$;djG_NI-Y03zXQ=jvKV`F*-w}TPa zt$X)LAh`*YgsL)N9kTL;1Gz;=Y)g^B+P=4-Rb^apAixsHJ+O0iWpjDB>*Rrb%NXDn zv*J~3hs*L^z1mq-bH>>bK$MdC&}|1YwD@Ui1$e#aCm^poA8>O!4S!Lj+yPfN{hraq&i#EA`sK6VqW+O8 zRoYwASaBqLFZHQ(LA(+paA_R6;&tFGy%rHHZnZYkY{En`+qKAYX(B0B#;3%7C>kOg z`pb)tv#|Od5ER^S$kZ}nl>0p#+V;ompcmmV_PF02jcj>M(W$Tu1oCxV&6u6($5Kd8 zd=9t%zKV@__VBoQeVgUH?%WxvEtW?MJS~6{VzPWYv)dENLCt^oVP4!4MNhEnXjP$O zkiBWSd13bZtCyqyRyGbWRX}!1FRsivxI!g;FN6?ka!YMRk9zs%2fia;(x_Y3hKE1( zF@Fv~|EC)2e|Sgz+g=5v83+Wa{Euj!ga85~Euy4mRIcv*ReeX;@(GjynDg}U0M`Q% zHzMN;0UY&-1;{>7R?kNxzLW%Sy2E6TF4*>rw2IUR!W4ofBUwyrt)LNvJ;H$)4zca~ zXw;Z8+Er0G5U`vU%izQ>J7?Vrdat;D?d#W9mTWwZVaIf)h|a3CE8W0|o%?Z$jeL_g z>Q>N^$wSz@8_GiKCj~!P6HTW%Gt7Lyh`BkQD^?WpP-U?cD`s2H$W6PjN{;2YYrO(u z2F%dIr{dAfkQn->uA+p?tE`^*DLFJ45wrEGcxOC$Qg)^U1=u+blV-2Zl;noM;vr2l zrG{EuIO?c3gq0Km2fP_|EE&M{E$Hzn;SA687Fjye&%4PVsVP?nDdLFIJ|kXVw(mL9X+MBj)+JH@?cBLv6mZO| za~b9c7cIGqVtTjEEpwsqIcC zxCNglT6=EzXpB|C#3~mC4iljr%<_8{ZeheQDtib)dRo6w1;I<}McX2i-o(?4JuST7 zb5Nu;r_3Des&{kxq5Uh$oqMe?c@agcYY$U@A<+}CU0;c18Kc%tRU^8M zEEXv+kYV6wK|Ag{YaxZO0g0YARGcyZCLUXDQ55YvMsojYcOV8C+XR(LHM66`#@j~j zvp19+6p|=@1eqH7U>h-C$}I%t1%A+D<-->672zVdUINfVKYXkv9~-9qAeuT$W+8B< zl3`w%JWvRg3v_SW=$gaN*}s2Ps-1|9sWFR^UvsNU8129AIB}Pye-a`p>fwlYoWFOU5%Djcuh^VphUZlW{mXT43LKvqQAmRp z&XEL2J1kgXuJMzBy=91u`;2T}(SrmXYv?4(w146J>3Mk-OeJAG&?@?kO{767`yDP9 zVtrFOVU*YDnjx>slo%WBFWtDUWVIRhVJ<8-8Lrs84)*)FD2iwci-x#M)O?4R>sUyU zQe0d0b!*h9(E(Lfu&GEk_!MA=KLaVHrZ`pH{-bYq@lai+T}{w-7?)nRoyr#jj)D<0 zwrI{V5&e~_A4*~A;Gn~tu10MqH*C>e7l}$ZwpS#B3C=`IUjk$O+FWy8TbB*pbIrn;@_@!+_r5GDl0Res&igxi?3(cQm^W#pX~7exXNmEB6$bTAj`=mqRF7x zYHtkfOyQ+85Fu$#WZe8yHrG$to-ZS%&il1i*uFU6g9+Pd_Wa86;uM8X!O+cDv;pMm z^iNzY2jFYul_ttB>~5rxa(MP8YCQo%L2*?H)Hy4dd5ES(L3kHy0g;!B9)(OH!}0dG z&bHUH>%S)_tCN#r#W+#Knu3ReP~!M=@WKd-`sbe42IB$!NcN{soysR3JG)WNUlFPh zTo|XWYNOy;E1G6uKFcB{5KCx--J(>Hn1>1Zl6?ZRC(>_(g}^L{7v%+L;Y4!E>Y<+B z07?taHTS^BfjWT4=jIr_^l+9u8a}kI-5Bq4?7A#WdPD-t=aBiCjHG1RC?)jCUW*>H zz0xt&yZ@oH^A^D_@izm|R|>MfJMNiBm|}u;_wW;|AI6_;OM2Y?(pvjnckBE=VSV+8 zk8M9{l{NNK>S0}3SZ{9YigEEL=jhoVT4?+#;8#;b8Rb)HX(<%v3r^;UfT?sgc?UJ% z-l6rB9h$d~^JxT(fKIETr%&R4&s*gu;a9gVFYfx>n+^Qzr{|5nWhatcX|xT#z;=^z zpt0f-9OfN|1`kN;c+a?4#WT24@wz+#OWJYBUt*o@zM6t4UlE8wdZQ9&9KmI_g>a1Ro9==HjHPQCUOe!c40-c=VsP}(vM|gC>kcQ zr~=OuE-I?6Jld#1CC=e^2D~d1Zi&V&E8E;4VvKNdmC55l?-H^75^@JBL;DF6&KbJe z-26k{P3BkPra{aUrn$7N;-2z{QOp#b^~`?x3l})aU7GD z5AKpeL9K*w5<#Ujn1;+|D?fnMEb!9(OjGep9q;Na8QHMs+x^&{NX-M;iH&J{hMhk1y`} zT5cX()o^pl8Zl-T4-+WA2#U|E%8-A>7bi z8++vIF`Js{_}4!BAMVYS%jc}JuB%a>#XCwAeX*WGv&MDCEa2uYx+d{K>>>)FJ(ntZ zCzU+^P}u*T9!zI3E~PxGhaZ#=ye_TjNV6Ij=NY)SBKedaR1~3tP%~PmZW4KRK>sTZ zYrqDCBVP1X&xe+nORR*Ey~W(Y=#>|CEjm5+t>05rs?@KAx2C6m`E}O}FYs2$dwPnW zx?r@9wgKNhDs}g~_-OR=sIh-S1^PerBfYpW6~t$$Oa!IFVi1%bIH`yqF0x$N6^vWQ z9A9;c=?^DW`5Xc1q%;9E-3|ccPDF0C=muPbV3*D>oAAr#2(F3#SX9ola&uPnMU~4b zct6pD1f^1AIWj;e!H+BKq}hdqGGFbkeVY?c>$#4ppv6UsHi)e~K?DiHPWh5zREoPP zQ3Y$I4@97hgBR9f8m2w-X6fK}*N!K_w;r&hL4A7;XO!nl2Ue9!`ss^AF#X&;?S?yX zIw`MA?;l7dfW-|2`8!lpu=e-LKRTh_0|vaa;k*K03JjoSD?dr*GRv_V_q`dZVyPf~ zYoeSZpoe*mPY078&#QYrQY8={MLI9t5@&emD@D0NpQ&KJB$W{@My7<+I> zTdf!#xWmd+CGef5Xp{*cw}PjWC`4W^f)_BtS?wIiww}xtPjvJkk;uN1Ci+P_?Yq{U zPiu33`N<_^CL?5S3#r+UEn{8sn4a+uSWJi~TN=w;Nv`=2TK$;Z^&jc;zKjDT7tt+? zk*!2&nHRDe%lu!!&O>Oi(*A&X2nj~iE)vZsTo@*=0k>OEhX5G8UJ4 z>))emU_xh-jp5c2K@~7>M2RvD&#c43QU$%7UL)gnc{{NNflvWbbjimMP?lrL#aK@C z?rJ!yIV1jzvWGBZ3sp;;uZ8R`i<6FB6p13q6NNpTPO%dvZdaF=Z{zwUJ&KN*k#>UE zdLkh@Ue?(K!tP1$KDVfnqz~!+0{^jt@MgILkekd%Xo8B^+fwYACgU^JZ6d4(fF^GA z5l}?|w8b=-h%Kl9y;G!c%9y@oo3zCS{`kC%I2jaXssqV`;w!t+aF(O$HtkwACL%1K zjS8Sp1DY&G9s&KXHwgR!%A!&w9;Z-cNxDkis}h<^61wuC6Wte2a8G+(I>wN~EF% zvqpds2oz>pACt*@-G5z+s)sFa!3z&OOKfNOmCsFWYipZfJzV)my3v>?nVPTF`f$}b zKj8cxJhTS6&SNTZp&(0>%40OC+|b-S)BLN3WrFoHlKwzwVw}~voj_2Nyl+W`wMfnR z`WzUZA&e4-+-%P94ajaJq}8+!u5wM=s5ix0<=vKZj=)hHJh-mLL>F{DN*&ZdZz@vG zsdT4;$CK6|+}A-Pq^ZgL{3olftWo&mLiNAhFJYATHX#VP>~zOlbbe^shM1b(jcolp z{xz^zizsvp=o*n=jG^idvOdX*7Nh3NIZl3^?ORWXS1aZ{S#I|*csX25M=u7@Ob)9v z`GgIk?j)w>Q!?#Fw^a3Nwy+_kp2BrBSXgV!P=*|ei0}-b*MC9#ce!B4#XCs#yLMzXR(Q?72fZU9xNvu)PRf2;z^Jx%r5eWUz7P&%NZN`Wq(5CD%sH-_MIP_*mzu)`C=l1sL3Xl~MX}!at5a*Er zc-2AOyMJn4m_r8%Ne8U9#JZOUZ4W}>eBc&iYzG8IlZu>hA&(cE7nFyz->*Uh`~#!r zCou(;M-KN`O70QYR_3s@UT@nNwFMBTF9Y<7zwkl;KP+E_s733v*gPZCye6F{ueEe>Cr%v*Pg* z@F8~k-|dl~XZdV6P|Hz~{?B?CbHbJbY8#RG7{5xsqFhOqUP>$-ekJ%R-^MZVhXpN^ z2Z+do{7Ef;3BGI^hmAee3-og*NF2fDyu$!-@jKpLpV|ubf>GxgpPSfdk`--Kq;~}t z$zq}=C#cxl=ULho(i{opS$UZ}FPhcp=%C47U2sFMRbZ_q-Z#X4Qb>mkK*ji4vhAUz zl{yqcu#5V7yhQVNg@&Z3ewg?BnfMN1<~Ot}d-rSyMZ!PDpX!WGrV` zAjW|O_}qh9tIjE`C54hl6^e|P_Emg1;grgC3mPfIFO3Qt)BQwCa3J@u6MmMEu!6UZ4QoL?*DH=N~yA!$eF&KSel zR@QRCC}%heM3{2-?{#G#RgYJ6Xv`@Snj?!~i+jIzyTn$^diwPF2JuX3Q#%EKKkf-q zC{V{ugDxYwKuISsUOz;pp&jybgxn;tppyvq(Wy1gMNjq`)n{xcMts~?X=w!n6lOlv z)bANicmAaerJ3bcJeSeCxMeIT}@{3>aRNlN-S-o#k&bXfc1gGQFBIXvLW{uuhx zLZ#~kHX4Mp9F3I5hveG6B%~T&Q6a?y1{l&7 zB-%}%9;IPQN#G>4Gr1l}8jxd_K$k=w#GuM8sEek4VrCB=9rVcSf>B2;4$47(Nb_Yz z0UiIW%*B5Z2L-2kvWX35AK71heEZK*jJZI^ zg)=H~;J2m7itD{2LR&Ofb^q^apvclCDcnUp1!>1O*D{GJxKI5x?X`rRI@hXU@ckr( zW?WpEm-;AOga&!G`P%7~xR9p5!MtuM>+C3++K1?Y%@8x>S!XVH*|(8;rO5fDT~4}& z(flsT@_pBKQK(53F7!lB+mqQf-bvypEE5JPX{eA(($kPTt-xJN_`eGA6@ljHFnaWf z{%4nB#2~{7Iv$lmj8}M{$S=EYYB$gGMW3HyMnZvU3rv$a?--@B7#RfPy~WcEveieQ zsQ~8U`&2`(+8ZJEAJRQB1dm`o!B-&a+0L|MnLYRJEbTPy&^`Fg*NLVcH6K3bXxck^ zP0f}0!~J%+*S|1hjN(oAG1h}d_Ev1)I8ayTgR1bC=Wh6>&-c?l==){DU-T_!%v@vl z%#OOKngtPCes=y-b8hI?%G3{E40cIN`Ka?wY4dE)l4EVVkEs;6qR&Gi8qEaVg5kMA zT_}g@S+ODy*Ti^UE-sECn%5wyv9qzU0e-A@_AhWaT)wJjItTpS2v+Zowp_kUh@6v{ zlfqwI!nqhh#ZON)7&4^!+*|ABgVVTk&LV&m=UleK-Kex06;%cOdlFhi!s8~8x9X$K z7j3+}yf7HP)7NFLECJJf>2vo6o@wwzIz1mTZ%DD-LF@RhIbghOMJOAc`9} zxD}oUmb#-t0>`hDfUu-czpk(nS#A~7!-j+PT=J&mUArbxq;F7A_ItVx>GOsAqD4BI z`9%59sZFORt@Oe#A$jM{iJbo!vw3s#)p_guZ!gs>#m;b*x8>S>;j=U^-myg$r*%Ks zlDWoO9xz%fwb%aT4eK}MXD`KTc*dV;`DE{FA2ConGyRK3ED-jbMq)eqKYm(M_pue= z#K0yS5Q-!~T+|&te*y)4IzWPzg0Ti02w)9eL4^wkElehK7crfnmIEB1@kG zpC(_vdNpe8+O_{EJ}?BtqVXr+4GMQJFI&}64n${M`9lrAZ-G7v2 zS&6>@?N0iVic`~^oC0q9SC(C6>W}QQ^wK=}BDeTYES_=~?SmWqx~$ip-;luj&Op0b zUtiw@X*==A5i_$_mTTa7_kzcc9qSVMpk-0naZ83|x%8$gML>zalYxOj6W3k4y4R?4fE4?< zTM8xph^z%jdBboinMQTBK@o)K`8dt`yr>)$ekvm)!>``2=3pcplD%HS@#CZDHHW%~ zF|aj5e36Y<&G(9}i5tBIJ(C?5J#o}${AsX~Mmm+9x$MClqY%(GgeVQ6iu+^ExIab`nCeqmuor%PF9 z0P&VTFTh1TsI??ug93!hFz7QrgB!)jHEao}6jXTrR|A^7)7A{o?9q7-fWo37{;ez* zHPQ3WuaDY7nSly-=I|L@2>&Dw~gfk6G~(7rW%Mj z`2+_C2kPx;hFtS`ndFp|Y;Ir_g+c=BgmThfRR!i~RoR+x;D8%t;0%Nx6q}J%o4Q9s z8y*hOJ(0USd`bC<5Y&7lDHBxlQG{i+#j?NNZX5I`gp=2!jXtuz$Ea5A^W%4a+nq$o4+!_uw{c6 zuP%q$Hv$&#G)Kn;WCC5IIiuNsc9}1V@x?_*O(Ur8VN<<@p^&%hYgQ{mSZq_LOj!@5 znNzt^Cn$iM`BmdOQn@9fs%CLb@5AHqKKySP=C1nKHV8H>N{a573#w>r=$#H0( z$qz2|LOx(XXZOPw?;ej@H>zC^l7}sM!k50?kAVos*8YI-zVl8+E9V$<+5Ieojl-=g zOw_dS*_0yz#eW`q(F=audB%I@nwTH9&+fc=kI>y%SK!@sjs~R}#&r#!;u@+%S+n#o zwWZ4&AB^wyV^P*ecgGjXHHEqQbqvW`#HZ99v0&2p*Z*C9c&qz^#Q0lr%gztllrVj0 z$MqICrQ3Im7vv>u->JAGEgBmK(}UVP5vI)~|LLUhU(7ZC|1`e-e@WK4L9nWm+ zVVm>ScT-IH9E1GEP4}Dsk)NB{JRdiH>o(kIxUr#;vElF$(~L~bjE&8VOo7VGjEo{e zRYkvfg4g2t?hAtc_zBem4Lo^*uDpYTpSz!LH+%O$w?)48Za!n(y#3t0-2B{p>Mj*z Q@StwWadz*gTF+VaPdm%vng9R* literal 0 HcmV?d00001 diff --git a/vzdump.adoc b/vzdump.adoc index f0a7131..35b5c53 100644 --- a/vzdump.adoc +++ b/vzdump.adoc @@ -228,12 +228,16 @@ encryption of backups, see xref:storage_pbs_encryption[the corresponding section Backup Jobs ----------- +[thumbnail="screenshot/gui-cluster-backup-overview.png"] + Besides triggering a backup manually, you can also setup periodic jobs that backup all, or a selection of virtual guest to a storage. You can manage the jobs in the UI under 'Datacenter' -> 'Backup' or via the `/cluster/backup` API endpoint. Both will generate job entries in `/etc/pve/jobs.cfg`, which are parsed and executed by the `pvescheduler` daemon. +[thumbnail="screenshot/gui-cluster-backup-edit-01-general.png", float="left"] + A job is either configured for all cluster nodes or a specific node, and is executed according to a given schedule. The format for the schedule is very similar to `systemd` calendar events, see the @@ -241,17 +245,22 @@ xref:chapter_calendar_events[calendar events] section for details. The 'Schedule' field in the UI can be freely edited, and it contains several examples that can be used as a starting point in its drop-down list. +[thumbnail="screenshot/gui-cluster-backup-edit-02-retention.png"] + You can configure job-specific xref:vzdump_retention[retention options] overriding those from the storage or node configuration, as well as a xref:vzdump_notes[template for notes] for additional information to be saved together with the backup. +[thumbnail="screenshot/gui-cluster-backup-edit-03-template.png", float="left"] Since scheduled backups miss their execution when the host was offline or the pvescheduler was disabled during the scheduled time, it is possible to configure the behaviour for catching up. By enabling the `Repeat missed` option (in the 'Advanced' tab in the UI, `repeat-missed` in the config), you can tell the scheduler that it should run missed jobs as soon as possible. +[thumbnail="screenshot/gui-cluster-backup-edit-04-advanced.png"] + There are a few settings for tuning backup performance (some of which are exposed in the 'Advanced' tab in the UI). The most notable is `bwlimit` for limiting IO bandwidth. The amount of threads used for the compressor can be -- 2.39.2 From 1ffb0cf58cd43e8c1cdfb396fbc6c0a9ecfc0eb4 Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Tue, 23 Apr 2024 21:45:14 +0200 Subject: [PATCH 11/16] update static/schema information Signed-off-by: Thomas Lamprecht --- api-viewer/apidata.js | 28 ++++++++++++++++------------ pve-firewall.8-synopsis.adoc | 4 ++-- qm.conf.5-opts.adoc | 2 +- 3 files changed, 19 insertions(+), 15 deletions(-) diff --git a/api-viewer/apidata.js b/api-viewer/apidata.js index ffc3a1f..aff69c6 100644 --- a/api-viewer/apidata.js +++ b/api-viewer/apidata.js @@ -10956,7 +10956,8 @@ const apiSchema = [ "type" : "string" }, "pending" : { - "optional" : 1 + "optional" : 1, + "type" : "boolean" }, "reversedns" : { "optional" : 1, @@ -11328,6 +11329,7 @@ const apiSchema = [ }, "isis-net" : { "description" : "ISIS network entity title.", + "format" : "pve-sdn-isis-net", "optional" : 1, "type" : "string", "typetext" : "" @@ -11420,7 +11422,8 @@ const apiSchema = [ "type" : "string" }, "pending" : { - "optional" : 1 + "optional" : 1, + "type" : "boolean" }, "state" : { "optional" : 1, @@ -11494,6 +11497,7 @@ const apiSchema = [ }, "isis-net" : { "description" : "ISIS network entity title.", + "format" : "pve-sdn-isis-net", "optional" : 1, "type" : "string", "typetext" : "" @@ -17506,7 +17510,7 @@ const apiSchema = [ ], "optional" : 1, "type" : "string", - "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n" + "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022/2025\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n" }, "parallel[n]" : { "description" : "Map host parallel devices (n is 0 to 2).", @@ -19898,7 +19902,7 @@ const apiSchema = [ ], "optional" : 1, "type" : "string", - "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n" + "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022/2025\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n" }, "parallel[n]" : { "description" : "Map host parallel devices (n is 0 to 2).", @@ -22378,7 +22382,7 @@ const apiSchema = [ ], "optional" : 1, "type" : "string", - "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n" + "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022/2025\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n" }, "parallel[n]" : { "description" : "Map host parallel devices (n is 0 to 2).", @@ -28541,7 +28545,7 @@ const apiSchema = [ ], "optional" : 1, "type" : "string", - "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n" + "verbose_description" : "Specify guest operating system. This is used to enable special\noptimization/features for specific operating systems:\n\n[horizontal]\nother;; unspecified OS\nwxp;; Microsoft Windows XP\nw2k;; Microsoft Windows 2000\nw2k3;; Microsoft Windows 2003\nw2k8;; Microsoft Windows 2008\nwvista;; Microsoft Windows Vista\nwin7;; Microsoft Windows 7\nwin8;; Microsoft Windows 8/2012/2012r2\nwin10;; Microsoft Windows 10/2016/2019\nwin11;; Microsoft Windows 11/2022/2025\nl24;; Linux 2.4 Kernel\nl26;; Linux 2.6 - 6.X Kernel\nsolaris;; Solaris/OpenSolaris/OpenIndiania kernel\n" }, "parallel[n]" : { "description" : "Map host parallel devices (n is 0 to 2).", @@ -49523,9 +49527,9 @@ const apiSchema = [ "default" : "login", "description" : "Run specific command or default to login (requires 'root@pam')", "enum" : [ - "login", "upgrade", - "ceph_install" + "ceph_install", + "login" ], "optional" : 1, "type" : "string" @@ -49618,9 +49622,9 @@ const apiSchema = [ "default" : "login", "description" : "Run specific command or default to login (requires 'root@pam')", "enum" : [ - "login", "upgrade", - "ceph_install" + "ceph_install", + "login" ], "optional" : 1, "type" : "string" @@ -49743,9 +49747,9 @@ const apiSchema = [ "default" : "login", "description" : "Run specific command or default to login (requires 'root@pam')", "enum" : [ - "login", "upgrade", - "ceph_install" + "ceph_install", + "login" ], "optional" : 1, "type" : "string" diff --git a/pve-firewall.8-synopsis.adoc b/pve-firewall.8-synopsis.adoc index cd2f2fe..93675e5 100644 --- a/pve-firewall.8-synopsis.adoc +++ b/pve-firewall.8-synopsis.adoc @@ -38,7 +38,7 @@ Destination IP address. Destination port. -`--from` `(host|outside|vm\d+|ct\d+|vmbr\d+/\S+)` ('default =' `outside`):: +`--from` `(host|outside|vm\d+|ct\d+|([a-zA-Z][a-zA-Z0-9]{0,9})/(\S+))` ('default =' `outside`):: Source zone. @@ -54,7 +54,7 @@ Source IP address. Source port. -`--to` `(host|outside|vm\d+|ct\d+|vmbr\d+/\S+)` ('default =' `host`):: +`--to` `(host|outside|vm\d+|ct\d+|([a-zA-Z][a-zA-Z0-9]{0,9})/(\S+))` ('default =' `host`):: Destination zone. diff --git a/qm.conf.5-opts.adoc b/qm.conf.5-opts.adoc index f0425c0..da30554 100644 --- a/qm.conf.5-opts.adoc +++ b/qm.conf.5-opts.adoc @@ -659,7 +659,7 @@ wvista;; Microsoft Windows Vista win7;; Microsoft Windows 7 win8;; Microsoft Windows 8/2012/2012r2 win10;; Microsoft Windows 10/2016/2019 -win11;; Microsoft Windows 11/2022 +win11;; Microsoft Windows 11/2022/2025 l24;; Linux 2.4 Kernel l26;; Linux 2.6 - 6.X Kernel solaris;; Solaris/OpenSolaris/OpenIndiania kernel -- 2.39.2 From f85620dfc9a6947f427d771577a7db3e533679af Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Tue, 23 Apr 2024 22:07:28 +0200 Subject: [PATCH 12/16] backup: move screenshots for retention and note-templates to their section As the job one is quite a bit crowded as is and there are some screenshots that fit really well with some specific sections like retention or the backup note templates. Signed-off-by: Thomas Lamprecht --- vzdump.adoc | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/vzdump.adoc b/vzdump.adoc index 35b5c53..2d73722 100644 --- a/vzdump.adoc +++ b/vzdump.adoc @@ -245,14 +245,11 @@ xref:chapter_calendar_events[calendar events] section for details. The 'Schedule' field in the UI can be freely edited, and it contains several examples that can be used as a starting point in its drop-down list. -[thumbnail="screenshot/gui-cluster-backup-edit-02-retention.png"] - You can configure job-specific xref:vzdump_retention[retention options] overriding those from the storage or node configuration, as well as a xref:vzdump_notes[template for notes] for additional information to be saved together with the backup. -[thumbnail="screenshot/gui-cluster-backup-edit-03-template.png", float="left"] Since scheduled backups miss their execution when the host was offline or the pvescheduler was disabled during the scheduled time, it is possible to configure the behaviour for catching up. By enabling the `Repeat missed` option (in the @@ -275,7 +272,11 @@ Backup Retention ---------------- With the `prune-backups` option you can specify which backups you want to keep -in a flexible manner. The following retention options are available: +in a flexible manner. + +[thumbnail="screenshot/gui-cluster-backup-edit-02-retention.png"] + +The following retention options are available: `keep-all ` :: Keep all backups. If this is `true`, no other options can be set. @@ -395,6 +396,8 @@ Backup Notes You can add notes to backups using the 'Edit Notes' button in the UI or via the storage content API. +[thumbnail="screenshot/gui-cluster-backup-edit-03-template.png"] + It is also possible to specify a template for generating notes dynamically for a backup job and for manual backup. The template string can contain variables, surrounded by two curly braces, which will be replaced by the corresponding -- 2.39.2 From ad285c9a91dfca250aee0ef5bfd76a32c483dbd9 Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Tue, 23 Apr 2024 22:09:09 +0200 Subject: [PATCH 13/16] bump version to 8.2.1 Signed-off-by: Thomas Lamprecht --- debian/changelog | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/debian/changelog b/debian/changelog index 9d00143..f831173 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,14 @@ +pve-docs (8.2.1) bookworm; urgency=medium + + * update static/schema information + + * backup: add various screenshots from the backup job add and edit window + + * firewall: add documentation for the new nftables-based opt-in + proxmox-firewall implementation + + -- Proxmox Support Team Tue, 23 Apr 2024 22:09:06 +0200 + pve-docs (8.2.0) bookworm; urgency=medium * installation: fix volume group name -- 2.39.2 From 788fffd01c380868efce01b975c3b79227973aa1 Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Thu, 25 Apr 2024 09:21:04 +0200 Subject: [PATCH 14/16] vzdump: drop overly scary & outdated warning about fleecing This is pretty stable, albeit naturally an advanced and new technique. Signed-off-by: Thomas Lamprecht --- vzdump.adoc | 3 --- 1 file changed, 3 deletions(-) diff --git a/vzdump.adoc b/vzdump.adoc index 2d73722..79d4bbc 100644 --- a/vzdump.adoc +++ b/vzdump.adoc @@ -139,9 +139,6 @@ backed up as their content is managed outside the {pve} storage library. VM Backup Fleecing ~~~~~~~~~~~~~~~~~~ -WARNING: Backup fleecing is still being worked on (also in upstream QEMU) and is -currently only a technology preview. - When a backup for a VM is started, QEMU will install a "copy-before-write" filter in its block layer. This filter ensures that upon new guest writes, old data still needed for the backup is sent to the backup target first. The guest -- 2.39.2 From 73c340dea7fdfff7d9bdb42fde29c8c02e2b67a4 Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Thu, 25 Apr 2024 09:24:19 +0200 Subject: [PATCH 15/16] bump version to 8.2.2 Signed-off-by: Thomas Lamprecht --- debian/changelog | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/debian/changelog b/debian/changelog index f831173..7eab3e1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +pve-docs (8.2.2) bookworm; urgency=medium + + * vzdump: do not mark fleecing as tech-preview anymore, that's outdated now + + -- Proxmox Support Team Thu, 25 Apr 2024 09:24:16 +0200 + pve-docs (8.2.1) bookworm; urgency=medium * update static/schema information -- 2.39.2 From 11a062af1bc398b33ff673538a78f27b3520bcd2 Mon Sep 17 00:00:00 2001 From: Friedrich Weber Date: Mon, 29 Apr 2024 09:49:22 +0200 Subject: [PATCH 16/16] fix #5429: network: override device names: include Type=ether Mention that the systemd link file should contain `Type=ether` in most setup, to make sure it only applies to Ethernet devices and does not ever apply to e.g. bridges or bonds which inherit the MAC address of the Ethernet device. Mention that some setups may require other options. Reported in the forum [0] and in #5429 [1]. [0] https://forum.proxmox.com/threads/144557/post-656188 [1] https://bugzilla.proxmox.com/show_bug.cgi?id=5429 Fixes: 96c0261 ("fix #4847: network: extend section on interface naming scheme") Signed-off-by: Friedrich Weber --- pve-network.adoc | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/pve-network.adoc b/pve-network.adoc index ef586ec..be8d63c 100644 --- a/pve-network.adoc +++ b/pve-network.adoc @@ -173,16 +173,25 @@ configured, including their naming. To assign a name to a particular network device, you need a way to uniquely and permanently identify that device in the `[Match]` section. One possibility is to match the device's MAC address using the `MACAddress` option, as it is -unlikely to change. Then, you can assign a name using the `Name` option in the -`[Link]` section. +unlikely to change. -For example, to assign the name `enwan0` to the device with MAC address -`aa:bb:cc:dd:ee:ff`, create a file `/etc/systemd/network/10-enwan0.link` with -the following contents: +The `[Match]` section should also contain a `Type` option to make sure it only +matches the expected physical interface, and not bridge/bond/VLAN interfaces +with the same MAC address. In most setups, `Type` should be set to `ether` to +match only Ethernet devices, but some setups may require other choices. See the +https://manpages.debian.org/stable/udev/systemd.link.5.en.html[systemd.link(5) +manpage] for more details. + +Then, you can assign a name using the `Name` option in the `[Link]` section. + +For example, to assign the name `enwan0` to the Ethernet device with MAC +address `aa:bb:cc:dd:ee:ff`, create a file +`/etc/systemd/network/10-enwan0.link` with the following contents: ---- [Match] MACAddress=aa:bb:cc:dd:ee:ff +Type=ether [Link] Name=enwan0 -- 2.39.2