From 99ff46bb2775dbd82438de685d2009a7536d1b42 Mon Sep 17 00:00:00 2001 From: Brad House Date: Fri, 10 Jul 2026 01:28:24 +0000 Subject: [PATCH 1/5] stacked PR #1129 Squashed baseline of PR #1129, on which this PR is stacked. Drops out once PR #1129 merges into onie-modernization-2026. Signed-off-by: Brad House --- .github/onie-build/Dockerfile | 28 +- .github/workflows/build-onie.yml | 83 + build-config/Makefile | 12 +- build-config/conf/busybox.config | 832 +- .../crosstool.x86_64.defconfig | 49 + .../uClibc-ng-1.0.22/crosstool.armv7a.config | 641 - .../crosstool.powerpc-softfloat.config | 630 - .../uClibc-ng-1.0.22/crosstool.x86_64.config | 625 - .../glibc-2.25/crosstool.armv8a.config | 554 - .../uClibc-ng-1.0.22/crosstool.armv7a.config | 572 - .../crosstool.powerpc-softfloat.config | 558 - .../uClibc-ng-1.0.22/crosstool.x86_64.config | 525 - .../glibc-2.29/crosstool.armv8a.config | 780 - .../uClibc-ng-1.0.35/crosstool.x86_64.config | 934 - .../uClibc-ng-1.0.38/crosstool.x86_64.config | 936 - .../conf/uclibc/1.0.22/uclibc.armv7a.config | 244 - .../1.0.22/uclibc.powerpc-softfloat.config | 244 - .../conf/uclibc/1.0.22/uclibc.x86_64.config | 243 - .../conf/uclibc/1.0.35/uclibc.x86_64.config | 243 - .../{1.0.38 => 1.0.54}/uclibc.x86_64.config | 0 build-config/make/acpica-tools.make | 7 +- build-config/make/btrfs-progs.make | 17 +- build-config/make/busybox.make | 2 +- build-config/make/crosstool-ng.make | 15 +- build-config/make/dmidecode.make | 2 +- build-config/make/dosfstools.make | 45 +- build-config/make/dropbear.make | 2 +- build-config/make/efibootmgr.make | 9 +- build-config/make/efivar.make | 28 +- build-config/make/ethtool.make | 9 +- build-config/make/gnu-efi.make | 99 - build-config/make/gptfdisk.make | 2 +- build-config/make/grub.make | 4 +- build-config/make/i2ctools.make | 10 +- build-config/make/images.make | 8 +- build-config/make/ipmitool.make | 15 +- build-config/make/kernel.make | 13 + build-config/make/kexec-tools.make | 2 +- build-config/make/keyutils.make | 11 +- build-config/make/libaio.make | 90 + build-config/make/libmnl.make | 102 + build-config/make/libpcap.make | 2 +- build-config/make/lvm2.make | 20 +- build-config/make/lzo.make | 2 +- build-config/make/mokutil.make | 12 +- build-config/make/mtdutils.make | 91 +- build-config/make/openssl.make | 17 +- build-config/make/pciutils.make | 6 +- build-config/make/pesign.make | 90 - build-config/make/popt.make | 8 +- build-config/make/shim.make | 18 +- build-config/make/tcpdump.make | 2 +- build-config/make/xtools.make | 54 +- build-config/make/zlib.make | 7 +- .../recovery/xorriso-options-bios.cfg | 6 + build-config/scripts/mk-grub-efi-image | 24 +- build-config/scripts/onie-mk-iso.sh | 21 +- emulation/ci-oce-test.sh | 240 + machine/accton/accton_833435_b21/machine.make | 1 - .../accton/accton_as4222_28pe/machine.make | 1 - machine/accton/accton_as4510_52t/machine.make | 2 - machine/accton/accton_as4600_54t/machine.make | 2 - machine/accton/accton_as4610_30/machine.make | 2 - machine/accton/accton_as4610_54/machine.make | 2 - .../accton/accton_as4620_54pe/machine.make | 1 - machine/accton/accton_as4625/machine.make | 1 - machine/accton/accton_as4630/machine.make | 1 - machine/accton/accton_as5512_54x/machine.make | 1 - machine/accton/accton_as5600_52x/machine.make | 2 - machine/accton/accton_as5610_52x/machine.make | 2 - machine/accton/accton_as5700_96x/machine.make | 2 - machine/accton/accton_as5710_54x/machine.make | 2 - machine/accton/accton_as5712_54x/machine.make | 1 - machine/accton/accton_as5812_54t/machine.make | 1 - machine/accton/accton_as5812_54x/machine.make | 1 - .../accton/accton_as5816_54x_td2/machine.make | 1 - machine/accton/accton_as5822_54x/machine.make | 1 - machine/accton/accton_as5835_54/machine.make | 1 - machine/accton/accton_as5912_42x/machine.make | 1 - machine/accton/accton_as5912_54x/machine.make | 1 - .../accton/accton_as5912_54xk/machine.make | 1 - machine/accton/accton_as5915_16x/machine.make | 1 - machine/accton/accton_as5915_18x/machine.make | 1 - .../accton/accton_as5916_26xb/machine.make | 1 - machine/accton/accton_as5916_54x/machine.make | 1 - .../accton/accton_as5916_54xk/machine.make | 1 - .../accton/accton_as5916_54xks/machine.make | 1 - .../accton/accton_as5916_54xl/machine.make | 1 - .../accton/accton_as5916_54xm/machine.make | 1 - .../accton/accton_as5916_54xmk/machine.make | 1 - machine/accton/accton_as6700_32x/machine.make | 2 - machine/accton/accton_as6701_32x/machine.make | 2 - machine/accton/accton_as6710_32x/machine.make | 2 - machine/accton/accton_as6712_32x/machine.make | 1 - machine/accton/accton_as6812_32x/machine.make | 1 - machine/accton/accton_as7112_54x/machine.make | 1 - machine/accton/accton_as7116_54x/machine.make | 1 - machine/accton/accton_as7212_54x/machine.make | 1 - machine/accton/accton_as7312_54x/machine.make | 1 - .../accton/accton_as7312_54xs/machine.make | 1 - .../accton/accton_as7315_27xb/machine.make | 1 - machine/accton/accton_as7315_30x/machine.make | 1 - .../accton/accton_as7316_26xb/machine.make | 1 - machine/accton/accton_as7316_54x/machine.make | 1 - .../accton/accton_as7316_54xs/machine.make | 1 - machine/accton/accton_as7326_56x/machine.make | 1 - machine/accton/accton_as7412_32x/machine.make | 1 - machine/accton/accton_as7512_32x/machine.make | 1 - machine/accton/accton_as7515_24x/machine.make | 1 - .../accton/accton_as7515_24xb/machine.make | 1 - .../accton/accton_as7515_30xb/machine.make | 1 - .../accton/accton_as7535_28xb/machine.make | 1 - .../accton/accton_as7535_32xb/machine.make | 1 - machine/accton/accton_as7710_32x/machine.make | 2 - machine/accton/accton_as7712_16x/machine.make | 1 - machine/accton/accton_as7712_32x/machine.make | 1 - machine/accton/accton_as7715_32x/machine.make | 1 - .../accton/accton_as7716_24sc/machine.make | 1 - .../accton/accton_as7716_24xc/machine.make | 1 - machine/accton/accton_as7716_32x/machine.make | 1 - .../accton/accton_as7716_32xb/machine.make | 1 - machine/accton/accton_as7726_32x/machine.make | 1 - machine/accton/accton_as7816_64x/machine.make | 1 - .../accton/accton_as7916_54xk/machine.make | 1 - .../accton/accton_as7916_80xk/machine.make | 1 - .../accton/accton_as7926_40xfb/machine.make | 1 - .../accton/accton_as7936_22xke/machine.make | 1 - .../accton/accton_as7946_30xb/machine.make | 1 - .../accton/accton_as7946_74xkb/machine.make | 1 - machine/accton/accton_as9716_32d/machine.make | 1 - machine/accton/accton_as9726_32d/machine.make | 1 - .../accton/accton_as9726_32db/machine.make | 1 - machine/accton/accton_as9736_64d/machine.make | 1 - .../accton/accton_as9737_32db/machine.make | 1 - machine/accton/accton_as9817/machine.make | 1 - machine/accton/accton_as9926_24d/machine.make | 1 - .../accton/accton_as9926_24db/machine.make | 1 - .../accton/accton_as9947_36xkb/machine.make | 1 - machine/accton/accton_as_28t_ops/machine.make | 2 - machine/accton/accton_asgvolt64/machine.make | 1 - machine/accton/accton_asxvolt16/machine.make | 1 - machine/accton/accton_bacon/machine.make | 1 - machine/accton/accton_csp9250/machine.make | 1 - machine/accton/accton_ebof/machine.make | 1 - machine/accton/accton_minipack/machine.make | 1 - machine/accton/accton_p9532x/machine.make | 1 - machine/accton/accton_p9572x/machine.make | 1 - .../accton/accton_wedge100_32x/machine.make | 1 - .../accton/accton_wedge100bf_32q/machine.make | 1 - .../accton_wedge100bf_32qs/machine.make | 1 - .../accton/accton_wedge100bf_32x/machine.make | 1 - .../accton/accton_wedge100bf_65x/machine.make | 1 - .../accton/accton_wedge100s_32x/machine.make | 1 - .../accton_wedge100sbf_32x/machine.make | 1 - machine/accton/accton_wedge_16x/machine.make | 1 - machine/agema/agema_ag7648c/machine.make | 2 - .../alphanetworks_bes2348t/machine.make | 3 - .../alphanetworks_scg60d0_484t/machine.make | 3 - .../alphanetworks_snc60a0_486f/machine.make | 2 - .../alphanetworks_snc60a0_488f/machine.make | 2 - .../alphanetworks_snc61a0_486f/machine.make | 2 - .../alphanetworks_snh60a0_320f/machine.make | 2 - .../alphanetworks_snh60a0_320fv2/machine.make | 2 - .../alphanetworks_snh60a0_640f/machine.make | 2 - .../alphanetworks_snh60b0_640f/machine.make | 2 - .../alphanetworks_snh61a0_320f/machine.make | 2 - .../alphanetworks_snh61a0_640f/machine.make | 2 - .../alphanetworks_snh61a2_320f/machine.make | 2 - .../alphanetworks_snh61b0_640f/machine.make | 2 - .../alphanetworks_snj60b0_320f/machine.make | 2 - .../alphanetworks_snj61d0_320f/machine.make | 3 - .../alphanetworks_snj62d0_640f/machine.make | 3 - .../alphanetworks_snk60i0_320f/machine.make | 3 - .../alphanetworks_snq6070_320f/machine.make | 2 - .../alphanetworks_snq60a0_320f/machine.make | 2 - .../alphanetworks_snx6070_486f/machine.make | 2 - .../alphanetworks_snx60a0_486f/machine.make | 2 - .../alphanetworks_snx60a0_486t/machine.make | 2 - .../alphanetworks_snx61a0_486f/machine.make | 2 - .../alphanetworks_snx61a0_486t/machine.make | 2 - .../alphanetworks_snx62b0_486t/machine.make | 2 - .../alphanetworks_spx70d0_082f/machine.make | 3 - .../alphanetworks_spx70d0_168f/machine.make | 3 - .../alphanetworks_stx60a0_486f/machine.make | 2 - .../alphanetworks_stx60b0_486f/machine.make | 2 - machine/celestica/cel_d2030/machine.make | 2 - machine/celestica/cel_e1031/machine.make | 2 - machine/celestica/cel_kennisis/machine.make | 2 - machine/celestica/cel_redstone/machine.make | 2 - .../celestica/cel_redstone_xp/machine.make | 2 - machine/celestica/cel_seastone/machine.make | 2 - machine/celestica/cel_smallstone/machine.make | 2 - .../celestica/cel_smallstone_xp/machine.make | 2 - machine/centec/centec_e580_20q4z/machine.make | 2 - .../centec/centec_e580_48x2q4z/machine.make | 2 - machine/centec/centec_e580_48x6q/machine.make | 2 - machine/dell/dell_s3000_c2338/machine.make | 2 - machine/dell/dell_s4000_c2338/machine.make | 2 - machine/dell/dell_s4048t_c2338/machine.make | 2 - machine/dell/dell_s4810_on_p2020/machine.make | 2 - machine/dell/dell_s6000_s1220/machine.make | 2 - machine/dell/dell_s6010_c2538/machine.make | 2 - machine/dell/dell_s6100_c2538/machine.make | 2 - machine/dell/dell_z9100_c2538/machine.make | 2 - machine/dni/dni_3048up/machine.make | 2 - .../ingrasys/ingrasys_s8810_32q/machine.make | 2 - .../ingrasys/ingrasys_s8900_54xc/machine.make | 2 - .../ingrasys/ingrasys_s8900_64xc/machine.make | 2 - machine/ingrasys/ingrasys_s9100/machine.make | 2 - .../ingrasys/ingrasys_s9130_32x/machine.make | 2 - machine/inventec/inventec_d10056/machine.make | 2 - machine/inventec/inventec_d10064/machine.make | 2 - .../inventec/inventec_d6254qs/machine.make | 2 - machine/inventec/inventec_d6356/machine.make | 2 - .../inventec/inventec_d7054q28b/machine.make | 2 - machine/inventec/inventec_d7332/machine.make | 2 - .../inventec/inventec_dcs7032q28/machine.make | 2 - .../inventec_dcs7032q28b/machine.make | 2 - machine/juniper/juniper_qfx5200/machine.make | 2 - machine/juniper/juniper_qfx5210/machine.make | 2 - machine/lenovo/lenovo_g8272/machine.make | 2 - machine/lenovo/lenovo_g8296/machine.make | 2 - machine/lenovo/lenovo_ne0152t/machine.make | 1 - machine/lenovo/lenovo_ne10032/machine.make | 1 - machine/lenovo/lenovo_ne1032/machine.make | 1 - machine/lenovo/lenovo_ne1032t/machine.make | 1 - machine/lenovo/lenovo_ne1064t/machine.make | 1 - machine/lenovo/lenovo_ne1072t/machine.make | 1 - machine/lenovo/lenovo_ne2572/machine.make | 1 - machine/lenovo/lenovo_ne2580/machine.make | 1 - machine/marvell/a7020-comexp/machine.make | 1 - .../netberg/netberg_aurora_221/machine.make | 2 - .../netberg/netberg_aurora_610/machine.make | 2 - .../netberg/netberg_aurora_615/machine.make | 1 - .../netberg/netberg_aurora_621/machine.make | 2 - .../netberg/netberg_aurora_705/machine.make | 2 - .../netberg/netberg_aurora_710/machine.make | 2 - .../netberg/netberg_aurora_715/machine.make | 1 - .../netberg/netberg_aurora_721/machine.make | 2 - .../netberg/netberg_aurora_740/machine.make | 2 - .../netberg/netberg_aurora_750/machine.make | 2 - .../netberg/netberg_aurora_810/machine.make | 2 - .../netberg/netberg_aurora_820/machine.make | 2 - .../netberg/netberg_aurora_830/machine.make | 2 - .../netberg_rangeley_p1330/machine.make | 2 - .../pegatron/pegatron_dm2118_b/machine.make | 2 - .../pegatron/pegatron_dm6218_b/machine.make | 2 - .../pegatron/pegatron_em21t54/machine.make | 2 - machine/plexxi/px_switch2/machine.make | 2 - machine/qemu_armv8a/machine.make | 3 - .../quanta/quanta_common_p2020/machine.make | 2 - .../quanta_common_rangeley/machine.make | 2 - .../quanta/quanta_common_rglbmc/machine.make | 2 - machine/quanta/quanta_lb8d/machine.make | 2 - machine/quanta/quanta_lb9/machine.make | 2 - machine/quanta/quanta_ly2/machine.make | 2 - machine/quanta/quanta_ly2r/machine.make | 2 - machine/quanta/quanta_ly3/machine.make | 2 - machine/quanta/quanta_ly4r/machine.make | 2 - machine/senao/senao_snd12000/machine.make | 2 - machine/senao/senao_snd9000/machine.make | 2 - .../ufispace_dvtn_s9501series/machine.make | 2 - .../ufispace_dvtn_s9502series/machine.make | 2 - .../ufispace_dvtn_td3_x5_series/machine.make | 2 - .../ufispace_icl_emux_series/machine.make | 2 - .../ufispace_icl_s9321series/machine.make | 2 - .../ufispace/ufispace_s6301_56st/machine.make | 2 - .../ufispace_s6301_56stp/machine.make | 2 - .../ufispace/ufispace_s9110_32x/machine.make | 2 - .../ufispace/ufispace_s9300_32d/machine.make | 2 - .../ufispace/ufispace_s9310_32d/machine.make | 2 - .../ufispace/ufispace_s9311_64d/machine.make | 2 - .../ufispace/ufispace_s9321_64e/machine.make | 2 - .../ufispace_s9500_22xst/machine.make | 2 - .../ufispace/ufispace_s9500_30xs/machine.make | 2 - .../ufispace_s9501_16smt/machine.make | 2 - .../ufispace_s9501_18smt/machine.make | 2 - .../ufispace_s9501_28smt/machine.make | 2 - .../ufispace/ufispace_s9510_28dc/machine.make | 2 - .../ufispace/ufispace_s9510_30xc/machine.make | 2 - .../ufispace/ufispace_s9511_20ct/machine.make | 2 - .../ufispace_s9600_102xc/machine.make | 2 - .../ufispace_s9600_104bc/machine.make | 2 - .../ufispace/ufispace_s9600_28dx/machine.make | 2 - .../ufispace/ufispace_s9600_30dx/machine.make | 2 - .../ufispace/ufispace_s9600_32x/machine.make | 2 - .../ufispace/ufispace_s9600_48x/machine.make | 2 - .../ufispace/ufispace_s9600_56dx/machine.make | 2 - .../ufispace/ufispace_s9600_64x/machine.make | 2 - .../ufispace/ufispace_s9600_72xc/machine.make | 2 - .../ufispace_s9601_102xc/machine.make | 2 - .../ufispace_s9601_104bc/machine.make | 2 - .../ufispace/ufispace_s9610_36d/machine.make | 2 - .../ufispace/ufispace_s9610_46dx/machine.make | 2 - .../ufispace/ufispace_s9610_48dx/machine.make | 2 - .../ufispace/ufispace_s9700_23d/machine.make | 2 - .../ufispace/ufispace_s9700_53dx/machine.make | 2 - .../ufispace/ufispace_s9701_78dc/machine.make | 2 - .../ufispace/ufispace_s9701_82dc/machine.make | 2 - .../ufispace/ufispace_s9705_48d/machine.make | 2 - .../ufispace/ufispace_s9710_76d/machine.make | 2 - .../ufispace/ufispace_s9720_56ed/machine.make | 2 - .../ufispace/ufispace_s9725_64e/machine.make | 2 - .../ufispace_skl_ncplite_series/machine.make | 2 - .../machine.make | 2 - .../ufispace_skl_s9300series/machine.make | 2 - machine/wiwynn/wiwynn_andromeda/machine.make | 2 - machine/wnc/wnc_osw1800/machine.make | 2 - machine/wnc/wnc_rseb_w1_32/machine.make | 2 - machine/wnc/wnc_ssb1_w1/machine.make | 2 - machine/wnc/wnc_sst1_n1/machine.make | 2 - patches/busybox/dhcp-additional-options.patch | 131 - .../busybox/feature-flash-erase-command.patch | 593 +- patches/busybox/feature-iorw-command.patch | 56 +- .../feature-onie-syseeprom-command.patch | 43 +- .../busybox/feature-onie-syseeprom-disk.patch | 25 +- .../feature-onie-syseeprom-sysfs.patch | 23 +- ...fw_env-modify-crc-size-in-getenvsize.patch | 4 +- patches/busybox/series | 3 +- patches/busybox/u-boot-env-tools.patch | 59 +- patches/crosstool-NG/series | 3 +- .../dmidecode-onie-cross-compile.patch | 31 +- patches/dmidecode/series | 2 +- patches/dosfstools/remove-local-support.patch | 37 - patches/dosfstools/series | 12 +- ..._t-and-char32_t-definitions-for-ONIE.patch | 36 - .../efivar/30/makefile-changes-for-onie.patch | 86 - patches/efivar/30/series | 3 - ...error-path-in-set_disk_and_part_name.patch | 74 - ...ke-all-the-sys-block-link-parsers-wo.patch | 92 - ...to-find-disk-device-symlinks-in-sysf.patch | 209 - ...es-virtual-nvme-fabrics-nvme-subsyst.patch | 309 - ...-Fix-variable-sz-uninitialized-error.patch | 38 - ...x-parsing-for-nvme-subsystem-devices.patch | 91 - ...e-any-variable-we-use-with-sscanf-s-.patch | 76 - ..._t-and-char32_t-definitions-for-ONIE.patch | 1 - .../37/include-search-one-directory-up.patch | 30 - .../efivar/37/makefile-changes-for-onie.patch | 86 - patches/efivar/37/remove-arrows.patch | 357 - patches/efivar/37/series | 12 - patches/gnu-efi/series | 2 - patches/gnu-efi/update-makefile-patch | 42 - .../gptfdisk/add-onie-partition-types.patch | 30 - .../gptfdisk-onie-cross-compile.patch | 47 +- patches/gptfdisk/series | 7 +- .../2.02/bootp_new_net_bootp6_command.patch | 1117 - .../bootp_process_dhcpack_http_boot.patch | 129 - patches/grub/2.02/core_in_fs.patch | 45 - .../2.02/disable-build-of-documentation.patch | 18 - .../grub/2.02/dont-fail-efi-warnings.patch | 47 - .../2.02/efinet_set_dns_from_uefi_proto.patch | 339 - ...efinet_set_network_from_uefi_devpath.patch | 388 - .../2.02/efinet_uefi_ipv6_pxe_support.patch | 126 - patches/grub/2.02/ext4_feature_encrypt.patch | 143 - patches/grub/2.02/gcc7.patch | 23 - patches/grub/2.02/gcc8.patch | 64 - patches/grub/2.02/gettext_quiet.patch | 30 - .../2.02/grub-install-efibootmgr-check.patch | 178 - .../2.02/grub-install-extra-removable.patch | 220 - .../2.02/include-compatible-unifont-bdf.patch | 22543 ---------------- patches/grub/2.02/install_signed.patch | 295 - patches/grub/2.02/linuxefi.patch | 484 - .../linuxefi_add_sb_to_efi_chainload.patch | 816 - .../linuxefi_cleanup_errors_in_loader.patch | 103 - patches/grub/2.02/linuxefi_debug.patch | 99 - .../linuxefi_fix_efi_validation_race.patch | 99 - .../2.02/linuxefi_handle_multiarch_boot.patch | 264 - .../grub/2.02/linuxefi_honor_sb_mode.patch | 534 - .../grub/2.02/linuxefi_load_arm_with_sb.patch | 445 - .../grub/2.02/linuxefi_minor_cleanups.patch | 92 - .../grub/2.02/linuxefi_move_fdt_helper.patch | 95 - .../grub/2.02/linuxefi_no_insmod_on_sb.patch | 121 - .../grub/2.02/linuxefi_non_sb_fallback.patch | 96 - .../2.02/linuxefi_re-enable_linux_cmd.patch | 43 - .../2.02/linuxefi_rework_linux16_cmd.patch | 104 - .../grub/2.02/linuxefi_rework_linux_cmd.patch | 110 - ...linuxefi_rework_non-sb_efi_chainload.patch | 385 - .../2.02/linuxefi_rework_pe_loading.patch | 356 - .../linuxefi_use_dev_chainloader_target.patch | 40 - patches/grub/2.02/maybe_quiet.patch | 380 - .../2.02/misc-fix-invalid-char-strtol.patch | 34 - patches/grub/2.02/mkconfig_loopback.patch | 96 - patches/grub/2.02/mkconfig_mid_upgrade.patch | 39 - .../2.02/mkconfig_nonexistent_loopback.patch | 55 - patches/grub/2.02/mkconfig_other_inits.patch | 90 - .../grub/2.02/mkconfig_recovery_title.patch | 130 - .../grub/2.02/mkconfig_signed_kernel.patch | 48 - patches/grub/2.02/mkrescue_efi_modules.patch | 35 - .../2.02/net_read_bracketed_ipv6_addr.patch | 254 - patches/grub/2.02/probe_fusionio.patch | 76 - patches/grub/2.02/restore_mkdevicemap.patch | 1320 - patches/grub/2.02/series | 34 - .../set-default-graphics-mode-to-text.patch | 27 - patches/grub/2.02/sleep_shift.patch | 95 - .../disable-build-of-documentation.patch | 17 - .../gcc6-use-no-pie-compiler-flag.patch | 62 - .../include-compatible-unifont-bdf.patch | 22543 ---------------- patches/grub/2.02~beta3/series | 5 - .../set-default-graphics-mode-to-text.patch | 27 - patches/grub/2.04/CVE-2020-10713.patch | 68 - .../grub/2.04/at_keyboard-module-init.patch | 44 - .../bash-completion-drop-have-checks.patch | 143 - patches/grub/2.04/blacklist-1440x900x32.patch | 34 - patches/grub/2.04/bootp-alloc.patch | 29 - .../2.04/bootp-new-net_bootp6-command.patch | 1117 - .../bootp-process-dhcpack-http-boot.patch | 122 - patches/grub/2.04/btrfs-raid1c34.patch | 57 - patches/grub/2.04/core-in-fs.patch | 45 - patches/grub/2.04/default-grub-d.patch | 195 - patches/grub/2.04/dejavu-font-path.patch | 23 - patches/grub/2.04/deviceiter-overflow.patch | 51 - patches/grub/2.04/disable-floppies.patch | 37 - .../grub/2.04/dpkg-version-comparison.patch | 38 - .../2.04/efi-halt-reboot-use-after-free.patch | 177 - .../2.04/efi-malformed-device-path-2.patch | 86 - .../grub/2.04/efi-malformed-device-path.patch | 249 - ...efi-variable-storage-minimise-writes.patch | 895 - .../2.04/efinet-set-dns-from-uefi-proto.patch | 339 - ...efinet-set-network-from-uefi-devpath.patch | 388 - .../2.04/efinet-uefi-ipv6-pxe-support.patch | 126 - patches/grub/2.04/emu-free-null.patch | 32 - patches/grub/2.04/fix-lockdown.patch | 45 - patches/grub/2.04/font-name-leak.patch | 36 - patches/grub/2.04/gettext-quiet.patch | 30 - .../2.04/gfxmenu-load-image-double-free.patch | 34 - patches/grub/2.04/gfxpayload-dynamic.patch | 290 - .../grub/2.04/gfxpayload-keep-default.patch | 39 - .../2.04/grub-install-extra-removable.patch | 202 - .../grub/2.04/grub-install-pvxen-paths.patch | 71 - .../2.04/grub-install-removable-shim.patch | 193 - .../2.04/grub-legacy-0-based-partitions.patch | 39 - patches/grub/2.04/grub.cfg-400.patch | 25 - patches/grub/2.04/hfsplus-overflow.patch | 55 - patches/grub/2.04/ieee1275-clear-reset.patch | 32 - .../2.04/ignore-grub_func_test-failures.patch | 29 - .../2.04/insmod-xzio-and-lzopio-on-xen.patch | 33 - .../2.04/install-efi-adjust-distributor.patch | 34 - patches/grub/2.04/install-efi-fallback.patch | 91 - .../grub/2.04/install-locale-langpack.patch | 116 - .../grub/2.04/install-powerpc-machtypes.patch | 220 - patches/grub/2.04/install-signed.patch | 311 - .../grub/2.04/install-stage2-confusion.patch | 46 - patches/grub/2.04/is_sb_enabled_command.patch | 94 - patches/grub/2.04/iso9660-realloc-leak.patch | 67 - patches/grub/2.04/linux-initrd-overflow.patch | 167 - patches/grub/2.04/linux-loader-overflow.patch | 27 - patches/grub/2.04/linuxefi.patch | 550 - patches/grub/2.04/lvm-overflow.patch | 109 - patches/grub/2.04/lzma-overflow.patch | 50 - patches/grub/2.04/maybe-quiet.patch | 386 - patches/grub/2.04/mdraid1x-linux-gcc-10.patch | 53 - patches/grub/2.04/mkconfig-loopback.patch | 96 - .../2.04/mkconfig-nonexistent-loopback.patch | 55 - patches/grub/2.04/mkconfig-other-inits.patch | 90 - .../grub/2.04/mkconfig-recovery-title.patch | 130 - .../grub/2.04/mkconfig-signed-kernel.patch | 48 - .../2.04/mkconfig-ubuntu-distributor.patch | 37 - .../grub/2.04/mkconfig-ubuntu-recovery.patch | 107 - patches/grub/2.04/mkrescue-efi-modules.patch | 35 - patches/grub/2.04/multiboot2-leak.patch | 32 - .../2.04/net-read-bracketed-ipv6-addr.patch | 254 - .../2.04/no-devicetree-if-secure-boot.patch | 67 - patches/grub/2.04/no-insmod-on-sb.patch | 99 - patches/grub/2.04/olpc-prefix-hack.patch | 51 - ...onie-disable-udevadm-in-grub-install.patch | 44 - patches/grub/2.04/ppc64el-disable-vsx.patch | 52 - patches/grub/2.04/probe-fusionio.patch | 76 - patches/grub/2.04/quick-boot-lvm.patch | 77 - patches/grub/2.04/quick-boot.patch | 358 - .../2.04/relocator-chunk-addr-overflow.patch | 148 - .../2.04/relocator-chunk-align-fix-top.patch | 44 - .../relocator-chunk-align-underflow.patch | 336 - patches/grub/2.04/restore-mkdevicemap.patch | 1320 - patches/grub/2.04/safe-alloc-1.patch | 122 - patches/grub/2.04/safe-alloc-2.patch | 241 - patches/grub/2.04/safe-alloc-3.patch | 1821 -- patches/grub/2.04/safe-alloc-4.patch | 1321 - patches/grub/2.04/safe-alloc-5.patch | 149 - .../2.04/script-remove-unused-fields.patch | 31 - patches/grub/2.04/script-use-after-free.patch | 108 - patches/grub/2.04/series | 99 - .../grub/2.04/skip-grub_cmd_set_date.patch | 27 - patches/grub/2.04/sleep-shift.patch | 95 - ...rc64-fix-bios-boot-partition-support.patch | 49 - patches/grub/2.04/term-overflow.patch | 64 - .../grub/2.04/tftp-no-priority-queue.patch | 281 - patches/grub/2.04/udf-leak.patch | 54 - patches/grub/2.04/uefi-firmware-setup.patch | 84 - .../2.04/uefi-secure-boot-cryptomount.patch | 48 - patches/grub/2.04/unix-config-overflow.patch | 84 - .../2.04/verifiers-blocklist-fallout.patch | 41 - .../grub/2.04/vsnprintf-upper-case-hex.patch | 65 - patches/grub/2.04/vt-handoff.patch | 101 - patches/grub/2.04/wubi-no-windows.patch | 57 - .../xen-ignore-xenpolicy-and-config.patch | 52 - ...xen-no-xsm-policy-in-non-xsm-options.patch | 35 - patches/grub/2.04/xen-support-xsm.patch | 72 - patches/grub/2.04/xnu-double-free.patch | 53 - patches/grub/2.04/zfs-gcc-10.patch | 89 - .../grub/2.04/zpool-full-device-name.patch | 33 - ...86-pc-update-kernel-image-generation.patch | 105 + ...ul-error-if-autoconf-archive-missing.patch | 34 + ...-check-linker-for-image-base-support.patch | 72 + ...figure-drop-ttext-checks-for-i386-pc.patch | 236 + ...HIM_LOCK-verify-for-pre-SBAT-kernels.patch | 52 + patches/grub/2.14/series | 14 + patches/i2ctools/gitignore.patch | 18 +- .../i2ctools-onie-cross-compile.patch | 48 +- patches/i2ctools/i2ctools-sys-eeprom.patch | 36 +- patches/i2ctools/series | 2 +- ...mprove-device-tree-directory-sorting.patch | 84 - ...5-25-kexec-tools-add-aarch64-support.patch | 828 - patches/kexec-tools/series | 15 +- .../0001-add-sysmacros.h-to-filter-sysfs.c | 10 - patches/lvm2/series | 9 +- .../0000-Makefile-changes-for-ONIE.patch | 19 +- patches/pciutils/series | 2 +- ...d-char-changes-value-from-496-to-240.patch | 25 - patches/pesign/brace-initialization.patch | 28 - patches/pesign/implicit-fallthrough.patch | 22 - .../pesigcheck-Fix-a-wrong-assignment.patch | 34 - patches/pesign/series | 9 - patches/popt/aarch64_support.patch | 733 - ...opt-workaround-uclibc-glob-pattern-p.patch | 31 - patches/popt/series | 7 +- patches/shim/series | 2 - patches/shim/update-makefile.patch | 101 - rootconf/default/etc/init.d/networking.sh | 7 +- rootconf/default/lib/onie/udhcp4_net | 15 + rootconf/default/lib/onie/udhcp4_sd | 56 +- upstream/0.4.0.tar.gz.sha1 | 1 - upstream/0.7.2.tar.gz.sha1 | 1 + upstream/18.tar.gz.sha1 | 1 + upstream/39.tar.gz.sha1 | 1 + upstream/IPMITOOL_1_8_19.tar.gz.sha1 | 1 + upstream/LVM2.2.03.41.tgz.sha1 | 1 + upstream/acpica-unix-20260408.tar.gz.sha1 | 1 + upstream/btrfs-progs-v7.0.tar.xz.sha1 | 1 + upstream/busybox-1.38.0.tar.bz2.sha1 | 1 + upstream/crosstool-ng-1.24.0.tar.xz.sha1 | 1 - upstream/crosstool-ng-1.28.0.tar.xz.sha1 | 1 + upstream/dmidecode-3.7.tar.xz.sha1 | 1 + upstream/dosfstools-3.0.26.tar.xz.sha1 | 1 - upstream/dosfstools-4.2.tar.gz.sha1 | 1 + upstream/dropbear-2026.91.tar.bz2.sha1 | 1 + upstream/efibootmgr-16.tar.bz2.sha1 | 1 - upstream/efivar-37.tar.bz2.sha1 | 1 - upstream/ethtool-6.15.tar.xz.sha1 | 1 + upstream/gcc-4.7.3.tar.bz2.sha1 | 1 - upstream/gcc-4.9.2.tar.bz2.sha1 | 1 - upstream/gcc-4.9.4.tar.bz2.sha1 | 1 - upstream/gcc-6.3.0.tar.bz2.sha1 | 1 - upstream/gcc-8.3.0.tar.xz.sha1 | 1 - upstream/glibc-2.24.tar.xz.sha1 | 1 - upstream/glibc-2.25.tar.xz.sha1 | 1 - upstream/glibc-2.29.tar.xz.sha1 | 1 - upstream/gnu-efi-3.0.12.tar.bz2.sha1 | 1 - upstream/gptfdisk-1.0.10.tar.gz.sha1 | 1 + upstream/grub-2.04.tar.xz.sha1 | 1 - upstream/grub-2.14.tar.xz.sha1 | 1 + upstream/i2c-tools-3.1.1.tar.bz2.sha1 | 1 - upstream/i2c-tools-4.4.tar.gz.sha1 | 1 + upstream/kexec-tools-2.0.32.tar.xz.sha1 | 1 + upstream/keyutils-1.6.3.tar.gz.sha1 | 1 + upstream/libaio-0.3.113.tar.gz.sha1 | 1 + upstream/libmnl-1.0.5.tar.bz2.sha1 | 1 + upstream/libpcap-1.10.6.tar.gz.sha1 | 1 + upstream/lzo-2.10.tar.gz.sha1 | 1 + upstream/mtd-utils-2.3.1.tar.bz2.sha1 | 1 + upstream/mtd-utils-e4c8885.tar.gz.sha1 | 1 - upstream/openssl-1.0.2l.tar.gz.sha1 | 1 - upstream/openssl-1.1.1g.tar.gz.sha1 | 1 - upstream/openssl-3.4.0.tar.gz.sha1 | 1 - upstream/openssl-3.5.7.tar.gz.sha1 | 1 + upstream/pciutils-3.15.0.tar.xz.sha1 | 1 + upstream/pciutils-3.2.1.tar.xz.sha1 | 1 - upstream/pesign-113.tar.bz2.sha1 | 1 - upstream/popt-1.19.tar.gz.sha1 | 1 + upstream/shim-15.tar.bz2.sha1 | 1 - upstream/shim-16.1.tar.bz2.sha1 | 1 + upstream/tcpdump-4.99.6.tar.gz.sha1 | 1 + upstream/uClibc-ng-1.0.22.tar.xz.sha1 | 1 - upstream/uClibc-ng-1.0.35.tar.xz.sha1 | 1 - upstream/uClibc-ng-1.0.38.tar.xz.sha1 | 1 - upstream/uClibc-ng-1.0.54.tar.xz.sha1 | 1 + upstream/zlib-1.3.2.tar.xz.sha1 | 1 + 586 files changed, 2307 insertions(+), 85276 deletions(-) create mode 100644 build-config/conf/crosstool/gcc-14.3.0/uClibc-ng-1.0.54/crosstool.x86_64.defconfig delete mode 100644 build-config/conf/crosstool/gcc-4.9.2/uClibc-ng-1.0.22/crosstool.armv7a.config delete mode 100644 build-config/conf/crosstool/gcc-4.9.2/uClibc-ng-1.0.22/crosstool.powerpc-softfloat.config delete mode 100644 build-config/conf/crosstool/gcc-4.9.2/uClibc-ng-1.0.22/crosstool.x86_64.config delete mode 100644 build-config/conf/crosstool/gcc-6.3.0/glibc-2.25/crosstool.armv8a.config delete mode 100644 build-config/conf/crosstool/gcc-6.3.0/uClibc-ng-1.0.22/crosstool.armv7a.config delete mode 100644 build-config/conf/crosstool/gcc-6.3.0/uClibc-ng-1.0.22/crosstool.powerpc-softfloat.config delete mode 100644 build-config/conf/crosstool/gcc-6.3.0/uClibc-ng-1.0.22/crosstool.x86_64.config delete mode 100644 build-config/conf/crosstool/gcc-8.3.0/glibc-2.29/crosstool.armv8a.config delete mode 100644 build-config/conf/crosstool/gcc-8.3.0/uClibc-ng-1.0.35/crosstool.x86_64.config delete mode 100644 build-config/conf/crosstool/gcc-8.3.0/uClibc-ng-1.0.38/crosstool.x86_64.config delete mode 100644 build-config/conf/uclibc/1.0.22/uclibc.armv7a.config delete mode 100644 build-config/conf/uclibc/1.0.22/uclibc.powerpc-softfloat.config delete mode 100644 build-config/conf/uclibc/1.0.22/uclibc.x86_64.config delete mode 100644 build-config/conf/uclibc/1.0.35/uclibc.x86_64.config rename build-config/conf/uclibc/{1.0.38 => 1.0.54}/uclibc.x86_64.config (100%) delete mode 100644 build-config/make/gnu-efi.make create mode 100644 build-config/make/libaio.make create mode 100644 build-config/make/libmnl.make delete mode 100644 build-config/make/pesign.make create mode 100755 emulation/ci-oce-test.sh delete mode 100644 patches/busybox/dhcp-additional-options.patch delete mode 100644 patches/dosfstools/remove-local-support.patch delete mode 100644 patches/efivar/30/XX-Provide-char16_t-and-char32_t-definitions-for-ONIE.patch delete mode 100644 patches/efivar/30/makefile-changes-for-onie.patch delete mode 100644 patches/efivar/30/series delete mode 100644 patches/efivar/37/0001-Fix-the-error-path-in-set_disk_and_part_name.patch delete mode 100644 patches/efivar/37/0002-sysfs-parsers-make-all-the-sys-block-link-parsers-wo.patch delete mode 100644 patches/efivar/37/0003-Try-even-harder-to-find-disk-device-symlinks-in-sysf.patch delete mode 100644 patches/efivar/37/0004-Handle-sys-devices-virtual-nvme-fabrics-nvme-subsyst.patch delete mode 100644 patches/efivar/37/0005-Fix-variable-sz-uninitialized-error.patch delete mode 100644 patches/efivar/37/0006-Fix-parsing-for-nvme-subsystem-devices.patch delete mode 100644 patches/efivar/37/Always-initialize-any-variable-we-use-with-sscanf-s-.patch delete mode 120000 patches/efivar/37/XX-Provide-char16_t-and-char32_t-definitions-for-ONIE.patch delete mode 100644 patches/efivar/37/include-search-one-directory-up.patch delete mode 100644 patches/efivar/37/makefile-changes-for-onie.patch delete mode 100644 patches/efivar/37/remove-arrows.patch delete mode 100644 patches/efivar/37/series delete mode 100644 patches/gnu-efi/series delete mode 100644 patches/gnu-efi/update-makefile-patch delete mode 100644 patches/gptfdisk/add-onie-partition-types.patch delete mode 100644 patches/grub/2.02/bootp_new_net_bootp6_command.patch delete mode 100644 patches/grub/2.02/bootp_process_dhcpack_http_boot.patch delete mode 100644 patches/grub/2.02/core_in_fs.patch delete mode 100644 patches/grub/2.02/disable-build-of-documentation.patch delete mode 100644 patches/grub/2.02/dont-fail-efi-warnings.patch delete mode 100644 patches/grub/2.02/efinet_set_dns_from_uefi_proto.patch delete mode 100644 patches/grub/2.02/efinet_set_network_from_uefi_devpath.patch delete mode 100644 patches/grub/2.02/efinet_uefi_ipv6_pxe_support.patch delete mode 100644 patches/grub/2.02/ext4_feature_encrypt.patch delete mode 100644 patches/grub/2.02/gcc7.patch delete mode 100644 patches/grub/2.02/gcc8.patch delete mode 100644 patches/grub/2.02/gettext_quiet.patch delete mode 100644 patches/grub/2.02/grub-install-efibootmgr-check.patch delete mode 100644 patches/grub/2.02/grub-install-extra-removable.patch delete mode 100644 patches/grub/2.02/include-compatible-unifont-bdf.patch delete mode 100644 patches/grub/2.02/install_signed.patch delete mode 100644 patches/grub/2.02/linuxefi.patch delete mode 100644 patches/grub/2.02/linuxefi_add_sb_to_efi_chainload.patch delete mode 100644 patches/grub/2.02/linuxefi_cleanup_errors_in_loader.patch delete mode 100644 patches/grub/2.02/linuxefi_debug.patch delete mode 100644 patches/grub/2.02/linuxefi_fix_efi_validation_race.patch delete mode 100644 patches/grub/2.02/linuxefi_handle_multiarch_boot.patch delete mode 100644 patches/grub/2.02/linuxefi_honor_sb_mode.patch delete mode 100644 patches/grub/2.02/linuxefi_load_arm_with_sb.patch delete mode 100644 patches/grub/2.02/linuxefi_minor_cleanups.patch delete mode 100644 patches/grub/2.02/linuxefi_move_fdt_helper.patch delete mode 100644 patches/grub/2.02/linuxefi_no_insmod_on_sb.patch delete mode 100644 patches/grub/2.02/linuxefi_non_sb_fallback.patch delete mode 100644 patches/grub/2.02/linuxefi_re-enable_linux_cmd.patch delete mode 100644 patches/grub/2.02/linuxefi_rework_linux16_cmd.patch delete mode 100644 patches/grub/2.02/linuxefi_rework_linux_cmd.patch delete mode 100644 patches/grub/2.02/linuxefi_rework_non-sb_efi_chainload.patch delete mode 100644 patches/grub/2.02/linuxefi_rework_pe_loading.patch delete mode 100644 patches/grub/2.02/linuxefi_use_dev_chainloader_target.patch delete mode 100644 patches/grub/2.02/maybe_quiet.patch delete mode 100644 patches/grub/2.02/misc-fix-invalid-char-strtol.patch delete mode 100644 patches/grub/2.02/mkconfig_loopback.patch delete mode 100644 patches/grub/2.02/mkconfig_mid_upgrade.patch delete mode 100644 patches/grub/2.02/mkconfig_nonexistent_loopback.patch delete mode 100644 patches/grub/2.02/mkconfig_other_inits.patch delete mode 100644 patches/grub/2.02/mkconfig_recovery_title.patch delete mode 100644 patches/grub/2.02/mkconfig_signed_kernel.patch delete mode 100644 patches/grub/2.02/mkrescue_efi_modules.patch delete mode 100644 patches/grub/2.02/net_read_bracketed_ipv6_addr.patch delete mode 100644 patches/grub/2.02/probe_fusionio.patch delete mode 100644 patches/grub/2.02/restore_mkdevicemap.patch delete mode 100644 patches/grub/2.02/series delete mode 100644 patches/grub/2.02/set-default-graphics-mode-to-text.patch delete mode 100644 patches/grub/2.02/sleep_shift.patch delete mode 100644 patches/grub/2.02~beta3/disable-build-of-documentation.patch delete mode 100644 patches/grub/2.02~beta3/gcc6-use-no-pie-compiler-flag.patch delete mode 100644 patches/grub/2.02~beta3/include-compatible-unifont-bdf.patch delete mode 100644 patches/grub/2.02~beta3/series delete mode 100644 patches/grub/2.02~beta3/set-default-graphics-mode-to-text.patch delete mode 100644 patches/grub/2.04/CVE-2020-10713.patch delete mode 100644 patches/grub/2.04/at_keyboard-module-init.patch delete mode 100644 patches/grub/2.04/bash-completion-drop-have-checks.patch delete mode 100644 patches/grub/2.04/blacklist-1440x900x32.patch delete mode 100644 patches/grub/2.04/bootp-alloc.patch delete mode 100644 patches/grub/2.04/bootp-new-net_bootp6-command.patch delete mode 100644 patches/grub/2.04/bootp-process-dhcpack-http-boot.patch delete mode 100644 patches/grub/2.04/btrfs-raid1c34.patch delete mode 100644 patches/grub/2.04/core-in-fs.patch delete mode 100644 patches/grub/2.04/default-grub-d.patch delete mode 100644 patches/grub/2.04/dejavu-font-path.patch delete mode 100644 patches/grub/2.04/deviceiter-overflow.patch delete mode 100644 patches/grub/2.04/disable-floppies.patch delete mode 100644 patches/grub/2.04/dpkg-version-comparison.patch delete mode 100644 patches/grub/2.04/efi-halt-reboot-use-after-free.patch delete mode 100644 patches/grub/2.04/efi-malformed-device-path-2.patch delete mode 100644 patches/grub/2.04/efi-malformed-device-path.patch delete mode 100644 patches/grub/2.04/efi-variable-storage-minimise-writes.patch delete mode 100644 patches/grub/2.04/efinet-set-dns-from-uefi-proto.patch delete mode 100644 patches/grub/2.04/efinet-set-network-from-uefi-devpath.patch delete mode 100644 patches/grub/2.04/efinet-uefi-ipv6-pxe-support.patch delete mode 100644 patches/grub/2.04/emu-free-null.patch delete mode 100644 patches/grub/2.04/fix-lockdown.patch delete mode 100644 patches/grub/2.04/font-name-leak.patch delete mode 100644 patches/grub/2.04/gettext-quiet.patch delete mode 100644 patches/grub/2.04/gfxmenu-load-image-double-free.patch delete mode 100644 patches/grub/2.04/gfxpayload-dynamic.patch delete mode 100644 patches/grub/2.04/gfxpayload-keep-default.patch delete mode 100644 patches/grub/2.04/grub-install-extra-removable.patch delete mode 100644 patches/grub/2.04/grub-install-pvxen-paths.patch delete mode 100644 patches/grub/2.04/grub-install-removable-shim.patch delete mode 100644 patches/grub/2.04/grub-legacy-0-based-partitions.patch delete mode 100644 patches/grub/2.04/grub.cfg-400.patch delete mode 100644 patches/grub/2.04/hfsplus-overflow.patch delete mode 100644 patches/grub/2.04/ieee1275-clear-reset.patch delete mode 100644 patches/grub/2.04/ignore-grub_func_test-failures.patch delete mode 100644 patches/grub/2.04/insmod-xzio-and-lzopio-on-xen.patch delete mode 100644 patches/grub/2.04/install-efi-adjust-distributor.patch delete mode 100644 patches/grub/2.04/install-efi-fallback.patch delete mode 100644 patches/grub/2.04/install-locale-langpack.patch delete mode 100644 patches/grub/2.04/install-powerpc-machtypes.patch delete mode 100644 patches/grub/2.04/install-signed.patch delete mode 100644 patches/grub/2.04/install-stage2-confusion.patch delete mode 100644 patches/grub/2.04/is_sb_enabled_command.patch delete mode 100644 patches/grub/2.04/iso9660-realloc-leak.patch delete mode 100644 patches/grub/2.04/linux-initrd-overflow.patch delete mode 100644 patches/grub/2.04/linux-loader-overflow.patch delete mode 100644 patches/grub/2.04/linuxefi.patch delete mode 100644 patches/grub/2.04/lvm-overflow.patch delete mode 100644 patches/grub/2.04/lzma-overflow.patch delete mode 100644 patches/grub/2.04/maybe-quiet.patch delete mode 100644 patches/grub/2.04/mdraid1x-linux-gcc-10.patch delete mode 100644 patches/grub/2.04/mkconfig-loopback.patch delete mode 100644 patches/grub/2.04/mkconfig-nonexistent-loopback.patch delete mode 100644 patches/grub/2.04/mkconfig-other-inits.patch delete mode 100644 patches/grub/2.04/mkconfig-recovery-title.patch delete mode 100644 patches/grub/2.04/mkconfig-signed-kernel.patch delete mode 100644 patches/grub/2.04/mkconfig-ubuntu-distributor.patch delete mode 100644 patches/grub/2.04/mkconfig-ubuntu-recovery.patch delete mode 100644 patches/grub/2.04/mkrescue-efi-modules.patch delete mode 100644 patches/grub/2.04/multiboot2-leak.patch delete mode 100644 patches/grub/2.04/net-read-bracketed-ipv6-addr.patch delete mode 100644 patches/grub/2.04/no-devicetree-if-secure-boot.patch delete mode 100644 patches/grub/2.04/no-insmod-on-sb.patch delete mode 100644 patches/grub/2.04/olpc-prefix-hack.patch delete mode 100644 patches/grub/2.04/onie-disable-udevadm-in-grub-install.patch delete mode 100644 patches/grub/2.04/ppc64el-disable-vsx.patch delete mode 100644 patches/grub/2.04/probe-fusionio.patch delete mode 100644 patches/grub/2.04/quick-boot-lvm.patch delete mode 100644 patches/grub/2.04/quick-boot.patch delete mode 100644 patches/grub/2.04/relocator-chunk-addr-overflow.patch delete mode 100644 patches/grub/2.04/relocator-chunk-align-fix-top.patch delete mode 100644 patches/grub/2.04/relocator-chunk-align-underflow.patch delete mode 100644 patches/grub/2.04/restore-mkdevicemap.patch delete mode 100644 patches/grub/2.04/safe-alloc-1.patch delete mode 100644 patches/grub/2.04/safe-alloc-2.patch delete mode 100644 patches/grub/2.04/safe-alloc-3.patch delete mode 100644 patches/grub/2.04/safe-alloc-4.patch delete mode 100644 patches/grub/2.04/safe-alloc-5.patch delete mode 100644 patches/grub/2.04/script-remove-unused-fields.patch delete mode 100644 patches/grub/2.04/script-use-after-free.patch delete mode 100644 patches/grub/2.04/series delete mode 100644 patches/grub/2.04/skip-grub_cmd_set_date.patch delete mode 100644 patches/grub/2.04/sleep-shift.patch delete mode 100644 patches/grub/2.04/sparc64-fix-bios-boot-partition-support.patch delete mode 100644 patches/grub/2.04/term-overflow.patch delete mode 100644 patches/grub/2.04/tftp-no-priority-queue.patch delete mode 100644 patches/grub/2.04/udf-leak.patch delete mode 100644 patches/grub/2.04/uefi-firmware-setup.patch delete mode 100644 patches/grub/2.04/uefi-secure-boot-cryptomount.patch delete mode 100644 patches/grub/2.04/unix-config-overflow.patch delete mode 100644 patches/grub/2.04/verifiers-blocklist-fallout.patch delete mode 100644 patches/grub/2.04/vsnprintf-upper-case-hex.patch delete mode 100644 patches/grub/2.04/vt-handoff.patch delete mode 100644 patches/grub/2.04/wubi-no-windows.patch delete mode 100644 patches/grub/2.04/xen-ignore-xenpolicy-and-config.patch delete mode 100644 patches/grub/2.04/xen-no-xsm-policy-in-non-xsm-options.patch delete mode 100644 patches/grub/2.04/xen-support-xsm.patch delete mode 100644 patches/grub/2.04/xnu-double-free.patch delete mode 100644 patches/grub/2.04/zfs-gcc-10.patch delete mode 100644 patches/grub/2.04/zpool-full-device-name.patch create mode 100644 patches/grub/2.14/0001-build-i386-pc-update-kernel-image-generation.patch create mode 100644 patches/grub/2.14/0002-revert-configure-print-helpful-error-if-autoconf-archive-missing.patch create mode 100644 patches/grub/2.14/0003-revert-configure-check-linker-for-image-base-support.patch create mode 100644 patches/grub/2.14/0004-configure-drop-ttext-checks-for-i386-pc.patch create mode 100644 patches/grub/2.14/0005-efi-sb-prefer-legacy-SHIM_LOCK-verify-for-pre-SBAT-kernels.patch create mode 100644 patches/grub/2.14/series delete mode 100644 patches/kexec-tools/0001-Improve-device-tree-directory-sorting.patch delete mode 100644 patches/kexec-tools/15-25-kexec-tools-add-aarch64-support.patch delete mode 100644 patches/lvm2/0001-add-sysmacros.h-to-filter-sysfs.c delete mode 100644 patches/pesign/Fix-unsigned-char-changes-value-from-496-to-240.patch delete mode 100644 patches/pesign/brace-initialization.patch delete mode 100644 patches/pesign/implicit-fallthrough.patch delete mode 100644 patches/pesign/pesigcheck-Fix-a-wrong-assignment.patch delete mode 100644 patches/pesign/series delete mode 100644 patches/popt/aarch64_support.patch delete mode 100644 patches/popt/popt-workaround-uclibc-glob-pattern-p.patch delete mode 100644 patches/shim/update-makefile.patch delete mode 100644 upstream/0.4.0.tar.gz.sha1 create mode 100644 upstream/0.7.2.tar.gz.sha1 create mode 100644 upstream/18.tar.gz.sha1 create mode 100644 upstream/39.tar.gz.sha1 create mode 100644 upstream/IPMITOOL_1_8_19.tar.gz.sha1 create mode 100644 upstream/LVM2.2.03.41.tgz.sha1 create mode 100644 upstream/acpica-unix-20260408.tar.gz.sha1 create mode 100644 upstream/btrfs-progs-v7.0.tar.xz.sha1 create mode 100644 upstream/busybox-1.38.0.tar.bz2.sha1 delete mode 100644 upstream/crosstool-ng-1.24.0.tar.xz.sha1 create mode 100644 upstream/crosstool-ng-1.28.0.tar.xz.sha1 create mode 100644 upstream/dmidecode-3.7.tar.xz.sha1 delete mode 100644 upstream/dosfstools-3.0.26.tar.xz.sha1 create mode 100644 upstream/dosfstools-4.2.tar.gz.sha1 create mode 100644 upstream/dropbear-2026.91.tar.bz2.sha1 delete mode 100644 upstream/efibootmgr-16.tar.bz2.sha1 delete mode 100644 upstream/efivar-37.tar.bz2.sha1 create mode 100644 upstream/ethtool-6.15.tar.xz.sha1 delete mode 100644 upstream/gcc-4.7.3.tar.bz2.sha1 delete mode 100644 upstream/gcc-4.9.2.tar.bz2.sha1 delete mode 100644 upstream/gcc-4.9.4.tar.bz2.sha1 delete mode 100644 upstream/gcc-6.3.0.tar.bz2.sha1 delete mode 100644 upstream/gcc-8.3.0.tar.xz.sha1 delete mode 100644 upstream/glibc-2.24.tar.xz.sha1 delete mode 100644 upstream/glibc-2.25.tar.xz.sha1 delete mode 100644 upstream/glibc-2.29.tar.xz.sha1 delete mode 100644 upstream/gnu-efi-3.0.12.tar.bz2.sha1 create mode 100644 upstream/gptfdisk-1.0.10.tar.gz.sha1 delete mode 100644 upstream/grub-2.04.tar.xz.sha1 create mode 100644 upstream/grub-2.14.tar.xz.sha1 delete mode 100644 upstream/i2c-tools-3.1.1.tar.bz2.sha1 create mode 100644 upstream/i2c-tools-4.4.tar.gz.sha1 create mode 100644 upstream/kexec-tools-2.0.32.tar.xz.sha1 create mode 100644 upstream/keyutils-1.6.3.tar.gz.sha1 create mode 100644 upstream/libaio-0.3.113.tar.gz.sha1 create mode 100644 upstream/libmnl-1.0.5.tar.bz2.sha1 create mode 100644 upstream/libpcap-1.10.6.tar.gz.sha1 create mode 100644 upstream/lzo-2.10.tar.gz.sha1 create mode 100644 upstream/mtd-utils-2.3.1.tar.bz2.sha1 delete mode 100644 upstream/mtd-utils-e4c8885.tar.gz.sha1 delete mode 100644 upstream/openssl-1.0.2l.tar.gz.sha1 delete mode 100644 upstream/openssl-1.1.1g.tar.gz.sha1 delete mode 100644 upstream/openssl-3.4.0.tar.gz.sha1 create mode 100644 upstream/openssl-3.5.7.tar.gz.sha1 create mode 100644 upstream/pciutils-3.15.0.tar.xz.sha1 delete mode 100644 upstream/pciutils-3.2.1.tar.xz.sha1 delete mode 100644 upstream/pesign-113.tar.bz2.sha1 create mode 100644 upstream/popt-1.19.tar.gz.sha1 delete mode 100644 upstream/shim-15.tar.bz2.sha1 create mode 100644 upstream/shim-16.1.tar.bz2.sha1 create mode 100644 upstream/tcpdump-4.99.6.tar.gz.sha1 delete mode 100644 upstream/uClibc-ng-1.0.22.tar.xz.sha1 delete mode 100644 upstream/uClibc-ng-1.0.35.tar.xz.sha1 delete mode 100644 upstream/uClibc-ng-1.0.38.tar.xz.sha1 create mode 100644 upstream/uClibc-ng-1.0.54.tar.xz.sha1 create mode 100644 upstream/zlib-1.3.2.tar.xz.sha1 diff --git a/.github/onie-build/Dockerfile b/.github/onie-build/Dockerfile index 500e8aedf..59327dee1 100644 --- a/.github/onie-build/Dockerfile +++ b/.github/onie-build/Dockerfile @@ -1,16 +1,16 @@ # ONIE build environment for CI. # -# Debian 11 is required: onie/build-config/Makefile still pulls in -# python2-era tooling (python-all-dev) that is unavailable on newer -# Debian releases. +# Debian 13 (trixie) host for the modernized toolchain. Required because +# kernel 6.18's objtool needs a newer host libelf than Debian 11 ships +# (0.183 fails with "elf_update: invalid section alignment"), and +# crosstool-NG 1.28 / GCC 14 align with the trixie host toolchain. (The +# old crosstool-NG 1.24 / GCC 8.3 toolchain could NOT build on trixie.) # # This image builds the generic kvm_x86_64 target with secure boot -# enabled. It includes the secure-boot key-generation and EFI signing -# tooling (gnupg2, efitools, sbsigntool), the NSS command-line tools the -# shim signing step shells out to (libnss3-tools: pk12util/certutil), and -# the build dependencies for the pesign that ONIE compiles from source -# (NSS/NSPR dev packages). -FROM debian:11 +# enabled. It includes the secure-boot tooling needed to exercise the SB +# build path -- pesign, efitools, sbsigntool and gnupg2 (for key +# generation and EFI signing). +FROM debian:13 WORKDIR /onie # Tolerate transient Debian mirror hiccups (connection resets mid-fetch). @@ -24,7 +24,7 @@ RUN apt-get update && apt-get install -y \ autopoint \ bc \ bison \ - bsdmainutils \ + bsdextrautils \ build-essential \ coreutils \ cpio \ @@ -43,19 +43,15 @@ RUN apt-get update && apt-get install -y \ libelf-dev \ libexpat1 \ libexpat1-dev \ - libncurses5 \ - libncurses5-dev \ - libnspr4-dev \ - libnss3-dev \ - libnss3-tools \ + libncurses-dev \ libpopt-dev \ libssl-dev \ libtool \ libtool-bin \ locales \ mtools \ + pesign \ pkgconf \ - python-all-dev \ python3-all-dev \ python3-sphinx \ python3-venv \ diff --git a/.github/workflows/build-onie.yml b/.github/workflows/build-onie.yml index f5b94c5e7..a68e9ccca 100644 --- a/.github/workflows/build-onie.yml +++ b/.github/workflows/build-onie.yml @@ -12,6 +12,17 @@ name: Build ONIE (kvm_x86_64) # filtering would risk skipping validation on build-affecting changes. on: workflow_dispatch: + inputs: + oce_scope: + description: >- + OCE compliance test scope: "default" (a fast representative + subset, also what push/PR runs) or "full" (the entire OCE + installer+updater sweep, tests 3-121 -- slow, many VM boots). + type: choice + default: default + options: + - default + - full push: pull_request: @@ -29,6 +40,18 @@ jobs: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + # The GCC 14 / Debian 13 toolchain build plus the full image (restored + # x-tools cache + every package + kernel + recovery ISO) exceeds the + # ~14 GB free on a stock ubuntu-latest runner. Reclaim ~25 GB of + # preinstalled toolchains we do not use so the build has headroom. + - name: Free up runner disk space + run: | + echo "Disk before cleanup:"; df -h / + sudo rm -rf /usr/local/lib/android /opt/hostedtoolcache /usr/share/dotnet \ + /usr/local/.ghcup /usr/share/swift /usr/local/share/powershell \ + /usr/local/lib/node_modules || true + echo "Disk after cleanup:"; df -h / + - name: Set up Docker Buildx uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4.1.0 @@ -300,3 +323,63 @@ jobs: name: onie-install-serial-log path: onie-install-*.log retention-days: 7 + + # Run ONIE's own OCE (ONIE Compliance Environment, contrib/oce) compliance + # suite against the image. Where install-test hands ONIE the installer URL + # directly (install_url=), OCE exercises the REAL OCP discovery path: it + # stands up isc-dhcp-server advertising the ONIE VIVSO vendor option (DHCP + # option 125) plus an nginx HTTP server, and ONIE must DHCP, read the VIVSO + # installer URL, and fetch+install the image itself. OCE needs L2 to the DUT + # (it validates the DUT shares the host interface's subnet), so the VM is on a + # tap interface rather than user-mode SLIRP. contrib/oce is python3 (it was + # ported in the python2-to-3 PR this is stacked on). See + # emulation/ci-oce-test.sh. + oce-test: + name: OCE compliance kvm_x86_64 + # Chained after install-test (not parallel) so only one VM-heavy job runs + # at a time, keeping CI resource use low. + needs: install-test + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 + - name: Enable KVM (grant /dev/kvm access) + run: | + echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' \ + | sudo tee /etc/udev/rules.d/99-kvm4all.rules + sudo udevadm control --reload-rules + sudo udevadm trigger --name-match=kvm + - name: Install QEMU + OCE service backends + python deps + run: | + sudo apt-get update + sudo apt-get install -y --no-install-recommends \ + qemu-system-x86 qemu-utils isc-dhcp-server nginx-light tftpd-hpa \ + dnsmasq dosfstools python3-venv + python3 -m venv /tmp/oce-venv + /tmp/oce-venv/bin/pip install --quiet jinja2 netifaces psutil + - name: Download install-test images + uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4 + with: + name: onie-kvm-install-images + path: build/images + - name: Run OCE compliance test (full install/update via OCP discovery) + run: | + # On push/PR (no dispatch input) run the fast "default" subset; a + # human can manually dispatch this workflow with oce_scope=full to + # run the entire OCE installer+updater sweep. + SCOPE="${{ inputs.oce_scope }}" + [ -z "$SCOPE" ] && SCOPE=default + OCE_PYTHON=/tmp/oce-venv/bin/python SERIAL_PREFIX="$PWD/onie-oce" \ + emulation/ci-oce-test.sh \ + build/images/kvm_x86_64-r0.vmlinuz \ + build/images/kvm_x86_64-r0.initrd \ + build/images/demo-installer-x86_64-kvm_x86_64-r0.bin \ + build/images/onie-updater-x86_64-kvm_x86_64-r0 \ + "$SCOPE" + - name: Upload OCE serial logs + if: always() + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + with: + name: onie-oce-serial-log + path: onie-oce-*.log + retention-days: 7 diff --git a/build-config/Makefile b/build-config/Makefile index 4aa83d247..14a35f77f 100644 --- a/build-config/Makefile +++ b/build-config/Makefile @@ -358,8 +358,6 @@ SECURE_GRUB ?= no ifeq ($(SECURE_BOOT_ENABLE),yes) SHIM_ENABLE = yes - PESIGN_ENABLE = yes - GNU_EFI_ENABLE = yes OPENSSL_ENABLE = yes MOKUTIL_ENABLE = yes KEYUTILS_ENABLE = yes @@ -374,9 +372,6 @@ ifeq ($(XTOOLS_ENABLE),yes) include make/xtools.make endif include make/sysroot.make -ifeq ($(GNU_EFI_ENABLE),yes) - include make/gnu-efi.make -endif include make/kernel.make ifeq ($(UBOOT_ENABLE),yes) include make/u-boot.make @@ -398,6 +393,8 @@ ifeq ($(GPT_ENABLE),yes) include make/gptfdisk.make endif ifeq ($(LVM2_ENABLE),yes) + # lvm2 >= 2.03 requires libaio for its bcache I/O engine. + include make/libaio.make include make/lvm2.make endif ifeq ($(PARTED_ENABLE),yes) @@ -420,6 +417,8 @@ ifeq ($(DMIDECODE_ENABLE),yes) include make/dmidecode.make endif ifeq ($(ETHTOOL_ENABLE),yes) + # ethtool's netlink interface needs libmnl. + include make/libmnl.make include make/ethtool.make endif ifeq ($(MTREE_ENABLE),yes) @@ -441,9 +440,6 @@ endif ifeq ($(IPMITOOL_ENABLE),yes) include make/ipmitool.make endif -ifeq ($(PESIGN_ENABLE),yes) - include make/pesign.make -endif ifeq ($(OPENSSL_ENABLE),yes) include make/openssl.make endif diff --git a/build-config/conf/busybox.config b/build-config/conf/busybox.config index 3cb98e71d..24eaf4131 100644 --- a/build-config/conf/busybox.config +++ b/build-config/conf/busybox.config @@ -1,59 +1,43 @@ # # Automatically generated make config: don't edit -# Busybox version: 1.25.1 -# Mon Feb 6 14:00:48 2017 +# Busybox version: 1.38.0 +# Wed Jun 3 03:36:56 2026 # CONFIG_HAVE_DOT_CONFIG=y # -# Busybox Settings -# - -# -# General Configuration +# Settings # # CONFIG_DESKTOP is not set # CONFIG_EXTRA_COMPAT is not set +# CONFIG_FEDORA_COMPAT is not set # CONFIG_INCLUDE_SUSv2 is not set -# CONFIG_USE_PORTABLE_CODE is not set -CONFIG_PLATFORM_LINUX=y -CONFIG_FEATURE_BUFFERS_USE_MALLOC=y -# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set -# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set +CONFIG_LONG_OPTS=y CONFIG_SHOW_USAGE=y CONFIG_FEATURE_VERBOSE_USAGE=y CONFIG_FEATURE_COMPRESS_USAGE=y -CONFIG_BUSYBOX=y -# CONFIG_FEATURE_INSTALLER is not set -# CONFIG_INSTALL_NO_USR is not set -# CONFIG_LOCALE_SUPPORT is not set -# CONFIG_UNICODE_SUPPORT is not set -# CONFIG_UNICODE_USING_LOCALE is not set -# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set -CONFIG_SUBST_WCHAR=0 -CONFIG_LAST_SUPPORTED_WCHAR=0 -# CONFIG_UNICODE_COMBINING_WCHARS is not set -# CONFIG_UNICODE_WIDE_WCHARS is not set -# CONFIG_UNICODE_BIDI_SUPPORT is not set -# CONFIG_UNICODE_NEUTRAL_TABLE is not set -# CONFIG_UNICODE_PRESERVE_BROKEN is not set +CONFIG_LFS=y +CONFIG_TIME64=y # CONFIG_PAM is not set -# CONFIG_FEATURE_USE_SENDFILE is not set -CONFIG_LONG_OPTS=y CONFIG_FEATURE_DEVPTS=y -# CONFIG_FEATURE_CLEAN_UP is not set # CONFIG_FEATURE_UTMP is not set # CONFIG_FEATURE_WTMP is not set CONFIG_FEATURE_PIDFILE=y CONFIG_PID_FILE_PATH="/var/run" +CONFIG_BUSYBOX=y +CONFIG_FEATURE_SHOW_SCRIPT=y +# CONFIG_FEATURE_INSTALLER is not set +CONFIG_FEATURE_VERSION=y +# CONFIG_INSTALL_NO_USR is not set CONFIG_FEATURE_SUID=y CONFIG_FEATURE_SUID_CONFIG=y CONFIG_FEATURE_SUID_CONFIG_QUIET=y -# CONFIG_SELINUX is not set # CONFIG_FEATURE_PREFER_APPLETS is not set CONFIG_BUSYBOX_EXEC_PATH="/proc/self/exe" +# CONFIG_SELINUX is not set +# CONFIG_FEATURE_CLEAN_UP is not set +CONFIG_FEATURE_SYSLOG_INFO=y CONFIG_FEATURE_SYSLOG=y -# CONFIG_FEATURE_HAVE_RPC is not set # # Build Options @@ -62,26 +46,17 @@ CONFIG_FEATURE_SYSLOG=y # CONFIG_PIE is not set # CONFIG_NOMMU is not set # CONFIG_BUILD_LIBBUSYBOX is not set +# CONFIG_FEATURE_LIBBUSYBOX_STATIC is not set # CONFIG_FEATURE_INDIVIDUAL is not set # CONFIG_FEATURE_SHARED_BUSYBOX is not set -CONFIG_LFS=y CONFIG_CROSS_COMPILER_PREFIX="" CONFIG_SYSROOT="" CONFIG_EXTRA_CFLAGS="" CONFIG_EXTRA_LDFLAGS="" CONFIG_EXTRA_LDLIBS="" - -# -# Debugging Options -# -# CONFIG_DEBUG is not set -# CONFIG_DEBUG_PESSIMIZE is not set -# CONFIG_DEBUG_SANITIZE is not set -# CONFIG_UNIT_TEST is not set -# CONFIG_WERROR is not set -CONFIG_NO_DEBUG_LIB=y -# CONFIG_DMALLOC is not set -# CONFIG_EFENCE is not set +# CONFIG_USE_PORTABLE_CODE is not set +CONFIG_STACK_OPTIMIZATION_386=y +CONFIG_STATIC_LIBGCC=y # # Installation Options ("make install" behavior) @@ -96,16 +71,40 @@ CONFIG_INSTALL_APPLET_SYMLINKS=y CONFIG_PREFIX="./_install" # -# Busybox Library Tuning +# Debugging Options +# +# CONFIG_DEBUG is not set +# CONFIG_DEBUG_PESSIMIZE is not set +# CONFIG_DEBUG_SANITIZE is not set +# CONFIG_UNIT_TEST is not set +# CONFIG_WERROR is not set +# CONFIG_WARN_SIMPLE_MSG is not set +CONFIG_NO_DEBUG_LIB=y +# CONFIG_DMALLOC is not set +# CONFIG_EFENCE is not set + +# +# Library Tuning # # CONFIG_FEATURE_USE_BSS_TAIL is not set +CONFIG_FLOAT_DURATION=y CONFIG_FEATURE_RTMINMAX=y +CONFIG_FEATURE_RTMINMAX_USE_LIBC_DEFINITIONS=y +CONFIG_FEATURE_BUFFERS_USE_MALLOC=y +# CONFIG_FEATURE_BUFFERS_GO_ON_STACK is not set +# CONFIG_FEATURE_BUFFERS_GO_IN_BSS is not set CONFIG_PASSWORD_MINLEN=6 CONFIG_MD5_SMALL=1 +CONFIG_SHA1_SMALL=3 +CONFIG_SHA1_HWACCEL=y +CONFIG_SHA256_HWACCEL=y CONFIG_SHA3_SMALL=1 -CONFIG_FEATURE_FAST_TOP=y -# CONFIG_FEATURE_ETC_NETWORKS is not set -CONFIG_FEATURE_USE_TERMIOS=y +CONFIG_FEATURE_NON_POSIX_CP=y +# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set +# CONFIG_FEATURE_USE_SENDFILE is not set +CONFIG_FEATURE_COPYBUF_KB=4 +# CONFIG_MONOTONIC_SYSCALL is not set +CONFIG_IOCTL_HEX2STR_ERROR=y CONFIG_FEATURE_EDITING=y CONFIG_FEATURE_EDITING_MAX_LEN=1024 # CONFIG_FEATURE_EDITING_VI is not set @@ -116,14 +115,22 @@ CONFIG_FEATURE_REVERSE_SEARCH=y CONFIG_FEATURE_TAB_COMPLETION=y # CONFIG_FEATURE_USERNAME_COMPLETION is not set CONFIG_FEATURE_EDITING_FANCY_PROMPT=y +CONFIG_FEATURE_EDITING_WINCH=y # CONFIG_FEATURE_EDITING_ASK_TERMINAL is not set -CONFIG_FEATURE_NON_POSIX_CP=y -# CONFIG_FEATURE_VERBOSE_CP_MESSAGE is not set -CONFIG_FEATURE_COPYBUF_KB=4 -CONFIG_FEATURE_SKIP_ROOTFS=y -# CONFIG_MONOTONIC_SYSCALL is not set -CONFIG_IOCTL_HEX2STR_ERROR=y -# CONFIG_FEATURE_HWIB is not set +# CONFIG_LOCALE_SUPPORT is not set +# CONFIG_UNICODE_SUPPORT is not set +# CONFIG_UNICODE_USING_LOCALE is not set +# CONFIG_FEATURE_CHECK_UNICODE_IN_ENV is not set +CONFIG_SUBST_WCHAR=0 +CONFIG_LAST_SUPPORTED_WCHAR=0 +# CONFIG_UNICODE_COMBINING_WCHARS is not set +# CONFIG_UNICODE_WIDE_WCHARS is not set +# CONFIG_UNICODE_BIDI_SUPPORT is not set +# CONFIG_UNICODE_NEUTRAL_TABLE is not set +# CONFIG_UNICODE_PRESERVE_BROKEN is not set +# CONFIG_LOOP_CONFIGURE is not set +# CONFIG_NO_LOOP_CONFIGURE is not set +CONFIG_TRY_LOOP_CONFIGURE=y # # Applets @@ -142,92 +149,105 @@ CONFIG_FEATURE_AR_LONG_FILENAMES=y CONFIG_FEATURE_AR_CREATE=y # CONFIG_UNCOMPRESS is not set CONFIG_GUNZIP=y +CONFIG_ZCAT=y # CONFIG_FEATURE_GUNZIP_LONG_OPTIONS is not set CONFIG_BUNZIP2=y +CONFIG_BZCAT=y # CONFIG_UNLZMA is not set -# CONFIG_FEATURE_LZMA_FAST is not set +CONFIG_LZCAT=y # CONFIG_LZMA is not set CONFIG_UNXZ=y +CONFIG_XZCAT=y CONFIG_XZ=y CONFIG_BZIP2=y +CONFIG_BZIP2_SMALL=8 +CONFIG_FEATURE_BZIP2_DECOMPRESS=y CONFIG_CPIO=y CONFIG_FEATURE_CPIO_O=y CONFIG_FEATURE_CPIO_P=y +CONFIG_FEATURE_CPIO_IGNORE_DEVNO=y +CONFIG_FEATURE_CPIO_RENUMBER_INODES=y CONFIG_DPKG=y CONFIG_DPKG_DEB=y -# CONFIG_FEATURE_DPKG_DEB_EXTRACT_ONLY is not set CONFIG_GZIP=y CONFIG_FEATURE_GZIP_LONG_OPTIONS=y CONFIG_GZIP_FAST=0 # CONFIG_FEATURE_GZIP_LEVELS is not set +CONFIG_FEATURE_GZIP_DECOMPRESS=y CONFIG_LZOP=y +# CONFIG_UNLZOP is not set +# CONFIG_LZOPCAT is not set # CONFIG_LZOP_COMPR_HIGH is not set -# CONFIG_RPM2CPIO is not set # CONFIG_RPM is not set +# CONFIG_RPM2CPIO is not set CONFIG_TAR=y +CONFIG_FEATURE_TAR_LONG_OPTIONS=y CONFIG_FEATURE_TAR_CREATE=y CONFIG_FEATURE_TAR_AUTODETECT=y CONFIG_FEATURE_TAR_FROM=y CONFIG_FEATURE_TAR_OLDGNU_COMPATIBILITY=y CONFIG_FEATURE_TAR_OLDSUN_COMPATIBILITY=y CONFIG_FEATURE_TAR_GNU_EXTENSIONS=y -CONFIG_FEATURE_TAR_LONG_OPTIONS=y CONFIG_FEATURE_TAR_TO_COMMAND=y CONFIG_FEATURE_TAR_UNAME_GNAME=y CONFIG_FEATURE_TAR_NOPRESERVE_TIME=y # CONFIG_FEATURE_TAR_SELINUX is not set CONFIG_UNZIP=y +CONFIG_FEATURE_UNZIP_CDF=y +# CONFIG_FEATURE_UNZIP_BZIP2 is not set +# CONFIG_FEATURE_UNZIP_LZMA is not set +# CONFIG_FEATURE_UNZIP_XZ is not set +# CONFIG_FEATURE_LZMA_FAST is not set +# CONFIG_FEATURE_PATH_TRAVERSAL_PROTECTION is not set # # Coreutils # +# CONFIG_FEATURE_VERBOSE is not set + +# +# Common options for date and touch +# +# CONFIG_FEATURE_TIMEZONE is not set + +# +# Common options for cp and mv +# +CONFIG_FEATURE_PRESERVE_HARDLINKS=y + +# +# Common options for df, du, ls +# +CONFIG_FEATURE_HUMAN_READABLE=y CONFIG_BASENAME=y CONFIG_CAT=y -CONFIG_DATE=y -CONFIG_FEATURE_DATE_ISOFMT=y -# CONFIG_FEATURE_DATE_NANO is not set -CONFIG_FEATURE_DATE_COMPAT=y -CONFIG_DD=y -CONFIG_FEATURE_DD_SIGNAL_HANDLING=y -CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y -CONFIG_FEATURE_DD_IBS_OBS=y -# CONFIG_FEATURE_DD_STATUS is not set -CONFIG_HOSTID=y -CONFIG_ID=y -CONFIG_GROUPS=y -# CONFIG_SHUF is not set -CONFIG_STAT=y -CONFIG_FEATURE_STAT_FORMAT=y -CONFIG_FEATURE_STAT_FILESYSTEM=y -CONFIG_SYNC=y -# CONFIG_FEATURE_SYNC_FANCY is not set -CONFIG_TEST=y -CONFIG_FEATURE_TEST_64=y -CONFIG_TOUCH=y -# CONFIG_FEATURE_TOUCH_NODEREF is not set -CONFIG_FEATURE_TOUCH_SUSV3=y -CONFIG_TR=y -CONFIG_FEATURE_TR_CLASSES=y -CONFIG_FEATURE_TR_EQUIV=y -# CONFIG_TRUNCATE is not set -# CONFIG_UNLINK is not set -CONFIG_BASE64=y -# CONFIG_WHO is not set -# CONFIG_USERS is not set -CONFIG_CAL=y -CONFIG_CATV=y +CONFIG_FEATURE_CATN=y +CONFIG_FEATURE_CATV=y CONFIG_CHGRP=y CONFIG_CHMOD=y CONFIG_CHOWN=y CONFIG_FEATURE_CHOWN_LONG_OPTIONS=y CONFIG_CHROOT=y CONFIG_CKSUM=y +CONFIG_CRC32=y CONFIG_COMM=y CONFIG_CP=y CONFIG_FEATURE_CP_LONG_OPTIONS=y +CONFIG_FEATURE_CP_REFLINK=y CONFIG_CUT=y +CONFIG_FEATURE_CUT_REGEX=y +CONFIG_DATE=y +CONFIG_FEATURE_DATE_ISOFMT=y +# CONFIG_FEATURE_DATE_NANO is not set +CONFIG_FEATURE_DATE_COMPAT=y +CONFIG_DD=y +CONFIG_FEATURE_DD_SIGNAL_HANDLING=y +CONFIG_FEATURE_DD_THIRD_STATUS_LINE=y +CONFIG_FEATURE_DD_IBS_OBS=y +# CONFIG_FEATURE_DD_STATUS is not set CONFIG_DF=y CONFIG_FEATURE_DF_FANCY=y +CONFIG_FEATURE_SKIP_ROOTFS=y CONFIG_DIRNAME=y CONFIG_DOS2UNIX=y CONFIG_UNIX2DOS=y @@ -236,39 +256,55 @@ CONFIG_FEATURE_DU_DEFAULT_BLOCKSIZE_1K=y CONFIG_ECHO=y CONFIG_FEATURE_FANCY_ECHO=y CONFIG_ENV=y -CONFIG_FEATURE_ENV_LONG_OPTIONS=y CONFIG_EXPAND=y -CONFIG_FEATURE_EXPAND_LONG_OPTIONS=y +CONFIG_UNEXPAND=y CONFIG_EXPR=y CONFIG_EXPR_MATH_SUPPORT_64=y +CONFIG_FACTOR=y CONFIG_FALSE=y CONFIG_FOLD=y -CONFIG_FSYNC=y CONFIG_HEAD=y CONFIG_FEATURE_FANCY_HEAD=y +CONFIG_HOSTID=y +CONFIG_ID=y +CONFIG_GROUPS=y CONFIG_INSTALL=y CONFIG_FEATURE_INSTALL_LONG_OPTIONS=y +CONFIG_LINK=y CONFIG_LN=y CONFIG_LOGNAME=y CONFIG_LS=y CONFIG_FEATURE_LS_FILETYPES=y CONFIG_FEATURE_LS_FOLLOWLINKS=y CONFIG_FEATURE_LS_RECURSIVE=y +CONFIG_FEATURE_LS_WIDTH=y CONFIG_FEATURE_LS_SORTFILES=y CONFIG_FEATURE_LS_TIMESTAMPS=y CONFIG_FEATURE_LS_USERNAME=y CONFIG_FEATURE_LS_COLOR=y CONFIG_FEATURE_LS_COLOR_IS_DEFAULT=y CONFIG_MD5SUM=y +CONFIG_SHA1SUM=y +CONFIG_SHA256SUM=y +CONFIG_SHA384SUM=y +CONFIG_SHA512SUM=y +# CONFIG_SHA3SUM is not set + +# +# Common options for md5sum, sha1sum, sha256sum, ..., sha3sum +# +CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y CONFIG_MKDIR=y -CONFIG_FEATURE_MKDIR_LONG_OPTIONS=y CONFIG_MKFIFO=y CONFIG_MKNOD=y +CONFIG_MKTEMP=y CONFIG_MV=y -CONFIG_FEATURE_MV_LONG_OPTIONS=y CONFIG_NICE=y +CONFIG_NL=y CONFIG_NOHUP=y +CONFIG_NPROC=y CONFIG_OD=y +CONFIG_PASTE=y CONFIG_PRINTENV=y CONFIG_PRINTF=y CONFIG_PWD=y @@ -277,76 +313,76 @@ CONFIG_FEATURE_READLINK_FOLLOW=y CONFIG_REALPATH=y CONFIG_RM=y CONFIG_RMDIR=y -CONFIG_FEATURE_RMDIR_LONG_OPTIONS=y CONFIG_SEQ=y -CONFIG_SHA1SUM=y -CONFIG_SHA256SUM=y -CONFIG_SHA512SUM=y -# CONFIG_SHA3SUM is not set +CONFIG_SHRED=y +# CONFIG_SHUF is not set CONFIG_SLEEP=y CONFIG_FEATURE_FANCY_SLEEP=y -CONFIG_FEATURE_FLOAT_SLEEP=y CONFIG_SORT=y CONFIG_FEATURE_SORT_BIG=y +# CONFIG_FEATURE_SORT_OPTIMIZE_MEMORY is not set CONFIG_SPLIT=y CONFIG_FEATURE_SPLIT_FANCY=y +CONFIG_STAT=y +CONFIG_FEATURE_STAT_FORMAT=y +CONFIG_FEATURE_STAT_FILESYSTEM=y CONFIG_STTY=y CONFIG_SUM=y +CONFIG_SYNC=y +# CONFIG_FEATURE_SYNC_FANCY is not set +CONFIG_FSYNC=y CONFIG_TAC=y CONFIG_TAIL=y CONFIG_FEATURE_FANCY_TAIL=y CONFIG_TEE=y CONFIG_FEATURE_TEE_USE_BLOCK_IO=y +CONFIG_TEST=y +CONFIG_TEST1=y +CONFIG_TEST2=y +CONFIG_FEATURE_TEST_64=y +CONFIG_TIMEOUT=y +CONFIG_TOUCH=y +CONFIG_FEATURE_TOUCH_SUSV3=y +CONFIG_TR=y +CONFIG_FEATURE_TR_CLASSES=y +CONFIG_FEATURE_TR_EQUIV=y CONFIG_TRUE=y +# CONFIG_TRUNCATE is not set +CONFIG_TSORT=y CONFIG_TTY=y CONFIG_UNAME=y CONFIG_UNAME_OSNAME="" -CONFIG_UNEXPAND=y -CONFIG_FEATURE_UNEXPAND_LONG_OPTIONS=y +CONFIG_BB_ARCH=y CONFIG_UNIQ=y +# CONFIG_UNLINK is not set CONFIG_USLEEP=y CONFIG_UUDECODE=y +CONFIG_BASE32=y +CONFIG_BASE64=y CONFIG_UUENCODE=y CONFIG_WC=y CONFIG_FEATURE_WC_LARGE=y +# CONFIG_WHO is not set +# CONFIG_W is not set +# CONFIG_USERS is not set CONFIG_WHOAMI=y CONFIG_YES=y -# -# Common options -# -# CONFIG_FEATURE_VERBOSE is not set - -# -# Common options for cp and mv -# -CONFIG_FEATURE_PRESERVE_HARDLINKS=y - -# -# Common options for ls, more and telnet -# -CONFIG_FEATURE_AUTOWIDTH=y - -# -# Common options for df, du, ls -# -CONFIG_FEATURE_HUMAN_READABLE=y - -# -# Common options for md5sum, sha1sum, sha256sum, sha512sum, sha3sum -# -CONFIG_FEATURE_MD5_SHA1_SUM_CHECK=y - # # Console Utilities # # CONFIG_CHVT is not set -# CONFIG_FGCONSOLE is not set CONFIG_CLEAR=y # CONFIG_DEALLOCVT is not set # CONFIG_DUMPKMAP is not set +# CONFIG_FGCONSOLE is not set # CONFIG_KBD_MODE is not set # CONFIG_LOADFONT is not set +# CONFIG_SETFONT is not set +# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set +CONFIG_DEFAULT_SETFONT_DIR="" +# CONFIG_FEATURE_LOADFONT_PSF2 is not set +# CONFIG_FEATURE_LOADFONT_RAW is not set # CONFIG_LOADKMAP is not set # CONFIG_OPENVT is not set CONFIG_RESET=y @@ -354,28 +390,30 @@ CONFIG_RESET=y # CONFIG_FEATURE_RESIZE_PRINT is not set # CONFIG_SETCONSOLE is not set # CONFIG_FEATURE_SETCONSOLE_LONG_OPTIONS is not set -# CONFIG_SETFONT is not set -# CONFIG_FEATURE_SETFONT_TEXTUAL_MAP is not set -CONFIG_DEFAULT_SETFONT_DIR="" # CONFIG_SETKEYCODES is not set # CONFIG_SETLOGCONS is not set # CONFIG_SHOWKEY is not set -# CONFIG_FEATURE_LOADFONT_PSF2 is not set -# CONFIG_FEATURE_LOADFONT_RAW is not set # # Debian Utilities # -CONFIG_MKTEMP=y CONFIG_PIPE_PROGRESS=y CONFIG_RUN_PARTS=y CONFIG_FEATURE_RUN_PARTS_LONG_OPTIONS=y CONFIG_FEATURE_RUN_PARTS_FANCY=y CONFIG_START_STOP_DAEMON=y -CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y CONFIG_FEATURE_START_STOP_DAEMON_LONG_OPTIONS=y +CONFIG_FEATURE_START_STOP_DAEMON_FANCY=y CONFIG_WHICH=y +# +# klibc-utils +# +# CONFIG_MINIPS is not set +# CONFIG_NUKE is not set +CONFIG_RESUME=y +CONFIG_RUN_INIT=y + # # Editors # @@ -393,6 +431,7 @@ CONFIG_VI=y CONFIG_FEATURE_VI_MAX_LEN=4096 # CONFIG_FEATURE_VI_8BIT is not set CONFIG_FEATURE_VI_COLON=y +CONFIG_FEATURE_VI_COLON_EXPAND=y CONFIG_FEATURE_VI_YANKMARK=y CONFIG_FEATURE_VI_SEARCH=y # CONFIG_FEATURE_VI_REGEX_SEARCH is not set @@ -406,6 +445,7 @@ CONFIG_FEATURE_VI_ASK_TERMINAL=y CONFIG_FEATURE_VI_UNDO=y CONFIG_FEATURE_VI_UNDO_QUEUE=y CONFIG_FEATURE_VI_UNDO_QUEUE_MAX=256 +CONFIG_FEATURE_VI_VERBOSE_STATUS=y CONFIG_FEATURE_ALLOW_EXEC=y # @@ -414,15 +454,22 @@ CONFIG_FEATURE_ALLOW_EXEC=y CONFIG_FIND=y CONFIG_FEATURE_FIND_PRINT0=y CONFIG_FEATURE_FIND_MTIME=y +CONFIG_FEATURE_FIND_ATIME=y +CONFIG_FEATURE_FIND_CTIME=y CONFIG_FEATURE_FIND_MMIN=y +CONFIG_FEATURE_FIND_AMIN=y +CONFIG_FEATURE_FIND_CMIN=y CONFIG_FEATURE_FIND_PERM=y CONFIG_FEATURE_FIND_TYPE=y +CONFIG_FEATURE_FIND_EXECUTABLE=y CONFIG_FEATURE_FIND_XDEV=y CONFIG_FEATURE_FIND_MAXDEPTH=y CONFIG_FEATURE_FIND_NEWER=y CONFIG_FEATURE_FIND_INUM=y +CONFIG_FEATURE_FIND_SAMEFILE=y CONFIG_FEATURE_FIND_EXEC=y # CONFIG_FEATURE_FIND_EXEC_PLUS is not set +CONFIG_FEATURE_FIND_EXEC_OK=y CONFIG_FEATURE_FIND_USER=y CONFIG_FEATURE_FIND_GROUP=y CONFIG_FEATURE_FIND_NOT=y @@ -430,14 +477,16 @@ CONFIG_FEATURE_FIND_DEPTH=y CONFIG_FEATURE_FIND_PAREN=y CONFIG_FEATURE_FIND_SIZE=y CONFIG_FEATURE_FIND_PRUNE=y +CONFIG_FEATURE_FIND_QUIT=y CONFIG_FEATURE_FIND_DELETE=y +CONFIG_FEATURE_FIND_EMPTY=y CONFIG_FEATURE_FIND_PATH=y CONFIG_FEATURE_FIND_REGEX=y # CONFIG_FEATURE_FIND_CONTEXT is not set CONFIG_FEATURE_FIND_LINKS=y CONFIG_GREP=y -CONFIG_FEATURE_GREP_EGREP_ALIAS=y -CONFIG_FEATURE_GREP_FGREP_ALIAS=y +CONFIG_EGREP=y +CONFIG_FGREP=y CONFIG_FEATURE_GREP_CONTEXT=y CONFIG_XARGS=y CONFIG_FEATURE_XARGS_SUPPORT_CONFIRMATION=y @@ -445,6 +494,8 @@ CONFIG_FEATURE_XARGS_SUPPORT_QUOTES=y CONFIG_FEATURE_XARGS_SUPPORT_TERMOPT=y CONFIG_FEATURE_XARGS_SUPPORT_ZERO_TERM=y # CONFIG_FEATURE_XARGS_SUPPORT_REPL_STR is not set +CONFIG_FEATURE_XARGS_SUPPORT_PARALLEL=y +CONFIG_FEATURE_XARGS_SUPPORT_ARGS_FILE=y # # Init Utilities @@ -453,6 +504,9 @@ CONFIG_BOOTCHARTD=y CONFIG_FEATURE_BOOTCHARTD_BLOATED_HEADER=y CONFIG_FEATURE_BOOTCHARTD_CONFIG_FILE=y CONFIG_HALT=y +CONFIG_POWEROFF=y +CONFIG_REBOOT=y +CONFIG_FEATURE_WAIT_FOR_INIT=y # CONFIG_FEATURE_CALL_TELINIT is not set CONFIG_TELINIT_PATH="" CONFIG_INIT=y @@ -462,12 +516,10 @@ CONFIG_FEATURE_USE_INITTAB=y CONFIG_FEATURE_KILL_DELAY=0 CONFIG_FEATURE_INIT_SCTTY=y CONFIG_FEATURE_INIT_SYSLOG=y -CONFIG_FEATURE_EXTRA_QUIET=y +CONFIG_FEATURE_INIT_QUIET=y CONFIG_FEATURE_INIT_COREDUMPS=y CONFIG_INIT_TERMINAL_TYPE="linux" # CONFIG_FEATURE_INIT_MODIFY_CMDLINE is not set -# CONFIG_MESG is not set -# CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP is not set # # Login/Password Management Utilities @@ -477,13 +529,12 @@ CONFIG_USE_BB_PWD_GRP=y CONFIG_USE_BB_SHADOW=y # CONFIG_USE_BB_CRYPT is not set # CONFIG_USE_BB_CRYPT_SHA is not set -CONFIG_ADDGROUP=y -CONFIG_FEATURE_ADDGROUP_LONG_OPTIONS=y -CONFIG_FEATURE_ADDUSER_TO_GROUP=y +# CONFIG_USE_BB_CRYPT_YES is not set # CONFIG_ADD_SHELL is not set # CONFIG_REMOVE_SHELL is not set +CONFIG_ADDGROUP=y +CONFIG_FEATURE_ADDUSER_TO_GROUP=y CONFIG_ADDUSER=y -CONFIG_FEATURE_ADDUSER_LONG_OPTIONS=y # CONFIG_FEATURE_CHECK_NAMES is not set CONFIG_LAST_ID=60000 CONFIG_FIRST_SYSTEM_ID=100 @@ -506,6 +557,7 @@ CONFIG_FEATURE_PASSWD_WEAK_CHECK=y CONFIG_SU=y CONFIG_FEATURE_SU_SYSLOG=y CONFIG_FEATURE_SU_CHECKS_SHELLS=y +# CONFIG_FEATURE_SU_BLANK_PW_NEEDS_SECURE_TTY is not set CONFIG_SULOGIN=y CONFIG_VLOCK=y @@ -520,29 +572,29 @@ CONFIG_TUNE2FS=y # # Linux Module Utilities # -CONFIG_MODINFO=y CONFIG_MODPROBE_SMALL=y -CONFIG_FEATURE_MODPROBE_SMALL_OPTIONS_ON_CMDLINE=y -CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED=y +# CONFIG_DEPMOD is not set # CONFIG_INSMOD is not set -# CONFIG_RMMOD is not set # CONFIG_LSMOD is not set # CONFIG_FEATURE_LSMOD_PRETTY_2_6_OUTPUT is not set +CONFIG_MODINFO=y # CONFIG_MODPROBE is not set # CONFIG_FEATURE_MODPROBE_BLACKLIST is not set -# CONFIG_DEPMOD is not set +# CONFIG_RMMOD is not set # # Options common to multiple modutils # +# CONFIG_FEATURE_CMDLINE_MODULE_OPTIONS is not set +# CONFIG_FEATURE_MODPROBE_SMALL_CHECK_ALREADY_LOADED is not set # CONFIG_FEATURE_2_4_MODULES is not set -# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set # CONFIG_FEATURE_INSMOD_VERSION_CHECKING is not set # CONFIG_FEATURE_INSMOD_KSYMOOPS_SYMBOLS is not set # CONFIG_FEATURE_INSMOD_LOADINKMEM is not set # CONFIG_FEATURE_INSMOD_LOAD_MAP is not set # CONFIG_FEATURE_INSMOD_LOAD_MAP_FULL is not set # CONFIG_FEATURE_CHECK_TAINTED_MODULE is not set +# CONFIG_FEATURE_INSMOD_TRY_MMAP is not set # CONFIG_FEATURE_MODUTILS_ALIAS is not set # CONFIG_FEATURE_MODUTILS_SYMBOLS is not set CONFIG_DEFAULT_MODULES_DIR="/lib/modules" @@ -551,45 +603,27 @@ CONFIG_DEFAULT_DEPMOD_FILE="modules.dep" # # Linux System Utilities # +CONFIG_ACPID=y +CONFIG_FEATURE_ACPID_COMPAT=y # CONFIG_BLKDISCARD is not set +CONFIG_BLKID=y +# CONFIG_FEATURE_BLKID_TYPE is not set CONFIG_BLOCKDEV=y +CONFIG_CAL=y +CONFIG_CHRT=y +CONFIG_DMESG=y +CONFIG_FEATURE_DMESG_PRETTY=y +# CONFIG_EJECT is not set +# CONFIG_FEATURE_EJECT_SCSI is not set +CONFIG_FALLOCATE=y # CONFIG_FATATTR is not set -# CONFIG_FSTRIM is not set -CONFIG_MDEV=y -CONFIG_FEATURE_MDEV_CONF=y -CONFIG_FEATURE_MDEV_RENAME=y -CONFIG_FEATURE_MDEV_RENAME_REGEXP=y -CONFIG_FEATURE_MDEV_EXEC=y -CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y -CONFIG_MOUNT=y -CONFIG_FEATURE_MOUNT_FAKE=y -CONFIG_FEATURE_MOUNT_VERBOSE=y -# CONFIG_FEATURE_MOUNT_HELPERS is not set -CONFIG_FEATURE_MOUNT_LABEL=y -# CONFIG_FEATURE_MOUNT_NFS is not set -CONFIG_FEATURE_MOUNT_CIFS=y -CONFIG_FEATURE_MOUNT_FLAGS=y -CONFIG_FEATURE_MOUNT_FSTAB=y -# CONFIG_FEATURE_MOUNT_OTHERTAB is not set -# CONFIG_NSENTER is not set -# CONFIG_FEATURE_NSENTER_LONG_OPTS is not set -CONFIG_REV=y -CONFIG_SETARCH=y -# CONFIG_UEVENT is not set -# CONFIG_UNSHARE is not set -CONFIG_ACPID=y -CONFIG_FEATURE_ACPID_COMPAT=y -CONFIG_BLKID=y -# CONFIG_FEATURE_BLKID_TYPE is not set -CONFIG_DMESG=y -CONFIG_FEATURE_DMESG_PRETTY=y # CONFIG_FBSET is not set # CONFIG_FEATURE_FBSET_FANCY is not set # CONFIG_FEATURE_FBSET_READMODE is not set -# CONFIG_FDFLUSH is not set # CONFIG_FDFORMAT is not set CONFIG_FDISK=y # CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set +CONFIG_FEATURE_FDISK_BLKSIZE=y CONFIG_FEATURE_FDISK_WRITABLE=y # CONFIG_FEATURE_AIX_LABEL is not set # CONFIG_FEATURE_SGI_LABEL is not set @@ -599,42 +633,92 @@ CONFIG_FEATURE_FDISK_WRITABLE=y CONFIG_FEATURE_FDISK_ADVANCED=y CONFIG_FINDFS=y CONFIG_FLOCK=y +# CONFIG_FDFLUSH is not set CONFIG_FREERAMDISK=y # CONFIG_FSCK_MINIX is not set -CONFIG_MKFS_EXT2=y -# CONFIG_MKFS_MINIX is not set -# CONFIG_FEATURE_MINIX2 is not set -# CONFIG_MKFS_REISER is not set -CONFIG_MKFS_VFAT=y +CONFIG_FSFREEZE=y +# CONFIG_FSTRIM is not set CONFIG_GETOPT=y CONFIG_FEATURE_GETOPT_LONG=y CONFIG_HEXDUMP=y -CONFIG_FEATURE_HEXDUMP_REVERSE=y CONFIG_HD=y +CONFIG_XXD=y CONFIG_HWCLOCK=y -CONFIG_FEATURE_HWCLOCK_LONG_OPTIONS=y # CONFIG_FEATURE_HWCLOCK_ADJTIME_FHS is not set +CONFIG_IONICE=y CONFIG_IPCRM=y CONFIG_IPCS=y +# CONFIG_LAST is not set +# CONFIG_FEATURE_LAST_FANCY is not set CONFIG_LOSETUP=y +CONFIG_LSBLK=y CONFIG_LSPCI=y CONFIG_LSUSB=y +CONFIG_MDEV=y +CONFIG_FEATURE_MDEV_CONF=y +CONFIG_FEATURE_MDEV_RENAME=y +CONFIG_FEATURE_MDEV_RENAME_REGEXP=y +CONFIG_FEATURE_MDEV_EXEC=y +CONFIG_FEATURE_MDEV_LOAD_FIRMWARE=y +CONFIG_FEATURE_MDEV_DAEMON=y +# CONFIG_MESG is not set +# CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP is not set +CONFIG_MKE2FS=y +CONFIG_MKFS_EXT2=y +# CONFIG_MKFS_MINIX is not set +# CONFIG_FEATURE_MINIX2 is not set +# CONFIG_MKFS_REISER is not set +CONFIG_MKDOSFS=y +CONFIG_MKFS_VFAT=y CONFIG_MKSWAP=y CONFIG_FEATURE_MKSWAP_UUID=y CONFIG_MORE=y +CONFIG_MOUNT=y +CONFIG_FEATURE_MOUNT_FAKE=y +CONFIG_FEATURE_MOUNT_VERBOSE=y +# CONFIG_FEATURE_MOUNT_HELPERS is not set +CONFIG_FEATURE_MOUNT_LABEL=y +# CONFIG_FEATURE_MOUNT_NFS is not set +CONFIG_FEATURE_MOUNT_CIFS=y +CONFIG_FEATURE_MOUNT_FLAGS=y +CONFIG_FEATURE_MOUNT_FSTAB=y +# CONFIG_FEATURE_MOUNT_OTHERTAB is not set +CONFIG_MOUNTPOINT=y +CONFIG_NOLOGIN=y +# CONFIG_NOLOGIN_DEPENDENCIES is not set +# CONFIG_NSENTER is not set CONFIG_PIVOT_ROOT=y CONFIG_RDATE=y CONFIG_RDEV=y CONFIG_READPROFILE=y +CONFIG_RENICE=y +CONFIG_REV=y CONFIG_RTCWAKE=y CONFIG_SCRIPT=y CONFIG_SCRIPTREPLAY=y -CONFIG_SWAPONOFF=y +CONFIG_SETARCH=y +CONFIG_LINUX32=y +CONFIG_LINUX64=y +CONFIG_SETPRIV=y +CONFIG_FEATURE_SETPRIV_DUMP=y +CONFIG_FEATURE_SETPRIV_CAPABILITIES=y +CONFIG_FEATURE_SETPRIV_CAPABILITY_NAMES=y +CONFIG_SETSID=y +CONFIG_SWAPON=y # CONFIG_FEATURE_SWAPON_DISCARD is not set CONFIG_FEATURE_SWAPON_PRI=y +CONFIG_SWAPOFF=y +CONFIG_FEATURE_SWAPONOFF_LABEL=y CONFIG_SWITCH_ROOT=y +# CONFIG_TASKSET is not set +# CONFIG_FEATURE_TASKSET_FANCY is not set +# CONFIG_FEATURE_TASKSET_CPULIST is not set +# CONFIG_UEVENT is not set CONFIG_UMOUNT=y CONFIG_FEATURE_UMOUNT_ALL=y +# CONFIG_UNSHARE is not set +CONFIG_UUIDGEN=y +# CONFIG_WALL is not set # # Common options for mount/umount @@ -650,6 +734,7 @@ CONFIG_VOLUMEID=y # CONFIG_FEATURE_VOLUMEID_BCACHE is not set CONFIG_FEATURE_VOLUMEID_BTRFS=y CONFIG_FEATURE_VOLUMEID_CRAMFS=y +CONFIG_FEATURE_VOLUMEID_EROFS=y # CONFIG_FEATURE_VOLUMEID_EXFAT is not set CONFIG_FEATURE_VOLUMEID_EXT=y # CONFIG_FEATURE_VOLUMEID_F2FS is not set @@ -657,9 +742,11 @@ CONFIG_FEATURE_VOLUMEID_FAT=y CONFIG_FEATURE_VOLUMEID_HFS=y CONFIG_FEATURE_VOLUMEID_ISO9660=y CONFIG_FEATURE_VOLUMEID_JFS=y +# CONFIG_FEATURE_VOLUMEID_LFS is not set CONFIG_FEATURE_VOLUMEID_LINUXRAID=y CONFIG_FEATURE_VOLUMEID_LINUXSWAP=y CONFIG_FEATURE_VOLUMEID_LUKS=y +CONFIG_FEATURE_VOLUMEID_MINIX=y # CONFIG_FEATURE_VOLUMEID_NILFS is not set CONFIG_FEATURE_VOLUMEID_NTFS=y CONFIG_FEATURE_VOLUMEID_OCFS2=y @@ -667,49 +754,23 @@ CONFIG_FEATURE_VOLUMEID_REISERFS=y CONFIG_FEATURE_VOLUMEID_ROMFS=y # CONFIG_FEATURE_VOLUMEID_SQUASHFS is not set CONFIG_FEATURE_VOLUMEID_SYSV=y +CONFIG_FEATURE_VOLUMEID_UBIFS=y CONFIG_FEATURE_VOLUMEID_UDF=y CONFIG_FEATURE_VOLUMEID_XFS=y # # Miscellaneous Utilities # -# CONFIG_CONSPY is not set -# CONFIG_CROND is not set -# CONFIG_FEATURE_CROND_D is not set -# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set -CONFIG_FEATURE_CROND_DIR="" -# CONFIG_I2CGET is not set -# CONFIG_I2CSET is not set -# CONFIG_I2CDUMP is not set -# CONFIG_I2CDETECT is not set -CONFIG_LESS=y -CONFIG_FEATURE_LESS_MAXLINES=9999999 -CONFIG_FEATURE_LESS_BRACKETS=y -CONFIG_FEATURE_LESS_FLAGS=y -# CONFIG_FEATURE_LESS_TRUNCATE is not set -CONFIG_FEATURE_LESS_MARKS=y -CONFIG_FEATURE_LESS_REGEXP=y -CONFIG_FEATURE_LESS_WINCH=y -CONFIG_FEATURE_LESS_ASK_TERMINAL=y -CONFIG_FEATURE_LESS_DASHCMD=y -CONFIG_FEATURE_LESS_LINENUMS=y -CONFIG_NANDWRITE=y -CONFIG_NANDDUMP=y -# CONFIG_RFKILL is not set -CONFIG_SETSERIAL=y -# CONFIG_TASKSET is not set -# CONFIG_FEATURE_TASKSET_FANCY is not set -# CONFIG_UBIRENAME is not set -CONFIG_UBIATTACH=y -CONFIG_UBIDETACH=y -CONFIG_UBIMKVOL=y -CONFIG_UBIRMVOL=y -CONFIG_UBIRSVOL=y -CONFIG_UBIUPDATEVOL=y -# CONFIG_WALL is not set CONFIG_ADJTIMEX=y +CONFIG_ASCII=y # CONFIG_BBCONFIG is not set # CONFIG_FEATURE_COMPRESS_BBCONFIG is not set +CONFIG_BC=y +# CONFIG_DC is not set +CONFIG_FEATURE_DC_BIG=y +# CONFIG_FEATURE_DC_LIBM is not set +CONFIG_FEATURE_BC_INTERACTIVE=y +CONFIG_FEATURE_BC_LONG_OPTIONS=y CONFIG_BEEP=y CONFIG_FEATURE_BEEP_FREQ=4000 CONFIG_FEATURE_BEEP_LENGTH_MS=30 @@ -721,27 +782,26 @@ CONFIG_FEATURE_BEEP_LENGTH_MS=30 # CONFIG_FEATURE_CHAT_SEND_ESCAPES is not set # CONFIG_FEATURE_CHAT_VAR_ABORT_LEN is not set # CONFIG_FEATURE_CHAT_CLR_ABORT is not set -CONFIG_CHRT=y +# CONFIG_CONSPY is not set +# CONFIG_CROND is not set +# CONFIG_FEATURE_CROND_D is not set +# CONFIG_FEATURE_CROND_CALL_SENDMAIL is not set +# CONFIG_FEATURE_CROND_SPECIAL_TIMES is not set +CONFIG_FEATURE_CROND_DIR="" # CONFIG_CRONTAB is not set -# CONFIG_DC is not set -# CONFIG_FEATURE_DC_LIBM is not set # CONFIG_DEVFSD is not set # CONFIG_DEVFSD_MODLOAD is not set # CONFIG_DEVFSD_FG_NP is not set # CONFIG_DEVFSD_VERBOSE is not set # CONFIG_FEATURE_DEVFS is not set CONFIG_DEVMEM=y -# CONFIG_EJECT is not set -# CONFIG_FEATURE_EJECT_SCSI is not set # CONFIG_FBSPLASH is not set -CONFIG_FLASHCP=y +CONFIG_FLASH_ERASE=y CONFIG_FLASH_LOCK=y CONFIG_FLASH_UNLOCK=y -CONFIG_FLASH_ERASE=y -CONFIG_IONICE=y -# CONFIG_INOTIFYD is not set -# CONFIG_LAST is not set -# CONFIG_FEATURE_LAST_FANCY is not set +CONFIG_FLASHCP=y +CONFIG_UBOOT_ENV=y +CONFIG_GETFATTR=y # CONFIG_HDPARM is not set # CONFIG_FEATURE_HDPARM_GET_IDENTITY is not set # CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF is not set @@ -749,26 +809,61 @@ CONFIG_IONICE=y # CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET is not set # CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF is not set # CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA is not set +CONFIG_HEXEDIT=y +# CONFIG_I2CGET is not set +# CONFIG_I2CSET is not set +# CONFIG_I2CDUMP is not set +# CONFIG_I2CDETECT is not set +CONFIG_I2CTRANSFER=y +# CONFIG_INOTIFYD is not set CONFIG_IORW=y +CONFIG_LESS=y +CONFIG_FEATURE_LESS_MAXLINES=9999999 +CONFIG_FEATURE_LESS_BRACKETS=y +CONFIG_FEATURE_LESS_FLAGS=y +# CONFIG_FEATURE_LESS_TRUNCATE is not set +CONFIG_FEATURE_LESS_MARKS=y +CONFIG_FEATURE_LESS_REGEXP=y +CONFIG_FEATURE_LESS_WINCH=y +CONFIG_FEATURE_LESS_ASK_TERMINAL=y +CONFIG_FEATURE_LESS_DASHCMD=y +CONFIG_FEATURE_LESS_LINENUMS=y +CONFIG_FEATURE_LESS_RAW=y +CONFIG_FEATURE_LESS_ENV=y +CONFIG_LSSCSI=y # CONFIG_MAKEDEVS is not set # CONFIG_FEATURE_MAKEDEVS_LEAF is not set # CONFIG_FEATURE_MAKEDEVS_TABLE is not set # CONFIG_MAN is not set # CONFIG_MICROCOM is not set -CONFIG_MOUNTPOINT=y +CONFIG_MIM=y # CONFIG_MT is not set +CONFIG_NANDWRITE=y +CONFIG_NANDDUMP=y +# CONFIG_PARTPROBE is not set # CONFIG_RAIDAUTORUN is not set CONFIG_READAHEAD=y +# CONFIG_RFKILL is not set # CONFIG_RUNLEVEL is not set # CONFIG_RX is not set -CONFIG_SETSID=y +CONFIG_SEEDRNG=y +CONFIG_SETFATTR=y +CONFIG_SETSERIAL=y # CONFIG_STRINGS is not set CONFIG_TIME=y -CONFIG_TIMEOUT=y +CONFIG_TREE=y +CONFIG_TS=y # CONFIG_TTYSIZE is not set -CONFIG_UBOOT_ENV=y +CONFIG_UBIATTACH=y +CONFIG_UBIDETACH=y +CONFIG_UBIMKVOL=y +CONFIG_UBIRMVOL=y +CONFIG_UBIRSVOL=y +CONFIG_UBIUPDATEVOL=y +# CONFIG_UBIRENAME is not set # CONFIG_VOLNAME is not set CONFIG_WATCHDOG=y +# CONFIG_FEATURE_WATCHDOG_OPEN_TWICE is not set # CONFIG_SYS_EEPROM is not set # CONFIG_SYS_EEPROM_DEVICE_I2C is not set # CONFIG_SYS_EEPROM_DEVICE_MTD is not set @@ -776,10 +871,10 @@ CONFIG_WATCHDOG=y # CONFIG_SYS_EEPROM_SYSFS_FILE is not set CONFIG_SYS_EEPROM_I2C_DEVICE="" CONFIG_SYS_EEPROM_I2C_ADDR= -CONFIG_SYS_EEPROM_I2C_MEM_ADDR_BITS=8 -CONFIG_SYS_EEPROM_I2C_WRITE_1B_DELAY=10 -CONFIG_SYS_EEPROM_I2C_WRITE_2B_DELAY=1000 -CONFIG_SYS_EEPROM_I2C_WRITE_3B_DELAY=10 +CONFIG_SYS_EEPROM_I2C_MEM_ADDR_BITS=0 +CONFIG_SYS_EEPROM_I2C_WRITE_1B_DELAY=0 +CONFIG_SYS_EEPROM_I2C_WRITE_2B_DELAY=0 +CONFIG_SYS_EEPROM_I2C_WRITE_3B_DELAY=0 CONFIG_SYS_EEPROM_MTD_DEVICE="" CONFIG_SYS_EEPROM_DISK_DEVICE="" CONFIG_SYS_EEPROM_SYSFS_FILE_PATH="" @@ -790,28 +885,14 @@ CONFIG_SYS_EEPROM_MAX_SIZE=0 # # Networking Utilities # -CONFIG_NAMEIF=y -CONFIG_FEATURE_NAMEIF_EXTENDED=y -CONFIG_NBDCLIENT=y -CONFIG_NC=y -CONFIG_NC_SERVER=y -CONFIG_NC_EXTRA=y -# CONFIG_NC_110_COMPAT is not set -CONFIG_PING=y -CONFIG_PING6=y -CONFIG_FEATURE_FANCY_PING=y -CONFIG_WGET=y -CONFIG_FEATURE_WGET_STATUSBAR=y -CONFIG_FEATURE_WGET_AUTHENTICATION=y -CONFIG_FEATURE_WGET_LONG_OPTIONS=y -CONFIG_FEATURE_WGET_TIMEOUT=y -# CONFIG_FEATURE_WGET_OPENSSL is not set -# CONFIG_FEATURE_WGET_SSL_HELPER is not set -CONFIG_WHOIS=y CONFIG_FEATURE_IPV6=y # CONFIG_FEATURE_UNIX_LOCAL is not set CONFIG_FEATURE_PREFER_IPV4_ADDRESS=y CONFIG_VERBOSE_RESOLUTION_ERRORS=y +# CONFIG_FEATURE_ETC_NETWORKS is not set +# CONFIG_FEATURE_ETC_SERVICES is not set +# CONFIG_FEATURE_HWIB is not set +# CONFIG_FEATURE_TLS_SHA1 is not set CONFIG_ARP=y CONFIG_ARPING=y CONFIG_BRCTL=y @@ -819,16 +900,17 @@ CONFIG_FEATURE_BRCTL_FANCY=y CONFIG_FEATURE_BRCTL_SHOW=y # CONFIG_DNSD is not set CONFIG_ETHER_WAKE=y -CONFIG_FAKEIDENTD=y # CONFIG_FTPD is not set -# CONFIG_FEATURE_FTP_WRITE is not set +# CONFIG_FEATURE_FTPD_WRITE is not set # CONFIG_FEATURE_FTPD_ACCEPT_BROKEN_LIST is not set -# CONFIG_FEATURE_FTP_AUTHENTICATION is not set +# CONFIG_FEATURE_FTPD_AUTHENTICATION is not set CONFIG_FTPGET=y CONFIG_FTPPUT=y CONFIG_FEATURE_FTPGETPUT_LONG_OPTIONS=y CONFIG_HOSTNAME=y +CONFIG_DNSDOMAINNAME=y # CONFIG_HTTPD is not set +CONFIG_FEATURE_HTTPD_PORT_DEFAULT=0 # CONFIG_FEATURE_HTTPD_RANGES is not set # CONFIG_FEATURE_HTTPD_SETUID is not set # CONFIG_FEATURE_HTTPD_BASIC_AUTH is not set @@ -840,6 +922,10 @@ CONFIG_HOSTNAME=y # CONFIG_FEATURE_HTTPD_ERROR_PAGES is not set # CONFIG_FEATURE_HTTPD_PROXY is not set # CONFIG_FEATURE_HTTPD_GZIP is not set +# CONFIG_FEATURE_HTTPD_ETAG is not set +# CONFIG_FEATURE_HTTPD_LAST_MODIFIED is not set +# CONFIG_FEATURE_HTTPD_DATE is not set +# CONFIG_FEATURE_HTTPD_ACL_IP is not set CONFIG_IFCONFIG=y CONFIG_FEATURE_IFCONFIG_STATUS=y CONFIG_FEATURE_IFCONFIG_SLIP=y @@ -848,11 +934,10 @@ CONFIG_FEATURE_IFCONFIG_HW=y CONFIG_FEATURE_IFCONFIG_BROADCAST_PLUS=y CONFIG_IFENSLAVE=y CONFIG_IFPLUGD=y -CONFIG_IFUPDOWN=y +CONFIG_IFUP=y +CONFIG_IFDOWN=y CONFIG_IFUPDOWN_IFSTATE_PATH="/var/run/ifstate" CONFIG_FEATURE_IFUPDOWN_IP=y -CONFIG_FEATURE_IFUPDOWN_IP_BUILTIN=y -# CONFIG_FEATURE_IFUPDOWN_IFCONFIG_BUILTIN is not set CONFIG_FEATURE_IFUPDOWN_IPV4=y CONFIG_FEATURE_IFUPDOWN_IPV6=y CONFIG_FEATURE_IFUPDOWN_MAPPING=y @@ -865,79 +950,118 @@ CONFIG_FEATURE_IFUPDOWN_MAPPING=y # CONFIG_FEATURE_INETD_SUPPORT_BUILTIN_CHARGEN is not set # CONFIG_FEATURE_INETD_RPC is not set CONFIG_IP=y +CONFIG_IPADDR=y +CONFIG_IPLINK=y +CONFIG_IPROUTE=y +CONFIG_IPTUNNEL=y +CONFIG_IPRULE=y +CONFIG_IPNEIGH=y CONFIG_FEATURE_IP_ADDRESS=y CONFIG_FEATURE_IP_LINK=y +CONFIG_FEATURE_IP_LINK_CAN=y CONFIG_FEATURE_IP_ROUTE=y CONFIG_FEATURE_IP_ROUTE_DIR="" CONFIG_FEATURE_IP_TUNNEL=y CONFIG_FEATURE_IP_RULE=y CONFIG_FEATURE_IP_NEIGH=y -CONFIG_FEATURE_IP_SHORT_FORMS=y # CONFIG_FEATURE_IP_RARE_PROTOCOLS is not set -CONFIG_IPADDR=y -CONFIG_IPLINK=y -CONFIG_IPROUTE=y -CONFIG_IPTUNNEL=y -CONFIG_IPRULE=y -CONFIG_IPNEIGH=y CONFIG_IPCALC=y -CONFIG_FEATURE_IPCALC_FANCY=y CONFIG_FEATURE_IPCALC_LONG_OPTIONS=y +CONFIG_FEATURE_IPCALC_FANCY=y +CONFIG_FAKEIDENTD=y +CONFIG_NAMEIF=y +CONFIG_FEATURE_NAMEIF_EXTENDED=y +CONFIG_NBDCLIENT=y +CONFIG_NC=y +# CONFIG_NETCAT is not set +CONFIG_NC_SERVER=y +CONFIG_NC_EXTRA=y +# CONFIG_NC_110_COMPAT is not set CONFIG_NETSTAT=y CONFIG_FEATURE_NETSTAT_WIDE=y CONFIG_FEATURE_NETSTAT_PRG=y CONFIG_NSLOOKUP=y +CONFIG_FEATURE_NSLOOKUP_BIG=y +CONFIG_FEATURE_NSLOOKUP_LONG_OPTIONS=y # CONFIG_NTPD is not set # CONFIG_FEATURE_NTPD_SERVER is not set # CONFIG_FEATURE_NTPD_CONF is not set +# CONFIG_FEATURE_NTP_AUTH is not set +CONFIG_PING=y +CONFIG_PING6=y +CONFIG_FEATURE_FANCY_PING=y CONFIG_PSCAN=y CONFIG_ROUTE=y CONFIG_SLATTACH=y +CONFIG_SSL_CLIENT=y +CONFIG_SSL_SERVER=y +# CONFIG_TC is not set +# CONFIG_FEATURE_TC_INGRESS is not set # CONFIG_TCPSVD is not set +# CONFIG_UDPSVD is not set CONFIG_TELNET=y CONFIG_FEATURE_TELNET_TTYPE=y CONFIG_FEATURE_TELNET_AUTOLOGIN=y +CONFIG_FEATURE_TELNET_WIDTH=y CONFIG_TELNETD=y +# CONFIG_FEATURE_TELNETD_SELFTEST_DEBUG is not set CONFIG_FEATURE_TELNETD_STANDALONE=y +CONFIG_FEATURE_TELNETD_PORT_DEFAULT=23 # CONFIG_FEATURE_TELNETD_INETD_WAIT is not set CONFIG_TFTP=y +CONFIG_FEATURE_TFTP_PROGRESS_BAR=y +CONFIG_FEATURE_TFTP_HPA_COMPAT=y # CONFIG_TFTPD is not set - -# -# Common options for tftp/tftpd -# CONFIG_FEATURE_TFTP_GET=y CONFIG_FEATURE_TFTP_PUT=y CONFIG_FEATURE_TFTP_BLOCKSIZE=y -CONFIG_FEATURE_TFTP_PROGRESS_BAR=y # CONFIG_TFTP_DEBUG is not set +CONFIG_TLS=y CONFIG_TRACEROUTE=y CONFIG_TRACEROUTE6=y CONFIG_FEATURE_TRACEROUTE_VERBOSE=y -# CONFIG_FEATURE_TRACEROUTE_SOURCE_ROUTE is not set # CONFIG_FEATURE_TRACEROUTE_USE_ICMP is not set CONFIG_TUNCTL=y CONFIG_FEATURE_TUNCTL_UG=y -CONFIG_UDHCPC6=y +# CONFIG_VCONFIG is not set +CONFIG_WGET=y +CONFIG_FEATURE_WGET_LONG_OPTIONS=y +CONFIG_FEATURE_WGET_STATUSBAR=y +CONFIG_FEATURE_WGET_FTP=y +CONFIG_FEATURE_WGET_AUTHENTICATION=y +CONFIG_FEATURE_WGET_TIMEOUT=y +CONFIG_FEATURE_WGET_HTTPS=y +# CONFIG_FEATURE_WGET_OPENSSL is not set +CONFIG_WHOIS=y +CONFIG_ZCIP=y # CONFIG_UDHCPD is not set -# CONFIG_DHCPRELAY is not set -# CONFIG_DUMPLEASES is not set -# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set +# CONFIG_FEATURE_UDHCPD_BOOTP is not set # CONFIG_FEATURE_UDHCPD_BASE_IP_ON_MAC is not set +# CONFIG_FEATURE_UDHCPD_WRITE_LEASES_EARLY is not set CONFIG_DHCPD_LEASES_FILE="" +# CONFIG_DUMPLEASES is not set +# CONFIG_DHCPRELAY is not set CONFIG_UDHCPC=y CONFIG_FEATURE_UDHCPC_ARPING=y # CONFIG_FEATURE_UDHCPC_SANITIZEOPT is not set +CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" +CONFIG_UDHCPC6_DEFAULT_SCRIPT="/usr/share/udhcpc/default6.script" +CONFIG_UDHCPC6=y +CONFIG_FEATURE_UDHCPC6_RFC3646=y +CONFIG_FEATURE_UDHCPC6_RFC4704=y +CONFIG_FEATURE_UDHCPC6_RFC4833=y +CONFIG_FEATURE_UDHCPC6_RFC5970=y + +# +# Common options for DHCP applets +# +CONFIG_UDHCPC_DEFAULT_INTERFACE="eth0" # CONFIG_FEATURE_UDHCP_PORT is not set CONFIG_UDHCP_DEBUG=9 +CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 CONFIG_FEATURE_UDHCP_RFC3397=y CONFIG_FEATURE_UDHCP_8021Q=y -CONFIG_UDHCPC_DEFAULT_SCRIPT="/usr/share/udhcpc/default.script" -CONFIG_UDHCPC_SLACK_FOR_BUGGY_SERVERS=80 CONFIG_IFUPDOWN_UDHCPC_CMD_OPTIONS="-R -n" -# CONFIG_UDPSVD is not set -# CONFIG_VCONFIG is not set -CONFIG_ZCIP=y # # Print Utilities @@ -949,8 +1073,8 @@ CONFIG_ZCIP=y # # Mail Utilities # -# CONFIG_MAKEMIME is not set CONFIG_FEATURE_MIME_CHARSET="" +# CONFIG_MAKEMIME is not set # CONFIG_POPMAILDIR is not set # CONFIG_FEATURE_POPMAILDIR_DELIVERY is not set # CONFIG_REFORMIME is not set @@ -960,16 +1084,37 @@ CONFIG_FEATURE_MIME_CHARSET="" # # Process Utilities # +CONFIG_FEATURE_FAST_TOP=y +CONFIG_FEATURE_SHOW_THREADS=y +CONFIG_FREE=y +CONFIG_FUSER=y CONFIG_IOSTAT=y +CONFIG_KILL=y +CONFIG_KILLALL=y +CONFIG_KILLALL5=y CONFIG_LSOF=y CONFIG_MPSTAT=y CONFIG_NMETER=y +CONFIG_PGREP=y +CONFIG_PKILL=y +CONFIG_PIDOF=y +CONFIG_FEATURE_PIDOF_SINGLE=y +CONFIG_FEATURE_PIDOF_OMIT=y CONFIG_PMAP=y CONFIG_POWERTOP=y +CONFIG_FEATURE_POWERTOP_INTERACTIVE=y +CONFIG_PS=y +CONFIG_FEATURE_PS_WIDE=y +CONFIG_FEATURE_PS_LONG=y +# CONFIG_FEATURE_PS_TIME is not set +# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set +# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set CONFIG_PSTREE=y CONFIG_PWDX=y CONFIG_SMEMCAP=y +CONFIG_BB_SYSCTL=y CONFIG_TOP=y +CONFIG_FEATURE_TOP_INTERACTIVE=y CONFIG_FEATURE_TOP_CPU_USAGE_PERCENTAGE=y CONFIG_FEATURE_TOP_CPU_GLOBAL_PERCENTS=y CONFIG_FEATURE_TOP_SMP_CPU=y @@ -978,25 +1123,7 @@ CONFIG_FEATURE_TOP_SMP_PROCESS=y CONFIG_FEATURE_TOPMEM=y CONFIG_UPTIME=y # CONFIG_FEATURE_UPTIME_UTMP_SUPPORT is not set -CONFIG_FREE=y -CONFIG_FUSER=y -CONFIG_KILL=y -CONFIG_KILLALL=y -CONFIG_KILLALL5=y -CONFIG_PGREP=y -CONFIG_PIDOF=y -CONFIG_FEATURE_PIDOF_SINGLE=y -CONFIG_FEATURE_PIDOF_OMIT=y -CONFIG_PKILL=y -CONFIG_PS=y -CONFIG_FEATURE_PS_WIDE=y -CONFIG_FEATURE_PS_LONG=y -# CONFIG_FEATURE_PS_TIME is not set -# CONFIG_FEATURE_PS_ADDITIONAL_COLUMNS is not set -# CONFIG_FEATURE_PS_UNUSUAL_SYSTEMS is not set -CONFIG_RENICE=y -CONFIG_BB_SYSCTL=y -CONFIG_FEATURE_SHOW_THREADS=y +CONFIG_VMSTAT=y CONFIG_WATCH=y # @@ -1012,46 +1139,59 @@ CONFIG_RUNSVDIR=y # CONFIG_FEATURE_RUNSVDIR_LOG is not set CONFIG_SV=y CONFIG_SV_DEFAULT_SERVICE_DIR="/var/service" +CONFIG_SVC=y +CONFIG_SVOK=y CONFIG_SVLOGD=y # CONFIG_CHCON is not set -# CONFIG_FEATURE_CHCON_LONG_OPTIONS is not set # CONFIG_GETENFORCE is not set # CONFIG_GETSEBOOL is not set # CONFIG_LOAD_POLICY is not set # CONFIG_MATCHPATHCON is not set -# CONFIG_RESTORECON is not set # CONFIG_RUNCON is not set -# CONFIG_FEATURE_RUNCON_LONG_OPTIONS is not set # CONFIG_SELINUXENABLED is not set +# CONFIG_SESTATUS is not set # CONFIG_SETENFORCE is not set # CONFIG_SETFILES is not set # CONFIG_FEATURE_SETFILES_CHECK_OPTION is not set +# CONFIG_RESTORECON is not set # CONFIG_SETSEBOOL is not set -# CONFIG_SESTATUS is not set # # Shells # +CONFIG_SH_IS_ASH=y +# CONFIG_SH_IS_HUSH is not set +# CONFIG_SH_IS_NONE is not set +# CONFIG_BASH_IS_ASH is not set +# CONFIG_BASH_IS_HUSH is not set +CONFIG_BASH_IS_NONE=y +CONFIG_SHELL_ASH=y CONFIG_ASH=y +CONFIG_ASH_OPTIMIZE_FOR_SIZE=y +CONFIG_ASH_INTERNAL_GLOB=y CONFIG_ASH_BASH_COMPAT=y -# CONFIG_ASH_IDLE_TIMEOUT is not set +# CONFIG_ASH_BASH_SOURCE_CURDIR is not set +CONFIG_ASH_BASH_NOT_FOUND_HOOK=y CONFIG_ASH_JOB_CONTROL=y CONFIG_ASH_ALIAS=y -CONFIG_ASH_GETOPTS=y -CONFIG_ASH_BUILTIN_ECHO=y -CONFIG_ASH_BUILTIN_PRINTF=y -CONFIG_ASH_BUILTIN_TEST=y -# CONFIG_ASH_HELP is not set -CONFIG_ASH_CMDCMD=y -# CONFIG_ASH_MAIL is not set -CONFIG_ASH_OPTIMIZE_FOR_SIZE=y CONFIG_ASH_RANDOM_SUPPORT=y CONFIG_ASH_EXPAND_PRMT=y +# CONFIG_ASH_IDLE_TIMEOUT is not set +# CONFIG_ASH_MAIL is not set +CONFIG_ASH_ECHO=y +CONFIG_ASH_PRINTF=y +CONFIG_ASH_TEST=y +# CONFIG_ASH_HELP is not set +CONFIG_ASH_GETOPTS=y +CONFIG_ASH_CMDCMD=y CONFIG_CTTYHACK=y # CONFIG_HUSH is not set +# CONFIG_SHELL_HUSH is not set +# CONFIG_HUSH_NEED_FOR_SPEED is not set # CONFIG_HUSH_BASH_COMPAT is not set # CONFIG_HUSH_BRACE_EXPANSION is not set -# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_BASH_SOURCE_CURDIR is not set +# CONFIG_HUSH_LINENO_VAR is not set # CONFIG_HUSH_INTERACTIVE is not set # CONFIG_HUSH_SAVEHISTORY is not set # CONFIG_HUSH_JOB is not set @@ -1059,24 +1199,45 @@ CONFIG_CTTYHACK=y # CONFIG_HUSH_IF is not set # CONFIG_HUSH_LOOPS is not set # CONFIG_HUSH_CASE is not set +# CONFIG_HUSH_ALIAS is not set # CONFIG_HUSH_FUNCTIONS is not set +# CONFIG_HUSH_FUNCTION_KEYWORD is not set # CONFIG_HUSH_LOCAL is not set # CONFIG_HUSH_RANDOM_SUPPORT is not set -# CONFIG_HUSH_EXPORT_N is not set # CONFIG_HUSH_MODE_X is not set -# CONFIG_MSH is not set -CONFIG_FEATURE_SH_IS_ASH=y -# CONFIG_FEATURE_SH_IS_HUSH is not set -# CONFIG_FEATURE_SH_IS_NONE is not set -# CONFIG_FEATURE_BASH_IS_ASH is not set -# CONFIG_FEATURE_BASH_IS_HUSH is not set -CONFIG_FEATURE_BASH_IS_NONE=y -CONFIG_SH_MATH_SUPPORT=y -CONFIG_SH_MATH_SUPPORT_64=y +# CONFIG_HUSH_ECHO is not set +# CONFIG_HUSH_PRINTF is not set +# CONFIG_HUSH_TEST is not set +# CONFIG_HUSH_HELP is not set +# CONFIG_HUSH_EXPORT is not set +# CONFIG_HUSH_EXPORT_N is not set +# CONFIG_HUSH_READONLY is not set +# CONFIG_HUSH_KILL is not set +# CONFIG_HUSH_WAIT is not set +# CONFIG_HUSH_COMMAND is not set +# CONFIG_HUSH_TRAP is not set +# CONFIG_HUSH_TYPE is not set +# CONFIG_HUSH_TIMES is not set +# CONFIG_HUSH_READ is not set +# CONFIG_HUSH_SET is not set +# CONFIG_HUSH_UNSET is not set +# CONFIG_HUSH_ULIMIT is not set +# CONFIG_HUSH_UMASK is not set +# CONFIG_HUSH_GETOPTS is not set +# CONFIG_HUSH_MEMLEAK is not set + +# +# Options common to all shells +# +CONFIG_FEATURE_SH_MATH=y +CONFIG_FEATURE_SH_MATH_64=y +CONFIG_FEATURE_SH_MATH_BASE=y CONFIG_FEATURE_SH_EXTRA_QUIET=y # CONFIG_FEATURE_SH_STANDALONE is not set # CONFIG_FEATURE_SH_NOFORK is not set +CONFIG_FEATURE_SH_READ_FRAC=y CONFIG_FEATURE_SH_HISTFILESIZE=y +CONFIG_FEATURE_SH_EMBEDDED_SCRIPTS=y # # System Logging Utilities @@ -1091,6 +1252,7 @@ CONFIG_FEATURE_ROTATE_LOGFILE=y CONFIG_FEATURE_REMOTE_LOG=y CONFIG_FEATURE_SYSLOGD_DUP=y CONFIG_FEATURE_SYSLOGD_CFG=y +# CONFIG_FEATURE_SYSLOGD_PRECISE_TIMESTAMPS is not set CONFIG_FEATURE_SYSLOGD_READ_BUFFER_SIZE=256 CONFIG_FEATURE_IPC_SYSLOG=y CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=16 diff --git a/build-config/conf/crosstool/gcc-14.3.0/uClibc-ng-1.0.54/crosstool.x86_64.defconfig b/build-config/conf/crosstool/gcc-14.3.0/uClibc-ng-1.0.54/crosstool.x86_64.defconfig new file mode 100644 index 000000000..279dbe145 --- /dev/null +++ b/build-config/conf/crosstool/gcc-14.3.0/uClibc-ng-1.0.54/crosstool.x86_64.defconfig @@ -0,0 +1,49 @@ +CT_CONFIG_VERSION="4" +CT_LOCAL_TARBALLS_DIR="${DOWNLOADDIR}" +CT_WORK_DIR="${CT_TOP_DIR}/build" +CT_PREFIX_DIR="${XTOOLS_INSTALL_DIR}/${CT_TARGET}" +CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y +CT_LOG_INFO=y +# CT_LOG_PROGRESS_BAR is not set +CT_ARCH_X86=y +CT_ARCH_64=y +CT_TOOLCHAIN_PKGVERSION="ONIE-${LSB_RELEASE_TAG}" +CT_TARGET_VENDOR="onie" +CT_TARGET_ALIAS="x86_64" +CT_TOOLCHAIN_ENABLE_NLS=y +CT_KERNEL_LINUX=y +CT_BINUTILS_FOR_TARGET=y +CT_LIBC_UCLIBC_NG=y +CT_LIBC_UCLIBC_CONFIG_FILE="${UCLIBC_CONFIG}" +CT_LIBC_UCLIBC_LOCALES=y +CT_GCC_V_14=y +# CT_CC_GCC_LIBMPX is not set +CT_CC_LANG_CXX=y +CT_DEBUG_DUMA=y +CT_DEBUG_GDB=y +CT_DEBUG_LTRACE=y +CT_DEBUG_STRACE=y +CT_GETTEXT_V_0_19_8_1=y +CT_LIBICONV_V_1_15=y +CT_NCURSES_V_6_0=y +CT_COMP_TOOLS_AUTOCONF=y +CT_AUTOCONF_V_2_69=y +CT_COMP_TOOLS_AUTOMAKE=y +CT_AUTOMAKE_V_1_15=y +CT_COMP_TOOLS_LIBTOOL=y +CT_LIBTOOL_V_2_4=y +CT_COMP_TOOLS_M4=y +CT_COMP_TOOLS_MAKE=y + +# +# Component versions that match the crosstool-NG 1.28.0 defaults are pinned +# explicitly here so the toolchain spec stays visible and is protected against +# silent drift if crosstool-NG is ever bumped (savedefconfig omits defaults). +# +CT_BINUTILS_V_2_45=y +CT_UCLIBC_NG_V_1_0_54=y +CT_GDB_V_16=y +CT_GMP_V_6_3=y +CT_ISL_V_0_27=y +CT_MPC_V_1_3=y +CT_MPFR_V_4_2=y diff --git a/build-config/conf/crosstool/gcc-4.9.2/uClibc-ng-1.0.22/crosstool.armv7a.config b/build-config/conf/crosstool/gcc-4.9.2/uClibc-ng-1.0.22/crosstool.armv7a.config deleted file mode 100644 index 9f5ed7bd6..000000000 --- a/build-config/conf/crosstool/gcc-4.9.2/uClibc-ng-1.0.22/crosstool.armv7a.config +++ /dev/null @@ -1,641 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Crosstool-NG Configuration -# -CT_CONFIGURE_has_static_link=y -CT_CONFIGURE_has_wget=y -CT_CONFIGURE_has_curl=y -CT_CONFIGURE_has_stat_flavor_GNU=y -CT_CONFIGURE_has_make_3_81_or_newer=y -CT_CONFIGURE_has_libtool_2_4_or_newer=y -CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_63_or_newer=y -CT_CONFIGURE_has_autoreconf_2_63_or_newer=y -CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y -CT_CONFIGURE_has_svn=y -CT_CONFIGURE_has_git=y -CT_MODULES=y - -# -# Paths and misc options -# - -# -# crosstool-NG behavior -# -CT_OBSOLETE=y -CT_EXPERIMENTAL=y -# CT_ALLOW_BUILD_AS_ROOT is not set -# CT_DEBUG_CT is not set - -# -# Paths -# -CT_LOCAL_TARBALLS_DIR="${DOWNLOADDIR}" -CT_SAVE_TARBALLS=y -CT_WORK_DIR="${CT_TOP_DIR}/build" -CT_BUILD_TOP_DIR="${CT_WORK_DIR}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" -CT_PREFIX_DIR="${XTOOLS_INSTALL_DIR}/${CT_TARGET}" -CT_RM_RF_PREFIX_DIR=y -CT_REMOVE_DOCS=y -CT_PREFIX_DIR_RO=y -CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y -CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y - -# -# Downloading -# -# CT_DOWNLOAD_AGENT_WGET is not set -# CT_DOWNLOAD_AGENT_CURL is not set -CT_DOWNLOAD_AGENT_NONE=y -CT_FORBID_DOWNLOAD=y - -# -# Extracting -# -# CT_FORCE_EXTRACT is not set -CT_OVERRIDE_CONFIG_GUESS_SUB=y -# CT_ONLY_EXTRACT is not set -# CT_PATCH_BUNDLED is not set -# CT_PATCH_LOCAL is not set -# CT_PATCH_BUNDLED_LOCAL is not set -# CT_PATCH_LOCAL_BUNDLED is not set -CT_PATCH_BUNDLED_FALLBACK_LOCAL=y -# CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set -# CT_PATCH_NONE is not set -CT_PATCH_ORDER="bundled,local" -CT_PATCH_SINGLE=y -CT_PATCH_USE_LOCAL=y -CT_LOCAL_PATCH_DIR="${CROSSTOOL_NG_LOCAL_PATCHDIR}" - -# -# Build behavior -# -CT_PARALLEL_JOBS=0 -CT_LOAD="" -CT_USE_PIPES=y -CT_EXTRA_CFLAGS_FOR_BUILD="" -CT_EXTRA_LDFLAGS_FOR_BUILD="" -CT_EXTRA_CFLAGS_FOR_HOST="" -CT_EXTRA_LDFLAGS_FOR_HOST="" -# CT_CONFIG_SHELL_SH is not set -# CT_CONFIG_SHELL_ASH is not set -CT_CONFIG_SHELL_BASH=y -# CT_CONFIG_SHELL_CUSTOM is not set -CT_CONFIG_SHELL="${bash}" - -# -# Logging -# -# CT_LOG_ERROR is not set -# CT_LOG_WARN is not set -CT_LOG_INFO=y -# CT_LOG_EXTRA is not set -# CT_LOG_ALL is not set -# CT_LOG_DEBUG is not set -CT_LOG_LEVEL_MAX="INFO" -# CT_LOG_SEE_TOOLS_WARN is not set -# CT_LOG_PROGRESS_BAR is not set -CT_LOG_TO_FILE=y -CT_LOG_FILE_COMPRESS=y - -# -# Target options -# -CT_ARCH="arm" -# CT_ARCH_alpha is not set -CT_ARCH_arm=y -# CT_ARCH_avr is not set -# CT_ARCH_m68k is not set -# CT_ARCH_microblaze is not set -# CT_ARCH_mips is not set -# CT_ARCH_nios2 is not set -# CT_ARCH_powerpc is not set -# CT_ARCH_s390 is not set -# CT_ARCH_sh is not set -# CT_ARCH_sparc is not set -# CT_ARCH_x86 is not set -# CT_ARCH_xtensa is not set -CT_ARCH_alpha_AVAILABLE=y -CT_ARCH_arm_AVAILABLE=y -CT_ARCH_avr_AVAILABLE=y -CT_ARCH_m68k_AVAILABLE=y -CT_ARCH_microblaze_AVAILABLE=y -CT_ARCH_mips_AVAILABLE=y -CT_ARCH_nios2_AVAILABLE=y -CT_ARCH_powerpc_AVAILABLE=y -CT_ARCH_s390_AVAILABLE=y -CT_ARCH_sh_AVAILABLE=y -CT_ARCH_sparc_AVAILABLE=y -CT_ARCH_x86_AVAILABLE=y -CT_ARCH_xtensa_AVAILABLE=y -CT_ARCH_SUFFIX="" - -# -# Generic target options -# -# CT_MULTILIB is not set -CT_DEMULTILIB=y -CT_ARCH_SUPPORTS_BOTH_MMU=y -CT_ARCH_DEFAULT_HAS_MMU=y -CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_BOTH_ENDIAN=y -CT_ARCH_DEFAULT_LE=y -# CT_ARCH_BE is not set -CT_ARCH_LE=y -CT_ARCH_ENDIAN="little" -CT_ARCH_SUPPORTS_32=y -CT_ARCH_SUPPORTS_64=y -CT_ARCH_DEFAULT_32=y -CT_ARCH_BITNESS=32 -CT_ARCH_32=y -# CT_ARCH_64 is not set - -# -# Target optimisations -# -CT_ARCH_SUPPORTS_WITH_ARCH=y -CT_ARCH_SUPPORTS_WITH_CPU=y -CT_ARCH_SUPPORTS_WITH_TUNE=y -CT_ARCH_SUPPORTS_WITH_FLOAT=y -CT_ARCH_SUPPORTS_WITH_FPU=y -CT_ARCH_SUPPORTS_SOFTFP=y -CT_ARCH_EXCLUSIVE_WITH_CPU=y -CT_ARCH_CPU="cortex-a9" -CT_ARCH_FPU="" -# CT_ARCH_FLOAT_AUTO is not set -# CT_ARCH_FLOAT_HW is not set -# CT_ARCH_FLOAT_SOFTFP is not set -CT_ARCH_FLOAT_SW=y -CT_TARGET_CFLAGS="" -CT_TARGET_LDFLAGS="" -CT_ARCH_FLOAT="soft" - -# -# arm other options -# -CT_ARCH_ARM_MODE="arm" -CT_ARCH_ARM_MODE_ARM=y -# CT_ARCH_ARM_MODE_THUMB is not set -# CT_ARCH_ARM_INTERWORKING is not set -CT_ARCH_ARM_EABI=y - -# -# Toolchain options -# - -# -# General toolchain options -# -CT_USE_SYSROOT=y -CT_SYSROOT_NAME="sysroot" -CT_SYSROOT_DIR_PREFIX="" -CT_WANTS_STATIC_LINK=y -CT_WANTS_STATIC_LINK_CXX=y -# CT_STATIC_TOOLCHAIN is not set -CT_TOOLCHAIN_PKGVERSION="ONIE-${LSB_RELEASE_TAG}" -CT_TOOLCHAIN_BUGURL="" - -# -# Tuple completion and aliasing -# -CT_TARGET_VENDOR="onie" -CT_TARGET_ALIAS_SED_EXPR="" -CT_TARGET_ALIAS="armv7a" - -# -# Toolchain type -# -# CT_NATIVE is not set -CT_CROSS=y -# CT_CROSS_NATIVE is not set -# CT_CANADIAN is not set -CT_TOOLCHAIN_TYPE="cross" - -# -# Build system -# -CT_BUILD="" -CT_BUILD_PREFIX="" -CT_BUILD_SUFFIX="" - -# -# Misc options -# -CT_TOOLCHAIN_ENABLE_NLS=y - -# -# Operating System -# -CT_KERNEL_SUPPORTS_SHARED_LIBS=y -CT_KERNEL="linux" -CT_KERNEL_VERSION="${LINUX_RELEASE}" -# CT_KERNEL_bare_metal is not set -CT_KERNEL_linux=y -CT_KERNEL_bare_metal_AVAILABLE=y -CT_KERNEL_linux_AVAILABLE=y -CT_KERNEL_LINUX_CUSTOM=y -CT_KERNEL_LINUX_CUSTOM_LOCATION="${DOWNLOADDIR}/${LINUX_TARBALL}" -CT_KERNEL_LINUX_CUSTOM_VERSION="${LINUX_RELEASE}" -CT_KERNEL_windows_AVAILABLE=y - -# -# Common kernel options -# -CT_SHARED_LIBS=y - -# -# linux other options -# -CT_KERNEL_LINUX_VERBOSITY_0=y -# CT_KERNEL_LINUX_VERBOSITY_1 is not set -# CT_KERNEL_LINUX_VERBOSITY_2 is not set -CT_KERNEL_LINUX_VERBOSE_LEVEL=0 -CT_KERNEL_LINUX_INSTALL_CHECK=y - -# -# Binary utilities -# -CT_ARCH_BINFMT_ELF=y -CT_BINUTILS="binutils" -CT_BINUTILS_binutils=y - -# -# GNU binutils -# -# CT_BINUTILS_CUSTOM is not set -CT_BINUTILS_VERSION="2.24" -# CT_BINUTILS_SHOW_LINARO is not set -# CT_BINUTILS_V_2_28 is not set -# CT_BINUTILS_V_2_27 is not set -# CT_BINUTILS_V_2_26 is not set -# CT_BINUTILS_V_2_25_1 is not set -CT_BINUTILS_V_2_24=y -# CT_BINUTILS_V_2_23_2 is not set -CT_BINUTILS_2_24_or_later=y -CT_BINUTILS_2_23_2_or_later=y -CT_BINUTILS_HAS_HASH_STYLE=y -CT_BINUTILS_HAS_GOLD=y -CT_BINUTILS_GOLD_SUPPORTS_ARCH=y -CT_BINUTILS_GOLD_SUPPORT=y -CT_BINUTILS_HAS_PLUGINS=y -CT_BINUTILS_HAS_PKGVERSION_BUGURL=y -CT_BINUTILS_LINKER_LD=y -# CT_BINUTILS_LINKER_GOLD is not set -# CT_BINUTILS_LINKER_LD_GOLD is not set -# CT_BINUTILS_LINKER_GOLD_LD is not set -CT_BINUTILS_LINKERS_LIST="ld" -CT_BINUTILS_LINKER_DEFAULT="bfd" -# CT_BINUTILS_PLUGINS is not set -CT_BINUTILS_EXTRA_CONFIG_ARRAY="" -CT_BINUTILS_FOR_TARGET=y -CT_BINUTILS_FOR_TARGET_IBERTY=y -CT_BINUTILS_FOR_TARGET_BFD=y - -# -# binutils other options -# - -# -# C-library -# -CT_LIBC="uClibc" -CT_LIBC_VERSION="1.0.22" -# CT_LIBC_glibc is not set -# CT_LIBC_musl is not set -CT_LIBC_uClibc=y -CT_LIBC_avr_libc_AVAILABLE=y -CT_LIBC_glibc_AVAILABLE=y -CT_THREADS="nptl" -CT_LIBC_mingw_AVAILABLE=y -CT_LIBC_musl_AVAILABLE=y -CT_LIBC_newlib_AVAILABLE=y -CT_LIBC_none_AVAILABLE=y -CT_LIBC_uClibc_AVAILABLE=y -# CT_LIBC_UCLIBC_CUSTOM is not set -CT_LIBC_UCLIBC_NG_V_1_0_22=y -# CT_LIBC_UCLIBC_NG_V_1_0_21 is not set -# CT_LIBC_UCLIBC_NG_V_1_0_20 is not set -# CT_LIBC_UCLIBC_V_0_9_33_2 is not set -CT_LIBC_UCLIBC_NG_1_0_15_or_later=y -CT_LIBC_UCLIBC_NG_1_0_0_or_later=y -CT_LIBC_UCLIBC_0_9_33_2_or_later=y -CT_LIBC_UCLIBC_PARALLEL=y -CT_LIBC_UCLIBC_NG=y -CT_LIBC_UCLIBC_VERBOSITY_0=y -# CT_LIBC_UCLIBC_VERBOSITY_1 is not set -# CT_LIBC_UCLIBC_VERBOSITY_2 is not set -CT_LIBC_UCLIBC_VERBOSITY="" -CT_LIBC_UCLIBC_DEBUG_LEVEL_0=y -# CT_LIBC_UCLIBC_DEBUG_LEVEL_1 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_2 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_3 is not set -CT_LIBC_UCLIBC_DEBUG_LEVEL=0 -CT_LIBC_UCLIBC_CONFIG_FILE="${UCLIBC_CONFIG}" -CT_LIBC_SUPPORT_THREADS_ANY=y -CT_LIBC_SUPPORT_THREADS_NATIVE=y -CT_LIBC_SUPPORT_THREADS_LT=y -CT_LIBC_SUPPORT_THREADS_NONE=y - -# -# Common C library options -# -CT_THREADS_NATIVE=y -# CT_THREADS_LT is not set -# CT_THREADS_NONE is not set -# CT_CREATE_LDSO_CONF is not set -CT_LIBC_XLDD=y - -# -# uClibc other options -# -CT_LIBC_UCLIBC_LNXTHRD="" -# CT_LIBC_UCLIBC_LOCALES is not set -CT_LIBC_UCLIBC_IPV6=y -CT_LIBC_UCLIBC_WCHAR=y -CT_LIBC_UCLIBC_FENV=y -# CT_LIBC_UCLIBC_RPC is not set -CT_LIBC_UCLIBC_USE_GNU_SUFFIX=y - -# -# C compiler -# -CT_CC="gcc" -CT_CC_CORE_PASSES_NEEDED=y -CT_CC_CORE_PASS_1_NEEDED=y -CT_CC_CORE_PASS_2_NEEDED=y -CT_CC_gcc=y -# CT_CC_GCC_CUSTOM is not set -CT_CC_GCC_VERSION="${GCC_VERSION}" -# CT_CC_GCC_V_6_3_0 is not set -# CT_CC_GCC_V_5_4_0 is not set -# CT_CC_GCC_V_4_9_4 is not set -# CT_CC_GCC_V_4_8_5 is not set -CT_CC_GCC_4_8_or_later=y -CT_CC_GCC_4_9_or_later=y -CT_CC_GCC_5_or_later=y -CT_CC_GCC_6_or_later=y -CT_CC_GCC_latest=y -CT_CC_GCC_HAS_LIBMPX=y -CT_CC_GCC_ENABLE_CXX_FLAGS="" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_STATIC_LIBSTDCXX=y -# CT_CC_GCC_SYSTEM_ZLIB is not set -CT_CC_GCC_CONFIG_TLS=m - -# -# Optimisation features -# -CT_CC_GCC_USE_GRAPHITE=y -CT_CC_GCC_USE_LTO=y - -# -# Settings for libraries running on target -# -CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y -# CT_CC_GCC_LIBMUDFLAP is not set -# CT_CC_GCC_LIBGOMP is not set -# CT_CC_GCC_LIBSSP is not set -# CT_CC_GCC_LIBQUADMATH is not set - -# -# Misc. obscure options. -# -CT_CC_CXA_ATEXIT=y -# CT_CC_GCC_DISABLE_PCH is not set -CT_CC_GCC_SJLJ_EXCEPTIONS=m -CT_CC_GCC_LDBL_128=m -# CT_CC_GCC_BUILD_ID is not set -CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y -# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set -# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set -# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set -CT_CC_GCC_LNK_HASH_STYLE="" -CT_CC_GCC_DEC_FLOAT_AUTO=y -# CT_CC_GCC_DEC_FLOAT_BID is not set -# CT_CC_GCC_DEC_FLOAT_DPD is not set -# CT_CC_GCC_DEC_FLOATS_NO is not set -CT_CC_SUPPORT_CXX=y -CT_CC_SUPPORT_FORTRAN=y -CT_CC_SUPPORT_JAVA=y -CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_OBJC=y -CT_CC_SUPPORT_OBJCXX=y -CT_CC_SUPPORT_GOLANG=y - -# -# Additional supported languages: -# -CT_CC_LANG_CXX=y -# CT_CC_LANG_FORTRAN is not set -# CT_CC_LANG_JAVA is not set -# CT_CC_LANG_ADA is not set -# CT_CC_LANG_OBJC is not set -# CT_CC_LANG_OBJCXX is not set -# CT_CC_LANG_GOLANG is not set -CT_CC_LANG_OTHERS="" - -# -# Debug facilities -# -CT_DEBUG_duma=y -CT_DUMA_SO=y -CT_DUMA_CUSTOM_WRAPPER=y -CT_DUMA_V_2_5_15=y -CT_DUMA_VERSION="2_5_15" -CT_DEBUG_gdb=y -CT_GDB_CROSS=y -# CT_GDB_CROSS_STATIC is not set -# CT_GDB_CROSS_SIM is not set -CT_GDB_CROSS_PYTHON=y -CT_GDB_CROSS_PYTHON_BINARY="" -CT_GDB_CROSS_EXTRA_CONFIG_ARRAY="" -# CT_GDB_NATIVE is not set -CT_GDB_GDBSERVER=y -CT_GDB_GDBSERVER_HAS_IPA_LIB=y -# CT_GDB_GDBSERVER_STATIC is not set -# CT_GDB_GDBSERVER_BUILD_IPA_LIB is not set - -# -# gdb version -# -# CT_GDB_CUSTOM is not set -CT_GDB_VERSION="7.11.1" -# CT_DEBUG_GDB_SHOW_LINARO is not set -# CT_GDB_V_7_12_1 is not set -CT_GDB_V_7_11_1=y -# CT_GDB_V_7_10_1 is not set -# CT_GDB_V_7_10 is not set -# CT_GDB_V_7_9_1 is not set -# CT_GDB_V_7_9 is not set -# CT_GDB_V_7_8_2 is not set -# CT_GDB_V_7_8_1 is not set -# CT_GDB_V_7_8 is not set -# CT_GDB_V_7_7_1 is not set -# CT_GDB_V_7_7 is not set -# CT_GDB_V_7_6_1 is not set -# CT_GDB_V_7_5_1 is not set -# CT_GDB_V_7_4_1 is not set -# CT_GDB_V_7_4 is not set -# CT_GDB_V_7_3_1 is not set -# CT_GDB_V_7_3a is not set -# CT_GDB_V_7_2a is not set -# CT_GDB_V_7_1a is not set -# CT_GDB_V_7_0_1a is not set -# CT_GDB_V_7_0a is not set -# CT_GDB_V_6_8a is not set -CT_GDB_7_2_or_later=y -CT_GDB_7_0_or_later=y -CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y -CT_GDB_INSTALL_GDBINIT=y -CT_DEBUG_ltrace=y -CT_LTRACE_V_0_7_3=y -# CT_LTRACE_V_0_5_3 is not set -CT_LTRACE_VERSION="0.7.3" -CT_DEBUG_strace=y -# CT_STRACE_V_4_16 is not set -# CT_STRACE_V_4_15 is not set -# CT_STRACE_V_4_14 is not set -# CT_STRACE_V_4_13 is not set -# CT_STRACE_V_4_12 is not set -# CT_STRACE_V_4_11 is not set -# CT_STRACE_V_4_10 is not set -CT_STRACE_V_4_9=y -# CT_STRACE_V_4_8 is not set -# CT_STRACE_V_4_7 is not set -# CT_STRACE_V_4_6 is not set -# CT_STRACE_V_4_5_20 is not set -# CT_STRACE_V_4_5_19 is not set -# CT_STRACE_V_4_5_18 is not set -CT_STRACE_VERSION="4.9" - -# -# Companion libraries -# -CT_COMPLIBS_NEEDED=y -CT_LIBICONV_NEEDED=y -CT_GETTEXT_NEEDED=y -CT_GMP_NEEDED=y -CT_MPFR_NEEDED=y -CT_ISL_NEEDED=y -CT_MPC_NEEDED=y -CT_EXPAT_NEEDED=y -CT_NCURSES_NEEDED=y -CT_COMPLIBS=y -CT_LIBICONV=y -CT_GETTEXT=y -CT_GMP=y -CT_MPFR=y -CT_ISL=y -CT_MPC=y -CT_LIBELF_TARGET=y -CT_EXPAT=y -CT_NCURSES=y -# CT_ZLIB is not set -CT_LIBICONV_V_1_15=y -# CT_LIBICONV_V_1_14 is not set -CT_LIBICONV_VERSION="1.15" -CT_GETTEXT_V_0_19_8_1=y -# CT_GETTEXT_V_0_19_7 is not set -CT_GETTEXT_VERSION="0.19.8.1" -# CT_GMP_V_6_1_2 is not set -# CT_GMP_V_6_1_0 is not set -CT_GMP_V_6_0_0=y -# CT_GMP_V_5_1_3 is not set -# CT_GMP_V_5_1_1 is not set -# CT_GMP_V_5_0_2 is not set -# CT_GMP_V_5_0_1 is not set -# CT_GMP_V_4_3_2 is not set -# CT_GMP_V_4_3_1 is not set -# CT_GMP_V_4_3_0 is not set -CT_GMP_5_0_2_or_later=y -CT_GMP_VERSION="6.0.0a" -# CT_MPFR_V_3_1_5 is not set -# CT_MPFR_V_3_1_3 is not set -CT_MPFR_V_3_1_2=y -# CT_MPFR_V_3_1_0 is not set -# CT_MPFR_V_3_0_1 is not set -# CT_MPFR_V_3_0_0 is not set -# CT_MPFR_V_2_4_2 is not set -# CT_MPFR_V_2_4_1 is not set -# CT_MPFR_V_2_4_0 is not set -CT_MPFR_VERSION="3.1.2" -# CT_ISL_V_0_18 is not set -# CT_ISL_V_0_17_1 is not set -# CT_ISL_V_0_16_1 is not set -# CT_ISL_V_0_15 is not set -# CT_ISL_V_0_14 is not set -CT_ISL_V_0_12_2=y -CT_ISL_V_0_12_or_later=y -CT_ISL_VERSION="0.12.2" -# CT_CLOOG_V_0_18_4 is not set -# CT_MPC_V_1_0_3 is not set -CT_MPC_V_1_0_2=y -# CT_MPC_V_1_0_1 is not set -# CT_MPC_V_1_0 is not set -# CT_MPC_V_0_9 is not set -# CT_MPC_V_0_8_2 is not set -# CT_MPC_V_0_8_1 is not set -# CT_MPC_V_0_7 is not set -CT_MPC_VERSION="1.0.2" - -# -# libelf version needed to build for target -# -CT_LIBELF_V_0_8_13=y -# CT_LIBELF_V_0_8_12 is not set -CT_LIBELF_VERSION="0.8.13" -# CT_EXPAT_V_2_2_0 is not set -CT_EXPAT_V_2_1_1=y -CT_EXPAT_VERSION="2.1.1" -CT_NCURSES_V_6_0=y -CT_NCURSES_VERSION="6.0" -# CT_NCURSES_NEW_ABI is not set -CT_NCURSES_HOST_CONFIG_ARGS="" -CT_NCURSES_HOST_DISABLE_DB=y -CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100" -CT_NCURSES_TARGET_CONFIG_ARGS="" -# CT_NCURSES_TARGET_DISABLE_DB is not set -CT_NCURSES_TARGET_FALLBACKS="" - -# -# Companion libraries common options -# -# CT_COMPLIBS_CHECK is not set - -# -# Companion tools -# -# CT_COMP_TOOLS_FOR_HOST is not set -CT_COMP_TOOLS_autoconf=y -CT_AUTOCONF_V_2_69=y -# CT_AUTOCONF_V_2_65 is not set -CT_AUTOCONF_VERSION="2.69" -CT_COMP_TOOLS_automake=y -CT_AUTOMAKE_V_1_15=y -# CT_AUTOMAKE_V_1_14 is not set -# CT_AUTOMAKE_V_1_11_6 is not set -# CT_AUTOMAKE_V_1_11_1 is not set -CT_AUTOMAKE_VERSION="1.15" -CT_COMP_TOOLS_libtool=y -CT_LIBTOOL_V_2_4_6=y -CT_LIBTOOL_VERSION="2.4.6" -CT_COMP_TOOLS_m4=y -CT_M4_V_1_4_18=y -# CT_M4_V_1_4_17 is not set -# CT_M4_V_1_4_13 is not set -CT_M4_VERSION="1.4.18" -CT_COMP_TOOLS_make=y -CT_MAKE_V_4_2_1=y -# CT_MAKE_V_4_1 is not set -# CT_MAKE_V_4_0 is not set -# CT_MAKE_V_3_81 is not set -# CT_MAKE_GMAKE_SYMLINK is not set -CT_MAKE_VERSION="4.2.1" - -# -# Test suite -# -# CT_TEST_SUITE_GCC is not set diff --git a/build-config/conf/crosstool/gcc-4.9.2/uClibc-ng-1.0.22/crosstool.powerpc-softfloat.config b/build-config/conf/crosstool/gcc-4.9.2/uClibc-ng-1.0.22/crosstool.powerpc-softfloat.config deleted file mode 100644 index 516d2c508..000000000 --- a/build-config/conf/crosstool/gcc-4.9.2/uClibc-ng-1.0.22/crosstool.powerpc-softfloat.config +++ /dev/null @@ -1,630 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Crosstool-NG Configuration -# -CT_CONFIGURE_has_static_link=y -CT_CONFIGURE_has_wget=y -CT_CONFIGURE_has_curl=y -CT_CONFIGURE_has_stat_flavor_GNU=y -CT_CONFIGURE_has_make_3_81_or_newer=y -CT_CONFIGURE_has_libtool_2_4_or_newer=y -CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_63_or_newer=y -CT_CONFIGURE_has_autoreconf_2_63_or_newer=y -CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y -CT_CONFIGURE_has_svn=y -CT_CONFIGURE_has_git=y -CT_MODULES=y - -# -# Paths and misc options -# - -# -# crosstool-NG behavior -# -CT_OBSOLETE=y -CT_EXPERIMENTAL=y -# CT_ALLOW_BUILD_AS_ROOT is not set -# CT_DEBUG_CT is not set - -# -# Paths -# -CT_LOCAL_TARBALLS_DIR="${DOWNLOADDIR}" -CT_SAVE_TARBALLS=y -CT_WORK_DIR="${CT_TOP_DIR}/build" -CT_BUILD_TOP_DIR="${CT_WORK_DIR}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" -CT_PREFIX_DIR="${XTOOLS_INSTALL_DIR}/${CT_TARGET}" -CT_RM_RF_PREFIX_DIR=y -CT_REMOVE_DOCS=y -CT_PREFIX_DIR_RO=y -CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y -CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y - -# -# Downloading -# -# CT_DOWNLOAD_AGENT_WGET is not set -# CT_DOWNLOAD_AGENT_CURL is not set -CT_DOWNLOAD_AGENT_NONE=y -CT_FORBID_DOWNLOAD=y - -# -# Extracting -# -# CT_FORCE_EXTRACT is not set -CT_OVERRIDE_CONFIG_GUESS_SUB=y -# CT_ONLY_EXTRACT is not set -# CT_PATCH_BUNDLED is not set -# CT_PATCH_LOCAL is not set -# CT_PATCH_BUNDLED_LOCAL is not set -# CT_PATCH_LOCAL_BUNDLED is not set -CT_PATCH_BUNDLED_FALLBACK_LOCAL=y -# CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set -# CT_PATCH_NONE is not set -CT_PATCH_ORDER="bundled,local" -CT_PATCH_SINGLE=y -CT_PATCH_USE_LOCAL=y -CT_LOCAL_PATCH_DIR="${CROSSTOOL_NG_LOCAL_PATCHDIR}" - -# -# Build behavior -# -CT_PARALLEL_JOBS=0 -CT_LOAD="" -CT_USE_PIPES=y -CT_EXTRA_CFLAGS_FOR_BUILD="" -CT_EXTRA_LDFLAGS_FOR_BUILD="" -CT_EXTRA_CFLAGS_FOR_HOST="" -CT_EXTRA_LDFLAGS_FOR_HOST="" -# CT_CONFIG_SHELL_SH is not set -# CT_CONFIG_SHELL_ASH is not set -CT_CONFIG_SHELL_BASH=y -# CT_CONFIG_SHELL_CUSTOM is not set -CT_CONFIG_SHELL="${bash}" - -# -# Logging -# -# CT_LOG_ERROR is not set -# CT_LOG_WARN is not set -CT_LOG_INFO=y -# CT_LOG_EXTRA is not set -# CT_LOG_ALL is not set -# CT_LOG_DEBUG is not set -CT_LOG_LEVEL_MAX="INFO" -# CT_LOG_SEE_TOOLS_WARN is not set -# CT_LOG_PROGRESS_BAR is not set -CT_LOG_TO_FILE=y -CT_LOG_FILE_COMPRESS=y - -# -# Target options -# -CT_ARCH="powerpc" -# CT_ARCH_alpha is not set -# CT_ARCH_arm is not set -# CT_ARCH_avr is not set -# CT_ARCH_m68k is not set -# CT_ARCH_microblaze is not set -# CT_ARCH_mips is not set -# CT_ARCH_nios2 is not set -CT_ARCH_powerpc=y -# CT_ARCH_s390 is not set -# CT_ARCH_sh is not set -# CT_ARCH_sparc is not set -# CT_ARCH_x86 is not set -# CT_ARCH_xtensa is not set -CT_ARCH_alpha_AVAILABLE=y -CT_ARCH_arm_AVAILABLE=y -CT_ARCH_avr_AVAILABLE=y -CT_ARCH_m68k_AVAILABLE=y -CT_ARCH_microblaze_AVAILABLE=y -CT_ARCH_mips_AVAILABLE=y -CT_ARCH_nios2_AVAILABLE=y -CT_ARCH_powerpc_AVAILABLE=y -CT_ARCH_s390_AVAILABLE=y -CT_ARCH_sh_AVAILABLE=y -CT_ARCH_sparc_AVAILABLE=y -CT_ARCH_x86_AVAILABLE=y -CT_ARCH_xtensa_AVAILABLE=y -CT_ARCH_SUFFIX="" - -# -# Generic target options -# -# CT_MULTILIB is not set -CT_DEMULTILIB=y -CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_BOTH_ENDIAN=y -CT_ARCH_DEFAULT_BE=y -CT_ARCH_BE=y -# CT_ARCH_LE is not set -CT_ARCH_ENDIAN="big" -CT_ARCH_SUPPORTS_32=y -CT_ARCH_SUPPORTS_64=y -CT_ARCH_DEFAULT_32=y -CT_ARCH_BITNESS=32 -CT_ARCH_32=y -# CT_ARCH_64 is not set - -# -# Target optimisations -# -CT_ARCH_SUPPORTS_WITH_ABI=y -CT_ARCH_SUPPORTS_WITH_CPU=y -CT_ARCH_SUPPORTS_WITH_TUNE=y -CT_ARCH_SUPPORTS_WITH_FLOAT=y -CT_ARCH_ABI="" -CT_ARCH_CPU="" -CT_ARCH_TUNE="" -# CT_ARCH_FLOAT_AUTO is not set -# CT_ARCH_FLOAT_HW is not set -CT_ARCH_FLOAT_SW=y -CT_TARGET_CFLAGS="" -CT_TARGET_LDFLAGS="" -CT_ARCH_FLOAT="soft" - -# -# powerpc other options -# -CT_ARCH_powerpc_ABI="" -CT_ARCH_powerpc_ABI_DEFAULT=y -# CT_ARCH_powerpc_ABI_SPE is not set - -# -# Toolchain options -# - -# -# General toolchain options -# -CT_USE_SYSROOT=y -CT_SYSROOT_NAME="sysroot" -CT_SYSROOT_DIR_PREFIX="" -CT_WANTS_STATIC_LINK=y -CT_WANTS_STATIC_LINK_CXX=y -# CT_STATIC_TOOLCHAIN is not set -CT_TOOLCHAIN_PKGVERSION="ONIE-${LSB_RELEASE_TAG}" -CT_TOOLCHAIN_BUGURL="" - -# -# Tuple completion and aliasing -# -CT_TARGET_VENDOR="onie" -CT_TARGET_ALIAS_SED_EXPR="" -CT_TARGET_ALIAS="powerpc-softfloat" - -# -# Toolchain type -# -# CT_NATIVE is not set -CT_CROSS=y -# CT_CROSS_NATIVE is not set -# CT_CANADIAN is not set -CT_TOOLCHAIN_TYPE="cross" - -# -# Build system -# -CT_BUILD="" -CT_BUILD_PREFIX="" -CT_BUILD_SUFFIX="" - -# -# Misc options -# -CT_TOOLCHAIN_ENABLE_NLS=y - -# -# Operating System -# -CT_KERNEL_SUPPORTS_SHARED_LIBS=y -CT_KERNEL="linux" -CT_KERNEL_VERSION="${LINUX_RELEASE}" -# CT_KERNEL_bare_metal is not set -CT_KERNEL_linux=y -CT_KERNEL_bare_metal_AVAILABLE=y -CT_KERNEL_linux_AVAILABLE=y -CT_KERNEL_LINUX_CUSTOM=y -CT_KERNEL_LINUX_CUSTOM_LOCATION="${DOWNLOADDIR}/${LINUX_TARBALL}" -CT_KERNEL_LINUX_CUSTOM_VERSION="${LINUX_RELEASE}" -CT_KERNEL_windows_AVAILABLE=y - -# -# Common kernel options -# -CT_SHARED_LIBS=y - -# -# linux other options -# -CT_KERNEL_LINUX_VERBOSITY_0=y -# CT_KERNEL_LINUX_VERBOSITY_1 is not set -# CT_KERNEL_LINUX_VERBOSITY_2 is not set -CT_KERNEL_LINUX_VERBOSE_LEVEL=0 -CT_KERNEL_LINUX_INSTALL_CHECK=y - -# -# Binary utilities -# -CT_ARCH_BINFMT_ELF=y -CT_BINUTILS="binutils" -CT_BINUTILS_binutils=y - -# -# GNU binutils -# -# CT_BINUTILS_CUSTOM is not set -CT_BINUTILS_VERSION="2.24" -# CT_BINUTILS_SHOW_LINARO is not set -# CT_BINUTILS_V_2_28 is not set -# CT_BINUTILS_V_2_27 is not set -# CT_BINUTILS_V_2_26 is not set -# CT_BINUTILS_V_2_25_1 is not set -CT_BINUTILS_V_2_24=y -# CT_BINUTILS_V_2_23_2 is not set -CT_BINUTILS_2_24_or_later=y -CT_BINUTILS_2_23_2_or_later=y -CT_BINUTILS_HAS_HASH_STYLE=y -CT_BINUTILS_HAS_GOLD=y -CT_BINUTILS_HAS_PLUGINS=y -CT_BINUTILS_HAS_PKGVERSION_BUGURL=y -CT_BINUTILS_LINKER_LD=y -CT_BINUTILS_LINKERS_LIST="ld" -CT_BINUTILS_LINKER_DEFAULT="bfd" -# CT_BINUTILS_PLUGINS is not set -CT_BINUTILS_EXTRA_CONFIG_ARRAY="--enable-64-bit-bfd" -CT_BINUTILS_FOR_TARGET=y -CT_BINUTILS_FOR_TARGET_IBERTY=y -CT_BINUTILS_FOR_TARGET_BFD=y - -# -# binutils other options -# - -# -# C-library -# -CT_LIBC="uClibc" -CT_LIBC_VERSION="1.0.22" -# CT_LIBC_glibc is not set -# CT_LIBC_musl is not set -CT_LIBC_uClibc=y -CT_LIBC_avr_libc_AVAILABLE=y -CT_LIBC_glibc_AVAILABLE=y -CT_THREADS="nptl" -CT_LIBC_mingw_AVAILABLE=y -CT_LIBC_musl_AVAILABLE=y -CT_LIBC_newlib_AVAILABLE=y -CT_LIBC_none_AVAILABLE=y -CT_LIBC_uClibc_AVAILABLE=y -# CT_LIBC_UCLIBC_CUSTOM is not set -CT_LIBC_UCLIBC_NG_V_1_0_22=y -# CT_LIBC_UCLIBC_NG_V_1_0_21 is not set -# CT_LIBC_UCLIBC_NG_V_1_0_20 is not set -# CT_LIBC_UCLIBC_V_0_9_33_2 is not set -CT_LIBC_UCLIBC_NG_1_0_15_or_later=y -CT_LIBC_UCLIBC_NG_1_0_0_or_later=y -CT_LIBC_UCLIBC_0_9_33_2_or_later=y -CT_LIBC_UCLIBC_PARALLEL=y -CT_LIBC_UCLIBC_NG=y -CT_LIBC_UCLIBC_VERBOSITY_0=y -# CT_LIBC_UCLIBC_VERBOSITY_1 is not set -# CT_LIBC_UCLIBC_VERBOSITY_2 is not set -CT_LIBC_UCLIBC_VERBOSITY="" -CT_LIBC_UCLIBC_DEBUG_LEVEL_0=y -# CT_LIBC_UCLIBC_DEBUG_LEVEL_1 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_2 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_3 is not set -CT_LIBC_UCLIBC_DEBUG_LEVEL=0 -CT_LIBC_UCLIBC_CONFIG_FILE="${UCLIBC_CONFIG}" -CT_LIBC_SUPPORT_THREADS_ANY=y -CT_LIBC_SUPPORT_THREADS_NATIVE=y -CT_LIBC_SUPPORT_THREADS_LT=y -CT_LIBC_SUPPORT_THREADS_NONE=y - -# -# Common C library options -# -CT_THREADS_NATIVE=y -# CT_THREADS_LT is not set -# CT_THREADS_NONE is not set -# CT_CREATE_LDSO_CONF is not set -CT_LIBC_XLDD=y - -# -# uClibc other options -# -CT_LIBC_UCLIBC_LNXTHRD="" -# CT_LIBC_UCLIBC_LOCALES is not set -CT_LIBC_UCLIBC_IPV6=y -CT_LIBC_UCLIBC_WCHAR=y -CT_LIBC_UCLIBC_FENV=y -# CT_LIBC_UCLIBC_RPC is not set - -# -# C compiler -# -CT_CC="gcc" -CT_CC_CORE_PASSES_NEEDED=y -CT_CC_CORE_PASS_1_NEEDED=y -CT_CC_CORE_PASS_2_NEEDED=y -CT_CC_gcc=y -# CT_CC_GCC_CUSTOM is not set -CT_CC_GCC_VERSION="${GCC_VERSION}" -# CT_CC_GCC_V_6_3_0 is not set -# CT_CC_GCC_V_5_4_0 is not set -# CT_CC_GCC_V_4_9_4 is not set -# CT_CC_GCC_V_4_8_5 is not set -CT_CC_GCC_4_8_or_later=y -CT_CC_GCC_4_9_or_later=y -CT_CC_GCC_5_or_later=y -CT_CC_GCC_6_or_later=y -CT_CC_GCC_latest=y -CT_CC_GCC_HAS_LIBMPX=y -CT_CC_GCC_ENABLE_CXX_FLAGS="" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="--enable-targets=powerpc64" -CT_CC_GCC_STATIC_LIBSTDCXX=y -# CT_CC_GCC_SYSTEM_ZLIB is not set -CT_CC_GCC_CONFIG_TLS=m - -# -# Optimisation features -# -CT_CC_GCC_USE_GRAPHITE=y -CT_CC_GCC_USE_LTO=y - -# -# Settings for libraries running on target -# -CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y -# CT_CC_GCC_LIBMUDFLAP is not set -# CT_CC_GCC_LIBGOMP is not set -# CT_CC_GCC_LIBSSP is not set -# CT_CC_GCC_LIBQUADMATH is not set - -# -# Misc. obscure options. -# -CT_CC_CXA_ATEXIT=y -# CT_CC_GCC_DISABLE_PCH is not set -CT_CC_GCC_SJLJ_EXCEPTIONS=m -CT_CC_GCC_LDBL_128=m -# CT_CC_GCC_BUILD_ID is not set -CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y -# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set -# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set -# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set -CT_CC_GCC_LNK_HASH_STYLE="" -CT_CC_GCC_DEC_FLOAT_AUTO=y -# CT_CC_GCC_DEC_FLOAT_BID is not set -# CT_CC_GCC_DEC_FLOAT_DPD is not set -# CT_CC_GCC_DEC_FLOATS_NO is not set -CT_CC_SUPPORT_CXX=y -CT_CC_SUPPORT_FORTRAN=y -CT_CC_SUPPORT_JAVA=y -CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_OBJC=y -CT_CC_SUPPORT_OBJCXX=y -CT_CC_SUPPORT_GOLANG=y - -# -# Additional supported languages: -# -CT_CC_LANG_CXX=y -# CT_CC_LANG_FORTRAN is not set -# CT_CC_LANG_JAVA is not set -# CT_CC_LANG_ADA is not set -# CT_CC_LANG_OBJC is not set -# CT_CC_LANG_OBJCXX is not set -# CT_CC_LANG_GOLANG is not set -CT_CC_LANG_OTHERS="" - -# -# Debug facilities -# -CT_DEBUG_duma=y -CT_DUMA_SO=y -CT_DUMA_CUSTOM_WRAPPER=y -CT_DUMA_V_2_5_15=y -CT_DUMA_VERSION="2_5_15" -CT_DEBUG_gdb=y -CT_GDB_CROSS=y -# CT_GDB_CROSS_STATIC is not set -# CT_GDB_CROSS_SIM is not set -CT_GDB_CROSS_PYTHON=y -CT_GDB_CROSS_PYTHON_BINARY="" -CT_GDB_CROSS_EXTRA_CONFIG_ARRAY="" -# CT_GDB_NATIVE is not set -CT_GDB_GDBSERVER=y -CT_GDB_GDBSERVER_HAS_IPA_LIB=y -# CT_GDB_GDBSERVER_STATIC is not set -# CT_GDB_GDBSERVER_BUILD_IPA_LIB is not set - -# -# gdb version -# -# CT_GDB_CUSTOM is not set -CT_GDB_VERSION="7.11.1" -# CT_DEBUG_GDB_SHOW_LINARO is not set -# CT_GDB_V_7_12_1 is not set -CT_GDB_V_7_11_1=y -# CT_GDB_V_7_10_1 is not set -# CT_GDB_V_7_10 is not set -# CT_GDB_V_7_9_1 is not set -# CT_GDB_V_7_9 is not set -# CT_GDB_V_7_8_2 is not set -# CT_GDB_V_7_8_1 is not set -# CT_GDB_V_7_8 is not set -# CT_GDB_V_7_7_1 is not set -# CT_GDB_V_7_7 is not set -# CT_GDB_V_7_6_1 is not set -# CT_GDB_V_7_5_1 is not set -# CT_GDB_V_7_4_1 is not set -# CT_GDB_V_7_4 is not set -# CT_GDB_V_7_3_1 is not set -# CT_GDB_V_7_3a is not set -# CT_GDB_V_7_2a is not set -# CT_GDB_V_7_1a is not set -# CT_GDB_V_7_0_1a is not set -# CT_GDB_V_7_0a is not set -# CT_GDB_V_6_8a is not set -CT_GDB_7_2_or_later=y -CT_GDB_7_0_or_later=y -CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y -CT_GDB_INSTALL_GDBINIT=y -CT_DEBUG_ltrace=y -CT_LTRACE_V_0_7_3=y -# CT_LTRACE_V_0_5_3 is not set -CT_LTRACE_VERSION="0.7.3" -CT_DEBUG_strace=y -# CT_STRACE_V_4_16 is not set -# CT_STRACE_V_4_15 is not set -# CT_STRACE_V_4_14 is not set -# CT_STRACE_V_4_13 is not set -# CT_STRACE_V_4_12 is not set -# CT_STRACE_V_4_11 is not set -# CT_STRACE_V_4_10 is not set -CT_STRACE_V_4_9=y -# CT_STRACE_V_4_8 is not set -# CT_STRACE_V_4_7 is not set -# CT_STRACE_V_4_6 is not set -# CT_STRACE_V_4_5_20 is not set -# CT_STRACE_V_4_5_19 is not set -# CT_STRACE_V_4_5_18 is not set -CT_STRACE_VERSION="4.9" - -# -# Companion libraries -# -CT_COMPLIBS_NEEDED=y -CT_LIBICONV_NEEDED=y -CT_GETTEXT_NEEDED=y -CT_GMP_NEEDED=y -CT_MPFR_NEEDED=y -CT_ISL_NEEDED=y -CT_MPC_NEEDED=y -CT_EXPAT_NEEDED=y -CT_NCURSES_NEEDED=y -CT_COMPLIBS=y -CT_LIBICONV=y -CT_GETTEXT=y -CT_GMP=y -CT_MPFR=y -CT_ISL=y -CT_MPC=y -CT_LIBELF_TARGET=y -CT_EXPAT=y -CT_NCURSES=y -# CT_ZLIB is not set -CT_LIBICONV_V_1_15=y -# CT_LIBICONV_V_1_14 is not set -CT_LIBICONV_VERSION="1.15" -CT_GETTEXT_V_0_19_8_1=y -# CT_GETTEXT_V_0_19_7 is not set -CT_GETTEXT_VERSION="0.19.8.1" -# CT_GMP_V_6_1_2 is not set -# CT_GMP_V_6_1_0 is not set -CT_GMP_V_6_0_0=y -# CT_GMP_V_5_1_3 is not set -# CT_GMP_V_5_1_1 is not set -# CT_GMP_V_5_0_2 is not set -# CT_GMP_V_5_0_1 is not set -# CT_GMP_V_4_3_2 is not set -# CT_GMP_V_4_3_1 is not set -# CT_GMP_V_4_3_0 is not set -CT_GMP_5_0_2_or_later=y -CT_GMP_VERSION="6.0.0a" -# CT_MPFR_V_3_1_5 is not set -# CT_MPFR_V_3_1_3 is not set -CT_MPFR_V_3_1_2=y -# CT_MPFR_V_3_1_0 is not set -# CT_MPFR_V_3_0_1 is not set -# CT_MPFR_V_3_0_0 is not set -# CT_MPFR_V_2_4_2 is not set -# CT_MPFR_V_2_4_1 is not set -# CT_MPFR_V_2_4_0 is not set -CT_MPFR_VERSION="3.1.2" -# CT_ISL_V_0_18 is not set -# CT_ISL_V_0_17_1 is not set -# CT_ISL_V_0_16_1 is not set -# CT_ISL_V_0_15 is not set -# CT_ISL_V_0_14 is not set -CT_ISL_V_0_12_2=y -CT_ISL_V_0_12_or_later=y -CT_ISL_VERSION="0.12.2" -# CT_CLOOG_V_0_18_4 is not set -# CT_CLOOG_V_0_18_1 is not set -# CT_CLOOG_V_0_18_0 is not set -# CT_MPC_V_1_0_3 is not set -CT_MPC_V_1_0_2=y -# CT_MPC_V_1_0_1 is not set -# CT_MPC_V_1_0 is not set -# CT_MPC_V_0_9 is not set -# CT_MPC_V_0_8_2 is not set -# CT_MPC_V_0_8_1 is not set -# CT_MPC_V_0_7 is not set -CT_MPC_VERSION="1.0.2" - -# -# libelf version needed to build for target -# -CT_LIBELF_V_0_8_13=y -# CT_LIBELF_V_0_8_12 is not set -CT_LIBELF_VERSION="0.8.13" -# CT_EXPAT_V_2_2_0 is not set -CT_EXPAT_V_2_1_1=y -CT_EXPAT_VERSION="2.1.1" -CT_NCURSES_V_6_0=y -CT_NCURSES_VERSION="6.0" -# CT_NCURSES_NEW_ABI is not set -CT_NCURSES_HOST_CONFIG_ARGS="" -CT_NCURSES_HOST_DISABLE_DB=y -CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100" -CT_NCURSES_TARGET_CONFIG_ARGS="" -# CT_NCURSES_TARGET_DISABLE_DB is not set -CT_NCURSES_TARGET_FALLBACKS="" - -# -# Companion libraries common options -# -# CT_COMPLIBS_CHECK is not set - -# -# Companion tools -# -# CT_COMP_TOOLS_FOR_HOST is not set -CT_COMP_TOOLS_autoconf=y -CT_AUTOCONF_V_2_69=y -# CT_AUTOCONF_V_2_65 is not set -CT_AUTOCONF_VERSION="2.69" -CT_COMP_TOOLS_automake=y -CT_AUTOMAKE_V_1_15=y -# CT_AUTOMAKE_V_1_14 is not set -# CT_AUTOMAKE_V_1_11_6 is not set -# CT_AUTOMAKE_V_1_11_1 is not set -CT_AUTOMAKE_VERSION="1.15" -CT_COMP_TOOLS_libtool=y -CT_LIBTOOL_V_2_4_6=y -CT_LIBTOOL_VERSION="2.4.6" -CT_COMP_TOOLS_m4=y -CT_M4_V_1_4_18=y -# CT_M4_V_1_4_17 is not set -# CT_M4_V_1_4_13 is not set -CT_M4_VERSION="1.4.18" -CT_COMP_TOOLS_make=y -CT_MAKE_V_4_2_1=y -# CT_MAKE_V_4_1 is not set -# CT_MAKE_V_4_0 is not set -# CT_MAKE_V_3_81 is not set -# CT_MAKE_GMAKE_SYMLINK is not set -CT_MAKE_VERSION="4.2.1" - -# -# Test suite -# -# CT_TEST_SUITE_GCC is not set diff --git a/build-config/conf/crosstool/gcc-4.9.2/uClibc-ng-1.0.22/crosstool.x86_64.config b/build-config/conf/crosstool/gcc-4.9.2/uClibc-ng-1.0.22/crosstool.x86_64.config deleted file mode 100644 index a9e18078a..000000000 --- a/build-config/conf/crosstool/gcc-4.9.2/uClibc-ng-1.0.22/crosstool.x86_64.config +++ /dev/null @@ -1,625 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Crosstool-NG Configuration -# -CT_CONFIGURE_has_static_link=y -CT_CONFIGURE_has_wget=y -CT_CONFIGURE_has_curl=y -CT_CONFIGURE_has_stat_flavor_GNU=y -CT_CONFIGURE_has_make_3_81_or_newer=y -CT_CONFIGURE_has_libtool_2_4_or_newer=y -CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_63_or_newer=y -CT_CONFIGURE_has_autoreconf_2_63_or_newer=y -CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y -CT_CONFIGURE_has_svn=y -CT_CONFIGURE_has_git=y -CT_MODULES=y - -# -# Paths and misc options -# - -# -# crosstool-NG behavior -# -CT_OBSOLETE=y -CT_EXPERIMENTAL=y -# CT_ALLOW_BUILD_AS_ROOT is not set -# CT_DEBUG_CT is not set - -# -# Paths -# -CT_LOCAL_TARBALLS_DIR="${DOWNLOADDIR}" -CT_SAVE_TARBALLS=y -CT_WORK_DIR="${CT_TOP_DIR}/build" -CT_BUILD_TOP_DIR="${CT_WORK_DIR}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" -CT_PREFIX_DIR="${XTOOLS_INSTALL_DIR}/${CT_TARGET}" -CT_RM_RF_PREFIX_DIR=y -CT_REMOVE_DOCS=y -CT_PREFIX_DIR_RO=y -CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y -CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y - -# -# Downloading -# -# CT_DOWNLOAD_AGENT_WGET is not set -# CT_DOWNLOAD_AGENT_CURL is not set -CT_DOWNLOAD_AGENT_NONE=y -CT_FORBID_DOWNLOAD=y - -# -# Extracting -# -# CT_FORCE_EXTRACT is not set -CT_OVERRIDE_CONFIG_GUESS_SUB=y -# CT_ONLY_EXTRACT is not set -# CT_PATCH_BUNDLED is not set -# CT_PATCH_LOCAL is not set -# CT_PATCH_BUNDLED_LOCAL is not set -# CT_PATCH_LOCAL_BUNDLED is not set -CT_PATCH_BUNDLED_FALLBACK_LOCAL=y -# CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set -# CT_PATCH_NONE is not set -CT_PATCH_ORDER="bundled,local" -CT_PATCH_SINGLE=y -CT_PATCH_USE_LOCAL=y -CT_LOCAL_PATCH_DIR="${CROSSTOOL_NG_LOCAL_PATCHDIR}" - -# -# Build behavior -# -CT_PARALLEL_JOBS=0 -CT_LOAD="" -CT_USE_PIPES=y -CT_EXTRA_CFLAGS_FOR_BUILD="" -CT_EXTRA_LDFLAGS_FOR_BUILD="" -CT_EXTRA_CFLAGS_FOR_HOST="" -CT_EXTRA_LDFLAGS_FOR_HOST="" -# CT_CONFIG_SHELL_SH is not set -# CT_CONFIG_SHELL_ASH is not set -CT_CONFIG_SHELL_BASH=y -# CT_CONFIG_SHELL_CUSTOM is not set -CT_CONFIG_SHELL="${bash}" - -# -# Logging -# -# CT_LOG_ERROR is not set -# CT_LOG_WARN is not set -CT_LOG_INFO=y -# CT_LOG_EXTRA is not set -# CT_LOG_ALL is not set -# CT_LOG_DEBUG is not set -CT_LOG_LEVEL_MAX="INFO" -# CT_LOG_SEE_TOOLS_WARN is not set -# CT_LOG_PROGRESS_BAR is not set -CT_LOG_TO_FILE=y -CT_LOG_FILE_COMPRESS=y - -# -# Target options -# -CT_ARCH="x86" -# CT_ARCH_alpha is not set -# CT_ARCH_arm is not set -# CT_ARCH_avr is not set -# CT_ARCH_m68k is not set -# CT_ARCH_microblaze is not set -# CT_ARCH_mips is not set -# CT_ARCH_nios2 is not set -# CT_ARCH_powerpc is not set -# CT_ARCH_s390 is not set -# CT_ARCH_sh is not set -# CT_ARCH_sparc is not set -CT_ARCH_x86=y -# CT_ARCH_xtensa is not set -CT_ARCH_alpha_AVAILABLE=y -CT_ARCH_arm_AVAILABLE=y -CT_ARCH_avr_AVAILABLE=y -CT_ARCH_m68k_AVAILABLE=y -CT_ARCH_microblaze_AVAILABLE=y -CT_ARCH_mips_AVAILABLE=y -CT_ARCH_nios2_AVAILABLE=y -CT_ARCH_powerpc_AVAILABLE=y -CT_ARCH_s390_AVAILABLE=y -CT_ARCH_sh_AVAILABLE=y -CT_ARCH_sparc_AVAILABLE=y -CT_ARCH_x86_AVAILABLE=y -CT_ARCH_xtensa_AVAILABLE=y -CT_ARCH_SUFFIX="" - -# -# Generic target options -# -# CT_MULTILIB is not set -CT_DEMULTILIB=y -CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_32=y -CT_ARCH_SUPPORTS_64=y -CT_ARCH_DEFAULT_32=y -CT_ARCH_BITNESS=64 -# CT_ARCH_32 is not set -CT_ARCH_64=y - -# -# Target optimisations -# -CT_ARCH_SUPPORTS_WITH_ARCH=y -CT_ARCH_SUPPORTS_WITH_CPU=y -CT_ARCH_SUPPORTS_WITH_TUNE=y -CT_ARCH_ARCH="" -CT_ARCH_CPU="" -CT_ARCH_TUNE="" -CT_TARGET_CFLAGS="" -CT_TARGET_LDFLAGS="" -CT_ARCH_FLOAT="" - -# -# Toolchain options -# - -# -# General toolchain options -# -CT_USE_SYSROOT=y -CT_SYSROOT_NAME="sysroot" -CT_SYSROOT_DIR_PREFIX="" -CT_WANTS_STATIC_LINK=y -CT_WANTS_STATIC_LINK_CXX=y -# CT_STATIC_TOOLCHAIN is not set -CT_TOOLCHAIN_PKGVERSION="ONIE-${LSB_RELEASE_TAG}" -CT_TOOLCHAIN_BUGURL="" - -# -# Tuple completion and aliasing -# -CT_TARGET_VENDOR="onie" -CT_TARGET_ALIAS_SED_EXPR="" -CT_TARGET_ALIAS="x86_64" - -# -# Toolchain type -# -# CT_NATIVE is not set -CT_CROSS=y -# CT_CROSS_NATIVE is not set -# CT_CANADIAN is not set -CT_TOOLCHAIN_TYPE="cross" - -# -# Build system -# -CT_BUILD="" -CT_BUILD_PREFIX="" -CT_BUILD_SUFFIX="" - -# -# Misc options -# -CT_TOOLCHAIN_ENABLE_NLS=y - -# -# Operating System -# -CT_KERNEL_SUPPORTS_SHARED_LIBS=y -CT_KERNEL="linux" -CT_KERNEL_VERSION="${LINUX_RELEASE}" -# CT_KERNEL_bare_metal is not set -CT_KERNEL_linux=y -# CT_KERNEL_windows is not set -CT_KERNEL_bare_metal_AVAILABLE=y -CT_KERNEL_linux_AVAILABLE=y -CT_KERNEL_LINUX_CUSTOM=y -CT_KERNEL_LINUX_CUSTOM_LOCATION="${DOWNLOADDIR}/${LINUX_TARBALL}" -CT_KERNEL_LINUX_CUSTOM_VERSION="${LINUX_RELEASE}" -CT_KERNEL_windows_AVAILABLE=y - -# -# Common kernel options -# -CT_SHARED_LIBS=y - -# -# linux other options -# -CT_KERNEL_LINUX_VERBOSITY_0=y -# CT_KERNEL_LINUX_VERBOSITY_1 is not set -# CT_KERNEL_LINUX_VERBOSITY_2 is not set -CT_KERNEL_LINUX_VERBOSE_LEVEL=0 -CT_KERNEL_LINUX_INSTALL_CHECK=y - -# -# Binary utilities -# -CT_ARCH_BINFMT_ELF=y -CT_BINUTILS="binutils" -CT_BINUTILS_binutils=y - -# -# GNU binutils -# -# CT_BINUTILS_CUSTOM is not set -CT_BINUTILS_VERSION="2.24" -# CT_BINUTILS_SHOW_LINARO is not set -# CT_BINUTILS_V_2_28 is not set -# CT_BINUTILS_V_2_27 is not set -# CT_BINUTILS_V_2_26 is not set -# CT_BINUTILS_V_2_25_1 is not set -CT_BINUTILS_V_2_24=y -# CT_BINUTILS_V_2_23_2 is not set -CT_BINUTILS_2_24_or_later=y -CT_BINUTILS_2_23_2_or_later=y -CT_BINUTILS_HAS_HASH_STYLE=y -CT_BINUTILS_HAS_GOLD=y -CT_BINUTILS_GOLD_SUPPORTS_ARCH=y -CT_BINUTILS_GOLD_SUPPORT=y -CT_BINUTILS_HAS_PLUGINS=y -CT_BINUTILS_HAS_PKGVERSION_BUGURL=y -CT_BINUTILS_LINKER_LD=y -# CT_BINUTILS_LINKER_GOLD is not set -# CT_BINUTILS_LINKER_LD_GOLD is not set -# CT_BINUTILS_LINKER_GOLD_LD is not set -CT_BINUTILS_LINKERS_LIST="ld" -CT_BINUTILS_LINKER_DEFAULT="bfd" -CT_BINUTILS_PLUGINS=y -CT_BINUTILS_EXTRA_CONFIG_ARRAY="" -CT_BINUTILS_FOR_TARGET=y -CT_BINUTILS_FOR_TARGET_IBERTY=y -CT_BINUTILS_FOR_TARGET_BFD=y - -# -# binutils other options -# - -# -# C-library -# -CT_LIBC="uClibc" -CT_LIBC_VERSION="1.0.22" -# CT_LIBC_glibc is not set -# CT_LIBC_musl is not set -CT_LIBC_uClibc=y -CT_LIBC_avr_libc_AVAILABLE=y -CT_LIBC_glibc_AVAILABLE=y -CT_THREADS="nptl" -CT_LIBC_mingw_AVAILABLE=y -CT_LIBC_musl_AVAILABLE=y -CT_LIBC_newlib_AVAILABLE=y -CT_LIBC_none_AVAILABLE=y -CT_LIBC_uClibc_AVAILABLE=y -# CT_LIBC_UCLIBC_CUSTOM is not set -CT_LIBC_UCLIBC_NG_V_1_0_22=y -# CT_LIBC_UCLIBC_NG_V_1_0_21 is not set -# CT_LIBC_UCLIBC_NG_V_1_0_20 is not set -# CT_LIBC_UCLIBC_V_0_9_33_2 is not set -CT_LIBC_UCLIBC_NG_1_0_15_or_later=y -CT_LIBC_UCLIBC_NG_1_0_0_or_later=y -CT_LIBC_UCLIBC_0_9_33_2_or_later=y -CT_LIBC_UCLIBC_PARALLEL=y -CT_LIBC_UCLIBC_NG=y -CT_LIBC_UCLIBC_VERBOSITY_0=y -# CT_LIBC_UCLIBC_VERBOSITY_1 is not set -# CT_LIBC_UCLIBC_VERBOSITY_2 is not set -CT_LIBC_UCLIBC_VERBOSITY="" -CT_LIBC_UCLIBC_DEBUG_LEVEL_0=y -# CT_LIBC_UCLIBC_DEBUG_LEVEL_1 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_2 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_3 is not set -CT_LIBC_UCLIBC_DEBUG_LEVEL=0 -CT_LIBC_UCLIBC_CONFIG_FILE="${UCLIBC_CONFIG}" -CT_LIBC_SUPPORT_THREADS_ANY=y -CT_LIBC_SUPPORT_THREADS_NATIVE=y -CT_LIBC_SUPPORT_THREADS_LT=y -CT_LIBC_SUPPORT_THREADS_NONE=y - -# -# Common C library options -# -CT_THREADS_NATIVE=y -# CT_THREADS_LT is not set -# CT_THREADS_NONE is not set -# CT_CREATE_LDSO_CONF is not set -CT_LIBC_XLDD=y - -# -# uClibc other options -# -CT_LIBC_UCLIBC_LNXTHRD="" -# CT_LIBC_UCLIBC_LOCALES is not set -CT_LIBC_UCLIBC_IPV6=y -CT_LIBC_UCLIBC_WCHAR=y -CT_LIBC_UCLIBC_FENV=y -# CT_LIBC_UCLIBC_RPC is not set - -# -# C compiler -# -CT_CC="gcc" -CT_CC_CORE_PASSES_NEEDED=y -CT_CC_CORE_PASS_1_NEEDED=y -CT_CC_CORE_PASS_2_NEEDED=y -CT_CC_gcc=y -# CT_CC_GCC_CUSTOM is not set -CT_CC_GCC_VERSION="${GCC_VERSION}" -# CT_CC_GCC_V_linaro_6_3 is not set -# CT_CC_GCC_V_6_3_0 is not set -# CT_CC_GCC_V_linaro_5_4 is not set -# CT_CC_GCC_V_5_4_0 is not set -# CT_CC_GCC_V_linaro_4_9 is not set -# CT_CC_GCC_V_4_9_4 is not set -# CT_CC_GCC_V_linaro_4_8 is not set -# CT_CC_GCC_V_4_8_5 is not set -CT_CC_GCC_4_8_or_later=y -CT_CC_GCC_4_9_or_later=y -CT_CC_GCC_5_or_later=y -CT_CC_GCC_6_or_later=y -CT_CC_GCC_latest=y -CT_CC_GCC_HAS_LIBMPX=y -CT_CC_GCC_ENABLE_CXX_FLAGS="" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_STATIC_LIBSTDCXX=y -# CT_CC_GCC_SYSTEM_ZLIB is not set -CT_CC_GCC_CONFIG_TLS=m - -# -# Optimisation features -# -CT_CC_GCC_USE_GRAPHITE=y -CT_CC_GCC_USE_LTO=y - -# -# Settings for libraries running on target -# -CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y -# CT_CC_GCC_LIBMUDFLAP is not set -# CT_CC_GCC_LIBGOMP is not set -# CT_CC_GCC_LIBSSP is not set -# CT_CC_GCC_LIBQUADMATH is not set -CT_CC_GCC_LIBMPX=y - -# -# Misc. obscure options. -# -CT_CC_CXA_ATEXIT=y -# CT_CC_GCC_DISABLE_PCH is not set -CT_CC_GCC_SJLJ_EXCEPTIONS=m -CT_CC_GCC_LDBL_128=m -# CT_CC_GCC_BUILD_ID is not set -CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y -# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set -# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set -# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set -CT_CC_GCC_LNK_HASH_STYLE="" -CT_CC_GCC_DEC_FLOAT_AUTO=y -# CT_CC_GCC_DEC_FLOAT_BID is not set -# CT_CC_GCC_DEC_FLOAT_DPD is not set -# CT_CC_GCC_DEC_FLOATS_NO is not set -CT_CC_SUPPORT_CXX=y -CT_CC_SUPPORT_FORTRAN=y -CT_CC_SUPPORT_JAVA=y -CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_OBJC=y -CT_CC_SUPPORT_OBJCXX=y -CT_CC_SUPPORT_GOLANG=y - -# -# Additional supported languages: -# -CT_CC_LANG_CXX=y -# CT_CC_LANG_FORTRAN is not set -# CT_CC_LANG_JAVA is not set -# CT_CC_LANG_ADA is not set -# CT_CC_LANG_OBJC is not set -# CT_CC_LANG_OBJCXX is not set -# CT_CC_LANG_GOLANG is not set -CT_CC_LANG_OTHERS="" - -# -# Debug facilities -# -CT_DEBUG_duma=y -CT_DUMA_SO=y -CT_DUMA_CUSTOM_WRAPPER=y -CT_DUMA_V_2_5_15=y -CT_DUMA_VERSION="2_5_15" -CT_DEBUG_gdb=y -CT_GDB_CROSS=y -# CT_GDB_CROSS_STATIC is not set -# CT_GDB_CROSS_SIM is not set -CT_GDB_CROSS_PYTHON=y -CT_GDB_CROSS_PYTHON_BINARY="" -CT_GDB_CROSS_EXTRA_CONFIG_ARRAY="" -# CT_GDB_NATIVE is not set -CT_GDB_GDBSERVER=y -CT_GDB_GDBSERVER_HAS_IPA_LIB=y -# CT_GDB_GDBSERVER_STATIC is not set -CT_GDB_GDBSERVER_BUILD_IPA_LIB=y - -# -# gdb version -# -# CT_GDB_CUSTOM is not set -CT_GDB_VERSION="7.11.1" -# CT_DEBUG_GDB_SHOW_LINARO is not set -# CT_GDB_V_7_12_1 is not set -CT_GDB_V_7_11_1=y -# CT_GDB_V_7_10_1 is not set -# CT_GDB_V_7_10 is not set -# CT_GDB_V_7_9_1 is not set -# CT_GDB_V_7_9 is not set -# CT_GDB_V_7_8_2 is not set -# CT_GDB_V_7_8_1 is not set -# CT_GDB_V_7_8 is not set -# CT_GDB_V_7_7_1 is not set -# CT_GDB_V_7_7 is not set -# CT_GDB_V_7_6_1 is not set -# CT_GDB_V_7_5_1 is not set -# CT_GDB_V_7_4_1 is not set -# CT_GDB_V_7_4 is not set -# CT_GDB_V_7_3_1 is not set -# CT_GDB_V_7_3a is not set -# CT_GDB_V_7_2a is not set -# CT_GDB_V_7_1a is not set -# CT_GDB_V_7_0_1a is not set -# CT_GDB_V_7_0a is not set -# CT_GDB_V_6_8a is not set -CT_GDB_7_2_or_later=y -CT_GDB_7_0_or_later=y -CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y -CT_GDB_INSTALL_GDBINIT=y -CT_DEBUG_ltrace=y -CT_LTRACE_V_0_7_3=y -# CT_LTRACE_V_0_5_3 is not set -CT_LTRACE_VERSION="0.7.3" -CT_DEBUG_strace=y -# CT_STRACE_V_4_16 is not set -# CT_STRACE_V_4_15 is not set -# CT_STRACE_V_4_14 is not set -# CT_STRACE_V_4_13 is not set -# CT_STRACE_V_4_12 is not set -# CT_STRACE_V_4_11 is not set -# CT_STRACE_V_4_10 is not set -CT_STRACE_V_4_9=y -# CT_STRACE_V_4_8 is not set -# CT_STRACE_V_4_7 is not set -# CT_STRACE_V_4_6 is not set -# CT_STRACE_V_4_5_20 is not set -# CT_STRACE_V_4_5_19 is not set -# CT_STRACE_V_4_5_18 is not set -CT_STRACE_VERSION="4.9" - -# -# Companion libraries -# -CT_COMPLIBS_NEEDED=y -CT_LIBICONV_NEEDED=y -CT_GETTEXT_NEEDED=y -CT_GMP_NEEDED=y -CT_MPFR_NEEDED=y -CT_ISL_NEEDED=y -CT_MPC_NEEDED=y -CT_EXPAT_NEEDED=y -CT_NCURSES_NEEDED=y -CT_COMPLIBS=y -CT_LIBICONV=y -CT_GETTEXT=y -CT_GMP=y -CT_MPFR=y -CT_ISL=y -CT_MPC=y -CT_LIBELF_TARGET=y -CT_EXPAT=y -CT_NCURSES=y -# CT_ZLIB is not set -CT_LIBICONV_V_1_15=y -# CT_LIBICONV_V_1_14 is not set -CT_LIBICONV_VERSION="1.15" -CT_GETTEXT_V_0_19_8_1=y -# CT_GETTEXT_V_0_19_7 is not set -CT_GETTEXT_VERSION="0.19.8.1" -# CT_GMP_V_6_1_2 is not set -# CT_GMP_V_6_1_0 is not set -CT_GMP_V_6_0_0=y -# CT_GMP_V_5_1_3 is not set -# CT_GMP_V_5_1_1 is not set -# CT_GMP_V_5_0_2 is not set -# CT_GMP_V_5_0_1 is not set -# CT_GMP_V_4_3_2 is not set -# CT_GMP_V_4_3_1 is not set -# CT_GMP_V_4_3_0 is not set -CT_GMP_5_0_2_or_later=y -CT_GMP_VERSION="6.0.0a" -# CT_MPFR_V_3_1_5 is not set -# CT_MPFR_V_3_1_3 is not set -CT_MPFR_V_3_1_2=y -# CT_MPFR_V_3_1_0 is not set -# CT_MPFR_V_3_0_1 is not set -# CT_MPFR_V_3_0_0 is not set -# CT_MPFR_V_2_4_2 is not set -# CT_MPFR_V_2_4_1 is not set -# CT_MPFR_V_2_4_0 is not set -CT_MPFR_VERSION="3.1.2" -# CT_ISL_V_0_18 is not set -# CT_ISL_V_0_17_1 is not set -# CT_ISL_V_0_16_1 is not set -# CT_ISL_V_0_15 is not set -# CT_ISL_V_0_14 is not set -CT_ISL_V_0_12_2=y -CT_ISL_V_0_12_or_later=y -CT_ISL_VERSION="0.12.2" -# CT_CLOOG_V_0_18_4 is not set -# CT_CLOOG_V_0_18_1 is not set -# CT_CLOOG_V_0_18_0 is not set -# CT_MPC_V_1_0_3 is not set -CT_MPC_V_1_0_2=y -# CT_MPC_V_1_0_1 is not set -# CT_MPC_V_1_0 is not set -# CT_MPC_V_0_9 is not set -# CT_MPC_V_0_8_2 is not set -# CT_MPC_V_0_8_1 is not set -# CT_MPC_V_0_7 is not set -CT_MPC_VERSION="1.0.2" - -# -# libelf version needed to build for target -# -CT_LIBELF_V_0_8_13=y -# CT_LIBELF_V_0_8_12 is not set -CT_LIBELF_VERSION="0.8.13" -# CT_EXPAT_V_2_2_0 is not set -CT_EXPAT_V_2_1_1=y -CT_EXPAT_VERSION="2.1.1" -CT_NCURSES_V_6_0=y -CT_NCURSES_VERSION="6.0" -# CT_NCURSES_NEW_ABI is not set -CT_NCURSES_HOST_CONFIG_ARGS="" -CT_NCURSES_HOST_DISABLE_DB=y -CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100" -CT_NCURSES_TARGET_CONFIG_ARGS="" -# CT_NCURSES_TARGET_DISABLE_DB is not set -CT_NCURSES_TARGET_FALLBACKS="" - -# -# Companion libraries common options -# -# CT_COMPLIBS_CHECK is not set - -# -# Companion tools -# -# CT_COMP_TOOLS_FOR_HOST is not set -CT_COMP_TOOLS_autoconf=y -CT_AUTOCONF_V_2_69=y -# CT_AUTOCONF_V_2_65 is not set -CT_AUTOCONF_VERSION="2.69" -CT_COMP_TOOLS_automake=y -CT_AUTOMAKE_V_1_15=y -# CT_AUTOMAKE_V_1_14 is not set -# CT_AUTOMAKE_V_1_11_6 is not set -# CT_AUTOMAKE_V_1_11_1 is not set -CT_AUTOMAKE_VERSION="1.15" -CT_COMP_TOOLS_libtool=y -CT_LIBTOOL_V_2_4_6=y -CT_LIBTOOL_VERSION="2.4.6" -CT_COMP_TOOLS_m4=y -CT_M4_V_1_4_18=y -# CT_M4_V_1_4_17 is not set -# CT_M4_V_1_4_13 is not set -CT_M4_VERSION="1.4.18" -CT_COMP_TOOLS_make=y -CT_MAKE_V_4_2_1=y -# CT_MAKE_V_4_1 is not set -# CT_MAKE_V_4_0 is not set -# CT_MAKE_V_3_81 is not set -# CT_MAKE_GMAKE_SYMLINK is not set -CT_MAKE_VERSION="4.2.1" - -# -# Test suite -# -# CT_TEST_SUITE_GCC is not set diff --git a/build-config/conf/crosstool/gcc-6.3.0/glibc-2.25/crosstool.armv8a.config b/build-config/conf/crosstool/gcc-6.3.0/glibc-2.25/crosstool.armv8a.config deleted file mode 100644 index 15bc2f6dd..000000000 --- a/build-config/conf/crosstool/gcc-6.3.0/glibc-2.25/crosstool.armv8a.config +++ /dev/null @@ -1,554 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Crosstool-NG Configuration -# -CT_CONFIGURE_has_static_link=y -CT_CONFIGURE_has_wget=y -CT_CONFIGURE_has_curl=y -CT_CONFIGURE_has_stat_flavor_GNU=y -CT_CONFIGURE_has_make_3_81_or_newer=y -CT_CONFIGURE_has_libtool_2_4_or_newer=y -CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_63_or_newer=y -CT_CONFIGURE_has_autoreconf_2_63_or_newer=y -CT_CONFIGURE_has_automake_1_15_or_newer=y -CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y -CT_CONFIGURE_has_svn=y -CT_CONFIGURE_has_git=y -CT_MODULES=y - -# -# Paths and misc options -# - -# -# crosstool-NG behavior -# -# CT_OBSOLETE is not set -CT_EXPERIMENTAL=y -# CT_ALLOW_BUILD_AS_ROOT is not set -# CT_DEBUG_CT is not set - -# -# Paths -# -CT_LOCAL_TARBALLS_DIR="${DOWNLOADDIR}" -CT_SAVE_TARBALLS=y -CT_WORK_DIR="${CT_TOP_DIR}/build" -CT_BUILD_TOP_DIR="${CT_WORK_DIR}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" -CT_PREFIX_DIR="${XTOOLS_INSTALL_DIR}/${CT_TARGET}" -CT_RM_RF_PREFIX_DIR=y -CT_REMOVE_DOCS=y -CT_PREFIX_DIR_RO=y -CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y -CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y - -# -# Downloading -# -# CT_DOWNLOAD_AGENT_WGET is not set -# CT_DOWNLOAD_AGENT_CURL is not set -CT_DOWNLOAD_AGENT_NONE=y -CT_FORBID_DOWNLOAD=y - -# -# Extracting -# -# CT_FORCE_EXTRACT is not set -CT_OVERRIDE_CONFIG_GUESS_SUB=y -# CT_ONLY_EXTRACT is not set -# CT_PATCH_BUNDLED is not set -# CT_PATCH_LOCAL is not set -# CT_PATCH_BUNDLED_LOCAL is not set -# CT_PATCH_LOCAL_BUNDLED is not set -CT_PATCH_BUNDLED_FALLBACK_LOCAL=y -# CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set -# CT_PATCH_NONE is not set -CT_PATCH_ORDER="bundled,local" -CT_PATCH_SINGLE=y -CT_PATCH_USE_LOCAL=y -CT_LOCAL_PATCH_DIR="${CROSSTOOL_NG_LOCAL_PATCHDIR}" - -# -# Build behavior -# -CT_PARALLEL_JOBS=0 -CT_LOAD="" -CT_USE_PIPES=y -CT_EXTRA_CFLAGS_FOR_BUILD="" -CT_EXTRA_LDFLAGS_FOR_BUILD="" -CT_EXTRA_CFLAGS_FOR_HOST="" -CT_EXTRA_LDFLAGS_FOR_HOST="" -# CT_CONFIG_SHELL_SH is not set -# CT_CONFIG_SHELL_ASH is not set -CT_CONFIG_SHELL_BASH=y -# CT_CONFIG_SHELL_CUSTOM is not set -CT_CONFIG_SHELL="${bash}" - -# -# Logging -# -# CT_LOG_ERROR is not set -# CT_LOG_WARN is not set -CT_LOG_INFO=y -# CT_LOG_EXTRA is not set -# CT_LOG_ALL is not set -# CT_LOG_DEBUG is not set -CT_LOG_LEVEL_MAX="INFO" -# CT_LOG_SEE_TOOLS_WARN is not set -# CT_LOG_PROGRESS_BAR is not set -CT_LOG_TO_FILE=y -CT_LOG_FILE_COMPRESS=y - -# -# Target options -# -CT_ARCH="arm" -# CT_ARCH_alpha is not set -CT_ARCH_arm=y -# CT_ARCH_avr is not set -# CT_ARCH_m68k is not set -# CT_ARCH_microblaze is not set -# CT_ARCH_mips is not set -# CT_ARCH_nios2 is not set -# CT_ARCH_powerpc is not set -# CT_ARCH_s390 is not set -# CT_ARCH_sh is not set -# CT_ARCH_sparc is not set -# CT_ARCH_x86 is not set -# CT_ARCH_xtensa is not set -CT_ARCH_alpha_AVAILABLE=y -CT_ARCH_arm_AVAILABLE=y -CT_ARCH_avr_AVAILABLE=y -CT_ARCH_m68k_AVAILABLE=y -CT_ARCH_microblaze_AVAILABLE=y -CT_ARCH_mips_AVAILABLE=y -CT_ARCH_nios2_AVAILABLE=y -CT_ARCH_powerpc_AVAILABLE=y -CT_ARCH_s390_AVAILABLE=y -CT_ARCH_sh_AVAILABLE=y -CT_ARCH_sparc_AVAILABLE=y -CT_ARCH_x86_AVAILABLE=y -CT_ARCH_xtensa_AVAILABLE=y -CT_ARCH_SUFFIX="" - -# -# Generic target options -# -# CT_MULTILIB is not set -CT_DEMULTILIB=y -CT_ARCH_SUPPORTS_BOTH_MMU=y -CT_ARCH_DEFAULT_HAS_MMU=y -CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_BOTH_ENDIAN=y -CT_ARCH_DEFAULT_LE=y -# CT_ARCH_BE is not set -CT_ARCH_LE=y -CT_ARCH_ENDIAN="little" -CT_ARCH_SUPPORTS_32=y -CT_ARCH_SUPPORTS_64=y -CT_ARCH_DEFAULT_32=y -CT_ARCH_BITNESS=64 -# CT_ARCH_32 is not set -CT_ARCH_64=y - -# -# Target optimisations -# -CT_ARCH_SUPPORTS_WITH_ARCH=y -CT_ARCH_SUPPORTS_WITH_CPU=y -CT_ARCH_SUPPORTS_WITH_TUNE=y -CT_ARCH_EXCLUSIVE_WITH_CPU=y -CT_ARCH_ARCH="" -CT_ARCH_CPU="" -CT_ARCH_TUNE="" -CT_TARGET_CFLAGS="" -CT_TARGET_LDFLAGS="" -CT_ARCH_FLOAT="" - -# -# arm other options -# -CT_ARCH_ARM_MODE="arm" -CT_ARCH_ARM_MODE_ARM=y -# CT_ARCH_ARM_MODE_THUMB is not set -# CT_ARCH_ARM_INTERWORKING is not set -CT_ARCH_ARM_EABI_FORCE=y -CT_ARCH_ARM_EABI=y - -# -# Toolchain options -# - -# -# General toolchain options -# -CT_FORCE_SYSROOT=y -CT_USE_SYSROOT=y -CT_SYSROOT_NAME="sysroot" -CT_SYSROOT_DIR_PREFIX="" -CT_WANTS_STATIC_LINK=y -CT_WANTS_STATIC_LINK_CXX=y -# CT_STATIC_TOOLCHAIN is not set -CT_TOOLCHAIN_PKGVERSION="ONIE-${LSB_RELEASE_TAG}" -CT_TOOLCHAIN_BUGURL="" - -# -# Tuple completion and aliasing -# -CT_TARGET_VENDOR="onie" -CT_TARGET_ALIAS_SED_EXPR="" -CT_TARGET_ALIAS="x86_64" - -# -# Toolchain type -# -# CT_NATIVE is not set -CT_CROSS=y -# CT_CROSS_NATIVE is not set -# CT_CANADIAN is not set -CT_TOOLCHAIN_TYPE="cross" - -# -# Build system -# -CT_BUILD="" -CT_BUILD_PREFIX="" -CT_BUILD_SUFFIX="" - -# -# Misc options -# -CT_TOOLCHAIN_ENABLE_NLS=y - -# -# Operating System -# -CT_KERNEL_SUPPORTS_SHARED_LIBS=y -CT_KERNEL="linux" -CT_KERNEL_VERSION="${LINUX_RELEASE}" -# CT_KERNEL_bare_metal is not set -CT_KERNEL_linux=y -CT_KERNEL_bare_metal_AVAILABLE=y -CT_KERNEL_linux_AVAILABLE=y -CT_KERNEL_LINUX_CUSTOM=y -CT_KERNEL_LINUX_CUSTOM_LOCATION="${DOWNLOADDIR}/${LINUX_TARBALL}" -CT_KERNEL_LINUX_CUSTOM_VERSION="${LINUX_RELEASE}" -CT_KERNEL_windows_AVAILABLE=y - -# -# Common kernel options -# -CT_SHARED_LIBS=y - -# -# linux other options -# -CT_KERNEL_LINUX_VERBOSITY_0=y -# CT_KERNEL_LINUX_VERBOSITY_1 is not set -# CT_KERNEL_LINUX_VERBOSITY_2 is not set -CT_KERNEL_LINUX_VERBOSE_LEVEL=0 -CT_KERNEL_LINUX_INSTALL_CHECK=y - -# -# Binary utilities -# -CT_ARCH_BINFMT_ELF=y -CT_BINUTILS="binutils" -CT_BINUTILS_binutils=y - -# -# GNU binutils -# -# CT_BINUTILS_CUSTOM is not set -CT_BINUTILS_VERSION="2.28" -# CT_BINUTILS_SHOW_LINARO is not set -CT_BINUTILS_V_2_28=y -# CT_BINUTILS_V_2_27 is not set -# CT_BINUTILS_V_2_26 is not set -CT_BINUTILS_2_27_or_later=y -CT_BINUTILS_2_26_or_later=y -CT_BINUTILS_2_25_1_or_later=y -CT_BINUTILS_2_25_or_later=y -CT_BINUTILS_2_24_or_later=y -CT_BINUTILS_2_23_2_or_later=y -CT_BINUTILS_HAS_HASH_STYLE=y -CT_BINUTILS_HAS_GOLD=y -CT_BINUTILS_GOLD_SUPPORTS_ARCH=y -CT_BINUTILS_GOLD_SUPPORT=y -CT_BINUTILS_HAS_PLUGINS=y -CT_BINUTILS_HAS_PKGVERSION_BUGURL=y -CT_BINUTILS_FORCE_LD_BFD_DEFAULT=y -CT_BINUTILS_LINKER_LD=y -# CT_BINUTILS_LINKER_LD_GOLD is not set -# CT_BINUTILS_LINKER_GOLD_LD is not set -CT_BINUTILS_LINKERS_LIST="ld" -CT_BINUTILS_LINKER_DEFAULT="bfd" -# CT_BINUTILS_PLUGINS is not set -CT_BINUTILS_EXTRA_CONFIG_ARRAY="" -CT_BINUTILS_FOR_TARGET=y -CT_BINUTILS_FOR_TARGET_IBERTY=y -CT_BINUTILS_FOR_TARGET_BFD=y - -# -# binutils other options -# - -# -# C-library -# -CT_LIBC="glibc" -CT_LIBC_VERSION="2.25" -CT_LIBC_glibc=y -# CT_LIBC_musl is not set -# CT_LIBC_uClibc is not set -CT_LIBC_avr_libc_AVAILABLE=y -CT_LIBC_glibc_AVAILABLE=y -CT_THREADS="nptl" -# CT_LIBC_GLIBC_CUSTOM is not set -# CT_CC_GLIBC_SHOW_LINARO is not set -CT_LIBC_GLIBC_V_2_25=y -# CT_LIBC_GLIBC_V_2_24 is not set -# CT_LIBC_GLIBC_V_2_23 is not set -CT_LIBC_GLIBC_2_23_or_later=y -CT_LIBC_GLIBC_2_20_or_later=y -CT_LIBC_GLIBC_2_17_or_later=y -CT_LIBC_mingw_AVAILABLE=y -CT_LIBC_musl_AVAILABLE=y -CT_LIBC_newlib_AVAILABLE=y -CT_LIBC_none_AVAILABLE=y -CT_LIBC_uClibc_AVAILABLE=y -CT_LIBC_SUPPORT_THREADS_ANY=y -CT_LIBC_SUPPORT_THREADS_NATIVE=y - -# -# Common C library options -# -CT_THREADS_NATIVE=y -# CT_CREATE_LDSO_CONF is not set -CT_LIBC_XLDD=y - -# -# glibc other options -# -CT_LIBC_GLIBC_NEEDS_PORTS=y -CT_LIBC_glibc_family=y -CT_LIBC_GLIBC_EXTRA_CONFIG_ARRAY="" -CT_LIBC_GLIBC_CONFIGPARMS="" -CT_LIBC_GLIBC_EXTRA_CFLAGS="" -# CT_LIBC_ENABLE_FORTIFIED_BUILD is not set -# CT_LIBC_DISABLE_VERSIONING is not set -CT_LIBC_OLDEST_ABI="" -CT_LIBC_GLIBC_FORCE_UNWIND=y -CT_LIBC_ADDONS_LIST="" -# CT_LIBC_LOCALES is not set -# CT_LIBC_GLIBC_KERNEL_VERSION_NONE is not set -CT_LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS=y -# CT_LIBC_GLIBC_KERNEL_VERSION_CHOSEN is not set -CT_LIBC_GLIBC_MIN_KERNEL="${LINUX_RELEASE}" - -# -# C compiler -# -CT_CC="gcc" -CT_CC_CORE_PASSES_NEEDED=y -CT_CC_CORE_PASS_1_NEEDED=y -CT_CC_CORE_PASS_2_NEEDED=y -CT_CC_gcc=y -# CT_CC_GCC_CUSTOM is not set -CT_CC_GCC_VERSION="6.3.0" -# CT_CC_GCC_SHOW_LINARO is not set -CT_CC_GCC_V_6_3_0=y -# CT_CC_GCC_V_5_4_0 is not set -# CT_CC_GCC_V_4_9_4 is not set -CT_CC_GCC_4_8_or_later=y -CT_CC_GCC_4_9_or_later=y -CT_CC_GCC_5_or_later=y -CT_CC_GCC_6=y -CT_CC_GCC_6_or_later=y -CT_CC_GCC_HAS_LIBMPX=y -CT_CC_GCC_ENABLE_CXX_FLAGS="" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_STATIC_LIBSTDCXX=y -# CT_CC_GCC_SYSTEM_ZLIB is not set -CT_CC_GCC_CONFIG_TLS=m - -# -# Optimisation features -# -CT_CC_GCC_USE_GRAPHITE=y -CT_CC_GCC_USE_LTO=y - -# -# Settings for libraries running on target -# -CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y -# CT_CC_GCC_LIBMUDFLAP is not set -# CT_CC_GCC_LIBGOMP is not set -# CT_CC_GCC_LIBSSP is not set -# CT_CC_GCC_LIBQUADMATH is not set -# CT_CC_GCC_LIBSANITIZER is not set - -# -# Misc. obscure options. -# -CT_CC_CXA_ATEXIT=y -# CT_CC_GCC_DISABLE_PCH is not set -CT_CC_GCC_SJLJ_EXCEPTIONS=m -CT_CC_GCC_LDBL_128=m -# CT_CC_GCC_BUILD_ID is not set -CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y -# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set -# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set -# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set -CT_CC_GCC_LNK_HASH_STYLE="" -CT_CC_GCC_DEC_FLOAT_AUTO=y -# CT_CC_GCC_DEC_FLOAT_BID is not set -# CT_CC_GCC_DEC_FLOAT_DPD is not set -# CT_CC_GCC_DEC_FLOATS_NO is not set -CT_CC_SUPPORT_CXX=y -CT_CC_SUPPORT_FORTRAN=y -CT_CC_SUPPORT_JAVA=y -CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_OBJC=y -CT_CC_SUPPORT_OBJCXX=y -CT_CC_SUPPORT_GOLANG=y - -# -# Additional supported languages: -# -CT_CC_LANG_CXX=y -# CT_CC_LANG_FORTRAN is not set -# CT_CC_LANG_JAVA is not set -# CT_CC_LANG_ADA is not set -# CT_CC_LANG_OBJC is not set -# CT_CC_LANG_OBJCXX is not set -# CT_CC_LANG_GOLANG is not set -CT_CC_LANG_OTHERS="" - -# -# Debug facilities -# -CT_DEBUG_duma=y -CT_DUMA_SO=y -CT_DUMA_CUSTOM_WRAPPER=y -CT_DUMA_V_2_5_15=y -CT_DUMA_VERSION="2_5_15" -CT_DEBUG_gdb=y -CT_GDB_CROSS=y -# CT_GDB_CROSS_STATIC is not set -# CT_GDB_CROSS_SIM is not set -CT_GDB_CROSS_PYTHON=y -CT_GDB_CROSS_PYTHON_BINARY="" -CT_GDB_CROSS_EXTRA_CONFIG_ARRAY="" -# CT_GDB_NATIVE is not set -CT_GDB_GDBSERVER=y -CT_GDB_GDBSERVER_HAS_IPA_LIB=y -# CT_GDB_GDBSERVER_STATIC is not set -CT_GDB_GDBSERVER_BUILD_IPA_LIB=y - -# -# gdb version -# -# CT_GDB_CUSTOM is not set -CT_GDB_VERSION="7.12.1" -CT_GDB_V_7_12_1=y -# CT_GDB_V_7_11_1 is not set -CT_GDB_7_12_or_later=y -CT_GDB_7_2_or_later=y -CT_GDB_7_0_or_later=y -CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y -CT_GDB_INSTALL_GDBINIT=y -# CT_DEBUG_ltrace is not set -CT_DEBUG_strace=y -CT_STRACE_V_4_16=y -# CT_STRACE_V_4_15 is not set -CT_STRACE_VERSION="4.16" - -# -# Companion libraries -# -CT_COMPLIBS_NEEDED=y -CT_LIBICONV_NEEDED=y -CT_GETTEXT_NEEDED=y -CT_GMP_NEEDED=y -CT_MPFR_NEEDED=y -CT_ISL_NEEDED=y -CT_MPC_NEEDED=y -CT_EXPAT_NEEDED=y -CT_NCURSES_NEEDED=y -CT_COMPLIBS=y -CT_LIBICONV=y -CT_GETTEXT=y -CT_GMP=y -CT_MPFR=y -CT_ISL=y -CT_MPC=y -CT_EXPAT=y -CT_NCURSES=y -# CT_ZLIB is not set -CT_LIBICONV_V_1_15=y -# CT_LIBICONV_V_1_14 is not set -CT_LIBICONV_VERSION="1.15" -CT_GETTEXT_V_0_19_8_1=y -CT_GETTEXT_VERSION="0.19.8.1" -CT_GMP_V_6_1_2=y -CT_GMP_5_0_2_or_later=y -CT_GMP_VERSION="6.1.2" -CT_MPFR_V_3_1_5=y -CT_MPFR_VERSION="3.1.5" -# CT_ISL_V_0_18 is not set -# CT_ISL_V_0_17_1 is not set -CT_ISL_V_0_16_1=y -# CT_ISL_V_0_15 is not set -CT_ISL_V_0_16_or_later=y -CT_ISL_V_0_15_or_later=y -CT_ISL_V_0_14_or_later=y -CT_ISL_V_0_12_or_later=y -CT_ISL_VERSION="0.16.1" -CT_MPC_V_1_0_3=y -CT_MPC_VERSION="1.0.3" -CT_EXPAT_V_2_2_0=y -CT_EXPAT_VERSION="2.2.0" -CT_NCURSES_V_6_0=y -CT_NCURSES_VERSION="6.0" -# CT_NCURSES_NEW_ABI is not set -CT_NCURSES_HOST_CONFIG_ARGS="" -CT_NCURSES_HOST_DISABLE_DB=y -CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100" -CT_NCURSES_TARGET_CONFIG_ARGS="" -# CT_NCURSES_TARGET_DISABLE_DB is not set -CT_NCURSES_TARGET_FALLBACKS="" - -# -# Companion libraries common options -# -# CT_COMPLIBS_CHECK is not set - -# -# Companion tools -# -# CT_COMP_TOOLS_FOR_HOST is not set -CT_COMP_TOOLS_autoconf=y -CT_AUTOCONF_V_2_69=y -CT_AUTOCONF_VERSION="2.69" -CT_COMP_TOOLS_automake=y -CT_AUTOMAKE_V_1_15=y -CT_AUTOMAKE_VERSION="1.15" -CT_COMP_TOOLS_libtool=y -CT_LIBTOOL_V_2_4_6=y -CT_LIBTOOL_VERSION="2.4.6" -CT_COMP_TOOLS_m4=y -CT_M4_V_1_4_18=y -CT_M4_VERSION="1.4.18" -CT_COMP_TOOLS_make=y -CT_MAKE_V_4_2_1=y -# CT_MAKE_GMAKE_SYMLINK is not set -CT_MAKE_VERSION="4.2.1" - -# -# Test suite -# -# CT_TEST_SUITE_GCC is not set diff --git a/build-config/conf/crosstool/gcc-6.3.0/uClibc-ng-1.0.22/crosstool.armv7a.config b/build-config/conf/crosstool/gcc-6.3.0/uClibc-ng-1.0.22/crosstool.armv7a.config deleted file mode 100644 index 87010f529..000000000 --- a/build-config/conf/crosstool/gcc-6.3.0/uClibc-ng-1.0.22/crosstool.armv7a.config +++ /dev/null @@ -1,572 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Crosstool-NG Configuration -# -CT_CONFIGURE_has_static_link=y -CT_CONFIGURE_has_wget=y -CT_CONFIGURE_has_curl=y -CT_CONFIGURE_has_stat_flavor_GNU=y -CT_CONFIGURE_has_make_3_81_or_newer=y -CT_CONFIGURE_has_libtool_2_4_or_newer=y -CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_63_or_newer=y -CT_CONFIGURE_has_autoreconf_2_63_or_newer=y -CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y -CT_CONFIGURE_has_svn=y -CT_CONFIGURE_has_git=y -CT_MODULES=y - -# -# Paths and misc options -# - -# -# crosstool-NG behavior -# -# CT_OBSOLETE is not set -CT_EXPERIMENTAL=y -# CT_ALLOW_BUILD_AS_ROOT is not set -# CT_DEBUG_CT is not set - -# -# Paths -# -CT_LOCAL_TARBALLS_DIR="${DOWNLOADDIR}" -CT_SAVE_TARBALLS=y -CT_WORK_DIR="${CT_TOP_DIR}/build" -CT_BUILD_TOP_DIR="${CT_WORK_DIR}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" -CT_PREFIX_DIR="${XTOOLS_INSTALL_DIR}/${CT_TARGET}" -CT_RM_RF_PREFIX_DIR=y -CT_REMOVE_DOCS=y -CT_PREFIX_DIR_RO=y -CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y -CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y - -# -# Downloading -# -# CT_DOWNLOAD_AGENT_WGET is not set -# CT_DOWNLOAD_AGENT_CURL is not set -CT_DOWNLOAD_AGENT_NONE=y -CT_FORBID_DOWNLOAD=y - -# -# Extracting -# -# CT_FORCE_EXTRACT is not set -CT_OVERRIDE_CONFIG_GUESS_SUB=y -# CT_ONLY_EXTRACT is not set -# CT_PATCH_BUNDLED is not set -# CT_PATCH_LOCAL is not set -# CT_PATCH_BUNDLED_LOCAL is not set -# CT_PATCH_LOCAL_BUNDLED is not set -CT_PATCH_BUNDLED_FALLBACK_LOCAL=y -# CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set -# CT_PATCH_NONE is not set -CT_PATCH_ORDER="bundled,local" -CT_PATCH_SINGLE=y -CT_PATCH_USE_LOCAL=y -CT_LOCAL_PATCH_DIR="${CROSSTOOL_NG_LOCAL_PATCHDIR}" - -# -# Build behavior -# -CT_PARALLEL_JOBS=0 -CT_LOAD="" -CT_USE_PIPES=y -CT_EXTRA_CFLAGS_FOR_BUILD="" -CT_EXTRA_LDFLAGS_FOR_BUILD="" -CT_EXTRA_CFLAGS_FOR_HOST="" -CT_EXTRA_LDFLAGS_FOR_HOST="" -# CT_CONFIG_SHELL_SH is not set -# CT_CONFIG_SHELL_ASH is not set -CT_CONFIG_SHELL_BASH=y -# CT_CONFIG_SHELL_CUSTOM is not set -CT_CONFIG_SHELL="${bash}" - -# -# Logging -# -# CT_LOG_ERROR is not set -# CT_LOG_WARN is not set -CT_LOG_INFO=y -# CT_LOG_EXTRA is not set -# CT_LOG_ALL is not set -# CT_LOG_DEBUG is not set -CT_LOG_LEVEL_MAX="INFO" -# CT_LOG_SEE_TOOLS_WARN is not set -# CT_LOG_PROGRESS_BAR is not set -CT_LOG_TO_FILE=y -CT_LOG_FILE_COMPRESS=y - -# -# Target options -# -CT_ARCH="arm" -# CT_ARCH_alpha is not set -CT_ARCH_arm=y -# CT_ARCH_avr is not set -# CT_ARCH_m68k is not set -# CT_ARCH_microblaze is not set -# CT_ARCH_mips is not set -# CT_ARCH_nios2 is not set -# CT_ARCH_powerpc is not set -# CT_ARCH_s390 is not set -# CT_ARCH_sh is not set -# CT_ARCH_sparc is not set -# CT_ARCH_x86 is not set -# CT_ARCH_xtensa is not set -CT_ARCH_alpha_AVAILABLE=y -CT_ARCH_arm_AVAILABLE=y -CT_ARCH_avr_AVAILABLE=y -CT_ARCH_m68k_AVAILABLE=y -CT_ARCH_microblaze_AVAILABLE=y -CT_ARCH_mips_AVAILABLE=y -CT_ARCH_nios2_AVAILABLE=y -CT_ARCH_powerpc_AVAILABLE=y -CT_ARCH_s390_AVAILABLE=y -CT_ARCH_sh_AVAILABLE=y -CT_ARCH_sparc_AVAILABLE=y -CT_ARCH_x86_AVAILABLE=y -CT_ARCH_xtensa_AVAILABLE=y -CT_ARCH_SUFFIX="" - -# -# Generic target options -# -# CT_MULTILIB is not set -CT_DEMULTILIB=y -CT_ARCH_SUPPORTS_BOTH_MMU=y -CT_ARCH_DEFAULT_HAS_MMU=y -CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_BOTH_ENDIAN=y -CT_ARCH_DEFAULT_LE=y -# CT_ARCH_BE is not set -CT_ARCH_LE=y -CT_ARCH_ENDIAN="little" -CT_ARCH_SUPPORTS_32=y -CT_ARCH_SUPPORTS_64=y -CT_ARCH_DEFAULT_32=y -CT_ARCH_BITNESS=32 -CT_ARCH_32=y -# CT_ARCH_64 is not set - -# -# Target optimisations -# -CT_ARCH_SUPPORTS_WITH_ARCH=y -CT_ARCH_SUPPORTS_WITH_CPU=y -CT_ARCH_SUPPORTS_WITH_TUNE=y -CT_ARCH_SUPPORTS_WITH_FLOAT=y -CT_ARCH_SUPPORTS_WITH_FPU=y -CT_ARCH_SUPPORTS_SOFTFP=y -CT_ARCH_EXCLUSIVE_WITH_CPU=y -CT_ARCH_CPU="cortex-a9" -CT_ARCH_FPU="" -# CT_ARCH_FLOAT_AUTO is not set -# CT_ARCH_FLOAT_HW is not set -# CT_ARCH_FLOAT_SOFTFP is not set -CT_ARCH_FLOAT_SW=y -CT_TARGET_CFLAGS="" -CT_TARGET_LDFLAGS="" -CT_ARCH_FLOAT="soft" - -# -# arm other options -# -CT_ARCH_ARM_MODE="arm" -CT_ARCH_ARM_MODE_ARM=y -# CT_ARCH_ARM_MODE_THUMB is not set -# CT_ARCH_ARM_INTERWORKING is not set -CT_ARCH_ARM_EABI_FORCE=y -CT_ARCH_ARM_EABI=y - -# -# Toolchain options -# - -# -# General toolchain options -# -CT_FORCE_SYSROOT=y -CT_USE_SYSROOT=y -CT_SYSROOT_NAME="sysroot" -CT_SYSROOT_DIR_PREFIX="" -CT_WANTS_STATIC_LINK=y -CT_WANTS_STATIC_LINK_CXX=y -# CT_STATIC_TOOLCHAIN is not set -CT_TOOLCHAIN_PKGVERSION="ONIE-${LSB_RELEASE_TAG}" -CT_TOOLCHAIN_BUGURL="" - -# -# Tuple completion and aliasing -# -CT_TARGET_VENDOR="onie" -CT_TARGET_ALIAS_SED_EXPR="" -CT_TARGET_ALIAS="armv7a" - -# -# Toolchain type -# -# CT_NATIVE is not set -CT_CROSS=y -# CT_CROSS_NATIVE is not set -# CT_CANADIAN is not set -CT_TOOLCHAIN_TYPE="cross" - -# -# Build system -# -CT_BUILD="" -CT_BUILD_PREFIX="" -CT_BUILD_SUFFIX="" - -# -# Misc options -# -CT_TOOLCHAIN_ENABLE_NLS=y - -# -# Operating System -# -CT_KERNEL_SUPPORTS_SHARED_LIBS=y -CT_KERNEL="linux" -CT_KERNEL_VERSION="${LINUX_RELEASE}" -# CT_KERNEL_bare_metal is not set -CT_KERNEL_linux=y -CT_KERNEL_bare_metal_AVAILABLE=y -CT_KERNEL_linux_AVAILABLE=y -CT_KERNEL_LINUX_CUSTOM=y -CT_KERNEL_LINUX_CUSTOM_LOCATION="${DOWNLOADDIR}/${LINUX_TARBALL}" -CT_KERNEL_LINUX_CUSTOM_VERSION="${LINUX_RELEASE}" -CT_KERNEL_windows_AVAILABLE=y - -# -# Common kernel options -# -CT_SHARED_LIBS=y - -# -# linux other options -# -CT_KERNEL_LINUX_VERBOSITY_0=y -# CT_KERNEL_LINUX_VERBOSITY_1 is not set -# CT_KERNEL_LINUX_VERBOSITY_2 is not set -CT_KERNEL_LINUX_VERBOSE_LEVEL=0 -CT_KERNEL_LINUX_INSTALL_CHECK=y - -# -# Binary utilities -# -CT_ARCH_BINFMT_ELF=y -CT_BINUTILS="binutils" -CT_BINUTILS_binutils=y - -# -# GNU binutils -# -# CT_BINUTILS_CUSTOM is not set -CT_BINUTILS_VERSION="2.28" -# CT_BINUTILS_SHOW_LINARO is not set -CT_BINUTILS_V_2_28=y -# CT_BINUTILS_V_2_27 is not set -# CT_BINUTILS_V_2_26 is not set -CT_BINUTILS_2_27_or_later=y -CT_BINUTILS_2_26_or_later=y -CT_BINUTILS_2_25_1_or_later=y -CT_BINUTILS_2_25_or_later=y -CT_BINUTILS_2_24_or_later=y -CT_BINUTILS_2_23_2_or_later=y -CT_BINUTILS_HAS_HASH_STYLE=y -CT_BINUTILS_HAS_GOLD=y -CT_BINUTILS_GOLD_SUPPORTS_ARCH=y -CT_BINUTILS_GOLD_SUPPORT=y -CT_BINUTILS_HAS_PLUGINS=y -CT_BINUTILS_HAS_PKGVERSION_BUGURL=y -CT_BINUTILS_LINKER_LD=y -# CT_BINUTILS_LINKER_GOLD is not set -# CT_BINUTILS_LINKER_LD_GOLD is not set -# CT_BINUTILS_LINKER_GOLD_LD is not set -CT_BINUTILS_LINKERS_LIST="ld" -CT_BINUTILS_LINKER_DEFAULT="bfd" -# CT_BINUTILS_PLUGINS is not set -CT_BINUTILS_EXTRA_CONFIG_ARRAY="" -CT_BINUTILS_FOR_TARGET=y -CT_BINUTILS_FOR_TARGET_IBERTY=y -CT_BINUTILS_FOR_TARGET_BFD=y - -# -# binutils other options -# - -# -# C-library -# -CT_LIBC="uClibc" -CT_LIBC_VERSION="1.0.22" -# CT_LIBC_glibc is not set -# CT_LIBC_musl is not set -CT_LIBC_uClibc=y -CT_LIBC_avr_libc_AVAILABLE=y -CT_LIBC_glibc_AVAILABLE=y -CT_THREADS="nptl" -CT_LIBC_mingw_AVAILABLE=y -CT_LIBC_musl_AVAILABLE=y -CT_LIBC_newlib_AVAILABLE=y -CT_LIBC_none_AVAILABLE=y -CT_LIBC_uClibc_AVAILABLE=y -# CT_LIBC_UCLIBC_CUSTOM is not set -CT_LIBC_UCLIBC_NG_V_1_0_22=y -CT_LIBC_UCLIBC_NG_1_0_15_or_later=y -CT_LIBC_UCLIBC_NG_1_0_0_or_later=y -CT_LIBC_UCLIBC_0_9_33_2_or_later=y -CT_LIBC_UCLIBC_PARALLEL=y -CT_LIBC_UCLIBC_NG=y -CT_LIBC_UCLIBC_VERBOSITY_0=y -# CT_LIBC_UCLIBC_VERBOSITY_1 is not set -# CT_LIBC_UCLIBC_VERBOSITY_2 is not set -CT_LIBC_UCLIBC_VERBOSITY="" -CT_LIBC_UCLIBC_DEBUG_LEVEL_0=y -# CT_LIBC_UCLIBC_DEBUG_LEVEL_1 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_2 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_3 is not set -CT_LIBC_UCLIBC_DEBUG_LEVEL=0 -CT_LIBC_UCLIBC_CONFIG_FILE="${UCLIBC_CONFIG}" -CT_LIBC_SUPPORT_THREADS_ANY=y -CT_LIBC_SUPPORT_THREADS_NATIVE=y -CT_LIBC_SUPPORT_THREADS_LT=y -CT_LIBC_SUPPORT_THREADS_NONE=y - -# -# Common C library options -# -CT_THREADS_NATIVE=y -# CT_THREADS_LT is not set -# CT_THREADS_NONE is not set -# CT_CREATE_LDSO_CONF is not set -CT_LIBC_XLDD=y - -# -# uClibc other options -# -CT_LIBC_UCLIBC_LNXTHRD="" -# CT_LIBC_UCLIBC_LOCALES is not set -CT_LIBC_UCLIBC_IPV6=y -CT_LIBC_UCLIBC_WCHAR=y -CT_LIBC_UCLIBC_FENV=y -# CT_LIBC_UCLIBC_RPC is not set -CT_LIBC_UCLIBC_USE_GNU_SUFFIX=y - -# -# C compiler -# -CT_CC="gcc" -CT_CC_CORE_PASSES_NEEDED=y -CT_CC_CORE_PASS_1_NEEDED=y -CT_CC_CORE_PASS_2_NEEDED=y -CT_CC_gcc=y -# CT_CC_GCC_CUSTOM is not set -CT_CC_GCC_VERSION="6.3.0" -# CT_CC_GCC_SHOW_LINARO is not set -CT_CC_GCC_V_6_3_0=y -# CT_CC_GCC_V_5_4_0 is not set -# CT_CC_GCC_V_4_9_4 is not set -CT_CC_GCC_4_8_or_later=y -CT_CC_GCC_4_9_or_later=y -CT_CC_GCC_5_or_later=y -CT_CC_GCC_6=y -CT_CC_GCC_6_or_later=y -CT_CC_GCC_HAS_LIBMPX=y -CT_CC_GCC_ENABLE_CXX_FLAGS="" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_STATIC_LIBSTDCXX=y -# CT_CC_GCC_SYSTEM_ZLIB is not set -CT_CC_GCC_CONFIG_TLS=m - -# -# Optimisation features -# -CT_CC_GCC_USE_GRAPHITE=y -CT_CC_GCC_USE_LTO=y - -# -# Settings for libraries running on target -# -CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y -# CT_CC_GCC_LIBMUDFLAP is not set -# CT_CC_GCC_LIBGOMP is not set -# CT_CC_GCC_LIBSSP is not set -# CT_CC_GCC_LIBQUADMATH is not set - -# -# Misc. obscure options. -# -CT_CC_CXA_ATEXIT=y -# CT_CC_GCC_DISABLE_PCH is not set -CT_CC_GCC_SJLJ_EXCEPTIONS=m -CT_CC_GCC_LDBL_128=m -# CT_CC_GCC_BUILD_ID is not set -CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y -# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set -# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set -# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set -CT_CC_GCC_LNK_HASH_STYLE="" -CT_CC_GCC_DEC_FLOAT_AUTO=y -# CT_CC_GCC_DEC_FLOAT_BID is not set -# CT_CC_GCC_DEC_FLOAT_DPD is not set -# CT_CC_GCC_DEC_FLOATS_NO is not set -CT_CC_SUPPORT_CXX=y -CT_CC_SUPPORT_FORTRAN=y -CT_CC_SUPPORT_JAVA=y -CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_OBJC=y -CT_CC_SUPPORT_OBJCXX=y -CT_CC_SUPPORT_GOLANG=y - -# -# Additional supported languages: -# -CT_CC_LANG_CXX=y -# CT_CC_LANG_FORTRAN is not set -# CT_CC_LANG_JAVA is not set -# CT_CC_LANG_ADA is not set -# CT_CC_LANG_OBJC is not set -# CT_CC_LANG_OBJCXX is not set -# CT_CC_LANG_GOLANG is not set -CT_CC_LANG_OTHERS="" - -# -# Debug facilities -# -CT_DEBUG_duma=y -CT_DUMA_SO=y -CT_DUMA_CUSTOM_WRAPPER=y -CT_DUMA_V_2_5_15=y -CT_DUMA_VERSION="2_5_15" -CT_DEBUG_gdb=y -CT_GDB_CROSS=y -# CT_GDB_CROSS_STATIC is not set -# CT_GDB_CROSS_SIM is not set -CT_GDB_CROSS_PYTHON=y -CT_GDB_CROSS_PYTHON_BINARY="" -CT_GDB_CROSS_EXTRA_CONFIG_ARRAY="" -# CT_GDB_NATIVE is not set -CT_GDB_GDBSERVER=y -CT_GDB_GDBSERVER_HAS_IPA_LIB=y -# CT_GDB_GDBSERVER_STATIC is not set -# CT_GDB_GDBSERVER_BUILD_IPA_LIB is not set - -# -# gdb version -# -# CT_GDB_CUSTOM is not set -CT_GDB_VERSION="7.12.1" -CT_GDB_V_7_12_1=y -# CT_GDB_V_7_11_1 is not set -CT_GDB_7_12_or_later=y -CT_GDB_7_2_or_later=y -CT_GDB_7_0_or_later=y -CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y -CT_GDB_INSTALL_GDBINIT=y -CT_DEBUG_ltrace=y -CT_LTRACE_V_0_7_3=y -CT_LTRACE_VERSION="0.7.3" -CT_DEBUG_strace=y -CT_STRACE_V_4_16=y -# CT_STRACE_V_4_15 is not set -CT_STRACE_VERSION="4.16" - -# -# Companion libraries -# -CT_COMPLIBS_NEEDED=y -CT_LIBICONV_NEEDED=y -CT_GETTEXT_NEEDED=y -CT_GMP_NEEDED=y -CT_MPFR_NEEDED=y -CT_ISL_NEEDED=y -CT_MPC_NEEDED=y -CT_EXPAT_NEEDED=y -CT_NCURSES_NEEDED=y -CT_COMPLIBS=y -CT_LIBICONV=y -CT_GETTEXT=y -CT_GMP=y -CT_MPFR=y -CT_ISL=y -CT_MPC=y -CT_LIBELF_TARGET=y -CT_EXPAT=y -CT_NCURSES=y -# CT_ZLIB is not set -CT_LIBICONV_V_1_15=y -# CT_LIBICONV_V_1_14 is not set -CT_LIBICONV_VERSION="1.15" -CT_GETTEXT_V_0_19_8_1=y -CT_GETTEXT_VERSION="0.19.8.1" -CT_GMP_V_6_1_2=y -CT_GMP_5_0_2_or_later=y -CT_GMP_VERSION="6.1.2" -CT_MPFR_V_3_1_5=y -CT_MPFR_VERSION="3.1.5" -# CT_ISL_V_0_18 is not set -# CT_ISL_V_0_17_1 is not set -CT_ISL_V_0_16_1=y -# CT_ISL_V_0_15 is not set -CT_ISL_V_0_16_or_later=y -CT_ISL_V_0_15_or_later=y -CT_ISL_V_0_14_or_later=y -CT_ISL_V_0_12_or_later=y -CT_ISL_VERSION="0.16.1" -CT_MPC_V_1_0_3=y -CT_MPC_VERSION="1.0.3" - -# -# libelf version needed to build for target -# -CT_LIBELF_V_0_8_13=y -CT_LIBELF_VERSION="0.8.13" -CT_EXPAT_V_2_2_0=y -CT_EXPAT_VERSION="2.2.0" -CT_NCURSES_V_6_0=y -CT_NCURSES_VERSION="6.0" -# CT_NCURSES_NEW_ABI is not set -CT_NCURSES_HOST_CONFIG_ARGS="" -CT_NCURSES_HOST_DISABLE_DB=y -CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100" -CT_NCURSES_TARGET_CONFIG_ARGS="" -# CT_NCURSES_TARGET_DISABLE_DB is not set -CT_NCURSES_TARGET_FALLBACKS="" - -# -# Companion libraries common options -# -# CT_COMPLIBS_CHECK is not set - -# -# Companion tools -# -# CT_COMP_TOOLS_FOR_HOST is not set -CT_COMP_TOOLS_autoconf=y -CT_AUTOCONF_V_2_69=y -CT_AUTOCONF_VERSION="2.69" -CT_COMP_TOOLS_automake=y -CT_AUTOMAKE_V_1_15=y -CT_AUTOMAKE_VERSION="1.15" -CT_COMP_TOOLS_libtool=y -CT_LIBTOOL_V_2_4_6=y -CT_LIBTOOL_VERSION="2.4.6" -CT_COMP_TOOLS_m4=y -CT_M4_V_1_4_18=y -CT_M4_VERSION="1.4.18" -CT_COMP_TOOLS_make=y -CT_MAKE_V_4_2_1=y -# CT_MAKE_GMAKE_SYMLINK is not set -CT_MAKE_VERSION="4.2.1" - -# -# Test suite -# -# CT_TEST_SUITE_GCC is not set diff --git a/build-config/conf/crosstool/gcc-6.3.0/uClibc-ng-1.0.22/crosstool.powerpc-softfloat.config b/build-config/conf/crosstool/gcc-6.3.0/uClibc-ng-1.0.22/crosstool.powerpc-softfloat.config deleted file mode 100644 index 1bf141c61..000000000 --- a/build-config/conf/crosstool/gcc-6.3.0/uClibc-ng-1.0.22/crosstool.powerpc-softfloat.config +++ /dev/null @@ -1,558 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Crosstool-NG Configuration -# -CT_CONFIGURE_has_static_link=y -CT_CONFIGURE_has_wget=y -CT_CONFIGURE_has_curl=y -CT_CONFIGURE_has_stat_flavor_GNU=y -CT_CONFIGURE_has_make_3_81_or_newer=y -CT_CONFIGURE_has_libtool_2_4_or_newer=y -CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_63_or_newer=y -CT_CONFIGURE_has_autoreconf_2_63_or_newer=y -CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y -CT_CONFIGURE_has_svn=y -CT_CONFIGURE_has_git=y -CT_MODULES=y - -# -# Paths and misc options -# - -# -# crosstool-NG behavior -# -# CT_OBSOLETE is not set -CT_EXPERIMENTAL=y -# CT_ALLOW_BUILD_AS_ROOT is not set -# CT_DEBUG_CT is not set - -# -# Paths -# -CT_LOCAL_TARBALLS_DIR="${DOWNLOADDIR}" -CT_SAVE_TARBALLS=y -CT_WORK_DIR="${CT_TOP_DIR}/build" -CT_BUILD_TOP_DIR="${CT_WORK_DIR}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" -CT_PREFIX_DIR="${XTOOLS_INSTALL_DIR}/${CT_TARGET}" -CT_RM_RF_PREFIX_DIR=y -CT_REMOVE_DOCS=y -CT_PREFIX_DIR_RO=y -CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y -CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y - -# -# Downloading -# -# CT_DOWNLOAD_AGENT_WGET is not set -# CT_DOWNLOAD_AGENT_CURL is not set -CT_DOWNLOAD_AGENT_NONE=y -CT_FORBID_DOWNLOAD=y - -# -# Extracting -# -# CT_FORCE_EXTRACT is not set -CT_OVERRIDE_CONFIG_GUESS_SUB=y -# CT_ONLY_EXTRACT is not set -# CT_PATCH_BUNDLED is not set -# CT_PATCH_LOCAL is not set -# CT_PATCH_BUNDLED_LOCAL is not set -# CT_PATCH_LOCAL_BUNDLED is not set -CT_PATCH_BUNDLED_FALLBACK_LOCAL=y -# CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set -# CT_PATCH_NONE is not set -CT_PATCH_ORDER="bundled,local" -CT_PATCH_SINGLE=y -CT_PATCH_USE_LOCAL=y -CT_LOCAL_PATCH_DIR="${CROSSTOOL_NG_LOCAL_PATCHDIR}" - -# -# Build behavior -# -CT_PARALLEL_JOBS=0 -CT_LOAD="" -CT_USE_PIPES=y -CT_EXTRA_CFLAGS_FOR_BUILD="" -CT_EXTRA_LDFLAGS_FOR_BUILD="" -CT_EXTRA_CFLAGS_FOR_HOST="" -CT_EXTRA_LDFLAGS_FOR_HOST="" -# CT_CONFIG_SHELL_SH is not set -# CT_CONFIG_SHELL_ASH is not set -CT_CONFIG_SHELL_BASH=y -# CT_CONFIG_SHELL_CUSTOM is not set -CT_CONFIG_SHELL="${bash}" - -# -# Logging -# -# CT_LOG_ERROR is not set -# CT_LOG_WARN is not set -CT_LOG_INFO=y -# CT_LOG_EXTRA is not set -# CT_LOG_ALL is not set -# CT_LOG_DEBUG is not set -CT_LOG_LEVEL_MAX="INFO" -# CT_LOG_SEE_TOOLS_WARN is not set -# CT_LOG_PROGRESS_BAR is not set -CT_LOG_TO_FILE=y -CT_LOG_FILE_COMPRESS=y - -# -# Target options -# -CT_ARCH="powerpc" -# CT_ARCH_alpha is not set -# CT_ARCH_arm is not set -# CT_ARCH_avr is not set -# CT_ARCH_m68k is not set -# CT_ARCH_microblaze is not set -# CT_ARCH_mips is not set -# CT_ARCH_nios2 is not set -CT_ARCH_powerpc=y -# CT_ARCH_s390 is not set -# CT_ARCH_sh is not set -# CT_ARCH_sparc is not set -# CT_ARCH_x86 is not set -# CT_ARCH_xtensa is not set -CT_ARCH_alpha_AVAILABLE=y -CT_ARCH_arm_AVAILABLE=y -CT_ARCH_avr_AVAILABLE=y -CT_ARCH_m68k_AVAILABLE=y -CT_ARCH_microblaze_AVAILABLE=y -CT_ARCH_mips_AVAILABLE=y -CT_ARCH_nios2_AVAILABLE=y -CT_ARCH_powerpc_AVAILABLE=y -CT_ARCH_s390_AVAILABLE=y -CT_ARCH_sh_AVAILABLE=y -CT_ARCH_sparc_AVAILABLE=y -CT_ARCH_x86_AVAILABLE=y -CT_ARCH_xtensa_AVAILABLE=y -CT_ARCH_SUFFIX="" - -# -# Generic target options -# -# CT_MULTILIB is not set -CT_DEMULTILIB=y -CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_BOTH_ENDIAN=y -CT_ARCH_DEFAULT_BE=y -CT_ARCH_BE=y -# CT_ARCH_LE is not set -CT_ARCH_ENDIAN="big" -CT_ARCH_SUPPORTS_32=y -CT_ARCH_SUPPORTS_64=y -CT_ARCH_DEFAULT_32=y -CT_ARCH_BITNESS=32 -CT_ARCH_32=y -# CT_ARCH_64 is not set - -# -# Target optimisations -# -CT_ARCH_SUPPORTS_WITH_ABI=y -CT_ARCH_SUPPORTS_WITH_CPU=y -CT_ARCH_SUPPORTS_WITH_TUNE=y -CT_ARCH_SUPPORTS_WITH_FLOAT=y -CT_ARCH_ABI="" -CT_ARCH_CPU="" -CT_ARCH_TUNE="" -# CT_ARCH_FLOAT_AUTO is not set -# CT_ARCH_FLOAT_HW is not set -CT_ARCH_FLOAT_SW=y -CT_TARGET_CFLAGS="" -CT_TARGET_LDFLAGS="" -CT_ARCH_FLOAT="soft" - -# -# powerpc other options -# -CT_ARCH_powerpc_ABI="" -CT_ARCH_powerpc_ABI_DEFAULT=y -# CT_ARCH_powerpc_ABI_SPE is not set - -# -# Toolchain options -# - -# -# General toolchain options -# -CT_FORCE_SYSROOT=y -CT_USE_SYSROOT=y -CT_SYSROOT_NAME="sysroot" -CT_SYSROOT_DIR_PREFIX="" -CT_WANTS_STATIC_LINK=y -CT_WANTS_STATIC_LINK_CXX=y -# CT_STATIC_TOOLCHAIN is not set -CT_TOOLCHAIN_PKGVERSION="ONIE-${LSB_RELEASE_TAG}" -CT_TOOLCHAIN_BUGURL="" - -# -# Tuple completion and aliasing -# -CT_TARGET_VENDOR="onie" -CT_TARGET_ALIAS_SED_EXPR="" -CT_TARGET_ALIAS="powerpc-softfloat" - -# -# Toolchain type -# -# CT_NATIVE is not set -CT_CROSS=y -# CT_CROSS_NATIVE is not set -# CT_CANADIAN is not set -CT_TOOLCHAIN_TYPE="cross" - -# -# Build system -# -CT_BUILD="" -CT_BUILD_PREFIX="" -CT_BUILD_SUFFIX="" - -# -# Misc options -# -CT_TOOLCHAIN_ENABLE_NLS=y - -# -# Operating System -# -CT_KERNEL_SUPPORTS_SHARED_LIBS=y -CT_KERNEL="linux" -CT_KERNEL_VERSION="${LINUX_RELEASE}" -# CT_KERNEL_bare_metal is not set -CT_KERNEL_linux=y -CT_KERNEL_bare_metal_AVAILABLE=y -CT_KERNEL_linux_AVAILABLE=y -CT_KERNEL_LINUX_CUSTOM=y -CT_KERNEL_LINUX_CUSTOM_LOCATION="${DOWNLOADDIR}/${LINUX_TARBALL}" -CT_KERNEL_LINUX_CUSTOM_VERSION="${LINUX_RELEASE}" -CT_KERNEL_windows_AVAILABLE=y - -# -# Common kernel options -# -CT_SHARED_LIBS=y - -# -# linux other options -# -CT_KERNEL_LINUX_VERBOSITY_0=y -# CT_KERNEL_LINUX_VERBOSITY_1 is not set -# CT_KERNEL_LINUX_VERBOSITY_2 is not set -CT_KERNEL_LINUX_VERBOSE_LEVEL=0 -CT_KERNEL_LINUX_INSTALL_CHECK=y - -# -# Binary utilities -# -CT_ARCH_BINFMT_ELF=y -CT_BINUTILS="binutils" -CT_BINUTILS_binutils=y - -# -# GNU binutils -# -# CT_BINUTILS_CUSTOM is not set -CT_BINUTILS_VERSION="2.28" -# CT_BINUTILS_SHOW_LINARO is not set -CT_BINUTILS_V_2_28=y -# CT_BINUTILS_V_2_27 is not set -# CT_BINUTILS_V_2_26 is not set -CT_BINUTILS_2_27_or_later=y -CT_BINUTILS_2_26_or_later=y -CT_BINUTILS_2_25_1_or_later=y -CT_BINUTILS_2_25_or_later=y -CT_BINUTILS_2_24_or_later=y -CT_BINUTILS_2_23_2_or_later=y -CT_BINUTILS_HAS_HASH_STYLE=y -CT_BINUTILS_HAS_GOLD=y -CT_BINUTILS_HAS_PLUGINS=y -CT_BINUTILS_HAS_PKGVERSION_BUGURL=y -CT_BINUTILS_LINKER_LD=y -CT_BINUTILS_LINKERS_LIST="ld" -CT_BINUTILS_LINKER_DEFAULT="bfd" -# CT_BINUTILS_PLUGINS is not set -CT_BINUTILS_EXTRA_CONFIG_ARRAY="--enable-64-bit-bfd" -CT_BINUTILS_FOR_TARGET=y -CT_BINUTILS_FOR_TARGET_IBERTY=y -CT_BINUTILS_FOR_TARGET_BFD=y - -# -# binutils other options -# - -# -# C-library -# -CT_LIBC="uClibc" -CT_LIBC_VERSION="1.0.22" -# CT_LIBC_glibc is not set -# CT_LIBC_musl is not set -CT_LIBC_uClibc=y -CT_LIBC_avr_libc_AVAILABLE=y -CT_LIBC_glibc_AVAILABLE=y -CT_THREADS="nptl" -CT_LIBC_mingw_AVAILABLE=y -CT_LIBC_musl_AVAILABLE=y -CT_LIBC_newlib_AVAILABLE=y -CT_LIBC_none_AVAILABLE=y -CT_LIBC_uClibc_AVAILABLE=y -# CT_LIBC_UCLIBC_CUSTOM is not set -CT_LIBC_UCLIBC_NG_V_1_0_22=y -CT_LIBC_UCLIBC_NG_1_0_15_or_later=y -CT_LIBC_UCLIBC_NG_1_0_0_or_later=y -CT_LIBC_UCLIBC_0_9_33_2_or_later=y -CT_LIBC_UCLIBC_PARALLEL=y -CT_LIBC_UCLIBC_NG=y -CT_LIBC_UCLIBC_VERBOSITY_0=y -# CT_LIBC_UCLIBC_VERBOSITY_1 is not set -# CT_LIBC_UCLIBC_VERBOSITY_2 is not set -CT_LIBC_UCLIBC_VERBOSITY="" -CT_LIBC_UCLIBC_DEBUG_LEVEL_0=y -# CT_LIBC_UCLIBC_DEBUG_LEVEL_1 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_2 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_3 is not set -CT_LIBC_UCLIBC_DEBUG_LEVEL=0 -CT_LIBC_UCLIBC_CONFIG_FILE="${UCLIBC_CONFIG}" -CT_LIBC_SUPPORT_THREADS_ANY=y -CT_LIBC_SUPPORT_THREADS_NATIVE=y -CT_LIBC_SUPPORT_THREADS_LT=y -CT_LIBC_SUPPORT_THREADS_NONE=y - -# -# Common C library options -# -CT_THREADS_NATIVE=y -# CT_THREADS_LT is not set -# CT_THREADS_NONE is not set -# CT_CREATE_LDSO_CONF is not set -CT_LIBC_XLDD=y - -# -# uClibc other options -# -CT_LIBC_UCLIBC_LNXTHRD="" -# CT_LIBC_UCLIBC_LOCALES is not set -CT_LIBC_UCLIBC_IPV6=y -CT_LIBC_UCLIBC_WCHAR=y -CT_LIBC_UCLIBC_FENV=y -# CT_LIBC_UCLIBC_RPC is not set - -# -# C compiler -# -CT_CC="gcc" -CT_CC_CORE_PASSES_NEEDED=y -CT_CC_CORE_PASS_1_NEEDED=y -CT_CC_CORE_PASS_2_NEEDED=y -CT_CC_gcc=y -# CT_CC_GCC_CUSTOM is not set -CT_CC_GCC_VERSION="6.3.0" -# CT_CC_GCC_SHOW_LINARO is not set -CT_CC_GCC_V_6_3_0=y -# CT_CC_GCC_V_5_4_0 is not set -# CT_CC_GCC_V_4_9_4 is not set -CT_CC_GCC_4_8_or_later=y -CT_CC_GCC_4_9_or_later=y -CT_CC_GCC_5_or_later=y -CT_CC_GCC_6=y -CT_CC_GCC_6_or_later=y -CT_CC_GCC_HAS_LIBMPX=y -CT_CC_GCC_ENABLE_CXX_FLAGS="" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="--enable-targets=powerpc64" -CT_CC_GCC_STATIC_LIBSTDCXX=y -# CT_CC_GCC_SYSTEM_ZLIB is not set -CT_CC_GCC_CONFIG_TLS=m - -# -# Optimisation features -# -CT_CC_GCC_USE_GRAPHITE=y -CT_CC_GCC_USE_LTO=y - -# -# Settings for libraries running on target -# -CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y -# CT_CC_GCC_LIBMUDFLAP is not set -# CT_CC_GCC_LIBGOMP is not set -# CT_CC_GCC_LIBSSP is not set -# CT_CC_GCC_LIBQUADMATH is not set - -# -# Misc. obscure options. -# -CT_CC_CXA_ATEXIT=y -# CT_CC_GCC_DISABLE_PCH is not set -CT_CC_GCC_SJLJ_EXCEPTIONS=m -CT_CC_GCC_LDBL_128=m -# CT_CC_GCC_BUILD_ID is not set -CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y -# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set -# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set -# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set -CT_CC_GCC_LNK_HASH_STYLE="" -CT_CC_GCC_DEC_FLOAT_AUTO=y -# CT_CC_GCC_DEC_FLOAT_BID is not set -# CT_CC_GCC_DEC_FLOAT_DPD is not set -# CT_CC_GCC_DEC_FLOATS_NO is not set -CT_CC_SUPPORT_CXX=y -CT_CC_SUPPORT_FORTRAN=y -CT_CC_SUPPORT_JAVA=y -CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_OBJC=y -CT_CC_SUPPORT_OBJCXX=y -CT_CC_SUPPORT_GOLANG=y - -# -# Additional supported languages: -# -CT_CC_LANG_CXX=y -# CT_CC_LANG_FORTRAN is not set -# CT_CC_LANG_JAVA is not set -# CT_CC_LANG_ADA is not set -# CT_CC_LANG_OBJC is not set -# CT_CC_LANG_OBJCXX is not set -# CT_CC_LANG_GOLANG is not set -CT_CC_LANG_OTHERS="" - -# -# Debug facilities -# -CT_DEBUG_duma=y -CT_DUMA_SO=y -CT_DUMA_CUSTOM_WRAPPER=y -CT_DUMA_V_2_5_15=y -CT_DUMA_VERSION="2_5_15" -CT_DEBUG_gdb=y -CT_GDB_CROSS=y -# CT_GDB_CROSS_STATIC is not set -# CT_GDB_CROSS_SIM is not set -CT_GDB_CROSS_PYTHON=y -CT_GDB_CROSS_PYTHON_BINARY="" -CT_GDB_CROSS_EXTRA_CONFIG_ARRAY="" -# CT_GDB_NATIVE is not set -CT_GDB_GDBSERVER=y -CT_GDB_GDBSERVER_HAS_IPA_LIB=y -# CT_GDB_GDBSERVER_STATIC is not set -# CT_GDB_GDBSERVER_BUILD_IPA_LIB is not set - -# -# gdb version -# -# CT_GDB_CUSTOM is not set -CT_GDB_VERSION="7.12.1" -CT_GDB_V_7_12_1=y -# CT_GDB_V_7_11_1 is not set -CT_GDB_7_12_or_later=y -CT_GDB_7_2_or_later=y -CT_GDB_7_0_or_later=y -CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y -CT_GDB_INSTALL_GDBINIT=y -CT_DEBUG_ltrace=y -CT_LTRACE_V_0_7_3=y -CT_LTRACE_VERSION="0.7.3" -CT_DEBUG_strace=y -CT_STRACE_V_4_16=y -# CT_STRACE_V_4_15 is not set -CT_STRACE_VERSION="4.16" - -# -# Companion libraries -# -CT_COMPLIBS_NEEDED=y -CT_LIBICONV_NEEDED=y -CT_GETTEXT_NEEDED=y -CT_GMP_NEEDED=y -CT_MPFR_NEEDED=y -CT_ISL_NEEDED=y -CT_MPC_NEEDED=y -CT_EXPAT_NEEDED=y -CT_NCURSES_NEEDED=y -CT_COMPLIBS=y -CT_LIBICONV=y -CT_GETTEXT=y -CT_GMP=y -CT_MPFR=y -CT_ISL=y -CT_MPC=y -CT_LIBELF_TARGET=y -CT_EXPAT=y -CT_NCURSES=y -# CT_ZLIB is not set -CT_LIBICONV_V_1_15=y -# CT_LIBICONV_V_1_14 is not set -CT_LIBICONV_VERSION="1.15" -CT_GETTEXT_V_0_19_8_1=y -CT_GETTEXT_VERSION="0.19.8.1" -CT_GMP_V_6_1_2=y -CT_GMP_5_0_2_or_later=y -CT_GMP_VERSION="6.1.2" -CT_MPFR_V_3_1_5=y -CT_MPFR_VERSION="3.1.5" -# CT_ISL_V_0_18 is not set -# CT_ISL_V_0_17_1 is not set -CT_ISL_V_0_16_1=y -# CT_ISL_V_0_15 is not set -CT_ISL_V_0_16_or_later=y -CT_ISL_V_0_15_or_later=y -CT_ISL_V_0_14_or_later=y -CT_ISL_V_0_12_or_later=y -CT_ISL_VERSION="0.16.1" -CT_MPC_V_1_0_3=y -CT_MPC_VERSION="1.0.3" - -# -# libelf version needed to build for target -# -CT_LIBELF_V_0_8_13=y -CT_LIBELF_VERSION="0.8.13" -CT_EXPAT_V_2_2_0=y -CT_EXPAT_VERSION="2.2.0" -CT_NCURSES_V_6_0=y -CT_NCURSES_VERSION="6.0" -# CT_NCURSES_NEW_ABI is not set -CT_NCURSES_HOST_CONFIG_ARGS="" -CT_NCURSES_HOST_DISABLE_DB=y -CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100" -CT_NCURSES_TARGET_CONFIG_ARGS="" -# CT_NCURSES_TARGET_DISABLE_DB is not set -CT_NCURSES_TARGET_FALLBACKS="" - -# -# Companion libraries common options -# -# CT_COMPLIBS_CHECK is not set - -# -# Companion tools -# -# CT_COMP_TOOLS_FOR_HOST is not set -CT_COMP_TOOLS_autoconf=y -CT_AUTOCONF_V_2_69=y -CT_AUTOCONF_VERSION="2.69" -CT_COMP_TOOLS_automake=y -CT_AUTOMAKE_V_1_15=y -CT_AUTOMAKE_VERSION="1.15" -CT_COMP_TOOLS_libtool=y -CT_LIBTOOL_V_2_4_6=y -CT_LIBTOOL_VERSION="2.4.6" -CT_COMP_TOOLS_m4=y -CT_M4_V_1_4_18=y -CT_M4_VERSION="1.4.18" -CT_COMP_TOOLS_make=y -CT_MAKE_V_4_2_1=y -# CT_MAKE_GMAKE_SYMLINK is not set -CT_MAKE_VERSION="4.2.1" - -# -# Test suite -# -# CT_TEST_SUITE_GCC is not set diff --git a/build-config/conf/crosstool/gcc-6.3.0/uClibc-ng-1.0.22/crosstool.x86_64.config b/build-config/conf/crosstool/gcc-6.3.0/uClibc-ng-1.0.22/crosstool.x86_64.config deleted file mode 100644 index 5cd3dcde6..000000000 --- a/build-config/conf/crosstool/gcc-6.3.0/uClibc-ng-1.0.22/crosstool.x86_64.config +++ /dev/null @@ -1,525 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# Crosstool-NG Configuration -# -CT_CONFIGURE_has_static_link=y -CT_CONFIGURE_has_wget=y -CT_CONFIGURE_has_curl=y -CT_CONFIGURE_has_stat_flavor_GNU=y -CT_CONFIGURE_has_make_3_81_or_newer=y -CT_CONFIGURE_has_libtool_2_4_or_newer=y -CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_63_or_newer=y -CT_CONFIGURE_has_autoreconf_2_63_or_newer=y -CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y -CT_CONFIGURE_has_svn=y -CT_CONFIGURE_has_git=y -CT_MODULES=y - -# -# Paths and misc options -# - -# -# crosstool-NG behavior -# -# CT_OBSOLETE is not set -# CT_EXPERIMENTAL is not set -# CT_DEBUG_CT is not set - -# -# Paths -# -CT_LOCAL_TARBALLS_DIR="${DOWNLOADDIR}" -CT_SAVE_TARBALLS=y -CT_WORK_DIR="${CT_TOP_DIR}/build" -CT_BUILD_TOP_DIR="${CT_WORK_DIR}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" -CT_PREFIX_DIR="${XTOOLS_INSTALL_DIR}/${CT_TARGET}" -CT_RM_RF_PREFIX_DIR=y -CT_REMOVE_DOCS=y -CT_PREFIX_DIR_RO=y -CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y -CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y - -# -# Downloading -# -# CT_DOWNLOAD_AGENT_WGET is not set -# CT_DOWNLOAD_AGENT_CURL is not set -CT_DOWNLOAD_AGENT_NONE=y -CT_FORBID_DOWNLOAD=y - -# -# Extracting -# -# CT_FORCE_EXTRACT is not set -CT_OVERRIDE_CONFIG_GUESS_SUB=y -# CT_ONLY_EXTRACT is not set -# CT_PATCH_BUNDLED is not set -# CT_PATCH_LOCAL is not set -# CT_PATCH_BUNDLED_LOCAL is not set -# CT_PATCH_LOCAL_BUNDLED is not set -CT_PATCH_BUNDLED_FALLBACK_LOCAL=y -# CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set -# CT_PATCH_NONE is not set -CT_PATCH_ORDER="bundled,local" -CT_PATCH_SINGLE=y -CT_PATCH_USE_LOCAL=y -CT_LOCAL_PATCH_DIR="${CROSSTOOL_NG_LOCAL_PATCHDIR}" - -# -# Build behavior -# -CT_PARALLEL_JOBS=0 -CT_LOAD="" -CT_USE_PIPES=y -CT_EXTRA_CFLAGS_FOR_BUILD="" -CT_EXTRA_LDFLAGS_FOR_BUILD="" -CT_EXTRA_CFLAGS_FOR_HOST="" -CT_EXTRA_LDFLAGS_FOR_HOST="" -# CT_CONFIG_SHELL_SH is not set -# CT_CONFIG_SHELL_ASH is not set -CT_CONFIG_SHELL_BASH=y -# CT_CONFIG_SHELL_CUSTOM is not set -CT_CONFIG_SHELL="${bash}" - -# -# Logging -# -# CT_LOG_ERROR is not set -# CT_LOG_WARN is not set -CT_LOG_INFO=y -# CT_LOG_EXTRA is not set -# CT_LOG_ALL is not set -# CT_LOG_DEBUG is not set -CT_LOG_LEVEL_MAX="INFO" -# CT_LOG_SEE_TOOLS_WARN is not set -# CT_LOG_PROGRESS_BAR is not set -CT_LOG_TO_FILE=y -CT_LOG_FILE_COMPRESS=y - -# -# Target options -# -CT_ARCH="x86" -# CT_ARCH_alpha is not set -# CT_ARCH_arm is not set -# CT_ARCH_avr is not set -# CT_ARCH_m68k is not set -# CT_ARCH_mips is not set -# CT_ARCH_nios2 is not set -# CT_ARCH_powerpc is not set -# CT_ARCH_s390 is not set -# CT_ARCH_sh is not set -# CT_ARCH_sparc is not set -CT_ARCH_x86=y -# CT_ARCH_xtensa is not set -CT_ARCH_alpha_AVAILABLE=y -CT_ARCH_arm_AVAILABLE=y -CT_ARCH_avr_AVAILABLE=y -CT_ARCH_m68k_AVAILABLE=y -CT_ARCH_microblaze_AVAILABLE=y -CT_ARCH_mips_AVAILABLE=y -CT_ARCH_nios2_AVAILABLE=y -CT_ARCH_powerpc_AVAILABLE=y -CT_ARCH_s390_AVAILABLE=y -CT_ARCH_sh_AVAILABLE=y -CT_ARCH_sparc_AVAILABLE=y -CT_ARCH_x86_AVAILABLE=y -CT_ARCH_xtensa_AVAILABLE=y -CT_ARCH_SUFFIX="" - -# -# Generic target options -# -# CT_MULTILIB is not set -CT_DEMULTILIB=y -CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_32=y -CT_ARCH_SUPPORTS_64=y -CT_ARCH_DEFAULT_32=y -CT_ARCH_BITNESS=64 -# CT_ARCH_32 is not set -CT_ARCH_64=y - -# -# Target optimisations -# -CT_ARCH_SUPPORTS_WITH_ARCH=y -CT_ARCH_SUPPORTS_WITH_CPU=y -CT_ARCH_SUPPORTS_WITH_TUNE=y -CT_ARCH_ARCH="" -CT_ARCH_CPU="" -CT_ARCH_TUNE="" -CT_TARGET_CFLAGS="" -CT_TARGET_LDFLAGS="" -CT_ARCH_FLOAT="" - -# -# Toolchain options -# - -# -# General toolchain options -# -CT_FORCE_SYSROOT=y -CT_USE_SYSROOT=y -CT_SYSROOT_NAME="sysroot" -CT_SYSROOT_DIR_PREFIX="" -CT_WANTS_STATIC_LINK=y -CT_WANTS_STATIC_LINK_CXX=y -# CT_STATIC_TOOLCHAIN is not set -CT_TOOLCHAIN_PKGVERSION="ONIE-${LSB_RELEASE_TAG}" -CT_TOOLCHAIN_BUGURL="" - -# -# Tuple completion and aliasing -# -CT_TARGET_VENDOR="onie" -CT_TARGET_ALIAS_SED_EXPR="" -CT_TARGET_ALIAS="x86_64" - -# -# Toolchain type -# -CT_CROSS=y -# CT_CANADIAN is not set -CT_TOOLCHAIN_TYPE="cross" - -# -# Build system -# -CT_BUILD="" -CT_BUILD_PREFIX="" -CT_BUILD_SUFFIX="" - -# -# Misc options -# -CT_TOOLCHAIN_ENABLE_NLS=y - -# -# Operating System -# -CT_KERNEL_SUPPORTS_SHARED_LIBS=y -CT_KERNEL="linux" -CT_KERNEL_VERSION="${LINUX_RELEASE}" -# CT_KERNEL_bare_metal is not set -CT_KERNEL_linux=y -CT_KERNEL_bare_metal_AVAILABLE=y -CT_KERNEL_linux_AVAILABLE=y -CT_KERNEL_LINUX_CUSTOM=y -CT_KERNEL_LINUX_CUSTOM_LOCATION="${DOWNLOADDIR}/${LINUX_TARBALL}" -CT_KERNEL_LINUX_CUSTOM_VERSION="${LINUX_RELEASE}" -CT_KERNEL_windows_AVAILABLE=y - -# -# Common kernel options -# -CT_SHARED_LIBS=y - -# -# linux other options -# -CT_KERNEL_LINUX_VERBOSITY_0=y -# CT_KERNEL_LINUX_VERBOSITY_1 is not set -# CT_KERNEL_LINUX_VERBOSITY_2 is not set -CT_KERNEL_LINUX_VERBOSE_LEVEL=0 -CT_KERNEL_LINUX_INSTALL_CHECK=y - -# -# Binary utilities -# -CT_ARCH_BINFMT_ELF=y -CT_BINUTILS="binutils" -CT_BINUTILS_binutils=y - -# -# GNU binutils -# -CT_BINUTILS_VERSION="2.28" -# CT_BINUTILS_SHOW_LINARO is not set -CT_BINUTILS_V_2_28=y -# CT_BINUTILS_V_2_27 is not set -# CT_BINUTILS_V_2_26 is not set -CT_BINUTILS_2_27_or_later=y -CT_BINUTILS_2_26_or_later=y -CT_BINUTILS_2_25_1_or_later=y -CT_BINUTILS_2_25_or_later=y -CT_BINUTILS_2_24_or_later=y -CT_BINUTILS_2_23_2_or_later=y -CT_BINUTILS_HAS_HASH_STYLE=y -CT_BINUTILS_HAS_GOLD=y -CT_BINUTILS_GOLD_SUPPORTS_ARCH=y -CT_BINUTILS_GOLD_SUPPORT=y -CT_BINUTILS_HAS_PLUGINS=y -CT_BINUTILS_HAS_PKGVERSION_BUGURL=y -CT_BINUTILS_LINKER_LD=y -# CT_BINUTILS_LINKER_GOLD is not set -# CT_BINUTILS_LINKER_LD_GOLD is not set -# CT_BINUTILS_LINKER_GOLD_LD is not set -CT_BINUTILS_LINKERS_LIST="ld" -CT_BINUTILS_LINKER_DEFAULT="bfd" -# CT_BINUTILS_PLUGINS is not set -CT_BINUTILS_EXTRA_CONFIG_ARRAY="" -CT_BINUTILS_FOR_TARGET=y -CT_BINUTILS_FOR_TARGET_IBERTY=y -CT_BINUTILS_FOR_TARGET_BFD=y - -# -# binutils other options -# - -# -# C-library -# -CT_LIBC="uClibc" -CT_LIBC_VERSION="1.0.22" -# CT_LIBC_glibc is not set -CT_LIBC_uClibc=y -CT_LIBC_avr_libc_AVAILABLE=y -CT_LIBC_glibc_AVAILABLE=y -CT_THREADS="nptl" -CT_LIBC_mingw_AVAILABLE=y -CT_LIBC_musl_AVAILABLE=y -CT_LIBC_newlib_AVAILABLE=y -CT_LIBC_none_AVAILABLE=y -CT_LIBC_uClibc_AVAILABLE=y -CT_LIBC_UCLIBC_NG_V_1_0_22=y -CT_LIBC_UCLIBC_NG_1_0_15_or_later=y -CT_LIBC_UCLIBC_NG_1_0_0_or_later=y -CT_LIBC_UCLIBC_0_9_33_2_or_later=y -CT_LIBC_UCLIBC_PARALLEL=y -CT_LIBC_UCLIBC_NG=y -CT_LIBC_UCLIBC_VERBOSITY_0=y -# CT_LIBC_UCLIBC_VERBOSITY_1 is not set -# CT_LIBC_UCLIBC_VERBOSITY_2 is not set -CT_LIBC_UCLIBC_VERBOSITY="" -CT_LIBC_UCLIBC_DEBUG_LEVEL_0=y -# CT_LIBC_UCLIBC_DEBUG_LEVEL_1 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_2 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_3 is not set -CT_LIBC_UCLIBC_DEBUG_LEVEL=0 -CT_LIBC_UCLIBC_CONFIG_FILE="${UCLIBC_CONFIG}" -CT_LIBC_SUPPORT_THREADS_ANY=y -CT_LIBC_SUPPORT_THREADS_NATIVE=y -CT_LIBC_SUPPORT_THREADS_LT=y -CT_LIBC_SUPPORT_THREADS_NONE=y - -# -# Common C library options -# -CT_THREADS_NATIVE=y -# CT_THREADS_LT is not set -# CT_THREADS_NONE is not set -# CT_CREATE_LDSO_CONF is not set -CT_LIBC_XLDD=y - -# -# uClibc other options -# -CT_LIBC_UCLIBC_LNXTHRD="" -# CT_LIBC_UCLIBC_LOCALES is not set -CT_LIBC_UCLIBC_IPV6=y -CT_LIBC_UCLIBC_WCHAR=y -CT_LIBC_UCLIBC_FENV=y -# CT_LIBC_UCLIBC_RPC is not set - -# -# C compiler -# -CT_CC="gcc" -CT_CC_CORE_PASSES_NEEDED=y -CT_CC_CORE_PASS_1_NEEDED=y -CT_CC_CORE_PASS_2_NEEDED=y -CT_CC_gcc=y -CT_CC_GCC_VERSION="6.3.0" -# CT_CC_GCC_SHOW_LINARO is not set -CT_CC_GCC_V_6_3_0=y -# CT_CC_GCC_V_5_4_0 is not set -# CT_CC_GCC_V_4_9_4 is not set -CT_CC_GCC_4_8_or_later=y -CT_CC_GCC_4_9_or_later=y -CT_CC_GCC_5_or_later=y -CT_CC_GCC_6=y -CT_CC_GCC_6_or_later=y -CT_CC_GCC_HAS_LIBMPX=y -CT_CC_GCC_ENABLE_CXX_FLAGS="" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_STATIC_LIBSTDCXX=y -# CT_CC_GCC_SYSTEM_ZLIB is not set -CT_CC_GCC_CONFIG_TLS=m - -# -# Optimisation features -# -CT_CC_GCC_USE_GRAPHITE=y -CT_CC_GCC_USE_LTO=y - -# -# Settings for libraries running on target -# -CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y -# CT_CC_GCC_LIBMUDFLAP is not set -# CT_CC_GCC_LIBGOMP is not set -# CT_CC_GCC_LIBSSP is not set -# CT_CC_GCC_LIBQUADMATH is not set -# CT_CC_GCC_LIBMPX is not set - -# -# Misc. obscure options. -# -CT_CC_CXA_ATEXIT=y -# CT_CC_GCC_DISABLE_PCH is not set -CT_CC_GCC_SJLJ_EXCEPTIONS=m -CT_CC_GCC_LDBL_128=m -# CT_CC_GCC_BUILD_ID is not set -CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y -# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set -# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set -# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set -CT_CC_GCC_LNK_HASH_STYLE="" -CT_CC_GCC_DEC_FLOAT_AUTO=y -# CT_CC_GCC_DEC_FLOAT_BID is not set -# CT_CC_GCC_DEC_FLOAT_DPD is not set -# CT_CC_GCC_DEC_FLOATS_NO is not set -CT_CC_SUPPORT_CXX=y -CT_CC_SUPPORT_FORTRAN=y -CT_CC_SUPPORT_JAVA=y -CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_OBJC=y -CT_CC_SUPPORT_OBJCXX=y -CT_CC_SUPPORT_GOLANG=y - -# -# Additional supported languages: -# -CT_CC_LANG_CXX=y -# CT_CC_LANG_FORTRAN is not set -# CT_CC_LANG_JAVA is not set - -# -# Debug facilities -# -CT_DEBUG_duma=y -CT_DUMA_SO=y -CT_DUMA_CUSTOM_WRAPPER=y -CT_DUMA_V_2_5_15=y -CT_DUMA_VERSION="2_5_15" -CT_DEBUG_gdb=y -CT_GDB_CROSS=y -# CT_GDB_CROSS_STATIC is not set -# CT_GDB_CROSS_SIM is not set -CT_GDB_CROSS_PYTHON=y -CT_GDB_CROSS_PYTHON_BINARY="" -CT_GDB_CROSS_EXTRA_CONFIG_ARRAY="" -# CT_GDB_NATIVE is not set -CT_GDB_GDBSERVER=y -CT_GDB_GDBSERVER_HAS_IPA_LIB=y -CT_GDB_GDBSERVER_BUILD_IPA_LIB=y - -# -# gdb version -# -CT_GDB_VERSION="7.12.1" -CT_GDB_V_7_12_1=y -# CT_GDB_V_7_11_1 is not set -CT_GDB_7_12_or_later=y -CT_GDB_7_2_or_later=y -CT_GDB_7_0_or_later=y -CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y -CT_GDB_INSTALL_GDBINIT=y -CT_DEBUG_ltrace=y -CT_LTRACE_V_0_7_3=y -CT_LTRACE_VERSION="0.7.3" -CT_DEBUG_strace=y -CT_STRACE_V_4_16=y -# CT_STRACE_V_4_15 is not set -CT_STRACE_VERSION="4.16" - -# -# Companion libraries -# -CT_COMPLIBS_NEEDED=y -CT_LIBICONV_NEEDED=y -CT_GETTEXT_NEEDED=y -CT_GMP_NEEDED=y -CT_MPFR_NEEDED=y -CT_ISL_NEEDED=y -CT_MPC_NEEDED=y -CT_EXPAT_NEEDED=y -CT_NCURSES_NEEDED=y -CT_COMPLIBS=y -CT_LIBICONV=y -CT_GETTEXT=y -CT_GMP=y -CT_MPFR=y -CT_ISL=y -CT_MPC=y -CT_LIBELF_TARGET=y -CT_EXPAT=y -CT_NCURSES=y -# CT_ZLIB is not set -CT_LIBICONV_V_1_15=y -# CT_LIBICONV_V_1_14 is not set -CT_LIBICONV_VERSION="1.15" -CT_GETTEXT_V_0_19_8_1=y -CT_GETTEXT_VERSION="0.19.8.1" -CT_GMP_V_6_1_2=y -CT_GMP_5_0_2_or_later=y -CT_GMP_VERSION="6.1.2" -CT_MPFR_V_3_1_5=y -CT_MPFR_VERSION="3.1.5" -CT_ISL_V_0_16_1=y -# CT_ISL_V_0_15 is not set -CT_ISL_V_0_16_or_later=y -CT_ISL_V_0_15_or_later=y -CT_ISL_V_0_14_or_later=y -CT_ISL_V_0_12_or_later=y -CT_ISL_VERSION="0.16.1" -CT_MPC_V_1_0_3=y -CT_MPC_VERSION="1.0.3" - -# -# libelf version needed to build for target -# -CT_LIBELF_V_0_8_13=y -CT_LIBELF_VERSION="0.8.13" -CT_EXPAT_V_2_2_0=y -CT_EXPAT_VERSION="2.2.0" -CT_NCURSES_V_6_0=y -CT_NCURSES_VERSION="6.0" -CT_NCURSES_HOST_CONFIG_ARGS="" -CT_NCURSES_HOST_DISABLE_DB=y -CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100" -CT_NCURSES_TARGET_CONFIG_ARGS="" -# CT_NCURSES_TARGET_DISABLE_DB is not set -CT_NCURSES_TARGET_FALLBACKS="" - -# -# Companion libraries common options -# -# CT_COMPLIBS_CHECK is not set - -# -# Companion tools -# -# CT_COMP_TOOLS_FOR_HOST is not set -CT_COMP_TOOLS_autoconf=y -CT_AUTOCONF_V_2_69=y -CT_AUTOCONF_VERSION="2.69" -CT_COMP_TOOLS_automake=y -CT_AUTOMAKE_V_1_15=y -CT_AUTOMAKE_VERSION="1.15" -CT_COMP_TOOLS_libtool=y -CT_LIBTOOL_V_2_4_6=y -CT_LIBTOOL_VERSION="2.4.6" -CT_COMP_TOOLS_m4=y -CT_M4_V_1_4_18=y -CT_M4_VERSION="1.4.18" -CT_COMP_TOOLS_make=y -CT_MAKE_V_4_2_1=y -# CT_MAKE_GMAKE_SYMLINK is not set -CT_MAKE_VERSION="4.2.1" diff --git a/build-config/conf/crosstool/gcc-8.3.0/glibc-2.29/crosstool.armv8a.config b/build-config/conf/crosstool/gcc-8.3.0/glibc-2.29/crosstool.armv8a.config deleted file mode 100644 index 950b7ac74..000000000 --- a/build-config/conf/crosstool/gcc-8.3.0/glibc-2.29/crosstool.armv8a.config +++ /dev/null @@ -1,780 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# crosstool-NG Configuration -# -# So, to edit this, you'll be updating xtools.make to set the -# version numbers of components that it "can't download from the internet." -# to pre-download them. -# To update this file to begin with: -# 1 - Copy it over the .config crosstool-ng is using. Note that compiler -# and glibc (not uclibc, as non-x86 builds do it differently) will vary -# depending on the versions being used. Point is, put the config in -# there as .config -# cp ./conf/crosstool/gcc-8.3.0/glibc-2.34/crosstool.armv8a.config ../build/x-tools/armv8a-g8.3.0-lnx5.4.86-glibc-2.34/build/.config -# -# 2 - cd to the crosstool-ng build directory: -# cd ../build/x-tools/armv8a-g8.3.0-lnx5.4.86-glibc-2.34/build/ -# -# 3 - run 'ct-ng oldconfig' to update it. Be prepared to answer a bunch of -# questions about new features. -# ../../../crosstool-ng/crosstool-ng-1.24.0/ct-ng oldconfig -# -# 4 - once you're done being interrogated, replace the config you want to upgrade -# with the freshly created .config file -# cp .config ../../../../build-config/conf/crosstool/gcc-8.3.0/glibc-2.34/crosstool.armv8a.config -# -# 5 - Then you'll be fine-tuning the corrected .cfg, and updating new versions of compoennts in xtools.make -# -# TIPS -# Do not set CT_GLIBC_EXTRA_CFLAGS =y - this adds the y to CT_ALL_TARGET_CFLAGS used in glibc.sh conmpiler --version config and breaks compiler detection. -# -CT_CONFIGURE_has_static_link=y -CT_CONFIGURE_has_cxx11=y -CT_CONFIGURE_has_wget=y -CT_CONFIGURE_has_curl=y -CT_CONFIGURE_has_make_3_81_or_newer=y -CT_CONFIGURE_has_make_4_0_or_newer=y -CT_CONFIGURE_has_libtool_2_4_or_newer=y -CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_65_or_newer=y -CT_CONFIGURE_has_autoreconf_2_65_or_newer=y -CT_CONFIGURE_has_automake_1_15_or_newer=y -CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y -CT_CONFIGURE_has_python_3_4_or_newer=y -CT_CONFIGURE_has_bison_2_7_or_newer=y -CT_CONFIGURE_has_python=y -CT_CONFIGURE_has_dtc=y -CT_CONFIGURE_has_git=y -CT_CONFIGURE_has_md5sum=y -CT_CONFIGURE_has_sha1sum=y -CT_CONFIGURE_has_sha256sum=y -CT_CONFIGURE_has_sha512sum=y -CT_CONFIGURE_has_install_with_strip_program=y -CT_CONFIG_VERSION_CURRENT="3" -CT_CONFIG_VERSION="3" -CT_MODULES=y - -# -# Paths and misc options -# - -# -# crosstool-NG behavior -# -# CT_OBSOLETE is not set -# CT_EXPERIMENTAL is not set -# CT_DEBUG_CT is not set - -# -# Paths -# -CT_LOCAL_TARBALLS_DIR="${DOWNLOADDIR}" -CT_SAVE_TARBALLS=y -CT_TARBALLS_BUILDROOT_LAYOUT=y -CT_WORK_DIR="${CT_TOP_DIR}/build" -CT_BUILD_TOP_DIR="${CT_WORK_DIR:-${CT_TOP_DIR}/.build}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" -CT_PREFIX_DIR="${XTOOLS_INSTALL_DIR}/${CT_TARGET}" -CT_RM_RF_PREFIX_DIR=y -CT_REMOVE_DOCS=y -CT_INSTALL_LICENSES=y -CT_PREFIX_DIR_RO=y -CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y -CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y - -# -# Downloading -# -# CT_DOWNLOAD_AGENT_WGET is not set -# CT_DOWNLOAD_AGENT_CURL is not set -CT_DOWNLOAD_AGENT_NONE=y -CT_FORBID_DOWNLOAD=y - -# -# Extracting -# -# CT_FORCE_EXTRACT is not set -CT_OVERRIDE_CONFIG_GUESS_SUB=y -# CT_ONLY_EXTRACT is not set -CT_PATCH_BUNDLED=y -# CT_PATCH_BUNDLED_LOCAL is not set -CT_PATCH_ORDER="bundled" - -# -# Build behavior -# -CT_PARALLEL_JOBS=0 -CT_LOAD="" -CT_USE_PIPES=y -CT_EXTRA_CFLAGS_FOR_BUILD="" -CT_EXTRA_LDFLAGS_FOR_BUILD="" -CT_EXTRA_CFLAGS_FOR_HOST="" -CT_EXTRA_LDFLAGS_FOR_HOST="" -# CT_CONFIG_SHELL_SH is not set -# CT_CONFIG_SHELL_ASH is not set -CT_CONFIG_SHELL_BASH=y -# CT_CONFIG_SHELL_CUSTOM is not set -CT_CONFIG_SHELL="${bash}" - -# -# Logging -# -# CT_LOG_ERROR is not set -# CT_LOG_WARN is not set -CT_LOG_INFO=y -# CT_LOG_EXTRA is not set -# CT_LOG_ALL is not set -# CT_LOG_DEBUG is not set -CT_LOG_LEVEL_MAX="INFO" -# CT_LOG_SEE_TOOLS_WARN is not set -# CT_LOG_PROGRESS_BAR is not set -CT_LOG_TO_FILE=y -CT_LOG_FILE_COMPRESS=y - -# -# Target options -# -# CT_ARCH_ALPHA is not set -# CT_ARCH_ARC is not set -CT_ARCH_ARM=y -# CT_ARCH_AVR is not set -# CT_ARCH_M68K is not set -# CT_ARCH_MIPS is not set -# CT_ARCH_NIOS2 is not set -# CT_ARCH_POWERPC is not set -# CT_ARCH_S390 is not set -# CT_ARCH_SH is not set -# CT_ARCH_SPARC is not set -# CT_ARCH_X86 is not set -# CT_ARCH_XTENSA is not set -CT_ARCH="arm" -CT_ARCH_CHOICE_KSYM="ARM" -CT_ARCH_CPU="" -CT_ARCH_TUNE="" -CT_ARCH_ARM_SHOW=y - -# -# Options for arm -# -CT_ARCH_ARM_PKG_KSYM="" -CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 POWERPC RISCV S390 SH SPARC X86 XTENSA" -CT_ARCH_SUFFIX="" -# CT_OMIT_TARGET_VENDOR is not set - -# -# Generic target options -# -# CT_MULTILIB is not set -CT_DEMULTILIB=y -CT_ARCH_SUPPORTS_BOTH_MMU=y -CT_ARCH_DEFAULT_HAS_MMU=y -CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_FLAT_FORMAT=y -CT_ARCH_SUPPORTS_EITHER_ENDIAN=y -CT_ARCH_DEFAULT_LE=y -# CT_ARCH_BE is not set -CT_ARCH_LE=y -CT_ARCH_ENDIAN="little" -CT_ARCH_SUPPORTS_32=y -CT_ARCH_SUPPORTS_64=y -CT_ARCH_DEFAULT_32=y -CT_ARCH_BITNESS=64 -# CT_ARCH_32 is not set -CT_ARCH_64=y - -# -# Target optimisations -# -CT_ARCH_SUPPORTS_WITH_ARCH=y -CT_ARCH_SUPPORTS_WITH_CPU=y -CT_ARCH_SUPPORTS_WITH_TUNE=y -CT_ARCH_EXCLUSIVE_WITH_CPU=y -CT_ARCH_ARCH="" -CT_TARGET_CFLAGS="" -CT_TARGET_LDFLAGS="" - -# -# Toolchain options -# - -# -# General toolchain options -# -CT_FORCE_SYSROOT=y -CT_USE_SYSROOT=y -CT_SYSROOT_NAME="sysroot" -CT_SYSROOT_DIR_PREFIX="" -CT_WANTS_STATIC_LINK=y -CT_WANTS_STATIC_LINK_CXX=y -# CT_STATIC_TOOLCHAIN is not set -CT_SHOW_CT_VERSION=y -CT_TOOLCHAIN_PKGVERSION="ONIE-${LSB_RELEASE_TAG}" -CT_TOOLCHAIN_BUGURL="" - -# -# Tuple completion and aliasing -# -CT_TARGET_VENDOR="onie" -CT_TARGET_ALIAS_SED_EXPR="" -CT_TARGET_ALIAS="x86_64" - -# -# Toolchain type -# -CT_CROSS=y -# CT_CANADIAN is not set -CT_TOOLCHAIN_TYPE="cross" - -# -# Build system -# -CT_BUILD="" -CT_BUILD_PREFIX="" -CT_BUILD_SUFFIX="" - -# -# Misc options -# -CT_TOOLCHAIN_ENABLE_NLS=y - -# -# Operating System -# -CT_KERNEL_SUPPORTS_SHARED_LIBS=y -# CT_KERNEL_BARE_METAL is not set -CT_KERNEL_LINUX=y -CT_KERNEL="linux" -CT_KERNEL_CHOICE_KSYM="LINUX" -CT_KERNEL_LINUX_SHOW=y - -# -# Options for linux -# -CT_KERNEL_LINUX_PKG_KSYM="LINUX" -CT_LINUX_DIR_NAME="linux" -CT_LINUX_PKG_NAME="linux" -CT_LINUX_SRC_RELEASE=y -CT_LINUX_PATCH_ORDER="global" -# CT_LINUX_V_4_20 is not set -# CT_LINUX_V_4_19 is not set -# CT_LINUX_V_4_18 is not set -# CT_LINUX_V_4_17 is not set -# CT_LINUX_V_4_16 is not set -# CT_LINUX_V_4_15 is not set -# CT_LINUX_V_4_14 is not set -# CT_LINUX_V_4_13 is not set -# CT_LINUX_V_4_12 is not set -# CT_LINUX_V_4_11 is not set -# CT_LINUX_V_4_10 is not set -# CT_LINUX_V_4_9 is not set -# CT_LINUX_V_4_4 is not set -# CT_LINUX_V_4_1 is not set -# CT_LINUX_V_3_16 is not set -# CT_LINUX_V_3_13 is not set -# CT_LINUX_V_3_12 is not set -# CT_LINUX_V_3_10 is not set -# CT_LINUX_NO_VERSIONS is not set -CT_LINUX_VERSION="ONIE set by xtools.make" -CT_LINUX_MIRRORS="$(CT_Mirrors kernel.org linux ${CT_LINUX_VERSION})" -CT_LINUX_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_LINUX_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LINUX_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_LINUX_SIGNATURE_FORMAT="unpacked/.sign" -CT_LINUX_later_than_4_8=y -CT_LINUX_4_8_or_later=y -CT_LINUX_later_than_3_7=y -CT_LINUX_3_7_or_later=y -CT_LINUX_REQUIRE_3_7_or_later=y -CT_LINUX_later_than_3_2=y -CT_LINUX_3_2_or_later=y -CT_LINUX_REQUIRE_3_2_or_later=y -CT_KERNEL_LINUX_VERBOSITY_0=y -# CT_KERNEL_LINUX_VERBOSITY_1 is not set -# CT_KERNEL_LINUX_VERBOSITY_2 is not set -CT_KERNEL_LINUX_VERBOSE_LEVEL=0 -CT_KERNEL_LINUX_INSTALL_CHECK=y -CT_ALL_KERNEL_CHOICES="BARE_METAL LINUX WINDOWS" - -# -# Common kernel options -# -CT_SHARED_LIBS=y - -# -# Binary utilities -# -CT_ARCH_BINFMT_ELF=y -CT_BINUTILS_BINUTILS=y -CT_BINUTILS="binutils" -CT_BINUTILS_CHOICE_KSYM="BINUTILS" -CT_BINUTILS_BINUTILS_SHOW=y - -# -# Options for binutils -# -CT_BINUTILS_BINUTILS_PKG_KSYM="BINUTILS" -CT_BINUTILS_DIR_NAME="binutils" -CT_BINUTILS_USE_GNU=y -CT_BINUTILS_USE="BINUTILS" -CT_BINUTILS_PKG_NAME="binutils" -CT_BINUTILS_SRC_RELEASE=y -CT_BINUTILS_PATCH_ORDER="global" -CT_BINUTILS_V_2_32=y -# CT_BINUTILS_V_2_31 is not set -# CT_BINUTILS_V_2_30 is not set -# CT_BINUTILS_V_2_29 is not set -# CT_BINUTILS_V_2_28 is not set -# CT_BINUTILS_V_2_27 is not set -# CT_BINUTILS_V_2_26 is not set -# CT_BINUTILS_NO_VERSIONS is not set -CT_BINUTILS_VERSION="2.32" -CT_BINUTILS_MIRRORS="$(CT_Mirrors GNU binutils) $(CT_Mirrors sourceware binutils/releases)" -CT_BINUTILS_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_BINUTILS_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_BINUTILS_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" -CT_BINUTILS_SIGNATURE_FORMAT="packed/.sig" -CT_BINUTILS_later_than_2_30=y -CT_BINUTILS_2_30_or_later=y -CT_BINUTILS_later_than_2_27=y -CT_BINUTILS_2_27_or_later=y -CT_BINUTILS_later_than_2_25=y -CT_BINUTILS_2_25_or_later=y -CT_BINUTILS_REQUIRE_2_25_or_later=y -CT_BINUTILS_later_than_2_23=y -CT_BINUTILS_2_23_or_later=y - -# -# GNU binutils -# -CT_BINUTILS_HAS_HASH_STYLE=y -CT_BINUTILS_HAS_GOLD=y -CT_BINUTILS_HAS_PLUGINS=y -CT_BINUTILS_HAS_PKGVERSION_BUGURL=y -CT_BINUTILS_GOLD_SUPPORTS_ARCH=y -CT_BINUTILS_GOLD_SUPPORT=y -CT_BINUTILS_FORCE_LD_BFD_DEFAULT=y -CT_BINUTILS_LINKER_LD=y -# CT_BINUTILS_LINKER_LD_GOLD is not set -CT_BINUTILS_LINKERS_LIST="ld" -CT_BINUTILS_LINKER_DEFAULT="bfd" -# CT_BINUTILS_PLUGINS is not set -CT_BINUTILS_RELRO=y -CT_BINUTILS_EXTRA_CONFIG_ARRAY="" -CT_BINUTILS_FOR_TARGET=y -CT_BINUTILS_FOR_TARGET_IBERTY=y -CT_BINUTILS_FOR_TARGET_BFD=y -CT_ALL_BINUTILS_CHOICES="BINUTILS" - -# -# C-library -# -CT_LIBC_GLIBC=y -# CT_LIBC_UCLIBC is not set -CT_LIBC="glibc" -CT_LIBC_CHOICE_KSYM="GLIBC" -CT_THREADS="nptl" -CT_LIBC_GLIBC_SHOW=y - -# -# Options for glibc -# -CT_LIBC_GLIBC_PKG_KSYM="GLIBC" -CT_GLIBC_DIR_NAME="glibc" -CT_GLIBC_USE_GNU=y -CT_GLIBC_USE="GLIBC" -CT_GLIBC_PKG_NAME="glibc" -CT_GLIBC_SRC_RELEASE=y -CT_GLIBC_PATCH_ORDER="global" -CT_GLIBC_V_2_29=y -# CT_GLIBC_V_2_28 is not set -# CT_GLIBC_V_2_27 is not set -# CT_GLIBC_V_2_26 is not set -# CT_GLIBC_V_2_25 is not set -# CT_GLIBC_V_2_24 is not set -# CT_GLIBC_V_2_23 is not set -# CT_GLIBC_V_2_19 is not set -# CT_GLIBC_V_2_17 is not set -# CT_GLIBC_V_2_12_1 is not set -# CT_GLIBC_NO_VERSIONS is not set -CT_GLIBC_VERSION="2.29" -CT_GLIBC_MIRRORS="$(CT_Mirrors GNU glibc)" -CT_GLIBC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GLIBC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GLIBC_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" -CT_GLIBC_SIGNATURE_FORMAT="packed/.sig" -CT_GLIBC_2_29_or_later=y -CT_GLIBC_2_29_or_older=y -CT_GLIBC_later_than_2_27=y -CT_GLIBC_2_27_or_later=y -CT_GLIBC_later_than_2_26=y -CT_GLIBC_2_26_or_later=y -CT_GLIBC_later_than_2_25=y -CT_GLIBC_2_25_or_later=y -CT_GLIBC_later_than_2_24=y -CT_GLIBC_2_24_or_later=y -CT_GLIBC_later_than_2_23=y -CT_GLIBC_2_23_or_later=y -CT_GLIBC_later_than_2_20=y -CT_GLIBC_2_20_or_later=y -CT_GLIBC_later_than_2_17=y -CT_GLIBC_2_17_or_later=y -CT_GLIBC_later_than_2_14=y -CT_GLIBC_2_14_or_later=y -CT_GLIBC_DEP_KERNEL_HEADERS_VERSION=y -CT_GLIBC_DEP_BINUTILS=y -CT_GLIBC_DEP_GCC=y -CT_GLIBC_DEP_PYTHON=y -CT_GLIBC_BUILD_SSP=y -CT_GLIBC_HAS_LIBIDN_ADDON=y -CT_GLIBC_USE_LIBIDN_ADDON=y -CT_GLIBC_NO_SPARC_V8=y -CT_GLIBC_HAS_OBSOLETE_RPC=y -CT_GLIBC_EXTRA_CONFIG_ARRAY="y" -#CT_GLIBC_CONFIGPARMS is not set -#CT_GLIBC_EXTRA_CFLAGS is not set -CT_GLIBC_ENABLE_OBSOLETE_RPC=y -# CT_GLIBC_DISABLE_VERSIONING is not set -CT_GLIBC_OLDEST_ABI="" -CT_GLIBC_FORCE_UNWIND=y -# CT_GLIBC_LOCALES is not set -# CT_GLIBC_KERNEL_VERSION_NONE is not set -CT_GLIBC_KERNEL_VERSION_AS_HEADERS=y -# CT_GLIBC_KERNEL_VERSION_CHOSEN is not set -CT_GLIBC_MIN_KERNEL="4.20.8" -CT_GLIBC_SSP_DEFAULT=y -# CT_GLIBC_SSP_NO is not set -# CT_GLIBC_SSP_YES is not set -# CT_GLIBC_SSP_ALL is not set -# CT_GLIBC_SSP_STRONG is not set -# CT_GLIBC_ENABLE_WERROR is not set -CT_ALL_LIBC_CHOICES="AVR_LIBC BIONIC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE UCLIBC" -CT_LIBC_SUPPORT_THREADS_ANY=y -CT_LIBC_SUPPORT_THREADS_NATIVE=y - -# -# Common C library options -# -CT_THREADS_NATIVE=y -# CT_CREATE_LDSO_CONF is not set -CT_LIBC_XLDD=y - -# -# C compiler -# -CT_CC_CORE_PASSES_NEEDED=y -CT_CC_CORE_PASS_1_NEEDED=y -CT_CC_CORE_PASS_2_NEEDED=y -CT_CC_SUPPORT_CXX=y -CT_CC_SUPPORT_FORTRAN=y -CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_OBJC=y -CT_CC_SUPPORT_OBJCXX=y -CT_CC_SUPPORT_GOLANG=y -CT_CC_GCC=y -CT_CC="gcc" -CT_CC_CHOICE_KSYM="GCC" -CT_CC_GCC_SHOW=y - -# -# Options for gcc -# -CT_CC_GCC_PKG_KSYM="GCC" -CT_GCC_DIR_NAME="gcc" -CT_GCC_USE_GNU=y -CT_GCC_USE="GCC" -CT_GCC_PKG_NAME="gcc" -CT_GCC_SRC_RELEASE=y -CT_GCC_PATCH_ORDER="global" -CT_GCC_V_8=y -# CT_GCC_V_7 is not set -# CT_GCC_V_6 is not set -# CT_GCC_V_5 is not set -# CT_GCC_NO_VERSIONS is not set -CT_GCC_VERSION="8.3.0" -CT_GCC_MIRRORS="$(CT_Mirrors GNU gcc/gcc-${CT_GCC_VERSION}) $(CT_Mirrors sourceware gcc/releases/gcc-${CT_GCC_VERSION})" -CT_GCC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GCC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GCC_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_GCC_SIGNATURE_FORMAT="" -CT_GCC_later_than_7=y -CT_GCC_7_or_later=y -CT_GCC_later_than_6=y -CT_GCC_6_or_later=y -CT_GCC_later_than_5=y -CT_GCC_5_or_later=y -CT_GCC_REQUIRE_5_or_later=y -CT_GCC_later_than_4_9=y -CT_GCC_4_9_or_later=y -CT_GCC_REQUIRE_4_9_or_later=y -CT_GCC_later_than_4_8=y -CT_GCC_4_8_or_later=y -CT_CC_GCC_HAS_LIBMPX=y -CT_CC_GCC_ENABLE_CXX_FLAGS="" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_MULTILIB_LIST="" -CT_CC_GCC_STATIC_LIBSTDCXX=y -# CT_CC_GCC_SYSTEM_ZLIB is not set -CT_CC_GCC_CONFIG_TLS=m - -# -# Optimisation features -# -CT_CC_GCC_USE_GRAPHITE=y -CT_CC_GCC_USE_LTO=y - -# -# Settings for libraries running on target -# -CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y -# CT_CC_GCC_LIBMUDFLAP is not set -# CT_CC_GCC_LIBGOMP is not set -# CT_CC_GCC_LIBSSP is not set -# CT_CC_GCC_LIBQUADMATH is not set -# CT_CC_GCC_LIBSANITIZER is not set - -# -# Misc. obscure options. -# -CT_CC_CXA_ATEXIT=y -# CT_CC_GCC_DISABLE_PCH is not set -CT_CC_GCC_SJLJ_EXCEPTIONS=m -CT_CC_GCC_LDBL_128=m -# CT_CC_GCC_BUILD_ID is not set -CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y -# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set -# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set -# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set -CT_CC_GCC_LNK_HASH_STYLE="" -CT_CC_GCC_DEC_FLOAT_AUTO=y -# CT_CC_GCC_DEC_FLOAT_BID is not set -# CT_CC_GCC_DEC_FLOAT_DPD is not set -# CT_CC_GCC_DEC_FLOATS_NO is not set -CT_ALL_CC_CHOICES="GCC" - -# -# Additional supported languages: -# -CT_CC_LANG_CXX=y -# CT_CC_LANG_FORTRAN is not set - -# -# Debug facilities -# -# CT_DEBUG_DUMA is not set -# CT_DEBUG_GDB is not set -# CT_DEBUG_LTRACE is not set -CT_DEBUG_STRACE=y -CT_DEBUG_STRACE_PKG_KSYM="STRACE" -CT_STRACE_DIR_NAME="strace" -CT_STRACE_PKG_NAME="strace" -CT_STRACE_SRC_RELEASE=y -CT_STRACE_PATCH_ORDER="global" -CT_STRACE_V_4_26=y -# CT_STRACE_V_4_25 is not set -# CT_STRACE_V_4_24 is not set -# CT_STRACE_V_4_23 is not set -# CT_STRACE_V_4_22 is not set -# CT_STRACE_V_4_21 is not set -# CT_STRACE_V_4_20 is not set -# CT_STRACE_V_4_19 is not set -# CT_STRACE_V_4_18 is not set -# CT_STRACE_V_4_17 is not set -# CT_STRACE_V_4_16 is not set -# CT_STRACE_V_4_15 is not set -# CT_STRACE_NO_VERSIONS is not set -CT_STRACE_VERSION="4.26" -CT_STRACE_MIRRORS="https://strace.io/files/${CT_STRACE_VERSION}" -CT_STRACE_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_STRACE_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_STRACE_ARCHIVE_FORMATS=".tar.xz" -CT_STRACE_SIGNATURE_FORMAT="" -CT_ALL_DEBUG_CHOICES="DUMA GDB LTRACE STRACE" - -# -# Companion libraries -# -# CT_COMPLIBS_CHECK is not set -# CT_COMP_LIBS_CLOOG is not set -# CT_COMP_LIBS_EXPAT is not set -CT_COMP_LIBS_GETTEXT=y -CT_COMP_LIBS_GETTEXT_PKG_KSYM="GETTEXT" -CT_GETTEXT_DIR_NAME="gettext" -CT_GETTEXT_PKG_NAME="gettext" -CT_GETTEXT_SRC_RELEASE=y -CT_GETTEXT_PATCH_ORDER="global" -CT_GETTEXT_V_0_19_8_1=y -# CT_GETTEXT_NO_VERSIONS is not set -CT_GETTEXT_VERSION="0.19.8.1" -CT_GETTEXT_MIRRORS="$(CT_Mirrors GNU gettext)" -CT_GETTEXT_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GETTEXT_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GETTEXT_ARCHIVE_FORMATS=".tar.xz .tar.lz .tar.gz" -CT_GETTEXT_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_LIBS_GMP=y -CT_COMP_LIBS_GMP_PKG_KSYM="GMP" -CT_GMP_DIR_NAME="gmp" -CT_GMP_PKG_NAME="gmp" -CT_GMP_SRC_RELEASE=y -CT_GMP_PATCH_ORDER="global" -CT_GMP_V_6_1=y -# CT_GMP_NO_VERSIONS is not set -CT_GMP_VERSION="6.1.2" -CT_GMP_MIRRORS="https://gmplib.org/download/gmp https://gmplib.org/download/gmp/archive $(CT_Mirrors GNU gmp)" -CT_GMP_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GMP_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GMP_ARCHIVE_FORMATS=".tar.xz .tar.lz .tar.bz2" -CT_GMP_SIGNATURE_FORMAT="packed/.sig" -CT_GMP_later_than_5_1_0=y -CT_GMP_5_1_0_or_later=y -CT_GMP_later_than_5_0_0=y -CT_GMP_5_0_0_or_later=y -CT_GMP_REQUIRE_5_0_0_or_later=y -CT_COMP_LIBS_ISL=y -CT_COMP_LIBS_ISL_PKG_KSYM="ISL" -CT_ISL_DIR_NAME="isl" -CT_ISL_PKG_NAME="isl" -CT_ISL_SRC_RELEASE=y -CT_ISL_PATCH_ORDER="global" -CT_ISL_V_0_20=y -# CT_ISL_V_0_19 is not set -# CT_ISL_V_0_18 is not set -# CT_ISL_V_0_17 is not set -# CT_ISL_V_0_16 is not set -# CT_ISL_V_0_15 is not set -# CT_ISL_NO_VERSIONS is not set -CT_ISL_VERSION="0.20" -CT_ISL_MIRRORS="http://isl.gforge.inria.fr" -CT_ISL_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_ISL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_ISL_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" -CT_ISL_SIGNATURE_FORMAT="" -CT_ISL_later_than_0_18=y -CT_ISL_0_18_or_later=y -CT_ISL_later_than_0_15=y -CT_ISL_0_15_or_later=y -CT_ISL_REQUIRE_0_15_or_later=y -CT_ISL_later_than_0_14=y -CT_ISL_0_14_or_later=y -CT_ISL_REQUIRE_0_14_or_later=y -CT_ISL_later_than_0_13=y -CT_ISL_0_13_or_later=y -CT_ISL_later_than_0_12=y -CT_ISL_0_12_or_later=y -CT_ISL_REQUIRE_0_12_or_later=y -# CT_COMP_LIBS_LIBELF is not set -CT_COMP_LIBS_LIBICONV=y -CT_COMP_LIBS_LIBICONV_PKG_KSYM="LIBICONV" -CT_LIBICONV_DIR_NAME="libiconv" -CT_LIBICONV_PKG_NAME="libiconv" -CT_LIBICONV_SRC_RELEASE=y -CT_LIBICONV_PATCH_ORDER="global" -CT_LIBICONV_V_1_15=y -# CT_LIBICONV_NO_VERSIONS is not set -CT_LIBICONV_VERSION="1.15" -CT_LIBICONV_MIRRORS="$(CT_Mirrors GNU libiconv)" -CT_LIBICONV_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_LIBICONV_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LIBICONV_ARCHIVE_FORMATS=".tar.gz" -CT_LIBICONV_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_LIBS_MPC=y -CT_COMP_LIBS_MPC_PKG_KSYM="MPC" -CT_MPC_DIR_NAME="mpc" -CT_MPC_PKG_NAME="mpc" -CT_MPC_SRC_RELEASE=y -CT_MPC_PATCH_ORDER="global" -CT_MPC_V_1_1=y -# CT_MPC_V_1_0 is not set -# CT_MPC_NO_VERSIONS is not set -CT_MPC_VERSION="1.1.0" -CT_MPC_MIRRORS="http://www.multiprecision.org/downloads $(CT_Mirrors GNU mpc)" -CT_MPC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_MPC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_MPC_ARCHIVE_FORMATS=".tar.gz" -CT_MPC_SIGNATURE_FORMAT="packed/.sig" -CT_MPC_1_1_0_or_later=y -CT_MPC_1_1_0_or_older=y -CT_COMP_LIBS_MPFR=y -CT_COMP_LIBS_MPFR_PKG_KSYM="MPFR" -CT_MPFR_DIR_NAME="mpfr" -CT_MPFR_PKG_NAME="mpfr" -CT_MPFR_SRC_RELEASE=y -CT_MPFR_PATCH_ORDER="global" -CT_MPFR_V_4_1=y -# CT_MPFR_V_3_1 is not set -# CT_MPFR_NO_VERSIONS is not set -CT_MPFR_VERSION="4.1.0" -CT_MPFR_MIRRORS="http://www.mpfr.org/mpfr-${CT_MPFR_VERSION} $(CT_Mirrors GNU mpfr)" -CT_MPFR_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_MPFR_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_MPFR_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz .zip" -CT_MPFR_SIGNATURE_FORMAT="packed/.asc" -CT_MPFR_later_than_4_0_0=y -CT_MPFR_4_0_0_or_later=y -CT_MPFR_later_than_3_0_0=y -CT_MPFR_3_0_0_or_later=y -CT_MPFR_REQUIRE_3_0_0_or_later=y -CT_COMP_LIBS_NCURSES=y -CT_COMP_LIBS_NCURSES_PKG_KSYM="NCURSES" -CT_NCURSES_DIR_NAME="ncurses" -CT_NCURSES_PKG_NAME="ncurses" -CT_NCURSES_SRC_RELEASE=y -CT_NCURSES_PATCH_ORDER="global" -# CT_NCURSES_V_6_1 is not set -CT_NCURSES_V_6_0=y -# CT_NCURSES_NO_VERSIONS is not set -CT_NCURSES_VERSION="6.0" -CT_NCURSES_MIRRORS="ftp://invisible-island.net/ncurses $(CT_Mirrors GNU ncurses)" -CT_NCURSES_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_NCURSES_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_NCURSES_ARCHIVE_FORMATS=".tar.gz" -CT_NCURSES_SIGNATURE_FORMAT="packed/.sig" -CT_NCURSES_HOST_CONFIG_ARGS="" -CT_NCURSES_HOST_DISABLE_DB=y -CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100" -CT_NCURSES_TARGET_CONFIG_ARGS="" -# CT_NCURSES_TARGET_DISABLE_DB is not set -CT_NCURSES_TARGET_FALLBACKS="" -CT_COMP_LIBS_ZLIB=y -CT_COMP_LIBS_ZLIB_PKG_KSYM="ZLIB" -CT_ZLIB_DIR_NAME="zlib" -CT_ZLIB_PKG_NAME="zlib" -CT_ZLIB_SRC_RELEASE=y -CT_ZLIB_PATCH_ORDER="global" -CT_ZLIB_V_1_2_11=y -# CT_ZLIB_NO_VERSIONS is not set -CT_ZLIB_VERSION="1.2.11" -CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION}" -CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_ZLIB_SIGNATURE_FORMAT="packed/.asc" -CT_ALL_COMP_LIBS_CHOICES="CLOOG EXPAT GETTEXT GMP ISL LIBELF LIBICONV MPC MPFR NCURSES ZLIB" -CT_LIBICONV_NEEDED=y -CT_GETTEXT_NEEDED=y -CT_GMP_NEEDED=y -CT_MPFR_NEEDED=y -CT_ISL_NEEDED=y -CT_MPC_NEEDED=y -CT_NCURSES_NEEDED=y -CT_ZLIB_NEEDED=y -CT_LIBICONV=y -CT_GETTEXT=y -CT_GMP=y -CT_MPFR=y -CT_ISL=y -CT_MPC=y -CT_NCURSES=y -CT_ZLIB=y - -# -# Companion tools -# -# CT_COMP_TOOLS_FOR_HOST is not set -# CT_COMP_TOOLS_AUTOCONF is not set -# CT_COMP_TOOLS_AUTOMAKE is not set -# CT_COMP_TOOLS_BISON is not set -# CT_COMP_TOOLS_DTC is not set -# CT_COMP_TOOLS_LIBTOOL is not set -# CT_COMP_TOOLS_M4 is not set -# CT_COMP_TOOLS_MAKE is not set -CT_ALL_COMP_TOOLS_CHOICES="AUTOCONF AUTOMAKE BISON DTC LIBTOOL M4 MAKE" diff --git a/build-config/conf/crosstool/gcc-8.3.0/uClibc-ng-1.0.35/crosstool.x86_64.config b/build-config/conf/crosstool/gcc-8.3.0/uClibc-ng-1.0.35/crosstool.x86_64.config deleted file mode 100644 index 36be7b39a..000000000 --- a/build-config/conf/crosstool/gcc-8.3.0/uClibc-ng-1.0.35/crosstool.x86_64.config +++ /dev/null @@ -1,934 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# crosstool-NG Configuration -# -CT_CONFIGURE_has_static_link=y -CT_CONFIGURE_has_cxx11=y -CT_CONFIGURE_has_wget=y -CT_CONFIGURE_has_curl=y -CT_CONFIGURE_has_make_3_81_or_newer=y -CT_CONFIGURE_has_make_4_0_or_newer=y -CT_CONFIGURE_has_libtool_2_4_or_newer=y -CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_65_or_newer=y -CT_CONFIGURE_has_autoreconf_2_65_or_newer=y -CT_CONFIGURE_has_automake_1_15_or_newer=y -CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y -CT_CONFIGURE_has_python_3_4_or_newer=y -CT_CONFIGURE_has_bison_2_7_or_newer=y -CT_CONFIGURE_has_python=y -CT_CONFIGURE_has_dtc=y -CT_CONFIGURE_has_git=y -CT_CONFIGURE_has_md5sum=y -CT_CONFIGURE_has_sha1sum=y -CT_CONFIGURE_has_sha256sum=y -CT_CONFIGURE_has_sha512sum=y -CT_CONFIGURE_has_install_with_strip_program=y -CT_CONFIG_VERSION_CURRENT="3" -CT_CONFIG_VERSION="3" -CT_MODULES=y - -# -# Paths and misc options -# - -# -# crosstool-NG behavior -# -# CT_OBSOLETE is not set -# CT_EXPERIMENTAL is not set -# CT_DEBUG_CT is not set - -# -# Paths -# -CT_LOCAL_TARBALLS_DIR="${DOWNLOADDIR}" -CT_SAVE_TARBALLS=y -# CT_TARBALLS_BUILDROOT_LAYOUT is not set -CT_WORK_DIR="${CT_TOP_DIR}/build" -CT_BUILD_TOP_DIR="${CT_WORK_DIR:-${CT_TOP_DIR}/.build}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" -CT_PREFIX_DIR="${XTOOLS_INSTALL_DIR}/${CT_TARGET}" -CT_RM_RF_PREFIX_DIR=y -CT_REMOVE_DOCS=y -CT_INSTALL_LICENSES=y -CT_PREFIX_DIR_RO=y -CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y -CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y - -# -# Downloading -# -# CT_DOWNLOAD_AGENT_WGET is not set -# CT_DOWNLOAD_AGENT_CURL is not set -CT_DOWNLOAD_AGENT_NONE=y -CT_FORBID_DOWNLOAD=y - -# -# Extracting -# -# CT_FORCE_EXTRACT is not set -CT_OVERRIDE_CONFIG_GUESS_SUB=y -# CT_ONLY_EXTRACT is not set -CT_PATCH_BUNDLED=y -# CT_PATCH_BUNDLED_LOCAL is not set -CT_PATCH_ORDER="bundled,local" -CT_PATCH_SINGLE=y -CT_PATCH_USE_LOCAL=y -CT_LOCAL_PATCH_DIR="${CROSSTOOL_NG_LOCAL_PATCHDIR}" - - -# -# Build behavior -# -CT_PARALLEL_JOBS=0 -CT_LOAD="" -CT_USE_PIPES=y -CT_EXTRA_CFLAGS_FOR_BUILD="" -CT_EXTRA_LDFLAGS_FOR_BUILD="" -CT_EXTRA_CFLAGS_FOR_HOST="" -CT_EXTRA_LDFLAGS_FOR_HOST="" -# CT_CONFIG_SHELL_SH is not set -# CT_CONFIG_SHELL_ASH is not set -CT_CONFIG_SHELL_BASH=y -# CT_CONFIG_SHELL_CUSTOM is not set -CT_CONFIG_SHELL="${bash}" - -# -# Logging -# -# CT_LOG_ERROR is not set -# CT_LOG_WARN is not set -CT_LOG_INFO=y -# CT_LOG_EXTRA is not set -# CT_LOG_ALL is not set -# CT_LOG_DEBUG is not set -CT_LOG_LEVEL_MAX="INFO" -# CT_LOG_SEE_TOOLS_WARN is not set -# CT_LOG_PROGRESS_BAR is not set -CT_LOG_TO_FILE=y -CT_LOG_FILE_COMPRESS=y - -# -# Target options -# -# CT_ARCH_ALPHA is not set -# CT_ARCH_ARC is not set -# CT_ARCH_ARM is not set -# CT_ARCH_AVR is not set -# CT_ARCH_M68K is not set -# CT_ARCH_MIPS is not set -# CT_ARCH_NIOS2 is not set -# CT_ARCH_POWERPC is not set -# CT_ARCH_S390 is not set -# CT_ARCH_SH is not set -# CT_ARCH_SPARC is not set -CT_ARCH_X86=y -# CT_ARCH_XTENSA is not set -CT_ARCH="x86" -CT_ARCH_CHOICE_KSYM="X86" -# CT_ARCH_ALPHA_EV4 is not set -# CT_ARCH_ALPHA_EV45 is not set -# CT_ARCH_ALPHA_EV5 is not set -# CT_ARCH_ALPHA_EV56 is not set -# CT_ARCH_ALPHA_EV6 is not set -# CT_ARCH_ALPHA_EV67 is not set -CT_ARCH_CPU="" -CT_ARCH_TUNE="" -CT_ARCH_X86_SHOW=y - -# -# Options for x86 -# -CT_ARCH_X86_PKG_KSYM="" -CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 POWERPC RISCV S390 SH SPARC X86 XTENSA" -CT_ARCH_SUFFIX="" -# CT_OMIT_TARGET_VENDOR is not set - -# -# Generic target options -# -# CT_MULTILIB is not set -CT_DEMULTILIB=y -CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_32=y -CT_ARCH_SUPPORTS_64=y -CT_ARCH_DEFAULT_32=y -CT_ARCH_BITNESS=64 -# CT_ARCH_32 is not set -CT_ARCH_64=y - -# -# Target optimisations -# -CT_ARCH_SUPPORTS_WITH_ARCH=y -CT_ARCH_SUPPORTS_WITH_CPU=y -CT_ARCH_SUPPORTS_WITH_TUNE=y -CT_ARCH_ARCH="" -CT_TARGET_CFLAGS="" -CT_TARGET_LDFLAGS="" - -# -# Toolchain options -# - -# -# General toolchain options -# -CT_FORCE_SYSROOT=y -CT_USE_SYSROOT=y -CT_SYSROOT_NAME="sysroot" -CT_SYSROOT_DIR_PREFIX="" -CT_WANTS_STATIC_LINK=y -CT_WANTS_STATIC_LINK_CXX=y -# CT_STATIC_TOOLCHAIN is not set -CT_SHOW_CT_VERSION=y -CT_TOOLCHAIN_PKGVERSION="ONIE-${LSB_RELEASE_TAG}" -CT_TOOLCHAIN_BUGURL="" - -# -# Tuple completion and aliasing -# -CT_TARGET_VENDOR="onie" -CT_TARGET_ALIAS_SED_EXPR="" -CT_TARGET_ALIAS="x86_64" - -# -# Toolchain type -# -CT_CROSS=y -# CT_CANADIAN is not set -CT_TOOLCHAIN_TYPE="cross" - -# -# Build system -# -CT_BUILD="" -CT_BUILD_PREFIX="" -CT_BUILD_SUFFIX="" - -# -# Misc options -# -CT_TOOLCHAIN_ENABLE_NLS=y - -# -# Operating System -# -CT_KERNEL_SUPPORTS_SHARED_LIBS=y -# CT_KERNEL_BARE_METAL is not set -CT_KERNEL_LINUX=y -CT_KERNEL="linux" -CT_KERNEL_CHOICE_KSYM="LINUX" -CT_KERNEL_LINUX_SHOW=y - -# -# Options for linux -# -# ONIE xtools.make will apply the value of LINUX_VERSION -# to set: -# CT_LINUX_VERSION a.b.c -# CT_LINUX_V_a_b=y -# Note this will require adding entries for newer kernels. -CT_KERNEL_LINUX_PKG_KSYM="LINUX" -CT_LINUX_DIR_NAME="linux" -CT_LINUX_PKG_NAME="linux" -CT_LINUX_SRC_RELEASE=y -CT_LINUX_PATCH_ORDER="global" -# CT_LINUX_V_4_20 is not set -# CT_LINUX_V_4_19 is not set -# CT_LINUX_V_4_18 is not set -# CT_LINUX_V_4_17 is not set -# CT_LINUX_V_4_16 is not set -# CT_LINUX_V_4_15 is not set -# CT_LINUX_V_4_14 is not set -# CT_LINUX_V_4_13 is not set -# CT_LINUX_V_4_12 is not set -# CT_LINUX_V_4_11 is not set -# CT_LINUX_V_4_10 is not set -# CT_LINUX_V_4_9 is not set -# CT_LINUX_V_4_4 is not set -# CT_LINUX_V_4_1 is not set -# CT_LINUX_V_3_16 is not set -# CT_LINUX_V_3_13 is not set -# CT_LINUX_V_3_12 is not set -# CT_LINUX_V_3_10 is not set -# CT_LINUX_V_3_4 is not set -# CT_LINUX_V_3_2 is not set -# CT_LINUX_V_2_6_32 is not set -# CT_LINUX_NO_VERSIONS is not set -CT_LINUX_VERSION="ONIE set by xtools.make" -CT_LINUX_MIRRORS="$(CT_Mirrors kernel.org linux ${CT_LINUX_VERSION})" -CT_LINUX_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_LINUX_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LINUX_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_LINUX_SIGNATURE_FORMAT="unpacked/.sign" -CT_LINUX_later_than_4_8=y -CT_LINUX_4_8_or_later=y -CT_LINUX_later_than_3_7=y -CT_LINUX_3_7_or_later=y -CT_LINUX_later_than_3_2=y -CT_LINUX_3_2_or_later=y -CT_KERNEL_LINUX_VERBOSITY_0=y -# CT_KERNEL_LINUX_VERBOSITY_1 is not set -# CT_KERNEL_LINUX_VERBOSITY_2 is not set -CT_KERNEL_LINUX_VERBOSE_LEVEL=0 -CT_KERNEL_LINUX_INSTALL_CHECK=y -CT_ALL_KERNEL_CHOICES="BARE_METAL LINUX WINDOWS" - -# -# Common kernel options -# -CT_SHARED_LIBS=y - -# -# Binary utilities -# -CT_ARCH_BINFMT_ELF=y -CT_BINUTILS_BINUTILS=y -CT_BINUTILS="binutils" -CT_BINUTILS_CHOICE_KSYM="BINUTILS" -CT_BINUTILS_BINUTILS_SHOW=y - -# -# Options for binutils -# -CT_BINUTILS_BINUTILS_PKG_KSYM="BINUTILS" -CT_BINUTILS_DIR_NAME="binutils" -CT_BINUTILS_USE_GNU=y -CT_BINUTILS_USE="BINUTILS" -CT_BINUTILS_PKG_NAME="binutils" -CT_BINUTILS_SRC_RELEASE=y -CT_BINUTILS_PATCH_ORDER="global" -CT_BINUTILS_V_2_32=y -# CT_BINUTILS_V_2_31 is not set -# CT_BINUTILS_V_2_30 is not set -# CT_BINUTILS_V_2_29 is not set -# CT_BINUTILS_V_2_28 is not set -# CT_BINUTILS_V_2_27 is not set -# CT_BINUTILS_V_2_26 is not set -# CT_BINUTILS_NO_VERSIONS is not set -CT_BINUTILS_VERSION="2.32" -CT_BINUTILS_MIRRORS="$(CT_Mirrors GNU binutils) $(CT_Mirrors sourceware binutils/releases)" -CT_BINUTILS_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_BINUTILS_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_BINUTILS_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" -CT_BINUTILS_SIGNATURE_FORMAT="packed/.sig" -CT_BINUTILS_later_than_2_30=y -CT_BINUTILS_2_30_or_later=y -CT_BINUTILS_later_than_2_27=y -CT_BINUTILS_2_27_or_later=y -CT_BINUTILS_later_than_2_25=y -CT_BINUTILS_2_25_or_later=y -CT_BINUTILS_later_than_2_23=y -CT_BINUTILS_2_23_or_later=y - -# -# GNU binutils -# -CT_BINUTILS_HAS_HASH_STYLE=y -CT_BINUTILS_HAS_GOLD=y -CT_BINUTILS_HAS_PLUGINS=y -CT_BINUTILS_HAS_PKGVERSION_BUGURL=y -CT_BINUTILS_GOLD_SUPPORTS_ARCH=y -CT_BINUTILS_GOLD_SUPPORT=y -CT_BINUTILS_LINKER_LD=y -# CT_BINUTILS_LINKER_GOLD is not set -# CT_BINUTILS_LINKER_LD_GOLD is not set -# CT_BINUTILS_LINKER_GOLD_LD is not set -CT_BINUTILS_LINKERS_LIST="ld" -CT_BINUTILS_LINKER_DEFAULT="bfd" -# CT_BINUTILS_PLUGINS is not set -CT_BINUTILS_RELRO=m -CT_BINUTILS_EXTRA_CONFIG_ARRAY="" -CT_BINUTILS_FOR_TARGET=y -CT_BINUTILS_FOR_TARGET_IBERTY=y -CT_BINUTILS_FOR_TARGET_BFD=y -CT_ALL_BINUTILS_CHOICES="BINUTILS" - -# -# C-library -# -# CT_LIBC_GLIBC is not set -# CT_LIBC_NEWLIB is not set -# CT_LIBC_NONE is not set -CT_LIBC_UCLIBC=y -CT_LIBC="uClibc" -CT_LIBC_CHOICE_KSYM="UCLIBC" -CT_THREADS="nptl" -# CT_GLIBC_USE_GNU is not set -# CT_GLIBC_SRC_RELEASE is not set -# CT_GLIBC_V_2_29 is not set -# CT_GLIBC_V_2_28 is not set -# CT_GLIBC_V_2_27 is not set -# CT_GLIBC_V_2_26 is not set -# CT_GLIBC_V_2_25 is not set -# CT_GLIBC_V_2_24 is not set -# CT_GLIBC_V_2_23 is not set -# CT_GLIBC_V_2_19 is not set -# CT_GLIBC_V_2_17 is not set -# CT_GLIBC_V_2_12_1 is not set -# CT_NEWLIB_USE_REDHAT is not set -# CT_NEWLIB_SRC_RELEASE is not set -# CT_NEWLIB_V_3_1 is not set -# CT_NEWLIB_V_3_0 is not set -# CT_NEWLIB_V_2_5 is not set -CT_LIBC_UCLIBC_SHOW=y - -# -# Options for uClibc -# -CT_LIBC_UCLIBC_PKG_KSYM="UCLIBC" -CT_UCLIBC_DIR_NAME="uClibc" -CT_UCLIBC_USE_UCLIBC_NG_ORG=y -CT_UCLIBC_USE="UCLIBC_NG" -CT_UCLIBC_NG_PKG_NAME="uClibc-ng" -CT_UCLIBC_NG_SRC_RELEASE=y -CT_UCLIBC_NG_PATCH_ORDER="global" -# CT_UCLIBC_NG_V_1_0_31 is not set -# CT_UCLIBC_NG_V_1_0_30 is not set -# CT_UCLIBC_NG_V_1_0_29 is not set -# CT_UCLIBC_NG_V_1_0_28 is not set -# CT_UCLIBC_NG_V_1_0_27 is not set -# CT_UCLIBC_NG_V_1_0_26 is not set -CT_UCLIBC_NG_V_1_0_35=y -# CT_UCLIBC_NG_NO_VERSIONS is not set -CT_UCLIBC_NG_VERSION="1.0.35" -CT_UCLIBC_NG_MIRRORS="http://downloads.uclibc-ng.org/releases/${CT_UCLIBC_NG_VERSION}" -CT_UCLIBC_NG_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_UCLIBC_NG_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_UCLIBC_NG_ARCHIVE_FORMATS=".tar.xz .tar.lz .tar.bz2 .tar.gz" -CT_UCLIBC_NG_SIGNATURE_FORMAT="packed/.asc" -CT_UCLIBC_later_than_1_0_23=y -CT_UCLIBC_1_0_23_or_later=y -CT_UCLIBC_later_than_1_0_21=y -CT_UCLIBC_1_0_21_or_later=y -CT_UCLIBC_later_than_1_0_15=y -CT_UCLIBC_1_0_15_or_later=y -CT_UCLIBC_later_than_1_0_0=y -CT_UCLIBC_1_0_0_or_later=y -CT_UCLIBC_later_than_0_9_33_2=y -CT_UCLIBC_0_9_33_2_or_later=y -CT_LIBC_UCLIBC_HAS_LIBICONV=y -CT_LIBC_UCLIBC_PARALLEL=y -CT_LIBC_UCLIBC_NG=y -CT_UCLIBC_MERGED_LINUXTHREADS=y -CT_LIBC_UCLIBC_VERBOSITY_0=y -# CT_LIBC_UCLIBC_VERBOSITY_1 is not set -# CT_LIBC_UCLIBC_VERBOSITY_2 is not set -CT_LIBC_UCLIBC_VERBOSITY="" -CT_LIBC_UCLIBC_DEBUG_LEVEL_0=y -# CT_LIBC_UCLIBC_DEBUG_LEVEL_1 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_2 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_3 is not set -CT_LIBC_UCLIBC_DEBUG_LEVEL=0 -CT_LIBC_UCLIBC_CONFIG_FILE="${UCLIBC_CONFIG}" -CT_LIBC_UCLIBC_LNXTHRD="" -# CT_LIBC_UCLIBC_LOCALES is not set -# CT_LIBC_UCLIBC_LIBICONV is not set -CT_LIBC_UCLIBC_IPV6=y -CT_LIBC_UCLIBC_WCHAR=y -CT_LIBC_UCLIBC_FENV=y -CT_LIBC_UCLIBC_HAS_SSP=y -# CT_LIBC_UCLIBC_BUILD_SSP is not set -CT_ALL_LIBC_CHOICES="AVR_LIBC BIONIC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE UCLIBC" -CT_LIBC_SUPPORT_THREADS_ANY=y -CT_LIBC_SUPPORT_THREADS_NATIVE=y -CT_LIBC_SUPPORT_THREADS_LT=y -CT_LIBC_SUPPORT_THREADS_NONE=y - -# -# Common C library options -# -CT_THREADS_NATIVE=y -# CT_THREADS_LT is not set -# CT_THREADS_NONE is not set -# CT_CREATE_LDSO_CONF is not set -CT_LIBC_XLDD=y - -# -# C compiler -# -CT_CC_CORE_PASSES_NEEDED=y -CT_CC_CORE_PASS_1_NEEDED=y -CT_CC_CORE_PASS_2_NEEDED=y -CT_CC_SUPPORT_CXX=y -CT_CC_SUPPORT_FORTRAN=y -CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_OBJC=y -CT_CC_SUPPORT_OBJCXX=y -CT_CC_SUPPORT_GOLANG=y -CT_CC_GCC=y -CT_CC="gcc" -CT_CC_CHOICE_KSYM="GCC" -CT_CC_GCC_SHOW=y - -# -# Options for gcc -# -CT_CC_GCC_PKG_KSYM="GCC" -CT_GCC_DIR_NAME="gcc" -CT_GCC_USE_GNU=y -CT_GCC_USE="GCC" -CT_GCC_PKG_NAME="gcc" -CT_GCC_SRC_RELEASE=y -CT_GCC_PATCH_ORDER="global" -CT_GCC_V_8=y -# CT_GCC_V_7 is not set -# CT_GCC_V_6 is not set -# CT_GCC_V_5 is not set -# CT_GCC_V_4_9 is not set -# CT_GCC_NO_VERSIONS is not set -CT_GCC_VERSION="8.3.0" -CT_GCC_MIRRORS="$(CT_Mirrors GNU gcc/gcc-${CT_GCC_VERSION}) $(CT_Mirrors sourceware gcc/releases/gcc-${CT_GCC_VERSION})" -CT_GCC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GCC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GCC_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_GCC_SIGNATURE_FORMAT="" -CT_GCC_later_than_7=y -CT_GCC_7_or_later=y -CT_GCC_later_than_6=y -CT_GCC_6_or_later=y -CT_GCC_later_than_5=y -CT_GCC_5_or_later=y -CT_GCC_later_than_4_9=y -CT_GCC_4_9_or_later=y -CT_GCC_later_than_4_8=y -CT_GCC_4_8_or_later=y -CT_CC_GCC_HAS_LIBMPX=y -CT_CC_GCC_ENABLE_CXX_FLAGS="" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_STATIC_LIBSTDCXX=y -# CT_CC_GCC_SYSTEM_ZLIB is not set -CT_CC_GCC_CONFIG_TLS=m - -# -# Optimisation features -# -CT_CC_GCC_USE_GRAPHITE=y -CT_CC_GCC_USE_LTO=y - -# -# Settings for libraries running on target -# -CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y -# CT_CC_GCC_LIBMUDFLAP is not set -# CT_CC_GCC_LIBGOMP is not set -# CT_CC_GCC_LIBSSP is not set -# CT_CC_GCC_LIBQUADMATH is not set -# CT_CC_GCC_LIBMPX is not set - -# -# Misc. obscure options. -# -CT_CC_CXA_ATEXIT=y -# CT_CC_GCC_DISABLE_PCH is not set -CT_CC_GCC_SJLJ_EXCEPTIONS=m -CT_CC_GCC_LDBL_128=m -# CT_CC_GCC_BUILD_ID is not set -CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y -# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set -# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set -# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set -CT_CC_GCC_LNK_HASH_STYLE="" -CT_CC_GCC_DEC_FLOAT_AUTO=y -# CT_CC_GCC_DEC_FLOAT_BID is not set -# CT_CC_GCC_DEC_FLOAT_DPD is not set -# CT_CC_GCC_DEC_FLOATS_NO is not set -CT_ALL_CC_CHOICES="GCC" - -# -# Additional supported languages: -# -CT_CC_LANG_CXX=y -# CT_CC_LANG_FORTRAN is not set - -# -# Debug facilities -# -CT_DEBUG_DUMA=y -CT_DEBUG_DUMA_PKG_KSYM="DUMA" -CT_DUMA_DIR_NAME="duma" -CT_DUMA_PKG_NAME="duma" -CT_DUMA_SRC_RELEASE=y -CT_DUMA_PATCH_ORDER="global" -CT_DUMA_V_2_5_15=y -# CT_DUMA_NO_VERSIONS is not set -CT_DUMA_VERSION="2_5_15" -CT_DUMA_MIRRORS="http://downloads.sourceforge.net/project/duma/duma/${CT_DUMA_VERSION//_/.}" -CT_DUMA_ARCHIVE_FILENAME="@{pkg_name}_@{version}" -CT_DUMA_ARCHIVE_DIRNAME="@{pkg_name}_@{version}" -CT_DUMA_ARCHIVE_FORMATS=".tar.gz .zip" -CT_DUMA_SIGNATURE_FORMAT="" -CT_DUMA_SO=y -CT_DUMA_CUSTOM_WRAPPER=y -CT_DEBUG_GDB=y -CT_DEBUG_GDB_PKG_KSYM="GDB" -CT_GDB_DIR_NAME="gdb" -CT_GDB_USE_GNU=y -CT_GDB_USE="GDB" -CT_GDB_PKG_NAME="gdb" -CT_GDB_SRC_RELEASE=y -CT_GDB_PATCH_ORDER="global" -# CT_GDB_V_8_2 is not set -# CT_GDB_V_8_1 is not set -# CT_GDB_V_8_0 is not set -CT_GDB_V_7_12=y -# CT_GDB_V_7_11 is not set -# CT_GDB_NO_VERSIONS is not set -CT_GDB_VERSION="7.12.1" -CT_GDB_MIRRORS="$(CT_Mirrors GNU gdb) $(CT_Mirrors sourceware gdb/releases)" -CT_GDB_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GDB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GDB_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_GDB_SIGNATURE_FORMAT="" -CT_GDB_8_0_or_older=y -CT_GDB_older_than_8_0=y -CT_GDB_later_than_7_12=y -CT_GDB_7_12_or_later=y -CT_GDB_later_than_7_2=y -CT_GDB_7_2_or_later=y -CT_GDB_later_than_7_0=y -CT_GDB_7_0_or_later=y -CT_GDB_CROSS=y -# CT_GDB_CROSS_STATIC is not set -# CT_GDB_CROSS_SIM is not set -CT_GDB_CROSS_PYTHON=y -CT_GDB_CROSS_PYTHON_BINARY="" -CT_GDB_CROSS_EXTRA_CONFIG_ARRAY="" -# CT_GDB_NATIVE is not set -CT_GDB_GDBSERVER=y -# CT_GDB_NATIVE_STATIC_LIBSTDCXX is not set -CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y -CT_GDB_INSTALL_GDBINIT=y -CT_GDB_HAS_DISABLE_CXX_BUILD=y -CT_GDB_HAS_IPA_LIB=y -CT_DEBUG_LTRACE=y -CT_DEBUG_LTRACE_PKG_KSYM="LTRACE" -CT_LTRACE_DIR_NAME="ltrace" -CT_LTRACE_PKG_NAME="ltrace" -CT_LTRACE_SRC_RELEASE=y -CT_LTRACE_PATCH_ORDER="global" -CT_LTRACE_V_0_7_3=y -# CT_LTRACE_NO_VERSIONS is not set -CT_LTRACE_VERSION="0.7.3" -CT_LTRACE_MIRRORS="http://ftp.debian.org/debian/pool/main/l/ltrace ftp:://ftp.debian.org/debian/pool/main/l/ltrace" -CT_LTRACE_ARCHIVE_FILENAME="@{pkg_name}_@{version}.orig" -CT_LTRACE_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LTRACE_ARCHIVE_FORMATS=".tar.bz2" -CT_LTRACE_SIGNATURE_FORMAT="" -CT_DEBUG_STRACE=y -CT_DEBUG_STRACE_PKG_KSYM="STRACE" -CT_STRACE_DIR_NAME="strace" -CT_STRACE_PKG_NAME="strace" -CT_STRACE_SRC_RELEASE=y -CT_STRACE_PATCH_ORDER="global" -CT_STRACE_V_4_26=y -# CT_STRACE_V_4_25 is not set -# CT_STRACE_V_4_24 is not set -# CT_STRACE_V_4_23 is not set -# CT_STRACE_V_4_22 is not set -# CT_STRACE_V_4_21 is not set -# CT_STRACE_V_4_20 is not set -# CT_STRACE_V_4_19 is not set -# CT_STRACE_V_4_18 is not set -# CT_STRACE_V_4_17 is not set -#CT_STRACE_V_4_16=y -# CT_STRACE_V_4_15 is not set -# CT_STRACE_NO_VERSIONS is not set -CT_STRACE_VERSION="4.26" -CT_STRACE_MIRRORS="https://strace.io/files/${CT_STRACE_VERSION}" -CT_STRACE_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_STRACE_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_STRACE_ARCHIVE_FORMATS=".tar.xz" -CT_STRACE_SIGNATURE_FORMAT="" -CT_ALL_DEBUG_CHOICES="DUMA GDB LTRACE STRACE" - -# -# Companion libraries -# -# CT_COMPLIBS_CHECK is not set -# CT_COMP_LIBS_CLOOG is not set -CT_COMP_LIBS_EXPAT=y -CT_COMP_LIBS_EXPAT_PKG_KSYM="EXPAT" -CT_EXPAT_DIR_NAME="expat" -CT_EXPAT_PKG_NAME="expat" -CT_EXPAT_SRC_RELEASE=y -CT_EXPAT_PATCH_ORDER="global" -CT_EXPAT_V_2_2=y -# CT_EXPAT_NO_VERSIONS is not set -CT_EXPAT_VERSION="2.2.6" -CT_EXPAT_MIRRORS="http://downloads.sourceforge.net/project/expat/expat/${CT_EXPAT_VERSION}" -CT_EXPAT_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_EXPAT_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_EXPAT_ARCHIVE_FORMATS=".tar.bz2" -CT_EXPAT_SIGNATURE_FORMAT="" -CT_COMP_LIBS_GETTEXT=y -CT_COMP_LIBS_GETTEXT_PKG_KSYM="GETTEXT" -CT_GETTEXT_DIR_NAME="gettext" -CT_GETTEXT_PKG_NAME="gettext" -CT_GETTEXT_SRC_RELEASE=y -CT_GETTEXT_PATCH_ORDER="global" -CT_GETTEXT_V_0_19_8_1=y -# CT_GETTEXT_NO_VERSIONS is not set -CT_GETTEXT_VERSION="0.19.8.1" -CT_GETTEXT_MIRRORS="$(CT_Mirrors GNU gettext)" -CT_GETTEXT_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GETTEXT_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GETTEXT_ARCHIVE_FORMATS=".tar.xz .tar.lz .tar.gz" -CT_GETTEXT_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_LIBS_GMP=y -CT_COMP_LIBS_GMP_PKG_KSYM="GMP" -CT_GMP_DIR_NAME="gmp" -CT_GMP_PKG_NAME="gmp" -CT_GMP_SRC_RELEASE=y -CT_GMP_PATCH_ORDER="global" -CT_GMP_V_6_1=y -# CT_GMP_NO_VERSIONS is not set -CT_GMP_VERSION="6.1.2" -CT_GMP_MIRRORS="https://gmplib.org/download/gmp https://gmplib.org/download/gmp/archive $(CT_Mirrors GNU gmp)" -CT_GMP_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GMP_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GMP_ARCHIVE_FORMATS=".tar.xz .tar.lz .tar.bz2" -CT_GMP_SIGNATURE_FORMAT="packed/.sig" -CT_GMP_later_than_5_1_0=y -CT_GMP_5_1_0_or_later=y -CT_GMP_later_than_5_0_0=y -CT_GMP_5_0_0_or_later=y -CT_GMP_REQUIRE_5_0_0_or_later=y -CT_COMP_LIBS_ISL=y -CT_COMP_LIBS_ISL_PKG_KSYM="ISL" -CT_ISL_DIR_NAME="isl" -CT_ISL_PKG_NAME="isl" -CT_ISL_SRC_RELEASE=y -CT_ISL_PATCH_ORDER="global" -CT_ISL_V_0_20=y -# CT_ISL_V_0_19 is not set -# CT_ISL_V_0_18 is not set -# CT_ISL_V_0_17 is not set -# CT_ISL_V_0_16 is not set -# CT_ISL_V_0_15 is not set -# CT_ISL_NO_VERSIONS is not set -CT_ISL_VERSION="0.20" -CT_ISL_MIRRORS="http://isl.gforge.inria.fr" -CT_ISL_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_ISL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_ISL_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" -CT_ISL_SIGNATURE_FORMAT="" -CT_ISL_0_18_or_older=y -CT_ISL_older_than_0_18=y -CT_ISL_later_than_0_15=y -CT_ISL_0_15_or_later=y -CT_ISL_later_than_0_14=y -CT_ISL_0_14_or_later=y -CT_ISL_REQUIRE_0_14_or_later=y -CT_ISL_later_than_0_13=y -CT_ISL_0_13_or_later=y -CT_ISL_later_than_0_12=y -CT_ISL_0_12_or_later=y -CT_ISL_REQUIRE_0_12_or_later=y -CT_COMP_LIBS_LIBELF=y -CT_COMP_LIBS_LIBELF_PKG_KSYM="LIBELF" -CT_LIBELF_DIR_NAME="libelf" -CT_LIBELF_PKG_NAME="libelf" -CT_LIBELF_SRC_RELEASE=y -CT_LIBELF_PATCH_ORDER="global" -CT_LIBELF_V_0_8=y -# CT_LIBELF_NO_VERSIONS is not set -CT_LIBELF_VERSION="0.8.13" -CT_LIBELF_MIRRORS="http://www.mr511.de/software https://fossies.org/linux/misc/old" -CT_LIBELF_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_LIBELF_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LIBELF_ARCHIVE_FORMATS=".tar.gz" -CT_LIBELF_SIGNATURE_FORMAT="" -CT_COMP_LIBS_LIBICONV=y -CT_COMP_LIBS_LIBICONV_PKG_KSYM="LIBICONV" -CT_LIBICONV_DIR_NAME="libiconv" -CT_LIBICONV_PKG_NAME="libiconv" -CT_LIBICONV_SRC_RELEASE=y -CT_LIBICONV_PATCH_ORDER="global" -CT_LIBICONV_V_1_15=y -# CT_LIBICONV_NO_VERSIONS is not set -CT_LIBICONV_VERSION="1.15" -CT_LIBICONV_MIRRORS="$(CT_Mirrors GNU libiconv)" -CT_LIBICONV_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_LIBICONV_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LIBICONV_ARCHIVE_FORMATS=".tar.gz" -CT_LIBICONV_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_LIBS_MPC=y -CT_COMP_LIBS_MPC_PKG_KSYM="MPC" -CT_MPC_DIR_NAME="mpc" -CT_MPC_PKG_NAME="mpc" -CT_MPC_SRC_RELEASE=y -CT_MPC_PATCH_ORDER="global" -CT_MPC_V_1_1=y -# CT_MPC_V_1_0 is not set -# CT_MPC_NO_VERSIONS is not set -CT_MPC_VERSION="1.1.0" -CT_MPC_MIRRORS="http://www.multiprecision.org/downloads $(CT_Mirrors GNU mpc)" -CT_MPC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_MPC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_MPC_ARCHIVE_FORMATS=".tar.gz" -CT_MPC_SIGNATURE_FORMAT="packed/.sig" -CT_MPC_1_1_0_or_later=y -CT_MPC_1_1_0_or_older=y -CT_COMP_LIBS_MPFR=y -CT_COMP_LIBS_MPFR_PKG_KSYM="MPFR" -CT_MPFR_DIR_NAME="mpfr" -CT_MPFR_PKG_NAME="mpfr" -CT_MPFR_SRC_RELEASE=y -CT_MPFR_PATCH_ORDER="global" -CT_MPFR_V_4_1=y -# CT_MPFR_V_3_1 is not set -# CT_MPFR_NO_VERSIONS is not set -CT_MPFR_VERSION="4.1.0" -CT_MPFR_MIRRORS="http://www.mpfr.org/mpfr-${CT_MPFR_VERSION} $(CT_Mirrors GNU mpfr)" -CT_MPFR_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_MPFR_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_MPFR_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz .zip" -CT_MPFR_SIGNATURE_FORMAT="packed/.asc" -CT_MPFR_later_than_4_0_0=y -CT_MPFR_4_0_0_or_later=y -CT_MPFR_later_than_3_0_0=y -CT_MPFR_3_0_0_or_later=y -CT_MPFR_REQUIRE_3_0_0_or_later=y -CT_COMP_LIBS_NCURSES=y -CT_COMP_LIBS_NCURSES_PKG_KSYM="NCURSES" -CT_NCURSES_DIR_NAME="ncurses" -CT_NCURSES_PKG_NAME="ncurses" -CT_NCURSES_SRC_RELEASE=y -CT_NCURSES_PATCH_ORDER="global" -# CT_NCURSES_V_6_1 is not set -CT_NCURSES_V_6_0=y -# CT_NCURSES_NO_VERSIONS is not set -CT_NCURSES_VERSION="6.0" -CT_NCURSES_MIRRORS="ftp://invisible-island.net/ncurses $(CT_Mirrors GNU ncurses)" -CT_NCURSES_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_NCURSES_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_NCURSES_ARCHIVE_FORMATS=".tar.gz" -CT_NCURSES_SIGNATURE_FORMAT="packed/.sig" -CT_NCURSES_HOST_CONFIG_ARGS="" -CT_NCURSES_HOST_DISABLE_DB=y -CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100" -CT_NCURSES_TARGET_CONFIG_ARGS="" -# CT_NCURSES_TARGET_DISABLE_DB is not set -CT_NCURSES_TARGET_FALLBACKS="" -CT_COMP_LIBS_ZLIB=y -CT_COMP_LIBS_ZLIB_PKG_KSYM="ZLIB" -CT_ZLIB_DIR_NAME="zlib" -CT_ZLIB_PKG_NAME="zlib" -CT_ZLIB_SRC_RELEASE=y -CT_ZLIB_PATCH_ORDER="global" -CT_ZLIB_V_1_2_11=y -# CT_ZLIB_NO_VERSIONS is not set -CT_ZLIB_VERSION="1.2.11" -CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION}" -CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_ZLIB_SIGNATURE_FORMAT="packed/.asc" -CT_ALL_COMP_LIBS_CHOICES="CLOOG EXPAT GETTEXT GMP ISL LIBELF LIBICONV MPC MPFR NCURSES ZLIB" -CT_LIBICONV_NEEDED=y -CT_GETTEXT_NEEDED=y -CT_GMP_NEEDED=y -CT_MPFR_NEEDED=y -CT_ISL_NEEDED=y -CT_MPC_NEEDED=y -CT_LIBELF_TARGET=y -CT_EXPAT_NEEDED=y -CT_NCURSES_NEEDED=y -CT_ZLIB_NEEDED=y -CT_LIBICONV=y -CT_GETTEXT=y -CT_GMP=y -CT_MPFR=y -CT_ISL=y -CT_MPC=y -CT_EXPAT=y -CT_NCURSES=y -CT_ZLIB=y - -# -# Companion tools -# -# CT_COMP_TOOLS_FOR_HOST is not set -CT_COMP_TOOLS_AUTOCONF=y -CT_COMP_TOOLS_AUTOCONF_PKG_KSYM="AUTOCONF" -CT_AUTOCONF_DIR_NAME="autoconf" -CT_AUTOCONF_PKG_NAME="autoconf" -CT_AUTOCONF_SRC_RELEASE=y -CT_AUTOCONF_PATCH_ORDER="global" -CT_AUTOCONF_V_2_69=y -# CT_AUTOCONF_V_2_65 is not set -# CT_AUTOCONF_NO_VERSIONS is not set -CT_AUTOCONF_VERSION="2.69" -CT_AUTOCONF_MIRRORS="$(CT_Mirrors GNU autoconf)" -CT_AUTOCONF_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_AUTOCONF_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_AUTOCONF_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_AUTOCONF_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_TOOLS_AUTOMAKE=y -CT_COMP_TOOLS_AUTOMAKE_PKG_KSYM="AUTOMAKE" -CT_AUTOMAKE_DIR_NAME="automake" -CT_AUTOMAKE_PKG_NAME="automake" -CT_AUTOMAKE_SRC_RELEASE=y -CT_AUTOMAKE_PATCH_ORDER="global" -# CT_AUTOMAKE_V_1_16 is not set -CT_AUTOMAKE_V_1_15=y -# CT_AUTOMAKE_NO_VERSIONS is not set -CT_AUTOMAKE_VERSION="1.15.1" -CT_AUTOMAKE_MIRRORS="$(CT_Mirrors GNU automake)" -CT_AUTOMAKE_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_AUTOMAKE_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_AUTOMAKE_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_AUTOMAKE_SIGNATURE_FORMAT="packed/.sig" -# CT_COMP_TOOLS_BISON is not set -# CT_COMP_TOOLS_DTC is not set -CT_COMP_TOOLS_LIBTOOL=y -CT_COMP_TOOLS_LIBTOOL_PKG_KSYM="LIBTOOL" -CT_LIBTOOL_DIR_NAME="libtool" -CT_LIBTOOL_PKG_NAME="libtool" -CT_LIBTOOL_SRC_RELEASE=y -CT_LIBTOOL_PATCH_ORDER="global" -CT_LIBTOOL_V_2_4=y -# CT_LIBTOOL_NO_VERSIONS is not set -CT_LIBTOOL_VERSION="2.4.6" -CT_LIBTOOL_MIRRORS="$(CT_Mirrors GNU libtool)" -CT_LIBTOOL_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_LIBTOOL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LIBTOOL_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_LIBTOOL_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_TOOLS_M4=y -CT_COMP_TOOLS_M4_PKG_KSYM="M4" -CT_M4_DIR_NAME="m4" -CT_M4_PKG_NAME="m4" -CT_M4_SRC_RELEASE=y -CT_M4_PATCH_ORDER="global" -CT_M4_V_1_4=y -# CT_M4_NO_VERSIONS is not set -CT_M4_VERSION="1.4.18" -CT_M4_MIRRORS="$(CT_Mirrors GNU m4)" -CT_M4_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_M4_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_M4_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" -CT_M4_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_TOOLS_MAKE=y -CT_COMP_TOOLS_MAKE_PKG_KSYM="MAKE" -CT_MAKE_DIR_NAME="make" -CT_MAKE_PKG_NAME="make" -CT_MAKE_SRC_RELEASE=y -CT_MAKE_PATCH_ORDER="global" -CT_MAKE_V_4_2=y -# CT_MAKE_NO_VERSIONS is not set -CT_MAKE_VERSION="4.2.1" -CT_MAKE_MIRRORS="$(CT_Mirrors GNU make)" -CT_MAKE_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_MAKE_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_MAKE_ARCHIVE_FORMATS=".tar.bz2 .tar.gz" -CT_MAKE_SIGNATURE_FORMAT="packed/.sig" -CT_MAKE_later_than_4_0=y -CT_MAKE_4_0_or_later=y -# CT_MAKE_GMAKE_SYMLINK is not set -# CT_MAKE_GNUMAKE_SYMLINK is not set -CT_ALL_COMP_TOOLS_CHOICES="AUTOCONF AUTOMAKE BISON DTC LIBTOOL M4 MAKE" diff --git a/build-config/conf/crosstool/gcc-8.3.0/uClibc-ng-1.0.38/crosstool.x86_64.config b/build-config/conf/crosstool/gcc-8.3.0/uClibc-ng-1.0.38/crosstool.x86_64.config deleted file mode 100644 index 40b4254a7..000000000 --- a/build-config/conf/crosstool/gcc-8.3.0/uClibc-ng-1.0.38/crosstool.x86_64.config +++ /dev/null @@ -1,936 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# crosstool-NG Configuration -# -CT_CONFIGURE_has_static_link=y -CT_CONFIGURE_has_cxx11=y -CT_CONFIGURE_has_wget=y -CT_CONFIGURE_has_curl=y -CT_CONFIGURE_has_make_3_81_or_newer=y -CT_CONFIGURE_has_make_4_0_or_newer=y -CT_CONFIGURE_has_libtool_2_4_or_newer=y -CT_CONFIGURE_has_libtoolize_2_4_or_newer=y -CT_CONFIGURE_has_autoconf_2_65_or_newer=y -CT_CONFIGURE_has_autoreconf_2_65_or_newer=y -CT_CONFIGURE_has_automake_1_15_or_newer=y -CT_CONFIGURE_has_gnu_m4_1_4_12_or_newer=y -CT_CONFIGURE_has_python_3_4_or_newer=y -CT_CONFIGURE_has_bison_2_7_or_newer=y -CT_CONFIGURE_has_python=y -CT_CONFIGURE_has_dtc=y -CT_CONFIGURE_has_git=y -CT_CONFIGURE_has_md5sum=y -CT_CONFIGURE_has_sha1sum=y -CT_CONFIGURE_has_sha256sum=y -CT_CONFIGURE_has_sha512sum=y -CT_CONFIGURE_has_install_with_strip_program=y -CT_CONFIG_VERSION_CURRENT="3" -CT_CONFIG_VERSION="3" -CT_MODULES=y - -# -# Paths and misc options -# - -# -# crosstool-NG behavior -# -# CT_OBSOLETE is not set -# CT_EXPERIMENTAL is not set -# CT_DEBUG_CT is not set - -# -# Paths -# -CT_LOCAL_TARBALLS_DIR="${DOWNLOADDIR}" -CT_SAVE_TARBALLS=y -# CT_TARBALLS_BUILDROOT_LAYOUT is not set -CT_WORK_DIR="${CT_TOP_DIR}/build" -CT_BUILD_TOP_DIR="${CT_WORK_DIR:-${CT_TOP_DIR}/.build}/${CT_HOST:+HOST-${CT_HOST}/}${CT_TARGET}" -CT_PREFIX_DIR="${XTOOLS_INSTALL_DIR}/${CT_TARGET}" -CT_RM_RF_PREFIX_DIR=y -CT_REMOVE_DOCS=y -CT_INSTALL_LICENSES=y -CT_PREFIX_DIR_RO=y -CT_STRIP_HOST_TOOLCHAIN_EXECUTABLES=y -CT_STRIP_TARGET_TOOLCHAIN_EXECUTABLES=y - -# -# Downloading -# -# CT_DOWNLOAD_AGENT_WGET is not set -# CT_DOWNLOAD_AGENT_CURL is not set -CT_DOWNLOAD_AGENT_NONE=y -CT_FORBID_DOWNLOAD=y - -# -# Extracting -# -# CT_FORCE_EXTRACT is not set -CT_OVERRIDE_CONFIG_GUESS_SUB=y -# CT_ONLY_EXTRACT is not set -CT_PATCH_BUNDLED=y -# CT_PATCH_BUNDLED_LOCAL is not set -CT_PATCH_ORDER="bundled,local" -CT_PATCH_SINGLE=y -CT_PATCH_USE_LOCAL=y -CT_LOCAL_PATCH_DIR="${CROSSTOOL_NG_LOCAL_PATCHDIR}" - - -# -# Build behavior -# -CT_PARALLEL_JOBS=0 -CT_LOAD="" -CT_USE_PIPES=y -CT_EXTRA_CFLAGS_FOR_BUILD="" -CT_EXTRA_LDFLAGS_FOR_BUILD="" -CT_EXTRA_CFLAGS_FOR_HOST="" -CT_EXTRA_LDFLAGS_FOR_HOST="" -# CT_CONFIG_SHELL_SH is not set -# CT_CONFIG_SHELL_ASH is not set -CT_CONFIG_SHELL_BASH=y -# CT_CONFIG_SHELL_CUSTOM is not set -CT_CONFIG_SHELL="${bash}" - -# -# Logging -# -# CT_LOG_ERROR is not set -# CT_LOG_WARN is not set -CT_LOG_INFO=y -# CT_LOG_EXTRA is not set -# CT_LOG_ALL is not set -# CT_LOG_DEBUG is not set -CT_LOG_LEVEL_MAX="INFO" -# CT_LOG_SEE_TOOLS_WARN is not set -# CT_LOG_PROGRESS_BAR is not set -CT_LOG_TO_FILE=y -CT_LOG_FILE_COMPRESS=y - -# -# Target options -# -# CT_ARCH_ALPHA is not set -# CT_ARCH_ARC is not set -# CT_ARCH_ARM is not set -# CT_ARCH_AVR is not set -# CT_ARCH_M68K is not set -# CT_ARCH_MIPS is not set -# CT_ARCH_NIOS2 is not set -# CT_ARCH_POWERPC is not set -# CT_ARCH_S390 is not set -# CT_ARCH_SH is not set -# CT_ARCH_SPARC is not set -CT_ARCH_X86=y -# CT_ARCH_XTENSA is not set -CT_ARCH="x86" -CT_ARCH_CHOICE_KSYM="X86" -# CT_ARCH_ALPHA_EV4 is not set -# CT_ARCH_ALPHA_EV45 is not set -# CT_ARCH_ALPHA_EV5 is not set -# CT_ARCH_ALPHA_EV56 is not set -# CT_ARCH_ALPHA_EV6 is not set -# CT_ARCH_ALPHA_EV67 is not set -CT_ARCH_CPU="" -CT_ARCH_TUNE="" -CT_ARCH_X86_SHOW=y - -# -# Options for x86 -# -CT_ARCH_X86_PKG_KSYM="" -CT_ALL_ARCH_CHOICES="ALPHA ARC ARM AVR M68K MICROBLAZE MIPS MOXIE MSP430 NIOS2 POWERPC RISCV S390 SH SPARC X86 XTENSA" -CT_ARCH_SUFFIX="" -# CT_OMIT_TARGET_VENDOR is not set - -# -# Generic target options -# -# CT_MULTILIB is not set -CT_DEMULTILIB=y -CT_ARCH_USE_MMU=y -CT_ARCH_SUPPORTS_32=y -CT_ARCH_SUPPORTS_64=y -CT_ARCH_DEFAULT_32=y -CT_ARCH_BITNESS=64 -# CT_ARCH_32 is not set -CT_ARCH_64=y - -# -# Target optimisations -# -CT_ARCH_SUPPORTS_WITH_ARCH=y -CT_ARCH_SUPPORTS_WITH_CPU=y -CT_ARCH_SUPPORTS_WITH_TUNE=y -CT_ARCH_ARCH="" -CT_TARGET_CFLAGS="" -CT_TARGET_LDFLAGS="" - -# -# Toolchain options -# - -# -# General toolchain options -# -CT_FORCE_SYSROOT=y -CT_USE_SYSROOT=y -CT_SYSROOT_NAME="sysroot" -CT_SYSROOT_DIR_PREFIX="" -CT_WANTS_STATIC_LINK=y -CT_WANTS_STATIC_LINK_CXX=y -# CT_STATIC_TOOLCHAIN is not set -CT_SHOW_CT_VERSION=y -CT_TOOLCHAIN_PKGVERSION="ONIE-${LSB_RELEASE_TAG}" -CT_TOOLCHAIN_BUGURL="" - -# -# Tuple completion and aliasing -# -CT_TARGET_VENDOR="onie" -CT_TARGET_ALIAS_SED_EXPR="" -CT_TARGET_ALIAS="x86_64" - -# -# Toolchain type -# -CT_CROSS=y -# CT_CANADIAN is not set -CT_TOOLCHAIN_TYPE="cross" - -# -# Build system -# -CT_BUILD="" -CT_BUILD_PREFIX="" -CT_BUILD_SUFFIX="" - -# -# Misc options -# -CT_TOOLCHAIN_ENABLE_NLS=y - -# -# Operating System -# -CT_KERNEL_SUPPORTS_SHARED_LIBS=y -# CT_KERNEL_BARE_METAL is not set -CT_KERNEL_LINUX=y -CT_KERNEL="linux" -CT_KERNEL_CHOICE_KSYM="LINUX" -CT_KERNEL_LINUX_SHOW=y - -# -# Options for linux -# -# ONIE xtools.make will apply the value of LINUX_VERSION -# to set: -# CT_LINUX_VERSION a.b.c -# CT_LINUX_V_a_b=y -# Note this will require adding entries for newer kernels. -CT_KERNEL_LINUX_PKG_KSYM="LINUX" -CT_LINUX_DIR_NAME="linux" -CT_LINUX_PKG_NAME="linux" -CT_LINUX_SRC_RELEASE=y -CT_LINUX_PATCH_ORDER="global" -# CT_LINUX_V_4_20 is not set -# CT_LINUX_V_4_19 is not set -# CT_LINUX_V_4_18 is not set -# CT_LINUX_V_4_17 is not set -# CT_LINUX_V_4_16 is not set -# CT_LINUX_V_4_15 is not set -# CT_LINUX_V_4_14 is not set -# CT_LINUX_V_4_13 is not set -# CT_LINUX_V_4_12 is not set -# CT_LINUX_V_4_11 is not set -# CT_LINUX_V_4_10 is not set -# CT_LINUX_V_4_9 is not set -# CT_LINUX_V_4_4 is not set -# CT_LINUX_V_4_1 is not set -# CT_LINUX_V_3_16 is not set -# CT_LINUX_V_3_13 is not set -# CT_LINUX_V_3_12 is not set -# CT_LINUX_V_3_10 is not set -# CT_LINUX_V_3_4 is not set -# CT_LINUX_V_3_2 is not set -# CT_LINUX_V_2_6_32 is not set -# CT_LINUX_NO_VERSIONS is not set -CT_LINUX_VERSION="ONIE set by xtools.make" -CT_LINUX_MIRRORS="$(CT_Mirrors kernel.org linux ${CT_LINUX_VERSION})" -CT_LINUX_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_LINUX_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LINUX_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_LINUX_SIGNATURE_FORMAT="unpacked/.sign" -CT_LINUX_later_than_4_8=y -CT_LINUX_4_8_or_later=y -CT_LINUX_later_than_3_7=y -CT_LINUX_3_7_or_later=y -CT_LINUX_later_than_3_2=y -CT_LINUX_3_2_or_later=y -CT_KERNEL_LINUX_VERBOSITY_0=y -# CT_KERNEL_LINUX_VERBOSITY_1 is not set -# CT_KERNEL_LINUX_VERBOSITY_2 is not set -CT_KERNEL_LINUX_VERBOSE_LEVEL=0 -CT_KERNEL_LINUX_INSTALL_CHECK=y -CT_ALL_KERNEL_CHOICES="BARE_METAL LINUX WINDOWS" - -# -# Common kernel options -# -CT_SHARED_LIBS=y - -# -# Binary utilities -# -CT_ARCH_BINFMT_ELF=y -CT_BINUTILS_BINUTILS=y -CT_BINUTILS="binutils" -CT_BINUTILS_CHOICE_KSYM="BINUTILS" -CT_BINUTILS_BINUTILS_SHOW=y - -# -# Options for binutils -# -CT_BINUTILS_BINUTILS_PKG_KSYM="BINUTILS" -CT_BINUTILS_DIR_NAME="binutils" -CT_BINUTILS_USE_GNU=y -CT_BINUTILS_USE="BINUTILS" -CT_BINUTILS_PKG_NAME="binutils" -CT_BINUTILS_SRC_RELEASE=y -CT_BINUTILS_PATCH_ORDER="global" -CT_BINUTILS_V_2_32=y -# CT_BINUTILS_V_2_31 is not set -# CT_BINUTILS_V_2_30 is not set -# CT_BINUTILS_V_2_29 is not set -# CT_BINUTILS_V_2_28 is not set -# CT_BINUTILS_V_2_27 is not set -# CT_BINUTILS_V_2_26 is not set -# CT_BINUTILS_NO_VERSIONS is not set -CT_BINUTILS_VERSION="2.32" -CT_BINUTILS_MIRRORS="$(CT_Mirrors GNU binutils) $(CT_Mirrors sourceware binutils/releases)" -CT_BINUTILS_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_BINUTILS_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_BINUTILS_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" -CT_BINUTILS_SIGNATURE_FORMAT="packed/.sig" -CT_BINUTILS_later_than_2_30=y -CT_BINUTILS_2_30_or_later=y -CT_BINUTILS_later_than_2_27=y -CT_BINUTILS_2_27_or_later=y -CT_BINUTILS_later_than_2_25=y -CT_BINUTILS_2_25_or_later=y -CT_BINUTILS_later_than_2_23=y -CT_BINUTILS_2_23_or_later=y - -# -# GNU binutils -# -CT_BINUTILS_HAS_HASH_STYLE=y -CT_BINUTILS_HAS_GOLD=y -CT_BINUTILS_HAS_PLUGINS=y -CT_BINUTILS_HAS_PKGVERSION_BUGURL=y -CT_BINUTILS_GOLD_SUPPORTS_ARCH=y -CT_BINUTILS_GOLD_SUPPORT=y -CT_BINUTILS_LINKER_LD=y -# CT_BINUTILS_LINKER_GOLD is not set -# CT_BINUTILS_LINKER_LD_GOLD is not set -# CT_BINUTILS_LINKER_GOLD_LD is not set -CT_BINUTILS_LINKERS_LIST="ld" -CT_BINUTILS_LINKER_DEFAULT="bfd" -# CT_BINUTILS_PLUGINS is not set -CT_BINUTILS_RELRO=m -CT_BINUTILS_EXTRA_CONFIG_ARRAY="" -CT_BINUTILS_FOR_TARGET=y -CT_BINUTILS_FOR_TARGET_IBERTY=y -CT_BINUTILS_FOR_TARGET_BFD=y -CT_ALL_BINUTILS_CHOICES="BINUTILS" - -# -# C-library -# -# CT_LIBC_GLIBC is not set -# CT_LIBC_NEWLIB is not set -# CT_LIBC_NONE is not set -CT_LIBC_UCLIBC=y -CT_LIBC="uClibc" -CT_LIBC_CHOICE_KSYM="UCLIBC" -CT_THREADS="nptl" -# CT_GLIBC_USE_GNU is not set -# CT_GLIBC_SRC_RELEASE is not set -# CT_GLIBC_V_2_29 is not set -# CT_GLIBC_V_2_28 is not set -# CT_GLIBC_V_2_27 is not set -# CT_GLIBC_V_2_26 is not set -# CT_GLIBC_V_2_25 is not set -# CT_GLIBC_V_2_24 is not set -# CT_GLIBC_V_2_23 is not set -# CT_GLIBC_V_2_19 is not set -# CT_GLIBC_V_2_17 is not set -# CT_GLIBC_V_2_12_1 is not set -# CT_NEWLIB_USE_REDHAT is not set -# CT_NEWLIB_SRC_RELEASE is not set -# CT_NEWLIB_V_3_1 is not set -# CT_NEWLIB_V_3_0 is not set -# CT_NEWLIB_V_2_5 is not set -CT_LIBC_UCLIBC_SHOW=y - -# -# Options for uClibc -# -CT_LIBC_UCLIBC_PKG_KSYM="UCLIBC" -CT_UCLIBC_DIR_NAME="uClibc" -CT_UCLIBC_USE_UCLIBC_NG_ORG=y -CT_UCLIBC_USE="UCLIBC_NG" -CT_UCLIBC_NG_PKG_NAME="uClibc-ng" -CT_UCLIBC_NG_SRC_RELEASE=y -CT_UCLIBC_NG_PATCH_ORDER="global" -# CT_UCLIBC_NG_V_1_0_31 is not set -# CT_UCLIBC_NG_V_1_0_30 is not set -# CT_UCLIBC_NG_V_1_0_29 is not set -# CT_UCLIBC_NG_V_1_0_28 is not set -# CT_UCLIBC_NG_V_1_0_27 is not set -# CT_UCLIBC_NG_V_1_0_26 is not set -#CT_UCLIBC_NG_V_1_0_35 is not set -CT_UCLIBC_NG_V_1_0_38=y -# CT_UCLIBC_NG_NO_VERSIONS is not set -CT_UCLIBC_NG_VERSION="1.0.38" -CT_UCLIBC_NG_MIRRORS="http://downloads.uclibc-ng.org/releases/${CT_UCLIBC_NG_VERSION}" -CT_UCLIBC_NG_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_UCLIBC_NG_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_UCLIBC_NG_ARCHIVE_FORMATS=".tar.xz .tar.lz .tar.bz2 .tar.gz" -CT_UCLIBC_NG_SIGNATURE_FORMAT="packed/.asc" -CT_UCLIBC_later_than_1_0_23=y -CT_UCLIBC_1_0_23_or_later=y -CT_UCLIBC_later_than_1_0_21=y -CT_UCLIBC_1_0_21_or_later=y -CT_UCLIBC_later_than_1_0_15=y -CT_UCLIBC_1_0_15_or_later=y -CT_UCLIBC_later_than_1_0_0=y -CT_UCLIBC_1_0_0_or_later=y -CT_UCLIBC_later_than_0_9_33_2=y -CT_UCLIBC_0_9_33_2_or_later=y -CT_LIBC_UCLIBC_HAS_LIBICONV=y -CT_LIBC_UCLIBC_PARALLEL=y -CT_LIBC_UCLIBC_NG=y -CT_UCLIBC_MERGED_LINUXTHREADS=y -CT_LIBC_UCLIBC_VERBOSITY_0=y -# CT_LIBC_UCLIBC_VERBOSITY_1 is not set -# CT_LIBC_UCLIBC_VERBOSITY_2 is not set -CT_LIBC_UCLIBC_VERBOSITY="" -CT_LIBC_UCLIBC_DEBUG_LEVEL_0=y -# CT_LIBC_UCLIBC_DEBUG_LEVEL_1 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_2 is not set -# CT_LIBC_UCLIBC_DEBUG_LEVEL_3 is not set -CT_LIBC_UCLIBC_DEBUG_LEVEL=0 -CT_LIBC_UCLIBC_CONFIG_FILE="${UCLIBC_CONFIG}" -CT_LIBC_UCLIBC_LNXTHRD="" -CT_LIBC_UCLIBC_LOCALES=y -# CT_LIBC_UCLIBC_LIBICONV is not set -CT_LIBC_UCLIBC_IPV6=y -CT_LIBC_UCLIBC_WCHAR=y -CT_LIBC_UCLIBC_FENV=y -CT_LIBC_UCLIBC_HAS_SSP=y -# CT_LIBC_UCLIBC_BUILD_SSP is not set -CT_ALL_LIBC_CHOICES="AVR_LIBC BIONIC GLIBC MINGW_W64 MOXIEBOX MUSL NEWLIB NONE UCLIBC" -CT_LIBC_SUPPORT_THREADS_ANY=y -CT_LIBC_SUPPORT_THREADS_NATIVE=y -CT_LIBC_SUPPORT_THREADS_LT=y -CT_LIBC_SUPPORT_THREADS_NONE=y - -# -# Common C library options -# -CT_THREADS_NATIVE=y -# CT_THREADS_LT is not set -# CT_THREADS_NONE is not set -# CT_CREATE_LDSO_CONF is not set -CT_LIBC_XLDD=y - -# -# C compiler -# -CT_CC_CORE_PASSES_NEEDED=y -CT_CC_CORE_PASS_1_NEEDED=y -CT_CC_CORE_PASS_2_NEEDED=y -CT_CC_SUPPORT_CXX=y -CT_CC_SUPPORT_FORTRAN=y -CT_CC_SUPPORT_ADA=y -CT_CC_SUPPORT_OBJC=y -CT_CC_SUPPORT_OBJCXX=y -CT_CC_SUPPORT_GOLANG=y -CT_CC_GCC=y -CT_CC="gcc" -CT_CC_CHOICE_KSYM="GCC" -CT_CC_GCC_SHOW=y - -# -# Options for gcc -# -CT_CC_GCC_PKG_KSYM="GCC" -CT_GCC_DIR_NAME="gcc" -CT_GCC_USE_GNU=y -CT_GCC_USE="GCC" -CT_GCC_PKG_NAME="gcc" -CT_GCC_SRC_RELEASE=y -CT_GCC_PATCH_ORDER="global" -CT_GCC_V_8=y -# CT_GCC_V_7 is not set -# CT_GCC_V_6 is not set -# CT_GCC_V_5 is not set -# CT_GCC_V_4_9 is not set -# CT_GCC_NO_VERSIONS is not set -CT_GCC_VERSION="8.3.0" -CT_GCC_MIRRORS="$(CT_Mirrors GNU gcc/gcc-${CT_GCC_VERSION}) $(CT_Mirrors sourceware gcc/releases/gcc-${CT_GCC_VERSION})" -CT_GCC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GCC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GCC_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_GCC_SIGNATURE_FORMAT="" -CT_GCC_later_than_7=y -CT_GCC_7_or_later=y -CT_GCC_later_than_6=y -CT_GCC_6_or_later=y -CT_GCC_later_than_5=y -CT_GCC_5_or_later=y -CT_GCC_later_than_4_9=y -CT_GCC_4_9_or_later=y -CT_GCC_later_than_4_8=y -CT_GCC_4_8_or_later=y -CT_CC_GCC_HAS_LIBMPX=y -CT_CC_GCC_ENABLE_CXX_FLAGS="" -CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_EXTRA_CONFIG_ARRAY="" -CT_CC_GCC_STATIC_LIBSTDCXX=y -# CT_CC_GCC_SYSTEM_ZLIB is not set -CT_CC_GCC_CONFIG_TLS=m - -# -# Optimisation features -# -CT_CC_GCC_USE_GRAPHITE=y -CT_CC_GCC_USE_LTO=y - -# -# Settings for libraries running on target -# -CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y -# CT_CC_GCC_LIBMUDFLAP is not set -# CT_CC_GCC_LIBGOMP is not set -# CT_CC_GCC_LIBSSP is not set -# CT_CC_GCC_LIBQUADMATH is not set -# CT_CC_GCC_LIBMPX is not set - -# -# Misc. obscure options. -# -CT_CC_CXA_ATEXIT=y -# CT_CC_GCC_DISABLE_PCH is not set -CT_CC_GCC_SJLJ_EXCEPTIONS=m -CT_CC_GCC_LDBL_128=m -# CT_CC_GCC_BUILD_ID is not set -CT_CC_GCC_LNK_HASH_STYLE_DEFAULT=y -# CT_CC_GCC_LNK_HASH_STYLE_SYSV is not set -# CT_CC_GCC_LNK_HASH_STYLE_GNU is not set -# CT_CC_GCC_LNK_HASH_STYLE_BOTH is not set -CT_CC_GCC_LNK_HASH_STYLE="" -CT_CC_GCC_DEC_FLOAT_AUTO=y -# CT_CC_GCC_DEC_FLOAT_BID is not set -# CT_CC_GCC_DEC_FLOAT_DPD is not set -# CT_CC_GCC_DEC_FLOATS_NO is not set -CT_ALL_CC_CHOICES="GCC" - -# -# Additional supported languages: -# -CT_CC_LANG_CXX=y -# CT_CC_LANG_FORTRAN is not set - -# -# Debug facilities -# -CT_DEBUG_DUMA=y -CT_DEBUG_DUMA_PKG_KSYM="DUMA" -CT_DUMA_DIR_NAME="duma" -CT_DUMA_PKG_NAME="duma" -CT_DUMA_SRC_RELEASE=y -CT_DUMA_PATCH_ORDER="global" -CT_DUMA_V_2_5_15=y -# CT_DUMA_NO_VERSIONS is not set -CT_DUMA_VERSION="2_5_15" -CT_DUMA_MIRRORS="http://downloads.sourceforge.net/project/duma/duma/${CT_DUMA_VERSION//_/.}" -CT_DUMA_ARCHIVE_FILENAME="@{pkg_name}_@{version}" -CT_DUMA_ARCHIVE_DIRNAME="@{pkg_name}_@{version}" -CT_DUMA_ARCHIVE_FORMATS=".tar.gz .zip" -CT_DUMA_SIGNATURE_FORMAT="" -CT_DUMA_SO=y -CT_DUMA_CUSTOM_WRAPPER=y -CT_DEBUG_GDB=y -CT_DEBUG_GDB_PKG_KSYM="GDB" -CT_GDB_DIR_NAME="gdb" -CT_GDB_USE_GNU=y -CT_GDB_USE="GDB" -CT_GDB_PKG_NAME="gdb" -CT_GDB_SRC_RELEASE=y -CT_GDB_PATCH_ORDER="global" -# CT_GDB_V_8_2 is not set -# CT_GDB_V_8_1 is not set -# CT_GDB_V_8_0 is not set -CT_GDB_V_7_12=y -# CT_GDB_V_7_11 is not set -# CT_GDB_NO_VERSIONS is not set -CT_GDB_VERSION="7.12.1" -CT_GDB_MIRRORS="$(CT_Mirrors GNU gdb) $(CT_Mirrors sourceware gdb/releases)" -CT_GDB_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GDB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GDB_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_GDB_SIGNATURE_FORMAT="" -CT_GDB_8_0_or_older=y -CT_GDB_older_than_8_0=y -CT_GDB_later_than_7_12=y -CT_GDB_7_12_or_later=y -CT_GDB_later_than_7_2=y -CT_GDB_7_2_or_later=y -CT_GDB_later_than_7_0=y -CT_GDB_7_0_or_later=y -CT_GDB_CROSS=y -# CT_GDB_CROSS_STATIC is not set -# CT_GDB_CROSS_SIM is not set -CT_GDB_CROSS_PYTHON=y -CT_GDB_CROSS_PYTHON_BINARY="" -CT_GDB_CROSS_EXTRA_CONFIG_ARRAY="" -# CT_GDB_NATIVE is not set -CT_GDB_GDBSERVER=y -# CT_GDB_NATIVE_STATIC_LIBSTDCXX is not set -CT_GDB_HAS_PKGVERSION_BUGURL=y -CT_GDB_HAS_PYTHON=y -CT_GDB_INSTALL_GDBINIT=y -CT_GDB_HAS_DISABLE_CXX_BUILD=y -CT_GDB_HAS_IPA_LIB=y -CT_DEBUG_LTRACE=y -CT_DEBUG_LTRACE_PKG_KSYM="LTRACE" -CT_LTRACE_DIR_NAME="ltrace" -CT_LTRACE_PKG_NAME="ltrace" -CT_LTRACE_SRC_RELEASE=y -CT_LTRACE_PATCH_ORDER="global" -CT_LTRACE_V_0_7_3=y -# CT_LTRACE_NO_VERSIONS is not set -CT_LTRACE_VERSION="0.7.3" -CT_LTRACE_MIRRORS="http://ftp.debian.org/debian/pool/main/l/ltrace ftp:://ftp.debian.org/debian/pool/main/l/ltrace" -CT_LTRACE_ARCHIVE_FILENAME="@{pkg_name}_@{version}.orig" -CT_LTRACE_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LTRACE_ARCHIVE_FORMATS=".tar.bz2" -CT_LTRACE_SIGNATURE_FORMAT="" -CT_DEBUG_STRACE=y -CT_DEBUG_STRACE_PKG_KSYM="STRACE" -CT_STRACE_DIR_NAME="strace" -CT_STRACE_PKG_NAME="strace" -CT_STRACE_SRC_RELEASE=y -CT_STRACE_PATCH_ORDER="global" -CT_STRACE_V_4_26=y -# CT_STRACE_V_4_25 is not set -# CT_STRACE_V_4_24 is not set -# CT_STRACE_V_4_23 is not set -# CT_STRACE_V_4_22 is not set -# CT_STRACE_V_4_21 is not set -# CT_STRACE_V_4_20 is not set -# CT_STRACE_V_4_19 is not set -# CT_STRACE_V_4_18 is not set -# CT_STRACE_V_4_17 is not set -# CT_STRACE_V_4_16 is not set -# CT_STRACE_V_4_15 is not set -# CT_STRACE_NO_VERSIONS is not set -CT_STRACE_VERSION="4.26" -CT_STRACE_MIRRORS="https://strace.io/files/${CT_STRACE_VERSION}" -CT_STRACE_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_STRACE_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_STRACE_ARCHIVE_FORMATS=".tar.xz" -CT_STRACE_SIGNATURE_FORMAT="" -CT_ALL_DEBUG_CHOICES="DUMA GDB LTRACE STRACE" - -# -# Companion libraries -# -# CT_COMPLIBS_CHECK is not set -# CT_COMP_LIBS_CLOOG is not set -CT_COMP_LIBS_EXPAT=y -CT_COMP_LIBS_EXPAT_PKG_KSYM="EXPAT" -CT_EXPAT_DIR_NAME="expat" -CT_EXPAT_PKG_NAME="expat" -CT_EXPAT_SRC_RELEASE=y -CT_EXPAT_PATCH_ORDER="global" -CT_EXPAT_V_2_2=y -# CT_EXPAT_NO_VERSIONS is not set -CT_EXPAT_VERSION="2.2.6" -CT_EXPAT_MIRRORS="http://downloads.sourceforge.net/project/expat/expat/${CT_EXPAT_VERSION}" -CT_EXPAT_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_EXPAT_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_EXPAT_ARCHIVE_FORMATS=".tar.bz2" -CT_EXPAT_SIGNATURE_FORMAT="" -CT_COMP_LIBS_GETTEXT=y -CT_COMP_LIBS_GETTEXT_PKG_KSYM="GETTEXT" -CT_GETTEXT_DIR_NAME="gettext" -CT_GETTEXT_PKG_NAME="gettext" -CT_GETTEXT_SRC_RELEASE=y -CT_GETTEXT_PATCH_ORDER="global" -CT_GETTEXT_V_0_19_8_1=y -# CT_GETTEXT_NO_VERSIONS is not set -CT_GETTEXT_VERSION="0.19.8.1" -CT_GETTEXT_MIRRORS="$(CT_Mirrors GNU gettext)" -CT_GETTEXT_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GETTEXT_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GETTEXT_ARCHIVE_FORMATS=".tar.xz .tar.lz .tar.gz" -CT_GETTEXT_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_LIBS_GMP=y -CT_COMP_LIBS_GMP_PKG_KSYM="GMP" -CT_GMP_DIR_NAME="gmp" -CT_GMP_PKG_NAME="gmp" -CT_GMP_SRC_RELEASE=y -CT_GMP_PATCH_ORDER="global" -CT_GMP_V_6_1=y -# CT_GMP_NO_VERSIONS is not set -CT_GMP_VERSION="6.1.2" -CT_GMP_MIRRORS="https://gmplib.org/download/gmp https://gmplib.org/download/gmp/archive $(CT_Mirrors GNU gmp)" -CT_GMP_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_GMP_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_GMP_ARCHIVE_FORMATS=".tar.xz .tar.lz .tar.bz2" -CT_GMP_SIGNATURE_FORMAT="packed/.sig" -CT_GMP_later_than_5_1_0=y -CT_GMP_5_1_0_or_later=y -CT_GMP_later_than_5_0_0=y -CT_GMP_5_0_0_or_later=y -CT_GMP_REQUIRE_5_0_0_or_later=y -CT_COMP_LIBS_ISL=y -CT_COMP_LIBS_ISL_PKG_KSYM="ISL" -CT_ISL_DIR_NAME="isl" -CT_ISL_PKG_NAME="isl" -CT_ISL_SRC_RELEASE=y -CT_ISL_PATCH_ORDER="global" -CT_ISL_V_0_20=y -# CT_ISL_V_0_19 is not set -# CT_ISL_V_0_18 is not set -# CT_ISL_V_0_17 is not set -# CT_ISL_V_0_16 is not set -# CT_ISL_V_0_15 is not set -# CT_ISL_NO_VERSIONS is not set -CT_ISL_VERSION="0.20" -CT_ISL_MIRRORS="http://isl.gforge.inria.fr" -CT_ISL_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_ISL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_ISL_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" -CT_ISL_SIGNATURE_FORMAT="" -CT_ISL_later_than_0_18=y -CT_ISL_0_18_or_later=y -CT_ISL_later_than_0_15=y -CT_ISL_0_15_or_later=y -CT_ISL_REQUIRE_0_15_or_later=y -CT_ISL_later_than_0_14=y -CT_ISL_0_14_or_later=y -CT_ISL_REQUIRE_0_14_or_later=y -CT_ISL_later_than_0_13=y -CT_ISL_0_13_or_later=y -CT_ISL_later_than_0_12=y -CT_ISL_0_12_or_later=y -CT_ISL_REQUIRE_0_12_or_later=y -CT_COMP_LIBS_LIBELF=y -CT_COMP_LIBS_LIBELF_PKG_KSYM="LIBELF" -CT_LIBELF_DIR_NAME="libelf" -CT_LIBELF_PKG_NAME="libelf" -CT_LIBELF_SRC_RELEASE=y -CT_LIBELF_PATCH_ORDER="global" -CT_LIBELF_V_0_8=y -# CT_LIBELF_NO_VERSIONS is not set -CT_LIBELF_VERSION="0.8.13" -CT_LIBELF_MIRRORS="http://www.mr511.de/software https://fossies.org/linux/misc/old" -CT_LIBELF_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_LIBELF_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LIBELF_ARCHIVE_FORMATS=".tar.gz" -CT_LIBELF_SIGNATURE_FORMAT="" -CT_COMP_LIBS_LIBICONV=y -CT_COMP_LIBS_LIBICONV_PKG_KSYM="LIBICONV" -CT_LIBICONV_DIR_NAME="libiconv" -CT_LIBICONV_PKG_NAME="libiconv" -CT_LIBICONV_SRC_RELEASE=y -CT_LIBICONV_PATCH_ORDER="global" -CT_LIBICONV_V_1_15=y -# CT_LIBICONV_NO_VERSIONS is not set -CT_LIBICONV_VERSION="1.15" -CT_LIBICONV_MIRRORS="$(CT_Mirrors GNU libiconv)" -CT_LIBICONV_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_LIBICONV_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LIBICONV_ARCHIVE_FORMATS=".tar.gz" -CT_LIBICONV_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_LIBS_MPC=y -CT_COMP_LIBS_MPC_PKG_KSYM="MPC" -CT_MPC_DIR_NAME="mpc" -CT_MPC_PKG_NAME="mpc" -CT_MPC_SRC_RELEASE=y -CT_MPC_PATCH_ORDER="global" -CT_MPC_V_1_1=y -# CT_MPC_V_1_0 is not set -# CT_MPC_NO_VERSIONS is not set -CT_MPC_VERSION="1.1.0" -CT_MPC_MIRRORS="http://www.multiprecision.org/downloads $(CT_Mirrors GNU mpc)" -CT_MPC_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_MPC_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_MPC_ARCHIVE_FORMATS=".tar.gz" -CT_MPC_SIGNATURE_FORMAT="packed/.sig" -CT_MPC_1_1_0_or_later=y -CT_MPC_1_1_0_or_older=y -CT_COMP_LIBS_MPFR=y -CT_COMP_LIBS_MPFR_PKG_KSYM="MPFR" -CT_MPFR_DIR_NAME="mpfr" -CT_MPFR_PKG_NAME="mpfr" -CT_MPFR_SRC_RELEASE=y -CT_MPFR_PATCH_ORDER="global" -CT_MPFR_V_4_1=y -# CT_MPFR_V_3_1 is not set -# CT_MPFR_NO_VERSIONS is not set -CT_MPFR_VERSION="4.1.0" -CT_MPFR_MIRRORS="http://www.mpfr.org/mpfr-${CT_MPFR_VERSION} $(CT_Mirrors GNU mpfr)" -CT_MPFR_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_MPFR_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_MPFR_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz .zip" -CT_MPFR_SIGNATURE_FORMAT="packed/.asc" -CT_MPFR_later_than_4_0_0=y -CT_MPFR_4_0_0_or_later=y -CT_MPFR_later_than_3_0_0=y -CT_MPFR_3_0_0_or_later=y -CT_MPFR_REQUIRE_3_0_0_or_later=y -CT_COMP_LIBS_NCURSES=y -CT_COMP_LIBS_NCURSES_PKG_KSYM="NCURSES" -CT_NCURSES_DIR_NAME="ncurses" -CT_NCURSES_PKG_NAME="ncurses" -CT_NCURSES_SRC_RELEASE=y -CT_NCURSES_PATCH_ORDER="global" -# CT_NCURSES_V_6_1 is not set -CT_NCURSES_V_6_0=y -# CT_NCURSES_NO_VERSIONS is not set -CT_NCURSES_VERSION="6.0" -CT_NCURSES_MIRRORS="ftp://invisible-island.net/ncurses $(CT_Mirrors GNU ncurses)" -CT_NCURSES_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_NCURSES_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_NCURSES_ARCHIVE_FORMATS=".tar.gz" -CT_NCURSES_SIGNATURE_FORMAT="packed/.sig" -CT_NCURSES_HOST_CONFIG_ARGS="" -CT_NCURSES_HOST_DISABLE_DB=y -CT_NCURSES_HOST_FALLBACKS="linux,xterm,xterm-color,xterm-256color,vt100" -CT_NCURSES_TARGET_CONFIG_ARGS="" -# CT_NCURSES_TARGET_DISABLE_DB is not set -CT_NCURSES_TARGET_FALLBACKS="" -CT_COMP_LIBS_ZLIB=y -CT_COMP_LIBS_ZLIB_PKG_KSYM="ZLIB" -CT_ZLIB_DIR_NAME="zlib" -CT_ZLIB_PKG_NAME="zlib" -CT_ZLIB_SRC_RELEASE=y -CT_ZLIB_PATCH_ORDER="global" -CT_ZLIB_V_1_2_11=y -# CT_ZLIB_NO_VERSIONS is not set -CT_ZLIB_VERSION="1.2.11" -CT_ZLIB_MIRRORS="http://downloads.sourceforge.net/project/libpng/zlib/${CT_ZLIB_VERSION}" -CT_ZLIB_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_ZLIB_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_ZLIB_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_ZLIB_SIGNATURE_FORMAT="packed/.asc" -CT_ALL_COMP_LIBS_CHOICES="CLOOG EXPAT GETTEXT GMP ISL LIBELF LIBICONV MPC MPFR NCURSES ZLIB" -CT_LIBICONV_NEEDED=y -CT_GETTEXT_NEEDED=y -CT_GMP_NEEDED=y -CT_MPFR_NEEDED=y -CT_ISL_NEEDED=y -CT_MPC_NEEDED=y -CT_LIBELF_TARGET=y -CT_EXPAT_NEEDED=y -CT_NCURSES_NEEDED=y -CT_ZLIB_NEEDED=y -CT_LIBICONV=y -CT_GETTEXT=y -CT_GMP=y -CT_MPFR=y -CT_ISL=y -CT_MPC=y -CT_EXPAT=y -CT_NCURSES=y -CT_ZLIB=y - -# -# Companion tools -# -# CT_COMP_TOOLS_FOR_HOST is not set -CT_COMP_TOOLS_AUTOCONF=y -CT_COMP_TOOLS_AUTOCONF_PKG_KSYM="AUTOCONF" -CT_AUTOCONF_DIR_NAME="autoconf" -CT_AUTOCONF_PKG_NAME="autoconf" -CT_AUTOCONF_SRC_RELEASE=y -CT_AUTOCONF_PATCH_ORDER="global" -CT_AUTOCONF_V_2_69=y -# CT_AUTOCONF_V_2_65 is not set -# CT_AUTOCONF_NO_VERSIONS is not set -CT_AUTOCONF_VERSION="2.69" -CT_AUTOCONF_MIRRORS="$(CT_Mirrors GNU autoconf)" -CT_AUTOCONF_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_AUTOCONF_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_AUTOCONF_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_AUTOCONF_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_TOOLS_AUTOMAKE=y -CT_COMP_TOOLS_AUTOMAKE_PKG_KSYM="AUTOMAKE" -CT_AUTOMAKE_DIR_NAME="automake" -CT_AUTOMAKE_PKG_NAME="automake" -CT_AUTOMAKE_SRC_RELEASE=y -CT_AUTOMAKE_PATCH_ORDER="global" -# CT_AUTOMAKE_V_1_16 is not set -CT_AUTOMAKE_V_1_15=y -# CT_AUTOMAKE_NO_VERSIONS is not set -CT_AUTOMAKE_VERSION="1.15.1" -CT_AUTOMAKE_MIRRORS="$(CT_Mirrors GNU automake)" -CT_AUTOMAKE_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_AUTOMAKE_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_AUTOMAKE_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_AUTOMAKE_SIGNATURE_FORMAT="packed/.sig" -# CT_COMP_TOOLS_BISON is not set -# CT_COMP_TOOLS_DTC is not set -CT_COMP_TOOLS_LIBTOOL=y -CT_COMP_TOOLS_LIBTOOL_PKG_KSYM="LIBTOOL" -CT_LIBTOOL_DIR_NAME="libtool" -CT_LIBTOOL_PKG_NAME="libtool" -CT_LIBTOOL_SRC_RELEASE=y -CT_LIBTOOL_PATCH_ORDER="global" -CT_LIBTOOL_V_2_4=y -# CT_LIBTOOL_NO_VERSIONS is not set -CT_LIBTOOL_VERSION="2.4.6" -CT_LIBTOOL_MIRRORS="$(CT_Mirrors GNU libtool)" -CT_LIBTOOL_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_LIBTOOL_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_LIBTOOL_ARCHIVE_FORMATS=".tar.xz .tar.gz" -CT_LIBTOOL_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_TOOLS_M4=y -CT_COMP_TOOLS_M4_PKG_KSYM="M4" -CT_M4_DIR_NAME="m4" -CT_M4_PKG_NAME="m4" -CT_M4_SRC_RELEASE=y -CT_M4_PATCH_ORDER="global" -CT_M4_V_1_4=y -# CT_M4_NO_VERSIONS is not set -CT_M4_VERSION="1.4.18" -CT_M4_MIRRORS="$(CT_Mirrors GNU m4)" -CT_M4_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_M4_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_M4_ARCHIVE_FORMATS=".tar.xz .tar.bz2 .tar.gz" -CT_M4_SIGNATURE_FORMAT="packed/.sig" -CT_COMP_TOOLS_MAKE=y -CT_COMP_TOOLS_MAKE_PKG_KSYM="MAKE" -CT_MAKE_DIR_NAME="make" -CT_MAKE_PKG_NAME="make" -CT_MAKE_SRC_RELEASE=y -CT_MAKE_PATCH_ORDER="global" -CT_MAKE_V_4_2=y -# CT_MAKE_NO_VERSIONS is not set -CT_MAKE_VERSION="4.2.1" -CT_MAKE_MIRRORS="$(CT_Mirrors GNU make)" -CT_MAKE_ARCHIVE_FILENAME="@{pkg_name}-@{version}" -CT_MAKE_ARCHIVE_DIRNAME="@{pkg_name}-@{version}" -CT_MAKE_ARCHIVE_FORMATS=".tar.bz2 .tar.gz" -CT_MAKE_SIGNATURE_FORMAT="packed/.sig" -CT_MAKE_later_than_4_0=y -CT_MAKE_4_0_or_later=y -# CT_MAKE_GMAKE_SYMLINK is not set -# CT_MAKE_GNUMAKE_SYMLINK is not set -CT_ALL_COMP_TOOLS_CHOICES="AUTOCONF AUTOMAKE BISON DTC LIBTOOL M4 MAKE" diff --git a/build-config/conf/uclibc/1.0.22/uclibc.armv7a.config b/build-config/conf/uclibc/1.0.22/uclibc.armv7a.config deleted file mode 100644 index aa7e26c63..000000000 --- a/build-config/conf/uclibc/1.0.22/uclibc.armv7a.config +++ /dev/null @@ -1,244 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# uClibc-ng 1.0.22 C Library Configuration -# -# TARGET_aarch64 is not set -# TARGET_alpha is not set -# TARGET_arc is not set -TARGET_arm=y -# TARGET_avr32 is not set -# TARGET_bfin is not set -# TARGET_c6x is not set -# TARGET_cris is not set -# TARGET_frv is not set -# TARGET_h8300 is not set -# TARGET_hppa is not set -# TARGET_i386 is not set -# TARGET_ia64 is not set -# TARGET_lm32 is not set -# TARGET_m68k is not set -# TARGET_metag is not set -# TARGET_microblaze is not set -# TARGET_mips is not set -# TARGET_nds32 is not set -# TARGET_nios2 is not set -# TARGET_or1k is not set -# TARGET_powerpc is not set -# TARGET_sh is not set -# TARGET_sparc is not set -# TARGET_x86_64 is not set -# TARGET_xtensa is not set - -# -# Target Architecture Features and Options -# -TARGET_ARCH="arm" -FORCE_OPTIONS_FOR_ARCH=y -CONFIG_ARM_EABI=y -TARGET_SUBARCH="" - -# -# Using ELF file format -# -ARCH_HAS_DEPRECATED_SYSCALLS=y -ARCH_ANY_ENDIAN=y -ARCH_LITTLE_ENDIAN=y -# ARCH_WANTS_BIG_ENDIAN is not set -ARCH_WANTS_LITTLE_ENDIAN=y -ARCH_HAS_MMU=y -ARCH_USE_MMU=y -UCLIBC_HAS_FLOATS=y -# UCLIBC_HAS_FPU is not set -UCLIBC_HAS_SOFT_FLOAT=y -# DO_C99_MATH is not set -# DO_XSI_MATH is not set -UCLIBC_HAS_FENV=y -KERNEL_HEADERS="/usr/include" -HAVE_DOT_CONFIG=y - -# -# General Library Settings -# -DOPIC=y -ARCH_HAS_UCONTEXT=y -HAVE_SHARED=y -# FORCE_SHAREABLE_TEXT_SEGMENTS is not set -LDSO_LDD_SUPPORT=y -# LDSO_CACHE_SUPPORT is not set -LDSO_PRELOAD_ENV_SUPPORT=y -# LDSO_PRELOAD_FILE_SUPPORT is not set -LDSO_STANDALONE_SUPPORT=y -LDSO_PRELINK_SUPPORT=y -# UCLIBC_STATIC_LDCONFIG is not set -# LDSO_RUNPATH is not set -LDSO_SEARCH_INTERP_PATH=y -LDSO_LD_LIBRARY_PATH=y -# LDSO_NO_CLEANUP is not set -UCLIBC_CTOR_DTOR=y -LDSO_GNU_HASH_SUPPORT=y -# HAS_NO_THREADS is not set -# UCLIBC_HAS_LINUXTHREADS is not set -UCLIBC_HAS_THREADS_NATIVE=y -UCLIBC_HAS_THREADS=y -UCLIBC_HAS_TLS=y -# PTHREADS_DEBUG_SUPPORT is not set -UCLIBC_HAS_SYSLOG=y -UCLIBC_HAS_LFS=y -# MALLOC is not set -# MALLOC_SIMPLE is not set -MALLOC_STANDARD=y -UCLIBC_DYNAMIC_ATEXIT=y -# COMPAT_ATEXIT is not set -UCLIBC_HAS_UTMPX=y -UCLIBC_HAS_UTMP=y -# UCLIBC_SUSV2_LEGACY is not set -UCLIBC_SUSV3_LEGACY=y -# UCLIBC_HAS_CONTEXT_FUNCS is not set -# UCLIBC_SUSV3_LEGACY_MACROS is not set -UCLIBC_SUSV4_LEGACY=y -# UCLIBC_STRICT_HEADERS is not set -# UCLIBC_HAS_STUBS is not set -UCLIBC_HAS_SHADOW=y -# UCLIBC_HAS_PROGRAM_INVOCATION_NAME is not set -# UCLIBC_HAS___PROGNAME is not set -UCLIBC_HAS_PTY=y -ASSUME_DEVPTS=y -UNIX98PTY_ONLY=y -# UCLIBC_HAS_GETPT is not set -UCLIBC_HAS_LIBUTIL=y -UCLIBC_HAS_TM_EXTENSIONS=y -UCLIBC_HAS_TZ_CACHING=y -UCLIBC_HAS_TZ_FILE=y -UCLIBC_HAS_TZ_FILE_READ_MANY=y -UCLIBC_TZ_FILE_PATH="/etc/TZ" -UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y - -# -# Advanced Library Settings -# -UCLIBC_PWD_BUFFER_SIZE=256 -UCLIBC_GRP_BUFFER_SIZE=256 - -# -# Support various families of functions -# -UCLIBC_LINUX_SPECIFIC=y -UCLIBC_HAS_GNU_ERROR=y -UCLIBC_BSD_SPECIFIC=y -UCLIBC_HAS_BSD_ERR=y -# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set -# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set -# UCLIBC_NTP_LEGACY is not set -# UCLIBC_SV4_DEPRECATED is not set -UCLIBC_HAS_REALTIME=y -UCLIBC_HAS_ADVANCED_REALTIME=y -UCLIBC_HAS_EPOLL=y -UCLIBC_HAS_XATTR=y -UCLIBC_HAS_PROFILING=y -UCLIBC_HAS_CRYPT_IMPL=y -# UCLIBC_HAS_SHA256_CRYPT_IMPL is not set -# UCLIBC_HAS_SHA512_CRYPT_IMPL is not set -UCLIBC_HAS_CRYPT=y -UCLIBC_HAS_NETWORK_SUPPORT=y -UCLIBC_HAS_SOCKET=y -UCLIBC_HAS_IPV4=y -UCLIBC_HAS_IPV6=y -# UCLIBC_HAS_RPC is not set -UCLIBC_USE_NETLINK=y -UCLIBC_SUPPORT_AI_ADDRCONFIG=y -# UCLIBC_HAS_BSD_RES_CLOSE is not set -UCLIBC_HAS_COMPAT_RES_STATE=y -# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set -UCLIBC_HAS_RESOLVER_SUPPORT=y - -# -# String and Stdio Support -# -UCLIBC_HAS_STRING_GENERIC_OPT=y -UCLIBC_HAS_STRING_ARCH_OPT=y -UCLIBC_HAS_STDIO_FUTEXES=y -UCLIBC_HAS_CTYPE_TABLES=y -UCLIBC_HAS_CTYPE_SIGNED=y -UCLIBC_HAS_CTYPE_UNSAFE=y -# UCLIBC_HAS_CTYPE_CHECKED is not set -# UCLIBC_HAS_CTYPE_ENFORCED is not set -UCLIBC_HAS_WCHAR=y -UCLIBC_HAS_LIBICONV=y -# UCLIBC_HAS_LIBINTL is not set -# UCLIBC_HAS_LOCALE is not set -# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set -# UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set -UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 -# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set -UCLIBC_HAS_STDIO_BUFSIZ_4096=y -# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set -UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y -# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set -# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set -# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set -UCLIBC_HAS_STDIO_GETC_MACRO=y -UCLIBC_HAS_STDIO_PUTC_MACRO=y -UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y -# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set -# UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set -# UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE is not set -UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y -# UCLIBC_HAS_PRINTF_M_SPEC is not set -UCLIBC_HAS_ERRNO_MESSAGES=y -# UCLIBC_HAS_SYS_ERRLIST is not set -UCLIBC_HAS_SIGNUM_MESSAGES=y -# UCLIBC_HAS_SYS_SIGLIST is not set -UCLIBC_HAS_GNU_GETOPT=y -UCLIBC_HAS_GETOPT_LONG=y -UCLIBC_HAS_GNU_GETSUBOPT=y -# UCLIBC_HAS_ARGP is not set - -# -# Big and Tall -# -UCLIBC_HAS_REGEX=y -UCLIBC_HAS_REGEX_OLD=y -UCLIBC_HAS_FNMATCH=y -UCLIBC_HAS_FNMATCH_OLD=y -# UCLIBC_HAS_WORDEXP is not set -UCLIBC_HAS_NFTW=y -UCLIBC_HAS_FTW=y -UCLIBC_HAS_FTS=y -UCLIBC_HAS_GLOB=y -# UCLIBC_HAS_GNU_GLOB is not set - -# -# Library Installation Options -# -RUNTIME_PREFIX="/" -DEVEL_PREFIX="/usr" -MULTILIB_DIR="lib" -HARDWIRED_ABSPATH=y - -# -# Security options -# -# UCLIBC_BUILD_PIE is not set -# UCLIBC_HAS_ARC4RANDOM is not set -# UCLIBC_HAS_SSP is not set -UCLIBC_BUILD_RELRO=y -# UCLIBC_BUILD_NOW is not set -UCLIBC_BUILD_NOEXECSTACK=y - -# -# Development/debugging options -# -CROSS_COMPILER_PREFIX="" -UCLIBC_EXTRA_CFLAGS="" -# DODEBUG is not set -DOSTRIP=y -# DOASSERTS is not set -SUPPORT_LD_DEBUG=y -# SUPPORT_LD_DEBUG_EARLY is not set -# UCLIBC_MALLOC_DEBUGGING is not set -# UCLIBC_HAS_BACKTRACE is not set -WARNINGS="-Wall" -EXTRA_WARNINGS=y diff --git a/build-config/conf/uclibc/1.0.22/uclibc.powerpc-softfloat.config b/build-config/conf/uclibc/1.0.22/uclibc.powerpc-softfloat.config deleted file mode 100644 index ac8d556f4..000000000 --- a/build-config/conf/uclibc/1.0.22/uclibc.powerpc-softfloat.config +++ /dev/null @@ -1,244 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# uClibc-ng 1.0.22 C Library Configuration -# -# TARGET_aarch64 is not set -# TARGET_alpha is not set -# TARGET_arc is not set -# TARGET_arm is not set -# TARGET_avr32 is not set -# TARGET_bfin is not set -# TARGET_c6x is not set -# TARGET_cris is not set -# TARGET_frv is not set -# TARGET_h8300 is not set -# TARGET_hppa is not set -# TARGET_i386 is not set -# TARGET_ia64 is not set -# TARGET_lm32 is not set -# TARGET_m68k is not set -# TARGET_metag is not set -# TARGET_microblaze is not set -# TARGET_mips is not set -# TARGET_nds32 is not set -# TARGET_nios2 is not set -# TARGET_or1k is not set -TARGET_powerpc=y -# TARGET_sh is not set -# TARGET_sparc is not set -# TARGET_x86_64 is not set -# TARGET_xtensa is not set - -# -# Target Architecture Features and Options -# -TARGET_ARCH="powerpc" -FORCE_OPTIONS_FOR_ARCH=y -# CONFIG_CLASSIC is not set -CONFIG_E500=y -TARGET_SUBARCH="e500" - -# -# Using ELF file format -# -ARCH_HAS_DEPRECATED_SYSCALLS=y -ARCH_BIG_ENDIAN=y - -# -# Using Big Endian -# -ARCH_HAS_MMU=y -ARCH_USE_MMU=y -UCLIBC_HAS_FLOATS=y -# UCLIBC_HAS_FPU is not set -UCLIBC_HAS_SOFT_FLOAT=y -# DO_C99_MATH is not set -# DO_XSI_MATH is not set -UCLIBC_HAS_FENV=y -KERNEL_HEADERS="/usr/include" -HAVE_DOT_CONFIG=y - -# -# General Library Settings -# -DOPIC=y -HAVE_SHARED=y -# FORCE_SHAREABLE_TEXT_SEGMENTS is not set -LDSO_LDD_SUPPORT=y -# LDSO_CACHE_SUPPORT is not set -LDSO_PRELOAD_ENV_SUPPORT=y -# LDSO_PRELOAD_FILE_SUPPORT is not set -LDSO_STANDALONE_SUPPORT=y -LDSO_PRELINK_SUPPORT=y -# UCLIBC_STATIC_LDCONFIG is not set -# LDSO_RUNPATH is not set -LDSO_SEARCH_INTERP_PATH=y -LDSO_LD_LIBRARY_PATH=y -# LDSO_NO_CLEANUP is not set -UCLIBC_CTOR_DTOR=y -LDSO_GNU_HASH_SUPPORT=y -# HAS_NO_THREADS is not set -# UCLIBC_HAS_LINUXTHREADS is not set -UCLIBC_HAS_THREADS_NATIVE=y -UCLIBC_HAS_THREADS=y -UCLIBC_HAS_TLS=y -# PTHREADS_DEBUG_SUPPORT is not set -UCLIBC_HAS_SYSLOG=y -UCLIBC_HAS_LFS=y -# MALLOC is not set -# MALLOC_SIMPLE is not set -MALLOC_STANDARD=y -UCLIBC_DYNAMIC_ATEXIT=y -# COMPAT_ATEXIT is not set -UCLIBC_HAS_UTMPX=y -UCLIBC_HAS_UTMP=y -# UCLIBC_SUSV2_LEGACY is not set -UCLIBC_SUSV3_LEGACY=y -# UCLIBC_SUSV3_LEGACY_MACROS is not set -UCLIBC_SUSV4_LEGACY=y -# UCLIBC_STRICT_HEADERS is not set -# UCLIBC_HAS_STUBS is not set -UCLIBC_HAS_SHADOW=y -# UCLIBC_HAS_PROGRAM_INVOCATION_NAME is not set -# UCLIBC_HAS___PROGNAME is not set -UCLIBC_HAS_PTY=y -ASSUME_DEVPTS=y -UNIX98PTY_ONLY=y -# UCLIBC_HAS_GETPT is not set -UCLIBC_HAS_LIBUTIL=y -UCLIBC_HAS_TM_EXTENSIONS=y -UCLIBC_HAS_TZ_CACHING=y -UCLIBC_HAS_TZ_FILE=y -UCLIBC_HAS_TZ_FILE_READ_MANY=y -UCLIBC_TZ_FILE_PATH="/etc/TZ" -UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y - -# -# Advanced Library Settings -# -UCLIBC_PWD_BUFFER_SIZE=256 -UCLIBC_GRP_BUFFER_SIZE=256 - -# -# Support various families of functions -# -UCLIBC_LINUX_SPECIFIC=y -UCLIBC_HAS_GNU_ERROR=y -UCLIBC_BSD_SPECIFIC=y -UCLIBC_HAS_BSD_ERR=y -# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set -# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set -# UCLIBC_NTP_LEGACY is not set -# UCLIBC_SV4_DEPRECATED is not set -UCLIBC_HAS_REALTIME=y -UCLIBC_HAS_ADVANCED_REALTIME=y -UCLIBC_HAS_EPOLL=y -UCLIBC_HAS_XATTR=y -UCLIBC_HAS_PROFILING=y -UCLIBC_HAS_CRYPT_IMPL=y -# UCLIBC_HAS_SHA256_CRYPT_IMPL is not set -# UCLIBC_HAS_SHA512_CRYPT_IMPL is not set -UCLIBC_HAS_CRYPT=y -UCLIBC_HAS_NETWORK_SUPPORT=y -UCLIBC_HAS_SOCKET=y -UCLIBC_HAS_IPV4=y -UCLIBC_HAS_IPV6=y -# UCLIBC_HAS_RPC is not set -UCLIBC_USE_NETLINK=y -UCLIBC_SUPPORT_AI_ADDRCONFIG=y -# UCLIBC_HAS_BSD_RES_CLOSE is not set -UCLIBC_HAS_COMPAT_RES_STATE=y -# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set -UCLIBC_HAS_RESOLVER_SUPPORT=y - -# -# String and Stdio Support -# -UCLIBC_HAS_STRING_GENERIC_OPT=y -UCLIBC_HAS_STRING_ARCH_OPT=y -UCLIBC_HAS_STDIO_FUTEXES=y -UCLIBC_HAS_CTYPE_TABLES=y -UCLIBC_HAS_CTYPE_SIGNED=y -UCLIBC_HAS_CTYPE_UNSAFE=y -# UCLIBC_HAS_CTYPE_CHECKED is not set -# UCLIBC_HAS_CTYPE_ENFORCED is not set -UCLIBC_HAS_WCHAR=y -UCLIBC_HAS_LIBICONV=y -# UCLIBC_HAS_LIBINTL is not set -# UCLIBC_HAS_LOCALE is not set -# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set -# UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set -UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 -# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set -UCLIBC_HAS_STDIO_BUFSIZ_4096=y -# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set -UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y -# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set -# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set -# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set -UCLIBC_HAS_STDIO_GETC_MACRO=y -UCLIBC_HAS_STDIO_PUTC_MACRO=y -UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y -# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set -# UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set -# UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE is not set -UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y -# UCLIBC_HAS_PRINTF_M_SPEC is not set -UCLIBC_HAS_ERRNO_MESSAGES=y -# UCLIBC_HAS_SYS_ERRLIST is not set -UCLIBC_HAS_SIGNUM_MESSAGES=y -# UCLIBC_HAS_SYS_SIGLIST is not set -UCLIBC_HAS_GNU_GETOPT=y -UCLIBC_HAS_GETOPT_LONG=y -UCLIBC_HAS_GNU_GETSUBOPT=y -# UCLIBC_HAS_ARGP is not set - -# -# Big and Tall -# -UCLIBC_HAS_REGEX=y -UCLIBC_HAS_REGEX_OLD=y -UCLIBC_HAS_FNMATCH=y -UCLIBC_HAS_FNMATCH_OLD=y -# UCLIBC_HAS_WORDEXP is not set -UCLIBC_HAS_NFTW=y -UCLIBC_HAS_FTW=y -UCLIBC_HAS_FTS=y -UCLIBC_HAS_GLOB=y -# UCLIBC_HAS_GNU_GLOB is not set - -# -# Library Installation Options -# -RUNTIME_PREFIX="/" -DEVEL_PREFIX="/usr" -MULTILIB_DIR="lib" -HARDWIRED_ABSPATH=y - -# -# Security options -# -# UCLIBC_BUILD_PIE is not set -# UCLIBC_HAS_ARC4RANDOM is not set -# UCLIBC_HAS_SSP is not set -UCLIBC_BUILD_RELRO=y -# UCLIBC_BUILD_NOW is not set -UCLIBC_BUILD_NOEXECSTACK=y - -# -# Development/debugging options -# -CROSS_COMPILER_PREFIX="" -UCLIBC_EXTRA_CFLAGS="" -# DODEBUG is not set -DOSTRIP=y -# DOASSERTS is not set -SUPPORT_LD_DEBUG=y -# SUPPORT_LD_DEBUG_EARLY is not set -# UCLIBC_MALLOC_DEBUGGING is not set -# UCLIBC_HAS_BACKTRACE is not set -WARNINGS="-Wall" -EXTRA_WARNINGS=y diff --git a/build-config/conf/uclibc/1.0.22/uclibc.x86_64.config b/build-config/conf/uclibc/1.0.22/uclibc.x86_64.config deleted file mode 100644 index 68b85b19c..000000000 --- a/build-config/conf/uclibc/1.0.22/uclibc.x86_64.config +++ /dev/null @@ -1,243 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# uClibc-ng 1.0.22 C Library Configuration -# -# TARGET_aarch64 is not set -# TARGET_alpha is not set -# TARGET_arc is not set -# TARGET_arm is not set -# TARGET_avr32 is not set -# TARGET_bfin is not set -# TARGET_c6x is not set -# TARGET_cris is not set -# TARGET_frv is not set -# TARGET_h8300 is not set -# TARGET_hppa is not set -# TARGET_i386 is not set -# TARGET_ia64 is not set -# TARGET_lm32 is not set -# TARGET_m68k is not set -# TARGET_metag is not set -# TARGET_microblaze is not set -# TARGET_mips is not set -# TARGET_nds32 is not set -# TARGET_nios2 is not set -# TARGET_or1k is not set -# TARGET_powerpc is not set -# TARGET_sh is not set -# TARGET_sparc is not set -TARGET_x86_64=y -# TARGET_xtensa is not set - -# -# Target Architecture Features and Options -# -TARGET_ARCH="x86_64" -FORCE_OPTIONS_FOR_ARCH=y -TARGET_SUBARCH="" - -# -# Using ELF file format -# -ARCH_HAS_DEPRECATED_SYSCALLS=y -ARCH_LITTLE_ENDIAN=y - -# -# Using Little Endian -# -ARCH_HAS_MMU=y -ARCH_USE_MMU=y -UCLIBC_HAS_FLOATS=y -UCLIBC_HAS_FPU=y -# DO_C99_MATH is not set -# DO_XSI_MATH is not set -UCLIBC_HAS_FENV=y -KERNEL_HEADERS="/usr/include" -HAVE_DOT_CONFIG=y - -# -# General Library Settings -# -DOPIC=y -ARCH_HAS_UCONTEXT=y -HAVE_SHARED=y -# FORCE_SHAREABLE_TEXT_SEGMENTS is not set -LDSO_LDD_SUPPORT=y -# LDSO_CACHE_SUPPORT is not set -LDSO_PRELOAD_ENV_SUPPORT=y -# LDSO_PRELOAD_FILE_SUPPORT is not set -LDSO_STANDALONE_SUPPORT=y -LDSO_PRELINK_SUPPORT=y -# UCLIBC_STATIC_LDCONFIG is not set -# LDSO_RUNPATH is not set -LDSO_SEARCH_INTERP_PATH=y -LDSO_LD_LIBRARY_PATH=y -# LDSO_NO_CLEANUP is not set -UCLIBC_CTOR_DTOR=y -LDSO_GNU_HASH_SUPPORT=y -# HAS_NO_THREADS is not set -# UCLIBC_HAS_LINUXTHREADS is not set -UCLIBC_HAS_THREADS_NATIVE=y -UCLIBC_HAS_THREADS=y -UCLIBC_HAS_TLS=y -# PTHREADS_DEBUG_SUPPORT is not set -UCLIBC_HAS_SYSLOG=y -UCLIBC_HAS_LFS=y -# MALLOC is not set -# MALLOC_SIMPLE is not set -MALLOC_STANDARD=y -UCLIBC_DYNAMIC_ATEXIT=y -# COMPAT_ATEXIT is not set -UCLIBC_HAS_UTMPX=y -UCLIBC_HAS_UTMP=y -# UCLIBC_SUSV2_LEGACY is not set -UCLIBC_SUSV3_LEGACY=y -# UCLIBC_HAS_CONTEXT_FUNCS is not set -# UCLIBC_SUSV3_LEGACY_MACROS is not set -UCLIBC_SUSV4_LEGACY=y -# UCLIBC_STRICT_HEADERS is not set -# UCLIBC_HAS_STUBS is not set -UCLIBC_HAS_SHADOW=y -# UCLIBC_HAS_PROGRAM_INVOCATION_NAME is not set -# UCLIBC_HAS___PROGNAME is not set -UCLIBC_HAS_PTY=y -ASSUME_DEVPTS=y -UNIX98PTY_ONLY=y -# UCLIBC_HAS_GETPT is not set -UCLIBC_HAS_LIBUTIL=y -UCLIBC_HAS_TM_EXTENSIONS=y -UCLIBC_HAS_TZ_CACHING=y -UCLIBC_HAS_TZ_FILE=y -UCLIBC_HAS_TZ_FILE_READ_MANY=y -UCLIBC_TZ_FILE_PATH="/etc/TZ" -UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y - -# -# Advanced Library Settings -# -UCLIBC_PWD_BUFFER_SIZE=256 -UCLIBC_GRP_BUFFER_SIZE=256 - -# -# Support various families of functions -# -UCLIBC_LINUX_SPECIFIC=y -UCLIBC_HAS_GNU_ERROR=y -UCLIBC_BSD_SPECIFIC=y -UCLIBC_HAS_BSD_ERR=y -# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set -# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set -# UCLIBC_NTP_LEGACY is not set -# UCLIBC_SV4_DEPRECATED is not set -UCLIBC_HAS_REALTIME=y -UCLIBC_HAS_ADVANCED_REALTIME=y -UCLIBC_HAS_EPOLL=y -UCLIBC_HAS_XATTR=y -UCLIBC_HAS_PROFILING=y -UCLIBC_HAS_CRYPT_IMPL=y -# UCLIBC_HAS_SHA256_CRYPT_IMPL is not set -# UCLIBC_HAS_SHA512_CRYPT_IMPL is not set -UCLIBC_HAS_CRYPT=y -UCLIBC_HAS_NETWORK_SUPPORT=y -UCLIBC_HAS_SOCKET=y -UCLIBC_HAS_IPV4=y -UCLIBC_HAS_IPV6=y -# UCLIBC_HAS_RPC is not set -UCLIBC_USE_NETLINK=y -UCLIBC_SUPPORT_AI_ADDRCONFIG=y -# UCLIBC_HAS_BSD_RES_CLOSE is not set -UCLIBC_HAS_COMPAT_RES_STATE=y -# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set -UCLIBC_HAS_RESOLVER_SUPPORT=y - -# -# String and Stdio Support -# -UCLIBC_HAS_STRING_GENERIC_OPT=y -UCLIBC_HAS_STRING_ARCH_OPT=y -UCLIBC_HAS_STDIO_FUTEXES=y -UCLIBC_HAS_CTYPE_TABLES=y -UCLIBC_HAS_CTYPE_SIGNED=y -UCLIBC_HAS_CTYPE_UNSAFE=y -# UCLIBC_HAS_CTYPE_CHECKED is not set -# UCLIBC_HAS_CTYPE_ENFORCED is not set -UCLIBC_HAS_WCHAR=y -UCLIBC_HAS_LIBICONV=y -# UCLIBC_HAS_LIBINTL is not set -# UCLIBC_HAS_LOCALE is not set -# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set -# UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set -UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 -# UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set -# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set -UCLIBC_HAS_STDIO_BUFSIZ_4096=y -# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set -UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y -# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set -# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set -# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set -UCLIBC_HAS_STDIO_GETC_MACRO=y -UCLIBC_HAS_STDIO_PUTC_MACRO=y -UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y -# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set -# UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set -# UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE is not set -UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y -# UCLIBC_HAS_PRINTF_M_SPEC is not set -UCLIBC_HAS_ERRNO_MESSAGES=y -# UCLIBC_HAS_SYS_ERRLIST is not set -UCLIBC_HAS_SIGNUM_MESSAGES=y -# UCLIBC_HAS_SYS_SIGLIST is not set -UCLIBC_HAS_GNU_GETOPT=y -UCLIBC_HAS_GETOPT_LONG=y -UCLIBC_HAS_GNU_GETSUBOPT=y -# UCLIBC_HAS_ARGP is not set - -# -# Big and Tall -# -UCLIBC_HAS_REGEX=y -UCLIBC_HAS_REGEX_OLD=y -UCLIBC_HAS_FNMATCH=y -UCLIBC_HAS_FNMATCH_OLD=y -# UCLIBC_HAS_WORDEXP is not set -UCLIBC_HAS_NFTW=y -UCLIBC_HAS_FTW=y -UCLIBC_HAS_FTS=y -UCLIBC_HAS_GLOB=y -# UCLIBC_HAS_GNU_GLOB is not set - -# -# Library Installation Options -# -RUNTIME_PREFIX="/" -DEVEL_PREFIX="/usr" -MULTILIB_DIR="lib" -HARDWIRED_ABSPATH=y - -# -# Security options -# -# UCLIBC_HAS_ARC4RANDOM is not set -# UCLIBC_HAS_SSP is not set -UCLIBC_BUILD_RELRO=y -# UCLIBC_BUILD_NOW is not set -UCLIBC_BUILD_NOEXECSTACK=y - -# -# Development/debugging options -# -CROSS_COMPILER_PREFIX="" -UCLIBC_EXTRA_CFLAGS="" -# DODEBUG is not set -DOSTRIP=y -# DOASSERTS is not set -SUPPORT_LD_DEBUG=y -# SUPPORT_LD_DEBUG_EARLY is not set -# UCLIBC_MALLOC_DEBUGGING is not set -# UCLIBC_HAS_BACKTRACE is not set -WARNINGS="-Wall" -EXTRA_WARNINGS=y diff --git a/build-config/conf/uclibc/1.0.35/uclibc.x86_64.config b/build-config/conf/uclibc/1.0.35/uclibc.x86_64.config deleted file mode 100644 index dbc19fd9a..000000000 --- a/build-config/conf/uclibc/1.0.35/uclibc.x86_64.config +++ /dev/null @@ -1,243 +0,0 @@ -# -# Automatically generated file; DO NOT EDIT. -# uClibc-ng 1.0.25 C Library Configuration -# -# TARGET_aarch64 is not set -# TARGET_alpha is not set -# TARGET_arc is not set -# TARGET_arm is not set -# TARGET_avr32 is not set -# TARGET_bfin is not set -# TARGET_c6x is not set -# TARGET_cris is not set -# TARGET_frv is not set -# TARGET_h8300 is not set -# TARGET_hppa is not set -# TARGET_i386 is not set -# TARGET_ia64 is not set -# TARGET_lm32 is not set -# TARGET_m68k is not set -# TARGET_metag is not set -# TARGET_microblaze is not set -# TARGET_mips is not set -# TARGET_nds32 is not set -# TARGET_nios2 is not set -# TARGET_or1k is not set -# TARGET_powerpc is not set -# TARGET_sh is not set -# TARGET_sparc is not set -TARGET_x86_64=y -# TARGET_xtensa is not set - -# -# Target Architecture Features and Options -# -TARGET_ARCH="x86_64" -FORCE_OPTIONS_FOR_ARCH=y -TARGET_SUBARCH="" - -# -# Using ELF file format -# -ARCH_HAS_DEPRECATED_SYSCALLS=y -ARCH_LITTLE_ENDIAN=y - -# -# Using Little Endian -# -ARCH_HAS_MMU=y -ARCH_USE_MMU=y -UCLIBC_HAS_FLOATS=y -UCLIBC_HAS_FPU=y -# DO_C99_MATH is not set -# DO_XSI_MATH is not set -UCLIBC_HAS_FENV=y -KERNEL_HEADERS="/usr/include" -HAVE_DOT_CONFIG=y - -# -# General Library Settings -# -DOPIC=y -ARCH_HAS_UCONTEXT=y -HAVE_SHARED=y -# FORCE_SHAREABLE_TEXT_SEGMENTS is not set -LDSO_LDD_SUPPORT=y -# LDSO_CACHE_SUPPORT is not set -LDSO_PRELOAD_ENV_SUPPORT=y -# LDSO_PRELOAD_FILE_SUPPORT is not set -LDSO_STANDALONE_SUPPORT=y -LDSO_PRELINK_SUPPORT=y -# UCLIBC_STATIC_LDCONFIG is not set -# LDSO_RUNPATH is not set -LDSO_SEARCH_INTERP_PATH=y -LDSO_LD_LIBRARY_PATH=y -# LDSO_NO_CLEANUP is not set -UCLIBC_CTOR_DTOR=y -LDSO_GNU_HASH_SUPPORT=y -# HAS_NO_THREADS is not set -# UCLIBC_HAS_LINUXTHREADS is not set -UCLIBC_HAS_THREADS_NATIVE=y -UCLIBC_HAS_THREADS=y -UCLIBC_HAS_TLS=y -# PTHREADS_DEBUG_SUPPORT is not set -UCLIBC_HAS_SYSLOG=y -UCLIBC_HAS_LFS=y -# MALLOC is not set -# MALLOC_SIMPLE is not set -MALLOC_STANDARD=y -UCLIBC_DYNAMIC_ATEXIT=y -# COMPAT_ATEXIT is not set -UCLIBC_HAS_UTMPX=y -UCLIBC_HAS_UTMP=y -# UCLIBC_SUSV2_LEGACY is not set -UCLIBC_SUSV3_LEGACY=y -# UCLIBC_HAS_CONTEXT_FUNCS is not set -# UCLIBC_SUSV3_LEGACY_MACROS is not set -UCLIBC_SUSV4_LEGACY=y -# UCLIBC_STRICT_HEADERS is not set -# UCLIBC_HAS_STUBS is not set -UCLIBC_HAS_SHADOW=y -UCLIBC_HAS_PROGRAM_INVOCATION_NAME=y -UCLIBC_HAS___PROGNAME=y -UCLIBC_HAS_PTY=y -ASSUME_DEVPTS=y -UNIX98PTY_ONLY=y -# UCLIBC_HAS_GETPT is not set -UCLIBC_HAS_LIBUTIL=y -UCLIBC_HAS_TM_EXTENSIONS=y -UCLIBC_HAS_TZ_CACHING=y -UCLIBC_HAS_TZ_FILE=y -UCLIBC_HAS_TZ_FILE_READ_MANY=y -UCLIBC_TZ_FILE_PATH="/etc/TZ" -UCLIBC_FALLBACK_TO_ETC_LOCALTIME=y - -# -# Advanced Library Settings -# -UCLIBC_PWD_BUFFER_SIZE=256 -UCLIBC_GRP_BUFFER_SIZE=256 - -# -# Support various families of functions -# -UCLIBC_LINUX_SPECIFIC=y -UCLIBC_HAS_GNU_ERROR=y -UCLIBC_BSD_SPECIFIC=y -UCLIBC_HAS_BSD_ERR=y -# UCLIBC_HAS_OBSOLETE_BSD_SIGNAL is not set -# UCLIBC_HAS_OBSOLETE_SYSV_SIGNAL is not set -# UCLIBC_NTP_LEGACY is not set -# UCLIBC_SV4_DEPRECATED is not set -UCLIBC_HAS_REALTIME=y -UCLIBC_HAS_ADVANCED_REALTIME=y -UCLIBC_HAS_EPOLL=y -UCLIBC_HAS_XATTR=y -UCLIBC_HAS_PROFILING=y -UCLIBC_HAS_CRYPT_IMPL=y -# UCLIBC_HAS_SHA256_CRYPT_IMPL is not set -# UCLIBC_HAS_SHA512_CRYPT_IMPL is not set -UCLIBC_HAS_CRYPT=y -UCLIBC_HAS_NETWORK_SUPPORT=y -UCLIBC_HAS_SOCKET=y -UCLIBC_HAS_IPV4=y -UCLIBC_HAS_IPV6=y -# also unused in 1.0.25 UCLIBC_HAS_RPC is not set -UCLIBC_USE_NETLINK=y -UCLIBC_SUPPORT_AI_ADDRCONFIG=y -# UCLIBC_HAS_BSD_RES_CLOSE is not set -UCLIBC_HAS_COMPAT_RES_STATE=y -# UCLIBC_HAS_EXTRA_COMPAT_RES_STATE is not set -UCLIBC_HAS_RESOLVER_SUPPORT=y - -# -# String and Stdio Support -# -UCLIBC_HAS_STRING_GENERIC_OPT=y -UCLIBC_HAS_STRING_ARCH_OPT=y -UCLIBC_HAS_STDIO_FUTEXES=y -UCLIBC_HAS_CTYPE_TABLES=y -UCLIBC_HAS_CTYPE_SIGNED=y -UCLIBC_HAS_CTYPE_UNSAFE=y -# UCLIBC_HAS_CTYPE_CHECKED is not set -# UCLIBC_HAS_CTYPE_ENFORCED is not set -UCLIBC_HAS_WCHAR=y -UCLIBC_HAS_LIBICONV=y -# UCLIBC_HAS_LIBINTL is not set -# UCLIBC_HAS_LOCALE is not set -# UCLIBC_HAS_HEXADECIMAL_FLOATS is not set -# UCLIBC_HAS_GLIBC_CUSTOM_PRINTF is not set -UCLIBC_PRINTF_SCANF_POSITIONAL_ARGS=9 -# also unused in 1.0.25 UCLIBC_HAS_STDIO_BUFSIZ_NONE is not set -# UCLIBC_HAS_STDIO_BUFSIZ_256 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_512 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_1024 is not set -# UCLIBC_HAS_STDIO_BUFSIZ_2048 is not set -UCLIBC_HAS_STDIO_BUFSIZ_4096=y -# UCLIBC_HAS_STDIO_BUFSIZ_8192 is not set -UCLIBC_HAS_STDIO_BUILTIN_BUFFER_NONE=y -# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_4 is not set -# UCLIBC_HAS_STDIO_BUILTIN_BUFFER_8 is not set -# UCLIBC_HAS_STDIO_SHUTDOWN_ON_ABORT is not set -UCLIBC_HAS_STDIO_GETC_MACRO=y -UCLIBC_HAS_STDIO_PUTC_MACRO=y -UCLIBC_HAS_STDIO_AUTO_RW_TRANSITION=y -# UCLIBC_HAS_FOPEN_LARGEFILE_MODE is not set -# UCLIBC_HAS_FOPEN_EXCLUSIVE_MODE is not set -# UCLIBC_HAS_FOPEN_CLOSEEXEC_MODE is not set -UCLIBC_HAS_GLIBC_CUSTOM_STREAMS=y -# UCLIBC_HAS_PRINTF_M_SPEC is not set -UCLIBC_HAS_ERRNO_MESSAGES=y -# UCLIBC_HAS_SYS_ERRLIST is not set -UCLIBC_HAS_SIGNUM_MESSAGES=y -# UCLIBC_HAS_SYS_SIGLIST is not set -UCLIBC_HAS_GNU_GETOPT=y -UCLIBC_HAS_GETOPT_LONG=y -UCLIBC_HAS_GNU_GETSUBOPT=y -# UCLIBC_HAS_ARGP is not set - -# -# Big and Tall -# -UCLIBC_HAS_REGEX=y -# was set in 1.0.22 UCLIBC_HAS_REGEX_OLD=y -UCLIBC_HAS_FNMATCH=y -# was set in 1.0.22 UCLIBC_HAS_FNMATCH_OLD=y -# UCLIBC_HAS_WORDEXP is not set -UCLIBC_HAS_NFTW=y -UCLIBC_HAS_FTW=y -UCLIBC_HAS_FTS=y -UCLIBC_HAS_GLOB=y -# UCLIBC_HAS_GNU_GLOB is not set - -# -# Library Installation Options -# -RUNTIME_PREFIX="/" -DEVEL_PREFIX="/usr" -MULTILIB_DIR="lib" -HARDWIRED_ABSPATH=y - -# -# Security options -# -# UCLIBC_HAS_ARC4RANDOM is not set -# UCLIBC_HAS_SSP is not set -UCLIBC_BUILD_RELRO=y -# UCLIBC_BUILD_NOW is not set -UCLIBC_BUILD_NOEXECSTACK=y - -# -# Development/debugging options -# -CROSS_COMPILER_PREFIX="" -UCLIBC_EXTRA_CFLAGS="" -# DODEBUG is not set -DOSTRIP=y -# DOASSERTS is not set -SUPPORT_LD_DEBUG=y -# SUPPORT_LD_DEBUG_EARLY is not set -# UCLIBC_MALLOC_DEBUGGING is not set -# UCLIBC_HAS_BACKTRACE is not set -WARNINGS="-Wall" -EXTRA_WARNINGS=y diff --git a/build-config/conf/uclibc/1.0.38/uclibc.x86_64.config b/build-config/conf/uclibc/1.0.54/uclibc.x86_64.config similarity index 100% rename from build-config/conf/uclibc/1.0.38/uclibc.x86_64.config rename to build-config/conf/uclibc/1.0.54/uclibc.x86_64.config diff --git a/build-config/make/acpica-tools.make b/build-config/make/acpica-tools.make index f7ba9fc0a..9a445de5d 100644 --- a/build-config/make/acpica-tools.make +++ b/build-config/make/acpica-tools.make @@ -10,9 +10,12 @@ # This is a makefile fragment that defines the build of acpica-tools # -ACPICA_TOOLS_VERSION = 20150410 +ACPICA_TOOLS_VERSION = 20260408 +# acpica.org's old download area was retired (it redirects to an Intel +# page). The ACPICA project now publishes the official acpica-unix +# tarball as a GitHub release asset. ACPICA_TOOLS_TARBALL = acpica-unix-$(ACPICA_TOOLS_VERSION).tar.gz -ACPICA_TOOLS_TARBALL_URLS += $(ONIE_MIRROR) https://acpica.org/sites/acpica/files/ +ACPICA_TOOLS_TARBALL_URLS += $(ONIE_MIRROR) https://github.com/acpica/acpica/releases/download/$(ACPICA_TOOLS_VERSION) ACPICA_TOOLS_BUILD_DIR = $(USER_BUILDDIR)/acpica-tools ACPICA_TOOLS_DIR = $(ACPICA_TOOLS_BUILD_DIR)/acpica-unix-$(ACPICA_TOOLS_VERSION) diff --git a/build-config/make/btrfs-progs.make b/build-config/make/btrfs-progs.make index 0f5915b84..4dde95841 100644 --- a/build-config/make/btrfs-progs.make +++ b/build-config/make/btrfs-progs.make @@ -9,7 +9,7 @@ # This is a makefile fragment that defines the build of btrfs-progs # -BTRFSPROGS_VERSION = v4.9.1 +BTRFSPROGS_VERSION = v7.0 BTRFSPROGS_TARBALL = btrfs-progs-$(BTRFSPROGS_VERSION).tar.xz BTRFSPROGS_TARBALL_URLS += $(ONIE_MIRROR) \ https://www.kernel.org/pub/linux/kernel/people/kdave/btrfs-progs @@ -37,11 +37,10 @@ PHONY += btrfs-progs btrfs-progs-download btrfs-progs-source \ btrfs-progs-configure btrfs-progs-build btrfs-progs-install \ btrfs-progs-clean btrfs-progs-download-clean -BTRFSPROGS_LIBS = libbtrfs.so libbtrfs.so.0 libbtrfs.so.0.1 -BTRFSPROGS_SBIN = btrfs mkfs.btrfs btrfs-debug-tree btrfs-map-logical \ - btrfs-image btrfs-zero-log btrfs-find-root btrfstune \ - btrfs-show-super btrfs-select-super btrfs-convert \ - btrfsck +BTRFSPROGS_LIBS = libbtrfs.so.0.1.5 libbtrfs.so libbtrfs.so.0 libbtrfs.so.0.1 +BTRFSPROGS_SBIN = btrfs mkfs.btrfs btrfs-map-logical \ + btrfs-image btrfs-find-root btrfstune \ + btrfs-select-super btrfsck btrfs-progs: $(BTRFSPROGS_STAMP) @@ -81,6 +80,12 @@ $(BTRFSPROGS_CONFIGURE_STAMP): $(E2FSPROGS_BUILD_STAMP) \ --disable-documentation \ --disable-backtrace \ --disable-convert \ + --disable-zstd \ + --disable-libudev \ + --disable-python \ + --with-crypto=builtin \ + ac_cv_func_malloc_0_nonnull=yes \ + ac_cv_func_realloc_0_nonnull=yes \ CC=$(CROSSPREFIX)gcc \ CFLAGS="$(ONIE_CFLAGS)" \ $(ONIE_PKG_CONFIG) diff --git a/build-config/make/busybox.make b/build-config/make/busybox.make index 972dfa397..ea7edf2e2 100644 --- a/build-config/make/busybox.make +++ b/build-config/make/busybox.make @@ -14,7 +14,7 @@ # This is a makefile fragment that defines the build of busybox # -BUSYBOX_VERSION = 1.25.1 +BUSYBOX_VERSION = 1.38.0 BUSYBOX_TARBALL = busybox-$(BUSYBOX_VERSION).tar.bz2 BUSYBOX_TARBALL_URLS += $(ONIE_MIRROR) https://www.busybox.net/downloads BUSYBOX_BUILD_DIR = $(MBUILDDIR)/busybox diff --git a/build-config/make/crosstool-ng.make b/build-config/make/crosstool-ng.make index 1ceb90604..eb26e0a22 100644 --- a/build-config/make/crosstool-ng.make +++ b/build-config/make/crosstool-ng.make @@ -16,17 +16,24 @@ # To upgrade sha1 for new package: # sha1sum ./gcc-8.3.0.tar.xz > ./upstream/gcc-8.3.0.tar.xz.sha1 # https://ftp.gnu.org/pub/gnu/gcc/gcc-8.3.0/gcc-8.3.0.tar.xz -GCC_VERSION ?= 8.3.0 +GCC_VERSION ?= 14.3.0 # https://uclibc-ng.org/ XTOOLS_LIBC ?= uClibc-ng -XTOOLS_LIBC_VERSION ?= 1.0.38 +XTOOLS_LIBC_VERSION ?= 1.0.54 + +# Kernel-headers version the cross toolchain (uClibc) is built against. +# Deliberately decoupled from LINUX_VERSION (the image kernel): a libc +# built against an older-but-recent header set runs fine on a newer +# kernel, so the image kernel can advance without rebuilding the cross +# toolchain. Pinned to a version crosstool-NG knows about. +XTOOLS_LINUX_VERSION ?= 6.16 # http://crosstool-ng.github.io/ CROSSTOOL_NG_DESC = crosstool-NG -CROSSTOOL_NG_VERSION = 1.24.0 +CROSSTOOL_NG_VERSION = 1.28.0 CROSSTOOL_NG_TARBALL = crosstool-ng-$(CROSSTOOL_NG_VERSION).tar.xz -CROSSTOOL_NG_URLS += $(ONIE_MIRROR) http://crosstool-ng.org/download/crosstool-ng +CROSSTOOL_NG_URLS += $(ONIE_MIRROR) https://github.com/crosstool-ng/crosstool-ng/releases/download/crosstool-ng-$(CROSSTOOL_NG_VERSION) CROSSTOOL_NG_BUILD_DIR = $(BUILDDIR)/crosstool-ng CROSSTOOL_NG_STAMP_DIR = $(CROSSTOOL_NG_BUILD_DIR)/stamp CROSSTOOL_NG_DIR = $(CROSSTOOL_NG_BUILD_DIR)/crosstool-ng-$(CROSSTOOL_NG_VERSION) diff --git a/build-config/make/dmidecode.make b/build-config/make/dmidecode.make index 3f106a1aa..c3c92e8c3 100644 --- a/build-config/make/dmidecode.make +++ b/build-config/make/dmidecode.make @@ -9,7 +9,7 @@ # This is a makefile fragment that defines the build of dmidecode # -DMIDECODE_VERSION = 3.1 +DMIDECODE_VERSION = 3.7 DMIDECODE_TARBALL = dmidecode-$(DMIDECODE_VERSION).tar.xz DMIDECODE_TARBALL_URLS += $(ONIE_MIRROR) http://download.savannah.gnu.org/releases/dmidecode/ DMIDECODE_BUILD_DIR = $(USER_BUILDDIR)/dmidecode diff --git a/build-config/make/dosfstools.make b/build-config/make/dosfstools.make index 549720353..acbf6f3d7 100644 --- a/build-config/make/dosfstools.make +++ b/build-config/make/dosfstools.make @@ -9,9 +9,9 @@ # This is a makefile fragment that defines the build of dosfstools # -DOSFSTOOLS_VERSION = 3.0.26 -DOSFSTOOLS_TARBALL = dosfstools-$(DOSFSTOOLS_VERSION).tar.xz -DOSFSTOOLS_TARBALL_URLS += $(ONIE_MIRROR) http://daniel-baumann.ch/files/software/dosfstools +DOSFSTOOLS_VERSION = 4.2 +DOSFSTOOLS_TARBALL = dosfstools-$(DOSFSTOOLS_VERSION).tar.gz +DOSFSTOOLS_TARBALL_URLS += $(ONIE_MIRROR) https://github.com/dosfstools/dosfstools/releases/download/v$(DOSFSTOOLS_VERSION) DOSFSTOOLS_BUILD_DIR = $(USER_BUILDDIR)/dosfstools DOSFSTOOLS_DIR = $(DOSFSTOOLS_BUILD_DIR)/dosfstools-$(DOSFSTOOLS_VERSION) @@ -19,19 +19,25 @@ DOSFSTOOLS_SRCPATCHDIR = $(PATCHDIR)/dosfstools DOSFSTOOLS_DOWNLOAD_STAMP = $(DOWNLOADDIR)/dosfstools-download DOSFSTOOLS_SOURCE_STAMP = $(USER_STAMPDIR)/dosfstools-source DOSFSTOOLS_PATCH_STAMP = $(USER_STAMPDIR)/dosfstools-patch +DOSFSTOOLS_CONFIGURE_STAMP = $(USER_STAMPDIR)/dosfstools-configure DOSFSTOOLS_BUILD_STAMP = $(USER_STAMPDIR)/dosfstools-build DOSFSTOOLS_INSTALL_STAMP = $(STAMPDIR)/dosfstools-install DOSFSTOOLS_STAMP = $(DOSFSTOOLS_SOURCE_STAMP) \ $(DOSFSTOOLS_PATCH_STAMP) \ + $(DOSFSTOOLS_CONFIGURE_STAMP) \ $(DOSFSTOOLS_BUILD_STAMP) \ $(DOSFSTOOLS_INSTALL_STAMP) +# As of 4.x dosfstools installs three programs (mkfs.fat, fsck.fat and +# fatlabel). The legacy program names (dosfsck, mkdosfs, ...) are +# provided as compatibility symlinks via --enable-compat-symlinks. DOSFSTOOLS_PROGRAMS = fsck.fat dosfsck fsck.msdos fsck.vfat \ mkfs.fat mkdosfs mkfs.msdos mkfs.vfat \ fatlabel dosfslabel PHONY += dosfstools dosfstools-download dosfstools-source dosfstools-patch \ - dosfstools-build dosfstools-install dosfstools-clean dosfstools-download-clean + dosfstools-configure dosfstools-build dosfstools-install \ + dosfstools-clean dosfstools-download-clean dosfstools: $(DOSFSTOOLS_STAMP) @@ -59,25 +65,36 @@ $(DOSFSTOOLS_PATCH_STAMP): $(DOSFSTOOLS_SRCPATCHDIR)/* $(DOSFSTOOLS_SOURCE_STAMP $(Q) $(SCRIPTDIR)/apply-patch-series $(DOSFSTOOLS_SRCPATCHDIR)/series $(DOSFSTOOLS_DIR) $(Q) touch $@ +dosfstools-configure: $(DOSFSTOOLS_CONFIGURE_STAMP) +$(DOSFSTOOLS_CONFIGURE_STAMP): $(DOSFSTOOLS_PATCH_STAMP) | $(DEV_SYSROOT_INIT_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Configure dosfstools-$(DOSFSTOOLS_VERSION) ====" + $(Q) cd $(DOSFSTOOLS_DIR) && PATH='$(CROSSBIN):$(PATH)' \ + $(DOSFSTOOLS_DIR)/configure \ + --prefix=/usr \ + --host=$(TARGET) \ + --without-iconv \ + --enable-compat-symlinks \ + CC=$(CROSSPREFIX)gcc \ + CFLAGS="$(ONIE_CFLAGS)" \ + LDFLAGS="$(ONIE_LDFLAGS)" \ + $(ONIE_PKG_CONFIG) + $(Q) touch $@ + ifndef MAKE_CLEAN DOSFSTOOLS_NEW_FILES = $(shell test -d $(DOSFSTOOLS_DIR) && test -f $(DOSFSTOOLS_BUILD_STAMP) && \ - find -L $(DOSFSTOOLS_DIR) -newer $(DOSFSTOOLS_BUILD_STAMP) -type f \ + find -L $(DOSFSTOOLS_DIR) -newer $(DOSFSTOOLS_BUILD_STAMP) -type f \ \! -name filelist-rpm -print -quit) endif -DOSFSTOOLS_MAKE_VARS = \ - CC=$(CROSSPREFIX)gcc LD=$(CROSSPREFIX)ld \ - CFLAGS="$(ONIE_CFLAGS)" LDFLAGS="$(ONIE_LDFLAGS)" \ - DESTDIR=$(DEV_SYSROOT) PREFIX=/usr - dosfstools-build: $(DOSFSTOOLS_BUILD_STAMP) -$(DOSFSTOOLS_BUILD_STAMP): $(DOSFSTOOLS_PATCH_STAMP) $(DOSFSTOOLS_NEW_FILES) \ +$(DOSFSTOOLS_BUILD_STAMP): $(DOSFSTOOLS_CONFIGURE_STAMP) $(DOSFSTOOLS_NEW_FILES) \ | $(DEV_SYSROOT_INIT_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Building dosfstools-$(DOSFSTOOLS_VERSION) ====" - $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(DOSFSTOOLS_DIR) $(DOSFSTOOLS_MAKE_VARS) - $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(DOSFSTOOLS_DIR) $(DOSFSTOOLS_MAKE_VARS) \ - install-symlinks + $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(DOSFSTOOLS_DIR) + $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(DOSFSTOOLS_DIR) \ + DESTDIR=$(DEV_SYSROOT) install $(Q) touch $@ dosfstools-install: $(DOSFSTOOLS_INSTALL_STAMP) diff --git a/build-config/make/dropbear.make b/build-config/make/dropbear.make index d795519e7..2eb027507 100644 --- a/build-config/make/dropbear.make +++ b/build-config/make/dropbear.make @@ -10,7 +10,7 @@ # This is a makefile fragment that defines the build of dropbear # -DROPBEAR_VERSION = 2020.81 +DROPBEAR_VERSION = 2026.91 DROPBEAR_TARBALL = dropbear-$(DROPBEAR_VERSION).tar.bz2 DROPBEAR_TARBALL_URLS += $(ONIE_MIRROR) https://matt.ucc.asn.au/dropbear/releases DROPBEAR_BUILD_DIR = $(USER_BUILDDIR)/dropbear diff --git a/build-config/make/efibootmgr.make b/build-config/make/efibootmgr.make index f5b3ecbbc..e4b34aa18 100644 --- a/build-config/make/efibootmgr.make +++ b/build-config/make/efibootmgr.make @@ -9,10 +9,13 @@ # This is a makefile fragment that defines the build of efibootmgr # -EFIBOOTMGR_VERSION = 16 -EFIBOOTMGR_TARBALL = efibootmgr-$(EFIBOOTMGR_VERSION).tar.bz2 +EFIBOOTMGR_VERSION = 18 +# efibootmgr (like efivar) no longer ships dist tarballs; use the GitHub +# source archive (unpacks to efibootmgr-$(EFIBOOTMGR_VERSION)/). v18 +# matches efivar 39's efidp_format_device_path() signature. +EFIBOOTMGR_TARBALL = $(EFIBOOTMGR_VERSION).tar.gz EFIBOOTMGR_TARBALL_URLS += $(ONIE_MIRROR) \ - https://github.com/rhboot/efibootmgr/releases/download/$(EFIBOOTMGR_VERSION)/$(EFIBOOTMGR_TARBALL) + https://github.com/rhboot/efibootmgr/archive EFIBOOTMGR_BUILD_DIR = $(USER_BUILDDIR)/efibootmgr EFIBOOTMGR_DIR = $(EFIBOOTMGR_BUILD_DIR)/efibootmgr-$(EFIBOOTMGR_VERSION) diff --git a/build-config/make/efivar.make b/build-config/make/efivar.make index c2b0b17e9..ba67b2a98 100644 --- a/build-config/make/efivar.make +++ b/build-config/make/efivar.make @@ -11,26 +11,27 @@ # This is a makefile fragment that defines the build of efivar # -EFIVAR_VERSION = 37 -EFIVAR_TARBALL = efivar-$(EFIVAR_VERSION).tar.bz2 -EFIVAR_TARBALL_URLS += $(ONIE_MIRROR) https://github.com/rhboot/efivar/releases/download/${EFIVAR_VERSION}/${EFIVAR_TARBALL} +EFIVAR_VERSION = 39 +# efivar stopped publishing dist tarballs after v37; use the GitHub source +# archive (unpacks to efivar-$(EFIVAR_VERSION)/). efivar 39's build system +# is fully cross-compile aware (derives CC/AR/HOSTCC from CROSS_COMPILE), so +# none of the old ONIE efivar patches are needed any longer. +EFIVAR_TARBALL = $(EFIVAR_VERSION).tar.gz +EFIVAR_TARBALL_URLS += $(ONIE_MIRROR) https://github.com/rhboot/efivar/archive EFIVAR_BUILD_DIR = $(USER_BUILDDIR)/efivar EFIVAR_DIR = $(EFIVAR_BUILD_DIR)/efivar-$(EFIVAR_VERSION) -EFIVAR_SRCPATCHDIR = $(PATCHDIR)/efivar/$(EFIVAR_VERSION)/ EFIVAR_DOWNLOAD_STAMP = $(DOWNLOADDIR)/efivar-$(EFIVAR_VERSION)-download EFIVAR_SOURCE_STAMP = $(USER_STAMPDIR)/efivar-source -EFIVAR_PATCH_STAMP = $(USER_STAMPDIR)/efivar-patch EFIVAR_BUILD_STAMP = $(USER_STAMPDIR)/efivar-build EFIVAR_INSTALL_STAMP = $(STAMPDIR)/efivar-install EFIVAR_STAMP = $(EFIVAR_SOURCE_STAMP) \ - $(EFIVAR_PATCH_STAMP) \ $(EFIVAR_BUILD_STAMP) \ $(EFIVAR_INSTALL_STAMP) EFIVAR_PROGRAMS = efivar -PHONY += efivar efivar-download efivar-source efivar-patch \ +PHONY += efivar efivar-download efivar-source \ efivar-build efivar-install efivar-clean efivar-download-clean EFIVAR_BINS = efivar @@ -61,26 +62,19 @@ $(EFIVAR_SOURCE_STAMP): $(USER_TREE_STAMP) $(EFIVAR_DOWNLOAD_STAMP) $(Q) $(SCRIPTDIR)/extract-package $(EFIVAR_BUILD_DIR) $(DOWNLOADDIR)/$(EFIVAR_TARBALL) $(Q) touch $@ -efivar-patch: $(EFIVAR_PATCH_STAMP) -$(EFIVAR_PATCH_STAMP): $(EFIVAR_SRCPATCHDIR)/* $(EFIVAR_SOURCE_STAMP) - $(Q) rm -f $@ && eval $(PROFILE_STAMP) - $(Q) echo "==== Patching efivar ====" - $(Q) $(SCRIPTDIR)/apply-patch-series $(EFIVAR_SRCPATCHDIR)/series $(EFIVAR_DIR) - $(Q) touch $@ - ifndef MAKE_CLEAN EFIVAR_NEW_FILES = $(shell test -d $(EFIVAR_DIR) && test -f $(EFIVAR_BUILD_STAMP) && \ find -L $(EFIVAR_DIR) -newer $(EFIVAR_BUILD_STAMP) -type f -print -quit) endif efivar-build: $(EFIVAR_BUILD_STAMP) -$(EFIVAR_BUILD_STAMP): $(EFIVAR_PATCH_STAMP) $(EFIVAR_NEW_FILES) $(POPT_BUILD_STAMP) \ +$(EFIVAR_BUILD_STAMP): $(EFIVAR_SOURCE_STAMP) $(EFIVAR_NEW_FILES) $(POPT_BUILD_STAMP) \ | $(DEV_SYSROOT_INIT_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Building efivar-$(EFIVAR_VERSION) ====" - $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(EFIVAR_DIR) \ + $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(EFIVAR_DIR) SUBDIRS=src \ CROSS_COMPILE=$(CROSSPREFIX) PKG_CONFIG=pkg-config $(ONIE_PKG_CONFIG) DESTDIR=$(DEV_SYSROOT) - $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(EFIVAR_DIR) \ + $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(EFIVAR_DIR) SUBDIRS=src \ CROSS_COMPILE=$(CROSSPREFIX) PKG_CONFIG=pkg-config $(ONIE_PKG_CONFIG) DESTDIR=$(DEV_SYSROOT) install $(Q) touch $@ diff --git a/build-config/make/ethtool.make b/build-config/make/ethtool.make index 1fdb19e09..026676f5d 100644 --- a/build-config/make/ethtool.make +++ b/build-config/make/ethtool.make @@ -9,7 +9,7 @@ # This is a makefile fragment that defines the build of ethtool # -ETHTOOL_VERSION = 3.14 +ETHTOOL_VERSION = 6.15 ETHTOOL_TARBALL = ethtool-$(ETHTOOL_VERSION).tar.xz ETHTOOL_TARBALL_URLS += $(ONIE_MIRROR) https://www.kernel.org/pub/software/network/ethtool ETHTOOL_BUILD_DIR = $(USER_BUILDDIR)/ethtool @@ -50,7 +50,7 @@ $(ETHTOOL_SOURCE_STAMP): $(USER_TREE_STAMP) | $(ETHTOOL_DOWNLOAD_STAMP) $(Q) touch $@ ethtool-configure: $(ETHTOOL_CONFIGURE_STAMP) -$(ETHTOOL_CONFIGURE_STAMP): $(ETHTOOL_SOURCE_STAMP) | $(DEV_SYSROOT_INIT_STAMP) +$(ETHTOOL_CONFIGURE_STAMP): $(ETHTOOL_SOURCE_STAMP) $(LIBMNL_BUILD_STAMP) | $(DEV_SYSROOT_INIT_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Configure ethtool-$(ETHTOOL_VERSION) ====" $(Q) cd $(ETHTOOL_DIR) && PATH='$(CROSSBIN):$(PATH)' \ @@ -58,7 +58,8 @@ $(ETHTOOL_CONFIGURE_STAMP): $(ETHTOOL_SOURCE_STAMP) | $(DEV_SYSROOT_INIT_STAMP) --prefix=/usr \ --host=$(TARGET) \ CFLAGS="$(ONIE_CFLAGS)" \ - LDFLAGS="$(ONIE_LDFLAGS)" + LDFLAGS="$(ONIE_LDFLAGS)" \ + $(ONIE_PKG_CONFIG) $(Q) touch $@ ethtool-build: $(ETHTOOL_BUILD_STAMP) @@ -70,7 +71,7 @@ $(ETHTOOL_BUILD_STAMP): $(ETHTOOL_CONFIGURE_STAMP) $(Q) touch $@ ethtool-install: $(ETHTOOL_INSTALL_STAMP) -$(ETHTOOL_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(ETHTOOL_BUILD_STAMP) +$(ETHTOOL_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(ETHTOOL_BUILD_STAMP) $(LIBMNL_INSTALL_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Installing ethtool in $(SYSROOTDIR) ====" $(Q) cp -av $(DEV_SYSROOT)/usr/sbin/$(ETHTOOL_BIN) $(SYSROOTDIR)/usr/sbin diff --git a/build-config/make/gnu-efi.make b/build-config/make/gnu-efi.make deleted file mode 100644 index 9dd8e0025..000000000 --- a/build-config/make/gnu-efi.make +++ /dev/null @@ -1,99 +0,0 @@ -#------------------------------------------------------------------------------- -# -# Copyright (C) 2017 Curt Brune -# -# SPDX-License-Identifier: GPL-2.0 -# -#------------------------------------------------------------------------------- -# -# This is a makefile fragment that defines the build of gnu-efi -# - -GNU_EFI_VERSION = 3.0.12 -GNU_EFI_TARBALL = gnu-efi-$(GNU_EFI_VERSION).tar.bz2 -GNU_EFI_TARBALL_URLS += $(ONIE_MIRROR) https://downloads.sourceforge.net/project/gnu-efi -GNU_EFI_BUILD_DIR = $(USER_BUILDDIR)/gnu-efi -GNU_EFI_DIR = $(GNU_EFI_BUILD_DIR)/gnu-efi-$(GNU_EFI_VERSION) - -GNU_EFI_SRCPATCHDIR = $(PATCHDIR)/gnu-efi -GNU_EFI_DOWNLOAD_STAMP = $(DOWNLOADDIR)/gnu-efi-download -GNU_EFI_SOURCE_STAMP = $(USER_STAMPDIR)/gnu-efi-source -GNU_EFI_PATCH_STAMP = $(USER_STAMPDIR)/gnu-efi-patch -GNU_EFI_BUILD_STAMP = $(USER_STAMPDIR)/gnu-efi-build -GNU_EFI_INSTALL_STAMP = $(STAMPDIR)/gnu-efi-install -GNU_EFI_STAMP = $(GNU_EFI_SOURCE_STAMP) \ - $(GNU_EFI_PATCH_STAMP) \ - $(GNU_EFI_BUILD_STAMP) \ - $(GNU_EFI_INSTALL_STAMP) - -GNU_EFI_LIB_PATH = $(DEV_SYSROOT)/usr/lib -GNU_EFI_INCLUDE = $(DEV_SYSROOT)/usr/include/efi - - -PHONY += gnu-efi gnu-efi-download gnu-efi-source gnu-efi-patch \ - gnu-efi-build gnu-efi-install gnu-efi-clean gnu-efi-download-clean - -gnu-efi: $(GNU_EFI_STAMP) - -DOWNLOAD += $(GNU_EFI_DOWNLOAD_STAMP) -gnu-efi-download: $(GNU_EFI_DOWNLOAD_STAMP) -$(GNU_EFI_DOWNLOAD_STAMP): $(PROJECT_STAMP) - $(Q) rm -f $@ && eval $(PROFILE_STAMP) - $(Q) echo "==== Getting upstream gnu-efi ====" - $(Q) $(SCRIPTDIR)/fetch-package $(DOWNLOADDIR) $(UPSTREAMDIR) \ - $(GNU_EFI_TARBALL) $(GNU_EFI_TARBALL_URLS) - $(Q) touch $@ - -SOURCE += $(GNU_EFI_SOURCE_STAMP) -gnu-efi-source: $(GNU_EFI_SOURCE_STAMP) -$(GNU_EFI_SOURCE_STAMP): $(USER_TREE_STAMP) $(GNU_EFI_DOWNLOAD_STAMP) - $(Q) rm -f $@ && eval $(PROFILE_STAMP) - $(Q) echo "==== Extracting upstream gnu-efi ====" - $(Q) $(SCRIPTDIR)/extract-package $(GNU_EFI_BUILD_DIR) $(DOWNLOADDIR)/$(GNU_EFI_TARBALL) - $(Q) touch $@ - -gnu-efi-patch: $(GNU_EFI_PATCH_STAMP) -$(GNU_EFI_PATCH_STAMP): $(GNU_EFI_SRCPATCHDIR)/* $(GNU_EFI_SOURCE_STAMP) - $(Q) rm -f $@ && eval $(PROFILE_STAMP) - $(Q) echo "==== Patching gnu-efi ====" - $(Q) $(SCRIPTDIR)/apply-patch-series $(GNU_EFI_SRCPATCHDIR)/series $(GNU_EFI_DIR) - $(Q) touch $@ - -ifndef MAKE_CLEAN -GNU_EFI_NEW_FILES = $(shell test -d $(GNU_EFI_DIR) && test -f $(GNU_EFI_BUILD_STAMP) && \ - find -L $(GNU_EFI_DIR) -newer $(GNU_EFI_BUILD_STAMP) -type f -print -quit) -endif - -gnu-efi-build: $(GNU_EFI_BUILD_STAMP) -$(GNU_EFI_BUILD_STAMP): $(GNU_EFI_PATCH_STAMP) $(GNU_EFI_NEW_FILES) \ - | $(DEV_SYSROOT_INIT_STAMP) - $(Q) rm -f $@ && eval $(PROFILE_STAMP) - $(Q) echo "==== Building gnu-efi-$(GNU_EFI_VERSION) ====" - $(Q) PATH='$(CROSSBIN):$(PATH)' \ - $(MAKE) -j1 -C $(GNU_EFI_DIR) \ - CROSS_COMPILE=$(CROSSPREFIX) - $(Q) PATH='$(CROSSBIN):$(PATH)' \ - $(MAKE) -j1 -C $(GNU_EFI_DIR)/apps \ - CROSS_COMPILE=$(CROSSPREFIX) - $(Q) touch $@ - -gnu-efi-install: $(GNU_EFI_INSTALL_STAMP) -$(GNU_EFI_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(GNU_EFI_BUILD_STAMP) - $(Q) rm -f $@ && eval $(PROFILE_STAMP) - $(Q) echo "==== Installing gnu-efi in $(DEV_SYSROOT) ====" - $(Q) PATH='$(CROSSBIN):$(PATH)' \ - $(MAKE) -j1 -C $(GNU_EFI_DIR) \ - CROSS_COMPILE=$(CROSSPREFIX) \ - INSTALLROOT=$(DEV_SYSROOT) PREFIX=/usr \ - install - $(Q) touch $@ - -USER_CLEAN += gnu-efi-clean -gnu-efi-clean: - $(Q) rm -rf $(GNU_EFI_BUILD_DIR) - $(Q) rm -f $(GNU_EFI_STAMP) - $(Q) echo "=== Finished making $@ for $(PLATFORM)" - -DOWNLOAD_CLEAN += gnu-efi-download-clean -gnu-efi-download-clean: - $(Q) rm -f $(GNU_EFI_DOWNLOAD_STAMP) $(DOWNLOADDIR)/$(GNU_EFI_TARBALL) diff --git a/build-config/make/gptfdisk.make b/build-config/make/gptfdisk.make index c72024cb8..e50bada33 100644 --- a/build-config/make/gptfdisk.make +++ b/build-config/make/gptfdisk.make @@ -9,7 +9,7 @@ # This is a makefile fragment that defines the build of gptfdisk # -GPTFDISK_VERSION = 0.8.8 +GPTFDISK_VERSION = 1.0.10 GPTFDISK_TARBALL = gptfdisk-$(GPTFDISK_VERSION).tar.gz GPTFDISK_TARBALL_URLS += $(ONIE_MIRROR) http://sourceforge.net/projects/gptfdisk/files/gptfdisk/$(GPTFDISK_VERSION)/ GPTFDISK_BUILD_DIR = $(USER_BUILDDIR)/gptfdisk diff --git a/build-config/make/grub.make b/build-config/make/grub.make index 81d3fb12d..9c73857f2 100644 --- a/build-config/make/grub.make +++ b/build-config/make/grub.make @@ -13,9 +13,9 @@ # This is a makefile fragment that defines the build of grub # -GRUB_VERSION = 2.04 +GRUB_VERSION = 2.14 GRUB_TARBALL = grub-$(GRUB_VERSION).tar.xz -GRUB_TARBALL_URLS += $(ONIE_MIRROR) http://git.savannah.gnu.org/cgit/grub.git/snapshot/ ftp://alpha.gnu.org/gnu/grub/ +GRUB_TARBALL_URLS += $(ONIE_MIRROR) https://ftp.gnu.org/gnu/grub GRUB_BUILD_DIR = $(USER_BUILDDIR)/grub GRUB_DIR = $(GRUB_BUILD_DIR)/grub-$(GRUB_VERSION) GRUB_I386_DIR = $(GRUB_BUILD_DIR)/grub-i386-pc diff --git a/build-config/make/i2ctools.make b/build-config/make/i2ctools.make index 66c75214e..36e94a79e 100644 --- a/build-config/make/i2ctools.make +++ b/build-config/make/i2ctools.make @@ -11,9 +11,9 @@ # This is a makefile fragment that defines the build of i2ctools # -I2CTOOLS_VERSION = 3.1.1 -I2CTOOLS_TARBALL = i2c-tools-$(I2CTOOLS_VERSION).tar.bz2 -I2CTOOLS_TARBALL_URLS += $(ONIE_MIRROR) http://jdelvare.nerim.net/mirror/i2c-tools +I2CTOOLS_VERSION = 4.4 +I2CTOOLS_TARBALL = i2c-tools-$(I2CTOOLS_VERSION).tar.gz +I2CTOOLS_TARBALL_URLS += $(ONIE_MIRROR) https://mirrors.edge.kernel.org/pub/software/utils/i2c-tools I2CTOOLS_BUILD_DIR = $(MBUILDDIR)/i2c-tools I2CTOOLS_DIR = $(I2CTOOLS_BUILD_DIR)/i2c-tools-$(I2CTOOLS_VERSION) @@ -65,8 +65,8 @@ $(I2CTOOLS_PATCH_STAMP): $(I2CTOOLS_SRCPATCHDIR)/* $(MACHINE_I2CTOOLS_PATCHDIR_F $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Patching i2ctools ====" $(Q) mkdir -p $(I2CTOOLS_DIR)/sys_eeprom - $(Q) cp $(I2CTOOLS_DIR)/eepromer/24cXX.c $(I2CTOOLS_DIR)/sys_eeprom/24cXX.c - $(Q) cp $(I2CTOOLS_DIR)/eepromer/24cXX.h $(I2CTOOLS_DIR)/sys_eeprom/24cXX.h + $(Q) cp $(I2CTOOLS_DIR)/eeprog/24cXX.c $(I2CTOOLS_DIR)/sys_eeprom/24cXX.c + $(Q) cp $(I2CTOOLS_DIR)/eeprog/24cXX.h $(I2CTOOLS_DIR)/sys_eeprom/24cXX.h $(Q) mkdir -p $(I2CTOOLS_PATCHDIR) $(Q) cp $(I2CTOOLS_SRCPATCHDIR)/* $(I2CTOOLS_PATCHDIR) ifneq ($(MACHINE_I2CTOOLS_PATCHDIR),) diff --git a/build-config/make/images.make b/build-config/make/images.make index 02cc36fbf..21216022e 100644 --- a/build-config/make/images.make +++ b/build-config/make/images.make @@ -195,12 +195,8 @@ endif ifeq ($(REQUIRE_CXX_LIBS),yes) SYSROOT_LIBS += libstdc++.so libstdc++.so.6 - ifeq ($(GCC_VERSION),6.3.0) - SYSROOT_LIBS += libstdc++.so.6.0.22 - else ifeq ($(GCC_VERSION),4.9.2) - SYSROOT_LIBS += libstdc++.so.6.0.20 - else ifeq ($(GCC_VERSION),8.3.0) - SYSROOT_LIBS += libstdc++.so.6.0.25 + ifeq ($(GCC_VERSION),14.3.0) + SYSROOT_LIBS += libstdc++.so.6.0.33 else $(error C++ support: Unsupported GCC version: $(GCC_VERSION)) endif diff --git a/build-config/make/ipmitool.make b/build-config/make/ipmitool.make index d32191faf..57101dc9d 100644 --- a/build-config/make/ipmitool.make +++ b/build-config/make/ipmitool.make @@ -9,9 +9,14 @@ # This is a makefile fragment that defines the build of ipmitool # -IPMITOOL_VERSION = 1.8.18 -IPMITOOL_TARBALL = ipmitool-$(IPMITOOL_VERSION).tar.bz2 -IPMITOOL_TARBALL_URLS += $(ONIE_MIRROR) https://github.com/ipmitool/ipmitool/releases/download/IPMITOOL_$(subst .,_,$(IPMITOOL_VERSION))/ +IPMITOOL_VERSION = 1.8.19 +# 1.8.19 ships no release dist tarball, so use the upstream GitHub source +# tag archive. It unpacks to ipmitool-$(IPMITOOL_TAG)/ and has no +# generated configure, so the source step renames the dir and the +# configure step runs ./bootstrap (autoreconf) first. +IPMITOOL_TAG = IPMITOOL_$(subst .,_,$(IPMITOOL_VERSION)) +IPMITOOL_TARBALL = $(IPMITOOL_TAG).tar.gz +IPMITOOL_TARBALL_URLS += $(ONIE_MIRROR) https://github.com/ipmitool/ipmitool/archive/refs/tags IPMITOOL_BUILD_DIR = $(USER_BUILDDIR)/ipmitool IPMITOOL_DIR = $(IPMITOOL_BUILD_DIR)/ipmitool-$(IPMITOOL_VERSION) @@ -47,12 +52,16 @@ $(IPMITOOL_SOURCE_STAMP): $(USER_TREE_STAMP) | $(IPMITOOL_DOWNLOAD_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Extracting upstream ipmitool ====" $(Q) $(SCRIPTDIR)/extract-package $(IPMITOOL_BUILD_DIR) $(DOWNLOADDIR)/$(IPMITOOL_TARBALL) + $(Q) if [ -d "$(IPMITOOL_BUILD_DIR)/ipmitool-$(IPMITOOL_TAG)" ] ; then \ + mv "$(IPMITOOL_BUILD_DIR)/ipmitool-$(IPMITOOL_TAG)" $(IPMITOOL_DIR) ; \ + fi $(Q) touch $@ ipmitool-configure: $(IPMITOOL_CONFIGURE_STAMP) $(IPMITOOL_CONFIGURE_STAMP): $(IPMITOOL_SOURCE_STAMP) | $(DEV_SYSROOT_INIT_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Configure ipmitool-$(IPMITOOL_VERSION) ====" + $(Q) cd $(IPMITOOL_DIR) && PATH='$(CROSSBIN):$(PATH)' ./bootstrap $(Q) cd $(IPMITOOL_DIR) && PATH='$(CROSSBIN):$(PATH)' \ $(IPMITOOL_DIR)/configure \ --prefix=/usr \ diff --git a/build-config/make/kernel.make b/build-config/make/kernel.make index 996209374..9edaca9c9 100644 --- a/build-config/make/kernel.make +++ b/build-config/make/kernel.make @@ -109,6 +109,18 @@ LINUX_NEW_FILES = \ -type f -print -quit 2>/dev/null) endif +# Pre-6.x kernels do not build cleanly with the modern GCC 14 toolchain: their +# in-tree objtool cannot parse the objects emitted by the toolchain's binutils +# (e.g. "arch/x86/entry/thunk_64.o: objtool: missing symbol table"), and GCC 14 +# promotes several new warnings to errors. For those old kernels only, skip the +# objtool stack-validation pass and relax warnings-as-errors. Passing +# CONFIG_STACK_VALIDATION= on the command line overrides the value from .config +# in every (sub-)make, so objtool is not invoked, WITHOUT having to disable the +# RETPOLINE/ORC kconfig options that select it. Modern kernels (6.x+) keep full +# stack validation. +KERNEL_OLD_GCC_COMPAT = $(if $(shell [ "$(LINUX_MAJOR_VERSION)" -lt 6 ] 2>/dev/null && echo old),\ + CONFIG_STACK_VALIDATION= KBUILD_HOSTCFLAGS=-Wno-error KCFLAGS=-Wno-error) + kernel-build: $(KERNEL_BUILD_STAMP) $(KERNEL_BUILD_STAMP): $(KERNEL_SOURCE_STAMP) $(LINUX_NEW_FILES) $(LINUXDIR)/.config | $(XTOOLS_BUILD_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) @@ -118,6 +130,7 @@ $(KERNEL_BUILD_STAMP): $(KERNEL_SOURCE_STAMP) $(LINUX_NEW_FILES) $(LINUXDIR)/.co ARCH=$(KERNEL_ARCH) \ CROSS_COMPILE=$(CROSSPREFIX) \ MODULE_SIG_KEY_SRCPREFIX=$(ONIE_MODULE_SIG_KEY_SRCPREFIX)/ \ + $(KERNEL_OLD_GCC_COMPAT) \ V=$(V) \ all $(Q) touch $@ diff --git a/build-config/make/kexec-tools.make b/build-config/make/kexec-tools.make index 4b379c7fb..c061f1df7 100644 --- a/build-config/make/kexec-tools.make +++ b/build-config/make/kexec-tools.make @@ -9,7 +9,7 @@ # This is a makefile fragment that defines the build of kexec-tools # -KEXEC_VERSION = 2.0.22 +KEXEC_VERSION = 2.0.32 KEXEC_TARBALL = kexec-tools-$(KEXEC_VERSION).tar.xz KEXEC_TARBALL_URLS += $(ONIE_MIRROR) \ https://www.kernel.org/pub/linux/utils/kernel/kexec diff --git a/build-config/make/keyutils.make b/build-config/make/keyutils.make index c1aad6b4a..eda105aee 100644 --- a/build-config/make/keyutils.make +++ b/build-config/make/keyutils.make @@ -9,10 +9,13 @@ # This is a makefile fragment that defines the build of keyutils # -KEYUTILS_VERSION = 1.5.10 -KEYUTILS_TARBALL = keyutils-$(KEYUTILS_VERSION).tar.bz2 +KEYUTILS_VERSION = 1.6.3 +KEYUTILS_TARBALL = keyutils-$(KEYUTILS_VERSION).tar.gz +# Upstream tarballs used to live at people.redhat.com/~dhowells, which was +# retired. The maintainer's git tree on kernel.org serves a reproducible +# snapshot tarball (keyutils-.tar.gz) instead. KEYUTILS_TARBALL_URLS += $(ONIE_MIRROR) \ - https://people.redhat.com/~dhowells/keyutils + https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/keyutils.git/snapshot KEYUTILS_BUILD_DIR = $(USER_BUILDDIR)/keyutils KEYUTILS_DIR = $(KEYUTILS_BUILD_DIR)/keyutils-$(KEYUTILS_VERSION) @@ -29,7 +32,7 @@ PHONY += keyutils keyutils-download keyutils-source \ keyutils-download-clean KEYUTILS_BIN = keyctl -KEYUTILS_LIB = libkeyutils.so libkeyutils.so.1 libkeyutils.so.1.6 +KEYUTILS_LIB = libkeyutils.so libkeyutils.so.1 libkeyutils.so.1.10 keyutils: $(KEYUTILS_STAMP) diff --git a/build-config/make/libaio.make b/build-config/make/libaio.make new file mode 100644 index 000000000..5a9b1cd66 --- /dev/null +++ b/build-config/make/libaio.make @@ -0,0 +1,90 @@ +#------------------------------------------------------------------------------- +# +# SPDX-License-Identifier: GPL-2.0 +# +#------------------------------------------------------------------------------- +# +# This is a makefile fragment that defines the build of libaio +# +# libaio provides the Linux asynchronous I/O interface. It is required +# by lvm2 (>= 2.03, which uses it for its bcache I/O engine). + +LIBAIO_VERSION = 0.3.113 +LIBAIO_TARBALL = libaio-$(LIBAIO_VERSION).tar.gz +LIBAIO_TARBALL_URLS += $(ONIE_MIRROR) https://releases.pagure.org/libaio +LIBAIO_BUILD_DIR = $(USER_BUILDDIR)/libaio +LIBAIO_DIR = $(LIBAIO_BUILD_DIR)/libaio-$(LIBAIO_VERSION) + +LIBAIO_DOWNLOAD_STAMP = $(DOWNLOADDIR)/libaio-$(LIBAIO_VERSION)-download +LIBAIO_SOURCE_STAMP = $(USER_STAMPDIR)/libaio-source +LIBAIO_BUILD_STAMP = $(USER_STAMPDIR)/libaio-build +LIBAIO_INSTALL_STAMP = $(STAMPDIR)/libaio-install +LIBAIO_STAMP = $(LIBAIO_SOURCE_STAMP) \ + $(LIBAIO_BUILD_STAMP) \ + $(LIBAIO_INSTALL_STAMP) + +PHONY += libaio libaio-download libaio-source \ + libaio-build libaio-install libaio-clean libaio-download-clean + +# libaio builds via a plain Makefile (no ./configure); soname is +# libaio.so.1, real lib libaio.so.1.$(minor).$(micro) = libaio.so.1.0.2. +LIBAIO_LIBS = libaio.so libaio.so.1 libaio.so.1.0.2 + +libaio: $(LIBAIO_STAMP) + +DOWNLOAD += $(LIBAIO_DOWNLOAD_STAMP) +libaio-download: $(LIBAIO_DOWNLOAD_STAMP) +$(LIBAIO_DOWNLOAD_STAMP): $(PROJECT_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Getting upstream libaio ====" + $(Q) $(SCRIPTDIR)/fetch-package $(DOWNLOADDIR) $(UPSTREAMDIR) \ + $(LIBAIO_TARBALL) $(LIBAIO_TARBALL_URLS) + $(Q) touch $@ + +SOURCE += $(LIBAIO_SOURCE_STAMP) +libaio-source: $(LIBAIO_SOURCE_STAMP) +$(LIBAIO_SOURCE_STAMP): $(USER_TREE_STAMP) | $(LIBAIO_DOWNLOAD_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Extracting upstream libaio ====" + $(Q) $(SCRIPTDIR)/extract-package $(LIBAIO_BUILD_DIR) $(DOWNLOADDIR)/$(LIBAIO_TARBALL) + $(Q) touch $@ + +ifndef MAKE_CLEAN +LIBAIO_NEW_FILES = $(shell test -d $(LIBAIO_DIR) && test -f $(LIBAIO_BUILD_STAMP) && \ + find -L $(LIBAIO_DIR) -newer $(LIBAIO_BUILD_STAMP) -type f -print -quit) +endif + +libaio-build: $(LIBAIO_BUILD_STAMP) +$(LIBAIO_BUILD_STAMP): $(LIBAIO_SOURCE_STAMP) $(LIBAIO_NEW_FILES) | $(DEV_SYSROOT_INIT_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Building libaio-$(LIBAIO_VERSION) ====" + $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(LIBAIO_DIR) \ + CC=$(CROSSPREFIX)gcc prefix=/usr + $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(LIBAIO_DIR) \ + CC=$(CROSSPREFIX)gcc prefix=/usr DESTDIR=$(DEV_SYSROOT) install + $(Q) touch $@ + +libaio-install: $(LIBAIO_INSTALL_STAMP) +$(LIBAIO_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(LIBAIO_BUILD_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Installing libaio in $(SYSROOTDIR) ====" + $(Q) for file in $(LIBAIO_LIBS) ; do \ + cp -a $(DEV_SYSROOT)/usr/lib/$$file $(SYSROOTDIR)/usr/lib/ ; \ + done + $(Q) touch $@ + +USER_CLEAN += libaio-clean +libaio-clean: + $(Q) rm -rf $(LIBAIO_BUILD_DIR) + $(Q) rm -f $(LIBAIO_STAMP) + $(Q) echo "=== Finished making $@ for $(PLATFORM)" + +DOWNLOAD_CLEAN += libaio-download-clean +libaio-download-clean: + $(Q) rm -f $(LIBAIO_DOWNLOAD_STAMP) $(DOWNLOADDIR)/$(LIBAIO_TARBALL) + +#------------------------------------------------------------------------------- +# +# Local Variables: +# mode: makefile-gmake +# End: diff --git a/build-config/make/libmnl.make b/build-config/make/libmnl.make new file mode 100644 index 000000000..bc66ef2a2 --- /dev/null +++ b/build-config/make/libmnl.make @@ -0,0 +1,102 @@ +#------------------------------------------------------------------------------- +# +# SPDX-License-Identifier: GPL-2.0 +# +#------------------------------------------------------------------------------- +# +# This is a makefile fragment that defines the build of libmnl +# +# libmnl is a minimal netlink library (netfilter.org). It is required +# by ethtool's netlink interface (the default since ethtool moved most +# functionality to netlink). + +LIBMNL_VERSION = 1.0.5 +LIBMNL_TARBALL = libmnl-$(LIBMNL_VERSION).tar.bz2 +LIBMNL_TARBALL_URLS += $(ONIE_MIRROR) https://www.netfilter.org/projects/libmnl/files +LIBMNL_BUILD_DIR = $(USER_BUILDDIR)/libmnl +LIBMNL_DIR = $(LIBMNL_BUILD_DIR)/libmnl-$(LIBMNL_VERSION) + +LIBMNL_DOWNLOAD_STAMP = $(DOWNLOADDIR)/libmnl-$(LIBMNL_VERSION)-download +LIBMNL_SOURCE_STAMP = $(USER_STAMPDIR)/libmnl-source +LIBMNL_CONFIGURE_STAMP = $(USER_STAMPDIR)/libmnl-configure +LIBMNL_BUILD_STAMP = $(USER_STAMPDIR)/libmnl-build +LIBMNL_INSTALL_STAMP = $(STAMPDIR)/libmnl-install +LIBMNL_STAMP = $(LIBMNL_SOURCE_STAMP) \ + $(LIBMNL_CONFIGURE_STAMP) \ + $(LIBMNL_BUILD_STAMP) \ + $(LIBMNL_INSTALL_STAMP) + +PHONY += libmnl libmnl-download libmnl-source libmnl-configure \ + libmnl-build libmnl-install libmnl-clean libmnl-download-clean + +LIBMNL_LIBS = libmnl.so libmnl.so.0 libmnl.so.0.2.0 + +libmnl: $(LIBMNL_STAMP) + +DOWNLOAD += $(LIBMNL_DOWNLOAD_STAMP) +libmnl-download: $(LIBMNL_DOWNLOAD_STAMP) +$(LIBMNL_DOWNLOAD_STAMP): $(PROJECT_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Getting upstream libmnl ====" + $(Q) $(SCRIPTDIR)/fetch-package $(DOWNLOADDIR) $(UPSTREAMDIR) \ + $(LIBMNL_TARBALL) $(LIBMNL_TARBALL_URLS) + $(Q) touch $@ + +SOURCE += $(LIBMNL_SOURCE_STAMP) +libmnl-source: $(LIBMNL_SOURCE_STAMP) +$(LIBMNL_SOURCE_STAMP): $(USER_TREE_STAMP) | $(LIBMNL_DOWNLOAD_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Extracting upstream libmnl ====" + $(Q) $(SCRIPTDIR)/extract-package $(LIBMNL_BUILD_DIR) $(DOWNLOADDIR)/$(LIBMNL_TARBALL) + $(Q) touch $@ + +ifndef MAKE_CLEAN +LIBMNL_NEW_FILES = $(shell test -d $(LIBMNL_DIR) && test -f $(LIBMNL_BUILD_STAMP) && \ + find -L $(LIBMNL_DIR) -newer $(LIBMNL_BUILD_STAMP) -type f -print -quit) +endif + +libmnl-configure: $(LIBMNL_CONFIGURE_STAMP) +$(LIBMNL_CONFIGURE_STAMP): $(LIBMNL_SOURCE_STAMP) | $(DEV_SYSROOT_INIT_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Configure libmnl-$(LIBMNL_VERSION) ====" + $(Q) cd $(LIBMNL_DIR) && PATH='$(CROSSBIN):$(PATH)' \ + $(LIBMNL_DIR)/configure \ + --enable-shared \ + --prefix=/usr \ + --host=$(TARGET) \ + CC=$(CROSSPREFIX)gcc \ + CFLAGS="$(ONIE_CFLAGS)" + $(Q) touch $@ + +libmnl-build: $(LIBMNL_BUILD_STAMP) +$(LIBMNL_BUILD_STAMP): $(LIBMNL_CONFIGURE_STAMP) $(LIBMNL_NEW_FILES) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Building libmnl-$(LIBMNL_VERSION) ====" + $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(LIBMNL_DIR) DESTDIR=$(DEV_SYSROOT) + $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(LIBMNL_DIR) DESTDIR=$(DEV_SYSROOT) install + $(Q) touch $@ + +libmnl-install: $(LIBMNL_INSTALL_STAMP) +$(LIBMNL_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(LIBMNL_BUILD_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Installing libmnl in $(SYSROOTDIR) ====" + $(Q) for file in $(LIBMNL_LIBS) ; do \ + cp -a $(DEV_SYSROOT)/usr/lib/$$file $(SYSROOTDIR)/usr/lib/ ; \ + done + $(Q) touch $@ + +USER_CLEAN += libmnl-clean +libmnl-clean: + $(Q) rm -rf $(LIBMNL_BUILD_DIR) + $(Q) rm -f $(LIBMNL_STAMP) + $(Q) echo "=== Finished making $@ for $(PLATFORM)" + +DOWNLOAD_CLEAN += libmnl-download-clean +libmnl-download-clean: + $(Q) rm -f $(LIBMNL_DOWNLOAD_STAMP) $(DOWNLOADDIR)/$(LIBMNL_TARBALL) + +#------------------------------------------------------------------------------- +# +# Local Variables: +# mode: makefile-gmake +# End: diff --git a/build-config/make/libpcap.make b/build-config/make/libpcap.make index 9b0c91994..b1d591b9c 100644 --- a/build-config/make/libpcap.make +++ b/build-config/make/libpcap.make @@ -9,7 +9,7 @@ # This is a makefile fragment that defines the build of libpcap # -LIBPCAP_VERSION = 1.10.4 +LIBPCAP_VERSION = 1.10.6 LIBPCAP_TARBALL = libpcap-$(LIBPCAP_VERSION).tar.gz LIBPCAP_TARBALL_URLS += $(ONIE_MIRROR) \ https://www.tcpdump.org/release diff --git a/build-config/make/lvm2.make b/build-config/make/lvm2.make index 468f6675f..ee3617fbe 100644 --- a/build-config/make/lvm2.make +++ b/build-config/make/lvm2.make @@ -11,11 +11,11 @@ # This is a makefile fragment that defines the build of lvm2 # -LVM2_VERSION ?= 2_02_105 -LVM2_TARBALL = lvm2-$(LVM2_VERSION).tar.xz -LVM2_TARBALL_URLS += $(ONIE_MIRROR) https://git.fedorahosted.org/cgit/lvm2.git/snapshot/ +LVM2_VERSION ?= 2.03.41 +LVM2_TARBALL = LVM2.$(LVM2_VERSION).tgz +LVM2_TARBALL_URLS += $(ONIE_MIRROR) https://sourceware.org/ftp/lvm2 LVM2_BUILD_DIR = $(USER_BUILDDIR)/lvm2 -LVM2_DIR = $(LVM2_BUILD_DIR)/lvm2-$(LVM2_VERSION) +LVM2_DIR = $(LVM2_BUILD_DIR)/LVM2.$(LVM2_VERSION) LVM2_SRCPATCHDIR = $(PATCHDIR)/lvm2 LVM2_DOWNLOAD_STAMP = $(DOWNLOADDIR)/lvm2-$(LVM2_VERSION)-download @@ -45,7 +45,6 @@ LVM2_PROGS = \ sbin/lvcreate \ sbin/lvdisplay \ sbin/lvextend \ - sbin/lvmchange \ sbin/lvmdiskscan \ sbin/lvmsadc \ sbin/lvmsar \ @@ -122,7 +121,7 @@ LVM2_CONFIGURE_OVERRIDES = \ lvm2-configure: $(LVM2_CONFIGURE_STAMP) -$(LVM2_CONFIGURE_STAMP): $(LVM2_SOURCE_STAMP) $(LVM2_PATCH_STAMP)\ +$(LVM2_CONFIGURE_STAMP): $(LVM2_SOURCE_STAMP) $(LVM2_PATCH_STAMP) $(LIBAIO_BUILD_STAMP)\ | $(DEV_SYSROOT_INIT_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Configure lvm2-$(LVM2_VERSION) ====" @@ -131,9 +130,14 @@ $(LVM2_CONFIGURE_STAMP): $(LVM2_SOURCE_STAMP) $(LVM2_PATCH_STAMP)\ $(LVM2_DIR)/configure \ --prefix=/usr \ --host=$(TARGET) \ - --with-clvmd=none \ --disable-nls \ --disable-selinux \ + --disable-readline \ + --disable-systemd-journal \ + --without-systemd \ + --without-udev \ + --disable-use-lvmlockd \ + --disable-use-lvmpolld \ CC=$(CROSSPREFIX)gcc \ CFLAGS="$(ONIE_CFLAGS)" \ LDFLAGS="$(ONIE_LDFLAGS)" @@ -150,7 +154,7 @@ $(LVM2_BUILD_STAMP): $(LVM2_CONFIGURE_STAMP) $(UTILLINUX_BUILD_STAMP) $(Q) touch $@ lvm2-install: $(LVM2_INSTALL_STAMP) -$(LVM2_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(LVM2_BUILD_STAMP) $(UTILLINUX_INSTALL_STAMP) +$(LVM2_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(LVM2_BUILD_STAMP) $(UTILLINUX_INSTALL_STAMP) $(LIBAIO_INSTALL_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Installing lvm2 programs in $(SYSROOTDIR) ====" $(Q) for file in $(LVM2_PROGS) ; do \ diff --git a/build-config/make/lzo.make b/build-config/make/lzo.make index be4ee0c8a..a16ff886c 100644 --- a/build-config/make/lzo.make +++ b/build-config/make/lzo.make @@ -10,7 +10,7 @@ # This is a makefile fragment that defines the build of lzo # -LZO_VERSION = 2.09 +LZO_VERSION = 2.10 LZO_TARBALL = lzo-$(LZO_VERSION).tar.gz LZO_TARBALL_URLS += $(ONIE_MIRROR) http://www.oberhumer.com/opensource/lzo/download LZO_BUILD_DIR = $(USER_BUILDDIR)/lzo diff --git a/build-config/make/mokutil.make b/build-config/make/mokutil.make index 50f40540b..71f17f8a2 100644 --- a/build-config/make/mokutil.make +++ b/build-config/make/mokutil.make @@ -10,7 +10,7 @@ # This is a makefile fragment that defines the build of mokutil # -MOKUTIL_VERSION = 0.4.0 +MOKUTIL_VERSION = 0.7.2 MOKUTIL_TARBALL = $(MOKUTIL_VERSION).tar.gz MOKUTIL_TARBALL_URLS += $(ONIE_MIRROR) https://github.com/lcp/mokutil/archive MOKUTIL_BUILD_DIR = $(USER_BUILDDIR)/mokutil @@ -57,11 +57,15 @@ $(MOKUTIL_SOURCE_STAMP): $(USER_TREE_STAMP) $(MOKUTIL_DOWNLOAD_STAMP) $(Q) touch $@ mokutil-patch: $(MOKUTIL_PATCH_STAMP) -$(MOKUTIL_PATCH_STAMP): $(EFIVAR_BUILD_STAMP) $(OPENSSL_BUILD_STAMP) $(MOKUTIL_SRCPATCHDIR)/* $(MOKUTIL_SOURCE_STAMP) +$(MOKUTIL_PATCH_STAMP): $(EFIVAR_BUILD_STAMP) $(OPENSSL_BUILD_STAMP) $(KEYUTILS_INSTALL_STAMP) $(MOKUTIL_SRCPATCHDIR)/* $(MOKUTIL_SOURCE_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Patching mokutil ====" $(Q) $(SCRIPTDIR)/apply-patch-series $(MOKUTIL_SRCPATCHDIR)/series $(MOKUTIL_DIR) - $(Q) cd $(MOKUTIL_DIR) && ./autogen.sh + # NOCONFIGURE: autoreconf only. autogen.sh would otherwise run an + # unconfigured ./configure that lacks ONIE's pkg-config sysroot env and + # fails mokutil's new libkeyutils check; the real configure step below + # runs it with $(ONIE_PKG_CONFIG) set. + $(Q) cd $(MOKUTIL_DIR) && NOCONFIGURE=1 ./autogen.sh $(Q) touch $@ ifndef MAKE_CLEAN @@ -70,7 +74,7 @@ MOKUTIL_NEW_FILES = $(shell test -d $(MOKUTIL_DIR) && test -f $(MOKUTIL_BUILD_ST endif mokutil-configure: $(MOKUTIL_CONFIGURE_STAMP) -$(MOKUTIL_CONFIGURE_STAMP): $(MOKUTIL_PATCH_STAMP) $(EFIVAR_BUILD_STAMP) | $(DEV_SYSROOT_INIT_STAMP) +$(MOKUTIL_CONFIGURE_STAMP): $(MOKUTIL_PATCH_STAMP) $(EFIVAR_BUILD_STAMP) $(KEYUTILS_INSTALL_STAMP) | $(DEV_SYSROOT_INIT_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Configure mokutil-$(MOKUTIL_VERSION) ====" $(Q) cd $(MOKUTIL_DIR) && PATH='$(CROSSBIN):$(PATH)' \ diff --git a/build-config/make/mtdutils.make b/build-config/make/mtdutils.make index be6f3c134..a554407a4 100644 --- a/build-config/make/mtdutils.make +++ b/build-config/make/mtdutils.make @@ -10,26 +10,28 @@ # This is a makefile fragment that defines the build of mtdutils # -MTDUTILS_VERSION = 1.5.2 -MTDUTILS_COMMIT = e4c8885bddac201ba0ef88560d6444f39e1ff870 -MTDUTILS_TARBALL = mtd-utils-$(MTDUTILS_VERSION).tar.gz -MTDUTILS_TARBALL_URLS += $(ONIE_MIRROR) http://git.infradead.org/mtd-utils.git/snapshot +MTDUTILS_VERSION = 2.3.1 +MTDUTILS_TARBALL = mtd-utils-$(MTDUTILS_VERSION).tar.bz2 +MTDUTILS_TARBALL_URLS += $(ONIE_MIRROR) https://infraroot.at/pub/mtd MTDUTILS_BUILD_DIR = $(USER_BUILDDIR)/mtd-utils -MTDUTILS_DIR = $(MTDUTILS_BUILD_DIR)/mtd-utils-e4c8885 +MTDUTILS_DIR = $(MTDUTILS_BUILD_DIR)/mtd-utils-$(MTDUTILS_VERSION) MTDUTILS_DOWNLOAD_STAMP = $(DOWNLOADDIR)/mtdutils-$(MTDUTILS_VERSION)-download MTDUTILS_SOURCE_STAMP = $(USER_STAMPDIR)/mtdutils-source +MTDUTILS_CONFIGURE_STAMP = $(USER_STAMPDIR)/mtdutils-configure MTDUTILS_BUILD_STAMP = $(USER_STAMPDIR)/mtdutils-build MTDUTILS_INSTALL_STAMP = $(STAMPDIR)/mtdutils-install MTDUTILS_STAMP = $(MTDUTILS_SOURCE_STAMP) \ + $(MTDUTILS_CONFIGURE_STAMP) \ $(MTDUTILS_BUILD_STAMP) \ $(MTDUTILS_INSTALL_STAMP) -MTDBINS = mkfs.jffs2 mkfs.ubifs ubinize ubiformat ubinfo mtdinfo +MTDBINS = mkfs.jffs2 mkfs.ubifs ubinize ubiformat ubinfo mtdinfo UBIBINS = ubiattach ubimkvol ubidetach ubirmvol -PHONY += mtdutils mtdutils-download mtdutils-source mtdutils-build \ - mtdutils-install mtdutils-clean mtdutils-download-clean +PHONY += mtdutils mtdutils-download mtdutils-source mtdutils-configure \ + mtdutils-build mtdutils-install mtdutils-clean mtdutils-download-clean \ + mtdutils-configure-help mtdutils: $(MTDUTILS_STAMP) @@ -39,8 +41,7 @@ $(MTDUTILS_DOWNLOAD_STAMP): $(PROJECT_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Getting upstream mtdutils ====" $(Q) $(SCRIPTDIR)/fetch-package $(DOWNLOADDIR) $(UPSTREAMDIR) \ - $(MTDUTILS_COMMIT).tar.gz $(MTDUTILS_TARBALL_URLS) - $(Q) cd $(DOWNLOADDIR) && ln -fs $(MTDUTILS_COMMIT).tar.gz $(MTDUTILS_TARBALL) + $(MTDUTILS_TARBALL) $(MTDUTILS_TARBALL_URLS) $(Q) touch $@ SOURCE += $(MTDUTILS_SOURCE_STAMP) @@ -51,29 +52,66 @@ $(MTDUTILS_SOURCE_STAMP): $(USER_TREE_STAMP) | $(MTDUTILS_DOWNLOAD_STAMP) $(Q) $(SCRIPTDIR)/extract-package $(MTDUTILS_BUILD_DIR) $(DOWNLOADDIR)/$(MTDUTILS_TARBALL) $(Q) touch $@ +mtdutils-configure-help: $(UTILLINUX_BUILD_STAMP) $(LZO_BUILD_STAMP) \ + $(ZLIB_BUILD_STAMP) \ + $(MTDUTILS_SOURCE_STAMP) | $(DEV_SYSROOT_INIT_STAMP) + $(Q) echo "==== Configure help for mtd-utils-$(MTDUTILS_VERSION) ====" + $(Q) cd $(MTDUTILS_DIR) && PATH='$(CROSSBIN):$(PATH)' \ + $(MTDUTILS_DIR)/configure --help + +# mtd-utils 2.x uses an autotools (./configure) build. +# +# Optional dependencies: +# - zlib, lzo, libuuid (util-linux) are provided by ONIE and enabled +# (UBIFS/JFFS2 support). +# - crypto (UBIFS authentication) is disabled: ONIE does not need it and +# the prior 1.5.2 build did not use it. +# - zstd is NOT provided by ONIE, so ZSTD compression is disabled. +# - selinux is NOT provided by ONIE, so SELinux support is disabled. +# - xattr is disabled to match the prior 1.5.2 build (WITHOUT_XATTR=1). +# - The unit/test programs are disabled (--without-tests); they are not +# installed and pull in extra dependencies (pthread, clock_gettime). +mtdutils-configure: $(MTDUTILS_CONFIGURE_STAMP) +$(MTDUTILS_CONFIGURE_STAMP): $(UTILLINUX_BUILD_STAMP) $(LZO_BUILD_STAMP) \ + $(ZLIB_BUILD_STAMP) \ + $(MTDUTILS_SOURCE_STAMP) | $(DEV_SYSROOT_INIT_STAMP) + $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Configure mtd-utils-$(MTDUTILS_VERSION) ====" + $(Q) cd $(MTDUTILS_DIR) && PATH='$(CROSSBIN):$(PATH)' \ + $(MTDUTILS_DIR)/configure \ + --prefix=/usr \ + --host=$(TARGET) \ + --with-zlib \ + --with-lzo \ + --with-ubifs \ + --with-jffs \ + --without-crypto \ + --without-zstd \ + --without-xattr \ + --without-selinux \ + --without-tests \ + --without-lsmtd \ + --disable-unit-tests \ + --disable-ubihealthd \ + CC=$(CROSSPREFIX)gcc \ + CFLAGS="$(ONIE_CFLAGS)" \ + LDFLAGS="$(ONIE_LDFLAGS)" \ + $(ONIE_PKG_CONFIG) + $(Q) touch $@ + ifndef MAKE_CLEAN MTDUTILS_NEW_FILES = $(shell test -d $(MTDUTILS_DIR) && test -f $(MTDUTILS_BUILD_STAMP) && \ - find -L $(MTDUTILS_DIR) -newer $(MTDUTILS_BUILD_STAMP) -type f -print -quit) + find -L $(MTDUTILS_DIR) -newer $(MTDUTILS_BUILD_STAMP) -type f -print -quit) endif mtdutils-build: $(MTDUTILS_BUILD_STAMP) -$(MTDUTILS_BUILD_STAMP): $(MTDUTILS_NEW_FILES) $(UTILLINUX_BUILD_STAMP) \ - $(LZO_BUILD_STAMP) $(ZLIB_BUILD_STAMP) \ - $(MTDUTILS_SOURCE_STAMP) | $(DEV_SYSROOT_INIT_STAMP) +$(MTDUTILS_BUILD_STAMP): $(MTDUTILS_NEW_FILES) $(MTDUTILS_CONFIGURE_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) + $(Q) echo "==== Building mtd-utils-$(MTDUTILS_VERSION) ====" $(Q) PATH='$(CROSSBIN):$(PATH)' \ - $(MAKE) -C $(MTDUTILS_DIR) \ - PREFIX=$(DEV_SYSROOT)/usr \ - CROSS=$(CROSSPREFIX) \ - CFLAGS="-g $(ONIE_CFLAGS)" \ - WITHOUT_XATTR=1 + $(MAKE) -C $(MTDUTILS_DIR) DESTDIR=$(DEV_SYSROOT) $(Q) PATH='$(CROSSBIN):$(PATH)' \ - $(MAKE) -C $(MTDUTILS_DIR) \ - PREFIX=$(DEV_SYSROOT)/usr \ - CROSS=$(CROSSPREFIX) \ - CFLAGS="-g $(ONIE_CFLAGS)" \ - WITHOUT_XATTR=1 \ - install + $(MAKE) -C $(MTDUTILS_DIR) DESTDIR=$(DEV_SYSROOT) install $(Q) touch $@ mtdutils-install: $(MTDUTILS_INSTALL_STAMP) @@ -101,8 +139,7 @@ mtdutils-clean: DOWNLOAD_CLEAN += mtdutils-download-clean mtdutils-download-clean: - $(Q) rm -f $(MTDUTILS_DOWNLOAD_STAMP) $(DOWNLOADDIR)/$(MTDUTILS_COMMIT).tar.gz \ - $(DOWNLOADDIR)/$(MTDUTILS_TARBALL) + $(Q) rm -f $(MTDUTILS_DOWNLOAD_STAMP) $(DOWNLOADDIR)/$(MTDUTILS_TARBALL) #------------------------------------------------------------------------------- # diff --git a/build-config/make/openssl.make b/build-config/make/openssl.make index 6591df9fc..64068b8f7 100644 --- a/build-config/make/openssl.make +++ b/build-config/make/openssl.make @@ -10,9 +10,13 @@ # This is a makefile fragment that defines the build of openssl # -OPENSSL_VERSION ?= 1.1.1g +OPENSSL_VERSION ?= 3.5.7 OPENSSL_TARBALL = openssl-$(OPENSSL_VERSION).tar.gz +# openssl.org/source/ only keeps the newest release of each line (older +# ones move to /source/old/), so prefer the stable per-version GitHub +# release asset and keep openssl.org as a fallback. OPENSSL_TARBALL_URLS += $(ONIE_MIRROR) \ + https://github.com/openssl/openssl/releases/download/openssl-$(OPENSSL_VERSION) \ https://www.openssl.org/source OPENSSL_BUILD_DIR = $(USER_BUILDDIR)/openssl OPENSSL_DIR = $(OPENSSL_BUILD_DIR)/openssl-$(OPENSSL_VERSION) @@ -31,13 +35,7 @@ PHONY += openssl openssl-download openssl-source \ openssl-configure openssl-build openssl-install openssl-clean \ openssl-download-clean -ifeq ($(OPENSSL_VERSION),1.1.1g) -OPENSSL_ARCH = -OPENSSL_LIBS = \ - engines-1.1 \ - libcrypto.so libcrypto.so.1.1 \ - libssl.so libssl.so.1.1 -else ifeq ($(OPENSSL_VERSION),3.4.0) +# ONIE standardizes on OpenSSL 3.x (SONAME major 3, "engines" dir). ifeq ($(ARCH),arm64) OPENSSL_ARCH = linux-aarch64 else @@ -48,9 +46,6 @@ OPENSSL_LIBS = \ engines \ libcrypto.so libcrypto.so.3 \ libssl.so libssl.so.3 -else - $(error OPENSSL_LIBS: Unsupported OpenSSL version: $(OPENSSL_VERSION)) -endif OPENSSL_BINS = openssl diff --git a/build-config/make/pciutils.make b/build-config/make/pciutils.make index 39cfedab6..0751b52e1 100644 --- a/build-config/make/pciutils.make +++ b/build-config/make/pciutils.make @@ -9,7 +9,7 @@ # This is a makefile fragment that defines the build of pciutils # -PCIUTILS_VERSION = 3.2.1 +PCIUTILS_VERSION = 3.15.0 PCIUTILS_TARBALL = pciutils-$(PCIUTILS_VERSION).tar.xz PCIUTILS_TARBALL_URLS += $(ONIE_MIRROR) https://www.kernel.org/pub/software/utils/pciutils PCIUTILS_BUILD_DIR = $(USER_BUILDDIR)/pciutils @@ -70,9 +70,9 @@ $(PCIUTILS_BUILD_STAMP): $(PCIUTILS_PATCH_STAMP) $(PCIUTILS_NEW_FILES) $(ZLIB_BU $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Building pciutils-$(PCIUTILS_VERSION) ====" $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(PCIUTILS_DIR) lib/libpci.so.$(PCIUTILS_VERSION) CROSS_COMPILE=$(CROSSPREFIX) \ - HOST=onie-$(ARCH)-linux ZLIB=yes DNS=no SHARED=yes LIBKMOD=no PREFIX=/usr DESTDIR=$(DEV_SYSROOT) + HOST=$(ARCH)-linux ZLIB=yes DNS=no SHARED=yes LIBKMOD=no PREFIX=/usr DESTDIR=$(DEV_SYSROOT) $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(PCIUTILS_DIR) install-lib CROSS_COMPILE=$(CROSSPREFIX) \ - HOST=onie-$(ARCH)-linux ZLIB=yes DNS=no SHARED=yes LIBKMOD=no PREFIX=/usr DESTDIR=$(DEV_SYSROOT) + HOST=$(ARCH)-linux ZLIB=yes DNS=no SHARED=yes LIBKMOD=no PREFIX=/usr DESTDIR=$(DEV_SYSROOT) $(Q) touch $@ pciutils-install: $(PCIUTILS_INSTALL_STAMP) diff --git a/build-config/make/pesign.make b/build-config/make/pesign.make deleted file mode 100644 index a2909d1d1..000000000 --- a/build-config/make/pesign.make +++ /dev/null @@ -1,90 +0,0 @@ -#------------------------------------------------------------------------------- -# -# Copyright (C) 2020 Alex Doyle -# Copyright (C) 2017 Curt Brune -# -# SPDX-License-Identifier: GPL-2.0 -# -#------------------------------------------------------------------------------- -# -# This is a makefile fragment that defines the build of pesign -# - -PESIGN_VERSION = 113 -PESIGN_TARBALL = pesign-$(PESIGN_VERSION).tar.bz2 -PESIGN_TARBALL_URLS += $(ONIE_MIRROR) https://github.com/rhinstaller/pesign/releases/download/$(PESIGN_VERSION) -PESIGN_BUILD_DIR = $(USER_BUILDDIR)/pesign -PESIGN_DIR = $(PESIGN_BUILD_DIR)/pesign-$(PESIGN_VERSION) - -PESIGN_SRCPATCHDIR = $(PATCHDIR)/pesign -PESIGN_DOWNLOAD_STAMP = $(DOWNLOADDIR)/pesign-download -PESIGN_SOURCE_STAMP = $(USER_STAMPDIR)/pesign-source -PESIGN_PATCH_STAMP = $(USER_STAMPDIR)/pesign-patch -PESIGN_BUILD_STAMP = $(USER_STAMPDIR)/pesign-build -PESIGN_INSTALL_STAMP = $(STAMPDIR)/pesign-install -PESIGN_STAMP = $(PESIGN_SOURCE_STAMP) \ - $(PESIGN_PATCH_STAMP) \ - $(PESIGN_BUILD_STAMP) \ - $(PESIGN_INSTALL_STAMP) - -PESIGN_INSTALL_DIR = $(PESIGN_BUILD_DIR)/install -PESIGN_BIN_DIR = $(PESIGN_INSTALL_DIR)/usr/bin - -PHONY += pesign pesign-download pesign-source pesign-patch \ - pesign-build pesign-install pesign-clean pesign-download-clean - -pesign: $(PESIGN_STAMP) - -DOWNLOAD += $(PESIGN_DOWNLOAD_STAMP) -pesign-download: $(PESIGN_DOWNLOAD_STAMP) -$(PESIGN_DOWNLOAD_STAMP): $(PROJECT_STAMP) - $(Q) rm -f $@ && eval $(PROFILE_STAMP) - $(Q) echo "==== Getting upstream pesign ====" - $(Q) $(SCRIPTDIR)/fetch-package $(DOWNLOADDIR) $(UPSTREAMDIR) \ - $(PESIGN_TARBALL) $(PESIGN_TARBALL_URLS) - $(Q) touch $@ - -SOURCE += $(PESIGN_SOURCE_STAMP) -pesign-source: $(PESIGN_SOURCE_STAMP) -$(PESIGN_SOURCE_STAMP): $(USER_TREE_STAMP) $(PESIGN_DOWNLOAD_STAMP) - $(Q) rm -f $@ && eval $(PROFILE_STAMP) - $(Q) echo "==== Extracting upstream pesign ====" - $(Q) $(SCRIPTDIR)/extract-package $(PESIGN_BUILD_DIR) $(DOWNLOADDIR)/$(PESIGN_TARBALL) - $(Q) touch $@ - -pesign-patch: $(PESIGN_PATCH_STAMP) -$(PESIGN_PATCH_STAMP): $(PESIGN_SRCPATCHDIR)/* $(PESIGN_SOURCE_STAMP) - $(Q) rm -f $@ && eval $(PROFILE_STAMP) - $(Q) echo "==== Patching pesign ====" - $(Q) $(SCRIPTDIR)/apply-patch-series $(PESIGN_SRCPATCHDIR)/series $(PESIGN_DIR) - $(Q) touch $@ - -ifndef MAKE_CLEAN -PESIGN_NEW_FILES = $(shell test -d $(PESIGN_DIR) && test -f $(PESIGN_BUILD_STAMP) && \ - find -L $(PESIGN_DIR) -newer $(PESIGN_BUILD_STAMP) -type f -print -quit) -endif - -pesign-build: $(PESIGN_BUILD_STAMP) -$(PESIGN_BUILD_STAMP): $(PESIGN_PATCH_STAMP) $(PESIGN_NEW_FILES) | $(DEV_SYSROOT_INIT_STAMP) - $(Q) rm -f $@ && eval $(PROFILE_STAMP) - $(Q) echo "==== Building pesign-$(PESIGN_VERSION) ====" - $(Q) $(MAKE) -C $(PESIGN_DIR) all - $(Q) touch $@ - -pesign-install: $(PESIGN_INSTALL_STAMP) -$(PESIGN_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(PESIGN_BUILD_STAMP) - $(Q) rm -f $@ && eval $(PROFILE_STAMP) - $(Q) echo "==== Installing pesign in $(DEV_SYSROOT) ====" - $(Q) rm -rf $(PESIGN_INSTALL_DIR) - $(Q) $(MAKE) -C $(PESIGN_DIR) install DESTDIR=$(PESIGN_INSTALL_DIR) - $(Q) touch $@ - -USER_CLEAN += pesign-clean -pesign-clean: - $(Q) rm -rf $(PESIGN_BUILD_DIR) - $(Q) rm -f $(PESIGN_STAMP) - $(Q) echo "=== Finished making $@ for $(PLATFORM)" - -DOWNLOAD_CLEAN += pesign-download-clean -pesign-download-clean: - $(Q) rm -f $(PESIGN_DOWNLOAD_STAMP) $(DOWNLOADDIR)/$(PESIGN_TARBALL) diff --git a/build-config/make/popt.make b/build-config/make/popt.make index 59a41f416..80e3119bd 100644 --- a/build-config/make/popt.make +++ b/build-config/make/popt.make @@ -9,9 +9,11 @@ # This is a makefile fragment that defines the build of popt # -POPT_VERSION = 1.16 +POPT_VERSION = 1.19 POPT_TARBALL = popt-$(POPT_VERSION).tar.gz -POPT_TARBALL_URLS += $(ONIE_MIRROR) http://rpm5.org/files/popt/ +# popt's old home rpm5.org is defunct; it is maintained under +# rpm-software-management and released on ftp.rpm.org. +POPT_TARBALL_URLS += $(ONIE_MIRROR) http://ftp.rpm.org/popt/releases/popt-1.x POPT_BUILD_DIR = $(USER_BUILDDIR)/popt POPT_DIR = $(POPT_BUILD_DIR)/popt-$(POPT_VERSION) @@ -32,7 +34,7 @@ PHONY += popt popt-download popt-source popt-patch \ popt-configure popt-build popt-install popt-clean \ popt-download-clean -POPT_LIBS = libpopt.so libpopt.so.0 libpopt.so.0.0.0 +POPT_LIBS = libpopt.so libpopt.so.0 libpopt.so.0.0.2 popt: $(POPT_STAMP) diff --git a/build-config/make/shim.make b/build-config/make/shim.make index 0bcbf1d6a..cb380dcca 100644 --- a/build-config/make/shim.make +++ b/build-config/make/shim.make @@ -9,10 +9,10 @@ # This is a makefile fragment that defines the build of shim # -SHIM_VERSION = 15 +SHIM_VERSION = 16.1 SHIM_TARBALL = shim-$(SHIM_VERSION).tar.bz2 SHIM_TARBALL_URLS += $(ONIE_MIRROR) \ - https://github.com/rhinstaller/shim/releases/download/$(SHIM_VERSION) + https://github.com/rhboot/shim/releases/download/$(SHIM_VERSION) SHIM_BUILD_DIR = $(MBUILDDIR)/shim SHIM_DIR = $(SHIM_BUILD_DIR)/shim-$(SHIM_VERSION) @@ -100,22 +100,19 @@ SHIM_BUILD_ARGS = \ VENDOR_CERT_FILE=$(ONIE_VENDOR_CERT_DER) \ ARCH=$(ARCH) \ TOPDIR=$(SHIM_DIR) \ - LIB_PATH="$(DEV_SYSROOT)/usr/lib" \ - EFI_PATH="$(GNU_EFI_LIB_PATH)" \ - EFI_INCLUDE="$(GNU_EFI_INCLUDE)" + LIB_PATH="$(DEV_SYSROOT)/usr/lib" # Note that ONIE_VENDOR_CERT_DIR must reference the key to be # embedded in the shim shim-build: $(SHIM_BUILD_STAMP) -$(SHIM_BUILD_STAMP): $(SHIM_PATCH_STAMP) $(SHIM_NEW_FILES) $(GNU_EFI_INSTALL_STAMP) \ - $(PESIGN_INSTALL_STAMP) | $(DEV_SYSROOT_INIT_STAMP) +$(SHIM_BUILD_STAMP): $(SHIM_PATCH_STAMP) $(SHIM_NEW_FILES) | $(DEV_SYSROOT_INIT_STAMP) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Building shim-$(SHIM_VERSION) ====" $(Q) echo "Using ONIE vendor certificate: $(ONIE_VENDOR_CERT_DER)" $(Q) openssl x509 -in "$(ONIE_VENDOR_CERT_DER)" -inform der -text -noout - $(Q) PATH='$(CROSSBIN):$(PESIGN_BIN_DIR):$(PATH)' \ + $(Q) PATH='$(CROSSBIN):$(PATH)' \ $(MAKE) -C $(SHIM_DIR) $(SHIM_BUILD_ARGS) - $(Q) PATH='$(CROSSBIN):$(PESIGN_BIN_DIR):$(PATH)' \ + $(Q) PATH='$(CROSSBIN):$(PATH)' \ $(MAKE) -C $(SHIM_DIR) $(SHIM_BUILD_ARGS) \ DESTDIR="$(DEV_SYSROOT)" \ DATATARGETDIR="usr/share/shim" \ @@ -146,6 +143,9 @@ shim-self-sign: $(SHIM_SELF_SIGN_STAMP) $(SHIM_SELF_SIGN_STAMP): $(SHIM_BUILD_STAMP) | $(DEV_SYSROOT_INIT_STAMP) # Save copies of unsigned binaries as *.unsigned if signing with # different keys is required. + # shim-self-sign is invoked standalone (before "make all") to populate + # safe-place/, so the machine stamp dir may not exist yet. + $(Q) mkdir -p $(dir $@) $(Q) rm -f $@ && eval $(PROFILE_STAMP) $(Q) echo "==== Self signing shim-$(SHIM_VERSION) ====" $(Q) echo " This is for testing purposes only." diff --git a/build-config/make/tcpdump.make b/build-config/make/tcpdump.make index 166e77484..871d9686a 100644 --- a/build-config/make/tcpdump.make +++ b/build-config/make/tcpdump.make @@ -12,7 +12,7 @@ include make/libpcap.make include make/openssl.make -TCPDUMP_VERSION = 4.99.4 +TCPDUMP_VERSION = 4.99.6 TCPDUMP_TARBALL = tcpdump-$(TCPDUMP_VERSION).tar.gz TCPDUMP_TARBALL_URLS += $(ONIE_MIRROR) \ https://www.tcpdump.org/release diff --git a/build-config/make/xtools.make b/build-config/make/xtools.make index a4fbad85a..b211b4c69 100644 --- a/build-config/make/xtools.make +++ b/build-config/make/xtools.make @@ -20,9 +20,9 @@ # CT_DEBUG_CT_SAVE_STEPS_GZIP=y # -XTOOLS_CONFIG ?= conf/crosstool/gcc-$(GCC_VERSION)/$(XTOOLS_LIBC)-$(XTOOLS_LIBC_VERSION)/crosstool.$(ONIE_ARCH).config +XTOOLS_CONFIG ?= conf/crosstool/gcc-$(GCC_VERSION)/$(XTOOLS_LIBC)-$(XTOOLS_LIBC_VERSION)/crosstool.$(ONIE_ARCH).defconfig XTOOLS_ROOT = $(BUILDDIR)/x-tools -XTOOLS_VERSION = $(ONIE_ARCH)-g$(GCC_VERSION)-lnx$(LINUX_RELEASE)-$(XTOOLS_LIBC)-$(XTOOLS_LIBC_VERSION) +XTOOLS_VERSION = $(ONIE_ARCH)-g$(GCC_VERSION)-lnx$(XTOOLS_LINUX_VERSION)-$(XTOOLS_LIBC)-$(XTOOLS_LIBC_VERSION) XTOOLS_DIR = $(XTOOLS_ROOT)/$(XTOOLS_VERSION) XTOOLS_BUILD_DIR = $(XTOOLS_DIR)/build XTOOLS_INSTALL_DIR = $(XTOOLS_DIR)/install @@ -56,40 +56,10 @@ CT_NG_COMPONENTS = \ make-4.2.1.tar.bz2 \ ncurses-6.0.tar.gz -ifeq ($(GCC_VERSION),8.3.0) -CT_NG_COMPONENTS += \ - binutils-2.32.tar.bz2 \ - expat-2.2.6.tar.bz2 \ - gcc-8.3.0.tar.xz \ - gdb-7.12.1.tar.xz \ - gmp-6.1.2.tar.xz \ - isl-0.20.tar.xz \ - mpc-1.1.0.tar.gz \ - mpfr-4.1.0.tar.xz \ - strace-4.26.tar.xz \ - zlib-1.2.11.tar.xz -else ifeq ($(GCC_VERSION),6.3.0) -CT_NG_COMPONENTS += \ - gcc-6.3.0.tar.bz2 \ - binutils-2.28.tar.bz2 \ - gdb-7.12.1.tar.xz \ - gmp-6.1.2.tar.xz \ - mpfr-3.1.5.tar.xz \ - isl-0.16.1.tar.xz \ - mpc-1.0.3.tar.gz \ - expat-2.2.0.tar.bz2 \ - strace-4.16.tar.xz -else ifeq ($(GCC_VERSION),4.9.2) -CT_NG_COMPONENTS += \ - gcc-4.9.2.tar.bz2 \ - binutils-2.24.tar.bz2 \ - gdb-7.11.1.tar.xz \ - gmp-6.0.0a.tar.xz \ - mpfr-3.1.2.tar.xz \ - isl-0.12.2.tar.bz2 \ - mpc-1.0.2.tar.gz \ - expat-2.1.1.tar.bz2 \ - strace-4.9.tar.xz +ifeq ($(GCC_VERSION),14.3.0) +# crosstool-NG 1.28.0 fetches the GCC 14.3.0 toolchain component set itself +# (the generated crosstool config enables downloads) using its own pinned +# per-component checksums, so no component tarballs are pre-fetched here. else $(error CT_NG_COMPONENTS download: Unsupported GCC version: $(GCC_VERSION)) endif @@ -122,12 +92,12 @@ $(XTOOLS_DOWNLOAD_STAMP): $(XTOOLS_PREP_STAMP) | $(KERNEL_DOWNLOAD_STAMP) $(UCLI # # Set CT_LINUX_VERSION and CT_LINUX_V_a_b=y in the new uClibc config. # -CT_LINUX_V = $(subst .,_,$(LINUX_VERSION)) -$(XTOOLS_BUILD_DIR)/.config: $(XTOOLS_CONFIG) $(XTOOLS_PREP_STAMP) - $(Q) echo "==== Copying $(XTOOLS_CONFIG) to $@ ====" - $(Q) cp -v $< $(XTOOLS_BUILD_DIR)/.config - $(Q) echo "==== Setting kernel version to $(LINUX_VERSION).$(LINUX_MINOR_VERSION) in .config ====" - $(Q) sed -i 's/CT_LINUX_VERSION=.*"/CT_LINUX_VERSION="$(LINUX_VERSION).$(LINUX_MINOR_VERSION)"/g' $(XTOOLS_BUILD_DIR)/.config +CT_LINUX_V = $(subst .,_,$(XTOOLS_LINUX_VERSION)) +$(XTOOLS_BUILD_DIR)/.config: $(XTOOLS_CONFIG) $(XTOOLS_PREP_STAMP) $(CROSSTOOL_NG_BUILD_STAMP) + $(Q) echo "==== Expanding $(XTOOLS_CONFIG) into $@ via ct-ng defconfig ====" + $(Q) cd $(XTOOLS_BUILD_DIR) && DEFCONFIG=$(abspath $(XTOOLS_CONFIG)) $(CROSSTOOL_NG_DIR)/ct-ng defconfig + $(Q) echo "==== Setting toolchain kernel-headers version to $(XTOOLS_LINUX_VERSION) in .config ====" + $(Q) sed -i 's/CT_LINUX_VERSION=.*"/CT_LINUX_VERSION="$(XTOOLS_LINUX_VERSION)"/g' $(XTOOLS_BUILD_DIR)/.config $(Q) sed -i 's/CT_LINUX_V_$(CT_LINUX_V) is not set/CT_LINUX_V_$(CT_LINUX_V)=y/g' $(XTOOLS_BUILD_DIR)/.config xtools-config: $(XTOOLS_BUILD_DIR)/.config $(CROSSTOOL_NG_BUILD_STAMP) diff --git a/build-config/make/zlib.make b/build-config/make/zlib.make index ffc187797..f1db1e6af 100644 --- a/build-config/make/zlib.make +++ b/build-config/make/zlib.make @@ -9,10 +9,11 @@ # This is a makefile fragment that defines the build of zlib # -ZLIB_VERSION = 1.2.11 +ZLIB_VERSION = 1.3.2 ZLIB_TARBALL = zlib-$(ZLIB_VERSION).tar.xz -ZLIB_TARBALL_URLS += $(ONIE_MIRROR) http://zlib.net \ - http://softlayer-dal.dl.sourceforge.net/project/libpng/zlib/$(ZLIB_VERSION) +ZLIB_TARBALL_URLS += $(ONIE_MIRROR) \ + https://github.com/madler/zlib/releases/download/v$(ZLIB_VERSION) \ + https://zlib.net ZLIB_BUILD_DIR = $(USER_BUILDDIR)/zlib ZLIB_DIR = $(ZLIB_BUILD_DIR)/zlib-$(ZLIB_VERSION) diff --git a/build-config/recovery/xorriso-options-bios.cfg b/build-config/recovery/xorriso-options-bios.cfg index 75118e251..7270a363a 100644 --- a/build-config/recovery/xorriso-options-bios.cfg +++ b/build-config/recovery/xorriso-options-bios.cfg @@ -29,6 +29,12 @@ boot_image any boot_info_table=on boot_image any next # BIOS GRUB hard disk image +# +# Declare an APM/MBR partition table so newer xorriso (libisofs 1.5.6+, as +# on the Debian 13 build host) does not mis-read the embedded GRUB boot +# block 0x55AA signature as a partition table and abort. Harmless on +# older xorriso. +boot_image any partition_table=on boot_image any system_area=embedded.img # Boot catalog file diff --git a/build-config/scripts/mk-grub-efi-image b/build-config/scripts/mk-grub-efi-image index 6a6450996..d67c05eb0 100755 --- a/build-config/scripts/mk-grub-efi-image +++ b/build-config/scripts/mk-grub-efi-image @@ -66,7 +66,6 @@ GRUB_MODULES=" loadenv loopback linux - linuxefi lsefi lsefimmap lsefisystab @@ -114,7 +113,6 @@ GRUB_ENCRYPTION_MODULES=" fshelp crypto bufio archelp - is_sb_enabled " @@ -189,11 +187,31 @@ EOF fi +# SBAT (Secure Boot Advanced Targeting) metadata. +# +# shim >= 15 enforces SBAT: before chainloading this GRUB image it reads the +# image's .sbat section and rejects it unless every component's generation +# (the integer 2nd field) meets the policy in the firmware's SbatLevel +# variable -- otherwise the boot fails with "Verification failed: (0x1A) +# Security Violation" before the GRUB menu ever appears. GRUB built without +# an .sbat section is rejected outright. grub-mkimage embeds the section when +# given --sbat. ONIE's shim (16.1) enforces a baseline of grub generation 4, +# so declare a grub generation that meets it. The "version" fields are +# informational; only the generation integers are compared by shim. +grub_version="$("$grub_mkimage" --version 2>/dev/null | awk '{print $NF}')" +sbat_csv="$(mktemp)" +cat < "$sbat_csv" +sbat,1,SBAT Version,sbat,1,https://github.com/rhboot/shim/blob/main/SBAT.md +grub,4,Free Software Foundation,grub,${grub_version},https://www.gnu.org/software/grub/ +grub.onie,1,Open Compute Project,grub,${grub_version},https://github.com/opencomputeproject/onie +EOF + "$grub_mkimage" --format="${ARCH}-efi" \ --directory="$GRUB_TARGET_LIB_UEFI_DIR" \ --prefix="/bogus" \ --config="$tmp_config" ${GPG_PUB_KEY} \ + --sbat="$sbat_csv" \ --output="$OUTPUT_IMAGE" \ $GRUB_MODULES -rm -f $tmp_config +rm -f $tmp_config $sbat_csv diff --git a/build-config/scripts/onie-mk-iso.sh b/build-config/scripts/onie-mk-iso.sh index be641c42d..6d8b1a719 100755 --- a/build-config/scripts/onie-mk-iso.sh +++ b/build-config/scripts/onie-mk-iso.sh @@ -287,19 +287,32 @@ if [ "$UEFI_ENABLE" = "yes" ] ; then zfscrypt zfsinfo " - # linuxefi is an x86 specific - if [ ${ARCH} != "arm64" ]; then - GRUB_MODULES=$GRUB_MODULES" linuxefi" - fi + # grub 2.12+ unified linuxefi into the standard linux/initrd commands; + # the linuxefi module no longer exists. # Generate UEFI format GRUB image mkdir -p $RECOVERY_EFI_BOOT_DIR + # SBAT metadata: shim (>= 15) enforces SBAT and refuses to chainload a GRUB + # image lacking a .sbat section (or below the firmware's SbatLevel policy), + # failing with "Verification failed: (0x1A) Security Violation" before the + # menu appears. grub-mkimage embeds the section when given --sbat. ONIE's + # shim (16.1) enforces grub generation 4; only the generation integers are + # compared by shim -- the version strings are informational. + grub_version="$($GRUB_HOST_BIN_UEFI_DIR/grub-mkimage --version 2>/dev/null | awk '{print $NF}')" + sbat_csv="$(mktemp)" + cat < "$sbat_csv" +sbat,1,SBAT Version,sbat,1,https://github.com/rhboot/shim/blob/main/SBAT.md +grub,4,Free Software Foundation,grub,${grub_version},https://www.gnu.org/software/grub/ +grub.onie,1,Open Compute Project,grub,${grub_version},https://github.com/opencomputeproject/onie +EOF $GRUB_HOST_BIN_UEFI_DIR/grub-mkimage \ --format=${ARCH}-efi \ --directory=$GRUB_TARGET_LIB_UEFI_DIR \ --prefix=/boot/grub \ --config=$RECOVERY_CONF_DIR/grub-uefi.cfg \ + --sbat="$sbat_csv" \ --output=$RECOVERY_GRUBX86_IMG \ $GRUB_MODULES + rm -f "$sbat_csv" # For UEFI, the GRUB loader image is embedded inside a UEFI ESP # (fat16) disk partition image. Create that here and copy the diff --git a/emulation/ci-oce-test.sh b/emulation/ci-oce-test.sh new file mode 100755 index 000000000..50397d402 --- /dev/null +++ b/emulation/ci-oce-test.sh @@ -0,0 +1,240 @@ +#!/bin/bash + +# Copyright (C) 2026 Brad House +# +# SPDX-License-Identifier: GPL-2.0 + +# +# OCE (ONIE Compliance Environment) CI harness. +# +# Drives ONIE's own contrib/oce/test-onie.py compliance suite against the +# kvm_x86_64 image, headless under QEMU. Where install-test hands ONIE the +# installer URL directly (install_url=), this exercises the REAL OCP discovery +# paths: for each selected OCE test, OCE generates the matching server set +# (isc-dhcp-server with the ONIE VIVSO option, nginx, tftpd-hpa, dnsmasq) and +# ONIE must discover + fetch the installer itself. USB tests instead attach a +# USB mass-storage image carrying the installer. +# +# Each test runs a FULL install: ONIE discovers via the method, fetches the +# installer, and installs it -- the harness asserts "ONIE: NOS install +# successful". To avoid re-embedding per test, ONIE is embedded onto a base +# disk ONCE up front; each test gets a fresh copy-on-write qcow2 overlay of that +# base (instant reset) as its install target. +# +# Tests run CHAINED (one VM at a time), ordered fast->slow, and the run STOPS on +# the first failure (fail-fast). Each test is capped by a timeout so a method +# that never installs fails in bounded time instead of looping ONIE's +# retry/sleep waterfall forever. +# +# Usage: ci-oce-test.sh [scope] +# scope: "default" (broad per-method installer+updater set, the per-PR sweep), +# "full" (every feasible test 3-121), or an explicit space/comma list +# of test numbers. Default: "default". +# Env: OCE_DIR= OCE_PYTHON= +# SERIAL_PREFIX= WORKDIR= TAP= +# PER_TEST_TIMEOUT= +# +# Requires (install in the workflow): qemu-system-x86_64, qemu-utils, dosfstools, +# isc-dhcp-server, nginx, tftpd-hpa, dnsmasq, and python3 with +# jinja2/netifaces/psutil. Needs sudo. ONIE is serial end-to-end -> no OCR. + +set -uo pipefail + +VMLINUZ="${1:?usage: ci-oce-test.sh [scope]}" +INITRD="${2:?need initrd}" +INSTALLER="${3:?need demo-installer.bin}" +UPDATER="${4:?need onie-updater}" +SCOPE="${5:-default}" +for f in "$VMLINUZ" "$INITRD" "$INSTALLER" "$UPDATER"; do + [ -r "$f" ] || { echo "ERROR: not readable: $f" >&2; exit 2; } +done +VMLINUZ="$(realpath "$VMLINUZ")"; INITRD="$(realpath "$INITRD")" +INSTALLER="$(realpath "$INSTALLER")"; UPDATER="$(realpath "$UPDATER")" + +OCE_DIR="${OCE_DIR:-$(cd "$(dirname "$0")/../contrib/oce" 2>/dev/null && pwd)}" +OCE_PYTHON="${OCE_PYTHON:-python3}" +[ -r "$OCE_DIR/test-onie.py" ] || { echo "ERROR: OCE not found at OCE_DIR=$OCE_DIR" >&2; exit 2; } + +WORKDIR="${WORKDIR:-$(mktemp -d)}"; mkdir -p "$WORKDIR" +SERIAL_PREFIX="${SERIAL_PREFIX:-$WORKDIR/oce}"; mkdir -p "$(dirname "$SERIAL_PREFIX")" +TAP="${TAP:-onie-oce0}" +HOST_V4="192.168.1.1"; DUT_V4="192.168.1.100"; CIDR="24"; DUT_MAC="52:54:00:0c:e0:01" +PER_TEST_TIMEOUT="${PER_TEST_TIMEOUT:-180}" +EMBED_PORT=8920 +ACCEL="accel=kvm:tcg"; CONSOLE="console=tty0 console=ttyS0,115200n8" +BASE_DISK="$WORKDIR/onie-base.qcow2" + +# ---- test sets (ordered fast->slow: USB/DHCP-direct, then DHCP+server, then no-DHCP/fallback) ---- +DEFAULT_TESTS="3 9 10 69 70 11 12 13 14 20 26 32 71 72 73 74 80 86 92 44 50 56 104 110 116" +FULL_TESTS="$(seq 3 121)" +case "$SCOPE" in + default) TESTS="$DEFAULT_TESTS" ;; + full) TESTS="$FULL_TESTS" ;; + *) TESTS="$(echo "$SCOPE" | tr ',' ' ')" ;; +esac + +echo "== ONIE OCE compliance sweep (full install) ==" +echo " scope : $SCOPE ($(echo $TESTS | wc -w) tests)" +echo " tap iface : $TAP ($HOST_V4/$CIDR, DUT $DUT_V4 mac $DUT_MAC)" +echo " accel : kvm:tcg ($([ -w /dev/kvm ] && echo KVM || echo TCG))" +echo " per-test : ${PER_TEST_TIMEOUT}s cap" + +stop_services() { + sudo pkill -f "dhcpd.leases.oce" 2>/dev/null + sudo pkill -f "nginx.*$WORKDIR" 2>/dev/null + sudo pkill -x in.tftpd 2>/dev/null + sudo pkill -f "dnsmasq.*$WORKDIR" 2>/dev/null + true +} +cleanup() { + stop_services + sudo ip link del "$TAP" 2>/dev/null + [ -n "${KEEP:-}" ] || rm -rf "$WORKDIR" +} +trap cleanup EXIT + +# ---- poll a serial log until a marker (regex) or panic or timeout; kill QEMU; echo elapsed ---- +wait_marker() { # + local log="$1" ok_re="$2" tmo="$3" qpid=$! t=0 + while kill -0 "$qpid" 2>/dev/null; do + grep -Eaq "$ok_re" "$log" && break + grep -aq 'Kernel panic' "$log" && break + [ "$t" -ge "$tmo" ] && break + sleep 1; t=$((t + 1)) + done + kill "$qpid" 2>/dev/null; sleep 1; kill -9 "$qpid" 2>/dev/null; wait "$qpid" 2>/dev/null + echo "$t" +} + +# ---- one-time setup: stop conflicting services, set up the tap ---- +echo "== setup ==" +sudo systemctl stop nginx isc-dhcp-server dnsmasq tftpd-hpa 2>/dev/null +sudo pkill -x nginx 2>/dev/null; sudo pkill -x dnsmasq 2>/dev/null; sudo pkill -x dhcpd 2>/dev/null +sudo ip link del "$TAP" 2>/dev/null +sudo ip tuntap add dev "$TAP" mode tap user "$(id -un)" +sudo ip addr add "$HOST_V4/$CIDR" dev "$TAP" +sudo ip -6 addr add fd00:ce::1/64 dev "$TAP" 2>/dev/null +sudo ip link set "$TAP" up + +# ---- embed ONIE onto the base disk ONCE (reused via overlays); via SLIRP + a temp HTTP updater ---- +echo "== embed ONIE onto base disk (one-time) ==" +qemu-img create -f qcow2 "$BASE_DISK" 4G >/dev/null 2>&1 +python3 -m http.server "$EMBED_PORT" --directory "$(dirname "$UPDATER")" >"$WORKDIR/embed-http.log" 2>&1 & +EHP=$!; sleep 1 +: > "$WORKDIR/embed.log" +qemu-system-x86_64 \ + -machine pc,${ACCEL} -m 2048 -smp 2 \ + -kernel "$VMLINUZ" -initrd "$INITRD" \ + -append "quiet ${CONSOLE} boot_env=recovery boot_reason=embed install_url=http://10.0.2.2:${EMBED_PORT}/$(basename "$UPDATER")" \ + -drive file="$BASE_DISK",if=virtio,format=qcow2 \ + -netdev user,id=n0 -device virtio-net,netdev=n0 \ + -display none -serial "file:$WORKDIR/embed.log" -no-reboot >/dev/null 2>&1 & +esecs="$(wait_marker "$WORKDIR/embed.log" 'ONIE: NOS install successful|ONIE: Rebooting' 240)" +kill "$EHP" 2>/dev/null +if ! grep -aqE 'ONIE: NOS install successful|ONIE: Rebooting|Installing ONIE on' "$WORKDIR/embed.log"; then + echo "ERROR: embed failed (${esecs}s) -- cannot run install tests" + sed 's/\x1b\[[0-9;?]*[A-Za-z]//g; s/\r/\n/g' "$WORKDIR/embed.log" | grep -avE '^\s*$' | tail -20 + exit 1 +fi +echo " embedded in ${esecs}s -> $BASE_DISK (cached; tests overlay this)" + +# ---- build a vfat USB image carrying the installer under ONIE's default names ---- +build_usb_image() { # + local img="$1" + # The vfat must hold the installer under all 4 names below; size it to fit + # (installer size x4) plus slack for FAT overhead, so a >16MB installer does + # not overflow a fixed 64MB image partway through the copies. + local mb=$(( ($(stat -c%s "$INSTALLER") / 1048576 + 1) * 4 + 32 )) + qemu-img create -f raw "$img" "${mb}M" >/dev/null 2>&1 + mkfs.vfat -n ONIE-USB "$img" >/dev/null 2>&1 + local mnt; mnt="$(mktemp -d)" + sudo mount -o loop "$img" "$mnt" + for n in onie-installer-x86_64-kvm_x86_64-r0 onie-installer-kvm_x86_64 \ + onie-installer-x86_64 onie-installer; do + sudo cp "$INSTALLER" "$mnt/$n" + done + sudo sync; sudo umount "$mnt"; rmdir "$mnt" +} + +# ---- run one OCE test (full install); return 0 on "NOS install successful" ---- +run_one() { # + local t="$1" + local tdir="$WORKDIR/oce-out/test-$t" + local log="${SERIAL_PREFIX}-test${t}.log" + local disk="$WORKDIR/target-$t.qcow2" + rm -rf "$tdir"; : > "$log" + stop_services; sleep 1 + + # installer tests = 3-61, updater tests = 63-121 (onie-tests.json). An + # updater is discovered/run only under boot_reason=update and reports a + # different success line than an installer. + local reason ok_re + if [ "$t" -ge 62 ]; then reason=update; ok_re='ONIE: Success: Firmware update|Firmware update install successful' + else reason=install; ok_re='ONIE: NOS install successful'; fi + + # fresh CoW overlay of the embedded base = this test's install target (instant reset) + qemu-img create -f qcow2 -b "$BASE_DISK" -F qcow2 "$disk" >/dev/null 2>&1 + + ( cd "$OCE_DIR" && "$OCE_PYTHON" test-onie.py -D \ + -I "$TAP" -m "$DUT_MAC" -i "$DUT_V4/$CIDR" -t "$t" \ + -o onie_installer "$INSTALLER" onie_updater "$UPDATER" \ + onie_arch x86_64 onie_vendor kvm onie_machine x86_64 onie_machine_rev 0 \ + onie_switch_asic qemu \ + -O "$WORKDIR/oce-out" ) >"$WORKDIR/oce-gen-$t.log" 2>&1 + + chmod -R o+rX "$WORKDIR" 2>/dev/null # nginx/tftpd/dnsmasq workers run as nobody/tftp + + local is_usb=no; local -a qemu_src + if [ -f "$tdir/dhcpd.conf" ] || [ -f "$tdir/nginx.conf" ] || [ -f "$tdir/tftp.sh" ] || [ -f "$tdir/dnsmasq.conf" ]; then + if [ -f "$tdir/dhcpd.conf" ]; then # dhcpd is AppArmor-confined -> use allowed paths + sudo cp "$tdir/dhcpd.conf" /etc/dhcp/oce-ci.conf + sudo sh -c ': > /var/lib/dhcp/dhcpd.leases.oce' + sudo dhcpd -f --no-pid -cf /etc/dhcp/oce-ci.conf -lf /var/lib/dhcp/dhcpd.leases.oce "$TAP" \ + >"$WORKDIR/dhcpd-$t.out" 2>&1 & + fi + [ -f "$tdir/nginx.conf" ] && sudo nginx -c "$tdir/nginx.conf" >"$WORKDIR/nginx-$t.out" 2>&1 & + [ -f "$tdir/tftp.sh" ] && ( cd "$tdir" && sudo bash tftp.sh >"$WORKDIR/tftp-$t.out" 2>&1 & ) + [ -f "$tdir/dnsmasq.conf" ] && sudo dnsmasq -k -C "$tdir/dnsmasq.conf" >"$WORKDIR/dnsmasq-$t.out" 2>&1 & + sleep 3 + qemu_src=(-netdev tap,id=n0,ifname="$TAP",script=no,downscript=no + -device virtio-net,netdev=n0,mac="$DUT_MAC") + else + is_usb=yes + build_usb_image "$WORKDIR/usb-$t.img" + qemu_src=(-device qemu-xhci -device usb-storage,drive=ud + -drive id=ud,if=none,format=raw,file="$WORKDIR/usb-$t.img" + -netdev user,id=n0 -device virtio-net,netdev=n0) + fi + + qemu-system-x86_64 \ + -machine pc,${ACCEL} -m 2048 -smp 2 \ + -kernel "$VMLINUZ" -initrd "$INITRD" \ + -append "quiet ${CONSOLE} boot_env=recovery boot_reason=${reason}" \ + -drive file="$disk",if=virtio,format=qcow2 \ + "${qemu_src[@]}" \ + -display none -serial "file:$log" -no-reboot >/dev/null 2>&1 & + local secs; secs="$(wait_marker "$log" "$ok_re" "$PER_TEST_TIMEOUT")" + stop_services + rm -f "$disk" + + local kind; kind="$([ "$is_usb" = yes ] && echo USB || echo net)" + if grep -Eaq "$ok_re" "$log"; then + printf ' PASS test %-3s [%s/%s] %ss ok\n' "$t" "$kind" "$reason" "$secs" + return 0 + fi + printf ' FAIL test %-3s [%s/%s] %ss did NOT reach "%s"\n' "$t" "$kind" "$reason" "$secs" "$ok_re" + echo "---- serial tail (test $t) ----" + sed 's/\x1b\[[0-9;?]*[A-Za-z]//g; s/\x1b[=>]//g; s/\r/\n/g' "$log" 2>/dev/null | grep -avE '^\s*$' | tail -25 + return 1 +} + +# ---- chained, fail-fast ---- +echo "== running '$SCOPE' sweep ($(echo $TESTS | wc -w) tests), full install, fail-fast ==" +pass=0 +for t in $TESTS; do + if run_one "$t"; then pass=$((pass + 1)); else + echo "RESULT: FAIL (OCE sweep stopped at test $t; $pass passed before it)"; exit 1 + fi +done +echo "RESULT: PASS (OCE sweep: all $pass tests installed via discovery)" +exit 0 diff --git a/machine/accton/accton_833435_b21/machine.make b/machine/accton/accton_833435_b21/machine.make index d2fec61eb..f02f156a3 100644 --- a/machine/accton/accton_833435_b21/machine.make +++ b/machine/accton/accton_833435_b21/machine.make @@ -34,7 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as4222_28pe/machine.make b/machine/accton/accton_as4222_28pe/machine.make index 6b1f01419..bdb6df2c3 100644 --- a/machine/accton/accton_as4222_28pe/machine.make +++ b/machine/accton/accton_as4222_28pe/machine.make @@ -37,7 +37,6 @@ PXE_EFI64_ENABLE = yes LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as4510_52t/machine.make b/machine/accton/accton_as4510_52t/machine.make index 410f1383a..1baddf742 100644 --- a/machine/accton/accton_as4510_52t/machine.make +++ b/machine/accton/accton_as4510_52t/machine.make @@ -29,8 +29,6 @@ VENDOR_ID = 259 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Set the desired U-Boot version UBOOT_VERSION = 2012.10 diff --git a/machine/accton/accton_as4600_54t/machine.make b/machine/accton/accton_as4600_54t/machine.make index ef6225a9c..7b1b533e0 100644 --- a/machine/accton/accton_as4600_54t/machine.make +++ b/machine/accton/accton_as4600_54t/machine.make @@ -33,8 +33,6 @@ VENDOR_ID = 259 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/accton/accton_as4610_30/machine.make b/machine/accton/accton_as4610_30/machine.make index 19ed22cd4..cf6bc9a53 100644 --- a/machine/accton/accton_as4610_30/machine.make +++ b/machine/accton/accton_as4610_30/machine.make @@ -29,8 +29,6 @@ VENDOR_ID = 259 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 KERNEL_LOAD_ADDRESS = 0x61008000 KERNEL_ENTRY_POINT = 0x61008000 diff --git a/machine/accton/accton_as4610_54/machine.make b/machine/accton/accton_as4610_54/machine.make index cd54ae12a..4ccdc03be 100644 --- a/machine/accton/accton_as4610_54/machine.make +++ b/machine/accton/accton_as4610_54/machine.make @@ -29,8 +29,6 @@ VENDOR_ID = 259 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 KERNEL_LOAD_ADDRESS = 0x61008000 KERNEL_ENTRY_POINT = 0x61008000 diff --git a/machine/accton/accton_as4620_54pe/machine.make b/machine/accton/accton_as4620_54pe/machine.make index 7c5bf8722..754279e84 100644 --- a/machine/accton/accton_as4620_54pe/machine.make +++ b/machine/accton/accton_as4620_54pe/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as4625/machine.make b/machine/accton/accton_as4625/machine.make index e49000110..4eab06a7d 100644 --- a/machine/accton/accton_as4625/machine.make +++ b/machine/accton/accton_as4625/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as4630/machine.make b/machine/accton/accton_as4630/machine.make index 4294ae97d..e695d7a87 100644 --- a/machine/accton/accton_as4630/machine.make +++ b/machine/accton/accton_as4630/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5512_54x/machine.make b/machine/accton/accton_as5512_54x/machine.make index 347e7ec0b..1a565df9a 100644 --- a/machine/accton/accton_as5512_54x/machine.make +++ b/machine/accton/accton_as5512_54x/machine.make @@ -34,7 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5600_52x/machine.make b/machine/accton/accton_as5600_52x/machine.make index e257ae5a6..bf6774b55 100644 --- a/machine/accton/accton_as5600_52x/machine.make +++ b/machine/accton/accton_as5600_52x/machine.make @@ -38,8 +38,6 @@ VENDOR_ID = 259 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/accton/accton_as5610_52x/machine.make b/machine/accton/accton_as5610_52x/machine.make index eb2c7d11c..c57daf9e0 100644 --- a/machine/accton/accton_as5610_52x/machine.make +++ b/machine/accton/accton_as5610_52x/machine.make @@ -38,8 +38,6 @@ VENDOR_ID = 259 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/accton/accton_as5700_96x/machine.make b/machine/accton/accton_as5700_96x/machine.make index bae8b3727..579032869 100644 --- a/machine/accton/accton_as5700_96x/machine.make +++ b/machine/accton/accton_as5700_96x/machine.make @@ -27,8 +27,6 @@ LINUX_TARBALL_URLS = http://git.freescale.com/git/cgit.cgi/ppc/sdk/linux.git/sna LINUX_RELEASE = fsl-sdk-v1.5 LINUX_TARBALL = linux-$(LINUX_RELEASE).tar.bz2 -# Older GCC required for older fsl-sdk-v1.5 kernel -GCC_VERSION = 4.9.2 UBOOT_MACHINE = AS5700_96X KERNEL_DTB = as5700_96x.dtb diff --git a/machine/accton/accton_as5710_54x/machine.make b/machine/accton/accton_as5710_54x/machine.make index bc967e033..99897f137 100644 --- a/machine/accton/accton_as5710_54x/machine.make +++ b/machine/accton/accton_as5710_54x/machine.make @@ -27,8 +27,6 @@ LINUX_TARBALL_URLS = http://git.freescale.com/git/cgit.cgi/ppc/sdk/linux.git/sna LINUX_RELEASE = fsl-sdk-v1.5 LINUX_TARBALL = linux-$(LINUX_RELEASE).tar.bz2 -# Older GCC required for older fsl-sdk-v1.5 kernel -GCC_VERSION = 4.9.2 UBOOT_MACHINE = AS5710_54X KERNEL_DTB = as5710_54x.dtb diff --git a/machine/accton/accton_as5712_54x/machine.make b/machine/accton/accton_as5712_54x/machine.make index b3fadefc5..6270639eb 100644 --- a/machine/accton/accton_as5712_54x/machine.make +++ b/machine/accton/accton_as5712_54x/machine.make @@ -34,7 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5812_54t/machine.make b/machine/accton/accton_as5812_54t/machine.make index 664a766e5..9f3b4a2c1 100644 --- a/machine/accton/accton_as5812_54t/machine.make +++ b/machine/accton/accton_as5812_54t/machine.make @@ -34,7 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5812_54x/machine.make b/machine/accton/accton_as5812_54x/machine.make index 6313d5f28..ffdd09b0e 100644 --- a/machine/accton/accton_as5812_54x/machine.make +++ b/machine/accton/accton_as5812_54x/machine.make @@ -34,7 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5816_54x_td2/machine.make b/machine/accton/accton_as5816_54x_td2/machine.make index 5f63005ca..0faadb8eb 100644 --- a/machine/accton/accton_as5816_54x_td2/machine.make +++ b/machine/accton/accton_as5816_54x_td2/machine.make @@ -30,7 +30,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5822_54x/machine.make b/machine/accton/accton_as5822_54x/machine.make index 8739ca4fb..50b6f2fe2 100644 --- a/machine/accton/accton_as5822_54x/machine.make +++ b/machine/accton/accton_as5822_54x/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5835_54/machine.make b/machine/accton/accton_as5835_54/machine.make index 5bb3accd7..e6a3b5e10 100644 --- a/machine/accton/accton_as5835_54/machine.make +++ b/machine/accton/accton_as5835_54/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5912_42x/machine.make b/machine/accton/accton_as5912_42x/machine.make index 1f07adcf2..b579cd9be 100644 --- a/machine/accton/accton_as5912_42x/machine.make +++ b/machine/accton/accton_as5912_42x/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5912_54x/machine.make b/machine/accton/accton_as5912_54x/machine.make index 9ffb7a113..618a600b8 100644 --- a/machine/accton/accton_as5912_54x/machine.make +++ b/machine/accton/accton_as5912_54x/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5912_54xk/machine.make b/machine/accton/accton_as5912_54xk/machine.make index 3a75c779f..c5a7a5a2c 100644 --- a/machine/accton/accton_as5912_54xk/machine.make +++ b/machine/accton/accton_as5912_54xk/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5915_16x/machine.make b/machine/accton/accton_as5915_16x/machine.make index 94060f833..90e8ed7c3 100644 --- a/machine/accton/accton_as5915_16x/machine.make +++ b/machine/accton/accton_as5915_16x/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5915_18x/machine.make b/machine/accton/accton_as5915_18x/machine.make index 2875c1ac8..d9bf9812f 100644 --- a/machine/accton/accton_as5915_18x/machine.make +++ b/machine/accton/accton_as5915_18x/machine.make @@ -37,7 +37,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5916_26xb/machine.make b/machine/accton/accton_as5916_26xb/machine.make index 5b0905cfc..d77d64dbb 100644 --- a/machine/accton/accton_as5916_26xb/machine.make +++ b/machine/accton/accton_as5916_26xb/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5916_54x/machine.make b/machine/accton/accton_as5916_54x/machine.make index 64f7a6535..1ea144909 100644 --- a/machine/accton/accton_as5916_54x/machine.make +++ b/machine/accton/accton_as5916_54x/machine.make @@ -39,7 +39,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5916_54xk/machine.make b/machine/accton/accton_as5916_54xk/machine.make index d87d3a526..5af9388ef 100644 --- a/machine/accton/accton_as5916_54xk/machine.make +++ b/machine/accton/accton_as5916_54xk/machine.make @@ -37,7 +37,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5916_54xks/machine.make b/machine/accton/accton_as5916_54xks/machine.make index d644c8c9f..310378b1b 100644 --- a/machine/accton/accton_as5916_54xks/machine.make +++ b/machine/accton/accton_as5916_54xks/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5916_54xl/machine.make b/machine/accton/accton_as5916_54xl/machine.make index 77b4355b7..2489b3791 100644 --- a/machine/accton/accton_as5916_54xl/machine.make +++ b/machine/accton/accton_as5916_54xl/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5916_54xm/machine.make b/machine/accton/accton_as5916_54xm/machine.make index 85a494d3d..d89c393c3 100644 --- a/machine/accton/accton_as5916_54xm/machine.make +++ b/machine/accton/accton_as5916_54xm/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as5916_54xmk/machine.make b/machine/accton/accton_as5916_54xmk/machine.make index f483af05e..bbb2768cd 100644 --- a/machine/accton/accton_as5916_54xmk/machine.make +++ b/machine/accton/accton_as5916_54xmk/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as6700_32x/machine.make b/machine/accton/accton_as6700_32x/machine.make index c92adeaac..75dd2f84b 100644 --- a/machine/accton/accton_as6700_32x/machine.make +++ b/machine/accton/accton_as6700_32x/machine.make @@ -36,8 +36,6 @@ LINUX_TARBALL_URLS = http://git.freescale.com/git/cgit.cgi/ppc/sdk/linux.git/sna LINUX_RELEASE = fsl-sdk-v1.5 LINUX_TARBALL = linux-$(LINUX_RELEASE).tar.bz2 -# Older GCC required for older fsl-sdk-v1.5 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as6701_32x/machine.make b/machine/accton/accton_as6701_32x/machine.make index e32be3af6..d229af94b 100644 --- a/machine/accton/accton_as6701_32x/machine.make +++ b/machine/accton/accton_as6701_32x/machine.make @@ -34,8 +34,6 @@ VENDOR_ID = 259 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as6710_32x/machine.make b/machine/accton/accton_as6710_32x/machine.make index bb7fb5ab8..c5c7ddbbc 100644 --- a/machine/accton/accton_as6710_32x/machine.make +++ b/machine/accton/accton_as6710_32x/machine.make @@ -27,8 +27,6 @@ LINUX_TARBALL_URLS = http://git.freescale.com/git/cgit.cgi/ppc/sdk/linux.git/sna LINUX_RELEASE = fsl-sdk-v1.5 LINUX_TARBALL = linux-$(LINUX_RELEASE).tar.bz2 -# Older GCC required for older fsl-sdk-v1.5 kernel -GCC_VERSION = 4.9.2 UBOOT_MACHINE = AS6710_32X KERNEL_DTB = as6710_32x.dtb diff --git a/machine/accton/accton_as6712_32x/machine.make b/machine/accton/accton_as6712_32x/machine.make index 4c255502e..c2d771dde 100644 --- a/machine/accton/accton_as6712_32x/machine.make +++ b/machine/accton/accton_as6712_32x/machine.make @@ -34,7 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as6812_32x/machine.make b/machine/accton/accton_as6812_32x/machine.make index 3a61f65be..e5d4b3788 100644 --- a/machine/accton/accton_as6812_32x/machine.make +++ b/machine/accton/accton_as6812_32x/machine.make @@ -34,7 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7112_54x/machine.make b/machine/accton/accton_as7112_54x/machine.make index 39339ff5c..3369ab5ad 100644 --- a/machine/accton/accton_as7112_54x/machine.make +++ b/machine/accton/accton_as7112_54x/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7116_54x/machine.make b/machine/accton/accton_as7116_54x/machine.make index cae672a8b..3c85552f2 100644 --- a/machine/accton/accton_as7116_54x/machine.make +++ b/machine/accton/accton_as7116_54x/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7212_54x/machine.make b/machine/accton/accton_as7212_54x/machine.make index c28f4e687..d20a19cb4 100644 --- a/machine/accton/accton_as7212_54x/machine.make +++ b/machine/accton/accton_as7212_54x/machine.make @@ -32,7 +32,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7312_54x/machine.make b/machine/accton/accton_as7312_54x/machine.make index 76d90ac45..0a5c2a929 100644 --- a/machine/accton/accton_as7312_54x/machine.make +++ b/machine/accton/accton_as7312_54x/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7312_54xs/machine.make b/machine/accton/accton_as7312_54xs/machine.make index e6b0a00eb..5149d2613 100644 --- a/machine/accton/accton_as7312_54xs/machine.make +++ b/machine/accton/accton_as7312_54xs/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7315_27xb/machine.make b/machine/accton/accton_as7315_27xb/machine.make index 7069fed47..88e4df2cb 100644 --- a/machine/accton/accton_as7315_27xb/machine.make +++ b/machine/accton/accton_as7315_27xb/machine.make @@ -39,7 +39,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7315_30x/machine.make b/machine/accton/accton_as7315_30x/machine.make index d7139c727..e8546c154 100644 --- a/machine/accton/accton_as7315_30x/machine.make +++ b/machine/accton/accton_as7315_30x/machine.make @@ -39,7 +39,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7316_26xb/machine.make b/machine/accton/accton_as7316_26xb/machine.make index 8fd14d915..5e802e065 100644 --- a/machine/accton/accton_as7316_26xb/machine.make +++ b/machine/accton/accton_as7316_26xb/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7316_54x/machine.make b/machine/accton/accton_as7316_54x/machine.make index ff5a8daca..a8e201652 100644 --- a/machine/accton/accton_as7316_54x/machine.make +++ b/machine/accton/accton_as7316_54x/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7316_54xs/machine.make b/machine/accton/accton_as7316_54xs/machine.make index ff976bfce..5efcb3dea 100644 --- a/machine/accton/accton_as7316_54xs/machine.make +++ b/machine/accton/accton_as7316_54xs/machine.make @@ -34,7 +34,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7326_56x/machine.make b/machine/accton/accton_as7326_56x/machine.make index a89d275a0..be7a7f0c8 100644 --- a/machine/accton/accton_as7326_56x/machine.make +++ b/machine/accton/accton_as7326_56x/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7412_32x/machine.make b/machine/accton/accton_as7412_32x/machine.make index dba6b73fa..73196ea20 100644 --- a/machine/accton/accton_as7412_32x/machine.make +++ b/machine/accton/accton_as7412_32x/machine.make @@ -32,7 +32,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7512_32x/machine.make b/machine/accton/accton_as7512_32x/machine.make index c3d55f54c..705820539 100644 --- a/machine/accton/accton_as7512_32x/machine.make +++ b/machine/accton/accton_as7512_32x/machine.make @@ -34,7 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7515_24x/machine.make b/machine/accton/accton_as7515_24x/machine.make index 94fc0655e..503d1405f 100644 --- a/machine/accton/accton_as7515_24x/machine.make +++ b/machine/accton/accton_as7515_24x/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7515_24xb/machine.make b/machine/accton/accton_as7515_24xb/machine.make index e22810794..3529c11bc 100644 --- a/machine/accton/accton_as7515_24xb/machine.make +++ b/machine/accton/accton_as7515_24xb/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7515_30xb/machine.make b/machine/accton/accton_as7515_30xb/machine.make index a233a6f5c..8635efc7d 100644 --- a/machine/accton/accton_as7515_30xb/machine.make +++ b/machine/accton/accton_as7515_30xb/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7535_28xb/machine.make b/machine/accton/accton_as7535_28xb/machine.make index 1cb9162b1..64731eff5 100644 --- a/machine/accton/accton_as7535_28xb/machine.make +++ b/machine/accton/accton_as7535_28xb/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7535_32xb/machine.make b/machine/accton/accton_as7535_32xb/machine.make index 9d8dfbac2..5a82383b9 100644 --- a/machine/accton/accton_as7535_32xb/machine.make +++ b/machine/accton/accton_as7535_32xb/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7710_32x/machine.make b/machine/accton/accton_as7710_32x/machine.make index dfc5775e5..65f393abe 100644 --- a/machine/accton/accton_as7710_32x/machine.make +++ b/machine/accton/accton_as7710_32x/machine.make @@ -26,8 +26,6 @@ LINUX_TARBALL_URLS = http://git.freescale.com/git/cgit.cgi/ppc/sdk/linux.git/sna LINUX_RELEASE = fsl-sdk-v1.7 LINUX_TARBALL = linux-$(LINUX_RELEASE).tar.bz2 -# Older GCC required for older fsl-sdk-v1.7 kernel -GCC_VERSION = 4.9.2 # Set the desired u-boot version. UBOOT_TARBALL_URLS = http://git.freescale.com/git/cgit.cgi/ppc/sdk/u-boot.git/snapshot diff --git a/machine/accton/accton_as7712_16x/machine.make b/machine/accton/accton_as7712_16x/machine.make index 412da5840..811dc8441 100644 --- a/machine/accton/accton_as7712_16x/machine.make +++ b/machine/accton/accton_as7712_16x/machine.make @@ -32,7 +32,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7712_32x/machine.make b/machine/accton/accton_as7712_32x/machine.make index cf141e230..44e9ef208 100644 --- a/machine/accton/accton_as7712_32x/machine.make +++ b/machine/accton/accton_as7712_32x/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7715_32x/machine.make b/machine/accton/accton_as7715_32x/machine.make index 8095a8cd1..bb9c64a80 100644 --- a/machine/accton/accton_as7715_32x/machine.make +++ b/machine/accton/accton_as7715_32x/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7716_24sc/machine.make b/machine/accton/accton_as7716_24sc/machine.make index ba763aae6..92dd099df 100644 --- a/machine/accton/accton_as7716_24sc/machine.make +++ b/machine/accton/accton_as7716_24sc/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7716_24xc/machine.make b/machine/accton/accton_as7716_24xc/machine.make index c7cd3936c..6f69a58b7 100644 --- a/machine/accton/accton_as7716_24xc/machine.make +++ b/machine/accton/accton_as7716_24xc/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7716_32x/machine.make b/machine/accton/accton_as7716_32x/machine.make index eee508deb..f4d657d7c 100644 --- a/machine/accton/accton_as7716_32x/machine.make +++ b/machine/accton/accton_as7716_32x/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7716_32xb/machine.make b/machine/accton/accton_as7716_32xb/machine.make index 80a9401ba..37b4c417a 100644 --- a/machine/accton/accton_as7716_32xb/machine.make +++ b/machine/accton/accton_as7716_32xb/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7726_32x/machine.make b/machine/accton/accton_as7726_32x/machine.make index 3dc893762..3117252ce 100644 --- a/machine/accton/accton_as7726_32x/machine.make +++ b/machine/accton/accton_as7726_32x/machine.make @@ -37,7 +37,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7816_64x/machine.make b/machine/accton/accton_as7816_64x/machine.make index 1307be380..8fd9e6189 100644 --- a/machine/accton/accton_as7816_64x/machine.make +++ b/machine/accton/accton_as7816_64x/machine.make @@ -39,7 +39,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7916_54xk/machine.make b/machine/accton/accton_as7916_54xk/machine.make index c0d57dbc8..3c7faa64c 100644 --- a/machine/accton/accton_as7916_54xk/machine.make +++ b/machine/accton/accton_as7916_54xk/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7916_80xk/machine.make b/machine/accton/accton_as7916_80xk/machine.make index f4c52dc6d..bef6b0751 100644 --- a/machine/accton/accton_as7916_80xk/machine.make +++ b/machine/accton/accton_as7916_80xk/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7926_40xfb/machine.make b/machine/accton/accton_as7926_40xfb/machine.make index 5b6b46d73..b664001cd 100644 --- a/machine/accton/accton_as7926_40xfb/machine.make +++ b/machine/accton/accton_as7926_40xfb/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7936_22xke/machine.make b/machine/accton/accton_as7936_22xke/machine.make index d32bacde0..e7535c58f 100644 --- a/machine/accton/accton_as7936_22xke/machine.make +++ b/machine/accton/accton_as7936_22xke/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7946_30xb/machine.make b/machine/accton/accton_as7946_30xb/machine.make index 9744a4b17..9506fa9d9 100644 --- a/machine/accton/accton_as7946_30xb/machine.make +++ b/machine/accton/accton_as7946_30xb/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as7946_74xkb/machine.make b/machine/accton/accton_as7946_74xkb/machine.make index da16682ab..8f24ee8d1 100644 --- a/machine/accton/accton_as7946_74xkb/machine.make +++ b/machine/accton/accton_as7946_74xkb/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as9716_32d/machine.make b/machine/accton/accton_as9716_32d/machine.make index fabfdb281..891eeab25 100644 --- a/machine/accton/accton_as9716_32d/machine.make +++ b/machine/accton/accton_as9716_32d/machine.make @@ -33,7 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as9726_32d/machine.make b/machine/accton/accton_as9726_32d/machine.make index 5f152dec7..23368901a 100644 --- a/machine/accton/accton_as9726_32d/machine.make +++ b/machine/accton/accton_as9726_32d/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as9726_32db/machine.make b/machine/accton/accton_as9726_32db/machine.make index 861fbcadd..be3ffb530 100644 --- a/machine/accton/accton_as9726_32db/machine.make +++ b/machine/accton/accton_as9726_32db/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as9736_64d/machine.make b/machine/accton/accton_as9736_64d/machine.make index b4d18bc62..89c9d92c4 100644 --- a/machine/accton/accton_as9736_64d/machine.make +++ b/machine/accton/accton_as9736_64d/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as9737_32db/machine.make b/machine/accton/accton_as9737_32db/machine.make index fa6bfeebc..b8a73a3d5 100644 --- a/machine/accton/accton_as9737_32db/machine.make +++ b/machine/accton/accton_as9737_32db/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as9817/machine.make b/machine/accton/accton_as9817/machine.make index 2208968ae..ae8069295 100644 --- a/machine/accton/accton_as9817/machine.make +++ b/machine/accton/accton_as9817/machine.make @@ -37,7 +37,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as9926_24d/machine.make b/machine/accton/accton_as9926_24d/machine.make index 3759d3f35..b9bec70ae 100644 --- a/machine/accton/accton_as9926_24d/machine.make +++ b/machine/accton/accton_as9926_24d/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as9926_24db/machine.make b/machine/accton/accton_as9926_24db/machine.make index 758e2d42b..eded2353c 100644 --- a/machine/accton/accton_as9926_24db/machine.make +++ b/machine/accton/accton_as9926_24db/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as9947_36xkb/machine.make b/machine/accton/accton_as9947_36xkb/machine.make index 68f37219c..3cec0879e 100644 --- a/machine/accton/accton_as9947_36xkb/machine.make +++ b/machine/accton/accton_as9947_36xkb/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_as_28t_ops/machine.make b/machine/accton/accton_as_28t_ops/machine.make index 5f20db3c5..3b42d1758 100644 --- a/machine/accton/accton_as_28t_ops/machine.make +++ b/machine/accton/accton_as_28t_ops/machine.make @@ -29,8 +29,6 @@ VENDOR_ID = 259 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Set the desired U-Boot version UBOOT_VERSION = 2012.10 diff --git a/machine/accton/accton_asgvolt64/machine.make b/machine/accton/accton_asgvolt64/machine.make index 176a663d6..9e9971bac 100644 --- a/machine/accton/accton_asgvolt64/machine.make +++ b/machine/accton/accton_asgvolt64/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_asxvolt16/machine.make b/machine/accton/accton_asxvolt16/machine.make index 9c7bfbc80..d02bd93b8 100644 --- a/machine/accton/accton_asxvolt16/machine.make +++ b/machine/accton/accton_asxvolt16/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_bacon/machine.make b/machine/accton/accton_bacon/machine.make index 41ec72d0e..9e530d649 100644 --- a/machine/accton/accton_bacon/machine.make +++ b/machine/accton/accton_bacon/machine.make @@ -35,7 +35,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_csp9250/machine.make b/machine/accton/accton_csp9250/machine.make index 6fd0b9851..12318925e 100644 --- a/machine/accton/accton_csp9250/machine.make +++ b/machine/accton/accton_csp9250/machine.make @@ -32,7 +32,6 @@ SERIAL_CONSOLE_ENABLE = no LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_ebof/machine.make b/machine/accton/accton_ebof/machine.make index 973fa7310..a930eb731 100644 --- a/machine/accton/accton_ebof/machine.make +++ b/machine/accton/accton_ebof/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_minipack/machine.make b/machine/accton/accton_minipack/machine.make index 6cccc7a10..6b0980237 100644 --- a/machine/accton/accton_minipack/machine.make +++ b/machine/accton/accton_minipack/machine.make @@ -34,7 +34,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_p9532x/machine.make b/machine/accton/accton_p9532x/machine.make index 402872dc4..adcebaef1 100644 --- a/machine/accton/accton_p9532x/machine.make +++ b/machine/accton/accton_p9532x/machine.make @@ -32,7 +32,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_p9572x/machine.make b/machine/accton/accton_p9572x/machine.make index 4506a748c..7600d86fa 100644 --- a/machine/accton/accton_p9572x/machine.make +++ b/machine/accton/accton_p9572x/machine.make @@ -32,7 +32,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_wedge100_32x/machine.make b/machine/accton/accton_wedge100_32x/machine.make index 62cc295fe..77167bd3d 100644 --- a/machine/accton/accton_wedge100_32x/machine.make +++ b/machine/accton/accton_wedge100_32x/machine.make @@ -37,7 +37,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_wedge100bf_32q/machine.make b/machine/accton/accton_wedge100bf_32q/machine.make index a6f016e66..76b92fcad 100644 --- a/machine/accton/accton_wedge100bf_32q/machine.make +++ b/machine/accton/accton_wedge100bf_32q/machine.make @@ -38,7 +38,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_wedge100bf_32qs/machine.make b/machine/accton/accton_wedge100bf_32qs/machine.make index 9ffc4e1f5..0ceb6ffb0 100644 --- a/machine/accton/accton_wedge100bf_32qs/machine.make +++ b/machine/accton/accton_wedge100bf_32qs/machine.make @@ -38,7 +38,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_wedge100bf_32x/machine.make b/machine/accton/accton_wedge100bf_32x/machine.make index 84c49f209..b1ae10cbf 100644 --- a/machine/accton/accton_wedge100bf_32x/machine.make +++ b/machine/accton/accton_wedge100bf_32x/machine.make @@ -40,7 +40,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_wedge100bf_65x/machine.make b/machine/accton/accton_wedge100bf_65x/machine.make index 2e59b6a16..eb943b74b 100644 --- a/machine/accton/accton_wedge100bf_65x/machine.make +++ b/machine/accton/accton_wedge100bf_65x/machine.make @@ -38,7 +38,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_wedge100s_32x/machine.make b/machine/accton/accton_wedge100s_32x/machine.make index 149372852..9fd1dae56 100644 --- a/machine/accton/accton_wedge100s_32x/machine.make +++ b/machine/accton/accton_wedge100s_32x/machine.make @@ -36,7 +36,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_wedge100sbf_32x/machine.make b/machine/accton/accton_wedge100sbf_32x/machine.make index 4dc5b1ab7..21fe384bd 100644 --- a/machine/accton/accton_wedge100sbf_32x/machine.make +++ b/machine/accton/accton_wedge100sbf_32x/machine.make @@ -34,7 +34,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/accton/accton_wedge_16x/machine.make b/machine/accton/accton_wedge_16x/machine.make index 22ff2b082..d29db892e 100644 --- a/machine/accton/accton_wedge_16x/machine.make +++ b/machine/accton/accton_wedge_16x/machine.make @@ -34,7 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/agema/agema_ag7648c/machine.make b/machine/agema/agema_ag7648c/machine.make index 2caa2f3ae..e1c265c56 100644 --- a/machine/agema/agema_ag7648c/machine.make +++ b/machine/agema/agema_ag7648c/machine.make @@ -35,8 +35,6 @@ EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 acpi=off dhcp=eth0 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_bes2348t/machine.make b/machine/alphanetworks/alphanetworks_bes2348t/machine.make index 52e6d0148..1b3a8a915 100755 --- a/machine/alphanetworks/alphanetworks_bes2348t/machine.make +++ b/machine/alphanetworks/alphanetworks_bes2348t/machine.make @@ -39,11 +39,8 @@ UEFI_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Set GCC version -GCC_VERSION = 8.3.0 # Set uClibc-ng version -XTOOLS_LIBC_VERSION = 1.0.38 include $(MACHINEDIR)/rootconf/grub-machine.make diff --git a/machine/alphanetworks/alphanetworks_scg60d0_484t/machine.make b/machine/alphanetworks/alphanetworks_scg60d0_484t/machine.make index f97368660..bda13402e 100755 --- a/machine/alphanetworks/alphanetworks_scg60d0_484t/machine.make +++ b/machine/alphanetworks/alphanetworks_scg60d0_484t/machine.make @@ -41,11 +41,8 @@ UEFI_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Set GCC version -GCC_VERSION = 8.3.0 # Set uClibc-ng version -XTOOLS_LIBC_VERSION = 1.0.38 include $(MACHINEDIR)/rootconf/grub-machine.make diff --git a/machine/alphanetworks/alphanetworks_snc60a0_486f/machine.make b/machine/alphanetworks/alphanetworks_snc60a0_486f/machine.make index ce55beb43..df38621c1 100755 --- a/machine/alphanetworks/alphanetworks_snc60a0_486f/machine.make +++ b/machine/alphanetworks/alphanetworks_snc60a0_486f/machine.make @@ -34,8 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snc60a0_488f/machine.make b/machine/alphanetworks/alphanetworks_snc60a0_488f/machine.make index 1964f6f11..c026b51b3 100755 --- a/machine/alphanetworks/alphanetworks_snc60a0_488f/machine.make +++ b/machine/alphanetworks/alphanetworks_snc60a0_488f/machine.make @@ -33,8 +33,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snc61a0_486f/machine.make b/machine/alphanetworks/alphanetworks_snc61a0_486f/machine.make index 2c7c99b88..7596bd5da 100755 --- a/machine/alphanetworks/alphanetworks_snc61a0_486f/machine.make +++ b/machine/alphanetworks/alphanetworks_snc61a0_486f/machine.make @@ -34,8 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snh60a0_320f/machine.make b/machine/alphanetworks/alphanetworks_snh60a0_320f/machine.make index a4c7ff68d..f5c92fbfa 100755 --- a/machine/alphanetworks/alphanetworks_snh60a0_320f/machine.make +++ b/machine/alphanetworks/alphanetworks_snh60a0_320f/machine.make @@ -39,5 +39,3 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 diff --git a/machine/alphanetworks/alphanetworks_snh60a0_320fv2/machine.make b/machine/alphanetworks/alphanetworks_snh60a0_320fv2/machine.make index 232c604a8..f2bade1e1 100755 --- a/machine/alphanetworks/alphanetworks_snh60a0_320fv2/machine.make +++ b/machine/alphanetworks/alphanetworks_snh60a0_320fv2/machine.make @@ -34,8 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snh60a0_640f/machine.make b/machine/alphanetworks/alphanetworks_snh60a0_640f/machine.make index c21e6af8e..d2c4f152c 100755 --- a/machine/alphanetworks/alphanetworks_snh60a0_640f/machine.make +++ b/machine/alphanetworks/alphanetworks_snh60a0_640f/machine.make @@ -33,8 +33,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snh60b0_640f/machine.make b/machine/alphanetworks/alphanetworks_snh60b0_640f/machine.make index 7a57ec045..76f79ac1c 100755 --- a/machine/alphanetworks/alphanetworks_snh60b0_640f/machine.make +++ b/machine/alphanetworks/alphanetworks_snh60b0_640f/machine.make @@ -33,8 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snh61a0_320f/machine.make b/machine/alphanetworks/alphanetworks_snh61a0_320f/machine.make index e826bacdf..39c8e61f0 100755 --- a/machine/alphanetworks/alphanetworks_snh61a0_320f/machine.make +++ b/machine/alphanetworks/alphanetworks_snh61a0_320f/machine.make @@ -34,8 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snh61a0_640f/machine.make b/machine/alphanetworks/alphanetworks_snh61a0_640f/machine.make index 23860945a..f5329fd4b 100755 --- a/machine/alphanetworks/alphanetworks_snh61a0_640f/machine.make +++ b/machine/alphanetworks/alphanetworks_snh61a0_640f/machine.make @@ -33,8 +33,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snh61a2_320f/machine.make b/machine/alphanetworks/alphanetworks_snh61a2_320f/machine.make index 93bf8c90a..f7aeac8b6 100755 --- a/machine/alphanetworks/alphanetworks_snh61a2_320f/machine.make +++ b/machine/alphanetworks/alphanetworks_snh61a2_320f/machine.make @@ -33,8 +33,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snh61b0_640f/machine.make b/machine/alphanetworks/alphanetworks_snh61b0_640f/machine.make index 0ebfbf0c6..55f7cc917 100755 --- a/machine/alphanetworks/alphanetworks_snh61b0_640f/machine.make +++ b/machine/alphanetworks/alphanetworks_snh61b0_640f/machine.make @@ -33,8 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snj60b0_320f/machine.make b/machine/alphanetworks/alphanetworks_snj60b0_320f/machine.make index c8e526889..dbb8b4967 100755 --- a/machine/alphanetworks/alphanetworks_snj60b0_320f/machine.make +++ b/machine/alphanetworks/alphanetworks_snj60b0_320f/machine.make @@ -33,8 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snj61d0_320f/machine.make b/machine/alphanetworks/alphanetworks_snj61d0_320f/machine.make index 3b08a43c9..49e0a0f75 100755 --- a/machine/alphanetworks/alphanetworks_snj61d0_320f/machine.make +++ b/machine/alphanetworks/alphanetworks_snj61d0_320f/machine.make @@ -42,11 +42,8 @@ UEFI_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Set GCC version -GCC_VERSION = 8.3.0 # Set uClibc-ng version -XTOOLS_LIBC_VERSION = 1.0.38 include $(MACHINEDIR)/rootconf/grub-machine.make diff --git a/machine/alphanetworks/alphanetworks_snj62d0_640f/machine.make b/machine/alphanetworks/alphanetworks_snj62d0_640f/machine.make index e832ef449..9f5842ae4 100755 --- a/machine/alphanetworks/alphanetworks_snj62d0_640f/machine.make +++ b/machine/alphanetworks/alphanetworks_snj62d0_640f/machine.make @@ -39,11 +39,8 @@ UEFI_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Set GCC version -GCC_VERSION = 8.3.0 # Set uClibc-ng version -XTOOLS_LIBC_VERSION = 1.0.35 include $(MACHINEDIR)/rootconf/grub-machine.make diff --git a/machine/alphanetworks/alphanetworks_snk60i0_320f/machine.make b/machine/alphanetworks/alphanetworks_snk60i0_320f/machine.make index e0127e564..4acddd88c 100755 --- a/machine/alphanetworks/alphanetworks_snk60i0_320f/machine.make +++ b/machine/alphanetworks/alphanetworks_snk60i0_320f/machine.make @@ -44,11 +44,8 @@ UEFI_ENABLE = yes LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Set GCC version -GCC_VERSION = 8.3.0 # Set uClibc-ng version -XTOOLS_LIBC_VERSION = 1.0.38 include $(MACHINEDIR)/rootconf/grub-machine.make diff --git a/machine/alphanetworks/alphanetworks_snq6070_320f/machine.make b/machine/alphanetworks/alphanetworks_snq6070_320f/machine.make index 1af27f306..630b51af6 100644 --- a/machine/alphanetworks/alphanetworks_snq6070_320f/machine.make +++ b/machine/alphanetworks/alphanetworks_snq6070_320f/machine.make @@ -24,8 +24,6 @@ VENDOR_ID = 31874 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/alphanetworks/alphanetworks_snq60a0_320f/machine.make b/machine/alphanetworks/alphanetworks_snq60a0_320f/machine.make index 960e3ef12..f9064a417 100755 --- a/machine/alphanetworks/alphanetworks_snq60a0_320f/machine.make +++ b/machine/alphanetworks/alphanetworks_snq60a0_320f/machine.make @@ -34,8 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snx6070_486f/machine.make b/machine/alphanetworks/alphanetworks_snx6070_486f/machine.make index 9a97324d5..edfae7e4c 100644 --- a/machine/alphanetworks/alphanetworks_snx6070_486f/machine.make +++ b/machine/alphanetworks/alphanetworks_snx6070_486f/machine.make @@ -24,8 +24,6 @@ VENDOR_ID = 31874 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/alphanetworks/alphanetworks_snx60a0_486f/machine.make b/machine/alphanetworks/alphanetworks_snx60a0_486f/machine.make index 94168e53b..4b8ae722d 100755 --- a/machine/alphanetworks/alphanetworks_snx60a0_486f/machine.make +++ b/machine/alphanetworks/alphanetworks_snx60a0_486f/machine.make @@ -34,8 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snx60a0_486t/machine.make b/machine/alphanetworks/alphanetworks_snx60a0_486t/machine.make index 6053d30fb..22c162e27 100755 --- a/machine/alphanetworks/alphanetworks_snx60a0_486t/machine.make +++ b/machine/alphanetworks/alphanetworks_snx60a0_486t/machine.make @@ -34,8 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snx61a0_486f/machine.make b/machine/alphanetworks/alphanetworks_snx61a0_486f/machine.make index 35829c857..f8d44d978 100755 --- a/machine/alphanetworks/alphanetworks_snx61a0_486f/machine.make +++ b/machine/alphanetworks/alphanetworks_snx61a0_486f/machine.make @@ -34,8 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snx61a0_486t/machine.make b/machine/alphanetworks/alphanetworks_snx61a0_486t/machine.make index 0af6c5c9f..916d0456f 100755 --- a/machine/alphanetworks/alphanetworks_snx61a0_486t/machine.make +++ b/machine/alphanetworks/alphanetworks_snx61a0_486t/machine.make @@ -34,8 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_snx62b0_486t/machine.make b/machine/alphanetworks/alphanetworks_snx62b0_486t/machine.make index 55371c9dd..353505af7 100755 --- a/machine/alphanetworks/alphanetworks_snx62b0_486t/machine.make +++ b/machine/alphanetworks/alphanetworks_snx62b0_486t/machine.make @@ -33,8 +33,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_spx70d0_082f/machine.make b/machine/alphanetworks/alphanetworks_spx70d0_082f/machine.make index 1ea911f85..d0775f4d4 100755 --- a/machine/alphanetworks/alphanetworks_spx70d0_082f/machine.make +++ b/machine/alphanetworks/alphanetworks_spx70d0_082f/machine.make @@ -39,11 +39,8 @@ UEFI_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Set GCC version -GCC_VERSION = 8.3.0 # Set uClibc-ng version -XTOOLS_LIBC_VERSION = 1.0.35 include $(MACHINEDIR)/rootconf/grub-machine.make diff --git a/machine/alphanetworks/alphanetworks_spx70d0_168f/machine.make b/machine/alphanetworks/alphanetworks_spx70d0_168f/machine.make index bc44c787f..7de9904f1 100755 --- a/machine/alphanetworks/alphanetworks_spx70d0_168f/machine.make +++ b/machine/alphanetworks/alphanetworks_spx70d0_168f/machine.make @@ -39,11 +39,8 @@ UEFI_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Set GCC version -GCC_VERSION = 8.3.0 # Set uClibc-ng version -XTOOLS_LIBC_VERSION = 1.0.38 include $(MACHINEDIR)/rootconf/grub-machine.make diff --git a/machine/alphanetworks/alphanetworks_stx60a0_486f/machine.make b/machine/alphanetworks/alphanetworks_stx60a0_486f/machine.make index 09772b3b9..e947599f4 100755 --- a/machine/alphanetworks/alphanetworks_stx60a0_486f/machine.make +++ b/machine/alphanetworks/alphanetworks_stx60a0_486f/machine.make @@ -34,8 +34,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/alphanetworks/alphanetworks_stx60b0_486f/machine.make b/machine/alphanetworks/alphanetworks_stx60b0_486f/machine.make index 1043f9cb6..1fa937fc7 100755 --- a/machine/alphanetworks/alphanetworks_stx60b0_486f/machine.make +++ b/machine/alphanetworks/alphanetworks_stx60b0_486f/machine.make @@ -34,8 +34,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/celestica/cel_d2030/machine.make b/machine/celestica/cel_d2030/machine.make index 095568f79..9ff14c2c0 100644 --- a/machine/celestica/cel_d2030/machine.make +++ b/machine/celestica/cel_d2030/machine.make @@ -21,8 +21,6 @@ VENDOR_ID = 12244 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/celestica/cel_e1031/machine.make b/machine/celestica/cel_e1031/machine.make index c6450f11f..ffe8f72e2 100755 --- a/machine/celestica/cel_e1031/machine.make +++ b/machine/celestica/cel_e1031/machine.make @@ -40,8 +40,6 @@ CONSOLE_FLAG = 1 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/celestica/cel_kennisis/machine.make b/machine/celestica/cel_kennisis/machine.make index 6237a8dbe..8b507e75e 100644 --- a/machine/celestica/cel_kennisis/machine.make +++ b/machine/celestica/cel_kennisis/machine.make @@ -21,8 +21,6 @@ VENDOR_ID = 12244 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/celestica/cel_redstone/machine.make b/machine/celestica/cel_redstone/machine.make index cbf5985eb..aeaa50494 100644 --- a/machine/celestica/cel_redstone/machine.make +++ b/machine/celestica/cel_redstone/machine.make @@ -20,8 +20,6 @@ VENDOR_ID = 12244 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/celestica/cel_redstone_xp/machine.make b/machine/celestica/cel_redstone_xp/machine.make index b2ba3d8f8..792ca4e08 100755 --- a/machine/celestica/cel_redstone_xp/machine.make +++ b/machine/celestica/cel_redstone_xp/machine.make @@ -30,8 +30,6 @@ PARTITION_TYPE = gpt LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/celestica/cel_seastone/machine.make b/machine/celestica/cel_seastone/machine.make index 52b962261..54cf8ab5c 100755 --- a/machine/celestica/cel_seastone/machine.make +++ b/machine/celestica/cel_seastone/machine.make @@ -36,8 +36,6 @@ PARTITION_TYPE = gpt LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/celestica/cel_smallstone/machine.make b/machine/celestica/cel_smallstone/machine.make index 4bb2c38f1..2a54c1331 100644 --- a/machine/celestica/cel_smallstone/machine.make +++ b/machine/celestica/cel_smallstone/machine.make @@ -21,8 +21,6 @@ VENDOR_ID = 12244 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/celestica/cel_smallstone_xp/machine.make b/machine/celestica/cel_smallstone_xp/machine.make index 7c73e07a8..19b9614f7 100755 --- a/machine/celestica/cel_smallstone_xp/machine.make +++ b/machine/celestica/cel_smallstone_xp/machine.make @@ -35,8 +35,6 @@ PARTITION_TYPE = gpt LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/centec/centec_e580_20q4z/machine.make b/machine/centec/centec_e580_20q4z/machine.make index 9eb84953e..cb4dc8111 100644 --- a/machine/centec/centec_e580_20q4z/machine.make +++ b/machine/centec/centec_e580_20q4z/machine.make @@ -19,8 +19,6 @@ LINUX_TARBALL_URLS = http://git.freescale.com/git/cgit.cgi/ppc/sdk/linux.git/sna LINUX_RELEASE = fsl-sdk-v1.5 LINUX_TARBALL = linux-$(LINUX_RELEASE).tar.bz2 -# Older GCC required for older fsl-sdk-v1.5 kernel -GCC_VERSION = 4.9.2 # Vendor ID -- IANA Private Enterprise Number: # http://www.iana.org/assignments/enterprise-numbers diff --git a/machine/centec/centec_e580_48x2q4z/machine.make b/machine/centec/centec_e580_48x2q4z/machine.make index b1191c984..0bcf49513 100644 --- a/machine/centec/centec_e580_48x2q4z/machine.make +++ b/machine/centec/centec_e580_48x2q4z/machine.make @@ -19,8 +19,6 @@ LINUX_TARBALL_URLS = http://git.freescale.com/git/cgit.cgi/ppc/sdk/linux.git/sna LINUX_RELEASE = fsl-sdk-v1.5 LINUX_TARBALL = linux-$(LINUX_RELEASE).tar.bz2 -# Older GCC required for older fsl-sdk-v1.5 kernel -GCC_VERSION = 4.9.2 # Vendor ID -- IANA Private Enterprise Number: # http://www.iana.org/assignments/enterprise-numbers diff --git a/machine/centec/centec_e580_48x6q/machine.make b/machine/centec/centec_e580_48x6q/machine.make index 9eb84953e..cb4dc8111 100644 --- a/machine/centec/centec_e580_48x6q/machine.make +++ b/machine/centec/centec_e580_48x6q/machine.make @@ -19,8 +19,6 @@ LINUX_TARBALL_URLS = http://git.freescale.com/git/cgit.cgi/ppc/sdk/linux.git/sna LINUX_RELEASE = fsl-sdk-v1.5 LINUX_TARBALL = linux-$(LINUX_RELEASE).tar.bz2 -# Older GCC required for older fsl-sdk-v1.5 kernel -GCC_VERSION = 4.9.2 # Vendor ID -- IANA Private Enterprise Number: # http://www.iana.org/assignments/enterprise-numbers diff --git a/machine/dell/dell_s3000_c2338/machine.make b/machine/dell/dell_s3000_c2338/machine.make index 85d70dc13..8a65a3f47 100644 --- a/machine/dell/dell_s3000_c2338/machine.make +++ b/machine/dell/dell_s3000_c2338/machine.make @@ -35,8 +35,6 @@ EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/dell/dell_s4000_c2338/machine.make b/machine/dell/dell_s4000_c2338/machine.make index c17ba5812..f38735cb5 100644 --- a/machine/dell/dell_s4000_c2338/machine.make +++ b/machine/dell/dell_s4000_c2338/machine.make @@ -35,8 +35,6 @@ EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/dell/dell_s4048t_c2338/machine.make b/machine/dell/dell_s4048t_c2338/machine.make index 1b17593a1..6a6eed7ef 100644 --- a/machine/dell/dell_s4048t_c2338/machine.make +++ b/machine/dell/dell_s4048t_c2338/machine.make @@ -32,8 +32,6 @@ EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/dell/dell_s4810_on_p2020/machine.make b/machine/dell/dell_s4810_on_p2020/machine.make index 0acde8cbb..3e6245c1b 100644 --- a/machine/dell/dell_s4810_on_p2020/machine.make +++ b/machine/dell/dell_s4810_on_p2020/machine.make @@ -21,8 +21,6 @@ VENDOR_ID = 5324 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/dell/dell_s6000_s1220/machine.make b/machine/dell/dell_s6000_s1220/machine.make index 60b9d4019..7dfc6f679 100644 --- a/machine/dell/dell_s6000_s1220/machine.make +++ b/machine/dell/dell_s6000_s1220/machine.make @@ -26,8 +26,6 @@ PXE_EFI64_ENABLE = yes LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Enable the i2ctools and the onie-syseeprom command for this platform I2CTOOLS_ENABLE = yes diff --git a/machine/dell/dell_s6010_c2538/machine.make b/machine/dell/dell_s6010_c2538/machine.make index 57b5b2196..1e5bf2d49 100644 --- a/machine/dell/dell_s6010_c2538/machine.make +++ b/machine/dell/dell_s6010_c2538/machine.make @@ -32,8 +32,6 @@ EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/dell/dell_s6100_c2538/machine.make b/machine/dell/dell_s6100_c2538/machine.make index faa7606a9..9d8fff7c1 100644 --- a/machine/dell/dell_s6100_c2538/machine.make +++ b/machine/dell/dell_s6100_c2538/machine.make @@ -33,8 +33,6 @@ CONSOLE_FLAG = 0 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 diff --git a/machine/dell/dell_z9100_c2538/machine.make b/machine/dell/dell_z9100_c2538/machine.make index 938124945..a2c253ae9 100644 --- a/machine/dell/dell_z9100_c2538/machine.make +++ b/machine/dell/dell_z9100_c2538/machine.make @@ -35,8 +35,6 @@ EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/dni/dni_3048up/machine.make b/machine/dni/dni_3048up/machine.make index aede7f10c..fcf326805 100755 --- a/machine/dni/dni_3048up/machine.make +++ b/machine/dni/dni_3048up/machine.make @@ -29,8 +29,6 @@ VENDOR_ID = 5324 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 KERNEL_LOAD_ADDRESS = 0x61008000 KERNEL_ENTRY_POINT = 0x61008000 diff --git a/machine/ingrasys/ingrasys_s8810_32q/machine.make b/machine/ingrasys/ingrasys_s8810_32q/machine.make index 07812e26b..de560a6f6 100644 --- a/machine/ingrasys/ingrasys_s8810_32q/machine.make +++ b/machine/ingrasys/ingrasys_s8810_32q/machine.make @@ -40,8 +40,6 @@ EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ingrasys/ingrasys_s8900_54xc/machine.make b/machine/ingrasys/ingrasys_s8900_54xc/machine.make index ac4902563..68c9a9967 100644 --- a/machine/ingrasys/ingrasys_s8900_54xc/machine.make +++ b/machine/ingrasys/ingrasys_s8900_54xc/machine.make @@ -40,8 +40,6 @@ EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ingrasys/ingrasys_s8900_64xc/machine.make b/machine/ingrasys/ingrasys_s8900_64xc/machine.make index ac4902563..68c9a9967 100644 --- a/machine/ingrasys/ingrasys_s8900_64xc/machine.make +++ b/machine/ingrasys/ingrasys_s8900_64xc/machine.make @@ -40,8 +40,6 @@ EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ingrasys/ingrasys_s9100/machine.make b/machine/ingrasys/ingrasys_s9100/machine.make index e5cb42658..ada91b3ff 100644 --- a/machine/ingrasys/ingrasys_s9100/machine.make +++ b/machine/ingrasys/ingrasys_s9100/machine.make @@ -40,8 +40,6 @@ EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ingrasys/ingrasys_s9130_32x/machine.make b/machine/ingrasys/ingrasys_s9130_32x/machine.make index b62aed9ed..350262f9b 100644 --- a/machine/ingrasys/ingrasys_s9130_32x/machine.make +++ b/machine/ingrasys/ingrasys_s9130_32x/machine.make @@ -37,8 +37,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.1 LINUX_MINOR_VERSION = 38 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/inventec/inventec_d10056/machine.make b/machine/inventec/inventec_d10056/machine.make index 0cb193880..6fbfc1df9 100644 --- a/machine/inventec/inventec_d10056/machine.make +++ b/machine/inventec/inventec_d10056/machine.make @@ -27,8 +27,6 @@ I2CTOOLS_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Use gcc-6.3.0 -GCC_VERSION = 6.3.0 # # Console parameters can be defined here diff --git a/machine/inventec/inventec_d10064/machine.make b/machine/inventec/inventec_d10064/machine.make index 72d68ef47..9f0d29dfd 100644 --- a/machine/inventec/inventec_d10064/machine.make +++ b/machine/inventec/inventec_d10064/machine.make @@ -27,8 +27,6 @@ I2CTOOLS_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Use gcc-6.3.0 -GCC_VERSION = 6.3.0 # # Console parameters can be defined here diff --git a/machine/inventec/inventec_d6254qs/machine.make b/machine/inventec/inventec_d6254qs/machine.make index 9d6e87755..8daae3960 100644 --- a/machine/inventec/inventec_d6254qs/machine.make +++ b/machine/inventec/inventec_d6254qs/machine.make @@ -27,8 +27,6 @@ I2CTOOLS_SYSEEPROM = no LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Use gcc-6.3.0 -GCC_VERSION = 6.3.0 # # Console parameters can be defined here diff --git a/machine/inventec/inventec_d6356/machine.make b/machine/inventec/inventec_d6356/machine.make index e8916ea97..3dc835ca3 100644 --- a/machine/inventec/inventec_d6356/machine.make +++ b/machine/inventec/inventec_d6356/machine.make @@ -27,8 +27,6 @@ I2CTOOLS_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Use gcc-6.3.0 -GCC_VERSION = 6.3.0 # # Console parameters can be defined here diff --git a/machine/inventec/inventec_d7054q28b/machine.make b/machine/inventec/inventec_d7054q28b/machine.make index 7e995a09c..0493239fa 100644 --- a/machine/inventec/inventec_d7054q28b/machine.make +++ b/machine/inventec/inventec_d7054q28b/machine.make @@ -26,8 +26,6 @@ I2CTOOLS_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Use gcc-6.3.0 -GCC_VERSION = 6.3.0 # # Console parameters can be defined here diff --git a/machine/inventec/inventec_d7332/machine.make b/machine/inventec/inventec_d7332/machine.make index 4be3b3cb5..31173b67f 100644 --- a/machine/inventec/inventec_d7332/machine.make +++ b/machine/inventec/inventec_d7332/machine.make @@ -27,8 +27,6 @@ I2CTOOLS_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Use gcc-6.3.0 -GCC_VERSION = 6.3.0 # # Console parameters can be defined here diff --git a/machine/inventec/inventec_dcs7032q28/machine.make b/machine/inventec/inventec_dcs7032q28/machine.make index 472019039..533ba15bf 100644 --- a/machine/inventec/inventec_dcs7032q28/machine.make +++ b/machine/inventec/inventec_dcs7032q28/machine.make @@ -27,8 +27,6 @@ I2CTOOLS_SYSEEPROM = no LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # # Console parameters can be defined here diff --git a/machine/inventec/inventec_dcs7032q28b/machine.make b/machine/inventec/inventec_dcs7032q28b/machine.make index f128d86f5..39c051bba 100644 --- a/machine/inventec/inventec_dcs7032q28b/machine.make +++ b/machine/inventec/inventec_dcs7032q28b/machine.make @@ -27,8 +27,6 @@ I2CTOOLS_SYSEEPROM = no LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Use gcc-6.3.0 -GCC_VERSION = 6.3.0 # # Console parameters can be defined here diff --git a/machine/juniper/juniper_qfx5200/machine.make b/machine/juniper/juniper_qfx5200/machine.make index c4fef02e4..66b96e363 100644 --- a/machine/juniper/juniper_qfx5200/machine.make +++ b/machine/juniper/juniper_qfx5200/machine.make @@ -40,8 +40,6 @@ LINUX_MINOR_VERSION = 95 # ONIE defaults the serial console baud rate to 115200 CONSOLE_SPEED = 9600 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 RECOVERY_DEFAULT_ENTRY = embed diff --git a/machine/juniper/juniper_qfx5210/machine.make b/machine/juniper/juniper_qfx5210/machine.make index 5a05c586c..caafd6a2c 100644 --- a/machine/juniper/juniper_qfx5210/machine.make +++ b/machine/juniper/juniper_qfx5210/machine.make @@ -41,8 +41,6 @@ LINUX_MINOR_VERSION = 95 # ONIE defaults the serial console baud rate to 115200 CONSOLE_SPEED = 9600 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 RECOVERY_DEFAULT_ENTRY = embed diff --git a/machine/lenovo/lenovo_g8272/machine.make b/machine/lenovo/lenovo_g8272/machine.make index 654e7a222..35ba7ab0b 100644 --- a/machine/lenovo/lenovo_g8272/machine.make +++ b/machine/lenovo/lenovo_g8272/machine.make @@ -41,8 +41,6 @@ VENDOR_ID = 19046 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #Disable BRTFS BTRFS_PROGS_ENABLE = no diff --git a/machine/lenovo/lenovo_g8296/machine.make b/machine/lenovo/lenovo_g8296/machine.make index 17f3811b7..4a2d967c1 100644 --- a/machine/lenovo/lenovo_g8296/machine.make +++ b/machine/lenovo/lenovo_g8296/machine.make @@ -44,8 +44,6 @@ LINUX_TARBALL = linux-$(LINUX_RELEASE).tar.bz2 #LINUX_VERSION = fsl-sdk-v1.7 #LINUX_MINOR_VERSION = 27 -# Older GCC required for older fsl-sdk kernel -GCC_VERSION = 4.9.2 #Add EXT 3 support EXT3_4_ENABLE = yes diff --git a/machine/lenovo/lenovo_ne0152t/machine.make b/machine/lenovo/lenovo_ne0152t/machine.make index af962975e..82b22d511 100755 --- a/machine/lenovo/lenovo_ne0152t/machine.make +++ b/machine/lenovo/lenovo_ne0152t/machine.make @@ -52,7 +52,6 @@ CONSOLE_DEV = 1 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -GCC_VERSION = 6.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/lenovo/lenovo_ne10032/machine.make b/machine/lenovo/lenovo_ne10032/machine.make index a5dcb0df9..75acd8448 100755 --- a/machine/lenovo/lenovo_ne10032/machine.make +++ b/machine/lenovo/lenovo_ne10032/machine.make @@ -53,7 +53,6 @@ LINUX_MINOR_VERSION = 38 # Specify uClibc version #UCLIBC_VERSION = 0.9.32.1 -GCC_VERSION = 4.9.2 #Extra kernel command line EXTRA_CMDLINE_LINUX ?= quiet diff --git a/machine/lenovo/lenovo_ne1032/machine.make b/machine/lenovo/lenovo_ne1032/machine.make index 1ea35c921..470baee20 100644 --- a/machine/lenovo/lenovo_ne1032/machine.make +++ b/machine/lenovo/lenovo_ne1032/machine.make @@ -48,7 +48,6 @@ LINUX_TARBALL = linux-$(LINUX_RELEASE).tar.bz2 # Specify uClibc version #UCLIBC_VERSION = 0.9.32.1 -GCC_VERSION = 4.9.2 # Set the desired u-boot version. UBOOT_TARBALL_URLS = http://git.freescale.com/git/cgit.cgi/ppc/sdk/u-boot.git/snapshot diff --git a/machine/lenovo/lenovo_ne1032t/machine.make b/machine/lenovo/lenovo_ne1032t/machine.make index a6cf53edf..8774fbecf 100644 --- a/machine/lenovo/lenovo_ne1032t/machine.make +++ b/machine/lenovo/lenovo_ne1032t/machine.make @@ -48,7 +48,6 @@ LINUX_TARBALL = linux-$(LINUX_RELEASE).tar.bz2 # Specify uClibc version #UCLIBC_VERSION = 0.9.32.1 -GCC_VERSION = 4.9.2 # Set the desired u-boot version. UBOOT_TARBALL_URLS = http://git.freescale.com/git/cgit.cgi/ppc/sdk/u-boot.git/snapshot diff --git a/machine/lenovo/lenovo_ne1064t/machine.make b/machine/lenovo/lenovo_ne1064t/machine.make index fd9977f22..4e5d90950 100755 --- a/machine/lenovo/lenovo_ne1064t/machine.make +++ b/machine/lenovo/lenovo_ne1064t/machine.make @@ -53,7 +53,6 @@ LINUX_MINOR_VERSION = 95 # Specify uClibc version #UCLIBC_VERSION = 0.9.32.1 -GCC_VERSION = 6.3.0 #Extra kernel command line EXTRA_CMDLINE_LINUX ?= quiet diff --git a/machine/lenovo/lenovo_ne1072t/machine.make b/machine/lenovo/lenovo_ne1072t/machine.make index 56be24b47..4e5a1aca0 100644 --- a/machine/lenovo/lenovo_ne1072t/machine.make +++ b/machine/lenovo/lenovo_ne1072t/machine.make @@ -48,7 +48,6 @@ LINUX_TARBALL = linux-$(LINUX_RELEASE).tar.bz2 # Specify uClibc version #UCLIBC_VERSION = 0.9.32.1 -GCC_VERSION = 4.9.2 # Set the desired u-boot version. UBOOT_TARBALL_URLS = http://git.freescale.com/git/cgit.cgi/ppc/sdk/u-boot.git/snapshot diff --git a/machine/lenovo/lenovo_ne2572/machine.make b/machine/lenovo/lenovo_ne2572/machine.make index 87682205d..b4120c547 100755 --- a/machine/lenovo/lenovo_ne2572/machine.make +++ b/machine/lenovo/lenovo_ne2572/machine.make @@ -54,7 +54,6 @@ LINUX_MINOR_VERSION = 38 # Specify uClibc version #UCLIBC_VERSION = 0.9.32.1 -GCC_VERSION = 4.9.2 #Extra kernel command line EXTRA_CMDLINE_LINUX ?= quiet diff --git a/machine/lenovo/lenovo_ne2580/machine.make b/machine/lenovo/lenovo_ne2580/machine.make index 1a6cf2970..f95b7bc44 100755 --- a/machine/lenovo/lenovo_ne2580/machine.make +++ b/machine/lenovo/lenovo_ne2580/machine.make @@ -53,7 +53,6 @@ LINUX_MINOR_VERSION = 95 # Specify uClibc version #UCLIBC_VERSION = 0.9.32.1 -GCC_VERSION = 6.3.0 #Extra kernel command line EXTRA_CMDLINE_LINUX ?= quiet diff --git a/machine/marvell/a7020-comexp/machine.make b/machine/marvell/a7020-comexp/machine.make index 84c4c731a..38d079a02 100644 --- a/machine/marvell/a7020-comexp/machine.make +++ b/machine/marvell/a7020-comexp/machine.make @@ -18,7 +18,6 @@ XTOOLS_ENABLE?=yes ifeq ($(XTOOLS_ENABLE),no) TARGET = aarch64-linux-gnu CROSSBIN = /local/store/projects/toolChain/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin - GCC_VERSION = 5.2.1 XTOOLS_BUILD_STAMP = $(CROSSBIN)/$(TARGET)-gcc STRACE_ENABLE = no endif diff --git a/machine/netberg/netberg_aurora_221/machine.make b/machine/netberg/netberg_aurora_221/machine.make index 03ac0fd66..1819c29c0 100755 --- a/machine/netberg/netberg_aurora_221/machine.make +++ b/machine/netberg/netberg_aurora_221/machine.make @@ -39,10 +39,8 @@ RECOVERY_DEFAULT_ENTRY = embed LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -GCC_VERSION = 8.3.0 # Set uClibc-ng version -XTOOLS_LIBC_VERSION = 1.0.35 #------------------------------------------------------------------------------- # diff --git a/machine/netberg/netberg_aurora_610/machine.make b/machine/netberg/netberg_aurora_610/machine.make index 783bee6bb..7e018cff2 100644 --- a/machine/netberg/netberg_aurora_610/machine.make +++ b/machine/netberg/netberg_aurora_610/machine.make @@ -26,8 +26,6 @@ I2CTOOLS_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Use gcc-6.3.0 -GCC_VERSION = 6.3.0 # # Console parameters can be defined here diff --git a/machine/netberg/netberg_aurora_615/machine.make b/machine/netberg/netberg_aurora_615/machine.make index b3543f24e..b0ac5ac0e 100755 --- a/machine/netberg/netberg_aurora_615/machine.make +++ b/machine/netberg/netberg_aurora_615/machine.make @@ -38,7 +38,6 @@ CONSOLE_SPEED ?= 115200 #LINUX_MINOR_VERSION = 38 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -GCC_VERSION = 4.9.2 #EXTRA_CMDLINE_LINUX = acpi_osi=Linux #GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- diff --git a/machine/netberg/netberg_aurora_621/machine.make b/machine/netberg/netberg_aurora_621/machine.make index e8704a8c8..b9345a88f 100755 --- a/machine/netberg/netberg_aurora_621/machine.make +++ b/machine/netberg/netberg_aurora_621/machine.make @@ -51,8 +51,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/netberg/netberg_aurora_705/machine.make b/machine/netberg/netberg_aurora_705/machine.make index c88937e9d..81b7a62ac 100644 --- a/machine/netberg/netberg_aurora_705/machine.make +++ b/machine/netberg/netberg_aurora_705/machine.make @@ -37,8 +37,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.1 LINUX_MINOR_VERSION = 38 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/netberg/netberg_aurora_710/machine.make b/machine/netberg/netberg_aurora_710/machine.make index e830f2366..0b702ea9e 100644 --- a/machine/netberg/netberg_aurora_710/machine.make +++ b/machine/netberg/netberg_aurora_710/machine.make @@ -48,8 +48,6 @@ EXTRA_CMDLINE_LINUX = i2c-i801.disable_features=0x10 LINUX_VERSION = 4.1 LINUX_MINOR_VERSION = 38 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/netberg/netberg_aurora_715/machine.make b/machine/netberg/netberg_aurora_715/machine.make index 98ec9a85d..4e9d17240 100755 --- a/machine/netberg/netberg_aurora_715/machine.make +++ b/machine/netberg/netberg_aurora_715/machine.make @@ -38,7 +38,6 @@ CONSOLE_SPEED ?= 115200 #LINUX_MINOR_VERSION = 38 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -GCC_VERSION = 4.9.2 #EXTRA_CMDLINE_LINUX = acpi_osi=Linux #GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- diff --git a/machine/netberg/netberg_aurora_721/machine.make b/machine/netberg/netberg_aurora_721/machine.make index 45c7ab3a1..ec7dbea97 100755 --- a/machine/netberg/netberg_aurora_721/machine.make +++ b/machine/netberg/netberg_aurora_721/machine.make @@ -51,8 +51,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/netberg/netberg_aurora_740/machine.make b/machine/netberg/netberg_aurora_740/machine.make index 9602aac59..9040eca12 100755 --- a/machine/netberg/netberg_aurora_740/machine.make +++ b/machine/netberg/netberg_aurora_740/machine.make @@ -48,8 +48,6 @@ EXTRA_CMDLINE_LINUX = i2c-i801.disable_features=0x10 LINUX_VERSION = 4.1 LINUX_MINOR_VERSION = 38 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/netberg/netberg_aurora_750/machine.make b/machine/netberg/netberg_aurora_750/machine.make index 83261d60b..6de341202 100644 --- a/machine/netberg/netberg_aurora_750/machine.make +++ b/machine/netberg/netberg_aurora_750/machine.make @@ -48,8 +48,6 @@ EXTRA_CMDLINE_LINUX = i2c-i801.disable_features=0x10 LINUX_VERSION = 4.1 LINUX_MINOR_VERSION = 38 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/netberg/netberg_aurora_810/machine.make b/machine/netberg/netberg_aurora_810/machine.make index 379e63fdd..0833b4b48 100755 --- a/machine/netberg/netberg_aurora_810/machine.make +++ b/machine/netberg/netberg_aurora_810/machine.make @@ -37,10 +37,8 @@ RECOVERY_DEFAULT_ENTRY = embed LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -GCC_VERSION = 8.3.0 # Set uClibc-ng version -XTOOLS_LIBC_VERSION = 1.0.35 #------------------------------------------------------------------------------- # diff --git a/machine/netberg/netberg_aurora_820/machine.make b/machine/netberg/netberg_aurora_820/machine.make index cb0be0cdf..5f10bda26 100644 --- a/machine/netberg/netberg_aurora_820/machine.make +++ b/machine/netberg/netberg_aurora_820/machine.make @@ -25,8 +25,6 @@ I2CTOOLS_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Use gcc-6.3.0 -GCC_VERSION = 6.3.0 # # Console parameters can be defined here diff --git a/machine/netberg/netberg_aurora_830/machine.make b/machine/netberg/netberg_aurora_830/machine.make index e88e3e2d3..dd4e71060 100755 --- a/machine/netberg/netberg_aurora_830/machine.make +++ b/machine/netberg/netberg_aurora_830/machine.make @@ -49,8 +49,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/netberg/netberg_rangeley_p1330/machine.make b/machine/netberg/netberg_rangeley_p1330/machine.make index be710d626..82bd77729 100755 --- a/machine/netberg/netberg_rangeley_p1330/machine.make +++ b/machine/netberg/netberg_rangeley_p1330/machine.make @@ -31,8 +31,6 @@ RECOVERY_DEFAULT_ENTRY=embed LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/pegatron/pegatron_dm2118_b/machine.make b/machine/pegatron/pegatron_dm2118_b/machine.make index 09f7e0c4e..e8c28c156 100755 --- a/machine/pegatron/pegatron_dm2118_b/machine.make +++ b/machine/pegatron/pegatron_dm2118_b/machine.make @@ -13,8 +13,6 @@ MACHINE_REV = 0 ifeq ($(XTOOLS_ENABLE),no) TARGET = aarch64-marvell-linux-gnu CROSSBIN = /opt/toolchains/mvl/armv8/ac5/bin - GCC_VERSION = 7.3.0 - XTOOLS_LIBC_VERSION = 2.27 XTOOLS_BUILD_STAMP = $(CROSSBIN)/$(TARGET)-gcc STRACE_ENABLE = no endif diff --git a/machine/pegatron/pegatron_dm6218_b/machine.make b/machine/pegatron/pegatron_dm6218_b/machine.make index 5aabb7da0..b11d9c379 100755 --- a/machine/pegatron/pegatron_dm6218_b/machine.make +++ b/machine/pegatron/pegatron_dm6218_b/machine.make @@ -13,8 +13,6 @@ MACHINE_REV = 0 ifeq ($(XTOOLS_ENABLE),no) TARGET = aarch64-marvell-linux-gnu CROSSBIN = /opt/toolchains/mvl/armv8/cn91xx/bin - GCC_VERSION = 7.3.0 - XTOOLS_LIBC_VERSION = 2.27 XTOOLS_BUILD_STAMP = $(CROSSBIN)/$(TARGET)-gcc STRACE_ENABLE = no endif diff --git a/machine/pegatron/pegatron_em21t54/machine.make b/machine/pegatron/pegatron_em21t54/machine.make index ff664c9bb..836929ced 100755 --- a/machine/pegatron/pegatron_em21t54/machine.make +++ b/machine/pegatron/pegatron_em21t54/machine.make @@ -13,8 +13,6 @@ MACHINE_REV = 0 ifeq ($(XTOOLS_ENABLE),no) TARGET = aarch64-marvell-linux-gnu CROSSBIN = /opt/toolchains/mvl/armv8/ac5/bin - GCC_VERSION = 7.3.0 - XTOOLS_LIBC_VERSION = 2.27 XTOOLS_BUILD_STAMP = $(CROSSBIN)/$(TARGET)-gcc STRACE_ENABLE = no endif diff --git a/machine/plexxi/px_switch2/machine.make b/machine/plexxi/px_switch2/machine.make index ff60daeb7..6ec6f042c 100644 --- a/machine/plexxi/px_switch2/machine.make +++ b/machine/plexxi/px_switch2/machine.make @@ -27,8 +27,6 @@ PXE_EFI64_ENABLE=yes LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/qemu_armv8a/machine.make b/machine/qemu_armv8a/machine.make index 99caa7cd0..fc6c40078 100644 --- a/machine/qemu_armv8a/machine.make +++ b/machine/qemu_armv8a/machine.make @@ -24,9 +24,6 @@ XTOOLS_ENABLE = yes ifeq ($(XTOOLS_ENABLE),no) TARGET = aarch64-linux-gnu CROSSBIN = $(HOME)/gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu/bin - GCC_VERSION = 5.3.1 - XTOOLS_LIBC = glibc - XTOOLS_LIBC_VERSION = 2.21 LINUX_VERSION = 4.1.23 STRACE_ENABLE = no XTOOLS_BUILD_STAMP = $(CROSSBIN)/$(TARGET)-gcc diff --git a/machine/quanta/quanta_common_p2020/machine.make b/machine/quanta/quanta_common_p2020/machine.make index 2c2f79661..2ec2419d2 100755 --- a/machine/quanta/quanta_common_p2020/machine.make +++ b/machine/quanta/quanta_common_p2020/machine.make @@ -21,8 +21,6 @@ VENDOR_ID = 7244 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/quanta/quanta_common_rangeley/machine.make b/machine/quanta/quanta_common_rangeley/machine.make index 0b5718858..d6bfaecf1 100755 --- a/machine/quanta/quanta_common_rangeley/machine.make +++ b/machine/quanta/quanta_common_rangeley/machine.make @@ -32,8 +32,6 @@ RECOVERY_DEFAULT_ENTRY=embed LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/quanta/quanta_common_rglbmc/machine.make b/machine/quanta/quanta_common_rglbmc/machine.make index be0995b0d..2e6358e1e 100644 --- a/machine/quanta/quanta_common_rglbmc/machine.make +++ b/machine/quanta/quanta_common_rglbmc/machine.make @@ -55,8 +55,6 @@ PXE_EFI64_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Use gcc-6.3.0 -GCC_VERSION = 6.3.0 # # Console parameters can be defined here (default values are in diff --git a/machine/quanta/quanta_lb8d/machine.make b/machine/quanta/quanta_lb8d/machine.make index d4720cd9f..5c1e2e36e 100755 --- a/machine/quanta/quanta_lb8d/machine.make +++ b/machine/quanta/quanta_lb8d/machine.make @@ -21,8 +21,6 @@ VENDOR_ID = 7244 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/quanta/quanta_lb9/machine.make b/machine/quanta/quanta_lb9/machine.make index 07ca210ce..808e429a2 100755 --- a/machine/quanta/quanta_lb9/machine.make +++ b/machine/quanta/quanta_lb9/machine.make @@ -21,8 +21,6 @@ VENDOR_ID = 7244 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/quanta/quanta_ly2/machine.make b/machine/quanta/quanta_ly2/machine.make index 0abd2a3fe..70130c29b 100755 --- a/machine/quanta/quanta_ly2/machine.make +++ b/machine/quanta/quanta_ly2/machine.make @@ -21,8 +21,6 @@ VENDOR_ID = 7244 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/quanta/quanta_ly2r/machine.make b/machine/quanta/quanta_ly2r/machine.make index ff776b88b..05f4e4d48 100755 --- a/machine/quanta/quanta_ly2r/machine.make +++ b/machine/quanta/quanta_ly2r/machine.make @@ -21,8 +21,6 @@ VENDOR_ID = 7244 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 # Exclude ext3/4 file system tools EXT3_4_ENABLE = no diff --git a/machine/quanta/quanta_ly3/machine.make b/machine/quanta/quanta_ly3/machine.make index 61ac30d04..4023126ba 100755 --- a/machine/quanta/quanta_ly3/machine.make +++ b/machine/quanta/quanta_ly3/machine.make @@ -21,8 +21,6 @@ VENDOR_ID = 7244 LINUX_VERSION = 3.2 LINUX_MINOR_VERSION = 69 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/quanta/quanta_ly4r/machine.make b/machine/quanta/quanta_ly4r/machine.make index 5eef981ef..f8ca72843 100644 --- a/machine/quanta/quanta_ly4r/machine.make +++ b/machine/quanta/quanta_ly4r/machine.make @@ -55,8 +55,6 @@ PXE_EFI64_ENABLE = yes LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Use gcc-6.3.0 -GCC_VERSION = 6.3.0 # # Console parameters can be defined here (default values are in diff --git a/machine/senao/senao_snd12000/machine.make b/machine/senao/senao_snd12000/machine.make index 51754cdc1..47d75c110 100755 --- a/machine/senao/senao_snd12000/machine.make +++ b/machine/senao/senao_snd12000/machine.make @@ -40,10 +40,8 @@ RECOVERY_DEFAULT_ENTRY = embed LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -GCC_VERSION = 8.3.0 # Set uClibc-ng version -XTOOLS_LIBC_VERSION = 1.0.35 include $(MACHINEDIR)/rootconf/grub-machine.make diff --git a/machine/senao/senao_snd9000/machine.make b/machine/senao/senao_snd9000/machine.make index 51754cdc1..47d75c110 100755 --- a/machine/senao/senao_snd9000/machine.make +++ b/machine/senao/senao_snd9000/machine.make @@ -40,10 +40,8 @@ RECOVERY_DEFAULT_ENTRY = embed LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -GCC_VERSION = 8.3.0 # Set uClibc-ng version -XTOOLS_LIBC_VERSION = 1.0.35 include $(MACHINEDIR)/rootconf/grub-machine.make diff --git a/machine/ufispace/ufispace_dvtn_s9501series/machine.make b/machine/ufispace/ufispace_dvtn_s9501series/machine.make index 1ffe3bda0..742d198f1 100755 --- a/machine/ufispace/ufispace_dvtn_s9501series/machine.make +++ b/machine/ufispace/ufispace_dvtn_s9501series/machine.make @@ -53,8 +53,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_dvtn_s9502series/machine.make b/machine/ufispace/ufispace_dvtn_s9502series/machine.make index b181c958f..0b7ef016d 100755 --- a/machine/ufispace/ufispace_dvtn_s9502series/machine.make +++ b/machine/ufispace/ufispace_dvtn_s9502series/machine.make @@ -54,8 +54,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_dvtn_td3_x5_series/machine.make b/machine/ufispace/ufispace_dvtn_td3_x5_series/machine.make index 581dede6c..fdb818c97 100755 --- a/machine/ufispace/ufispace_dvtn_td3_x5_series/machine.make +++ b/machine/ufispace/ufispace_dvtn_td3_x5_series/machine.make @@ -53,8 +53,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_icl_emux_series/machine.make b/machine/ufispace/ufispace_icl_emux_series/machine.make index f7576f700..e758be725 100755 --- a/machine/ufispace/ufispace_icl_emux_series/machine.make +++ b/machine/ufispace/ufispace_icl_emux_series/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_icl_s9321series/machine.make b/machine/ufispace/ufispace_icl_s9321series/machine.make index 46a0782c5..dc327b1fa 100755 --- a/machine/ufispace/ufispace_icl_s9321series/machine.make +++ b/machine/ufispace/ufispace_icl_s9321series/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s6301_56st/machine.make b/machine/ufispace/ufispace_s6301_56st/machine.make index cc007eca9..fec00b6b8 100755 --- a/machine/ufispace/ufispace_s6301_56st/machine.make +++ b/machine/ufispace/ufispace_s6301_56st/machine.make @@ -53,8 +53,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s6301_56stp/machine.make b/machine/ufispace/ufispace_s6301_56stp/machine.make index cc007eca9..fec00b6b8 100755 --- a/machine/ufispace/ufispace_s6301_56stp/machine.make +++ b/machine/ufispace/ufispace_s6301_56stp/machine.make @@ -53,8 +53,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9110_32x/machine.make b/machine/ufispace/ufispace_s9110_32x/machine.make index 6fe34bded..9a172513a 100755 --- a/machine/ufispace/ufispace_s9110_32x/machine.make +++ b/machine/ufispace/ufispace_s9110_32x/machine.make @@ -54,8 +54,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9300_32d/machine.make b/machine/ufispace/ufispace_s9300_32d/machine.make index 2fa5c59f9..0a766a619 100755 --- a/machine/ufispace/ufispace_s9300_32d/machine.make +++ b/machine/ufispace/ufispace_s9300_32d/machine.make @@ -49,8 +49,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9310_32d/machine.make b/machine/ufispace/ufispace_s9310_32d/machine.make index 48c138cc2..9d22bcba9 100755 --- a/machine/ufispace/ufispace_s9310_32d/machine.make +++ b/machine/ufispace/ufispace_s9310_32d/machine.make @@ -49,8 +49,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9311_64d/machine.make b/machine/ufispace/ufispace_s9311_64d/machine.make index fd09891ca..27d1f592c 100755 --- a/machine/ufispace/ufispace_s9311_64d/machine.make +++ b/machine/ufispace/ufispace_s9311_64d/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9321_64e/machine.make b/machine/ufispace/ufispace_s9321_64e/machine.make index bc4e185c5..7399c46c9 100755 --- a/machine/ufispace/ufispace_s9321_64e/machine.make +++ b/machine/ufispace/ufispace_s9321_64e/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9500_22xst/machine.make b/machine/ufispace/ufispace_s9500_22xst/machine.make index b72c69d35..b8fbdaad8 100755 --- a/machine/ufispace/ufispace_s9500_22xst/machine.make +++ b/machine/ufispace/ufispace_s9500_22xst/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9500_30xs/machine.make b/machine/ufispace/ufispace_s9500_30xs/machine.make index e817c7026..254149fda 100755 --- a/machine/ufispace/ufispace_s9500_30xs/machine.make +++ b/machine/ufispace/ufispace_s9500_30xs/machine.make @@ -45,8 +45,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.1 LINUX_MINOR_VERSION = 38 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9501_16smt/machine.make b/machine/ufispace/ufispace_s9501_16smt/machine.make index 3cc915a44..a408cf5a5 100755 --- a/machine/ufispace/ufispace_s9501_16smt/machine.make +++ b/machine/ufispace/ufispace_s9501_16smt/machine.make @@ -51,8 +51,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9501_18smt/machine.make b/machine/ufispace/ufispace_s9501_18smt/machine.make index 3cc915a44..a408cf5a5 100755 --- a/machine/ufispace/ufispace_s9501_18smt/machine.make +++ b/machine/ufispace/ufispace_s9501_18smt/machine.make @@ -51,8 +51,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9501_28smt/machine.make b/machine/ufispace/ufispace_s9501_28smt/machine.make index 634db1d49..fce5f39a5 100755 --- a/machine/ufispace/ufispace_s9501_28smt/machine.make +++ b/machine/ufispace/ufispace_s9501_28smt/machine.make @@ -51,8 +51,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9510_28dc/machine.make b/machine/ufispace/ufispace_s9510_28dc/machine.make index acb0fe448..8add6691e 100755 --- a/machine/ufispace/ufispace_s9510_28dc/machine.make +++ b/machine/ufispace/ufispace_s9510_28dc/machine.make @@ -53,8 +53,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9510_30xc/machine.make b/machine/ufispace/ufispace_s9510_30xc/machine.make index 1ab60e9dd..7753f5494 100755 --- a/machine/ufispace/ufispace_s9510_30xc/machine.make +++ b/machine/ufispace/ufispace_s9510_30xc/machine.make @@ -53,8 +53,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9511_20ct/machine.make b/machine/ufispace/ufispace_s9511_20ct/machine.make index 0d2cd5e65..0a307ce04 100755 --- a/machine/ufispace/ufispace_s9511_20ct/machine.make +++ b/machine/ufispace/ufispace_s9511_20ct/machine.make @@ -54,8 +54,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9600_102xc/machine.make b/machine/ufispace/ufispace_s9600_102xc/machine.make index fb64a31f1..790342e5a 100755 --- a/machine/ufispace/ufispace_s9600_102xc/machine.make +++ b/machine/ufispace/ufispace_s9600_102xc/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9600_104bc/machine.make b/machine/ufispace/ufispace_s9600_104bc/machine.make index 71fd50697..2558bc422 100755 --- a/machine/ufispace/ufispace_s9600_104bc/machine.make +++ b/machine/ufispace/ufispace_s9600_104bc/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9600_28dx/machine.make b/machine/ufispace/ufispace_s9600_28dx/machine.make index bdaea215f..c45699dd6 100755 --- a/machine/ufispace/ufispace_s9600_28dx/machine.make +++ b/machine/ufispace/ufispace_s9600_28dx/machine.make @@ -49,8 +49,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9600_30dx/machine.make b/machine/ufispace/ufispace_s9600_30dx/machine.make index 18cf91099..ded8d6f80 100755 --- a/machine/ufispace/ufispace_s9600_30dx/machine.make +++ b/machine/ufispace/ufispace_s9600_30dx/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9600_32x/machine.make b/machine/ufispace/ufispace_s9600_32x/machine.make index b2aa0909c..3c346d215 100755 --- a/machine/ufispace/ufispace_s9600_32x/machine.make +++ b/machine/ufispace/ufispace_s9600_32x/machine.make @@ -49,8 +49,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9600_48x/machine.make b/machine/ufispace/ufispace_s9600_48x/machine.make index 7b3c2c1ff..3208f693d 100755 --- a/machine/ufispace/ufispace_s9600_48x/machine.make +++ b/machine/ufispace/ufispace_s9600_48x/machine.make @@ -49,8 +49,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9600_56dx/machine.make b/machine/ufispace/ufispace_s9600_56dx/machine.make index 15f7570d8..d778a9bf8 100755 --- a/machine/ufispace/ufispace_s9600_56dx/machine.make +++ b/machine/ufispace/ufispace_s9600_56dx/machine.make @@ -49,8 +49,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9600_64x/machine.make b/machine/ufispace/ufispace_s9600_64x/machine.make index 3b8ee21f6..41d545445 100755 --- a/machine/ufispace/ufispace_s9600_64x/machine.make +++ b/machine/ufispace/ufispace_s9600_64x/machine.make @@ -49,8 +49,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9600_72xc/machine.make b/machine/ufispace/ufispace_s9600_72xc/machine.make index f76e440d5..4b4eb0e65 100755 --- a/machine/ufispace/ufispace_s9600_72xc/machine.make +++ b/machine/ufispace/ufispace_s9600_72xc/machine.make @@ -49,8 +49,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9601_102xc/machine.make b/machine/ufispace/ufispace_s9601_102xc/machine.make index 81b2ca026..555be9598 100755 --- a/machine/ufispace/ufispace_s9601_102xc/machine.make +++ b/machine/ufispace/ufispace_s9601_102xc/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9601_104bc/machine.make b/machine/ufispace/ufispace_s9601_104bc/machine.make index b15355af4..29e5e6684 100755 --- a/machine/ufispace/ufispace_s9601_104bc/machine.make +++ b/machine/ufispace/ufispace_s9601_104bc/machine.make @@ -53,8 +53,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9610_36d/machine.make b/machine/ufispace/ufispace_s9610_36d/machine.make index cf936edaf..33f7a2ff2 100755 --- a/machine/ufispace/ufispace_s9610_36d/machine.make +++ b/machine/ufispace/ufispace_s9610_36d/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9610_46dx/machine.make b/machine/ufispace/ufispace_s9610_46dx/machine.make index eccb2c4cd..5921bdc59 100755 --- a/machine/ufispace/ufispace_s9610_46dx/machine.make +++ b/machine/ufispace/ufispace_s9610_46dx/machine.make @@ -51,8 +51,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9610_48dx/machine.make b/machine/ufispace/ufispace_s9610_48dx/machine.make index fcc7a81f3..3094c31c4 100755 --- a/machine/ufispace/ufispace_s9610_48dx/machine.make +++ b/machine/ufispace/ufispace_s9610_48dx/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9700_23d/machine.make b/machine/ufispace/ufispace_s9700_23d/machine.make index 04860620d..8b8e4fa0a 100755 --- a/machine/ufispace/ufispace_s9700_23d/machine.make +++ b/machine/ufispace/ufispace_s9700_23d/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9700_53dx/machine.make b/machine/ufispace/ufispace_s9700_53dx/machine.make index c3700d5ab..6df9ad42e 100755 --- a/machine/ufispace/ufispace_s9700_53dx/machine.make +++ b/machine/ufispace/ufispace_s9700_53dx/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9701_78dc/machine.make b/machine/ufispace/ufispace_s9701_78dc/machine.make index 7a041927e..724178a90 100755 --- a/machine/ufispace/ufispace_s9701_78dc/machine.make +++ b/machine/ufispace/ufispace_s9701_78dc/machine.make @@ -49,8 +49,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9701_82dc/machine.make b/machine/ufispace/ufispace_s9701_82dc/machine.make index 7fed22075..ce253db5d 100755 --- a/machine/ufispace/ufispace_s9701_82dc/machine.make +++ b/machine/ufispace/ufispace_s9701_82dc/machine.make @@ -49,8 +49,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9705_48d/machine.make b/machine/ufispace/ufispace_s9705_48d/machine.make index 0ed43e038..bfe997a01 100755 --- a/machine/ufispace/ufispace_s9705_48d/machine.make +++ b/machine/ufispace/ufispace_s9705_48d/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 4.9 LINUX_MINOR_VERSION = 95 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9710_76d/machine.make b/machine/ufispace/ufispace_s9710_76d/machine.make index 66d038ddd..0d12fb75e 100755 --- a/machine/ufispace/ufispace_s9710_76d/machine.make +++ b/machine/ufispace/ufispace_s9710_76d/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9720_56ed/machine.make b/machine/ufispace/ufispace_s9720_56ed/machine.make index 179347dfc..057022372 100755 --- a/machine/ufispace/ufispace_s9720_56ed/machine.make +++ b/machine/ufispace/ufispace_s9720_56ed/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_s9725_64e/machine.make b/machine/ufispace/ufispace_s9725_64e/machine.make index 557eff997..8f35f5bb4 100755 --- a/machine/ufispace/ufispace_s9725_64e/machine.make +++ b/machine/ufispace/ufispace_s9725_64e/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_skl_ncplite_series/machine.make b/machine/ufispace/ufispace_skl_ncplite_series/machine.make index 0552dadec..fcde23bfa 100755 --- a/machine/ufispace/ufispace_skl_ncplite_series/machine.make +++ b/machine/ufispace/ufispace_skl_ncplite_series/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_skl_nighthawk_series/machine.make b/machine/ufispace/ufispace_skl_nighthawk_series/machine.make index bb21f6e5b..049dc5dd3 100755 --- a/machine/ufispace/ufispace_skl_nighthawk_series/machine.make +++ b/machine/ufispace/ufispace_skl_nighthawk_series/machine.make @@ -52,8 +52,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/ufispace/ufispace_skl_s9300series/machine.make b/machine/ufispace/ufispace_skl_s9300series/machine.make index fa8d31a29..0a1abf904 100755 --- a/machine/ufispace/ufispace_skl_s9300series/machine.make +++ b/machine/ufispace/ufispace_skl_s9300series/machine.make @@ -54,8 +54,6 @@ CONSOLE_DEV = 0 LINUX_VERSION = 5.4 LINUX_MINOR_VERSION = 86 -# Older GCC required for older 3.2 kernel -GCC_VERSION = 8.3.0 #------------------------------------------------------------------------------- # diff --git a/machine/wiwynn/wiwynn_andromeda/machine.make b/machine/wiwynn/wiwynn_andromeda/machine.make index 6173ed502..b9548c79e 100644 --- a/machine/wiwynn/wiwynn_andromeda/machine.make +++ b/machine/wiwynn/wiwynn_andromeda/machine.make @@ -40,8 +40,6 @@ I2CTOOLS_SYSEEPROM = no LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #UEFI_ENABLE = yes IPMITOOL_ENABLE = yes diff --git a/machine/wnc/wnc_osw1800/machine.make b/machine/wnc/wnc_osw1800/machine.make index c8bdd6f5e..b8ced5c7c 100644 --- a/machine/wnc/wnc_osw1800/machine.make +++ b/machine/wnc/wnc_osw1800/machine.make @@ -36,8 +36,6 @@ I2CTOOLS_ENABLE = yes # Set the desired kernel version. LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 UEFI_ENABLE = yes PXE_EFI64_ENABLE = yes diff --git a/machine/wnc/wnc_rseb_w1_32/machine.make b/machine/wnc/wnc_rseb_w1_32/machine.make index a1e99d545..559470575 100644 --- a/machine/wnc/wnc_rseb_w1_32/machine.make +++ b/machine/wnc/wnc_rseb_w1_32/machine.make @@ -38,8 +38,6 @@ LINUX_MINOR_VERSION = 95 EXTRA_CMDLINE_LINUX = acpi_osi=Linux -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- # # Local Variables: diff --git a/machine/wnc/wnc_ssb1_w1/machine.make b/machine/wnc/wnc_ssb1_w1/machine.make index be41715ee..ce090c811 100644 --- a/machine/wnc/wnc_ssb1_w1/machine.make +++ b/machine/wnc/wnc_ssb1_w1/machine.make @@ -40,8 +40,6 @@ I2CTOOLS_SYSEEPROM = no LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #UEFI_ENABLE = yes IPMITOOL_ENABLE = yes diff --git a/machine/wnc/wnc_sst1_n1/machine.make b/machine/wnc/wnc_sst1_n1/machine.make index 459301a5e..cd035f11f 100644 --- a/machine/wnc/wnc_sst1_n1/machine.make +++ b/machine/wnc/wnc_sst1_n1/machine.make @@ -40,8 +40,6 @@ I2CTOOLS_SYSEEPROM = no LINUX_VERSION = 3.14 LINUX_MINOR_VERSION = 27 -# Older GCC required for older 3.14.27 kernel -GCC_VERSION = 4.9.2 #UEFI_ENABLE = yes IPMITOOL_ENABLE = yes diff --git a/patches/busybox/dhcp-additional-options.patch b/patches/busybox/dhcp-additional-options.patch deleted file mode 100644 index 462660d5a..000000000 --- a/patches/busybox/dhcp-additional-options.patch +++ /dev/null @@ -1,131 +0,0 @@ -dhcp additional options patch - -Copyright (C) 2013 Curt Brune -Copyright (C) 2014 david_yang - -SPDX-License-Identifier: GPL-2.0 - -Enable the send/receive of additional DHCP options: - - DHCP_LOG_SERVER - DHCP_WWW_SERVER - DHCP_DEFAULT_URL - -diff --git a/networking/udhcp/common.c b/networking/udhcp/common.c -index 0cf4dab63c55..ad4522deb0b0 100644 ---- a/networking/udhcp/common.c -+++ b/networking/udhcp/common.c -@@ -26,7 +26,7 @@ const struct dhcp_optflag dhcp_optflags[] = { - // { OPTION_IP | OPTION_LIST , 0x04 }, /* DHCP_TIME_SERVER */ - // { OPTION_IP | OPTION_LIST , 0x05 }, /* DHCP_NAME_SERVER */ - { OPTION_IP | OPTION_LIST | OPTION_REQ, 0x06 }, /* DHCP_DNS_SERVER */ --// { OPTION_IP | OPTION_LIST , 0x07 }, /* DHCP_LOG_SERVER */ -+ { OPTION_IP | OPTION_LIST , 0x07 }, /* DHCP_LOG_SERVER */ - // { OPTION_IP | OPTION_LIST , 0x08 }, /* DHCP_COOKIE_SERVER */ - { OPTION_IP | OPTION_LIST , 0x09 }, /* DHCP_LPR_SERVER */ - { OPTION_STRING_HOST | OPTION_REQ, 0x0c }, /* DHCP_HOST_NAME */ -@@ -44,6 +44,7 @@ const struct dhcp_optflag dhcp_optflags[] = { - { OPTION_STRING_HOST , 0x28 }, /* DHCP_NIS_DOMAIN */ - { OPTION_IP | OPTION_LIST , 0x29 }, /* DHCP_NIS_SERVER */ - { OPTION_IP | OPTION_LIST | OPTION_REQ, 0x2a }, /* DHCP_NTP_SERVER */ -+ { OPTION_BIN , 0x2b }, /* DHCP_VENDOR_OPTS */ - { OPTION_IP | OPTION_LIST , 0x2c }, /* DHCP_WINS_SERVER */ - { OPTION_U32 , 0x33 }, /* DHCP_LEASE_TIME */ - { OPTION_IP , 0x36 }, /* DHCP_SERVER_ID */ -@@ -51,13 +52,16 @@ const struct dhcp_optflag dhcp_optflags[] = { - //TODO: must be combined with 'sname' and 'file' handling: - { OPTION_STRING_HOST , 0x42 }, /* DHCP_TFTP_SERVER_NAME */ - { OPTION_STRING , 0x43 }, /* DHCP_BOOT_FILE */ -+ { OPTION_IP | OPTION_LIST , 0x48 }, /* DHCP_WWW_SERVER */ - //TODO: not a string, but a set of LASCII strings: - // { OPTION_STRING , 0x4D }, /* DHCP_USER_CLASS */ -+ { OPTION_STRING , 0x72 }, /* DHCP_DEFAULT_URL */ - #if ENABLE_FEATURE_UDHCP_RFC3397 - { OPTION_DNS_STRING | OPTION_LIST , 0x77 }, /* DHCP_DOMAIN_SEARCH */ - { OPTION_SIP_SERVERS , 0x78 }, /* DHCP_SIP_SERVERS */ - #endif - { OPTION_STATIC_ROUTES | OPTION_LIST , 0x79 }, /* DHCP_STATIC_ROUTES */ -+ { OPTION_BIN , 0x7d }, /* DHCP_VIVSO_OPTS */ - #if ENABLE_FEATURE_UDHCP_8021Q - { OPTION_U16 , 0x84 }, /* DHCP_VLAN_ID */ - { OPTION_U8 , 0x85 }, /* DHCP_VLAN_PRIORITY */ -@@ -65,6 +69,7 @@ const struct dhcp_optflag dhcp_optflags[] = { - { OPTION_STRING , 0xd1 }, /* DHCP_PXE_CONF_FILE */ - { OPTION_STRING , 0xd2 }, /* DHCP_PXE_PATH_PREFIX */ - { OPTION_6RD , 0xd4 }, /* DHCP_6RD */ -+ { OPTION_IP , 0x96 }, /* DHCP_TFTP_SERVER_IP */ - { OPTION_STATIC_ROUTES | OPTION_LIST , 0xf9 }, /* DHCP_MS_STATIC_ROUTES */ - { OPTION_STRING , 0xfc }, /* DHCP_WPAD */ - -@@ -97,7 +102,7 @@ const char dhcp_option_strings[] ALIGN1 = - // "timesrv" "\0" /* DHCP_TIME_SERVER */ - // "namesrv" "\0" /* DHCP_NAME_SERVER */ - "dns" "\0" /* DHCP_DNS_SERVER */ --// "logsrv" "\0" /* DHCP_LOG_SERVER */ -+ "logsrv" "\0" /* DHCP_LOG_SERVER */ - // "cookiesrv" "\0" /* DHCP_COOKIE_SERVER */ - "lprsrv" "\0" /* DHCP_LPR_SERVER */ - "hostname" "\0" /* DHCP_HOST_NAME */ -@@ -112,13 +117,16 @@ const char dhcp_option_strings[] ALIGN1 = - "nisdomain" "\0" /* DHCP_NIS_DOMAIN */ - "nissrv" "\0" /* DHCP_NIS_SERVER */ - "ntpsrv" "\0" /* DHCP_NTP_SERVER */ -+ "vendoropts" "\0" /* DHCP_VENDOR_OPTS */ - "wins" "\0" /* DHCP_WINS_SERVER */ - "lease" "\0" /* DHCP_LEASE_TIME */ - "serverid" "\0" /* DHCP_SERVER_ID */ - "message" "\0" /* DHCP_ERR_MESSAGE */ - "tftp" "\0" /* DHCP_TFTP_SERVER_NAME */ - "bootfile" "\0" /* DHCP_BOOT_FILE */ -+ "wwwsrv" "\0" /* DHCP_WWW_SERVER */ - // "userclass" "\0" /* DHCP_USER_CLASS */ -+ "url" "\0" /* DHCP_DEFAULT_URL */ - #if ENABLE_FEATURE_UDHCP_RFC3397 - "search" "\0" /* DHCP_DOMAIN_SEARCH */ - // doesn't work in udhcpd.conf since OPTION_SIP_SERVERS -@@ -126,6 +134,7 @@ const char dhcp_option_strings[] ALIGN1 = - "sipsrv" "\0" /* DHCP_SIP_SERVERS */ - #endif - "staticroutes" "\0"/* DHCP_STATIC_ROUTES */ -+ "vivso" "\0" /* DHCP_VIVSO_OPTS */ - #if ENABLE_FEATURE_UDHCP_8021Q - "vlanid" "\0" /* DHCP_VLAN_ID */ - "vlanpriority" "\0"/* DHCP_VLAN_PRIORITY */ -@@ -133,6 +142,7 @@ const char dhcp_option_strings[] ALIGN1 = - "pxeconffile" "\0" /* DHCP_PXE_CONF_FILE */ - "pxepathprefix" "\0" /* DHCP_PXE_PATH_PREFIX */ - "ip6rd" "\0" /* DHCP_6RD */ -+ "tftpsiaddr" "\0" /* DHCP_TFTP_SERVER_IP */ - "msstaticroutes""\0"/* DHCP_MS_STATIC_ROUTES */ - "wpad" "\0" /* DHCP_WPAD */ - ; -@@ -149,6 +159,7 @@ const uint8_t dhcp_option_lengths[] ALIGN1 = { - [OPTION_IP] = 4, - [OPTION_IP_PAIR] = 8, - // [OPTION_BOOLEAN] = 1, -+ [OPTION_BIN] = 1, /* ignored by udhcp_str2optset */ - [OPTION_STRING] = 1, /* ignored by udhcp_str2optset */ - [OPTION_STRING_HOST] = 1, /* ignored by udhcp_str2optset */ - #if ENABLE_FEATURE_UDHCP_RFC3397 -diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c -index fc7b6216d777..838c8093e969 100644 ---- a/networking/udhcp/dhcpc.c -+++ b/networking/udhcp/dhcpc.c -@@ -114,6 +114,7 @@ static const uint8_t len_of_option_as_string[] ALIGN1 = { - [OPTION_IP_PAIR ] = sizeof("255.255.255.255 ") * 2, - [OPTION_STATIC_ROUTES ] = sizeof("255.255.255.255/32 255.255.255.255 "), - [OPTION_6RD ] = sizeof("132 128 ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff 255.255.255.255 "), -+ [OPTION_BIN ] = 2, - [OPTION_STRING ] = 1, - [OPTION_STRING_HOST ] = 1, - #if ENABLE_FEATURE_UDHCP_RFC3397 -@@ -256,6 +257,9 @@ static NOINLINE char *xmalloc_optname_optval(uint8_t *option, const struct dhcp_ - dest += sprintf(dest, type == OPTION_U32 ? "%lu" : "%ld", (unsigned long) ntohl(val_u32)); - break; - } -+ case OPTION_BIN: -+ *bin2hex(dest, (void*) option, len) = '\0'; -+ return ret; - /* Note: options which use 'return' instead of 'break' - * (for example, OPTION_STRING) skip the code which handles - * the case of list of options. diff --git a/patches/busybox/feature-flash-erase-command.patch b/patches/busybox/feature-flash-erase-command.patch index 8e3204478..eaff49981 100644 --- a/patches/busybox/feature-flash-erase-command.patch +++ b/patches/busybox/feature-flash-erase-command.patch @@ -9,129 +9,83 @@ Add flash_erase command. Renamed flash_eraseall.c to flash_erase.c Removed flash_eraseall command as its functionality is covered with "flash_erase /dev/mtd2 0 0". -diff --git a/include/applets.src.h b/include/applets.src.h -index 267a8f3032c8..b9df5a1b3449 100644 ---- a/include/applets.src.h -+++ b/include/applets.src.h -@@ -135,7 +135,7 @@ IF_FDISK(APPLET(fdisk, BB_DIR_SBIN, BB_SUID_DROP)) - IF_FGCONSOLE(APPLET(fgconsole, BB_DIR_USR_BIN, BB_SUID_DROP)) - /* Benefits from suid root: better access to /dev/BLOCKDEVs: */ - IF_FINDFS(APPLET(findfs, BB_DIR_SBIN, BB_SUID_MAYBE)) --IF_FLASH_ERASEALL(APPLET(flash_eraseall, BB_DIR_USR_SBIN, BB_SUID_DROP)) -+IF_FLASH_ERASE(APPLET(flash_erase, BB_DIR_USR_SBIN, BB_SUID_DROP)) - IF_FLASH_LOCK(APPLET_ODDNAME(flash_lock, flash_lock_unlock, BB_DIR_USR_SBIN, BB_SUID_DROP, flash_lock)) - IF_FLASH_UNLOCK(APPLET_ODDNAME(flash_unlock, flash_lock_unlock, BB_DIR_USR_SBIN, BB_SUID_DROP, flash_unlock)) - IF_FLASHCP(APPLET(flashcp, BB_DIR_USR_SBIN, BB_SUID_DROP)) -diff --git a/miscutils/Config.src b/miscutils/Config.src -index e5bc7013bdf8..4d6425f7652f 100644 ---- a/miscutils/Config.src -+++ b/miscutils/Config.src -@@ -279,12 +279,13 @@ config FLASH_UNLOCK - The flash_unlock binary from mtd-utils as of git head 5ec0c10d0. This - utility unlocks part or all of the flash device. - --config FLASH_ERASEALL -- bool "flash_eraseall" -+config FLASH_ERASE -+ bool "flash_erase" - default n # doesn't build on Ubuntu 8.04 - help -- The flash_eraseall binary from mtd-utils as of git head c4c6a59eb. -- This utility is used to erase the whole MTD device. -+ The flash_erase binary based on mtd-utils as of git head -+ c4c6a59eb. This utility is used to erase specific erase -+ blocks within a MTD device. - - config IONICE - bool "ionice" -diff --git a/miscutils/Kbuild.src b/miscutils/Kbuild.src -index 25382f57efc4..917781898d36 100644 ---- a/miscutils/Kbuild.src -+++ b/miscutils/Kbuild.src -@@ -19,7 +19,7 @@ lib-$(CONFIG_DEVMEM) += devmem.o - lib-$(CONFIG_EJECT) += eject.o - lib-$(CONFIG_FBSPLASH) += fbsplash.o - lib-$(CONFIG_FLASHCP) += flashcp.o --lib-$(CONFIG_FLASH_ERASEALL) += flash_eraseall.o -+lib-$(CONFIG_FLASH_ERASE) += flash_erase.o - lib-$(CONFIG_FLASH_LOCK) += flash_lock_unlock.o - lib-$(CONFIG_FLASH_UNLOCK) += flash_lock_unlock.o - lib-$(CONFIG_IONICE) += ionice.o -diff --git a/miscutils/flash_erase.c b/miscutils/flash_erase.c -new file mode 100644 -index 000000000000..aec6d3c45740 ---- /dev/null +diff --git a/miscutils/flash_eraseall.c b/miscutils/flash_erase.c +similarity index 63% +rename from miscutils/flash_eraseall.c +rename to miscutils/flash_erase.c +index c76d9a6..7030ef8 100644 +--- a/miscutils/flash_eraseall.c +++ b/miscutils/flash_erase.c -@@ -0,0 +1,253 @@ -+/* vi: set sw=4 ts=4: */ +@@ -1,6 +1,5 @@ + /* vi: set sw=4 ts=4: */ +-/* +- * eraseall.c -- erase the whole of a MTD device +/* eraseall.c -- erase the whole of a MTD device -+ * -+ * Ported to busybox from mtd-utils. -+ * -+ * Copyright (C) 2000 Arcom Control System Ltd -+ * -+ * Renamed to flash_eraseall.c -+ * -+ * Licensed under GPLv2 or later, see file LICENSE in this source tree. + * + * Ported to busybox from mtd-utils. + * +@@ -9,26 +8,25 @@ + * Renamed to flash_eraseall.c + * + * Licensed under GPLv2 or later, see file LICENSE in this source tree. + * + * 4/2013 -- Curt Brune + * Renamed to flash_erase.c + * Added flash_erase command. + * Removed flash_eraseall command. + * -+ */ -+ -+//usage:#define flash_eraseall_trivial_usage -+//usage: "[-jNq] MTD_DEVICE" -+//usage:#define flash_eraseall_full_usage "\n\n" -+//usage: "Erase an MTD device\n" -+//usage: "\n -j Format the device for jffs2" -+//usage: "\n -N Don't skip bad blocks" -+//usage: "\n -q Don't display progress messages" -+ -+#include "libbb.h" -+#include -+#include -+ -+#define OPTION_J (1 << 0) -+#define OPTION_N (1 << 1) -+#define OPTION_Q (1 << 2) -+#define IS_NAND (1 << 3) -+ -+/* mtd/jffs2-user.h used to have this atrocity: -+extern int target_endian; -+ -+#define t16(x) ({ __u16 __b = (x); (target_endian==__BYTE_ORDER)?__b:bswap_16(__b); }) -+#define t32(x) ({ __u32 __b = (x); (target_endian==__BYTE_ORDER)?__b:bswap_32(__b); }) -+ -+#define cpu_to_je16(x) ((jint16_t){t16(x)}) -+#define cpu_to_je32(x) ((jint32_t){t32(x)}) -+#define cpu_to_jemode(x) ((jmode_t){t32(x)}) -+ -+#define je16_to_cpu(x) (t16((x).v16)) -+#define je32_to_cpu(x) (t32((x).v32)) -+#define jemode_to_cpu(x) (t32((x).m)) -+ -+but mtd/jffs2-user.h is gone now (at least 2.6.31.6 does not have it anymore) -+*/ -+ -+/* We always use native endianness */ -+#undef cpu_to_je16 -+#undef cpu_to_je32 -+#define cpu_to_je16(v) ((jint16_t){(v)}) -+#define cpu_to_je32(v) ((jint32_t){(v)}) -+ + */ +-//config:config FLASH_ERASEALL +-//config: bool "flash_eraseall (5.9 kb)" ++ ++//config:config FLASH_ERASE ++//config: bool "flash_erase" + //config: default n # doesn't build on Ubuntu 8.04 + //config: help +-//config: The flash_eraseall binary from mtd-utils as of git head c4c6a59eb. +-//config: This utility is used to erase the whole MTD device. ++//config: The flash_erase binary based on mtd-utils as of git head ++//config: c4c6a59eb. This utility is used to erase specific erase ++//config: blocks within a MTD device. + +-//applet:IF_FLASH_ERASEALL(APPLET(flash_eraseall, BB_DIR_USR_SBIN, BB_SUID_DROP)) +-/* not NOEXEC: if flash operation stalls, use less memory in "hung" process */ ++//applet:IF_FLASH_ERASE(APPLET(flash_erase, BB_DIR_USR_SBIN, BB_SUID_DROP)) + +-//kbuild:lib-$(CONFIG_FLASH_ERASEALL) += flash_eraseall.o +- +-//usage:#define flash_eraseall_trivial_usage +-//usage: "[-jNq] MTD_DEVICE" +-//usage:#define flash_eraseall_full_usage "\n\n" +-//usage: "Erase an MTD device\n" +-//usage: "\n -j Format the device for jffs2" +-//usage: "\n -N Don't skip bad blocks" +-//usage: "\n -q Don't display progress messages" ++//kbuild:lib-$(CONFIG_FLASH_ERASE) += flash_erase.o + + #include "libbb.h" + #include +@@ -62,30 +60,51 @@ but mtd/jffs2-user.h is gone now (at least 2.6.31.6 does not have it anymore) + #define cpu_to_je16(v) ((jint16_t){(v)}) + #define cpu_to_je32(v) ((jint32_t){(v)}) + +-static void show_progress(mtd_info_t *meminfo, erase_info_t *erase) +//static void show_progress(mtd_info_t *meminfo, erase_info_t *erase) +static void show_progress(unsigned erasesize, unsigned current, unsigned start, unsigned total) -+{ -+ printf("\rErasing %u Kibyte @ %x - %2u%% complete.", + { + printf("\rErasing %u Kibyte @ %x - %2u%% complete.", +- (unsigned)meminfo->erasesize / 1024, +- erase->start, +- (unsigned) ((unsigned long long) erase->start * 100 / meminfo->size) + erasesize / 1024, + current, + (unsigned) (((unsigned long long)(current - start) * 100) / total) -+ ); -+ fflush_all(); -+} -+ + ); + fflush_all(); + } + +-int flash_eraseall_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; +-int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) +//usage:#define flash_erase_trivial_usage +//usage: "[-jq] MTD_DEVICE START_OFFSET BLOCK_COUNT" +//usage:#define flash_erase_full_usage "\n\n" @@ -142,19 +96,21 @@ index 000000000000..aec6d3c45740 + +int flash_erase_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; +int flash_erase_main(int argc, char **argv) -+{ -+ struct jffs2_unknown_node cleanmarker; -+ mtd_info_t meminfo; -+ int fd, clmpos, clmlen; -+ erase_info_t erase; -+ struct stat st; + { + struct jffs2_unknown_node cleanmarker; + mtd_info_t meminfo; + int fd, clmpos, clmlen; + erase_info_t erase; + struct stat st; +- unsigned int flags; +- char *mtd_name; + unsigned n_erase_bytes; + unsigned flags; + char* mtd_name; + unsigned start, n_blocks; -+ -+ opt_complementary = "=3"; -+ flags = getopt32(argv, "jNq"); + +- flags = getopt32(argv, "^" "jNq" "\0" "=1"); ++ flags = getopt32(argv, "^" "jNq" "\0" "=3"); + + argc -= optind; + argv += optind; @@ -166,17 +122,15 @@ index 000000000000..aec6d3c45740 + + /* n_blocks parameter */ + n_blocks = xstrtoul(argv[2], 0); -+ -+ fd = xopen(mtd_name, O_RDWR); -+ fstat(fd, &st); -+ if (!S_ISCHR(st.st_mode)) -+ bb_error_msg_and_die("%s: not a char device", mtd_name); -+ -+ xioctl(fd, MEMGETINFO, &meminfo); -+ erase.length = meminfo.erasesize; -+ if (meminfo.type == MTD_NANDFLASH) -+ flags |= IS_NAND; -+ + +- mtd_name = argv[optind]; + fd = xopen(mtd_name, O_RDWR); + fstat(fd, &st); + if (!S_ISCHR(st.st_mode)) +@@ -96,12 +115,30 @@ int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) + if (meminfo.type == MTD_NANDFLASH) + flags |= IS_NAND; + + if (n_blocks == 0) { + /* erase entire device */ + n_erase_bytes = meminfo.size; @@ -195,337 +149,64 @@ index 000000000000..aec6d3c45740 + if ((start + n_erase_bytes) > meminfo.size) + bb_error_msg_and_die("%s: erase region is outside of device", mtd_name); + -+ clmpos = 0; -+ clmlen = 8; -+ if (flags & OPTION_J) { -+ uint32_t *crc32_table; -+ + clmpos = 0; + clmlen = 8; + if (flags & OPTION_J) { + uint32_t *crc32_table; + +- crc32_table = crc32_new_table_le(); + crc32_table = crc32_filltable(NULL, 0); -+ -+ cleanmarker.magic = cpu_to_je16(JFFS2_MAGIC_BITMASK); -+ cleanmarker.nodetype = cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER); -+ if (!(flags & IS_NAND)) -+ cleanmarker.totlen = cpu_to_je32(sizeof(struct jffs2_unknown_node)); -+ else { -+ struct nand_oobinfo oobinfo; -+ -+ xioctl(fd, MEMGETOOBSEL, &oobinfo); -+ -+ /* Check for autoplacement */ -+ if (oobinfo.useecc == MTD_NANDECC_AUTOPLACE) { -+ /* Get the position of the free bytes */ -+ clmpos = oobinfo.oobfree[0][0]; -+ clmlen = oobinfo.oobfree[0][1]; -+ if (clmlen > 8) -+ clmlen = 8; -+ if (clmlen == 0) + + cleanmarker.magic = cpu_to_je16(JFFS2_MAGIC_BITMASK); + cleanmarker.nodetype = cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER); +@@ -120,7 +157,7 @@ int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) + if (clmlen > 8) + clmlen = 8; + if (clmlen == 0) +- bb_simple_error_msg_and_die("autoplacement selected and no empty space in oob"); + bb_error_msg_and_die("autoplacement selected and no empty space in oob"); -+ } else { -+ /* Legacy mode */ -+ switch (meminfo.oobsize) { -+ case 8: -+ clmpos = 6; -+ clmlen = 2; -+ break; -+ case 16: -+ clmpos = 8; -+ /*clmlen = 8;*/ -+ break; -+ case 64: -+ clmpos = 16; -+ /*clmlen = 8;*/ -+ break; -+ } -+ } -+ cleanmarker.totlen = cpu_to_je32(8); -+ } -+ -+ cleanmarker.hdr_crc = cpu_to_je32( -+ crc32_block_endian0(0, &cleanmarker, sizeof(struct jffs2_unknown_node) - 4, crc32_table) -+ ); -+ } -+ -+ /* Don't want to destroy progress indicator by bb_error_msg's */ -+ applet_name = xasprintf("\n%s: %s", applet_name, mtd_name); -+ + } else { + /* Legacy mode */ + switch (meminfo.oobsize) { +@@ -149,7 +186,7 @@ int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) + /* Don't want to destroy progress indicator by bb_error_msg's */ + applet_name = xasprintf("\n%s: %s", applet_name, mtd_name); + +- for (erase.start = 0; erase.start < meminfo.size; + for (erase.start = start; erase.start < (start + n_erase_bytes); -+ erase.start += meminfo.erasesize) { -+ if (!(flags & OPTION_N)) { -+ int ret; -+ loff_t offset = erase.start; -+ -+ ret = ioctl(fd, MEMGETBADBLOCK, &offset); -+ if (ret > 0) { -+ if (!(flags & OPTION_Q)) -+ printf("\nSkipping bad block at 0x%08x\n", erase.start); -+ continue; -+ } -+ if (ret < 0) { -+ /* Black block table is not available on certain flash -+ * types e.g. NOR -+ */ -+ if (errno == EOPNOTSUPP) { -+ flags |= OPTION_N; -+ if (flags & IS_NAND) + erase.start += meminfo.erasesize) { + if (!(flags & OPTION_N)) { + int ret; +@@ -168,15 +205,15 @@ int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) + if (errno == EOPNOTSUPP) { + flags |= OPTION_N; + if (flags & IS_NAND) +- bb_simple_error_msg_and_die("bad block check not available"); + bb_error_msg_and_die("bad block check not available"); -+ } else { + } else { +- bb_simple_perror_msg_and_die("MEMGETBADBLOCK error"); + bb_perror_msg_and_die("MEMGETBADBLOCK error"); -+ } -+ } -+ } -+ -+ if (!(flags & OPTION_Q)) + } + } + } + + if (!(flags & OPTION_Q)) +- show_progress(&meminfo, &erase); + show_progress(meminfo.erasesize, erase.start, start, n_erase_bytes); -+ -+ xioctl(fd, MEMERASE, &erase); -+ -+ /* format for JFFS2 ? */ -+ if (!(flags & OPTION_J)) -+ continue; -+ -+ /* write cleanmarker */ -+ if (flags & IS_NAND) { -+ struct mtd_oob_buf oob; -+ -+ oob.ptr = (unsigned char *) &cleanmarker; -+ oob.start = erase.start + clmpos; -+ oob.length = clmlen; -+ xioctl(fd, MEMWRITEOOB, &oob); -+ } else { -+ xlseek(fd, erase.start, SEEK_SET); -+ /* if (lseek(fd, erase.start, SEEK_SET) < 0) { -+ bb_perror_msg("MTD %s failure", "seek"); -+ continue; -+ } */ -+ xwrite(fd, &cleanmarker, sizeof(cleanmarker)); -+ /* if (write(fd, &cleanmarker, sizeof(cleanmarker)) != sizeof(cleanmarker)) { -+ bb_perror_msg("MTD %s failure", "write"); -+ continue; -+ } */ -+ } -+ if (!(flags & OPTION_Q)) -+ printf(" Cleanmarker written at %x.", erase.start); -+ } -+ if (!(flags & OPTION_Q)) { + + xioctl(fd, MEMERASE, &erase); + +@@ -208,11 +245,12 @@ int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) + printf(" Cleanmarker written at %x.", erase.start); + } + if (!(flags & OPTION_Q)) { +- show_progress(&meminfo, &erase); + show_progress(meminfo.erasesize, erase.start, start, n_erase_bytes); -+ bb_putchar('\n'); -+ } -+ -+ if (ENABLE_FEATURE_CLEAN_UP) -+ close(fd); -+ return EXIT_SUCCESS; + bb_putchar('\n'); + } + + if (ENABLE_FEATURE_CLEAN_UP) + close(fd); + return EXIT_SUCCESS; + -+} -diff --git a/miscutils/flash_eraseall.c b/miscutils/flash_eraseall.c -deleted file mode 100644 -index d95d214d914c..000000000000 ---- a/miscutils/flash_eraseall.c -+++ /dev/null -@@ -1,207 +0,0 @@ --/* vi: set sw=4 ts=4: */ --/* eraseall.c -- erase the whole of a MTD device -- * -- * Ported to busybox from mtd-utils. -- * -- * Copyright (C) 2000 Arcom Control System Ltd -- * -- * Renamed to flash_eraseall.c -- * -- * Licensed under GPLv2 or later, see file LICENSE in this source tree. -- */ -- --//usage:#define flash_eraseall_trivial_usage --//usage: "[-jNq] MTD_DEVICE" --//usage:#define flash_eraseall_full_usage "\n\n" --//usage: "Erase an MTD device\n" --//usage: "\n -j Format the device for jffs2" --//usage: "\n -N Don't skip bad blocks" --//usage: "\n -q Don't display progress messages" -- --#include "libbb.h" --#include --#include -- --#define OPTION_J (1 << 0) --#define OPTION_N (1 << 1) --#define OPTION_Q (1 << 2) --#define IS_NAND (1 << 3) -- --/* mtd/jffs2-user.h used to have this atrocity: --extern int target_endian; -- --#define t16(x) ({ __u16 __b = (x); (target_endian==__BYTE_ORDER)?__b:bswap_16(__b); }) --#define t32(x) ({ __u32 __b = (x); (target_endian==__BYTE_ORDER)?__b:bswap_32(__b); }) -- --#define cpu_to_je16(x) ((jint16_t){t16(x)}) --#define cpu_to_je32(x) ((jint32_t){t32(x)}) --#define cpu_to_jemode(x) ((jmode_t){t32(x)}) -- --#define je16_to_cpu(x) (t16((x).v16)) --#define je32_to_cpu(x) (t32((x).v32)) --#define jemode_to_cpu(x) (t32((x).m)) -- --but mtd/jffs2-user.h is gone now (at least 2.6.31.6 does not have it anymore) --*/ -- --/* We always use native endianness */ --#undef cpu_to_je16 --#undef cpu_to_je32 --#define cpu_to_je16(v) ((jint16_t){(v)}) --#define cpu_to_je32(v) ((jint32_t){(v)}) -- --static void show_progress(mtd_info_t *meminfo, erase_info_t *erase) --{ -- printf("\rErasing %u Kibyte @ %x - %2u%% complete.", -- (unsigned)meminfo->erasesize / 1024, -- erase->start, -- (unsigned) ((unsigned long long) erase->start * 100 / meminfo->size) -- ); -- fflush_all(); --} -- --int flash_eraseall_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE; --int flash_eraseall_main(int argc UNUSED_PARAM, char **argv) --{ -- struct jffs2_unknown_node cleanmarker; -- mtd_info_t meminfo; -- int fd, clmpos, clmlen; -- erase_info_t erase; -- struct stat st; -- unsigned int flags; -- char *mtd_name; -- -- opt_complementary = "=1"; -- flags = getopt32(argv, "jNq"); -- -- mtd_name = argv[optind]; -- fd = xopen(mtd_name, O_RDWR); -- fstat(fd, &st); -- if (!S_ISCHR(st.st_mode)) -- bb_error_msg_and_die("%s: not a char device", mtd_name); -- -- xioctl(fd, MEMGETINFO, &meminfo); -- erase.length = meminfo.erasesize; -- if (meminfo.type == MTD_NANDFLASH) -- flags |= IS_NAND; -- -- clmpos = 0; -- clmlen = 8; -- if (flags & OPTION_J) { -- uint32_t *crc32_table; -- -- crc32_table = crc32_filltable(NULL, 0); -- -- cleanmarker.magic = cpu_to_je16(JFFS2_MAGIC_BITMASK); -- cleanmarker.nodetype = cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER); -- if (!(flags & IS_NAND)) -- cleanmarker.totlen = cpu_to_je32(sizeof(struct jffs2_unknown_node)); -- else { -- struct nand_oobinfo oobinfo; -- -- xioctl(fd, MEMGETOOBSEL, &oobinfo); -- -- /* Check for autoplacement */ -- if (oobinfo.useecc == MTD_NANDECC_AUTOPLACE) { -- /* Get the position of the free bytes */ -- clmpos = oobinfo.oobfree[0][0]; -- clmlen = oobinfo.oobfree[0][1]; -- if (clmlen > 8) -- clmlen = 8; -- if (clmlen == 0) -- bb_error_msg_and_die("autoplacement selected and no empty space in oob"); -- } else { -- /* Legacy mode */ -- switch (meminfo.oobsize) { -- case 8: -- clmpos = 6; -- clmlen = 2; -- break; -- case 16: -- clmpos = 8; -- /*clmlen = 8;*/ -- break; -- case 64: -- clmpos = 16; -- /*clmlen = 8;*/ -- break; -- } -- } -- cleanmarker.totlen = cpu_to_je32(8); -- } -- -- cleanmarker.hdr_crc = cpu_to_je32( -- crc32_block_endian0(0, &cleanmarker, sizeof(struct jffs2_unknown_node) - 4, crc32_table) -- ); -- } -- -- /* Don't want to destroy progress indicator by bb_error_msg's */ -- applet_name = xasprintf("\n%s: %s", applet_name, mtd_name); -- -- for (erase.start = 0; erase.start < meminfo.size; -- erase.start += meminfo.erasesize) { -- if (!(flags & OPTION_N)) { -- int ret; -- loff_t offset = erase.start; -- -- ret = ioctl(fd, MEMGETBADBLOCK, &offset); -- if (ret > 0) { -- if (!(flags & OPTION_Q)) -- printf("\nSkipping bad block at 0x%08x\n", erase.start); -- continue; -- } -- if (ret < 0) { -- /* Black block table is not available on certain flash -- * types e.g. NOR -- */ -- if (errno == EOPNOTSUPP) { -- flags |= OPTION_N; -- if (flags & IS_NAND) -- bb_error_msg_and_die("bad block check not available"); -- } else { -- bb_perror_msg_and_die("MEMGETBADBLOCK error"); -- } -- } -- } -- -- if (!(flags & OPTION_Q)) -- show_progress(&meminfo, &erase); -- -- xioctl(fd, MEMERASE, &erase); -- -- /* format for JFFS2 ? */ -- if (!(flags & OPTION_J)) -- continue; -- -- /* write cleanmarker */ -- if (flags & IS_NAND) { -- struct mtd_oob_buf oob; -- -- oob.ptr = (unsigned char *) &cleanmarker; -- oob.start = erase.start + clmpos; -- oob.length = clmlen; -- xioctl(fd, MEMWRITEOOB, &oob); -- } else { -- xlseek(fd, erase.start, SEEK_SET); -- /* if (lseek(fd, erase.start, SEEK_SET) < 0) { -- bb_perror_msg("MTD %s failure", "seek"); -- continue; -- } */ -- xwrite(fd, &cleanmarker, sizeof(cleanmarker)); -- /* if (write(fd, &cleanmarker, sizeof(cleanmarker)) != sizeof(cleanmarker)) { -- bb_perror_msg("MTD %s failure", "write"); -- continue; -- } */ -- } -- if (!(flags & OPTION_Q)) -- printf(" Cleanmarker written at %x.", erase.start); -- } -- if (!(flags & OPTION_Q)) { -- show_progress(&meminfo, &erase); -- bb_putchar('\n'); -- } -- -- if (ENABLE_FEATURE_CLEAN_UP) -- close(fd); -- return EXIT_SUCCESS; --} + } diff --git a/patches/busybox/feature-iorw-command.patch b/patches/busybox/feature-iorw-command.patch index 0818fe813..59f34e3af 100644 --- a/patches/busybox/feature-iorw-command.patch +++ b/patches/busybox/feature-iorw-command.patch @@ -7,54 +7,12 @@ SPDX-License-Identifier: GPL-2.0 Add the iorw command, which allows root to peek/poke arbitrary memory locations. -diff --git a/include/applets.src.h b/include/applets.src.h -index caf3c8259eae..267a8f3032c8 100644 ---- a/include/applets.src.h -+++ b/include/applets.src.h -@@ -170,6 +170,7 @@ IF_INETD(APPLET(inetd, BB_DIR_USR_SBIN, BB_SUID_DROP)) - IF_INOTIFYD(APPLET(inotifyd, BB_DIR_SBIN, BB_SUID_DROP)) - IF_INSTALL(APPLET(install, BB_DIR_USR_BIN, BB_SUID_DROP)) - IF_IONICE(APPLET(ionice, BB_DIR_BIN, BB_SUID_DROP)) -+IF_IORW(APPLET(iorw, BB_DIR_USR_SBIN, BB_SUID_DROP)) - #if ENABLE_FEATURE_IP_ADDRESS \ - || ENABLE_FEATURE_IP_ROUTE \ - || ENABLE_FEATURE_IP_LINK \ -diff --git a/miscutils/Config.src b/miscutils/Config.src -index 682173640853..e5bc7013bdf8 100644 ---- a/miscutils/Config.src -+++ b/miscutils/Config.src -@@ -375,6 +375,13 @@ config FEATURE_HDPARM_HDIO_GETSET_DMA - help - Enables the 'hdparm -d' option to get/set using_dma flag. - -+config IORW -+ bool "iorw" -+ default n -+ help -+ Enables the 'iorw' command, a way to peek/poke arbitrary -+ memory mapped locations. -+ - config MAKEDEVS - bool "makedevs" - default y -diff --git a/miscutils/Kbuild.src b/miscutils/Kbuild.src -index 5d42ede9f252..25382f57efc4 100644 ---- a/miscutils/Kbuild.src -+++ b/miscutils/Kbuild.src -@@ -24,6 +24,7 @@ lib-$(CONFIG_FLASH_LOCK) += flash_lock_unlock.o - lib-$(CONFIG_FLASH_UNLOCK) += flash_lock_unlock.o - lib-$(CONFIG_IONICE) += ionice.o - lib-$(CONFIG_HDPARM) += hdparm.o -+lib-$(CONFIG_IORW) += iorw.o - lib-$(CONFIG_INOTIFYD) += inotifyd.o - - ifeq ($(CONFIG_FEATURE_LAST_FANCY),y) diff --git a/miscutils/iorw.c b/miscutils/iorw.c new file mode 100644 -index 000000000000..c397159d89c7 +index 0000000..93ff43c --- /dev/null +++ b/miscutils/iorw.c -@@ -0,0 +1,255 @@ +@@ -0,0 +1,265 @@ +/* +* Author: Curt Brune, curt@cumulusnetworks.com +* @@ -76,6 +34,16 @@ index 000000000000..c397159d89c7 +* Foundation, Inc., 59 Temple Place, Suite 330, Boston, +* MA 02111-1307 USA +*/ ++//config:config IORW ++//config: bool "iorw" ++//config: default n ++//config: help ++//config: Enables the 'iorw' command, a way to peek/poke arbitrary ++//config: memory mapped locations. ++ ++//applet:IF_IORW(APPLET(iorw, BB_DIR_USR_SBIN, BB_SUID_DROP)) ++ ++//kbuild:lib-$(CONFIG_IORW) += iorw.o + +#include "libbb.h" +#include diff --git a/patches/busybox/feature-onie-syseeprom-command.patch b/patches/busybox/feature-onie-syseeprom-command.patch index 88bbcf3ae..d57dfc566 100644 --- a/patches/busybox/feature-onie-syseeprom-command.patch +++ b/patches/busybox/feature-onie-syseeprom-command.patch @@ -78,18 +78,6 @@ index 0000000..5fb4641 +int eeprom_write_byte(struct eeprom *e, __u16 mem_addr, __u8 data); + +#endif -diff --git a/include/applets.src.h b/include/applets.src.h -index b9df5a1..71b8cbd 100644 ---- a/include/applets.src.h -+++ b/include/applets.src.h -@@ -344,6 +344,7 @@ IF_WC(APPLET(wc, BB_DIR_USR_BIN, BB_SUID_DROP)) - IF_WHOAMI(APPLET_NOFORK(whoami, whoami, BB_DIR_USR_BIN, BB_SUID_DROP, whoami)) - IF_YES(APPLET_NOFORK(yes, yes, BB_DIR_USR_BIN, BB_SUID_DROP, yes)) - IF_ZCIP(APPLET(zcip, BB_DIR_SBIN, BB_SUID_DROP)) -+IF_SYS_EEPROM(APPLET_ODDNAME(onie-syseeprom, onie_syseeprom, BB_DIR_USR_BIN, BB_SUID_DROP, onie_syseeprom)) - - #if !defined(PROTOTYPES) && !defined(NAME_MAIN) && !defined(MAKE_USAGE) \ - && !defined(MAKE_LINKS) && !defined(MAKE_SUID) diff --git a/include/i2c-dev.h b/include/i2c-dev.h new file mode 100644 index 0000000..23f7c2c @@ -802,12 +790,12 @@ index 0000000..ccc0965 + } +} diff --git a/miscutils/Config.src b/miscutils/Config.src -index 4d6425f..cdae45b 100644 +index d10b00b..7f04b9b 100644 --- a/miscutils/Config.src +++ b/miscutils/Config.src -@@ -546,4 +546,108 @@ config WATCHDOG - certain amount of time, the watchdog device assumes the system has - hung, and will cause the hardware to reboot. +@@ -7,4 +7,108 @@ menu "Miscellaneous Utilities" + + INSERT +config SYS_EEPROM + bool "ONIE system EEPROM" @@ -914,17 +902,6 @@ index 4d6425f..cdae45b 100644 +endmenu + endmenu -diff --git a/miscutils/Kbuild.src b/miscutils/Kbuild.src -index 9177818..a78273d 100644 ---- a/miscutils/Kbuild.src -+++ b/miscutils/Kbuild.src -@@ -51,3 +51,6 @@ lib-$(CONFIG_TTYSIZE) += ttysize.o - lib-$(CONFIG_UBOOT_ENV) += fw_env.o - lib-$(CONFIG_VOLNAME) += volname.o - lib-$(CONFIG_WATCHDOG) += watchdog.o -+lib-$(CONFIG_SYS_EEPROM) += sys_eeprom.o onie_tlvinfo.o -+lib-$(CONFIG_SYS_EEPROM_DEVICE_I2C) += sys_eeprom_i2c.o 24cXX.o -+lib-$(CONFIG_SYS_EEPROM_DEVICE_MTD) += sys_eeprom_mtd.o diff --git a/miscutils/onie_tlvinfo.c b/miscutils/onie_tlvinfo.c new file mode 100644 index 0000000..26b6ec5 @@ -1687,10 +1664,16 @@ index 0000000..26b6ec5 +} diff --git a/miscutils/sys_eeprom.c b/miscutils/sys_eeprom.c new file mode 100644 -index 0000000..a24d6bb +index 0000000..65ae160 --- /dev/null +++ b/miscutils/sys_eeprom.c -@@ -0,0 +1,188 @@ +@@ -0,0 +1,194 @@ ++//applet:IF_SYS_EEPROM(APPLET_ODDNAME(onie-syseeprom, onie_syseeprom, BB_DIR_USR_BIN, BB_SUID_DROP, onie_syseeprom)) ++ ++//kbuild:lib-$(CONFIG_SYS_EEPROM) += sys_eeprom.o onie_tlvinfo.o ++//kbuild:lib-$(CONFIG_SYS_EEPROM_DEVICE_I2C) += sys_eeprom_i2c.o 24cXX.o ++//kbuild:lib-$(CONFIG_SYS_EEPROM_DEVICE_MTD) += sys_eeprom_mtd.o ++ +#include "libbb.h" +#include "onie_tlvinfo.h" +#include @@ -1711,7 +1694,7 @@ index 0000000..a24d6bb +//usage: "\n If no value, TLV is deleted." +//usage: "\n" + -+cmd_usage() ++static void cmd_usage(void) +{ + static const char *usage = + "Display and program the system EEPROM data block.\n" diff --git a/patches/busybox/feature-onie-syseeprom-disk.patch b/patches/busybox/feature-onie-syseeprom-disk.patch index 5134d02c0..6ff5ed08e 100644 --- a/patches/busybox/feature-onie-syseeprom-disk.patch +++ b/patches/busybox/feature-onie-syseeprom-disk.patch @@ -1,10 +1,10 @@ Support "eeprom" on disk for platforms without a real eeprom. diff --git a/miscutils/Config.src b/miscutils/Config.src -index cdae45b750b1..290046a217c2 100644 +index 7f04b9b..f0d2fc6 100644 --- a/miscutils/Config.src +++ b/miscutils/Config.src -@@ -568,6 +568,9 @@ config SYS_EEPROM_DEVICE_I2C +@@ -29,6 +29,9 @@ config SYS_EEPROM_DEVICE_I2C config SYS_EEPROM_DEVICE_MTD bool "MTD" @@ -14,7 +14,7 @@ index cdae45b750b1..290046a217c2 100644 endchoice config SYS_EEPROM_I2C_DEVICE -@@ -624,8 +627,16 @@ config SYS_EEPROM_MTD_DEVICE +@@ -85,8 +88,16 @@ config SYS_EEPROM_MTD_DEVICE help MTD device name of the eeprom. e.g., /dev/mtd-hw-info. @@ -31,7 +31,7 @@ index cdae45b750b1..290046a217c2 100644 range 0 65536 default 0 depends on SYS_EEPROM -@@ -634,7 +645,9 @@ config SYS_EEPROM_OFFSET +@@ -95,7 +106,9 @@ config SYS_EEPROM_OFFSET config SYS_EEPROM_SIZE int "usable eeprom size in byte" @@ -41,7 +41,7 @@ index cdae45b750b1..290046a217c2 100644 default 0 depends on SYS_EEPROM help -@@ -642,6 +655,7 @@ config SYS_EEPROM_SIZE +@@ -103,6 +116,7 @@ config SYS_EEPROM_SIZE config SYS_EEPROM_MAX_SIZE int "total size in byte" @@ -49,21 +49,14 @@ index cdae45b750b1..290046a217c2 100644 range 256 65536 default 2048 depends on SYS_EEPROM -diff --git a/miscutils/Kbuild.src b/miscutils/Kbuild.src -index a78273de6ca7..8ff4e9853415 100644 ---- a/miscutils/Kbuild.src -+++ b/miscutils/Kbuild.src -@@ -54,3 +54,4 @@ lib-$(CONFIG_WATCHDOG) += watchdog.o - lib-$(CONFIG_SYS_EEPROM) += sys_eeprom.o onie_tlvinfo.o - lib-$(CONFIG_SYS_EEPROM_DEVICE_I2C) += sys_eeprom_i2c.o 24cXX.o - lib-$(CONFIG_SYS_EEPROM_DEVICE_MTD) += sys_eeprom_mtd.o -+lib-$(CONFIG_SYS_EEPROM_DEVICE_DISK) += sys_eeprom_disk.o diff --git a/miscutils/sys_eeprom_disk.c b/miscutils/sys_eeprom_disk.c new file mode 100644 -index 000000000000..440b490b4824 +index 0000000..0035fba --- /dev/null +++ b/miscutils/sys_eeprom_disk.c -@@ -0,0 +1,112 @@ +@@ -0,0 +1,114 @@ ++//kbuild:lib-$(CONFIG_SYS_EEPROM_DEVICE_DISK) += sys_eeprom_disk.o ++ +#include "libbb.h" +#include "onie_tlvinfo.h" +#include "sys_eeprom.h" diff --git a/patches/busybox/feature-onie-syseeprom-sysfs.patch b/patches/busybox/feature-onie-syseeprom-sysfs.patch index 868d90060..2cab06368 100644 --- a/patches/busybox/feature-onie-syseeprom-sysfs.patch +++ b/patches/busybox/feature-onie-syseeprom-sysfs.patch @@ -1,7 +1,7 @@ Support for reading and writing sysfs based eeprom entries diff --git a/include/onie_tlvinfo.h b/include/onie_tlvinfo.h -index b602736287ec..2713b8602443 100644 +index 23ec9c5..baa39ab 100644 --- a/include/onie_tlvinfo.h +++ b/include/onie_tlvinfo.h @@ -143,6 +143,7 @@ static inline const char* tlv_type2name(u_int8_t type) @@ -13,10 +13,10 @@ index b602736287ec..2713b8602443 100644 #define SYS_EEPROM_OFFSET CONFIG_SYS_EEPROM_OFFSET diff --git a/miscutils/Config.src b/miscutils/Config.src -index 290046a217c2..e97b0c3c24d0 100644 +index f0d2fc6..d102de3 100644 --- a/miscutils/Config.src +++ b/miscutils/Config.src -@@ -571,6 +571,9 @@ config SYS_EEPROM_DEVICE_MTD +@@ -32,6 +32,9 @@ config SYS_EEPROM_DEVICE_MTD config SYS_EEPROM_DEVICE_DISK bool "disk (not recommended)" @@ -26,7 +26,7 @@ index 290046a217c2..e97b0c3c24d0 100644 endchoice config SYS_EEPROM_I2C_DEVICE -@@ -634,6 +637,13 @@ config SYS_EEPROM_DISK_DEVICE +@@ -95,6 +98,13 @@ config SYS_EEPROM_DISK_DEVICE help device name of the on-disk "eeprom". e.g., /dev/sda. @@ -40,21 +40,14 @@ index 290046a217c2..e97b0c3c24d0 100644 config SYS_EEPROM_OFFSET int "offset" range 0 0 if SYS_EEPROM_DEVICE_DISK -diff --git a/miscutils/Kbuild.src b/miscutils/Kbuild.src -index 8ff4e9853415..72ddcd1ce9bf 100644 ---- a/miscutils/Kbuild.src -+++ b/miscutils/Kbuild.src -@@ -55,3 +55,4 @@ lib-$(CONFIG_SYS_EEPROM) += sys_eeprom.o onie_tlvinfo.o - lib-$(CONFIG_SYS_EEPROM_DEVICE_I2C) += sys_eeprom_i2c.o 24cXX.o - lib-$(CONFIG_SYS_EEPROM_DEVICE_MTD) += sys_eeprom_mtd.o - lib-$(CONFIG_SYS_EEPROM_DEVICE_DISK) += sys_eeprom_disk.o -+lib-$(CONFIG_SYS_EEPROM_SYSFS_FILE) += sys_eeprom_sysfs_file.o diff --git a/miscutils/sys_eeprom_sysfs_file.c b/miscutils/sys_eeprom_sysfs_file.c new file mode 100644 -index 000000000000..68f33c9cd51b +index 0000000..9e61d67 --- /dev/null +++ b/miscutils/sys_eeprom_sysfs_file.c -@@ -0,0 +1,85 @@ +@@ -0,0 +1,87 @@ ++//kbuild:lib-$(CONFIG_SYS_EEPROM_SYSFS_FILE) += sys_eeprom_sysfs_file.o ++ +#include "libbb.h" +#include "onie_tlvinfo.h" +#include "sys_eeprom.h" diff --git a/patches/busybox/fw_env-modify-crc-size-in-getenvsize.patch b/patches/busybox/fw_env-modify-crc-size-in-getenvsize.patch index 241a4fb81..885aec265 100644 --- a/patches/busybox/fw_env-modify-crc-size-in-getenvsize.patch +++ b/patches/busybox/fw_env-modify-crc-size-in-getenvsize.patch @@ -13,10 +13,10 @@ in other machines, so modify it with sizeof(uint32_t) Signed-off-by: Zhao Qiang diff --git a/miscutils/fw_env.c b/miscutils/fw_env.c -index f6f0d2743c36..777c3697e4a5 100644 +index 93ea868..b988c9c 100644 --- a/miscutils/fw_env.c +++ b/miscutils/fw_env.c -@@ -122,7 +122,7 @@ static int get_config (const char *); +@@ -133,7 +133,7 @@ static int get_config (const char *); #endif static inline ulong getenvsize (void) { diff --git a/patches/busybox/series b/patches/busybox/series index 097b3d93f..ea895b328 100644 --- a/patches/busybox/series +++ b/patches/busybox/series @@ -1,9 +1,8 @@ -# This series applies on GIT commit 6bbd082c82c805ed17d4270ed18e41b5545c189b +# This series applies on busybox 1.38.0 (upstream release tarball) gitignore.patch u-boot-env-tools.patch fw_env-modify-crc-size-in-getenvsize.patch feature-iorw-command.patch -dhcp-additional-options.patch feature-flash-erase-command.patch feature-onie-syseeprom-command.patch feature-onie-syseeprom-disk.patch diff --git a/patches/busybox/u-boot-env-tools.patch b/patches/busybox/u-boot-env-tools.patch index 8d35f10ab..c238589f6 100644 --- a/patches/busybox/u-boot-env-tools.patch +++ b/patches/busybox/u-boot-env-tools.patch @@ -4,22 +4,9 @@ Copyright (C) 2013 Curt Brune SPDX-License-Identifier: GPL-2.0 -diff --git a/include/applets.src.h b/include/applets.src.h -index 6e1b02fc399c..caf3c8259eae 100644 ---- a/include/applets.src.h -+++ b/include/applets.src.h -@@ -321,6 +321,8 @@ IF_TRUE(APPLET_NOFORK(true, true, BB_DIR_BIN, BB_SUID_DROP, true)) - IF_TTY(APPLET(tty, BB_DIR_USR_BIN, BB_SUID_DROP)) - IF_TTYSIZE(APPLET(ttysize, BB_DIR_USR_BIN, BB_SUID_DROP)) - IF_TUNCTL(APPLET(tunctl, BB_DIR_SBIN, BB_SUID_DROP)) -+IF_UBOOT_ENV(APPLET(fw_setenv, BB_DIR_USR_SBIN, BB_SUID_DROP)) -+IF_UBOOT_ENV(APPLET(fw_printenv, BB_DIR_USR_SBIN, BB_SUID_DROP)) - IF_UDHCPC(APPLET(udhcpc, BB_DIR_SBIN, BB_SUID_DROP)) - IF_UDHCPD(APPLET(udhcpd, BB_DIR_USR_SBIN, BB_SUID_DROP)) - IF_UDPSVD(APPLET_ODDNAME(udpsvd, tcpudpsvd, BB_DIR_USR_BIN, BB_SUID_DROP, udpsvd)) diff --git a/include/fw_env.h b/include/fw_env.h new file mode 100644 -index 000000000000..ffec527b4f2e +index 0000000..ffec527 --- /dev/null +++ b/include/fw_env.h @@ -0,0 +1,52 @@ @@ -75,41 +62,12 @@ index 000000000000..ffec527b4f2e +extern int fw_printenv(int argc, char *argv[]); +extern char *fw_getenv (char *name); +extern int fw_setenv (int argc, char *argv[]); -diff --git a/miscutils/Config.src b/miscutils/Config.src -index 06f1c52ba053..682173640853 100644 ---- a/miscutils/Config.src -+++ b/miscutils/Config.src -@@ -513,6 +513,13 @@ config TTYSIZE - error, but returns default 80x24. - Usage in shell scripts: width=`ttysize w`. - -+config UBOOT_ENV -+ bool "uboot environment" -+ default n -+ help -+ Enables setting and printing u-boot environment varaibles. -+ The fw_printenv and fw_setenv tools are included. -+ - config VOLNAME - bool "volname" - default y -diff --git a/miscutils/Kbuild.src b/miscutils/Kbuild.src -index 503f549047b6..5d42ede9f252 100644 ---- a/miscutils/Kbuild.src -+++ b/miscutils/Kbuild.src -@@ -47,5 +47,6 @@ lib-$(CONFIG_STRINGS) += strings.o - lib-$(CONFIG_TIME) += time.o - lib-$(CONFIG_TIMEOUT) += timeout.o - lib-$(CONFIG_TTYSIZE) += ttysize.o -+lib-$(CONFIG_UBOOT_ENV) += fw_env.o - lib-$(CONFIG_VOLNAME) += volname.o - lib-$(CONFIG_WATCHDOG) += watchdog.o diff --git a/miscutils/fw_env.c b/miscutils/fw_env.c new file mode 100644 -index 000000000000..f6f0d2743c36 +index 0000000..93ea868 --- /dev/null +++ b/miscutils/fw_env.c -@@ -0,0 +1,1259 @@ +@@ -0,0 +1,1270 @@ +/* + * u-boot flash environment variable get/set commands + * @@ -137,6 +95,17 @@ index 000000000000..f6f0d2743c36 + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ ++//config:config UBOOT_ENV ++//config: bool "uboot environment" ++//config: default n ++//config: help ++//config: Enables setting and printing u-boot environment varaibles. ++//config: The fw_printenv and fw_setenv tools are included. ++ ++//applet:IF_UBOOT_ENV(APPLET(fw_setenv, BB_DIR_USR_SBIN, BB_SUID_DROP)) ++//applet:IF_UBOOT_ENV(APPLET(fw_printenv, BB_DIR_USR_SBIN, BB_SUID_DROP)) ++ ++//kbuild:lib-$(CONFIG_UBOOT_ENV) += fw_env.o + +#include "libbb.h" +#include "common_bufsiz.h" diff --git a/patches/crosstool-NG/series b/patches/crosstool-NG/series index 50a68b046..ae5b7f905 100644 --- a/patches/crosstool-NG/series +++ b/patches/crosstool-NG/series @@ -1,4 +1,5 @@ # Previous patches not applied on new revisions. #allow-patching-custom-kernel-tarballs.patch -Ignore-a-bad-id-command-to-allow-docker.patch +# Ignore-a-bad-id-command-to-allow-docker.patch -- merged upstream in 1.28.0 +# (scripts/crosstool-NG.sh already uses `id -un 2>/dev/null || echo unknown`). diff --git a/patches/dmidecode/dmidecode-onie-cross-compile.patch b/patches/dmidecode/dmidecode-onie-cross-compile.patch index 8a8e3e254..c2a55c86f 100644 --- a/patches/dmidecode/dmidecode-onie-cross-compile.patch +++ b/patches/dmidecode/dmidecode-onie-cross-compile.patch @@ -4,32 +4,19 @@ Copyright (C) 2017 Curt Brune SPDX-License-Identifier: GPL-2.0 -Small modifications to the dmidecode Makefile for cross compiling in -the ONIE build environment. ---- - Makefile | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - +Use $(CROSS_COMPILE)gcc as the compiler so dmidecode cross-compiles in +the ONIE build environment. (dmidecode's Makefile honors CFLAGS/LDFLAGS +from the environment, so no further changes are needed.) diff --git a/Makefile b/Makefile -index 1f54a1f..1d03628 100644 +index 985992e..ae70e4d 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ # (at your option) any later version. # --CC = gcc -+CC = $(CROSS_COMPILE)gcc - CFLAGS = -W -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual \ - -Wcast-align -Wwrite-strings -Wmissing-prototypes -Winline -Wundef - -@@ -29,6 +29,9 @@ CFLAGS += -O2 - # Pass linker flags here - LDFLAGS = - -++CFLAGS += $(ONIE_CFLAGS) -++LDFLAGS += $(ONIE_LDFLAGS) -+ - DESTDIR = - prefix = /usr/local - sbindir = $(prefix)/sbin +-CC ?= gcc ++CC = $(CROSS_COMPILE)gcc + # Base CFLAGS can be overridden by environment + CFLAGS ?= -O2 + # When debugging, disable -O2 and enable -g diff --git a/patches/dmidecode/series b/patches/dmidecode/series index b9265a16e..bc707ba6f 100644 --- a/patches/dmidecode/series +++ b/patches/dmidecode/series @@ -1,2 +1,2 @@ -# This series applies on GIT commit 230d76a606e09f77b0e74e445e35dadeeac756ee +# This series applies on dmidecode 3.7 dmidecode-onie-cross-compile.patch diff --git a/patches/dosfstools/remove-local-support.patch b/patches/dosfstools/remove-local-support.patch deleted file mode 100644 index d4a490732..000000000 --- a/patches/dosfstools/remove-local-support.patch +++ /dev/null @@ -1,37 +0,0 @@ -Remove local support patch - -uClibc in the ONIE environment does not do locales well, so removing -local support from dosfstools. - -This patch makes the locale init and locale translation no-ops. - -diff --git a/Makefile b/Makefile -index 81256ef..711b170 100644 ---- a/Makefile -+++ b/Makefile -@@ -40,9 +40,9 @@ all: build - - build: fatlabel fsck.fat mkfs.fat - --fatlabel: boot.o check.o common.o fat.o file.o io.o lfn.o charconv.o fatlabel.o -+fatlabel: boot.o check.o common.o fat.o file.o io.o lfn.o fatlabel.o - --fsck.fat: boot.o check.o common.o fat.o file.o io.o lfn.o charconv.o fsck.fat.o -+fsck.fat: boot.o check.o common.o fat.o file.o io.o lfn.o fsck.fat.o - - mkfs.fat: mkfs.fat.o - -diff --git a/src/charconv.h b/src/charconv.h -index 3ac3e56..a33b803 100644 ---- a/src/charconv.h -+++ b/src/charconv.h -@@ -3,7 +3,7 @@ - - #define DEFAULT_DOS_CODEPAGE 437 - --int set_dos_codepage(int codepage); --int dos_char_to_printable(char **p, unsigned char c); -+static inline int set_dos_codepage(int codepage) { return 0; } -+static inline int dos_char_to_printable(char **p, unsigned char c) { return 0; } - - #endif diff --git a/patches/dosfstools/series b/patches/dosfstools/series index 66fd9cb60..096515335 100644 --- a/patches/dosfstools/series +++ b/patches/dosfstools/series @@ -1,2 +1,10 @@ -# This series applies on GIT commit 277b73b04cda1663511bb28ce9221d7b9561385b -remove-local-support.patch +# This series applies on dosfstools release v4.2 +# +# No patches required. +# +# The former remove-local-support.patch (which stubbed out the gettext/ +# locale/iconv support that uClibc handles poorly) was dropped for 4.x. +# dosfstools 4.x switched to an autotools build and gates iconv behind +# --with-iconv/--without-iconv. We configure with --without-iconv, which +# compiles charconv.c with its built-in CP850 table and no iconv/gettext +# dependency, achieving the same result without source patching. diff --git a/patches/efivar/30/XX-Provide-char16_t-and-char32_t-definitions-for-ONIE.patch b/patches/efivar/30/XX-Provide-char16_t-and-char32_t-definitions-for-ONIE.patch deleted file mode 100644 index 87a671359..000000000 --- a/patches/efivar/30/XX-Provide-char16_t-and-char32_t-definitions-for-ONIE.patch +++ /dev/null @@ -1,36 +0,0 @@ -Provide char16_t and char32_t definitions for ONIE - -Copyright (C) 2020 Alex Doyle -Copyright (C) 2015 Curt Brune - -SPDX-License-Identifier: GPL-2.0 - -Since uClibc does not provide provide explicit typedefs for -char16_t and char32_t using the compiler's internal definitions. -Updated patch for efivar 37 - Alex -Summary: - -diff --git a/src/export.c b/src/export.c -index 8321bd3..3ac9316 100644 ---- a/src/export.c -+++ b/src/export.c -@@ -23,6 +23,19 @@ - #include - #include - #include -+ -+#ifdef __UCLIBC__ -+/* -+ * Define the 16-bit and 32-bit character types as is -+ * missing from uClibc. Use the information provided by the compiler -+ */ -+#if !defined __CHAR16_TYPE__ || !defined __CHAR32_TYPE__ -+# error "definitions of __CHAR16_TYPE__ and/or __CHAR32_TYPE__ missing" -+#endif -+typedef __CHAR16_TYPE__ char16_t; -+typedef __CHAR32_TYPE__ char32_t; -+#else - #include -+#endif - - #include "efivar.h" diff --git a/patches/efivar/30/makefile-changes-for-onie.patch b/patches/efivar/30/makefile-changes-for-onie.patch deleted file mode 100644 index c39449da7..000000000 --- a/patches/efivar/30/makefile-changes-for-onie.patch +++ /dev/null @@ -1,86 +0,0 @@ -Makefile changes for ONIE patch - -Copyright (C) 2020 Alex Doyle -Copyright (C) 2017 Curt Brune - -SPDX-License-Identifier: GPL-2.0 - -Minor Makefile changes for ONIE build environment. -Updated for efivar 37 - Alex - -diff --git a/Make.defaults b/Make.defaults -index 57cee6e..cf91cd1 100644 ---- a/Make.defaults -+++ b/Make.defaults -@@ -16,6 +16,8 @@ CC_FOR_BUILD ?= cc - CC := $(if $(filter default,$(origin CC)),$(CROSS_COMPILE)$(COMPILER),$(CC)) - CCLD_FOR_BUILD ?= $(CC_FOR_BUILD) - CCLD := $(if $(filter undefined,$(origin CCLD)),$(CC),$(CCLD)) -+HOST_CC := gcc -+HOST_CCLD := $(HOST_CC) - OPTIMIZE ?= -O2 -flto - CFLAGS ?= $(OPTIMIZE) -g3 - CFLAGS := $(CFLAGS) -@@ -29,6 +31,10 @@ ABIDIFF := abidiff - - PKGS = - -+host_cflags := $(HOST_CFLAGS) -I${TOPDIR}/src/include/efivar/ \ -+ $(if $(findstring clang,$(HOST_CC)),$(clang_cflags),) \ -+ $(if $(findstring gcc,$(HOST_CC)),$(gcc_cflags),) -+ - clang_cflags = -D_GNU_SOURCE -std=gnu11 -Wno-address-of-packed-member - gcc_cflags = -specs=$(TOPDIR)/gcc.specs - cflags = $(CFLAGS) -I${TOPDIR}/src/include/ \ -@@ -44,6 +50,9 @@ ccldflags = $(cflags) -L. $(CCLDFLAGS) $(LDFLAGS) \ - $(if $(findstring ccc-analyzer,$(CCLD)),$(clang_ccldflags),) \ - $(if $(findstring gcc,$(CCLD)),$(gcc_ccldflags),) \ - $(call pkg-config-ldflags) -+host_ccldflags := $(host_cflags) -L. $(HOST_CCLDFLAGS) $(HOST_LDFLAGS) \ -+ $(if $(findstring clang,$(HOST_CCLD)),$(clang_ccldflags),) \ -+ $(if $(findstring gcc,$(HOST_CCLD)),$(gcc_ccldflags),) - SOFLAGS=-shared - LDLIBS=$(foreach lib,$(LIBS),-l$(lib)) $(call pkg-config-ldlibs) - -diff --git a/Make.rules b/Make.rules -index 042585b..6227eb7 100644 ---- a/Make.rules -+++ b/Make.rules -@@ -58,6 +58,7 @@ define substitute-version - sed \ - -e "s,@@VERSION@@,$(VERSION),g" \ - -e "s,@@LIBDIR@@,$(LIBDIR),g" \ -+ -e "s,@@DESTDIR@@,$(DESTDIR),g" \ - -e "s,@@PREFIX@@,$(PREFIX),g" \ - -e "s,@@EXEC_PREFIX@@,$(EXEC_PREFIX),g" \ - -e "s,@@INCLUDEDIR@@,$(INCLUDEDIR),g" \ -diff --git a/Makefile b/Makefile -index 8c67b9d..5ea8280 100644 ---- a/Makefile -+++ b/Makefile -@@ -7,7 +7,12 @@ include $(TOPDIR)/Make.defaults - include $(TOPDIR)/Make.coverity - include $(TOPDIR)/Make.scan-build - --SUBDIRS := src docs -+# ONIE build environment changes -+export CC = $(CROSS_COMPILE)gcc -+export LDFLAGS += $(ONIE_LDFLAGS) -+export CFLAGS += $(ONIE_CFLAGS) -+ -+SUBDIRS := src - - all : | efivar.spec Make.version - all : -diff --git a/src/Makefile b/src/Makefile -index 76bc474..533d1bd 100644 ---- a/src/Makefile -+++ b/src/Makefile -@@ -55,6 +55,7 @@ include/efivar/efivar-guids.h : makeguids guids.txt - makeguids : CPPFLAGS+=-DEFIVAR_BUILD_ENVIRONMENT - makeguids : LIBS=dl - makeguids : $(MAKEGUIDS_SOURCES) -+ $(HOST_CCLD) $(host_ccldflags) $(CPPFLAGS) -o $@ $^ $(LDLIBS) - makeguids : CCLD=$(CCLD_FOR_BUILD) - - guids.o : guids.S | guids.bin names.bin diff --git a/patches/efivar/30/series b/patches/efivar/30/series deleted file mode 100644 index 588893078..000000000 --- a/patches/efivar/30/series +++ /dev/null @@ -1,3 +0,0 @@ -# This series applies on GIT commit aee7302f16d85e21bc0898157348c063d2cb7ce8 -XX-Provide-char16_t-and-char32_t-definitions-for-ONIE.patch -makefile-changes-for-onie.patch diff --git a/patches/efivar/37/0001-Fix-the-error-path-in-set_disk_and_part_name.patch b/patches/efivar/37/0001-Fix-the-error-path-in-set_disk_and_part_name.patch deleted file mode 100644 index 94ca2f3b1..000000000 --- a/patches/efivar/37/0001-Fix-the-error-path-in-set_disk_and_part_name.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 22bc0866e941cbfe57de6522db51e9cf2c6b3ff1 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Wed, 2 Oct 2019 17:01:00 -0400 -Subject: [PATCH] Fix the error path in set_disk_and_part_name() - -Signed-off-by: Peter Jones - -[ dannf: Context adjustments due to upstream whitespace cleanup; - Included to simplify the application of - 0003-Try-even-harder-to-find-disk-device-symlinks-in-sysf.patch ] - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1891718 -Bug: https://github.com/rhboot/efivar/issues/157 -Origin: upstream, https://github.com/rhboot/efivar/commit/22bc0866e941cbfe57de6522db51e9cf2c6b3ff1 -Last-Updated: 2020-09-30 - -Index: efivar-37/src/linux.c -=================================================================== ---- efivar-37.orig/src/linux.c -+++ efivar-37/src/linux.c -@@ -1,6 +1,6 @@ - /* - * libefiboot - library for the manipulation of EFI boot variables -- * Copyright 2012-2015 Red Hat, Inc. -+ * Copyright 2012-2019 Red Hat, Inc. - * Copyright (C) 2001 Dell Computer Corporation - * - * This library is free software; you can redistribute it and/or -@@ -169,6 +169,8 @@ set_disk_name(struct device *dev, const - int HIDDEN - set_disk_and_part_name(struct device *dev) - { -+ int rc = -1; -+ - /* - * results are like such: - * maj:min -> ../../devices/pci$PCI_STUFF/$BLOCKDEV_STUFF/block/$DISK/$PART -@@ -200,6 +202,7 @@ set_disk_and_part_name(struct device *de - set_disk_name(dev, "%s", penultimate); - set_part_name(dev, "%s", ultimate); - debug("disk:%s part:%s", penultimate, ultimate); -+ rc = 0; - } else if (ultimate && approximate && !strcmp(approximate, "nvme")) { - /* - * 259:0 -> ../../devices/pci0000:00/0000:00:1d.0/0000:05:00.0/nvme/nvme0/nvme0n1 -@@ -207,6 +210,7 @@ set_disk_and_part_name(struct device *de - set_disk_name(dev, "%s", ultimate); - set_part_name(dev, "%sp%d", ultimate, dev->part); - debug("disk:%s part:%sp%d", ultimate, ultimate, dev->part); -+ rc = 0; - } else if (ultimate && penultimate && !strcmp(penultimate, "block")) { - /* - * 253:0 -> ../../devices/virtual/block/dm-0 (... I guess) -@@ -220,15 +224,19 @@ set_disk_and_part_name(struct device *de - set_disk_name(dev, "%s", ultimate); - set_part_name(dev, "%s%d", ultimate, dev->part); - debug("disk:%s part:%s%d", ultimate, ultimate, dev->part); -+ rc = 0; - } else if (ultimate && approximate && !strcmp(approximate, "mtd")) { - /* - * 31:0 -> ../../devices/platform/1e000000.palmbus/1e000b00.spi/spi_master/spi32766/spi32766.0/mtd/mtd0/mtdblock0 - */ - set_disk_name(dev, "%s", ultimate); - debug("disk:%s", ultimate); -+ rc = 0; - } - -- return 0; -+ if (rc < 0) -+ efi_error("Could not parse disk name:\"%s\"", dev->link); -+ return rc; - } - - static struct dev_probe *dev_probes[] = { diff --git a/patches/efivar/37/0002-sysfs-parsers-make-all-the-sys-block-link-parsers-wo.patch b/patches/efivar/37/0002-sysfs-parsers-make-all-the-sys-block-link-parsers-wo.patch deleted file mode 100644 index 46dfbfd28..000000000 --- a/patches/efivar/37/0002-sysfs-parsers-make-all-the-sys-block-link-parsers-wo.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 4718694094647b981b74453445d000b0296b6544 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 15 Oct 2019 16:53:27 -0400 -Subject: [PATCH] sysfs parsers: make all the /sys/block link parsers work the - same way - -Apparently I wrote some of these one way and some the other, and the one -special case where everything was "current+sz" instead of some form of -"current += pos; sz += pos; ...; return sz;" or the subtraction version. - -Make them all the same, where possible. - -Signed-off-by: Peter Jones - -[ dannf: Restrict to just linux-nvme.c; - Context adjustments due to upstream whitespace cleanup; - drop call to dbgmk() call - it didn't exist in v37; - included to simplify application of later patches in series ] - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1891718 -Bug: https://github.com/rhboot/efivar/issues/157 -Origin: upstream, https://github.com/rhboot/efivar/commit/4718694094647b981b74453445d000b0296b6544 -Last-Updated: 2020-09-30 - -Index: efivar-37/src/linux-nvme.c -=================================================================== ---- efivar-37.orig/src/linux-nvme.c -+++ efivar-37/src/linux-nvme.c -@@ -24,6 +24,7 @@ - #include - #include - #include -+#include - #include - - #include "efiboot.h" -@@ -48,25 +49,28 @@ - */ - - static ssize_t --parse_nvme(struct device *dev, const char *current, const char *root UNUSED) -+parse_nvme(struct device *dev, const char *path, const char *root UNUSED) - { -+ const char *current = path; - int rc; - int32_t tosser0, tosser1, tosser2, ctrl_id, ns_id, partition; - uint8_t *filebuf = NULL; -- int pos0 = 0, pos1 = 0; -+ int pos0 = -1, pos1 = -1, pos2 = -1; - - debug("entry"); - - debug("searching for nvme/nvme0/nvme0n1 or nvme/nvme0/nvme0n1/nvme0n1p1"); -- rc = sscanf(current, "nvme/nvme%d/nvme%dn%d%n/nvme%dn%dp%d%n", -- &tosser0, &ctrl_id, &ns_id, &pos0, -- &tosser1, &tosser2, &partition, &pos1); -- debug("current:\"%s\" rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); -+ rc = sscanf(current, "%nnvme/nvme%d/nvme%dn%d%n/nvme%dn%dp%d%n", -+ &pos0, &tosser0, &ctrl_id, &ns_id, -+ &pos1, &tosser1, &tosser2, &partition, &pos2); -+ debug("current:\"%s\" rc:%d pos0:%d pos1:%d pos2:%d\n", current, rc, pos0, pos1, pos2); - /* - * If it isn't of that form, it's not one of our nvme devices. - */ - if (rc != 3 && rc != 6) - return 0; -+ if (rc == 3) -+ pos2 = pos1; - - dev->nvme_info.ctrl_id = ctrl_id; - dev->nvme_info.ns_id = ns_id; -@@ -77,8 +81,9 @@ parse_nvme(struct device *dev, const cha - if (dev->part == -1) - dev->part = partition; - -- pos0 = pos1; -+ pos1 = pos2; - } -+ current += pos1; - - /* - * now fish the eui out of sysfs is there is one... -@@ -110,7 +115,8 @@ parse_nvme(struct device *dev, const cha - memcpy(dev->nvme_info.eui, eui, sizeof(eui)); - } - -- return pos0; -+ debug("current:'%s' sz:%zd", current, current - path); -+ return current - path; - } - - static ssize_t diff --git a/patches/efivar/37/0003-Try-even-harder-to-find-disk-device-symlinks-in-sysf.patch b/patches/efivar/37/0003-Try-even-harder-to-find-disk-device-symlinks-in-sysf.patch deleted file mode 100644 index ef89d1748..000000000 --- a/patches/efivar/37/0003-Try-even-harder-to-find-disk-device-symlinks-in-sysf.patch +++ /dev/null @@ -1,209 +0,0 @@ -From c9c1424d0e09bf33b747d37c43177c63367b1290 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Fri, 11 Oct 2019 14:20:54 -0400 -Subject: [PATCH] Try even harder to find disk device symlinks in sysfs. - -Today's realization is that the thing encoded into the structure of -sysfs is, in the best case, the dependency graph of the makefile targets -to build a device driver. - -In the case of nvme-fabric, or really wherever the kernel has -class_create() and device_create() in the same function, there's an -extra level of indirection. - -Anyway, in this patch we stop pretending sysfs isn't completely absurd, -and just try adding "/device" in the middle of the driver symlink path, -until we actually either get ENOENT on the device symlink or find a -device symlink that actually has a driver symlink under it. - -Signed-off-by: Peter Jones - -[ dannf: Context adjustments due to upstream whitespace cleanup; - Adjust to omit efi_error_pop() call that didn't exist in v37; - included to simplify application of later patches in series ] - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1891718 -Bug: https://github.com/rhboot/efivar/issues/157 -Origin: upstream, https://github.com/rhboot/efivar/commit/c9c1424d0e09bf33b747d37c43177c63367b1290 -Last-Updated: 2020-09-30 - -Index: efivar-37/src/linux-nvme.c -=================================================================== ---- efivar-37.orig/src/linux-nvme.c -+++ efivar-37/src/linux-nvme.c -@@ -88,13 +88,12 @@ parse_nvme(struct device *dev, const cha - /* - * now fish the eui out of sysfs is there is one... - */ -- rc = read_sysfs_file(&filebuf, -- "class/block/nvme%dn%d/eui", -- ctrl_id, ns_id); -- if ((rc < 0 && errno == ENOENT) || filebuf == NULL) { -- rc = read_sysfs_file(&filebuf, -- "class/block/nvme%dn%d/device/eui", -- ctrl_id, ns_id); -+ char *euipath = NULL; -+ rc = read_sysfs_file(&filebuf, "class/block/nvme%dn%d/eui", ctrl_id, ns_id); -+ if (rc < 0 && (errno == ENOENT || errno == ENOTDIR)) { -+ rc = find_device_file(&euipath, "eui", "class/block/nvme%dn%d", ctrl_id, ns_id); -+ if (rc >= 0 && euipath != NULL) -+ rc = read_sysfs_file(&filebuf, "%s", euipath); - } - if (rc >= 0 && filebuf != NULL) { - uint8_t eui[8]; -Index: efivar-37/src/linux.c -=================================================================== ---- efivar-37.orig/src/linux.c -+++ efivar-37/src/linux.c -@@ -410,24 +410,32 @@ struct device HIDDEN - goto err; - } - -- if (dev->device[0] != 0) { -- rc = sysfs_readlink(&tmpbuf, "block/%s/device/driver", dev->disk_name); -+ /* -+ * So, on a normal disk, you get something like: -+ * /sys/block/sda/device -> ../../0:0:0:0 -+ * /sys/block/sda/device/driver -> ../../../../../../../bus/scsi/drivers/sd -+ * -+ * On a directly attached nvme device you get: -+ * /sys/block/nvme0n1/device -> ../../nvme0 -+ * /sys/block/nvme0n1/device/device -> ../../../0000:6e:00.0 -+ * /sys/block/nvme0n1/device/device/driver -> ../../../../bus/pci/drivers/nvme -+ * -+ * On a fabric-attached nvme device, you get something like: -+ * /sys/block/nvme0n1/device -> ../../nvme0 -+ * /sys/block/nvme0n1/device/device -> ../../ctl -+ * /sys/block/nvme0n1/device/device/device -> ../../../../../0000:6e:00.0 -+ * /sys/block/nvme0n1/device/device/device/driver -> ../../../../../../bus/pci/drivers/nvme-fabrics -+ * -+ * ... I think? I don't have one in front of me. -+ */ -+ -+ char *filepath = NULL; -+ rc = find_device_file(&filepath, "driver", "block/%s", dev->disk_name); -+ if (rc >= 0) { -+ rc = sysfs_readlink(&tmpbuf, "%s", filepath); - if (rc < 0 || !tmpbuf) { -- if (errno == ENOENT) { -- /* -- * nvme, for example, will have nvme0n1/device point -- * at nvme0, and we need to look for device/driver -- * there. -- */ -- rc = sysfs_readlink(&tmpbuf, -- "block/%s/device/device/driver", -- dev->disk_name); -- } -- if (rc < 0 || !tmpbuf) { -- efi_error("readlink of /sys/block/%s/device/driver failed", -- dev->disk_name); -- goto err; -- } -+ efi_error("readlink of /sys/%s failed", filepath); -+ goto err; - } - - linkbuf = pathseg(tmpbuf, -1); -@@ -438,7 +446,7 @@ struct device HIDDEN - - dev->driver = strdup(linkbuf); - } else { -- dev->driver = strdup(""); -+ dev->driver = strdup(""); - } - - if (!dev->driver) { -Index: efivar-37/src/linux.h -=================================================================== ---- efivar-37.orig/src/linux.h -+++ efivar-37/src/linux.h -@@ -1,6 +1,6 @@ - /* - * libefiboot - library for the manipulation of EFI boot variables -- * Copyright 2012-2015 Red Hat, Inc. -+ * Copyright 2012-2019 Red Hat, Inc. - * Copyright (C) 2001 Dell Computer Corporation - * - * This library is free software; you can redistribute it and/or -@@ -196,6 +196,22 @@ extern ssize_t HIDDEN make_mac_path(uint - bufsize_; \ - }) - -+#define sysfs_access(mode, fmt, args...) \ -+ ({ \ -+ int rc_; \ -+ char *pn_; \ -+ \ -+ rc_ = asprintfa(&pn_, "/sys/" fmt, ## args); \ -+ if (rc_ >= 0) { \ -+ rc_ = access(pn_, mode); \ -+ if (rc_ < 0) \ -+ efi_error("could not access %s", pn_); \ -+ } else { \ -+ efi_error("could not allocate memory"); \ -+ } \ -+ rc_; \ -+ }) -+ - #define sysfs_readlink(linkbuf, fmt, args...) \ - ({ \ - char *_lb = alloca(PATH_MAX+1); \ -@@ -251,6 +267,57 @@ extern ssize_t HIDDEN make_mac_path(uint - dir_; \ - }) - -+/* -+ * Iterate a /sys/block directory looking for device/foo, device/device/foo, -+ * etc. I'm not proud of this method. -+ */ -+#define find_device_file(result, name, fmt, args...) \ -+ ({ \ -+ int rc_ = 0; \ -+ debug("searching for %s from in %s", name, dev->disk_name); \ -+ for (unsigned int try_ = 0; true; try_++) { \ -+ char slashdev_[sizeof("device") \ -+ + try_ * strlen("/device")]; \ -+ \ -+ char *nul_ = stpcpy(slashdev_, "device"); \ -+ for (unsigned int i_ = 0; i_ < try_; i_++) \ -+ nul_ = stpcpy(nul_, "/device"); \ -+ \ -+ debug("trying /sys/" fmt "/%s/%s", \ -+ ## args, slashdev_, name); \ -+ \ -+ rc_ = sysfs_access(F_OK, fmt "/%s", ## args, slashdev_);\ -+ if (rc_ < 0) { \ -+ if (errno == ENOENT) { \ -+ break; \ -+ } \ -+ efi_error("cannot access /sys/"fmt"/%s: %m", \ -+ ## args, slashdev_); \ -+ goto find_device_link_err_; \ -+ } \ -+ \ -+ rc_ = sysfs_access(F_OK, fmt "/%s/%s", \ -+ ## args, slashdev_, name); \ -+ if (rc_ < 0) { \ -+ if (errno == ENOENT) { \ -+ break; \ -+ } \ -+ efi_error("cannot access /sys/"fmt"/%s/%s: %m", \ -+ ## args, slashdev_, name); \ -+ goto find_device_link_err_; \ -+ } \ -+ \ -+ rc_ = asprintfa(result, fmt "/%s/%s", \ -+ ## args, slashdev_, name); \ -+ if (rc_ < 0) { \ -+ efi_error("cannot allocate memory: %m"); \ -+ goto find_device_link_err_; \ -+ } \ -+ } \ -+find_device_link_err_: \ -+ rc_; \ -+ }) -+ - #define DEV_PROVIDES_ROOT 1 - #define DEV_PROVIDES_HD 2 - #define DEV_ABBREV_ONLY 4 diff --git a/patches/efivar/37/0004-Handle-sys-devices-virtual-nvme-fabrics-nvme-subsyst.patch b/patches/efivar/37/0004-Handle-sys-devices-virtual-nvme-fabrics-nvme-subsyst.patch deleted file mode 100644 index 6b7329c9c..000000000 --- a/patches/efivar/37/0004-Handle-sys-devices-virtual-nvme-fabrics-nvme-subsyst.patch +++ /dev/null @@ -1,309 +0,0 @@ -From c41da0bdce04ab0f99b992d51ff6fd0ab55d040a Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Wed, 2 Oct 2019 17:04:12 -0400 -Subject: [PATCH] Handle /sys/devices/virtual/{nvme-fabrics,nvme-subsystem} - devices - -Signed-off-by: Peter Jones - -[ dannf: Context adjustments due to upstream whitespace cleanup and - dbgmk() calls; - drop new calls to dbgmk() - it didn't exist in v37 ] - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1891718 -Bug: https://github.com/rhboot/efivar/issues/157 -Origin: upstream, https://github.com/rhboot/efivar/commit/c41da0bdce04ab0f99b992d51ff6fd0ab55d040a -Last-Updated: 2020-09-30 - -Index: efivar-37/src/linux-nvme.c -=================================================================== ---- efivar-37.orig/src/linux-nvme.c -+++ efivar-37/src/linux-nvme.c -@@ -15,7 +15,6 @@ - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, see - * . -- * - */ - - #include "fix_coverity.h" -@@ -35,6 +34,12 @@ - * /sys/dev/block/$major:$minor looks like: - * 259:0 -> ../../devices/pci0000:00/0000:00:1d.0/0000:05:00.0/nvme/nvme0/nvme0n1 - * 259:1 -> ../../devices/pci0000:00/0000:00:1d.0/0000:05:00.0/nvme/nvme0/nvme0n1/nvme0n1p1 -+ * or: -+ * 259:0 ->../../devices/virtual/nvme-fabrics/ctl/nvme0/nvme0n1 -+ * 259:1 ->../../devices/virtual/nvme-fabrics/ctl/nvme0/nvme0n1/nvme0n1p1 -+ * or: -+ * 259:5 -> ../../devices/virtual/nvme-subsystem/nvme-subsys0/nvme0n1 -+ * 259:6 -> ../../devices/virtual/nvme-subsystem/nvme-subsys0/nvme0n1/nvme0n1p1 - * - * /sys/dev/block/259:0/device looks like: - * device -> ../../nvme0 -@@ -56,14 +61,41 @@ parse_nvme(struct device *dev, const cha - int32_t tosser0, tosser1, tosser2, ctrl_id, ns_id, partition; - uint8_t *filebuf = NULL; - int pos0 = -1, pos1 = -1, pos2 = -1; -+ ssize_t sz = 0; -+ struct subdir { -+ const char * const name; -+ const char * const fmt; -+ int *pos0, *pos1; -+ } subdirs[] = { -+ {"nvme-subsysN/", "%nnvme-subsys%d/%n", &pos0, &pos2}, -+ {"ctl/", "%nctl/%n%n", &pos0, &pos1}, -+ {"nvme/", "%nnvme/%n%n", &pos0, &pos1}, -+ {NULL, } -+ }; - - debug("entry"); - -- debug("searching for nvme/nvme0/nvme0n1 or nvme/nvme0/nvme0n1/nvme0n1p1"); -- rc = sscanf(current, "%nnvme/nvme%d/nvme%dn%d%n/nvme%dn%dp%d%n", -- &pos0, &tosser0, &ctrl_id, &ns_id, -- &pos1, &tosser1, &tosser2, &partition, &pos2); -- debug("current:\"%s\" rc:%d pos0:%d pos1:%d pos2:%d\n", current, rc, pos0, pos1, pos2); -+ /* -+ * in this case, *any* of these is okay. -+ */ -+ for (int i = 0; subdirs[i].name; i++) { -+ debug("searching for %s", subdirs[i].name); -+ pos0 = tosser0 = pos1 = -1; -+ rc = sscanf(current, subdirs[i].fmt, &pos0, &pos1, &pos2); -+ debug("current:'%s' rc:%d pos0:%d pos1:%d\n", current, rc, -+ *subdirs[i].pos0, *subdirs[i].pos1); -+ if (*subdirs[i].pos0 >= 0 && *subdirs[i].pos1 >= *subdirs[i].pos0) { -+ sz += *subdirs[i].pos1; -+ current += *subdirs[i].pos1; -+ break; -+ } -+ } -+ -+ debug("searching for nvme0/nvme0n1 or nvme0/nvme0n1/nvme0n1p1"); -+ rc = sscanf(current, "%nnvme%d/nvme%dn%d%n/nvme%dn%dp%d%n", -+ &pos0, &tosser0, &ctrl_id, &ns_id, &pos1, -+ &tosser1, &tosser2, &partition, &pos2); -+ debug("current:'%s' rc:%d pos0:%d pos1:%d pos2:%d\n", current, rc, pos0, pos1, pos2); - /* - * If it isn't of that form, it's not one of our nvme devices. - */ -@@ -81,13 +113,15 @@ parse_nvme(struct device *dev, const cha - if (dev->part == -1) - dev->part = partition; - -- pos1 = pos2; -+ pos1 = pos2; - } -+ - current += pos1; - - /* - * now fish the eui out of sysfs is there is one... - */ -+ debug("looking for the eui"); - char *euipath = NULL; - rc = read_sysfs_file(&filebuf, "class/block/nvme%dn%d/eui", ctrl_id, ns_id); - if (rc < 0 && (errno == ENOENT || errno == ENOTDIR)) { -@@ -110,6 +144,9 @@ parse_nvme(struct device *dev, const cha - errno = EINVAL; - return -1; - } -+ debug("eui is %02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx:%02hhx", -+ eui[0], eui[1], eui[2], eui[3], -+ eui[4], eui[5], eui[6], eui[7]); - dev->nvme_info.has_eui = 1; - memcpy(dev->nvme_info.eui, eui, sizeof(eui)); - } -Index: efivar-37/src/linux-virtual-root.c -=================================================================== ---- /dev/null -+++ efivar-37/src/linux-virtual-root.c -@@ -0,0 +1,87 @@ -+/* -+ * libefiboot - library for the manipulation of EFI boot variables -+ * Copyright 2012-2019 Red Hat, Inc. -+ * -+ * This library is free software; you can redistribute it and/or -+ * modify it under the terms of the GNU Lesser General Public License as -+ * published by the Free Software Foundation; either version 2.1 of the -+ * License, or (at your option) any later version. -+ * -+ * This library is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ * Lesser General Public License for more details. -+ * -+ * You should have received a copy of the GNU Lesser General Public -+ * License along with this library; if not, see -+ * . -+ */ -+ -+#include "fix_coverity.h" -+ -+#include -+#include -+#include -+#include -+#include -+ -+#include "efiboot.h" -+ -+/* -+ * Support virtually rooted devices (fibre+nvme, etc.) -+ * -+ * /sys/dev/block/$major:$minor looks like: -+ * 259:0 ->../../devices/virtual/nvme-fabrics/ctl/nvme0/nvme0n1 -+ * 259:1 ->../../devices/virtual/nvme-fabrics/ctl/nvme0/nvme0n1/nvme0n1p1 -+ * or: -+ * 259:5 -> ../../devices/virtual/nvme-subsystem/nvme-subsys0/nvme0n1 -+ * 259:6 -> ../../devices/virtual/nvme-subsystem/nvme-subsys0/nvme0n1/nvme0n1p1 -+ */ -+ -+static ssize_t -+parse_virtual_root(struct device *dev UNUSED, const char *current, const char *root UNUSED) -+{ -+ int rc; -+ ssize_t sz; -+ int pos0 = 0, pos1 = 0; -+ struct subdir { -+ const char * const name; -+ const char * const fmt; -+ } subdirs[] = { -+ {"../../devices/virtual", "%n../../devices/virtual/%n"}, -+ {"nvme-subsystem/", "%nnvme-subsystem/%n"}, -+ {"nvme-fabrics/ctl/", "%nnvme-fabrics/ctl/%n"}, -+ {NULL, NULL} -+ }; -+ -+ debug("entry"); -+ -+ for (int i = 0; subdirs[i].name; i++) { -+ debug("searching for %s", subdirs[i].name); -+ pos0 = pos1 = -1; -+ rc = sscanf(current, subdirs[i].fmt, &pos0, &pos1); -+ debug("current:'%s' rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); -+ if (rc == 1) { -+ sz += pos1; -+ current += pos1; -+ if (i > 0) -+ goto found; -+ } -+ } -+ -+ sz = 0; -+found: -+ debug("current:'%s' sz:%zd\n", current, sz); -+ return sz; -+} -+ -+static enum interface_type virtual_root_iftypes[] = { virtual_root, unknown }; -+ -+struct dev_probe HIDDEN virtual_root_parser = { -+ .name = "virtual_root", -+ .iftypes = virtual_root_iftypes, -+ .flags = DEV_ABBREV_ONLY|DEV_PROVIDES_ROOT, -+ .parse = parse_virtual_root, -+}; -+ -+// vim:fenc=utf-8:tw=75:noet -Index: efivar-37/src/linux.h -=================================================================== ---- efivar-37.orig/src/linux.h -+++ efivar-37/src/linux.h -@@ -99,7 +99,8 @@ struct emmc_info { - - enum interface_type { - unknown, -- isa, acpi_root, pci_root, soc_root, pci, network, -+ isa, acpi_root, pci_root, soc_root, virtual_root, -+ pci, network, - ata, atapi, scsi, sata, sas, - usb, i1394, fibre, i2o, - md, virtblk, -@@ -344,6 +345,7 @@ extern struct dev_probe pmem_parser; - extern struct dev_probe pci_root_parser; - extern struct dev_probe acpi_root_parser; - extern struct dev_probe soc_root_parser; -+extern struct dev_probe virtual_root_parser; - extern struct dev_probe pci_parser; - extern struct dev_probe sas_parser; - extern struct dev_probe sata_parser; -Index: efivar-37/src/linux.c -=================================================================== ---- efivar-37.orig/src/linux.c -+++ efivar-37/src/linux.c -@@ -170,16 +170,17 @@ int HIDDEN - set_disk_and_part_name(struct device *dev) - { - int rc = -1; -- -- /* -- * results are like such: -- * maj:min -> ../../devices/pci$PCI_STUFF/$BLOCKDEV_STUFF/block/$DISK/$PART -- */ -- - char *ultimate = pathseg(dev->link, -1); - char *penultimate = pathseg(dev->link, -2); - char *approximate = pathseg(dev->link, -3); - char *proximate = pathseg(dev->link, -4); -+ char *psl5 = pathseg(dev->link, -5); -+ -+ -+ /* -+ * devlinks look something like: -+ * maj:min -> ../../devices/pci$PCI_STUFF/$BLOCKDEV_STUFF/block/$DISK/$PART -+ */ - - errno = 0; - debug("dev->disk_name:%p dev->part_name:%p", dev->disk_name, dev->part_name); -@@ -188,6 +189,7 @@ set_disk_and_part_name(struct device *de - debug("penultimate:\"%s\"", penultimate ? : ""); - debug("approximate:\"%s\"", approximate ? : ""); - debug("proximate:\"%s\"", proximate ? : ""); -+ debug("psl5:'%s'", psl5 ? : ""); - - if (ultimate && penultimate && - ((proximate && !strcmp(proximate, "nvme")) || -@@ -232,6 +234,34 @@ set_disk_and_part_name(struct device *de - set_disk_name(dev, "%s", ultimate); - debug("disk:%s", ultimate); - rc = 0; -+ } else if ((proximate && ultimate && !strcmp(proximate, "nvme-fabrics")) || -+ (approximate && ultimate && !strcmp(approximate, "nvme-subsystem"))) { -+ /* -+ * 259:0 ->../../devices/virtual/nvme-fabrics/ctl/nvme0/nvme0n1 -+ * ^ proximate ^ ultimate -+ * or -+ * 259:5 -> ../../devices/virtual/nvme-subsystem/nvme-subsys0/nvme0n1 -+ * ^ approximate ^ penultimate -+ * ultimate ^ -+ */ -+ set_disk_name(dev, "%s", ultimate); -+ debug("disk:%s", ultimate); -+ rc = 0; -+ } else if ((psl5 && penultimate && ultimate && !strcmp(psl5, "nvme-fabrics")) || -+ (proximate && penultimate && ultimate && !strcmp(proximate, "nvme-subsystem"))) { -+ /* -+ * 259:1 -> ../../devices/virtual/nvme-fabrics/ctl/nvme0/nvme0n1/nvme0n1p1 -+ * ^psl5 ^ penultimate -+ * ultimate ^ -+ * or -+ * 259:6 -> ../../devices/virtual/nvme-subsystem/nvme-subsys0/nvme0n1/nvme0n1p1 -+ * ^ proximate ^ penultimate -+ * ultimate ^ -+ */ -+ set_disk_name(dev, "%s", penultimate); -+ set_part_name(dev, "%s", ultimate); -+ debug("disk:%s part:%s", penultimate, ultimate); -+ rc = 0; - } - - if (rc < 0) -@@ -248,6 +278,7 @@ static struct dev_probe *dev_probes[] = - &acpi_root_parser, - &pci_root_parser, - &soc_root_parser, -+ &virtual_root_parser, - &pci_parser, - &virtblk_parser, - &sas_parser, diff --git a/patches/efivar/37/0005-Fix-variable-sz-uninitialized-error.patch b/patches/efivar/37/0005-Fix-variable-sz-uninitialized-error.patch deleted file mode 100644 index 40edaa836..000000000 --- a/patches/efivar/37/0005-Fix-variable-sz-uninitialized-error.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 9dc04c2fd88b6e0e0fe411885041925d52f71af3 Mon Sep 17 00:00:00 2001 -From: Chih-Wei Huang -Date: Wed, 22 Jan 2020 12:16:12 +0800 -Subject: [PATCH 2/2] Fix variable 'sz' uninitialized error - -To fix the error: - -external/efivar/src/linux-virtual-root.c:66:4: error: variable 'sz' is uninitialized when used here [-Werror,-Wuninitialized] - sz += pos1; - ^~ -external/efivar/src/linux-virtual-root.c:45:12: note: initialize the variable 'sz' to silence this warning - ssize_t sz; - ^ - = 0 -1 error generated. - -Fixes: c41da0bd ("Handle /sys/devices/virtual/{nvme-fabrics,nvme-subsystem} devices") - -Signed-off-by: Chih-Wei Huang - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1891718 -Bug: https://github.com/rhboot/efivar/issues/157 -Origin: upstream, https://github.com/rhboot/efivar/commit/9dc04c2fd88b6e0e0fe411885041925d52f71af3 -Last-Updated: 2020-09-30 - -Index: efivar-37/src/linux-virtual-root.c -=================================================================== ---- efivar-37.orig/src/linux-virtual-root.c -+++ efivar-37/src/linux-virtual-root.c -@@ -42,7 +42,7 @@ static ssize_t - parse_virtual_root(struct device *dev UNUSED, const char *current, const char *root UNUSED) - { - int rc; -- ssize_t sz; -+ ssize_t sz = 0; - int pos0 = 0, pos1 = 0; - struct subdir { - const char * const name; diff --git a/patches/efivar/37/0006-Fix-parsing-for-nvme-subsystem-devices.patch b/patches/efivar/37/0006-Fix-parsing-for-nvme-subsystem-devices.patch deleted file mode 100644 index 0ae0b07bc..000000000 --- a/patches/efivar/37/0006-Fix-parsing-for-nvme-subsystem-devices.patch +++ /dev/null @@ -1,91 +0,0 @@ -From 4e12f997f8b6af76ef65e7045c232b7d642a1af4 Mon Sep 17 00:00:00 2001 -From: dann frazier -Date: Mon, 17 Aug 2020 13:11:15 -0600 -Subject: [PATCH] Fix parsing for nvme-subsystem devices - -nvme-subsystem devices have a link that looks like: - ../../devices/virtual/nvme-subsystem/nvme-subsys0/nvme0n1 - -However, the current code expects an additional /nvme0/ component, i.e.: - ../../devices/virtual/nvme-subsystem/nvme-subsys0/nvme0/nvme0n1 - -Fix this by adding a separate branch for parsing nvme-subsystem devices. - -Resolves github issue #157. - -Signed-off-by: dann frazier - -[ dannf: Context adjustments due to upstream whitespace cleanup and - dbgmk() calls ] - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1891718 -Bug: https://github.com/rhboot/efivar/issues/157 -Origin: upstream, https://github.com/rhboot/efivar/commit/4e12f997f8b6af76ef65e7045c232b7d642a1af4 -Last-Updated: 2020-10-08 - -Index: efivar/src/linux-nvme.c -=================================================================== ---- efivar.orig/src/linux-nvme.c -+++ efivar/src/linux-nvme.c -@@ -57,7 +57,7 @@ static ssize_t - parse_nvme(struct device *dev, const char *path, const char *root UNUSED) - { - const char *current = path; -- int rc; -+ int i, rc; - int32_t tosser0, tosser1, tosser2, ctrl_id, ns_id, partition; - uint8_t *filebuf = NULL; - int pos0 = -1, pos1 = -1, pos2 = -1; -@@ -78,7 +78,7 @@ parse_nvme(struct device *dev, const cha - /* - * in this case, *any* of these is okay. - */ -- for (int i = 0; subdirs[i].name; i++) { -+ for (i = 0; subdirs[i].name; i++) { - debug("searching for %s", subdirs[i].name); - pos0 = tosser0 = pos1 = -1; - rc = sscanf(current, subdirs[i].fmt, &pos0, &pos1, &pos2); -@@ -91,18 +91,31 @@ parse_nvme(struct device *dev, const cha - } - } - -- debug("searching for nvme0/nvme0n1 or nvme0/nvme0n1/nvme0n1p1"); -- rc = sscanf(current, "%nnvme%d/nvme%dn%d%n/nvme%dn%dp%d%n", -- &pos0, &tosser0, &ctrl_id, &ns_id, &pos1, -- &tosser1, &tosser2, &partition, &pos2); -- debug("current:'%s' rc:%d pos0:%d pos1:%d pos2:%d\n", current, rc, pos0, pos1, pos2); -- /* -- * If it isn't of that form, it's not one of our nvme devices. -- */ -- if (rc != 3 && rc != 6) -- return 0; -- if (rc == 3) -- pos2 = pos1; -+ if (!subdirs[i].name) -+ return 0; -+ -+ debug("searching for nvme-subsysN/"); -+ if (!strncmp("nvme-subsysN/", subdirs[i].name, 13)) { -+ debug("searching for nvme0n1"); -+ rc = sscanf(current, "%nnvme%dn%d%n", -+ &pos0, &ctrl_id, &ns_id, &pos1); -+ debug("current:'%s' rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); -+ if (rc != 2) -+ return 0; -+ } else { -+ debug("searching for nvme0/nvme0n1 or nvme0/nvme0n1/nvme0n1p1"); -+ rc = sscanf(current, "%nnvme%d/nvme%dn%d%n/nvme%dn%dp%d%n", -+ &pos0, &tosser0, &ctrl_id, &ns_id, &pos1, -+ &tosser1, &tosser2, &partition, &pos2); -+ debug("current:'%s' rc:%d pos0:%d pos1:%d pos2:%d\n", current, rc, pos0, pos1, pos2); -+ /* -+ * If it isn't of that form, it's not one of our nvme devices. -+ */ -+ if (rc != 3 && rc != 6) -+ return 0; -+ if (rc == 3) -+ pos2 = pos1; -+ } - - dev->nvme_info.ctrl_id = ctrl_id; - dev->nvme_info.ns_id = ns_id; diff --git a/patches/efivar/37/Always-initialize-any-variable-we-use-with-sscanf-s-.patch b/patches/efivar/37/Always-initialize-any-variable-we-use-with-sscanf-s-.patch deleted file mode 100644 index 2448f1696..000000000 --- a/patches/efivar/37/Always-initialize-any-variable-we-use-with-sscanf-s-.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 5dc12cc56c79d293cf68d12a0b84373a785745e7 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 28 May 2019 16:27:31 -0400 -Subject: [PATCH] Always initialize any variable we use with sscanf's %n - -Signed-off-by: Peter Jones - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1892792 -Origin: upstream,https://github.com/rhboot/efivar/commit/5dc12cc56c79d293cf68d12a0b84373a785745e7 -Last-Updated: 2020-08-24 - -Index: efivar/src/linux-acpi-root.c -=================================================================== ---- efivar.orig/src/linux-acpi-root.c -+++ efivar/src/linux-acpi-root.c -@@ -44,7 +44,7 @@ static ssize_t - parse_acpi_root(struct device *dev, const char *current, const char *root UNUSED) - { - int rc; -- int pos; -+ int pos = 0; - uint16_t pad0; - uint8_t pad1; - char *acpi_header = NULL; -Index: efivar/src/linux-pci-root.c -=================================================================== ---- efivar.orig/src/linux-pci-root.c -+++ efivar/src/linux-pci-root.c -@@ -44,7 +44,7 @@ static ssize_t - parse_pci_root(struct device *dev, const char *current, const char *root UNUSED) - { - int rc; -- int pos; -+ int pos = 0; - uint16_t root_domain; - uint8_t root_bus; - const char *devpart = current; -Index: efivar/src/linux-pci.c -=================================================================== ---- efivar.orig/src/linux-pci.c -+++ efivar/src/linux-pci.c -@@ -46,7 +46,7 @@ static ssize_t - parse_pci(struct device *dev, const char *current, const char *root) - { - int rc; -- int pos; -+ int pos = 0; - const char *devpart = current; - - debug("entry"); -Index: efivar/src/linux-soc-root.c -=================================================================== ---- efivar.orig/src/linux-soc-root.c -+++ efivar/src/linux-soc-root.c -@@ -41,7 +41,7 @@ static ssize_t - parse_soc_root(struct device *dev UNUSED, const char *current, const char *root UNUSED) - { - int rc; -- int pos; -+ int pos = 0; - const char *devpart = current; - - debug("entry"); -Index: efivar/src/linux-virtblk.c -=================================================================== ---- efivar.orig/src/linux-virtblk.c -+++ efivar/src/linux-virtblk.c -@@ -48,7 +48,7 @@ static ssize_t - parse_virtblk(struct device *dev, const char *current, const char *root UNUSED) - { - uint32_t tosser; -- int pos; -+ int pos = 0; - int rc; - - debug("entry"); diff --git a/patches/efivar/37/XX-Provide-char16_t-and-char32_t-definitions-for-ONIE.patch b/patches/efivar/37/XX-Provide-char16_t-and-char32_t-definitions-for-ONIE.patch deleted file mode 120000 index 404617fe9..000000000 --- a/patches/efivar/37/XX-Provide-char16_t-and-char32_t-definitions-for-ONIE.patch +++ /dev/null @@ -1 +0,0 @@ -../30/XX-Provide-char16_t-and-char32_t-definitions-for-ONIE.patch \ No newline at end of file diff --git a/patches/efivar/37/include-search-one-directory-up.patch b/patches/efivar/37/include-search-one-directory-up.patch deleted file mode 100644 index 1862206d6..000000000 --- a/patches/efivar/37/include-search-one-directory-up.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 6e79c3ac4f1e6aeb7781813b5f65896b3c2b34d0 Mon Sep 17 00:00:00 2001 -From: Alex Doyle -Date: Fri, 18 Dec 2020 08:19:22 -0800 -Subject: [PATCH] Patch the search path to search one directory up, so that - files looking for search ${TOPDIR}/src/include and find - ${TOPDIR}/src/include/efivars/efivars.h ...instead of looking for: - ${TOPDIR}/src/include/efivars/efivars/efivars.h - ---- - Make.defaults | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/Make.defaults b/Make.defaults -index cf91cd1..7985d0d 100644 ---- a/Make.defaults -+++ b/Make.defaults -@@ -30,8 +30,9 @@ ABIDW := abidw - ABIDIFF := abidiff - - PKGS = -- -+# ONIE - search src/include to NOT use host's header files. - host_cflags := $(HOST_CFLAGS) -I${TOPDIR}/src/include/efivar/ \ -+ -I${TOPDIR}/src/include/ \ - $(if $(findstring clang,$(HOST_CC)),$(clang_cflags),) \ - $(if $(findstring gcc,$(HOST_CC)),$(gcc_cflags),) - --- -2.20.1 - diff --git a/patches/efivar/37/makefile-changes-for-onie.patch b/patches/efivar/37/makefile-changes-for-onie.patch deleted file mode 100644 index c39449da7..000000000 --- a/patches/efivar/37/makefile-changes-for-onie.patch +++ /dev/null @@ -1,86 +0,0 @@ -Makefile changes for ONIE patch - -Copyright (C) 2020 Alex Doyle -Copyright (C) 2017 Curt Brune - -SPDX-License-Identifier: GPL-2.0 - -Minor Makefile changes for ONIE build environment. -Updated for efivar 37 - Alex - -diff --git a/Make.defaults b/Make.defaults -index 57cee6e..cf91cd1 100644 ---- a/Make.defaults -+++ b/Make.defaults -@@ -16,6 +16,8 @@ CC_FOR_BUILD ?= cc - CC := $(if $(filter default,$(origin CC)),$(CROSS_COMPILE)$(COMPILER),$(CC)) - CCLD_FOR_BUILD ?= $(CC_FOR_BUILD) - CCLD := $(if $(filter undefined,$(origin CCLD)),$(CC),$(CCLD)) -+HOST_CC := gcc -+HOST_CCLD := $(HOST_CC) - OPTIMIZE ?= -O2 -flto - CFLAGS ?= $(OPTIMIZE) -g3 - CFLAGS := $(CFLAGS) -@@ -29,6 +31,10 @@ ABIDIFF := abidiff - - PKGS = - -+host_cflags := $(HOST_CFLAGS) -I${TOPDIR}/src/include/efivar/ \ -+ $(if $(findstring clang,$(HOST_CC)),$(clang_cflags),) \ -+ $(if $(findstring gcc,$(HOST_CC)),$(gcc_cflags),) -+ - clang_cflags = -D_GNU_SOURCE -std=gnu11 -Wno-address-of-packed-member - gcc_cflags = -specs=$(TOPDIR)/gcc.specs - cflags = $(CFLAGS) -I${TOPDIR}/src/include/ \ -@@ -44,6 +50,9 @@ ccldflags = $(cflags) -L. $(CCLDFLAGS) $(LDFLAGS) \ - $(if $(findstring ccc-analyzer,$(CCLD)),$(clang_ccldflags),) \ - $(if $(findstring gcc,$(CCLD)),$(gcc_ccldflags),) \ - $(call pkg-config-ldflags) -+host_ccldflags := $(host_cflags) -L. $(HOST_CCLDFLAGS) $(HOST_LDFLAGS) \ -+ $(if $(findstring clang,$(HOST_CCLD)),$(clang_ccldflags),) \ -+ $(if $(findstring gcc,$(HOST_CCLD)),$(gcc_ccldflags),) - SOFLAGS=-shared - LDLIBS=$(foreach lib,$(LIBS),-l$(lib)) $(call pkg-config-ldlibs) - -diff --git a/Make.rules b/Make.rules -index 042585b..6227eb7 100644 ---- a/Make.rules -+++ b/Make.rules -@@ -58,6 +58,7 @@ define substitute-version - sed \ - -e "s,@@VERSION@@,$(VERSION),g" \ - -e "s,@@LIBDIR@@,$(LIBDIR),g" \ -+ -e "s,@@DESTDIR@@,$(DESTDIR),g" \ - -e "s,@@PREFIX@@,$(PREFIX),g" \ - -e "s,@@EXEC_PREFIX@@,$(EXEC_PREFIX),g" \ - -e "s,@@INCLUDEDIR@@,$(INCLUDEDIR),g" \ -diff --git a/Makefile b/Makefile -index 8c67b9d..5ea8280 100644 ---- a/Makefile -+++ b/Makefile -@@ -7,7 +7,12 @@ include $(TOPDIR)/Make.defaults - include $(TOPDIR)/Make.coverity - include $(TOPDIR)/Make.scan-build - --SUBDIRS := src docs -+# ONIE build environment changes -+export CC = $(CROSS_COMPILE)gcc -+export LDFLAGS += $(ONIE_LDFLAGS) -+export CFLAGS += $(ONIE_CFLAGS) -+ -+SUBDIRS := src - - all : | efivar.spec Make.version - all : -diff --git a/src/Makefile b/src/Makefile -index 76bc474..533d1bd 100644 ---- a/src/Makefile -+++ b/src/Makefile -@@ -55,6 +55,7 @@ include/efivar/efivar-guids.h : makeguids guids.txt - makeguids : CPPFLAGS+=-DEFIVAR_BUILD_ENVIRONMENT - makeguids : LIBS=dl - makeguids : $(MAKEGUIDS_SOURCES) -+ $(HOST_CCLD) $(host_ccldflags) $(CPPFLAGS) -o $@ $^ $(LDLIBS) - makeguids : CCLD=$(CCLD_FOR_BUILD) - - guids.o : guids.S | guids.bin names.bin diff --git a/patches/efivar/37/remove-arrows.patch b/patches/efivar/37/remove-arrows.patch deleted file mode 100644 index dc9a9e060..000000000 --- a/patches/efivar/37/remove-arrows.patch +++ /dev/null @@ -1,357 +0,0 @@ -commit e39fb5b9e590c6616459c15b5d95fbc09fb077d6 -Author: Peter Jones -Date: Thu Feb 21 15:26:23 2019 -0500 - - Get rid of the arrows in our debug messages. - - They're not *that* useful, and the code is clever and problematic. - - Resolves github issue #124 - - Signed-off-by: Peter Jones - -diff --git a/src/linux-acpi-root.c b/src/linux-acpi-root.c -index 06e69ee..30728de 100644 ---- a/src/linux-acpi-root.c -+++ b/src/linux-acpi-root.c -@@ -51,13 +51,6 @@ parse_acpi_root(struct device *dev, const char *current, const char *root UNUSED - char *colon; - - const char *devpart = current; -- char *spaces; -- -- pos = strlen(current); -- spaces = alloca(pos+1); -- memset(spaces, ' ', pos+1); -- spaces[pos] = '\0'; -- pos = 0; - - debug("entry"); - -diff --git a/src/linux-emmc.c b/src/linux-emmc.c -index 87e9247..b290ed0 100644 ---- a/src/linux-emmc.c -+++ b/src/linux-emmc.c -@@ -50,13 +50,6 @@ parse_emmc(struct device *dev, const char *current, const char *root UNUSED) - int rc; - int32_t tosser0, tosser1, tosser2, tosser3, slot_id, partition; - int pos0 = 0, pos1 = 0; -- char *spaces; -- -- pos0 = strlen(current); -- spaces = alloca(pos0+1); -- memset(spaces, ' ', pos0+1); -- spaces[pos0] = '\0'; -- pos0 = 0; - - debug("entry"); - -@@ -65,8 +58,6 @@ parse_emmc(struct device *dev, const char *current, const char *root UNUSED) - &tosser0, &tosser1, &tosser2, &slot_id, - &pos0, &tosser3, &partition, &pos1); - debug("current:\"%s\" rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); -- arrow(LOG_DEBUG, spaces, 9, pos0, rc, 4); -- arrow(LOG_DEBUG, spaces, 9, pos1, rc, 6); - /* - * If it isn't of that form, it's not one of our emmc devices. - */ -diff --git a/src/linux-md.c b/src/linux-md.c -index 0a5c1cd..cb584c9 100644 ---- a/src/linux-md.c -+++ b/src/linux-md.c -@@ -44,13 +44,6 @@ parse_md(struct device *dev, const char *current, const char *root UNUSED) - int rc; - int32_t md, tosser0, part; - int pos0 = 0, pos1 = 0; -- char *spaces; -- -- pos0 = strlen(current); -- spaces = alloca(pos0+1); -- memset(spaces, ' ', pos0+1); -- spaces[pos0] = '\0'; -- pos0 = 0; - - debug("entry"); - -@@ -58,7 +51,6 @@ parse_md(struct device *dev, const char *current, const char *root UNUSED) - rc = sscanf(current, "md%d/%nmd%dp%d%n", - &md, &pos0, &tosser0, &part, &pos1); - debug("current:\"%s\" rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); -- arrow(LOG_DEBUG, spaces, 9, pos0, rc, 3); - /* - * If it isn't of that form, it's not one of our partitioned md devices. - */ -diff --git a/src/linux-nvme.c b/src/linux-nvme.c -index d68d11a..1d8fc65 100644 ---- a/src/linux-nvme.c -+++ b/src/linux-nvme.c -@@ -54,13 +54,6 @@ parse_nvme(struct device *dev, const char *current, const char *root UNUSED) - int32_t tosser0, tosser1, tosser2, ctrl_id, ns_id, partition; - uint8_t *filebuf = NULL; - int pos0 = 0, pos1 = 0; -- char *spaces; -- -- pos0 = strlen(current); -- spaces = alloca(pos0+1); -- memset(spaces, ' ', pos0+1); -- spaces[pos0] = '\0'; -- pos0 = 0; - - debug("entry"); - -@@ -69,8 +62,6 @@ parse_nvme(struct device *dev, const char *current, const char *root UNUSED) - &tosser0, &ctrl_id, &ns_id, &pos0, - &tosser1, &tosser2, &partition, &pos1); - debug("current:\"%s\" rc:%d pos0:%d pos1:%d\n", current, rc, pos0, pos1); -- arrow(LOG_DEBUG, spaces, 9, pos0, rc, 3); -- arrow(LOG_DEBUG, spaces, 9, pos1, rc, 6); - /* - * If it isn't of that form, it's not one of our nvme devices. - */ -diff --git a/src/linux-pci-root.c b/src/linux-pci-root.c -index 5d1df06..0605acf 100644 ---- a/src/linux-pci-root.c -+++ b/src/linux-pci-root.c -@@ -48,13 +48,6 @@ parse_pci_root(struct device *dev, const char *current, const char *root UNUSED) - uint16_t root_domain; - uint8_t root_bus; - const char *devpart = current; -- char *spaces; -- -- pos = strlen(current); -- spaces = alloca(pos+1); -- memset(spaces, ' ', pos+1); -- spaces[pos] = '\0'; -- pos = 0; - - debug("entry"); - -diff --git a/src/linux-pci.c b/src/linux-pci.c -index f63f591..64aaefb 100644 ---- a/src/linux-pci.c -+++ b/src/linux-pci.c -@@ -48,13 +48,6 @@ parse_pci(struct device *dev, const char *current, const char *root) - int rc; - int pos; - const char *devpart = current; -- char *spaces; -- -- pos = strlen(current); -- spaces = alloca(pos+1); -- memset(spaces, ' ', pos+1); -- spaces[pos] = '\0'; -- pos = 0; - - debug("entry"); - -@@ -75,7 +68,6 @@ parse_pci(struct device *dev, const char *current, const char *root) - rc = sscanf(devpart, "%hx:%hhx:%hhx.%hhx/%n", - &domain, &bus, &device, &function, &pos); - debug("current:\"%s\" rc:%d pos:%d", devpart, rc, pos); -- arrow(LOG_DEBUG, spaces, 9, pos, rc, 3); - if (rc != 4) - break; - devpart += pos; -diff --git a/src/linux-sata.c b/src/linux-sata.c -index 8526502..3564117 100644 ---- a/src/linux-sata.c -+++ b/src/linux-sata.c -@@ -148,13 +148,6 @@ parse_sata(struct device *dev, const char *devlink, const char *root UNUSED) - uint64_t scsi_lun, tosser3; - int pos = 0; - int rc; -- char *spaces; -- -- pos = strlen(current); -- spaces = alloca(pos+1); -- memset(spaces, ' ', pos+1); -- spaces[pos] = '\0'; -- pos = 0; - - debug("entry"); - if (is_pata(dev)) { -@@ -169,7 +162,6 @@ parse_sata(struct device *dev, const char *devlink, const char *root UNUSED) - debug("searching for ata1/"); - rc = sscanf(current, "ata%"PRIu32"/%n", &print_id, &pos); - debug("current:\"%s\" rc:%d pos:%d\n", current, rc, pos); -- arrow(LOG_DEBUG, spaces, 9, pos, rc, 1); - /* - * If we don't find this one, it isn't an ata device, so return 0 not - * error. Later errors mean it is an ata device, but we can't parse -@@ -183,7 +175,6 @@ parse_sata(struct device *dev, const char *devlink, const char *root UNUSED) - debug("searching for host0/"); - rc = sscanf(current, "host%"PRIu32"/%n", &scsi_bus, &pos); - debug("current:\"%s\" rc:%d pos:%d\n", current, rc, pos); -- arrow(LOG_DEBUG, spaces, 9, pos, rc, 1); - if (rc != 1) - return -1; - current += pos; -@@ -193,7 +184,6 @@ parse_sata(struct device *dev, const char *devlink, const char *root UNUSED) - rc = sscanf(current, "target%"PRIu32":%"PRIu32":%"PRIu64"/%n", - &scsi_device, &scsi_target, &scsi_lun, &pos); - debug("current:\"%s\" rc:%d pos:%d\n", current, rc, pos); -- arrow(LOG_DEBUG, spaces, 9, pos, rc, 3); - if (rc != 3) - return -1; - current += pos; -@@ -203,7 +193,6 @@ parse_sata(struct device *dev, const char *devlink, const char *root UNUSED) - rc = sscanf(current, "%"PRIu32":%"PRIu32":%"PRIu32":%"PRIu64"/%n", - &tosser0, &tosser1, &tosser2, &tosser3, &pos); - debug("current:\"%s\" rc:%d pos:%d\n", current, rc, pos); -- arrow(LOG_DEBUG, spaces, 9, pos, rc, 4); - if (rc != 4) - return -1; - current += pos; -diff --git a/src/linux-scsi.c b/src/linux-scsi.c -index a5e81cf..04892f0 100644 ---- a/src/linux-scsi.c -+++ b/src/linux-scsi.c -@@ -45,13 +45,6 @@ parse_scsi_link(const char *current, uint32_t *scsi_host, - int rc; - int sz = 0; - int pos0 = 0, pos1 = 0; -- char *spaces; -- -- sz = strlen(current); -- spaces = alloca(sz+1); -- memset(spaces, ' ', sz+1); -- spaces[sz] = '\0'; -- sz = 0; - - debug("entry"); - /* -@@ -108,7 +101,6 @@ parse_scsi_link(const char *current, uint32_t *scsi_host, - debug("searching for host4/"); - rc = sscanf(current, "host%d/%n", scsi_host, &pos0); - debug("current:\"%s\" rc:%d pos0:%d\n", current+sz, rc, pos0); -- arrow(LOG_DEBUG, spaces, 9, pos0, rc, 1); - if (rc != 1) - return -1; - sz += pos0; -@@ -126,8 +118,6 @@ parse_scsi_link(const char *current, uint32_t *scsi_host, - rc = sscanf(current+sz, "port-%d:%d%n:%d%n", &tosser0, - &tosser1, &pos0, &tosser2, &pos1); - debug("current:\"%s\" rc:%d pos0:%d pos1:%d\n", current+sz, rc, pos0, pos1); -- arrow(LOG_DEBUG, spaces, 9, pos0, rc, 2); -- arrow(LOG_DEBUG, spaces, 9, pos1, rc, 3); - if (rc == 2 || rc == 3) { - sz += pos0; - pos0 = 0; -@@ -153,7 +143,6 @@ parse_scsi_link(const char *current, uint32_t *scsi_host, - debug("searching for expander-4:0/"); - rc = sscanf(current+sz, "expander-%d:%d/%n", &tosser0, &tosser1, &pos0); - debug("current:\"%s\" rc:%d pos0:%d\n", current+sz, rc, pos0); -- arrow(LOG_DEBUG, spaces, 9, pos0, rc, 2); - if (rc == 2) { - if (!remote_target_id) { - efi_error("Device is PHY is a remote target, but remote_target_id is NULL"); -@@ -169,7 +158,6 @@ parse_scsi_link(const char *current, uint32_t *scsi_host, - debug("searching for port-2:0:2/"); - rc = sscanf(current+sz, "port-%d:%d:%d/%n", &tosser0, &tosser1, &tosser2, &pos0); - debug("current:\"%s\" rc:%d pos0:%d\n", current+sz, rc, pos0); -- arrow(LOG_DEBUG, spaces, 9, pos0, rc, 3); - if (rc != 3) { - efi_error("Couldn't parse port expander port string"); - return -1; -@@ -192,8 +180,6 @@ parse_scsi_link(const char *current, uint32_t *scsi_host, - - pos1 = 0; - rc = sscanf(current + sz + pos0, ":%d%n", &tosser2, &pos1); -- arrow(LOG_DEBUG, spaces, 9, pos0, rc + 2, 2); -- arrow(LOG_DEBUG, spaces, 9, pos0 + pos1, rc + 2, 3); - if (rc != 0 && rc != 1) - return -1; - if (remote_port_id && rc == 1) -@@ -217,7 +203,6 @@ parse_scsi_link(const char *current, uint32_t *scsi_host, - rc = sscanf(current + sz, "target%d:%d:%"PRIu64"/%n", &tosser0, &tosser1, - &tosser3, &pos0); - debug("current:\"%s\" rc:%d pos0:%d\n", current+sz, rc, pos0); -- arrow(LOG_DEBUG, spaces, 9, pos0, rc, 3); - if (rc != 3) - return -1; - sz += pos0; -@@ -230,7 +215,6 @@ parse_scsi_link(const char *current, uint32_t *scsi_host, - rc = sscanf(current + sz, "%d:%d:%d:%"PRIu64"/%n", - scsi_bus, scsi_device, scsi_target, scsi_lun, &pos0); - debug("current:\"%s\" rc:%d pos0:%d\n", current+sz, rc, pos0); -- arrow(LOG_DEBUG, spaces, 9, pos0, rc, 4); - if (rc != 4) - return -1; - sz += pos0; -@@ -247,13 +231,6 @@ parse_scsi(struct device *dev, const char *current, const char *root UNUSED) - ssize_t sz; - int pos; - int rc; -- char *spaces; -- -- pos = strlen(current); -- spaces = alloca(pos+1); -- memset(spaces, ' ', pos+1); -- spaces[pos] = '\0'; -- pos = 0; - - debug("entry"); - -@@ -265,7 +242,6 @@ parse_scsi(struct device *dev, const char *current, const char *root UNUSED) - &dev->scsi_info.scsi_lun, - &pos); - debug("current:\"%s\" rc:%d pos:%d\n", dev->device, rc, pos); -- arrow(LOG_DEBUG, spaces, 9, pos, rc, 3); - if (rc != 4) - return 0; - -diff --git a/src/linux-soc-root.c b/src/linux-soc-root.c -index 394f496..373cd59 100644 ---- a/src/linux-soc-root.c -+++ b/src/linux-soc-root.c -@@ -43,13 +43,6 @@ parse_soc_root(struct device *dev UNUSED, const char *current, const char *root - int rc; - int pos; - const char *devpart = current; -- char *spaces; -- -- pos = strlen(current); -- spaces = alloca(pos+1); -- memset(spaces, ' ', pos+1); -- spaces[pos] = '\0'; -- pos = 0; - - debug("entry"); - -diff --git a/src/linux-virtblk.c b/src/linux-virtblk.c -index c54a813..2e9889d 100644 ---- a/src/linux-virtblk.c -+++ b/src/linux-virtblk.c -@@ -50,20 +50,12 @@ parse_virtblk(struct device *dev, const char *current, const char *root UNUSED) - uint32_t tosser; - int pos; - int rc; -- char *spaces; -- -- pos = strlen(current); -- spaces = alloca(pos+1); -- memset(spaces, ' ', pos+1); -- spaces[pos] = '\0'; -- pos = 0; - - debug("entry"); - - debug("searching for virtio0/"); - rc = sscanf(current, "virtio%x/%n", &tosser, &pos); - debug("current:\"%s\" rc:%d pos:%d\n", current, rc, pos); -- arrow(LOG_DEBUG, spaces, 9, pos, rc, 1); - /* - * If we couldn't find virtioX/ then it isn't a virtio device. - */ -diff --git a/src/util.h b/src/util.h -index ba8fee3..6d3c10e 100644 ---- a/src/util.h -+++ b/src/util.h -@@ -388,7 +388,6 @@ swizzle_guid_to_uuid(efi_guid_t *guid) - #undef log - #endif - #define log(level, fmt, args...) log_(__FILE__, __LINE__, __func__, level, fmt, ## args) --#define arrow(l,b,o,p,n,m) ({if(n==m){char c_=b[p+1]; b[o]='^'; b[p+o]='^';b[p+o+1]='\0';log(l,"%s",b);b[o]=' ';b[p+o]=' ';b[p+o+1]=c_;}}) - #define debug(fmt, args...) log(LOG_DEBUG, fmt, ## args) - - #endif /* EFIVAR_UTIL_H */ diff --git a/patches/efivar/37/series b/patches/efivar/37/series deleted file mode 100644 index dc13aca35..000000000 --- a/patches/efivar/37/series +++ /dev/null @@ -1,12 +0,0 @@ -# This series applies on GIT commit aee7302f16d85e21bc0898157348c063d2cb7ce8 -XX-Provide-char16_t-and-char32_t-definitions-for-ONIE.patch -makefile-changes-for-onie.patch -include-search-one-directory-up.patch -remove-arrows.patch -0001-Fix-the-error-path-in-set_disk_and_part_name.patch -0002-sysfs-parsers-make-all-the-sys-block-link-parsers-wo.patch -0003-Try-even-harder-to-find-disk-device-symlinks-in-sysf.patch -0004-Handle-sys-devices-virtual-nvme-fabrics-nvme-subsyst.patch -0005-Fix-variable-sz-uninitialized-error.patch -0006-Fix-parsing-for-nvme-subsystem-devices.patch -Always-initialize-any-variable-we-use-with-sscanf-s-.patch diff --git a/patches/gnu-efi/series b/patches/gnu-efi/series deleted file mode 100644 index cc7123c75..000000000 --- a/patches/gnu-efi/series +++ /dev/null @@ -1,2 +0,0 @@ -# This series applies on GIT commit 57632e2e12d41deed491f5d1e90353b6e335c7ce -update-makefile-patch diff --git a/patches/gnu-efi/update-makefile-patch b/patches/gnu-efi/update-makefile-patch deleted file mode 100644 index 4471f2fa3..000000000 --- a/patches/gnu-efi/update-makefile-patch +++ /dev/null @@ -1,42 +0,0 @@ -update makefile patch - -Minor updates to the Makefile to pass in ONIE build environment -variables. - -diff --git a/Make.defaults b/Make.defaults -index d825397..7c2f7d2 100755 ---- a/Make.defaults -+++ b/Make.defaults -@@ -75,6 +75,11 @@ ifeq ($(ARCH),amd64) - override ARCH := x86_64 - endif - -+# Seed compiler and linker flags ONIE build environment flags -+CFLAGS = $(ONIE_CFLAGS) -+CPPFLAGS = $(ONIE_CPPFLAGS) -+LDFLAGS = $(ONIE_LDFLAGS) -+ - # - # Where to build the package - # -diff --git a/apps/Makefile b/apps/Makefile -index cfae62d..3377d2a 100644 ---- a/apps/Makefile -+++ b/apps/Makefile -@@ -45,14 +45,14 @@ TOPDIR = $(SRCDIR)/.. - CDIR=$(TOPDIR)/.. - LINUX_HEADERS = /usr/src/sys/build - CPPFLAGS += -D__KERNEL__ -I$(LINUX_HEADERS)/include --CRTOBJS = ../gnuefi/crt0-efi-$(ARCH).o -+CRTOBJS = ../$(ARCH)/gnuefi/crt0-efi-$(ARCH).o - - LDSCRIPT = $(TOPDIR)/gnuefi/elf_$(ARCH)_efi.lds - ifneq (,$(findstring FreeBSD,$(OS))) - LDSCRIPT = $(TOPDIR)/gnuefi/elf_$(ARCH)_fbsd_efi.lds - endif - --LDFLAGS += -shared -Bsymbolic -L../lib -L../gnuefi $(CRTOBJS) -+LDFLAGS += -shared -Bsymbolic -L../$(ARCH)/lib -L../$(ARCH)/gnuefi $(CRTOBJS) - - LOADLIBES += -lefi -lgnuefi - LOADLIBES += $(LIBGCC) diff --git a/patches/gptfdisk/add-onie-partition-types.patch b/patches/gptfdisk/add-onie-partition-types.patch deleted file mode 100644 index d7457cc29..000000000 --- a/patches/gptfdisk/add-onie-partition-types.patch +++ /dev/null @@ -1,30 +0,0 @@ -Add ONIE partition types - -Copyright (C) 2014 Curt Brune - -SPDX-License-Identifier: GPL-2.0 - -Add GUID for two ONIE partition types: - - // Open Network Install Environment (ONIE) Boot Partition - AddType(0x3100, "7412F7D5-A156-4B13-81DC-867174929325", "ONIE boot"); - - // Open Network Install Environment (ONIE) Configuration Partition - AddType(0x3100, "D4E6E2CD-4469-46F3-B5CB-1BFF57AFC149", "ONIE config"); - -diff --git a/parttypes.cc b/parttypes.cc -index 87f5c86..f78489b 100644 ---- a/parttypes.cc -+++ b/parttypes.cc -@@ -91,6 +91,11 @@ void PartType::AddAllTypes(void) { - AddType(0x1e00, "EBD0A0A2-B9E5-4433-87C0-68B6B72699C7", "Microsoft basic data", 0); // Hidden FAT-16 LBA - AddType(0x2700, "DE94BBA4-06D1-4D40-A16A-BFD50179D6AC", "Windows RE"); - -+ // Open Network Install Environment (ONIE) specific types. -+ // See http://www.onie.org/ -+ AddType(0x3000, "7412F7D5-A156-4B13-81DC-867174929325", "ONIE boot"); -+ AddType(0x3001, "D4E6E2CD-4469-46F3-B5CB-1BFF57AFC149", "ONIE config"); -+ - // PowerPC reference platform boot partition - AddType(0x4100, "9E1A2D38-C612-4316-AA26-8B49521E5A8B", "PowerPC PReP boot"); - diff --git a/patches/gptfdisk/gptfdisk-onie-cross-compile.patch b/patches/gptfdisk/gptfdisk-onie-cross-compile.patch index bed41a0d5..f38f0c2bb 100644 --- a/patches/gptfdisk/gptfdisk-onie-cross-compile.patch +++ b/patches/gptfdisk/gptfdisk-onie-cross-compile.patch @@ -9,8 +9,12 @@ the ONIE build environment. Main changes: -- prefix gcc and g++ with $(CROSS_PREFIX) -- remove Unicode support +- prefix gcc and g++ with $(CROSS_COMPILE) +- append $(ONIE_CXXFLAGS) and $(ONIE_LDFLAGS) + +Note: as of gptfdisk 1.0.10 the default Linux build no longer enables +Unicode (USE_UTF16) or links against ICU (-licuio -licuuc), so those +removals from earlier versions are no longer necessary. diff --git a/.gitignore b/.gitignore new file mode 100644 @@ -21,42 +25,25 @@ index 0000000..61758e7 +gdisk +sgdisk diff --git a/Makefile b/Makefile -index 3364082..ae7d862 100644 +index af9701c..2c46185 100644 --- a/Makefile +++ b/Makefile -@@ -1,7 +1,7 @@ --CC=gcc --CXX=g++ +@@ -64,6 +64,8 @@ endif + $(info Build target is $(TARGET)) + + # Default/Linux settings.... +CC=$(CROSS_COMPILE)gcc +CXX=$(CROSS_COMPILE)g++ - CFLAGS+=-D_FILE_OFFSET_BITS=64 --CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 -D USE_UTF16 -+CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 - #CXXFLAGS+=-Wall -D_FILE_OFFSET_BITS=64 - LDFLAGS+= - LIB_NAMES=crc32 support guid gptpart mbrpart basicmbr mbr gpt bsd parttypes attributes diskio diskio-unix -@@ -11,11 +11,14 @@ MBR_LIB_OBJS=$(MBR_LIBS:=.o) - LIB_HEADERS=$(LIB_NAMES:=.h) + STRIP?=strip + #CXXFLAGS+=-O2 -Wall -D_FILE_OFFSET_BITS=64 -D USE_UTF16 + CXXFLAGS+=-O2 -Wall -D_FILE_OFFSET_BITS=64 +@@ -142,6 +144,9 @@ LIB_HEADERS=$(LIB_NAMES:=.h) DEPEND= makedepend $(CXXFLAGS) + ALL_EXE=$(ALL:=$(FN_EXTENSION)) +CXXFLAGS+= $(ONIE_CXXFLAGS) +LDFLAGS+= $(ONIE_LDFLAGS) + - all: cgdisk gdisk sgdisk fixparts + all: $(ALL) gdisk: $(LIB_OBJS) gdisk.o gpttext.o - # $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -luuid -o gdisk -- $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -licuio -licuuc -luuid -o gdisk -+ $(CXX) $(LIB_OBJS) gdisk.o gpttext.o $(LDFLAGS) -luuid -o gdisk - - cgdisk: $(LIB_OBJS) cgdisk.o gptcurses.o - # $(CXX) $(LIB_OBJS) cgdisk.o gptcurses.o $(LDFLAGS) -luuid -lncurses -o cgdisk -@@ -23,7 +26,7 @@ cgdisk: $(LIB_OBJS) cgdisk.o gptcurses.o - - sgdisk: $(LIB_OBJS) sgdisk.o gptcl.o - # $(CXX) $(LIB_OBJS) sgdisk.o gptcl.o $(LDFLAGS) -luuid -lpopt -o sgdisk -- $(CXX) $(LIB_OBJS) sgdisk.o gptcl.o $(LDFLAGS) -licuio -licuuc -luuid -lpopt -o sgdisk -+ $(CXX) $(LIB_OBJS) sgdisk.o gptcl.o $(LDFLAGS) -luuid -lpopt -o sgdisk - - fixparts: $(MBR_LIB_OBJS) fixparts.o - $(CXX) $(MBR_LIB_OBJS) fixparts.o $(LDFLAGS) -o fixparts diff --git a/patches/gptfdisk/series b/patches/gptfdisk/series index 5b6085b5f..8c985546d 100644 --- a/patches/gptfdisk/series +++ b/patches/gptfdisk/series @@ -1,3 +1,6 @@ -# This series applies on GIT commit fbfb51abe2cf88fcac9d36c46b0e3fe56495233d +# This series applies on the gptfdisk 1.0.10 upstream release tarball +# (gptfdisk-1.0.10.tar.gz). As of 1.0.10 the ONIE partition type codes +# (0x3000 "ONIE boot" / 0x3001 "ONIE config") are present in upstream +# parttypes.cc, so the former add-onie-partition-types.patch is no longer +# needed and has been dropped. gptfdisk-onie-cross-compile.patch -add-onie-partition-types.patch diff --git a/patches/grub/2.02/bootp_new_net_bootp6_command.patch b/patches/grub/2.02/bootp_new_net_bootp6_command.patch deleted file mode 100644 index 9126db1f3..000000000 --- a/patches/grub/2.02/bootp_new_net_bootp6_command.patch +++ /dev/null @@ -1,1117 +0,0 @@ -From 8157f994be34098f4e82e91dda70629a940c1f78 Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 27 Oct 2016 17:41:04 -0400 -Subject: bootp: New net_bootp6 command - -Implement new net_bootp6 command for IPv6 network auto configuration via the -DHCPv6 protocol (RFC3315). - -Signed-off-by: Michael Chang -Signed-off-by: Ken Lin - -Patch-Name: bootp_new_net_bootp6_command.patch ---- - grub-core/net/bootp.c | 908 +++++++++++++++++++++++++++++++++++++++++++++++++- - grub-core/net/ip.c | 39 +++ - include/grub/net.h | 72 ++++ - 3 files changed, 1018 insertions(+), 1 deletion(-) - -diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c -index 9e2fdb795..172528ee8 100644 ---- a/grub-core/net/bootp.c -+++ b/grub-core/net/bootp.c -@@ -24,6 +24,98 @@ - #include - #include - #include -+#include -+#include -+ -+static int -+dissect_url (const char *url, char **proto, char **host, char **path) -+{ -+ const char *p, *ps; -+ grub_size_t l; -+ -+ *proto = *host = *path = NULL; -+ ps = p = url; -+ -+ while ((p = grub_strchr (p, ':'))) -+ { -+ if (grub_strlen (p) < sizeof ("://") - 1) -+ break; -+ if (grub_memcmp (p, "://", sizeof ("://") - 1) == 0) -+ { -+ l = p - ps; -+ *proto = grub_malloc (l + 1); -+ if (!*proto) -+ { -+ grub_print_error (); -+ return 0; -+ } -+ -+ grub_memcpy (*proto, ps, l); -+ (*proto)[l] = '\0'; -+ p += sizeof ("://") - 1; -+ break; -+ } -+ ++p; -+ } -+ -+ if (!*proto) -+ { -+ grub_dprintf ("bootp", "url: %s is not valid, protocol not found\n", url); -+ return 0; -+ } -+ -+ ps = p; -+ p = grub_strchr (p, '/'); -+ -+ if (!p) -+ { -+ grub_dprintf ("bootp", "url: %s is not valid, host/path not found\n", url); -+ grub_free (*proto); -+ *proto = NULL; -+ return 0; -+ } -+ -+ l = p - ps; -+ -+ if (l > 2 && ps[0] == '[' && ps[l - 1] == ']') -+ { -+ *host = grub_malloc (l - 1); -+ if (!*host) -+ { -+ grub_print_error (); -+ grub_free (*proto); -+ *proto = NULL; -+ return 0; -+ } -+ grub_memcpy (*host, ps + 1, l - 2); -+ (*host)[l - 2] = 0; -+ } -+ else -+ { -+ *host = grub_malloc (l + 1); -+ if (!*host) -+ { -+ grub_print_error (); -+ grub_free (*proto); -+ *proto = NULL; -+ return 0; -+ } -+ grub_memcpy (*host, ps, l); -+ (*host)[l] = 0; -+ } -+ -+ *path = grub_strdup (p); -+ if (!*path) -+ { -+ grub_print_error (); -+ grub_free (*host); -+ grub_free (*proto); -+ *host = NULL; -+ *proto = NULL; -+ return 0; -+ } -+ return 1; -+} - - static void - parse_dhcp_vendor (const char *name, const void *vend, int limit, int *mask) -@@ -270,6 +362,578 @@ grub_net_configure_by_dhcp_ack (const char *name, - return inter; - } - -+/* The default netbuff size for sending DHCPv6 packets which should be -+ large enough to hold the information */ -+#define GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE 512 -+ -+struct grub_dhcp6_options -+{ -+ grub_uint8_t *client_duid; -+ grub_uint16_t client_duid_len; -+ grub_uint8_t *server_duid; -+ grub_uint16_t server_duid_len; -+ grub_uint32_t iaid; -+ grub_uint32_t t1; -+ grub_uint32_t t2; -+ grub_net_network_level_address_t *ia_addr; -+ grub_uint32_t preferred_lifetime; -+ grub_uint32_t valid_lifetime; -+ grub_net_network_level_address_t *dns_server_addrs; -+ grub_uint16_t num_dns_server; -+ char *boot_file_proto; -+ char *boot_file_server_ip; -+ char *boot_file_path; -+}; -+ -+typedef struct grub_dhcp6_options *grub_dhcp6_options_t; -+ -+struct grub_dhcp6_session -+{ -+ struct grub_dhcp6_session *next; -+ struct grub_dhcp6_session **prev; -+ grub_uint32_t iaid; -+ grub_uint32_t transaction_id:24; -+ grub_uint64_t start_time; -+ struct grub_net_dhcp6_option_duid_ll duid; -+ struct grub_net_network_level_interface *iface; -+ -+ /* The associated dhcpv6 options */ -+ grub_dhcp6_options_t adv; -+ grub_dhcp6_options_t reply; -+}; -+ -+typedef struct grub_dhcp6_session *grub_dhcp6_session_t; -+ -+typedef void (*dhcp6_option_hook_fn) (const struct grub_net_dhcp6_option *opt, void *data); -+ -+static void -+foreach_dhcp6_option (const struct grub_net_dhcp6_option *opt, grub_size_t size, -+ dhcp6_option_hook_fn hook, void *hook_data); -+ -+static void -+parse_dhcp6_iaaddr (const struct grub_net_dhcp6_option *opt, void *data) -+{ -+ grub_dhcp6_options_t dhcp6 = (grub_dhcp6_options_t )data; -+ -+ grub_uint16_t code = grub_be_to_cpu16 (opt->code); -+ grub_uint16_t len = grub_be_to_cpu16 (opt->len); -+ -+ if (code == GRUB_NET_DHCP6_OPTION_IAADDR) -+ { -+ const struct grub_net_dhcp6_option_iaaddr *iaaddr; -+ iaaddr = (const struct grub_net_dhcp6_option_iaaddr *)opt->data; -+ -+ if (len < sizeof (*iaaddr)) -+ { -+ grub_dprintf ("bootp", "DHCPv6: code %u with insufficient length %u\n", code, len); -+ return; -+ } -+ if (!dhcp6->ia_addr) -+ { -+ dhcp6->ia_addr = grub_malloc (sizeof(*dhcp6->ia_addr)); -+ dhcp6->ia_addr->type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; -+ dhcp6->ia_addr->ipv6[0] = grub_get_unaligned64 (iaaddr->addr); -+ dhcp6->ia_addr->ipv6[1] = grub_get_unaligned64 (iaaddr->addr + 8); -+ dhcp6->preferred_lifetime = grub_be_to_cpu32 (iaaddr->preferred_lifetime); -+ dhcp6->valid_lifetime = grub_be_to_cpu32 (iaaddr->valid_lifetime); -+ } -+ } -+} -+ -+static void -+parse_dhcp6_option (const struct grub_net_dhcp6_option *opt, void *data) -+{ -+ grub_dhcp6_options_t dhcp6 = (grub_dhcp6_options_t)data; -+ grub_uint16_t code = grub_be_to_cpu16 (opt->code); -+ grub_uint16_t len = grub_be_to_cpu16 (opt->len); -+ -+ switch (code) -+ { -+ case GRUB_NET_DHCP6_OPTION_CLIENTID: -+ -+ if (dhcp6->client_duid || !len) -+ { -+ grub_dprintf ("bootp", "Skipped DHCPv6 CLIENTID with length %u\n", len); -+ break; -+ } -+ dhcp6->client_duid = grub_malloc (len); -+ grub_memcpy (dhcp6->client_duid, opt->data, len); -+ dhcp6->client_duid_len = len; -+ break; -+ -+ case GRUB_NET_DHCP6_OPTION_SERVERID: -+ -+ if (dhcp6->server_duid || !len) -+ { -+ grub_dprintf ("bootp", "Skipped DHCPv6 SERVERID with length %u\n", len); -+ break; -+ } -+ dhcp6->server_duid = grub_malloc (len); -+ grub_memcpy (dhcp6->server_duid, opt->data, len); -+ dhcp6->server_duid_len = len; -+ break; -+ -+ case GRUB_NET_DHCP6_OPTION_IA_NA: -+ { -+ const struct grub_net_dhcp6_option_iana *ia_na; -+ grub_uint16_t data_len; -+ -+ if (dhcp6->iaid || len < sizeof (*ia_na)) -+ { -+ grub_dprintf ("bootp", "Skipped DHCPv6 IA_NA with length %u\n", len); -+ break; -+ } -+ ia_na = (const struct grub_net_dhcp6_option_iana *)opt->data; -+ dhcp6->iaid = grub_be_to_cpu32 (ia_na->iaid); -+ dhcp6->t1 = grub_be_to_cpu32 (ia_na->t1); -+ dhcp6->t2 = grub_be_to_cpu32 (ia_na->t2); -+ -+ data_len = len - sizeof (*ia_na); -+ if (data_len) -+ foreach_dhcp6_option ((const struct grub_net_dhcp6_option *)ia_na->data, data_len, parse_dhcp6_iaaddr, dhcp6); -+ } -+ break; -+ -+ case GRUB_NET_DHCP6_OPTION_DNS_SERVERS: -+ { -+ const grub_uint8_t *po; -+ grub_uint16_t ln; -+ grub_net_network_level_address_t *la; -+ -+ if (!len || len & 0xf) -+ { -+ grub_dprintf ("bootp", "Skip invalid length DHCPv6 DNS_SERVERS \n"); -+ break; -+ } -+ dhcp6->num_dns_server = ln = len >> 4; -+ dhcp6->dns_server_addrs = la = grub_zalloc (ln * sizeof (*la)); -+ -+ for (po = opt->data; ln > 0; po += 0x10, la++, ln--) -+ { -+ la->type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; -+ la->ipv6[0] = grub_get_unaligned64 (po); -+ la->ipv6[1] = grub_get_unaligned64 (po + 8); -+ la->option = DNS_OPTION_PREFER_IPV6; -+ } -+ } -+ break; -+ -+ case GRUB_NET_DHCP6_OPTION_BOOTFILE_URL: -+ dissect_url ((const char *)opt->data, -+ &dhcp6->boot_file_proto, -+ &dhcp6->boot_file_server_ip, -+ &dhcp6->boot_file_path); -+ break; -+ -+ default: -+ break; -+ } -+} -+ -+static void -+foreach_dhcp6_option (const struct grub_net_dhcp6_option *opt, grub_size_t size, dhcp6_option_hook_fn hook, void *hook_data) -+{ -+ while (size) -+ { -+ grub_uint16_t code, len; -+ -+ if (size < sizeof (*opt)) -+ { -+ grub_dprintf ("bootp", "DHCPv6: Options stopped with remaining size %" PRIxGRUB_SIZE "\n", size); -+ break; -+ } -+ size -= sizeof (*opt); -+ len = grub_be_to_cpu16 (opt->len); -+ code = grub_be_to_cpu16 (opt->code); -+ if (size < len) -+ { -+ grub_dprintf ("bootp", "DHCPv6: Options stopped at out of bound length %u for option %u\n", len, code); -+ break; -+ } -+ if (!len) -+ { -+ grub_dprintf ("bootp", "DHCPv6: Options stopped at zero length option %u\n", code); -+ break; -+ } -+ else -+ { -+ if (hook) -+ hook (opt, hook_data); -+ size -= len; -+ opt = (const struct grub_net_dhcp6_option *)((grub_uint8_t *)opt + len + sizeof (*opt)); -+ } -+ } -+} -+ -+static grub_dhcp6_options_t -+grub_dhcp6_options_get (const struct grub_net_dhcp6_packet *v6h, -+ grub_size_t size) -+{ -+ grub_dhcp6_options_t options; -+ -+ if (size < sizeof (*v6h)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("DHCPv6 packet size too small")); -+ return NULL; -+ } -+ -+ options = grub_zalloc (sizeof(*options)); -+ if (!options) -+ return NULL; -+ -+ foreach_dhcp6_option ((const struct grub_net_dhcp6_option *)v6h->dhcp_options, -+ size - sizeof (*v6h), parse_dhcp6_option, options); -+ -+ return options; -+} -+ -+static void -+grub_dhcp6_options_free (grub_dhcp6_options_t options) -+{ -+ if (options->client_duid) -+ grub_free (options->client_duid); -+ if (options->server_duid) -+ grub_free (options->server_duid); -+ if (options->ia_addr) -+ grub_free (options->ia_addr); -+ if (options->dns_server_addrs) -+ grub_free (options->dns_server_addrs); -+ if (options->boot_file_proto) -+ grub_free (options->boot_file_proto); -+ if (options->boot_file_server_ip) -+ grub_free (options->boot_file_server_ip); -+ if (options->boot_file_path) -+ grub_free (options->boot_file_path); -+ -+ grub_free (options); -+} -+ -+static grub_dhcp6_session_t grub_dhcp6_sessions; -+#define FOR_DHCP6_SESSIONS(var) FOR_LIST_ELEMENTS (var, grub_dhcp6_sessions) -+ -+static void -+grub_net_configure_by_dhcp6_info (const char *name, -+ struct grub_net_card *card, -+ grub_dhcp6_options_t dhcp6, -+ int is_def, -+ int flags, -+ struct grub_net_network_level_interface **ret_inf) -+{ -+ grub_net_network_level_netaddress_t netaddr; -+ struct grub_net_network_level_interface *inf; -+ -+ if (dhcp6->ia_addr) -+ { -+ inf = grub_net_add_addr (name, card, dhcp6->ia_addr, &card->default_address, flags); -+ -+ netaddr.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; -+ netaddr.ipv6.base[0] = dhcp6->ia_addr->ipv6[0]; -+ netaddr.ipv6.base[1] = 0; -+ netaddr.ipv6.masksize = 64; -+ grub_net_add_route (name, netaddr, inf); -+ -+ if (ret_inf) -+ *ret_inf = inf; -+ } -+ -+ if (dhcp6->dns_server_addrs) -+ { -+ grub_uint16_t i; -+ -+ for (i = 0; i < dhcp6->num_dns_server; ++i) -+ grub_net_add_dns_server (dhcp6->dns_server_addrs + i); -+ } -+ -+ if (dhcp6->boot_file_path) -+ grub_env_set_net_property (name, "boot_file", dhcp6->boot_file_path, -+ grub_strlen (dhcp6->boot_file_path)); -+ -+ if (is_def && dhcp6->boot_file_server_ip) -+ { -+ grub_net_default_server = grub_strdup (dhcp6->boot_file_server_ip); -+ grub_env_set ("net_default_interface", name); -+ grub_env_export ("net_default_interface"); -+ } -+} -+ -+static void -+grub_dhcp6_session_add (struct grub_net_network_level_interface *iface, -+ grub_uint32_t iaid) -+{ -+ grub_dhcp6_session_t se; -+ struct grub_datetime date; -+ grub_err_t err; -+ grub_int32_t t = 0; -+ -+ se = grub_malloc (sizeof (*se)); -+ -+ err = grub_get_datetime (&date); -+ if (err || !grub_datetime2unixtime (&date, &t)) -+ { -+ grub_errno = GRUB_ERR_NONE; -+ t = 0; -+ } -+ -+ se->iface = iface; -+ se->iaid = iaid; -+ se->transaction_id = t; -+ se->start_time = grub_get_time_ms (); -+ se->duid.type = grub_cpu_to_be16_compile_time (3) ; -+ se->duid.hw_type = grub_cpu_to_be16_compile_time (1); -+ grub_memcpy (&se->duid.hwaddr, &iface->hwaddress.mac, sizeof (se->duid.hwaddr)); -+ se->adv = NULL; -+ se->reply = NULL; -+ grub_list_push (GRUB_AS_LIST_P (&grub_dhcp6_sessions), GRUB_AS_LIST (se)); -+} -+ -+static void -+grub_dhcp6_session_remove (grub_dhcp6_session_t se) -+{ -+ grub_list_remove (GRUB_AS_LIST (se)); -+ if (se->adv) -+ grub_dhcp6_options_free (se->adv); -+ if (se->reply) -+ grub_dhcp6_options_free (se->reply); -+ grub_free (se); -+} -+ -+static void -+grub_dhcp6_session_remove_all (void) -+{ -+ grub_dhcp6_session_t se; -+ -+ FOR_DHCP6_SESSIONS (se) -+ { -+ grub_dhcp6_session_remove (se); -+ se = grub_dhcp6_sessions; -+ } -+} -+ -+static grub_err_t -+grub_dhcp6_session_configure_network (grub_dhcp6_session_t se) -+{ -+ char *name; -+ -+ name = grub_xasprintf ("%s:dhcp6", se->iface->card->name); -+ if (!name) -+ return grub_errno; -+ -+ grub_net_configure_by_dhcp6_info (name, se->iface->card, se->reply, 1, 0, 0); -+ grub_free (name); -+ -+ return GRUB_ERR_NONE; -+} -+ -+static grub_err_t -+grub_dhcp6_session_send_request (grub_dhcp6_session_t se) -+{ -+ struct grub_net_buff *nb; -+ struct grub_net_dhcp6_option *opt; -+ struct grub_net_dhcp6_packet *v6h; -+ struct grub_net_dhcp6_option_iana *ia_na; -+ struct grub_net_dhcp6_option_iaaddr *iaaddr; -+ struct udphdr *udph; -+ grub_net_network_level_address_t multicast; -+ grub_net_link_level_address_t ll_multicast; -+ grub_uint64_t elapsed; -+ struct grub_net_network_level_interface *inf = se->iface; -+ grub_dhcp6_options_t dhcp6 = se->adv; -+ grub_err_t err = GRUB_ERR_NONE; -+ -+ multicast.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; -+ multicast.ipv6[0] = grub_cpu_to_be64_compile_time (0xff02ULL << 48); -+ multicast.ipv6[1] = grub_cpu_to_be64_compile_time (0x10002ULL); -+ -+ err = grub_net_link_layer_resolve (inf, &multicast, &ll_multicast); -+ if (err) -+ return err; -+ -+ nb = grub_netbuff_alloc (GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE); -+ -+ if (!nb) -+ return grub_errno; -+ -+ err = grub_netbuff_reserve (nb, GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ err = grub_netbuff_push (nb, dhcp6->client_duid_len + sizeof (*opt)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ opt = (struct grub_net_dhcp6_option *)nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_CLIENTID); -+ opt->len = grub_cpu_to_be16 (dhcp6->client_duid_len); -+ grub_memcpy (opt->data, dhcp6->client_duid , dhcp6->client_duid_len); -+ -+ err = grub_netbuff_push (nb, dhcp6->server_duid_len + sizeof (*opt)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ opt = (struct grub_net_dhcp6_option *)nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_SERVERID); -+ opt->len = grub_cpu_to_be16 (dhcp6->server_duid_len); -+ grub_memcpy (opt->data, dhcp6->server_duid , dhcp6->server_duid_len); -+ -+ err = grub_netbuff_push (nb, sizeof (*ia_na) + sizeof (*opt)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ if (dhcp6->ia_addr) -+ { -+ err = grub_netbuff_push (nb, sizeof(*iaaddr) + sizeof (*opt)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ } -+ opt = (struct grub_net_dhcp6_option *)nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IA_NA); -+ opt->len = grub_cpu_to_be16 (sizeof (*ia_na)); -+ if (dhcp6->ia_addr) -+ opt->len += grub_cpu_to_be16 (sizeof(*iaaddr) + sizeof (*opt)); -+ -+ ia_na = (struct grub_net_dhcp6_option_iana *)opt->data; -+ ia_na->iaid = grub_cpu_to_be32 (dhcp6->iaid); -+ -+ ia_na->t1 = grub_cpu_to_be32 (dhcp6->t1); -+ ia_na->t2 = grub_cpu_to_be32 (dhcp6->t2); -+ -+ if (dhcp6->ia_addr) -+ { -+ opt = (struct grub_net_dhcp6_option *)ia_na->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IAADDR); -+ opt->len = grub_cpu_to_be16 (sizeof (*iaaddr)); -+ iaaddr = (struct grub_net_dhcp6_option_iaaddr *)opt->data; -+ grub_set_unaligned64 (iaaddr->addr, dhcp6->ia_addr->ipv6[0]); -+ grub_set_unaligned64 (iaaddr->addr + 8, dhcp6->ia_addr->ipv6[1]); -+ -+ iaaddr->preferred_lifetime = grub_cpu_to_be32 (dhcp6->preferred_lifetime); -+ iaaddr->valid_lifetime = grub_cpu_to_be32 (dhcp6->valid_lifetime); -+ } -+ -+ err = grub_netbuff_push (nb, sizeof (*opt) + 2 * sizeof (grub_uint16_t)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ opt = (struct grub_net_dhcp6_option*) nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_ORO); -+ opt->len = grub_cpu_to_be16_compile_time (2 * sizeof (grub_uint16_t)); -+ grub_set_unaligned16 (opt->data, grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_BOOTFILE_URL)); -+ grub_set_unaligned16 (opt->data + 2, grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_DNS_SERVERS)); -+ -+ err = grub_netbuff_push (nb, sizeof (*opt) + sizeof (grub_uint16_t)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ opt = (struct grub_net_dhcp6_option*) nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_ELAPSED_TIME); -+ opt->len = grub_cpu_to_be16_compile_time (sizeof (grub_uint16_t)); -+ -+ /* the time is expressed in hundredths of a second */ -+ elapsed = grub_divmod64 (grub_get_time_ms () - se->start_time, 10, 0); -+ -+ if (elapsed > 0xffff) -+ elapsed = 0xffff; -+ -+ grub_set_unaligned16 (opt->data, grub_cpu_to_be16 ((grub_uint16_t)elapsed)); -+ -+ err = grub_netbuff_push (nb, sizeof (*v6h)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ v6h = (struct grub_net_dhcp6_packet *) nb->data; -+ v6h->message_type = GRUB_NET_DHCP6_REQUEST; -+ v6h->transaction_id = se->transaction_id; -+ -+ err = grub_netbuff_push (nb, sizeof (*udph)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ udph = (struct udphdr *) nb->data; -+ udph->src = grub_cpu_to_be16_compile_time (DHCP6_CLIENT_PORT); -+ udph->dst = grub_cpu_to_be16_compile_time (DHCP6_SERVER_PORT); -+ udph->chksum = 0; -+ udph->len = grub_cpu_to_be16 (nb->tail - nb->data); -+ -+ udph->chksum = grub_net_ip_transport_checksum (nb, GRUB_NET_IP_UDP, -+ &inf->address, -+ &multicast); -+ err = grub_net_send_ip_packet (inf, &multicast, &ll_multicast, nb, -+ GRUB_NET_IP_UDP); -+ -+ grub_netbuff_free (nb); -+ -+ return err; -+} -+ -+struct grub_net_network_level_interface * -+grub_net_configure_by_dhcpv6_reply (const char *name, -+ struct grub_net_card *card, -+ grub_net_interface_flags_t flags, -+ const struct grub_net_dhcp6_packet *v6h, -+ grub_size_t size, -+ int is_def, -+ char **device, char **path) -+{ -+ struct grub_net_network_level_interface *inf; -+ grub_dhcp6_options_t dhcp6; -+ -+ dhcp6 = grub_dhcp6_options_get (v6h, size); -+ if (!dhcp6) -+ { -+ grub_print_error (); -+ return NULL; -+ } -+ -+ grub_net_configure_by_dhcp6_info (name, card, dhcp6, is_def, flags, &inf); -+ -+ if (device && dhcp6->boot_file_proto && dhcp6->boot_file_server_ip) -+ { -+ *device = grub_xasprintf ("%s,%s", dhcp6->boot_file_proto, dhcp6->boot_file_server_ip); -+ grub_print_error (); -+ } -+ if (path && dhcp6->boot_file_path) -+ { -+ *path = grub_strdup (dhcp6->boot_file_path); -+ grub_print_error (); -+ if (*path) -+ { -+ char *slash; -+ slash = grub_strrchr (*path, '/'); -+ if (slash) -+ *slash = 0; -+ else -+ **path = 0; -+ } -+ } -+ -+ grub_dhcp6_options_free (dhcp6); -+ return inf; -+} -+ - void - grub_net_process_dhcp (struct grub_net_buff *nb, - struct grub_net_card *card) -@@ -302,6 +966,77 @@ grub_net_process_dhcp (struct grub_net_buff *nb, - } - } - -+grub_err_t -+grub_net_process_dhcp6 (struct grub_net_buff *nb, -+ struct grub_net_card *card __attribute__ ((unused))) -+{ -+ const struct grub_net_dhcp6_packet *v6h; -+ grub_dhcp6_session_t se; -+ grub_size_t size; -+ grub_dhcp6_options_t options; -+ -+ v6h = (const struct grub_net_dhcp6_packet *) nb->data; -+ size = nb->tail - nb->data; -+ -+ options = grub_dhcp6_options_get (v6h, size); -+ if (!options) -+ return grub_errno; -+ -+ if (!options->client_duid || !options->server_duid || !options->ia_addr) -+ { -+ grub_dhcp6_options_free (options); -+ return grub_error (GRUB_ERR_BAD_ARGUMENT, "Bad DHCPv6 Packet"); -+ } -+ -+ FOR_DHCP6_SESSIONS (se) -+ { -+ if (se->transaction_id == v6h->transaction_id && -+ grub_memcmp (options->client_duid, &se->duid, sizeof (se->duid)) == 0 && -+ se->iaid == options->iaid) -+ break; -+ } -+ -+ if (!se) -+ { -+ grub_dprintf ("bootp", "DHCPv6 session not found\n"); -+ grub_dhcp6_options_free (options); -+ return GRUB_ERR_NONE; -+ } -+ -+ if (v6h->message_type == GRUB_NET_DHCP6_ADVERTISE) -+ { -+ if (se->adv) -+ { -+ grub_dprintf ("bootp", "Skipped DHCPv6 Advertised .. \n"); -+ grub_dhcp6_options_free (options); -+ return GRUB_ERR_NONE; -+ } -+ -+ se->adv = options; -+ return grub_dhcp6_session_send_request (se); -+ } -+ else if (v6h->message_type == GRUB_NET_DHCP6_REPLY) -+ { -+ if (!se->adv) -+ { -+ grub_dprintf ("bootp", "Skipped DHCPv6 Reply .. \n"); -+ grub_dhcp6_options_free (options); -+ return GRUB_ERR_NONE; -+ } -+ -+ se->reply = options; -+ grub_dhcp6_session_configure_network (se); -+ grub_dhcp6_session_remove (se); -+ return GRUB_ERR_NONE; -+ } -+ else -+ { -+ grub_dhcp6_options_free (options); -+ } -+ -+ return GRUB_ERR_NONE; -+} -+ - static char - hexdigit (grub_uint8_t val) - { -@@ -582,7 +1317,174 @@ grub_cmd_bootp (struct grub_command *cmd __attribute__ ((unused)), - return err; - } - --static grub_command_t cmd_getdhcp, cmd_bootp; -+static grub_err_t -+grub_cmd_bootp6 (struct grub_command *cmd __attribute__ ((unused)), -+ int argc, char **args) -+{ -+ struct grub_net_card *card; -+ grub_uint32_t iaid = 0; -+ int interval; -+ grub_err_t err; -+ grub_dhcp6_session_t se; -+ -+ err = GRUB_ERR_NONE; -+ -+ FOR_NET_CARDS (card) -+ { -+ struct grub_net_network_level_interface *iface; -+ -+ if (argc > 0 && grub_strcmp (card->name, args[0]) != 0) -+ continue; -+ -+ iface = grub_net_ipv6_get_link_local (card, &card->default_address); -+ if (!iface) -+ { -+ grub_dhcp6_session_remove_all (); -+ return grub_errno; -+ } -+ -+ grub_dhcp6_session_add (iface, iaid++); -+ } -+ -+ for (interval = 200; interval < 10000; interval *= 2) -+ { -+ int done = 1; -+ -+ FOR_DHCP6_SESSIONS (se) -+ { -+ struct grub_net_buff *nb; -+ struct grub_net_dhcp6_option *opt; -+ struct grub_net_dhcp6_packet *v6h; -+ struct grub_net_dhcp6_option_duid_ll *duid; -+ struct grub_net_dhcp6_option_iana *ia_na; -+ grub_net_network_level_address_t multicast; -+ grub_net_link_level_address_t ll_multicast; -+ struct udphdr *udph; -+ -+ multicast.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; -+ multicast.ipv6[0] = grub_cpu_to_be64_compile_time (0xff02ULL << 48); -+ multicast.ipv6[1] = grub_cpu_to_be64_compile_time (0x10002ULL); -+ -+ err = grub_net_link_layer_resolve (se->iface, -+ &multicast, &ll_multicast); -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ return err; -+ } -+ -+ nb = grub_netbuff_alloc (GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE); -+ -+ if (!nb) -+ { -+ grub_dhcp6_session_remove_all (); -+ return grub_errno; -+ } -+ -+ err = grub_netbuff_reserve (nb, GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE); -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ err = grub_netbuff_push (nb, sizeof (*opt) + sizeof (grub_uint16_t)); -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ opt = (struct grub_net_dhcp6_option *)nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_ELAPSED_TIME); -+ opt->len = grub_cpu_to_be16_compile_time (sizeof (grub_uint16_t)); -+ grub_set_unaligned16 (opt->data, 0); -+ -+ err = grub_netbuff_push (nb, sizeof (*opt) + sizeof (*duid)); -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ opt = (struct grub_net_dhcp6_option *)nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_CLIENTID); -+ opt->len = grub_cpu_to_be16 (sizeof (*duid)); -+ -+ duid = (struct grub_net_dhcp6_option_duid_ll *) opt->data; -+ grub_memcpy (duid, &se->duid, sizeof (*duid)); -+ -+ err = grub_netbuff_push (nb, sizeof (*opt) + sizeof (*ia_na)); -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ opt = (struct grub_net_dhcp6_option *)nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IA_NA); -+ opt->len = grub_cpu_to_be16 (sizeof (*ia_na)); -+ ia_na = (struct grub_net_dhcp6_option_iana *)opt->data; -+ ia_na->iaid = grub_cpu_to_be32 (se->iaid); -+ ia_na->t1 = 0; -+ ia_na->t2 = 0; -+ -+ err = grub_netbuff_push (nb, sizeof (*v6h)); -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ v6h = (struct grub_net_dhcp6_packet *)nb->data; -+ v6h->message_type = GRUB_NET_DHCP6_SOLICIT; -+ v6h->transaction_id = se->transaction_id; -+ -+ grub_netbuff_push (nb, sizeof (*udph)); -+ -+ udph = (struct udphdr *) nb->data; -+ udph->src = grub_cpu_to_be16_compile_time (DHCP6_CLIENT_PORT); -+ udph->dst = grub_cpu_to_be16_compile_time (DHCP6_SERVER_PORT); -+ udph->chksum = 0; -+ udph->len = grub_cpu_to_be16 (nb->tail - nb->data); -+ -+ udph->chksum = grub_net_ip_transport_checksum (nb, GRUB_NET_IP_UDP, -+ &se->iface->address, &multicast); -+ -+ err = grub_net_send_ip_packet (se->iface, &multicast, -+ &ll_multicast, nb, GRUB_NET_IP_UDP); -+ done = 0; -+ grub_netbuff_free (nb); -+ -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ return err; -+ } -+ } -+ if (!done) -+ grub_net_poll_cards (interval, 0); -+ } -+ -+ FOR_DHCP6_SESSIONS (se) -+ { -+ grub_error_push (); -+ err = grub_error (GRUB_ERR_FILE_NOT_FOUND, -+ N_("couldn't autoconfigure %s"), -+ se->iface->card->name); -+ } -+ -+ grub_dhcp6_session_remove_all (); -+ -+ return err; -+} -+ -+static grub_command_t cmd_getdhcp, cmd_bootp, cmd_bootp6; - - void - grub_bootp_init (void) -@@ -593,6 +1495,9 @@ grub_bootp_init (void) - cmd_getdhcp = grub_register_command ("net_get_dhcp_option", grub_cmd_dhcpopt, - N_("VAR INTERFACE NUMBER DESCRIPTION"), - N_("retrieve DHCP option and save it into VAR. If VAR is - then print the value.")); -+ cmd_bootp6 = grub_register_command ("net_bootp6", grub_cmd_bootp6, -+ N_("[CARD]"), -+ N_("perform a DHCPv6 autoconfiguration")); - } - - void -@@ -600,4 +1505,5 @@ grub_bootp_fini (void) - { - grub_unregister_command (cmd_getdhcp); - grub_unregister_command (cmd_bootp); -+ grub_unregister_command (cmd_bootp6); - } -diff --git a/grub-core/net/ip.c b/grub-core/net/ip.c -index aba4f8908..59970ab74 100644 ---- a/grub-core/net/ip.c -+++ b/grub-core/net/ip.c -@@ -238,6 +238,45 @@ handle_dgram (struct grub_net_buff *nb, - { - struct udphdr *udph; - udph = (struct udphdr *) nb->data; -+ -+ if (proto == GRUB_NET_IP_UDP && udph->dst == grub_cpu_to_be16_compile_time (DHCP6_CLIENT_PORT)) -+ { -+ if (udph->chksum) -+ { -+ grub_uint16_t chk, expected; -+ chk = udph->chksum; -+ udph->chksum = 0; -+ expected = grub_net_ip_transport_checksum (nb, -+ GRUB_NET_IP_UDP, -+ source, -+ dest); -+ if (expected != chk) -+ { -+ grub_dprintf ("net", "Invalid UDP checksum. " -+ "Expected %x, got %x\n", -+ grub_be_to_cpu16 (expected), -+ grub_be_to_cpu16 (chk)); -+ grub_netbuff_free (nb); -+ return GRUB_ERR_NONE; -+ } -+ udph->chksum = chk; -+ } -+ -+ err = grub_netbuff_pull (nb, sizeof (*udph)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ err = grub_net_process_dhcp6 (nb, card); -+ if (err) -+ grub_print_error (); -+ -+ grub_netbuff_free (nb); -+ return GRUB_ERR_NONE; -+ } -+ - if (proto == GRUB_NET_IP_UDP && grub_be_to_cpu16 (udph->dst) == 68) - { - const struct grub_net_bootp_packet *bootp; -diff --git a/include/grub/net.h b/include/grub/net.h -index ccc169c2d..38a3973f3 100644 ---- a/include/grub/net.h -+++ b/include/grub/net.h -@@ -442,6 +442,66 @@ struct grub_net_bootp_packet - grub_uint8_t vendor[0]; - } GRUB_PACKED; - -+struct grub_net_dhcp6_packet -+{ -+ grub_uint32_t message_type:8; -+ grub_uint32_t transaction_id:24; -+ grub_uint8_t dhcp_options[0]; -+} GRUB_PACKED; -+ -+struct grub_net_dhcp6_option { -+ grub_uint16_t code; -+ grub_uint16_t len; -+ grub_uint8_t data[0]; -+} GRUB_PACKED; -+ -+struct grub_net_dhcp6_option_iana { -+ grub_uint32_t iaid; -+ grub_uint32_t t1; -+ grub_uint32_t t2; -+ grub_uint8_t data[0]; -+} GRUB_PACKED; -+ -+struct grub_net_dhcp6_option_iaaddr { -+ grub_uint8_t addr[16]; -+ grub_uint32_t preferred_lifetime; -+ grub_uint32_t valid_lifetime; -+ grub_uint8_t data[0]; -+} GRUB_PACKED; -+ -+struct grub_net_dhcp6_option_duid_ll -+{ -+ grub_uint16_t type; -+ grub_uint16_t hw_type; -+ grub_uint8_t hwaddr[6]; -+} GRUB_PACKED; -+ -+enum -+ { -+ GRUB_NET_DHCP6_SOLICIT = 1, -+ GRUB_NET_DHCP6_ADVERTISE = 2, -+ GRUB_NET_DHCP6_REQUEST = 3, -+ GRUB_NET_DHCP6_REPLY = 7 -+ }; -+ -+enum -+ { -+ DHCP6_CLIENT_PORT = 546, -+ DHCP6_SERVER_PORT = 547 -+ }; -+ -+enum -+ { -+ GRUB_NET_DHCP6_OPTION_CLIENTID = 1, -+ GRUB_NET_DHCP6_OPTION_SERVERID = 2, -+ GRUB_NET_DHCP6_OPTION_IA_NA = 3, -+ GRUB_NET_DHCP6_OPTION_IAADDR = 5, -+ GRUB_NET_DHCP6_OPTION_ORO = 6, -+ GRUB_NET_DHCP6_OPTION_ELAPSED_TIME = 8, -+ GRUB_NET_DHCP6_OPTION_DNS_SERVERS = 23, -+ GRUB_NET_DHCP6_OPTION_BOOTFILE_URL = 59 -+ }; -+ - #define GRUB_NET_BOOTP_RFC1048_MAGIC_0 0x63 - #define GRUB_NET_BOOTP_RFC1048_MAGIC_1 0x82 - #define GRUB_NET_BOOTP_RFC1048_MAGIC_2 0x53 -@@ -468,6 +528,14 @@ grub_net_configure_by_dhcp_ack (const char *name, - grub_size_t size, - int is_def, char **device, char **path); - -+struct grub_net_network_level_interface * -+grub_net_configure_by_dhcpv6_reply (const char *name, -+ struct grub_net_card *card, -+ grub_net_interface_flags_t flags, -+ const struct grub_net_dhcp6_packet *v6, -+ grub_size_t size, -+ int is_def, char **device, char **path); -+ - grub_err_t - grub_net_add_ipv4_local (struct grub_net_network_level_interface *inf, - int mask); -@@ -476,6 +544,10 @@ void - grub_net_process_dhcp (struct grub_net_buff *nb, - struct grub_net_card *card); - -+grub_err_t -+grub_net_process_dhcp6 (struct grub_net_buff *nb, -+ struct grub_net_card *card); -+ - int - grub_net_hwaddr_cmp (const grub_net_link_level_address_t *a, - const grub_net_link_level_address_t *b); diff --git a/patches/grub/2.02/bootp_process_dhcpack_http_boot.patch b/patches/grub/2.02/bootp_process_dhcpack_http_boot.patch deleted file mode 100644 index 88fe68cfa..000000000 --- a/patches/grub/2.02/bootp_process_dhcpack_http_boot.patch +++ /dev/null @@ -1,129 +0,0 @@ -From a8af1751591a24f32ea0bed24da74b96f8d1ef9d Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 27 Oct 2016 17:42:19 -0400 -Subject: bootp: Add processing DHCPACK packet from HTTP Boot - -The vendor class identifier with the string "HTTPClient" is used to denote the -packet as responding to HTTP boot request. In DHCP4 config, the filename for -HTTP boot is the URL of the boot file while for PXE boot it is the path to the -boot file. As a consequence, the next-server becomes obseleted because the HTTP -URL already contains the server address for the boot file. For DHCP6 config, -there's no difference definition in existing config as dhcp6.bootfile-url can -be used to specify URL for both HTTP and PXE boot file. - -This patch adds processing for "HTTPClient" vendor class identifier in DHCPACK -packet by treating it as HTTP format, not as the PXE format. - -Signed-off-by: Michael Chang -Signed-off-by: Ken Lin - -Patch-Name: bootp_process_dhcpack_http_boot.patch ---- - grub-core/net/bootp.c | 67 +++++++++++++++++++++++++++++++++++++++++++++++++-- - include/grub/net.h | 1 + - 2 files changed, 66 insertions(+), 2 deletions(-) - -diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c -index 172528ee8..de9239c16 100644 ---- a/grub-core/net/bootp.c -+++ b/grub-core/net/bootp.c -@@ -207,6 +207,11 @@ parse_dhcp_vendor (const char *name, const void *vend, int limit, int *mask) - taglength); - break; - -+ case GRUB_NET_BOOTP_VENDOR_CLASS_IDENTIFIER: -+ grub_env_set_net_property (name, "vendor_class_identifier", (const char *) ptr, -+ taglength); -+ break; -+ - case GRUB_NET_BOOTP_EXTENSIONS_PATH: - grub_env_set_net_property (name, "extensionspath", (const char *) ptr, - taglength); -@@ -282,6 +287,66 @@ grub_net_configure_by_dhcp_ack (const char *name, - } - #endif - -+ if (size > OFFSET_OF (vendor, bp)) -+ { -+ char *cidvar; -+ const char *cid; -+ -+ parse_dhcp_vendor (name, &bp->vendor, size - OFFSET_OF (vendor, bp), &mask); -+ cidvar = grub_xasprintf ("net_%s_%s", name, "vendor_class_identifier"); -+ cid = grub_env_get (cidvar); -+ grub_free (cidvar); -+ -+ if (cid && grub_strcmp (cid, "HTTPClient") == 0) -+ { -+ char *proto, *ip, *pa; -+ -+ if (!dissect_url (bp->boot_file, &proto, &ip, &pa)) -+ return inter; -+ -+ grub_env_set_net_property (name, "boot_file", pa, grub_strlen (pa)); -+ if (is_def) -+ { -+ grub_net_default_server = grub_strdup (ip); -+ grub_env_set ("net_default_interface", name); -+ grub_env_export ("net_default_interface"); -+ } -+ if (device && !*device) -+ { -+ *device = grub_xasprintf ("%s,%s", proto, ip); -+ grub_print_error (); -+ } -+ if (path) -+ { -+ *path = grub_strdup (pa); -+ grub_print_error (); -+ if (*path) -+ { -+ char *slash; -+ slash = grub_strrchr (*path, '/'); -+ if (slash) -+ *slash = 0; -+ else -+ **path = 0; -+ } -+ } -+ grub_net_add_ipv4_local (inter, mask); -+ inter->dhcp_ack = grub_malloc (size); -+ if (inter->dhcp_ack) -+ { -+ grub_memcpy (inter->dhcp_ack, bp, size); -+ inter->dhcp_acklen = size; -+ } -+ else -+ grub_errno = GRUB_ERR_NONE; -+ -+ grub_free (proto); -+ grub_free (ip); -+ grub_free (pa); -+ return inter; -+ } -+ } -+ - if (size > OFFSET_OF (boot_file, bp)) - grub_env_set_net_property (name, "boot_file", bp->boot_file, - sizeof (bp->boot_file)); -@@ -346,8 +411,6 @@ grub_net_configure_by_dhcp_ack (const char *name, - **path = 0; - } - } -- if (size > OFFSET_OF (vendor, bp)) -- parse_dhcp_vendor (name, &bp->vendor, size - OFFSET_OF (vendor, bp), &mask); - grub_net_add_ipv4_local (inter, mask); - - inter->dhcp_ack = grub_malloc (size); -diff --git a/include/grub/net.h b/include/grub/net.h -index 38a3973f3..e4bf678db 100644 ---- a/include/grub/net.h -+++ b/include/grub/net.h -@@ -517,6 +517,7 @@ enum - GRUB_NET_BOOTP_DOMAIN = 0x0f, - GRUB_NET_BOOTP_ROOT_PATH = 0x11, - GRUB_NET_BOOTP_EXTENSIONS_PATH = 0x12, -+ GRUB_NET_BOOTP_VENDOR_CLASS_IDENTIFIER = 0x3C, - GRUB_NET_BOOTP_END = 0xff - }; - diff --git a/patches/grub/2.02/core_in_fs.patch b/patches/grub/2.02/core_in_fs.patch deleted file mode 100644 index ec8e7cafd..000000000 --- a/patches/grub/2.02/core_in_fs.patch +++ /dev/null @@ -1,45 +0,0 @@ -From a252840b98e8b67294738f197286d550d67b60f0 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:12:51 +0000 -Subject: Write marker if core.img was written to filesystem - -The Debian bug reporting script includes a warning in this case. - -Patch-Name: core_in_fs.patch ---- - util/setup.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/util/setup.c b/util/setup.c -index 8aa5a39a7..3b5c46fde 100644 ---- a/util/setup.c -+++ b/util/setup.c -@@ -58,6 +58,8 @@ - - #include - -+#define CORE_IMG_IN_FS "setup_left_core_image_in_filesystem" -+ - /* On SPARC this program fills in various fields inside of the 'boot' and 'core' - * image files. - * -@@ -600,6 +602,8 @@ SETUP (const char *dir, - - grub_free (sectors); - -+ unlink (DEFAULT_DIRECTORY "/" CORE_IMG_IN_FS); -+ - goto finish; - } - -@@ -642,6 +646,10 @@ unable_to_embed: - /* The core image must be put on a filesystem unfortunately. */ - grub_util_info ("will leave the core image on the filesystem"); - -+ fp = grub_util_fd_open (DEFAULT_DIRECTORY "/" CORE_IMG_IN_FS, -+ GRUB_UTIL_FD_O_WRONLY); -+ grub_util_fd_close (fp); -+ - grub_util_biosdisk_flush (root_dev->disk); - - /* Clean out the blocklists. */ diff --git a/patches/grub/2.02/disable-build-of-documentation.patch b/patches/grub/2.02/disable-build-of-documentation.patch deleted file mode 100644 index 0e659f57f..000000000 --- a/patches/grub/2.02/disable-build-of-documentation.patch +++ /dev/null @@ -1,18 +0,0 @@ -GRUB2: Disable build of documentation - -ONIE does not require the building of the documentation - -diff --git a/Makefile.am b/Makefile.am -index 00a9663..93e1c0e 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -5,7 +5,7 @@ SUBDIRS = grub-core/gnulib . - if COND_real_platform - SUBDIRS += grub-core - endif --SUBDIRS += po docs util/bash-completion.d -+SUBDIRS += po util/bash-completion.d - - include $(top_srcdir)/conf/Makefile.common - include $(top_srcdir)/conf/Makefile.extra-dist - diff --git a/patches/grub/2.02/dont-fail-efi-warnings.patch b/patches/grub/2.02/dont-fail-efi-warnings.patch deleted file mode 100644 index 529143daf..000000000 --- a/patches/grub/2.02/dont-fail-efi-warnings.patch +++ /dev/null @@ -1,47 +0,0 @@ -From ba2b2485acc94bee484d08ae774cddf61758a21a Mon Sep 17 00:00:00 2001 -From: Mathieu Trudel-Lapierre -Date: Wed, 1 Nov 2017 17:03:36 -0400 -Subject: Don't fail build on some warnings we know might show up building - linuxefi - -Specifically: - -Wno-error=format= - -Wno-error=cast-align - -Wno-error=int-to-pointer-cast - -Wno-error=pointer-to-int-cast - -Wno-error=unused-parameter - -There are a few cases where we legitimately cast to memory that is bigger -than we need when building on one arch, because on a different arch it will -be just right. For example, grub_status_t can be int32 or int64, depending -on the size of void*. - -Signed-off-by: Mathieu Trudel-Lapierre - -Forwarded: no -Last-Updated: 2017-11-01 -Patch-Name: dont-fail-efi-warnings.patch ---- - grub-core/Makefile.core.def | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index e3662bb03..208b8c136 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -1747,6 +1747,7 @@ module = { - - module = { - name = linuxefi; -+ cflags = '-Wno-error=format= -Wno-error=cast-align -Wno-error=int-to-pointer-cast -Wno-error=pointer-to-int-cast -Wno-error=unused-parameter'; - efi = loader/i386/efi/linux.c; - efi = lib/cmdline.c; - efi = loader/efi/linux.c; -@@ -1756,6 +1757,7 @@ module = { - - module = { - name = chain; -+ cflags = '-Wno-error=format= -Wno-error=cast-align -Wno-error=int-to-pointer-cast -Wno-error=pointer-to-int-cast -Wno-error=unused-parameter'; - efi = loader/efi/chainloader.c; - efi = loader/efi/linux.c; - i386_pc = loader/i386/pc/chainloader.c; diff --git a/patches/grub/2.02/efinet_set_dns_from_uefi_proto.patch b/patches/grub/2.02/efinet_set_dns_from_uefi_proto.patch deleted file mode 100644 index 1dcb302ff..000000000 --- a/patches/grub/2.02/efinet_set_dns_from_uefi_proto.patch +++ /dev/null @@ -1,339 +0,0 @@ -From 0b5adf8d3745cf68e40a745d7382717297516a0e Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 27 Oct 2016 17:43:21 -0400 -Subject: efinet: Setting DNS server from UEFI protocol - -In the URI device path node, any name rahter than address can be used for -looking up the resources so that DNS service become needed to get answer of the -name's address. Unfortunately the DNS is not defined in any of the device path -nodes so that we use the EFI_IP4_CONFIG2_PROTOCOL and EFI_IP6_CONFIG_PROTOCOL -to obtain it. - -These two protcols are defined the sections of UEFI specification. - - 27.5 EFI IPv4 Configuration II Protocol - 27.7 EFI IPv6 Configuration Protocol - -include/grub/efi/api.h: -Add new structure and protocol UUID of EFI_IP4_CONFIG2_PROTOCOL and -EFI_IP6_CONFIG_PROTOCOL. - -grub-core/net/drivers/efi/efinet.c: -Use the EFI_IP4_CONFIG2_PROTOCOL and EFI_IP6_CONFIG_PROTOCOL to obtain the list -of DNS server address for IPv4 and IPv6 respectively. The address of DNS -servers is structured into DHCPACK packet and feed into the same DHCP packet -processing functions to ensure the network interface is setting up the same way -it used to be. - -Signed-off-by: Michael Chang -Signed-off-by: Ken Lin - -Patch-Name: efinet_set_dns_from_uefi_proto.patch ---- - grub-core/net/drivers/efi/efinet.c | 163 +++++++++++++++++++++++++++++++++++++ - include/grub/efi/api.h | 76 +++++++++++++++++ - 2 files changed, 239 insertions(+) - -diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index 2d3b00f0e..82a28fb6e 100644 ---- a/grub-core/net/drivers/efi/efinet.c -+++ b/grub-core/net/drivers/efi/efinet.c -@@ -30,6 +30,8 @@ GRUB_MOD_LICENSE ("GPLv3+"); - /* GUID. */ - static grub_efi_guid_t net_io_guid = GRUB_EFI_SIMPLE_NETWORK_GUID; - static grub_efi_guid_t pxe_io_guid = GRUB_EFI_PXE_GUID; -+static grub_efi_guid_t ip4_config_guid = GRUB_EFI_IP4_CONFIG2_PROTOCOL_GUID; -+static grub_efi_guid_t ip6_config_guid = GRUB_EFI_IP6_CONFIG_PROTOCOL_GUID; - - static grub_err_t - send_card_buffer (struct grub_net_card *dev, -@@ -325,6 +327,125 @@ grub_efinet_findcards (void) - grub_free (handles); - } - -+static grub_efi_handle_t -+grub_efi_locate_device_path (grub_efi_guid_t *protocol, grub_efi_device_path_t *device_path, -+ grub_efi_device_path_t **r_device_path) -+{ -+ grub_efi_handle_t handle; -+ grub_efi_status_t status; -+ -+ status = efi_call_3 (grub_efi_system_table->boot_services->locate_device_path, -+ protocol, &device_path, &handle); -+ -+ if (status != GRUB_EFI_SUCCESS) -+ return 0; -+ -+ if (r_device_path) -+ *r_device_path = device_path; -+ -+ return handle; -+} -+ -+static grub_efi_ipv4_address_t * -+grub_dns_server_ip4_address (grub_efi_device_path_t *dp, grub_efi_uintn_t *num_dns) -+{ -+ grub_efi_handle_t hnd; -+ grub_efi_status_t status; -+ grub_efi_ip4_config2_protocol_t *conf; -+ grub_efi_ipv4_address_t *addrs; -+ grub_efi_uintn_t data_size = 1 * sizeof (grub_efi_ipv4_address_t); -+ -+ hnd = grub_efi_locate_device_path (&ip4_config_guid, dp, NULL); -+ -+ if (!hnd) -+ return 0; -+ -+ conf = grub_efi_open_protocol (hnd, &ip4_config_guid, -+ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -+ -+ if (!conf) -+ return 0; -+ -+ addrs = grub_malloc (data_size); -+ if (!addrs) -+ return 0; -+ -+ status = efi_call_4 (conf->get_data, conf, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_DNSSERVER, -+ &data_size, addrs); -+ -+ if (status == GRUB_EFI_BUFFER_TOO_SMALL) -+ { -+ grub_free (addrs); -+ addrs = grub_malloc (data_size); -+ if (!addrs) -+ return 0; -+ -+ status = efi_call_4 (conf->get_data, conf, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_DNSSERVER, -+ &data_size, addrs); -+ } -+ -+ if (status != GRUB_EFI_SUCCESS) -+ { -+ grub_free (addrs); -+ return 0; -+ } -+ -+ *num_dns = data_size / sizeof (grub_efi_ipv4_address_t); -+ return addrs; -+} -+ -+static grub_efi_ipv6_address_t * -+grub_dns_server_ip6_address (grub_efi_device_path_t *dp, grub_efi_uintn_t *num_dns) -+{ -+ grub_efi_handle_t hnd; -+ grub_efi_status_t status; -+ grub_efi_ip6_config_protocol_t *conf; -+ grub_efi_ipv6_address_t *addrs; -+ grub_efi_uintn_t data_size = 1 * sizeof (grub_efi_ipv6_address_t); -+ -+ hnd = grub_efi_locate_device_path (&ip6_config_guid, dp, NULL); -+ -+ if (!hnd) -+ return 0; -+ -+ conf = grub_efi_open_protocol (hnd, &ip6_config_guid, -+ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -+ -+ if (!conf) -+ return 0; -+ -+ addrs = grub_malloc (data_size); -+ if (!addrs) -+ return 0; -+ -+ status = efi_call_4 (conf->get_data, conf, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_DNSSERVER, -+ &data_size, addrs); -+ -+ if (status == GRUB_EFI_BUFFER_TOO_SMALL) -+ { -+ grub_free (addrs); -+ addrs = grub_malloc (data_size); -+ if (!addrs) -+ return 0; -+ -+ status = efi_call_4 (conf->get_data, conf, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_DNSSERVER, -+ &data_size, addrs); -+ } -+ -+ if (status != GRUB_EFI_SUCCESS) -+ { -+ grub_free (addrs); -+ return 0; -+ } -+ -+ *num_dns = data_size / sizeof (grub_efi_ipv6_address_t); -+ return addrs; -+} -+ - static struct grub_net_buff * - grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *use_ipv6) - { -@@ -377,6 +498,8 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u - grub_efi_ipv4_device_path_t *ipv4 = (grub_efi_ipv4_device_path_t *) ldp; - struct grub_net_bootp_packet *bp; - grub_uint8_t *ptr; -+ grub_efi_ipv4_address_t *dns; -+ grub_efi_uintn_t num_dns; - - bp = (struct grub_net_bootp_packet *) nb->tail; - err = grub_netbuff_put (nb, sizeof (*bp) + 4); -@@ -438,6 +561,25 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u - *ptr++ = sizeof ("HTTPClient") - 1; - grub_memcpy (ptr, "HTTPClient", sizeof ("HTTPClient") - 1); - -+ dns = grub_dns_server_ip4_address (dp, &num_dns); -+ if (dns) -+ { -+ grub_efi_uintn_t size_dns = sizeof (*dns) * num_dns; -+ -+ ptr = nb->tail; -+ err = grub_netbuff_put (nb, size_dns + 2); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ *ptr++ = GRUB_NET_BOOTP_DNS; -+ *ptr++ = size_dns; -+ grub_memcpy (ptr, dns, size_dns); -+ grub_free (dns); -+ } -+ - ptr = nb->tail; - err = grub_netbuff_put (nb, 1); - if (err) -@@ -470,6 +612,8 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u - struct grub_net_dhcp6_option *opt; - struct grub_net_dhcp6_option_iana *iana; - struct grub_net_dhcp6_option_iaaddr *iaaddr; -+ grub_efi_ipv6_address_t *dns; -+ grub_efi_uintn_t num_dns; - - d6p = (struct grub_net_dhcp6_packet *)nb->tail; - err = grub_netbuff_put (nb, sizeof(*d6p)); -@@ -533,6 +677,25 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u - opt->len = grub_cpu_to_be16 (uri_len); - grub_memcpy (opt->data, uri_dp->uri, uri_len); - -+ dns = grub_dns_server_ip6_address (dp, &num_dns); -+ if (dns) -+ { -+ grub_efi_uintn_t size_dns = sizeof (*dns) * num_dns; -+ -+ opt = (struct grub_net_dhcp6_option *)nb->tail; -+ err = grub_netbuff_put (nb, sizeof(*opt) + size_dns); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_DNS_SERVERS); -+ opt->len = grub_cpu_to_be16 (size_dns); -+ grub_memcpy (opt->data, dns, size_dns); -+ grub_free (dns); -+ } -+ - *use_ipv6 = 1; - } - -diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index d5a12569b..99ba068e3 100644 ---- a/include/grub/efi/api.h -+++ b/include/grub/efi/api.h -@@ -334,6 +334,16 @@ - { 0x8B, 0x8C, 0xE2, 0x1B, 0x01, 0xAE, 0xF2, 0xB7 } \ - } - -+#define GRUB_EFI_IP4_CONFIG2_PROTOCOL_GUID \ -+ { 0x5b446ed1, 0xe30b, 0x4faa, \ -+ { 0x87, 0x1a, 0x36, 0x54, 0xec, 0xa3, 0x60, 0x80 } \ -+ } -+ -+#define GRUB_EFI_IP6_CONFIG_PROTOCOL_GUID \ -+ { 0x937fe521, 0x95ae, 0x4d1a, \ -+ { 0x89, 0x29, 0x48, 0xbc, 0xd9, 0x0a, 0xd3, 0x1a } \ -+ } -+ - struct grub_efi_sal_system_table - { - grub_uint32_t signature; -@@ -1749,6 +1759,72 @@ struct grub_efi_block_io - }; - typedef struct grub_efi_block_io grub_efi_block_io_t; - -+enum grub_efi_ip4_config2_data_type { -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_INTERFACEINFO, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_POLICY, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_MANUAL_ADDRESS, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_GATEWAY, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_DNSSERVER, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_MAXIMUM -+}; -+typedef enum grub_efi_ip4_config2_data_type grub_efi_ip4_config2_data_type_t; -+ -+struct grub_efi_ip4_config2_protocol -+{ -+ grub_efi_status_t (*set_data) (struct grub_efi_ip4_config2_protocol *this, -+ grub_efi_ip4_config2_data_type_t data_type, -+ grub_efi_uintn_t data_size, -+ void *data); -+ -+ grub_efi_status_t (*get_data) (struct grub_efi_ip4_config2_protocol *this, -+ grub_efi_ip4_config2_data_type_t data_type, -+ grub_efi_uintn_t *data_size, -+ void *data); -+ -+ grub_efi_status_t (*register_data_notify) (struct grub_efi_ip4_config2_protocol *this, -+ grub_efi_ip4_config2_data_type_t data_type, -+ grub_efi_event_t event); -+ -+ grub_efi_status_t (*unregister_datanotify) (struct grub_efi_ip4_config2_protocol *this, -+ grub_efi_ip4_config2_data_type_t data_type, -+ grub_efi_event_t event); -+}; -+typedef struct grub_efi_ip4_config2_protocol grub_efi_ip4_config2_protocol_t; -+ -+enum grub_efi_ip6_config_data_type { -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_INTERFACEINFO, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_ALT_INTERFACEID, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_POLICY, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_DUP_ADDR_DETECT_TRANSMITS, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_MANUAL_ADDRESS, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_GATEWAY, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_DNSSERVER, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_MAXIMUM -+}; -+typedef enum grub_efi_ip6_config_data_type grub_efi_ip6_config_data_type_t; -+ -+struct grub_efi_ip6_config_protocol -+{ -+ grub_efi_status_t (*set_data) (struct grub_efi_ip6_config_protocol *this, -+ grub_efi_ip6_config_data_type_t data_type, -+ grub_efi_uintn_t data_size, -+ void *data); -+ -+ grub_efi_status_t (*get_data) (struct grub_efi_ip6_config_protocol *this, -+ grub_efi_ip6_config_data_type_t data_type, -+ grub_efi_uintn_t *data_size, -+ void *data); -+ -+ grub_efi_status_t (*register_data_notify) (struct grub_efi_ip6_config_protocol *this, -+ grub_efi_ip6_config_data_type_t data_type, -+ grub_efi_event_t event); -+ -+ grub_efi_status_t (*unregister_datanotify) (struct grub_efi_ip6_config_protocol *this, -+ grub_efi_ip6_config_data_type_t data_type, -+ grub_efi_event_t event); -+}; -+typedef struct grub_efi_ip6_config_protocol grub_efi_ip6_config_protocol_t; -+ - #if (GRUB_TARGET_SIZEOF_VOID_P == 4) || defined (__ia64__) \ - || defined (__aarch64__) || defined (__MINGW64__) || defined (__CYGWIN__) - diff --git a/patches/grub/2.02/efinet_set_network_from_uefi_devpath.patch b/patches/grub/2.02/efinet_set_network_from_uefi_devpath.patch deleted file mode 100644 index 45dae0d62..000000000 --- a/patches/grub/2.02/efinet_set_network_from_uefi_devpath.patch +++ /dev/null @@ -1,388 +0,0 @@ -From 914f8b7c71bb707d48a1c8b951975795c9a352f0 Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 27 Oct 2016 17:43:05 -0400 -Subject: efinet: Setting network from UEFI device path - -The PXE Base Code protocol used to obtain cached PXE DHCPACK packet is no -longer provided for HTTP Boot. Instead, we have to get the HTTP boot -information from the device path nodes defined in following UEFI Specification -sections. - - 9.3.5.12 IPv4 Device Path - 9.3.5.13 IPv6 Device Path - 9.3.5.23 Uniform Resource Identifiers (URI) Device Path - -This patch basically does: - -include/grub/efi/api.h: -Add new structure of Uniform Resource Identifiers (URI) Device Path - -grub-core/net/drivers/efi/efinet.c: -Check if PXE Base Code is available, if not it will try to obtain the netboot -information from the device path where the image booted from. The DHCPACK -packet is recoverd from the information in device patch and feed into the same -DHCP packet processing functions to ensure the network interface is setting up -the same way it used to be. - -Signed-off-by: Michael Chang -Signed-off-by: Ken Lin - -Patch-Name: efinet_set_network_from_uefi_devpath.patch ---- - grub-core/net/drivers/efi/efinet.c | 268 +++++++++++++++++++++++++++++++++++-- - include/grub/efi/api.h | 11 ++ - 2 files changed, 270 insertions(+), 9 deletions(-) - -diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index fc90415f2..2d3b00f0e 100644 ---- a/grub-core/net/drivers/efi/efinet.c -+++ b/grub-core/net/drivers/efi/efinet.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -324,6 +325,221 @@ grub_efinet_findcards (void) - grub_free (handles); - } - -+static struct grub_net_buff * -+grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *use_ipv6) -+{ -+ grub_efi_uint16_t uri_len; -+ grub_efi_device_path_t *ldp, *ddp; -+ grub_efi_uri_device_path_t *uri_dp; -+ struct grub_net_buff *nb; -+ grub_err_t err; -+ -+ ddp = grub_efi_duplicate_device_path (dp); -+ ldp = grub_efi_find_last_device_path (ddp); -+ -+ if (GRUB_EFI_DEVICE_PATH_TYPE (ldp) != GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE -+ || GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_URI_DEVICE_PATH_SUBTYPE) -+ { -+ grub_free (ddp); -+ return NULL; -+ } -+ -+ uri_len = GRUB_EFI_DEVICE_PATH_LENGTH (ldp) > 4 ? GRUB_EFI_DEVICE_PATH_LENGTH (ldp) - 4 : 0; -+ -+ if (!uri_len) -+ { -+ grub_free (ddp); -+ return NULL; -+ } -+ -+ uri_dp = (grub_efi_uri_device_path_t *) ldp; -+ -+ ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; -+ ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -+ ldp->length = sizeof (*ldp); -+ -+ ldp = grub_efi_find_last_device_path (ddp); -+ -+ if (GRUB_EFI_DEVICE_PATH_TYPE (ldp) != GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE -+ || (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE -+ && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE)) -+ { -+ grub_free (ddp); -+ return NULL; -+ } -+ -+ nb = grub_netbuff_alloc (512); -+ if (!nb) -+ return NULL; -+ -+ if (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) == GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE) -+ { -+ grub_efi_ipv4_device_path_t *ipv4 = (grub_efi_ipv4_device_path_t *) ldp; -+ struct grub_net_bootp_packet *bp; -+ grub_uint8_t *ptr; -+ -+ bp = (struct grub_net_bootp_packet *) nb->tail; -+ err = grub_netbuff_put (nb, sizeof (*bp) + 4); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ -+ if (sizeof(bp->boot_file) < uri_len) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ grub_memcpy (bp->boot_file, uri_dp->uri, uri_len); -+ grub_memcpy (&bp->your_ip, ipv4->local_ip_address, sizeof (bp->your_ip)); -+ grub_memcpy (&bp->server_ip, ipv4->remote_ip_address, sizeof (bp->server_ip)); -+ -+ bp->vendor[0] = GRUB_NET_BOOTP_RFC1048_MAGIC_0; -+ bp->vendor[1] = GRUB_NET_BOOTP_RFC1048_MAGIC_1; -+ bp->vendor[2] = GRUB_NET_BOOTP_RFC1048_MAGIC_2; -+ bp->vendor[3] = GRUB_NET_BOOTP_RFC1048_MAGIC_3; -+ -+ ptr = nb->tail; -+ err = grub_netbuff_put (nb, sizeof (ipv4->subnet_mask) + 2); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ *ptr++ = GRUB_NET_BOOTP_NETMASK; -+ *ptr++ = sizeof (ipv4->subnet_mask); -+ grub_memcpy (ptr, ipv4->subnet_mask, sizeof (ipv4->subnet_mask)); -+ -+ ptr = nb->tail; -+ err = grub_netbuff_put (nb, sizeof (ipv4->gateway_ip_address) + 2); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ *ptr++ = GRUB_NET_BOOTP_ROUTER; -+ *ptr++ = sizeof (ipv4->gateway_ip_address); -+ grub_memcpy (ptr, ipv4->gateway_ip_address, sizeof (ipv4->gateway_ip_address)); -+ -+ ptr = nb->tail; -+ err = grub_netbuff_put (nb, sizeof ("HTTPClient") + 1); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ *ptr++ = GRUB_NET_BOOTP_VENDOR_CLASS_IDENTIFIER; -+ *ptr++ = sizeof ("HTTPClient") - 1; -+ grub_memcpy (ptr, "HTTPClient", sizeof ("HTTPClient") - 1); -+ -+ ptr = nb->tail; -+ err = grub_netbuff_put (nb, 1); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ *ptr = GRUB_NET_BOOTP_END; -+ *use_ipv6 = 0; -+ -+ ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; -+ ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -+ ldp->length = sizeof (*ldp); -+ ldp = grub_efi_find_last_device_path (ddp); -+ -+ if (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) == GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE) -+ { -+ grub_efi_mac_address_device_path_t *mac = (grub_efi_mac_address_device_path_t *) ldp; -+ bp->hw_type = mac->if_type; -+ bp->hw_len = sizeof (bp->mac_addr); -+ grub_memcpy (bp->mac_addr, mac->mac_address, bp->hw_len); -+ } -+ } -+ else -+ { -+ grub_efi_ipv6_device_path_t *ipv6 = (grub_efi_ipv6_device_path_t *) ldp; -+ -+ struct grub_net_dhcp6_packet *d6p; -+ struct grub_net_dhcp6_option *opt; -+ struct grub_net_dhcp6_option_iana *iana; -+ struct grub_net_dhcp6_option_iaaddr *iaaddr; -+ -+ d6p = (struct grub_net_dhcp6_packet *)nb->tail; -+ err = grub_netbuff_put (nb, sizeof(*d6p)); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ d6p->message_type = GRUB_NET_DHCP6_REPLY; -+ -+ opt = (struct grub_net_dhcp6_option *)nb->tail; -+ err = grub_netbuff_put (nb, sizeof(*opt)); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IA_NA); -+ opt->len = grub_cpu_to_be16_compile_time (sizeof(*iana) + sizeof(*opt) + sizeof(*iaaddr)); -+ -+ err = grub_netbuff_put (nb, sizeof(*iana)); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ -+ opt = (struct grub_net_dhcp6_option *)nb->tail; -+ err = grub_netbuff_put (nb, sizeof(*opt)); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IAADDR); -+ opt->len = grub_cpu_to_be16_compile_time (sizeof (*iaaddr)); -+ -+ iaaddr = (struct grub_net_dhcp6_option_iaaddr *)nb->tail; -+ err = grub_netbuff_put (nb, sizeof(*iaaddr)); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ grub_memcpy (iaaddr->addr, ipv6->local_ip_address, sizeof(ipv6->local_ip_address)); -+ -+ opt = (struct grub_net_dhcp6_option *)nb->tail; -+ err = grub_netbuff_put (nb, sizeof(*opt) + uri_len); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_BOOTFILE_URL); -+ opt->len = grub_cpu_to_be16 (uri_len); -+ grub_memcpy (opt->data, uri_dp->uri, uri_len); -+ -+ *use_ipv6 = 1; -+ } -+ -+ grub_free (ddp); -+ return nb; -+} -+ - static void - grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, - char **path) -@@ -340,6 +556,11 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, - grub_efi_device_path_t *cdp; - struct grub_efi_pxe *pxe; - struct grub_efi_pxe_mode *pxe_mode; -+ grub_uint8_t *packet_buf; -+ grub_size_t packet_bufsz ; -+ int ipv6; -+ struct grub_net_buff *nb = NULL; -+ - if (card->driver != &efidriver) - continue; - cdp = grub_efi_get_device_path (card->efi_handle); -@@ -359,11 +580,21 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, - ldp = grub_efi_find_last_device_path (dp); - if (GRUB_EFI_DEVICE_PATH_TYPE (ldp) != GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE - || (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE -- && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE)) -+ && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE -+ && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_URI_DEVICE_PATH_SUBTYPE)) - continue; - dup_dp = grub_efi_duplicate_device_path (dp); - if (!dup_dp) - continue; -+ -+ if (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) == GRUB_EFI_URI_DEVICE_PATH_SUBTYPE) -+ { -+ dup_ldp = grub_efi_find_last_device_path (dup_dp); -+ dup_ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; -+ dup_ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -+ dup_ldp->length = sizeof (*dup_ldp); -+ } -+ - dup_ldp = grub_efi_find_last_device_path (dup_dp); - dup_ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; - dup_ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -@@ -375,16 +606,31 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, - } - pxe = grub_efi_open_protocol (hnd, &pxe_io_guid, - GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -- if (! pxe) -- continue; -- pxe_mode = pxe->mode; -+ if (!pxe) -+ { -+ nb = grub_efinet_create_dhcp_ack_from_device_path (dp, &ipv6); -+ if (!nb) -+ { -+ grub_print_error (); -+ continue; -+ } -+ packet_buf = nb->head; -+ packet_bufsz = nb->tail - nb->head; -+ } -+ else -+ { -+ pxe_mode = pxe->mode; -+ packet_buf = (grub_uint8_t *) &pxe_mode->dhcp_ack; -+ packet_bufsz = sizeof (pxe_mode->dhcp_ack); -+ ipv6 = pxe_mode->using_ipv6; -+ } - -- if (pxe_mode->using_ipv6) -+ if (ipv6) - { - grub_net_configure_by_dhcpv6_reply (card->name, card, 0, - (struct grub_net_dhcp6_packet *) -- &pxe_mode->dhcp_ack, -- sizeof (pxe_mode->dhcp_ack), -+ packet_buf, -+ packet_bufsz, - 1, device, path); - if (grub_errno) - grub_print_error (); -@@ -393,10 +639,14 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, - { - grub_net_configure_by_dhcp_ack (card->name, card, 0, - (struct grub_net_bootp_packet *) -- &pxe_mode->dhcp_ack, -- sizeof (pxe_mode->dhcp_ack), -+ packet_buf, -+ packet_bufsz, - 1, device, path); - } -+ -+ if (nb) -+ grub_netbuff_free (nb); -+ - return; - } - } -diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index 92f9b5a6f..d5a12569b 100644 ---- a/include/grub/efi/api.h -+++ b/include/grub/efi/api.h -@@ -825,6 +825,8 @@ struct grub_efi_ipv4_device_path - grub_efi_uint16_t remote_port; - grub_efi_uint16_t protocol; - grub_efi_uint8_t static_ip_address; -+ grub_efi_ipv4_address_t gateway_ip_address; -+ grub_efi_ipv4_address_t subnet_mask; - } GRUB_PACKED; - typedef struct grub_efi_ipv4_device_path grub_efi_ipv4_device_path_t; - -@@ -879,6 +881,15 @@ struct grub_efi_sata_device_path - } GRUB_PACKED; - typedef struct grub_efi_sata_device_path grub_efi_sata_device_path_t; - -+#define GRUB_EFI_URI_DEVICE_PATH_SUBTYPE 24 -+ -+struct grub_efi_uri_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_uint8_t uri[0]; -+} GRUB_PACKED; -+typedef struct grub_efi_uri_device_path grub_efi_uri_device_path_t; -+ - #define GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE 10 - - /* Media Device Path. */ diff --git a/patches/grub/2.02/efinet_uefi_ipv6_pxe_support.patch b/patches/grub/2.02/efinet_uefi_ipv6_pxe_support.patch deleted file mode 100644 index 1c12c3e59..000000000 --- a/patches/grub/2.02/efinet_uefi_ipv6_pxe_support.patch +++ /dev/null @@ -1,126 +0,0 @@ -From 559610a5daacf7f6da1316d0fa3977bd59e574f7 Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 27 Oct 2016 17:41:21 -0400 -Subject: efinet: UEFI IPv6 PXE support - -When grub2 image is booted from UEFI IPv6 PXE, the DHCPv6 Reply packet is -cached in firmware buffer which can be obtained by PXE Base Code protocol. The -network interface can be setup through the parameters in that obtained packet. - -Signed-off-by: Michael Chang -Signed-off-by: Ken Lin - -Patch-Name: efinet_uefi_ipv6_pxe_support.patch ---- - grub-core/net/drivers/efi/efinet.c | 24 +++++++++++++---- - include/grub/efi/api.h | 55 +++++++++++++++++++++++++++++++++++++- - 2 files changed, 73 insertions(+), 6 deletions(-) - -diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index 5388f952b..fc90415f2 100644 ---- a/grub-core/net/drivers/efi/efinet.c -+++ b/grub-core/net/drivers/efi/efinet.c -@@ -378,11 +378,25 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, - if (! pxe) - continue; - pxe_mode = pxe->mode; -- grub_net_configure_by_dhcp_ack (card->name, card, 0, -- (struct grub_net_bootp_packet *) -- &pxe_mode->dhcp_ack, -- sizeof (pxe_mode->dhcp_ack), -- 1, device, path); -+ -+ if (pxe_mode->using_ipv6) -+ { -+ grub_net_configure_by_dhcpv6_reply (card->name, card, 0, -+ (struct grub_net_dhcp6_packet *) -+ &pxe_mode->dhcp_ack, -+ sizeof (pxe_mode->dhcp_ack), -+ 1, device, path); -+ if (grub_errno) -+ grub_print_error (); -+ } -+ else -+ { -+ grub_net_configure_by_dhcp_ack (card->name, card, 0, -+ (struct grub_net_bootp_packet *) -+ &pxe_mode->dhcp_ack, -+ sizeof (pxe_mode->dhcp_ack), -+ 1, device, path); -+ } - return; - } - } -diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index c7c9f0e1d..92f9b5a6f 100644 ---- a/include/grub/efi/api.h -+++ b/include/grub/efi/api.h -@@ -1452,14 +1452,67 @@ typedef struct grub_efi_simple_text_output_interface grub_efi_simple_text_output - - typedef grub_uint8_t grub_efi_pxe_packet_t[1472]; - -+typedef struct { -+ grub_uint8_t addr[4]; -+} grub_efi_pxe_ipv4_address_t; -+ -+typedef struct { -+ grub_uint8_t addr[16]; -+} grub_efi_pxe_ipv6_address_t; -+ -+typedef struct { -+ grub_uint8_t addr[32]; -+} grub_efi_pxe_mac_address_t; -+ -+typedef union { -+ grub_uint32_t addr[4]; -+ grub_efi_pxe_ipv4_address_t v4; -+ grub_efi_pxe_ipv6_address_t v6; -+} grub_efi_pxe_ip_address_t; -+ -+#define GRUB_EFI_PXE_BASE_CODE_MAX_IPCNT 8 -+typedef struct { -+ grub_uint8_t filters; -+ grub_uint8_t ip_cnt; -+ grub_uint16_t reserved; -+ grub_efi_pxe_ip_address_t ip_list[GRUB_EFI_PXE_BASE_CODE_MAX_IPCNT]; -+} grub_efi_pxe_ip_filter_t; -+ -+typedef struct { -+ grub_efi_pxe_ip_address_t ip_addr; -+ grub_efi_pxe_mac_address_t mac_addr; -+} grub_efi_pxe_arp_entry_t; -+ -+typedef struct { -+ grub_efi_pxe_ip_address_t ip_addr; -+ grub_efi_pxe_ip_address_t subnet_mask; -+ grub_efi_pxe_ip_address_t gw_addr; -+} grub_efi_pxe_route_entry_t; -+ -+ -+#define GRUB_EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES 8 -+#define GRUB_EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES 8 -+ - typedef struct grub_efi_pxe_mode - { -- grub_uint8_t unused[52]; -+ grub_uint8_t started; -+ grub_uint8_t ipv6_available; -+ grub_uint8_t ipv6_supported; -+ grub_uint8_t using_ipv6; -+ grub_uint8_t unused[16]; -+ grub_efi_pxe_ip_address_t station_ip; -+ grub_efi_pxe_ip_address_t subnet_mask; - grub_efi_pxe_packet_t dhcp_discover; - grub_efi_pxe_packet_t dhcp_ack; - grub_efi_pxe_packet_t proxy_offer; - grub_efi_pxe_packet_t pxe_discover; - grub_efi_pxe_packet_t pxe_reply; -+ grub_efi_pxe_packet_t pxe_bis_reply; -+ grub_efi_pxe_ip_filter_t ip_filter; -+ grub_uint32_t arp_cache_entries; -+ grub_efi_pxe_arp_entry_t arp_cache[GRUB_EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES]; -+ grub_uint32_t route_table_entries; -+ grub_efi_pxe_route_entry_t route_table[GRUB_EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES]; - } grub_efi_pxe_mode_t; - - typedef struct grub_efi_pxe diff --git a/patches/grub/2.02/ext4_feature_encrypt.patch b/patches/grub/2.02/ext4_feature_encrypt.patch deleted file mode 100644 index 65b9b9f69..000000000 --- a/patches/grub/2.02/ext4_feature_encrypt.patch +++ /dev/null @@ -1,143 +0,0 @@ -From 47a39db1b92abd0030b6be6c3a809bd9e4f39def Mon Sep 17 00:00:00 2001 -From: Eric Biggers -Date: Thu, 29 Jun 2017 13:27:49 +0000 -Subject: Allow GRUB to mount ext2/3/4 filesystems that have the encryption - feature. - -On such a filesystem, inodes may have EXT4_ENCRYPT_FLAG set. -For a regular file, this means its contents are encrypted; for a -directory, this means the filenames in its directory entries are -encrypted; and for a symlink, this means its target is encrypted. Since -GRUB cannot decrypt encrypted contents or filenames, just issue an error -if it would need to do so. This is sufficient to allow unencrypted boot -files to co-exist with encrypted files elsewhere on the filesystem. - -(Note that encrypted regular files and symlinks will not normally be -encountered outside an encrypted directory; however, it's possible via -hard links, so they still need to be handled.) - -Tested by booting from an ext4 /boot partition on which I had run -'tune2fs -O encrypt'. I also verified that the expected error messages -are printed when trying to access encrypted directories, files, and -symlinks from the GRUB command line. Also ran 'sudo ./grub-fs-tester -ext4_encrypt'; note that this requires e2fsprogs v1.43+ and Linux v4.1+. - -Signed-off-by: Eric Biggers - -Origin: upstream, https://git.savannah.gnu.org/cgit/grub.git/commit/?id=734668238fcc0ef691a080839e04f33854fa133a -Bug-Debian: https://bugs.debian.org/840204 -Last-Update: 2017-07-06 - -Patch-Name: ext4_feature_encrypt.patch ---- - grub-core/fs/ext2.c | 23 ++++++++++++++++++++++- - tests/ext234_test.in | 1 + - tests/util/grub-fs-tester.in | 10 ++++++++++ - 3 files changed, 33 insertions(+), 1 deletion(-) - -diff --git a/grub-core/fs/ext2.c b/grub-core/fs/ext2.c -index cdce63bcc..b8ad75a0f 100644 ---- a/grub-core/fs/ext2.c -+++ b/grub-core/fs/ext2.c -@@ -102,6 +102,7 @@ GRUB_MOD_LICENSE ("GPLv3+"); - #define EXT4_FEATURE_INCOMPAT_64BIT 0x0080 - #define EXT4_FEATURE_INCOMPAT_MMP 0x0100 - #define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200 -+#define EXT4_FEATURE_INCOMPAT_ENCRYPT 0x10000 - - /* The set of back-incompatible features this driver DOES support. Add (OR) - * flags here as the related features are implemented into the driver. */ -@@ -109,7 +110,8 @@ GRUB_MOD_LICENSE ("GPLv3+"); - | EXT4_FEATURE_INCOMPAT_EXTENTS \ - | EXT4_FEATURE_INCOMPAT_FLEX_BG \ - | EXT2_FEATURE_INCOMPAT_META_BG \ -- | EXT4_FEATURE_INCOMPAT_64BIT) -+ | EXT4_FEATURE_INCOMPAT_64BIT \ -+ | EXT4_FEATURE_INCOMPAT_ENCRYPT) - /* List of rationales for the ignored "incompatible" features: - * needs_recovery: Not really back-incompatible - was added as such to forbid - * ext2 drivers from mounting an ext3 volume with a dirty -@@ -138,6 +140,7 @@ GRUB_MOD_LICENSE ("GPLv3+"); - #define EXT3_JOURNAL_FLAG_DELETED 4 - #define EXT3_JOURNAL_FLAG_LAST_TAG 8 - -+#define EXT4_ENCRYPT_FLAG 0x800 - #define EXT4_EXTENTS_FLAG 0x80000 - - /* The ext2 superblock. */ -@@ -706,6 +709,12 @@ grub_ext2_read_symlink (grub_fshelp_node_t node) - grub_ext2_read_inode (diro->data, diro->ino, &diro->inode); - if (grub_errno) - return 0; -+ -+ if (diro->inode.flags & grub_cpu_to_le32_compile_time (EXT4_ENCRYPT_FLAG)) -+ { -+ grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, "symlink is encrypted"); -+ return 0; -+ } - } - - symlink = grub_malloc (grub_le_to_cpu32 (diro->inode.size) + 1); -@@ -749,6 +758,12 @@ grub_ext2_iterate_dir (grub_fshelp_node_t dir, - return 0; - } - -+ if (diro->inode.flags & grub_cpu_to_le32_compile_time (EXT4_ENCRYPT_FLAG)) -+ { -+ grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, "directory is encrypted"); -+ return 0; -+ } -+ - /* Search the file. */ - while (fpos < grub_le_to_cpu32 (diro->inode.size)) - { -@@ -859,6 +874,12 @@ grub_ext2_open (struct grub_file *file, const char *name) - goto fail; - } - -+ if (fdiro->inode.flags & grub_cpu_to_le32_compile_time (EXT4_ENCRYPT_FLAG)) -+ { -+ err = grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, "file is encrypted"); -+ goto fail; -+ } -+ - grub_memcpy (data->inode, &fdiro->inode, sizeof (struct grub_ext2_inode)); - grub_free (fdiro); - -diff --git a/tests/ext234_test.in b/tests/ext234_test.in -index c986960a8..5f4553607 100644 ---- a/tests/ext234_test.in -+++ b/tests/ext234_test.in -@@ -30,3 +30,4 @@ fi - "@builddir@/grub-fs-tester" ext3 - "@builddir@/grub-fs-tester" ext4 - "@builddir@/grub-fs-tester" ext4_metabg -+"@builddir@/grub-fs-tester" ext4_encrypt -diff --git a/tests/util/grub-fs-tester.in b/tests/util/grub-fs-tester.in -index 2337771a1..5219aa8b4 100644 ---- a/tests/util/grub-fs-tester.in -+++ b/tests/util/grub-fs-tester.in -@@ -135,6 +135,12 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - # Could go further but what's the point? - MAXBLKSIZE=$((65536*1024)) - ;; -+ xext4_encrypt) -+ # OS LIMITATION: Linux currently only allows the 'encrypt' feature -+ # in combination with block_size = PAGE_SIZE (4096 bytes on x86). -+ MINBLKSIZE=$(getconf PAGE_SIZE) -+ MAXBLKSIZE=$MINBLKSIZE -+ ;; - xext*) - MINBLKSIZE=1024 - if [ $MINBLKSIZE -lt $SECSIZE ]; then -@@ -766,6 +772,10 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - MKE2FS_DEVICE_SECTSIZE=$SECSIZE "mkfs.ext4" -O meta_bg,^resize_inode -b $BLKSIZE -L "$FSLABEL" -q "${LODEVICES[0]}" - MOUNTFS=ext4 - ;; -+ xext4_encrypt) -+ MKE2FS_DEVICE_SECTSIZE=$SECSIZE "mkfs.ext4" -O encrypt -b $BLKSIZE -L "$FSLABEL" -q "${MOUNTDEVICE}" -+ MOUNTFS=ext4 -+ ;; - xext*) - MKE2FS_DEVICE_SECTSIZE=$SECSIZE "mkfs.$fs" -b $BLKSIZE -L "$FSLABEL" -q "${LODEVICES[0]}" ;; - xxfs) diff --git a/patches/grub/2.02/gcc7.patch b/patches/grub/2.02/gcc7.patch deleted file mode 100644 index 97012606d..000000000 --- a/patches/grub/2.02/gcc7.patch +++ /dev/null @@ -1,23 +0,0 @@ -When building grub using gcc-7, with -Werror=unused-value enabled, we -hit this error: - - grub_script.yy.c:19:22: error: statement with no effect [-Werror=unused-value] - #define fprintf(...) 0 - -This patch follows the approach from the gcc manual, -https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html, and casts the -0 value to (void). - -diff --git a/grub-core/script/yylex.l b/grub-core/script/yylex.l -index 95b2191..71d288f 100644 ---- a/grub-core/script/yylex.l -+++ b/grub-core/script/yylex.l -@@ -91,7 +91,7 @@ typedef size_t yy_size_t; - #define stdin 0 - #define stdout 0 - --#define fprintf(...) 0 -+#define fprintf(...) ((void)0) - #define exit(...) grub_fatal("fatal error in lexer") - #endif - diff --git a/patches/grub/2.02/gcc8.patch b/patches/grub/2.02/gcc8.patch deleted file mode 100644 index feb325c98..000000000 --- a/patches/grub/2.02/gcc8.patch +++ /dev/null @@ -1,64 +0,0 @@ -When building with GCC 8, there are several errors regarding packed-not-aligned. - - -./include/grub/gpt_partition.h:79:1: error: alignment 1 of ‘struct -grub_gpt_partentry’ is less than 8 [-Werror=packed-not-aligned] - -This patch tries to fix the build error by cleaning up the ambiguity of placing -aligned structure in a packed one. In "struct grub_btrfs_time" and "struct -grub_gpt_part_type", the aligned attribute seems to be superfluous, and also -has to be packed, to ensure the structure is bit-to-bit mapped to the format -laid on disk. I think we could blame to copy and paste error here for the -mistake. In "struct efi_variable", we have to use grub_efi_packed_guid_t, as -the name suggests. :) - -Signed-off-by: Michael Chang -Tested-by: Michael Chang - ---- - grub-core/fs/btrfs.c | 2 +- - include/grub/efiemu/runtime.h | 2 +- - include/grub/gpt_partition.h | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 4849c1ceb..be195448d 100644 ---- a/grub-core/fs/btrfs.c -+++ b/grub-core/fs/btrfs.c -@@ -175,7 +175,7 @@ struct grub_btrfs_time - { - grub_int64_t sec; - grub_uint32_t nanosec; --} __attribute__ ((aligned (4))); -+} GRUB_PACKED; - - struct grub_btrfs_inode - { -diff --git a/include/grub/efiemu/runtime.h b/include/grub/efiemu/runtime.h -index 9b6b729f4..36d2dedf4 100644 ---- a/include/grub/efiemu/runtime.h -+++ b/include/grub/efiemu/runtime.h -@@ -29,7 +29,7 @@ struct grub_efiemu_ptv_rel - - struct efi_variable - { -- grub_efi_guid_t guid; -+ grub_efi_packed_guid_t guid; - grub_uint32_t namelen; - grub_uint32_t size; - grub_efi_uint32_t attributes; -diff --git a/include/grub/gpt_partition.h b/include/grub/gpt_partition.h -index 1b32f6725..9668a68c3 100644 ---- a/include/grub/gpt_partition.h -+++ b/include/grub/gpt_partition.h -@@ -28,7 +28,7 @@ struct grub_gpt_part_type - grub_uint16_t data2; - grub_uint16_t data3; - grub_uint8_t data4[8]; --} __attribute__ ((aligned(8))); -+} GRUB_PACKED; - typedef struct grub_gpt_part_type grub_gpt_part_type_t; - - #define GRUB_GPT_PARTITION_TYPE_EMPTY \ --- -2.13.6 diff --git a/patches/grub/2.02/gettext_quiet.patch b/patches/grub/2.02/gettext_quiet.patch deleted file mode 100644 index 162b01afd..000000000 --- a/patches/grub/2.02/gettext_quiet.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 56c88e431207238935aee7d7245a458ddb21e3d2 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:02 +0000 -Subject: Silence error messages when translations are unavailable - -Bug: https://savannah.gnu.org/bugs/?35880 -Forwarded: https://savannah.gnu.org/bugs/?35880 -Last-Update: 2013-11-14 - -Patch-Name: gettext_quiet.patch ---- - grub-core/gettext/gettext.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/grub-core/gettext/gettext.c b/grub-core/gettext/gettext.c -index 4880cefe3..3098e8918 100644 ---- a/grub-core/gettext/gettext.c -+++ b/grub-core/gettext/gettext.c -@@ -427,6 +427,11 @@ grub_gettext_init_ext (struct grub_gettext_context *ctx, - if (locale[0] == 'e' && locale[1] == 'n' - && (locale[2] == '\0' || locale[2] == '_')) - grub_errno = err = GRUB_ERR_NONE; -+ -+ /* If no translations are available, fall back to untranslated text. */ -+ if (err == GRUB_ERR_FILE_NOT_FOUND) -+ grub_errno = err = GRUB_ERR_NONE; -+ - return err; - } - diff --git a/patches/grub/2.02/grub-install-efibootmgr-check.patch b/patches/grub/2.02/grub-install-efibootmgr-check.patch deleted file mode 100644 index 621eb61e5..000000000 --- a/patches/grub/2.02/grub-install-efibootmgr-check.patch +++ /dev/null @@ -1,178 +0,0 @@ -From 10cafca84f4bf65bed8c0fcd0c171a9d50a08cf0 Mon Sep 17 00:00:00 2001 -From: Steve McIntyre <93sam@debian.org> -Date: Mon, 30 Jan 2017 19:04:51 +0000 -Subject: Make grub-install check for errors from efibootmgr - -Code is currently ignoring errors from efibootmgr, giving users -clearly bogus output like: - - Setting up grub-efi-amd64 (2.02~beta3-4) ... - Installing for x86_64-efi platform. - Could not delete variable: No space left on device - Could not prepare Boot variable: No space left on device - Installation finished. No error reported. - -and then potentially unbootable systems. If efibootmgr fails, -grub-install should know that and report it! - -Signed-off-by: Steve McIntyre <93sam@debian.org> - -Bug-Debian: https://bugs.debian.org/853234 -Forwarded: https://lists.gnu.org/archive/html/grub-devel/2017-01/msg00107.html - -Patch-Name: grub-install-efibootmgr-check.patch ---- - grub-core/osdep/unix/platform.c | 24 +++++++++++++++--------- - include/grub/util/install.h | 2 +- - util/grub-install.c | 14 +++++++++++--- - 3 files changed, 27 insertions(+), 13 deletions(-) - -diff --git a/grub-core/osdep/unix/platform.c b/grub-core/osdep/unix/platform.c -index 28cb37e15..f9c376c35 100644 ---- a/grub-core/osdep/unix/platform.c -+++ b/grub-core/osdep/unix/platform.c -@@ -78,19 +78,20 @@ get_ofpathname (const char *dev) - dev); - } - --static void -+static int - grub_install_remove_efi_entries_by_distributor (const char *efi_distributor) - { - int fd; - pid_t pid = grub_util_exec_pipe ((const char * []){ "efibootmgr", NULL }, &fd); - char *line = NULL; - size_t len = 0; -+ int error = 0; - - if (!pid) - { - grub_util_warn (_("Unable to open stream from %s: %s"), - "efibootmgr", strerror (errno)); -- return; -+ return errno; - } - - FILE *fp = fdopen (fd, "r"); -@@ -98,7 +99,7 @@ grub_install_remove_efi_entries_by_distributor (const char *efi_distributor) - { - grub_util_warn (_("Unable to open stream from %s: %s"), - "efibootmgr", strerror (errno)); -- return; -+ return errno; - } - - line = xmalloc (80); -@@ -119,23 +120,25 @@ grub_install_remove_efi_entries_by_distributor (const char *efi_distributor) - bootnum = line + sizeof ("Boot") - 1; - bootnum[4] = '\0'; - if (!verbosity) -- grub_util_exec ((const char * []){ "efibootmgr", "-q", -+ error = grub_util_exec ((const char * []){ "efibootmgr", "-q", - "-b", bootnum, "-B", NULL }); - else -- grub_util_exec ((const char * []){ "efibootmgr", -+ error = grub_util_exec ((const char * []){ "efibootmgr", - "-b", bootnum, "-B", NULL }); - } - - free (line); -+ return error; - } - --void -+int - grub_install_register_efi (grub_device_t efidir_grub_dev, - const char *efifile_path, - const char *efi_distributor) - { - const char * efidir_disk; - int efidir_part; -+ int error = 0; - efidir_disk = grub_util_biosdisk_get_osdev (efidir_grub_dev->disk); - efidir_part = efidir_grub_dev->disk->partition ? efidir_grub_dev->disk->partition->number + 1 : 1; - -@@ -151,23 +154,26 @@ grub_install_register_efi (grub_device_t efidir_grub_dev, - grub_util_exec ((const char * []){ "modprobe", "-q", "efivars", NULL }); - #endif - /* Delete old entries from the same distributor. */ -- grub_install_remove_efi_entries_by_distributor (efi_distributor); -+ error = grub_install_remove_efi_entries_by_distributor (efi_distributor); -+ if (error) -+ return error; - - char *efidir_part_str = xasprintf ("%d", efidir_part); - - if (!verbosity) -- grub_util_exec ((const char * []){ "efibootmgr", "-q", -+ error = grub_util_exec ((const char * []){ "efibootmgr", "-q", - "-c", "-d", efidir_disk, - "-p", efidir_part_str, "-w", - "-L", efi_distributor, "-l", - efifile_path, NULL }); - else -- grub_util_exec ((const char * []){ "efibootmgr", -+ error = grub_util_exec ((const char * []){ "efibootmgr", - "-c", "-d", efidir_disk, - "-p", efidir_part_str, "-w", - "-L", efi_distributor, "-l", - efifile_path, NULL }); - free (efidir_part_str); -+ return error; - } - - void -diff --git a/include/grub/util/install.h b/include/grub/util/install.h -index 9f517a1bb..58648e209 100644 ---- a/include/grub/util/install.h -+++ b/include/grub/util/install.h -@@ -209,7 +209,7 @@ grub_install_get_default_x86_platform (void); - const char * - grub_install_get_default_x86_platform (void); - --void -+int - grub_install_register_efi (grub_device_t efidir_grub_dev, - const char *efifile_path, - const char *efi_distributor); -diff --git a/util/grub-install.c b/util/grub-install.c -index a4f253918..fae92f40b 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -2020,9 +2020,13 @@ main (int argc, char *argv[]) - if (!removable && update_nvram) - { - /* Try to make this image bootable using the EFI Boot Manager, if available. */ -- grub_install_register_efi (efidir_grub_dev, -+ int error = 0; -+ error = grub_install_register_efi (efidir_grub_dev, - "\\System\\Library\\CoreServices", - efi_distributor); -+ if (error) -+ grub_util_error (_("efibootmgr failed to register the boot entry: %s"), -+ strerror (error)); - } - - grub_device_close (ins_dev); -@@ -2117,6 +2121,7 @@ main (int argc, char *argv[]) - { - char * efifile_path; - char * part; -+ int error = 0; - - /* Try to make this image bootable using the EFI Boot Manager, if available. */ - if (!efi_distributor || efi_distributor[0] == '\0') -@@ -2133,8 +2138,11 @@ main (int argc, char *argv[]) - efidir_grub_dev->disk->name, - (part ? ",": ""), (part ? : "")); - grub_free (part); -- grub_install_register_efi (efidir_grub_dev, -- efifile_path, efi_distributor); -+ error = grub_install_register_efi (efidir_grub_dev, -+ efifile_path, efi_distributor); -+ if (error) -+ grub_util_error (_("efibootmgr failed to register the boot entry: %s"), -+ strerror (error)); - } - break; - diff --git a/patches/grub/2.02/grub-install-extra-removable.patch b/patches/grub/2.02/grub-install-extra-removable.patch deleted file mode 100644 index 5a9c9ab71..000000000 --- a/patches/grub/2.02/grub-install-extra-removable.patch +++ /dev/null @@ -1,220 +0,0 @@ -From c5486f3a81aacdbb9f0092fa9e8c106b6928d7ca Mon Sep 17 00:00:00 2001 -From: Steve McIntyre <93sam@debian.org> -Date: Wed, 3 Dec 2014 01:25:12 +0000 -Subject: Add support for forcing EFI installation to the removable media path - -Add an extra option to grub-install "--no-extra-removable". On EFI -platforms, this will cause the copy of the grub-efi image to not be -written to the removable media path /boot/efi/EFI/BOOT/BOOT$ARCH.EFI. -This will help with broken UEFI implementations where you can't install -to the removable path as a fallback option if Boot Entries get corrupt. - -Signed-off-by: Steve McIntyre <93sam@debian.org> -Signed-off-by: Mathieu Trudel-Lapierre - -Bug-Debian: https://bugs.debian.org/767037 https://bugs.debian.org/773092 -Forwarded: Not yet -Last-Update: 2014-12-20 - -Patch-Name: grub-install-extra-removable.patch ---- - util/grub-install.c | 128 +++++++++++++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 126 insertions(+), 2 deletions(-) - -diff --git a/util/grub-install.c b/util/grub-install.c -index a7c0f566e..a4f253918 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -56,6 +56,7 @@ - - static char *target; - static int removable = 0; -+static int no_extra_removable = 0; - static int recheck = 0; - static int update_nvram = 1; - static char *install_device = NULL; -@@ -113,7 +114,8 @@ enum - OPTION_LABEL_BGCOLOR, - OPTION_PRODUCT_VERSION, - OPTION_UEFI_SECURE_BOOT, -- OPTION_NO_UEFI_SECURE_BOOT -+ OPTION_NO_UEFI_SECURE_BOOT, -+ OPTION_NO_EXTRA_REMOVABLE - }; - - static int fs_probe = 1; -@@ -216,6 +218,10 @@ argp_parser (int key, char *arg, struct argp_state *state) - removable = 1; - return 0; - -+ case OPTION_NO_EXTRA_REMOVABLE: -+ no_extra_removable = 1; -+ return 0; -+ - case OPTION_ALLOW_FLOPPY: - allow_floppy = 1; - return 0; -@@ -322,6 +328,9 @@ static struct argp_option options[] = { - N_("do not install an image usable with UEFI Secure Boot, even if the " - "system was currently started using it. " - "This option is only available on EFI."), 2}, -+ {"no-extra-removable", OPTION_NO_EXTRA_REMOVABLE, 0, 0, -+ N_("Do not install bootloader code to the removable media path. " -+ "This option is only available on EFI."), 2}, - {0, 0, 0, 0, 0, 0} - }; - -@@ -835,6 +844,109 @@ fill_core_services (const char *core_services) - free (sysv_plist); - } - -+/* Helper routine for also_install_removable() below. Walk through the -+ specified dir, looking to see if there is a file/dir that matches -+ the search string exactly, but in a case-insensitive manner. If so, -+ return a copy of the exact file/dir that *does* exist. If not, -+ return NULL */ -+static char * -+check_component_exists(const char *dir, -+ const char *search) -+{ -+ grub_util_fd_dir_t d; -+ grub_util_fd_dirent_t de; -+ char *found = NULL; -+ -+ d = grub_util_fd_opendir (dir); -+ if (!d) -+ grub_util_error (_("cannot open directory `%s': %s"), -+ dir, grub_util_fd_strerror ()); -+ -+ while ((de = grub_util_fd_readdir (d))) -+ { -+ if (strcasecmp (de->d_name, search) == 0) -+ { -+ found = xstrdup (de->d_name); -+ break; -+ } -+ } -+ grub_util_fd_closedir (d); -+ return found; -+} -+ -+/* Some complex directory-handling stuff in here, to cope with -+ * case-insensitive FAT/VFAT filesystem semantics. Ugh. */ -+static void -+also_install_removable(const char *src, -+ const char *base_efidir, -+ const char *efi_suffix, -+ const char *efi_suffix_upper) -+{ -+ char *efi_file = NULL; -+ char *dst = NULL; -+ char *cur = NULL; -+ char *found = NULL; -+ char *fb_signed = NULL; -+ char *fb_file = NULL; -+ char *generic_efidir = NULL; -+ -+ if (!efi_suffix) -+ grub_util_error ("%s", _("efi_suffix not set")); -+ if (!efi_suffix_upper) -+ grub_util_error ("%s", _("efi_suffix_upper not set")); -+ -+ efi_file = xasprintf ("BOOT%s.EFI", efi_suffix_upper); -+ fb_signed = xasprintf ("fb%s.efi.signed", efi_suffix); -+ fb_file = xasprintf ("fb%s.efi", efi_suffix); -+ -+ /* We need to install in $base_efidir/EFI/BOOT/$efi_file, but we -+ * need to cope with case-insensitive stuff here. Build the path one -+ * component at a time, checking for existing matches each time. */ -+ -+ /* Look for "EFI" in base_efidir. Make it if it does not exist in -+ * some form. */ -+ found = check_component_exists(base_efidir, "EFI"); -+ if (found == NULL) -+ found = xstrdup("EFI"); -+ dst = grub_util_path_concat (2, base_efidir, found); -+ cur = xstrdup (dst); -+ free (dst); -+ free (found); -+ grub_install_mkdir_p (cur); -+ -+ /* Now BOOT */ -+ found = check_component_exists(cur, "BOOT"); -+ if (found == NULL) -+ found = xstrdup("BOOT"); -+ dst = grub_util_path_concat (2, cur, found); -+ free (cur); -+ free (found); -+ grub_install_mkdir_p (dst); -+ generic_efidir = xstrdup (dst); -+ free (dst); -+ -+ /* Now $efi_file */ -+ found = check_component_exists(generic_efidir, efi_file); -+ if (found == NULL) -+ found = xstrdup(efi_file); -+ dst = grub_util_path_concat (2, generic_efidir, found); -+ free (found); -+ grub_install_copy_file (src, dst, 1); -+ free (efi_file); -+ free (dst); -+ -+ /* Now try to also install fallback */ -+ efi_file = grub_util_path_concat (2, "/usr/lib/shim/", fb_signed); -+ dst = grub_util_path_concat (2, generic_efidir, fb_file); -+ free (generic_efidir); -+ grub_install_copy_file (efi_file, dst, 0); -+ free (efi_file); -+ free (dst); -+ -+ free (fb_file); -+ free (fb_signed); -+} -+ - int - main (int argc, char *argv[]) - { -@@ -852,6 +964,7 @@ main (int argc, char *argv[]) - char *relative_grubdir; - char **efidir_device_names = NULL; - grub_device_t efidir_grub_dev = NULL; -+ char *base_efidir = NULL; - char *efidir_grub_devname; - int efidir_is_mac = 0; - int is_prep = 0; -@@ -884,6 +997,9 @@ main (int argc, char *argv[]) - bootloader_id = xstrdup ("grub"); - } - -+ if (removable && no_extra_removable) -+ grub_util_error (_("Invalid to use both --removable and --no_extra_removable")); -+ - if (!grub_install_source_directory) - { - if (!target) -@@ -1093,6 +1209,8 @@ main (int argc, char *argv[]) - if (!efidir_is_mac && grub_strcmp (fs->name, "fat") != 0) - grub_util_error (_("%s doesn't look like an EFI partition"), efidir); - -+ base_efidir = xstrdup(efidir); -+ - /* The EFI specification requires that an EFI System Partition must - contain an "EFI" subdirectory, and that OS loaders are stored in - subdirectories below EFI. Vendors are expected to pick names that do -@@ -1984,9 +2102,15 @@ main (int argc, char *argv[]) - fprintf (config_dst_f, "configfile $prefix/grub.cfg\n"); - fclose (config_dst_f); - free (config_dst); -+ if (!removable && !no_extra_removable) -+ also_install_removable(efi_signed, base_efidir, efi_suffix, efi_suffix_upper); - } - else -- grub_install_copy_file (imgfile, dst, 1); -+ { -+ grub_install_copy_file (imgfile, dst, 1); -+ if (!removable && !no_extra_removable) -+ also_install_removable(imgfile, base_efidir, efi_suffix, efi_suffix_upper); -+ } - free (dst); - } - if (!removable && update_nvram) diff --git a/patches/grub/2.02/include-compatible-unifont-bdf.patch b/patches/grub/2.02/include-compatible-unifont-bdf.patch deleted file mode 100644 index 8fb56e61c..000000000 --- a/patches/grub/2.02/include-compatible-unifont-bdf.patch +++ /dev/null @@ -1,22543 +0,0 @@ -Include compatible unifont.bdf file - -Compiling coreboot requires a working unifont.bdf file. - -Do not rely on the build host having a good copy. Provide our own. - -diff --git a/unifont-5.1.20080820.bdf.gz b/unifont-5.1.20080820.bdf.gz -new file mode 100644 -index 0000000000000000000000000000000000000000..c3d53ba0bbea8cb0c1431707bc32391c89ffbe47 -GIT binary patch -literal 1313861 -zcmbq(c_5Tu^!K+EsgR|GFtQ{|D3rCyQuZa3$dV#NcCs}pvX-5)jcf_o_kGP+XY5;K -z8H{}!+c5auXY~Hw_y6}Fp1IGx=iYnnIiK@6=RUBYGiTl}v+Dmx=4@m6%GSo|rl`Oz -zf!jhtVnSlKg#=!hzWT4}KreT>reG$Z8lzz!mfI}a^l&WYM{MS~NMU+6+Xk~*&hu{- -z>tZM)4adjNYN?%9dqn4Lpgkb;2#6;dqr9~G;r%n79ObAMTqBP93$uA2*M*EjoEEfjtHiyb_mdwLK5Fj);Pd -zwFj7^)LC1MF;%-R9=?V@Xn=2ndA7Y44zcie6`(IcBTGZ>DB~bvS$T`GvS2rIGsE`J -z`X**Mv5nxx8JEiPAk#3l?M6>gHes`(50=tC-|K`=*Y6ys59q5@OwgV#<%3uEY`=_r -z4Of%&%8U{)WA7B`F=f!RWnXl;RPGrbSX8MPr)|2QF#G3CoW|I&3!(2$wyJ4)5Wi#K -z($Yj?>)x}TUU8kxYNhK1BM+X4Cn`NCt?ccKcu3GFS@tQd{QF=)+@t3_ry9#WN{@o! -z2Y19D+`;l^J06~ahN-_XjK(3V#8 -zix(>L-6YYPA)R<68F3?f*HP)UDTd1K2Rqx}1))(o@j>o@vLHfMwe -zHHryszIMO!Z!fl_F!lVHmC5Iu>y>ivFc5Fixt*h<=f~PF@y6wGM&PNa^Zbv|`F>eC -z?c6)kVagAqC2&K+(%n7RFApvT_eR!yHCx3r-E*4!ptHMW98MdSDuz7`RUW_aSvYNIl2$R{rT8F)Ti9y -zp^GiddJg+YcZHFOFI?z|yF{h$oTqfY>f9%{&pW!(h*{cD^4|5AaWfT>b>GlBmUkOE -zY75hhEoR5X5wCcWwehuXZ#k~y#Yo6B5SxdCa|kYb`*7_6=APO1CxdiXzQkOgdAPYx -zf6EK`p*b3sHNS&N6yy@>yPd7tFnQ4*!OW;IEIWGc8SXO5D(saYr;uWSGOr8_ajlZL -zv-Ma|=wtz7GDr3@V)p2UG!x6a*|*$mA11%31qSaL^!2uq(S_Cx{ccOfZlw*eP%1uu -z{z5w$JDG{X*`7+Fj$>eHtp0A3%prF+j*jKrvVeyt?XSul&MVF5?(j(55fOPL)?{@! -zt0o8X^6C6xI>1ePK;(LT9 -zrl?SUzTB2NXE6rF|91( -z_*dWZGmAWr_hsA`jik3f{JdOL1;K<7Lt!dccFavys2zLH0ojpryOQig1Y;;PE-?56 -z<)2X6Xz;8Y5Ztb4_SN|3-QdENeOyZr9eHWmv%BBh)yQsVSiuOEU%~5nL -zCf^G9nMa#Xw}W?If@7~cIXcBqT=g36-fG`cv}6?2Q4(H!6{ERd^ZlClgLG(HnUQlX -zs85Yo9vLerfKhGqEazOLDZ8Rc;uf1t8fYZx#73opNj+UBPXE1pcj6VJU>{h9Y=fFX -z9x-0?l8XUidHbObtk+QGd6j0myn^fLW-L8vO$iJvsJb5PvQ)!uqn{DU*rw1o)l$mi -zY(ZwEjz@=`JI=@pk5^*hLtARqkzh~i0l{}X$EqVgUtWlun}bz~H)C|c`giS3Nh9_S -zR`i<{OV3NxhB=KXlBPqEl_}i!Y;{di3JmrO+i-K@XA~51OXjGY<$i$>`FXkH)2Zfj -zYRXPh+p>kHKJBCOO{=<0O%z6c@LD7vIlW5)KU3uuo-Rs_T|2A%9Q=5wFnP6}B<^+j -zwjrg;ptlj!tbkg6u(m4uSlW%5kTKabH>b;ZAdCGl4-DMMLMxf0_FUUTX`rYPd6#Lc -zI@-lxF6^f#tSpT!MFv=C32*2m3t~jAmF6qAK83H#@&yNPVRD8hGjln?c(ZQ%XWqC3 -z2lvy^FX5FoW`VQg*C;On5f@l?%%Uh{PlD4gQmVXdUBy4zgY6yG`R$r?Q33TOc=qzI -zhFgIa8}8pSL67;x;B%rAbd8;gdbfJPzeFHr_1DiUnCIdBovq(K~ -zkN?H@7QKM0=&L&r=XLgexNBs$^QG+yH^-|dqB{dW8A8u*dBg4;&|mGUOAzKg@YJyD -zaNy9tPqy>>=O)=b54e=EQ%3pXgS5iwW*X1d$rZN=;&-hdBf8$RU&zrkyb0Geo-o@m -z{+K0x?FBA#(uFH-N=7l6LK*y%}= -zu6~8=`fDwZL~#@etlVFJQy93F>ACzAhg-PCFPY?cZIst`{l{uz5?^Js^<4Kpka;sW -zVm6sVs@Y)d9GXU-nfr?uS5^eKkMRkrc-Y1WqJ)8BJ1&0d`=o!^;Eo(3- -z^z0QEiTQ=@E#WSmCdxC3j&J^0*T`7=;h1wTPlNnE1cFgj?}u -zB?98-%O{@cmxWe*xvFk{9e2Ytfv18i<>52_#8)v5WvwUB)6Ac&mF|v}6tM}veK^=5 -z^Wb7b{7EWvsR+@n4^PO>Ev)bqzq&vj%}n-Y;89C}WZTlG+u}SU@hO_O(DY%xM%Ru4 -zwEP&dFWrj^<%h(Nd^kzhY27!<=s3zxoD&Fdb?belR_z#RY3TZOY%?1Fqce6xZL9aT -zyvylo)zfa+ZK^K-!MQN$mN{sJW>R);y+lv5gvz;~A=ih9KxAhh*0%UisOXBao -zK|g9KtMB3R-e9CRY`Ze~eAwY{k+?z<;f-EO+LPV})GBBbuZq%V_B;PEi}=cqjAEQ?%soab7GhRUDZyMwiXF| -zU}SmwHeZJ`0{<$;k%6~4>@8Ky$$d{w9bx&Z -z);o8ZP~Q<8@gnw*t@MM5-t-|~F7@*6x?4i6E4rU?++MF39gmD&PkjD5y~7u1R@kxG -z{v+wAPJ@qJ#O}SyZ6ZOt;?O?_E_WCw%JKa}uU96gnli_OJeak*EUp>JPK25}9rU&5>Y5NoR;I7xj -zU!2MINCuv4eaqEcrbL;5oA{Wi-*0h -z_#-H><6I_Sea9G0qjc&16)~Ztma*yyV(9dVs&au~0WWd5qT2iPj34YsB{Yrf<%w%B -z6IvD+5IFo_(2JN6>!G|4O=^K{f;c};*msw7$N8N-TKURTVPoNq69AU{I5{RBd8akH -zj_l9nhBUqthjWUb$htT^iz^IVq(IY9KB@ayO}#i=n66Offu`v;s++N1WBTgTYUqxp -zS$|cB5V!jJ;{#r<=xW!|UsEd0GPXPFv4q;hNh3Ri|2EkM;nha~i`~BWk31en`~+Jb -zrF~k~!S1fcD&@Eot@tfxULRV7%7j{5Qc!*+ZsxzhA+c7hx74HtCgR|7w|)3;zf)9F -zQC>w{p(yC-5%g3WN6F;MbZDW%RvooyZ|2sMh~yp)DLqwyyC&1vA}Wum9L9%!H<@C3 -zf#vjKoo4d=Xw?!GVLf#{=uf<nwRH(LyksZ+6e`0S)xd}R6|jmnHwwQoLU(5MhXI+OSY$oj(_fOx>6U^gnSh#~p1e!uQCt;u -zNR>TmI{Hk$5j4s_J4vWyte~Y?IgRskRblhEOD_V{QF3bIt*{K(E?BphARW|HdTPVt -znz}rA41IR;@+<7T)R-Ni<+hX^LNV`@RzkCM`6w+Z -z1ZIvg1E{l$ZdcO%;cF0t%oZbRQ_NF=w)LC;_ep4VR^@^ghz6>AFwZ({H>=WND)$&PMJHxXp??HAoI -zP8mUxTC?LG`+Go=L`!X+Tw4L&7&+rhF0oZAbg&MT} -zQh}A<5eUuGI0~h)o4t(@JVRDL_|sLr#nfYc+)8=D+3NnCYLttG{n4m4nC>>i_}T5oD4>{iM7(yOq_l^fv!EDU@j$Fr`GppH)<@tiFkC!m%06^{ -zA&$wMIly1#_w8LPus%Q<+a@;tMgZh|ba1rEW6eGqurNeCJ(vAK9e|pUmsee`E9eKQ -zUW|t&ABcI-aHjI<2IA$yVG5py9}13cQ#FW*@6<*1fMJ}7_+>ZxM789lT2*hU;+GBj -zx6F>rNM3P3zek$BG0Go2fED>E%#&u{!p46wxCKp>%{u4|FN<)7*u?E!d)b4D!digF -zz^}1u-Mo{4`9Mnzp16g9Y#NTfsBte5djp^l9GxStqc6(?93K(iJI63iS_<=bQ9ZZ? -zsf{lO@s|dWpstWYKH6;v0N`jfxX(^358s_$w$BmoUI6`qX?&h2q%2fuJ+c0AZI5W0 -z@7h(8$3KKg{xzg3*S0q;+ow%*kDMj4@nb}f@agS{A*X-Ks}l&{{Csz&@D)=J<}~HD -zTNLQDj{SBX>`G<@bxY}>ZnvJH8*g*ZrfuJ3g2~iAoR4-307q&^rS0D2$E>X;(H4wG -zj^6|C1G}Vp1_L>#cvGCt495GBf!v%+_7`MTK(r8>JGxY(WtSiZ5QX -zU&k>U+xYk7?V@MUF}4KrriL^w?}UQR0@XU1)A^nx#sl?{>tM7F;n-rOHe?>$j= -z!-$;0jj0BhuGoshTU4CJwj2A)EJ=?S-yYZjECMz}F_lV$%wh*?tt=1brU-zg>tmAi -z%7HT|A>zAiORYa~eg|F2;p%xXCs!B>0M4#G;;pV%Zk${643TXMJIYfIAOYC9V~rPW -z_OXj(O+S=th1!J2rQ((x(=*SgdfUC*P;X5Df`Peh{IQB=v+(hh!G{PyL3hvoe(Mva -zI1h3`l^U)5kA~h~f+M7KX)4ccx)oj-Z(ax|IUZU_aRk!AP^zQM*8{uXG+a1}3>eO- -zst!@sM_K~e{^17hcnN4BT1c6$aP@jk`2{LmiacPaK>r$XOoG2D5 -zvG4Sl7YdcYJE~aVQGz8|Wp02X0EBp6Rkq@nzQs -z6PiLCcW*+lc3~A|Liw5w!il~R$L#46*lWmpneQ!r-I42r)?NO{0rG91Eqmll=~{E8*}2Ezk%)m33vZI5MTMp -zaK1Nm<(ZV!`4HlmCh(G1kj-bnP@0DbR`oAGu -z>u;*FlycB;LR3PS$i -zRH(QH*@7eNV)b+V$V(T0z<2@bs3Wf(q)11W%rb>9ycM?XtLJtWHY%cm$kV%#)&jAe -zB!kx$<>ckI>u5iRj1TMHY8%*}4?P8I4CIvKHyNo9JbMc+;}LK2mdkw^kVHee(LwTD -zOh7T&U}!@`yH10lPH1V$1M!N{oqawkj=@l)uiFd!S=5%_%0Tz&Q_e!)#y^j-;QW}k -z?9n+_b5=-J5WK_weH!owzui4CqLB_W@_^&g8Wl)d<-nWIR@Y|krKh!eZ0n&>0#5}1|jTL$n)=5r)Pnl-JLep@< -zgN?uT9#UGr7zmU^(>TC`1ulJ*Fud_M^frJu@4S2H2BAURN9IWi01d!4qq$9_`&i!H -z%fv!~h=FF-{jT-6JwkB*}BEMYKg+Ahf7ZwGt`hI`n$9KQn|S5Q2G?@ByI -z7pfER2$J#hGpWD3amgVXigl3aw~j1j^BqPz5qlHL5bt@%e9r~ON?t*GFg7yr74Kbi -z4=rJ2T^V?|*4lf}2_*s`K2Iw&L)ZyGdAU^EdTIEMvh!URkW4h~+iN!7vAg=jB(Gw| -zPY|+ZKfZZP)KHKk8%RO!@TliFRgZ>kxqLf(Lec{o9ii@BD~kCGDiFZoh;BnJ7YPG@ -z$M67)0I)qSXm$Ok5%KoyXWTT+HfS2g1#BJDnP(}LvF2Oxu<0#(S-zr>**IwkI?ZdG -z932e-p#?!?&8xtRliJh+3NEoQZlBFk>v2bfe{P6&#pSMpoh)}fukY>VtazQ1%gOOoitucgGt3g%HP$64~W>Zr7A=!0f6UROF9k> -zC1+DDp)n&NjiQ{J$Hs$L_IQ2%+6n}lASR%0h&P@GL=r&FE#(Fw4$>l#aH%xdLz41> -zK0ALDTmWJLS4BQXBo|ZH7VBz+!rRmb0Y0}Jh)MMxs%|`}v=!|cPPK}@3JAl2*nLgJ -z>5lPpy5tb$2j)m^m?Xj0JEOneLPEXA=0a03AarhG*LXd`-ESOE8phe^Rwei^RIOfZ -z!)OEpTH22izgn3~9OEE`?qfm#meNR!fFe7XtCYYE<>7!1F(w{5NvFvzY_F)pstBbH>J}2u)m2d9=4~guf@wE#5t&}4VWfH)ghywnL42z^#jNg|U`X=$af@EBiZ%KA> -z1|%vNIn!eXUS}A(lD|Oe>*%kuejIZr1X}*(F8|x4KHk<_ev}4W1<9gEM)Nj_-rCaA&drS_6F&75h84@fLow9h<@O_A!Oa%isxpB*k(8kH&UC?h+8h6 -zf&zlLd*Dr#6em0=QM62;PH5Z`zHAHt=lSWyh;+RanuyNIb+F;4kV31cxxH!Sd{ls^ -z01;v?FcBX|YKu<7wR*q~5Pm+dV$q3lt231uplU*}4}4|p*>&mr%4~HPDPQV~9aMiq -zNntRvq5`xrjfkJRb9bp9L>_=_%u&Qy-|8NKkqam#$;+vL@tDGct)-O#yzO8o49oQW -zC|7M?1Cq4>47@yeQAqb#^}BB31W#>8(*C1HElKCLezcx_N$Dpa3G;UCku9X0dI4og -zmk1maumpj~Q41jw^Vk&Ms|Ub1fGXF9SPNid*sq68Zij%Ru;qpnZZ#)SAp0b{e4#gm -zT`Cs7{em&iobmu#C@x?}g|m|u17YVOm`*Q4E??km8(lG5juPv!f -zM5RX7j@4m7l@vuXAY33Qxw4*Qs%m%-%z<*tUZmQ)DdM1@T}rrP+irVM%8~@0lagap -z?PnHZGLJ-{?SfczHZ*@)81*Za28wk9sP(U}bjRwx-rX1Tg>1>3_Io_`rM~P`c-JpI -zCsDu-|5P -zU*AVo+r5zl!U2!ei!3u{f+C&PJ7(6Dg_}H!6{_w8kjb@Z!W1gsoD2UTZx6i=hndIO -zqS%S+-%C3MmPArYtRUQ`nHyyHR{WQ(^(S*a*$Nhc0=(V$<1KJ{69a -z`v@~Y>3Z$U1(E*GT(!aZSpCh=hzFx%JIbToDEF-s%uXRZD!ZVpPeT_4JWdMq0 -z+(XmxVy$B40kHV)iOEn2m{@}A96yj)9A;(-GcIhnfm@%JMeLHsEb)9%`^&oApuM)5Bu#SO`}I=c-~8=cg={Wf!9}FGaBF{FLV5re -zWZ?HwNMoQ0B!I13_6@B0S?|CCpfq05ySxIFAa3`e#9y_$O+{squ#lQ57=!!d3%nGV -zD`REp)3MbbzvI@EK_&(K0F%u>R}KKX{?*e&DaoLzyG|diWTZ@8WrD29j)mQg`h$^M=Rsn;w6D4So^q)jgh9vV2_yg;o#`UqxKd3MOk~>4NqRi+R_|Nt9s}LB(&t%kLl`zfc -z&@|#iu_VGQRJ-fh6Z2bd5Tx5vf(g(;R2$NQ6wRX2XY8%dK?n=5%|4U~F)yCuW;8xx -z#0x*Ast)QUz=VEG+WGcMvu>67v_Y5v%q1Fk?cU{|HsbJ9f_($i=VugWpe1U;xM%pS -z0L2G1*A-S0c?r*I0N@>9$cMkX33G7cw~&2Y96sVE&hHc)jd9aQ -z#H>4v*8-H9Kut=`hw!`D^mN}`+0T+50CgbX>b-U@W7B1eV$h-k3-L5WRofQ6K~l~V -zAFQ{J9(fGHFre5CF9%Y}jZjdgGK|;NfV)*)-J6AofCC&I;7cggRk`;jMPO%3g49y( -z+x*2~=B#c#w9sjk-h~SN#kxKE*__#w3b(sJsk`kQ^!K$#re*R6JuEtaCWyMK5*(B%CD -zPvi$CEIN~3sC;lyHT!sosig@g=9~+w7 -zKG3;lhNKYD4|X4teym{`_V?B-oj{#uH%Xu%K2fLpK*)|NyHDj>L2*)P2p!Z5W>??9?kF>(RVu`J{Lzd{cWptgidBq?f!Wp3k8ewh?65Umnzo)b)_)+nzmg$q6Fb;5_Inh@L`F@6iy) -zZ-;(Q$e^va9EklW7pHXs9s$~4BBJM@=mSo7a?ogJ(tY(gVDI%IWS0x?{FCD7{)X`- -zG!h(kywy{hvVYdF9@LM|?KMZysEd9hF?qaa9t62;8`!)gy-Xk;)Hthm@xWVw9dO&f -z>0%&N*tm7Ppt-w3gw+CoRKWN!mzNvC6F8KB#qA$J!X~z3vN%%!Iy(l74=MIJyfGGgkkt%Lr|Bs0vE&d-lKDh4O~~qyWmoqdP)e(3yLHX=z6==19g59!n0iFX{jq2iB|eDfAMz3TUhhB^Gsrz?6&Fe_5^2yl -zzKk{KJ8`RG3f$zrbHG-=2Os^kuyS7>E&gh+br%xRdX~yZw8)^*cnQ1aU3`M-Gb|Pa -zgWod|G(Mu9<-YLY)mQVEPcpgZObWV&3u>McId9OIxW@TRmD=J;xo@q1geP!nfP{za -z>Kg%sa&i#-OJU{_`2v|xU2c~Tj&?R;cqs-aM#0Q0I>t=TSLbQF} -zK8Ex+jmI|a#(p8O7i{k81*qyy4G)&Hm>Ipl4V7YB5zLN#U2w=HLtr?&jDFsW(@J1A -z@MCA=>dGV(?RrBR$7wPBNuH_A$J*Y^+|$TvG}Q1lW$=CFmmg0>Pe@A4RgKP3*U(>IZ;BOrdW5u3^5}Pa3hl`oI!4 -zobvDF@gD1RSD;e_w}Ed2V(dWK8aiC}Hx%7uknjA2yfN=06bJ#&n$V`rnKa{vj288{ -zf`8v5>@}iY2+FPAB5eT53VUa6o2y-uKP55Xr}^gW+5G+ -z=g{O|x-`Vx=+R2cF;b8+5HYBPqE`;S(jCoG%b?=|9P5@e+-G9n~Rd$9Tig>Uj9QWp(Jo4S#;g{u=LV{dKe)a+C?< -zSx);>&PTWEaUVDy`qD|%4idB4MI$UAfv)Yr9`hvy;yoVqv>X{e=-+08*5fCrm~VwE -z&pnNPB2@qrdyyK|#p7=VaQTI4$r7;brJk7h(`&TN;VG010=(R0{(70P|6vV|GZB5_Gl! -zq+f~4i6{!cl2+NbTf~_H)jOiPVwz{Dwkka_?Xs~T70{wgC_gGKSA{-6*r1be+6pqn -zvICC6n1`6LD-tVG!1NPQiER-+{PJ^Y&LIct>RSG`?VP;v-UPK&r-Qxyc%2mdD9WEK`yy`i!a$+`GKax%Ovox@2qbCk)V^ -zJL(&V?_RFY5%!M6a?5gG@Fk1r8WKM0U+K|p4~lW&RzrN`M+Spj5^DGvCZoUzX{dCU -z1lxOg1m}0QiTz;Z%Aq&0}zb%c3UJgdxujQT7J@d7{0m?~$1gUG|CSJ<|_ke{IEVbz6fXf=w;dKgqxk2a< -z8|Wl(FL&_vh2X}7Cn@5CCAemRtgx)yoW`tipi_7l_*rzCp6Nft*6|P%o6spw1IGqt{wfTQKDVQx}^*f0eX1* -z78u_V39-&?#La*-C!9`#f-1cH=qn@=_x3=hK?q!(0ILiqeJs{m(1=0XBQxU5+u-pe -zwiVfx#UvU-GKNjU`Sz2KS>um)PB)#4kkml#37g_hX>zKcYt1ZAC9kRnO!lC?)uwVSVQs& -zYcr3p{HHN);PW+^r?R-O)-+bMhi|A*V1s}~SCXGok^2e(Olyea{mX~-wcqNUSfE`f -z&&B7+jyAQD=sWerxjb&tae*va6FwR;CXMscfvZmj+q^E>%%{4fi+z9r4hlo5E>`@M -z&L@NL0P=TM>`Q0xLXMJ!vKL(3fUirOoa5i)#a&6vlFKPa_Zk$v6afZ_5}g{nAwtBP -zgco)ZT%<8*bdK#n;=NOS)F0jFj1*D@H#SdYDV|*8gm}FYWde58`1UJsJ0IC4ZgBxz -z2}5m-uS4dJOUX;pcKPWpla2s+fiC%NC_=f| -z=KIe@oC%nG9lMlLa+ODYkb4zEjmWNH4ESDzM95~1mtp%5!1oZv77Oe)za8^zerC}G -zAOE;rArkAhe)J*+f5)al(s%}yW61%57${!k>^$YMG=s89z^1#tIY(VK1Fi?s;sNf` -zfOM3v^A9&t1#kkzGt?t(OjUV&!#_OkZ*Oe=ef^`}JKOD8Pzy+=lQ0iCMMZBFrd6YO -zh2(-E+LN)<;or&H>q#c^L>84BHn8Y!Y5z{}AuuomGlnLT?}uaYM7)U_Awql*GYu|Z -zG$<1S1v|HFLTsxc^@A18mJ&^iGU1=}{|?we`F?a4C1#5R5IVBv!w)vr%ae(oqdYFh -zg-Tfk=Y4Tz(R)zMCc{U)`m`T%&s3axx@G(NlMrBbDsyEgMiS|Jt!TdOzl~TYo2h9( -zaRI5Ty6#$Vw}g!ydp6BDpj*SG3PmlS>eKeuvtq;Z;@qrj&+cj3`Fw}N-}jcsuFrh% -zXO(a9PBVJ4sBw2-1sQNcKJ{Vy`$$Pz4u8dXgsnD<1m})tg{V3kyQq=7ZFJmoJ%OoM -zvmYnrQw4RNAXw@I9(rI0<#M(h>Y}V5BnPm^pnztxfMCVA-lFOgrxGqR3 -zHnp~#^G5GFTf;~H&Cb=E@-}y85O@z>8F}BaRfM$C$i(QPvixcG+t!N=DkoLlsR!mC -zzWcJLO~p>fF>5(gGmeXU&pl0^u>9acz<)?Zhq)!%kF|*!&B2te?5)X;Lx&-G?5cJ2 -z8D`GE(iRx{W2IgVA~;`U6ez -z7USbMPa3#fW@lLQX(}rWVJUm@_FI@yAoQ-Jks|viKh={H8bh2xDI$-39@o*+tx|{3 -z%OW-F=(}eV8i(>(42G%ZS7Ple9wlDaK%%Pe&liUw?~2Z+uv=E -z*D?SNO^;8;P=37_Zcd=gK8aMkz1GrLauOLT=33&Me+p<{=@Kj9M&^6&a4D(4>SVvS -zTk6pE0u-vWUP2;+D5jiL?_A6R9jv9MBB7;m5?m2STN)m+WEz}|ZcR#8e=1(Nyxu19 -zqaR3n!fM}kD(eGxc$Jhx7ige-g)HO<5qeNV2iEe$(0uGgKxgc8Q6M=1H+7JTdhjmr -zf}SPV101t{8Fr^J#~nJUF2~nnYlF`0RFEWQ>1VI^#;q#KS%Ca#WW^alDg*Bva-`zM -zW*u45;Hb(++RrNP+WS`{Bq3!OQQVeFeQRAtbw6UYmC -z9&01=%=Z_yAl;Ojb9WAHQIbi8nXd2*G5Ev75e!@6_>=7KxqC*X6=OZVj>74|Qny*} -zMQ?Bg?n7O#t?!&N?sg8ClF|52gY)93o;!Pn{ilA5VoDIQKp4V -zrGB|^>lC~mvE%ZehUtx34!y*@I(l*9y(F%{EF>_`+eC)XzorJb`N5>95Yu-JCp9?r -z5Yb}xV0G2^Ou$h|!#x@LLk79|ag>iupLY~;1;#OcW4SL+j=@wY=ihuZnyWEHD-Yfr -zng&e0de;D8OwK5|@Nr5N7s6O?m1@UaHT;{1;#av4Cj7@NAJ$ssaa~N~=P3-P -zO?~0KkZrJRw5b0Dg^uOZv;h|PeWYIOk$pS7M2v6aHz;7HXXpk9=&zT^(pn`RqUXZK -zPWBSX+FC`s4q#bau=Kfeo}K}4&QN#6ZiZ^TvKl3@9pc&v)q+=#PiiPi!Tm0tX%)#k -zg;d-kGW=F5K3AjnP9Pb08efO@WKtK3vda22@Iu0{JG&8NJvfE(Fzo_Cec(rK2!Zdj -zuNbnSL&ld)KduSfXBKELPL>=Civt)HrjvkUGwWTyPa0+}UR4mS91ClHQ;2<4n*t`t -z#1tw`N+2Ql-5~DPJ7!qHIlQ(qklV-oBO08g=z)|4!ep`FF8NRbIQX@kJQ`awFu -z2fz&75VQGqNFDU$?7*kV8E*IT4Zi|A43~l%wB-h?04I>egedrRg;^rsv#|kFT_FtL -zIpwwUVD&*?9sMf9LOyU~tu!R}N67S(rQvH1$||fQOu&Efj-d_CqsJ?IT4=sDV72{Q -zj_D6%mz)?3n%;&}a;^-RoXJa$+0PttGXhE6@40=Duu%4S$dNH2+nU2UgUs1kW={vV -z_b#4BwrJ)nsK|pgyCO<0D-9EEkJ -zz$8t8)j}KPM8alxFLu)Y2nzyM;fk;h`wP6C9TQT? -z@`sNXz}&TU;+4{ClJIAgptlQ#W~OcQao4KL?OB>yiBYdarV%SaCpk=jhn7<#;x$i} -zkwREQm`Dof%x -z)!ZrGFfl(?J>yQTu6t}Jf6C7>SHQ>JIZpoMY!y#+yQE*k`D{!riRpXz`QrCwv1+J< -zGvC8SaG|jO44vB<-*eolyb50RzYh*rtk9To$T!M%D7w$3g$sSA5tgoI@jtBZT2|D7(w@dn$cMR2Il -zkc!q9_V%CiPV=@-FrU?boFo5V6sNeKjh3ZBe1pXa@d9x_b>eMZ$k^iL?&|S3Jb3=* -z9KauO2C4t-xu5_bZaQ}RyRlhjX*R#t+Ma}{E_nUqYKsb?``8^E{hv0+>n8W#1u|}n -z`4uH4aO7e${HdX#A`+*=k#nT>hd;3Skj>$`Ca>K4cCy24Xob{{b{>Udu>G`IerR+W5tn5d#u}i-|Dwoqg`rvQy*-~^sx3Zi?)W48El^Kt{naO=>OSBB?qg13P+isbJOCbf3Ji7SN0k<_QqdQ-?3WqH0ikyICx2E~S)-dj6?txT -zk!i?F`bo9yj$hLV9wpOIjF;iuSiS!i%#?YFQ}Ds<|1{1d$QcB3qT2t1Rx%RZx?QMlO}h;3mK=8h-j+XK -zwn#ZadG+coFRaf`2m#Say<)Vz08YTnhl?}4bteEp0Lq}dMa2vtHbE}wDy{BM^Z$?+ -zB>d2*VBD~)0s!^bGFxRj_D@*tN;nrv&7Bk`D3cuLgk0iP>6EydDOb?L -z2}-x(?}mYFsP;2}_A-C`strMxEbfA07{qXk9OpzH{aJN};{Tbf(__GtzP4`R&sI0w_C2IKdMR -zD2M+xk@(ji|GRH7$@3)gf;-})R#`Aa&ybkca69On)Ay>r`x*}IY??rz($?HveG%n#64^3Am{gGu -z9XnD6a$<259xo8`$msj=@3|dZ5l=N-SxVX405a9%8|OAWFO)-cc7kBSbs1-@)Z2Xq -zEQu1CD5~c>?0IU&o$9XAgMXbj*siK@Te>>9Hq?%8GT2$r<+5p;!!}*oWVFJ@0dL|}TtC)>lg=#!TIo72+DQ;hNC2irp -zd`?2*GOwhBpF(|`f&cDD|MRqXp@Rm|s`nsoHpLU2RA4$;-`oG(dhdU}(4m8uz*%aV -zA*S(71fx;friO}R*)-5!P8W3?xj+}ztz!)zm^dP_ygMhKmRexUzwl` -zz;XM5fF*(nk*<8LUtOsuCJYkf{*OZoh6md34@f|XGk?~vw89GKhD}aXtEm<+!uh7?Tyzm4?a|G?dtqJW@kPH`*0|c -z1_X6H*s}BEkd!BI6X5IhInzG5i)wig(Y)l;A@xX#<_XE~f|}aiVn}voeiZemO@1p6 -zIInfjFHaxstACsq2|QE~(b6XJUtUgkMD5d?r-95Q^OBBre?aU^QzE>la3<~?piZD| -z^J)q1>Z6LSzBo}n5a2a$&b?)r(VZ#D@CM$}lX+TCxfCHbT$C_bvvf=gxy!X%Dg(ZO -zgr*gbO{DbFtb9e$YO9j_^%6+D36u40d8v#0Gl7G9hOK~WQkLUzZ?A5YCw(ufqmRiv -zop8)=!NbIuyXoEv6cjQqnNllh9i$B`0>20AcKl24qNL|UQvv4a#P`1#bckLE10?J8NaQSJ6b5<8=G?cI?Az>Z_YojfBDygtpg5{;Z#I5YVs$?KT -z04YiT4R>i5(8&^+*qxnLiQhy#dRN|&ekBJS7mzL&f|L}pU-Cuz4nTPkK+b1MiH&BB -z#hmS=bf>T~@x@plRMo(tGCy=hKcu-G)#(m&6+8_egQ*uV2bBn_RYQzltPHLQ4B<|YjJl=_g&V5Q6e&FEw -z%9aZ}gT!i_N~!Y0O;8uZr;JU?B@|p8I;mm$6YqFC^`eT}Tpln|S4@bwDbkEsmt^x71_5&Wg#(jENr -zkSi|`ZcT^ub(Y2+e(f$X!u50HZp1u1ePuwsVR -z`2*1yvU-ggA$%!PeDZ64Uxkd -zw3v_xdc@*zvQ1lP%w>qN-TJNlOa|;4fGAcNb{*Ksg#ki&jm7Eoa%vDc=r9^L?lb|K -z>63@XboMV@`5)Te0xFKKSsNYPLU2eRNU*^PGVo#<5-fOdhu{tY2KNXWAh>04cXv&2 -zC%6+_g1i4ceCPLj&pPL>bJt=`Pj~NKQ@y2jRXxvcUH~okvIsDHx6asF-u~bBB -zN+2d^+60fEv`zs_8k?2M -z@D8JZ-p%sxk*h4KqAp2JZ^A&BlB?z#2jPEWfVcoqA;5bS2vb(BdS5<{o&U&z#t3MZ -zvsXSptVTFg&f`)GWkqE}Z+15zS_9|eKrX?+S9i-{~Zi*za-w*`& -zQBK%Rl>CcrhN!^zv2g0l*V^pP1sA)s+uU+AD|mDpolVAUqT)s!s{ZM>X6Sst?5E;V -z{L2u>a-<(JLPN`CbU%r5G6lQ)5RNWRFDbW3bawIqqWxG(V*VSYF%|*^AbiFqure@1 -z4s`lvF!#hsy8s5;v=tP9wdbK1>1&nw#{(*{L3gDiDtud^;nSIR_Ttg#q&^=0wUh$$2(hC6Ux(iks%VED`&UY68gE+XdJ~{8oMU3h>zU`L -z-{;*ZR!zQE&igN>X57nwb-O6*TI%CjDD}W=LZlznp6SX<Wj= -zQ4Q=IY>91pyFt;2!kgl;1SK#?k2!&btu>u_nFzvY?u$I47W`SBQ{AWx$a7(I$+bym-k4iRqhs?ak-ZbA2 -zGYt}%Enn}cgsNa6LWsmfYHK;iZMsEI(59sh(sBrQ}i8#<9e;2c`Jh9KQ>!1Y*aL1G%laXW@ -z6qepty}929mI%kJxN<=@NuSu1|B%K69Zz9O}XN1n~Zzv$6w=Ze;qm -ziSti~V~6}G2|!Mk)wuJ7rV|mCuo$DoU*|=YIO;|x86Yl{Rb9<|k3)Q`uG-T$OUxZ3 -zB|-SKS=zJbUI7lkFRaD!{i8nb`;9_^x;3MX$Wb=gC9@vk2NY!6x+^71d{6bW`P%Z< -z6wCtPHfEOA9Y7u6fh#n_3G6;k-rkVA+}`aY@=ThuKWT;k<{^>{`Eh)yL&L65p8rjF -zILE%ieH2y?83n2;v)d+#&=SxBK*wxOUt*(SQuq>9(0iJ+cT)+X7yU>YWx>E^VF9ARLW7PH`W_A_UvO1;!gb~VRNvb_c -z+e;2e;$r1-s+r#~W-w--%Lx6;! -zvB*>hKN44L^%IL!IEz?zp$dV%|I=qGtT$)`QEAt8Y!Y=~5B!(H!|w@PS -zZ+Ha`mPaGgO5(r7E0C@=29TGuf_brAy^NBj&IeBd2AaT*v-8uP&jQtjgx~4Xf5&EH -zMDOro+eu;dyex&Cy|T3zMMad6oT`D)dA^br4Y!z@Gdwb2LHx_ql}X!S=i~M_0t}905#>^feC1oNwlb)6*oY0R!Ay+o -zgk3!ex!l)i>wcJ`<(IUEb9;x+VeI?t6}K3G(^N?>@spH*BXiP`_?Nu4Q3{qH6GB9B -z>u=UWtELJJTEFjW5>57o0J1M*Y7UGmy`V|J -z93++uNf5uf!9;ik2_^gX-OY%+!nPH4Gd++5`7#f4b`U!C1_C8ad5vY)D1?7I0z)%l -zz#j!79eE89gb+|lc`P>7FJfQ2p7G}#kV^or$Jo~X!u|daa8E!^BbU}gLuMub;an${ -zl!(8VDGvqw*&g$T6(QBdMP+nW3RQN%_H6Ieg2yuvPC7(y&nLGIgUF3`2FBne1UyF$ -z>k`Iq#4R2@+l7yZDbB9ltUAlVpN&ViORJ5B*3NZi^wnH6E{Obe1U(j?~Ln#G)@N$n5IHBYx?S8Fz1D5!^Pga#b -zFe+Bawsib3rQa`z2T>1{A`?V$dRIv+YF4i(VW6n?Wh6GTeLO&#FEpascv9c2l4A&J+)ATbpX@k9TS9fD_Cp< -z2!_|*@#)?Dr9-(ul|U?f5dqA|a|3Z-D4<5@9 -zXXoItD*QZyR#Gz<3hT -zw?K^I%@ISS*T6OLPflBbMYPA|r@%tHIZ_(r&Rd$K7${(e0<4T#LoYRkq)Thk5i!|2 -zr>BtL=0E`TT`2IWp(hom7ymOCRQd!D58$55Q#5g#TqQ&rfLkC?^KzCH$4mMg@o>pK -z3H=SC}Wo0Vd -z*!B{e5ePY$_DNb~kYnmolr?o<0A6?epmMP}zobd8PZ~q%S1GPmdt0hi$jMA5&K_oh -zTOOXY*&-R8sg+qT$5;SqRuToLB{c2CDJoV#W{8NwM6ELlbUe{xp>k=w -z$RoXlcJZ~>Kd9@!>)xaMN8A_3vtrdQ1iGsfy$7*iGKgAk9 -zmO3ebB5_Diam8a-x_!ssVMAV4ULg<~X?lkW6jE;;ozTtZJc(Y#T+_@Bqkrlsyd5ON -z4>XQr(eEAp1|?ad4P}9)j7-6mY*{)9A+pn8{?B@nO&%37oOMamp_bT)k`i>mp{_c# -zH6p&cllQ69qKsxhZuG{?PJdqKDr74Z&U{+l<7rLjEXSBI%-izoU=(UiuSP$#iOa -z=AZ0(o+dfJ7taeK@8TNIA_^W+|ER)9E@oANcFOUz;?^@nmeQj0)h_9C8CR8>uYunt -z#CDLsXOjH-`&=nG3`BA9WTHQJRgrod!0G395~dpF`l%z?!zwisW=YpF=_NA2^s#VKPFQCb@T2oq=%l`RUBGw`G;Lg@~aCYQZ8gc -z&k<(5cP?TnIbH0s*UfKhReLA5FUBwSVHHCBYvf}~yDvm@-He@fxh952e?o39bT6)7 -zx7<2u2uh7GV-9XV-`_PtCXlvt2($7yAcmznmPAezfZ+M2G&{x5@5CTWeH%QZgzkzu -z%p#OHTO{6Ea;F26iq0$}&ncJTu6cGp>UYg0{#x3oz3?SxC^`B#c{(oVlu8V-eLYyZ -z^TKMX>ny_o>OHQ74hxx?+gm?acQ}uSso&&#l4CO_#XbiQ^t!Zn;A$(vv`3iD4$>3^ -z=anM11!aK~d!EtLVEr(w)~bgzd+HW!@t~O-Rq-QLaa>yN7j`q`kcqGeN43%KB3Yxd -znPz&ijuV$5sfT1ESWG#NZuPZYwqw8LR3Id{HFgZ6?=$1d3le5G(t)_}i{r<;q>r+W -zD*ltIlggq2G4%mQ#x@f;3ry5x!7=HzHRr5#t~Cc`L|V -zB2c8*(r33yhKt}jsr$mxN}D#L%`iWmMDAgQ*zV0Z -zzlXJ|XfAr1Y>^Ouiim$n<$Pjb$bOX;#ZRKM1SKGH3}|qwwwC0N8o{?`By(ruJr$W1 -z`FIdFJM>X^8+9Xk3f^c#-0Psm{!J)TyK&!HZ`8dCzE2cc$@bP2x5P-VL9i{)6G}i@9KP(3mc80xKr!8C`?UXKYEO))?Q!=Ua%|7;5d)epjw)?Yx5n)cNI1a$0lr=wq5%LOOXT>fkUDD2DPUTa -zMOxgu)>qmm0d!yzF+;IOG -zD+h5zMR@~QY+X=TjNO5YeMkx^vEHhDT2+U#ZP@-)mrXwhzx4`fn}kW$n&M{7KitZz -zldxODyqj$wOh%958RWX2u$UsndE{cxE8VX&7wFd$a8x)$Sy&d|a_^Z+&p6cGkf4q4 -zc-HS#(w(|Wvz&*_wnJS|YhF$t4i%8-nak3msm)jhvIMru?B7`qV{tx5)x!Ivz{HyV`>2{i -zEFdpEu(Z@Xv0O)}L`Fl)XT*_SmR>}9#wUroFLCHHjxF9HIY30SJu4xBq -z%J>sM}^3|pi^??{KBIEa{~L}D+hJ4i0=~HkLoreqej(vOKq8`)uycLBZop#Amzlj -zd|H}6qtq*`YEz9xfV!*#i6 -zYdwZA!LYyA+Q7JP;#;=IPtTI*{8jtxJ6$o~hd&h?JF&d;#)b>Vqf7HoMZ`IEe5sI^ -zY@WZ@U1#onhM`K!LY*K?S_l?I(iLAv$%GXU!4`{y$)x}(i#ppBbP0j~w{Um#QGXt(uBZ7uemp-KUT-VP$4Jlgb88XYXIugY -zfPvG``}GRu4cM5vcTMka3%<~Tbni!S);(DPlPk)XS`b7QOlAe$WH`VA#cwq@wV)(zu)MrN0UXd#NpPe3urv|So?L?L=2gjG -z=8n)(zCVKx7^4Bkjz}%;?bJOn5>(QGXXzGMar{$IV*BwKT1p-o0S~}e!Fq%!{tFME -z0Wu+NuWyy9Uxi0&&5!pQV(ti9AXM4sKL6tL>p3+8`yxc}`Jkl4hPJiQf9pnW$Jha2 -zhmKe^$O=_Aq37T!Jj5vOz0ag3X!(@Y`V*LLQMXb}C-OwjK*A(SrcBFa;%?X*LF9UQ -zL=6u)?82U7Gbbv1L_rU!DLst7Avj)Z(4HEy3XJ?v-K>L9J?~l$} -z3(g#HwR4QT+0E~CxEaCc3x3i$<^#^YX9noAK#JRK_Bcng&Mw^a9LV*AV -zbg9kxOA&1aMl;{F5Gn(6)QZ5ZgSc?-*Ti^bli#@L|-YiTw?* -z5Ow%wrQBU3Iuy7T<+{?Y75B(3co2t0c0GQu|)02dpX^il0L@pyC^liU70yS42l>jfUW<}gACay@nfl{fKE{?G6)`;xQ0?6u+qL&mSBFIpO3V%|IRKu -zjt!bY)EHJo)cF5$KqtWd?`AmV(BuI1G8%Y7*ANN_w%ZDPMKbIWyG6jMZrvwi -zOu#K+C~)mRe}ev4$KqcC{*ROY3#t8ogm3@j7rBF8{d+C)1I(l}%StPQf27dCOA_P; -zHcBEFZzAH7N12*^r$cIqjd5| -z>A3$c+37z}9PN=C1&|#67j6{rsM?Rx*&n5oKI)G1sQbEbdZ;U{8Nkzzr!~Vsj3R(5 -zq1^HJO@}Oj69_TX2oOUJj2J%j7N1IyLJ1qTTdU=@px26 -zXx{A|WIWgAft{NWeveq^(xq+&fvM}5>C -zm~(*ckA3<7Ry_FR3o|f)P=ef;jlvPONx(lygVs!km}Ui73`nuXZ3t9IbkXkYz{dB7 -zg~s<0WP8H)EPV&_BQy1H&pMAkZ!xB+d>)c1h;|gbl+4*z&qab)t8Pk+*$>XdD>`eB -z%wWR!PARNhGtcI~ot-N6EqGZyfn;h?VHPu5ZET7?_jt#6{pJt3b8#gq+}6>zz{lrm -zL0$PzQbESSC|HPp^4s`8Doh^wY#T$O`ksOl=6K81D8Z~{E+NSJTPt!X1g4%9opd!; -zR7ndb+0K&Om4!pLRC@(;uY6Cy7th}F42ES${epDzmhjJt;B&kk-}iLc9!KEfR{jcN -zjw}tfJ9y4DX=5fkiqz?R@Z8D@R-6x#?U5Eap$xpFqx@>{umj9-U|mzW8A_^YwZN`kwMmZ>r8} -zD_0O{E5=P&utmzlefCK#b?F{kIkz{I|Adp5c#~wpgwtckVy~fMpYw(&K{2?CZl@>% -z9WK&L-`$0#bbYa9n{}2x_SJ3Tk}(ZPpJ8>;sr@}DzZL>=>MY*E*K}~~Wo6l}%wB1m -zxM!Cdg8tBI3*q0fzA6un^QvvB+T2vkQ>jGG-Es!L*+iErp-ziKAx4F5*GSEHkHmQDl -zgOfyndYsMY$}(HM{B!`w9Nv#_pJZl3@kBPdE^M;jm8TY^(=sx~K75sS4X{lNdxd_nnec7_?+iGQEx3B2P5W1`1a$5!JODKIkJd2+0UuaQ7FV=AN03mQHmL_izRR#O9iwTbIa2HnGv1yQ9ev*x7RbvAG){n -zP0B7f{aGzn>(cw)r3(xPX%yet)1!B1RSGw1BmSOGcD}yI0LoE^NfATt*v49wN?6bC -zvDuvpS%K%`^AnC^3u`%3cTw-zfI-#1=`_2T -zw<_zKNpx8`0D;cBr9jmBnx;X%aWh?XYbLdwCVYfvtX{hz+Z73=CCRQ(oOC3jlz_8xg(WMB3Au1v9@2fNRk{}kKT1OJe3d6;F%gEGzBfGv78 -zBO^G#^U1elLb6?DaW1|6U*yZfu74Ygk?Op>yG33%PG+0ux5%4MjfH@*uO -zyOmKV=hgV(HfE#6MyFC2V9;R!0Nv}T0mpY>Ax+YW>F)|O-7>GDo_V0KCf!rGW(2nI -zN{DA3QhSt)Aq%KyM0TJB8zslyOZ#d+$`7`l#ibrR^EB~)v3nXxf2`&THl1fKJJ$xl -zLHO$^@trLF@#Ga8z??W=4=^fI`ZSDSt!aju^X)&+Jaz2tc0m#Je_?&(wifY=R0lR( -z0%%GaAr*c-LA?V&e4VSKIVxv!9gspmD{bCN2Xm>(XenQkO`y)G+ZrA=-~H5Wtb$*^ -zHZK*W`q2Y0q|E8aBjzt#QiQJ&!*USnA283GQ$s=1o+ -zk%E;E*gjVFI(JV15XhRxHoJrJO_~TR^uYS(fzT_1WNTIiE7sXms3kd+IAyo!A5!JZ -zzN|5kQ1M{;QJ?C$BBooPke9NhXAdBAD^*y@FHga@aWyjjLpD0hh1v39&VOpD@2IkV -z>AL#OOI$p!zD#>x=lw|qP7b>_CT(LA3569@Tg=47fvE_hA#F>jx -z0QI`Vga7x~a;rDy0l3d|oUG;W9Ccw+tLG^A6eGP?V`lHv(%`A1?B?!-d~@DQ_Vs$L -zwfy`PloMnyGfmLR+-0)E#5V6-=5|uwI+w%n(ZL|z)?Yx@QBTo1PHX=1YXR8+PxD*l -zk+_03&ZJq4gHe#+SU24|g^~QGiBiWK+&?;EIj~K#%9a@gdy%qmRk|%X>WC)ho|3!# -z1ed;}KY|}K2HQRGP!(4;Q3ZLvNpUQya`^nF)5t%wYoxAA_l5@lwjchvK`k()h2jfn -z`*HT~O_5LK84J>Tz^LT1skK)RQF5e?sv^#!zDfD~b-EdyNX^d5_lGVqi_c90L!CIo -z)|#f<6??P>0*uD57IWkY2k^I5wz#4f3NL4C(6v2t@ojZbLYh^AYKr|U^{dtt$JUjG -z$^T(ZW`NEf7wyB4%}vYJJkOm@{O)a9Dn=h_=sS`Q8&q+BoMFV>GVSj2ex1y=S}yt) -zce@vKAXYd!=xy&;xtO0k#|Kh!Y;8`iid}oC)?mdk3bF!aa9{5EQfMovdfcfN;Vm6! -z_m`yYJ0pvm9?n63yI(g0>!a2I@s=&ca*>zWbv;p$^?-1Fm9ygDJLyr_!>EKr;^;>E -z8zqu7Bda(Shz1;uDb6OR^qslfsG2?ml`FUJ1p%%TOFt}G9l6G{$ -zHsr2*qN?P1@ts!D6&`EfJEJ&Bh*_fcvkU$mTYcAPlM&#)jpSlT;M2ER(}kn>G4v7@jlwkL)Ja9<2YeVq -zI(1TEvSKofPnXj_(NRb>vrB}2>sJgtYWGA%lof)zSkK3Iot1-8W{sUJJw0UWyLs(H -za(3c#FW!Q`uL^w)okK4>g#YZcMHz^<`s|wC{`HlNn4nbi)!pBzE^p~KO&OA80aU!Q -zM*()Gdb+Q**k7fNpxb+o=#W4BP_6nfJ4lBG8Jko+;ZYxLl_DEruvSMg^0nQxM#5QQ -z_MNY3^E!xu+UbBAR8fQm3FrOMWTan1*?@oCLT+3_vPv}>4D;9Fh0cSP~ -zq^&RLE^ZZD-!0x){1fp8ZeL{mH*0h118rwawx?pwdIi(MHzf8~2Cq?WYWlW~%=EO# -zQBK*uCAByji?;5wgam8b%Ct^yrAJ0FF -z`*be&0I>01&!7D593NtnF#8~OF*ZU9Pv@cCsr#q0J~0^s{SRpZXT1M{*1fkNf4sc; -z?6_?(j1*iW^vRfN3w1-5x2$pR9~M-#m@2me_BIYz@R46i>{jB%28Pk!yMR3N*Qtj` -zf)4691M&TBL&vrCpA8Kz)~hgA!-m_->e8r*NQ>i9n_6}qYu;zx-j{V -zo+evoDoRt~>D}f}7LZBRD~>ECw)q7YIQVT}G-5>gwf+t6v7oZYnqVPRAB-N2NQX3Z -z{`pXvs)$&xso0&s2|U!tG!4O(8KP-P9*O^OF6r=`ajLha4L$8qGWu))YcLqIS!JB< -zze9R5E0k41dt;F?Xn%h0n`xOpEVC3@TQp1928&y93R-v4BA%Fi-)-;HU)-UGKYV`20wju$ -z%olakpWOcBSnuDZjnDGrjDqFUJ?UwaFp@2yIoHb;@)(FBfz&O7X3J)#-R{HpsEemy -z07qG+!d^)V_?u*d4v{#P8N8JhqG-TJb?}o-?7n0Br^LG!AC-?NJ$LSWkGgdL6we)T -z6RZ$O!10g9T=|fdNY2hnT#HVFrev<7v48$`{|0ES!?j2 -z;^q<3LEkjojba32=q -zd6mBy;8t{vJi<^n7GeA#+`vBv>tS!+^$~kNtC)U}=#y-_=(kDcSJJEQV5$e}sb+pa -z+wkmdyGKiV{M7FM@PUk1k^8BS|D@xy>4jV~&x&g~MbZ&%bQB@pk_3w457%c4F+CVn -zjQnL|72$K6rI?K@A;xwGz8NWDGD2=8l^EL56w?dXi9$NtE7Pv@yJ52Lvr-tD8oqgn -zAf()!biv=i0wxFLNcjZMKrmpwJJ<`zuDII1*hSjnem0%TKWAyU8N$7Lfh;I+G8lQ& -z{OvRUffAPB(sP?@Z1E;1?7Gr7;x4;aRmDM#APptsa^?lafR{#Z86R?ctB2PTgv; -zxqX!=zX=k2@HcKFJ-z50Vuk;>>U)yo(2AkkAhHa>QsuHCowB;2%eAcdB?un58hZ8$ -zNPfV%KD-A$*E8OH4swkPMMvau7g0oGJis1!qVF0zuc=v)F)c3?AB-hHFS92d9w@0D -z2MsZ3vf^*YP?m>f@3)Z-HyIvIL6;{{z8;{O$O#3hA4}nDFYs0pe3&Ul^5$F_g!+8-(7itYQ>%wZObh@9o|k^cvZ`dF>~af8~JCuMW%~ -zvA>M=XbXn9ch2!9KW7DQ@S+>cbBUIVhgL6;^L>7C(Ys21)m7XsR;D3{)X5#gtMR%# -zo+ABRdOz;gd{$+|w%l}1tob)qRb2bmVmNycI)?o7t!fAPO1`If^M(sXJQ0__cc&CS -z5%_V8e%HJ%dOkNJCi7ZvplQ5ag?KaUXvpnr}dBQ -z#U)tEP7F#(l`>9+gu@fVdl9kWqCA(Zi%C^AIzCb_Aeeu*3afwp7lKU67{}ZFz3S(O -z@}O5sdz}K-}UIK6Lsy9jA8I1+A_u3#9 -z*L$e&{#>`wRMGI~GD)7hv5f~qy=~~(VkP6CDl{0fK#qI;oql*BN*$Oq>0DTBf6Zi} -zD2!si_JuV6l_Z#^`w7Efyx9R?^LeiJ0&PjH2!`;1qF+C7)% -zZAhxsFeeF{>;9fUHd85Lj1y@w5GJR)(q$%Rj)$kWq;Sc#rRIkp!lzb}t%mndMonT~<*Dzhc)#w;0STt#~y -z^7G%(KA#I4tx_&yKglT*mNZDBxqIoba6RVuu(4l~Q5TD6DG*5d -zpdAaLRjIckU%`=yiR#0Sf=A~po{=>l>^}p3)plSfVY-Xo_s|5Xc)cL6xn#e@{$Oo! -zCfuWOmYk(?tM4Fe=Z!CNvFR&%PxyH1U#hXmDQ_jx;J&jh5FG$Cg4`}mt$=)&$n -zGJCn2p{|GPW)OD_pn4qQXuRkj{<7|9J7VkI7{ZH!fqHFEfrrc5&9Iq0k -zvDL`uejJ}qu2jt{L(WPc(%rLwnf>`BaT`WaTSB$UN4#C2IR$GzvgYh@$s{T(8-!(9 -zJ?F3Wt6y-9Yn*S~rdo2P>E=6dt0MVw^0hwXlbR^&-=wpr+cNBj4On?W6OSRI@R}pwh-Hl^KgQkNyZ&!1IMuVR? -zTd4N~??Jbx8wd9(`B^%PrS{{!Krs2Qt3}Yzq^=$h5t)thnY*+H${1uI$Le&Idy%-} -zzf0P^qV{^KzA|^dTCkpH+?j(!X@gbjIe1f1 -zF!%87trzj84zSwn#O(twFKN$Fs<+=EgKbdS`26|J4c7NKEj10RUTr>B5t+iU!7%wgI%;p<1{NQgLg+jR6Q!>8B{2R7p^vDvOIG*Vn -z!@XhPJz~6RJi7xMkwYSxgVhQ+f=e?pTns^%yOAA~q8!t(vu)lH)ij=mcTvp8iR7>r -zNBshxHm~{+JLrB=0?ExRy#WWXAHGkNm9u_OPA2kvJCyY7NoHw{F9;6g3X=}LZ^5sV@kMI~1QieKO&0I)am3Jq_8McUP-Y{z&6a4|*=KjCam314 -z6pXKYrF@Eh%lxpVJF*_)O2GYxB<9GWkZKD6VeVmwA;1>DlDKbD -z=Y4rG^1v2eqc@wy?k0lw&UgUU!A6{z$#2jyD_nTRUIh7Wto>%wT}JpSI&y$*_R%UWs)634FV -z20b9>Wavj0I-6JSkfR35$zII{u#|urTtk>#AtSRw5;2YB@BhMS`}A;sOf*%7sGx{L -z4vJQIMc)kqST52nfq>V;%ieMFHtNV<7t~R5#Ynfk>xW;vYzEIRfV}yA)xnny^l8R; -z?^?T{;(4~%kdS0E+I~FB$~4_t3BB(bOTtz_#>OUkutn#+NOVAwi=7o@=%Xf#2f}i_ -zxaFac{|xR2#X8q>bu`uqKGdS)rXJACAK23Uq5Y+0QnwwzCo2 -zzje>`R-?+_8)keeAZCMvq-1(LL0os_^FwKJs{Rq$PRo2qw>bvQk)NP$9c$u0`4N+M9YR{W}ym -zHY^04!UeVNy6{c;MA``)OA6Tc0x0|s{s#(PiU4rk9r(;4<1NwnJA$LYxV7FD9d>vPz7bC~gXtyf!5Kf~=_ -zn^V9w1StR^@pJA|uAYs&_&m{;`cWnSOu4fl_^I7tx4tqpl&H?kqXReTs -zb5CJrNizvPP9Dmc^YLK^GE;LdI5&#UK5xu(^z0;@dmtjQo|#E@>q|!LQ-tY6JzViv -z)9c?=6=(;E*yK%ZWakd%tgGqOJc|BxtCMD3EZ6!x+U&+KkVOXkJ+n_Oee+p-*IFIw -zN9H3edotYAI1ZLZ$*TeAWP^PL)QKYl#c^PR$n5h9sn4`S@};FS#v0QR)c1X}WD*{}DNMb{VUuej5s|c-q62tT>$- -z#*#KO+=DrJEJ!2ePO@v|-9?Hr;*&WXevEZZ)T5-^d7W$Nwi@1(Z}y;H%j^R@?-4_- -z1BPZop?I~U>ICXR(Q*zlsTr%1w*ao{pbM#^(6O6&$QB4kB4CXN9wuv6lS4OAHJ!;s -za3qZN@grq(&KMGDl2@QpyffqaSdK#IUn8xUkSQ$9gv^m@yp_4@Mr*GW`VE2LuAfiK -zUX_oWB`P#he`F|e5rQDYfq?(X*OI%N{f&&9AI|e#&mV?5!17nf0!gmtd#$43!D>Y_ -z^0qaDWL7(8(Kq^|-4XOal@6B4X^Rloq>Mj{c{gZzfNAfJ|1k`t4Vs2FJt+Pf1vCTs -z%AZw)6M;c1W^Fd)Hd8-to%}50zUdEBzixZ$5WGVTr!cH_$6UeD1RAy)$fJJ_+QB<} -zf=WPM_DU>xXI&)6Oy|vMWH+BIGk@nd<_KqGftIzO_sFD=pC{|A9Fz<5Cbl=oCo>({ -zthFA84)>7}tgRO|+dDX-@%>-*<{5~DIHB%mZYU$ty3<2ebIN0Nx3-#+)J!)-CWcebQ4dY1Di== -zOHJD6`Xll_xYSc6l-^>Pwa;yy|5echwy!a3FIbbyAK2mV(wS6@(`3f#Ui -zM>AAv*uYoS -zxN5lG-m>^s77n$7B8r{Syk5qMC_SgcMAG(rtGkdM6;8< -z@*71|^)6i69`v>VSj!QK0Mm4g56SU1gD7Q#vNan>ZR-p=Cm_}1sA6}}np^LrFvzjV -z#F`38z;QyWWPujLw1b_+wJp#uDKCXiR$z~t+52s7IbCuCD;I*@+-^_ -zI&(WV1AGyESItc>QLb00%*?hf1bC^51 -zdTre2U5i2M`1G=W%%g!Oi8@LBMgb&~)ZXbYW+ESds)xx7i|CeTW6kZn8h--^!2t1` -zfnP0)K5E6yK}23ey!Y6?_~ri>u|+>J>EWhWV-kvSa_HS -z{uEJ=8-tM#j_A`fnT}ghzZbNtdr;b?*;>#VKDqsZ&q?Qy(^I%81Iy-1*Gr6;bWY$c -zE+0orziikeEobl?m81v9+D=LCvVVPBd3C@0awi9QZtZx3yx_xYS=}Tp@JvyyWOBWd -z*caSw9nd{+ry((>zvO_eu4S8P)khk~Hd_dpy7Ji}yWjT;cc)t68?%8dA{v%t{)>^+ -zs#6u^TbSuN>4D4-h21%noZ7U%7e091)#8910nDgQI@%K{=55;1Wi_8JO3 -zoq-q4mpTz(`zh=fI9L0e)hw3O+{R_=_nX!qRC{>ZWKh|o4O}QBE|nsudFBorXdo4v -zp8RUKs2_}fe^Tf-NqAdU^`vCd^rHlGcGUurl|tZ`B#Es4{X)=IMeJ4fAmi$PqwFi7 -zqI$n}2@w%caS)`D5F|wykVYw`yGxMn?h>U#I)|Yfq`Oo?xi1R+c*nG^CD0r6DRn!)B;pvGFfO(}gN -zwf)@(@zJ_k}%{EEeaDzx*M@oYI2i9ExK4Vj{xDYgKH?)wKV7=*WLi~*t6spka -z?=!t6$Y#qnlr=e+_4ZamxT)bwScVkvJBcL^se5bWeOq=n$64Hl2+#bpXY@=xLSViA -zf?3&Dxn~O`;H{TjZ7CKGQ{CE{e(d!2CVGedeX~y#G2u3*{p$^u`r=pG-Q9{tBI&H6 -z*i;4DJ@lGPE<%3{-h&WQx-H)co8S1|1=JId7@m(N2KGp|$*#R*WE8FHoF+Cuf+c5n -zncn>Dq}K(JsebLa_g(;#qh{7UMxfXcUpD%C0sVw-!8@@tJCWC+gGeu7lxtX2sXbLEu+%BSfjQMwOEpOzq*>f1-ONF)$+4aOpXD) -zAo)E+}MXE -z*Q~jrMyS{=TaKFhH#8oH#eyGZ`g`#rOMFK;U$@99HiIN;>LJc&@|9zkdZt#^PS -zD25g2Q+1lQ_m4e-9Z{=;Kga!8%*H_t{&TZuvk$5wZrxm|_A*yp!T?VWzuW>xcJ;Q# -znQN*2;&iPtSX88xvmF&Hv^{<^mv#$1inE4fx8JOMsynn{^q%7b(HsVeS<#tKD6?dT -z6tQB(YEPZ|Li%kj=F&6D@mbZi+-~j$0sW(NH_R6gJ6|dfZE(X>TjW%rk{0sLSPhIN -zdj2dY)HBKgnD~-VxT32_#+}m}y_0%{QC9$_0W2azY^~GiM`zXnXX7PMCg@DxWcy7( -z+M~VnDRaDty>Idt>bE%-9meLiPpPiF9BKu6Bde70YnMuik33_Bm-mRP4o351Lnnb` -zoN-g_fpIuVK*d?aTy8R`FYni61{j(tfNUDhA8LaZUeagXVG3%zwi3d?H2zlwD?7UN`s@nk^ -zpGDW?9Q83I*^C(>EUX-DGnWj+(cOz^V6;0L7~MD@6lznbZ=$f5Qr_g@hC6zuSr~y-+&i*{jP}hI`1Vd;vNPR_ -zbtSxZIf><^-m=h9Zy+ijZdbY5S?K -z;?w8$GM_?-1$#1n%fsIF&EjQRR}GuPo}w$-{O~!~3XDzg4mUXZ)8qDZF;S+@Z%SQV -zP>&H-GzuB3SuWyo&N>`?0Oj`-j_>U)a&-V-lzHqcf{9<#ROt>w2JX()5$yo}s2^Y4 -z%tG339t0uAd~uxyH@>(%>dW>&X0_qmy*%~(6iA6`s%*FsTj4>I*i@@~{oE8=-!mVq -zmN&>_EOxbrw;Ovqsmjx*72i!fg??O>mD(e(R5G3%2J}<*d{*d~1`0$1Dgw{IbC|(! -zL4Y_2xy4W`_uV4Q?xkX;OMpWd6dX8$iY0iOr?%gG=~a0DSHsQADo#l`BZ>=^t{VyBw02b{rYk#fEj+0}tU0WMe -zzMEY5PiESkBGUdTOvi|ut91%S=@KFPNNFA~*KXC^NI!!#C^UNRBFQqE}Us4ax$9TeUnt)A0ZK>i3F{D9UL_NOmuz;>>5j -z%FZIYmVrCD^xc?}RY~x*1C_|gD2RZwm+vH3QY^9A-#*?THYKnRJX?BFeqoEb`F9gI -zZQwLjA7I?1R|idHW{<*jbAr#+Wh?C%mqv+KktngHm;Oc^xWRKq>v4#^3(t`aIK%^{ -zscmFWhhDuIx>|9c1SlqeQxV&5z|kq?#_`Z^smgyeg9r81^brtNn&6O^t>5gqtGXrt -zKi?U~(kcCeV2c*8{<$=H$6^omtYi5O@M`?0&2!nc5a9@%<^7{77q#pyGpnuQt@@s; -ztmphlpX2Ws=B7tqmrw(lPtAM@_dbACk$X6fzhFSof8Dh5PQ~{YSS*~(?S*+>g0t3H -zNXmLVE6Rmc>(o{o^&j*5738{w#TbgOl(lxhi_vd_X0!MMP;5g^{x(OAxVFjv*9NtC#7-h1o^nr_=G1$u@K{{)gvx>))SnrQ -z=UmKuxR8Wa_vnK{zrPc2!(!H9Q?5^+maX!)2 -zwvXYW&4Ni<>+pOiK*7G>RTciW8Tg(N1L}Alv-G10!_Kxz8}aSCh}o`jct;@tmH-(E -z`MHUw%boK16d2T2eow^J+N3tDd7piAP+h3J_#B|E?ovb^s%@XYEBCe$gIF~+7*CvOl?@haZDm#Tbn}(`4*B_K?SfCNz=_K_>+TJ_k-zoD -zO-k~^*Q4~o?{%|gp@0_r20dZ7rDd4&LzWpBAdt9^?RNKpu`}yV3PVNNl;sE8rSCO2 -zvCb6a&`1FI9%R;?i(lFaGKx1?Xh{ATWAg~aPcdqfzIw<;IHRt1EUBeNt_XN5$nc>) -zb1#!o@%i(L`7X!GRHo^l<_~f$@8lF1-44M-JE+wkVssw~dVj%oNb+OqyxXaL4r33( -ze7=((_Z8b=T2^5ileYiu{9OlUt&@nwr=zM9Zy-<+0t{u&RDE>pd9VWe-ngvU3_A8) -zvx5O_z*$!e2hYA;0gS}fw{BDcG6v6DqQw|NacQw=P@JB&7ZfM@xC)Bj`gQ<{-vCzW -zt^i18E%6wT%j19yWzRhhnqZeLe!WvH8Jp&mxm -z)jC#9-74+xF0%IZtne^AyTzRJ>1TP%er**(wxUJqm{|0vrwFe_f6TX)s-p2E4kP8vN0nvM$r@47Y?Z! -z#O_VSAFgZLwnSi=AyEoL?rwJdBbsB$Yg@?XGw*UTHumx67sYS3aL^&7ng`v&)WvrG -z>0U!qRd3;ca#o1G+)p)2j#qS{HwFLPddq?Xci&i=Du -zUS|^v-8nbp3UT>o_w~YO!PE$2!FOK3mQYu%!&eaRaFZeO$8M-s|bufL-*D5L4 -znH1ceVfDTOMl$Fn -zASS&HlPtumtn@P1jo -z{ZNoou$Z=uum{eHa#NnAW@^?3spUT_I!wTk-80{gL0sz0u7CXC%tG&Xw5P;`@AByb -zj1GcIela>bmMpD$r}~Qin^bT4CO7@ghvI3#K!VAfG}121jU^L{AQ#@fjyS>VA})<1-mdiL!fb@%p9I-5bK>L|4G^uQjY;8`VHl{6S}XkEbnPJN_}u -zD%4v9v-|$QY?3v1(1SK^x71H^!!$3=Db2@W4<^R=Pb@&sCLT~9uFrYz!QQsr-?pDV -zpOXzHA@X)*5N>ihdp|WJ3?CXl)w$(m?^jB=uzdqq#TmAS7^Calm^C^gN)X#TTI6lQ -zBS%iWr-sqt4ecc(NhNK4xvH2X;Ves;#~T_MCfEMdz>wM33iHO%N*R)ov#B_mBi0SW -z=zy;oEO1rSVBoK77|Wp6XX5sj0dFWclWHY(#RMSCkg~4Et^Q}1Bs`D){J#bJPgLiAC?vnBVMDgHr+W!%vx@L8J)v6FWb={daj -z|5)}knTI$<6f3$!XK_zFzQyF|j?!#tBoD7+8&x9q8Fnjl#)7@(rbv=2&mQ6o-!jG4 -zmeF73TVFK`Z^nQ%neih1kjIAUQ0t}`bzP^KTfmFo--M75-gNF4&x~MlJcSisxQBN+E -zJuGJ%8%f#oLoPaqNYeWDT*>jJ{6hanyB8a*=3(B8fw#ttYCyOx-hl7w_;uW~3W6=p -zO=3dcXE3`;Pl9A%9;frCMbB#SH5~W;sb6_@Fe5qiN^1rqndMDom30H5tWz120Q>}v -zYZHxX8d>oDv>4i;@aUwc5%r*!!c=Y{>z2b4l%l-=)y(-+lzJh2o%j1K7xI7sz3Z)X -zT8;o&Y=_kHORjmhyr}pmp7UcEdI%Q(Rz(&Ta{YcYxLO(0m^$zU=-nQm`Ba#@V6$-7 -zEiZ3uhxz+z0dqtRa1-loYqqktVLHhb*+!}>>nXELAt;CmKbpL>HHrLar(Hew%G||b -zRfBKAYhAO5G_#vd)tcQ1R!RqTHHZ2S#H|-t=;$K%!eA8 -zi^&gTiv6Z3j6~x1C}$<8uRHO|z)Av=GV&@o%$IwBu&_?3ZvKM;{-8O-*Y_IUX&bfR2^%vlW6p0^7{F$jJKT>!?v4=gKne+4~k1tpl%OP6*%&)eV -z%I#hJfjiuW<2Bq}<;uS%{Qt2RL9xp?^jkpanrzAOt -z@1DvrI(S@c5WdvOyFaOolr>6skDNQ|cP2`GSz|kNy2VT%P~gRq<}jx+p){ea>X(}% -zk8>JdN?db3EC6L>A5Hj58zfnb^|D_#{OpBlQ~Ap|H|C@2uMfclul`5Ayupb3#GBjw -zELkJAx##W;Ob`#|OzmL>YkL{4lLumIywV=XOCMjHdx=9tcIWExeDF6l5xy0W=cU6| -zeQaQ4GX?aqWBld!1Wlu -z{w#{r?)5^Wt7GzLAG>Gyj=?ovk;!50@q;?U%QJwG~$2 -z_}j;BDs9(o^Q#i4j#td)d$~8D1sSzVOq@;^y(^JE$KLr}ILrD}3Qh5BO7705PO8bb -zEKEM)IxQAGBv=zhUiphr+JkU#rj9mhg06pREEO80VJJ5`W`!&ivMSGnmgrZwO#GGwf_Kk#%5Qdcv^$s{@ -zR%Lf=ugbWEe%Dp)Hgx=@H_sRiMWUnGeCvB#Wth?>utB%AWpp?hA>E*!O(ePCuc5OjwY@E9o4`LA8{K -zMuj{&Ex19{6dY!v(8@KHF%BRhGf!VUrb}iI*yxfSN3Y4hN?d1n$YTpQvy*PsrS=Fj -z8Pu(JN7l0&3X!ukxhq%j@+Ng`4B{uZ<&d%9g^Niq_xctsS-F@b`))zKI -z0AjjrVP-do&YYr1d-K#dG%a4=(UPqYpGa1QK?8@6KKF2@G;^Lnt_lTq9>M^eonxbB -zd&Y*`Z6Iu;hpY+hTI+u~!Uc59Sn>7Q_JLSdnZX6jwc3qD|8-I*O;oTm_wh -z*lZ9Gr0%_l3X5{@x)00oroUs<`H|W)6Gy2NgL4 -z(%ll!7^v^;3>V;6U1P3=PS}5EPn)+Z4C;|Ggn}l@|Cl6sX_}8+XH? -zM{GQc3zLqx_&T)Gsi-rJjZFrmfb_Vw)OwOlAf@T>M*KxZTHU*_QW6zn*+VQtoQga$ -zafoCz`^VgGXS>+3xwVNi#5mqb-p$KY!4yQAFUzB0^e&lx -z)BV|BCkdx#&Oco-k{^HdsLgji4C8sW-nE0l;jC502RqgfH=n(B`#@ZrWw529+zql$ -z&F@4UW5ZmMBwUsG4+K^eW4q6Hg>#0T7R@Xd^tPWUfAJAGf2*&s))+}Z^{eokaoZpA -zI$L|WO3otY?zm57lLQ|&#a;uj`d4ErpO`qOpRS#7ezxhE{T3c3gTK44)XdTD?gE`M -zJ}ozq;SBUuMv~d4sXFt&8T*cFw-`#OnkVuQvQQ1Ze$)tn>Dpzc0wL!ioFI2VFPv?f -z$u~|EROMg^!KLtL-56Gx!1`=A+(?p$33J3N6AT#WD%sF&<)YYXyj?^E!*rFmFIJG{ -z}sB|?Cd5(q8 -zvGmMJy^sag-2%B~RGM~C3`|R;E6?h-J?rj-yI^gF4ae_#05?!Fr)Lw0C2Py1eHtM9 -zkUIUj;1xA7*kL+nR1@nV&(OZCW_|qZv;Lif*}Z&!GytG3@9a&F1Fwhm_Q>?H`QXw9 -z={IGA@r9F(dd~WeVmIBdlvDKraQ>NKZ2dmWkF$3~v+0~O?evf{P0Lmeh -zX(`Vz`TA|6ealwlop=C%MfI^n3C?sZ8GL0GTn<8j(D5KsDUV+X%AtP9HA~o%dOBb) -z@Ju4Hhtq3AX@l<(lfmBt)YG2Nf1Y-makHf13Iv{&4D#Q+h`%nY@|=Tr`aFyAmbb5c -zOw`Z#AkRRk;LBq7Qri(GEa1cbB)hC2Rc^D`$O2eaE$e~M}LLfT8NbL@l -zKZ^P3z2P4$#@P(fl$HRb{!$hKyAsn=^-+l-}%8Z6*81Ikb -zKKWq0^y&HEqo%y~@+P$|{;;c@V -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 -zAOse!|NVIK)15bP0@fA2>vF -z6XX?uyz=$UY@9})LZ_oq0B=_1_p-pmcTUZ1!|Wd9d^^zsz04#rx6ltJmz8Z?wx6_m -z1HjS)lx^^67UsHu24_+?Td(9YPqygbK@cAP&@?#ao%=*KHQ&dSknmyD^uQ0yi7rCO -z-vd3cCW|L}qY6&KWzJZl1yf%9m?VJM{%N^HUC@0^y1_k~(&0TamAIEBP8%<)tuHeV -z?-hd1(8pt|T{%ieGVWs3e&Fo?+fIkdxiKG`%_c4w&wX3kd%@}26n57{0CY>z-)`?d -z@3^FYPY87?+wz4osW)ex-*ow{%Re3_8$60hQqWl05JZ#L=nmOUJCApoBdu*ynS62u -zQ0hOwERhSuh+)>aep5N&zCEfst0r;NidyE}ttZG{z1!#wt`@V)n?F7IZf3>RIXru7 -zG}h^4>Md5t&P+s=uV9DKazBp)#pUqJED0pI5W?vVg+PY(c)=@i6UTYKUPbBG3*Kq{ -zM{a(48=}>ME+=co>aRe{498E0E2!|aO)k1c0+#zX8=S1?mh05xjq3>jCZCM2J0_bG -z;X2z(Lm?9Zq`>G%>jjrrtS^7-I?QPl)H5J0SCw%=0JT}y);T%H5S5uSc5r{q8`+L+m5n0`V7G#)f6kLt>iwspAUA8?z-c#s3 -zi=S>gTsTQX+BB?(XCrL)=ihQ*UZ)P*V+u?lq}h(={I2O0_0CyFQ%!`( -zEob${s`(kix2deh`_gPf25mQddyDek7!rb=ON?^?Wk>GOp#klXRDA)df`&`=`~5iqD19N#mz_0@nhTj5T! -zsg>)#?|08iW{4}#wk~k221R9)eazo=!NIBa%9?$i$ajEacS&9mK0XUF=KJpM$mm#W -zzzTxR5_m{eg2SbFNvfUm0Y~zf9iTdbm -zn^-_4zYJnjcX=<)?z;PcyjuPf1aMk$dM*GT6N_%$SKH!hH}^3rDjN;b@|A#2Qjl;# -zaS77=7%6=24i?rBLUwk$nkTdEc8#Z12`7jX^MU7AIgYDJ%5@sE>>lO3jo}YK;7rmrQZ0aHxp-s@8 -zwGSh#Ts_WFW=IP)RTtEE!M^D(P(-wHZC|6(H+sY1{5jh$Cca?_YzZ4+*c$dRHw_Nw -zPsFTWcC-y7Pus!$WE>WRv}33#vY@EpcHg_qzg6BGQ7a9$#w+FH4nNy}Tf7Z|1)d9@ -z&Phr90%Rx*u#{LeU`wqTj{BAgMHm1O4{wa1y_A|y!BwCFNEGgED=;yrjYLvVh`p;# -zfdXX)A*4a!KsnGoyE&*91`yhZUJG#EE8dWlciK)j#j28J(g3idiC{NwIEOvpNy@ne -z#&9*5@vt2FyWy&(q$Smk)KX@5r3 -zWc8+%0kWzZ4GUr%+DmHk+E<)u+?#6)8wE(`(mei!6GnDaW~8THHIFpW4K$yOzwdG{ -zJ}lB1;V89Ib_i3?AbP&TIB|OGo_br*2H+hy -z1~5Q$z$m4YcMAAEI`h2%>t>=FfC!33Z^J_QF%{JSMi9_d=ATbMeo6G4Pw1{jgcGoy -z6z`v#CZIgA*1l=_3&@plaQ)#+Qe(=B10jLwk5{v9Z|51#or@RyU(PDh6oY#Gn0OR1 -zIF1FgJ+T~$m+^)m0kT&L7MU1&+sQAv!DkhVn*ajCB!t=6x&{He4G!@@`60olf|!jw -zpCksWFdQrm!ct5ySH^GAA$~l&>fIg@dOhZG1_wGDjjwK#(o}ewJvB_Y9jHH?*->orC974xm;CO2L<+&sbU%7sq@L3=M#?oW%_y6!SY4r!Mqo93s?j -zw?RV?h|6bhyBIa*ap57GAvchRQ2pyijAS6C)|0K5a2UUtlR(pHWCVd0v_(GUWgY -zzf{ROVScHakrKk%Vlee;?29e(J)nQCZK8Wj(^(RplT-q3Td|gm4)N*M4B56Zvt|a< -zx7%qfFO})UPZ;d7b8<%JT&2X`V-al;IU`87FPSryfYhY4+~TmRi`Nq?_eA7g<&1sE -zGg>=gi=&P6%b=l)PYOr4)&AH9+!6K$%)!gx?A9+zA6T_WWRif#(e7Cm2C^StyHYaiYl}l~q&hC*6 -zAXv`3w>P1zW(X*%KN9B%Klt%PQ*$KP2~_w*;^JtpaT|zfzkW2A8|tb-jRKt9n@8H7 -z*~!D9S{&n@5CI@@{G3Y^GEt+fhOM|c8EX0V?qfjR9O$Ez!}<7pD0)Of(ORQ>-}TWKpox%S#^nB1 -zf11z6_m2vi3EHy$()gHbwW$EeMlvxd)Lc~h0w^R?^FwF>-h@Ub8_>=TefeNQAUcmEMuB|LpNTo5c;S=i6rO-5GkYBj%1!9|MDNHn -zMc|IULSKJS@;dEI1BNw4kLDwH9{X|oC#(f%rZDvr?4$^nC%{%tu)k>KG;v^ITfUd1Q| -zU6O7|FE1lhL>c`=^}0-A(GR3cPvY7IUpn+Bs0G|e;Y@wFmfKyD@3Nq|G%@FOiWshQ -zf`)|1!6$O&OR>{7Xal_UkGMz=2F|V9@gKlkz0d-T;COsy<;4%Y9XG%2o#U|kXqxtS -z*1Ge*^~YOEXEo!{zlH%p=l8_ji^%}o6ikG*P{LdIfPJ|dExyaN&E~!CB`jW@QM`q8 -z!KBPF}8B7*cc0?<4{5(6GdQ-wE#jfev -z5Uq`c7QzmZC7r}Y>1V?0$B%pKyU2io$U*dmIa?sp(!pgUBY1_G@G3w^+zUv?{?c^! -z{H5t0(E@O!HmnOB_*S$iH~jH$ndj`%AeWrZy5YX8yUP -z!}lp@ME`LC%#td=1zw0T^&Rk2s|Hxv{BsO6k)>h|Xgv^L$%HRY@Wgy80S(^U?-GhD -z=DNYdg@A9~12k;#+~(hVbO=(t=+OrjfibmmtoE9zZn?d-u`= -zS4g>_!olQHeA7r-3ZYy(MCOlGs16ysrH_ipO^cXxjo}%fD1A?u>*`Lnea0yC6bND -z2S6lR!rPC8C~T>d6D@mSPNHlEUO2i!I=VX0IO2pwf5<}LZ0wSv8;CPw4t}BE>EEtN -zCN=i=l-@`V3lU@tS~7<+6W+Ow`yKreG?lGso^s`uKyZ8R+n165+6aR|3WYsmdKd;o -zDnPpmF%$~?)bTA^eGxr#c=$!mU*-{b4{66?*Ye|{hf^U@%~Yn$e-4t*KsIipKLd*J -z2_W|=BzjrmRp0hY=#RvIP^pLhzC6{AlA-JbZ0i;ycTMB3Q-5@UhXD4k^@)yQD|UJN -zktgHupnuy>VNs3;#WFx%_fa`&qOo`x`w3cF1CW#dL)DHA^nnCK9Vr~ahiC!OA8QbF -z!|QYPn~q&<_C;0u*E{e6ncK;;1I|!gfvBZ3K(;=i=(U_y4M?fv)7=0|FRaA%FSd(GnwPePGB$lhFS^h}{1*n*6sL^l%M9HP(9B$?=og%=DKdh9qjN?J7s^(Bj>% -z0+{@6x}%1hW$D^X>W% -zAk#MM%9Z^9T9F!-3hYnT^`vSIPvRe^%m+;cN`!wbtFCI9)7Ilnm+@h-Da5qWjI>iZ -zSqHTi2!kq=xX`K-U+<^5cUpqWtlT3OvN8`ec`LHZXt}@oAzH?KG+c9a^Jzkuid -z_Jl_A*xYfvu|3y6fKF+g5lT$3`AC(W$aTH4Ig10HUa$2S3+>$Z?7zQfzdoS_$mw*F -zHjk#f@8M(UJxgHBaW=XR=+?$u4FDo@JP~pD6W6!QU&#Q4a#`w#xS8zXk`}Z))mvs+ -z9>aF*{=+6vY^_@2x{7%*wswP#CqVX{WZw`&Z3kBTP$f8aBVwGgw0$SiOnCK=7Fy<< -zZLE)N=PWJyrbBEpqmIOL9E1Ktm^2W&ier=MhsES^r*Es`QYK*%VQ@G_#7&p-4RH!= -z7R>{tt19NR2!YNx$cvdHv7#czM}%r%7kjezeak1oDL3w@i2_OUM^(&w*dfmIGf0%5 -zbY|HL3(zekEj?MT&b0YPDp#FKP94D<#h{hoRZ=8vf;cLkamkE9FAUjau65!HpX0P^ -zhHnUEgNej6OsuQS$SGBB?;PA7mb{WgN$7k_BZ7fJwD -zT5;79-jyttcZ1)l?*tzoI4V8_)`fPCNu|?>gkI${psyTp|E>lq>Y*Oh=*H*%zZZ2G -zir)=Hc3-xzzCf3_A2EJtMSz?w(|e(@5flat$k?~abEI2(#DytUevJ_D{d10s6Mx|k -zpBlB!2vIViI218H4M9b^=~jBza+n4%-Di{e5uq51R%*^+mq9tpE7GN9b5x+`ACCx? -zw!?w=5PD`T590=AMm9uaKA9})C;#q|n;9Qzz-`kRcqZo`Hgr;7FVZ+}$K|3bzaX$7 -z<13pj4~slWi_=B11XJOCovi!9OM?ssJhJk^Urj&RZDY{Ab)5M_u3kBKr$fZe^^x%n -zqOEDA<{U{mS~}SUsII4j8!xJr2=fQ(MEQn4R#6dgiktCV_j8qEn975RT53&p5OshYWT}CGsTX%JsHcI)1I* -z$=NIf4|J_N$_F{n#GRm86Qw(Xo{1wBnCK9Nu6dN^G4yETaI<#t4*afU(`BWLDjg8h -zd*9kPc4?%ujOlkPio8>11<%uw{*TdcL(RjYKN~Y$_PL_qodQWVD%{G-F$P7|J@ -zdj@zagSAHLMAW@ObS$91jad?nv869gZ=^?fJ!M7TWbXEW6Ee99t%uHOx3=1~gsU9E -z00z*a##qv^@p}U9;zWM5UqDs&!zttkZaDbK62kFBfI1rx|4W6MOkG+H8ohwS>HTrg -z6{xk;yg*@SeSr6)mrKfy^fYBXa9S$#y6qdgj5JC&1MF^++^S3w=wRdiq;k0Oh98#w -z3A`?FxK2-8Q9!sd$TB<^#4qU1|95OIIUDI-pMe -z(pb5_(m?~*PO1wQCEy*9VH6oycB@YF2K#q&oShOC>XujiSW@tV05S8V@jGiHS -z%``@mk55#Koij6`x^q_k&-J#>t2wBAeql%u3dQOySnLNo?g!@>mP~#?o4C3O9Cp%s -z5q)YW(6l3RWAKV-d!Roi|A;RzAhDhoV#Gi`W= -zHd%5aD5AP`f@q&8fT~FOwlAFdUgd#azxh+@N+OV->);Z&F(d>-EOcGv!1A4Fk1{7W -zi0toDol>AN>E+`BXCgvy3FpuyVeja8B4Hri2#Rw^NJQp<{jJUx!hPaz933L0;y^YaPd?B^jF`JkMWW3KC&&3xwjZHE`=hcKMYjw|s^<#ZRltQHJ; -zN%n*e{MOy!>~Gxfg0U3FnxwO}M9%j0GjV?ea^^~xN8&*zenszpmATRi915{RdJ-dn`U+Yzt7s#q_FVeXt&yG1 -z&j*F}VCY=ssuKAvZ=PpJ;|s+q{RwT$@N=r2a`Ar(p4!_Y|61XcUPuNhoj?yH$?WEA -zuv31Lu$%vlH5K63^Q3=Fx!ig`8^F861W7+D(&3<01@nzF{GZm%fA)Dhw#OFw?Q071 -z)Xdjyg`O7V^J~);R8VP4h8BrQB!zBan?{C`OS}zB(d+u*qbDYTO;`QYtSxhqN6|Y6 -z=n)dd8$?CFT5hhCx7N9W5K)mnYQUkIibS&Qj2sLFgmQ+yicIlyOpZ1!hU$rsbv9F@ -zbz2RIVjhbwV$fZ8byh62Y%56PNJP@ok(wZxo*$f=i2;?gXT$v`kc5ehGg6hsrrwvQ!e8d9%`QoY4w^;4a<|?43S_EiO<;XQ4+2_RXRo-Fw0F&%rgmi|a$S;?^%Pf4qIlF`du|+2G0bA^O`Nz -zE6Y9wt>JzVm|e4CA;QvMd)Tnv>hYOb7R$lN1*FsTgr@s9Q#f=&g4Qyb8nq~O$7@-u -zg%@eR`={rZb~N>Ovj*lcWXlfK$;InvZ=OWUEn2wj(wr)Fk+CIlc^ET`h}xvEKMx4w -z`!lSkUD`WzM1+^7y=0eJm@^d|j;~d)WN8#vcb_{$oOI`1DK5gD{l8x6pBMt**~_>D -zYk>(%FLw^_%%6NmYUj8rQIms2Ue_ir*U?MNXjvy4fYgxCcD(OX5RZ5+qpDr(S!q$r -z=sL8ZWDs;FG7<&rsFfEEQSN`ZR&urUo5>-miz6|x#%qO*RXD|U(V}D^zepwyWDLjR -z)_93=v69(n`8Aa*1cE)%-3n#eOC~4l^f2tvGoWI2*^qT631MYkXy72ucJyR -z=>k6H5E`XQU|dU3bRLER5b-}>8(+ytgF$qK?gWm)3-4$z_&C_dFhP2jD>~M+kpPAm_v{)8G_%%h#M2f1C*U~t5+`jpVA>5WZm_8Js8{AV0?u~-gR1WgYwCHz -zr3ly%`2i|Y1r;fRbO|M(6cHgRO*&Gg3esypREh!uN{2}AAcWpUiU=h1-lT;dsiB6u -z2mjB#&;68~J$rU%XJ==3XLsIlV^qL<;mXSwn53WgJ)f<&)EGZB3{czn5xhdwa2??r -zEY&Y6M=37a%4SVZzq8Vpo2^WVWslD5?kj&1t(GH;uOb%W4mZ#RC4Y#(ypLa58C -z_YfWv)Op4%TT@@0->YhEo*=L~w_?a^12VazJG8!hXti_@;%^^Hx#S@W!oi*an6*0j -zT+X|gnHSj_nLjLg)FyC77F|p|9a8?7#DLJ8oDZ}Nm9~#($_gB(cprGAVO(;_An4m{ -zxFnC}Blars!f@4WeoNUbvLp$rgzstx$%j_&0D?Ue=1+ZO -zq6dB$Z+|S5!YiEg0ymxxxbFL(a02%k{apPh)Ume?+NbKJ*V4i@b@X&=3eW?U8aiBX -zqITeIh6n=7^mCv^DlLoCSUJayLn9~M{8YYLZO$?gyaz42Z-WbzIZkT6yOnd;6uZ!H -zRD|QX>F1V7M`k|YCZ`K#<5yCMi%$$EhFpL7$!rfRPQ}`Gg_S(Z=XI*F0V$M5>m`Fd -zP`?0RnbZODivGi--0~kzug3}F2<)X9;GdJk!$ -zP`MmiOkE!OxtUo}Y}5`p!qj4-qNuCNxak#(Ffwm(4*CncFzyv=7Pp -zR-QVSCYcCzzlombAm^3%CjnjjJ)*w9WQdK_vOApG0UU0yp*XAW8+lBnkv)}$&MV9! -zJwlv5OENtvKZA&8Dn;J@xP4#3Z7Od9u|&{|53L#CX#f40vQi}VYq_Snvg*LqmS>Xc -zw%1eC{8XY`zB_iDv8PR$ynT6$z;TsUq%kAnqF4>{>_uM|t5n4*?d&NFG478n*QcMG -z#buoA$-jPYWX6PRob1)Ld)TJ9o2f~^zLZ5>r_@JZrk+B||2}$Tc{Yp;L-Hs7H{wPf -z-rFl4oNLmF+VxdzOV?df<^Y`!5=Q$zI3-bX1w|rlv?q@mm&wOU(&9 -zN8(_1;8%zqnRr%Fv$|etBm%k2aCGD+uyjAY4_{r$>i#5GNH_i5KJKd+wV3InED&&8 -z&*FWk-l4H7OFszL26{rpG&|+hbfQ~JO#F=_A>g%w{B2NX-S9E&57}7Q46cs^dM28u -z5`Jl{aE){TyuG8i>D&n?=BK7kZMVpetZo5$i0QndO!xK`6#Hk~y(a79eWy_i=$_Km -z)-kG3uchDf>fn{7{cHhe=$k|Oqsagw2#9v_XSRoUX}1Hw7f)lK3$Y4b;_fv}$vb^z -zB2_(yC=>nCHo$fd27=q^oNrBw$1ql>ciX5-*^1bVBjnf3n3?-N-oor+dhrz0o050O;|#4KAmdi6rwz&XWZHm2o6 -z_I?coF`u|##$1E$?NYgL#J$0Xk9pgn{YfC1?~0zEO0cCz!{FnqG972{(tn@h07tCM -zdHTW$Kg%oic0^<2Zpp_&cN{efBbu#v)<$2smsGB{ft%}j`eQIJ&$~mWgYB*;&lKRV -z&NK9=sdp`L{8bG~%mX+p75^5ETy0a~V-kMSz^Y|UvGxv;2FN|e;P8-~NWHWIkb&AW|SGSj}dm!~(TRc;6 -zf&bHmy0^XD2Z}W#jAE^8Y`u?Owo-+In}&DUZs&@Md{#ClM&{aUyRz^udfB0U1%k+~ -zg8PEjJ@*`YQP%5-zOSX0BH~7)UUne>yffMHusGZW1Pz<Q#^6nkignLjYgQ$KPFPB8~ww8IjH -z!#69Vo+}h52d4LE`pm*E#J+aR;#wIW8a0?56fB?MotFs}1fEav0A6eeHo>ER6+}iT -z+NWACU#*(1T0nG8TSMRll{V*0w-?(vpesJOZhuWpm) -zo`bGEms}Fdj`BM88U -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 -zzgs#7QZL9MAdbRw2j`87s)8(OG(%n6(k07 -z;*bq7TV!Ptn8Qh+IH?Z^1nDC_{ijBd!EN{( -zTLym~Fow-j9(O33{ybzYH9>?Lz=MZCDS$rL>34+t;uyC^6yVA0z8Z@Uh+2HHSg`&O -zDe^q^0jX-Ou99jnfn`tKwwuP;yaE2TEv6UJ$V}UWR@t=7Edoa}m?ozYadIcyy4b5l -z)nS3%kg}HwAntS(ZA5JYJr4>>p?Y(o!NE_8TwvTDIvI-TDg;oxmV^NMBx#69ym$pK -zr}gXdstJK$XcGupu>q4z0p$Xo<}4lm*pgX=KtZ9_{fAgyH_C(RES5ty%qyXJ7#I5- -z93C-`L-t9KgEyD4L68j=k3roD|0UG=`UmtSph4+k{4rv?(g{7ancb4`uYi-19vE@W -z1LCRJBA)u4yIpyvJdi?AOhYI<+J4LA;JFw4QSU!)iDd0u9&G>moHb?zf@^4@JYK%Y -z>3qgHZue6E#4h*D4R9bu{KB}s_WIgS)w)j3rSwc!_GFRepcZt!K^ -zA#sa!tq<1Yb>@g$d{J9NiKjmwcJ+K#NPNpNy8?~`qG$@9o`;E0ylpKrgqTkQO|Ft_ -zs1DlVN}g(xxma+u82%0D7yIt3+m-<20w@;h16sT!0J0-Y;1ELh=a)XYhljD;XsQNKe$6V{jCLtVU`m{4kIO#~@JNAwPf`z{p$+Pj<1GAP7L(x8VXBPJL3- -z?!)-P_3YyIK01PFJB=v^L*aa744$g4Lg&-F8vkoDoQbzv$5qNY+osixP7Wm}O%pOq58GaErPKMTt-6N~Ew$bn`Ir~q?Un8u$5Pr+AK^^f(88~dia=X@@j3{#A?dzO6`${d@ -z4`gKv-*YZ;N*%EX?g1wV#C`W>e0i5UefGo4peifkj(dL<$E&Xki1D1yq_=?Z_5pin -zb{dBa!vMaRnqeb{Kcos$Xcjl6f^0Z=lp$RJ{qNt`PZ0#!g*pGo<*S8KhvEfmMM(c; -zyV&B4R{K0?K|T24QlA^0E!Y1(dengTPYr~c#CVQoCO#yiF7+|qkj6;Y}Pq6&m$I`LN)6+l$x$}|xXNM^Tzyjg_Ser#vhSUwwp8I-FM2~mO -zMixNF9-R{RXc=2$k`L8mPRFWWuQV06d8p3vqfF5G*BhUTZ8T7Z$S;2zha~J=lwj6c -zNt{+l->HUEsyJN2ynN`j693n-IWMz4Xt?5B5B -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 -zr;p8xwJ#z-?|>zT+;nNwFC2XNd= -zj=E@?$Xqwk;0=8lBj;z?Uwf>Zp -zqPohNrnEr%OHd#{_6w$Og{_89f<)rC@YzIrkJX3QPe3@=1@p^6ctkRhrr&#<^9Vw2 -zOO*4|zUd(t+4mza{n7OSlx*1MMY6=qB&RxVZAUSV$kr7AENOZ9m#+-l4DKxGV>$N3 -zkt)|T*sTwF3)`k~oZzY$C8@1NmiwgO>!dwxjo5otP0b)XAb208>2j;e)p}&0c2?^5THsk$dgkfBVR%SVGHEKLKjzHz8+S`R9QoY+S~SQ630U`Lr@f=#UQH1xePa`i@k^k? -zgJ+~)(~J%6^x*^drPDKK&e45+_UPy8zn6ECaG4XOa3Gz`CFL$)!o7aQm*m1$@t@D4k%=ytFmt{N<}613crE}j=HYSnzeC}37vO&Hl~~`Nh}>6`+3Mll -zqcO5zdM(r62`oa-0rF#nSuZ<>&CUI#d}~QA^n+ie;unz1**Q5m+U$w$njcI -z1O6>l5alHFCPxze_MIcm4qNRMGAQV{Xk?=gYVp>e5ZeoNlr9$a?{X-T@MfY3u*(~2 -z{P8(dv=l;TnW^y_KJd>1O=|U4S--Emi1#I;{eT%P`WO3m@xhO>HaT>6D@HA5ERH9S -z4A`RWi}P%-Dz;HrZyyUve`6|NnX&ZE)$xxqzlD8dEhl?5BQa4kTuH!0rdR!V1v?1< -z#~*D{B$Zb<0v1JU)@Vgr -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 -z=Km&aBjve>%|DdU_@?e4JH3&*WYgetDF|GGzQ -zN{1!rP8m0>@ -zPN!028Tin)9x*jW_3AxX2n6aPm*$ZHhjb5Vba6 -z7@=DYx{UfJKax1~NZivKBN`RaxCF-$1gzd48v>UC%zK@oEq8(Y$l=hl-y(G>(P4v& -zIr;*+LS_l2BlTOd{hUvOyR&_y=njhdkX^oIu;*vkm6FKOEN&zeA0iHnwA%)xp{xC6 -z>?YM6uPO(J3_|b6ZI(ab)eNLk&%jKJx8A#2Byg7E>6XX(a_%HW8TFiVPX*lBRZbW0`wNgD=`u%Id-cF)c52NUPsWm{#(CbX#sV;u@wC5B -z@_Rgk4R6Nzag8PhG3ugq8W{vNLfLW!psDeIKF?*zIwbZ7yur|lx?XWlUOhiAn%rH(8?Q;0zZpx)x}X8WM*FT -zh#%dt1eNNxhv{mzh27U?yXAN_OPE3GA7pe2y@pq+BA{k;^ -z2Y6jvs&0q;UB3Du12;{_XIg@BciTaAC_2Go#%s7+LCIf{{#*x%K{^%NZwm9rH5y&9 -zW;+zgi(78K{q?5nO|70whaPQ!SnTNjA0wpUz#y&gcYw^1ez3k_Y-solDty3AfUPqs -zD3HpDGIXZ;Us^1`mA?0mi#!IUkV531yc{1u?O4~aom -zOTG6DMjs-nEGCsY8BafwLEK3uw^ykN|0F?!|W3Sx%ncboA-kr6}MWLLqNfU|K##7FriCz~;-e -z*c??I9;*VPs$J{TV{qiXxw4i$L_?4+zH>RECAP1e)dX2L663lyxLh!rCwfY4L2tkqie+Y_X5Xx}>#g_sY -zmS2C563abpe{EW{LcIxqK-YhC{>y*#VeLav<#&KBO*qp3#6oT02r>vs!4Cz{ET69l -z`a}QuZJnsngP%6iEhVE+#SeSw&bxC=Y;8&UDFY?R(Xo|g3p>ZeKTto2zq=6#<^nSh -z->`2IfB$PiR9*zVe%Zr!S2D8a6bm-o>4iD)#gQ+;QPIEf3O2r@-AJdC%%)qPf5PLH -zsIU=l@pI}~I6&NrSlch=!d$Or8Ra-}W){EjubgoSV-GO<1Ob{1+r2>L6I-*F2pf(b -zoU`WuZwW`kW!pQsdfrd}LVh!!J$;8iC -z!hG$CcK33>nhI$DB@J)zvWGIvC9~BGnPjAcngQ0WwVS}+pX@#e>IZP|CzfELbiI7}vD|GkbfSOd -zt8rZRUr&g94LPUXRB>Sy0q6#~9rKQ$f1m|U9JOpiix6~^8Gx((jRHc+F#_OuH!UIl -zc=>wM>R~GWudq1l0_K{z`}+E>?5~f583@Q&BTs|=X*0H%%IUQBZ6Gp)t@%CTvtj{Y6s>UDY%mDcivd| -zA0Y^3FHI9bwuI%5<*Ax@(s&~OH3I*?V|d(37P|^a7DN_0`&=To$GW&g#Y38sPU4g -z``6Q-KadwGAp-?ZCEMr0ssOK%Av8b$II$GS4*Evib3W*mcXIbvZx;0EYM)+^h8KxB -zdeMi~pbw}NW;s^*ng59tjG -z+L@r7+DB#735Kmh|hLm8@mQ!tNm(j86r&tzfM7OO3yYM?DRbz{=bs{v4BM%pogE*>>slkVfLyZ2=`f494q!DI5l>0rdEI*Kay#jvCo=66QrL -z1_NJGP+9C(?H=^z>3{#<+BtMHwC)^fm~et`CZy|!_LulAXCkBo$slHoUtFzlR&F8@ -z10pO9_W;TPaE)JW4k$;^B&S2!@hrGF=c#D8QeFX(FM#@Uk|h5K`A-AEI+2AI@_-Vl -z&PEeRAXkpEDPno-DF2nG)J)&ms5l*b5sQ7pszA5E0=z`QgmH%Vs|?iON} -zgJ~e?z;W2BKy69GUDg-Pwm({P;ml1Nv -zXe#7|ti12t_O*AL{6S%t;0zL?>J%Jv=r^^C6$cq}uRGcjl>LM9KQ$S?E%5Xwt0e%y -z)pR*|Eyb57gXzK9;NRW;=BNBqrAks>Q^wO~?sDQ$X -zbS#S?-JMH_ba!{>N;ljyy#KiI<$htPDdBw;2?#cAp~sgEB_w^MDjSPuaW}x31>{*etc>=Gu4;cEFqfChm1E){IfN=2u%` -z?_OUmKSD;gbaxWz@6RIt8=P*VNvvN3zCtU_;aNQG>&DfxNuKS05CZ4=Sv;MY5tw9P -z1=+yS6HfCexjpUs_Z&gUTM8zimUQ-{t4mJhhfCWFTrN^Vi0`adSmQmbxY&fYmATmgokJQB4Y -zAT*QPEH(vB%>#igjobU+VvH`K;eXCETk4WZ3$$FWp@;#2SnV5+v>DFCx$ -z__$&sRSC>A)s9`KHo83^awJ7BGeLuayIVO4d~>4&6vv|W0$U}PGTH9g)d&N$1!za( -zB8x_ppzhTda9hS7dd$mV#0eIi1lmhp;ygOW_#&OFXGdw4Uk2XcLrc`Lkp2^B<=+E% -z@AV3h=!P#UF;0+WJD!gK{TFyQf!07z={q0>0QZx?^20oPERP8Uf;#ie@#rmb#c0nh -zej|Qh8X@SuJstA9AQ?#cH{E=sL2s)5*`){TSfFD9YPDM00a84Dm(AHK)-;7Y;y?0{ -zLyLlOx4?bRmZ0@(O|%DA0IwFTdFi|TwCKAK+m6BVvMc$_&Xv&X>7&$*x8JN;a3%hz -zB2ii6s#@~@EnHhuhSk)AjUoX1Q`EuDM`JN7ak}%_(Cu2`x44&gPXkXrbzc-P-ZVR> -z^3D8sN#MP9?3tY)@-1TP5*N^!Km5wU{DSFrA&2*xd|FsbaHh-XL{DuN>l7SBg=shn -zetiZz@G*Aw_(O3qV5iuqs3o?JXD`$tbNSkwt3SinX5oVV60eop|1Xl*hAdxEw)632 -z$0R4+j-hGP<;!64 -z!9M19aj?r!k?K$eoDs$b_(H_A*p5OYGT=jaH-GBg-CU7f=jgMn5z^3LDoKAYMNL|G -z*?OP_34OqiygP1X4g3DwHF3@#}2m?NZHAR%Q+G*c23 -z?Mc5cZL*z0@d?Qyc~@FO}Qqe>oEZL#-~fIvv}pryzIKqweB4b=LTA0$M7y_AJ -z?`t8nXP+YU_?jV!)$y{|9pNI|zXVw)K(3p%WNFY&^^Z1#-hia<{EbaHi7J?{M~Jgp -z-E-$!%?DeMHgYa^!BZY&L2*w5Q}!qJs@hNQ233@w;AH_k-%(J~WI-#j<7FuKxKH{PqA;)*qzpPnynI6$ -zC+zG^Bq_~u+3Vrl8~Ay6nvhPxePVTItsQoV8;uPnr-Y-(qDtjV>5!%IRi?XOnfPguct(il;>Y(Aa+h4x^EQ^Ij2MoFdNr;2F2RHGviB6p_zZ -zr~xfr -z5_x4if8FeSYYCbUa-CkD%$CQNdhd4rEDW%i3t&2?yuy&ovd53@n5O&$ST8xA+m@6+WFo8Dn4TeAJY@#6(AZP`e -z=}P1~MTD6DNuauixNrXl#}gO&f&lwH@+y0%0H+}Ji+uqD7KncYRCY}Nc{br`9OB5e -zo)zeB;M@P@O556&{Tl*MCctDR8b@YLFYEhwqyg;<)E|mF8Oh_}Oh*C{!@#9glDWuW -ztaL`D(Dzb(iMQV=c@6^$9^E8-VIElxiOuJ7%5-!84KljeSc?vSQgIKSDv6Fdps;}Q -z;ACo$jy(#8;Uz^de3h8|6Z(^5w4kJL>Pph0J#IGU0fQQR3#AG*b34;fe2n?k>(U>( -z*at0+Q6Ts4zFupor`K8Mb#p{NHX|8Ey-2#9#+a%4nGT7O2M9gY_1H;71ux(dv* -zOtIV7n+e)-BJO}Dg5I5ckC)tRB<~^fk?Gc@YBm1CQ@gi>ErPi}_?%$}A4bKu50x%C -zNA%V=u!Q>B?`|SXx&+VJHb*zFett$xhGpxL_&(ezl-?TEzr2nh>Iv<(z1|Y47r6pr -ziEo{@o(Qc$iJyIV?lb!Vjx3rDUG}lb!Ch#{$9J!KYV`#+v>3k5T -z6=GKX6z<8Z2m3@(>%<0Dz^PFsjM<%E49Q|#)4jjag8X332FlMQL=4T9T?R61ZD?dq -z@nJ)w8aoKs0r?8=+{M7KTPatl}{mTN?`utWrTA+1h+`4Bp2qsK&sRB-v -z?q+E3SDEYVQzopoiDRz{6R(inJ5}x;sqGu}RXPrdrbg=KzH?Y~s~`+P-&PHtAawrI -zYQq+g*NJvx0>-zw_kSpR_s26^WkvS|WGGQEmMD((7M}1#RMDmB}5F^JmR>pEF5@Q#`-8IK2c|k<3W^ -z<2a=fzIE@sQr!!u>3(M%X-kp?OzkCV4KLs>Rh?eYL!BE9@efq*@L@??-mk|9IGY|w -z@Wke1M18LCwpUy~pMOW%LlDo9r)o<2hi{(MVVdi^fDqtw+@aD`l1{dq-hl<|&#r7> -z#YfDNoF4bD&h)o<&!@Bk-n6cto_~EV_evzFs9A6Xvm}FAb?uol@GN<-%ohjK3vV|U -zmTZ3(h{J{+W#;UuC{(nXVRg0TsxEpY{Yfa#`Q1Z=r3$J!7#5`ntD@k>d2BkIo>>}Z -zC_h*kOY)DYOg3W9UttyO)Io#kCmi9X%3tvT<;KELdL_$!7dAkqvPB|NOMg#nRcJ9e -z4uUGL;LF^~be;?Zs8pVR_f`+_J(#a{6M7eg*g`uwHSNP@rwd3UqIVHa&UBeSZI!@oPPLC9P5z4*zw^p~A-8endI{@*4013;H0dw*TQqOu-5{?Js7x!1$0hJn?rFu!b+8`N -zQ}{53Fx>RKi&27h9D3P65<7})8nCpP45Sz0Mz}@`Edss0U6yzEK -zpJ=!n&-_+_@d;GTcPh=G3!}!yfLzZ-*}r(As)@3Lk>5OzbklAhWUk49433DAW7+J6 -zva#HQ?fQ7ArwaDFo#7td?s8Ysftb-cYW)JX8^*bl0d2@M+^+m_@x@L_t?oEL30B=V -z-qcTdtEgL_4pk4n1E#)sSKQS3ZL_P%mox(CRa_W8sXcJGfq=B)!vLg5l02kxxCdt% -zFSWWSe9sZRDCd)B@9$0Xq2o43PXCwGb@eJGUKtXnwWEA=)EiVDDVIUFi+nLQoVbN~D3I#Hl9a2-j$?=Qy -z%Q`uR%qtJ-Cj3U9YIE@HYHs)uh=$r?RncXI$iTKC*H6n+-wckTpVT5Z>?cNg#T9*O -zKu2E7*Z-SW)vRB0`rov`YWn!>_x$V`@NLndIm6cpJY9~}@Mt+fs0(16@I9uZDvQ6z -zVszl1l(VoNT@!F_qF#IhDB`2o?o00H@2pN%A*aUziTY&;hl}LdIQQ@)se}rKe=gaD -zZyav>RF6UiOF;d|k2@~$SB#W6;K%age=^xGD)2krl5hmvk?Tk~Sx>9=sm0&Fu+N^> -zuC1LwP&-`*B|3>;Y;_*I52j -zX|QDHz7lvF6!-d0K{pyATakLmO*yq(K_ikd9l`}YNLstdtF2sNUT7HS_PgP}M1gtO -zT<;~JCHWVJ4!l~e(1$O^Xvs;;H=wgQa*=Isx-l(6j^GKx!3v=?4ryNZQ(uH}GY&Ap -z5H5aGVV7cn1SRmlw1yl%DpuyKuDEKw~5ZfRe#@Kg(7&JUzCqDTGGx)-eH^IxAaqqW?<9IEx2_1M$y}wZXhf -zK=m)A#i=t&fMx(AQ0!UH+T=ZvV@tqA0+c=8-*ePCFOTRH -zkj=ailuQX`?~3VWzx_Zp|GodVPbjMt=$*624v0);x3aW5mNI`RLk$-fp8S#h2AKsG -zMJ1{NBJ-esM-ylLg?hQQehN(h8h|EZ7_?C)=$c#-TlzkXQvGeofDN(BW?Vvau( -zZT!z#zG42v(eW4wlLX1|7C?(_0;=f7RN~aozl5uG -zU1B_p+g&}8;QHC}|w|j{XsA2Nf(VeKFb?^f5 -zN-i9AHNhja?Ota^kVMKTK|igToE4KP6UwgW{;#8$AD7x|7SpRtyJOPxGa-+M4J8+@ -zG!Kh?f|O)X^pUM$LUOGBMt=UK*heta*YZn(Op2LBKG6=ZbIX>64Q(_+bbFw5`WQn4XcvA@D`QcLtefwvF~-_LN8ih&YI0+ -ziw#(uB*cPvz8e|jOo+@=eI~Xo7Hbvd(YF~Z?=}0Q_+yw+gR>Hi8^WDVKeOIoOH<3H -zRiEavaQ{YU7{4kldagd!;`~Ve^80>TJR-lQi-Z;k2ZKxI0q4D~2ZA`;HS|co*J;q2SA(ZV${brX=1AvE#?d@2Z;(pwkYf -zzspV0=Kql1vIs&&%xN*x`B=THf$kdgJKRaG&fZ&M>*~pjTt3PGC!n%*YfdXptUbB< -z7u9Dq#=`%}EW9T7kr90HHw<8R60HwK1dM%X{tnz=6m2=WqK=z^^c|>DORY(bS(+bw -zPYty!hy-i3<%%}wYZSbieUB@pj3p;ThQ?P)YK?V)z|+Ab;H!DS{7o^uA#J#%Olj{a -z!5{zx!5t|H2+cDG)B)h%lpBrLr|AH6r|G@AOnRnQCnDG4BUGPsRHa6e?VaXs?Edk; -z7SQ(8*FCBew(%|6mUODO3B@F3i?y4ld@11GUb(*9?X5iE3!)}R@@}M*u}R_O2Tx$R -zJpMGCHN-Ckn8dzdcfc8CGig>_goe7;U4aY`vG+OM-R>YjY}+H@@oC`JAwfjk^`UNO -zatphj;bXfu4jX4X(e?MckaEFGrnO_VufZ8_n`a8aqdmGdLbf`2!gIz$kH^IKWK3)s -zKLv;-n}8^x2Nl5^Qh%eq`q_O4L}Ww{V$gzwZ@|lFJPXiL(%Z7p9}JKAju;zDy(ys3 -zFLDs<-i)R9CA)asKwUl5MX7RwT<6&4yG_7E2DbpH>|UfjApl}!TjuxF)5MSqAI||Sb7F?!nZxmqd5rvf -z>Yp#QC7BXOR2+#fX!w_ELYXjyTq-x#E$7li -z9w(ZARl4gKr7tqDM^d(Z^VTs4GLF)nw!)~WYVuyc8{2KI<|aHPPtAxQN%@pB+$qW~ -z>=w(3A(0N(I}{f~2E|!khM$Chb3m=m7+PfU1^@ndng%!vboSNQH|b?c&F%q<<}xLW -zV(P0{Bm2*{7-dPLjvdP!^dH -z^PKqs+Cu4VT^qdn+;M_0ca?z3(|GV+b$Rmxol@F0=zp#g9^SZseh_Bu$fj_Sbs-q{ -z&k*2zy%Ud+ps_UV{`4a?WdZ;W?`EjYt8ScbU65Vuf*@JUpLSK5cqUU!2{;+MejxNfbe17A6BNcuZhQ(=0J|Bb!xKU~|u%aq^-Z^>5 -z^G3aMdA@w~Y?c8WP-A0tO)kRN6s=Cw0=z8y3_@c5sPolNx8MpJ-4ruwQE_MSpOoz4 -z#8x&8Wv?T_o#os7Q>O-wYP~pmLn#z>KN-onF`k6>+LTluli9{>D-P{q7*lxKjUN%0RLyV+oYiw$>Z`jyO=2D8^_F(wf7C6dt+if@Jr -z9_#s*Jn1P7;7ka>$(waJ&++JqlZ)^&sOo}uk>AAL%hi_nw8lyAnfyG!>X}fO@M!Hu -z_!n}Lx_gUcSYUH5zL|@&Zg-fN4#0BcJ*E#_tFn2mKDALn_(A@pb2DrZTPQX=bRqT4 -zX-4UhsZ$UZqtE+|oJ~Hl=U%xmYp;uob-8 -z^sTw-qp1c*STUnxX$^xlN~13e&oAJa{}uGV>4-x7Nueh2ri%=vM{E>uP!~Yzq5@9NPLZc76t);CUf~V*2p{9@eC|kZ>8|;Bf&## -z5;4i}i6XCY_Vr6Z;1`!ThAZ7F)=nZkYDfJ6oQao?*kLzZGjVduckd&(quEyEl@WIH -z&(}C6B$jH5XnT}!b3vu$|C?^Lc%AbX0M587@$_f7+cb94Lc-#B)Ng;Knd~>!dN6Ra -zhk$t~=<($N1IsT`i=40!xkD~_0wfkpe+ir>>c@0$(@-Bvggkk~r~^Pha^W5m50n;u -z9gs0hxeaJ|@>DV^fYT?b@RR74RR_C}!vMpqf@!Kj4PDYS02bf=0I@e>NBq^+7CaGW -zx!WGhSTF(NGs`!2n&??&?czfJsyS85oymv2wWYc{KGWlq?1Xi(5wz4J7%WFgM0r_r -zyAGw_`;aPad*##YT@b+RBI6{CY)U5l@(P@E9wirhrTkMp_dEgfTaf(g -z`6#jNS++_h-=Zg}+lD0lC+VsCc#`42V>3OsB-;kt?^0m)Bv^`jNCsbtfDBv}`vJPulCb|0AQ!{zV^d)^c*7Bgn@F({Q$hbS&NnSk7tKB!o}_ -zo3|(16V->jb7jRhF3x8Qn8eAU+eJ4pu5#Z%urLL8H|_`xr}7KyxBlIvupo7hzjt;8 -zk6JMZI4PN`-wo}*)zvDfUf2jFzJCw$^|XekNm%@x=SV@tvZZL1hOUR#xkK3q>K -z?nVaOl74wlotEGutQH9?`Kqs9NO)=o*{q)oYQSYi;;C5v`(K&sPiGj(6~K1t+K%m* -zwOQ)s^6sG>WGM&zt5%;94lxAE^JxmG<<$;Wyv{j=^*n8ZBCB3zW+b>7o$ntAJ2hR| -z7Pg1JvPs4<13CVuRVG#5nCuNtaauST8Q>{`(t7@x3^_^wsx;IDjQ0xo$_YO-)H(jW -zQv!wptIS*G9=8U^*iv_i_y7_y7#A52KDhlemX(H_eVG|FwM#+H^T6T|0ER++h8+Av -z6|#PVam37fE}Q>fD+d#b_{KFur)S4=V_qL7id@xP+1w)@7{#^R5Bw01GgCeICd;FJ -zp@Z9}LOb+^r?wsA(u94Jwi2=aX#6FAKWHlFVk6N^UB=h_o&X40EXR!JzzFADiLs -zsGE?f2lNHSy*5C%4caI0ofdMrfh6%spK1*9E4_gY_{p1ELy}*MMW9Opv#m0%lnK}0 -z6u=f1mO(oUPL69aYW}BJRJ(uIT<9 -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 -zI& -z`PfLW=!<_3<51akWM3;Hb5Qd0@lZzTu}aZgTQd==wkaDI7j79>svXzFXOlx`w}vI$ -zPW$FwJe%FaLoURGZtqeD=7#V$t|n))M<))8KOFQtU3xk_5P>g0G=4ft+{H#VGD=W> -zRk?kOsKv_kNw{zg{<3vpDuF`T{BJGB -z_p^`?$=OezHIYrTuA8y368oO&a^^RY*o01wbQ_-hyu{{CQ6-1SAk%SWvY&1OLCVzt -zvxA-eZ8LgW>0;SPKfk`H`N60KYtMrnR6u^+S07=yjC -zC*tm4mdJOm#8`0OLa{bX{sXp7f6NaIr-)YB@a}hSY_k4OuZ^N87nOg_4Z%&^+$gZ) -zH3@HA?DV;b1!4tc;^V=ca_qc#F7_LeZ#?>~bBCLYi&Lz0l4O5^)K>x=%{O4puNBe3 -z%U9$Gi2h|Rwb|O4)y(n_XGV>XZfTO|7mL&$U`|w6i#Ng8@9Qf6MN|7egmU2##IC5g -zCCW5KlLz9vCHXKN&f$ov)`odHfaCR;Yw6JG|7ywZcLFVM|NtZs$=Te$CtU^!s -zO9ET(8TBklY{I3yBvZa3x7<<2to&Z%YhmyNz7X9` -zW$B8wsqo06<-i#`RqBiSLE9EZa~9urBNw}8X_=M30p6XXi``21%?B6Qn7eGJa;p6R -z9Ic$)?69UUBU1bYC`hPEfY|qZ08{nq7?6P%zIC?CDmr0tD%VU_tExa4pt2>v^>?in1bnuIo~GE@T9P4?Y=rO7IP6|&oUVDk$5R>YlWbU( -zu4|5mH!U`il@l=G2Fk~Xsa&-oDZgFI(n(D6_qjs652P7ByLpq<%^a}^+mniXZ=vhZ^RoB7qUH)qf)pC;7 -z3~Lcwx!-dANR?Qt%Kec%eZm<3=!a9!tdziW66-G6IlDb -zE5x8A3EWErPJ0ez62Di+cjqhl4xa36_5;d+w{MevSCDf5>?#NcgwWrAE_n?F_E&Iy -z%`cq*KF1iTipWqAm -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 -zDL -ztKCz>in_09b|_m_kjFH=ZTceP@b3GU*m`CfF^zG`w@u(Uw8MM3t4Yv3iu7lm`!pGr -zv^2ybs+JnV!mDB+H-2V^V>)*e-=67vs_uW?=R4+UFcj-Q6grlFiTA@;mSA)_vA@zRT~Dj& -zXEKgs2m9mp+q6tRPTlvWyVu>N#u~0KyiN3HC(Oz^AG~*~z|V652r~}}!+-F_-+Zm9 -zsz@!y%nH1Wu3ZM}mt7~cdEJLDC41B!nj0mTAawmvGtU0|3Ywr&?xV8NCG|AM)FR)9 -zgacno{M*Zd4Q5fRYvQR-l(fiy%!}NrevVC1Ghg?B?CCW01Gguzt(4|H+Os2=x)-eW -zS3md5ZK#%;aSG{xro_-znkwM-0>lTb+zhwLDfRlBY|TvDlwp?lO1qj5a3M-+C4I0? -zc^LxEc~H#^V{UskNR(Wfa21iI0HQ~Y(*0$z6DF{uGO><(3?18@kVY%3l}1qFZ|)sb -zETsSg+)`M$&Eg_^=eJMQxw)6YO7Cj!n(Eq7mGH+q`YfDwDc6x@0N`=@2vy`s(0tGlmj@!Z&6m6p`gDWv}9yGS2ZO?)=ec -zMaIAW{vyKo!3YKCPNr=S@8Nq|Sx*&!?56dO#(vP%`&H*mZ0cALvw_AFP)!%BD(m2u -z!l9=zp@`I>}<4cD(Siwok!V$t29jYBao5^CFD4K(eHZ$xZ}rHSYH4B -z*v$SD9ABk5esTTv)8T*G6e-7r%R1mpU61@k6D8eV?xQz&Ad=R`%ZHIy&pK}fI$ChI -zY++* -zenJ)ZToAXG;r^4GInoOf@}O}mV8n0 -z*NDCGCvbfCiS2xUia2~eDuh7mV$e=FSEd*MK9+3@eK5SWc6QSVT8Zv(2OAp#UvS2L*tlfG?mQ!LQpxxb*1c)*BZq%VkK44_ZFWvKVk-5M7d_p@-3kY?CaY#r*YPKZgIyKz_kNp3lVW3NLi)m3s4>G|`F+UjXw{wz6KQg>S@y -z-E4f+KmhtPv%i^sz_td!TB_CG+XK9(sf?$BFo3J4aqpq(7Y3c%>VO`=LlnUHAN~ -zN(CHNnNgz@>`qKYV?xj_d|UdhsLVYlO0oRl7HjuG?tzb)R2DpMHiMfI#Ih08=T$*n -zM(j>1Ofv}Z_~(c!+~8qe`9vaLLF6*c4f(ASSQ>{$N|~Qc=6V@W>JJkOM79}EYCy;~ -zI?^0DP&`0%^g99O(hHO`1vd`FE|KgD_4%kk3`t@%DDVEV^5cu7*BkGe!t2J-aENY}rEb=oIGjT%gMgOd9kSre+vjT;0?y -zB9o2U!tKXpQ-a|d*st6;j&`_uLB#$g6#M`$1ru) -zu_%RTIssf^nqUcN&L<#Onz -zt$X%93ENwqB*`7uEpq%l2kb(=>$dSJ-?s<*?9k0}Ib7ii?SJjo1<(k@pGbB+U+pU- -z00!QD)1p`h$HxD`+k1y&{l5R>Br+-q$qq>xBzv!0Qbrjmg+f+F_9msQkWtCFiLx?^ -zvPVNvcJ?kKEAuwOjo*1a_4>^B=lC9s;6QNX?XxKI~_GEtLoG -zK$kuj#Jy|V&7=|i#~bd*&FQ-i8XVe;RftZ8vjc(`dv4CY;b6UIymy8ZGz|t*G!_PO -zqXV*{#2>!gDEa+@xQj#YcxYMEZ^(SFAz$bLIXGwO`~2B5{d=sx>Sl(hCNPlSS5V7cUmUo;nhGDFJ+M`DRUOsyqSVP%sZix>m91F!VgEYPJ7l -zF;*4XeO`{_sdD#xP*bjW!+>*JXj*stT6}X7{oL3ER~e~(w*#(~5XjMAJ}|#*tE-Fg -zhLQXb*`3#82$s_6s4L6#OiU-s&sP=HM!&OKb`m9HYIB_yEyy)G#}=XQFI@MHDXiH -znYHfb9+)pw2ltnn-h~{6>aA&`Rek?P?gA?P!3QI4#(ZUWk6cXGx|MTmUj=PbknNX> -zi!~0iV_$;PlI{0MZABKnbX9q3yT4o~>+3;GLf3HjYHkld=)6`kxwp&m8huUyX(EiK -z(Ay);-FG$TZH9__IpSMaYE^I1?Dd#n>2H0NGMKs-M0*YIi8i|Q2-mS5y@(p4+f8&#QKs9W!c4bJgx##@M -z;y=G2j6YqcdAl4Xy+QN#$wjTM)x^RFnhH|0L5>=!;>z`cr~Bl~NSv9M0&YqP?!9ZTpychA?5c$uZ8=|n!zk8o%I8n%%u5qJ&wLi4Xbhco2FoxdB3uBWR5W9eA65!oI~ -zuNGl*#L?Il>^`wtBSjWxOp1O~wExCN?ewaj(b&BEOB#cC;Eodf-BwdjYh2z;y;5omaVhAvMLo%y%7tM -z(Fgf;hZ7T(7Kj|x -z+c%X!T!o~`Yj@=Vt4PV%0)B;W`4BYGw_{z`wp -z(0e7d`(|$ZjpbSut=iL%de-y(icQ~pM^S%$ek(EXov5sE%;Ne_cCzH-H?CJ%TKBwq -z*L%vw3O`Y@`F4@4F|$LpPl%*cOkQK%VOp?jt%en%*DKtD)Li7pS5*du6ol07k7VEv -zim}5fiz~d|qaT~=YmSchDS@8%5|#04MPr=HUJ=DBtfC#g2JZ{onL2>wPi}O)%x95p -zl9+SoHnUu2VE9n%yBQ#N9;shw?14#s*8(>F;S;9}BSuiIMxOGeb+>v=n1dcv5&y* -z9j?iOK&=&iXy|3oD!4*|Zi`AyaSWZa7~mh5=>V?!vUv@Q`w)BG3C55GT)F8p_C3H{ -zKk05k?02(=2zDVOq7d#Gr0K5CF{^1@c2M5qnR+Bu!U9iq8OL-JZDsP(8wn3!U-1yj|52Gbm3#6#a){Sl0^*`Xx@g&n|@nh=O;zpw#Pt~NlK -z7~lkGoCr~w47sy=f`2@XDO|KZkATOPSrW8eL!KlC|7fnC?E{ta>Sp;#n? -zs5QSqGRWcaE+m8OcZOF3{8Un|(1kHO*`=Yo&fN`%R4Z7j|ESNzG_?OwpNVzXCbWP| -zt9)d20yL)!#6@U8lNM^g-#Ymg{{rhk=QNI8k7L&d6{^qEwT=aE -z@-{Wip?OsgOa_Bc6`E&~_kx~+x)n`J9;{+?sA5f&sA3j7QN@HoH$1Y+jJ4_^=z2YT -zAv7wqdr-7P?Lp5DwFfmj)E-86Wc3*+*%yfF*lcq8SI?nUN3aV1 -z57`jNQD*<|ej&gnswURS^;jpHW7R>5c6<^j-Jw;xu~t!Ft@_`6UI64_1VuA}P5=iY -zXe>lofgywt`pQe7b7w)+>Y4%ei!eZ|uR%0@_@&r4uU*Zi2(yPkhWxPU5qa`O_b{7& -zLY4CG1nG1CO3zXV2#uu@^?q8irei&gd$}viF_)Lofzx`}_ZYbpxv2MXl`8+;CkrRi -z{8Du8X{u>>bYyzz*AoX9A^g~9(NR&+>|%q>V9o2Sdbw%kX=%^TlnCl&fHv<>YDh;+ -zlCtQ8bao7z@chvhYnX!GrhI(9{;@<>^Ukjs|1rRnAwgW;)6=Ea^^ -z|4H_u(ug*yeJ>qveX|cU*b402EAlGnO%JQ^(mIbimtyOBn(sZ>Xl_3d(A61u+qx*e -z*I>&kU(6xZxJDsAwoFQ2n~^=qVdO{yHbVaUw*ir!M= -z{Fl^M>zXc?ju~9K%F9yPd#hEO>$azP``XAR|K{H6>dtc~KAMxSjmY(-nyitu030Uzkg8J~w+ -z8rCbd_r1LSYPT#!23QCo3=%3w)lCEhGT`3s?Wh@4wZN@^~7#bVa0G&Lv&+@b^?0XMht3n -z&GGjcd*orOtDLkpvFisi?snY&lIm%|lhE?&RPRHtg32>We+$ffCJ`|6#tUrJS&xXObgB1)hAQaxU4 -zb*}u?#M=}x(*jKqYvxXXJhX-CgsC=2ndjQmitZ5&`M9}|gDcl1^DBf=J1E}X*6fV` -zOkL9eEj}sAp$Cm-x&QiN!J}xvFuWwg!Cv&8X!q_g99D#^pp)|Jc*a^uiPRf5)exot -z>1*h6*a`V>`kh<0(m>aB^{ace6l;`3s|PDVg20GAIghuv^I+C1Ort=aCdAj;_%%NQ -zjfKJtr_6Z2h^D8zty_UWWub5F%V6jJDd>82v1rt$1ipROEFhlgPs%9&@k#&0v>$4a -zXepDz{3xY@+qb=@hPkwe?t58EemWYwrbv@9Lf=Bunp4D|c%JXTMY5{AiR_YI*XvfV~62Ilq -zCSmm%nNPSe=J90Jn`D>1ODd2NyP4uRpK0b08hnYl(J$Ujq`hP2U&_C-rR6#Z@exeM -zm<5*U9`>sKP!6>ko7xS*8Z2e9j;g+O+xyxskU=)M2EfO|Qk?dn-#eH4S*PiSL<-cIdeOXMJzIc#M>(ZCRMq -zBhBm^jw06nsOuN-B^C<_cE(4zeJZ}VF?*de -zz16fbe6xFN0`De#r_sbq?3SMxW8zMu*^*geLV!hl9G&wMmWXkiaVgPhTjAogn|zqctmn5D|wj^D#|yYyZlS -z3wRE;xmQ2QeNgq=(CPAoCYRh9@Er_I$KySef7kZIz_xU?G -z?t%sZygR~Fg#>+ieC!o0_-QBAY(hTCCl`<>!daA5wE;TX@!tv-CBi#%Co&w=PP1ep -zI7y9;;S}XXzc@j;3}5e>jd&!tYg5tYUbke|KXdm-|W1((SZ*u4+^3-08O#U -z{5DMvuk#MckbLIbgA+XL)$%Rfr0C9h=8Vn&H%(BJzl0v&qtv7EimLZ=KF2ET2-^>4 -zUzP6Nf9$4)6F0>kd3cRR2-%-`2eCDZ;UwN2k9IPvlx+HpZ$dw$uO`BL+ebm^I35{78qa#`8fJ)y7jsBBws!4N1^w|t{w -za&m10LL~%wrVmZ0lPPWg5k1h|u0lG=(Fn$#-u~=zq1;`Ck&>exR4p3*>wb4mk<;wUR%?{*y5e|7g6tz -zwp8`LU=s8@Cpl_sO6yhDenEQdc}AT?H~BI>Xow!c^PiQirhi^OUUf-3Tr~@^Xc88T -z{P5=cuKF#vC8^EQflGM0jJWH<1-*fC#TNSH%MM3X&p`aC%MWx0PP%YNgL%#^`JIWT -zhxOz$1vQ*6of2rS-$~;?l`fRVpt<~78HIa+`p>RrFMo(8vf3Qz#y5!o*@kZmGcCroX1Qd2 -zS#p4&#^~VV109^yLe7J=f387JTBMF#1|jyM -ztAJ8_*-we$pZgJ;*1>NdUjL-)_T;l>$zD`mzNW{KdecP3R*&6j?smFy@F+!dRVP8; -zM*UG^1jM+xtLcH~Tw-N+`jjW{_R_)L_br%1bbiIqR?dc;NRH8}NPQ48tsBxY)j@L3 -zzRkrh1}O-ip|WihZQn2#J&1U3xklE;CPgj--foWH(nZs9mrYa7zlM#JS98@n(X~H- -z$>SrmSVeQylttI9Z;cptVuua4dn>jjccm37W1I4||Bi?TF6{(rZ@cAIW -z)h08k0QTq4wtYu)p1G@J;>lylSH9%??Aq4++AQNJtiRbl3J`+%wEK6wrh&+`ZEK$K -zrHx#tL~rZ`GVE=w>No+-Qbi`PZw -z^$XhwUlN+YsMaS_n&C+WSjlBOO?dqa{ -zAaY!}Fm3Fyee;bn*R{bK?D77EV)b$OTxSpWfaH)gGm-%lFxfD{yYS*{OyZV0rmWJ$ -zlvSGlU0D^J1Ijo+Tie#eJVB8`E`X*20=J6YcBlA)7u1HpPmj+qctUS@5uO8GQ -z6mW{dLMaPUn;b -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 -zA{mA3y;An_ZNF5D0MBQT6!(Cea6n#y0P^- -zV&h=Yuf -zK1W8g-|0Ir_-B`iY}6*6+(#kB<&)!;d(fYm$y&|3=$DfsQ@{E0&u@(Hy!0+P)vV3Fu*fSP%3*H5JEPMmiwMFBaW224 -z|3b-ZaIZed%ep5mn|iDaFF(f@(*t}s#3YDWN}2|m%(WU3Val*`P+m&1!Y$W0V5uF*InH0j!m1GsXMm4{t1EQOz*xfv<8Syr0stcpDqe%9T)^!ClCl~+ -z8(cODQYLqvL9?wEA}yz)f+iwT;&x|?DQ`S^AxE(aa+uY-Lrrn+#@cqRd^+^nf-b~i9BN*}(FXvIJnoK|{8Ae`T|6*fBPUB7hBz0-SV -zxdH)kK@-fK%Fw*2e%5>xa(Kni?4-35U_WvG+6qyRSpd{qkQ{e^_>MchZ2bhXFG7yIbB%5Q-L6SISQ8RypugyW;OLhl5(2ZD-`k)O%e#$lO_@ul$H -zP40!gDudueaNUWWS#OG1unX+=+qkG9Xijnq#1j|aM(qnV(P*+r$v4T;c}g1q&xube -z!&9QIVVP)Yzpu$1U~yrQ85$;yYI(r*cUk$3$k$@2z*XY#oO|zE@LQo;!x4y840Dy> -z^dxE-lpsMe@^;KFR06Nd{OGrZz2eIrZgVp~0f!X?id_TGvVNcUuHtdeggT*3uQl8#53DUf;4ass^<_a_3O4ag3VkXIu? -z!MDDBY%hc0s>|)IRBuMr1;JaS4ltBN7-xC -zxU-tCXUq0%ezMfs(?!3tCQk1H9Pr2wDzWv5-AE&Lgx;D(K&_#Z#2?RCE^4(MQmTy| -z*x{eSw>xOxsb4Q&alPSV*~ewBu766Yjs9fNqmk=d9+C}4{JEpwyPEJxm1K0Q1&$Yy -z=tm%4TgFLT#^62ol`G5AQTNIsVcE&^2=Rigys8XLpA;$i_IC{FJb!gIA@rMb@TPhj -zTvR`#l@4iZMpoyIHSfPH=I+e)#9&Y#-Mv$yC-l~eQc3tVDYi8U%IGei&6hhu>iWD} -zK8NjhFe#SIne9JKFzQQWa{;vk9YeK}-@(bSOGS?Hm14vMp3?WzBi0#q*N1w-2>)k% -z)q&^TZCemh_Q7GAqk2dEw=&_3s;rZv@9Ro3;tF+v!@LU}bSs0JfZo{13X;sy*WtgCr@Rm%l9r*l?TK2nyB -z0jBlL>YG#y*@=?*3mBq%1yD6gR -zg7aaf;%^Krh|^vo66>Yw_0pO#hOsH4N`kBD*%~P-EaB4G8H|a6?bX5F3hgHdaaQ1K -z%r>QT7fwPn6Gl1L{JNDa#MAh{4XCkM4yE>lqHl~KxB+EQZ_G70E -zS0=&f;SJa^%h@rFr=9+0F5g`k^887njP&n&aCKTnzDOGnV~1*&u8qHS9dhvW^%WcX -zjsplQ=tz#1TCXAC_!o#fYmcdHZybDasBNI(QZjpt`2K#vaHJmU0vM-{+mE^lPIu!j -zSjZsedYRbwNG}9QD`R7CSn;2h!CPu_HP~Ak)dh-h%?v3rn)KJve-`?xQr>F?NTsJQ -z{)G&PX(ky_KBKNAtin(SZZogZ2&ioRA#PC3D+9hQ%%?=(%cnD+JhF+B`H`0#h$aR(|tnTnmgCDC?~l7?-wtY|nEKBwPcbVo~9h -zeFHn&6tQ{=*gE!1-!>D`WWvm!Neg#ov~_ -zsD+Ht(02pJ{JtP4w0UA50oS*Eb?petSy*krFOQw>R5%CYV%ENTrR&RWkCQ9$0^r|u -z3Gfnn_C~l7A{{>%)j0~n5WZ@Rklt;Xs899aE;+i>8qMqJDp>OAyHH7@HPXKNMr(+F -zI-uWoQtiU)+KC;&GmVX%`BoA166Oo2hLi41yRbVP9ZOIYFEY&pF5bnr@A5HN#$1cU -zw-rU%C+M~>z3bjx!`SWCp6PU>ZHjnBDW#zNvkNo0> -zBETH*ZnZl>gC1ItP0;Cmd&&`>PPq6k)180DLvCCOyvCxGd>N%}w*fHEKywN}<#(;4Jj<+s23*`o9g>{s`81-}kj) -z8b^={P)VW1eu@Z$4xW4C=ln*kei2TswqQM<#CLkT7rpVdm=wM`@4>CSJ(tIVcVj&d -zs-3?dX-?6j@q=M$T?@DX%rlJopPvijZ@NquDqe!U#M75}n;+FKi*Rq99aRdn*Y~%t -zpno@g15u5^#8EYf8Uc)G$w)BLEkKs%@n@N^NAn&^znKiJvA!7%7SsQqYV+T#JXTH5 -z#jds8<9zsiA*VRB7WH`J9~=L6`?2&o+Xn0h4c`QprN85VR)Ec6#_dILhGM|&OPghb -zkw*Zf(IGL3;Hw%JM1cze1KA3E_!hiPUDR8_R@xz?LCYPr^34aRRuGf$ouH8lM|&S` -z09kqBPzp#8 -z9njTEj?yfc^n8|I6q$|1-@0TmVBq=H{bx7#mtbnH)A5z?e*V2^-L^*++5e -zPk{T@9!p0q5HRM~tCR;YI;9o7y+OYB4J=2BReaKZ#Bu*#m7H~}^-RIYaa!v2>a6R> -zOIQrYEUf&Ily9{%Mg^1S->2X|a}l;B4s25X+XWORup%wSPPIJ*PuJNewy)AR_UgxU -z-@koJZK~93ds1CadIS>ODakRRzw20YogGas;3@iMAE9-=0x?+vb+OU6I4@bWiz@5O -zOY-gfGz0eRKb)e;)IzHDqI2~P*Xh=*ZtSvq<)urw)jKk@5GClY9EskGE!4=z`WZ&h -zWw0I1dn!3H@}B&ER|jlV50+&zVv4 -zZVQN}uqTWp{k1mhI;`?x2$3@Kde=5VYk+Aq)c@-hERfVM%{tqU5y`Cf`R6+650UuV4^H^MD-X}7;sv_jq(nNDD)HP6a6sWEPsqoZmSw}m_UiNyf=fT -z>Btb9k(5NBe{OZ?@jFTlvR&ZflbF=%n7h4pwH_KTBA=<(jsIMMQe~K_0z?!b2i1R6 -zkUJ78el=I!fmiG(vPEnn%%INzQsR?NQmX8lMSl<8nOCXqawsonVVu?q!Wj*ay2El -z-P}qDJhltm@ng+R^UD3%vvDD`@xx>L*x@JIeey -zG40oa^_d_J5EGt{@tvuj-d5Ul1#46|g`LWo--Vb4Xxm?!yvD6oC66urI@gkkCb+!f -z;yZG653ta{PRK0<<|36^@EG4h=`_ZfYtP{+l_+OTtbSG4HUg7hmyUbpObZpZH*vbx9Rw{e2q%k8aW}V!b}HCv{GSss3oGVf1ACKl$v9LD -zYR&iKz&3|!bIG+#hFeql4^TU>r3(Jt^(GuzRWN1s-+dW6EWP?THKr4r5XAaR -zUJSq8Urr^0aVJc+cf9ucL8}N45sn6=3XLd=LmMCv)zwj|NLW@N7twBS-Lmp4k~*C; -zw#!#;Y^x%jl7vN(@CpQoc02`nC(IKQ-2akx*xhApn?d8eNbFKPy}c!;3r6YQ0?qX@ -z@%>r=;;(?u%)a6wIA&E+E3^ALw!{WspJV|%Sy*;eH?D5)5*?k0MUW$(jUR(gynD*>#k^opF6(#70GUkM6*zkA2t@) -z>40sQH$1#w=>Om&l|_wXco@6XF4=I0lAN3ROg#ggoYpvSk71NI -z{{4bLG01s-MIA~ZryB~gvM>+_W6@q5F*V4_>;9O;wsDzLoLM)j;fltRjW?Z%u?Mfb -zLm|*CPz2ct7@KSlcIsM}$_!eH;HP15VtCjsf@Xsh1_5@4so6qSxrklDm>EJ=UZ^QR -z5Gmym>*gC)!EO-hsRRZGS^0z+FWaTF$`m<)zXyZ6f?9Q_zcO(J$Ldq(l9R*YjF~64 -z$xc)ByqYmZuAeXl`u;bCkG1755uZv)z$@IlbumqI=JOk_#D!zVjv{cVq*2$$x!c3Yj-@flZO}($E@gB$ge2&kxRgiL^=IR**@AbiwV^bsP*z!^#czv0tt|Eg96n+9*03Yiru>t} -za>2%?p%%$zZJ1`eZ}oTHNe2&We7I3A_Z{08pTiQuZ%C)U@qH~x$=(TGUAO5Di040T -zD0V3ATLFUn_-rU^w}gSQYn87EaIu+^IvGz><+6&AXO+-pB!NqL-^RK+0Z7~h_gZT?`NT&>4P^B;K -z5jly>&993iD=vMp`Lz)j-Zn7qT4}Jk#>6>`&Dhxyc!a?WiqZ -z4ezBfM!7twsBg$YL#L?K(*#tQCh9a -z>{Qf1jt3vtR5#yMmWO;jKR+h1egCv*c)5YGr_h|Q+FrBP)n}- -z^C$So>%~vvT!Tkn1W*S3-e0FiMYpez_eu1A?n5^4mKUec#X)Uj)Vkv#;^;A~uo{`}f4P1!9dqvDA6BI2r6Z@a=NebRMJ{`7;MJF%j*J5xQ;kX&kX7h8iXo^V!p -zzdVa8_!a!D9#s8c`q+V61l+ZEk6VL>_Q7Umkm}}{+3EI$j2raLniOVk -z(pFRto-PR%F?{6qR?516gym}1mykJnUX{>sg@D&>UETwoXT7Dtks!X2KaUJ2D|Cml -z+j-_se;@AzSogS+8cPzwe|pg!07tNAttD$#_7aD7be*wInP=#m0t@(Ux;V?M!RpIa -zAE+~MmMItIQ}r#|c@Dv$1S1KHip6Sj$K~USI9eGlk(O)5`j3#o8!mUMbhRZ9AP0<# -z-*Kiqmv4T`U?2E}?R3GvE(Xw~qA7RfzEfi-qZwKrW{i!iVfZR6`NjO(jl9@XhEpvH -z3|sz~LwwYcxbwBhB7f8>r6d4*^!-R2=Rc491BY+?hJEQkqlfnGcoi?SCGaOWF=hK6 -zg35xIrNr3KhirlE8*Pd7_t%_Z2?!)Ot%!7$@;-38z9(svwm%%y<|VfqQ-hXz@>3QL -z*rIjk_%q=k-3&EIbVq;l2^F%rRz0qvu?wYz`uj#T3%6)QVCJFd7~d}O$4|CuN|_cjICl5BYcF2L>M^#?a?bFih)ZvhFZClEBO&@|Y3Xv4_v#P>b;Dfe0ob -z2tivs6l~_hG=Ae+v3a_SQ3+cIZQfC=Hm_=PY~(~fkN-Jo>-+*}%x-x#m+bh`-W#o6 -zIOG~yk~A_-yIdu@`En~R5J*n#Ty)oxq)|+!s@%ihyV+0r)O=Y&1g9h^AUC-FaGchB -z$&EoNRS -z{i3taozldYK?DIS;27Vt+iv%?rt(PNUh*@reFf%kVD;pKb6WCGsK#q&-bB-5G1?|| -zw3=`NYGnbS4!81v`4Wj=#xof@7Tiev -zxAtk5<0%w$&(cHfd^d6^$w0x=Iv1jFm0Twrxt|6cGST+`7I|#repDXZBa57K-h=R0 -zR0qNPG-xDf!YJ(Z^f4vSJBK6)I3BlrbLDLnS$oVNFJP1|k&qGu -z36Z50>DomFk(QPcrB*^fQlu571VkyRrCX5hP(YfcySuyd&V%3kdq4Mn-hbfPi8E*7 -zoH=u1<{M`#EvI0!lFB?y$iflkrTE3YquTk)aIa2U2cicNg`L3xAET9gQl>AxV~Fog -z;zEg|7bZY-RpxS%KcvSJW!jK*b-3#p;@NuHc|mhFnU&B?a(u!c -z_{F!iJZYbgzOGa}_{xiNF!azJuSD*Eao9fC$^Id}ge>}A3$ax)PVTwA8GY73%--0x -z=l0%KhZjOV`me92w!%E$t*pGUXQ~ZRpD*|>k!J{7@XEB@HT_en)17|l>ol?n>3))1 -z0x3gji;~JEl-(Zpt2r!O4T|2Zq+j6p-Jpvb%lyIr^vOnjCx+^yqu;kQ3jG9GCWVzA-Wfm0nf23 -zDLa>QWw@oDwm5N!-%6wiaL04u_CnmK)bN(c#odxMisWR*8d|tp*@rd7lCKa>hNL`wS}20;CM3*^EE1lzGndWR;iM5t+`Sm(Es@%xgasT$xXGI9oK -z%Pb*1Rifb)2YKrofE}9*r;0UV`&LtL7A7%5k$cSr3ZkQpCnm*F3DY$`A3y~9gEh5E -z;n!5#N>qt}FRiOp`B$cfT7_)B&K+R@0x9TYfg@W`fA{Udlb1q=zvVGiOomd|w$_Jv -z_3x&=O6UoJlrM8m9HrTtVzrL01S%eesQ}QL+CY{}Wvb*Y@mk-~-5RTMwK@uyd1ot) -zm#*M})fd}7;Gzqt!PZUU6PwpdCo8o!jotQ){hv=U6+sijsX6M){AWSe4fY;(?@NSn -z0lREv*pE`CpM#coJyswh^WCG@k#^4thf~+)$!!jy-6;Dkc!oImqRcdJgz%;;ije^7YK0P5(BN_DcAm{v#o9UsKTRUszo~z{*%H_9!87Cz?JxkD+&z#|EaO -z0i9E~qi01gP#rce8Tqd;Dj_-kxo_=h_zjXiK!E|@P}e{3C=P&|PqCxL=jfW_ReTTP -za`|xFz~JFRAguy}k)E&9=mBR43C~Z_no2_yh#1i+c3d&nBgr_dM)cdtMUeHg5QH@zmQ#seR-mUcfFDx>@BAc5#UT$;bKIr&4RfFy -zw68Sq?z=knYw8S%Ln3))-||kcOi_O*?>~j6L94RxTDgw!{?OlFq66RZ{z2iDoE6!) -zzIrkZIWrBVmITt~E`$m3AVT(jPf&UY^^da?L8B9w`<^C$g2b=^azKB&rdB%`AyBYr -za@&;?T$~^XHSMUs8__AFt*2(4J>{~a4i4sPY8OHGc~1+5cP_G4L@^_>ykV?PnX^5% -z477>+z3jSIMK&xfmEQ>b=@0fy{^{`^2Hel~g^`G;gG?)nPLAXd%Jfnos;Z`VB%7B$ -z)ZcyZ0-0Sn0bW&*1{bs*P`+ODHFj}h6C(@d=Mr`*Y@y+^cVeiqmf2%s;Wwh&@OONK -z8>edT3NykWFWs~V0yAJ$7j_<_i6_XdFY0pZdyFy~iZ~ -zApc(5K%@7kh66Qo+K-CG$OerB^~mm)kl3DRo4ZN|nJERHG|TCfR!d}s?r@X?XV;JN -z2d>;+F4Kp!y;=2dDYr;q(Iw~mnj1(FXq-?L;q#g~w{dA^GP_y03 -z+^euaUiLUriC(zfGdnnRFxJL~(^kuAIiq^&rDT1;1n@7)S?f_nu*3%M>jEowp-*tu -z8_Odk|H`}7+bQ@Nl(Vf?<6)8ZX> -z&mPx+uxmBa$5^vIu^`}`x7XK#EQOzsucs~uc^cO;#7a;<+&nD4KBbblqIUY@8XePN -z&&^U63{Qv5F1Jr~4u7OWj5h_(s-5CdKT0sqLPfHO=*!=Dy%jrGkQ=+ -zKTK1ozraAC#?$H6%a|N2jh_>qT$?7Tei$V!oKlV(gsc0}M$#B%CR7PxhteMiz@s6_ -zE80FYScHJ8;)+o4s=_ts-xfY&PtJul?cdMbVHWP@8*_8=_=&U -z7Lgnv{jL#n%~9j93Ycm`=QEN71n=luW6x&-n-&;@wgObqyn^c>m^;Gq%ZGMRWX02QE?9iYRrjd -zRk^`!C3)AtEx(}uucxfh#g7%gAQEuno9#3l4}N{UC~prfegJXHJPgea&0izcBWhDTWFGqUS{wp7myt4OlM7Af_3qcRxxEi93-zl{ocq#87pG9uj{^j3$ -zp)>!+cE!2b?>0E1fpKL1^=`o*n9tf&Wk{vlUN~|YA)fy7&;sEpz|l#zf7{~b&5ESk -z?YE&4sW6fu#NdgNyQlbj2z{zqgP)0{D>tiF!TV}zF*^)#_%~m}LW#b!N6*FII>Ef8 -zI1OQR%6JdrAeLKS3`kwL4$K~Zbs%jHHLbAIej|xp>8Gi)3(n7X+8j*zx%c{yN3uK% -z5+Kb6cW=K<&xLo8isNP2+a&xsvgq6a%jM;JFMMJAXT=gJIqN6ovq}r|(@q$6d$>aL -z%U|S`p1kZ;#ar+WQ6!xcu_#eFlf2-#tjtj7k$l!7ZknS(s~)3|1Ik}pn;m46`1qtW;5^$)c7{tX4lZ3>Z;OG2o_5?<(BFAATFUF#$5A(={kc{ -zc7b{oKv=>sV!nTr{uI*Qfa;U@Go=V1U5f6w=_s~$7Mk-kzLmsm4xMkyT1%{Vve&V+ -zQQw#I388-z?w|O#UzfCxl*sQUaK+0(ul3spkErvddijw{o5(1_(MXk)9+H4@^|6qg -zi2%q%#TT{O#OfyUxf(Njg|BD+P>Jl(q#sDFfVA&fNozHn(LOM03hrL?FOj0< -zYBXmOo0!x@{CI=~;x|+qTI6fv4`Y?q*6%a1eCOl3Ewbj6wct1{LVn$ky)DXd4nwGf -zi3MRavPLSz74P3rnU78WgS;?a=8Gr@Co7M#-r9HtdxHb?3=EDn3}?C)RI!(ksF>02 -zmuWEaF$L2K9Q6+v%|{fI&nsPgquIgwE5Ep7@aDLBg~0-Hk25(9d54kwvC^P*4%`Dx -zb`o-isc3I^&(%#)CG@c<@WQ-oei3VtGvAw9i#e;?fDdF3{oWFh?mNgkwva!Y$&bLb -zB(LbhJGt+kENAgzvS0yTwX)QZiVJHh!bct{HPq!vdF!19H|l#5Zx_`gWEe8xmg -zLLL!nTfhMsEq0aA@!7B}#Z)QxtXm30qG&a1UE9A7$8Awp8mtdQ=@j^AQxf(`c^%g2l036A;|vM$;|a=ILlp*1q8`+FLrg) -zvTgr}x`LdJWOx&6}2X3YpOq}=@~?&~3w0^MOTrmJ}HWq*iXHg^^>K76)c -zD&3`kz9Q^1vVuu&9`<`fK`@|UO_5+jJYagc!p(fDjJ^Z1d+b>7t>@dF?@N}RAh{uR -z0T|YzJe9A0-ZIj;D!^$D^r{qp;O!qbi#vyPHCMl3pL!75dK+CCP^bzRjsji`YS4XNpzjXvnRvw^1sM3& -z(A0Z$60s^oX8iX6+HLGJfLZzpuWpmfEh8E^(C%<2^M+UPE!~*ghyx%?0#L)aPC~EQ -zUE^8pNY_9^i}X8x=5G*0Un%c8nf)}{9IK#Z1iD@>{%A3W4lYP``Vvbe%$8*Pptm`O -zw;NIv#oI4ABTEoM9MGK4iTdVxIQMxp5kufc49VV9>uzc1Npp&x)*Lygeq*aJ0}@Vfp*>$ -zSC6%zo2AIDQrOzQZN+O~!#q5b@b{}=fV|Xr*jx=qmh)~M(}e7aaw>zMm2yBdwNdgr -z%6hm6WBx+;0zNQM7FhCeR1l*MlkQ+oBKA`^CB}jF%zqJoqUV5KK*fF+T2l49>fDd5 -zWM|pKjh7-!3s7r^k1l1TU{GkJ-$3kQ?TDUN`rRe}ps_=wC$$twD34#c{oBQD>sn&K -zw%MQMf>+XCi;+^--pU8jlli#j7rl;WEoHc0joDG-QP=0f8iuId5>y8G;*Zv_!ind( -z0+-@@?(I>MaM%dB&upfy;Mmf(YEvhg9EHEQBh`^FWiJ}QYyhNU1I=*ogvF_Spw5|` -zoP)M$4qTTYp{zK -zBMiNoxMKDLwEB+iZ33afaj9ImECmMz`Y!J-9a3F*UDLRL%OhvtFNH=k`)6Z}pU+uB -zj(Ht4Kl-&tqn~Nqt@s;|OYHYmbyw^175YVrfZIe(6-Bp~AB$+5*3xXu>L$g^SjW{D_+72P;T^+i-B -z(7Gao!i#>GHw|_1D{i|FeCzOnqu;nb5PL-n^c6j{#wS;meIQoFH_rafFNz3IXQN4= -zgiWQakk6)g5NYXSOqIFvsI0=YNgK!(1h$eA_++WgQd`-snlA8KFi@;6)n)|_iJ^-| -zI~MfXFCsk7i-^*JQX(R-Wvy1t1)Zj+S`L()q4P#|rGMAw7%I`EKuxXM-Z-~qD3jA} -z0dyjZMvut%9Vj1p0`g&YSeb0#-4U -zS}XeAS(tAur{pQvo)st7o$jqKSXNvKx<)(KJTG5d?GgHlqnoqcZ63M9X$+9Mv#pVm -z(;*pEf-C}jz>e=tZQi^SL-kRckUVIwBrx+s>W$K;Mtx9RZqA9UUW!_in%o+TKPc?T -zr>XyY;O_eaphg4SU_YcJzD&*5@Ru%#cnJ;6lnI&dFP_*tfnpY$8wKnv-0Yo)?VDdg -zQaKI9T?#^tM7u$e3wN7@Cm^gxU-6wd_X6YMVG`i{puA6Ma(t=V-afs%xCJ29z?NDD -z6U$SpNW-q#X{WwA3Kp8)Whb}G0b%8P95%ARozRZYg(dbw5fZw4p*-prEZW~f*5Sws -zijriXHd=YLGFaju+2sVHcGitfj(@^{Neslo=qsjA(m`IIgN=Km6mNlRdy-dR%lR^4 -zHWV!sADB5}NPW>OjBdY}hqPn*G~XvLOJLA#LSSsnYiaghoCs||ftBi)%{1f?|D3Cc -z8Y||^@Z70_LXW_&VC$(z8r{(LY@p~yA0J`n{TbCZ#iqa9s4VffcSLd(5Wd|+hZ7OhD%F>_1UzP>~WEc2toiGy| -z&RphMViI)e!0nPL)OX>o7S(l-!>C$dk9GY|PY>r5y0RM~}g -zlo;pj0a4i(JNRUiPA*d9)jdrzTp~m+x!c -zSN!RuO&%=RFgEN1mvGzxz8}BzNakSegn{6uhzqf_(|s-ZSU+m%X5{=di63-91fTJQ -zgOrcoZRuv(-c`c>4eA6UxQ`5oFm8|PqL>D8)6=`sD1-9XL-N8uz1=cOK4^vAvM8%% -zU?dBrG4A0fra{<@(9e$7KP!O;;Lxpq-AsFTNYwkEIUyM=( -z(F2j{670au{Rb@~#zNsZc}+FjLxsTMG5|dDQXU?-6kS@XvAvj~T?AYgch0O5TN<sEg*5* -zsb;{g?%~>Ll_`Oh>{OrMuHxB-*Dy#z*fmkV?|o6!wRYy>0i7VR;u(>72$xkz7z)eK -z7kIVcAN6Jh95vCqy*Ald1D?2em#%Z0KtKVmUC2rs%i6s9L|3RDstq~A{CpqCY2krb -z=mzLCUDYZxjZCU!Yy|~CcRTpEzurv62LfXG(#(%{8-VCQwMisP5~M$nK=>A$raZ7* -zy=T3rwYUCzxd*65T|AVjW6V;xTCKs;H{e&WAzEA5nh_f1W-b~Abc5SEWi_RE>7k?EvwLtg3=!6Hlkq0TQ_DcgzIQ#VRkIwQ&2nTRc -zM%m~?mmbS61SX&UOW*kMOAILsA|z(pJD!<+iQcKA1OWxiZNSk2SFq@>9iKtuNdfa^!}@rOjn2Z3A(pu;<( -zn(sD{UtK05CbIzD7K9ZZC?>EGPcIB{=DVCU=j?t^6y97sW01CFT&+DYo`MjjV@=y0 -z$PpEM@*y@G{m-F^Zk9xJEJvd!p)HyD@T}~k^JxG7YLqX17Oepj1OOG@<3imCA2FRz -z2Zql7FRxQ!{cM1CI{eXh@OG_|G)w1#e5RSFZ=^PXW$jdjaFe8Id-9M1xF>& -z2Z!RYHuHH+!FYx$2xU_Vgoc)t`yE}2QO+kENc`O-`YvzD~utKAQi&tZtF2Mu8&sk@X4tooYhJQB?FjOU~4*JJvfO -z#HQ6`X6VhU{Jf<;FFzLY!jpUw1f*i7{d@LyS<-(=O4_5J$d$&bM?7FywKN%@Jk^dS -zROM^nZ}rnMTcPVrNg55T<(_6DplU?euq4LJ8mBKk!g*En9|NdwP!DWFW~8W*`ux&2d0I@!rAhti$)n>44*p^VjW3`E+F$B -zj>>wLkvg7Z!c}vQhw&2!^)gCF&lnh|C{m*tD`N!Lcv&wxf;aGwq<<_RE8R@SBYNT4 -z)D!Yv7;x2;WB+91)AywFm;_T4EFCJ3Bx4hgk1QE7hmnA*8@Si-uaZ8fgEyV7wn%O4?eS6SB>V#gp?Me!u -zegceeBma=eONG+XgQR4Ki_IA7zFG&mTMLeh301VW;4&ly*pOLxeEYm(t_1KJIKv@a -z55$`7HJ_r`?*-tW?-t6vUKX&O>8*qL@`C0cbf{FYZG2|m@@MHl%P5U`UyZ}CO+wlR -z1!%0VdAEM>kwN6@>9MFE?UA%jJY)UfU>@Uf1rBKQ>2BfWgQ3w0Zv`-X9gG#ogLf#Gy$28FAR1)(DG4!%SW&HEJ<8B3!^4Sd&gsf^fA -zoT^~(0>U}6YJ#0>^Kb~JbovX}KdnwBf5X6($bPC?e3-1zFN=lqHG@Sa{KrNjs}#oL -zZ(Lb3%i#)RhTa&TSv52=c}yl7!LnWod8XQLcoYdA+P#0>_EuujN(o(GP#ne#i>Ai7 -z=3`HFiaPm#LiSJD2%(0%1TXK(=!6|;PnvjRw5mqSaCp2$ndW%eQJSbeB6A-YO9V68 -zl0B9LUtK0_>=TW{0@*S5ZEK^SB)Wf9jw0} -zNh`z+ci;ekMst$G>p<*5C5U7aG9JO=F1Ru`?*fvM3E&s5hgu>)}~B2Deuhr -z8~4s-m^@)JXj)Yx^#gM%SfXFqvx)*Er`>LTytp;tsc=~k5%1&N3oUMrtPe2*%t>Xm -zo74!RBOhti{>oXLw{P!CT~+GSiT$8RRtH-#Q5D-v(RK%jG00Hq>)mz9btQR(jbc~V -zcy)WHmkXl9nxvH-uE#68G4MohsOjTXar~Eb056MxtZJhLh{k0CvTAB4VRBc*pRqGo -z@XJtp2APAnBIBf1!`-99_rQ(SontYN`oBWDw@ib(ok?)`uNyVN@J2Sc9Xab}Zp -z0|C<*TZ5foocUCmCtW -z&1!sAXj#fVTPw&Lq9Y{3lhT-rausl9;`YiY2^o&XXHxQdjVb-pz1_t>URfsC*s7&c~Yjh~akIlpmg4POA3 -z2!4LD+2^DB8K6qd_%C}s#+d5ZJ;58|lV7>Au>9sL-Ia2}w_UKn9C;^MlzNsqeZq7m -z&jT~e-j-B!?axZgEZL<1wCGf+Q?bkAkW7=>Ox%D$$@F_Kp!vUTa)A{9uqZaBbDA8I -z5YaWOI%Md@f}l(IDgT^QV(3lgQ-Kx?S5{Ko(&dPEH?hNIv-0yP3OgCiShk3rdaAAI -zQ`vvZ?Lbe{p>OLfXABFKk&uxTh!zhPchLrU%~YDFU#oZqJzc5eg~5vO(O1QN>+Ry& -zP=W?s0cCY_2X1X%C!^g&3xc&|8jvMWS(QzA^);@e-_?$gduhVGMVOdmfqpF!v{kgi -zQCLt1^9kTw3a>xeza8MYN&+!?8LHbs8?+q^|6r`I4%)a|gLfz?9s%;1R$kj-C?CJ5 -z$n>WM`&$xcMfLoNPH`QqwSav)vfIdZl}rWQdR4gJW1iw~qes_-ApTXGwF?q-{xGK` -zT(GZY5Z#$^^@DQ!KXA*Z7k(anSdNA1_9#k*!$e0!zs+y|`2I#THlT9qm3H(S#QQ5! -zM5@}Y>gW@E#(@{gfe{Bx=1sacer=LC_`zwSYEfdkO_yTf2F;^6b!xSJFPy8zpa}=A -z8YZ*+HO -zET5VX3;>vbX%o!+7uHX}aJx{aE^s9^)##0NRf29j+bx6%PI63cr0?8@e%U`K8y)A| -zqlGw5H0out-JP+R+egwslo)B1F1rNV14Uyr<68K3#TU-k@24oJ1Q3(m+W11XCSrEX?v%54kD+=6UKeNc!MaO`*V@f?<6cS1WCwRyX*Ui -z&}r`zHZ*DyJZ$`w`1*cC=#iJQHIK*LZU@z;^94g#^btC+O^ZM@l!a^&TlHhqXX|Sm>>=keqVjeZ5vUczh+PwMYn5r -zVIP8(FLEUW{DgC8L~1!SCla0}CJ47nAnFJuEHfT_@9N8^S}825R9neP2x+K&I)%e2 -zME(^~h+ix5ujF75?OWFzVQO_|dN6*5r#RoD!k4>>oaHzjcs8 -zJOgswaRb@ROXCvbrQ&224<)|)n9X|jlnOQKYQ3q1@7i=JT;jR=pc-qd{}9I7uwOHK -z>YYx!{#AEISYL#0PrqGyOLUi!rX)4w*(-V^Hm5TEbw9xJ>QAN=|%JyS=$gERNVA33DUnd?#H_{UKIb`}Yflmiq`M(G=*8DNYL=L+-n8kh|?{DzuS!dj0K+HOyFK*bDc&XpSwt|ax -zqD4j+59ZV~yE=dVdNN|Vs?)x>AEu43`IwX`gMqOX5YkX8a`ok`Yyc0|jk0&2a?Cc_DC#G!x@`g-x -z6qdFCk4>-DEul8GuwWA!zfK;j-!!`^{z?|LY63T__`P>=MJzj6t-1yHWV2m%jS{j_ -zoEbek&wYo-~S<)yBf<`eVf~S-)9>jTw7Suj%k?)x9+ahk(i927}?G -z6^Hw6eZV6Ib{yT%HK%wD*D{{h1aEE+atSSf?j;}q0K-IMtkRaj?S5K@x;FrZD8UIU!ITgSgJEfK9Sk&176}?}5nlgOp0U6T -zM809M8eghkBm2C#SnRST!JDFfZP8#a?%sABW!1p|JQ1X&jF4WKhk#A7d0<=8hM?Xt -z0?2rYp|#nyGVM=7(eW;wahv*0sn)>T9-cdg;pkxyok -ze^+mQl{ptVlYkg5csw{~Ku9L#xnt_fxd~2dCwD>_(%8acb?|_I?DS5uS`q_u -zFI@n4lqVX8AOX=>P%kb8l@BoSor|Aj%~SaIO+#RP)+3vM*qJlmc0ftwN2`<`9&g2S -zX*3|u$S%Pkfrj=!>QJ3Z0x*E&R -zl_xki`l;h6Z{Mor1P6?nGmFN3m(dNWBwfB1ZU0B^&GbKsUkWE#=*2wissuWU|SevYGO<{D_lRUD)0&@UkTte{2G#a -zsF!ZNM91dq5=3Oxp*gaKWc|`o*`0hZBV!j+&%PfPv&6PWWg*=+Ht#Ku1^ZPjHZo?m -zsqu8FlRlgOt+Lb-QE_?82Z?K>)_=-Hym$M17H%^{bYrV&pro#4o7-nDEryb5y&!`$3B0M~sCiRO>Gif`m`s -zG(HPTVeo{dJjlVs5<#(szq(E)wZxi9Z0Utj!X{_>92@5upB!gB5z~Ssnnit&f{aLt -zpd`@3s|#aBnA%?G>Tk)_Uu(<;8}5ZMOuxzJ?dAAnwfRwn*wEiy3?>f~zC*W13Ug6{ -zQdO7@A>0cDP!a-TMwZ$hiwsc^#qV|G-&k~gi%`=Z^}A+dAul;8^$*EMHv_9%3G`WM -zY7@^E-ev2ZBONNG+<2TNd45Zac!y_1pAs*e7kEa@AwN?_Uzf9SO|5g4^ZA-JLtu5kxu@tQgE;;W$L|=@nshm6P -zty$l{Ym4!2g*-DZ@dU#Ulr8t;Sa_}`k1dfDv`MKk(R<SPLWJKciF7VA<#a4}g@xp-om -zpImtgm9`?v&G7x+(vv?eFJ&(keJGC7GsPIYPco7*>J+9gMh<=JN(%Nvu`YBJaN0lR -zw+H*u{0ylubx(QCkPa~R43MsCaq_IK&uU)V1asv%a0B!7M1XRrttK+bQej)W50n%6Ea>{6?}K{{}PTe9HsvhW&Gh)Xc|jjy~ooCIzA8=La^9| -zR;0WavZDS4^x>yC;~SATIV$FrmH_UC2SZ{nCc|J(&4+iNpjK~C -zG^MXsJqxWeYpvqkc7@_KGr_NIVuaeHG_sDhc$n?^?9(efJe8l`z3r?q+njSt&wOrn -z3qzHXE9q7Kz^YAR^lJGBy~kfCyfHcl1HQj%Y*#rwbAK^o7g<|x!Q}AGC!0!HPvDoJ -z+@F3rpwf}MkvjlXI11lvi}47UR6#bN%g5hX^?zalO%3a`#dWf}H>`x(fG%fP$S1Tg -zUU`K-^(h5~=D%JQ0*9QdLNL~E!vLVl(<^{(k63;H2teQQKo1)S9DPhm@POd|4?ODs -zU-Jq)oLR0+7b^P?v;P4Cm|+oIb4%i$=5%@bh9<9K&*{f1RTMY|hS~P}auG)kn-UL3 -zmMj0fN^!glkA5i8e%G95i%`3W6OqD$&HzW)Tvi!D_f^a40eF6O6$vR4%Ds^k8J#ej -zx5gxVaDL%~3!j!(*H8)j9nXtO|Fju18b^1{?NRhxpP^ZGpX>Fu)3=_+g)bsO51YTo -z_ViyCUsx#TDu9EN{;TH^8{exSb-+z|?uEd6@-LgU?5^ikd;$p9!gYwHS&gg2?C=YXWnZc7Yx3ZMlt=!sHYBnzto)*C((q!?IbO_eG5_=P<2n -z0~KTI5c8ZZz1z2m#Hj{hTPo%9J9vxwBM8?ilwG(|e3CQ(6 -z(`lRw4lTJ8_9B>NV*01+iNq8TH`Dxf8)ho{a%3ZL;aS-^i}|6bQF`gW3>pz^v6{eN -zvx`e;>$g~!l-aC2nM9&bPji1I+9pP&d)*As186jI${C_OT)L&U*;r@g44ZQRUo(Pw -z2>UID3HUAe)EmX**=;215D@d%K9SIQu)4$AXUK=H5KBx0c;H%GPcSiB=N-E=@spovFs-tB( -zsoZ)3Uh?SLAUR5Zes}q;5QF!-hlzVyOV6I+)KVR2jm=yQ#QWGjFU#b=A6AB9_dd0s -zT&2aAxZcR2p1S(pSmhsJ5YB4+6G!vkcr5M{3Ob$q-34WbsXJt8Y>9s#hwXvxzUc;R -zye(@hb-ay+mpX!I@pV{lWyb+I??e&5T_9k;5^dbs_M)n%TvhE{Yx82An3t5uA8!^u -z55!pWL_bdalQ+e>tHfPW`)t=Xh~fyzHJPUXH1zIu8SB?S$?#`eLbI)7CVFWa*og5- -zEiqw_c9Mf(uqd1m8h;(L{v+z -z|Cn>z#PySG?)ZT#1SIoRO83#c4r=D^Bv-Z6Mcf~%-i_wy7DPddrSn0Xd5d_!`Bu`S -zMVhe4Ln5%w-bUysIrgX)S3fQKeUCrTQXGMCxt6lqoez(B{P4Z|2^HK~UNQB?Y9Weu -z@euO}35yHiwZ-#uqnSLiIE4DqSZ?9?ScD_FTY>LBrvSAOW!SOfr)sX;Qvh5icjR+S -z&`M$Ai9``M)%p&X1I@}tj@sr57!v@fv&ofc@%UZsU&6D(@13$^VGNDZZaTOI_S$2_ -zClGA$Ww)>rlo*Mlo*Ebi*JU>c -zyeH0BA4c|xLUf|OI?sN}4sLtA}>}_kj -zptA7;FcqSWEQLD{Agfi6V()T~x6+GFHB -zCzayz6&WHYB^fr?8oLaSbxix9DLF8h$6H)na{q(0(3vl(e4My*@-G=vnfLXiK@1E+ -zvv4zQbX1=az{C|4_>T}0nFTi-u&&$>DPg;*9F37j26Q&>-+zDx>U2ZYuwsEZFFbE4 -z&C}~&ip-_JZ^c)9f;#IYSGB6(>0Kk!rWACOwQi8;0xFRs1-_@J$RW`&HdCm_{rluG -zD0Q^W`vK%IT6hbcXayIWify-iV=U%)h-?1Zt=ptS7AgqD%ecvVJIjNX({Y)ZT~1u_ -zvp5%`Kq!3oclxuLVtee7@_oi?Z%+~+0Y(IyYJY5@S|WPaeCufOnIqf?LC0V#gb9l? -zJ8f*T2g}Fz!8v){xeif+F-KakcFfz~74ci&CX447&-8tF@BrK{#t!my5)p&COyOAj -zh}^~MMO0C`?w9XE6Wso=D%VZ9-Y{kBEnc(L>Z&h*Z#+ZQ -zjOW959nv<1r*aZ}-9LO^`xBNr>ly-z-##evR36%3)#S_Ljs;q#hos_4=(V1(!3_$i -zY^n?wS3z%0v&VU?aIhJaot-gmj+|>(nmBD0KjCoKx}?8#Rm(APobYDgRHa$vY#jOI -zhR$wx1_tuevEN_5kfmGVC}GAR*9&t^kg)J(G&Hv=xx07dCp(>NGG;8*LNZ^Gt8ATE -z;7gZ&xY_R4ZmdqC-B7|^v!2qJReqbQ5T2TGGMDzr<^&MulP#PwH8|&PG*C&oUK8rC=zqX(>g-SXi -z28<}^&efOjTV*5n&&N;6?k!JkUqC@$nXkt8pp)&e0w2V^7HH7#TXlR55Ke6 -z!?CV@>Y_?7nAd(Z)^Cz5UV%CRT9ot0LxthXZP11aH7c@s{y4t$^j~&`r&G`bJ$G%a95@Op#FLmXArZo+?cpU$#6EPR|@ii0Xcx$aJhGz;IPWeH -zpQ+OWY}Ls-|5}S^-e~~X)1v@b!_1O>v>haGH6fqQrU-c5Yb8B?FgvgjgaL7Nx6gqm -z^!Sq_pCCLyg|u4>d4uSM)0`LA=2-%rH8j~7l%K)URjjbdDe&Aq*>iJ0^_k+_c4oXQ$<%Hc;Dj6?7; -z_}FF4U?Lm?v*^BfNF}=b^b9B#J7F!e7w+y8i -zD=uT$S6Bn94pd_2#0Lw`+%g-VN!oZ~NvN(eVkWsU}6 -z3m7b;MlXi^iODFunv0|4#6z_y_#sc6Lb)Jo3~8RgAB2xE{i3ONUF=_9XUclsZuLI> -zI#iNIFckX_mS2+QvByR;9YX~!*)aXC(MB^y{vyR2r`v~fW1;v-_+*;gW`bCN^2sXTOs`&-03FhZ -z({$m@?7sRqjC>M3nEkgAUBQx(`buh);M#T~T -zoCW9;44SM3Fb}J@8JPjg`Kv6Q_9{50+n<4=C|Yo89s-T)2b+7V4CzwyhZyTlQI!1G -z_^)Dav)kRk25bfT?SukVEp^)4p{iQLP3<-$pk!;7Tl53bG+g+r?3`9P*08!z$l2qk -z?aplNy=@7|yFss$?>sU!9`*6Hw@T44^{zt<+xoX3P^pfRC?QC}4)505;@!a$Z?h_` -zgN<-b$e3jASU@#vLgWY{3edoQoWwKPw8s@(GjBg}G$Rh?juwRCp1% -z5_N0-ihAW>G6crXprldays`oYr7b8Du3VYS%s(4WVmj11-AIWjjEJ#h7P0!<%eqwi389lV!j4S8I-b*LnXK9B_+wdznQ -z5ZwXxUw^S^)Zee&?dAZ#<7iaxgsitu!Ii1y%*`{%h|J}25k5RL@A&wlJR;@}=@pQW -z8HHU_W9?^SEU{nD(L3`;(2#@Hw=at>=`O=9CYdF;NkgaE{(<4HH!l|{8(>V8{Pjy^ -z9(Ck=4g9;uoPXV7#6$&l`g08xB_AbAYU+46d2I^ -zy3aDgXqEbXMtA*l$s2Z~knnevJWksJyn#5%xFT&cE|iqphpe_1b(xojvB>@SI&%!9 -zPE|dYL#YVQ6nCKWbFU3*f0ukKZZZ&+R4sb@q -z{y*RLSg{|DUz>f`$a^{!i<$lsPPfdM_dIr%9-LfugoPA&v#Fp1=iTF5amhKN(fsxU -zWePx)$;8?1wmjaGQSolJe3o7B}d@rX_drSA>6&f1!{C5*XM$jq6YA -z`U7x)1d?-Rne&iy8kMMJ>P@Gxqb8rUe^lwKvVjiBF40=E>m;pjhMulWWGBjIM4E}l%_=qc9Fidxdt}3y)fd#e{x9R=DVHm -zj9>+kcSv= -zTLvg!v@?h@d4-!;65SJPFh@W2!e|Zs$)V`zXDf-djR#kiRev2p!WZW{1p{k6Bbh^A -zirZKcA0iSZW)EM)=z)RvgL`f*x1a?NfT%pgDa~nu7JnBdoX2TrvM#C|6l)7Q{E*QzBLQUUg*eOu -z;!}O7ezQ{M2_OxSN<7Yz4j6s&Amxnn(c9_MhRjKQi2A_@3HyDtT;&HXK?7$zzdFkY -z=nBk%0D&QGh}4&>^rpPci@u_RFY{(D$B-u{s7B~FIN6iYRy-zw2N_<~kH)FJb>T3< -zJ6E})1PaRZf=sWpc^P^dr(489g(FZx1v8=i1D)uhGUj9{a1Qj0fO} -z2M84pzXbunE1?ynGB*q*_DC3MP+VI@9k)Uok3h&!jmjKU1f&-|oPEdB8hNaH32}e+ -z&O0S%8|D<;9d4HyR}6{hxQi+`^HQ&we|zy_ZQTCfU`!IgH)~DZEA`ttgn@tuu{*Hl -zjrqqRs20(G+JRXdtOr)RVnSPcs8b%d^EbQmIo#}_wUEML<@9Gs_A%v=w4lxO5U;Wq -z^u@S`t-smuuVL(i8|Gv@USDeno`f;8{T?_i#=tvJPt6o*nM?%q<|i@UqKw@}=@ -zcyV|4lc)Xd&))xi&bjx#xUYCtRx&f0Op?jWH>~jv$W}@c{%Z^??nX~d=~VL)f(L|@ -zc!tn(;j-=X1N|2!8@3CjJjPO7j4?uhS}Hwc60da67QXy82lEUaSe#Y;5%uMCAJ@iH -z07sJy8TuSY(Ivv5M;gWrHnC{Q0lm}{CI`a=TV16G06$LQGmvzvVa56D#|G&5a%r1` -zp+7kd$Ps2U)h+y|e8Gpy+4#@aIZWmV-Od!C$M)gOIBg3bScJ>ZsYAP6ZiTA-3V&2% -zFLZ2q$v-R0CdS<3S?Aa}k>#id>%9f9aD|!UtIE@W{kB)htb~~_1b~f-kfPWg+FbLn -zGODsLjhh(8jsDgRjvNcKq)sT(Pe1Yq=C9?4*RUs?86Ks)tNgaf>p6Ay7L!WxSp&V4 -z9iom-0G_;n;u8B}X5$t`92E4oEDhYBCDm++f})dpr?N0`ieaxcBP2)4=&A|Pg}8%^ -zgGyo>MkX-;O(iusD6PpCzsD$^;kSz7kyRb!NS$_V4CqxqM#9b{qy=)<@X}C8$Kv~ -zE^J|~!yIRLa)OGVvu$AR3nE`wW_|86ec@65Ziyyc(BX9!yRHS-*!h}S#akgS+WdF} -zIr^_w&Kg(%aiS_qc&$_M&JzJcMaXN%NaA!*c=vPOAb_X%1{KUG*>%)ZB6PJuW%xWi -zQI&nGpzXem*zao8pjo<}>oHoRC^JTVKK;u30lOeRM23<^ak`%z^(+r-PA3)Jd1Wk& -z&3JW;EVuWeW?VM=qpq5DP`!_h%xE~X=mi5rijSf1(Z -z8{Nk0tdBp3xLT4jVpylSe8e19G`^c8**6?i+YAlYd6GWRbHyM#bnkuLD@P~6l_uWXfm)62hzsMG^jqS^1QDPX7hvxhulc*57(}p-Q@P;cQt!= -zna<9&oCru;3KiNridcFLv;bB)HxVJjPWSB4dYLoh@F^yG9BISE>!s0$52u_vZ54S@ -z$p|>NZ*&xt@dIS^NTPVrx~<-6Q1>ktAud{?!W%nXm<0G&`g*q_(xt`%+T -znZ=0GUryRN$DcNM^^AvcO{FC-M=?uBaKOtEf*%SMv)aS5h_$LYD;RD>VlCX2fWLW5 -z5;@nn)UJM;@tdtbv|*88QpoG3^7)?47;3Nx?}tQt7b>HI>{dPe;5>BQ+bf#2UUv&` -zlJgjYa#l>nlQe)g2;2!aC_ilVT7#F+!=O4U)8BwbK9zW>#B-wnmfAX+v7&4K?~6<2=mL#5+J{ma -zuNZS&Ym6<$7TK`UqS~g1GWHfsyy4Z9bJgwaU-GrCMh#w$-$Q|LN}p1;`fhhh+*WcJge&W^n+lgObC)60Iq1>CE>=OI6`DzwHXo7n+Y5QFqk}#Tk=}*=jiYI@# -z8ncvL9+1{`;8pR|xq9gM{yIfcFI2bq^@DD26$Y&q;cw!HAVHXbC4fkNb -z{BgU})lq)*Dr9|2`@97_!R^UfIUiBk`dijz0DUgdwKRWrNJ(Uv_X{yN4HP8k?)Nj{ -zsTrz+9UXgn(hORlv`MU$;jaBo80_j1JCo&<7tvQ$AS96~Rkm^abMZ}APa!AdMu}7z -z?gvk%MK=V{0h)?nd7TmGsCvXHwLk}9I -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 -zh%B9nvDgci3Mc -zJEV%pCcG~=T{dzz&0*ina!%HYq)TyxIu|isjK;=3hgHfNevP`5+AjQJ(co43HytTd -zVq_;CjM)d2eQw3iM&nYsDTc%gYH?FqZ@zRc%Td>`Pg5i6tqJg0WS(J{O#kRLgrSa- -zBhy7+#`o{Ws6y#5t=m-_>=U_KSSzH4#_r9<_%uo3V{7f6h;uFf4DyWFvThbc7@ja} -z#P!<#w@DK}yl2<)7g6R(svlWy5RN9fup^gEKB$f6@UFkASBH(E#4F8%aK*l=eRs`{ -z6wz-D)kScBtRO2HYZScA2;AxXbR^lsC)eU85&ASr?kxwapRZenOIsVK;C8}c))iiz -z2VfgHAj|S`R*FA*wI<@H8zS2Yu4~uf4b<2j-Z61K6wuWhliUEC*;vlVGD*+sIq8jx -z&W@l*(##g9Aoqzkcw&1I-pUbMV%^m_d0=1XQ=>2uq1jmpEht-C -zCJuIUcFJuFTB-jKU?By@c3-UE^}}lyErAJ`C{E6@>JmcQOtfBlx5lk~_wdz1){nL# -zrM0XRzGnT&t?6B{wYmgziXrz+yc5~e)xP`Q17BeQT7{o(Q20mIFJV1DAFeR<07I-6 -zpS#4i -ztJC~*_h9#GW;~`)?J&Wu*-p>q!K0I!ZaVoi9N&Cuv{SXWq)KwEzsS;iBs+VZulu=* -zM2f(-AjUP(hLv6wU;b*l`+LK6i-~U}DYvdiQhdhQ#WT6qn7JwLxGyEi)3(1d#E#(4 -zJy-~U3TSB8HP~GxHVjW5)3xbr^peZLt3#IDg=3d+ayRECRo|(Aa&}4UI|Q9^rSR>& -z`}dWA=Cw1K8}bWbi6ALsGmoExdzyj^VBvPsL7Mg7>jhe*SmTGvc^d+&D8SAIvpycS -z33^={l@MsUJsg`J&nZSavOQihPO&7O?%CVUAN_b?QVK*}r*YXXfAhB8z_>>)fKVgp -zqSLb}nCQN_&R6$@;11(~`Eh2!JWgDIwy#&Frd>GsUI1&7x{eO9ByH)?C9ayc5_`1d8f1kPMPWSo5Ta;wm|Hl -zjUUNlq|x6@CsFnKsZ-N+T0)5ra3Iyp9qRCj(x$hP)w6oY*IgWL_nTNh*bfva8AY{? -z=3X+4{agwdzs2SL{b^#`BN$F0^@PLf+ZXO68g2WIGx-?V-6Om3c(Y)*Lr%<#R`H7| -z8MWs@UbZnSnT-)G=TS4?;WkTFR$!M0H`-UHP8erqed@;50ZJV`m -zaA50AsM>i#r1%A8Uuf{VH*Q8MS7$BNw84T>FxW_`VmNYr# -z3~SvkqkVuj{+X+EDH{K6dgJdAK|M|_e<0CZY_|m;Q7Ge2J~M?%Xc>1DUZYPZYqjJ2 -zBW@w;LXp1%E9btJ{ch1-q!O$bxY0So((JWcYJbL^PM+y)0L|-Ak(wKwnv12jez`2A -z3?FjO=kL^g&eZ&6OM-ubMDCkEHZ$KfcVEPBGfr2>rg<@ct;Om6Z1aPR^O4#qDJbzo -z>M)x3i8ka3!S`eOvzz*#2xnuMU6rixaSX*jZf~|;j}YCOLt%jW?spEayUuRs~@9|aFVXR -z*_}Mx@e1K5tyS{!fsu|8D?VgO)7m>4bQ8N5*Ey3a{8C`(GI^Xw*|;@ened%Z=V4Ls -zQo0nAIzk0?rP+rK&BNpL<*2(VUQayo>kcdPMuoC2DpuJ{As%uC)S`~M6dlgmD#TLJ -zw*}~aDMp!@EZz}(&8{h=_oP~O@P|-=^lj=5_5RW@s!DFN -z#L^R$_Uvf6VIi{FhbmmsbTXKjPw{$)_P~mJA!OGf_AtgXfQE-bHf()MIuaV -zG(}3kb>7f_YJ)8dy4?y9>J)A!RaDM&!X9(YH5)P&S2%Q}>1@Ch=_eU4MIY-VT` -z%#quQ;u#mbIog#hlD?8a1GD~dbcb5-6(quSWlk<9;7(p0z+)Z`NtK30CH -zKBuz*SmWWOO(9emoMG9fTq^8p&gG{hyByB2o!zVLV--AjFN7kc->mIRrf29hBrG&@ -z_u@{0jXAQJf8p$jJv|I?UdTTwOqpTbn6Z{(z-UW;F6a;U+lmMeTHBxg9Ejo=#R%Dm -z3|wwe6|HVOck@ZXCLn%t0jnrOEl_n&AaDpj1CaBxEW=?C_h>HsX9JbmJfhR}q3_Z< -zsUb30IHT&)A~9E7EsS7kDW5&-h(z6(v=OiyT#E?b(Xz;8O?Q_Z<{RO=0M9|#N8O+g -zSkOdBGvz;4*T))7@Fnz&pu`2V^1Z{KE=`+h_?2I^6ia}`68mU7S28^pZp$0EU)~B+ -zTZA|HOWx^93W${aMA6of&|nLeg7)H%um8>dRx=a`NAsH)>O2F#HjEb1>uhg9C=V=T -zxn-jooro0dJFB!h6MP^7&Jk_njPoH**xT)zh~s*jGqA)zHn_|`Tx`_42npOI&G+1U -z8=Z3YM&3dvtbM8^yM!GRi)7|!i-Mc -zJX0z@Y^mzTW#lWYn^@>6u5!e|)y$4ifR`g8wt1#@d@IwumQL%6NWMm?TH*WB4|?0H -zQ|NUA6-!%hu1JL-%I8$I_wgET-&0QhitCE#Ey9YC$aMKg{%|w$zDZrl`ln0+|=a+J>a% -z*)+xF7*&H1Dh>Dut4wihLz4U#>Tg`G_o&Y5E}s3V$PdH*Lt1W-z`@A*Wxk<#h^809 -zIR9ZNu4UQkyJB&(hFc(ei)I)M -z$Vz&^P1rDZYaUb5ZGW3_t_b-2aM9Iy=?5l^?5Fn2BhC{iEaa|^p846c+0_lb@&{aE -z>_dU?-6+8B;#-SGEhmOgi;&a;_An@HGl^t2IcpY+ZqFKjSD_^WR{>NZ*iBO46xCOx -z<3qD&&$wf~*w~gP20g*dC1$`vi;6u88R`~YSF8I*rSBqzw0-?Rs1^{staM_%;b_)9BSn|uj;)xgr_ -zV#ss=xd~-(3k-QO%Mct8+apxW2ph`3!9R)nXAR1a^<=N96!gq@;CLg>bHn=iFh4wO -zLUJ43m0f|2codxcr};=`u(!9upYxVV;>)(6kk-j5NI@JsZ3IA#l<0oBpDolRY+7i_ -zPT2HbyKRxXuC?e?f0EF}ij>BZb6uRz&*v4WAE8Lbe!mTiRv) -zXlpd*m6RG2GISRb5BD;O@4 -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 -zkiuigF`#GR9<9+tjs%O6?`zbc{(2 -zRDi2Ld@H-sxa$R_OrgkUF*J!z -zeoKSgNLB5UJZkJklyhSbOowoY+>S8RuXFRw7-0+F!drw@e{KIgssM0Zg|%aj-85Y+ -z-?L0M#Bkg%!NyqX+PGEk-;cE*G!>?BIx+h@l(mR-@VCz=7;5Dzuk2te4J+6ARI9|N -z=}bnSYV1e*l=vO>2@9;TGYVc`%XfC5)ZKT&E0Q~dS05$?KhC!3&ufQByx!89bGV~x -z!U=6c2qG*GVsxEOT>f=DVyxiXzQE2u_7lHxD}_jW)e~Qi>DMSPNPNmTjP@#d;ixmg -ztT(|aW(WE;ZjIr$z<}&$>NdASi7ECt#i}z2;x|)Qc^$%s?O~2-5W-edVgnzM6p%mL -zQiCn=^?x#sL~JSLw^(yc4txg?R5eSjL&|bdVnB6p9!5zp!Vy1Jlh)PWg*7TbB~vfb -z+X>AWBdIh3y6VLbG9mZ~UxlD&18rs$r#-2?ZDcq)XW-_I25CePn$e85zd~~0v^{%A_dp4=V`4FNJoRu05=y+@48soEE -z6G@?0?P0{S3ZOg1bl**&u#Xm|R{=gi05-^|suYTMirU308RrF9swPx%4)|-cKuux? -zRUJ*Tk*ZuY(ft>|H+3+cH}&{7Payso>Do;7g;O!B@mz_i>nU6Du-fUF5r7oz&=w~= -zO`&rpn<*w>3JSAOS>-~G(BU-Hem`O23I#kctg-}W+7lOqj(+;nY%9Q`gajd+{Y{cq -zt3-*fuf?~z=G1B6%;6gx!78#c^xV8ac8x`{7XyR`Wc>wZL%xK#QkI3&i|;B>TT?f5mm0MLSh|-bY^A -zI~W_Z9Y``BvTKCis&V#mnab(l8+DrBfgw*^R_Bi(~908@5{q{Jcj- -zuY+6(L2!Jek)7UCJ){zZI^PN_j-oZX-bK9$ng{Zpn}_}VHimd)s+GU*vv%Wxg%4c1}9qYj1AFFne)~*B%T3 -zA{P{dNI*>tPO;I2#0@0iJ3cq; -z1`TLR@=U8uAk0v>L#4{O*3g60u-D8C)5^M-#Bz+cDMUrC+Gr*dg!bbX+9aF6Zco)p -z;O5Sk?42}n)y(iuvk7SMfZH_ -zUW#n94bgv}W;B-^(Sk#%diYDp;))8u-eUUdGhXvk+fJM~O_exFL!fZ5Q*R2b%;7&J -zF^IaH7=LvUNz`B{aAiAaW{Gu8fCfvDU-nM(J42I~gFlx|1fJ(4*iOA0&ARLL_J0Eb -z1luT|!zz}TY@+0B9mNKHHNn%XURC1*C%EcY1w6GpUYu#v${LtUzX{W`iJ>(uz?nvX -zRwd<@B3Q5H$}hN0(^zA$>m-^w;v=q+tl&gKxclUu(~)CX){jZ4w%_aG4j_|nDk})z -zmuG$d6kaeIAcQp|SopEsvpYRQt9ggIwe#S4CAN?7oN5t!bGZy%@wbeR3Aez9JYre+ -zp(pV6-u<4}3U}WGU;;iE0A@&L;YY1rO1-9Cb8>?QV1TF)fEwXfF`;*_xo{DR{20WV -zo9FYjZ~lBh6ABzn0Kv*~Ve?F1Qgb)Q2S|8`0|oB3iCP13<}UI6++a2#QW_clR)G1( -zjV1LM8cQQ1IDAx7h{Sv7Tu~o}@4|4W4?c6m%=F%lY83J{wNoIDWm&Ou`x5q}4|p#v -zGbiJS#Cv`si`VXwS60A#s)C8UbF7Iih4*W7`3h5zpiNHP_|?{nh!ZOXw$Y!#w^@cU -z3XSNCcTd6I+>~YJ(W#iAG+i*ZyI<8viBYWuda}ifol_Mt( -z3ad?Y#q%E1iEI0O`5{7O61|sr;f%wt%!z{kiD#N?TMIt9D!bUpOKLZNyA!E8{cQYD -zfPH>!kQ9o9RPM${Ei}u?v@2cEmX?fB&5|ml4OrvGyEoSt!ANB<<~lr-##twUPhbBj -zcw@YWeD-N6g@MoEl^6S;iV8lucxdi5x~M0m$fVbw$M45iaDfkjPwIl}Q(IP&4yC0{ -zed4k%^6nYBBni=Vz)#`K8gPXCgd=ux+(ecdz_PMjPui|>Wp(?5fWA}q;Y49e}^fQvVf$+&ux)NGauRtvx5#?3r -z6Rd+P@8$CCfwbK*aH>^{n7v&-ad~@5n3%M(5GlBAotC~l`D%tfVpcRX6<3MKR&9O~ -z>?<$@_Y@-mEP((7_2=Qm$n$iH5ZAr@VISJHEO_Nxl~7ll$c5iE%bL2Oe@kE$bBU_W -z%czsC5<+OO{xtKb41diY1ns(aLH|zyWo|a9krA1?crrJ1AF<%mc6s;z;jD3#~Q}Q3b))xE8g(yNAG@ -z-~$H~yes*6lC34Gc(&-lMuC!jf%a4YHv#O@)j}WAU|hc{L8$fRTr|mjaeGOTkN`+a -z?V~JTdl|os{*F+irr -z=u^Ac#?mw=vV$K$wJM4q*#!B9$cpG+jrBC`n9^K!{_tpTTbo4vTJSN~$bsZA%9N%p -zpYd?RVa5!gS~dGRjIVf;7(yJSB0Z;lB3V!=W+Gde!dHGUi}0|ijE=L<3EybpUEspo -zrep-AGP+ku>L2dH1j>f4Et~r3;c(0u^>(`X#yQ?CTD26^XvqnZ0xLxP<#4Y}TGlJ_g -z6~0~CE_-;T9lFc%vHhruvXLRr$MH$^UVWlEy8o2Xw4H!dmHmUr8~!$G{|-AGA;bc1wB -zci-9D?|IJso%1`-bMJlbKWyH2X4b^JW@gP=>$7HKprT5%`lRZG4n{^(vHRVdCL+=NSzs_3!?IZuA(ZLuYoh?~NVwBbfv(O6Tq6nHz6soJ1*G3Ey(beL -znoPC%3DT(K-Cl^6#P2U=oG<}PQw+w#o3t$K^zOJRJOKk>N4`xG(?&WnJ1mw*&yHaX -z{#)WVniO5B-Ygh6L^>65;6>V2lyTbf>*W5Y)V<(_H(9JGnp*y8m@Khe()~MdJjijb -zLijCw!%q#ShYY=v%gqWon$0XDqnKnfLJ;eZucJ4w%g-?OYz+m2SrxElUo&;l??>%Q -zO|7z~Qi_tf#xF57px -zGl_J37OkIGy55fv0UTipX}2<)L-qSF(*vFf?<28*)vjSni!}a;z=+%tGFb4yW6CDu -zjZ9^A6QhMUsVhtM-%Fpbo?<8CaScG3BE{95JNIlQaO+^Hrl_^Gb(Opfq5kp32^&}n -z*|Nuw4+wt=HI*p99^kgDbHfPxN6fDx3Ri(Uel70k_7jwci1D8X_iC=K?M9K!DiN~X -z2a6ORU-y|pW;9T@?dWZI9xOq%MIgpwEcffo_*$h!`wi{fSS;y@OgQVvBv0_h9c3#);_PfVo)K_om7GOp -zQL@YDcA7w~W9${^Xjyv$HdajL-0lND1D}AF;E~oL9(K7Nanmo-{4AGzPe0HG9709n -ze_5n62=k}^kP%@TN{1_(i_aEDVF2xI`#=op!AqjOh;S%%xZlA_DQH*uC4}pTYWUxb -zhfRS#1##l)qvfDpE>rE(MQ>(Ny|->U~;9eD@si(^r+sN}0s^frx5Y=r2(H -zf#5Z86PkJ_T4?P#BxLXIxM~aGRje%Sl<@St8WY=%bhP&sb9t!FL)!Z>Quv_V_X|jnEH_9G~ -z0~yAjb`9GT{`4*(%n^J)rn3n*gI4LUGKQ8;XFc(Sl<48UOFf#X7x68Pg$(-AY*GF< -zD=#Wj99eXBQ#=8dYM9sfgT6FkkU_B!+UQ`SC?8Q(_H&N{uvFMD+lB+dIEp&)s=w;u -z0v&NG<|gdxuwy2!=puy@>q(q7(9FRqHlo`OyBnU--VDO*tz556Fq|Gt2k-Noob -zEGyu4`)Gfnq>rnQxSN^)a0T{gI*v7-FZ}gGx=~A+!Ux4Hw0ED_L@P@c#0f?_U3xpr -z*ZFoLBvmB|356*piUEiYG+KO2ty(P7tS{Q1zdAKz#ckxIbhD~e3MxU8IbX`~uJ}{& -zIpAG5LWMe0a&%A45<%|%Oh_|M@MFN7fB=7qYRxBYcpmczydjt>pCB-wRsW=aZmah-Jub`is+PPkN}WK;)PEWhz1t -z!mr23V0#?(ka|PhDxJ2;`9B_-*A68C50X>p9Ud%V)~>W9-r{$8u_}-vJ=_<+@)8bNk)BE%HrQF1Ac#p+Vy30i6hvkV~U-i}kePgF|qV4{zeKQB(3tq74kl$2@ -znX86!JyutF?xB^%UM2?Axl+&hL>wYL~qThh>Bj$cKyD{G_P|eN^ -zKt8yz}$&NA89D -zSl!e>k^E%)dB*E0$O3=~-!`7schJm2J)9?wgB?5hCz7;fHF&QZFU~CrNq{~qe6o+x -z!X3$YWdm~8=4w7dz|YM&%@5Ahr)lfhnLfwgxKVfzT>%INNPMMF*v8J9OG -z_jKZWl}6ege3>>Bvmk7LUrzWv?EyWP9TluV3%4sAXP54(&WPY){dR>aVb~d~f#*a9 -znwO&WvbHTe#P&?1h3ns&cpXjE@bLL*ogQ(ili=W;BdBhq`Z)L?=ta$9$Xy)cvTa#A -z_VEbqRaXb4r;(@q`^ySe5=+2~cBk{%I^;8V1T=Q|LUKaOO`u1=NBB#@?ZS;EVwSS` -zi(qx#+WK6*FQ&YN|DmtALcdiF{dD8cW+)KF6~hOdEn?nl_YGp`3;jv*KktgWrI -z$@~j-6NiG-R5sp!iJ=z$P1aAZ8k1OBIgS+)!uV=kZRkx~G3_f9B7xdKIWuecAk}d5 -z2CN$4eRiiG{l@%oQ5!LZIk%^b!TL$TbhlJ=m6*I>e?$O9GZ#Z$o)}koQpLanodks8DPf$hq -zEdmSdL(cD&b(l$`2W0g<6tMGt)W4#RpzM2<;5pT0Y_|UxdCf~SaDWEx2X|TA3qn?) -z-PRT)wM~m8R$z1l=d#{c33)E!5BUrciPgTO?aFWFGXxe@-bh`w?dw@rHA=Jqo^n(f -z2~L|?5cYP!?)?BT%cV7}N54KC97`&?C5U-v7b-u$UuaCt5cs7`j>Ml3L4RQ(p3|_i -zD&aqik+SS4$|L5jnHM|Sm`7|K`)<~KWcaWaOn-Y?eWY-KIJ~>!_&i`5wl~p7;)meN -z4pXc)6&he$9{_Xxw!H7aAAcc*l?FECDIE1?k2Nfy(nU^aJJ~%NK^k}>snR^~2j}b( -zs=|ezxZ>!)WEYi$^fay&o!*K?N;BNavTmDFN2DLw9?^tFAZc=?LG2{pcy~L4=tNysQq#0)dS-XS-h%J+^a+Q{Bmk_xfQk$(&0Ga_)_d4(_#8HnMXg2-c -z-pOYd8!bFEi`)ciC}M(QIho@!Kq -zV>3&0#h`IrtmI&S$PsX#Hx2XJTlgd1uv%`@-(>nVci=JAm3U;uCY(1`>0298mUTpv -zM1Z3+^Nqw#pplAw*ZR_^1QW?Wc&$C^a|SAnpBpZDBUV4vo?qfz9&P^EIKtN_^>-OQ`utHN3lESz|lb~(faQbQu -zw@ge|&6;0#<4C8aP(#i}TiDM=g{M_+vP^60=?D-{@xu_gS8XYwhFn7}zmX8^5R?&q -zGjbP|2erwNa~xJzP1$jv_|8b3yQ^$>esfGC2dCakz$lXz_ZOV!8g8kddg?5+nM -zXfsG@Hm|pn9(^ehFICW~?Y{OHJq2W>`dZ)oF;L4LEa$25>Vd0vlA`^hhL*(zUB13F -zb3*Q{layLxg+iBS?CnXO6c=JYFwFafFj++0JTZx?1&TdU##HL@L}90eaPv2KmwW4P -zz<~+#bj3J*5M&eUF==r`bf?P>R5@Gmkh&>8EO_zb>0a6+aBK?F#`n$@NWuI7&});w -zgVQFAT=H9w^~Pn%_EnCj55El*TU64tdxJ{> -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 -z1j*hdRBOmOOpuf;QjkD=r_QF=m8{Ts9pS -z7KfWw&L<{-H)0f*{LB}=&tn~2KsregBdK$S26tm@lRv}Kx}RA(=8w%7cE7^{Gm^$0 -ze_&a}up9o`G+Gaqo)_I({q8@BXXe_K;kNW(4k+$SlP=5Wxw`!iDon@r`L>?_dCC*x -zJK*ewRn5 -zXMA}l-j@D@<+HB7Fw0+0VRdmT9*JzeB&Y;a_pTza;%IzDNs -zI8+^$?FT~(y8Zqx@BkI5wr^sMEd5eWk2zv%Uv;~N0o-Q;O?Iu?GKM-pPwIy(l{Kms -zD#S??%=f4)JMl&yUnEzey4tZX=cYWXLr(oylz=zv&1BDE?F;2rrpD)?VaZR7$W|*D -zB6=VNHIreN%XeZ9h=-}ncFEQNA_#qnw*NLgWoL4)8<<3BY$jBv|7iG$`OlUBWa?Lt -zOwahXIG91hyz)$;lK$C)8kbWLfDT5Qn3jYQM05k@2YIfEsizHW3C?x%cCiFK6bfg9 -z)L!%u0BKdU@Xc9f%20FSPn~{Y`{u?8l2&R(^Q!|*Y1yfgJWf}7kC(Af^sGcRVq%bS -zQ2^DDH1BcnlD-cvkiJ1-&ygV!sW|)HFVkTb&4R6eZ{ -z`d|*T2G+XmIb5HjLMx4;KS2HC{E!b~H3MF3rH;~vTM#XsSUN?4CKe;a@Axc0fsLAQ -z^5LM(QPnnw&sc-+H%fH?PBBWqZJoQ_g0X{W7MLwtBP1%m^3Qo}QrlC2r%M_3{2$^T -zM@eS#YXNA~@69%Q44BObJMDLNhx7ZftYM9LLQe@5ph+cF?Ha8bZ>TcWp<+Mk&fM3z -z!9ZTtzCjOgYEUSyHHn%6Y6)ynm!eN?Ctv_x?37GCD_QPHiyY1|i?MBiT2Qm7mYiM2HsDp&y -zlK1dC?}Cf45?+ed?@7be3o)?i*YtEQc~ -z^-}cR!F<`1aY}o~DbsUsSc!bzS2os-*2L2R0%cr@BI3kcw3)P`nE)3s@KFRy?AwOE -zFVcmw+cZ$w15W$;yzjVPw|38NGy=zR7p(f4NI(rWFvfA?6IqtIu!V$DiE9spO3{Mn -zLFG=m_~Ll+GbRidcWkY%0ju|>4~X9SU|{$G)Fr1;S6-@m+{BzY^Tl8gIN^Nr%)y2e%L3+&GVH?#0AA#YT_m~ -z1V5kGL8r+mCn9~GK&gCFqz=S5nLaG+&i+-MQ631V@6{UCZUq^&aOpHB`4^(()4n{pa_6Bz`X0PqqIh~)pq -zPq~h`W%D^B{{eJ1lFy{0P0{?D%K$o@A$I_+Bb_cP{Wa*qcF=joMDr?cZ?Sx31ay)4 -zTDpY`%>T#1W?GTqZW}(&dg~_xz}cD3B+-@L5j4BUUX7zRC_+54^lAAT2t%QeO-K5G!gxMLU#LefmBne_Z6gL?=ysy3Xgx~M -zk+&0FeDHDW9O6NT@!}|E%BLB)dLSHRQsa&5L9k9(EHFpHBPcqKD9xbFBGnq1Q9YB7P4T=05l_FBw0AD;`03vcVm$M=z3G~38d -zjbIU$qEV!x_%V+patZr4<&x97?zihwC3-~+sl8%yD11a7kbnYg-iPiw(mt_e9vGgY -zU-zNU5lFEMTt`EM<{Fh8jedjSKFrGHyniMbt08m%^ATb_5RRcRmTpY$$&HjHask|82d*37^@B`2uI;5y%i$F)(7^8>`VRlZ#5D!P;Us8mJ$D-j-<(Hv9^zSB|LQL_kdkFsSrw1~l_%c -z(lCRV09zN%(cUl2jC_PeU-{K*w&bSG=#-Lq$=buXlkH;C;-Ei})37xL=3&H6ug)r; -zCpFRP)rl|kD_|<}vdu9(rar9k>4HAz;8N}K3jN*5zJFW$6GTx_Aek6**3$eHatnyr -zl_-yF_V<3F9z$#UxcuQhR7w?F@kKpYy|END*TSs}l^lDS_)rxiu4mF6yn79gcdYjt -z;}^_1kL3V!3bE&ZvVU%QBD(2av;*bOn4s8w0c8h;La=t_#H*(wd<@;#KQRP0GiDp6 -z3BD=ZcLo`M53hSp#)uzrVDX`;un -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 -zB|c@fpD}+77;_4zFh6iwA!XwT_ -zxruBop+%|uqk>GAm@LlhGfg#-x!;-Y^+N9>9|r-=29=%m(VCeb+Q4mR3;%5t5~RPPdbuDPc&1AVhD@7;VbQ%_dNY1i5|>f0=ppsFwnnm{~T} -zn)PfotvUdjCE@yLSRRB@HR5J$=%on4Qiw6cmvM-ugMh(0nKDgBt0`Bsz>E&$TSW!KxJ}Tm+fSDip -zSGQsvYi7=0MNgi>`@(X#%u>@>mOx3i_HuIJ{Li1rK^dg0E=%Sx+5h#&mwXlGmE;j^ -zZO058IR5KT7I9Xxkr&L5>c1(C^^fHL{?n-(Eeb3lAzA;YpU5}4h2OwDu8A+ifKFJw -z!uO!V`oRUX(ADL?Chh?T8=%l-QXzo6f&EfIXK|PEcQ9#su#{9l=wVU~X_aSSa)3<# -z9~0f62z;Q-~xvM}J^iDrW$sfQ{dLeme -zU>u@oWC?&-i(Dxg1fXq|%;mHPXS4sDk~)=P2cduh*g@!}(!YaH?!S|o^uNPcJnVSY -z+Dj+F)CUK2eo${TQdpL*L*U&;*7_PK{eZ=+1D2!*ZBitNR4fgpd?^#uTp;ej1YDPZ -z_nIHf$qhqG0d^K^$i$`g(s@1@ZU#aL19v1@s8^gV%*U=&5K>(+_(Nc%+u}pnuC+oE(F;grdKCrZi={$)}5CdB6Hx@@E! -z3IeT9`16%?mkI5m$i9h$hI~>e{yPK0e|5Bfcq@s63)~np1l~*TsXwL-`aZa#6GL0{ -z)=Hh$4{5QE9)!hULOnLKO-Ao5*zC%fV58`%43&l7dzsH!%WkM<+yY0AvQQotZ&#$O -zX5!*Fa*F0{0w*6UYui?jOJEwiS08mP82N~cSpK6LJc{oi%}N^0?w}g{7K%5xdQ2^= -z_iNF0+oo9qxQ3=mm2jMKOfE%0cSNzxJBB*(C8o*7r9~cy$`FJx8Y!a?BzBU{!5zK8 -zVtE5@*iaDSlIi&HG$Q5lg_z+ -znl_$_%a}-()TwPTd#>5bya#neRXG?|GyC`O^;uw=ZLL$OgqxQ?gW@?UjQ7HP0>wpN -zi~IRSeQ#bcLf{Z!qu4_9iue@NE{GQ|+owAAL2-#M-5j -z)9$On!H! -zFZ|p9I`HjEJ{cU3)LUR3b|OT}nNtwS_OnHjZUao=BOmPFX>jL!)=V -zF2DU#k1M_geqL?bSL@BTP852sD%%cwB6l((b3_&;GggAba`O}>$}&_xk}xa2^t9BF -zYmVa))u>Hw3`4@R*^-+x5Wh5sJu)@?KksimndAUsuf)!vBGmA`2vgjIXp#T={)8gA -zXEWw)6tYLH(lX;jZZshfp+G~5HQr?Wpo1J`6J>U95qZH%nJs$u!UHs- -zzjo(VC@lVFb>&%yCwLasus5mpiu5|f;9{7adiA1QRmlKE*qnVoDQywlN$9NnI8p9B -z)VrSF5@3Q!r5s_jm6qTB?^`f`-El$ozNw;K`XOrs2#SrSjR2VEQM09aN -zi%Fj^tzDzxm((|)3n_MkRc8Z?>9njTV~gO{0k^8?zZ++deZ$c-!e;lT!xTr%E!BpM -z@@qNNWf?j|D=jXKk=HHpzC)3+(RCbu9Z+54v&y%+uSP()n;voQ-hnlDi}tN&jJrc; -zut$iu>;u|X0LWdOa36Y&>MbjZgo?injfj!f19x>Acr@s5oc(SDe9$-GF(C} -zwDUVZhUgb4ggqc_ZM|uj5#80iOeW{Df$bPa*97fk^CtuK@aUR%CqJ`JXzajBGosDR -z($&Xf{pzS{cC>yfgE$8mHFJ2Q2gP!l%fw&>xCjXfl$XQ9{E^U)PnpjcyQWX$v=PYu -z6u(7-C;r_GXLRajrRiF -z-{M$HX!*l!3}#vXwTR1X`)`ApiRKMy@@SDbGz=DFe1dE^#~8u)8QSCy@q;-i&%5>} -z(m12xVar-yBvT@_j8*w(ZQJ!GIydkl5k-cdlXf=>EIH<#p4v?R*^Wl+(RH>FPZnRx -zDm60b+s)!hIBxNH_+;t^f?hpl8M8oMFZ=Sy-}nqp-2}lfDq#ooRF;c{Ai~+Hj;NPt -z`$%BT%i-@BU==RsTrSzpHs@GQ-q+a4yj`szI@D$ThFUVh9Wjyp*97CK2&GE?nT^o- -zEqr#l=^ZXzX()$r^$v7qId5V=b>ykzrLM_Z+xt`dJ1~g0UlNUad71$9TeiX=NC4eP -zPJ7=mqr#1WAHW5S20L{c_hL$1gDk4ExSh%5;p8QNo -zh&rL1Y!44I=Kw$j@N!t1hZZfmz;mWpgL=NMMNKEQ6^2NS68`>#W6l(BDEum&rKJih -zh{5A=a1kHCszwQ)nT?*KMEqIQ+jd*1;W|>}o$h#mZd&r9PW}YH>)2{`UmH4dFjx|S -zZ3@3o=ezR{E=c`1aijt1 -zz=O>1dmU{yO#l;L2(EAQ*-EDQ{i$(;L%aTH<~CRxcf<3D;g&YdG)}^6WDajrAdi=5 -zeYkhyS}k5aVX>R09=UflD_SU>6g^;X>u2LS)3AP##IWj*+2%HMfPlyKMmESLL|ojF -zFMglhjA7pv)~-yDeYTCu25^5I;aY@AC5Pgxr>p+XH6JQBeQ4||o+?))VN>Re-Epa^ -z?^yXwA$`!YsZcE3bhnc^6=5Xcsz**yf2>}U1Rx?R@>d-O7Z(ll4)Y}?mdYwh{sKA7 -zv#VA!?;2_|`q_1~YL?C>OR^||Mh#qoceRql>3l(efxYMEbou3UIV0`}+_Qt`jpZCl -zgwHDH*fpOcG0tPpG5F>Is<9|4ppX{s#$8D#X6Sg|^5jiNDVBm}?xh(}x`^1TC9b2&@w -zTc3Xj<27s!F)NI==T8|k42*$m0tsJaY-hDjZvW=zfWPoD7UQEuKKz5ZK?@mNR%X3S -zuu?|E_*fswMG?4(`HssJV|dQ==r+Vn8SL&NBw9c^6NMw>Av*eARk+UYZ@~AX#J_P4%B9GM@;_5gck0j5 -z!BxlK$#F}Gvr;0>-eaJGJDh-0%BT(rIXmzw&~GLRqv4|oK3`Hb8hu8d7zliVyp -z+{kfhh|V8%{c|-Z14>W7@6h{8Av&L)`*5?@y;I(B*l*lNFEALhHT&+on#9Q=aVTCck#AI~87>S6_ -zetJ3Em>{Gg$iVdVxg7TneWn&?QgX*YObBf>fC(#M==_{QOhZonTR<7aR!WMU=n!s+ -zR$>S)qr=w`nCImi1GK&c;k)1E4e46Q}YlF*7YKA+@TF*{P}Rbh~q8Okl~O+ -zAe)%Q8S=AstbK8g5orV}X8+4T8TfF#;wpcNt`|Fme3eh$@@POBTa5W*yf|3%->;x( -zj$LHW6Wd}If}0grP?AN|j(zjwtGB4?$Z;iF{_9H%@n+BBoj}Xt1bXMLHJ)A>F29)0z -zr)^03t*4<&B>EzW4fcw*rlobp72G=xayv;l>RP#q_OWL|P$^}6Czu|+EzKeb$%o1h -znV0a~>5qq>Sbd^0fye#O_xSyRU&}&nv2~l#(^V&hf7LY&lJgkcr}}DVvj#=#CcSdS -zW0x$0-U3M7^3#V8_d?okJ|W(Jb1+W$0iy9iXx1;)x+X#Z+8wcmnL*&4`rmjv -zl?2c_NjLAoNu~ZH_&suLg({(o#(LQ49g*3#_r}J>*_9swd^mp<4s9o9!d*>tL#4}urlgM>6n*p5D&WCDf2C_ -z|Dv+s94Q~%Y#qp0o|Z7)GEFxs+pU1_yug4h13Lt|c?;j+<8SOEuev$b;You#t2kQ# -zlF-zA8^mx2pTgh184WT^v#EvIT5;oap@J*jf52iFkZo};jtU#NYKCO}#EbX(XhP -z5RgVvT2how0Ragwx}>`W$s56-yFt23P`bMt>F&Os+4%b(@2B_U-h1}+taZ+sHS4@v -z9vlZqpzZO2Iz8){=Ob!wnf^|Pjp}+X0ueyGo(S|CrnR~K!^%&&l>vb-l=N*gt>DIBPbBZur$qZ!iFv$S6}Gd^4(ZJ* -zelw+Cv#j6$)i{ar^iHxjbaRzqT2r2?EdvXR{aI#z7@Wix7vK_%oa+p-FM=CM860jkqZs3 -z?p00n!pOW@%)AF6=>B_%;@nm(@tpaKb6G`=nxIob$WOU_5$*eeIK`${#wT&6%o+GG -z0v9*vmtgh~ThdO+p{^;_t=f!q9D|YYAmKvY(+wHyK#Tjs|#DKdzXvwyo5ZTg7@5rCbAA%&H~W9hWqnA&>( -zHhBjVBDs)Xq}rtko(92p$K>aaM0F-+_z{UZOu}fwwGhkpeC<#r9<$x_@AFbk=XFts -zyhEVG&o%3FOvek^B%s``#T{r0OBj4qe)~juGd@r3?ZA96*4)j3jD?-#P`bLn(!&Bg -z(TapURDuJQr=L0O)}m{FPCTyK<P{jydm4Zt#1ms}z=Z=O5dPuD*p}KWak#NOkYb -zX{_$FJOONMzSWYRS_g=OU8npDHzus7`KBp7BT;YTVGw8h;*-3T)eC|MM -zl&nysUS!5~|J0?sQjcEx%2x1x(P*X==!;Me@%idR+GI+Zv!Hf~Ab;_qwpY^U>nEr2 -zdEjdp$1j$rbFNySvMgkk_ERu_`|Pp)8?}ZU<{JB%wBmkvWG>)`nvfW -zE!Qx;?7G}K(huF$3_!I}gfk{|IT1SJ+S%}%TrfW<>Vo$;qCf_;)d$3MfD>wo%cn*UAkna|?JG%fYma-4Y)5hlq>%NIRL+(hp=A5g!@(x>bC8xIV;Haoww+Hm)b*)@UgOE-ZT~o62tmqwP-u -zAXU?CEY1Un0=xRiH^M>S1^_0I5T%@TC0;9~HLp~(#WKhDQ?ZGZ_jzt6OwdrXg&@3? -z`EnH(mbR#*8W|NFOJ?sU-9`ioE+fH<)a*t|dZxI_DKpnUZNnwBDyvBg4B!W`7Jy>%o!sfI`n2x1qj~&i&qT9jOK!?KsCd$RpaiY=gr6SCW`OcY -z#U3l99P5u#n5hE@IHZCVG8QSJ7~E*wb!@5y=}9AT5gutIEKE4k%tcJ@4u)sA<0%$5`y -zU3k4?7A~2;byC*^0Q6^s(miUM>x{$I`3WX!zRIN%^N_Lp8l4>DN)X^1Xb|7Q4zh^# -z@atE-1}Yj=_9w3xMj?RWE8vcf`uy(zZm;{Rqo*WOn2=4s^ -zFdk$cQsiB=@~cD6c!dwmSrc9PtuB8dCTlYxjk7C=L!i)-5mRfKj)Aj#;2^WR$9KjXXs$lxdcvnsxo|U& -zzR++yywoIred?Ua`Z>AUYRRCtQZo}20BRvrTy5A|E!-!@#H6}L=>fq&ge89b4jBIg -zwQ81k-_?A5VA1c@F|D)zYb!4qrC%fC%dM=0t~XJ%@hOQ>$w*EB#c@4plBvNA@bDrH -zzH`YgImVu;-U@MN6lAQ)Wax -zyOJrOX^3tRmw@ovM9%Y$6@oiVs8aN)^TH@|!u1xOqiM#TauU?m;sOAUkl@V^eO9iy -z6YgGURpDrbQwl$XEFoat@+>6p*2lMY6WV@x0kk6tUUDkhg0%EfjuzanP1RW)D;7n< -zo;k#@ygJy5nOz_nnmk`Sd>7B6oRiF($j84sB;x4b>JFYyP -z5%rG?TGT9Ktq&|1>KY^dahER9Y=s|+dqNIx>3O{aP0=1=8`K~0maEiZuU -z7SwT*9)kJ#Z>!AaYNq8w=L^kETfZ3E(R`amv`;s%fDb91DEYLS#Q@G9 -z6)_T0Z^6G8!Vrw}Mfa-cSgNn9Zk^lo4CB2Qe1u4?wu4tSFW3|5dGMU%ZOMCL*Inoh -zmPUBDq({IK?eG;S=q(r2Rm+cuF}8b{$b#a*0C!}Cm^$>ROI=se3F%jv&<8&r8VTxq -zA&Bso#>6bj-RhUd|3(Mdd@nv(@%xlQZ}d{dNqCiv`+NnXk@ti8sl3`y>hVdcC>lfSSRNpkKSHJyD -z$2ArBtps85P=shi_aB;C>yHnD4Eagk*l@b2@PY#m&`steBr5}UxKw6FBvs#;>$YZH -zH?i&)#j^cJo{()y4z9Y>NY8RDZW+mlj~V=PRsOp+{u=+1D4wnL4`04iY(`$F;{1yVp**&Y>Q8ob9bI=*~{2V`n)~wA}wUlOwbkClVm<`-WCky?NH{YLf -z4%Ne|D`+{npBgU_S|=B;eFghq+t_&{@h}T#a?uiTP>W*8j)coflg4QN{{;a-BNTm5bx$kiRf8tWeWUk9ct4x -zk)jIAjTzGu-b%#}{X&=5mc}P1eQdu++`4-5rFce$ArF%J-O=HqPdB}3@^t)oZiAQ0 -z6yuVcS#v%a^^KOH;GQR|$jXZuJk1Wm6s -z!onUE=O=uSX$__2*ULL0YMI;H$k&Lu(y1Tn-3*`K>I?9%<8Wbbk&Zar)=Q_Nyq@_r -z!B{PZkg)kTwc6hxe@%KT>~UMr=ADktRlST#)uqWFf0tl@R0-Z}dyNh53|B}=qrFxT -z9(2LQuEkMMK-U!)ditq$o}?kE^4z(JOkM<-)x;0{NIa0#zMx7f>ZZ7nO-Rxs*3}

(9G9*#;*0VUG8v@$<&~2JSue1_<~(!=JIM_|Uo$+h=|eIv)*@VgJ&4M#hk` -z68IU8dK~GGZw_P|L~&;0=}4%x`3KMjBigyE`%*kqa`_%i>Mm#(?V`pCSQsjYw?kjk -z_{|;83~0c)>vHkJ`evt}(HHAAGtEs=Y%^Kju{OG-p)WlER_>T8Rs}4(A6gXOW}SRQ -zzLJmH!^FYfUQn?%hr=C>d0A);77#9B233bF!dGvOxi`D@sbLm904B3s!8~UsVeadq -zj6PsZRgA(vr0%P;+yR3g@H$FOJmt-p+>r3zRzm`yjI_b~SD&ZI}8Cc$B-{yw2t+ -zqCBS?#Df_Y0Mflb{D`ZGellOFNo#x$VeIX;Esdy`b5T*aGH~g7gxsGg@@Dr%(Y;X- -zAd~&vzrCk>Lt(FZpcSY^JyrNOmonX?l3cS*0aptHLq@9#GKGQ)@Q4u8AAwtBI{dcoV6(X#l1x)dllTxkucA}wGcoO1Y4ND -zwd;%bZxg(4&5zILZ-ZM)^XnVaiGKd|y_W<61i`d1H@909%YE!}G9SxdDRt%$a5LCZ -zT~Gyj!ri<+84oM|eqkxUv#Q&R$Q^J?7BYB#GkAwU|K_2e2dT1mrjGl*2#RbYcsOeL -z3ye2-`BHokm8MlRlFWdQQ4RdzzL#klgrd2EmnQ+0pDnj$T3ZSLQnK8qPE0U>5v+$e -z02_!-44Mc{38OMoSjKiHVRduj1kPGoD+c*>=`AcH?B3HhEM?rCz^k{DP(4W@c%$L( -zwbGk|13O#c`((N86*JTul??8Qwa|SkO9|#JX*9Z#g#g|=z)Z;TE5SIo;+LO>fKalW -z&7kpj(76%&KneKcEfTT1L?D$!12NqnQaog-UPC9P>Hg@-ATV1;8)45htG+(2h9_9^ -zE}_=)IzJ1``!b`;T+h@N>JY~8Pj-J?1Kb+|R5{Ie-^4G*4QIGj%CA|x_e1hCMzoV!!(;g{{{@W6K&3I -zpVX{8_P~X;5mdBkmx8l@Q+;{8HwVr@&WYOSMX6@`h3$6las-%dzoN3|5F8Pxe931f -zS2YFbi69Sdt&$whbWQ@p{=G1boCLc4(*r>vwyai4m%1d9U6($}n70FQD)^G!bJmk~ -z$oaF-7QwMdSRB%E9g;~b6H#L_XrqX-)Y}i*{qIt(TSCPA4LG7uNo@(z3d5$SP -z_EPg&ZNILg;R43~K#TNY*LxX}*74-mCfmVi{1$(2i{i1`f;Hr~P8|G-Q`t9)hH-|A -zRYy4=VkEXd|0z@!0U4n07JkcPOHeaD}e|$Rj`4;4N|zzgjRFyMsVuca0tw0;7d0nbyBlt7q$QwVXsE -z?28$G_Ahc45I=0$L8&}HF!Rk*vm5pImg4GH_KaP78@cVcDsX9-P81s9pK-3f#`_gJ -zlmr1k#j(gUmn6jkCQ*oqqOj2*vcjSO!o}@o!!UH}V~XMV9|d -zSb8a}cB4ECPm}zbdy`?4_6k*xF-|xxt1@o(y?Y0hA`fwI2vMJ!KZ)%TADv9baN1Yp -zqZUv3I#^`&F9vz9D9jq+^~*Ls`n -zf8-J0%#pm+-SthtJ%BTwEy$uiM2K0=6=J7x|zOvN|p>aql{}aP`1U -zZudgajXoYL<$uCq)k+cjiW&alUo{k+><{D!krMkY!A)P{eWf*V{PYa~>cy&1p -zTuc?t*)GwG0V=L>BZHU%0d^xJ^=V$p3FJ-bzEi5bevdYp`qaWe_SBuDz&LSZ}gaw -z&deQ_*>aO}-Z%7qPM^np0(cL?D^sy(q0MU5su%BItrM>7YbdDD)+h)celMX3wT7IX -zju8FK>Mp$c%fbG>H#@3~A=bqLRe4|7tQ(RP_y!$hQHiLvjy58o@GoqwoLkS!6Nt95 -z9of0sBdH`NGMIM7ax!U&QMSOp2Xg`>UjaEUuji3k@pJ;+M}%v3CU`#u0*eLhl)<)Nx)wEWqi*cd0OEVZ0Kbc -zimXn!c4p|RJz*%diy1^U10(*oKD(%s%!{=0-}rkB@MWoYuJ-WV;R0DqG_hALN?q3vYi>80^r9$_rM-s{m0 -z;<#llQxUa%((n6}YQdfv#P@-(U;*+%p|6Yeyi%c-u!W7`^M#z%IWnX&?}W8j{hAYp -zPk_DoB*9tSL@Ga9nS#d9mj?XCkr=+0kk2`{DiW{mJFcaic_L$si1R#F=XCAsS+^pY -z&(H;vwX%rX?s*J=t9nZ5SQF&DIpOAq1ep(_g^f2-xo6N(Ln2P{DT!(Rolvd09s$fu -z4ua+q?V&lX9KTS)JkG>yRsyD`vkq*Va6S~wYtY{Abm;8|+wR?HHC{!d68bOny)T*M -z$=nDnW)7HHSDFZWNJ0T0?jgQ#pA5W@Qdix6ZXcDo_gIBGt0jYiGumKFg|qyd9Q8{% -z4flR`!-`;JB;yE$vk+ds=v*wvyQ3L@*fBucF>}C(sb7K(BR8o39|HxT_x1O73tmCu -z7GG`*F3(%q5sIi{2_W+qKyQc`l_a?64OYcS8$tJdFj1!RPsO;qp?Zn=?>`euXF11p -z{(R7@ggQ5M0Vk1*f%9rYxw!b(8$I{gTY!k@d!c#7Pt?I-^72YvYm3d=KMr%^J1UIM -z;w}wkQuVud2LAYxev9YN7lHu6C+7F+zW@a>JUGIdn|LYP#!FUWMCF=9KsT9Cu#gn9 -z50{35Zht}+>@tc6wLcO9xHNziwd4f{&YMBcr-NSOM1Ypqz>?3SBc9v~v3tR^B&0`4 -z$(b^B6Y7DSBPegp-uN{W9}fTi*Qx{jHycS7C&i#d_vU)Z3Rf<$IvXrYyuJUi=I&ma -z7FdGB4HKhtEcj6%-C@bWY6>RRwkv6d1o>FB>uAh%Ded>He;@#zu0~T!LRRh<)h@s$ -z$#iA8PKV1zBb((CqJD4gp;NvQzJ$)l{hj9^c&5s+{0{`L&hX)r@?z6OhP`R)`nyppwO*)qgh{UXC~B -zcSX;9^{MDl0_ctjSWyA3rt)toIA6OdMknLW{Y>@5ahfnMDF=&@_TuKpff&XTjgcQF -zZ3wivEP$J%-&W^`Y=T!&Bk#Hef-7CAToOBt5&>C%T<9~-$~jwUs&=V&uP|Xk(h;M> -zdV_CO{p1$?x|X~V-dXlv8Srs_qhaR+O=uDDC6F8_>C}|i02c#?Zi?B-wPKO-j-~8r -zh;T3&RCUNq_&j6S@5guBVpGWxF}FI~+Riz|EgK2Z7EahXk;UK3j#H3nx?l-||5c5? -z)QutPE`!#qM?6o8?ow<`hjd1J9U+t6_wNFjM -z6h2ZgF|jXKQ`mi=2T_I7e1GK#Ni-kw|Hx4`V5p=OPBnw7E`#8vAVA&k9K*o@?Sx}g -zjES*&k2#`xcHL1!@nyp!tqSif?lUrg<6OtJP63)Y}@E%@$WDv8*;2PG5$@7**6prF&_Fj7K>=i^_H@4ITmVvN9T=!zyokB -z-y5XlBcATjEu+#G$9Xk65n`x@c!vCoADN{lWb)l}nszPy34mM04``6-)VfGa)BPp$ -zwACApV1MNt&Dms6hB@l@70|Qjgz>F_dAh|Tc+7Xq-#)VLFPT8J;K=hkRpRKE7E=pv -z;KltYUJpSq+vxlJmTlT*1Iw*30_)Ha_0@3p^PDGJ@rcVh25%Y%4OUxx;oPEA1FczH -zeiD2!nl@jLBK9r*eMZs$Cw1jb!x1Qp5}u(-!T4OhD*E1ePQDy-i;RJuC9DitteKm!Pse$2Ws>~o -zJMNDxK+d-NFics&{(|9;&`(*>2xgf9&c^OuIW^vrgs~8{;L*TtQL0~W -zXA~*5R6(*Y`I8=yX~r{H_p+EdFsfj@%aF@zeHs%Yu0!(+DRos#8lA=qv_2yQT(S|O -z6tDmOsLoSrhCt}COGQ?2{%Ci&m(A*P5}Ee>QTxTmuvf9g!k- -zZ?UimuR^ks#jr_>MlEv|XP_j9X1hF?7K(TM$hG6@0?2VBKryrD)tB|*DlK6HZY=@Z -z_~9qejuBff5m~`Jt$(0!YS?-`-7zsOZV~r+ponX1hxB+;9chej9)E=^?t)%BRMo4U -zX`d4oo%nXQ)vjV~JD(3L&}($V_RH8Bf1L0gd_EQ3-b?<3q%K(g98ywSq!kFFwu_F!dTyCv1ZEnmYtz?{!{uj -zJPIoZ$9-mRv%>GFY0KORCJ2dwwK~UAk%Rq$#aLHl$05yZQCpdS6^XAe -z!3XT?F;m$8-EpI~8P4}1@!FTkPadzC(EeUhT%GkRm*-Q9A9xq&N+Y_4mVT7F`p~u< -zFclM_b<%41?qPWX8F=)$TW{gJ;P>x(2}Tm~gC5ADEMKVDbk!v;%6!tze?gHTK~L|$ -z1+Y41$jQwbIHeEebxWw=;I*0fT|o0P=MZTKgie`n!VG{H1H2j7q-y4} -z+NZForfzeyfTa+iDS?W@nWN21Gwb`FZ{!xRmgOFG2Y8HyS@Lk01 -z#QRa8j`^m{Hyelih$s2Z0dh??qGXxS^+^~TW}OO?`z`hxE`_46{8Z>-RH0mDK4+v> -z*wo?P8uVNQ=b~H}57H$C;CyL~v3Eqa;}ZH1b>)v#J8h@f&)-hY7QSl;!I$$5ae}oO -zsJiylm)DGzFaNjf -z$1Bl9qE!ul3t+oiF2kuh>g_dK$S4w8ng^rJhD=&F^%vD@uFqvN{l~9iysU_lJLnk%QACXbG!>?lSRS@8{Fke^}-rF|s -z_{Lny`{o*cYg~Of6E(Nw&6{!w*CguD?&T@INdhk&mBzSt -zUdwakSB0@&Vs$0r=+3=LduRb8|9P6Q>?zOtugyU?C9l`#8e7E@{r&TEr(xhNn(`t} -z`D2=S$LNGUtWQJHL+4)z4_HBO0^j^?2zx3dkZhyV&7;_O8FCK)r1}|=Z2e0LeWT2g -z26eh0Y!}2`K`{WsZa^Dm9RY0pF?rrmuPhMRW6i08ZWfO`)}C{P&K4X-e|yXYx&)Tc -zyM9Dk%2YotuR2|lPn=`ohagkuB(jZFH>@L)zdcecobhY682R)HKvH?Wh@qy^FjQy7p -zdK5!4e887lgs>CeWr!CPzrXh5$#7_HJSmYt?Ii8*#~)t9aqLL+Vsok573$I;#P8jr -zl`k~&N^AdITzpP??lAS&VHvI^@N&Xxe@Lo6R$rh{gkc>TJJ^VBx=1=J{|K)gxa0(C -z0o3}Ti=dyCuaR#(8`Dyc(8O;@RM_~h{S`B>}gYdfm?yvHMQ -z%g9Nmt7Db>N;_P6sDp0@-0572jh7R@9U@=0+!K;FLPAJl?y8FVC%*hXf1R!;)DIrA -z>RktEp&l$b!0MM5g@M_LB*kCb&%4(e-G}Q-k%G0!dM?7H7@i)MTsra!03=G`gm5(d -zQsg_fGO%u_$9tvFytyA;A|B3na0y(Rxlb#7sw6^D406(2pU;}QGPqW$zo{#XS4vMu -zV|^_1_qb^(HQboAuwxcAL>o0!i)JJ(>rq^Lp~C3VlPgTq=Do$33MB8JurKoG1Bo*q -z95n5ct8kMPw{)%XrK2N7t|j3F=dGgF+d)ESedNFNFqN;35Q|+U|26w_39Z9HmAWyi -zn~HnB7=Q|{zYH-u+G{P@QJ0<7h(zz}cZSi<+@(Lg!LrwF*u9(M}A2zQuTY-lpAr-XSJ!viv -z>hR9Gjs&k$y;L+elNj*k{wV=ab^xYq(HDN}ADQ;;DZ>&R7l15vZN}x+a-k$~+A)l* -z(~r2;&|RvnolDf*?(ARxYI?BQ%HeJ7+TlGH1yF;D(w4^*ltIZ^0(-p$tCX)j(Z66} -z`M$>bT?WYPpNpdY0wD$a>~NU)p3oEL20mO$;Hm0-I+AA6Rj5#V$BLYiL^7J?PDSk>272V -zvfKw&VjzfBG@{ns#I|Sg`st9Gdr1It&ezJ2soPNSs#U9X^M}|>eBHwL3eS_sNQc26 -z!Zxq@a4v_%@)F+(j#(sZHkHiavMiEWFjzu1Jsc~Dq|}>)O&+g25N{crpo}HZpynUN -z8iFrG52QD6+5}hs9k&ixH|DYe0O@*&bYNfG+kuz9{LDV35d$5z-ji)TrgmdC>+?^W -zO)#k6q(Hzhkhu5x+6r;dGPQIuDH~frePjM+wq3{kwLygIWht_?K{Wm^YEFXL)6Fi~ -zA}5VF#l%11Pl5E3rl60ZhKVm|V{-qhmc9C(3$1{Iws@`MWmkJ0{d$Lsv|(N^8uARp -zDij8>VKX-STN4CV`9NkQ`X(Xq?`f*$1fvp7={z{h>m+j^tzEAklmU=k?!N%wRye#@ -zYPZk6%AHpJ-fub3b{{Zm0)Bz$=l-xmVO5gf&MKirTn0rj80VnuhqFv@3{p=hHNgCD2ZgA8Fqh;XE6+O|1m{5Sc2rg38B#|ff91N4># -zgOZL1#TjJA*x&o?32YvokC?qBCUuDZu!H>IpM@u1b(TpWZJa?nXQ(($pJ?zKn^IcK -zA2_Y3_l1P{xApRV2KMr6uS*)0aDl7f*7@gRSE!TtOCDp5Zt%bs_Le-u^)2UqG@xU?m -zLyzvbmR1F;uJPUfRZ}uC+rR!Cu>^lDY$R!^TJg)TfaUDVsa0*apAnC#Hn})TtnO8- -ziGx~HVnE4yj}3dIB^ -z7A?P18d6foc~DVc5ln|Z_U0R_Ot2G$=vO;8K{55iJ00F6 -z+f5;>^U809onvA_5w7}r^0Y-eS7e&GR~ORkjv|9So3~ic_tqw1%?lf~5;q1X~)+4E2#(ZwOPIp*-m8oY?5+8J9Owa;jXe7>m -z7u~2Vd|`ojmlw;9kC)E!eapa%YCEAsVN;^ph&@_69zxZ@Q-xFgl;H=g0n-72PKc*P -zdcP7_6S;J!z~UQwohCy5TDaYXszMzWdxJ2hnwSSb5`Z=%G+>?W63 -zL`sTH!rrMsP9?!8>Fb+52wS^fVA+hePV$IVH7OU(o?`$t^-tKNmY#!q7nTM}%CekU -z`?X1q022pEV(S)?3jtVW2B1V(<0~ILd2&1T?;5O_VSZXRHW&Pq70xFSe{yRS>hn@- -z=Bn%y;|}q+jqrT5I1>fUZpBSmpvn>!J-I>Co+ch*q4}8vyR;kcWn=BGRVHO^)DTU) -zp)^!|rt}5YM=VfB8ZetUN`n8T84?({#-M9HP2fT(+KFG%*yJVhy=S6P4YnMS -zhFE-d(ozv9Y53`})yi~3u*m6WqBosMbg`M2Q`V@oy%Y@RUf9UnQa -zrMHNQ;f)QEoxuJY$anqw6t1tcK2@0CFDo(@_a(?Nm$M4X0~gSVFYR?R)bYx`{%lzC -zFq(Y>FE|=GK>0^n-EYEa%HO3>sBLD=QOQ5Thyu8wbFFQ#cDPLejFxAl?DNmjUTxdzQuk3l)XOHlYC~iN}9<-nRhKt5nL+EgyrGO;uG6E+{+ -zAfif1hRZzC3R&Rcj7cO0kQyEJ1{Xc(S)8{)zxCb5rD}Kr#oFf@2?@B(5|psBNQ%Nh -z(`2%5w^iqW<;N?Va%JS*Kn;mQSWh469BXgoMwQjav@&>L8iuECeImsqU>fsHT^1x^ -zr;ns=d2oNCtwu|TAfUeOsK1uED&v@F=Fsc<+iA9$G0}y?5;`^c$pqAan+1X`Uvw

fNMMh4M|d!-prNP0oh?SyEzBZ|nnBihhlC}jY>T#@m5PZyyhO?)ARXo;Tj -zt_rC|uoQBmd~!&2;U`Ol3g9bvZT(eSO00quAYyfs9)rBWP9uuSEHCd7d^9C -z@oR^Gm3svguNqtdaYI1`g< -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 -zcp$p!;>D3jt`zQf|5XauuE~;HUawawgkdRHb0 -zP*K{hWw(S+tVqu{E?#39^P(OQwGAw{`@^$lAHkxv1?pv=Nc7ohhN-sH4L%iAvjreS -zsk;7rhqFkvklQr^i}gsK=Fhr9g7e{7*8oNbr>;!P9Iy2LqGM!ASRW7?L&E0kbSCzv -z|B_a$dkN&T{kHj}1~-w}&GSOX2!5M4cjrzv7ID(3lhG-6)LdQ~dXj>LZ8}FuT0Efq -zxK5j~>?a>@pw5CE=4g-AKXn^o&1?4q;q|g2n4y@WlY-lw*m5 -zB~9n<&hqA^qE{|Jkr;V22Ij#(s8cmzA2{oJB(ce}S+Ke6>r@dzvvX&!PV -zrf_(%4=KRr01g3dgsFnQ?8LjzY#X^eDn$V`zi{su9(E)u`61)s5WjcYIs9@8mVbe}dHM`%L+>IBbwMSLC#V%Xh?WrCj%F#9YY -zPUC0+9QM*R**|3&XtDBsH3qmBCMA3O`H$+{;s=~E#gVglOv;SoBw)$cE605;iot_N -z<#_fA@_=&=R`S@EF_)!#I&byBg~9TKX&$oRA2nPVRW0`Yedi*E;bIK1)Otp&`5oCB -zTx>-J>rPUwnu9wTiSrV -zUfANtr-RwB0O-^Chxq8Ci_s=}aWc(7B0AN~@n4WU8`u%xNumKu8tc2}53%+|HmqbP -zT4;*Fl4(lOHtDgL|5YEd1Q26c_tH9dk+4QZ^$Bv7Kxgkj0uUVN*+TON*b|UlILx-! -z!YUM61p%xZ;VuB3pd -zZqXn?|IVQQX{%u+|DmCbB^mwUe8a*OJ?)Bl1cq2n -zG5N(&(&Nje!ZlAC5IhLy@EZx26z8?`h|ujx;6c?sjADA^vFWMOmcl#QihKst9@@d) -z7)64X#>md7y9QLwrk<8iRp~?9ts!V9Bp_oc+jwc43GgI<(_ti7mIl)99NW1OchKYO -zm+C0udvR_y5`9A2+BXlsq^`hPbw!O+QZ#M8$9rx51C2ttLCKR39#{>FNf6VKhe9D9 -z+z=)0xKV!2`b@zhdQZlL?s0C+wqt)zjwoBRCQpBjHF&yYFq8%Ch1e${N<2~_rH#qk -z(`@aAnzP$fSx1m1mE|%Hfs1d1Stn7dx)uB3bFwkFkQ%0;<|IFH@E*;ABD_d^PPW$D -z$|8Aw`=!JN)+bNGBn1w(03YG2i-p&haoaO8_{B%8siH3BJ`~`kguk#vNN8=Ok<@z| -z1od+FlCfXa3MxnB_DrDuy%?8U&nX{x-@3^I^{ovH--sMho>(6aas)}74qk=Z!UoVO -zJ*^Nut-=qTcx^*j3g23_dgDra$o2H)~NAHe|s -zn#bN8gT*;H-WplvJ)=L3tcAa;lDEy;snC!N{q&Blvdn|P_ncIT_xt7cZ_-@dcDW{6 -z{3)zmwhk-(MGPV}Fz(EPZ(z-kC6xRqGdSL8p`wJhEPxjBrC88B!6YJL=O;#5de-ie -zpLm4F+M_$Jdm9yiV{P;tB}B*W`6~uyBH0|)N`x_o#@MeoS+Lazjn$QUY~QqSDd_7K -zxGf8N$UR4^E}M*gPH*DVd4_!s73uuNRrf4>0?=NaRok1S`90TQd*4%xY%RvvlGqoS -zqVnh;nNk$(M!l8WT#Q4*u^0#jHp)pqF6zx0l%f%2v{hN1XBv=Pe}Yd&B!}t+toMe?BRwN+ -zO&`mtoMilP>{#vun`|1py;c$#+R`e#2BfZek6=#*cn?T%N$;9GG0c*B{E^Y18-ye(^Cn{f@v{#W#U#zz+rT^s~sr@oTVx8aSpjZzEhK$&J=&8>3IyH&^WTw$;*sgpF@l -zFufk6XL<{>97KL=Cy7z)jEjHoEcy!nUbHs$R_I3VNs17`w{#l18WiNAE}&(y=2jj= -zE}Ub{FGw;&6LavQTJcDOylX4V4-*Zx%ogoQ0-^@hZ96Zg5fxF?kOThJ3UmLn=W!UB -ze{iG4|Mv7`@AQ@=*tn$FAj=yGghJhD1Wh&+j0*meEK0*0*!dt$5LWb6qKp~;lI6** -z9>#nu*rV#*;Up9JyYXJO?AIv01t(A&fMW -zT2kU{{T{v8TzDO=-^m;3X@4Z^nO?za07VJ>hr#+8y|+B$t5|r&9;jd_(AGM -z3sGpa%fHzuD!`(tolMgD0m>CocQ2;Sh%WIG8I!FggT2P71sZV*7I})6H%qqDp^F?k -z9FA_vycjHojE~sD)n64^Tai;|hy};!o>RXvAdW^dxaw|?7kG+{rRK}44l!iZQFExX6WVP^V%Ce}` -zF6?&9mlJ3}>_=yNS_aaeujL&Aw0ynl02Cu5@)OcNs$Ul$lZ0L*lmq1nE282tN0hMb -z!O+Em89Pl{HFy!|q>rb%I4P-(J8AY#-)IHoOEEt_=V(0esFp*h7W-_u&;W1(1@e^5 -zuewpl`JeGi9XD03+*Z>=^HFY|jr@Yvw~u)2iKZz;D*Ed<8ed{@h>Wp9!TBQqR%ckE -zcg7TE9bYOZ&=!k}eK)nxAJEPmDgJv*Oa>4;SsG{HaGhJBOgdA+RLQ|*>U1Kn6hD&% -zWg<-L%eb#v-%Zz$LvHC&!_1b=2W+ODjg&hh917DZJs@NQW!vf@5?p|^Y1A$ -z0L`G&`Fv1n*g>*fG4StbL;P2dvww>uq<0K*3nsbF0WcoQS1?lvdKI>p**){K6Vmm#>Dq$`6v_~ -zc)jua7A`POd;U{q{~hI@pb4IdBeZ0a1b)wh!H=M5ip)g!TpH-f8r)~3X@PH7XDWqb -zG=t|n`k0)tgk>Ul=?$SsfxbZX$^jfXpkvV!K+ds~p>2)h!eSOg>^1fa)2?l_aoui; -zSf!}~a8x)yC0{W;W@%3#ljYwA<7&D_b8OR7)4+>f#Oy&msmS;WaChTL{d -z4qe)hmDG&r67nX)SHPJQRBp?#1L(<2WUt@*id3 -zYRMmq=&5619`|hKolvSdypG(>hL75U=@@4Hx*F96#kPvvhHEtaWdGVKD96aP416r* -zw}aWCqwdO1^;OU%vzyzI3V_phy}9%X_Wv?jvcZ%>jg5rz%7t3w{b%pCg3CDU -zvbfr3;7txA053%-BFg(d!xI+6&KiFz`|JYQCOPer9nS3Vl~XZt$a>;;nwdb%Dne$8 -z|JqeOp+nhxc=XFN$?q`jk?s}FuTee&dL$+apJn`NKOHbo5s?f2kEW}DsF(}MiT}M9{&T+balCi$`|i%p&OGzX?5?t@ -zpeSvJn8ji2vk?62y{4V3H;r)Ju}oILivd%3o?Nnx*z7zcOX&KA2$ -zUdTq-{f6zrE%CY3gXpNT*Zj(okdnl+$n{F`%ypTx%uYuHO7dFn`FNI2DV6R~0ikj< -z2c{&ulX`tqX)QltkL^E3lay0PoPXj4!|8i_UxH2>^*qI}r}C4h|4No2us?{%GSDl%wTe@@COkT_VRLnsXkO_0X -zw9oOP^<0-6ole=lF1-8a9{C31xU%Nx3(I$n8f{L4tz6Sgm0njE<~ba6?8Ewe)m -z51fHU4T{Y3j30hJFQ%P~RZx8)BFO#W{7BUdMPSiMb(8^R2dCZTIR&)FI5L9yWf7J; -zM@jxlyMYX-KLCOj)!|;s5xR5wXbTOFaOU{b|-%aP?uz}ey|e8(O8o%g2w4~*W;>KFG5$oVOsEk0!~MqI9UEgcP< -zEIxH3^FeyTc>!nit>rJJa{YlCPh7nsZJYLvq(q0-sZJ%Uc9b>@WM!d0zKsgkDSd7DDz-G20P -zDFpO?pzIk^70U+?G5S=6R8PXxB66CuyETj|+PUQ(G@X!`9EL -z0U9O$m(Y;yj4qa|O>8zc^<_2k(GR@Gum?&3t|hfqZ;)}?pEGtNAL(c!Dx%u~h5zN& -zkyG0w&PH3#ea!^lBvp9U{AzMh#K>5mg|IIFZ^sGmUXE(KrlBX1#cfavo&1)WfA{?m -zzH=^p3Ek|C>fv}>An~ubW3ro$Z!4@ -zAZI{kSNAV)_jzO16?b+u_wSg7x2#TtStivqzfEBe#DAp4;A7Z7GrAp5vtz)GuyGq` -z$Rj%P-%oJ2HGa%wBaD?GuSrXdX9p)9zA&QoVpg$m86v_4_R`HIiMOQL? -zI3w}32jl8d>K)cXJS}q};Yu?4eYD2mMaY;smob-|+?AKPEcaV}(Yqp$oaH|gw>Bf1 -zrJI(N2hQ^a3x6@LO-#_X|1x0EuUv6F%f5S17i1^)Su-?l>4;TCD;2S2mslnJj)Mx4 -z>xAW)|3fgW+Mfp8*z)}iS<>kzlsTD?X%%s1=M(>CRP1j~fU`S*YU%PI28kN;LRwrk -zljbv{uXynZWh4KzN$(+3=YK+wPO+=RbKYz-p~iv{Xm;$I&Df7Jb9eFf4-dq4#@#8@ -zg973oTm$t9t8pcg*-1CyL<~8eofj_%zN#s|I7<@-&}fS2-9SS-)gFC{$Z -z`Fl*Q+v7=8*~w;XU7y+Ewrar7@F -zEVVM#p5#G7vDLJ&yMWGI@$DLPGj~SMe#jw&XYst2V)*fqunE($oH{2DH0%VgGM9fV -z@c2@J&xD|Kq)v~qAlMnpuI0#Vvkl^p350p%mHwgci%GYS}xkQPXOl~47bUZ;9 -z7CUBpl~MQO5BOb#!9%wCUup6W-fEV?J41xS`y%$p$Y(`x?3>9acS+T6+1;BIXmv5_ -zyT$t>GDzH0^>yttfZK>S{24HzQCB$o9qpY -z?>C;?oL4X(%g>RSSlG-ngbQFd93XGt!iBK%CyBk9QThRK(}I5ZDa`W5c0(>dO>o?z -z0p(-0rdv$<9~!q=&!R6<5bczQ8zK8ddYzGd7d=_q43BUhaxIl -zv+F}p8V}KpkOJOv$a!zxrC^44%+a$BAzQ8xB93*!5e!_{_ -z)B0B3Lr7G3RlPA~cD#SBk -zRzlYXF9y;k@^DGF66W=4@=24?NSoNU9GpEjV4iKKg&HsQHE_RFesGF9a7?7c8K4VS -zHcx}xO9lN`{s9p8zN6@T-|vDl!8&>H-`O_C1k!dh>I83qx;!> -zUMqEqF|Q(pI|1)SA;?F{4=o*q%jSc_tzlL07aR5@O|I~z5T#s)7lg*(_b&8}8g3*q -zKD_#}`;tkWd|6$EEdt!S4q@A$`%PGHBDWoE6GF)4K>lsp0SP^!6IyntNMf{RiCSnq -zUMQ7ydKm=LpH`UK#aY5aUW$Hv^R=Mm*>I`!b8*x4_5TaIzl!5o%}GN{gcg;Ahn2X# -z-g#!0?1tV>6(1B+AX{ezRxPfw`O({QLY!zoXA@E0E4t=Y;dh+4_9)erWSu+_Fe(>n -zx9gdPk|S8*#Wvbaf&GxuGV5TOf<8x5I&S^!KnD{io#SBwO|EKB$0b^(xYJQ7AN%Js -z&1@cs2X}0DbG3^U^_JaR=p`lM7>`s8b{XweEj*GilCK({0a|9JFcl`9&w=Ay5m7wP -z7I~#SX992z9WFcNbVjYDTUU(_={Z}E_7Yb{kv~MW)^OAoIyqE~losfn(ihkKEOApodRD#`rsLm#_EjMS#u-WkT -z8X_KZ@(Hr*LAgGQSw0U83dF>DO<$VdsHNM{!L0pThzNW}dFm{m*2#a<7GgkYD_)LK -z*#ozjrP&Q*{lDre_fzCoZkF=z(M|`bLNkbEOE9aO#abR&Pp5Bq9A6H3gV&aLZS3gB -z`ikZEKwv~KA2ts+id_~BuC5T1ej^gkZexzqde}RlwiMWxW=APb5%J!5;jdca&$*R28BtX+55;#VZ<@+8&*1ET7J;=7Z@mdKb&IyAN*7oL@7{9 -zf#rSngvTjlpgxndPbi2+)uh%!=iVZ -zJ<%FP35!RoBQcF-{16aV{yKzV!Z3q^fO%~>rk43X5AYFMfYT;S{@%4iaeT;(R?5^I -zH`q@7hb=!s7lfmMcJcsuOAplPHNBdfogV{L5X#AQE}tXS8v@`=4`5s0Mlvt!d;^N# -z@F1TL8xn@0sY)-QaYb$aD0yM)XQ8M@Kbc5K3CMEj}cEnT!&Hnc%!s4P2I8Q@}zH<~>?Poagw! -zBe?EC!zUAM+-^Rx84v2q@kAG$H;8%Buq&(X)TC)3G32?amc=DgfJ@ZtM!?7 -zSP$9!_Vm;rse>6>==(gOLa-P+0jhT1Qqq0$=K1S4Dfa$bh3~qH;I861ubt1AfET_+ -z=*AIYSwhL#LHT7plQ+>B&b9jq?*hvFqxa+fq#X};u-I1uRMWk06{5z8`RNgpQPbpd -z9598JW6;)eYXKyr~8g!T?5=r?bn@+hZ6LI9BKUBhthe? -z$Zul3W>$zH%Sfbo?&@mbrmfo`=?3j`2&Q6jj-$T3CIl;ez@^9#DOxlw|W -zXz2O^W0MLZrg3;VE`Foh#pc0b_eRwZ{vD6=^v!#>BV6g&RM~<6k!=5U+(Y)lnm?;L -zj;%<`yCE%vqg+NBr{yK}13H)kd)0+e3;HwLPyRR9DLOMwh7wE#1z8=d-Far@lX{lioLhM!n_3#d=Fyb`=ctKKG& -z)MLF#_Q)-TwD5#-X%eqQf`b{U`>T5~6uBE^{wxDxqeFQeH}#f4kIah?I&=l=v|Zs3 -zl%O(k9P$H5C=t#59W&2Q%Z)~3ef?7JRuyHiM#B;c_K%30?x*TT-K$0ISc!7BZAV8I -z!=a2qk*v&I?wIb<%!DbItUDp#9k@usL&Qbq9^0rAn`wbFHwIHl`1&s24)d+cjw&UM -zqzCV5^-?A^q}6SEZ%{&QJ12!Uvdg)R_3#DmnSN9mo4luRdEsx|LvlSbtsjEHkg4A2 -z8#>MI!VYmaq7pHMW9t9OlSf336w>H@hM) -zjpZ*nXd-Do@8jg#1#zjRHr~*j3Eh1eJ<>detoRe7$~XeqR8x(aR~{`Y41&&*of50xLIJc)^EMM3)=nL!&UQFw-9jIzFy_?=mB) -zLP988v5D*vlG?7iIJ6*^$3V6y>D|3AU$o`~v@ye*h;;wBG8yw(>+Bpi-aW|s|8Cft -zW1q3bX=#*wi&#}iHi4(4SJS1mO@dpAXfW5lZd#H8&uX8t_WKl{JzQ&gUk=l4aa`Op -z^6_XEv?NWIow9YOKF;Ls;E=4!u*S__Yd+;SJFTU1{tO6QzL5eomHddB+#L5Fb5o_Ao>IY_25~)I}$fVkWfqI)8OU!p6?`bSxv^$(+pW9MZQ32a+BZw(7`1db;Bu#97BQ&(e?!dmJ-%WGh -zk34>H-l8?{cIY%|6|+DrZsCxj4=eu$dntE0@$Y;+V}=Zk{CMSQdmXq#B*6`JM9c$F -zQwV=2anCCDvdyVq#;2!bM1h1cCVI0!gO{d%N8W!ie0rSml(R(QKeCWN8C}1vG0)1+ -z^4zK{>%HWod~T&%iInKb=`!%%drZSlAgx){*ywFi-%98%HK+QQUEs=WV4Y(jz{+^! -z;x4geA+4ejDX=CE(r<3PWBU(QH5(?~!tvZ5GafAV&%9XaXY4CyS4rZYAe9aiZmVRgIBuo87 -z=ip@(prOWaVy`O~2vz%^414`i>M+!k|iY5)za7CW( -zJ2*#0M^}w)a<7dGbZb_0rT6+N`7i1Y>FTeNvxLYbN9>}Grt5&Fe@3*K;3on(`zQUB -zE-Pos9J`Mh1?~}ZX;|Y5_VFP_R(bLf`B8Kq0=eS+s)|Pi9~$z6pSp?oh2^%O1Zpwy -zh}|AXPZC0ks(K1l11giWImec7*>UgJg5T3S6=T5I6dO)({&6ByUDk~a+1pFz{q{C$ -z(T+y)$Sq^YaE%{Z4qmP)>yJu~8LZx9(vR`^E=H`c6&Rzt60>#KTy@x`qs>=WLka67 -zJmWNULT~pmej&k@KF+l5i;-h}-Q2oWwvxC;nnb*Gaa?HE(_Qr4{(iLMC@PECo9Q=nTt=92~Aq -zWHQ6S=H;WiQ7I8D4h%ViKgM!oJWfu -z81P92frZnVg8?YWK{!XE_HiLaw&x~$#$;9^>_MOZqP!jf&OEXpIGf{0yf1M4fuYqgSzg8WahT^aYI@S)*!u#qmfE*3m5>&TdGw#7Z7 -zb2f~JK>hB$!r53p&BQ5Y!wu!(or^@1rz5^ebt70|Ltvn{@5M*QP!5+zR!2d}YRSkEZ!~FSlq346;XSg2a;mMrLe(;vJTX~l2AhnW3pj&V0GQB2aj0HhzN#EV}f!gWJZ;;yUF_TBAx -zM}3x;rO_iF+o3+^$nju0&~|g;cnK?onbOlF7qI=@&Wn~ZXv{srgY;>%llS;sGee?c -ze8AvWBvN&)@Isi7wO>k8wP0Eh -zswZRJytxvrC+P1^ItrAZ*I+g~H}DYP@GR*=hj8>gn2zOye;Nn)40|yWwNS~Qob7@8 -zSAYiqfbAoQ(MUua`L9yR{g>7rw?A?pFI7W^N;A-R&AW{WMIde_C)HGct@K*_Koj3G -zFR3?LG_J>SuxSa^h3K1hPxHRzu~7;HALpDAGoz6>*--hu<4i5d4)e=`8@I=5`SSj$ -zsw<6CaBtGlj!ov--M|iNbrGqXC@s^CgY&(zf*->iKncuj-Ay- -zM|cBwIG-Qz!$ZG`-3c<%*9f+wyB?}I-OTmt{ZP#C4DGi-O)Uf-tEQu+4<)7haydHB -z;CR}S#!~0R$iq63)Osu>$xkc$>=(YwTTxkNH6?O{gAuiBDD}HP!UiJPTq1D;t<+`# -z8>_iG=LC%r3lb2du~#ASJGNI?&;0#Hq^&Xm8iJ%@Bxf@3ioe)@jmGb^ubvLftrljV -zt-SC6-V(YWk%(OoYb4V9=3FI#Q>rwQ7KvnoTjB5r`e(#P?LjWh8+F`oB(D97@C{q` -zoG=QTrLfBDypoF_EE)+F$u*(rkV$y$F(v1rv6kYP?v0^bfk`n4zf&HX7c?CLECwJ} -znpTqY;jQ1~Yd9{y5^u2?dh9b@RJ$taESdy&1_+jh@I=lqYU&qvqN-eS7xa8)fRcT_Q6?_?VPiCw-1Br_%eMNvuUXcJPbw*x(=D8nf{YbyYAg**UR^ -zK;DRHpk0AfSTR(K_Sx62V>FZE7|8K`=_fI{YNPxVW{T< -zh_rKx4Z}Sa^mX(8;_LJGhZEV4I@#Z~_4Wv=(IPSOBkDJVG(#2@)3>0s|181?01kT9 -z+q!&OC8xQZ4du$j9)XoB>Wjg79D(NsBPHwfb&U2n2EzV8(;e -zgB*SWX9xt?#xiD17dV4H23;SxeNu`8yH^{Uy{v-uo?~@|hOcpzJ!~~7#}4 -z&LfM`l{63xS~7aw^XAKZ?bf5=k&JSIKGA5A$rKNtf+LjHc4;gFq-U9$8EP6(s2#cL -z8E=Hr``uFHel>8_oncJY3okqD3PWU70;&&?3??(w#>1GZa;?HAr?yOqqm56w6+Uhv -zhbSvq&AaoT>c17{it?u}@!ba|h8@Y_C;7NClcgNU(Ho_uH$PvxaR9gvhS%$6I3pv@Ivn1jOa;aak_)U0m-=cBccLRU)CGr*LVcLpj@3+n^m4(vZcU0a~1uL?vIpBv&Bv4@Z1?~pcK+X(eVC4}v=p76?t5DxCjHza+N*VZ2> -zI=?>$C^r}b1>;7pX!Lfw17G%9dN;=8-kkRnn}!I)Jbt<>jkQPs3%5geR&i76R}{y% -z8wrA5R00b^~$k^Ert49x^)8K -z&-PO$)!rqe6o@6DNTC(`BOcfiQOr`5tA1tpK@&G(WXU-kGgYAHAN#fe@3*nDwEeBE -zA;{F%M`I#NqHrMRu8@x&!Z97{cD0SlFmQ)({x$yV#?^j-e>i7^!~-RiY$cU^&2U-} -z0pp8)TzKzyc0wbCT*{r%5~^XPzncjnxMt{?w!w0_h))tcar=_Y2_XJ0@5~Jyu`oD| -ziG*L{ePwLuEV;RoptK#ySy^&)R97O`jh)!-!g%{PWo-yKSg(w?k`=!yqgk)el4t6Rc!7hn%i_-Io#{q5% -zvMoD@e+uej`$e#8zcM`?@fQOp;f>v~CBqSG#|}vcA`0Vy -z%^Ov*=f$}VBY+hqsK7rRtq05Im1MobV}R~053?5T*v3Y3@yS|N_Z@h=bigrQG@o@U -zfGQ{Gk5^wLb++xvkVUWg^6O%m+=Xez)~l*ToAUYqdH;j~5h|Fd&_EScHL%hy+LqbUz{F@$+uJDhX9LGZyh#*r~k`5mkOgi7$w#LKXArjkOeb -zP!0sBKUsqly6F?==&6Y^472>-8=2*0@_lZjSnA#h{k*&Y#q;Oy2ShDMd~tFL3(Z@U -z`L4f_L^xhNTE+^sHNHA6K#_dcSt!k?&;1|sk7#f(tUI=gTLAy}FRd_^@4p@inK-QI -z`$kHRY=yXC1rHm#n-wce?t<^wWvB;JHPjQ -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 -zY4+5K)}6H7D`FeQEP)2KQK^>#9^$t -z7O|1Q_95_^1P*sPS*Wb7_#U|%s-*EmXR-`7m+T1Lv`hw>@QE9mjCz6?T6$lMNZU3? -z?iap7A}rXNhireSPch-|>-SJKuPu4CAG|nEAk^A@Ki%G@_3RpFg9`BYyLX%ZK^)Y9Bs}3Zrbe;0xYb6wV(#Y>=^qG -z&F^s^r^TCdV_(%Vd{`pg^02Q195JARY2)}D$kzPuv4g2V@suL=8!#X17w$qI7t}g&drc} -zKZ05xbHcJ^EG@q+sX%Pmn)ixdn$^Hl7l1-WwK+-1Aqx)Y_OI_*$iW_Z-TNjiz_E+Nqxy^zrW5jkH~*FV$76Cktvb_wlv`FxIWD!b -zcQ-6t?rZjKqJRMY{V*OWa1`> -z7OB#Xw#I6@9!iT22?{mBOy*WA3M~pi4q1rw-OJK|=z%mhF=mVR?MpPOVIcSsSN<#} -z%<4WS8lp^;2(YymSrg^Puh#mmHBQ8l<_3R^{u`_kWcvKE6g2n?>@tCe^jm}0a}yKl -zxLlunL&v@OV+dVP=Pd+=r@;CG%u#pox&O#)bnIN;=C?=eps(ScRb$8X_EiJ5wn6A3!BRQmi~^P -zJ;t`*oi|l^kv_pfCU4S%S}J*GD_vryI9894Dwge>s)1rN1p7qk({+Mc; -zNa+V6--GF%7(}VZ3*i}3(wH@}$&6qLgiT;K3zS%thhmW`6d=6ox+5x4KB?xf@4$Y8 -z0s7BGHL8dPkyaefse?CO096oi|3ds5b%HF38@3`FYb({36hEu|< -z)^GaD*aHTEnH)P;KthweL)f3sZ -z<0AD%To_l1n>e4(D>}fuyPCLZ>H2gBU>8GR){3@%+VdjVdMN_dgbxAMIRb@zikih( -zw_-4Y2ZOTXyEC@1b@WfT`0##=r1l!QgRJyb;tdF+5B2VLh;|6EqTcjBI -za(Q?KCPOy0!6O)gvY{)WOe}>l(xNTx+Iz?WbPFg)xOqqYg&t+o>k(C#uY1SXH9Sqv -z2xIZ5A~5#=D`FiUGv9ACayVocp27BO?btUM2#g6!0K040l`kXVkS-S`EjIZ70rFDj{*X*40&*(puSqGVv -z{e=+eupKBGJWc&J$H_-T0~8>QB$*V@#d?qwVy7U1ShrYQSCZ1 -z{H8toDF7dvwqe0(Dh4sX!f##1EUl1OD_TinL)Dk#I;5fV#05qjV!+DwnG0pAHljJ@ -z(ET#*nDrhPNwb#vnP~+@6mZ17t-aYOf+I4NddLw4J^eV$Jpxqcr$0>xj12j#k- -zt#y395IA>djSU0;>7H_PuV$;GvIR;ZXazCtm_pv7Fr}p#iRG4_kz(JuDQ6CJ3k#v! -znIPuNf~^kJ@A0FV?OqH$-J7Qi)s9nYc~&5FS@WjpXZm;Ky&us)RJ)_tiHbrgx781A -zxw@rL0!#xt0cyk#J2{`}_}ItU5%1SGDr3P5aiqT_f$zQ&pvFZ@YzowN^YyL2^5~0h -ziZMb@e!O%Bx&mbB6P`#t>(Q1GzEfGpxX%2c-^wscn>rAhw+XK}jwX!y_ki_mcQwv8 -zuERE<>^fbkE)|!|`3NI4z1pDy+ipCkfu#t%#K8MN-R2XK5+0qHq)TH{CAK@V-0adi -zm|6$>i0z$uLC%kQ0lf#07e;D>Urt1b}8na4pY-! -zP?^L#URpnjBYZLl_@$Ht0`>P2v&tX}8MM~mAVs9&3L4SVPeuRh?7EGm1pCH*8**ONug|U&N -z^zT%~-V4RK4@H2glrQoZc#+6*_u{^cCgv2R#vGHjAVD`FkT;5pcokJs@+v-XQ!}<5sS#N^4tCjPOwC+Sn_c+w_@DG{EJPQv(K==2RH)If$1EM^b!b@5 -z6M(~%W-B8`x@Qw{DlABVSu+!63Lg7+v2&fXQxzRz_9GADawFO6jF<+e-F<=YzKe!el4<-|H6MTA>x-Dqj5h42d=coHH;nfncF_m$ -z%5*3}+#sC(J&&nbn(pamC}yMGP8ZPV?EnxAKox)+t>z-%b=yA8vq})meS>9^W11-g -zR`#A}I9oD&`c<;c;65?fmi&e~U2#@3%k>D3tZyR(3OS0nNJ^9Xj*`Wn`XoLf@Jkg;dNi^b -z6Q2qr080a?-6EQ1KI|u1-`1P`X9LQ-nHSd@XiC&B@x>xJeaB>t^i^VkefwQ4=T0i< -znc@3xaG9?q{S5?met>-|G|{wS_t*};soV$1N?u;ct1+U?d+UWF$fJ>$@SF6;I!nOSK`-tRLAl9UP$OKy53vZlZ(lWAWL=( -zj=SCgLJ*5{zlo#bJ^p8G7yaYKWsZc1uF*zOsw#Wb;LW!r10WnYVD`+}OpeMY-K}go -zq!rQ&Ue#>s7A*4%fV~9#RgTG99@5(YMFfN(@9Ei1`_8)$>!Y-Z9S+ZGqJU``R;xH- -z%N-z0SZX@^sx|z1kqaD>SN&5KkbY|QDI_P*A~bV$P2GKdVj)N+O&SXYrT?`x!k_)4 -zyF`fcj`Ks?rY;#Q_~F`UMzVx@epVayjhjAIO&1P$ -zePgu%^NmLenoqi5LIKdGH%I!V)hAro!!&WM-4ZUnbU*I9Gs4MZt|Cqmhs&Nsrr$0% -zLvjrAgM`Q-v4j}?B9=eiOB8e^7clgWDQ$Hb26D#KUithn+vs!$wmv{ica+lcm8Ibq -zEB6m;h_j^^O}M)y-$GYjz{Wx^r>4Y@g5kWa6lyy9HDVDQiZ33SOwaKKshwoexjqe< -z;GcIMR4=M=Z%D9@ieB;!4t_b!fCOPP4^6oUphbW)TSWN+sI|T@_vF?p}`8DnEjU|Glec)@s#*vb^PgPw4bCz1u-%cKBdkV9NKvnvz0nYW4Wsk5N%Xf|sqo9R)p$tnnwpH( -zczSP&`c^J(EBVPIycU6ekZ-*-R)g4*Zav3J-Q?f$!ZdJxLJF~e3^5yLgki`3dyX7( -zcHY?OVe4NR3P-=~@$JPXpQ}q&fryrxS1~JSP?X2c04ud{D4=u}?i#n@xv!-lEH=%k -zzYi=@#t?gFBkBw*C=q|4iD&*L;h3cS1zK+zh3qN|L(RAAbqv|Ry13n2+n7J^fA*?t -zZog(Id`(k&=EgoIw7C5JboU5`W? -z9tl=2W0!N}!wlDv3Zr>icKO32Txv0-k( -z>DKC$3Kje|yQ@O@P2YCZ0ge@+I{+ZjCp2j3{BlH&{~xJ@*imisMTjt1T5aWvPfkCU -zDh)n2Cbr7^CmNGStmh864>7{o(lVd+mNxFi^-2TXr7OGwTPAkG25-$!!Ky -z$79J%{T75KjD&7B?yo-=c~7e$r1jDh)MM8yX~_kxvUQ~29my7X7_I}fObL3<1IrBUK-NOPp#F>ul~n299c3e3ilb0e%`8$ -z)u|_MhYLLaUiE9X4FOpSGq#GPsUM$|SksP1Mn&j~8k2VjL_mXURlk0YRmw(aXa$5$ -z*wCVwT=6;OKT=|SU6ghZMiv9H&#s5XlH4GjyFW-sI~%Mu{aK9Ip~IS7kj6A#(e*G) -z{MM380^NO36nZMDI?^?#aPa}_;R6ilG*Zz|{wb?Ec|wsAWo0bm -zBJ##+YLqgC<6ifO%H712_g-(ziJp-p%`FE4zdI64GctuQbt)oF9IVT4cj}LG3ieSz -z%^_8yHKAV`LMAY7^`bJAV2o5sW9TKQ`lcPBTtLm-1xo4ggu%vt{Eo&SpE97h<% -zE@UAJE5z=jf5?j*aV0yKJC_qGt63{30+g+MQOBu-q1mIO -zXhkJ#7a&WPy6%!N%r7D06~^|TBVQDvwJ3EXKnb8d^er+%$PsRmD}Vwz{ejjVJY_P1 -zISbIsKsdV|%y*`!V1V=ADNSMoKR-|y1O&MYc-XX|Uxn`WN33AImjeS}(3aL*P<{PA?JF^7Hb>Mvz>!n9`ALgaMmp5pLmEraVzV_mPX!<~| -zGP2p2Pb3o5Yf(9tMvLjoD&)rJSaFA2z@V-L7U9ZS6rq+1e*ug;f&B|WHo07%!e_M+ -zB`Ba<^9(lbKoo+|Xx|J+cT;9$r*XT#m(`AWecZLu1VKKdcPHu@XM&~;?XFOISCe+* -z-JJ<%I8NVotRSMWKfY^B)y%T< -z`CClmy}J`9$oHVs!ys5uq;PAf>=JrsM(;8~fs2fC^AV^De2ArMUr_^{e9No43pmVWME;~pVUGlP4aqur#COj1%>(=ea-B(42}~4gme8_-Iiynu+0~g5Z&MM46ON4?hiYWur4Pz6R;xgo9sc0 -zkTPf;!Y?756Xw*GRN8u3>@z3Eb}n`3k*@JW7ZfJy^!O(jW+6h+P2OyDjJ!z?nTJ-8 -zdDdtmtmD1J$6U0IQ0#oq)t#J#@}b`fZ@cch1C -z?hnSqA^)SEs!a-^px$k*5m}y| -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 -z5ok9Ahq-{&sH4aY1l -zo3cF5uzN_We*A>1+Dr4_@$eE9Y+CUBASiZ`q2AZhAIHwFyFsIlkBYw9{Rw%Qpwh@2 -zar@zYrL@(nGl|iA;H`^BsBGfp6GAK9jAt7V{pU2g-OrV;of2irVN);*6;K3f;+WE2 -zBG~BGm(#jIla$4zr8BT#dq1yT^Q-@7qtAU#;^keB7o>q$JCkVIPkoM96t?a;)8+eh -z5lAF5osL}&a5{K3ijNzB=~{M}pe3K}^gd}?m{PHy -z4#d%Hrkc;!eQe@JamKvzqK0X8`;vMpVfVA8ge%N2o|gVY_(a6eLf6XI^qzOo94?~r -z&G!cQtl?s1^8JYSqv?i)lGBg)1MQ+D{t+>Hvum5G6t5@b>j5ZT2C0R*n{tfqqY$fhr}7`l -zTq$wU=&UavI_(8RE1K6cE?*wENBGzl|wgwK}Og+)^m5 -z$WAnK`mL5JFV4*)Y^$62bF1p7S^#nb_3V%)~;1neIXMGKcD-PW?K;5SJ-(~7@yg;G?}93i~2gVh!UwOeQwqq7d5;p -z+Hjn76h)wUWsVJ^7q+N$wE|@N$>HF*?pfiO&y`VTxm^5hLunu}0oBTtxW6-W4@qwp&DA@&bdox8zK8F` -zmW7O2y~({_Dwns$8*SI)9Y7fW@3#qy@CJHYBLu?I4ZWx5eYH|)8(?!^@~v$56K!Z@r){n2MsXZE``3G^9*ypVH&+gz4{9al5JxDYa623K@TYnj6 -zM^-UGD*8{628%&?faj?O`RLfFSGyQ7|H0)OP>%stHlbEh@;InTCeU`@qeJHSThKmq -z$v|tU;JCdeQz{z`Uag~@+HWkObn9FDR(ZNvxbr#m6U0aeYrLjS=BXWC_(Gw9oAF-Y -zKn@h_yW{|uO_y*5r*ogpeN#U43+MeP3b-M~KOB<m4H8D;$*>>vT9b?`LZt?_T`P!TmC)X=>Xam7JM=`OCg)%e*USGR-?8KW{1rGs;DysYDbL~w~IR?r+jMiVeuSLX>`zw$ -zB97Zl96&dwrOhmj!;x2amAkM2t^z&r2QeJMG^?45o9u|;v~@CQ(}do)<0@~Nv9i`7DCzgo28#dprzFDM(53>e0F=#iM}Uv`Wc~yjqVV<`y@ooqQUtj=O#0#r+8rUa!aQ9)vTPJy5J!Njk08(s8x0d?j}!Zkp(mKmS0E`2e>dz+gP> -z`Ks?edMHHa7*6QOBr#0V&^V-=t`h6!DW!&)o1G}~_lncs=5$zjsFIEzgDT>>O&=}7 -zO@)L*l9`gB`_vh9X14efSOF~u -z1ic)S_qCEQSCeypD+LbK(Jz8y+)*@1Ej3Mw@3j58xSj{PFVup7`V8 -zE6BD-O8`NAjx4VweU)W*$cOdtdlO9%r{n8T)L9BmUC{C7`UEYl0{hv?W=?+F_*~d9 -zq3X*xWcYPwxW@0Vc)}G9M{nDRlv6CH3vrNDnPV`6tFhr=P`v+o14yF@%z(8xhukg`rQMcndakRAl -zy~B`Q)3{`d!kMmd0$9ddBJ|jJBbr!k?ofrFaH;}Q!dnyQ_ywH77Pamt^)!&iCuQWt -zLv~RqYFmda7@~J>hp@5z0TRt{ -z2N65?sCM6D%BQV|Of$PtPs||$u&_WHL(J&Ek7@6ido7QR!b@}S2qk(RPEFR66ZuO@ -zx7X8#-yNImymuaUedt&ldvkHi)`I6@)&8U(U-Z9HDny($-P7pHT|c0K2++)=PUbFM -z-e=S=QrSC@NsrL<^Qrf9YgQh{&AwcHyV#~?QXw)HkkVOjom2A*Y9HX7enDayn?dp2 -zpuTSyML{RLeZ^pGN3Jv6X?mvA6G{wO@?9r%rAf_Dcl&447Q9~(O(j9Gde!joZM8yC -zn=17pW$|4@26>b3IUEHa(IAzdZgXMni3f4>MQo81C;@ScKC~X&52;AXl~hQ&Y5DMW -zb6Ft_;sxbe`)uw!wj8V&N9?&UzP6w!>Db7_&y-udC!TP{FnC&Qnb+sB=_-9OpI)Ex -z=Zg_coyA<%b6T|hX@L}f=t7WPd-F+O90a@Zx1cNxC=60YcKhpn)Ilp|Lb{zpW8*_f -zJGRM&4YkU6D`<^QYW`F8me#MLPW#xfw -zj0VYEC;ZE&+^64WZ0HrR=+#|NRi0F;3%|I!pi2tt4n*?L9{QcQ&fyCt996~7|moyytK{kj_H8QnvQlCN(n;q|em{D@-eb3YR -z4Dj>VxN?34v%;P_5U*kUJndt`itqyWt<}eAl=!{LK-j>T2o$@ey6+43*ea1lCGp3PoV{AGRK+pl-8+T3BR5qki7wWvQ! -zGEL3LA0X3%Kazw!HERkwwCm@E)qaP1L_}4~q!Q648Ae2=k!}%JBudhgE=Qk+LSViP -z;At}_(}d5~mPG4m`K91wN&eP)w)(>uWC)}JdKe= -zr$j)eBJ$yT0;^$CDHozjga{zW -zP#6r~f{s|woi|_?xgwvqOb?2#>(8gZ7j(UA^uqGuyDulM~hpG7e*A6rnb>351p1xXudb_9zL#yB8ya0OKi1bf|tV+^JAWfgmyCT1;Xk&*@% -z4NQ{eqR^-Rie}_}MkMmbtH~gbIFyiGXkQp;DT-{bWQndKrVnB={cCsF#kZ1GFD(5j -z9)W}yn4^i_9*!=$mB#0EGlD6GYNKKo*Bd6B8+x8S!ZZ{#GIh3c!#?^Vrs_O`Aqr?U -zIE(81q?a7sScH_kr`nH{Rk$dGN7S?x*H9 -zv!${UcjiJ-9q%a*j<{xP)nd(peKQ761KI68!oN!Wk+vzMnH -zO7eGpT&PP-UEeM1_=crBkvlIJgwE}r{>cOCbDZ2!2L)N;O+WS#S)xA}7ag -zBTT=01I;OhWhJ;?qN_*we)|$b9^SBG@$K_s1bFJ -zo7q=5R#kbMB!jDGzqxNeN{fWxB4m|D^XK3+FT)Jlew#hmP|r@OqDyDYHl{fGI6t>MD`)5z+4+B{;@>67EZD(wdsqov* -znyP1>lVHa7>S;;LU69z=WW$isbfM;0uf-&XB-R>jm!!;xG*iboG%-5yA5j%DcW+W6 -zPTS*+a%`)`XelpT>j#x`uLGgvpN&PeRWHn<0W=C81S0PcUuWA&%94EPmJ*KPi8+Jz -z9qPx|(Qe1@(I8s4YFqK&vX;DpSg-_S(3?csJ@3)j-k>Kd6r>Yy&Z4;iS^*>8;`Bu^ -zT7Nu}uAck?t_c)BL|!yp?$?}QxEg!U`$Axflqy#oRbKOyGbw6cZi1MLtB++d*;Hsw -z>)ZkG2qwajCd-qv92vJwZ##Rhsa57O5c1^L2=)%ijxywtT_#riPi`_OJ8Q|8%=9Rs -zQV6RW62FOB$@2EU*i!i+Wy?~DmM>M)@V)nZF-8_*NbOdm+Tm>EKQ`6(EMlEoY+*&e -zsTf;kxgz>Dm!%A1c&#=)p)CT_y^HNIUCvrp@Z8R?D>=gTbk{4{FZUlo(?Pa8-ym$TkkVRO6 -z{`%G&W?s`pB_0d@$Vh}0w-?1ZQlHKu@?5s$t6&j7?kwmnP_Bo`pAexJUjld5D4Pd>e3#A(`*|t)6IdIM@=@j8M{IjH$9)k&03VXM7 -zi&nju0ELZ$!V*&FZDXmUDSs?pisKC}mw<}Y68(Rw6%CjkB=+N9%}^_qZADiHf3p~v -zq{o}4i<6C8OV4OOFnlWMj437L;EoK7i`v*|e1wv7udC08soiSNppYV{I#u5e=!G;- -zQdhEHep(m=W5 -ztJj3+hB8+f_fRZ@oK}GF!#loBMoCj4`Ld-{Nx0%d5byy#Sd~b9*`$a!U%!viMdyHf -zcd?fI3bk52Se|n+`;R~A4S|*TSSp+*u+wz>q(|@w2@*-xpH}(*5h`BMtvh|7C%*w*qh>XPP-DQsa;3@_qidL>R4W0 -zt!kB?O!i;eZT7|PLs^Unu7YdV9>i@b$gxU&4r4=b+U<=xsq61%!=$=-{ov2)}v -z{UvH5PrGBJP5t)5#M73nc8Xuv(Y}^mdSTBSzSi=?5?-JtaqNP^W{B~5@(E=u -zJG))sQ{*hY|8_it*>Yt}w@L0n7#2!b4PVNvs0DNSRO(0mIRw)_O){tV0n_Lhts?~z -zp~a5Fm(T1I@-6mukg~3&>-*40t?wekGU3hFiFv~m4+aar(8#?@ukd$?7jpaqK>Q5! -zC2SPt_$RROgl4w*w~BOHzbNq;PCk;Vfd(ak@M3lXs~W{KB2~neZ*Ss17cvbOZxP(9 -zv6&eLaLt5upnR=*`d_L}wZ2t0jNgdNvOlH9a~VA>UO{U=DDi`~`dx>)lwCXna~Gp? -zEBRx&sUA{qP`Fw4r5kwPX`f8NGq)iAz9gP0N786%7T-Qx(%~n@M~N}GVi2n@`u=dE -zd8#<_2$#Pw>7#hXK?57XP)SAXH6$=BS_0y#)&M@V;QRaiF9N4gENuogniRvM0jm1& -zClHHb2+Q6oS~NgG0f?n#F)KDE8=Os}fQ{1u-*!cpz@7a0@Y(q0o_{33dciT}C^&Lg -z&J$lrin`CW^Dc@-L{W&t8Gn6N{vHeN -z!YDwx4e~j5@(^An)rIB5ahQxK)XD9UJb+Novl5;%6m+;JZ8voUYa<7j?8r_nv1jl4 -za6wwokbnCjoHvY8b225pcP~l6 -zwZu@Lq(g%%zjr=o5q9@0ZMr-3_6gfl59{hMcYfo>qA?gZ5IEqquhZ3ARjZh5>-0}- -zC)<|8MY)lr{?#9&Ys1Fy8lHwjY{-j#{xQ+N+?Dg_4coIz#gcmfe2G3jAjgPLaRcL7 -zRQHb?>vVAtd{kE`zZa~BBcu~ix)0Jc*!t1Gz2BGZ)+WRdRACHX` -z+{Mg>DZo8!NV(Mf++_cag -z)liJ3#3V7uLgGVx=x`=H676db!%f2YDvp -zKeYvytux@CAQxTa`WpXz9Jj1r?4PCDu*0dCpmQX^l)-ySa_fy^pw9UmSAzkWu -zrE43G$GqF!93f|I%Rj>YKh&QYMB{~C_g8%XQ~~-o!JyEVa74Oyzl~F-+JgR0WH25> -z_4wcym+f0`{~B~636pzS4BD+wSr#b!mtkD;pNTkHd-+^Cm9 -z^zKE`h*#7DC(QfnnV^_vVAqLA<-{k@Yufdmj@@NPhvJxua*99?fI -zSwx5f`4vm@84I+iT=pE^T_EVHT--*omL>G;tK7>HI5FfvZzY?R_MNiy#E9U0cCu`Z -zd|L;H`Kq_u_FQ`9;Q|dVQcgfri%UR-xx}W@N!GP%^o$DA=^00ERp9G_j9kFdv&!CX -z&O(h4@YcqfTKt=}>#UNvqMR7hciG;3M=XJqw;s+jWND3-s9s**!kOM&uS2S&B-*i> -zmF`h^pe^jRN)B_ -z!8hE0I{wHgW3weSD(t?J2pe;+EQuCL<%bG8R1cO@To0L47nK(D-=TI-ndIfJnk1|a -zk4L8P&X6cMv4?)@%Om*2I>Wq$1uk4D#1?VM`4ka++nR{y?c(G(iz=O}O!qSIgSZb3 -zKXJdSYh3F!ze-egArzIU7Qy;sta_Z>y~4*cXDm79uAu9$V5|&q4B7sr>Dm<*9$TPi -z2xLd{Zn%z_)}kZ -zz_3q$B1x)K=A764L(jH?TF{YvRSho^)mmRR;)h-SqV&h)e&Y4e(^vV+@Uyfabz^j) -zmG)w04y|lIc_(LPtIE~yM5lD9RwB~pT)2j>EO-Cqf$AWLXTPNfKFg{8dMBy!2bM}y -z1_v{hnNwv|puRZY*m#Q6a?e(jVM3RmQINE8=AQLT+pl@35KVs7iNI78)uuq5#5)`Izh(_%uAiYiG8ROb@7rP$V){Z2IG{xX)6Q%=>X -zHa=&Jt_)}_~ -z!EvK@ba*?AQH8!Pc}q;F+jy8GB4Rm*T1rVy*Q|#$Wp($y_my`nK(+4dr}(bfrga|G -zhoLx!Y5M@o6DO?pEjZIcdrR!M6Y}L{W2y{4@pi22MIEC8TOp6wM%;kGlFAE;txktcZ{6re^v4- -zq~qPcjaO6lItcCyYeG@dwm;f?keR>lc2E^TZVy@%^YWn$57Ud^GWL$>i+_x%N_vn} -z%tXgRtLoqm!rx+QzJZbUeTpTX%9GBKnlSpLKZHs~o={@f&RflY6j2RfgePK&pCZqj -zA!anN(_z(#_#rhkXfa{%exHCy=XNPQBASkMcKX-Q9ScL86}MB9Ej0boBRc?7BmCg? -z?GMJh44uB^ioW3i5&LD55Iu%V?Ial!h;pYI1AgTz(Ow=W~R8@pB -z7)PF{E=eWmR7$cXQdZ7CoVc4tvyr-?J0f} -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 -z_%uZaf`yI%b&-(abE#|aDNUyb8niG4-f -zE^ztRd$MZd+qGYTGgG=$QIg_D)Z -z>xkMMA;$ZWavjeXvM!=3T}8nqU2g$NS%UuA<@_Jh`&5@s`Xc&k*{N%l^`CL&fYF8eJx{cja+CR89jNMJAg{n>Yt%Pkiq474fq6zL!;=uVsmXDb9At -z4S$Ww;*je;hQ7eJ_M%R%LP_P@^;vmEAwMde?p}cno6k$OOdv#Et-DgEyO+xfZJq}u -z_di=o9jur=t_>@g)3*1GZR<*P&;HYIZA*pT5Cv?z>E#p^Kcj48h5Md%;h?yyqb&?^ -z1n;)7N`RO`OYD3dZbUyXMhW*^?&kI` -z?_u2kxcKXeM+BdICrAGd3QZdswD6|E8v+IcVPO_7WT -zQ~ndSPZ0GqCW*V>rS*|3rLn`#1AolkoaN1wG@O=lXM$*a;&8{eb+d1!|84p92rf=* -zWAyCdm371BQpoKkBJB_)wSD$u=l+3OxMxS3PV<_z_b)H>Z!uXO8KM1uqlcz*7Y(p% -ze{dTNybwe^qE0ruheNqen%{*dFNHiU`YvZj-xi}6G__^UehQT^u-0FVmKM -zMRzZuGT&gU#|9HD*6Z;x#Zr8rYA;ec;J2dbf3_2y7-So|^Npz{V;+z|1y(Uys*W|Jvmr0+H{ZP(isC37; -zSuKp?iS?VjcDUKcH%d|iG7OjDHrag$J4W&oILy6x->jIIirE`~;5UBP^qE%S1U)j1 -zJ>qNYF%ddw*M*wiJSRYlw<0m`2W<`R33r~E(F)cbSymK(K7n85K{Qi{y1G5bKp_O# -zc;ti59SZZrKc|Hu{n`P(CV%XMT_SH8i87ujR?*qFY6Zgvqut30x4pX8noJ -zmqpwthe)xgqWRp}F}teDNDl&PE-}^L+9gg}cDIm7`dx47f7gYXL2B{J)>fC)lxN1U -zaU8pn;|Rp<(mC?S&HsBR*fc%Xjc78(M^;^ynCHU>Z3W^FUr$>Sr^l}^K+GhcRxF@U -z@)?~wDFQKhb-V){YWTW%g{gcKZevgEIxTk}S5&=9fSGLn_DXm?=z??4V)3UAToUdlhteC%VU#WAPFAw(?^U-Hge2Z_oIKlcNxcTH>P_>?R5m=U7&YlIm{`zmiHm^5$&!% -zOE|5}Nvqj?CAd?G{;$+3OaFIQMN%R1R -zo)nhj5T;d1wT3G^vbau?J=c40XKx2uA_$HO&)68X!g4ylPJLKK0tpFJjvtWtUq}q~ -zSgZD>oHPWQaMC|H)**|gN8dyxxkpEbF_@Qzh|Y0V6-u|vkNJ0+ccD@wfKWxO@{K}( -zMa5BbAfS53q++RcjhQP=qh<7Ld8}B-cJ{u)UJ)-(#$W9aFpA-9{3=RlvElx-faIH% -ziJ8A397tgEi;UYvK$}df%7iB^f1@$_bq4e6J*3%`k@bS;YfThArc2+95w`_>GlkDP -zZIt*=cbBjaAiVF7?J^+)JzO`)2NeEm4$VVClRD=Ytkba$T`;^8p+IV{ojEn&^&8wb -zx-W?in_f#T(BSVtczGYiG_EuyZf-TG!H%WRa8(f6cQ%MwEV1mvB6tU1blWa_156%(K3gS4$HWPQ@RZ0q}Ryk<@EulKNRTnC>@AX6`! -z(^@Ub_3#tBII?cTyGy_GRJJPNJh -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 -zQ=9iBnRiou(DozM#eMdvgw -zY{Bd06D|tgzE4F_DdAPC=AHXEgim5^++cT46pGy=Kfn$bTMdqp?Z?{^2u~D7G<& -zoARrbI9Ow@JymFs{OnE@rdJz{gjmWSgSej+nqRU^o}3A5&jni-JhDm8PKJ!&+_89C -znB0^>tvc<+vZDXQ8r8&Je+rioa6>gwba? -z5QL@l8(wKXMUF?WcTC%!dw*dbpxHcWppocppHz>5B673K(hr!oU{^iSG5p6g#@8P=PAII=MABUZ{JmH9uT432* -zF`vY;E9oV1+P_<9-hbw@tPLoJ6%7**X=_&jnKNwD6}sz@N4Bh1r)0uFSk7lg#Bg-G*7twILCq00 -z8R9THlvPIamQ=HM^b^6`yj`vI7$6U*W-iZ*!y@&(jY5OqAH(1YOP3pPg9lX<^teI( -z)v--xCUJFoc6guGi6$Vnd9Wuy0vUNMhGh(=>3eJ089}1?kF1Q3i9PGv`7h|7 -zK=8GW)VW6Mt9A&w;H$5R@h`2Cv*^WWnJ@nd;yFJ)zJyEW|>r(A#>%7Zfzve8OW -z!to!G^Xq@84bc#VNAnwH142=}C@c=lmN~m7oGefUZ?$0UDm2m&jj02y^9ft_u`Va( -zEc}}7*NcB?$x~$1JR@{v_D-Thx7?@J#`Z8rmzvY+S`MVkkv>vC7gMhGu&{~syp0a3H -zWW64mvSE&L!u#Ggnuvwf#xe(-y?_W{_oXc-&EA4b%Rv0w*lV`>`PAD(m)mlNU-3|u -z71&iamXdTEB@zXXkHQ&wTWXM(Z<{0G+l?01dpjw-R8F+H_ZynakbPbfOx$r@v_%(E -zOn9?9=!F%7P4hPD>&xiXCvE?jOoabPJY;JgC<0#q&Y+U^(~1ed0Y~J;iBns*mm~mO -z$3wY+uB=E*fnR7Gd~x10^K?oYw$^{IedM`_uGfqm539OniOBWZhgLw8>^LtFnR5uv -zYf9+}STC=Gn)%`DpB^pc@lIA@O9J*IyBZv2QZ)B$&56dSyR$}p3h<64Uws>l8QueD -zer73ayZ|~B&UnAdO-?bHg)P@FS_1T!!o8i%dNs}7G1xi`RT;BPpQ -zwp&tWaftq0_|Hmc{tBXo*NOta7GC|A7Ao`FL(6}$UhL8UZ8Qt#pVH3}nkIPH@*q?x -zNa9YVQph1|!J8!Cf^sG;pu5MktX1~KS6St`dS6aLAHiRmXg9E~=aMf))iOFdr25;f -z$9|C%Wmefdve2SgV?x*+-QSVc_m$8dIr!nMm_m-Y+*PE5*%`>0Yyf=JcisDBB_BRY -z&;3$rT&yjCrZ5Mgo;!D@j(3?+up=Yjxw)rnxoQq^DYgd57ys*%h?pU~g5sD!_}nSm -zNg5iKu~(Ooun_5bygYN?3g9O4;P^Fi%9y;d+*+KHcE#if6UzJWQ-h1H1ncuN;Sa*S -z;|w0N8Ud!9pNMXs_B$6Y -z9YwjEADQdC({!7boGdG~#5f}jCC5|XQ#bgz4Y7gv(6e}sIBJ9RJORAlS-J6LU+Gy! -z&NBPTVYS&0oRZY>OTQ&kzPpaBRp1K0jB?3Pm_Dmj1F+B5u#D;5FpvF4>`UCo!pz<$uE<#I3R8=&Cq5g=k>6}{) -z$P94w2i2{d%eZ?w`yZIXB0%S^{wUq1RX$D!MFV@8&_I=XZ)6Dd!y^XXW2ftp2#zis -zzrTm)D7(eKe!|1YnT7xo;gB#gyptR(9h#1O~kL_Ax|>rExyr7*5b78y@g+Cgd=X -zeAg^mMi4hxg#{#hZ@wYqITBoJ=a$T}`$v6kh-ib_I`=Gl42jp3%X-UK7vh7DJxSV)gCYE8P5V -zDh6hB+RL!}xs8TV62}uhl2>tT5iGA4wcTWf%@(l=3tGPKOC7<{NPqRv_8sgfNY%Pb -zLW`iQ6}q7X6x&Jv@F_4|sZINxOaHs!S$PH)hJeF;i`m^B8jR;6aVCkcK;c -zyE|BC*YDyh&sOETE*_0wZ`=HT8hVl^GZS-j_eLF_W6Bo%mn@22w7ryKNs_E(nP~I# -zw6mFdPd#BVD662o7apMsv$Edhank#m#_x#+D$_sN;C+9|hS<|Dp2|WxUE+aj*fSK& -zWMMu}?5@T9h9c=;Ly}urqWwNI_uHhiaqsgVgt002cm_vX6Y)@Y7kc8-Vmd~&C@Qbd -zUMsI8m$Ibl)}SsnV2cQKA2VJ|qmTQgFWh-+{J7F{%4TAG6c>h#5x@u*+HOP@VD+NR -zx!_AELG|R9n2kZwgHGcBWSUJ|Iw8i+D0_$ReJ!3P(ty+oM(+ntp#7K2zd8ZPU0pM> -z&7|#uTi#pnm-41hKXkW6m&gWqO-1AfO^O>-F<6|)ArrcAX75)Q<*vZoBs0PdN5VMl -z^H`tgRCF-S>HJ)MY@CUFp~4F%YGyoC$|DX|#I!TqC;GienALJ76L1Fuy@^li2P7mc -zL_Lak?ey+cQ%>5RHn-}fTF6M{cx;`lDB^H)Z#ZZ>78nkl0r -zX?W~$CEM#Za4Wq4rn4vr*Y;8oIW>JUHJMdC-8>I`{|g01eM#h{7@!Uv0Kxx?1cBE> -zRjhLCg`)->1yYiBXdzupP_s=S`gI;z!Yy=k<19xS-}i~!Ay6!w^&1+=%P(|#?FtvK -zgkcVv0IN2u;82r*A*HOS)%yOjJT3HtUj!NHr-HjP?V-=0{|Uky9NW27lOIZyYsZ0i -z=WtU(j&IRo(<|eGsaJbzW+J&|IY@UyIo*Kl3R325V6+o2^EILeL8-9ZUgp=@Jq#_l -zB$6`cEQP=4?d!+^i))+k(Lq#>Bv(Qg=Y{5;R2fHDe~j`=-3W055EHZ7?=D`RC`P)B -zybUgbJzng`J?nYs)e>xUZ5d6kVCbbl=mBzJO*q6aR -z$rv34PIv;++jJvG{25+;qL%5CrV%q2b1=>7A&xa-L7jR?{&kVUcPIsm2|aj$N7Z!9uM3rTD#oL -z+t01Z6N5*k&a8of`a&6hC6*+y=d|4MEvyv&OG7Aq$;k!WOP9Wwt6N-hStV@yxCIi@OAAM+ -z4mNG?0Htz*=TgBIBI0M3I2^7Z1`m?-T~Iy~1mY$gp -zNs=RWCIG#&|&m!L}^J|X%5C~&ujF9WphBL%`07O5rnDDS -zau% -zCP+rklk}9zJ@17vUb`{wu0c%fh$gTc3Hz;RqHG+DioT7)lwEuip^#+Y+8s-D8EOris;*l=DH*LF!Mf`MaC76me5#Xv -z5UHh;u6@@G+$I0niLE?ql-@(MPqM&sSSJ1!@DVSTRdc?wX`2^z?pIPry~9-6e`fcp -zxNGcz@mvKf`xM1oSAG+JwuL94KmwVNM;mrOo*hc6lwK?sHhK4=+&&?jr6zM?EIKqr -zy#vZ$pN3G$U2f+7_l+ZR4uq7=+)D4M-}iRQjC>_9HtH4fUx#npei%x%u^TA%)hdAq;`kaEdQ-X+W*c$NyC=cl#mDDDzh!EW(JN!NT+Hck7+6QWaUyi8 -zf<52A3a$}^Y?+242frAm1mr#nw)>UMeHh5c`iCIvF4OL0l}hgf8!wfc%&bhqOyn#* -zr=s;CI-G4BM1zCa9j`m6_%NuAKaTmq{#iHUS95Z! -zDr#3)-Au)Q{$G&CGWpMVh9T}6?`k}`RCPmGwUA>KsR`{%EavigZ_riO`yoS%|F95z -zPfRzVVvgWIs@Ps1Eb96%Ncb4{b-`ONxvRU^CxQ7-wO#J}upenB-=x|G%4HKnJVo-l -z85;Dzu)ZFJVBNymuFjD`?!%KTc6Gb^Z4;8xV}3t}TRIk;3&>lx>#KR5eD_!(t@Gy6 -zeO(5EQQ&GUUWX>ngIuVRli3}1bka`1Ob|XYT6YEYKmZI%frQgd*B@Ax6Csb2TSJVC -zgl#CJ5H_FF;m=_!fo?I_+CL`zDN&WB_?S;YRaNc9xX|5j514-P^HIKnIZ;{zHO7aJ -zX9GMW{E3!WYt$08{`dM9u4#E4A_C?-JKL$C?>cHBfbw2Zn8%(Oxv7(&W%qY}6!NL4 -zJKm+teRv|85x=de8{UF@C7M(C%EI&V5N6#DR0<`Bb3!R;A)me4Vmt)k;HS`x!d)ed -zs2|u$s~cjJB6T)zmb^@~6lCjaRF|_e{9$OqVR|_MY-3iI(Rczz$Pd}chrtY)77e-% -zN{2Da=IpQ-PDGmPUo{_}nJ4|R=qR_`mjIOi(kG9w>;xgNR;=)#*v>t7;(l7fNRCVq -zk$!gVb_7N82zWE(XFl5uM!vdPf578xa_pNyd-)zZ(7V2T2A~BQMStActFBVUmt}>Z -z0u5jx)Cr*{py16Rq@>Np{W8eS)nV#ylMBUO*v_e^jAz8X3E?gF5E`(+@QzQ2$mKpf -zS55tC+6Ce!Fkg;G323LQKZ43YoH{kb-!v>0 -zv%v08cu_7L?}$EZFLOND2y=d171+-AMje7ZVv1wMu2F>KlBmf}2;0qObw%sY2jWe5 -zQs0ua{S2Lheku6H+fR`@&$K%WF+Q}ZzI>lOC&v82jx?f -zgaeZ;^K`97NF5y0TcVJ##Q9E&xnI+kP%$mibbYJ=)2TZ3EVC*c=^9M0+Npe_}EdiQmw|-1(ip992f~{JTI3`^`AEP}O$z -zB%DXu?j~ut=DdiMI;gVboK7S7q36ejl#2TWZmi&JYcADPQ5!%{dyHq{GuvyYjjZ%cFVs0Dd8=GM!4qrU$0MG3#V;&A}~Me~B}G -z9V~>MMGy~G|8-wGw-ozGqT+X-%!^;4Ui)K2EU4v*4e+9&N7^3Sb67u~e@#{thO}F6 -z_(AOarc%MI1hya)oI5>)7&_F5Bkm%9@e!UwKm($;w|`qVh=d -zppe1aml;GVg)-PF$Q6O|qJ^lNt|b%aG&rjW#ut>z?HX`=z7C_D!MxOGv*+|fj@CZc -z_X56g7O{>(n=DdaeGZ}jaU#KdqhcYVPE`43vX@G=K`QL}5G7Oqb|9@|kpgRyw}mn> -z9g{+?OB&zTpUkxV1bCMJVVNyg5rt`y5LDe6)_ycryJ1fict%>NZ4QxT-x)x#x;Q9+N`E5IW6!L6F438$gD -z8zfi(#gP2|e&1!f$)l{`Ub>R>A&6xACdo(AiIOOPcu7V^|5%7hdrla-MMA%rSCtdu -zJ%}iUkAUT7(-)%k83Ki_fL(Pe--VyIoYoBE0==Nks!^(_SyR6sI#!_EkOZc9&Cq!E -zgf=9s7`{NvWN^hW45o5Uxh++9eEL$o;PAnAfZxF>#j#8Nkt;!)tCrJMlzxL3*dNi5VBhC`jLn3AFHR+co$Yl3W#rkVXyP)zrBqXc|c+4 -z@?#rE_Z-hr%B2`8qvv|OLi|fvsKyxY?S9W@{z9IhluUl!rO8oc_)yZm%DKYG1dle0 -z*LKvSRl4}X+ZKKSg*Pf41MQ(>zw96@hCJtEuS~ZO*SO|uFI)bk+<2Y9mo^~fIWxN2o(h`Jwdh-x$QPEk7=C1VsD_zG1?1OXZz -zZ(_axMTuSOH#C~xPlknr4>a;O_IXF%eH;HCR7)n8%efVmVUwSCYf|uFWy!W`Cw2n6 -zD6u;VNtF0CR!e;`Zw$=QafvvRXKKw5Z!tQ`fYzhPPN@Cmvh_rE#$9uwi+!-B>ifQ> -z4m8oDPj{mxN74ZH!OJ$_Gxv9RO+$kA8NZSz{wgE^s^Gm!y#Lt5vFWBq))ChUSlw9C -zwve!OU}*Uq68)CY4JA}PTk{ScehP(Y8-+Z6hGuzZpb0z2K@q^HQG+V#V*X}@`W{iG -zKlk4>)_-d5^U-OJgP*2~d)$X{AO6SDh{Li%wrZb%%3^~(gilxB<2~Bn!mHhPGbGBeTtg&?<)PGzwz850%47~KjJDgHu -zs#K?pORS3kqBU|s)y^xC24NV%a)J1dxzr@FE6(TfA99moi}f-qtWUe}wQL`-6u->N -zfwjNe)vF-XC2i(E4e?`D5r_4 -zK77UUvwz4R!k(N5ae>%CX>6bs2tq~#W&wRe`iGes8Q!qr1QA$rjd;Ze>O(86_{b*M -zPyrzp(tez=u$s>7;8V_#c*hmzMg~Gc*v*}o+;EK}Mcu|T|J`1OZblslhhi$0w0;-) -zs>=PTQfF%LljJFGvb+~}20H84h^#8*f8+P`GdqFe+=j-8NiSuVRbqh`ZvFc|5vt~I -zpui}Q(SQ{&VpN#hjvla@C$6?N8bd@n)bvu>?{7oReW~=P?)(qO1a-*- -ztDkOoO4y;ruZdY`;}x{|(!!lz#HwQ7@Rnu}C*^&;NxH%6Xj{L04(G~M>t(ikT|XUz -z)9d_nGMR~4lanZ4nGIriY&}VleAQ4KGU>O;vU4*EUzuAbRG;n8BT3Mx#IneK_MaJh -zuI;SZ_$#NiN83EvdobMqb>rkF!7MZ^Krl1687j`9j!LIY)#EcqDk??c8G-WzzXZN1 -z&(yil?qHon>(*To53JZPx!l2lPb8h)ODv}Xgjsyq>o9N=8#W}EFB9$pwFsm+0+<@U -zb6<7_znL~f%pPqp1W9I!vOndyhwbD^AbE{&@a)CNl7U -zFI7mFj^_>ql&<9IFKW8tkL=xDqnAWhuYV{F9y+*!n}N~2ydxr- -z-PK@KR<~Mc=@g)`MR2XuutKMHF!Og0Kgu2;=yySTY~Te}8ArB|K;Qkrb&`lR)Kx8d -z0g3%XGcd9P2#0nH{zOl3r3zDQaA%JOBoTet;#WmQFAtkGbR$<;KqGd|*9_N5>c1@9 -z&hN-c(Jws;i+uP};GHY-(Au)`zL2f5i%v@E#)Bwl%$8jOjkEc1gWrjxi=flSjUp)s -zc^x|?^TuAE`i%m+LKlJ8+rYN{v<-l -z`^sh5iw1m@G&ME4oO7w7hsJmF_aW)vfEtF<`(LGIYfkXphL0&U{JQ>y*Or4PO>hH$ -z{0^U#YHSU81>iq|u`kI8U*u0sALZ0vPV2DphOFXgTfJneKw1kt^mXeSfWv{zWVm`C -znjMY$H?RD6uB@t8lnW)QwMtyMZCSioX6Pzyl(Tv!bw$&141}!@O+Hp$OkvE(t`=C; -zY&S)0P(itTI5X1~uZNT&(*`QMq23&OYan#fn^9OJEb@ABz$*7?M#otUUwknUS?)Qp -zr=!aaBi;=G&j==tZGoyXZ#|Q2-O=xa%lvJ-lzEuL;zwt8T!xTA4fM>n{>u!PS9#s_ -zvQj>E39nt>b(B0^Dkmj`ENSaWR_G?0&t+$b&M9y#N5#mmZ+-Jt*kO`XK&$PXI9p=@ -zk=#>D+D3^!;aav-Wyn8Ft4|CXW;=>E1|afVFe!tK@&f-fUcwF{EDu|LJ>GtHsmrbr -zs)IZY2eGUHHN_}%#rnUv1w@B(Tj|3&+Ft{yrk7o>r5tCs5{-dIwJRq}&l@EV^h{oi -zE(=LRre4#P)2NGld+QFieBv+wP4Q1eYml4aNr+qyc`q)r(y8&$cY*!^0-~gST)TJ4 -z2Q+|bvE}@easg~~^{_${2I8xDx&c0yktJ)ZiEf_hiFJ4r2pw^ysy -z8WMSWu-W3)GKsRaHe_bneEF_hUT091T9EowsIo;Dy7Us$(i^ceXoA)C#zp}{(ef+z?f&w -z_hvrbzXUxoP&L})7ucDc5EAA#WqP6Cs#L!@TJ#$TJ;Fjt&BQuMAg}77#nIB%DLgR3 -z_W}z!WrJk4B-1t`Lsyl{;$9xS#3VoUGP?Lecx-5ofi}I6Y`sW+9j1>f@qmur -z82htw((Vp|_*>l5XAyr&Nc%YXvf`IQM4rVN{#ke1fKq~hbvAW9Zc_I$dY`gM#t*rg -zZ?YNCzC5_dpBa(T!&*k)aBLEcLNG;UQ@*jMkz2aLXg&+L|Ink3h^!JZW44H@6JlNt -zcXld|{@A=f7nAZEt2fF&^w}$1a_ip}R~BLPcK^=bo_Hle{}ZkI;m4RT#C==#Aq-)0_jjWc03S6LIj#<05qGS)ThP&a9PR++iZFd=I;xO -zq6}MU^j{x9ic4v@oHe!9BHW!p4Gt(g`XgJoWKccZ%Lu_#msfLKwi0#;>5`kUovmW+$(+Svx289IEZ3gT-r0?$|k0jjeUS$Kf5y?lP(9-|J -z_&tZ%ShBMmet3%6AA*r;W}$PpNQZ*^IpmQTf{`Zm-)|b -z%i!4EpQjNz_-@!;=prMp0s6>*&qsojJ#)J23(7$bQbFx>3(`tqtawZ*tmGNbg{w2W -zg{ROQ3S58?m(&qKFH|QABs*i{I7NbSW2$)1tJMtf$<{@=H^a*1rN&|d?U_U7ihN+; -z6|o?*`|R}yk7u)%^D**vCs$u{GAgy>H~V~euRLn~U6)c{og -zfV}i#ScwZY@!DzI#{r<|Eu-VS5x0I`GdjM0_d1s5gM2_FvykMT=l`sG`X|hsKg{}Y -zPW(;sH$;f~zMP^}`e61cN+WcWN0m=Oex8?-x!CB$7`^HNRdkl*QAFDgP?@+Q$8I`eCcL>>uE~3LwgPDZ8J{ -zaJQb^rC76Giz?l~JTzPFeZISUdbG`v2;}VuNLsfgT9+6S4XtT*YSeFfh{~J7dSNXV -zj=UkcM)M2`^;s7#=xgK^5n+8nn||LC@>0aNt2s8GM-=Xj+Q4cW8;D?|JYC8Y7TgNh -zr|EEjce;&6Rn*L?x)KfVTwyRnn$a_0u03gjpC3OFi -z!wB{qr<=DVCeMgXauHDwmAaskYJOQ}46Bc<`Bsw@Ee#B@-YBGOge}l>vH00eXF;zO -zV2+B--nEQ0`fRwqafD4vZWQF7N329tRR&sKN13+cM9zXA#;a4{fqXVcc&v$)Nb!m4nQgiJ+39aRB*@r_*bI95li>!OQAg8MP$|E^?` -zfwH3^;Y}6CC-pd3d`0tKN#W+8z0Q?39a7+fj59yfM8RS?kM*1-O=Sz7p^8r -zPxvPW?0v;3*mt&jCCQ$OWa+%hxD3vv=HCnYC!FF8`;-QQO|B*H0c~N^FL;7r)wfHf -zM4Il=kWS7$KMV47(2Op(trg&78ywqq7@Z{tDKkh6_72U;E{UIuk)@wreQJW)3rh|Z -zbZplAE@g>?s)1bD-QO-`jgo(& -z{NN3<#Bhe^O9|!two-ICaB)r~n5!lQKN?OYC9Wua4-6HQb9e-=4MKN7Xg!jhD_x_8E3pW!Lk7WNE|}tqKhOsm-$$={TUsey6G1J^7o;_sHyLCNvF6U8(^mc -zfrws_2sF)!A)o=mdihNc=K&WUAcCZDJYEyEqOEnS -znf#^PrOIoD4*lIr6GZ)_AK4qBy@9qR^_3g>sCz+wj@Rsd*=7PE<^qC0>N%^8U+#>? -zhd`oG_e-yX=rfAxD6bR&fHVMhiInvd?>%fSEs~fG`pamjCyeEp0*6hUBi^@h%?~0! -z96R{EPAAUVzy11>Av&SZ)6tHY?36feeymtS8g@x^H<&Y4cz;f+Dfd*E+VEm_Z7A`x -zUP#Xt^`h+y)6BuxN@)rHZLXqv$Eg~k;bPjs`SHnH2!@|{VJD9Jv&L;!Rlc5y_<~S@ -ze*=ymW`3LAxZmy^H8;6z`bNB>2R=HzN_9E=DT}8q$$vC&{Cqs8zdkkj_FB!9(>UNx -zi%r2Dd&Exbo6T|XZA%oo0988hiT5kD4mDY2GN^4XX`Hn!t%{Wt`T=!bRgS$0GygXguj3*H -z3W?zbm^c&>ZZTOZbv-qd6-kU&_JVK6HyWmg0R<5(=PwM{hVL``xvPE`Q@aSI2>pE9 -zM6K}a#3qArG#{q)cPCrxtRr3@oI -zQ7P?%^p<780XL$=u;7>X6`hsBCUF?#U9(bm|@Fb#gd4u}EjR+9N)q -z*KaHELZmG2{ckvB_3OJzvgg0E#Wa{~jc)uM;4u|$Vn~AlZCke69lKn42LJp0#;)xK -zaMX1n*gfX>E^p2zUDogX3$3&hi!42Jeh$vV%<#q5*8D?k_wQ@zi`qE+pwWjd=kFuR -zf!`k3y>)1taOsIvgFi`;s*wED(UUiy^jtXW4GFHr+u}%JWvwvflgO -zse;jev&-h7DF8(Kv}fuJIi=E;s2`!Sr<4aTAI2CiETOIOmy0=$!}GDH@#7KipNB$p -z6u;M6mk-Q9Y3E@6GEBVol!Me}#h}eLCH?{h10fuFc76f@YVW-6b)a*{PM -zMaqeL)BE;VrZh0T>1^>SY$kQ%Cd?7$zb-lvs64l1P2I&_o22rav_6-)fsrFK<{(dg -z)P?bx`91N6g&O%~*J={kax%ny9r?eZ_M+S*n7@?*r9%HcJLnAsDCdv3aA*lY5GiUb -zyKRr_5Kd%rtmulO%WrBQg~1wPKO!T91id^g72WNLB;c{;B1B_A;#gPTgMfE%BK`td5YI!m;L7E32wu -z$~`#F=qI8B)Ju7a*82Qga}d2XI(Ets`V(TpGW>cMFBAc%8obdla}Wq+)fBvw$|G<(DS -z*rnxn2B4<_Q<)Bvk0T+Wz6n+RT^$EyXvk%{U9Ik8u$UC&T~m(|o>$SL9HRLwJ{loW -z1|I=tcF(W-!e>s6K1R}sv0RM?!Pi(nzx`S7jbAivlC1rvB^|Yt&qEPG;O2jUCB{p*%UmH3yGc -zf0h0b#b$6HS|))Fi4eC`9@EqD8I{K(5A9P{7Qviz0%+55&h*EFWRbd&8Lvd~i|p_x -z6k^Y||y_f0zp#>^*YT%F)8XAvTGZ## -z&)z9wAF37YI98kGuP!_cLC -zDiV}XMAY@FOC_z}*oi?P8WMpvi-{bsqm6f3 -zWx`)P_jPAEnosOf6ZCc=db?=KJ@g0kT0=K&4i#iMU(j^14J;flWU&{|p&=Y?f^4V3 -zMpg`-rTUXXWVuPZIZmlgpu*Oe(7oHOF}%}+zEdx>vExC^Cp4>m!U8o}6ye7je7EdL -z?qy;`u3^?oZu9ZDX#%oLi}$ZHfmmiQJEo##Sj49GqD|*T<5M~3{Ea39I)lDs2e~Dm -zyR;d50O$vqwR>B(^E^V(%B$i%K9%AB@MTXME#8XS2`a%B$B)F#FV9RH@wmm&8&SAW -zd2gR^)YUDU!vw)pW+F;e9$)y|Of4Q3?y7kk{GsTzTqW7HfwI~_t!SA~wNfU>Ad=cN -zvqT1(nQh%ljqxqJQ=273fA_GDULDe6IuTJfgk8rl+4;0jBkmBH0Dd7`yILc=qRctW -z-3WjRf=-=%DNnv0+_7x1m!3;!ol>HYPB%0Ce(i^`HS{E$K-)7CddvX_HiH|RuF%Av -z&8Ej4rq^}omqB&Vf(D=nNJ~jlbD)vDnPbp=tyl&-#;fV&BbK9;94+m!gX5=NxI=F%ISCMPHymnk{~cOV^X*^2@r*s(IgI -z*f&Z{DI`5QObEKtek2K6HbV%*vk-z*b3Td;*g`xaPgL5gE03rOof4j_aRmPa$uKTD -z3qv(?clC24#`aG#1eG$0h@ET}P_51--;xg5PV*)75W{q9wg>A2bi_1D|HSm70yY2p -z-mm#Olj`Q=6m+1#n8?~R1^+#oI~th#@%TzYwIg1-!UfvqQU`>)+^lq4W+NKqve^_u -z7nts>r2m02*{QZ<958L9vB5~A*WeM-{{w6r0b(zzxHJ5Kzaiua|4>+TdqojzYG!N! -z!s0$Z^d8_mF@4^_sP%`8J48+VNBORg+#F2`qK>lu@QT^O6nbU*|hx -zY6qVYzz9aLi-*L7ln^wI#P`82pj}27C*r~^TC-+~l6HYaie_>-LSti>8du##dp?a` -zRawzu+MY=HJ90lwm613eQR#K{-?y;(5fB&~R>e^|CE~Qh7T>nJwdD~#;FE!OSJA^d -zKJUFPVa*#hc!iFMHgy15+}o_OxNu&89gulMm?Q#59>~k6z3t=ZeaFUSDt=l~*yJ1s -zZ?pb%H!!>a?^^clZWmTDP79Waz})Mj6hzoEY(yXHh`XFl9$TJWu=^ZS#MSq_^xe?RC4{U1wL -z8CKO6L@5acq)WPy5a|Z#l13Ei?go*N?(XhJLb?$Uq#Hq`JES`V-oBUjef;8{v(L`i -zGqYyaBrCV^{}AT8jr=_r7ecM`*9%V{X{ORN6*}u$`Pdmd!dDJU4mO$PmK;7Uw!DxM -zmtgMMhXylSVu?p;?tNFzSVAhCmghQ)sLtd>te|vlF@^yN73}77`FbM2yKUTscS-u9-)0>V%50d3Oz -z?rt@>9}U7n%MO<1mE -zGO9~FN1Vr<_Cx}$BTq3H20WNRjM4PISpSBpnC478?yZTuS>=HhbR|-kpWHZ^7C?5lBv&i -zO|grI&CDz41!F<_B`Gd6AuIOKo)U@rW6qwt(-I_k2ecRTlccyPs>NA6U@R+d@R3Nf -zt#5&s`PFxY4Nem4=MJZ!Kq5Fw2VwC1S$CK#-=W4~W9oaoujU?W6O#ztkH51G84CRi -zmACsie1$)>9qyRi8|gC;iM%cF$AOG9yaH0m`fSNg1ZPRr_@~4VAKvIAUaBOX7H#|3 -zMN@tV(gkW_I>tMr!bP!&v+Eps=@L9^ti9NQ(7^Y@#<2Hq#>%+-9sWgp1^Vc@`D=-P`Oc5NnK9OtZ%kKd)CL9ni^=m -z)8#e!7o(=*7{R{m;|yPaC?srY`}>-A@^O4m)BZ}k@w+F0V7*=29Rl}kdP{#;`>9(P -z(vYQmwfXyj{bpi9y?bX^_xBvgA_Sj!(;BO#nPoouF)bwWI(b*BFacfLsD%(~^6rtC -zsdIee2ge^+KU0nF;E!H0SviGzij{$B7&Ja!6@ND&WfDty$c-A#n`2&i7BaM4CI3C= -zkw3fwa?3Sp`k3Ju$|UC1zYVJQ#?7LC<3 -znRCVuccdjeaKo~-n2-pG>>wSi_7*@>q(|_QFRqS+#4g5{kCD(GhI@~PfB8}K!7;7^ -zw(>WNQRbdeX1HUB_YE<|!cEJU*wFh#*m1>9?tRnqPZ3my&*(qoL8>N%SPhU&8+XHn -zFTV}8qmx))ku)2GOGyLO;7V`<1s81!fd<%=qT-;mZq;Ev8e&5|K@$y6_e0V~2*z|P -zQH+?;_4jsv)WZUY$OrtAZAC(i{-CHY_KB^ZJE%Ik9KAdIN56%-$c?mFQPb$#@{&&{ -zsi`G!D%`{Km{IsX`|G8jB_e+uh)h>ixP%5<_ccIiL(a0oIRP*?jMggt-b^nwj2eIT -zaq+<{MlkQ|Y4}jR;8>@KdU#+dLFb9fQ1ia&PMK}Vw(v5MR|4F0n4F9kJBk2b2_T9c -zc505=R(jdWfc7iN*UoJLgdKdt?g<={;Hdw~`AKMIe#0cm+;dBTgu9N?mI`R@@S@SV -zSp@OPRD$0XLW~ObWsdecygmZ|Eg^SN5JHDVTfTq!ZpkSu=e<*-#wR@Q$334oszGL2#@~!*uh$S{q9lTS3$H -z%Za(~>nq=(*X2}8yHxy#yBPNZ<;c~G^n>9IKn@Cm@P8!KuM%7H)m<@H!N&idRHM91 -zv2*=*_^}m2R2m5nSJSSN0wXJ`=j%RYAA9QeKv*ORM-KOK{3_{%#}R(7RX8`~NJ40@ -zj`8u~ZubzM_vHVW4b`zSRdG7)4_^c@9t3Sp1)FUfRXx%VMiPYvk7QCH2%cyE_d^Xc -zI`XcK*=fX||KYv``E?>wt)#z}io*qoSn+ya504*X33IP_J|VLZh#0ODUYJ=tLuW)t -zd3!2!yPi_$njxWQ&%WdyYz-BsBZL?!L$+-vqRCuZ_W}+LP$%LxpLK*eN>Phq)J>=r -zRFPFE`9Zfe!a)8`C+qMAq;P>dRO0Hb$X;q0`P(*z-pTa4aS%fRP0Y$oXWw%%dKVC@ -zz!gP#?M&!dSndbk6*UX{`nwIG_G5w=?Uq(r*n5Ju3B_3a(%U%q&{Sxf2rHxr&2}}z -zi3*O$W{JATPfC*!U1b+pHsQ16F&nZ?C;O#;&^qh>_GTQ -z9v(bxht~>wF5x|Et{(PfqbK~|Mi8_3zNtu6@<7TM0ae|8HeZTmc7nIw+5nv{MXVe4 -zj?wmIH)sav&~L8-skmp?8a>^Ju!k;VHFO0UweptYbU~b@kk2%%bNM#3p5Uqx -zyFIP)lgliWW+F(5!EK-|77;f%rsy3os-5O#YP>#xB7lHne2C!NU+%r<4op@EiuRnM -zJj;B4Z~=^%Qfn&8}*77+07!j -zLN$K0GLW$Xr!L#AeF2oK_Ym2 -zVPi;0%Dv7;-2RZ<$~!uRWD=k0+-^UbwM{%@It1CyH2z)xPC|}sM8iSjz+oaf!MQ(q -zlNIog?C%#h)w0+3(65RW4%K^}!F#r37xxF~b+0AkSup7zX%tG)yx~%9sQN#*tO6w6 -z4h!po&G|d#1$YNEXVKIY8$KMgLn%v$NtPBfQ3Z;Ln%u(^I|RW#Z#H>K36 -zTYb(LV9Yv?mkB@F{Ic%=Qm6p#cW*RrkAhx_BB|44Zq&f30sag0qzZ!^p5k}9200t4 -zQE++>`jFUd5P5*2i9i44jBr#~CuE4bLGX^r_%Dd021+jA{O*jxeS?O;$GaZ$EKnqG -za~aVQ`47pvU(^38>ZyW>$)I_PK(o`yi|zfObx?#pq-s86lF7A%2G~e}KxnVMbi;Ye -z`y>vVqY5TP(`Tf-4aTpC!L}2sYtn<-vXquGqVoN}|5?-HZ(V-LdHkU`R0o$evqBwR -z;+;+J#KkV&<`Ymo5kwT{$I6@)c;U{mzhjeHk2kuPd0t^on~wN>l{c>JZy)5N!0%8H -zSH_n%psjnO1p-zf<8MP+g36<-tJKy7evn3j=$Y}O@%R5|&@~G#j!3!~< -zqXH-hm?Qzcyu95KCwU(GM3)dr2GKS#4F6Jx6x;XtYSTB$_YdXSJ_H_t#IT2C_|;YQ -z9R`#~5Gk(o_}ga1nW;y5I0@(@P??dA-7qmW&W441ME#&DmXC1*rl1Z>9$EbwD%nc5 -zt`b&!s9&zCl!PzzXMI%|_pUokrCc01xCQzfAs1LP64Us(<+Av|akV9q(gq84-ySNM*-FLz;e=|i4BWNf`i#F@eHKn?UaU?yrS}t)ATx`{Q -zylhJjjnL}pcEOIkn#Li#g-~>WVsy8ST5oNUP&zd$fEykwwh^_4W~xQKtO#RwZx#FEeIeYBHKZ87iOAX3q=BnYA%Mb=9{`B(Knk -zE}^W(#bH39YUGc(tciqhS$m-H`0_D%+}_kewN+uS3*;Xlwx9bNz%)*u;u0Qpnzcgre -z-f0A?XmtuHLU$iyCJ9}g@&N1sYa~uPjnN;FOb$+V5g9+m762!`n}9m^VR-f!vs{7pq!-K%h@htK)LQQ8;* -zn*+XT?%;Ft_%8AzGc|jWqrhyvJto(eBbBpjPPA~YA}IucfC<+UvAf6wWaE^{j%z9W -zEX-ymkPF|MQf`!MZuxSgqC7mTMxf2xO+Uy?q#@3Sz!hCq0GFZlJ~_`|+(imhaX#l( -z#W^EW)08;AQMLSe@~5`ui|ivYmp;#OPYBzC -zOQ|fP$A0?gc)wMPaAK>wCPJ0%dm2D!g|WsJesfXr7)4gB6k9}!w1rL-(X(00w5jod -z@ic7I^B}F-xmcb#WU=5;-|5_;0mRk?DSA*TmOV=+PZ)SI}wHCkff~-|KlxwLz)mWW? -zCJy6TsD28NZ|5DQX3p`tTu0=ja+Ot1OagLLQFJnN2~DBQL??ls`JpXMWsp7sWNIVH -zXvFlO`ETI##41&x0MeApv?}ILhl}8(< -zGrc4&5lPTm(?EV`pJxLMq0Zoz<;*NGRdJ)jRE^*{>a1nMHYRfJBw#=bMW;z3`Fx3@ -z3El_uI!yh-2(eot=f@DoBzK+Y|LQ2tw0`9LxYr95zl1p7FwNJxKhE$1D&BYg!&cjA -z`Qr3QUD~LD(-PF@coo7i`G3M_+WRrRyCXwoxg)3%{nD6HoV=5SVDK+%cIYuKW}h$y -zsrVJPyF2(9TT&xCb_& -znm77l0my-W(lEyRZT`KoP+jze2JKn0xpOlT{d;{j+j=3h@%b(s`U)-m&7(n-cvc+*;M@tB}DH>k9mCq3Cm#%OT -ze7!9&;*AU)SjEl!xXTC2o@QkJsqF64V(Dl|&@i$PSybNbcS6mf$d~>)lwQO+H=d-i -z!np$?W9QxFHn_5WXltBsjwGhCYtJ%kkOO#0%2hC;wQE -z4v$hkItYg4W#5Sw*?)pmjam2Z;4qxY^BK^mw#EpV4$DHss#$A?!!{Pl`}af1&yK~S -zIf~^GfJ{MNrh2aXQ&i4F?M)~tm`5W -z5;*a7t<0(y3W4$cE~1EcFxT)fYNJNJJ51;E~;Wo5L -z3J?x}O*i&YyC3F-2ZV&rYgE*_skw4Or`&Er2GQo#RO%D|2KdMfJq_e_K}rs;0L>`_ -zEYlX0NtYklxQ_@4_oudEd*Cd!F!mejJ8)@01?fcKsC{Ql&61x~*%qqOdrWK+NV`45 -zYe$N&9{Lu)X}Es0tAc%c(sI@yO}XG;Rt5>H1aqq4kdC>Cyqu3xjEmykDYNX{fnVI7 -zJb;h3Gzs@I%|@)9723IF?N>7Nl{XRxF=>?Yhv^2>^`edYXpjMc-GqNGpIC^Knf52^ -znA;yh!Mf^gR!G`AiGC?4sEneMJ!wIkj{rN$k?{`40JW(=oOBLa7X%PLNlaru*?!A- -zp%P|J4e&Ov|5lw;3FJeHTuA#L9~|%>X|q*0d;a-Bv5c)u>5PmuQ}&zLZcD{6cpL12 -z{$azw&QA;tMB1ge%dk4w_LtpR6kf>cRwnPYSBL)swt1*{c8H~5W{;IFA@{Yl_I6Bp}wqpJ=K|D6~LdhAk^Qo*d0a8kJ<^k_5D!TIKH -zYDdxiCXK%&F!H9ECD;?PVn3w5&fJOz%P&H-32P -zJ2c}+o!#5#fl2kMg4<^{a$p8ke)AAM{?uV9%*1|xK -zk1PaW*NM==w+uEzMBS=)<4e8r{@?MQgWYQGuMZq1Y;sAN|K)k^&H|_s7!HD)PZVXU -z&MSxheSNSkCL9vlBw^5mSJ%fV(I*@%Cq6`RAL-eSZyEhPI)wSTy@FTd+04|x#{)`Qs-nk5;p -zRTkV|v+_;U$rB+*93LP0Wh5);(?$7rsD>PQ -zSx0$FiTi6wUJEOn9?dCyq}KRrNH1^NU_jf$=g8B4&}dwJW4P9xywP8&8T_x8l-W&_ -zq=d?`6j4YNFU3m$MhYZ8VX0}H4&wILv`aRRhwhk1xYtaJkG39N`Jm;)PnU9H47p~4 -zNMZNnAYtfL7R(Eui{dxYbL~P_8PmlLt8d5mS1vtAe00g0QH5B|;L%!q?;~Afak-_o -zv(UY+Bsoh;<``qkQ>pLy7EDlpe_U;;EDLW@yi$43?jU@vc;+{Sf$+64)JL?^J+%~c -zXt95ymAIAn2wtt?SeX&8Za9agl=*tIXBE%xiyPsRYCI6Tb5DY90OeDIQIsW~`(Ngi -zG`g>jc?Qo8LqEReC4^0+7j|5Zi3fMqWpvyDW9jW9a`<7?NZy1}uJ~2qsBGP&5Y?X2 -zBwNZd8l}sJMKD-!u3g$90ye30Q*mE28xDlB9w`%SB{4Nm)r3K1PncEjN<`-7(fqh- -zxm7jGmZ;{x$zrw1n>As}*U1+qzz?PlOu{Ku1sUtUnoYWU)R8u1p*{ATK^oU=(pc1!Fh%8@Ue(fb>%Wn`hm=LCYJeYB;)NTj{4VnsUBOx`BKvN -zA>Gs^p1aPieM8#L&f&ro3^;ChUjh29ZZ4t~kNm2tsFWv}hekT7H|l++C9hNryQM|! -zFt~O&$x|`6a$y}lm%cnXq4c6}g`oA|o$Y;3R6427l?iDph0qG#N?kZB8G&-=WzfC* -zH}JUyX`hbek8nN`FPbEM%r*i`Qv@4hpok=ESD5KAfHAtda=P{=c1H-QzblM<7Oa9K -zd@h!nKGurAz-0JSil?tX3d!K|vpVY|(+0N<`2NW`zbKVw -zIjd)ra@49n&D`yJr -z%J`H$*F+QJdtpxv_K?gPO0Y0QXvkai%%+os5}8-Ij+?fZ|7~?IUu&8Cx@bar|FdkX>)#kr)*oJ#< -zl`H&5Z>EMkQn20#;eE6062p_Ab -zZ=PP63l*Hd0$AmScoa(McjWOhf-hJ^OD@WlcA=BJdO=Jx{q5~mF{Az$<~S?pWE>NC -zM~5?QTH-2VH0Q3X9!&2kc6~=JN=)_#66Z1rkjbMz$ -z>Oi1NeEQGtFpVh#6b~#w6i4S5)o`nym7)9;f*b#B5MAJjcwr263Vt@-O9CH%;U94( -zdk`Yf5?G3jZTXiECcMpBd`dC8jTYq(&51Vn@x -zvcTr&+ng6_5;?`3+?jk1v5p!-?u$2cn>N}x;3Yn^U|HnlA2BULol+!@3xl^f5R6s< -zp3)ENCskZYK-$)*xuDk5tCYoj3P*jSKya~6ct^isI{lagIZ{3=3e7-`ep_2gLtmHZ(a)ThbkWaS-X625*s# -zFl`mDlF|CH|M|0k1tBF7w|a;J{~POd56#{9nV9^SOXPLi-w(q>3jn56fu~#d6p2e6eGAH<#Rc)sh&bQRy?WrQJ@M&Q#E=b0fxk$dR -z&+)`a?XLx=p$+CkpHuK51^6zbD$BLc+ZWx4WY6Q-#41YEUPnn)m~N7()YTlOLhIpy -zofdP`EbbV7ec0u~;*~T{K*k+sEeT1-QYXT=erk>6V0^ky&mJ}D_@?{%tz!ttF3Ujd -zM(f&Q!{ms7Z}5Vvm!;vMc+h^SN4+dyPg-CORs~4oL4@*Cqv~V^sn-(Q>`#K`*Z2r* -z$eeXD#ZdjQY6!*d?7!rVFL{Tb- -zFW;hqbS{in?nGQ}eBb{Lej-c>C(I=9=)D^Z$)4qoD*7QScK(@mz}_LmjW$NhsCFpz -zR6e)3pwyH|Gi}FiLJ0(({Gla-NyNT4#4cu&R`;0biCKb>9 -zf)d`uYVll(4(*r3sSA2+qIz**kYu~~Kug++v -zx0r1Y#Duv1VqvZQ_#pRI43z4{9p-m4FP6;+b{**0+&1F)QI&qY5Ps{W591r<>GtP3 -z!Edfz}PHI}nt{QqMb@(kxPKhr0A68{U>}H;(G=lm+ -z7{s3hZewEHU`>@Jd@?dpZuFV3I~k4a`+Zi=8LbtA~zr$P$K~S-rI2@Q9+ULe=jI>iTM! -z5V-46n3iwt_fLt&8lSNJq05_x3ykYm$aM5n$cVNug}EZy-=a*d?X$nIoY5iq?IP7- -zC^4oVMh%k!0W)$|X@S(I#g#4NAh*ETZfi~#Mx@K!$nS5{N{VbK8$~+>*#*}H69;DlCOmki8o3apjqlnLt+ma5WW>Cl@dnX2Y(P0-voF?+Cc2m#m@ -z?7p|We8?Nu%=mT0%3dDSm=4iDP&e$loNQd>N@AvoHcoyHC|PHkqf+zG^P}n!$T^gAU;u1p8Xtdxt>3)3#{I0F&ieTlGXLHVG%8Q5qkp)WC -z6LqUd9#t9H}<=?lE^EV=HI;Cs998*#+>SJ8Z^Zre3MCf~;%$KB_8 -zMk%kleiIh?pd!ttvSIxhVFbe9S^(RrEXMJgr{T_vJvW2B^!=8haK>AaJi>zs)L!$S -z1+`)@mWA(frc{E*uosFeXfl7cl(DIi4ChgDFpYlBKe|irx;(@5Qpt4rcbtA(Xh-Cc -z%LTs=sf?C@D9)0(_7Ahc1aoVABb<-kM5pls4q0!C-t@a@2w^FhXb0mTX}+)*DN1}! -z-zeb&en!`7&%+-=uzd>-@<#bS8~f*zb}Uj^?RmN~n#O*$PgODnMDB6x;O14z8k7(B -z7nJ}!ssQg>sf1uA7CNt@74^Z7zTsz+5E^=C8!kTln|H)lB-bD3J@6l14Qtzi09rr9 -z?#4~hFor;>5n7GcE|wk-?73f_VLI8*IEseD!AFJ9L$K#bZ*uhCiDCEkoWGvfb}Lx3=mVp{z08yd0vMwOdk6$fa%U-f2~ENxn9Q}V3&0BoI6Ci3V-L5?@m3j)eF|8S -zF>4xxfXU$2$uW+!EW=pSmuDLOyp$sRuIA^ZARR0ya>{tTt;<2KQtwB|+T=)F@Dn36 -zRB*V-g>Z!Ai43c>dU;^Z<3xo!ww9Y-ho{UZ>Iu+UBY|N9E98tf`;U65Rdysd$FGCd -z5ehxO_Cc-DW)myi+>Qnhi~m*f^JD*jKWXoc+Aw<2CgOsN({=_Sv4{n*E2@7}1u>kL -z&sI#6Vo+`ZhLM+sz#n|*mfh0GM#Z64^HDDz00g0{;W{ar>IDkp+Q&H3eT@Ap#af6& -z;fs4`&RkRPC7pAOKfCcbani@iE(aK7C5VxK$9mCTw{D0lDv_ihiXTuQ7-QVjjb@ZV -zIuG_gYJecs_Jbgr^v_FsymT9FH92!R9{t`9o;u(c5DSwZCc% -zhlHo<20hO*Up%VP%fnL{59@{|n`aj6FZi~(q!c9m|cWzfO?DW<%71vg&;{11g -zduNX(+j0O1oq*Uq_s4kAf|Vm%?w@Ni&W|D-_PR|=N!fG|R3HkUyGu)xrhP1xfxH31 -zqRm9amEZ*axF>O=JGUN{Tpxrc8km^e9mjkr=eS+rIh2X4hUjr%`%te8BYlaSKeJQh -zN&P{Qab`b6_Ez~Y6aS<^GYyh_I_@3ZL3l$9n`VR;PMo_ud?wb;^GPe6eH^8k7mMTl -zy`gO`9Z1lW1)D${v3a}b%iAKMK-l1?uK7`29MY%Ditpo0UVjkSFJTrS7Sk_YHEBlH -zQ&kHWxA`5;V>UW{A7WL>ozW>Z!anjP;HS*wqqeZl -zVj7XY>OTLCBf0e0J;ciR -zSeCfOq=GaQ7@QX=wrYIFIf<@1Ig$FDm$jVPt)yHk@=${c9PX_kN^)d=dqKIZ-Kno; -z?NP?QA@+EK*^T6(t84pZ!NAO@gzb!3XUa1$>L#R9Wv~!*_%grDui7J@+N%nt9T;q{ -z%aif>ChoSyx|FY}GRlYI?T%84$GMDm%W^ES3`i -zcwHcS7hF6>*1aYvV@rNUAaR!u4f#TJ^zAB!fj45`dIvSpFzM;gNTCwK$W2}zeZHdo -zriu+=YD;^Z>sgk$NH^)6&tFEv9C#2%H1{=BD{hS{&{!^YCk?uw2sY`CJQ^*+5vfsV -zRvPPsy&;({0zG?_MFb49W)23JVKdc?e-?p{7#y(BM1>l7OB#gOHgzmTcR42#KIlp& -z)US=$k77q%xe6Xr_K}(EEr|ay#v#l3`IF$!fdh2PRwcdS>EFNJ^JX^Md|nkAm0#{9 -z`^N>^D8@Bi(pK;j`P(4Ael=HG+B?5i8Tsl|)oB5#M}7aBAwzNVevrt|!P4Uy-57~88-`DPt`%w)2pk!UF9OyCz>My4kR$WhPT?RPZ`ECT$sU$-IR1%~uN-NpVxD_oMdG4~t5VC!yWV#$6&_qf|lH5!O*9 -zm(-D-ZQA?$ktlGixuGFX{OBzZ93Oid|L@E`JL-DoH+@f0e>koI&rwF5; -z9KJ9)&6r5sG_L<&hRk+|z(&kx?JMDAvbcHxfCGQQc~ck`=RFmNidxX&!1PjS!}G`g -zFPz7~Qn+VXHSPE7(qJP&JLEgDzxC!*wkJ94YDhElG`H&KhpD+0|6k%HG%m24b3$@c -zsNm%`LC)1e)Nc!6v1CmmxB!AOt7T?dpx}l*jj!#rmih -zfFTxG=>}tBw|2tOu)QN0!^l_^7+?C}J^i`Azfue07vuBh?^?SvJSt!9fS}rw-r0_b -z63qGGqE$tPbB6EY*~wL9V9beodSngNXq@19&8aYzH#l23Q0SEDhQQ1 -zjcbDH=cpC;2lbv>1MdV#z&!yrh>GB(erGM&#Y#y~dbVx#qT*+Z-Ay#Gv|u7s#l1w{ -zJsf4`Zi>e0{hoVxHdELDGIqh{U*w38e-oQ*>Ts`-1qpWqH@g^9F$O8h2%b6a34#Y| -zq0&qf!oi)N=H?i5nyyk#>Wv0ooE;^fTomYKO_CyLgbP{oC{fm8H-e0L(La}uE6-*>pL>5m8 -zqbnh5yWSoir||LKp}(OL7g6WuVqVf>&Zxo3?K?+0Bq3XGl1Hqgdx`8AD1=?UXk@w+ -zZ;Z1=^1s3$Mt!TqMqm!8OekZY(A%ovV=*zT9SqqY>An7mD9!aQHoS=;wxlp2OjEP+ -z%eM(7&xUg?qqpuEL}@Gu0xqDm^(LJdN#VBmIY%Dz-MBumP@OqO6aOjOiwsULoqhsZ -z3gcN2t>BL_8L@}#v>-y7f(u@JxJ?JfUERh#WoBDy%6Jlz&HUGdTD18 -zf?js^^Hh+nYpX8(uw!w!ScC%YrWhu^Bz -zUgaHEnEF%#xA>Q*v5;634)WA5o;K72{iC^QPtVb(-?m+6aYCH5<*@cMnD-NS_dQv} -z!(VbBkxf9p`DLxqdZ^mC-b*KYe?{!X9VKd7QsYDfg$Ic+a2T4L2Clq#zL@ -zL>TGMv`0B*JzTP{GjY$P<$_X^siF_Zy62l8?0nU5N(QWmZ!TLXarCXPTv;GK1$j!0KZLVqtXn?@&9q<-LOr*95fh_mNJ -z7%85UBRu|7w}FX20v8OMs%S7tOgHH{9)0O6v5aiKvwsZhE{aR{_+Jv_9`XniB`p0c -ztL$;kQFDADhm=|gy3f`%f`JMr{~X)qLPSzkbNy`JMevDzqyP(6vp{!7*dD|>{=R5-)=hR2*CfM%?H=B>8BcSc>e0 -zm%fQf-t!Dp+U1a-9TmH1VeU7NfoTMKySiKAwoyC41ee}P{yMfGfOdEtPpLpoNiCV_ -z2~`udM=nfvf#-bKo&(r*m9YBadK3-^{p&V(YUPU>!y}Bo(~gFd6wsr|nzAjs8ard2 -zA6$h -zaz!UOR3>E@i>5N>f6`5xwA1}QZ^tk^vL7yu||D@6u(*B<>WUrWs$I1H+&0T=me!`NM4Ux6juYz&;<=GJ|$RAN#{KdAWJq -z%LfCxzf@sL8rjsVc<@z@k(*<2wt*ymP^FZZh%98Ar#dlIrd8@?wR}qv*+s&P!>GAZ -ztQ(clE(7CYvnY5F_?nkJ1gp;&`*ObYVEdEPJAT*a&DXuWA}QVV$vla3c7GNHj=D1u -z1_d6)VV}#;k6p_;c~^Y)Tsd|NhMg7??hX0IOj|{P{m~CGKwe0~cS$E5WNy=*3`u=? -zX-h?$mMSv`{tq;>LHZb9IED0LRZ&dRwX0-P&nFY^Bi~b1I6D?q-5kL>}U3uIW-_6{meQd(zhhpZdpUG@#}d -za#olo5t8Y~(YR)P@o-+Dz6-B4ad8@|`1s|!xXi~DZk(FO%>x=C<36LrOl_xuIcGJc -znWzZ+6g@M+_8g08yEZ_Yhex|NKO -z5$i}uhB~mOB-20Oc*-e~>s-+5twcpn>mNHg%^5_fMe>j;eKE&+1_>@9!uWM8u5;W} -zFrFWRJ5^i_%j;po0-Mo{2^-VSQP0$5w>|nlQfAM46jt|Jp6Q`ub#;e<>-5?h61Otp -z-G@*<&aS1ISHDD`Ra^=4E=Ll_6W}TUDiNh>I69~8TnVepoIs~1IW}bMfu!kA0I4(A -zVz7bb&c{+kM``Fd*;lJX2I12NMoU>*!;e$p*!MMq}jF=PJkZM8V%-hft;cB`8 -zDs-PbhH^;Q(2V!D*!{i`2`t*&@HO(9!KMs*?y{KKdkNCd(2r9PVkG4v8szGRwOg}% -zZoFRle-xd&Bq9fPNrp+%-vVXE>pT!%C8tl&v%gB(x{+ss5NMl={8kI$Q#eH$-zcrb -z@-sTE?C}9h0Cr@w27QAG3U5#P$Hrw=l2dGM^AP3{GHe6r0tL%|Ea73{4q>q|ZB|`H -zZ9h+)W)u88p{4adn1e7)s2LEhFG_BzNYlxrELr^ANZ=&_T6dHK{7jo2d64UGRJ^o~ -z&md7d5BAOBV7Be8v^lG&?6$5XG5K_#k%Esf5`A9O83_(Y6Plr-^~$K%k{^_d88|aW -zEK&KZwb?UG)aZV~XF2GPWr-W;2P*wh*kOy6XZ+Q1b?|1+9<*El8>2xR^4Srvi`dZd -zIG|J3);_(~fGem?Jg%&6B)A|{i>PDZ5d^y9xc9cp9-)!$cF2X)>_>GJ^dN$H7R~y_&@?5z#5OYVtIQLqglGNkjz== -zI7%PR%fq*)4Pz`6aLf8b!YR;@4Nt;j=?`$)c@(Mw@T)kQ6KHnL$=yW%_xWoiDp&+` -z481$V)=wuG3wSonI-RfZ6UW=?1ym)^rNpyxA7P>Lc%ha4j%tF&@C#*?0Sh`cUySbm -zM)|TVH8L!D2rJcG6}e1xS#i^eR9XA#p$pG8Og3x?P0+QA-3Jmt?r(VY*d5u|2Cu@I -zZdBHFlM6U|-JPng8sETUksWtus=Ot!Sp-32KuO^lMR-Fyar|RyNMFX8iO28GD -zy5Zv{5sc8%$)qB}YiU%9A!@)#5+LE7$w+h0@N_6F&OGP1{DXz-D55i&Jc@% -zt!-x2aQ0yXMUjgUPh?=ZPX%$$y?HORb{rDi0buyl%I~%F3mQ0TqraY0otugoPlhNj -zGsJ!35!#Jnf!Zy_n>M=Gh7d9P@9y{;bsU -zWr$d?kd9c^wLwS`%|&3`t4W1cl(qcQ+Z~BrXl?4@B^N&62;Xbt$rdcq;nj&UMSZe- -z6gC&ySy_eOXj#IeCWy*TOxSA{vMZHlTL0ohwa9c+wvy0@!S6|<;G+0|{t!ubmBOF6(281IDO}l_BIJON6PLwwZey^Gnd`#* -z$|U*)I%vVm@Cvv0*;>?gsaY{+^`Z&1L@L2nk|ppr$!s -zR2-1AN>5f0aV9vcrCJkjlXO@SR9lqxNE0iUcGC}Fust9w;o{`(ts&QNH3%uP?!wGAgd)9Y+X0ucnuH2q!>(g7S8 -zyhqo~;%2QMRXLAD=LL{kGf4@bWd9sum**Ryjm;u8c?=X-<%v>9;%W{JPGm0`LYV{a3A+VJ~eq(YOuN^AbtrF9AOdapGI$m)&s7lV4yf -zOwnz7GV33RvDWo -zfDZX98@lU;$#}xq0Fu}9gyUN5MeSJA6T;=z;CupPJ17=|dwjvK$gZLhUD?d?8>z+hK{K!WS4vai!YCCXnOsoQi+8V)YR`3KnONJ+U|rE){xY{9C`IvJ -zI7|N7078j*zNIXq6?B{q5?k--U7b`Wuur9K&Jeneg5iEM43# -zkv4@|z7)4MKa0fai1QZOb1CgZ$GPY1KzszGU**Sud!D*^$$sn-?5b&w -zQpxu1O>6K3C%IW+I(40@;4|EBN_#O|FT8^29zI4}K_f|gULIm2?w1Vk1Ft0}d|;-0 -zsR0%D!vL9a+bb9$oA;iNG78z$Ff}>vbGIqH*&1Ef`TJ1z0;lI$t?JF8^id|;CVW{| -zOQ<_wNT4@Z^v8Yn3_&MeW03ge5WU)O=_h^{$)JEKgcWimY!8o=&i`j3H&rK9H}3oOk#Y3=sJJF*j(JWO*D>JxMW-&xpQac&YXJAb56mMS5C1TB6_+)9=+j1(#GjdlI-v5 -z0891&AXNG=6LlWV^$Ph6F7F~2?!wJ`SXVA^sM=eWy1(CGz{}I%h7Jnd&yS+a7jD9X -zTv^%}LgV#dpLWv!+;>UMt10W~U?&3ZpS!=x=Xny~9Qhw6ogwR)M6XKQ9Rlezlg#&G -zWvC-;|JB{ME9b24z4sXZgqw0yEx0fGS`Ajm75E;_F(W;zIRumDFZ^IhOTagh$YrIC -zzA%PWwz0tt#TP{$)YZ%+bK3|V6QtEfRfAmBJHT6?Es3CQS3S_UW|5Y)54$+6zso?k?5m}ZT^z(ZylXnT2Ms7XCSf}^#I8b -z>f1T!YU@3G_~u>4<%RjI6EFOJ4@3++Hsbfj5_y$XwEP#b>V{8ZjduBDPWy9RCyC&? -z+VIi|uQbF`v`bQ_d^}JwJQvj67wx#a4Gk~z-!+~8<27*1Kz~*8Bp&x}dT7jOf{#ld -z3#O}Nc3Cxe<8)zzqYJ)-nRGEpEhl!OUrr6F%S4CQ=dkHpNO%OGYl8p>HBD=SOAk^j -z)Uy)yL4gh)_z@s>q~&$^D(mRd0kQdcb}TkXqUOh6m(SSksqFo0CbQeMSSU_T{#y~H -zfS>nd&f47_@6=aZvsMB@)W*o0j9&TEwhfyNWl^Fzo2O4KV5Nfrm?^SOHe_~G -zpp{ao_F*!F&jvo0A^z21R^x((eh12yPf^6=3^^DiAL)=Hx;BeTqzvZbfJOZ?dw_qt -z5^g5?PRxcDrfwtAyRZ3-lXiy*J>Aq(H=Pl$uxj(fiYq5mH5Ve8@Q^^@3T5e~EgPn9 -z-XH&}HhnYr8wRF>&r^|gbbP4&;hu*aQocCsN(0L~?t6c|y7_u(8oJZYQt^+p?!i5WZxKv3$ -zR@t)XEi%Nxb^I~Qc0%zoYSlYH&LYL|s@R9`Bqn&f`HKL01-kcDypr{FZD>V4&xCr< -zuuLTGe()QItJmWX1~jqHRaluWDp{q!@M?eIyYZCMnuG|pWNEO%UT{7rXm-j%5hW&O -zgaPp}n3~x?hZwuGP#A$csXr=46@QDjwe2gPPokZoQwo2Ss(%rG^53z`e`3QW$-x}< -zEJV1ilz1n#U&s8bw2eOwW?}@gK0dANS@d|ocRb4TTUnZKyk&n*H0jp!nEPI|<1qCN -z8cMAJMeu#m-`2czj}*nmIKS`J!IY*UO6w$09tNqLF0l5n`h;!nOZSb3`Hg&@BQEkW3kE-cK -zk13PY3IW3U>b?ML*A@zZ!UB;+CST&=F(p2PIIPPm7&vfe8fe+P#bm%@-2Bttca_ -z$*?3s5VUF{UJH84A+9$cM%Cq49;9%ae|Gh^9R@*LNly7LEJWN;>J`ABcG|JLsZG^? -zHYiGJ5Dm5i+*ZM$Ber+s8;$8m61(n4eJ=hDiF0ikh_`2UySnXkSfS -z-?Kx9rc%dwQskjhQmk`&Bi#r$sE-d3x7d -z3=X>FBgI~M;(Vity0~%>8J*FZ`nPFpVuc~Jf~iC>`~k!6=SBrUCBb*6c`x>dk7;kE -za=L)n@kfRH?6`U*;Uy#-P_e1+oi3^s;v){g)wcKXkeVF&cqK1AE0^gxp -zqu9)-k1IiAuWL91%q_c=^}6BlCjx_5J|RUacJ3KQWq%@G$xe$-N#Rrcr=##+8)(jd -z@qNb_+1})ER20&`#Sn#+S^<}bu=k;U -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 -zKK+_Msp_h1W<*CF(dbs8jr#_k1IM{pp+B5zE -zp2}ZU;81V({=2C|texYFHOFg79;;@&O|y~Weoh9}D^`OWwXUv3M5O3m60%@!V$<;`v@VF~D!-=Gg@mc19i-oiC(h9xHW=9Ke$Ra@fVjwy` -zc5ev@7Mb^WCETxMqigD4QD>rTj(pLByzzH4BI*I4&y{q2F@kYh0Tl7sRJlKRRK1pe -z1x7;!!7;_aIIU_G0p^a$vXz8g_@OwDVcH^p$N#P+YI4cNKGB_tTAP@)o5)sF&NfifZ=G>SyaCq{!-5AVZ -zZ1^}LoJzs$gt|V+E%Ns%vDgPBB#jdR^PNi$T%AP~(mC!$l^T33=qBsUDs>3EqPw(( -zuaAa%ox{XfTh)(z_69MZzQfRSBc;XVt3~OzY}1As>FkpyQf?pQy?{RNOy$Ch!q!)5 -zkrH{4C8YC`0+o^Pl~WC5$^rXqKLj?}bxgS@M5h(Vct}1D5^+3o -zqN@@Ye_z7XIPu@yCWIcYLHvEF -zhu}W%ujYrquTz{6&8G^{juvW>pcfghS5@pIkD^zV7S=p%yaX8~q@Z0W#zl9R*ARCd -zH8MKbb3!kruf>ebdB832VW&FN-$yug_~80(-y~T!naAnS5q!NbJVJw#{H0l&=t_3z -z41jpRf>5R|`l3d-$>IH^-=R&BlL~%%?L~U2n;XS-7(kV5g38{TTy(gOg@Me*#)tBQ -zkB+rMjT$Q~uX#Ep;1>`x<;=iG3)NR7_b=tMeyHZ%=o&#k`m;d)#oR-xRH@tyY^rdD -zU?Li3`g=3LAp?4%5D7_Z#F?vTy=g(7#-d(pHa3c3V3;}TBa5{c92jy;HKT<{b&F<= -z#G5<|T8Lx`cEOxKqYh;E<4<60Nd#xkU!lW-BJ`|QOZGvW@wB9${0j;}`NPcO_qbUj -zfj>XoQCf}lh0(-}{f~KuR{frFgLOZ1sHhd=ppGs=G4*9e3e&XsO93lP4AK^c(N<1Z -zvpyW-jWTgU#wkuqutns}U?wyXK -z6T~#9uZl14v9Ke9oDogN4>@JEuyKKik%r{h1jR5@DGtr}V2V~K&cz<7+#AvOIe7pF -z@ImOM(C;mp>`}MQu9U3}_2SV29HIhp(ON|FA&yij6_a#UEQa=r&1HeNy?`AI_@y$w -zJ5`Vwd1)tgp}_#p@1EN%rfUyGp%1(8!8-xcO^6Kn$!%$U*m+o`iK3njA~(QngG>)* -zAh$tB_XieT)yEbN*SJ$?q*Evp>S2sy5OvppMu^EpC77`tW$Hhj;Iys;;3!ZduDe^I -z=F0Pv2@%;m&&o}$>5XY05cf<{S*2!SVt(QHfp}WG8~HbT@;#Xia>+9eSsy7I3WNLl -z*#@f!X0U>r*mO|jRAN|D(qwryeU|^4-o5qM5|p%IGhmWiOOlADF(Vmvu!cJX3=nz$~v))3mNQpkl~$#T`545xy=O2Se4HV#7A4jqFM-= -zEQenALoJhYeKMtE{g%YFR7c%z4J)c%E&KVqln@zC=U)0u@?$|?bhn?e_w}XC;?}!r -z@1V|0P8YJ)hvhpCS -zb2OpDH;19{*{5s+hLJ{wH^I$Q^rQ3f0T2Fjqn-*|;vw8G_4-V@+<9pVOlJm9`ZpX7 -zbOXfJ_j3G7)3*`|-A~No`jE?!QWQSsRM>H$6~eq*Se$L_d%;)dnOK<~>p#2`O@H6) -z{t6J5T6oLn1}o?c!r~S#!xeIz{5Y^blQdW$kqrqRGc!IOnZgsq>}ur*#vHazQ4(9smywkt{Lk}9=V(4M@h;_$y?^vbEdD1Od73O+ -zHaP)|P79ojLE3}}t@?O-t__@vDsHCAl-ur_?_A!U&JWYBG^Tp7q;JzK8Dda($?xS( -zXkAsTorY=!oI;uc4-VZEciTgI&xSD0te1R2ah~L^rBa_@=Uico3Z3`qJ*+_b8V~+Q}dBB8ma|nXc7F}F6UJ^ -zF8zFzh4n&QX?dd3D=eB?ihd1`0nWhzm8g(e-;C46WU=AeO4*_{Da$rCjG9mZQ_|NtIkru7{r2uB*|~DFExdGxQBRM6#t##oy(jPE -zoBG#gCqDvHAGmK7c@lwHhN>bDQ|+D>71j50$bEJ3HZ1wSr(&yJySxmAQdBe9$(A)O -zPn4on?NfnfQ$X>T`oo1QW0S4X)5oLqe03x5PxLTvG5=?WI9!0Q0Q<#!M6hS= -z&3=5qflAQrbL}zDzcT>Yx(z~?dCc=u39ZAc#BmYolz1eaZ=kv9`WF^3q(b5aOMt;(+b -z7&f0x)w$Pa&b0!-{64j`QJx}6-0bT9sS=yBn)kCdeSsJyuYN-PId3%P=bM&c{4#VT -z@)}=Ax#J4j -z!dwn}noO}x+pLtThMtby0Nwi;HHXhD)zVAVH~>(v_- -zO+zj(jp^r3f{Y1AAu%wlzR*@|ogJo~+~u2vG_E=V-QnTawd4yyqU3N10e?y$$$ -zzAm*(RX%|1vh%rVqL_+Ay+8@zIJ;9~4M~9%@#dV4R8$F-XpVB}9Lj({wVqDj>LrZ< -z&un8lkgls;<3hX7AEJ+ozU8smDGyDG|K`rod5!S4s_7G78*@^Y -z2%dBxBG0R7oo*zG5O#d!Lri}r{O#9^o3EwW@h%Qw1<+uK+~@~y+p_X(b_dcE0dX{M -z0w!rG@80;{gD+4Ecw%C#Y;55`7vZ~H6dy~W9+}f29s=<^51N;>9>JFV-H7)R)D5!Z -zPS93S@T$7vC9fCA*nP+L6lqj8ewX_ZrYA6Mce8}hxT-V5a_WLJ3XRN*X}rzk?Dv}O -zE~XqnsTH^`!7vyNCNk1y?OaxUT6EHAONN05Uu}4^jL#W#E&OZoR5I(=VD@{$EetITElVt4PF;PO-m%io(hScw#nf5VNo!oz);v~s!>t=WO;C%`1fWvf~7 -zI__eKDL+cD)h|36Hast#l?K=BL0_LVIs3Z|`qS}Pcl#m-Yuh~lH0n?g@L%*2*9QqB -z?@Z|{_sf+59`KpMWhB%6`6mJhRbid5;3#MQ) -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 -zmK9WDIl~TOl%L4&-TH7tMiEAn -zhU71_{ZAxX5pF7bPeZ;B&OZr-F9}BhoCD$mvFU?Uj%rKqo3J7ne`}oAqjt?tZXkF> -z=VO{-_n3ajJ8QQPxwBHBj)%R|#VPNK&>FP-jRfAKMmY&w@;o_ -zpJIQ=(egWF14jG<#_~(L`t5e53d}wWCXG&M9^CI>p_Be4sJ)uIvADFO-Y*nICcLz&?2EP&}uWxmFMdCP$x6^>h~SxjAd3ut#^RCW-S^= -zoAcXR=y4pwhzhGml%NB`0@Qj{$fvi3`F4>0Afd||mb?TmR`O=T13I@T>_&!F-OPc4 -zAf-bM?}B=JT39D^Fsu8^%6hzU#+nVH-?HdTgw>?(mG(7BFPWi?|KivAg8Wl)qY?wc3QoVhw+mx4Nq{)NAnLzwWXv&!1(fz-$HwtUuY;Sa@lv!1=g#76x_ -z|7`D4t-Se6X%V?`rNb%}P9kLFtnYOpPjJEtsou()`|VTGwV=ALa(z{*hrc;@Rz -zO;B8Qhe|Za<;EeQFI!8DQmRS)(d@WT8in`6?IZ4Q#)!B=w2Nu984hXgC3zW-m0gn_ -zEwBS7vT?9|XGdv^eyy`S?&o=X$J<)cc(<4&5Mv0bgz7{nEA2|?XIM@i|5Kh -z!@@3=rSRC>@#TA_o|ib80YnqrI#wA(mWLC3MYgcIoj_c1MJ92fuoBYT7I@yiJ*kC9 -z73kh`@S$wuwbsEi=JS!pYeUK%*o&;n#NsiM2T%+8VWy6btz^Q75yxZ<^zIABYl^ko -z&NZ#u4`+xGLIF^Y!ah{3$yv_9cf-X}s7CqGfdWRX1i^E!)AcXOKQnZSRe#@l9C*0L -zsE8u&8JYQwJ~Dw$IAJk?UTFTtL_mnca|)GaiYvG;aG0K(Q1)R^6L;PsJmG!Q&kufJ -zxC#Gr54qv0nafa@ZK~jD-qS2RxH0o2s#uArJv4{p;4fyIVVhpor}5On;=L>9{E09RTIKbZ{bUr8#4U&;5u_&@th -z@SIKTQr}sC9Da@`1nMvNir1GU-l?53(BVrAB)K-fwJYjJe5Iw>YPo*(yruaSD@~L& -z;g5CSOaAY=U3?ZjAkS)-v#c(b*%@cvrjy{Nan(M1sG2gfvaAM2cxBSqyNnk4CBjiM -zK@TyWRCA2hpaKjmcInJO=m5Ru%FHA?E`(p -zv_|sclZQ+^5@51?pqzibYQ>@CKNlW}t=!z3$iTv%lnv7_TIY^3oa -zq?|>cY#U)fBJj*U**;ph`jkt5@1^Y>kqlD;D#gt?v3jj0x4Xe0f9@@OcgCK{zY(_# -z9fe%3Q5dhXnZIei29Y;$yZK@_56**!6N^UQZtBVFkfT>_ -zWz*3Y8H=sDMMpBj*f;7~DAhfq$M|sTKzur@^tICNsY&X_?Ss{^QpWCmDBhROjbmXf -z?5Q=6+&!n;wsaUT(OPniTD81x?k6$Vv!8E&fs}&ih4=PPx9KOpROt@UiqLbMO^m6+ -zazPFz(B14&@Hu#-p-!Kcvc6O1rYoqORBDoM7lIgc|E=GU6^L5T@E8Th=DE0tY50pL -zM!g#l5eSV)W=Ai`>*aU+2Iz!~le#zys&1qA1~s+*3Nd&aGhP|0s<>2-J*v;xWy8Im -z86fajYOZLcYuo -z8;5yjv6bH?5mZ|*`ou}(UR=;BORlawA{K6UxjX!Uf^ak}^}EQeyA^|Xv!e8LCW?U{ -zuMTVTY|QdJEs9NY>!$`Ti)JBXGK}OzKN@6$_aN!s<#@ucN<_G8?Q81!BO05|U4qQ6 -z0c6@>RRbGZit~~}rOsm!5=h -z0@bG<!5!+@ -zWK%sK!SAn{wbxYnby_*gd=VDA)CG(479%a2Dw9hvKIYL12v(9ZP)2IAccG>4`gjjD -ztya(_{vDf3VcRE?{C}_%U=V*Ixn`(Ya9TGmL*IQ5b!A*}$Biql$=P@UZIWCvAWk9EX;Plz%>KDZD_q>|_{m`#5bA9=%(mzA=As -z%MXC!GG4lyqwP%+r;R;oSiTTUUDX`g2Qact!>S7aJLr=b_qxe`$iQ#fJL>mhXoUd( -z_jH7YapQSWXug({jrf;d*^f-5;+9I`py#2v+!y!LdW_FhcjEW_o#Cs0e0*k|M(@e*E9N0G -z7%;yNKR?>Q9gK}N&PIpUWyudL6Q13Zr{pKDlX~&IoXLF~zS67e9o*zEf2V44 -z)js6j+4B{FP*F$e@7vAd7S3Pt>8c;-zeJ5wyfj>5H7pF`ros9pX+bbuP^@)p* -z+mai69Tk9nNl#?ZulI(jjzX(&Ux{is#(tv%IPEX^^AS|DV~X|uf`h>P$W`JOxvbC;Ce%w_MB)HLZz@;1 -z*e1TWX}hS1>OO*e*nM0f(A&PZwO&!l%Vkm0;UBV}mM0MpKc!B#kc9SYS6Ux+j8YXk -z+#;R-lpHjr5KozC#6gME-f{ -zfIfY#hWbO&A<%*nD5&`_;|4j!kUo{^$|2T&|*retk2uOOb?;SonNgSm|3dPL65RSYxTcRQ8w -z%M2^p@R{F5)TiAknArq4lg@I76#}*xsv?H|qQwk(EQKbj8c)AKp)l$!s6cqNt>HO< -zYIOBmmW<;{Ae8{0*>39Qrx|?sdVR|YI7_lwsEKZNrObOv@2npAlzQs9_Ea)|RWobb4z?LbspNttsW@m?=U_e?g~M1|_`PraZ~Dr0XH`qzo=9ZHZ%$N;}U_FVn`{8cvXNS!DW=>jDTrkwD9y24Od@V%WW -zJvTrV#YemMKpw8{Ge(h{Fxj|7o0z}N9}liIe9OLXG;4-gUyiU>3AIu$eMiVi_EC7( -z#CX@(t9aw7s8uYs`j4#*M~kN?b@R*UMLSN5i|;gteR)SYB#!REJ0IqrA@uN6jUkt( -zhN}FvCV$ut*mQ4=ZDbn?)elO~u<*%wv>Yp=^YB5RM}J!1^>4`){qLzjU9qw`Pk!Dr -zUK>sv%iJ|9w(ni|9TM@Fy?}k#kQ$i#VR|bnv1grI(sn+c$j4t(!Xj0wBt^FLgaDe`5ReZ?kVAEI>Zc=a&0NC7Car!(s7nGT(N?>-k)-c=^ax -z>0i(WU_^#j1TUv=N-ybunLWM!WOTbuMe6P{VI?{L9Xi~z;7nc;QqU#oQ@<5vwqY=L -zX(ESjUDD+In!JHi@4KM2{4#`A|041YIG^0BdcB21izL_qvB70iVcy=>y=glM`W3W) -zMBT#hyJxW2>f0yH8aTDoJdI~>Ps+E_>KHndU}fyW?TS{h0=gP#o%r6pw6dZ7p~rUm -z?;tir`9JADTBku?+Ag@N6wouJmt|KH@16bw)jXI>h_f@^^c&uuZ;QZ+dzZa_rO=$E -zYe55LtkA`0Qgn>t=*L8FZAyhTIR}Q6s-k&4(*q+%-mQfDOH}tV(h=@pH=5wifz_Eg -z%x$)o#4IAU++&aF(u5R2h>sKCq83P(~Dh9iOmG~b=A#OhozMq<6x`K)mV -zgnb#>&i>M?BmZ5A+x2q=OREZ4pK6fbFDj-?FX?-VHjgj(#eIf&HDdb6F$!JyKy3&o -zs3gP)Rsa{+rhil%x%Z3+nJDWZunyM1Vf8unUV3Bx&%E7&p?=jAVwY2CVX9a09>41D -zcQJWq);G&RNpuDZmET7(ZZ2H%L>-mV4Pp_mb&;%=2oU$5fAT+?t^%s6r3+IMN{1jw -zwB{NAI8KRr{9-6f?vLM|DE8Y*I+ -zeBE8YlTgt{&g6Xgd};zGvBo(WLr4`jWCk-l@&PhDulnC6y9#Yb;xtqpd0AOIi%y8Y -zgWzlaM`}w1E*wzL08Tet$gLihO -z40SyBHnvnLsYGddjV$HlytxUD-hu1(EEYfwO@ -zhW&!hUBPX!PiGUEBGrK6n}lLC{!tASj^M?U*rL#v*w1d1Fd8qN{7r(Pgp#Z+ -zRCe*UxlGJE!vE^HqwX5_4*9w7g>_C6R7QUAo*00=Pf7F9QTE7r&kPbO$KZYPU;81b -zZ6z|dtuV9`7#`0ImV=XS(Ox085uT~ij!M$Ts4@Vmg3L_8pG)nWy@;oD|D*$G5S7}E -zHZ&iQfA%{(5%p$loll!xh4Wn>ynb=Hg)ZuTxF$~8eXt@<^LRm#LHsOeDQn<9@!k3% -zr2D{$KXo$}qYcADkWfly=u+@$^V-9|4_(H8j2hh|PB_k)AT#yh_jaG3hrw$+kwWdP -zRGR(_4?);2v|ss$G@G-?>AaX;EQ@?d;U`ETVFp!2s>-4-SjWA5I>SJb0?!>El(m~J -zWxq&C4VPcm^orOB^WUUpFexz&d&in{V24a>*mF -z#EuMp=^TB6mGWacCx)B#G|DjV7G(cl!4%dh5w@R -zCQlpFn^kU3htc%~#r{7qa6J>1{_kj0--Ifrep0DE?5mR``(b6x7PR&qIr&3mz9whf -zQ0xcdJ{{O^x*-wKJDuzK1rz4C@w#_iXhCvpxny7^-UkOsoZ7K%!$MJm3C(da(5GvH -z4K_64qZ2DyEMa_#Ko6&UyIlYMjUO!Ku;ZBf9)}RAW#fIE{5_ZTLXn7XQ9^&cBK%~di-4ft{N_s;XNq0q8IttN2v1TFU1qw&#;eWhRd@rkbzx&&elb?G=U -zLKIenjw^gFx1-ktyQ8~({NExr2{crc4rxesyZyf^cHyi$IZ#mC$ir4a@=!_TNjJ4# -zI->}!lSG};3#D?{Ww;v{pACXo#OpF?mNWy&<2jG^U`=c999}&kR*Kgu^T7>TR2G7y -z;C@%_vVtBPTtp9jIFYK4VRB?qWSrJV^Y57o&3tWBGJMlegglV+5Lakn#J5)!0fEmf0|dU&c+oFuI6I9(gh>CZmlhvTS7K|6-v6rS7lQ%p$X -zo#-04i1xJo7YTK}v!t{0OBMVORYw9>&HfP)T+>SPhu@!rwB2F;B-%}Fuajxc$ -z?5#25N18iSaU>2LAimOyn8{7|Hw1@Cj=Jn^73cW*x6>uCT|+v$__Kvlh_oF^FdAMyGQ8DxstFtBhDoQ?OfQM-2M^_-%`J@bHVs-)RQ{npIQX+l@e5Se4?Yt~o=KeJW6{ -zoR!c0EMl9MVkBk9JJlp7x@WG9g{XxzP`&G*nvqDwUlnuPmvaLqsMO^2{1 -ze}RZT=r=-ISPzvecWAAMDA>1bc&oqjuYnO1z%GMc98EwV?N{GQvuhzLnmm4TCq+49 -zd*8n16{1kpHGhVc3yo|UF+ZLnr`&ZyIPQ3fo?MBKP_sK&=Pv$O%);4xVPp*Gj2eVL}PkRIhZdf -zUbY>VVZof@5RY5v9Pu1on)7Ups1Br`MJz?55Q7z?V}#k%44bJiBY2aO7_UZL2}Tw| -zvQR{XTN}Ki?mA%lI_=EP^5%|){qXDa7{~G1?{#o#Jjx^Z&K;QtxSn}}BmRQ166Vg$ -zP}x^T&YmUxQsuIoafHsKz7zM+T29U@2HUkV+?f^v1fk$39+C7G^{%;joz4q|cmY21 -zmako5C%J(1Hms#nPT2$FnDANpKAQ&U_CL{G7*3ZN;GsVGGEI(;Q=6VFH_5n-*v$hR -z!$C7M_lmO<`pH@6UE|chpPj1T019H1+4O&f{`rXhKVK6Cc!aE*<6jr)MYF-fL3S-u -z!Kx1mIdjjU+e|z&AF!u?^8SWp{zmT -zB;Kg+9i6~wmhK$2oKY;VkZVhIyQ5O-MN>!>)*}M?OeOyMeLm?uwlZfiCx_wBt$DpK -znl7@Jp$VU!2)(CRpZ~i9y94@1^JaAKcb~cD$kzwku(&z!$)j$mHLLiK&;rI`<7K%QV;ObuwJ}+glA;jj`8)53(MCd;jSTzA5grM`4P}K>u4m38eu~1V9>j!OW8Z` -zeowD))z`Wx+!+Z^D7lQN$a_^WY -z#Z=J~@3%@#m1wV~V9wP(Nc)#TeLHo0xpMN$m$FDgFU+@^wam}te&jgzJn0zOkJ3wp -zNvEPq$lx=faKHV6az?xVl20Lm>QVIRS{(1MF6WD3j>ns-!Txu51Z3^N!WO82(P3X) -z1mmFWG=KjOSajjA_*3^h%WFJI#5NcH=$Z>uy4Mh%E_xhu^aT#`V08 -zTj>N)D7;Mt`T;7Lg8Hdo{sKr;?A;zT-@4w#i(t3-$3SCGQ-i;YZa$KKE)bmgI9Nku -zIquII3WQ=8o@`ym2x}Zgqp6k~<3}@&`Tcyc_xN{{B*YW|kD!T)?6v)N^wG)a>8Ge+ -zaYf-VRyKwSR$8pNTFs{$RUOFlAS@X5>$KSaO4Bc^{t;`n$ej9d1%#dAbCDUGTS@P< -z(PX}s&+oPrecp6%B_ik>c(APhW(whZV8*kwzcIL3#zqB&dDX(d!d17uB}(URlvrNr -zz{49)8aIqKvA>ckVkwKb1B~eCPQ+>aac{LZ=fqG_PU;VPtYN2UUGZfirdrvMpdxbF!mZZ(nNZ{M>MUFz{2moSF}dAi4f -z4e+&SkXp2^v27uLupVL0;K0ggIgHURJKu-MLx8O}vlG3+A545_$4312@z?ae>eDeT -zdN^B55cqNy&{tVNf50#w<>3Ve(-q!Co-;M?z?~TJECegL5g>dWw_>ZO;8%A}PK+Mxqy}diI{*D_TeIw9~-ufsoFcvT<7U)g4H= -zoc%lQyIU%A(RPO4dd`2zTVHhazHFG32>LbRC|*H3Ur3u~5mGxyxA=z>rmuq12S=HF`$e1Gocni22x{{%L%^x`q?tU*;w8gOG`C>vp -z1b)mH3{!B)O|>WcF{n6Q(VvHO=S~icq~{9T4n8$wyjJW_Viruvf^#RmF`M$;2x@qc -z7Ks(Qw)$3JNlDFEqZ(C6Nbzj;Y8H^8ltae8g7TwfrW7B|Kh!Ma3(QC~Po+b1({bds -zJSToWwTNRP{sV+yd5B_p>r#x^H1x5NHoR5=3dho3e$892R-?cvTCYq>7Crs%gaFK~ -zwOU?_F>DNz{-5{UbuA!itDwx$zRLS@#GF2|_jBgr_yw1gi -z{cyxABGEqs?Id`hefpgM<74Dc7KP?>cEYi+*l{rg8S_=?7I%VI=I4)0Ek*oR05p7e -zgn2_!a_$ZS_`0-?k9jz9ky&P(IH(=I_=#6TwP0aD7p!wnx^K*0x1xijFME!@BhEs?u-Vii1 -z#gE>w)V*nszD*}hoSdp~Cwx2NS5shUeE7z6Ww3c_^|`d0zsG<)E#570&}LmR<2vg< -zzVNG|(KLGO;Dt!n(9$C*CYN2*seeRoBZKyN*k -zsFt1TCY9(f3dOHp7R(n&cA>`C8R042lGkzkb4u(#OY}g`-9HVrGeC@EBOsbA-MCQd -zudyDGG4YG?+UN)uX0)l-BfSU~j4i??%XyQ=R9dO|;3nI0*h#Ri=MOd3*r^%mlVLKo -zqU|od071ur;n*{o>wpSsayuZxmlj$w=ujGfh4%HWQthuOOV&;N@Rwf=sM=>gkm7dQ -zn7wX*sn9XtseESf+>(BWq87~P`{HM*aIT9`9fHo8Fm -z{8=KSQ$|ph2leZx1T#B!(fIRkBwU6BV}sgB*Hc|9^saWHvNH6FWwHaQqoM4oWpCS6 -zs!!HPiQGrQ=|;CvsEhir|Ml&eSIhdV1|E^{uaM -z%!-I7BR3a6C~$OKoImuY&f>h(BE6^<93eknoqn9!hCM0geiBz}w7C!Yiq)slBqMQ~ -zzcIa2Ine$Et6q&dC~|#!Cp221RVkkhGqs%N$d_^B|Lv*2(a>{R*FbS8e+`a^%6^Cy -zRyfuhDE7!=puW{pl$~K{1v0F_&eL_AtJFUo@Jt+^)eQ*KK8@mZY~qPe0JtANR>;(q -z#);v|QgfW@O7}SbuNohSd)n>iLB?H=yKEB(uBVG+Li+zC70H0K#HCT{Ux5y&7Jrk# -z9c&27bAmHbgQ;ZsE{rgJvCHv3GJ8-;~p3Ca)C}p~BD;46}bwbv~3zKuWG#I|Lglm=2tU(QocwT27 -ziK#JoE7+Koq(&3N##AJ!#5>BaR8YEyJp3-yYxl^=QiXZq;M99*51K=pb~N| -z(i98fF%nRg9Fc+m;u+W>!sKV_h+Fhd%SQ*CIV8fRL-9zyM=%&6pdQ7{RKP5rI4qL= -zJ=Kfmt1^kx-eF4BV-&@fw6^n7n-cf|jwdP9O>s`{Yla07K3BeSQ=3BgqC5W%p8X+> -zjyY-ijIa01@}O`TJ_=Sm@I`YXNrExGY^W8Z36~?hjDq5Z`tq|1Xa$m96l>r$hiYKXT;sszeH}nB>?cFuKewxQw(MICevf8j{ -z&+N0cyR<(jUe5LB%${Nvn+%O{$Y%I+DZIAUulSDg11T)}J_2xcQo*Bwxn@z!%! -z93U@UgE#!FjiB|yLH-~m7t>K7Vw;_`#WYSFBN=ERzva~E11CW?(`8Xvq=ji;&|MI? -z96jDo<&LMNzf?`Nfc>o8A{Zh5z7A<d4*Z^!bSO*KDxC^lv^zuyau7%?f4aaTLQ_rk-wdc`^jPtL%}7kZ -zV3zp>4x$=ebVM6HW-v_!b5WcAow){PB@ju=GLRI&7UKUz5A0V;k`@oj+-#cfX}8c6b+05JM?sOqdV( -zPa+VVDBuTOoYi06fh?F&H4BwQ`9p`_>@4R@9`mMYX^dm$iOE*BAwuNC>@{r4<zT&#SYIy)a_3;=Ehajy*1z -zt(r$`?(n(`Vk~sXH2xblMjHoDM_E7mpNv|+coP#0v)wt*NO3lpVJG)|gE=w=XzjsP -z6HiPcKnua?`4YKl^hZedV~}Jl_rGHLmU=ynV1f;^G;-t)MV9fGpIIR9@^yZNH*VJp -zqQT*)(Z!|Nu5oLw*4u*e`(Byt`z-uJ57vl3rMc%;6u+asg5#B+yU9fSgI^wz>N$8K -z#Tk4nlO$POU%l5-LeZFZ>{E})=Uw93GtyhAkU$K(W8R(IXIc>@x4z*HQZd -zq5X$TTDu0*$OkUt2{ZHJCIq6Ff0_CS3pU(mLRVx}Su)&Xo{AN>^Qc__%>~2~ -zpA)s?2Qgd@N4mI-s+)6oWQTt$x7?-9;5ypzMIja3{rTJVy?>K#UV6i8Q1W@{g^ART -z&n9Urrz!0rgGX!$z+mE9xLLPpEw(x|E^g%dqLZQ$4YtU-;p3$pF3>rV8U@f2V{o!lIUGID!1 -zOPoZnb8kl;MkdZr0sAopEo8$(<$+9cKhOgcoY`~_E6Ykd>GeP0LHc+II;7hs7=-S+ -zib9aZSrt9`bA?}YPyWIG+2ZXr9HI^oKw$Vt<;umMcb1qt@6v^`JK?0>aVEf`l$8GJ -zi;F4iKs9}I_7&tY)mej -z5`vn1LeTxzGs#hid~-^Mf$DW~(jDOhsC{6iY!m`1yEX3uYxqP-l*H?ri^UbU%aBo( -z@uR=b$sLf=eZvzO{)i8=HBHJ~-v}u~Pe6BTonQPlJ&j$YaD`pJ0fQsa`c!Qv|}Tj3bVTU=CwE+pa%K&)U*o)c6l(W^^_O9leq1jWitN=H`Foj;OG%(S{l{Syb{Yo0u3#JXg1WKV$0Z& -zSHK}_Uzdeo{H*6GPxom}c?4*Q -ze`(p-??kJSugc(g@QyVhm}tHR+#F0#V)g>d(71Mx7v&i*CLuDe{o0hsM_m) -z)d%>fIw@|B6IHEPg%q>s=lBNCE0{BRVtj}{bX022g$=FMc;z=_;-Q&u$`ft*8EJs|B{H;=>K7jY)hq@!@r -zcFFwjTmK7n+AKyUJbsx`CCTxZSVe}?67Ib4B8JiCCyLlz -zLA7x@eFw%5k07L7$VVLsnxaq4;>4oxQ!uLTm>FQy&XZ~ld5}G34Anoc9I?`Llmn>e(a6v%w{b8h0FJ){It@1l9Ux@iFtSv9$VgqI2s$lfrOg^ioZzmHz;8MEm%w_&Ecy=9-d4O^?Q(9aj%{WB2nhC(;Jak9mnR$I<%Na##6pbk1l6)#r;~ -zPkffia=ztuBKP%MMEvMtwOlz214co7RCwjel823{F|DlaN|#`lV0;^lG!FYwvH@xx -zx|rlXVOMdwvD<>kIph%9Zjt6nVI_cHB(BtYW{MmK{t(z?d8kr>*@CxZo)1-87rT&-uzKz#`c;CQ41py`*}XnE7$q^R&K5XSnN+n3?jZJe~Geu;F#l0xT|j@eE8G; -z7WNQvzZkCb6IIvv_uZS`*fG>9;s+udI7!2&XMBm(AUpuNaD%+%pg*X*Hb2yRC&N9y -zbFx<4I;_}G;8>Vup*`cEYGVL~-v+crpnDK%95-h^e|A<@|Kdun+47>Zgc5bv{Y`{w -zLJ}O}T6oyKoBa02;vnjO-#CqpEa<7O#V9ByZQbjhY-4iwua6~fwb0o(OuYh -zmQp1{9(G&ssFMo*PJM2W`h{<#KOv4IMdfqPefgs0g51FY-pPq*?$^WMN1=z`{z`tr -z&b&gS`Yg>_ao1HBgoJUPxdQ56i=9(^u#un` -zM#(t^TLYys|KN}9S}|loOU*_{_hH2R(;BGfkL}yOs=G=z@S<7IJ+n#Ptbi(gp`33s -z=e~IA!PF@1^62rL*Kpcwdx$0zJ=aBB=`9u~^f*OvdyC>>5v`AUkEbncD{m4KocDUO -z3^*IVp3n_As9UpzC00S9NmYb+c9k?V-N*#N(2*HoD5DL*q}hSv{QsmgYUP*_9xbcH -zwg_oUYkq>fPl*YXECQuIze;CqyluZ?*uVzZ&6gOZqc)b#l_(^*FU^oJ;TAePRO{94 -z!*|!=5m@~Smbw(r_5Q)mK$X2P9yt$G-IzboSLUQ=Sy_)LZ!w){1m{!igo^rF|I>rP -zH7NA6^qOyr%;dWAc?b-0c?=`w^EqO_`>u#$0gTvEt1TSY!u%YoN+xly$ -z5b`>>9MsS~BYC4sb;K>OY!2D^8#ZbD$zTqA3FFM))#X1u*f{P{6zeBJl6R` -z&rIKzB-oQdMumRT>jAxs`7FIB=(9bd-t)d=y^#i70L)FYUM}QVa}-|y?WM0@@KKhw -zFPxw0AdvNSp@NB^{+oe46qo!=hP&cC3tR#U-RCFF@p6}p+dda{!r|gvOR9%rZa*t8 -zFL=-?RtRVOTyWq+i9$@Jgh;IMX2u_uR|#{iPnyduLRW6<`DL1^_b{ -z&~AB;R`0*JPd@an#2=U-Zo#nQ%;^*B(NG~AOd%}Zz_Tv9_3+akzAPb4Qow&zqS=<% -zWIrC1-+<*A-aEQILVH;~;>`$}6PpQ`Icv(a5-VV=6pi^@!|t_2u|`B;+qmzoGFJC1 -zOW#-sjtmn$Aro`V#AaN4C%m6`>`?B!MX7xAwcWNhCOi&(2JHr13wq8c=_%j7a^!Xh -z9DbBH;sx34E8Bl4tD_@1#7x0Qi{Sqjz0vL-Idq_09fmx8jh0Ds?I-VOnD4}XT#=g8 -z^})w+0f#TLiM9pTwrx{q_Ygk6?m+Iq%S&f%dW{vZ*#M#rHXCO0`K!K6k(iygV}T00 -zW-n3zatw5Nc~)rp)jjzOOLS$GKBn5Lb2ZN{?dp|0VdjIMp1g!AAGQ#1IPzJrkuFF| -z?QR%i-a32D|Ba-8`!s)%HP(T2lL*S`2=&XF=NCOg4SYPJ9fR|K4~03q^zSkIa87muiZhX)t39gG*k)eQN -z^lOLYwMmx+TA5RFUN%$EBGQ|ou(e-XZ}Iu6JOR`ZnSRly -z?I-3d-=1am=b+2@l#$3vGFq8{O{TcmzH=4QcI?Ifk4tGNC?WKL2xN~>kn?4)lBXGX1SQfDQ>2kovId7+I? -zYO*9Dnm+HYQ-el|vE?lSe?1*m`Z^#PxbWdisz_aN-iPBVL`VUu-JYiv&?*#E#TMYc -zoINOLD!x^}hHh7lf5oDU+f3Z((gsQ@o6uLtx!n^YZ$_06Sp-IO@rA1~U51ss*PCg? -z`NTiP9H&BtZ670sL~T+mhg0aUMib8fp>Yp}ZQ6K=W#K)~P3mu2ZG?zvhtdP5&Es7-M+J}OcFyj_yYW8Wu -z949j0dcP)XBbYB~R#~-TeuU>Uh-`uEv}cHN;3U0pm0F3+VyCyuDTT;gOtUCOwh?8Ud -zqbEs*ip{j&P}F}vKRH>wt2D_$RHpwXkvu*s^DO2-lZnv>&5j}|G?y~YAhK7IBtOOB -zzYEhcSZg_&*G_y~o|1UQ&t3kx<|4>KdVPzQ -ztM%3Y?0bky3a3wIRwPn8|xNv@SY7>XjOm7_5}s5nn?pN5a*J3jT` -zNR%WKF^)Zt``Y_6lizwG9g$^3NOK}=18T&R3NKmVB?2}?wEDY}cH1L*O`Kegk-)nm -z+(Gr=4K=RShTDGjHxZU**4H6@wJ)8w=~T@Ni^g0e8aa!L_yzkw2XRJPdIAe6jvaIf -z^A2fnC2&2uQ=(%$=`*;1{MYxrG)s_dh!(^iO@CSa}--QodN&MC(5WfV2WKQc~#6%=tzWL%VrEv|(z9 -zs*J^)`yoRrbt=;@FFSL%OmD>lJ7JvqdF~LcMWMmL3nUU-$b%aW+X%A16$s-ho^v*~fx1mKZSd -z2L6P8*4Xh$$*EPLqZ6i}q$jmaEp<3Sw(2y0)ym+bD;6F>72qarSPneTQu-r+Waj&4K6 -zYi%E&5_KVHLXKycYAh5FFDDrLTzV*;gTBZSic3PD({g_*8mytoHWL-23R^^L-^Y`~ -zkcYK;1?75vu}AAfPVeLx80y3gzc^;2_=-#YdiXMW*jrQ){*D#6&%D2EKYB*6B;chW -z7=GoD8R@akH(o-up1R3C4L@|{7y2KKP(Sjob@h;iJQ~Ggc=q_L*Fo4Jz=E+ItRYAo -z3^->BS3=Es;@uIG;qz*EbxGdi6p>tyOb@yC`?22efH%=8v-T)kckL{NOe0@)5#{5R -zwB5fEhv}KSrwsdTMC3=eDDFpU9S3t#eRnWiBp1gNJ|Ch-AN?41_s_Stn&4sTKtTTl -z>%rrvlM!)xbfGl8T9lt17@qa~&0j>RgzhsCqtyj3HRr%Kn1ha!G^vF%Wi9z<1JoBs -zg87+5{OD@6la3?{y6!qXPu}ya?CbKqWdV!Z&3Y3d>9j5g;N<9 -z{q@^1;p4Z+RHs6I)bG6ew@{3|6~5&82-~ZUH=eMq@8SpWf3F~Pa+TTU -zwmJ!x;BPF!nXM9uNbF7Fv-SW){A<4Q4V-I!sh@ibx_1Kt%P<-;r?PDkvHL15>nvk0 -zsCoF~`iKS7&90aB$StOuI1io_d8)f29O-NeU*ivFF1m6EyK#_%CJY60WDMNoj%uHO?aYVgW9}ORV?y($fCq%{EwcW98Y+CBNsowD#GyNep~L7D-Zc7 -zj4gN*p3!*=&rnOr&fCmTjJ=vU_k<&>43a3J#|B598jOmGTfTv9s+p&_Pp7-eN@;r2edBW3_s`Bcd#F{Wr;Ztv?HKfTCzDE~8)`dPV%#LQkC -zdC$jSM1V!^G10SGUn9l5;M-g9NXjL!3UdeM?Qw(1_?C=mZN5yJ{HEE3(yAVhQYbA$ -zK3Bv2S_q>ABIL#3Chl^j>qqAAy|?CY@;@<$<@WqN1N=)y#3iI{8Y*e{GWdPVe -ztbGuAX2n>KZ3`Xf9@YAc;k@#3H1p{4pWZKV2m_=s64OM}f_WI|c^GPIMkEi;X%AyUG-^n;$g#+|IuP -zuZI*X=x&4vUH>7x|OA56q^w4UPRXYTSf73}x&2JSxzk9xSEhpkvs?4KNX -z6rZQSxBr;ZWd*|Lh)WaRMzxPPu#XEeH`1(18p$Q>BIyG@?3gqZE&dy{KXMoGeVi~L -z?u=LZiNgZL1ByUo%l@RJ263zsCEd#7k53{0o!uvZ&c18Cl&zKgvov0P?cb7$?2H)F -z-I%fZ%tf#~gja>}p(V#qQXHKX{3B_l8nKN;ijlWuMNlW_P!??uKrO?$aB_wnjKsDM -z5K1_Df_@L6i+)8Mqtd&naXLW80;*-QT_a|x*Mw8L_wqov(>aTik&|9-el^KCwn*;U -zNELBO5Oxbe8Wi^u}GvA%8VD?EiM{;Zm=_^-q3+f7mJkNLH{N>b34pFUC# -zC?4crjriX>Gk=kJPNtG#G9)5-y@4U2C_g<-*ZMvt$nwK9g;D}Hg~VH_A0eGOgJj#1 -zq|o(JvdRv=6rpUpm@d>$OkV4C3`|cag -z+i8E4VaT;j!D{d$h^xKhdVpudJUe5$-=9!{AKOlaX)|QI2T#xAOAaG~y5iZMU}K+; -zXEUQ=3gVIJhB)Tz5NL^VSFM%1yU<=fpvd4N<`~M*n~Dzs@rhi-Q^76@&)Yd=KE!M@ -z?>C;VPaaU5fRCU8ddjIsaf$r#wIYY}s~;N{-4o%U%;!j7y#l)dry8ieYYbG} -zR__KcP6t9mnq}s<>%~a7D_l|4jik_6NnIy}2(;<3*eTM(DH73ccx5Ci_1FsqXKy#g -z0A$tIcU+|xEQtNkdw#i#cAI4SeFqGHZ^vL=Xmkm6r#u{qOMSQ?@-ltmzGt#6qbEne -zd`(<(#((Jl;Z9~5iF7A6-Epm4NO7OU;r7xl$hq-4b39q|SCAr~k`sk$dF3{gDLQUwrvBR+u$# -z=g2xvG(mliVV8l8d-7^GEYRTR%b$(vxWAH>w!dgOl3a66wQqgUnlfJbi{$FwLRJ6$#y*41P^gm7(?V( -z35<$}c}TR@M)oH)jN$bMfGx*U&96@h!@84?CV>Hezz} -zXpCfIgZcsBYO70ygUSD^AW*+qn~hz?k9B%DQ2Vq{Ssi$6=E3?`4X~y@eH|R2=h;3+C4LxbKA0_FvQX1c-GfkLs?84tjU?%UUQoD#J8`MCbuI`5<&7{IBk_Y<#>r5VT^ -z53J(seVenuut7?3C>~&vq(;8(*^?1?8Vr7=^Mu -z(yHR%VC!B{r;l%1ct1Ala15?*@h=@^MYPpLSdyEUwm}K>YC}`lpb+{uG>CdnSSGGd -z{fC#5zp8zW#XA6dcc86k33(cm)R5lV6RdFMB5L7FNTD{Pl7EC9$?wOWiLmfU7pu}j -zimk)sXxZe!J!jdWNh)-}hfXayu>AR_a@TB+q+ro|LazQtV;p8X&$_e!_a*Uq8P}51 -zlhif$akv!zrPPpa;@eYv&fxqIm)=1@ztKkBAY6#bz2kNL92R_fNRj_pb9iV(Q;K<| -zcg(F*FM8%8&km#1+3(~451}RR4nv;Vq -zj8A~a1G##Vw*QE>C~$A!kDnW4R{8!bB4E_WQoI@YlYyXUk~9)Oru;D{EJc6jxsW$Z -znwE2u?X>su6PwTdWU4jxRG5|yZ(w#5e1~89DpJ4M;I+l?ztHJHa26WK7Z1I^rJL;mnRyWhSQdeMb)xE&3&c;Xd5N-Q-xB0b0N;}syDv&#OH5N}nr -z={{Cn^Y>k6)qA`3VW9!s5r~955`D^qQZLp$Kw7K!;f}*w2r}xJFWjz8PIpt~44bE2 -zF?~VW6lmy#N0w`Z>+{6%1S}gr&Gyki&(RXZA{bl5W+MME2WtAjg|=8if{c%ANLWC| -z-vvtKT@BZ+7Nqsc6lAYaBuTAM!^l$6V4Y{Il+{p5!~|(-9H-}ffyY3el+?cXJ_*$k`?5$Sg=Cq$skkog$j)*RC3OLH=9FYsc3Mg -z*%D=RY!&Et6Moqu*D{|#pnNz@*mi`>88e`_r$9>@R1gyyQ -zX2Au+fqg##i}JqG+?pwVfM|_%Ylmje6iCLw)J5<>VXdlDSfURX -zNqR*UMdUBT;a03ig;HiJ71SW4uXjKGQ=;iWnI4lxEX&#V;?G*v%AZpq=3Dytt<;-R -zxdG3XgGfyq@g@UXSGR7@0?n%KUdh%WWr+Fw%G!zEmt!J&Su -zzHK6r^HrU*O=R@HA&G4Z*qt1Nr1d;+V`QcF(suY#Pwmf%aR0l=%(t$hj{N5_71d0P)MlG=gMHxF -zvA&hA9H%nbM+5nanW)SBR67+3`TvBIX9|!1*pgU+f}u@Q?Fcn}d1JXvV^B-RJ=vM~ -zNO;M!?qn#fC!)%Q!v@Hj;CL}aZIi^E9dG_;z>xw?`63%Lc6Jm_x^e3#Gt(!!J1#46 -ztIipDb@52Io5!**u(_n84Dw70r~l6yctEF_WrsA!uMN;hV+;HzQ)2Z>$nt9MbBqv5 -zq6%)%z7xnjeaUd@z@@ciu*6-hwJ@KS`?Te{NiE&NY0dEOJ5=f}7Oyk4^^yzW<+br? -z4-HfMLltl40kQdM{-p~0>V*s_jvAq*urV6AQv2~|Cdncu=tk9c&c3me)!>ap=xDLi -zHj4_@An!sy?}j9PvQ2Hz%yX=3X`T`CUP=zmDyXcAtC|)zmISfIhDZ(gpuG=nuu9M$ -zxwgzPJhq10i+s|3GmO9*Tb$~J-3d6Gzum^Q?9J$A*I@?Xo~P#td8Jj$0q4)A`)~WV -z{R~^fGa66iBe-ait>VV}so9_(j0||i;|{cDMxt-&a*kiAuan{U!p@)$)lwE5>UkbS -z*4D+Y4^AAM(=fLNI%SMd}g -z{fD|SM!xb?F9vRB`GYcqLxRy5Z&goMSSrOqE6d6=$!p;syPf6;;wZI+w4C^%P!M+5 -zP1Gxrmq$CVGQh)tR8`NTMXWu1`Qsj;iw8nGaBFEdaDH?895LETXeOTJ4i^RzQL)ID -zPEq0bZvxY&^2Gn$*>PZ3OWcHLuw$;2V&>HwZ+=UAd)}K{%;MDpjIEuQGt6&I)v)Xb -zPuFuZatmOxy1=w!tW0su{LnuQFR;nhOlvF5ZK-aH02uSFII=im@&}~;BLe$5*g6Ud -zxcys+uAE)QM7UI53`5$AxJhG_Y -zo7FA6b7SBk-M{U9KlETV@+d0WP_Yv2tqQdOCvkB(_ -zt~<#WkgXC-e;#LQ=R6WtsZNzwe)<`{3oF`eo`x(erSz~>9q8Ir1YkisMQkoN>+Zks#)P2 -zXnP$`O3w{| -zb#BuoYv4nQe>MHo+BIFr71ainYJaEq=>5f=QWe-v#tCN6#-sY?b8rdNv7#aiU%^%S -zTm%EX1iu`(hfz_bC?BLlMC_%j@pN8z)r!Mm$E-5x&i}|ZmMu1vr(%Z{oD+td0&N2v -zCn6W4Wvjq5LHsDGQ$BkgKm9J{zx^6Qq%KBce3xw_JWP4`a?7ljV7`75>8W4KTl3st -zWo{jsKbg+0mSk3l%Bp--QMQS!7(FbC0mR%r-%?F-ySP`v77ZvQzh|^eQy?k@j~ -zfGHvjf5DlP?#g>HU-jdC#S%?!58*&+r%=@!{7|H0$(BrF3fpm;SDeM;cjfSR(I(HR -zv`SCY{cLNYyB8Blkl+7&L$DQon_oQArU#%` -zu;!XZh54G%K+YdNmb05pwoMeFXFHz9+t8<9KTVew8}j|r!~}l{6imyRJa&e#r32Be -zG|A-Q96OxIMW5@1_-44y}nlz#;Rhb^rrKJ -zo_hM2a?~160g3fm;8}8#f9iL15qMMj>(vPDPP&rEQ{rU4kc5}Ja>VNzaZJ_Qz`W>f -znJ{n;W7Uadib7b2FHCbE_@^3+l<(j>#AL#}ekjbY3N0Cm6lDJH -z32r1I?Spc}3{b#KzuR4Sk5WO>n(>4qq5z{rkkU8>xWVK8bm7~c#Z)>h5;*+@{1?R$ -zNK%?)_eBu;oZP25bm$eF -zOFWTyjrwoJ_6*)+LDq}~$Hn!eKi?rw$)0w_`UI2FmUYE*YuW9kw1<3Xq>`u9WKN(; -zHq(l*!4FOk2%`DLl+j*tj1k)KI;#J&R$#o<4Rmq^@3c8NL8OF(qo9#g+QDWwKgTn6M(!IO|(*w)& -z?;8n$N#+B~93xGlR}Dyqp>{r=Z*FG7(-2xsZP2Tyho57m@y4k#r~$!B^`73KDbY;V -z`*BepJK4RWo|_T9Vxglk66MJn-PmC;OQBARPrAHU?qN6WzvJ}#4cbic0185;*G*5E -zJNYbnJ^-V)t2WCWyhe=~%9!$;{Aw@l#3E)dv0-;qYNkG*)&R;ur%;PFJ$FJJs2|A^ -zgZ{@%E+w#qbLlfYYBO@rfm?fWxhelyW*5+ynU=@?_K?e&BnN-W>YW)uehxtv!j!0B -zP>c{?60r?{4*J?Mz>6|lPDyB4vqf%yUCzM|j{SaPa&%9#Tl|=M$NN~H1CTFnZs|5M -zEuQNd)oP(Iqi)Oy;RBqDt_y-{aHr+AO5;7Znkktv)7(e^x8W~<>7XmZ?17#HBYxCW -z3bd9GWG0tVqn)3_4=X9LwoqsiF9G$niW!+1nZ$O&62AQq^^KNw?K@z&CjLfsWU1V? -z69-=x+J;|???}-T-a*$y`)TC?Z9?}s7F)a?heOWG5GrRwe+ub2f1pn>Qnjic^51c@ -zEDq3h_*@dYw3~PtjLut<%?_IdMh_e|1?TI -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 -zYQB9p7>n{@Fz>&L&@s$v^(O)3ez3czXgL -z>^UjCC-usR8z`dAq<6(D7VFdfM-P`x=d-RhyQ=-(ch-Bg02=6ATJu)&l)xUEsMes^@?FaH6sCa*;_l;;3zC_dB1{wpMrkn~_ -z?y{REMIAe~F8`Poq9)YqIW`9iu(CJ@*;Eq_sxvbezf?!*AqxU^)a}EM*=e2IHP2V;Pmu6cs%TcI-0ak@3fqP|{;()-fE)rky@Lmnx6@ -zTi6zc%f{rLSM&e=EiVuL=a|3Dw#7BlE>RYSco3lfSiLM}?be?*mKj>H#VCODE#%kd9o#1D<(7TO8(hiGZv|!f703PN -zbGA-%g^(|Y&Y3%9hJ06X4}MI91)c!xZNWenI=yJjDQ)y2@>^K@LgD#jyT31qy4=Vl -z=%*&5H6enyMeIfk>eH_sWpEjR!P|D?kW?hUk6HtJ!mssLgyvosWl<>_!eF4NnSjCfe9Qnt-XZM| -zn#MN2a|6#qUD{J2olppLab9odZHE6SKM25}0*d7-HjaH1ryqaxEpGVeHA2>MP&aVF -zl>m(r%>m6Tl&8|yp0^A2r3D$#&k%d4dEr7o*At974ecJ9?Bz}1Qkjhc81`?>v>;-F -z`}QBRK8}^%PbiVOAj6q3I>11j>C8XycKgClJ62cHG}1RLEy~;oW9=?$wz> -zg#j44agw5o)2Z#04ohPZ9(217vF1U7$`*w&arpBEE14O+ -z;`>sz2{e+6>GdX{FeIX?6g}|5Y$KS1djywJivJ2;FImoGQ4u+hiv@8epRpc{H6%8) -zc6&c)ee!q_iOPi;G#ulBafIqMW&=#PQy20;h7Twz+IzFP^(l~dz{D;Y!~^dpD-3e} -zzGA<<10H$p%^5`oow?`=?=oAqud(P4h;{ZF?XPmRzl)%f!$T#w_7;z(LaK72rqo{6R{DRwur9E+!>k{Ay!HQ -zub*{i{aUnF647>Eg7#V?_Kl;F0DDg?Swe`&oYNsU`04i7c|li_GitCC1(r5_;xFVj -zjWs(3Fu^@&n;>?%DDxBxKp -zY7m8z{avN}nj%WS-k`$(?`4d-W#4+Z74oAO0H6YfVG0z>?!ngP<6apA5Gu$@))c)H -zHu7|aeD-RvI`FLXql8(cb9g-%YYJ$~@|K2uHAl3W@W?nQvF&2GKOkdmP)8NbUkE|6 -z@UdFuDgk!=oecbPk^D_oL*;1cNdE -zaDQ(fux7S^y+=m?`M~_1S+=UYLbjSzio}WYm%~yvl_2{D^%%4z({tjBmYC3RL#k@ -z3Z`R69e_)#LBww=*5iBKefjI@d^KK(zw% -zywb;5NFvsCMspT3WTS4{SJ!d3AMW0Nw1bF?_K(yXTIr>f8(AdG5gsWf@0hU>@r3PLE2Xsviy7 -z5jlwHS}Bt-n+PltQ-k08WIy0-R_q35$@&rTK<)cDqa$$P+Alrx9P=ZG3Sg{W&8le- -z(OJ~Lte3hWXdK(!9Ua8-ro8YBnFaGy9*a50BGa6Av|%5Bh62hn0@RE&rI&R*Q{(lv -ztG$Bxnoq_JQdJnm+v5@VwLJrI?8YfjI3o|}(D-UB9}k)qXCg+AS5m~RNrxm6U&(o8 -z6^7d5;zOp8D19GOpc(x25EK((gH1rr&fBHku^3`2K#@kiuy-?=}jQ$ -zDzQ+5VR_BrZbXb2>DaCod -zQarF&GHU{u$bX#3)l+x%$gD(O#*RSAlpiwYE1s|25&iGPE(gZ`oH-#5cn{qKGz-T2aLEV!-YZF;x_q##6=Z>ZDBk -z?iR!h{?BHGE8*J0BRtwp8c2TsghF5DN8Vum7HyiNcVGOhiyK5HIb>=67L4zmqBrcO -zxd+^{t4bF@opFQPnC3=;>~nT3*4`9CXT7dx<}$H{>w{cbiz{zlk`KBcKl&&g4Wr@4 -zeolO2$^qW+M5UjJy@Z`Q_R2i^LuXiImN7~)hP_-+@(tU2T)i5fQICF8{vHuRY-ThE -z1XNBuX;fA=(F_U96N$JDAHlo(z(Nn*BUY)T(?H6P+so;RPiDd0&;~*YxVDeoAl)Y) -z&e4Eohgx9Y6Ay?Vpci8tGW-T#kHnkZI!>Yw#W^H6-nDCC-b%rq3M?*F;CYqx!Jdkj -z@JDvIQ`Mq{mSV;&h_jMvLGexhpLgA7rO29goDirKj{Wv~J@q`(f;STnEe$;WiR35- -zlbv(zX0asQ?Tpfhm(uh9fockm8PFI{$(0+!#bxnnaFsmXEsJ*{q5G~DzbI6wD(mRB -zTI)B&MKJy`^lqI#M6QR)zl&G0l!WIu%Ia+_Vc+j^WiavbT2(PM_Ae~6v#gFN$TL;4 -z@(e6h-Up7Tq%q%H$%rss_vSb{N%1j^3xmKSPx3uAm#@-!H*ZSlOp=&y?TYbc&>ZM- -z#|$hhs~HF-k!oMRrA|#^ok;S2c>XUCd&D%NX*@#O?Tuw&7FzJ`tSjTVl^>mhOps-A -zHBDYtHffa0ET-d*;$7Qjl5;{($?#voW0O%CfXidD#OAV3=vB`WUn|v#8(sdno -z%Ra#U*b^Pt>v%@GNb;SX8#~q*D -zSLWNE`H2C>>3|O5w@W>Py3_xfrHLeP3UBEf7rQa(Kw(4kqkW|Xm^otjQ -zJzhb7NX)U)TyjQfoj5I)?%DoJQP&Rp7U>MgHv`+t-Fnhge6S*(REm7k^P&99aK)GG -zxHFE1EC1}xuul$l*Q1J|kR`c3XVekn+#uKEMa4o}Oo75w^`4~KwsVtRiPSc%eir0F -zyY@1F^E{Vwc8lQTpr~@e(au?P5e@*ts?95_wB3L>I5SrKKCdh3|tI& -z`?emBC^z2B=|VsO0U`Zj@ock=t-(d9u(G*ZMKh@u+>iF)bbF_L+h3CvA{qk474Ja{ -zNB9++)V9B1!<4l+o3K74Fq(HyluHy>b$<;({r%U+Z`{_q_uU=Kz{~)X`OhC5mwigY -zcfAQes6`q&I$fJ(YiVgb`X9{K+SDVbKLZ&@VDTIXuv|-tBw;M%emMRZGguQfv0<*2 -zDmaKpL!jT9y>t8Y!h5P$goilqlWX!NAH`30*#rF9w~WV}zH -zY~gv%-T_g(F6^+kG_Pd;BI2K*Q(teN2&_vD8d$ErasA0P2lj*Nc-@mijb$o|$a@?{ -zPDI|S5O_6tnd~Abo1j|1jKTKluQTP+yqDLAFydZBHi{Lu8jzU-Lh1A0le#-NPEcCR -zN&4MijN1j(JQ7Cn?@TS@~Dm{4m18J+CN=1AXlc%qZ@zc>war -z5AFnLJP|rDvcwoMi-((-5B{zK)#mCeD!iP2!k{eIx7RzZ*5(hheO~(j)~w$=_gH9G -z9Zl&YhAzVXSX4iHPlK2Xiojf0amP@aWm2$}ec^J~TZ?u1(f{&38$F;><2?Yaw{aJm -zbQoT(j}+h$3tI(^MRsCuAFag~LHS|Kx#YIXNVqn5^4Ro@*RA&UD}A?E6=fuDiPr1P -zgk=C21sgo2nv+tyW0l|85rD|T%4qjxyk@&;Lrki!hIDpT08(;w7lk#?3LeJx&A67I -znQgrVjY~!E;Za1VuBXii0Gl|ID|0;$&{dU*S?{D!GSN;=By_naYmqOWab8$-c+tre -z76ZN*QwH{pvOW^m5KnJ80gW!bh!MvEbK}*FlG@0Xl2=FW$21x3NCnnz$Up%&MaWky6BQ%j5zw -z5M2-7GL>fTkyj0~3Kvqvaw^YKZme9%su-raIRB$dLIW-&PPcTiqSK@M7De7L*kzcL -z5XOaA9t^O31Bo+cOvFOU-)1XC82&U|p*OEGcADDX3&u(YIZlfdqu6&)AZxIZg)SWm -z(YDsP;X}!j%xZ~jqbx8yDc5WToLM#4noGMq>pno$*0%kX+^pqxO-N8#{h8`8NCy=6 -z|FGP8PM`vtZbs9-1kIu$w%F12wUL+#p&Y}nAKM(zMv$bavd;v?PQo7sVWCz;HCsr+ -zu{Z=Pj!qS1F6108?)|ppR+#kR6OC~QF4Z3(16I_KBEDv}SuN2uBu@D`pFgvl5hHy` -z{0CyeP-k|v{fmXHH(yaafh0`NpGx(#>6>k?WPW1QS&M-cCR|LARHatiqVzU2~R?I_7VEZS14wrBPQx -z%$)w)L}d{PfF%Tw;pJ&q1^V#HwALp6HLQ^1r4phZC4TVGJDz%D&9Y~Tow;L2{Mf;7bu(ewus -z1xtt8nCa``gF$fI4G1DhpRrfORBycw_>GfEi0Oiski0VVQSjqiVwj@Y-=0c&U|XS4 -zrms%55l1I-MJN)U+k;4tghM2^xE-zMn;p#_LltXBk!w&CSVHCw-d9SuZExqZDrslU -zmeCbwxx@9}S=EW`zrHoa+bUkb1rV(6~bO_u+ku#Y}w`G5*< -zpNX6ln2ACf_)2st`TG^A6!%N0&>@@WRMfrsV4|$ZXmbi4j+3L7qNg6?P@i-J5(1kU -zlH5HQcgJ;F9CSOcXZASW#>l}t6h-Q-7Hs@KJj-sznZ}XwEoR;~^~b+nx$G)4!pD$3 -zBlEK#ep#i|ZkQ|E`O9fTE^5=Z-<*4{HL%Odp<)LT>nm4PZ~Qc%kL%r1nqr0=(Cc@_ -z2g)I-ax1>dz>9ed>~CI;cR3wxIAB@KD>_K0^7?dMtO$*pM}$crQ>J;oh*q6@g}$VA -zJ16Dkrvy_x9rd-{ZIb2`gg3i_M%|Pb*x9rcWZgw**32(&ZosLOzW*iDU__DexASmR -zN5R_hV8`hwDdH9VErTIm1VuiJqL8b@GAz^lKS5U)av9JHwa& -zt>Xz}B!KxGhz+hhQ7o7uw$4y&bScz?EJ^(r+32Rws=)@NZ~^h4BsF~_Ac+4%e9am! -z*D4n+;Z}ztL_`hC$~F&@$kb%vq``rT`~6KSb_79zfHmgg0HKM9u$Vvj#@M;o(XyTb -zFd2c|bicAU(OAuN9#FwV(*24=8Wn+OL?nIQ{(~w&dq)LIp8fCtu{f?V#yruF=n2z< -zp+?^rot-+)2T^-9y9Yar^@ToXLUixD!h=qA=0VKbJPU?(h6NuI; -zb5xLl4bkJKs!Ws535rh^!Hww&76q&-GdP8*z;Uw_HHeG? -z@lR{~{IThydB~ss!Dw7K}6FS;xd@$LI6#y9FFU>|fnJ -zoVOd%5nGgXA%ZrOjwG%7&tS|_E;3>KdVx3b$X9DlJ#p2G+sHa9_pjb?J9hPv=1}Cq -zjb#BqMxbd`e8Ah32!#^#HB`2u&^QHMn1Tud@9@vzEQ?IFFHpzN`X*an|1>p+4wz@9 -zd=bFfa#ncU0Wge!NocgAAsC(9`N@dLA+9r&a8UKYN}I_Um>Xdzh=^v6e^<<$`~a -z=Hx15l6{6n!WwLPoTuI1CfGo8zf?_GBSjA$nJ -z2Zta)CdsOV$P}u;i(jjtP@C(h-{0a}x1#@F6t(2izCv7sVAxIl^@OqwH_2R!1Y{clvzpiULdS;<+9+Gz07Pbw -zZ&d2`SwwtS`?2l|S4*~me*hKdivDKE^iVZeT-C`4>F)2ReY>PfA@!0VC{Z^N;pobK -zfp(%Q_R;=H(}FKo%{cTgp68i>v}-L}AKJ~zde7((dLJ<1&DBevM&PQ_>0xHI=v$6X+7|F4{MUuTFpyubckwPTi -zU?;v{M8Rxw_v}IaggVJlbFz!GE41JVFmW-XAa~2mWUjQAK;44H{>XA&lrgb4FFOyW -zXzsidwJU5o(G^K073~9F4Ctk%c3d^0lY$%9HX$X(luNr}p`LV7vb-e(Ns2R<3vW48 -z)P@E`@<(7=2Lw0^tEjK4mdfmgG;}nV%8S^#VVq^*o1Q3%OE*Nu*kr$(XA%14PYC7x_kmfqKvmli;zY+G9A6D3 -zobi8VbQ{Y$Eh-n8wd)w7iu}(*DY!D_&w<$-tZlKUa6D_@JKVg%7`}d-2AywoE}hU> -zW{hola+>f4XLHH}eUp<3e$Z0X2yJ?wHK)t)YY+2CYjXU)rUVAif51b%Z{kNe4H#iq -zHABhx{)(x2rO~p7$wESbZ6fAx)OY}8Gea+L&q4^M93o1ZmIJi{Q=L<01{2+vJ3A(q -zwCbEh{&<`urFe+@dRy0(u_@q$FajiV#*p7ZKUe7M3Q8rsR-qduXjDJ=ZCjsn_lHuX8Vk{0J@dH=olWA*@(<=4 -zpzqVymy^MdLT0%<+iIw3}wR3oFe&~Oq!27 -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 -zCZ4N`i)F{$IQ}9~n^;6L=cEMrfkmfZrdF{ -zH}-lbj)6nNW@%s3A&;-(2C+vwdxs`M>vDv*SsC&jmg^D0w=1WAu&f&QwKtbHC7Oi~ -z=SD>`b5`)uU1c&mF<=mn! -zONpm1@s@OrnH)b~38WT0q{Ocp*|bNqng8MsMwuIZ+A{%)uhwDQTm#q4jLJH9wa5{8 -zmlE4?gFwxI!rIQX^T*_iij|-nrwZTnO&x8C0DiM#^0v*Aas8jr_4@1dD8aQsTnEjN -zjK$_WF<|c9@>ENbIQ;ckTEVZjy{1E04tMgAA4ZG{9pwZu(R~;Orc#W^);FdnE<(Pe+3v;b`Mopmx$P04IJxfm>&TGMg0nKQlAOC)fl=z?*61O<_)xJ)%6Q6#uw3 -zh|atiFq;cLhEGv?oQQ>6&1Ru4r=SdxKIi#4e#ix4N&2!KbaifpNH2ud9|1M-S|zm2n*SkD_D$qOg`b# -zszn8v#zuZ&;r{o8Hvh0}Q|ORIstdL?T$E@&E2F}?!=yQUU&jxRN}J!zQx({fb0* -z(rStPP2<-8jKLvDN3QBXdyy}VIMI`S8gz31zQk!j<{eMJ;|;@uXSW5-gXz7fqRRh2 -znyxw^s;`Mk2uOE#cXvy7{{)m!8j_U?W6 -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 -zlL$|Yf0&yYsqdPRs9oJ*?PYbVK(~J0%_d}a; -z>}3L>(MQ3MPcxqi7c?uwAZ}aJ>AVCLKbAOePArTp_{8|&7D}PYs$;4%neJtcd#8l|8O^3Ty>1sE$_-MU#f|jEuIs90=$sJ3N#? -zst~Z3MU^?hLksGKesjjRg(Rb*?Z}mVNuUHv4w*-&YqkPj1B_jbHq_(!t_qh~T64+s -zrbSul(V*}~yqp3OaN}Ok{)(7c^EEh2XF@}jVsP1gRb)K!bsuMl1oHVxj2sNz^>X}t -zr~r=cS?zS*23pNz~Vnp5LU>j2Rfl^xjm%e3u>$l6aTHM}E6w4aD^TDj(4> -zMtvz-g5q!Sq!j|Bk&(o`Qt@K=uL}ji_~c5?D&VTuqOU!9wrAv3Q#qZkpi3Jd)o_8F -zD81|d1K^^7wVBaI{IM2n{PZ2T13tiI`wNk?V%U1;Nq1S1o&!82*rBtaUeo)_SacJ`(oU0i -zF;SGgS*q}09s!OW-VdXG4YB`H3b|L3X_mwO?L9hdE4wU3gVak4rh_G#{UD_xTLEos -z$mDp@v&V|<=&e;i)%DV#Am)~KQ79# -zdgnS^RV0z#}l^%_1NUsPa!A9mCqv5_a0xu&GN$2Kg^xfg5LQ4$sdfX -zu5=-b)5Nlz&5s>*tqW*=&+AssanH9ne73VqeG;V8WiW|uRb|08l|#-)MX?+9fCaHp -z*wCuwFRICcHHdf%8=P4BFUVF1Zgac -zhy&g!&q&3WJ0j%RJGWw81)XwSb%R@Z;4lWBt{OTrrlgo4zE{2hjb4=ch3e<4R`J=( -zrp5KeKhP7bXA+OBo2mB5dU#s)f+A#>@%uNgZO7S8If>pSi!@yFZk}uDFufEi!N08< -z{;Nl+W|LphYBN+eW@kg(OE0`%2~>NWPd*BE2Si)n$atnV^G`W(PqW+CXA0wg(@)Me -zu4g<>rCN)AN5`3sM-Pb;)YcF-*5|i_q0*k+&a1(prttzV@!y2R_vTNis@K81{c3N3(6zcy7v -z!M{|S|CpKuC|(o-WTQ{9iNa1Htz?I=fY{#yt5&b>nh?c}^T -z$DcY0*&18{L$R;oyZP-R29jO09oH#oIfA^< -zOV8ot2P!i+VEVAB7MGu-r@(o{9@?YgLa{$q{P+v%TjPV0a-)xG;E&P7u0H(!6=1^h -z53ac`$?V(Y{xQuNK1o&4)nPJ5w0tx%=G<%(!O!Yn?=_4%k;R&8g8e}ZYWJ7h1l*xX -zPKh>klz*Xa;#lbOJo7t=!v4}K@X2T_Ie`KOawV?oXkZhn6&>0#U3zsJ)XfHeVmu^j -zXpk)-lhWV8d@s(do{8i+Qm`(`k6|IQcX{<+9F$UaROia?ANZs>?5 -z9a)qem*wI*wH33KpK#1^=b2uID~#Ksi)Io%i8-^RNiqNYa~+xPY%=R*0&3{jhoF{@ -z#8=NcX6hoBl?hYtgCRtc$@V^pNMnjA0#T_jux!9V@pA(8y=wz8v8VssaTtx*SJ(GQ -zn+jn$qrR6~dc~Iaj1#54Pz=b)r=~%jPD12K8a^p=3ZHV9%sY?#P41TbKFJSnyzbh* -zKuYiNnJ(TV+r-(rUnRryzQ`+*F(({oqZA7tn*H)L6yTmPxA3$Ua*VrEKNu;6-|;58 -z^Pa^lL4ybrKf9Zr9GyYut<#JNm<`xt#?N%WJm=hk@{0`3!iRpkLjZLzCNP&ee-oAtTRN -z>h>3~UKE?<44BWW8kKkyyu)L%CYf^Gx;et34*b;FR3b{x@V^wa+L? -z$;P!YWJBy1OS!(kn~Z|M2h>5>Cc5-qTA|FNjBcD`azK0wL`XV8$_O=~jfTjXG&N!j -zdi2LKFqA%Jo5)Vl((a9P*q;W*B&NYK${{MSY^wq$A28;$aPP|peU^QBAbfZ1Fm0aa -z9I2$McXlJ8=-YjYf1b5U-$p}B>y>tn>sgtmAORboP+Jz8SBdadw#iiRP$TTDdf&-# -zYIe(*E&M*;tM%eZ2n@u8Fkg!Zh&gpY=lZbQFHHJFj|gdB3=Jj5unz5i+lGxGR#-i? -zgy=x5C3V8o+3!o;#MU@HOH;!!$G*Bx`BJ;jJb@O?mzI_3VoiFSlS7UHw+dng -z#dn;@SeIMfMdpNWSgHPOwo*hx9!*z67^;%sAE5PrUcyhjgIf)|9HW?jh5+~jFw0_7 -zQQ)*%W6?REQRrRu{#m=2EW{T2SBtpoNv{h^A|yxa(5{7 -ztb+!;zkE(L*NTs7U2>t1s9_<&yQ2dGBirNbzhtf)xZf^+)3}~22yubl#6M!_U-ET=WvEmis)>IC{pz5uVs+D -zwnLbz`$+-(&w-N44|;Y<#=vj$qlJ5wZ>MQF&wQb9E%%jQCR5KQg(e$2D!xt9Y8BFM -z<92C$%AvPt)D!XJgn-dtIi(@N;M`=FmOS$qd9;m$S`xnon;j^VYzGH(HI&F{lpPbs -zJF3;t!VyuL^d^x2utc8r1p@bG?r1vIK4ikIsj -zV1;N0ysgu#9=3LKjY|ZxBSchd(%Y^efMy1wD^?~sA#idAh3^&|BORrcRplwrwgV!A -z79(K7rLxJ87#uf0%agn=Kg!C`#Ea1SK^De&)i?JALUy?Ey!^?%K^U{}a!nrt^{s)q -z7lD-j$QQD5k%8sf?;H@r`S?4|9rrR%!*^dq0y(1eAdfpNPv-jhVHmt8-=5IUz64Ke -zP39d_`CPs1Foxh+18mImDu!TVKmHgLR9V=L&1|&mmK;A;<>&CCO%&|c$nZXgD(1=$ -zSVo|(uNoZ8Nqilwt&6t3DAp14kfyN}a`chMb~TQ{6hbZlE|87UvIIxdn57DMLG2IqAKt&M|VliKTr9nfFwJVvL5HhN_}}a2ot$w?0JPO-<0nFJzKx -zY|Lq^%a4S5k4?}sILP?O$i46#cCEnz;1xBDuz!lsWLb0={8&8)S`81g&A -z{WTCq@I9S%Y(trb28^`TYnopH-Fdx-fn`Y)MFjXpXe{EPT@&G-fg&7WEC8bO`njbCW&d$+H!ff|L+s20 -zF++EI5NppN*kT3s<<^I_Ap4>-M=+!Pr1I`JhylgZ|ECsjc$ODW>nyRaVn1nq|5OQ|BE+MGqNH@T&C}T1Hn^p!pUKt>Zn*+qjYPOAK;^Z -zVOXJ+Cy?f(b{mvqC-5HDk;u*h8USD;46lMhV6-pzHpaczH1Ta+-|$Y+_WSy|K)3(^ -zn6eS2l~NOd;Avm)Ru$kMn-eWPF>RV|ds%vw%t2iRmF -zpGq7&`XbSfEWQK|f6eN(y7O*dEUS)2Ls3XWksb9_2}GcRCi?@_rBP*njXxr|Kgx2N -z_kr$jFwZ48{fZWMc(?!g{B?OLBb!rdB{D;k7(_g=^dm?Hx4Ldm!Yf1`2G!qRK7y$L -z>xIzbWwYg}$5EA~Xq4BBD~q5R&lDK0W&#t>2gbHVS@lsM*oXk%9z{G@NuYI43%3RR -z`pBURo?TsSZoaM>frIG0FTyqx8V#O3@J-FS7p|4FB#v8ZVw;)#12GqIYd -zqTsQ&8QI#psClFR7()&WG}PrIrp%||XClY`4Tm2mZTf`gL;UJTst<&^otwyO{hyb; -z(yg6;YdG^)93*mzud?fYy0*+s4eunt==s5HIT~IyD(2zmQ%O$by?Vy~RLGE^#$WR) -zykp{ngFs4s7SLDJkGZ(}Pf_!c>HgvEunlkpj+4?W+H74I-7gRGaD;wI!JyGPynIy- -z6{hUIt=3W61v!A~$t)%+HIS*SDt$Ag@1;*E-?`~CYC=XKsI`;(q{so7@;Wjd!L6d$ -zh3~D04UIzk06T9Bs3Moe)T*{FVyGy}$X&Q|>H=DOkCeA=*FxZOGh^N91XVTfco*YhI&>Q`p&!S@>YEptzAiou|}>#=N> -zD#%Z299xY9Xy(_({w8^N@87VU_zAM%5_1}E)hhQ_CKA8mhA7a@CvECJm5JpcbYTby -z^N|Smap$j=ZIVT|c|i;4riOLOj*Uk0Xld1uM?S9!SwL|~pRcGO)^EN}>#}dg)iwVp -zLfMz0ic9M8s2#_ZMNJSHgB}DaD?U8^k2= -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 -zFC>j0^C4ey?GbUQ<>qP -zVD|RWQ|13;K)rf&8&i0{aU%P0yxX2r2IO9BBwao?twyL=&nZ_b(lNJYSpSRVD9u>~ -zW&Sir?HwpA3{xHs9Me(=>hu{B%#-7#nW$a5MxG43=q`LfJI64SlC8q8Cf2?!|tpgC$T1l*k}Glo_Wm)0zE;x -zns3d6)iLiRf}tFAuppgXI2HqrD0998gUXv!(vbeebT8j+(`WTCS{t&ub5~_`M|uSu -z-@+(KbCrNJ{8IL>Hw+dZlk2@0^C~Q9F&m%!EMU?KzI0p?JvN@GDBC=xj2l-BfNmP# -z`!n_4Be=xL*r|z_9L)qRu4B@Mc_)NG>a&5WZ^xYcDt2y4t!xzu%Y&^bXReF#)4iwt -z1wbRZtF8eyCl77*-)hAT?6X?YODEZPz}5u@O~G8MlMx?u@W(cps5mmV9h&g{%@oNy!^L0ei^Br|eY~>z8L(nRh;IQt`)l`VR7u9lb -zV-CS;0D1sw#QD4ONyS4y)^+N#%#7y2wjm!u!=PI$Tvuw3Lau#WwxGv)m2R{+HU$19xC$9@TM{zv8ARlktYDI3MVxS -z{y1J<6>4cgdJnofjRM|nm!VhFw2L4CJ)|{la?ZK5XK>bAshA?mZocw#Cwjzy1fIx5 -zz?Ux3VsYimS79ndD_;G_6Nu9!UT|^Vaz94@v{DlR3Yu0%_-_cX0=zir -z{TqU*$v5BOf$sL6q$$Are)F@O+$Xe^Ewltcd(rTUlTC$%chyfg69|%IbX!rwx45Og -zz5heHRc^8>ANB8i*a@ERg*}p%7(_j$3h)KBsNnT1_y=Cb?`EH*Gj}0nwz(fS22k|G -zXW(mGny#s{_UEmu^Q*JgH0*}SAw^-pj`~9-*Hvi|f!&^0yM1QJCi-FiAGCZ|CZ1+O -zC4PZrusj>$U40zoGvmi6XqwHKpy(5z$CVLtqj0JpcGk2bG!ee9uN-KTA3I+|YdsTp -zSdq`w#wH*9aHUGYGwg-U`Kcw|&~nO+g#P~5ek~?S6xYi|TsY~6&!w$w;nO&^HSp6c -zJPuiqW2bqLeLC;asbIjptr0LrU@`KUJMQ$P1|np7giY6PA9YMJAQ$!tR;T(-DZC{6 -z(UbgcW{xAl3^EHOJ5v3vZpG0*$b12KkH>hQm)}f*MF}`b#0ssHREbO@Tk_PpeJwkI -zYFl6pxhZ|nKkGUmlQ;DLZSizg?jM*r2sJ4*Pi=^5#Cwhgh4R2 -zRS9d7#8we@O3PC}LNeUq3qw<gh_17$~u -zW4!21F<`&HA%5ZDH6RI_p<-)55zk}(!Skhtz9$|(tG8PY2s6z%xxSSaK^Rbh?<}j) -z*KK{2kKC^lAu1S@M`r#@ai9N`y_J6TS;-}?hHUl6mYhC&~?r9Gx{o!EfPEAo;j!hW&=kXte#Y -zN$q`s3Cu^TqMQO9;~g0-+VnS5@^dUppFJJNL*JSda@(d0BxJr(MXKG!NOn55 -zZd*Wje8Azd`1jH7Pt31y$Gl}OShxLsBfd@w*+z?X?|0?}zRk92KM)<|jX`QdWdg*+ -zch6}g-&LlM!uji;5x_Kpu}}o=XdMk_94r1kF5VhK5l&*|djhl<^YT>rZ&Tloc7(M0 -zBnDJ8J(r{!!)%+_n$kQR3|j9$qu^FHu07ss^AV~hz4b9^b%5go7#?L>MX?LH;2*q8 -zQ|pq*xu}Rr#g{p!A0btwaZUq6iHDzx-5zI>q6xM?G_L(J4x5-)p#-6}ZO9j&4VX+K -zMlS-B1`ymRk0LHIw;iTB(IX#Cc{%!HtGg#KNFmI4ab2%L1JTi6O_BN>RJ4|Kg4-9D -z@#Ahm0V&pGVjEg&%6EK+aqvja*z*nN -zA1s$@xD}p{Kd2^(A{q>>pACkqwvA!G3~>RQl#Urx{+i@BZxgDmVCn7 -zKPAls0i8-1t*`_eq7wJ@t~pZ806Go; -zy32{Mb8WVpvQ%p*uSJ93+;sNlejLJq1y@*uVfi_76ny2s=QRKX8W5P|YuY<((Dk;w -z=fz<3n7kX943_iZ%KZ^8^T4^8_qS~78j@Si#X1j}ByUlkKpvF(F|JZ)b6yK5mu*KE(mTC`GtcK0dq#ZWX}R0)|4btIB%UX%^167z -zC)6B9fQj6@4|e&z_51ly=PQpwPr6sZeq=Q`kjw*c#w!yh{wtR43tN-&{{TQfK!HJ? -zlck@=mv3&kn$^ejD`|n;cHvfJcNOE8Cq$yP%J>+ILB~oXUVakE(%J&MZJ{-q=CZe8 -zU&l@k2j4{RFdtAHim~e>}?& -zQ4(Cgq{R@iXkX>!;N2L$DD%vLR>3+Mti3e*_jrj+9=84ou4ztx7>?yAkS>Zr7uw$(x=-sdH`VceAw -z)naRmne{(4qcGqN$dxM)3XwXmC^#|sGqQ8NC3kO5S8)mxV;kHEbRM$_uRt7VXrg{+ -zM(lKn723kUzaMeX!sGjrmM&8-mddSrmlb`VZWmC&2a-{ux);y!L`q{ehw)p -ze$Q-bpH1%RnK(m@?>gCe#<2ED#v8JRQq24wtAg&F=K@~p!1#y6m;^>&H%?}q -zVuZ8uKxZsSITTb>lfRDky_Y5-HJ!P`juoX{*TUpz9Vzp%2J95(4fg1Z0Ji%mS>r)Qt@hTjkj+PsTm7}i0IK_n<}F|)b-qZ5N$38*s#+~RG_%%iQV -zy7)iFd6gtQk@8w0K~OJY)8(xyBn~6?me~Z+^JURy+Af30v1^6WavRa^1*4hG6+ -z0g&mJr840W7gMypU32KJ8$Z0@19ogY>75%K$=Bc+b=gL9;*(1=|1YdXu -z9^$@G^0`q^=X|t!R~hnDEbBiOFa~P1P-6e)Xj5ngtsLerI5#26K;NmYGX=?!AE6+5 -zDKjROjD9mPp(gVT;?t9DqhE22>$M3z}^wik%E#1`#jNF}XQ?W=B5_DX5mnbu#aF$^vn4n8hQ8;V91hbEBXC_}j13HW&= -zqcD!@E>yb_t<3n*mNngEwKnE6NU-NP+6mfSVy8u{{z3a+G>c7M*Qr -zX8yuu=^hw9ZIIz{PASdpTdwCSWhA^=`;vQ`%-B+699Ny|PV*)+_yiH|YgBR6Xdhs* -z;{k+}ViQp>DU`KQreq4^P{St=?`%7ML5qAl9dX$#G^vM71-Bn9a65p10v1>i=sI%Y -zwpwpYvnjB8HVo~e5VwfV-=z}R=GZ%?ksV%sGR!i<$ZmxHDW{S37rb82!^SV5m=-v; -zaFf|Qiur%GFo7b% -zAIB*Q$IP9qj2O2_`m%N+Z;pV5AsDWOYNLNVthn87lDKOP_)uNYqJL{l_T!%S^CCrj -zQm(hNAXtcv{Od=9(Uxo32OsTXN+YpmwJ&iiOY$)qeAjoEYN-k%V7;iOu{Vgy^q&mx -zAt1)c(}&9?S6beqCvVHcIaIeTwsxW%6!6UYxg6`*Q#|+KGbK&v96zhC?2Q(llW8AaG(I2wVJ->3sO8Dx*pZeFS-M7m)A{NAL}?5)mFqFjgS2Z-b* -z17f*+JXhmJR+~CHCA3C2wIW2F_Vx!3lUeGX)IGp-uABGM8wTwMR{ZyB#31}%^C4b4 -z+owj3;^Z%DDU5HXo#tmPfnHTlFDFv+a}nnJ;`r+zp%dl9M)P-@Qc%p>pI<*a_nnm*@Y4^dF{ -zLhu1BzF!w!+vPQ*e<K=x -zVwWSdwBjU4Pz6$HG#TI_{oPN1w<;(_ZXgl|Hx(St_%NxVdoo%wgG$%JM}8dOhbQ!fTy6zQdx$$W4y@N%-m+q47e*V5 -z{wPWakbc3ruToxGc9j-r2Z^Xse;b+F2mM)5Tif{vkRm}>Ma+#O75Pg-1H&@P*W?#? -ztsbatV*!HeWVXeb=|%diJ9r9CF7NtscS6$Xh&?Y&r-v7WUxlByRiNFI02{b4NPf9X -z#nAlVAAHveWDl$W1jT{lFBAKkdzqG&-3G^!mxBc349s3Vy3ItEtS)B&<;hK{V=3L) -z*PTaUGLpzEqVz>W{1)0bH`qA}JVJ-M&JHI97jt}WDcZT-CRsY;VI&s%exi>IC>F*? -zLzAz^B^0#2KD9J|4>3Pl}V(B=bH;Z -zvo~f}6M_Uf-7hKI|7mPo_yB&dTZKFh04;&N -zUeG9*c&AsKTWn)XO*xdupum*)fAnvHm#f|WhTkY@G4JZkTS3Ic2X*4kI$wb`qw1Np -z)?%yq$=0;!+{<0OAwS(lrzqw6f2HEM!?}{&8@=_29l{0l*K$g&bB6T{PY@x9S|eAG&@jVc-j+*=W#Na$9*QO-=>hR( -zJ#W94$x1%=g~SKRYf-v-q|LP>w%ZrCR3JZ=NWX{7r=lFgw71mh2V9Nuhw*l3T -z9QYX;k|RL&_Z8pKn;7(RJ|`1?iOTP5}w&uBD_AK|%>Bk(N$rfu#hI4k-~7 -zP#UDWk?szqJHNZTe1Gvg%bP9K#tBs+K-;Yxo+BHtoOOZ-T1e`rWtZWmy&OOhO!tc*JM96Ho_AULMLVA -zVxl-66ZZE6hBrWg+%;swGKMubeB1VEb<(^l%f6CFg$k9v))9H9WWT%0udvxk0Yy}5u;m&Wd -z0hCOqj5A^i?)Z=G)ttF@h*aQdA=q;?@i#1GX**O2LOC4RQl+n=tku^VmU>=7lhgoQAT5bmp+bxME;=H6*UhcEI?h9*q1yag9q($cf -zuD(~QQI-Tl{As(bym8vSlsLZ7I+8BrbF9={>Duvbfk^m9=zBIKo=4vAy^>5NcP2u2 -zz@Qx${D1jIraGA$^l&U@UHLIaGDUa%mL>UNtF~h+P4gqLaFT-qZC414?**3VPW|D6NQz%XJWTRf$ur4F4!M35B|Pq9VJ4>z$q*a -zSFQtC`wM=mo?bnR5ng@bC&|OTQ26;<&p)ty_M$4pQf3jxs;&=Lzg9fS#X%!JsPnpF -zjuizJlwtopoZp+Bo*N&cWi}v=_VOjCPDIL7$Fi)v@cN2kThp+6%O&fZ4wV!QpDnd| -z7VA$8Dxd=hoTn`JqEs*bep;(4k0wMsG{i1a=ImL^w*C6Sf>r-n%mLgF60DL=V=4!- -zftS(ERov)~?{4zDSI#|U#3YMZr*LOI5iaNZ(N_fJ3hdd!N^#grq}}MxTAF0!Jze%; -z5FRKiT27sb0gA2Qh!|zRsw{86tW}B1Vs9cth(90dge0p8VsrHFFFMD1F4^@#J3#a=8c4Na%}l -zxxVRrM=!M`B}-@bnIYa5V529S7Cv)~6~?OCR^{uSUC#FR+gsyc10@A+!r3}%2OK~} -z05%(R^)YV_$MVgW{BmMNgY;pvVA^y61siLfB@0H*hXX`MQEAa5%P$&wUM78G6?i(I -zeoO}lx5bX~Jw=bh`hB89FRF6VIw{^=XJh~Dt@yJ-;+s$sz!KK~pVBrh*}8b;79qs7 -zeoOK~m%^rNZHTWcWWZtxpJtq8R{JgTx^8ye_tw2u75@yo?VNp5DwxJ_TXp)-e&5hd -z`D@Uj@|v;~=j9dsSz68H`a=aPO6tRt?Re{v5CgS5a<#q1rFxouEsRz4lTMkp#P*(? -zEAGjWKiAs7rjL%}8N+?LC-tuUN;BiJB{$8FU%HRidP;J;pkY9{z{>9@?wEPyyjXwk -z?aCB8RQHQ^Y*sZ?;HVS}EknYX{5b{n4aMrbeGz^9NC>%Fo(QUzC)X@h{m(yaN9e)6 -zt9$t%Gg(`UlBrWc0wl*~ZB$W@G`{Gvtu^fUaaf$Lt+t{|@4lLVHssnZH}1B%X&-?- -z0!r~|swGFm#mOm34wbq=dK1xo+^Bjp58Fnr`V`3q*%PwX;y1M(EG(pI&RWUa7F$a_PEVs~ps#zNsiVf -z=3l{!HXnL#5 -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 -z{usEQtR&qPMG@do~UiR5fX2Miw* -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 -z8!Qa@pPdY;{6LEe6z#aLzx30Vg -zvp=MWyr4mSq<4~K0V;crIxnK=kgCDYSUkr~s|=?iph>LhPY7b4{2uU! -zko>)%e~AbD3952-gyx5GLVEt+eiUU=jh$7o%DXctdBl<{l!NALr%dnf7`|MRDwevO -z(G2MIT`}^eGDZF0J8EqQwcdtXujcW_S=EVS1{wT&J?JUcNYqqs1rU!B~EQswQ_nU}% -z!{dNsv_5v4uHZGgD5c`CL(|ov(5nq}Wd(sq5gRF(9u$OmJinJ8ue$z~E$TzVg#zpA -zq}$W~?ysGH_Rg-9L9?3aH{h4AltL{2 -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 -zuIxA3)!=_8L+g)bp#(Y3|6bP! -zU{OxH0Zb0#r!f5^JPBpP3n7r2!sbb%UqsOA2tjg&_7Y?3E@5;($w2o -zyA!E^>DooZl5KlVwo)U!f5e#K>-=U}bIq9lj -z@j@Qrn)!=ug?$}&NZ@3wz3DmV186lUI}6J&g>>Z13-x<5q-_{dKY!M>mIiI`)pWs- -zY^pXpbY<;#7<(@JQEPzNwb3nn1*U8HuigM>Mm)K@JL4meua)-x -z_^8>^{HjBcJ^_pYL>3ur_RAy*f~;me1>Y<0AvbcF!X)gpOhQB -zxUnxRCc@D4eS|i1YwB9ie=PK -zr(h_+FG)58K+&jZJZuUsZo9#J%QaZ -z;-|ymEq;Wu`}<6gXX5D%v}X2jUx@4!$A%L=^t9Gn+lyq0AbL0w9fn!6M|$eo%e}Ie -z|8B9M%IG$7`OkpGZDruQ$H&KaM#6ezC}*04c7vZ-2W|tng(lSSe4Y8m{lb^MO{%BC -zTMH5aGtrPpp{|xtUW27Yy@Q?^Emg^nO#pHRcln87zlZpJhST?%-Ec&INg}0VW<>r+ -z=HI%5N*Y+P1SCUWw+=c*v>&0<+#0!hfP!`j(opL$n!K^G{Lb*`k`_(-2S+Lud@~$W -zma5_u23VixJS4|}ro$3{=S|C|n_ai}Pl_YSzhY -z7`-_dZ&i(on9~5q -zNy-hF$slW0iqo~cSkbp1WrM-Ez@4p1ftVub>L3qg`Ao@$c~u&*^_T9ox8|6+();i%L6qgZxRZ*;5WPPkjvq``E%N3^?nI*d^Y -z?8&>=&RvW-IH^oX@wgguRI=)nX!7h6yJlIsi~)0J(_Bk4tS-kZo(shxT|GX-mTM{z -zW8-wmx)ewlgp$prG(NtzZ1?!WD$;)}46Ubq<-M+`d4BK1^!HSCA9+U7i$AM+qp(h* -z1`S5ryf*lm<@dMZ -z-?O9-ElE{3r%yRc^94pJ`F?hD`+MkSc%iXL+}k~$>OOhm>1hXoH$p7pLFL6HOR*=?HgHOrE8t(=V6g829)2m%WWMKxBAp$c_B%I^>CjH~vgL -z4qzxfp+3a#uHODS5GzW8z8R3bYAGf}(t2DiZ7BoUiMrX?0UnRoXi5Un*6mCCx!tnH -z?fzd;C!{zaTqTsImz{hsgqk-OZ@#^Z3Y8GF2ZoThKm_7Z#X0ncC{Zn@Jq4*ekD0Y# -zHU`ZN2p&uMX_3V>tBlOs7x(n~7|B1h`1yx6&K&HWY69Vt+O&RZp$al5afuz1{4cz-_#7EZmD(&KDAYLZ%%Gsh0G0Pw!#K?W=%d%^$YMj+5$fB&KA=B1Wd{ -zF-$P0Wh(b$Q`0M$_y|M#$o@*V-2>#(B}k5|YlTo2*6@f^{=`9OsGbx(iNUh0ABc3G@rpvE)nDcC*4qVBIf2Npn`Y$d}@Q)fewhWDVH0{|SAn#g5!v}C~Ftz72o|G($ -zRM7mKK`eZQKP7Hd$nngh#9|*vuM2)R<`M{!dxS0=dI_dE$gzQscU!z%^Fu7@E+Ht& -zqEZST&J|ZP&Dy`Wd_WrwPUss?^KrRL_vLefYH*w3iF?@VM~|Ins^VT*67;2=y>e#B -zBkgvmuGHVh)iQy904*6Ux&v~}^P`!BBRi<)Y{~n*;JYyGHr14?A&_4JbwMn8Wc7Y` -zV=3QedtB+(G5D4Mn0S~E9$Gq=@JZnFJ)KciRW}wGNf-`*6`Mdog`cq&Z<@I+w-PFf*J<(T1$C5@?Mic -z5xDS5fo~=$iMnMu4GXE;(J^G`X%@kz$=30KycsZYU3x#`+I}9ZHt_6-#Xj%r25yR5zBBxQ43iK#|M}n)EQ+-NS$8!YTKyOpG*q|}Z -z)7n5&e(h@&R9KWH`ISBcR#68wMN;7d;Y|2>HVGy-A{mH}ZmEj=JA3p9TW4p&y-n_| -zZn5KxM{fcO0VcKJq*zzFt}NJM4mMtprjAYrUsc#9;_MWZ#hOt`n5V*qWT2L(bK0y; -zv;X>S$;W53lM8k#-|1<69L{p!Mj?yzX(zo>JFO6n?Bze+$c9g!kA^wR5=JcL^Nv#U -z)%OS`z5V{-SI)|i$-l0YCtWp&T3HZ#7?$pCVT}gYQ|py+-Pj@U+Kl@v&MKAsGcCSm -zNV3-Y8J_!y<{E?;V2TGPyW^C9t>Mq -z!Pn&AbKrMEM#9!jZ4LMMO!dJvZ126tx$p@0cy+qqxbuc&u{!UOBn<|_ii -zOlENM9}w=Zr}M{)Ns;;K>sO1;YFi0CG~c;Q@Y?!S7I2V>bv@m6B&~bDGYFmaTs-Lg -zp|NS+U8}PZf3$ynxz3Ghbr_H=l|S!8G-hHP0mo?e1=2dFj1P?~`Ci>+L%?eRGtR -z4t%z?`Wx!n=M&l?Db?+O_veUMIdm*-4I76v{}7Zzg+sY@sN4rOZhgKL@!){Kkpx6= -zDS9H)xyJJaIJX8G7C;>j#%g0Jo9_HkfpS;_?UY`?R^Om8@#5Z)5}8eOa@}V%pE@Tm -z6;r9D$KSLAd-xagoLF9|lB{{aBY$H<5#-QzPI+}m0-jA0UU&R*x0xk5b@QSPaos#e -z;^05L`>^wjlS75ILvEMxRSb6{j;ub95)2P~b|yqe;|;%jJOJM%ShF|EGxIYXuMgxn -zkGwJGhm;yNAE1ISU!b~Xi_3~ELK8*1d4*JsF{HoNgb6Qy0~rHe8hDCg$p>SKk4xW> -z?64A3Opu6>B+T-o&XG_6%u@gxjr?MY>1@%dIMpD0&!?H-e!`DR2*xJ<-XD|1Pv|B` -zUOQ4QS}>tv0$aER?lM)Hv%#;|@(RSUXFaI1NVjjE`u$oOXdZjI=?-54Wu-}grNrji -zw@vg9Xml-K7&3H|YLVr{d$YUx(2WhG*l%6llt48^OZX%lYa$YF0JnpGN{&}(m0}{wU6&uX7VtAt<~;g< -z^0+$u@%s{Jwq&Lt@O>Y&p5DZ?OW086bQwM3j4g1iMERk)Jk)3=I% -z@^E$)eSS@N@z_kWNcpDIuII9~`1yIDQ4N#QSdu1r2Z(2h`FKL!6a3+G6HxpSFk-GY -z!(f7m*b -znJ8|%4U?bkd_Vk`m$$ahS$A29Mn5P2@+etBR_aV)oUF2yy+yrN{k$Cc*5SS9rsLXp*o{4uorcv#MCSYf#qq_II#ZeI;e6`Dif=0){a}*v?T@ -zSO864yO&YD>d`182Vp9CC%$+SQvK299#Q-wRx$EOay*oTmCsK1n7-J)ys6E~0g*S0 -zcHg^@nYJ)!Zan%cF?tNPcr>98!rq0a$XeyRqwVCklW!;AFq?{3ptrMVE#rQPoJCWc -z?>K%1{C7sf4R?%Q$9X@uwJ|&%k5|*F-Ez&pChuqEaG`i0W%DfLvnlhbKHAIsyC?@} -zs)u3~c>m!5a~MjQTdK65S+@*h?jIqpxnIb-kPaQb(34RPw;QyB6yq5-M7e>Z>|=b+8BJJP1-yf9%3(`Zipoh`^&f0=aP- -z5In%z*Wm9V8{nbqSC*F+%XW^(1rWsgMRQZ5y`XIiTy<$J5hYflMG6;fi1$pa>4|IM -zj&;@*M4i_W3jwFr<#e1#D80i^ZD4ki%mgqS7*@?nlv)12>RN31l=7Q*6O*I}e_R$r -zV%eX8iCKjfplnxww9jK$V*dBTC+9_5^_%olet2T|5~p-QB$M8z7DHm`;AMMqYv6UC -z=mkoL$1vQ3g62YI`}MF-mPs#>G{<}1(Gp-|`p}K2dXPb?J{i+leZe+redx%(W2yd; -z?FCUn(=+qKmcc&pr(o#^#rs)J-j7kjVh>tBoU(WvUjg!rUbu$GLp1O5tM1JJA7Ludf`~#o9VZ?tc%1PV&>ow*u -zs5wy^9*()Ek8YHgbp@?N)6}NMAvDvge3sO26O#vIl0TSJzGArM^j&ksROl9Wg)x0V -z=t0eJ+CW@%yOaYfXo3n0WtJ}Maa5L{s0@5HtP_>tP$4lHW!|0>3&L&IS%!511_qjM5Za>iG4L?O!c6J3bN%%+Pxt -zBW{+|zHsBy)(4vOUO=$J+(ekX?YWhM?0J!ZeI6q0r}ktY7D3+*XZ3COY?OtGpuvo7 -z?1u{cUYIWGM2!D1I?p9=52C%(6!4GOqWSmNP4bKb8D=sZ?nXE{3+$_u$`(5%qcRp} -zTzDOw`!yR#xA7Ita8Ob%Vmre_@qXg6293BxbY$>*l|R8fW!Zy{+C(035K<9me*M`4 -zsV4-OV$_8h69f_&rR%-@4|ret82@HlJCGYYWkv#75X`USM_rDDW$Hr)?WC?fVuZo-6*I=ih?d=Qk8=2YB!6ely!qoR)Waz= -z9oyI!1*tPAa_VWCHE3oE`i?lAX}Z4ec(Y7@QyoYhua -z%0h(ao?rpdEi6dOt=#=DrQuOCxjkc@idY;&T`$c)sw^-#V(hS$imVNR*FTX7Fk8hQ -zI1%P8<&f}lCCUuqC#u=t{GCI9smdBmKW{13@vWhomOL5@oOuFtG#KG{dJjG2n;j|O -zN@#vsmmTz0g3ULI1*DWoabENe)N6YqP+;t337-=rL6X({{948Tc_wO@_Zf(gL_1?7 -z*$ek0ZjoEaGi=qqiYQDkdnN^xPu#y5B;z}8edncJ -zbjywb>Ny}Nni)&>MJu8Wy)AdRVSA1Exc4AiY*j;Ed&)X4Mdc@&>kxkR(_$!mY1R@H -z>c2?7?pO{_zvrx+8_yZetaiN9N`5NhK%Xy1=mY2O4f$&vUnF>`7PZ6$_dmBsFIk~B -zQxjF1$E5Z-5^TPPk$ylz;sYtCOj{vqPj!4bkY;(F_ZSC5&^eH@8afMWO$&ymbHlpL -zu(D>Ih;xflcB~>@OeX@R!w%coMTnZS|H<{Gb%qkVGweF%N>uiK5YzFz*OQMd2S5GL -z{Bg-QE1Sb^Y;*~3DgsPn -zK5aF?U$|`2!R`oDX|z-n`)lM2%|at?NY0Eej^Pz{(=Ba9gm4LO(g(vMt{{Cg$m^J% -zMOr3b7G!^5L_@an+QF&766|ROtuZ!HH0MRh;(tO~<$;I?_jB54l*kP4H5@#+4G%?J -zYn}6%JC&G)%FBQEdm=`KBpPg{%ieGlRE8cOSvYP`Bk-5ezwwNG&I&e~xeb(|X;<|l -z0w5d&l;p&JoodraO|u`E@|+gTUboOrM(n`s6+sZUJIA~H9`qtHRB}O&66I#+|59I)KZ~TpC8tbu -z0(M{iN7Ge@MfJ2%k?!v9k`C$aMnFPR8tLwm7FfDLx)cyWT9Az -zy}Ng2?%bJo-gDk_CZ^j*D~8nR^E7Fg!dM**A<69mn-j}WT*^+`*qfT5e~nl(%XL3l -zz*`5a{7=H9`qF?a{W|hmp$Ef)v-i%y{}G1@m&{qKl%3DZJqRuR`c}^^vG)an)a8uAEgYKg6Zvj^0Jn+ -z`|cDXzEajqGDKR<-bYzLnMAMPr#}A)hAcUFIo2x=dMng>70e_~*q%U(K&EcLj -zao9&T018SE&F&Wd-h^p5GDi5t-Rb=X_!4~S({XMJ`eblJNwI^rxkm6~@fuWp3kx0V -zfX1E^=}UzzUD{hR=AU7+vJK7+0-zkFH&Cx0i3dLbv}}J)gJcB1`pMbQX?T6+(Z&kaK0p -zNiD!g0VJ*jK1m*acS?3w;UeyBWNAswAfJ$KuF_fm1PS)-pdk{4eFRNrmC0UMPPUof;BY&4kc;wLA)Y&Iwpql -zF@`e9pi1;8F*_ -zBj;p)^Z|vCfG5KP%dD^9N!j|1CM4iopd_}%YyDKyvv|4GMhLw8`ikt+Q#Re{+s>9r -z#XuYBsDIU1R|SVs)>R{3GXuIHm+miVq5^o`%H6@oB1t(^oNrC_rbBPX{_iE{Ge=u9 -zB)x#0ncVQbl#5+)U-rrN_tW1fP~KOf0B|=N9BfP~(H$F6j}X7rgj~NBdME)eoQe$x -z26*4%dRY?nw5_pUk7>2KHI~8NsvkWUWs>^=UmXubF#Ftrt3D6KpSW(dbEO-A^XTT2 -zKsIz&@MgDj4tF|i_Jx}XJdk&aj>A4Q{7oIU{QgJ}zbQR@0UI=M2f5#5FEo=dXG@h9 -zc*P|(R5R+Qsv)Z6u{CrY_IafN?#y0sMI23Z=(JSdg%-N;>%-Pew`kFog*(f0VT~!#E -z)zgX*P~KDhT$lsdRNXi{puf_`CQ8|VY%b7FDC%l-)S7kU?SJaiAr~`h+6q>UvgI=avJy?>BR@^Al3io=pH6YfCEJE;fnyU; -zbc&LSA=&u6Ivxq)dj6~!VsrpU826tER# -z(v!D4b@w5(yNWoy;3;hl>#^(!v7Ei(z-x8q=zgfN=%Q2&jx+z*Z&JPX0|E5( -z-)?+t=?#4paD{Xd?>o-;4}APv03>Y$$3g~%y1wy}-D=u;f;)Lb>eg`h(N?1kn*mN_ -z@b}peAfXJXSp2Y(G$NJs*=$w?J%Qz@I|go?5YUFa4XsEqdUL+@6iScL(?&gse|i8{ -zgm&z66rE$=s(-!AQFA%pM=}E0hA%r6RyiJh=Ue@N5@Uov97YbVw*}5ulHDq|8K$&p -z-s2#9`6uY`vf4-*gCB9kaIIFxen6{$JaPU0x1D))zG057#K?J&9~+hIw#aZR1bvM& -zFft>p-DAgAvoo^FAz^Hbc63|%cv -zSF*~s-k0U^ZrTy{JI;Xw6#Nn%+JPjtzBrO)@?oE)6$G4N&jvWFwF^^;0>Eu)Xep45 -zzkCywV@>hl>XMVzwNI9z(>!Q&aqBF(t(*T$x1-VC)bI~nSKKgg;L7=V(?b!J~Q@mvQFi7IpDnvF@+@! -z;O3J0@WjBS@(E8j-+m2S^|2MD6`T&f86-EyH#N7$#eK+fiX{)vJ_L7TR!?`rBmS5{ -zPeP2;>s4pXFEa9xfLA*-^BI4H^D&fM42U)nYQT%L8OTY}SC4)noAL8#R2W=A8h-pSKDH+_XIc1SBBWzWW$F9sSkd -zEVL(B>g`J8*BRv|CfUg?4|iy%ID+1C!#U3Q-oIF3_8J3_`;>#ChPs^R*wJMMP~p~1+c5T{T9XAO)iUmm@Ueg -zlkkec+RIN2NwUSHojrAzz<2@kURsrZ*i$qtF|&_P|09^x9G}z_y1r$`pVRVsGrjY= -zuq%S!Sjr`dA+N4}1gdv0^lX~zMNS$hKA#VXV%Hs~Ij6N~8suj2s72#_#F&AU&c3Ds -zPGIw1!5x2Fnu7!XM!2S5zBt1IW&&MVXGp*{Q7)S4ay|8qllIKQ2Ci#82g(V^FTkTB -z)LvqTzA_-GVln6&G4p@CyV0yY?0JDkftf@1Pw9y1L$GO4OF@|A67s9%B{lC}A2<^o -ziFj?H#E6Ufn_O%P%$C@Nu#DV@lD>LY7W0j(7_~jHlM|IR3BeHV -zg;k~QmWy+t2M#S2ceJPa)2 -zZ(dG*4v}+UP0XOH~v9kZLN_B>AwFSTVR}^kRI3-{9!LFUa?8ImDgKq41l}X&ZBt#7$5jPsx -zOMIIzFvvFB-xU_rhyc|`{9vBw<_Od^4im9GsH;1S{B~6i$VL$Q*>&@Y)Y626J8VvO -zeSKO^lN5PPAgMx%1^yTO*myhY)z1?)PuR4#gMtz%l>oUJsDi8>V7AMmnemsAvD(KE -zb5!!nyKzrt)S-0nT#_)SjaUt9;X5iI -z3CcTZVjICFfpdl&>=g7=bZ?=m48swr6)h4;U)5U>O6e|v=>!k-8?~Yr{j?M -z%>wS4Nyh4~=8{wKW7v8lg|pmAA3F>Er8naJp3S@gn)g2;cPgsNl9io6@po=`$P#z( -z{l@$4`NDKcQh0XxViiyuCGv6B&!melK32QMT{`;llM-Kiu&yc??&u5xd2BJx4~YQ^ -z^pnY)cesjXc$&wDj2kQs-rJ(aIUJtjLj<1Ba_(h$Xw(*Z -z&Q)pKE8DbTNj|S(Mdb-YNA>-T1;fC&trWIX5~l39p9VeI;?G66_?+KGEurGT$}a&O -z9A>ZRqgIq&*E(2hXZEQ0`)LUTAdDG6+_yT$Vy3D##hC76tD|>7WKMpxJ;^7v1D4PJ -z2Pz&@$`2=ZF`v+o^hNi1P0M*-%QxHQG;(b9Rs#znIZb{kYk;MSjYSz%w@wj0B13FJx+?J^NayV}uJNV`A -zWoO%1Es-FJZ`O3T;E_!;u6UBtoDh5>NCG<%0hCn6?21F4C98k>al -z*z7H!#}_xaX1I_8Y8zA*UBb-4Y$$Ym0+o#K%XH2o-=wGx#v(f)TGrXtaU;}CB{ZN= -zL2t*-DiU{G7w6|)Br-p<^6t4s0B8Wl#YQ=A*HUkp+whi?Rwt$s-^f5HlsBE)75vh2AXmbpC@a8XDyYBFsUHvNjMcC1JW3=n8g_JTDn@_fPSsb# -z4}@bv#k7Ta5v4Pxh>tKK;9cSLy&7z2==tQby3WbZXdU;6sT-62awg60%PiC*ZA@mc -zaUQTipKugl^t;7Mvd&HSwU1C1KUhKkNUqyPvKwiwl{f(h{22tS$)rEh@uaDgn!L>A -z6is#m2FOvt6_ipMmd?8Q5_?MGB3lC3Oe*&mQh0YodrAWhIqi#f*@)jo%}bTvve8TF -z+aoGj3fuo0WRtxu9zXMEQ^$sYvlh|_bL{%BvD>9qKs9tSd{vPPErjX}o~qE8N>7_m -zk%@?YK^~A2TSxPCwcnu{>}KS*nl!8R)O~piAECrj;O>@-Pf+k3nm<#-AHPf&0FW@n-hxNlLN(+ -z4_{(kAma-I@=W;3iGFWv;#!O -zBW2~w6NBEq$KB72pQX04z6Z>ha8;)}Mm!XpeZ0Rud{or9T_68*<700K{5-IcB{?=D -zT(gNJI>{4k$C1%x(vIj`&}cr6C42~Q07^4ozPKZN9mm~g!+V@_eWAQ*4;%@BlmDL< -z=KvjBg4}3E3bFBPg1~mx6sigab#i^c*C^fWMd%thQ4R6Ayi+U)NB21Kb6jA9{Hv2OP -zwk%%Kre}oiniboT3&(&zwBOiSGE-pn%d=BFu`4!%q*=LYQ@Uv#i7@#N4KHT~PF-J@ -zoIaTmfzQ{I)ZC)u#DuhUA^YM#jTo##A?eR__CHD2vq=Q!F_|q2F`!T|7 -zi;yx}k^yK-zphB%gXZWYVzi`V!h*H_ye*NQhZ>Kw*#hF`ms;~oI2ct0cMc^+KOd>| -z=pRMgY)!L0)`HiVuN#G4Q9k$M7c_PNzXo9Y-%@l5*uS&7B)Cyalvyq>yoC<~H=}D4 -z!5lekKuSAy%j|V<_OzTr%bZtQnfF;<5DzdGz|ukhrOuSWd2To`SVR0HDHdcIpI(LR -zPrD+vKQI^$tWZErnf4J4&k}`7YM}_8{O+OrTU9gHS^In4-@=eu(ZgBlMO0Su87XYi -zU7sl1bPvur^vJ{su8LlDcn@$9G!UT%o(pDU4NeHZeak;gV2iY}vB}rVsJSKEcY?S` -z%?&JCGl8Q9t;%z!k{Xikj{xG73rsNJc-mahyHA_HpOH!a>V{rLW*3bE9lWB4uvlP3@$AX+2UOt#CDiyzkZE=FhEtCB2Zrufr0d -z9@<&I6Y0qH!KT7k_qYBEk~~xVB*++WehEGDp<~$=YDKS`cX`i&^yNDjU7hLEY&2JQ -z&@*E^F?ieT?Zcs%>A8byCeSX%rhoU3Ty6>o^)r+?J-qsqfqx1AwcIxjPyzw6C2BX;Nn&Xsy9@rAbw!16|4+N}lOez(0p4gLrVJWSStC|iy3$@0V}I2Bmdz(`i^naN -zFUe|zJ}P#A2PU}pI|6_z?I#v0Wi!E?V+I0dK_7dmO;|tl*RN$=m$QsQjt0Xpz)kZd -zXRR5II2+O|;;AX$Dp`0DqXvl3Ggs(aj=IRY4WJGto(D|V3qM>k*3=4pb@r8(0;|u+ -zkN;grwXXi&9^))W^+t|dz4bF0ovV$E{-K!s@lG8zf9e@(JG;9p+* -z%#QmDhwlrzpszz@Y;(vP{pqx#rT=uCtv^yVF*_)M5!j8W>_SfeZzbyk?)lL9wWd~a8)vNJIjeKpx3?3E6cz})o%kWY>0{zs5Um2IzcxEbRLp$ZGWO3);jsU9va`O9> -zmwKxds&U4TO!+WI{GzW4oD#9P@=#i55=tsV*LD2*hBgZE)Yio~GGFUUMGLP80XGAD -znx*G4oE05g6;PoMFc$u~5Khb%yhp%kq_^%qY64o!LWD6i?RmemY{jUR%Y+z#A3K_^ -zZUu^d1cD~uwr2&Kb!2=|VNSh_bO64vr-e>Sk4;JeiXM`(u@ybM0f$!clJUROwY&$Z -zhH~(I1%D18PgqIUS#;o|e+J7%*LP28Zx~$Z|l1|9R<8k=@4TU -zVz)+JI`63@u#HHD0#{#0(C}p>TIZy%sNk__?{k}k>C_uOrvXkGX=THU;#BnVbU(uc -z&BEEF=M&r?4Bp;Q1EP|SoaV9EZxgw7v9~~0*lS%}ygbUZ9UtE5_f&{t(!0ZFhV=k) -z{R~YVw=p>Q-Osi{aZ;}l|3OQ{1i7AZ@OBD4=yxw6B*GBN;@GXnkON8jVwHIXbG_Nk -zLvy4saz@#pH#ip}MH6-LN^hhrACzWetJ~6ZUdk0|G8yUD9|oyweK(vpq?TAk*Xw(q -zRYc-XXClfY_UkG{d0)8uHXHE;wy4%EHsNVKuAJ7lBYDwD3A)jKx1b(HVw);1FKr8v -z8ao4X`{`Uag{?HQ5Cj`9cixrQD-Xbgw+4{?MXA0$iOb2p4&cgVkhTJSemt0+5hP9= -zF+J(>c{1Ww3nvE-S)6v+VMp9J;aEe^4*nv;72f{MIii_l>`U_i^b6368oY#hzvOYD -zT<-7YmZXN~mBg(3H>q9Ib6yDnm<2K_fsBX?et01G&~&IRqr=Ja!--n5^p -zPSsEDhn%Majn^N+@cUSoW9VNxzdWqViuAMh;fquL?(})jvR)hPK;8(jWZ%W;tnT+T -zNJ2pG_uk?SvNlykY;s7sTz1j<=Q0BgL9Y?AMeU0#QZWRITz!ktQt9@o22M_2h;)FJ -ziMU{6*1hUHSPREKFCC)jbvzvipW;+$AOIN2w#kn>M4`7wp?gtWfZ7?wy{$f8Jt3J6+~? -zrxC;4mLURUYC8!V3;I;miz{6qV`wABo=tI7=3YW399|_?nAnD^kZhe0lUJM;>5-&2 -zq1i3N5Nx3(n#$A_rWRt}L09;-e!SK#=W^d~%pDk800|%*g5^}b8foV3W)5El+caXoIxLc%?$ -z&k-PD8mH<0*^&$}7Y{%KjbPw#0H2n^_!=hNz_0 -zlR={GzbG}DgU2CYW0HrKKpBF818oIil{mZGyG-1y}bj@M-nGl#kREPF}_}--&K3rAgo}4SlmezI}=kVu}e`p-{+o -z9rie>*=2~PkUkArQ8|(f>k$DtH_i-5l5tZ#P{MSfYbw^fVHB)D2UOv=Y&fBA?(wD2 -z{9KVte&*{R45LQ3kK0A1PBI!cLh}oOMAtYgN`=wiOb4_#Ot>{;euTR-EX`=fK;p?l -z8NZ0euVuY=i`%jTQ`{R%3ok7N!o@w(|t}T?Kj4k5BGMaBFwyjM?Bn=TqV}yczc<(u;r{+!A*AZK%h-L`yL}57Pw!vL#04 -zFRli94~e37f^|qkDc&sFyR1My5|nh31uZO{xO30=5&A+3SuYAX4y69>M(>|vDg=x4 -z=K{VeuwyJ1PdoUsJCHq)ep?|!PioVRG7%xFQtgdrw2#-f>ntZ$4R&7#B)GGH{!t(k -zv8JXc(7ycFEi{zQjqZBqg&GKKd}NqZUj5ra5tBCqCI|6~(Cn{`UKbvFX{QmHi!b2P -zQQ8QrwotXZdA%rX19T=%PWe)h?if$Zr+&mzn;l@YF&PM`%O=-$jmh?@1e0th0!tIW -zyHK!Q-gzTjSoZQuPwiYUK+tlgJOR|YznFLVlQS9ou+sT5Om9^zRjZXY*}={PfTJ3{ -z(5F?Zz`7(T2G0&^xXACU$!YG#NRC^?)Ggr=vgF5bxo^M`kIhprI>VbdsfM3+h;r%A -zuR~m^89eXR6xJ8~Ywg<3b9Lgp`Sr>Ka;M&2NC8TS5%0M+Doo0wS -zixk$#NB49o4+>wE_q1`;+_A&UW?83lBAc@K;Nh_q7Fz9EQravKP&ZYG?^rH6ea+Ed -zu)*+$%fF){%s=rG`~W0M2+FQ6-p%1YdgU#v)T01n1uTc|!v?EcJOv-yKjO)_=Ot=M -z8PI6Z>n}QHX@h_IuyVVrCRKG$YLdv@=;Txahv}}MOmgLc@Ek9VF51M>imJt$KnJ|4 -z$#uS}NKQ?Ft;P!dne|7Wg}MnlH-4L6`PCpQVQ64LyTFgdp94O6kSO@$XZAjY+pQcP -z!_o5+sUxs}hy==%=_(~?c5ap!_x|w2puD{oh`M+%&I?3%t>g18VuPQ%sd0pjCbd+8otB1KNL_{BeN;se!_*ytSSJILi&OD>1~M#W -zV%uK>X*PPgZ+q8?Zff37uGGl9+#8@%s#9Hb(qXJqFo`(oIVJEHhRZ}Z{7aWejhNs9 -z<)rYS)ywXH@$rvk((_#g!a3>qOra0vy;!s})v|>H-wV;`Wv5aI~)HedfXu3t71b*QH&d$BO$J8ekCmk+qua|un6;_K@Kc< -zI_tDhmvOA!X?m|iq{0k9AhxfYr+){|s2RGk69Ge2NGS=2MRpXw0qKWb+}tQw7u8c& -zRqBMfDyT~iebh|_Zs+^XVMxU@*_Js2k@WrhkHs>u*HY3$1#N)nU8q093vmF5X0sB6 -z&AYuSeCSdKWKw?88W@&vuAd0x?jW(cIvPmNK+M5I2Rt4x`415?R+tg`(bCW0f! -zWp`vvyDsu-eRTS^kQ|aC#%VOT%6BX%QsOcG&6#UfCOJ2g!n9 -zouY8r|Ecx-OIbFJ^kV&N$3NlT{MGs%*sltqR`-eFoz!iv*CI$K+(Omz+x(!?2NvS)lAf>1Gw+Z1z%R?u -z0JY7q-A@2600zD$)y;~!B+*@2K`qp&cs->*_w$_w^zwV5JM8*}-vDr{2h@m!cczn? -z$Z;ZtlYQ)AX5=8_r*!5Y5J@J0@Et-(ateQF0>z-)M*`cGXD6Z~aOen0wlMBl8V+apn}XGL9O~{*Roh{5ECeH$ -zUx^z1I)o6~Z)fcg{lO6y!>`fT9EDvB8edLF;y7=RBNq@O7Z??Vr<}Sa=_r1`g~0V= -z7`5+~&RYsdG)7KB%56O9%`C#LDk->}lH%Vjqa?gIT3dYw@>k`Q4Ztk+mvs^_Kwt_Gh>dyw|f|^lMy=rrvbL*I?u< -zZzUXc5x2PhW#R>|dxTY_u&cCMM-%GesDadIPQUn!x_lK!w9usK^^NP^a!U -zl{-lxQll!jW5UpuvwTgXG}oeI^KZdxQ*v~&A_^*cTb@mz#=8u1qQee{!1Ll02KM%6 -z7o0o0^{F~QgfXfzlrGN2vq!_&(jA`I=nv`7Sm_>oa{ik0mWtJam5Vw+&@sDiJ?v>N -zPA1T_(`UzzWaj~8;Lp}dn{!q@P^;j}nJi`aj#TCmxVaPwBH!}?>y6FERh_k@vRiR~ -zIeY^(3zz+>k(Oc#TJ>BVYXD2Zgz6)CC(*X9Cn&fPjh?^C(@aAwIm# -zvcp(P9~9?bMfs@jdGl(P*-?U^$@5~fHZNd;hz+{d{6M{f+N+6HL!gz@I1l+1j8BgG -zPN=bm?pvr+qS`!OIGAq(;@YV$ilq^^YY3!9UU)`#=5Ov1Ut1vAC^2k^Hia<>5dqNv -zB428|1t;-?XW`dAl*UVCee(2id6H`-hvU4GnNrlpZ~4rc@O;CbtW2e1=frws>^Gmj -z?%_+v-ciC<&+F|l1Ec;=D3zc?l1>--t%Hs)lULLP8l|Pc7G|{v9%~ywpgwx#3}DCJgvnol`3D?F{F^*S2Pz%vA&r8} -z`zZJEKR*UYs`3Qn#U62NIr8^; -zuU#YL(QkNvee>CLu&d@p)r1FN=CbgHjH3pBvyL?{9K3RO-r$ya+eRMM0)EjLIF^-n -z+^r*SnFX)2B?lFc~dfoU(6r;W?xv%N{2ohKy5yntjh-Ee)%UM0b41ts8f00porLA~BLkLrrG# -zh9=)(aP|0u4dP#|$8@2~vzm*YW`9>OR(>keL+FR}l=jgJ`LPY~%t1V2CE3=qYw(X$d(}{Ftkd}H>0ESm6k9X)(R8rF0Hpq~| -zE&uL2a@qNTKUh5x6@(r>f2MYJEtyA*n2Au55K{Ftd_;W_3x7!iMTc5eo4i5$%7M*8 -zAw*?UhbY=^$+k<;x7u9s!nwjjMW8ocPuEZyv9xI?ni0CHjEy4Qo<0maPKj -z2Wx2wo5@)Lo&&JyNKq$`W6SDKpyI{H=p1qKFuq^5DNG5N)0}*_KJ=pP38W?)2+03g -ze_m~778`f@5UQ~vK1X&mQ#Lb3sKl&s2m^D908oMIfoDt#fJ_b7z3ULG*K)hEiiq_m=bJ5o -z@;PANn)BnTLc9+5L3s31a3OzFe}x -z&bJ-~7(hMsArXeQo$Nb!HG>ON3;f=KuM#PDOpm5OeF(sC0BGrJ73FZb@DANTQsyD46%zbr1psv({%lfhy{< -zz1|VEPSW`Cd5tJ9=DsaulG7+7G(~W&Jdm!K?XB%>|Ay#qP|PV6l0Vxh-Y}Y}>G!S? -zB@bcltT^-KJPU-H)-Ycg7DzfleL=p6j_+b~np<&*H<-*;{oCA@A%uV3Pc1#<=1f?+ -zPW_l_2x_J4p`vKgvbz}j%y^K7FCi9*DE>pN$s#s4i=X$xSaeRqijx27A9SWF$sfEw0jjywa!115A{2KUWoO9c^mn=wPxnn)uSBBjd%iPWg~_1?`LCWF*V!c -zf1#Czirhhzc)MmuEcu4B_gn=KPm-}#fo}rgEP}0I<7*DYhr@eAs?7<|kq@5gCoC-t -z)i*4v`|d_nqF}Q;xs!r%+VEkJ*M>0d`WqysS4EP210qzMAaOrb%~x0}E`@{*s*V7==Q5My|NS{W&V)zttTZr5d-f|wHc -z11Zd`QcQL))iZ$;%P*tzBiZ+k-)OGSEIQiEVW8JSpiK^bA-?>?7q~7r7@8WdR5G!i -z?*s@_S~7`w0k;hRmKZI}58m2;-P7S`#^PuCD`I*j#B&yI2CL8&%^CGF{MQ28Vkd`J -z%hjs^U!deT+3?0{ZpM&tq?5WYCb5IWF^Z1sp~rS&qeOI|HaX!?gS -zmrl@$Mm=6VxZT2W-6!Q;322ltswgJhDNLE`{~q-_T?w?}d`qzEL^vU8`j>O)ckt{> -zV*ptM^AiJC8#IK(h`dtPyBS1P*}~B)sKVdzd&Gg?6&<~b4{t5~?3W-d-yo?}4Mpn^ -zGMxIVerzqSXCc0fUFlo6M6YD{79~Ld>U~=mAJBbZi^s92_+k86n~(D}MH|Y?!ch3c -zr|M9O8Qb^?2A$W$YN3_|T|fKY>iEC+MU@4DfzxST_@E4>c3MGC0Ae9 -zzJ{8)gbHDWmZv)W5A2?JXEP1lCF?4wr%nf9NqF!Bl}5*3%amvM#oaXNidaq74gZ_Y -z-OQr_(<+~VK!$fg3f>avGfaP#v%7)eLnB^Rh(am -z|D|Q3LaLPB{*6hrKSBT43j0$)Q+k&2Y9}}WLdEc5kbe_hv_s+`Z36U~RrnnDO)^@yrbbws- -z!yL=4w|20ZjNg6iTkLnMK7FCbD_aQvNJIt0K%1G?K;|D{j9Gu%R0w&sH!^xlt9!af -z1>=xvVtFKuWdbf?2CDR03cLt>%cC}O_OX-VbXM}pgU*c-tofZ{VH7jiM}^aY?gNX8 -zaz$Dn$P(*uRV#)1pZ`vh968)yrcvhLL9-p3U8T?9l|P8yoRB6oB`~RX(|F%fi3p>E -zsIpDF#Mv}~M>-%^e&JD3p2(_91MSN=Wm%amU;3a~& -zvn92-humA8uB4S%8@!KH%(}`4>+b^1M -z$8^r%tr=mlS-~i+wwoX2ea8w5Y62FEG=V@hCr{DcY*duSPD(pHn4=((B!COO9PMv7B;if|N_4XN3e89KY -z+ly)->!c-s0;Z2Sd9zv{4~&8aa%=W|>n -z-%EI2Q>BIyKJ{Ag95^b87os80h6+}`Hnf__HUc5K^s6NbjK$^bSD#1e5?zd|9iwK~ -zp|!eobM^&W=)b}C|GR4Q2j718azS~$6!q7S?g@-c8ZOrZt>mwy`D`dt!Xqbt7^F(? -zbV(vQlFTUmd@lei=XC3DZ)1s{-ey{lhw0s=|G>|Xj$plY%biqR`Qpt1(taS+z3FIQZ}_F?PiSdZTJ#lhID4SF -z=4ZRecWPxsq(CpO4s-mEMDFQ$MwO1iEShus#6-XH=-l!Tq8d<)Q`t-SkS4D5@i0}- -zIM~edu|@lF%p&|z{Uq^U0K{?+*Y!`~9yrmkx@5Ppa6Pc9*~mwwEr<`V31vN8WVP)| -zSIx@9hKZNdOPOGFi0M*djipPc@gy4uPIl6By?i+@0A158rK!=2{O*m*zZ!QPQRNvM -z`i_%iA2}`S{MjLgj^F7qy}`T}v&#hD>3$-ubvdSe-KE=NO@W-sc+D4j7Q6PP!PgTI=K$h$7{G?L^nWPaX&Hk{1KgKQDmlWUuHzZWk}oW1%yG+Wb-jv+$g -zPEf<0B1bb{hkE(orTn=0bGNk^Re5rODq7}$l -zz={qezg)e;VCKj;?$zNhXjmt?!a;vGHHEe4QwKtVG9mJ(Qe0Q1d=IA2UYw6k5MyEr -zIlMxWut{bdj7CvH*3~f=%tI<8I0_u7PAB{-(DMF&%B54I&}FAEH^caDA}bQ70)1y4 -zuY;cmePl3yAb84Bzb@JEx__aJjRg`YSY@?{khBgob!64y!gC@L*nZ3`ng1F)8c5CU -z?|cIu-M#%rV=m=DFO9)thPT*%^<~4ToGnylW!qlULI&0E!anueZ$Hw#FM1#?p#ZPF -zFH*%Ema6|nuTt5bJa{WD)t}7znsX9f2_@xk^J+I6qUrQjgdV+0Vg&C!aSW(v0ntcF -zB(lFjy{pHfZ(DFO-JSbIUdlIs2b|=ia2dama|25z{5|{2V$N@V>#J`qCI&3EboFXN7auFJ0-o8TuSk&bsv6`%;2D)V?T(1$DKu)&@(P2!6o4$MGM6g$bz8cYX_V7{M(Wo~DFoT&!OgQqV2y0Eff47;p##UraMdf+HttoXf -z=(zLZD$0}sHN7S>S&uj~opwiZo<6r+@c++hB7ds~P3Us(1lxP<=Nk1X!WcH}0h6}` -z1D5CkWc5$AUGg=PL=>AK426NQ-}=!eFZMn9GA?lEs}iKO9=9A`!io)9fBfE5Zzr+m -zwG>cNKX}$a?2)<4)ZM3UNJ2$C+@@z_M@o+HFL(S}MnEdyr;}0Ax=w0vvZD>FumvRS -zEEK4=YKAzdg|3q!m97%KIguj$)jj6>W(oJYli7(%um7%`e- -zalA&dC}$rLck}Hgy?pzh25_^7>&IfL903$_G|^IzBnhwmIBbkgck)ok%@L$G>6~;0 -z)ptS|E=~v4AfZd2-1=o1SMG{p#FS3}m?AzUU&u#(zc6T2%#ct)O(U -z(A_zqe{k5RVt05K#)(L=w=u|f?-LG@Dql6bp=vJQR4H;rJT!szW!OzHMYH~(tPz{z -ziJR&pbO+{th)aIR;yBn_w=OltNi_;DqM^9W$Ktz32R(t$coG;Q`D)v`JTUX8YCG12 -zov9HTvUy4|_d;z8i~ni7t1y~<5=OyInT{vtQ!NhJveNW}Biw?`GT&|=g(%d92;EWN -zm%99$k`=mhP8+{TqS07AE1~%ZmJT&T6-JFwP6J&$COifNm&^(e?oTNZf+GHZ -zJhnJ5^eyPzY$VC^-K#V^C$YafqOAt*2Dl0Ql -zqKA>8t}CM@KDtbXmP9&+jmevmy)#HBt!QpYSQQ5~V+S-lJ1gnmt+huA3KaPEfZny< -z*Fp$P4O^zUZnGYGtjVQRodFGtWHrrQ{u>l -zlkcq}4`L(SIUY~;GvJuYF;tY`w|-G#WS9(rf|mb#!A-bMa;Is{J1)aj+}+O!U@vj0 -z&nJpFR6Eu~_3YhQjQmmLw47c)u0jlCXwMG2AzJG^77FNCpruX0J$*P@Mg~MiT=7Av -z`~pSph-T~k35frB3W0U{>tUBNu2a^UuxH=R+4IN>^6LHdi&cp8MJXs}Kwlvmm29(; -z+?j%&B2Jcp18J*<%<(4g_{0+29lN|jYyf2A%!(eDfj#gvfmyL;!R_YVI7x3cQltvlM8V9u -zBc_XgV?|ZqL)Ex`^kU%v6r$`T;Uzm&_HDTq9hI`z6VBl8&~Kjo-w%b5i~d^bQ)fbj -zo4VoTRWdH9-{p(Xmp_D!CF@&|{#d? -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 -z@;K!=) -zJ|GEzdc?*orG|c?hWz#feu$Zhw#KRU+*|Vql)!RmLk0QrFTZbSWb={z6mVCz=vjVB -zQEU8ibHhytsvLM;fh(KcQsk`*yDxQqHbs9RwjP%%0*#Er -zwoWf_W`XnXN8qY5g8mGORRU@ELgvOhIR0)yT_y1I*a>a6yYUv>`c?68af3oFp*?6e -z0mP($bF6q(mMSXcu#O!?CU)m4p^ErRZ%Wu$93pt`l$t -zt=rtde&2={uRN2d!`^YrX)A#@MsT%Fa~jH -z5ZKP~j*&2L)BXT$SNn$9iR=m;>lj=&VTFv}Mk|%xI+1{E^>w4_1#-7=7ys9(5bYh?q~5?ZmYcBqY=$uPFDt^7N&$Kgz#svt^5>U3 -zzMJ*`nkGKY4PP%|-m1~g{Q(!-10Sm(L8;^)dN|oPp=Z -zM)p5kLyT?HG02ss+R7!x3cCPTYtljUKj%~nMt#e}>S9V1 -z4DD1#Uz@JFDp$;HaOTaf?@Bp>UlZf9EO)cy{pRf_>Auig1PAiLHn*HE_wAIN4v$VZ -zW@(U3@>PQV5kmN?U5l_We*`E_{+OI2>#%%pTLLE1`^$b4hrj1{U`vF8LWmr0taXK= -zLff1j2WmnXaNNP&DZS5{R=W*cc(io|9gO@_NbVix2?_UuTr1M2Ivf$#wP>aQ>*^T! -z3CQzT;`okfB5-0eNt^@ef61438@gz64rAUMybX^LYUDd@! -zt@TRqt{rqxpViFuQAX&o%T#MupYTN|77&GZ`9w7l<*mr}pv>ghv*^SS%W%4!ht*3a -zVOJ7yvXdxZb+J}m3?Az?H8nSR`91z_KfwfbClhhAm%y&s2TwJkRl278*k^YxKBJr% -zh1bz%I!sW_b$M!cKwJ_F?dw59%n~c;OEt>&J2?I^nAN<#t@ucxJNnvUCxv(D?XD6# -zG?^+Oh5>PbsbP3(keF`Dl~(CD;1I@)`z|@-j9AcyFtpiqhW@Th{|rseMSG6j#2qD6 -zydjr{tJd4%KsQLxnNH!|D*zB=Xu!*o^=ohu-b;zC_xt`IdFq#d{>DY;g(e%_Z)ah= -zp5&EdZbotA5pM8WZA|Eo_2vLZXeeR>+$)y7YT`+K+EKdNht11K-{6q^#vn~W&i$S|YJYok+{SO&Yj~dAyWBcToV&M;{2Wi{RhJKq -zZEkIw&)_;rdS@tet?Ya**PXLuv{@22xRyOhh>?cfE+`k|0`8?mYRFM(7G_0b&USS< -zw8Xz(x(2+_h^0^!O)zwLrNU=x&Vsk+U%o6 -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 -z)P5N6fUK1`!Et-XA$`* -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 -z2b!xiGJ|9QU?= -z67xppzAt2cOwd3FTsvOw!=HKL=}8Dzj$J=2bt*GVt%(xzP?@@JrrL!=p=^}?+vFMe -z`)esk%uT~VNTz)RD2kj-@~!8vt8HlGK3iUlAZt+=2~FXea4>btf+&B0X+wmj>Cs6# -z=vS#?^JF;#N+0*-I=fC5iDXf`&YEC4?BK+y_l>^wIaMuq@k~qRNWud~%QKj@J86-h -z#36ON5AX85g0ui|g6W^69emmvNFMslk!d0Zk_>j`fsk?d&BDlxx!6AcIREmVUFx>h -zQN!m}=C(TIeKUuH%8U)3@i;L@$B_#u?266KjsSd_?m73|`5;G!3*h8b?%^E&);O(i -znk}0~Ht=Hn;sp0&_X9nhH6Jq4+3Yp}7d@1{&Q7Fd=={1ury3Psb75)3?${?om_33Q -zOj80fhN(RugWH%dX+uAmDJxvUFcLQJ0xPBo+FqiWkE!O%Nw594@wHlYKLxD##Pl$F -zC|D}=0*ob~JFM_-tcGFZoPons=FSg^Hi1?^Qpvt=%OteDmo{sfi98;0ke*0o77{Oi#JZ(#fAhj03eo#b3{UyZPJ^1froaT~8pSu92Ci-> -z+p5DEg=V5zjymg1D5Q010!+K@PbqV4J~p(QT9%7HYfKl%fmr}_5)Ry^B0T=e?Z@^Y -z;NFBMv#^pI0Kr8cb9N7_`VuA<7b|^=3pUM{&!E)L>hr11L)E9mF?s2^+M^4?Z=<3cJ_+8G;-IU#*%PaHQ)z}0BxFX*Dh*WmHrP*sRswL| -z3wVO*1bdDS`~AT>RD=TEZF>dw>Sex9ahC--J^q=Cw!A@|_B0NL%0aw7@)NfkO2%M$ -zZEb@C-@fg}5jvdn`lyqF_EzQ-m8Zm~M+qm+-i<5x(?q47fPpfNfy14P0mK08q)<(Q -zdFvaEsgoEKz6}l1FY_Bq$W$9OK+KP*`J1(fMiAb&u9k+*I}O(dKFQfJNK_h9bLch -z{5n)*I^qPpqszxd2=FWs)b0ymvhYqs?-oV?CX*j}<(-#w>T4KFDEe#nzB$mXKF)H| -zB#8@Ijnm=VWIX@WK7s0&$m8}8otn}qE8rTpQ|6BTGel99DhhCezzA-WwpRpIGdluq -zaN`$gZa*Ch3Sd?hgNA1RBec-2Yg_v{5fvnf8Qmu$)KfzeXl02UJRF$I9^21$*tc=R -zHT1++0vz;wV_}+VBE0ag06!T9Zow?D59#U6WsRY#1qJ5Fz|M#HjbQ_rJ+Eb-ng={z -zzq05&aduFsCQI(#-M=L&d^jq%0`xbGNk-OO3?8;P^4U? -z`D6Weng@Dxfp3qMq}egXU8u8XLZGk>D1wJ{x10+b$le-xQVc5F80uP10u -zLNe7$MbSeUUoBn)Q(X(iyD_n{Vi}A!lL0K*KEH-^v=fq#^_J -zQ^zW$+#wS+T!8wMB_Q*-=(CK>u^~u8tLFoF#IKMf7SB)fTYk^%#p=knlcCA}i<2%F -z8a;l=5o|8?8LtfaFMf3KH5g$w%y=${{43mdG)OOO>w8le44VPdQIfB5ITO?Zyx2(O -z%!P=3y-3uPHAIe$#7XW-5LUcX8qWJeXaM3N{k_#w_rS*Y&!j4xcEfo(sLn3%PzLgh -zgO!-1B%@Zt1$ZUdpO+H)>WDfDDaE8P4nsNc8_xef -zl_oZBQmBUr56o5;cG#8%<)aoJ_NVp1LBCu}+$W_|o@D=vOA=Xt2TU2*vEj4FRoIZx -z&AV0y%wyI>#Cst|dtl=LJ5%~ev3ouDuy={r6I}TZKRU>rajr%+s~W37LJ|m-8_|;P -zGQW-!M5I@dv8}!Q^W+W#E?D!HQV>}Y%RZtYO@t0ZQI@;P!cqUf=oI(movhE|I5mq> -zsBJ{B?aj5q6NUiLF^$wgbtn^_f -zV%RYQ-~!(x2h-)^mCnq7j>$>R^$T`T!$+C -zn6b#bt;54NGcYS*1?jv)+uJ@o(fw%h$wC22E)R9HJL3(d>-X`=+i>zrfD{DGR7&O> -zc)EoR)Xi-wRd3tJy31j45gCe -zuhg`3`XBf7C|F(Cw#w%6hX$IkPOAL$?XRKDsYnCyRNK}_hG{f)=s!ciIS@dMXDp%< -z)UY?E$($HrERyOjXn5eKErz(bh7(cSh5hKT>kJC$w}s}-s~(7n!YmQwKI!;o1 -z$7^J7S!=Y#oSH+Rj?Tffo=`%A-Zz}Uxk8xPoUFdQnTXDK!}3611GshA8=*h8Z4o#b -z(A+FJK0~x$JYM)yxiZQSJ>O7(JVz{NKh0W9^)=d#`C?_ph1G81$0a>Z9|~nPl<(0Y -zw*W#on^fDW^D0U4!tFi7$J7G$a)%3DzyW3-*Ct4d2yK*bp^tEG9}xroHQ!i?Vrt{v -zVlcHDNZ#a%6CfP=`G_%>ML^6+CG~nbT@`p^VywKL~#*W$sS>UNjO&+sMOM -z-&&b-$fPHqet94qM??s~)|+uv&1V)r$gv#?P2jk#-#T0qZ2Y=rIKYW)Lxd_zI~brMiqLXieQeqAUu&olp^&c_xk1-x=^}kB;e=+0Rpj==RC&T -zai33=zB^M5aFN?q%b<^qN$W5n&o0^S=k`arE}>_gHLWCMIMF{Id=y?8*NP<=MBG1) -z&2|XD5?wy|4|BT4%`A2*e6KJnU0wu`d;4b~u|jQ55VxFf0F)b`D$r^kWF`?zTDeWb -ziNSvmSC8PgUH>hL!MnD3DOgE#e!(6)i?r=-C_EV#r0;TNHB>opqeCp@)XGyybPrJU -z6@)=-Nr9;;+!xg6Z8S6iz$K9Ih>KN6g&`rW@OTA#s@e{(&ixoEIQ4C$>M|_=Sx%)N%EZDlAbRj*YcfZFFW-v}Bl=Gv`C=8BzZK_$qU!Kp=l?;#nM>AxnDXrH_xSvN -zytc=Y9SEo5VO -z=m$oV5|w<4Pig8C>Wz8I!zbUNNPm_0DUJ_)sB^#(7ZI^gc-*fGAnWK6SKode=8(By -zLcH+%bc>AUu0+$A5FlHCcpPhH%f4D=C9XC`<#q6pe0!?aLEG?Eg&Al~0dp5B9A(EI -z8ynW)+esNfOo7%y(s(=Y{?sNW@EQ^F=9#c@3K!EQV5JLaxze$s-6?oE8xMcp{tsN) -zt^!gUYmRT|WT}h%nDgJ@j1U{XC_fat^b(m((ll;%G6`dB--})Mv&6&Va__Lrj(Xq@B -z#Mw1|Pi*@agB%`LGgeqV_f=;G(ub{;Q|uG+=tq%m@0=V6AL#wnz!vjwo|l|LF1X{X -z^-aUO<#$J0*huUUgc4zHiCf`TX*rxgNxA%Na|F5hn}<3-&gw7fP<|_E1dJvCN{P3( -z(6O>^Ngq+GhW+$^2(6@5d6xE;co>sg2X1FjB$Tz8ur-h#5`=kf*^y-U+%UjIW)=0- -z5KZ~Y$YUJ^5AYhmgijaO7FyFN+`eu$Fo7mi++q<)nl6Jf#jeOh#^TjQfx~j)=JQ8IBl!tC24cqQPm5<;jO5c|adHAc -z&5ZY*978a;-{R4(HBN*zDqA^{-suZO;D8V`Ax^mh*KM{#jy$?a6i~bMo=??gz=<&i -z(P@LOY@CJGZrYxnXW&vYT_|-3l9R;P^Y>QvRTN_zjuMyTKii=Yxq0?c&aTR7@(abw -z=DGxG%KBN9>nNW>WX|rSgUO{9Of$?8>`R*&s5_wko+ -z18H*_xu0>Hs6pm9-DuppvdhhbIta8~05$r37p#SFYSNqHe4;N!lFRqNHMyf8dTIj) -zbG&R6PDgW>_QG3EdO-jSnbNSrES~$(mPnuCg-y48jazm){d`0bCRCR_^02Dy~beAP>LYL!Wit -zI$xf<=LT!lGycU9{L^5|!Q)iDx@ -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 -zYu*LNhf7Y|@Mo){ZCwy<=;xR8XUcyeXIV -z=Tws=ez4X8p15RWn?+x)qB`n^4YJAm#5QYu56CNoG@&l&fE;aIvmKjt)QxS^_N~gj -z-m_K$IqEvo8t9*^xC?U@)a)nc5&_}|V)dL1<>?3|Jz%>vQDUFM -zqVRs-YVM&d-G+A)P#GRPH;`B@kG?T><6QW>y50eb69)ctS@z*^evz`8hc)HRy@s+r -z95p3QVGuFDF3UrHKN^aRWC`K5f(%a}3G>(1#Lh<(>Y#Bu=moKo5s6d@%sgozOG!Gx -zJ2_OcTC+t#&a1R-hw|n@5=otMW>imqBeWz0&b9|?>Th<6y6Z}bJF~N{hk8mp4`U#Z -zA|aNVnSh6a*3r7H363o$|Lb={!JN8FWqLipP6ZHN?Yk_YeH+11AA -z_iHOIG^hwJzn{Gp4h^%zeDLdB=7bVjIlt-QC>KF?)ujJjQLd$}t86sMjLRR6Bcoti -z1N@I1{c*vl -z8_;#x;*Uwf>iWEq=wS`T1^Vlf?`m2i4{UvpIlL(EldRK4CV@3wzqiX%iwMgz+8`|J -z4T`Pe;2X@hzgG%QKUK1lHK)qiwZp^tHH3Mmw~s9m^sxBm`DgqDXW$%sRc7v;{$@Mz -zwGqzJo-eh72YTQfxg(KzjzYUnNClZ`F4`?8+TY5Idj`;VIsOhUWf1A$Kcy%fe|vc) -zn{>vGiTKy2;i<3-+;*MG$pT^YL5CN%Iga2qv%!kIkntPJq)Bmlx@~Sp&vg*@{X%-3 -z7@|?!+8!r=Yf;STR($sKr*)3b2)nH9cR81LfdUm>Tu>D!5_MzMDvbaYC1!WRZI;|H -z3eVcx80ic%4{kpzXkjVH$3C*GfeX~zbB*ZsR$c`ifAxB>c8d#bnU(WHzs+%b_MtR>Y -zreC~&wJiv?JQnp{AHbnti!G{5>qJqei9sQdKl4o#S*HH>9N#<0qq_<1b0t#wP2;`x*uQ?O(3^9%sYig-+bxdxwv*H|KGJ-%1#$+cb+7ey;zt1d{`Eap -zN#%|75DadFuB64)!(*?rnMZD4cm6ZU6e-MHg@R%ksexl5#THjZ!?TmFvWlmSy5Z>! -z_r>NPw;+cB5S!bNy?$4g;3n{50fLZ0Kg^s-q#}zWZE+C4Pgw!z*{L2Y8QjtUkx5|G -z2|=*Wm!l5|9f%JLI2;zql0 -zd;Qu|U2mxRaBZW&K>zZiDMY&lHVQ5JxXQmHb3`c{NmO-*2AAbSq8BH5DRze -zzY5tGRA10v{VRePOs-6wpq4E3wr%B?wh65@K13ioRC0 -z3#Ld@I$C$J+^cwSZQxBsN~DTXiIPbihNpFA$6xx5?3D|{|1%dLouDFA6C9f-^|^np -zugNs`m!>M;clz%>Sw?!Y8-#Uy4snop3fmSdmn^$pR8pyV -zMr4F4-uGgDQ1fZQ%hU;c2o!4|yjpmqoY1jG?|$Nb>R;ftpiN|AV7k4XTm~^r1<78Y -zlkDw|>}>m;BdkhB>Jg(+_*nBQGxrd^HMnF@nNpj^O6RAh#uU!%Ooi_Tn!5B!3m?2 -z$qcOt-P8;ekV4%Ez!YuEU#@)i7?0dm -zamVx9M~{#kFGbW$A5w=%v-mQ0KgZ}7u7_6gSIsiHaj>bHPY~Cang$J6S|uv|E{dm} -zub}lleTEf>+78j3CEL>oiQ6#vYDuLP40^X6ms>soH|Rxa^Qn{wP*dybok)HS5_5sZ -zJRWrVO@6J}D}RPq4{}vD0l*0AJ_ilYx>RAO6!=QhKDGOD7JTzUW&?Ug@b;2&*l~Ep -z=qVBqU7|kef8lwxe52JB012Fd{a~vi_i+mCoq1tNTBXfuYXsB2&c4vdfjT{XDo^QB0K)do6%AKnBXRfTr)dK%YWr-WeyzO9*K-l75}(T@N{0(HiZ6S?>S -zwUbDps!G_30qu=O0;8Vh(9KB<_V5DX%<)GWamCJjVOID&zrm!c|D6hgSgKIca@D(< -zl?OP;Oo@HXjfURri`Q=j`R75%itw~!@9T|Qvhb(iVY}C^u$4F-6l+l$ihY(UhON8h -zUNMP#8LvWLZc3{s{rw{Uci-OG%o21~-_*qTB!Kxzmb{)_5W$6F|Gw6$OmNOt_{U3Q -zm#fQRL8}Ll>%jK}SM{=M&0FJwhRlilX>!7qin+PyfJu(CMRz^=2C4lC~uC3&s#F0i+8{T)*s -zR;skX091$tsE=Oa;!?yPQ>2Gc=Ep@X9!G%2^q%*k4?!z#@Zlyfh?Z<8`@zrKOQED^ -z`l{o04IMDA+ZXjfz6IXSwGR7%NkfEK=@4Y8%Uh%JQ#+pV+1qeaKZcwFZX12S1S_Wr -zV+#Ym15?Ne2(j$mlvgP?c#LJW^`zF2x~WEyra!`$BZZZnGwtNY!nNarQ=~u!_UGe& -z9!1R6yl5$0pk3q8z_&BOYsy@znD;^(g3f9jES&%6g}To)S6{?d%WJHVSB1a8()e$! -ze+X@1dBZD+X|@vw>jasp -zbq{LNGu$xjEqWWR#{KUsP25mZ&a->2r$EqrW1}}ia>SEi-e|cA>bi(^uJO?!y|r8t -zK#*i|m)9M=Ws3{rSdIQf-^mm*Nv@|aRO8n=?};#^pA5|$)huG7l(NZ7?$}HY0BzRb -zk4}MwX80Q=?hkwk2aD%J-oNU!0EZ)0dLz8}s%SNQ*)mo`G1u5L{yV4hPhiw`CYNns -z%FE1QKxFbUWe%}$M|6Q)Jwf@$P%BLt($84an`7yd3s*K`h>x -zn4>;O8jJ4LPu)kNVR{N@*V=YK^$u=3TBe_yN%omwO` -z07i&{-HC%k;z0a}LEw>_6LQXfZ@a%larhm2a(v=*&qc3tJ$e1TG?mH{PJ6`EWEW=A -zwwv~>Hel0r#h^OrBh^J|3M|fLfvi~g0WVpSn65xUP$OW9^b7N -zbT0wM8w#`K4C@$$Jl(E5aVaZvPq~}syjDcRPIlcb^R|Bfz!aJ?3?nXnt`I+%@L0y&A-r1si|-Ih4pt8z8``o(PcbeINP*Eytk9SMxJVUoAXehaF7 -z{brMv$ctt*AEI1cXCWhMHp+MzUJU_1!GA1#j2hu2krxeEsS%r;hHiWwuurg*l#?Xf -z=w07OY2U5m0xjIxJ=NeUm2kQbdJk1+uhD*IAi0n&^S`v}-+23fV^!>m?>9>6w`~a1-sD5R -z@9>sdjc;83G0(+26*0>h$aN5Ue-KRx$s#`p-!Q{cAil7oO~90Ahc33{(!OMjv?%zS -zVw*IpOL%+>Rz0K0Qo|y&D`)(3;Zh5P5jw$9h@7tuNg@B;=G{Zym5?@3e3({1C6XSE -z6v;^UMyp&PyPY-SKeUCjBK{luJAkP$ncp}SV=}v^Sig)7E*P!P1T{fGlCxsQwmTX4 -z%3mq{{nJt783*tCbiJ44n4h_yd0-wbyK2(^zx@p_S=_UmkMmCrnwiJA2G#EID=mv4 -z;3J3!kiYgTQR%YkU9=BtrS#rE*m7N~BXrnTXMvUo`AY=hr#xOUV+DIoyU=3KsF9oH -z)i1y9t4?*6=e*0oh9pfk#RoRULknrS5#efP?eR3IH -zMFpMAHRqSsWQ(#%2*I%BkWMNfV(Fj9P`VUk^!QPvF3$9$F$2zors=(Eo`j3Sqr`U! -zTlz2$Pud;#+0E!rT+>Vy?q9@QuU-@D!tY2U2~6bK$WVqaPd6tD@m@eT!%^WXM%ePy -z@XmOn5aTQB=);r&m!toNa4iB*Ctz46LQX&L7;D*;f?jgXmkk&1)&QnaP{ -z#rYuY5Ua?`R_l9*hfUgtx)c_d@!+@mbb`BO;&$ImG?|(JFKEBt%!WUvZ`f-hJ)g{s -z>Iy!O_D3{kL@I~TM#JHFyAjavf#KI^2^mamtSTOb>-MtzO2%Cp$9l^ZfP-~BE -z?&oF>Wm})njyhi5rmgB*I&;zc9&fsV|DrMPgZ)Ud_mt=q9kxg8YGs*>p>0LLbTbL+ -zb9KQuJ62Wu`hmEq;LR_+H0UN;%*a4Up&@C%EsQxZ9$(oA#CCTDJAY1eNx|2wWL7D` -zR;0SEBcW@4cFdu}YE~(1$1wS-AaHz4TohA5fDT1Ug>K -z^coU&p|y2O{m`d=d(qn4PgFvr70umF9)yog7R1HvHQ4VbP>OcW^@Pi=Eo++}(Op|& -zaXab)hw^o!dV`o^r>{AtMu$k6IZsH6N|A|;~F-IwK?dJ=%*C)YgX4@&(bu0Ojuhc(>S(850cLS~2 -z?NS?tD>B4}G8>Nr6X6O0d*?y;<&k~Zuj}Qge~Z`cN&=l&qr5Xqy6ui3bOT>r{@STP -zP7j^+X5EZU(Qwtj6Nw?W#j=M1nvqa|CsU`7ra8BEH5FO&z-}w> -zU}>T@iwA<%g5p8(>@ob7-F+q~2-2g?TeIROic#LI3>Q_9a)e3UtQhpRPe3NACg{TA -zc?mzqVkK#0#LiUVoSd((4=~h0?@jydg#Ydeaw1>hPFqo`%x`-4DCP04?bXFtLNQjl -zN;&CP0<5}~UZd=`T*_y?Q?;2d%jMC#MUF*0U=+Uorv{9JX}CLb2B;U%e5903wU`vx -zSQLEncnAvm_1TZOg`CR$!H@2W(zYaNrgN@2s!%k39W8}J2jvKNGqw8Xi@i$@ff3Q) -zC=2RAeLeG&l{J%0U$>{rHm#U)BibN+x{QmL21 -zR&g6-3;2au8;oYt>kx)Dh)Z895^A8|^;!S33g(gB=oz4v;om0iZh%bR`#6|ZSFxLJ -z0j85{1OAs|@7gt>s1v9je?<>48~qv^Wb)DKM6|nJF^InGd5qsP-$H+g69gw4*x=|6eX7`y>BNk7@a-6A2TaSc*b%O(dqzWp$HxBWot?)iG~YSr^oI9#oG< -zuucpPnF)(^mloRz@(zPB@SgJV<;H(&a?5xUX`oYpVJ%ea186t1no82PRvgVuW+lvLNM!#;II{iSHpUKgiC55Aw_P$#-Q*M?rWPL4;Uu -zT`>!}TIjCZX9sm5v=4~yi1=bNate=pVi<{G!qu%1Tu8+29IjZ3uxxf4(Na_VV8{n0 -z7Qf!cqy{4Pxp{0L_jMk_Ej1dtifrV?YzB9VY`$nl+j}nr@;E}QTk60BpZUeS7(*^HYN8>d%BMQDykKoZK;9%{b^^X;xSGk{P5^GpD -z(>|X;`6{S0@)p9>{w{DCh#XrJ7&VIR&_*(dVaz|t#9VWBNX#fEaRbYt%sCsqm5pA7 -zrE@d|&;5Zvn^%lJ`x94Fl;U5k0(6V&o$DSi+bhv!gDc*n;|WlC^To -zKdI3*mQH$+guFgjmbNw}l5x7Y_0>+6I)pOD*(5OL9wyp{Kg#;{M@{X9xc1O^j&Zs78C`S`iAmFdSH)yE@Yg7*v_yPSPM7b4E-K%s -z(CRatnE9kn!%ip90i#2ygL34L^;K|G_L4ni{zupt9_XgggAc4IHX6}-lO^K?JuiEx -zqLr&PJT9??bdy%h);^X)GSk-;Gl*khJ<~Pv+%bDC@WZ-#ajFJUV5#@G)fca -zgcsD_nPEvyYCa;cQOWA~$sGftFpL45C2~G_Z-l5`i{sc1>8(io(UmlT9>2;-YtS1jydp)ibaAK-F3Sq< -zpKsokVkb8=qwB#B9>`hf9pJ-pJLKOnhzy};z)$)2Rn`O?2DEq2@Oq`s`A09Zd*X_w -z*WD8?P@!VeAefPP5!*U$?bvFy*8j}s>I7oDaxfoTH3ZD8#b#Ti911Y+?8oMcHP&r* -zUhMWfXhrwW!R`?vacXK(uq&8PP^qyBAo*LJk(RMBbqnqD2XxZ7fl) -zdYp=LPBej0jHyzF8KQ$!=GTWpDI(7xp&F9nelr^90{>&W_Hn9npe}H=4f+F{id*mz1hSYFBa++!sXZS+%P6B``3NrW4V@|`DrY=saH%fPZ7%$g`6p;U#6nfbnkkTp|W79o3;(9!h;o4PU%!bL?BJ_jc02>ySj%& -zH~j6+5|xhPP<<(-&61C_IJ0WHb@~o?YyjEs!krEjZ1eziVL$ypWVl{kT!r4}^bbvH -zr7V{cIj5+78DB_WeQ7t{^X1PvqMi=>$5T7^!{k^G;In|S4GZhTuqtIxdK!WdzkGJ+ -zjkXeV$Z{a-lOEm=?Oy8pBPi!)WHmDSMhOLP?!LF;*$NB|p>Um1)Y)2Qf9saEi08kF -z66nBrrXohZhA@}>?Nt7D&nEtME=*OyG5n05XvnG?C{#h~)qj#Z!#!oYS_L{?jcKeQ -zQ-{wys$2FJjgheYDW4iT(;Gu=&_SW|#YR1CzCVX?rZI)x! -zNzr%&W&>^T#@g>!I{x_g;be0^zZyJBr=_a?s<&JcX;ja@Mg5Qgr7n*}_LFwK7Bc3Q -zR?hi9$jP -z0Xz+_t5wPi4;R;`5h?Ec<$Mgk5Z~#MtswovPH2WL^a^>KSOZ<%0d8w}cR@XC=^ZYr -zJZ}ZV)@(T$TnN3h=}D)Hi(&!{e-;%l{l}M}m$dAu^GR-6T%gZRdBTMpTjn2GZ}Y<4 -zPvyuNWKHPlJHoYoZRAA8cVB($$|3b;03QPOgMz{+Cdpmsja{r(+&fIt!83sB0(=gS -zcezS@PeiSAvAh^lqpQs|;*Q0;(zbbKd%W6dNImpRyl?RVy49UO0$?#lU6ivRNuzv@xXvJ(b> -zOeKah^v?QjIHK9C68(P8qX!Qs1Z#EauquaBfAHh;?+BO&g>U14x64{+W1nsF8@dLZ -z=6@0~7SOm=NASBNPmYI0qi=$oz=YEEVE}*Dc5g>4*Kr*GHyr5xN~$wmt3FuNs536=8{eG+=y%<{C>iAR2$|4gbO%vHb -zZl4l~6?uGk)h^uRAS(ZvUTyaP9io2)hSR~Y>9cJdy1(j)Dxc2V&r6C{l=MLRlKPCg -z@LAip~5NRDbDg{U9T29os7n#SjhX$fD;n|k|ve_O-; -z=H#2kCO9<^f-#-uCf+D_?s%!;JP1hhFz|H*{njf?f;o!vN=(w|e-V$6bjHg3E0KqY -zW-URN?G2oWg=`eIPql&|GX*IFJfUyl(1QMxD7?;NBZ2| -zE<)xB>Y8va6dt?73eFiX$OQ*~Z@w#%l{CT8xr}!j@&^zyFychd@u?RJJmTz15hJj> -zq%ksQs-j@YmgEDYbq<2pdBaH66dN39%r$m&U=d9~y!?`F3y{P!0GKe(FHNzEj5PT1+Hsvd -zu|8_^x?z5?0fgX$SRsD;S0D4v^{1a;JO0P7AXv)y;;;wijn>f_dGWU&q0Nn!9CjB# -zg*lyA{|(05ukoAKN51lBloNEglHZw7O<8k)I+n2>77(`yf -z)CmH6dhm%ZrCzQPt(YxEFnJp*AykQeYOqBdV^ELcNPgxFOyT#ac4#l~uXo3F$sAaD*ujvzw8-oY7iKA5ycS2`}r@Q4@DW*FA0${z{ -z1AHn8qm=8mzxfQqJKFXJFJa#e9O;}T`k$| -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 -zITVSxR7NL};pA3-((-gETj9@Qi&wyEv -z{Lz(z_=SO0wT(Xm&O>CKv6|8u`ZKs8flNQ8GLm8H9%(~z6I@Mga?u1&^@gI^mnl)k -z0J8&`Wn?#o_H!~1*wdbnYu;tvb`osE^%@5@QVB?q3#2?U*4BR3`#(R=0{encutKhQ -z#J)SS>2}0DE~5BEI7|32@Q&M2MQ**LYp*eFLqh0*tM}OX=Y}JaxCn55+6-o2NbrD# -z&0&9Hi-E~@$DVI$J|vX@^HNzj#058fI}xAN7m-S6adkp;4qfVV+|1hOtAY=g=YVho -zB|R*Y&yLh7+$J{vdgyc;JIf{jcSR`vTLBK2v%WwnhfUQ1rNqWJXhU -zpt1DuJ7{?+Ek$mkZsxY|zrP41)qRgJ(hQ*n5n?%Oh@U6gscf&+;@&SlPlv|LI1)iU -zKLjTTvVGnql}?2Bxa$tai%2}HVsLRlBO5ufwT7731J8h?-#=aO^V_Gga!P5f=Tms_ -zU_UD8rnzVaDVt9EZM6M_TI*2Ih=smCR+lU3tTL^qOK{lIBIF -zQ_h2wSv_!Vm6mFrq@snx*%U@_sbWk~FCLkgMH%+Ls!dk!xM>6!fcOIhg}$-1Ke&Uj -z@GM|Ff6w#_p5k_Sc>X)8*68Dwvv)*-Z$m~wbQT1&RP01t_x#l#KeI`fvB;kfa4g8u -zhtAZC6m9uNW!3fJ58`Rh3Ld!o9T#u3qV$+?mj0ygeEYul5a7v96NJdZ&UObOwU90G -z&D|SQM5F0SVZ7{*uhF0g`~Pa?GK4&0qR__rCWh>DWd#N%oBSeDmy7)V+M)2c1r~L} -zj=;7E*Gp9?*OR@N8t6^QjM2jJ>+qhU5#(4ExT3?Li<`}6ZnfUrvq&2izjT -z7}7-XAA_cwWX7Zu8yxndw_z20m6EAT(hGL0640=8t~bt`_Wj|-O~J=iltLevG7Azn -zDUQgBuUX~E$@JFHS>9G>|21tmhaYPR_CzASJqU)2ztC<+rOsHmN_4YA@8G9uD0B?u -z(s0fCF>Q*+lHEillGj6lwefkhLlov_Z4@Uzp7xH;?0{JfQb{7=>+vrvegxTds)M9D -z8ZPi>Xw>w^BC68@eZEgJDQpqm6cOSDK_4?-LU83Pev59b3)L`;Tdp^x;dBn~y?5Rt -z;9_Tj=F>(*i%h(_BeYP#DNwKsFDo)O;=*{LJ?hFCbcf!DzrmUxj7{Q;cb^d<&DIU! -zrW!$>`cUP@M&A711rHkf>u*+8Tr*?@RQzt=M-H#pP0QFES@@a{N3eOJkLefQAOMd+o~+JbnMl+zp^cgw%c2GRILgB^ -zFPEm+t#*21SdNYs8&SB)m4tNH^?q=9S1y;Mfqdl!tV#3xWLug*Z)W3@{Ml1 -zZhUmF^5$6>@q6BZM>pdLe-FyP7osSQq#sOe3FO%X4Yq{B`?={&isI+YwAbIWo~Fd{ -zJW!HpX3J1!nt7J01R!I>M}V7cBF%3w{w=_yaO<+Ia9;OPfGN_@={p{Z{F4onrDrH! -zP`sUtQh^2z!%_u%@KE5?!fC>i9-kMEmn=}O8>`%U?<=e!6#cfDN~FPMM0~jgV@qRd -z5fq@$uqQX&l-sQ(i_igef+lbE|9Ob9_fkP=85DHH{JeD6u!$z&t>du?hkwtll(K)6 -z3D;B+0D5<@el+t1%kTwKY7S;0X^OAJb~8#73(4=1XZk*YvsSSWV(+Mf=#9WuvmK^x -zLxECg7`mnJTD$!uG2g>sReaMjF|0%buUDcS#UE;E6>p_DWlM`{m5#N+F& -zEkvE+)Ym{h>8@jDM%GgNehGaWS;>@<5l~nZNe=Y7FBg;=6&nkm`UGwTe?*M&+VD0* -zw0xjdpyeRn=bPEk>h&yH5#lOR-?I99zF7=O!V-?9x%&XUArTYW0=WoQt0BEH8e>`f -z-Z)t9sgl3oZ?>|{+PQc2&J48y!vkcVLPo2fQ#DFKL}w^miarY?`I%cG{%Hg~_Q?kk -zO($=zfD-Lt_w|E%Q2UXCj;^k$wh=uf<(S-JFJz&>7n$;8u6WNP2 -zPpvS01kj`@?I*1WuUcAGNqGIO9iE{P{SiDZ(Tf8%j=)2f(LUw9W;nw;ixYb_y|=XV -zVW${(BgI=iIuei={|V(&ez9r1aGln%!}G?oe%GC$lMw(U2u3U3y81JxDZ?Gl^p8Pg -z8Di?p!VY}PgnPCF*RhTnwS{@lliX>3oos2yu;1CYw%}A{#Bq#qvFfGmYc%MSKOXhhbjtY&`*X7j9VI={C>xeBIe`?` -zpn0Q|^?-iWn_ye=#{aww)1N_LMvDOJ4k60;<*T?3k;3xPSSHS`Y4P<9>kpp|Z7g#^ -z|Eve4G0Imx>Ls2b-_vvKg)lnf7%LGEvEr!1op6hQR&^lY*p;IvYwL(owQ^pxVR3o+ -zG6n8?$P3n$PZmwzHO}~r4NRW1mF8Bt^G}wfLd-v-j<#w -z<@#;(JvMU>AU*FNR8@0bS6^-}rhffT2X0wTW8h9W?O2Ci(b#ylyi0un1+Q{5prMu_Vew -zkakq6z!kKf0qdRznb}veBi7sls`pzDQ@ -z+XC=~7)rEx{qJ-B2#T1e>DvVAO7}inUFawPAvMt#$vSHeN2j0qpW*Q?`T7Vx2{UoG -zU4P2nlZ@>|m<6GYr3VhhpT3R&?~u8=OUG!p%e;K?Wk0$6`f1a -z(CU9QU1eBQT^D_kZX_fm1nDm6p^=o94nabYX6O`Y=@cnxkPc~(ZfQZ9p}U6$zsn5Y -z^SpmvnYnY%x#ym<_g-tS)qXvj{w<|k$GNvZ(A}r2WT_>5-b#-q1h=JK`(bL(4v~0v -zrN=90OccPs!*iU(>*xP!1rivC8ROpgiRhUe!T1s@{FS5n%KdkLCtRAr4G_wo)e(L~1aW2B5A#hH=CrZU(kTnc(V7(*^bX;ql{cuF>%v7=+$6ckb9)6aCqMCPpQjW~-7e&t{%x -zN4qJF;PI%UC1QTz|K>;h)_Cj)noox>?@DzI&+#U0lfc{U{<$J11)%L5*z0ikoyrgW -z*2y->=-AT@+%Gy`4MX3E441mVo8nb5#6n2IK%n3?SJ6Kc4b$aPN(hx&ta}n5TUfZY -zmc`TWIvYnEumeEMCXD2G&lOS}cJtUoss(YzaVmbiiDol@=x=ZHe>Y1;KT-2C-lkNl -zm!OKGH+|hTA{<*=fE2y5&=HhOPhJ6Q4!}eV=(Y|#RGfC|@Fta(!zrXo-))#)ZO7A* -ziPID0#@6b(dJa=60T_LPA94qHk{VSF*xza9x9R?)>3FX3E082MwtHbGo^k;;$3I*& -zE9_XFm|hX>XQ-}n9w6Zy3h=n;GwZM0_r0JiXH%OL)coN; -zwym!X4`oCkgc`t0!lvSn!=MtCNtW40q8hH}IYgEn%P9M>{c2?b0+mwkhm#JjB9K9P -z5^|(Ei_u7F%`MgzR{s|W*N3jhiaCKBn%`_oJFKm!bKrZKB~1~94`IVy8{UgIxBE47 -z_hzoUf;_gq&Lakx@eHyte;@94waM58RIhGy#itUDeUgHwBQ7iL+G{&1^Y$+4IvtcjoV -zg&BHYQ!Z;;S*(Z_%5i5Ay;l}L(b%E)ypd*G~1v90LZ{^%J2h+-A7 -zs*JDTVYb%HTTJv75n>q_9orkO!mrN@@Fk276@vQSTKzK^I0vo>40)dr|o=7(XzR)Y6376EHsf1*`4Q -zD%FInp_sc3`i!92H>V$IxvS_zKReDiV26Io9+*{@I0NW0K;Q`IG_4r9bBN5dZJ&t< -z2)(EcEF=|wn8S2?#QYxNpsgBRRSMKpm -zL{lj+`u|c1`OTKd<~4Nvxnb~35^TsQIQ)a`mT{EI)x4K!F8Vi8DbSS+CzuijH( -zy3w0O^6(Sz^Y1H_pk$uJ{@KjjjUjq4UjmxeALK5^gqn~-ahHBKx?T~*WodhQS(E8i -zE!1tmDUkIyN4jm_u(n8REO9HJg1Y?Kgf2YsHKoR1BBbk~?5XYJAOhC`I9cYasb{W$ -z0MdD=v^F`7g>;%Ql@rm+V_byF0*^;?Uo_nWfn5rNR|I<9udiJS5&~Xju{$8W^hiWi7X0EANU?l1~b1IzrcMPvzsvcut&PFgl~wGX5KAU9}| -zR}qiTu#&e*sh>prnt+~j*4W=H8!-+e7pMt3kNia_5oS#Ct2C({k7e1p3Mc`V$=CCNj1*}}x! -zkOWe_91n7u*01&j2#!!0nEc#d@IQZ=LF#DHvkUZ#HUUrEMEnvlKJ~T%QSSr2DspC4 -zLU(x~LeOi{PaDRg^(N>mkT;*`Jk~R^#9%idZAjlmXUxHEwLGWs$y<8__qTV`w$HQ#an1ryb?`tnUSSAx71`KNaar63JI-`@0vopzCy6RW*UH5fB-j7+wVs -z8Ir5kDCZ)0KB2^_zpCV^M3Raclu{ThC40AAouDjKa|Ra>P|L$f-rx4e9qCN$9@(12 -z$ES`r-a2Y9H6b6cd`uoF34N_>gk;HOmT7|)oR5_h`AGxYg)Ta(#xyTslm?`h*Ktix -z{^_tHzoIz24z(5i-VLe$o?#W=D{x0`S+?%c^RL6P+8{ZefA@q7vXJ-Lt@h` -z=wA&BQ2V9$O$DZM2pEj>mD?NrD9; -z@{mMc{LdDWCbLDd$DM3?8-Qafa6hze>wl{idW#VS`@R1NCwH~9d5^`|woAO7kD@t{ -z64HkwwFkB47$lZ00T1JRW7dJ5~k=fI8 -zq=~PrPp)h+K}~S<*f=~6(ZhcJ-I693AB(Lv0Eq)}U-;;9fMtb=!DoZ9U7jbZuf1z8 -z!rCQ-@FvyclK3(*bwjgskF$|=oB(LpRwsJ^5?fz9xB -z$uuYUPq5yKlJVBqz$p9Y|AL=)+g9L!{{fK_BUu=~>JO|E&t&KJWc*#(45iM7s#&U2h# -zKqYxtDWfqeXn8c_{??vYUG}p3kCTrZlNC>kBs-FbwN1_M1m%FD=fRW@>Q|ALVlThw -z?)mIO{M>R@@FcbrWNqYSCPhyo^)%!?K*dTTPVoAJeubBgR4pyLM#a>bljbc -zZ0+qxDWlpe<&SC(M(HUXv7RMvJi4>{a7&bISMY|mBrD?;l)y-yQZ&wySj((BjTPa& -zw}OoIlY(j38kPLfOe^tG#N6qkxX&YMq8m!0MHI7Bv&U?py5Y5z$=`5Z0_$lCz!tc8N(BXXB7JD -z>Oouo4OXaZN^d&%a>F_cyFv^2>viJLE-VtV^P--==>4{E0bUyv!r*AJxjdUrR(jI# -zG^qTsyJf|b5JV|s)pucvPu=)#8G)RCPszRMJN6B8r7XI_Mp?vKH2=+XIZW9*0PWEF -zU2SzdicY^6+4pe9Nb-AT(oyD&(10@k@BGte2>{^$$PPmYRAcs@;Gk+abok*6)7Odj -z1;tn~&9j@2uu5!e)?!^t7PtDs2hACc=<%0b6>uu!HkNw6L+XWv>AqAD`7~IFWJi<~ -zcp3omS20tM&VXaeGM~Wzd=GT@>EkoI&(R+L?NEG_^iK*id;ntDutGI`;zREHf>B7w -zbjbUVurot&W^jb(mk|gS^LnPdb-uwnV`COG@DBbn=XAmP$0m4ykn!B42^B{Qq$C%) -zI?}JPU=~*j8)%1&^3n+-3VmajrWx_(5LN7Cy-%BYH=aP->+gT&Z{eD%XboS5+4Bdr -z!CgdjV{C1sZAfhN&)S+}wI?0hHh%g!!>a^ka$b1xDpLK9uJe+Wnj!0C4xL;_M1Fx% -zAub(kws26%36LGQ@3czJDEDpq96m!p+9x>BAJFg$0PN-L^rVWD -z7GjW!r!UqVJ!hS-a6?ic&z0OsRrlT9D`P*+KO|VQfEvX>*QTRFw*-!-PlpSb3pZoN -zJYrt{l3kSmMRza*PN7`xZeErg>I0XUu9$pAcl;0z*_bbj|9JN-j5}@|;$V0B;6Vcf -z^2vBxf6aeg=*0IF^0j!0vQR_ -ziapitZsHm6_yAwE;P;v8ZK1ul+lkYjx)ik%_9`}#9Ta;W6#K9-mGxG~2U$x3RUm~g -zZ;i>i7E#V^+BvzzqN?vbJRYo{xnG0_V+y_@S24IPfQuYvcgD{glXeGCZE){OWk3-I -zZyS@hb3}P3?SNGBVb5@-5%4B1w%G#THbc{t{*-R|zhU|hiNO1TRRcu+^(7h7 -zDVN^6Ongt=V+}~?OWx7Qm^MHQU2_M>w(ETB;jmhE$_p6=;2asTEFbg)voGLB`N)-f -z4|!~Ozh30!b_h~0#gnMH -z?FVFIP5QJGynND5i#^r%q?9AaZF`UVJ40vxW~v`hB^v#`7sK7n5#-=Wu;C -zqLvT6nCoAXC>6|BSnk~twZld@QrILy*PLDTb;E;pcPov{dI9EE5{95g+2(s;#f{vT -z%9u@PPO~-8e##i)n9I-51pdp&A -z8})me)Nn0(lSJ81Zd5e)Xrc2V3GeX7yV44r2cNON6Cl2gOkZ6_S=g)*8B66^k)W7r -z{`&f_K({5;J&cy&n7*6qh)UA2Ie${rP2sJQmHH8yX0)!$!A^0I1M>qm5ucR3W<5I~w8G$;;{Ac!nXAa@A&3Cqk^v4Gt^Z5z;k -zx5R3{NKBiM-ori|^V|qc%A}v0!O9h9R_ntTo$r6h#-#K#E=$?z7E*U-_N_ -zXHm#35~^;M7;-NK`2!oFS`dlUF~|hd@Jsw&<5%ra$8SFhb>v!mL-b*MHOD+_v}MHm -zvF$!|J%exyb_EVwMt$6VbPn$%57-0g`aQa>3VA+2mysfn(#KR{z8LpMBOJo}AixN$ -z(nO2lV55$d4SBHRfX2T@sDWBuH}uHF5>`lxiRZ2kHWK`xc&P8buJhr}{p1Np|7(xe -zO&qRp>t@q$Cx*%E=p$QP>zxZOGV4PIb|8-3zV+=yY|x>^1U!Ur!|-Dc9_ZMvwjeXv -z@?5j&J^V8PgO?#?;5lya9|vh@EmuWXTZ07%{_pL6h69DO^nNwxIq)c%J -z`6rE+VqW~;mHuNukmuXagpZ-Hd~pPmLHkE*n;M^C|E{=1%kD99-^k75LBcdfG>cdO -z-ZW!$(=a|{%Ka*+F$1z5za>PEAkAYkdbC_*E(k8ki#a3@RhZ*nzl(JS4 -z$S)VfJ~`*)DtkMzlY=VX$5d7wihNJS>${03u=gjv2-Uk%RwU;gtwMJ@s#GE+1uGzW -z=+@E*$z85uiW*F1N@lp1(_Z#h3JnMBl8*tSU~}<8a@48ZxJAJ>Og5h~hx3>$7JEp- -zw~8cNcSWxCZxkp~jzCJ|nm=XsgWg-70>_^<&}VVH`0V@^a?n{S21MyjmW^1@P%nD3 -z>x^_S??H~W61QB9B`+z4f(IXBb{8%4yKR5#?G$$d{Etc0dF`6Xe;i~AfHtIEt1n8$ -ztq0^xD)gCS$_mAu(b|`;9mSEynfITw0At`X%Z_koHkJ5!7eS(+$v0X8c{ZI}q^`>U -zRU@R0a|R#(YVfH~1t^D1ALlK$n1ekfSc2Ahd22iQHAaKUTi#@CQF-^XWtRkLfLW-3F~bWt`V=zYdsb%n{251?Y{1L4xb6YI=~u}G^3SdRrd&UfId7S} -z->qX3w9PAwlySYe!mC(K`5vLOj}~F%pA+ACy*(uh+$`dg-K{T)zc$lT`I;pSKisqa -zE}e9HlMz;>YT`~k(HNgH%?k!-hTJa(*w?Bt963i2GS+FdXZFY};{tajnMa$!Up`Z& -zQf^!6DBV{9(Xic&Fq&x5}<8^;KF{H7a#96liOe_8+azTe*jJ!#U!Wj*Dctq}pFMH#lW*Ug$g)Ac%EnPW;5@J}WF`+*{T -zk2q7LE}dXnC+1Se26Gce;mPLHzl7%?!lFmy>f^Q5S%sukw -zn|m!2>M|&F)=7h^sW(0`*+)c&90-yM!)SkfCWtXwR^w{-hd>^waz&48{i8KqR}ovK -z|1Ml8|0~QR{GlHIxouP%QvZId{SB6?8To50o@*Wq>UYD2o0pw{%qX0m#r%&3W5LZ^ -zHA`}gjvLE^gbNRnmQJ+g -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 -ztrp`yCS<1b>o00$CQ=wT|+ -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 -zXxctp#Ts_1`2%Yc36E;U2 -z%^tezqK?_Wd| -z>_Q5lA|1x$f?dcP>)~3FNLZdmMcy#y2iUKQA$7qKrcBwV=iYA!jL7j63k+AgV&A5F -z<{+g~I-LT4euEXdOURsm6yCGvx`(MJ%Pj5l+Q&%NGjLF3_PSyeW*`Ct1b0&^v>8eI -znWBo&_Xh0dmQJ2r`%SXR!vGrrNMfC{P%-RPVsqW!maxerEZe#XPk%vtqANtDFay7X -zf&ELn@=YFv6t^!t3n-Zr%a4ijnkDao0Zwu}>vyHm(w(^l<19VmAJ@k)vuU6WY%XQ_ -z1bDqkhdBbgB|`d)jQZPnG%g?OQ2UO))lnzaPOmG=;SqD0h~*!i0r$H++49*}&+>nH -zh=_^8|DrAX0ev>Ht_VR=)CMW+hzOl7jC`%dH510Bh(w5eQ#7np^yAr#Tdwlcd9hrl -zR8Xm`QSqjXcgG_k--%vc2y&%POpcnY{wl!C3Vh~oIqgp6{G*4z>==fx26*|@V@#N9 -zbyY>LJhTZHbLHutj{KA5HYCV|Lle>upFD%N3Vb^6D!qkB(AeS_c?6(gd(> -zH*dZl@X`Yh%t`zI5st3*J4=9zUnC9{=3&mL+QTI~vxi+1c*s|j1fOZGLz0&> -zPC#tt?j?As@a6+%r*y!Zga_R7Uph5kQiI($cu;$x!zhD3C7Zb4$7cY6I9veo?65dP -z-H*P;LQ)}AD#X-IMtI8em&rcDT;k6 -z75j>_bCIjc92<-^(EKL{z-Y(h><<+@o6N);Ea54fZ>}|`1SV!HVZ@Qa#RWWdI-Yu! -z@#B-}H>LFmn)rTGSd8ngQMx8}w<_*{ -zhlHfpf0o|T{G`0K*g6RvXMYoIzrb!>`ACi{>?UnLbd{UW+uhl>9=tYn!`pY~*EIxJ -z(OB8!Y0N{;v})KISWP0weA8=wejICj!@Uk4fLU_XKqoOS)!7Fo>pg`vqs!Gl4Xuj* -z+T!7JRW@Xz8-$nih2#m@2kfn@Nw!snl()!QeGCtNjMw_hn73F(E%oYxRJ~5V-v4Fi^RDdY7 -zjri(?|EE&Y@~$VwC$fg<-T$80gH&3b#@+rhKAqp2nQ8e0Bh&7~@z -zzl#loHEt~P{D?R@r&rx_B%L80#k$*Sg{(P;^5f6Vj)3kL)=Lw^is_5#I#0`hz@5S2 -zvkDQwc+o4ZX#N_vEX~aW!M4~jLe>}KET65 -z-7|M&)ou(cc{_~YF@|_4r9o_`E>+3+eR)#&Yzt>nwY{lbpxAu3`i}36>#q`Da^UVs -zPjj9D!RC2QDN5s4;tG2s7M$n19+1)gDGm=b9t+Z7Ib6SlczI77vWMdH?l2+kPxXb) -zk6d@eb@!ve_toiP=t6V_{+@w`D@C%gHO``}K!ieEfPI(BA1yfj?nXLbd|)*3Q{~Lv -z08`r%O@qe^Mi&4M0?(?RrWAR_zZy156DW7<4#{*nEtGT#FmlT%U0B?ksbB|Z7a -zd}0q-FUH_nGpV1M_D#RraJ=o=uLr_RfXq=1&i&O?X7ly!LZ{Ia!KD!Ur0>{wAMK37 -z!j}nGc#vnQ!UU1sUwbuVAH0u+a(|He=U@Q{*w@u4&0o`HN(u`G8T~Bg!VOge -z?@Ldc116edscwp_G4CdH)LcmNW}4KgT^+6GoqsQITS=9Y;z`IZQ5=dHdTt#)KWGn* -zQ+8Un@MXj?0QNAh7Xyx0KZv$xzF^L+S1~RTh|Y1PF((AId9;=N{V5dz0LuUsI?38F -zIYdzaSr$bc1;L#>%hg@RduK6gSZV+0H(+)FoUNyjiyt=WoqvWpmqszNu!72`9&mU- -zL@e^-Z8#5CyiLpay9)#Cj9a0Xw?dgR{lK^W0p^}QfX!U60=<>1IFr;z)X9fe5;$ls -z=9?u)vwt=f+ni}J%m5!vM>sB%#LE2B%s{-v;{7iu-UdLmyZkT5FKENMvuLF&rtt#T -zgWJcrMnxY)|ACN8`!ZkP`#2Aft$e)*^to$3EnuocbGI5lU+x1SWx%*W67_jKlS~mF -zYe8#V?40aRCZB4aQrK6g)pCEu8J`5=QXV@_hPxCJoqF}z;@(wEnwwHFcfo+>(7DoH -zGp95q{R9%_O&6x;tugCG1JfR&4_5&0Uk_v`F}K`Hju|A@I3k*sa4QM&ymF~M)ycs54EYE?#01+D@(G0WKK}Gn9?Q^Z;tRrgx -z&+PH9FZ*D#mLRathmU+j -zVlL*ROgKKTAskRi&6*g=k;5tz5=eO{8n~i#3ELZ;NbWgJH_=qEX#?5;ytgiv1M?#F -z)`HPboE4@Go4^%;=S{9_t`Y`7+6=1=m~lHc=2D{^Z>%BzGo+s(B3ccO4j#hoT?g<~ -zfB^23$Hu-JK!}BvKGJ!xO_mA$JR8*eaLxeB65TTMkF(b02eKarjlUK=Td#XyUJ7R7 -zw4~nK@2Q{0A)F`+NJ0PMOEv&eilul$)q0)&2cp(bhfK?5xJRJKAO2S+BC(r*+<){Rq^NNu|ypa%rp=8gB8@L5iaj>8pt%JCXZZyBbzvSakVh?D%EE7*%ETcC?IorT7j)1` -zRSUJq#zFh$h=bV{{#Va-ZGA@6DfZsI@Fen(4W=4H<9|Tt+2!9hOOQVvZ26s^nA>k} -z7}-xeS-=$?Yp*-#R^g2KR4SP$1IvbtEcFqEueW5*F#Glwtn8B?wI|45_rBZ{OStt2 -zwFU5mU2BDvynlGo^BGH_AO*LXFmW1Zts6n1XCRs|f#v{%oeF1#JD^h>f0rcdRmC^t0-GNp2AZDgcpKp@Sj+W>kl+v*xTF|3!BA!GhXmCLAoHk0SS)mvpN~WTNhAfE)tw{%ceE -zdb~#FiT>1rd#?90|Ae3Pyo{d5zM=b7ihVD~TSe -zoSem#C*rH|VCwKNOs&z{t_&fFg1#lJlcj5&jHCKqh=&??jxA!|;v$fa)C;JE_4tog -zjxxuy=K6maW>-R(ZQ;bRwp($=hm=9Lewm1y)vea7)|ZT*Y<13EnbBLGCYu}qm@2S& -zz0uovI}>98x)0ECSD`-5XzgL#hmG5wOQFc;g9F`R_om4Fw^Z#DSuqfhG6CCh*_IlH -zC2as8JN2=-ez2(uW8eGLizh_4FEx{=iNbS2MksBKn3N2KqKP%^R*Bh2yGIYpK7= -z6&QU;2!ZJi=})-Jp^Kkfp#l)-hXbRV@J9lF5kiQ=xARoWJM8=S)3C{&8x90#cWB47 -z&av}XE^-Wk$;QoHY+*wJHXvtlIX!xdyDfFSjX%|c+Jh5pUAI_ii?D3qz)qG4hy0{O -z#jbZ2R7q@peFw3F-KKknQiC-s7k`=4;I7CCvcom3{KRNpto>fG$g*2aT0wV4>KPj{ -z?UhUS)s`D_3DCt2Xd0e_ObSXwhWT}Z+9o8&h5(Nwpc@<5o(4v#DP(pVM;-F&-hY-6 -z(GLf_8R~rWo!x-S0+6}wGE#L%TIRoy!GkX=zNycfZgecmsbL3NdA}Y++bGZegBD=AhrG -z_5;$_af$e8fW;I5 -zl>!rZCA;)$`{_=FQ1}6z%Mh_WlmP^H2mrjo{@O_PcXCKY=3thkrTE6LdIJ}-5J$U5 -zWR7f+An<%vmmxT;$i(ojW+DvZ?#=#5)*0iy+9?m&;3om91Li1a`JSE%H+vB}s=mLy -zihy~C=j`H#ltTG~o{D51jgk>1y(5rqRukW(x5YT+QD|D~@&=<-!)EKYqMpU7!v%tp -z3;FEmud%QnPJ^p&K9&t?jBhrvXKRLk&U|*8>^!T=lU_KuJ>|0RH02q=9v)wEvax;I -z=iIP9=mNAaYt0&=o>lF{|4_SKor;)GKAly)8P-(Jax%zBw`(1o9K%YpU`N8uduuv& -zM2P9r@L(>Yvr5#_6lkA>j~7(!XzaU?xxF61H@Ww_>DjHg8I3}*BScc3p~y+$s5H5b -z9XEcfD?jTq-x;oOe0VruQfZn0%8T55ifV=Is=MKSJ%KWPA1m~}Hfn`1AQ(C8`Kemh -z=Cz(Y!?%=FqF)4b9Q=Ss^)pM)(;dMAWT*sfWG*|7qk_c8+x(+e$oMlc2yC-v;_iZu8FjBd -znUT6j`waI{#yBrT$~9BQL{OMpn!cYPH$_6rUikGtnyxY|tELG{mo!Lsw{&->q$u6p -z-6h@K-65cKgLHQ&-Q6J}@f{xC?+@3-bN1|+ot>SzcVhQ>=S_z~5ouBfhmsJxvO_`- -zUB>1LN{+4=4WH9r=>S19JP6WlhPpe#3jDn!p(F?RqLhw0{eO!gFAg9D<_;vc-Y~1M -z+qi$KiQZK=U!Of|T4&E7Z(bc+r_>f9FE -zOo^GtW6~9wR)h|}G@+gyFY+u6FUSX2g{)WT6S({k59G5yENQ;{OKf~S4FC{thP%e> -z2JnhWLQ|)(6|g_&SP+niAp(`JR|fz(XobDXAa9d=$Qiq=T8aj}$)$Mj^UvzHalDwS -zWzzVEec%q)*+%xg;`gqUqD -zt-p=wv?sw~MYTsmXJSqJ+t*Drir)=fT{_)Z#nwNYT5@nUyk2JQYb?|>Ysi^jUT)D5 -z(MXTJMdF^K9xB05uJqg -z#ne$&Sg!}lz}j1!}~1yTUbSzz|9H#A;Xj;7`O>$^bzo1kI0M%v2XRcoB6STLvpN>3E -zse>l_qIiOUb*MYm!=(^OrD=mJ?YR2rodcpW=9Jd!kx;-v;@;lX{}{21Oq{hEOyYrI -z0Q|q*s+qAbzLfLgS`hSqrvr!;pd+x5LIwAB-^OX{m^s0XAN+K%(@XJ#PLx*98{)193v>Mpw^VY; -zv=|6+M1i4J)3tEAP^L`wJby;Z40alI)Z+kUXaHHDCD{)M*)ERT(55tP9#Ek5z?qG< -z7&^l4B>F5OQs3}=Qw?+iR7CIXa?^ZHa>~C^WH44vM1q1KX+CSCV_?jo!_xs328*0- -zWb#wk1VI>#ZuiN>iM2h -zZ^qvCi6jXJQYUI@ZaBZj5V&0I_J@fjQ9BNy=e2Cs2u^`07{KNNvfF_BWQ7Lq-zYPY -zn=P1xBlEfd(RdI6_iCE{2*|LDyAk(x;@S!$Noe00`K~+M0bT&>(Fr`9$H7&gV5@Ab -zoA!Mv0++TPrg~hx>BNW8hY#O3F#)5+N}TSI_~lkMMnOGIQI&V*8vnlu(MX(>oRZ?dN!{j5uBGA@sw}#}jCX3ggaDT2sj{!9rlX}09 -z3%cgBNL!YCK5mXP;Gt!DiMiUgYKrMlL>CA_0ebml@TRP01D;vNetokBO9XInX9<~N -z@lihl!(xR9*vWxghI-*L7O38LKjpIJZ#JhlZl<;kC>@$8J<1;ZT@4!j=1KsOW3s{_ -zCAKmd&H3}+KPf|EQ&BMW=#k2=QF?#@bmL;MNfk8&Gm}ZUK=!37<#om56zJXjuYGQP -zX>Lb2j1a$dJYbbbQDRnGH+yVfqn3adM2jatE;22*59xd6Q5m*v0yi1hPdd)42npr4 -zPa8;~i8>>VW@#i}fjOOHI@AAhsLtW0(EUiP0~%o92xgritOhIx1Hm;l=OZC9^mLdP -zawnmKK5%q35t=qA8VPIvjnr@@#yrYl;4?OHNh;xLL(EK1H>-^2Tjg!(H$?YwBYbTs -zB~+$ovliivu>$3JbCkPL>+jGWmVmhe6uah)n4}H$A&olXXPbdF_bcevMF2bgAkaZ$ -zTv5T)63?Do)32R<6BPFt3&so*;Y0?BO*v(ASqa8uD!DtcIlZx+)Yckl;_6)X-J7uT -z3tV7R%tGwLc!%|UGg+GQ%Y^wz_q!fq0smL;JD~2uPcg5t>3X3vMbRO>=@TZUkw$H@bdDtvWSF+egkKa_Tw@|9%CC5?Gz`c -z_q8El=V{VDPQt%=hu>t?N -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 -zMk`Z4q|$E%Lf^d$R~y@LQy$Pl(cP^~Ben}< -zf#S7>je>zsh@=V@jVn@kF|HqBpo%5JGLo4Gn|h4BG#iQJlgW^F0RcC&8Yg884GApM -zzM7|bn}r=Eu226FygG%t%4guSVQ--2vp^&{9h93V$xN~G%)R3Nj4=M?tnH~Ijhq+I -zE#IKUifdMl`TG{=TAiA_RU>E3}@WiXUzCFJjh?;(Rx<^>@P6Sc6uP^S3ue? -z)-kI-pP9l8f9TVD@x9pMK;3VxmjlWjal=n{KaN~WK#M;O*c}LzORlN*+fWj_y#01k -zg}fNluT^bo=b966p2pt63!3(p-yg?3aXW^gE-y~mOYl!A;vzb)c#1||DuVNHV>AFU -zgq>Is8nQoD4_q_B;tPm>BO|mqPh+?j+jBz%#}xnfFl>k~e%Wbz?HvQcvuWH2emwq- -zCx9{m5Wtu4a}T&Jltp~!b2wslVb)eF%iSqxMiRwN#q)QI!G3*spAu9yoV37}>cVm6 -zRS6vOHE~`4Y)1c3;O=za_)yRa7>GhJCH&21teNXuu1MS9>)gdCq+hZ)Ui7^I)auqo2 -z?}R^Ho=9sbB0lT~?O6cVh}5LPBC0f6SlVyLg}Fo|L&^htIOOHF*MZOYHDR}yq^8um -zi?$S4*{W^Sh~-6|-wg}o6l8$}_HR|F8DIKh?#DADJBaTDEl+hE$mVDoCcuT()Q=m} -zR+}xmRcD~#vl%B|UUg2O%v92^_1^3)0hK?V#X!P_0CEb-D*EXxnkr7FqN)s8eNLHY -zx^Cy2Xvl=cjW(dv%ySX(t9>k3v`74;t-d{doRC@NHKF{v!G%m7hsl#>MTxV_oT!+{h(Xa`Jo>l_09I4PP(J-!76(h8 -zYio{b)fBQRlEUXG#SSFJQO);2|My -zXrmc|54SfgwZmv+UCjo+VT!nS5dDVhKH%vgk3W0~zD`_BfCUQ_A*fQe)ja{W!`8Sc -z%=bq&i!;`k0rMmVj1CAiOEsrOq%!rvql|@wiE0Gbxn^t8in*c26*XQ-`Uy}0BN_=E~O5m -z5iY2!0_bO5#*GT-7_QXwLV?`khEzD!f!BZaK -ztA-Xce@J;WOUk~9Cz2e%opwlkiGBPuHF!eEJ??o{m-p8y8%Z2qpKsrhPI@BwkcI5g -z_VC6VNHR7oVc5eDP+$ukR@dO7O%$~ItwbC8^B?%y$#<^nm_4)V^U_9hAuZf5fG}&e -zms3BVLydYCH=cO|w?;c&74t`FZPQC&WON5wG4`jq`UlW<$t9?sN+?lv&K~`_olX4w -z`yb#-*UUN)o#Jq9Em}2>OM9*{TS5jBkiCkJr>n!Es*tdx|14K+i`@RB@0jRT^%S%a -zmA^_`CHN$o-Reb#sv|+N-Lr{zAJd*wm-o5yLUz>2x(z-jx@6jBZ^~vNxnRi?q!m)8 -zwAw1GNz<_7C91YZy=`iE@+PyFDu-E^(#oG!6+vx8KD#yp$Nz1Ht`=S0XxZ_BCF0NG -z!nlFub!fSp+_~*!JKh2K=mTP?qNO-YHV@?wsD?@+DrE;f=5V9wINvY7$l+mDk)D}{ -zg5Qg`n8=g>QU@sPt%o|(E>EzPc-1KGcsJ)DMNj^tn>o?=@1VyQ92r!2KJ6cRWrUZN -zQI0^y!YPezTHb1x32jv}3oG5X=WJ!yA(N63#BKYpxjSzeYCe$@t$_wV_jbs6jRuC+(`UAc}z -z$Qmnk59Mt6RYroKK|C;aQrj!K3;IKKY|yJe4EMcVHm`JzDvO3@gr!pXGjJ=|t7YwO -zSDMpPkrlsVXCKe3nQ)^El4WGRTzV+*1b|Q>*e@0?KI8P~@Ko?8wTsjly(KUr<6!KL -zrMz7CG?IQOB`M7_b7VltuoJ`I3uB|OpEP|uNiETI$(F83t!EQa>W`MheEfSwq=PO1*~>KDu=-&VALsB6u=(x?2w~)GBD8 -zCUqiluA&}yb}?&ILji9or(JO8W%vH7im -z%!a4D87s~GB%4qw5X3ey9HIqN%w@FH8!A2=v7}rT=ByK|Zs_%v@ -zIfcuJAUVudQknCDZoR*@%c>??(M9AaQ?0z<$%(ft&2xS+1#k>nWptL}I8F@KZXDlI -zX%d{%mb3(4!vD6(@W9uV5Ah8)ZDSSx`jJ*l4Hv4vPA_mGvL>EK#5V(c8i<&DMXAUr -z^C->$E@YOJ%e^K6;(V{xyp)E3IkCJ)D!w;$j}`18WZYOchWfg}t8^LY699&gG&}1Z -z&sb!sVk9WLh+o&M$Lkn~I`h%rzUUxRl2M!=N0+}((kF+0#;H82IQb`JDN(PDcS0rL -z7T_STnZv;2NlsNxihk$=TMN3>u3A0;oB>>o%ZSI+azPhvCpvMUc4Bib+W|0yNXUdmO&h32}7m+};Oj8Fs1%?-{qYiU>_@s<0{r*OFP3?Od;rJH+u$Dp& -zksW3JWPC*Z5C`e(6Z-6xL5>HAgQZYx2>Ut)uFK!5Zbg)=^SA__yKe(I$2-HwlVcg) -z8a!-IK$YyP_+B(HT@QYf-zylk8uYD6f%DqSLW-|UcF#j@1)0=dGPQz3E_DUz;h2lc -z=!0<8_TPoCtN<7lPl%R_%3|zBRG=&Li}b?cw~DM?p2P_zmpT4TU^Yl7?bPL9NE2|44BL%u21#G}ZeY560%!nS0Kb=w2 -zan4F*W4YkhjZcB%BfWSlZROIG6j{H*o(rpCI!bB1G@*&!^bRZWmu5|PbJn_;63KNw -z5af}{pb0CH(ltwxoX4o0^-gf4%vQdGEQ%Caa>{?}uXW5x$#w!R^zxD6qwTEQY(Ch= -z>J&?ivVoVYq$NkSj(4btBuF=*v1+d>r8s4lEKZ08B12(f+`1&Y?-ab}y~ZYbOm)Er -z5Qv!&BoZ?X1*Jng_&dW~E2zv+qOZ~>r#OfZlNUsXaFiqn5?p`B$p3(NYru!NPqT~h -z>56h29)DK41(Op=Soxh}&)75_+Os^~Baab(-;1So>8ol0CRfZicOO0?&=pk`mC)yd -zjo`|RMR&p5EJRf6USAaQ_SzH}*v5zDyn4F -zu>ZZq9V;Udlacnteh$BEWGh{ZhZ>9BHD8qTclzW2j%G`t<%$vZZqc*w$RI2>T|dYB -zFLOhL4xa#WBmnrD{$2YNp$Y$!jRI7hLi*g^ooJKpc8)+B0Qi96RY6wv^U}WGe>6EA -z<*%KoB1J!LgHdDw!Tt3r*C@MYt2;I?EM{@kum7?Y*g(JEDb}r2i)%{cA=H_yVVvMh -z0_irOC1k^K*9tw)f?=K$lS^@hCVchiYtbk776i~}7Tq%q;b=k6@>A%Ba>Y^CQr0b< -z2to5a-NfQ|1+{_wRq&nFNT-QBW5B%K4xYHHs^~`Qe -zQw4kmksxeB=B3|DR>X1$UO&6Dj&kM5x?va+Lx}p^fg+Ls27`}jLfz>W{@lPq0U}4t -z+~T6At~k$sPapX!%=pY$Aai8*CSTjl+>WpR#2S>5s+JkYd$B0V6I>L5PfHybz3@1? -zUUVD8gjYHbbly2ZEbjT)SfFS$;C2sNXjO=o#s9>N0Or?vY?4RN%eR8Il&LI;;BaT9 -zhcsa=0(`U;I&jpWkP>cO=^9xI2Va(|GhQ%Y48x=?n@dFU1D?nUrnwEUYJd-R_rypC -zN=ft;!=VF(ML0D6F0$rrMrwhhE;-;OC2tXMu_6A8jp9{fyQ{x^GxI80p*p4WX}fmX -z0)Zn+8&j*mMqB&W(4wf^(~UqC92aXfa>r+NgS*6@oRv<^kX%co?WL_^#3wRN+aY-d -zK9}&-1z#cC7$Cd47q?oTLFKTnbOj46P8lYxIr`o{P>~n+%Y!BY^z$jn7Cy4|zHgp_ -z*!rkg74p}TKqa%!?tk3He_fRG2*^qlLCKf^w>(YMjd9d)Pz5{O)dY?(;_(btxlYeg -z{#o7$RD8M$?eRXX%kw>#%gn-)E#4M1*&YY-sX6D}<_5hbZJENZ_|;PKsi_~L;@@2; -z30t1l=b0eFma%S+M!`P9QEP|uUB-KgL;7`Sl?PRi+%d^FYNZE5TbD*y6v3gZ@_$R1u}oN4OcG+;Bvu@MuBa-VSW? -z`UxdGi|9114KBNdlqN>Cl-6UBFs?QE#>ZH{R8xRWnx-xFaK>OxVIsD!*Wb`K+JMqQ -zIz(8S19}CX{T=+IG=^hnAh1_0JoGpXxaVTg4l9u2$9$L@u -z_CcmXOEfN46tyGUOKF3qm3bQuVmiQ{$mIh(L#?|cNWrL*yuwHkUN1trjAVU(;qB`^ -z=h^auKuywRGtukKnJ$*n7;IMP4@+1Qr9oTDs??O@j$v0-!jlu$T*6)~Est_~mTB8O -z`4$dlP`QlGRntrQYT^T;El$f!DoT&jUyy2hZ`pC6zrqLUz%4xv_l$?0P|1vyy#oXy -z-9+a~XE*wGAUdT?PE}pt!mdCd&(GJsrb -z-B8dWzzUSCXLF* -z_{9D3IYaaYEFJ*utwmDuE9vS+KU=g#H$5s^xq*JZqpXswG5=Ek7}8Wi{cW3&Zw3^y -zgnX`*6N(be_9n|Pm-5C=3HIL>nH$?SIb_!VA^#d31$x}K$SS)IDi&k>vc>&}zO6)4 -zP$kXnHrC$9oDcVy)mn4RKfOqvWn2e0xZ@1d{p}T<5*o4~xVG{j1-ghrdS(e4s#9fc -z`c3yZ=d7R$mlq -zc>^)GvDiL^ppGCUVh#S-DscLV$S2ZcDx3tg1I*{A>%VBzwI(eKu1@mOXyAMP11hX1 -zcYqBAyoCLV1}5RLGDw_;{FJnRGoscMLx31804FTkv$wW>gxU~J6Kl0x(y2sxGWf7= -z4H5yb^kQY^EnPxbw8)yG)|Nt$=f<2?_prnLDevDd -z5Wbd&=q|!f5fj%*hmb8f0iT^Px(d%g0#^a25T8n6qD6ZA&Hm~U2ap%q@*KA-CRapt -zOy5E^us>dQMqFnsm*=(`((&#Ss~~sh+W+f#7-~-YdQkixAqBi -zK)tvg%ALO1_J5HCG3={%7}u=9Tn6tGmZ!AY;(@*S!y!prD*$l;hn6_bJ>(s%5UW4K -zccyFgD;P#MWBYm=h-XND_+jEb*F7|0f@t~YeNbm2M;i%>YxhTGf=vOE6kD18`UD0~ -zWfX28+!UulY59Yja_+z>I{8DSy2a-YNsUYXFB|yUfIhMml48zoaS!^VfE$=RIzpPr -zje#Sx&L>zW2P)?vl3m3{NhRHfl6KnyfT=1LZ``!Qz$+NUQ -zwKn%JNAu5TkdQE>-ZEk|hm~N8JeKgxfOhwr|9pzs$PB6eJ-eb;zqMMEqSLx>aad20 -zfH^#mt#*HS_^f6GqL`$Fbm=9UPt>j{aK!w#_8v}0C3D{mBdHw^B1%I=L`?pE1xSWm -zSJs{KL`Js3cuN#4k@u+*G#JswA2)*XtyKttSU3RsQ7sHLgq%^ss)$v<^|!hy|5;N6!t|qS-ZDCEaKT)*29J%_*>)_e4t#IUZU|`pF68rj-LH7wrVZY^D_!%3^8s -zhs>E95WyQ{fCLZkjHaAqS6p|G@v}Yp)BW|Up)nU)SL6Gfg7Q%lBXy9<5}(nMTDxHL -zXo~%?Vpem?)AJq0+q+kxX}>ja-1(Fg!Pb6_g{1V7mHl%7zu>XDiLviH+jO7V``z)M -zZ+2=%o(yYrzI{65t7&@YI+yL+lIs!bJjoYxUlq24C+6oP*&3`X_?Cz6{^_w~V++8d -zfql(oLD?K2wRtK*Fuq(5`@{VV!C9hV3&e)ac>7@WZU2}+DWM5*SU$LS72y7?zoSQ& -zVV-B~Y(<|1-7epr&5-=0u}j_|!1*3y -zXP}*hrM+&+-JSf?e=C|qKhJ1iad&xVODKx<`45^L`;SkrfDcI3!AmXtVQ15S>UaBo -z`CJbxR^HfqRH#PCweNOFWJe0kKeEl|I(cf;)BP)mX -z{=PEqfum#Y^@2=HM9Sf2vrtx@?fnBlAmE|91#jnG+^12BUrhcvwh%j|g7lTX_LnPY -z(%3_Mjg-HMX45>3n&QbgenFFY^3Iq9=oNNmg*Goe7@E|!(5!O$yqAz6r2ckTj$7Y8Zc_*}d^!SrhI>buU| -zK-bKS0brx%f*9I6Esa6XzJ~-Oz&alAxfVqzC#mzXOL0VhfwQOsh^@cmf=#W*ASG!_ -z>FN%2Te>fQ`e+MKo)1RCL-7RfL&5R*leNTe&zF$Yrex{sP_x2XB~Ub;N{O9&LNI^T -zN+K7t75T=>B4&!Q=7id3HsZ`va#fngSeoC>Wj8P$K1~H7-37k@lr^qojy{toRkqtM -z&s&VEV9?r9KV&b!V_h1?o{hLO^1=TIdcePrRT}ZAlkFILfEE_Df*Nv?<`=)d^1vjs -zorO(tkEQ5XcG>l`&KDjoO$bs>Xdrd{Z%RDR1$ -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 -z5P_!u=&fc1oY%-}$+spau$+ktd0XM$=}stWaV -z>o$;6@)5qEWP(Lz02KY+{FbM1z)upqR3X;a=<(^lAC(cjGaGc$=NO)DKoy0dnhY4h -zH5bK&vMoE2tgFiGRk$cIu)aWS5lC%9FaYxCrJ8z&8M1GZzUUpJ;DOv-%akz5kNd`j -z?~M}Qfe#JF#j)tebh^K3M1hY(Et%vAWpcow7vEo=-9Wxr66Ha>!t53{nI!`3=BNha -z@lC=2x-_&@WlwQ8H35M-$hZ6inYzNGaSq-{u}cRi?mh -zCaVA#z>da#WvxH6%F0bk?aslQ;mVs(a+kFH`3smp3(K6hC^boQ36i|LrjI1=28M7d -zyy3Ng2+G#Ao_RXZB5(%|!bqz+zvXKciN{H~~O -zUHUU6VTu<*3H)u7leG>Z{1Dz*-Wz#rl~`zLY&!RpWUqC)-@!H_ST5BFamsNcww<>q -z>^oE#s`nBVi%A8JHi+Kzl%;78sTxlR*hL(AjNTu=+0^AJ^^2QE-WIvCgeHAZdN}O3 -z!v9#h%BZNeFbdM$(%n+h-QduzfYJ>jE!_<&LkuM$T~9ztQjl(tl9cXFX?S;L{KZ-` -z!#(Go{9^C@6&=x6EsuYXJNZebE0ET^3Lz9RMkS>OMMsw6G|DuUsS^RQ*eaZ`v! -z|MMZ!4Rj2zPs#|?Lb#Uz|8^tUeQ70bc>5C;TXMxx{41e@s!~qKO{(<_NvmN0cwnmA -zP@*g;sRG{7Xh=fkU5Esa0M63zE@b=QWWs1&+U56Xa8;k&IrT(bIsIlY90bwZT;DX9 -z9mCAQt-Za}Jpm+#fzh9uo{kI|820PQ*Z+EHKmyO~EZC>3rX1U3DUXT@vAO}%1T|O- -zNPvwYd0Bz5HJz;&MVcaeYm_aQ*wy_Vej_=dJ%k_y;p(4vK{UqpHQ1>~1aJ+}!+D8x -z?VNGo;2NC`C-s=a6BLwWF0{+e>IX`O(UKv^jAG14rOw?`^QHh_e-N;Jo&x?o2Io(5 -zxpp22|Hh?_mrU>N0=WD>r_eDHX@Re-;PbP{PT;-LF+knH+)K!>Bc>r-*Y~ouJ)1!s -zfu};W>ki-ye-@xK0qKy@j{RI#c)Qs`A^Og%Z|UO7iMg3rMW79m4eyi!4f&QBIe8yg -z=|{F0$pXmQWPg5bhw_CJY_pyy##AZ2{S#4It3YxQ2B^eC4ayR|PoI@blEri4Wo0l} -z1+Jf7*>Fu$6SVQ0Z}B$Fe&58vmr7l=UaKllacY*rr~tq~o} -zg(~ggudh5fWIZ|rfL5QMPthBVG}53>D32v0Lq1RYXzTz$17K>cg{KQXJ@21uHnBZx -z?FR!`2;f6HOH>#8(bRXzVvIg%t_)o6iPpt-OiK08K|I&Klt(19{NwJX# -zF?GXrKB`Lh^zT|At`@jM^Sy-;xaAsr#;uwMGm}I*f5k<1yeM#PwthCb(rQK3?+NMQ -zQ^KrXwNs26f+I8?td)aA-;?Xt3>`ijcvq@9&| -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 -zAMfK5z4K>&4yHBLJV+_d1b@GGkcfsi2N -zNXq)mA0V+9u95m!-SuWplDiv86aUaJjlg8|>UXR!xD4lWzNMzF&3!t0&aM2anw6fQ -zmj4Jt-w#72(dE`eWWvjw=ARfq))b0tOZ)~J@o8)_WWcLTtTDM -zZbb?#49L+apE+#V#wD^@p#E9ekHL8p;#z!m&==xbqlaWkVZX-Hi`W4k^LK|gB{+4~ -zXKuv@wbgcD1PG>zOYS}iS)_4ZAUI~)Pg>VJFjc-kwJZ4T4kR;jWKJu|w!>!b>}v-N -zPl(c}Mkb-!&TI^d((+^W#m$1%2mFCi^!uF3`8p!}z_CaQ38I?S30I152*a8T3m;NX -z`;rfEKMMLh-0a?gB7^Q^=JL%t?9E)uRTVy<_kZCsbe#rJJTUOX%EoU -zApdnn@z*0+F5yQw!>86?P`Uwddq%9Sst)b{>P}p*8vRdJBjA;aX|ws&;lB;wkm!SN -zeE+>jOjkHufU-qrDAp`k;G4-a-1O5KEAea@AZqskU&EC&sL@JL)sXi&&cHnMsnF>94de>D@M%h(mWPlc>%x25c5XQWA4P21 -zD_8n!Y90^LafI`K7>l$<5)A#T_X;vK;(u`KR@h(3Iq0>$`v~rA`_$Ap|GD6okJSm< -z(&7b>`v;7F)ge7L=jjLE!UGXv=8jw|cdf=fa{fABMd*nF9J{r%an=H)Y?b329VOd+ -zce&4E585}~Eum-CI|_V5b&>bH7J8h$p`AS~>Ys7dG#$tb!bZa7c85N-%EJmdI5pD3&4g>c91n=9E@M@h@9-_EDKPC -z9NT#Q87$_0@m#~|waT#M-?UL;ilo;pE9A!5b>2nJ1X5p~PciujqErj~4hkUmn}r-p -z!EGS=bDQsKEIxWXO9?p}o1MjGNczM9Z+s#`)K(CbEocxjT_wuZ%U;0D;*ikxalYOj24so9~&{WduI4kT?$m~KS>wL^5ph~EYi=Hg(=H#`+% -zO5g|~(!tJC{;OgVluE8_sI~IJB;ntd(`)CjY;O((V~AXE#Nvo}n&=H8&z3B`TWEpd -z06I{5dauAQt%)1+=`jkcQ*|&cs7QdUGoEQ`507$Y&R7CyT-vr -zKwYzTXQYv_@~a@vB{QArT^dWM4umq&lM3G#aT#47aP|4yja5?V8=FP#-)vsDF}S9< -zU=cQ2shl5UytQoF__s?S!+wP;1qp>!R|BQ4>py&>Exh%FN{p+}0g?Sm{*2CoLQxo@Z%f!LCkM -zj2-+JTZe`&;oQq2s`Y0n%~{s|X7)ZXgHjQx1LrHZGxyOAe?#-3uTJ)^&1wZGl2j_G -z`13DeKePYpa_`*WTkVOQ#aOfAu1oQs;>yc{81<5cTocv%Sp{dwfB-TbZvUTyJ<@EqaWq&rKz&aUW}}$&S=90okKH{?o{l -z0bj7uau|CmJnt1yIUzz-Ot|flAvuJN{1q-=|K6V%U{S*^5;cBalr(j-x%^G;j{6SR -zkLL=BhiH9F=}|n2KLQNL_8m5_PI;8d!Gl1`0uMyOMbu^REY}UtX-V6xAdtn -zWQ{Z22O1`Y$1-0zm0vasB}nc91_|(!$>1wl>*n~mzRKRttl#X7bMsT!r&uV0rVmqM -zAb4U`gUwmb0gJtY_34XjdYSVO$KJpsuu@{~ejnHlnGAKr6{AnYOC5e;#!EN#sU?vN -z*-)*oFVGKJuA$`Nqh7XS47rEybx9_B7j$Yt{@v7}&)pL6_ri|lY(9G8j9W#Kf7mxr -z^>r2y@EOg$83QE9V7zza8fw0K?L#{?N$#Dv>iGyxbq}Ng>Q5xNoT)7u(;71HA(2b( -z-UK7ILQuV1}^vEPxsuilp;xe%&n -zS{5m_Aag`w6_8k)<9VmAH8$B8NyBpH@!y7Om28nH&%Y^54?%!tfQ-(_BX-t5uEd0iZ_msUDs;>$yGb(yXxemK -zw^>W(UBqd?=APTDHYxJ8UgkH1#){OGzDzUT9# -z)U}hm&@#eCGB64c5i7Tbs&XJ|Z4Fwf=O#=T%WU=2QpfO!t1}^9MtsFC-eWg((hCq* -zYDgv$Ks8+zPG?{6=l;;0>qGa^Sg^O>GNYhaumPVL)^Ig=a@AIwwO{3pw<3*@uAa95 -za5z?HfOm2Ti@TE8$N3MoPQpEujm6CEWghxd*DwN5%lku$bF+jdDfrc+qH9HWNY?oh -zDs|}ugo%0?%V#>Wm|Bj9XX>ekf{G&_22GB+g=Ty0x`B*MHg}>O9+6sx -zxD#Bhm5$E$(^qqF>Ks0qR_E0-?G)bEXTSP$VH5aXq8q^NU8-$(cTfs%&x@VC8cZBK -z#Q-y`4XsLPEQ$zOORg2*0QT1hEF5+^8m(4ZmrK+~N_jvk3MhSXz&nxQRqLKFz%ojx -z*1db2uSG-H5mk4!lucQ7y=@E404lx*t=LAAdlw9TAe-yIb7TF0hBFS{SVuW6>IIV8 -z$9A=V$Ud#)Yhu*!p3}UMdNzpW4^IDGQ^^|u@3)+;*N}NmgIXX_v2xm{eIi@1D3Hw$c>U)Yi?Oh-i2;AA_-ovWnWrkBGK3~mh8bzv-$XCt -zb{`?~&@pZxGU{)|{UC3YWsG2;e*42`{rl*{e$SLk -z0o8}@hY)As3HTRIZ12KJYF%Y2ynDt&+g!Fu_{KxFbSk!t7+d0zv0n=pHL%8-D~}q}UE*Gds#T>A -zs8{w9HQFwVL{(WhF;L`ITtvnMY@B@PNt4`xwbnzH)MK6Oh8OfmxqR>&Na@3B`_ho?{3roJ?Nh -zM|{ir$WG18?Ue{qvjLs}-t+m5#a7xK$-5SG!`3e{*wO&Gxrd%0K=5cm_2W>iX`YtE -z4RLTvgt})Ug_rWcw!Ew(fLs9nx2j4c2hwNFcG|=Lo^+j$S=15rsr7jRXcmakGO@-5l5#k>QAW% -z=N@&O(XK=2$^|Eu*EX=m65h4gq_V|kcyUwK9+aHO9bQ)fZiHa -zua1A$kcjP3Q1M<_8^Rz89IJfN73KM2eq{=wM -zC2p#i=tSOseak}k6m}M4tf;60Za&xf}Oiy#sR7} -zh)4TWKOGSNe4?ZxBcm0;pBUeXVWg$t&j(*LVU-}4sGGh_w@t(E9VE+Y^dhdgv~jGk -z2Fmnk3sCYSRlPL&=Lz#in_G?X;bYela6ZM4k@S&pu@IAeoir4<#u7^|dU``=0R0VM -zKP7f@`5ehUVZFK0seD9K$t=06Qf2k{SAziEX8l86~ -z4X9&Lq4y)ItOWB=`eiBr906{FipFB2kEAJaBL1%wiCwC5iUH^bu-_?vT!$W$i{uwE -zbv-GO$OHvYuy2~ibIB&B{CI+RuwKQ53`Mf!A)W|DEitu0g0#vO0^Za@MJs?cesjZ~ -zyJi0KEGkr|Yysz*O3^Uo$0YljT6o)2)1|I_pu=1g_(#|I_YYwSxAp%vv>>3vb>;hR -zTRe}WG@o|$2Hua|73CoPJoZ50FQ!l}hSE -z1sj0%5qA1w*UYB*$Ga8_m912$rvh{W?UbgHy7OJeGUN*kM}r3 -zZ(xR!5h1>x{RJlRlYua%*;yJT=Zi7o=}Op&ZBl)!{;}-oYqoMMZT~Hl!#%BC-7_KW~!fep%a -z5dZa#{WR=&F2QlMPe4}S{&YNcsVLFNnSNkkW&)C!^M@b4$K*xl<&UzQP3JlT(w$0y -z@RADvwB`0M>a{tK{(n?e#5kRmC*mVG4rZYkU=QL5ckIVnCDa1!SPdmp`0sXL}7H-0Yb|Nf*|aVUJJQnUk6 -zX_hZL!NCgtS6PT-HOa%0*Eh~?ngEIb*tULEh=b2_M(9Y;tTMHYw>`SsM<<+Pao}G< -zKAy;WI~y|cP^*~Ogjq)2@J@Dse842@fsmW(CmJN}T+d%776vvyg2OARM!PiT}wA`(nM}%o=+Rkg#?h4af!9aS;Fx_g4@0xya -zF6GrMdZK}tvsl-S|M`|l!m+UmwC+G2VlEl}_0J$)Vq+B{a4!){_6qTCxK$SgO{#EzLoy=p6uc0Pg(Djf{?1RaZ%xALrab71PeJVImeDWDYk~ -zxsZM{>&Vmr`(e1ds8M1*y7OMG_A&}&*+*${VvSmo_AI(dzvI;s={o?c0fbF`r}>Qn -z4*;&iha94EHcmGkTXWJ$Twd-WNW3g$0C2y1|^)JwPw(KNRh@96B*T -zJ&iV?xvSwVtl$Xy1Rr;1BFz!o-}k~x&%7Y%mCdbw`;}1Xd^;I`vrkd+1+7f4*>y}w -z8*#YQU?C^qZJ0Ckvx5dUv&^>;5|Xc9O&|0#g_U$qhdyhD*(YA-o-F;F3!{^+{y&#> -z8$M=eSgp!$;-Q*_&H&iF2#~BIALVCuk$npbce~uU(U{J#+bsU1(x*4&8vRlLSnE9t -z;)rO2rs$n*Xv!#+ExnjD?bU4w&V9b^z{z%wc=^&`Q2eQ0UO -zAA;g@M5^@|YG=Fi=XKF3!s8mXwKEOUuj>z?Gc>T=PJ-KJtSpVG+2SuGNu20(qd?xT -zvn>I?0sD5svWJ}P;>j8JdTRXJT;tyeK64iUQ>JHl@Z6?7pSvwzSfhVK@F5`R{sG!# -z(h=AL#P}>F)1G}EW$;k`*`O*e8d^N_T1(}eRt>6xVy2G4X8)w9;pV!T>u>O{;2o6> -zCtIYqcWgH`KrX7yugFq-AS2k?xE)KfQs@{W&Z$>*Jo)*a0(^)G9s#z)Ykc#=Qt8Dh -zIVuPGt@LjxQg@~*llxK7LL_}81j%R~50(ypju~nsAq%?7i5G@^(g{_!bame}dnZZuMF?t)Wvh^7_(gj7jk$IkrN>xQV1IJS^q?v;)+jP<%?AOZ#Xd!ueLqgJ -z56d0P=D8vm>db!ynwDHn$f71WD@ZvQ4DlVn`DNyM^q{i~`6v_t$ -z?)4apMOz^eef0ca>WX*`cJ{dG7B|V2(y&KDKtZeoi=oZ=Lf>xuLFs*p4Ie$5XX#XvR@|BVB~u7S2G`x~r>o^U}o&79w5#y{x8+D_*Ljd3?-hqWCbk -z^UX56`Ku(i;m_I~sBoj5j7LeW=l$*k5SoZPixA({XHpK+e7%Mru-~Gk_8bLokj*2J -zt)-sqvWGg^*pqkiFx{c~-O&BT>2}ltX)Hp)nW5yK;+97F!2R~H13;H0|sW# -zhVrAyj{khHVCLvjX(8WK{%MK>R2V>>z}VuDUVY${FX9`hRZLA*`kI-@9}3ic0Rkl& -zHYOHDgph3dm(Rj@47f4S8?=_(a&_37$sE=;lUptuhbM+mr@WP?d{k^)_l-IK;F?Aa -zZqWclICA`@<7~aG6EEf-D7a!G*yZ9YP)=z`vN2BsQc94_zLM~fZy9oi7%a5_D$u|nxyVP`)KDcd -zEbLh+uM4M6O%mI# -z&ixA4qEP{K43>O -zeOIE79jz)XqJkZG8dEvOXk-%W@<@suT>%#;7@4+A5cl1Zv^O=KjRT`p@rO@EK4_2C -zy*gwvsz?@3rl^;Iugc5s7fct#*6yl8V7`e|l*XvRf~Q~NW%gg!kTnAe0Knn?#%XbU -zgZjb=Gm@Bc5gk#$dK3Bu)LK>ZNXs4z*R%)a61_J-jU1c-(Mex)vSl)~owvom+7^SM -zxtvu$a@+fjkXoGRm2?{Pu6<_5-M2XQmQq{iePohzH -zxKC>UAYyleh7(N@QH>o(`qDt`P&y_ZcpmWPb@EnouAq?VCX#D0fzisDg;Ulupngmf -zytDH=ZIl&#j>}KzzC7Ip_fGzVgy_mp4U;Q>Vlw=vT)^mWlj+Qvb*JGWH#L{m32yvi -z|5H?qe{JE(NEXbbvwvd~R5x0fU~Xju9ybW05$8`Irp^0>2eKYn?heWI1U10bevn0yTN+dCHV637na#kN=dEdL1+9RJ -ziVQwS(eXB*dg}UQV{JqHGK2etEC;Fl!LGs)1U)J~{}-org3DgU?kRuFH$b!>@NIO8 -zkS}{_r&~0dp3KJ#hCHuSYjKfzzJ%rlqsfL73nH8q$Vbz&kS@GwlQVz)%P7@%XKgvC -zp;!|G9hO~O#d$B%AA}(J&g>Ij`twCgjI+>PH#VHFw0?(Tu#kPnFgKWAy!upCbN8y9 -zt>EXbyecvE?3;i~IF%fN`eIWJbu#^F9A@^9Z&)_k#TfKQ5_+VheZH8gXsT(eYf#WC -zP|IcI^m88>%}p3%vvZuwh9pJ|r)d`20}nA4v>5=O5$WXTixqJhjt^Aa{Zd^E$(x#!%p5rtvHlgT)v;+Uz)ajakH&(An}Mt~E4A~={wVaBzmQ)zC6 -z+02~aYwn<(MnX2HJn#6E+E6{@p7&p28r6XNO{j<@YG<)nv-HTdcfAz2qG$Ac(1-lA -z>qBicA0ImU5NOkW)xC!2TtXGVd{}+DH2iTtKJY5dsy@4UiG&i^RKU$OypY6EMzL2{ -z)7aT-YI6qPX{PG!G89zTC1>Yd&DbYY=S&z}%_I14rElO&=iOHH#ml*kWoCOMg00orP3CxW9AxD~85ElO -zVQZYlPB!b#0T}7kr~JyJSvnq5?f(Q4^@+Se -zqvcgKOSI`saiu6#W*9!7%_!K3*wwP;+S>3G;V;#0e7`pDN}W3t|Jj|GVax9F4>oV# -zJexchFAU-+gp7wxZ`n%=_q!hbLqN5F<-mMyw^!^X3@d!!7U@EteVK@Z -zKVbnUfRsD+Zu>|s0myv;8jNq#gx4pp2Eo#`)I5ZO+3Eck4t7Dcp3qb>Ae-fPsMXoX -zZfAUG_paqxhu+k$t-vCpAba_PCLhWKzuj7z=Wh0C!a^n%BU!g6tTb&mr7ZpEnHgQ7 -zu!rZd^lPQi(q|(d`l=+hPy2O^-A5X0hOm;|gyu4$EH>#mev}e`=Iw!6kcMImVE=t- -z;fV~;<2zdF5F1A$&^_Go!nC!Ky7FqoIka>sH5x5 -zPo&ncvty~oJ)XpEEMdi5T8k}>p=A7)XPnJH;d{qHQ)gWCLaF%Ot@j*E1dM%38$-oC -zcE`7ynBu8+@ij@102N?)|MuQku}kT>A0yphMP%;qJpVEq7Y3lQ)P;{SEaVGYuD?L) -z(c}T5IJ1q#zK`Sb$_(#!yBtBG6iw -zn<_uQ10tT8d4wEjhaIFZ%ndZH?@B;Xja5caTS-YnZ_8pM8` -z_Bg+F7G>@%!2vL>PNPWA<+8ikkg1z~#S8YUNPWJ1b)IctyIT9+W2uMxd&h=3Ao|Od -z;YC{HD{TIAZ~1U<4VH2W?{z=+{!ti-#@X_9YYMB?mRzVH>x3iKoTHBzIo$jW5Z08! -zR^x(~EtnIa+oc}1KZXR8-PM@{Au$UYv9S4MH$zJr0OR16=%|_hUm#QecxBL_2p;S+ -zLQK(dx{%E&TId4HsP+N>OuriwKL1f5J@DQ7vKwjz0X_tC+fV*a*>&FpN#41}kG5hr -zpWca6oni5hNbH^Y$#w5RvzR~wWepx}k$DNh=UmoV5sRKQsS|Oy^qJ{*-of}=--g=& -z*#KCjSrj26#_3eTwch2!48k>lgbI){iL-9wV=D5ZMy+E-3w7gI+w+-?P(QBh=cAoN -z`RIV%k6R^AzK=~gl7{gdPuO0TW3OZAAl$TZ#hedoaOfg3)txzE9-i@2pl=Ju*(i8= -zq<9`^jX-0vZOKk6?vPr}Um}D&pR42*V6V2wbU!QQPDA}{>y -zZhWa1j1|UIE2AOKX?_-?)H-4^MY(>&X9ocD7r2)wR*>)|qx1Afy8>Aj9a5vR>clDG -zoZxzvxAyIQ1AX$ET6|Fg2q@#vQuwZbK?Q=gsO2B_%T@dCBjnB6Cx}CzYS7~aW?f!u -zo$7^INE4Ao(Mt)}!E?r4Ef0OAP18OX9aEu4Pm5HQc+XC~-ck%F6b*15j#pRkDCc{JKyx+5jaZuc4EymI2(Z1e-mJ|n2 -z#54<4GvA79OmOd1#Mx8|_{^8z!s?L&uQ#dlZMyXN++~+qpNM**g~#-XD?`iit->KJ -zWX*t~dp;YXp-Rp^ZtG-%mq0zbQ8$o$Jap2lj2DEisbdOcUOjQ5oxQIFzxIg6?idFu -zkQ38NcSBRVK=jENYiiXHX|Z>bqhq>8PcdBjbs0li!1*~8N-!Plz4ZN|X5xEn-Uk_t|H*=xpnPv*%(mtgLSWl?0);{(`YC5XA9;<+un945-)CYEoDdI%)d<;Wg0+0$Y9 -z40K;i(e6HLSp?vM7>w&a(=WMm=^R|jZP?N;L9|JE^-&#G79OzJnx(*a&F*L8`x%LS -zowQiOcQ;uo|OhM(*)rpse6 -zPfDRNe}TIiZ1qfkR!v-9?28al-Z}9?mOi4NDj~kPBUGp!uuUX2L<80IQ -zQd8rv@(nD~K4-w2dIOXxYPgHMT+d{&WHjm-BQu`n12*=}7a*BruqGF%JPB -z$6^hm*)sIIxCu~TJvZXqpHWLgy8h)&0`n`i%p+ev`}5N$A)t&Ylk#q1x*$ouG$5uW -z{{@gRgkG#C>6Zn<{&_82E2Kag62@7wWg|@7zj#hhY)lpK<8wggF_RLJ{QxpDcQ3z7 -z9LzSC{yEmu#O#5GAP}|#T!9b-h-%SWQNye9?=J|^dUh5*` -z*yW`Z=%Xi7B2C&r<=*7CWSa@R3$Wl)XGp&k*z$kfoKp0CB{AX7APhSh=+xIecjTJkw_m -z=`6_CSLT0X?gad@@|9czUU9}J@L46+{R^H)by?tXWerMT8)+wTs|Vp3jy2zDJzo7c -zEC3j3fMj^FsMI1!?c%jB;>e+D=xH(N7Zn8_E=ria*9|dRDUi5n4~C+ijEfuC -z2y}rPvS%fvE*dr+O{NOU${mUI%sUZS#gLcBS{tF~0RZ)XJ?rut9J}qmBI52LIahw) -z;ircg!Zj6Pz7I?uy0ea&0lo*+eBAYU -zKg(BZ%_rz&Pf+}HH8^`Iq4}SsZI3AU$GIt**9TZQn2^6Q{z=~1)F1`j)#2+_UP3H* -zUUU`GwU+blAV(ULTykZ)@L^81XRLooc>~wILN2JIrQti&x~M=TC{n0?+ONPwfL0%> -z@R7YeyDc#zy|Tb9%Cu15%A2K$8@4VD#GcJ@7g!gb{^8EkJkzqAe3H4PHi%w&Q5B9z#T9zwbee}ERNpTuR%}zWOBqc)7K2p_%^kxyw4v# -zK*2Ep@ho~d$BavLwIOrn@NUU%4V%i(dp$vpdF^~~Ru~u-AOQ8y_vz<7Z-PNEKPHG^ -zwQj`#2-10IPSS>3RTR#AgEw?_L(=}ITpyX6*foo^NBc(n@l@2tf{iZ;b!ibEODfPu -zs9g1VW>K8Uv-`x9NADBTTpXZ%-Y`Y<5dNNeTM`=*WMJgb@*&XipCtC79DIn2ttY^!@b+>{Crp3ta=h!W&HDX!PND~u)Tq>K0Iqn?c2GvA -zsSp%vB75RntlQB-_mR9IfOSW_h;@*p?N(~7Wgif&LJBp?)pvMf^XaWD!A>_vI4c&& -z=u@D?qZJB3t{Xz{!z>QRp*@z*oC7}qamD&w1!oTxZtmJ$2zI*Q;?rDzQCL;4lYLoc -zS>$5LR19)kRJ!H2ModIiAGf?XRs7|y0IvB>ar*ZO3c`(x8Trubno;ye>_kmUeX3}g -zt2T(5zt6jpc7A0dhRk*181DXBaXOJN92%)FT<%;BP;HmHf~MSM_ov=M3tu4$AAm5Nbp$)mwfLmtzwo+w2g&54ZgM1aJBkm8}EnUcQl8dD0D -z9QD8!mpCO$fmSD~MhKn1cTwSWoW`8i{QA#$ya|6TWm7iX9K@O#ZijSctoQvQK}6hb -zc|zyT*)a!P!C6=XmplqT2kj5rP}UX?y%ud5KysQ|gI&Fmxq#q69^zOdP{enC+I^$q -z>Y_RJ)5FCCUFmclj$p4^-ASxHXn0zQYHQaz>-JsI`o%a@pNu&GER+E7>y%ZQr_$YU -zA91|N`}`11Svg1f&VU>j22YNG7#B&v^`|T47D@#i+X*9HPZkk6$0S^hkMmdO75=vPAyG7>T*MGJ7d%1 -z08l;!B6w^CftTudirLp_X{8T7fTA!kfJl2!JN!`-srvZpoZkM!N;G=YbGTfn=+c@# -z`4j^!_>KC>v8ukVbkx9bzp&^R#+2GJNf+6te_3Ew@$5A!?lIO$hGMov$M8EdP{IXw -zqr*hzeV8w`|M2cmLD-g1N=Jc64ntyIGe;WrdWpQ&%5&2it<-;-26B{;0z!Pu_cS^} -zJo(fptu805Mgeh<^?4-Yq`Z4lvcGXT{B+YDQ}DuL>_=~na-2Ou(da5AnpFXu=%;`Hc4t7Cwut|lsjTVvB5;qpS9_L~&C_Fd-dMK-Ln%`ii9XIQt%caMwsH~wh -zh?t*jp%}W)8aV->$wxOUrxWI_16bcc+q!gFW{W|WfsVMD5AD)xrnUEV1YYhnx~ft7 -zGr7iiQuzD35}vN$eg#3uTU9~p6~DyV3_s%~aVps!f`@LH@fD7LDuUU^&6m7id?O8b -zVjvXK410Vxy^P5oXbCRoz*t=}id_qD_{uGCz6$O01}Ufq$NK0=ovda>Kkxlis$gF@ -zDD>kT*}eVmNqRdV%f9o$ndK4NVQxdorLS4$qLkp7z-yzHU~U)M`uq&4ssL~alFacu -z-2h&rm*jjAcp0I$mnC*jjL5ZWJaC+n9RX8Jf-(iRXI8mfNib>#3PvjR@I+1i%s9Mn -z|JV$xFvQBnl#1m}*S%r-QBlRR*6-vrgv@kwI_c9z^QKKYN#7(o%VPmvge^;D{q@x@ -z;~F!qnMh_H<|;Sr5_-rR(Kyj^yNO^wz2W{P+I8C2%{boX|5*8Cpm!E%0016&kJs_K -zF{I0Lj=aH(!l$rNncfv9{fhWHqf*Af{>NQN -z6DmtT;<=e1240(N#FTOndM+{~dqu8T5Ss`#sC9 -z@rz3SRRen?UDF1nW2op5US;0@e$>@p^|;a@vmJY_&DH40@?C>pyPMRF@)H+WK_Sj~ -z-7gE_dnEdi#|H-|Ei^4NB5u#{utZqXhA|q(Or}3P$7O>{y} -zFjoQjL4qhX!~*LY=d%d;!V -zlq@Olu~MlpIw2@{&j0JFRLsuzqJO2%OVcrN4e9P{YJxUQJjV*nPGx$Ak0ywj^kbB> -z#qgstsi&sPEe!;!_YRbpR+F&8IiCHFF+>%T^VJ>p`CcN1_?ug}trnLm#T5AjiE6Mf~vg -z0iA^mvw4;SBNk{I@gR5+sa*UEMuZ?q+z~4eaR_Uaw3AW@S=_{R8X&OW-mh|jFD7q+ -z^wMsuLbXOM;prJI!TL+{XC``4dP>eRxR8#&J5_+8095HhQ>iPr+hffGo(TOEE&CE# -zrL@3LHyDe6<9$cLJ@Jg!x9K55@BGM5D0vSUoVEr=1eT&X-h0V_|5#dUelgXxer+;>Eo6pvLumUzKmP_$D)kY+&xi3J -zbOe1t;>wthRvON3r*==?3m4Sgq9?YaGG(V`(gD8$l6ANS!J`GiUulm{ACh{V&glk!Qi?e9C_B-RMY>Hnu-X4X@9JF5u#P1^Jb*2ha&l2j7 -zGX9zl^nCn(&#+14fIYPUa5o6;?0~stBeZIzV+I85rzDL9UH#Ua-t`ulNC|)0*Ua0- -z+Buki1l6`5^Baya910%Xw^YCUtnlm7+k4{fYTW_E(BS(Z0|=2d;$}=jD;Y3+)KKVs -z5=-^3EoW&IFEYEdA2*_ov8M0_y{)}AgP##K2?0~gQ2{=e33PY4DUMp>{~Re5==1gr -zg2FW8`x(g*>2B~LJUHI4`6_d{G8tY6iqu~jXd`>mq%@uF(UV>e!}28qKTap}vTZX- -zndK!SM$v0hj7~VbfH(ovz~~XN9b@F_MnY&CQyfL!5^yXx<-cMoPClTVO&r%Gc)LB4 -zS(ymHAAT*nQ*Xm13n&p-5*Sck)30yyXuk|{8+&qi7+{)RVZsrtYm)!gD5xIKa6OTV -ze$dnKiDKPSxwlA;<>pNtrf=}0DK&0BRo(F)kq7d9QU_il2gfT8?cPj9B8Hei0A(1$ -zB^BBDbqBeO>7i2Rp_&zj -zrMi&@`E8hFiRo(YJ6W5#T#B}dU^(m|?kx{5Vh%n#p219l%C&DBCed7iB1s3~2Rn^Z1puaYme8DQQ{6GSetYHDI= -zE|d7RAtoA>j7Xu7(3`jIm=1=|g>*N96T59%OU`GWZJ%HsnqAIMd$S`I!juI;7bkCxuQ -zDkMo8xw*uP9j9=9p{#rG1%ZGQ^P90Hz}>j#_qr~BI?*@#F}+a0=oXN$`{R?{L1{O= -zQSUg+<(r|#3)Vyx;8 -zCF8+_lIXOXItK-X`0?hrKO{^)(6S6a2p3yl*o_5GZ7F$Kk%&)UQE-grSWP6HH_`q0 -z>{@$-f%eQM8_3x0wW4CnwhtSSU;XsW&*o)aUe-4j()gZwL$YzvtJ(F*yu9QGh>02UL?FYRe7t{9DY5d7~k#~c&YQ~m*YdzCcJdK -zFv&O$sP9jj_^)q6r -zC)~D+DV~#~E8K{V(O;td6Q`x{B&jY&$~UdI0G?pb#FU}J$`b#Ra_d{43|0Hv}gNLR{V(q5D!Pa5pl4?PK=*b_T0GIBRff -z|7u^Bwp+UJ!F*NEe34B^h2^{j^{3J3hm0;+mU{N+H(`BsB;Z}(4`v{Ijv8)XYS=(3 -zSi;Z<#jqreSQ7!DeG-0#%aO|8<4Z6YRcN10l4T0BzAu*W!J=e{@KeYa>2`bs#(v1b -z2sMnrLK?s_nU*N>6(3Dk!2bOZ@|p1)M`C-GDz+oP@64u6)N?0W$MW3nEvKQdP+ -z`Z`A)da4X^WWv_w99>-h>cQOufgzb^H*y}-$HQN$R-Q?1=3JdNq+D3kps2w>_H7cV -zE$Kf`jD|Y!WLui@F{8{DWovYISag=y)%#^W5F|uSKYRih^1(&Vv%g^`r>RW{`Q0Vu -zG{j-Wdd>7<9R5y4g*`K=i((lLI5Nv~5`J;@ay?YjS>n&QkNA6{1YhC&tWk=N<3|=l -z()Cs>rgSqJ){AQCShpTSb=4_eTd)W4heoJ`D6Z!$do#t#afFRYUFjUhQ`Hd5tpCSL -zqp>_?`ff(jtWYLh&OCH6FD))n2pzFl*Neh~4Zk*fu=IZIt*Ry!1=VeV!8|N;>A<;A -zwK-EY9VmR`7gHnFy}k3A$Z#xa)%mXJO -zetio%kSj>fIQo11viq~vqhwU0VW|8+Y00YY9A -z-M@`7%pUv^kt6}Lm$JSn^49Vih6{<3J7?t7mjtieLtFS%a~bEBH-ITBoSi<-aI1U(P_ -zkp-Ho0VxE1MZ*&s!Bcj(AxPp|GpZo73SsY;YcrKJ!HmJ?5|4qq2F7iEBuQejHEurB^I2g!Jfdd(NF_k5b`R{%ax@ -zG+3u~_v@%2Q$-!>$08b$Di@#KPnf@|AjD@4fGno -zJ=RGj;dULecDp^dAte5Bb94Xm5=Lq+YG8ZSIj!)>b$`n1A{W#c)uk7JqLE_nm7=H0Oy^* -zr(1?ui0@6iv;2PH(|s0Ee+*`Ors&X?Ne;8H%3U}F^uQhc+c4zDaVk1jr9+1TACZu( -z_iIWpR~a)Rc6;8MxwSCty*f0cd^?EFmO;`~EI18H4f_MQ(^&_Fxvfa=k`ZygOb&V8 -z3U(IUSi+_mx3>{XnD6fWl-VIe4lTHB*lPFk(MjU*L%qNayfSL;OEW6HR4e#L2S-FR -zbIxUl0&XzlnJ>DokWpNs48=sf@?m>UdP+&O+0{8impRzAp_KoAbprIlQ&5j=;ATHg -zvzned4S+%HLZUl4lY;6=wZ~rErmz}ft%}J#zv&?6%@?XeT2;~d_-qgOO_H(Z2 -zeL1NZ23bP2`ZSIYZ5EuRX6QHT08LFrVGjw=x!-v7(G`BdbC~ -zyIrz)lg<;oaIT8DJhbza2fx#dD#upyKh85apzNG9w -zC{mtJ>2v%}=|#BX(jLMzZ$rJmtFiDjZOaTiQX8R$rqafsM3sNkhoE=SDHDkV(AQ-*RB4vo3-7ETJh -zi%E+8WsN-W14b+Lesc9?qScUghEGhw|-xck{LsXi?+Eu>15 -zh4ntYecph$f|&~X^?Zalw@x)8e=qdn{_OGqBuYAzd?zff%x6UMxLx^wSW4;t-C}Y< -zp)Z#;2*1*6&!(QAUE2ECZ@^Fj+2(i}IGkC9DD>ZDtDPU(kO+I%+#$|m(Ve0kr9Muh -zxa(&ng_)djg(W2J{Y$nbo+PnWH`z;kH$6jv)3JZrT+IaJqXJ}O_2&+{w`WkO_JkkJ -zSXrN*W!o=OTn0@d{d_Llze*I;scW=Fl&8krQLr#%R7l~sJO@XRBH~T|<8+4CuP9V& -z$hO>)7%j$OxAT}Esx|i`zmmy}THTM*WtZ-toC=N`C;EFqbmi0{**CR9)hSn$C9QQa -z4Z6DcuOBh60#YW{w^?fOLSr0<8(}j<;|}!fJtW&ShxcljtAxHtZO)3^nq0t+jQNH3 -za(~nvnvr^y-G_9wtBhJO`*T}~y^3IQ=s|M=Q*0*QISwY2tnV#dBv=-L3x==^uJWkV9d -zoo_!)JOhS^aXn_G?sA`AhbBx7vWz#*g!)YWYwck%ilJHvXcG1C8FYh?Y77VQ&!EPA -z3bOOPoQU#9)7s5~J`d0&Y^7Y4+;HwXlQl6M;piXC($?W}zsNs0d90{WVuR$C13RfG -zmP&^Wb6GNITcyrU4=~f*bIbYtn%X@7?S~oTjN{IrrICqsbWR@!IipkABu2NSCO#Jc -zKmZj8P98VZPsV&`F>BOy*GH{zFKUZYnd|NPatQhs)%^e(gDeS|V{|_CXsb@)=e3wL6(pT>AugzGB!hzD$8YMEYaY~jA(v#0z=*!q2$-M$fYatVC*SC$;XDG -zXkx@Js+sQJf|-oZw5XatUa)LMRt=!Z@{&1ee#QEZmHxCVE -za8(W8w{XYBHLt~Z>?l9%p<1^TwN7Y|zc`~XsLC>z(T;XWJfCNoP;a?i{o15pghj3Fl<)~lJx>6eMWt9;O9-DYgR)J -z(p8GaWw0&#WiKOR{9zEg1~2P94IZOP -z$71eBLT!qsE48LD&`+RY(MGi6C>LMOO}W7DA2$|dDsJvnNPc$|{Q^X)9ZGVc%6oDO -zkgm0{g>x#IKm_ksgH_kh<>xr7fT-k?ROZ5DD_I)v-sQy7v#x)wl!S|8!w4Cys(OG& -zfHO>!rR`vaC`Pz`7+gAl;)y~vBdW+zBA-DK5<1=b?P=epq)gk-LJ74$dWow&K`&sJ -zE$B=C66Y5`jcbD@L!vZ`tXCiVTYmZ<0$~!ln}cW3ix~lRKFsP|tyj%&Onz?olCB-Rv2|U0}H`&6g)aNmgi9`MZz5Kjmz`s=fqdcBkZ8v4sY| -z(7scOc{*CcWC=jXv^Qb=`M})VfABv5y -z*QC6A8=}9ur&T0L*&lO@27y`J8i+l^a^&FtY!JoF;Yhu7pO_~^v7%x+i`+fP44ZZF -zdTtnws6eT#w{xP!G3v-ck+4ZN>4{l-;+?M7yx)FdA0W&Y^xp@Xgf;Weuxob3AQO8q -z@Zk7&XHc2@om>)*6PM$Ee`4wWYT?>aslqW603!iHyQE%9 -zd-kx2Y-#tEg=kA`{2I@jo?x*!zVAX>t7WrTqOhQ&P&&l4aArg>m+|^NkItD|!5q^i -zHd-iQClh*Jrg)jn*Mk_2TnZL!jQX)G -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 -z-k%4lkt~9sZ)sHHG5wbA -z9G*lLjMktq4subXH>ZnW#Vy^v_NfuRy_=dd=xCGAX-G%;Hz=f^aXxYZMp+L -z1-NhVam!~|o}i)DIx?Q~%!lP|Kb4Gw57s0;k7@j2JVgisU8mnN-b=DImbOTO-fV70 -z1MhbYf-vgOaUstk{v`dsjB)H2L+e*HiuaLYYWEN?@L!M$Yj_&!Gq~0x^oa0sbrDL+ -z2eRaXl_>56TCc3VRJ=$z{yTgeNw76!@!{?Z;cVYGhqP+@!735hFMlx;rLkEtDh~`| -zuu4+MSpRrW*A`;oucF+7w|;CC>wbajkE*HgpozB%4jKqtZdiH!T3nvw+v|@kL=Ja; -zH$9i_8{rfw5dikRYU?^Bsjp9J{Z@Qoq};vC9m6>MuarRXTg5gl5oswDttrjOctt_) -zuf!>we~*;1HQk<_#AL9#_1*vFKBah)AuisMl!g}?!7g?0+C4@#`kVgp`8&QDnL -zeGP|%KHp3Gw#>g@RVB*S<%4-J*$C>_=0%e|U#T=9_VYa&f=)6g-*Hd=s#Mg!vZh#C -z>Q(a+!ynOXCeGf@5HX8kR=Q*P8}0ma-IwV`j|eXUF;6s3(&qAN4i075w^WX5ej6XO -zv)%XZplaKO7_?98rNAa)iy10?rJ7oln4p%&I+@2owTkkkfa~ubx$qPm&><{qq5hKp -zJn}q+mTUR#%Z7c{2FGc$?2WKJ@}bEC7)=3y`TTtNheM52H5c=!p2C?MnY!l^n+J-m -z8X&`6_h%UO(2mYImM1nbPEXNx$9Se4sG}av{A#iok`XT9^uH)eUj+Zn9V0E?w-yW{ -zc_G22W{EK0mZ8TBF(D!F$fU!J+i^(FLHn#f?z|rdxx?NhA3i~~mya4#lDnN*^Cl1p -znLD$S2_qhqRXon6totje3SI^{=b3#+Qlk^yF>~^oZ~G}tbp8{Q_`t+yCgA2nv){-o -zfJ=`A$+{m(mJk1tD`A%_Vg6$oGp^Cj++pG$L#Np+KMIA#qQ~kOrvqkvUvu3J<(c3& -z-_7tiyhJ3@lC0Wouv}oaMV1k3Eett?<@Hq5jJqrXH@82wWgoru_#PG0Fz*02jIh -zQQ+ORNA!}azYXZs)ewhn+hn|m)?i;Wc~O41d6x8eE!;jq#&UWhnP9*G(F6cCAUIN| -z$ijb#M~kfzo4NEN$?$r66RjBXF?L?Zz!hh*0s5hQ1jkK_@Cocni~`f1-9(d(|Au&4 -z%vM(s>3>2oHCE#8loQ0!eT=kDQmVWQL%8AcU!EtF!2i|Juw5`S?eXXVjWKGdW^teW -z)np#c8OV@96Xh50!z$Z~<45%lp7HeY`G93o2DJDFG=Co+#y4fmhp{3po`(p^j+JBV -zojbKPj4l2Q`VUH?4{*fF=UAu#2#Ota%6}Lh{h^K~X6HSy<62>=)XyUt^iXsSM$ -zKkC6Axct;Qo`%II0rfX^E?<}<2Mpk1^QZ-ZV^1VX)1E)oUN@ggutRRzezc5j%>PIf -zP#t%%qXg~?3u{`=f%9NXhRdOyltinHz4SXQh!`U5vxi&&L6A7AT6r+8hF3d%xji1a -z4G)W-8)A`L>PSIy8#9-S3)>woCUh+i9~vc+Jd=|qwLVocqV+c3^h+d7Q`(O&I^7`C -z_Z;P#hGsUuBR@2I5z>;8D|$m7LKqdsU&^u=I@2BsumE>{4E{G{=7D_$Q2{p41A1SG -z;20+9CgZUz6#nz~GNatnr%e9KIV_gOH65^s53En12ltx{iiC~5qKEQa -zHL@U#eu2RJ_;5xkOWwYV=8;+9Z|*!df)Lk{%yh-Qtae4P84tL*53w%u0IUFD2|FgZ -z_t10{Er$QnJ87V}l1hk2mmU?q!L3@@p5EvIUdx!DrFk0rhlM}R1$E`M-U{&m9Rkjj -z)x1lQnk>^nIB4P9I{lv_-gB;u -zYGF^qmuTzs`z-Q8DtSoSPcagY2R_;UeC{r$luK-&t5DKDVj -z!o68R`~<`py#w{gZg~n)fhe+f)HFAsOGtNH$(fXOY3y#k@AZLcZ|5-j*9&BOaaBt_ -zoLv(s2dIbdpS4`Uwjf;cAV1F*Y5h;0<@Ry%N5KyFO+zK2AH54%W5K%LJvLipXXzOe -zZGP!=p7Q(IiP%wcNo2CQwSrclFDj5?Mfp`*-S4_gH6CpY?L4g!(ciV~hR3sv}x0PVsk|So% -zsXK~~^ysMCc*V?&RYbFiv9;b>ZFCQStFAp8tJ)@NLYE~#`Ql0*Z|N|qd?=VpGu$jC -z^EhWQ4~zGln-?FKn2A&b!FVoyQ(7kB;vW}`qYZY+V@eI)wE91ilN2P**%~i^0GE$@ -zhWl?&;RY9NQjKUn7eC)Q3Le>+J{c27fkn<3R0PT -zTq_K|a2l^I!oRxjbn%lYa*Eb<*}+@SgaQ~Q8*$W2#-yLl&R?z{h3k)cdr5AFf -zB_S+?DtiDGcZ9GqUygbz=2cF%FtV_e3&i!#wX8}ExgWG8u!0g09H~=FVb|zgs1|4D -zIAJn#C~209$AaB`M9izok5uWqQnKWfr^X@C;`gyxA4n(Ym#hY|;%;G_B%pJgI$q~a -z3MnQ@;qMn$`j -z!?ECuZ~PfmAsM_{{v(G=Y^x#nMdJd!%7U`CfV?M#p-%Yx0(Qm!g+c^NwzR+~vVw{@aqmUf76>N?CdT|Eryk6=%g -zhWDo_X7nv6#Y0@ev}D+L+n$KZWYG|Dkk9`yxAulDgu0HPjxpydsYx{dmvd)NrV5wf -zwow6oDRkeHRJh)`zl<%WxbbRm7k&g*^iOtt1JC%g8?|h;hK3r=(MjC(LnGX}TRr$G -zlJh0FL&dW275cU9$jVqQvNGQE!s(+b=h7l<-aTHhzKCb+-mQ|5y5{ -z@Ls+H9V$nDmQsg|8Tw7vE)3qA&Ir6o_q09_&h-04G>oS0*6uU@SBzp;4$yMPgkN&5 -zWh&J?>OQORjiV7h4z>2r{gvClH+{xeH$0KL -zqvKeS9Wrkor3!X4FHJs$mqL6b$L*?3{|cm+{K1_-k|INy8@?P`C1E&d;sqN%O(DL= -z0qsa939tQ$PUV8+@KW=alc3S#ACu9r`Yoz_z<1SBpsd|Wb$G;vPD)PWLFKrv`uM6m -zfnCfu_a}G|*lmJqr2I5(AzD?0c(l(GP*^%&N~#u$jJ7N0jMd1oFE6z^CJt|ug5o3i -ztmli(caTA6V)ss$+7{u^^wSI->Z-61tDf|SwKx{7LS$6`d}Emc(_X>~W13k}BB@rg -zE;q#JKAr9w(J`l1Kf~Ajsnhi^r=)}DJ!`C3xv)u%wD01YiZ*ZCvAT@=JhB@YJ}_c) -zBdoQQnT9fU`J=ia0}R}FY?b1;841&D&&IYbp^61i+rUDAgoruc^5gTP#rFrUCE=$< -z#xD0=Xh9mR%QeqmWL;zim7%3E!|wNY)&k!mHKMjd3_4Fg>MDe;p}5vJ3OkRlBex%m -zoj)_2JA*T`Ae>YwDsl!0eP|Q@Qjq>W7>kmw9Di+5p{bpdf8R*4>A}eR6ylXqfIf#E -z9c1Z9ZtwfvzlhqBzKb8{-?I@an`*GcV6em>KtPi%Y~cR7EXSogqwj3-z0E?L)I%4=MhEj%ggj;EG25^6m`n9}bGzw5Gb`;cjf8!0m|2ZA$tj}cO@UkhQcpcW}g3G&grVUc`OQU7F(9EKHOkTQU* -z{v|aTo#KciOMcD&%KSpI;m$Ai(>=yrn9W2=Hmp{2w1J=52?Vy?A;S1CF&~^oCUCiX -z$OxWJ)jUU}gFSKqW5e`fYI7r6q&a*&O3^^7^{M*_Mq!E4=J%S^Rpn^PFz#mLxM*u= -z1x5!^(rzvFx}7m9sC?ecRpQlDKi|b76nyr_@4|RjRnzzN^;(5H6ovI2x#Q`6Ar!_0 -zHmJKuC55by-fym5`ws^jg#0mxvNA(=lW>evya|h9jF;jAd@rk|q@SlSbrS%xn;)5e -z)N7{uyQ|Ot?VUrda!XeKKGiVnP=p?BoYRH>mKQw4448;De_6n|W`;5p%N#;*Ty)CVVE2+scH^Ddn$@A23*^aQn6pl3qiFL>=T+^EN^Tj?pGPQ`WpO^*U6N+66L~#x6Lf`#=TO4F+x_1oVTiRjqLWRfTxEYr*iBiPaaybs -zcP?sAsp$K2Ujeews*x+o=4(OX}@XQAuN~+Z+ -zD7YLbb&J$cpDCsCU~;`^b<3cbKnU3c5h8II;GuT6PjTlguJIjh_AQIb;M<;HPW -z#5jGSBfCmkv=c^p0@l9dckk~?fcC9Z$v@+$rz1qDlp`vp{^?(jdWf~U$USZlhdSVB -zcsCcqQZ?3m$ANBOZd)i|UPn@_p}zT}sWwNSWWvp;;}on%4)EF -z&jV+j<;APrZUG$5OkCet6=@AWeDCMmCZMddK~-~w4tf0b`8WmlqeXi{4(Amry*8ga -zyWU@YPL2vL$JD}O`B37tG=!mAW+Ni^p(n(<_7M#kg_6cKq3wTD3kIreq)N$fwO;m=w@BTY)(=3F51bn(;a%kg?~PKNxiRcFq39%ezG=YQ7=bbQhn@-a{zpJS -zk9_l!UhB=B8kNr;1MCh0EK6qo$8j0Ke}oYqx8Eq_W*0QBro7Tx8RbbiEb6!bz=r89 -zCH`_C+NKsg94jbYFzxnDNm%yKbBznZHQ%pMPOn^3_c%<_F}hbYJVyQ-e41yfbKQq?3^>zvNP$^mZ0k+A_P@e#iHp5IT0;5oj|;oDcK -z7LC5xNJ_QTDR^vxCdS2`)m>es@T>46^<3um*jgJk&JBLS%bEBP~kh?0EP=~D& -zyz!IQEN -zsjk3i2lQz&2Q9Tj17y(EBAS=biC@4sKdUJy%{dkV-2>`~Z9Ptp`5_I%9b+^CpespV -z%xUv*HoE8?Lc&y`*i7}cq&CcBvd70g4LlFZV;rD0YySOE>vgVjM>To*E0|@gN!cM} -zNymCG;NF>%e-%R2Hz>i??oX6MTRR2wdU$CbiZmXK-wt(o`<%Ele+hXn>iLEFAS4Vw -zZ)q3?AF&aadk#ndcc~qoXBad+EQU~Z-stLl+4!BK{AM4Q15rsxDbQ;QIJ>~?l(D8e -z3Cln4N_uFj^$g#i^_kW;0eUvzNRc;7cC7*%r4G^C;WN% -zk2_+SX&8G%peoLjAUgZ(SW(4B(edrfK0f%gfI#K3?EG)ZYhC04F_(+QYuybP^dWog -zU?NlC#*6L)0ObbBhXyQu6ohIujQZ6euIr8L5lyI@vZu}4Zrof7noq%|p^xn?BGXvm -zQpXkX_2~UDdySEks_&ZpsG7!)2{|sc}v;JRm=j -z29{%m*D7-NXGl|zh0yj2{hx?vf5Bc333&&lr~tWyrIF?i~+kja#>fj -z_Xc9?$tj0tQZPLQ;9m#{(w3n->UVCHWlMArco3LM+w{1PsqP2U1cbGG~rcXpq^|&ea76n2|E3OLop3eIa5#B -z_-v)Nl;XKUswg;SAwn`zA#aCZ5r%u%0DU9M`UP}hfWneTqU4X|wdzDfV -zYGG|71fBwdr4UW_|Smf9!h86S!Kkmr3 -z6-VQ>xn{cuf$-%Od>k=&^l5lb{C0z^={j4H-7$;WDNK=q%V{5vnT6p*5S9fl?s{QL -z=!)OdU437u*8hY2_@frdDx9Clveq0^b|4rYyebTe2>3n6&5QYF0t@?v)iRV2QND=Ve1?C}G>zisvuc%{{UA;A{_@g)fXOb17zn3>E?n93Ff8Ek*e{ -zMK4+hAqkMprFbFtl}92BX3)@&Y53VFP^u{uFF%H&|GYYiz7m~P!V`sU>IpwTijhZ0 -zkpD*H*xEU8d~^My4LwOV+lt>He9ZG#eO7eoTfP-gMP1c8VeRe{r6d#<1El$li|EJYaK<0}QG&&^9;C?f;dQD>I?&4}ca -z)Lv)XYUxV#RCPTM9<1btRBcNpk3cPkVA;67feF}ENoVSmQV -zBlvdnut<9aUhj7kQKhwWpPYGv#l?Es`}VbIYx(UBJ2I4%0$fOnYNP*0(^UpU)iq%{ -zr9rw|8kAnTyOaj$?(UElSV~%?OF|H7>F!2Cx{(G!^1Hjd-#>BhJ@@3yoOzy^xxl7k -z>SO})D(=c-M{M&j2|$mrR=k@@3w=czz3tY|xL)uEEt8YqP3nKi8A{h{dpwSl(3PcI -znusVB4OTxLY!JFYMsEne5h%Ppu?J$qqI7ZGc05hEJ%kp10&?N9f%Z(4*dzIf?&Ctl%m;;~Iz-*dc>omd@66Jx*eQeeHC -zj@bPmlv4E87qyr@;xR6(;nDuR`FJngtCyc+B!UR$k)g0@exWcBnrySPmeeAAQaV0% -zIZED3u>B;`TA&dO1Q=V1xqlMPRF4{ds6fqFUes^8a&cC`*gYe|0Mfq$&aN}1uVOgi -zDFbx+#*LL6_kue!{8-cEFHl0%z*~fq+OHxY<;th(18vkf_}nxHe=1g~n!7u%1tpFO -zbrS%Y#)z;_RPyf1IDlHUxVS@R6m&Bxaf+gMy%VCo#eD8}de{$&$NRCxKl18T^vPIT -z4y+VdKYM>F-M3|-byKZ=$Q*!VIHY8cSQN(N)dUMQHQBQiz1`Ot#{ao~ela9RIMQkrrrqjnUjW$PBxEB`izIet8eXVvKqeM@#D?^oXY> -zq@u1fGj@3<@m%BbUnkhDo-u~FVFv72^1cXwFu0-{y~035_WPWfm0rx~iTMdh!S6NT -zHc4(XwzG1!vu>DSsgrNnBQinLhJ4lKct0 -z%vcCYj=*1;t-9zY@^o4kBc7?3{v19lGve4zvW1khF3;YMSGl9F`m*;fujR=oI>8EL -z*VwOVdmjb|fnK@_WFOabh&<1Ww&waVt){QLa#Lc)3}e*YY{}f*N_8Im*Su6nZL4?; -zFAC;otX=ciLi)2f-||=r!oxU}0yS(b_GZvjHLB&5#e_Xq!^QwK1^_@Sd?Ky5s%^q` -zq)+;T%GxuHUTU{*fFr7az>!&=BknETSD4ugl7R@aJo0@_DdL+>2TFNREPIlBrYVW; -zO1=tI^x1DKCy-#-1F9)PEyeD8e5c=C2)a4q;iSIwypYZ>-iK6I02FX;7}dDDOddb` -zwZwa?ZWtM9j|&|I!GEf_-#_P|B0n~w)D%LPOc2r5rL84X7LM8LB8YeqDD5Kz4`Wfv -z=fePF#aX)5(QZx_l5&feOOAeHW_V1X+8eP+Xx~2pMZG)Rt4ASQNEq+Ltr-fK1=F1~sM)qN+07 -z2HSGQV=$V=44V7Q$YQ7)$zjk8MvG~^>1dCGN8=bZI -zW@cgeKT{TlhsZ;|TQi$llaY{5l~udrkwU!H)4>DbXLrC6SLjson7+aqy}$tzV+h}6-p{r85z -zrQo2>i~;y0aQ`th5S6nIdjM;>6Ts~u?-UTyQAzBhKgjiA8bP(z9xA-gNZ5>>orm}V -zEs;Iu=Vm+2VJLG4z^t-_^n|y;De;AhrV4SxBN0x|aiMu1>zAkg5G11A7>053ygvqc -zjY}^9K3+g+7m|-V`>-e3jI1YRh17QAoJlrkP_xkq_GeRijCVccJsW9NJ^cHgirQ@~ -z9X?sMihHt^XA{shn_weKhgbjpaVqpIbN?Rk3x5;gzpg@n6+m$kM&K?Rl08x{0A)cVW&S_$(N(n>wlVT3nP)@u*{(Kq -zU`5OQHET1N13K#Sxo4~V)3w%?I)``NoU_8lJy+J!e+%MtCxN(w^-H3Z|1x;OZZ~I< -zO%l2qU5A^@R9#=UrAP!-{o)J0#b&_zA*o<%b&78K6gxnQYS@Xr)?esZZ(si@7mcHf -zGIJ}EX#DK^CIRgWcXRC)1~}M$%Po1H?PYbW%eoYN$(PwxzN*|B3BUPH@X=2 -zIW3twef=bD7iP!R<28>HapyHd?E_gWTC@DCF95|R=#Un=gC>{ipAszOan(|siVeM5 -zqog&%OL}wAkK5uOY`Xb?KF&C`e=A$pNji^2=Bp+T2jJ5q670{H>^xL@t~WW=Rdq__ -zx5h>@yI!w>keun@(ulbx+>AXDhr;CdA|F_{X#;<`_zvkfQ#bRXn?ixQ9ya+@P%9Pv -zyP=(CFy>D%W}GY-nur7N0VuN$sP7pJ=l(m;KxbTP|pP(GML8Ehfl(*SZ -zHR9Y}X=)g)kc8hfgGC@^p8#Egm|{RD{Ps+fh!dziW!JvFg9xScs9U5Exx66Yrxl&* -zeWCRWm$l3VbXNYE4jp>KNJ2(%W}n5x7Zk)79HVvD_G*%+x&HO&=5Fu&yZ~Ri-^Lq7<)3F(}hsW)B-Q -z;Vpk@LEDVY@GDe1KBbc-1oj0mG^3vdg7^YEh}xQsNGdc4xrU`do_Rp{JD?Xy*)EVS -zY&S9LEbp`}2|v~sj9(mfpAYzvKyB314y)fElYA^Xy^Ln2#=k9Jo9}xV3|Z!@$fw<$ -zjT}NF+KXXBMrW>__eBPq=|a-*ju<2p!AT5<8rVLa^PA>LF7>rn`pR=AP+K_!liF)T -zWqFe7U*-r2yD0(J7kv#+VKLT@K9g&VH!vH23lmA7yX<|5Oc5~gn=iR;O>9k7WX@Qf -z{rAhQ{_ggxtnz_p&^iUCev&qlb|qUvH^b1~MOVbqp+6jVYz==6xYRD@ngd@fg@rW+ -zV{*~$-PffRl#W}?*fHBuRlluL5%zUtXl;PKx4zzgb_uKF8yZV5^(IDcD<0S2zij%Z -z9oAIhv>P7rjAF~x75U}l@%x`$8438~9QXI1_yfvO1_LGhbd};JXqLJ2KKg4OphtJG -z5(W$loB!}+y0Ks6__MFdNxdz8KVT_goXdIyDe?eF@P@ZI^=x^&H2J@6MX;`;$_&T{ -zcJAC8ON5^Dad!yCEa>)6{Sy|6rAtB-XZ8^9dILB!)FWt&e#Jj-oFy*4Y1J -zKD{nYgcKA2_C^|J4WFUC6Rs8ETSRjO1fSjRx@W-+@GAo*?LA6Iuj$d%@qFf&&2XrJ -zL??q?P=u~N%wgb5U-KEqr$MjQSls&kp67W0cMjcn5aG;2}AK%)7tsBz@z+=ccwTivLI7=PRjeu -zFX37S-88rHH2dRsuc;)`g!{VBUIUqtJ9#{CmzC9Tf0n$>>=vL8yeAZB_oe^U(=NSp -z;hR)n+cxGS_aJ02r(sJZ2;6Hv*K5>SJT#8fH7l|hkl80bQFU>2ezt2bC;*ZhA4vVF -zcC~*$hAKxb>g^H6kba$o3U87L6fs2Vi6`w!UGwLrH_1129ar!mVsM*xbIrBtBi@SS -z5-g9@Yyp>A4cFnJ3MRy8F>nugvCCH -zO7P%!%C&?Oc$Qp$9mb!%oWCsvR|@+Gw$*uoa`d8%u7Fw}CBdF{p>Su^06#_0Ry@fl -zbrRi>6Dh)OC&Aj}ptkdVNGc$Qgt!BTjee8W%YCd;se?E>z{6e`1b%Rh|I4$)W~ZrW -z+3|l9M^g|kdq0QsF84%ZQYM&Zm=6(j-N}-1n|l!NMY+wG!A# -zBWn>y`@jG7O~VH4^P>TA?=2FSBUK@AfA56$?Z?7ZyEzC*QD0_oiDtH2B?lVEpEbu#0R -z!yNfPr5?g@QT_`_JWr%fu`i~0>!NhvQd-dXlQ`!2NyD<`qA(p>RQ!UeKaww67O78T -zP%GZEUX#kqhhR|jbx_Z3YMz_};{oW?CBsrCuhg9Pz;LAnc$7RKSUG+2C<}PuX&8ro -z<@ZJ%Awg|9Le@rAO@~&{b@CV^Pjn@2lSb)H^J1rL!e_S!Q~p&^Dc;^Ed&V{2lPaMb -z_ofqJ&wNqvC%<32en#qArfP#TTnI6ShGwaZ(^)L?mNHw(Im<_|! -z3j<|u$m3aUI_1o>jr*^@LpN#C=w{W)#}*}5I-@t7$tq;ErqbD7gDEbQO%ssa1W4-T -z10{`W;~wsRj^3J9NhvCmQ~$*J0GJja=@pKK9pKXBF57h0eEa69Cg8um1B-sm$fUg7 -zy3YlHhTqtTp=>J`QkZ%Q{b(o2ijKD>nR{J@HS`6pO8F;HSEDt*w)`n|)e|B5N(kXF0Pop5s>Wmx4uGJXB{r#oTs&wp&M -z8zprS2I4lfihercOslzGJS9ROtZ_6$=9ZM`C-&GKSqy1RIkYg$Vd=05p0c(ZtmQz7mcW* -z=}}Jkum)t_0+ybR7bTw2TU8^H3ugGkHV5vC5wmZJ{o}uWkkR-Xt+m$IU_fdE!Y!}( -zfO%&`N~B7LSC=Qu^7<_S982`Qlj{x8IK-68K@(`@u(6uK^6@pY0}FJusC4qr8C2Rv -z3_m~cWpR`KT1tH+^l+-DKsxP&>`E40aWhIF*XA9h(*2_}JlyVH_D9b&dzGdP3C7W; -zoSYL{#J9e!Tj_$Ei_5K0>=uQYD+k=>3IEMsTZH0X&MsWO4?)Vy6f|=rwcBX(6&;6<+zg?w!qW358K>@Owi^ -zD7VA*>inLJrShIp<+P#S@Axs7GK1YFqBS=rlsG1zQwoaw-;9Ir@?cX^MS5xAo2Uz+{xdhJ+G@*UAwsWniyYS^Yts -zTB)+VAxA9HH4IC|OjSKf1xCh3g6*H+zTfJL(d{FvUUU>m{gvvX+~2A!<{5lnW_C&< -zxGH65ymk*3+=?v1%>LJOsA%(_ZxMw&TwzhXyv|NxYqrU>VmaQiH>ABVzmlo)9MN`T -z5`d)vhqpr~6LP|gW!ltCZEK>^7CGBVDQlI-f3UHwhtHr{`GVuL@xhA*5vB8QgUq^a -zZ0=n)WcnwN*m%Gj@(!uGB(Rb{EI-R&IV9l>N~C#4h{2|9{VZ4*S8M%R@07q`p(?nS -zwN@1V56|xnhO68qEL;b{jX`6`QO2gx{n!`JbB_40n&!{W)?{}IevvU~nNP8r(Xt;nSdS!lJKlm%JPpE)#wPoZvw#r+yYWfL9y8m{%(uzZ -z($vCL)xyp1{SbK&;XNOOSqR*6#At|+&)3x!^ES!zHkcsv -z)=m8bl<9|lY#CPWMputv;)i^nTHdZtE&!#SEN_mbgX**#g~k$M?Ap4jS$I)ptCEq< -zPU9UH)v^R}@+Tgbm%Fp!Ct#@`23X98kjQl5bHCiju-q@wIvY{P?5c@+N`4>o{S7!3 -z&Eiy9K1PWo*VOt%N{wf!x}OKCFkHWvuHJ3tZJ->t9H -zE^{rWhMdXxdB$7(Bix?u>y_qXzsKUQT4`kr_ -zU?r#)N+9rx*eU>SnE#jsv*<#u|83+~SZ(tp-Hlsi=+vuYw?$z)*fAJ6+1b`s!3NPw -z4LWS!h~3=c$a6Q;k4-uNNx6uyGg^{fPq`)+QF2F1?QIzzHH~DP578;@?#=ki7VyrD -zjDBt6eDHO(p4m2@_~$jQB^y8i6f6omH-dy0w-wqq^@sN=pDSDYIThEz|*%{io>P -zl+gjx?b>AWXy@H1Mnr?)dy!RC@ZTU8 -zM<)iT65m2ow!i98rip$ZLcme~WLC|ywhPaQn~no2cz=riOv?^-+hpMNo|ai2AvAwo -zdQOKf8j)^~FIltS#_J9xlu*ZDT3ZNs{=wh!fJ1qU!$EbY`^(tHk-NTD+|nBr_Yl1- -zV6F0a;e2ZG>KT)^-6M|fNzq|Soir!mVB_bmLcE$ZtirzX8+s=~3Y8OZ>r;Uw2b(z~ -z`l+p_n@`>?&2O|l41C&i`iS6na8X*HXffW_V&rqlfBn9@aYHMA!lT!hst`nfY`wB1 -z*+*XbURHMbRt1INFcgp<>%nXOR;yxGnArb*u&B(3z)QR$U0{eeH4t_o7S!6h2v1H& -zL*tFT6E(B^PC7C_s6E8Gu@)!Bc3!YSJBpA{`D<^!slKHif?8|?krJ6lJP6*fo~ -z?mnUI;>nk;Xayq)!uN3z+Y+Asma;z{OZU8=p6mD9KpQ#By*zb>PI)ERLWd;LQ{h%2v~rKjRBU`ojVY58^nw0aA0ZP1a!P=*8z -z_K~pcpMK41@&u1C7D|5;dFARO6R_0|v%VBHjK69C96L5L?Ed(eOxXiY1joZf(fd0{ -zINW+Liv2rO0YZ_Ab^q`}EXFPJZRflcmo*8Id&FV(y+@gH$WGn}7OUWV-IOy*tuf`? -zR>ESIr@nW|7Y-2&8^KgvLF7L+)=M(_pHyUzn0?(9k*^3F0OiMn9HztY7sB?o3X5hXSqa~Ni&ut0Ga6E^!C*vB-74CyQ`r9}N7MA<~`3}`!6Hi6y -zErfVYhCOw%?<23K*I=1W+2!1qbJ!=Ri$rhpZz9YSU)jnEm=wk^Ob>n{UT&S%E_bqw;-Y_+OR)4v%g$C&Aat)V`x7MO^imLfI>w;sDp|2)L@S*c9{-3F#$rT_z_ -zt#l`AZJOJ@#n-mE;*_*5T8$a!sR2YVTa_b&AWG_t%Zud;SpRs)Qd{ -zW+#RoRme%;6~mR1Jaf@kQTT#PM_}A9F{5PKZ(siqjwBao3=a{OU%a)?Aai_>*~Lu6 -z1?#U0F9Wa&ur`UeIN|h(J#+z?dZ{Q%f5As+{$%`KmF@kvQvvOO? -zf|>ucRMq=6)e8#RuQJYuk^T*WbHw(0e%+Of7pfJ$d4>gNrQz^2VSmCYyv@Vrg0A2l -z8=J2%bIqA1mrVw}-JgyJt7Ul}fz&O?Qnsha6yazA9+&J*b@KCGvFu*NV6?7C?xT`e -zS=qJ8Nc~mdqP-c6Vv|j77d)*38>28j``E2Du -zGFa|n!KXr0_iN^lQa)Yryka*?Z3Sj;{``6a-Tax^NF_Fx&Yh7iBb|o$W`k7B_<}$7 -zJazarPSYT_>Tvkb_sI!Ww}on7Fm|3_G4)I<%RsVb2u*SvJ&+eeUAAbu!pw_u9NQ~f -zs&(Ug2agRIFt7qiCNgXvbY{MY@*{as1eKxy%|*k9#%bfCqlTlgL@GAgFP-6NQ#yKN -zQlr!+5lAOZTvh2w{ns%Ce>(Dxdvz6)qXGlbcVbBKJDxVbY^0wLA*>b=Y@H)4v7$=l -z(z~&0cuO>&B=WR}$4wz@zQgUCJQ|3@4ikkT_B}zQ=EK0Gw?3|^pnni+KUVDR+h?8J -zX+58MVdTyWH`D`v-yE`FF&Bd&`R?K-kCywaJ8)h7=rwN!bs?l7V8<9Ex>_i->O|gm -zZo~E(YW2(wM3ZDCn -z#Fg0b&}XF7ty?!I{;JIO87c-{a8jm49k@k)LO?(=Y#;mMdJpEmBO=?W-Dzr^BJ8K7 -z-hwav&2a?Y5N*Zhf_?`ngNg_MoegLvvewYgtQkvjl(K_|=7fTYZxQNi^J#c?T;`}A -zmYyn#Pk~dyi;3dMaP;QxCl0&5kheGOOTC!~A(0}mH(c0p&#G(s8%8CeSx6q2E?9B4 -z-{O5H%e2U4haIP_vn4}EaKh~y2Je-`Jg}AdZQRaALTk5_XLDwz{eY~>%@a@_0-#Jmp#)*TM2pihc0C6`c-`4}O -z3J~z|NUD4_5T+lz~kHoM;hB -zh0c**BRJn}GsW7f-xyv0J>LKQ)k)R6Zu_bIq^xB3YtX~n9TROf%_VDbWgds1jjM8V -zr$Fbo`m4Tddr#xszaQ=nKGz#A*@{<+OkY?&Ds08%ilf_R0WrkdU_O7{m9|?Iblbza -zhvE2I+nJIg$HOHfblaTq9{T$;3efLc;Ms3Vl%?)y32z-3E~dNVGaG5|AJ=DP*-B@* -ziwXm3)Nh{fzl|)ZOU1xk{+7)vIK?WKT3xGVh`T(Xiy5yeiA?4B4Rk+AYs&< -zS5Z)d*o(v&gonCo8G9Bwfq`E49o}0@Rk;F&A6ORtZ2t?#@i=xkb|Dug_6G4GI5$hs1RmNf0xL}=H@nXy?8>!y*M<8 -znhcx1Ie0W>duQ`1mSR6?#yhL|HOsSk!bG^CX`}q#zdtBXlgbc&aA$Nixv7`OsIb|e -zqCv&EH{>n;F^ms2rZ}~{SedC_eqg=h-C%xiGR;Thk6rGP*4tlVE(yS;`mA`S;UURy -z!Sk$yto|o+$N*eNhRu%k)4 -z#NS}+l<=Zh_B_R{{`aH(W{FBZT*Y_vCV%aJNdSd?A>yJ7HgRvS%OyiC;P97tT-?Xp -zTQNzGwW-3rAc%`4&8nW_U6rk;sf?ZhqG=b9hsMX~atN*BrjD -zvYNpGz^?(_OG{mkkEqqG)0}jDfTZ`8^a_6{s=K)oASeJvs>0nWt|qMxZ{B{vJ!k1j -zJf#$vm;KBedYkBjb;+Jodm#Yi8alaZ&$YK)JQxdrnCzJXR3bGw6ff=f$p?hpx*Oe- -zc8khdAS44)$fS^dJ$+>dVt5GTXoH#U|(yBR3-sY={>=&u5gt_Kg)KMMb-ljLnA^^mws -zw;6iuywyk@r$^9@!04-Ugk;JAP9*C3wCk=g -zd(0-^)0q -zT;S*^7#I-J9$tPn*fYrjs#D(wh=ZR0WXIV(c3xE!GpEjrVS@c)%0M2#Q0zoR=R;<{ -z`1}Ng@k8exlVF~|a7>iyEYHV|u{S}a#10*qU36R(%W%#M8mWG#}SQ75PXKfL8H;r(2Wq>j&M6MK>X7yt|E?Sf3vKQx)HrK5O}?@-B`ixIs_}!e{k$=y1FN`^lZM -zTa`HSwFzs-WBXTTpx?kcWxM8W7zz$F%I!piB%2URMz0eF)uC#HpR3;%1M02|)}`lE -zpvnx+X)G+7QFGbE`PMN~X1cB=KAEUGeTPi;;9Z7jKQq&88zfT$4|30kuIfwvoFNNL -z-e0%G*I@G_Rdn|e$&Fwl0L12zPv}PnA6hiA^Bg3ZDDOOCc -zmK3XylMPf7ky^0|nsHU#7ac|l4`IFMmCDrI*NY+N -z{<290dv+~MW|de$1TzH_-I_<0-d5#sap+nIeBqyvFZ>jgFI>YAj9mVY-oS -zi}LIFXDRDVxM*;X%l_*^j+aa~YJ;6{Wv1cT+7WcOVxnKeF6hm7>75kl`$J#N-y>shon%5)QXf)8ETXP7(E(9h+|N`tnC7@Dq* -z{Tf7o%hYagaM!NR&DQ)nYA;c?%`40=taYV#MN0`fE8>H`4o+py$3S9YIC7j-0W0Qj2}8KGdq?cJ7R&ncT0 -z${knJ#M0|(34Vc)p!lFx%1!xH3^#gOhAz-Pz_kHXL*yu{YJNd6b8?_d!ZL&YUU=9m -zo8mWS3w#wMKx630J=F;0c@kf9&Xb>wLEI4`i+TxS`(yk;O!$NYAuPsV_yzgeYc=_o -z(DRv+y#z+>B{=ySQqm&)zGBxd`Tz~t;|9jg|ge1=Zl|{@)pv_lT|qL -z-UvhJP#eMgltW(QngYkL^vJwhN1O(d+fO=by_% -zLnq5VSmM&cG?d$UI(aB9QWxe;X5*5}sq16x$D)BZVguf)8C)0`ubQs+*Z6ylc%otm -z!~xy8Z{qdTk}ak} -zH)P^e*F9NFA?B-4UcCt?T?VG2El*b630^-2+N{h8vf}`eQdpB8$mP|8 -zcH-@p8ABGKOc<%De}0CLY6rV%qJ6{}F!Ro*vHptq5Nd%duFit=t8;03jp7IU#W)zl -zP*l|yodaFb!_?k3)ds)<`(V$!4{N~OCIeO)TQwG+JnM4+=cARr=(F{K2GnQTeaWlB -zu5!275JIV%DsKd0#Y-hRu+rL`6m=Gx8DsJS!xIm_iL=1Bd&8^`4pKBIuMY$o2Ba#- -z-Z6;_D<@t)Ypau@tvf4xr0}ajkPISXig2%>ZZAL{dcyKAmdRs8dsSFk;CnUv-69jJ -zc$_d<+Ri?@#J?zRA^WXbX2NRsD7sQDcW6=1vps-_{dYQZq| -zH#`%y%vrQv_}r@uHSTvEVeuYUK)2%HH)Pc8wY5|6nb(or{=CHs$MPL<{^ff!dBvLt -zbb=PSC$4L}*$56Bg|XgE1e4Bfg^!*~N*)Fdok#P(d#P}i8p@(?`UG>98rN5%(dhg* -z@*R`RnMWt$LrqRgXdk=|n1%mc4eCAgL5d^*u3>9&m++|d@5b%M**=IPlK$CgWri*p -znF+xcjDe682yyWFND4@0%xHsQm>DRxe@bhMg(ZbuxmV(O`h53Kp-*h=#G00P3%Aq_ -z^B4SUd2wO7Fc~F`7qRj7BZ?LDs~-C8J5Vr-{P7gXjU45DE!k!?sQqQ1#lW -z4Xt=q&)6_mx0z96O-|b(!`i`z8UIiMI4Xd*0*!)=Rt2rgN?=ePguw+wF;n&OLk+1L -zTndbig4x?ifa-#WjNq1M(b$u?m+m}zmjLoI7E#&WOvLu#GkFgrV(5ZBOGN$c;D(OX -zZkL7YX@E^LIIo)m#F+4%{hzf29;V#dk}1k@SOJLnNPu1wAvuCv1QV4Ps6M -zCQ<805aM8Poz9Jmy+9!$D$bd#fl_YaF(erTaK|~wbHUaWC#bnoF#=&fN`!u)ccF9D -zhZhmKfs6vUAz@A6v1$HeLiu9S-_8BA1rp24Pn9Dc&2bR@*BDJP^sdra6gsNL(vrTC -ze@b}5Svg8lWb_$b#_hxvJUL@nAAGQzKK$5os|WFpzOo=UEc1z8FN?qQXaGadV(3 -zcy@nqMsD?mt59;I=vUtB{6_#Ud4NX_d+9#V^iSp6E_yu$qlx%-Dm6?E)Tii;1(3I& -z`sD_pbn<_hj+J=&w3p&(vsBbr_Bvpi+uz -zszMjl(dZ{pQ9_l-N0f65SAl@-RSGvnSk*dZ}2}Q -zm(|HONXLNvB8)JIDemS;%$B|>cdm4!G#H`}^FlMPnmu>InGl|v1R)fivcE`N5R=ST{oEOI6p$Y+ -zXKJwHm7W$!7S7-!;=A?~Ww!Y|>z3AA39!JX8HW*<=1PmedOxbxz&t#NgP3PuB!e>82F -z!VWb^9gbP9F-mNK{_gEAjlditQ#tsFw88gMxvcN`pwd`tdZs8Mdo@Y^pbh!1wROCD -zRi(8*5#}45R8$UeJpk8ux4g0`Ko`Y*+#N#->m0Ls9f2R5+hu%!1{7QYR(;gsmH3k8 -z>*^a{SD9h&*I=yx>#Y7?)6ea*w-^j@>!wmy$*H{+3{@8$4X=9M_J=vn!jZUBr~-ww -zd1r4}?jKDv4$=VK2izaWE9BTGUiIqWGTXS06?ReyWUy>XR#8?qynmjZ1PgQJ*!Dv4)nkpb{+03A{yoXjG0pkNZBdF+~&RdE*~zjQzh%zYoMI{Frc -ziENMalE%5PLU*ni%XDOi4-g6oY&OKPoEN^D?BqL%hWsK)pUhwE`}-d9J#Ua>Qr7Oq -z;si|5`c0a4g>IO@PYIZ*dwq)*kmLX^V#__UV4ALTL-c?d6XF^=;TVfQzH92&?vU4k -z>p+9iUYn9mgu~b>bFN{Wn7Uxuq?uz7kU*UN`J*CZ>bdVA$45q7A_eTgE*zp -zR05pSvhyLQ#Q`u_yScZIw=@yM5U5Ns#a=gQ6@b{MvxKL4?Zhin_x*+Qn7PhMtx8iZ -zd`g=RcagM=TM|>s*EK}RM9S!vUb5|J7x)wI6V?HsOdNi?Lryd(uY-dSq$F|pSuGF2dQ{_Rm>gbz3{I!y@19l=n2e!rmFlld; -zz9~u8E1{;i3$VZqzkaFD@aM>(jAS(vt?T47aBtYQ^*u=iHBg4*m{ZJyO3-9cO -zne^k8TwlANO4L==Z0IBNxV!I_#%8R9c69LO8#7mPteAXM93N3`O^IeUGNV|J(t?r| -zM7Gji?%%LhXhS?h_1othdwKJWzeQ=#C>6YW -zKY}nPbvbgTS(zK~X0tIT*N}qg&S^`2>TP{sC@>A4EykT#>w-CR}$ZRtzGuQTc`h?QBmtj -zK}@ORNV8KA)MGif+(fHnUcf%ZH|?g<^#CLz(7`apl5diCvV3W;y-^in>6xhW&NM^b -z5v06^+Iv-;)qj|@1RD}iaj>3rUOb}mcM|;T3FCzheItthyVi%QfwDlY-9ynzmt)d6 -z+4fFYmmwbcABuxK)FXImo2>N|AqKty-RVe6GFpxhmlkAff&r2$Ni(5M4BUU%v2oVw?e)m)HfBkb_Tz@?n`xg1#@kXUtrg=IEM>rnjN&{JMoB^P8AE&C8Zliuu -zT@lM7HbU6_0j1J2sP@%&=D -zEOJ+=?hPWFlmubV*a?%gz0Z&s8yNoD{`!Z~-RGtsO5@>GKj)z{8BD%re>nH;@ib%X -zkCb~F;b4wSmy&(CFYp>M8B^k#1Y8Gq!iM(s#jN>9Du -z!dy(fRWBm}Hz96DrG%eSK+4`jmVSPyuiWLGjY3RKiUr!Nw)Yal%(H)2Tihk%whAA| -z(@Q#RnByagAK*pKfZtdi57kU3(Fs=f%wDHm)aMpFvXe_ge%c -zoZJ#KN|I;NAinIhxjaLw8|G2JY^sbFh{T5U9dlP@Ly%7TGg`xDOjpta##5EMw-~km}85 -z^n&!eq_a8gWDFpty4pqTg~Qw^4LQTt0>T7)?K(jF;vCi=a -z;At7_hq=Ez=hsFA3=qKX^$^P{rgLx`^#E@QkVj}DXRQ`>0*wIYYhGJ*tjz~UraDKr -znH_K~Ga+odD|U_)!O^sq1zSUJ8Ox|cdmFseV~t-x?Q9e~-1ku+j0vUWQ-;XMrr`i+ -zpY!!LTjQkF$Y%DX#o+@7DwW`a@!Dur4a2;2ah|2;4KCdUeIY!ie0@-fM%*9SB2UG- -z_wE|<@8HKOq08F>RA~2u8(roM<9_ub6DCU_vCAjaFD8D3ydoIoAaSkQ3ECO0;pl{G -zTytDQZnyvd#NBzV0!xImNHAR5UlUzPjr{=ZJ8) -zj;8r_4J-V-ZHPIZ%3+w>M@H~{sd1iDVmZdKx!Z2$Bqnyw&wt=--Ms@$J^MjXbt&$!p4&BVdz4F7zK4~7ww{Xvd1k|dBy;eZf8 -zPeL>qUgXd;zd@qK6fg)i5d4TR7<@%US+rRvS;{nH)&Ky(5EE>wLxC}xVBSaWVN$ciUtO1(hkK$s#v(PRD_r# -z6ee*QUB*dqx2_e}9g~~k+b(y>gb$+;5YciB(5$7IbvzXT2D1~)e>ll|r{t}WnDlbe -zzYg=$Vz%8U%$$vxd3&Jt`|H3DpQHY|w6ja_gWfO~&X3(;?BRrG*P}>J5^;pN%As`*n279 -zIc=jx=I0?y3FGx(XNC0!w-6tw~po&#fA<~VdrLK~&z+FT2N+a&M -zRm^o-j8}==HkCh@>m0tO8r;|d1rO_YeGj|>y_hqA=g -zxn8c5l85_BB77@wWZPS1#hd2-fd6gx5+f(60GQ8>E(QknUzFK_tG}-QV{w`*?5W&di-V_ndR*Lps2I;rpl2 -z1M|Pv8Ur}Pe>(8WNbPq8gDhbi>{9%%HkL6y*s7uy){ehg%xuuXy}VBl)=~PPW{;1F -zTYi-9;gDj8?8JY&Kd;qU%3CT}@e#V=!-pz&>dFkxgXQ%ulH)Z0=|=*#2lD7!32OH1 -z%h}UQDE<-LAufe%J2jw5w?R;`$!=JeqVt}1K5iNYls}LTF}d8>vQ{V#bCgVghiIM> -zHwR_uda5D@Cuc|tvFvpg9Fe(m)9pgqE{eM9)Hk?1W}m>l89)=BD)!V8G&t%!Tg&;l -ziP9Og$|bWSpxVjLtA1;cI0M?U5uo#VUo2gmXA~{s!mnjO+WM259#8t~N?7OY50vA^ -zP`yw8wPSQp^|ck>i*D%W>G&n@5sib?W+v%lYP;4teNVFYam{4TeoQNKZ5{9AOIIhg -zdBfTW$Iq^q;?MrqF~uup@C-OE#O -zk{BswE3tL#BHUjucNN|>=(l?9f%jSt7zcvBguPkPwSx+ocoQ{q7{8o&M!mV_!2-d_=tsc^?SP-T( -z$beG{e@6IYi3eqNt-r!_M@H~N(p2gLe={!h9SFY9&hH9cJWr!I#e2NU!05B%U4~kY -zDO&cCcyT|!IX~Sy1Y!i%G5N;PhmL)zm*&20{wq_xclmRZWo(TOu|Y?(z51sFm_9u5 -z$8vEN_~*4izV}hOHJL;$pKkosVZdy!z~qq)!_Q3rN{yk`l*h!hSS@SjNpEnqTkk0r -zf$JF{0C(VKob*4z>gXlNilf8%V2M)o(&L^Z}na_rqhEb!PykH6-qyjtk -z8I?@>g-J9=bq)VuvL6cBb#PiC5=EnMqkI8!Idk5YE)&?y84p=)@TbT1>}DKbqmJWxtv8t9dzcwk|32cBuqUhnR537VHK6 -zsIfx&gFTvT@;t(9wvYn1-M7~;h$;Mz1^}-!Z&e)}|8UUU3J)sTHSGKCDn25A>8i#* -zsWS2pVE4cuC=KH{B*kZz;6x;g-`p#x=it<*W^)hQx2~e-U;vw$i`*W4cSQyyl-r$> -zLSXeGF7e~7@f=gtN12hFxbSr6G?W1vd5u-teIsEe5yTdXLOM~VpuD`IJk3;X?PdCc -zj$Gd;5ns~#Zl(s~YK!_rN9~9WUc^R@k$`EZG;Wo5<+O_HJrYt{2hYpc=nl -zRxi!uaBSDUyjg}xsH-o36_Vk*?p3`Ag(7g6?7hN5jJc>2RS=nQpjJ7mY-S_-8lXI`5(w!@OdDohv7<)8_5V;66cw1 -zoF}VWE5EvGgN{1*%wA813Q{9Nrtxan0gDpTVktKC{KntbPdX`Is}N|VK?0df-YfRO -z`K9+jaUvJU*KG#C81C#q`9Gjn6d&{F=A~OlAVQk56h6O;osW}4cVvC?VE~E;oY~$t -z6a+KoR&(gQVaA38)iZfiPbvnToj0wXo$S#(C0qlj{(V{^y}ow!AW_jq7s(x~d!|kz -zy5~PAT5gvfX4t-K2DBMK6N*~?xGyl)u+$w8DYbEDkLGF{*MS~RGy~IOzIaM|u86eu -z^>JV`cVH-zJvpL-E`idd_NO}0z4+(36V -zW}QYm&w(B>ZV@Du%|k?L9vqc40ox;0_mIq(UK;nV-vuYY3=y!M7erbVWN5E!<$rdd -zSg!*1aMRDei`unx10>9U?7 -zuUlbKt2?}V#fcYHZXmK6nb_hw@%PLZfamR~BTnuTDh##G9n6n4j_Pv-oliRA@T!c{ -z{NXodz?1yn9bINq&N(%Ardt|1yb(a1lU$G0%fB9v;s@24zx90P;PgrIe>i=KG)l$P -zgX22~$BL{L(>E*ypFhcU6FwN`Y{lsz9ILu*QMYTjDce~fgCuk!!MHc7ug9>InM@dJVtf5xlGt`E;Hem -zB|FP0)+|1Cvc%_c@#L={_S9rsE{i7qNOO<;oxokfk{*QpSH8ibDF;`dYuxG($Qxd8 -zgx!vv4mpxFBhDj)Fq=1{+qK3Q4blIZ6fgt^vZlP0#a9@4^ikQ$QnF}|GC!d-W&=+$I%d-x^##z=)nSz5eevwz`LB -zg~@adv>2H7s14t+{K#Hu@cmuYk&#&%LC(vwiA8&3v9zVVsk9dp*qN3{?7BijQ`|Wm -zGj`fFw!oaMFZVImGe!1@iN)KDaW!E8A%hj0s*^s*IpML58up{3Rp3M;A^Q0B4Ysda -z3i4{9#-olXJr-Z&kZcUjrEjmkWIiP9#>U(rqomV8Du)>TEK6zFb)JjJFRk(|-s -zM(^d9W`CZ_j<~e^x!uS82|eLaX$!m1NOtXwHaC72+k1=VKZUyS__Z4HP1_TKJ|A%| -zIw^aZjrPVB{2ZQr=gRKInj}Tx$<%)CaPR#)=g?#aD){*Xc#2^Eb{0ziwPQEjZHKdn -zIiv~1ef-Z@q0FWXpB-85Iihr_OH0SrlB1(ct=_fGoG -zU_>bB#C)kO;sf~(uwC#ciM`n)lEAQMEbNaVJLWZz1ED`;@a23Gv7}n|TGSh&w`Xu3|hs;(tHib3C@w`7#9MMv-@xij=@XxtU6T17U -zeKj~rj204wFAA1|%$$`w8sLC1VBk)V;0IMNb!;OIzE+=ZJPe(~C -zBDN7@%;c(rDU0Lmw9W|saP&y9Y$lMbZz4rNi;4^VM;ijf18)NZ9*o5jpj|laPWhxz -z9(X&vX|nQg#Y}gow#D7TV7{8Hqk8GL-;&2OA68q4&&_KYW^n)YDmocekR&J>%ketvADZgc^EdI4PG~%jaQ84IQ+((r$-7}!X6E~6~EXm -z&k?-$;mD=tOjU=XMa;A8w;`Mq2P}LNMIW@VJ@QD00XKgK9zd)H^rT2~by@KLaZJov -z+h&?6M?RZ_dQ6Ry0aD^L%+Ocv`qG -z#UPluN;;*O!q4*!QGb_Dm=sYL)5X>VRU7K)%f|CHzUG<0czn -zzeu9$Jz%dHPc0TlfH+_Ss7d89MGJ9cKa)sBa^0-n`-J%56YXT4rPhbqdTaSi9aqV- -zE_$cw=0nSPYz>!>O%Is`oJ&$w0~zC6!r&lq@7;=c;lV7bE&)Zp?dCe -zmMfqn_99$N2oy(aX!mt53VWDxEZ(Om)6=bVXDZc5wZ#`8cOm9Oo4D@xDwBaby@98; -z)BB`VpRtLl!bE?R0zwi9(DI7UpWn(}PHH1rpv<{l-`#X*vof>j7PW7A_`vtDd<6w`sq=Ek3p9gpv0G<1!B-e3# -zeE~rgn_e=4Zx28tX5_RHC|1+HzpLDM8+FJ)$}QRI14R-T19=9j_R2=*NQNMKU*z}+3=J*mt34Nc%j*q&1kgx5^{au8ZA3MT}hIQd9)mg}YpHg0N -z_}fD(`r5cvm?~%h&jdkq5)upXt>pO%V@8)%qnD((+s)`I7g}PJyS?}W2B-u3fQdYs -zJsN67{`xZ-(XaE?u;1>%8ui)vP}7;6`zJd*|^gT=`EB_5ks;WX=5wXjQqK#+f;PYVd}e$f!_$;wQ*ear-i0-qiHhif2v@@gCI+5^mo=? -z^l6bqZ}b}0Bq*mADzHYU+4Oy@*%OWrfS@DZ+uJq*t@??|5F4~t=Za!nATz^C)~RUz -zAgjd>Tg|{`r@1f`F6UT1CIoak_E!XYH_E -z0m=xJ;QqjjTx?nk!efR4wp&?*y6_V^^YCH!(1jscN}R!Vxay8 -zW>3v|FekTMDq0_EEtH;O6J^z+5t*VKekP^E^9J#No=?IjIliH)&Z -zEdtr0PueSN%4fN7v4Uu0+B2J#DW?IJ -z#WCb-QssK(a}=;X>$lu4GlW!h{%Cs@uKN!gDkO#&Wk6R=!za?mFHK}2XyonqsIBl~ -z*^2lp5vK)dXV3q&0s>hq8iiDu6>VYBYB2`sKK<&;MagPICO;c}oe%~t*-`xyS@?h~ -zCUP)wyxP;0Kzf;4&8Sl2Jz^F(x98|$-Tze;qJNNgS3SUlkhYm3@2LT`GPLgV=tZ+1 -zyh;Gj@nEvuNx|Ui9^1e7@FNQ?lv8E6KpBRTO!;3G2eA-0zRv?(d(X;qS_HC?Z;s{D -z|M=(jF@(}kjP1KV73P;0V!n`Ujp|8`Q{(@P^hjx=Y&(w9zsS9xuWIwCQ$ImsHD^Uk -z7SXp(RC(!$+ccfrT3?shGueCd9ZOR~$jMFnE-2PArgPnrRMlJD{?Jl4`Y?iWcKsIn -z|EFp$l_x(oQ#eb5sp3mG79TPD#t2@@Pdg(G;y~=@0eeN?Kkdn_7#`mJbXC_3lMR5e -zVAY5Q&W%u}&F~dOKabAm5S41VR7M0m6Lq9tiUO~wVG8n7{U3A%SnfzO`=f*i=I^t& -z&_5fRKqGntAbLQMegCv&zAP{4P{!%t1Nc{PvQYfglbOK6*q#|=8tdaM&`VIcQn5tW -zKldVf;4Y`gx9kGMV~Qiu90qRV(sp`tt&*l^etGVtQ`uDVE|RGX>fmY^^$v%2DykpMtGSa}3|pDj}upZgErEnVK6 -z=U%*jP}O?hS3^=D+Tha(;|S*qme~1c;_hXGSVW#e*wsc-+8BL>vJH+C1(p+&`i`dm -zo$np>BBQlkCfrDun=(PD0AkMfR?g1*YxX~5~&wsgLJhycb{12}iK-!?v#|8<}k;h(-58yikN1=|wz3V|%w -z_+3Ym6cTNyj<6eSIr(hz|H0ZS@>SGs2CN&qlYn$0**`qi9ob#PGf$)Y_cvUgPcoSK -zB0^PNaStoBA()@aklaFN@zO{=e=SP5QY=fMBpO==1 -zJ7!l~5W~;su2o6v+uBxaYqznWn*nRJs;TgQmj(~HIhZQX!J?t0UknwTmAGH{Ic>{l -z_dO4Fb1js_M8@=b2zt6PQS*snoMHef>Fuc$ZhW;Q;}PC3N-hy7{}azv4|0Vf{S$=a -zB>^#e$GTt3e-%VivGT9!w(;_7{3+gvs4Av7jsEFnRU$XU99Ob+t5?SnTeSH5@(ChT -zBxaTLTz{S^TvETL>3jErlU>M7@R#IFKkP7L;*0F@Sp~ -z$I<{CHs6jJ%200!7d4GFN|rKv*$p)*E+2$z?qnGZaT#!({u^;w-Qt;rgrFH@NRLeg -zrum{PX}XhbHYj_e>-x9S<1Gm~uS?YCWUCO%l0<~Em})G_)bJi3&70O7SW+v71i?ktcH~iygeXT=K51baaMIZL{N&_hLsB8?IqtCp&Wy6YNFacGySO$@~bo>*jJ?7o_BIT;+*olkeEf|On7laAozV(!)2rS5R -zbnLG`}}T~7UTsn7N}h*4PRgbkIN;^R-rt*4m*gaE$Bv9Kj!<=d{L -z^7s>^CKSElSh~{s&wHuLz7>I4{7D}yAHL%EO_FT}JbT0$N>BAq(0=U9Fw=a(IeIqs -z-7o?wqNaDyXs#|KaFgVh;L5dX&sP!<#&3*psf_F -z7uobc(z2)yt{n!x&fy9r^<5zc<9XQMw}KA7+{|Xs1FQ8ji36jr*~5uQT2+b_iYMVr(399P{vzI{MDz?IWyCcIGza;MMu|jJJAMu3Gd?3v$a>)`p0p -z@R1I!zTR~e)autspr=n^=uTyQ_jGF(oEujIh)&nkGZcu{*y9Ewr~dwc5q=Gr?SIW! -zv(Pt*_Rb`=YZ -zyDKt?uHLd5;fC<-7#nFcJ~P=q*FAGNo%E6)pm$nV%Dx|skZ&WRWU=%2^qZO8-=0X; -zQ-qS3|HP_)oA#wM(+DgcxFqKyNI|WF$=6MlTvKMPPukG4(L1W0^*Nn%V^InGPHtDZ -zFkE{Vl$WCnd9(AM&CW7V?CKoe_45JBAJ|uRQW{?BM&~OF%UoO>q&3VTS|}$T{(IR+ -zAvH39twuk@t-2-H4T+ie^x!)wi3zzINh?1M5t@#$AZ*b&A4gcuQ&Bs#6cTK$jAZXu -zS&^KWaEn@^J&+HVEI9NxSd+nRt4yAS`r9GZXSSy?hRgoa(2eAETIY{ -z#~UZTo$2QH!$I#(EZ3PehHM) -zZX^p0%zy)?Ob`|cQ?Ky}I$d8ij=;IN>1MimnB^$o0e%x9!1;{Vlz$kNpC7l}aHC_e -z6%P+o0QmMyHL)3Q^E>-G&Hk4huW1cgsSk9Z)xcvUQE$df#ILP9`(m|*%S73%}&WpB>$zIRARMMp&q- -ztlEqgVI5)BQlhVzmm-k3uUMcXr>ROGpN`-NL*QU)q4WtvChss4(($KLRs#98wFy${ -zP+F|rzI)PNelW6BikB|3Tmd%-)T@=ylej&Nh>%AetMuiYE{dN{Jco1ho7#OsmH;*^P+tZMfsPsj%TRXv5@0st8GJ&nz)V*edLMl2r)iO!VTz|L>G?A6_b -ziXqkUENmg7m0oiB=RwNINT8p-m|SyB?ESpVr9y~Umy_(~aguxm0EobGKmFq8*WtD6BUy$2Q8QFa7-ZmW5ioc*FuFUke_?Jp7g~coPsh*BHb#49v -z*|@vV<)Tw^1j%++p%d}>9{fW3A$w$kJCDYd`Ui~|dBa8EU`iLr?oi&Huo&FQPj&prB)Q|3o -zW2GG9Ej|IT)gPGGb_MqLMg1>JIIBFixcCf*TP8Npp&^7=Mv+u;ilOGZsbhPJIbtGqn@Vzp>@Tau^_|g@Pp*lvv^jmCtLm)6d4(C -zO{$J-x@wT+o0_89v~AYl%2lBRmvE07KLgJyQD?b_5BgK`dFdEAvxt`<)A#v~i4}D! -z+^(aHF6nNgEgcC9I|wHPB|xtG8L6xc*mNg+We1EMFf$9taUx`OB5xz^vt)ovfZ-X6dOVB6x6)zhnmL3rYk&2@a5~P^ -zwcCYHJ;%}ko_AgLbdJMgT))WrzFX(6{rVzKJN~Q*WbnWy?C^~)kES(45@T>L_Y}5O -z|XquHJD@-9C{UiDOF+2|qPN_QDjU7`r5wtzB -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 -z-v89_;DiXh`QzE?z$7SxnTY#fNlP -zf!Ff(iM`>OZJW=fNY^*EW`lD)Y>CBA_AAgrmRdZ$GT+49G^KXtyp-On{b{K4I$c$# -z{4|2x)9~2@ZJQ8B3Ptta8dp*t<20h0<|egAZi=z~mCg@x#?w0jW*JGnu1P2DW`Eb_ -zTu0q^t1`j<#0ZT#&g6S!D3wS7t2*~ek<#U)3^gmVsPwT0!TNo^ -zG!5RYUPV=Ck@yz4lJEWR8loE6{^l91`&$efg8Nfe%TYn6IVj}Rf%HXT^ocHaW}IA> -zOOKB -z&qXxnY#WiuR5wf*i3zY|U?6L035DniwETY`;aMn4 -z&g->44HJApPoesx7PR{L1&@htxW;40rYk%G`D+GV{r;fi$c>tr=0XJz%ucIp?wx=f -zo!FU@#xvB-HD^XMWZsiN-XuSVS(*Idrwh-_DiuldBjcD-+oa>8nMnw!6A2Lb-wBo} -zOI&Tfi^a@*V>h>z5T|HSyE`O3s-oY1Nvb5;dev);fMvTG;3Skav#${p6$bfK3;X9G -zt$d*Ad2D5SWOfnN_Psl%|!;ib8&mDnBh?PThlk%4hnctjx -zI+PdkH{G1o8Ye>Q9WNk4yMwok$IpW -z%bzk#`|fn8!{b+q1nwm^wCbQbT}v_v_4aq>r02f+;<}Z>a#MHi)9CUUp)#N2!h|1$ -z+u=y94cqT5Jm#oFy#xMt`MgjgF&SR9-`?Ke;EW!SY4JQ`v(YCZlI(wnmug#>9_WfR -z9<}{$DUN?J?iW~#kIx6MxDYX1yYrL)NO#~7@dNc%fk-OW%6)CTCB2vsa+pQBFWt;I -ztS6QRh={DHZ<;yE2e!ow3u?BLXq)MKKvah0$(o-+ehyysqC!CluUYprn0 -zf!hCJ{f~8KMoebu8}CVHL&tPgs+3K~QRP=mv8`#Z}si>U#cwg!8&Fj9i^1>YGS8-w^@R^Vr-nQWb9%39=3 -z%wVhWVmF-H1v(VpN2>ep`&W;c*mRq=bJpsi)b -zj>YI={JS(`LM-3whS;GAz?RZTCKVAWT -zy3Y6;C~-%3y1DJsolA4#V%fBp7aiR9ZpfSmXD>{3Ko%WQoeDM|jnesNY%(+z;_rC| -zavdPjE$GE+ynU0BZF4=And<=u^EU!|f=a|=)a9y1>plu_CxSus;2E;f)&2oFKI)wW -zIcyLdOi}r7F|r;bPTH`#Wg?0_v#kkoXWij%*pL#(e0l;+ -z&1LXGOclpSw -z7{nu;lx)_ZVUbm_#A<}qOD(h@z!Y@OumjHx0l0|GSD#zaL~A&VGD1}9Ez_DMx|#I6 -zRAP412w?kw@pEH5CrG#|(`eCr4?&<8D{d*qe0K3+l~7!MTsh+)%g)OIY$Rzy>~!l3 -z=Gz%`tpkC)w(OvT{>{XVqwV;J`OV6TAq9bveKjrch`7 -zDTzDHZMPEr5*nk06l%+9hgu!$IpAr|wB`*#gAe0y*}Uy!6tw{+47`u}^Nm2*wqTpd -zv3iV^U9??yBTW0^6kc%^@X6E_Gy+bDod+G8LUsERxf1E#!W1k>s`~UvjF4;878aC_ -z#gTq|HhKPo>+c1U_brA?ZGieNK9F|cYVn2Xe`;|(7yP)RiGM2*7X~wYsA17?vL&c- -z-I@O6UWY5$Lu`L1l0B$i`X8&lN~*790X~m5XuvmsiTdYME|phu*oG9bF#;+qkZ?c8jMe$mr8!_eP}eb}%QqsTzzC%Dg=d_+&aN){wOAE(IOOeR -z^r`Faw>}@-;?i>=?fJ}Ts}f5R9^D-1g%}Rt*D9cU*3O$B0-biKVI{e3&|vY#x8tuS -z@k}g`sMPY9$i3>rV -zxp3ZfeVqs4g1&`t8N~jfM9!#yOwFSdHJ0S_U!_Sx7iMwz2nZusCWnM8)(^S=Z$0W(nmut;mUHrbo^p1(R8^K -zZ?&VPsfi=9Pv6X-g^ymV@z0|{`gq&a{T@-%&zP^jNCeX+9RH>A*(*oAfyspkcc -zs5_cqst?d1seE#t^6Zc&jsV}IAPB3J~e -zfEPQHCs%cP6EmZwqnQbRmPyIGot0xF==e{N44>SHon%w#&EX*Z6vIKM6x_2BRQoIR -zF~@$!$(hM;(CmgF8@^|~hNEed>$<=?-FjK2&f^P{0?g~NwN^3){PhV2a|nZ<@(IzK -zX17Iy0^DCEQ$c=N8QYx0*_8F)hfn%THzvI!pzRyrt -zg>FIb-M5IYC$lQXskf28ZAC55Z$}foBzt$<3ERV?i;fwzyR+>E_~^bajDuTo7KEzO -zsz>VgedGP5-_A~c{n79k?=sYO_wbR#>8?qX^!4bZqoK|_%+3-lQH|dcKXJ2^Y|mTe -zmp@)EixrJ7m*00y>a7x!B1Y{*y7I5}9M?Pd1}v251@nTvU>d#WMjlE4bp;JsPO&z` -zH1Vv`jTPnpm5%mOd$sPfYS=%H7$PkL0F>oDe&ioMju7o%8 -zLZdPf?EqI|Hx~unNj^dSGp5a5>!)$}P6s*z==s8%X3<+k2proPb?|x0%?l3h1D7M1 -zOwAdXrS1e_q~E)sTu`^hOZ&Q^DG%|f)o+bn<)BncG%Zo7-W79+%FnV)OC{4^r!A@? -zVAlZ2f#ITkX78j)je!H5(hk&Tdir<06+bW!%&a4U%p@m4>$!Q{vyGce5*`5ShP5{>R7K1qBGgPKMp&U}R5h+YI&W()5yG7=_M+ptj -z>>J_52SH8F^-0+b-4Aq0MM6LOhw0vebgwW#{ZZ)D>ou4*RB)BJ-d;R*XZGV&B7rjk -z;N=PxQw62%I%+9DS+cV;pG23D_Qv@S&=P5{Mp_^@{jo4XZkN2qw4mLX52p}?-P9cW! -zm)|QhJ)XxdB$MAmgmXSICIp@xw9RxBDZX62SocQp@&0^3e~D1m>aOIJ_MgYc;hW6p -zzH$K9v+!^DNUQ%edyZRMt5#TyWJZLci`9GsRfnmX*6w+u3>Wcy#t4F>xWA|{H_Fg} -zYl=ZkM$Ougs>|AWsW-G>-(rgkFYOKFtRV~q209NWqD%+oP1mFnH(tzobNO|)xOoz6 -zBhl)GV7jLhLvB?SM=!{t=0xok0HzFpomXLU5fxrf9$U;j?2SWj*LC>YJ|02PSv@ag -zK67hJcjM5S;gi*a7JiHJc -zT^@b&a1a~}sOCx@6ELRV%#9-rmPz?#vk!+{B(c@m-YV{lxpMl{ZTEOh0&TPCi3Gg* -z2aw{76>A9(rc0e?g<7di`KX>e$77QV+kToVwplyA5z+;GIG7egRDR1U+Vi6N{pAIE -z$L?9THtB&U2-_%h!+z6_;yp|ipl}Hq>XaJeU%3E8CuMk{ZP4@r?zFq9Ch_P**fkar -z8zG(gqw8j}c8y4-Z>_ME$dawg3$Hj^J*)m<68F|_Gn%W}UD=ZV&S~s1yTLkEs*k8` -z6`)jqT(=)STcD_DY??uu#T3`DU2Dp&8wxX#j+tueMO>duO9a8|YLk!x6jQ2q3+6LH -z28wca1{BK!Jhmu&K??uCM+kM<@PLincnGzYbH+AS`f=Jyi* -z&&<}2aQ#c!M3_BF6E&r%;ic48#$bV_|B4idoxv2Cvr=**!$s>OHyo92AKh^7LeV$h -z353mdOTj_-F4U2|FGce|p(1p57>-{Q?mT>d-+K0JOC?^}wmLbrn-1>X2GJWC>!Z=?N9Z|JKAu^fInr14G&+ZImQ837sF%bFG;budFxB*iaFy6F4=p_Y|2xF;C^PrkvYL+ -z@FYm9DxGt9+qWd3jO0oQafyfcNRF*-;+LJOy3w|n`LT_ejWz472~{gI)stN -zgDmX_mt)?#nV;FORlW7;X4*hYJ({FZEW5O8SVuPRLZfuf@*j%~waW${*{x@-Wm3k! -zT?is@bi7QlG!DI;c{se@C+(cIV6YvD@DQG6j|TbhIPQrI3aSm^fnxr;!+6n^<4*Mj -zWvk$&vFKeUPB_dx#Y?Eo>{Q?h_`3)^roIpb!!M7HtT&A1!Z?21YyzF-We2uUP4*n-F4g`q6cKA -zZ+1Gq&M&OKe#b-mqg#U45d|&b>PW4`W8z~(TlHzCxFvj8WL0Q{gg>WTvU3P-OE5dE -zNhQ|WSBBt9(^mvI1QUrjb|gz9`pTCwnW-__{&=6F5j)N^Rjh{Qz-~<)ei>st-=%2brZxBGRv!a@@P7`#6e4U%l(=*-x-=ioaOX=4(gcJ_#0{_BhCcDYU&aSAq -z{PD{<=Ww5$OhW4nV?6P*XRsgX$Vd1&Xp*gu#Z$>LFR_g;#)>nDJJ!+ONj}WQ!`$tH -z;hZ3!^5DM;)BALP;}lBZp)#08pRaZ -zb~OM6GvFsLJbNCg5_qp1-2rC8>J)GgRHYoUe#6p#AH;jis&LH>E%9K9Bh;mp#RISPs$@L=c8v>2_06Yl{4;u0z{2%MvCgyF33fn=o)-9}GU#rbY4w+EbPu<*N -z;(m!zuQAIa=xTcZWzj$F4};Wm@`uLR-iUkaX^DPKMvL3Vvzxx1F?ogZ@`w%HuNG=g -z9k33lxz@;uFeJ2*AH6mOd8@2FV6LY~W|<6;dlH$aabON1r>6r`B?+Z7Mj}{2-;TB{ -z`eO-~*t&v6b(^+z6(Fw1rfnI@)=SNJuiR?Cw{(Tm_1VJ{GUr{=EPWCj6LCxZW{0*U -za8WPOU_A11-0h{&%c+37KOjIJ)B+6-H1_mjzeZ&!d3bww`cNZbSL!8MmRg|z6|PgyV-E9wAD{ggQA+9H&pemKuevUd3J)nb1R#p!o)B8d11CEr*s<~5CE -zERMwAId+3=udwC&4-`h)6D1PO^3)&^<==w_LEt>$nG;`aaLsx!s;r5goAB&EB%5v02t -ziErO~{JwwTzPoXEXJ_Y}Im1kcW7bnl;n>~FsUSa@zO?*Fn2P(B9*zTO2f4Upy@<}L -z63}xgVG_97jvC_k%2PQhXvxlwMxfr`2>FWQm-c(eXq?QrxXqb%a14QLuh{OxOT<4F -z8Ea_48ZQyiMIUN@d)yK}N0&TI_Tg%Dw21+0s~S#~r1Pqlq4CAOv;ut0? -z_iC5mZ_FPIh#4HoG;xkX;S$*JW8`UL#n@fi9uU`{k+^);`D*}Q3S-fy} -z6RCEO+yjFRU!^BE*;@0?iEG??Y&*$Y>7R7|G#h=_G=WA1Gw~aIV~n~zFCOtawlobh -z$3%CpX8_dtWRMgqjC4>#k=;v0)ru8$k!sMFEaK$K1XW1XH5dTnAXdZXeUlt!sF3;Z -zpa^c=QSzk5$qoDv&@CiJeVlS -z%Z08F;mUjVV*CDpcY)hB&e2=8F**9^b2{?EVa~o!HSc%{$VP=ClgJ>>IPga(3s?h6 -z+_$a~6##H`-ij0qRZYyj58m&Mci9qn{ -z4pbh*+Ez$WO$hoLP!i6SXIh&0k?X{qNuieT1PYr!aK_zLh-;w16zj%_8W~(;c=TyM -zq4A~oz1sH62-{rh^T=51?(Zb~J)8hZheXDXPZN}NOXtjr7@mJBwUAHwFfdmSwRC0K -z2_NK9OAd3v;iME|{cwt~hg4HM)GWLJztb@z}OC5#e9q -z@_|P}p(L*B1b6$HmJq@LaOD_T_#@T?Ngfh?kQPugCL5^lEfr4Q*H0M&uL0!&x>5t* -zzbQe2aBe)J_$TpEwEII~I7$n;rn -zMU#DGQL1VvO7yn#SK78BNYoufj2Oo$@1|}A7bo{!-^x9`n~KG%B(xD(HYvs9Qp_dU -zsgU~<>qE7(QA`gD`nfJi+n`Wi;dfb% -zo$|90h=2czORqyWK@DZsM#<1^tNIP2B;lOD=gqCvLY{QPlQW8qUT6XwI9ZnisJWBN -zdrdn&nJvX?)*aOC@zo4zK}r38C!*+*U7dJANmrS87ef5SWn=e`p~wlN@x^iI -zGAa!m>xVeu+?EHKs2|A#B4f}NA#@yY2i6Ni`GxwzEl$(c%u|o?1uM(YmogG-FT;DT -zs~q;C{&_!Bdtz&3e!~#wIv&#)vOlB*^}27hFHXXfslf3UC5vEwlzD|>rAUIIt1`v{DJ0b^WcRFVqZYhi#g}sBt9q<6TCm*aE22D6 -zmDnUchdNgG*NfSEfn0XUN>laJ4h#P!0G6L-$#v?Tw|RmE08Negq>uL~@~(EzVl>8!*OJjwWAU?K&m-u{=1=z)iKi -zV(@Q-?oh^$bC!;jNV&0k9!NgKBnwa*Ag;PI&s(n$fbvynY>u2~z~YfM;{e%#*q`gf -z>5wfnACR`v2ET}^;Bx2o$z)SXnFz_nv0~XmwSQB)|-BdNwa1- -zS(Q53WF7L>NEoD>Z3MT8A^a8f_Eq$+7t=M_%~83o0&5Sx^VRo4A3&*mlfmNHBck0v -zM!3WHfzZJiNY6cGsYz85E;^8)n}#9CjMs^;8NA~#x!UEm+8CwfJq>pCa4NQ60}{W1?KjuS}TSerkQ@RHZChx0~l -zV@uPRSms~LwIAGAD@4QqY%-}UDdDHM4?AR@rVyy#eB0H@s@bk7%@n)1c7-~FslZu9ojV>%4c-)0Pw -zkXHM6Fu&GdD8>m|i^1VXI}-(8Aw8Nj%5V)b&c-aOwK@|ce+WNN7yictVH*bZ{$BqO -zbFpEiMjHo$d@+9{1flsf;G?A`{)nxk?SANysqQC&=R&@T+Uaj4z*)TBANdO# -zyS=H5AU>^?!p(-o)a!(h!bIyShnYnT)KxGLNPLiEJ(8~|Ng;E)f>FdHJdTMXMemh5 -zB;^p$W6_^lNERmXwqHB&X1bSIq;DFIDCrJ0QlhFp^Cku(@>%tD`?5r6x=A$hI#JpQ -zd9qr}o>uX0Do%HM`=krj{>L7b7GdeVsF1(i6Rx?guahow|*%FKkOq)n#Pa7o*gaP)x)*Ddl=^(x5~v`86of7HCH5vyF1~ -zSwS5gQlm~mGBTmIBP>vp(uJfef{mBYkM(EK!4v2$LN2FG3#|gvuTc?hNh`1W%iS}G -zX9diE*%1Ci`;<3pA}s@T4<)BK7}H|tRJO$7bUK{7P@?F@J;t)#%~3TVR3Ik?JI%Qs -zW4*|?5@pRlU5yk4=EU$#vgwpiEq^Fsyh(c;9CcPWG+YJu-29aEZ%u%El@fY-wY7kJ -znx2>hkBX68g+G(T?s1aSyHEaPmkxDv)9jPA&2okIUOkgh{lrltuGfwT+Z=GY_(A+@ -z3gx780$MTcDt}hrj`_`a(*O3T&>h&RFl)ggM2@vS>-E>X;k?l`;LI^GtaN@+pz=`H -z72E5hO6vgJuP+&uXu*#ZjKlFoNRG@)B$W~ky!KkXTCX{Ie-Z$d#UIP7H$WJxu0-;x -zqS526&|$K+PnwrT+rNN}FoH4TqztB6g5%!Bs0yd!+0o3gb$ -zn}Iviqc)2Oo#d}Q=EYusZ#92L$>@%BJG%4S@KeS^khxH<6tHhGuijZ(@m-21O>(*O -z(T|F%8iJTMO`~9ygl;~ap=TFLsg?6@n-XF%JYt-iv%?;lz98>w_|BudUylRM2K)J8 -z;el6qZ=@4Ch-oOPIXp3K+}{`e@*s+Cl?e;AS~?mU^p{noD~PZXek-eu$&0TVDup$2 -z-7`iwv$7_>sZX&O5J-2J$6LTuh}`Wt|guJD6pCD)xQbur`4 -zuH?&Tu{@88doDxtho*qrOyS{@pZ`kq$7AV|*P)TdrU#LBGKt2dEDxk -zg~8d>ND6mue{XoX!YB -z-grTZg~Lv&nlcGLS)Z4x{}%qARZoWL5jgOM0d;-RmvSk`ej(5O3n(SIpwi-h?)+D6 -z;2HO_8h`{s5F}@=e)ojJ`O>#o2vd2|)C>^|UCkV6R&t2dGm());XIU(IPq3nvRd1~ -zcGPWo-&+cCwrh+;V8%dpTj7ja#k+&{8WTzGm5YKlXM0(SCl7~iza!ot*v@-zPwNav -zFcA~J(M1-n|D3yhg-Rxgt-JA+rFBpK6Con@I~GSC`3c}yE%|<)Z`a@D{@Xv5W7I?z -zPF^Cs8&qYh9oqsE|1Nu_cCf)rxBGiPBTamb?lXC%=;>Sy=hLZN!+cU*SMS36Dz}O| -zOl^8R15=|4180Rws0O)GiE{%8z1{DYu!k7ib%Kb>e&LMirO0XftHwFPg`|~LA#`aN -z6fo@`=!2AL%%XzjoQ`>EZ -zLpU$Jb_$`+;KxH98}TXZfxJ%Knm9>54w?lY1c+2QK%2VUf=XsERMgo6Z%|QqG5$34 -zmX=Y71L%`N*>vEO@M&Fm7e9AdHqy`O -zJcSncW>)K-7GuvJ{Ht{Y6hhVqL}QO#p^B)$7f5v*jx$4;B+cI-UHEk|MTH?6IQm$E -zwe^S*T#EsoI~rN3YgxXo8qi^%M9KK0lWj1V4!ikFyW__vxJ6AhFfJ(iCj}bT#i7t2 -zo}H5GiHjpdV-)G}M!FQP;6wsqTiM2(|0E4W;`(2?pe>#eP>e=C9C?{bF%YIQy0VW1 -zkR}~|O65|6EG(3v@U7KKc5$+&M;(zq3}Ir=_T1$FS_Aq)TcBBqj2csGN2*Ei1dGi? -zPUP7@OmXijQE`ek@stu6>+1qG#TIwKc`?~p$xv7|#3{sA31 -zoz0WPrE>U^jBBwP(e+|0I+{#MAg)XDW(jf|0d;uyK|uh1gJ)|oas=;Jv?(&vmI^Pa -z5@gqM4Z=ZvS%8GIFAZhXe;ln`D9j&Njn2vq94++Gg6u^wnUlIc*m1bj7Ca%|%&pc-meCf^{zC)d(MPK>ShVIg|pC3D<^q0n^_9*<~ -z+Y@qaASe|Wcc_OSp59sO?2<{)K>QCO@1fo&xFpby(BkSKekHD{%gBH6F$RI_>*sDR -zMpWormYXS5QD-vLP>Afw4QB^s^vOBD`%ceSq#zj*YC^X`$bxHoQ~fo_whHAFU9YBh -z^(WO+sJc7Q7m|&dFUn8Jb+Uod)&VQw&#-`8!m5yYUi_kvCu#2fN8#LZC8qv=HZWx* -zM*qelvUXOfZ>2~K5|el*PBm%)mF0yv*Ac+e0NtPE5_DYV%u*H|W$Qt)cw&nM`&7?| -z)`qej-eq*z%UWz_GWF9}0GAJt5sVBT4ye6i2#rAu5JENBU~>hLfvveOg(ffRSH43Z -zSv0dMAdxuuD3xST|MG$|^~n#@zob7;b4u19kLSFH*5Gcja_S~_z(n+^yP9v5B343I -z8m5xvaWQ}&8f~E{iZ6sUW#h%qrtuWCgjDm{g^}@t -zncfyET8-qv$oMzj(A5dJIf|&sij+~OttH`Xr<7F3sg8kk<=7V&JT6i9Jvu~);`DKP -zw~ajI;c=`XEI~kU1TrIF%}@*r?<{w1=DkY93PX5f;F}?L{f_@hsR^_~EeJ^+lZgyz -zFeWDiO2n1;{8oal0&;6F>^OQnS&N;$@DV7u1olX`KeeYECKlfpb8>HUd;3~;V>!jY -zco?VUe@pf|P4Du@XZ?ZS50-LOsW+GbuaGtDMdtYvp>Kx&30j1F?hTRbq4kfGp12IA -zfsbBW%nbaATOOL6Q4js%)=3-B;Y1dF>|bJ+x#+bHlIc5t{v)dG&T7%We!KvI5kZ6J9-7qMi;q$>x8-ODjuuZ9CRL(5Dxmhuo&Zl2S4t2UTMP4e -zMLy(Nsc2C(W@j|YSjqGifZu`Eo4U%g8REx(cU&bT7TKDgY1S>(v9a9jaV-j|_?>4E -z+^U`@0jdIMr4Rq@GuB~qef$P#g*QnGeJ2Uu9b=wY7#< -z)noJvn*0vtC%rgd{d#2X{q}JrCUg~fPhI7KqGK%&2xA;wdjdk;pT>8K6y?J>MUVZT -zA$jy6c;=rt=_h##}#5Y=CeA?8F(L;Z>%&IfWgm9VszdZeNj+M3Fa5w{p7g -zFcRivj`bU?n$d?oWtrm`8{-g>g>Cgi(P|*D+(kQ@*pXCz$d(_;PiZ-sU44h+ -z5=UQ7u1SzcHD7iqk=Tf<^5WiLGl+PsBq8#@TPuy%sL9ck@>S?7O{PQ4_`&PmC|bKAm+lML+$z1yNl9KR(7`0* -zsS-c|#0`9K#t0=83ot2kUky6CxZAz+S;5sdb+Z6@222~e`kqxF3K1`(!Bg -z4Vn?Gx0S~DSlVWh$=NPKHr`2|L@B}YpsvAYn-5YNI0n5`BfLg4s^4nY=R6PPW{NyQfiBS4VB7)^175E#!}DjI -zJkkpbFPjXru~zsCit{%B)2TwK^E<^r<`rV9)z**%7W`s -z`#tjzn>C^`+AtMHTpO;Rq7$EN?KwQsQT=3wlQ_8&+g-zH97mhN>{oJk)s@4V5-iTI -zaCA+tB79V>bi2sutTQAAid_D8BEhoKP*!2-992O7fGBoooa_cQ^rVvMTl?kel6{ -zN1SEGFG~bRz0t_Rm5_yB)h|U9nDdE_9&rp?R&Q%wjHxM(PjtQpno0f4xXro0_1_r0 -z+_R7)W>Q00>%1x5hMBwOc5dvMpW@8pZ*$onANqvRsz=R@B3hCedh_Rbq60O|ksLz;;vF)X?X8(q2!k~W_MH3?b!#{9> -zOW(|@8;6r&NU>T7!ThgWqIUgAs!urD)?Oith8e+kAxigd62I0;JpDgB-!3+%Ei8mS -zAyggIgnKXLkUqx|&;0q7Y|GO}E9+C)6;&eIE0M4{p(1lXm6K;skx-x_`@>AFXkqDj -z4q=ditfL}(X(3&uzhBmx2t@;(RJZ9*{N+*({15IK521#jzG;>_$p}wOf3p~;QjbJ!PRRW<(gp%C#GnG&}duK_xyUqwUK#lpmdER)2-Tz?Xdw1iZx`@@%3bsrl)dT2z^Sw(j1I -zzy4yzPBrWC>_nDFf&uz@;E{*2KaOXQdZY~XJnetl*77&`gvQVGiF!Epf()q%=LR(# -z{%03j+*LfQQb_IU0r+V74NW77*py`TUo-|HjtUvGg3l;cAj;nFA(SS~0{j(DiN#)G -zFNvYgT&@YVoqXewPy`y~hwoxOdA;s -zjx#be{Th44#yek@o6gg072$9d3cgR=7wj@=5ub?-a2p)vQdX=@YS-@Sh&LKYdim -z;za=lZsurj|8W*wGBR;~bO%{oUx0`eowN!NMV8Nz -zPTctM$jmn2b}}Gez8m21Kq*ISIbZi~WZ(~w(E`1e#YDlUFl$R%-Cd;?L+lnkl>}1` -z=BViUgVe~ti<%A|0oT#25x%|DwR+)uB}Z)kiD&H8DN`Ysshj_>M_F}!V=z%UR5h=7 -zbEYv1Xic)Su_7n`-OH#qNBd)Lp(5?5pZhb&9=oyY2%mm7rY5Tie>)$KXTNs$$)W0g -zsb9QO#oK)mThRNBK`{N5mI$N9&8q-+0O|veI@TkLxh1BGYMXHZ^X7KTb$4X&Uo4`- -z;a5V|UWSl0xt+{?^AR6ytx`WV{OGBx2CqUr^s^u{z-c#VF -zKi~AF##<~p&4%?VL&Gl8Xx(O8#-`Dj94(aNgK+;f5ZxWcP*$P!iadoS7EHCCn#ut9>a@SJGD>o=j(3*8$R*ac{arf#gB<7}$J#JhH<;92KK -zzd)#j2Eckc9d!q6Z~j5J=AaItguUaR5fjgqlBD?eySds22_qBt%9wS%PHGQI+QqWb -z-34a8+xZd3A(G$8+iRG_c8;7w1WHEhD&vjypxeolrGOOK(3BMC -z%ZsI-(<*X?u6rO|9QbiZjrCdH6`B@y)6O}#m7XK!JVf?;43YeistW&b$lYd@;cf>t3 -zTyebQpP$$2x*UK4M|evm3Q2_r0`#GzecaP*WLb)v#$(on`DwFJPaeV=D$(2A)kDWV -zmghJraim(%epQATMZ~aN6dxuPpNY-kD2R -z!)vUU+$yrhUb8xMC8cOx)r{BoC`p59t)nwuubzqZeht=+bC4rRn;)+wtqzN43! -z>5NNm55_MrO-j~czV17kAs0yiv5J5}j(wI&T#uvaRaNKJR2GT=511`UCq= -zt)x+e{wJP^W4`JeoA@M3Z}%C}yRmi_@;k1Ah{^_-9&d>sxilp*BX&n9(UDo!_dBgG -z0|561*W$7_6ljh8$XWx8!6U=IPSm7?6Nl&vgHJ32po!nXqr@+o^JtsAWr)Cj8>CjI1O~+%3m1^ZVl6(7sDQpsP@-5#RURPWdJ`&C^sXheJoP;@(EXGF1F{ -z0rpaU_spyJHqYEsu(+$K8LQF7uf|cDZa+(GL;KVs1Ghf81;|gOsWrBX-z$h}6y~L= -zRIbSwreU*#&!7HV^{yGBbPU28hF)#OVkV2bT3t`MO#)O^?jr3xwA}D45PoJ@)hZ!j -z(VdQEuV65}&A}D=y{2(f%_4WIq(3AJiL#U7dm}Q2++j8(=r4|*{SBY6x#`^5EuQq# -zDef30*7Co0kc9_owJv?4TSKy92A64o5jQN&uak>Z}))Q`#J19R_HxX=EkdhN=OPi2D -zzd}mi+_10KxRCO`TQ4dfa=oa}XbsH(0EcN35ykG@G-vb= -z>2m6D5u?q&Y*b5AnV%K&IP9N0&1V}T{T -zF%3N7^7LU@tXtcuS%6vtyR*gl<#lc=qQqz?0flZ~(RS_c@QV_G8$wOZacu~A4pt{m -z=HzEgy=caguA&2Td803`aUlQ`1}C}4&gPfsO{O!`dL{6OdDA2|6tO35?^*pvS$O}A -zeuu#9V3(qZJTs -zF>^?a?>k(?l2BGaSs3VZZPWT^V)))PhiX1-EE_g{rnYmduzx&R-_r$!jv>1_J6Z15 -z&W`4`Gw{*z+ostVl-o&B*(5= -zLiXk5Iu7_xkHZXkp>wjXEtXU0**CK9NAN6;hmMrVUyspTzcX;aNu%6Yr1FAy*+Ek#cSy0Sh)YEavi=hd9#0<09}cf3@``5>A6^fO~&`7B|99 -z{;Dc+i52}J$^vs_b!&E$n){kEyKOQ6(GNJxZJZxPKZoPkk(7cc{`n|oy%-b*#D+Wvp$#Qt&p+oHx -zidg9U*t0P_#g{ZNxN%Cy$3D%GLlaTKO@;}b$LYUqdyR4XCtmobN+g(agNrA1-tK7I -zb3kcgZuS1{G@iNmgB}%~W+WMs`6>QW9}@Wlpx;MKFS@1luxFgEJlj7@?5&OuL2Ekf -zwG=3KZ0*&oMMGaCIPqP~=ah5}MZhtT4D$Z!0xgl5h7`O-1~$5DgnkyWtMdvLhJsu3 -zE!*$=2wsIqN%F(ehAZ?t#ss5c2rL5@IdY>YuBYCy65!-yn!Bllio*K9AgoiwJ+QF} -zin|Ms=G|P$DVM{#jWwSNOumT=%L=C%ld@l0Plz{H&N~O_u{Kb3OWFQ$@I+^Vw7=Ew -z@4HD>E7^;!sD+DD4UmHk!k~YMopUd8nW@N%@;`Of3+=tZ;0L+U;QSwOr+1Fl;095M -zFU=U$N*8qtG75PxnQ*DkJ4>ODK#3lan__!1*o!1Luw@oI9j1)g+@ClkoY(2z$-)Bs -z=kM?^5SWplTQg0~^#tU%Ft|$e(Z;n%U%pD=o?Dtq@AorxxZOPTS -zu>snbXcs)BG}FJ&dIR?_#*C@#eI6^6J-_?PLKe@jbzi}An{9#LRcS$90Q;$f56_{c -zZM@DpHh1uI(d5Qp2Xk&4zE*i%t)W>p!9Wj~?Ii@Xp3TMe#3i{>`NT -zkOh0dNzv}hw+vLE9M)ObdYzDe&+Cf}{`q&Yik`&0+2+v;R~+y~W1GoBP+s)o_F5Hi*Xp>Z#*PT0S?0KN_+!{~|~5;q7J) -zmqCb-5)g$wP@eYFvJTZwp>WK8moh4|o*gLw&z-(H;b2avA&t&wjkb+oPB9gyq) -zYW{NVgnA2d41nB|T+GHtdv1ji>hHH2hGM0}SUS>vL%XPUC3!A2{hMebC!mwqOlg=# -z9p{#W=@2?EdkXWBYfTy-C!!xdlPG7tvmSqU1id;YVj<|oaJ0L>IjroE?pKZ~%FUm% -zn`mNRbx{;)^DHpP18KwH?AdyEbazzk8fQ7ggd~K)kkt7tNwAZwUwfD4bPO6BfzxO_ -znG1N7iWC*E{S4Plky%%R(=`O)uh*kSfIk8z)bmgO=1f^F?6?hh-ei&fe7jY9v+Opa -zq&JfT!`PO6Gf-JYTpMVg5OjKaFe7{h91et<&fI(LUV=tShYt$2c)gkrkAB(7)EfD>L@my>ZD%SV#W76q;wC^z*u6VxKYab -z(4by43>|Crg_2z6_L>75xBnb{+qcA==E1unS9(anYA{e-iu$&L$J#l}RkwKfH*j$k -zP@Cg0WiK(sk!o&R#YEe2+!l>~=KcGC>Bn^}npd;l#~Y?K$~TY$>pjpCH|wcQd&uED -zGlH)_k&51rI&4VL2wpM+BIWos4oOpvL6)600WJGjtqXU=CSm2m$|ux<=IQ7aI?&$( -zDp0j1*7JeytIG`Y&1!AQ>eo-gRL|W$ -zES7svWFPXaORVy{3IH9RAWJ_F=8==^EA*^4ZC8*~3M5l_fYa&5S}&<33~*5hIZA7> -z_=g-*dzY~%+`3@|f2toeHDBlyF|lf;TjD#7twDG<=V3Vci%O5Tax$u*IxR4Cp=?xd -zg0X`*0}<4&-iIa;&)O~;Mmda-f8gyNL!Dyf+@QkS6e`c1DC)=`vXI#Q?fwEaW_2K{ -z?Yca-(3&-`Jl7z4czr2>H}B&&cHS4}#eQdym|0sO`!(Z>TCHO -z=u@bgsa1+vLqHa^OsUWnK0l19gHuK*m&jfip7-DQ`M+YrgRSn}S%lwq)v94p=s5VN -zy?DPe-j>)4rldB(tq<7#vpT!EHMr?J>F>%!QHrQ>629!@&xU`;&GN7JyQ7e@(U{*Y -zYqG1KgthKqK08u3wJ)x23x`x0lXVi#NV~=tPJ6Uif-%damjl))q?4^oYAYXNe)tki -z{!Q+Qj>%yx#_HiM|Ma(beT(?<`DW0H#GuqtISd -z$1jTLHYGV`=esDstHk2)L<_vc{BGHfB*wvZlJTRaPSyuln9UE7Pq^a_{$LiXhf>L0 -zyvk)74t?q|1BxuH^yA)6>z!AWIf)xz$P`F^r?lY-+E*T(ozhsZ$avUGo6AF~iPh;K -zZq!Wc7?4GDWU{07m>>*Q7@w1oN#uLXt23>o+d?bwCcr>fVH^~inb#7+q?*0T<~7`C)~KQv0_S}t@r`8jK+5fLQogu1?S3v -zq(B(6%Ib`4;RmIUzsa#{$T>noIM62QGih1IC6|OIwIKu%u%%g;WV^X`Q^xc?WE^%l -z#-naUKhHv)=+C}tNljb&B^2{ZgQ(v`mh49N8OoHwsmY5OTteGcTQ2t15;LwE(^h0z -zutblZc+vMR{FwcpjwD3HybZp&uIWg&yCGrVVe(MjUdr0J8w58UfIrM)_RFWLdTFf~ -ztAMN{P3WS#&+b5GB&WIJq1jU*BA|Zmqe{y0vEC9=e;K$->Vi!lW&9IOFBe&qrH}cK -zQ!o%jgk#B7aO<(Kp1R3q8t^Yr%AB8?NlE%J^k-YNZo*%b? -z$g_jOZ2qyVQpAjFXI&&alO#;C-iT4QLR9V5Vy74UWPcmFxmIYoh#|-Eu$Y55X{P;0 -z_upOmc`u0+;Ib~g?$O{(klxQ5(n?p!rttZ<%&er?J_Q|j3GzgG+SckW%%up(y-jd< -zV3_>nC%!}O$}mm!a<7IPM{Cu-x#tuNfT9)GA`+hHf&& -zMVqix=VD!sbL~BJ+^ydcsWAGur1xdsON!WUAFc&&ykkybc>Z6WL}J<$V;2_64bP|4 -zEb-3;-%mAlOM!ArOYU} -zNRK#$)cNgz$JRHt?d&%jKZuI|%gXn9KUDLV?rj^izAa#X>YbWPTri`TR_g5rs}bqn -zg;IJsl$|=oXlQ#O@Jz_}pF-edaFp5Mt%i^ID;HXOrR0;22#~x|9Py6RtXG~{-rqxl -zv3TS^1%(H=k~UzRMttiEXApF~_!ShyaHuwe*v)k#O%Ekj*^9qfQRgZhx)R0T=qgSJ -z;>K<61_xWneeZPOjt@#^ku;XD@d?KWE#o2OumR2LNUUM%+H_ZSw-I<+ZPp3Tdu#+u0A%(N+h-%qMAx=x<1-W9tK -z-+M1`VuLqp4lL3?m7aNEIn(|P9ap|RM&g!*$jD6%>9NlA~w6cqe>Zf)vG;k~7 -zc?tTK!D4{Hv+I2WNUdd{`X-WH_&(q%w}KLf9_Chr>~~1;8l>SYa?)ivrF%FY=)WEs -zTN|z!RVX5Vnq}~u06H6E;~Igs5pH`^!$!UAQRrx@$`soywgB-1DpA=Ug5z(;NVdeb -z?m^tGt&mpjNo$hhbn&XQ3!>4u$ALo+?3})7(8CZ@X9<%)>Xnj>N|Qi#g3GDZ4xwsl -zn_~JlSmt?c#+V4{NE~xUjsnF`6_V$fnRsSqhv;mvrI2U{STXy98<`(wSl=lyWgoOi -zzoeqZJG2A&Q($JtkYp@w0!N7UPg{;A`t+O26vW>OO%yx9Ud)GP_!x)riKms?_E!v8 -z*SS3Wo^ew~KT#bdk~9z;lRPtegwv4lcNKvVT=T#OeYmz5G+Ag>7Kcmuw3eE?#gZ>o -z?fkwm&EeQdG((R7#aOe#u4PW^(t`^Cv_g8}5=Wl@B==v@kO#cn7oF-w6Z#ftbJBk} -z@k=lKl2S)rCK%qYKsV8BwdUXGE&r}3V0qBw`q&aZIQYjhB0Pc#vk_K5duYz(o!f-f}XaSE~OG)oDJ%$`~+nQlkgeTG%m)z%^w -zl8&R(?LRoXD!b~w+lsaUgtQD3kx3&le=-37f;MgB}0AXpj2th24vGykPILU-k-=qS(Lglq;uFmtdc_6%>l11b}66K+*g -zv(nn47fOeyUASvU|3EW&!76i+>!iH24|JN!rw!P%qUu?BkX(aR>m{+Qzf-)Ka=)I; -zEVUm#cMDK0t#`m9(Xm3%ZMoV^-&Z|C90*Vy3;;_Tv{Y1O@Q*wQKZf@(Fp){DJ}fRA -z`sXcq=rI4<&lPQO-NlvV1aZc5D>{Gj3u${cNQhvQ{k<0e13bHO0PntLVCPg`(g;-s*vTK5v1s9zZc2&75A6128NI_Y^0`oW_!GB -z=gc&}n?m)r7;i&oNIe-W@mUDMN(l%6B@Og(%PmfzloUvZz*S!8Hf9@cGd9D#0d^U6S^x|$d(-)~oc -z93uM;=?^{kJ8^GwO*6G;`M;ZT(a$F*M6{&;2C!?ub)Q13TT+4@&S+i8&4Q}Kje-X)z!}R{C;@TMuA1L -zzy0nc7wIN#5D$l{?ych1Fpl{7NnB~rYiClXx(cn63QLf?TX?pmt8P{H(o+ft8xMb1 -zwjts3d_-? -zx+rQi&uLK))uo*hj78^)LNg)=POL;nyUJHr@J|!#gfhjoU#(9uH|3*Xejd(G!!eBF -zAB5J=ZF3CeDARO2VtQ2mUVcWVF)W;|-gh{FqxNK5D#z63SB7E4+9^izr-?+~$m^%E -z21{|BG#RrzS9uRp*8wl*Ri4hpEn}}6@1Agh-1KXiA!PtE^dhQUN^q{1d_x1*n7~60 -zFRpXI{W)0s>U@K3Je9*QY`7WAT=c6!O1lrM7|n;g0ucH&TWMyk{AG4QrNz@to?Qmq -zIZSi!x5(VjEAOpIH9j8e#}vhR;fPI+b!ktxs8HcIUQvgMX}-3viqQ-lR2vOWX< -zkxo4BkZNY8%PaG!3kHty?ayQMfv+GQ5Log;>ufDGVMnyB?FN_KKOg_YUAF<^=^%#z -zIrTT@0*#*ROfvT$##FC7N@9lRyjrIq_6g!TLdaw5Xv3i34vueacHcMHxsnx{)+HEr -zOQqty7qLmp9c1!WJ9zALg9!mOHzQvVbrpc~z${Gk;c{^Wq9-5nWW-@}melZmn0ht8 -zhl_)f$X=Bmc5hs43~t!>p7Bw3&u0=9+jjBPZ)a1A`HzjsEBC-Xeug)>Z!iP^UeJ9h -zy4OmkbgM0{Zd(ScsBBIQC%nPi1TVmqJY0K7OiIKRV4^*Q?*$ -zTCkj(xq1&&UL*$mY4!8Kd^6pDR(lc$J_))!_gsZ)kDk`;N5^c*n=$>}DmC8K27Ebr>CmrQ)-I}vh}XMn -z7T@)_BKx*M;h+lEZCpGaw$?r5=jL(x<17CZ;@H_#I{prAh$_`cRVUZzLPHjMGps6R -zufJI{ud?O~9~UBV<=rizq-w*;KT0$vOwP4qJi{>{v96|ZcovppX<{%Z*kYF@9`-hE -zXZJBo=*53agJh!5ttYU@H}sTpK6ViI@kQr_kb0S&K?d`G^!(0ZG3!BnwiUNUWE_6{ -z_ylq9d*~qok7tj)>!Zh6ZMK>2T_vPG^m|e)2jOg5>{nWY56C9rna=GNYL`gl*z8g# -zOHg`PxNpNMJ+?vav<^R|r^Ve;Icsg1HY$HPW3&*^^Eq28OHQ_PKj&LY -z!sOIN1+wJ`w+BVTPqsn26AV5T%w{ADOW>+apT#*2P -zy{TQ};J$_S#NKv$_S8DbZL#iCZ0Mgi|H`T0lR{CrT>oSDKVMuoK#Otji990zk)X_} -z{NOci(zAqP+U4%&()ExSAvjo%BVDG3jj<%+@U8$9(k&Fa=`|9Bs!=D=pU;*2UJ~;0 -z?!XN`FL*^%&%;L7yB5Yz7>Rrv`KU(8Z~LG{G5-rzh8*uSb{wT>kM2U;-4aCI67r+x -zuLl+>C~oB+WeopG$Q_smy*{xe#cC|25JWWlAZ17h$}vO!@K8dGZAb^Y)=})pQN`V5 -zQ~c6CZwP-?Gk$B}6)x8#>>q*gDK-9Y4s~OmoHq1^JAe5gwR@gr>xn}wj&IXzho2U* -z51D?)lD7vVT))dY-S)}^`sZMLTrJQ1Dj6hP6N8i_o5qT;j#)Y)X|1vjGL;U$77rTh -zL0e5_!EJ9XvEI1O|7t|@1}~rX9}R74p4dpnPa_%bcVZ01dc}~~`7H>4o}=BJq<^u} -zg3){Z#dPRcFn -z5B}r*=^9<=c!D!lKDP&27bgy_bjf}0mDaTIN1Y92=;$2z{x~Ent!l?8_!2rtk~Z}= -zx}UXG8kLm_1`kniR;ibpa*h6Iw5~NpzE0O^fR&TB_jAwg{Ze_IE@S@&4&Hm?$WvB~ -zI``9?P${Ig33kU%Q7zZnJeg2P7RB(}JC_8ig2z4nJ!VInoQsU$KD-m+ae{%|21Q%_ -zwE8;vH5f<>QKPLS$1}O -zz5S{0zO?hE%tC|i_z(05@GQ?pzavhq`<8aC_Po*`^{jGj?mg7Fl6-xK6Y12oLHA>< -zDRQlAtTjeR`krdU-(8LIT-ZemF^;nx=UOmxC}ow59QMB7*l~6O_A7aNx^FE^nM5W* -zg2MfeE==WK^SIy<*zs;KDjJdHG3ðP9;3@Ds(O%T4jhF;0=R_lfKz4A)N~`?4i8 -zARs=lBh#mum@c2KjM6_QF9P=i>QGnjFoHs%y(_O1$h>}jA1_%{r9N+3Z -zC0(i8i{OKIF!=nElS~@UwXX|Vr2H9t0c6jEv!_T%a3t_NpaoY2qf9I6B3SD6{A$pz -zo@gOh+>nCtTF9e~n{MKAbVT!X*QLoqY;!CYy$QEtMIFrKtkNImO_n0fnwf>Qv -z3LJ>geeQIWm~6sKb!8~4g>CUYw$Z7YSG8N}94@b<&7wUB{-LDXv3`vQWx?(TS(dF7 -zL1hqD5-o(IZrCA+*!F$vI{SWPS}MC7InC=OJtl8IT|eb|qGw5DK#teYlI^Qwi0>3# -zQ`U>tQ!lgqt6%l__j9N!ne_TV?Xpp3qiCuoqK8BOZ}9T -zbF(d;r=q9QFJuE`X(JEmrp~Ok{xo>*Aq&TfPBlG7odiLswis8zJo*ejYXQ?>oR!7v -z+-B)_sYk_P31$m!Djw>+t!9=atQ)Rgc{6y3-q-jPw{vc+8``X+RA{Oj&Cy@po?STg -zj~>Y%@bQ8AyeXm@Zxwsyyn{vT+c4hexyorF${+qY*a+nY+#ap;LT>haZJ(R!9fs;~ -zD>s|p$tl1ackOk8r^~lYK$qk7(A&7?=YCzuXltMsk!Wdy2dz9j=y#>6baKW_FYFgwqvZ8K!orciCGlQ5AQ$zylUuIH|7R{QR~62 -z&C1R!w!!M_AYU5XRAS5{6_<77vvGb^xDI&941r2=zm&$!2gWsOFE65*NBVSzO8+T2 -zukXz-7B|2+AcIwDDJPCgFRrNKMiw)r>F>{aw+924wbrSsk6Fj8S{CU%Jz&J+G1gJC -z59jSD8_6Rcb*pnwpxn*vbm0jb2Z-_Bq_b#E+^V$Gq?^%n>LuBSD*V>-pf^ -zUE@RMl#^bLIS9)$VsNKNVgJ0U;cv_&`Fds9#He`(YT7}zRciDLT(=a>a3S)bzd1_j -zf6Soo1<{HC_2m9gGwlD-bkzY-K22CkxK*s)&bzxaJI_4Nyymzi@7MIfww#-UF)O>Ag0q_d87zK`~<`MOn=lIB8+t%})o-g#DUF1(cJXolL`6jn{Inev|;lWGldA7C5 -zCM_Jgi#2NLW;l-F=vSfs -zFl=Jq8`D2;$I&C3g-5R;%V{13-@E^^n72dtyg<_Xk9w$U -z8fRh=$~{t^q|Df#Hia+d#mJ8O&=4qVTiuP+l|F38tv>`j2fz~hQ}>l?w}xoD>lu`#T@FrQW+>{(w0J_<-t$FMiFoL!@uRmBG<|(6 -zQMFuleZn3Jdfx#~?i@&7AzIc*)rn=EAMQw0!IY-&B13pN@{Sj9J-#&Z?EQQ|h=4fO0!cu+Jt=G&X3HWm|- -z`8iWrlqnhk=_SoZhBG3;ZBsP4oF@9g=p7R|X3F8;oH;Jo*@7azMAOTav-yO=mtQ*R -z;vxb4WuZvOA>Y(;qZ9CsK%&YhKmJjySTx%3@a=JB-5s{C56o){%JDU!c|@_!n7CFp -ztKmf)OTZ1>Ef)SM{l5b(_Z1~vyF -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 -zYc>F&X|b*c)m{_P=fH_#E8w -ziXQi8E<`bZl!pv=2;j-Cd{;Cif=tnAmr;XmKrdJy2=!ES=45{PRLC%<6pJ*b?;R1% -z4)dI~zT#>DZQ(e~k-eI|g^agT|45Eb*34>5O+ftv*sVmJtx?M_N@Nu8QT`o`bBkQC -zb3p&F%;tlsj1fox=_h;-cm3r0rukq`V-@L3jQuR!z1n*$15oJVBz`lh)GP4)E4d-g -zJ2abFg4W@?=u(fIPtY#P`W@SHWZltEwHjEe2`R*`(#t!spSmk_K-C_>RTBMF<(-FQ -z!X}Tp(ZRc-lgWn!n0k%U9kFYBBtqsD3sFGhD}_v1om2^*`JCTp#n2PtBdY$fVSbD3Eh9$uA0Z~{4Nd+IF^+1S>|ccN;FKWF_m7$LLiq_g%M(&AGdoivyhm8l^4 -z3c0r{jUeCc+bp-<$4N=e6-(MuYT*({!H!I -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 -zaR3u|wW(U6#l+Lgw2BT`ZmY?opE&n=529j-- -z3la7Yws6)b5X;(+E41#PV6ByOE*%GAk7}FRJt&2~MGDe-ffXJlUNykj9%EqLe>4ar -zdj1}ck4vip5Ea}qY~eOF{v4e|8kO`Yil5~Q-2jvr6t)lX{I}Zy|84i1-|{@F3ZtqI -z&jZsRUve052`#fP!$Zv)YVI}UCa!j##^lmj>PMl0@i{j;4%RU4@2EO%#ae+6+ -zQcvDL{IZD>{=^dKdlA9!jiCT_sd+fw;mcxJGagaP|H`|L0Dx~thU4EpajN_1 -zb0Rq$R}@pm4{2=&-JEPC#&HuP4lhv}=&}HMD={kleH`zu^?#8uwSOzLOjSv=d4*cJ -z%qRB)N@|khn!gFrynZ|}6tg;?bklVxgYhDcVAUb*#P2DIzY^s`oI!AHBy!m@^p&=Ay7vzn~W1HYlw^++Ll2{%tM1`xw?VcHkW3lu;v`MHi -z3EbSUoP+K?45<-^knDs)wJ?Fhcb3RsdxqnV%#&oVGEIl`ikywom1O277)w!wrydq| -zUjNR>DWmuW==Or6Km{=v=X?#a{_~P%8#`M$QG}3uMhjxz0w7 -zx2b63H$bNt)3<*VL_odfW1xx9S1vCiv0vmDqj)@wv=}+LSKo1bJz#m22rM_B`T6(I*#8FzKh|f1GmH{B;CQG?}t#+ho6H` -z4w_9V8Dd$tkh6`gyFdRLdUOR|OjuU)b>WLu_1F8Ys1b5;ic+f=TN+*nekkA1Oh3BJ -z=j-z&$Xte*Pqdt?PJ>3IuU37E%}BzO9u=&_-MFN(YP_jDn1WkA6;@!N4lUQfj|4fG -z2_U)m%~p7rky1I({8IO -zWd3%Bpf{>lzJBzz(=9N;Ij4%e8mWwA+@m2I>G{jk5(-OtR8H(mbK{^?LBi*ittZ|o -zL5hNGW6iT;KzcE11Bj$nFeEmAU>b8`U}Dc0KP4Gb+*>p#05ruyG?egXO?U(vO}GT8 -z4%6?5-5cc5uR}|YuXp&HJPEee3;wL -zknJu(FO9}!XG;*K#M-J{uqJ+QTmV#IUJdYWnqe$j^47lB9;jxNP$t6>{hb2(q{ONd -zXD6)Z2;UK2H72VWuNwepd{sL~aQJGQ0&=-T+Z-4QVr(95t`4Ug=(>Y@U9fzaXfqWs -z$4sSRoh}>un340X@a8<(YOWPN8apOK>FTTH_xx>tw=;o^%JD{j6jsxDs9XJrXbqb? -ztLd9LCRSv|aP&V7VvC+1w(H(pZ*23iZBepn67VK*XhuZnxZo^_>@P_T;GojrtGk)wuGK(k(lk(ig -zckVl=j0v?qbh1Oqmz}7{^`#_E4i>;p#zdgu{(3lpe~=bzDg@xbG)yipss5#CW2jn`I<4oFbQXM6gw -zBV935Fhm4>$1>bRrsV}JJG2u7$D|*0jiq~$f=D^iwJLp?Vet}6p+6@qXo$Ep7&q9D -z7DhQL<23h5h#Gk0BJ*>Tjcyfbd1Os_L2`CXA)3-+F!?PXhA?1SfkXIuDp#C?YPOD+ -zI+G1wFVjPY$$Bi;P%zh@Re9wOLVX5hd8_KfgdGwKifMI9SZj}1Q9pZzoW*oX_23>C -z&8SEJi2E@D;0_>u+vGWqgmp*I6k?gRySz}FWu+Bng7?{IZ-w!ql^P5SB(eLwdUHOXyduCy5#B$To -zatg(yfNzUH&8H2uwr{KIHL!AaO_FjsFmrtwB^EA_=?1y-05?j1d%W<*ElIxC9byg; -z3qSc_WZ^B2Dy|izs$)^q84Sv9LYzraD`7MIf~p{Co2eQgl%!mQXopVmvMZ%{j1NLU -zO%<%m8Di4SZGH~x% -zXMIycixu*{a6!-SS0N43fMDj+>Heifj5xstoIm-!2DtU-7^=e7?CSM|rzcp;Ab}5F -z2j1i0hWX+nj}$5`C8i7xDsLEVwt%=$L`={EuP}LnU$jb&=2_fbl#OWlqL};6%@9O; -zy9X{O(4vn=uFA9pxPFEj%a=gw7^nce5pPaF?OEd)6F%Oq__?by2~w1x{)!O&ln0-D -z;-f4O>)ilN3tlQx-4T)ZhPtVI#49PJKi`{xdL98i`q@+iG07Nj-GXbnsup -z<78MQ>2r=i(UoMv!Bvx|yzqyTUc$8d&lW4Ch!ONEvi~#H%j~T}=Nh|(34^zP+MCU2 -z*;l!a7D2Ic8;-e7M1|(!jyvmLG+&1pV`nT0Jr~t7F?zAL1*9q*#j{WFnHScBBR78& -zC}QzD;T^_zeUMit$#e9Q&~qhw<}~dMyUrm#Mo!eHX8lg>jV>${^7qpg^va9)-oFAX -zks9-STR-3e>RWwnQoK1c0JRK~QMWxueIA4E=T?ezd{b6tR7A}*UVS`Sdas;*oVP{`0B{JbWTU2Qez-6- -zTLrPt2>{Rn|C8z~B7fYLzeViuB!YXRIf8{dfqZDn^8eA0&S6C3o?oJESoSxad-@TW -zZl%C~w&@y?`EeLGw1{x&c&*$Tc&}PAeVfhqib+ThfroSuw+pyBf{a$o>zxU!h83eCca^R|n1s9@qEf14wQP6!R1n5aA9OMcthwpWc!J_tBCp>cEaVpzU6onyRN{PvIfxE@WeJUB -zzAIw}X7q{M6w!Pvj#)4`#IolCBMh!Oc&u=3+F=)WJ_~D^Qc*(H2S=?V2Zb`&87L&v -zW1$qT)Ho-t3tumLyT6PURpWfpYr#&G@Sc^bLXNZCV;3M`V3Q`*-dRZMttu^FW+jE! -z-r=j^LC@`k4tQ5z3?RvR5`=1l8bi8yOXfwRgOViB>;c0q75<VKwXsdDb-dGQC?(c7fBn(*R!3A5KuSG8zw|;tEs;y9 -zz5wxC&4QX+0%mDpL!m|@YBF*})x}<#6%=@K_;F5 -z!QWJKTl{93^vm;FnuL -zkC@C=&3CvTnIdld5UG8Tt0m~%e4FW&VDcqy&{8F0B1$yqRZiDYefHCN`Iq*Z%dmsh -zxL{r;EA9uOz-i_lc&*$-=wdk)ebUs*oYsb3Svh! -z9X^X7#N__t$8x&ij|#o7tC+EvQLIG8x602@+dyNxGxkayh0x%E60+WNzDhyXn_d2_ -zh_C|kj79Y2@vQhCu+<-Lx$>{|hl#)NYJ!zn4ofjcP{y7VhcomY95;l;5Z0%BkKMD| -zRH%A=v!dxOEV)|O(w%<_W4F&EI`T~Ye*Va`;v9e(;P}I5oSpo(c>1k(G`j*vKnE+V -z8KceY`VE$wUM!SN8HDy?<80`tqaHyvPSA%3nlcawb>512#PqrBEJ91iV#4N#Ew@mW -zeF6YI;Rs(UY854w3i>ONR$odgjq`iRs+!7L)6>g84PX|Yn-!!QPtQ%SCd5yb9}`aG -z++3El58Hizyd?l-H{h93b3HNP&60lUS>cF1EhjHb_~b(fRdH{=a*?4Xchu|A!;O>@ -z&+G3*LMkAjc!O#R{a13s)P@ -z^~-&yA$49f-I-{M_`iRtKdz-2iD7>F*4SF3As|Nxj3FW4w%| -z1f4nMorL`<^`x=9AqYNPwUW+MVO+Kf4ac*7ABzU~htyILlsq%XnA(P -zd21>$%=4eaub+mGU*K|6>9iE`dqU46=>hcM*gfIZKcYmq0ceX35-2_&8R|@SBHeQ; -zF;Ag>$6A8pm5^2(F&yOzLb^fJ{P7?wh*gjw&bi7911+J#;XYe8mix24cPH)43 -zczRvEsi&C&!Ay|A%F5MZ8#eI}d{DHpe6Eu_eleDp1jW7~mn%r;fdl<4>WTK}H?FhU -znE>eq!FY@5S~Ff!lppn0{+iu1T$tAY0rWa;;6}jJ?PG_jZ+Ae1JnR` -zc`4qHZ28DBfPb#|Z!xzo8ocNlzp5Y`8rTY_=Z$2f(fuHN3ok+{-sDgYYeop@xa)tk -z^a`p`*|?fLRqcD5^N2lCD1OiW`o}(R`4Y?koI3v$xG_&Tk*EdT$Vgv2!#*@jQ-fwM -zk6()*VWvy5PnlGBys61`(@3jfg-d5~R+Z8OaSw>I%PjEdG&C5SjPr>3%_F#ABxX@; -zqF9{~>X1Aoi~}nx1mD{x4qoW^V;sNW=FXa-iF0N!wtUFi_}=fv8nzTb`GgmPV(Sct -zH~YB6PzXj%PdA9A(9{ytc@s+`*)ULlyc7HMF*%vlG=e~Gb1*+MjloV&0YwH>j?KVK -zHSfGB5uZ@a(QI^_tR85C!03_|DSe5-5*l!dLb>VP+$)X!4CiO!GbCakb|&FPs4EM9 -zc&0+%Q+o60RQ@NPAjx@-nhy~j|15bA@3@CxZY{?Fg)pVQljNLQpMJTM!>A~S&ixnY -zqDF?pl8~pkgL>zA=B32*V(EN8{SQ*fR$HYTF)1^_oj`7jQqy}#S_f1={R+y2uczj* -z{>XNDWauD_{d9O;P4yTmf#M)e@c7$TihR$LE7S1e;{5CL)(J@aOz=)TcTIyiW0*|h -zU6))cl^7Y~4=V)Nuh{n)$M8?iTfV_G_|s{IcSjs))J86p_(p@q%L@%JH~)Gc-T>t;z)+Hf`aA%l0Yl90(gTU -zs!lh$jnJXgFlH1jptcjGkNi2f&|$!M(}097JRxW7XY-{HXqJN0i@itmbc4Fl0R4>R -z6dfzSv+G@ttkdPtKORWWNU%M8W{xjyj$q#%@_N-1AU`dlK3Y5}VhShdALP8`--IsC -z3XStLym>PNEh?|i=~kQeKRG4|>OB5vuw9<@8qE*dyNJsat8~yz-@-uZ>T+f#k_R#6 -z=bTf;a+b9Sph`lo`y+IfquUj$Af=D;sJX;p|Y~D_ZYh^0_%u0HMTw^shxBjt35`WUf(q2nP)XJd&k-lCm)Le*? -zt0GdXu|IjA{gM!PI^Io;CevN*f*M!ZBgn2BL%1D7Nb(z|+tQ_Bn{ICUKc22KpsKFv -zf`FuScZZaebeD9hfOI^RG}0v{AkqStl9EsX>29RELAtwOL*@FV2+H( -z#CRK8n5de?YQr${xfOG!`I5!;&%$+pJcCv8oXBfsbmqKa*odJ6ptHb-_}G|cVD(Z87iId -ztrP=~nSW)}X_BZ#?JC7w_<<<;S2Rb^1i>KA|EBpqiFTfI`-GBbE5H<2GZ@5i|;R&wWM}^XR>JoyiW#2M{ca)#r -zG@wxK3y__BgrES7Qh~j%ZSzcpsgYK8`E_#>3NU#1>Ko`szwis!LCw;dQ>nh9lJlG_^CX3c -z#<=tdgsWHDag}cYGX6kGJwW2sd*#U33UBtJgHZQPW3+(Zp?`_Xe4whRQ^ -z!(KKq1^1P_Q`>jy1RygAxug>)uyj(J9AWx+M0gPjUwex_ybXBCuCry2R*+;r;S*9j -z^N5&CNoFt}a0j?_RhW(aOO<>vkDzBOvhss+*wvzX+;3chx -z*oi>}Lf?{`>#pG8OM#6#roDoTYQNh$E6FE`;q%*RRs1wWxS3S>ML^wf%;`zfaD9Uq -zASm^@WMC%lt*VXsvU`<0 -zD~HxjRIbKV<+Zu5%|i|VqO)(Ix73|S*HKY>u&MJB{Nlp9=YU-`sRAu8+A}w*9i^Q) -zvA*YguT7JVWVp53!CHYbo?4fC*AME|hp!)_C&N# -z0e!6#*N3t|XyY5xUr;MOwZp~~7dloAqYEd*CpM7i2?+(hxxm@ah!qWZyMa6o#-75Qc-`fluQBv4;KM9SkSdQi3h{IBaUQXt -zW={q`?dZ?<%=!YNut9|5dpr}J-@AJ|S3(qVXaaFjWYa&Qct-!h`iSx+i15r|q(N)+ -zkERTY=(Tfh|J}0j*d~y1m*y?;lnV;ZzW0!0dMNLsfD0Ls4Nl)2{qgj@erPuQDV3Rh -zgJNmE^2SF7x2yVpHg6oE>1~UqoQnzCW4|L5*%dg-#pOtQ)=~bJ~%OA>;aw< -zx&wKM0NDn6;_DEkdeRWb{m1vBj()&KLdFcc6w4i>^F2jjnTa7b;E6tcZ)Q)>1ie|w -z#kl5c&Z(EYIEa7)E9}jwaz>Tke0;sOo#^h7=egi}&qd6aqI4h$wUieDbr267dturO -znrZR*hpE`iwZ4veeAN$@2>8=fUDm1p`LUMFofX5wKz8fdQ$hz9LSX&0g`|l_WJU+2_y|%7yH#yY-Yl -zVK_%-TvLlyOzXuDQgrud7ly~rk>iqg2siAY2P~+0XfiSF{9X)FN_Q!rZkvEN|M#J! -zDd>&=K;n4Tky>M4Go+;s>R^OHUIqyZmG_{P7{)!>8xW}Q^f)_$grYRx#Z)0DDJJL( -z3~o8vLSPN>dbBHzMxlPuL6yh6hmK31;cu0OB4yjF;#9j)ur; -z1f4!&`yPc+2EA>+Fwahp9Gu_$HlWw;HD1vSdOto -zvXW`*kJzgsOGa>(Xzw0>prnu#{Wy&B-8Iece9Y~&Obsjsc(k!B!lBl2L`9>58C;9M -z;+LKO!X?~#_hd&rOcZoE7~7{QtG05YIrtb}&k9VA{jkEl2tU4YE65l8&cuczu-sYl -zP(9X3Vrv0#^9CwC^H-A4nPy6oA1bthos7v{SCKD@!q?`@_V^P+PP|UO$hWBS5jcXy -zsXn(L|CvgFTCpiZnhq)2P-nsU{U4S;!QH&5l#8BO_0WA8t!~XtsphOJDysIGw$>=}z3F|A{ -z@cXEbi_&+tJ$5ca%osHZHBUwwG_1nHHM^%U;`X7hPWeh2n2{**^bhVRJmu$3R$3qb -zXnA+&%5jy=rJdT;ej-(g+x?kXY+pQTCD2-m+r*f;a|b5%{yKU@YUD{k)AlY3t> -z!mT?&+5yZjtF$%%)ZtwJ;=Mk*2Oj -zcUSlguv%b@#Cuh}vR6>gu0Wm0OVnJwIe>YS9vb3a7PN1dN1{^^KreuWkZ*`{sSHOg -z^{VxaxV5|I=%?3R@=gcA!Ojj3EJ$#JQ=SP!RT^IU;yLPo8DnKIOYe=e(u!w>F*!iPT^RQR0mj*4sH^ -z{WKchIFD?%JL8KWGRtRw3u}VFNgi8|+(fQj^oB(AcA`$3nVFrT!fYs?tRm%>sdQV- -zyhkN?0XsQ%6NoJbx#?_Rvg5Vuw0-R=IbG7SnfrWGvnF+H)DSLe2UAI`pXb&ZpOaS< -zOSZ3tJ&0)MC%Fx$XB(Uhw_kRA#d6 -z7b-n39D`V%!~tTcuGga9cJ!)X@$O<6Totq@f*C>my|DLa;@^V?H(NzrdZw@%j)Z?w -z8j9ZKrklT5b>n%W#o>5swJXc5Up%Yce -zu?@cV3s!_8U({Y6eMW)Pdc=Tl-9P039tQCkREZeLk9dzW7~rxtc}Nhj-$3El6@va# -zqz!^#|DBSd5s|@|I7v<5EEd6L9@3{@;9&9skO&HpwSyqJG -zIoO`Ux(?Be_uXQP!Q+x=h6k!HES9e9#~S^cB$N9|(q6DTWFWq$+`gx@p;Y==*DFzaI`QlN{ -z!v-N`l7~=URlh&`NSB~gzyQ9KCpW2<;1CMUM~t@Eql+8-ln#jQQ)_It`d7EoSdUwk77Z!RjSX6Cf -zJiVi5Fh4sm;GOPFw`$i>I+$B!1KVdQ=R@@ -zt^BHWltv~^p588LKnb6ljXdCFdK3=7`3EFFxF^)x9RP6G1ejq4JcQVy7U_-|fyb$y -zS*cJpfmlU89n~}av8X_Qn+qSU-21MV4Gd`F{bef%kjA0cFf+)ttRL!RK0~fW>Z%y -zc-!1FcMk3|hbZPFb+zHL^pG&1GAJ&{CAJ<<(pgnw?0UAfoJbUQE-%+Nu|H@5jc_-P -z=Hy?UL%4CMkC44+nXOkwnx+C%@{6XLhCgO*<`I4=r;V%qt+}Dv*)@-QW9JL<515b{ -zr+Y~Ac{KF8gz%={9V;($)C#^PQsnw`_TFL#8R)MIQ0H=1V6c@0sq}nnbv8}$B=xyT -zNj6$Ys&;5>10h8Osmr6~A)(OLKYOOCf4gfxeh{5S7Uo{pVYJsyaV4nyISSZ -z-aoW4-cKno56HbACB2f#ojWg;+^s#=c)%JOw?H6-!J*lqY~dQf85!1Z&<)lnr{bz_ -zxlJUZqrd-}z8ExUwvx2llbM+;cYSdUF`kNr-;GH(YHI$_UX%klDl)n7X3{Xp8`87}u@QGIO^4csz -zJYq(Cdj`{$EtE#ekplclB;<)csF2V8V>34FG%3(oz-_Oj99xy%=ZC^C|3TNhAcV(A -zI|Ra|ur-X1=Vj{oH}e>comf?;G6fd(kzwZJ*sC?WP%&}HXOvK7p`I<3-?~P&{!hLF -z)k*W?u$L4CFXsc^nK~05{4T1vJ8e}tfWp8?hzta`g7t|h -zj!q@gv_NM~vcjXfeC$sL5l?6&iTUMf+Orl76k?vAt06q_+pU45!-vfX^yty$yRG7N -z*^2o=tlYR8d@#>Kl73lTq`DoQX6Q*g*IqmIwh`8ltFg!0T3!bxm96bQC@#AO6G`##USeflb~|D*`gelt}Jo0+GD -zm*%hQMBTHgR?kJffd;C$XkHU5MsP)SyXBhGUDaMZi5+b&1i;XJ3p|dC8{}&{df4c+ -zk&#WruaN)Zfigk3ob}bX0VcHn6*E|3uP6gmM}HL*G;JUicjK#$G*~q-_P!h=A#3`2F^nzaK>6bDMa7nxbZ&N6t-#%r6~Xf7pOAYBYWa8&8>x -zGC0eJMAs#0D-fu*NZ@h;7ELA>=WwwOz`79tAnNp$M5=9&kdhITT_?Z -z7cOPuN8^|wC8hRrcXL+cb*JN~Wy%7k#0;1cpUAOkrmzIu8NUlGoziS2AS?95P+H{) -z5;e2Aa149DPUVM13r8C4#V@A9UHJEBLi|KtXT93W{cIIo~2cr;m_ -zm59+!+)m_peopSz$=gu!D2qf~Q&Qc_@$0!jE2`aZ1mDd@SSXzH|>I)|_$PY+~KxRCb2mRR&Q -zPp5-S3VY2+&>Ub5`>}@dk(5z;GJR^? -zM!be0N&&hRuaeuk#Fy|?7&-siiV -zwcSz?ulwgl;;;d*tQhqg{ndgWJYE&WQ@7s3H8(QGj5w}Laj&K~I1fvSj*#Dt+If5M -z#Y3?QighCfrSx-z6OB4Z2IAgKXJuH!lZ^*91=#OTo~lRgEOUv^@(*pn(ixee#>39! -z@ZGID$0m6+apS5|@>e$w`UBL$5SOfHq7MoGMEvxpf3CzQ2mKVGUzdv=NAl2r%c{S2 -z&eGVF`islcIGzw@k)3%J$oG$}zFBx$_}hKl7Cyo&PW{ie@Zfx0?e1kORp{;_8m8_Q -z!8-$k#U_ARg0<;-EvFc$^m#B`kLC_O8YX$$p_QUO-WkQm#`7(?3iS`p*LHX$C)DVT -zjPI&D88PUx%G4a1?IUeD0Qz^s48z416m&PfQcN_~9kS%DiF=E}@T6%G=fVM827%A# -zy6&|-dQ~x$OeqLBE-HI6Z&8c;IfaJSF6xh+euHiRF$v|lohML?YN?JNgbw)r+nwls>uxv-5MXB -zU_N&HK&~3yiGI&~+n-4?=N?L-i;X9j3L~5W?!-U{Qfh1*Pov|#e(RJx=XHNE8}u@04SWB277PaO(L`gp9$HvWsi@2&2HP2!lw28l -zQaAc;4#t8wD?*}XYSP&SE?9s5^F$-X4Vp}qH~@Kn;RsTskAo#`uQsQWQT=WZc*qDd -zG`3!upJJD|V+p{&nBemHVtTpPPX4Ca4=P+sqoHBsaVp?$+cu7NGlb@lG1cICIem^2 -z$IkGA5yjs+1E!^XoA|N&`cnl`8W9Rn{H)I^JKn+%arzEMXuIxwYIzp%q*jSdfj*O_ -znv_PoL2R)6N3WEWod=O$fFir@6=KAB9r7rYpg>B;EcEmqa@UOjK`1= -zx;L8Rl^S>K2fiu_n-$@&4%4iLb_C*t7IhXHwKm&6A^icB!p83|{3)ZD6a8x;G#Z|| -zCTp7qse2cRv?D90B-_=O>)oDrTY}H-hF{iXDc`h6 -zIf=>8IkSpBjQOT!$n5z`Qkl=Ot>YNqw*kx|SO-Q<*|V^^89&L;;Kn&oUYc+))XiIr -z&j(rUU|+LR-l=OBKbfz|3x6H{-yOE=8vYO8dRt5%HJ)a02bdRLm-Z1GpQp7LWEcBx -zu0K*TSkQ+5_3aCWO;L;qZlm`1zp&tFQ6+MIsvpG;y%#x-crwxe+fDjj;2}uUfQLFn`66SMya1*ZQST2Q6&5Gela -zIzj%Z-!O~?&ujo+p^R~wbPnl?j>YD(%eS8GfgZFHfX!K<7LRdzCzDnvzkzAC?5$2h -zoyI)y9t#&flc77_mb7?_u5A7!3f~v}G}y_K_x*~uxl7}ecQQgX;g12v1EoD^cqLh^ -z5U|DbRt}r*hv##g^E`>%D4GeTjlmj{VbijD1I7&u&27eCZQUE~{5PXdis>*>Zv}ch -zKC=+loNMPP2Pq91Xo*52KUQBI%nwdtK=A}afGq=};eRbUUteZe3Cuhjb=c`44+w)c -zMUQWAPD2%MuS9sT3BZ&jI%gyW`=*_T2EPAl$AdP9*J -zqr6#~3mJK+mE&XN59#LCL$Pt;?=Cr*$gpJ&uH}^pYF%bD=-tip_Je3dd3DR@o!{mW -zZ-UH(;(&tf)T`S6FvBc2=)afd>+y*x2;%Gk7%(ik);7^%Fo$rwW9uoN&hk_{fvmOf -zwC;rrzg2%Dt$LR5ORF7%@NB81t_JEC&lMRwr5|c3l`3agMF|Uy1)K89%ctw+Atvz( -zSc`4~v8c6KWz@K7FA`*Wq+XP~5nj1!LSU`ojoR2)njz%l0^kL)|acr&9JGI{i -zILkkdtbRI5gn8jwfA=D_88W!DWDEM%{rUBfVjGjGS^)=!?dhaADCfG+P%J~Vm9VG# -zMqwM9?goR4I(yV1RSAO&-Gm^n{%xOp&);X_DM=vbL62<=QR8t;z6x`v;qt)#Pf)CO -zcDZ{amtC1TYDGGm>8*|A(EN&~?7?*9quNughYnzJCqet7>s8mu#)eHgV9~=)9DBN} -z#4oULe*-T&&|v+5#GQq`hevs)%r*V9rIQ_ntt4{}3+4GUZk*%!Hi4k{vc1(vOw7#j -z`N@R-dctur!C{L(Zh@MK)w1W(EmE(Zh;dC1FRyNlyO$stKvD=61w@A$?KN3#+kLw#%pxFjTZm&VtJw^ju>W$aX -zMFrFn%M=l%UHVOBcyC)CXNtw+2n#+O9LEU`r>5Fn=!KOg89_f -z&}c+<)Z7L$hIQFOu4@5$@tl`{59=E#pStDkNokyB?+5Oz0JTl3dd4`N6=m&*_Q`xI -z9r(V-lfxF-4!SYSw7X-VNd$cZGY&7ULBo^zh)M`PbF&?kS)>?XtOp! -z2^`3uZ`ISPOEXUlgH8L;xf{rSmo4-Y=z>GgQG!{LN6X#3H}%R%PO)v~N2m;o|4oGY -z+GAw;0Q-T;zYthw_QItzRbFOiL|Ax5$erU_0+u$dz)le*K$Ad8QNAov(a$IjnwMES -zBVjzG!&+s_bJxFNJp&lZjATgkL{Aa82?bQ~0=tRb)?*&;Ito2sVHeD?JBOZ}Qs}*; -zOi{boJ2Nq()u3|E^hd8Y|In(2Pif}eM{|2y(hnzY@CN-VJ_g(0evbp6b{3 -zJ@|EH;e-bEIBX@1Z}29_eniP%rNc_!M0k1elrKXm7gFEzQ!*{ozhO&q1()T>ivBeI -zIfb@pCgCcadkW(_5QscgVc&oFP{1S|ODgR1EoY-G5bw5-x)d`$`hxJ^&Z}=svt`8Q -z%!dEsviW@#xw44s+L#^s@tJIFY(yV2gBcT0CL3pf(FD$AgAJ8f20}~}eIm~BQ>7C~ -zGKUK!Kev66Ylo=&164}Z9cUSNSH_5+QinD?L)PE6h%{$8(dPDrvNe(?ITWU>WDu%W -z4o)RndE>|kO8PCfPt8)Q`M14^Q8a%JpUVr -z`G6et#xB3<&{~9>qasqY8_gUavKS2Rn8stx+(Dd-v7~Yp@ -zPCtn7Ym51C1SvJ{{{7*HLUDC;aYm0sI+T617|CM@y)J;XhBSaMhfXn%w9M&~qFMM~ -zHGcD*%Cr-hvOq7|>s;eXSugsICAS=ERsyn399)7@I|F5^(rHCwu#J|92_b$9NhQhq -z*ZX(eMNp$cwYn*zOHuiqU{1MM4nabLh8irf{|kKBsJ(8epnA01Thu(~q5Z^pE&RK` -z5(m)ev=lORuHP0d^RK=$sw~XX{LJ;KRK+r&S^$hlS@p-xGryK9PzTssdy472B21D{ -z69oK;-1Gqk0g4mR4PIp`nzYuXW%)~B`Xk4n(PX^W&Y*BmK%mna7;lGL=aV2!y}J5t<3Y)GGeE#nHZCc{ -z-j_&|%AQ032RGVGpuX=AmhlrtYqhC({U38IuFR(nF*CN?BAznX>er8qy-- -zp{?}cXO2;Td{;g3ofdQ>kyDFTT^v_nKabRdnO9+~j*}w|n_`TTOpi8`wIaJW-jxy( -zVt{W3>Fcow+0)m^v=-l4cM2UPjK#jYOmJJA@vcssS_Oq4FcMt@^ABLv<5~xAjonCI -zi^pfbZWjA}eGpRQpPvEUW7FI!c3+b;k-x%RYsaFfq41uByy&l3jz~bC{5ME^EB(~8 -zmRz*cX&X~XeH|+odf&Ll&6P3~I?C*3Tid^=<<9q^ -zyB897R#0C-%(C)ctq4TI-O{{XW*IL=W{SLf&6>@BaVVP*AiE7sab1|*rQAV*@su`B$ -zqxqqce^Tg*5vs1bT_k-ma{5GNHZpk*j_nE=%k{PQ}lntM2ff -zI*-zGEgU|a0m25DB4<&PkBYQnFfdZ41wc~2mnqZnjv0qT*Uwb|JOF;{Qb0iBhzQ~0u)OZI)wyGwQ5(-brVR?1(C?=EWuLo|%gAJWS~ -z$;pG03WD>57aD3?;R?S)N(AY>IygcD<=gE>-JsEDr`8-RL;)*l=PKDAnQTyR3az%eufK|#l)F< -z=g70f8>M*#^}5?+J7YLH3OOkFsY-G+r=B`b&iBmPPcN($62hgK#RFbC^nc>udwJ?P -z>gNBDq{3o;(MUE&vRp1<`*f#AsfVmM#T>xekNWYjyAzihJ>^~l^e5ZXS$!VjsQJw_ -zjrE|cRKnIDsyg*Ouvk<4r2LD*Z16QX{hQ2;n{J;ocF1Az(U$Q_fEAio5&iERUJORo -z;M=>K$OG_6%B|fY#RvHG-+?*?62hTSfQZ&CI}T*-=I`rf;d~@MoxJ!q%g>MXY#&c9 -z$NHzBiHD{&WwjxbyJo&SbkcjR{Y$_@x66Og@xTq_z=H|TV8|LPy!37|dQ!r^PMJg? -z-YaU&5o3FJi!kqVXr>_)R63HnNF>r5OflbCvxoG+V3d$pIt7x -zNnf&!`AioSnW;P1(xoi`pnky^;D<$Gctse(A7^>S=fz6_VlQ<>wZOV -z^rF}SGCcpkfWgkPXzH*_SZVw1qJT(ytw)f&I~2{%X4on$e_tD;3E$c@+-Ff&Lb~`r -z56eQp<^W5uj8$%jz3b{(55|Iy_F -zRBsT^g>+IBbn&YyCAZJNfHcB57d=nS3AF|y)T=iJ)llPJ+7Id7oIHMzO9q>DO%8#; -zAtZfEqrA`cz{@HSelzw5sVGj98cK6>k<$XKYu?GHU($KRy8JhsqPnH-)}+55-5$bR{)RmevnY<N@G9zqya&5SC$$wl?lZn8f&VPujj!xDu6UDthl$G~?Bv -zSUuChVj~p&c`YoIu+fqw;Lb-Bq0D{kKRd$kZuXk-U($W@v!`#vAtoMuv@aX -zkp_>0SE(vu35b0Ez=@O6MQ($F8_ -zy2iqSvw$0rjLrlZPpH8iaBlp2vgOtTFL3%B2_GF-K1!==v)Bb -z2AsrNDQcpNcxArQhV`2Ri-#5l_dYUUYXQ_0$jy1Uwbfd%8m3B<0YC^qN5 -zDp2@!h_&?}HmyO7?aj9A0;ML)T$Pro{7hWpYh~99j -zw``fdf$^u(cS>+$*i5>(vBD)Vwd8XZEuZeN__T$}Xak;6kW<)}*=td?-;p}xoA%jt9iO935|K`?9D#+Y<`NaLXaHi* -z?4Y`%WPUD$mayu2-`j6R$~kN-&?sNf;rtWPEEtdF0D;D9B8SGSw$pky?x+CNFT^Px -z6|j#{i1jwEf%kG{Bw*|zufCC4{dHA|K!8Bx$`$n@tGlD`zl(u|e?Q^n*o`G2;gZ7W -zkr~52B)v7~^z-o#*2&EWIvmW~65IIHD -zM-{td&4bf4AWXXOPsVHad)L_9NPmtU&MB)<5|1jva4(#TVCGZ%7JsfX&Z8zl$A^)1 -zl%N-STHqi<^tg*B#prT-!d)b1x~nc=U2D)Pthy%@wqblD{T1-@T~H>DrM9L}@~<@8 -zUg4uQjIWADiRU_<@JMwCef%jqEFcgFXrvODiIfzs2)&b**kj}cRKmS!Jpp#UD-%@B -zl!R_87S2Jf156$qhjUNEj|2DYjpw!$BaH4Y_5EhhL)`$-F1cbu#p3Gd9HX-eZK#)2qp;1?_hVB?{oFSh5CQ*X_! -zTMag?XVT9OVuZ0w`a6F5mH5gN#gk4!Tfj2#QE&k>;$mP1utHf!#B^*-ERdHc@W?fHJU -zcR+n$HEk`zsBcp7-R}pB1ym}rkuBtq=r>Q<)NgvPeOs|oM_oEBY;SVY2*Q1!EK%BkqgoX1u_j;{n7rsl6;M1CZ-c29O -zLY_x$M%Zt$L+*pU+7^m2BwVks|EXC@F8a(e5T|aXkUS1qd71D$nu|s*GARdHB5H%O$RMA0acE@qfK@8*EIQgEB?(M3PlvIDd)6*V&o%%-H27oHtpEEHfxt-m9)Le;p(p}_7lS+?xi$QK8L1XYJ%z(1E|0VNtP -z+sk+5C=eCR80SQ{hs2;Lt4HC{`sZ)o?{_?!%HI5&Sq&PO4d=TF7k_?r`N}F;T}}TB -zOp!@?%3b)tx#Q1JsD)j7-B566iey~IH&T#NK{wq7-qSbRI%q?01F-2Sl=`(vb&k_L -z@{+46t5Sae{s@?X{KCEeA+5FjqRjeZY{q(88hy*y)aA6y-+YrgC$w-BeE{eiV9Urm -zSDrr2zjF|qhkz3pJU8%$^P+Bg#Af60t1tT&OrN;2IO!*X7>Bi=-O$I=m2lJoO1tqU -z19&cARxby5obG(5EHY{G70!>>a=TiX1eyC_@z2KM3TD)t)Bj3@lfgVVV`h7Us;gu9 -zD&t?|#$z=g(P^?o%(+>xjlE;_uFKkC{u&_sV0ilmeBcjCY7CEzE=+oU!&+c3Uv5jE -z>glV9cPX+hl|Q%_Z*X;kP{l}b3&Q4q0PgR@?Q -zt!9-sM!J5&31yhnS)?&jsUP~am?lEXs72>HbAYu7dhz3V!t{>|@y~I7LLpb!Q~Uq% -z>hgM~T|mD_=5+GHyT~&8OZeG-C(}2ss1UJ4_LHb*^fu*zO8~ZdP@gFE+0Id(rQGe*p=+bzTbFGa -z=zN)4CHeU1snx+}EcYj;uD5o%^svd^m=j5VVeR!{&v3oCK)84IhNfDi!wrrWdbOtX -zyr5kUHB%sr{Wvzd2`e+MGI -zppdZ*k0{m-kN7$LEp3~bFsg@3-e#vg@=>${*D1;KT2~lJVdMM7TZ>@x3?j?Hny9Y$ -zf@o*=?uwm_Rc7Cl=?UDvL7 -zn+H}TfvxPY1~Cb(L~D{6KW5GJpvgRy*$RJJJg$Ptc{%5AwVO&GFVy@iDEyI5nm?D} -zrb;3x!d(>Ewm`0#xA&jCC3J+I^8XeH!FQNdT&VBvZVl~ra;5ihQHe-_)pVv-5Z-MQ -zoVV}W;GR*YjP$)43GCAIFfk9aF4lP~ulOJIC)WPZ3Wqbv{^E(Jb%Cf-U40jx67@)E -zxZ-9IsA8pt-Q!=TJm^bI^^iL6DBNN=D$#a}2@5fz4h)z4&g$PhfzUmbCtERfC*9IvKs -zKL#!w^b!MFZPO3Wd>NgSjue{WS#++Zs3}&CAhRJz(EGw(TUHbut+#ESJh?ALg*7O+ -zj4xY$DqFrVqiT@JT`)GEpk09=1u$F6Fm`A&t$ZzWe4+NXx@-VC`Z`yK(#TZyYIu^if%b9H -zf+_BIFIPs;iItMtgE>~4r{5Lz&qEa;vTt|Pu9+<*>ba3LMl+j^8XH+?)1Vy_)<)GK -zE{1>C8#lZVZulj$T1fl((e2oj|JBZ4?}wt&U^)uSU&{-Im`3=ZaZMl&V9GVGeqdP4 -z7+X8~ZMp|TvXQIB5>8%qF(Z;WAjor|Q}B7YNH&x|R{@#%4+=&tIg%SlSJUfnI2l^^ -zDiEo@wT~X&O=~FQIl0gvBiKqzEpt<-8lPp=!X%VVeub~EBt%N9a-AL(GvxY5m;Kwq -zsb}UZB(2TzB#~D*xVLhf;I^1$PIn^HP|G>xhVGU{qOuoHwEp3*+mj9~PdnWWrcsfW -zPbY+5V}>q2ls*KD3j`fl%UWk%$Q7F5Y)^2b_JsC%xc(_a%#}2&_j83(0b-Sz2_J1* -zZcv#EIO(CPc|3bY=40^^vFVglV6}dlQ4vrW9^g1+23b*!R=K?k>L)>I^*7=Fw#e{I -zG5R_J##GHg#9F4yNiFjpx|ujLR^M`1Z)Pz$0mqr+U?ErhK&_Cz#kcRP88!A -zAF1TN^3ctA&vecXPb~A7+%IW??+U_*Q{cm3Aho+(PtH$?Z`0C3)#&kVU0pLh)LetS -zMo~etX)O;L1wer+W?xP~*HE+oGFETM?G^Yjmf%iM--}d0{`V~7?Smx3a=>K=LF+S= -z#2sbZ&il6xF+xG?{_a{rH!yF+hBy))C53iILxHKJH+Umo=+6n=<^fdmKad9O8^kj0 -zhY)_$QzgM3ZJp1TyFWZmcX<_@$$vfHJp$|mU@d^U8(ar3xYFLA;t31o_7LBAs6HR& -z=ChmyNcaO@&8ppdqKf2I$q?2xJ;X}viq(j8#(UP)h5C!L%YC(3-uvMF*bt$eXWi0j5h!*& -zK5Jc1liuN}5$VQ8jLjD%cp1y6yd->cbaah;#rcOfyntq_7>V!oCx^dYv-12xk(!5N -z2R)qxE0YSQ+6HxSvgUq}}x3kug?4Eg= -zGPGKca0bj66ztx3)^4wN_c{tD>&ZPL3-kigw_mm|@0-@0s`Lr9jiTvvn_|TGoIFPS -zpPT0GOLz2fJL?L}`&gmRg8Jm1jOMs2Rj8?#6`+EbJvo+z!ME5Guz&M*>{rrtAluMqM|%LALieAh-d(KbHz?5 -zXp^n0{y41;s=tMeGg8}~srlIooY0SJu;HnYZ-kbjg>Q~S^8@Z0k -zQNaQx_gCAB%S7jEE0(}FhuS%)%q;6N`Tr@i#NEsU&ObN?fVsdLf(6IjyOj9jT>e>Q -z&iic|t~rsEiHk4Hu#z(8+~LnHb)Pe`4%H}Yr*X`4C$v%~^$c`bkRGK^CH2hfgNW2V -zIkt+ZB5sP)z&nB4EEWnm#yv(}r}O7Wp$+RV7fn -z3^7))R%d*aQM89K-)UwW7IuBTRWh6o1wQqiPFi|F-(j^gayjup2Lkz0i0`_@{y6#x -zT)MOhq;gP-X~};>AtFn3_P^P0eE%(5RAY$oV5 -z(@wkk=*v$tr%44$%v?b-6!c@{&$$ctI|)3YFItKkyqg{&N$m)+({A#}^8C(abvr%6 -zV9uG4%946#57czPmc#p!*+FfmLhKI7ywCLW!jJ6Qr0eN_#x_v>Ga2ph8kV`1Uay<*zSQP?I_XUa-c8ZpugR{6WSkpud#guI26F{9Ac(p -zNL!*1q8uk@S#}o*>B%e9I8-{oj5J8*EcbZLkY9cQ*vul}jnFQ$*QsWNt*%GTum -z6MRH(*KbxmzD{TJFFS`p^tl{eMg5#22VE|$*zG7-OTy^5^>OM2jz&@C{5ReTGct2eU9`MJYGed2I0|ebbKrUWZylQ_P!) -zCdnpBpL2Fa9sJJmOCn;f5O_ZEfVcx9Rt^)qTuE`on``}{ySR~EXT9Bz#HlQufcXH9 -zgzZM|d}UnHFP28>UycyA=u}|Al_Ne9tYjic?5^{4Y_e{qlX^=n?GC0I8Bev{KdOM0 -zK^|kZQs~RwaQ2yYM(l)tkv(u=A}u59f3ha)I>V{DQ`fdUmuWmFoFSYwS3F_q` -zvZhwqsj?6=CIWotgJcv{OzrMe8Ubo;*xu@oZqR5@%#gt@|K&1Hl2iuZs4}p8bI^U( -zxqjJw&BewOr*b^(;QJdCdju;cd9q)%L;LxcV0)l>^zyx2{MDvGdkgF*er1F{+NPyd -zh-OFb0k$@OhdfqGGx^2!GF56oTt&a&FX9x0Y@iUK0;(1g%n-X}YGix1S?ERgbsSn{ -zWDg};|A{^`c!#{{o(S``&nK`xw^b5wEVlw}^=U^Esq#KYNMajIcYS=+W`Sh8!XlpC -zru>0Q$8`l>k!=&`WRTvsy(y&u~)qC>XVSQd; -znQ*5Us6=j%GNL8cAW%jkI7cXKvYc^mQHB_dFciTNs;bukPeYXkd$sg -zL4~EHy9G&U5D-whOO%e4?#^#^*YEGf+a5FOL{w%22WwNH0X9gz{VqC~Vx^lW-62ZtR%Btwi;HmboBy@$y#0 -zF#9KUi2IK;Uk{Ko??R&MMK|w@Ocs7#9pdn;^^GWT+9>!=dEnfja4r`(Uhc#>h#XT6aG}DY#hbT@qGbrl>aI%jxQiL -z0zC?FgfTz1JDx1()=XOQzTEw_ci_EsZwNC^%g?j?wy)C253zz|2fB1y=T=$Nc1AaP -z1Pl~V@EFqh4*(I{FQjhyThlOV4+tz%#dXrcYDVlbwNI>VRA7O&6D2{z$sc~~<`X2E -z$K!Sew~aXpiWpI}cI25;c;#C7-5ckxJ0=b-He4_lf8q|WEl?yu5h(~Qr+_HG{VAZO -zS$l#6%(LWZ$%3AsqbtQg*5N8H;5C^N);wyTY4lG?A6_`%rCL}rzqg3{pwIk5mi%jN -zu)8(}i`1Pi5>K`9sKFDU{$%@x$(}GXRP@mb -zDR<(()l__5>*v-1<60E!$Or9;{9%^*o$nnU1YCMv++;}5f* -zlzrstzT0jgD=ZTWqy^6cR==7&Q|i{&PXUgkI!{T5xmW$GkOUC|q4%Fuw?Aur|Gkey -zOCoD0uZ|IaF#lYn^ZqlF)4xO1vtXm!og*JrQR}^=KL@VwK++*qh&EkEnXM&`=iPUW -z31vWQmisIugym2c?9E~qOX><;ID$|krlO106Zy*|_vmE0!bppLRfEtZEEHTxv?=`j -zy+izw;++487N%cHff6=&*Aqe_&s33|s4ya*=cBSHOuJbTIX*%qxY#%dI+zT-)>YE;oxndP -z#}Rp+qNLaR1M9Ee5e&HrJn9C9)E!eI-VYYH5^eU1Rh1m`CBDeCDNGKh#9M0DYrXxK -z^gZFt>0XlEVyzHoPOKMyVSF*QRqDlfKIq@}FRiy)pQ$^rv{+DN4;`o0;2)=)9l=i@ -zUUm_E(55#{ulp1cB*k*akEP_Z8U_V=ZLe#HZL)t=`scaUpw18^trgJr!dceAS1uM;TSNMrXmWFXm;EizY)K2X -z@h-iBJB)o?yEqWL^!>%hOQ1VjuWE29K-_zU)cL9-bdSLA=Qz^SyAyJnG01k~YN)K) -zo#?HUWm4$aeJOwxvP!{brCWF>N!W6Ufz_I>p;kuOdX?>qtt1v{LnQtm>$u*^B%MJ8 -z;B6E_OIb|Y9$~kcF=vjtrC7zvj2v#kxb+ms2M+ -zto{;qQiF++`3CpAu%JFCn@_5VssEehCbZ>W_I8_zbtK*Gki*3NFErXn^MkeWI1SFd -zUK(Q7r84eytd6tfJ<;GW4xA=N!AersJ33$$4{l;S`X?hv`6N<0F<;ZRU6ZPDwQ6Ox -z%#%)=C7m8;bChC4D9c{ee -zCU^Y>?Ivwlcak`u(4eiKaY8Km&8)BENw9hR6brNCrK;J|C~!4geDvvT0Y{8tHPd`u -z3lN0fM|ET#L;f-1~<$GN7{KP^UVF>CPqqME~&B;}3dycXTz5rK{Rmsdn8Q -zsEmvu{qo)69*@`s+(XF_`7f^8153 -zRv+bMJ~ds9=OgXK20S?yMvLM1gjP1MG!TP0XJS0jOpJ3}+N!CH^|xV|uV~tcj6BKC -z{o;faKi|H^{EveG>IsJxlX?v1M6B{XFov*Bgk)xC8VIxV6NWGT$5HXP5I%9-B^CQk -zfK7|lb}6J>0`K^^>v2VD#qj^P%mFrT`#^!Dz@sNLH%n?af09gU{#tElAGg5P3qd^0 -z%gp?sWTI)0%?Ew`YYZqqSN)*ZZY&=(tf^tG3%E;eUor3r^WrvPZ5d3^=wLys^4{Gj -z%oq|Jw21t_f@l(dpQ)Q^1tr!s<{-o`v(M8P*?BYU&36=!c+*|@d28aSSM5T)6aBRD -zX~{0qw1cf!M>EWx70^VvbaGyY*Q~ZCT@!lyU+E5~DtIsT>|#d6CwKM6MPmI6x+y=dhU-)C%$CbwEF5=l^>c4nFXkR;>9E3*c}~s59;e`K-5f(!tmL*_i?y5;YFI_v9?E+ -z20-81U`kQy>C*(=;T_m}2Waco%bZ}MWx^I4Mnd0HNNsdsaXyE4sXOfCoC0m_H9}HxvKL9VW3J7d{(D6*v9b -zc0|Z;-1~j{Mf&FPBCmy+F8Patll`#0{jG=4PyJ!yUr?a6xjx_>@c|geLbWMNTI3!9 -zn`HyX#9B(5ag`8Bmym8BfxsB{Ou+S|YN{83% -zNeq{0K;g6hmp2L2E;v3?D>{1)TVmj)AHG@a{Q{FK05c%JVfKdr^_Z5``wjp4Tihdb -z_@{0unJq$VrzZQwJqE8P;)4$1b3X;;1<+2t&0gTu$`qxdUT>p9735MA^${B_N|gF% -zTsDY#6Z-z`u)SvNmrX67J4wS~|BnT)RTGKv2xKdb{imQnisx5+$n6OdIl -zDIRD%UmcE>oTtUR9PHQH!+-^kz+2>OJvV>oxb98zWaEJ%O%^NtTe3LPbS)Amx2D%7 -z_({8?-z#L683j9|;UE{x(Y&o18$FvF-I+M@7nyoD{NX_;&>yG@!c8_^2#X0inU(CZ -zr^@k2JzQ2}N&8G$_VB{t_t6LMybnCEuLKyY*|`o~i<7VjCs+B_BwxLU)_Hos=_KDn -z3UDPAbxBU%5COSbB*gz8BDuY^nA*f0CzC8@`c^Ww@4NNC={rkL3`?h5MBbRrtK3OA_6 -zta6d@KY8ZvQ+0BjXD=P}mkR=q>htHYN7K8ZLv^js3qNe&D@Lh*Fb4`1+@UGa;ToKx -z!XQ%sjNTffx-wrJK%@r$TYeJ?y*5A%r`h|{$2jAfrSpd^_0AFtqJmr$bizsIcV4%q&ct0Kn0GCDCiVKVnRq%>ndfu>< -zR*3t55Sxj%A>Jl&=dHW|gf59m%gEEbWzEE|I(=U-WrVxADh!0WdpU35u0Y^ybx_J} -z>+vKVf&Fn2JNPx+KGhIWxlT$ZL_5!R%M4e~#m~DYw -z3pq`87)-jDor%@-M1GEMsSsbwYDBQvYF6iGi{VMNGpns(%;=FwxFzZQBDDOTbGJ8y -zI5a|rSv4``Ezqpw3Ndnh1ZFgO@c`W#UL`tDe%$pd -z9&CZyV;J56EOQJrrXr&D8u~zDXb1BQ -z73Jx<>0TFI2?)Yro-8oXU@l{h0S{ByE)hllotRYF7~Qi!Kg@;H;p-$&xRVyn`Q%6t -z6t?jnX`8KnKIJgLpTJ8^tei-Hi+@o?tM{U#_BzlP_wQK6MA?7Qohw);vZA4D2b4^7^Z(A=(&v7v -ziIEL>Ps?RAv*<+`o5|+-M$T*cydJf>x8LDe)xL5{tVf_X%7>`fcgA*dYB$Nk6%INx -zc}ltzBwTkv_82T-5~!~o%WVBQiuQVE8VR(he3>1uiRIJ99;!%}Fn$~qzDD342(X83 -zugS=$l@p?aKLoV9G)27F=I+WwwBc58(RQObr!SzAM$q~wlJb~OD&>`C;SvJ^TDF|K -zUzA$H8M^C6La6mU>pWR1(%fMEHWG21^hP1~+|D<%WOqXL$EKXF6nHNv9thaJ;G`K? -zeQmX^CZ~c{PEwcCdiXQ57JM0MTd+ -z7w^Bkj~jQ@GLU&gVIR2zZ7<$mcLZ^~nIiR6@2)G&QM51-y9J-hon67yfxBl;Nk*D?Is!Uo7mYeFJb8K%)d39J@*`L|}|LF^bAbTY0L=PwhM -z@4eh#>O3%ilO5a5Y15PG>-ARO6VnndJjQf|E*`EOAmb`kCa%*~BA6qy)AbU1n$W67 -z!xMze_g^Kh;_o@E5_qTe2)TEf?%(y)4ere!qnZB++e^V*DTnDARL%OjG})2$^%tLHjl=L(zFIJRCk -zj)$iD7nWu}LdE>t6d^|T=8^SGE!v|y3UGD7ZqJaZ?b_@@yZNhrSr@XY!?~X2zxqj^ -zAB?5=fzr^+mgMizXRM}$=U6zG3Q6{G!~h+3+te&xb@p6Iw=oUM?>3#`XP4^1Uz66p -z!XhV-@nyUAb-lM6Si@T==lf$-bptBL8fxim8Y%XKR2d-Qdj;3D8WR8sW&I8Cbu -z|3uf2qa?f0D`Pdqs}6A#YoLEwPBG9Qen0pZ``ui{=r}+efD=T}F3&WdP1j6CRn6kM -zxT=uSi!BAg8H``PLS8$ErwCnv?e#~G_^ESsUu*tBm2osI)T>0h%C -zYO_&L=ioR=Xt1L6Cp@Vct>U7pxK`aA+U~E(BLl)g?ptK==$Ct9Nb`la)JC!XT{h&^ -z4ZNA$ZQV6Sf|xIMII`AaK2{q2@7jF;xBw_3Ke#ct-15oG@1?HrnZ>`uZ2yd(lr1|q -z3iyMde!UVbG;_(hRjf{f;p-l{|4q0)%cv0CF(0Tr|95-atQ5Yt024O_HHp=fCf;%7 -zL@@|tQz)MebHUvAa6Axwh%j;Et&s)%T7+inqaXa@8b6R=sA4Poug-G9LoxO{O&gZD -z)LbTrNqPVAuW^59%q>n*0bUsnm~yfJ99286owsu^xPiI0BsjZjn*;P&7<+X@TN} -zbEKFUd_(Lh?e6_@Kw&<#{zFVl;nW@ODKLQK+H|t9>3q>_5Rnb-l4TYfQX?3uvZIj_fU|fP}WRi`3D6d#1>w7il`IXj?6nd*01sw$q`KcdJnA)C`8~1 -z@I)(Lp_=NvvqH(dEcozO%axKs@xyy&l|+Z0VuM#rmF%-;ToRya?-%`(f^}Y@#52~8%)SQmOQ0x&Sl6&V%RUuPNty91W|a0%%XRp -zubpI2wWiZtI3mKIh_bfC#e&r8ea>(=RVz1cBw;PKdDHCm@9_S(^9L(!7jUo$G}!y0 -z=`DG}7muVpX9PnaNpt-vZYtv&?2It9Be5wzn4&I78MNSTn2=Mg@qTJP5jm*=!Q4tP -zfxDqn&kOk@mAc|wti-HKy_OL)x{L>*g8jVu@IgT6%}=_m^rDGs;lWs&b+q<7zN)|C -zLyZ=yeTylMLS{EDbzWdrgBtON;+}q5!f}_vIVRwMvdW|>7WgyhBh7Ku*4^nh%SH^otSyU{gu5)DW|Ay!d1|%K2!B#a7YhWUjm22YyEf*kUKf -zowrFH)zx9VG_E|lm|>ZMePev19N -znL`WVvh~C+?gdX?O8Na~G!LyUgR#Rw7-klrSY_KNBm+No<1LQC{smCDh=wO_o+EG`o4fSJDo6AK%;=b6bhKg6Sp -z_|KVmGmwiy_!z6YJcD3Q2bdMd??p)l_kH+>$C*f~WAQ(KvJLz8lDU=cpm* -zk-4b7?9R#*gKw-Hz09JiIIXNP7y7Mmb;-K^@63n6`dP1-JX^`=opi~x$b&9ytzEyr -zuRwWV0O`O!YP>Ovjm2MlEDuzoK?hz3c@h3%h}(>;QTOj#cxL2W-BQSM8+;?5R@@n3 -ztZwZH%R~XO~#QBo@?OX`>eg#t#}1#c)*$8n+O2u1UHI -z$>-f23n;LUfsT?F&-DxGGi*8c?87|CU3j@W6s3RIuv5E0M;|urukMPE2Hy(b#F~GyrsD3+z{B8~GVg2u~)pOiCgICv=J2_~z&=g)RZEAvd2l4RTmT7(jl}a41sQkUPYzy=QO5<=w{Q9;-qm2yWxdy#wyt|2&xS1XO6?4E>(% -z>DlLW%x}oJ3u*!d#QiiusgA!gNGE`#6w`y$ng6uhIg=tMr&Utu9+@1WoCK*tCC3(v -z*$mU>p7<33&x}cL#mQ`7O;WP|r!lYwy3Z|hN$T}7#j^qx%yv{UZdTSDyI^W#g5}#U -z)i36|=hqz0WTFOl02>>w@2l2`{MKif=Aih%nk6Ne=wm}`ByO|}zR&Ahqf#?xOd+_k3xy|`}6zRy`~Y)(X9VdEJvZ{G|t(tL!`mG5Lh(WyUE -zZTiAl!zCuZ>g@~Zqs6JlIm!kNm=Q^zKmKQOXUUSlU0YnTrrg1#8AJ%yE=em> -zp=!kKVx1Tv1$aM?U+9UQeDfMF=~aIa*)>4q<=~i|-^#2T`=2+%L(Z;=2qX*22TLmN -zVy+2RF)TD?y6pYWt+p^oRv_PO`Mto@fgN-~R*K8}_}O9qQ>T1bW$nP -z)z|IkSj@WlCDOL8_*b0(-R$WnFcuDwl=;jk^OCB&qufXL3vSep^Iw56msQB6hx^vl -zp$#=Qf*$a~Bv2;WUsi>n=LB#9BGwV%KS{NZhI;z&DO_SK$Rc#h|nB*UL&+Dcx>gF8tbJNlk=yb)`@SU -z{m@1#t-~p75l;kNJKSeh=pp0V93I6$QR)URd=|oY?p=n+jZ1lwul|Dl&PCE>y+>H0 -zh?TQUJZg-cnC@F{N?TwH)9zk6eAO8*!yC*xZCVm+aR&U{VS0eaTJAcwf*kOJZU~m -z&vMuEF6eKS?ffT6v!0DK4OmtRoFaCCV{m|agnDhQJSpBrgMYW;!=xLo)aln?aeYdw -zJ}TO(cp$WeEP+Tc1#6850=w -zh)btb5dVZwSyP37ufrhNPMt+vDWYTM=4qbuqu~i~N8mjKM(q!a$6pQDZX%vtzv8RB -z4pn1QAMWSm$zQ_~fkg_Sc7E4~q}AcI67w>>F~zc{R#SuShQq#9BLjAO0Gad*lE|5E -zV=WeMEnMLIp6^6FU>wo9=rckb@=hh1jLZEFl;|UrW>NMNM%17$o+i78C#GOTf~|Oz)s}d(#}z=0H(U334f!@}Ch@ -z?)-iBwjN%ugH#$d&SY`?_D4v?ObMR-Q>*Pm@PN=eWZ&|l9JeazbBpTl%+P!6M30~J -z^CE6JH?J9&p;y&SKSoQ0AjZ@YK%TxvT -zMHaPI_kCTF_vg<4<6VGVVmY`tQ3<#dy2!CR?NYEeGk8a1eG^oY*w{tKuo%jJ -zhQ>XCWE?&|Pe<_xSPmK;U3v-Q7dZjX#sQ{ZY0?-0{MB-UrP4{;Jy?Add}S+DBo5(M -zcA20haEAG$tA;g_UzoU-ny9hcixXtE@$3Hlp)`o_!DOl{%PU;08k11|;rwDNzBz&Y -zd6CXU_Z>Ra2i|_cnBMQ8L+$RA%#3FGnF7JHR{DBG&vA)RxJjyx#ETRis|zsUw_ftR -zG(G` -z+;k$RFYvZ`fI9+NhM_f%49U@#`eV -z(i##oC`vl<{ccW(s$AcS -zri|!0;8VtvNSi{x`=r_dc4ZJh(fB6(ttuYLy{~?Sr~jN--mPS{ppVW#`fsnX6LHL1FdJTW887v;0T%f}I9Qq?+T -z>oNa*XH+_6_rGh^&j%!I5FnbM#Tf5>xH*#}jAzp3 -zCCxxvu36$Le*D_tC(li4;?=)kIId{20dE%Xu+#(xXQDg7Hja5qgs86^-g$&>DV5~c -zCKJ3F;-ty?pIOkLN!u4`1A%MPqM29iGzVtN%$6;NnK?vvkia8$UP&InJz1yk0tAvYr%jx#{>>IwE@xua0&- -zx`g1II9l-ha);g~#m0fs4k)DAe$Z*mVD#5XbL8&MIpzBv&D+c|fvwYDfsfeRJ`k$a -zvCU|5MJvadv^5X3Dy3Tu!ZgMKjxWjn^S0BHIfW;Y5`^+L<0_@^Tr)@SywZv4Xyg;{ -zo9m(|LQY3b!K2d`#9KP?q9AWUf$_Y7uMh^r-CaV}uEY`dvlHFL<)5eWOc|VwGA@~E -z-mnK<4sJkVN~*DR%_$Yp%o3gwdh#!M27IzdY{ahy;%~iqbKcsS!K=(UGk>_hsa%y( -zeRH(A6{=SefY*8>iklp8ayn{`pElJ*HO?Jsbqky@iSh{bLTl4dnzQ%q&VZL%Xl6cF -zOgNfdvC_AG`;_Bu5~0EIeCRI+;>`{nxbyPKm`u-Td|W}iwi?#&x2xgGm}vdJ4VzDf -zOn=p6qxW}VTe$KRlwxP7r6oLB!m>ik;-8#48AJSiBBi&i{cn`~pwcQEtfbL4%c0*g(&iTD7D1pC0nI4= -zMMUisSF|=o$i;Tg)t@YBWGqhx2Gn65l&u_&%w0UDa?*9YHZ`^3xGx3#?V2;{TG*aS -zoW9juQwy1TY$vrtNzfFr-&@IWpQXI9>mi|Qpe7b=6)Rcm)yNb+HpEj9FM`xJHGpSB -zIG>m$Dc9%P!qRF}{FGl6u#{b+%ni-V3chC?<_!^}?=qXcmYE2>4MCxAJBbq(`jJV_ -z_+uPNS38}p<(&H!!R_OhQfzFBrAa22r_-8o~94a -z;>+4jA*=j~r2I;Ln7`eUKvQ5%ms`qG)v~uPjVlvpanraf>5#odPxuJmY1K_uWH>q4 -zW|@liC~7Zg*0vD;Kvvd%ES^v#TARwHi>;x$75SL7~7~EbZBWXb|pU)s$EnqK3H=ybpqi(DwA{1b%CbN-l3euMrV)i?(L?bhfEC -zUV-83p@lNBTpx`h`Cn1%yIZ5B&TP-sr3|(FFvH -zu~m|-mWo+XUK;J9k>R9^U5}lUuw$T1{IDf`2nm!gaEjK>qpySt#YHJXY;TCKg{vY6 -zb`qtfXH*vu`;bF^*Q7%?B~Q{(c0|3+(T -zKh2_BNoQD{+rRJ$42BOtI_^=~WtXhXH5;?vq|V_tiaC<09*+G@yFo*{(bYBQ(VMvE -z6EP`0&W7)r!Cyo$P^HEwwYAfPlzr1Z1G~+wk+@|_^!i7lI!Nb3?k&m)eU1! -z(t1&M*p#G~0&?_XTv1c^u&i2D#{b!;+l8YSC0uEKnIuqdF>~J#wG_@3+^G~bTQSMJC -zxE(77;?p!ZES&N8?W&m}?#+^q;9rk~%r1K}E3zzvA7+&4!U)sAXFB^gPyB^iI$gl- -zU=Njxv+pjv^oe;OZD{p`%$l83%0pR6m13+y=UMFuM8aYcCT9MW)+5Dklc03{bN=_2 -zB!}rVJ~Wm^Wv=v|8T|?#+ts~>op6-zaN!$mJ2-oaxkqAMK^|CpxIwum$#a(3mvwTgURosynrgX|mBalYos -zOysR3MP04RptndDl=kQLI*2s8DkMj18 -z{^JzS*SxDhEF2dk+_21 -zFT%OAZ0md~o>14R(B+lcUGyw?jG2C@I{m6LRN>KF2V0Se-`8EjThJ`X8HFhO<={g@ -zsWq$DloDDOP$@L<-Qrw*NRlxg-=x1%5wL+juBHY@U|*dr3QLBDDK2YEqj;>8YoCC> -z#cyKg7r0Icl$tcQfqQTrY12e@6bIuG=gD@PB@4{I-c>T;RVA@qTf+Be5}VrB`)oJe -z@F!Yc=2F?Ybakbcb$>=eGla`i0)Z7)uGlg3Jvb -z!%uOT5-0?WN5-c_rsV$Od0eeu{CxDUtHGuVVy!W6xg49Jnmq3>1hSu|P`-5Xe)`m% -zjFLNT^)tC9i$;w;7*S`$Vj8wV*$QZ0gBJ%oN>hm*@-0r@mzYd|2K{W* -zO$zu<>{atjsSaKNY-krfgjSC0{pePoWkMH2xVn!7C^HrE530_4+fh*sepOx9OF|Gu&-uZC_HnbzRjPGJsf^{gb)NLyd=Ee8WC{nz42h(8dl_2?=)K@_~zuX_V#aAHGz5}%Y`~+YsaHIgBkm%lBG}AMk}Uj -zy@<*xQ2Z}iOm|S8e)%m^uM$on1j}~QU-cnsTfvFv?$KhIozZ>+8)<02zvt=ZDM1hg -z(RHmp^;}il`;Rn;wvpqGU3_0r -z4QU{0_*B}%5%FNtzxHMtzb`)@0M@22D@U#P1MCT_` -zzPu3A-#yp9HcF#N{Gytbz5hyYL$n2kPfnbTHp}D3r;pE)N~58pLO)AfEgRSxA*q=T -zHF`v={!OJKu5L}WMOiK|f1d^x+7jjbd9cjLFg}yQ;C*-x+r*>u=XWSZ%BhS3vXb5DO1fFL<-RA+++QeRz -zv5VmI1J9ODq|vp9qigqRZjise*?YUPQlsGCjkbVx+eB4I&2qk!ie>~UMiVe*p0_yt -z%<1=@O+%$oi1D4F;$3W3#|Du;nv#vR -z(Y(r4IvYPEJqS51HLuMECubc(I#Js8_(*c=_-xeO6NV$mveGDP_?hkTXS7|&u8+0m#x2J~e~UOh(t_sWnCkj&XSP+RaS@u6Lgkzyq{}W|OTzeH_%-827v*>l>dfKr>5oOI^ -zUr_lRk@Vd}ikh)c`dRwrE@>cENNG6A|D8F{LBjWp`;RM3C1B;qrQr4N5>PRIQK4SZ -z{%n_Nvf?#r`QDWc=K>0#9&Uq&De#uzR%Ki-w#1Z>V8*aS%tGOSae*h+IASATup$M1 -zC$5s3BT8~{Gt4y+X%MfuqUtvuvgcl*TL+t?JNH~9h9U5J+f&-WiP@^3pMy7eH1njb -zb3VT&A5)-N-{m_?guMxUGBy`LmM3Mn9evz0fO`Bdz8Ac;2AK4@(vBmEXbr`3D!_ -z2|dBdd4HP`ik`#ijy%M_Y*6}vk;CTnP04@$pud1-N)^`5o%UfJJWeRyF4J5sK(&0a -ze|5glv-IEd33q-L=oeP;-SyT+pA&f7E=t*XZ?Qtu!*bEzeV)9E8Jcg$9_>DG4IQIe -zl*JQk&j|FbY5WOlw`#yzg*aB^lL2YlZNkpb3B|a5SZ9S0Ekf#?yM#&(@)ozSIFp)N -zcgoP`NAoX4om3X1HqV=V$bA=cmqp-jIWyCKx4n3LaZ#eRFSti&@VStEDN5i{*P&R9 -zOVcNGL>aO;(LVAiJ-+)zL+Xfw-ZQ7d^yj_P^(`ZyBnkrinlcLuarb*)FPBI-8Ll -zXA4or{UAN9tmj(7hR!FLksr=beo^t>cqk<%qc{KoyrY~a+EXPM5tnBazNq2Yuzv@U -zu83eh-e{7?G5Z5&B?C8QRav=5bt?1fzjcUSEICPU15tArb(NvW=2OvUN7>yJd@=mh -zH#7pIsw*XgCy(YVObn=r+|6}>?oYQCsRTdm^?Ji142g;d%;i)o}2Cs -z@@v;@nw*qY7%dspXMJ-T@v^A4v_B5-3HADNQ*B9C{|r6PzjW@1Mii7YhS(yrsuB!U -z`!72&ML!W1Q%|Zz9f4;h#z1Y~LyZoz5YAq2r>7TH3m|jfrOTfdeddBu%=y7@vGN`? -z%1ILrA3;Xz^kXMi$L{&Wq7ld$`0nA0@naLTU`h=n3}3nW&WJs{{)xgnZ+Hh2^yh1< -z`U?l>o8Or9jAseZT}t^}A!_0MQ(otabqQE?)bSjJcw~Xob%8eG*mdIkaB^=rN=M!t -zuj(Tlhnu!@z>69qX$xM5g>1zKuORNS#1a4)yyu_I&Z!gcHEw+ty`RJ~@4L_fBQb-u -z;GqFT-zdpL?{k-4K -zEpH_n{@Ig=suCibikz^PN)hs*DHwHIBm1In@i%ir%zI^Dd%JHp%5D8}jrtk%{Rdo* -zXeBt3zJ6$hd=$a8Q+rRnBrk1zIgt?9|`2QzhONF7=VPw -z$dcw_PaT=Ram11q-g#J=j^oV12ep5U0Musrn=r=5>Xo+O8WT)q15=lJK*t4#4RMkL -z$>_L)@DCr))lc<|aMMC};hzV7&7&uIMi{(=`Smvvmlvj?bNN#lM{o`SHY{jz8=BpB -zP6V9Oe;C9TT{LV}QDev7>+CRJD-C?1XdNtpnVK&JXKNpZsuq6P@}l)$-N&y)5foM{F4+V#CL0oX9j5t|q}JQ>vNt{OsrP8JS7W9W8(u&4(dN#PqtpYUbM8so^#8 -zB_uguou(YDh1V7$kOL(%Q3|N6*}9{3gOJWJ3wZANzjK9X7UE#risBtFN$+7$&;9X+ -zF`xk~{WR -z&2P9COwBaV&NyFvj{m`4-=-{0BCWz_I)#*I%}GYr;de+B9p; -zB!iJG0|N|y@|0K36>9q;0mmAQaH?K*+VHyBYqD(ABo6YdYn)UOcDn*>up;(k&s|(g -zJldz)TL}0&nHQpj1$>nl_F~`9p8UC$dB0i4eEcPS+M~p{-fW~#3D5x9HPtH3o<+4% -zhWe6d+24H}PyRS28~~mE_g9)-yQGhj95eCHpkj~t9)8DxzJh_Pz)V=cR6aoN`oNcR -z3avrKs;z}#uz+|>o0Y9YLkQLE=YK+xne?r+ -z6O+C}AsmQ|3RYCxJ*O+dx)p{&7oUIRWHPCj1Q(yOi5LYC$Qfjm(%GN(%`9!yEII+( -z^}(m43DyiPO85(YdP&X4tG_ot!&jb=uM)So9Nl!H6{khdXJ&PI0EM$ -z*8Ze{K2y}pYEdE46Isi5nvZ>%kS}DmJl|(()_l;~D2b#D&h&{yK^AyLrJTY{8(kCL -zPJOOEA&S%AixVux8zT0^I(49iE=@($_iG+DBsc$#J2Y`;IcJs$w-1d+wAGjYF{N=t -z&jgBw;u~?E4-dX(nDG6GsFPzVW=rknYoat>i4Ol8yS#(@=9H_aRAY~#C+x$=Zx$v` -zsuAzoj33nUM{^;gzZz^n7S64&8T_?az(Q+)@1(u)~(;j0!BpdbA}3Q8QpT -zW-|swH?@c|yfePF3zM@PtWZ$_xK2%fm|DlK8g87X>kH4RXy%vmK~2xb@t)$oAUYzzJy~KDb71^=|923m*=D3=?N624)qchEw -zpb1>4+9@pL5eEz&tqWZ-SB;-DYHTzX%)a_G*03WZl?CJ39)>Pe>O3s?@N)HQJR|*^ -z{HGnn#hKdbB3YvjGMd0E9E?3SR$j4TIL&_ayMQh2~BQK%D+#FTtp+WdQE;b`fd$!xBP2X -zYXKY%bsm>w>ojpO5*?_Rd2Tq~U7)nB(9wo_;Q~K-Ku2~+X?dHRr^-3dZ}#|T?VXjh -zQs!Gs^Y{$R!9HaG)lu%Q+l4@ZkS&ULxu=N9U-&ICi#(RYQOahi0xk4OjEhi(md=N1jum5UIvbgj5gAMch&<`GKZ39(YE?`O^0E?1@rb8)TdLYH{kjpkr} -zPn?tl+{3KqyD?e|ftMi_;@ncHU#3-4fN%~xr`DBTa-jj+o91m&VvxN4d(89%>%Vt) -zW{XbpF^+?HJw4L;hS24uykRTcbh6*Dq%dd@OXptrJ==Y!Xt&t@hjU#8oo)BThC)nN -z=q#YL3XGR!3b-jaLq7W%mDLgUdKEK;p3oUmDWK#k&}-^Tq{2wR^i$o@TRgo=Z|l>O#26#-x%dW -zOOswK?N$Xoc8@}i4iYA$%!=uyNAJA;`5C>`L>@dQN=Tql_TMIEmR^AG%>=}Kc;Aa2 -zW#>m`w%52+tLEahq=)@-e2yj;LNw7OVCLoF@{rM5l0W$PrTLL6-$f3)Kjk}G1*;}8 -zSdAF05`O(pneTudqbg{dQvPDrjKmO}<*^6Vm4 -zd|=Lc=bMIMZf#SFYNqxL19^_c;F22|a)|p1A2@n}P)OOJP=WCCndtij9&VBD6foGw -zkxo)X`Rej~;Fpdl?H~h%UeI -zCV%tm>ou)o%Js^X5@$B6W@zf6s+uN!kJVK@gYV|UypF3U|AwG#zlZC>SN6-d|D1HE -z@@{-Rce@@$UVL1(=UBKQN;rn+w(u4|{>CM-tgy=r%i`&~!HmpsXuDmElOV$OP3-4? -z@@)iOA_E}VQ#6{q_lDA{4XS_K2dY>ywQe7?6r{b-a8~{Qc!-$Il8mI3TgvZvILPOT -zCU)QTL60_Hy|Wtp2NB~BImhedNd)l2@q;9IPB3nLTQ2(*AL_;pI-QWfqkj+WPz>#B -zmY)Ks%cC)A&s?d!@Z!4ssQN48Y3c(TYhlvfVC%D2P=1Wxh{3br9tq)9k`{aKjtpIJ -zr+ot1`Up-?Sn#KcYo>JI#Y<|ICj$t&cYN~fvtR08{2pbq)mYdVMUYr)JK7dUP1y`0 -zXE*hOB(CInflkQas3^0gP6S)#+CzgEiw?hd7-{6<>Q1J-irJh&ElKew|>F&7D=+}$EvZ-tO-(PdxsRPv$3@KKw#4E#MMZ|y_1+F!kArX?}^F#*xS -zL#Tz>0K);kl^C`|L1*DMgg1teYp!8`x)nFcTcVBHP8G|cG`OezB4ux%)h6>hw_cJ^ -z7QS;7B$tVUGg6aNFj8AeH5V1=80aHmHY(uqlyw89w_k^K>Nypw#i>!niTFK2c!-`Z -zvx1gD@(E8aP(4EGByUccbV47Ur1BdI6X;5?Lfb3opZ(U}Ex6na)sr@y-$X1nEGN41 -zucDv-q_I-|6)pdSjBf!${V_TgzOA_bz(LCL4nkhX)m`45BLQW9=wKA9ty+?S+xdK- -z$4UmvVVEyGjzGk;&??vy{fuQtA*t6j>z^2L#v8$+M{ar=-2TiqbX_}`hg)oKX?_(< -zA4_Avm$@+)u5kS~z9&TJa$||Fg)G=D6qaPTvKjB@EVhh&|M7jFo%c9Kt2*O#WQX%@ -zx?x(g=5;9Dk^CZJ=QC~>n5XcBBHFs(b#-7v<{ytk%Xsce-t$`h+oeCVw9lP0Z0!Xz -z-Ze=ibCh5_@cKQ_F|Q1oiD1jtwKX)pP|u0jTd2x@PGqwLZY3&O5!;{ -z{f^Z?Qb^^u53ve?yiH+K!fe}U9)kZm#pl;Orkseicwa-nP38nOUO=0Q-022BNOMtK -z?{XAs-Rt?&n|X&Gucg#b2h^M(rW1|04z0L)vJbg^N;PTUXp6^V^}4|HUlQ}Wpc-c+ -zL`(FbPm^n$=@iwNo4J(v@Tl^?%S(Gfp||`3hVKxq)9dK2>T~8Ol%%@UtyGM`o%q6#7$U>)JmIu2TUqq|`7alW&g7!%|M7H{VO4ca -zTSU4`5a|X9X{5VD1Roj%K}s6wk_IVBk?xWdX^`&j?rsTb_|`ec_q+Ia*n91jGqdKN -zxu#Ct)Z -zbvumkHE*YO4%^4ioh%{~NK?wP=DosfZ{DHP%XUK~zT~%{-Up7qW|F%uF8c+FW^Ddr -z*&w!`3wfn-sB-Y7{OSBSB*FG6W-z+^s`=pOhWX55r&kTZq3NRD#;0G7Gu~%+!+Uuq -zcS#KA5Db9o;~+$Hy$`>)c^00=@X4hplX{ceO1JlJz_%qtYgB@3Y2m$oQsC -z?w#xWl_j$4o4&Cg>`Yg4JArHHx=JQ&_e*>?Ko@SuQSl3lbrFx;%!^6yPYj+Ur`#ra -z7|jvTX~NR%wwe{df2d|ymAlUo5!UKE|K`)V~O2V -zrGsk?@E|4x7yPCFR-SF+6*($)WXfuWB4zr13PktPM_S4)y~{NxJmRw#6M`D$XYyZj -zW*kscLr6~Wqx_FW9hOUohv|Y7^=`2J>!Y}?^_IPPeBEji(Nds-RWwK;Zn7!Gb&M>) -zd!IgwFeduG(($4)HJwZyP}!&*p3oA|E&Z;X#JEZPLGg+Gw4Nm3usMg~%X=MtNM#hT -z-VK%JhVc}--KcU%Q|*Vc=c~hLsmKU4*fn$ -zsCI-m%^*YAC^Q1D6|RLp+5G5b)O&rCwRn?&^hl*ZN0KEL3TxeU0q0E`72P#5&(Is; -zYQ^nrX!T^>?>|gw!VFkSzsU|^{OD$_7O=_#AVu+jdq)s`{PL87#4w2E-K}iIs|>RK -zWGxggT#Y%^B$HOxCr;&ChjRuJ5dI4{KnVEFN|7F2+tMF1q7?rvL7kI#o&!g@2!i4q -zI#pKSHE9LjmRcZRk3(2PwSAu&jfNbFTs9<|lgb_M+9k?XOyE0$0t5V31$z=J5>F>e -z*9*L<8eY%08vKd8HU}|OM0y4&yBsK=NqS5684L+D^}CyB5*TTE+n=A~gL?(=nr}`f -zxI1c{{W7vP`DlZZ>griIY9u01i*q_l)2iwQe5K>l1I3Yz -zPtR`RcPg^f%YHKJTUk2GtQ@?D79>c)zmIpeVdS?^A8jIV1V2r2d@`9)Ym@z?W%BvG -z?Yu{n(S;@mXW_FD`)!gKTAFq#Tq*6Dp}2%D3b&GvdsY-*@KN`nbwJ^ZiuJufRX;TR -z#%S>3z085d-DN04xg5wKh3%F!hFi9OH1g)+2JB|DupqvXCdJ>={k$*PEChESI=9`v -zmb(y|7jf1&bD-vp^$FSN!@`PoC&q@Na-vd@nAx8)ya_L`{fl+@q17i6swWnk1rwxH -z4f8kyoV5=V%V9@3!PN1ui1JDiwYyM*6&^pZMS)jZO~w4NMu$wsJG$Bb2t_1R07MSN -zp*x;iEhi&tvEWAJ{00o3e}1OEWEqmxq`Qa$&6{1lpK!+YL4L-_9k=sb2+|rzrG6MJ -zYOcT@{1l$9Zeg=`Yg(QMdpSwAr;_l3rCKoi`P(wGZw~^Uwl)yo48X43&mG;S@Kx&1 -z;u`NdO93Pf34=$_laKOWVBMn7dSvoJG59+>D%m2Y{d?gp$Dc52!0!n?g!agWDM(VP -z@_xn2^6!P@xrHn`+<6xu;kpB$M1qEQxy+Qrv7M|bNaF>u!SrTvKQf4(uC&E>03KV| -zFnQw(YBGDiaiGRosawqUikdV+pcSBJ7g4lR+^5N0S4>*|D4J|_J!`~+rtL{8M8?N3 -z+NG?`runUNG^lkcpA}D)6~V@*=j5Xoq27Lz|F&Ne>hjU-2<(x+ZqY -z93;`JPCf7rmpNk(->XFtg#ppRqAK=+Y;fB#D0)jW@=swoA-XsiOEhKZIrvPv*C}Lr -zP_!m2jt<9yIp32YL;-%R7FmY%PBY3Q#cii0B0Kb3vFp!diK -zK)kJRBWL1yLdLQhfffQD)e3QBzTqZ+x~G;7fW-lj+IW=4t=+CPuguO3a0#kZCBOg()uLnE8jq(1w@#$sL -z7`$jQv>mO@QEqvGpzVVCE+*Vk2a+xgdbl3edN!rCfpSjhU+Ovj&ok-O;C8Hj@aOSq -zZJ*9!SAXF?b)Yo4t&}*0=3*OC15);ygwx;5L?gYE18Nbg}i`IY__f5TMx -zm7y$syBZdfW6_rZ7{BbQ@ak=GbTu@Zpj~I{kcLH$JVQ^=C1#MC^{V_CqZV{JJszE| -z%To{Tt75Fe&xpRXr7$M!J--tD{qzjR9L;1l(+?=E<%)@qVPwGJ2@YZT!B -zIt7OBM)@ASj-PtPI>y2PqtSNBI-X+BT175p5TByH;EJ=S(#lPi`CnC;MKmE3Yu_gq -zCm9Wc1X^!AKmH>sEPc|LYtuY~SJvLVMxnMk_PU)SfYvqF^WVR1Ch$`0PNR+JexD?Q -z3e#YB&I)Kd7*7A}4o^CLna~yj^{S03WNWn -zo^aMTqiQ}6#{T*15TDpEPtVpoO3?I29S;Kx`sPB2ERWZ~duY`X8xSu!_;;ge*std&MwVWDcC^~Bh0 -z#BbGc_I`=xj|_aPxVd%weI#V#rKFaI}X&OFKX4rAYAoIb5M -zlP|zbZ=2-$n6LeW^b5TAH<lvq2*0VzD}`S@vC_LS`Mk7mOMF1I&9 -zCw>tB_NBSXA015di!Pq>^{VAL8pXKuE$@GIM_>G?{V90AQc=W0S9KB9D+iNtlf9#B -z-gMyeTsp#?o5)y>^IP?&A#&yIZxB@_Mli$($Vi(&Qp>*Su0F}43idsZImG1Ah6{Fb -z*iK5VX8{(FaU!t>aRxi9Z1hEu0B!qYsxe-IT1Xq?8hn?9mc(k)-~VM`F&9;7&W9DbBLrf(Jn8$3aA>`8W!W -zg4JTlpY16=ia}cG8pXk$ABhYmiL@_-0p*!$5uq6T%ga>K`&Zo}1r)r|-cMjLG -zKn^A7fEo2|CqQ5U#&>2(f?Xg_U7uO{Xo(HtT!nP6y~~t~y@)Z*q6Yy>p5zK~L+rFNpr(zKc5QBUm-U%jEY`~GcP;PnRw -z4vYGNjhYbcVH>H_GBu2*$jTOGqGE-TDYF_XNIh3@_)j=ijO7)Ov-%S6X<1x3$fyV5 -z1c>Wu?!ny(*vd*I*u_LmZIAq4CRmXM3oU;B26*^NwnQ-(j{>w5c4NUc^3%;35F%cABUQwU8P*i?O}!6iP?mnAo$eb3LvLGB?~JRA|4 -z$H%hlgEWtWi-x@+b@U*c1(#9PebOO{CUuigK;Hh_;RhJ2g}T@jqfYKp_BW9p)(a>~ -z*e+BQ_}ro4Ly|0CwLaQ{h}b1$FrbCZ^DDOFfP1msM75xrFFyCyLgRRwj{*tafsopH -z*l>i?Q%#Oe-nbL~O` -z6;WPm!Knx#nrk(=w06r;R>NLx~y5?Y)@zo5&B{S=H(5 -z9C3d(M5W#6wi$Pm@VPyqnVg_9^v-(}sg&NN5t4B~-<22-&n2+JLYToMZ9z_~!*?p6ww -zNlyqk(Kp9N4_+VUl(icMzEnjHay&m2rL(-5gk}2`Yk2#T28bQGafpzP`Xz_p0@%!J -z`76f599+Z6$KqBjpVxTZ@|g9XlKlgeoaVjM2^A|%4uI7Rk$B%xaHhIL8{r4_q087H -z+jpPOC~-#=C>Y~k1&?y@mriyQwmvtVMU{yj4@5pqTdqXVMSF@Q$rsT1&hDj@&|d$1 -z9usMiLWw*5Yx9%Hzo0cB7%HhFHnMo`;K+LrCxO`r`Kf_{zQ(6OaZk?OA93DRfch7|R)eQ%?*Bn^M~Y$sP_H{gB)|~lB@&5R$8d|!=TMMFn|`{584H4uxiOJH -zyTX?$+&&{VHFH!oiF&P~XI7X8Lq*WC&cxuUZN@1-+G`2eN`0)k{-=0!hw)Bi3NJVM -zeQip7wqepcEb^Mf$v#7u^76PGbLY69Q#vH}rJMNo^nbk)KLczR*`Y)^7_&k%7M*gq -zuOYF+U<(-T>k0p2@m`*S4EhWFDvcR}G6P;U5BeFn7DH6YM5OS=g1X2oY*JRUWpLD< -zP8vStZ`MntQVUb%E~5eu=}$#$f*UIseyhozYw<^+jzsscNY6U&gcc~PE!g~$0Vy}H -zf@0!T)nY$=vmPL~ey0zcOMP}~!q=IFeM}6V3Y<&eGmx9b&y`~dVzjOKfu)^i_W#B` -zFL_##oBhEpOVLK49q5YtPC^+!J-v{)or -zu|fu=Y<~X-H$vs|Li2%kVr?J-k!8CYl&U$j@22z&bfw`6ygC=Mb3{7!z5Y{xaoP%O -z9$_1O(tu{tMv|Gxv1P+?P;ydj>sg^d{QJ{4tlFzg?fV_8>1MQ6?NNl -z0{p-TnjDI4ljERZQWBh_AryX>_~juXp7uty6d@cGpj5)_FIBG-8;QYvty$?KTY|R3Tg3V|omSL*IDAqb5HQ-;L?he>S@|U2Lm&U+r@)vU5-y^i}GcHCz`4LdS`G1|S;+E;tva -zHZh<())y{#;HNX?=V-4iV^=wHiOhcQ7r;;gAn#N)86i>z|1%nFeAH*P6X|3!rI&?B -zA^%gA#haprj$b|!UB7i$PXDv5@rr`RL8U|M=>@~ro|6TpK{Pf!9Y8X4&4P(sIuPME -zlekX(`8K)Y%W9|XcM4;4*~9-e)Dfr=qi>GJ8Yf8~S*N!s3@)duJ}$0_d}G`AntbTP -zTx8Bdn{X>zL{cTJM01RtVn8l}>t_u64j97TWc8rBK+=!Te)cz{pz#*xFHWo9LG-Xi9r%un~5gk)H;no -zNhH`&uDR}2?FLWlB4Bc$cFIb8Q+W<}<2jMq6`pxI?U-;XSWVIf-hhDfe5jz;KibaF -zNpoC6a#r#ywcR;_c;Y}OFB!L=rxrRxD!l+EgZE-zc()SL3jbm-JmV(AFsM*0=&71C -zOwfmOM!AdKNKMIy0SgUu@}4;9kpQL+QC#3PdnY9+y!f->9Jn08O8!UTtlj4nqR~L{ -z7D?|xGP|;ESd=XW9_P50lyMBWDuLh>d8p`M5~R+RpIQ^3c)jw@$}KiDQwUMt7d!r%(>kRRA}S&l}p% -zx7!*g?19jRX3gcpXK27i9{}MZ4u*LnBqAa_@K^uL8p)rJ#jAPW%53OW7>>G}xszaT -zxCkdo9xH2l5!vn9k)@UVMWD`!`S6EldmEHlg_=^%T=I{iX;+frnFm%prYdFZ5Cupx -zS1%kL?_fR1NvCANqZ)+6poY^WHWX6l-V4Iw#ro~UxUA9j30k8WSQ|7&-~Mv-gyq^@ -z^-X7aflogN-K)7{@=pyo@{6OX+d2s+Ug)n@v84t4=;w;h`3SIMd52*8lig -zowNg;@Zq{mSp_ms;8~VV1^OpJ4ub=m>ZB{RkOMjIr<1l+Vu8sQ0ggRvqne*Kq#p$##8!6Vf+jek+^Jowwk -zgq(R%%E8G3_R0GD)O%)(Fd$G`=-`$qSns+H{r0vZRH7m -z13Tb8_wlMO+UFnLn7m7kwIH1nglm@64lCEDbZHbRwh&!6YF?Ib&1BtVN(?$$YUe`X -zgiN`7-?|yO-IwCpe@Po32XDF@-vvC|cRZn=$@&*G2h3O3|Adqux8&0h1oT9^+9Dlnx1tCn4=T>5-;PnW`#ne7S}119~t&?`s_oa&I-i)k|=@~I){ -zbx*ta<6Ww|)FxrpYkd{5XG#C0ncw~OXy)Mjei7q}4J7&#gq*yPr87N}%J9ocgAj#+ -z(vC@prVVtozdhZ~1Laumen3U#nU(e9t)c(r+7&aUG{uG(IG{@9fB8@cfds%E&+3t{ -zWI^p`p`-WAQqO%d;S@aDwjpo`M3wACe&H0V`Wdu!_n9Ua;Wwaxo_A2S)SbiAyaB)n -zcv(Tr9l4H4tObsXAT=67QVCIK%2sxry_yi_*zYJVqww2dt+2pcElKETD{`YFpx>jWg&0V@Hy -zH(2ePe2|{_U5U23gp;eP3qDEu(pXmB@?l(SEfUAuntM_*Jz#VtoG6A3kW|r+s7C4X -zze^-{zaqkMiY}M=vlR7aWPp?u_^B!srB)P#_E@w!=&3OQACs@w&&R9bF5D%jaYu?;|;1*|)qTM{N^Cy7*{397=PFQQa|(1-yCMR{G2e -z#iKp31rPwOswk -zniysleLjWrT=%WR5n$iOnYI>x`%fJ?(>bMM+T(lbtu?E{UA=o@DR8+18H}a#vhaHX -zTzRS<{AYetrXqz!5Vi?DV5%R2xkKi9M0WkJWHwir`Izr*rM{y+WI%;h;SfmGU>38# -z5=b6#RyP3joj|;?;Rv&#l$TN5t_j@obMCjVYA~xZj0q@;;gMZH3tM}GAljr=P>wJ* -zSPrx212Yu^52w8h;SrWt;zx^32vPx&z)cG$^OW8D=93jrB?zu$XIreDu1gYi*G;jQ -zI|Uxf{1s_pe6ac$z`>GdvrANEe&?L%Flu9bPn7;dIx@1W=t3zCQqB_yf-20VpLanq -z)H8XD8+I&XF#@5O*z(A25SC -zi+m$|2BiXUo%*jt4Qeb4p=A+(PqBe{A}SbfdNdyJCwHTg2@||mxMK)(ZJ!RP|IrN& -zB@pfUj($V?rLz_1#$4WybhL@>h}C-5wsYg%w1Fma5LM^&7SAAzXu!&(FR^L7ehaf4 -zI?83q$fDjHg$4x?9@f@Wk}OG4zJSmcLRx&nCqTbo&UyIXvTu8|j{ROUBFTY}A0ul) -zd6L;8>=AjcBR>lnJNeYL8FC1W1UZ(h2_cdpMts$}ZKwa=IZ3%X^{}4SK4aF}babP> -zc6={>>$|377kS;^1n!Uyf+2EcxaM`!DGO3XUzy+aEDn0N{At@2FT(VO2CM(solHZm -z9LAlcB2#2lX`YB>2`lyn&&RJ7RF^;A$lYcs>ItNp6WGCuhsVM6w%lpngdD!?j+<6AV -zdmPjUiqE%6o6X>XW8TFE1qzkk_Sb7%JBg$W#eWrNhx8ezd0Gvioxc^X*Olf((Gu&O -zzY=hUFpdIwjYq7a^fw`Ip4&g#xoU%Cb}WmvEOOvcJD8?wK8lm+B&GH>$G&6Dv5zi@ -z6ukM;iPrkp;x^ymL2*o=WxuWM`%CcTH)5>F6ilL^cqD%WNl_4^Q6s?m_E7kPmqTJI -zRHGcezhsN<&Lj228Gx1y0K4#_2k{Gx5KBLCI9!_1*()c$S#wrrczoBS1q*qH6-}C? -zLNSd;hgsC6#w)pu&N%vbJt -zP0#rg=@weEKwjAIF2H_VhJyY;gDS;%>bq~m2ZB+_KhPZ{5}ORJOM~MLY|RAq#xmMT -znv>+VjlB1|W6HE2dM}p#d0AZO*18WE=d|t8{hDPObP}iS -zSyTh4Ki~(0>x&r^CW_ts)Ps1{65&F$h_zQg&GH;EphhU*D#i$x7j4gzor&7CZpt5x -zQgz99uVb5-hDP2rJQ)NEK_tfih=}pav5=gqlP-w?YKqp0VAo{v67-SEJsIAFU75O9 -zNJ%*H@3rVeFeMV&B50GK`2^sm6WJI0g2F!~7@xLHc~SD)FlK}6?Y3E@V6XG*(sEu% -zTpzgMq(Ai?40|;qbU>pbCW_uy8FM59xaV(obvb3Lpbp-e2DfJfNorkF6(ln@mkh_p -zYCNVMLyJu??=K{zW>5KbG*i;e+VcHgqB2?8GC9{xv=6${c_s7_pz&4fkyA$FYWv=( -zi5rx%2J~)%RBk9i=qf?$md~(|46aaMDO#}(Gn#}MZtRI`YcuipUEnPSV<-|-vp_j< -z`+aVH_bu}S%&V&;R^BodHb&2W3+iTaB1v+ZCs?BD7WxSOs{U|Jb85Qy+QkOCP4x+% -zHdt4?PlR2lUJT?yB}KLc^A;a<{L407)(GQc(&HRQ^^~fleH&m!2Gby=7=^dR&P*p;y0L71VbSEPu^m6^eRc -zs~Ew#E0gdALzA(bDsZXZoBdxBT5$Xj&HKw{ZsP3DXFPc1cn=KPsTODJ81yp$$N_g5 -zqs_#^BTbR2t-~`+)(?b|4Dl$`2Vpd?QmG2O<^}>1XqdSQG4tfJBl=Q!Q5znw@pRqZpVNuZ8T0C0Sth!EJbbzmQ4 -zEyqr~?7AJLU0mk{t(m8>0C`LUjOFgEO9%aMl!N% -zRF(I}fwtg9ax7+8+)bki?ti~x(hZIivy~W*@^pEZ{^FxlRIIE(PsMpa)pWOSx -zNC68b~av` -zX5!zzQK9Ee+js2ncT!?gKQ_R@e=xWol6*A!vZ;akF|zffua|Q!%ZqpR8466UUkizD -zd$ozw>kU!*R`|N;icM_+EtO?_&t33dGK0L=QZwz9b82Ftm+iPG5_%~zoT#aZ$gUCih>>2{Q`hG9dYDm=7~HS^Jl>R3 -z&&IUAY~jC+k70HM(Qjz+J8xg;92hm4+^;{q3K| -z830I>>5xukbObbEHt{=7hb59bSxfqEDmJq$61<>NMEs89o|xTymtIlkT@ce7({b_( -z79ZsFkkmRkv}=>Jo#a{}B}@m@3J;Dqh%^fF!))t``W?s5Xhx*k83i{utB7?QAQf4_ -z<-|&=WPI~8s=(WNjQqB>R&kBaPyFcX?YQ5Oe*;mdLxO!i$vN1tM)rwBfE!*k$*5jX0pihvLFN*SpnZdOsF75Qec3t~tNAZN82(A3TO$ -zg8|=kMS<8)xjvV3Mh)Y$Y>s!FUWt^TN+1XhfE*d~7FnTXO7367kIv`9V#;zN$$rdx -ze*EMY1ly)B!~z6a*2j^9D{?Vhk80u>iKtimPknjH5fYT#4oqxHNB%tfA1iS_ohyM*ygRMsL)py`gE0Wcq$}y3?%(zN;Y^9 -zw|d1qYbXOv6H+x8vOx$F&yQxdRL7hfTVok>yznF}iY4)*g3 -zwuV7usq|=cc&$Lgpmc`L5{=>%fVEjvAtPNU(3FPF@bhtb-D&Eqd -z53P%GKWsZVURZ_>#=q_CsIIs)TS?uUAzYlZvuwdM0XEATVig(~KavzYcZD7;U4@9e -zlj-^!0la>jK71Di0?xapxUDmUA0M4FVi<3jSR4YfNVCh?_2x9OH!JQ$p{7&?IO?JU -z!K@8Ep&+dWqIw7h>Q$ouOeL8?Ae0L}is`eRHzs@Ls{`hbZIlHnEZd!nZmO*ZE+Mp& -zpvNYAmZ4Ycv7-Z7!gb0K4H}TNB(V6F`zu?=6MbXmOhu<5dA-i+D&?*)N`VG*ouQOT -zHDaGn-G1_q3s^TQewUJCfVaTig;(pVf--x!c;7}le>OD#7UIJgqG{TC!*E*H856sk -z>(vQKKL;lPc{1SqG+Wa&?Ru@?3pe4@%Dy=X&|`3Uc!MTQ%ovkqZ$MhA%W~e^ -zCm}*I%p62-yQdVo+?d`)WGjYHbG3MQ1byDnaW-@vgq4#AbP+hjER3bI_e#_#Uvs`J -z1f8DbB2a^g1s~DpDf?^oPESpitpeR>m2WSq>Ak{q7pc+cfj#b-j<6bzqrp#O@lDL` -zxwW;QOQ*+H%xwa&V2}nTQcnq)iTu%>xwrhVRH85CKGfB6d?eH><{7Cep1Vdzt#&UW -zsOu&CVC`-?B|+BaTkGKwvSu|qRX -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 -z$%gx55uShVpjY|OYFji2Vq4S~@}!Dotb -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 -zWOin}>vE{yZTki3ai)=Cj77KX{ -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 -z_Q@yP{`!2CpOHtR4wbaM -z-rT=vf)PuLprnNf(J-rNV0iL_QNI#h)Ub7RZ&(uRac( -z7XG6T^xGfJR7>GtU6xaY#tgYQ9NH7R9o2P&EVQf+<0Xy#OH6Q8aH9z@!7DPS3ESKyZ&Vr&w9BOX -zwW1_K(T{pn@~uJqxAO(rDjS&x8zl!e*8tG$Zp+vH%y}{Xbl!H4PXbY&l4!xKVW{A(44J9hgS^+t9-2X|6HCz8L07 -z2?!}#KuA%%9rQ^|Jxh~{w@>0EKd*#EiziIw(D11jdalQKKe(U4ekAZhw63oQxzDws -z0^$L3g9gVUD7vPie5{pFKY3#`csU$yz2tW7AQExXKs6X6!U!();(?;$&Vs*q_UT!F -z#~HGCaaC&(KekycG}jc>pP4{=(LfH;ZT_?E-B<9qS;3+Bi2jbHU?{u5Z}}TBnn|c$ -z`KPd|+EgY$cNDw0Y<8@qzlx0PJXPVU^!NdAbYG^hQ^nAf{6*hB337^zsZQxtEm`%w -zDmX?JqNEehmJJDcQH%`fw&zw$WlD;=Ma?N`pz!Eo@ucnc`a|&GbA?Pg -z)a-|t9rJ-uBVztHbC}$~rTdM>Fp}eEIjl11<^+zqR+!gblGbP3{x1X7PLcN=c9G>C -z54(xM+|w%Z1+q?5u|ro%s)o<7{&rc*^ZO}%xv@ZX+1t!Qg0)~0Bq9ouOZ>Ns<6MyN -zA7T6@cW7I;<)3i3$zg}6R6EL=2Bo+AoDbU<+4X3StU&!)3iZ+4mdqPI0hl(dgg8)F -zB@S+FzWN$z+pR(O{2iN>m3)d06+z$mhyvsvIdClzDYw2DiO~Y^ -z017eaGuGX>&<`iMPGxb(H~j@d2|9>4d=KA69 -zq4`%$HdG$Xah9U@VybynZu`@4IPeSK^F%r9Hi>1MV*hqeQ1iu|hco;lkmnJTg9sTb -zd$xKw$$Fw&H>_wj$vkM>s8~9y))I%i=Il9iW#Lo{gf08Sl1qj;3-Mk@>a_hckaht4 -zl32_T7An*i2&G;YZpfKGG^t4+a-*#1kExtDgFoSg$OY!hjH8AWNo!f;^x`b~(%f*5 -z?Lk|nf~cZ!WF&$K?NZjA2Za{J8a`2iG!mkuLEmU!6s_j-0BO&vU+8P(3pcN2NJZI& -z>ov{))1ll_%e!$K7UGc6>JaLJ5I~rkz-ks7nw5z;!+S3Ei7G4% -z>HtDn11n`?mXEdPV~<4xl4t1ov6LSj+M^hZJC2rDZr5l&5C>R#?=`F?qmCFLF8*PK -zdkQB1az5<3L;3R3A6avLj8J05@Jyj1x|Q}07iiB0%JLy!wn0N?vrcX4sZeAyJ+F{X -zS4-Zpl{ev|jhC?F&ZWZbIuawdP8p*^-+&{=HF+~oB6}f*j;$f=W%Sa%fBe^j2jq|! -z-`ejipMp`t&FdQ@tb=cwoF36jX|OF_@f>zg`!$XB7x*s~lf~S0G^jCdPQSx8sQ!Av -zU<>k7Msc=^5`98%I-TVS6!965l?6|;hVP+ -z?O&!cdP`!NRl<_6pTTsV=%~uOE06kSwJ5&+<$M^F(;hE*h1MHEfz_Jdt)0)u;G_gM -z^8zIJHx*~jyH20zW!W#l_Q_CaUNCLpxQ$D=p<*YqBKjM?Rh~yhEmDGUF$bD-_MeuN -zVoF}aHk*vG#KseHFEjqsgo-{Nc-Ez;EiI;IZt8EPQ&X-6(;t3(cCZ0oe2(zSwMd#U -z0X6W%NRshq->^zGN8WEN#m$3-kwpzM{colF|D=2Cjjn!0^J28G|4rOB8E4i-=cr4| -zx^@*&z$7r7e%~G@?BbMcXhIYx;3VxX=Wgp@YP@i-@*USdAnYl -zc*jkxLD~30jVQJXwk%F4ccrD8HHaDPQO*WjDDmFA_hs+^$3{ -zAl>m@Y@@bp7CyKA1Fg{|!#z)n*mUfnU#UI0j99=D8?pQ%)zmto@Ecw`b9E9HUw|=Z -z7WBbmwtTt7Lme3D|FiCuh+*?N9v)PG(8KVS>d`-wzLUw!OMj0XI*{Cxvs*`9P6L%@ -z^!EV<4X`nO##3B69KO-ry3;AsTUCuz`H9Y&ff!~&uKbaMWWwX++jHvug0!h&jn5z%k>3m(ccO)0D?;fYGh -z>xVa#Vj>L}p4RBG`0ym&FeqJz{qt!$I}_I<$VQrl*&0>Mp0#ICJz!5-Uxqtp$!57ex$c(z)GmVTKrn<{grs<}+0#b<$#ZZk7+4n#HDjSd$=v0_Hu5ug|>E -zNEcrQ+A{+Zy!XdHCk*`-Y-I0`(>7B~lvR43_NVDnS3*M5SPPYel$KKxS}Cmw>&xKzdScB!C=vd6i7hKu -z6!VG%#irj};r2b`i{O|upVoC5q@?ng95dI$#i0D_&8U~d=FiSeG_uu0X3C;DQQ>aN -zU}90iG0GBD!l0tfw8qI$GAE`;e(ErWphLA0wZ%FoapPNelAmYdh;(;|-8lLaHWuFu -zZ0ZKWASx!A!_wq-wW(#>TIDGx#*dRPPP@pk<7JMr6P>mx`B_m6Us%8>38*l -zo>TvXRpw(Lgezh?UmF}C0jxy0;v-#5 -z%Aa7q5#B8H>`#2vTjFVji=U{wZJ@7Mq0g0zhJGaaP~bx5hU~i|S(8dgh4mNq*Hq3LHri}hE=Vo_ZG2Z0qY>)tflEen#=wl8p-qkOs;lmP21Nj_d}eq -zp(Qh#qy4LfRB@6DXVDv*f?YVKg7NdKxNk)<<=Odngid7L^rB}Q7b+onY29CXa7>;DN%i?JW)^BSxp1UyU>I+C+>$h^>ocFBMX6-@CkDAU+_(R?fM?Eeon -z%X0A3S7iTZmnfZQT5XROBH3P-e8PoN*Y;BBZLCWaaiR%ZJ5ng?im& -zjo5+A>{-1^UlIgjs5TBfbHjyETxyHz{DI=lf*(%5cPunm57}>Nb7-mDA8ztRAIT}S -ze{nV!eIS7?3;(DJyGFCfP68Ur$Ro(a4AD)VxhjMiR+U&0#=t*jOjL7_(fX*m1B{L% -z8LoKhlo@t?(n&Fi0!e#4m_8u#;l -zV7eBM#C;CaPeRGIG>U~yOz$#8ohQlD&Vcm5CY^pZMnt?8E9GiRTFbC46A?5JAJk9U -zQD&BQ9p`;5zWczx4iHt*=Q&S}Dy6<))nNT|>iy!&b%CA(=x*@SMk*)Ak!nU|5ZN93 -z5yC((4QZI>9Z5X?!O9Fp0my{~nFr9RJlm;4<^NUDLygeoxh{p3f_-t}8nayYWVI2$ -zq;z>0F!AyTbeX4G&bqa!SyY~Uw7v*7v(AB`?(g>nGqOw260S<2tD=U`TEqU6N>1t* -z?yL?@fLSUx-T9h3O~--$Zq)U|Lz=E09eYkJR6U(?nlz$LsG^t46g-Q2bYgxh1tkQY -zkl|jAGh6Xxs~8Ebjzsceeie6DqfX?#gNKVjpq{l9M?x&UaAkuQpbiICgIlnY6#X%C -zDm<|6u@N{+2VX<`8-t;CQfdEiXIo)(*)*)1dgtkL@pY13&!~DmI;Y!@Fql -zLdW`aC5*w8HXusUmb>?*(BHC^wnJD^sZ7VS!lGCFeW6H-y!SoXi>bMuX+5>x -z2XO#oFg(Tz?;#@Flbum*48-5_ZWcGG*E9)uSlrbz*2XwFWeX}X57LsoqkTS)haYT5 -zJ@!G}V~IuRs3W9)qm-ywMg7Pc>x$3mE=pKmy8B_q&z{R6k#CNe92O{C=B?Yo&K%g;@HgcFZd!-xE2T=@)n|8uZP=l?a_UcoU=!#Se -z45E`L+?Bc&v@}*-p;6d|S>Bqga}CKLzPn>iPXN#n^yHt?Vj+0zjhrhQcM&F-aMd+l -zJUQ^eceb)r@x_b=_$zo5exF;`AQ#bC0M*FDzRwXLTNx*kKFF4pyE9VEcguw2KRj*D -zNZm_ejk6c)tf!QEGjePXbfE`tX-Du*Fxsb<>h3h_eE1?|(v9#z6WqWnL^%tuy-Ak# -zvK?9!n%{8~8=+C@D1Y$OiZh{nJ~#r&B>pT5C^jSG8;5i1CC_61HZ971_A`9 -z%$WT1>2%1e=EsvmpYyBq5xy^l2BG)yol>u+GQobYCfX*VQ_Y&IiugAgHDRS>-`@W= -zl;IK4-{H}*@w$qC;#NdS&cQW$Jz#Wpu(i(eqxbazwB@)wLhIHn-qK24boXs2zTWr> -zv_&}7#I>hkTr%c-oIXv?`L3YRDR`e=1k#X!GV|>2UlCW1OOh9S+AS%;-JRi=2bg^z -zJd+Sg=3vUS87t5g0US8Rk3vLTJUgaX>MMa2AuG5kf5AV4FeJS%XnC3}ld{tJ(JWdY -z+>>b$HF2O7)?lWb#s&OXbb9Zfjy}#62s>FfIF#GkaA7m!Gn+)<48eH>>-mip{#V>( -zV8`{GkM?s+z7eGcv$rduU&-^GxqS`IP0*j85s2-!HwYs}R!w1nXlXW>(bh;dFU!_d22%jfqU*h$HibAi4 -zUtu(S3`N&lVR+0hVw)Ct{2zB9JE2avF$KJ94yW$nzb6d1G+HOS5pG?;qxkDcp^=lf -zRcO4@0Q@<4ZRT)&rtQH#Le0aU?0xJv@0_vCUnTUYXae -z>KPeBOvmTl6gszP}v88D9l% -zTy|_D0J%`@70s3F5R|&e2>=Io(w`6$UK%Gn>#w+|;@s$|*uKf$vP}9p?0ZLUQ!c5M -zkhgEL24#L?hh|7v3@k-mJ;(e4b*7at73-#RN8lA8()Bp96S()-v78?SPgF7^;8E+Z -z_SR`66{qlIQL@B>kA!sdkuR=*XJk1J4GLm)k(rg;BjwEYrikLNvm2RiUT>v74tXX9 -zcJms#WBQrQ8u}YvO#3>PV3RDbp>^zyu~nJznwM`K3!>q*h7!}ac@o2YAq4VgpEpJi -z+a>QP`(A<=#hveC@sgK#x5!LLFSn^g-UUnR=!N{>|}YowB%Q3#>8{-EBS!DvBOom?VZ&y!xxfQ -zV;>WD5pp9*A&S2=Mw`q>&zFT^84p?TkS;Dl$RS#idt2~@CmA-Edr!01P_u{!o#)Jh -zE-CpMd^kJ`&&rLX#j@37QrI^2oVqguaPvS7MV!+e4ljpfF(|g4|LB$GJ<71s9~d@& -zq0i5QFvxvz%0pWPL*U{**Y!=B=7>vtROx1oay8bytYf!;R`eJAnpJJ5-~9Nyy^*4F -z(ES^c*?)Urs{qm+0QL2+5+b_Q$0xzjgS|~xIvz3?cO!f=uM~>aR!*3|N%FQJMs185 -z0~Zq6IaEO^9C9r&yQcZiM5=Q!)X+&b#Od}3R?E?;!iPUn4&J@Ed9dvamlw1|O#5+3 -zUxcNkU$arKp$szl>3)%jvg2_eVcG7vLx7!dd#R+1Pi<^{6Nz7wpBf*ZK6yXF8R9Lcj&%76chd9q;x~E;m1ya_v>@TxnAn><5(t_+U6N -z?y)|n2ihD&T>!G5hbcu%(5@4+vgj$pP8f@^5IY4r8EnRnluLU$DhR@vSQiz@Gk>mNRWAUF3uao^&#JlQy3d*$zn -zI5twF%>uZOD5coj+}QHT|SlM_;l&L_$a7)Rzsj0RXR)cHWAKHC_7Q4 -zZ2c|5$;8sM6#Q%N3fzd9hTKjmvGxMKzduQUjeGwbtsML(@Hp(c+RdKg-qj0lT8J#k -zeOdO#{DE*HIlnFUlS7-HHe`-&r#hN?jB_8RLo1@w+)bwoX(cQ}Hr=K!+u;yV-V%`A -zhQhV`EY<@~JOsHtBEzm5IYOBH!wW!gI|8f!=y~$SZUQov2rc?w{Su>j)zxJ1W{|)J -z!Tw;9iKK_W-+{I-u%xALMX1kGTk-l1A!{2poglr&yRkq`T`UDiYZU1h_+xJ(pIXAQ -zr@h{Lu%-6JrmMp@;M5xaX3!B`1aEQ01HD`mY6D+sXj?RhT5hOqZL9K(4E-=|9vyn2 -zk_wZ8+-@_MALnZGv*R^6I(~`^*rNuN|D -z)k-(@6Nrl->TM30FYqAqK+>*y&W))5O$%A)y=n|I`uY1^17cm!hZzhYrzez%ax3<| -zTP(fP1>SdiJeR*Z9FjRrA2v%mC2Bj6j4m@ingH=MjR$Uk+A7w9@_d=F4<{TZx22D2 -z-UE~}3w~*!UVmx!AiEfCS+(Gta-08#{O~h5_QeKnzsGJ2(I}!)`afkDpMb?FR3*0% -zjdp&;e>CpH6$t8XPsb{)0|c8vmGl%11*+u4-c<{1w^t{>-13!ZA4OhxZ-C2}hLnw)ym4yg$8x3nxQyL*D -zTu67$Ay+d*qM)lZP{*CEGB%hFLb}W%?r3gZoY*zA{rQ*u -zchsxdadQn>P)n_bAfrE1f-!&E<&{3d?Eq+VQ{)S!c8?s(jak~X^#kR9F}HJE -zHrd}NW)k}?{pmShNJYPW&@^@`b!Yz(mLHb`bNebY) -zy^C*~auR+9pT6R=I1BTD6eXH)JdfKno%u`$`8#hAg0M2$xS$3j58h=W#O|&jXDgqd -z0+rhS#M4d~(VYZWFZ!GkITRE^17!M3(eO=ptdUdRhxtS~<)?|K6kq^N!+~(ETv33TtGE=Anx;ckR@45ku0`wq~gaG4NlIXmR(>&TScbO7b -zkS(GMfDzdJL|ea-XL_^$$>`7?O4HS5cW -zzy*;39jgvq_V#&C2&k+|Lzd&k#Q4bA}-N~N@}2>N);Q-P%W$5@HniHQh%RUeR#A0 -zTzq#m>r?L$-qgk#J)YW5see)T#%_l7SWq#l9Vd4){Ff945yM>FAlgonJI^i6pm$~T -zceWg<9y+(4+Mbp7Ai0=`UdZuwIZ`nWla?|r94~g}D--3-!A9hT7WtJ?uA@$+A1+00 -z4-4LNthMoDPcqlP*o7M&@%WOqvQ4_oY{o2P8jl+f9%yq?+;b4tu^dJP*v2w2dKK#q7_Fh>8qTH^;6dltsBo-FI$( -zKuT7twQKFwaagK%W9Tgu -zHAgHk-gB0Ao4ZOuHVJ4IkH0T?4GIzLCIb(y#);Q6EM-&|6hjOIY_I=%l2t;iCOoq& -z6_AbxkQHTS+C(A)J%tO~hHCN$8EU;`ccBC}*l~)fxC6t@u4&PjcsAOm`G`dZ4l4JS -z{G~9>qm{)^%zGBSTO>c67AQa#phYWK`Jgy%+o;s+pe -z>>F+3uD)o+h9ruZv1-3JivTJICr#!TqWrW^PK)%*FU@=@d2b0K5^{80SqXxQkZ0jB -z|2&G}OTp)i5y)f(YI`(rC=#i!Um25HV+^D*qVz0$ghL#wkk^wP(iyJ-CDAjW#|F=h -zuqCT+h8FGhX+mW`XHq8J&DCvNj^hIYfAOZg%ZAaD&hlGv4aX_bN~4ck%^EI@mq;(- -z+pS#NBF9qZ#JY^~QTo&fMtF9P?8AW<5=85Zk5ZD4$BzHNMt7lOXCQNo{; -z6%Dos#>NoSI&}`jkD9vD?8QW;<8Tip=P+@2rlmES@O->eW^i%v)o% -zPol077g;nHGs}B?LL`lFibC~3Vk{Xktwhd`hD5Qy5Dkg{u$8tVc{J#eGAu@~UqLqx -zO|plgZmPJ)he!AxgEvHOe&CfURD8>=0-clkBXNXZN+T -zg5KWX)dlA2vgZ{;DCnvTRh&XPNv&z}@tKB864DmYF7ASR?PVP}1}k4+VTB(1BTbpR -zslr{wSKumN^%%Z4%8Rpp3CMsh{b?`7uvak{H0l`deNE0)33C7;nEkewby?eA8SO$B -z*lMw1PYJJ7$oHMpFpVzp$;25&f)B?=aR^&M^Fp?wI4J)DVHYLhF=^6$AlKVN!kS(! -ze@>Y`*KW?}V4EM~Y)XZ8oE;5ZR5K#1w_G18V(G5K+*rv!0PeY -z@>$McL(k+)*B#s5TnCA3z7E440J9HqJtAdn)~ywpD#{OmheM=i)3f0^?hrufeFXuEAv&X -zj`I5t#6fNROT$W`e)A-Orfjb71}ou&>20?)E#^)%{Gqfuh#R$SUk1ZDQJl||+^6hL -z!3NS*c$I|PyS6ad$h$K*Rse69vx|&&Y8obg!TOfWJ9;GYqqQ?P^(nt;zV?>Yvd2K1SJl$!2NJ -zd4i>v4UBmS{2}t+FUrABuTNzt?BhI5-I{F-=f6f8o6~^0d{BuV7&jhr -z`w@&J_<=_vp_0ffTC$0cue*dgsm?B@9z~*4VX+6peM4<}cu3+#t>s7N@dnz4s|x}N -zzo2J6uq7N(Lp+on6#RK8%;#}}dyp~#m$gFDq&{;7J3u7>HZnuwK|!XeQtfpRDn^q# -zo_a^5%IZn`q-18-0H=DpJQd_m!d(6f%eNxz -zlrt+cWpI4C`#rLmQTo6&O=EP7S7#R`R5)#*`m&OsUOEvub}r}(f?EZEZpKFl3Mq`@ -zyux>|_{|!2k{kFDrIDIROV75m1hIQ!#fr=>YXdquErey_s9AeIi3yezEKhW*;d)KW -z&4))2whpSqhn_|1e9H1dvJ4B6f#XR;^>IBef(GPj2#;p`zw5qVU(v4qFXSdkMilqr -zgV(xJKPBd_Bsa8sJ*Y$-oFxA4GNx9~Y3H)ndDwoU_VRT5L2V0dPP@P8ZlGGTxp|KO -zE$RkQob>ZVvndHdA!YmWrA_M0ii{i7jze_cN9~6 -zpzSg1vvXfQESRf&l|JtrZ;ylK66h1_NW@fF<2|H!hZ>6wGX-(n4o5V!U+^O2NkduM -zv-~*Bp5|05=5G61wSX&6+7VV162r+ -z1eF-KuE-MeF8K+LmTK0=n4{17J;EOJIWIp(5r^crcb7c&t1~@M9z>&*pYu+=`_t$V -zKH0hDJ-yWcwKglcfhY>gZF(+f+7GnHfhh4-;)d+9y~W#M?Cb<&M69`dlQK&1b2T#D -zO1x(U9)zB(g4$ale32r5xuW()$y?x>d!B -z{U@4_Zu!8A&X!=nLC$^ICCR -zaWnU>V2qkfCFK$;L26#@&<}R<)5f@0gh3P4Irky6s!_2O?BrJ=wRXPHR^p?9EdCP5 -zsu(SE(ISmX)8eHHOAMDS#*zXoy#zMFH -zp||>i0`N7B|Iu`n0a0{aSU_o{yGuZ%yJ1nfK|#7CrIBu7kxuFEdO=E3x*G)P?(P)f -zo89I63p=}a?%cWeob$v9mz4-pJq>zo2l7EqhVz#Z&@X4SsHCP`YGilJ{JVew%p#DJ -z>}v0%4TSdL&jl@jtDUO|Zlh|Qb&kDQ>kgnVD6s7e1SZ8a(b*KrsmkwBQ&iiF_0MFM -zsRl_S0jtvCM~x2k52aq&s$e&9^SKcQkCP1jp=OPkMaC%>50X17I41?8JF4 -zl##*KteE6$rWEP3!815o*UvzKKa(l`?oJ0?Ol-5G^o_zplh?l;z!CIIdmBf+od!eh -zGf@x^!$)b3#@J9jk9!=*@d8WZ4!><%S7g~&v%sp#=%6P1%3{eT!evu!ujZj>ux!Sbg{}h=P{+e&R)o+aVwL{S&9rll!x$J) -z(LbL}gg;6#w#hZh_~UXPn8hPyQzS5|p-rZnWIDvv{H98@!958Czs+aV3#^?np2q{e(Q2qS#eE43eS_MBfqGS1hl==^y=l8Y?|tz -zm)PKC29M0CsEhnA?O--Ik%`>b|7sev?!|=bQGg5J*eSrSc>aD;7aXY254Yu-z1mCQ -zC?x-db9sFnhSYXf5Ps*Avh`MVU+-1P!_Py9Kh!qE)2B8NLmiUjapOsWpvBXERIfo2 -zdL6lm;yxg6rqKT{EAx*K-%UYoraicbtclM$@7#KNldJs}5fbU>_R32DYBId_e -ziV1LMZEsd5PTeV9(lrKD!vKmO^H#C1BM*ZV#U$XJu%gyFyYrcHc^@>qp{dg~3zN^r -z#XqMT4Uc@*$xGLE-57d$Tb>D>6WxuNxRs09gPqs$X>K>!8~fX$=O<#ou?D?CttL10 -zW{~&m52lyH;1a8t4AzgxVs^!7J>1!Mh>bZ#!`bmuk{?WAgUF>zY8Wfev*SE=$kg*C -z3SAF@WBdua;WrS2PKV6iq3N!l(=U_S*md-g#plMdTA(QPN3?_y=s0t}8DpfW_6NbO -zMy#I28)k_A7hAC`4|+rU8zLSAHhz80udYG)mM`RcYsBRP2rEw_lz3pcR*T -z0oR$6-!{{(@8p9+)Xfq<&ib{%7p<@Q>C60s+Q0(%@=>|M@DEw0+~pW^afM2u$kEQw -z^(O4U%aY}bYY_WwV0=D9j5m@Opyyk`&(GtSLA;~K@&V@1kRV0L*=%<`Lx^Ww#i!=a -z)5qy75zawFOcgEtZxh>CFmgS{NQLfo7@3wqjDHCs+HgA_DkYZm>IK%|LDti8`QLrj -zbT`CX!_ePyyc||*>@qv$UKIH7t=oQAFf+aB&ExqJ#PlCn=+PImM{CmtO@9V{@0{VD -zec7et&Tnnv`DsI`5A}dT_Hfc@2hD$d#Xc^gHoksC+5a&U^WJ6f7qzb^ggphIMY>uf -zDwRJse~mEM>&iG2+Vr|ePVpO3v{*}gU8cd;!|rrdznp?jpIbrmr-`0Z$?}TAWykAe -z8TV2b6u>qeNQPvJz!yM+X@f55+w{KiU>r}HW6O6fKH?}+Wju+1NFEYbzJ9r2fQNK6 -zi21!PN`BT1dc2}<;FSE;nJE@XD3h%3svSB}SSAD3;~cOC_Tm}0Ta*UxH7X6Ez`ulu -z0;UITr|jYD=By1$Pi;6?0q|B>%ODIwrYuM9pNUtP_uk@1h(cvFdUr+K$C9-XLAD6U -z$pP5L$DDUNV!%b@pTm%P$U`Z!GoTGBfWsaTxC6x3J@@!6Aby{&k0UL&w&N+>yYryz` -z%w%dh%?BxWLf8(;Y~nYlb@?`#q#ALXt}JON5;CA^l+ocKqV@k`4y+@`@|nR+Y%lm7X4>G&%DCn6KS*sA>B@e7NH(enL -z;}F*S^QA -zm(8GGp;13=c5MZkv5u~%AhQbWk=Bylkx?d0N=+-Rj?-MjLQWAB)^=C&I2tJLB?0*} -z5S+KZj9sK1v5|Sla;XUsa0Brw@s_Nfg=_w&#oOG%2T1uAVWk=P4}e!R-{DXm%6Z{& -zsI#TA>Mw4-oe~F?rQm;r-gF+7YJ}r5qLQYBhR1z9Kkj^spdZ7^LHy{wEt;O<;G+kb6iiQshV>+mZ4$2~HX^hHhhMSg# -zzN{wnfPLKe4;4wJ4?}#*UO4mv(Ox1+t!lQ!D2caw(hP|>spJKYgCh)6MlpA&0tU^YC>o@#TdD -zn~!l|&m>w`rjwhIHS3d1?0mP7 -zHLO-_Y+bpO^gy!;&?VY%{ugKQ04sc!n2?;7aVn1tt0Tv`Q|j3tz`pm}&oBJtHPZ22 -zm_Z>AmD@CK9l^xXceqo9F+g+>=)h6x3L{6tNQMFsu2N$3h-<;cc>?tb>jK&ZA`7I4s65;~ZT#mOoInnQR -zhZRHYrm0Di%gl}K&1FBEH=xYrsDl=Ti5{_uAx`B0AlDHIn2OS5{Iv5;Xqknb-swV_ -zmN}j7B2#HiVNyp7unJC=HVr*)B&mBM$R4MrxmBiACfSVYBWDAPrM{S|IG^*sz(1PAY#+mvR$QzM9Se51e -z5yPS8S@3d@)rbVZcoevej25r+}LAjZyr6*Z2JvUGqDfrz46EFdYhtJh>y~bhHNg{+?LW -z0GM+hTe)FWQ9qly1ar%QhoI|?ZD&QSdD++4U*q7pTz3v;f}#5OKOK|_4Tl;s=8O`Y -zOwDKNs1eg&O`E2{+Fk`}ZFgxr53Hj#bpZY_s)4NigJCynDdnO}9%t54^FdERR_EeM -z=Cz%=7f!+4SKdiSuAolhWmn`n+0vQl=i53O5pE~?S0Z8|WpUJMRjvT*$oAD}lfG7G -z!|_#(O^#A*pc)@?e&fXJ1ad?yznz|5$3ckL!S2;fb?_aF1EvE3Q5R+lI -z>xd?r*0mm~Rf#!?y)5fHZMegsZJNg*&DLX+&@BpA7rO>fkg*HLB+l@8czjJmh(Kj< -zJxvCE_CHBX4vCwE%c#Y`XX4+p2{MbR^~G5G{lc6KALX`;9D*o>P$LeLf&?R{g5YNo -zV8MaI#2HRyRy1<(5amG|$<@y#ZSeEj~kFcZrm?R+C?|*Ga_1aU?(}Mb|={X6{c|Cm3){}p$E)=)^UYlstBs^xh*@2?J;pjwv%O~^_)(qLH2<|R- -zyeF=xYeC|xi{O-iycnSmu(axQy_`*TJnIfswpYDBdEJ+qCY~cf_%|*en;>+HDb5e) -z-bjr$fBnyWOFw`PJ?$X=GJ$xJJ@-6;$xhw2kMM5pbP`(Aaw{(Jzv-)qw*~d4XcYpq -zt5^)0j2=&UPS^JkCZ?shS4so(1Zt}t6GELju~mI?m+zap!G$mNL6PUVhmBrvr^R08 -z4G@hxaAI!rWZnfO%&3o_Dju$5(MhuW#}L8|`s4HvErtqQ4frSrzHoa_{s)|qVye~_ -z`opAa`1ydf{g|J{d(`hz37Ksn=fylLk^5+0q%ppA -zV)fv8*uk0mN-K&uH#C=jn`1WW=)HtbxL4L9)kJ`vAG$^U;vj3Y -zPN?D5t0O&RNKc6Pt0`2+j-0&-)UPa)8?-*=wG@cz=C|Cq+C;T69c29N7?xbA`L8Df -zFfRv!QxqSE>A#%nNg`1tzvpp%YYzaCHXsQ!Ugo5AHAvf8?K_g-_O);@{jV4EYi11P -z*LYcLi1`r^n7*T}E&H`^wD;Q;EeCPCb*~Plv*-gf#A4>3-dc9@$2-dJy5T!!teWor -zNF56Qfs3MDi-V5SP!1Smy!xX#h{tKkHXx=Ik3=J9T@&c62;-gQm`tB3YJHaJsq%vh -zrsK+r{6x%OC7ekzf4Tt;Qt4DU={8skvCt5;X1fYQObI$5>_h -zR8*W1!o&CZdiXyvIuH3dQ1<6nGS-*8BKJGc0%I2Tupgg7{+5{#m_qj(BF{^aR)oO4 -zrXgeA|A2?72)G8sv$(r?;-QLuv#n&8OvY -z75@*<`GYsGw_$QPjtf_X&O)SFT<@dkZIZeP97pIcDmY>CW%5V1{nTP0CNGCmP5Rl{ -zNWj=3Y{KeX|6#dHf##my`!_89zrO$Dm9Ty3)(=9P{UHidFTq#oiDJdCxHuRt#}dAJ -zO{s<3H~mhAztDgB&@cYG9 -z0k@E~V|8`Gj~;p%-izBdN~_sT=;xlZIW}H^427?bTU!k7gx;?U1;QlkH--^CoKwwq -z0{`|a)^Y)9Jul!%RkdnH8~T+Md^hRQldEU&s?i6cNd@+Q^KN*~gd4rb_cN7Hn4S8O -ze2e&lF{UB)f^=`t48wM$#Kf5?C-lX5zTOM>lH=UkQ;4m~0shCs%LuR6Ch3b2ENuzWL`-@tRv^)yTc -z99nq5bSgkvz%2p5(_G?10cJsLpd^ -zkT)5|P+4@}*eb12fq?;ykw^AYJ-sgYzIOdr@*P9w4U=T+-Y6aCSM;NF$+?N+2Vy%I -zvkHzmN!`&f!erfZ`M$+73 -zM96fXRQR1Yqq+=DO6+N$Gre`vwiDW1pnUn}pHc5`864`jl>NhPdlpg~^)bVq;xP34 -z`8!{-B7KbVb|XwWlWVI_17rJ98~i3*s`ca~4T|0Xy8_5_@^}P4TSfeA47okbJyw4W -zKfw5REkG9=6C%F{%8k_hh*e_b?Kl-|belOwiF6qQpD2RE-Y|`o -zn;&i%#K=VS`3%}61B_cqK60QV{ZJ@Msew%_t0ntZhwCYmQd;uf$H0VNoFjn;C>r7L -z1@DRU?P%zsSbbpGxGJhvx@mW(JIXWFT5)PR!N@|;n0Jy|cooF!1=y7vCf;2XQ*Q0!R@O{VK6}&_w`%iY;a;`tWBwF$()Jo@ijf77r49N8;z(e|#II05l%hzgmb; -zvp4(*DZFPD(p0OQ6*eoTG -zyIz=DtnP+)JirgB3bc6ql477x_PSJ6EI{YZP`1d4In#Qnmd_i%OyOO0*KPEs76 -zaY6=8?j+vC;BC!TU@QyGktmWI{Dt41vmAN&Y+sx@x9le>k5;s}&Z!IzI}30Pl5Ccm -z2Qz)^S(@It?Xnape>Eh`_PZoI0+Qr8tk-xAyIp=m49ia2EN}L3O9TAfc|GXAAsTv1 -z{oI`3FT5Cd7rbzZoRy|n~FX+ZV%(YcE><-!^In=Q!qEFGJ88M&v -z*s?y>|11c(sGT~W){8vnjTAif-5$a7{*uK&W9VK1fC?coP2K|QjqVm7$-<9&;L(q$ -zFE}+|f`9)aICr}ZGcq>ZxDaaba?%GA1aN)ffrwU$?d!)dLdmD1pQviE`uxT}94_45 -zY&!nFl=)y8S&Aph>J77GrlcS&>UW|{|E!76uig~yiKb-vl}EzA_XXS8kLupY62Q72 -z!ZR?d8HU&T`|Z69kE&Z6U002%WqTF&rw%m(mh+iSR3n0=YaXML8EC|DvU%Asd4=3A -z62)&4<|cA+5{%&D!tQf$LLShBVVrIG?7D5!6lxU>#2yiGL_V*hDErW^LGH?8-26=c -zXiDTLnwApBe1|OYSr7A{N{hzT1*Qgc#9WR(XP7K0XwGeBv}qAw$y*+b#d8>|(ZTmJ -zjLl*3UQ(Xt+2?;TgK=n=x*6Lf|AiKI19S%i^I#nF{fjm;-E9HsGEi3U2C%m`fsBnETtZNPHG%Mwua6<4=TkA}(n7ERM+7?V~ -zA^-vaP`WuvMVXY~%Lt~+(@#pJ6vC7&>>T6I|9vi~P^ATZJ`;ZR|BX9Iy~|5KJTPP= -z_puCOvgXeFq)<|jc6SLmO%xGwcypJ6_fMT0K%?ujACS!OhP_IRTe2dVB>&T1hfgaO -zL>H-vKOB)9^g-s=kq#Yn-J9N;oOXAEovwRGq6Q-11c6Tt`=^qLg?CQEg3uCgJ*9Gr -zTj7lB|7-T3faaGguEBq|q$q?Ar~?HzUsZGWRLZzz!bi2BV?uO?QW(h1eTZ=lCR{wT -zW5#mwI4Babt|YG$abD7seZ;8MD0Te@<1sd73fG4Vu^NnrZB<6fZ<2*Z}fFY!#0^p=ke|RS_J*{s@ -zA@Gh{LtM7cMxN!eJuM|Sg -ziBt;g6oa746Ejz9p{y5oR0=2`794~{Q1W}Ahga9-RIWKfqfS8+g&*=4%w5!X -zGQmhbD+29=?W-5kB}fnjE^uZDNYkQs|0LluQvx0-wJDjDGapT5y+go$fLk!e*`=Zg -zur45na&stubHEtk#lkq;Cj;ze4{kyyv>dETKsXMK$Wjg1Lg}fob7Tf1LGBBVGTYZ9 -zFwgaN6@V#;RWW}m2be305ArJ1E40olz);oHb(BJ%IfaK86#v{{Ytzxqd3x2MzK#|CCEQ5a4cH=e)36sLC9`4N`r2h;=y6cS+8{vGE#)i}~csh=q -z8ghFY^tZ3n$PHac3i=rCP$RbS2bNTVU1u8=1}TVx&{>Z!(ECtuJ?5-S!*#<9V%~-ke>hU7~4#Tg?(?$M9o?$ -z+`1H5t$!Nx)d2^Yy>!IA(!B>_Rtl!%I*bldrmEp1fG*U%P#i!iPDHHY{UXsvY9;W6 -z_AV0o%UzuY=iXi~Zy0+b$o-%#w6HRjZNFcx0Vv;jw83 -zq810vC&g%V*I&>3b^9c$j1QBwY?qs1S&9H*iu;X4L%i`#!|L0x9kt-&NIgvQWt;}F -z;MItyq5;=yk_Og_aWi@BlY}oseOTe)p{}>VrNP$+Pdf66@@Y6^WMMON+$IW65&%G< -zCa~j55ouR>0n>vcTYJ?sVAw&_Re*l9$$-thAW&M(f{aIr_FO?RBtB3h;QNV86ghq= -zBSTsVuXd*Lr0yExta|Mnu>~mtF{K~)lpgm%MC6)1Oj7wB-48Q$A@w9RE*R|a* -z$Rq=~4x7Yt1`HK9u66{_^RzmZ`5zVNFYm`SZ3~_&m%@_n`rZ?hD?cL8Zd+dyQa}1` -zD)i}e-R`Bv-P0ho#1+V>4fIfbmgN+Di983(j -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 -zY18)U;|Y|Kx3W&)mzR+ACE=&I6* -zO1u0uBrxU;dw+l{-(ie3wOb(F^wMkklKz14R?v;Q<;$&!f{#2TB?Q)4{+5z%jFv_6 -z$R`0o9KGad-~136zhLeY(0d7mdkN}WuIOaCc;+9@ltF6P8^!A##9!XgY7UMsZp8Q+ -zkn!^Z{o2Aj3a+uud)HC0&C_!0RvY4NKD$7*6->>76)GbXF8`WA$j>w|IF%Sf2b~?m -zII#%_fOZKRfU}Sb*T3+nQ0CaqEKPyNHLk@MqM1<)fLp5~UmUN7%wf=EfCw#;52j$u -zTibJ?8?6TfFT77Xt_#ACG -zXhmI;<|}2G|CQe%GJrWRJ}LG80nGk-Ov9Ft7Oy_EEJ=9mnN} -zW5A;~Sa(|$(fDrGmcOo^xu$StJv5~$lXf!$s4Z8=dw}?a!>dTC-rjGS{JVi{FEJ}( -z-ut^vKL##gVc#2{tUBt-$!@%1hWYHPnRtTN!Y7;;66P6VBnz} -zVW7riPtOb>80vBI1wn8eak2yxHuMwKISKu`76Qp$#SOo(Zuh{Eb1FJ@m!0t#@4x%) -z`G92XI@LZ0UvNC@LlS=X>|t=>s^PP@C#z0ydB{}oH_0;66nB!n|2A^iVhro~m26q4zYaVUR=*B>9@7F=Tby#VAgiiHYI8wCJ#2J#ue6|hR!A^3cE0~DGK9&-b(RzwKcDeh;IDsCZ8@GY!2 -zjV&ThP#_oeU95`|{FwWzk#ll`3m>Spr2W-G|6+>Ku9DX-n8cT{m2MRR8uWhC+@bve -zJXg~*8c2lxPR86cOGth|&f-4j?G267c@LTm;I|G!Sfe8_?2pvD+Bcd^f7>VXto%*; -z9pfh}HDZk?Ri#Xud$%YmmWD+AXT1LBY%M3&suu@L;sBx-uqjS#XYc1l%B(#`|TwdQZ`D~S# -zeoFKHC859raW(ECyqUOvJaHdB-Olfol729hFVF?IA4b;x1BI~XnA$SW`7d0AqXET+d*gFXi)j;^2aPHiD-^3QC_Q|_pn7Mmjsq`Tyvkm$3>gjkLhg@25 -zrnXve6bpCfx-;2U8l?l{C#lQY3I?06(CMF`r{h}=`s22A>71=yGrdE_FA6f1n4D0R -z8m~DmX&FPGT8GH*fts1WC(>il_vDV>vBd1o5jtnI=-U=hxZB|x#QPKTYgoglOeU24 -zUnjXUY*^T}hr^KZ0Bs$=agBB<2Drb~5O$DLa^FCeFNGk}Kv1ZL6aG~__NSA-ly0v1 -zacYx$pi!e`_x@536rAuH>)Ulax -z$RGa9j-=r7%iE~^CvH6HD`Fq~i@v&0O#j>#~NEhp};!#@kPw;qbJE)S+*K+BN1 -zGRGHOkmr|K1%KOK;eY!^_uf@dyUJs0SsI^TH%l87f_5z8>qqEaJl(|o{ -z{%xVhcb^8Wov9_$l0A*Oy|pGMV8vCMdsf|4sSKmucto*3MSbJ<52!F^!c9&vtz6*# -zvtNZ}sRQX&Mp -zkvHM2I=;q^W#0-Nx^HCslEV|+)77v)0eY%62Pg_6zO{w_>DizXvH^5A!UKJvC(nDVcU>Zg~yC -zMSN(P`bTh}ye&mW=_NifY?l4sqk{(h-3U7JJ(I8(x=FfSMHs2M5)YI(lE+kUhRim%?v<7%+AWLs{+~YHa^dKiSf~T{e7D~Ciwxd_BKJ5l&qEt-PAZH -zv0Dw+t|PGZB;&_^f5icBLxZIa=COOh;)&{p0oDcXK09E$0C1gBxT$E)d)MA}5Yim@ -z1&s6*t_=J(l3TWYl?k&>$Hsbl(o9(?mbU)K+zU^vrWgJo#w~Sz-Q`q<2sq_V)*jK9 -z$&+4?Qe3XTe>Dr;_~BW}r%byWa?20c&3}wbNT8{h_QV-9UFhL>x2w;b^&%@ruv#dCC6}xuuS;BU-wSlzd{|L#~gO-)GzC+I? -z)i)p3%BAst4~6D?4+o$gIK4x8Os8Hf2Kvewz!vw7LJI>0{g7ll*k`NeTQ8HW4gs^W -z*YwPX*a?h*VOROXHo!{-5R9vo+a<+Kjz$(11hwh#Ib2_$h^Qu+E+x{a=48CRZ9qLo -zgeG=1;m^~ZxGtS0QnnQGxo^7sZeo2_gk9o`gs9MHU)!jQ0UR#i+v0uTXg;iR{#API -z%YI=o&5hZ|RmLCX5nT!X)Irm>Ouar9ByHRdI~lXFQS%LL>D4%&wP1U81SJq(YQ1ER -z%(2h{s^-80u|+oEbPWi*R7dFvAbBC`7KXNJ45B-w0tG&TnHfh>- -z;}T<7`7zKY2 -zk~SD~ihCp`dksdkDav=s^0{PNZrp)iq5UePF@-}gp;1ziC#HUA778R~IXoj2`=qP{ -zsC+%^ee-qeYAIWtm1(cy4L`>ZA-m-mOlN^6t221s=rpKhjDnK*9qLZRJ3vpqhJ)-GP-d|qh(pEa;L>~9KcD>ZuNxeqUm?rShqbvqGi_+o4g>M5xM-ywxHIJVB3@qdb$}`6qSK1^3NW6V@j6s%RAx4d54L<{&rO98+Nc}x?5j_Q^5|qv -z$bNXTQjRO~qkw;0Tdn~ujwmSsdrrtL&}DwC83k_^a?Z8sCc>rCf^J4VGBUi@T)!I>V@1mz0v&FkbP#`a#w^8mem@OJBBO%cPgwa^ra70X -z$D~(Hw}`)69_~Rv16c%k0j1zXp#_Z-!^y07rzAwJgS``ryjA%_sW6^sNB+w+`8hfq -zzpEn*iuXE{HtpDyrN?(Ls5?a3U8UCVc>mNEJUUv03E_hQX|EAO7ELes4Z~u|JJOaP -z&sF6QRw$#yLoq-E_>F84O~k7h(R|`+XyQW(8&ru6 -zrF9VeTV*d36GN2wXD>tPjW?J5)pY5U_toU;dx)bEP(?ay+ivlp4`M3(zAZjEYEs)- -z8M@xzIt$>#z?r+^a8k7@+kme=_S)fD%SulX#3-^#t8% -z|E)h3hZ)O*;tde{VhrWuuJ`7t&!un3SzosjpxCK>Y4hB~iVhNd8EmrOdk1tV1$IRV -zeJaKF!+xU_&T$s+L@_1x2ga=DbNFzZHgMDGUQhfc(`hzk`~L60rf!?1W~oFaiX5lK -zASGp4gdC!Q#m?2QQQP5nQ4mA{IELQv#qsaVdT&d=44j%&TbC{$N0BZ<$J5Zsuq%LJ -z*C8jVIl&`%=eIGf1FTNBCQ%q1^grhVPo8t(zK8jF=V5)0^viS4vu~Q)T1;7|Rox;@ -z#L2-DD!)D1dQ$73n8k86r=2WJ>qefGQq{Vdl}Y7% -zsa`8vL*+-trVPHgUNh}IWM8OEpW4-1Aj&Oh;5lL7XjHb_tHlmq#BOzms4H3$PBDXQ -zC{F;HNfjmecr-|^wk*;nyNRquNbGFdyAauENueD#9vV&%U?7ha^*$KxF#?SzW~|}a -z?eYc)KQA<$(_UeNvDu??qRu;Ew7T)5rF<*D^m`8QV3lMVe6&Fm4e%q7s3P~P&$MKQ -zsz4Rl@@4GE_y?7%3cquxG=v5Ys5M!Ot~QvuOY=Amt!utbW60)2u(Hw3prnNPz$k6A -z4(syhbeV=3qt@IKj1OFfw7Xr| -zX}On6kOq4|IRf)STI@8#Uic6bCbvZ{h^uGZe0Fxb=>g|8xPO3iJ^s>v)Nh^1IqlD0 -z_z3LP*UQX4ZSWN2cSR_}&_%ha?fiRuQnB|Vc_;r1f3jfno%@sj4b3H@6xxXls+pl| -zAGq+%K6(geai4p023X7cvKkuA5mvM;PP%t-tp-jpRqn(Yr*~qf{Pck`xGlxm)dB{= -zQr+RJn?vZgTARI08_e+x>P_2v%N;6@Fs3mwQc%A?dz7np1Kr2BASAj3=6LB3g8wDK -z4TD>rl0wpphF4T|7>g$ -z4yG0&^+K&uLDSX?%MBntWY5hchdt@o`uj>Nnyw&PZKuQ2lZlx$R?vmf@z8j&i|IuC5JPNNO -zOf&Lo5e?uE7*w7Ml4avH9ReqTug -zj0~VfU|Pd=F~30(ze8?uUG5r%uL!H%CWog}kN$*$P(-P|fo5R~dl4fz$$|W<>GS*W -zGawFFG#=YPS}@uOi1nnjXP_&$14T`YQ`nqC{Ar -zv5G#Nxpx`ox=i21`p*=MEK|Uw0I>Xs&Hp`#_`24_UZpUOI_D+nfANHxHq(_*!J56S -z#O?$s+50bK9et5Vg%?Ep(@d}TaNcj5?gl((CZioGO__n3#MvUVG -zUQosv5J0n&h!IxIQs(N!;7*>F5ewS(Ee>U7t(4P6m_VG0&-$5w7TrScLgs3Vn?c!! -z?N8ZjWDznP(9Ho-x48A-$z>4@_3%tIzX%>61P4FqBRwyNAI_(oh^V4S4K22|@{Igk -z^mhJFWE;ZrBz6<6V*idIAnJ1oS0TDGHEneS3<#+H*K)f#r`(@G*n7YewjFQAtAWEN -z;{19xxsjc3o8e50EI;n@$^0@EHeUV@u%3kv%-O=ApJ|kJ= -z$Q2e5I5?ZEU*1ZFjV?*mV1nw+9m!8t*(f?6@5B}~+)Q!zbk5%N_N|jw;3u@5c$j(X -z&>anxKFKZ)>QtuBeVK#FgO63try!-o{JcEdw5^LA61%Md9`z{TCADQi_b|1I3 -zKVEwqs6yX7dp!BuX+rR6@3ZOMWN15EIK7FY?NQ>bf)RVawG~A_oeomLZN;JE`yRE9 -zCCc>q-Rm4vNH8%LuNSdjWp)Vb-5t>umf5|=TbmeV&VbV2l(|CfzxtEx`F*ycIpnAI -zqAdm*D&wunk1ipfekk3Gx$T3{=PZN)t}2lm6A!hr8uFg4Dxc`Th3H0oU0E( -zVK(DN=n|-II#KobxaLdyE&o^d6yQd<7P@C`zryCr6 -zu9Ss)cA=5Tk=sVvxx7bj6KZ=3HCsUfY1}t7AD)VGxaK-GVdQm-&$nHGO<*R(nn^`= -z#eG7pn_X#Lz!IWjGQ(qHn{HL}6HgmqIJG^u49JPgWs6D&2~|IDTtI-SEth7vw}?JOr;->x9%IXq#vJbj;!{$u=H2f=?y51lDCE<)rF=a?V(F`< -z3^>-y6Z;LRFCvH-u%};l_TK>+Dm+~V8F~&vN10ie(>U@w`%ARHXxTbzKgLq5WUt+` -z=t`gSD%lr1V=RD!$15vA`KAO4htCwTm1rI(%XzBY^4N3^jQtOB-Dp!83KY^;q-L`M<-_p7!`<;_s{*@gM1C*dE+$ay1G(kl>d`bVW>59GZLGMu_fx -z&m<{E?T3XO+v$^Qq+0a$N-7J1h(XFuaxYfzXJ@JEFJ`++hsYSud{09onh7@cf&TBV -z|1+sg*Q9~t&QCih4sR298Z>Nv6X924&U_bkPTl&;-`B4#s?cYElz -z$ydY4T|CFIygS1g@=9%+!fHNm*Cm~evz}=vZC@K|SlJCiOUtgIc0+sK`pe%rrp)}y_V2<0rJ^XpVd%a#B-2SiC_!;X4=J^ZUL{aB|>>4`~c>>_fg}*mrGB -zEM?UR@*3D3nYp12=)2L@Xzd(JT~ER&k8eg0$&4OU=0P$bbWi9;4NX0yzK5SCu$5ij -z!*eZz592m)W1{CL^7JMm>XUqBXevIiH-yrWLv)ZqC66R$IV4+{(PxeDD6gUokGNkd -zs7biS*X|gkx8xpVcW25ZJK1d$=h=wt? -zzF`hmFS{Z`T&3eWy`+kS4w{xVq)$DpQb-yI1>XmfrR?G>r8B0-vi=dx$^!21!O16| -zKVbUhCaC=hm0*D9N?R0qFbxN5Oqa}$rY(*`MlNK4Yq}|RH1Q3X;#1N4gQNR+@AZgS -z_3;0mx=B|ki#;hCb)ZcvqPOHzVmuglNXCMQ;8t#mejMdM+^JP?S(wls^+R%&A9G8R-(6zT8np-wwd -z<`f=2=!(o3pU+g6TI`|GodLBeXqHwF==FM+Qxj#ZnEV@lg5*obcTI_F-2xmw{nK6O -z0JUc-vZMX&X72o<2LJLF5Or+TN`n$LC!CO3VTV^$$^` -zX0UK(E}+4K5P-UV2V1Q<6f2YyUEf2HvPbJ7?3y^Le>5Txaq-$2`Dk5W -zsOM%#f*3HK9~2P(T~(}7yN#a<@>Qnj5U*%q*KE+yrs@kJ2%+I*`10x&`Nu*474X0F -zi6$<-kbS&S{9YL4SpfNCr-F)F6(x9?3K6@hI0j1|I2<6}0~CN0lvlse5$#W(&{{wVw_>NHa|Ow&hRy>o>iQEDT~EuKRTyKaWPdxLoYU4UN#FboH}( -z9fa|+{6!-bO$mjC9(4f6CK~^p#lI0|?lMd1f0FdQal-8D?{nxdSe0lkaizT>vE0s2 -zN573pR1OQu5^mI1{#6Vav1Nrt^pItT$Q%?zHxzEGjp8KvR7t<}VpMkT0InQ_5-0y2vy%0H&fPiuxVD-Xg!qKD56;OI -zv7=ul?8OU~szNA(lsy?)a+MvUvJ&YF;=^)=6naXq<%5pTM+K?AanERu#X%QX8Rb1= -z-EeIdWs`SrxgY+P2Sbq>7WTb-?`97XH4^*GX?V+G%ME)e>X-J7DYS7c>7{(Ro7sUu -zG*%iJ{DPH+&)CxD*j54$*DPWM>Y-fT(57s`1tK=qJPC$`x3sHU?6QI{f(CS6WBNev -zf$iSUu;Ce*@RzAYM)}`=EITaW{q#Yl -z2(0UQ1n3|nqA`CL>8-)WXGa`Kw`YeYSVYO-}*3Ox*65sZh?2(L`s>sRi23EvRZ -zywcp-PG;eq+JQ29WW9C6q7rr;hKh3ye(<_bz!fe&9&MGD6i+Ws^`h1-HX4QWs|f>n -z*;*QQArD?NmPn~C$#$UkyCiiCc{Wzv%iqF;LqNZ)z|~d&v4RJ!Td*x?=oHsS?CT95 -z;JotvF9a?aD-#Y20+&G2w@hs4KoF`_SkNGj);jp7rf!F^>4NF{peq1Aee8IoN|2Ub -zHIWwKf+Vpz8SUT2@@7=;2fJKUd9v-St5F2ML>>xkHo&-#SKd35C#x -zu49fB1?p;Ih-XyPB8qSNgLa0X_yOJk<8qT|>rQ4)%2*vY6dV*()5MiQxZszYNh%L8 -zC=he@kM3*bN}jsr7wu;Y|9yG0tKNp`AejB@z}HXkGz8ZO06V~;h0ab-&nBCU?Y6m0 -z_?IH&71u&yLD#T#D^PH@$YN1>VGb^e^UP!nMZ{f%k(buwM3&7h4owm)+2j)Pr@KgNb?b6TQZ3 -zbAj{9PV`Louw3FK8R_ZQR4A@NmIDBFQWEULHc;WJ7#dWNMXyE-ub>3Q^(h{B8vH>a*RxmNd?IOs6nGv%}^8@UlIPSBi -z)G()tu@i5Jg0$VbL*~;tW -z3I*lABZKK{85d`CcoLc)indL~4I7qe!b*EnGO1^K3oAWC3SVL@Y$yebWn}m{&H`Cq -z8`AUZ+~J_FNBdmSj9*W~zQ!d9*rI{(8>sfGx@tta`C^+&Jt0XxaZr=&J`auk=GH~H -zuP_T_W39G|9Uts9;&q=Tk4fqA+E83&+{faLb^06py>wGmm;ojqJQK-SaWCsfbnMw^ -zHU@Ql*vXsGdMaEk$@IMnkIcUTw6EwDJ6EM|)2n(zai-DVA8hxZWjuu7cd;PA_q?O} -zcy*Z;%VI7uG$xphQyDXw-;1Jbq>}8h8{rJ;w}6k+SmJgNOm=Wo`Dpn}@O+M&1zE!c -zo}7$oul%wFM4ge%>2|P*Gi>`Du-y0PA-8V~9zPp2Gm<~aJD0(kt*Kk}jN9r^v8tqT{K$Q1^ -z&9x3e!*_XsF&4lwm>3#BD7Af#1ug(@m%FpuoDaOTn@<1J$d%WgAj|)4}wtr%dG~59h)__`E9F -zrQXp?61>5aZw-CMA6vJCNg;S@SB -zRK`oW(%$cvJgoT^qR}vwv65@{k*2oZOqVgd`wFa!$n8BY#8+0&GoN{bol+GphnmPP -zvK%{=A!6Y)a^Al&xsJH^j(TnsB>%>JWrGpNB<6TpZgjMlvnt|oQBTG)hi@{yx-y_t -z+Q6AR!@O5)6$7=z@`mPeY=~UMi?4FN+Bb&+*a^4;fSq*9G$37UFTRFrf9?yUaX_Px -zNV}5ft|Z-XRMd9F$3CnA5L89s{*~EasV-vb!0V1kXyS50y8brY!A`+3}Q#%=J2BGznqe_e(g)&ms9mUA*V5(H-Uat-@Dn$n91* -zIpYN<%6MhH66uveX$35z^PJ>Bo#8}=H9pZH$dbs%0Kgxl(L?1KehH22ISR%3X}yG` -zNs9`9D(FOo<}$3e&Z_DPzFj?p!-As5Xm{_Z+3Ordo@3=UmbKGRxVvYMj5UKr6R49X -zH{|+Hza6oYFZuRR8Jd=w&B~I(ef0c=7k41GAd+aqkP1JAZLdZ4nH?jQG -z<}ddYykqk|>tlBE4fRNop16o%8g6afsuOxbO7+L=!u*QZm!5bGud>IMd5*`RYqXHC -zJ7VYR{!~DgT&pnOWuaD(&!bIt9=G7z^0@F}A=l?Py|!{o1Ppg#u#_ShfrkEtTKg2- -z53S-PSK72`D-VfNd{Sl1lolo>h&-A}vDsdZTuCAI5)u|p`0_FmU7)2E@7F6L1S#eH -zjCNf7hl<5@B{tgM+w_QK!`TRO;E-~8Jxb}7Ymg+fHlOaqgO=p9-Ouuo_549%5dblp -zyuFxkv|E{R2qCq9PR<(HA9m7SEQ%kui0zu)iDP+zWRw6;1FxO5D{K%x1$UH#6BI#q -z>I&Q5su~i9f5U7CN~ECGc}JG&eZhA!;bN}?Y#m7RtIl=W?q5FGssoQQ#xv^U8+p}V -zCZ98!ykir_Ar&7BQDZT5wd!UjZKc7%X0ihDMQgCA3zU*e0Yen1?2#Z<@fn|dt%f5D?&k# -zke%_pf{*fslLwT0@Iuw>k`PsWXnFgx4Sgse_YvebCa8lguj$RLBbl?{C -z+@mqAXj#!MBoEP!u(A08ssgxT8UX=WQV1lCl#>kPVhU{=x!I45sLs`)Gye*l;oa?1 -zIDN=lPC(rhqi-Xr8SErU6~~sAv@U{lM}MS){@`g2=Er;$CDA5Oe}sJ86?JV*3QM!* -zqwi-n9x1{V@wt@yJ~Ki{%i;OA){1Wk1U<`Th_AA^q)a6lx>(k&a{r5qvz|Pb{fN@4nw-Iu$k!qXR(ku(tv$PQ -zIT3{AH~F9pO`QHIgf+jk>8maa>N%DFG+@~SJ|TH@lb<8mv)<2nzo;u6XKb#Ef4Z#3 -zzSE==BVkRAJlVobd+<~Tr-nFo9+7_L!Xz8oe)_(MZim3()XwCP7&ZM@t`3RdZQCcr -zde!{{n-Kq0oI763ArYq`!SV=lX`r%o4`Pa>Tsl2nEBr=T{`)O8i&S-^Z2{~YNS}c= -z$0SFLWc^wp{6X6Mo7M7MH{ChKU8>hckm-G9$)j!%t5QD}C)xI#1#?3GSOz=}fTrl1 -z3zIAeh;$o;?wbavTwYMzsIolZ3V`z;%Wki!9Wyc7lRt-9B@pZCjV9 -zyWBA>w6e0j6!9&JPAy -zz&is;Kemnz;Z%AwUZCHqj!IDd;`Ud)()`iyFt7d|SftOrka)IMa=9jv9 -z-b(Gc+MAsH-e0HV5-d%lCY!Gx=+295JRHvnOrW(`G09scpxfBlXe}Kyz$!Po@WhK)hHXu>IruuuP^texD#Irouh}um6_++5FrULn#wM%wKMK&VTMfux0FO;FR)KBm-po -zw@v#MDH(oZk?Osnj4g~A{DEJFb=0%zavKLZK`>5V5t&#w4!lknJ~90~41E7=Ko&W9 -zaybn~ZsWRU_fS4?4)3lPH5~%{r@X9L(9HIE8WyC-U~7h!DS@%w?_vwFbq4^?M7W0i -z`lYrJnxCghUu5Z!4_Gi=&ptCkiTk`>)qf`{8pHArEg^CNfTV*Vk0?clrD;4m)(q(U -zMG<$jUe)G;JK#9*7X4n{lpi;V$CUoX49-!J@o5GP4nAbJYHaZy3OZ5K9}(Eu8wm_J -z<>lB8cW+qEU%YQ|Hp(uwF1NOd+GN}Z``_UBvQc#5X_J{Iv{-D9 -zFQ4x?Qyv~8VE8XUi{)4qIhJL|^@WcP*cZlFfzQC1)0}vhy^^x(^eSsLR6HL^?I>_n -zw5X2Ct0Ys_n~JMk-rGaQ?H$+nZ|xX^hFYERHSpCNU;LhF#u#{#HE3G -zzUJz{x8~)0pJkq$C1{Vee6K9A`U&#o>)0^V4t)3YQl;Z-#aVKCm)rI8E0m_W0%r*G -zQQp7lzU71r-&V1~=Y~@19G_Z*A7K;G=3O -z!L7lOqEI&MD_#RoG+=b_zEos_UKr1LHKdYm$Xlxmr}f2b6|rDo@%RWjviM;s*o3wY -zZ#u(5d_IdKmox6W3qu6$Ekxm`f;rBy28LW%`&k!dCz&8So?R2rFlmvHEi^}$FyOp2 -z>xjrHGBIQzTE=e7+Cx%)Po^4nW+1Hz$#0;4qJwes5Pangt8mIY?nV4hDajJ#A%KK8 -zC5`yhk|jFdo^RHquWzN5c48<(Wz@R+Nioyv5TPz4(r*qI`T_)cV}cZIXO71p^=g3d -z^$Lt8oi>lXF-*r!(2WXTuN)yNm00u66*QG+Iyn^Il3Oep3xn2aHIWbD2oL3`PLmkW -zY})>F*l8-K(!BcCWF)TG(vf-fmGPmr48lGM{(ZNlTrb?>0A?a`w$zcenFN}&5c=+%1Q2t5v%JYKihhvQ>JU5=oVz!!{@b0IxL;+o?fu -zRD13l*jLjLJ7u_BD2Vt?PvXdL>(7*vn?R`=AkB}=oARr;kOk!D2puTOQu7dRo6P@! -z^WTHBo4@MLu2eOffrbSO#Tw6cQ{!Ee^Lt$}CQp{P1M1^D9aU)S?t&Kkxru- -zc2XZ*q471x2tl6U$0O9qYSnEOhdgJJ-j?SF-R44Vg{(Z=rn9arThq%)$_F2FeRI(* -z9rMu*UAuVq-M7rALSc3g?EbU2_$gm49brla`VhI<_R14Q>jTpV@NR}dg61KMjZ4Kn -zQ5G{v -zzZP*5^8j4)ACJ|c*d3FkeWvUjF^&KXxAw5c-UJik=NW5oxH(PhS{5KtsYGe^)4WJoP@{V)SigVWqW(` -zYIRHm5NP&4u8fH-tLj<^;Tn!jK-1jIMRQIRMr0m8q_8XD{OoUYXD2|(S`JQJ?=Ifl -zUqH&f@y7_OryQH$HU)Qu*hvQaV8l_-+1T}?YFntn&nK3}Qn=}IzpmGK|EslTC=*21 -zW;6DmcJy?D4F9rjKAt~iquiUk@C>aibxhGcNY{i-1Y+fA4e?xO)GgcP_H`=&J6&=K -z4{UwK4ZSteDY52qyaa!{uPCM2Dh`4F5igH9_A3RJW(njA$uXYzsvt{-Ux4%tQkc4P -z{Hq@a!^&gV{(88_T%`XXsM&$qN=+q6WB?$L!W6_$=1VN?%>~kQI=CQZES!TDjlYbXNO)UF& -z{D2HBhp|7Tpyfy4^YoxIPv6&;p5*;tYa(O@p_;5rMX;-#gsNW;__kMA{YBMAxu~|O0bv^DZzEMVlYPqnEJyOtXXt5~dp4nBdMi>U9YP~DACk4& -z1l1Q&4}+A$lm@XZ^&65+A&;ZP368zk4@H5g`w^Elln;}koc4~Nb+_d*lf&V$K^KdB -znKo&LmH(v{2MOL-Y<;$V*q|Q{Zj<3p0P-hj{f#x=Hphx$EoF8*@=&(%fv5NRD;h^0 -zC_U93x0>xc2nfqAw>s6IVaixjKsgVl00S~F)a -z9fi=d#qL=$Ok!Iv(crZiWIao^C{(wQ0Zr>EppljLO1Hn1lkCTfnb!F=_vu;3#apZL -zhhZ7>UE)59HbrJU<09u+E8g#od-8N@FfMEFNK@JNK?;5m)J|0PTb$=a!X*+^Q{E*O -zYooD^S1?X3;a7sK$T0NOL>T=yt!zg?`^cvAE#+VN2icGzl>^R<%d*>2Z8)1?zE43F8a&(E^HM -z7|jP)HlI{8_vPh9Eq?agLpNnd90+c_Y>c9$IX!=hlrawdTJYnkovuIQv>VH$k+#51 -zQFMG>dEO@vnz@%e09*gx5Nef56hW71JC55`2JI(981Y7djFklIGe<$hh4;(#;sRKd -z3mT}RgRd&k?@-Z0tDWuj9R}Cl(X=-Z0PnV8KjB=uH{59_y_E6t+Z18qnW=IvmdC~9 -zIfmww!6~PT8kCa89wGxih0#SR$VaMF-yLaQAC8vO%|r=?IBl4M-`LQ$HxCzkdTEB1 -z5Bm1I&|FN?xGDB6$PsPy+_-aQHxPmZWzqL2#=TgFi%Io}Lz{xPL^qmaf??qshc@;< -z?AYI%BA>QkigJG9o=h-%(XO#aESu|KJ4&Wp7!f&Ggdfg^34_05y!<7RFhmZ~Pc8kaSy2qad<5q1jEwrw%+8xlW)O@Z4Q6DyN`OH@ZNW0Kn$L0ex46%_R4!?b&)QX3U>(# -z(PKut--*Ht-|ioA#aTnSWO^i5BAdrmyZIl_U3Y{kMKXO*Vgb1t1OgQ&iXx5_moKE> -z7Lol|I|x=xz^XRv$FAs77b-_32vSF1*_%64C7*#dEiOWq!^G^mUQc^Zi=fEis2q$`-@Jd)0!vt)}b+8-U -zDp+y3Jd{p>wZer#v-q;o9?!ISF^sY@+9H!eUy#XfLCV{f@FVawgMGl~KfU$TZCZ{y -zTKpF*PM%rcM}SEghz{rTpKHhJGvEIrQnYY@`OAx&(5>Qcd>yuKT!9V<)L;&cO^okd -zE^7OPCqE>`jGM9XlU%z6)TMU(3qyDrpa%QmS^%5Gx@es8rEnUsonu -zid6w7aV}yYuxVEp2jXlwft1g+PJU$FzeHtzih*?f3|GTX;N|24t)L09Gv9(5Hd^xP -zOh!nLm*(qjo$h&t@si7-!rTUwk1Ukp;&bj(z55OlUloyFp>cnuugShKwE@RHH8{%k -z-QTTN`OHH3Iw6eW7L!l1E;)~}+bFl9QOmevQ@~YVEsEVQK=C%lIYnUOSUckOrH)cG -zY(4vD7&jJ&zzdwmK^7usAy<5W_{}s2@hNWvA4Ofo?3+>FHlcZn`VP-B>JM-&5_d_T -zxFSy%Ac5OeeCnlt$Ulpr-w*!=QB;e2=>6W{0xZYA%2{a7{IAP{wjL@%m*huavhS~n -z+~TTTqIh_ZOiGu*3e+ztmZENOhJ{ZjxM|r<4?%t3G+j8LhrdyoXLdBa$mz-(;3z0rO~{ -zi}xtia-18IX!m7w*x^LY# -zZ$L;}lqLrbaz`|KFDVLM(yN|%{GyWLcJ+0GTq^msj`_TL4PjgO;4C#8nkm`^1q -z|B6nvjk;0BRgSFTdlJuYJ^+U)FNDD=7A6DZecDG{3adzw14K>EK2J)y -z$KcwJfW%dgEM!gT3mr;+{tMH7RXbp@jlH%KC4q@!lAqBfVbs12YBu)Ladkh$JQ+f=NHT(VWv$z5&b49nXq34CxrT~YG1t_ -z>loF}qlVx~khYBXe(BPEIF>&yM_|G4?(;1^!1{VPYUkVGYZwtp^SqMK84VJA%3|15 -zb~cOr$(DIX-b$j(oKoQ$>gMLwj^5qs*l-YIX4j@JiI7M16}}8IV>#cPibNV~g4Ele -z!0X#QyNfw{m5B1QL+~u@mK{B6I~6h~{$4Jr3&Mt(g~a2_c=Jl{U}@lZlHiHdL;1Eh -z#9o_O-aI|Ocr*mh#_99(DM5^qDqV@-XeeDB#3-c<&*D2)YaskH72K(etP(_=mI -zs7oe72Wv{#YrYf1lS0a2Kziw!@Vox#1O}L1Df@mUh+&`30A7455Z@$H6b -z?0`lX(~+LCmU7jo`qzqz#d8oQfgrkct|7Ib&}8jT1$|ixz4%-Dr2NYLLa)S4P&EY$ -zxt?Rk=(AFxa+UYA;f2OrNn#~G7f@z{VGCRr-$2PsWAXjL|G|XHKJV0#RT7XlGP+H% -z$u3ojn7KyPUdRD2xfMlq2RKLH9w@4{QJ_ -z`HrUBBE3P~moplCC$l?bkW!NKULbcO2biYiLbXmD!hKv!aSHr{+$7fyi3EHJcR -zJH~%`;1)|R>+8Yay;22nv -ztBstAtBBdlPn_&2#F37lWaheoXMjAf?qv(Z^1BPers%~t>3G+#=N`6RP$)WZ&ix}^EKw> -z$U~~U^DLv4h-dw{@ciWkjEV^tGYM0NA-h!QyX7fVRVR=uKRKM2uzuBd2!Gm0mwep- -z0SHkvsOTFiD?VonCc7yOIs8N_yuE)lTMM>2wfm>R-Nlbm;YzgX5qk;(@p~sNJjIsZ -zeka`Po459{Tte_|unIp^y9leY$MB^R!<3^<4_h9+EYv?17c%=f#>gN{#~~iKy!Yz! -zt&aaZ=Gl34JWY_`QmO4V0ru}PU!?jWuT)3JzsdPl3VVEA8CrjWzig{DkO=IeldR^F -z%SBA7)j@aG;cvO70^Uzfsmtl~wlp{(5p$qY==xQVrYU*%^J(t}9v -z2%Sky^F+aBFA@i@-)|`zmDZ8pA!*(e=TmzIM%zOqkH8H@e5*Hj_2?_!2F}OUJZPMQ -zbY;V+do>5F8SYaKI5lia3d1mfx|caSw)hGW`hE*c>91bRQJbtrJBpM_n66D{z#1{S -zLK1}lDZ1pkQp{>>jYyP)Y7jtP@RJac=0sfv9jk3Z2^McDUTmrCPoFy})t|Qy -z1ak_jvD^+{AE~FfGcLQ>r06Q$D>%RN50AFKSxPXM+T+sJ?5E{m?MKk1 -z!S8eS3O^YrS;3Ewxus$gFEB_mD>4)jUV=Ze8;<4DLv<>-aL{9U0_Fg*)4kFE{fl5Q((9&{C_MzJau>CS -zaoWwg^Z>?B=|zl9yK_5EYex@y -z#pHg^daWN8hkcuj@Q3wPiT`_}ry_s9ZXrj**a$u%Rf=?^_@J`0naFkv5#ENKQJU>p -zUqr%V@*&Rq=MMj0!Cn24SBUG`w{BM30_aa<%vU)O{)%^-Mtu}fZ0IFi@T@6TG#R*N -znBowD)Skh&z}HnT7h$E}qZ2cBEFf%9B4*{>)`P)j87$p|!Ed5_zqMhR!2k&hU7Zh> -zTJG!)UBCop6?BSK6W}(~hrSCn8 -zxH)>b1drx=6rkyX2S#3=dk-p8xz_`Yu#n^ZZn~oNlVWszTs^3dy`MO8L=ZV_6`gjl -zLXakDx`aDCIlWNNuWFH&-BIB>Dq2xKxy{UCLQt~=*zq0w9qeCYn-?kV&dq@X&pT4< -z6dLy1qSlok(WT~h_BZaaOkE>_mB9NKF+TamCA4tj^J{&HD)VV>z;+Z{Ke#mS$b4`vWdUkIe4Lzmu -zm5qNb&SdI!&9Oy%?9%+ug8==wZyN@FKatCwR2WtkyqY7j`KF1)O<{dZ6^h)eb_8d85A^Ti^)f8rY%e&8i_i{(`uk})a9duzvi -z64!(7V||yg=i&Jj#rx?8Wfx){ESPkNa$nyN{r -z)Ga)cR -z(gec^V*GT(%o%LwED`>E@vL~W3x;9hX*GTQoKZ}Oyg9g&=)wf19c3lGi*PNvozO+k -zb9Y^@fIg?B!CUIZ<1drCG0-U<4MR-E8l*SFWa$5j*df^VL`wz|cx_p&rTR^V*Eb-*yl~PJNLhrv&JD=Wd0em&1@Zq?Iw_Ul=+5W}n -zERz1WQ`%>p3kGRbh_FU%A{b{Jj=O`AZ>%K{HIM>IOhbK_NfSou~FAc9+ -z2vrBXgyU}sDv}D5ULQ2plCT}0HxJ1>0QXPT^tm=rlL(O=?e%}IBQNM}RGVP|(4k{%8R2JU -z84psP;NQlfnJaFveeW|+s=Xga(JpboIfx-0_l9&3U6S`e2 -zmipmTI!V34&!YjqMp3H7I#h`B062T5GFAEKHVdmrX=1M|h~_ -zy3z+ttXO=;P>mncKfLMivJGCp*b&nE(IZ2hkhv}bZK5KE+nv0K+xf|~7t5kAe!F_> -zBf9%+XL-Q`gT+MZ@ag@!DL>CddSw^C1axQ+Z2rX~q;8Vz8~j}ziX>4F -zIAE$rMlrfJ#%?#A;r|EVektu;pQ?UyR40uJM;j39pHVN}r&#o;>FUkVm#-UH2&;k1 -zE*GK(m$}WG+y3rRhdo+T*&|TBTX#gk -zn6c_fE1PV+e6QLbV%x@RjYT$se{a;{4N;@FcR7gFE{~I@#9z{R|B*yUWDo$_{zFIN -zPrYv@8)<5hTGpL85kPyQG^8PHm@xLcPAsE1JKjJ@_>qfDsywHyS$-%)tZBqAWI=jg -z&X9B@c&!VR&Alo5dvc>Mn@N;J{ko9}e>lUmu4u(@`-nKjQq>QJoG|j=UpdO{{VA263WE7Ya{xVSO)C0`P%W{g-ip$F5z@+zd_3~E0>N>=QWt}$M%U{5us<0Ef@lB}AyU~mEpXR~+R -z54W~lNNpSG{psqI`Z`0Aj=jB9@IGNieQ}OkdGNdxXWO -zHF>xH5I!E3^vqLGpIu7A?_pRMFR=o|)Oj1)x(#GxYx%My*2WF|}sVFiR58L;-s3dh$1E%+29LiR0wZBMO%9E(7Z?VzWD*e5m*@ -z$A>iX#k&zM%+0NG^x7Lm7>*sWsiT>}-@%4yXS#$%w;!JXUZTXOi0YoDKWBJzY20TD -zHW?cn(P+PK}PlF!g~mB0V&_`UW)uQpzs -zf3|^nVZ95PFRR_mR(Vu(Li6b4pOpP%ivT$7rO~i-VE&(35+HINb -zqUPfRLLZmIE}?+pI0Z3L6Y~old!&|DJI-K7g%txbRl8NvbiQydfJr%Ue6bN{2wP(> -z1crvc>+T6W?vq3s(dShJtZp}06tw<}iM{9#va&&|H{SYk`MBW+Ivg}JHSKX2eC~E= -z^Im1Kh3pR0`263rNG{O=sB!USoZLFdMY8b1H)UXjy+cejnKNf2i~gV(KSwh*U9CW*ymTyXxXPWw`bJ29EMCyaeyO6 -zm;WQq?-0fc{L}r*R1c{pBvV+2pra9Fc}^B9wJgxBfmZ3%8=m!eq+EvDb>W -za#%a1X4qe)b8Jb52XYyq%J03K=88a~*J?b^isU7VM6JWmKf)|9<@BvapRLYa=ONp3 -zUX$=fI^_?t+|4cyp2ooO&D}UzYB%I9{x1ji^aM1XX`!c7(o8WQ6 -z3y)f<(3`A_sL&yCt*TLb_3T+sT^|{lO#!5rz}}KXEcS_t_RYe#!fj_nq7ZC*W1nst -zq2LegAXF@)qiBe+6TEMkL=VCXQ#;|;#fDC -z96U&GLc0^NN&1{nXe^HS3PC7nwlGLcf<|q8sg!QDd4ywrIsSG}(P~OhP$(g%3S&h)t^3*()z_1(h&*tj(ZSNBe1$_Re -zUm+P=;8rx`K{+U~c}!nes1UurCPd*lk@LPSH)BZkWx;&4fjy)%EPCc{Lwowny5cOh -zB%A!+N8~YXz09?@^x2C&&fVA>P0uY)k`1Mmldyc2g_flpF6;zV&y<6K0ZBNnebNJb -z*gG30+mmeu&6G_x`0O{0OHu$F&X8D7gj=o_?7=ID#4-&9eINS4d)H9 -zy&hognxcm?l78f05$y7$=X*8p`fSE62`H`Z14PhQdDuc7|LRL8HplD5pqS61e|o;u -zeS$z7vS+rE856kN9TuKD^Um1}hU5O%??~R^ -z25L?w^Nzm|BDTUKbpVOqQS*rY&^;{N7G?L2l$RBdXhC)vem?q7XPImLL6KoVNjL1Y -zje;PRu6ndwV1wn-knSRgLdJcgSBraNkVx@Vt#z_LDe(B&Dv)r000lGYufa!L7xHlN -z`4C89w#4dsO5*DF*~aybPzb{+eISl{%YCJyxdq520*cX*`P&Tap_1VAD<@N_3?pR) -zAc+n#h-wiOINfRVTq_#!Mt|1Jrgbo2T(4egT*(3|3G~J>Kd_Jkj>>YY`O$@@=@ZNn -zL!4ieQM{Q|r0~k?)qD7EUJ+uw#||=(!|LY|HnB<4{evPxDO2E}qpTLu8x-3c;w%)> -zq$40h1o`DFhW9iyoW=>=Qm-YnZemeof@A}zK3%)xu0{;TPc&3iK%EBsWemEazar+v -zmx)*;OPysK*k6^n*Y#X&je|h}SZcqcPm)7*t)aZF^XDTCqtK=TNrO4Fl?ZlO+UH-I -zA{+hY_?&o!{xR`eh` -zz&WDl?{V!7apyCWwS138Mqgu_drOWBHyw11%@82@#m9!B8hE#Z*X)c?h`~12jPiJV -zUEgB?S>@*il6xW22l|ZCKX%&z_xYE46CsAr}G=Z|V!{6r1%VU1`aPiH8YksK3}=QVcf< -zuj%l9VO|S&{Q!dL%}rD68;_?eu%!-xYt3ki*iL#W-;1W?qUeI -zss189P~&;8H6U~Q&ANBN`P%0{arCG^~4<(S?0$dk;f1 -zdoC&!qOe(xffVJPk^9SeLD7N4T2KaJrvy9_W39F7a|>{NpR2fsM&usO39}z5v;QLT -z6Kr)}pHh&C+Icvv6~Op43EPoX@@C?$zAf`hRFMmOp17G!Tff(ynE`y82zul*5nHXIFh$yf{$1o56^@ES_Rj -zxXz(?7;p@vs`npatluWvsoi|TqW;A$li(zzvyuv?gQNg+S|MJIX1!Hn;@5_;ZZXk9mT*$cROq_lrkVXKVm1;Hsb+MMlz -z`TgHgvX7x*Ud~DUCiOTo%NQB96fPsi6a|(2+5N^zG43NJ7w#xTMOZ=G32yJpvY%ml -zhnwcUWayPn5Fx07Vqr`dhZQqj;@+dd-e{}eOuR|o!SWLy^~M}qJ|?{GbpVE@5)N`_ -zO)$c@tTtL~DumpQn!MzxOrPi3eIt?Z?|6g-<-OvzleEydkb@;nagY&RY>jdWj`s=iRA(k!po@Hnr+M&;&oG} -z*;f8y=$)*w7sC94QIiE<=Og9HPhN;id##b%k0PR6MWq+YCfGhEEVCFg3G2>mFT~c| -zqUaP@VOXcQd|qN>;;B`YcUKF&hWLOqs`J@ae(6&X)%Z|lynV#UL6t-J*n{rOR}8;o -zBhqs^JBRf8T%__UF)!meP#w9(PG~qZZ7|x=9JHIRGkEx{YxT5Qz`oVyo<4LG0Q%E*42(Z@zGBw%?k8Zmv{U7>%>eT -z=nAd+(I*FaJCd6_tGu-f|L75N7P}u&3=*1K>0$Ivaw69s?gPG_0JMN(0yhwe$We=RqW6L1E@`}!ap;r>1~_%k8p<^E^#A -z$)ectoO%4C$YAoI3vGJKiQI{FV9>|a(7%e4v}=0$S)|4-HFeE#`tDVqQ-21I|0@~`(z!b7y*;iwj8jYIns -zMiuX#i-R=I9mLpIq9Jtci3GRkXG-Z$)Fv^B9=yOUasPZ$gDXvj3 -z4JK0mvO-xijIaT{fD2+YoPrITPTq7Z`#r1%A~;@?{6C)5m(T5LhhE$}+2{sgn_&({ -z6&gbmTJ43@l;RrrC0r@)h$1)ni@_|yRERAH_z__tyZi|J*PW$Q(tZ>SDrW;%`RwFK^seZ}@D)~NevciwM>^b)1JVp4(T -zH2b_I5$@})N39$G#8LSt36(JHX7mtaGzE9U_U|-_q_q-$x2zu|%KsNFualliJo``K -zyYeQe90Goo0XU_go5KJcs*^|OwMO)p!_~8%o%v;P&v}OJ4%7)D#uPv>ZIENj2|6FP{cX8LRz&PMpAeiQRdP)d$oU=W}!>s -zAi&oI1N*_pBYq4nlz*}K;jy6^- -zdlVO`41uF4)EgtlB#{k`9g?{IE%w*_e9HKib+1y6vwx?RQtz&JiNT5b4-&)xDB=k3Jya=k@9))J_CeLQ02p -zY~{%IlA&>rjnXxO;^XSs)iZEeIElNHu4Fb-9HnpeO)B8r+6!5Mk-jZkV=w_70i{Q3 -zQ``$?2pX;1brS0rYDc&381gv*K4rykx-nsYF-Q|A-^oTRD9V!l5|uRkul4E`J$Av0 -zmU-Eb@JTuPDZtGE3&`{sa$8$<&$+fD)R_AQCq^YQ9HjMtcm3tL0{g=w^^-k$K(8<# -zB0v+ZjVkr$QpjemSrTkct5pxF;QBK;=SM8?9b$4x==t9ajW4|x`9qpLvmsFlqwSGy -zC^h@ZHZ5ngvUU{oZhtDZ16UNDubx)9)gy?+#`NrBr<>k!kS~7$gF<7tLLfPVe;@YU -zF!Xh5nv%bR6?0`-pz+-P+5+p#_0{vgv}JO7^EXc-p!G&TR@kV$^*X8y&l$}&;D(7_ -zaL_dM{TwDBPtcIX)Kh<4l6&iSBhA|FRjTq@;~Kmoh2T31C1{Vm>E)}s4~$v)C~pRk -z^qugrgY@I7lN(IzIfB&`YD0y#7gJVmK61TUo8?OUMrLT!Z1nX51Gs0;5Pfpl);1VEfvWvO6ui{b)DQ3qBg+GMp;q&td -z?vB8IHYJLOwR#pfmPILUYt_A?z!I@_v1^h&sEc2M!fM*K+oYL0K(B=PY4?N`o8_)$ -zIGyLI4jAfmg-~1*5V*N-%?9gqSyV}>7yiFcJVWTQP~sk*BWv;*^j*<!|_i8WgUO5zY?dJ0X`IrATryi -zU*O7sB5qKEhy_@F8tJr4W6~+7Icq+=OdV&$F6n^AvJ;ZJO5%y9i`F%p$otWnCM~DL -zhm({NLHalA!{M~@%j5&YQx2FAaq|R6Xk_R#@E>iI4!y%ncvGdChWWa>TKBC<48ku(o@kz$^ -z$ya68S>{hGVt+|K6J0xT8_hC5vO8ZsU9RJj;EI+wH$%+TE3(2NUsdv?^4CsGSkr?V -zC=aix9y!g!u$HLh<>euOssc=hw;4$pj1V8XEv?v^U;laH!*3ZMG2&A*5kVf`(-iek -z8t0F4>HJp#? -zIfrvZu#RWBr;bD7uZR3#;o-d8c4C23m30pw6<@XXh(PliLelLCyAB+HI9Uiknt{Cx -zic(ozAAb9RB|hE@8sVq)eWA?AZ*Q%F<9`o;oM8^6y`APj8Xg -z)D;O5xHd_io1SIfau(%|;kcc;<@J1-Y=u6tXaO#5e-zyQZ;+qUCx=IRXES`C#A*;W -z9+jcNHN==dE;HD2s9%OcZhB1hK(iJ&;&}19bUV^vOPEul|2n1xYs-K{X5f+`a%FY) -z*H3-106~5`9DIhotk7k`DaAwbxQ|08SLqBVS7ux6BlqMciJk9$|4H$V$L*X|S5Q%8 -zb4{@6`n-eF@DHHlG7z5SG`0oxw255aC3v+EdrHBF$w^WP;JEt>aJfQ>aEvf97M$S8 -zk2tEwZZ@L`;~D8quH5i}*HC+C!_RH`B2}p4x;>3nz+%SMVU6A45Hcuew^k0bf_0H- -zQm{3PVkU41&*IYbW_m@c>+blyu;vP014Bz-gyl*Od3j#2@E3sUwdz2Tk3bKFGSVm{ -z{V!dXl1+suFrDMC-4isMxa4q8p1AE-_!!Io)mL2+NXiD>?mwB$H^?gQX&hH$dzR6% -z9{rz;?_ZAHzE!g~zDP13U?#8C*RUTwqBU<;u$Hn=!c2cYvkzq8>5T25X(!Zpv(JWz>mTX*sepM?)ltmaWfH?2Gv7tfGnJN3>-Yp1ncV+u^5y+Yb -zBT!;l+^r4VnI;45D<`rTPXZWDFh}61ULSmMrzY6QGG$p=xrGxr2|OH*@C@s_`Ko+L -z@^(lbC*8V}N5ec$L}1S^w+!X!8;sh;JmxwL*sKAA7RNKr2!Wv)UIQa2*M?~tkLy+~ -zn_+ExpD_cr9Af9o;2BCu(vY(=ds9wQoQCBJC@B91Imj2s)8OTANA8PGx~~Z*$D|#S -zW={IMLbp&_X~oY^kIh=`z}w+qOu9{IZQ -zyoInAM0TBZow7-Rhp3I$eSJLMj1ijopJlIC$JU;ZBn96-fm9vCvl;i+0<~FVg -zKb6nD8_VVJm72(E6QaY|9SRv&&vO-MJvHQsF>BOB71SS0&K_kH}mSJ@gE}bppU9*mEX9(rVaKvKg|Gj`v$qQ -zE}MF7`09ZD9V1hN3;?^{Twy}%Zv#f1l2XGcmlgFk>(SczB&0hW5ns6!f}lAgxCqS{ -zAjXWCJ67PIEXb|(jcc8Oy-}Yoh#5Sz*ZzI(dW^x@yPWLeZ(YRx$%QENZizV`SkTN2 -zGA*RzxEmQw@G>cp>q0il1Ys_b -zROPkT>-nS0{QVr5W^aVNzxZ*Qr_yu$@d;q3rsde`&$$8947xR>j0u1qk-!1mLLgEW -z&zy9M6kk>s`PL#}B7pVRC?|Qr-{;4sd)krArz-JXu+-_!FzOUGZh&}DT8E{;7B##} -z{g-FM;n&PBwc*l7niMt%hu9Pm?ruA>Vb6lbu=jqkwjxOSe -z%eKGHhdR|lVRHAFCzIa}NOic4*PeG@q51bH*fUQ8ldJFS%D1jbB&wk9bvVLGv}8CJ -z_ir|S>HKucpM;_6)sq}&f1W@@HnX_aWaQoq4!qw=ol*Afior39R0#q(7W7)4`+MooS6%oq``8O>2vFg -z+A`YT57(1fu=!Zzui>LHD8xB^FiITULJ=(d(F2x1lC6e6%lgmYn)fOszD$W2%;#u9 -zQlO4@C`1X|dw$QT;s6sCLbYk>%%qBPkIclX|JIMI9?2bDVXi^;ND{y7g3vF1jOET1 -zmn2*Ea`W~Twi44V(^dpbuaM*4q0*B@FtvRU%qrHfwsJTc!!o#%AzbZ9x<>||D7=P? -z>jUw?1+!rr*-1jL7;tDC*3cOJ!xW$H6j2 -z>8esJ$D>C)D3o6MdZx#JUBli%%}FH(sB{o(6)}(+rwTiQ@$R$vd40ri+!PxQB676- -zS3f>Gw)(V*n0&j^Z(Iky6O0hRCdHVBEwDH$nF7Jg0f`;ZnBbr~hBr_Kb`K3-C(CV( -zKJ9KN^V<^x5$Q6@oZ`C#KE|_MsXYdKzbJ-jdUo3Q(vBI~i{IM;~eN -zqm65^`GF&&gnA#&)Th<1r|B$Tkn6yZA?mkI{lYL|IxXC|V75GxrsGNRAC`{E-$;Oq -z?Ko=EHuOA*#4Px^!uqVychLv_6|)^c2GrrT!hEoxOcxAZ2$m@#{uQ+_heD8^zw+vq -z%4_2H*`lGWN;;T^3hAwQPC(8cV9gXdwy#U5+`gRirAp8D7t~7Gl9=OZbu0I~$v$!g -zqC$cZ4BEBB+Ya8k?|_Is`<10YS5m0rH{*JA!qV47-j>9ntw=I1z=MF8dxqK1@&ZRE -zA-qi*<>j_cXa{IYGSWnIJ0g-oG5%0Lp|-OE<^==p*qpXmE6|DX#l5XYY)pG}a(j14 -ztJT|?&bcIWS5%M-0H)ndlJI5Y+(+tsO?O9};otPbP!j*z{4r}p7|o(e4)-iSTa_mh -zgF1ndL;O##k^jXy%WWNZGbkWhQz_m!_gNobxdXkWNF+NaW;Uj$l#Bac!q50-Ba|4H*J39+WPoFurF@=@VX -z6J$}7NfS0vc##D=H&bjCBE8q3)pl&PT(n%g36MJ^lMM>30RLsRky?~lvnQORb(#v8 -zEiC(aOM9-;LzF16KJ#5OMZ2QAkH38yKF?Ieda={uU?ZB54|U?=6_yW5RLf_A*zlL` -zA@HZ)I~?3?k|9B*VV`SO4-}Y-Yd#$EoihAr7Ob$APW%oX`O0)T -zLN2D3_h{eQKIF9C$KB5~z?d**L+6XwWNbiD12p2Bi`?f^C{-f1z-{KabS`G=dhkI8 -z%p`qQgdWO~``XT5L|bUeZOIfZrnmZNTP5!90?tT>%^&o0nkyBw$hdj>{y(N;(TKnz -zDQWRE6@juMJ0Bt#@BYX7Y#gvC0mr*mAf^PTHZ!nH%5Uh7qLoA#L^OZZcZZF7Dob6W -z5r1ub_>T0v(2TUX0k`z6`4Q(v^<8st&es-ozKH$DdT32aF7jv_92d(5vaJe|Ha4ZK -z4aj<1;T(kH637n)F!)YM<@dDq8PQ)+L$TM(uE68FCv(P9$7I`9Tc<<$`fax83e_zz -z%XOp|)3NrkT~&l@c{Hg~PPKWWy`YaoI<5mZBRwD`lZVLkA8OPgum%7rJ^FH_AngVF -z2*O3~V-Xb)N|k-X`tL?WX80W8mrn{P_h>F#3}!-N_)HX7GB+<%BfnK1d1Vatgx%tR -zvWeK63$fTA2LStx+Qj6%q5`l#_ro2yb&;KG=w -zFRoj}S3aQ;h;RTbG}hbc5_BI(L4MtYd(dGWBvo-AvIYZF>fbHouW_ByezWaIl3V(eo{KYkdI${wyS+zoB{|7U9{Kl#G8`JI{&84QrL%9*;mv4K$YP -z@kbw%K0fxG)I!5Ph%s|B`;LQ*IBEzXVSCuU5n}Gl=04t28CF_~W7Y^NW>x!~&{`IN -zHK-|!eHKXX<%`0YwyjIhHJLA8d`83vg?NF_ztLJjleCGapR$v9T5Fd02A{uTz4M|v -zD*^T-;Xw{o-;17jJ>Jgz(Ga&NWu9jJ)CY(?DeZO7*lVQoScIeMbKQJ&@^LfOw|l^k -z0?u00t^lU0hCehX6~M(_n0n(MzIo7qK=b&!;Fr(KHb=>>OPB&jwH7Ko4laP<0V`C! -zc6Yt}Q8wrwutlqWJyGF_bH{~8e>u<(oVRtuZiR!%(iWCHVSybh>c4+0Rbi->x2hOgk -zgm6!QFb1IRXP94YO^;Tuq?T=_p@kO05hyRdLgqQNXp`LI_`FV*7f(zc4kDk!Od|kp -zOEA>$Q1Zjcy7~!8!5ICEY1nXnc@a|dbUNGrAv922JGVJ!=(4F)dL;<4P|;95aQX@a -z#KDGsW_FMm&M}`tPtjM9`QQdE7iKTCMPmG!X@*{}Up0z<$&|3?+sNL>2W8iLrdrGN -zK-fB|0L^$XKaFVjt1{u^iSLIUIat(4DmT5-Nm!{v{w)CW5QblB&H!aDdF*V}_f{ip -zyNL&G@dELS5fZXZAPJf?=}g-zM>k;FyAX0=eIZ2qf(MW|yWghs^X7oh0B0ow -zuO#yQ3d<*!g5+)V-{Zhi0z08Lq%#Tr1%~jiyjzIwfP8=Kk*)>kYT!5v_A*j;rpWoq -zp+T~RKL05?2>y}lOZ|QNX|QmHZ|;5fpC}iVE|l3&jUs6Z93T3g@YG`ICVWF-Cv^H7 -zwBV;xgmGHySugfs3{P9o$gqzu{#W(2+-|tgVthLwx7y*AE8O)Yf!VDz*3NRztC@aUj}0IkYb{;0EA( -z8r;+GZL#Seb6-#^(?3|fnBkD;PVL6heK;|m>lnNM_+>!m#|nRsbVfPy%l}|&`NYqO -z*vA$82z$%0VUZ9K_1etB7mo}`)&_R&ifm8pBeIdfO$dF0$6HhJCIXk-18zM**oG9t -zztB#OKINW%sGC~d9&6_?OTG3P^c`j*Mh1;dUcx@sNwPtc`K&j1q9~bVGUj`iZ6wkG -z_XRYJVA=2L)7!b=w0ldtL-AyoGVFrSY5a2-9$cDvhVx75^1IEEH*kcz;A6q7qVjH^1X|#3El=Gx0=O -zJ;!odU7#NSDS+jVh-uMT9@}%>2kZW9Cq#H7g6;;btvd)$VSXfRS!jIgpBJ~oI?{Y9 -zn`I6ohbZ3D(CzMGCPJ6A$|Y%i4Y$5?QbJf~eJPU0$G-Iw$SgO&q{&y)`!ga9FN@M%@> -zTbTIN&k!_Og=EAk46HMJj_7UR!zTuo``L7uVCxVC#Vfxk<4(Z-paP>NYuqI180E2 -zMEOSL_>K22*X01o!msSlSq#iZMI~f^l3Xc;-zJwB*~E5aAU!tZYi*zFAQv{|HQ|q| -zy=RGAPR$aYcFaZQU>G{1 -zT$Q!XOg7<5vS`2DBI$5_5qGMEa`h4ElN&Bp-tX^pdQ6Ppo!lWoCHzwAHFO$yKbVHL -z+9WnlJEAY3K8Oh97ZaG{o1*p$nR2>u5cxEwbCyHOy&5|WCvO&^qp0WYUoPE2urn|~J>qWw -z6#(RkF>##+y(wIS1QC{TBok4ORSKBH*AJgofr3|NgRHoSO3w{NC;_C4kI6{#W~rBB -zMZ!Bg6R3X==u+-HR(;7L@4{yXNXw_~j|We9k=y&6d;43r%ozsn$DP$WC{_))+VabW -zYG%TH?=Q|?`8fhY51=}^@p-a8cdj$ZBeSq1MW>g9QTN5k(aW6kyu#=0?4JMl6qiM#J$aD0Z?w#Q9 -zHIMVT5K!CaEi2-A_{?g^IuT~XYc?6@XQsE3XE1wC#Ko3Adu{&Y`yr~wP7dfMWrYX1 -zLjjN9`{$F5B{oIIDD`2JGVb*1;|`RM?1ZPFbyBAVIQ5kf2<~XS+S>dey`YUA<=qpn -zNvz0v^J1r@+x?{gd!!9GdV{AJY5DfupbH$hBdBy)(bNex$gzjSF*R=^RelGnOq8m~ -zmB#td!IkZo)|n@aSnfl8dVpfSn>+WPw+R<%M$Ud`b3vAwMTm;|=YI(lp20zUz~5LtV{2>>Yd);w;o~SvBfUlTmi-D02H_L$LN@GpQ0eH -z&!pr-Huy2o@gvM?tkE(hc@jWo#zZ5&h= -zzs~f!Bu!zbMtXS7(}Xoafb)!=o7c3b$DHHTUwx>xO>f~TY#Aw{Q2pP+y1=)~^u_m? -z7(S5@Tc)S`6LBQ%=QA&0!!U&SN^rR`yn@u?{UxV2UPl(pOl%gD36t~}5q9yxZ-~zp -zK$D489=L=_ixofmHFI}K`xp3;xL^k}J|yy^cDiPd`rJtH*PWg=^SCUiFWnAr-<@YP -zpU)vsSv-eQud`Is(y2|u -zxn3pa3=tZy*k8fP;KM9vl;z{#?l@Bsa#Jvl@&kW38t|ZL!D^JxV6epciuep$ii{8!Oy~bqTqN -zkm+5e?NsogaKhm*#a?R|7c0z&wTOxI!2Ppf@Tj`SuvRDV=KcoAiv~;ykyFu~Y$HyI -z(u!b|g_&CXu_#Kko607qUE=_eOC&p880ADQNY&&t_WX5X=Jjh_e5-7cEDs@+xZ2RXQ -z-=}Gcg$FOL<~b#UsJb(w*X$z%9i(RA%X`b;OH!d^7y=?GCx1G#dn@%go2%r}ikZ>L2jzq(6ddBI8P7x?VMc}eu -zF^5ZxJjP61b$3anQ%6iBm1bT$s#KVWBXCpwPw -zRxU_pjN;F|y!LPX-H1q|K+)FdF<<4&HSKa17y=CdH;I!x^Wbec7F_FHdO6;k)j-(^}zST_A#MWfLBFB?i>ihe_fEhZDyf;8TZomzV^x}Q{YP> -zjC1XL73_OgdA_jEk*Fnzs|Au`2vc8|?5lxud5o|pHu;uA -zIM_pGZoN*|KVD2GbS1**#l(MK_guQ`GG!DOD~Jn=9Yv5D4*w;eQU_b{dPR%gRZZFr -z$#)*uoE6sh$2Dc@Zn!NCz6OvVkOrEwHQSBttCDla{JX3CBUk1v!6Ps#y|=x1;}q`L -z;rLh%QjJ#Ofx@!9LF4vUIFUuc4>m5?cyES{m=lfuX%(uXS(rE#)V)Qs8gDeTIF6}4 -zyHxXbUkT9TzO%D70mYRMt0^{(1*9^mhFwAua335pM(i!=?_wn9<0kXEV`z^o`S-RK -z&4uNYO8PPLOehPeQ+QY-UkBA@%ewFv{aJHcnH-z+#bKCf!5=3ba72n|d?({M3vzq= -zCz;2q#Gb#}qw%_bNVvKMz|r&E1+eaDSk>O%;rdOJ1{mFklAuE^`O=ET^-ICNY0>6$ -zs%t6+z3%lMMZHjxOJTH|ItIeJO2bFc`BwRnneB=num=-(3>`Gu7m~ -zS9nu}=ktJJZtXzsb+tD@=YfmqRW6rY|05F!&RR$M?ZuWFXv_Vog~Dt+;9xN=JNezvix_f)V1OJ=HRfaG}wZ9FsusYNyaJCidbq*`kiBxGgvOU_;J)*bZ(l%Rx -z=5zz6k2ycSs5*Qoq3;BnK^H$^kR-B}V%(Hh-Xt^>%!`}i$AMY}yuf^EjO)*4)zkqoY=zH -zv#kVY0I={lV9Mx5Z7MF)d0bm&^;Njyg^hPqg7*;^<4F}5UM*#nmC60+5q2D2g6wfV -z?}c8i*VuF7P}vD6i;qei>y@0MJX(4}C|CmCw2>`h=>LY9OXS%KY$cvcr#%U9OyLn( -zG9&-o_OV}Ea6z3!4AvSZly?|AB~GKlpbeSp;b_N8*n0c -z_reGsFgBe3dfv>M^1zsCB_)^PY#+94CRuEQEvs!d6{&y$28vWmRC?>X$^V{dj!bA+ -z2V2mTtnGd$K-B>WJ%qUT*=VhiHnF8|X7BK2e!Z>$N>e -z@SJ3lA7kn`At6+DcE`5h^%IT#aV*G(x^q5@^*>mJ{7aS8ppQq684kEDcEaDG;mwH6 -zEjG)sc$vkkivPkbJdwoYKP2+0x|(44-9|s0i3mQ$3BTZf$FV(<)0z1^S++*m8zuEP -z!IbG6wODW3;@WFL*q&DgTEsJX%f(g;$Dv=k>?Y^BXp}ZZI>d!~-NQK5710}7ox*YH -z1d9lnOliiituJ^ppDmFE)N(*(~(^#`+b6vZS)6s?V}1l+|8J(P6NqBS$dlxD9e(^2-Nod}ueRP|gOk6at0K-$2%b88W^p<@76eQQ -zxE$|O)vLd8r*0k`k3=cG8=t0HQC@m28sCC&;=u#hCV)k@1Jq`TczwK+tWQ5b6&N2L -zy3ji)k@xl~BH*eEk0DjsLi?7P-@j^Y$*WKZziBd>6vkS0I=*~N`ZdAvpz_4$yQ(8r -zy!xYfybHo~?7q>KT}&viKz*FS;|5akfgcxS%OczY%; -zq18ZAe&87ZRwbrxG9}m*D)jukhQzsP^i%AwGWDO=m;VoHMPUbjDivA%_`4M%1xAB> -z#3-U19GGqHfT>=);E|t7--(0V!9`(AJtX}KoZ6$S=9ab9B*1KeP!kIrnFAHZ;XeC~ -z&WdNaGOpnF(Yli9S(fRqVB|Isy&-#Jli;%3spGJ4GwO{a+ai(db0I$+E4fAsg>`i@ -zw_U)C!6d%GO?!I7`08LN-?|>BG+!Xn3ruYex@J0(n*}#P=K}zt@G=)gB>NU63J1TE -zjRKjbO{HdPF&)sNC)DQ$ki(1ZteH!Ip8(5uPd6aD0;ljJ!U})AX*WBw( -z2=<*6H5zP -zI9B{g<|Y$YD@dPzQ+X3@SnQIC^85&HMYH%R_k#>Q?n{3L^N$F>NGg@c)09^`ew-c& -z#L=cC0xLYLloLqMLkYMF_3g3Xx&4SHuN|Rsj1QM!^p&)OH)o{tNPrrs#~>}*!IY`> -z>21^K_p-YT12n2Jtc+i`jPtLH*{n}VkpvVuh&K|0r3!fD -zAx~^GZ$iQ -zSiC#S@>KeVe$MrkP^a_n+0BoQVQPD3I3O3;>zY+`!io)rW?URP -zKPk|Cp2h?s*(`q=g|)EaetPUe`){hdI!Rq`Cz|#wytLU39lr}wzljD;2M{<`HaxMp -z&V<0-gl%8${yb)wea7iK19&w1$A3~s_Xa$9FNB0x^5BKBMiGLLWV^wyDut{uaxLPG -ztb)Zc_npM$3^tj7QcumwJhoHZhf%pHVWd2DS0Rp|uc2&tJ_&hjjp=xvER@Zyfc^14 -zmEg@_2DM=JGHc@dAk90!Sw5@ExA#`CQvfJ@L#AR15*C95?F$jC*XL{Yrq9!3<0|=J -z)rW!PG)b9!wLqlVpG`Ra;g0G(GCrTa_|4eJD0#jE5^=T5M`QaJl)ikDIUYN7%n1c- -zi!S(M6G`#moaf~8it70nEMs^xU$$oF0r%pu2c9CpqANh-oqSuO0C8z8+2Nc$2L4~8jX8rCjOrEns4IOr5kqt)(vvTE -z7$*;@bEmBU94;>Mp3*-np)tFX+bpuOM{hVEv3t=5c)aJKp%(R>$OG -zN|YZx{O>_ac1wHS@+)G@K6v!vR?|!CDUy0gKiQN3&ab4=*>u-LeUsstMRqe37}X?c{QrfbsSz@q}G=31^`^PpMpe)|JW?c$Ax#OY8g -zPo8%L(tX`XGk*K;#E)6vL+PZSc%$2a_-C&^t!f=$?qoP5JKh|Sk})?RqwxOK{xZxo -z%yR<(-QNdpd$T{e%PgX3Qqlatyroqc1!)fZPMT{`4btd&zJ>fyKHfdVS>%&&6dh~W -zrDNVAEA7(ba0MSSyhp|t$&f)j`YvQcR+A0gq3yJvk^H>AlgmHfd>L1LsaJzYcK-wE -zJzyS-gOhE%orSzFz>5;ZSg#Wch+OvYNYR0pw8vj7oCOckL)Nu(kT71H88SK*taReM -z46MY6=fK($l28Pkj8f+ -zc=Sf)n6;McWQ$#F%Xvv}W?ic#t@SP79o5RE6cK$^catgKPpx#ik84QiDfKTNVSCwd -zARUoqfh5Nn^9Cl<%mRKh81g?vz5u`$;)zwQE2&EbF -zpbyIrhCkUs2xHVbUkItKm!ZsbEYSAd16zsX>PKeJ_+pdb-jf^dO8ZM`Ji(0AkXGex -z)O;h$)(T1s&hc84bwukn63UL2C&cgbA1dFaRJ?-85?xGz*An%4?fY9TxgMo|HdJE2 -z{X9hh0Sq_b^jlfvfF->m(Yhk#2suaPDZ+-vouwxB4ftj2jhK21ufims=-myl0s~#W -zw#OOL@YLZDCv8O*^;uY66-Kh?UfrowC$)`4B1=s8;SjzDD(s_;d1~8k%eT`0^ThUh -zjZqPOrbg9R2{(^6XFX(0sxTf?*imDP4EVc1KYNTAE%x3Zxcf>%AI_K2|gvkvO`$c*r*$I0{7O+a2!{K@lb -zABsNUroacbz)@(Pk=!gZNjquVa^qlQwBd~UQwNR8N@^^Wo(JTgCff(GzoME)_U&P5 -zgO1!E-Cx^zpw#cGUvYU4?@W-ko^bL>X&c1_+Kz -zE-;)EEb}5GKKIQ}T57<&t0Lr8+br*28S_*0D%|wChf(3r -zytu}=#fi{nJ6@eakODo5DPNH|FDHz%8QDM^6ayl<8Bp{^M&J}o9n^c#0_DC|ADLNx -zgiR>(?jYoa^EwoTWP^hnS1s&cLfwC-Dz3IN?@Rt#RHE3sZM6flBiz!DN{Se0XIM9+ -zI@9d>A3i{hY2PJ3A&t+?wYza62pg=)?L`C;EE3P?D$_9Lwp0>Bc9pYhs+@2c&l)yu -zU}wTUqnmW9EswhYa!ThiQ?NtnJkgut^h6IXXE6A&Wgluot@<4)%rfWS=2Gt$6~BJY -z!!A>Rzf$nwG|=%Q%z1=+##7Zlc5XZ5C33X-GFhFvOV8N;8vm`< -z=Q3yWKMi-E@idd&8f8k&8FYz -z_UtO`pRAW4g%piG)Kdm7U4tCg*3GgSk9I`WKXDluTM6qw?yS(vZXhGJMh2M|Rjg+1 -zSbrs0O&t*j6?sUBx~@1;MfBFl2!2#B -zYaF#vhRuJ$vGG>sV0@-6orGCF!aIy}pKziDJe9N3%pL={&XM3%|B-V-m}1AJ^owQp -zO0p2*x3;nn?yTBW&JQ`{AkoR0#s3@ecx3Sb+bbUu+3sCQ -zxE}~)3v6HEPDZ_+0J$EXuvxz6(%00naolSSO^#AyE~-(E%N>GfWDi7HT;xE)qdYO@ -znrB@4$pNR`bNfdDT#vPa^zN9Z6s6FQVp1VX(W|u~ImTe%LExuT-yflcylV?ZfItIL?#WBCa0W_yVs$7#@*gn+^<)GFG#)}i$ -zV;IWD{;=vC5Rd*T*^whj;pTgUscm8^kr0hMOx%+J6F`2s&+AM>;8VM04~RbTY&z+< -zfl_iM5A=zWcOO^VOcc6nmNv@dK9J`gZ1m%eKp|4Vl|(%86X9?3_C1K))mdRCAL6Nk -z19{~0-Fd96ItTDSQzDJl7jj!^-#hqCI0q#PGZ0p2QeCOk^h+d+l@QA5NR1Pd(m-kz -z@C!R4TFaLIqv-Hiwm(jcL9BLY&=jndui(jiNC -zeRp^H{<6%>y)!q?Jx?6b3v`^286KV(^9A;_*g2k#SMFb}6s4*;U(hk+R8%P=KE#sB -zGr>31tfLnmgy@yCZ|39%hzrLDa#c2xsn3((eR1YZv_^4rg68{Rb=N-UeK|9Xm6A`u -znk-I;1Wt-y1!?7@IAXm14x41>+;3Z5%D3jXTQw~UC(6ut%U=(((grdatLl|eys>*k -zu^bHyHcB}S6OFZHR?_gWmM2>2Z$s8oEt5eJ>lAW|S*Lo&v`;Ef;ld}5UzolWTGX5I -zTZtg>Q@CCD+L2>%rx*o#VSVj18-0E=cR> -zB)LN@Z?$)=8kVMQS;TSZang?upX=Hs4pVKfYX6Y8pC+rzWtsHLPoK+Q5W-s|-|pX= -zh&i0{6XiR{pJa{PkAnOhSGlD2L3<8e%WtEQP=)u(Y4l^j0tcX4x#_Q`GVYTko-2Y( -zL!Mk41{+b^_dK5#U1P#1`6nsz=zVr0$s?%7WJ^*5NBI{TflWejX&>%*5#4&ag*BL?*b0Cl^*eamL9N`av?L_PT?kc=>6g2&=N3sPP`z-IrYN=WO&2^IWfp`2> -zh*ouurF+uNIkD95M6~qVQYMP1c?8GyvBPhppOV>pR?R>Gxp(v?rw_c~CytV)BQ&<# -z;wz$rZj}SXF}yzn4u3mjWzDQ*Yl}REx8 -zPi-rGH+Na`-{E==OWjeOOuK%qqhVP#;+)48XN{bD6V-^!7Dl2-v(~tv9?yiRkoq5& -zj0ah>J_B48Gi9O>3-s5?f{$(*Gb-T6|21h+bK8wMkuP|M>UrY%e>6Aul15LjLwui( -zm0a=|RyQfgAwYAyKLOi#{p)4=ySJJi-op6pr?c*j7ssBjvy5)^z{X3^7o;YBFy49l -zYlCKZ6s`-GF7L$<;XvjXZ8B|6>yWvO#XchOb9?dnXbN_01qljc<;}_fS&MF8gBHC+ -z9U5 -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 -zs%E2i&uNmgV(YCvT#lc@4Cd2k5{uCIqntvmsv -z0^ZQ8ijJz-T{M;&6@|tHA4EaLJ*Dt&KwXM$2SDS+0rTG(PoXR5X`hX -z)X`sR9Mn&8nPV9iB3`v1twmFKAU-c_-Q+xV&cOd!aQ?=4^`(xRID -z!SiQ%92w`z@@ki`4~{@OXq|D##4aWeH8hYS=nEfK_RJjAv%Kdak=eb{ehpb)np212 -zy7P{HVkv=BhJJx7Wdc>)_Flr^)V5N!8y0j%)2B7RFvZ~0x8ZoZo|LGEnRNw|Daa4L -zgVkg+-(OFX0)@waD`U$24oK^mxNK04s=k2}x?@a_FeevH)Nc9iwB+)wQw=#fVcKHM -zMNwsQw_$RNjh^RO#9fH{&$-6$4?m)QVfj8oNp9E5q|h)P+YfrhE&ZK_>Cx0EOiSN} -z6cg{7X62f&ukpk6k+gD>m1G%#*eFimA;-`^V>^-EX$i^EMa{GPwrq^LnQsX#qqn!HsM1zD?P3`*~H4DOCnP)}VuSB21kgN%fh?aRXvg6J_qZ#4lQmCGA` -z;Ef%O%)xY&3_+Pop%*j*;=XuSz~RgFC#b) -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 -z;-HL%1jZ -zlCHCd`0st-|1L+DE01}^l3HJSnGAk}EmaAawsIH`nA`aphggOpUmhR1_+7)T>X!_V -z-?eli*NcVp!kGvkwzG-u&BNe;`BPO%3RE!rBVBHs5l9`?<{Hd6Kb#7HBPgz;9$ -z!X3iSAubzu+cQ)qfTIBdxmxA-WUV_fVRJl2f`pCq?LjHrW?>=7-~R0}Ace428@m~o -z)!MgKJ?NL7ggY|GR9K4=c{AWyuW6vLyjjKRaYWM`%h?mlu}Md$@ncPX2)$T$Tp+yZ -zs;5X4KH0lmN`zn8F&pz)RimccXixSmu_u)oL^RjPK<^;Ae4kOibvWtZbuHgMPeujf -zgR3uBWxkLZaTwDB;7GT-RNJ})hm5q -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 -zlStKT#;_)G?MHRg!~1? -z_wKw;4YNEdm5=!vH!c!QmyZk>r(u2ZTk$WTGRcxN67Hbr&MQTMLA!#q-|O|A*Tm>f -zKJQ(}fiVgWGA1Sd1z3w3kc!cXT;Qsg+$C4XVc7sRHjd&ZYJ$U~bea2cQY$Qha}QR8 -zP!0xSMkkK;f2ghg)K;H?y%&D;Ky68H$mI5-(!(E+!{Sq{sDQz)DN_Tl!Z#L_iiVWv -z#yRF3f(l$K{4=X(EafJPsh~c=MKDhgoG(W{Jhvu13`GY#wu^j_yV%lWy=@A?}x -zZAiMmynxM%T;h&M?+Wk*VjUb?l@BfWlY2CW6lEfLBq9IwtN=)`QDt79J&-hxp|Ci| -zzRB4G9R6tw6M#%+8bA#e+T3^164^KnEbNQ8+#|)#Utn8*?`LPU`%j%K#eL5tenHfy -zIvddRxA;-#s1@iRkQpebhvh#m?@;z(SEU6NnlI+fW-2qDrn9=-$mcS0dvCrMVmF(p -zTsXI|qpV##Q}&$!~G-Gdvo8;n -z@~SmwEO)moYCSQi1b*v|Z}e?>PHs+zz_bDn4tmDRV;1x_{Z -zSEe>7oiynj`WY60fq7zVxX-^k9?3}Rx!&)cj_n0DvSH(r{^#1-c<9U7pl+C{=+~HT -z_TwXaZn&Ew+>9^lm)o`SRTg)nbOGx&kELGNVx65W2vh-Y_fg+-G!&+Jhgx3ziNK^X -zYf%u1FZ-WOly*Wnm5LpL7&k0?#TPH&ZI)4ZieZV)8)FLH8~o%Qz&OD2FkC4t%<};$ -zr0O6|M(IIy7^Suf -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 -zD75fIS -zj*{1j(&RrQvpD$wus~wOg{zPIkmwQ$We#hU1+$TY81>PJIv%jllb4}f%_13peBjW^ -zJ&33+jDq^xOc4j)CzG~T_xnxA*zI -z(mHDL8K*BWh1pQfpK=GJwWtOz3k?Wnzp=uC!+!J+CHh#H3dd^^GHd+dkUvxx)Owm%m;0K(t3c}(nIpp^~ZE3yN;W+ut>BHN4SB7dC -zVa>+pCLp&Df~t5bA5w>ekZdh+t&7I;Y=4h&(Ytzrt>ugu6l~NH&YRlamDxt<$1A$T -z8he&kOg?}N0UP_!17~x>EqkpFuTO3H+nv==EKd{4exKzz8~Dr#%V5sgke2O1`LQtBQ9A321f%FZtT9?&LGJ?qh}W3X^71 -z`5)tHTV6WtZ*ym#FaA=%c=92({|Vj$~vvJd@oCy#ILKnov~-b7cSS7crF5wbs2>>$tusDR -zF&n(%>DL|Fg=G{$z91Cxd??Ar=jqx0i9<^|ud@qMTW|)ytMd(P2FwW3-cw{EW-WXp -zhnb?R)Lwcjv~DyXlHqx -z=Z!`A)q-ORm`sNEYvXWM(!6Y~i-zZj=3J8feBBa#Oa-c`y5`}RbWqatr+LX&1$<-> -z)=JUsyGr?(6CQOzz<}L;w+&0ZzuMR -z;S)83F86r%z}bsvg9Z5D8S5p|_C5;8(pc{#pjL4hYkD=!%>}Cy4Iu8xXw|dOz4Lgt -z+V|!P9~1d6SpU_)GgKLv|5c0oZ_x#&G-1|g=;x(gJ|qyHu+Q#xBrCy|z!|Le1tBt+ -z-%v+=?@+-ttPolZZU(o|jbv6l+ -z{xqsjB$e2~4(odU=8x-$1zfQJa#`o%XcJ=HY1bH%%Hi9RUJD5XuKGNPKaB=FWIv7Y+`ItKLqy0Jw}${}K@mn+V(%Q*HNniTp!EFMbk*?q`hZWxLV -z*I9D?M-6lEgblK_0DBBDUp$hn1?*oC*)%A^T<_SkRp}2h8oe>qDjqU -zxig#iYr_8@-D>8h@!ap#Q@W-M&;?OB%^%XlK16tWzkC@Opt-WaDDj$Y)`{xo$OZck -zLIcd_mSoi1bgmskZapgKk -zb($50$=%GIvhu=Sio8M#Fbc~HW}3saf!NGBA%sG+{i6%g*5{La;2!P8A~Bs=`DewR -z4E|QG{J<3*%W0l|Lwa$Y{!jIMXV9=(iKUh>LeJlcp}2@;M=A@gtIp>Ex*Y=3^mE|{ -zm&b~vj^+#m+{9zFX7h4dH`OaX7MaL7wzL4D=Fn1kZf~wBTz1or=}ph^@tzxNQ5)BP -zDGb&7D!b}Tc5WnF%{m2VUIWgSkj4r2^^P56+6wz#ou39$I~x`v4p>h7uY4WKpG7?0 -z+x->rnVD)ODBRbe6Ql2TL4Yo@WhSNK9J9TiROT -z_qVRuHcMcM15*McP*B$HG%e)&{9)ibO4Ea$&gs|B@jpOY{MYUtdH8KBnz{k^#Glvs -ze`WAYiiXZit?;dvZ@7U)n+Lte#iF`IE}Af>oG0t_NR&0ibw0YXA7*G+6y*T -zkUnx&5zVkfrLOvfl9RQdtr(*uGh*wOr4B-m;pr@3wG4nVAf<}AESPM1wc&vG$CtE( -zjh(4122N40%+3GY5Os+7o*yDYB!7Cb@#joZrpx_;fq^*zuAU*f#po(boXd8VAkrt! -zD!}X>Ei$H7a^2!r04YmCWZCp?TE9-V$o-B*yoS%!g$uYEP@6yGHhu<;4%w|HnOyLe7>VQ58B9){_!t_e3N*2HLtljSUhldzPk -zupo8@ZCn=&&pw*#(LGwzeevX&V3R3{fc7qKk9+95(hqjr?fN@N-3HWzcyo%)l7AFB -zyB+SGll86Vg5WyTgWTkM9;Tjpyldf_wHe9vO``YK+l_= -z$*y&HhyNOQ>~v7h{x#5vwM*2d$W-9m+vHj?Ao8!Q;>AVIjiO(tVxS2*bkcRGf!p>gA?))s~yESh)5NSWrkN5#x#}Z -zrb>IKchDd^Em&a~dEn)HvJr{h*dgX0ru+%xd3Vh|5{w%ZD=qFWtNawdR*2ECys(D;J~x|2s@PO;AvH@I{mv= -zLRf}je^S;z74y})vTU!I_r=8l&iv_D%B-|f&R9b<>#`vX{$Rg%uSxTCnZ!M(__%}9 -zN-~_H&fxNS5+$~wt3^=$@pO!s?!H5@e`_gZ_3H&mx!o6!3_!W+KCme__q`1>L_-}x&)9-pl`jYtWnocYDWiv+~H!HcqR -zld6ExUA6f+J`rQPO^0hL?eFK9D;>>%(NMf!gDP5mgVx4y`Blueelq*0p=8vvcI(63sT*qL@m_PAM}(WBP4x-wW00*hh}y%qYK6PvB*Wto&~LaPv@yNi91 -zyoQia`oBAA&_e)A==xkQirXkTH24Zkyc4HEN!o#0G7R70B7ZSdq>Wizr>+H|moUQ7 -zSO(olXG5Xp^QRs`c*3s3+&5mC6?w#7!=If8a?v1K=%CL&BC%>RA$qI1fS3}JG=kXm -z@BYJF1FBBIscDm1iE=g;m$JJzXhHy;t}1}3lE%UL4}|WC -zW}7>_*Q&~|+yx(So`-Y@Qly(YgfAzUD9H@bg)xRz$LZ(3frMpoDjn -zuN=gja95|JwB7mL#97I3oCogO$<1RipZKGh49d1{t~0L*Q=)$jq^`pi4A`29i| -z)%>RJrBqgN9*t*SO7qhvd0zrHa-XPJyDDcv#uT(0E^Wp(k0uAs%qUjtCkp%!9GuR@ -zY3TVJKMWmmzSsM+GV%hINEL-xXcdP}<4JaRnsPnRUF8ICv;@dB5}LJ9E?$0nFZU5( -ziXxg~Iq#m(ZSJRk=nExcY@cFKXle@ZOsi2T1mVem59Zk;9rl4=A2m!wy?9^H>HAsTDJGhtYMgf37Tyy)ttLo7;^^{l -z2hI%8JEvmIaq7X=^GxRt)+}*$R6G{`+*nW=YM&P`^ECO-s?$gK2g%zw=mfm@VS1zzG>6?~u>J)Q^`rM75eB^_ -z04t?yKxMv;=c{u7v=nF*V5U2|(rMA1lV0(SoP;2t&Kce>_|~XNiP5iIe}#!Qs8V@| -z8>Xi%bW#jkU+&u0O!4a{7Vy-^jZ#8B`64=lcT -z_J31i!eUcaW~4Ez(Qon?Q{qnXYlzGYe|!3y#~sQDZChf)O}s=sjf{N{j4csxycFgN -zW+caQQM+Sa`+i!w$n}BXz4l^PbO_t#!0|?*H4|Ii7ri#HH=@yibz;_48hY=jDlV-? -zXX=M>?3bwLJ7>aqn(Ue}JaukL$s@%Pzv1}+mJ2Rvq9IQCfU#%dV+PelkU+Y+i4U)l -zyaj@scha1dk4r@X_oEP<3yk)4A;qQ18MyLt)fQ4m@P5mW?||T -z*q@8prilg|QWLPA)0pr-_BgFf?{Rtm#SNNI0?QN@5_6@1%n&>Rj7krEQqrXR2*t`O -zZ;0~+xN%Vw2$<;m>2RKZ -zO~<6CFXlZWAAq8J#m-a;egu5RH-`o>|Hgdc2~EjSppB|q5Zm2;mAZ#^qF(exF~(@r -z-Q{PGZ&T~def-~^uOq5h;wY>|->k{vSDU-fHn~>!vaV(F2LcCtrsmhp>qXZ3s^e=q -zpzg;kvv*UPF^_r&B*dGiazz~c4F>|;>^(Sy|9)LU2coIJlhAJQ$p{s-?{vboweq?~ -zc>P$D|B#g%&&rsms_dyR<3ZZ!Gis74lzX@{#(r`OtVL?X*nU@1yDD;R{>`{7D!LXS -z!i$tqon156RSd_e3=F-*5oJt -z*~%AH5DU9qq(pz2TpJ1C7IPejLH3_`!4P)?@ahpsSQ)d@6x6G&-Ww}f-TY=MTl{eS -z3t}DtOrqHZ^~BIFD{S}oqff&G8>Dl%Jm$uLaYUsOd4zHLmCJ0sps#@2v~Nt9Ed$-t -zj^C#A>oECu@JiOxFtRxGQ8z3JB=NJ?O+Q6HF9$Bg*T8~~d$Q>w7g{m#xR?w)?G$GU -zb0RWuJ=_UD4vJx;>~BiX=JMvt1wY}%4h_f*M6wY;ME=2Nuj?W6_csI3U0wbHX(Rwx -z!G%lp#ci*bR&~n(qtTrUK|=6jz13}YNTF~K=o^J)R;?qd*QA;K>#+}XawLj=>8`au -zMqxp~^BgsbZh*&ccOeQ|0^A5~8>G#6c39cunM^e2*)X8!l5C1s#lF+`atxxG4)`Fh -z`^B05Y^t@pa(!`Qnxj9j=ixe`TWInttpj+yoKymO!|FsCPS^cRM=Du3F_ofd;_$oo -zi7Abo_BS4yiWKqW!0(}nwG^&-kL5-t1{T1Y3QMx@k|rlK%p-M$4gEeC -zLTo94(bCsKq7|jHKriP@35R-;RByE1^pPYe)(?a__im_J8TuWQf(BaPS50M67H)D% -z3eOWoWN2=;V20dvt)5GsSuECbN{7FLt8OFOM~?I|0+A=RUxH)+5E9Ge8e|<)qh0#S -zGciP#7B@lQI%MmS{_guPiN!M%km@F2>)Q#lIG59*w4Fp&@4WokbG5bZB@Tn_9aDQl -zxDtu)Z|OyDcr_{$<@&BR7L=j440k9Ii5YM6;IeVjbl>+-Ly}sl^Fz%qYzwy87Iz!{ -z%st3GH9RfE6tumaaru0O^aEho15HVZX@W$SiDk}6Q@JmdPfRVKfd3{jwWFP)awZ$`8!jwtwNsH7KSV;hI -zd@Fpc@L6`AfSW)pyM;5GgAB#UO`K{4Fi3{3Jq%hyLpxG=6PhK^w(1|{q*Q%#Pi#vh -z61w^4zF9Q9=>5@yGst=B%Y_5u%aH`#W;I>4>CHD6X}S>AdvFEhTVW%Zp`5nYTN43R($d@9{iiEDpycjPh7_)$} -zm7@0p@C~CYb4@ewFw{^=A=U;-CuE -zJ3OsNpLU-?*@!?~>IV%qisNQk@>;T?~3Wo8ffx@6rC0_RecWmQ78Nf5JPV}}0PviV(SngxFmMULvJfSXEyTy9c$Zn%*{V4PvX#n$Ye=~B+ -z`%ZvBe33HT7{;j1JC3345HhlAyC@o872o_S>b|ddARq9|)53` -z&5&|AJp&_HJG{){G*kO>5{gK5wb#{-zdGUBee1x`ZucDYmJI=-aI6ZeGb@p=4-*Yp -zwD(YbX(wY0Ar5$20O0B`a*rpKhU&0$w&kmJfCp5`=M5V;ahWz7E~ta -zNw!w$DEsmJO}C3Yey~d5z3F@8J{W8Ga^P1`WF|71s`Xv*mC}n~V_LfM+4NVKelQpE -zT`rgW^w5AQmfz)Txj&%K(@Sn!sM2`kJ3?Gor%UYnI-Jp|#x<{vst&A+3+3?7fV&G& -zgP9Fa`Oq&YiO;@mOwaOFNHEM)i3QU%(< -z&>^EPzxQ+^LJvSQtieqGyTDO7Y@fW%x-C&F?JI44cB9sx{Z9jW&FHdIeo>s04qZDW -zQY>mIhpF&ZC={Y8h#c$yYAQHLS9w;3HhgGof^w6R@Q7urxva?aTVDXLK+pb2;p*Ni -z+oC^e=8P+gAN>P$lwkY@ZYCqLv -zwW5N)+abH_Ghm?y4Slg{w53#JZ$BZ|FTUbOBqo)ME*-wZjR8XDU}@vKk$S2uzxeWn -z2F;jIM*Uyj;8uV+fEiK0;JvI}Md2o6P+6cyVx*_D9Pjh4<3_D~sOA7SO5n53=NIP~ -zZ@Z%parhw8Tx_?e-l$=Fe3fF7ev>7{vMoTyB9= -zd#OOINxKte2Z8w`Q=J>BaNpw0)`kHX@B4n9qAK$aIRlMLHM;o(K@1H}&Y98qCJi?A -zJI=4=FY>y`yvuQFRw9{R{y}3*(8>bMOsq4D|AfEqq~%2Elh`d!{=6T5n;63u;@ms? -z_Z4gj6_AO?$dAq_K7;!g6~AF6;5WBKbp&o=DRlSG^i?{lVTnyV)mqyslkLzb4Rq7B -zZRqlaZg1cxrJdtnZnVGB!ZXpo44s-Iyg=9?6_`#5U7ZW!mt5*-B0_%k0(LoN_KQNc3Cb(kNE>qI6Jp0 -z&zu*-I{K+uJ_RnL0iS*7Z(Q6JcAqk__(w~iiC}LIV~h-75$%~}z5$J*3+2BBUMAuX -zz0({8;f8;Ca3mGh -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 -zTQG?NvGJ!X3)LWnAWhOQj-g9o!I5q~rMmgJ3Z -zy%L>|lYo5ai%D21d@+Ff`i9i?z!7fE@MddYNVEK8M-(Kz2`$CtBKdY-R5*QE$p3(g -zmcb4k;VAzTK3YDFRXWabO!iMmyy-2lp~TI&*^ge|wWG6ZP_PhaDSUMdTdTPBA)`L` -zHs%*`1WM^2HcuW6x47qEC@i&GKs0rt5Za$S^FleJfHe4km5uQybCI>NnrtWn3rgtC -zaN8`iqNsw%QL+#H@Ns?5H7uLXuJs#e&Se|df)p&92%bcK$FG2R6@k5{2deJ8FSM@e -z)3yAa7PxZygX{GTduaMzb@GEK4XFRg@BQ12jR@~4`@;bC4E9KK(r&QZn39aS|DW_3 -z?Jzs0-qD^cNw0A2OT)+*dI&=q?3ycU_z?33V3-h|w=!eRCvmQ(W2>HbG8nI>4G-t5 -z*t!f4C1q5Nd5x|CLl~&+yf|Rwcx-y5u{E4emD(w*E=9~c*%f-cak9|011R&ry?QiY -z>9tX>g|n#No;v!C@~%BNIPlnI>W(dL$?Hz#8ZJ&>Sv%P{*tL)aq-0> -z1%s|#6&M=rvLwsn+}Fa098w|sj<@fz4c@&9OcmTZj;&V|nXuz>gL1<=S=Y#p;_!;S -zBu0@5N&3oLm2QNhHzU8WzOxXWaDtu~Ea~&j=N#=vMr}Pv-m>mcvLq;cRK#7q{t()X@> -zWCu!?UW;nH4UlEFuLZpxg|f`HSzgyGlf;2RbsJhC*4NU3sebP+59B`i5 -z@rmgr-8{th!`(zb;`py>h -zD`;F1ivPH@8S1@)$W~N{M*k~UCu*R+SCc^RlJGwV+AX4sbh54X(74K>0jPWHnxRc5 -z`+w`S*xhmiiK(c@BvlKt$gHVkKKSPkghR|HV@BwPiU(ok_Ywb0sDbL$PeY>>wvUR1 -zeYaeOY2 -z>L3g%W)?qbtOFY$lf4JpiBdd^%IG_CbjOUs2Qg7tdr(x*p -z`XzIWl#~HQ%2;9@GyY`iaz@=5btrPxt>m!y9mG5XjBq{f0fnoO)6CeWf8Clt-~H1m -z&E#6qA5Gx&_n#0<`U5K8P;CiGvat{^_Z*XqU*mLS5m1mT0g^j5O9A<}H$5+Z{lN3` -z>?!#`j`f>-u^Q5`Z?*M-Nsf~I^)cN6@n*!kHv9er*RML?3EN{1$Mx?>aa}v>x_M38 -z0HNT4cqrF%&3rA|)#&=-fb#VT20s-JlWF^9x5_W)!_ZD>#$!79bn>5qKWW-Qaa>e|<=fi{}HE{A4K2xIfHMVgsnC*K3{1l%4Qo?F!_s&elf& -z0N~}odD&l?oBa%hW&6?HeZ)L-Xl%YVIC)?y|+*WrtZjT_vF538o<;Y8Beg{5`MY*%k7>LbN*tR)fHGy){D()8T--$~oPmbMM{SU-wD -zwScCxnLQKc&LmVufpe)l64y>~{X+>1byp9}QWS4kZc>=33H4 -zz=eWD!C#yrxdlJY;Ijrly-_~_ -zB-1I}ZC2y23&!O)sW*>7Mqx6f{^iPE${iizH$BD?sAjt#7brnuW -z9&M(9YjO2;U*R=-*p0B^BO~TJkW0c3rxF-1m{X!(l+IML?;isUI*JU3tQ>7(<|Cl3 -zEWY$HL5=11JP+|6JosH-utCiEhDt<*SO=Or@tqgr>Y&du4O -zY$52p;mSJwI~AK+p(W`f>O;J~dxEYZS36Vn5=8YGoVjHIbYUwl1?qh?jp3c~#O92t -z_vImY6=f0B3Jp+2=&d|PlbM3?*A0Yd6@;&?-*dKltHEZw5@XeJR1bQRj#PdPe0A&l -zlsa;c)aSM9)w_@1^nk+y{UXz=u}m8BCqtsM^Mx8Pg9&vh_P+OP -zvIACeG1G}~m*f8QdUPg-+wYuEdzf)cU)}j=BAZ$40m5@u%8BgdgfHb#ET}h>2Od2Zkauwl{opE<-|fKkstkT6k=t(Z!@9hiYU1@JdL3e70F>t;~R -zwXEX$r{kD-tY6iq7irMJ*DG1&st%A1KVglEcbdic#ME}u_^Jk2;zClk!rzUVf}xHZ -zqLwmYr%~^2r3BkTVut~D87!cL&1n*9%z63J|0GsLZBDwiTA?jLKcd9gVdk>|Mcg-2 -zMO=>hh@0PJnH3qDX&~*i;1g@o5@e&Ey-D#xiXS;wDEe}JeECkc@NIc7IBFDv#8DCE -zZkWLAas8vUkIa=&JTBC#kp5LD`u?-@8XHBV(lVsO*4lp;??zbv?CL9F{kgd;1wL+`Sk7W82d86B~Y(2M=fLq|2M5%iPu*q6uI(cMu{qq#oW -zzhmzW3fy(?=eB`PJa`|c^5OkZ`^|(T;)Dat&X3jKJEHydg4J7YiYk>d2IO`oD9(VmdDH*`a*NwQp`@}xJ@8vz!0B@gDqhE{0z93r-$hzk0w -z$|hd1X%={{Iv&n)R{%jP=-gvVUv*IQ9lOy$V9?tqGctBzv&(#CP(^=Z|DzoQy8-Kg -zsS$z%bG+8fo6tS^0z@w~>7gPok|blSP(XzS&t*rUa@tjK(C|?BCe_`n_;}=MKKKJn -z5gNtoqgxLWr`PL#Vxpo#q&GdA<4P#c`*4ONlcwB~!|Kl&QSZx)DR6`KX6gNn9c-X_ -z(d+(}be*5MpB~mOZR$T5$p6FlcGX)%ELF#HIsL>fZp`#wp=$+J6kH*m -z0T2%408%-N>hU!myzT^_PttMlg-IRRoR|EMy&hRSd&;}eR^tgYErH$HV7OWK&8T~j -zUF$B+Jh%&cv8oSFgECA*QPGFVdk-amuet8)Vg)~w2o(9elbB?ePeW9*#LgH+?b+TF -zn7Ps>#0XncD7O@PdmWyrHw+LFC^rvW%~m`Ux)D?V0iB?)B!oGg7;FOak!TZzCWsOc -z+@SMjt>w}IeojB0VpQch#k&amKAfdx+l6UlIpxTL9t0hFhvdRL9Bo#(D(O)aIuEzXI;L2b^1g<-BUb -zn%ARLRg`9zK#R(7)A4|N){*lM_qnHAWA%UkQ|`m9&Mqi%;2JyN%PrCgT#dvLlMqk| -zwR*&89dMgz%#KmF7BOaMYeb2wiRcmVuFx)87sJ|=;ki)n3CVcW*Xs -zw0~aDKpd+Q6)qk{8E8}k}AyaCj{*1%$n;yH8 -z?ifi>+uiX0c~z%xneKh{zHKIXgbb&r80m%EobSX>y(TpTPXSnXAJ`aZ8g=^HwsTWR -zzYjAbW>DdJ?u{w-rkM>FbNDn|lH-xY1%~n6Rj<4&bS{*mv-44MKVQOYy1V?ySk3JI -zixB@gi`}XfTtC3PAZ5fY6$yd*zcdbl3McDvU!7ONUr%*v8|{Ft5Bj1L`UB^|89O$w -zHuyz6p;O~kC9mCpdTW+apyFraWeP$s=zm8&=+WYv2g_wW2Gm3UGDqPh2=)X7!#}XV -zkf#mq91lF~UK_c`29XO+C_$|#9;e5zUWpAlkgjmQ5leYWiBSb$HIN+I;riyw(zmnM -z`li$f;`$S`Dy8KWLKP|2{p%)$H%*jQ28H-J^y!CrR5{q+x_+_y>I?(q#^;R_YN+l) -zXQskFB-n}`{!S83`mJ%sto9I!b+~;HURT5H2py6Xu~i%#*Uva|v~?CIEor2x%(7ED!}E0tcv -zdX+!JD0mVH9tW8FSc&=%pDu*^i?OAPDZJj!{?ws31N$}lVb#`+#pPeEN%%I -z(C{i*(yKO|2`evi;{Ji^>2}V4rd(4r`^}ikE}QNuDS8t~By7hk+8T-RP -z0&*2JJr3J4R2*MYwhuIY#U2n_DKJ|Y;Zi?(orjqDbWTd3j`&jhNMYt=A11Sz!`x@v -zHN#nPyO1HcOqFw+cMJ{9&r(8!@FxP@vUac9Gy|5;-1Sa=;3~$%^oV7~=NChM1H@do -zZ%iaiRYDi~CZ4N5ulYnlsP^XrpS9(wFa)9l>7MO{Y6cd;FBC%3$8;hB7UD=TzVh75 -z;MT#@IND;96lT3vb6tFOs)U_nC3vXJYJ8k{4%^eFtw?iLO^WZxPC}p&dl!==Q7DA` -zFLYaH{GLRYVN!+cr@@yY=kdlPkG>Ic8H>fSp}_w`($x-6k=^(WYAJqNb;U`);6Ul5 -z_cS{YI{)pmk4xH`l!>G_`pwp=cxX?=%{1e2rCdbZG -zC;E9599s~jlW6g!hRQE-;otAgBd)pHxLisltdF3dCTb0B-N&CK+B=vVlrjQn0%ShK -zzUWOx`#^1(X(kiT`5ZzHtB{0TJmjk~ -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 -zE*@PG8zsB4cVjl!tXE6V4=oqp -zir@SqZKuhi^i_Ff-ln$11^)`D%y;hd;HJ%ch2;?)vZdjkFdk{M2R%}^pYT1s>qJWa -z^pqi|+9s==!ZMf|c*s`?Cx$Eh>?h=Q9C|3|jG2ghWG*6=mKvmUfe@u)?woSEK)g|l -z{B+0}RTO0(4w;MX(a9Dh8JtEW;*&gr9~A?7MVl10n>pQ*d&-kVDi(pSWtg;(Q{b13 -z^2owllC_o(1LRdsLmyBdZDn-1dv -zpLGRiSTPUXZ9OgiGk8*pDXTTEjZckcQEIY%jB=6=irC)-U&e+E6qR>^>}^Kung-u_ -zuiERCbj#3CA?j@dpiAN33C~Vfi1|!*T*-gG@Nksn{`~}JodH*>;6H&ef^H%D!O-3m -z0!|<^6Fx?^)MWEAjTXw@D`fV4X`~fUw$B~aUSe>!8s|hoY^cOG1K^1U_6KhxbW|SY -z=+-QLw?^imOKR#p967jPaA@I>d|_hQTOanL%({4T>ip-QT{Tf_~WJx=D@o7a-Q{m3*Ddmv|zFbYg90 -z|5?}-j!M(J^FByVt5Ia8Sh#VZC+43GNOsYD>_571h7@*JZ$8$eaas)QEpEZ;M;VtL -z7;v#qI{`L*kawT%VxG{kJs9(w{o&h&5hv*X_jgVE5#$ZGtOz{7E79wQ#!(o{FB(U{pw4}g@noP*cm=z=;Puad`@lJ;^{BfZ+%0p -z9I}~a8vIY1qr-xEZZ)Tp3XPOwVcJKX;r|n6e(8g~`=Tr?o4lkuCM(#n7KX#S$?ydU -z7H&<3soIH)PSp$jlt>Wme2doWPQ^RotSsyVA99zqheZByv9@`h8m83`A%jTK$(-*G -zCo(UJ^twfO5rLkMgWGwJhS%$rkRhZ`h)A>I;S82EGoALaw{0y}n#hLrD}&?|VHhY2 -zL~_42de%~YZRm(EWE0&;EVsf7xk-W?pC5eM%QWJ((~CRu4KK-I%h;tyxl_rCiPN3o -z8Crl(7ZMEt1K*RR^E@49B$QvvkzGZ7oBnmNAF3614$)+_kHcwAmh>)wq!Mh{Gtc7r -zNeOFzrPOUP>4_b`JB_=iXs1z25{dyxK&Eh}CLhJCfG3e-CgoHr7i=*zX5k5j#y79V -zgZ?PE$rOCfbtIK;tZ;zIKEeEx?n)4Ni;E%cA~yCULYfUq(jt)kpO^4O8)?AYzb%lK -z+kg5pJkLytZEWdd>pq<0a(Q69#Y -zv|}~n%DBUemE)4YtF;Uz%$;OuQ6KR1WOx|bJ9*Szg7tsps8Z0(EB2mMeht+^{Vs2! -z&Bs=i7r|lQ(9@4xs5DdU4g>eyWCmV7$Bf#ZXc{(+qS+@zTQeb4o~!N4k`)m50lrio -zYfmNM-sZsmg0WGN@j@nU%~(YAHLYTgqE^9|yg){F@#fCN7kd-FFPpjs;!I|Gdu^Y0 -z0?0ZS`8`X|_QKb`JdVWAyb&B

~=17FDXmg>_s8%XvH5w2WL6ygKUEbl_lnwHaSA -z=r8r+%2rh^0>Yg-omh%Cg2zY&n4IOHH;T+}L^j4ttvn#vjCB9z%W#P<7Pf$3a2|Q{ -z1|I(*i%g+uXftW(EaH`Ley7WF%_3LPISnc(D7cfUR(wz=)1UzScHW4P{slJNK)=A6 -zFpM;UghVPgVH#>5N2wN)F&LO}vw2hx3W^go(FGW{(!({zAiV|Opn*Pa2HNomG#&_fXptvHh!s8Q -zG3wR?3e|9!rdOWBGDg62?zdm0l>DYKKgaj6+tZ4^;k2R+;f~w0|6?iC(>nEK>DBJ7 -zE;d?=tGMGAz=VO{I77zrW#nKK^V?SSWp_(sbM(pf*r3dhY2;nf9&LFjA;_42KN70* -zB9y7JxdPAWX!{RM%huiT27f)i|~%L?f*mSt(n=7dd3&mfNJ})i*iVr6w~Ge(Tte@ -zXDlobM`F~ec9BOCOO7<<@-=5lK(FMXlH&u>iSSOpLRN=8BaAz^Vs?c(M_3EX_f#E! -z3YwTmN0m1&yI(jk_$07)wBRS_YJPw`9(?u%6Dv$j@vW?yBD9xk|XJXmi2ygVnM`N6F5E{kM{*%#zBifY_GHQ5H9`!HD_@ -ztSObbn@r$Thxm0)jbd_7SRjNFd!Cd4{?;&R7?{;wF*0(l#b=c;@8Dmf_wWJ2U+5$8 -z1jsjf>KWTUDfpaOPIegFCHVqu(Cc;*~&{iGtJTTe>36OIZ2iQa1H_N?q!o`k`4>X5UyinTQAugB23}h2@Xdr5qMP4M$+fMAUuhLBEkfRJq2YgvbsX6r};pSk7@+hDPxQ! -zK=ar&XWhKCIsrt#%W@49%i -zKY&|Q2eFjPpgpVF_8=+hOd}r~Dr-;LmQeA}4D91a4jva!(?oL-Ng7c)#8|V-5_=wD -zJGw9&Gp@EBp-eSl_cnFU_ZU5Ji#)w(M6GLxs)9q_fcFn6YHX`0WirUg`O>p~E~V=R -zU#z@9BbKZiA3y-%91I6=XBW~6#80Io$X^yOXCejr7jYOSI^6&piVjO2IhoPKH#*Eu -zxJBVw)_d8*yq)m9u~D$S!~gz3+2V#IS&s6xG?WJ&f9_oIn{DAZyy9o0Ye04-!D{FCGti-=Lc -z)#pQf{H02;@MZ(Z}euXDnTm5oR0uZ(2Pb?Wy&S_q{8dk@c=Ep#=jUbWp1_OZ;4wPrd_RqUO^cW7E%d -zR0H-vd$C@-T~8wgIdKOr$x$|O?%P;&mT0caku~Su`548Jte`CG{p{2akIBCjoXxdv -zosO8Zeu;4T5uOcN6c^89yGswXYbz^Y8BAUgB+`6{?3`u9Tkn=;RL4}0ov -zYFa^h<%5%<-u0%f}n2ybb1eWK1V;_Hl$#aBSt=r%tR?I|$5f2Wf)%^M7&}h?I_Tga>0&JYzNtfJfz4bYL`DvpiCjCRRp~BThsRBjVFe`!&58 -z!cNT|^6Io~sMaXiu-+fWHXb59f-Z*1|2kFbsJiW7L#3WdV96t)<_1=J7ZX{K7g-;) -zeelMCzmuLS;W5E`{Asc}OeeN)PLgi@pJ`_zufJ4mfAtp`TC{d=Xgb@M6nqe5crmoo -zSWi02N9HFk_hV23ImXq~Vt+SvqnK&>T%H`7R)oS={*52a>ofV0$d*9FXgCoB9K@sG -z*!vUA^*%`})7Eijdd|D -zTsC^C3A;N0$yYOotn1*eG7>Ovt`NN|8Gi))%K;K$re8M=`HD7JJ7md5jR%lPSho0E -zz+Zm3DK*ovcqRTLbT4IRTc7SG6Z5YUO6aB{`Mdu!95Q|_Ycy0DKu>=!0QopLS(^*- -zx2M_T7B4g%BasSFm_`O>n*E$%-#&Op0XR!`#73__-Qj9GZo`9pHzD#V0X9FGbzxB~ -ztn1n9X_o+34y`BicWmF1cW)4@GvAr_=h!tST2lR9VbOy=%9-21uK{6!yjB(OgI -zp1`E{ym(!Jzk(~ZF!{G=Zk@5#m*A}QC!)V_vo29}`Aj^q6fodfO}&Y-zJ=KrH5uOu -zy|oV*=Ef{0g(x}ijN#N4hB9Kw>ZVYlhK+0@*^4kNTE+F_yRGDKkKcsfiFXxq^}c;^ -z2||dWFa7hCCrY*shPk$Dkl(*3A9URW!B2;W%W!NhfUtz64XaeW$e+oSG;?w^3%C_ -zA7vXwF+Y07OEt+Z%kBhO6jo4~JDPxl*bHS4MBHQ0asqUoE2s8iEWP4>(4TC?C%IT$ -zf!c2NF|r^+oqL27-T?e4{BWt~@Y%Ztn|P1J6>_XUJ7VU5BJ#*xW&vfxgfJ?>-So#y -zUdt&fE| -zi2FjR%phRZ5`7$b#&fBL6jT}LnV7x9nePBk-I6&5l~#I_5|YYnycyV+{Byr;l1LB^ -zPVp_HK5K_Ht^ku`aa&stL*0`;sGy3KUHoHPfBwR*qU%W5$o(q#6(STHgeW`F1imPH -zQ}pr{mt(#!dcZyy|H#+)NZ9|r9b2HjXWhgUTsj~AR9v^(lEHN5jcUK0TrRQL0?Fia -zIW>%@mfvQE2u^Hyyx@05PknkA8TbT>+URwkVQ{bYmF2Bp2G4F``IOiKQ2PGHy8P!U4ls_S$h1b->O@YJVXCC;$hvX$C6aS -zJHx-R&$-($63ns(Dst~lQmB`>dmSV>$-EK#>wvy!vcxt15I({L1b>!nZsX{PB=0@;1Fq96>eUb&2}|b&T+TVPQ3MM6oNHihEp(ChG?@^g@;^&ruQEl8m@{}ECVdM4RvM=|M{P7k@q9LlAmd%wN+vW=9M -z8d0Bl?yA|#3qlxb%T{9vdlGGeEg#zh8AWvH6a6(;LxUccuTjhlf==CjKx=tdNY~?D6b=K%gTLPFJSC$|@JGC8&2Ar<&>R>me|SH=f-L$; -zjG&lS$Sd~gt1o`5a^D%ch9XvHf&tl%$vH@HOb8D4Hj1F@KnmZgJD#X;8Z+M}$Hb|% -zej_$K(#}Snr_V)PXH3X9&y#iIP2sL~t&N8exzpEscH7#ST9svA{>@}tuR>&W9As=F -zJ38yg=>CqKcyEceBlJbtK5aP97&H>Umz(hF%onSl@bU_5ipj0VP8OT9MW@2AVuLe1 -zH`jz1a -z9YDmbByS!B?mmOmgpIU~#aA8Q7&o)zvi`z$6=(3;~fnX5G^g-Iv -z^Uk1hR&_=O<<+E6PSdS1#?#|>`KoPZwsRU*^-x_^i25rs(1TI?_A2Ax-Q;d9LE!k_e;q^ju>l5W1&i2?BzhMUeS$b@R -zzXo@)zuXxlg(Uf+CPLQrNV`@2ezRNFVL#=fi3F#>h>?~j>XWZf6YUG_sX3b^WNe@F -zJ?$Fo)VFb;`p4*V9kj!MTaveBcHLwTR>bJ9*vZ9njkI3bJmecJ#rEUqf63NApPB3~uS7dz)5T?G -zm%~Yfu<#Zdy|6GmyFbbrr8=zksz?mwgUa6s8-@f02>_z{N7U72Vw)#p`X92Cr6We&wIOmnfu!Q%-guEcToTD5zl_oh;r21iYlqY8wi -zd9>t-Lkj%6qFg_CJ9(ynGlBF#?EbE2px2oL8RMd1iTaXmPD|dC3SKidN#?o+=_fg0 -zmVk1dUFOzjKk*mm%+ab!sb9|LOkEIGhwr_=^P{p}!4-B8oAdF_5Iq5h`)Z0`u+g&I?<6z@$KpduoQ -zd04`sQc3+eK3wm%`iW6lGv8ugH&;i0<#~q^5_kSlnji=KJO- -z2CGgZUGT~TEXe0x2s+s -zT?zy>A}p5xMCB=RrUqrrYJq6(s(N|t7D*;K{U*yl&=0Uh=4gFeP#;{HN%NbO81ii> -zqP6U1?ycarArf|qLvI6plBplpn=qX}h#hqxjG@fs=rP(%o(;*V-WpDR6?4h>`BBu~ -z4+7?p6n$bWO!z*df>a9jx-Wk`UJ*3wr?6Zf*w^7UL9feJ==FvIw{2f8U%HmUj}wR%j7pzESG7t&CylA0lDTY&b(Vfoy_F`U-HKqedgIEorg^2e{j7%pjzTWuO- -zn$LkIdAo;p@F4xA{AcYHv>)8N>C2f!ma$rXY`g3kvSt|-Fq@;0mC$>Uss^WQ*})B6 -zNMVcdo>q4AIgg0_WZfcB61{2bL4F2w#jdvpI@syk+7#|j4ZH^Se047_4DHisGtCjt -z^8LrTF^h`EZiUlrRlAw=y%-6K5f1uXGJhB^#!Y6O6mn2cb8y{!9({^hB23SJ`+@0v -z2TA|S-jC}ag*UgODB?s&?8}(vG+`>3ow-6wjGBy<0|tk!nE9r}BdiH)Hk* -zL>=QhFV4lXJI@zkiSupP`k9ppsvE3a)l -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 -zq8ooQ!ZRIZGM!(cg*6oWnL>wuqCd -z!0xK}$5G-;$P0Yh$;g&g{PhHtY?3Nk9!mTP8cR6xkbTWU_u+iK@az{SZfw_)h1%pp -z6p@}8|Gl?1LH{qe7?0Ay48Gme9LHmhXFxogX05bM~7XoPbKa`Ep8XftBH -zyk`BQsK4eIJKd%r``L6cMKhc+>mJu3Qm^2iL-eP~^L8d7jw!f>KP+(WC?jC51iMlnG3>Z2g`_BH;S-Dk(sI -zjsZvV`# -zZ=s(ny-8%TT@!o@-zq5D)(5|H0$@ML<~cGFI`B>-N6QCtP21Go3h;-t>INw@oL7`u -zg9HACAv4(LS5%f!kv8pUn`89%4>hH_Qv<#j0v^VeSd3Do``tJrOQgF~M?HPWVySwVoPtI7*S5t_6DLY)*E}JtTkt3?GDS4U)R8O$<8c -z(_1R{S0<4%iLgP1?l;?i)Fth~jz)kR503eA6lX`mSRp3G!$beee{+xGVTL_wx8p!w -zVQhh21bVkcJ`9fqlUL+<|L9v~?%tX^)wW=8|6pEP2Ys}KI2GbMS(w&x3N-7{(w97p -ze7T6u5lB!uo`GcRZ7g_i1ra-6*k{u}Sgw4{IcZ03R6EpF@?)za9vcNUEDZlvx4Q%O -zQb6gY>pq6K^J;-EL|ql#0A)!%lSOC^w{g_7=TUza@5NZs+S$=71ZH?t|CU?b*ns3w -z{N_=ST?Fs$U;mtmSudEm05^DW606~ODG_7yZ_XR>-p}|40CP5=4KlNW4}TVn3d_?$ -z(&v-h?C!v^DyNy6Abd}c{bJb&{a(|4xE8@QImz1yW%IHbq?|)x4#a=7S=f2CdMGx% -z@Ce1Uu0YuPeLknrvuIZwqwgcUKR1wEmq^G?;eEws&Xty|$)?9Y3-iXa2O(Rh3~*o> -zbNubGVzcCJtvJjIoU+>$;Vx&-ZWt$>m}o5_97*lv!ev}Ki^I7E#c;vqHk^!d(k5{w -zea^w0YNh~NYMLw1**9)8`Sl%Jv9#I}->MqLkmwqupW=x^p`z_~(X6UI41uN1xIClr -zc6}MDpLXxN(7(uKSe2#_bWcA_m-V}V(C~QC8ZtFqmMJN_8EJhU^YWB8d`Ipfrgezwd>W`80gz5dBLNrLEa>`NKyTg7A* -zof)U76yal$g!9|0gTlqhsC4`V=ok=-M-y^qz%PVvo-(~cPD;0TltN6h|@2sCk -ztEc)93BXR)1xMIF%?grr>EN2jVMKvQD&BR?*fBO>QUi3kv0{(H -zLNc-#ni0ysMur^^XV~wi7XEoYlb}^)U}4B!d~f0uv)S_4)CVSS9Yd%&#??x2c-MU> -zt|xv$_l@VXiMYd(7$+q?Ub)RZ!LNglnV%sJXi=NQ_2`=>kJH~oeb%kY8u}EuU1Pc0 -zqv>h)tKl!K5)^XHGp3HPPM=_oH9es8*JHoIjPy};zXdQ^p35{a8(j#WIjErp2J?#~ -zBUVknhF#p;Qe?(uN9}QCKB{af1)Jt$TL!gK{chuwj{u!C5zGapf{4?B66ddEgk(IC -zdQS`=iys=>{zw$49@56Bs)r&DDwo{q+K-`P9TEUG3u<%X1>+}n*nQcAU%CgX{#E0M -ziqQ8ITl6}zG0HkMrgdpifBjqzS-i4qD|-%qz#~l2_Hx#|ex2jE)tMSBQ-p}V=F#Zs -z-V3|#D&FatfSw$O>Pf=TNG0Xeu7C${`U2B34wQtLRoM{_g^fMxhKVrq(W)f8^62}H -zw4#8Cxm_#%*BY%56Po%7_d -z5}E(}5Dns6&9yxw`ZBu`Cdsq$!%RvuRBG+y-Xd<--4&Ati;d!&+Pv|-RWs!ramr== -zk;$9Ye3HM2lYjqV&=-!OrDFl581qH0VVAmcuIPg!{tTT77c>x3C+3BOApQStT6&US -zlUNmlAAO+Y2r? -zO9q1a4(T(u!d}xTHXfc4Sivb4IXqm$jztBv3;Tho=t>K!>&*dI`?o-zw&(c%yWFvf -zg4}oi8bS`zMd6$n-gE^*P+vBw+?l9!x^Yu$;4)&CH&(qs+5&V2P-w$u8x%Sj{Ba#2 -zM`T>;(s@af2F7?b^svbyG^p^oQDL6k0rvh1(Y#UoL61@YELh-k?D1s;=C7(pc+Zd?4Uzn*-k%Z7C?Cd+UP=c=2Q!Tqh_ -z^!;YrFKcixepLb5Yw6^h^ZZ_<2u0mtx_Hkld3}a3|IJ70nYd%dGUKRm6NIr-?R!rL -z%)VhXJejPm%$R$nU54W}cpYg@qOV)x1?O_P4XhE*wJK;zp69EV`N{l#(<6@2mV~=i -zO8<2jfuRp+#X|{QEy(K)vUmh5RmZf${O5Jt4-eO~H?6n{?K)DQ`{V4y!{ehE#f;yA -z{AUrzXtA3|YzkYn;yvYgqjvcYi02Qe0G0?Ey|YtSp!;!erfF>2svfJ4-}@@p6_~LD -zc$@om(B2;bB=+1*49G9h&c%F6Rzpi3dj7qDDeOQzu|RD3j9x`9{!`h`52{Ax30n{O -zpVn_yGiX?!hfuXifV%)e%mH_&Uvun}9J`8vUrZuC)ruPYhZAdzGRo4qgDj1kNqNuV -z(ktyp8ocAaY=cpS#Sfyj9$>5FB~N25KQHW}Rj%Tz!>yH;G~6=M={C+X$iE%i;$zdU7xeYS=ceG!UR5=L$QT@I -z#y#b{_mx3qqidf(z*pimM&gsSxLcpsuCP))z*Kq2aa6xp#fiH5&Hl_3lC@=sn56dP -z|BKaD_T)~;%-_rD*A=|v(X-P-N~$HWSlNek@`KIWl*m%5K|~cbo-L3sxr^G%YDov? -zau3q4xEW>#?7@fxJY@8A9#!vjvfsu%Sxw`4UoKZZ9XPi6Q!CQ_h##GDK -z#&3={PX6OGNE4FQ -zg|wE4p}}}IF{!{A7O3!zxj3Z4kz(@mF?R@g`i*JFQWJhJOu+|+uh_e}*on$53i*5V -zyDw65jY2`>Crk9Fd+9v#o;2b;2%z3ep-iIWa6WO8d_2&rg02!q@B~6LEOBQ^ce-0& -zztqCcEFvbQx54!246ppx^Dl&C3lYb}Fl|Q^t7Awnel&sd=h*q)@<5vD?kfLncx{Ar -zQ}~93p@N-(dNE6gRWLl4jrfWrnqGP_2xl^Ae{BrC+cE4eJe}qZe0bUnwSOKSjLaR& -zMzP&JM^xnd9KB3|o3R=I@2*EB=P2H*l1X -z>pXxY$#T`^VLQ_3XZRQ6Ie(38bBtHP!GnZXC~gOO^3;?raOPv6U6`zyG% -zvGJW_p7otOl}sX4ih}dMK9R<<@{&!UE680JtW5x5z0D1KV!CH>RS$ePw08ynmRrHr -z@zy(`|DH8S*}fxas&bN?|6o3(sQhXEn~o7X$0ZPeUukj^%L)|o -zpNr!tub=Xl_p`#37k6K6Qie!sN#$aH^2v?px}+(ncZB5gOsxW+DIN#d<~#C)X!$9<&CF*cS$4d1o~>3VPE~>){RuP;djLje5~1Ote)?%18X~R -zy5dX3bfTb5!*Ju=`WGcF$>$G+qW4@j=RQk--@~8Se#zhQw)y?1y9x-un}%eoW6&+Mp#;1K2nfujFAdQxtbMC$2HxwRk~Gti)QHScxdWLwz&{h34b35VfX -zR_^;W=_mEKuhTD`w#>6i5S0 -z`#0vvrLfn-X5Z6MmKU_5Nd;Nhi@Qj1YJb{;jXMkXD(b|P{ElPSCn(YV|6-oP^`)fs -z@@lv<(T3xfE!yh)_YF?~uXx}IsA$<8QO$_k;_5e!jbXUN4op69PwSz@kKg{FNs3`i)L&WJNW}N@n6!O|0>kqEY)M3l$7GR_wtOR$6g8|QqA-;CSu3NeT%VoL4@&;ADUbP)wy!nBKy5+Yc_*1JpGH-gV3wOvJh&y7R^zcIYHK#1~( -zvJdMAE1(Y+POa|zNm`yG@bV`%XWd9^@j^}PK|c5Wnt-DsBfSB02iw6#xRr7*TZSm5LL`Zsgx=G6z%hd -zRoV{OPCK7WDX;4GI8xA3>m!dK`We$m2{Ylz4KTj>c67)puUmv0x`8-;3iq&me4mxM -z=GS~IEJsDAomgU!Tg_?}(wjZwau -zsGJl=y~b(DXa_gLT;zdxKZDfCxvTT)?mNc&OBI+FJ$$3zwL!i=rj$@L-Wy`?)&16B -z9gv0t-|Y|;j)-)U8>-WJDY43R_w+7MCv4$9iwEu&v}p~Wy>BiBHAM{MpPqprp?)8O -z1~qG45bL7S?j~GWYGZFdYZZPiMh0)sexSVbZAElF28a^9E}ter=_dAeH!x}NvQX$y -zaPROK>)JfiJT$gS2p7%jx20E!y9lg!t`FV3LWhZ#fZgQ&x4c`*?Bj9bVnieIWeA>t -z!~d>tb|Sw(gNBC5%*_9!Z%f=?bQ$;Zsr*A^7=(j9#MUJ?w_V9f{pZr4JY{I0 -z>w5I(Kt5DM6j}V&k$5dVpfm=Or??omrYHg|^wOKlLn=gXq-qn^B83&&#C=GC9YVRd7@R=ry8CFF$m1C;LOjjDzk8 -z>@wptbGhE-rCc!j1(VS9%=j8^vF#}e8ElweM>>BC->|c2O*|`q1R)IzZrKH|<5s_X -z1M(@@hMLb9@gQrynA5xOcLy8=I}>*$H+M!*S9k`%XyfuF*-57GRu5jjx50TzkTybB -zwgFhqXbt;m-$fz1dE3lfCN*by(6-oDz=hbLzn5>d$BL_NDG{mBI7F2>g+S!F-F=Hf -zAV>QwZ7lrtDuy=5HI?=L|=iA5C{9+!Y4_~RJn_JX;DWN%vh8e`&5HYj- -z5jK&>98`p*>`I_cM!5>S1!1a*tF8%kpz>&tj}zqgO1!&9 -zy+#a3jBJvf*-<;N32q(;wlUa~RGb{CAJgi(P6XaE0L^?dzMf$O{g%$ya!&>#^MOqn -zK&Hc)7Rkt*{+FTWIu7I|nT6Gy)P~bZx6?lH0Cy<$(TUl)$_J~qnNg+irX6dq-yzX} -za`qM%SZ`gf`TCn>q*{N%Qrh#g!XBMCByOQ6fEHR$L%f9nl65ODsa~+bv?22&e3IwN -zMTu?%BGh$X>?GJ{{)$1;;fFf*&C~sKT3X#oI8}yL2XMi8udXi?3+l-aL -zN1u^<@tj@0q^`+Wz;LnlH{ld4flzYN^)Z=eEO#isF;-M4#m)~eaajnG=e5O-M(%y? -z02!wXM|U^5m;$A_-vc$@1hamNAO1PC2m=DaD8Yt+mzZ{vtRl~B)CD`0Kl?;Ru9bD@ -zFS9D{xSSe%8gbi&1;0j85^!4~n2zJDC;S40+B1+_Cv}clCFk-PRN2pL_pj5F@H-*~0OH^GDiHM9mTTPUfaO -z!alC1pTB(ebTG2Jt~|%2XR3$h%DO-+rU>chPH!tx;Kksn{kU>!CG? -zw#G&4pSm!kdv|C@2}jUu1iNWP6 -zZE;i98fA9y{7_2HY?9l&ZCxW*2}%$Xn^0#{ms%Lby6NNbA0f5LT5llglyfHd9q -zAQPTQEm2`A7Erv`NfQu#++V6aQDE_^$}sr_ys{U|r9I{S)Wckm#e?0VNmy)Pkq>^} -zB+$%hVMixKtP6M@=<(Vt^Gt}x_9Q=^L-^>|&Rt3>CUR(#>L{`YPKYSQq~sv-5zi2> -znqsp^qQ!~#nTpYeHHn3Ah*3{HAl*s9(CpMLyIs$-(-lt8y)J`J<8r=(PM7>6@P;2Z -z|0Y^YnJ>ORB*lm|dr$L|CNC>E=OK7&1kncAPoLRV)9wO#!2yQ44*!V^n}nafXhEOJ -zXjHjE^|NtatT7zk0bFAeSLF5{3yQ970mNX(wNLfu3 -zmZJ{95(zi~AEvwFZ5L-olgN+#zj#cC3T7{FHLzNYpZ`Qaf?4v(|1iGh`0ysQ?4t-)flzIFZ1v+Fp6BfEif7|CT2juGM4rPGM45kEc`j=3mDhk}j*G -zHQHyS9YG`^H@s^Srut9YF`bU1qQ-LRttxWNF#7Cxa7AoLy -zulEFMEZdRcpA*+m$Y|i4f%{J`w-l6H_`ptjN1mml7KTQoVu#G&Ahf6ere{81AF>#G9 -zmWC*I*ei`6RA7!=uEg0UpoD@j*CArX@MwO9BVJp2eOU_YGu)1x{oy8&>Mm -zZo73;+(nhME7@jg*5BHHaDZ0@GP5j|1HJ9{V*IdJ^b#lz@+@0hibpA6Cr?4J{;v?G -zuX<9Dfsl5|hG?E2V$|QV1L9^Pt3mm&r7fd-PT?e1aI(s0OMFSh*7mEVvRJ@iz8n7G -z1Z0YID>rk=kdJZmJh5KV1SQXcbD;vgHHk%W?FIRV0Z)!31QNH#M-)ABWXX;4{qW(XP@c2vhVTth{ts~FnbHMrW -z^-4QrQmJ^38ZGL*?t_-U@Qkt4v>!UPHqyipre|vJRykQTAF@HkiVz&gG;<`*Selw6!uEsz4 -zT4!k+Pd(?Tks1hB>sZQ8@m|Fd5{H-#v6A|U6)P@HDny*%R7IA{!{!fX$w8dgW6gfe -zCOV!fgRxVj9p7)j&-JAiFD&7%&1T6^nVm(}vyi!5*NtsjCyFoEP4Y9*hJSp%#AijI -ze)_7~^xx$_Uf+Kq(Kz6Cw8yHOgL(b+@*rlyCv#6Lz8A9q9huBO=07WV&cL(+Z&-@A -zHC$@pUOx0@BU`Lwe=np2w74(4FbY{IK)*?~N;#QmFtjFADl%_ia{X@2u>U7`T -zDaC_*ob~ljP$Q -z+(`#K)Sbo~R{G9`zWdZQASKjDN^ -zJ&ye_30gM~a%2x;WpcQe19t4FX17~3742H4 -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 -zjVApx>Y#3N7Aj^#*Zy-MOa{V!C -z^QlaHIo8tXw1zj*2*9?$qPr#Q!fQA3Z=I5mWnSu6*v~Hd -zI#Hkn9pjnRpM}&C_FH!thyr%RE%K*!k9+=^`E(S!~-6%2T6q@=e#GFyc6;u -zh%g|7lom5j{z8tNfi4{ro>}EsJf)-#WRZM%Z9!H2`79`Wdmw#6jVrxh5-Fj^o22FK -ze&LsU`)c3@cJkG7$-sW5{6W6>?F^5z&t@O)C~f;@SI-T@ZLZO%N9MaU!0s71m%sA* -zoMq+uX!I -zP9)J#5MYWl&+>j8>8;eu7!)^*!32jo!PTZpSmt03Y9u`8%jFnlL -zN+;Q5Y`dbfd5#`Bbfkiz4g3U8rA8nex3Gx(a~wV`%Y-$E|bstSux_* -zDFQk-k{pAK(e9MO&JSma+S0r)T?txftxO35FO9PeGluVx89vO;n!t$;Wz66_Vd~2s -zFo8iVTU=_?muIAP?6Mwh+21%MzWpC8f0UqpvtW-1zG%3;Y1E3e4s& -zEADElI46}J)qei}+oRA2FY|ub=sg%GD@W)%^*&*9R+{J*oCygmXx?@Fb7hDhJ$#q| -zV64E^!!P^bebx8Lu2QJQ{joF%{OrCs{+jB}CxcfGhyo>u!D66iOqvwWI)X2=q5n%o -z!Fp#)7NWN6K&IVZ)9H2)8NUri)}(!A*VQxK2yckJ58mic-3gaJa8%WRgVE=@!>Lde -z7G$wi)JZxuDP8(riOsGR(ji} -z4S%WJ;mx$q-DR6}TplPwkL?~1g-B70VI1YeZWL$n)^0Ix-pyDS{Z5}{EtAXbA(Hh% -zu$d3PL}?aY*!IVW1shM2y4=FJ}lTl!OWzQsveuyud18cZG++-9w$tRJU3uw$mQIC`dfpF%oG -zT(3|3?2dpkY}UEaDQ5WD5>;}yLeNgr_VYwqUu`{)k-shWwfv~LK%(Y -z@$<3`Hytk0tj=m~U*r1JLr&9zyBAiKV!m*1lwb&uYR1O~eN(Hi-DwP*)Y7s7`h#oE -zv*4U&&>G)Om5zlodc<*VjffsDez4lHytw3}OIMZFPzb!q -zZe+>1c!r7%uQ#;{TAk0cq)EoyC%M*|n02aOqEV_PY`ZsJ=JKxI1(ihHi}HZov+zOG -z`{kv+#AyDa7Bo4!dI$~^pTFC&KtJo7IA##IX3c|q@PpCz0pnhK(IRT~7iEKsgXCq< -zEXWcibC?QCO*8J1NBRz+&Fz8SA+61*o*;fjX=!6METN{Obf@}Zm*`{&AR4N?RYX*_ -z7OvcSX+2QGpIo13W)8XDFki>uXv_elh{t#0iHd);xlggu7&r0+d9;3gOm~)|kO|x8 -zvKtqHQ<<9QE)6#|P%q4S4!!}C52UD*u|ye~f{F#S+sgnhpv9;aXr6mbWkgzsc&R&O -z4DXB!_}*73-$ak|nZ&>K+lDVq+Gcs}jy6I*A9Oxh1GMal_>%1V(-lZP{fHS;C%$Mu -zYu|y~!h#)89Gu)cihUE-IKH3TRbU+<2~*|*JkDRZR@~5C%d~WE+Lyuo%*RU?^mbvXaUj=bykGaoc7J;D(sj9eNVpp486phCv2viaBQLjeR|4C -z5UR -z&|m$g<`U}1@Fuv^?7s**IFR^NzmiM6&9Pta`JelZFQF2#n-)?+_vVI_qO2_E#ruv2 -zPOU|D&A(+99*^EPJHB5Sv))6xa>jeMsFRT6)F -zWd1K4)$a@={Y)(QB=?vy(b;iSc+|qcgnUUJk7q5}+z8GRJpaWDot$8(?>teJutv2Q -z(h_DKnYHEyG@$o%TE`tQA9U2?bvN}*;z?pFX!6Drz}XL2wIFwDOEv7+ -zBt1AcTPjtexSrLo9=up8UhyzFh1Neg6JN9-)Se+c0bDy!`*qN*s3$t{c_+FB -zC$v5L-5Kx6S@N8iwe%uE`RPfW -z=wd_@k9Py(=oX4Q-|73ui15j0A9>VDk(svK`r_78rz8QM@qGZm*$B-Y$og&h%}VAx -z^k--R6wGyXIZ8;Dl317tHjXW+nm7S2?~T9g@z=VxQbMoxz6S*#(xUOj#+d#^3M_oE -zN(C+}m;Oh|n-^;<0h`Yv^qX&D+LA7XeOxW7af)2Y -zSC7H=)`(8k!#hR;-XtMOKf}uD#P-fZ4JG;6e`coF>>eE?zPICv@t{dm24kFn`Puv6 -zo5#W7rd1^lZBzR}&rfMj+Mc_0fm&0-SCoSAJ(Oa!V8I|@LkGsT5cM2;Q9w^r^tn=( -z)o=T-`lA`-eG=jf0La?ZE%X^%3=DabGj(Q*-+FfWqTRll_#NA65W%8MCHnaDv;DxA -za|6Fa@z_lMUN&PN!(r(lmoPp_zb{i`1K(>9cjJ`6btaiA-1Rr;%pN0MekW8ut5y>_ -z)E`=^-^2eXyp-3Y-tHL -z25@27AeT65-WRfb6&C!cja5>&uhnX%OFK$^3x}$L0SDb9B1!FGoS!&DXkib`*eU7n -zi_*R?wJg0-aY}CTK-ePeA^Pf0m=xBQ^~1Yvw=SaEH~_5 -z|N5?6wCOFm!Cg%=f86J`%4pEC!vdqcgh2({9OWSdrypKyuO-5$rfKzn@OZ?y+P~h@RlbP8y`B*X^|5X?HE%s -zJgzjTe(haYhH(6KBzf;Yx`LprF$C`~CD5IztCP)%hJ6|!zx`P8wtP28Lxq%NR5(KYV*!|Gq~e{!hNZKSLa5pY!Ooy2X|FOaE7(_sNr$zc@( -zz`^3W9t@`oZsyLuFteTDQVnNw3lGTbi8Eii=0a=6v-LLfUZMLcq*s|I4@cd<1Rr(& -z`K4wojHCW+?H7fp_PooqvF}Qy+mkljNG(l7Hb+;y5#_UoqGYn}G}uw&jF!fS*KvdQ -zbf+`bh3{q}(M14u_c^diA>>?Siw~;Ur_hs=o%1bY`_|{wX@c2u%epI5l8ymiG_&0_ -z|HRS<6uY0Ty;3tS;%13=5KI<<1g%`xt;2~QPA?(tfxpPr^tk@^ThZ@0z9ny-f5J-Z -zs9u901N^a4;zS-xtlJ+VsUwg|80wp*3hAP7J_?QbP56if{SuK&hkI``#`HLUdZI0K -z(Y@b!HY@az?=GcA?E5!lm!za>c!C%E+vde*>hwXAdgO{RxjTaIXA^*)0CSMo}0O_Q``9dc$M=1-GWeOdc;I}_-N<8rU#_G!``8}f)sh#qK3m* -z6&z$BqeBH+iwknif4xYn&~QI*m2d!C11bpBMt9|ycTt#&EZ4APw!hxC!^Byn0BzQM=mqyadR#;fP>hG<{L-EJNORub;MbMyXk2<7 -zZh^-XU)wx*)6CFyY5p=r01n(k3&-d89;^KbQA=UnSyv(RPyL@zq`$eCN1QCuvy0)h -z^-kqm|0_U9*h{O%@qA%4=)>@!%{)v>8MsRC_x5e-3}~xI42KxIOl-z~gh*pHk6&*h -zsZ2U5u%ZEgW8t$Bt4ktwo!rlP$sjOaL2&FW@i4)At2cdYrXPaHx@nF4Db9f2t{U_s -zZsrHaX|%*~FOo!PiaS13oQ%?~J1)%5PQX)Bk$319g6d|hjTbF=-_Xdp1`hbFUCYzO -zB0SPH8|#h&%{2_(4=TtQLB4=(jV}8M{9nf)2xivFcPbXQTOr3b+~2 -zH=D<^-(0hHpuZ5-Uu#QVS1l@qYyA$THApO$M%)UVre9Q6lx133KH(0(^RRa!fuwSY -zD9z6>IlzC6VC^^Nb9|PbQ=aeXwqa4^7;SO#p(n!RrNl+2G`&#p;Rp=*mf6#nWH?`S -z_U4N>eaQfJS$Q_eIDdpO8}2|2jnvUkjKfJ56Su3rVdOz&?2NXyBRk>8tsqK -z_Luo2d(yUR?;pY7Zz)|8bc>DdMzY7-^ffvpEO820LCQ1q&_~Y44MQUHImzeJ#Def~ -zn2r-8DS&_IW8&1j-)XYkORj7|GkG$EayPV4bK7p11NWg`3aG`dw+by6dt2P=>?{O% -z<1F;Hxsyb`hi6X&mr!gI&WrBjeI;U8bIak$pJ?R&7(oR}#kPtkJ?<&b@BR&vLly7N -zs<4iNDD_?%z*)LA#oxS9tfZvQ)28AnG2*aa*=E!)(bm97sAvt^B8>5G(HkSOV#31W -zs3JhQeD(Q<`Za8AnTQ5e$Y0H~UZK?jKw=@oL`%sH^H*8NnaVZ0fez=J(8CL~b)rGB8&`|%RvC41MetNRR -z3wIl)XJwXe%J~*eLD*x`gBs?+G9dkMN%Dud#4xg{!b#!CS`%=&0`ASZ?^rSNmQt_HQ>9w6lq*HrF>X{KqinFgX?L?KHxBveV -z^)~S7^2PQVM>X3$q{&}Pd6X0+#V6mpA4nWuz6Fjw*bO5<-lHk!d2Gw1$=zExbTeC% -zvAvbv?tvqkcU_C3M*G?n_Q0B-dZiqfOl^&@p1rRt&J{TfVrTn9xiyJsI~+^WJb#J) -zn1wLGxCMW8x5Q5rduPiA}Z-^2jUMWSq~f -z13g25;0Xw1+=5E(%9U;RZ5$5BE1~xMVQO)W{oqD2S6xq%_s8G*gQ?CwSxp~>&|>%{ -z%n&OhEi0e!1BLN;D|(!NZsa?d7`3(!DR_+Nqu`q$5h7tch%Rs6vp;>$Mg~fL7vbk=K%CI=pPEww;V9>ff -z)IC_i -zu2c?VgPk*g+Y?7h()(kg_R@#euSyNtsDqHyw}I=94bUZM8k -z^T};npqVhl%cKobwoXKA6)5(77;yN=xhXY{^#W*2ZPxYCbIqYX{9wQ=-BCn3az_Py -zGV|(!a>ITeM#K6PC4>3QnCK5#h}lni?L(=DY_T_`ssEaomx{b`6 -zy^N7w88um4-ht2oU`W-Kib+wOx^*SW#`bK)mU`hd<7UmAz$e)9Pc61i;^qQzujbfX -zPBSwn`XVz$@kxTYlq1%cJ}M|SNPmDejg~}G`lt9vhjvm~v^bSm)(=?&%RBcr1vf*= -zfleWG)1Vnz_HO5pWY7qf>ObROo(hh%Jz1U|eDJaY%}1$iopK=F5;gfzh5IH@0Y?l3M(Im_33_8siRR8&IHels)&>R13Mw_VOQ`_WkXq=ul^Q?#B;D5@xjouwE%Z_cYeMhvG53*|OTRxI4pU5HHwFV6AbH5kDSn -zHsu}hZs(=bYR)u0yCpNxy0K|xfS9{!COBp3>Um^;Au2nB8tp!ep8PVTj6q~ldW=7it^<@aG~SEq#C%Xh -zSJ+2*6N}XLmy@(uMpmqH5k#4R0*wa*`^$bVZxQ-Pgx&ykM( -z;LBmnzs~p6&lg)FDo0oQW|-UV299R`i>x0=b(ZpS;z=53VU@~t{eAK8)@GEU6gEGr -zQ6-o=8J=(JDN9z=h% -z!>6o6HUpm$Q0r#E!{@3?*4yDMa3xne1K}!9{`subq11)=rvO$W!XNHenngUM8d^cQ -z2(_1#%H}Utyw8RG*gQ$Na@ubs3u*I;7yL}m5sGy4fWwuQBdMgj&|8!hVmx}PewQXO -zF2M?1ek*6$da8hf*k%@*IZs>D1u2B-F+h=Bl+7>hX$*)cP}nxeQy*9C*^Us{zrYYK -zdP6=IL~Ak@Y!90t=MJQ5vG2Dt#nxP|PYq&4Srmtk61n1C)HxjBD%joGSgq=Ac{(J9 -zni$Px$XKF}Y(D2%Wb35G=kJ-LKOzt(Ghre@*xRpLTOcG$t*5N9+*MH1eZm4?%3)N1l?Z7m7KJV!4EoF<$MdXF3_^DIfsa2A>XlU>7ZWUrMulj7gi -z{gQpTtqxc<25`1XYcQp%V=WSA2PKi-R{danR?B{Uz5a0h7?(iV2VuR8GrcbeY3=cR -zDcemwdTCkESf -zh$>RKw^l=mJ0hrw&1+TKjyXMksE_`^$FUa4|0CR-^|9*Sq68R>)^oy7SmDW_?aI=h -zZ-VwErKZ2}42;EM^1AGHxt8@M+U+1j3px1}EEI%oCnkDwN>5SUTBYu3p11u1E?gg6@Hg$tXR$JO(Ifvy -z{cdqhR9Ak-c$2>0%h5)v8GC -zvEV(}qmNRgkKrYi1*K`GXbg*IVcIAS)S5QCw67S6FHh8bL)(XaYp>a0&-(kTj%0@N -zgP~VkT_p)tMcZ+R^%Y06)`V|4E^!(C!B#tAKd_Zp#Y%#Y*=Nt{QE36ouz2?%F0m5= -zj`$Msj182eFirhXjI|532TDcN8^m}KTgNXo@OYpN&zl?5o$3cZb+ -zY!UY0J19cWyEUO*Kv+=>9Jv))2CIxVug*6P*Wgt>z{AHGpv6lacVTCnX8&H`tqIz3 -z)@JWuYIZQmhyQprbSq9FBx^t@!e9xUV>L#ql(dBg_PJP+o*RQnrltO9YwguStH!x| -zG6G3f+$l8UBd88Hk;}jRp}VE>5r&N|w|FRwQ}d>7Ir6n>_z;W!*M(n{n8hqvzl#38 -zwYi4Ng4*eXY)$*NF}|1MONu^WNZ+e&0Kp*oR*En3O0MV>xLZ>{fYxjdT3KyosI*zw -zOB`?01ljx!VJ6W4$@0sic_&8E?5}L>=|to2eb;knp46wq4SeEptY@a|&sB6PI(j|)s31~5eq -z3NUGye1_^gIJ&W!7uyW8&C;h5)hg0m;FTUN_eB^2&rtn+PG$c{j=;ZO{v -zafR^8|DFyE#6J50tgo$I7|h_;+8Nc9rg}pNLsP~f9b~NAo^31dR44Crx;(KLXs3P*Txv!Xe={U$v0q*AUNPSo%Jby`%5;9!O^T|l#OcPFiBHO8Or2@9 -z%BMSlP`_*LLBeA$Otpg-nvD*>0U)JHM*=IZ5j%zViOgP~)9*PlMUDL@>1nNw~O!F^@Q5$*jcfS*vUjr{Ye7K>q~_@v-yJV5^(vPi^o$DVZiq? -zJcCO#>GHin>^|Yj9?#VP_ceakxryMj8=r=$2@ePbWnhM(hB806i;lxfGF!PP(5X>% -zr&(d6W*-wB(~rC0q;?Jsc*iMuR_<&vLTG*&Ks6b1oGh2N*1yWgN*YY`qo;V`aUTYu -z2%Ds;S3XfMTTpO4-_O2&h#%-Ui1?H=nH>=C^Qs;(7r2QLYd??hW)zf7IBHKlTF0D_ -za+T6u&`^KksTF9r!IwuK?P0D-5wdM?{lw(e2kdsrcYLBMZf1U25iyQa_r?Dd;G9KT -zCiIlD6;k+(ikl~Y(~E>Q-~Hhos+!v>$M1YIfRpl~?;A?c86uDl>TYvUnn7bvsTeLAyt#={iOX$3oImf#;WH -z!qb9SR1|bWp})QTBxQNQH6*#fPmUjE74n!VZ -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 -zUFA@0y}2GIM$g+h9%r0`tM -z=HDphQ0bME3*ue7yH&d38W2Q;R=AI*v8--)v3-f>VMC$KL6>jNLkx-R)Ry+kY4vT+ -z{GkIv^N(RZ9#Y`7qGo3wK}LpVy8UpHh0b5efo}7>YjW{jt_#x&suT0&CjlPZ#%p(E -z3$99UT&lr!GK_=T=^xq&*5CrTXq1QO)|$ikdg!g*&J7qDk%-(I2TKb!gizKiy&PHN -zjUaK%@_Mw|=0!pnHNV)4EKG604G -zZC~OC%)c0Wz8h-PM8;g+MB&-uYMEMIVo3jB5+BZ}bC8qw#7~yH!0A}@)u*R&zud%V -zUpuLAN`^fz9()RzPeLgX*r*9a6+#x%Ssg5xOQt3JgQmjaGgXs5tE`^?SHGh39)o4h -z;(;Sm4b4pKACqYSliS|=Sw^V5JhzvilgAG(GauIiQ*iMLytP_$3T|>+L967<*5S<|JNx^;X~-3Sy{hI}vHs -z9(VNlI6kMpECQ`y=i1zRC{<5QbybQ{?R?;qhrl{QmD5eyz}ZQ^p5F&2SOKyEBe3Iz -zw*v}&yz-wmLPOGkj7jP}H?&}^{g5fXPiYP4lmL&^U6Ak>bfhEXxGrvVR_@}$k>T9! -z2Kjqx4Smq@t`hjgHj+WFFS8)LnXInL%I!?^t3T6^neN<6syQ8@J=8^IxBw3o5F -zr~z<%<2+x$dv+%nUgywbij4_&?NN@NC%bRtD#afR-x{ -z^BVe)$rK3Ch?J$qNC!z*Nkfb_LdwinR+5$$wU*}09%bAC6o!D-k5h)_+itmMr=4lN -zzU7oZva@UeoB*FDE7izLG$DMI_?;bm{6^zMbot^FA|5eO9blXv`e0QJ_4+yNSU!05 -zX()Nqali20jA8;m$(?C{FETTjl!;g7gsL({>E&9bm4S9J1WS$ttWS(Cjgbx%PhvVE -zLSeXN4kQyL#-C`6ZjZIuLo#fcPmJ;AW<#5oWcEbO^Veg1k{lwjH9zx@@JNb8D&XNk -ziP=6Tj4VmJJ?fqO19uG>;~ms=t4=VYG9%5V~^gZepN9YybXhueiK+vZP7WMjf;%VfC3%cspH8IyGo|6v#UFKlO; -zd|P+aJxP*@KXNS`$F*J5f_45f+?Q-@V|kHVRcz-^+O29YMuhRy6-6t}^%1^O7ZQMs -zq|Bld;oX}y_y1$iOie8VX5zuG5}8m%L=hHY&YNO6e_#H5Wbgy^j$)a49ih3a4Vd)V -zB9=p6xT(qpr%#Y%;ZLB0;OT4J0g0FoAs5)w?SK!59nCd8Q~yFe5)d8T!y|RiuK5!0 -z5HNzfk+yY;VtC$$zKf$k{|w=4*u9n|S|`ma$vU4J_0pU2=J1Uf(g(0MjZRx;?cM-O -z-H{Z7Ye_*)X6aNB3V}6ZkXT3H -zQn)_FqcaY0LgLie#lIsd(33^3+HcrbZ&YnDa7zB0Vyt`~V!i|j7y$B5?~`uoKG3bJ -z9tj<*hE!2xX5;(lppol7iTog=-j1=x|N6!>nbr8VTe5o6=4OGF2S~BDe6hvRqT(Ze -z5OENoSC!Ewhk?Ei7$UAP;(-EhVA8!FTR*_=*Wl7h^D@JUqRUH5GU#R!p#hAUa4WPk -zUi4V50gT!$)Ayefh>wb}Gt`QHa3bF8D$+^8x4yD|MD+pMyro@~@ga=fy7x1tBJzXy -z;}`Q{PcWq8Qm4MO$^POKKb(`6GQM=t%EPsOCAfqyRMUU$0I(x)Z+!5@(UgaxxX@sZ -za1l>arn-^W(k)Zm*;5fDg_^EYZ1jNlkI)?vQ#JZc)%w&Zo$?;>G!m0VyYr?01!Q=h87H$X{o$d~!()YGe196wA)^g0dXnBS5} -zocn*V+eNavKLF&jAP?Ygc46YvI%oxoqqps&J6#Jc=addp;cMltizl@m$$O&LHG#hh -zN0C|3!L3ZiSk~tKz0dZx1wqjUomWm9vMArA5xQ2JE>w2YG+w2T>lOTf#E{n-rG9y` -z1%dQr_QKO^3vsN06q#dzkQF;jhFvYo19#Lwq4q4GH!P-M`Ybl)?nO5Gp5|Cwqt4}W -zR7c*^1QxvW$r>3}2>7tG3Tquegr!+(%RS@T@%=aKrZ(=@y36)Tek;8Zev>6UU?Ds% -zX7@Th4V~L*5pY=eL{i9;a_(xIVJmrbK=Srp-Tf|LFES|k? -zLfIUi77Ie*MxGOUe93@CfT)eHJ8H4B6B|h1IFV_wv)4Ua!bvX1H%0`PoYcl~n}ht% -zTkk+`OWi_%J`O-W>%IH6#lDsoiIUh!BbBW;Y;27w1U>V<0-Hi5r|(+86v?|x?)XzJ -zvL0$b*QWI!#TJ43CgahC#rxCRjEA?Y?m82z_RRej?G)4g9DTlQOi`Wi;_*xDVVk6s -z#%T#wkThwPtU2Y~(+JE0Z&V|X3gGbi=Ms=q$7u<3r*0~ul -zNIAW{a0_9$2ioC||LTBQB&S4!{Z~UoR-0^Na6?=N(do~C&*d+a%q$rL14IqeH~|Lw -zXIrYobhDkwP>5n5E2=F~i6n9?LeSpw?9SLt{%te;7Ag}r%b2;v -zJ~JI)Zr#76>#r!+e*;#pN6q^6;Zdd-K>zzT50#jid5zOiE- -zja|#T{&L*&AnnsgL)2n1=N=^U3UF`feAOaHU^&AX`AQBqt~GI~UpCD0U0mO+QK^0Y -z%N@7nl+1qyAZPaCuNgaftPATtq>(ncGRiHc9Yo&)9af(wrdD-mj>EH(P`n3tGpSyM -zXiDf|$p -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 -zmFwyRS?|B`K){F|xR9P7Zts)+Zd#(%`crB6~e -z<1GSQSbIFH<0;o)r3ufPDjv;De}+eQ9?m_TsTeUM_=$cxBb*hd -zaVpg`R!({rc$!IaO;KnfaVFGGaA_%CCt7_qk%+Z;YT#9BP`@iPz -z#t`VVeI-fJ=!II6T%i8EcHo||Lf6QaaDzp9rdJ^Z#6UBD>j9E&0>4=E?17WV4Y-7; -zM*~`ZtmJx@yWd$G$KuUOZG&OnK(0ouJu1F2WTmXOv!}pUnS|Nf+`M4na`U9&2!o#M -zCZBUU6qnS;V!p4H)+-R)Gm1-c#a)j;D>JLKi~z}O08#k{=69>pQ=j|8lbi>ea<5m_ -zWf>ub;)dSL?>e+;@Z9DR=lk5jE}dA0FSAb!5e%l0gs*`vrPQj}lTl!z5qbe;J1YUU -zUJ)@h&m!I}*#AV5;r@Tp6-&$Rr9}ec!rqJ{8KVLD|G5teU1XiDaS+j2!Ps|r -z?E@ezd*tA|o*U2mq=t)UcT~*MK74YlfhqQQ6BE;m~2a?=d>~Ckrp}lZ&}R -zb<}O{qs{Zv6d;{{ -zCum(ni?>P59v(Iya+tLrq{=P3)dXILG`|2z@)yRV87>z4FCz#(iMpMWziXFl{!#}v -zcSGGL4r;cGWQy8*YOEv72O3DsUMw2Y@I~z+z9vMt5~RN!eY9c$q(F;U9A>$E&yF3l -zxJEeG+*CRt(Ij4CL*n!kS!gXdlMaKzc!c8z+y0QG@m|_B*s5N*{l1ikDat=?Y0O-Cb#EHl{< -zY*XRc=pMN`Kxcs(U+4Stcd8}|WR-&(IS9lHtrud>_f3jbw)#M$6qq97^xZwNqs4a4 -zl+*n>AyNyNTH2TaGQphLo2DI_F*p^JUae0YkP45)*|YZx#Z`%zoW3-y!Q@;lLPSwQ -z8U1;f*PPGr&7;azFT5bKSlhlk-`wZai;vQ;4v&0W8fZ`wVOH0tI3+Tto4|RH2D=9g -zoG9L|7~m21*-D(gzmY~i=A-yWhU@nis+&{BYTJ@-e<4y1x$wLa0;`u)nX9M#7vwBd -zzA`v3QonZ@8iv6xd5V(X*>t$Pw3rvl1Fi~Guyh#6UbU;J$hn!gJl}Ea6gOpVMh;Jf -zlTOe7o{e&CG-EJC4Nsy3On5wTIDbQ#E&<0h3Cx{&;F -z+_!1EV6gb%a>d9wXy_{q?Te$i%{R~yo2OYFuf)Al>^2!U>ojy5n|ieh)Cr#e&Y3qK -z-E?>^(=qtYrt~F#x&JX4*Y(a`1MJZU>5FNT+;UGcp*Py~Ar-}&aPeBDGxQb3Eg!R4 -zWcuv2#!EeUbQ70|^#2Bkl{|#*CebH`T@7|b{<+_yPN08YU(TrYlMRQF(U^F1s!K<{ -zKSJ2Zo9c2>QkqAsX{-(ks+|aTc9U|+xs`*xMP!Tlclp{#j$-UHFVJ;XjcFb$^MEQ7 -zv@E$Nn)bzV99SMWn3Uq;4F;TJugHAKr}$U%beXC_lA`5jfwnRECqyBi%Kq7z?z?5X -zndF=x6*IbW-Jh2Ouo9p(y6{ImFuRPh%k<+wc@gih;72biz8>xXFUIuzm^yEW8?}AA -z;#l4g2^&Yu2ZG@7Tfu+@yO+f^U?xVYY&R8UXb3*OK_R!*WWht0BHsT -zXInd%2~VefXerpebqAYnSC*({fV-;~#>b1I_%&BTz`ptoy>PPRL;4=ymSN=3cWRIFQdA -zFfPDjf)Kvr2vKx|L}s*u_RL0DQxiS5?BDtjC3GSskCJYA-uV^_FFhne5M{n?PYI -zJUIyT;?)X76yWLbp6>Ny5qO$O@b!qLNGgK$?l@#WS+gNwr5GlYtMVQG`_EV!wdf6A -zjJwVK4^~_PibHlXY)<|b&fPbJk!-(Wi`tDnt+4uYCv>GlijiVsEb&Ua#nEmBvP$M| -zgX)&P!gNQDJmW50{a2OCxKn?LUiA`C4EErwWb!m9{4Pg6qAW7^GMN%Ixy5>c&-f^R -z@O3aSQZgpa$&kWf2B)0B0$rQD@BI=XQM>vzH-H-4;vLtmNZuu+^Ed_7IJ(Fv4-){= -z(Vwya@5AVWpozx3^7ejBzw^N@8lpal6s$%WB?HMLSdI5yGEqNQeMi?7+SJ{2JJ^wmAb{c>2{F%hD75R3Yi(gAUd$LtAy<(#y -zi29pgWnlqmT6zGS5hV70-)z+M2ozl#zm~HtouLj;&Z(lr;hc!e=_JsFWZ>7MMx4&W -z1FYgjlP|aJ=TVuP#9RErk;>WEFL=n3kk=-0a=s -z^%Bf;1ir8ds{Y2HoyAI8a-v`V4^e`4XgT>f69N2DCBk$Va{Y*T;cZ@z4 -zzV2zDV426}1&I{DFv-{S&W|bh;)Jw251}*xRr+3;H-@o;3OYRVL#%^%86<=9U4QYvh#12OrEy{q&{RNr&fb -z)xK_SU|U9Rf+hjw#S89JysuRza9~b`1yKaVZRw9wk6p}f!BB|^8B=vzk<@=TNh3Sp -z6hB2kbEqFyulAieXbghpcteQqLcW;&H?HCx&{mbPZKdYZp^lCVPeR -zzjjGIWsd%MED7ZeE_A+8~^%z)?|0TQ>H4VO2 -zW|%947KdH;-9RSS4mLeMZvKz05y_J;~BW79qeNnv$Xg24`3UPJB}%i4cmN -z-64(ZRgD9aoHGqnVe5}T6bob&3ysQu2h@oXyMD~8+JMXkX$LW3bLvX|Fw{Wam;sq| -zdY{tL!oK#u6x3j$hCf!HS7_zw#~sQ4LBU1-N{p7g*_6sTFFo{CTZ?2)Q7L|l9luS*re|4A|f0Yn3ih+I-%!ssqk{x4%l|&9hE*#hc*k}M7 -zzJ=863L>84)=|VQ;p-sb3yhF--af^ -zXb`b|F9+io8jwfsCIG|p5nwAIe@y;f!Q`_Neim6Oenp|(&n{DHopz{mwrhgA`?vXBPf4D(+Vv~dECo-_V0v?a9^Ib%Y<9CX$q -z@IV!DKQEoO+)ANnJ}@LClUWlFVLpu}rti^weL7W-)MvmhHd1RQgOUSW89% -zCd`WrO7fc&vJPs8#KW#Bt#H -zhw_M4h@FwPulHU~QK}JaWAl0yQ|dwr8+3S0{gE$lO$Te^1#s})@sm;Bgbn6W;4GVh -zCnc02;}uF*+^1go=RRse&)*$+&z4Bfrd1n95&Tb81QMEIi^t5XM)Hta3CV^Fw!F+U -zR=wuRVXEI#312bdU3>JY05GN646`RGba;P{m$HlI;rA@^+)1jy|7pJ9{~IhHRp_h# -z8(xa`5b;z_adEFay@19*8N8cEg!Z& -zaX3LRNpT~^JL6YZ`it&sw|@gn$KoX{vL0O@9`Rh%OC#%nCIR2^^0l)l?sinx8`#cH -z&O%R4DhNcr=RN_-7Q|7Cw@s`8okRao1zj-H_>b4-E90OJ(7?AZAgC?_9TCna{EO)* -z-4f>K`D~OwMGQX;JJQ -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 -z#(R8g7))u`dn@9@=E7z&dE8+$ -zF6~M3Iubbpn6lEIoRiHcj50fK&PwzfcQ&q>{sq5(AIYTR2qTzTg^bmjZF^3-au5N% -zmV_UBja@I+hK@BShd#TM7%e--A_VW@UdV19npf{g@}?3gJ+>q4!DAFZ@&yiFOgXQH -zPnf{&Q}^snMfq0)$`nokrb5Q0R>#dV{%!#PABhd`>g&6_dqT(KGt4*{ox+T_!-6eT -z_hHr1uGus$Q7wv^DXxW)Y3ivD0?Vg1G4-X*t1_V(}LRlajDj#ULbmH18aG8{AVAmUo{(cy{a${ -zeyYK*)=P@r=KX0rzK=Fio^;YFDsGZQwBeUi&m$2JwZ$yNhus*$f_PZM&Gi_q_apMj -zgViY4^9>SXyb>&O!vb+*3v|;2-T=OyqlwHvJpFnEVh;w!h~;023u|oX*p^Mto&*bZ -zSvpP|TA>PA0EZ?18^_$>^0#HRez5YCJ+{1#6)WsfqX-5xl6gmjTgaS!A_RRhut|Z;8E`{Il?%nG -z@n&N@_#E5fZSr-5oyGeuHyv1Qz$tq=K~%`1jW;-7vkAwZIfU_Lh7*;t-a9kx5yB3j -zE9_hv6gy;)-`Ws4c$}`MHnSvjRvsqdc10;4CILz_fN{;g?y0|$pQW@I$VSc65oNXIv}B}CP@VgDo19B}fG>jJ*K8zMr$%*$`U7$QkEW{(sH$ngB1m^imy~pO -zgLI?PozmUiol190NJ)o;ba!`mr@(i(_x*m}d-m+vnVp@TnP+x3W=55NRZXyo6iGlp -z4q59HNayP1lDt5XQ#b@J;yNh4J6K6((Aspl3kLHS&k3A6#oW7LP)*VejlA*Ahp -zQ@PgFe0{Ys%$STL{N=l3HH+tLb73bj$Pvp{J2%Sebo%&|q74Q{fYg!L$1))>l>t$3#W+kp3 -zwSVkO{yi<{#1a}&VIfooc5q~h=WwoQLPuTsabEmz986@H+mg$wM( -z`M&jEa#LKI#!`$&B2nvD++ViRCQ;RYe>96%y{NrYKr3o%tRaFsL(NSqsMiIOhN$Eo -z*VJFa>rWTT)z10Od9U^=nSv&Owg8*7aK?D?9ZW$@Nm;$5swF3if?{sf~#CGCm) -zGaYc7ZrhX%jwK>fB9EHC)w#)=zA-QY!PNuaPoStHut6_9@S#0~xDSX25<*84m`NbG -zawS$*(r;>vg9w-=75p4lW74p3ep< -zs)!m6wNd1$mOqbZ6e~rOp&T4XR)0x1Wix39uG9cB6aa_V`OQrN -z+_M4LR~>n924@{HG+wu!d@+ozV<15WPXFKbm<|-A_Ol?(xvMgF9K5_1yJxo-`ZJR^ -zNZfdqR*}S-iqXizZ6qc$hA@Po$+%bIbO=hy3Z17YT){;YW!mXfAYUOF?(iI6#vMRO0RNN-aX(npuO89DZTg0G-AOMaP(J4|yy0D9rLR%)Y#qBLN6S`!G!RZ8UE_zSfvz5qr*>u*O|v{-Z!} -ztPkq$$$#fluR_F$~~$Vxc_#MHza%t!R+FF>X#yn_y@|1Wd$l#m?l#G#tltG -z4&Aw6CM7xeg4nEfbKXuw%<27=h$v>{ls=0Fe7=qHYG<~DlR3v=cAX)Q$uu>X#7$>~q%s(=m)V(>fBc?)YmIYl%y0rg7)ZydkFSL{drG*X(?Fob -z;s*c*9ifKZR29|Kp|c_D8)lFnLGAsN`slwJ;y8l-At1X!lc0~Dl(4&)Na!^e0oWM4 -zKZOwQspq8C`ihGx^Li$n~3Ie+kdj@&&U(I -z)H_UyHMpzJwY}4}$RB#GodJYMxbxbU9=@gQ`OeH?Z1i?j7nBnxW1SN$js0h>i!49b -zhPa8th0=;#vz^VjM8-TMTK?%HjB#$Ruz9_72Qa?Vj0eUE-1;PvfKm|MKjw3E9^aQ_ -zzAibKk`AX&Y2d8Pz?bmc9d@mYX31CT0mrO6Y68hOlstHD#IBh}ML)TH@nM4%NqwDl -z<0y@$2SlmZc%I!oL%xFybGZNYJAU?eAYkwOT?*q1z0VThvd962^~~Yg7%+DTS`(ao -zUaOb_{IPyQv{yPm+>J+7PsUnSjV&`tQYerR6q7aqy|J96syjj3rn?Iz=8HcnrhlJm -zYd~b60OtF~Z2k3~-G?5JgKpH61utQYXMg -zIH7L9k)wJir`Zl*-8;SwU3|yk(vl%nm9pg|6`^lTE2`(*VHYelbwMxR9fdC$1#XI! -zGt%@B*tLZ82bC5JMxz6x64nYU}OQz*_;dejb -z2;?JlKOt~GiKm@7YSaWd7ujtOS6#oApP-3!9m}#GtZWGRVyJ&wq` -zmN=P$sU>)3h!u|eXuogSROy`~R{zIS!=(Or!HnS68@8rxav-d)&Xq|V@KPV|n8vco1h4bP -z_(;-UC8%qeLQ`n$(UCj-zci6KX6i{^#N~59w}1n7tPRw#TkU`Ox9*YpSIa>ukA(BH -z!bA<%Yr{?!|7_%ZHU@~3>Mdrs{mO5xcCCR_4?wdFJaAm9qx0@=ymp&iV*PhkS-qCGH}8A3Y}u7#ZZ11zxB9VEAvYz{dVWBv -zTU?ZUbEj@ZB8fG|IX_+NIg`h*@)VIHhs>e-X8@=p%U@}& -z_Kr>ay9RQrm% -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 -z`>CvZXka1YA%)(FW#9 -zkTAdJ-y^MhtgX2Z@xpPfRbRv3F;cw>doJ9xz1oh0^8JB*R>TOBgXDW$liCW-BL`ON -zhLT^6O;1<<^jNt;W2!vgrd-&O?Pj_? -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 -z07`*CZecPP -zekr3U8&%+7rTdEOp<~inb`#rcmq0^g)7Ji90UQXuU1eW@v2gRXy<{c_odeHzNdCij~e#)C<#H=pwu&|Js! -zi5F{NLoXgMiNDWFmIsc(=JGvjIug=k#^1E&*JM7Lxxh_HXFnjq^2C{@Kvbnebtl?8 -z%Fz1#q_w(K!u;4BJ-&@z`%a^FJz^o+k$2vbRhuX$B0LaZh#^Ipwlg5y -zVXEkFcTd#w0DGGwdhtq{sS3-Dj_|8ifB%cyQbG4V6T3rV-SH90?gjxrjk(tiUbq_; -z^Sjk4v~$J;dmG}bUxBytax=i_xKEI;6Hb$h$U&#`cG~^Y(tB2f(Q4Ysk{+Bi2>jw6r5U<4GVp6y?QzT>`3eU0Dvfg~Pk -z)>%FED&n_KO;~&*5nFlgNTGWZ=QvI|6!e1MkqLMAK%TNZi&kKO*= -zbc)_6YGczF6#)LjA!{xjfl -zPg@8P)KM8Vm&q{{D=5z~_X10boqr~WgW*``_Q>p61N!z_=_!jM -zp35(a9+5?opjNR?;ys#n`gf3qH(Uxy4uFo$fEEjzt-<9Qq?fZMPGZqBm}#K5?!8Ay -zGY7ouA_%lQGkF_{0sP-yh6l+~?;vHzG`6A`6pwK)r)JT_2L7^*8Y^{SrPo5TuuxV`v8O@S*LHi-OOGg8Ou}Ixk%t%S`-|ragZqokH-CYE`^OCP38R|JDtr8f~ -zFN4Dh-*LRyPq4dX=k3KNZUVfm4B1I$ZyJ|vd@fdWJk6*giM(>-j!0F1*UU|m2Wu?p -z-8h%|+D;xaw}Ft#@=nE>7aMN&$QhA&X=;OyC`U!Qr)}xK7M)D()*g~`+V7!%kNK)~ -ze8}aU|Ni8I+{M$#jlP@IfrC`-ctin4QG)n$vaE}-NaJWbg1Zj`(MgjpEbdRG%KIz< -zfo&hgALyW#7jpFp!eFOibHeL=u~ -z$%T`ITmwx!!vKEJ{k>L%X^V7y5vf{)?q6w}J9tv+)Z3JwOwlYh1Esm -zNl`q%)G?ndf5>LcKVUx;zcb+gt&!vq{GSjt&t~SPH2)&;yAIhqf?wwWz=N2uG-jg& -zOyl3_aQ51##WG1F_{h86>3c{!FGtyN;)4WxUJCjYY?(>NqPRp6Ia&}9r1r&N1bBQVgB`%n -z2>k2HYOe)V*bN{PDQsJb$G1;Z27qw>>!{}73K*2=9q9DW$kv;BSU=h)-s1#viu4Ol_C`J$*D5^W@%QZQnKAAFqdLhwx -zV6`M+`pJAYq#OKxN3|0dcAVf2>Yw+9l;`LZEYz|bExZG9^uh;G^@VOp)*@LKXS=|3 -z7C;BO<`$fNGo8g@CAK*9sNVz#dq6;fJ)I~uy%^jQJFuOhvFpFR%UHVtlia{yEQ9YY -zPZs9(3+AP`k!l2>3NWT@S+?B^MTxwndsZ`wNj+ooVC|mvryCz%Js@D66eV&du-Z50 -zL--Bze?;5iASc~EJ|-V4864j(O{@nG+V01myE!YIQ`2xo7LhgBS#+j&FOIpK)U|9{ -zGieF~l^);R{kAKySAoBK2PBN$y;JLE;cDwN`aDX5$23XRUM31(UhP0Jm2@M4uxBXj -zi{POv=h)N0#~RBpbG3P2BteG4Qt~OVuEX%UR0S$ajR^eXd?dJLf8PeEuo8$k*|;(8 -z*lxEWtheH)=26D}e+!6ri`%pEfSv({p>#2g2rOPRzl)%JGV$1P?&+8rb$)tO7ZvEc -zfXz-#DAA{c&_bjyq(VqWJJu3~ht5iQNBsMq<3oG)&s6rWf74u$K&Gl#r3i{$;fCc$ -z?F|{jLs6dbUZy)skX0SN;(V=fBI@D)WEW*|LCBEaK_N$;jGEmiT>cEmn9WreX4`0?VssO;WG-Rhq75qt_ -zw?~&DtqReesgX#xuQQ=`^9TK(8xvA6)Bmx-%_FtpfTlcFB+n9S0m*Z=iw;}GFy8&q -zwX}e>9%QY`p6FWqyGbfP^Wf-PGS~A^D>Dh%LEp5g?%4(AAAt57s6ukIJ+pHc6SWPZ -z9pt^k%WUS0_<&%Y!`ic;?kgq_1VS?5dHgjHt@FeeCl^ihS!H8;=U3cU$%F#V%9ra# -zU+A#^nS8Q&AxT6I9DT2p!O+E7{>l>Ah_B(TL}xlNdJ`&yLT-c|!!+6|Rv*nZ3M-K3! -z9d86#Z=c5jiZh_06ezcLqL9VBQw(SpJ^Be1^unQ91r5=OwZ*-j2*Kh-QT1mVF*J5G -z)b=7Cqjqmy{|l5{du-fa@+qp#6X{Rpz|a7(II=iF#zm#%O$%50R-JsxS)J(s3_>1~ -zEEe5_cVS8yIxH!Yfy5D0g~)rnM*sC4z(rixUh6uw|JhR^>=@1eK7n8?#4&diu^nV> -z#C`ROldwkL#2nv-a#TD519qup$8$zh>J!7Rn3g2NrsZqfr7pYz2MxTQNQnvqjUQ-^ -zJF750{Ih}$y*{kF^7-t*+5GA4^x=*lLP&96pZ#EdHapwZ5=#wMdSeQDOrd}H_2^x3 -z4SI3K1jl$wRhRmzf_d~vW1MPC&&*}mV%&~0hq$7cI|LAqb~+F%QIS!*9uC`!iEuL^ -z%}A^`XOgHPSRU@*N{9McQHxZ%@+11Ix!?j7_8i@pM59E1&X~o?-E{O>sqAlQG)D34 -zLm$#qXf$nk&x1_!9QzgzV#^gTew-aJO8cA6%4EAQ^Hn%yUW=1+mLT^i2T#mh9l96J -zBcYqUbILUc3YMSQuR19o8>fT`lpSiv|Cp!Q^C;Fm_Bs9iw+wN+{n -z<7WJ3EZ+}b;MTp4pMWMN{ZNEBQLh2O9VUH+;Cgt2Y*1ZM*j*y3I^uAYdv}QHS@}KB -z_=hW -zM!@%$A{2Np6%rU)`yxThcKkrh@ehoW9$ANZVR9Jv4R=k4&-2`qtV92rt35Kfq@Cql4ldq3Hz<-lneK9 -z`!ThL4&&!AfwE(pln%RKIV6$fgk?diLXDBrAN6H-huAC)HDnbCJ5BlaktND{?>nTINKz{Ia?6cA5y)vbo)Dk{h%BHA_J=LjdFmEdTXWq7 -zKZnjAV^bV37h-yOE$+lNm9qx(>bwS;fe4LUe5SaaB6_+!w>7Cx;tB7yN9Yi%? -z%QEUdQ_$uvw}o`K*Qh_D{X! -z^z9@N0taRZNZ!HfAxwZ>WRaMSAiuJ*M_>0!S_AV{Nt$T@E!Dy|#1oTn^kJo^vou!f -zrmD^R1Q@oN(0euwbNy`150$?Sn{uOTdVgGd0C_3^ObYDe#{B#Vu=DLJ@YpQFoq_PC -zUh>}R4%REi1y&%tgbeFjT=Nn&?l!k0nVJTe_0a8k34v1iJ+(>T%qKA_ -zzaPGH72$Tz`@XOaQxZ3hn_Z`%DfpvnQ{^ej&ZW&GOXq>_oS;XOHmtt6(~I^1tYM3d -zC7|zF-@Ac059;@@(`);nw7!o>u>V#8Kb;hRZmUKhP&jlZPgCT;da2;&_^wnSm^O;v -zTJi>j?&w7QgPb9C#DOs;b`KS_FmWY#fbWmZb;}yBtAm+cX -z@hL8^ST-QUXGR9P7r`6q>kxS>X*4!os<~>qG~|Zv*CZ;op>CPz2 -z4stX8Ap7+BGUZ^!V@k^@E077(a`NUCZLv7H#=b_Bg|m|l$jMk{e&m}#nVm7J-CK4M -zWc(=GY2R>NObZlapgMAik?v%!e5NGo<+kdC6(!4w%7DkZ;=~As2K44G4C^ -z=_%o}HSP{I`VckmsJUyY>rIPCgv#uFeM_Fs#6a{mY&oZk!svW3!y;4|7oc8&w(6a8 -zX>=2HFP^7kbeVT?y8%gz{hf*Yecnol;{@5Px1yT^4Y|vrG5$<`p3bDUpc2Sm?$q0~ -ztc-rU&=NRsK!Z?JmQu-_yweM^G}-Y`wRYA|^&v1=Nz735M#p| -zY6}lCAIcd%5YuN4Qtg(Z1%t_`LP>~hUjil}4VY^YepONd85ph^>gOE(@!i)30E$rr -zLCWdb<~}g4ZGFf4Le2BA_RTM8Sew@#P#Qq&nWcqEZ!^Cw*m$zi*nd85LT@qXtGQVc -z#|;Aeok8Er(tjdh(9(8=I#`anB9$*#xUKj{Z^&3Ah2Jhg>~2Q;>#8dVn0e&>hHH?D -z<{xFCGiiPO@7pUJ40z;Hl$5vyarb!^-ht$zPK|=ZHUS0@l5oxnV=W3)09Xg8HdMt_ -zLdtmb>}6l~UX!nv895iB>mDFMqqr{suK11GGa&L#*kotGVPD9iN+*wW0%Ns6?RK@OEz*`W-Li{tcf40z$ot79zy -zD*PR~`+1r%Zs&d}l|nVZbi6*HX-oqD832<3i}~?vP@TA3G3BQco)p}D4D?rom8NFo -z&?wMcI>+(Ka)iL`^^%TsChxJOzaiWru!6n10H;q0y8T@GG*c01G1u!QiC?0TAP$6z!hFf9E2`{rQ6Hba>JI^& -zMW}3|2srubLvA39Ck>hVX1UQZ64TY-=chRG;f%7b{y-5_A?M@I0efzs+<@`epSbcI -z?!3UxGOQZO>n)wKf_+>wl=eeam?8Ea$r5}ua2ZR@RQg$o4W -zY6Dp$*|~)nXi-wj2!1N=3StZaEmBhHAv^f+{n(ioO1@u1lK7kyGr{X-a$byO62u -z{KxbfQoJ3`?R-NTNU7=(TZy3Bd3@}%yD(I2xs3~ISn2thlO2*34)B}ZvTw}O8KB`tNlvgVDTCp}jMxA4IwR-$6V~RiOt2LGx}r}BCEw|qaFWOmb13-``W&@qjp -z=B-q8sF^l8lPw4BjO@GOR+s|{MJt@ho~Akb6q?br5?@3vv38Q3x -z>N0lfpooN(F-X}5`a)zY`qQJ_mUZd}#qXRkRby5scGb*VR&J6Eq;h@lUL<8s&0%@Z -zoud&~NjBJwmW*9u -z)I&s>-HWaz!pn$KoHDIFwVqr(kS6kE#-LyWcjdyN!X$1sOPr`1iCL&|`;ZqyfcnZg -zAS(ObC4@`G_J1^8Wmr^Q7nP9iPU%LZyQLZWMMAn$y1PR{Lb_X!MvxZi?(S}+8~H9X -ze*buenRCuPvCrOnt+ns|?H&HIo#a|nfUT+LCJ;+h?+q-_F^rsEHq*vC3v61BMQ+#Sl5ni5hg%VU%clw`D; -zxs1jkS8pybZ!68j2_si0zA;1XO_NTX!<=-rmIM=y-*r=C*PvWZ`ykQkUDiZ7eMzz6 -z>(|Vu{^?sp@B%tt&JWV$L!Yf^l&AX>GZu9E(B%0!ljkD79199^e=w0CEX1j_6ZVqR -z1K%NNN_EtDB-|tG`8R+edWtVZT#J7>aG7 -z1ge8?foi1dI6@m~%75-Se~7x?gG_ROcy8eMg&zah!sK%JO|*iouY)tDamy4=R72yf -zR5y-f;7rUqtB~#&kTa%n(4q^<3JJd>3Q|haZE9Z~Ya2oF?H*Ix3 -zEI9`3-ZHH3+*;9Sx2Y?A+JEz}7 -znojm4PK*=9QvW3Lg5SFUP6DFZI;m9p{^zXvSS)177g@SE%y6`bL&d}{#`vsIGV_%$ -z`)#KSid1gl%c+QiH>P8|p&aI~Ex=IpS#@#wlkFACI!M`C;AeeKUzQWF< -zv`fAoXEPNDWhRY#?917qT7_@|HoD>j%wCu4!ok|90NKG<`BHPMy~6IV%`;?~khp3? -zurWL0b;Db<_lQy%`N?GvTAV^Lp8Wp&U4`0UCb}PZ;MIfFom%MWck1V-S`^{pIi|e$ -zW$s)402=~u-6d4npPly$GWVS{>O=3B6mC3T+yo%>HuvEZ|E!2e$A}CUKXf~y6N+VM -zAH9l$(gOUCzYl@fN~1DuEdJBI##c^ -z1@cdmCzY|nJ^$N0dHW#RXt$Up2-;4R(}Cpk)<8)H`>setZS(G+aa|uztDT1IsSplU -zchlX>flcTz5EC!q$$RGIQ{b|46lHaBzZb_5!q_zk0Wd~8@Uq8BjQeGR!EYeFXq4NC -zS{$}p-*K*+k3I_&&-K!0Cih2P -zo{)o3*wSISt6$~cu0k54f+=xQp&kZd1@sNO->L{kpFF@dZ>0I;PPu9cZDa0Jqm~ID -z2ytz~2;T$E0#CXDYAklJ-`eQXs=WmLmzReyEpR|v?i`;wOoAe6E4SbBkKiXQ2kmv> -zsJ+9Xa=AuUxO&g;=L|q8`B2pf&j>L~Y8CRucslP)7`r?k#r^6! -zrm+Y+w_hx2AyizUGcLfmY0YiEN%n0FDNd##jd_?tTo17#o-} -zzV9^P(vwYV)ubCHccoN;&VX=GN58$E4aECBHwr1Ub8n~nVugERP3_GGI0^clG`Lvd -ztfKZTAiD`D+e%8u&D5jGG`=n5>bP(R%Qv{xwausDc1+o(REDTRo=AbgfCj2?Z#I&| -z-bCLfd;X_K`Q~3n*WhPO7O>A!Fyhr5P^nt$MACAxXUyRXp(`lKpTS%_SgNk?qks80-tEv= -zdS~Sm^z55Khye7W`$@X{Io(5?yc4=`3tuL<2D-X87Il{0s~rln*p -za@8Q2#-l5PhCTPZDihMx^8qD4fMJ -zL9B6ex+zkFtfES&nvw_Y=hG{Qv*?j`EO3-+dgFXoTj!N^lz&$JTjdD~;u1T5v4f#C -zz);%6MXL1GIa~apW0+UNbZA!Ub!qfZEtn@bo)>lOt0Oty>&Ufr+%Kqg1wi&d@B^*e -z%0qX$G3^OG)$cQPrStJ0SDxV3dTwkv2j)+t95IaP5!|02V#N*c#kej5Bx#pmp(Jn) -zB>g5z^);#wX5HrQ6~>O7?@TsI8`cel=d%ER(L%IJ_1#`;RaUgdQTKa&`mD{^veV<1 -z=CqS6$gs~P1`(CgJr24;l`8x06-Q^PLI$a?$CZ@8Pu#UW%|YO`bh;|S;~kH+C?X7@ -z8?wIZ@&yKy?vL;Q%&U&L?t1i6H*k9Al_hSwKFO{GY)bp9$VrscZi@!U}r@EvG -zu)@_%_s3I;bs=c{P?rfK{q##(K<+7)N7NkgzwKdpv0x)16>UonT-3at!LK)$VWU&g -z8r+kMEi}q58Q%;{1U?&9pgPBi{#X%Yq4m7bZ06rxQ9h#O-pCevO`2pd{PTR8aTFuIt5VoA#^2Rd=}+1>j>F+IRkG9_gv&naR&9>H$c?RzM^t4G$}HW6OW2Fys&c -zZ*G4QWl8qq9N~#oI{gFmG-DH7U5tPlqiKE!S$aU=QZBBle3+fZM4G?j?9DK$GF^a` -zA}txxBS;33ecp_pzyFj(0iZCiC-5qG=MAEcDMG7zT=bn1?n(8fYilz(4t#kl5_}|1 -zO!57;jbZX^N4 -zNu^K<=v6ukv;o8g;DMVn;!8BwR12So4$DYNq3VM;^vnB(iHwaH;A5{0cgg|-+`v2% -zN|&|y7!TU{#hmjV&ULr)1h5$m7W+&Eg#Hc`pI?9Dw|=UHB!o(hP=1KZpYwWs`j0o2 -zM3ELA9=0;nK19}1P4xTSk%KQV8ep6wBp5A3J#{J}Ki+g>6Ra=76Z1Orth4~&I-r#t -zMuU+)Nt?Y-sr;!D$6GsU+h}C$MU=ylBuw1z=bi_Eg8;X`BTl{{Xt3L=AJ?#EAXaw2 -zT%XSoKr4X@bhNS!);5e|wbR&X9tgDoepie_=UjGSA?L1QF5El*7n9q@;~i2AEkV@04f(q!F-33|wwU -zftVj(EmnOOPhtsRVZKt*@Mcs?qQAnBd^QNt2Cs)sUttoh4DZJ(;cN1WE&nR;!gY}p -z{^`Fkag?>TpBvxy<|>Xx|4C`KJB!GtDTBx$kc?;4`2roRoam=jx -z_6v0&6RvBztQZc(hW0RIk4{LhEWm*l2}Xd+c2eDPId -z-^vN&+uLKTzhWc7kx{6GG0JGJEn1MBdHZ`-GUJN-U0LRzZ@~neU#r<%5}6KOdmgX^ -z0AnfTA}_HNArOnCBbQD6*0r -zU>sRUbDQ}NEd6iiKKl$8g`-Oz1G*{jMnGVpy?+yAjUsR1?1;q-$Y%CUHuf!@>Nkra -zcLe2iBg`!E7sXdUf-(7LkGPDgWv^2nu|Fa$Ea|WcIClDXn~1!y$$`lL2taprLJs9O -zwY=gFeC3|$*%t08I-t#Ai0F7cBjd_6pV4V5cv-C(BC@OMi}cM5J$A8;&)PD7>s^a~ -z7H1d!f;vmV1ftgta>g<{3(DHrRWtlB9-;2UCMCOg0lk6EKZz(l#oMzZViJGMer_5# -zqu}|_42~!rcn=4MY$CBzWrZI@dvJd9pk7lUC#*DaN{c`$1a#D{a8w7&TPP3?-u0%OE*gXzt3Vq>yw?I(KE1v#^6_F`KKk -zb>L$DkV$}K{u -zoX>)|rl(q{x}^11I)DArBZeQmuX}jjuoEpR_LJgX`A(5pYj34`r@*e-+(J;&h$TY8 -zMkd0$HU+UoAVQ|g!h#6Gb8)S-{;rNxS0c=~#Fl;QHHX=D)x&Vg#DKHo@TyTGa`$>6 -zv;d|c71wjfHL-duE8_L4sQ{!)8tbJ2{1MqP=M4nXl??=+H+29i3K*V&QoBN3B_&ze -zK@?Ru-Rqq}I{vZ7oBulpu}nD7u})KDr1k|DYb5ol^PR&YwmLW@zQpb!{Gi3{j+-$d -zf=Vpp46yTz(`fw}2D)YCHY0r(xl*Yj{JrQ9D0>qGd8~eF0e;8p0FpTVdqpm{3nxJ0 -zc)&%z2UVz%aToN(&oJ2{tgDNNxDDJ?ws#`8nq}Yn^7UB>>55|8uTcWo1Hq5c!&_iy -zZl(SV8%L9B&nODNB)*SqlM(iLJ=%8F~pO};AW9WTY`EnEp_gZ_*bg+mm@ -zO=D(;VRAN-&iiwm(v2!{HQ#Gb*Wr`Vg0Wy0h|~Kap2+9^Cuh+kuT|;>sKs}e04FK_Fe+S)Pq}(oR*~8HRxuim{ec_sr1ZpOfEfnc(~2T!Iie*KZ4>FLkZY(zMF( -zeq?h=R`^~3H5^`xA0?XYZGux`>E;u5=nFhP?r*TFJE*%_yh4|$P;ushI!x~HhC&@5 -zzLRtPd$!|$!LMO9&C_OqZ%+El6ckVhrmvkvW@Bba>Kb6&hNZaKVKd||R_ls<%mq3J -zvefTaCe1fUR97@<69?b^5u^b=1)zZMSLzdq0<+sV -z&Xi9a*=vC`cV0)2>@8q|fV=u=z*rY)H5j2p{>`pS5tCIA5A>U3KRlE=Zh)XG-)<@F -zbphG=aPyyR(Fc&BmZH(~YYhE){9-f~&A;4>C4EBYpF^(}kE+aa=}_Z%uYFvKy4ws{ -z@f7F5YtJv@vE_#b4A3EBy7RDUL9R}QzJeGG2rK7q7sqY1*B;2=j6lK50+$1hvV -z|EU+89f6GHCBQhW -zpT5-ZEhtKwrui3$WHgfc>2;%KcQvZuR9%CQDa+knhgoEj>VotlNUn#jBNUQ`8Ik4Q -zWhHQ(nvGuw(}Ha`*5J+nRb?$m7Fe#X1@F};sbEfQTUSS7ZzoHe -zih~;s&t&*r7sY&kaZdSXUsP_-pFU6IXywKdQZ_`iaaoG5!R0CK{RNF4DrqHmLIp9c -zZ*#|cPp{c_$94naW^$K4S3e&JeR#wClOB*sfr_!;KV=*f#45IIg24I!Qz>5G#3;b2 -zxlCw`7Ne~)u)cLIzx)Mko-}aEhDr7$L)kBd89o%fs2|->_qck8;wxd@c1^VR5&CJm -z-&qHA(QQPe8@c3?>-v?G?DKvnwl1}@I-CSF(Qh8^-PoPZx<5i?QgNl9|0@@!Ii85) -zVeM^gP0a^*EWC;{{9@zJw?aHtWYuY+Ua; -z;OfFjR!mK8(Y{uv0)P-<>^6YLz9TlU$SRXlnt=F${sT^CG!DMg4sa{1TajSk78Z9= -z{CO>1a=6?p_}C$z)6Sn7>Cj83ov}qRw`L+bROnB@M0_F_7^VU}?S8SQXti#`oyE1! -z?fSOP!r{l6l76Qd5iKweSD=vCP`WhyN#c6*FzmL5{RsY(eBls+hZD0-KUtvf2yOn6 -zKaX6U#7%rp1WILjIh*1g?&A}L#`_4f#8)W)swVIv2PN|nK^rv(sqOcXf~~@r#P2Z8 -z>@*ugE2k~z#^JHRyRPet$ww3t!Z~V}o5VBzB}6c-y4Ta5`UB%0U{iy7X>Nm& -zYseF~wd5f45lv%#aWP}z)-MA?jrVbP}&$ucia_&FO&Mt4p*2}nJ=}kS^+G_zDWnSs|{!g@A^_DR#mi0B7 -zLIv2QWgR|ytPM|Pv_s>c^`h*+jchd4bm*`?x|`ZKuO@FLAF98QORPmIy5f{eu+O@ -zFoOW@HGddrf6&GzJXkKdc-Jf5N;gBr;!5IWD?*I?dc+82y8_ -zmi`7JuUt$kSt5?#35Fdceuy8{-Jj^Sar#IhD%V* -zyx{~t0DbB)jdDDhj`I{%?m=*_A!Y>+a5Ph?RMcW|1q?G9XgyH$(mx@rwnL*9H -zu|htpPe!?rUa^G-621l7?Uh*?8Vipk`&WxJvx*Xli|f$ZzDImb!xr -ztx+nLbq;yd!74^$jGD+uzXMa7{~cxeWLb8VQ28N^R~pzN=q!L*gR{YT>T3)P^g*w-p~vB?~1?~fUXfJu?CpAkk29bXN<7@ -z8gZo^(HF~wB{E_Ep}P45D}s~#=hrxRF*tHh8L~Za1hE+=0J04P>9t$QYyP6J1)b`> -zTgkM1oha|f|>tEr5Wg})=7~cuv1^NuM`Ms&j1P^wsqL!PlpZ?j1 -z4lX_SMnaZ=6^ghtC7$8;{XLvw%}zuDWZ)gB?Qa*cXPV9q+jP-+XzCg2q7IF`h)nYi -zojd<&zQ@z?qnckw_Vzi1;<8g}5ES*9y}sd@A8{+{14HZ^Yp%?BdmE8I2vzdRM)UI#`NQ-p`8~y!u -zU-9JV1)j~0?k#238n|c@d|ga79(1~c`nW(F-#(VcOh}GB3yzqV!*Zv!=KC(w-V^Ai -zCJUG>z+I%p{7tcwQ?JwF(Lh-T#7z*1Fnk(a*5-;1ixQ_^VXbemru~xy0D%HAj_Ly| -z_ts~nSRjZvbHh+r_Da3Td&X^8v8?8fyxK(GWt`1vj -z=M6nt6AM;oJ27xP0}l!mDwEubk(F3du?)GME1^w>RTqCMk$MuW9XZtr^)T6`j&Tx2QN_}rxtc0#ZFjN@DIoSpIE5eY9!icYF0Gud`lO^`YK -zKkC!fw>m*{C~}6+eM6>Ss+lm2P708cIw2T+kxZF#lYi~Xrd8t@_tZ`n7mKX+Wy}QQM;>!*`EB3Qg -zJG;^B?CJ84gFlCjZthW04x2~gI5>R20^@uk4%OVDzLcd&vUJU$C&J!K*lTxT2tgGP -zXb4zvQHJzPL<`FH98N%5&w%9qpH4pBCO!KbzxkET13z=bj82g$pnnJO!!J;05%EUi -z#*LY??g(G9>Ichz?UHsvq{%jFoYyuv+B-da_V$z`Q6SZ@QT}vKgtt-BT(%V$@=ngA -z7_-euA0V>qM@^9ZR*JGZS#744yD3N;6t?l})2p#N;D!J+(sD2xjOzJy94qfAQq|&N -zjGm&6I)IOXbX9N%y59I2^+iWWXpfXEPiz|F{8tz+{=M<4#|uylgfD1k_W_~UxX$+M4s0%(A9S%R -zMo1eM1tpywb(YcK#SrVt3%vyAj6gvmxLU|4GaGm7}cvis|*Fbo41G2`jDt-%a$u)t!!K8^7x -z_*iJZ!grnw&EQWNZmH;<&Ttz|Vh{qc^*zvsT4spYL4-dnLG?5|v7h_RL;a*Ov_9SC -z^4f#(z-sw1@ia!LTV1LsE+-w1uB -z`1&-_gAS@Z5_1piTRS^}Dgbl`PA1y)T5j`lY?&r%+aWDn-&+Cuos*>O7qG+%72$!c -z*a9E{+lH6aKszA7{*{VOLogaU*07eZSPA7ID+d}O+AXRpV1l#lyzcVk -z-V%zQrJHPy6UC*&UcMRfC#;ICS@}HeHd9bVHIIEq{}zhY7+!(Be%&O*;G%Kq+?Hlc -z?rZ%l4Z-~8&~Zd%R(Ec0*xZlC$4>yWrr|0xVTjsRI!&wtSN0|tx6-%wRIA%UnB%bl -zsBPmwOWe6eI{*q~Ddsh1T@@7-zsWl8e3lAvxH$ph457)C`1krrk-JWPt}!(++}yuz -zGjZ=vXq3DAIddX@1SzjbaqkW{{Zi~7RW6?4dYjeIoKVvAnqMY|F`Xd}3msaV@GE}O -zn8a6UIO27ObD(lWqOcn>UII^lIuK|9B`%FQUZcLM`*wAVwYU=XEz`EIk5o5y`H@G- -zIZ>30J3;Bpb5nyX8H4X}Azy){a*)aGrUm( -zvAebae`%!_wltdKt21S!$2lXfo44>`?-7|PlmLu;_!0{5A*v4lp-bS*!`pzra^o&_ -z{i8Y+kysSyBa|O7AM*7i-8&ZOeT@wp1o#p -zuyJjzZAiO7UC18;FW3J(yw8wM7ie^Bvn5G)edUfUTO0&fz#DPlYyDXG0Nj7k-|cR3 -z-qNmJ|8CGl=(3cEh7mS4f=XXT-yg`8P6}!_r7HRdwvn`W6eifJj5S4Z29?6Awp4{qZlC -z>-HPg=b6G6X*5v6u3OEh+k?8oh}pUBH`ib9PJOUmXt{1 -zPXDErC}3@ozbMFH>)?r9q~u&hPQ5EO_-tbHDc8=-WEHjx&?c)BVZ_I>r1HL-w|`Tc -z?J=aa`A1LU$LjAVN2cp~uBRyt1dJ~YJ1@7MIZ8^|+*Je=U>Z;p@N+nCv|&P8%BIyEo65?yrg -zIV)YP$a%DS#8Nw@Tk`B{uOCzR$KKeu0E*{baus59{$;eijV-kU<_38F&}D@*ZbEWl -z{b*YuH4||1U1exHNTPe!Cov0aKm4|U -z5AEm}@KN5O=I&i} -zcR|bWKJajy=fJUEFRrlZ{;Rd9z=BvbvsOipPR3-V`~C?-v8=K8`ZB#6aBmf1#F=R^ -z;RXpC`;lyQ^5`hkVZ;Q|@_3ft;sYQd;QRvhx8~HMST?N`H7Kkvzm$qSmze*hS97UX -z7tuA_X9f#rgJmdnZs2!?sct4jh~_x9MUt!`rT>VOxk61BgfVxy{n;}RX>D`hg$ -zfpXtqIy$f@iK(_Ve+jQNlbOGY2*tYzH|;?Du$;4lF#oz2s -zv{6K1wyP34mAZcq*RL|y{4-7wz7_AuKPPHuo0U9rM1 -zL2c!CAV3~W&WdOCKvo9e7_Xy+(8K)q>?|BL9f?hB4n?|uEt-sAmiK?K$l~~H2Gg2U -zXTNAKi=hmw8e`9*<`j|qzpUY0x4(VFG&7$y|8WwxW8bn -zE;{(a%!FlK-23KZ!~~B$*|@-G6Oh>m*r1ej+K`6XLf3q6CRQdvJDEovT4K9zDJ}$a -zlEy(*>&ibTlbD_(of4z?IZb+fo9BgF(Ew8k1Q`h%AQtIlSB<&TATrx+?Q8><_Nsi( -zT#?9+KuwsRsC>fmS}Ku -z5+^9vDpLD%e7`*|jU@0%^j!MLkojn=M_Bqz#or|%8j_LD-2G#Q&&`x6?d~ysx_Cl< -zNAgzDqx+->M(-&@p7nPrJZ^Nsl%F01LoA_{*D9ukbzCDdZhMnyLf%zx=SOIx2^rfV -zC3}D50I}169JbSE?5sjiOWw>;9knn~Fk2^RH8l)VM(mHQDK( -zF_Fx`kb#)=z1!f#7kM4Y&6uos-Fm7%=aRKLgjlC#J2;02%f;d9ckVukpG`>pT7Vt<*Imy?C1@a7zA_|Wb -z%vD*wkGXEJlB4pk_q%Jdw{}OV+V(3A#>%J)}KH1-szyHrag?9|K+AS*9 -zT)x;4X_n#^p0kIRxP9gP8a-gP3q9!43lB97;&!Z3f{bSG3rCO+B8IlnN7xNvk -zO3M$Z{rSxh%zx#AgqYUw!V&rkCjlq-RQ+>iveXTQ*&c61Yi+#0JGcyv>($m8K13$9 -z)k4=qKztC(E%bPw`S7QEF2UuDgoXogSRnFpN1w -z)pH=`cX_qK+ok8dXn7@jX6l)|WL;bH# -zmYLJUvgW2cYUE;u+%lp4<1Y}aR+_JpQrOkg*)$+J2YX+rSX@B$?CRV+4s6|)SngT{ -zr$n9D%B+qa+k^)c@CFaIoI`>-j@l_u+gQVLW$AjOLyzd%SSQR}L=O5v+4Qq|(Dzb} -zm-1hA0D2UWYeuthhrFTNP&Vg?p3>}idRL1+4j-pC|$0V;YimJ}^b3XafsDH`a>EidKfp9effWz0*v5=1H7ca_1hpo|y -zDi{2X+Sw;p9$_oaa|tco)~xuy>J_{kyds&F?dff7AK4s6m%J|N<1fx~QY`={K0z{C -z9zETXk$aMG3{iBMYfKAz+DepjqQcH{wlmJ!f!(&Z1wC)>t^QMDIETIuFNkjL>g0a9 -z9jF@h4VzRZ0^Kr|O7iT@v?o$O4*3KOP5R&g_jzh&hQ|<(A*m#p&zVs~W -zsN~z@@X(Ql%l;KRh+|UFLYn%KPV)r~247{=Lzlnl8i4^W!=nFWC%TpzIU?Gnp!WBLX>F -z3Z&&NQ8{KA*~Or%oB4E}_3vTBoLp6@L;o}gDhG!^ -z*&=&3Hmd9_EIYqrFGuiUETOQHy+}(8RItk;z91o;yq;R%wAZa$e7St~jQq -zTc8YMSZ^c-&VRP6Drz7ik%xu$GnF%Hd}IG{U;P`)RKFh(3JJo~xI_jf9EaGqStG_z -zU3`q~KiH~T((|d@rqci2X9d`IuyqcI7DvT`Y=m^ssEGWSglLaY<;p0B(EB0(c(5Df -z;{785Fp9M19a+C^7f$=LLMiN&K7|jzzF!$j_j`GB1i16+)99kA_D{?pBQH;pyaOl -zj@MCK?zXQ_>r-T8(9XioLvVnR;fAQlM^oJyEMFe@t@2e)wYt)bmc~Lb&*f%{}q5s1yGa{81swCF(Vk-^E&#ReBurDjdPFTJkfMVSKWAc -z@x=j`Ls8(zuL>Rp`Qkw>{z6%K&J&Ef?)yJ>NB6+i2E>7ulQJ#OUv5$aM;_id226ZR -ztdS)93p@L>*){qGe1=9Advhb-*2T(;&Mp!EJ({kRKcMx3DB`+29)9*0UOQ;?zgxOm -zwd^dG@73i_)&y={U@mu~3ozOObjhyT07=@mzR4EaaK+4BZSRYy9;lzaBFsYQrXW4T -zGx{@9R94dX;b+}C59>+VVQm|j3-7S-&iR3?;nhNCAxB5yq!|-u(Hg+Luqz&u+Wn_2 -z>}9`bUpVywuYksm<7^=xP-Sad;%H!c3&U8x*%xi3b-(@Y9^pk}Zy}m-WAjQm{njE( -z)52oumz+EmKKAi_`l$jKnFLtg-1}?Twu_e%!$XUxdq-nmFcH~=68g+iD5*y-V}I-D -z{XZjGDuK{I<)g$Zr$0!-;kZa6nVgSBfv48z)m7T=8V_-8N4Ol-KIzH!m|=SjZ1x~g -zVAqo7vo7y~A1xp1Ok&OMynXopwbrfUX_WeLR6$F6s5xON`cu^M6=%crK!HlvJBaBJ -zOuD~ce&MD8`PkBQp2laRhO4eDv;i_5aiQD2t{>ChXbTXc#fXa>ZL+f*R;P%GD2@|f -zA20B$ -zf&2rTUZgq-WCIl9#{Y@%)s;$C^Bux6!O5$Gp2s#}TG}n?1BBB6Ii#oy+7(R;-VCc{ -zO)ck|EssyR=8ZDeiFdjQsZY#o7}N83oB+5(1ntR?#3&G@?3t$k4PB~a<1vyUJF@hN -ze=mP|e_XRqPnkRw;iXh#UL?vRiW?Lcw2c(_-QZ}469H0BdB1a2nA$bIQy$$Y{9>7bwLc1QC8T#@WR4^vY7VfX -zm*#kHKSPuA-E~c*51Kw9o~89gFb~8Gi4uD}IfAqEPnd^fN|B>BC;P4h4c*JJ+_x?W -zzI9_P@72FHWDIIVDRK_V&6Y({&9OD}GfwsQ`NS`i3SskYh9^x~A;jh=6mGtU!U -zQtQpRe=MGHie*N1ql?9iZ9U-$FkbNgV=?4p$E_FOWk$&=1uF9wNDIkKAe@|qYHbn{#ZKC;4U3twoohx`R4ZFBUz2q{QM~ -zj6=O`^?l=VyLjR(c>!iEAQVL;#MT!@5NT1MexepiJ$MNh0H2nOjP~LOMqxwM;oCKp -z>Y)k_|La6Fwwo8V31BbPa%eSk=ay0ycCD*R7?r(z%tG-{6!r4`u=L;zf0*z)4YLWpq^p*ce>us8ChuAck{X)auDhTan6o8Oz^2zRV?A5 -zAts;Z%#uz#7T6@lHqa&e!RIXHhsS9{Esh6!9}hxGNpCd!aAuVJ^eil^5@J)!BmDYQWmNZnkC9ZM_GJ&x73<;^(T{nwFA6VSa|(B(A#3-?0(Z -zj4WOr86@5VP!WVzKpj^&VHGKCV^;KRCw1L==3=n|<~(fdOfOcg+jSDJNG^CPQ`&N* -zQaWs`h5eI!Z|s+b4HWwfSNryfyDX`0r(4pA-Q7*Z34k-LKVj0^-|nhtg7!_2YSjA@ -z&xV1Ty5RrhyfU))U~b$&JM(-ns>(%UAbd@B3|v`mN{OagpZiC-yR$43b0%vCQNKJ^ -z=?RakKtJUtAbwh@n&mM2Ym`eY?4`h)$SUo?MdZdOO@~h(bZ@f+|_&L>GxYb`uKX$wXoW&W|7uHnWyCB -zc(|?W2L?-5C-I4ZisI|=C2FUB$7!$q%x2`is{0iN1%dwXc4)f{&>XEJt+0^rxJ-s6 -zi!|Z(sl=Ip-O_fcK8|p!d}dfFBNdxI-fkvZ -z;(&6o-% -z@+Ti;r7q2;-~BVW@lYNAg^sXAxQDR&-Um)A*2NOC*lO*;;-)ho2|kEIn^U*zLiBBz -z10_U^Kg@DUbQkI~`AWpxn0te1Nuq+e_WNhJOhF4?2h6WXzW -z=OgN}KSk&?FKM(+N{kvF!27VEx>ngf@~@iv5$T2kj_3*b=}j8_4!;y?)vd&t|1M(a -zV^>y@J2A7bICpI8Wg?`}yaStw2}Ei{?b|C{qvoH`7L24uPkmdd44W#=DD!zh -zjpG*!-W97pdW<-FjoKM6@2QvEa&U1C8;dQOL=PJreK2_qCR7+@$AxHxPm_EQI`TZ& -z`C*J-yG-XUy2w*Q=^;>*t+|)zM^E4m=HSlRDUB3swC7pd8c&jtZf<3cA=MVvQMxf@ -z?=*BzhpE4?3;=Ojq4L;+!8-p&q!nmSy$$NeD=RAH&x;;)6xGhZ@gF0)r)?f_89cx( -z$}CQj;5_Bk6DLg*&%7ovLamX%m6XN}%CY&f6S2M?;$yVgsbT&Efct>Oc3|5M3Hr7d -zmp(rP8uM1LWUKaJE&o1VL{-;;>G|~HVp)osV9K?5;*}XZy9W^QnEfhi;3ms;zj}X! -z&linXxgup5a>qY@1tvOd^!A%<8Xr4iH=Fr(>j{!-|KdUZH2-6za3o+V`%k6rCP3!^ -zE)iF<(&Z6PfC(n75=)o%VZN)rcMJ(ZX{x=bZrw|8d~jhKA_GtK;{kQ_z8A-PA2w8v -z@7PTw`1ATJG_sm}PUzxf)JPo5qZZMKlb7YcqVyydddki|YAGx}JzX`|!`e`%o=Ty~ -zSVln(tFUzQU>PakTWf+)X|VBFunN{Ff>w+gsdHp{7KGDzIfyH$h+qGG40{0pfL9m( -zl9pBajcwahqG+1lag3(OgLZyt5`Y(oN)`hN5qn$cn4bje#9)vbgqCCG#0~r4tzX0A -zV%Les)V8hwulWGNG#zNk1n$L8AA*iy*oilz9`QnJgW|TdgHs$k#$I&&>O>ewKsYVA -z6{-!z-St}-@=iMkq(n5&$3Fy}mS>^mVu`M($Jzt93s=?Mq}n8D>tKQnP-vS?HKEF& -z>%cOO#62zj>w8Z$yf^S|&rUgjavaE5hAGu;Qw3**NYVt55<2*6kQ_{1#y;!-G&V4! -zz~NcKj|?LnJjkV2-Ipi<-3%digbu>)8Hkq)aROl0LpZMZAxW#UyC+ICT&3nkZGPvx -zEsj*WSdi12%&1JSh=Kqnj#tPD4ztezFF3CjG -zX^{%@E;d9f-2A@>hy=C4c4jE0Fu;)$J+A<5d@fRMD0(@e#tt67 -z1rfh-@012~TPh|Z6>VLJ;>r0T?$_Ezk#a~3Mxo*FH8oVuwhZTql*RY!Iy`3bvia%l -zU)YbMjo?87bq_qEds*BsxN$D2JE65XBJIuIRQz18g&Jmw2z?pQ)u>&s-T)YRA#i_VxG4xrtY8-1+2$!*5QfrAPAZ^0ngDh~C}`p{L^NNIT~4wq99GbIxt+bFPX9f8NN6cPHV*Q`*ypQ%W!>t6r3SSZ -z(DWRV#vM5dAF-RzU_}NF-tV6p{Ty0f51Mr|3fOVsx&`augZryllb+iiw%W)HC(4mq -zFCP&HKWarq>wU#>l33Z~k8@ -zgjJ0B{`+~>f>Z}m&$N0qD}JC8*%KWoNdpb1b2V44sT{xrydyCHDj-4Wg&+f*EQCY> -z@33RbEn$9XKIrf}PO;!bg#`@WkY;boob#a5<@$rOgO5WhZnAQajEUXta1A!aJT8i= -zQxMIhj>?e_``x3&I~XI#CVB92_Q#4?#hV;7Y_Pg0g5?XWx@zcS5VIriY>SV^m)E!+D5Lb>Jz@7S3XNevR-Y6QlpYTImciemG}GTXR|-e|2+Q;_ -z);B=sl)k5Wv*lgO+SkGEfHySjWThSW;LZ8KCwKkdwaP$~{Y^&I-$j6;8tmgdaMXXF -z19xK>1JE{r%#3&-8kb{r?DZRw!gKhByQwo47FuXYZhBW}Y#OJtgLR^I?qr}fz=E2_ -zY}m(oJBur9nAud2lY6O(3r8mYI+bAf(8XJ8da=y}-vta0;OD-w%~SnD{FUt;^`;~C -z99eE-OX?FeD4FMxw#QxsV;5XTpbN94x4$cO?N`=4U=WMlr@v!}MtM7X_Pj7BfX=c> -zF@%Y|+xZV6Pm)I@Sei3&+&AkTQLR%>k@uTB2wb#@AFzT#pI{! -zKu{b<25~zSU2{6|@!%Tz5{9>1`FAErqOIuvnV|N=&CQ-wMi%u&B_Qt7cUgIFzQYGt -zkw9BUOSTrPeX^0nZJOdCr;<6|c>u+IHkNx5crc&@jR8J84(iQ*M5yrToX~vNn6zYN -z4>Rv!T)kC&#~h87zk=^k1Dz+s)ej)i02D$jvuh-~>&g-@OY!lO8nBR3g%s9D#=){Esar{d`TF(7p%5R4j5HU*+Q48k(#3$|X~8t| -zN9C!)g_Aflzwb_W$bPsUKW1D2&Av$7fl#-_bF_U(QfTU{*RAzpp+`3! -z3zMxGf$ZA~JRQOrboTA98+Vn1Imh5EZJ>}swZ*)}L&{COI?GFJOrhd8w@59WK`FQ_5bU92wbU12^(q;7z1)jaDQ5CN#@;fZ -zs$hE`7D2ickPf9m>23r?I;A9(Mp}^W4gnFQ8$kr5JEcSEkVZPByZz5T2k*VV_tX2u -zBYU5-XZFmR70*0t4Y`1G^bTQj33;gsGa$K^jF -zYrFeFNzEn{coCPRK$nTL|1rKF;&* -zs7daxM9!^wjF&t_$zIgpkjV#m>b>3gOI`779Nvz7EVKfjk!G;pmM`w4=EebnH^4;c+!DRw -zNt3=DD9)v7esNaN^pI)cO)WKTK8)tFcWA`K;&D@=15gQAZ#JQo?4$Bo$sFp*YPYrv -z$C=Pwo9b#&rnTEF_@-&@7Q(X4CDA6Gc_vxzP&;~9+Ze=4`+n}RPzF;__GXDu3NGl*uR8BuMebS)MX)WO;YSZuC2Rktu -z98Wv)tBgemU+L)omwGs%{=1|rj;#QODtfMSq)F@MQ9;PdT$y$>U&*! -zsOI0yY;cGX@9sY#d?{2=yAZKJ(la6lsdN5E#yhg-}W2`$q#BQ!5bVKyp~P?e!nnl8V)^c_OI -z1h2GL_G}{$%=G{i%CVquckd7B6>6U4dzw~vg%cDR79f9~n*>+UyD&f8;N5u4Sc$IZ -z2&d03R@~Du3m9{!<%w?~d*3tEi -zBb>2r?t=NC9tG1~Tr^5ed;=&?mn6ikM0+BZyNR1rt{j7^@ -zY~d-pVv{BZuw72Lx~k{dLC2{MPW|kN8XdR+?7)$=M=2O -z(5V9;i1yhJXnpc~8?? -zz_9X!_)!Lzaaun-A72tl#^}`TKE=U0PwJ5|`(3>^j!A21(jiw|5T5~v_65JTx<_KJ -zc|=EwIgXl6iP(;?o&XgX1n8cIsCLOlQoODirdAglJ<~@Lj;1d$jD(6gKiZ+AAV9%3 -z#P+1Al%tGS-*fmU+tlap=)KNy;wpmAjQ10qL5UVa@gUc^`R_Zptsa6LmsZk?b^(>0 -z&*@)wQt)Rpy!pLlaWONZ8)yS>(e1d6zbB}hpdG8pPCVZG<=Q;Ii0SD!n4kQLGh^>h -zW#mE#PxWomN@e+YG)E#I;J8f{6q4b>eu0WnaYc+KK{2|I -z(f9LI($AS5{ -zoOnE{jp&Mpvp$@+2_)t=96x`s5INn8M}j2 -zuf_v;FuNEvr>{dDQ$ENg8L~gaRrITPB5pNKyDZKfo-?Z>#g#?U`b1MId;t^GrTHc`NCwQ=C_z; -z8#h#D0aFwUChx8)e$tG~l_4LZxXgA2` -z2O_M5Qxl*|>57Pq6l#{Y`zi+!WjnNFAuIJ|8$W3qaO~7()&f&*hmsJX*O+cz{Wmy!!TpG( -z$#ut3V{g=rkSQsQPl+qXa)j@7QdD?>4huj$fo$Km{(!JdiS1fFV(0MOfqcctTSbXl -z9ScpG2#={WeR1=9)y$`e1F$g)z3+!M{%nq_d&1=|sZXp& -z99>8z;Wcx^g>wj}cOKqj8i-Je{j@Q$K+uG>fUA0YQm=#_{+fz0k9twE!h6k!O><^2 -zI|$BN3ly*|S@Z|(Y9lNO!c0s}8lmc6V2@Ges(ZZ6GAV24fjUp%{D&R3Zl*`RI?RZ%-OIVmfG!VY~Vu#CAs_(I(Vx -zN*4L~c62`D;zyxnE(^X`MU9I*QG8H}wIP~1lTEe&0ry)c+2@`nH~Y*{1UXxY6*+dJ -z{uI7bV)81#Xzr?bR$}GWAelaMZ5`lZFM$=72RN90x|zY#44tsNC?3QuAG>o3m=hCB -ztyFFEnwzJKX1g|A{fM=-hc0ar*c25C#Pmo+?f;gGJ7WjCij3ikR|IT%Kys*(BPZk47 -zw{BeE?i~@*-L1+n-5ZgT`(cnIAUp5bk1sbCAoz1I+|pY0u2^(HzY8gSkq30pA|T{$ -zokt-4RNx7IsZpu(^x&!F(%gXMF6zLr>w>AB!go`dJ5L$fbY-23V9f_phJ9@}@U^ut -zbL2DV<&s?^yGy7_6ssv2*pE!-q>GMl)6216?}`}(%71N^9ww9f<=@A#elnzfZjh)a -z^88B4$mTQh2VKz{*54z%^&s56?oG^M6r!w4(S)5?r&~thL -z?6UAOZfnKaJ3)M3GW+)x#oygSY|nW1Mx|wgUh#&1{?JPCYmic|LBNQV<`Fgr`Xgic -zEdc?^)1f>mmPcgtSk&%u^GWa(iPYoxY&Uer8@udQA{qas<;l}qwVpx=uFX;nph($m -zUDY|-kzWNCAHD@=p4zpZtl%kCXR?r{7kGeTS7jajyzVjwZkDG?o^Mn-lL|RqT3M%} -z_a0DR+|C7u3OaE-Ml+L?)p+bWNhML>H5e6y@1Ts2K3)@hm+zIRmN-B~`ZFmpsZ|IMH)e3a$QH?7)V| -zb51&al23J7%4KX=97Ud~U)a9Ik$#Xhj9zW6KRqZEpCu -zSXlhAc~xZTz@6pe;-S+q>fXiVwY_>>2Sxo`OKP()+I{;xQ8T -zD>50Mn9KWbXpsfl^cv$GR1mu3C%x{aj=`~xUvwk}wcOtXS+|e}Gm(8MeidkP=?)I4 -zReIq?hnHp;ggu%f-5oy`9jW4aedqY_iQM{(lsQxygyt8K)0cN1;PjYP#6{J?2na~a+Uu0-zkPR}H2vOW3{f2UOwEPy -zTk+3j03!#SaiLhQ1rC;@b@;oY_P%4r|7$gf9Wh0SRAo0~OSiHB~|be(#*QXI3Jl|*nH$*vAR0lkWbB` -z=__>ip%1+*N%C+22NZznoM~CJIUX_g_@lR`HWZ3dx3n4NNfhYP(irrF1>fm*`~hbw -z02>!$646LcZLT-;fsiG|Bf{`dSlqw*YLkW(yu7)Xru`-s2{rEntRWQPX*w^9fx>Ua -z*NDBaGXg>NNxrwht3o6#9lz`e#N-ip`;xH2;|n3_+r5xN=gh9gmNvGn?0;iE$x^q) -z_z4ZDC2rMw4!W~aDY6%9h=Fj@%_|(nk9FJf>7QL}4p~$76PxoQAGe>f$vY-n=b#F| -z%Kdf01wTK%t=)gVVF}AC<5sCGPG9_?WR0=i(>&7J6X|On5YrF1@k@qgWSi&7 -zk9!*j-*$ey6>1fD}@cGOO}a{Ni5PUt^T;Vr -zYEvfh9UT}_$vXO@1mUd;b{E^-XO-NG;ke+~kTI35k@xfnl399vx!DS5pUKEP56VFx -z#~c70V279S&2%F}eHoWdPimImf9D9Z6DAsUl}K)Y87GR2J+k&i->)6sYbL2}+m08L -z%V2}v9`$2}8j8C^Lr8!tObqr$qkp~rwxiL|o}V_9e_|K6r6f9*Wog$Gf2-V1Ln;@> -zOc_L?t;N^fj3pz%!WZ})@(_m?%KHsB*2b~_^*9N}$JAn@8o(++OUzb>C1Q1%=GjS#%E3%|#*O09;?7x5TrWm>In&a^> -ztnb^cR;S7}7&MzY{}ss`#JpN1+-#VsceBGyVe;PlX%QdBu)#Vm^V<)X==}Gls(wV+ -zkb@fApN%76@Ay%hZuWsAozUQS;fworHflz{LmZu5Q(Sa)?Bc8nUD*p^Y!lRWyxvdY -zLeqJa}F>daOY7i -zz|_G0)O2atr7_Pra>r@d{f0*e)PW~qs@b|Ip85zaCA=yF5_5U~o6ID6FQzBGUbxL) -zyguN#ngn@u+&~?(oKMLc#IH#5ms`IDT>rlP)hw_h)*Nk)#a5B5&^M?kt?-7Z^2Fh< -zQ75UIQuCKxS6Wu`LeDdJEj^)Izil&PJA3FUDJpa=PYc{{sFO%;!9;ocff=V#%52`+ -zwR~bq-HJrxAIN*Fq83da%T5F;KF0n97&L%Qg`n;Kwl~-l)$GzhJY%(hO>gXc!nf)d -zOA73E+u{q#-^+LuLbc|ueA(`Dp8G2*Q+BX&6?eO>x)u4PNu8aq~V -zX;(xp7P;&@j#G|;H=KddQHb#D7b{_8BG$w#yL*2=!h;kXVNx(xFGz5mk6wF!Fr$fm -z@Vs=3@8n~GB8jvQHZ1$eT_xLb9gA^E>?3xaC!NBWOH*Abw$|V;(<|7vbY^g7SwAuN -zy;`R*-Mh<`52!7sEf_!hMyZJ69#rVK5fj|hmHqou%%{fA0y*?n1F=0i%e?aU^xm3; -zpF{pyGuhMbzw~ZAyl!dabh-^^2OG!SBbMynbSdcQ!%x${DQZY!s7&fj%7NVn;Mi(w -zPqA5vx!qHGbhR~>WPCeDU@D9xLFZ6_YvTXV9+nXaO -zCP^62U;D~-E>wo!c|XPG|5@FRz{X`ik*uZ;I%*v38iIP21!hcQ&}DxW_s6-8_~+w2+esc{;xG{USZGbegWe{o9RW_#1C-N?7!6p_`izWF|`^B=OW -zvkJ!=dK@&6hJlQ#A}4@5FqT;-jP#=N4zI=YA1Irs9a(TTrqJ#t1=LS+h1{ -zLGGZ&Hb)`bB-LhLqdRD>c7sKFY>Yl39&t|$vpAL-Ww9UN{EByIUvfg4m8i?P6uqg< -z{P0ug*gFoRY!*WGu5$g!vFp>z$A|C|7LHxNgc?&V#2V(8CH4c$|KIp=9Aw4DLGV`!p!w3vgpe4VdbuY88D?6tPN=U}J;=Z=RNinmZeJa^DJltH($N2eTJEHKJw0Z`0 -z6dY6jXxfMHM8|$3R)8O;@;v0u;gf;0d8NwVN+S!eCIUsO($5-ZtOd=!*YLIoJr5^2 -zJ8j+-jRHhR;MkcCp8PJNKPB|QVSAcjiG1N~w5^rYh}tS9xbZfk54I{C_YetnQJ(zdEG#xbP7|5ZEs?|h;z`z_ -zS+YHV-d_DfLlkB@!Ew${X+t|`p7!@`6&AaxM04qKn~}7;Uv+@}I-8_l#}folbq_E` -z@dGm^h@mbWXkGVtnM*aLu#dL}%!b=+?sCo-^T=DWv<6Aj`eLN}MrJZSyuEeI=i$Gu -zsB|4fu`!&r=bG(s@9BY!(&4>;D_#cVkWBDzz2y8gR;Y638u(W_bL}ryXq+VbB`JQH -z?rJYWAEoMk)0FMZ@1NlXHTK$J>3sG25p8d5pFe22oiR)PJ*UcKI)f) -z-s#XZnZcg_^djIe!gn@&eZ6Hmonz;5UUI_5c5WI6zOQZCV5GS0m#&cm=xk -z=`s`k$QdwH&@HHyrzfz6Yheu!US&0??uTvbZ>Fd|zsJa+c9cxtt=yUF`IczKfq+9N -z@QkJ84I&d`a84@cC4uGhj^sqVbc6(XKlEH9#zfaX6vc96C21q@voGCt!hsRe51)UL -z?CG~q!13tu`=LLL@JUDNMZe3jr=ff -z_<5>1Nj4QD`Z&+j-|>1<%CuQ6;x2L}>0YQu_6|Ko6r=;Bh-Fu#{4uQC-ZIBIUsr|F -zvPOMme81$aPQNy4p^3u~Ts2VjEtlh*$LJ~vyd5B9`8V~j9aI!X7zNLeGNTS^J!5TZ -zxWiQ~!hRb8+G_$g70X2+7MXAZB_cs<6{PZx -z4n^FKerG){_mZLW@FP3@psIL( -zH6qZ1d0$Q@@Pu&(A_O-+2HIW_wAz3~Bk;6@tnhB*I(2NJgdVGCPj?Kp{XuQ;6sS0{ -zuJCGi{*E2jld@?(+XgBjBq8$1O!xNw>1e2GHh9+wycAMOV@dG?M~NRD+smA!UeNDh -zcSHp0<@5MA4di>R>5HX(*J=!QKVd+iy7V-VqNN^a>M=(L;=VdEr$?rH}Wla~SX~ -z$(TO|ITMJGatzRaZu{4^%Xkd!;ca0w-^{a0_lqT?Qjl)C!QZctvmtik9#hf%ZXAz5 -zKJ2o$R^;#T?KK9UF@c2p>x@y?lQV?#fxBu1H(P}DU~o5$9sd%2) -zv$OeB -zw!d)e;4pwS)!$}P9r_iyZ{>WR``G7v-jgvD_wsl5%)Ui`6#*3~!M$GRKY0AZ)oGEv -zk8oS_{Tf$fP8lY=-np37i9Hm?!;w3XyR&x>290-$|#_`)*czW!SCNt+EVg2xh+ -zpPA?CnkGDW4qwvOp6n^QGmz&4zKXeKZqWRCZCLRfCZ8{${wE4PvU9d|gBBNfADkkQ -zohLZfHzRn3$l%mYc*_V-$U=iShrc9D3^VQ-LG`-8(mCF6Y9qd^UM$YZf2RFFF}MtL -z2h7vqs0PZUw8%!@^2*-T0Tty*^s6Et_joj3$f-O$6!ADB8ZZ3mnq=fSNHxR5qr1oH -z{$p+iBC>%F9)_r+0ELqC<%Dqn&qnX_Lj&jSUMPhR_Crq|w_~GywL@t{e$)q|X;3vd -z@Twy4S3Nlt!Cpp)TPS`TVAE9o2aGn*ZT)&4j_mFc0ozY%VNNZW9GA=^XmY>{RB~e3 -zQ0fZU&T%_l@(&aRrTJ6N-3-)b2!#rF>C`$OBhLH~4!q}$LJ2=BlNWtW38ung(L^wK -zdXBaFvBq$4psW*Ug6LJlQn}lS$G_j%tvl<6HeJEnA(<`ip_-S! -zq(@FvTD~ueCfW$Jr2Cs1*j;62E~D`BEc<5q2I#96s}UT -zyiG&J9~49?K?LazZCS(x9OzR5@uB4@=EH_z)$M(%1|=-fBuYy~zojf!tYB)!d0#1? -zzZtKnaGHZ~2GdrgIgSA|tB1J2HUf=5H&*b+5pDmEj$(?94Uimg1JGp#?`m=U&sRy+ -z``DbNvdI1(w}H)k1CA?YF~oL=HA>!<)D9IAc}UmSa+<&oITf%z>`FqWvOE^Ktz_-Mh*H?o4h7!Q -zgWBn8HccUfFolY}Hx6c>!w@#tkC1?bgI7|mGIR__I{Buk80pjgo6mzO7Xrh9(2%~l -z4KOnG0dLfr{PsGv1#at4E=+`zSh;_GcjdUet92aOPo#%`^}2eg -z8)Om<$ke)6`CW=T%!G-!o6%&UAQ!cmp2jx0l?#Uh`}&HL+Y7Ng3Npz-5C2G9iJ{F2 -z9}9;AyK2Olk|HeF5Vsh0u=9ppvR;jX?G_P -z4!0GdKDS%iKb9UlWjHlcg$XS7J+lhF==amyTkYpwn?uA6NZQQ2kxz&psF@DoTAx{J -zwXfWzkvh8C+@2WblS%&sk}L-AxArSF1mSwOzD^86;j&4l8F*9UGV0R^K1pzc9m|k9 -zIqwXAacaoPXY-D%RP?O`@F5TtfZc|~g|{PNlHB^)s!|G-nQcIBdz}lsBuJjAJ)_%-@#hep4xjgbWq0cvDYD*L~WqD -zmR2ZiEyRivf^&-y_Fn8`NK2O}r>U`nZ;uUo=VHSLg;u`aD{PHJ8^`|^*AWG!n+%{3 -zfZmYNy?RbQPax*Q!prl;M)+=qyYzpS{vR{3&;GBgd7tR9xmO3}cX(wZ?7@ahG9k-$ -zQtOYZxkqjhO2Bnr(h2-BOm7c+<7zEpqCHziiHf>vhqi-?5FP}5NaAHXGmhY=t@AmL -z-YX+zKuex@PJK}MT%M-N~fEBZE|1zQ4; -z7XsO>KYni|GtM50yp$#REUPhJMh_j_Tfs#YaX#I2!q*Qov!{q)GJtJG?W1D`i8@CM -zQ-bi>@w8Mlv2kOuaJOB4Bb9uP!ULV(2>SlhB(r3mgWJ(~banm=Ob1Z(l9zSNw>^M5 -zmPIr;k!)pg7?)yyG@X0dx&>uy=mArh?1;yvFid8HlOoZo$P<>=IUw}<6tMk)0}$jf -zl7#W@-u;OPzFq!eRnrTq@!eRM`S>T)_+|{o2`co9t8gVsW<{qUC?}SBlrlYSN7~57 -z&%FTYdmui(?Fb?QevX>jWb!1=KUkl144&SCPexgG|0>^SB`b!%EYhDPuDef-Ks{i{ -z*@&Rw4rbxrw~eILr1RRlF-Fk}W8%d8IN>&4+qsbw!!Q3cs4#;h(?fkJAm87{kyg0& -zhp{#R^8Su0>RsM*zQ(YU!oPBSZewIZ-SDu>(IU)u2#@j_{2thQSUd;Bb6rG6YWs3A -z7I`g>Lk2zsaW0CwOhjgHb935vL4D+h|4{>wRH!0ynG)W?;yVn3kw<_6%%^wVB74g_oPs)!ppCL?IXNN=)vd{$Lny@nEEt#u1E0m3 -z@0>nF2CXxOPPRnCoOxiSF=?CJwrX|(yjg2EF+Li0iO;g -zY(Q+W{VZ!{v_E4%>iYFY9+b+*dbg2EbC(77opG%P(SH3%5RV{*q -z0w8*i`nXz?@X&p}!~`XLQf|VWEAWk6;C}I*^TnOX=jq&*bjY>zOVyaz>*1V%OEg;Y -z^`$OmsUw`V&BYz=O&U$i+W#rj5janwfutvr#Jm6yHB -z%z&a)mQ7i!J=P;KgL4S4yR8C{E9i&kl`;iO+&i{;!mjKpEWEiyl{~fF&<;=NhxHN2 -zX$DB>RSOY>@*5Y2Sh=0DPX@`ASbfHNNc#7?N`jE6hM8+~l0VuSA5=MsNkJ_Y2`Dv7 -zSz%!Xf7n7Ml;|=wH8Z-P6kHO{(0Wn5V0szb`gkA?7+Vw9dwG8q5Dijj2ej>S&c)_{ -zm5oM=pdDje)u2?Jm6P+tC~D+%NEUHE3PaLvm~#DEBftfcA-E$G4-4{PS7_720fGTc -zgW<2B5`=^aGzrD|zN3vWHxcx^90;H*k=X3&p3!_L6jqMOXM(@@B)gCX@`!O?038Ay -zM{D~bj=VE0pW7h_*6N+P~$&-O0_~xitXSs-uV1_aH{bk?gKor -zKVR`ik>O5gva?`1R?#sK`*d> -zSCi+%yEmHmy6{HNPl=nXC>+oNQ4?-yKenhBfGc&|-L-p5>F-6F@t?9|-&qh;%dBwr -zxa7IqhLiwMZVSF?Lt^>PQC2&RDx+raVb`v2)Ih5e>Rv|I$|K?vAB%c+m#8YP4$3nFD{CL)Z$1QbfeyXsO(9oLUJ=1+C22ZkX&dK)EwA7V -z>Xn#+Om2-I|MI1 -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 -zai?7JH$p|K(}sP~T7Yco9- -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 -zEYn2-G_za`Y?sIajL+qUj6obH;Y{RtnA7f9X& -zagcx%f`go+heS{pGgf`}w>hC%DUh$34`P2vX;_$v#qTF3yzf>Er_=rPb8P1y0@aE; -zNm0R`^61$;RXO$*lY^!W7$Tud -z5i)rs6C&E1$CCQdQ>nAh9+B`6qQ#n5W+kG8b@PJw2s7Al^}Alzd+Ziw$LfY#Zvga3 -zjCDNBl4(g)HBCYcA+Q;r0j!+5BpD3h}31PXM8uPbp3 -z%CowOUF0LYxz5P(2{*_G#380Cmb?I;6MxmIw6u%o@}qC`Xxg)YS?9;Di_tz{JRY>O-(d#NdqleI6YqoE3rh^^AKSm$z0xdFhSeUV$#5B;# -z$GX+X*8nO5Vy9E@c}t@>F{UW;b56V8go;zdQ*e-@B)2^TM9o3{zDfNt`4EHv91Vrk -zHE4Gp`2CWzsiC~Ag-6S)+Ftd-;V`G_SYmTzuzv7sR=WuLuXqM;50>*$_1ksF)ks&B?*c&I{a5SH?PM)?;v_zsg!f_9`D#IAMnsyN0%kv9 -z6bmpU!&@PUA$UTx@`7LTx%C1TiaVp~lwrs#nRo2Z`)S4)EKUESA%sxgk;bvMf%|9G+k}aA-^%P?bvshb&iyai0xbfh -z&`#H!+2@gn^c(SpiuI*9^)3L8X&UhU&|1Q0tI*Xa;F#P>%}7^=49RCd$SvUDB-==F0@r0saE?*S}polKa_oSC*zKni=3azy&R3 -zk(+m1o}rK7xBd=4sAH;R6Ju($z(UuA!Ml)Q5~fWdbG5rCbPN%4{wFxMYlt69PLk># -z>1_7_&w{=>rDrUkXL4zGA+)?j3+so37mI;WrhRlNm)7@l2p{~{6#xjV5qv32`0A(H -zLy5^G%6Rt8{LID$&>ta3PYc~s6=}dFiBjh)Nyf?NX-L}wv{pF~+E#-s++lg02p`Uw -zpW;VU0B!-L&mis3^QEdVw>(veOsK;1Z#y1J8@y`q#PP^a7yvJUxM1Vm2mAK;vT(=) -zd_A&8B8qAU6IidvN;~A8-X4txg4CpcG7sKKCm)ZU3q7imE!qFsjrlh)JjKqjBO}2y -zF<-TPcX?a1@dhVSt_m9b19x>yytAP0~Y;Qjpbf}RH_-bZt#GbU`K -z@r}toF^>DK1&et>VJJXE>b`%@#{^ZR1?c}wD$I!pL`FhM8y=I`y1iH-XY(UZTjWA2 -zZ6x$3+{NrzOy+zmaTH(#3yY!M5-cc;0WV-cSk9dm*!h(Nj_eFy>pYcr=jnW=66AOc -z!7PxjJ|5f<`+uB$bzD_jx9Cw65eX@gE|E||x3zE_xr6Aqi -zAl=>l=GvR{o$ucJ?z``I|JktjTC>I+J;xYxIz05$cvZAA>-IrUu!zFPHN|ef)Ej$_ -zA)u-$cqft+`;ANeO6yxO?^myujiP7p?ixhH>G$94#aS+0uTTt41xt?Ek9}R|mM)N5 -z0R(CWgK0#k15cd5)b)|=&S;#&3tPIz=ftE?VO>a*g!=^npyP)o@FY*fNxz4dA%gRW -zDJ9WuGtkC@zN7?$Fez;Nzm4#aT_z)DrD$Xta|gl7Yj5Xzq3Si}6D7A8Bz35P6#~w& -zuEWKf$h`UTO{`Yi7b?yf`iJz5t1eKC?XgYdxLs#UPiuaJP3Eco(kz;kn{^ -z9C8X_inFBNd)e?NSnXWq9U~L4u$~}+vW)NZO&=ebOCgowwr$|7jAldwpCKSoaOLly -z>Eq(*K9ScmdmB)+im~k1cX;Ei+-;4b5;}4VoN@WbqY>4adXYjV^NSbgkb`vmwg{^0 -zEjc<)2Oh~AwocANOiYkHm$*-7{aT|drRborv!nxv%86>X9u9O7#$Q}$a#GAu<+n8Q -z1eG?i9c4azf9qH~b5DRL3%GXgEM-!jZIAwNJv~I~QMs9C1j2ZJ5P}Z*acsn5`E=DY -z`vkrV{X-Frvb%T3s@=*UjSU>D@kP>}_B^^x -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 -zTpRd$!^)7%;gI;_{(jnZ?xX%Ev -zmQ*x8gQf{77d6xIINzSwB4;{wc^@d)RONbXIfk9gejA&*7zT`P*7 -zXChB`9l1p(fZV`;Tn@~7RWd7P&o!v4Pa~?!AzFf)fxS%OBX9|%g>$KPa2*M2(nJfd$P -z0jcotdN>=8dQfSUo_%PJ1;u5cyf9wU(j8Z{H}V)Q4W@yQ2PqomrA)Lyf#e?8s7zhc -z@m+A)N)9jsI(k#j6{ntqq8Cu`3Z4P|8_Pfgyzb5gd?3bdlzdz0%)taldaBFazuDJc -z;s36{e{76(jOyk3j4xogNXDiX+2WX+5SsE1}xvc>hjuHX%5hU3eMmGm(yFGvI=fZnb6S)pizP&2LJB9ViAfX -zIgp_Iq-$)EBHp7$+Lj}h-y^|yM@+WWJNgIZj(ry=tTn?3BLboG=6+Qjt -z-|{JxG~9}8@7hfUe8_MS^K2pY>a##&JhP$h<)2j#5Vea?1!ieym1|&avS?zg|CGSS@*mo&H5*Y|4?s#q#0(vXhTfgK -z^JL&rHrxUMYGH<~*iPV6ZEK+)c2|w>#MFiX8@hI-tkOH~p&IO3li&ZJ){cbZqqj?R-rhEe^stPF^Bc8ZV9LTwhWV>ly@ -zm^?Lp7XQW5{KPfNQ@|0D)(E8?;wjQPGmZH$p&Y5^H0{cT2&gC~$hP~s?T2)fM=7Ju -z@_H|+;>Ic)VF0$vGc!uwCR#Tlqiu;^(Cw|>Ty -z{px(Ev(LX!{~o@Nz_q!uA+ML28X}~@4GbF@)P@|v$Nb73F~mCj -z_p(Kzlb?|ap?4lV9nNzG%Y_WYZRiXoFZo8{T#RD#25sP(N-^saBDk=WpT`8x*&f=R -z-f3{0;|Bp2uJ%_}4=cJY$@(>e{6xqFz|WFJXdM1BGO^t?oh_V*pmWl_Z`_Qt?)qr% -zOWcwR+A_8(SHxed;!iUhKaOco-XJ*UXsX&;UNV93(g$&<2jJazWE)lR -zE9q9Wd6K<({dQu_Pz3s2&kV^n -z;EQNU307~=->T##+K$);p;rj{#$j*yAt_cK(Jh?U67gDu2C}~1I_O_Qp&CFb^`A-R -zS>NbR$t}P1s+<7+Jdng+kR4ug62#wXJ-+m28&wc{VcE%=DQ -zEoy?W6o0E%U*0dlG#hERL_$!G_z0E6l0z#iy=*JZw}u4xaYIDF7@M-~?@`u;UkCG9 -z55Gjk`Dub_st$k(TcGaHfZF$%(;`8Z4~BwnLwu2mc7W9D20V}XB&69aqLbS_#=IlG -z!7D)Q2=Q%%`A=ue^g^*if6H$T6{LE~{wNV|>H*JJJul3OacpNi%gD1aBMY^GxedJH -ztbVX%$!GDT645UIs5`*(zqUs^M@KE!J*tFoM6jXBG6Zvf=6q^>mx0A?4bqpvInZ1_ -zyp9&&K0U2jD->&^9d0k02ztNPHvAeL11=Nc?5=ACF2`k4)2MFP@}%>TSzcz$c+dQ*}lC1rc65N@4^Ws9B`Mz3Hv4NeCJ@?|&^rIu@Kw -zF#gW*4^%cCajbrutkLiAEFOD>u_`y4ai)sq`FKhMB&xQ5%~(;C)J}Ge-|$iCPAzl& -zvv-K)Lg)+`g}4JnuT+{bv_?Ef%C=f(AgcbmVclEJ|u*WihZhl -zy_Oy0Y`>l2_GC!;6@Ez&0pL6%kEN~_c|Dqbr#wR87rq>I_2hS{D4be`=wcr;ImJ2AW -z32yfcv>4K8qgBl&Z@EF&$OBexhdtU5aO%SaQ0iZnn4yqXX2krrEcroDC>-)8R?bqq -z;TxWa6y=PrqlMSu`j_AU_{T;5L1s}Ft1pZ~;P(?HN4E$MC}0kB?&G?)(bBesn{lt4 -z<@Vk_4Wv8+7T4l`q6YqBAiO_Gni!Xj(4Oe)L -zv_@~)jryKDysx@@*hm>P}IHEO5)rp;9uDF9FqRy?ii;q6D1_;E|3U-CFE<^$j_`mr^PzMZ|Ho56I!3<_+r^$zmHwBclYY>P*e&JKD8 -z*cHE2Y*w^B*G+z_A`<_Cc+)i9a4`D^8ktJYTA4y;`wMvv8s3~4rIcmKW -zkOW~jMt&^JD0=I~Z``(5fy*UFk~RKBZL7RT4w4R!JGY(WUogr7;ge1vo4l>d;BM>vhn1=rqK6-?NDjx-TAHYz6=W3BUq_ -z#+1==z_hP2JoVHwv=%XifnfV{E+U6Jhv&a>!EM|c03Nieh3z&2={erPr}Kk#;5F*b -zpXnnPtW|Z0w656a7{iUeV{ZE(x`x3B`HovAbI15qv7T@5V9W^`V27pY1hG!c8VxJZ -zrMmP+e%*4oB4^J0MZyB$7}EQzTb&oxLvj$ntnHO#5QmSK0L4pf!_6uIp(m$`3BoB^W~UfT9%yEvS|P7@nH6BO*gAzFau -z39y5?#FAsfM>ki_`58#XJ}zU&l;Q#|jWtQuhd6WWo^LA-kP_ci3KSd@)S8jPPm}=~ -z;#@#(Ob@zFOUKl-n5$xW+OnY^SFzfxQKRoho$6fx;n -zoUP`?=>eD1kE%Mukxo4#);Xl#tCe6}*3mw4c_NH_1;Y)G#rymoBJ--iTfYFAYldg1 -zGC{2g`j4S9!094$pkD8E_*xKDMp&AX6_obfV^D8HJS0avgux%)bH8!(NKQToyAf2@ -zr3sh?C3~6RpT(j(p`a`Hr&#K-gv$~=RGZl58FnM+J6arGl$i3^*9~p4J&>iOF4#mN%1JBSe6`&Z{qd^`V)}!e$tG`bCG?LLW;|0C(iPf&^L`n -zUbyQ0Q(DpOnWSI1Mji$90|b)UU@Csbhw+PnMe|`2&e~k(^Mle;DruJccY9hr(3KU7 -z!5CGfX~bDX2Wx2gT`vw*Q!Mw9m-R5lKpo+2dfX6Fuc6j}wV-)Vc2o%_&SdEzOjHS8 -zDxZJhB22B -z(PX=+;BPL!T$OMtP)1C)w=MKG2SlUf$#eaH6b8|cI4J#TGq9xQv3qF&9Z`S@ -z-CVxiByX|rIRoMvhG>a5K6MIE6ij~Qx%sYh10FO0x-YD19%Rl6`)lB`{ve=$Er!m1ZNC$ZZ%Pp@N77+u1E_<&W>?g;|9cm9g}{|Obow+21Qk*S>m?22a9x)$9q2y3d`NH -zb|lXnRd1EJYM!Vx1AG2_zot%n`*QiVf-YU+lSEp=%Ef21IsryOx$a?;J6=j}KS@xT5>Kx63QpUsPzX$9?Z*WStMSkX -z!+)ptseRnVQl4+&Z<5lI28KR$pm6tHihg(*aW!Rm+MgpG%11aOv&CoP=OLy!hEKM% -zxw6xmFA*Hd(Tt|UMt?Jt^FJt)KIy%FhDV!+u!BpZ`E>gK)kWK4wm~IgqPDN^= -zbbgX(=-!`-CA*Q6RdDtGKA0a?*Z!sCFiV7-T1PTB`X8SAfqaAuGFx^2`flGYKGOs- -z(c8@Tq8K<6l}muTa9n@eW-P>WdgQ@uV+aJDPd`j*kc0W2%WUDKyu^i;3%U!~HJ`-W -zoOsP+Ix5Xu=Rl2E&}GtwtgrnI03&D$CVcj%KYu%)vR#H&#GV;p_)vz5^Y&}fE1wrp -zNRS3Qemx>f`I<;57D^fFm$Y(0-OYZu_s!C2$#)NP*InzR;$+Vy8UlCxiWxE4S!exL -zQ%#GNyN{Lm)OgHx=aSm_bOkOd-|E*7%feM8DI`p`qAAbn?X$bJU%8np&mmKXJ#SbsLYr6OxLgsxB?tn3aghT>4YG -z3@4(*b=U)BU-5((_rA|Q;g~)exP&J9EW^8KG;9(nSo&Yh$ftK*>oye}rtL9q-dV&Y -zQ?o}APV17v7v_~R3=lqGjj;0&vAyaFMA&>vcKwfD+ps0L;cgs2OydEO`AQ7 -z*TJ@(xI90)e33V(`uIHfNeVk^Ff*%D>>g9l8iV6l40;Cd`z(!av9_gdIUBD}nruLP -zcGyaP6Yov!88_ME*qUkft-u~j>3PN4zp{ceJ}x#F@6+h{1A8nD`iU&1@mr6HM~M(= -zu;o{Wo!Ko1);XYi1^?;>5J3!s3PbMDoD- -zrPO0O%BO(IfOZ<)x{Olo9=j^vQ!uy3 -z5H-%s2&W{bp#T7g<%*ElKVp)2tCJLF50SDsvJdxtjgErGi+uT3Tn&m)ac;heVa6Zo -zh1O~n>e2h=N^`uqsjo1Fqw?3D08kU$zlVJ0(#^TB8kk%4rOaHrXBy>e4=Q{RLCpTI -zXUe-7(3TL~cZrgn$rm&=&R|FYkHwLH51ZUy@dGFIiWH$uEuKG(o3~06P5dS(YCdLt -zxdV&ZApF(t2i_D$_EBH#NFceHDOiCE)!X$=vR%)q|7RR2_L)Wh!XvTye${QO&pk -z@Ov>ZVQsDP^Q%hBWqf+I51IDPNGE1?*5sG~cNgd7b2Zy-Lc3a}NV*){r%AZ%#yxz0S=m`D77~`w%?D3z_mpq61wNjLwFUHko(uB>8DMFAFM*cmh8O!e>bAN3V -z-c{JW$+qN2V3O~MNo$Xy7MCK|JcA~X;V{nWS-9Q#siz<*5CMYY6v{d_Y}YL*uwtAy -zowm!q8?6zLIRA8`P&s&=jd5#hI};Ka?{tN51z%E~O+h41OK`vB)04s`P535ar&t6} -z)#49DmcVgpH_5d5w4HF=D7}%10m1?l*GsoBNB(NnDpINQOlqwO;`34@u#W)$4soaheQ{c$B-+b+LK6! -z{Hn5213?N_$(3(#h+9#xVe%EH!2jP-5scq>R96w5l=tiqwsw=|u#A%wu`yOwp^Sw( -zH;&+YjB=8(w5b4x_VDw7s+j<2bHNy{B*TRquq7=Y(&1h>t{iu|SWoXQ1Rp3aS3Ib5 -z@B1d|BnMyJ2UtpDNY8tGKw?x#^@68)E~{rXneLgNWKu}BvqUy%d^Qt;tf&W)dmfrR -zR-+jDA%kiVF1DudQTUynP;T71J7(1hcd-H8Gwg{p?GWKK<=_IO%A8@twi$MDm4cO` -zM4guhr;!c|+p~--0BhMN6k9xNsg1Ru*6( -zTPbSjD@>&<^ss!%IAHsUAk(MlriOvBNRxilSC!C-6a!TIR(#dcKejkvh{U5ilUhs?YR;90HW(h<0P#d$r3KOgvB>!vn@WBK2-Yy -z1QH})(UTIQ>Qb`W3y2?!YN3#T?qekB2kawz?)r*9`rr%8Wx_aUm?%vzwoMBOO7%g!tO(i6e@V8YU-)jif5z2P`;1~w~gSZMrI -zHKmch -z(Av~^l-o}UPoW>q#~ee2^)tCoz2<#ih4N*0cy4#f<-K+}l_-=PfR2iK;@SozlNI1L1+ -zyEI$cbg>ZB+B|=KLIfchAgFb|M}1ofC?r51&=qQ7s@alQ$sh}Zc*{B3O?^i-qwI<5 -z8xYSIU1aGyZ(S9LXbafgjYKql`awN+=ga0SqZ4NS4pD-uV^{UbCu~4gJ1pcv%hs_$ -zvIqoUn_|4=<9C^+YVHMn0jZ#6sLqV&;@E*$B2FVpq#?eu?&qYR{PnaS!^Qsf%iar} -zW(Y~bZWQ7Mov4vY7oRn6HNAMRh?tCGihk=i>}%$zeYLRh_Uy#=n7b@;}!IiLs=)xc}qE?7UC-Q%yi8iwoe -z?VilzFTXR2#UY*P;HI%5aJ&AGNpPLVoG5&GA12h%+F3^Mg4ixQFS5snLyxKSTv;V; -zq#napSQ&A2b9@mt6Vl>_zLKQRt@yhR+0I2QVZLZ%qb{2;KOy`s9ERhBE8nf|g^eZI -z7)~ExX;QI}Bibi5F}_T!L`MsrZu}El8>=&YcD~<_f*`UM8bO~QJB3!bvv*`I22Y(; -zuZ##}F66YA*B&{p(!hD=B{_w|ukyu=j?Xw111D{Q64Y$r(PcPr*~gzE#%im90QCGv -z-ZLYX8<8?_GDS)0B>FCfV7O1OOlt-BPflw(5-;KM7ibS6bX}$x5M!kPwQ*XRnshi9 -z_c*Vy=2ZyhHq#Gx`qo3jE0=K5VZ`#bj<5Ctd)-h2PGiF$3X>N$qrii2&s!52WTK{X -zolj;BUuK-)8r$zRipwJbwm%17h8ZjNZp#%knFTVLE)4w8vA>tucM&WF;sW4U?@O2> -zPxSykkGGPkR?TvZOSd-@kVwCyCcx>~RQL(a>n&HmjG1e$G%CL`OjWlc>K -z)N>Su$-A3^!WT!cu5r$IlAE)UCZyhj=RDESF&5|)dO}<`+%1oKBQ7Ia{TGj1e6HEx -z9nm+%FK<#{v9rPfsvYd#_IoQvAHMOkq!*I871;2}&1TL;wUv=g>Ssnn8V;bXk*bb% -zWYs!{(yh4fF7QSB$S+%z>maav$7V3?8s7&O&rv!te5Iy*yWm>f;=1*CU^&a<>B -zdo2OItt3XP`8~T(RRZ`F1ciq=j}A&uOREuDjfao3Q|DM(=Pti00$VLoI?ukW!cs=h -zTxGAdDTWj3MQ#TbWWH6MV}6Rr>Bq`?)TqH>%g&7ZnL;9rCBi9K*-f|ke;7sH%TqAy -zuuc8wQqmZ?^&|xyHCQoj_!e8VuqH0yug(pv&wwiMeH-w|?EopQPhZ`bVHExh&tA&EJT`p#)pVV2*Bt~oR5vtE#*Ozj -zE10TBDD9ALpF|)%fh(BxH3nJQ{Uy^cXUucoa(j&~;Ii+X9?qXmEVPkBI_*fyhO5WH -zp~Q1X4Lvvsyo#38pB(F-8{e%JI5W?^cyx7KU6=bqmLwky7(r+#{txF&_~VF*3Ev7t -zpajUP?E_Q&FkLtzC5)1urd6rZ2YA9=6E3syvL}?0CPN+im$MC>(E%O`)le1 -za3pTDwl!LiE!WcjI?H-A-_L`WH;vPc;1TDoUPJDLb0UVWccN=g$8e_hW7gbAYG2QN -zejne5vY|i-B8&X(LoJKTk?1%zye+yl -zNY@40ef5r9q{-@{jiG6A%?6{u%i2vmEK|*br|^dvk)6X_C2O<;Z;LyM9>hKYGz)Z~ -zLm%_t>A64mn(piwJu**3=o7iZlY4?&dHfS{BpG_O^Mi7w@4a6>fh)3aEkBmI*5G*% -zc?_bny{D{iL#UEgLWlObiJNcv5n9D;r|?=Ug~){;9oeGU`BOGClJ!>6-2u4z5k^Wk -z=b;zCaNpGU8<-hjiVfr^uvNIu%7B!5J~Udb$H7Z~^|>HqMRcPO)u)r;&x|_Wi*QZn -zhGP2rIOT?Z5-Rg8o|>EW;Olmoysv=@d5u}X-R^85w(;5fi7H+brFtZMIX6>`@3AVt@^52%XAqLB^p$|u=2i?#??^zT;$uQytmkc_?`U?#VhqTdCMxlo2&*q{?0=8MRP>DMKk^c4i`3b5b;;pr4D~x%;y_4-9 -z3xri}3E7ANlL}PYDRnP+RKQCnOMk(x6QPxCerSJPK^ggR>*=E>LwVG -z4E8QrMxptMj;3vp4WB016|xC*C{e_uzOhq%w;LCo -zjP91bGUyl{wsqJ3q-cDBQf(CTn_enCGOH@bW~t+hHF8}wP~~hneb-{n!_u`^>Q)Sq -zz1mgQB+d_GKAgZ@C6lI|zW(29SH0T9zdT;mbr}p{t7i^{&Yfv6DwD6V#ai*fn${Lf -zPERK)$-ugXjP}vM5cBk5c7*6iRZ3nTJre9-d;6E)-LIc&xjx(<#6MWte99M+51EaFNTWV$PgK1&iiV+vI=h<|@%Cv$NguD`n+^a-Qk2K_UxF9Oc -z(>KmbD>57Dn#>jrGb(LZv!1r!%+cKZvbbm0r;YbshKRXZoY{>&J(44sUz6hf?-BW` -z>g0pWPiM;k8LjT2#q4YOZ4(&|rzL#T!~n(tg(-)b>W7Ly@b^3WTurnHX$Ep>)PZRi -z2A&LYx)Z&e;p{j~dmT)6K<@=S7bUX_~je_4{=JDsZF -zShTRA!wsOT_ZzDVC!*P(B+jnEMU`JT^ps$J0E00J(N%4P;z#KWrUs&X=U+#uRP0Sb -z{XE0x=`v(DzH}-q7D~VWz2^JC?t#Y8Q?gx~_;1L{SVkPoN*mclu!bQu*25%Zk3SwK -zyU3&phWn#`)OJHOVt`TP*MY3Gk@H*2(O~##()rP@y`%O!HGD-?w@TODY2I_dSPgIq -zg$~+T7Pk^A&PoeXyX3{T#}}RBg*#_t2@nzzqpsh|5P1%e5T?4cFB>oFJj$082ZoT9gBc6r*xv>6wTvM>az0#*zizl#m -z6T@DpqW5!l((6iHrD-3?jl}QYru?Ad)VHSCSC_IMXXm=nHT-^8==QGfpkv>f=FPK} -z=<*s!NVR_vpa5{rP{iOTO -z=|;AYRO^AoZB7Q-d1dGw0REZVVE-S8DL9S;9vLKXwo2M?JxNL08yC*=1mWXC_hY -zHpqA~!ByNJFXzbcUdE^RgGX?u)A6m_<`k?a>j{NPi(0frvMq@f!DkaueGYHzN6&Lm -zEBd<=j~+aKtSdLsJsc9%PB;J!DK~+Ykqg^9*b9loE~44=QT$CGrii@}VDjmI_-tdF -zGWi%8ZYZba|6e~*;J>?K711#I0k#~*Z}m)>9Okng@G<4)38k)_78+g)K84Hd+bp44 -zlu;afk=wgsV7dL9{;Xbg8usYC#F>(qe8)}aSZTLCQYGH28^1z -zNKaB_S?v$O7-v0*G5jCE#}Ft%jFEyE0~68E%@8p?5ybS!G~mm~S-3;$vYe_*Nr -zdMFmb3joVjc|^$ji3xkditxXD#zLUwLM*$P4zVk;h-F&^!gnQ939&2j2#C$$!XZYQ -z2|>&h3@TjvJ)lVz?B=8-qMa_%rW;zPJ{{Qgu3)`WgAlFaJxp@R9 -zl)dVjth-{V#buzCsDW80fM?fOELcZEDLWPH5s!(9cl6GSzM6S1uYGa#4TpV -zjne-l@F}DwU=j>zr7a%_2FmIhQbTT_ -zet`e)U5*NBbSXcazqg^T$qVxpMf4mIS0BGfToK(mO|NWV7L%49vsNoqE1yt$aCrx_ -z1c+<++&#oD;r)Q6F3;9}c?7meIa4=bG9hzja8r*Zt7mEELWY=fhy}hPp_bv3m>`H4 -z-NfpIT{X#`B17QF>MD2kaB8Dcf&a^r$PT-z<*sGFexz}=6CHN`XNU_xG=*n+)gb6C -zq793ShAtS7GTy>2-w@_222E(bOXG~PeXjrstQf1S{Pax49m9`T6+qUpcJQ9`s$fpv -zqy;HN@q*LzR~la!X?|Q@bQMBCJ5en-*v=Wx=^kyKhArI@u6Tb>9!syYHYj=8x+`?q -z@;3f7J=o$rm>_|(;5TRK`afP^CEE=-Ls#p&gZEtSdS`;!l(~uhx?y#)-X%rLVi?sB -zHZh`7p;U*8zXcn(%uMp+niK5w$4AFX5B{t>>>BIJjn%qz#hnt2Ggh&bv(qw9=-|^T -zoolk{Juo#!nc=f8d+OddL2WwmBAV$AXqC>nyyh*WhGD; -z6@~3-%wWD%AEOP2-+GnJlBBw_A5y@3xH#=ALRBv%&JvQkJDO19#(pWxwmIa8zOc6+ -zlK1q~qtc0A%6}!lR1A8&e|C_uz>t0weKNPVO9hfE0$ol^=vTYb6gZhF5+?C0pX2pn -z1npwxe2l^)eyFnaKxJ9tPX@uR>D|TsPW!GfvL$ypIhM|&O7=U#Hn@a>(zg7M=xmy^ -zVk(hSoc5gOn>5Hvgi;DIC~Rq5i5!N?Eoxo%Eetel++rhgQf{VjlJb5&q5A6Xv$*M! -z2Dy*lkqC3S@~~=vXalxW3Lkw9vgixa&r@l@9*^8edTGv8melk^M8z$ldsAsBuXD+< -zLpp^4H8^p@;xW^{w`Y?9d0c7XXQVJGa@>k`iit^n9?m!XV`=g>E}^G41d}E1KqtVn -zTM8aiChkwcNi%1MOufrMg_sBjF=_%ZrAxg8mwwr9uAON`D9wIR5c7##dn3`}8+em| -zS@+K9>A~sn*V!7`>~posd2@XHfa!cu9A(2HWMAI;uB$jQinn+zo)o+-wP&fvD<2m^ -zhk^McY#-)!B(~F!uZZ`;!YfmkWD5NELH{`*n+fn=i#GV}7v72MXhFff;e4SiR37TJ -zJw5jj4cam$8)y2OC%w1uVhi` m$Kh_En_a%f6R)@wAR-!76(S1LNkdNbWL -zGl&vGo(9@Vw3mlLk{e6|s6H_5OOr8=&Uu;7Nd-K-YF;SVMc!z&7$uM`)I#-ad(*33 -zB6yy7?uXE=R*Tnvq+2Ods1*ZOBXdvJBsDLx?Pz(b@~IW2e3XhVYo9n?>>PB8wR@qa -z;||iP=ii^VAsjSmaZ}jeRne)PdHP9_GCus^C^G-Y#jvUcH-x2tIn*SMrC1zRv!h@}bs=`#WBGBOoR+=WAOX4@w!l?0wR|u -zN2UB+5~a8B0BxI>P1iDyXN=}6Y)o5{#xJatk+|ldjCPjsCr{fkBsKp=+sZtgzxAek -z<1b~}X@tg^(eU$}1gm7AQ@V0$T20^&KY~$YWZ4(jbjEqtzH(j#+F+nDr{)fK-*>|)bLRmbZd7p -z1NCw>kQ_#9Urds7JY<~=WK?-vXVQ%;(x*KB4@do<7i``GT-TfvG!CO$g^Uz(10-&_--rF?<+O{+e)G|+>v -zn4{KshaF>SubS~@s0%J#MxYMk4yBUBFzn@?QP5dh6`6))C}oRsVH@?(S7M!)di+mK7BFHP}o^fm~$S`#5!1a9*93M0Vm_5+L1rL}`E^JB8*!y?-SbcdhdQ(f{0J0Tr{e#-0 -z2o2Zjo2?OJkJ#;GE{QXNS9 -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 -z+c0abRlZQf7MyHG{P3N>KtFe(-$9=JMe- -z(?9T&?LJaPc1Z5VfxMHE6Os)DgK+d=JKrgjTFszS;l%=|zv;hz?3b|^>h{|@>|_r< -z|J!z-*W0rlI5RX$d=TOx(zf)BjH&chhAK>%$^NXAFb~Ud8cu!e -zc`4X&4O7hOoO@scAEiJf@s;})JB6Q}y#YI1rDAC7>kk^fzD^NO;E)RLuV|JJW=|3S -zOSRvSVY8Kyt-spVaf4YB -zJS%hk1qumLv7fpXQ}>%bPFrZ_I5+WQzj0<{kLa=r@#T(Ps|#R=F3V^1EE=`m)}Q;p -zP$QS>7OVDeWF)z|JM~-Y|Mqv8)U%np{d(YbsNp4)Oz`pZhfpTBu -z?zIkmlW`%>t_sX)+KILfg$wSDzb8d8pFT=9+(1jT -z_AZ8Dep$|RYa3dy=>nKFgVR=}qt1 -zjDCv9rF@W}XIK~f6*8+yUkuUKy8wwL(OzVVsLJWD4OXjN#etv)G~H^};H}h_di&~_ -z`O#&c6a-_M`stvC3`z2n4ZDDHEk;k8^jmTp^qJ<`I1v7N>7b_>r{WU-(vTYXu1y0 -zg+tXp^_~RY359sJ9RTD;BU}@xGrSE!F@J(gpV=v0yRw{1ka5-GxrKjyB?8n>5{<>oVeyqE%%Q+Dj0JqhF&M%=XaHwk)OB4Ogx|= -z*ZUZNo9^=@AMPg0J&imTfscMf8FSdo?MkxWUb@+v-DKmmq@neUW6ay&?jp~SjYFo_ -zD!=rHZc1Pd71-5L_uIy9ugY3wunz|IMSF>yXGi|ZqNMoRcU|iXw|72Px}C7nMZhq< -zO{r+h)x!xcPn?e~JJ@7LlvU{$VK%IITA|Z7JoWwyscR>SYI|ujKY&+a$RDb8r1fPqQ8m9Chr-ay1 -zb_amQc<6V%hSh`(NjA90PjlyI9X>uBy|w;jdvyv#s~_lY3LhMA-^8FweM_@BQ5Ef( -zu0#Xf7Ja)h+(k-A@zWprYlk-Rj0&6(>;?4$&l2odMawXxO`iFk8msFcquYiQ4vcxK -zJdOW{b)ejXAG_t#EEfp8qjnJ$c4x>Gw0AofG-&p_pKaDW4*|H)yqxE%FSBO*?CLtM -z%*G=W4wD+3rTSLUP^vi~DVr(oZOjF-xgzgScD-DCk!jNFLobKhQNi<-M|x-PCj{PF -zvO+TyqK45^nsJDJKBw1~x&3g}q+Qk9L^$sTV|{gf;q`Zr5gCiI3DPbC%W?b$)?gp%%qYYi`2XbrY*l -zZM2ExPL(7trCO&%m4&y^p|+w!4h^o!7;Z+kPGO*iriJ)GDBUxObB!fxNNxXDINR -zC6{sjVPE;CT9q_{^DfBaJRpD)0;ynCC;m#hAdn-w2M$p+eNxC-DsaDeHDkwLPexC* -z+`hS|v;9N$GOk1157c>oWlx3n@d2`?6x$lYb-tgz-AHmCx;E7$~S1wNqMcUuhH66pLb?= -zlP%XW1;>ZijAo_;N6iDy4Eb+4JM;3xPQiiI15osnpd#EX6vKt(la<;*#Y@kH{^oznESnI5Vhwe -zm(dWogWY{kzu}h=J@y#*wfjyQ*vktn8w6qjvjKrvz_n%bAxmT8HBfSezz!|3{eiro -zR)5+dw#FEmRm>EFW)XW5l5B$bC(EMw8^>>yk0C#7L@)BgYSjLxLifFDg1`^EF^P=) -zu;w)Iz*?8v25dI`R`a~udRNR_iGx?ihIX%V-*W3%?ep%TlL>bG`7)U!!bNASJNmpA -zZ{yj%tunbTj_rZ}sPVD*L!}Ro%v7g{b3YK`w$zR7kEHUZX5x7cgFmVFj>adq8EiO`E>&7EZh7Y$50sjEX+ -z@nDoKS>W{Kox}pJsEd|)^$*7K&3p=)X*?<7(0kt7*}zr1xF49Vwa|_I#FW>LuQjq_ -z9KQ-JwjZ5282Vao)h>a<;ctH?<*dIjaV21LlS1wDG?K?`{@EU$2b}Am)^(eodD>jx -z4|z!}DG!kIR2I8L1lgz@zTdCmUI6*7 -zs}|+WlyG%VIGnn4_($JycY)Rt$W}=fl+Mf_UAxMC@1_kuC(=;t=Oq|Q|Y*vo5Gc#;=9RbM{^i0~t>>kVC&r^~QN>~ye -zwKuZp`5(6rP8FB!`|5h7NV_g1I|Lrn#XBU+IjT<3&hKlpttV{0jvJ)#4QgJFaqUE; -z>a^9n*ZNBqI^o0B=Vf{J??rajyZll-<==ox0clg$H5&4iwzszvr -z-iu;;aqog0Gh#G3<8NQxWd%%h`x=Jy$s{=0R`Yy$)62~soQ97moa49;)$aHkd8fZ^ -zVmqHYcWbPuOn8ksp01d>vsv$R9=a+>@knfFUO)aIDd#&GZiQIp&1gR`dK)@yv)?i) -z=r}%{0TR>DTqruXcy}LA7x4O~s6N_7xi%&@+qz4xZDD*4iEWiJ_dc|wZVCIxL^eK( -zPm2Dt-LtOsK}O!s!42xaooRm8PbXm21HTo?6vh{lX8iCm4{*3z@CfW9O?cEjeKq`H -zpR9i|I|O+t&lV_3rT-XBL#Ju}q&lu&zS7g~xp|4ZE&91{Y&C<-;c54RyOxKK0?yFg -zdv2LNcUS+A?0@$tLzu&J?Yb|LF~`IPOa+}5O(?Y3C2|G}2jA{1;rCFa74bOeS_GJg -zNj?u?CgkPxn_4ZqP`jX^mZBg6CymZuY3R3&wt1`jP92UJr8sze4K3tvj@4e7Z|i9z -zx@IbDAY7B@FXu~^L7JzczCk%k&6Y4WgPmDoylNQ8&o -zpvz=lck5f<;>9uSX|thsJ;GC_GX9^|eycq=(mmF6D{gxZ%zCeBgUyB+=d{A^6?R}i -z!0*FR+1i|99RgH+<^(SSkx=V{Wo1^s!Kg{7Ooy$*Y{BID`^cuKE$LAjFI@aHDfY&j -zYj>4v)qbZL*6~>gqvJo8O2hk_>^ZF~>YoX2OX|nEtFo{(+V~RpH3$yQ!4G*PU>!DrK4FeOZ61 -znyc=X%VE`Jjn9E!8yoqs?czm$@{Hwu&KLMrQz*W572kTTjc?UG!?(1ETgv!WvwF18 -z7rwcWQJL-2y5~E7e5|Kew??mO;mayq#=rJ$r(;wk*WJ>~Q&+`}0wrr_YdMaH6eQ0j -zQ%;^p?EOSp6j{m{$GheDGpcGjjE*WmRscz=5*}wA=qk{o(|`iv1omGsNkozFpew}z>#H@*?czO!cxpMEqxRS -z4pbj%PxO=B{@~m4bSieDpZQR*Y(5AVOE`kV#a7^O -zvC9xH2JPH-DuK}J^{o&0gOg0i5QUquPrOzk+3qK*EXcezs(eB#5qsPifCWsvk;jb< -zdEC5E=0TL%@n{DO(DDwt#vDQ6WoyS@AGdC`sBOo7x3&2C9AD4kYbCyJF?<1Ic<6Ki -z0}DKSBDo(u$pswuO(X$QY#j1{aoJ|`p`jv|oN8h(@^*>VK%SWww6&uS3{mWsD?awPz`zVpf}{n6RjB|dPAN(=nZ-Dpf}_I -zgx;WTMF6V>PD(V2>K7-lt*vdK0j6PoteIV -zFsXRvf&QG>8UUWQ%G!Mwe?7ctY2fFSoMP0QIJ+pU2QdxkVc--*qfR2jk5ag>y4Us{2DlCKd1gGqgVI1ry4XIG?()tq*uC;bY~_!-O`4rW?7BhH@#>4x#eVo|P-fnBDH^!m -z({|a(!@s9;uW{DKN0#*^L7980fgbHW&XoG9y*94}6_g*@C|6rV#LZT}H}%U3jvjLy -zx?AOXWa{-+=1|uD7+Ug+E{JRQF!o5x_mI&pNmjM$ -zoKQRDfq?N3-_;cIRhz57bBB(it>uTW$8wv{^xaL}b&uPwv|NHb=tVcYm?@j8%6K+c -zl>MjU8hx$;*W0 -zFOxC|k&~&~G<3O&Es-2FzBpp!aaEy^H@l!_a#@I%Qg3(ER95;b2g^F1$-@=3=cTu= -z`0J9j3;=RlW%|j8^}agNiW45zHe#@&_Pp5VsV?W8Dw?}O+lA`@I@Z(sV&8_K=O$TF -zl~SP=9MT0HGOpP7*R(8tpLj2sYSq+}T`%2WvQK-key53O)#+0|gfQ7AOWW1=pgk#exWMYr -z{{4A5EeYe`AVW0VCPv(mPvmlJYUfEe=Nt0@iS)Ssa(hvNLY -z$>xh$c?14K`4*GYCiR!pC)wJ2&0CiYM1V14tGdBpGGDjl?UPGstAf_WFSzhT=`BFi -z-HztxTGPlDx4$Ds<$ir(%Z5Bu~@IxX8U!OIq -zTU;cP(TA|jnKyJZi|GqPy*1-(?K3I8ZIdUqN&@!?ye)-MITy5ExqCDmxBQOYIklD+ -z{G#uN#<0njRhc6PhfFtGP`3nJ*qG%n3{BZYbKH|tY4f+WtaPy8H?MbVFN!O=i|>5S -z*GkomwpK~V+%v{Bh;Ojv^9-0XlWaOc5iQxP-0icw+2eltv4U=t&*MiR^Lgu -zCC(M)Z@QQ&*QV~JBhVPl>!dO`s5;mW23v&r#hY>*N!67<)mj>4=|^_*Frw~{3N${; -z%&@rlQrjSfFC=T6Z?y+)iN;4euEHgIPBWICQCT-0N3xH-bMq+r5nVNYw6ELtLFnGh -z<(|W;eoUjx>wyQSLwniaZh?N>V1il;M~HH_q=ahl2(Q^q^@=PS7dkP>v74xPp{U>jozbLN)7~PyfsV@h@Oyq=2JD9WfuKy6?dub`cEU(WXjmv -z!E^P7u7>72Ge?%%TP9YGC+%*yHq3mx{loIi7t^sy!$~5ixAO46TMtLzW-UKVTFUY<*?@5izs;iTgxuD^l`xC*M8K$S>ngRytwmpV4F^FuAo$nw{0-#+F0GsC}5^J~)wO(WO!Pryd|+RoGcvDj0MedJzBGc* -zw5Y*zwckxYI9!`lGicnYTk^oQy6+U5(|483j0ewDU5p{LH^a@_V7od5_SU@I(k5tl -zzA<{+uDcaGjc-#n8TQ`u0DINI>?daC5>$Wg~zoS(5p -z-8*xoXT4!y29J%?`I^?ZotkrjuZn`IR(mMwhD$07uRa7HQL=upOCsR1#a48l$wGBd -zH*U=TvPFK)QunjS@7`m_3wFVZDSZ#H3%(QwCV#FhWx&w5N1|UET04xGDZWO5p<3^EsFz&xA -zY+rV9C6>e5SSBTyN -z9Qyx$U5(rM_gx_f561a_dws18Ca&Sunsbty|A#A(ym0s5bA3~NuG|EKb&PkEAH>30 -z!TFBU6RM#`Fc^UUj$2?rOHMs-grx(WT!ppRBi@Bpm9s(ytRpx(BuxwkEwRkk4X|cm -z6ziLo+buf1hWCGtX;sA*HVSDCFF=-1nE_YXwxXr)5$ur{H0U1G?vY|)Tm5x|hGao!|~7Rr2m7)1-kMHKy;ZY?MJ -zg6LuB3yvM3zIGEc_rG(CI5v(%U>hL<_wl0|5|8gkOv(THEncE8527zZ+|FSu`ON>) -zwF0;Ezi|D`XZhT;X9GIdXH7vW46CgGthUx;wdIM`mIzi`Vc=@ZDhxY@uI%HlRTASO -zB9QPWiVh5loB!LcUAV`8;}ws*YyO%G^c7-z3^C{Pzi=&q -zpl(ycf8+HYZvWqR9Vy^bcpeH)L@Yo)Sb(-;0gA)|6o~~Wl7hr25}!wn#Drm_0+PU$ -zT4+xg#cJ;rA{OrKQPL=zuQqdwk8|F&xsO$YlLP0nyXRW# -z)7NDN85CIT7&p7a3~w%5XD4sgHmf*Rv0=HwqUvNpkEJmtOmBKzyYSU(bBiNHgH6iq -zH}h;at_>V{TpS!ExB7ulg5{s7hQGBAIAnGjsLWDQ;Omx$Y6ZhhDFrq95tXT*;-#o5 -z++H4AR$A7+y3(%^@JYlafLGPD!`)y+Y)x6RW|sj&)u7kipD#{_DNcP^NaJCc*DBkD -ztIutS_Y+L9sJ&_vpuUd2KgW-J%+#z=Lg}cf^U8#q7bkgrkIQ>4%HVe;sA>pGd)rxYr+1lHYkwOiIt_9p=b(uEja;4UTY~1g7QO^tXCmL0KQ& -zkxeQP*-?8%Ywkxd1h(QE_6(8R?a1W;g~S*ynMTl9eSV^7`C1wChtwZ#2jD|fI-OLJ -zFr^dyIS@pYNE9P)sMKNqZ?X_K7DlArcf7k1Wo)|6cXCuLC2_ -zkY0FK6auHZE0tdsXDzctmzW}OlvH}>D;pS4P0)vDX0r2nn#tO&C6n+LtUDWn4aolb -z$f>#!-rZUqc`fMe6#hgp` -zH4bKmTWa_Qhs66G?K9;WoVoaiCo|}Th?X82M)F_-NuQ%F9hIplP^M7|96v;L1zAB* -zYy&Oqt>Cr{bO$PQYKire+pPhzysrmqJXm=O9+Z|M<-3%W)bQ7e3|K(g=j$~~UKN8BK87p> -z229ds8#RTy6p(V|7fh`Yv5{GN&KzoF0cylKNUW5$Ly>1P-+%k7zQ{iWZRU!KV(H)7 -zj(vYbftNw)3d-d~1?h6)#v1jSX6nC5Bu#lpX#BP&aceWR+Qml3=-bO_JDw{0ozD+Pb4KL*$cvp} -zYQgyhVgfiE$`9`&dDz2;ZzG(Is2q{BC~#Vilgi@NqxvE#f(67A?r7D}XI~`KM6y8z -z_pwpLB;TOhXQ=YWJ=k$=$mH0zph43EeLwNfJ>DZhP|29xUCR{a0%tZ=DK}fa=5WxW -zFSs7Aj&3e02%&#uwNvcAdr1erd1O@V98+tv_YRWKBFfQ>Z~+G`zXjKy!nC!zx05Tf -zL!OX?&N@t{!wpF*`0$|m^?FTDS%HIW&01m|=)OW-V6yd{E3vQpBH`0*FBe>|40*$Z -z@5d?@x*g!jrKv&0Y%AwIHU_+RB1tAB3_e{8O?$bsm$P~)^f*0VM3}K)KKWI!4GjwQ -zeZhNZK39{WH$RNy=#g*BM&-E)EpZyI*Yga4BPnRo%KIWRV5PwXJ?2<35F~&ni09?DIS&gEPhSqzJc$c#g>Ml^81>rOeV0CmH*ZlZxjY=uU+yL`7-j=pbc -z=8u)0@pCO?FdB$4Wb55=?zP(Xeqn&sq?7q!&+DJ`QbeZAVLS6SCkfTbQL9AeSeml@ -zsM8%5#xVI>HA~BlfdV -zcEF0!K^5JVO^?@WK9r3raQm5}!1~|;K;JjE~42*Hl2|;({I6-mE+2|&3rd#GZM84PkfpI(gz*E^>ekkoZZ{lJ~R2h#g6T7vBRxku_Fo#A(J@KU8ELQI~qoCL3l-gZ8J#Cqp -zYt>U*8Y5jV3K+-+z9KE~Fecu0>j3 -zw(cMiyf=t~=J}WEBs?Ia&xUuyA6|zKXd>BDznEEJ0Kv78#^b}e>XZ}xW;pdv-aQY{ -zzy+w=dv0i{n&SKalKZ*seMBEoOT9_Ck|?{>YXCNRe)OoD*VMQ>sNpd*JO4=PE4xBU -zcPw%?58U^mBQ{8BTulZ((F+efUh&iIy+AO3DGffn2~WO&^1Y$#5uT3ayUzEU<>UEq -z^`O2jUf}M}tKh-@?ZsyAu6;rgr-~fZF5N*TUrCTV$e#S@dH=&~4g_U!;<2oS$tH?& -zE!XEDsZz^Ly1@YIDv -zu3erA41j-co)?;0Axv|h8KkI*;ZU65Ge@;@uX3#gLf=?9&?xl*Yc=f|-4zJT-L0N*-3>Pitw|aS+B3`_yp-zB>*@RmBqKlkw_~MfIk5 -zon8bD3sC&}!8U#+FJLr8= -zYWQBP#b5G%66+4ig4X;NtQOMJVM?}Rc}Y>v?Awk@WTRabngy9m9eKlQBjS`A0`LC_ -zs!rY6fbbYvE|z_~>hWF5PRUpQ+73j%Nw85|Ivx5WLHoi&_B(tDL2v{K(X!w1kJi9N -zw-|l)t0ePghtzN`r56LrUWguhGY{;)S{P5b`yKv_Y9;Y=eM0~OYQgh!ot&@aSg=(> -zl(ZMgQ^uuVUd#_*ZV&PN?#G+|@v_;C?7Vk~{m&qVXF{GyfzoHT!JR -zSx9#*{23$N%f1O7k5FG6zgl -zsQiNh5>u#QT2Akrys$;W`6kL#q8v>RPd&!aKmY{*n?9pB!Xj)r!#T>iMo#YB`RO9_YL#9>{ -z%Iti*nx+QY1l9p}t^+Hz1_VuNes}p5HQS$x(5{I65Wb7^lDs5d%w45EtO3Ce!y3iXSx|qI -z0E}Ua;}vKoC*hLu#eei8Fl{UkTVzj)1zyfpjJ_opwWEIgf-p9R_3F?`%0hSi9?{xmOZ_M|hl$D?!!L -zRth$17)Re)3#~J1MF!?gVIY85t{bUs1H4$-uL`ZS1Nmy}e_;q>42dZbw{v*o8I{w@cgP-9X-rJuv -zJJEItP6k}zAC86=e$wca%f5w!TG_1yu==JLwy9u1jgw!N@K -z{C9F>kl8LG{iEqcxmx7*`R@IXBiSKL6Zxj>t-%yHYdA#`dcFkKD13zk5JrdB_1CG!)H}mL)K-ltAQ;Q;r6b%7*7j0Z7(@!~CWQcnS-T08 -zoZn3Vn6q{hgutot#pE4hs3oi?aCKVEbqlAmGHi5}6c;9S@+?bS2^lA{sB -zj=P;$sx;rRpfCX906=;*;PG*_MZ&&A^SOu+y0S@PDY2U{n3Bd=sbT^KwSlxMfGN~+ -zo*S2;V`iUOF4isOWb{S}8vxmO6z6C9 -zFe~|rrqxAO0iFkj$9s~d=5qvfnBM;}L`CJU?!cnwg#eM!VqG8CME{i@o`aW)DdTj% -z8Q@{Ou3&*eGL>^_ih4p}5dDTdwiwm@f`~p?1`6r}6b}Jmpo`-kckI=0-sZIcWciWW -zaX*h>^nAMwh)afM;jeKrfX{|;zmjmyvRA{q&lj*IiA;<&cK(B2h+TpkHYW^@Ve4>1 -z$Q#StCWM$vXe6N~P{2fWA@`>ZJ{VmWTZqJmUcw~-^szD*?ebG#CApfE9ij6?XM5^X -z8X5)KILcpm_qNXY1D+;e@>&@)%5Y1#cEXKEwc_XR?+U~iS!1r}VqNmSm3^Q77=7HJ -z3Gf`)pvl -zG5jAvl=2N;gt>-R!gmTpPMhYHliSDyL6aWtB#&w57ffHkDYNv>mIF^3G!HY1fn;TX -z_Q*Biah%Kd^>9#AxP$m)m&>A0LN(X1U=Hu+kY_2b)O{BkG@l?UM`Vr-*j^4)WyIn2 -z@%~6L&|?;14%aNy!0F=r#C@uPUd-WfID@)I_mF}oCaBX900-so8B*Q1$(z^$#jc5D -z5ZPZw#jbqF7$Wez`>}|ezgXo5C5)|N&kxsf=83kLHO%nY^K7r|iOPc`DbU#9xfZ1$ -z?lWg(zWM-^#_ItY&j^Xnz-|LIY!0M6h<-t -zg+bPy6w4#N8?QNxpAm55Iq86Saxg)5!n!Bg0pbB+YE&Ds5kw~1_K6e*GzpmrO~aIl8Kbrh&V;F%EeQb41pn}}G!j2w>2;_dMJ)XTV6|Y# -zerq8B8X{BA8=e~QH*hISSBxV34d~Fq2EMu+*kRtIruj)uyOAd@YvcRYLkZfmHE9Ro -z)HM_y54rxVY$}Jv_;>V*|B{7C#Qk4nbk|s?khi^s -z4^cqz)$gc7ehq=*zS4Z~CufjxJ-nFEWW%P(UK-Wktx~YY96-(k;>PIjP5qq^9gN=i -z7Rho%hr@HZb_d;Q(ErhVCZG_c~jsI#Mu%pAf61T;zdUQoq(w=fG4v8 -zF}5t=4wen>81yJ+$N|9RZ`7Wgds6Nlzf>5#?$yostnQag>o8J-Dzt$b2OK -zrG9%R-)Uw!KaW5`0h?!XM3RkKAdox_q-7otx`R?TU_N^nXwg*oTQXWvqOjH(X8AMB -zXJbFrO8dn9P&yDT`B+6%F>o2Mja~4a`guoHmkv(jT{re9ZrdH^P2Zd4VmpL+p7S8) -zHkjraDg{>*0QY@h*a1gLWcHP6+JMs(Nz}#x@F0N100+w>0Am+M#Oxb{k%&x>r(iQF -zAvSi;3nfQX3H&oV0J##G0~R9J4{Bg;{G%qw5_HpEq742J+>YsAez&dhO-yljVPXk8 -zTrj3TkVEsAv(+|j0CF9?QWu|v7tx@Mu!+3ha^5QPDE2a`dSGfB-9P+sJGkfATT8O} -zxl9lr0)LPN{;8vY9sn96rxh1G0+Ia5jhzAoZrI<298JJ;BiEN6xb;}2*8tJNO7?(q -z1XK@QZx|CZoX_P2ih0F9zAi|D`(N`oM*WE1PLeT4f1)@)V_-VKG@=;;@I60cfXG=h -zMr7g{DaDiL=N;#?FmXu{p`esSglpVO!f<*|_L<*NrCNAAp_!ks$elhQRg_2JyqGZzX{# -z)|yYh@5VO6t>1vafnx{!aT?7h=I)G;n^Xi<`_@T*Kp}x!0rMi*s!+k}>m-^^458mp -zV0{AdjSw2f-H4q@8&R$&Q1vS$ra+cMX6lF*&dhWBbBR+JY7-`FDN+#7CidyU3=%$5 -zv}OT`KjY`(gf)v=!Y;uGR^~KXv(P=f0rwWud&L0B!8`aUg#R4E#gM!1nn*Xo+~9Ai -z2m!sE1gjtM>+pYag-HECQe&UcpH0)kJc=R{-2qS@|M?qeRh$Ga -z7G@57tvO(M=2npl_ymsm&vBiMoaZ{Cn*?;SZ3g -zVHU{ne94PhATS{dPht!NvTVZ3;dyq!b>v}ej|Tm*Lr9h3j?za^T4JyFFr*cbkvEz-{b;9^}}Luo-0X}V~0nEoB%*P^lD$Tt{^JL@UJ{h!VAF3Kiy9^lwHO!UCEBR -zcl&(4kRymBQRFd4Xht~vEvGrM$Y8DOx!x{b*H1U1kiaDc0WUS2OBul3vXUpoVAsJu -zSeQ(GoCGTk;zamN{Swpzz;o8G&w= -zf0UrZk@x}r20_J6u>_oiwG6X&8LKrraM-}zVp;za@L;(5t7V2O3ju(G3u_d;Y~8st^)&#cr=BDxab>oSbszkupo;H -zr!<7jH_%E3(S%SFXh9W%4Tz4vp;v=Vf@9fkyLX8az1Hb@e^>J(&=EqIM6NF|UIgsL -zs1suh+!Jusz+(N$Vz6O0nnRC6GyulMh*_K`&KD!6JEJ -zPX4|9KEpi@h8B@35!i;->OzawA=D01qE5uCU};)uoaIOWZ-UkaG93OC>}Ih_P#vnM -zJCnb4HS!3+iS=x^$9j_>r$Ca!|1pjbp)Dw>6>&YUu>WpnGwjOne~e#Z5XBArIjE%@ -z+b^!zl}N$ayTM2VWA-?vlo02Yfud?n}Ot!PZ#vr9D$Q%yi -zK$Ou~UBy}t#bCOs`)OKV*9Jsnc|ct(?MK)$uZin=q8;(icE>A4`Z)P`*-Ucan+6Dt -zfqbqpu*0=5>v9jdfdF?Smy3DBsmWeJvTGOKAz|A|eHMdBouwW%e?VLWD5g}U@3cO1 -zta%m`wg#mEE(fBBY5Get4laNeOf1O=Oj5Y{wLrDLoO -z8e$MJj5-i8nGDDFm|~qQ+Wn*$JQs#8!1+L66DCGB8$4JvPr={JL-Am^k5`}R(Fmm5 -zfRC9BOe>LmD!3wsl{6&V1TkA5#@AC_8tJdo!5~0?@(nhjFd1e9|6$xKcOcAhK5Ppe -z2=c;z(YYKlJHU0a9sQCvlHV{2qa%_%hyz>cFmi|UUKyb+p>%A230FUSjtu_9bu$;( -zxI`P@D7BBW5n+B6{y32P@9eFJX52XRdj-(wL=yeKY9y$@|5y}s)#C+*U8pgbtShk{ -z=>)fqI3gl-WZAY1!cfF{*pLGo`!Rykp!#9@E}ja6qRE#O|jD4KA?;Ih~aGm4ux -z^S;xH5H$3p;mzJoB=22Hdf02!`04bgRYrNUnBazqP80BM1$&5Sj0-qQM{LC*wueY< -zE8i{O%6<$Nz?6lzY)zISsTa*0?ic8?p;L0$;(LSKR+vM_u+?;tiT2f<5^O*MYU=_)Yo|jD0i!5}ejFV2Vk30=_RlndT}!3F -zb#Da$4454%aI;!c0zR#Hc}5hy^IB2hUg}IIb-eeyt0?6Z{E_qie%*$px$ikQZNABr -zJS!$ief{|lmVaHxMWB1MTqW_AftM?h`Ok9YSTTq& -zISv8@9(#Uo0gpG{M38Hh0Kv`3BLE;8G(g%2e+vsQp9Cpa!6hTn^kQDqopT(xPptMq -zg5P&sA(E>F-pwadz(ECoT0n}ec^d5`_%C5$#dM;!R__z~DCP6Bl#c&w`M5j04ET;+ -zIp7H7CxrqUB%#7D^by3w!(W0vMUE?6;GRAsbQuQIAX)TF9**xNd^iMjf40wPo|_1k -z>hta$nMj1#2D~FG3Gg`tyk~|sZYhiXT1LS1-C8fD4rA<&!j2_z%FClh&MvHAC-(s| -z{`~@t7h`?Uk2Dm&0u%Bt(~133%^2%LxK6e}Fz)Ro_@$f_vC>0+DO?N3ix3@y$8QVk -z{x#&6B5VnLM{rgdx(sX^!SN1!3iiy{;$`l@0%&NrWQgBbh~&kok9ctZ&5y88gs%!-9}~joV$)ZeH5E!Ge5fi$m -zQ$W_7S1nI_P34+YwiMKd5kbZ0mg~wrJmh)bth2=ZMHafbpfAa?K3&3>n82tp6)@QMx -z&C6>E>dcE@q${QAg0lc58p#>VJoGsayn({KwPijwz -zUCsUMm+)2;Ka%g(jK%G_uAI)9srm544c -zjf9V-QRSy^Se&7M@-yf`BY{0>EAp-2%FPrIJ}I2(b@k*U$2BVe(83OOZy0SJ@X0o|j(Hxe1i;^l -z1#SmAH87U;^j~nj6zpaq_ahhhJc<6G1s1P;Yr}wwqCLXZEGG-}O~@fDfCW2Q$`^X4 -zzV;1A2Lp6&Q-ZZg1-FIG|2`R!_HDY;;=>f&#QMD``ZpjpS;|exQpXVf%4s<*?Y|ZneEGCJ_PXs0IU&2 -z?m4u2lh{y!4!d@5ol-YbC7vjMI(GNjQUD>HKz3UVKPrpYEa3!pXLm$|Gdv=4Lv`Ut -ze50PrN@0%^jzf9OBuHv_tqv&M3uj_@iBnw5!A}TmHY~}5P3yB*)lV}(5B{h7?(5LO -z034=r<=Wnyfzh -zCkmLc)21!%`&EBi?VKiBbk~c}&EC~fb;@HUzMle;4SY6K?g@2ueIHvl_8xc<`1z)| -z)Okl0vSgRwxpnBAA$NI5Fn@Qt5da=ORGyY1poH)KSC7;R+&cD1v7vX2JyJwR|9GS@ -z{Qs{Wskg+l7lpu|mKgKpwc%o4xHC7rB!*HI;+h_A4aPKD=qRKcJ2I9`R*K)rPmMZxh8lY(af#0V4b -zAf#IfdKQ-jlLbgJth|rIi7CXL0~T2hE+V2D_NEdg`(f1+1H6WgO#MrB>?6%y(C8$6 -zuH`on*8e$V9JAQaEOMvu -zH;JYVsBaJ+JZ+?bh@tfS>x+;!B2kLn&=!B4O6wTiP^U>gmk;b(0H<~{N -zEIg27CpHp9H#0VtiFB{W!tIJXa!_)%)aNrg`VDhhM6VFhLWh6qzdOgMAgT -z9-yQOgT~jw+W{|B)SQ#|TiQN;>`t0Iu9a0urgO5+Oc5=CW9TJEXgaD6ex?YuD<@;e -zzeBTd45|?64COo6xuh=EJ74oA5Xz#=lbhVLAUG5`qsB));S;VEgJ~p#7x#_@E{YBD~L$XS%>+m1Rh52{YT)ZrOIb#mB6@{{1ieF7^Hn5J6YHj -z1OeDxL62|%${sS{aDJd`P|Tb_7YbFO(50>fiYHeoyJj-|ef`_6I!UvFn8b>lTH8p+ -zC+Z@O)%(Qb_n;Gz*q3u2cZ{4-fbI9QHTQsqw5V?8BLZ8F0SF_aU4U(8rLxg+GosrA -zAC;KyRG18+LHr~{gWG%~Y5R!K8s3vtWI6y{mOlzea_o(0Dq-k0jnDK;Ab}gLW>8vCQlo0sj0uJO2NXY}O96aSW?+)21A($@ngkRupvjmj-ybl-4`k0E1DnkBrv9*fjE}-#C-| -z%|?tR>NlWi{4(t8&Y9eA;q0`CF^EN=vs={N_1_ux{xuW^fM;ZiLcm7YMQ}JN@LIHf -z7Mk{@VLE6o56hQZ%@8j&X;9CxD-&wu -zid)^8B5V!Va(?`5v~%r@l`yq6%)CgbP~9zRBucmQ1{^tz_NxPilT~tF8}&W42-7tx -zELWWA>~q^K)p;0Mz|U~axfEMFPf0`p!b=0Ln>65n8QIyK4WJ^E44{-L89?cffYCx$ -z!+AVh*lB??*=YfA8ePdw3xcDj_&|}#P75|X8rQ=i#$LE72o`$AJI9TYTy>@&=v+W~ -z%(F#+H7JjDW8&*V&r3abFI7ocTRy8n_+lqTUhFSJ=i)W&`4uU7n~?1WFT@sb$m-&| -zQ((SDXcA5WMCD>x=vd1IY>&hPeD>5MNFbdfk~7+PehPZI5)+) -z(TpHCNJ@~|93;iLB1lS5)f^->jIhVDvl<_*uje!dX^D*?)yBlf2FE`gD(y81N#qEBVPMaTO6^CyF@95F`hY`1}T?do`nm+7>4loHn>% -zl35Rxnkwj4=#AqT1rHFa&-t=c?=9yEbrJhmo17|MCF%$YLQgipgDSFlE -z3$2!3J-lwDUVTi!&K##P-x2<)UuW`dd{|#5W%}l&TXE>v%MBZmWXJ2404TSN_(pfP -zlmWT-M`z&pW_+-NR+bcJ)~!0`t3?Ptd(aiEZK+l1ABNV&Z-bhO?Nf8Xd}ps7)D+$I -zM~QBCSl9qDf}Y=#?+PZ>!<;ynlSKLpZ|oa_YF|vwEj*HFB*N2ww%nOvHvC}giGwBv -zgxuCSv!;a#{0m^F*(@IO9AXp>Xx$)#wVG=oNDpCgJpSs)q$FT8PiO}4n9x6@<}$Vh -zF>_^ULMg&*rEqBBt^!|KhTQlqZ_a=-ETAnm(E`CzlT}R(QM7~jcWcT>PTt8$5qtqi -zOIA0%g0cV{H-xW0JDb1>Mvg#jAZ|DpMEd-q1j1LcwigenZZ~G+t~w&KzZ#{xw|*aC -zbdPW7xCR$&xRvi~<)8+dZh+x -ze-$_TmPm9%HWS@3iy%jGvN_4HLBfHAUbY^m;D09h4f|V6P7KL~9SKSFiu!at$@810 -zh42B#Ui*(cHJ`Rctd7g{* -ztju~=-$TqN{)rHrN*r@L5(|RUf2J3LHxU9=qp&UfQc9g;K&wUo(wG-|Sl>!z3t`}- -z#r4gSyY7}xC3e#(w(6cX4Sw_MUzh{Ya+&AwR}nSUrUUb=;LVIY7A`vjOH2F)yOaz5 -zl#^=eh#rIYIi}zjWLTFR#!FXCHlB}{!yo$En6=H;r=q*ATNm`S*gPCPu=aI#_x^g{ -zZ?KGMSb-bimmYN;j+)PU`P{yclHF~3bH0`Qk`hM7#^m*;Z -z9+EvGsKIV858b_KTV<}JEp+1hsw}gF8SEkAEMaDSwFERi$|Jj=lxA-)9`pS}IMR}4 -zRRXzRLnj4peA~%w_&$&HtF{zb){9SIJ&BJNZ*iwcD3Lqc@5rEYQtai53$;y4e@~Aa -z6uj#F8kuXJw%oYI$OOdFqi*!d>KTbsPA~Z->=_f^V5kF)*E{iIM^;XCN`VY)DtQS$mC3n!2aVTjPy^mHzoOAe|hZCGKm8G>B -z$VuTda$pi0aUCo7WHU*P5U9>m-9)-?cY76Kg89Nf`2ZT@YI++lpIy{xtUu3-tvZLn -z>I-_iQ`VMYQ`k)fAKPMNf&*YorJBcGay_B-mE1EA^E8YgPXb2mz0`88XFQd%3y7#@ -z+^-@|SLUyBJ*qp%ZWvkUC{oGuLi7#t&ZJPJ -zNrIv#8xxs~?72YB?l$?~<-cmKqdPEB;VI1)Z8l2H0*1reC<^Ki^TiNV!sCrA`kfX9 -zIUGu~!QoKGE#XiA*UE4x@-Kq -zUp{MB9T7pf)=w!CDv(3NJ{a|@jv(EhwJ=B7kMG)ubI4C+Ml$s+t5Ui?ml-4Gbj7Ny -z?T^pCbTs6X8=Qz+>6}mb!|-5^+>?q9=SSY>sBH$+H!%nFk8ZH+rt`WBN|}sMGNYD*Z^l{c6o7k -zcgYLfkOFmD@s{C2`-DjDwOW4jZB7UNk1vF2jgHA5dG+J!#d-LaSVV&9DOqwBw1AX~ -zh{+*I6oieepALeR4UtyD+nhFi>H~qLZA$$r2gKG3Ogo^y+Gqsi-cXM%7XnJ_gANtc -zG1)x?5Qg2O1%uPcm+P~wK#7i(_!=TKruP{gV>>x!F>z1MKN=G(vRKlIRgrk;@g3J! -zu949%vojfhPPgMgG58P7GNd>$^?F4y -zi-!R|@SY4G8e;yQs9$!J8L;}{ZTG!k4mnS4d&bM{~6J>T3e -zxZ%)hYRWgW{NnosmOdu?s>32aZ64v8Sn}z%tCQ%oT8rg4+-9%OKp<1{H~n9;{z)g@ -zj1_58^!7&JX8lxNCU%%LtiPZ57t7Hx=?yq@Wy$XYHe+zuly0grpa^5E35U{NHQil@ -zeS{u-2NO|Tm+|LIhFkWKSck4zSNjnFieRL__xYOS104WjHCZ%Il?d(@khSokM79uI(Q`9(M1w^FPVzuO8ten -z&;nm=em(HsQV-WitGvb7?~svn9?RWs_@Xb?|D#Vw@ttmnExE++-6(6k!?JtyTTw(A -zqw|6dx#>anVO@GOX7ov6=>A1cTu`k4iv=Cw#|*D=yl1P`nq2Gk+|9&raU3VYNk00W -zi4DsU@Cy4d`GTWm1m#F6I-TCf9wJ$fYAcS4!bubXA(GSJaBjVx`)L`x^`#`)kEAvl -z;Oue;4&gX&55^)PH8=Fo1t|$zaf;9`JI)yEX -ze+U+8bUl-*ouA5vq;qlu_zJp)t=lrd0G?3OpFetr-`k`I;guvh-5NmuXN*e0Wb%54FE;|9EcJe!S(iBm9^yDJvCy7K -zIuQlUMG9C_4=&y?DE%95m7tbM*Y8i_RYk6i&WVe6A8%P -z*dP_=N`*D69?3$;R=`!g$>8H7$Kao>f}pdEQ>!ady#7R*c4JTnU!uZ1_H3wStEhQfrk?e}aN7Pa_fa&UZeN2AJ%dzYUg~Qta -zU!_6;%(>%W%mBuQ&?Y&Sm-A0xL)H+G(fD1`LPI2Xl0PrV10&B*t7)X$V=$OB55eq) -z@)$`Zvqy~xnLUvjdyTpcjo>^&k#nLXA3~TdTS3cP;|87cIn^>=-#l=$aNO!xJ}G?P -zRl87jkmA2G09PR81N+KL>HiOR70;yl>+ARy-0PL7gE|%R;^h_+7%e>_sUc?>_Zh&nZe -z%rY6bAPh}xH2E^^`F@kVXP29o|Uo3hb?7a -zX)L+}A!xD-csrog?@sbYlk|5WTNA49Sng>WJ>j?phwzOgy^<*)#jzEV^k6?0Kur_2 -zki%@#mRE^35b0VSGh`Gm=YtPDb6NnG5KJZ#)LXKjw>o&v#!4+f4({N8D_!;2P_&0I -zexv8fmoIkf$?FO$>d|+QMI9kZ-jKH7#l@SBjq6{wA@2J~qN%&34>R3bW-0P-6LUku -zNQ)di6?Wto^Do~NN^)lFwpu-(@zys|O4}8rw$W!Y}Kn5OcrQ?$D#+pd#2XK-`@cXBc_eR90SW(>s -z+Df`T4Nl9>GyIvTi+|%yZxyh^qxlqG>cA1=ZZlxOItqbcyR4~g`&Jm0X4k0L)zABhg4hDCD37NzbAOYAWVWJ=tkI(xVTXU>Gl`6llP -z-eeh^!d@V1i-ylASL{-HbO1*PPm)**^oS?|_loa08;8O67m6M7x~%`^9Scx);QGrT0Ojm4U -z5)Irj3s5$&%#!G0(1H6}{hkdM)qf<}xCNgNWeaWU>}t~IafB;S>agfTdZ+(3EBNq+Fcj)d{x=nZ0hzowCdxb_+>nuN%NV3{oVs -z7oo?$wA|in-QdiOYL#afC-L+J3w`6Jqa{x3hq;ACLY)x5Epc@Q{40A~CH`ywS6X1i -zu`_o3!c-tN#QqjcVq4+hE$D2f3`ONE>N6ezCu!#Wy=~$V&+y`n{U$?7 -z&J9V>5Hf8;fe -zv%@a{rQ~3 -zHbng9YKhJ<7Jh&q+rqgURP>cq{ou^)mf>*o63HT^7m)?s8r~9J2}YHjC0}xDB?HY% -z9TCv>02LG}*8xK5$dx<}5aCV)lBNxp%preJFm! -zhwcHJdMkv{@C)zhmu~N7UljJBsAF^FB4uWQt()^xRba)WzF^MsP1v -zR>Cf#(LYY)j>&XdSSY>BXn@qduUt^ySWYu2#91t-?FL>FO_|>f{8sx#E)yV0X2V8A -z2{-ED{y)Chj5`m=JM`yEOP=hy9wQ#qhmU2!Kd5DSZ(2H|lhRom+H$jb_(6fHs`zJ} -zi_DB8MxF=*#?F|R7bNWbICk(inZ%c8!O~CGBSzf1G+#vKTVZ;G4^sm3?r3zWgv+m9 -zkXp`JK=d=nIXm1eh`4TA& -zE(#6>eGlOv!EG~7@VEDwax5!5pU_uvI}m}TxwW~BZNkL-=tZ+ -z#>qg@p71kVFb#v(vxn-d@*^WG^=NzVnAjl|tgcG#pLP)Fdjo%K}8p*menpon6 -zv;agk?{83??&X7vQl(z6w&IlpbWi8^f$yDYm@#SVDyK2M~%SlN~MPj)~%7o+Gl-Svn{H%<4&DDc_ -zT%>qESp9i@Wq>U9gH?PMV9uT^vA01=%Ss^tH1>kGm&a^bcjMr9(#}3uIIwZRgHFsBfAiNhq@qYu_-8%V@au3)CozGK`qaE4X^%SAM&K6Bm7=O -z5zyuDBVW+O#&*763O}OWr4Sn7S27o3CsJVwJ`xHdbvmcOFbaN}!f7BS$b>R`Ra14M -zPI>hQpWI>Y+m@)yZ&;O3vQ;rwW;&UCuJN0b(vyUx|0he5c--3p#Fcn|@a;z*Ch6b= -zMGXiELTnT_B+)$aihda@ev~Nd@8ZHdH{WxrXm9t+@#^>iR|ouO1C^h@Y8Eb8wg>k7BT -zpoQD{Pt6m##9X)V+5AHoY_-_^ij|iQgtt*G4hhQZaDY7EF@I?z@W=@kG7K8LtDf%H -zAzrygvFjgNgD2R06=b>-rGSeJ4coZU#XK5cc%8Gr*exXkxHZVp_IftPhVk?LQxao6 -zji=P6XPD&6jbqM!_r|L-x0gomIpL2}oW2M=ACVta*Yo6NrA;Y$nOVsFhM7@T2Th&& -zIZvgu1d_4od#z7xEb?q#3srCNd(l<`Sc?%u=1l-)tWq|135sjeg#o7Z|3x24b5}`|TL!>L5=<8?>2oIPftIm=Lp_=+@xG+fQIdX04%eRNl -znGKwv(D&}bEB1-4~;-WlM+(GRyg -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 -zi#P&1z%KWpfFREAa8r1wBu}Lej@tetc -zy-88(+5uMM!T{2>6Azv!b?rch&{gFEY(v*hd;Ybbh72_=oViHixUCBPCM=Pznuj20 -zg#?%f0v&kJJ8<=`^6?LJrxj;1+44pL(IAWY^?f_>^*6JaB?lyiFT2DC;Ep6-V43#p -zz}4usU2?s~TFSAByjbgzLp5h|bwNxQZQYP?^sIw3FTs3ci)ev$rv-Ya8(UC#chlYf9X$fcgV5yy94GQfyp7{TxPXWgVSq30zu|BAyDK`6^N(1M&MujMZqqZxA6GDB -z`Tq*9wNNN|Y@CCYL^zQ!Omi35gexCIz6`*bzltskpURsQ1qqS+I06M&*^ZOqA8+Y5 -z!ICo#@we)@Efy3a{8X?5wS%RO+r<4Nh>Bo@d_(h{xCRG3EL|Uemch8rZ`db6aMA#SpfLW;m#Q?duFZ=&>GQf`wflIpv7$qu?&MC9U*Ct|T% -zqM9Hvc&%+}2Vt}XSb^BFYlf}*ak54oY==v1*z)u~=y9I)!If-xe{Jr7bWgsh{es+n -z)NYBF4umiu0Z$jpS@VN&E#T?YyST>2c%g8Ajtv{6qT}+Z!H=$I$yi}b*S90WG!XaY -zoC(l(lD{p#H~wJzK##y<)~h}l#e91C)7rg0m-TGQijUuu@4kQet2fyxDG&GL463jS -zuak8dh8xB+R>;)nC9GaXOtsJ&9A5pP@^sOzrGX&RVd<dfry3`Ny+^rN?vX5@kN=X)vlbeEIj06ItNo=cj7kWmY0o<;6aCN~ -z#Pa6N0Y}Ugu|$%{W%CHIwqyhrm(Ft(6kdUWhHEbt&8Dy9RS&xoa2{^^!aoi1JyepAYL!RR{!sl_k|2jW$&VLTT&93eJm4F4STZuzlx_^)=8v1r-B1wji7q0No5;CZ#w -z55wRqB9Q39B>-x~FlkmjNK=-$`U*RY$bLw|E+BPbXBtFQ9<%_b;Lawm>N)drtsx_b -z;HG2hFO_dH(}gmi{ZOWsttqhUpkS7Xh`BEcQ%Gh8+_>?|NQyq3wU_N#WWb|roM|~s -z>B-nY=DxWP1DPdf)12VD*)#_-8(l-DIW#S1I>$mHlTCAiB!_7(LMrfJEUwxX4YWN5 -z5{Fxb1Sj9PL!BtY=G~3H!S_RKSlNg8D@!hy)T|?aLD+keES_bjsE}X2@Vq8<4itt( -zl8ot`@=Z1|1d+tp4JU4V94-=3&dSu;Yf*V^9Upa|Pb&6$Wp85xh -zWn}~pYy_`=L0HK_OjS6Vm*FyAd46mZLLDL1aVQwwwxu;v1Fht<`}Z>02b9=mjHd`funmg+)uywJaqoyi_PwNgc{ut*=^!w+UH6DuJ*+ -zo#2ZkcMJOxq_oG8IC3-WB8^`lO#O7B$LY}h-+pX7Z6L+3L(Rm1j8!BiOA>*lhUt+M -zA9n`#ajic6fmA2X;C?_(LV$$hGX~-F&v@V#u2orN^|0xnhnol1d{uMmrTG(FZE-Z< -zs#8^8qK4qWe1^dxJM;>tk#;Q>5k|}+oJo{IJTQI*cIImhlZeuJ -zgd}C9+5S9*5ix -zL{dKc!!e5Q7fc@M%th?0r;sL*t|@t(d1;bsb^5zWp2zQ(cx7!4gt_VEh4`a%J_PIf -zrs#V0H!2zn%;$faGqsAYuE+R}vuc>wbatE&kPoKABAfO8?AADL#N(e_|J_s{;gJ6e -zODbbcK25#M@Ry8lBK0|_$;8aRaAxkcZSniRwH=Qbb}TyZWqF$u&FlGWJ=l)8F5r*6 -zYCL16zg{xAI!SSj;WF^g+Z-3Jgj*)LD41AC8s*%7%2w##^bch_WlBMk=dU?#$o`g{ -zUa(sI=r>#gDr)7tq9l=HI-10msb*X~@WUoQ#iTd9s6oDL!^#RSbkU){P&Nk;Fq(aZ -z8|ckw=!;|bWUgS}VgIgrbaU3}$QX$G@hc)S;yZe|CbR(R(s71o|-|Nu`$)aSrz7FcCaBi|{YakvT}Bdmb!Kl^o5n{iV`#WSWKKZ7Se<;W6IG -zpa^JD~-cpf%}%fWu~;!B<3r<9UTnhZK75f-7>? -zy99Y!d^pe3712{h=n7HX2Ts^P{48lDeS*Vf+fSYBuS_+Xz@wJEkhsWSuGZZ0TM-9D -zg5v(n<0WOhlsb_UvpmBT2_h_olu=S3wJxQJsxEu4N{IS=>ol;?Tfr2kM -zJe|6N3_}6zhEmm^<3f7ruUEw0NTtXX8I6*f12eV=_PZSZP={eB(L#jYnwgGet)RZwAmo1!SPf4%dq3g5sqFz -zg{6imhvz%H`kF81GaEUGsRpW3=GOlGh -zUuhNYm}1@z(s3knGAXRsbHyEw -zh=BnKZ8tCUc0KwP-GQ+JK~bYsbzIg4sCs8rIeoabuyCD%n>`oZp+Y9^-SHT6sNoO- -z?_quMH_j{WrcT#1{aUmBH3B{^t@4mt9uiujxuK8I8rEqNforZ+ct1bJv#XQ@^sWH) -zv%qqL%afi;PjlrhO(dW3dHKTrpoH|SmV(U36e-J@P#W%u=mBo%OYl0%U`t -zq3*`Z1N$@bk)m%L1$G0!V@IWs9^iNC1F|;*FJsAM#|C~b;-~m|YYa(ct$z`+6yZM< -z4Q0TCBGU|-c?{6aFWb(#H-BpTUQ0RXt`-!7@c}v!Xv2hLCgMB`aXGUFCIoK3#Qv~8 -z@8ELvYsM#VX=i;vd$s(~%VG2gY2PWOGb!$~^qZbq6@S2TVZggZ30=i>9=<}WC%>9h -z1LWM-?=~)XBIbXd(8nXn5>!Y~tKYq7KQ_}L`&9+0n~AbxyJHS^YYCo0CRPq%P>}G< -zxZ`!qpaDC)rSW+5V;O~V--%{ -zfW;PXi>ps4+R0wtE|Q&3w5NsBtVr3?EkmO4R~Co>f%{;JeJWpi+M+@jK;iC^2w`H1 -z_6EbQ+JLHXVR -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 -zs&`h0t|ZcnZO9#bPj&bV53 -zYk6J2mj8>_PzZdNaz!$~o39B2_kz{++(ZJ$@Gjc!xtnyu%T+rb$y3 -zaP#o&DPl3@cVmw2ypkLuf$Vn2Zi$qycQ^dkT-$qlo<{hrO*j0Q?udM0I>t@`s0oQIH-9I$>U3Yb7OJiP2TcZ(9C2cQH&3VH8J-T#xR=)r0 -zIWMQTn!}5-b2(l*NX*&Yxxn4{rpBY+j^!n~Q-{FEgwL_BY6hmYq-q{4;c~Qj*hrg4 -zg;cj7A{8Tz8ytpl{JF9*HM8IGh94o?`hTe=?GA2mt0l-wQ>2>_*2Q0Viad$1ECqlq -zZKdh!dSTA*gkV+2>gKhl>+q>g*J7vDw&9dKl -ziT-g4dY1>aoxsbHDrQ^6DmY$unQ8Tc)Bhgj@RI<5Hm-a8hPg+LsSY?9yld@dk*jU9 -ziE=Ui&FRE9gNAEXL~21~t$2ZccmW)id3~Q9FOmRSvCr>x&0Efe@7s=uxqasd4en*8 -zT^1LL+#B7{Z?P6Sm6sD;pGNe!7B+l!+Uu$Sqs(`Ic5Cl}!A0K6x1dD`;Dg+R-;n9P+u -z>(fSebWe&2TR%CiIW0B7wlxlBF8#ObG>%J`5w@Mx-s3^Z%nOfqIa%gD2;SlO(3{Xq -z?#<81`;@G2Na;H1jf{Gs*BF6_lN_8Z|G#B8O+LA}2E+u{PTGdE0ERmDRiYh$oPp14 -zG6p;2anxAn)i>ALyi#Dd$9Ay|AIWuS$#XaXxIJEXF9;LfVahg*Ga~f5M3p`a$QCQ( -z5P^1aTDTe$#t_%G@HFMnFBY)qdw| -zz2L3PU3-1uE0F?5$q|q7b3B&^^3h^m)|Hr`Pa5kJH+MNiot|((?~`L3J;Y?v)UG1T -zD<)&QIem_qRjs`0Z+Ue1GTKkmw{cbH*~*{ZnSis)=! -z!@NxZbOW2wS%sRzDa%a4&-dF*V)%@qL^J{*FF(eSVW#M$AkbR8?k+q -z<t -z*V?e;Ng9CTd?>Y4cQi>06H -zw&28oCay0;6UV53qPo2-yu36vOrKAc)6ynDfm%EnKIhCAJ2u69G?INXjhV2dT|(Sc -zM!^Z*iEB+NpU7qbHRD*)F%|i>xB#fy^PheU*W3;Py{;!)hiPce9F-o`abv -z6Ku0un^~`<6pcWxjnjXwXz_($Zqarv0l95_7NJEA2$fC>z>T`fBQU3k&KyFZ7F8Yv -z>r1K6&HP9Nu)5TXuS5!mTPbha)z#_?#&g@|7ebY_AG=_u5Orud<5b#w(72rPZ6Sc~ -zj`mtJ??u{d|Ddc%URLY9HoouSx1#}LS)p>m;BwdOkR`(>MNdi`+Qa<)mXN$egSra; -zsj~rqsSk6DGx}%>X2rWZGsFZ5zpA&)IwPMmd9x-D)yKp*eM|ou!!sK3;9=dH^5)Sl -zA){lsy!n3RWd4cORO3B|HFtN8*-~9s_p**Dfn{myo3^jl@c6LkT`GT9KON_5`>%O= -zZ5hi@6KGO;L3zZd_Yr@#Zo6~=52>W!H*c-CeE(=fHFiwUGnOA-8hf-=0^P+uy4Le>C?!BV+D+gOm|5}<7NDmM5Y_i4S -z-Vy8>&Rl81&mWzS8-Lj1Qns-{ljF6;Z?H%_bpGSz*s%*#h~oKBshFtRyJvmPas6od -znL%xhmlVEF&q;SaD)(rP2eo9sD(yp7Tv&{M**HHC(Zkxu=9kR;J@^HltW5hbado3M -z`n&vB(}t#FWnY(`di&r0*R#VJa)HK)NaTbkl4H$wF}G=soK?55%DRq7Y$&zxTf1ruQ -zUH1zw9oQ>@#X$yU2m4RYWJVgFzepf^9Hn%y7;+Q*U)b|MryjV5NML*?Q+v_8G_^fk -ztXRbVt}2W%$`ldOSfMhAbpKm9Ez5XNsRu01((yM2#mTP?+SyYI|Fdeo -zbyG=4K;XS(eK`?-#oepU*U7TCyYp(I!qG|mpkO)9)*zi>5N -zEM#a3wxYNWSkgqrqrv*hHqHiL9d&C`LK)Z1Ya=ktxp63;~+n@wXr+<3Wkf=-?)AE$=h -z+GOWn8Rq!@{mK~K`_&rr0t6BVAY_gi(6F80m|Z51w5z2x(oDy*Cu5xNF!X@5!DDD+ -z=(S}mMK%o1D@a*eKaXg6QG#fB0B!(VqU9Okn-eW>wAEtFud;!}R2#B&$K=iZob-Q> -zEdAOfy(0KAlB38JaC;6K$wYdVy>nkWXC5!>kJ+03 -zonh&?1|pLCyG1=nO(5&Vo?%pbV4F%VRp?@r4$?|tn)-}L=-WS=re+6VoH?vWTjF|p -z!4OPT;B2sV9#v&)ipm=N3y2KQO>N~6Bwyo-fA+J*r+pC&cbnDUcJ#&PnudAmMaah7yYiDr7(iQO>Zz -z-k9*aNcGdE-;C{x;6W$M2I$7HtQjvrIUCEml@Kz9sp$H`V^Z}+b6_K&O1{^3oo1}< -zG&xQo_t184{BUZlfb&Tkb~L0HfB5LQBSzr&BAURAmcLz`Rojpg(2G)e>y63$euke=i5# -z2{w9Kc-7u)!#ap6Y)I#~@SHRg1hjeA>78Q*quupE7m3?uHde6L)d4pP&6$+$^`$d& -z<^dL$YH|RA@dJ!{ap#6RXReuo1>-O+r(c*_OIXN!{tr`zgumGW#824* -z#0`6sCDw^?c5S!A*TTjT4ek4G*L`K~A}jRJLkWEc$pe{Oo)+_5_0G;>M&jmr?zR4t -zz(ArChlL|(lwtNXI*W5PGYtb5=?yP}VOcuH(D|m!+WDB>KiZ8W!dPm72xF17^Tui* -zlHS`keVdzp`+P^!vkzSNEOqLBDpy32P>!52ewbeKRKdjMoz#9(;?CFz}LG>Q;zFv*XISSx{+*cYZx8_n#q=m -z|A^w9XU9V|#yuHLolFSuw$A?=&uZMGV|izA%t_DhGc -z&CLEd>KjJO@2{4)2Gn+C527JDltP -zrmSW(n~O?KuMGZPhru;gh^_)$!>OgVE^hPE6^bR>=KEc^li#zU>1CM{J_bw2eBk}* -zlu}a#>|@W6qA>?I0*|s;ABW?Z0koXhk$HlX7*=%;au*ZMfV&HfG0NmbqR8=DxAIHx -z3|*bRrOCF)>ZP(;WyX-yoD^{eSW>gx?;@o^h|A;axef3PLra%ec4Ze6EF_WOBy5=M -z*hu6q@fm7;?LIoq@bcQ@xj7S19K3nHVVgcHj}8$l&#=xg*J7=TJMn0BRWUQ+tv5bZ -z#E9qn7C2X29kF8sJ_5-7vylkoIkssSi4?mGfp(c9w_Int>Y*UR_iGtVpzpx>V*+-} -zzolRo;%~!mUj{ptXshw4zGwN`e;`^|#)(iS8)i(Hz{W&mh*X$uwZO(O4}r{kA}ubT -z0kd0iB-aLe?@SHFl0gk{5Y-6|cHxrfHbo=s7xY+gSYXbX!;%UX$xqjeoimH6oZxn; -zImSv7E073kz>R;cb|CDF>h4qEMgfpbJry`!0>747iA{yCk33|%P>i6d{ViTeTyvcGD%AJ5C*_ -zLTX_9`lfXm4Mtq29Q~J~;AOrVytF1X*ZOEcsaG@}u+jc06XF%xAA)RGXk>4&sS*h>!2HW|e@CfC~J>r(fInE;7o -zNq=|<*AhH`R9Sd0U2W-WS@e+YI*En@8x^s?nw~#irg%HA!Ff_lWonO$E4?r!i`&P3 -zdg$Dg9_EJX-RO_{ahUYw)Bg`=ZyuLb)qahCGew*=XHpzWOHC=o2|>jn%Ty>FasbLw -zKtoLsnJLgTO3hMvKn27UhlD3XQO2BdKm`P&KqOIQP(YM<{H<&4bA$Cf-{1Rr-~aY~ -z?sN7z_qos6d+l|tYh8NTK6dVMXH4WV?&@o^W@>Jm8MEX+l2}zyGsffhmMSW){{E7q -zugHVIn3c2u@6tsSLLxXtYY9iHI*AE`c!RIhOS;qP%klv*74fRz4y9{ -z@Wirm*;6Yz542ZCpp8R(0fvMVI -z(;z2M9he?zyq-;*z1DB?;RY|aUJD|6fMv#ozav5dz+x;1=f(d4>R6WUiG0-XTZAxC -z09_XC&8_4++^<^~U_|zE(IQ@xaVR+fJ0zpVv$hNJUx)MM7@|Qn^+eY9u -zM6t}$v@m~Us?&x%&Z($N9NuIW^{CV$uQDyqB5T8$`JXg(Zg^Uk*1#~E^VB=jti7*= -z01Ij!5g -z9bESO1Qp*lA~XTi;L4q+URis%`e=w!gq3@*@E_6rH7>C9=C0dj!GqfDUUr|57f2_f -z?CWMtf=KH0%hK(9S9`KK^2h@Nb~J5L#rLue<0e!Ei04q77nQMEI~ogNt;ZRQz!?Ch -z14K^*{cFq}Uz+c%&MY#G1+KgZgaiLF2;l@*?9zAq&9#2~&8=>Rt@b3|_L_MiqAXD1 -z!Yx~tb~~ixAk+4FxPLAo4-B}Iqus8&a#P`81b2Z7_|gf`z42G-&`A%S4lfd>^{idW -z^eJ}d<;8LPsHOR-G;8ZX;x}9j&7U*%RlqC|$zu?g?>;(M% -z6r;^&HbB1**uYM$3>}|#x06WVp-)qsRzAbxX%8ahnSmv}>kICreK4i~A#$wcZoOG> -zU{cyhC>Yajjh1GygoOyf^(8F1grmMb1dJo)7Yw2-4=DQ47ZcV97RTs21JN~3gQ=4epgm#SJ<}50&e6RT^!OOfj{UI3X9jlJ$yI0>V -ze-iL{wTs&|3BXQk2YmnDJo&RyL)YVhk$?4onqjf+XBq6iS3w=D<3@tk-T?L5Zrlnj -zd|Mj42VAyj2!?OebtFrXA(Z6ES=B)dH<1;WK%{WkV<|>(l7rApmDL5#1e92w{>aH9 -z%crZaCPSM~5z$MEX@=N{Q!F*hE$U?l#=%81t=~oj1#IEP)Wpr2PFmN*GePWwL`u2N6Y4DBVp4KLA;%xGlT_j|!!XACK6!b{J-4m}795 -z>|}Bq(loSn0)ioK>t(iM(y?N4;FM>74zG(xevdc9$ViKU*yvJrAX&vL4YeqGxt1NZ=X?L7LZpve#akX -z3!oB?b~y|JwB+cjzEJ$hls|t%$5q91*7_yP9szW0=C@?h4?^tC?aadIyb>sau{C<)0$P)iCblQCB+3?cH!4sVUblX;udbsNM}h>y8g=C@sq -zs@*DW<1}{I!1&OAXN=h=8DqBYg+7YP_UM&plw2I1RO;293-xwX{SZ|bXlibE;CPeT -z+5mZ!fNolg?uR(%beQLz%B7l49NLok#Ul(8%}{D8M<)P2ty2lqz5lOb+Hs_P9L -zWmw5|jGJfztJz(%YvCIM4G2+W9mdvHS%;Bw4ikM8Thq)za{T24&W1VtTCtQ&%BffM3q8p_lyXuPp~Yt?O9Xt-YWs>)V>e2k_VVr! -zb0=Y=TaBk1_ny`<)6qP3WI@I1dsEouR@ao`w@YdpD()#3K)_*t`SXv2H|B>g@7~AL -zn(>RSerxKZ)1!MfJcWJ{Pf}Sr1hE0385srn9VT=C-u0I+WIW=T|1)qzi8cdA?tCO9 -zYlE%l0!KvO_y_(YaKzW;nY~Nw+be9>1b9dXDeb0ozDW#kKcY6=L&TuqsrXm0o5q`F -zbE9J(mr3x0=b5^<%D8H@Sw57`{7j{@x@V$vW>;~Y+}%V;&kyfN`T<*vrg4z~U=8UA -zbiz&?+)Q}rT^-%)Z|*vD!>m(JE}dK~rXxVl -zFj86yN$8}|%sXi*qYKI=S?w7IUkwWWAWJCMHNKb?TVK6@7-Wlm`j)H4zxwDJearWG -z9L8e%#9I<4%jKFHmbBQpAD}}9+3tPp3LrI;p>SyC2o#>aRv!^sc+j! -zsE8ea7N!auk%cx0eyANKR5Y}irXg;=D50Xc8mfM%zD=2jP!W(XhA#JWi?oeA3xP2> -zWep+^ZjZ1U^dOk4+6z(77G__e!!ef?P#nb5Z11R8(;X{85_8L^=Xdx$;{mt)S7`^d -z_9fdKm3eM#*@`)ffhEE@MtHMrIc> -zhz8i~0)NWg%j69Pi7mN1FXL9NWXxy0M7&gUkvY>d#_-6v4ifce(^Jw^ZZNT^)E75V -zHP;IIQwJh$BuHH{j|ND7hPsMa`Po3klAqy80y;>R)VVV=WeEowOzs+RGFrTARBg-D -zqIB21YdBnY*C>nj%}50|!{)9>MBgrBu*(j;!``)%k0PTs$*QbEjW=psNfM85K&$Jw&pNQyXopwT7oop2T -zdc#!e#kg%yYst6)fvs^!;G?0jmee5bI79eoT}zPp2EjIXu>P?h*4jbpPH{uh5S!Krhu4?g2+Hp$n{wnvt+siyz%XRY -zOuymM9$jEKDXmISa1fqOgoYME81p+47QcBBDLGG@H%s(s|v!zQpo;=?%}! -z1G%ZE7+4&FJJ(agH4dsPER5rj!xR;1} -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 -zONm9D;v*zJT&s9Pn(tRiO+S+Chc?@J -z>Z{DpA^1KQ+EkK`aFd3=5A2kDP8m?c6C!OI^28_!6LayrVdQEv^D_5Jwt#pL*!mPJaq3`qf0r{ -z>+U>?>%yVz%luYrA%5dd;IYoAL`O`W@PJT=%s8<)c=3~`#?4YFwXX~lN`BIE$2#Kw -zn=5}Wb-B9Mlk3@(snCawNTWJ^?T3dpC`GtnJ5Aiee~CL77tFT<1<$AAyoT-e!$RK# -zIvbdtL3AC_d25w~paM-}j=z}OAfBk$`g3P}32%zVyXcGReqh+uu2)1A5~w;*UfRx! -zkUl1|5U92>w}hNS60x?ggg8~VD^gU3(_okp%#jf>GA4X!iAQyvkNK$s_D7`0!!IuP -z*mU0=ag?RM#Z|AU_LrNb1`@O{af?78E3wLX;IWeNCeH& -zOdP9%FO?=a)fGPV2=VRJ(Y=y7oA=lW{8mQjndJo+7S6*BJ%NZkS8^jLo--9@NyPUIbZe`V*4KoaDL#8jdJ!OmKpxi@ov@p8%KtQ!FF2$gM#H9e#8J9w)8+}al_#F){j*k6T$$N@M-}>sbdHHy(*8%wJby -zH$`*J%N=I(R`iYoC8F&QuvK2~?qWdZ_7x@_xpKnaVvBC+S%EfjqeEdWlzOwN^8wusW^DQ275EV;93fc!M -zP#1CV&*Gtd6Fpz1uISZuqpH)iRI9(GKMB3KTLwRPzd6+2da^k`_!>xQaH>7s(wq!I -zPQl$9kL4f)3sjTAP5^7Csh$SE?TtGdezG~n3KAQCl03`9wP$&SKz(dWS>0pN;p)rd -zdE6!;m2pzJOW^)z%MGBCK^>I<8N_@BVv)diRw#0*BatZubr9F0)EX$grF_T|#ypLs -z{>DFSxc|HDpwPkm?_kkjIuFns5mT6DYAW(gNZrd9#80cteQMWfONC!#IP{7bNpY26 -znrwC|JK!rL%?0J+ma_r3_iJ4b63`_3Gr{q87tb(- -zQ@)sP2QV`uMBIySL!pSx$hy1mRU#SL2p%(8NQYxDGk!HyMDA-SYFvT12`b`<8d8iz -zj(Lb0vUZ*DvhGt;Jd^hqE|r}PxpRY1vqi9MrSP~YP}kTjqDgvh7r~q!O>;5OBWp(^ -zIF9x#{zIItjNk~=VFah@GrXRW3X`=}iBiijdFD>BnIri;BN^>tt`nMz+FsnE+*2e9g%V2K0b2v)xqFZ28zmZK -z=6U9}nc`#W8NZ!S2tIU!i^UH~!w;v}66d$0`nANS@nS -zjE{N6Z1)!jKmqK3y`kZ6h|F~cgdfcWvq>e)sQ9TiaVBp}nbPx_%aLzR+b$t{fvwhpQt71mBzVPdRZxn8 -zZkA2LMvVc}VR76(qH>l^B5r5dB(}hzX_Pt)k5D#=q&TvA{#G`LFr8(S_%(zJEXsq^ -zNC6lkVql?~)EiQU!_HKJIyhDDPxP;z7kCM+M!Fe{jNg%2dp2mJ%bL7XU=9lsaeyL?d -zQRa@L5YhbGuHd^dZrVI~cKJf|qXLrB^w1-8evUtvu!;dfVu@xQ@B}*iq)Yz%S(p6z -zNs<=D`s8w`$K5er3G(oLlB|`wx&N!kLUZq=O<>~I<({Z@_S@IMSJi2Au9kjuHA}`l -z6wry8g)G@`Pd&!Uz;{-((}p!7XE=jnBs>q)v+Jz_MC!ffExmHV2z7KkJa6_`3aTrp -zy$f6?6-_)ie%cG==61zO|51F1Y -zcHwNWZKP?jPIQam5CHB{eXDe!q1zXqrwD-9(h9N#p_31m#rfG}hJ?P@US -z#K;Fit3jEzH*Hx0azN%1kgLeQF9A<958+zNedNIPhi)zA(9{o-k7G>EJP#2fM)Yf(;}C%Y -zVW-GvVVt=Y8rEZDplyXA3T2yZW5b7oIM2h6S{{)z{w@%^CXsBy`vsa{$86xlfFKtE^9%n|#w&NN*jhLED-^*_q#3PyF_+DFK0 -z^ok72*GCu>%SDTQ=O-zq7Dd6Q8{3-4k6Zh!Fu!N#OHVwGj30MAx-`EodJ{6FE^W;8 -zfe!?hi_vR4zp=Ntu9cCk!5`5m!dEnA;{p=l?kUAr_iQ2lrfef7d^pGGr73m2m;RpB -zd+EdG$W)>&nt1Jtw#q~OfntvB$5P7tiA7bjXNXqF%joIuwJo(Oo8q(0Pa9c3*w@}mp>(aaa -zkAt5r*h!DG%Inq(zL*s~w`x=9j#E|;NB_N=PDInRN5Yw-;MX;uHHD>-smZ0aUzuB= -zyxin#3wy#7%_({Qs|X!q`gEIl5a$5!hDzeEpUj*V^<+>zvf%Vso6feuXOFj+A*|Xk -z%Jodo_bF7t{BhH4#Z@PZ1@v?oaDTC`>7G(>$7%s#)da|4=I`bc*x9{l-&-9P-Un3H -zf>8j-8llKNpfMJMIQ&!RM8mLv#5d#e3y4UJ#g|X(E9OM-IF0D8P6vn9Y{w$F8vM(T -z3Rj~qbb$Yv5F6fIbw_>+pz2Q5Xd?#a8?3;3NG;}P!rMZr3_&=KqHoWY#JN9%8?o%f -z?P62Z#!|ZSZ@_vmXl^HU{0!g2H--GZ=Dh8GZS~!%i-|9lnc+~$l!`^^Gyrue{UWs? -zATLM$Q?w>%NBWc$TGDpS!Z4(Ejq8X=lREzLc&qyK43$bHg%8HE*W<$D&tW~nAj6?Y%hXI3g8fVu% -z+x*#|A=>J=Z2iofOWie>6cQ2aKu!-tk2#@-%9JvY3!nsPrg~j|z+N9?h&58*h^+}4E_5Eb4C4V~3 -zegyNMhVZO=(^K}D-+0aOS;+LCcY55eh;|+G{ffm{-&vmvefYy^Dbts}yW^_K4lj2? -zKqq5CNB5NU>gl>tOR2Zzs}Vx)7yWuL%QSbfM2=(jm;(_=K@zXap+K9xM11b9r`}c& -z<8R_!*4L9k?`186Rv~BiB0ONk>V=xL9dYr0`V!iIe(R=lqB17LQ|D`Lg}hRZtp-xK -zLnE&dGbW&B%vg;Svn_FvoGCG=Ei%!;XpItAgscuR>nLs^WVvH&-{0M^3?f_?|L(-l -z3A^V0{O3{sl3K_amL2=qXNz}DL!q}8`CL=x@Agebr>*}PYx-mCUE(ECvXCZsZMybG -zW8CO(ezM$@MyC4zpWE&jgknhKcMT8&n#`qXuleh@bx{N7vDn{O%MvkujX}R?71A!E -zjAVLLC~};rPApD;Pqu+o_p2A>J05P^AxCbC7S}k9dMPyfPfcT1*6p36DQ-ygi?iBkGOnA#8cbMmNSFt7f*(K+j0@x#W62UZ@>*?iDE#Lx%StOU;e6rJswi0X(70?QvP}=y-C^+?l;pc< -z26aQ!98pY{x1XJuJ<13$hlF&}c}-e`ta%>v?hV;PK)v1%eri -zJucP>Q&Hj~m>^dxG+|&-NwhTKI38Dh=Y+nHF7uLsw;V5gtzu1uDy0OVS|Qc7aAwuiV1IT8nZJX+iY%4 -z^0pPbr}P`z__XS-)3smnlg{l89qZ>lDJ|sNw7r&Ke#dq!DxTvGxH12fv_vL!%tWuk -zeov|MZFFZXfylY(*n&NisZ -zbZnudc+Gw+b#73y7~_?RUCRB9hp~noMQ1Sdihvk*StawII0^!V5|1MFLu(QIDU2%2 -z(lHswr=5pjm#yat)X?`howqc8yYA?BGUVcUOe;HGYbjhq)zL4(VP};*thqT^xruRg -z8(%;D+QDPF-u5*~If?6QlA5{Ai36WHbXfQG_qLsjlTr05w!W~z=>GA+rOgRU1v8Iq -zV6jL1`7Ks|J<6+|L}U5QPzVcs5e*B0qF}6jN?lb%du8VQW9Xmv7p-Z_)a4ly#P%*a -zG^yAlAiyX9_PtV|+GT0V|EZD^(e(dCC8cP&VY*66&}56ELsvtTwMtdYbN*c4iccx%$$SIvCR_yI@^l`#IlAjYs^VLP}h?c%Y7MkfJJpPt0 -zeF-lT_0z=HNMG_fynk|Xpr_&mN=G-=#b4EwD|q>XHC2lQiu=nYOQ874dlXgk#b--i -z{B(xLTME4IY%XsDfGmYQs4u~K359)BBwe_6b+~Y%Ear~49(5);T(_{CNBr=JkU{YZUyPZDet3k@6t(JF&CnNqc>mZ>`Qd#rYp34zG8SNqAjG>2)Q$X!Qn$Kfgu%DaK5gZvn1uMPf#^f3jAJUBsYKVmr9UtInQJnVV2Y|ibJI0j$aJo3wG7ule@k5S?bAQ`oUWNLDQZdQk -zs#Hw6t9K*sUcgSK1*M7X0CjHu6eIn+V)zZqy0sD~Q_V=<+-p6Ws#m_sXi#qf|Lp$Ustf0B8yj~g*(TKg5^|vqb5zC)KestEn#2l9b~00hp+QZNZ{T+1I?DYO+zD}#5xdT=+&j7ZQC -zSUZMx`dXKg-k}O#3f-h@5k+IM$}|w3uw_4{fskCblr#{q!niw30|8yFrGcoH%qk$M -zabc1M!j>ZcS$%2MHk%wvw3;; -z&;r!ZrR%Gui(NPk^#r^w3n5X({7Bl{D(+B48;q*V@l-4}i+xtC~qS89Ze -zBz}MJ#?m#8ch?@uN2s>1{E1i04-v+n0;>i{6XRC)u90*2RCI!dklf@{a9$y0~eF-M#r^ -z+if?^9B;L4UEwlRyt0Ao&u0bh3e9|yG}LP<;NABkL;gFY-c+y5vjj9?au} -zxCHm^sIvMtz<8HA--x&4mZqn+c^}MzRs29v*dsuB*xg)vVCGgl?W2|-e)nhWEo#Hx -zS9&%}9q-%;^FC4d>*AU~-`MBey(ME&10y{QUmMPujZ;10x)Pca*fSkTq4`abH?(VN -zmw8Bo(#ve^vdm_ByZH}`z31WG;0OJ_U0tDzeMU{?)B1XY6Ee#$pBcCMw+e$*nG4I` -z60>g3j#6VD$XsB_!u3K4W9>1)-rFN>1w8SnyPCL-hIm3rqn;29@iZD5+<*q57yZYMsHk+vu7qbnP4u<{R;Z4$9-Y#*Zq@Vp -zX@8imIHnXuUjo_keyMS@88vQ@v$ZjKSJRzaIdBfhsc<|O8jiRcy1_CiKltc7`Y;*< -z6LG=+tB|v+SL>PC+06!9>)5CK!Tw>#b#8c$lIL|)1$j90g9AyRCBqQVkP&X1sX~Dw@XAq3bxT93KHhc|8 -zn}~=EG%(HguzSA>x0vFMI#M7wS!Z4s%s`EZp47&FR!{nYo_mt@qIxRzs|@^0+m~7= -z=&`Yu+9eWhsU5@o8NKHC5>ge#p06i_rUs0lvl1GhHr!T2XHe{|RVkk;^WQYEF4#}% -zPGE2ZUMIv6(YG8Rg&l5kKThLpy(@(sa2Cwh$a2$Ko1cu$flve;ei{0;c=>^=wz2lG -zvHl`6#OTwcM!tM}^YQ-s0M?c71H)A{MuSyDu4 -z*_eW0tNW!A$aA_7>M?IyVizO^W#3@}8+-#d(i8*Mf@T`(c=l_kN68#pVNOkTJHfX{ -z7wB;#yUgrWzgczlz&sd4-E46-lF-@W+L&4c#=qT_EDO9`AB47C`& -zDBX!9x+OA@Vr=if+Ea_}wa%!f9%Q-Y)v*cu*7Qh;fh}Va%?^W>7G6Wo{I*CDGqWSg -z=yL+g)U#@vOb|WqlBKryh<~UZZD4#!>(O;4xK|!SgGTQ7jyd8sJoB)sIqz?-V)LG) -zHQnHK!|_Okh=WIOS|Zl)EWcG$$+03w!WnWhiD+9?9)D^+ul$3Bi@{vR8J -z=23gtq(b+=-ZuTuO#~KI6J-kV1JndDA_x-_BYzQL1+n${tnZa&2>}Y2^bT8 -zQqe6i0wgB6YqlFJ7^mbP>w+`aFHh;e?EaUfXJhMkhd23V8RgIvaDSl$hQt%l)6QLP -z8mi@J@vNiQm?>5HUa?0>=5RYPQkHvptbOYn*drn_T`QY2R6=OBZ^2`}d*qz5kx|D4 -z02T6<9RqAB4K(zfoo#hn8^Hj#0VAA6G(qa5Kv@BDiHOcMzyKb(Wl|-#4nmI>C7ML8%WbOCo?@KEKkK$UHmcGd`D|9&V~dsc0J4cSwVFDg -zd+m3u>QPhCVd9$V;HJiNR$J00SFv;w_Ihyk*QJn{snZNnW`G>H;Jl)SA>+jO!jlDg -zoTxa00GDgE_IOH|+?847aBwtM#T?P?a~|9F=f`YBej-D?8em1v@5)u03d6N%3>>yO -zZc51!?zzd2ks-EKttsfCkx@EM^)IQYU2q%5a?oe?DHI($Hcb6XlscWLbOI^<1aV6a45jNWTi -z-9uJ||DpKQcTy6wJl`OV4F;43hR#!w*QVu90@B9(lO|Sv8?r#7eIqGqvZsKvEfQLL -z(#(+1W-G#(aW!ru)lQggDF#;>;6CJ(_ipslp}Z0yjc11wovT{ttl5xf;-2WyUgN|e -z~sw&OmV;<%-5{(NR>ffWvZF)ZGA -zW46m53ypGe^RkxPR3BN6$FYcyo;;3hF_udb+O&1UyOSIpehF~6)GCa*H`K^;JeQ;l -zb)XpEu@x3?J1zXtSf}%2pOs1}xk|Y$4EX}EYaw46t(}*fYiJtN?ZPmLyfs`$!Qmb( -zquE<;?8c#@D6bgd7c|N0O$5)4QJhcVX;l~9*$Dib%BNQzcpM$cy#27k5Pyeh`7)?3Oc9ngk7VXJ9-_tj2RM=q?B -zgbYA!r>UQ2ed`>%uy<3BE{;`ezdRl?{r&k_8!H`szC*gR@@5PF){P~CZI4t%`qwue -z+R5WyZJk|tUg;V&eJv5Uq3^sz^JgRNe{OREZW~J>JtGphrO0T2P*F<(d*h8ZE@<#r -zv{@-+K1g|7HX`~(rSI)mUVG}v(v-Z)_@t!#B&FI|j_A>U%_-`ll~=-F1q2SPWL5!% -zf0pS5odKSGe8c>l|KfiaVpJ{v7~@B_kw~D&|JccW$HpD?V;QB~ByS7=JOpM!vj%ZM -zk>DL$gZq`cl)8DjyjPnxJb^W8X{FcEUH9|{?~=CzWyZ)W_sYaIkJMl -zB0`r65TLJd@f58PtJD6Dhp_@g5bv?r-`&ujd{)kZI1U+d1G+TdNUVx=z2oubc~}yR -zeX=ANTX;*PA`g}^BIw)EU3H2WC@Z()eXCnQ<@pMB2MJ3ai2KR6LdIzBf)v@~ -z5bOVquttg|Y)JrH<+W!E5iWSBaJ30Di5=Z>nv54d{|I^jtg79NJFu)gRcG@kplRX^y|T;=iI+7b$F%o<*M`*D6F;mwNDVs4s0h=zc%Y&$|d -zQgjk=Da@$tB&mKye|G;%yr+fr?_&xQT*5XA=pOYVG>DaPDAQsUu#HDr3jj|-;(Nxt -za+jF^-AOCaexVF)?7p;*bK;+IkurCU0ts#ld8Rt57-o0L< -z*2nVN9!U8cUOcmmdh*ZgU}9~vBWr|Hhb5nxk4P{)buS=-Y{$pqsUK_-;J%k^M`ZjEYA&shU1lL;=Y4!0SrjBCb20&QJdGsNK7;pZ74D-X%o9 -zLS(lJN6D{$SF)DMhN(12+=zzK%}%xP>uiGG%)wpNdHqqMExK=-0_w7oz=z|AR9V#c -zH|HOzjkCp|Z19efT!`A`?-4|T{a<+rYPH(CMjV97m&Mpy -ziA5Qp^adm`V0^wU_o&QE(%;BQBcwMn`sQQDo?l0l&gEcHz4xcr_gHHkeJ25Bz;DIO -zsUD*jJyfIP$P(=w=P{3~?@}>3&ezttcw%@3sKvBbKt6t-q#!}sjXzmZkkpQ%u?K?2 -zP$yEav2uM(L4uq_+mGL>6eK;cI>I4lWO`;aNoGO3ub|RQHV6{ -z!g@37TgQ{mJ1%{H&wYz$Nj^EX)uTMR8{3Iv{K733lWtb_yc+p*tCI!z@856k>MC|7 -zdn8s**$k&f$vKMRz%Sk~6k<~{!x^AKkr33&1`43pE!mpqhjh*!EZy=CT{tFUOjJv^l!)izkSP5hRhKl} -zf;gmVX%VJ>fOhYq@s_DEN}vQ$GZriCpSMKadgL6P(hxp5YInJ*l2-l=Roq%mSB2b+ -zZj&nz6(#h2ho*PD)9p3WJLJAl94+@z=xP9od!aKU6gGvt*-|`7F!4(243inHDv8f89`Vyympg&!x|q-|?lL8uutbud?_X%Rjvqhjf;@;~1&? -zwG?5(+mHX3yXU2>nN4M -zN0JDU^oc9bh(jw_HGdp3=B@nTfu -zyUWn -zlDw=cjaM|u&>cKp*Jv)f!(XjAqF^+YXp^xF&nnsk*v>&2(I((-U9<_XUNW)}ZMvb| -zGyr7ER~T&~&s=SNG;zRdrZuV@Q`C178d`SuhSAfl0=y--G!ctxKw@2RX)}XM)|RP) -ziKTXvguFX2cPL3AYRO3Q#LZG+sF|o;4OFg+7->DVg}7WDBnd~_nIxY`+f^zv{YU@Y -zRguu*F-BOusr8T#w3Y;O6qXh*Pzpk{f|tBE=d|4ro{MnSA#Fk5_8TZZKf!zS1(+SS -z4s=a;s8BU(CE&+$;C7j^W$o(l;>akAiu4AJzmEGb^{4ALzX241GpFCItOxKPNg?!# -zzWfi&jm8hW*D4HF*%Af=-1Z`WE#=qKAqdAr`M2`xRv{|lh-p-HAm!JO@@T-m(%@P} -zkdGL?QP+{U15RcfvgNGMYGg}KSmD5u@(*?;*|5FNVp_vlh1ghf%}KhDg^_USlVym- -z@(CAC*vt4RH*TfBNm{--42*{t?M+Z2Z6~gbQ)4ST%tcNd4?aw_uS(bUbvFt<9r4;N -ztw+--P8;{$T6HpK)}x4j)@8E#ZFK3{vX!qUjZWB{pgTi5^Mm*moCi#g)L*w|6D6F^ -zKOReu8o1 -zw%&Vvj-A;0=L3V%)pEsM^Mh@4A?0L8Lji@v-du*Th2@pDZ3YvO6db;X8AGAv^P*k=G&dR8 -z98%6bb5?EHuHoqayA7*2i9wzaYwC4&`#2dlx>29Nxt{uj>6~lju_OLg`UK){>JtbL -zs82v&;0tg)(4Oe#3()5qruG}JK>VgSDcr|zakc8yu@G3^u0K)wwcd$GQkP1CO!-dx -zpUDbX5{0ZJIS|D9#;JEiobVn)O>S4$XrU+dSwc^M#)wKW^fctZgr4@agq~D$(2)n) -zF{6ZcRU2cZG>}SLk`Vk7UXH|RRPWlJy2v{+GO@1yFhz2bRQsb8F}I^fw{N)jUMZWV -zJU^rw6%euj6y3H5^tRJQWa}L1s3qfZtEd!sc)H}aRsEGZ -zbdslCE{W=iGDcWS{#JT#ta{ASrbBmF1o_SiJ8;Ie{@T(ifuZwVB}ZWf$aJovrMg|V -zn_FZCmdMPSUZvp=)Wz8=;dLx#2QbA8jgaOwnfJ<+XC;APoNTFrhWTHlmb7Keu`*Zg -z4}tGA$#7sxlAATB5mLpn_Bj1hhv>)PTzf# -zptm@tA!I|=$C*z*D|?z7aBsxJZdzR$raeE;FXQe{PbqZ(3#;OF;&;QAtZE&ImF-i) -zGl#hp$vDsO$fAtv<5k>An@j=0W!wjM$0HdUQGLjob}k`<)CCISno5FpJc29H8yx<1 -z)-9x|!DMGE!up#Bm^BO!<)qq4Q$%os87S -zc}6*0uOSB&nj(r<9B0;?DUQ}S@hkokegde*EwP@q;p;6I%DcN2_;g;dpsC-q-8Xp| -z7JZwZbF?FsE@g&QZzB=&87V)ftSWD!S>o#h@`HbDwVcuq7F(i-gr;^J$0gnyU -zxdAG@5RGHOU!YoD{bp;-H*bPstc8mrSx(j-8gaGSC+W>PVQdK#WrxH`zJn5BRV_g- -zszs)r0uM6vZ1GQHORaGUv*DbEqkU&(eFnFzXB&WEen(&mV&j_J)Zc*~`yS{5|iQ4pk(+aTM@5%f+f23z{_3ZXET09x+a4jPSon*rzBi@q$iB{7_78i>Id*5P -zw~yBZ#*8i^TQTiB3Rv8We7uK``|{lXF$^`TdOGoSQJbc+Clw~@zJ^x0R$Y-22EgWG -z{@V%51PMgVC`HjRQMSE$JuN1DkjCO<#phS#^*z&}zj9AOC~D%@NxC=`>WK}p*Q^GO -zW3ykqA0VUwP;l#;ZG387`a@oV(QIkz6r?ONfv?-*RJi#NGv}7xNh>#fp(0%@?!KZ) -zVesg%D|>^V**jTGXQzPQy5c%B8~$=H#%s -z$>!jh(VM3v^yR@!%uy%1C}rH$fnpeJ+@pD@7|s_XAq;G`r98)*dP&v_*lr=k;LY4@6Hu=_KntBUiF#D@x}!gRZ?KeR?T -z0dP_4b-(MHyLv(rq_!qRs%khGC{VlQv`6q4F}>^%t*{hYtsIn$_dC%zGJoeCgQ(bAxcD#Ex=0Qt$_uY62fisvqOH4d$gs~@k#1v -zrA6gVABcw?c^!KRuxKrs4FZfzssMNU_x+G6|DNV9a-_GXj-_rXvg0cNi{*A$OK1Uc -zkkk@liw0*DvMA!=81Jb||G7wq!zG{JV4Oxj69lxxXP;lg$DMRJ;8&?wE21Nek

WuEvwKW+y&)aO$ -z=niFb>?Fbj#&4`^RFbX?lUM{YB89Mq`$v)xx>SgMI0P~tg}o~-YW`pqtl)m>n*kO*Ypky7;pch{bJDA`UVm-6nd5@?-D-h%0>_`Bv(fx<YljH@);yZ$Y_d#AqFc9o^G%@Y7GEXhp#cso}#y -zURWgYxb8cmQzPOROA~=R7@}A3&F5|7;k<1;h_{Vs9=9#+Y4n8m{-qS&xwj^aN<4Lc -z-NZLynP-U=R9oD;PSO(<*dWAB27ZOP9OLGt{puhl-Jv&(&GN(nyK7Gzx8+_+`bC`Y -z)DCpMW2ltQcN)jdCBfg=?)?&!|NDL_>_icZa=w#cSY?qZf?BX9Tl7s9(90g0$luV5<8PpPo*>Cv_o0V(ect;(`rabR2I -zu&%D=@?^)%TV*gxM1bVP_Dc>KhkbHZpD+D5J!f>T!@ho?u3S0%-OrObhc+p#9kMZ88%Ng|wU48Q*a+K-6gys&sO9tqkX+AG+OH$OoCw=eznG0dHc3L=##%`l -zJc86*5E$X{Xk;k7X(;fK3?60Vm?KpDCk-Vo5)H+Wn`kJ;#m^X<2pWoiehU7d34#JK -z5z$f@nllZ>HY7|#;o?xcpRZjXvu~&r`!4E0BGR&wcTo1;FN-?PkBgJiFQIv1S_jEt -z>PYZ3hf7HRjZmbf!Iqcvj!U+6#6s}pV-&0i3Urvn$!vag(Q;64vVDVA8uyd!o1s+H -zbClb-7|xAzg~THc^!oU;HCU#VY*UBWcYlx!Af=Arno{;9#_hrffNvAomjKAgg^Iw3 -zc$zCh$MZ!II$q@Ac{b$T5zb}>OLl&x{wx35s^qjd9KHftZ*-Z$SBMgaui&4Bx6?`j -zgUmvCShjcO>`*JreoS7p?T*%BVtJrkzqHc@CR)%7>2h}HP1j!t+xTI5X5YiV<&~V{ -z&A>Rr@hz>Ycxf)ax@siKDRO;{Gn5F -ztGY;49l#xg5##0gcg1tVo%il!ui}>#Uaiq-lZ1QeQLtR%_rHdmV+W|9hg@^0|QlPuF9G1iqWYl*d=1`JT{w2Ud)Y)YF(iJjwpTs`$pS%snLqrD0Y@~Q9 -zQ(#ICr#J2?-}P+%CGs-on+W=eo3Mof-g3>p#-;DN05pq#;)0Q2lbgjH1!cwUa+*oe -zh2zd`c%cUe=35U-I%wUlUbZjKYNbeejM_u{kYfhW_P%)nx0JdrV}~$OY`88%Ktc6l -z@LKOp;c)VPN4>_wSg|^Gf&Af?@wP?|HL+tmd;L(pC2B8cZf{LVIRCSFUweYIx2IFZeuo{Y7^0*|Gu6B-Hk^go`aX-C=bM%^-67AQrHO4 -zJqv|Z!V;3+wXBEUHM&=ZS}m(@?)p7DZ$dMnB*xU(Pueo%ZX -zqNgH^%HO;2Rk-_>Sr7WmK=Gy)2!l%kc09PDLq-^98D;tH=WJSEXXKi!TXvv`5CoUyz>BjZR -zW6#yu1gPV-NHNEbr`y*ihXuS-_HptHX2eAO1Rqug-f#7VhX9wLFN6;yZTAmu-SU-% -z1`S=2ICub?o^v91uEYWRrt&-xkts0}q}MWZ28<8;azeS2SHkt4W|q&UOiLGeHpNn= -zrIq|SXdKvNg!Dn8gqW1j)v^)+CX6-#fZME*0~f^?+bP!#Uu2VpO{@u^1DdZPfYfJJ -zF>JxYUzJPjP9|C>cQR38cQWq9?%teW3E+C>OFwzPnYw!KlErNyuYb4Zg6ojd#<+iY -zL>)2RJ>l0^-6#1prS=ehQB?^ESMOmn#g=BgFZJ4WcD>}-A3NqxU;4lB%%C85-Tj)w -zLBlm>{SvMxZUFf-hLUq`>mL#9?M|waZ4-#rB6lCne&;18Hjnp0n7Ky?Cb%#0GW?N3 -z9~n{c9Z*Y-{=$j<=WA&quzP9(vh2VuesEEsu|;X>;g)bXM{QwSBV3A`q=K2v)jm$A -z9ycJv4#Jp$7lI$`qs3zrn=;qYjZm92tw>I9l3_C<-ywbaw-y(3Oa5meYadkVuB -z&Zz{G5h6Tpqk4y -zDVY-NMaY+G!188_gaS9HD1v_Cce3mUz{Nun$=rVs(_Icw`2MXX7CEoUDN<~o{M%c} -zhMS$_l{cs@yl}p2xesE<2)HZ-3dCg!PKIk3Ire2ABz)OnfXR4PM5E-u+ngRqgy1Gp -zfPaRvtzFnz-`L{WatnEsJa%SQBT*zq^Orr2TI0_s5e|?BBJL2t28g7v1Oor|9+D-h -zKD{>36femw|K0Z=+Hr=fvq?{mDK``e#y8NH-Aw`~RM>D;QDBiW1ZH28mHbNGd2`TF -zKgysZ1#koC6&s_J3ZA6`+-$JN>KEu|Wt7W<^aq2CHR>c2L&_QmCQz#&Ldt7K4vn!3 -z9>snGdYzTi>pxN+3^*C6PJ;a(=OjHhJi?;VTps*Wjm#@9Bu4G*Yt$B-)Zczs;4LI< -zwF>l0E4Q6ab}ozfI%yd1>~YQ*gS?|H_Zp)6Si5Y_i7z{NiK8Q2{OD~Q?<6%q`Hk-X -ze}v2?PgjQJ6!i%}7z0S5?uyCG1p6Q-(*x`k$@Bzl&yRPF`2um`8P&4w#u8Q#^XR#< -zI++@qvR)b~E{a%p(8Tg>NQzw-dy;j@kh+c^&J~T#@H$W@yfEOgi4;%V>|6JL+~y*h -z#okme-3Gh0u4Mnzt_v!g0P&;RxJTp0I8&Dug>jCxf~O0-*?!FOU|PahR#oqe$NId< -zXK+6lxwx_hS>Yb*Q?SWb`j2(Rhj^Q`M;6N^tRS8n;dp!Ld9kA&D^itvI}YWrWGrOe -zVBTht=2)c+8b0Tc( -z!JG(}t~eKMOjD1SdBomBV6{$!%E7V6^vF_Yp0}(tUe5YyzmZ|uTWTI!#vkK&6h2ty -zIQI!VVS?uQ>3GmL6ubnp`@m}TmGaLbrf=3*kGK@~`91mNYi%or){Cq;Hxfdw)hBG( -zTjc#);_+V@ss_2Ed`6TVPU>d-+pUN7YPi`kOwA-;opS$1y_&KqC$aMH*!; -zWp~@QFaqIl){%;QT~lpGOYAXVLkr6Z-jOa>NZz)gsU|UgK@x|0{PhGm|H2&7vS|m~W -zy>08M=JKpAkq!hQ^J>Pf?HttlU&Yw74Hf?gm-nRfu9<`f*^i9vPeM&Kt;hfF@FX(p -z5Q{CkAvrvmS(FZ__)#L8a!odsA?bsA)=*i$)RN4AppLCUD_ -zvqPuxQrfPSphhk!XKK`i`mW_4_l!_j!E<8=!Xw7FJ#h{DfWon-GAN02l?Ux}4|hl4 -z4(s-9oR2-rEsru`c&)afpdAin4$VdJ_w#d7g5M-9^%f~u>lr(KtObmG8#s)r;F(hT -zoiiqH`I@b@$&EwCrCBG))+q-yMrSj7bgae8Kkd!+9$TW=Oh);flW8u@VL(J$X%a#- -zBAnnT3N*z*O>_vjt9JAXwtgCQ``eJ< -z;Gm@srI07&wIcvC4YvUNoZN^(bo>7*Hjek1EVaQ#(?Sq1fogTCG(F*~!g2!3C``pd -zM)4KyqtI1JT>%o7Y_AdWk;9xNvFAPO(EfpyIb`NVYMw)8a)~oc2uO~Z4Am;%4UP_~ -zRW<^zA=Rq5iSj&f)t#3}BhBC*8FcFb_`TMrUbD(|(0;Q{eR8~_SSZ?OzGQJPJ>ko9 -zb`s_%ouIg@+Y0=F@7q3-9XGo<@~+Hojx5}nQ#a^Z-?5TnoTM&t<6+s5a$?kSMGNvR -zkxGr^iyQYV>mt_ -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 -z*fJ(HHW&$)wlYJu%T?j$vS_IVbQccReSvi##+ -zpQw}m;%{eaJLPWM0Q5wt)Dtqx-A_c#NutJSE2q?)q9$*&uQKlmXVFi7ILPfGi})W7 -zh`l04wlKKKb*S3n3Jp;jqoAWSa$q4q-}oFB(Qko(p0q?yMSCLA&7rib$VBa*&~OZni;VHO5sHTCnx -z5`J#&jm2R!w~peOaDZINLPVI-F!F`Q^#{q=1VmS%2!M#px{|5Mf&U$c0K_%n_7emm -zfo5QK-uf|FuU1~Yd9|^kZ1#!~dp;i*bA(si)*IGlXMLtGSfTrF{v$k=mYy{^?ZFzI -z7ZtK{(FglfZj%ul$)hEYk;v8!CS_Ez6>Hi}1gqyfTq|86`+8q6gZ+xZ+ -zLCToZc!8>|`4@sWc@pxzFrC8qTbD6Gw>hD9%_fD(kFJ+jJ2s<~ipUlV@oyR;j0(tVFFA -zQ|p^qeX@mr5Y$456+jb@O_I3U+=y@BDK&(wH^D4AU%0L)G3DU*Fz&4@y5i#;bx%Ff -z+G8SzzQcUI6kj@&qWlT`G}m6`KRQ6G(|p2xWE8|UFNLo9mV&GyIhhKcTf3d7SF}E9 -z&&%5*3o4=o2?$`V$X}$a+uT~&M=nLG(g(Ktj~vOf-@MhL(V}BBx5}<_49=NhoU(m> -zCo=lfQ0$;%aI0vD-lC2zit_wxqMsLgs}8e$Fx?rxuT8NFOo}H#V?Lt|UBm5a7 -ztF(mk>!_Ay0I6i@wAlUj+hAxd%fI9=LS)Sp+WVP=0n%rR_9Lk(7%h?$0Io2Zs|o5$ -zs$U>@whW`>K(wQ<1Ntb!Q;0gmjhqHxHtv^S(-wp6w^6(UP+|ZaCoGiJB -zgl4ebW_>)wA43?!As|46gdjyhtl1tI8={%;n}y70#Jh`Ft52%)oXu%*9%T>URK|_5 -z>U;@xmQP!T{q9B+WFF_B*A>D9Sr~JP&TA<8VT8qz{8&rQk^C6biv;fsuqi^HgyTsK -z3FAgK>ViQGM7B24|Ju+yNqTjl%52jA=5Q}q|I0Qs;RH1|2pJn2iYSqr1sa509S&BT -zOTw(1jnFm31$wbLPOpfGES0u+4duXvF!*^5K_jjC;yJ>(EX%$G7c-P_C>fU*c#j%$ -zoBj*%pH=dpBNOmC^#TR^drVg2lmTiI^aB%^(MqE#y5RWGYlXfrboT8)8Aob_fPVoMt$+=KhI2hu{fwhyIvh~BRQ+&<6Vy` -zq-cE~>pg#MJhpnEB4b`h*fGaTDR-+!1#o=u*`^4MxRN#XZzFtj!4cBm_m0?-bEhrp -zgW~k7d*2x$d!K(EK>2&kIq&x@^AmhDt|D2+({- -z&hhmsnyDjdMoGzOj#RU^KEBh#KH(41h7VcD9Esw(Ll?H<=~jfMG`j(Gk{(XwxY&4L -z(A9WPB>A}h#hrAvf&8AeH^)}Z=MJ+GUk`*u+z1a+OwyGIiztet{s(7YVcUbKoU%nf -z%`Y#gnv+&PMpOWeb*J3J{a*TQ$XUM4DjD&>kev`UoxG#Wz!>&nCTfp|yZgD^l7f|A -zb+cf=^ad6zTw=k%Yh8RPa%dX1%4x4BF0P35xg&mBOGfV#_=cX&;AT(@&RXr{-?9a|F)o)%Ws**vys1wAy`J!<5~}ik -znUm=jsOLDFA*T`Ih|yf)h|%MCB*>eJO8{pGUT!dUj2yIrHos3lR30I%!a9qbD;!wG -zZ`O^Smd4e5krz4OJ}>fm0sPxnCth!EN$C;x!mY8gaivdUI}wruCtjfW3+)Hq_6|Ce -z6_m~KR$#P67AClzk3&gXP(UGA363NrT`p;L&+3?v%Vt|V#DHm -za;LgD1T21mukz7QzuC&J&yOP;a3PxvaLk*b=*`SL3ddAY8dnqX+2m@-s -zaZZ*=AB;Sz_~Oo1a|6o${#lPIgY;d%5Q0nsQGG9v!7ftWvK;W16tSFBS|G+aqtE|N -z$t#c$`o!`@`u207E?Fg+*|N^D<(c1GXLVI=t4-98PYYAr|BiRo^DmXToO&|v)T7KF -zT{t-_c2%=fhr7+6NJ-+mlVE0_jgNBMuC;YC%mut9xw8~3Z?~ygqW?ruVzd2 -z1;e`TpZFNRL;V|)0ltadKhMWUUUW?&r9Hb-!A6?RQ~2AngXhlpj=Tw4?Nm+EYA5!n -zm*ou(JLJuQZ9i0wdKs`2F>kEQWe>Nok0z4*a4Z%I_Sb6r@pAh+_7vk8zVzz&U$36q -zO?im$`J1+JHYsT3ffoxN??o(aR?@I -zr6yrB5UT;SX2pC3ky@-=M~VxnBKtAt8$41O3~!tDO6kO1lCcWA)gPhl89|2QyW -zdBjO6v3*l(aY#)_?G}BX(s%9rRx1e?BUW?h?=W*76qHonw&30@3Z^5jn&K=T6y)b& -z+}k5Ewh_?1p>BKo&!p_;-_y<5{06^gt3_6%PAGkeM0l-Pl?lBDDQ~{8rx?+Tl-_6i -zcRqW4xP5AmdXA0no6AlVNCWhSs)t=c8qq0H3|WxzXNY7806l3U8v;CveaK;86Ul#+ -zO%+*&OJS?XI_J9BhwvdoZ2ZR*P;uX&+zij>-E3QK#8;Qtyz1xD!Vdb@`sS#6Rmc+L -zizJT?8{OHt^;h*2geU6CJ)|P|OS=C0xM3eQwLI%Ng>UB87&*NOA`b`6l42iXu*uM= -zA6vsvEWaj->yk<#{y5|dsAaNL;@?mCyjD>t1# -ze>(4MfVg_xR#n$?Q|{rkguV8~cX~8gRW`b=^x3~j+g|U|r_p$Z!`J;4S(=u|&TsPr -z_49j&YHvp-zv(pcmyYYcF*@H4L;DZjR079xXHJ=!Z)?~eCvSR9T^Xlu|x7Na4{w~%yRlP?JXtF%{3%EkO^r`;l|Q$V)OOJ-hI)0!bob5piqe8b7_-fAAK3G5gP~H-`!5!Y -zXZz3Esqm^2{kz!fK}-B1O@_aw$?~kdx|O7qv^}SG+z}AG$#! -ztPc&+g|62H4bd(5PHyk#GjxC@Vl7?rpVd3j>l3Pjm%iv+nU*lu!n=O^ZrvNVo!X+s -z2(@mToN-b+1z+uAuj7-we%{+RKYHH2&5p}i5oI&gg_b6oAL4AZ&jnYOxSCni7f`EXRQu4-ukqzuJyVf~bV$cGG@M0U&$y{CQHhj1e@jHL;!atYIZdVB{@g5j;#Qb5dO#SF|m -zjuRJ;p(bK#{x6ratDPI+`}W(3j+)h#jhn+iR%$wEGf@=<%<9sv8snI5dB|SVHgbTx -z&pA$ut$^cLfAf3LeC1Oy^nZ^lU)BezHVqpvI;geI?j_wS>fS4nvM}T9&B{NeVsH7k -zJ(0$oD$Izk^*JW$%5=Y6Ck~%3m-X)7$}5j$=Wx#zbV+RL-Tej`2jX&>4L -zVy@w|#hyjm#nvBe4$wH&hCd84X~Y>yFTY;7?Ri7F$~DX0VhzP*qY(<+XGBJ^v_u9> -z`I&4|vA8PKi*HkIK-zRLn%p{+MZsySV5`bCdVFF^IRT~p!_f44CkIY}99L -zU)b1X-QJ?VA0u{yJcVkPKEe^!NLW05jWME2`0KrefjTX|uJfF7U$t1L1E0e<58-Ec -zE8C?C$DJ1MfN=?LhpoBN#c_0^h?=i^!BmR7c-YzJQS9@)5j@#*Ex_e7zA0oL_Kn%R -zczffV62DJY?JISCSsKBM((kAG1y`5QRoZPc;4RD@92cj-tlYq-jcTen1%sgZH%p1H -z{u=KbdjB#L18rFB@C4){Z)m8Cjdk?KwC_&f`iD3w1lX#DdMD4KwhH1Jx>DOe8dmW -z6fuTv6q$nV>=*1wU;=mYAWq=7xfwtGXqp(W5mPb=;Lwii5*8{|#f~`aE~yCd=Jf3V -zZ^S6UiS3sYbJR-$P8RL(NDEmx)JXe{T|rD~!B3M_$tBSZ@T%MAoK= -zv~dU~&^d<)Sw~Dw!hvA{4R>}pf7h_sspaS@**e|b&B+B!Ix4@)uFT`5 -zR<~WCuM3R6HdU+eJ;XzD@*Co^!kh%gVf@9{cduSndnv9yb{fCo5@liOJ%@VkN>OQn -zvZA6Y?@5;aQIW-jrV6b3*AMuYym(U&_b0wPX6?zv_R -z<10GLlMWJIs*S+%(Y=6D_ -z)>UQ2G5gH3?Fy$lOMSz2`GfkaodROY*LPW!Db|(N^=oT8JIYD_#|`o5(O$KW4N#Zf -z&QHM2aGk8ZvFC$I@hy}?`ZvTbzE2H~RSx~qOhV18blJzR0H -zMy-b@;9-Vux@-`A8*aQyT~eU)RH);e -z`o)H%@=bp}te0QkY^V0)^|Ph-IY+6u#(8a8LO**=`#Q}RVs2MN)qSX}hI08XeT2k= -z&T;CQ1-l5U)~(^|&V*^+DVn5eLE!(!se67~u5HS>wPXiZobOzTAESo12F2NgSxnj5 -zFm{_mgkxK7>lS5uN4it;`#4_o*kEurwh{5WNg -zWqX6pm%2hD<)Yet>N%V$hiscwgWy-x7`-WS&=33VH9Jjr@0khgSFpA)vp@Y;JQJYq -z(0_wkpTmc||6+Ifw%ZiHhOw{m?T#tOrw6!<y12* -zEN@$CB;2)ma?(Yjg)fbwULWg}@k -zM3IpnN4C0@Lyax7xDpKC3EuYL4NJAcCOvOzEM#W;rkkm%g#hEyo7kvp7;P#($Vf3k(tmO -z=d?E_WFa7B%E$p<7Ga<<@2i1SdY^MpAA%2>FVKQ1@RPW_s?lgk#Z_xm|83*|%hiCW -z*a#d`dOg5IA;a3Rt;X4Q&W%S&4VPEHy}f$#;De`imEXnMYf9j27EuP%?t}B=?)7L| -zK(h>&|1#aJ4u5)CM>{Ycdk{!A<2Z&}^vu$D9}4>+hPFRoUxX -zJhheO+IE-pus}K!A@-gK%=&tp!n*K=L7*^Q37Uw7kGXVgk7jr|O4YdQenr#)0(t{~ -zCdlxXgvuDM102^2RMcZPp%sKB#TG&~K96skdhvo$VZf0c-4 -z`}XONH(|_pEWweLgJM>S3N)Yqu2dIAnv`e(^K8?xzkow}MlLM{5R*A(`@6WVQ8otU -z`C%y^8s3@)*lIZj0o%0K5Unb{SA+~fdLb}vT&HY=1c&?}OH4Fj0Ve^CPD7F`k8Ws) -zJsIshBJEm%Q?A1h-TNKadurN%2l_=gdVi-jZ}j*r^>IqVbN04BB!uNIAD#qVYSJWC -z0gMssadJ(mH_;^JMco|i7w`1Y88lT|UkBs7RgN3{*3h+>Ot<6_G-?udiLQ|h9#&rxa`6Af#- -zwsNkxZ{~a~sUy569GGd&9(rhF)cqF?#o2D?2jm8t!mIMrSXh7n(CF(jM*rxqt&NIZ -z67nBVr6|7?V~`r+A=L^AgOnx$-#Z4c@2;@Js#`F@Y%&N5B+p3lLg2nNlW)sI5%3Ok -z3&5Y#zo0nVd5)oFh+JfOOM=!@8Q^?^<5mgn^NgLqQ(Eb2X-kp;pxp6ZPF#Ur$S4D< -zfS2jr3XL*2CAnd5L|qz(Z-q;hOns!~E6O^MB`oZkZkUaU$=V2+qumchR -z*j+B3k3TN~{Xi$L2AM;;QGW~B`~1@}8q9NyDl{~h0$AwZ=p!V6?CZ|@snNAgnW8pO -zDH{X>)m)B0MlOI7q%jnAB#VlxC{p@G!YhzKo{<+)1hD_q^L~-Vm|_MY=R+LKoWfub -zPjH2hm$=LzSm1QkX|o0ivcK*XoL(Q=dA0R7>BP9klTyeK{`;ZDNfKBlb9ExV9G7R) -ztduUV%7-tzsQqwHS*aw4H013#|GS6QeAX>pb3{wuwrY_3RSP{?@aVEytNB#+@mrmZ -z>-3s|XM~FL=YdJVQj-joVyN>?%ak4)JtB0$P5y@~H~w1`*bmL5kQ{i3AA8l9W2yDg -z7Ogvz^;yH{h-qcfEUDHHikOz^dB#NJ+vC6}tC);8RKv>P;)i4CNwjm;CpvcDCH1{(k<~ -znP}%VuZF8>3EDME>vWrppju1on*gHFaP@0kEYEloJJ#q)Dm8e6hS>eTOTw$Kq~bD& -z3@s%53+%s>gnwK9q|+0<+N7(6t6=GzYAmX3 -zv}sUO){uyR<#vP6DFhpwmamf-!OQUqYXufq--jnlyJK2Vcvm>JHlLm+ss6XE8 -zMv5Ij=(clZZYf|o)}AS3;}~xFzH51(qiF{jGxamyD&6$xwAsvnF}ybK{GwQX7fnGs -z^4CyvU#fuOYUR;{4t4Qqe-deEOH!yRM_k6CkCsSDRf}O3#lA;m89&Iw_Q|?P2T$7H -z!lJVuqiyJWx9r!IIm`=p=S}JHkaPYG6S?*O9F52=g`@zTlSh8Vr#4~sp$|(|bFDmu -zm#pQ-`NTo^c{Q5r0k;D55@*rg`gqaR6hSYTs7kI27W<(~H<7 -zd?iXlcXe=}5P&R=y$u2cgi+*?Mw??>j>FLcPt2i>}`NfYb-3zp!GB<=iDe>T)qg-wl+9oX2p -zMOh4+AE;1kx3{|y#zzP(w{5fR9hbH@eUjWL{o7T!2N-MSf%#cydOc{2ugFX|dgFu# -z9N5atTuG9ZtuW3G0ZtuyL|j&zg$Ak*A)3}%+n031{c37EW4DgtS{|e;fQUjrWF80P -z6_?B1u#qnOE5B-Q!(#pO_^gmt(2cGkLVJ(%tihxUJ!Qq-+=e!YMqDg3>aTXF5~?>7 -zO@hY{GJ}Rc!SQE_P9Tk-U;r?zXWVQBK{0)PTklF$ -zc!DWi^_^}jC`ltNS<>B#>yVKsLI@XP -zd+m8IUuk|))!|m$RapUIY=jFxoz*X**I~;4`9^`(zzcNkI;|rc0km+@8B^fRr&=Y5 -z4LH(SODI$|#yG>o?^+t&ecUWI)_E*%0HzLw@CyL|ZSnEXb%{pV^JCnqWzv4?VIQ6p -zhxAlfvCEBO9^@h&BdL2sYb`HeisEis`$bT}3HhR@Gj>=Zz-Uh^JZioadj@?vK@Nlx -zCCkO*&AEOMDp^t%ow6)*v=ycOo=E=168rA9G -zf3SmHfoFAg?>FSmw=8p-oIA64YU~*9{tPegqCogFp^pdXI0MgDw>>aynND-Nw7~{bvn{-Up25N)T>h;*Nsc} -z0;>QgliWUZ003igj{~{` -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 -zRte-K -zNdb#s;g8ALf_sKTKe#rn+m`7$a>kHMzo82Hh}j2h6!L2YV|@Jt7r{0hT!aiIjFlix -zIkn*kgNYIZvsQC_e<3%pw-?I|v{Pti!0%AV5LZ)12%)Ncq8pnoVV%7Ei7ESCph!Hp -zK_Y=6rc`Wta&gy!4)tf1akpC?`okHbAG`%`!T5dOU-{Om?d>y2CksCdXBY+1JpIC6 -z^QGx-C+ob(h-;eI&+%`ckpmiyK!(A+a2Pa7He^f%E-@bHR=99!!%cU~dqa(M1pJ{A -z%2`2o@RQ8UYeLMWJFRHfm}|k+8K{Ci#ABUEAtSX|DrgF>(g(sOS`?c>z2usaP3)l{ -zGFZTSjW^oYvGRe%QI&WlLh&rD=1UiaUH~v20xj8wiwY&7ETS<2l`a_Bc$R -z#3q|Ct%BtS{0s7S{mJ|Sxey>avtj4V4TWI_r~o!SqIrhtR}Ymwy=h-k6Y{uyTDb>) -z0OIO4Wl^8PqgLd5i6MVbWYrMqtFAtEr!G!w|3h1g@=l#XCpZ->^3i!&l_TG}v#o33 -znLi2M<7S{^PbZ~8dVd0!T<6jcbVso8;6}!Z~iO-^` -zJJ1yQV^?Le{(0e|forT%5|4sx&n_Ae-N_mVm>+KlvjMnCux=%sT{O;dx1PE;up&g% -z#X*I+$@2l`S(PQCDmM$vk7l)n~@mrfC=_)X@}rZ~JYE-Jy>Fz{*DrgzWbBsLPxy}oyAyY_KqvX6Um==z72 -z)|Cx8f47pK#&?iXOSn&9PWKd4HSNdif|qn|6iPHevDK9zM@SPjrEqGdPz**~Gd%QZ -z6LaG<6O~ehaOXLOyV?tPrCtl5$I+?venkc!W~0=a_lnvDLD4TbVRNWBe%$jRx(fWy -zmM@~%*Zh%rIUi|F>ctm_lyy@aiA|yc^xdl~1@8dK_1{+^E7g6MJnDdCU)2|JlgMe1 -zo3vDnJTL}I74E=Jk_L+TI!lqJJWSe@gu$?U=L4fBIW_*P_|!LRV0-&(fs$;&&QpTS -zc&1or6xKBlNKps`VYL8bf{VZjHPIlJz{WP$K?n+9b-0LCX4gxf7pVEzApVn3U~pi9 -zVT~xlOUpn5@Z254AYs51bgG+4upDE{@3@Vn|3UVepU;Nr?^T`gb*a7~siSI+!oCIo -zt2#CpUXrqDjX0frHz=(ind{RUzmRvfKz#~wF=bAT2J@ZYwp1_D`k=@ -z>bpw{`3UeB@SjAT_75wr&(Sq0Z%=$FH^MoqBuU$n4B+^jMcD8AeaL_)W>|zQ$hf!u -zlJ0btEeJ}}zDrMPK2RNgq4gF#0ohy74Nr&P;h-snYQHwarn#406!|>z!wHw!>p?Zy -zV^3r^#&kLZMX{@WFNTE;mdLiSfusu{o7GDDNI+gl5|GVIQkQm@Lu;e1&jDY=(|tBM -zUXnDyj+gA84cyfw`E>)>j3YOmweu}<;03A~c1YIj-*Nuq*t4g=d7;WR!!ubr~gzZpKnYFp_XqoE><|>m-8$;z*wg-_8Q9$5C!1O`d5Ah -zY8+j>;{ztmj!&jz+@H7Vw?PMNeDqX4xV~pNpI&Rxfk~t3)PcNiVYQ(*9XkL8Yk&Qc -z)tTo*f`9yWAe&lt7jyhfnBxG -z0>K~{y-HV4J*O!!H?a#?%XhZJ5-)DWV4Y{E#$3Rs4P8y9?QIoKo#(+LasSvrNc4|h -zM(Fedr+ewH@12ZYm6i6OsSHL;wX{;$LJ8-L$L0hImrkk%XJs#^`4~g-6MF+PJJ8pN -zO#T@svc-?lV^v|;?U)(`t4hb4XjTNA%u1wb{G*9xDr~@L$$t({%i7#*<^Zt&0B3=a -zyuHwKhQT@eDs0ELd9ESPwu&`MMXJp}(nei_=@_)`9;8dTmK|T-5?k{RUhsbY*f3J& -zAI|;LMgn5y#zN~~t;&*j%9ID3v#Qxh2!d)@z{!By=L5pw3JP8z&gw{Nh{QQG`Bt{N -zjl3N>*t1wZF;}MSa{1oHN&mp9lHG+d$^0@mtdc#t@+8iy^>n0(57ycE+4Jc%VK!V0H|!16gmz&{Dl9u*K3>61V5VO-X@ -zB3+$Zsk?>8AJgs2{NXm(bT8_CeP>)(D0{pB^D4d^JM0y^U0Hs&iWGagS{IGByq-NU -z2@ufqh^+zovT}=`l3i|{XXX*DUp*^Sc+#=QtdK&Oq!O~rG%tO1h+8iKtwz-=oGpK| -z@c1TLp8lq#S(a|-!J4Vf2|}fI+gUD~&^21sQ5_PM=W>n5ZPW{XvfeS4{0rH85zuwE -z^!ZCBlZSaLpKdZo_^1D;FJh#;){}wEdmcJcR2ClKi*4Uf7R31k2fJe -zlYMIQ4)RFCB;-xahCi!0t&a`d2Gh9W(IZ>)Lh|CQ^Ns`@<7yAE>sY#ID?>ihbQ}~5 -z8{f^R5APj2A9|^)mrRy*ZV|w;?@=3hTg{97+u!L!b_Zbzg=m{jy$m_jbWlV4Ae6i|Tx4qnajTos^1FNG8}%3dAb$qFk2R1&h+qvQ&!JQO$vK3J -zfzwrykt2)QA49yqp~xg6w@ZtG2@}jo`MgR=l%gVRv3P)(L=;W4#**0utcKPn6&Gfv -zvWT*Y!bu2eg#{ZSfw2GWO8%7We=9@=)`fC0o7ThiFT`bt9q=(Rj4a4h@t7UHhT`tk -zq|+4wjqkk1hS+z>p&;#=N0h(QwDm=CzAjhe3SP~c9tx(X?s7aSy&t4R{Sn--(P23G -zB&{%lw`Y>OU=hr)xV%R)i%@sLZNuZox4wDCacP3!9A{t~P69GZx)5a9hk7>xb;i78 -z@!RJWdAs`m&{k3~Z8DRSZ;;{Kh`^-pFR2&9xWU)u18@Su^C>048)RloPA4}ufg793 -z9$=SnZ|=hty>T8CPcsTDzMH;>eZYWp*fSA6V9cg)@B*o50y_gpM1;_IuVIYeoA#Pw -z#=oqt7e%sCy8eYfTl!bMm@!09jNhIht_fla9C5bO(6YoL)a4L8;2`xW4J~dX7COx3 -zhs}?uX^CM>mUnh`cwTdX_KPUJAfmwR1Q|%jlz+3z)$XO#48K)&(=omIwssW}w4xGJ -zION;So`uiRBy|?7WS&(EjOp}EIsAWih{QSIp->G$TmG-hfoh^|jQPpLHxd~_Zj5FT -zLdXCEnm&xCHM1rIUu>_bznb97BY?;|`qA~YMFGKLxE_)71Yp{$WY+=tq+&Dj+o}G| -zejG?1b-r@0pg*>d+YQ)@5wOkj6>`Wl|5@zJ1d#+q;mjl)D%hC`G7HX!@9!u)Qt$TQV;= -z`qXJlRC6#7MP0*CixzmOS2N0GYMfgT#;2k&2qI89LWY4q%Fz?aLf6{UmslzB;DMxZ6zv|c -zg6b1e4Zg*=L{&~{L80I!!WwFNjPTLKCVo&IYvGafWxUJ1hpS5)eXXlb+zzaVcf+s= -zqiOA)FMTyq2+ngYL)_wD4WozBqT_@qYZN2hM-VHt?H@wr#bsit(g%69a3LnSr>klfe -z5HV`WNZ}Ickq@^^aRUT?j5Tuhkmn@4(CMWVy4O@CWRi=Ce!b|dkZB;Mgk~Uo)a95O -zOQJ>ihhZhrx*o5BVXCaVJ+QSOg2{g9{;|5XJ$PGhvg&~5I#S^_U)czXGUTYLsjapz -zh4letg@^2q_xL~Ty$4*6-Tyz1C_+|=wsu;Y+7u1#6cH7rVT6?SBCArVRGOkxXh<0) -zWwfV4k+iq=&=CF4dA-BU&8_JEe1HG%_w#t%_gmL_pX;1+o$H+EdA{cRsEM747us2p -z8G5vs4w9n`B`m#dp&30T5gFtj6kI%t0NJDw{iZVnViSBi(3y@xix*NMX9grAp*?Q) -z49zE@#tlr{Q3a$&x9=co4Ua~m(`1-9ZWUIvJW8DxBoT~Np2$x3UB8nqse~XBu%r`$ -znC4?kI>8QsglObhLa=F|C5`NDs2s1;*0y*=NbsZ4bjhH;k;H%oI=dAeZ&(IFP=bTS -zpHJ3KXnQ*;%!~}xezeck{j~c&ePPdK>Ryzp!<@MHct>Dm^`ts@d{M9W`3+A6w9pU0 -zg2V&PNRy6OIGTiDZDErZI7z%D6B#@ZD}X2mf)s{zUj!+Lpb`czqdr!}=6yFNMvOu9 -zA=nP!&$+HB(0TD^X7%~cF`U_mP>TLUE9EnfnM@M38P0!Vd@f~qp3t|)Vc+P$LrQgt -z@xe(Q9q8abcLzVWWHu?XQW1Dh#8=}Q^p9K{k*5No*DBG;m}%rhJ!+NOG3fw>s5Lt7 -z2sRCrl&*9#7y}&d1cAh)t?%K`qf0nzFP9dNnZ8f3H_WQ=4pZwGx -z?KlzEsgFHNf!ILm8M#TGgoJ)*Ns4r=Q8qPm!PvX**Wj&-)YNbef)Ilg%Bvs&6`K67 -z!gsn?j<4^CxKOm2u;j4~lKS7wmVmR=3Oo)-NNDzF&BGG6G#UO`I -zib*(S3ZV&*!wIFasaH8r>KPBus7)$!)cxt@ -zvzQKZsvN>7U8;;|1N+|Msl_INw@e>iV{&1Rb% -zVpG;tP7s66&u7|ry$`ZdkrSIq2+@JwNWk^(+n^Sdn}tuHFq2L5V_E&}b*68^t_!y< -zZcT_=RP{cbW2InIwZEtI8|2SP;wf%zWbzD=I}|ASAm$jVY9C#vNpIdwYGb*@tOxlN -zZz|DEU6s-$sR{9s7P%3%)+S?0=^qYxm7w?sgp-!tEk%fv-W~Ej*&@$#dSUm+a`^2&i) -zAPR#W1UbSX{RhEdghNdxjU(6<1cZaHo)1~_=!XG&muc#L(YSvWC1CHbgx!Kt&|J>` -zERKv}_j4Us)sInV1PZ%`zmY-!e5?p^IQ*G}BEcR_2!u<8L;`au!08yczmk~AKVv?j -zLlMae2v=>f4?i+^pmZe5@e{CMhL%Ne8H3sL2c@yUgqTAudaa*to89{5&rFFYV=t!0oVJ5XIA@&aFb)*qMgC^FOEf=fW&)+D@sF#8Fg|2jnM_`Q%o}+8C(n$b -z2=Ol=j)YRJ$*fd3nz9xLL{`D(hd5$6x{o)=&SjoNDo8V!E^6$?p90;;43E9Sb`#Vv -zVtT`q6{;fIhZm+fP1a$=%0ohRMjT-VBf^P09+tm`Uhp(xs{?AJ+8&!VkpO_!CgN%! -zPoT*g$L2YLM3POR^7bKEFVN3w_qcx=k_~ZI`&bFFd+3Oia_R`;1EB`B(1%rG_bl7#TZ02kD?vv_OU1)SMaa -zV!^=-2lIVE&i-(MA*WHKYqu$kY;3GWiG5ymx9|9zAuYGybCCI=&+30elV?5lrR3F; -zv?PQ;r|x!<&yFFD2G8z_YktJRk0oBx)GBW({q}h;IX}^6b!4J}MC7AL%Fx(NY#CNr -zRApNA$v=b4q+NL_rWV -zt5eES7UQ&s$Xb$;6c#INTAeDs&{g>E3faHf(@OCmaDv?xCNo$8rXZ2%b65{B{rh}4;0Xx;kgtQ6PP$4Bxt61~aKKg7ytNy|kQY)z -z-aAo3OC&tt(D#GLewhXGD0&gF-Q1O7o3Mi5)QlRy89R~r -z4BexSFbR=!T(YX$7_fPwt@g89t!>LTKXA;bv#2@=|IFOSaHiTMTy^LKO1evi> -z^xS$iN93QlkJ#*iz-f%In@S_}YbN6$*P-yww?QW##OwtpljhOBzT(C!PQ&OIoajp* -zThG;v>2BSGFrFQ`&~^ihj(7${0l|STSa3-atX*$e@eQbo^^ekQOP?5}Q&W -zX(f_N5V&+doD4Qc6M<4pfhh;=E+-r!jZ8Oa#Wc9{JVhrJqT(nG$7t=x(c$Wksr^Sj -zy}ewUu>z@-(A0i-F=1<40g>M5l#?KMGkrcY5S<6+@m|u}h@c$8mT*s)`i_WABOsG> -zy3C*S8~xOuU=EgI=n(00za)Kv=#0tR5Wo_?cftUR1Oo&$_8ra>Hx5juhyooElxv_g -zTVHd^BGyUBulAsPbVVYXOTdZ)t}O^cf?z-CR|@H|!Xj_NIZ;)hM+KY{74{V-PKoH3 -zT`?I#YDI9kLc0(%Q0$(Ci|1m89Kw!8%xUt^zT>)$M$kgKty*9I(T^8`KheA#dzW58 -zJulH1C%VN@pLNsub5KvAM|FfnFPSq$P9(A!r0I -zBQUqa_eg0KhCR8^XkQQ)o3|#wSkM;F)t_sPBB=+dQId-E*=}9f)PQD&8Ji6Oe9$IG -zi6jV^gi<3xq&IpX1eYkuITSO_!AaB!Y6*R0&m{bbawB0msu&*svITMAQ0u`S^XvLg -zC&u+Jl)q`Mn+(Ehcx!NDqBA!QSzv>|%Bg4+ldfTC6zI_YL|WC=o=LEHtDT -zB!)wnIkF5u2;@u6Oc3U4dWt^`6pSC_e_1Pog6UC{h}TaV4wfxSlW-bpl^fb3+5g#Q -zfOOVy9}2%i3ia>*{A%JL*yTXNm`mc+@d-((1UUcX~naZjou -zyfv3?D3Kp`u*HLFOCuTR2#j=wC-w6(3D7`Z%NO76ySwX$Ig2fya#9ws%#G6C5^ss1Q(BElsfKjCu4 -z)>9kS+i!J$LSFVE&u?py^0J5C5**o+mvPE#ic35>qF$#8p!KpO`hsz5K6!a(`lTm9 -zVQvn~&>13jnx#T -zGv+%Veji2tx6ACHFv(E^b7K>=j2)q`U;FW{G_iVL=W)ft*d%iunm=tke>rIWs)J;L -z!$>q0k_YyY?zhrYt}iONVn}LYMdrp4`dZY5_smiHTEDG>xP0#(T+XB^l5BAa&-$jl -z_`1mhYM@7VbbtX3_rZiz=MLj>{q)OFa;8znUsd|Y7JlPPw(QLr^Z#jp7t*h~Ijpgj -zT`?-t@6OtPx`{%iX<uk8W4rt#F+L)2z6S(dD47hD7m=$7Zdq#?VplxPo8^$dMZO=$CysQ22@`7R9 -z1O%<~V6>Heo`*mnlof-37Ct?m7vbxb_#7(0=Mcsfaf~Z_V7a&>EbUK&35MU#ve1f*Y$G(iUl -z9T8ds1FM2iX>Jy-MT)Pd47GoRpg)A#-$&3NLM_4`YYavOv>2U^$z!;x2C$ovVm7?D -zn*lLHVMDHfZeWM1Lcg$OMWM%ORW^Z^0Wm`XMg*W`fY%ae8Q@hE;Poe!iS@YgiHg1&twv~=>w(|otRR5$7cc9x?x22Fhl@k -zTfkB}m;w?g1}vSKV(5|%x|D~u0ZVOXq!`{*IE0gg`~IAn{sm0|pQnPRQ-)n!aR!(v*>_y`&zb4>xcWn8I>NX`uS|#^z3@aV -ziP}=&1pqQe;%Te|z)GX_`0Oab=z-sPod>h6Y-Kj0pPdi95Ji1$jfv`O>mc}))MQUi -z?!g-gCGJ9ii;{UEXdD9A9rMDR$PvIdg9$UES`3J>KdTOSDg{;4pe;bvu^A}_M3us* -z8Cwc%1FnwENHIX6qZ&SAGJv?&LO(qix?T)JZ-ALYk{HX!rdb^j_2Wj|x)Z?dh70&9 -z=wZ&6KHq*`f0LO0^tS&p*6BFx~!14@$XLf% -z70^7wd-JB8vlVT&pDItk($oJJw5*Fj)k%k!#sHQ&LlaXwWbO;og)pXhLWRbEmTjbx#J}lgH!kf!IpAS6o220C))nom>o$#7qrzzZB}v77&@F_wbvg_`#~-N-e#%OJ^NatZWcCr(ftq1SHq{8f -z=?Y9P?w!Ebo|tTyVTIRWpq|BWO)#1mBQzEMM#}wSdh4D^s0HwzQK$v*o)XmJb7RUC -zb@5ZDO$|$@Qn8Ujg%*QlG=QZhfaP@n%NGEa9e`}d@tzI_GCSSsfRdVkl3?Hx1S6Kp -z0*54o3>WbsVG@ibkn32N1vU}opJ>V-Q+lA$w&R7;f*~a6I}!^hsR<}~5pWHRS}M~k -z2K}wMgy6B4)C}i;876BEEP -zSt8BtPpoBM)fv_pJ47+*XgyDkv=yK{2kE8+{5C-NwZMKGNJo$K!I-K2LVwGRE9!uH -z@;96Yz9X_Lr*FB^0XF$lBD)>8Xa-maWBhX>D?H;wb_UROc7_6?kKYoBQedAzB!Vza -zFu_DZ0*HhtCK77BvcBn8lQFQAVkNmP59T5MSbNHcw5OmS{!W`aU9W&2+O)p<86Z_) -zIfl_#&<3mpq*VlrosnW+j2K$rF`x*Bk}Y_9uZ2Cz0{w#Kz#q2j^eSVt&;pMEMKEdQ -zL(71rEEo%8_hDx04-D3KI+e@eZcqrU1@u$|n4OVgeiz=`Xi#hL{y&S&CNy9+S%+7^ -zS*+a<1+&Q&xW+3&6q`*{LGj6d2rrJmn`LR>;Q%rH0a}ePsA{a9iQ*u5f2=T*@Y0O_ -zbC5b!N3G(i;^dSo{)YgSG@}i -zU}CZh>o5+34&%RGSpN@rVYL8LwEz@N1*QuA0;b(SpTM>i47ROefZG-_(0EpJe}nzj -zSf=>K?k)h9kc;?@FMvBjF?N_x;e!3xl`k3#FG1M-0yG4ssz9ZH6}14sf)l|Hih(*J -zx`7z90H)e40Gi+!VETu}si0}Ch91D?F9=qwV36gD0bW~x%US@)PP00A2b4(wIR)1N -zL9k*4gKS?6;Q1t=~f4FDgopaoCgHKiWLl2tYRRiEdaO!z-7Umpls^ZLE?}A -z83x=31l0h@Fh}}@hE)YBKBA079$4Qx2AAW5MF|Ta0r+&`!l0162vbge%r_Q}7+g%h -zx)rY&BMce=-xzAadyy3Dy1srGW2!Y};G9ZDAeb|Xus|^5@tjPBiB6>=5KJ@NV$}>$ -zRv?&N(Be$#UO@pWkKZ*Na7XX}H^g=lIxI;HfCsodmL%u|@bwOY34TkzyVpp5RfYzJHWg|ckoDk<6a%u}0c5QL8ruc^fJsURXly*t*b1Pr -z2d7v49l+&rfJ-reOInyAGMGf5vGIVe6@aeOtq$mV9B8Z6`aCDLAVtfrEi7M8BTdaj^OgL3Rb1qAY6q`RWnykcx -zbE=~M6zUZNSH`>V7h2RQSL6n!3B2(Cy1JDN>pWAu@#_VD@a~^^W_^hWWdpBKCwy#p -zgK`weg%3Vfm_(mIbpTNd-#qQUjxMM0*H+VM6Q6o-vO$D)vF4uUS@#EcL6is0K}RB -z#0mq%Qp2n-hUXy0$AuX{>~yOGX1)Q;Gy{kg28gAG!FWRJa?mWrhtu&5ygV~F -zI)(qY5m;jVK?KV5SnKu0^CA!kCt!jv#sr8Z+f9tACMYl{d$9sk2@AD6Sg5twiG^BD -z?B`{O{Jg*h^_?FVgsg7Ir%F5kH;~1DHdg(j;`Cx$|H4z@%=nS{YkIM*UwLX3Jj{<` -z5=gKb2Q2(EXo9BhXAfM0D=%3kOJz~DxjlX0Iu%=T8kLF!kKp0an4uhxs!d -z!8hEuk%AWB(+l8J9^f+)(6$VtVjIL1Sb`Q-45;jMs{`SY2dd+P37RG7UumaTyud*N -zjYZ*GqewMAVJyHa3m-E@*eD_Z{89qzMFqeG)CU`11xhi?O#dze2GSn-VC1m`tt~C+ -z7UTgbBLP^;FtD~k9Dyac4Tu2=r3GO10$`nH^;|$oLjYDj46JPsM_>s`S25tMv;eGL -z0Ibuk4xH5xfRzseYa7H7Sc1}33^*$-a8@tithv*y4re04>zEIg2J$_gqDkwg6=x7u -zp(z1~UnjU>;WZIzj}H$COf_1;4MPntgjBc&Hw<0^^*~C~fge#1R2kZxQH1@Pab>3H -z>u;oH`2~IbF50SVsu23~iocPXZP3yC@YGGNYLQ(9TRTV52d#4cJHsDu8eT%RekeX|WJIK@fl? -zXk5jBvl0Rb2k8_tdcH#4E}WpEzEtaaaQlz>5fmlU#roRlI7F@HJ>*!vJne0B&0WZY=6Zq+END)7C+SXz`LLHEtXGq)14K4nW -z8i2yV2jwx4#5nQA+y5{~6iWETazp3Nc)GyF9A{^P{0yYrfI-db%CuW09(}tNWBS=I?d`r0I5_!;1}a# -zER7f=mM%bQ0_p!0G|f|K82=P9hL@|C@oc> -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 -z$gwY)iF{Jme+T9QXZ9{$NJW| -zCCqNH=+gFUFP3bSbdm{n*>cj!vQ3^hjH6gkOu0LCr+!PKjbNX?Q5B;)>$aPhI!GcG -z)VQo!8PzD065MC<#yUOZfP+r1mq*W%zJ&LE4=ZvXj2yF5vsvPruDWR-*KDJjJ00<# -zE)x~JIOM-CjO2hyN@ck+lT*e0`9|lHrO0F^5~*A#hVKfOymK$Uw2<}n0=^M{H+?s& -z6pqGEUyWw9O?8l4$V^1f%ccr;dCkYbxqeXob3J2&b<)XoRn?6k(V$NBFs -zlq?WT+8(FOBbm3Bisd}>`iE~bGm?ulGicHO35_JNcUzhgJTIpeYB=f#3>g(AKy{m`1JhqZ0i>N6(rr6H+p*Y(nI8`Q*E>xpI7JE -zQ7d}a@Y9=Var)J+VJWe+Nia_#OB~_X=@{V;+Ey+5fjW0f`a5w6&;I2Hg1m*@{qq-a -zTyMIb%eMYugKll^1HEqbcbrm#reoq8g(bt&;%@hGk|~yS(8@n~mgnB#z7g)>m@QkG -zmAcf-k&^oPdUHmtn&z&@J0hxX#VJ#4e|_c9Wc_){+jxZwqCMwzD$iPzko?j* -znmA;M3QgfM(~qADm5FjxZ^<;FX_u;E-_A;z+E%@1)>xj*7*9#K_U56)VSk6Tc^x(U -z5lpdm`yH%jT^u!ytP&_DcJ5d{>%2@+@BOAdPFYK2KGK@9*ss|sX{NK?1J40kLcC2R -z)=uqv47ajnOV6sVkmod8wtsb5PB_UCPv;9E>U(cCyN8GuI;3dCE3X@2s+*T2Is5(m -zGZtBqJ=ffLN!C4Am-Qv5S(K4(X~DF6dp9X+^=`2L7MH6n2fg{KsK>cn-t)_;uv{i~ -zSn5Vf_fc@OI&IEvY6Hzio<~8${6-N)^1F(|7let_hijy)j-Jjb(A`z#zM~~F-ndlo#=(RLLG|{h;7kIb2S{R8Tbb -zYO~eSn5E%ovNy!@WtjG&u~hlzZ#xn<6cLuVzG95(pk(*0Pl?KpQm^OwzAUwlFXZK{ -ztmBk*Epup$UUj07tm2P>_MggO1 -zf#wcOj(Q5Io8Y^b62DC$lkF&X$o!!$rAnRZ0T9PEY@_^8SWn{Dwk>x -z>```W5k+kq7?GYN*>I2{TCg{0uJS%_ao4C4^Tt#Dk1h#DIC6%}Iusbd8nJ6r5L7lc -zYGARXGJNhvo4wI9ny#h1PLiqQ;(3#|w-qd!T#gpWyBZiNW{g@bokNh -z1*MWzb7bkuGv@6oD>)L9BFRByBt@lVAMM}5?NP4u{y3|+PnaJonUCUKzx=Mc7Gity -zvvg)wF8uV1(F>kc9*lIeS-fc( -z`#@QQUeK&k(btD^9_WdXwrF@~crM)Lu!QW~ilF_+tf!?BF~N4rBkPC2MNa#vua&#h4Vyuz*% -z3b*B7jcseQ?Of1tU(Ax}Q(R}>ahRv&Co5)~YO2_txo0Yto^szW`bpv14ZR~ArgyRf -zYPK(nC3;5dos7q6A3fN{HzdDw=|-Pu+A{M|7COlh)7I0G4cALm-c&x#e4Nj7Q$jAt -z`;1bnGJVXMhHEMbI?6iqt?HlXKG1DH((Og`gpa<9oYPNv+YviI2UcS5*Ncp;__W)Z -z`FICZ18fg@-c_OWrDnSL*2`rKrT4`%mo1c1Y2TQ?{)?bkpso-kA=FE&i#oFopY>Qs? -z`dEuzTa$g)Pj8sxRb8n?T;P!MJWL?9sfK^Fm-_xPPJ=*QeW9~PTCrn-%4_Ilb90(o -zTtx7wJl7w2d)j^f=Gsp$;#=+T2zCZ#NR6#rwU?QDZ;^P(P}$i-@iG(>(r@>8B!{D~ -zhg$9s#bpG(m8e^z73o;Hqxj}%)&kYrW3;yxW=oumS6e)87wOY@{iD)XC35TJ&-1+3*pJ*pmGo5qiGfR>eC%&;Wh*{B)DmhY# -zaSN65&C2Blz9&^q)t?9|;Ca!)9^Y%LJ*!GUJ-dK>__9sMy6&D?ij_|qm&)6BCJ<*l -zJ5s;7zvfo85kIYiw!?(d~$Er-@UYh$Ntq=P2;)z -z#*JJ;1ASo!gMDM7s8+=uC}l1=^Ljt;3In?p&pvUV^*q+Zu`Bajoc!D3>ZnHXPO`#{ -zwTrZp_~RegE*Z9RS(2$|_u}c<4G&Mp-cR4PZ8q)dSYsm{R|?HeMg@)lHa7#m*h{3E -zDlN_p+n>bV%-d5OqSk$b(L8~b_=cOyMicj3X|hF4WrYS}#|I*Pk(csp(n{}*4o;gXT4!0et9V*_iVf&iQ%_2dU$42y@O4;Rxv~m+|L#Idk -zm6a*82NW)eTea^Pdb+&7JpYOMhZlK;_xXCS?|&Y~(Wjy2Ah;vDfVq#tASml<8bj9V -zj9%$93e&TPh3{-S`;g7<)5rBI53KcDuFt1lT#&U)=3sSWYl-E86?!qXRHs>a9$ulD -zT`x(rElzph35U~&NaWH0wuf9XXLyRNm%q4VpDLi=ZJ@oRnJ#{H>{{U--q`!`1BJ=a -zF=XuJAM?tZ;Af$aJ7OC4UU -z-5%ZHN}p){s?b)YwLxO+{)d&CX(saMj_d+KfjyUd%2zF3lS|%k*s-+Px$w}lbeiZP -zhK1&zhW$9u;nJbisw^dbtoqn(7VBec%lGtp-GA4o$7{V%oh0J$fm8R+t-m+_;%F?w -zg)QrDjVxjI<+}P*Q8ZVZZS7jmtRS~dG#VP$rL{@2-dQHttn3K#7DJs9$+8oT%n!cM -z=G!^eG^%8JzO>duj-h1eUhdnaJB3LNHmfp*=?SV8$%h#jtyN>CX%e|5<-th(_AEPxbc6f0;-PVF3mV~qW+38~rfi)}U^y@j;EMK=a*JwmNe>hL$eXO0F8O9*4b}t#`O-0ZIDVzDpq^arLX_+nQ1$IFEh4d1Kvt -zxnQf{o*R69Vj>Zb>K~-~1l~Ll6?Syd%BaU=E!zeqU!tKMFj^kt8RC7fe|6=#;r`dv -zRZYVcjUg987-%H|PVmzozcGLQ5nro(qXF_(XIk4!*JB)fFT`=tC^b|L7wX%%1`1b| -zxdgN6_FmJ)Pr@EvM* -z;!I;Ho&E2XZ@-_fE-JLcTW(g0Cv}r^@zN6+d+hCIbs0%^7_H|mSr{5VD|P^rqMJ&~ -zmVROh_dU++Qq5Fj-_dpHr0|%kSI^#yOH=(A-#cXm -z>|19ZM;>KuEOk03;GT?fI|G|nqldSIWHwqFFliR-b2wl;0C58NS(&F5RGPxmjqI_M2 -zj88OcLTQ&;*jU(&t{n?M&=ToyV07Df87X7i%x%Cy{*~b -z4RyaWsFP-$V9Gg@fyE8Iwa+*dmM++8Nc{TZtA*wxLg+Clh3H!3m(;F!-;%RqlcCIe -z=eYIpp$b-iA -zSS(+vX{h!p=sxQ!mZ)TOw#8Q33}g(klVx%_82f}Ph=_VgFC`Y=IWS5Yvs-NOfJWlZ -zp!0m_d2vRLNJI5b(75RmeQ~0ntY3DwodUqHS@J(M_4K<*33)W -zG^}Mjf^ObMHeXX(dVO$H+p+nNE!+-yF&r!Vq_&(@WOMJPOZgr>_4WGQRhHV_8ZD8* -zG)sj;V$2)eP1mJ{yliw4H&@(8Dyc*lx_I*dIyU!8-N>K4H}J)Z{0A)th>nIKt!To7}p#Q{}T#Ns&lT{AFdFf -z-`4DMG?`60K;5;S`WCKSIs|h)$#acnO>$qRWvkzqB(RVt{;OJERS$i5H}xCka+h>wsD&$ -z&rUT?X)6`x8+VC<4lt(Pl<{L?xOrs}dOK@LvT~P`4uq{_*&u)T5Tn-|^HQP9k8c$7 -z%re3=;$tYwqA{m)nQ%XynqLztX%+KF9o1Cd1r|x|u~x(n+T}oP|dsIFwHAf;U7T -zrK`uI$1ZA~N5*a_ReGF6wAkNRw3-`FPvPt&Q{Sv>1Hrm!qHj;Ws@OKlz5B>V51}Rw -zothlMZ23|=+=fke!yVj@aGuaMrMmx2jK(R8<1Le+hS;^Gj|TIH-zn&&2{dkD7$^MYVO4p=v`--O<{fIF>SRZk`9rT -z^%)i+;ysTgV|Wr|&Y2(7am(wxlIPZREw?PsI^qOgxu=2xds1RXOe>Dc+`Ho1oxF1c -zJ7Lu(T~+YZKcu$fZQVcvPliG5DO-W&;B?nw(xj_?Tn9BmFs1Yhv$JV&V$z!tS@U}&k?LG}%Zj-VHDHNspj+BR>m -zD6wo3k*|SWR6JkePW7$;@d@9I?B!L%y|G#G+gm-BpMM0)^^QzKs@hiJ>QQD55AT%h -zx75~0QlG9&%Ng#-8A@_vy=vANm-yl8<0UYV@|MG!TLPJ5o5h1FyF_vi=FyHTA4_Ol -zMwFh)nWzj;omC#`$g*0iMx|OLn>G90p3(5JDrWh^-Y3LZiY0G15AD&qztC~>hZ_$X -z_8GtyHlVz=Yt63Zw>kQ2kL(>4Wz;`*IHmCItedsnIrSv)L=BpUisLeZa(Gk^$JK8m -zYFZ!iFv)q~Wthb=kc0Qd~ -zV>#qc-R8iy^NfkQ(^s}>Ka06YyJQ}BdCjIduQVUEU1W-A=HW_ub|qbxtVsU2D1#I6 -z+6A5CTwH#koQbYQyy)3jNwU(ilt0eB-m`EK{aCP5R?aAe=cAF1#+=op^|$6yUt6@d -zSH8;V3YGh89YXcsq(|IrZ*B_(Go3oS^Q`3h?4{$h^iF%=v4sO_T2~wu)r~uv_KK-3 -zIoDp&?m)>7z9yQWz;=86ID_T5HcP+EX7K -z>2o(v*ln^oO|(qZMez#NK!1vW9N~s7+j!ggZr=0Ab9o@mR-c~W8yfb|wRI)imNoln -zbgk6#&(Jd}oz2o(9E^0Sc+L3INC -zL0==mR+G*ge^K4)T<0P0)i1|7Q2km$tDW2~@=)9e4QK^2x-nbL%_xql^ -zxW>`NAulq0y$M(R*vPTiUi#kTwb2BGJ0%^Psrw|$Jt5e;=i@5Paz4B>FI`U4XI$`3 -z$d|_3(yp(#cs9L4xSIjtPVB_bU_n3 -zf<#oVG%j-8%u%h|w9X-s9$^Oi)A4kvg8h{5nQGS>I#>k8)pFupSTOr>>!N(!w9VpY -zty+p+n~)l&*(sW9=j+p4@b!Xs-4eP#n2312smChM^#gYH#O!$a%ny?1w`X3ZeNu;I -zqjktByQD~iUD*Y!UHscWt`TO+Kn~C=`ZO*+DeKkPlCgNAOg_njuE_ClXdd+ehq{2A -zQvJIliGt0#ro+Y&9k0?4OD5*(?P$=`={wDMgb{fs)6&XDk#of)uQ<*`^wMsioG4dV -z;iSS=CYit?mT|FEw_SG@=!_kHE4fW(r8`g9VS|V?$ra&tnT{RX!^NI3M44{nP8B>e -z#3#O2O=T_pJ{EdA($HHh5fAsGdVZaf4mV!xjY-L3cqh_ABDj^J#QV(4-3ET-)~_R+ -z%umps;$jfpN9}Hya&M6q?QFgjQDLR4x{Dcioo}+Y1(9mLKHi -zZq^i3duSN3_F9*3T!gz^6kV1)aR1~1MccN6Kl!fdDV%KhSribY!XC4!zq<8KUN5u3#Kbqe -zir*x%rp#R#b>7H8WW9=^@bP5QjpD?1#UX5mk5aeHZOb@W_~w!HhLW@T4a8^Dxz~@l -zi<>i44C9e+?pSz#g|UagaN`A&`6iUHbY|!Q%%nQco<9-RQVsRiKfFMXA72jWe7nqf&1v`{9qnZcj^JN_DD4 -zQ^GC`q2K?W{_M5RV!?A=KE_T#np&y{Z!1nDuDo`wiJpggoKVZ0cE|j2nhNFDs=|!h -z6B`QY7CO~Nc#-srXf+i3vo7pe^X#b$8EcO+7B~(Z+ZeTH=!$Uiy3`W;`}>ziOORw< -zQ#i@OaX8F(oATCqBx@vx4(Gk`z-P?dl`OO3XWf{io*Giq*FBG&_mRDtMa_AJ=Eglo -znpI=(j+4lwE^0+p(TNegC?@J)PD{qhd&x07r1MSoW|;`TZga*)^Z)$tOmrvI2dz$HRLFsgG`oiNPHr`K@OIwSYb=wFn=6EGg8zi^wRFn_b -z4>@+caB@aY(i`79pA#%u?zKq3RD!6)yo<@0LJmS7Jc>8!r?N@d9tUX{R? -z>uD7N6>)YJ2wuBpIb^JU*_D%G&!en -z*C`~na#||HtH-<`J+2V6vZaYZ^|H=hbOs^>Hlf*{yx{C(C1Y|Lb;teuTby1FGVBvy -z>P~hJouB+9S)rt6sea4Ps%QocK4Q7Ii-^}Tvu)?rjCr6=75iaX -zV%P%oiXlVYhRg0-nTn$^w7OjA+V!YJr9mc3h|&7G@G6?b+F;5j40B#t^qS9mS3uVa -zibphdXYsK03n^BUEtB1rZM^P?>1l4VkPAelk4K30%y|>c=O@PSKc&Bf -zm*sp%H5HcCXG~7Vp3>O1C)@vmeL9tj -zYqYF@V)mx$q4}O2)L93cJvEcB*Kmq*OuiF`HW{;U8P;vvh1k9K^zI(mV7mA~46DML -zq&lTtK0sVfH7OkRj9UG8)*!!78jX#aI;rf+M458&qkk1fBc_h*Kre|BK+)Jaqi5L6poIU1^=z5dOCEc2a#-h71 -zdfv^aDBRTYOM8aul`Pa7dW$iKWlWVm@H(&5mtp5n_9!=ti}-qaz8&c)TT50|g=)Dm -z7A3HASnZyLgqSd*hLCEj=Uif)W&w$!M|?YP%aC5-7$%JKRGq3HyQz=!tmFAj%scfm -z^n7Eo_R=2j6^L9Zes>$uoP}#`3W(Wv9h%kk3KOCm5P~5+nv{{txU_qJV=9H -zw=G6AO;C1mYxJu~psdPL2BCGs3Jcl#ZIo&0B#Xwm_B=7q-%7pROUW*Q@}2wbq4fj` -zy!;_W<&`CFGH%YBx6ipg`ZiHCe}lyA-Ntt@FXJKEET;N|_X+n|0SQt2w)I?=!Aggz -z@Aa+}ZE?)M^;lq|S?@85^Qa|VvU8bU)kpkwq$*F}`v)}Duo?}X#3nT`^oi6(AkD_y;cwXcU -zN`ie|JKu#mJlJ(ISlM?^AxBh}h|NKs>Sh=o7D8BG`B`vXB^S*pv;?jtsaMTE@Xd556Xh5mwxJ6z3=6w&}hHjNAe6#&T -z&bXw6owlBgJOQkp563idtmNxv8p)L2Smfnwxep5=Nht8ueV`p%aY|;CyPH`=^?;j+s{b~h4UuW@@Ml!u|Kpt>$al0|HNirg#i6HWhUmwv#q7O -zSGGLdG=Mrm^2h7C%)1<}G@L&Sr=NgYfLFgSGLwme$;>19gNB4?v_52K1!TC`Jj -zwnPy7Cmm{zqaUSkz~n@iY<|1ssfzfGi;WmBZPuTdXF4y!^%9Y2&?@(hYy`bZOyTt$ -z{`cXRtslpg!wlJ{oc_yT=`CIsd1(%OG(M4{JzSWZ@P!_B%S|E!DubhJm)Ln{Wk+v-MinFcb%;dL+Sx31h4p1;A^Lcx>k)_|DUL*}>T4KkaUdgh7Ne(%otP$GEJ7xVLpat7qJIQGsRT}t48g72|tW4zGrdvw84&*g2(m{v3jEyGmR{pZa -zPK|KsSdUg^G|@(6^Zi^8)f3-ybVyKPtDjgSzF`sRZ558k4|GfHNE_}=(nZGb{q;2g -zvy5GpyEMJY_2xf5^!(LR?X{2;YAE!k%GAnpK-t=m%gs0$MAqjMn>u -zujMOk_&{d`8xO6;%UhD3E7T?5x~SgV6VSb@{>)?t9J7NdC)(ba%~5JH3Keh;Syqd1 -zsluXhYxS-zkE%kr>HXh&^LOVLG)UbX*VHWj|5*F#psJtfQ2_y^BqgMzyOHja?oR3M -zkW>@|F5NASv`RNp(%m6Qhop1}Z|~*%-u&jx`}55(!)JT$IbCi@%J^&pXcx%X(Fdt2CJo3AEKNtR^iu;b)J- -zPTKKmxIn-=E+F#mWx*#j4ye*b(h(| -zO{Yc@^U>J$C#tXsQl-B+QGdp0*ex{sxtG$D0!z*nPR#YfQS)){QaC&EsL(t~+n3#Alq?Y&V -z{tpEgqwx5f;ZOCkG97%y{TcAyY=3094ATN~=`+&dM?b#@a!*Fz+%W6ChL|WGQ@u(^ -zrtZCI_Ix5es~j)?->LVL{Gpfzde$3dJqzHY{q)^`sS!DHQ!E>`zDOuR+Y<4 -z(oJSR=a!Tqc6#ZQwm!~TI6|`m++s-rF&K$wwM6CYm1odP;y|otFr?PjT8Fev$m3>^qmv)Qu5!n=__|Itm_9MQ{O)1n#CyBxZn9qw^*4-k}(t5zR3 -zJ?Lr#e2y3L73@4#DOpwV8@uR{>oc*Hq`aw@*7N>#W&om4a!QntUjKSH=HIQ+uBv{Wb8HTmXj)G0rUqz=(`H^?ed|EM}9QVgu9e=4V4)P;yank^E^21 -z?0cY%=udSA#1-QXbM$(v*E^rz_i}Vn>z}7|kdKrpz~ltA-M)+toGaR+l$L?0DjTkb -zl#hwra>5=}qf(O0&*Ny*Q7@i@`%38Djb*LO@Oqh9T(Npu0!mFg+d*kPTUSHYvP66< -z$NbCS!@~#O@ZE)}Oqcs-f^j=7s|NS5SBDm3-x~Utd^hJDicg(+6|bvxs8{!3>Y%;g -zu+CT2syA_*h_u}4*D*9Hiv<~s#k0Q>P_u`M71ph**Xdng)7+fcSX}21IpReNPj}+; -zO-oAN8Ce&7JajZ~oJtG>Rvq!HCtt&nmcI-c%2mccGUpnZmqh!H&LkT+I00D2d83d&Ck=G;XX|5VRqIBLP(U+6 -zR+bI6{-WWkeXAPkYiIl<)a{Lz+ZIe2qassEHsHsc>lN#nl*xX(vr1$X*{k#(-MW#J -zmrCq?p`8K?DodH?vj-6?FgbK9G4^_~iU^7@oy7i)Hud`Q_5)qjx__CSx69Y&~6IH!5a%7DT( -zEtd9|c@7ksbh{5B_w*1*YCeOnMDk-=Qkf4N_^uVPCcNyJE&LyU1a -zzxM^JVHH14HY#D*r?-5arVjRwH&tu2@M<`~Yx}hiXF*fkzeJ8rigtMUk*_mGp4<54 -zrr`$!^%XMSB@(5kh%C47TF$i33Q0TzIpQZRoMQ4ko@&W^2^Vl;>)tcGcbt&d;DDoy -z-_QSJpEVNv?5%RQf?9lw7@Ly1NFGTrQoEuc)=$kVYSA@Fh(L43st*^*UN56%-0mKF -zTp!cMtdZIqKL%^IXf=bBl%ED|qbll1{R(P{EpP-)RAkCt-f3F`vR0Ox@Gpn_OqpxM -z(9Y`%S_qO|ON=nN2i$Cn -z`M3hOOSN5%qFgXMfGp_7Z-9Q7ts -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 -zNg`eVy=MBJ^;JeOs3%*Za>PrS_>RZCCo(T+w -zi2!P^P=?z7LK28tjAcRF8AZzJ2rkKr~-3Up5xxi?=nPQcbCr%?r!H|Ylf5W7Y-t!76orXR{f9neT|R98a{Jd(-a8;6Q)$k2AyO@u4fyoaZ!m0& -z9n3eY(R?4EKrQ!=3;t;#Onpa(^c=Ww?8Y$!DI_!Mj1XDYa8|il5p4;?Zcc6wDsq~< -zy=Jq@W5n6QhfxKmCKYLnE*N;J7U#$c08t|2N -zBDlWl#yF5;mM#2(BtRWs@=^XE7}HxOGGGslQPZ2Ob8pyFxuzMfvCF%v>7&lPSg~N# -zs(1^VxU*lS5OZRtmZDir=!E)t2yW6#VZY-|b+rdZn2*A!Qq^TisB@{ci$H~yr@Peo -zRw0rJK3fIb1#)eI-JlQU;_(`9hQGie37++SiS5*K^FYr?2+ps4y#DQRo05E3Q%+wBC0I=b7_^zX^N)LxJAw#W4(yYgWZpP%PXR%4|&(XvkWe+$zJIb@Ng9Sh1QL -zDpAhj4y -zRHB9$O%yS~`tKuNI%)?w6buK$fYfW3sF`Gu_=08Dc@y<0Um{>mjAQV7+}2CrL6Fz5 -z=}w#%r&T1w*|PZ?-`fd20Nmi8FpeH74UgWQE#!MFQ6CcYv{!+BwpacaZ867KtGX6XbBI93%+&9}s{*bZ -z-c%p(!fvPv`|tUuRGHRThQw?SotYb4_1`6Ft06krmn*?6kNnxe-C9B%&linmwosL6 -zdHSBk-_$8;C68>9o~>KNob>X|J2;h-5rFq>%1WY^8zC>c5BUcEnLV@ARP09}w+IVb -zX-_4+O*om6UG2#sPUmSREHbqyp?MncJ*5-fR**0QQs;||xtDs$yGj4(;b~xZiS+nL -z*bONa;XLVtd~ZCiYJintcA!^7w>*8Bpe#0OuNKvL_9J)G>=Ge$Vv&k+4*J+Vvf{=1 -zMZV%=Zu~R(u+XmHw7>cCMJ&11)J8qeX(txgRHi=f;Ai964!CaS=*<0HVoc%;2}(9aB5Z_iUlMW%rz?nZ|zK+CQ=*G78IY{#Qm!H?-X13Xc!o(Cl9yAU8x3`qZTeShC%k7hmE*Z){W(1g&D-1-A -ze{rZx@x^CN@tDxa8aK(_o?W!~q?jGp(K80cdTT75!CaHXE&T<0F`i)%wZ@y^(4Wp| -z&YtB3n1@LYa!Z3U`<#S -z(07~b)9cC6Rs;et4YHPm*wdbb|IcjD3g-m%K4L#3#rV?7eyi)YL&Qvgb`$>&bj03v -z1VW{RT?N1U>8UixdJCeTmmak#=l|PEY}FENzs=Q}9gcvvV!Njb%+7YsnqfiN#INb_w8Tv}cDylGWos+KtL4nI -zK3dZ}tRP*0{B9`{7r}?_@xG)!AWp&CvG)+Cmijj0u_w7=OBwItktPBizIvg2tedI(c#kOHekSSfm(pMIQ|(zX3HnU^QGB|t}`@`{T$-LnZ(@D72kbn!i -zH)3S-_j6Zfx^r#Mf!kco6D9Gn+nw-hvJNejmu;*MS!gl69*=vGgH9#OoMYg@+RM|t -zK5PdK3fx?5O^Ko%f5jy}t{i0T;H;hCXnXQ(PH7W=1qx~k5SS*_I0y!0=RVJV0|n3a -z{Qd9ux8iV!C*j%OGM83LKHUn~_#XW7c?S=&K&79*d~R4P#&7!g8T#(gs$y-zd2{A>(wWBn8DI@Jnp~T&_175|gQl?ZrKFnL&%SDm> -zgvO#_erGVPqq%hAD}80c)xk}T34ON7(p2$PJ&(2u<{`vxFw*~6IC^!6ZZhCEtN$?q -zBv!TP-w#50grAAqpI&r5+Ye6BefdcW7bj2U=$K3;;oK(i4K9js0CuqXB}2})h*b(Q -zCmz4WtFt>31C1zEgTEHYGi*N4dgoOJM(=Cd` -z4-Z{WSXpZh(N$b>L}ZXMD|aF4sd%bl#ujsF28r|_x<|L=S`&72wni|pL0;HfWqEzC -z8Q?j#?fKWbP0%g1AiK8u;*2hPn-F|A3}O{4)hw}U!*z$N8q{PW;_iQ2#vf!YoA)f_ -zyx&ETs?-+S93}-Ic9L?F9Ij=|N`6*GPV!vi-M2Jo&@!j9zk{q?KBfB> -zsEocfBK$%psF6#%W>HK@wl#XaqgBx#KsYd;(qyZEoH6~x>)d~qyeQCJKh?US!w&lB -z(FKhY_FpHAmH6YRac=?&KYzLY03Gq{SW>HEYlEO~R1=(A@w__zrow|WMCcHZ&!LW4 -zAR-m$sLQq1#r*|F0Or?qSbCuUuDwS1s}L@1VuBQRdzeF4B)PB|U_p*i2Lv|tKEt{X -zT>XkD@`e>Q9i+ahDn2?NjB^<)5WmT*1dN0EVb#D%tK_*BpX3UHcw3-5{E1tt(;cwHGq{M8b+ -zR3Tj2naNMEl_7Tb@ViF*H>p*7V?fkAYTX3xxYlytKu6!t;avc`o#0cdj4Kk2x`{8> -zqKVZ#*9xXKsc!)+yd=4n25fCAyX6qN;d21-f~Ed6;#E8301B%fSh6G()~(7;`FKa_ -z`TI!XH0~_1Xqkrz`aU#@TVVmde(My}3^; -zdE5ePJLQEd{kb=0rm=uI`@e2el>UQu1S;RpSlkmPPzq2=N@ZdAkWR_<=*MlY`r({5c^cTDvEqxpWz~#*0L{z} -z&wxf1E`VFP>a)W_xK=ly&6m2&1+$m&f$IbE&dbmPoVnx~Af*cJJ9lDX*u6x!|I7^_ -zM13~nH3YVY;43a=+Txj7j^_fArwbQaUs+&PL6Hxodm3n0Yj&KsQ_CIQpQeS=H1;LXLdXL-h& -zZA}>b(~~q3pglaaJkP}iUaE(VtMv|0USG`9dF<}uDo -zsBWNn5K74|EOUbWWbA(iAM8RcQYCUFnPO}(h3B7ZtqhRSMN|7U&{QzhuG9+l9kyE5 -z0?U<5riwGTbT)m52oUPDG52uB9iuz^D%eOnp+ez8?L*v&|FLO6&J3Qv*s%oIzqf@^ -z6MsOkyi|UruOLpI)h=%f2$A=>c5*ZC@X$LFh~+rx;)DJ$2sDwfixHQT6jk4V`o;yIFtqjNDAn~-RPMi25e<0(13Jw)g -z$StYHw`Gj{qAs;ilI|`=uc*-M?3kp2=H~G6*kEry9UM;W>i=l8n)dpl5BvwOfCDJ? -zGgN(`elB9#Tv<6KfcB4Wu~3Al -zp26<{aHR8)^5$hJ?>qZc3ga)uj10Ljvd-0*>&N{UH_e-gGjVRhXV_1u7d3pne$ZU -zhnX?k|Gt<>g9qPAua+H^1O-12hI4pCh}#I%(LKj9muQGC%|uaCAE8TVJ{eK_R0?FQ -zZt(4P5k~yAc;W}$K|kULxcRKZaGtz+M*P<_CR4JwU97vMXAt2zR$3p1ycB|NhlXe# -z;#)lVR&@30o`GkvI%0YWMj*L=J)hy2)m@XTf}uD+Ix5UKN$W3^!eCn&^xW -zcRUr12=O6-8M+x=i33Tgwe&^QCMZ2`H5wzttyN(UU<3TJF}KBKWjF%J#M*!G3N-I< -zx{tTb0nfxs9hxtPZl7%nMU{PY5})bFAl5@AkG-4iY5}*Pt8VnhToT+3zK+|~xQbrH -zGr;;>WVKI8y6I7ep;>e}D&>?gMA_{i=BtSUyPnV3FRP0Cd=W6gKM*-gSJecB2jZ~a -zw%Zmp-09H;E1CX{&|UuxaIk5{60aVqF;Bn_eGI|0H(bD!^javwJau}4&7}k_SeZ^x -z{abQv#d37i0h6_8$vyOU2_X3nQ@uI2fvC#(lTDj3YSvxZUhy$nK)^MD|OL>E%Y7I*x|Tv5t6 -zM(3@YbCYpYKvBwvA{5F@=@pcnz)ukR&=R)s)r{GQsO3GWZd^%96Anvelxz}w1u-so -znyR7lGGZX3XavV9<Cy&rqjA`$>UIqwI2MKy*i)eto3y!VDH6z40r~_Lf -zu1>H+(EW0)6mT8J2(G;C0BOL)j0xz!sNnpHP?U{Zw-Tr_Qgi|0UA+oH-vo~Ah1Hc* -z_ib)VCm*?ylgkBUf`SR%=+j#(X8w^+x8v2PWFPi_S|z!LpxLtYzPVF~`Ahr; -znktFN6_iOSFo+jRgy)XhdQz2O$3f>&9}21}BH>NC1<{8ZAz3`fE42j2W^^EXnl_g= -z=4-04L5!H;Q~Y8e&{(M0_@cMe3_M#6;Zp-bz(BSdlkEmvK8gs(6_D={2@_(=&u_BI -zyA%JZ*S`iVM%=pqhprzgF9!dWD@be^kudXu!OX~pth*hYdY7DLwJ_rhak1N6_Ip|0 -z5)mLS0lGvyMP1}S<5;gX;VD4LA`{zzCQ -zt6<*f+_2^arDHfXtB&6ftDrIobxstLLj^j1A;>3HLCTM|deS+ynetvK4FU${&ueCf -z`9kCy03!vE3$uu=zGy~tf+eg}aD|XTIOYM4qVa9_n>-L#o0>2|HZ_Y2u%t!ik3Lx$ -zfQnW0XP40rV%3QNVG``OUPbg+1LaR!P(#;fhZV9)3~U+J7AoNfGFI*SoA`Q!3E9p* -zfVQzDYWK&nb@PvNwAGV;Eb-dvy@P${G>`L34}YZuhL9KijQiPiBY@;E5GE|#*1NiM -zw5jxEzoJVpD76U4NftAV3#u7pt>!3F^wJq326B3`*uUVDfrqb5G1bptey1FC2H}j& -zGJRcS%@u$WmZR+wLvm+oKnICp1*O^-KuT{x+eL$z8UxAwE@_fFmWLuMqQ|++T!mlO -zi(Z$n6)MbqMB8PB2;cq*dB=J&f)5xqn8=>b`!v&xaf$C*OIXM4u6RHY7){V-fIH45 -zc-rZ*v+xq6Z8L^*==92efYWM3Z~V^m%_1?sZ*v+55RLy>flQ2VjrGevAblaiO+3Zj -zpoMab_kFiJ_kO~Z^E8a3Fb%q&aZJ-ff$!&ZL}!9HGO1XVL#f^wg>1dN_sz~TpslDa{iq^ -zXEPHztG`JANcne&A&sHn03Gh;OP(fGCw-*aOl+n;4$vc=Xx-mSF}|%(;t%W~2J**o -z6MvZMTWY{Q+DhXOb^xhMo|L62LzaqNT_KP|Ss=$0jB2Iro0mZAh@A!BqkkP3h+lmH*yzpXL>c{c@F4rBgMOx2az(CdU{p7 -z(ruLUu@>A|#L6C&hf8=rpVmB5t&x)`o@rN$JDW);=8 -zT3DuiQnc=d>f3r#NncRe!~V6E-1BhL0+qa*drAu>iWnD4D#0gVx0rD=z)dv=KB&Bu -z9Ij1GzSdaySpu->()s!I@yU!ppvqWl>dVkYK@DMAH5*&+zF|WVw7WFvKqcemp}A_? -ztvk}WWk8OqgC=(80l$Gw>D>v&@et5P=jU_3QMyE`Ch>X!g{6C>gqi35HKUMmQ${3R -z4)4GvP_9n9OV2HB-&sRRe7N?09`7!|OP{If&n>(#fuY&9?S8@8V&W=Q2>o_LE{VGn` -zBRKr=QT=T5{w2%1hDQnXp>32R9yuSx+Wy4Lb+z@c4L -z6zZ4!xr~K+jBmZG`pCiO)cVV|>Lxz};#^2Hb3rCC=Fxp6?G~dON#cjS(rCrP9gWPB -z?~#KZ)hLxBtr>u3&NO6`FW8F))MXEPu+a6^{&{O^kfOFlFw1BF440PUC|`VG??`~e%>K@Sa-O47M;%lbtLmuXSOt({K>fHA#{+m*06?Q5)_WA0~MtUM4Z%8luCcxjaHK+ -zS6#8^?*8q#>y;nu@ui@Qnd=@M`ISi`QrUP=FSQ_V4D!F@;U7ZM#vsTU%J{7e@gpdNa9fpzV@L|a4{O^fngguQav|td@4OnKW{W!zs^ttJ(2vO}Jsxr_J!5Jhvh$2jyCh;Esvwy(S_4A^GIO6DxdF->N8 -zOGSUNyS0KSZ3obEi%N8GULy -zvToJP_jPY7^2+15^Pb4zDwu;xPX1#V72C(JfEu9DH~;86w`cf*yKVr_i;)F3#D+Y% -zBqV?(cAAyr3jUOWi?YNEy13vcJ-E5kNgwj>4zxx#0=$7_F;ikrl0!GIGyoK##Ik5O -zSN>ZZ}(4#_gkE0aWJMG!LT{XaJP6> -z(|`Gr7h$c=5v$n9M&!*KXo?sUqxeQ0{pZ)Yfb{Two4N?L!qvV-4x#J!SLK8-*19S7 -zv2cf7*E>{WK6~39SGn_C1^jFPWPec%3qz$kVl~cDYu@N11smi~qUl5|jX1gO?IpPj -zmi+ZBJS0kW(fO0stl*6huB6z9LerUH463x0mZ!p+#NCf9`k3I?si)eZK$#by| -zzWQ|X;yuUA_ZhccKPR>~C84!&m#U_}0#M%iYAb|j70*vCGRoI2Atn&U8x7UkGV}1U -zEHRIYYcJ8#JjFy+}1r$=tb9~e#=L% -zGvf$vo2gI5@^Jr)Ib3f!E%sBs6Th3T4mKq}ggiAWFhr+{)v^dQeNR~w_mXo+zGXjl -z^tuCc%!T;gJA6HsB}o+!FK5N&Uk&->ei -z04`r6`wua26-pio&BkGc?yq5mZX^$d<`0GPW3WOdDfRSy4BSCAu9`W}(f^gimCP$^ -zf|DA$?O0wp$R<%;7j))8zIRG1Trp-w3x&rgx~9k?)r -zcI`|+NI -zhp!b1`q|!$6!FDbwDF#d<7}|3fQCQs^u_;Bf(JtjrHtw+#j*K@R03%PcggHNkQE+S -z?gYkYxIA>E-TrElyo(C($Q0DYQKSKL>;fZNSh!wcAiWbv{i*#~Vdc=AAGq2=bN?DA -zk3K~*c97BE%v<@C*ynH{I5$=|voMx)WnEuxnbNh&pQ_-(v#fcLQpP5FgmFCVj0!!lE!ylJ|{9DEgAwe^WBk -zUo;ib#-*4dgZ(;a6`F_^eFhC!@3q{IyU9-E?7D?8eI2azPxueQvFcIRjSttbPl#^x -z*zP*hsnE!EOmgl?mGC6mX;dP;AM(5@$BvbMr>K)os{K66jUO#LHBEQI<9{q%)o7Xs6Rc>VJ8Wdk5FD2T8Y{aG6luzRu|U -zA$qvTiAUD*9YX5QIjT=dZa(}(g%iQ!N$5AC>@FFB8!}1JMXppDB%e~f@3VO**_m&$ -zN4j*pz)$JmnEm3DcCp**$ULbjCD>+e%8c0#;#A|Z6ME@m{N(;mimXv$9gYe@_QJ>H -z3q*YT9)-Ws-o84Ub~>A-V>s1Osq4&t&nGXdU)>B->Y#JqmF(0E)&0}gFzitnU#cs- -zTz3p#BpxQ9eOVIDNpm|mBw!iG!|?lpw8auU&}>$P%Odj+A>AL#i@jh9`Pg=|!VfFo -z!V#DJGQGrPra^c$#~$CT40q2s+DU3bIj=Stwr7tEV3~DllysV8k{e_nlOB2=twP`Oo{i?RXLo`N#kCosNK) -z>6Aa?|Hc~+H{Hyb3?iXX8ZsGSx0|^h;Avm(Xqftqd)N7Be9hbp=kB7L&<%PFO4GFq -zPlSA+(V{&%`^|R_>_iKG3bKRh=biqKOAX-wQD|)B$V6400`D93epOmA1m7FN_xnvQ -zS6Zcwa5}Tx`r{J?@PKeV|CqrKw{UrZ7=D|1cdd!^U$2Ax{qH$}_caf`5DPrI2m)|B -zZE4$fSsA+rkwmtcrJ_XwJ47Hff1U+m6`%wF`g59;+r#OSMvIeCZCz44r3?-8_HMbq -z`Valpuc+3P=%u)pH&6BFilUf@gL|??y8S?hw7wF;j*6s5r^bgKo3y@88Rin0WK_^=-@SH#{#dm%jaHr4#wZl -z2?9sO!@i~8JYHU7%^)AtzPps6ZF%<21U7RN#c9tJ`}?hUhWVGl`+B3KeUC4!Zn7e16)f+SCNN^P@zZsS*iSNC&Wc(W4K43+8H -z0=K0R3y!EIQV^GF4TYpYBeP13hJK57S4Z!#!Cef$9MY;r(<){io@E(P5;#q%6&mw# -z^25e$CR=M(BED~!gwFO%M0Ja)#a9-`nG8rifqjtC7hauZ^{?S0F30&3W(l$0|Dmez -zK9y~C4bbQHMk;wz8Q0Y+TgnWX7Q<8v_pRwCn -zF`FBq<)^tf2cJSAQG79WHy%xVk9mn}(71uA6=9_>2=zZIuW+6oTH!W!;O?<*s5s@d -z^L8l0Q^sER(LBd!xB|F4*59emP|CT|)_lFo+q^}re0HediGp^D9sh4SZ~81nyf-a4 -z;fPc?QcjSqXti3d^A>9~3JQcCq~*sv;KyY&V!2eltlO!Nh~hD-?=dHghbofY;~y>x -z3@0>R;hUtwt9jQ>kT2C97=PR!l>ciL_GqA|UB6{by0XId<|_~Oz%kx-cwmWkVNBW{ -zd`w)iW)qe3;D|_+{^AtD(?qxDYo2iSMCvmuGa++%x_vr+>~Hbu+ar2h8K+B5q%#`@3b6m?rn9@iQ>{!!_ioOW?{ck(NE -z;%=Tj@@?0~6gT?YuEx5>NAd54lR9jhdr~gL4Gbo{8%^~;yOmWRNeH8_wts)QL|yaj -zpv2{F!Dv+v{ICs8aahMcbnC>f*T+gaq45`=a70sOZF8Mj;S!rpm*7;u197^=<@YFz -zo&h^Di|vu`o+N;W;V2h9q$Ekmcly!bk-p^09nvI+N*%@r1n66H)p`i2;xoa_X@nv^ -zxc^;wBS3ID4_0WK-KlK$kj;}_RBx&JBCp4#zWtY7nbM<&*xP$>D -z%>^ard?n~5CrL95nVCHe@9uARKT+L1U46Q%s_FWl=bY-yFK*lQ^@I@CZszpo&KjH4 -zs-v_Y7R#+y=Bn3j^UN6ni{HItoy8QDn%8tj?Uu^F{yq@qAtXOWl35`8r~%_%;x}pF -zRib=-LB0dyc=;BZZ8bG4*2-irl&W2XDvwWqJ|9P>64BMvl&pwI4?BTC?)9tr^-rUI<*g=f0aQ -zMdqZ=yc<^MW@4GR@J@t!S`x~K>-%e-TYHcjB|x0+{Bajnxv3XjeV_i!Z&mr`e36cApsPM@$!fK5D8Th*OaEp@^3F7dxbi4{3gV -zIPhOR<7Dhn%2egE%}WU7VjS% -zuDm9WOi6TYWU;Nn9*Szt^U7N+@UNw;&rgyi>);#JA!~1qwuKee)XAz?*X*a2b&4=X -za?cFBq2*-b8I`Ma=zxUG{GRqcIYvU)Lt!` -zwalYmBB|wK7u55mRb}<$zsiuFcU#uLZD?$ViZYe;$ewCk(o}%|wJ%;J7OCW^qT)mK -z?b*WHCaL7Pq6w5KyXD@ARORaqJoK(k0tW2WQoS(P9r)>qQ{D7|!q#tLY})>M#5V7s -z8Pma&D;gElJRLTbrr0Ul7CSewL}B^el+b`z^Vall?@d@zQO6&#Y=TY->wN;WpKOYV)w)D|vk#{%Z@+6R~<n -zQJLSd^=LuQ?A7-~2m6Tp!_?*uF?Hd~shiA)jBnNUgeKS;O5Q)TrW6l$Z(lqQ~=OHC)l* -zbR*@#|2xv2-rFhr@i@9jg|P8Zu-gGIHW0{cL9Z7wuMy4K0X@qJkZ^~z|DZwAT^mgp$8$Q#;BKf@12&HN3c%?jl2T5;%g8-y=w)2 -z@1Bims)%MxdC<9g$)GUFSWOw>rT{p%a5VUs?$|AgJMO+EW%a+xX!XoA5#8;l%ey>xQi)s5BD^S&ef -zvVmG+398@|@Z;`+HPQGkbgJd~z+Z0m>bo}u_nrAAPf4BzM-jI^z?`fopc5K@Tm8jV -zG%D*qU~~%ie7*EM=JoiWa*us@5=}MV5fKugK7zIAgd0R4D{Cp#mmY@+6H^9VyBVtB -z;t3Owo;Uskq%<`<3SY(j1!Z=$N_Ys29qnNi$=nO4Eay6$SN1o7T-_&!b4!zq)f3s^ -zc_a?G`N{9Yc{ld-KJc3jf%oT*=9Dx20eGB^|MqHp4Ic4WUnxOqADONj9bay1eCNFR -z$c?wzQ2`kq?s2%{$W|5P0d`p?x@}+Ds#U!SEWlE%bS3Q>&GV#(S2{I;LtL^BjdTKD -zBWr1>n0y1UJFPg6nUoqJ@WA&4uu}orj~NB{;043ew=GE*2}T4a4%gSj@r*^E -zeNa@U5p$B7@8T(oPR-wlBNza#D-&3#0g7g~AJ?g0E)tQs5XaVje@+t_$r!$&+ui%r -zXaS#oc$qc=kQpJ2*H7eL)A?HBZob^*7%5l>r`!QxxQMvBDlXA~$0joCXfV#LN!I;e -z=x+DkrhanBhWzO=uonEr{_0vYaPt7|;*Il**G<6l1{4`(y@IzexHVGw#%a1k!x)yw -z!(5QZRh>U81-%Exj+fzS!`lqStLz>~{J5+s>ui?=^yv$Q+>H)_2Ac{1zC?i_EJf;pOet -z8pxZN+pzoP!7K1>Z9txSbkNaaBB4xa8Kb)B9ZF-z@;PepRK^+Ek2xI~ -zsz-{7`mv^*sZ@1`EN3_mbcfVaJlQ`UBAa5M#&@M7O#?h)ryf@EMm2<$Z94;a;?&x=SNFHU_ -z!t0}Pxved1qQT!vrlyGWmB-eY`+J|VW?-kH@oUWLNV!mZqi!q?3wa~|Eb24X5VIdE -z`x5LeZ#1#~Qc8(^^8k{MROM=KQhN@k>#??^B=dZ@$~66AFlS}2@1LvU3!1-=v|L-Y -zW~{lRX((8Koyj~>H+RKwc7PK;#0s>=2&P#&t!srM-NkN}yYXyTW!Jg(RM3u{B#}5Lxg2L6%C7a* -zhmy_jWT&W7R`E$KoP|Db+Jj=r4O1~xL-S>|7ejxFB=aa`B^qyG`J$2P7@C4%PKV*J;4kd8vAFV1Jo+^%ipovLTzvdr$Yp2Uk>kb0v=?RUJe -z{zW<$jOSmFC@7`X+1^ -z|8|SRaPx=B>haq+9T=o0aIR56l!an)bDHa<5I=if;@?f`KZ1}YvJA62=~B#RY@G+- -zY;DxMP1pl!VX>_dUNPGmz6;Vo5-D+R`OQB87kq85+4w?~xpAv1-7~`H$!{k_+jol4Nk;Lomg=^? -zpDYo5hE*R;Kd%1<=UeHSu7M;wFl=3xV&CJy=(cI@pIYEGaa)J)#kW-@{~6X_RbJE$ -zy}zo0Vf{VBc;0{Nu6^s?Eq$G=htwG3W+utORe$zvuYKde4`g20Z?uIBd(sX)Z}t3P -zRrU;)j@2kozJ9ML$fY#lSdJ7;khXQz@OA%nGE7<`bcSNGsr!BWPSva#Ngg|~R_i2k -z(cc?UkKtl60q44Nu7C?gu~Nj0jy(2#>=h=Wmy3MXJLhABPEL%1-%MP3g_CH^9Wk)Q -zs8Xc4cHxg9$73>9ZTW&iq>A&dBc#bD!ouDv6-hmD4Jt@R&uVkC?TG}<-y3N9LOh`{9v`v&xHCS->?P)x=*aHmixv1CDKT5`&jhKMv=aT`N$tW> -z=#Qjohj<3u&4% -zC#shscWblQVv5^lkiVmjj~*JkcjJSFjQ+wi!n=Y|T)_rhM@pA_xI=hjC(IWYVJHbJ -z-ulWP{n2yMV-3qcHwgKAy0?GDWV^g6INq8EOMMS=a$Ils9t_X_5hRU4lBOhh>vF#j -zyTqg5bF?b(`w2vrx;`H>_qg{#6epHlJ$>JRI6_e17LeCti%e`S5gDIR9-D#Iaez0T^ -zpF`JS$QK}YQ9QFzuW2Zcg?JoPtLcsytKM`u)j2B-4Wu5!cvGvjT+hfL&M@O?S*qFV -z$fFp3tebiH>+TtRY=vvQdhdzaTkWu7_gCdSn$3Zel_`-ZBr}d>u73Q|>R1Pon4(*! -zP{h~E9w*kn^d+x}2O41LSB6F8i{rY@Jc|_WBElVeNNPjNT)p^_OX@2=ypeR4yD8K3 -z5&Ec{@$+^cBT9o~<_Kl7D1}{7nNJY~E4ckUaz&F19gO}pu}bD{Cn%#HKD0i@hds1W -zK&f?zQdGgLSvTH=YEY#Ill}D5d3!!~&N$WjKH;nDJAfcaa~V4yUUXmwV6;{<*2k_< -ztasKcB{?udW=JSrM6B(XJ$mbt8V6temqYU{Cj`H|$^JPNS&$(3jvjO3n@}tSjCl_B -zM;6SbuvT(%adN78gZeg~99giqQg2!^(NX@S!R6cJ!UzF4ZFiKGj5 -zGFM4XJHfv+PFbz>-A6m!L%{dsavAq(?=eMZySJ#m4r+sXxw))==`U)YO9WgyvcT$7 -zADsk&g*m@kqDO@Cn?BxkF}$t?`4qdOhi7c;aVw1@IfqwBdA%7@2fUry`~L(P1U2`m)eB< -z1h=*eH71qQ2~*QF&4LN6@M#G9<{>3Pu7K?{?VKq7hjwerQUt$;((d8m`*y~m3$nj< -zgx0OyGu`&7>$SkU9N8J`Yvj6PckVb|llMZVMUUsVHXuA!0&l`VJsdA0Dy2YKHB#w7 -zj|nw-!XWu;?z;C?2X*050iA`uat{QTwx#-X+}vD;$J?dFj_nT}1pcCJXC!aQE6goj -zCpN_fcwZF+OnV}!75~9}zT#yf3##@ib@gK6q8wK&UflaMpxP@cTXALn=c4O1kf^uA -z9jGamxkcOqlntNDa;FS&HVB~YMycV4*{?91eseUPXogZklv>l#`cK>K>6*9HMX70* -zcduXa`xEj;-QZ_&nZKf1UZ-V>O<=4#+HR)7`EZmN>aJ46vHO#$@NK(mfR8Did|bhY -z5&pG436rZdfvxR!Bm4Mzbr3De)$p!*y=5-FPlLjA^;=qyZ+^v^?J4WO%ZC@GLW&*z -z#b{vO*5P)hn>T8|rQ#H8GG7K+(MSHYs57It;DxW==D|fa{?R_RT!jirJ>$Hed;wR1 -zV}>TR8n!oO=D0v;SDEZ`?h*zH+Q+rXjUN}w`uhkj5vPW97EL@cq|8LrW)HnJvtfbo -z#M=1&!mah%W$;sK8r2e6z@E^D^B#ERi&UzIcWrg3c|^FoKD=+osNm<}g=Y_c -zPM`o()@~mB8GR;apm9u@d)`UbK>%!xZ`M}|Onhrr+G4Q-m;oZ}Yg|?kF=^miOYvGBlXPIWM -z6yY*!0Q-lYmXv*0#wbj;(m}`w0t8}w_8w`*+5J5xLxdI6g<(5eV{8VNIA{yBx$(_A$mZ$YEJ8c&i@7ku8>6ir;;PRM=YaSs>WX -zV~s@T2+gmpdoPaV!(@C>rx1i|Zp;Sb`zM^79wO45!2n~-wh1{1*kPzuysb|h|{yv-TVcsco;l88r-0?3oswZwp{b>1U_smPmfBS=c -zRicY&$w{pgI-5xAW5=mf!kXoB6+J62W3YtNFKE}xe+5 -zDsSuSbu`pB+F1`@mXZ~(PGIKA`^bk{K4Ql-D@xOF{(NA#ZJgRDLKA6 -zf+isb!(AZaS-cWWk(C*S&zAPJIqG;dh+JL~XgFU>b -z&QI5jj<8agT}tPt~-S- -b&=!Yol6%P;{v@(L85Lyi`_3fb6UBc4C!SUG - -literal 0 -HcmV?d00001 - diff --git a/patches/grub/2.02/install_signed.patch b/patches/grub/2.02/install_signed.patch deleted file mode 100644 index 19e0880fe..000000000 --- a/patches/grub/2.02/install_signed.patch +++ /dev/null @@ -1,295 +0,0 @@ -From 0c58db5d40a48dff1dbc87bb964a4b34abab3017 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:22 +0000 -Subject: Install signed images if UEFI Secure Boot is enabled -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Author: Stéphane Graber -Author: Steve Langasek -Author: Linn Crosetto -Author: Mathieu Trudel-Lapierre -Forwarded: no -Last-Update: 2016-11-01 - -Patch-Name: install_signed.patch ---- - util/grub-install.c | 196 +++++++++++++++++++++++++++++++++++++++------------- - 1 file changed, 149 insertions(+), 47 deletions(-) - -diff --git a/util/grub-install.c b/util/grub-install.c -index 0e1303ee5..4f092afe7 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -80,6 +80,7 @@ static char *label_color; - static char *label_bgcolor; - static char *product_version; - static int add_rs_codes = 1; -+static int uefi_secure_boot = 1; - - enum - { -@@ -110,7 +111,9 @@ enum - OPTION_LABEL_FONT, - OPTION_LABEL_COLOR, - OPTION_LABEL_BGCOLOR, -- OPTION_PRODUCT_VERSION -+ OPTION_PRODUCT_VERSION, -+ OPTION_UEFI_SECURE_BOOT, -+ OPTION_NO_UEFI_SECURE_BOOT - }; - - static int fs_probe = 1; -@@ -234,6 +237,14 @@ argp_parser (int key, char *arg, struct argp_state *state) - bootloader_id = xstrdup (arg); - return 0; - -+ case OPTION_UEFI_SECURE_BOOT: -+ uefi_secure_boot = 1; -+ return 0; -+ -+ case OPTION_NO_UEFI_SECURE_BOOT: -+ uefi_secure_boot = 0; -+ return 0; -+ - case ARGP_KEY_ARG: - if (install_device) - grub_util_error ("%s", _("More than one install device?")); -@@ -303,6 +314,14 @@ static struct argp_option options[] = { - {"label-color", OPTION_LABEL_COLOR, N_("COLOR"), 0, N_("use COLOR for label"), 2}, - {"label-bgcolor", OPTION_LABEL_BGCOLOR, N_("COLOR"), 0, N_("use COLOR for label background"), 2}, - {"product-version", OPTION_PRODUCT_VERSION, N_("STRING"), 0, N_("use STRING as product version"), 2}, -+ {"uefi-secure-boot", OPTION_UEFI_SECURE_BOOT, 0, 0, -+ N_("install an image usable with UEFI Secure Boot. " -+ "This option is only available on EFI and if the grub-efi-amd64-signed " -+ "package is installed."), 2}, -+ {"no-uefi-secure-boot", OPTION_NO_UEFI_SECURE_BOOT, 0, 0, -+ N_("do not install an image usable with UEFI Secure Boot, even if the " -+ "system was currently started using it. " -+ "This option is only available on EFI."), 2}, - {0, 0, 0, 0, 0, 0} - }; - -@@ -821,7 +840,8 @@ main (int argc, char *argv[]) - { - int is_efi = 0; - const char *efi_distributor = NULL; -- const char *efi_file = NULL; -+ const char *efi_suffix = NULL, *efi_suffix_upper = NULL; -+ char *efi_file = NULL; - char **grub_devices; - grub_fs_t grub_fs; - grub_device_t grub_dev = NULL; -@@ -1081,6 +1101,31 @@ main (int argc, char *argv[]) - */ - char *t; - efi_distributor = bootloader_id; -+ switch (platform) -+ { -+ case GRUB_INSTALL_PLATFORM_I386_EFI: -+ efi_suffix = "ia32"; -+ efi_suffix_upper = "IA32"; -+ break; -+ case GRUB_INSTALL_PLATFORM_X86_64_EFI: -+ efi_suffix = "x64"; -+ efi_suffix_upper = "X64"; -+ break; -+ case GRUB_INSTALL_PLATFORM_IA64_EFI: -+ efi_suffix = "ia64"; -+ efi_suffix_upper = "IA64"; -+ break; -+ case GRUB_INSTALL_PLATFORM_ARM_EFI: -+ efi_suffix = "arm"; -+ efi_suffix_upper = "ARM"; -+ break; -+ case GRUB_INSTALL_PLATFORM_ARM64_EFI: -+ efi_suffix = "aa64"; -+ efi_suffix_upper = "AA64"; -+ break; -+ default: -+ break; -+ } - if (removable) - { - /* The specification makes stricter requirements of removable -@@ -1089,54 +1134,16 @@ main (int argc, char *argv[]) - must have a specific file name depending on the architecture. - */ - efi_distributor = "BOOT"; -- switch (platform) -- { -- case GRUB_INSTALL_PLATFORM_I386_EFI: -- efi_file = "BOOTIA32.EFI"; -- break; -- case GRUB_INSTALL_PLATFORM_X86_64_EFI: -- efi_file = "BOOTX64.EFI"; -- break; -- case GRUB_INSTALL_PLATFORM_IA64_EFI: -- efi_file = "BOOTIA64.EFI"; -- break; -- case GRUB_INSTALL_PLATFORM_ARM_EFI: -- efi_file = "BOOTARM.EFI"; -- break; -- case GRUB_INSTALL_PLATFORM_ARM64_EFI: -- efi_file = "BOOTAA64.EFI"; -- break; -- default: -- grub_util_error ("%s", _("You've found a bug")); -- break; -- } -+ if (!efi_suffix) -+ grub_util_error ("%s", _("You've found a bug")); -+ efi_file = xasprintf ("BOOT%s.EFI", efi_suffix_upper); - } - else - { - /* It is convenient for each architecture to have a different - efi_file, so that different versions can be installed in parallel. - */ -- switch (platform) -- { -- case GRUB_INSTALL_PLATFORM_I386_EFI: -- efi_file = "grubia32.efi"; -- break; -- case GRUB_INSTALL_PLATFORM_X86_64_EFI: -- efi_file = "grubx64.efi"; -- break; -- case GRUB_INSTALL_PLATFORM_IA64_EFI: -- efi_file = "grubia64.efi"; -- break; -- case GRUB_INSTALL_PLATFORM_ARM_EFI: -- efi_file = "grubarm.efi"; -- break; -- case GRUB_INSTALL_PLATFORM_ARM64_EFI: -- efi_file = "grubaa64.efi"; -- break; -- default: -- efi_file = "grub.efi"; -- break; -- } -+ efi_file = xasprintf ("grub%s.efi", efi_suffix); - } - t = grub_util_path_concat (3, efidir, "EFI", efi_distributor); - free (efidir); -@@ -1342,14 +1349,41 @@ main (int argc, char *argv[]) - } - } - -- if (!have_abstractions) -+ char *efi_signed = NULL; -+ switch (platform) -+ { -+ case GRUB_INSTALL_PLATFORM_I386_EFI: -+ case GRUB_INSTALL_PLATFORM_X86_64_EFI: -+ case GRUB_INSTALL_PLATFORM_ARM_EFI: -+ case GRUB_INSTALL_PLATFORM_ARM64_EFI: -+ case GRUB_INSTALL_PLATFORM_IA64_EFI: -+ { -+ char *dir = xasprintf ("%s-signed", grub_install_source_directory); -+ char *signed_image; -+ if (removable) -+ signed_image = xasprintf ("gcd%s.efi.signed", efi_suffix); -+ else -+ signed_image = xasprintf ("grub%s.efi.signed", efi_suffix); -+ efi_signed = grub_util_path_concat (2, dir, signed_image); -+ break; -+ } -+ -+ default: -+ break; -+ } -+ -+ if (!efi_signed || !grub_util_is_regular (efi_signed)) -+ uefi_secure_boot = 0; -+ -+ if (!have_abstractions || uefi_secure_boot) - { - if ((disk_module && grub_strcmp (disk_module, "biosdisk") != 0) - || grub_drives[1] - || (!install_drive - && platform != GRUB_INSTALL_PLATFORM_POWERPC_IEEE1275) - || (install_drive && !is_same_disk (grub_drives[0], install_drive)) -- || !have_bootdev (platform)) -+ || !have_bootdev (platform) -+ || uefi_secure_boot) - { - char *uuid = NULL; - /* generic method (used on coreboot and ata mod). */ -@@ -1871,7 +1905,75 @@ main (int argc, char *argv[]) - case GRUB_INSTALL_PLATFORM_IA64_EFI: - { - char *dst = grub_util_path_concat (2, efidir, efi_file); -- grub_install_copy_file (imgfile, dst, 1); -+ if (uefi_secure_boot) -+ { -+ char *shim_signed = NULL; -+ char *mok_signed = NULL, *mok_file = NULL; -+ char *bootcsv = NULL; -+ char *config_dst; -+ FILE *config_dst_f; -+ -+ shim_signed = xasprintf ("/usr/lib/shim/shim%s.efi.signed", efi_suffix); -+ mok_signed = xasprintf ("mm%s.efi.signed", efi_suffix); -+ mok_file = xasprintf ("mm%s.efi", efi_suffix); -+ bootcsv = xasprintf ("BOOT%s.CSV", efi_suffix_upper); -+ -+ if (grub_util_is_regular (shim_signed)) -+ { -+ char *chained_base, *chained_dst; -+ char *mok_src, *mok_dst, *bootcsv_src, *bootcsv_dst; -+ -+ /* Install grub as our chained bootloader */ -+ chained_base = xasprintf ("grub%s.efi", efi_suffix); -+ chained_dst = grub_util_path_concat (2, efidir, chained_base); -+ grub_install_copy_file (efi_signed, chained_dst, 1); -+ free (chained_dst); -+ free (chained_base); -+ -+ /* Now handle shim, and make this our new "default" loader. */ -+ if (!removable) -+ { -+ free (efi_file); -+ efi_file = xasprintf ("shim%s.efi", efi_suffix); -+ free (dst); -+ dst = grub_util_path_concat (2, efidir, efi_file); -+ } -+ grub_install_copy_file (shim_signed, dst, 1); -+ free (efi_signed); -+ efi_signed = xstrdup (shim_signed); -+ -+ /* Not critical, so not an error if it is not present (as it -+ won't be for older releases); but if we have MokManager, -+ make sure it gets installed. */ -+ mok_src = grub_util_path_concat (2, "/usr/lib/shim/", -+ mok_signed); -+ mok_dst = grub_util_path_concat (2, efidir, -+ mok_file); -+ grub_install_copy_file (mok_src, -+ mok_dst, 0); -+ free (mok_src); -+ free (mok_dst); -+ -+ /* Also try to install boot.csv for fallback */ -+ bootcsv_src = grub_util_path_concat (2, "/usr/lib/shim/", -+ bootcsv); -+ bootcsv_dst = grub_util_path_concat (2, efidir, bootcsv); -+ grub_install_copy_file (bootcsv_src, bootcsv_dst, 0); -+ free (bootcsv_src); -+ free (bootcsv_dst); -+ } -+ else -+ grub_install_copy_file (efi_signed, dst, 1); -+ -+ config_dst = grub_util_path_concat (2, efidir, "grub.cfg"); -+ grub_install_copy_file (load_cfg, config_dst, 1); -+ config_dst_f = grub_util_fopen (config_dst, "ab"); -+ fprintf (config_dst_f, "configfile $prefix/grub.cfg\n"); -+ fclose (config_dst_f); -+ free (config_dst); -+ } -+ else -+ grub_install_copy_file (imgfile, dst, 1); - free (dst); - } - if (!removable && update_nvram) diff --git a/patches/grub/2.02/linuxefi.patch b/patches/grub/2.02/linuxefi.patch deleted file mode 100644 index f5b446073..000000000 --- a/patches/grub/2.02/linuxefi.patch +++ /dev/null @@ -1,484 +0,0 @@ -From dcdb222cf4b007d1850a746074a6b5d1cac6c517 Mon Sep 17 00:00:00 2001 -From: Matthew Garrett -Date: Mon, 13 Jan 2014 12:13:15 +0000 -Subject: Add "linuxefi" loader which avoids ExitBootServices - -Origin: vendor, https://github.com/rhboot/grub2/commit/6510d5b51950e9245ff88882127e596dc6e5d39f -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi.patch ---- - grub-core/Makefile.core.def | 8 + - grub-core/kern/efi/mm.c | 32 ++++ - grub-core/loader/i386/efi/linux.c | 371 ++++++++++++++++++++++++++++++++++++++ - include/grub/efi/efi.h | 3 + - include/grub/i386/linux.h | 1 + - 5 files changed, 415 insertions(+) - create mode 100644 grub-core/loader/i386/efi/linux.c - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 2dfa22a92..68e47a727 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -1733,6 +1733,14 @@ module = { - enable = x86_64_efi; - }; - -+module = { -+ name = linuxefi; -+ efi = loader/i386/efi/linux.c; -+ efi = lib/cmdline.c; -+ enable = i386_efi; -+ enable = x86_64_efi; -+}; -+ - module = { - name = chain; - efi = loader/efi/chainloader.c; -diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c -index 20a47aaf5..efb15cc1b 100644 ---- a/grub-core/kern/efi/mm.c -+++ b/grub-core/kern/efi/mm.c -@@ -49,6 +49,38 @@ static grub_efi_uintn_t finish_desc_size; - static grub_efi_uint32_t finish_desc_version; - int grub_efi_is_finished = 0; - -+/* Allocate pages below a specified address */ -+void * -+grub_efi_allocate_pages_max (grub_efi_physical_address_t max, -+ grub_efi_uintn_t pages) -+{ -+ grub_efi_status_t status; -+ grub_efi_boot_services_t *b; -+ grub_efi_physical_address_t address = max; -+ -+ if (max > 0xffffffff) -+ return 0; -+ -+ b = grub_efi_system_table->boot_services; -+ status = efi_call_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_MAX_ADDRESS, GRUB_EFI_LOADER_DATA, pages, &address); -+ -+ if (status != GRUB_EFI_SUCCESS) -+ return 0; -+ -+ if (address == 0) -+ { -+ /* Uggh, the address 0 was allocated... This is too annoying, -+ so reallocate another one. */ -+ address = max; -+ status = efi_call_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_MAX_ADDRESS, GRUB_EFI_LOADER_DATA, pages, &address); -+ grub_efi_free_pages (0, pages); -+ if (status != GRUB_EFI_SUCCESS) -+ return 0; -+ } -+ -+ return (void *) ((grub_addr_t) address); -+} -+ - /* Allocate pages. Return the pointer to the first of allocated pages. */ - void * - grub_efi_allocate_pages (grub_efi_physical_address_t address, -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -new file mode 100644 -index 000000000..6afa13d41 ---- /dev/null -+++ b/grub-core/loader/i386/efi/linux.c -@@ -0,0 +1,371 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2012 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+GRUB_MOD_LICENSE ("GPLv3+"); -+ -+static grub_dl_t my_mod; -+static int loaded; -+static void *kernel_mem; -+static grub_uint64_t kernel_size; -+static grub_uint8_t *initrd_mem; -+static grub_uint32_t handover_offset; -+struct linux_kernel_params *params; -+static char *linux_cmdline; -+ -+#define BYTES_TO_PAGES(bytes) (((bytes) + 0xfff) >> 12) -+ -+#define SHIM_LOCK_GUID \ -+ { 0x605dab50, 0xe046, 0x4300, {0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23} } -+ -+struct grub_efi_shim_lock -+{ -+ grub_efi_status_t (*verify) (void *buffer, grub_uint32_t size); -+}; -+typedef struct grub_efi_shim_lock grub_efi_shim_lock_t; -+ -+static grub_efi_boolean_t -+grub_linuxefi_secure_validate (void *data, grub_uint32_t size) -+{ -+ grub_efi_guid_t guid = SHIM_LOCK_GUID; -+ grub_efi_shim_lock_t *shim_lock; -+ -+ shim_lock = grub_efi_locate_protocol(&guid, NULL); -+ -+ if (!shim_lock) -+ return 1; -+ -+ if (shim_lock->verify(data, size) == GRUB_EFI_SUCCESS) -+ return 1; -+ -+ return 0; -+} -+ -+typedef void(*handover_func)(void *, grub_efi_system_table_t *, struct linux_kernel_params *); -+ -+static grub_err_t -+grub_linuxefi_boot (void) -+{ -+ handover_func hf; -+ int offset = 0; -+ -+#ifdef __x86_64__ -+ offset = 512; -+#endif -+ -+ hf = (handover_func)((char *)kernel_mem + handover_offset + offset); -+ -+ asm volatile ("cli"); -+ -+ hf (grub_efi_image_handle, grub_efi_system_table, params); -+ -+ /* Not reached */ -+ return GRUB_ERR_NONE; -+} -+ -+static grub_err_t -+grub_linuxefi_unload (void) -+{ -+ grub_dl_unref (my_mod); -+ loaded = 0; -+ if (initrd_mem) -+ grub_efi_free_pages((grub_efi_physical_address_t)initrd_mem, BYTES_TO_PAGES(params->ramdisk_size)); -+ if (linux_cmdline) -+ grub_efi_free_pages((grub_efi_physical_address_t)linux_cmdline, BYTES_TO_PAGES(params->cmdline_size + 1)); -+ if (kernel_mem) -+ grub_efi_free_pages((grub_efi_physical_address_t)kernel_mem, BYTES_TO_PAGES(kernel_size)); -+ if (params) -+ grub_efi_free_pages((grub_efi_physical_address_t)params, BYTES_TO_PAGES(16384)); -+ return GRUB_ERR_NONE; -+} -+ -+static grub_err_t -+grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), -+ int argc, char *argv[]) -+{ -+ grub_file_t *files = 0; -+ int i, nfiles = 0; -+ grub_size_t size = 0; -+ grub_uint8_t *ptr; -+ -+ if (argc == 0) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -+ goto fail; -+ } -+ -+ if (!loaded) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, N_("you need to load the kernel first")); -+ goto fail; -+ } -+ -+ files = grub_zalloc (argc * sizeof (files[0])); -+ if (!files) -+ goto fail; -+ -+ for (i = 0; i < argc; i++) -+ { -+ grub_file_filter_disable_compression (); -+ files[i] = grub_file_open (argv[i]); -+ if (! files[i]) -+ goto fail; -+ nfiles++; -+ size += ALIGN_UP (grub_file_size (files[i]), 4); -+ } -+ -+ initrd_mem = grub_efi_allocate_pages_max (0x3fffffff, BYTES_TO_PAGES(size)); -+ -+ if (!initrd_mem) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("can't allocate initrd")); -+ goto fail; -+ } -+ -+ params->ramdisk_size = size; -+ params->ramdisk_image = (grub_uint32_t)(grub_uint64_t) initrd_mem; -+ -+ ptr = initrd_mem; -+ -+ for (i = 0; i < nfiles; i++) -+ { -+ grub_ssize_t cursize = grub_file_size (files[i]); -+ if (grub_file_read (files[i], ptr, cursize) != cursize) -+ { -+ if (!grub_errno) -+ grub_error (GRUB_ERR_FILE_READ_ERROR, N_("premature end of file %s"), -+ argv[i]); -+ goto fail; -+ } -+ ptr += cursize; -+ grub_memset (ptr, 0, ALIGN_UP_OVERHEAD (cursize, 4)); -+ ptr += ALIGN_UP_OVERHEAD (cursize, 4); -+ } -+ -+ params->ramdisk_size = size; -+ -+ fail: -+ for (i = 0; i < nfiles; i++) -+ grub_file_close (files[i]); -+ grub_free (files); -+ -+ if (initrd_mem && grub_errno) -+ grub_efi_free_pages((grub_efi_physical_address_t)initrd_mem, BYTES_TO_PAGES(size)); -+ -+ return grub_errno; -+} -+ -+static grub_err_t -+grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), -+ int argc, char *argv[]) -+{ -+ grub_file_t file = 0; -+ struct linux_kernel_header lh; -+ grub_ssize_t len, start, filelen; -+ void *kernel; -+ -+ grub_dl_ref (my_mod); -+ -+ if (argc == 0) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -+ goto fail; -+ } -+ -+ file = grub_file_open (argv[0]); -+ if (! file) -+ goto fail; -+ -+ filelen = grub_file_size (file); -+ -+ kernel = grub_malloc(filelen); -+ -+ if (!kernel) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("cannot allocate kernel buffer")); -+ goto fail; -+ } -+ -+ if (grub_file_read (file, kernel, filelen) != filelen) -+ { -+ grub_error (GRUB_ERR_FILE_READ_ERROR, N_("Can't read kernel %s"), argv[0]); -+ goto fail; -+ } -+ -+ if (! grub_linuxefi_secure_validate (kernel, filelen)) -+ { -+ grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), -+ argv[0]); -+ goto fail; -+ } -+ -+ grub_file_seek (file, 0); -+ -+ grub_free(kernel); -+ -+ params = grub_efi_allocate_pages_max (0x3fffffff, BYTES_TO_PAGES(16384)); -+ -+ if (! params) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, "cannot allocate kernel parameters"); -+ goto fail; -+ } -+ -+ memset (params, 0, 16384); -+ -+ if (grub_file_read (file, &lh, sizeof (lh)) != sizeof (lh)) -+ { -+ if (!grub_errno) -+ grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -+ argv[0]); -+ goto fail; -+ } -+ -+ if (lh.boot_flag != grub_cpu_to_le16 (0xaa55)) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("invalid magic number")); -+ goto fail; -+ } -+ -+ if (lh.setup_sects > GRUB_LINUX_MAX_SETUP_SECTS) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("too many setup sectors")); -+ goto fail; -+ } -+ -+ if (lh.version < grub_cpu_to_le16 (0x020b)) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("kernel too old")); -+ goto fail; -+ } -+ -+ if (!lh.handover_offset) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("kernel doesn't support EFI handover")); -+ goto fail; -+ } -+ -+ linux_cmdline = grub_efi_allocate_pages_max(0x3fffffff, -+ BYTES_TO_PAGES(lh.cmdline_size + 1)); -+ -+ if (!linux_cmdline) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("can't allocate cmdline")); -+ goto fail; -+ } -+ -+ grub_memcpy (linux_cmdline, LINUX_IMAGE, sizeof (LINUX_IMAGE)); -+ grub_create_loader_cmdline (argc, argv, -+ linux_cmdline + sizeof (LINUX_IMAGE) - 1, -+ lh.cmdline_size - (sizeof (LINUX_IMAGE) - 1)); -+ -+ lh.cmd_line_ptr = (grub_uint32_t)(grub_uint64_t)linux_cmdline; -+ -+ handover_offset = lh.handover_offset; -+ -+ start = (lh.setup_sects + 1) * 512; -+ len = grub_file_size(file) - start; -+ -+ kernel_mem = grub_efi_allocate_pages(lh.pref_address, -+ BYTES_TO_PAGES(lh.init_size)); -+ -+ if (!kernel_mem) -+ kernel_mem = grub_efi_allocate_pages_max(0x3fffffff, -+ BYTES_TO_PAGES(lh.init_size)); -+ -+ if (!kernel_mem) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("can't allocate kernel")); -+ goto fail; -+ } -+ -+ if (grub_file_seek (file, start) == (grub_off_t) -1) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -+ argv[0]); -+ goto fail; -+ } -+ -+ if (grub_file_read (file, kernel_mem, len) != len && !grub_errno) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -+ argv[0]); -+ } -+ -+ if (grub_errno == GRUB_ERR_NONE) -+ { -+ grub_loader_set (grub_linuxefi_boot, grub_linuxefi_unload, 0); -+ loaded = 1; -+ lh.code32_start = (grub_uint32_t)(grub_uint64_t) kernel_mem; -+ } -+ -+ memcpy(params, &lh, 2 * 512); -+ -+ params->type_of_loader = 0x21; -+ -+ fail: -+ -+ if (file) -+ grub_file_close (file); -+ -+ if (grub_errno != GRUB_ERR_NONE) -+ { -+ grub_dl_unref (my_mod); -+ loaded = 0; -+ } -+ -+ if (linux_cmdline && !loaded) -+ grub_efi_free_pages((grub_efi_physical_address_t)linux_cmdline, BYTES_TO_PAGES(lh.cmdline_size + 1)); -+ -+ if (kernel_mem && !loaded) -+ grub_efi_free_pages((grub_efi_physical_address_t)kernel_mem, BYTES_TO_PAGES(kernel_size)); -+ -+ if (params && !loaded) -+ grub_efi_free_pages((grub_efi_physical_address_t)params, BYTES_TO_PAGES(16384)); -+ -+ return grub_errno; -+} -+ -+static grub_command_t cmd_linux, cmd_initrd; -+ -+GRUB_MOD_INIT(linuxefi) -+{ -+ cmd_linux = -+ grub_register_command ("linuxefi", grub_cmd_linux, -+ 0, N_("Load Linux.")); -+ cmd_initrd = -+ grub_register_command ("initrdefi", grub_cmd_initrd, -+ 0, N_("Load initrd.")); -+ my_mod = mod; -+} -+ -+GRUB_MOD_FINI(linuxefi) -+{ -+ grub_unregister_command (cmd_linux); -+ grub_unregister_command (cmd_initrd); -+} -diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index e9c601f34..764cd11f5 100644 ---- a/include/grub/efi/efi.h -+++ b/include/grub/efi/efi.h -@@ -40,6 +40,9 @@ void EXPORT_FUNC(grub_efi_stall) (grub_efi_uintn_t microseconds); - void * - EXPORT_FUNC(grub_efi_allocate_pages) (grub_efi_physical_address_t address, - grub_efi_uintn_t pages); -+void * -+EXPORT_FUNC(grub_efi_allocate_pages_max) (grub_efi_physical_address_t max, -+ grub_efi_uintn_t pages); - void EXPORT_FUNC(grub_efi_free_pages) (grub_efi_physical_address_t address, - grub_efi_uintn_t pages); - int -diff --git a/include/grub/i386/linux.h b/include/grub/i386/linux.h -index da0ca3b83..fc36bdaf3 100644 ---- a/include/grub/i386/linux.h -+++ b/include/grub/i386/linux.h -@@ -139,6 +139,7 @@ struct linux_kernel_header - grub_uint64_t setup_data; - grub_uint64_t pref_address; - grub_uint32_t init_size; -+ grub_uint32_t handover_offset; - } GRUB_PACKED; - - /* Boot parameters for Linux based on 2.6.12. This is used by the setup diff --git a/patches/grub/2.02/linuxefi_add_sb_to_efi_chainload.patch b/patches/grub/2.02/linuxefi_add_sb_to_efi_chainload.patch deleted file mode 100644 index 7557cd81b..000000000 --- a/patches/grub/2.02/linuxefi_add_sb_to_efi_chainload.patch +++ /dev/null @@ -1,816 +0,0 @@ -From dffbb7316bdbee9595d0e2c247972ec70bf8bec6 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 6 Oct 2015 13:04:37 -0400 -Subject: Add secureboot support on efi chainloader - -Expand the chainloader to be able to verify the image by means of shim -lock protocol. The PE/COFF image is loaded and relocated by the -chainloader instead of calling LoadImage and StartImage UEFI boot -Service as they require positive verification result from keys enrolled -in KEK or DB. The shim will use MOK in addition to firmware enrolled -keys to verify the image. - -The chainloader module could be used to load other UEFI bootloaders, -such as xen.efi, and could be signed by any of MOK, KEK or DB. - -Based on https://build.opensuse.org/package/view_file/openSUSE:Factory/grub2/grub2-secureboot-chainloader.patch - -Signed-off-by: Peter Jones - -Origin: vendor, https://github.com/rhboot/grub2/commit/a00fc9f578d2c310438ced8d4be07f5fa4005873 -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_add_sb_to_efi_chainload.patch ---- - grub-core/Makefile.core.def | 1 + - grub-core/loader/efi/chainloader.c | 612 ++++++++++++++++++++++++++++++++++--- - include/grub/efi/pe32.h | 20 +- - 3 files changed, 596 insertions(+), 37 deletions(-) - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 1b642472e..9b7b661ff 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -1747,6 +1747,7 @@ module = { - module = { - name = chain; - efi = loader/efi/chainloader.c; -+ efi = loader/efi/linux.c; - i386_pc = loader/i386/pc/chainloader.c; - i386_coreboot = loader/i386/coreboot/chainloader.c; - i386_coreboot = lib/LzmaDec.c; -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index 14ce6ddd7..456043407 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -32,6 +32,8 @@ - #include - #include - #include -+#include -+#include - #include - #include - #include -@@ -46,9 +48,14 @@ static grub_dl_t my_mod; - - static grub_efi_physical_address_t address; - static grub_efi_uintn_t pages; -+static grub_ssize_t fsize; - static grub_efi_device_path_t *file_path; - static grub_efi_handle_t image_handle; - static grub_efi_char16_t *cmdline; -+static grub_ssize_t cmdline_len; -+static grub_efi_handle_t dev_handle; -+ -+static grub_efi_status_t (*entry_point) (grub_efi_handle_t image_handle, grub_efi_system_table_t *system_table); - - static grub_err_t - grub_chainloader_unload (void) -@@ -63,6 +70,7 @@ grub_chainloader_unload (void) - grub_free (cmdline); - cmdline = 0; - file_path = 0; -+ dev_handle = 0; - - grub_dl_unref (my_mod); - return GRUB_ERR_NONE; -@@ -191,12 +199,523 @@ make_file_path (grub_efi_device_path_t *dp, const char *filename) - return file_path; - } - -+#define SHIM_LOCK_GUID \ -+ { 0x605dab50, 0xe046, 0x4300, { 0xab,0xb6,0x3d,0xd8,0x10,0xdd,0x8b,0x23 } } -+ -+typedef union -+{ -+ struct grub_pe32_header_32 pe32; -+ struct grub_pe32_header_64 pe32plus; -+} grub_pe_header_t; -+ -+struct pe_coff_loader_image_context -+{ -+ grub_efi_uint64_t image_address; -+ grub_efi_uint64_t image_size; -+ grub_efi_uint64_t entry_point; -+ grub_efi_uintn_t size_of_headers; -+ grub_efi_uint16_t image_type; -+ grub_efi_uint16_t number_of_sections; -+ grub_efi_uint32_t section_alignment; -+ struct grub_pe32_section_table *first_section; -+ struct grub_pe32_data_directory *reloc_dir; -+ struct grub_pe32_data_directory *sec_dir; -+ grub_efi_uint64_t number_of_rva_and_sizes; -+ grub_pe_header_t *pe_hdr; -+}; -+ -+typedef struct pe_coff_loader_image_context pe_coff_loader_image_context_t; -+ -+struct grub_efi_shim_lock -+{ -+ grub_efi_status_t (*verify)(void *buffer, -+ grub_efi_uint32_t size); -+ grub_efi_status_t (*hash)(void *data, -+ grub_efi_int32_t datasize, -+ pe_coff_loader_image_context_t *context, -+ grub_efi_uint8_t *sha256hash, -+ grub_efi_uint8_t *sha1hash); -+ grub_efi_status_t (*context)(void *data, -+ grub_efi_uint32_t size, -+ pe_coff_loader_image_context_t *context); -+}; -+ -+typedef struct grub_efi_shim_lock grub_efi_shim_lock_t; -+ -+static grub_efi_boolean_t -+read_header (void *data, grub_efi_uint32_t size, -+ pe_coff_loader_image_context_t *context) -+{ -+ grub_efi_guid_t guid = SHIM_LOCK_GUID; -+ grub_efi_shim_lock_t *shim_lock; -+ grub_efi_status_t status; -+ -+ shim_lock = grub_efi_locate_protocol (&guid, NULL); -+ -+ if (!shim_lock) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "no shim lock protocol"); -+ return 0; -+ } -+ -+ status = shim_lock->context (data, size, context); -+ -+ if (status == GRUB_EFI_SUCCESS) -+ { -+ grub_dprintf ("chain", "context success\n"); -+ return 1; -+ } -+ -+ switch (status) -+ { -+ case GRUB_EFI_UNSUPPORTED: -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "context error unsupported"); -+ break; -+ case GRUB_EFI_INVALID_PARAMETER: -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "context error invalid parameter"); -+ break; -+ default: -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "context error code"); -+ break; -+ } -+ -+ return 0; -+} -+ -+static void* -+image_address (void *image, grub_efi_uint64_t sz, grub_efi_uint64_t adr) -+{ -+ if (adr > sz) -+ return NULL; -+ -+ return ((grub_uint8_t*)image + adr); -+} -+ -+static int -+image_is_64_bit (grub_pe_header_t *pe_hdr) -+{ -+ /* .Magic is the same offset in all cases */ -+ if (pe_hdr->pe32plus.optional_header.magic == GRUB_PE32_PE64_MAGIC) -+ return 1; -+ return 0; -+} -+ -+static const grub_uint16_t machine_type = -+#if defined(__x86_64__) -+ GRUB_PE32_MACHINE_X86_64; -+#elif defined(__aarch64__) -+ GRUB_PE32_MACHINE_ARM64; -+#elif defined(__arm__) -+ GRUB_PE32_MACHINE_ARMTHUMB_MIXED; -+#elif defined(__i386__) || defined(__i486__) || defined(__i686__) -+ GRUB_PE32_MACHINE_I386; -+#elif defined(__ia64__) -+ GRUB_PE32_MACHINE_IA64; -+#else -+#error this architecture is not supported by grub2 -+#endif -+ -+static grub_efi_status_t -+relocate_coff (pe_coff_loader_image_context_t *context, -+ struct grub_pe32_section_table *section, -+ void *orig, void *data) -+{ -+ struct grub_pe32_data_directory *reloc_base, *reloc_base_end; -+ grub_efi_uint64_t adjust; -+ struct grub_pe32_fixup_block *reloc, *reloc_end; -+ char *fixup, *fixup_base, *fixup_data = NULL; -+ grub_efi_uint16_t *fixup_16; -+ grub_efi_uint32_t *fixup_32; -+ grub_efi_uint64_t *fixup_64; -+ grub_efi_uint64_t size = context->image_size; -+ void *image_end = (char *)orig + size; -+ int n = 0; -+ -+ if (image_is_64_bit (context->pe_hdr)) -+ context->pe_hdr->pe32plus.optional_header.image_base = -+ (grub_uint64_t)(unsigned long)data; -+ else -+ context->pe_hdr->pe32.optional_header.image_base = -+ (grub_uint32_t)(unsigned long)data; -+ -+ /* Alright, so here's how this works: -+ * -+ * context->reloc_dir gives us two things: -+ * - the VA the table of base relocation blocks are (maybe) to be -+ * mapped at (reloc_dir->rva) -+ * - the virtual size (reloc_dir->size) -+ * -+ * The .reloc section (section here) gives us some other things: -+ * - the name! kind of. (section->name) -+ * - the virtual size (section->virtual_size), which should be the same -+ * as RelocDir->Size -+ * - the virtual address (section->virtual_address) -+ * - the file section size (section->raw_data_size), which is -+ * a multiple of optional_header->file_alignment. Only useful for image -+ * validation, not really useful for iteration bounds. -+ * - the file address (section->raw_data_offset) -+ * - a bunch of stuff we don't use that's 0 in our binaries usually -+ * - Flags (section->characteristics) -+ * -+ * and then the thing that's actually at the file address is an array -+ * of struct grub_pe32_fixup_block structs with some values packed behind -+ * them. The block_size field of this structure includes the -+ * structure itself, and adding it to that structure's address will -+ * yield the next entry in the array. -+ */ -+ -+ reloc_base = image_address (orig, size, section->raw_data_offset); -+ reloc_base_end = image_address (orig, size, section->raw_data_offset -+ + section->virtual_size - 1); -+ -+ grub_dprintf ("chain", "reloc_base %p reloc_base_end %p\n", reloc_base, -+ reloc_base_end); -+ -+ if (!reloc_base && !reloc_base_end) -+ return GRUB_EFI_SUCCESS; -+ -+ if (!reloc_base || !reloc_base_end) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "Reloc table overflows binary"); -+ return GRUB_EFI_UNSUPPORTED; -+ } -+ -+ adjust = (grub_uint64_t)data - context->image_address; -+ if (adjust == 0) -+ return GRUB_EFI_SUCCESS; -+ -+ while (reloc_base < reloc_base_end) -+ { -+ grub_uint16_t *entry; -+ reloc = (struct grub_pe32_fixup_block *)((char*)reloc_base); -+ -+ if ((reloc_base->size == 0) || -+ (reloc_base->size > context->reloc_dir->size)) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, -+ "Reloc %d block size %d is invalid\n", n, -+ reloc_base->size); -+ return GRUB_EFI_UNSUPPORTED; -+ } -+ -+ entry = &reloc->entries[0]; -+ reloc_end = (struct grub_pe32_fixup_block *) -+ ((char *)reloc_base + reloc_base->size); -+ -+ if ((void *)reloc_end < data || (void *)reloc_end > image_end) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "Reloc entry %d overflows binary", -+ n); -+ return GRUB_EFI_UNSUPPORTED; -+ } -+ -+ fixup_base = image_address(data, size, reloc_base->rva); -+ -+ if (!fixup_base) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "Reloc %d Invalid fixupbase", n); -+ return GRUB_EFI_UNSUPPORTED; -+ } -+ -+ while ((void *)entry < (void *)reloc_end) -+ { -+ fixup = fixup_base + (*entry & 0xFFF); -+ switch ((*entry) >> 12) -+ { -+ case GRUB_PE32_REL_BASED_ABSOLUTE: -+ break; -+ case GRUB_PE32_REL_BASED_HIGH: -+ fixup_16 = (grub_uint16_t *)fixup; -+ *fixup_16 = (grub_uint16_t) -+ (*fixup_16 + ((grub_uint16_t)((grub_uint32_t)adjust >> 16))); -+ if (fixup_data != NULL) -+ { -+ *(grub_uint16_t *) fixup_data = *fixup_16; -+ fixup_data = fixup_data + sizeof (grub_uint16_t); -+ } -+ break; -+ case GRUB_PE32_REL_BASED_LOW: -+ fixup_16 = (grub_uint16_t *)fixup; -+ *fixup_16 = (grub_uint16_t) (*fixup_16 + (grub_uint16_t)adjust); -+ if (fixup_data != NULL) -+ { -+ *(grub_uint16_t *) fixup_data = *fixup_16; -+ fixup_data = fixup_data + sizeof (grub_uint16_t); -+ } -+ break; -+ case GRUB_PE32_REL_BASED_HIGHLOW: -+ fixup_32 = (grub_uint32_t *)fixup; -+ *fixup_32 = *fixup_32 + (grub_uint32_t)adjust; -+ if (fixup_data != NULL) -+ { -+ fixup_data = (char *)ALIGN_UP ((grub_addr_t)fixup_data, sizeof (grub_uint32_t)); -+ *(grub_uint32_t *) fixup_data = *fixup_32; -+ fixup_data += sizeof (grub_uint32_t); -+ } -+ break; -+ case GRUB_PE32_REL_BASED_DIR64: -+ fixup_64 = (grub_uint64_t *)fixup; -+ *fixup_64 = *fixup_64 + (grub_uint64_t)adjust; -+ if (fixup_data != NULL) -+ { -+ fixup_data = (char *)ALIGN_UP ((grub_addr_t)fixup_data, sizeof (grub_uint64_t)); -+ *(grub_uint64_t *) fixup_data = *fixup_64; -+ fixup_data += sizeof (grub_uint64_t); -+ } -+ break; -+ default: -+ grub_error (GRUB_ERR_BAD_ARGUMENT, -+ "Reloc %d unknown relocation type %d", -+ n, (*entry) >> 12); -+ return GRUB_EFI_UNSUPPORTED; -+ } -+ entry += 1; -+ } -+ reloc_base = (struct grub_pe32_data_directory *)reloc_end; -+ n++; -+ } -+ -+ return GRUB_EFI_SUCCESS; -+} -+ -+static grub_efi_device_path_t * -+grub_efi_get_media_file_path (grub_efi_device_path_t *dp) -+{ -+ while (1) -+ { -+ grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp); -+ grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp); -+ -+ if (type == GRUB_EFI_END_DEVICE_PATH_TYPE) -+ break; -+ else if (type == GRUB_EFI_MEDIA_DEVICE_PATH_TYPE -+ && subtype == GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE) -+ return dp; -+ -+ dp = GRUB_EFI_NEXT_DEVICE_PATH (dp); -+ } -+ -+ return NULL; -+} -+ -+static grub_efi_boolean_t -+handle_image (void *data, grub_efi_uint32_t datasize) -+{ -+ grub_efi_boot_services_t *b; -+ grub_efi_loaded_image_t *li, li_bak; -+ grub_efi_status_t efi_status; -+ char *buffer = NULL; -+ char *buffer_aligned = NULL; -+ grub_efi_uint32_t i, size; -+ struct grub_pe32_section_table *section; -+ char *base, *end; -+ pe_coff_loader_image_context_t context; -+ grub_uint32_t section_alignment; -+ grub_uint32_t buffer_size; -+ -+ b = grub_efi_system_table->boot_services; -+ -+ if (read_header (data, datasize, &context)) -+ { -+ grub_dprintf ("chain", "Succeed to read header\n"); -+ } -+ else -+ { -+ grub_dprintf ("chain", "Failed to read header\n"); -+ goto error_exit; -+ } -+ -+ section_alignment = context.section_alignment; -+ buffer_size = context.image_size + section_alignment; -+ -+ efi_status = efi_call_3 (b->allocate_pool, GRUB_EFI_LOADER_DATA, -+ buffer_size, (void**) &buffer); -+ -+ if (efi_status != GRUB_EFI_SUCCESS) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); -+ goto error_exit; -+ } -+ -+ buffer_aligned = (char *)ALIGN_UP ((grub_addr_t)buffer, section_alignment); -+ -+ if (!buffer_aligned) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); -+ goto error_exit; -+ } -+ -+ grub_memcpy (buffer_aligned, data, context.size_of_headers); -+ -+ char *reloc_base, *reloc_base_end; -+ reloc_base = image_address (buffer_aligned, datasize, -+ context.reloc_dir->rva); -+ /* RelocBaseEnd here is the address of the last byte of the table */ -+ reloc_base_end = image_address (buffer_aligned, datasize, -+ context.reloc_dir->rva -+ + context.reloc_dir->size - 1); -+ struct grub_pe32_section_table *reloc_section = NULL; -+ -+ section = context.first_section; -+ for (i = 0; i < context.number_of_sections; i++, section++) -+ { -+ size = section->virtual_size; -+ if (size > section->raw_data_size) -+ size = section->raw_data_size; -+ -+ base = image_address (buffer_aligned, context.image_size, -+ section->virtual_address); -+ end = image_address (buffer_aligned, context.image_size, -+ section->virtual_address + size - 1); -+ -+ -+ /* We do want to process .reloc, but it's often marked -+ * discardable, so we don't want to memcpy it. */ -+ if (grub_memcmp (section->name, ".reloc\0\0", 8) == 0) -+ { -+ if (reloc_section) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, -+ "Image has multiple relocation sections"); -+ goto error_exit; -+ } -+ -+ /* If it has nonzero sizes, and our bounds check -+ * made sense, and the VA and size match RelocDir's -+ * versions, then we believe in this section table. */ -+ if (section->raw_data_size && section->virtual_size && -+ base && end && reloc_base == base && reloc_base_end == end) -+ { -+ reloc_section = section; -+ } -+ } -+ -+ if (section->characteristics && GRUB_PE32_SCN_MEM_DISCARDABLE) -+ continue; -+ -+ if (!base || !end) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "Invalid section size"); -+ goto error_exit; -+ } -+ -+ if (section->virtual_address < context.size_of_headers || -+ section->raw_data_offset < context.size_of_headers) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, -+ "Section %d is inside image headers", i); -+ goto error_exit; -+ } -+ -+ if (section->raw_data_size > 0) -+ grub_memcpy (base, (grub_efi_uint8_t*)data + section->raw_data_offset, -+ size); -+ -+ if (size < section->virtual_size) -+ grub_memset (base + size, 0, section->virtual_size - size); -+ -+ grub_dprintf ("chain", "copied section %s\n", section->name); -+ } -+ -+ /* 5 == EFI_IMAGE_DIRECTORY_ENTRY_BASERELOC */ -+ if (context.number_of_rva_and_sizes <= 5) -+ { -+ grub_dprintf ("chain", "image has no relocation entry\n"); -+ goto error_exit; -+ } -+ -+ if (context.reloc_dir->size && reloc_section) -+ { -+ /* run the relocation fixups */ -+ efi_status = relocate_coff (&context, reloc_section, data, -+ buffer_aligned); -+ -+ if (efi_status != GRUB_EFI_SUCCESS) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "relocation failed"); -+ goto error_exit; -+ } -+ } -+ -+ entry_point = image_address (buffer_aligned, context.image_size, -+ context.entry_point); -+ -+ if (!entry_point) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "invalid entry point"); -+ goto error_exit; -+ } -+ -+ li = grub_efi_get_loaded_image (grub_efi_image_handle); -+ if (!li) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "no loaded image available"); -+ goto error_exit; -+ } -+ -+ grub_memcpy (&li_bak, li, sizeof (grub_efi_loaded_image_t)); -+ li->image_base = buffer_aligned; -+ li->image_size = context.image_size; -+ li->load_options = cmdline; -+ li->load_options_size = cmdline_len; -+ li->file_path = grub_efi_get_media_file_path (file_path); -+ li->device_handle = dev_handle; -+ if (li->file_path) -+ { -+ grub_printf ("file path: "); -+ grub_efi_print_device_path (li->file_path); -+ } -+ else -+ { -+ grub_error (GRUB_ERR_UNKNOWN_DEVICE, "no matching file path found"); -+ goto error_exit; -+ } -+ -+ efi_status = efi_call_2 (entry_point, grub_efi_image_handle, -+ grub_efi_system_table); -+ -+ grub_memcpy (li, &li_bak, sizeof (grub_efi_loaded_image_t)); -+ efi_status = efi_call_1 (b->free_pool, buffer); -+ -+ return 1; -+ -+error_exit: -+ if (buffer) -+ efi_call_1 (b->free_pool, buffer); -+ -+ return 0; -+} -+ -+static grub_err_t -+grub_secureboot_chainloader_unload (void) -+{ -+ grub_efi_boot_services_t *b; -+ -+ b = grub_efi_system_table->boot_services; -+ efi_call_2 (b->free_pages, address, pages); -+ grub_free (file_path); -+ grub_free (cmdline); -+ cmdline = 0; -+ file_path = 0; -+ dev_handle = 0; -+ -+ grub_dl_unref (my_mod); -+ return GRUB_ERR_NONE; -+} -+ -+static grub_err_t -+grub_secureboot_chainloader_boot (void) -+{ -+ handle_image ((void *)address, fsize); -+ grub_loader_unset (); -+ return grub_errno; -+} -+ - static grub_err_t - grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - int argc, char *argv[]) - { - grub_file_t file = 0; -- grub_ssize_t size; - grub_efi_status_t status; - grub_efi_boot_services_t *b; - grub_device_t dev = 0; -@@ -204,7 +723,6 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - grub_efi_loaded_image_t *loaded_image; - char *filename; - void *boot_image = 0; -- grub_efi_handle_t dev_handle = 0; - - if (argc == 0) - return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -@@ -216,9 +734,36 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - address = 0; - image_handle = 0; - file_path = 0; -+ dev_handle = 0; - - b = grub_efi_system_table->boot_services; - -+ if (argc > 1) -+ { -+ int i; -+ grub_efi_char16_t *p16; -+ -+ for (i = 1, cmdline_len = 0; i < argc; i++) -+ cmdline_len += grub_strlen (argv[i]) + 1; -+ -+ cmdline_len *= sizeof (grub_efi_char16_t); -+ cmdline = p16 = grub_malloc (cmdline_len); -+ if (! cmdline) -+ goto fail; -+ -+ for (i = 1; i < argc; i++) -+ { -+ char *p8; -+ -+ p8 = argv[i]; -+ while (*p8) -+ *(p16++) = *(p8++); -+ -+ *(p16++) = ' '; -+ } -+ *(--p16) = 0; -+ } -+ - file = grub_file_open (filename); - if (! file) - goto fail; -@@ -267,14 +812,14 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - grub_printf ("file path: "); - grub_efi_print_device_path (file_path); - -- size = grub_file_size (file); -- if (!size) -+ fsize = grub_file_size (file); -+ if (!fsize) - { - grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), - filename); - goto fail; - } -- pages = (((grub_efi_uintn_t) size + ((1 << 12) - 1)) >> 12); -+ pages = (((grub_efi_uintn_t) fsize + ((1 << 12) - 1)) >> 12); - - status = efi_call_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_ANY_PAGES, - GRUB_EFI_LOADER_CODE, -@@ -288,7 +833,7 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - } - - boot_image = (void *) ((grub_addr_t) address); -- if (grub_file_read (file, boot_image, size) != size) -+ if (grub_file_read (file, boot_image, fsize) != fsize) - { - if (grub_errno == GRUB_ERR_NONE) - grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -@@ -298,7 +843,7 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - } - - #if defined (__i386__) || defined (__x86_64__) -- if (size >= (grub_ssize_t) sizeof (struct grub_macho_fat_header)) -+ if (fsize >= (grub_ssize_t) sizeof (struct grub_macho_fat_header)) - { - struct grub_macho_fat_header *head = boot_image; - if (head->magic -@@ -307,6 +852,14 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - grub_uint32_t i; - struct grub_macho_fat_arch *archs - = (struct grub_macho_fat_arch *) (head + 1); -+ -+ if (grub_efi_secure_boot()) -+ { -+ grub_error (GRUB_ERR_BAD_OS, -+ "MACHO binaries are forbidden with Secure Boot"); -+ goto fail; -+ } -+ - for (i = 0; i < grub_cpu_to_le32 (head->nfat_arch); i++) - { - if (GRUB_MACHO_CPUTYPE_IS_HOST_CURRENT (archs[i].cputype)) -@@ -321,21 +874,28 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - > ~grub_cpu_to_le32 (archs[i].size) - || grub_cpu_to_le32 (archs[i].offset) - + grub_cpu_to_le32 (archs[i].size) -- > (grub_size_t) size) -+ > (grub_size_t) fsize) - { - grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), - filename); - goto fail; - } - boot_image = (char *) boot_image + grub_cpu_to_le32 (archs[i].offset); -- size = grub_cpu_to_le32 (archs[i].size); -+ fsize = grub_cpu_to_le32 (archs[i].size); - } - } - #endif - -+ if (grub_linuxefi_secure_validate((void *)address, fsize)) -+ { -+ grub_file_close (file); -+ grub_loader_set (grub_secureboot_chainloader_boot, -+ grub_secureboot_chainloader_unload, 0); -+ return 0; -+ } -+ - status = efi_call_6 (b->load_image, 0, grub_efi_image_handle, file_path, -- boot_image, size, -- &image_handle); -+ boot_image, fsize, &image_handle); - if (status != GRUB_EFI_SUCCESS) - { - if (status == GRUB_EFI_OUT_OF_RESOURCES) -@@ -357,33 +917,10 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - } - loaded_image->device_handle = dev_handle; - -- if (argc > 1) -+ if (cmdline) - { -- int i, len; -- grub_efi_char16_t *p16; -- -- for (i = 1, len = 0; i < argc; i++) -- len += grub_strlen (argv[i]) + 1; -- -- len *= sizeof (grub_efi_char16_t); -- cmdline = p16 = grub_malloc (len); -- if (! cmdline) -- goto fail; -- -- for (i = 1; i < argc; i++) -- { -- char *p8; -- -- p8 = argv[i]; -- while (*p8) -- *(p16++) = *(p8++); -- -- *(p16++) = ' '; -- } -- *(--p16) = 0; -- - loaded_image->load_options = cmdline; -- loaded_image->load_options_size = len; -+ loaded_image->load_options_size = cmdline_len; - } - - grub_file_close (file); -@@ -405,6 +942,9 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - if (address) - efi_call_2 (b->free_pages, address, pages); - -+ if (cmdline) -+ grub_free (cmdline); -+ - grub_dl_unref (my_mod); - - return grub_errno; -diff --git a/include/grub/efi/pe32.h b/include/grub/efi/pe32.h -index f79c36c02..f79782e1b 100644 ---- a/include/grub/efi/pe32.h -+++ b/include/grub/efi/pe32.h -@@ -212,7 +212,11 @@ struct grub_pe64_optional_header - struct grub_pe32_section_table - { - char name[8]; -- grub_uint32_t virtual_size; -+ union -+ { -+ grub_uint32_t physical_address; -+ grub_uint32_t virtual_size; -+ }; - grub_uint32_t virtual_address; - grub_uint32_t raw_data_size; - grub_uint32_t raw_data_offset; -@@ -263,6 +267,20 @@ struct grub_pe32_header - #endif - }; - -+struct grub_pe32_header_32 -+{ -+ char signature[GRUB_PE32_SIGNATURE_SIZE]; -+ struct grub_pe32_coff_header coff_header; -+ struct grub_pe32_optional_header optional_header; -+}; -+ -+struct grub_pe32_header_64 -+{ -+ char signature[GRUB_PE32_SIGNATURE_SIZE]; -+ struct grub_pe32_coff_header coff_header; -+ struct grub_pe64_optional_header optional_header; -+}; -+ - struct grub_pe32_fixup_block - { - grub_uint32_t page_rva; diff --git a/patches/grub/2.02/linuxefi_cleanup_errors_in_loader.patch b/patches/grub/2.02/linuxefi_cleanup_errors_in_loader.patch deleted file mode 100644 index 294f8276e..000000000 --- a/patches/grub/2.02/linuxefi_cleanup_errors_in_loader.patch +++ /dev/null @@ -1,103 +0,0 @@ -From 6c8809100c8e55c3278d2b95c00213a18e433e4c Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Wed, 24 May 2017 15:58:18 -0400 -Subject: Clean up some errors in the linuxefi loader - -Signed-off-by: Peter Jones - -Origin: vendor, https://github.com/rhboot/grub2/commit/df0d3873162dd7e9352e1d4fbd589aa60e722f2e -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_cleanup_errors_in_loader.patch ---- - grub-core/loader/i386/efi/linux.c | 16 ++++++++-------- - grub-core/loader/i386/linux.c | 5 ++++- - 2 files changed, 12 insertions(+), 9 deletions(-) - -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index d466cafd9..9a3f7477b 100644 ---- a/grub-core/loader/i386/efi/linux.c -+++ b/grub-core/loader/i386/efi/linux.c -@@ -162,8 +162,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - int argc, char *argv[]) - { - grub_file_t file = 0; -- struct linux_kernel_header *lh; -- grub_ssize_t len, start, filelen; -+ struct linux_kernel_header *lh = NULL; -+ grub_ssize_t start, filelen; - void *kernel = NULL; - int setup_header_end_offset; - int rc; -@@ -213,18 +213,19 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -- grub_dprintf ("linuxefi", "params = %p\n", (unsigned long) params); -+ grub_dprintf ("linuxefi", "params = %p\n", params); - - grub_memset (params, 0, sizeof(*params)); - - setup_header_end_offset = *((grub_uint8_t *)kernel + 0x201); -- grub_dprintf ("linuxefi", "copying %d bytes from %p to %p\n", -- MIN(0x202+setup_header_end_offset,sizeof (*params)) - 0x1f1, -+ grub_dprintf ("linuxefi", "copying %zu bytes from %p to %p\n", -+ MIN((grub_size_t)0x202+setup_header_end_offset, -+ sizeof (*params)) - 0x1f1, - (grub_uint8_t *)kernel + 0x1f1, - (grub_uint8_t *)params + 0x1f1); - grub_memcpy ((grub_uint8_t *)params + 0x1f1, - (grub_uint8_t *)kernel + 0x1f1, -- MIN(0x202+setup_header_end_offset,sizeof (*params)) - 0x1f1); -+ MIN((grub_size_t)0x202+setup_header_end_offset,sizeof (*params)) - 0x1f1); - lh = (struct linux_kernel_header *)params; - grub_dprintf ("linuxefi", "lh is at %p\n", lh); - grub_dprintf ("linuxefi", "checking lh->boot_flag\n"); -@@ -298,7 +299,6 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - handover_offset = lh->handover_offset; - - start = (lh->setup_sects + 1) * 512; -- len = grub_file_size(file) - start; - - kernel_mem = grub_efi_allocate_pages(lh->pref_address, - BYTES_TO_PAGES(lh->init_size)); -@@ -344,7 +344,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - loaded = 0; - } - -- if (linux_cmdline && !loaded) -+ if (linux_cmdline && lh && !loaded) - grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t) - linux_cmdline, - BYTES_TO_PAGES(lh->cmdline_size + 1)); -diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index e4b8342f5..c9e89310b 100644 ---- a/grub-core/loader/i386/linux.c -+++ b/grub-core/loader/i386/linux.c -@@ -680,6 +680,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - { - grub_file_t file = 0; - struct linux_kernel_header lh; -+ grub_uint8_t *linux_params_ptr; - grub_uint8_t setup_sects; - grub_size_t real_size, prot_size, prot_file_size, kernel_offset; - grub_ssize_t len; -@@ -811,6 +812,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - preferred_address)) - goto fail; - -+ - grub_memset (&linux_params, 0, sizeof (linux_params)); - grub_memcpy (&linux_params.setup_sects, &lh.setup_sects, sizeof (lh) - 0x1F1); - -@@ -820,7 +822,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - - len = sizeof (linux_params) - sizeof (lh); - -- grub_memcpy (&linux_params + sizeof (lh), kernel + kernel_offset, len); -+ linux_params_ptr = (void *)&linux_params; -+ grub_memcpy (linux_params_ptr + sizeof (lh), kernel + kernel_offset, len); - kernel_offset += len; - - linux_params.type_of_loader = GRUB_LINUX_BOOT_LOADER_TYPE; diff --git a/patches/grub/2.02/linuxefi_debug.patch b/patches/grub/2.02/linuxefi_debug.patch deleted file mode 100644 index 434919fb4..000000000 --- a/patches/grub/2.02/linuxefi_debug.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 35cc4a78cc5fa386336061bc7edbd3f054dc3508 Mon Sep 17 00:00:00 2001 -From: Mathieu Trudel-Lapierre -Date: Wed, 1 Nov 2017 13:39:59 -0400 -Subject: Add some grub_dprintf() in the linuxefi path. - -Signed-off-by: Peter Jones - -Origin: vendor, https://github.com/rhboot/grub2/commit/527a427a8edf05d8994f679a16d0dc98106563f4 -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_debug.patch ---- - grub-core/loader/efi/linux.c | 16 +++++++++++++--- - grub-core/loader/i386/efi/linux.c | 11 ++++++++++- - 2 files changed, 23 insertions(+), 4 deletions(-) - -diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c -index 8890bdf05..dbf63e20e 100644 ---- a/grub-core/loader/efi/linux.c -+++ b/grub-core/loader/efi/linux.c -@@ -43,12 +43,22 @@ grub_linuxefi_secure_validate (void *data, grub_uint32_t size) - shim_lock = grub_efi_locate_protocol(&guid, NULL); - grub_dprintf ("secureboot", "shim_lock: %p\n", shim_lock); - if (!shim_lock) -- return 0; -+ { -+ grub_dprintf ("secureboot", "shim not available\n"); -+ return 0; -+ } - -- status = shim_lock->verify(data, size); -+ grub_dprintf ("secureboot", "Asking shim to verify kernel signature\n"); -+ status = shim_lock->verify (data, size); - grub_dprintf ("secureboot", "shim_lock->verify(): %ld\n", status); - if (status == GRUB_EFI_SUCCESS) -- return 1; -+ { -+ grub_dprintf ("secureboot", "Kernel signature verification passed\n"); -+ return 1; -+ } -+ -+ grub_dprintf ("secureboot", "Kernel signature verification failed (0x%lx)\n", -+ (unsigned long) status); - - return -1; - } -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 010bf982d..7df379ab7 100644 ---- a/grub-core/loader/i386/efi/linux.c -+++ b/grub-core/loader/i386/efi/linux.c -@@ -19,6 +19,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -114,6 +115,8 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -+ grub_dprintf ("linuxefi", "initrd_mem = %lx\n", (unsigned long) initrd_mem); -+ - params->ramdisk_size = size; - params->ramdisk_image = (grub_uint32_t)(grub_uint64_t) initrd_mem; - -@@ -202,6 +205,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -+ grub_dprintf ("linuxefi", "params = %lx\n", (unsigned long) params); -+ - grub_memset (params, 0, 16384); - - grub_memcpy (&lh, kernel, sizeof (lh)); -@@ -239,6 +244,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -+ grub_dprintf ("linuxefi", "linux_cmdline = %lx\n", -+ (unsigned long)linux_cmdline); -+ - grub_memcpy (linux_cmdline, LINUX_IMAGE, sizeof (LINUX_IMAGE)); - grub_create_loader_cmdline (argc, argv, - linux_cmdline + sizeof (LINUX_IMAGE) - 1, -@@ -272,9 +280,10 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - grub_memcpy (params, &lh, 2 * 512); - - params->type_of_loader = 0x21; -+ grub_dprintf("linuxefi", "kernel_mem: %p handover_offset: %08x\n", -+ kernel_mem, handover_offset); - - fail: -- - if (file) - grub_file_close (file); - diff --git a/patches/grub/2.02/linuxefi_fix_efi_validation_race.patch b/patches/grub/2.02/linuxefi_fix_efi_validation_race.patch deleted file mode 100644 index 028f18e62..000000000 --- a/patches/grub/2.02/linuxefi_fix_efi_validation_race.patch +++ /dev/null @@ -1,99 +0,0 @@ -From 362fc9a67cb29de09ce2ec12890d3b4d37281665 Mon Sep 17 00:00:00 2001 -From: Matthew Garrett -Date: Tue, 14 Jul 2015 16:58:51 -0700 -Subject: Fix race in EFI validation - -Origin: vendor, https://github.com/rhboot/grub2/commit/57414c73c4e80baedcb96ff35be9306fb0599a09 -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_fix_efi_validation_race.patch ---- - grub-core/loader/i386/efi/linux.c | 44 ++++++++++----------------------------- - 1 file changed, 11 insertions(+), 33 deletions(-) - -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index ddd50dbf1..9a3cc1819 100644 ---- a/grub-core/loader/i386/efi/linux.c -+++ b/grub-core/loader/i386/efi/linux.c -@@ -154,7 +154,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - grub_file_t file = 0; - struct linux_kernel_header lh; - grub_ssize_t len, start, filelen; -- void *kernel; -+ void *kernel = NULL; - - grub_dl_ref (my_mod); - -@@ -191,10 +191,6 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -- grub_file_seek (file, 0); -- -- grub_free(kernel); -- - params = grub_efi_allocate_pages_max (0x3fffffff, BYTES_TO_PAGES(16384)); - - if (! params) -@@ -203,15 +199,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -- memset (params, 0, 16384); -+ grub_memset (params, 0, 16384); - -- if (grub_file_read (file, &lh, sizeof (lh)) != sizeof (lh)) -- { -- if (!grub_errno) -- grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -- argv[0]); -- goto fail; -- } -+ grub_memcpy (&lh, kernel, sizeof (lh)); - - if (lh.boot_flag != grub_cpu_to_le16 (0xaa55)) - { -@@ -271,27 +261,12 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -- if (grub_file_seek (file, start) == (grub_off_t) -1) -- { -- grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -- argv[0]); -- goto fail; -- } -+ grub_memcpy (kernel_mem, (char *)kernel + start, len); -+ grub_loader_set (grub_linuxefi_boot, grub_linuxefi_unload, 0); -+ loaded=1; - -- if (grub_file_read (file, kernel_mem, len) != len && !grub_errno) -- { -- grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -- argv[0]); -- } -- -- if (grub_errno == GRUB_ERR_NONE) -- { -- grub_loader_set (grub_linuxefi_boot, grub_linuxefi_unload, 0); -- loaded = 1; -- lh.code32_start = (grub_uint32_t)(grub_uint64_t) kernel_mem; -- } -- -- memcpy(params, &lh, 2 * 512); -+ lh.code32_start = (grub_uint32_t)(grub_uint64_t) kernel_mem; -+ grub_memcpy (params, &lh, 2 * 512); - - params->type_of_loader = 0x21; - -@@ -300,6 +275,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - if (file) - grub_file_close (file); - -+ if (kernel) -+ grub_free (kernel); -+ - if (grub_errno != GRUB_ERR_NONE) - { - grub_dl_unref (my_mod); diff --git a/patches/grub/2.02/linuxefi_handle_multiarch_boot.patch b/patches/grub/2.02/linuxefi_handle_multiarch_boot.patch deleted file mode 100644 index 3f07c16e0..000000000 --- a/patches/grub/2.02/linuxefi_handle_multiarch_boot.patch +++ /dev/null @@ -1,264 +0,0 @@ -From a2905156da395c04a2a9a62ceb9177d47b5ed597 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 14 Feb 2017 16:18:54 -0500 -Subject: Handle multi-arch (64-on-32) boot in linuxefi loader. - -Allow booting 64-bit kernels on 32-bit EFI on x86. - -Signed-off-by: Peter Jones - -Origin: vendor, https://github.com/rhboot/grub2/commit/1c88c700148acf02863a350055a43eb87e16bbe5 -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_handle_multiarch_boot.patch ---- - grub-core/loader/efi/linux.c | 9 +++- - grub-core/loader/i386/efi/linux.c | 108 ++++++++++++++++++++++++++------------ - include/grub/i386/linux.h | 7 ++- - 3 files changed, 88 insertions(+), 36 deletions(-) - -diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c -index dbf63e20e..7fe7201a3 100644 ---- a/grub-core/loader/efi/linux.c -+++ b/grub-core/loader/efi/linux.c -@@ -66,12 +66,17 @@ grub_linuxefi_secure_validate (void *data, grub_uint32_t size) - typedef void (*handover_func) (void *, grub_efi_system_table_t *, void *); - - grub_err_t --grub_efi_linux_boot (void *kernel_addr, grub_off_t offset, -+grub_efi_linux_boot (void *kernel_addr, grub_off_t handover_offset, - void *kernel_params) - { - handover_func hf; -+ int offset = 0; - -- hf = (handover_func)((char *)kernel_addr + offset); -+#ifdef __x86_64__ -+ offset = 512; -+#endif -+ -+ hf = (handover_func)((char *)kernel_addr + handover_offset + offset); - hf (grub_efi_image_handle, grub_efi_system_table, kernel_params); - - return GRUB_ERR_BUG; -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 6efa30ff8..d466cafd9 100644 ---- a/grub-core/loader/i386/efi/linux.c -+++ b/grub-core/loader/i386/efi/linux.c -@@ -45,14 +45,10 @@ static char *linux_cmdline; - static grub_err_t - grub_linuxefi_boot (void) - { -- int offset = 0; -- --#ifdef __x86_64__ -- offset = 512; --#endif - asm volatile ("cli"); - -- return grub_efi_linux_boot ((char *)kernel_mem, handover_offset + offset, -+ return grub_efi_linux_boot ((char *)kernel_mem, -+ handover_offset, - params); - } - -@@ -156,14 +152,20 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), - return grub_errno; - } - -+#define MIN(a, b) \ -+ ({ typeof (a) _a = (a); \ -+ typeof (b) _b = (b); \ -+ _a < _b ? _a : _b; }) -+ - static grub_err_t - grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - int argc, char *argv[]) - { - grub_file_t file = 0; -- struct linux_kernel_header lh; -+ struct linux_kernel_header *lh; - grub_ssize_t len, start, filelen; - void *kernel = NULL; -+ int setup_header_end_offset; - int rc; - - grub_dl_ref (my_mod); -@@ -203,47 +205,78 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -- params = grub_efi_allocate_pages_max (0x3fffffff, BYTES_TO_PAGES(16384)); -- -+ params = grub_efi_allocate_pages_max (0x3fffffff, -+ BYTES_TO_PAGES(sizeof(*params))); - if (! params) - { - grub_error (GRUB_ERR_OUT_OF_MEMORY, "cannot allocate kernel parameters"); - goto fail; - } - -- grub_dprintf ("linuxefi", "params = %lx\n", (unsigned long) params); -- -- grub_memset (params, 0, 16384); -- -- grub_memcpy (&lh, kernel, sizeof (lh)); -- -- if (lh.boot_flag != grub_cpu_to_le16 (0xaa55)) -+ grub_dprintf ("linuxefi", "params = %p\n", (unsigned long) params); -+ -+ grub_memset (params, 0, sizeof(*params)); -+ -+ setup_header_end_offset = *((grub_uint8_t *)kernel + 0x201); -+ grub_dprintf ("linuxefi", "copying %d bytes from %p to %p\n", -+ MIN(0x202+setup_header_end_offset,sizeof (*params)) - 0x1f1, -+ (grub_uint8_t *)kernel + 0x1f1, -+ (grub_uint8_t *)params + 0x1f1); -+ grub_memcpy ((grub_uint8_t *)params + 0x1f1, -+ (grub_uint8_t *)kernel + 0x1f1, -+ MIN(0x202+setup_header_end_offset,sizeof (*params)) - 0x1f1); -+ lh = (struct linux_kernel_header *)params; -+ grub_dprintf ("linuxefi", "lh is at %p\n", lh); -+ grub_dprintf ("linuxefi", "checking lh->boot_flag\n"); -+ if (lh->boot_flag != grub_cpu_to_le16 (0xaa55)) - { - grub_error (GRUB_ERR_BAD_OS, N_("invalid magic number")); - goto fail; - } - -- if (lh.setup_sects > GRUB_LINUX_MAX_SETUP_SECTS) -+ grub_dprintf ("linuxefi", "checking lh->setup_sects\n"); -+ if (lh->setup_sects > GRUB_LINUX_MAX_SETUP_SECTS) - { - grub_error (GRUB_ERR_BAD_OS, N_("too many setup sectors")); - goto fail; - } - -- if (lh.version < grub_cpu_to_le16 (0x020b)) -+ grub_dprintf ("linuxefi", "checking lh->version\n"); -+ if (lh->version < grub_cpu_to_le16 (0x020b)) - { - grub_error (GRUB_ERR_BAD_OS, N_("kernel too old")); - goto fail; - } - -- if (!lh.handover_offset) -+ grub_dprintf ("linuxefi", "checking lh->handover_offset\n"); -+ if (!lh->handover_offset) - { - grub_error (GRUB_ERR_BAD_OS, N_("kernel doesn't support EFI handover")); - goto fail; - } - -- linux_cmdline = grub_efi_allocate_pages_max(0x3fffffff, -- BYTES_TO_PAGES(lh.cmdline_size + 1)); -+#if defined(__x86_64__) || defined(__aarch64__) -+ grub_dprintf ("linuxefi", "checking lh->xloadflags\n"); -+ if (!(lh->xloadflags & LINUX_XLF_KERNEL_64)) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("kernel doesn't support 64-bit CPUs")); -+ goto fail; -+ } -+#endif -+ -+#if defined(__i386__) -+ if ((lh->xloadflags & LINUX_XLF_KERNEL_64) && -+ !(lh->xloadflags & LINUX_XLF_EFI_HANDOVER_32)) -+ { -+ grub_error (GRUB_ERR_BAD_OS, -+ N_("kernel doesn't support 32-bit handover")); -+ goto fail; -+ } -+#endif - -+ grub_dprintf ("linuxefi", "setting up cmdline\n"); -+ linux_cmdline = grub_efi_allocate_pages_max(0x3fffffff, -+ BYTES_TO_PAGES(lh->cmdline_size + 1)); - if (!linux_cmdline) - { - grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("can't allocate cmdline")); -@@ -256,21 +289,23 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - grub_memcpy (linux_cmdline, LINUX_IMAGE, sizeof (LINUX_IMAGE)); - grub_create_loader_cmdline (argc, argv, - linux_cmdline + sizeof (LINUX_IMAGE) - 1, -- lh.cmdline_size - (sizeof (LINUX_IMAGE) - 1)); -+ lh->cmdline_size - (sizeof (LINUX_IMAGE) - 1)); - -- lh.cmd_line_ptr = (grub_uint32_t)(grub_addr_t)linux_cmdline; -+ grub_dprintf ("linuxefi", "setting lh->cmd_line_ptr\n"); -+ lh->cmd_line_ptr = (grub_uint32_t)(grub_addr_t)linux_cmdline; - -- handover_offset = lh.handover_offset; -+ grub_dprintf ("linuxefi", "computing handover offset\n"); -+ handover_offset = lh->handover_offset; - -- start = (lh.setup_sects + 1) * 512; -+ start = (lh->setup_sects + 1) * 512; - len = grub_file_size(file) - start; - -- kernel_mem = grub_efi_allocate_pages(lh.pref_address, -- BYTES_TO_PAGES(lh.init_size)); -+ kernel_mem = grub_efi_allocate_pages(lh->pref_address, -+ BYTES_TO_PAGES(lh->init_size)); - - if (!kernel_mem) - kernel_mem = grub_efi_allocate_pages_max(0x3fffffff, -- BYTES_TO_PAGES(lh.init_size)); -+ BYTES_TO_PAGES(lh->init_size)); - - if (!kernel_mem) - { -@@ -278,14 +313,21 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -- grub_memcpy (kernel_mem, (char *)kernel + start, len); -+ grub_dprintf ("linuxefi", "kernel_mem = %lx\n", (unsigned long) kernel_mem); -+ - grub_loader_set (grub_linuxefi_boot, grub_linuxefi_unload, 0); - loaded=1; -+ grub_dprintf ("linuxefi", "setting lh->code32_start to %p\n", kernel_mem); -+ lh->code32_start = (grub_uint32_t)(grub_addr_t) kernel_mem; -+ -+ grub_memcpy (kernel_mem, (char *)kernel + start, filelen - start); - -- lh.code32_start = (grub_uint32_t)(grub_uint64_t) kernel_mem; -- grub_memcpy (params, &lh, 2 * 512); -+ grub_dprintf ("linuxefi", "setting lh->type_of_loader\n"); -+ lh->type_of_loader = 0x6; - -- params->type_of_loader = 0x21; -+ grub_dprintf ("linuxefi", "setting lh->ext_loader_{type,ver}\n"); -+ params->ext_loader_type = 0; -+ params->ext_loader_ver = 2; - grub_dprintf("linuxefi", "kernel_mem: %p handover_offset: %08x\n", - kernel_mem, handover_offset); - -@@ -305,7 +347,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - if (linux_cmdline && !loaded) - grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t) - linux_cmdline, -- BYTES_TO_PAGES(lh.cmdline_size + 1)); -+ BYTES_TO_PAGES(lh->cmdline_size + 1)); - - if (kernel_mem && !loaded) - grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)kernel_mem, -diff --git a/include/grub/i386/linux.h b/include/grub/i386/linux.h -index fc36bdaf3..110ecf806 100644 ---- a/include/grub/i386/linux.h -+++ b/include/grub/i386/linux.h -@@ -130,7 +130,12 @@ struct linux_kernel_header - grub_uint32_t kernel_alignment; - grub_uint8_t relocatable; - grub_uint8_t min_alignment; -- grub_uint8_t pad[2]; -+#define LINUX_XLF_KERNEL_64 (1<<0) -+#define LINUX_XLF_CAN_BE_LOADED_ABOVE_4G (1<<1) -+#define LINUX_XLF_EFI_HANDOVER_32 (1<<2) -+#define LINUX_XLF_EFI_HANDOVER_64 (1<<3) -+#define LINUX_XLF_EFI_KEXEC (1<<4) -+ grub_uint16_t xloadflags; - grub_uint32_t cmdline_size; - grub_uint32_t hardware_subarch; - grub_uint64_t hardware_subarch_data; diff --git a/patches/grub/2.02/linuxefi_honor_sb_mode.patch b/patches/grub/2.02/linuxefi_honor_sb_mode.patch deleted file mode 100644 index 128e4dffc..000000000 --- a/patches/grub/2.02/linuxefi_honor_sb_mode.patch +++ /dev/null @@ -1,534 +0,0 @@ -From b6890a1c275c817b98e94e0b05f1699b806f18f7 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 6 Oct 2015 16:09:25 -0400 -Subject: Make any of the loaders that link in efi mode honor secure boot. - -And in this case "honor" means "even if somebody does link this in, they -won't register commands if SB is enabled." - -Signed-off-by: Peter Jones - -Origin: vendor, https://github.com/rhboot/grub2/commit/3056bfc5044e976fa97f76b81b6a680731005095 -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_honor_sb_mode.patch ---- - grub-core/Makefile.am | 1 + - grub-core/Makefile.core.def | 1 + - grub-core/commands/iorw.c | 7 +++++ - grub-core/commands/memrw.c | 7 +++++ - grub-core/kern/dl.c | 1 + - grub-core/kern/efi/efi.c | 28 ------------------ - grub-core/kern/efi/sb.c | 58 ++++++++++++++++++++++++++++++++++++++ - grub-core/loader/efi/appleloader.c | 7 +++++ - grub-core/loader/efi/chainloader.c | 1 + - grub-core/loader/i386/bsd.c | 7 +++++ - grub-core/loader/i386/linux.c | 7 +++++ - grub-core/loader/i386/pc/linux.c | 7 +++++ - grub-core/loader/multiboot.c | 7 +++++ - grub-core/loader/xnu.c | 7 +++++ - include/grub/efi/efi.h | 1 - - include/grub/efi/sb.h | 29 +++++++++++++++++++ - include/grub/ia64/linux.h | 0 - include/grub/mips/linux.h | 0 - include/grub/powerpc/linux.h | 22 +++++++++++++++ - include/grub/sparc64/linux.h | 0 - 20 files changed, 169 insertions(+), 29 deletions(-) - create mode 100644 grub-core/kern/efi/sb.c - create mode 100644 include/grub/efi/sb.h - create mode 100644 include/grub/ia64/linux.h - create mode 100644 include/grub/mips/linux.h - create mode 100644 include/grub/powerpc/linux.h - create mode 100644 include/grub/sparc64/linux.h - -diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index 04e9395fd..fd715a8ea 100644 ---- a/grub-core/Makefile.am -+++ b/grub-core/Makefile.am -@@ -71,6 +71,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/command.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/device.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/disk.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/dl.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/sb.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env_private.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/err.h -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 9b7b661ff..50c555e43 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -177,6 +177,7 @@ kernel = { - i386_multiboot = kern/i386/pc/acpi.c; - i386_coreboot = kern/acpi.c; - i386_multiboot = kern/acpi.c; -+ common = kern/efi/sb.c; - - x86 = kern/i386/tsc.c; - x86 = kern/i386/tsc_pit.c; -diff --git a/grub-core/commands/iorw.c b/grub-core/commands/iorw.c -index a0c164e54..41a7f3f04 100644 ---- a/grub-core/commands/iorw.c -+++ b/grub-core/commands/iorw.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -118,6 +119,9 @@ grub_cmd_write (grub_command_t cmd, int argc, char **argv) - - GRUB_MOD_INIT(memrw) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - cmd_read_byte = - grub_register_extcmd ("inb", grub_cmd_read, 0, - N_("PORT"), N_("Read 8-bit value from PORT."), -@@ -146,6 +150,9 @@ GRUB_MOD_INIT(memrw) - - GRUB_MOD_FINI(memrw) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - grub_unregister_extcmd (cmd_read_byte); - grub_unregister_extcmd (cmd_read_word); - grub_unregister_extcmd (cmd_read_dword); -diff --git a/grub-core/commands/memrw.c b/grub-core/commands/memrw.c -index 98769eadb..088cbe9e2 100644 ---- a/grub-core/commands/memrw.c -+++ b/grub-core/commands/memrw.c -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -120,6 +121,9 @@ grub_cmd_write (grub_command_t cmd, int argc, char **argv) - - GRUB_MOD_INIT(memrw) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - cmd_read_byte = - grub_register_extcmd ("read_byte", grub_cmd_read, 0, - N_("ADDR"), N_("Read 8-bit value from ADDR."), -@@ -148,6 +152,9 @@ GRUB_MOD_INIT(memrw) - - GRUB_MOD_FINI(memrw) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - grub_unregister_extcmd (cmd_read_byte); - grub_unregister_extcmd (cmd_read_word); - grub_unregister_extcmd (cmd_read_dword); -diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c -index 04e804d16..621070918 100644 ---- a/grub-core/kern/dl.c -+++ b/grub-core/kern/dl.c -@@ -32,6 +32,7 @@ - #include - #include - #include -+#include - - /* Platforms where modules are in a readonly area of memory. */ - #if defined(GRUB_MACHINE_QEMU) -diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index bce251df9..d467785fc 100644 ---- a/grub-core/kern/efi/efi.c -+++ b/grub-core/kern/efi/efi.c -@@ -264,34 +264,6 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, - return NULL; - } - --grub_efi_boolean_t --grub_efi_secure_boot (void) --{ -- grub_efi_guid_t efi_var_guid = GRUB_EFI_GLOBAL_VARIABLE_GUID; -- grub_size_t datasize; -- char *secure_boot = NULL; -- char *setup_mode = NULL; -- grub_efi_boolean_t ret = 0; -- -- secure_boot = grub_efi_get_variable("SecureBoot", &efi_var_guid, &datasize); -- -- if (datasize != 1 || !secure_boot) -- goto out; -- -- setup_mode = grub_efi_get_variable("SetupMode", &efi_var_guid, &datasize); -- -- if (datasize != 1 || !setup_mode) -- goto out; -- -- if (*secure_boot && !*setup_mode) -- ret = 1; -- -- out: -- grub_free (secure_boot); -- grub_free (setup_mode); -- return ret; --} -- - #pragma GCC diagnostic ignored "-Wcast-align" - - /* Search the mods section from the PE32/PE32+ image. This code uses -diff --git a/grub-core/kern/efi/sb.c b/grub-core/kern/efi/sb.c -new file mode 100644 -index 000000000..a41b6c5b8 ---- /dev/null -+++ b/grub-core/kern/efi/sb.c -@@ -0,0 +1,58 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2014 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+int -+grub_efi_secure_boot (void) -+{ -+#ifdef GRUB_MACHINE_EFI -+ grub_efi_guid_t efi_var_guid = GRUB_EFI_GLOBAL_VARIABLE_GUID; -+ grub_size_t datasize; -+ char *secure_boot = NULL; -+ char *setup_mode = NULL; -+ grub_efi_boolean_t ret = 0; -+ -+ secure_boot = grub_efi_get_variable("SecureBoot", &efi_var_guid, &datasize); -+ -+ if (datasize != 1 || !secure_boot) -+ goto out; -+ -+ setup_mode = grub_efi_get_variable("SetupMode", &efi_var_guid, &datasize); -+ -+ if (datasize != 1 || !setup_mode) -+ goto out; -+ -+ if (*secure_boot && !*setup_mode) -+ ret = 1; -+ -+ out: -+ grub_free (secure_boot); -+ grub_free (setup_mode); -+ return ret; -+#else -+ return 0; -+#endif -+} -diff --git a/grub-core/loader/efi/appleloader.c b/grub-core/loader/efi/appleloader.c -index 74888c463..69c2a10d3 100644 ---- a/grub-core/loader/efi/appleloader.c -+++ b/grub-core/loader/efi/appleloader.c -@@ -24,6 +24,7 @@ - #include - #include - #include -+#include - #include - #include - -@@ -227,6 +228,9 @@ static grub_command_t cmd; - - GRUB_MOD_INIT(appleloader) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - cmd = grub_register_command ("appleloader", grub_cmd_appleloader, - N_("[OPTS]"), - /* TRANSLATORS: This command is used on EFI to -@@ -238,5 +242,8 @@ GRUB_MOD_INIT(appleloader) - - GRUB_MOD_FINI(appleloader) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - grub_unregister_command (cmd); - } -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index 456043407..83e191460 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -34,6 +34,7 @@ - #include - #include - #include -+#include - #include - #include - #include -diff --git a/grub-core/loader/i386/bsd.c b/grub-core/loader/i386/bsd.c -index 7f96515da..87709aa23 100644 ---- a/grub-core/loader/i386/bsd.c -+++ b/grub-core/loader/i386/bsd.c -@@ -38,6 +38,7 @@ - #ifdef GRUB_MACHINE_PCBIOS - #include - #endif -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -2124,6 +2125,9 @@ static grub_command_t cmd_netbsd_module_elf, cmd_openbsd_ramdisk; - - GRUB_MOD_INIT (bsd) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - /* Net and OpenBSD kernels are often compressed. */ - grub_dl_load ("gzio"); - -@@ -2163,6 +2167,9 @@ GRUB_MOD_INIT (bsd) - - GRUB_MOD_FINI (bsd) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - grub_unregister_extcmd (cmd_freebsd); - grub_unregister_extcmd (cmd_openbsd); - grub_unregister_extcmd (cmd_netbsd); -diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index 083f9417c..b2438547d 100644 ---- a/grub-core/loader/i386/linux.c -+++ b/grub-core/loader/i386/linux.c -@@ -35,6 +35,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -1139,6 +1140,9 @@ static grub_command_t cmd_linux, cmd_initrd; - - GRUB_MOD_INIT(linux) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - cmd_linux = grub_register_command ("linux", grub_cmd_linux, - 0, N_("Load Linux.")); - cmd_initrd = grub_register_command ("initrd", grub_cmd_initrd, -@@ -1148,6 +1152,9 @@ GRUB_MOD_INIT(linux) - - GRUB_MOD_FINI(linux) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - grub_unregister_command (cmd_linux); - grub_unregister_command (cmd_initrd); - } -diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c -index a293b17aa..91283157e 100644 ---- a/grub-core/loader/i386/pc/linux.c -+++ b/grub-core/loader/i386/pc/linux.c -@@ -35,6 +35,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -472,6 +473,9 @@ static grub_command_t cmd_linux, cmd_initrd; - - GRUB_MOD_INIT(linux16) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - cmd_linux = - grub_register_command ("linux16", grub_cmd_linux, - 0, N_("Load Linux.")); -@@ -483,6 +487,9 @@ GRUB_MOD_INIT(linux16) - - GRUB_MOD_FINI(linux16) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - grub_unregister_command (cmd_linux); - grub_unregister_command (cmd_initrd); - } -diff --git a/grub-core/loader/multiboot.c b/grub-core/loader/multiboot.c -index bd9d5b3e6..fb044a60c 100644 ---- a/grub-core/loader/multiboot.c -+++ b/grub-core/loader/multiboot.c -@@ -42,6 +42,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -431,6 +432,9 @@ static grub_command_t cmd_multiboot, cmd_module; - - GRUB_MOD_INIT(multiboot) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - cmd_multiboot = - #ifdef GRUB_USE_MULTIBOOT2 - grub_register_command ("multiboot2", grub_cmd_multiboot, -@@ -451,6 +455,9 @@ GRUB_MOD_INIT(multiboot) - - GRUB_MOD_FINI(multiboot) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - grub_unregister_command (cmd_multiboot); - grub_unregister_command (cmd_module); - } -diff --git a/grub-core/loader/xnu.c b/grub-core/loader/xnu.c -index c9885b1bc..df8dfdb4b 100644 ---- a/grub-core/loader/xnu.c -+++ b/grub-core/loader/xnu.c -@@ -33,6 +33,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -1469,6 +1470,9 @@ static grub_extcmd_t cmd_splash; - - GRUB_MOD_INIT(xnu) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - cmd_kernel = grub_register_command ("xnu_kernel", grub_cmd_xnu_kernel, 0, - N_("Load XNU image.")); - cmd_kernel64 = grub_register_command ("xnu_kernel64", grub_cmd_xnu_kernel64, -@@ -1509,6 +1513,9 @@ GRUB_MOD_INIT(xnu) - - GRUB_MOD_FINI(xnu) - { -+ if (grub_efi_secure_boot()) -+ return; -+ - #ifndef GRUB_MACHINE_EMU - grub_unregister_command (cmd_resume); - #endif -diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index 62a3d9726..764cd11f5 100644 ---- a/include/grub/efi/efi.h -+++ b/include/grub/efi/efi.h -@@ -76,7 +76,6 @@ EXPORT_FUNC (grub_efi_set_variable) (const char *var, - const grub_efi_guid_t *guid, - void *data, - grub_size_t datasize); --grub_efi_boolean_t EXPORT_FUNC (grub_efi_secure_boot) (void); - int - EXPORT_FUNC (grub_efi_compare_device_paths) (const grub_efi_device_path_t *dp1, - const grub_efi_device_path_t *dp2); -diff --git a/include/grub/efi/sb.h b/include/grub/efi/sb.h -new file mode 100644 -index 000000000..9629fbb0f ---- /dev/null -+++ b/include/grub/efi/sb.h -@@ -0,0 +1,29 @@ -+/* sb.h - declare functions for EFI Secure Boot support */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2006,2007,2008,2009 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#ifndef GRUB_EFI_SB_HEADER -+#define GRUB_EFI_SB_HEADER 1 -+ -+#include -+#include -+ -+/* Functions. */ -+int EXPORT_FUNC (grub_efi_secure_boot) (void); -+ -+#endif /* ! GRUB_EFI_SB_HEADER */ -diff --git a/include/grub/ia64/linux.h b/include/grub/ia64/linux.h -new file mode 100644 -index 000000000..e69de29bb -diff --git a/include/grub/mips/linux.h b/include/grub/mips/linux.h -new file mode 100644 -index 000000000..e69de29bb -diff --git a/include/grub/powerpc/linux.h b/include/grub/powerpc/linux.h -new file mode 100644 -index 000000000..5761d53e7 ---- /dev/null -+++ b/include/grub/powerpc/linux.h -@@ -0,0 +1,22 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2013 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#ifndef GRUB_LINUX_CPU_HEADER -+#define GRUB_LINUX_CPU_HEADER 1 -+ -+#endif /* ! GRUB_LINUX_CPU_HEADER */ -diff --git a/include/grub/sparc64/linux.h b/include/grub/sparc64/linux.h -new file mode 100644 -index 000000000..e69de29bb diff --git a/patches/grub/2.02/linuxefi_load_arm_with_sb.patch b/patches/grub/2.02/linuxefi_load_arm_with_sb.patch deleted file mode 100644 index 96a79b71a..000000000 --- a/patches/grub/2.02/linuxefi_load_arm_with_sb.patch +++ /dev/null @@ -1,445 +0,0 @@ -From 9aa4d2f67a0109cb9c4ed23997b47f3c47943e2c Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Fri, 3 Nov 2017 12:06:24 -0400 -Subject: Load arm with SB enabled. - -Make sure we actually try to validate secure boot on this platform (even -though we're not shipping it enabled by default.) - -This means giving the kernel grub's loaded image as the vehicle for the -kernel command line, because we can't call systab->bs->LoadImage() if SB -is enabled. - -Origin: vendor, https://github.com/rhboot/grub2/commit/2786ab864cf00c15123320671f653e9a36ba12b4 -Forwarded: no -Last-Update: 2017-11-01 -Patch-Name: linuxefi_load_arm_with_sb.patch ---- - grub-core/Makefile.core.def | 3 + - grub-core/loader/arm/linux.c | 1 + - grub-core/loader/arm64/linux.c | 119 ++++++++++++++++++++------------------ - grub-core/loader/efi/linux.c | 65 +++++++++++++++++++++ - grub-core/loader/i386/efi/linux.c | 39 +------------ - include/grub/arm64/linux.h | 7 +++ - include/grub/efi/linux.h | 31 ++++++++++ - 7 files changed, 174 insertions(+), 91 deletions(-) - create mode 100644 grub-core/loader/efi/linux.c - create mode 100644 include/grub/efi/linux.h - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index cedf27eb8..1b642472e 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -1670,6 +1670,8 @@ module = { - ia64_efi = loader/ia64/efi/linux.c; - arm = loader/arm/linux.c; - arm64 = loader/arm64/linux.c; -+ arm64 = loader/efi/linux.c; -+ fdt = lib/fdt.c; - common = loader/linux.c; - common = lib/cmdline.c; - enable = noemu; -@@ -1737,6 +1739,7 @@ module = { - name = linuxefi; - efi = loader/i386/efi/linux.c; - efi = lib/cmdline.c; -+ efi = loader/efi/linux.c; - enable = i386_efi; - enable = x86_64_efi; - }; -diff --git a/grub-core/loader/arm/linux.c b/grub-core/loader/arm/linux.c -index 5b39f02bb..d7ebae0ff 100644 ---- a/grub-core/loader/arm/linux.c -+++ b/grub-core/loader/arm/linux.c -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - #include - #include - -diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index 57890fdda..bc7ebb699 100644 ---- a/grub-core/loader/arm64/linux.c -+++ b/grub-core/loader/arm64/linux.c -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -39,6 +40,7 @@ static int loaded; - - static void *kernel_addr; - static grub_uint64_t kernel_size; -+static grub_uint32_t handover_offset; - - static char *linux_args; - static grub_uint32_t cmdline_size; -@@ -67,7 +69,8 @@ grub_arm64_uefi_check_image (struct grub_arm64_linux_kernel_header * lh) - static grub_err_t - finalize_params_linux (void) - { -- int node, retval; -+ grub_efi_loaded_image_t *loaded_image = NULL; -+ int node, retval, len; - - void *fdt; - -@@ -102,6 +105,26 @@ finalize_params_linux (void) - if (grub_fdt_install() != GRUB_ERR_NONE) - goto failure; - -+ grub_dprintf ("linux", "Installed/updated FDT configuration table @ %p\n", -+ fdt); -+ -+ /* Convert command line to UCS-2 */ -+ loaded_image = grub_efi_get_loaded_image (grub_efi_image_handle); -+ if (!loaded_image) -+ goto failure; -+ -+ loaded_image->load_options_size = len = -+ (grub_strlen (linux_args) + 1) * sizeof (grub_efi_char16_t); -+ loaded_image->load_options = -+ grub_efi_allocate_pages (0, -+ GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); -+ if (!loaded_image->load_options) -+ return grub_error(GRUB_ERR_BAD_OS, "failed to create kernel parameters"); -+ -+ loaded_image->load_options_size = -+ 2 * grub_utf8_to_utf16 (loaded_image->load_options, len, -+ (grub_uint8_t *) linux_args, len, NULL); -+ - return GRUB_ERR_NONE; - - failure: -@@ -109,73 +132,49 @@ failure: - return grub_error(GRUB_ERR_BAD_OS, "failed to install/update FDT"); - } - --grub_err_t --grub_arm64_uefi_boot_image (grub_addr_t addr, grub_size_t size, char *args) -+static void -+free_params (void) - { -- grub_efi_memory_mapped_device_path_t *mempath; -- grub_efi_handle_t image_handle; -- grub_efi_boot_services_t *b; -- grub_efi_status_t status; -- grub_efi_loaded_image_t *loaded_image; -- int len; -- -- mempath = grub_malloc (2 * sizeof (grub_efi_memory_mapped_device_path_t)); -- if (!mempath) -- return grub_errno; -- -- mempath[0].header.type = GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE; -- mempath[0].header.subtype = GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE; -- mempath[0].header.length = grub_cpu_to_le16_compile_time (sizeof (*mempath)); -- mempath[0].memory_type = GRUB_EFI_LOADER_DATA; -- mempath[0].start_address = addr; -- mempath[0].end_address = addr + size; -+ grub_efi_loaded_image_t *loaded_image = NULL; - -- mempath[1].header.type = GRUB_EFI_END_DEVICE_PATH_TYPE; -- mempath[1].header.subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -- mempath[1].header.length = sizeof (grub_efi_device_path_t); -- -- b = grub_efi_system_table->boot_services; -- status = b->load_image (0, grub_efi_image_handle, -- (grub_efi_device_path_t *) mempath, -- (void *) addr, size, &image_handle); -- if (status != GRUB_EFI_SUCCESS) -- return grub_error (GRUB_ERR_BAD_OS, "cannot load image"); -+ loaded_image = grub_efi_get_loaded_image (grub_efi_image_handle); -+ if (loaded_image) -+ { -+ if (loaded_image->load_options) -+ grub_efi_free_pages ((grub_efi_physical_address_t) -+ loaded_image->load_options, -+ GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); -+ loaded_image->load_options = NULL; -+ loaded_image->load_options_size = 0; -+ } -+} - -- grub_dprintf ("linux", "linux command line: '%s'\n", args); -+grub_err_t -+grub_arm64_uefi_boot_image (grub_addr_t addr __attribute__ ((unused)), -+ grub_size_t size __attribute__ ((unused)), -+ char *args) -+{ -+ grub_err_t retval; - -- /* Convert command line to UCS-2 */ -- loaded_image = grub_efi_get_loaded_image (image_handle); -- loaded_image->load_options_size = len = -- (grub_strlen (args) + 1) * sizeof (grub_efi_char16_t); -- loaded_image->load_options = -- grub_efi_allocate_pages (0, -- GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); -- if (!loaded_image->load_options) -+ retval = finalize_params_linux (); -+ if (retval != GRUB_ERR_NONE) - return grub_errno; - -- loaded_image->load_options_size = -- 2 * grub_utf8_to_utf16 (loaded_image->load_options, len, -- (grub_uint8_t *) args, len, NULL); -- -- grub_dprintf ("linux", "starting image %p\n", image_handle); -- status = b->start_image (image_handle, 0, NULL); -+ grub_dprintf ("linux", "linux command line: '%s'\n", args); - -- /* When successful, not reached */ -- b->unload_image (image_handle); -- grub_efi_free_pages ((grub_efi_physical_address_t) loaded_image->load_options, -- GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); -+ retval = grub_efi_linux_boot ((char *)kernel_addr, handover_offset, -+ kernel_addr); - -- return grub_errno; -+ /* Never reached... */ -+ free_params(); -+ return retval; - } - - static grub_err_t - grub_linux_boot (void) - { -- if (finalize_params_linux () != GRUB_ERR_NONE) -- return grub_errno; -- -- return (grub_arm64_uefi_boot_image((grub_addr_t)kernel_addr, -- kernel_size, linux_args)); -+ return grub_arm64_uefi_boot_image ((grub_addr_t)kernel_addr, -+ kernel_size, linux_args); - } - - static grub_err_t -@@ -253,6 +252,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - { - grub_file_t file = 0; - struct grub_arm64_linux_kernel_header lh; -+ struct grub_arm64_linux_pe_header *pe; - - grub_dl_ref (my_mod); - -@@ -297,6 +297,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - - grub_dprintf ("linux", "kernel @ %p\n", kernel_addr); - -+ if (!grub_linuxefi_secure_validate (kernel_addr, kernel_size)) -+ { -+ grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), argv[0]); -+ goto fail; -+ } -+ -+ pe = (void *)((unsigned long)kernel_addr + lh.hdr_offset); -+ handover_offset = pe->opt.entry_addr; -+ - cmdline_size = grub_loader_cmdline_size (argc, argv) + sizeof (LINUX_IMAGE); - linux_args = grub_malloc (cmdline_size); - if (!linux_args) -diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c -new file mode 100644 -index 000000000..aea378adf ---- /dev/null -+++ b/grub-core/loader/efi/linux.c -@@ -0,0 +1,65 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2014 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define SHIM_LOCK_GUID \ -+ { 0x605dab50, 0xe046, 0x4300, {0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23} } -+ -+struct grub_efi_shim_lock -+{ -+ grub_efi_status_t (*verify) (void *buffer, grub_uint32_t size); -+}; -+typedef struct grub_efi_shim_lock grub_efi_shim_lock_t; -+ -+grub_efi_boolean_t -+grub_linuxefi_secure_validate (void *data, grub_uint32_t size) -+{ -+ grub_efi_guid_t guid = SHIM_LOCK_GUID; -+ grub_efi_shim_lock_t *shim_lock; -+ -+ shim_lock = grub_efi_locate_protocol(&guid, NULL); -+ -+ if (!shim_lock) -+ return 1; -+ -+ if (shim_lock->verify(data, size) == GRUB_EFI_SUCCESS) -+ return 1; -+ -+ return 0; -+} -+ -+typedef void (*handover_func) (void *, grub_efi_system_table_t *, void *); -+ -+grub_err_t -+grub_efi_linux_boot (void *kernel_addr, grub_off_t offset, -+ void *kernel_params) -+{ -+ handover_func hf; -+ -+ hf = (handover_func)((char *)kernel_addr + offset); -+ hf (grub_efi_image_handle, grub_efi_system_table, kernel_params); -+ -+ return GRUB_ERR_BUG; -+} -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 6afa13d41..ddd50dbf1 100644 ---- a/grub-core/loader/i386/efi/linux.c -+++ b/grub-core/loader/i386/efi/linux.c -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -40,52 +41,18 @@ static char *linux_cmdline; - - #define BYTES_TO_PAGES(bytes) (((bytes) + 0xfff) >> 12) - --#define SHIM_LOCK_GUID \ -- { 0x605dab50, 0xe046, 0x4300, {0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23} } -- --struct grub_efi_shim_lock --{ -- grub_efi_status_t (*verify) (void *buffer, grub_uint32_t size); --}; --typedef struct grub_efi_shim_lock grub_efi_shim_lock_t; -- --static grub_efi_boolean_t --grub_linuxefi_secure_validate (void *data, grub_uint32_t size) --{ -- grub_efi_guid_t guid = SHIM_LOCK_GUID; -- grub_efi_shim_lock_t *shim_lock; -- -- shim_lock = grub_efi_locate_protocol(&guid, NULL); -- -- if (!shim_lock) -- return 1; -- -- if (shim_lock->verify(data, size) == GRUB_EFI_SUCCESS) -- return 1; -- -- return 0; --} -- --typedef void(*handover_func)(void *, grub_efi_system_table_t *, struct linux_kernel_params *); -- - static grub_err_t - grub_linuxefi_boot (void) - { -- handover_func hf; - int offset = 0; - - #ifdef __x86_64__ - offset = 512; - #endif -- -- hf = (handover_func)((char *)kernel_mem + handover_offset + offset); -- - asm volatile ("cli"); - -- hf (grub_efi_image_handle, grub_efi_system_table, params); -- -- /* Not reached */ -- return GRUB_ERR_NONE; -+ return grub_efi_linux_boot ((char *)kernel_mem, handover_offset + offset, -+ params); - } - - static grub_err_t -diff --git a/include/grub/arm64/linux.h b/include/grub/arm64/linux.h -index 1ea23696e..a2ba24e9f 100644 ---- a/include/grub/arm64/linux.h -+++ b/include/grub/arm64/linux.h -@@ -20,6 +20,7 @@ - #define GRUB_LINUX_CPU_HEADER 1 - - #include -+#include - - #define GRUB_ARM64_LINUX_MAGIC 0x644d5241 /* 'ARM\x64' */ - -@@ -44,5 +45,11 @@ grub_err_t grub_arm64_uefi_check_image (struct grub_arm64_linux_kernel_header - *lh); - grub_err_t grub_arm64_uefi_boot_image (grub_addr_t addr, grub_size_t size, - char *args); -+struct grub_arm64_linux_pe_header -+{ -+ grub_uint32_t magic; -+ struct grub_pe32_coff_header coff; -+ struct grub_pe64_optional_header opt; -+}; - - #endif /* ! GRUB_LINUX_CPU_HEADER */ -diff --git a/include/grub/efi/linux.h b/include/grub/efi/linux.h -new file mode 100644 -index 000000000..d9ede3677 ---- /dev/null -+++ b/include/grub/efi/linux.h -@@ -0,0 +1,31 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2014 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+#ifndef GRUB_EFI_LINUX_HEADER -+#define GRUB_EFI_LINUX_HEADER 1 -+ -+#include -+#include -+#include -+ -+grub_efi_boolean_t -+EXPORT_FUNC(grub_linuxefi_secure_validate) (void *data, grub_uint32_t size); -+grub_err_t -+EXPORT_FUNC(grub_efi_linux_boot) (void *kernel_address, grub_off_t offset, -+ void *kernel_param); -+ -+#endif /* ! GRUB_EFI_LINUX_HEADER */ diff --git a/patches/grub/2.02/linuxefi_minor_cleanups.patch b/patches/grub/2.02/linuxefi_minor_cleanups.patch deleted file mode 100644 index 56a2c4c04..000000000 --- a/patches/grub/2.02/linuxefi_minor_cleanups.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 03c85c1794f6364639933b8e7711e3d499092a38 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 14 Feb 2017 16:31:52 -0500 -Subject: linuxefi: minor cleanups - -Signed-off-by: Peter Jones - -Origin: vendor, https://github.com/rhboot/grub2/commit/2c9a6edf8abbc7397174ec2696fce28822996a12 -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_minor_cleanups.patch ---- - grub-core/loader/i386/efi/linux.c | 30 ++++++++++++++++++++---------- - 1 file changed, 20 insertions(+), 10 deletions(-) - -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 7df379ab7..6efa30ff8 100644 ---- a/grub-core/loader/i386/efi/linux.c -+++ b/grub-core/loader/i386/efi/linux.c -@@ -62,13 +62,18 @@ grub_linuxefi_unload (void) - grub_dl_unref (my_mod); - loaded = 0; - if (initrd_mem) -- grub_efi_free_pages((grub_efi_physical_address_t)initrd_mem, BYTES_TO_PAGES(params->ramdisk_size)); -+ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)initrd_mem, -+ BYTES_TO_PAGES(params->ramdisk_size)); - if (linux_cmdline) -- grub_efi_free_pages((grub_efi_physical_address_t)linux_cmdline, BYTES_TO_PAGES(params->cmdline_size + 1)); -+ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t) -+ linux_cmdline, -+ BYTES_TO_PAGES(params->cmdline_size + 1)); - if (kernel_mem) -- grub_efi_free_pages((grub_efi_physical_address_t)kernel_mem, BYTES_TO_PAGES(kernel_size)); -+ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)kernel_mem, -+ BYTES_TO_PAGES(kernel_size)); - if (params) -- grub_efi_free_pages((grub_efi_physical_address_t)params, BYTES_TO_PAGES(16384)); -+ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)params, -+ BYTES_TO_PAGES(16384)); - return GRUB_ERR_NONE; - } - -@@ -118,7 +123,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), - grub_dprintf ("linuxefi", "initrd_mem = %lx\n", (unsigned long) initrd_mem); - - params->ramdisk_size = size; -- params->ramdisk_image = (grub_uint32_t)(grub_uint64_t) initrd_mem; -+ params->ramdisk_image = (grub_uint32_t)(grub_addr_t) initrd_mem; - - ptr = initrd_mem; - -@@ -145,7 +150,8 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), - grub_free (files); - - if (initrd_mem && grub_errno) -- grub_efi_free_pages((grub_efi_physical_address_t)initrd_mem, BYTES_TO_PAGES(size)); -+ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)initrd_mem, -+ BYTES_TO_PAGES(size)); - - return grub_errno; - } -@@ -252,7 +258,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - linux_cmdline + sizeof (LINUX_IMAGE) - 1, - lh.cmdline_size - (sizeof (LINUX_IMAGE) - 1)); - -- lh.cmd_line_ptr = (grub_uint32_t)(grub_uint64_t)linux_cmdline; -+ lh.cmd_line_ptr = (grub_uint32_t)(grub_addr_t)linux_cmdline; - - handover_offset = lh.handover_offset; - -@@ -297,13 +303,17 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - } - - if (linux_cmdline && !loaded) -- grub_efi_free_pages((grub_efi_physical_address_t)linux_cmdline, BYTES_TO_PAGES(lh.cmdline_size + 1)); -+ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t) -+ linux_cmdline, -+ BYTES_TO_PAGES(lh.cmdline_size + 1)); - - if (kernel_mem && !loaded) -- grub_efi_free_pages((grub_efi_physical_address_t)kernel_mem, BYTES_TO_PAGES(kernel_size)); -+ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)kernel_mem, -+ BYTES_TO_PAGES(kernel_size)); - - if (params && !loaded) -- grub_efi_free_pages((grub_efi_physical_address_t)params, BYTES_TO_PAGES(16384)); -+ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)params, -+ BYTES_TO_PAGES(16384)); - - return grub_errno; - } diff --git a/patches/grub/2.02/linuxefi_move_fdt_helper.patch b/patches/grub/2.02/linuxefi_move_fdt_helper.patch deleted file mode 100644 index 4739f63c4..000000000 --- a/patches/grub/2.02/linuxefi_move_fdt_helper.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 1c4934ef2833af2b92c91e8aede131efd8c5c789 Mon Sep 17 00:00:00 2001 -From: Leif Lindholm -Date: Fri, 3 Nov 2017 12:04:00 -0400 -Subject: efi: move fdt helper library - -There is nothing ARM64 (or even ARM) specific about the efi fdt helper -library, which is used for locating or overriding a firmware-provided -devicetree in a UEFI system - so move it to loader/efi for reuse. - -Move the fdtload.h include file to grub/efi and update path to -efi/fdtload.h in source code referring to it. - -Signed-off-by: Leif Lindholm - -From: Leif Lindholm -Date: Thu, 3 Aug 2017 11:04:24 +0100 - -Patch-Name: linuxefi_move_fdt_helper.patch ---- - grub-core/Makefile.core.def | 2 +- - grub-core/loader/arm64/linux.c | 2 +- - grub-core/loader/arm64/xen_boot.c | 2 +- - grub-core/loader/{arm64 => efi}/fdt.c | 2 +- - include/grub/{arm64 => efi}/fdtload.h | 0 - 5 files changed, 4 insertions(+), 4 deletions(-) - rename grub-core/loader/{arm64 => efi}/fdt.c (99%) - rename include/grub/{arm64 => efi}/fdtload.h (100%) - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 68e47a727..cedf27eb8 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -1677,7 +1677,7 @@ module = { - - module = { - name = fdt; -- arm64 = loader/arm64/fdt.c; -+ arm64 = loader/efi/fdt.c; - common = lib/fdt.c; - enable = fdt; - }; -diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index 9519d2e4d..57890fdda 100644 ---- a/grub-core/loader/arm64/linux.c -+++ b/grub-core/loader/arm64/linux.c -@@ -26,8 +26,8 @@ - #include - #include - #include --#include - #include -+#include - #include - #include - #include -diff --git a/grub-core/loader/arm64/xen_boot.c b/grub-core/loader/arm64/xen_boot.c -index a914eb8e2..82ee39459 100644 ---- a/grub-core/loader/arm64/xen_boot.c -+++ b/grub-core/loader/arm64/xen_boot.c -@@ -27,9 +27,9 @@ - #include - #include - #include --#include - #include - #include -+#include - #include /* required by struct xen_hypervisor_header */ - #include - #include -diff --git a/grub-core/loader/arm64/fdt.c b/grub-core/loader/efi/fdt.c -similarity index 99% -rename from grub-core/loader/arm64/fdt.c -rename to grub-core/loader/efi/fdt.c -index db49cf649..3266f65c4 100644 ---- a/grub-core/loader/arm64/fdt.c -+++ b/grub-core/loader/efi/fdt.c -@@ -18,12 +18,12 @@ - - #include - #include --#include - #include - #include - #include - #include - #include -+#include - - static void *loaded_fdt; - static void *fdt; -diff --git a/include/grub/arm64/fdtload.h b/include/grub/efi/fdtload.h -similarity index 100% -rename from include/grub/arm64/fdtload.h -rename to include/grub/efi/fdtload.h diff --git a/patches/grub/2.02/linuxefi_no_insmod_on_sb.patch b/patches/grub/2.02/linuxefi_no_insmod_on_sb.patch deleted file mode 100644 index 51cd85815..000000000 --- a/patches/grub/2.02/linuxefi_no_insmod_on_sb.patch +++ /dev/null @@ -1,121 +0,0 @@ -From 0df94e5a210f217bfb1a8aed9bf5cf6c5e3ad619 Mon Sep 17 00:00:00 2001 -From: Matthew Garrett -Date: Mon, 13 Jan 2014 12:13:09 +0000 -Subject: Don't permit loading modules on UEFI secure boot - -Hi, - -Fedora's patch to forbid insmod in UEFI Secure Boot environments is fine -as far as it goes. However, the insmod command is not the only way that -modules can be loaded. In particular, the 'normal' command, which -implements the usual GRUB menu and the fully-featured command prompt, -will implicitly load commands not currently loaded into memory. This -permits trivial Secure Boot violations by writing commands implementing -whatever you want to do and pointing $prefix at the malicious code. - -I'm currently test-building this patch (replacing your current -grub-2.00-no-insmod-on-sb.patch), but this should be more correct. It -moves the check into grub_dl_load_file. - -Author: Colin Watson -Origin: vendor, https://github.com/rhboot/grub2/commit/7cd4b7642d1ce2c0ac48f62e0fa4954a432f65a5 -Forwarded: no -Last-Update: 2013-12-25 - -Patch-Name: linuxefi_no_insmod_on_sb.patch ---- - grub-core/kern/dl.c | 21 +++++++++++++++++++++ - grub-core/kern/efi/efi.c | 28 ++++++++++++++++++++++++++++ - include/grub/efi/efi.h | 1 + - 3 files changed, 50 insertions(+) - -diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c -index e394cd96f..04e804d16 100644 ---- a/grub-core/kern/dl.c -+++ b/grub-core/kern/dl.c -@@ -38,6 +38,14 @@ - #define GRUB_MODULES_MACHINE_READONLY - #endif - -+#ifdef GRUB_MACHINE_EMU -+#include -+#endif -+ -+#ifdef GRUB_MACHINE_EFI -+#include -+#endif -+ - - - #pragma GCC diagnostic ignored "-Wcast-align" -@@ -686,6 +694,19 @@ grub_dl_load_file (const char *filename) - void *core = 0; - grub_dl_t mod = 0; - -+#ifdef GRUB_MACHINE_EFI -+ if (grub_efi_secure_boot ()) -+ { -+#if 0 -+ /* This is an error, but grub2-mkconfig still generates a pile of -+ * insmod commands, so emitting it would be mostly just obnoxious. */ -+ grub_error (GRUB_ERR_ACCESS_DENIED, -+ "Secure Boot forbids loading module from %s", filename); -+#endif -+ return 0; -+ } -+#endif -+ - grub_boot_time ("Loading module %s", filename); - - file = grub_file_open (filename); -diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index d467785fc..bce251df9 100644 ---- a/grub-core/kern/efi/efi.c -+++ b/grub-core/kern/efi/efi.c -@@ -264,6 +264,34 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, - return NULL; - } - -+grub_efi_boolean_t -+grub_efi_secure_boot (void) -+{ -+ grub_efi_guid_t efi_var_guid = GRUB_EFI_GLOBAL_VARIABLE_GUID; -+ grub_size_t datasize; -+ char *secure_boot = NULL; -+ char *setup_mode = NULL; -+ grub_efi_boolean_t ret = 0; -+ -+ secure_boot = grub_efi_get_variable("SecureBoot", &efi_var_guid, &datasize); -+ -+ if (datasize != 1 || !secure_boot) -+ goto out; -+ -+ setup_mode = grub_efi_get_variable("SetupMode", &efi_var_guid, &datasize); -+ -+ if (datasize != 1 || !setup_mode) -+ goto out; -+ -+ if (*secure_boot && !*setup_mode) -+ ret = 1; -+ -+ out: -+ grub_free (secure_boot); -+ grub_free (setup_mode); -+ return ret; -+} -+ - #pragma GCC diagnostic ignored "-Wcast-align" - - /* Search the mods section from the PE32/PE32+ image. This code uses -diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index 764cd11f5..62a3d9726 100644 ---- a/include/grub/efi/efi.h -+++ b/include/grub/efi/efi.h -@@ -76,6 +76,7 @@ EXPORT_FUNC (grub_efi_set_variable) (const char *var, - const grub_efi_guid_t *guid, - void *data, - grub_size_t datasize); -+grub_efi_boolean_t EXPORT_FUNC (grub_efi_secure_boot) (void); - int - EXPORT_FUNC (grub_efi_compare_device_paths) (const grub_efi_device_path_t *dp1, - const grub_efi_device_path_t *dp2); diff --git a/patches/grub/2.02/linuxefi_non_sb_fallback.patch b/patches/grub/2.02/linuxefi_non_sb_fallback.patch deleted file mode 100644 index 3e7c686eb..000000000 --- a/patches/grub/2.02/linuxefi_non_sb_fallback.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 037c606bad73a979f5937922590fccb9d0b093b6 Mon Sep 17 00:00:00 2001 -From: Mathieu Trudel-Lapierre -Date: Wed, 1 Nov 2017 13:48:26 -0400 -Subject: If running under UEFI secure boot, attempt to use linuxefi loader - -Author: Steve Langasek -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_non_sb_fallback.patch ---- - grub-core/loader/i386/efi/linux.c | 2 +- - grub-core/loader/i386/linux.c | 43 +++++++++++++++++++++++++++++++++++++++ - 2 files changed, 44 insertions(+), 1 deletion(-) - -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 9a3f7477b..9f70256a5 100644 ---- a/grub-core/loader/i386/efi/linux.c -+++ b/grub-core/loader/i386/efi/linux.c -@@ -200,7 +200,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - rc = grub_linuxefi_secure_validate (kernel, filelen); - if (rc < 0) - { -- grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), -+ grub_error (GRUB_ERR_ACCESS_DENIED, N_("%s has invalid signature"), - argv[0]); - goto fail; - } -diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index c9e89310b..3e3b45aa8 100644 ---- a/grub-core/loader/i386/linux.c -+++ b/grub-core/loader/i386/linux.c -@@ -76,6 +76,8 @@ static grub_size_t maximal_cmdline_size; - static struct linux_kernel_params linux_params; - static char *linux_cmdline; - #ifdef GRUB_MACHINE_EFI -+static int using_linuxefi; -+static grub_command_t initrdefi_cmd; - static grub_efi_uintn_t efi_mmap_size; - #else - static const grub_size_t efi_mmap_size = 0; -@@ -692,6 +694,41 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - - grub_dl_ref (my_mod); - -+#ifdef GRUB_MACHINE_EFI -+ using_linuxefi = 0; -+ if (grub_efi_secure_boot ()) -+ { -+ /* Try linuxefi first, which will require a successful signature check -+ and then hand over to the kernel without calling ExitBootServices. -+ If that fails, however, fall back to calling ExitBootServices -+ ourselves and then booting an unsigned kernel. */ -+ grub_dl_t mod; -+ grub_command_t linuxefi_cmd; -+ -+ grub_dprintf ("linux", "Secure Boot enabled: trying linuxefi\n"); -+ -+ mod = grub_dl_load ("linuxefi"); -+ if (mod) -+ { -+ grub_dl_ref (mod); -+ linuxefi_cmd = grub_command_find ("linuxefi"); -+ initrdefi_cmd = grub_command_find ("initrdefi"); -+ if (linuxefi_cmd && initrdefi_cmd) -+ { -+ (linuxefi_cmd->func) (linuxefi_cmd, argc, argv); -+ if (grub_errno == GRUB_ERR_NONE) -+ { -+ grub_dprintf ("linux", "Handing off to linuxefi\n"); -+ using_linuxefi = 1; -+ return GRUB_ERR_NONE; -+ } -+ grub_dprintf ("linux", "linuxefi failed (%d)\n", grub_errno); -+ grub_errno = GRUB_ERR_NONE; -+ } -+ } -+ } -+#endif -+ - if (argc == 0) - { - grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -@@ -1066,6 +1103,12 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), - grub_err_t err; - struct grub_linux_initrd_context initrd_ctx = { 0, 0, 0 }; - -+#ifdef GRUB_MACHINE_EFI -+ /* If we're using linuxefi, just forward to initrdefi. */ -+ if (using_linuxefi && initrdefi_cmd) -+ return (initrdefi_cmd->func) (initrdefi_cmd, argc, argv); -+#endif -+ - if (argc == 0) - { - grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); diff --git a/patches/grub/2.02/linuxefi_re-enable_linux_cmd.patch b/patches/grub/2.02/linuxefi_re-enable_linux_cmd.patch deleted file mode 100644 index 7dbfd6fcd..000000000 --- a/patches/grub/2.02/linuxefi_re-enable_linux_cmd.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 43d3508475ff2c2714a95e17ef9e7e3ee7e76f36 Mon Sep 17 00:00:00 2001 -From: Mathieu Trudel-Lapierre -Date: Wed, 1 Nov 2017 13:51:03 -0400 -Subject: Temporarily re-enable the generic linux loader - -We're currently relying on it and an automatic hand-off to linuxefi for EFI -booting; so we need the linux command to start to be able to do the hand-off -correctly. - -This is a temporary measure until we switch to calling linuxefi directly. - -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_re-enable_linux_cmd.patch ---- - grub-core/loader/i386/linux.c | 6 ------ - 1 file changed, 6 deletions(-) - -diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index 3e3b45aa8..ae0be0f26 100644 ---- a/grub-core/loader/i386/linux.c -+++ b/grub-core/loader/i386/linux.c -@@ -1194,9 +1194,6 @@ static grub_command_t cmd_linux, cmd_initrd; - - GRUB_MOD_INIT(linux) - { -- if (grub_efi_secure_boot()) -- return; -- - cmd_linux = grub_register_command ("linux", grub_cmd_linux, - 0, N_("Load Linux.")); - cmd_initrd = grub_register_command ("initrd", grub_cmd_initrd, -@@ -1206,9 +1203,6 @@ GRUB_MOD_INIT(linux) - - GRUB_MOD_FINI(linux) - { -- if (grub_efi_secure_boot()) -- return; -- - grub_unregister_command (cmd_linux); - grub_unregister_command (cmd_initrd); - } diff --git a/patches/grub/2.02/linuxefi_rework_linux16_cmd.patch b/patches/grub/2.02/linuxefi_rework_linux16_cmd.patch deleted file mode 100644 index 4c22a1899..000000000 --- a/patches/grub/2.02/linuxefi_rework_linux16_cmd.patch +++ /dev/null @@ -1,104 +0,0 @@ -From 8e69e6f56cbc2a7fefb97c0052daf485f26f0f7a Mon Sep 17 00:00:00 2001 -From: Matthew Garrett -Date: Sun, 9 Aug 2015 16:20:58 -0700 -Subject: Rework linux16 command - -We want a single buffer that contains the entire kernel image in order to -perform a TPM measurement. Allocate one and copy the entire kernel int it -before pulling out the individual blocks later on. - -Origin: vendor, https://github.com/rhboot/grub2/commit/78d85625026497d96a06e5b7880a1d4785af9d1f -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_rework_linux16_cmd.patch ---- - grub-core/loader/i386/pc/linux.c | 34 +++++++++++++++++++++------------- - 1 file changed, 21 insertions(+), 13 deletions(-) - -diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c -index 91283157e..b864e5403 100644 ---- a/grub-core/loader/i386/pc/linux.c -+++ b/grub-core/loader/i386/pc/linux.c -@@ -124,13 +124,14 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - grub_file_t file = 0; - struct linux_kernel_header lh; - grub_uint8_t setup_sects; -- grub_size_t real_size; -+ grub_size_t real_size, kernel_offset = 0; - grub_ssize_t len; - int i; - char *grub_linux_prot_chunk; - int grub_linux_is_bzimage; - grub_addr_t grub_linux_prot_target; - grub_err_t err; -+ grub_uint8_t *kernel = NULL; - - grub_dl_ref (my_mod); - -@@ -144,7 +145,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - if (! file) - goto fail; - -- if (grub_file_read (file, &lh, sizeof (lh)) != sizeof (lh)) -+ len = grub_file_size (file); -+ kernel = grub_malloc (len); -+ if (!kernel) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("cannot allocate kernel buffer")); -+ goto fail; -+ } -+ -+ if (grub_file_read (file, kernel, len) != len) - { - if (!grub_errno) - grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -@@ -152,6 +161,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -+ grub_memcpy (&lh, kernel, sizeof (lh)); -+ kernel_offset = sizeof (lh); -+ - if (lh.boot_flag != grub_cpu_to_le16_compile_time (0xaa55)) - { - grub_error (GRUB_ERR_BAD_OS, "invalid magic number"); -@@ -315,13 +327,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - grub_memmove (grub_linux_real_chunk, &lh, sizeof (lh)); - - len = real_size + GRUB_DISK_SECTOR_SIZE - sizeof (lh); -- if (grub_file_read (file, grub_linux_real_chunk + sizeof (lh), len) != len) -- { -- if (!grub_errno) -- grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -- argv[0]); -- goto fail; -- } -+ grub_memcpy (grub_linux_real_chunk + sizeof (lh), kernel + kernel_offset, -+ len); -+ kernel_offset += len; - - if (lh.header != grub_cpu_to_le32_compile_time (GRUB_LINUX_MAGIC_SIGNATURE) - || grub_le_to_cpu16 (lh.version) < 0x0200) -@@ -356,10 +364,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - } - - len = grub_linux16_prot_size; -- if (grub_file_read (file, grub_linux_prot_chunk, grub_linux16_prot_size) -- != (grub_ssize_t) grub_linux16_prot_size && !grub_errno) -- grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -- argv[0]); -+ grub_memcpy (grub_linux_prot_chunk, kernel + kernel_offset, len); -+ kernel_offset += len; - - if (grub_errno == GRUB_ERR_NONE) - { -@@ -369,6 +375,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - - fail: - -+ grub_free (kernel); -+ - if (file) - grub_file_close (file); - diff --git a/patches/grub/2.02/linuxefi_rework_linux_cmd.patch b/patches/grub/2.02/linuxefi_rework_linux_cmd.patch deleted file mode 100644 index 6ce465b48..000000000 --- a/patches/grub/2.02/linuxefi_rework_linux_cmd.patch +++ /dev/null @@ -1,110 +0,0 @@ -From 95c987739871ae7d45174e3cd689410622c3e9b4 Mon Sep 17 00:00:00 2001 -From: Matthew Garrett -Date: Sun, 9 Aug 2015 16:12:39 -0700 -Subject: Rework linux command - -We want a single buffer that contains the entire kernel image in order to -perform a TPM measurement. Allocate one and copy the entire kernel into it -before pulling out the individual blocks later on. - -Origin: vendor, https://github.com/rhboot/grub2/commit/97c97a2e9a95a29c42569952c8be7be1fdb5b4cf -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_rework_linux_cmd.patch ---- - grub-core/loader/i386/linux.c | 34 +++++++++++++++++++++------------- - 1 file changed, 21 insertions(+), 13 deletions(-) - -diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index b2438547d..e4b8342f5 100644 ---- a/grub-core/loader/i386/linux.c -+++ b/grub-core/loader/i386/linux.c -@@ -681,12 +681,13 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - grub_file_t file = 0; - struct linux_kernel_header lh; - grub_uint8_t setup_sects; -- grub_size_t real_size, prot_size, prot_file_size; -+ grub_size_t real_size, prot_size, prot_file_size, kernel_offset; - grub_ssize_t len; - int i; - grub_size_t align, min_align; - int relocatable; - grub_uint64_t preferred_address = GRUB_LINUX_BZIMAGE_ADDR; -+ grub_uint8_t *kernel = NULL; - - grub_dl_ref (my_mod); - -@@ -700,7 +701,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - if (! file) - goto fail; - -- if (grub_file_read (file, &lh, sizeof (lh)) != sizeof (lh)) -+ len = grub_file_size (file); -+ kernel = grub_malloc (len); -+ if (!kernel) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("cannot allocate kernel buffer")); -+ goto fail; -+ } -+ -+ if (grub_file_read (file, kernel, len) != len) - { - if (!grub_errno) - grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -@@ -708,6 +717,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -+ grub_memcpy (&lh, kernel, sizeof (lh)); -+ kernel_offset = sizeof (lh); -+ - if (lh.boot_flag != grub_cpu_to_le16_compile_time (0xaa55)) - { - grub_error (GRUB_ERR_BAD_OS, "invalid magic number"); -@@ -807,13 +819,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - linux_params.ps_mouse = linux_params.padding10 = 0; - - len = sizeof (linux_params) - sizeof (lh); -- if (grub_file_read (file, (char *) &linux_params + sizeof (lh), len) != len) -- { -- if (!grub_errno) -- grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -- argv[0]); -- goto fail; -- } -+ -+ grub_memcpy (&linux_params + sizeof (lh), kernel + kernel_offset, len); -+ kernel_offset += len; - - linux_params.type_of_loader = GRUB_LINUX_BOOT_LOADER_TYPE; - -@@ -872,7 +880,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - - /* The other parameters are filled when booting. */ - -- grub_file_seek (file, real_size + GRUB_DISK_SECTOR_SIZE); -+ kernel_offset = real_size + GRUB_DISK_SECTOR_SIZE; - - grub_dprintf ("linux", "bzImage, setup=0x%x, size=0x%x\n", - (unsigned) real_size, (unsigned) prot_size); -@@ -1020,9 +1028,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - - (sizeof (LINUX_IMAGE) - 1)); - - len = prot_file_size; -- if (grub_file_read (file, prot_mode_mem, len) != len && !grub_errno) -- grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -- argv[0]); -+ grub_memcpy (prot_mode_mem, kernel + kernel_offset, len); - - if (grub_errno == GRUB_ERR_NONE) - { -@@ -1033,6 +1039,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - - fail: - -+ grub_free (kernel); -+ - if (file) - grub_file_close (file); - diff --git a/patches/grub/2.02/linuxefi_rework_non-sb_efi_chainload.patch b/patches/grub/2.02/linuxefi_rework_non-sb_efi_chainload.patch deleted file mode 100644 index 894832e9d..000000000 --- a/patches/grub/2.02/linuxefi_rework_non-sb_efi_chainload.patch +++ /dev/null @@ -1,385 +0,0 @@ -From 903ae8b9aae3856017c40c1a34bf3d182e7023a8 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Fri, 10 Jun 2016 14:06:15 -0400 -Subject: Rework even more of efi chainload so non-sb cases work right. - -This ensures that if shim protocol is not loaded, or is loaded but shim -is disabled, we will fall back to a correct load method for the efi -chain loader. - -Here's what I tested with this version: - -results expected actual ------------------------------------------------------------- -sb + enabled + shim + fedora success success -sb + enabled + shim + win success success -sb + enabled + grub + fedora fail fail -sb + enabled + grub + win fail fail - -sb + mokdisabled + shim + fedora success success -sb + mokdisabled + shim + win success success -sb + mokdisabled + grub + fedora fail fail -sb + mokdisabled + grub + win fail fail - -sb disabled + shim + fedora success success* -sb disabled + shim + win success success* -sb disabled + grub + fedora success success -sb disabled + grub + win success success - -nosb + shim + fedora success success* -nosb + shim + win success success* -nosb + grub + fedora success success -nosb + grub + win success success - -* for some reason shim protocol is being installed in these cases, and I - can't see why, but I think it may be this firmware build returning an - erroneous value. But this effectively falls back to the mokdisabled - behavior, which works correctly, and the presence of the "grub" (i.e. - no shim) tests effectively tests the desired behavior here. - -Resolves: rhbz#1344512 - -Signed-off-by: Peter Jones - -Origin: vendor, https://github.com/rhboot/grub2/commit/149cdec4f9e5fd039a698ef20530bad588b6aeeb -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_rework_non-sb_efi_chainload.patch ---- - grub-core/kern/efi/sb.c | 14 +++-- - grub-core/loader/arm64/linux.c | 4 +- - grub-core/loader/efi/chainloader.c | 115 ++++++++++++++++++++++--------------- - grub-core/loader/efi/linux.c | 13 +++-- - grub-core/loader/i386/efi/linux.c | 7 ++- - include/grub/efi/linux.h | 2 +- - 6 files changed, 97 insertions(+), 58 deletions(-) - -diff --git a/grub-core/kern/efi/sb.c b/grub-core/kern/efi/sb.c -index a41b6c5b8..d74778b0c 100644 ---- a/grub-core/kern/efi/sb.c -+++ b/grub-core/kern/efi/sb.c -@@ -36,14 +36,20 @@ grub_efi_secure_boot (void) - grub_efi_boolean_t ret = 0; - - secure_boot = grub_efi_get_variable("SecureBoot", &efi_var_guid, &datasize); -- - if (datasize != 1 || !secure_boot) -- goto out; -+ { -+ grub_dprintf ("secureboot", "No SecureBoot variable\n"); -+ goto out; -+ } -+ grub_dprintf ("secureboot", "SecureBoot: %d\n", *secure_boot); - - setup_mode = grub_efi_get_variable("SetupMode", &efi_var_guid, &datasize); -- - if (datasize != 1 || !setup_mode) -- goto out; -+ { -+ grub_dprintf ("secureboot", "No SetupMode variable\n"); -+ goto out; -+ } -+ grub_dprintf ("secureboot", "SetupMode: %d\n", *setup_mode); - - if (*secure_boot && !*setup_mode) - ret = 1; -diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index bc7ebb699..456523b52 100644 ---- a/grub-core/loader/arm64/linux.c -+++ b/grub-core/loader/arm64/linux.c -@@ -253,6 +253,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - grub_file_t file = 0; - struct grub_arm64_linux_kernel_header lh; - struct grub_arm64_linux_pe_header *pe; -+ int rc; - - grub_dl_ref (my_mod); - -@@ -297,7 +298,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - - grub_dprintf ("linux", "kernel @ %p\n", kernel_addr); - -- if (!grub_linuxefi_secure_validate (kernel_addr, kernel_size)) -+ rc = grub_linuxefi_secure_validate (kernel_addr, kernel_size); -+ if (rc < 0) - { - grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), argv[0]); - goto fail; -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index 505d883ef..a2e2d1b6f 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -182,7 +182,6 @@ make_file_path (grub_efi_device_path_t *dp, const char *filename) - /* Fill the file path for the directory. */ - d = (grub_efi_device_path_t *) ((char *) file_path - + ((char *) d - (char *) dp)); -- grub_efi_print_device_path (d); - copy_file_path ((grub_efi_file_path_device_path_t *) d, - dir_start, dir_end - dir_start); - -@@ -252,10 +251,9 @@ read_header (void *data, grub_efi_uint32_t size, - grub_efi_status_t status; - - shim_lock = grub_efi_locate_protocol (&guid, NULL); -- - if (!shim_lock) - { -- grub_error (GRUB_ERR_BAD_ARGUMENT, "no shim lock protocol"); -+ grub_dprintf ("chain", "no shim lock protocol"); - return 0; - } - -@@ -280,7 +278,7 @@ read_header (void *data, grub_efi_uint32_t size, - break; - } - -- return 0; -+ return -1; - } - - static void* -@@ -514,17 +512,24 @@ handle_image (void *data, grub_efi_uint32_t datasize) - grub_uint32_t section_alignment; - grub_uint32_t buffer_size; - int found_entry_point = 0; -+ int rc; - - b = grub_efi_system_table->boot_services; - -- if (read_header (data, datasize, &context)) -+ rc = read_header (data, datasize, &context); -+ if (rc < 0) - { -- grub_dprintf ("chain", "Succeed to read header\n"); -+ grub_dprintf ("chain", "Failed to read header\n"); -+ goto error_exit; -+ } -+ else if (rc == 0) -+ { -+ grub_dprintf ("chain", "Secure Boot is not enabled\n"); -+ return 0; - } - else - { -- grub_dprintf ("chain", "Failed to read header\n"); -- goto error_exit; -+ grub_dprintf ("chain", "Header read without error\n"); - } - - /* -@@ -796,10 +801,56 @@ grub_secureboot_chainloader_unload (void) - return GRUB_ERR_NONE; - } - -+static grub_err_t -+grub_load_and_start_image(void *boot_image) -+{ -+ grub_efi_boot_services_t *b; -+ grub_efi_status_t status; -+ grub_efi_loaded_image_t *loaded_image; -+ -+ b = grub_efi_system_table->boot_services; -+ -+ status = efi_call_6 (b->load_image, 0, grub_efi_image_handle, file_path, -+ boot_image, fsize, &image_handle); -+ if (status != GRUB_EFI_SUCCESS) -+ { -+ if (status == GRUB_EFI_OUT_OF_RESOURCES) -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, "out of resources"); -+ else -+ grub_error (GRUB_ERR_BAD_OS, "cannot load image"); -+ return -1; -+ } -+ -+ /* LoadImage does not set a device handler when the image is -+ loaded from memory, so it is necessary to set it explicitly here. -+ This is a mess. */ -+ loaded_image = grub_efi_get_loaded_image (image_handle); -+ if (! loaded_image) -+ { -+ grub_error (GRUB_ERR_BAD_OS, "no loaded image available"); -+ return -1; -+ } -+ loaded_image->device_handle = dev_handle; -+ -+ if (cmdline) -+ { -+ loaded_image->load_options = cmdline; -+ loaded_image->load_options_size = cmdline_len; -+ } -+ -+ return 0; -+} -+ - static grub_err_t - grub_secureboot_chainloader_boot (void) - { -- handle_image ((void *)address, fsize); -+ int rc; -+ rc = handle_image ((void *)address, fsize); -+ if (rc == 0) -+ { -+ grub_load_and_start_image((void *)address); -+ } -+ - grub_loader_unset (); - return grub_errno; - } -@@ -813,9 +864,9 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - grub_efi_boot_services_t *b; - grub_device_t dev = 0; - grub_efi_device_path_t *dp = 0; -- grub_efi_loaded_image_t *loaded_image; - char *filename; - void *boot_image = 0; -+ int rc; - - if (argc == 0) - return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -@@ -902,9 +953,6 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - if (! file_path) - goto fail; - -- grub_printf ("file path: "); -- grub_efi_print_device_path (file_path); -- - fsize = grub_file_size (file); - if (!fsize) - { -@@ -979,51 +1027,28 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - } - #endif - -- if (grub_linuxefi_secure_validate((void *)address, fsize)) -+ rc = grub_linuxefi_secure_validate((void *)address, fsize); -+ grub_dprintf ("chain", "linuxefi_secure_validate: %d\n", rc); -+ if (rc > 0) - { - grub_file_close (file); - grub_loader_set (grub_secureboot_chainloader_boot, - grub_secureboot_chainloader_unload, 0); - return 0; - } -- -- status = efi_call_6 (b->load_image, 0, grub_efi_image_handle, file_path, -- boot_image, fsize, &image_handle); -- if (status != GRUB_EFI_SUCCESS) -+ else if (rc == 0) - { -- if (status == GRUB_EFI_OUT_OF_RESOURCES) -- grub_error (GRUB_ERR_OUT_OF_MEMORY, "out of resources"); -- else -- grub_error (GRUB_ERR_BAD_OS, "cannot load image"); -- -- goto fail; -- } -- -- /* LoadImage does not set a device handler when the image is -- loaded from memory, so it is necessary to set it explicitly here. -- This is a mess. */ -- loaded_image = grub_efi_get_loaded_image (image_handle); -- if (! loaded_image) -- { -- grub_error (GRUB_ERR_BAD_OS, "no loaded image available"); -- goto fail; -- } -- loaded_image->device_handle = dev_handle; -+ grub_load_and_start_image(boot_image); -+ grub_file_close (file); -+ grub_loader_set (grub_chainloader_boot, grub_chainloader_unload, 0); - -- if (cmdline) -- { -- loaded_image->load_options = cmdline; -- loaded_image->load_options_size = cmdline_len; -+ return 0; - } - - grub_file_close (file); - grub_device_close (dev); - -- grub_loader_set (grub_chainloader_boot, grub_chainloader_unload, 0); -- return 0; -- -- fail: -- -+fail: - if (dev) - grub_device_close (dev); - -diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c -index aea378adf..8890bdf05 100644 ---- a/grub-core/loader/efi/linux.c -+++ b/grub-core/loader/efi/linux.c -@@ -33,21 +33,24 @@ struct grub_efi_shim_lock - }; - typedef struct grub_efi_shim_lock grub_efi_shim_lock_t; - --grub_efi_boolean_t -+int - grub_linuxefi_secure_validate (void *data, grub_uint32_t size) - { - grub_efi_guid_t guid = SHIM_LOCK_GUID; - grub_efi_shim_lock_t *shim_lock; -+ grub_efi_status_t status; - - shim_lock = grub_efi_locate_protocol(&guid, NULL); -- -+ grub_dprintf ("secureboot", "shim_lock: %p\n", shim_lock); - if (!shim_lock) -- return 1; -+ return 0; - -- if (shim_lock->verify(data, size) == GRUB_EFI_SUCCESS) -+ status = shim_lock->verify(data, size); -+ grub_dprintf ("secureboot", "shim_lock->verify(): %ld\n", status); -+ if (status == GRUB_EFI_SUCCESS) - return 1; - -- return 0; -+ return -1; - } - - typedef void (*handover_func) (void *, grub_efi_system_table_t *, void *); -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 9a3cc1819..010bf982d 100644 ---- a/grub-core/loader/i386/efi/linux.c -+++ b/grub-core/loader/i386/efi/linux.c -@@ -155,6 +155,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - struct linux_kernel_header lh; - grub_ssize_t len, start, filelen; - void *kernel = NULL; -+ int rc; - - grub_dl_ref (my_mod); - -@@ -180,11 +181,13 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - - if (grub_file_read (file, kernel, filelen) != filelen) - { -- grub_error (GRUB_ERR_FILE_READ_ERROR, N_("Can't read kernel %s"), argv[0]); -+ grub_error (GRUB_ERR_FILE_READ_ERROR, N_("Can't read kernel %s"), -+ argv[0]); - goto fail; - } - -- if (! grub_linuxefi_secure_validate (kernel, filelen)) -+ rc = grub_linuxefi_secure_validate (kernel, filelen); -+ if (rc < 0) - { - grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), - argv[0]); -diff --git a/include/grub/efi/linux.h b/include/grub/efi/linux.h -index d9ede3677..0033d9305 100644 ---- a/include/grub/efi/linux.h -+++ b/include/grub/efi/linux.h -@@ -22,7 +22,7 @@ - #include - #include - --grub_efi_boolean_t -+int - EXPORT_FUNC(grub_linuxefi_secure_validate) (void *data, grub_uint32_t size); - grub_err_t - EXPORT_FUNC(grub_efi_linux_boot) (void *kernel_address, grub_off_t offset, diff --git a/patches/grub/2.02/linuxefi_rework_pe_loading.patch b/patches/grub/2.02/linuxefi_rework_pe_loading.patch deleted file mode 100644 index 8bc36e434..000000000 --- a/patches/grub/2.02/linuxefi_rework_pe_loading.patch +++ /dev/null @@ -1,356 +0,0 @@ -From ab09a982d2fa084a0b205fdef5b8a099a2d65cee Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Thu, 9 Jun 2016 12:22:29 -0400 -Subject: Re-work some intricacies of PE loading. - -The PE spec is not a well written document, and awesomely every place -where there's an ambiguous way to read something, Windows' bootmgfw.efi -takes a different read than either of them. - -Origin: vendor, https://github.com/rhboot/grub2/commit/3f023d25a1ceb6d23c1bb17b754fbc1f8321427d -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_rework_pe_loading.patch ---- - grub-core/loader/efi/chainloader.c | 156 +++++++++++++++++++++++++++++-------- - include/grub/efi/pe32.h | 32 +++++++- - 2 files changed, 152 insertions(+), 36 deletions(-) - -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index 83e191460..505d883ef 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -301,7 +301,7 @@ image_is_64_bit (grub_pe_header_t *pe_hdr) - return 0; - } - --static const grub_uint16_t machine_type = -+static const grub_uint16_t machine_type __attribute__((__unused__)) = - #if defined(__x86_64__) - GRUB_PE32_MACHINE_X86_64; - #elif defined(__aarch64__) -@@ -367,10 +367,10 @@ relocate_coff (pe_coff_loader_image_context_t *context, - - reloc_base = image_address (orig, size, section->raw_data_offset); - reloc_base_end = image_address (orig, size, section->raw_data_offset -- + section->virtual_size - 1); -+ + section->virtual_size); - -- grub_dprintf ("chain", "reloc_base %p reloc_base_end %p\n", reloc_base, -- reloc_base_end); -+ grub_dprintf ("chain", "relocate_coff(): reloc_base %p reloc_base_end %p\n", -+ reloc_base, reloc_base_end); - - if (!reloc_base && !reloc_base_end) - return GRUB_EFI_SUCCESS; -@@ -507,12 +507,13 @@ handle_image (void *data, grub_efi_uint32_t datasize) - grub_efi_status_t efi_status; - char *buffer = NULL; - char *buffer_aligned = NULL; -- grub_efi_uint32_t i, size; -+ grub_efi_uint32_t i; - struct grub_pe32_section_table *section; - char *base, *end; - pe_coff_loader_image_context_t context; - grub_uint32_t section_alignment; - grub_uint32_t buffer_size; -+ int found_entry_point = 0; - - b = grub_efi_system_table->boot_services; - -@@ -526,8 +527,28 @@ handle_image (void *data, grub_efi_uint32_t datasize) - goto error_exit; - } - -+ /* -+ * The spec says, uselessly, of SectionAlignment: -+ * ===== -+ * The alignment (in bytes) of sections when they are loaded into -+ * memory. It must be greater than or equal to FileAlignment. The -+ * default is the page size for the architecture. -+ * ===== -+ * Which doesn't tell you whose responsibility it is to enforce the -+ * "default", or when. It implies that the value in the field must -+ * be > FileAlignment (also poorly defined), but it appears visual -+ * studio will happily write 512 for FileAlignment (its default) and -+ * 0 for SectionAlignment, intending to imply PAGE_SIZE. -+ * -+ * We only support one page size, so if it's zero, nerf it to 4096. -+ */ - section_alignment = context.section_alignment; -+ if (section_alignment == 0) -+ section_alignment = 4096; -+ - buffer_size = context.image_size + section_alignment; -+ grub_dprintf ("chain", "image size is %08lx, datasize is %08x\n", -+ context.image_size, datasize); - - efi_status = efi_call_3 (b->allocate_pool, GRUB_EFI_LOADER_DATA, - buffer_size, (void**) &buffer); -@@ -539,7 +560,6 @@ handle_image (void *data, grub_efi_uint32_t datasize) - } - - buffer_aligned = (char *)ALIGN_UP ((grub_addr_t)buffer, section_alignment); -- - if (!buffer_aligned) - { - grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); -@@ -548,27 +568,62 @@ handle_image (void *data, grub_efi_uint32_t datasize) - - grub_memcpy (buffer_aligned, data, context.size_of_headers); - -+ entry_point = image_address (buffer_aligned, context.image_size, -+ context.entry_point); -+ -+ grub_dprintf ("chain", "entry_point: %p\n", entry_point); -+ if (!entry_point) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "invalid entry point"); -+ goto error_exit; -+ } -+ - char *reloc_base, *reloc_base_end; -- reloc_base = image_address (buffer_aligned, datasize, -+ grub_dprintf ("chain", "reloc_dir: %p reloc_size: 0x%08x\n", -+ (void *)(unsigned long long)context.reloc_dir->rva, -+ context.reloc_dir->size); -+ reloc_base = image_address (buffer_aligned, context.image_size, - context.reloc_dir->rva); - /* RelocBaseEnd here is the address of the last byte of the table */ -- reloc_base_end = image_address (buffer_aligned, datasize, -+ reloc_base_end = image_address (buffer_aligned, context.image_size, - context.reloc_dir->rva - + context.reloc_dir->size - 1); -+ grub_dprintf ("chain", "reloc_base: %p reloc_base_end: %p\n", -+ reloc_base, reloc_base_end); -+ - struct grub_pe32_section_table *reloc_section = NULL; - - section = context.first_section; - for (i = 0; i < context.number_of_sections; i++, section++) - { -- size = section->virtual_size; -- if (size > section->raw_data_size) -- size = section->raw_data_size; -+ char name[9]; - - base = image_address (buffer_aligned, context.image_size, - section->virtual_address); - end = image_address (buffer_aligned, context.image_size, -- section->virtual_address + size - 1); -+ section->virtual_address + section->virtual_size -1); - -+ grub_strncpy(name, section->name, 9); -+ name[8] = '\0'; -+ grub_dprintf ("chain", "Section %d \"%s\" at %p..%p\n", i, -+ name, base, end); -+ -+ if (end < base) -+ { -+ grub_dprintf ("chain", " base is %p but end is %p... bad.\n", -+ base, end); -+ grub_error (GRUB_ERR_BAD_ARGUMENT, -+ "Image has invalid negative size"); -+ goto error_exit; -+ } -+ -+ if (section->virtual_address <= context.entry_point && -+ (section->virtual_address + section->raw_data_size - 1) -+ > context.entry_point) -+ { -+ found_entry_point++; -+ grub_dprintf ("chain", " section contains entry point\n"); -+ } - - /* We do want to process .reloc, but it's often marked - * discardable, so we don't want to memcpy it. */ -@@ -587,21 +642,46 @@ handle_image (void *data, grub_efi_uint32_t datasize) - if (section->raw_data_size && section->virtual_size && - base && end && reloc_base == base && reloc_base_end == end) - { -+ grub_dprintf ("chain", " section is relocation section\n"); - reloc_section = section; - } -+ else -+ { -+ grub_dprintf ("chain", " section is not reloc section?\n"); -+ grub_dprintf ("chain", " rds: 0x%08x, vs: %08x\n", -+ section->raw_data_size, section->virtual_size); -+ grub_dprintf ("chain", " base: %p end: %p\n", base, end); -+ grub_dprintf ("chain", " reloc_base: %p reloc_base_end: %p\n", -+ reloc_base, reloc_base_end); -+ } - } - -- if (section->characteristics && GRUB_PE32_SCN_MEM_DISCARDABLE) -- continue; -+ grub_dprintf ("chain", " Section characteristics are %08x\n", -+ section->characteristics); -+ grub_dprintf ("chain", " Section virtual size: %08x\n", -+ section->virtual_size); -+ grub_dprintf ("chain", " Section raw_data size: %08x\n", -+ section->raw_data_size); -+ if (section->characteristics & GRUB_PE32_SCN_MEM_DISCARDABLE) -+ { -+ grub_dprintf ("chain", " Discarding section\n"); -+ continue; -+ } - - if (!base || !end) - { -+ grub_dprintf ("chain", " section is invalid\n"); - grub_error (GRUB_ERR_BAD_ARGUMENT, "Invalid section size"); - goto error_exit; - } - -- if (section->virtual_address < context.size_of_headers || -- section->raw_data_offset < context.size_of_headers) -+ if (section->characteristics & GRUB_PE32_SCN_CNT_UNINITIALIZED_DATA) -+ { -+ if (section->raw_data_size != 0) -+ grub_dprintf ("chain", " UNINITIALIZED_DATA section has data?\n"); -+ } -+ else if (section->virtual_address < context.size_of_headers || -+ section->raw_data_offset < context.size_of_headers) - { - grub_error (GRUB_ERR_BAD_ARGUMENT, - "Section %d is inside image headers", i); -@@ -609,13 +689,24 @@ handle_image (void *data, grub_efi_uint32_t datasize) - } - - if (section->raw_data_size > 0) -- grub_memcpy (base, (grub_efi_uint8_t*)data + section->raw_data_offset, -- size); -+ { -+ grub_dprintf ("chain", " copying 0x%08x bytes to %p\n", -+ section->raw_data_size, base); -+ grub_memcpy (base, -+ (grub_efi_uint8_t*)data + section->raw_data_offset, -+ section->raw_data_size); -+ } - -- if (size < section->virtual_size) -- grub_memset (base + size, 0, section->virtual_size - size); -+ if (section->raw_data_size < section->virtual_size) -+ { -+ grub_dprintf ("chain", " padding with 0x%08x bytes at %p\n", -+ section->virtual_size - section->raw_data_size, -+ base + section->raw_data_size); -+ grub_memset (base + section->raw_data_size, 0, -+ section->virtual_size - section->raw_data_size); -+ } - -- grub_dprintf ("chain", "copied section %s\n", section->name); -+ grub_dprintf ("chain", " finished section %s\n", name); - } - - /* 5 == EFI_IMAGE_DIRECTORY_ENTRY_BASERELOC */ -@@ -638,12 +729,15 @@ handle_image (void *data, grub_efi_uint32_t datasize) - } - } - -- entry_point = image_address (buffer_aligned, context.image_size, -- context.entry_point); -- -- if (!entry_point) -+ if (!found_entry_point) - { -- grub_error (GRUB_ERR_BAD_ARGUMENT, "invalid entry point"); -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "entry point is not within sections"); -+ goto error_exit; -+ } -+ if (found_entry_point > 1) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "%d sections contain entry point", -+ found_entry_point); - goto error_exit; - } - -@@ -661,26 +755,24 @@ handle_image (void *data, grub_efi_uint32_t datasize) - li->load_options_size = cmdline_len; - li->file_path = grub_efi_get_media_file_path (file_path); - li->device_handle = dev_handle; -- if (li->file_path) -- { -- grub_printf ("file path: "); -- grub_efi_print_device_path (li->file_path); -- } -- else -+ if (!li->file_path) - { - grub_error (GRUB_ERR_UNKNOWN_DEVICE, "no matching file path found"); - goto error_exit; - } - -+ grub_dprintf ("chain", "booting via entry point\n"); - efi_status = efi_call_2 (entry_point, grub_efi_image_handle, - grub_efi_system_table); - -+ grub_dprintf ("chain", "entry_point returned %ld\n", efi_status); - grub_memcpy (li, &li_bak, sizeof (grub_efi_loaded_image_t)); - efi_status = efi_call_1 (b->free_pool, buffer); - - return 1; - - error_exit: -+ grub_dprintf ("chain", "error_exit: grub_errno: %d\n", grub_errno); - if (buffer) - efi_call_1 (b->free_pool, buffer); - -diff --git a/include/grub/efi/pe32.h b/include/grub/efi/pe32.h -index f79782e1b..8396bde49 100644 ---- a/include/grub/efi/pe32.h -+++ b/include/grub/efi/pe32.h -@@ -227,12 +227,18 @@ struct grub_pe32_section_table - grub_uint32_t characteristics; - }; - -+#define GRUB_PE32_SCN_TYPE_NO_PAD 0x00000008 - #define GRUB_PE32_SCN_CNT_CODE 0x00000020 - #define GRUB_PE32_SCN_CNT_INITIALIZED_DATA 0x00000040 --#define GRUB_PE32_SCN_MEM_DISCARDABLE 0x02000000 --#define GRUB_PE32_SCN_MEM_EXECUTE 0x20000000 --#define GRUB_PE32_SCN_MEM_READ 0x40000000 --#define GRUB_PE32_SCN_MEM_WRITE 0x80000000 -+#define GRUB_PE32_SCN_CNT_UNINITIALIZED_DATA 0x00000080 -+#define GRUB_PE32_SCN_LNK_OTHER 0x00000100 -+#define GRUB_PE32_SCN_LNK_INFO 0x00000200 -+#define GRUB_PE32_SCN_LNK_REMOVE 0x00000800 -+#define GRUB_PE32_SCN_LNK_COMDAT 0x00001000 -+#define GRUB_PE32_SCN_GPREL 0x00008000 -+#define GRUB_PE32_SCN_MEM_16BIT 0x00020000 -+#define GRUB_PE32_SCN_MEM_LOCKED 0x00040000 -+#define GRUB_PE32_SCN_MEM_PRELOAD 0x00080000 - - #define GRUB_PE32_SCN_ALIGN_1BYTES 0x00100000 - #define GRUB_PE32_SCN_ALIGN_2BYTES 0x00200000 -@@ -241,10 +247,28 @@ struct grub_pe32_section_table - #define GRUB_PE32_SCN_ALIGN_16BYTES 0x00500000 - #define GRUB_PE32_SCN_ALIGN_32BYTES 0x00600000 - #define GRUB_PE32_SCN_ALIGN_64BYTES 0x00700000 -+#define GRUB_PE32_SCN_ALIGN_128BYTES 0x00800000 -+#define GRUB_PE32_SCN_ALIGN_256BYTES 0x00900000 -+#define GRUB_PE32_SCN_ALIGN_512BYTES 0x00A00000 -+#define GRUB_PE32_SCN_ALIGN_1024BYTES 0x00B00000 -+#define GRUB_PE32_SCN_ALIGN_2048BYTES 0x00C00000 -+#define GRUB_PE32_SCN_ALIGN_4096BYTES 0x00D00000 -+#define GRUB_PE32_SCN_ALIGN_8192BYTES 0x00E00000 - - #define GRUB_PE32_SCN_ALIGN_SHIFT 20 - #define GRUB_PE32_SCN_ALIGN_MASK 7 - -+#define GRUB_PE32_SCN_LNK_NRELOC_OVFL 0x01000000 -+#define GRUB_PE32_SCN_MEM_DISCARDABLE 0x02000000 -+#define GRUB_PE32_SCN_MEM_NOT_CACHED 0x04000000 -+#define GRUB_PE32_SCN_MEM_NOT_PAGED 0x08000000 -+#define GRUB_PE32_SCN_MEM_SHARED 0x10000000 -+#define GRUB_PE32_SCN_MEM_EXECUTE 0x20000000 -+#define GRUB_PE32_SCN_MEM_READ 0x40000000 -+#define GRUB_PE32_SCN_MEM_WRITE 0x80000000 -+ -+ -+ - #define GRUB_PE32_SIGNATURE_SIZE 4 - - struct grub_pe32_header diff --git a/patches/grub/2.02/linuxefi_use_dev_chainloader_target.patch b/patches/grub/2.02/linuxefi_use_dev_chainloader_target.patch deleted file mode 100644 index 16545e2ec..000000000 --- a/patches/grub/2.02/linuxefi_use_dev_chainloader_target.patch +++ /dev/null @@ -1,40 +0,0 @@ -From b50288d7b1413d72ffa9dbe8faf2a7b025d78143 Mon Sep 17 00:00:00 2001 -From: Raymund Will -Date: Fri, 10 Apr 2015 01:45:02 -0400 -Subject: Use device part of chainloader target, if present. - -Otherwise chainloading is restricted to '$root', which might not even -be readable by EFI! - -v1. use grub_file_get_device_name() to get device name - -Signed-off-by: Michael Chang -Signed-off-by: Peter Jones - -Origin: vendor, https://github.com/rhboot/grub2/commit/f8e5b67d99449b8cb9cc45237adb839406f2db97 -Forwarded: no -Last-Update: 2017-11-01 - -Patch-Name: linuxefi_use_dev_chainloader_target.patch ---- - grub-core/loader/efi/chainloader.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index adc856366..14ce6ddd7 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -223,8 +223,11 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - if (! file) - goto fail; - -- /* Get the root device's device path. */ -- dev = grub_device_open (0); -+ /* Get the device path from filename. */ -+ char *devname = grub_file_get_device_name (filename); -+ dev = grub_device_open (devname); -+ if (devname) -+ grub_free (devname); - if (! dev) - goto fail; - diff --git a/patches/grub/2.02/maybe_quiet.patch b/patches/grub/2.02/maybe_quiet.patch deleted file mode 100644 index 051a1abb5..000000000 --- a/patches/grub/2.02/maybe_quiet.patch +++ /dev/null @@ -1,380 +0,0 @@ -From d2063145edd759756d2f7dbde3feb9581882c266 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:26 +0000 -Subject: Add configure option to reduce visual clutter at boot time - -If this option is enabled, then do all of the following: - -Don't display introductory message about line editing unless we're -actually offering a shell prompt. (This is believed to be a workaround -for a different bug. We'll go with this for now, but will drop this in -favour of a better fix upstream if somebody figures out what that is.) - -Don't clear the screen just before booting if we never drew the menu in -the first place. - -Remove verbose messages printed before reading configuration. In some -ways this is awkward because it makes debugging harder, but it's a -requirement for a smooth-looking boot process; we may be able to do -better in future. Upstream doesn't want this, though. - -Disable the cursor as well, for similar reasons of tidiness. - -Suppress kernel/initrd progress messages, except in recovery mode. - -Suppress "GRUB loading" message unless Shift is held down. Upstream -doesn't want this, as it makes debugging harder. Ubuntu wants it to -provide a cleaner boot experience. - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/386922 -Bug-Ubuntu: https://bugs.launchpad.net/bugs/861048 -Forwarded: (partial) http://lists.gnu.org/archive/html/grub-devel/2009-09/msg00056.html -Last-Update: 2014-01-03 - -Patch-Name: maybe_quiet.patch ---- - config.h.in | 2 ++ - configure.ac | 16 ++++++++++++++++ - grub-core/boot/i386/pc/boot.S | 11 +++++++++++ - grub-core/boot/i386/pc/diskboot.S | 26 ++++++++++++++++++++++++++ - grub-core/kern/main.c | 17 +++++++++++++++++ - grub-core/kern/rescue_reader.c | 2 ++ - grub-core/normal/main.c | 11 +++++++++++ - grub-core/normal/menu.c | 17 +++++++++++++++-- - util/grub.d/10_linux.in | 15 +++++++++++---- - 9 files changed, 111 insertions(+), 6 deletions(-) - -diff --git a/config.h.in b/config.h.in -index 9e8f9911b..d2c4ce8e5 100644 ---- a/config.h.in -+++ b/config.h.in -@@ -12,6 +12,8 @@ - /* Define to 1 to enable disk cache statistics. */ - #define DISK_CACHE_STATS @DISK_CACHE_STATS@ - #define BOOT_TIME_STATS @BOOT_TIME_STATS@ -+/* Define to 1 to make GRUB quieter at boot time. */ -+#define QUIET_BOOT @QUIET_BOOT@ - - /* We don't need those. */ - #define MINILZO_CFG_SKIP_LZO_PTR 1 -diff --git a/configure.ac b/configure.ac -index d4978ad5d..dd2fbd01c 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1817,6 +1817,17 @@ else - fi - AC_SUBST([LIBNVPAIR]) - -+AC_ARG_ENABLE([quiet-boot], -+ [AS_HELP_STRING([--enable-quiet-boot], -+ [emit fewer messages at boot time (default=no)])], -+ [], [enable_quiet_boot=no]) -+if test x"$enable_quiet_boot" = xyes ; then -+ QUIET_BOOT=1 -+else -+ QUIET_BOOT=0 -+fi -+AC_SUBST([QUIET_BOOT]) -+ - LIBS="" - - AC_SUBST([FONT_SOURCE]) -@@ -2081,5 +2092,10 @@ echo "Without liblzma (no support for XZ-compressed mips images) ($liblzma_excus - else - echo "With liblzma from $LIBLZMA (support for XZ-compressed mips images)" - fi -+if [ x"$enable_quiet_boot" = xyes ]; then -+echo With quiet boot: Yes -+else -+echo With quiet boot: No -+fi - echo "*******************************************************" - ] -diff --git a/grub-core/boot/i386/pc/boot.S b/grub-core/boot/i386/pc/boot.S -index 2bd0b2d28..451c8bea5 100644 ---- a/grub-core/boot/i386/pc/boot.S -+++ b/grub-core/boot/i386/pc/boot.S -@@ -19,6 +19,9 @@ - - #include - #include -+#if defined(QUIET_BOOT) && !defined(HYBRID_BOOT) -+#include -+#endif - - /* - * defines for the code go here -@@ -249,9 +252,17 @@ real_start: - /* save drive reference first thing! */ - pushw %dx - -+#if defined(QUIET_BOOT) && !defined(HYBRID_BOOT) -+ /* is either shift key held down? */ -+ movw $(GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR + 0x17), %bx -+ testb $3, (%bx) -+ jz 2f -+#endif -+ - /* print a notification message on the screen */ - MSG(notification_string) - -+2: - /* set %si to the disk address packet */ - movw $disk_address_packet, %si - -diff --git a/grub-core/boot/i386/pc/diskboot.S b/grub-core/boot/i386/pc/diskboot.S -index 1ee4cf5b2..31096ce5a 100644 ---- a/grub-core/boot/i386/pc/diskboot.S -+++ b/grub-core/boot/i386/pc/diskboot.S -@@ -18,6 +18,9 @@ - - #include - #include -+#ifdef QUIET_BOOT -+#include -+#endif - - /* - * defines for the code go here -@@ -25,6 +28,12 @@ - - #define MSG(x) movw $x, %si; call LOCAL(message) - -+#ifdef QUIET_BOOT -+#define SILENT(x) call LOCAL(check_silent); jz LOCAL(x) -+#else -+#define SILENT(x) -+#endif -+ - .file "diskboot.S" - - .text -@@ -50,11 +59,14 @@ _start: - /* save drive reference first thing! */ - pushw %dx - -+ SILENT(after_notification_string) -+ - /* print a notification message on the screen */ - pushw %si - MSG(notification_string) - popw %si - -+LOCAL(after_notification_string): - /* this sets up for the first run through "bootloop" */ - movw $LOCAL(firstlist), %di - -@@ -279,7 +291,10 @@ LOCAL(copy_buffer): - /* restore addressing regs and print a dot with correct DS - (MSG modifies SI, which is saved, and unused AX and BX) */ - popw %ds -+ SILENT(after_notification_step) - MSG(notification_step) -+ -+LOCAL(after_notification_step): - popa - - /* check if finished with this dataset */ -@@ -295,8 +310,11 @@ LOCAL(copy_buffer): - /* END OF MAIN LOOP */ - - LOCAL(bootit): -+ SILENT(after_notification_done) - /* print a newline */ - MSG(notification_done) -+ -+LOCAL(after_notification_done): - popw %dx /* this makes sure %dl is our "boot" drive */ - ljmp $0, $(GRUB_BOOT_MACHINE_KERNEL_ADDR + 0x200) - -@@ -320,6 +338,14 @@ LOCAL(general_error): - /* go here when you need to stop the machine hard after an error condition */ - LOCAL(stop): jmp LOCAL(stop) - -+#ifdef QUIET_BOOT -+LOCAL(check_silent): -+ /* is either shift key held down? */ -+ movw $(GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR + 0x17), %bx -+ testb $3, (%bx) -+ ret -+#endif -+ - notification_string: .asciz "loading" - - notification_step: .asciz "." -diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c -index 9cad0c448..5613cd553 100644 ---- a/grub-core/kern/main.c -+++ b/grub-core/kern/main.c -@@ -264,15 +264,25 @@ reclaim_module_space (void) - void __attribute__ ((noreturn)) - grub_main (void) - { -+#ifdef QUIET_BOOT -+ struct grub_term_output *term; -+#endif -+ - /* First of all, initialize the machine. */ - grub_machine_init (); - - grub_boot_time ("After machine init."); - -+#ifdef QUIET_BOOT -+ /* Disable the cursor until we need it. */ -+ FOR_ACTIVE_TERM_OUTPUTS(term) -+ grub_term_setcursor (term, 0); -+#else - /* Hello. */ - grub_setcolorstate (GRUB_TERM_COLOR_HIGHLIGHT); - grub_printf ("Welcome to GRUB!\n\n"); - grub_setcolorstate (GRUB_TERM_COLOR_STANDARD); -+#endif - - grub_load_config (); - -@@ -308,5 +318,12 @@ grub_main (void) - grub_boot_time ("After execution of embedded config. Attempt to go to normal mode"); - - grub_load_normal_mode (); -+ -+#ifdef QUIET_BOOT -+ /* If we have to enter rescue mode, enable the cursor again. */ -+ FOR_ACTIVE_TERM_OUTPUTS(term) -+ grub_term_setcursor (term, 1); -+#endif -+ - grub_rescue_run (); - } -diff --git a/grub-core/kern/rescue_reader.c b/grub-core/kern/rescue_reader.c -index dcd7d4439..03826cf63 100644 ---- a/grub-core/kern/rescue_reader.c -+++ b/grub-core/kern/rescue_reader.c -@@ -78,7 +78,9 @@ grub_rescue_read_line (char **line, int cont, - void __attribute__ ((noreturn)) - grub_rescue_run (void) - { -+#ifdef QUIET_BOOT - grub_printf ("Entering rescue mode...\n"); -+#endif - - while (1) - { -diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index 78a70a8bf..e924f6448 100644 ---- a/grub-core/normal/main.c -+++ b/grub-core/normal/main.c -@@ -389,6 +389,15 @@ static grub_err_t - grub_normal_read_line_real (char **line, int cont, int nested) - { - const char *prompt; -+#ifdef QUIET_BOOT -+ static int displayed_intro; -+ -+ if (! displayed_intro) -+ { -+ grub_normal_reader_init (nested); -+ displayed_intro = 1; -+ } -+#endif - - if (cont) - /* TRANSLATORS: it's command line prompt. */ -@@ -441,7 +450,9 @@ grub_cmdline_run (int nested, int force_auth) - return; - } - -+#ifndef QUIET_BOOT - grub_normal_reader_init (nested); -+#endif - - while (1) - { -diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c -index 9d0ad4c95..1f3447ad3 100644 ---- a/grub-core/normal/menu.c -+++ b/grub-core/normal/menu.c -@@ -826,12 +826,18 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot) - - /* Callback invoked immediately before a menu entry is executed. */ - static void --notify_booting (grub_menu_entry_t entry, -+notify_booting (grub_menu_entry_t entry -+#ifdef QUIET_BOOT -+ __attribute__((unused)) -+#endif -+ , - void *userdata __attribute__((unused))) - { -+#ifndef QUIET_BOOT - grub_printf (" "); - grub_printf_ (N_("Booting `%s'"), entry->title); - grub_printf ("\n\n"); -+#endif - } - - /* Callback invoked when a default menu entry executed because of a timeout -@@ -879,6 +885,9 @@ show_menu (grub_menu_t menu, int nested, int autobooted) - int boot_entry; - grub_menu_entry_t e; - int auto_boot; -+#ifdef QUIET_BOOT -+ int initial_timeout = grub_menu_get_timeout (); -+#endif - - boot_entry = run_menu (menu, nested, &auto_boot); - if (boot_entry < 0) -@@ -888,7 +897,11 @@ show_menu (grub_menu_t menu, int nested, int autobooted) - if (! e) - continue; /* Menu is empty. */ - -- grub_cls (); -+#ifdef QUIET_BOOT -+ /* Only clear the screen if we drew the menu in the first place. */ -+ if (initial_timeout != 0) -+#endif -+ grub_cls (); - - if (auto_boot) - grub_menu_execute_with_fallback (menu, e, autobooted, -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 60467460b..67d57ecfd 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -21,5 +21,6 @@ prefix="@prefix@" - exec_prefix="@exec_prefix@" - datarootdir="@datarootdir@" -+quiet_boot="@QUIET_BOOT@" - - . "$pkgdatadir/grub-mkconfig_lib" - -@@ -148,10 +149,12 @@ linux_entry () - fi - printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/" - fi -- message="$(gettext_printf "Loading Linux %s ..." ${version})" -- sed "s/^/$submenu_indentation/" << EOF -+ if [ x"$quiet_boot" = x0 ] || [ x"$type" != xsimple ]; then -+ message="$(gettext_printf "Loading Linux %s ..." ${version})" -+ sed "s/^/$submenu_indentation/" << EOF - echo '$(echo "$message" | grub_quote)' - EOF -+ fi - if test -d /sys/firmware/efi && test -e "${linux}.efi.signed"; then - sed "s/^/$submenu_indentation/" << EOF - linux ${rel_dirname}/${basename}.efi.signed root=${linux_root_device_thisversion} ro ${args} -@@ -163,9 +166,13 @@ EOF - fi - if test -n "${initrd}" ; then - # TRANSLATORS: ramdisk isn't identifier. Should be translated. -- message="$(gettext_printf "Loading initial ramdisk ...")" -- sed "s/^/$submenu_indentation/" << EOF -+ if [ x"$quiet_boot" = x0 ] || [ x"$type" != xsimple ]; then -+ message="$(gettext_printf "Loading initial ramdisk ...")" -+ sed "s/^/$submenu_indentation/" << EOF - echo '$(echo "$message" | grub_quote)' -+EOF -+ fi -+ sed "s/^/$submenu_indentation/" << EOF - initrd ${rel_dirname}/${initrd} - EOF - fi diff --git a/patches/grub/2.02/misc-fix-invalid-char-strtol.patch b/patches/grub/2.02/misc-fix-invalid-char-strtol.patch deleted file mode 100644 index e87bd0621..000000000 --- a/patches/grub/2.02/misc-fix-invalid-char-strtol.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 3a3252cbab24c63aacd2980045345ed84eac1b2b Mon Sep 17 00:00:00 2001 -From: Aaron Miller -Date: Thu, 27 Oct 2016 17:33:07 -0400 -Subject: misc: fix invalid character recongition in strto*l - -Would previously allow digits larger than the base and didn't check that -subtracting the difference from 0-9 to lowercase letters for characters -larger than 9 didn't result in a value lower than 9, which allowed the -parses: ` = 9, _ = 8, ^ = 7, ] = 6, \ = 5, and [ = 4 - -Patch-Name: misc-fix-invalid-char-strtol.patch ---- - grub-core/kern/misc.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index d1a54df6c..3a14d679e 100644 ---- a/grub-core/kern/misc.c -+++ b/grub-core/kern/misc.c -@@ -394,9 +394,13 @@ grub_strtoull (const char *str, char **end, int base) - if (digit > 9) - { - digit += '0' - 'a' + 10; -- if (digit >= (unsigned long) base) -+ /* digit <= 9 check is needed to keep chars larger than -+ '9' but less than 'a' from being read as numbers */ -+ if (digit >= (unsigned long) base || digit <= 9) - break; - } -+ if (digit >= (unsigned long) base) -+ break; - - found = 1; - diff --git a/patches/grub/2.02/mkconfig_loopback.patch b/patches/grub/2.02/mkconfig_loopback.patch deleted file mode 100644 index 60642f916..000000000 --- a/patches/grub/2.02/mkconfig_loopback.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 1193f4dfa4ad36e1cd5301522473da3c8a4baab2 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:00 +0000 -Subject: Handle filesystems loop-mounted on file images - -Improve prepare_grub_to_access_device to emit appropriate commands for -such filesystems, and ignore them in Linux grub.d scripts. - -This is needed for Ubuntu's Wubi installation method. - -This patch isn't inherently Debian/Ubuntu-specific. losetup and -/proc/mounts are Linux-specific, though, so we might need to refine this -before sending it upstream. The changes to the Linux grub.d scripts -might be better handled by integrating 10_lupin properly instead. - -Patch-Name: mkconfig_loopback.patch ---- - util/grub-mkconfig_lib.in | 24 ++++++++++++++++++++++++ - util/grub.d/10_linux.in | 5 +++++ - util/grub.d/20_linux_xen.in | 5 +++++ - 3 files changed, 34 insertions(+) - -diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index 3a4684e78..9ee60d5fa 100644 ---- a/util/grub-mkconfig_lib.in -+++ b/util/grub-mkconfig_lib.in -@@ -133,6 +133,22 @@ prepare_grub_to_access_device () - esac - done - -+ loop_file= -+ case $1 in -+ /dev/loop/*|/dev/loop[0-9]) -+ grub_loop_device="${1#/dev/}" -+ loop_file=`losetup "$1" | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"` -+ case $loop_file in -+ /dev/*) ;; -+ *) -+ loop_device="$1" -+ shift -+ set -- `"${grub_probe}" --target=device "${loop_file}"` "$@" -+ ;; -+ esac -+ ;; -+ esac -+ - # Abstraction modules aren't auto-loaded. - abstraction="`"${grub_probe}" --device $@ --target=abstraction`" - for module in ${abstraction} ; do -@@ -165,6 +181,14 @@ prepare_grub_to_access_device () - echo "fi" - fi - IFS="$old_ifs" -+ -+ if [ "x${loop_file}" != x ]; then -+ loop_mountpoint="$(awk '"'${loop_file}'" ~ "^"$2 && $2 != "/" { print $2 }' /proc/mounts | tail -n1)" -+ if [ "x${loop_mountpoint}" != x ]; then -+ echo "loopback ${grub_loop_device} ${loop_file#$loop_mountpoint}" -+ echo "set root=(${grub_loop_device})" -+ fi -+ fi - } - - grub_get_device_id () -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index c34d470c9..5ff76f59a 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -40,6 +40,11 @@ fi - case ${GRUB_DEVICE} in - /dev/loop/*|/dev/loop[0-9]) - GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"` -+ # We can't cope with devices loop-mounted from files here. -+ case ${GRUB_DEVICE} in -+ /dev/*) ;; -+ *) exit 0 ;; -+ esac - ;; - esac - -diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index c48af948d..af05bd276 100644 ---- a/util/grub.d/20_linux_xen.in -+++ b/util/grub.d/20_linux_xen.in -@@ -40,6 +40,11 @@ fi - case ${GRUB_DEVICE} in - /dev/loop/*|/dev/loop[0-9]) - GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"` -+ # We can't cope with devices loop-mounted from files here. -+ case ${GRUB_DEVICE} in -+ /dev/*) ;; -+ *) exit 0 ;; -+ esac - ;; - esac - diff --git a/patches/grub/2.02/mkconfig_mid_upgrade.patch b/patches/grub/2.02/mkconfig_mid_upgrade.patch deleted file mode 100644 index 39effa071..000000000 --- a/patches/grub/2.02/mkconfig_mid_upgrade.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 2f97dcc8caba3334636240f4417596c5ac27cc00 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:03 +0000 -Subject: Bail out if trying to run grub-mkconfig during upgrade to 2.00 - -Since files in /etc/grub.d/ are conffiles, they are not put in place -until grub-common is configured, meaning that they may be out of sync -with the parts of grub-mkconfig that reside in /usr/. In GRUB 1.99, -/etc/grub.d/00_header contained a reference to ${GRUB_PREFIX}/video.lst. -This and other code from 1.99 breaks with 2.00's grub-mkconfig. -Deferring this to when grub-PLATFORM.postinst eventually runs is safe -and avoids this problem. - -Forwarded: no -Last-Update: 2013-12-25 - -Patch-Name: mkconfig_mid_upgrade.patch ---- - util/grub-mkconfig.in | 7 +++++++ - 1 file changed, 7 insertions(+) - -diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index 54fbe5288..99ba7acba 100644 ---- a/util/grub-mkconfig.in -+++ b/util/grub-mkconfig.in -@@ -102,6 +102,13 @@ do - esac - done - -+if fgrep -qs '${GRUB_PREFIX}/video.lst' "${grub_mkconfig_dir}/00_header"; then -+ echo "GRUB >= 2.00 has been unpacked but not yet configured." >&2 -+ echo "grub-mkconfig will not work until the upgrade is complete." >&2 -+ echo "It should run later as part of configuring the new GRUB packages." >&2 -+ exit 0 -+fi -+ - if [ "x$EUID" = "x" ] ; then - EUID=`id -u` - fi diff --git a/patches/grub/2.02/mkconfig_nonexistent_loopback.patch b/patches/grub/2.02/mkconfig_nonexistent_loopback.patch deleted file mode 100644 index ac4c769a1..000000000 --- a/patches/grub/2.02/mkconfig_nonexistent_loopback.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 9e93c5490a5275ec97858de653adb0026ecb506c Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:08 +0000 -Subject: Avoid getting confused by inaccessible loop device backing paths - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/938724 -Forwarded: no -Last-Update: 2013-12-20 - -Patch-Name: mkconfig_nonexistent_loopback.patch ---- - util/grub-mkconfig_lib.in | 2 +- - util/grub.d/30_os-prober.in | 9 +++++---- - 2 files changed, 6 insertions(+), 5 deletions(-) - -diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index 9ee60d5fa..2c9743052 100644 ---- a/util/grub-mkconfig_lib.in -+++ b/util/grub-mkconfig_lib.in -@@ -143,7 +143,7 @@ prepare_grub_to_access_device () - *) - loop_device="$1" - shift -- set -- `"${grub_probe}" --target=device "${loop_file}"` "$@" -+ set -- `"${grub_probe}" --target=device "${loop_file}"` "$@" || return 0 - ;; - esac - ;; -diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in -index 775ceb2e0..b7e1147c4 100644 ---- a/util/grub.d/30_os-prober.in -+++ b/util/grub.d/30_os-prober.in -@@ -219,6 +219,11 @@ EOF - LINITRD="${LINITRD#/boot}" - fi - -+ if [ -z "${prepare_boot_cache}" ]; then -+ prepare_boot_cache="$(prepare_grub_to_access_device ${LBOOT} | grub_add_tab)" -+ [ "${prepare_boot_cache}" ] || continue -+ fi -+ - onstr="$(gettext_printf "(on %s)" "${DEVICE}")" - recovery_params="$(echo "${LPARAMS}" | grep 'single\|recovery')" || true - counter=1 -@@ -230,10 +235,6 @@ EOF - fi - used_osprober_linux_ids="$used_osprober_linux_ids 'osprober-gnulinux-$LKERNEL-${recovery_params}-$counter-$boot_device_id'" - -- if [ -z "${prepare_boot_cache}" ]; then -- prepare_boot_cache="$(prepare_grub_to_access_device ${LBOOT} | grub_add_tab)" -- fi -- - if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then - cat << EOF - menuentry '$(echo "$OS $onstr" | grub_quote)' $CLASS --class gnu-linux --class gnu --class os \$menuentry_id_option 'osprober-gnulinux-simple-$boot_device_id' { diff --git a/patches/grub/2.02/mkconfig_other_inits.patch b/patches/grub/2.02/mkconfig_other_inits.patch deleted file mode 100644 index fab9bedd6..000000000 --- a/patches/grub/2.02/mkconfig_other_inits.patch +++ /dev/null @@ -1,90 +0,0 @@ -From fe53371a0cc47533ec8231e5454711b6e12bd0a0 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Sat, 3 Jan 2015 12:04:59 +0000 -Subject: Generate alternative init entries in advanced menu - -Add fallback boot entries for alternative installed init systems. Based -on patches from Michael Biebl and Didier Roche. - -Bug-Debian: https://bugs.debian.org/757298 -Bug-Debian: https://bugs.debian.org/773173 -Forwarded: no -Last-Update: 2017-06-23 - -Patch-Name: mkconfig_other_inits.patch ---- - util/grub.d/10_linux.in | 10 ++++++++++ - util/grub.d/20_linux_xen.in | 11 +++++++++++ - 2 files changed, 21 insertions(+) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index d344f05e6..4cf321c54 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -32,6 +32,7 @@ export TEXTDOMAIN=@PACKAGE@ - export TEXTDOMAINDIR="@localedir@" - - CLASS="--class gnu-linux --class gnu --class os" -+SUPPORTED_INITS="sysvinit:/lib/sysvinit/init systemd:/lib/systemd/systemd upstart:/sbin/upstart" - - if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then - OS=GNU/Linux -@@ -117,6 +118,8 @@ linux_entry () - case $type in - recovery) - title="$(gettext_printf "%s, with Linux %s (%s)" "${os}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" ;; -+ init-*) -+ title="$(gettext_printf "%s, with Linux %s (%s)" "${os}" "${version}" "${type#init-}")" ;; - *) - title="$(gettext_printf "%s, with Linux %s" "${os}" "${version}")" ;; - esac -@@ -344,6 +347,13 @@ while [ "x$list" != "x" ] ; do - - linux_entry "${OS}" "${version}" advanced \ - "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" -+ for supported_init in ${SUPPORTED_INITS}; do -+ init_path="${supported_init#*:}" -+ if [ -x "${init_path}" ] && [ "$(readlink -f /sbin/init)" != "$(readlink -f "${init_path}")" ]; then -+ linux_entry "${OS}" "${version}" "init-${supported_init%%:*}" \ -+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} init=${init_path}" -+ fi -+ done - if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then - linux_entry "${OS}" "${version}" recovery \ - "${GRUB_CMDLINE_LINUX_RECOVERY} ${GRUB_CMDLINE_LINUX}" -diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index 62d663334..d3edb46df 100644 ---- a/util/grub.d/20_linux_xen.in -+++ b/util/grub.d/20_linux_xen.in -@@ -27,6 +27,7 @@ export TEXTDOMAIN=@PACKAGE@ - export TEXTDOMAINDIR="@localedir@" - - CLASS="--class gnu-linux --class gnu --class os --class xen" -+SUPPORTED_INITS="sysvinit:/lib/sysvinit/init systemd:/lib/systemd/systemd upstart:/sbin/upstart" - - if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then - OS=GNU/Linux -@@ -96,6 +97,8 @@ linux_entry () - if [ x$type != xsimple ] ; then - if [ x$type = xrecovery ] ; then - title="$(gettext_printf "%s, with Xen %s and Linux %s (%s)" "${os}" "${xen_version}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" -+ elif [ "${type#init-}" != "$type" ] ; then -+ title="$(gettext_printf "%s, with Xen %s and Linux %s (%s)" "${os}" "${xen_version}" "${version}" "${type#init-}")" - else - title="$(gettext_printf "%s, with Xen %s and Linux %s" "${os}" "${xen_version}" "${version}")" - fi -@@ -259,6 +262,14 @@ while [ "x${xen_list}" != "x" ] ; do - - linux_entry "${OS}" "${version}" "${xen_version}" advanced \ - "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" -+ for supported_init in ${SUPPORTED_INITS}; do -+ init_path="${supported_init#*:}" -+ if [ -x "${init_path}" ] && [ "$(readlink -f /sbin/init)" != "$(readlink -f "${init_path}")" ]; then -+ linux_entry "${OS}" "${version}" "${xen_version}" "init-${supported_init%%:*}" \ -+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} init=${init_path}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" -+ -+ fi -+ done - if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then - linux_entry "${OS}" "${version}" "${xen_version}" recovery \ - "single ${GRUB_CMDLINE_LINUX}" "${GRUB_CMDLINE_XEN}" diff --git a/patches/grub/2.02/mkconfig_recovery_title.patch b/patches/grub/2.02/mkconfig_recovery_title.patch deleted file mode 100644 index 7265e3044..000000000 --- a/patches/grub/2.02/mkconfig_recovery_title.patch +++ /dev/null @@ -1,130 +0,0 @@ -From f779d4dece1d0ad368efba62fcc0a3bead497222 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:33 +0000 -Subject: Add GRUB_RECOVERY_TITLE option - -This allows the controversial "recovery mode" text to be customised. - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1240360 -Forwarded: no -Last-Update: 2013-12-25 - -Patch-Name: mkconfig_recovery_title.patch ---- - docs/grub.texi | 5 +++++ - util/grub-mkconfig.in | 7 ++++++- - util/grub.d/10_hurd.in | 4 ++-- - util/grub.d/10_kfreebsd.in | 2 +- - util/grub.d/10_linux.in | 2 +- - util/grub.d/10_netbsd.in | 2 +- - util/grub.d/20_linux_xen.in | 2 +- - 7 files changed, 17 insertions(+), 7 deletions(-) - -diff --git a/docs/grub.texi b/docs/grub.texi -index 5b2a7bbb2..f1216d19d 100644 ---- a/docs/grub.texi -+++ b/docs/grub.texi -@@ -1504,6 +1504,11 @@ a console is restricted or limited. - This option is only effective when GRUB was configured with the - @option{--enable-quick-boot} option. - -+@item GRUB_RECOVERY_TITLE -+This option sets the English text of the string that will be displayed in -+parentheses to indicate that a boot option is provided to help users recover -+a broken system. The default is "recovery mode". -+ - @end table - - The following options are still accepted for compatibility with existing -diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index fac560464..ad716384b 100644 ---- a/util/grub-mkconfig.in -+++ b/util/grub-mkconfig.in -@@ -189,6 +189,10 @@ GRUB_ACTUAL_DEFAULT="$GRUB_DEFAULT" - - if [ "x${GRUB_ACTUAL_DEFAULT}" = "xsaved" ] ; then GRUB_ACTUAL_DEFAULT="`"${grub_editenv}" - list | sed -n '/^saved_entry=/ s,^saved_entry=,,p'`" ; fi - -+if [ "x${GRUB_RECOVERY_TITLE}" = "x" ]; then -+ GRUB_RECOVERY_TITLE="recovery mode" -+fi -+ - - # These are defined in this script, export them here so that user can - # override them. -@@ -240,7 +244,8 @@ export GRUB_DEFAULT \ - GRUB_BADRAM \ - GRUB_OS_PROBER_SKIP_LIST \ - GRUB_DISABLE_SUBMENU \ -- GRUB_RECORDFAIL_TIMEOUT -+ GRUB_RECORDFAIL_TIMEOUT \ -+ GRUB_RECOVERY_TITLE - - if test "x${grub_cfg}" != "x"; then - rm -f "${grub_cfg}.new" -diff --git a/util/grub.d/10_hurd.in b/util/grub.d/10_hurd.in -index 59a9a48a2..7fa3a3fbd 100644 ---- a/util/grub.d/10_hurd.in -+++ b/util/grub.d/10_hurd.in -@@ -88,8 +88,8 @@ hurd_entry () { - - if [ x$type != xsimple ] ; then - if [ x$type = xrecovery ] ; then -- title="$(gettext_printf "%s, with Hurd %s (recovery mode)" "${OS}" "${kernel_base}")" -- oldtitle="$OS using $kernel_base (recovery mode)" -+ title="$(gettext_printf "%s, with Hurd %s (%s)" "${OS}" "${kernel_base}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" -+ oldtitle="$OS using $kernel_base ($GRUB_RECOVERY_TITLE)" - else - title="$(gettext_printf "%s, with Hurd %s" "${OS}" "${kernel_base}")" - oldtitle="$OS using $kernel_base" -diff --git a/util/grub.d/10_kfreebsd.in b/util/grub.d/10_kfreebsd.in -index 9d8e8fd85..8301d361a 100644 ---- a/util/grub.d/10_kfreebsd.in -+++ b/util/grub.d/10_kfreebsd.in -@@ -76,7 +76,7 @@ kfreebsd_entry () - fi - if [ x$type != xsimple ] ; then - if [ x$type = xrecovery ] ; then -- title="$(gettext_printf "%s, with kFreeBSD %s (recovery mode)" "${os}" "${version}")" -+ title="$(gettext_printf "%s, with kFreeBSD %s (%s)" "${os}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" - else - title="$(gettext_printf "%s, with kFreeBSD %s" "${os}" "${version}")" - fi -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 18c859214..704e834d5 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -116,7 +116,7 @@ linux_entry () - if [ x$type != xsimple ] ; then - case $type in - recovery) -- title="$(gettext_printf "%s, with Linux %s (recovery mode)" "${os}" "${version}")" ;; -+ title="$(gettext_printf "%s, with Linux %s (%s)" "${os}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" ;; - *) - title="$(gettext_printf "%s, with Linux %s" "${os}" "${version}")" ;; - esac -diff --git a/util/grub.d/10_netbsd.in b/util/grub.d/10_netbsd.in -index 874f59969..bb29cc046 100644 ---- a/util/grub.d/10_netbsd.in -+++ b/util/grub.d/10_netbsd.in -@@ -102,7 +102,7 @@ netbsd_entry () - - if [ x$type != xsimple ] ; then - if [ x$type = xrecovery ] ; then -- title="$(gettext_printf "%s, with kernel %s (via %s, recovery mode)" "${OS}" "$(echo ${kernel} | sed -e 's,^.*/,,')" "${loader}")" -+ title="$(gettext_printf "%s, with kernel %s (via %s, %s)" "${OS}" "$(echo ${kernel} | sed -e 's,^.*/,,')" "${loader}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" - else - title="$(gettext_printf "%s, with kernel %s (via %s)" "${OS}" "$(echo ${kernel} | sed -e 's,^.*/,,')" "${loader}")" - fi -diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index af05bd276..62d663334 100644 ---- a/util/grub.d/20_linux_xen.in -+++ b/util/grub.d/20_linux_xen.in -@@ -95,7 +95,7 @@ linux_entry () - fi - if [ x$type != xsimple ] ; then - if [ x$type = xrecovery ] ; then -- title="$(gettext_printf "%s, with Xen %s and Linux %s (recovery mode)" "${os}" "${xen_version}" "${version}")" -+ title="$(gettext_printf "%s, with Xen %s and Linux %s (%s)" "${os}" "${xen_version}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" - else - title="$(gettext_printf "%s, with Xen %s and Linux %s" "${os}" "${xen_version}" "${version}")" - fi diff --git a/patches/grub/2.02/mkconfig_signed_kernel.patch b/patches/grub/2.02/mkconfig_signed_kernel.patch deleted file mode 100644 index 2bd3da4f5..000000000 --- a/patches/grub/2.02/mkconfig_signed_kernel.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 3853b53c91000f146eedaa0d4c80cb5852da91ee Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:21 +0000 -Subject: Generate configuration for signed UEFI kernels if available - -Forwarded: no -Last-Update: 2013-12-25 - -Patch-Name: mkconfig_signed_kernel.patch ---- - util/grub.d/10_linux.in | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 37c248c54..60467460b 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -151,8 +151,16 @@ linux_entry () - message="$(gettext_printf "Loading Linux %s ..." ${version})" - sed "s/^/$submenu_indentation/" << EOF - echo '$(echo "$message" | grub_quote)' -+EOF -+ if test -d /sys/firmware/efi && test -e "${linux}.efi.signed"; then -+ sed "s/^/$submenu_indentation/" << EOF -+ linux ${rel_dirname}/${basename}.efi.signed root=${linux_root_device_thisversion} ro ${args} -+EOF -+ else -+ sed "s/^/$submenu_indentation/" << EOF - linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} - EOF -+ fi - if test -n "${initrd}" ; then - # TRANSLATORS: ramdisk isn't identifier. Should be translated. - message="$(gettext_printf "Loading initial ramdisk ...")" -@@ -200,6 +208,13 @@ submenu_indentation="" - is_top_level=true - while [ "x$list" != "x" ] ; do - linux=`version_find_latest $list` -+ case $linux in -+ *.efi.signed) -+ # We handle these in linux_entry. -+ list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '` -+ continue -+ ;; -+ esac - gettext_printf "Found linux image: %s\n" "$linux" >&2 - basename=`basename $linux` - dirname=`dirname $linux` diff --git a/patches/grub/2.02/mkrescue_efi_modules.patch b/patches/grub/2.02/mkrescue_efi_modules.patch deleted file mode 100644 index be9d331c3..000000000 --- a/patches/grub/2.02/mkrescue_efi_modules.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 34e0d43849034eeec80e0f5a3fee15e4155f6d29 Mon Sep 17 00:00:00 2001 -From: Mario Limonciello -Date: Mon, 13 Jan 2014 12:12:59 +0000 -Subject: Build vfat into EFI boot images - -Author: Colin Watson -Bug-Ubuntu: https://bugs.launchpad.net/bugs/677758 -Forwarded: http://lists.gnu.org/archive/html/grub-devel/2011-01/msg00028.html -Last-Update: 2016-09-18 - -Patch-Name: mkrescue_efi_modules.patch ---- - util/grub-mkrescue.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/util/grub-mkrescue.c b/util/grub-mkrescue.c -index 238d4840e..10dc2023b 100644 ---- a/util/grub-mkrescue.c -+++ b/util/grub-mkrescue.c -@@ -738,6 +738,7 @@ main (int argc, char *argv[]) - - grub_install_push_module ("part_gpt"); - grub_install_push_module ("part_msdos"); -+ grub_install_push_module ("fat"); - - imgname = grub_util_path_concat (2, efidir_efi_boot, "bootia64.efi"); - make_image_fwdisk_abs (GRUB_INSTALL_PLATFORM_IA64_EFI, "ia64-efi", imgname); -@@ -806,6 +807,7 @@ main (int argc, char *argv[]) - free (efidir); - grub_install_pop_module (); - grub_install_pop_module (); -+ grub_install_pop_module (); - } - - grub_install_push_module ("part_apple"); diff --git a/patches/grub/2.02/net_read_bracketed_ipv6_addr.patch b/patches/grub/2.02/net_read_bracketed_ipv6_addr.patch deleted file mode 100644 index cf340cccc..000000000 --- a/patches/grub/2.02/net_read_bracketed_ipv6_addr.patch +++ /dev/null @@ -1,254 +0,0 @@ -From 71dd5c8e969902c586c048b62f64bf1a746beec7 Mon Sep 17 00:00:00 2001 -From: Aaron Miller -Date: Thu, 27 Oct 2016 17:39:49 -0400 -Subject: net: read bracketed ipv6 addrs and port numbers - -Allow specifying port numbers for http and tftp paths, and allow ipv6 addresses -to be recognized with brackets around them, which is required to specify a port -number - -Patch-Name: net_read_bracketed_ipv6_addr.patch ---- - grub-core/net/http.c | 21 +++++++++--- - grub-core/net/net.c | 93 ++++++++++++++++++++++++++++++++++++++++++++++++---- - grub-core/net/tftp.c | 6 +++- - include/grub/net.h | 1 + - 4 files changed, 110 insertions(+), 11 deletions(-) - -diff --git a/grub-core/net/http.c b/grub-core/net/http.c -index 5aa4ad3be..f182d7b87 100644 ---- a/grub-core/net/http.c -+++ b/grub-core/net/http.c -@@ -312,12 +312,14 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial) - int i; - struct grub_net_buff *nb; - grub_err_t err; -+ char* server = file->device->net->server; -+ int port = file->device->net->port; - - nb = grub_netbuff_alloc (GRUB_NET_TCP_RESERVE_SIZE - + sizeof ("GET ") - 1 - + grub_strlen (data->filename) - + sizeof (" HTTP/1.1\r\nHost: ") - 1 -- + grub_strlen (file->device->net->server) -+ + grub_strlen (server) + sizeof (":XXXXXXXXXX") - + sizeof ("\r\nUser-Agent: " PACKAGE_STRING - "\r\n") - 1 - + sizeof ("Range: bytes=XXXXXXXXXXXXXXXXXXXX" -@@ -356,7 +358,7 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial) - sizeof (" HTTP/1.1\r\nHost: ") - 1); - - ptr = nb->tail; -- err = grub_netbuff_put (nb, grub_strlen (file->device->net->server)); -+ err = grub_netbuff_put (nb, grub_strlen (server)); - if (err) - { - grub_netbuff_free (nb); -@@ -365,6 +367,15 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial) - grub_memcpy (ptr, file->device->net->server, - grub_strlen (file->device->net->server)); - -+ if (port) -+ { -+ ptr = nb->tail; -+ grub_snprintf ((char *) ptr, -+ sizeof (":XXXXXXXXXX"), -+ ":%d", -+ port); -+ } -+ - ptr = nb->tail; - err = grub_netbuff_put (nb, - sizeof ("\r\nUser-Agent: " PACKAGE_STRING "\r\n") -@@ -390,8 +401,10 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial) - grub_netbuff_put (nb, 2); - grub_memcpy (ptr, "\r\n", 2); - -- data->sock = grub_net_tcp_open (file->device->net->server, -- HTTP_PORT, http_receive, -+ grub_dprintf ("http", "opening path %s on host %s TCP port %d\n", -+ data->filename, server, port ? port : HTTP_PORT); -+ data->sock = grub_net_tcp_open (server, -+ port ? port : HTTP_PORT, http_receive, - http_err, http_err, - file); - if (!data->sock) -diff --git a/grub-core/net/net.c b/grub-core/net/net.c -index 10773fc34..fbac15e0f 100644 ---- a/grub-core/net/net.c -+++ b/grub-core/net/net.c -@@ -437,6 +437,12 @@ parse_ip6 (const char *val, grub_uint64_t *ip, const char **rest) - grub_uint16_t newip[8]; - const char *ptr = val; - int word, quaddot = -1; -+ int bracketed = 0; -+ -+ if (ptr[0] == '[') { -+ bracketed = 1; -+ ptr++; -+ } - - if (ptr[0] == ':' && ptr[1] != ':') - return 0; -@@ -475,6 +481,9 @@ parse_ip6 (const char *val, grub_uint64_t *ip, const char **rest) - grub_memset (&newip[quaddot], 0, (7 - word) * sizeof (newip[0])); - } - grub_memcpy (ip, newip, 16); -+ if (bracketed && *ptr == ']') { -+ ptr++; -+ } - if (rest) - *rest = ptr; - return 1; -@@ -1260,8 +1269,10 @@ grub_net_open_real (const char *name) - { - grub_net_app_level_t proto; - const char *protname, *server; -+ char *host; - grub_size_t protnamelen; - int try; -+ int port = 0; - - if (grub_strncmp (name, "pxe:", sizeof ("pxe:") - 1) == 0) - { -@@ -1299,6 +1310,72 @@ grub_net_open_real (const char *name) - return NULL; - } - -+ char* port_start; -+ /* ipv6 or port specified? */ -+ if ((port_start = grub_strchr (server, ':'))) -+ { -+ char* ipv6_begin; -+ if((ipv6_begin = grub_strchr (server, '['))) -+ { -+ char* ipv6_end = grub_strchr (server, ']'); -+ if(!ipv6_end) -+ { -+ grub_error (GRUB_ERR_NET_BAD_ADDRESS, -+ N_("mismatched [ in address")); -+ return NULL; -+ } -+ /* port number after bracketed ipv6 addr */ -+ if(ipv6_end[1] == ':') -+ { -+ port = grub_strtoul (ipv6_end + 2, NULL, 10); -+ if(port > 65535) -+ { -+ grub_error (GRUB_ERR_NET_BAD_ADDRESS, -+ N_("bad port number")); -+ return NULL; -+ } -+ } -+ host = grub_strndup (ipv6_begin, (ipv6_end - ipv6_begin) + 1); -+ } -+ else -+ { -+ if (grub_strchr (port_start + 1, ':')) -+ { -+ int iplen = grub_strlen (server); -+ /* bracket bare ipv6 addrs */ -+ host = grub_malloc (iplen + 3); -+ if(!host) -+ { -+ return NULL; -+ } -+ host[0] = '['; -+ grub_memcpy (host + 1, server, iplen); -+ host[iplen + 1] = ']'; -+ host[iplen + 2] = '\0'; -+ } -+ else -+ { -+ /* hostname:port or ipv4:port */ -+ port = grub_strtol (port_start + 1, NULL, 10); -+ if(port > 65535) -+ { -+ grub_error (GRUB_ERR_NET_BAD_ADDRESS, -+ N_("bad port number")); -+ return NULL; -+ } -+ host = grub_strndup (server, port_start - server); -+ } -+ } -+ } -+ else -+ { -+ host = grub_strdup (server); -+ } -+ if (!host) -+ { -+ return NULL; -+ } -+ - for (try = 0; try < 2; try++) - { - FOR_NET_APP_LEVEL (proto) -@@ -1308,15 +1385,19 @@ grub_net_open_real (const char *name) - { - grub_net_t ret = grub_zalloc (sizeof (*ret)); - if (!ret) -- return NULL; -- ret->protocol = proto; -- ret->server = grub_strdup (server); -- if (!ret->server) -+ grub_free (host); -+ if (host) - { -- grub_free (ret); -- return NULL; -+ ret->server = grub_strdup (host); -+ if (!ret->server) -+ { -+ grub_free (ret); -+ return NULL; -+ } - } - ret->fs = &grub_net_fs; -+ ret->protocol = proto; -+ ret->port = port; - return ret; - } - } -diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c -index 7d90bf66e..a0817a075 100644 ---- a/grub-core/net/tftp.c -+++ b/grub-core/net/tftp.c -@@ -314,6 +314,7 @@ tftp_open (struct grub_file *file, const char *filename) - grub_err_t err; - grub_uint8_t *nbd; - grub_net_network_level_address_t addr; -+ int port = file->device->net->port; - - data = grub_zalloc (sizeof (*data)); - if (!data) -@@ -382,13 +383,16 @@ tftp_open (struct grub_file *file, const char *filename) - err = grub_net_resolve_address (file->device->net->server, &addr); - if (err) - { -+ grub_dprintf ("tftp", "file_size is %llu, block_size is %llu\n", -+ (unsigned long long)data->file_size, -+ (unsigned long long)data->block_size); - destroy_pq (data); - grub_free (data); - return err; - } - - data->sock = grub_net_udp_open (addr, -- TFTP_SERVER_PORT, tftp_receive, -+ port ? port : TFTP_SERVER_PORT, tftp_receive, - file); - if (!data->sock) - { -diff --git a/include/grub/net.h b/include/grub/net.h -index 2192fa186..ccc169c2d 100644 ---- a/include/grub/net.h -+++ b/include/grub/net.h -@@ -270,6 +270,7 @@ typedef struct grub_net - { - char *server; - char *name; -+ int port; - grub_net_app_level_t protocol; - grub_net_packets_t packs; - grub_off_t offset; diff --git a/patches/grub/2.02/probe_fusionio.patch b/patches/grub/2.02/probe_fusionio.patch deleted file mode 100644 index a46ee034e..000000000 --- a/patches/grub/2.02/probe_fusionio.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 280a233c59586f396fe0106a97d85544de55b511 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:31 +0000 -Subject: Probe FusionIO devices - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1237519 -Forwarded: no -Last-Update: 2016-09-18 - -Patch-Name: probe_fusionio.patch ---- - grub-core/osdep/linux/getroot.c | 13 +++++++++++++ - util/deviceiter.c | 19 +++++++++++++++++++ - 2 files changed, 32 insertions(+) - -diff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c -index 90d92d3ad..7adc0f30e 100644 ---- a/grub-core/osdep/linux/getroot.c -+++ b/grub-core/osdep/linux/getroot.c -@@ -950,6 +950,19 @@ grub_util_part_to_disk (const char *os_dev, struct stat *st, - *pp = '\0'; - return path; - } -+ -+ /* If this is a FusionIO disk. */ -+ if ((strncmp ("fio", p, 3) == 0) && p[3] >= 'a' && p[3] <= 'z') -+ { -+ char *pp = p + 3; -+ while (*pp >= 'a' && *pp <= 'z') -+ pp++; -+ if (*pp) -+ *is_part = 1; -+ /* /dev/fio[a-z]+[0-9]* */ -+ *pp = '\0'; -+ return path; -+ } - } - - return path; -diff --git a/util/deviceiter.c b/util/deviceiter.c -index 23d49aecd..bc68b2549 100644 ---- a/util/deviceiter.c -+++ b/util/deviceiter.c -@@ -383,6 +383,12 @@ get_nvme_disk_name (char *name, int controller, int namespace) - { - sprintf (name, "/dev/nvme%dn%d", controller, namespace); - } -+ -+static void -+get_fio_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/fio%c", unit + 'a'); -+} - #endif - - static struct seen_device -@@ -923,6 +929,19 @@ grub_util_iterate_devices (int (*hook) (const char *, int, void *), void *hook_d - } - } - -+ /* FusionIO. */ -+ for (i = 0; i < 26; i++) -+ { -+ char name[16]; -+ -+ get_fio_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ - # ifdef HAVE_DEVICE_MAPPER - # define dmraid_check(cond, ...) \ - if (! (cond)) \ diff --git a/patches/grub/2.02/restore_mkdevicemap.patch b/patches/grub/2.02/restore_mkdevicemap.patch deleted file mode 100644 index 3337939aa..000000000 --- a/patches/grub/2.02/restore_mkdevicemap.patch +++ /dev/null @@ -1,1320 +0,0 @@ -From 7611a560ab6cd5edc3eefd20b291239deceb448f Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:01 +0000 -Subject: Restore grub-mkdevicemap - -This is kind of a mess, requiring lots of OS-specific code to iterate -over all possible devices. However, we use it in a number of scripts to -discover devices and reimplementing those in terms of something else -would be very complicated. - -Author: Dimitri John Ledkov -Forwarded: no -Last-Update: 2016-09-18 - -Patch-Name: restore_mkdevicemap.patch ---- - Makefile.util.def | 17 + - docs/man/grub-mkdevicemap.h2m | 4 + - include/grub/util/deviceiter.h | 14 + - util/deviceiter.c | 1021 ++++++++++++++++++++++++++++++++++++++++ - util/devicemap.c | 13 + - util/grub-mkdevicemap.c | 181 +++++++ - 6 files changed, 1250 insertions(+) - create mode 100644 docs/man/grub-mkdevicemap.h2m - create mode 100644 include/grub/util/deviceiter.h - create mode 100644 util/deviceiter.c - create mode 100644 util/devicemap.c - create mode 100644 util/grub-mkdevicemap.c - -diff --git a/Makefile.util.def b/Makefile.util.def -index f9caccb97..c939deb92 100644 ---- a/Makefile.util.def -+++ b/Makefile.util.def -@@ -314,6 +314,23 @@ program = { - condition = COND_GRUB_MKFONT; - }; - -+program = { -+ name = grub-mkdevicemap; -+ installdir = sbin; -+ mansection = 8; -+ -+ common = util/grub-mkdevicemap.c; -+ common = util/deviceiter.c; -+ common = util/devicemap.c; -+ common = grub-core/osdep/init.c; -+ -+ ldadd = libgrubmods.a; -+ ldadd = libgrubgcry.a; -+ ldadd = libgrubkern.a; -+ ldadd = grub-core/gnulib/libgnu.a; -+ ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; -+}; -+ - program = { - name = grub-probe; - installdir = sbin; -diff --git a/docs/man/grub-mkdevicemap.h2m b/docs/man/grub-mkdevicemap.h2m -new file mode 100644 -index 000000000..96cd6ee72 ---- /dev/null -+++ b/docs/man/grub-mkdevicemap.h2m -@@ -0,0 +1,4 @@ -+[NAME] -+grub-mkdevicemap \- make a device map file automatically -+[SEE ALSO] -+.BR grub-probe (8) -diff --git a/include/grub/util/deviceiter.h b/include/grub/util/deviceiter.h -new file mode 100644 -index 000000000..85374978c ---- /dev/null -+++ b/include/grub/util/deviceiter.h -@@ -0,0 +1,14 @@ -+#ifndef GRUB_DEVICEITER_MACHINE_UTIL_HEADER -+#define GRUB_DEVICEITER_MACHINE_UTIL_HEADER 1 -+ -+#include -+ -+typedef int (*grub_util_iterate_devices_hook_t) (const char *name, -+ int is_floppy, void *data); -+ -+void grub_util_iterate_devices (grub_util_iterate_devices_hook_t hook, -+ void *hook_data, int floppy_disks); -+void grub_util_emit_devicemap_entry (FILE *fp, char *name, int is_floppy, -+ int *num_fd, int *num_hd); -+ -+#endif /* ! GRUB_DEVICEITER_MACHINE_UTIL_HEADER */ -diff --git a/util/deviceiter.c b/util/deviceiter.c -new file mode 100644 -index 000000000..23d49aecd ---- /dev/null -+++ b/util/deviceiter.c -@@ -0,0 +1,1021 @@ -+/* deviceiter.c - iterate over system devices */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 1999,2000,2001,2002,2003,2004,2005,2007,2008,2011 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+#include -+#include -+ -+#ifdef __linux__ -+# if !defined(__GLIBC__) || \ -+ ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1))) -+/* Maybe libc doesn't have large file support. */ -+# include /* _llseek */ -+# endif /* (GLIBC < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR < 1)) */ -+# include /* ioctl */ -+# ifndef HDIO_GETGEO -+# define HDIO_GETGEO 0x0301 /* get device geometry */ -+/* If HDIO_GETGEO is not defined, it is unlikely that hd_geometry is -+ defined. */ -+struct hd_geometry -+{ -+ unsigned char heads; -+ unsigned char sectors; -+ unsigned short cylinders; -+ unsigned long start; -+}; -+# endif /* ! HDIO_GETGEO */ -+# ifndef FLOPPY_MAJOR -+# define FLOPPY_MAJOR 2 /* the major number for floppy */ -+# endif /* ! FLOPPY_MAJOR */ -+# ifndef MAJOR -+# define MAJOR(dev) \ -+ ({ \ -+ unsigned long long __dev = (dev); \ -+ (unsigned) ((__dev >> 8) & 0xfff) \ -+ | ((unsigned int) (__dev >> 32) & ~0xfff); \ -+ }) -+# endif /* ! MAJOR */ -+# ifndef MINOR -+# define MINOR(dev) \ -+ ({ \ -+ unsigned long long __dev = (dev); \ -+ (unsigned) (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); \ -+ }) -+# endif /* ! MINOR */ -+# ifndef CDROM_GET_CAPABILITY -+# define CDROM_GET_CAPABILITY 0x5331 /* get capabilities */ -+# endif /* ! CDROM_GET_CAPABILITY */ -+# ifndef BLKGETSIZE -+# define BLKGETSIZE _IO(0x12,96) /* return device size */ -+# endif /* ! BLKGETSIZE */ -+ -+#ifdef HAVE_DEVICE_MAPPER -+# include -+# pragma GCC diagnostic ignored "-Wcast-align" -+#endif -+#endif /* __linux__ */ -+ -+/* Use __FreeBSD_kernel__ instead of __FreeBSD__ for compatibility with -+ kFreeBSD-based non-FreeBSD systems (e.g. GNU/kFreeBSD) */ -+#if defined(__FreeBSD__) && ! defined(__FreeBSD_kernel__) -+# define __FreeBSD_kernel__ -+#endif -+#ifdef __FreeBSD_kernel__ -+ /* Obtain version of kFreeBSD headers */ -+# include -+# ifndef __FreeBSD_kernel_version -+# define __FreeBSD_kernel_version __FreeBSD_version -+# endif -+ -+ /* Runtime detection of kernel */ -+# include -+static int -+get_kfreebsd_version (void) -+{ -+ struct utsname uts; -+ int major; -+ int minor; -+ int v[2]; -+ -+ uname (&uts); -+ sscanf (uts.release, "%d.%d", &major, &minor); -+ -+ if (major >= 9) -+ major = 9; -+ if (major >= 5) -+ { -+ v[0] = minor/10; v[1] = minor%10; -+ } -+ else -+ { -+ v[0] = minor%10; v[1] = minor/10; -+ } -+ return major*100000+v[0]*10000+v[1]*1000; -+} -+#endif /* __FreeBSD_kernel__ */ -+ -+#if defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) -+# include /* ioctl */ -+# include -+# include /* CDIOCCLRDEBUG */ -+# if defined(__FreeBSD_kernel__) -+# include -+# if __FreeBSD_kernel_version >= 500040 -+# include -+# endif -+# endif /* __FreeBSD_kernel__ */ -+#endif /* __FreeBSD_kernel__ || __NetBSD__ || __OpenBSD__ */ -+ -+#ifdef HAVE_OPENDISK -+# include -+#endif /* HAVE_OPENDISK */ -+ -+#ifdef __linux__ -+/* Check if we have devfs support. */ -+static int -+have_devfs (void) -+{ -+ struct stat st; -+ return stat ("/dev/.devfsd", &st) == 0; -+} -+#endif /* __linux__ */ -+ -+/* These three functions are quite different among OSes. */ -+static void -+get_floppy_disk_name (char *name, int unit) -+{ -+#if defined(__linux__) -+ /* GNU/Linux */ -+ if (have_devfs ()) -+ sprintf (name, "/dev/floppy/%d", unit); -+ else -+ sprintf (name, "/dev/fd%d", unit); -+#elif defined(__GNU__) -+ /* GNU/Hurd */ -+ sprintf (name, "/dev/fd%d", unit); -+#elif defined(__FreeBSD_kernel__) -+ /* kFreeBSD */ -+ if (get_kfreebsd_version () >= 400000) -+ sprintf (name, "/dev/fd%d", unit); -+ else -+ sprintf (name, "/dev/rfd%d", unit); -+#elif defined(__NetBSD__) -+ /* NetBSD */ -+ /* opendisk() doesn't work for floppies. */ -+ sprintf (name, "/dev/rfd%da", unit); -+#elif defined(__OpenBSD__) -+ /* OpenBSD */ -+ sprintf (name, "/dev/rfd%dc", unit); -+#elif defined(__QNXNTO__) -+ /* QNX RTP */ -+ sprintf (name, "/dev/fd%d", unit); -+#elif defined(__CYGWIN__) -+ /* Cygwin */ -+ sprintf (name, "/dev/fd%d", unit); -+#elif defined(__MINGW32__) -+ (void) unit; -+ *name = 0; -+#else -+# warning "BIOS floppy drives cannot be guessed in your operating system." -+ /* Set NAME to a bogus string. */ -+ *name = 0; -+#endif -+} -+ -+static void -+get_ide_disk_name (char *name, int unit) -+{ -+#if defined(__linux__) -+ /* GNU/Linux */ -+ sprintf (name, "/dev/hd%c", unit + 'a'); -+#elif defined(__GNU__) -+ /* GNU/Hurd */ -+ sprintf (name, "/dev/hd%d", unit); -+#elif defined(__FreeBSD_kernel__) -+ /* kFreeBSD */ -+ if (get_kfreebsd_version () >= 400000) -+ sprintf (name, "/dev/ad%d", unit); -+ else -+ sprintf (name, "/dev/rwd%d", unit); -+#elif defined(__NetBSD__) && defined(HAVE_OPENDISK) -+ /* NetBSD */ -+ char shortname[16]; -+ int fd; -+ -+ sprintf (shortname, "wd%d", unit); -+ fd = opendisk (shortname, O_RDONLY, name, -+ 16, /* length of NAME */ -+ 0 /* char device */ -+ ); -+ close (fd); -+#elif defined(__OpenBSD__) -+ /* OpenBSD */ -+ sprintf (name, "/dev/rwd%dc", unit); -+#elif defined(__QNXNTO__) -+ /* QNX RTP */ -+ /* Actually, QNX RTP doesn't distinguish IDE from SCSI, so this could -+ contain SCSI disks. */ -+ sprintf (name, "/dev/hd%d", unit); -+#elif defined(__CYGWIN__) -+ /* Cygwin emulates all disks as /dev/sdX. */ -+ (void) unit; -+ *name = 0; -+#elif defined(__MINGW32__) -+ sprintf (name, "//./PHYSICALDRIVE%d", unit); -+#else -+# warning "BIOS IDE drives cannot be guessed in your operating system." -+ /* Set NAME to a bogus string. */ -+ *name = 0; -+#endif -+} -+ -+static void -+get_scsi_disk_name (char *name, int unit) -+{ -+#if defined(__linux__) -+ /* GNU/Linux */ -+ sprintf (name, "/dev/sd%c", unit + 'a'); -+#elif defined(__GNU__) -+ /* GNU/Hurd */ -+ sprintf (name, "/dev/sd%d", unit); -+#elif defined(__FreeBSD_kernel__) -+ /* kFreeBSD */ -+ if (get_kfreebsd_version () >= 400000) -+ sprintf (name, "/dev/da%d", unit); -+ else -+ sprintf (name, "/dev/rda%d", unit); -+#elif defined(__NetBSD__) && defined(HAVE_OPENDISK) -+ /* NetBSD */ -+ char shortname[16]; -+ int fd; -+ -+ sprintf (shortname, "sd%d", unit); -+ fd = opendisk (shortname, O_RDONLY, name, -+ 16, /* length of NAME */ -+ 0 /* char device */ -+ ); -+ close (fd); -+#elif defined(__OpenBSD__) -+ /* OpenBSD */ -+ sprintf (name, "/dev/rsd%dc", unit); -+#elif defined(__QNXNTO__) -+ /* QNX RTP */ -+ /* QNX RTP doesn't distinguish SCSI from IDE, so it is better to -+ disable the detection of SCSI disks here. */ -+ *name = 0; -+#elif defined(__CYGWIN__) -+ /* Cygwin emulates all disks as /dev/sdX. */ -+ sprintf (name, "/dev/sd%c", unit + 'a'); -+#elif defined(__MINGW32__) -+ (void) unit; -+ *name = 0; -+#else -+# warning "BIOS SCSI drives cannot be guessed in your operating system." -+ /* Set NAME to a bogus string. */ -+ *name = 0; -+#endif -+} -+ -+#ifdef __FreeBSD_kernel__ -+static void -+get_ada_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/ada%d", unit); -+} -+ -+static void -+get_ataraid_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/ar%d", unit); -+} -+ -+static void -+get_mfi_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/mfid%d", unit); -+} -+ -+static void -+get_virtio_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/vtbd%d", unit); -+} -+ -+static void -+get_xvd_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/xbd%d", unit); -+} -+#endif -+ -+#ifdef __linux__ -+static void -+get_virtio_disk_name (char *name, int unit) -+{ -+#ifdef __sparc__ -+ sprintf (name, "/dev/vdisk%c", unit + 'a'); -+#else -+ sprintf (name, "/dev/vd%c", unit + 'a'); -+#endif -+} -+ -+static void -+get_dac960_disk_name (char *name, int controller, int drive) -+{ -+ sprintf (name, "/dev/rd/c%dd%d", controller, drive); -+} -+ -+static void -+get_acceleraid_disk_name (char *name, int controller, int drive) -+{ -+ sprintf (name, "/dev/rs/c%dd%d", controller, drive); -+} -+ -+static void -+get_ataraid_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/ataraid/d%c", unit + '0'); -+} -+ -+static void -+get_i2o_disk_name (char *name, char unit) -+{ -+ sprintf (name, "/dev/i2o/hd%c", unit); -+} -+ -+static void -+get_cciss_disk_name (char *name, int controller, int drive) -+{ -+ sprintf (name, "/dev/cciss/c%dd%d", controller, drive); -+} -+ -+static void -+get_ida_disk_name (char *name, int controller, int drive) -+{ -+ sprintf (name, "/dev/ida/c%dd%d", controller, drive); -+} -+ -+static void -+get_mmc_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/mmcblk%d", unit); -+} -+ -+static void -+get_xvd_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/xvd%c", unit + 'a'); -+} -+ -+static void -+get_nvme_disk_name (char *name, int controller, int namespace) -+{ -+ sprintf (name, "/dev/nvme%dn%d", controller, namespace); -+} -+#endif -+ -+static struct seen_device -+{ -+ struct seen_device *next; -+ struct seen_device **prev; -+ const char *name; -+} *seen; -+ -+/* Check if DEVICE can be read. Skip any DEVICE that we have already seen. -+ If an error occurs, return zero, otherwise return non-zero. */ -+static int -+check_device_readable_unique (const char *device) -+{ -+ char *real_device; -+ char buf[512]; -+ FILE *fp; -+ struct seen_device *seen_elt; -+ -+ /* If DEVICE is empty, just return error. */ -+ if (*device == 0) -+ return 0; -+ -+ /* Have we seen this device already? */ -+ real_device = canonicalize_file_name (device); -+ if (! real_device) -+ return 0; -+ if (grub_named_list_find (GRUB_AS_NAMED_LIST (seen), real_device)) -+ { -+ grub_dprintf ("deviceiter", "Already seen %s (%s)\n", -+ device, real_device); -+ goto fail; -+ } -+ -+ fp = fopen (device, "r"); -+ if (! fp) -+ { -+ switch (errno) -+ { -+#ifdef ENOMEDIUM -+ case ENOMEDIUM: -+# if 0 -+ /* At the moment, this finds only CDROMs, which can't be -+ read anyway, so leave it out. Code should be -+ reactivated if `removable disks' and CDROMs are -+ supported. */ -+ /* Accept it, it may be inserted. */ -+ return 1; -+# endif -+ break; -+#endif /* ENOMEDIUM */ -+ default: -+ /* Break case and leave. */ -+ break; -+ } -+ /* Error opening the device. */ -+ goto fail; -+ } -+ -+ /* Make sure CD-ROMs don't get assigned a BIOS disk number -+ before SCSI disks! */ -+#ifdef __linux__ -+# ifdef CDROM_GET_CAPABILITY -+ if (ioctl (fileno (fp), CDROM_GET_CAPABILITY, 0) >= 0) -+ goto fail; -+# else /* ! CDROM_GET_CAPABILITY */ -+ /* Check if DEVICE is a CD-ROM drive by the HDIO_GETGEO ioctl. */ -+ { -+ struct hd_geometry hdg; -+ struct stat st; -+ -+ if (fstat (fileno (fp), &st)) -+ goto fail; -+ -+ /* If it is a block device and isn't a floppy, check if HDIO_GETGEO -+ succeeds. */ -+ if (S_ISBLK (st.st_mode) -+ && MAJOR (st.st_rdev) != FLOPPY_MAJOR -+ && ioctl (fileno (fp), HDIO_GETGEO, &hdg)) -+ goto fail; -+ } -+# endif /* ! CDROM_GET_CAPABILITY */ -+#endif /* __linux__ */ -+ -+#if defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) -+# ifdef CDIOCCLRDEBUG -+ if (ioctl (fileno (fp), CDIOCCLRDEBUG, 0) >= 0) -+ goto fail; -+# endif /* CDIOCCLRDEBUG */ -+#endif /* __FreeBSD_kernel__ || __NetBSD__ || __OpenBSD__ */ -+ -+ /* Attempt to read the first sector. */ -+ if (fread (buf, 1, 512, fp) != 512) -+ { -+ fclose (fp); -+ goto fail; -+ } -+ -+ /* Remember that we've seen this device. */ -+ seen_elt = xmalloc (sizeof (*seen_elt)); -+ seen_elt->name = real_device; /* steal memory */ -+ grub_list_push (GRUB_AS_LIST_P (&seen), GRUB_AS_LIST (seen_elt)); -+ -+ fclose (fp); -+ return 1; -+ -+fail: -+ free (real_device); -+ return 0; -+} -+ -+static void -+clear_seen_devices (void) -+{ -+ while (seen) -+ { -+ struct seen_device *seen_elt = seen; -+ seen = seen->next; -+ free (seen_elt); -+ } -+ seen = NULL; -+} -+ -+#ifdef __linux__ -+struct device -+{ -+ char *stable; -+ char *kernel; -+}; -+ -+/* Sort by the kernel name for preference since that most closely matches -+ older device.map files, but sort by stable by-id names as a fallback. -+ This is because /dev/disk/by-id/ usually has a few alternative -+ identifications of devices (e.g. ATA vs. SATA). -+ check_device_readable_unique will ensure that we only get one for any -+ given disk, but sort the list so that the choice of which one we get is -+ stable. */ -+static int -+compare_devices (const void *a, const void *b) -+{ -+ const struct device *left = (const struct device *) a; -+ const struct device *right = (const struct device *) b; -+ -+ if (left->kernel && right->kernel) -+ { -+ int ret = strcmp (left->kernel, right->kernel); -+ if (ret) -+ return ret; -+ } -+ -+ return strcmp (left->stable, right->stable); -+} -+#endif /* __linux__ */ -+ -+void -+grub_util_iterate_devices (int (*hook) (const char *, int, void *), void *hook_data, -+ int floppy_disks) -+{ -+ int i; -+ -+ clear_seen_devices (); -+ -+ /* Floppies. */ -+ for (i = 0; i < floppy_disks; i++) -+ { -+ char name[16]; -+ struct stat st; -+ -+ get_floppy_disk_name (name, i); -+ if (stat (name, &st) < 0) -+ break; -+ /* In floppies, write the map, whether check_device_readable_unique -+ succeeds or not, because the user just may not insert floppies. */ -+ if (hook (name, 1, hook_data)) -+ goto out; -+ } -+ -+#ifdef __linux__ -+ { -+ DIR *dir = opendir ("/dev/disk/by-id"); -+ -+ if (dir) -+ { -+ struct dirent *entry; -+ struct device *devs; -+ size_t devs_len = 0, devs_max = 1024, dev; -+ -+ devs = xmalloc (devs_max * sizeof (*devs)); -+ -+ /* Dump all the directory entries into names, resizing if -+ necessary. */ -+ for (entry = readdir (dir); entry; entry = readdir (dir)) -+ { -+ /* Skip current and parent directory entries. */ -+ if (strcmp (entry->d_name, ".") == 0 || -+ strcmp (entry->d_name, "..") == 0) -+ continue; -+ /* Skip partition entries. */ -+ if (strstr (entry->d_name, "-part")) -+ continue; -+ /* Skip device-mapper entries; we'll handle the ones we want -+ later. */ -+ if (strncmp (entry->d_name, "dm-", sizeof ("dm-") - 1) == 0) -+ continue; -+ /* Skip RAID entries; they are handled by upper layers. */ -+ if (strncmp (entry->d_name, "md-", sizeof ("md-") - 1) == 0) -+ continue; -+ if (devs_len >= devs_max) -+ { -+ devs_max *= 2; -+ devs = xrealloc (devs, devs_max * sizeof (*devs)); -+ } -+ devs[devs_len].stable = -+ xasprintf ("/dev/disk/by-id/%s", entry->d_name); -+ devs[devs_len].kernel = -+ canonicalize_file_name (devs[devs_len].stable); -+ devs_len++; -+ } -+ -+ qsort (devs, devs_len, sizeof (*devs), &compare_devices); -+ -+ closedir (dir); -+ -+ /* Now add all the devices in sorted order. */ -+ for (dev = 0; dev < devs_len; ++dev) -+ { -+ if (check_device_readable_unique (devs[dev].stable)) -+ { -+ if (hook (devs[dev].stable, 0, hook_data)) -+ goto out; -+ } -+ free (devs[dev].stable); -+ free (devs[dev].kernel); -+ } -+ free (devs); -+ } -+ } -+ -+ if (have_devfs ()) -+ { -+ i = 0; -+ while (1) -+ { -+ char discn[32]; -+ char name[PATH_MAX]; -+ struct stat st; -+ -+ /* Linux creates symlinks "/dev/discs/discN" for convenience. -+ The way to number disks is the same as GRUB's. */ -+ sprintf (discn, "/dev/discs/disc%d", i++); -+ if (stat (discn, &st) < 0) -+ break; -+ -+ if (realpath (discn, name)) -+ { -+ strcat (name, "/disc"); -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ goto out; -+ } -+#endif /* __linux__ */ -+ -+ /* IDE disks. */ -+ for (i = 0; i < 96; i++) -+ { -+ char name[16]; -+ -+ get_ide_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+#ifdef __FreeBSD_kernel__ -+ /* IDE disks using ATA Direct Access driver. */ -+ if (get_kfreebsd_version () >= 800000) -+ for (i = 0; i < 96; i++) -+ { -+ char name[16]; -+ -+ get_ada_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* ATARAID disks. */ -+ for (i = 0; i < 8; i++) -+ { -+ char name[20]; -+ -+ get_ataraid_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* LSI MegaRAID SAS. */ -+ for (i = 0; i < 32; i++) -+ { -+ char name[20]; -+ -+ get_mfi_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* Virtio disks. */ -+ for (i = 0; i < 96; i++) -+ { -+ char name[16]; -+ -+ get_virtio_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* Xen virtual block devices. */ -+ for (i = 0; i < 96; i++) -+ { -+ char name[16]; -+ -+ get_xvd_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+#endif -+ -+#ifdef __linux__ -+ /* Virtio disks. */ -+ for (i = 0; i < 26; i++) -+ { -+ char name[16]; -+ -+ get_virtio_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* ATARAID disks. */ -+ for (i = 0; i < 8; i++) -+ { -+ char name[20]; -+ -+ get_ataraid_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* Xen virtual block devices. */ -+ for (i = 0; i < 26; i++) -+ { -+ char name[16]; -+ -+ get_xvd_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+#endif /* __linux__ */ -+ -+ /* The rest is SCSI disks. */ -+ for (i = 0; i < 48; i++) -+ { -+ char name[16]; -+ -+ get_scsi_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+#ifdef __linux__ -+ /* This is for DAC960 - we have -+ /dev/rd/cdp. -+ -+ DAC960 driver currently supports up to 8 controllers, 32 logical -+ drives, and 7 partitions. */ -+ { -+ int controller, drive; -+ -+ for (controller = 0; controller < 8; controller++) -+ { -+ for (drive = 0; drive < 15; drive++) -+ { -+ char name[24]; -+ -+ get_dac960_disk_name (name, controller, drive); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ } -+ } -+ -+ /* This is for Mylex Acceleraid - we have -+ /dev/rd/cdp. */ -+ { -+ int controller, drive; -+ -+ for (controller = 0; controller < 8; controller++) -+ { -+ for (drive = 0; drive < 15; drive++) -+ { -+ char name[24]; -+ -+ get_acceleraid_disk_name (name, controller, drive); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ } -+ } -+ -+ /* This is for CCISS - we have -+ /dev/cciss/cdp. */ -+ { -+ int controller, drive; -+ -+ for (controller = 0; controller < 3; controller++) -+ { -+ for (drive = 0; drive < 16; drive++) -+ { -+ char name[24]; -+ -+ get_cciss_disk_name (name, controller, drive); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ } -+ } -+ -+ /* This is for Compaq Intelligent Drive Array - we have -+ /dev/ida/cdp. */ -+ { -+ int controller, drive; -+ -+ for (controller = 0; controller < 3; controller++) -+ { -+ for (drive = 0; drive < 16; drive++) -+ { -+ char name[24]; -+ -+ get_ida_disk_name (name, controller, drive); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ } -+ } -+ -+ /* This is for I2O - we have /dev/i2o/hd */ -+ { -+ char unit; -+ -+ for (unit = 'a'; unit < 'f'; unit++) -+ { -+ char name[24]; -+ -+ get_i2o_disk_name (name, unit); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ } -+ -+ /* MultiMediaCard (MMC). */ -+ for (i = 0; i < 10; i++) -+ { -+ char name[16]; -+ -+ get_mmc_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* This is for standard NVMe controllers -+ /dev/nvmenp. No idea about -+ actual limits of how many controllers a system can have and/or -+ how many namespace that would be, 10 for now. */ -+ { -+ int controller, namespace; -+ -+ for (controller = 0; controller < 10; controller++) -+ { -+ for (namespace = 0; namespace < 10; namespace++) -+ { -+ char name[16]; -+ -+ get_nvme_disk_name (name, controller, namespace); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ } -+ } -+ -+# ifdef HAVE_DEVICE_MAPPER -+# define dmraid_check(cond, ...) \ -+ if (! (cond)) \ -+ { \ -+ grub_dprintf ("deviceiter", __VA_ARGS__); \ -+ goto dmraid_end; \ -+ } -+ -+ /* DM-RAID. */ -+ if (grub_device_mapper_supported ()) -+ { -+ struct dm_tree *tree = NULL; -+ struct dm_task *task = NULL; -+ struct dm_names *names = NULL; -+ unsigned int next = 0; -+ void *top_handle, *second_handle; -+ struct dm_tree_node *root, *top, *second; -+ -+ /* Build DM tree for all devices. */ -+ tree = dm_tree_create (); -+ dmraid_check (tree, "dm_tree_create failed\n"); -+ task = dm_task_create (DM_DEVICE_LIST); -+ dmraid_check (task, "dm_task_create failed\n"); -+ dmraid_check (dm_task_run (task), "dm_task_run failed\n"); -+ names = dm_task_get_names (task); -+ dmraid_check (names, "dm_task_get_names failed\n"); -+ dmraid_check (names->dev, "No DM devices found\n"); -+ do -+ { -+ names = (struct dm_names *) ((char *) names + next); -+ dmraid_check (dm_tree_add_dev (tree, MAJOR (names->dev), -+ MINOR (names->dev)), -+ "dm_tree_add_dev (%s) failed\n", names->name); -+ next = names->next; -+ } -+ while (next); -+ -+ /* Walk the second-level children of the inverted tree; that is, devices -+ which are directly composed of non-DM devices such as hard disks. -+ This class includes all DM-RAID disks and excludes all DM-RAID -+ partitions. */ -+ root = dm_tree_find_node (tree, 0, 0); -+ top_handle = NULL; -+ top = dm_tree_next_child (&top_handle, root, 1); -+ while (top) -+ { -+ second_handle = NULL; -+ second = dm_tree_next_child (&second_handle, top, 1); -+ while (second) -+ { -+ const char *node_name, *node_uuid; -+ char *name; -+ -+ node_name = dm_tree_node_get_name (second); -+ dmraid_check (node_name, "dm_tree_node_get_name failed\n"); -+ node_uuid = dm_tree_node_get_uuid (second); -+ dmraid_check (node_uuid, "dm_tree_node_get_uuid failed\n"); -+ if (strstr (node_uuid, "DMRAID-") == 0) -+ { -+ grub_dprintf ("deviceiter", "%s is not DM-RAID\n", node_name); -+ goto dmraid_next_child; -+ } -+ -+ name = xasprintf ("/dev/mapper/%s", node_name); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ { -+ free (name); -+ if (task) -+ dm_task_destroy (task); -+ if (tree) -+ dm_tree_free (tree); -+ goto out; -+ } -+ } -+ free (name); -+ -+dmraid_next_child: -+ second = dm_tree_next_child (&second_handle, top, 1); -+ } -+ top = dm_tree_next_child (&top_handle, root, 1); -+ } -+ -+dmraid_end: -+ if (task) -+ dm_task_destroy (task); -+ if (tree) -+ dm_tree_free (tree); -+ } -+# endif /* HAVE_DEVICE_MAPPER */ -+#endif /* __linux__ */ -+ -+out: -+ clear_seen_devices (); -+} -diff --git a/util/devicemap.c b/util/devicemap.c -new file mode 100644 -index 000000000..c61864420 ---- /dev/null -+++ b/util/devicemap.c -@@ -0,0 +1,13 @@ -+#include -+ -+#include -+ -+void -+grub_util_emit_devicemap_entry (FILE *fp, char *name, int is_floppy, -+ int *num_fd, int *num_hd) -+{ -+ if (is_floppy) -+ fprintf (fp, "(fd%d)\t%s\n", (*num_fd)++, name); -+ else -+ fprintf (fp, "(hd%d)\t%s\n", (*num_hd)++, name); -+} -diff --git a/util/grub-mkdevicemap.c b/util/grub-mkdevicemap.c -new file mode 100644 -index 000000000..c4bbdbf69 ---- /dev/null -+++ b/util/grub-mkdevicemap.c -@@ -0,0 +1,181 @@ -+/* grub-mkdevicemap.c - make a device map file automatically */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 1999,2000,2001,2002,2003,2004,2005,2007,2008,2009,2010 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define _GNU_SOURCE 1 -+#include -+ -+#include "progname.h" -+ -+/* Context for make_device_map. */ -+struct make_device_map_ctx -+{ -+ FILE *fp; -+ int num_fd; -+ int num_hd; -+}; -+ -+/* Helper for make_device_map. */ -+static int -+process_device (const char *name, int is_floppy, void *data) -+{ -+ struct make_device_map_ctx *ctx = data; -+ -+ grub_util_emit_devicemap_entry (ctx->fp, (char *) name, -+ is_floppy, &ctx->num_fd, &ctx->num_hd); -+ return 0; -+} -+ -+static void -+make_device_map (const char *device_map, int floppy_disks) -+{ -+ struct make_device_map_ctx ctx = { -+ .num_fd = 0, -+ .num_hd = 0 -+ }; -+ -+ if (strcmp (device_map, "-") == 0) -+ ctx.fp = stdout; -+ else -+ ctx.fp = fopen (device_map, "w"); -+ -+ if (! ctx.fp) -+ grub_util_error (_("cannot open %s"), device_map); -+ -+ grub_util_iterate_devices (process_device, &ctx, floppy_disks); -+ -+ if (ctx.fp != stdout) -+ fclose (ctx.fp); -+} -+ -+static struct option options[] = -+ { -+ {"device-map", required_argument, 0, 'm'}, -+ {"probe-second-floppy", no_argument, 0, 's'}, -+ {"no-floppy", no_argument, 0, 'n'}, -+ {"help", no_argument, 0, 'h'}, -+ {"version", no_argument, 0, 'V'}, -+ {"verbose", no_argument, 0, 'v'}, -+ {0, 0, 0, 0} -+ }; -+ -+static void -+usage (int status) -+{ -+ if (status) -+ fprintf (stderr, -+ _("Try `%s --help' for more information.\n"), program_name); -+ else -+ printf (_("\ -+Usage: %s [OPTION]...\n\ -+\n\ -+Generate a device map file automatically.\n\ -+\n\ -+ -n, --no-floppy do not probe any floppy drive\n\ -+ -s, --probe-second-floppy probe the second floppy drive\n\ -+ -m, --device-map=FILE use FILE as the device map [default=%s]\n\ -+ -h, --help display this message and exit\n\ -+ -V, --version print version information and exit\n\ -+ -v, --verbose print verbose messages\n\ -+\n\ -+Report bugs to <%s>.\n\ -+"), program_name, -+ DEFAULT_DEVICE_MAP, PACKAGE_BUGREPORT); -+ -+ exit (status); -+} -+ -+int -+main (int argc, char *argv[]) -+{ -+ char *dev_map = 0; -+ int floppy_disks = 1; -+ -+ grub_util_host_init (&argc, &argv); -+ -+ /* Check for options. */ -+ while (1) -+ { -+ int c = getopt_long (argc, argv, "snm:r:hVv", options, 0); -+ -+ if (c == -1) -+ break; -+ else -+ switch (c) -+ { -+ case 'm': -+ if (dev_map) -+ free (dev_map); -+ -+ dev_map = xstrdup (optarg); -+ break; -+ -+ case 'n': -+ floppy_disks = 0; -+ break; -+ -+ case 's': -+ floppy_disks = 2; -+ break; -+ -+ case 'h': -+ usage (0); -+ break; -+ -+ case 'V': -+ printf ("%s (%s) %s\n", program_name, PACKAGE_NAME, PACKAGE_VERSION); -+ return 0; -+ -+ case 'v': -+ verbosity++; -+ break; -+ -+ default: -+ usage (1); -+ break; -+ } -+ } -+ -+ if (verbosity > 1) -+ grub_env_set ("debug", "all"); -+ -+ make_device_map (dev_map ? : DEFAULT_DEVICE_MAP, floppy_disks); -+ -+ free (dev_map); -+ -+ return 0; -+} diff --git a/patches/grub/2.02/series b/patches/grub/2.02/series deleted file mode 100644 index df5d9f3e0..000000000 --- a/patches/grub/2.02/series +++ /dev/null @@ -1,34 +0,0 @@ -core_in_fs.patch -linuxefi.patch -linuxefi_no_insmod_on_sb.patch -linuxefi_move_fdt_helper.patch -linuxefi_load_arm_with_sb.patch -linuxefi_fix_efi_validation_race.patch -linuxefi_use_dev_chainloader_target.patch -linuxefi_add_sb_to_efi_chainload.patch -linuxefi_honor_sb_mode.patch -linuxefi_rework_linux_cmd.patch -linuxefi_rework_linux16_cmd.patch -linuxefi_rework_pe_loading.patch -linuxefi_rework_non-sb_efi_chainload.patch -linuxefi_debug.patch -linuxefi_minor_cleanups.patch -linuxefi_handle_multiarch_boot.patch -linuxefi_cleanup_errors_in_loader.patch -linuxefi_non_sb_fallback.patch -linuxefi_re-enable_linux_cmd.patch -misc-fix-invalid-char-strtol.patch -net_read_bracketed_ipv6_addr.patch -bootp_new_net_bootp6_command.patch -efinet_uefi_ipv6_pxe_support.patch -bootp_process_dhcpack_http_boot.patch -efinet_set_network_from_uefi_devpath.patch -efinet_set_dns_from_uefi_proto.patch -grub-install-efibootmgr-check.patch -ext4_feature_encrypt.patch -dont-fail-efi-warnings.patch -set-default-graphics-mode-to-text.patch -disable-build-of-documentation.patch -include-compatible-unifont-bdf.patch -gcc8.patch -gcc7.patch diff --git a/patches/grub/2.02/set-default-graphics-mode-to-text.patch b/patches/grub/2.02/set-default-graphics-mode-to-text.patch deleted file mode 100644 index 506859032..000000000 --- a/patches/grub/2.02/set-default-graphics-mode-to-text.patch +++ /dev/null @@ -1,27 +0,0 @@ -set default graphics mode to text - -# This file is derived from https://github.com/opencomputeproject/onie/blob/master/patches/grub/e4a1fe391/set-default-graphics-mode-to-text.patch -Copyright (C) 2016 Pankaj Bansal - -SPDX-License-Identifier: GPL-2.0 - -For EFI set the default graphics mode to text. - -This supresses an ugly, but harmless message about no video mode -found. - -diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index 31fb91e..b1f34f8 100644 ---- a/grub-core/loader/i386/linux.c -+++ b/grub-core/loader/i386/linux.c -@@ -45,8 +45,8 @@ GRUB_MOD_LICENSE ("GPLv3+"); - #ifdef GRUB_MACHINE_EFI - #include - #define HAS_VGA_TEXT 0 --#define DEFAULT_VIDEO_MODE "auto" --#define ACCEPTS_PURE_TEXT 0 -+#define DEFAULT_VIDEO_MODE "text" -+#define ACCEPTS_PURE_TEXT 1 - #elif defined (GRUB_MACHINE_IEEE1275) - #include - #define HAS_VGA_TEXT 0 diff --git a/patches/grub/2.02/sleep_shift.patch b/patches/grub/2.02/sleep_shift.patch deleted file mode 100644 index 973cb8702..000000000 --- a/patches/grub/2.02/sleep_shift.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 6d92ce5e4248eec87c831734bff72581721a1026 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:23 +0000 -Subject: Allow Shift to interrupt 'sleep --interruptible' - -Upstream would like to consider this at more length. See -http://lists.gnu.org/archive/html/grub-devel/2009-08/msg00718.html, and -the rest of the thread for context. - -Forwarded: http://lists.gnu.org/archive/html/grub-devel/2009-08/msg00694.html -Last-Update: 2013-12-04 - -Patch-Name: sleep_shift.patch ---- - grub-core/commands/sleep.c | 27 ++++++++++++++++++++++++++- - grub-core/normal/menu.c | 19 +++++++++++++++++++ - 2 files changed, 45 insertions(+), 1 deletion(-) - -diff --git a/grub-core/commands/sleep.c b/grub-core/commands/sleep.c -index e77e7900f..3906b1410 100644 ---- a/grub-core/commands/sleep.c -+++ b/grub-core/commands/sleep.c -@@ -46,6 +46,31 @@ do_print (int n) - grub_refresh (); - } - -+static int -+grub_check_keyboard (void) -+{ -+ int mods = 0; -+ grub_term_input_t term; -+ -+ if (grub_term_poll_usb) -+ grub_term_poll_usb (0); -+ -+ FOR_ACTIVE_TERM_INPUTS(term) -+ { -+ if (term->getkeystatus) -+ mods |= term->getkeystatus (term); -+ } -+ -+ if (mods >= 0 && -+ (mods & (GRUB_TERM_STATUS_LSHIFT | GRUB_TERM_STATUS_RSHIFT)) != 0) -+ return 1; -+ -+ if (grub_getkey_noblock () == GRUB_TERM_ESC) -+ return 1; -+ -+ return 0; -+} -+ - /* Based on grub_millisleep() from kern/generic/millisleep.c. */ - static int - grub_interruptible_millisleep (grub_uint32_t ms) -@@ -55,7 +80,7 @@ grub_interruptible_millisleep (grub_uint32_t ms) - start = grub_get_time_ms (); - - while (grub_get_time_ms () - start < ms) -- if (grub_getkey_noblock () == GRUB_TERM_ESC) -+ if (grub_check_keyboard ()) - return 1; - - return 0; -diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c -index 719e2fb1c..9d0ad4c95 100644 ---- a/grub-core/normal/menu.c -+++ b/grub-core/normal/menu.c -@@ -615,8 +615,27 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot) - saved_time = grub_get_time_ms (); - while (1) - { -+ int mods = 0; -+ grub_term_input_t term; - int key; - -+ if (grub_term_poll_usb) -+ grub_term_poll_usb (0); -+ -+ FOR_ACTIVE_TERM_INPUTS(term) -+ { -+ if (term->getkeystatus) -+ mods |= term->getkeystatus (term); -+ } -+ -+ if (mods >= 0 && -+ (mods & (GRUB_TERM_STATUS_LSHIFT -+ | GRUB_TERM_STATUS_RSHIFT)) != 0) -+ { -+ timeout = -1; -+ break; -+ } -+ - key = grub_getkey_noblock (); - if (key != GRUB_TERM_NO_KEY) - { diff --git a/patches/grub/2.02~beta3/disable-build-of-documentation.patch b/patches/grub/2.02~beta3/disable-build-of-documentation.patch deleted file mode 100644 index 2c1b93174..000000000 --- a/patches/grub/2.02~beta3/disable-build-of-documentation.patch +++ /dev/null @@ -1,17 +0,0 @@ -GRUB2: Disable build of documentation - -ONIE does not require the building of the documentation - -diff --git a/Makefile.am b/Makefile.am -index 00a9663..93e1c0e 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -5,7 +5,7 @@ SUBDIRS = grub-core/gnulib . - if COND_real_platform - SUBDIRS += grub-core - endif --SUBDIRS += po docs util/bash-completion.d -+SUBDIRS += po util/bash-completion.d - - include $(top_srcdir)/conf/Makefile.common - include $(top_srcdir)/conf/Makefile.extra-dist diff --git a/patches/grub/2.02~beta3/gcc6-use-no-pie-compiler-flag.patch b/patches/grub/2.02~beta3/gcc6-use-no-pie-compiler-flag.patch deleted file mode 100644 index 1bc7eaaa4..000000000 --- a/patches/grub/2.02~beta3/gcc6-use-no-pie-compiler-flag.patch +++ /dev/null @@ -1,62 +0,0 @@ -gcc6-use-no-pie-compiler-flag - -GCC6 defaults to the -pie linker flag during the link step. - -This patch adds a check to the configure script to detect whether the -complier supports the "-no-pie" option. If it does, then add -"-no-pie" to the CFLAGS. - -diff --git a/acinclude.m4 b/acinclude.m4 -index 526f97a..fc44ee4 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -390,6 +390,30 @@ else - [fi] - ]) - -+dnl Check if the C compiler supports `-no-pie'. -+AC_DEFUN([grub_CHECK_NO_PIE],[ -+[# Disabling position independent executable. -+no_pie_possible=yes] -+AC_MSG_CHECKING([whether `$CC' accepts `-no-pie' option]) -+# Is this a reliable test case? -+AC_LANG_CONFTEST([AC_LANG_SOURCE([[ -+int main() { -+ return 0; -+} -+]])]) -+ -+[# `$CC -c -o ...' might not be portable. But, oh, well... Is calling -+# `ac_compile' like this correct, after all? -+if eval "$ac_compile -S -o conftest.s" 2> /dev/null; then] -+ AC_MSG_RESULT([yes]) -+ [# Should we clear up other files as well, having called `AC_LANG_CONFTEST'? -+ rm -f conftest.s -+else -+ no_pie_possible=no] -+ AC_MSG_RESULT([no]) -+[fi] -+]) -+ - dnl Check if the C compiler supports `-fPIC'. - AC_DEFUN([grub_CHECK_PIC],[ - [# Position independent executable. -diff --git a/configure.ac b/configure.ac -index a85b134..1d4cd24 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1184,10 +1184,14 @@ CFLAGS="$TARGET_CFLAGS" - - # Position independent executable. - grub_CHECK_PIE -+grub_CHECK_NO_PIE - [# Need that, because some distributions ship compilers that include - # `-fPIE' in the default specs. - if [ x"$pie_possible" = xyes ]; then - TARGET_CFLAGS="$TARGET_CFLAGS -fno-PIE" -+ if [ x"$no_pie_possible" = xyes ]; then -+ TARGET_CFLAGS="$TARGET_CFLAGS -no-pie" -+ fi - fi] - - CFLAGS="$TARGET_CFLAGS" diff --git a/patches/grub/2.02~beta3/include-compatible-unifont-bdf.patch b/patches/grub/2.02~beta3/include-compatible-unifont-bdf.patch deleted file mode 100644 index 8fb56e61c..000000000 --- a/patches/grub/2.02~beta3/include-compatible-unifont-bdf.patch +++ /dev/null @@ -1,22543 +0,0 @@ -Include compatible unifont.bdf file - -Compiling coreboot requires a working unifont.bdf file. - -Do not rely on the build host having a good copy. Provide our own. - -diff --git a/unifont-5.1.20080820.bdf.gz b/unifont-5.1.20080820.bdf.gz -new file mode 100644 -index 0000000000000000000000000000000000000000..c3d53ba0bbea8cb0c1431707bc32391c89ffbe47 -GIT binary patch -literal 1313861 -zcmbq(c_5Tu^!K+EsgR|GFtQ{|D3rCyQuZa3$dV#NcCs}pvX-5)jcf_o_kGP+XY5;K -z8H{}!+c5auXY~Hw_y6}Fp1IGx=iYnnIiK@6=RUBYGiTl}v+Dmx=4@m6%GSo|rl`Oz -zf!jhtVnSlKg#=!hzWT4}KreT>reG$Z8lzz!mfI}a^l&WYM{MS~NMU+6+Xk~*&hu{- -z>tZM)4adjNYN?%9dqn4Lpgkb;2#6;dqr9~G;r%n79ObAMTqBP93$uA2*M*EjoEEfjtHiyb_mdwLK5Fj);Pd -zwFj7^)LC1MF;%-R9=?V@Xn=2ndA7Y44zcie6`(IcBTGZ>DB~bvS$T`GvS2rIGsE`J -z`X**Mv5nxx8JEiPAk#3l?M6>gHes`(50=tC-|K`=*Y6ys59q5@OwgV#<%3uEY`=_r -z4Of%&%8U{)WA7B`F=f!RWnXl;RPGrbSX8MPr)|2QF#G3CoW|I&3!(2$wyJ4)5Wi#K -z($Yj?>)x}TUU8kxYNhK1BM+X4Cn`NCt?ccKcu3GFS@tQd{QF=)+@t3_ry9#WN{@o! -z2Y19D+`;l^J06~ahN-_XjK(3V#8 -zix(>L-6YYPA)R<68F3?f*HP)UDTd1K2Rqx}1))(o@j>o@vLHfMwe -zHHryszIMO!Z!fl_F!lVHmC5Iu>y>ivFc5Fixt*h<=f~PF@y6wGM&PNa^Zbv|`F>eC -z?c6)kVagAqC2&K+(%n7RFApvT_eR!yHCx3r-E*4!ptHMW98MdSDuz7`RUW_aSvYNIl2$R{rT8F)Ti9y -zp^GiddJg+YcZHFOFI?z|yF{h$oTqfY>f9%{&pW!(h*{cD^4|5AaWfT>b>GlBmUkOE -zY75hhEoR5X5wCcWwehuXZ#k~y#Yo6B5SxdCa|kYb`*7_6=APO1CxdiXzQkOgdAPYx -zf6EK`p*b3sHNS&N6yy@>yPd7tFnQ4*!OW;IEIWGc8SXO5D(saYr;uWSGOr8_ajlZL -zv-Ma|=wtz7GDr3@V)p2UG!x6a*|*$mA11%31qSaL^!2uq(S_Cx{ccOfZlw*eP%1uu -z{z5w$JDG{X*`7+Fj$>eHtp0A3%prF+j*jKrvVeyt?XSul&MVF5?(j(55fOPL)?{@! -zt0o8X^6C6xI>1ePK;(LT9 -zrl?SUzTB2NXE6rF|91( -z_*dWZGmAWr_hsA`jik3f{JdOL1;K<7Lt!dccFavys2zLH0ojpryOQig1Y;;PE-?56 -z<)2X6Xz;8Y5Ztb4_SN|3-QdENeOyZr9eHWmv%BBh)yQsVSiuOEU%~5nL -zCf^G9nMa#Xw}W?If@7~cIXcBqT=g36-fG`cv}6?2Q4(H!6{ERd^ZlClgLG(HnUQlX -zs85Yo9vLerfKhGqEazOLDZ8Rc;uf1t8fYZx#73opNj+UBPXE1pcj6VJU>{h9Y=fFX -z9x-0?l8XUidHbObtk+QGd6j0myn^fLW-L8vO$iJvsJb5PvQ)!uqn{DU*rw1o)l$mi -zY(ZwEjz@=`JI=@pk5^*hLtARqkzh~i0l{}X$EqVgUtWlun}bz~H)C|c`giS3Nh9_S -zR`i<{OV3NxhB=KXlBPqEl_}i!Y;{di3JmrO+i-K@XA~51OXjGY<$i$>`FXkH)2Zfj -zYRXPh+p>kHKJBCOO{=<0O%z6c@LD7vIlW5)KU3uuo-Rs_T|2A%9Q=5wFnP6}B<^+j -zwjrg;ptlj!tbkg6u(m4uSlW%5kTKabH>b;ZAdCGl4-DMMLMxf0_FUUTX`rYPd6#Lc -zI@-lxF6^f#tSpT!MFv=C32*2m3t~jAmF6qAK83H#@&yNPVRD8hGjln?c(ZQ%XWqC3 -z2lvy^FX5FoW`VQg*C;On5f@l?%%Uh{PlD4gQmVXdUBy4zgY6yG`R$r?Q33TOc=qzI -zhFgIa8}8pSL67;x;B%rAbd8;gdbfJPzeFHr_1DiUnCIdBovq(K~ -zkN?H@7QKM0=&L&r=XLgexNBs$^QG+yH^-|dqB{dW8A8u*dBg4;&|mGUOAzKg@YJyD -zaNy9tPqy>>=O)=b54e=EQ%3pXgS5iwW*X1d$rZN=;&-hdBf8$RU&zrkyb0Geo-o@m -z{+K0x?FBA#(uFH-N=7l6LK*y%}= -zu6~8=`fDwZL~#@etlVFJQy93F>ACzAhg-PCFPY?cZIst`{l{uz5?^Js^<4Kpka;sW -zVm6sVs@Y)d9GXU-nfr?uS5^eKkMRkrc-Y1WqJ)8BJ1&0d`=o!^;Eo(3- -z^z0QEiTQ=@E#WSmCdxC3j&J^0*T`7=;h1wTPlNnE1cFgj?}u -zB?98-%O{@cmxWe*xvFk{9e2Ytfv18i<>52_#8)v5WvwUB)6Ac&mF|v}6tM}veK^=5 -z^Wb7b{7EWvsR+@n4^PO>Ev)bqzq&vj%}n-Y;89C}WZTlG+u}SU@hO_O(DY%xM%Ru4 -zwEP&dFWrj^<%h(Nd^kzhY27!<=s3zxoD&Fdb?belR_z#RY3TZOY%?1Fqce6xZL9aT -zyvylo)zfa+ZK^K-!MQN$mN{sJW>R);y+lv5gvz;~A=ih9KxAhh*0%UisOXBao -zK|g9KtMB3R-e9CRY`Ze~eAwY{k+?z<;f-EO+LPV})GBBbuZq%V_B;PEi}=cqjAEQ?%soab7GhRUDZyMwiXF| -zU}SmwHeZJ`0{<$;k%6~4>@8Ky$$d{w9bx&Z -z);o8ZP~Q<8@gnw*t@MM5-t-|~F7@*6x?4i6E4rU?++MF39gmD&PkjD5y~7u1R@kxG -z{v+wAPJ@qJ#O}SyZ6ZOt;?O?_E_WCw%JKa}uU96gnli_OJeak*EUp>JPK25}9rU&5>Y5NoR;I7xj -zU!2MINCuv4eaqEcrbL;5oA{Wi-*0h -z_#-H><6I_Sea9G0qjc&16)~Ztma*yyV(9dVs&au~0WWd5qT2iPj34YsB{Yrf<%w%B -z6IvD+5IFo_(2JN6>!G|4O=^K{f;c};*msw7$N8N-TKURTVPoNq69AU{I5{RBd8akH -zj_l9nhBUqthjWUb$htT^iz^IVq(IY9KB@ayO}#i=n66Offu`v;s++N1WBTgTYUqxp -zS$|cB5V!jJ;{#r<=xW!|UsEd0GPXPFv4q;hNh3Ri|2EkM;nha~i`~BWk31en`~+Jb -zrF~k~!S1fcD&@Eot@tfxULRV7%7j{5Qc!*+ZsxzhA+c7hx74HtCgR|7w|)3;zf)9F -zQC>w{p(yC-5%g3WN6F;MbZDW%RvooyZ|2sMh~yp)DLqwyyC&1vA}Wum9L9%!H<@C3 -zf#vjKoo4d=Xw?!GVLf#{=uf<nwRH(LyksZ+6e`0S)xd}R6|jmnHwwQoLU(5MhXI+OSY$oj(_fOx>6U^gnSh#~p1e!uQCt;u -zNR>TmI{Hk$5j4s_J4vWyte~Y?IgRskRblhEOD_V{QF3bIt*{K(E?BphARW|HdTPVt -znz}rA41IR;@+<7T)R-Ni<+hX^LNV`@RzkCM`6w+Z -z1ZIvg1E{l$ZdcO%;cF0t%oZbRQ_NF=w)LC;_ep4VR^@^ghz6>AFwZ({H>=WND)$&PMJHxXp??HAoI -zP8mUxTC?LG`+Go=L`!X+Tw4L&7&+rhF0oZAbg&MT} -zQh}A<5eUuGI0~h)o4t(@JVRDL_|sLr#nfYc+)8=D+3NnCYLttG{n4m4nC>>i_}T5oD4>{iM7(yOq_l^fv!EDU@j$Fr`GppH)<@tiFkC!m%06^{ -zA&$wMIly1#_w8LPus%Q<+a@;tMgZh|ba1rEW6eGqurNeCJ(vAK9e|pUmsee`E9eKQ -zUW|t&ABcI-aHjI<2IA$yVG5py9}13cQ#FW*@6<*1fMJ}7_+>ZxM789lT2*hU;+GBj -zx6F>rNM3P3zek$BG0Go2fED>E%#&u{!p46wxCKp>%{u4|FN<)7*u?E!d)b4D!digF -zz^}1u-Mo{4`9Mnzp16g9Y#NTfsBte5djp^l9GxStqc6(?93K(iJI63iS_<=bQ9ZZ? -zsf{lO@s|dWpstWYKH6;v0N`jfxX(^358s_$w$BmoUI6`qX?&h2q%2fuJ+c0AZI5W0 -z@7h(8$3KKg{xzg3*S0q;+ow%*kDMj4@nb}f@agS{A*X-Ks}l&{{Csz&@D)=J<}~HD -zTNLQDj{SBX>`G<@bxY}>ZnvJH8*g*ZrfuJ3g2~iAoR4-307q&^rS0D2$E>X;(H4wG -zj^6|C1G}Vp1_L>#cvGCt495GBf!v%+_7`MTK(r8>JGxY(WtSiZ5QX -zU&k>U+xYk7?V@MUF}4KrriL^w?}UQR0@XU1)A^nx#sl?{>tM7F;n-rOHe?>$j= -z!-$;0jj0BhuGoshTU4CJwj2A)EJ=?S-yYZjECMz}F_lV$%wh*?tt=1brU-zg>tmAi -z%7HT|A>zAiORYa~eg|F2;p%xXCs!B>0M4#G;;pV%Zk${643TXMJIYfIAOYC9V~rPW -z_OXj(O+S=th1!J2rQ((x(=*SgdfUC*P;X5Df`Peh{IQB=v+(hh!G{PyL3hvoe(Mva -zI1h3`l^U)5kA~h~f+M7KX)4ccx)oj-Z(ax|IUZU_aRk!AP^zQM*8{uXG+a1}3>eO- -zst!@sM_K~e{^17hcnN4BT1c6$aP@jk`2{LmiacPaK>r$XOoG2D5 -zvG4Sl7YdcYJE~aVQGz8|Wp02X0EBp6Rkq@nzQs -z6PiLCcW*+lc3~A|Liw5w!il~R$L#46*lWmpneQ!r-I42r)?NO{0rG91Eqmll=~{E8*}2Ezk%)m33vZI5MTMp -zaK1Nm<(ZV!`4HlmCh(G1kj-bnP@0DbR`oAGu -z>u;*FlycB;LR3PS$i -zRH(QH*@7eNV)b+V$V(T0z<2@bs3Wf(q)11W%rb>9ycM?XtLJtWHY%cm$kV%#)&jAe -zB!kx$<>ckI>u5iRj1TMHY8%*}4?P8I4CIvKHyNo9JbMc+;}LK2mdkw^kVHee(LwTD -zOh7T&U}!@`yH10lPH1V$1M!N{oqawkj=@l)uiFd!S=5%_%0Tz&Q_e!)#y^j-;QW}k -z?9n+_b5=-J5WK_weH!owzui4CqLB_W@_^&g8Wl)d<-nWIR@Y|krKh!eZ0n&>0#5}1|jTL$n)=5r)Pnl-JLep@< -zgN?uT9#UGr7zmU^(>TC`1ulJ*Fud_M^frJu@4S2H2BAURN9IWi01d!4qq$9_`&i!H -z%fv!~h=FF-{jT-6JwkB*}BEMYKg+Ahf7ZwGt`hI`n$9KQn|S5Q2G?@ByI -z7pfER2$J#hGpWD3amgVXigl3aw~j1j^BqPz5qlHL5bt@%e9r~ON?t*GFg7yr74Kbi -z4=rJ2T^V?|*4lf}2_*s`K2Iw&L)ZyGdAU^EdTIEMvh!URkW4h~+iN!7vAg=jB(Gw| -zPY|+ZKfZZP)KHKk8%RO!@TliFRgZ>kxqLf(Lec{o9ii@BD~kCGDiFZoh;BnJ7YPG@ -z$M67)0I)qSXm$Ok5%KoyXWTT+HfS2g1#BJDnP(}LvF2Oxu<0#(S-zr>**IwkI?ZdG -z932e-p#?!?&8xtRliJh+3NEoQZlBFk>v2bfe{P6&#pSMpoh)}fukY>VtazQ1%gOOoitucgGt3g%HP$64~W>Zr7A=!0f6UROF9k> -zC1+DDp)n&NjiQ{J$Hs$L_IQ2%+6n}lASR%0h&P@GL=r&FE#(Fw4$>l#aH%xdLz41> -zK0ALDTmWJLS4BQXBo|ZH7VBz+!rRmb0Y0}Jh)MMxs%|`}v=!|cPPK}@3JAl2*nLgJ -z>5lPpy5tb$2j)m^m?Xj0JEOneLPEXA=0a03AarhG*LXd`-ESOE8phe^Rwei^RIOfZ -z!)OEpTH22izgn3~9OEE`?qfm#meNR!fFe7XtCYYE<>7!1F(w{5NvFvzY_F)pstBbH>J}2u)m2d9=4~guf@wE#5t&}4VWfH)ghywnL42z^#jNg|U`X=$af@EBiZ%KA> -z1|%vNIn!eXUS}A(lD|Oe>*%kuejIZr1X}*(F8|x4KHk<_ev}4W1<9gEM)Nj_-rCaA&drS_6F&75h84@fLow9h<@O_A!Oa%isxpB*k(8kH&UC?h+8h6 -zf&zlLd*Dr#6em0=QM62;PH5Z`zHAHt=lSWyh;+RanuyNIb+F;4kV31cxxH!Sd{ls^ -z01;v?FcBX|YKu<7wR*q~5Pm+dV$q3lt231uplU*}4}4|p*>&mr%4~HPDPQV~9aMiq -zNntRvq5`xrjfkJRb9bp9L>_=_%u&Qy-|8NKkqam#$;+vL@tDGct)-O#yzO8o49oQW -zC|7M?1Cq4>47@yeQAqb#^}BB31W#>8(*C1HElKCLezcx_N$Dpa3G;UCku9X0dI4og -zmk1maumpj~Q41jw^Vk&Ms|Ub1fGXF9SPNid*sq68Zij%Ru;qpnZZ#)SAp0b{e4#gm -zT`Cs7{em&iobmu#C@x?}g|m|u17YVOm`*Q4E??km8(lG5juPv!f -zM5RX7j@4m7l@vuXAY33Qxw4*Qs%m%-%z<*tUZmQ)DdM1@T}rrP+irVM%8~@0lagap -z?PnHZGLJ-{?SfczHZ*@)81*Za28wk9sP(U}bjRwx-rX1Tg>1>3_Io_`rM~P`c-JpI -zCsDu-|5P -zU*AVo+r5zl!U2!ei!3u{f+C&PJ7(6Dg_}H!6{_w8kjb@Z!W1gsoD2UTZx6i=hndIO -zqS%S+-%C3MmPArYtRUQ`nHyyHR{WQ(^(S*a*$Nhc0=(V$<1KJ{69a -z`v@~Y>3Z$U1(E*GT(!aZSpCh=hzFx%JIbToDEF-s%uXRZD!ZVpPeT_4JWdMq0 -z+(XmxVy$B40kHV)iOEn2m{@}A96yj)9A;(-GcIhnfm@%JMeLHsEb)9%`^&oApuM)5Bu#SO`}I=c-~8=cg={Wf!9}FGaBF{FLV5re -zWZ?HwNMoQ0B!I13_6@B0S?|CCpfq05ySxIFAa3`e#9y_$O+{squ#lQ57=!!d3%nGV -zD`REp)3MbbzvI@EK_&(K0F%u>R}KKX{?*e&DaoLzyG|diWTZ@8WrD29j)mQg`h$^M=Rsn;w6D4So^q)jgh9vV2_yg;o#`UqxKd3MOk~>4NqRi+R_|Nt9s}LB(&t%kLl`zfc -z&@|#iu_VGQRJ-fh6Z2bd5Tx5vf(g(;R2$NQ6wRX2XY8%dK?n=5%|4U~F)yCuW;8xx -z#0x*Ast)QUz=VEG+WGcMvu>67v_Y5v%q1Fk?cU{|HsbJ9f_($i=VugWpe1U;xM%pS -z0L2G1*A-S0c?r*I0N@>9$cMkX33G7cw~&2Y96sVE&hHc)jd9aQ -z#H>4v*8-H9Kut=`hw!`D^mN}`+0T+50CgbX>b-U@W7B1eV$h-k3-L5WRofQ6K~l~V -zAFQ{J9(fGHFre5CF9%Y}jZjdgGK|;NfV)*)-J6AofCC&I;7cggRk`;jMPO%3g49y( -z+x*2~=B#c#w9sjk-h~SN#kxKE*__#w3b(sJsk`kQ^!K$#re*R6JuEtaCWyMK5*(B%CD -zPvi$CEIN~3sC;lyHT!sosig@g=9~+w7 -zKG3;lhNKYD4|X4teym{`_V?B-oj{#uH%Xu%K2fLpK*)|NyHDj>L2*)P2p!Z5W>??9?kF>(RVu`J{Lzd{cWptgidBq?f!Wp3k8ewh?65Umnzo)b)_)+nzmg$q6Fb;5_Inh@L`F@6iy) -zZ-;(Q$e^va9EklW7pHXs9s$~4BBJM@=mSo7a?ogJ(tY(gVDI%IWS0x?{FCD7{)X`- -zG!h(kywy{hvVYdF9@LM|?KMZysEd9hF?qaa9t62;8`!)gy-Xk;)Hthm@xWVw9dO&f -z>0%&N*tm7Ppt-w3gw+CoRKWN!mzNvC6F8KB#qA$J!X~z3vN%%!Iy(l74=MIJyfGGgkkt%Lr|Bs0vE&d-lKDh4O~~qyWmoqdP)e(3yLHX=z6==19g59!n0iFX{jq2iB|eDfAMz3TUhhB^Gsrz?6&Fe_5^2yl -zzKk{KJ8`RG3f$zrbHG-=2Os^kuyS7>E&gh+br%xRdX~yZw8)^*cnQ1aU3`M-Gb|Pa -zgWod|G(Mu9<-YLY)mQVEPcpgZObWV&3u>McId9OIxW@TRmD=J;xo@q1geP!nfP{za -z>Kg%sa&i#-OJU{_`2v|xU2c~Tj&?R;cqs-aM#0Q0I>t=TSLbQF} -zK8Ex+jmI|a#(p8O7i{k81*qyy4G)&Hm>Ipl4V7YB5zLN#U2w=HLtr?&jDFsW(@J1A -z@MCA=>dGV(?RrBR$7wPBNuH_A$J*Y^+|$TvG}Q1lW$=CFmmg0>Pe@A4RgKP3*U(>IZ;BOrdW5u3^5}Pa3hl`oI!4 -zobvDF@gD1RSD;e_w}Ed2V(dWK8aiC}Hx%7uknjA2yfN=06bJ#&n$V`rnKa{vj288{ -zf`8v5>@}iY2+FPAB5eT53VUa6o2y-uKP55Xr}^gW+5G+ -z=g{O|x-`Vx=+R2cF;b8+5HYBPqE`;S(jCoG%b?=|9P5@e+-G9n~Rd$9Tig>Uj9QWp(Jo4S#;g{u=LV{dKe)a+C?< -zSx);>&PTWEaUVDy`qD|%4idB4MI$UAfv)Yr9`hvy;yoVqv>X{e=-+08*5fCrm~VwE -z&pnNPB2@qrdyyK|#p7=VaQTI4$r7;brJk7h(`&TN;VG010=(R0{(70P|6vV|GZB5_Gl! -zq+f~4i6{!cl2+NbTf~_H)jOiPVwz{Dwkka_?Xs~T70{wgC_gGKSA{-6*r1be+6pqn -zvICC6n1`6LD-tVG!1NPQiER-+{PJ^Y&LIct>RSG`?VP;v-UPK&r-Qxyc%2mdD9WEK`yy`i!a$+`GKax%Ovox@2qbCk)V^ -zJL(&V?_RFY5%!M6a?5gG@Fk1r8WKM0U+K|p4~lW&RzrN`M+Spj5^DGvCZoUzX{dCU -z1lxOg1m}0QiTz;Z%Aq&0}zb%c3UJgdxujQT7J@d7{0m?~$1gUG|CSJ<|_ke{IEVbz6fXf=w;dKgqxk2a< -z8|Wl(FL&_vh2X}7Cn@5CCAemRtgx)yoW`tipi_7l_*rzCp6Nft*6|P%o6spw1IGqt{wfTQKDVQx}^*f0eX1* -z78u_V39-&?#La*-C!9`#f-1cH=qn@=_x3=hK?q!(0ILiqeJs{m(1=0XBQxU5+u-pe -zwiVfx#UvU-GKNjU`Sz2KS>um)PB)#4kkml#37g_hX>zKcYt1ZAC9kRnO!lC?)uwVSVQs& -zYcr3p{HHN);PW+^r?R-O)-+bMhi|A*V1s}~SCXGok^2e(Olyea{mX~-wcqNUSfE`f -z&&B7+jyAQD=sWerxjb&tae*va6FwR;CXMscfvZmj+q^E>%%{4fi+z9r4hlo5E>`@M -z&L@NL0P=TM>`Q0xLXMJ!vKL(3fUirOoa5i)#a&6vlFKPa_Zk$v6afZ_5}g{nAwtBP -zgco)ZT%<8*bdK#n;=NOS)F0jFj1*D@H#SdYDV|*8gm}FYWde58`1UJsJ0IC4ZgBxz -z2}5m-uS4dJOUX;pcKPWpla2s+fiC%NC_=f| -z=KIe@oC%nG9lMlLa+ODYkb4zEjmWNH4ESDzM95~1mtp%5!1oZv77Oe)za8^zerC}G -zAOE;rArkAhe)J*+f5)al(s%}yW61%57${!k>^$YMG=s89z^1#tIY(VK1Fi?s;sNf` -zfOM3v^A9&t1#kkzGt?t(OjUV&!#_OkZ*Oe=ef^`}JKOD8Pzy+=lQ0iCMMZBFrd6YO -zh2(-E+LN)<;or&H>q#c^L>84BHn8Y!Y5z{}AuuomGlnLT?}uaYM7)U_Awql*GYu|Z -zG$<1S1v|HFLTsxc^@A18mJ&^iGU1=}{|?we`F?a4C1#5R5IVBv!w)vr%ae(oqdYFh -zg-Tfk=Y4Tz(R)zMCc{U)`m`T%&s3axx@G(NlMrBbDsyEgMiS|Jt!TdOzl~TYo2h9( -zaRI5Ty6#$Vw}g!ydp6BDpj*SG3PmlS>eKeuvtq;Z;@qrj&+cj3`Fw}N-}jcsuFrh% -zXO(a9PBVJ4sBw2-1sQNcKJ{Vy`$$Pz4u8dXgsnD<1m})tg{V3kyQq=7ZFJmoJ%OoM -zvmYnrQw4RNAXw@I9(rI0<#M(h>Y}V5BnPm^pnztxfMCVA-lFOgrxGqR3 -zHnp~#^G5GFTf;~H&Cb=E@-}y85O@z>8F}BaRfM$C$i(QPvixcG+t!N=DkoLlsR!mC -zzWcJLO~p>fF>5(gGmeXU&pl0^u>9acz<)?Zhq)!%kF|*!&B2te?5)X;Lx&-G?5cJ2 -z8D`GE(iRx{W2IgVA~;`U6ez -z7USbMPa3#fW@lLQX(}rWVJUm@_FI@yAoQ-Jks|viKh={H8bh2xDI$-39@o*+tx|{3 -z%OW-F=(}eV8i(>(42G%ZS7Ple9wlDaK%%Pe&liUw?~2Z+uv=E -z*D?SNO^;8;P=37_Zcd=gK8aMkz1GrLauOLT=33&Me+p<{=@Kj9M&^6&a4D(4>SVvS -zTk6pE0u-vWUP2;+D5jiL?_A6R9jv9MBB7;m5?m2STN)m+WEz}|ZcR#8e=1(Nyxu19 -zqaR3n!fM}kD(eGxc$Jhx7ige-g)HO<5qeNV2iEe$(0uGgKxgc8Q6M=1H+7JTdhjmr -zf}SPV101t{8Fr^J#~nJUF2~nnYlF`0RFEWQ>1VI^#;q#KS%Ca#WW^alDg*Bva-`zM -zW*u45;Hb(++RrNP+WS`{Bq3!OQQVeFeQRAtbw6UYmC -z9&01=%=Z_yAl;Ojb9WAHQIbi8nXd2*G5Ev75e!@6_>=7KxqC*X6=OZVj>74|Qny*} -zMQ?Bg?n7O#t?!&N?sg8ClF|52gY)93o;!Pn{ilA5VoDIQKp4V -zrGB|^>lC~mvE%ZehUtx34!y*@I(l*9y(F%{EF>_`+eC)XzorJb`N5>95Yu-JCp9?r -z5Yb}xV0G2^Ou$h|!#x@LLk79|ag>iupLY~;1;#OcW4SL+j=@wY=ihuZnyWEHD-Yfr -zng&e0de;D8OwK5|@Nr5N7s6O?m1@UaHT;{1;#av4Cj7@NAJ$ssaa~N~=P3-P -zO?~0KkZrJRw5b0Dg^uOZv;h|PeWYIOk$pS7M2v6aHz;7HXXpk9=&zT^(pn`RqUXZK -zPWBSX+FC`s4q#bau=Kfeo}K}4&QN#6ZiZ^TvKl3@9pc&v)q+=#PiiPi!Tm0tX%)#k -zg;d-kGW=F5K3AjnP9Pb08efO@WKtK3vda22@Iu0{JG&8NJvfE(Fzo_Cec(rK2!Zdj -zuNbnSL&ld)KduSfXBKELPL>=Civt)HrjvkUGwWTyPa0+}UR4mS91ClHQ;2<4n*t`t -z#1tw`N+2Ql-5~DPJ7!qHIlQ(qklV-oBO08g=z)|4!ep`FF8NRbIQX@kJQ`awFu -z2fz&75VQGqNFDU$?7*kV8E*IT4Zi|A43~l%wB-h?04I>egedrRg;^rsv#|kFT_FtL -zIpwwUVD&*?9sMf9LOyU~tu!R}N67S(rQvH1$||fQOu&Efj-d_CqsJ?IT4=sDV72{Q -zj_D6%mz)?3n%;&}a;^-RoXJa$+0PttGXhE6@40=Duu%4S$dNH2+nU2UgUs1kW={vV -z_b#4BwrJ)nsK|pgyCO<0D-9EEkJ -zz$8t8)j}KPM8alxFLu)Y2nzyM;fk;h`wP6C9TQT? -z@`sNXz}&TU;+4{ClJIAgptlQ#W~OcQao4KL?OB>yiBYdarV%SaCpk=jhn7<#;x$i} -zkwREQm`Dof%x -z)!ZrGFfl(?J>yQTu6t}Jf6C7>SHQ>JIZpoMY!y#+yQE*k`D{!riRpXz`QrCwv1+J< -zGvC8SaG|jO44vB<-*eolyb50RzYh*rtk9To$T!M%D7w$3g$sSA5tgoI@jtBZT2|D7(w@dn$cMR2Il -zkc!q9_V%CiPV=@-FrU?boFo5V6sNeKjh3ZBe1pXa@d9x_b>eMZ$k^iL?&|S3Jb3=* -z9KauO2C4t-xu5_bZaQ}RyRlhjX*R#t+Ma}{E_nUqYKsb?``8^E{hv0+>n8W#1u|}n -z`4uH4aO7e${HdX#A`+*=k#nT>hd;3Skj>$`Ca>K4cCy24Xob{{b{>Udu>G`IerR+W5tn5d#u}i-|Dwoqg`rvQy*-~^sx3Zi?)W48El^Kt{naO=>OSBB?qg13P+isbJOCbf3Ji7SN0k<_QqdQ-?3WqH0ikyICx2E~S)-dj6?txT -zk!i?F`bo9yj$hLV9wpOIjF;iuSiS!i%#?YFQ}Ds<|1{1d$QcB3qT2t1Rx%RZx?QMlO}h;3mK=8h-j+XK -zwn#ZadG+coFRaf`2m#Say<)Vz08YTnhl?}4bteEp0Lq}dMa2vtHbE}wDy{BM^Z$?+ -zB>d2*VBD~)0s!^bGFxRj_D@*tN;nrv&7Bk`D3cuLgk0iP>6EydDOb?L -z2}-x(?}mYFsP;2}_A-C`strMxEbfA07{qXk9OpzH{aJN};{Tbf(__GtzP4`R&sI0w_C2IKdMR -zD2M+xk@(ji|GRH7$@3)gf;-})R#`Aa&ybkca69On)Ay>r`x*}IY??rz($?HveG%n#64^3Am{gGu -z9XnD6a$<259xo8`$msj=@3|dZ5l=N-SxVX405a9%8|OAWFO)-cc7kBSbs1-@)Z2Xq -zEQu1CD5~c>?0IU&o$9XAgMXbj*siK@Te>>9Hq?%8GT2$r<+5p;!!}*oWVFJ@0dL|}TtC)>lg=#!TIo72+DQ;hNC2irp -zd`?2*GOwhBpF(|`f&cDD|MRqXp@Rm|s`nsoHpLU2RA4$;-`oG(dhdU}(4m8uz*%aV -zA*S(71fx;friO}R*)-5!P8W3?xj+}ztz!)zm^dP_ygMhKmRexUzwl` -zz;XM5fF*(nk*<8LUtOsuCJYkf{*OZoh6md34@f|XGk?~vw89GKhD}aXtEm<+!uh7?Tyzm4?a|G?dtqJW@kPH`*0|c -z1_X6H*s}BEkd!BI6X5IhInzG5i)wig(Y)l;A@xX#<_XE~f|}aiVn}voeiZemO@1p6 -zIInfjFHaxstACsq2|QE~(b6XJUtUgkMD5d?r-95Q^OBBre?aU^QzE>la3<~?piZD| -z^J)q1>Z6LSzBo}n5a2a$&b?)r(VZ#D@CM$}lX+TCxfCHbT$C_bvvf=gxy!X%Dg(ZO -zgr*gbO{DbFtb9e$YO9j_^%6+D36u40d8v#0Gl7G9hOK~WQkLUzZ?A5YCw(ufqmRiv -zop8)=!NbIuyXoEv6cjQqnNllh9i$B`0>20AcKl24qNL|UQvv4a#P`1#bckLE10?J8NaQSJ6b5<8=G?cI?Az>Z_YojfBDygtpg5{;Z#I5YVs$?KT -z04YiT4R>i5(8&^+*qxnLiQhy#dRN|&ekBJS7mzL&f|L}pU-Cuz4nTPkK+b1MiH&BB -z#hmS=bf>T~@x@plRMo(tGCy=hKcu-G)#(m&6+8_egQ*uV2bBn_RYQzltPHLQ4B<|YjJl=_g&V5Q6e&FEw -z%9aZ}gT!i_N~!Y0O;8uZr;JU?B@|p8I;mm$6YqFC^`eT}Tpln|S4@bwDbkEsmt^x71_5&Wg#(jENr -zkSi|`ZcT^ub(Y2+e(f$X!u50HZp1u1ePuwsVR -z`2*1yvU-ggA$%!PeDZ64Uxkd -zw3v_xdc@*zvQ1lP%w>qN-TJNlOa|;4fGAcNb{*Ksg#ki&jm7Eoa%vDc=r9^L?lb|K -z>63@XboMV@`5)Te0xFKKSsNYPLU2eRNU*^PGVo#<5-fOdhu{tY2KNXWAh>04cXv&2 -zC%6+_g1i4ceCPLj&pPL>bJt=`Pj~NKQ@y2jRXxvcUH~okvIsDHx6asF-u~bBB -zN+2d^+60fEv`zs_8k?2M -z@D8JZ-p%sxk*h4KqAp2JZ^A&BlB?z#2jPEWfVcoqA;5bS2vb(BdS5<{o&U&z#t3MZ -zvsXSptVTFg&f`)GWkqE}Z+15zS_9|eKrX?+S9i-{~Zi*za-w*`& -zQBK%Rl>CcrhN!^zv2g0l*V^pP1sA)s+uU+AD|mDpolVAUqT)s!s{ZM>X6Sst?5E;V -z{L2u>a-<(JLPN`CbU%r5G6lQ)5RNWRFDbW3bawIqqWxG(V*VSYF%|*^AbiFqure@1 -z4s`lvF!#hsy8s5;v=tP9wdbK1>1&nw#{(*{L3gDiDtud^;nSIR_Ttg#q&^=0wUh$$2(hC6Ux(iks%VED`&UY68gE+XdJ~{8oMU3h>zU`L -z-{;*ZR!zQE&igN>X57nwb-O6*TI%CjDD}W=LZlznp6SX<Wj= -zQ4Q=IY>91pyFt;2!kgl;1SK#?k2!&btu>u_nFzvY?u$I47W`SBQ{AWx$a7(I$+bym-k4iRqhs?ak-ZbA2 -zGYt}%Enn}cgsNa6LWsmfYHK;iZMsEI(59sh(sBrQ}i8#<9e;2c`Jh9KQ>!1Y*aL1G%laXW@ -z6qepty}929mI%kJxN<=@NuSu1|B%K69Zz9O}XN1n~Zzv$6w=Ze;qm -ziSti~V~6}G2|!Mk)wuJ7rV|mCuo$DoU*|=YIO;|x86Yl{Rb9<|k3)Q`uG-T$OUxZ3 -zB|-SKS=zJbUI7lkFRaD!{i8nb`;9_^x;3MX$Wb=gC9@vk2NY!6x+^71d{6bW`P%Z< -z6wCtPHfEOA9Y7u6fh#n_3G6;k-rkVA+}`aY@=ThuKWT;k<{^>{`Eh)yL&L65p8rjF -zILE%ieH2y?83n2;v)d+#&=SxBK*wxOUt*(SQuq>9(0iJ+cT)+X7yU>YWx>E^VF9ARLW7PH`W_A_UvO1;!gb~VRNvb_c -z+e;2e;$r1-s+r#~W-w--%Lx6;! -zvB*>hKN44L^%IL!IEz?zp$dV%|I=qGtT$)`QEAt8Y!Y=~5B!(H!|w@PS -zZ+Ha`mPaGgO5(r7E0C@=29TGuf_brAy^NBj&IeBd2AaT*v-8uP&jQtjgx~4Xf5&EH -zMDOro+eu;dyex&Cy|T3zMMad6oT`D)dA^br4Y!z@Gdwb2LHx_ql}X!S=i~M_0t}905#>^feC1oNwlb)6*oY0R!Ay+o -zgk3!ex!l)i>wcJ`<(IUEb9;x+VeI?t6}K3G(^N?>@spH*BXiP`_?Nu4Q3{qH6GB9B -z>u=UWtELJJTEFjW5>57o0J1M*Y7UGmy`V|J -z93++uNf5uf!9;ik2_^gX-OY%+!nPH4Gd++5`7#f4b`U!C1_C8ad5vY)D1?7I0z)%l -zz#j!79eE89gb+|lc`P>7FJfQ2p7G}#kV^or$Jo~X!u|daa8E!^BbU}gLuMub;an${ -zl!(8VDGvqw*&g$T6(QBdMP+nW3RQN%_H6Ieg2yuvPC7(y&nLGIgUF3`2FBne1UyF$ -z>k`Iq#4R2@+l7yZDbB9ltUAlVpN&ViORJ5B*3NZi^wnH6E{Obe1U(j?~Ln#G)@N$n5IHBYx?S8Fz1D5!^Pga#b -zFe+Bawsib3rQa`z2T>1{A`?V$dRIv+YF4i(VW6n?Wh6GTeLO&#FEpascv9c2l4A&J+)ATbpX@k9TS9fD_Cp< -z2!_|*@#)?Dr9-(ul|U?f5dqA|a|3Z-D4<5@9 -zXXoItD*QZyR#Gz<3hT -zw?K^I%@ISS*T6OLPflBbMYPA|r@%tHIZ_(r&Rd$K7${(e0<4T#LoYRkq)Thk5i!|2 -zr>BtL=0E`TT`2IWp(hom7ymOCRQd!D58$55Q#5g#TqQ&rfLkC?^KzCH$4mMg@o>pK -z3H=SC}Wo0Vd -z*!B{e5ePY$_DNb~kYnmolr?o<0A6?epmMP}zobd8PZ~q%S1GPmdt0hi$jMA5&K_oh -zTOOXY*&-R8sg+qT$5;SqRuToLB{c2CDJoV#W{8NwM6ELlbUe{xp>k=w -z$RoXlcJZ~>Kd9@!>)xaMN8A_3vtrdQ1iGsfy$7*iGKgAk9 -zmO3ebB5_Diam8a-x_!ssVMAV4ULg<~X?lkW6jE;;ozTtZJc(Y#T+_@Bqkrlsyd5ON -z4>XQr(eEAp1|?ad4P}9)j7-6mY*{)9A+pn8{?B@nO&%37oOMamp_bT)k`i>mp{_c# -zH6p&cllQ69qKsxhZuG{?PJdqKDr74Z&U{+l<7rLjEXSBI%-izoU=(UiuSP$#iOa -z=AZ0(o+dfJ7taeK@8TNIA_^W+|ER)9E@oANcFOUz;?^@nmeQj0)h_9C8CR8>uYunt -z#CDLsXOjH-`&=nG3`BA9WTHQJRgrod!0G395~dpF`l%z?!zwisW=YpF=_NA2^s#VKPFQCb@T2oq=%l`RUBGw`G;Lg@~aCYQZ8gc -z&k<(5cP?TnIbH0s*UfKhReLA5FUBwSVHHCBYvf}~yDvm@-He@fxh952e?o39bT6)7 -zx7<2u2uh7GV-9XV-`_PtCXlvt2($7yAcmznmPAezfZ+M2G&{x5@5CTWeH%QZgzkzu -z%p#OHTO{6Ea;F26iq0$}&ncJTu6cGp>UYg0{#x3oz3?SxC^`B#c{(oVlu8V-eLYyZ -z^TKMX>ny_o>OHQ74hxx?+gm?acQ}uSso&&#l4CO_#XbiQ^t!Zn;A$(vv`3iD4$>3^ -z=anM11!aK~d!EtLVEr(w)~bgzd+HW!@t~O-Rq-QLaa>yN7j`q`kcqGeN43%KB3Yxd -znPz&ijuV$5sfT1ESWG#NZuPZYwqw8LR3Id{HFgZ6?=$1d3le5G(t)_}i{r<;q>r+W -zD*ltIlggq2G4%mQ#x@f;3ry5x!7=HzHRr5#t~Cc`L|V -zB2c8*(r33yhKt}jsr$mxN}D#L%`iWmMDAgQ*zV0Z -zzlXJ|XfAr1Y>^Ouiim$n<$Pjb$bOX;#ZRKM1SKGH3}|qwwwC0N8o{?`By(ruJr$W1 -z`FIdFJM>X^8+9Xk3f^c#-0Psm{!J)TyK&!HZ`8dCzE2cc$@bP2x5P-VL9i{)6G}i@9KP(3mc80xKr!8C`?UXKYEO))?Q!=Ua%|7;5d)epjw)?Yx5n)cNI1a$0lr=wq5%LOOXT>fkUDD2DPUTa -zMOxgu)>qmm0d!yzF+;IOG -zD+h5zMR@~QY+X=TjNO5YeMkx^vEHhDT2+U#ZP@-)mrXwhzx4`fn}kW$n&M{7KitZz -zldxODyqj$wOh%958RWX2u$UsndE{cxE8VX&7wFd$a8x)$Sy&d|a_^Z+&p6cGkf4q4 -zc-HS#(w(|Wvz&*_wnJS|YhF$t4i%8-nak3msm)jhvIMru?B7`qV{tx5)x!Ivz{HyV`>2{i -zEFdpEu(Z@Xv0O)}L`Fl)XT*_SmR>}9#wUroFLCHHjxF9HIY30SJu4xBq -z%J>sM}^3|pi^??{KBIEa{~L}D+hJ4i0=~HkLoreqej(vOKq8`)uycLBZop#Amzlj -zd|H}6qtq*`YEz9xfV!*#i6 -zYdwZA!LYyA+Q7JP;#;=IPtTI*{8jtxJ6$o~hd&h?JF&d;#)b>Vqf7HoMZ`IEe5sI^ -zY@WZ@U1#onhM`K!LY*K?S_l?I(iLAv$%GXU!4`{y$)x}(i#ppBbP0j~w{Um#QGXt(uBZ7uemp-KUT-VP$4Jlgb88XYXIugY -zfPvG``}GRu4cM5vcTMka3%<~Tbni!S);(DPlPk)XS`b7QOlAe$WH`VA#cwq@wV)(zu)MrN0UXd#NpPe3urv|So?L?L=2gjG -z=8n)(zCVKx7^4Bkjz}%;?bJOn5>(QGXXzGMar{$IV*BwKT1p-o0S~}e!Fq%!{tFME -z0Wu+NuWyy9Uxi0&&5!pQV(ti9AXM4sKL6tL>p3+8`yxc}`Jkl4hPJiQf9pnW$Jha2 -zhmKe^$O=_Aq37T!Jj5vOz0ag3X!(@Y`V*LLQMXb}C-OwjK*A(SrcBFa;%?X*LF9UQ -zL=6u)?82U7Gbbv1L_rU!DLst7Avj)Z(4HEy3XJ?v-K>L9J?~l$} -z3(g#HwR4QT+0E~CxEaCc3x3i$<^#^YX9noAK#JRK_Bcng&Mw^a9LV*AV -zbg9kxOA&1aMl;{F5Gn(6)QZ5ZgSc?-*Ti^bli#@L|-YiTw?* -z5Ow%wrQBU3Iuy7T<+{?Y75B(3co2t0c0GQu|)02dpX^il0L@pyC^liU70yS42l>jfUW<}gACay@nfl{fKE{?G6)`;xQ0?6u+qL&mSBFIpO3V%|IRKu -zjt!bY)EHJo)cF5$KqtWd?`AmV(BuI1G8%Y7*ANN_w%ZDPMKbIWyG6jMZrvwi -zOu#K+C~)mRe}ev4$KqcC{*ROY3#t8ogm3@j7rBF8{d+C)1I(l}%StPQf27dCOA_P; -zHcBEFZzAH7N12*^r$cIqjd5| -z>A3$c+37z}9PN=C1&|#67j6{rsM?Rx*&n5oKI)G1sQbEbdZ;U{8Nkzzr!~Vsj3R(5 -zq1^HJO@}Oj69_TX2oOUJj2J%j7N1IyLJ1qTTdU=@px26 -zXx{A|WIWgAft{NWeveq^(xq+&fvM}5>C -zm~(*ckA3<7Ry_FR3o|f)P=ef;jlvPONx(lygVs!km}Ui73`nuXZ3t9IbkXkYz{dB7 -zg~s<0WP8H)EPV&_BQy1H&pMAkZ!xB+d>)c1h;|gbl+4*z&qab)t8Pk+*$>XdD>`eB -z%wWR!PARNhGtcI~ot-N6EqGZyfn;h?VHPu5ZET7?_jt#6{pJt3b8#gq+}6>zz{lrm -zL0$PzQbESSC|HPp^4s`8Doh^wY#T$O`ksOl=6K81D8Z~{E+NSJTPt!X1g4%9opd!; -zR7ndb+0K&Om4!pLRC@(;uY6Cy7th}F42ES${epDzmhjJt;B&kk-}iLc9!KEfR{jcN -zjw}tfJ9y4DX=5fkiqz?R@Z8D@R-6x#?U5Eap$xpFqx@>{umj9-U|mzW8A_^YwZN`kwMmZ>r8} -zD_0O{E5=P&utmzlefCK#b?F{kIkz{I|Adp5c#~wpgwtckVy~fMpYw(&K{2?CZl@>% -z9WK&L-`$0#bbYa9n{}2x_SJ3Tk}(ZPpJ8>;sr@}DzZL>=>MY*E*K}~~Wo6l}%wB1m -zxM!Cdg8tBI3*q0fzA6un^QvvB+T2vkQ>jGG-Es!L*+iErp-ziKAx4F5*GSEHkHmQDl -zgOfyndYsMY$}(HM{B!`w9Nv#_pJZl3@kBPdE^M;jm8TY^(=sx~K75sS4X{lNdxd_nnec7_?+iGQEx3B2P5W1`1a$5!JODKIkJd2+0UuaQ7FV=AN03mQHmL_izRR#O9iwTbIa2HnGv1yQ9ev*x7RbvAG){n -zP0B7f{aGzn>(cw)r3(xPX%yet)1!B1RSGw1BmSOGcD}yI0LoE^NfATt*v49wN?6bC -zvDuvpS%K%`^AnC^3u`%3cTw-zfI-#1=`_2T -zw<_zKNpx8`0D;cBr9jmBnx;X%aWh?XYbLdwCVYfvtX{hz+Z73=CCRQ(oOC3jlz_8xg(WMB3Au1v9@2fNRk{}kKT1OJe3d6;F%gEGzBfGv78 -zBO^G#^U1elLb6?DaW1|6U*yZfu74Ygk?Op>yG33%PG+0ux5%4MjfH@*uO -zyOmKV=hgV(HfE#6MyFC2V9;R!0Nv}T0mpY>Ax+YW>F)|O-7>GDo_V0KCf!rGW(2nI -zN{DA3QhSt)Aq%KyM0TJB8zslyOZ#d+$`7`l#ibrR^EB~)v3nXxf2`&THl1fKJJ$xl -zLHO$^@trLF@#Ga8z??W=4=^fI`ZSDSt!aju^X)&+Jaz2tc0m#Je_?&(wifY=R0lR( -z0%%GaAr*c-LA?V&e4VSKIVxv!9gspmD{bCN2Xm>(XenQkO`y)G+ZrA=-~H5Wtb$*^ -zHZK*W`q2Y0q|E8aBjzt#QiQJ&!*USnA283GQ$s=1o+ -zk%E;E*gjVFI(JV15XhRxHoJrJO_~TR^uYS(fzT_1WNTIiE7sXms3kd+IAyo!A5!JZ -zzN|5kQ1M{;QJ?C$BBooPke9NhXAdBAD^*y@FHga@aWyjjLpD0hh1v39&VOpD@2IkV -z>AL#OOI$p!zD#>x=lw|qP7b>_CT(LA3569@Tg=47fvE_hA#F>jx -z0QI`Vga7x~a;rDy0l3d|oUG;W9Ccw+tLG^A6eGP?V`lHv(%`A1?B?!-d~@DQ_Vs$L -zwfy`PloMnyGfmLR+-0)E#5V6-=5|uwI+w%n(ZL|z)?Yx@QBTo1PHX=1YXR8+PxD*l -zk+_03&ZJq4gHe#+SU24|g^~QGiBiWK+&?;EIj~K#%9a@gdy%qmRk|%X>WC)ho|3!# -z1ed;}KY|}K2HQRGP!(4;Q3ZLvNpUQya`^nF)5t%wYoxAA_l5@lwjchvK`k()h2jfn -z`*HT~O_5LK84J>Tz^LT1skK)RQF5e?sv^#!zDfD~b-EdyNX^d5_lGVqi_c90L!CIo -z)|#f<6??P>0*uD57IWkY2k^I5wz#4f3NL4C(6v2t@ojZbLYh^AYKr|U^{dtt$JUjG -z$^T(ZW`NEf7wyB4%}vYJJkOm@{O)a9Dn=h_=sS`Q8&q+BoMFV>GVSj2ex1y=S}yt) -zce@vKAXYd!=xy&;xtO0k#|Kh!Y;8`iid}oC)?mdk3bF!aa9{5EQfMovdfcfN;Vm6! -z_m`yYJ0pvm9?n63yI(g0>!a2I@s=&ca*>zWbv;p$^?-1Fm9ygDJLyr_!>EKr;^;>E -z8zqu7Bda(Shz1;uDb6OR^qslfsG2?ml`FUJ1p%%TOFt}G9l6G{$ -zHsr2*qN?P1@ts!D6&`EfJEJ&Bh*_fcvkU$mTYcAPlM&#)jpSlT;M2ER(}kn>G4v7@jlwkL)Ja9<2YeVq -zI(1TEvSKofPnXj_(NRb>vrB}2>sJgtYWGA%lof)zSkK3Iot1-8W{sUJJw0UWyLs(H -za(3c#FW!Q`uL^w)okK4>g#YZcMHz^<`s|wC{`HlNn4nbi)!pBzE^p~KO&OA80aU!Q -zM*()Gdb+Q**k7fNpxb+o=#W4BP_6nfJ4lBG8Jko+;ZYxLl_DEruvSMg^0nQxM#5QQ -z_MNY3^E!xu+UbBAR8fQm3FrOMWTan1*?@oCLT+3_vPv}>4D;9Fh0cSP~ -zq^&RLE^ZZD-!0x){1fp8ZeL{mH*0h118rwawx?pwdIi(MHzf8~2Cq?WYWlW~%=EO# -zQBK*uCAByji?;5wgam8b%Ct^yrAJ0FF -z`*be&0I>01&!7D593NtnF#8~OF*ZU9Pv@cCsr#q0J~0^s{SRpZXT1M{*1fkNf4sc; -z?6_?(j1*iW^vRfN3w1-5x2$pR9~M-#m@2me_BIYz@R46i>{jB%28Pk!yMR3N*Qtj` -zf)4691M&TBL&vrCpA8Kz)~hgA!-m_->e8r*NQ>i9n_6}qYu;zx-j{V -zo+evoDoRt~>D}f}7LZBRD~>ECw)q7YIQVT}G-5>gwf+t6v7oZYnqVPRAB-N2NQX3Z -z{`pXvs)$&xso0&s2|U!tG!4O(8KP-P9*O^OF6r=`ajLha4L$8qGWu))YcLqIS!JB< -zze9R5E0k41dt;F?Xn%h0n`xOpEVC3@TQp1928&y93R-v4BA%Fi-)-;HU)-UGKYV`20wju$ -z%olakpWOcBSnuDZjnDGrjDqFUJ?UwaFp@2yIoHb;@)(FBfz&O7X3J)#-R{HpsEemy -z07qG+!d^)V_?u*d4v{#P8N8JhqG-TJb?}o-?7n0Br^LG!AC-?NJ$LSWkGgdL6we)T -z6RZ$O!10g9T=|fdNY2hnT#HVFrev<7v48$`{|0ES!?j2 -z;^q<3LEkjojba32=q -zd6mBy;8t{vJi<^n7GeA#+`vBv>tS!+^$~kNtC)U}=#y-_=(kDcSJJEQV5$e}sb+pa -z+wkmdyGKiV{M7FM@PUk1k^8BS|D@xy>4jV~&x&g~MbZ&%bQB@pk_3w457%c4F+CVn -zjQnL|72$K6rI?K@A;xwGz8NWDGD2=8l^EL56w?dXi9$NtE7Pv@yJ52Lvr-tD8oqgn -zAf()!biv=i0wxFLNcjZMKrmpwJJ<`zuDII1*hSjnem0%TKWAyU8N$7Lfh;I+G8lQ& -z{OvRUffAPB(sP?@Z1E;1?7Gr7;x4;aRmDM#APptsa^?lafR{#Z86R?ctB2PTgv; -zxqX!=zX=k2@HcKFJ-z50Vuk;>>U)yo(2AkkAhHa>QsuHCowB;2%eAcdB?un58hZ8$ -zNPfV%KD-A$*E8OH4swkPMMvau7g0oGJis1!qVF0zuc=v)F)c3?AB-hHFS92d9w@0D -z2MsZ3vf^*YP?m>f@3)Z-HyIvIL6;{{z8;{O$O#3hA4}nDFYs0pe3&Ul^5$F_g!+8-(7itYQ>%wZObh@9o|k^cvZ`dF>~af8~JCuMW%~ -zvA>M=XbXn9ch2!9KW7DQ@S+>cbBUIVhgL6;^L>7C(Ys21)m7XsR;D3{)X5#gtMR%# -zo+ABRdOz;gd{$+|w%l}1tob)qRb2bmVmNycI)?o7t!fAPO1`If^M(sXJQ0__cc&CS -z5%_V8e%HJ%dOkNJCi7ZvplQ5ag?KaUXvpnr}dBQ -z#U)tEP7F#(l`>9+gu@fVdl9kWqCA(Zi%C^AIzCb_Aeeu*3afwp7lKU67{}ZFz3S(O -z@}O5sdz}K-}UIK6Lsy9jA8I1+A_u3#9 -z*L$e&{#>`wRMGI~GD)7hv5f~qy=~~(VkP6CDl{0fK#qI;oql*BN*$Oq>0DTBf6Zi} -zD2!si_JuV6l_Z#^`w7Efyx9R?^LeiJ0&PjH2!`;1qF+C7)% -zZAhxsFeeF{>;9fUHd85Lj1y@w5GJR)(q$%Rj)$kWq;Sc#rRIkp!lzb}t%mndMonT~<*Dzhc)#w;0STt#~y -z^7G%(KA#I4tx_&yKglT*mNZDBxqIoba6RVuu(4l~Q5TD6DG*5d -zpdAaLRjIckU%`=yiR#0Sf=A~po{=>l>^}p3)plSfVY-Xo_s|5Xc)cL6xn#e@{$Oo! -zCfuWOmYk(?tM4Fe=Z!CNvFR&%PxyH1U#hXmDQ_jx;J&jh5FG$Cg4`}mt$=)&$n -zGJCn2p{|GPW)OD_pn4qQXuRkj{<7|9J7VkI7{ZH!fqHFEfrrc5&9Iq0k -zvDL`uejJ}qu2jt{L(WPc(%rLwnf>`BaT`WaTSB$UN4#C2IR$GzvgYh@$s{T(8-!(9 -zJ?F3Wt6y-9Yn*S~rdo2P>E=6dt0MVw^0hwXlbR^&-=wpr+cNBj4On?W6OSRI@R}pwh-Hl^KgQkNyZ&!1IMuVR? -zTd4N~??Jbx8wd9(`B^%PrS{{!Krs2Qt3}Yzq^=$h5t)thnY*+H${1uI$Le&Idy%-} -zzf0P^qV{^KzA|^dTCkpH+?j(!X@gbjIe1f1 -zF!%87trzj84zSwn#O(twFKN$Fs<+=EgKbdS`26|J4c7NKEj10RUTr>B5t+iU!7%wgI%;p<1{NQgLg+jR6Q!>8B{2R7p^vDvOIG*Vn -z!@XhPJz~6RJi7xMkwYSxgVhQ+f=e?pTns^%yOAA~q8!t(vu)lH)ij=mcTvp8iR7>r -zNBshxHm~{+JLrB=0?ExRy#WWXAHGkNm9u_OPA2kvJCyY7NoHw{F9;6g3X=}LZ^5sV@kMI~1QieKO&0I)am3Jq_8McUP-Y{z&6a4|*=KjCam314 -z6pXKYrF@Eh%lxpVJF*_)O2GYxB<9GWkZKD6VeVmwA;1>DlDKbD -z=Y4rG^1v2eqc@wy?k0lw&UgUU!A6{z$#2jyD_nTRUIh7Wto>%wT}JpSI&y$*_R%UWs)634FV -z20b9>Wavj0I-6JSkfR35$zII{u#|urTtk>#AtSRw5;2YB@BhMS`}A;sOf*%7sGx{L -z4vJQIMc)kqST52nfq>V;%ieMFHtNV<7t~R5#Ynfk>xW;vYzEIRfV}yA)xnny^l8R; -z?^?T{;(4~%kdS0E+I~FB$~4_t3BB(bOTtz_#>OUkutn#+NOVAwi=7o@=%Xf#2f}i_ -zxaFac{|xR2#X8q>bu`uqKGdS)rXJACAK23Uq5Y+0QnwwzCo2 -zzje>`R-?+_8)keeAZCMvq-1(LL0os_^FwKJs{Rq$PRo2qw>bvQk)NP$9c$u0`4N+M9YR{W}ym -zHY^04!UeVNy6{c;MA``)OA6Tc0x0|s{s#(PiU4rk9r(;4<1NwnJA$LYxV7FD9d>vPz7bC~gXtyf!5Kf~=_ -zn^V9w1StR^@pJA|uAYs&_&m{;`cWnSOu4fl_^I7tx4tqpl&H?kqXReTs -zb5CJrNizvPP9Dmc^YLK^GE;LdI5&#UK5xu(^z0;@dmtjQo|#E@>q|!LQ-tY6JzViv -z)9c?=6=(;E*yK%ZWakd%tgGqOJc|BxtCMD3EZ6!x+U&+KkVOXkJ+n_Oee+p-*IFIw -zN9H3edotYAI1ZLZ$*TeAWP^PL)QKYl#c^PR$n5h9sn4`S@};FS#v0QR)c1X}WD*{}DNMb{VUuej5s|c-q62tT>$- -z#*#KO+=DrJEJ!2ePO@v|-9?Hr;*&WXevEZZ)T5-^d7W$Nwi@1(Z}y;H%j^R@?-4_- -z1BPZop?I~U>ICXR(Q*zlsTr%1w*ao{pbM#^(6O6&$QB4kB4CXN9wuv6lS4OAHJ!;s -za3qZN@grq(&KMGDl2@QpyffqaSdK#IUn8xUkSQ$9gv^m@yp_4@Mr*GW`VE2LuAfiK -zUX_oWB`P#he`F|e5rQDYfq?(X*OI%N{f&&9AI|e#&mV?5!17nf0!gmtd#$43!D>Y_ -z^0qaDWL7(8(Kq^|-4XOal@6B4X^Rloq>Mj{c{gZzfNAfJ|1k`t4Vs2FJt+Pf1vCTs -z%AZw)6M;c1W^Fd)Hd8-to%}50zUdEBzixZ$5WGVTr!cH_$6UeD1RAy)$fJJ_+QB<} -zf=WPM_DU>xXI&)6Oy|vMWH+BIGk@nd<_KqGftIzO_sFD=pC{|A9Fz<5Cbl=oCo>({ -zthFA84)>7}tgRO|+dDX-@%>-*<{5~DIHB%mZYU$ty3<2ebIN0Nx3-#+)J!)-CWcebQ4dY1Di== -zOHJD6`Xll_xYSc6l-^>Pwa;yy|5echwy!a3FIbbyAK2mV(wS6@(`3f#Ui -zM>AAv*uYoS -zxN5lG-m>^s77n$7B8r{Syk5qMC_SgcMAG(rtGkdM6;8< -z@*71|^)6i69`v>VSj!QK0Mm4g56SU1gD7Q#vNan>ZR-p=Cm_}1sA6}}np^LrFvzjV -z#F`38z;QyWWPujLw1b_+wJp#uDKCXiR$z~t+52s7IbCuCD;I*@+-^_ -zI&(WV1AGyESItc>QLb00%*?hf1bC^51 -zdTre2U5i2M`1G=W%%g!Oi8@LBMgb&~)ZXbYW+ESds)xx7i|CeTW6kZn8h--^!2t1` -zfnP0)K5E6yK}23ey!Y6?_~ri>u|+>J>EWhWV-kvSa_HS -z{uEJ=8-tM#j_A`fnT}ghzZbNtdr;b?*;>#VKDqsZ&q?Qy(^I%81Iy-1*Gr6;bWY$c -zE+0orziikeEobl?m81v9+D=LCvVVPBd3C@0awi9QZtZx3yx_xYS=}Tp@JvyyWOBWd -z*caSw9nd{+ry((>zvO_eu4S8P)khk~Hd_dpy7Ji}yWjT;cc)t68?%8dA{v%t{)>^+ -zs#6u^TbSuN>4D4-h21%noZ7U%7e091)#8910nDgQI@%K{=55;1Wi_8JO3 -zoq-q4mpTz(`zh=fI9L0e)hw3O+{R_=_nX!qRC{>ZWKh|o4O}QBE|nsudFBorXdo4v -zp8RUKs2_}fe^Tf-NqAdU^`vCd^rHlGcGUurl|tZ`B#Es4{X)=IMeJ4fAmi$PqwFi7 -zqI$n}2@w%caS)`D5F|wykVYw`yGxMn?h>U#I)|Yfq`Oo?xi1R+c*nG^CD0r6DRn!)B;pvGFfO(}gN -zwf)@(@zJ_k}%{EEeaDzx*M@oYI2i9ExK4Vj{xDYgKH?)wKV7=*WLi~*t6spka -z?=!t6$Y#qnlr=e+_4ZamxT)bwScVkvJBcL^se5bWeOq=n$64Hl2+#bpXY@=xLSViA -zf?3&Dxn~O`;H{TjZ7CKGQ{CE{e(d!2CVGedeX~y#G2u3*{p$^u`r=pG-Q9{tBI&H6 -z*i;4DJ@lGPE<%3{-h&WQx-H)co8S1|1=JId7@m(N2KGp|$*#R*WE8FHoF+Cuf+c5n -zncn>Dq}K(JsebLa_g(;#qh{7UMxfXcUpD%C0sVw-!8@@tJCWC+gGeu7lxtX2sXbLEu+%BSfjQMwOEpOzq*>f1-ONF)$+4aOpXD) -zAo)E+}MXE -z*Q~jrMyS{=TaKFhH#8oH#eyGZ`g`#rOMFK;U$@99HiIN;>LJc&@|9zkdZt#^PS -zD25g2Q+1lQ_m4e-9Z{=;Kga!8%*H_t{&TZuvk$5wZrxm|_A*yp!T?VWzuW>xcJ;Q# -znQN*2;&iPtSX88xvmF&Hv^{<^mv#$1inE4fx8JOMsynn{^q%7b(HsVeS<#tKD6?dT -z6tQB(YEPZ|Li%kj=F&6D@mbZi+-~j$0sW(NH_R6gJ6|dfZE(X>TjW%rk{0sLSPhIN -zdj2dY)HBKgnD~-VxT32_#+}m}y_0%{QC9$_0W2azY^~GiM`zXnXX7PMCg@DxWcy7( -z+M~VnDRaDty>Idt>bE%-9meLiPpPiF9BKu6Bde70YnMuik33_Bm-mRP4o351Lnnb` -zoN-g_fpIuVK*d?aTy8R`FYni61{j(tfNUDhA8LaZUeagXVG3%zwi3d?H2zlwD?7UN`s@nk^ -zpGDW?9Q83I*^C(>EUX-DGnWj+(cOz^V6;0L7~MD@6lznbZ=$f5Qr_g@hC6zuSr~y-+&i*{jP}hI`1Vd;vNPR_ -zbtSxZIf><^-m=h9Zy+ijZdbY5S?K -z;?w8$GM_?-1$#1n%fsIF&EjQRR}GuPo}w$-{O~!~3XDzg4mUXZ)8qDZF;S+@Z%SQV -zP>&H-GzuB3SuWyo&N>`?0Oj`-j_>U)a&-V-lzHqcf{9<#ROt>w2JX()5$yo}s2^Y4 -z%tG339t0uAd~uxyH@>(%>dW>&X0_qmy*%~(6iA6`s%*FsTj4>I*i@@~{oE8=-!mVq -zmN&>_EOxbrw;Ovqsmjx*72i!fg??O>mD(e(R5G3%2J}<*d{*d~1`0$1Dgw{IbC|(! -zL4Y_2xy4W`_uV4Q?xkX;OMpWd6dX8$iY0iOr?%gG=~a0DSHsQADo#l`BZ>=^t{VyBw02b{rYk#fEj+0}tU0WMe -zzMEY5PiESkBGUdTOvi|ut91%S=@KFPNNFA~*KXC^NI!!#C^UNRBFQqE}Us4ax$9TeUnt)A0ZK>i3F{D9UL_NOmuz;>>5j -z%FZIYmVrCD^xc?}RY~x*1C_|gD2RZwm+vH3QY^9A-#*?THYKnRJX?BFeqoEb`F9gI -zZQwLjA7I?1R|idHW{<*jbAr#+Wh?C%mqv+KktngHm;Oc^xWRKq>v4#^3(t`aIK%^{ -zscmFWhhDuIx>|9c1SlqeQxV&5z|kq?#_`Z^smgyeg9r81^brtNn&6O^t>5gqtGXrt -zKi?U~(kcCeV2c*8{<$=H$6^omtYi5O@M`?0&2!nc5a9@%<^7{77q#pyGpnuQt@@s; -ztmphlpX2Ws=B7tqmrw(lPtAM@_dbACk$X6fzhFSof8Dh5PQ~{YSS*~(?S*+>g0t3H -zNXmLVE6Rmc>(o{o^&j*5738{w#TbgOl(lxhi_vd_X0!MMP;5g^{x(OAxVFjv*9NtC#7-h1o^nr_=G1$u@K{{)gvx>))SnrQ -z=UmKuxR8Wa_vnK{zrPc2!(!H9Q?5^+maX!)2 -zwvXYW&4Ni<>+pOiK*7G>RTciW8Tg(N1L}Alv-G10!_Kxz8}aSCh}o`jct;@tmH-(E -z`MHUw%boK16d2T2eow^J+N3tDd7piAP+h3J_#B|E?ovb^s%@XYEBCe$gIF~+7*CvOl?@haZDm#Tbn}(`4*B_K?SfCNz=_K_>+TJ_k-zoD -zO-k~^*Q4~o?{%|gp@0_r20dZ7rDd4&LzWpBAdt9^?RNKpu`}yV3PVNNl;sE8rSCO2 -zvCb6a&`1FI9%R;?i(lFaGKx1?Xh{ATWAg~aPcdqfzIw<;IHRt1EUBeNt_XN5$nc>) -zb1#!o@%i(L`7X!GRHo^l<_~f$@8lF1-44M-JE+wkVssw~dVj%oNb+OqyxXaL4r33( -ze7=((_Z8b=T2^5ileYiu{9OlUt&@nwr=zM9Zy-<+0t{u&RDE>pd9VWe-ngvU3_A8) -zvx5O_z*$!e2hYA;0gS}fw{BDcG6v6DqQw|NacQw=P@JB&7ZfM@xC)Bj`gQ<{-vCzW -zt^i18E%6wT%j19yWzRhhnqZeLe!WvH8Jp&mxm -z)jC#9-74+xF0%IZtne^AyTzRJ>1TP%er**(wxUJqm{|0vrwFe_f6TX)s-p2E4kP8vN0nvM$r@47Y?Z! -z#O_VSAFgZLwnSi=AyEoL?rwJdBbsB$Yg@?XGw*UTHumx67sYS3aL^&7ng`v&)WvrG -z>0U!qRd3;ca#o1G+)p)2j#qS{HwFLPddq?Xci&i=Du -zUS|^v-8nbp3UT>o_w~YO!PE$2!FOK3mQYu%!&eaRaFZeO$8M-s|bufL-*D5L4 -znH1ceVfDTOMl$Fn -zASS&HlPtumtn@P1jo -z{ZNoou$Z=uum{eHa#NnAW@^?3spUT_I!wTk-80{gL0sz0u7CXC%tG&Xw5P;`@AByb -zj1GcIela>bmMpD$r}~Qin^bT4CO7@ghvI3#K!VAfG}121jU^L{AQ#@fjyS>VA})<1-mdiL!fb@%p9I-5bK>L|4G^uQjY;8`VHl{6S}XkEbnPJN_}u -zD%4v9v-|$QY?3v1(1SK^x71H^!!$3=Db2@W4<^R=Pb@&sCLT~9uFrYz!QQsr-?pDV -zpOXzHA@X)*5N>ihdp|WJ3?CXl)w$(m?^jB=uzdqq#TmAS7^Calm^C^gN)X#TTI6lQ -zBS%iWr-sqt4ecc(NhNK4xvH2X;Ves;#~T_MCfEMdz>wM33iHO%N*R)ov#B_mBi0SW -z=zy;oEO1rSVBoK77|Wp6XX5sj0dFWclWHY(#RMSCkg~4Et^Q}1Bs`D){J#bJPgLiAC?vnBVMDgHr+W!%vx@L8J)v6FWb={daj -z|5)}knTI$<6f3$!XK_zFzQyF|j?!#tBoD7+8&x9q8Fnjl#)7@(rbv=2&mQ6o-!jG4 -zmeF73TVFK`Z^nQ%neih1kjIAUQ0t}`bzP^KTfmFo--M75-gNF4&x~MlJcSisxQBN+E -zJuGJ%8%f#oLoPaqNYeWDT*>jJ{6hanyB8a*=3(B8fw#ttYCyOx-hl7w_;uW~3W6=p -zO=3dcXE3`;Pl9A%9;frCMbB#SH5~W;sb6_@Fe5qiN^1rqndMDom30H5tWz120Q>}v -zYZHxX8d>oDv>4i;@aUwc5%r*!!c=Y{>z2b4l%l-=)y(-+lzJh2o%j1K7xI7sz3Z)X -zT8;o&Y=_kHORjmhyr}pmp7UcEdI%Q(Rz(&Ta{YcYxLO(0m^$zU=-nQm`Ba#@V6$-7 -zEiZ3uhxz+z0dqtRa1-loYqqktVLHhb*+!}>>nXELAt;CmKbpL>HHrLar(Hew%G||b -zRfBKAYhAO5G_#vd)tcQ1R!RqTHHZ2S#H|-t=;$K%!eA8 -zi^&gTiv6Z3j6~x1C}$<8uRHO|z)Av=GV&@o%$IwBu&_?3ZvKM;{-8O-*Y_IUX&bfR2^%vlW6p0^7{F$jJKT>!?v4=gKne+4~k1tpl%OP6*%&)eV -z%I#hJfjiuW<2Bq}<;uS%{Qt2RL9xp?^jkpanrzAOt -z@1DvrI(S@c5WdvOyFaOolr>6skDNQ|cP2`GSz|kNy2VT%P~gRq<}jx+p){ea>X(}% -zk8>JdN?db3EC6L>A5Hj58zfnb^|D_#{OpBlQ~Ap|H|C@2uMfclul`5Ayupb3#GBjw -zELkJAx##W;Ob`#|OzmL>YkL{4lLumIywV=XOCMjHdx=9tcIWExeDF6l5xy0W=cU6| -zeQaQ4GX?aqWBld!1Wlu -z{w#{r?)5^Wt7GzLAG>Gyj=?ovk;!50@q;?U%QJwG~$2 -z_}j;BDs9(o^Q#i4j#td)d$~8D1sSzVOq@;^y(^JE$KLr}ILrD}3Qh5BO7705PO8bb -zEKEM)IxQAGBv=zhUiphr+JkU#rj9mhg06pREEO80VJJ5`W`!&ivMSGnmgrZwO#GGwf_Kk#%5Qdcv^$s{@ -zR%Lf=ugbWEe%Dp)Hgx=@H_sRiMWUnGeCvB#Wth?>utB%AWpp?hA>E*!O(ePCuc5OjwY@E9o4`LA8{K -zMuj{&Ex19{6dY!v(8@KHF%BRhGf!VUrb}iI*yxfSN3Y4hN?d1n$YTpQvy*PsrS=Fj -z8Pu(JN7l0&3X!ukxhq%j@+Ng`4B{uZ<&d%9g^Niq_xctsS-F@b`))zKI -z0AjjrVP-do&YYr1d-K#dG%a4=(UPqYpGa1QK?8@6KKF2@G;^Lnt_lTq9>M^eonxbB -zd&Y*`Z6Iu;hpY+hTI+u~!Uc59Sn>7Q_JLSdnZX6jwc3qD|8-I*O;oTm_wh -z*lZ9Gr0%_l3X5{@x)00oroUs<`H|W)6Gy2NgL4 -z(%ll!7^v^;3>V;6U1P3=PS}5EPn)+Z4C;|Ggn}l@|Cl6sX_}8+XH? -zM{GQc3zLqx_&T)Gsi-rJjZFrmfb_Vw)OwOlAf@T>M*KxZTHU*_QW6zn*+VQtoQga$ -zafoCz`^VgGXS>+3xwVNi#5mqb-p$KY!4yQAFUzB0^e&lx -z)BV|BCkdx#&Oco-k{^HdsLgji4C8sW-nE0l;jC502RqgfH=n(B`#@ZrWw529+zql$ -z&F@4UW5ZmMBwUsG4+K^eW4q6Hg>#0T7R@Xd^tPWUfAJAGf2*&s))+}Z^{eokaoZpA -zI$L|WO3otY?zm57lLQ|&#a;uj`d4ErpO`qOpRS#7ezxhE{T3c3gTK44)XdTD?gE`M -zJ}ozq;SBUuMv~d4sXFt&8T*cFw-`#OnkVuQvQQ1Ze$)tn>Dpzc0wL!ioFI2VFPv?f -z$u~|EROMg^!KLtL-56Gx!1`=A+(?p$33J3N6AT#WD%sF&<)YYXyj?^E!*rFmFIJG{ -z}sB|?Cd5(q8 -zvGmMJy^sag-2%B~RGM~C3`|R;E6?h-J?rj-yI^gF4ae_#05?!Fr)Lw0C2Py1eHtM9 -zkUIUj;1xA7*kL+nR1@nV&(OZCW_|qZv;Lif*}Z&!GytG3@9a&F1Fwhm_Q>?H`QXw9 -z={IGA@r9F(dd~WeVmIBdlvDKraQ>NKZ2dmWkF$3~v+0~O?evf{P0Lmeh -zX(`Vz`TA|6ealwlop=C%MfI^n3C?sZ8GL0GTn<8j(D5KsDUV+X%AtP9HA~o%dOBb) -z@Ju4Hhtq3AX@l<(lfmBt)YG2Nf1Y-makHf13Iv{&4D#Q+h`%nY@|=Tr`aFyAmbb5c -zOw`Z#AkRRk;LBq7Qri(GEa1cbB)hC2Rc^D`$O2eaE$e~M}LLfT8NbL@l -zKZ^P3z2P4$#@P(fl$HRb{!$hKyAsn=^-+l-}%8Z6*81Ikb -zKKWq0^y&HEqo%y~@+P$|{;;c@V -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 -zAOse!|NVIK)15bP0@fA2>vF -z6XX?uyz=$UY@9})LZ_oq0B=_1_p-pmcTUZ1!|Wd9d^^zsz04#rx6ltJmz8Z?wx6_m -z1HjS)lx^^67UsHu24_+?Td(9YPqygbK@cAP&@?#ao%=*KHQ&dSknmyD^uQ0yi7rCO -z-vd3cCW|L}qY6&KWzJZl1yf%9m?VJM{%N^HUC@0^y1_k~(&0TamAIEBP8%<)tuHeV -z?-hd1(8pt|T{%ieGVWs3e&Fo?+fIkdxiKG`%_c4w&wX3kd%@}26n57{0CY>z-)`?d -z@3^FYPY87?+wz4osW)ex-*ow{%Re3_8$60hQqWl05JZ#L=nmOUJCApoBdu*ynS62u -zQ0hOwERhSuh+)>aep5N&zCEfst0r;NidyE}ttZG{z1!#wt`@V)n?F7IZf3>RIXru7 -zG}h^4>Md5t&P+s=uV9DKazBp)#pUqJED0pI5W?vVg+PY(c)=@i6UTYKUPbBG3*Kq{ -zM{a(48=}>ME+=co>aRe{498E0E2!|aO)k1c0+#zX8=S1?mh05xjq3>jCZCM2J0_bG -z;X2z(Lm?9Zq`>G%>jjrrtS^7-I?QPl)H5J0SCw%=0JT}y);T%H5S5uSc5r{q8`+L+m5n0`V7G#)f6kLt>iwspAUA8?z-c#s3 -zi=S>gTsTQX+BB?(XCrL)=ihQ*UZ)P*V+u?lq}h(={I2O0_0CyFQ%!`( -zEob${s`(kix2deh`_gPf25mQddyDek7!rb=ON?^?Wk>GOp#klXRDA)df`&`=`~5iqD19N#mz_0@nhTj5T! -zsg>)#?|08iW{4}#wk~k221R9)eazo=!NIBa%9?$i$ajEacS&9mK0XUF=KJpM$mm#W -zzzTxR5_m{eg2SbFNvfUm0Y~zf9iTdbm -zn^-_4zYJnjcX=<)?z;PcyjuPf1aMk$dM*GT6N_%$SKH!hH}^3rDjN;b@|A#2Qjl;# -zaS77=7%6=24i?rBLUwk$nkTdEc8#Z12`7jX^MU7AIgYDJ%5@sE>>lO3jo}YK;7rmrQZ0aHxp-s@8 -zwGSh#Ts_WFW=IP)RTtEE!M^D(P(-wHZC|6(H+sY1{5jh$Cca?_YzZ4+*c$dRHw_Nw -zPsFTWcC-y7Pus!$WE>WRv}33#vY@EpcHg_qzg6BGQ7a9$#w+FH4nNy}Tf7Z|1)d9@ -z&Phr90%Rx*u#{LeU`wqTj{BAgMHm1O4{wa1y_A|y!BwCFNEGgED=;yrjYLvVh`p;# -zfdXX)A*4a!KsnGoyE&*91`yhZUJG#EE8dWlciK)j#j28J(g3idiC{NwIEOvpNy@ne -z#&9*5@vt2FyWy&(q$Smk)KX@5r3 -zWc8+%0kWzZ4GUr%+DmHk+E<)u+?#6)8wE(`(mei!6GnDaW~8THHIFpW4K$yOzwdG{ -zJ}lB1;V89Ib_i3?AbP&TIB|OGo_br*2H+hy -z1~5Q$z$m4YcMAAEI`h2%>t>=FfC!33Z^J_QF%{JSMi9_d=ATbMeo6G4Pw1{jgcGoy -z6z`v#CZIgA*1l=_3&@plaQ)#+Qe(=B10jLwk5{v9Z|51#or@RyU(PDh6oY#Gn0OR1 -zIF1FgJ+T~$m+^)m0kT&L7MU1&+sQAv!DkhVn*ajCB!t=6x&{He4G!@@`60olf|!jw -zpCksWFdQrm!ct5ySH^GAA$~l&>fIg@dOhZG1_wGDjjwK#(o}ewJvB_Y9jHH?*->orC974xm;CO2L<+&sbU%7sq@L3=M#?oW%_y6!SY4r!Mqo93s?j -zw?RV?h|6bhyBIa*ap57GAvchRQ2pyijAS6C)|0K5a2UUtlR(pHWCVd0v_(GUWgY -zzf{ROVScHakrKk%Vlee;?29e(J)nQCZK8Wj(^(RplT-q3Td|gm4)N*M4B56Zvt|a< -zx7%qfFO})UPZ;d7b8<%JT&2X`V-al;IU`87FPSryfYhY4+~TmRi`Nq?_eA7g<&1sE -zGg>=gi=&P6%b=l)PYOr4)&AH9+!6K$%)!gx?A9+zA6T_WWRif#(e7Cm2C^StyHYaiYl}l~q&hC*6 -zAXv`3w>P1zW(X*%KN9B%Klt%PQ*$KP2~_w*;^JtpaT|zfzkW2A8|tb-jRKt9n@8H7 -z*~!D9S{&n@5CI@@{G3Y^GEt+fhOM|c8EX0V?qfjR9O$Ez!}<7pD0)Of(ORQ>-}TWKpox%S#^nB1 -zf11z6_m2vi3EHy$()gHbwW$EeMlvxd)Lc~h0w^R?^FwF>-h@Ub8_>=TefeNQAUcmEMuB|LpNTo5c;S=i6rO-5GkYBj%1!9|MDNHn -zMc|IULSKJS@;dEI1BNw4kLDwH9{X|oC#(f%rZDvr?4$^nC%{%tu)k>KG;v^ITfUd1Q| -zU6O7|FE1lhL>c`=^}0-A(GR3cPvY7IUpn+Bs0G|e;Y@wFmfKyD@3Nq|G%@FOiWshQ -zf`)|1!6$O&OR>{7Xal_UkGMz=2F|V9@gKlkz0d-T;COsy<;4%Y9XG%2o#U|kXqxtS -z*1Ge*^~YOEXEo!{zlH%p=l8_ji^%}o6ikG*P{LdIfPJ|dExyaN&E~!CB`jW@QM`q8 -z!KBPF}8B7*cc0?<4{5(6GdQ-wE#jfev -z5Uq`c7QzmZC7r}Y>1V?0$B%pKyU2io$U*dmIa?sp(!pgUBY1_G@G3w^+zUv?{?c^! -z{H5t0(E@O!HmnOB_*S$iH~jH$ndj`%AeWrZy5YX8yUP -z!}lp@ME`LC%#td=1zw0T^&Rk2s|Hxv{BsO6k)>h|Xgv^L$%HRY@Wgy80S(^U?-GhD -z=DNYdg@A9~12k;#+~(hVbO=(t=+OrjfibmmtoE9zZn?d-u`= -zS4g>_!olQHeA7r-3ZYy(MCOlGs16ysrH_ipO^cXxjo}%fD1A?u>*`Lnea0yC6bND -z2S6lR!rPC8C~T>d6D@mSPNHlEUO2i!I=VX0IO2pwf5<}LZ0wSv8;CPw4t}BE>EEtN -zCN=i=l-@`V3lU@tS~7<+6W+Ow`yKreG?lGso^s`uKyZ8R+n165+6aR|3WYsmdKd;o -zDnPpmF%$~?)bTA^eGxr#c=$!mU*-{b4{66?*Ye|{hf^U@%~Yn$e-4t*KsIipKLd*J -z2_W|=BzjrmRp0hY=#RvIP^pLhzC6{AlA-JbZ0i;ycTMB3Q-5@UhXD4k^@)yQD|UJN -zktgHupnuy>VNs3;#WFx%_fa`&qOo`x`w3cF1CW#dL)DHA^nnCK9Vr~ahiC!OA8QbF -z!|QYPn~q&<_C;0u*E{e6ncK;;1I|!gfvBZ3K(;=i=(U_y4M?fv)7=0|FRaA%FSd(GnwPePGB$lhFS^h}{1*n*6sL^l%M9HP(9B$?=og%=DKdh9qjN?J7s^(Bj>% -z0+{@6x}%1hW$D^X>W% -zAk#MM%9Z^9T9F!-3hYnT^`vSIPvRe^%m+;cN`!wbtFCI9)7Ilnm+@h-Da5qWjI>iZ -zSqHTi2!kq=xX`K-U+<^5cUpqWtlT3OvN8`ec`LHZXt}@oAzH?KG+c9a^Jzkuid -z_Jl_A*xYfvu|3y6fKF+g5lT$3`AC(W$aTH4Ig10HUa$2S3+>$Z?7zQfzdoS_$mw*F -zHjk#f@8M(UJxgHBaW=XR=+?$u4FDo@JP~pD6W6!QU&#Q4a#`w#xS8zXk`}Z))mvs+ -z9>aF*{=+6vY^_@2x{7%*wswP#CqVX{WZw`&Z3kBTP$f8aBVwGgw0$SiOnCK=7Fy<< -zZLE)N=PWJyrbBEpqmIOL9E1Ktm^2W&ier=MhsES^r*Es`QYK*%VQ@G_#7&p-4RH!= -z7R>{tt19NR2!YNx$cvdHv7#czM}%r%7kjezeak1oDL3w@i2_OUM^(&w*dfmIGf0%5 -zbY|HL3(zekEj?MT&b0YPDp#FKP94D<#h{hoRZ=8vf;cLkamkE9FAUjau65!HpX0P^ -zhHnUEgNej6OsuQS$SGBB?;PA7mb{WgN$7k_BZ7fJwD -zT5;79-jyttcZ1)l?*tzoI4V8_)`fPCNu|?>gkI${psyTp|E>lq>Y*Oh=*H*%zZZ2G -zir)=Hc3-xzzCf3_A2EJtMSz?w(|e(@5flat$k?~abEI2(#DytUevJ_D{d10s6Mx|k -zpBlB!2vIViI218H4M9b^=~jBza+n4%-Di{e5uq51R%*^+mq9tpE7GN9b5x+`ACCx? -zw!?w=5PD`T590=AMm9uaKA9})C;#q|n;9Qzz-`kRcqZo`Hgr;7FVZ+}$K|3bzaX$7 -z<13pj4~slWi_=B11XJOCovi!9OM?ssJhJk^Urj&RZDY{Ab)5M_u3kBKr$fZe^^x%n -zqOEDA<{U{mS~}SUsII4j8!xJr2=fQ(MEQn4R#6dgiktCV_j8qEn975RT53&p5OshYWT}CGsTX%JsHcI)1I* -z$=NIf4|J_N$_F{n#GRm86Qw(Xo{1wBnCK9Nu6dN^G4yETaI<#t4*afU(`BWLDjg8h -zd*9kPc4?%ujOlkPio8>11<%uw{*TdcL(RjYKN~Y$_PL_qodQWVD%{G-F$P7|J@ -zdj@zagSAHLMAW@ObS$91jad?nv869gZ=^?fJ!M7TWbXEW6Ee99t%uHOx3=1~gsU9E -z00z*a##qv^@p}U9;zWM5UqDs&!zttkZaDbK62kFBfI1rx|4W6MOkG+H8ohwS>HTrg -z6{xk;yg*@SeSr6)mrKfy^fYBXa9S$#y6qdgj5JC&1MF^++^S3w=wRdiq;k0Oh98#w -z3A`?FxK2-8Q9!sd$TB<^#4qU1|95OIIUDI-pMe -z(pb5_(m?~*PO1wQCEy*9VH6oycB@YF2K#q&oShOC>XujiSW@tV05S8V@jGiHS -z%``@mk55#Koij6`x^q_k&-J#>t2wBAeql%u3dQOySnLNo?g!@>mP~#?o4C3O9Cp%s -z5q)YW(6l3RWAKV-d!Roi|A;RzAhDhoV#Gi`W= -zHd%5aD5AP`f@q&8fT~FOwlAFdUgd#azxh+@N+OV->);Z&F(d>-EOcGv!1A4Fk1{7W -zi0toDol>AN>E+`BXCgvy3FpuyVeja8B4Hri2#Rw^NJQp<{jJUx!hPaz933L0;y^YaPd?B^jF`JkMWW3KC&&3xwjZHE`=hcKMYjw|s^<#ZRltQHJ; -zN%n*e{MOy!>~Gxfg0U3FnxwO}M9%j0GjV?ea^^~xN8&*zenszpmATRi915{RdJ-dn`U+Yzt7s#q_FVeXt&yG1 -z&j*F}VCY=ssuKAvZ=PpJ;|s+q{RwT$@N=r2a`Ar(p4!_Y|61XcUPuNhoj?yH$?WEA -zuv31Lu$%vlH5K63^Q3=Fx!ig`8^F861W7+D(&3<01@nzF{GZm%fA)Dhw#OFw?Q071 -z)Xdjyg`O7V^J~);R8VP4h8BrQB!zBan?{C`OS}zB(d+u*qbDYTO;`QYtSxhqN6|Y6 -z=n)dd8$?CFT5hhCx7N9W5K)mnYQUkIibS&Qj2sLFgmQ+yicIlyOpZ1!hU$rsbv9F@ -zbz2RIVjhbwV$fZ8byh62Y%56PNJP@ok(wZxo*$f=i2;?gXT$v`kc5ehGg6hsrrwvQ!e8d9%`QoY4w^;4a<|?43S_EiO<;XQ4+2_RXRo-Fw0F&%rgmi|a$S;?^%Pf4qIlF`du|+2G0bA^O`Nz -zE6Y9wt>JzVm|e4CA;QvMd)Tnv>hYOb7R$lN1*FsTgr@s9Q#f=&g4Qyb8nq~O$7@-u -zg%@eR`={rZb~N>Ovj*lcWXlfK$;InvZ=OWUEn2wj(wr)Fk+CIlc^ET`h}xvEKMx4w -z`!lSkUD`WzM1+^7y=0eJm@^d|j;~d)WN8#vcb_{$oOI`1DK5gD{l8x6pBMt**~_>D -zYk>(%FLw^_%%6NmYUj8rQIms2Ue_ir*U?MNXjvy4fYgxCcD(OX5RZ5+qpDr(S!q$r -z=sL8ZWDs;FG7<&rsFfEEQSN`ZR&urUo5>-miz6|x#%qO*RXD|U(V}D^zepwyWDLjR -z)_93=v69(n`8Aa*1cE)%-3n#eOC~4l^f2tvGoWI2*^qT631MYkXy72ucJyR -z=>k6H5E`XQU|dU3bRLER5b-}>8(+ytgF$qK?gWm)3-4$z_&C_dFhP2jD>~M+kpPAm_v{)8G_%%h#M2f1C*U~t5+`jpVA>5WZm_8Js8{AV0?u~-gR1WgYwCHz -zr3ly%`2i|Y1r;fRbO|M(6cHgRO*&Gg3esypREh!uN{2}AAcWpUiU=h1-lT;dsiB6u -z2mjB#&;68~J$rU%XJ==3XLsIlV^qL<;mXSwn53WgJ)f<&)EGZB3{czn5xhdwa2??r -zEY&Y6M=37a%4SVZzq8Vpo2^WVWslD5?kj&1t(GH;uOb%W4mZ#RC4Y#(ypLa58C -z_YfWv)Op4%TT@@0->YhEo*=L~w_?a^12VazJG8!hXti_@;%^^Hx#S@W!oi*an6*0j -zT+X|gnHSj_nLjLg)FyC77F|p|9a8?7#DLJ8oDZ}Nm9~#($_gB(cprGAVO(;_An4m{ -zxFnC}Blars!f@4WeoNUbvLp$rgzstx$%j_&0D?Ue=1+ZO -zq6dB$Z+|S5!YiEg0ymxxxbFL(a02%k{apPh)Ume?+NbKJ*V4i@b@X&=3eW?U8aiBX -zqITeIh6n=7^mCv^DlLoCSUJayLn9~M{8YYLZO$?gyaz42Z-WbzIZkT6yOnd;6uZ!H -zRD|QX>F1V7M`k|YCZ`K#<5yCMi%$$EhFpL7$!rfRPQ}`Gg_S(Z=XI*F0V$M5>m`Fd -zP`?0RnbZODivGi--0~kzug3}F2<)X9;GdJk!$ -zP`MmiOkE!OxtUo}Y}5`p!qj4-qNuCNxak#(Ffwm(4*CncFzyv=7Pp -zR-QVSCYcCzzlombAm^3%CjnjjJ)*w9WQdK_vOApG0UU0yp*XAW8+lBnkv)}$&MV9! -zJwlv5OENtvKZA&8Dn;J@xP4#3Z7Od9u|&{|53L#CX#f40vQi}VYq_Snvg*LqmS>Xc -zw%1eC{8XY`zB_iDv8PR$ynT6$z;TsUq%kAnqF4>{>_uM|t5n4*?d&NFG478n*QcMG -z#buoA$-jPYWX6PRob1)Ld)TJ9o2f~^zLZ5>r_@JZrk+B||2}$Tc{Yp;L-Hs7H{wPf -z-rFl4oNLmF+VxdzOV?df<^Y`!5=Q$zI3-bX1w|rlv?q@mm&wOU(&9 -zN8(_1;8%zqnRr%Fv$|etBm%k2aCGD+uyjAY4_{r$>i#5GNH_i5KJKd+wV3InED&&8 -z&*FWk-l4H7OFszL26{rpG&|+hbfQ~JO#F=_A>g%w{B2NX-S9E&57}7Q46cs^dM28u -z5`Jl{aE){TyuG8i>D&n?=BK7kZMVpetZo5$i0QndO!xK`6#Hk~y(a79eWy_i=$_Km -z)-kG3uchDf>fn{7{cHhe=$k|Oqsagw2#9v_XSRoUX}1Hw7f)lK3$Y4b;_fv}$vb^z -zB2_(yC=>nCHo$fd27=q^oNrBw$1ql>ciX5-*^1bVBjnf3n3?-N-oor+dhrz0o050O;|#4KAmdi6rwz&XWZHm2o6 -z_I?coF`u|##$1E$?NYgL#J$0Xk9pgn{YfC1?~0zEO0cCz!{FnqG972{(tn@h07tCM -zdHTW$Kg%oic0^<2Zpp_&cN{efBbu#v)<$2smsGB{ft%}j`eQIJ&$~mWgYB*;&lKRV -z&NK9=sdp`L{8bG~%mX+p75^5ETy0a~V-kMSz^Y|UvGxv;2FN|e;P8-~NWHWIkb&AW|SGSj}dm!~(TRc;6 -zf&bHmy0^XD2Z}W#jAE^8Y`u?Owo-+In}&DUZs&@Md{#ClM&{aUyRz^udfB0U1%k+~ -zg8PEjJ@*`YQP%5-zOSX0BH~7)UUne>yffMHusGZW1Pz<Q#^6nkignLjYgQ$KPFPB8~ww8IjH -z!#69Vo+}h52d4LE`pm*E#J+aR;#wIW8a0?56fB?MotFs}1fEav0A6eeHo>ER6+}iT -z+NWACU#*(1T0nG8TSMRll{V*0w-?(vpesJOZhuWpm) -zo`bGEms}Fdj`BM88U -zVrVo^cr6ujxdwama|2CQX$zvou~Hi-E;%AX*4Md2Da2f^Zn0{T#H<;8QkoUBznz$x -zL&87SIZIoho%a*-xS@7A1$cK)3)!%e@ki6PPc|n$&-R0FE!-Fm@F^CJxj}pkqw4sJaoN$!CT_Sx2P?ymhU1-yYljXHN*ex=TaoawWYDX -zUsLjpUnFFcCn3dHS*nGI^+-7!YK@4ed3O&(__l>zP@)#wIF|6kbk06|zs%=q-nniq -z`WBNo8*#lJ^Q3!^gC$ULOzbv|9PlOuiG!k=qzO17{^FKN5QEUu$^FXs(PHh>aGqr_ -zxiN<)B5yA8Kl?fIjb7@m4sSO%V>om0p{VQr$j_QXLnmT?ss_cX$m?fE16Grxeri4L -z@3@}S&ffAu>UML(Sn8C=6ON8`-eU4+d+c%dm7k?Npin1+@pi{KNji(I6qGRY()h)OAKmIP$hAS -z@(;z@Q9x)U89c)-qfx}0F<*L)uQ*n;o51z^Z$sIg%!Mm^&CJ2STO$|WY;zgWLU91Tm{MO>W55+q}d7v4kRvRtKSddnj#u_UTBun0ol9y|+QUL`O3oM1foY-p}VvAzWu&i(g>0u_&${v+LsnyV21GIrc|U~|+-M}Jb~46j~2XUwD= -z>VVWCJV}I86R_ZjAzktQ(94`VZCNE9bk;b@%|~D(1JW86EK{ST=wxpJs=YoN;~z-- -z#$ycDeR5tWpZoS7sDHl1rg~;)|NE6f6>xY2<@(OETWs2(kL(xc@OwPB?tK2g)pPgt -ziT>aOdG2#f-_jLl5eL48;fyc4JI>K751N53<2k2y&6ftg;{%$pj2k($ -zzCm;y1C8n)!XduE@+#W&l7670Ws1I9eMo8pTmk4m+u$MTNpKyP0tfw|=2|Y@I(?T0 -z8IBbf=n}|t&Z9l!>X%XS!#H3h1)mdA5~b-HhBAQh01&>`yL&Ac6_yH)lW(S#OC0WC -z4WFI9=(|rV?&ot_A%P0*CVVgSnGKWV9Rr0&V8fQKxaTXFd~deRbv<=P-|f@>KRUu< -z%fhF+Hq9Y32gveg)KJ4f_AP*2=l7Y)`B&fZk7lk75?$imQ-e$Y*(pXRecIMugeL3#~E&rFB>4c?#QePgCH{!Sl-be--L{B|T3mWWkRYQKfGQbl5eo -zp3+(Lb2rV(m{_tqJ!)O|B61Tq3Xmk{y69B#Nx&6tP -zBNdeKY2QooNPf{j=!*Q!uHO|O15VN`Q^{!=IV}FnI4j3!cD!ks;60$AEeY~)=Nh$1u -zp7ZZJ%zuL62r7W+nR52oVYe`1F^s~#Y(-fQ<e~myEpNa23gNH$bA9?OxUm-0 -z0B$}hUJ)E{t7Cyn6;E)Uq(P=J&QGyp9}r45Ri%k5G&(ypv!K=ph0dQOS5&nCZOT*o -zBfE_po+f0;_nLy*{T@Hi0(JwCVRr1Am*nl~b5U+u>u@PR-OG}DnH#h3rFCHE0eimZ -z(4uvXw7rPl;5ZlYLZ?||<=pjU@*!e!W>qa9MC`qw=ol^z>1MSgWP8F@sVzf_80Py_ -zB^AD6n&N%ArW(qF%})$XrI-FVW=ZDWWDykG(4i2Trcd|`SucmBR$>#*wnTQcVplejn|Iu%Cpq|ty7I{AN@a~Y= -z_&C$awYlDNdr?|HoRM+6>!J95fW&swk)luGnurHpQua&b+a9n~43=LRzD?^uE4qWBxYK8ZIjKE1MWcgcI4Q2s<0Cs2kR6F -z%je_fEz_3Q?@$b0_nj|{cPw~?lR5X=7uu-l{?IH^zUsO*nfSk#5rcEv%qinss!QTW -z1R=0=c*0w0ooS^^wj#51?8Vo$WcQ{I+QlitSi5L$-j%8OU|)qH){`ScY)W{R#S{$M -z<1@VEf_c@}Ht*uQ0^SZhCWT({*HtQ}9jljvEg$`m*}y1&D2+0V;11${w}|QtWo_a? -zD?m1DBlQovrHV!dnHzX5F~E(P`25`y?0A)3doGXOc3r*V<=5evIVUH|V`u3ZGw+<~ -zoR{f(*pVA=Gjyl_n-e4L@x7w118=wfSby*Mw0dRD_*}3U(2sKY`U~dOI}(LSb~er3|llTyg@=luP2v2W^$>NU9S5U;fBu;|naZww~<)HdABmWhP@{Gza~Uyb@=0Q=X=jB&TD>-S-u1i!8q4{KU{6-83|C^cXtj!Wwdp9k|f<~O+(V* -ze25~c@%hPWCCN^vcrWE7wr*~=@K+Lp-DE7t>(on63{va*B>X`wa|6X`Z^`c_$*t$T -zbzHgtYr!#onPlpEPaCg^>%Q7A0Zf4I&OC-A-Q~7ZS8DMW7Qcim9Z!mMqRe8oeX0n* -zfN{d6WYjRdl>s+<5Djq|Joh$-k{|YH+#0H*K4qDHl$wDDHL@sHZ5rXBI#}g;R3&~? -zXY!A~ma1+EOk?Ow2e8@)-#+hBmC>ve{X%8J|EryHPhF)gE#BIIF=YKiE_FUzr;)V& -zs#7pnY=W$q9m+(dpHsY3zSi~zE%OP*JZ^vUw=0x&z`mm#yA -z85}WZ6_Sslc5A$3-^L^$(CQz74Ki8QesBd*oh4*#^2AYH7GdIVuzw^Tggwo_Z8JX{ -z6dk%!_gv3_B9|=~G|^(vY%LozL%KuvHQ;H^Q)B^}6cXIyC2aJ8`d6=T5O=*cK3~fg -zn~|4ONq%)r`NIJin+Ro9E&f;o&02;wdv&#!^=$uf4+3xH$oTwR+>|V)Ev_-GsEYo+ -zohw6PgLoqf^k3m(vTmkz9@}tyXi5k)I0npiFd2PZUi?XFzDD$Akszu)sCT~ZW!U=f -zzgs#7QZL9MAdbRw2j`87s)8(OG(%n6(k07 -z;*bq7TV!Ptn8Qh+IH?Z^1nDC_{ijBd!EN{( -zTLym~Fow-j9(O33{ybzYH9>?Lz=MZCDS$rL>34+t;uyC^6yVA0z8Z@Uh+2HHSg`&O -zDe^q^0jX-Ou99jnfn`tKwwuP;yaE2TEv6UJ$V}UWR@t=7Edoa}m?ozYadIcyy4b5l -z)nS3%kg}HwAntS(ZA5JYJr4>>p?Y(o!NE_8TwvTDIvI-TDg;oxmV^NMBx#69ym$pK -zr}gXdstJK$XcGupu>q4z0p$Xo<}4lm*pgX=KtZ9_{fAgyH_C(RES5ty%qyXJ7#I5- -z93C-`L-t9KgEyD4L68j=k3roD|0UG=`UmtSph4+k{4rv?(g{7ancb4`uYi-19vE@W -z1LCRJBA)u4yIpyvJdi?AOhYI<+J4LA;JFw4QSU!)iDd0u9&G>moHb?zf@^4@JYK%Y -z>3qgHZue6E#4h*D4R9bu{KB}s_WIgS)w)j3rSwc!_GFRepcZt!K^ -zA#sa!tq<1Yb>@g$d{J9NiKjmwcJ+K#NPNpNy8?~`qG$@9o`;E0ylpKrgqTkQO|Ft_ -zs1DlVN}g(xxma+u82%0D7yIt3+m-<20w@;h16sT!0J0-Y;1ELh=a)XYhljD;XsQNKe$6V{jCLtVU`m{4kIO#~@JNAwPf`z{p$+Pj<1GAP7L(x8VXBPJL3- -z?!)-P_3YyIK01PFJB=v^L*aa744$g4Lg&-F8vkoDoQbzv$5qNY+osixP7Wm}O%pOq58GaErPKMTt-6N~Ew$bn`Ir~q?Un8u$5Pr+AK^^f(88~dia=X@@j3{#A?dzO6`${d@ -z4`gKv-*YZ;N*%EX?g1wV#C`W>e0i5UefGo4peifkj(dL<$E&Xki1D1yq_=?Z_5pin -zb{dBa!vMaRnqeb{Kcos$Xcjl6f^0Z=lp$RJ{qNt`PZ0#!g*pGo<*S8KhvEfmMM(c; -zyV&B4R{K0?K|T24QlA^0E!Y1(dengTPYr~c#CVQoCO#yiF7+|qkj6;Y}Pq6&m$I`LN)6+l$x$}|xXNM^Tzyjg_Ser#vhSUwwp8I-FM2~mO -zMixNF9-R{RXc=2$k`L8mPRFWWuQV06d8p3vqfF5G*BhUTZ8T7Z$S;2zha~J=lwj6c -zNt{+l->HUEsyJN2ynN`j693n-IWMz4Xt?5B5B -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 -zr;p8xwJ#z-?|>zT+;nNwFC2XNd= -zj=E@?$Xqwk;0=8lBj;z?Uwf>Zp -zqPohNrnEr%OHd#{_6w$Og{_89f<)rC@YzIrkJX3QPe3@=1@p^6ctkRhrr&#<^9Vw2 -zOO*4|zUd(t+4mza{n7OSlx*1MMY6=qB&RxVZAUSV$kr7AENOZ9m#+-l4DKxGV>$N3 -zkt)|T*sTwF3)`k~oZzY$C8@1NmiwgO>!dwxjo5otP0b)XAb208>2j;e)p}&0c2?^5THsk$dgkfBVR%SVGHEKLKjzHz8+S`R9QoY+S~SQ630U`Lr@f=#UQH1xePa`i@k^k? -zgJ+~)(~J%6^x*^drPDKK&e45+_UPy8zn6ECaG4XOa3Gz`CFL$)!o7aQm*m1$@t@D4k%=ytFmt{N<}613crE}j=HYSnzeC}37vO&Hl~~`Nh}>6`+3Mll -zqcO5zdM(r62`oa-0rF#nSuZ<>&CUI#d}~QA^n+ie;unz1**Q5m+U$w$njcI -z1O6>l5alHFCPxze_MIcm4qNRMGAQV{Xk?=gYVp>e5ZeoNlr9$a?{X-T@MfY3u*(~2 -z{P8(dv=l;TnW^y_KJd>1O=|U4S--Emi1#I;{eT%P`WO3m@xhO>HaT>6D@HA5ERH9S -z4A`RWi}P%-Dz;HrZyyUve`6|NnX&ZE)$xxqzlD8dEhl?5BQa4kTuH!0rdR!V1v?1< -z#~*D{B$Zb<0v1JU)@Vgr -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 -z=Km&aBjve>%|DdU_@?e4JH3&*WYgetDF|GGzQ -zN{1!rP8m0>@ -zPN!028Tin)9x*jW_3AxX2n6aPm*$ZHhjb5Vba6 -z7@=DYx{UfJKax1~NZivKBN`RaxCF-$1gzd48v>UC%zK@oEq8(Y$l=hl-y(G>(P4v& -zIr;*+LS_l2BlTOd{hUvOyR&_y=njhdkX^oIu;*vkm6FKOEN&zeA0iHnwA%)xp{xC6 -z>?YM6uPO(J3_|b6ZI(ab)eNLk&%jKJx8A#2Byg7E>6XX(a_%HW8TFiVPX*lBRZbW0`wNgD=`u%Id-cF)c52NUPsWm{#(CbX#sV;u@wC5B -z@_Rgk4R6Nzag8PhG3ugq8W{vNLfLW!psDeIKF?*zIwbZ7yur|lx?XWlUOhiAn%rH(8?Q;0zZpx)x}X8WM*FT -zh#%dt1eNNxhv{mzh27U?yXAN_OPE3GA7pe2y@pq+BA{k;^ -z2Y6jvs&0q;UB3Du12;{_XIg@BciTaAC_2Go#%s7+LCIf{{#*x%K{^%NZwm9rH5y&9 -zW;+zgi(78K{q?5nO|70whaPQ!SnTNjA0wpUz#y&gcYw^1ez3k_Y-solDty3AfUPqs -zD3HpDGIXZ;Us^1`mA?0mi#!IUkV531yc{1u?O4~aom -zOTG6DMjs-nEGCsY8BafwLEK3uw^ykN|0F?!|W3Sx%ncboA-kr6}MWLLqNfU|K##7FriCz~;-e -z*c??I9;*VPs$J{TV{qiXxw4i$L_?4+zH>RECAP1e)dX2L663lyxLh!rCwfY4L2tkqie+Y_X5Xx}>#g_sY -zmS2C563abpe{EW{LcIxqK-YhC{>y*#VeLav<#&KBO*qp3#6oT02r>vs!4Cz{ET69l -z`a}QuZJnsngP%6iEhVE+#SeSw&bxC=Y;8&UDFY?R(Xo|g3p>ZeKTto2zq=6#<^nSh -z->`2IfB$PiR9*zVe%Zr!S2D8a6bm-o>4iD)#gQ+;QPIEf3O2r@-AJdC%%)qPf5PLH -zsIU=l@pI}~I6&NrSlch=!d$Or8Ra-}W){EjubgoSV-GO<1Ob{1+r2>L6I-*F2pf(b -zoU`WuZwW`kW!pQsdfrd}LVh!!J$;8iC -z!hG$CcK33>nhI$DB@J)zvWGIvC9~BGnPjAcngQ0WwVS}+pX@#e>IZP|CzfELbiI7}vD|GkbfSOd -zt8rZRUr&g94LPUXRB>Sy0q6#~9rKQ$f1m|U9JOpiix6~^8Gx((jRHc+F#_OuH!UIl -zc=>wM>R~GWudq1l0_K{z`}+E>?5~f583@Q&BTs|=X*0H%%IUQBZ6Gp)t@%CTvtj{Y6s>UDY%mDcivd| -zA0Y^3FHI9bwuI%5<*Ax@(s&~OH3I*?V|d(37P|^a7DN_0`&=To$GW&g#Y38sPU4g -z``6Q-KadwGAp-?ZCEMr0ssOK%Av8b$II$GS4*Evib3W*mcXIbvZx;0EYM)+^h8KxB -zdeMi~pbw}NW;s^*ng59tjG -z+L@r7+DB#735Kmh|hLm8@mQ!tNm(j86r&tzfM7OO3yYM?DRbz{=bs{v4BM%pogE*>>slkVfLyZ2=`f494q!DI5l>0rdEI*Kay#jvCo=66QrL -z1_NJGP+9C(?H=^z>3{#<+BtMHwC)^fm~et`CZy|!_LulAXCkBo$slHoUtFzlR&F8@ -z10pO9_W;TPaE)JW4k$;^B&S2!@hrGF=c#D8QeFX(FM#@Uk|h5K`A-AEI+2AI@_-Vl -z&PEeRAXkpEDPno-DF2nG)J)&ms5l*b5sQ7pszA5E0=z`QgmH%Vs|?iON} -zgJ~e?z;W2BKy69GUDg-Pwm({P;ml1Nv -zXe#7|ti12t_O*AL{6S%t;0zL?>J%Jv=r^^C6$cq}uRGcjl>LM9KQ$S?E%5Xwt0e%y -z)pR*|Eyb57gXzK9;NRW;=BNBqrAks>Q^wO~?sDQ$X -zbS#S?-JMH_ba!{>N;ljyy#KiI<$htPDdBw;2?#cAp~sgEB_w^MDjSPuaW}x31>{*etc>=Gu4;cEFqfChm1E){IfN=2u%` -z?_OUmKSD;gbaxWz@6RIt8=P*VNvvN3zCtU_;aNQG>&DfxNuKS05CZ4=Sv;MY5tw9P -z1=+yS6HfCexjpUs_Z&gUTM8zimUQ-{t4mJhhfCWFTrN^Vi0`adSmQmbxY&fYmATmgokJQB4Y -zAT*QPEH(vB%>#igjobU+VvH`K;eXCETk4WZ3$$FWp@;#2SnV5+v>DFCx$ -z__$&sRSC>A)s9`KHo83^awJ7BGeLuayIVO4d~>4&6vv|W0$U}PGTH9g)d&N$1!za( -zB8x_ppzhTda9hS7dd$mV#0eIi1lmhp;ygOW_#&OFXGdw4Uk2XcLrc`Lkp2^B<=+E% -z@AV3h=!P#UF;0+WJD!gK{TFyQf!07z={q0>0QZx?^20oPERP8Uf;#ie@#rmb#c0nh -zej|Qh8X@SuJstA9AQ?#cH{E=sL2s)5*`){TSfFD9YPDM00a84Dm(AHK)-;7Y;y?0{ -zLyLlOx4?bRmZ0@(O|%DA0IwFTdFi|TwCKAK+m6BVvMc$_&Xv&X>7&$*x8JN;a3%hz -zB2ii6s#@~@EnHhuhSk)AjUoX1Q`EuDM`JN7ak}%_(Cu2`x44&gPXkXrbzc-P-ZVR> -z^3D8sN#MP9?3tY)@-1TP5*N^!Km5wU{DSFrA&2*xd|FsbaHh-XL{DuN>l7SBg=shn -zetiZz@G*Aw_(O3qV5iuqs3o?JXD`$tbNSkwt3SinX5oVV60eop|1Xl*hAdxEw)632 -z$0R4+j-hGP<;!64 -z!9M19aj?r!k?K$eoDs$b_(H_A*p5OYGT=jaH-GBg-CU7f=jgMn5z^3LDoKAYMNL|G -z*?OP_34OqiygP1X4g3DwHF3@#}2m?NZHAR%Q+G*c23 -z?Mc5cZL*z0@d?Qyc~@FO}Qqe>oEZL#-~fIvv}pryzIKqweB4b=LTA0$M7y_AJ -z?`t8nXP+YU_?jV!)$y{|9pNI|zXVw)K(3p%WNFY&^^Z1#-hia<{EbaHi7J?{M~Jgp -z-E-$!%?DeMHgYa^!BZY&L2*w5Q}!qJs@hNQ233@w;AH_k-%(J~WI-#j<7FuKxKH{PqA;)*qzpPnynI6$ -zC+zG^Bq_~u+3Vrl8~Ay6nvhPxePVTItsQoV8;uPnr-Y-(qDtjV>5!%IRi?XOnfPguct(il;>Y(Aa+h4x^EQ^Ij2MoFdNr;2F2RHGviB6p_zZ -zr~xfr -z5_x4if8FeSYYCbUa-CkD%$CQNdhd4rEDW%i3t&2?yuy&ovd53@n5O&$ST8xA+m@6+WFo8Dn4TeAJY@#6(AZP`e -z=}P1~MTD6DNuauixNrXl#}gO&f&lwH@+y0%0H+}Ji+uqD7KncYRCY}Nc{br`9OB5e -zo)zeB;M@P@O556&{Tl*MCctDR8b@YLFYEhwqyg;<)E|mF8Oh_}Oh*C{!@#9glDWuW -ztaL`D(Dzb(iMQV=c@6^$9^E8-VIElxiOuJ7%5-!84KljeSc?vSQgIKSDv6Fdps;}Q -z;ACo$jy(#8;Uz^de3h8|6Z(^5w4kJL>Pph0J#IGU0fQQR3#AG*b34;fe2n?k>(U>( -z*at0+Q6Ts4zFupor`K8Mb#p{NHX|8Ey-2#9#+a%4nGT7O2M9gY_1H;71ux(dv* -zOtIV7n+e)-BJO}Dg5I5ckC)tRB<~^fk?Gc@YBm1CQ@gi>ErPi}_?%$}A4bKu50x%C -zNA%V=u!Q>B?`|SXx&+VJHb*zFett$xhGpxL_&(ezl-?TEzr2nh>Iv<(z1|Y47r6pr -ziEo{@o(Qc$iJyIV?lb!Vjx3rDUG}lb!Ch#{$9J!KYV`#+v>3k5T -z6=GKX6z<8Z2m3@(>%<0Dz^PFsjM<%E49Q|#)4jjag8X332FlMQL=4T9T?R61ZD?dq -z@nJ)w8aoKs0r?8=+{M7KTPatl}{mTN?`utWrTA+1h+`4Bp2qsK&sRB-v -z?q+E3SDEYVQzopoiDRz{6R(inJ5}x;sqGu}RXPrdrbg=KzH?Y~s~`+P-&PHtAawrI -zYQq+g*NJvx0>-zw_kSpR_s26^WkvS|WGGQEmMD((7M}1#RMDmB}5F^JmR>pEF5@Q#`-8IK2c|k<3W^ -z<2a=fzIE@sQr!!u>3(M%X-kp?OzkCV4KLs>Rh?eYL!BE9@efq*@L@??-mk|9IGY|w -z@Wke1M18LCwpUy~pMOW%LlDo9r)o<2hi{(MVVdi^fDqtw+@aD`l1{dq-hl<|&#r7> -z#YfDNoF4bD&h)o<&!@Bk-n6cto_~EV_evzFs9A6Xvm}FAb?uol@GN<-%ohjK3vV|U -zmTZ3(h{J{+W#;UuC{(nXVRg0TsxEpY{Yfa#`Q1Z=r3$J!7#5`ntD@k>d2BkIo>>}Z -zC_h*kOY)DYOg3W9UttyO)Io#kCmi9X%3tvT<;KELdL_$!7dAkqvPB|NOMg#nRcJ9e -z4uUGL;LF^~be;?Zs8pVR_f`+_J(#a{6M7eg*g`uwHSNP@rwd3UqIVHa&UBeSZI!@oPPLC9P5z4*zw^p~A-8endI{@*4013;H0dw*TQqOu-5{?Js7x!1$0hJn?rFu!b+8`N -zQ}{53Fx>RKi&27h9D3P65<7})8nCpP45Sz0Mz}@`Edss0U6yzEK -zpJ=!n&-_+_@d;GTcPh=G3!}!yfLzZ-*}r(As)@3Lk>5OzbklAhWUk49433DAW7+J6 -zva#HQ?fQ7ArwaDFo#7td?s8Ysftb-cYW)JX8^*bl0d2@M+^+m_@x@L_t?oEL30B=V -z-qcTdtEgL_4pk4n1E#)sSKQS3ZL_P%mox(CRa_W8sXcJGfq=B)!vLg5l02kxxCdt% -zFSWWSe9sZRDCd)B@9$0Xq2o43PXCwGb@eJGUKtXnwWEA=)EiVDDVIUFi+nLQoVbN~D3I#Hl9a2-j$?=Qy -z%Q`uR%qtJ-Cj3U9YIE@HYHs)uh=$r?RncXI$iTKC*H6n+-wckTpVT5Z>?cNg#T9*O -zKu2E7*Z-SW)vRB0`rov`YWn!>_x$V`@NLndIm6cpJY9~}@Mt+fs0(16@I9uZDvQ6z -zVszl1l(VoNT@!F_qF#IhDB`2o?o00H@2pN%A*aUziTY&;hl}LdIQQ@)se}rKe=gaD -zZyav>RF6UiOF;d|k2@~$SB#W6;K%age=^xGD)2krl5hmvk?Tk~Sx>9=sm0&Fu+N^> -zuC1LwP&-`*B|3>;Y;_*I52j -zX|QDHz7lvF6!-d0K{pyATakLmO*yq(K_ikd9l`}YNLstdtF2sNUT7HS_PgP}M1gtO -zT<;~JCHWVJ4!l~e(1$O^Xvs;;H=wgQa*=Isx-l(6j^GKx!3v=?4ryNZQ(uH}GY&Ap -z5H5aGVV7cn1SRmlw1yl%DpuyKuDEKw~5ZfRe#@Kg(7&JUzCqDTGGx)-eH^IxAaqqW?<9IEx2_1M$y}wZXhf -zK=m)A#i=t&fMx(AQ0!UH+T=ZvV@tqA0+c=8-*ePCFOTRH -zkj=ailuQX`?~3VWzx_Zp|GodVPbjMt=$*624v0);x3aW5mNI`RLk$-fp8S#h2AKsG -zMJ1{NBJ-esM-ylLg?hQQehN(h8h|EZ7_?C)=$c#-TlzkXQvGeofDN(BW?Vvau( -zZT!z#zG42v(eW4wlLX1|7C?(_0;=f7RN~aozl5uG -zU1B_p+g&}8;QHC}|w|j{XsA2Nf(VeKFb?^f5 -zN-i9AHNhja?Ota^kVMKTK|igToE4KP6UwgW{;#8$AD7x|7SpRtyJOPxGa-+M4J8+@ -zG!Kh?f|O)X^pUM$LUOGBMt=UK*heta*YZn(Op2LBKG6=ZbIX>64Q(_+bbFw5`WQn4XcvA@D`QcLtefwvF~-_LN8ih&YI0+ -ziw#(uB*cPvz8e|jOo+@=eI~Xo7Hbvd(YF~Z?=}0Q_+yw+gR>Hi8^WDVKeOIoOH<3H -zRiEavaQ{YU7{4kldagd!;`~Ve^80>TJR-lQi-Z;k2ZKxI0q4D~2ZA`;HS|co*J;q2SA(ZV${brX=1AvE#?d@2Z;(pwkYf -zzspV0=Kql1vIs&&%xN*x`B=THf$kdgJKRaG&fZ&M>*~pjTt3PGC!n%*YfdXptUbB< -z7u9Dq#=`%}EW9T7kr90HHw<8R60HwK1dM%X{tnz=6m2=WqK=z^^c|>DORY(bS(+bw -zPYty!hy-i3<%%}wYZSbieUB@pj3p;ThQ?P)YK?V)z|+Ab;H!DS{7o^uA#J#%Olj{a -z!5{zx!5t|H2+cDG)B)h%lpBrLr|AH6r|G@AOnRnQCnDG4BUGPsRHa6e?VaXs?Edk; -z7SQ(8*FCBew(%|6mUODO3B@F3i?y4ld@11GUb(*9?X5iE3!)}R@@}M*u}R_O2Tx$R -zJpMGCHN-Ckn8dzdcfc8CGig>_goe7;U4aY`vG+OM-R>YjY}+H@@oC`JAwfjk^`UNO -zatphj;bXfu4jX4X(e?MckaEFGrnO_VufZ8_n`a8aqdmGdLbf`2!gIz$kH^IKWK3)s -zKLv;-n}8^x2Nl5^Qh%eq`q_O4L}Ww{V$gzwZ@|lFJPXiL(%Z7p9}JKAju;zDy(ys3 -zFLDs<-i)R9CA)asKwUl5MX7RwT<6&4yG_7E2DbpH>|UfjApl}!TjuxF)5MSqAI||Sb7F?!nZxmqd5rvf -z>Yp#QC7BXOR2+#fX!w_ELYXjyTq-x#E$7li -z9w(ZARl4gKr7tqDM^d(Z^VTs4GLF)nw!)~WYVuyc8{2KI<|aHPPtAxQN%@pB+$qW~ -z>=w(3A(0N(I}{f~2E|!khM$Chb3m=m7+PfU1^@ndng%!vboSNQH|b?c&F%q<<}xLW -zV(P0{Bm2*{7-dPLjvdP!^dH -z^PKqs+Cu4VT^qdn+;M_0ca?z3(|GV+b$Rmxol@F0=zp#g9^SZseh_Bu$fj_Sbs-q{ -z&k*2zy%Ud+ps_UV{`4a?WdZ;W?`EjYt8ScbU65Vuf*@JUpLSK5cqUU!2{;+MejxNfbe17A6BNcuZhQ(=0J|Bb!xKU~|u%aq^-Z^>5 -z^G3aMdA@w~Y?c8WP-A0tO)kRN6s=Cw0=z8y3_@c5sPolNx8MpJ-4ruwQE_MSpOoz4 -z#8x&8Wv?T_o#os7Q>O-wYP~pmLn#z>KN-onF`k6>+LTluli9{>D-P{q7*lxKjUN%0RLyV+oYiw$>Z`jyO=2D8^_F(wf7C6dt+if@Jr -z9_#s*Jn1P7;7ka>$(waJ&++JqlZ)^&sOo}uk>AAL%hi_nw8lyAnfyG!>X}fO@M!Hu -z_!n}Lx_gUcSYUH5zL|@&Zg-fN4#0BcJ*E#_tFn2mKDALn_(A@pb2DrZTPQX=bRqT4 -zX-4UhsZ$UZqtE+|oJ~Hl=U%xmYp;uob-8 -z^sTw-qp1c*STUnxX$^xlN~13e&oAJa{}uGV>4-x7Nueh2ri%=vM{E>uP!~Yzq5@9NPLZc76t);CUf~V*2p{9@eC|kZ>8|;Bf&## -z5;4i}i6XCY_Vr6Z;1`!ThAZ7F)=nZkYDfJ6oQao?*kLzZGjVduckd&(quEyEl@WIH -z&(}C6B$jH5XnT}!b3vu$|C?^Lc%AbX0M587@$_f7+cb94Lc-#B)Ng;Knd~>!dN6Ra -zhk$t~=<($N1IsT`i=40!xkD~_0wfkpe+ir>>c@0$(@-Bvggkk~r~^Pha^W5m50n;u -z9gs0hxeaJ|@>DV^fYT?b@RR74RR_C}!vMpqf@!Kj4PDYS02bf=0I@e>NBq^+7CaGW -zx!WGhSTF(NGs`!2n&??&?czfJsyS85oymv2wWYc{KGWlq?1Xi(5wz4J7%WFgM0r_r -zyAGw_`;aPad*##YT@b+RBI6{CY)U5l@(P@E9wirhrTkMp_dEgfTaf(g -z`6#jNS++_h-=Zg}+lD0lC+VsCc#`42V>3OsB-;kt?^0m)Bv^`jNCsbtfDBv}`vJPulCb|0AQ!{zV^d)^c*7Bgn@F({Q$hbS&NnSk7tKB!o}_ -zo3|(16V->jb7jRhF3x8Qn8eAU+eJ4pu5#Z%urLL8H|_`xr}7KyxBlIvupo7hzjt;8 -zk6JMZI4PN`-wo}*)zvDfUf2jFzJCw$^|XekNm%@x=SV@tvZZL1hOUR#xkK3q>K -z?nVaOl74wlotEGutQH9?`Kqs9NO)=o*{q)oYQSYi;;C5v`(K&sPiGj(6~K1t+K%m* -zwOQ)s^6sG>WGM&zt5%;94lxAE^JxmG<<$;Wyv{j=^*n8ZBCB3zW+b>7o$ntAJ2hR| -z7Pg1JvPs4<13CVuRVG#5nCuNtaauST8Q>{`(t7@x3^_^wsx;IDjQ0xo$_YO-)H(jW -zQv!wptIS*G9=8U^*iv_i_y7_y7#A52KDhlemX(H_eVG|FwM#+H^T6T|0ER++h8+Av -z6|#PVam37fE}Q>fD+d#b_{KFur)S4=V_qL7id@xP+1w)@7{#^R5Bw01GgCeICd;FJ -zp@Z9}LOb+^r?wsA(u94Jwi2=aX#6FAKWHlFVk6N^UB=h_o&X40EXR!JzzFADiLs -zsGE?f2lNHSy*5C%4caI0ofdMrfh6%spK1*9E4_gY_{p1ELy}*MMW9Opv#m0%lnK}0 -z6u=f1mO(oUPL69aYW}BJRJ(uIT<9 -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 -zI& -z`PfLW=!<_3<51akWM3;Hb5Qd0@lZzTu}aZgTQd==wkaDI7j79>svXzFXOlx`w}vI$ -zPW$FwJe%FaLoURGZtqeD=7#V$t|n))M<))8KOFQtU3xk_5P>g0G=4ft+{H#VGD=W> -zRk?kOsKv_kNw{zg{<3vpDuF`T{BJGB -z_p^`?$=OezHIYrTuA8y368oO&a^^RY*o01wbQ_-hyu{{CQ6-1SAk%SWvY&1OLCVzt -zvxA-eZ8LgW>0;SPKfk`H`N60KYtMrnR6u^+S07=yjC -zC*tm4mdJOm#8`0OLa{bX{sXp7f6NaIr-)YB@a}hSY_k4OuZ^N87nOg_4Z%&^+$gZ) -zH3@HA?DV;b1!4tc;^V=ca_qc#F7_LeZ#?>~bBCLYi&Lz0l4O5^)K>x=%{O4puNBe3 -z%U9$Gi2h|Rwb|O4)y(n_XGV>XZfTO|7mL&$U`|w6i#Ng8@9Qf6MN|7egmU2##IC5g -zCCW5KlLz9vCHXKN&f$ov)`odHfaCR;Yw6JG|7ywZcLFVM|NtZs$=Te$CtU^!s -zO9ET(8TBklY{I3yBvZa3x7<<2to&Z%YhmyNz7X9` -zW$B8wsqo06<-i#`RqBiSLE9EZa~9urBNw}8X_=M30p6XXi``21%?B6Qn7eGJa;p6R -z9Ic$)?69UUBU1bYC`hPEfY|qZ08{nq7?6P%zIC?CDmr0tD%VU_tExa4pt2>v^>?in1bnuIo~GE@T9P4?Y=rO7IP6|&oUVDk$5R>YlWbU( -zu4|5mH!U`il@l=G2Fk~Xsa&-oDZgFI(n(D6_qjs652P7ByLpq<%^a}^+mniXZ=vhZ^RoB7qUH)qf)pC;7 -z3~Lcwx!-dANR?Qt%Kec%eZm<3=!a9!tdziW66-G6IlDb -zE5x8A3EWErPJ0ez62Di+cjqhl4xa36_5;d+w{MevSCDf5>?#NcgwWrAE_n?F_E&Iy -z%`cq*KF1iTipWqAm -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 -zDL -ztKCz>in_09b|_m_kjFH=ZTceP@b3GU*m`CfF^zG`w@u(Uw8MM3t4Yv3iu7lm`!pGr -zv^2ybs+JnV!mDB+H-2V^V>)*e-=67vs_uW?=R4+UFcj-Q6grlFiTA@;mSA)_vA@zRT~Dj& -zXEKgs2m9mp+q6tRPTlvWyVu>N#u~0KyiN3HC(Oz^AG~*~z|V652r~}}!+-F_-+Zm9 -zsz@!y%nH1Wu3ZM}mt7~cdEJLDC41B!nj0mTAawmvGtU0|3Ywr&?xV8NCG|AM)FR)9 -zgacno{M*Zd4Q5fRYvQR-l(fiy%!}NrevVC1Ghg?B?CCW01Gguzt(4|H+Os2=x)-eW -zS3md5ZK#%;aSG{xro_-znkwM-0>lTb+zhwLDfRlBY|TvDlwp?lO1qj5a3M-+C4I0? -zc^LxEc~H#^V{UskNR(Wfa21iI0HQ~Y(*0$z6DF{uGO><(3?18@kVY%3l}1qFZ|)sb -zETsSg+)`M$&Eg_^=eJMQxw)6YO7Cj!n(Eq7mGH+q`YfDwDc6x@0N`=@2vy`s(0tGlmj@!Z&6m6p`gDWv}9yGS2ZO?)=ec -zMaIAW{vyKo!3YKCPNr=S@8Nq|Sx*&!?56dO#(vP%`&H*mZ0cALvw_AFP)!%BD(m2u -z!l9=zp@`I>}<4cD(Siwok!V$t29jYBao5^CFD4K(eHZ$xZ}rHSYH4B -z*v$SD9ABk5esTTv)8T*G6e-7r%R1mpU61@k6D8eV?xQz&Ad=R`%ZHIy&pK}fI$ChI -zY++* -zenJ)ZToAXG;r^4GInoOf@}O}mV8n0 -z*NDCGCvbfCiS2xUia2~eDuh7mV$e=FSEd*MK9+3@eK5SWc6QSVT8Zv(2OAp#UvS2L*tlfG?mQ!LQpxxb*1c)*BZq%VkK44_ZFWvKVk-5M7d_p@-3kY?CaY#r*YPKZgIyKz_kNp3lVW3NLi)m3s4>G|`F+UjXw{wz6KQg>S@y -z-E4f+KmhtPv%i^sz_td!TB_CG+XK9(sf?$BFo3J4aqpq(7Y3c%>VO`=LlnUHAN~ -zN(CHNnNgz@>`qKYV?xj_d|UdhsLVYlO0oRl7HjuG?tzb)R2DpMHiMfI#Ih08=T$*n -zM(j>1Ofv}Z_~(c!+~8qe`9vaLLF6*c4f(ASSQ>{$N|~Qc=6V@W>JJkOM79}EYCy;~ -zI?^0DP&`0%^g99O(hHO`1vd`FE|KgD_4%kk3`t@%DDVEV^5cu7*BkGe!t2J-aENY}rEb=oIGjT%gMgOd9kSre+vjT;0?y -zB9o2U!tKXpQ-a|d*st6;j&`_uLB#$g6#M`$1ru) -zu_%RTIssf^nqUcN&L<#Onz -zt$X%93ENwqB*`7uEpq%l2kb(=>$dSJ-?s<*?9k0}Ib7ii?SJjo1<(k@pGbB+U+pU- -z00!QD)1p`h$HxD`+k1y&{l5R>Br+-q$qq>xBzv!0Qbrjmg+f+F_9msQkWtCFiLx?^ -zvPVNvcJ?kKEAuwOjo*1a_4>^B=lC9s;6QNX?XxKI~_GEtLoG -zK$kuj#Jy|V&7=|i#~bd*&FQ-i8XVe;RftZ8vjc(`dv4CY;b6UIymy8ZGz|t*G!_PO -zqXV*{#2>!gDEa+@xQj#YcxYMEZ^(SFAz$bLIXGwO`~2B5{d=sx>Sl(hCNPlSS5V7cUmUo;nhGDFJ+M`DRUOsyqSVP%sZix>m91F!VgEYPJ7l -zF;*4XeO`{_sdD#xP*bjW!+>*JXj*stT6}X7{oL3ER~e~(w*#(~5XjMAJ}|#*tE-Fg -zhLQXb*`3#82$s_6s4L6#OiU-s&sP=HM!&OKb`m9HYIB_yEyy)G#}=XQFI@MHDXiH -znYHfb9+)pw2ltnn-h~{6>aA&`Rek?P?gA?P!3QI4#(ZUWk6cXGx|MTmUj=PbknNX> -zi!~0iV_$;PlI{0MZABKnbX9q3yT4o~>+3;GLf3HjYHkld=)6`kxwp&m8huUyX(EiK -z(Ay);-FG$TZH9__IpSMaYE^I1?Dd#n>2H0NGMKs-M0*YIi8i|Q2-mS5y@(p4+f8&#QKs9W!c4bJgx##@M -z;y=G2j6YqcdAl4Xy+QN#$wjTM)x^RFnhH|0L5>=!;>z`cr~Bl~NSv9M0&YqP?!9ZTpychA?5c$uZ8=|n!zk8o%I8n%%u5qJ&wLi4Xbhco2FoxdB3uBWR5W9eA65!oI~ -zuNGl*#L?Il>^`wtBSjWxOp1O~wExCN?ewaj(b&BEOB#cC;Eodf-BwdjYh2z;y;5omaVhAvMLo%y%7tM -z(Fgf;hZ7T(7Kj|x -z+c%X!T!o~`Yj@=Vt4PV%0)B;W`4BYGw_{z`wp -z(0e7d`(|$ZjpbSut=iL%de-y(icQ~pM^S%$ek(EXov5sE%;Ne_cCzH-H?CJ%TKBwq -z*L%vw3O`Y@`F4@4F|$LpPl%*cOkQK%VOp?jt%en%*DKtD)Li7pS5*du6ol07k7VEv -zim}5fiz~d|qaT~=YmSchDS@8%5|#04MPr=HUJ=DBtfC#g2JZ{onL2>wPi}O)%x95p -zl9+SoHnUu2VE9n%yBQ#N9;shw?14#s*8(>F;S;9}BSuiIMxOGeb+>v=n1dcv5&y* -z9j?iOK&=&iXy|3oD!4*|Zi`AyaSWZa7~mh5=>V?!vUv@Q`w)BG3C55GT)F8p_C3H{ -zKk05k?02(=2zDVOq7d#Gr0K5CF{^1@c2M5qnR+Bu!U9iq8OL-JZDsP(8wn3!U-1yj|52Gbm3#6#a){Sl0^*`Xx@g&n|@nh=O;zpw#Pt~NlK -z7~lkGoCr~w47sy=f`2@XDO|KZkATOPSrW8eL!KlC|7fnC?E{ta>Sp;#n? -zs5QSqGRWcaE+m8OcZOF3{8Un|(1kHO*`=Yo&fN`%R4Z7j|ESNzG_?OwpNVzXCbWP| -zt9)d20yL)!#6@U8lNM^g-#Ymg{{rhk=QNI8k7L&d6{^qEwT=aE -z@-{Wip?OsgOa_Bc6`E&~_kx~+x)n`J9;{+?sA5f&sA3j7QN@HoH$1Y+jJ4_^=z2YT -zAv7wqdr-7P?Lp5DwFfmj)E-86Wc3*+*%yfF*lcq8SI?nUN3aV1 -z57`jNQD*<|ej&gnswURS^;jpHW7R>5c6<^j-Jw;xu~t!Ft@_`6UI64_1VuA}P5=iY -zXe>lofgywt`pQe7b7w)+>Y4%ei!eZ|uR%0@_@&r4uU*Zi2(yPkhWxPU5qa`O_b{7& -zLY4CG1nG1CO3zXV2#uu@^?q8irei&gd$}viF_)Lofzx`}_ZYbpxv2MXl`8+;CkrRi -z{8Du8X{u>>bYyzz*AoX9A^g~9(NR&+>|%q>V9o2Sdbw%kX=%^TlnCl&fHv<>YDh;+ -zlCtQ8bao7z@chvhYnX!GrhI(9{;@<>^Ukjs|1rRnAwgW;)6=Ea^^ -z|4H_u(ug*yeJ>qveX|cU*b402EAlGnO%JQ^(mIbimtyOBn(sZ>Xl_3d(A61u+qx*e -z*I>&kU(6xZxJDsAwoFQ2n~^=qVdO{yHbVaUw*ir!M= -z{Fl^M>zXc?ju~9K%F9yPd#hEO>$azP``XAR|K{H6>dtc~KAMxSjmY(-nyitu030Uzkg8J~w+ -z8rCbd_r1LSYPT#!23QCo3=%3w)lCEhGT`3s?Wh@4wZN@^~7#bVa0G&Lv&+@b^?0XMht3n -z&GGjcd*orOtDLkpvFisi?snY&lIm%|lhE?&RPRHtg32>We+$ffCJ`|6#tUrJS&xXObgB1)hAQaxU4 -zb*}u?#M=}x(*jKqYvxXXJhX-CgsC=2ndjQmitZ5&`M9}|gDcl1^DBf=J1E}X*6fV` -zOkL9eEj}sAp$Cm-x&QiN!J}xvFuWwg!Cv&8X!q_g99D#^pp)|Jc*a^uiPRf5)exot -z>1*h6*a`V>`kh<0(m>aB^{ace6l;`3s|PDVg20GAIghuv^I+C1Ort=aCdAj;_%%NQ -zjfKJtr_6Z2h^D8zty_UWWub5F%V6jJDd>82v1rt$1ipROEFhlgPs%9&@k#&0v>$4a -zXepDz{3xY@+qb=@hPkwe?t58EemWYwrbv@9Lf=Bunp4D|c%JXTMY5{AiR_YI*XvfV~62Ilq -zCSmm%nNPSe=J90Jn`D>1ODd2NyP4uRpK0b08hnYl(J$Ujq`hP2U&_C-rR6#Z@exeM -zm<5*U9`>sKP!6>ko7xS*8Z2e9j;g+O+xyxskU=)M2EfO|Qk?dn-#eH4S*PiSL<-cIdeOXMJzIc#M>(ZCRMq -zBhBm^jw06nsOuN-B^C<_cE(4zeJZ}VF?*de -zz16fbe6xFN0`De#r_sbq?3SMxW8zMu*^*geLV!hl9G&wMmWXkiaVgPhTjAogn|zqctmn5D|wj^D#|yYyZlS -z3wRE;xmQ2QeNgq=(CPAoCYRh9@Er_I$KySef7kZIz_xU?G -z?t%sZygR~Fg#>+ieC!o0_-QBAY(hTCCl`<>!daA5wE;TX@!tv-CBi#%Co&w=PP1ep -zI7y9;;S}XXzc@j;3}5e>jd&!tYg5tYUbke|KXdm-|W1((SZ*u4+^3-08O#U -z{5DMvuk#MckbLIbgA+XL)$%Rfr0C9h=8Vn&H%(BJzl0v&qtv7EimLZ=KF2ET2-^>4 -zUzP6Nf9$4)6F0>kd3cRR2-%-`2eCDZ;UwN2k9IPvlx+HpZ$dw$uO`BL+ebm^I35{78qa#`8fJ)y7jsBBws!4N1^w|t{w -za&m10LL~%wrVmZ0lPPWg5k1h|u0lG=(Fn$#-u~=zq1;`Ck&>exR4p3*>wb4mk<;wUR%?{*y5e|7g6tz -zwp8`LU=s8@Cpl_sO6yhDenEQdc}AT?H~BI>Xow!c^PiQirhi^OUUf-3Tr~@^Xc88T -z{P5=cuKF#vC8^EQflGM0jJWH<1-*fC#TNSH%MM3X&p`aC%MWx0PP%YNgL%#^`JIWT -zhxOz$1vQ*6of2rS-$~;?l`fRVpt<~78HIa+`p>RrFMo(8vf3Qz#y5!o*@kZmGcCroX1Qd2 -zS#p4&#^~VV109^yLe7J=f387JTBMF#1|jyM -ztAJ8_*-we$pZgJ;*1>NdUjL-)_T;l>$zD`mzNW{KdecP3R*&6j?smFy@F+!dRVP8; -zM*UG^1jM+xtLcH~Tw-N+`jjW{_R_)L_br%1bbiIqR?dc;NRH8}NPQ48tsBxY)j@L3 -zzRkrh1}O-ip|WihZQn2#J&1U3xklE;CPgj--foWH(nZs9mrYa7zlM#JS98@n(X~H- -z$>SrmSVeQylttI9Z;cptVuua4dn>jjccm37W1I4||Bi?TF6{(rZ@cAIW -z)h08k0QTq4wtYu)p1G@J;>lylSH9%??Aq4++AQNJtiRbl3J`+%wEK6wrh&+`ZEK$K -zrHx#tL~rZ`GVE=w>No+-Qbi`PZw -z^$XhwUlN+YsMaS_n&C+WSjlBOO?dqa{ -zAaY!}Fm3Fyee;bn*R{bK?D77EV)b$OTxSpWfaH)gGm-%lFxfD{yYS*{OyZV0rmWJ$ -zlvSGlU0D^J1Ijo+Tie#eJVB8`E`X*20=J6YcBlA)7u1HpPmj+qctUS@5uO8GQ -z6mW{dLMaPUn;b -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 -zA{mA3y;An_ZNF5D0MBQT6!(Cea6n#y0P^- -zV&h=Yuf -zK1W8g-|0Ir_-B`iY}6*6+(#kB<&)!;d(fYm$y&|3=$DfsQ@{E0&u@(Hy!0+P)vV3Fu*fSP%3*H5JEPMmiwMFBaW224 -z|3b-ZaIZed%ep5mn|iDaFF(f@(*t}s#3YDWN}2|m%(WU3Val*`P+m&1!Y$W0V5uF*InH0j!m1GsXMm4{t1EQOz*xfv<8Syr0stcpDqe%9T)^!ClCl~+ -z8(cODQYLqvL9?wEA}yz)f+iwT;&x|?DQ`S^AxE(aa+uY-Lrrn+#@cqRd^+^nf-b~i9BN*}(FXvIJnoK|{8Ae`T|6*fBPUB7hBz0-SV -zxdH)kK@-fK%Fw*2e%5>xa(Kni?4-35U_WvG+6qyRSpd{qkQ{e^_>MchZ2bhXFG7yIbB%5Q-L6SISQ8RypugyW;OLhl5(2ZD-`k)O%e#$lO_@ul$H -zP40!gDudueaNUWWS#OG1unX+=+qkG9Xijnq#1j|aM(qnV(P*+r$v4T;c}g1q&xube -z!&9QIVVP)Yzpu$1U~yrQ85$;yYI(r*cUk$3$k$@2z*XY#oO|zE@LQo;!x4y840Dy> -z^dxE-lpsMe@^;KFR06Nd{OGrZz2eIrZgVp~0f!X?id_TGvVNcUuHtdeggT*3uQl8#53DUf;4ass^<_a_3O4ag3VkXIu? -z!MDDBY%hc0s>|)IRBuMr1;JaS4ltBN7-xC -zxU-tCXUq0%ezMfs(?!3tCQk1H9Pr2wDzWv5-AE&Lgx;D(K&_#Z#2?RCE^4(MQmTy| -z*x{eSw>xOxsb4Q&alPSV*~ewBu766Yjs9fNqmk=d9+C}4{JEpwyPEJxm1K0Q1&$Yy -z=tm%4TgFLT#^62ol`G5AQTNIsVcE&^2=Rigys8XLpA;$i_IC{FJb!gIA@rMb@TPhj -zTvR`#l@4iZMpoyIHSfPH=I+e)#9&Y#-Mv$yC-l~eQc3tVDYi8U%IGei&6hhu>iWD} -zK8NjhFe#SIne9JKFzQQWa{;vk9YeK}-@(bSOGS?Hm14vMp3?WzBi0#q*N1w-2>)k% -z)q&^TZCemh_Q7GAqk2dEw=&_3s;rZv@9Ro3;tF+v!@LU}bSs0JfZo{13X;sy*WtgCr@Rm%l9r*l?TK2nyB -z0jBlL>YG#y*@=?*3mBq%1yD6gR -zg7aaf;%^Krh|^vo66>Yw_0pO#hOsH4N`kBD*%~P-EaB4G8H|a6?bX5F3hgHdaaQ1K -z%r>QT7fwPn6Gl1L{JNDa#MAh{4XCkM4yE>lqHl~KxB+EQZ_G70E -zS0=&f;SJa^%h@rFr=9+0F5g`k^887njP&n&aCKTnzDOGnV~1*&u8qHS9dhvW^%WcX -zjsplQ=tz#1TCXAC_!o#fYmcdHZybDasBNI(QZjpt`2K#vaHJmU0vM-{+mE^lPIu!j -zSjZsedYRbwNG}9QD`R7CSn;2h!CPu_HP~Ak)dh-h%?v3rn)KJve-`?xQr>F?NTsJQ -z{)G&PX(ky_KBKNAtin(SZZogZ2&ioRA#PC3D+9hQ%%?=(%cnD+JhF+B`H`0#h$aR(|tnTnmgCDC?~l7?-wtY|nEKBwPcbVo~9h -zeFHn&6tQ{=*gE!1-!>D`WWvm!Neg#ov~_ -zsD+Ht(02pJ{JtP4w0UA50oS*Eb?petSy*krFOQw>R5%CYV%ENTrR&RWkCQ9$0^r|u -z3Gfnn_C~l7A{{>%)j0~n5WZ@Rklt;Xs899aE;+i>8qMqJDp>OAyHH7@HPXKNMr(+F -zI-uWoQtiU)+KC;&GmVX%`BoA166Oo2hLi41yRbVP9ZOIYFEY&pF5bnr@A5HN#$1cU -zw-rU%C+M~>z3bjx!`SWCp6PU>ZHjnBDW#zNvkNo0> -zBETH*ZnZl>gC1ItP0;Cmd&&`>PPq6k)180DLvCCOyvCxGd>N%}w*fHEKywN}<#(;4Jj<+s23*`o9g>{s`81-}kj) -z8b^={P)VW1eu@Z$4xW4C=ln*kei2TswqQM<#CLkT7rpVdm=wM`@4>CSJ(tIVcVj&d -zs-3?dX-?6j@q=M$T?@DX%rlJopPvijZ@NquDqe!U#M75}n;+FKi*Rq99aRdn*Y~%t -zpno@g15u5^#8EYf8Uc)G$w)BLEkKs%@n@N^NAn&^znKiJvA!7%7SsQqYV+T#JXTH5 -z#jds8<9zsiA*VRB7WH`J9~=L6`?2&o+Xn0h4c`QprN85VR)Ec6#_dILhGM|&OPghb -zkw*Zf(IGL3;Hw%JM1cze1KA3E_!hiPUDR8_R@xz?LCYPr^34aRRuGf$ouH8lM|&S` -z09kqBPzp#8 -z9njTEj?yfc^n8|I6q$|1-@0TmVBq=H{bx7#mtbnH)A5z?e*V2^-L^*++5e -zPk{T@9!p0q5HRM~tCR;YI;9o7y+OYB4J=2BReaKZ#Bu*#m7H~}^-RIYaa!v2>a6R> -zOIQrYEUf&Ily9{%Mg^1S->2X|a}l;B4s25X+XWORup%wSPPIJ*PuJNewy)AR_UgxU -z-@koJZK~93ds1CadIS>ODakRRzw20YogGas;3@iMAE9-=0x?+vb+OU6I4@bWiz@5O -zOY-gfGz0eRKb)e;)IzHDqI2~P*Xh=*ZtSvq<)urw)jKk@5GClY9EskGE!4=z`WZ&h -zWw0I1dn!3H@}B&ER|jlV50+&zVv4 -zZVQN}uqTWp{k1mhI;`?x2$3@Kde=5VYk+Aq)c@-hERfVM%{tqU5y`Cf`R6+650UuV4^H^MD-X}7;sv_jq(nNDD)HP6a6sWEPsqoZmSw}m_UiNyf=fT -z>Btb9k(5NBe{OZ?@jFTlvR&ZflbF=%n7h4pwH_KTBA=<(jsIMMQe~K_0z?!b2i1R6 -zkUJ78el=I!fmiG(vPEnn%%INzQsR?NQmX8lMSl<8nOCXqawsonVVu?q!Wj*ay2El -z-P}qDJhltm@ng+R^UD3%vvDD`@xx>L*x@JIeey -zG40oa^_d_J5EGt{@tvuj-d5Ul1#46|g`LWo--Vb4Xxm?!yvD6oC66urI@gkkCb+!f -z;yZG653ta{PRK0<<|36^@EG4h=`_ZfYtP{+l_+OTtbSG4HUg7hmyUbpObZpZH*vbx9Rw{e2q%k8aW}V!b}HCv{GSss3oGVf1ACKl$v9LD -zYR&iKz&3|!bIG+#hFeql4^TU>r3(Jt^(GuzRWN1s-+dW6EWP?THKr4r5XAaR -zUJSq8Urr^0aVJc+cf9ucL8}N45sn6=3XLd=LmMCv)zwj|NLW@N7twBS-Lmp4k~*C; -zw#!#;Y^x%jl7vN(@CpQoc02`nC(IKQ-2akx*xhApn?d8eNbFKPy}c!;3r6YQ0?qX@ -z@%>r=;;(?u%)a6wIA&E+E3^ALw!{WspJV|%Sy*;eH?D5)5*?k0MUW$(jUR(gynD*>#k^opF6(#70GUkM6*zkA2t@) -z>40sQH$1#w=>Om&l|_wXco@6XF4=I0lAN3ROg#ggoYpvSk71NI -z{{4bLG01s-MIA~ZryB~gvM>+_W6@q5F*V4_>;9O;wsDzLoLM)j;fltRjW?Z%u?Mfb -zLm|*CPz2ct7@KSlcIsM}$_!eH;HP15VtCjsf@Xsh1_5@4so6qSxrklDm>EJ=UZ^QR -z5Gmym>*gC)!EO-hsRRZGS^0z+FWaTF$`m<)zXyZ6f?9Q_zcO(J$Ldq(l9R*YjF~64 -z$xc)ByqYmZuAeXl`u;bCkG1755uZv)z$@IlbumqI=JOk_#D!zVjv{cVq*2$$x!c3Yj-@flZO}($E@gB$ge2&kxRgiL^=IR**@AbiwV^bsP*z!^#czv0tt|Eg96n+9*03Yiru>t} -za>2%?p%%$zZJ1`eZ}oTHNe2&We7I3A_Z{08pTiQuZ%C)U@qH~x$=(TGUAO5Di040T -zD0V3ATLFUn_-rU^w}gSQYn87EaIu+^IvGz><+6&AXO+-pB!NqL-^RK+0Z7~h_gZT?`NT&>4P^B;K -z5jly>&993iD=vMp`Lz)j-Zn7qT4}Jk#>6>`&Dhxyc!a?WiqZ -z4ezBfM!7twsBg$YL#L?K(*#tQCh9a -z>{Qf1jt3vtR5#yMmWO;jKR+h1egCv*c)5YGr_h|Q+FrBP)n}- -z^C$So>%~vvT!Tkn1W*S3-e0FiMYpez_eu1A?n5^4mKUec#X)Uj)Vkv#;^;A~uo{`}f4P1!9dqvDA6BI2r6Z@a=NebRMJ{`7;MJF%j*J5xQ;kX&kX7h8iXo^V!p -zzdVa8_!a!D9#s8c`q+V61l+ZEk6VL>_Q7Umkm}}{+3EI$j2raLniOVk -z(pFRto-PR%F?{6qR?516gym}1mykJnUX{>sg@D&>UETwoXT7Dtks!X2KaUJ2D|Cml -z+j-_se;@AzSogS+8cPzwe|pg!07tNAttD$#_7aD7be*wInP=#m0t@(Ux;V?M!RpIa -zAE+~MmMItIQ}r#|c@Dv$1S1KHip6Sj$K~USI9eGlk(O)5`j3#o8!mUMbhRZ9AP0<# -z-*Kiqmv4T`U?2E}?R3GvE(Xw~qA7RfzEfi-qZwKrW{i!iVfZR6`NjO(jl9@XhEpvH -z3|sz~LwwYcxbwBhB7f8>r6d4*^!-R2=Rc491BY+?hJEQkqlfnGcoi?SCGaOWF=hK6 -zg35xIrNr3KhirlE8*Pd7_t%_Z2?!)Ot%!7$@;-38z9(svwm%%y<|VfqQ-hXz@>3QL -z*rIjk_%q=k-3&EIbVq;l2^F%rRz0qvu?wYz`uj#T3%6)QVCJFd7~d}O$4|CuN|_cjICl5BYcF2L>M^#?a?bFih)ZvhFZClEBO&@|Y3Xv4_v#P>b;Dfe0ob -z2tivs6l~_hG=Ae+v3a_SQ3+cIZQfC=Hm_=PY~(~fkN-Jo>-+*}%x-x#m+bh`-W#o6 -zIOG~yk~A_-yIdu@`En~R5J*n#Ty)oxq)|+!s@%ihyV+0r)O=Y&1g9h^AUC-FaGchB -z$&EoNRS -z{i3taozldYK?DIS;27Vt+iv%?rt(PNUh*@reFf%kVD;pKb6WCGsK#q&-bB-5G1?|| -zw3=`NYGnbS4!81v`4Wj=#xof@7Tiev -zxAtk5<0%w$&(cHfd^d6^$w0x=Iv1jFm0Twrxt|6cGST+`7I|#repDXZBa57K-h=R0 -zR0qNPG-xDf!YJ(Z^f4vSJBK6)I3BlrbLDLnS$oVNFJP1|k&qGu -z36Z50>DomFk(QPcrB*^fQlu571VkyRrCX5hP(YfcySuyd&V%3kdq4Mn-hbfPi8E*7 -zoH=u1<{M`#EvI0!lFB?y$iflkrTE3YquTk)aIa2U2cicNg`L3xAET9gQl>AxV~Fog -z;zEg|7bZY-RpxS%KcvSJW!jK*b-3#p;@NuHc|mhFnU&B?a(u!c -z_{F!iJZYbgzOGa}_{xiNF!azJuSD*Eao9fC$^Id}ge>}A3$ax)PVTwA8GY73%--0x -z=l0%KhZjOV`me92w!%E$t*pGUXQ~ZRpD*|>k!J{7@XEB@HT_en)17|l>ol?n>3))1 -z0x3gji;~JEl-(Zpt2r!O4T|2Zq+j6p-Jpvb%lyIr^vOnjCx+^yqu;kQ3jG9GCWVzA-Wfm0nf23 -zDLa>QWw@oDwm5N!-%6wiaL04u_CnmK)bN(c#odxMisWR*8d|tp*@rd7lCKa>hNL`wS}20;CM3*^EE1lzGndWR;iM5t+`Sm(Es@%xgasT$xXGI9oK -z%Pb*1Rifb)2YKrofE}9*r;0UV`&LtL7A7%5k$cSr3ZkQpCnm*F3DY$`A3y~9gEh5E -z;n!5#N>qt}FRiOp`B$cfT7_)B&K+R@0x9TYfg@W`fA{Udlb1q=zvVGiOomd|w$_Jv -z_3x&=O6UoJlrM8m9HrTtVzrL01S%eesQ}QL+CY{}Wvb*Y@mk-~-5RTMwK@uyd1ot) -zm#*M})fd}7;Gzqt!PZUU6PwpdCo8o!jotQ){hv=U6+sijsX6M){AWSe4fY;(?@NSn -z0lREv*pE`CpM#coJyswh^WCG@k#^4thf~+)$!!jy-6;Dkc!oImqRcdJgz%;;ije^7YK0P5(BN_DcAm{v#o9UsKTRUszo~z{*%H_9!87Cz?JxkD+&z#|EaO -z0i9E~qi01gP#rce8Tqd;Dj_-kxo_=h_zjXiK!E|@P}e{3C=P&|PqCxL=jfW_ReTTP -za`|xFz~JFRAguy}k)E&9=mBR43C~Z_no2_yh#1i+c3d&nBgr_dM)cdtMUeHg5QH@zmQ#seR-mUcfFDx>@BAc5#UT$;bKIr&4RfFy -zw68Sq?z=knYw8S%Ln3))-||kcOi_O*?>~j6L94RxTDgw!{?OlFq66RZ{z2iDoE6!) -zzIrkZIWrBVmITt~E`$m3AVT(jPf&UY^^da?L8B9w`<^C$g2b=^azKB&rdB%`AyBYr -za@&;?T$~^XHSMUs8__AFt*2(4J>{~a4i4sPY8OHGc~1+5cP_G4L@^_>ykV?PnX^5% -z477>+z3jSIMK&xfmEQ>b=@0fy{^{`^2Hel~g^`G;gG?)nPLAXd%Jfnos;Z`VB%7B$ -z)ZcyZ0-0Sn0bW&*1{bs*P`+ODHFj}h6C(@d=Mr`*Y@y+^cVeiqmf2%s;Wwh&@OONK -z8>edT3NykWFWs~V0yAJ$7j_<_i6_XdFY0pZdyFy~iZ~ -zApc(5K%@7kh66Qo+K-CG$OerB^~mm)kl3DRo4ZN|nJERHG|TCfR!d}s?r@X?XV;JN -z2d>;+F4Kp!y;=2dDYr;q(Iw~mnj1(FXq-?L;q#g~w{dA^GP_y03 -z+^euaUiLUriC(zfGdnnRFxJL~(^kuAIiq^&rDT1;1n@7)S?f_nu*3%M>jEowp-*tu -z8_Odk|H`}7+bQ@Nl(Vf?<6)8ZX> -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 -zoP)M$4qTTYp{zK -zBMiNoxMKDLwEB+iZ33afaj9ImECmMz`Y!J-9a3F*UDLRL%OhvtFNH=k`)6Z}pU+uB -zj(Ht4Kl-&tqn~Nqt@s;|OYHYmbyw^175YVrfZIe(6-Bp~AB$+5*3xXu>L$g^SjW{D_+72P;T^+i-B -z(7Gao!i#>GHw|_1D{i|FeCzOnqu;nb5PL-n^c6j{#wS;meIQoFH_rafFNz3IXQN4= -zgiWQakk6)g5NYXSOqIFvsI0=YNgK!(1h$eA_++WgQd`-snlA8KFi@;6)n)|_iJ^-| -zI~MfXFCsk7i-^*JQX(R-Wvy1t1)Zj+S`L()q4P#|rGMAw7%I`EKuxXM-Z-~qD3jA} -z0dyjZMvut%9Vj1p0`g&YSeb0#-4U -zS}XeAS(tAur{pQvo)st7o$jqKSXNvKx<)(KJTG5d?GgHlqnoqcZ63M9X$+9Mv#pVm -z(;*pEf-C}jz>e=tZQi^SL-kRckUVIwBrx+s>W$K;Mtx9RZqA9UUW!_in%o+TKPc?T -zr>XyY;O_eaphg4SU_YcJzD&*5@Ru%#cnJ;6lnI&dFP_*tfnpY$8wKnv-0Yo)?VDdg -zQaKI9T?#^tM7u$e3wN7@Cm^gxU-6wd_X6YMVG`i{puA6Ma(t=V-afs%xCJ29z?NDD -z6U$SpNW-q#X{WwA3Kp8)Whb}G0b%8P95%ARozRZYg(dbw5fZw4p*-prEZW~f*5Sws -zijriXHd=YLGFaju+2sVHcGitfj(@^{Neslo=qsjA(m`IIgN=Km6mNlRdy-dR%lR^4 -zHWV!sADB5}NPW>OjBdY}hqPn*G~XvLOJLA#LSSsnYiaghoCs||ftBi)%{1f?|D3Cc -z8Y||^@Z70_LXW_&VC$(z8r{(LY@p~yA0J`n{TbCZ#iqa9s4VffcSLd(5Wd|+hZ7OhD%F>_1UzP>~WEc2toiGy| -z&RphMViI)e!0nPL)OX>o7S(l-!>C$dk9GY|PY>r5y0RM~}g -zlo;pj0a4i(JNRUiPA*d9)jdrzTp~m+x!c -zSN!RuO&%=RFgEN1mvGzxz8}BzNakSegn{6uhzqf_(|s-ZSU+m%X5{=di63-91fTJQ -zgOrcoZRuv(-c`c>4eA6UxQ`5oFm8|PqL>D8)6=`sD1-9XL-N8uz1=cOK4^vAvM8%% -zU?dBrG4A0fra{<@(9e$7KP!O;;Lxpq-AsFTNYwkEIUyM=( -z(F2j{670au{Rb@~#zNsZc}+FjLxsTMG5|dDQXU?-6kS@XvAvj~T?AYgch0O5TN<sEg*5* -zsb;{g?%~>Ll_`Oh>{OrMuHxB-*Dy#z*fmkV?|o6!wRYy>0i7VR;u(>72$xkz7z)eK -z7kIVcAN6Jh95vCqy*Ald1D?2em#%Z0KtKVmUC2rs%i6s9L|3RDstq~A{CpqCY2krb -z=mzLCUDYZxjZCU!Yy|~CcRTpEzurv62LfXG(#(%{8-VCQwMisP5~M$nK=>A$raZ7* -zy=T3rwYUCzxd*65T|AVjW6V;xTCKs;H{e&WAzEA5nh_f1W-b~Abc5SEWi_RE>7k?EvwLtg3=!6Hlkq0TQ_DcgzIQ#VRkIwQ&2nTRc -zM%m~?mmbS61SX&UOW*kMOAILsA|z(pJD!<+iQcKA1OWxiZNSk2SFq@>9iKtuNdfa^!}@rOjn2Z3A(pu;<( -zn(sD{UtK05CbIzD7K9ZZC?>EGPcIB{=DVCU=j?t^6y97sW01CFT&+DYo`MjjV@=y0 -z$PpEM@*y@G{m-F^Zk9xJEJvd!p)HyD@T}~k^JxG7YLqX17Oepj1OOG@<3imCA2FRz -z2Zql7FRxQ!{cM1CI{eXh@OG_|G)w1#e5RSFZ=^PXW$jdjaFe8Id-9M1xF>& -z2Z!RYHuHH+!FYx$2xU_Vgoc)t`yE}2QO+kENc`O-`YvzD~utKAQi&tZtF2Mu8&sk@X4tooYhJQB?FjOU~4*JJvfO -z#HQ6`X6VhU{Jf<;FFzLY!jpUw1f*i7{d@LyS<-(=O4_5J$d$&bM?7FywKN%@Jk^dS -zROM^nZ}rnMTcPVrNg55T<(_6DplU?euq4LJ8mBKk!g*En9|NdwP!DWFW~8W*`ux&2d0I@!rAhti$)n>44*p^VjW3`E+F$B -zj>>wLkvg7Z!c}vQhw&2!^)gCF&lnh|C{m*tD`N!Lcv&wxf;aGwq<<_RE8R@SBYNT4 -z)D!Yv7;x2;WB+91)AywFm;_T4EFCJ3Bx4hgk1QE7hmnA*8@Si-uaZ8fgEyV7wn%O4?eS6SB>V#gp?Me!u -zegceeBma=eONG+XgQR4Ki_IA7zFG&mTMLeh301VW;4&ly*pOLxeEYm(t_1KJIKv@a -z55$`7HJ_r`?*-tW?-t6vUKX&O>8*qL@`C0cbf{FYZG2|m@@MHl%P5U`UyZ}CO+wlR -z1!%0VdAEM>kwN6@>9MFE?UA%jJY)UfU>@Uf1rBKQ>2BfWgQ3w0Zv`-X9gG#ogLf#Gy$28FAR1)(DG4!%SW&HEJ<8B3!^4Sd&gsf^fA -zoT^~(0>U}6YJ#0>^Kb~JbovX}KdnwBf5X6($bPC?e3-1zFN=lqHG@Sa{KrNjs}#oL -zZ(Lb3%i#)RhTa&TSv52=c}yl7!LnWod8XQLcoYdA+P#0>_EuujN(o(GP#ne#i>Ai7 -z=3`HFiaPm#LiSJD2%(0%1TXK(=!6|;PnvjRw5mqSaCp2$ndW%eQJSbeB6A-YO9V68 -zl0B9LUtK0_>=TW{0@*S5ZEK^SB)Wf9jw0} -zNh`z+ci;ekMst$G>p<*5C5U7aG9JO=F1Ru`?*fvM3E&s5hgu>)}~B2Deuhr -z8~4s-m^@)JXj)Yx^#gM%SfXFqvx)*Er`>LTytp;tsc=~k5%1&N3oUMrtPe2*%t>Xm -zo74!RBOhti{>oXLw{P!CT~+GSiT$8RRtH-#Q5D-v(RK%jG00Hq>)mz9btQR(jbc~V -zcy)WHmkXl9nxvH-uE#68G4MohsOjTXar~Eb056MxtZJhLh{k0CvTAB4VRBc*pRqGo -z@XJtp2APAnBIBf1!`-99_rQ(SontYN`oBWDw@ib(ok?)`uNyVN@J2Sc9Xab}Zp -z0|C<*TZ5foocUCmCtW -z&1!sAXj#fVTPw&Lq9Y{3lhT-rausl9;`YiY2^o&XXHxQdjVb-pz1_t>URfsC*s7&c~Yjh~akIlpmg4POA3 -z2!4LD+2^DB8K6qd_%C}s#+d5ZJ;58|lV7>Au>9sL-Ia2}w_UKn9C;^MlzNsqeZq7m -z&jT~e-j-B!?axZgEZL<1wCGf+Q?bkAkW7=>Ox%D$$@F_Kp!vUTa)A{9uqZaBbDA8I -z5YaWOI%Md@f}l(IDgT^QV(3lgQ-Kx?S5{Ko(&dPEH?hNIv-0yP3OgCiShk3rdaAAI -zQ`vvZ?Lbe{p>OLfXABFKk&uxTh!zhPchLrU%~YDFU#oZqJzc5eg~5vO(O1QN>+Ry& -zP=W?s0cCY_2X1X%C!^g&3xc&|8jvMWS(QzA^);@e-_?$gduhVGMVOdmfqpF!v{kgi -zQCLt1^9kTw3a>xeza8MYN&+!?8LHbs8?+q^|6r`I4%)a|gLfz?9s%;1R$kj-C?CJ5 -z$n>WM`&$xcMfLoNPH`QqwSav)vfIdZl}rWQdR4gJW1iw~qes_-ApTXGwF?q-{xGK` -zT(GZY5Z#$^^@DQ!KXA*Z7k(anSdNA1_9#k*!$e0!zs+y|`2I#THlT9qm3H(S#QQ5! -zM5@}Y>gW@E#(@{gfe{Bx=1sacer=LC_`zwSYEfdkO_yTf2F;^6b!xSJFPy8zpa}=A -z8YZ*+HO -zET5VX3;>vbX%o!+7uHX}aJx{aE^s9^)##0NRf29j+bx6%PI63cr0?8@e%U`K8y)A| -zqlGw5H0out-JP+R+egwslo)B1F1rNV14Uyr<68K3#TU-k@24oJ1Q3(m+W11XCSrEX?v%54kD+=6UKeNc!MaO`*V@f?<6cS1WCwRyX*Ui -z&}r`zHZ*DyJZ$`w`1*cC=#iJQHIK*LZU@z;^94g#^btC+O^ZM@l!a^&TlHhqXX|Sm>>=keqVjeZ5vUczh+PwMYn5r -zVIP8(FLEUW{DgC8L~1!SCla0}CJ47nAnFJuEHfT_@9N8^S}825R9neP2x+K&I)%e2 -zME(^~h+ix5ujF75?OWFzVQO_|dN6*5r#RoD!k4>>oaHzjcs8 -zJOgswaRb@ROXCvbrQ&224<)|)n9X|jlnOQKYQ3q1@7i=JT;jR=pc-qd{}9I7uwOHK -z>YYx!{#AEISYL#0PrqGyOLUi!rX)4w*(-V^Hm5TEbw9xJ>QAN=|%JyS=$gERNVA33DUnd?#H_{UKIb`}Yflmiq`M(G=*8DNYL=L+-n8kh|?{DzuS!dj0K+HOyFK*bDc&XpSwt|ax -zqD4j+59ZV~yE=dVdNN|Vs?)x>AEu43`IwX`gMqOX5YkX8a`ok`Yyc0|jk0&2a?Cc_DC#G!x@`g-x -z6qdFCk4>-DEul8GuwWA!zfK;j-!!`^{z?|LY63T__`P>=MJzj6t-1yHWV2m%jS{j_ -zoEbek&wYo-~S<)yBf<`eVf~S-)9>jTw7Suj%k?)x9+ahk(i927}?G -z6^Hw6eZV6Ib{yT%HK%wD*D{{h1aEE+atSSf?j;}q0K-IMtkRaj?S5K@x;FrZD8UIU!ITgSgJEfK9Sk&176}?}5nlgOp0U6T -zM809M8eghkBm2C#SnRST!JDFfZP8#a?%sABW!1p|JQ1X&jF4WKhk#A7d0<=8hM?Xt -z0?2rYp|#nyGVM=7(eW;wahv*0sn)>T9-cdg;pkxyok -ze^+mQl{ptVlYkg5csw{~Ku9L#xnt_fxd~2dCwD>_(%8acb?|_I?DS5uS`q_u -zFI@n4lqVX8AOX=>P%kb8l@BoSor|Aj%~SaIO+#RP)+3vM*qJlmc0ftwN2`<`9&g2S -zX*3|u$S%Pkfrj=!>QJ3Z0x*E&R -zl_xki`l;h6Z{Mor1P6?nGmFN3m(dNWBwfB1ZU0B^&GbKsUkWE#=*2wissuWU|SevYGO<{D_lRUD)0&@UkTte{2G#a -zsF!ZNM91dq5=3Oxp*gaKWc|`o*`0hZBV!j+&%PfPv&6PWWg*=+Ht#Ku1^ZPjHZo?m -zsqu8FlRlgOt+Lb-QE_?82Z?K>)_=-Hym$M17H%^{bYrV&pro#4o7-nDEryb5y&!`$3B0M~sCiRO>Gif`m`s -zG(HPTVeo{dJjlVs5<#(szq(E)wZxi9Z0Utj!X{_>92@5upB!gB5z~Ssnnit&f{aLt -zpd`@3s|#aBnA%?G>Tk)_Uu(<;8}5ZMOuxzJ?dAAnwfRwn*wEiy3?>f~zC*W13Ug6{ -zQdO7@A>0cDP!a-TMwZ$hiwsc^#qV|G-&k~gi%`=Z^}A+dAul;8^$*EMHv_9%3G`WM -zY7@^E-ev2ZBONNG+<2TNd45Zac!y_1pAs*e7kEa@AwN?_Uzf9SO|5g4^ZA-JLtu5kxu@tQgE;;W$L|=@nshm6P -zty$l{Ym4!2g*-DZ@dU#Ulr8t;Sa_}`k1dfDv`MKk(R<SPLWJKciF7VA<#a4}g@xp-om -zpImtgm9`?v&G7x+(vv?eFJ&(keJGC7GsPIYPco7*>J+9gMh<=JN(%Nvu`YBJaN0lR -zw+H*u{0ylubx(QCkPa~R43MsCaq_IK&uU)V1asv%a0B!7M1XRrttK+bQej)W50n%6Ea>{6?}K{{}PTe9HsvhW&Gh)Xc|jjy~ooCIzA8=La^9| -zR;0WavZDS4^x>yC;~SATIV$FrmH_UC2SZ{nCc|J(&4+iNpjK~C -zG^MXsJqxWeYpvqkc7@_KGr_NIVuaeHG_sDhc$n?^?9(efJe8l`z3r?q+njSt&wOrn -z3qzHXE9q7Kz^YAR^lJGBy~kfCyfHcl1HQj%Y*#rwbAK^o7g<|x!Q}AGC!0!HPvDoJ -z+@F3rpwf}MkvjlXI11lvi}47UR6#bN%g5hX^?zalO%3a`#dWf}H>`x(fG%fP$S1Tg -zUU`K-^(h5~=D%JQ0*9QdLNL~E!vLVl(<^{(k63;H2teQQKo1)S9DPhm@POd|4?ODs -zU-Jq)oLR0+7b^P?v;P4Cm|+oIb4%i$=5%@bh9<9K&*{f1RTMY|hS~P}auG)kn-UL3 -zmMj0fN^!glkA5i8e%G95i%`3W6OqD$&HzW)Tvi!D_f^a40eF6O6$vR4%Ds^k8J#ej -zx5gxVaDL%~3!j!(*H8)j9nXtO|Fju18b^1{?NRhxpP^ZGpX>Fu)3=_+g)bsO51YTo -z_ViyCUsx#TDu9EN{;TH^8{exSb-+z|?uEd6@-LgU?5^ikd;$p9!gYwHS&gg2?C=YXWnZc7Yx3ZMlt=!sHYBnzto)*C((q!?IbO_eG5_=P<2n -z0~KTI5c8ZZz1z2m#Hj{hTPo%9J9vxwBM8?ilwG(|e3CQ(6 -z(`lRw4lTJ8_9B>NV*01+iNq8TH`Dxf8)ho{a%3ZL;aS-^i}|6bQF`gW3>pz^v6{eN -zvx`e;>$g~!l-aC2nM9&bPji1I+9pP&d)*As186jI${C_OT)L&U*;r@g44ZQRUo(Pw -z2>UID3HUAe)EmX**=;215D@d%K9SIQu)4$AXUK=H5KBx0c;H%GPcSiB=N-E=@spovFs-tB( -zsoZ)3Uh?SLAUR5Zes}q;5QF!-hlzVyOV6I+)KVR2jm=yQ#QWGjFU#b=A6AB9_dd0s -zT&2aAxZcR2p1S(pSmhsJ5YB4+6G!vkcr5M{3Ob$q-34WbsXJt8Y>9s#hwXvxzUc;R -zye(@hb-ay+mpX!I@pV{lWyb+I??e&5T_9k;5^dbs_M)n%TvhE{Yx82An3t5uA8!^u -z55!pWL_bdalQ+e>tHfPW`)t=Xh~fyzHJPUXH1zIu8SB?S$?#`eLbI)7CVFWa*og5- -zEiqw_c9Mf(uqd1m8h;(L{v+z -z|Cn>z#PySG?)ZT#1SIoRO83#c4r=D^Bv-Z6Mcf~%-i_wy7DPddrSn0Xd5d_!`Bu`S -zMVhe4Ln5%w-bUysIrgX)S3fQKeUCrTQXGMCxt6lqoez(B{P4Z|2^HK~UNQB?Y9Weu -z@euO}35yHiwZ-#uqnSLiIE4DqSZ?9?ScD_FTY>LBrvSAOW!SOfr)sX;Qvh5icjR+S -z&`M$Ai9``M)%p&X1I@}tj@sr57!v@fv&ofc@%UZsU&6D(@13$^VGNDZZaTOI_S$2_ -zClGA$Ww)>rlo*Mlo*Ebi*JU>c -zyeH0BA4c|xLUf|OI?sN}4sLtA}>}_kj -zptA7;FcqSWEQLD{Agfi6V()T~x6+GFHB -zCzayz6&WHYB^fr?8oLaSbxix9DLF8h$6H)na{q(0(3vl(e4My*@-G=vnfLXiK@1E+ -zvv4zQbX1=az{C|4_>T}0nFTi-u&&$>DPg;*9F37j26Q&>-+zDx>U2ZYuwsEZFFbE4 -z&C}~&ip-_JZ^c)9f;#IYSGB6(>0Kk!rWACOwQi8;0xFRs1-_@J$RW`&HdCm_{rluG -zD0Q^W`vK%IT6hbcXayIWify-iV=U%)h-?1Zt=ptS7AgqD%ecvVJIjNX({Y)ZT~1u_ -zvp5%`Kq!3oclxuLVtee7@_oi?Z%+~+0Y(IyYJY5@S|WPaeCufOnIqf?LC0V#gb9l? -zJ8f*T2g}Fz!8v){xeif+F-KakcFfz~74ci&CX447&-8tF@BrK{#t!my5)p&COyOAj -zh}^~MMO0C`?w9XE6Wso=D%VZ9-Y{kBEnc(L>Z&h*Z#+ZQ -zjOW959nv<1r*aZ}-9LO^`xBNr>ly-z-##evR36%3)#S_Ljs;q#hos_4=(V1(!3_$i -zY^n?wS3z%0v&VU?aIhJaot-gmj+|>(nmBD0KjCoKx}?8#Rm(APobYDgRHa$vY#jOI -zhR$wx1_tuevEN_5kfmGVC}GAR*9&t^kg)J(G&Hv=xx07dCp(>NGG;8*LNZ^Gt8ATE -z;7gZ&xY_R4ZmdqC-B7|^v!2qJReqbQ5T2TGGMDzr<^&MulP#PwH8|&PG*C&oUK8rC=zqX(>g-SXi -z28<}^&efOjTV*5n&&N;6?k!JkUqC@$nXkt8pp)&e0w2V^7HH7#TXlR55Ke6 -z!?CV@>Y_?7nAd(Z)^Cz5UV%CRT9ot0LxthXZP11aH7c@s{y4t$^j~&`r&G`bJ$G%a95@Op#FLmXArZo+?cpU$#6EPR|@ii0Xcx$aJhGz;IPWeH -zpQ+OWY}Ls-|5}S^-e~~X)1v@b!_1O>v>haGH6fqQrU-c5Yb8B?FgvgjgaL7Nx6gqm -z^!Sq_pCCLyg|u4>d4uSM)0`LA=2-%rH8j~7l%K)URjjbdDe&Aq*>iJ0^_k+_c4oXQ$<%Hc;Dj6?7; -z_}FF4U?Lm?v*^BfNF}=b^b9B#J7F!e7w+y8i -zD=uT$S6Bn94pd_2#0Lw`+%g-VN!oZ~NvN(eVkWsU}6 -z3m7b;MlXi^iODFunv0|4#6z_y_#sc6Lb)Jo3~8RgAB2xE{i3ONUF=_9XUclsZuLI> -zI#iNIFckX_mS2+QvByR;9YX~!*)aXC(MB^y{vyR2r`v~fW1;v-_+*;gW`bCN^2sXTOs`&-03FhZ -z({$m@?7sRqjC>M3nEkgAUBQx(`buh);M#T~T -zoCW9;44SM3Fb}J@8JPjg`Kv6Q_9{50+n<4=C|Yo89s-T)2b+7V4CzwyhZyTlQI!1G -z_^)Dav)kRk25bfT?SukVEp^)4p{iQLP3<-$pk!;7Tl53bG+g+r?3`9P*08!z$l2qk -z?aplNy=@7|yFss$?>sU!9`*6Hw@T44^{zt<+xoX3P^pfRC?QC}4)505;@!a$Z?h_` -zgN<-b$e3jASU@#vLgWY{3edoQoWwKPw8s@(GjBg}G$Rh?juwRCp1% -z5_N0-ihAW>G6crXprldays`oYr7b8Du3VYS%s(4WVmj11-AIWjjEJ#h7P0!<%eqwi389lV!j4S8I-b*LnXK9B_+wdznQ -z5ZwXxUw^S^)Zee&?dAZ#<7iaxgsitu!Ii1y%*`{%h|J}25k5RL@A&wlJR;@}=@pQW -z8HHU_W9?^SEU{nD(L3`;(2#@Hw=at>=`O=9CYdF;NkgaE{(<4HH!l|{8(>V8{Pjy^ -z9(Ck=4g9;uoPXV7#6$&l`g08xB_AbAYU+46d2I^ -zy3aDgXqEbXMtA*l$s2Z~knnevJWksJyn#5%xFT&cE|iqphpe_1b(xojvB>@SI&%!9 -zPE|dYL#YVQ6nCKWbFU3*f0ukKZZZ&+R4sb@q -z{y*RLSg{|DUz>f`$a^{!i<$lsPPfdM_dIr%9-LfugoPA&v#Fp1=iTF5amhKN(fsxU -zWePx)$;8?1wmjaGQSolJe3o7B}d@rX_drSA>6&f1!{C5*XM$jq6YA -z`U7x)1d?-Rne&iy8kMMJ>P@Gxqb8rUe^lwKvVjiBF40=E>m;pjhMulWWGBjIM4E}l%_=qc9Fidxdt}3y)fd#e{x9R=DVHm -zj9>+kcSv= -zTLvg!v@?h@d4-!;65SJPFh@W2!e|Zs$)V`zXDf-djR#kiRev2p!WZW{1p{k6Bbh^A -zirZKcA0iSZW)EM)=z)RvgL`f*x1a?NfT%pgDa~nu7JnBdoX2TrvM#C|6l)7Q{E*QzBLQUUg*eOu -z;!}O7ezQ{M2_OxSN<7Yz4j6s&Amxnn(c9_MhRjKQi2A_@3HyDtT;&HXK?7$zzdFkY -z=nBk%0D&QGh}4&>^rpPci@u_RFY{(D$B-u{s7B~FIN6iYRy-zw2N_<~kH)FJb>T3< -zJ6E})1PaRZf=sWpc^P^dr(489g(FZx1v8=i1D)uhGUj9{a1Qj0fO} -z2M84pzXbunE1?ynGB*q*_DC3MP+VI@9k)Uok3h&!jmjKU1f&-|oPEdB8hNaH32}e+ -z&O0S%8|D<;9d4HyR}6{hxQi+`^HQ&we|zy_ZQTCfU`!IgH)~DZEA`ttgn@tuu{*Hl -zjrqqRs20(G+JRXdtOr)RVnSPcs8b%d^EbQmIo#}_wUEML<@9Gs_A%v=w4lxO5U;Wq -z^u@S`t-smuuVL(i8|Gv@USDeno`f;8{T?_i#=tvJPt6o*nM?%q<|i@UqKw@}=@ -zcyV|4lc)Xd&))xi&bjx#xUYCtRx&f0Op?jWH>~jv$W}@c{%Z^??nX~d=~VL)f(L|@ -zc!tn(;j-=X1N|2!8@3CjJjPO7j4?uhS}Hwc60da67QXy82lEUaSe#Y;5%uMCAJ@iH -z07sJy8TuSY(Ivv5M;gWrHnC{Q0lm}{CI`a=TV16G06$LQGmvzvVa56D#|G&5a%r1` -zp+7kd$Ps2U)h+y|e8Gpy+4#@aIZWmV-Od!C$M)gOIBg3bScJ>ZsYAP6ZiTA-3V&2% -zFLZ2q$v-R0CdS<3S?Aa}k>#id>%9f9aD|!UtIE@W{kB)htb~~_1b~f-kfPWg+FbLn -zGODsLjhh(8jsDgRjvNcKq)sT(Pe1Yq=C9?4*RUs?86Ks)tNgaf>p6Ay7L!WxSp&V4 -z9iom-0G_;n;u8B}X5$t`92E4oEDhYBCDm++f})dpr?N0`ieaxcBP2)4=&A|Pg}8%^ -zgGyo>MkX-;O(iusD6PpCzsD$^;kSz7kyRb!NS$_V4CqxqM#9b{qy=)<@X}C8$Kv~ -zE^J|~!yIRLa)OGVvu$AR3nE`wW_|86ec@65Ziyyc(BX9!yRHS-*!h}S#akgS+WdF} -zIr^_w&Kg(%aiS_qc&$_M&JzJcMaXN%NaA!*c=vPOAb_X%1{KUG*>%)ZB6PJuW%xWi -zQI&nGpzXem*zao8pjo<}>oHoRC^JTVKK;u30lOeRM23<^ak`%z^(+r-PA3)Jd1Wk& -z&3JW;EVuWeW?VM=qpq5DP`!_h%xE~X=mi5rijSf1(Z -z8{Nk0tdBp3xLT4jVpylSe8e19G`^c8**6?i+YAlYd6GWRbHyM#bnkuLD@P~6l_uWXfm)62hzsMG^jqS^1QDPX7hvxhulc*57(}p-Q@P;cQt!= -zna<9&oCru;3KiNridcFLv;bB)HxVJjPWSB4dYLoh@F^yG9BISE>!s0$52u_vZ54S@ -z$p|>NZ*&xt@dIS^NTPVrx~<-6Q1>ktAud{?!W%nXm<0G&`g*q_(xt`%+T -znZ=0GUryRN$DcNM^^AvcO{FC-M=?uBaKOtEf*%SMv)aS5h_$LYD;RD>VlCX2fWLW5 -z5;@nn)UJM;@tdtbv|*88QpoG3^7)?47;3Nx?}tQt7b>HI>{dPe;5>BQ+bf#2UUv&` -zlJgjYa#l>nlQe)g2;2!aC_ilVT7#F+!=O4U)8BwbK9zW>#B-wnmfAX+v7&4K?~6<2=mL#5+J{ma -zuNZS&Ym6<$7TK`UqS~g1GWHfsyy4Z9bJgwaU-GrCMh#w$-$Q|LN}p1;`fhhh+*WcJge&W^n+lgObC)60Iq1>CE>=OI6`DzwHXo7n+Y5QFqk}#Tk=}*=jiYI@# -z8ncvL9+1{`;8pR|xq9gM{yIfcFI2bq^@DD26$Y&q;cw!HAVHXbC4fkNb -z{BgU})lq)*Dr9|2`@97_!R^UfIUiBk`dijz0DUgdwKRWrNJ(Uv_X{yN4HP8k?)Nj{ -zsTrz+9UXgn(hORlv`MU$;jaBo80_j1JCo&<7tvQ$AS96~Rkm^abMZ}APa!AdMu}7z -z?gvk%MK=V{0h)?nd7TmGsCvXHwLk}9I -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 -zh%B9nvDgci3Mc -zJEV%pCcG~=T{dzz&0*ina!%HYq)TyxIu|isjK;=3hgHfNevP`5+AjQJ(co43HytTd -zVq_;CjM)d2eQw3iM&nYsDTc%gYH?FqZ@zRc%Td>`Pg5i6tqJg0WS(J{O#kRLgrSa- -zBhy7+#`o{Ws6y#5t=m-_>=U_KSSzH4#_r9<_%uo3V{7f6h;uFf4DyWFvThbc7@ja} -z#P!<#w@DK}yl2<)7g6R(svlWy5RN9fup^gEKB$f6@UFkASBH(E#4F8%aK*l=eRs`{ -z6wz-D)kScBtRO2HYZScA2;AxXbR^lsC)eU85&ASr?kxwapRZenOIsVK;C8}c))iiz -z2VfgHAj|S`R*FA*wI<@H8zS2Yu4~uf4b<2j-Z61K6wuWhliUEC*;vlVGD*+sIq8jx -z&W@l*(##g9Aoqzkcw&1I-pUbMV%^m_d0=1XQ=>2uq1jmpEht-C -zCJuIUcFJuFTB-jKU?By@c3-UE^}}lyErAJ`C{E6@>JmcQOtfBlx5lk~_wdz1){nL# -zrM0XRzGnT&t?6B{wYmgziXrz+yc5~e)xP`Q17BeQT7{o(Q20mIFJV1DAFeR<07I-6 -zpS#4i -ztJC~*_h9#GW;~`)?J&Wu*-p>q!K0I!ZaVoi9N&Cuv{SXWq)KwEzsS;iBs+VZulu=* -zM2f(-AjUP(hLv6wU;b*l`+LK6i-~U}DYvdiQhdhQ#WT6qn7JwLxGyEi)3(1d#E#(4 -zJy-~U3TSB8HP~GxHVjW5)3xbr^peZLt3#IDg=3d+ayRECRo|(Aa&}4UI|Q9^rSR>& -z`}dWA=Cw1K8}bWbi6ALsGmoExdzyj^VBvPsL7Mg7>jhe*SmTGvc^d+&D8SAIvpycS -z33^={l@MsUJsg`J&nZSavOQihPO&7O?%CVUAN_b?QVK*}r*YXXfAhB8z_>>)fKVgp -zqSLb}nCQN_&R6$@;11(~`Eh2!JWgDIwy#&Frd>GsUI1&7x{eO9ByH)?C9ayc5_`1d8f1kPMPWSo5Ta;wm|Hl -zjUUNlq|x6@CsFnKsZ-N+T0)5ra3Iyp9qRCj(x$hP)w6oY*IgWL_nTNh*bfva8AY{? -z=3X+4{agwdzs2SL{b^#`BN$F0^@PLf+ZXO68g2WIGx-?V-6Om3c(Y)*Lr%<#R`H7| -z8MWs@UbZnSnT-)G=TS4?;WkTFR$!M0H`-UHP8erqed@;50ZJV`m -zaA50AsM>i#r1%A8Uuf{VH*Q8MS7$BNw84T>FxW_`VmNYr# -z3~SvkqkVuj{+X+EDH{K6dgJdAK|M|_e<0CZY_|m;Q7Ge2J~M?%Xc>1DUZYPZYqjJ2 -zBW@w;LXp1%E9btJ{ch1-q!O$bxY0So((JWcYJbL^PM+y)0L|-Ak(wKwnv12jez`2A -z3?FjO=kL^g&eZ&6OM-ubMDCkEHZ$KfcVEPBGfr2>rg<@ct;Om6Z1aPR^O4#qDJbzo -z>M)x3i8ka3!S`eOvzz*#2xnuMU6rixaSX*jZf~|;j}YCOLt%jW?spEayUuRs~@9|aFVXR -z*_}Mx@e1K5tyS{!fsu|8D?VgO)7m>4bQ8N5*Ey3a{8C`(GI^Xw*|;@ened%Z=V4Ls -zQo0nAIzk0?rP+rK&BNpL<*2(VUQayo>kcdPMuoC2DpuJ{As%uC)S`~M6dlgmD#TLJ -zw*}~aDMp!@EZz}(&8{h=_oP~O@P|-=^lj=5_5RW@s!DFN -z#L^R$_Uvf6VIi{FhbmmsbTXKjPw{$)_P~mJA!OGf_AtgXfQE-bHf()MIuaV -zG(}3kb>7f_YJ)8dy4?y9>J)A!RaDM&!X9(YH5)P&S2%Q}>1@Ch=_eU4MIY-VT` -z%#quQ;u#mbIog#hlD?8a1GD~dbcb5-6(quSWlk<9;7(p0z+)Z`NtK30CH -zKBuz*SmWWOO(9emoMG9fTq^8p&gG{hyByB2o!zVLV--AjFN7kc->mIRrf29hBrG&@ -z_u@{0jXAQJf8p$jJv|I?UdTTwOqpTbn6Z{(z-UW;F6a;U+lmMeTHBxg9Ejo=#R%Dm -z3|wwe6|HVOck@ZXCLn%t0jnrOEl_n&AaDpj1CaBxEW=?C_h>HsX9JbmJfhR}q3_Z< -zsUb30IHT&)A~9E7EsS7kDW5&-h(z6(v=OiyT#E?b(Xz;8O?Q_Z<{RO=0M9|#N8O+g -zSkOdBGvz;4*T))7@Fnz&pu`2V^1Z{KE=`+h_?2I^6ia}`68mU7S28^pZp$0EU)~B+ -zTZA|HOWx^93W${aMA6of&|nLeg7)H%um8>dRx=a`NAsH)>O2F#HjEb1>uhg9C=V=T -zxn-jooro0dJFB!h6MP^7&Jk_njPoH**xT)zh~s*jGqA)zHn_|`Tx`_42npOI&G+1U -z8=Z3YM&3dvtbM8^yM!GRi)7|!i-Mc -zJX0z@Y^mzTW#lWYn^@>6u5!e|)y$4ifR`g8wt1#@d@IwumQL%6NWMm?TH*WB4|?0H -zQ|NUA6-!%hu1JL-%I8$I_wgET-&0QhitCE#Ey9YC$aMKg{%|w$zDZrl`ln0+|=a+J>a% -z*)+xF7*&H1Dh>Dut4wihLz4U#>Tg`G_o&Y5E}s3V$PdH*Lt1W-z`@A*Wxk<#h^809 -zIR9ZNu4UQkyJB&(hFc(ei)I)M -z$Vz&^P1rDZYaUb5ZGW3_t_b-2aM9Iy=?5l^?5Fn2BhC{iEaa|^p846c+0_lb@&{aE -z>_dU?-6+8B;#-SGEhmOgi;&a;_An@HGl^t2IcpY+ZqFKjSD_^WR{>NZ*iBO46xCOx -z<3qD&&$wf~*w~gP20g*dC1$`vi;6u88R`~YSF8I*rSBqzw0-?Rs1^{staM_%;b_)9BSn|uj;)xgr_ -zV#ss=xd~-(3k-QO%Mct8+apxW2ph`3!9R)nXAR1a^<=N96!gq@;CLg>bHn=iFh4wO -zLUJ43m0f|2codxcr};=`u(!9upYxVV;>)(6kk-j5NI@JsZ3IA#l<0oBpDolRY+7i_ -zPT2HbyKRxXuC?e?f0EF}ij>BZb6uRz&*v4WAE8Lbe!mTiRv) -zXlpd*m6RG2GISRb5BD;O@4 -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 -zkiuigF`#GR9<9+tjs%O6?`zbc{(2 -zRDi2Ld@H-sxa$R_OrgkUF*J!z -zeoKSgNLB5UJZkJklyhSbOowoY+>S8RuXFRw7-0+F!drw@e{KIgssM0Zg|%aj-85Y+ -z-?L0M#Bkg%!NyqX+PGEk-;cE*G!>?BIx+h@l(mR-@VCz=7;5Dzuk2te4J+6ARI9|N -z=}bnSYV1e*l=vO>2@9;TGYVc`%XfC5)ZKT&E0Q~dS05$?KhC!3&ufQByx!89bGV~x -z!U=6c2qG*GVsxEOT>f=DVyxiXzQE2u_7lHxD}_jW)e~Qi>DMSPNPNmTjP@#d;ixmg -ztT(|aW(WE;ZjIr$z<}&$>NdASi7ECt#i}z2;x|)Qc^$%s?O~2-5W-edVgnzM6p%mL -zQiCn=^?x#sL~JSLw^(yc4txg?R5eSjL&|bdVnB6p9!5zp!Vy1Jlh)PWg*7TbB~vfb -z+X>AWBdIh3y6VLbG9mZ~UxlD&18rs$r#-2?ZDcq)XW-_I25CePn$e85zd~~0v^{%A_dp4=V`4FNJoRu05=y+@48soEE -z6G@?0?P0{S3ZOg1bl**&u#Xm|R{=gi05-^|suYTMirU308RrF9swPx%4)|-cKuux? -zRUJ*Tk*ZuY(ft>|H+3+cH}&{7Payso>Do;7g;O!B@mz_i>nU6Du-fUF5r7oz&=w~= -zO`&rpn<*w>3JSAOS>-~G(BU-Hem`O23I#kctg-}W+7lOqj(+;nY%9Q`gajd+{Y{cq -zt3-*fuf?~z=G1B6%;6gx!78#c^xV8ac8x`{7XyR`Wc>wZL%xK#QkI3&i|;B>TT?f5mm0MLSh|-bY^A -zI~W_Z9Y``BvTKCis&V#mnab(l8+DrBfgw*^R_Bi(~908@5{q{Jcj- -zuY+6(L2!Jek)7UCJ){zZI^PN_j-oZX-bK9$ng{Zpn}_}VHimd)s+GU*vv%Wxg%4c1}9qYj1AFFne)~*B%T3 -zA{P{dNI*>tPO;I2#0@0iJ3cq; -z1`TLR@=U8uAk0v>L#4{O*3g60u-D8C)5^M-#Bz+cDMUrC+Gr*dg!bbX+9aF6Zco)p -z;O5Sk?42}n)y(iuvk7SMfZH_ -zUW#n94bgv}W;B-^(Sk#%diYDp;))8u-eUUdGhXvk+fJM~O_exFL!fZ5Q*R2b%;7&J -zF^IaH7=LvUNz`B{aAiAaW{Gu8fCfvDU-nM(J42I~gFlx|1fJ(4*iOA0&ARLL_J0Eb -z1luT|!zz}TY@+0B9mNKHHNn%XURC1*C%EcY1w6GpUYu#v${LtUzX{W`iJ>(uz?nvX -zRwd<@B3Q5H$}hN0(^zA$>m-^w;v=q+tl&gKxclUu(~)CX){jZ4w%_aG4j_|nDk})z -zmuG$d6kaeIAcQp|SopEsvpYRQt9ggIwe#S4CAN?7oN5t!bGZy%@wbeR3Aez9JYre+ -zp(pV6-u<4}3U}WGU;;iE0A@&L;YY1rO1-9Cb8>?QV1TF)fEwXfF`;*_xo{DR{20WV -zo9FYjZ~lBh6ABzn0Kv*~Ve?F1Qgb)Q2S|8`0|oB3iCP13<}UI6++a2#QW_clR)G1( -zjV1LM8cQQ1IDAx7h{Sv7Tu~o}@4|4W4?c6m%=F%lY83J{wNoIDWm&Ou`x5q}4|p#v -zGbiJS#Cv`si`VXwS60A#s)C8UbF7Iih4*W7`3h5zpiNHP_|?{nh!ZOXw$Y!#w^@cU -z3XSNCcTd6I+>~YJ(W#iAG+i*ZyI<8viBYWuda}ifol_Mt( -z3ad?Y#q%E1iEI0O`5{7O61|sr;f%wt%!z{kiD#N?TMIt9D!bUpOKLZNyA!E8{cQYD -zfPH>!kQ9o9RPM${Ei}u?v@2cEmX?fB&5|ml4OrvGyEoSt!ANB<<~lr-##twUPhbBj -zcw@YWeD-N6g@MoEl^6S;iV8lucxdi5x~M0m$fVbw$M45iaDfkjPwIl}Q(IP&4yC0{ -zed4k%^6nYBBni=Vz)#`K8gPXCgd=ux+(ecdz_PMjPui|>Wp(?5fWA}q;Y49e}^fQvVf$+&ux)NGauRtvx5#?3r -z6Rd+P@8$CCfwbK*aH>^{n7v&-ad~@5n3%M(5GlBAotC~l`D%tfVpcRX6<3MKR&9O~ -z>?<$@_Y@-mEP((7_2=Qm$n$iH5ZAr@VISJHEO_Nxl~7ll$c5iE%bL2Oe@kE$bBU_W -z%czsC5<+OO{xtKb41diY1ns(aLH|zyWo|a9krA1?crrJ1AF<%mc6s;z;jD3#~Q}Q3b))xE8g(yNAG@ -z-~$H~yes*6lC34Gc(&-lMuC!jf%a4YHv#O@)j}WAU|hc{L8$fRTr|mjaeGOTkN`+a -z?V~JTdl|os{*F+irr -z=u^Ac#?mw=vV$K$wJM4q*#!B9$cpG+jrBC`n9^K!{_tpTTbo4vTJSN~$bsZA%9N%p -zpYd?RVa5!gS~dGRjIVf;7(yJSB0Z;lB3V!=W+Gde!dHGUi}0|ijE=L<3EybpUEspo -zrep-AGP+ku>L2dH1j>f4Et~r3;c(0u^>(`X#yQ?CTD26^XvqnZ0xLxP<#4Y}TGlJ_g -z6~0~CE_-;T9lFc%vHhruvXLRr$MH$^UVWlEy8o2Xw4H!dmHmUr8~!$G{|-AGA;bc1wB -zci-9D?|IJso%1`-bMJlbKWyH2X4b^JW@gP=>$7HKprT5%`lRZG4n{^(vHRVdCL+=NSzs_3!?IZuA(ZLuYoh?~NVwBbfv(O6Tq6nHz6soJ1*G3Ey(beL -znoPC%3DT(K-Cl^6#P2U=oG<}PQw+w#o3t$K^zOJRJOKk>N4`xG(?&WnJ1mw*&yHaX -z{#)WVniO5B-Ygh6L^>65;6>V2lyTbf>*W5Y)V<(_H(9JGnp*y8m@Khe()~MdJjijb -zLijCw!%q#ShYY=v%gqWon$0XDqnKnfLJ;eZucJ4w%g-?OYz+m2SrxElUo&;l??>%Q -zO|7z~Qi_tf#xF57px -zGl_J37OkIGy55fv0UTipX}2<)L-qSF(*vFf?<28*)vjSni!}a;z=+%tGFb4yW6CDu -zjZ9^A6QhMUsVhtM-%Fpbo?<8CaScG3BE{95JNIlQaO+^Hrl_^Gb(Opfq5kp32^&}n -z*|Nuw4+wt=HI*p99^kgDbHfPxN6fDx3Ri(Uel70k_7jwci1D8X_iC=K?M9K!DiN~X -z2a6ORU-y|pW;9T@?dWZI9xOq%MIgpwEcffo_*$h!`wi{fSS;y@OgQVvBv0_h9c3#);_PfVo)K_om7GOp -zQL@YDcA7w~W9${^Xjyv$HdajL-0lND1D}AF;E~oL9(K7Nanmo-{4AGzPe0HG9709n -ze_5n62=k}^kP%@TN{1_(i_aEDVF2xI`#=op!AqjOh;S%%xZlA_DQH*uC4}pTYWUxb -zhfRS#1##l)qvfDpE>rE(MQ>(Ny|->U~;9eD@si(^r+sN}0s^frx5Y=r2(H -zf#5Z86PkJ_T4?P#BxLXIxM~aGRje%Sl<@St8WY=%bhP&sb9t!FL)!Z>Quv_V_X|jnEH_9G~ -z0~yAjb`9GT{`4*(%n^J)rn3n*gI4LUGKQ8;XFc(Sl<48UOFf#X7x68Pg$(-AY*GF< -zD=#Wj99eXBQ#=8dYM9sfgT6FkkU_B!+UQ`SC?8Q(_H&N{uvFMD+lB+dIEp&)s=w;u -z0v&NG<|gdxuwy2!=puy@>q(q7(9FRqHlo`OyBnU--VDO*tz556Fq|Gt2k-Noob -zEGyu4`)Gfnq>rnQxSN^)a0T{gI*v7-FZ}gGx=~A+!Ux4Hw0ED_L@P@c#0f?_U3xpr -z*ZFoLBvmB|356*piUEiYG+KO2ty(P7tS{Q1zdAKz#ckxIbhD~e3MxU8IbX`~uJ}{& -zIpAG5LWMe0a&%A45<%|%Oh_|M@MFN7fB=7qYRxBYcpmczydjt>pCB-wRsW=aZmah-Jub`is+PPkN}WK;)PEWhz1t -z!mr23V0#?(ka|PhDxJ2;`9B_-*A68C50X>p9Ud%V)~>W9-r{$8u_}-vJ=_<+@)8bNk)BE%HrQF1Ac#p+Vy30i6hvkV~U-i}kePgF|qV4{zeKQB(3tq74kl$2@ -znX86!JyutF?xB^%UM2?Axl+&hL>wYL~qThh>Bj$cKyD{G_P|eN^ -zKt8yz}$&NA89D -zSl!e>k^E%)dB*E0$O3=~-!`7schJm2J)9?wgB?5hCz7;fHF&QZFU~CrNq{~qe6o+x -z!X3$YWdm~8=4w7dz|YM&%@5Ahr)lfhnLfwgxKVfzT>%INNPMMF*v8J9OG -z_jKZWl}6ege3>>Bvmk7LUrzWv?EyWP9TluV3%4sAXP54(&WPY){dR>aVb~d~f#*a9 -znwO&WvbHTe#P&?1h3ns&cpXjE@bLL*ogQ(ili=W;BdBhq`Z)L?=ta$9$Xy)cvTa#A -z_VEbqRaXb4r;(@q`^ySe5=+2~cBk{%I^;8V1T=Q|LUKaOO`u1=NBB#@?ZS;EVwSS` -zi(qx#+WK6*FQ&YN|DmtALcdiF{dD8cW+)KF6~hOdEn?nl_YGp`3;jv*KktgWrI -z$@~j-6NiG-R5sp!iJ=z$P1aAZ8k1OBIgS+)!uV=kZRkx~G3_f9B7xdKIWuecAk}d5 -z2CN$4eRiiG{l@%oQ5!LZIk%^b!TL$TbhlJ=m6*I>e?$O9GZ#Z$o)}koQpLanodks8DPf$hq -zEdmSdL(cD&b(l$`2W0g<6tMGt)W4#RpzM2<;5pT0Y_|UxdCf~SaDWEx2X|TA3qn?) -z-PRT)wM~m8R$z1l=d#{c33)E!5BUrciPgTO?aFWFGXxe@-bh`w?dw@rHA=Jqo^n(f -z2~L|?5cYP!?)?BT%cV7}N54KC97`&?C5U-v7b-u$UuaCt5cs7`j>Ml3L4RQ(p3|_i -zD&aqik+SS4$|L5jnHM|Sm`7|K`)<~KWcaWaOn-Y?eWY-KIJ~>!_&i`5wl~p7;)meN -z4pXc)6&he$9{_Xxw!H7aAAcc*l?FECDIE1?k2Nfy(nU^aJJ~%NK^k}>snR^~2j}b( -zs=|ezxZ>!)WEYi$^fay&o!*K?N;BNavTmDFN2DLw9?^tFAZc=?LG2{pcy~L4=tNysQq#0)dS-XS-h%J+^a+Q{Bmk_xfQk$(&0Ga_)_d4(_#8HnMXg2-c -z-pOYd8!bFEi`)ciC}M(QIho@!Kq -zV>3&0#h`IrtmI&S$PsX#Hx2XJTlgd1uv%`@-(>nVci=JAm3U;uCY(1`>0298mUTpv -zM1Z3+^Nqw#pplAw*ZR_^1QW?Wc&$C^a|SAnpBpZDBUV4vo?qfz9&P^EIKtN_^>-OQ`utHN3lESz|lb~(faQbQu -zw@ge|&6;0#<4C8aP(#i}TiDM=g{M_+vP^60=?D-{@xu_gS8XYwhFn7}zmX8^5R?&q -zGjbP|2erwNa~xJzP1$jv_|8b3yQ^$>esfGC2dCakz$lXz_ZOV!8g8kddg?5+nM -zXfsG@Hm|pn9(^ehFICW~?Y{OHJq2W>`dZ)oF;L4LEa$25>Vd0vlA`^hhL*(zUB13F -zb3*Q{layLxg+iBS?CnXO6c=JYFwFafFj++0JTZx?1&TdU##HL@L}90eaPv2KmwW4P -zz<~+#bj3J*5M&eUF==r`bf?P>R5@Gmkh&>8EO_zb>0a6+aBK?F#`n$@NWuI7&});w -zgVQFAT=H9w^~Pn%_EnCj55El*TU64tdxJ{> -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 -z1j*hdRBOmOOpuf;QjkD=r_QF=m8{Ts9pS -z7KfWw&L<{-H)0f*{LB}=&tn~2KsregBdK$S26tm@lRv}Kx}RA(=8w%7cE7^{Gm^$0 -ze_&a}up9o`G+Gaqo)_I({q8@BXXe_K;kNW(4k+$SlP=5Wxw`!iDon@r`L>?_dCC*x -zJK*ewRn5 -zXMA}l-j@D@<+HB7Fw0+0VRdmT9*JzeB&Y;a_pTza;%IzDNs -zI8+^$?FT~(y8Zqx@BkI5wr^sMEd5eWk2zv%Uv;~N0o-Q;O?Iu?GKM-pPwIy(l{Kms -zD#S??%=f4)JMl&yUnEzey4tZX=cYWXLr(oylz=zv&1BDE?F;2rrpD)?VaZR7$W|*D -zB6=VNHIreN%XeZ9h=-}ncFEQNA_#qnw*NLgWoL4)8<<3BY$jBv|7iG$`OlUBWa?Lt -zOwahXIG91hyz)$;lK$C)8kbWLfDT5Qn3jYQM05k@2YIfEsizHW3C?x%cCiFK6bfg9 -z)L!%u0BKdU@Xc9f%20FSPn~{Y`{u?8l2&R(^Q!|*Y1yfgJWf}7kC(Af^sGcRVq%bS -zQ2^DDH1BcnlD-cvkiJ1-&ygV!sW|)HFVkTb&4R6eZ{ -z`d|*T2G+XmIb5HjLMx4;KS2HC{E!b~H3MF3rH;~vTM#XsSUN?4CKe;a@Axc0fsLAQ -z^5LM(QPnnw&sc-+H%fH?PBBWqZJoQ_g0X{W7MLwtBP1%m^3Qo}QrlC2r%M_3{2$^T -zM@eS#YXNA~@69%Q44BObJMDLNhx7ZftYM9LLQe@5ph+cF?Ha8bZ>TcWp<+Mk&fM3z -z!9ZTtzCjOgYEUSyHHn%6Y6)ynm!eN?Ctv_x?37GCD_QPHiyY1|i?MBiT2Qm7mYiM2HsDp&y -zlK1dC?}Cf45?+ed?@7be3o)?i*YtEQc~ -z^-}cR!F<`1aY}o~DbsUsSc!bzS2os-*2L2R0%cr@BI3kcw3)P`nE)3s@KFRy?AwOE -zFVcmw+cZ$w15W$;yzjVPw|38NGy=zR7p(f4NI(rWFvfA?6IqtIu!V$DiE9spO3{Mn -zLFG=m_~Ll+GbRidcWkY%0ju|>4~X9SU|{$G)Fr1;S6-@m+{BzY^Tl8gIN^Nr%)y2e%L3+&GVH?#0AA#YT_m~ -z1V5kGL8r+mCn9~GK&gCFqz=S5nLaG+&i+-MQ631V@6{UCZUq^&aOpHB`4^(()4n{pa_6Bz`X0PqqIh~)pq -zPq~h`W%D^B{{eJ1lFy{0P0{?D%K$o@A$I_+Bb_cP{Wa*qcF=joMDr?cZ?Sx31ay)4 -zTDpY`%>T#1W?GTqZW}(&dg~_xz}cD3B+-@L5j4BUUX7zRC_+54^lAAT2t%QeO-K5G!gxMLU#LefmBne_Z6gL?=ysy3Xgx~M -zk+&0FeDHDW9O6NT@!}|E%BLB)dLSHRQsa&5L9k9(EHFpHBPcqKD9xbFBGnq1Q9YB7P4T=05l_FBw0AD;`03vcVm$M=z3G~38d -zjbIU$qEV!x_%V+patZr4<&x97?zihwC3-~+sl8%yD11a7kbnYg-iPiw(mt_e9vGgY -zU-zNU5lFEMTt`EM<{Fh8jedjSKFrGHyniMbt08m%^ATb_5RRcRmTpY$$&HjHask|82d*37^@B`2uI;5y%i$F)(7^8>`VRlZ#5D!P;Us8mJ$D-j-<(Hv9^zSB|LQL_kdkFsSrw1~l_%c -z(lCRV09zN%(cUl2jC_PeU-{K*w&bSG=#-Lq$=buXlkH;C;-Ei})37xL=3&H6ug)r; -zCpFRP)rl|kD_|<}vdu9(rar9k>4HAz;8N}K3jN*5zJFW$6GTx_Aek6**3$eHatnyr -zl_-yF_V<3F9z$#UxcuQhR7w?F@kKpYy|END*TSs}l^lDS_)rxiu4mF6yn79gcdYjt -z;}^_1kL3V!3bE&ZvVU%QBD(2av;*bOn4s8w0c8h;La=t_#H*(wd<@;#KQRP0GiDp6 -z3BD=ZcLo`M53hSp#)uzrVDX`;un -z+M08z`uV}P$7l%x-gfzkJjJ^!pH5cyD#FPK3dzv%uB;X|vreA%RH?hm4=EUB3!g=Q -z*yH@0yi&dc=RW~@3ek_qI;Sh`o>0z+M8l-%K?`uf{vbTH6CWNZa`%?fc|x3Q -zDl%ZeBwe7C>}A4)fVZYNDRYrGRMOU0ML@*B3G69G07R3s;@1lqkE2@wNK -z`Pce1qNJ4vbRzlnGxn?!g0ukxiF=&C4D&7s=Q;eDk!U0ojthB%CQD~N3Qs2k??J(! -zs1H~Do4%;t*{7uh4oHQhXWYk#m1CGdol$%#+Zc5g$s -zX7JubYN4=JqV$6M1e_lw2px#G=BD<4%uj%YYIIHIW^1c?ZsDH{dR%UhW-RNupaZrM -zk~n{Ykm`roZY+GTxA2(VrP4S&socdK17JU}^*g^FB#2d{a6U-FHjO)gszm`UK7`e4 -zn~=bv4q!WjRShwpR>Zt)NQWra){KErF%eBB{CR#xUL3ZCAeK^`KU@&@a2EZA)6v>_ -z3p98SHTqnhRbz`BY}+LiTmJ5289OHwtwXtSr3MH_eejh$wHkMW2~^J0B+M&hrC-48 -z@9p?$Wfe4Va09KDZB6&dT)lZFRMvdCu6yPvb60xvmQ#nEKk88sB%8B!Vq-GDWuLJK -z1&p#skpYUusk>IU+@%^A#AA&&Q`3Tf=hi)%wts>_Ki0USvkG$#%4r4S!&l`VOHA}j -zvA!garv#}2AU+j!t4g%&g}t!M8^s9Zs}hEB7fHw)`G`^)jw9?``IDq|a -zwhXH1mZ;K!*$mcd3!ze!$g~R7N+9V`1WQ!bfFK{g1dFMN@22I3p@;tYmYYhRuw}+ -z8TZ392^3#wZQJOHY`7{$HHi8KBiRU_`?YV>(@sQx8q8I!mR -zd7~s?`r2Ft*zg;XSzZ~+F_)Zl!P{vPD+xM=GRg+Dq5g)uGWx*IQX(LZd-%;C`F-@F -zJih*LR!^PdtBG5q+8J-EDsEtOY^*pm&Io5u%p<5&u^Kb?E8Of2uGp1{v0yy^_Afnw -z=2W%jVbPKKIh$odk9@+k_{=0f2?fIOh%D*5T$jH+br)mj3q01$sbRC#tKpZDfm~uI -zBytVIb!qudO)>?yaB0w{u(E`nhT6tsVlJ~QpAy>C+CLYjdo>o~N@fM3tBW^gCTxdr -z(&dVEOrE-C^&^>2OV2qW0IVW)$6R#ogM4Zq`c+an74uCDsd&99z<6M|Yx|1ccp3e99+_91ejlK4Y1+Xkf*Zpf>`HVd#@9@944DUXpltCr?~{eS_9YzA8c)Z{(iMT -zL|x0T@e|P8uabYY})-~!UK_;Jqwk#$;T;uK-p^Y -zOaLKZ^d~euYT4dfmjBGy1|e0V@plk|TM%bES0qE>qsc3;TOU#ENZd@^@4p0K3*_9C -zu;*I*C+BB1yJt@Lz@>`-zNDbPRrp4Rw9M=L=_!YXqNP7IZL+S_@;19=9vZ%a`)yLe -z>jL>z&bxvs=A&!9#EqLB+!sbAkheMlhVa*v>0w@qUypq8uk}{q`8c5A$tSC9KV&_( -zqnpHKixXIaJwJNiV*r2lF)|cyWSySf@08P^;V~EKZ}l-WZo(tVYtE(uvAogT2V(GM -z2yKgMeCt%*q>4$svRt%rK~&~8_KHnJR!@XRPHxb}ILkc}b7?T?!?zt-Y}e1!)6hCy|Hks_1@bOSWX -zbc36#lRj58)eI7EUIEcma)((*k8qyVZ{kL#BhK&iHP6#-^HB?jVIdHMI3b%sr%&^d -z43=C7If(bu_IbBqJ4xSK3EX~Qe`T`i9BL!?dOn>4cy`LM3I -zaOUxgJtnBuP-XzD_l6ODo$VWlg6K6v>bxqO8M6-HSaENnK9J>@X)+WB2MUb^1CR5{ -z`j$?qTGKsThLY-)1_6`Ul=U(HU*@UygP^F^%tt;N;;7)Zzu5q$_{H!_c`R|VXI}32H`057fiLX#{@_V5|Qe5{G99Y<=96X*_U}XrDMyIsDQl#yN -zLa`i>hmG2T&8RA3*ykK9mUJdbB?K!@Y(4ycVFHOIG9`_rv*+yPM_+1S`klFYccEn~ -z!_5H1PEv0EO)hC+1`S;xr1T68Z|5m`o~<0Z0CVu)+hi}HMPOG2bX?}P&Ewn*(js;A -zH#b>NxWW^jq>zRJVc5Y#w(BZ&qV7zA1jwI&^5WiyTHJ~q`Br@_8)bwIwGaGB!60PIgi!V?qZFsnT*vI(? -z&-;H5#^`=@=-`;~^){Ki=u71$2!g5i(sbYqXc!ql%~ogkuQVQ)&)LVwWpf1I>nDB!;6+G -zB|c@fpD}+77;_4zFh6iwA!XwT_ -zxruBop+%|uqk>GAm@LlhGfg#-x!;-Y^+N9>9|r-=29=%m(VCeb+Q4mR3;%5t5~RPPdbuDPc&1AVhD@7;VbQ%_dNY1i5|>f0=ppsFwnnm{~T} -zn)PfotvUdjCE@yLSRRB@HR5J$=%on4Qiw6cmvM-ugMh(0nKDgBt0`Bsz>E&$TSW!KxJ}Tm+fSDip -zSGQsvYi7=0MNgi>`@(X#%u>@>mOx3i_HuIJ{Li1rK^dg0E=%Sx+5h#&mwXlGmE;j^ -zZO058IR5KT7I9Xxkr&L5>c1(C^^fHL{?n-(Eeb3lAzA;YpU5}4h2OwDu8A+ifKFJw -z!uO!V`oRUX(ADL?Chh?T8=%l-QXzo6f&EfIXK|PEcQ9#su#{9l=wVU~X_aSSa)3<# -z9~0f62z;Q-~xvM}J^iDrW$sfQ{dLeme -zU>u@oWC?&-i(Dxg1fXq|%;mHPXS4sDk~)=P2cduh*g@!}(!YaH?!S|o^uNPcJnVSY -z+Dj+F)CUK2eo${TQdpL*L*U&;*7_PK{eZ=+1D2!*ZBitNR4fgpd?^#uTp;ej1YDPZ -z_nIHf$qhqG0d^K^$i$`g(s@1@ZU#aL19v1@s8^gV%*U=&5K>(+_(Nc%+u}pnuC+oE(F;grdKCrZi={$)}5CdB6Hx@@E! -z3IeT9`16%?mkI5m$i9h$hI~>e{yPK0e|5Bfcq@s63)~np1l~*TsXwL-`aZa#6GL0{ -z)=Hh$4{5QE9)!hULOnLKO-Ao5*zC%fV58`%43&l7dzsH!%WkM<+yY0AvQQotZ&#$O -zX5!*Fa*F0{0w*6UYui?jOJEwiS08mP82N~cSpK6LJc{oi%}N^0?w}g{7K%5xdQ2^= -z_iNF0+oo9qxQ3=mm2jMKOfE%0cSNzxJBB*(C8o*7r9~cy$`FJx8Y!a?BzBU{!5zK8 -zVtE5@*iaDSlIi&HG$Q5lg_z+ -znl_$_%a}-()TwPTd#>5bya#neRXG?|GyC`O^;uw=ZLL$OgqxQ?gW@?UjQ7HP0>wpN -zi~IRSeQ#bcLf{Z!qu4_9iue@NE{GQ|+owAAL2-#M-5j -z)9$On!H! -zFZ|p9I`HjEJ{cU3)LUR3b|OT}nNtwS_OnHjZUao=BOmPFX>jL!)=V -zF2DU#k1M_geqL?bSL@BTP852sD%%cwB6l((b3_&;GggAba`O}>$}&_xk}xa2^t9BF -zYmVa))u>Hw3`4@R*^-+x5Wh5sJu)@?KksimndAUsuf)!vBGmA`2vgjIXp#T={)8gA -zXEWw)6tYLH(lX;jZZshfp+G~5HQr?Wpo1J`6J>U95qZH%nJs$u!UHs- -zzjo(VC@lVFb>&%yCwLasus5mpiu5|f;9{7adiA1QRmlKE*qnVoDQywlN$9NnI8p9B -z)VrSF5@3Q!r5s_jm6qTB?^`f`-El$ozNw;K`XOrs2#SrSjR2VEQM09aN -zi%Fj^tzDzxm((|)3n_MkRc8Z?>9njTV~gO{0k^8?zZ++deZ$c-!e;lT!xTr%E!BpM -z@@qNNWf?j|D=jXKk=HHpzC)3+(RCbu9Z+54v&y%+uSP()n;voQ-hnlDi}tN&jJrc; -zut$iu>;u|X0LWdOa36Y&>MbjZgo?injfj!f19x>Acr@s5oc(SDe9$-GF(C} -zwDUVZhUgb4ggqc_ZM|uj5#80iOeW{Df$bPa*97fk^CtuK@aUR%CqJ`JXzajBGosDR -z($&Xf{pzS{cC>yfgE$8mHFJ2Q2gP!l%fw&>xCjXfl$XQ9{E^U)PnpjcyQWX$v=PYu -z6u(7-C;r_GXLRajrRiF -z-{M$HX!*l!3}#vXwTR1X`)`ApiRKMy@@SDbGz=DFe1dE^#~8u)8QSCy@q;-i&%5>} -z(m12xVar-yBvT@_j8*w(ZQJ!GIydkl5k-cdlXf=>EIH<#p4v?R*^Wl+(RH>FPZnRx -zDm60b+s)!hIBxNH_+;t^f?hpl8M8oMFZ=Sy-}nqp-2}lfDq#ooRF;c{Ai~+Hj;NPt -z`$%BT%i-@BU==RsTrSzpHs@GQ-q+a4yj`szI@D$ThFUVh9Wjyp*97CK2&GE?nT^o- -zEqr#l=^ZXzX()$r^$v7qId5V=b>ykzrLM_Z+xt`dJ1~g0UlNUad71$9TeiX=NC4eP -zPJ7=mqr#1WAHW5S20L{c_hL$1gDk4ExSh%5;p8QNo -zh&rL1Y!44I=Kw$j@N!t1hZZfmz;mWpgL=NMMNKEQ6^2NS68`>#W6l(BDEum&rKJih -zh{5A=a1kHCszwQ)nT?*KMEqIQ+jd*1;W|>}o$h#mZd&r9PW}YH>)2{`UmH4dFjx|S -zZ3@3o=ezR{E=c`1aijt1 -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 -zzH`YgImVu;-U@MN6lAQ)Wax -zyOJrOX^3tRmw@ovM9%Y$6@oiVs8aN)^TH@|!u1xOqiM#TauU?m;sOAUkl@V^eO9iy -z6YgGURpDrbQwl$XEFoat@+>6p*2lMY6WV@x0kk6tUUDkhg0%EfjuzanP1RW)D;7n< -zo;k#@ygJy5nOz_nnmk`Sd>7B6oRiF($j84sB;x4b>JFYyP -z5%rG?TGT9Ktq&|1>KY^dahER9Y=s|+dqNIx>3O{aP0=1=8`K~0maEiZuU -z7SwT*9)kJ#Z>!AaYNq8w=L^kETfZ3E(R`amv`;s%fDb91DEYLS#Q@G9 -z6)_T0Z^6G8!Vrw}Mfa-cSgNn9Zk^lo4CB2Qe1u4?wu4tSFW3|5dGMU%ZOMCL*Inoh -zmPUBDq({IK?eG;S=q(r2Rm+cuF}8b{$b#a*0C!}Cm^$>ROI=se3F%jv&<8&r8VTxq -zA&Bso#>6bj-RhUd|3(Mdd@nv(@%xlQZ}d{dNqCiv`+NnXk@ti8sl3`y>hVdcC>lfSSRNpkKSHJyD -z$2ArBtps85P=shi_aB;C>yHnD4Eagk*l@b2@PY#m&`steBr5}UxKw6FBvs#;>$YZH -zH?i&)#j^cJo{()y4z9Y>NY8RDZW+mlj~V=PRsOp+{u=+1D4wnL4`04iY(`$F;{1yVp**&Y>Q8ob9bI=*~{2V`n)~wA}wUlOwbkClVm<`-WCky?NH{YLf -z4%Ne|D`+{npBgU_S|=B;eFghq+t_&{@h}T#a?uiTP>W*8j)coflg4QN{{;a-BNTm5bx$kiRf8tWeWUk9ct4x -zk)jIAjTzGu-b%#}{X&=5mc}P1eQdu++`4-5rFce$ArF%J-O=HqPdB}3@^t)oZiAQ0 -z6yuVcS#v%a^^KOH;GQR|$jXZuJk1Wm6s -z!onUE=O=uSX$__2*ULL0YMI;H$k&Lu(y1Tn-3*`K>I?9%<8Wbbk&Zar)=Q_Nyq@_r -z!B{PZkg)kTwc6hxe@%KT>~UMr=ADktRlST#)uqWFf0tl@R0-Z}dyNh53|B}=qrFxT -z9(2LQuEkMMK-U!)ditq$o}?kE^4z(JOkM<-)x;0{NIa0#zMx7f>ZZ7nO-Rxs*3}

(9G9*#;*0VUG8v@$<&~2JSue1_<~(!=JIM_|Uo$+h=|eIv)*@VgJ&4M#hk` -z68IU8dK~GGZw_P|L~&;0=}4%x`3KMjBigyE`%*kqa`_%i>Mm#(?V`pCSQsjYw?kjk -z_{|;83~0c)>vHkJ`evt}(HHAAGtEs=Y%^Kju{OG-p)WlER_>T8Rs}4(A6gXOW}SRQ -zzLJmH!^FYfUQn?%hr=C>d0A);77#9B233bF!dGvOxi`D@sbLm904B3s!8~UsVeadq -zj6PsZRgA(vr0%P;+yR3g@H$FOJmt-p+>r3zRzm`yjI_b~SD&ZI}8Cc$B-{yw2t+ -zqCBS?#Df_Y0Mflb{D`ZGellOFNo#x$VeIX;Esdy`b5T*aGH~g7gxsGg@@Dr%(Y;X- -zAd~&vzrCk>Lt(FZpcSY^JyrNOmonX?l3cS*0aptHLq@9#GKGQ)@Q4u8AAwtBI{dcoV6(X#l1x)dllTxkucA}wGcoO1Y4ND -zwd;%bZxg(4&5zILZ-ZM)^XnVaiGKd|y_W<61i`d1H@909%YE!}G9SxdDRt%$a5LCZ -zT~Gyj!ri<+84oM|eqkxUv#Q&R$Q^J?7BYB#GkAwU|K_2e2dT1mrjGl*2#RbYcsOeL -z3ye2-`BHokm8MlRlFWdQQ4RdzzL#klgrd2EmnQ+0pDnj$T3ZSLQnK8qPE0U>5v+$e -z02_!-44Mc{38OMoSjKiHVRduj1kPGoD+c*>=`AcH?B3HhEM?rCz^k{DP(4W@c%$L( -zwbGk|13O#c`((N86*JTul??8Qwa|SkO9|#JX*9Z#g#g|=z)Z;TE5SIo;+LO>fKalW -z&7kpj(76%&KneKcEfTT1L?D$!12NqnQaog-UPC9P>Hg@-ATV1;8)45htG+(2h9_9^ -zE}_=)IzJ1``!b`;T+h@N>JY~8Pj-J?1Kb+|R5{Ie-^4G*4QIGj%CA|x_e1hCMzoV!!(;g{{{@W6K&3I -zpVX{8_P~X;5mdBkmx8l@Q+;{8HwVr@&WYOSMX6@`h3$6las-%dzoN3|5F8Pxe931f -zS2YFbi69Sdt&$whbWQ@p{=G1boCLc4(*r>vwyai4m%1d9U6($}n70FQD)^G!bJmk~ -z$oaF-7QwMdSRB%E9g;~b6H#L_XrqX-)Y}i*{qIt(TSCPA4LG7uNo@(z3d5$SP -z_EPg&ZNILg;R43~K#TNY*LxX}*74-mCfmVi{1$(2i{i1`f;Hr~P8|G-Q`t9)hH-|A -zRYy4=VkEXd|0z@!0U4n07JkcPOHeaD}e|$Rj`4;4N|zzgjRFyMsVuca0tw0;7d0nbyBlt7q$QwVXsE -z?28$G_Ahc45I=0$L8&}HF!Rk*vm5pImg4GH_KaP78@cVcDsX9-P81s9pK-3f#`_gJ -zlmr1k#j(gUmn6jkCQ*oqqOj2*vcjSO!o}@o!!UH}V~XMV9|d -zSb8a}cB4ECPm}zbdy`?4_6k*xF-|xxt1@o(y?Y0hA`fwI2vMJ!KZ)%TADv9baN1Yp -zqZUv3I#^`&F9vz9D9jq+^~*Ls`n -zf8-J0%#pm+-SthtJ%BTwEy$uiM2K0=6=J7x|zOvN|p>aql{}aP`1U -zZudgajXoYL<$uCq)k+cjiW&alUo{k+><{D!krMkY!A)P{eWf*V{PYa~>cy&1p -zTuc?t*)GwG0V=L>BZHU%0d^xJ^=V$p3FJ-bzEi5bevdYp`qaWe_SBuDz&LSZ}gaw -z&deQ_*>aO}-Z%7qPM^np0(cL?D^sy(q0MU5su%BItrM>7YbdDD)+h)celMX3wT7IX -zju8FK>Mp$c%fbG>H#@3~A=bqLRe4|7tQ(RP_y!$hQHiLvjy58o@GoqwoLkS!6Nt95 -z9of0sBdH`NGMIM7ax!U&QMSOp2Xg`>UjaEUuji3k@pJ;+M}%v3CU`#u0*eLhl)<)Nx)wEWqi*cd0OEVZ0Kbc -zimXn!c4p|RJz*%diy1^U10(*oKD(%s%!{=0-}rkB@MWoYuJ-WV;R0DqG_hALN?q3vYi>80^r9$_rM-s{m0 -z;<#llQxUa%((n6}YQdfv#P@-(U;*+%p|6Yeyi%c-u!W7`^M#z%IWnX&?}W8j{hAYp -zPk_DoB*9tSL@Ga9nS#d9mj?XCkr=+0kk2`{DiW{mJFcaic_L$si1R#F=XCAsS+^pY -z&(H;vwX%rX?s*J=t9nZ5SQF&DIpOAq1ep(_g^f2-xo6N(Ln2P{DT!(Rolvd09s$fu -z4ua+q?V&lX9KTS)JkG>yRsyD`vkq*Va6S~wYtY{Abm;8|+wR?HHC{!d68bOny)T*M -z$=nDnW)7HHSDFZWNJ0T0?jgQ#pA5W@Qdix6ZXcDo_gIBGt0jYiGumKFg|qyd9Q8{% -z4flR`!-`;JB;yE$vk+ds=v*wvyQ3L@*fBucF>}C(sb7K(BR8o39|HxT_x1O73tmCu -z7GG`*F3(%q5sIi{2_W+qKyQc`l_a?64OYcS8$tJdFj1!RPsO;qp?Zn=?>`euXF11p -z{(R7@ggQ5M0Vk1*f%9rYxw!b(8$I{gTY!k@d!c#7Pt?I-^72YvYm3d=KMr%^J1UIM -z;w}wkQuVud2LAYxev9YN7lHu6C+7F+zW@a>JUGIdn|LYP#!FUWMCF=9KsT9Cu#gn9 -z50{35Zht}+>@tc6wLcO9xHNziwd4f{&YMBcr-NSOM1Ypqz>?3SBc9v~v3tR^B&0`4 -z$(b^B6Y7DSBPegp-uN{W9}fTi*Qx{jHycS7C&i#d_vU)Z3Rf<$IvXrYyuJUi=I&ma -z7FdGB4HKhtEcj6%-C@bWY6>RRwkv6d1o>FB>uAh%Ded>He;@#zu0~T!LRRh<)h@s$ -z$#iA8PKV1zBb((CqJD4gp;NvQzJ$)l{hj9^c&5s+{0{`L&hX)r@?z6OhP`R)`nyppwO*)qgh{UXC~B -zcSX;9^{MDl0_ctjSWyA3rt)toIA6OdMknLW{Y>@5ahfnMDF=&@_TuKpff&XTjgcQF -zZ3wivEP$J%-&W^`Y=T!&Bk#Hef-7CAToOBt5&>C%T<9~-$~jwUs&=V&uP|Xk(h;M> -zdV_CO{p1$?x|X~V-dXlv8Srs_qhaR+O=uDDC6F8_>C}|i02c#?Zi?B-wPKO-j-~8r -zh;T3&RCUNq_&j6S@5guBVpGWxF}FI~+Riz|EgK2Z7EahXk;UK3j#H3nx?l-||5c5? -z)QutPE`!#qM?6o8?ow<`hjd1J9U+t6_wNFjM -z6h2ZgF|jXKQ`mi=2T_I7e1GK#Ni-kw|Hx4`V5p=OPBnw7E`#8vAVA&k9K*o@?Sx}g -zjES*&k2#`xcHL1!@nyp!tqSif?lUrg<6OtJP63)Y}@E%@$WDv8*;2PG5$@7**6prF&_Fj7K>=i^_H@4ITmVvN9T=!zyokB -z-y5XlBcATjEu+#G$9Xk65n`x@c!vCoADN{lWb)l}nszPy34mM04``6-)VfGa)BPp$ -zwACApV1MNt&Dms6hB@l@70|Qjgz>F_dAh|Tc+7Xq-#)VLFPT8J;K=hkRpRKE7E=pv -z;KltYUJpSq+vxlJmTlT*1Iw*30_)Ha_0@3p^PDGJ@rcVh25%Y%4OUxx;oPEA1FczH -zeiD2!nl@jLBK9r*eMZs$Cw1jb!x1Qp5}u(-!T4OhD*E1ePQDy-i;RJuC9DitteKm!Pse$2Ws>~o -zJMNDxK+d-NFics&{(|9;&`(*>2xgf9&c^OuIW^vrgs~8{;L*TtQL0~W -zXA~*5R6(*Y`I8=yX~r{H_p+EdFsfj@%aF@zeHs%Yu0!(+DRos#8lA=qv_2yQT(S|O -z6tDmOsLoSrhCt}COGQ?2{%Ci&m(A*P5}Ee>QTxTmuvf9g!k- -zZ?UimuR^ks#jr_>MlEv|XP_j9X1hF?7K(TM$hG6@0?2VBKryrD)tB|*DlK6HZY=@Z -z_~9qejuBff5m~`Jt$(0!YS?-`-7zsOZV~r+ponX1hxB+;9chej9)E=^?t)%BRMo4U -zX`d4oo%nXQ)vjV~JD(3L&}($V_RH8Bf1L0gd_EQ3-b?<3q%K(g98ywSq!kFFwu_F!dTyCv1ZEnmYtz?{!{uj -zJPIoZ$9-mRv%>GFY0KORCJ2dwwK~UAk%Rq$#aLHl$05yZQCpdS6^XAe -z!3XT?F;m$8-EpI~8P4}1@!FTkPadzC(EeUhT%GkRm*-Q9A9xq&N+Y_4mVT7F`p~u< -zFclM_b<%41?qPWX8F=)$TW{gJ;P>x(2}Tm~gC5ADEMKVDbk!v;%6!tze?gHTK~L|$ -z1+Y41$jQwbIHeEebxWw=;I*0fT|o0P=MZTKgie`n!VG{H1H2j7q-y4} -z+NZForfzeyfTa+iDS?W@nWN21Gwb`FZ{!xRmgOFG2Y8HyS@Lk01 -z#QRa8j`^m{Hyelih$s2Z0dh??qGXxS^+^~TW}OO?`z`hxE`_46{8Z>-RH0mDK4+v> -z*wo?P8uVNQ=b~H}57H$C;CyL~v3Eqa;}ZH1b>)v#J8h@f&)-hY7QSl;!I$$5ae}oO -zsJiylm)DGzFaNjf -z$1Bl9qE!ul3t+oiF2kuh>g_dK$S4w8ng^rJhD=&F^%vD@uFqvN{l~9iysU_lJLnk%QACXbG!>?lSRS@8{Fke^}-rF|s -z_{Lny`{o*cYg~Of6E(Nw&6{!w*CguD?&T@INdhk&mBzSt -zUdwakSB0@&Vs$0r=+3=LduRb8|9P6Q>?zOtugyU?C9l`#8e7E@{r&TEr(xhNn(`t} -z`D2=S$LNGUtWQJHL+4)z4_HBO0^j^?2zx3dkZhyV&7;_O8FCK)r1}|=Z2e0LeWT2g -z26eh0Y!}2`K`{WsZa^Dm9RY0pF?rrmuPhMRW6i08ZWfO`)}C{P&K4X-e|yXYx&)Tc -zyM9Dk%2YotuR2|lPn=`ohagkuB(jZFH>@L)zdcecobhY682R)HKvH?Wh@qy^FjQy7p -zdK5!4e887lgs>CeWr!CPzrXh5$#7_HJSmYt?Ii8*#~)t9aqLL+Vsok573$I;#P8jr -zl`k~&N^AdITzpP??lAS&VHvI^@N&Xxe@Lo6R$rh{gkc>TJJ^VBx=1=J{|K)gxa0(C -z0o3}Ti=dyCuaR#(8`Dyc(8O;@RM_~h{S`B>}gYdfm?yvHMQ -z%g9Nmt7Db>N;_P6sDp0@-0572jh7R@9U@=0+!K;FLPAJl?y8FVC%*hXf1R!;)DIrA -z>RktEp&l$b!0MM5g@M_LB*kCb&%4(e-G}Q-k%G0!dM?7H7@i)MTsra!03=G`gm5(d -zQsg_fGO%u_$9tvFytyA;A|B3na0y(Rxlb#7sw6^D406(2pU;}QGPqW$zo{#XS4vMu -zV|^_1_qb^(HQboAuwxcAL>o0!i)JJ(>rq^Lp~C3VlPgTq=Do$33MB8JurKoG1Bo*q -z95n5ct8kMPw{)%XrK2N7t|j3F=dGgF+d)ESedNFNFqN;35Q|+U|26w_39Z9HmAWyi -zn~HnB7=Q|{zYH-u+G{P@QJ0<7h(zz}cZSi<+@(Lg!LrwF*u9(M}A2zQuTY-lpAr-XSJ!viv -z>hR9Gjs&k$y;L+elNj*k{wV=ab^xYq(HDN}ADQ;;DZ>&R7l15vZN}x+a-k$~+A)l* -z(~r2;&|RvnolDf*?(ARxYI?BQ%HeJ7+TlGH1yF;D(w4^*ltIZ^0(-p$tCX)j(Z66} -z`M$>bT?WYPpNpdY0wD$a>~NU)p3oEL20mO$;Hm0-I+AA6Rj5#V$BLYiL^7J?PDSk>272V -zvfKw&VjzfBG@{ns#I|Sg`st9Gdr1It&ezJ2soPNSs#U9X^M}|>eBHwL3eS_sNQc26 -z!Zxq@a4v_%@)F+(j#(sZHkHiavMiEWFjzu1Jsc~Dq|}>)O&+g25N{crpo}HZpynUN -z8iFrG52QD6+5}hs9k&ixH|DYe0O@*&bYNfG+kuz9{LDV35d$5z-ji)TrgmdC>+?^W -zO)#k6q(Hzhkhu5x+6r;dGPQIuDH~frePjM+wq3{kwLygIWht_?K{Wm^YEFXL)6Fi~ -zA}5VF#l%11Pl5E3rl60ZhKVm|V{-qhmc9C(3$1{Iws@`MWmkJ0{d$Lsv|(N^8uARp -zDij8>VKX-STN4CV`9NkQ`X(Xq?`f*$1fvp7={z{h>m+j^tzEAklmU=k?!N%wRye#@ -zYPZk6%AHpJ-fub3b{{Zm0)Bz$=l-xmVO5gf&MKirTn0rj80VnuhqFv@3{p=hHNgCD2ZgA8Fqh;XE6+O|1m{5Sc2rg38B#|ff91N4># -zgOZL1#TjJA*x&o?32YvokC?qBCUuDZu!H>IpM@u1b(TpWZJa?nXQ(($pJ?zKn^IcK -zA2_Y3_l1P{xApRV2KMr6uS*)0aDl7f*7@gRSE!TtOCDp5Zt%bs_Le-u^)2UqG@xU?m -zLyzvbmR1F;uJPUfRZ}uC+rR!Cu>^lDY$R!^TJg)TfaUDVsa0*apAnC#Hn})TtnO8- -ziGx~HVnE4yj}3dIB^ -z7A?P18d6foc~DVc5ln|Z_U0R_Ot2G$=vO;8K{55iJ00F6 -z+f5;>^U809onvA_5w7}r^0Y-eS7e&GR~ORkjv|9So3~ic_tqw1%?lf~5;q1X~)+4E2#(ZwOPIp*-m8oY?5+8J9Owa;jXe7>m -z7u~2Vd|`ojmlw;9kC)E!eapa%YCEAsVN;^ph&@_69zxZ@Q-xFgl;H=g0n-72PKc*P -zdcP7_6S;J!z~UQwohCy5TDaYXszMzWdxJ2hnwSSb5`Z=%G+>?W63 -zL`sTH!rrMsP9?!8>Fb+52wS^fVA+hePV$IVH7OU(o?`$t^-tKNmY#!q7nTM}%CekU -z`?X1q022pEV(S)?3jtVW2B1V(<0~ILd2&1T?;5O_VSZXRHW&Pq70xFSe{yRS>hn@- -z=Bn%y;|}q+jqrT5I1>fUZpBSmpvn>!J-I>Co+ch*q4}8vyR;kcWn=BGRVHO^)DTU) -zp)^!|rt}5YM=VfB8ZetUN`n8T84?({#-M9HP2fT(+KFG%*yJVhy=S6P4YnMS -zhFE-d(ozv9Y53`})yi~3u*m6WqBosMbg`M2Q`V@oy%Y@RUf9UnQa -zrMHNQ;f)QEoxuJY$anqw6t1tcK2@0CFDo(@_a(?Nm$M4X0~gSVFYR?R)bYx`{%lzC -zFq(Y>FE|=GK>0^n-EYEa%HO3>sBLD=QOQ5Thyu8wbFFQ#cDPLejFxAl?DNmjUTxdzQuk3l)XOHlYC~iN}9<-nRhKt5nL+EgyrGO;uG6E+{+ -zAfif1hRZzC3R&Rcj7cO0kQyEJ1{Xc(S)8{)zxCb5rD}Kr#oFf@2?@B(5|psBNQ%Nh -z(`2%5w^iqW<;N?Va%JS*Kn;mQSWh469BXgoMwQjav@&>L8iuECeImsqU>fsHT^1x^ -zr;ns=d2oNCtwu|TAfUeOsK1uED&v@F=Fsc<+iA9$G0}y?5;`^c$pqAan+1X`Uvw

fNMMh4M|d!-prNP0oh?SyEzBZ|nnBihhlC}jY>T#@m5PZyyhO?)ARXo;Tj -zt_rC|uoQBmd~!&2;U`Ol3g9bvZT(eSO00quAYyfs9)rBWP9uuSEHCd7d^9C -z@oR^Gm3svguNqtdaYI1`g< -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 -zcp$p!;>D3jt`zQf|5XauuE~;HUawawgkdRHb0 -zP*K{hWw(S+tVqu{E?#39^P(OQwGAw{`@^$lAHkxv1?pv=Nc7ohhN-sH4L%iAvjreS -zsk;7rhqFkvklQr^i}gsK=Fhr9g7e{7*8oNbr>;!P9Iy2LqGM!ASRW7?L&E0kbSCzv -z|B_a$dkN&T{kHj}1~-w}&GSOX2!5M4cjrzv7ID(3lhG-6)LdQ~dXj>LZ8}FuT0Efq -zxK5j~>?a>@pw5CE=4g-AKXn^o&1?4q;q|g2n4y@WlY-lw*m5 -zB~9n<&hqA^qE{|Jkr;V22Ij#(s8cmzA2{oJB(ce}S+Ke6>r@dzvvX&!PV -zrf_(%4=KRr01g3dgsFnQ?8LjzY#X^eDn$V`zi{su9(E)u`61)s5WjcYIs9@8mVbe}dHM`%L+>IBbwMSLC#V%Xh?WrCj%F#9YY -zPUC0+9QM*R**|3&XtDBsH3qmBCMA3O`H$+{;s=~E#gVglOv;SoBw)$cE605;iot_N -z<#_fA@_=&=R`S@EF_)!#I&byBg~9TKX&$oRA2nPVRW0`Yedi*E;bIK1)Otp&`5oCB -zTx>-J>rPUwnu9wTiSrV -zUfANtr-RwB0O-^Chxq8Ci_s=}aWc(7B0AN~@n4WU8`u%xNumKu8tc2}53%+|HmqbP -zT4;*Fl4(lOHtDgL|5YEd1Q26c_tH9dk+4QZ^$Bv7Kxgkj0uUVN*+TON*b|UlILx-! -z!YUM61p%xZ;VuB3pd -zZqXn?|IVQQX{%u+|DmCbB^mwUe8a*OJ?)Bl1cq2n -zG5N(&(&Nje!ZlAC5IhLy@EZx26z8?`h|ujx;6c?sjADA^vFWMOmcl#QihKst9@@d) -z7)64X#>md7y9QLwrk<8iRp~?9ts!V9Bp_oc+jwc43GgI<(_ti7mIl)99NW1OchKYO -zm+C0udvR_y5`9A2+BXlsq^`hPbw!O+QZ#M8$9rx51C2ttLCKR39#{>FNf6VKhe9D9 -z+z=)0xKV!2`b@zhdQZlL?s0C+wqt)zjwoBRCQpBjHF&yYFq8%Ch1e${N<2~_rH#qk -z(`@aAnzP$fSx1m1mE|%Hfs1d1Stn7dx)uB3bFwkFkQ%0;<|IFH@E*;ABD_d^PPW$D -z$|8Aw`=!JN)+bNGBn1w(03YG2i-p&haoaO8_{B%8siH3BJ`~`kguk#vNN8=Ok<@z| -z1od+FlCfXa3MxnB_DrDuy%?8U&nX{x-@3^I^{ovH--sMho>(6aas)}74qk=Z!UoVO -zJ*^Nut-=qTcx^*j3g23_dgDra$o2H)~NAHe|s -zn#bN8gT*;H-WplvJ)=L3tcAa;lDEy;snC!N{q&Blvdn|P_ncIT_xt7cZ_-@dcDW{6 -z{3)zmwhk-(MGPV}Fz(EPZ(z-kC6xRqGdSL8p`wJhEPxjBrC88B!6YJL=O;#5de-ie -zpLm4F+M_$Jdm9yiV{P;tB}B*W`6~uyBH0|)N`x_o#@MeoS+Lazjn$QUY~QqSDd_7K -zxGf8N$UR4^E}M*gPH*DVd4_!s73uuNRrf4>0?=NaRok1S`90TQd*4%xY%RvvlGqoS -zqVnh;nNk$(M!l8WT#Q4*u^0#jHp)pqF6zx0l%f%2v{hN1XBv=Pe}Yd&B!}t+toMe?BRwN+ -zO&`mtoMilP>{#vun`|1py;c$#+R`e#2BfZek6=#*cn?T%N$;9GG0c*B{E^Y18-ye(^Cn{f@v{#W#U#zz+rT^s~sr@oTVx8aSpjZzEhK$&J=&8>3IyH&^WTw$;*sgpF@l -zFufk6XL<{>97KL=Cy7z)jEjHoEcy!nUbHs$R_I3VNs17`w{#l18WiNAE}&(y=2jj= -zE}Ub{FGw;&6LavQTJcDOylX4V4-*Zx%ogoQ0-^@hZ96Zg5fxF?kOThJ3UmLn=W!UB -ze{iG4|Mv7`@AQ@=*tn$FAj=yGghJhD1Wh&+j0*meEK0*0*!dt$5LWb6qKp~;lI6** -z9>#nu*rV#*;Up9JyYXJO?AIv01t(A&fMW -zT2kU{{T{v8TzDO=-^m;3X@4Z^nO?za07VJ>hr#+8y|+B$t5|r&9;jd_(AGM -z3sGpa%fHzuD!`(tolMgD0m>CocQ2;Sh%WIG8I!FggT2P71sZV*7I})6H%qqDp^F?k -z9FA_vycjHojE~sD)n64^Tai;|hy};!o>RXvAdW^dxaw|?7kG+{rRK}44l!iZQFExX6WVP^V%Ce}` -zF6?&9mlJ3}>_=yNS_aaeujL&Aw0ynl02Cu5@)OcNs$Ul$lZ0L*lmq1nE282tN0hMb -z!O+Em89Pl{HFy!|q>rb%I4P-(J8AY#-)IHoOEEt_=V(0esFp*h7W-_u&;W1(1@e^5 -zuewpl`JeGi9XD03+*Z>=^HFY|jr@Yvw~u)2iKZz;D*Ed<8ed{@h>Wp9!TBQqR%ckE -zcg7TE9bYOZ&=!k}eK)nxAJEPmDgJv*Oa>4;SsG{HaGhJBOgdA+RLQ|*>U1Kn6hD&% -zWg<-L%eb#v-%Zz$LvHC&!_1b=2W+ODjg&hh917DZJs@NQW!vf@5?p|^Y1A$ -z0L`G&`Fv1n*g>*fG4StbL;P2dvww>uq<0K*3nsbF0WcoQS1?lvdKI>p**){K6Vmm#>Dq$`6v_~ -zc)jua7A`POd;U{q{~hI@pb4IdBeZ0a1b)wh!H=M5ip)g!TpH-f8r)~3X@PH7XDWqb -zG=t|n`k0)tgk>Ul=?$SsfxbZX$^jfXpkvV!K+ds~p>2)h!eSOg>^1fa)2?l_aoui; -zSf!}~a8x)yC0{W;W@%3#ljYwA<7&D_b8OR7)4+>f#Oy&msmS;WaChTL{d -z4qe)hmDG&r67nX)SHPJQRBp?#1L(<2WUt@*id3 -zYRMmq=&5619`|hKolvSdypG(>hL75U=@@4Hx*F96#kPvvhHEtaWdGVKD96aP416r* -zw}aWCqwdO1^;OU%vzyzI3V_phy}9%X_Wv?jvcZ%>jg5rz%7t3w{b%pCg3CDU -zvbfr3;7txA053%-BFg(d!xI+6&KiFz`|JYQCOPer9nS3Vl~XZt$a>;;nwdb%Dne$8 -z|JqeOp+nhxc=XFN$?q`jk?s}FuTee&dL$+apJn`NKOHbo5s?f2kEW}DsF(}MiT}M9{&T+balCi$`|i%p&OGzX?5?t@ -zpeSvJn8ji2vk?62y{4V3H;r)Ju}oILivd%3o?Nnx*z7zcOX&KA2$ -zUdTq-{f6zrE%CY3gXpNT*Zj(okdnl+$n{F`%ypTx%uYuHO7dFn`FNI2DV6R~0ikj< -z2c{&ulX`tqX)QltkL^E3lay0PoPXj4!|8i_UxH2>^*qI}r}C4h|4No2us?{%GSDl%wTe@@COkT_VRLnsXkO_0X -zw9oOP^<0-6ole=lF1-8a9{C31xU%Nx3(I$n8f{L4tz6Sgm0njE<~ba6?8Ewe)m -z51fHU4T{Y3j30hJFQ%P~RZx8)BFO#W{7BUdMPSiMb(8^R2dCZTIR&)FI5L9yWf7J; -zM@jxlyMYX-KLCOj)!|;s5xR5wXbTOFaOU{b|-%aP?uz}ey|e8(O8o%g2w4~*W;>KFG5$oVOsEk0!~MqI9UEgcP< -zEIxH3^FeyTc>!nit>rJJa{YlCPh7nsZJYLvq(q0-sZJ%Uc9b>@WM!d0zKsgkDSd7DDz-G20P -zDFpO?pzIk^70U+?G5S=6R8PXxB66CuyETj|+PUQ(G@X!`9EL -z0U9O$m(Y;yj4qa|O>8zc^<_2k(GR@Gum?&3t|hfqZ;)}?pEGtNAL(c!Dx%u~h5zN& -zkyG0w&PH3#ea!^lBvp9U{AzMh#K>5mg|IIFZ^sGmUXE(KrlBX1#cfavo&1)WfA{?m -zzH=^p3Ek|C>fv}>An~ubW3ro$Z!4@ -zAZI{kSNAV)_jzO16?b+u_wSg7x2#TtStivqzfEBe#DAp4;A7Z7GrAp5vtz)GuyGq` -z$Rj%P-%oJ2HGa%wBaD?GuSrXdX9p)9zA&QoVpg$m86v_4_R`HIiMOQL? -zI3w}32jl8d>K)cXJS}q};Yu?4eYD2mMaY;smob-|+?AKPEcaV}(Yqp$oaH|gw>Bf1 -zrJI(N2hQ^a3x6@LO-#_X|1x0EuUv6F%f5S17i1^)Su-?l>4;TCD;2S2mslnJj)Mx4 -z>xAW)|3fgW+Mfp8*z)}iS<>kzlsTD?X%%s1=M(>CRP1j~fU`S*YU%PI28kN;LRwrk -zljbv{uXynZWh4KzN$(+3=YK+wPO+=RbKYz-p~iv{Xm;$I&Df7Jb9eFf4-dq4#@#8@ -zg973oTm$t9t8pcg*-1CyL<~8eofj_%zN#s|I7<@-&}fS2-9SS-)gFC{$Z -z`Fl*Q+v7=8*~w;XU7y+Ewrar7@F -zEVVM#p5#G7vDLJ&yMWGI@$DLPGj~SMe#jw&XYst2V)*fqunE($oH{2DH0%VgGM9fV -z@c2@J&xD|Kq)v~qAlMnpuI0#Vvkl^p350p%mHwgci%GYS}xkQPXOl~47bUZ;9 -z7CUBpl~MQO5BOb#!9%wCUup6W-fEV?J41xS`y%$p$Y(`x?3>9acS+T6+1;BIXmv5_ -zyT$t>GDzH0^>yttfZK>S{24HzQCB$o9qpY -z?>C;?oL4X(%g>RSSlG-ngbQFd93XGt!iBK%CyBk9QThRK(}I5ZDa`W5c0(>dO>o?z -z0p(-0rdv$<9~!q=&!R6<5bczQ8zK8ddYzGd7d=_q43BUhaxIl -zv+F}p8V}KpkOJOv$a!zxrC^44%+a$BAzQ8xB93*!5e!_{_ -z)B0B3Lr7G3RlPA~cD#SBk -zRzlYXF9y;k@^DGF66W=4@=24?NSoNU9GpEjV4iKKg&HsQHE_RFesGF9a7?7c8K4VS -zHcx}xO9lN`{s9p8zN6@T-|vDl!8&>H-`O_C1k!dh>I83qx;!> -zUMqEqF|Q(pI|1)SA;?F{4=o*q%jSc_tzlL07aR5@O|I~z5T#s)7lg*(_b&8}8g3*q -zKD_#}`;tkWd|6$EEdt!S4q@A$`%PGHBDWoE6GF)4K>lsp0SP^!6IyntNMf{RiCSnq -zUMQ7ydKm=LpH`UK#aY5aUW$Hv^R=Mm*>I`!b8*x4_5TaIzl!5o%}GN{gcg;Ahn2X# -z-g#!0?1tV>6(1B+AX{ezRxPfw`O({QLY!zoXA@E0E4t=Y;dh+4_9)erWSu+_Fe(>n -zx9gdPk|S8*#Wvbaf&GxuGV5TOf<8x5I&S^!KnD{io#SBwO|EKB$0b^(xYJQ7AN%Js -z&1@cs2X}0DbG3^U^_JaR=p`lM7>`s8b{XweEj*GilCK({0a|9JFcl`9&w=Ay5m7wP -z7I~#SX992z9WFcNbVjYDTUU(_={Z}E_7Yb{kv~MW)^OAoIyqE~losfn(ihkKEOApodRD#`rsLm#_EjMS#u-WkT -z8X_KZ@(Hr*LAgGQSw0U83dF>DO<$VdsHNM{!L0pThzNW}dFm{m*2#a<7GgkYD_)LK -z*#ozjrP&Q*{lDre_fzCoZkF=z(M|`bLNkbEOE9aO#abR&Pp5Bq9A6H3gV&aLZS3gB -z`ikZEKwv~KA2ts+id_~BuC5T1ej^gkZexzqde}RlwiMWxW=APb5%J!5;jdca&$*R28BtX+55;#VZ<@+8&*1ET7J;=7Z@mdKb&IyAN*7oL@7{9 -zf#rSngvTjlpgxndPbi2+)uh%!=iVZ -zJ<%FP35!RoBQcF-{16aV{yKzV!Z3q^fO%~>rk43X5AYFMfYT;S{@%4iaeT;(R?5^I -zH`q@7hb=!s7lfmMcJcsuOAplPHNBdfogV{L5X#AQE}tXS8v@`=4`5s0Mlvt!d;^N# -z@F1TL8xn@0sY)-QaYb$aD0yM)XQ8M@Kbc5K3CMEj}cEnT!&Hnc%!s4P2I8Q@}zH<~>?Poagw! -zBe?EC!zUAM+-^Rx84v2q@kAG$H;8%Buq&(X)TC)3G32?amc=DgfJ@ZtM!?7 -zSP$9!_Vm;rse>6>==(gOLa-P+0jhT1Qqq0$=K1S4Dfa$bh3~qH;I861ubt1AfET_+ -z=*AIYSwhL#LHT7plQ+>B&b9jq?*hvFqxa+fq#X};u-I1uRMWk06{5z8`RNgpQPbpd -z9598JW6;)eYXKyr~8g!T?5=r?bn@+hZ6LI9BKUBhthe? -z$Zul3W>$zH%Sfbo?&@mbrmfo`=?3j`2&Q6jj-$T3CIl;ez@^9#DOxlw|W -zXz2O^W0MLZrg3;VE`Foh#pc0b_eRwZ{vD6=^v!#>BV6g&RM~<6k!=5U+(Y)lnm?;L -zj;%<`yCE%vqg+NBr{yK}13H)kd)0+e3;HwLPyRR9DLOMwh7wE#1z8=d-Far@lX{lioLhM!n_3#d=Fyb`=ctKKG& -z)MLF#_Q)-TwD5#-X%eqQf`b{U`>T5~6uBE^{wxDxqeFQeH}#f4kIah?I&=l=v|Zs3 -zl%O(k9P$H5C=t#59W&2Q%Z)~3ef?7JRuyHiM#B;c_K%30?x*TT-K$0ISc!7BZAV8I -z!=a2qk*v&I?wIb<%!DbItUDp#9k@usL&Qbq9^0rAn`wbFHwIHl`1&s24)d+cjw&UM -zqzCV5^-?A^q}6SEZ%{&QJ12!Uvdg)R_3#DmnSN9mo4luRdEsx|LvlSbtsjEHkg4A2 -z8#>MI!VYmaq7pHMW9t9OlSf336w>H@hM) -zjpZ*nXd-Do@8jg#1#zjRHr~*j3Eh1eJ<>detoRe7$~XeqR8x(aR~{`Y41&&*of50xLIJc)^EMM3)=nL!&UQFw-9jIzFy_?=mB) -zLP988v5D*vlG?7iIJ6*^$3V6y>D|3AU$o`~v@ye*h;;wBG8yw(>+Bpi-aW|s|8Cft -zW1q3bX=#*wi&#}iHi4(4SJS1mO@dpAXfW5lZd#H8&uX8t_WKl{JzQ&gUk=l4aa`Op -z^6_XEv?NWIow9YOKF;Ls;E=4!u*S__Yd+;SJFTU1{tO6QzL5eomHddB+#L5Fb5o_Ao>IY_25~)I}$fVkWfqI)8OU!p6?`bSxv^$(+pW9MZQ32a+BZw(7`1db;Bu#97BQ&(e?!dmJ-%WGh -zk34>H-l8?{cIY%|6|+DrZsCxj4=eu$dntE0@$Y;+V}=Zk{CMSQdmXq#B*6`JM9c$F -zQwV=2anCCDvdyVq#;2!bM1h1cCVI0!gO{d%N8W!ie0rSml(R(QKeCWN8C}1vG0)1+ -z^4zK{>%HWod~T&%iInKb=`!%%drZSlAgx){*ywFi-%98%HK+QQUEs=WV4Y(jz{+^! -z;x4geA+4ejDX=CE(r<3PWBU(QH5(?~!tvZ5GafAV&%9XaXY4CyS4rZYAe9aiZmVRgIBuo87 -z=ip@(prOWaVy`O~2vz%^414`i>M+!k|iY5)za7CW( -zJ2*#0M^}w)a<7dGbZb_0rT6+N`7i1Y>FTeNvxLYbN9>}Grt5&Fe@3*K;3on(`zQUB -zE-Pos9J`Mh1?~}ZX;|Y5_VFP_R(bLf`B8Kq0=eS+s)|Pi9~$z6pSp?oh2^%O1Zpwy -zh}|AXPZC0ks(K1l11giWImec7*>UgJg5T3S6=T5I6dO)({&6ByUDk~a+1pFz{q{C$ -z(T+y)$Sq^YaE%{Z4qmP)>yJu~8LZx9(vR`^E=H`c6&Rzt60>#KTy@x`qs>=WLka67 -zJmWNULT~pmej&k@KF+l5i;-h}-Q2oWwvxC;nnb*Gaa?HE(_Qr4{(iLMC@PECo9Q=nTt=92~Aq -zWHQ6S=H;WiQ7I8D4h%ViKgM!oJWfu -z81P92frZnVg8?YWK{!XE_HiLaw&x~$#$;9^>_MOZqP!jf&OEXpIGf{0yf1M4fuYqgSzg8WahT^aYI@S)*!u#qmfE*3m5>&TdGw#7Z7 -zb2f~JK>hB$!r53p&BQ5Y!wu!(or^@1rz5^ebt70|Ltvn{@5M*QP!5+zR!2d}YRSkEZ!~FSlq346;XSg2a;mMrLe(;vJTX~l2AhnW3pj&V0GQB2aj0HhzN#EV}f!gWJZ;;yUF_TBAx -zM}3x;rO_iF+o3+^$nju0&~|g;cnK?onbOlF7qI=@&Wn~ZXv{srgY;>%llS;sGee?c -ze8AvWBvN&)@Isi7wO>k8wP0Eh -zswZRJytxvrC+P1^ItrAZ*I+g~H}DYP@GR*=hj8>gn2zOye;Nn)40|yWwNS~Qob7@8 -zSAYiqfbAoQ(MUua`L9yR{g>7rw?A?pFI7W^N;A-R&AW{WMIde_C)HGct@K*_Koj3G -zFR3?LG_J>SuxSa^h3K1hPxHRzu~7;HALpDAGoz6>*--hu<4i5d4)e=`8@I=5`SSj$ -zsw<6CaBtGlj!ov--M|iNbrGqXC@s^CgY&(zf*->iKncuj-Ay- -zM|cBwIG-Qz!$ZG`-3c<%*9f+wyB?}I-OTmt{ZP#C4DGi-O)Uf-tEQu+4<)7haydHB -z;CR}S#!~0R$iq63)Osu>$xkc$>=(YwTTxkNH6?O{gAuiBDD}HP!UiJPTq1D;t<+`# -z8>_iG=LC%r3lb2du~#ASJGNI?&;0#Hq^&Xm8iJ%@Bxf@3ioe)@jmGb^ubvLftrljV -zt-SC6-V(YWk%(OoYb4V9=3FI#Q>rwQ7KvnoTjB5r`e(#P?LjWh8+F`oB(D97@C{q` -zoG=QTrLfBDypoF_EE)+F$u*(rkV$y$F(v1rv6kYP?v0^bfk`n4zf&HX7c?CLECwJ} -znpTqY;jQ1~Yd9{y5^u2?dh9b@RJ$taESdy&1_+jh@I=lqYU&qvqN-eS7xa8)fRcT_Q6?_?VPiCw-1Br_%eMNvuUXcJPbw*x(=D8nf{YbyYAg**UR^ -zK;DRHpk0AfSTR(K_Sx62V>FZE7|8K`=_fI{YNPxVW{T< -zh_rKx4Z}Sa^mX(8;_LJGhZEV4I@#Z~_4Wv=(IPSOBkDJVG(#2@)3>0s|181?01kT9 -z+q!&OC8xQZ4du$j9)XoB>Wjg79D(NsBPHwfb&U2n2EzV8(;e -zgB*SWX9xt?#xiD17dV4H23;SxeNu`8yH^{Uy{v-uo?~@|hOcpzJ!~~7#}4 -z&LfM`l{63xS~7aw^XAKZ?bf5=k&JSIKGA5A$rKNtf+LjHc4;gFq-U9$8EP6(s2#cL -z8E=Hr``uFHel>8_oncJY3okqD3PWU70;&&?3??(w#>1GZa;?HAr?yOqqm56w6+Uhv -zhbSvq&AaoT>c17{it?u}@!ba|h8@Y_C;7NClcgNU(Ho_uH$PvxaR9gvhS%$6I3pv@Ivn1jOa;aak_)U0m-=cBccLRU)CGr*LVcLpj@3+n^m4(vZcU0a~1uL?vIpBv&Bv4@Z1?~pcK+X(eVC4}v=p76?t5DxCjHza+N*VZ2> -zI=?>$C^r}b1>;7pX!Lfw17G%9dN;=8-kkRnn}!I)Jbt<>jkQPs3%5geR&i76R}{y% -z8wrA5R00b^~$k^Ert49x^)8K -z&-PO$)!rqe6o@6DNTC(`BOcfiQOr`5tA1tpK@&G(WXU-kGgYAHAN#fe@3*nDwEeBE -zA;{F%M`I#NqHrMRu8@x&!Z97{cD0SlFmQ)({x$yV#?^j-e>i7^!~-RiY$cU^&2U-} -z0pp8)TzKzyc0wbCT*{r%5~^XPzncjnxMt{?w!w0_h))tcar=_Y2_XJ0@5~Jyu`oD| -ziG*L{ePwLuEV;RoptK#ySy^&)R97O`jh)!-!g%{PWo-yKSg(w?k`=!yqgk)el4t6Rc!7hn%i_-Io#{q5% -zvMoD@e+uej`$e#8zcM`?@fQOp;f>v~CBqSG#|}vcA`0Vy -z%^Ov*=f$}VBY+hqsK7rRtq05Im1MobV}R~053?5T*v3Y3@yS|N_Z@h=bigrQG@o@U -zfGQ{Gk5^wLb++xvkVUWg^6O%m+=Xez)~l*ToAUYqdH;j~5h|Fd&_EScHL%hy+LqbUz{F@$+uJDhX9LGZyh#*r~k`5mkOgi7$w#LKXArjkOeb -zP!0sBKUsqly6F?==&6Y^472>-8=2*0@_lZjSnA#h{k*&Y#q;Oy2ShDMd~tFL3(Z@U -z`L4f_L^xhNTE+^sHNHA6K#_dcSt!k?&;1|sk7#f(tUI=gTLAy}FRd_^@4p@inK-QI -z`$kHRY=yXC1rHm#n-wce?t<^wWvB;JHPjQ -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 -zY4+5K)}6H7D`FeQEP)2KQK^>#9^$t -z7O|1Q_95_^1P*sPS*Wb7_#U|%s-*EmXR-`7m+T1Lv`hw>@QE9mjCz6?T6$lMNZU3? -z?iap7A}rXNhireSPch-|>-SJKuPu4CAG|nEAk^A@Ki%G@_3RpFg9`BYyLX%ZK^)Y9Bs}3Zrbe;0xYb6wV(#Y>=^qG -z&F^s^r^TCdV_(%Vd{`pg^02Q195JARY2)}D$kzPuv4g2V@suL=8!#X17w$qI7t}g&drc} -zKZ05xbHcJ^EG@q+sX%Pmn)ixdn$^Hl7l1-WwK+-1Aqx)Y_OI_*$iW_Z-TNjiz_E+Nqxy^zrW5jkH~*FV$76Cktvb_wlv`FxIWD!b -zcQ-6t?rZjKqJRMY{V*OWa1`> -z7OB#Xw#I6@9!iT22?{mBOy*WA3M~pi4q1rw-OJK|=z%mhF=mVR?MpPOVIcSsSN<#} -z%<4WS8lp^;2(YymSrg^Puh#mmHBQ8l<_3R^{u`_kWcvKE6g2n?>@tCe^jm}0a}yKl -zxLlunL&v@OV+dVP=Pd+=r@;CG%u#pox&O#)bnIN;=C?=eps(ScRb$8X_EiJ5wn6A3!BRQmi~^P -zJ;t`*oi|l^kv_pfCU4S%S}J*GD_vryI9894Dwge>s)1rN1p7qk({+Mc; -zNa+V6--GF%7(}VZ3*i}3(wH@}$&6qLgiT;K3zS%thhmW`6d=6ox+5x4KB?xf@4$Y8 -z0s7BGHL8dPkyaefse?CO096oi|3ds5b%HF38@3`FYb({36hEu|< -z)^GaD*aHTEnH)P;KthweL)f3sZ -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 -zZog(Id`(k&=EgoIw7C5JboU5`W? -z9tl=2W0!N}!wlDv3Zr>icKO32Txv0-k( -z>DKC$3Kje|yQ@O@P2YCZ0ge@+I{+ZjCp2j3{BlH&{~xJ@*imisMTjt1T5aWvPfkCU -zDh)n2Cbr7^CmNGStmh864>7{o(lVd+mNxFi^-2TXr7OGwTPAkG25-$!!Ky -z$79J%{T75KjD&7B?yo-=c~7e$r1jDh)MM8yX~_kxvUQ~29my7X7_I}fObL3<1IrBUK-NOPp#F>ul~n299c3e3ilb0e%`8$ -z)u|_MhYLLaUiE9X4FOpSGq#GPsUM$|SksP1Mn&j~8k2VjL_mXURlk0YRmw(aXa$5$ -z*wCVwT=6;OKT=|SU6ghZMiv9H&#s5XlH4GjyFW-sI~%Mu{aK9Ip~IS7kj6A#(e*G) -z{MM380^NO36nZMDI?^?#aPa}_;R6ilG*Zz|{wb?Ec|wsAWo0bm -zBJ##+YLqgC<6ifO%H712_g-(ziJp-p%`FE4zdI64GctuQbt)oF9IVT4cj}LG3ieSz -z%^_8yHKAV`LMAY7^`bJAV2o5sW9TKQ`lcPBTtLm-1xo4ggu%vt{Eo&SpE97h<% -zE@UAJE5z=jf5?j*aV0yKJC_qGt63{30+g+MQOBu-q1mIO -zXhkJ#7a&WPy6%!N%r7D06~^|TBVQDvwJ3EXKnb8d^er+%$PsRmD}Vwz{ejjVJY_P1 -zISbIsKsdV|%y*`!V1V=ADNSMoKR-|y1O&MYc-XX|Uxn`WN33AImjeS}(3aL*P<{PA?JF^7Hb>Mvz>!n9`ALgaMmp5pLmEraVzV_mPX!<~| -zGP2p2Pb3o5Yf(9tMvLjoD&)rJSaFA2z@V-L7U9ZS6rq+1e*ug;f&B|WHo07%!e_M+ -zB`Ba<^9(lbKoo+|Xx|J+cT;9$r*XT#m(`AWecZLu1VKKdcPHu@XM&~;?XFOISCe+* -z-JJ<%I8NVotRSMWKfY^B)y%T< -z`CClmy}J`9$oHVs!ys5uq;PAf>=JrsM(;8~fs2fC^AV^De2ArMUr_^{e9No43pmVWME;~pVUGlP4aqur#COj1%>(=ea-B(42}~4gme8_-Iiynu+0~g5Z&MM46ON4?hiYWur4Pz6R;xgo9sc0 -zkTPf;!Y?756Xw*GRN8u3>@z3Eb}n`3k*@JW7ZfJy^!O(jW+6h+P2OyDjJ!z?nTJ-8 -zdDdtmtmD1J$6U0IQ0#oq)t#J#@}b`fZ@cch1C -z?hnSqA^)SEs!a-^px$k*5m}y| -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 -z5ok9Ahq-{&sH4aY1l -zo3cF5uzN_We*A>1+Dr4_@$eE9Y+CUBASiZ`q2AZhAIHwFyFsIlkBYw9{Rw%Qpwh@2 -zar@zYrL@(nGl|iA;H`^BsBGfp6GAK9jAt7V{pU2g-OrV;of2irVN);*6;K3f;+WE2 -zBG~BGm(#jIla$4zr8BT#dq1yT^Q-@7qtAU#;^keB7o>q$JCkVIPkoM96t?a;)8+eh -z5lAF5osL}&a5{K3ijNzB=~{M}pe3K}^gd}?m{PHy -z4#d%Hrkc;!eQe@JamKvzqK0X8`;vMpVfVA8ge%N2o|gVY_(a6eLf6XI^qzOo94?~r -z&G!cQtl?s1^8JYSqv?i)lGBg)1MQ+D{t+>Hvum5G6t5@b>j5ZT2C0R*n{tfqqY$fhr}7`l -zTq$wU=&UavI_(8RE1K6cE?*wENBGzl|wgwK}Og+)^m5 -z$WAnK`mL5JFV4*)Y^$62bF1p7S^#nb_3V%)~;1neIXMGKcD-PW?K;5SJ-(~7@yg;G?}93i~2gVh!UwOeQwqq7d5;p -z+Hjn76h)wUWsVJ^7q+N$wE|@N$>HF*?pfiO&y`VTxm^5hLunu}0oBTtxW6-W4@qwp&DA@&bdox8zK8F` -zmW7O2y~({_Dwns$8*SI)9Y7fW@3#qy@CJHYBLu?I4ZWx5eYH|)8(?!^@~v$56K!Z@r){n2MsXZE``3G^9*ypVH&+gz4{9al5JxDYa623K@TYnj6 -zM^-UGD*8{628%&?faj?O`RLfFSGyQ7|H0)OP>%stHlbEh@;InTCeU`@qeJHSThKmq -z$v|tU;JCdeQz{z`Uag~@+HWkObn9FDR(ZNvxbr#m6U0aeYrLjS=BXWC_(Gw9oAF-Y -zKn@h_yW{|uO_y*5r*ogpeN#U43+MeP3b-M~KOB<m4H8D;$*>>vT9b?`LZt?_T`P!TmC)X=>Xam7JM=`OCg)%e*USGR-?8KW{1rGs;DysYDbL~w~IR?r+jMiVeuSLX>`zw$ -zB97Zl96&dwrOhmj!;x2amAkM2t^z&r2QeJMG^?45o9u|;v~@CQ(}do)<0@~Nv9i`7DCzgo28#dprzFDM(53>e0F=#iM}Uv`Wc~yjqVV<`y@ooqQUtj=O#0#r+8rUa!aQ9)vTPJy5J!Njk08(s8x0d?j}!Zkp(mKmS0E`2e>dz+gP> -z`Ks?edMHHa7*6QOBr#0V&^V-=t`h6!DW!&)o1G}~_lncs=5$zjsFIEzgDT>>O&=}7 -zO@)L*l9`gB`_vh9X14efSOF~u -z1ic)S_qCEQSCeypD+LbK(Jz8y+)*@1Ej3Mw@3j58xSj{PFVup7`V8 -zE6BD-O8`NAjx4VweU)W*$cOdtdlO9%r{n8T)L9BmUC{C7`UEYl0{hv?W=?+F_*~d9 -zq3X*xWcYPwxW@0Vc)}G9M{nDRlv6CH3vrNDnPV`6tFhr=P`v+o14yF@%z(8xhukg`rQMcndakRAl -zy~B`Q)3{`d!kMmd0$9ddBJ|jJBbr!k?ofrFaH;}Q!dnyQ_ywH77Pamt^)!&iCuQWt -zLv~RqYFmda7@~J>hp@5z0TRt{ -z2N65?sCM6D%BQV|Of$PtPs||$u&_WHL(J&Ek7@6ido7QR!b@}S2qk(RPEFR66ZuO@ -zx7X8#-yNImymuaUedt&ldvkHi)`I6@)&8U(U-Z9HDny($-P7pHT|c0K2++)=PUbFM -z-e=S=QrSC@NsrL<^Qrf9YgQh{&AwcHyV#~?QXw)HkkVOjom2A*Y9HX7enDayn?dp2 -zpuTSyML{RLeZ^pGN3Jv6X?mvA6G{wO@?9r%rAf_Dcl&447Q9~(O(j9Gde!joZM8yC -zn=17pW$|4@26>b3IUEHa(IAzdZgXMni3f4>MQo81C;@ScKC~X&52;AXl~hQ&Y5DMW -zb6Ft_;sxbe`)uw!wj8V&N9?&UzP6w!>Db7_&y-udC!TP{FnC&Qnb+sB=_-9OpI)Ex -z=Zg_coyA<%b6T|hX@L}f=t7WPd-F+O90a@Zx1cNxC=60YcKhpn)Ilp|Lb{zpW8*_f -zJGRM&4YkU6D`<^QYW`F8me#MLPW#xfw -zj0VYEC;ZE&+^64WZ0HrR=+#|NRi0F;3%|I!pi2tt4n*?L9{QcQ&fyCt996~7|moyytK{kj_H8QnvQlCN(n;q|em{D@-eb3YR -z4Dj>VxN?34v%;P_5U*kUJndt`itqyWt<}eAl=!{LK-j>T2o$@ey6+43*ea1lCGp3PoV{AGRK+pl-8+T3BR5qki7wWvQ! -zGEL3LA0X3%Kazw!HERkwwCm@E)qaP1L_}4~q!Q648Ae2=k!}%JBudhgE=Qk+LSViP -z;At}_(}d5~mPG4m`K91wN&eP)w)(>uWC)}JdKe= -zr$j)eBJ$yT0;^$CDHozjga{zW -zP#6r~f{s|woi|_?xgwvqOb?2#>(8gZ7j(UA^uqGuyDulM~hpG7e*A6rnb>351p1xXudb_9zL#yB8ya0OKi1bf|tV+^JAWfgmyCT1;Xk&*@% -z4NQ{eqR^-Rie}_}MkMmbtH~gbIFyiGXkQp;DT-{bWQndKrVnB={cCsF#kZ1GFD(5j -z9)W}yn4^i_9*!=$mB#0EGlD6GYNKKo*Bd6B8+x8S!ZZ{#GIh3c!#?^Vrs_O`Aqr?U -zIE(81q?a7sScH_kr`nH{Rk$dGN7S?x*H9 -zv!${UcjiJ-9q%a*j<{xP)nd(peKQ761KI68!oN!Wk+vzMnH -zO7eGpT&PP-UEeM1_=crBkvlIJgwE}r{>cOCbDZ2!2L)N;O+WS#S)xA}7ag -zBTT=01I;OhWhJ;?qN_*we)|$b9^SBG@$K_s1bFJ -zo7q=5R#kbMB!jDGzqxNeN{fWxB4m|D^XK3+FT)Jlew#hmP|r@OqDyDYHl{fGI6t>MD`)5z+4+B{;@>67EZD(wdsqov* -znyP1>lVHa7>S;;LU69z=WW$isbfM;0uf-&XB-R>jm!!;xG*iboG%-5yA5j%DcW+W6 -zPTS*+a%`)`XelpT>j#x`uLGgvpN&PeRWHn<0W=C81S0PcUuWA&%94EPmJ*KPi8+Jz -z9qPx|(Qe1@(I8s4YFqK&vX;DpSg-_S(3?csJ@3)j-k>Kd6r>Yy&Z4;iS^*>8;`Bu^ -zT7Nu}uAck?t_c)BL|!yp?$?}QxEg!U`$Axflqy#oRbKOyGbw6cZi1MLtB++d*;Hsw -z>)ZkG2qwajCd-qv92vJwZ##Rhsa57O5c1^L2=)%ijxywtT_#riPi`_OJ8Q|8%=9Rs -zQV6RW62FOB$@2EU*i!i+Wy?~DmM>M)@V)nZF-8_*NbOdm+Tm>EKQ`6(EMlEoY+*&e -zsTf;kxgz>Dm!%A1c&#=)p)CT_y^HNIUCvrp@Z8R?D>=gTbk{4{FZUlo(?Pa8-ym$TkkVRO6 -z{`%G&W?s`pB_0d@$Vh}0w-?1ZQlHKu@?5s$t6&j7?kwmnP_Bo`pAexJUjld5D4Pd>e3#A(`*|t)6IdIM@=@j8M{IjH$9)k&03VXM7 -zi&nju0ELZ$!V*&FZDXmUDSs?pisKC}mw<}Y68(Rw6%CjkB=+N9%}^_qZADiHf3p~v -zq{o}4i<6C8OV4OOFnlWMj437L;EoK7i`v*|e1wv7udC08soiSNppYV{I#u5e=!G;- -zQdhEHep(m=W5 -ztJj3+hB8+f_fRZ@oK}GF!#loBMoCj4`Ld-{Nx0%d5byy#Sd~b9*`$a!U%!viMdyHf -zcd?fI3bk52Se|n+`;R~A4S|*TSSp+*u+wz>q(|@w2@*-xpH}(*5h`BMtvh|7C%*w*qh>XPP-DQsa;3@_qidL>R4W0 -zt!kB?O!i;eZT7|PLs^Unu7YdV9>i@b$gxU&4r4=b+U<=xsq61%!=$=-{ov2)}v -z{UvH5PrGBJP5t)5#M73nc8Xuv(Y}^mdSTBSzSi=?5?-JtaqNP^W{B~5@(E=u -zJG))sQ{*hY|8_it*>Yt}w@L0n7#2!b4PVNvs0DNSRO(0mIRw)_O){tV0n_Lhts?~z -zp~a5Fm(T1I@-6mukg~3&>-*40t?wekGU3hFiFv~m4+aar(8#?@ukd$?7jpaqK>Q5! -zC2SPt_$RROgl4w*w~BOHzbNq;PCk;Vfd(ak@M3lXs~W{KB2~neZ*Ss17cvbOZxP(9 -zv6&eLaLt5upnR=*`d_L}wZ2t0jNgdNvOlH9a~VA>UO{U=DDi`~`dx>)lwCXna~Gp? -zEBRx&sUA{qP`Fw4r5kwPX`f8NGq)iAz9gP0N786%7T-Qx(%~n@M~N}GVi2n@`u=dE -zd8#<_2$#Pw>7#hXK?57XP)SAXH6$=BS_0y#)&M@V;QRaiF9N4gENuogniRvM0jm1& -zClHHb2+Q6oS~NgG0f?n#F)KDE8=Os}fQ{1u-*!cpz@7a0@Y(q0o_{33dciT}C^&Lg -z&J$lrin`CW^Dc@-L{W&t8Gn6N{vHeN -z!YDwx4e~j5@(^An)rIB5ahQxK)XD9UJb+Novl5;%6m+;JZ8voUYa<7j?8r_nv1jl4 -za6wwokbnCjoHvY8b225pcP~l6 -zwZu@Lq(g%%zjr=o5q9@0ZMr-3_6gfl59{hMcYfo>qA?gZ5IEqquhZ3ARjZh5>-0}- -zC)<|8MY)lr{?#9&Ys1Fy8lHwjY{-j#{xQ+N+?Dg_4coIz#gcmfe2G3jAjgPLaRcL7 -zRQHb?>vVAtd{kE`zZa~BBcu~ix)0Jc*!t1Gz2BGZ)+WRdRACHX` -z+{Mg>DZo8!NV(Mf++_cag -z)liJ3#3V7uLgGVx=x`=H676db!%f2YDvp -zKeYvytux@CAQxTa`WpXz9Jj1r?4PCDu*0dCpmQX^l)-ySa_fy^pw9UmSAzkWu -zrE43G$GqF!93f|I%Rj>YKh&QYMB{~C_g8%XQ~~-o!JyEVa74Oyzl~F-+JgR0WH25> -z_4wcym+f0`{~B~636pzS4BD+wSr#b!mtkD;pNTkHd-+^Cm9 -z^zKE`h*#7DC(QfnnV^_vVAqLA<-{k@Yufdmj@@NPhvJxua*99?fI -zSwx5f`4vm@84I+iT=pE^T_EVHT--*omL>G;tK7>HI5FfvZzY?R_MNiy#E9U0cCu`Z -zd|L;H`Kq_u_FQ`9;Q|dVQcgfri%UR-xx}W@N!GP%^o$DA=^00ERp9G_j9kFdv&!CX -z&O(h4@YcqfTKt=}>#UNvqMR7hciG;3M=XJqw;s+jWND3-s9s**!kOM&uS2S&B-*i> -zmF`h^pe^jRN)B_ -z!8hE0I{wHgW3weSD(t?J2pe;+EQuCL<%bG8R1cO@To0L47nK(D-=TI-ndIfJnk1|a -zk4L8P&X6cMv4?)@%Om*2I>Wq$1uk4D#1?VM`4ka++nR{y?c(G(iz=O}O!qSIgSZb3 -zKXJdSYh3F!ze-egArzIU7Qy;sta_Z>y~4*cXDm79uAu9$V5|&q4B7sr>Dm<*9$TPi -z2xLd{Zn%z_)}kZ -zz_3q$B1x)K=A764L(jH?TF{YvRSho^)mmRR;)h-SqV&h)e&Y4e(^vV+@Uyfabz^j) -zmG)w04y|lIc_(LPtIE~yM5lD9RwB~pT)2j>EO-Cqf$AWLXTPNfKFg{8dMBy!2bM}y -z1_v{hnNwv|puRZY*m#Q6a?e(jVM3RmQINE8=AQLT+pl@35KVs7iNI78)uuq5#5)`Izh(_%uAiYiG8ROb@7rP$V){Z2IG{xX)6Q%=>X -zHa=&Jt_)}_~ -z!EvK@ba*?AQH8!Pc}q;F+jy8GB4Rm*T1rVy*Q|#$Wp($y_my`nK(+4dr}(bfrga|G -zhoLx!Y5M@o6DO?pEjZIcdrR!M6Y}L{W2y{4@pi22MIEC8TOp6wM%;kGlFAE;txktcZ{6re^v4- -zq~qPcjaO6lItcCyYeG@dwm;f?keR>lc2E^TZVy@%^YWn$57Ud^GWL$>i+_x%N_vn} -z%tXgRtLoqm!rx+QzJZbUeTpTX%9GBKnlSpLKZHs~o={@f&RflY6j2RfgePK&pCZqj -zA!anN(_z(#_#rhkXfa{%exHCy=XNPQBASkMcKX-Q9ScL86}MB9Ej0boBRc?7BmCg? -z?GMJh44uB^ioW3i5&LD55Iu%V?Ial!h;pYI1AgTz(Ow=W~R8@pB -z7)PF{E=eWmR7$cXQdZ7CoVc4tvyr-?J0f} -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 -z_%uZaf`yI%b&-(abE#|aDNUyb8niG4-f -zE^ztRd$MZd+qGYTGgG=$QIg_D)Z -z>xkMMA;$ZWavjeXvM!=3T}8nqU2g$NS%UuA<@_Jh`&5@s`Xc&k*{N%l^`CL&fYF8eJx{cja+CR89jNMJAg{n>Yt%Pkiq474fq6zL!;=uVsmXDb9At -z4S$Ww;*je;hQ7eJ_M%R%LP_P@^;vmEAwMde?p}cno6k$OOdv#Et-DgEyO+xfZJq}u -z_di=o9jur=t_>@g)3*1GZR<*P&;HYIZA*pT5Cv?z>E#p^Kcj48h5Md%;h?yyqb&?^ -z1n;)7N`RO`OYD3dZbUyXMhW*^?&kI` -z?_u2kxcKXeM+BdICrAGd3QZdswD6|E8v+IcVPO_7WT -zQ~ndSPZ0GqCW*V>rS*|3rLn`#1AolkoaN1wG@O=lXM$*a;&8{eb+d1!|84p92rf=* -zWAyCdm371BQpoKkBJB_)wSD$u=l+3OxMxS3PV<_z_b)H>Z!uXO8KM1uqlcz*7Y(p% -ze{dTNybwe^qE0ruheNqen%{*dFNHiU`YvZj-xi}6G__^UehQT^u-0FVmKM -zMRzZuGT&gU#|9HD*6Z;x#Zr8rYA;ec;J2dbf3_2y7-So|^Npz{V;+z|1y(Uys*W|Jvmr0+H{ZP(isC37; -zSuKp?iS?VjcDUKcH%d|iG7OjDHrag$J4W&oILy6x->jIIirE`~;5UBP^qE%S1U)j1 -zJ>qNYF%ddw*M*wiJSRYlw<0m`2W<`R33r~E(F)cbSymK(K7n85K{Qi{y1G5bKp_O# -zc;ti59SZZrKc|Hu{n`P(CV%XMT_SH8i87ujR?*qFY6Zgvqut30x4pX8noJ -zmqpwthe)xgqWRp}F}teDNDl&PE-}^L+9gg}cDIm7`dx47f7gYXL2B{J)>fC)lxN1U -zaU8pn;|Rp<(mC?S&HsBR*fc%Xjc78(M^;^ynCHU>Z3W^FUr$>Sr^l}^K+GhcRxF@U -z@)?~wDFQKhb-V){YWTW%g{gcKZevgEIxTk}S5&=9fSGLn_DXm?=z??4V)3UAToUdlhteC%VU#WAPFAw(?^U-Hge2Z_oIKlcNxcTH>P_>?R5m=U7&YlIm{`zmiHm^5$&!% -zOE|5}Nvqj?CAd?G{;$+3OaFIQMN%R1R -zo)nhj5T;d1wT3G^vbau?J=c40XKx2uA_$HO&)68X!g4ylPJLKK0tpFJjvtWtUq}q~ -zSgZD>oHPWQaMC|H)**|gN8dyxxkpEbF_@Qzh|Y0V6-u|vkNJ0+ccD@wfKWxO@{K}( -zMa5BbAfS53q++RcjhQP=qh<7Ld8}B-cJ{u)UJ)-(#$W9aFpA-9{3=RlvElx-faIH% -ziJ8A397tgEi;UYvK$}df%7iB^f1@$_bq4e6J*3%`k@bS;YfThArc2+95w`_>GlkDP -zZIt*=cbBjaAiVF7?J^+)JzO`)2NeEm4$VVClRD=Ytkba$T`;^8p+IV{ojEn&^&8wb -zx-W?in_f#T(BSVtczGYiG_EuyZf-TG!H%WRa8(f6cQ%MwEV1mvB6tU1blWa_156%(K3gS4$HWPQ@RZ0q}Ryk<@EulKNRTnC>@AX6`! -z(^@Ub_3#tBII?cTyGy_GRJJPNJh -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 -zQ=9iBnRiou(DozM#eMdvgw -zY{Bd06D|tgzE4F_DdAPC=AHXEgim5^++cT46pGy=Kfn$bTMdqp?Z?{^2u~D7G<& -zoARrbI9Ow@JymFs{OnE@rdJz{gjmWSgSej+nqRU^o}3A5&jni-JhDm8PKJ!&+_89C -znB0^>tvc<+vZDXQ8r8&Je+rioa6>gwba? -z5QL@l8(wKXMUF?WcTC%!dw*dbpxHcWppocppHz>5B673K(hr!oU{^iSG5p6g#@8P=PAII=MABUZ{JmH9uT432* -zF`vY;E9oV1+P_<9-hbw@tPLoJ6%7**X=_&jnKNwD6}sz@N4Bh1r)0uFSk7lg#Bg-G*7twILCq00 -z8R9THlvPIamQ=HM^b^6`yj`vI7$6U*W-iZ*!y@&(jY5OqAH(1YOP3pPg9lX<^teI( -z)v--xCUJFoc6guGi6$Vnd9Wuy0vUNMhGh(=>3eJ089}1?kF1Q3i9PGv`7h|7 -zK=8GW)VW6Mt9A&w;H$5R@h`2Cv*^WWnJ@nd;yFJ)zJyEW|>r(A#>%7Zfzve8OW -z!to!G^Xq@84bc#VNAnwH142=}C@c=lmN~m7oGefUZ?$0UDm2m&jj02y^9ft_u`Va( -zEc}}7*NcB?$x~$1JR@{v_D-Thx7?@J#`Z8rmzvY+S`MVkkv>vC7gMhGu&{~syp0a3H -zWW64mvSE&L!u#Ggnuvwf#xe(-y?_W{_oXc-&EA4b%Rv0w*lV`>`PAD(m)mlNU-3|u -z71&iamXdTEB@zXXkHQ&wTWXM(Z<{0G+l?01dpjw-R8F+H_ZynakbPbfOx$r@v_%(E -zOn9?9=!F%7P4hPD>&xiXCvE?jOoabPJY;JgC<0#q&Y+U^(~1ed0Y~J;iBns*mm~mO -z$3wY+uB=E*fnR7Gd~x10^K?oYw$^{IedM`_uGfqm539OniOBWZhgLw8>^LtFnR5uv -zYf9+}STC=Gn)%`DpB^pc@lIA@O9J*IyBZv2QZ)B$&56dSyR$}p3h<64Uws>l8QueD -zer73ayZ|~B&UnAdO-?bHg)P@FS_1T!!o8i%dNs}7G1xi`RT;BPpQ -zwp&tWaftq0_|Hmc{tBXo*NOta7GC|A7Ao`FL(6}$UhL8UZ8Qt#pVH3}nkIPH@*q?x -zNa9YVQph1|!J8!Cf^sG;pu5MktX1~KS6St`dS6aLAHiRmXg9E~=aMf))iOFdr25;f -z$9|C%Wmefdve2SgV?x*+-QSVc_m$8dIr!nMm_m-Y+*PE5*%`>0Yyf=JcisDBB_BRY -z&;3$rT&yjCrZ5Mgo;!D@j(3?+up=Yjxw)rnxoQq^DYgd57ys*%h?pU~g5sD!_}nSm -zNg5iKu~(Ooun_5bygYN?3g9O4;P^Fi%9y;d+*+KHcE#if6UzJWQ-h1H1ncuN;Sa*S -z;|w0N8Ud!9pNMXs_B$6Y -z9YwjEADQdC({!7boGdG~#5f}jCC5|XQ#bgz4Y7gv(6e}sIBJ9RJORAlS-J6LU+Gy! -z&NBPTVYS&0oRZY>OTQ&kzPpaBRp1K0jB?3Pm_Dmj1F+B5u#D;5FpvF4>`UCo!pz<$uE<#I3R8=&Cq5g=k>6}{) -z$P94w2i2{d%eZ?w`yZIXB0%S^{wUq1RX$D!MFV@8&_I=XZ)6Dd!y^XXW2ftp2#zis -zzrTm)D7(eKe!|1YnT7xo;gB#gyptR(9h#1O~kL_Ax|>rExyr7*5b78y@g+Cgd=X -zeAg^mMi4hxg#{#hZ@wYqITBoJ=a$T}`$v6kh-ib_I`=Gl42jp3%X-UK7vh7DJxSV)gCYE8P5V -zDh6hB+RL!}xs8TV62}uhl2>tT5iGA4wcTWf%@(l=3tGPKOC7<{NPqRv_8sgfNY%Pb -zLW`iQ6}q7X6x&Jv@F_4|sZINxOaHs!S$PH)hJeF;i`m^B8jR;6aVCkcK;c -zyE|BC*YDyh&sOETE*_0wZ`=HT8hVl^GZS-j_eLF_W6Bo%mn@22w7ryKNs_E(nP~I# -zw6mFdPd#BVD662o7apMsv$Edhank#m#_x#+D$_sN;C+9|hS<|Dp2|WxUE+aj*fSK& -zWMMu}?5@T9h9c=;Ly}urqWwNI_uHhiaqsgVgt002cm_vX6Y)@Y7kc8-Vmd~&C@Qbd -zUMsI8m$Ibl)}SsnV2cQKA2VJ|qmTQgFWh-+{J7F{%4TAG6c>h#5x@u*+HOP@VD+NR -zx!_AELG|R9n2kZwgHGcBWSUJ|Iw8i+D0_$ReJ!3P(ty+oM(+ntp#7K2zd8ZPU0pM> -z&7|#uTi#pnm-41hKXkW6m&gWqO-1AfO^O>-F<6|)ArrcAX75)Q<*vZoBs0PdN5VMl -z^H`tgRCF-S>HJ)MY@CUFp~4F%YGyoC$|DX|#I!TqC;GienALJ76L1Fuy@^li2P7mc -zL_Lak?ey+cQ%>5RHn-}fTF6M{cx;`lDB^H)Z#ZZ>78nkl0r -zX?W~$CEM#Za4Wq4rn4vr*Y;8oIW>JUHJMdC-8>I`{|g01eM#h{7@!Uv0Kxx?1cBE> -zRjhLCg`)->1yYiBXdzupP_s=S`gI;z!Yy=k<19xS-}i~!Ay6!w^&1+=%P(|#?FtvK -zgkcVv0IN2u;82r*A*HOS)%yOjJT3HtUj!NHr-HjP?V-=0{|Uky9NW27lOIZyYsZ0i -z=WtU(j&IRo(<|eGsaJbzW+J&|IY@UyIo*Kl3R325V6+o2^EILeL8-9ZUgp=@Jq#_l -zB$6`cEQP=4?d!+^i))+k(Lq#>Bv(Qg=Y{5;R2fHDe~j`=-3W055EHZ7?=D`RC`P)B -zybUgbJzng`J?nYs)e>xUZ5d6kVCbbl=mBzJO*q6aR -z$rv34PIv;++jJvG{25+;qL%5CrV%q2b1=>7A&xa-L7jR?{&kVUcPIsm2|aj$N7Z!9uM3rTD#oL -z+t01Z6N5*k&a8of`a&6hC6*+y=d|4MEvyv&OG7Aq$;k!WOP9Wwt6N-hStV@yxCIi@OAAM+ -z4mNG?0Htz*=TgBIBI0M3I2^7Z1`m?-T~Iy~1mY$gp -zNs=RWCIG#&|&m!L}^J|X%5C~&ujF9WphBL%`07O5rnDDS -zau% -zCP+rklk}9zJ@17vUb`{wu0c%fh$gTc3Hz;RqHG+DioT7)lwEuip^#+Y+8s-D8EOris;*l=DH*LF!Mf`MaC76me5#Xv -z5UHh;u6@@G+$I0niLE?ql-@(MPqM&sSSJ1!@DVSTRdc?wX`2^z?pIPry~9-6e`fcp -zxNGcz@mvKf`xM1oSAG+JwuL94KmwVNM;mrOo*hc6lwK?sHhK4=+&&?jr6zM?EIKqr -zy#vZ$pN3G$U2f+7_l+ZR4uq7=+)D4M-}iRQjC>_9HtH4fUx#npei%x%u^TA%)hdAq;`kaEdQ-X+W*c$NyC=cl#mDDDzh!EW(JN!NT+Hck7+6QWaUyi8 -zf<52A3a$}^Y?+242frAm1mr#nw)>UMeHh5c`iCIvF4OL0l}hgf8!wfc%&bhqOyn#* -zr=s;CI-G4BM1zCa9j`m6_%NuAKaTmq{#iHUS95Z! -zDr#3)-Au)Q{$G&CGWpMVh9T}6?`k}`RCPmGwUA>KsR`{%EavigZ_riO`yoS%|F95z -zPfRzVVvgWIs@Ps1Eb96%Ncb4{b-`ONxvRU^CxQ7-wO#J}upenB-=x|G%4HKnJVo-l -z85;Dzu)ZFJVBNymuFjD`?!%KTc6Gb^Z4;8xV}3t}TRIk;3&>lx>#KR5eD_!(t@Gy6 -zeO(5EQQ&GUUWX>ngIuVRli3}1bka`1Ob|XYT6YEYKmZI%frQgd*B@Ax6Csb2TSJVC -zgl#CJ5H_FF;m=_!fo?I_+CL`zDN&WB_?S;YRaNc9xX|5j514-P^HIKnIZ;{zHO7aJ -zX9GMW{E3!WYt$08{`dM9u4#E4A_C?-JKL$C?>cHBfbw2Zn8%(Oxv7(&W%qY}6!NL4 -zJKm+teRv|85x=de8{UF@C7M(C%EI&V5N6#DR0<`Bb3!R;A)me4Vmt)k;HS`x!d)ed -zs2|u$s~cjJB6T)zmb^@~6lCjaRF|_e{9$OqVR|_MY-3iI(Rczz$Pd}chrtY)77e-% -zN{2Da=IpQ-PDGmPUo{_}nJ4|R=qR_`mjIOi(kG9w>;xgNR;=)#*v>t7;(l7fNRCVq -zk$!gVb_7N82zWE(XFl5uM!vdPf578xa_pNyd-)zZ(7V2T2A~BQMStActFBVUmt}>Z -z0u5jx)Cr*{py16Rq@>Np{W8eS)nV#ylMBUO*v_e^jAz8X3E?gF5E`(+@QzQ2$mKpf -zS55tC+6Ce!Fkg;G323LQKZ43YoH{kb-!v>0 -zv%v08cu_7L?}$EZFLOND2y=d171+-AMje7ZVv1wMu2F>KlBmf}2;0qObw%sY2jWe5 -zQs0ua{S2Lheku6H+fR`@&$K%WF+Q}ZzI>lOC&v82jx?f -zgaeZ;^K`97NF5y0TcVJ##Q9E&xnI+kP%$mibbYJ=)2TZ3EVC*c=^9M0+Npe_}EdiQmw|-1(ip992f~{JTI3`^`AEP}O$z -zB%DXu?j~ut=DdiMI;gVboK7S7q36ejl#2TWZmi&JYcADPQ5!%{dyHq{GuvyYjjZ%cFVs0Dd8=GM!4qrU$0MG3#V;&A}~Me~B}G -z9V~>MMGy~G|8-wGw-ozGqT+X-%!^;4Ui)K2EU4v*4e+9&N7^3Sb67u~e@#{thO}F6 -z_(AOarc%MI1hya)oI5>)7&_F5Bkm%9@e!UwKm($;w|`qVh=d -zppe1aml;GVg)-PF$Q6O|qJ^lNt|b%aG&rjW#ut>z?HX`=z7C_D!MxOGv*+|fj@CZc -z_X56g7O{>(n=DdaeGZ}jaU#KdqhcYVPE`43vX@G=K`QL}5G7Oqb|9@|kpgRyw}mn> -z9g{+?OB&zTpUkxV1bCMJVVNyg5rt`y5LDe6)_ycryJ1fict%>NZ4QxT-x)x#x;Q9+N`E5IW6!L6F438$gD -z8zfi(#gP2|e&1!f$)l{`Ub>R>A&6xACdo(AiIOOPcu7V^|5%7hdrla-MMA%rSCtdu -zJ%}iUkAUT7(-)%k83Ki_fL(Pe--VyIoYoBE0==Nks!^(_SyR6sI#!_EkOZc9&Cq!E -zgf=9s7`{NvWN^hW45o5Uxh++9eEL$o;PAnAfZxF>#j#8Nkt;!)tCrJMlzxL3*dNi5VBhC`jLn3AFHR+co$Yl3W#rkVXyP)zrBqXc|c+4 -z@?#rE_Z-hr%B2`8qvv|OLi|fvsKyxY?S9W@{z9IhluUl!rO8oc_)yZm%DKYG1dle0 -z*LKvSRl4}X+ZKKSg*Pf41MQ(>zw96@hCJtEuS~ZO*SO|uFI)bk+<2Y9mo^~fIWxN2o(h`Jwdh-x$QPEk7=C1VsD_zG1?1OXZz -zZ(_axMTuSOH#C~xPlknr4>a;O_IXF%eH;HCR7)n8%efVmVUwSCYf|uFWy!W`Cw2n6 -zD6u;VNtF0CR!e;`Zw$=QafvvRXKKw5Z!tQ`fYzhPPN@Cmvh_rE#$9uwi+!-B>ifQ> -z4m8oDPj{mxN74ZH!OJ$_Gxv9RO+$kA8NZSz{wgE^s^Gm!y#Lt5vFWBq))ChUSlw9C -zwve!OU}*Uq68)CY4JA}PTk{ScehP(Y8-+Z6hGuzZpb0z2K@q^HQG+V#V*X}@`W{iG -zKlk4>)_-d5^U-OJgP*2~d)$X{AO6SDh{Li%wrZb%%3^~(gilxB<2~Bn!mHhPGbGBeTtg&?<)PGzwz850%47~KjJDgHu -zs#K?pORS3kqBU|s)y^xC24NV%a)J1dxzr@FE6(TfA99moi}f-qtWUe}wQL`-6u->N -zfwjNe)vF-XC2i(E4e?`D5r_4 -zK77UUvwz4R!k(N5ae>%CX>6bs2tq~#W&wRe`iGes8Q!qr1QA$rjd;Ze>O(86_{b*M -zPyrzp(tez=u$s>7;8V_#c*hmzMg~Gc*v*}o+;EK}Mcu|T|J`1OZblslhhi$0w0;-) -zs>=PTQfF%LljJFGvb+~}20H84h^#8*f8+P`GdqFe+=j-8NiSuVRbqh`ZvFc|5vt~I -zpui}Q(SQ{&VpN#hjvla@C$6?N8bd@n)bvu>?{7oReW~=P?)(qO1a-*- -ztDkOoO4y;ruZdY`;}x{|(!!lz#HwQ7@Rnu}C*^&;NxH%6Xj{L04(G~M>t(ikT|XUz -z)9d_nGMR~4lanZ4nGIriY&}VleAQ4KGU>O;vU4*EUzuAbRG;n8BT3Mx#IneK_MaJh -zuI;SZ_$#NiN83EvdobMqb>rkF!7MZ^Krl1687j`9j!LIY)#EcqDk??c8G-WzzXZN1 -z&(yil?qHon>(*To53JZPx!l2lPb8h)ODv}Xgjsyq>o9N=8#W}EFB9$pwFsm+0+<@U -zb6<7_znL~f%pPqp1W9I!vOndyhwbD^AbE{&@a)CNl7U -zFI7mFj^_>ql&<9IFKW8tkL=xDqnAWhuYV{F9y+*!n}N~2ydxr- -z-PK@KR<~Mc=@g)`MR2XuutKMHF!Og0Kgu2;=yySTY~Te}8ArB|K;Qkrb&`lR)Kx8d -z0g3%XGcd9P2#0nH{zOl3r3zDQaA%JOBoTet;#WmQFAtkGbR$<;KqGd|*9_N5>c1@9 -z&hN-c(Jws;i+uP};GHY-(Au)`zL2f5i%v@E#)Bwl%$8jOjkEc1gWrjxi=flSjUp)s -zc^x|?^TuAE`i%m+LKlJ8+rYN{v<-l -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 -zbZplAE@g>?s)1bD-QO-`jgo(& -z{NN3<#Bhe^O9|!two-ICaB)r~n5!lQKN?OYC9Wua4-6HQb9e-=4MKN7Xg!jhD_x_8E3pW!Lk7WNE|}tqKhOsm-$$={TUsey6G1J^7o;_sHyLCNvF6U8(^mc -zfrws_2sF)!A)o=mdihNc=K&WUAcCZDJYEyEqOEnS -znf#^PrOIoD4*lIr6GZ)_AK4qBy@9qR^_3g>sCz+wj@Rsd*=7PE<^qC0>N%^8U+#>? -zhd`oG_e-yX=rfAxD6bR&fHVMhiInvd?>%fSEs~fG`pamjCyeEp0*6hUBi^@h%?~0! -z96R{EPAAUVzy11>Av&SZ)6tHY?36feeymtS8g@x^H<&Y4cz;f+Dfd*E+VEm_Z7A`x -zUP#Xt^`h+y)6BuxN@)rHZLXqv$Eg~k;bPjs`SHnH2!@|{VJD9Jv&L;!Rlc5y_<~S@ -ze*=ymW`3LAxZmy^H8;6z`bNB>2R=HzN_9E=DT}8q$$vC&{Cqs8zdkkj_FB!9(>UNx -zi%r2Dd&Exbo6T|XZA%oo0988hiT5kD4mDY2GN^4XX`Hn!t%{Wt`T=!bRgS$0GygXguj3*H -z3W?zbm^c&>ZZTOZbv-qd6-kU&_JVK6HyWmg0R<5(=PwM{hVL``xvPE`Q@aSI2>pE9 -zM6K}a#3qArG#{q)cPCrxtRr3@oI -zQ7P?%^p<780XL$=u;7>X6`hsBCUF?#U9(bm|@Fb#gd4u}EjR+9N)q -z*KaHELZmG2{ckvB_3OJzvgg0E#Wa{~jc)uM;4u|$Vn~AlZCke69lKn42LJp0#;)xK -zaMX1n*gfX>E^p2zUDogX3$3&hi!42Jeh$vV%<#q5*8D?k_wQ@zi`qE+pwWjd=kFuR -zf!`k3y>)1taOsIvgFi`;s*wED(UUiy^jtXW4GFHr+u}%JWvwvflgO -zse;jev&-h7DF8(Kv}fuJIi=E;s2`!Sr<4aTAI2CiETOIOmy0=$!}GDH@#7KipNB$p -z6u;M6mk-Q9Y3E@6GEBVol!Me}#h}eLCH?{h10fuFc76f@YVW-6b)a*{PM -zMaqeL)BE;VrZh0T>1^>SY$kQ%Cd?7$zb-lvs64l1P2I&_o22rav_6-)fsrFK<{(dg -z)P?bx`91N6g&O%~*J={kax%ny9r?eZ_M+S*n7@?*r9%HcJLnAsDCdv3aA*lY5GiUb -zyKRr_5Kd%rtmulO%WrBQg~1wPKO!T91id^g72WNLB;c{;B1B_A;#gPTgMfE%BK`td5YI!m;L7E32wu -z$~`#F=qI8B)Ju7a*82Qga}d2XI(Ets`V(TpGW>cMFBAc%8obdla}Wq+)fBvw$|G<(DS -z*rnxn2B4<_Q<)Bvk0T+Wz6n+RT^$EyXvk%{U9Ik8u$UC&T~m(|o>$SL9HRLwJ{loW -z1|I=tcF(W-!e>s6K1R}sv0RM?!Pi(nzx`S7jbAivlC1rvB^|Yt&qEPG;O2jUCB{p*%UmH3yGc -zf0h0b#b$6HS|))Fi4eC`9@EqD8I{K(5A9P{7Qviz0%+55&h*EFWRbd&8Lvd~i|p_x -z6k^Y||y_f0zp#>^*YT%F)8XAvTGZ## -z&)z9wAF37YI98kGuP!_cLC -zDiV}XMAY@FOC_z}*oi?P8WMpvi-{bsqm6f3 -zWx`)P_jPAEnosOf6ZCc=db?=KJ@g0kT0=K&4i#iMU(j^14J;flWU&{|p&=Y?f^4V3 -zMpg`-rTUXXWVuPZIZmlgpu*Oe(7oHOF}%}+zEdx>vExC^Cp4>m!U8o}6ye7je7EdL -z?qy;`u3^?oZu9ZDX#%oLi}$ZHfmmiQJEo##Sj49GqD|*T<5M~3{Ea39I)lDs2e~Dm -zyR;d50O$vqwR>B(^E^V(%B$i%K9%AB@MTXME#8XS2`a%B$B)F#FV9RH@wmm&8&SAW -zd2gR^)YUDU!vw)pW+F;e9$)y|Of4Q3?y7kk{GsTzTqW7HfwI~_t!SA~wNfU>Ad=cN -zvqT1(nQh%ljqxqJQ=273fA_GDULDe6IuTJfgk8rl+4;0jBkmBH0Dd7`yILc=qRctW -z-3WjRf=-=%DNnv0+_7x1m!3;!ol>HYPB%0Ce(i^`HS{E$K-)7CddvX_HiH|RuF%Av -z&8Ej4rq^}omqB&Vf(D=nNJ~jlbD)vDnPbp=tyl&-#;fV&BbK9;94+m!gX5=NxI=F%ISCMPHymnk{~cOV^X*^2@r*s(IgI -z*f&Z{DI`5QObEKtek2K6HbV%*vk-z*b3Td;*g`xaPgL5gE03rOof4j_aRmPa$uKTD -z3qv(?clC24#`aG#1eG$0h@ET}P_51--;xg5PV*)75W{q9wg>A2bi_1D|HSm70yY2p -z-mm#Olj`Q=6m+1#n8?~R1^+#oI~th#@%TzYwIg1-!UfvqQU`>)+^lq4W+NKqve^_u -z7nts>r2m02*{QZ<958L9vB5~A*WeM-{{w6r0b(zzxHJ5Kzaiua|4>+TdqojzYG!N! -z!s0$Z^d8_mF@4^_sP%`8J48+VNBORg+#F2`qK>lu@QT^O6nbU*|hx -zY6qVYzz9aLi-*L7ln^wI#P`82pj}27C*r~^TC-+~l6HYaie_>-LSti>8du##dp?a` -zRawzu+MY=HJ90lwm613eQR#K{-?y;(5fB&~R>e^|CE~Qh7T>nJwdD~#;FE!OSJA^d -zKJUFPVa*#hc!iFMHgy15+}o_OxNu&89gulMm?Q#59>~k6z3t=ZeaFUSDt=l~*yJ1s -zZ?pb%H!!>a?^^clZWmTDP79Waz})Mj6hzoEY(yXHh`XFl9$TJWu=^ZS#MSq_^xe?RC4{U1wL -z8CKO6L@5acq)WPy5a|Z#l13Ei?go*N?(XhJLb?$Uq#Hq`JES`V-oBUjef;8{v(L`i -zGqYyaBrCV^{}AT8jr=_r7ecM`*9%V{X{ORN6*}u$`Pdmd!dDJU4mO$PmK;7Uw!DxM -zmtgMMhXylSVu?p;?tNFzSVAhCmghQ)sLtd>te|vlF@^yN73}77`FbM2yKUTscS-u9-)0>V%50d3Oz -z?rt@>9}U7n%MO<1mE -zGO9~FN1Vr<_Cx}$BTq3H20WNRjM4PISpSBpnC478?yZTuS>=HhbR|-kpWHZ^7C?5lBv&i -zO|grI&CDz41!F<_B`Gd6AuIOKo)U@rW6qwt(-I_k2ecRTlccyPs>NA6U@R+d@R3Nf -zt#5&s`PFxY4Nem4=MJZ!Kq5Fw2VwC1S$CK#-=W4~W9oaoujU?W6O#ztkH51G84CRi -zmACsie1$)>9qyRi8|gC;iM%cF$AOG9yaH0m`fSNg1ZPRr_@~4VAKvIAUaBOX7H#|3 -zMN@tV(gkW_I>tMr!bP!&v+Eps=@L9^ti9NQ(7^Y@#<2Hq#>%+-9sWgp1^Vc@`D=-P`Oc5NnK9OtZ%kKd)CL9ni^=m -z)8#e!7o(=*7{R{m;|yPaC?srY`}>-A@^O4m)BZ}k@w+F0V7*=29Rl}kdP{#;`>9(P -z(vYQmwfXyj{bpi9y?bX^_xBvgA_Sj!(;BO#nPoouF)bwWI(b*BFacfLsD%(~^6rtC -zsdIee2ge^+KU0nF;E!H0SviGzij{$B7&Ja!6@ND&WfDty$c-A#n`2&i7BaM4CI3C= -zkw3fwa?3Sp`k3Ju$|UC1zYVJQ#?7LC<3 -znRCVuccdjeaKo~-n2-pG>>wSi_7*@>q(|_QFRqS+#4g5{kCD(GhI@~PfB8}K!7;7^ -zw(>WNQRbdeX1HUB_YE<|!cEJU*wFh#*m1>9?tRnqPZ3my&*(qoL8>N%SPhU&8+XHn -zFTV}8qmx))ku)2GOGyLO;7V`<1s81!fd<%=qT-;mZq;Ev8e&5|K@$y6_e0V~2*z|P -zQH+?;_4jsv)WZUY$OrtAZAC(i{-CHY_KB^ZJE%Ik9KAdIN56%-$c?mFQPb$#@{&&{ -zsi`G!D%`{Km{IsX`|G8jB_e+uh)h>ixP%5<_ccIiL(a0oIRP*?jMggt-b^nwj2eIT -zaq+<{MlkQ|Y4}jR;8>@KdU#+dLFb9fQ1ia&PMK}Vw(v5MR|4F0n4F9kJBk2b2_T9c -zc505=R(jdWfc7iN*UoJLgdKdt?g<={;Hdw~`AKMIe#0cm+;dBTgu9N?mI`R@@S@SV -zSp@OPRD$0XLW~ObWsdecygmZ|Eg^SN5JHDVTfTq!ZpkSu=e<*-#wR@Q$334oszGL2#@~!*uh$S{q9lTS3$H -z%Za(~>nq=(*X2}8yHxy#yBPNZ<;c~G^n>9IKn@Cm@P8!KuM%7H)m<@H!N&idRHM91 -zv2*=*_^}m2R2m5nSJSSN0wXJ`=j%RYAA9QeKv*ORM-KOK{3_{%#}R(7RX8`~NJ40@ -zj`8u~ZubzM_vHVW4b`zSRdG7)4_^c@9t3Sp1)FUfRXx%VMiPYvk7QCH2%cyE_d^Xc -zI`XcK*=fX||KYv``E?>wt)#z}io*qoSn+ya504*X33IP_J|VLZh#0ODUYJ=tLuW)t -zd3!2!yPi_$njxWQ&%WdyYz-BsBZL?!L$+-vqRCuZ_W}+LP$%LxpLK*eN>Phq)J>=r -zRFPFE`9Zfe!a)8`C+qMAq;P>dRO0Hb$X;q0`P(*z-pTa4aS%fRP0Y$oXWw%%dKVC@ -zz!gP#?M&!dSndbk6*UX{`nwIG_G5w=?Uq(r*n5Ju3B_3a(%U%q&{Sxf2rHxr&2}}z -zi3*O$W{JATPfC*!U1b+pHsQ16F&nZ?C;O#;&^qh>_GTQ -z9v(bxht~>wF5x|Et{(PfqbK~|Mi8_3zNtu6@<7TM0ae|8HeZTmc7nIw+5nv{MXVe4 -zj?wmIH)sav&~L8-skmp?8a>^Ju!k;VHFO0UweptYbU~b@kk2%%bNM#3p5Uqx -zyFIP)lgliWW+F(5!EK-|77;f%rsy3os-5O#YP>#xB7lHne2C!NU+%r<4op@EiuRnM -zJj;B4Z~=^%Qfn&8}*77+07!j -zLN$K0GLW$Xr!L#AeF2oK_Ym2 -zVPi;0%Dv7;-2RZ<$~!uRWD=k0+-^UbwM{%@It1CyH2z)xPC|}sM8iSjz+oaf!MQ(q -zlNIog?C%#h)w0+3(65RW4%K^}!F#r37xxF~b+0AkSup7zX%tG)yx~%9sQN#*tO6w6 -z4h!po&G|d#1$YNEXVKIY8$KMgLn%v$NtPBfQ3Z;Ln%u(^I|RW#Z#H>K36 -zTYb(LV9Yv?mkB@F{Ic%=Qm6p#cW*RrkAhx_BB|44Zq&f30sag0qzZ!^p5k}9200t4 -zQE++>`jFUd5P5*2i9i44jBr#~CuE4bLGX^r_%Dd021+jA{O*jxeS?O;$GaZ$EKnqG -za~aVQ`47pvU(^38>ZyW>$)I_PK(o`yi|zfObx?#pq-s86lF7A%2G~e}KxnVMbi;Ye -z`y>vVqY5TP(`Tf-4aTpC!L}2sYtn<-vXquGqVoN}|5?-HZ(V-LdHkU`R0o$evqBwR -z;+;+J#KkV&<`Ymo5kwT{$I6@)c;U{mzhjeHk2kuPd0t^on~wN>l{c>JZy)5N!0%8H -zSH_n%psjnO1p-zf<8MP+g36<-tJKy7evn3j=$Y}O@%R5|&@~G#j!3!~< -zqXH-hm?Qzcyu95KCwU(GM3)dr2GKS#4F6Jx6x;XtYSTB$_YdXSJ_H_t#IT2C_|;YQ -z9R`#~5Gk(o_}ga1nW;y5I0@(@P??dA-7qmW&W441ME#&DmXC1*rl1Z>9$EbwD%nc5 -zt`b&!s9&zCl!PzzXMI%|_pUokrCc01xCQzfAs1LP64Us(<+Av|akV9q(gq84-ySNM*-FLz;e=|i4BWNf`i#F@eHKn?UaU?yrS}t)ATx`{Q -zylhJjjnL}pcEOIkn#Li#g-~>WVsy8ST5oNUP&zd$fEykwwh^_4W~xQKtO#RwZx#FEeIeYBHKZ87iOAX3q=BnYA%Mb=9{`B(Knk -zE}^W(#bH39YUGc(tciqhS$m-H`0_D%+}_kewN+uS3*;Xlwx9bNz%)*u;u0Qpnzcgre -z-f0A?XmtuHLU$iyCJ9}g@&N1sYa~uPjnN;FOb$+V5g9+m762!`n}9m^VR-f!vs{7pq!-K%h@htK)LQQ8;* -zn*+XT?%;Ft_%8AzGc|jWqrhyvJto(eBbBpjPPA~YA}IucfC<+UvAf6wWaE^{j%z9W -zEX-ymkPF|MQf`!MZuxSgqC7mTMxf2xO+Uy?q#@3Sz!hCq0GFZlJ~_`|+(imhaX#l( -z#W^EW)08;AQMLSe@~5`ui|ivYmp;#OPYBzC -zOQ|fP$A0?gc)wMPaAK>wCPJ0%dm2D!g|WsJesfXr7)4gB6k9}!w1rL-(X(00w5jod -z@ic7I^B}F-xmcb#WU=5;-|5_;0mRk?DSA*TmOV=+PZ)SI}wHCkff~-|KlxwLz)mWW? -zCJy6TsD28NZ|5DQX3p`tTu0=ja+Ot1OagLLQFJnN2~DBQL??ls`JpXMWsp7sWNIVH -zXvFlO`ETI##41&x0MeApv?}ILhl}8(< -zGrc4&5lPTm(?EV`pJxLMq0Zoz<;*NGRdJ)jRE^*{>a1nMHYRfJBw#=bMW;z3`Fx3@ -z3El_uI!yh-2(eot=f@DoBzK+Y|LQ2tw0`9LxYr95zl1p7FwNJxKhE$1D&BYg!&cjA -z`Qr3QUD~LD(-PF@coo7i`G3M_+WRrRyCXwoxg)3%{nD6HoV=5SVDK+%cIYuKW}h$y -zsrVJPyF2(9TT&xCb_& -znm77l0my-W(lEyRZT`KoP+jze2JKn0xpOlT{d;{j+j=3h@%b(s`U)-m&7(n-cvc+*;M@tB}DH>k9mCq3Cm#%OT -ze7!9&;*AU)SjEl!xXTC2o@QkJsqF64V(Dl|&@i$PSybNbcS6mf$d~>)lwQO+H=d-i -z!np$?W9QxFHn_5WXltBsjwGhCYtJ%kkOO#0%2hC;wQE -z4v$hkItYg4W#5Sw*?)pmjam2Z;4qxY^BK^mw#EpV4$DHss#$A?!!{Pl`}af1&yK~S -zIf~^GfJ{MNrh2aXQ&i4F?M)~tm`5W -z5;*a7t<0(y3W4$cE~1EcFxT)fYNJNJJ51;E~;Wo5L -z3J?x}O*i&YyC3F-2ZV&rYgE*_skw4Or`&Er2GQo#RO%D|2KdMfJq_e_K}rs;0L>`_ -zEYlX0NtYklxQ_@4_oudEd*Cd!F!mejJ8)@01?fcKsC{Ql&61x~*%qqOdrWK+NV`45 -zYe$N&9{Lu)X}Es0tAc%c(sI@yO}XG;Rt5>H1aqq4kdC>Cyqu3xjEmykDYNX{fnVI7 -zJb;h3Gzs@I%|@)9723IF?N>7Nl{XRxF=>?Yhv^2>^`edYXpjMc-GqNGpIC^Knf52^ -znA;yh!Mf^gR!G`AiGC?4sEneMJ!wIkj{rN$k?{`40JW(=oOBLa7X%PLNlaru*?!A- -zp%P|J4e&Ov|5lw;3FJeHTuA#L9~|%>X|q*0d;a-Bv5c)u>5PmuQ}&zLZcD{6cpL12 -z{$azw&QA;tMB1ge%dk4w_LtpR6kf>cRwnPYSBL)swt1*{c8H~5W{;IFA@{Yl_I6Bp}wqpJ=K|D6~LdhAk^Qo*d0a8kJ<^k_5D!TIKH -zYDdxiCXK%&F!H9ECD;?PVn3w5&fJOz%P&H-32P -zJ2c}+o!#5#fl2kMg4<^{a$p8ke)AAM{?uV9%*1|xK -zk1PaW*NM==w+uEzMBS=)<4e8r{@?MQgWYQGuMZq1Y;sAN|K)k^&H|_s7!HD)PZVXU -z&MSxheSNSkCL9vlBw^5mSJ%fV(I*@%Cq6`RAL-eSZyEhPI)wSTy@FTd+04|x#{)`Qs-nk5;p -zRTkV|v+_;U$rB+*93LP0Wh5);(?$7rsD>PQ -zSx0$FiTi6wUJEOn9?dCyq}KRrNH1^NU_jf$=g8B4&}dwJW4P9xywP8&8T_x8l-W&_ -zq=d?`6j4YNFU3m$MhYZ8VX0}H4&wILv`aRRhwhk1xYtaJkG39N`Jm;)PnU9H47p~4 -zNMZNnAYtfL7R(Eui{dxYbL~P_8PmlLt8d5mS1vtAe00g0QH5B|;L%!q?;~Afak-_o -zv(UY+Bsoh;<``qkQ>pLy7EDlpe_U;;EDLW@yi$43?jU@vc;+{Sf$+64)JL?^J+%~c -zXt95ymAIAn2wtt?SeX&8Za9agl=*tIXBE%xiyPsRYCI6Tb5DY90OeDIQIsW~`(Ngi -zG`g>jc?Qo8LqEReC4^0+7j|5Zi3fMqWpvyDW9jW9a`<7?NZy1}uJ~2qsBGP&5Y?X2 -zBwNZd8l}sJMKD-!u3g$90ye30Q*mE28xDlB9w`%SB{4Nm)r3K1PncEjN<`-7(fqh- -zxm7jGmZ;{x$zrw1n>As}*U1+qzz?PlOu{Ku1sUtUnoYWU)R8u1p*{ATK^oU=(pc1!Fh%8@Ue(fb>%Wn`hm=LCYJeYB;)NTj{4VnsUBOx`BKvN -zA>Gs^p1aPieM8#L&f&ro3^;ChUjh29ZZ4t~kNm2tsFWv}hekT7H|l++C9hNryQM|! -zFt~O&$x|`6a$y}lm%cnXq4c6}g`oA|o$Y;3R6427l?iDph0qG#N?kZB8G&-=WzfC* -zH}JUyX`hbek8nN`FPbEM%r*i`Qv@4hpok=ESD5KAfHAtda=P{=c1H-QzblM<7Oa9K -zd@h!nKGurAz-0JSil?tX3d!K|vpVY|(+0N<`2NW`zbKVw -zIjd)ra@49n&D`yJr -z%J`H$*F+QJdtpxv_K?gPO0Y0QXvkai%%+os5}8-Ij+?fZ|7~?IUu&8Cx@bar|FdkX>)#kr)*oJ#< -zl`H&5Z>EMkQn20#;eE6062p_Ab -zZ=PP63l*Hd0$AmScoa(McjWOhf-hJ^OD@WlcA=BJdO=Jx{q5~mF{Az$<~S?pWE>NC -zM~5?QTH-2VH0Q3X9!&2kc6~=JN=)_#66Z1rkjbMz$ -z>Oi1NeEQGtFpVh#6b~#w6i4S5)o`nym7)9;f*b#B5MAJjcwr263Vt@-O9CH%;U94( -zdk`Yf5?G3jZTXiECcMpBd`dC8jTYq(&51Vn@x -zvcTr&+ng6_5;?`3+?jk1v5p!-?u$2cn>N}x;3Yn^U|HnlA2BULol+!@3xl^f5R6s< -zp3)ENCskZYK-$)*xuDk5tCYoj3P*jSKya~6ct^isI{lagIZ{3=3e7-`ep_2gLtmHZ(a)ThbkWaS-X625*s# -zFl`mDlF|CH|M|0k1tBF7w|a;J{~POd56#{9nV9^SOXPLi-w(q>3jn56fu~#d6p2e6eGAH<#Rc)sh&bQRy?WrQJ@M&Q#E=b0fxk$dR -z&+)`a?XLx=p$+CkpHuK51^6zbD$BLc+ZWx4WY6Q-#41YEUPnn)m~N7()YTlOLhIpy -zofdP`EbbV7ec0u~;*~T{K*k+sEeT1-QYXT=erk>6V0^ky&mJ}D_@?{%tz!ttF3Ujd -zM(f&Q!{ms7Z}5Vvm!;vMc+h^SN4+dyPg-CORs~4oL4@*Cqv~V^sn-(Q>`#K`*Z2r* -z$eeXD#ZdjQY6!*d?7!rVFL{Tb- -zFW;hqbS{in?nGQ}eBb{Lej-c>C(I=9=)D^Z$)4qoD*7QScK(@mz}_LmjW$NhsCFpz -zR6e)3pwyH|Gi}FiLJ0(({Gla-NyNT4#4cu&R`;0biCKb>9 -zf)d`uYVll(4(*r3sSA2+qIz**kYu~~Kug++v -zx0r1Y#Duv1VqvZQ_#pRI43z4{9p-m4FP6;+b{**0+&1F)QI&qY5Ps{W591r<>GtP3 -z!Edfz}PHI}nt{QqMb@(kxPKhr0A68{U>}H;(G=lm+ -z7{s3hZewEHU`>@Jd@?dpZuFV3I~k4a`+Zi=8LbtA~zr$P$K~S-rI2@Q9+ULe=jI>iTM! -z5V-46n3iwt_fLt&8lSNJq05_x3ykYm$aM5n$cVNug}EZy-=a*d?X$nIoY5iq?IP7- -zC^4oVMh%k!0W)$|X@S(I#g#4NAh*ETZfi~#Mx@K!$nS5{N{VbK8$~+>*#*}H69;DlCOmki8o3apjqlnLt+ma5WW>Cl@dnX2Y(P0-voF?+Cc2m#m@ -z?7p|We8?Nu%=mT0%3dDSm=4iDP&e$loNQd>N@AvoHcoyHC|PHkqf+zG^P}n!$T^gAU;u1p8Xtdxt>3)3#{I0F&ieTlGXLHVG%8Q5qkp)WC -z6LqUd9#t9H}<=?lE^EV=HI;Cs998*#+>SJ8Z^Zre3MCf~;%$KB_8 -zMk%kleiIh?pd!ttvSIxhVFbe9S^(RrEXMJgr{T_vJvW2B^!=8haK>AaJi>zs)L!$S -z1+`)@mWA(frc{E*uosFeXfl7cl(DIi4ChgDFpYlBKe|irx;(@5Qpt4rcbtA(Xh-Cc -z%LTs=sf?C@D9)0(_7Ahc1aoVABb<-kM5pls4q0!C-t@a@2w^FhXb0mTX}+)*DN1}! -z-zeb&en!`7&%+-=uzd>-@<#bS8~f*zb}Uj^?RmN~n#O*$PgODnMDB6x;O14z8k7(B -z7nJ}!ssQg>sf1uA7CNt@74^Z7zTsz+5E^=C8!kTln|H)lB-bD3J@6l14Qtzi09rr9 -z?#4~hFor;>5n7GcE|wk-?73f_VLI8*IEseD!AFJ9L$K#bZ*uhCiDCEkoWGvfb}Lx3=mVp{z08yd0vMwOdk6$fa%U-f2~ENxn9Q}V3&0BoI6Ci3V-L5?@m3j)eF|8S -zF>4xxfXU$2$uW+!EW=pSmuDLOyp$sRuIA^ZARR0ya>{tTt;<2KQtwB|+T=)F@Dn36 -zRB*V-g>Z!Ai43c>dU;^Z<3xo!ww9Y-ho{UZ>Iu+UBY|N9E98tf`;U65Rdysd$FGCd -z5ehxO_Cc-DW)myi+>Qnhi~m*f^JD*jKWXoc+Aw<2CgOsN({=_Sv4{n*E2@7}1u>kL -z&sI#6Vo+`ZhLM+sz#n|*mfh0GM#Z64^HDDz00g0{;W{ar>IDkp+Q&H3eT@Ap#af6& -z;fs4`&RkRPC7pAOKfCcbani@iE(aK7C5VxK$9mCTw{D0lDv_ihiXTuQ7-QVjjb@ZV -zIuG_gYJecs_Jbgr^v_FsymT9FH92!R9{t`9o;u(c5DSwZCc% -zhlHo<20hO*Up%VP%fnL{59@{|n`aj6FZi~(q!c9m|cWzfO?DW<%71vg&;{11g -zduNX(+j0O1oq*Uq_s4kAf|Vm%?w@Ni&W|D-_PR|=N!fG|R3HkUyGu)xrhP1xfxH31 -zqRm9amEZ*axF>O=JGUN{Tpxrc8km^e9mjkr=eS+rIh2X4hUjr%`%te8BYlaSKeJQh -zN&P{Qab`b6_Ez~Y6aS<^GYyh_I_@3ZL3l$9n`VR;PMo_ud?wb;^GPe6eH^8k7mMTl -zy`gO`9Z1lW1)D${v3a}b%iAKMK-l1?uK7`29MY%Ditpo0UVjkSFJTrS7Sk_YHEBlH -zQ&kHWxA`5;V>UW{A7WL>ozW>Z!anjP;HS*wqqeZl -zVj7XY>OTLCBf0e0J;ciR -zSeCfOq=GaQ7@QX=wrYIFIf<@1Ig$FDm$jVPt)yHk@=${c9PX_kN^)d=dqKIZ-Kno; -z?NP?QA@+EK*^T6(t84pZ!NAO@gzb!3XUa1$>L#R9Wv~!*_%grDui7J@+N%nt9T;q{ -z%aif>ChoSyx|FY}GRlYI?T%84$GMDm%W^ES3`i -zcwHcS7hF6>*1aYvV@rNUAaR!u4f#TJ^zAB!fj45`dIvSpFzM;gNTCwK$W2}zeZHdo -zriu+=YD;^Z>sgk$NH^)6&tFEv9C#2%H1{=BD{hS{&{!^YCk?uw2sY`CJQ^*+5vfsV -zRvPPsy&;({0zG?_MFb49W)23JVKdc?e-?p{7#y(BM1>l7OB#gOHgzmTcR42#KIlp& -z)US=$k77q%xe6Xr_K}(EEr|ay#v#l3`IF$!fdh2PRwcdS>EFNJ^JX^Md|nkAm0#{9 -z`^N>^D8@Bi(pK;j`P(4Ael=HG+B?5i8Tsl|)oB5#M}7aBAwzNVevrt|!P4Uy-57~88-`DPt`%w)2pk!UF9OyCz>My4kR$WhPT?RPZ`ECT$sU$-IR1%~uN-NpVxD_oMdG4~t5VC!yWV#$6&_qf|lH5!O*9 -zm(-D-ZQA?$ktlGixuGFX{OBzZ93Oid|L@E`JL-DoH+@f0e>koI&rwF5; -z9KJ9)&6r5sG_L<&hRk+|z(&kx?JMDAvbcHxfCGQQc~ck`=RFmNidxX&!1PjS!}G`g -zFPz7~Qn+VXHSPE7(qJP&JLEgDzxC!*wkJ94YDhElG`H&KhpD+0|6k%HG%m24b3$@c -zsNm%`LC)1e)Nc!6v1CmmxB!AOt7T?dpx}l*jj!#rmih -zfFTxG=>}tBw|2tOu)QN0!^l_^7+?C}J^i`Azfue07vuBh?^?SvJSt!9fS}rw-r0_b -z63qGGqE$tPbB6EY*~wL9V9beodSngNXq@19&8aYzH#l23Q0SEDhQQ1 -zjcbDH=cpC;2lbv>1MdV#z&!yrh>GB(erGM&#Y#y~dbVx#qT*+Z-Ay#Gv|u7s#l1w{ -zJsf4`Zi>e0{hoVxHdELDGIqh{U*w38e-oQ*>Ts`-1qpWqH@g^9F$O8h2%b6a34#Y| -zq0&qf!oi)N=H?i5nyyk#>Wv0ooE;^fTomYKO_CyLgbP{oC{fm8H-e0L(La}uE6-*>pL>5m8 -zqbnh5yWSoir||LKp}(OL7g6WuVqVf>&Zxo3?K?+0Bq3XGl1Hqgdx`8AD1=?UXk@w+ -zZ;Z1=^1s3$Mt!TqMqm!8OekZY(A%ovV=*zT9SqqY>An7mD9!aQHoS=;wxlp2OjEP+ -z%eM(7&xUg?qqpuEL}@Gu0xqDm^(LJdN#VBmIY%Dz-MBumP@OqO6aOjOiwsULoqhsZ -z3gcN2t>BL_8L@}#v>-y7f(u@JxJ?JfUERh#WoBDy%6Jlz&HUGdTD18 -zf?js^^Hh+nYpX8(uw!w!ScC%YrWhu^Bz -zUgaHEnEF%#xA>Q*v5;634)WA5o;K72{iC^QPtVb(-?m+6aYCH5<*@cMnD-NS_dQv} -z!(VbBkxf9p`DLxqdZ^mC-b*KYe?{!X9VKd7QsYDfg$Ic+a2T4L2Clq#zL@ -zL>TGMv`0B*JzTP{GjY$P<$_X^siF_Zy62l8?0nU5N(QWmZ!TLXarCXPTv;GK1$j!0KZLVqtXn?@&9q<-LOr*95fh_mNJ -z7%85UBRu|7w}FX20v8OMs%S7tOgHH{9)0O6v5aiKvwsZhE{aR{_+Jv_9`XniB`p0c -ztL$;kQFDADhm=|gy3f`%f`JMr{~X)qLPSzkbNy`JMevDzqyP(6vp{!7*dD|>{=R5-)=hR2*CfM%?H=B>8BcSc>e0 -zm%fQf-t!Dp+U1a-9TmH1VeU7NfoTMKySiKAwoyC41ee}P{yMfGfOdEtPpLpoNiCV_ -z2~`udM=nfvf#-bKo&(r*m9YBadK3-^{p&V(YUPU>!y}Bo(~gFd6wsr|nzAjs8ard2 -zA6$h -zaz!UOR3>E@i>5N>f6`5xwA1}QZ^tk^vL7yu||D@6u(*B<>WUrWs$I1H+&0T=me!`NM4Ux6juYz&;<=GJ|$RAN#{KdAWJq -z%LfCxzf@sL8rjsVc<@z@k(*<2wt*ymP^FZZh%98Ar#dlIrd8@?wR}qv*+s&P!>GAZ -ztQ(clE(7CYvnY5F_?nkJ1gp;&`*ObYVEdEPJAT*a&DXuWA}QVV$vla3c7GNHj=D1u -z1_d6)VV}#;k6p_;c~^Y)Tsd|NhMg7??hX0IOj|{P{m~CGKwe0~cS$E5WNy=*3`u=? -zX-h?$mMSv`{tq;>LHZb9IED0LRZ&dRwX0-P&nFY^Bi~b1I6D?q-5kL>}U3uIW-_6{meQd(zhhpZdpUG@#}d -za#olo5t8Y~(YR)P@o-+Dz6-B4ad8@|`1s|!xXi~DZk(FO%>x=C<36LrOl_xuIcGJc -znWzZ+6g@M+_8g08yEZ_Yhex|NKO -z5$i}uhB~mOB-20Oc*-e~>s-+5twcpn>mNHg%^5_fMe>j;eKE&+1_>@9!uWM8u5;W} -zFrFWRJ5^i_%j;po0-Mo{2^-VSQP0$5w>|nlQfAM46jt|Jp6Q`ub#;e<>-5?h61Otp -z-G@*<&aS1ISHDD`Ra^=4E=Ll_6W}TUDiNh>I69~8TnVepoIs~1IW}bMfu!kA0I4(A -zVz7bb&c{+kM``Fd*;lJX2I12NMoU>*!;e$p*!MMq}jF=PJkZM8V%-hft;cB`8 -zDs-PbhH^;Q(2V!D*!{i`2`t*&@HO(9!KMs*?y{KKdkNCd(2r9PVkG4v8szGRwOg}% -zZoFRle-xd&Bq9fPNrp+%-vVXE>pT!%C8tl&v%gB(x{+ss5NMl={8kI$Q#eH$-zcrb -z@-sTE?C}9h0Cr@w27QAG3U5#P$Hrw=l2dGM^AP3{GHe6r0tL%|Ea73{4q>q|ZB|`H -zZ9h+)W)u88p{4adn1e7)s2LEhFG_BzNYlxrELr^ANZ=&_T6dHK{7jo2d64UGRJ^o~ -z&md7d5BAOBV7Be8v^lG&?6$5XG5K_#k%Esf5`A9O83_(Y6Plr-^~$K%k{^_d88|aW -zEK&KZwb?UG)aZV~XF2GPWr-W;2P*wh*kOy6XZ+Q1b?|1+9<*El8>2xR^4Srvi`dZd -zIG|J3);_(~fGem?Jg%&6B)A|{i>PDZ5d^y9xc9cp9-)!$cF2X)>_>GJ^dN$H7R~y_&@?5z#5OYVtIQLqglGNkjz== -zI7%PR%fq*)4Pz`6aLf8b!YR;@4Nt;j=?`$)c@(Mw@T)kQ6KHnL$=yW%_xWoiDp&+` -z481$V)=wuG3wSonI-RfZ6UW=?1ym)^rNpyxA7P>Lc%ha4j%tF&@C#*?0Sh`cUySbm -zM)|TVH8L!D2rJcG6}e1xS#i^eR9XA#p$pG8Og3x?P0+QA-3Jmt?r(VY*d5u|2Cu@I -zZdBHFlM6U|-JPng8sETUksWtus=Ot!Sp-32KuO^lMR-Fyar|RyNMFX8iO28GD -zy5Zv{5sc8%$)qB}YiU%9A!@)#5+LE7$w+h0@N_6F&OGP1{DXz-D55i&Jc@% -zt!-x2aQ0yXMUjgUPh?=ZPX%$$y?HORb{rDi0buyl%I~%F3mQ0TqraY0otugoPlhNj -zGsJ!35!#Jnf!Zy_n>M=Gh7d9P@9y{;bsU -zWr$d?kd9c^wLwS`%|&3`t4W1cl(qcQ+Z~BrXl?4@B^N&62;Xbt$rdcq;nj&UMSZe- -z6gC&ySy_eOXj#IeCWy*TOxSA{vMZHlTL0ohwa9c+wvy0@!S6|<;G+0|{t!ubmBOF6(281IDO}l_BIJON6PLwwZey^Gnd`#* -z$|U*)I%vVm@Cvv0*;>?gsaY{+^`Z&1L@L2nk|ppr$!s -zR2-1AN>5f0aV9vcrCJkjlXO@SR9lqxNE0iUcGC}Fust9w;o{`(ts&QNH3%uP?!wGAgd)9Y+X0ucnuH2q!>(g7S8 -zyhqo~;%2QMRXLAD=LL{kGf4@bWd9sum**Ryjm;u8c?=X-<%v>9;%W{JPGm0`LYV{a3A+VJ~eq(YOuN^AbtrF9AOdapGI$m)&s7lV4yf -zOwnz7GV33RvDWo -zfDZX98@lU;$#}xq0Fu}9gyUN5MeSJA6T;=z;CupPJ17=|dwjvK$gZLhUD?d?8>z+hK{K!WS4vai!YCCXnOsoQi+8V)YR`3KnONJ+U|rE){xY{9C`IvJ -zI7|N7078j*zNIXq6?B{q5?k--U7b`Wuur9K&Jeneg5iEM43# -zkv4@|z7)4MKa0fai1QZOb1CgZ$GPY1KzszGU**Sud!D*^$$sn-?5b&w -zQpxu1O>6K3C%IW+I(40@;4|EBN_#O|FT8^29zI4}K_f|gULIm2?w1Vk1Ft0}d|;-0 -zsR0%D!vL9a+bb9$oA;iNG78z$Ff}>vbGIqH*&1Ef`TJ1z0;lI$t?JF8^id|;CVW{| -zOQ<_wNT4@Z^v8Yn3_&MeW03ge5WU)O=_h^{$)JEKgcWimY!8o=&i`j3H&rK9H}3oOk#Y3=sJJF*j(JWO*D>JxMW-&xpQac&YXJAb56mMS5C1TB6_+)9=+j1(#GjdlI-v5 -z0891&AXNG=6LlWV^$Ph6F7F~2?!wJ`SXVA^sM=eWy1(CGz{}I%h7Jnd&yS+a7jD9X -zTv^%}LgV#dpLWv!+;>UMt10W~U?&3ZpS!=x=Xny~9Qhw6ogwR)M6XKQ9Rlezlg#&G -zWvC-;|JB{ME9b24z4sXZgqw0yEx0fGS`Ajm75E;_F(W;zIRumDFZ^IhOTagh$YrIC -zzA%PWwz0tt#TP{$)YZ%+bK3|V6QtEfRfAmBJHT6?Es3CQS3S_UW|5Y)54$+6zso?k?5m}ZT^z(ZylXnT2Ms7XCSf}^#I8b -z>f1T!YU@3G_~u>4<%RjI6EFOJ4@3++Hsbfj5_y$XwEP#b>V{8ZjduBDPWy9RCyC&? -z+VIi|uQbF`v`bQ_d^}JwJQvj67wx#a4Gk~z-!+~8<27*1Kz~*8Bp&x}dT7jOf{#ld -z3#O}Nc3Cxe<8)zzqYJ)-nRGEpEhl!OUrr6F%S4CQ=dkHpNO%OGYl8p>HBD=SOAk^j -z)Uy)yL4gh)_z@s>q~&$^D(mRd0kQdcb}TkXqUOh6m(SSksqFo0CbQeMSSU_T{#y~H -zfS>nd&f47_@6=aZvsMB@)W*o0j9&TEwhfyNWl^Fzo2O4KV5Nfrm?^SOHe_~G -zpp{ao_F*!F&jvo0A^z21R^x((eh12yPf^6=3^^DiAL)=Hx;BeTqzvZbfJOZ?dw_qt -z5^g5?PRxcDrfwtAyRZ3-lXiy*J>Aq(H=Pl$uxj(fiYq5mH5Ve8@Q^^@3T5e~EgPn9 -z-XH&}HhnYr8wRF>&r^|gbbP4&;hu*aQocCsN(0L~?t6c|y7_u(8oJZYQt^+p?!i5WZxKv3$ -zR@t)XEi%Nxb^I~Qc0%zoYSlYH&LYL|s@R9`Bqn&f`HKL01-kcDypr{FZD>V4&xCr< -zuuLTGe()QItJmWX1~jqHRaluWDp{q!@M?eIyYZCMnuG|pWNEO%UT{7rXm-j%5hW&O -zgaPp}n3~x?hZwuGP#A$csXr=46@QDjwe2gPPokZoQwo2Ss(%rG^53z`e`3QW$-x}< -zEJV1ilz1n#U&s8bw2eOwW?}@gK0dANS@d|ocRb4TTUnZKyk&n*H0jp!nEPI|<1qCN -z8cMAJMeu#m-`2czj}*nmIKS`J!IY*UO6w$09tNqLF0l5n`h;!nOZSb3`Hg&@BQEkW3kE-cK -zk13PY3IW3U>b?ML*A@zZ!UB;+CST&=F(p2PIIPPm7&vfe8fe+P#bm%@-2Bttca_ -z$*?3s5VUF{UJH84A+9$cM%Cq49;9%ae|Gh^9R@*LNly7LEJWN;>J`ABcG|JLsZG^? -zHYiGJ5Dm5i+*ZM$Ber+s8;$8m61(n4eJ=hDiF0ikh_`2UySnXkSfS -z-?Kx9rc%dwQskjhQmk`&Bi#r$sE-d3x7d -z3=X>FBgI~M;(Vity0~%>8J*FZ`nPFpVuc~Jf~iC>`~k!6=SBrUCBb*6c`x>dk7;kE -za=L)n@kfRH?6`U*;Uy#-P_e1+oi3^s;v){g)wcKXkeVF&cqK1AE0^gxp -zqu9)-k1IiAuWL91%q_c=^}6BlCjx_5J|RUacJ3KQWq%@G$xe$-N#Rrcr=##+8)(jd -z@qNb_+1})ER20&`#Sn#+S^<}bu=k;U -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 -zKK+_Msp_h1W<*CF(dbs8jr#_k1IM{pp+B5zE -zp2}ZU;81V({=2C|texYFHOFg79;;@&O|y~Weoh9}D^`OWwXUv3M5O3m60%@!V$<;`v@VF~D!-=Gg@mc19i-oiC(h9xHW=9Ke$Ra@fVjwy` -zc5ev@7Mb^WCETxMqigD4QD>rTj(pLByzzH4BI*I4&y{q2F@kYh0Tl7sRJlKRRK1pe -z1x7;!!7;_aIIU_G0p^a$vXz8g_@OwDVcH^p$N#P+YI4cNKGB_tTAP@)o5)sF&NfifZ=G>SyaCq{!-5AVZ -zZ1^}LoJzs$gt|V+E%Ns%vDgPBB#jdR^PNi$T%AP~(mC!$l^T33=qBsUDs>3EqPw(( -zuaAa%ox{XfTh)(z_69MZzQfRSBc;XVt3~OzY}1As>FkpyQf?pQy?{RNOy$Ch!q!)5 -zkrH{4C8YC`0+o^Pl~WC5$^rXqKLj?}bxgS@M5h(Vct}1D5^+3o -zqN@@Ye_z7XIPu@yCWIcYLHvEF -zhu}W%ujYrquTz{6&8G^{juvW>pcfghS5@pIkD^zV7S=p%yaX8~q@Z0W#zl9R*ARCd -zH8MKbb3!kruf>ebdB832VW&FN-$yug_~80(-y~T!naAnS5q!NbJVJw#{H0l&=t_3z -z41jpRf>5R|`l3d-$>IH^-=R&BlL~%%?L~U2n;XS-7(kV5g38{TTy(gOg@Me*#)tBQ -zkB+rMjT$Q~uX#Ep;1>`x<;=iG3)NR7_b=tMeyHZ%=o&#k`m;d)#oR-xRH@tyY^rdD -zU?Li3`g=3LAp?4%5D7_Z#F?vTy=g(7#-d(pHa3c3V3;}TBa5{c92jy;HKT<{b&F<= -z#G5<|T8Lx`cEOxKqYh;E<4<60Nd#xkU!lW-BJ`|QOZGvW@wB9${0j;}`NPcO_qbUj -zfj>XoQCf}lh0(-}{f~KuR{frFgLOZ1sHhd=ppGs=G4*9e3e&XsO93lP4AK^c(N<1Z -zvpyW-jWTgU#wkuqutns}U?wyXK -z6T~#9uZl14v9Ke9oDogN4>@JEuyKKik%r{h1jR5@DGtr}V2V~K&cz<7+#AvOIe7pF -z@ImOM(C;mp>`}MQu9U3}_2SV29HIhp(ON|FA&yij6_a#UEQa=r&1HeNy?`AI_@y$w -zJ5`Vwd1)tgp}_#p@1EN%rfUyGp%1(8!8-xcO^6Kn$!%$U*m+o`iK3njA~(QngG>)* -zAh$tB_XieT)yEbN*SJ$?q*Evp>S2sy5OvppMu^EpC77`tW$Hhj;Iys;;3!ZduDe^I -z=F0Pv2@%;m&&o}$>5XY05cf<{S*2!SVt(QHfp}WG8~HbT@;#Xia>+9eSsy7I3WNLl -z*#@f!X0U>r*mO|jRAN|D(qwryeU|^4-o5qM5|p%IGhmWiOOlADF(Vmvu!cJX3=nz$~v))3mNQpkl~$#T`545xy=O2Se4HV#7A4jqFM-= -zEQenALoJhYeKMtE{g%YFR7c%z4J)c%E&KVqln@zC=U)0u@?$|?bhn?e_w}XC;?}!r -z@1V|0P8YJ)hvhpCS -zb2OpDH;19{*{5s+hLJ{wH^I$Q^rQ3f0T2Fjqn-*|;vw8G_4-V@+<9pVOlJm9`ZpX7 -zbOXfJ_j3G7)3*`|-A~No`jE?!QWQSsRM>H$6~eq*Se$L_d%;)dnOK<~>p#2`O@H6) -z{t6J5T6oLn1}o?c!r~S#!xeIz{5Y^blQdW$kqrqRGc!IOnZgsq>}ur*#vHazQ4(9smywkt{Lk}9=V(4M@h;_$y?^vbEdD1Od73O+ -zHaP)|P79ojLE3}}t@?O-t__@vDsHCAl-ur_?_A!U&JWYBG^Tp7q;JzK8Dda($?xS( -zXkAsTorY=!oI;uc4-VZEciTgI&xSD0te1R2ah~L^rBa_@=Uico3Z3`qJ*+_b8V~+Q}dBB8ma|nXc7F}F6UJ^ -zF8zFzh4n&QX?dd3D=eB?ihd1`0nWhzm8g(e-;C46WU=AeO4*_{Da$rCjG9mZQ_|NtIkru7{r2uB*|~DFExdGxQBRM6#t##oy(jPE -zoBG#gCqDvHAGmK7c@lwHhN>bDQ|+D>71j50$bEJ3HZ1wSr(&yJySxmAQdBe9$(A)O -zPn4on?NfnfQ$X>T`oo1QW0S4X)5oLqe03x5PxLTvG5=?WI9!0Q0Q<#!M6hS= -z&3=5qflAQrbL}zDzcT>Yx(z~?dCc=u39ZAc#BmYolz1eaZ=kv9`WF^3q(b5aOMt;(+b -z7&f0x)w$Pa&b0!-{64j`QJx}6-0bT9sS=yBn)kCdeSsJyuYN-PId3%P=bM&c{4#VT -z@)}=Ax#J4j -z!dwn}noO}x+pLtThMtby0Nwi;HHXhD)zVAVH~>(v_- -zO+zj(jp^r3f{Y1AAu%wlzR*@|ogJo~+~u2vG_E=V-QnTawd4yyqU3N10e?y$$$ -zzAm*(RX%|1vh%rVqL_+Ay+8@zIJ;9~4M~9%@#dV4R8$F-XpVB}9Lj({wVqDj>LrZ< -z&un8lkgls;<3hX7AEJ+ozU8smDGyDG|K`rod5!S4s_7G78*@^Y -z2%dBxBG0R7oo*zG5O#d!Lri}r{O#9^o3EwW@h%Qw1<+uK+~@~y+p_X(b_dcE0dX{M -z0w!rG@80;{gD+4Ecw%C#Y;55`7vZ~H6dy~W9+}f29s=<^51N;>9>JFV-H7)R)D5!Z -zPS93S@T$7vC9fCA*nP+L6lqj8ewX_ZrYA6Mce8}hxT-V5a_WLJ3XRN*X}rzk?Dv}O -zE~XqnsTH^`!7vyNCNk1y?OaxUT6EHAONN05Uu}4^jL#W#E&OZoR5I(=VD@{$EetITElVt4PF;PO-m%io(hScw#nf5VNo!oz);v~s!>t=WO;C%`1fWvf~7 -zI__eKDL+cD)h|36Hast#l?K=BL0_LVIs3Z|`qS}Pcl#m-Yuh~lH0n?g@L%*2*9QqB -z?@Z|{_sf+59`KpMWhB%6`6mJhRbid5;3#MQ) -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 -zmK9WDIl~TOl%L4&-TH7tMiEAn -zhU71_{ZAxX5pF7bPeZ;B&OZr-F9}BhoCD$mvFU?Uj%rKqo3J7ne`}oAqjt?tZXkF> -z=VO{-_n3ajJ8QQPxwBHBj)%R|#VPNK&>FP-jRfAKMmY&w@;o_ -zpJIQ=(egWF14jG<#_~(L`t5e53d}wWCXG&M9^CI>p_Be4sJ)uIvADFO-Y*nICcLz&?2EP&}uWxmFMdCP$x6^>h~SxjAd3ut#^RCW-S^= -zoAcXR=y4pwhzhGml%NB`0@Qj{$fvi3`F4>0Afd||mb?TmR`O=T13I@T>_&!F-OPc4 -zAf-bM?}B=JT39D^Fsu8^%6hzU#+nVH-?HdTgw>?(mG(7BFPWi?|KivAg8Wl)qY?wc3QoVhw+mx4Nq{)NAnLzwWXv&!1(fz-$HwtUuY;Sa@lv!1=g#76x_ -z|7`D4t-Se6X%V?`rNb%}P9kLFtnYOpPjJEtsou()`|VTGwV=ALa(z{*hrc;@Rz -zO;B8Qhe|Za<;EeQFI!8DQmRS)(d@WT8in`6?IZ4Q#)!B=w2Nu984hXgC3zW-m0gn_ -zEwBS7vT?9|XGdv^eyy`S?&o=X$J<)cc(<4&5Mv0bgz7{nEA2|?XIM@i|5Kh -z!@@3=rSRC>@#TA_o|ib80YnqrI#wA(mWLC3MYgcIoj_c1MJ92fuoBYT7I@yiJ*kC9 -z73kh`@S$wuwbsEi=JS!pYeUK%*o&;n#NsiM2T%+8VWy6btz^Q75yxZ<^zIABYl^ko -z&NZ#u4`+xGLIF^Y!ah{3$yv_9cf-X}s7CqGfdWRX1i^E!)AcXOKQnZSRe#@l9C*0L -zsE8u&8JYQwJ~Dw$IAJk?UTFTtL_mnca|)GaiYvG;aG0K(Q1)R^6L;PsJmG!Q&kufJ -zxC#Gr54qv0nafa@ZK~jD-qS2RxH0o2s#uArJv4{p;4fyIVVhpor}5On;=L>9{E09RTIKbZ{bUr8#4U&;5u_&@th -z@SIKTQr}sC9Da@`1nMvNir1GU-l?53(BVrAB)K-fwJYjJe5Iw>YPo*(yruaSD@~L& -z;g5CSOaAY=U3?ZjAkS)-v#c(b*%@cvrjy{Nan(M1sG2gfvaAM2cxBSqyNnk4CBjiM -zK@TyWRCA2hpaKjmcInJO=m5Ru%FHA?E`(p -zv_|sclZQ+^5@51?pqzibYQ>@CKNlW}t=!z3$iTv%lnv7_TIY^3oa -zq?|>cY#U)fBJj*U**;ph`jkt5@1^Y>kqlD;D#gt?v3jj0x4Xe0f9@@OcgCK{zY(_# -z9fe%3Q5dhXnZIei29Y;$yZK@_56**!6N^UQZtBVFkfT>_ -zWz*3Y8H=sDMMpBj*f;7~DAhfq$M|sTKzur@^tICNsY&X_?Ss{^QpWCmDBhROjbmXf -z?5Q=6+&!n;wsaUT(OPniTD81x?k6$Vv!8E&fs}&ih4=PPx9KOpROt@UiqLbMO^m6+ -zazPFz(B14&@Hu#-p-!Kcvc6O1rYoqORBDoM7lIgc|E=GU6^L5T@E8Th=DE0tY50pL -zM!g#l5eSV)W=Ai`>*aU+2Iz!~le#zys&1qA1~s+*3Nd&aGhP|0s<>2-J*v;xWy8Im -z86fajYOZLcYuo -z8;5yjv6bH?5mZ|*`ou}(UR=;BORlawA{K6UxjX!Uf^ak}^}EQeyA^|Xv!e8LCW?U{ -zuMTVTY|QdJEs9NY>!$`Ti)JBXGK}OzKN@6$_aN!s<#@ucN<_G8?Q81!BO05|U4qQ6 -z0c6@>RRbGZit~~}rOsm!5=h -z0@bG<!5!+@ -zWK%sK!SAn{wbxYnby_*gd=VDA)CG(479%a2Dw9hvKIYL12v(9ZP)2IAccG>4`gjjD -ztya(_{vDf3VcRE?{C}_%U=V*Ixn`(Ya9TGmL*IQ5b!A*}$Biql$=P@UZIWCvAWk9EX;Plz%>KDZD_q>|_{m`#5bA9=%(mzA=As -z%MXC!GG4lyqwP%+r;R;oSiTTUUDX`g2Qact!>S7aJLr=b_qxe`$iQ#fJL>mhXoUd( -z_jH7YapQSWXug({jrf;d*^f-5;+9I`py#2v+!y!LdW_FhcjEW_o#Cs0e0*k|M(@e*E9N0G -z7%;yNKR?>Q9gK}N&PIpUWyudL6Q13Zr{pKDlX~&IoXLF~zS67e9o*zEf2V44 -z)js6j+4B{FP*F$e@7vAd7S3Pt>8c;-zeJ5wyfj>5H7pF`ros9pX+bbuP^@)p* -z+mai69Tk9nNl#?ZulI(jjzX(&Ux{is#(tv%IPEX^^AS|DV~X|uf`h>P$W`JOxvbC;Ce%w_MB)HLZz@;1 -z*e1TWX}hS1>OO*e*nM0f(A&PZwO&!l%Vkm0;UBV}mM0MpKc!B#kc9SYS6Ux+j8YXk -z+#;R-lpHjr5KozC#6gME-f{ -zfIfY#hWbO&A<%*nD5&`_;|4j!kUo{^$|2T&|*retk2uOOb?;SonNgSm|3dPL65RSYxTcRQ8w -z%M2^p@R{F5)TiAknArq4lg@I76#}*xsv?H|qQwk(EQKbj8c)AKp)l$!s6cqNt>HO< -zYIOBmmW<;{Ae8{0*>39Qrx|?sdVR|YI7_lwsEKZNrObOv@2npAlzQs9_Ea)|RWobb4z?LbspNttsW@m?=U_e?g~M1|_`PraZ~Dr0XH`qzo=9ZHZ%$N;}U_FVn`{8cvXNS!DW=>jDTrkwD9y24Od@V%WW -zJvTrV#YemMKpw8{Ge(h{Fxj|7o0z}N9}liIe9OLXG;4-gUyiU>3AIu$eMiVi_EC7( -z#CX@(t9aw7s8uYs`j4#*M~kN?b@R*UMLSN5i|;gteR)SYB#!REJ0IqrA@uN6jUkt( -zhN}FvCV$ut*mQ4=ZDbn?)elO~u<*%wv>Yp=^YB5RM}J!1^>4`){qLzjU9qw`Pk!Dr -zUK>sv%iJ|9w(ni|9TM@Fy?}k#kQ$i#VR|bnv1grI(sn+c$j4t(!Xj0wBt^FLgaDe`5ReZ?kVAEI>Zc=a&0NC7Car!(s7nGT(N?>-k)-c=^ax -z>0i(WU_^#j1TUv=N-ybunLWM!WOTbuMe6P{VI?{L9Xi~z;7nc;QqU#oQ@<5vwqY=L -zX(ESjUDD+In!JHi@4KM2{4#`A|041YIG^0BdcB21izL_qvB70iVcy=>y=glM`W3W) -zMBT#hyJxW2>f0yH8aTDoJdI~>Ps+E_>KHndU}fyW?TS{h0=gP#o%r6pw6dZ7p~rUm -z?;tir`9JADTBku?+Ag@N6wouJmt|KH@16bw)jXI>h_f@^^c&uuZ;QZ+dzZa_rO=$E -zYe55LtkA`0Qgn>t=*L8FZAyhTIR}Q6s-k&4(*q+%-mQfDOH}tV(h=@pH=5wifz_Eg -z%x$)o#4IAU++&aF(u5R2h>sKCq83P(~Dh9iOmG~b=A#OhozMq<6x`K)mV -zgnb#>&i>M?BmZ5A+x2q=OREZ4pK6fbFDj-?FX?-VHjgj(#eIf&HDdb6F$!JyKy3&o -zs3gP)Rsa{+rhil%x%Z3+nJDWZunyM1Vf8unUV3Bx&%E7&p?=jAVwY2CVX9a09>41D -zcQJWq);G&RNpuDZmET7(ZZ2H%L>-mV4Pp_mb&;%=2oU$5fAT+?t^%s6r3+IMN{1jw -zwB{NAI8KRr{9-6f?vLM|DE8Y*I+ -zeBE8YlTgt{&g6Xgd};zGvBo(WLr4`jWCk-l@&PhDulnC6y9#Yb;xtqpd0AOIi%y8Y -zgWzlaM`}w1E*wzL08Tet$gLihO -z40SyBHnvnLsYGddjV$HlytxUD-hu1(EEYfwO@ -zhW&!hUBPX!PiGUEBGrK6n}lLC{!tASj^M?U*rL#v*w1d1Fd8qN{7r(Pgp#Z+ -zRCe*UxlGJE!vE^HqwX5_4*9w7g>_C6R7QUAo*00=Pf7F9QTE7r&kPbO$KZYPU;81b -zZ6z|dtuV9`7#`0ImV=XS(Ox085uT~ij!M$Ts4@Vmg3L_8pG)nWy@;oD|D*$G5S7}E -zHZ&iQfA%{(5%p$loll!xh4Wn>ynb=Hg)ZuTxF$~8eXt@<^LRm#LHsOeDQn<9@!k3% -zr2D{$KXo$}qYcADkWfly=u+@$^V-9|4_(H8j2hh|PB_k)AT#yh_jaG3hrw$+kwWdP -zRGR(_4?);2v|ss$G@G-?>AaX;EQ@?d;U`ETVFp!2s>-4-SjWA5I>SJb0?!>El(m~J -zWxq&C4VPcm^orOB^WUUpFexz&d&in{V24a>*mF -z#EuMp=^TB6mGWacCx)B#G|DjV7G(cl!4%dh5w@R -zCQlpFn^kU3htc%~#r{7qa6J>1{_kj0--Ifrep0DE?5mR``(b6x7PR&qIr&3mz9whf -zQ0xcdJ{{O^x*-wKJDuzK1rz4C@w#_iXhCvpxny7^-UkOsoZ7K%!$MJm3C(da(5GvH -z4K_64qZ2DyEMa_#Ko6&UyIlYMjUO!Ku;ZBf9)}RAW#fIE{5_ZTLXn7XQ9^&cBK%~di-4ft{N_s;XNq0q8IttN2v1TFU1qw&#;eWhRd@rkbzx&&elb?G=U -zLKIenjw^gFx1-ktyQ8~({NExr2{crc4rxesyZyf^cHyi$IZ#mC$ir4a@=!_TNjJ4# -zI->}!lSG};3#D?{Ww;v{pACXo#OpF?mNWy&<2jG^U`=c999}&kR*Kgu^T7>TR2G7y -z;C@%_vVtBPTtp9jIFYK4VRB?qWSrJV^Y57o&3tWBGJMlegglV+5Lakn#J5)!0fEmf0|dU&c+oFuI6I9(gh>CZmlhvTS7K|6-v6rS7lQ%p$X -zo#-04i1xJo7YTK}v!t{0OBMVORYw9>&HfP)T+>SPhu@!rwB2F;B-%}Fuajxc$ -z?5#25N18iSaU>2LAimOyn8{7|Hw1@Cj=Jn^73cW*x6>uCT|+v$__Kvlh_oF^FdAMyGQ8DxstFtBhDoQ?OfQM-2M^_-%`J@bHVs-)RQ{npIQX+l@e5Se4?Yt~o=KeJW6{ -zoR!c0EMl9MVkBk9JJlp7x@WG9g{XxzP`&G*nvqDwUlnuPmvaLqsMO^2{1 -ze}RZT=r=-ISPzvecWAAMDA>1bc&oqjuYnO1z%GMc98EwV?N{GQvuhzLnmm4TCq+49 -zd*8n16{1kpHGhVc3yo|UF+ZLnr`&ZyIPQ3fo?MBKP_sK&=Pv$O%);4xVPp*Gj2eVL}PkRIhZdf -zUbY>VVZof@5RY5v9Pu1on)7Ups1Br`MJz?55Q7z?V}#k%44bJiBY2aO7_UZL2}Tw| -zvQR{XTN}Ki?mA%lI_=EP^5%|){qXDa7{~G1?{#o#Jjx^Z&K;QtxSn}}BmRQ166Vg$ -zP}x^T&YmUxQsuIoafHsKz7zM+T29U@2HUkV+?f^v1fk$39+C7G^{%;joz4q|cmY21 -zmako5C%J(1Hms#nPT2$FnDANpKAQ&U_CL{G7*3ZN;GsVGGEI(;Q=6VFH_5n-*v$hR -z!$C7M_lmO<`pH@6UE|chpPj1T019H1+4O&f{`rXhKVK6Cc!aE*<6jr)MYF-fL3S-u -z!Kx1mIdjjU+e|z&AF!u?^8SWp{zmT -zB;Kg+9i6~wmhK$2oKY;VkZVhIyQ5O-MN>!>)*}M?OeOyMeLm?uwlZfiCx_wBt$DpK -znl7@Jp$VU!2)(CRpZ~i9y94@1^JaAKcb~cD$kzwku(&z!$)j$mHLLiK&;rI`<7K%QV;ObuwJ}+glA;jj`8)53(MCd;jSTzA5grM`4P}K>u4m38eu~1V9>j!OW8Z` -zeowD))z`Wx+!+Z^D7lQN$a_^WY -z#Z=J~@3%@#m1wV~V9wP(Nc)#TeLHo0xpMN$m$FDgFU+@^wam}te&jgzJn0zOkJ3wp -zNvEPq$lx=faKHV6az?xVl20Lm>QVIRS{(1MF6WD3j>ns-!Txu51Z3^N!WO82(P3X) -z1mmFWG=KjOSajjA_*3^h%WFJI#5NcH=$Z>uy4Mh%E_xhu^aT#`V08 -zTj>N)D7;Mt`T;7Lg8Hdo{sKr;?A;zT-@4w#i(t3-$3SCGQ-i;YZa$KKE)bmgI9Nku -zIquII3WQ=8o@`ym2x}Zgqp6k~<3}@&`Tcyc_xN{{B*YW|kD!T)?6v)N^wG)a>8Ge+ -zaYf-VRyKwSR$8pNTFs{$RUOFlAS@X5>$KSaO4Bc^{t;`n$ej9d1%#dAbCDUGTS@P< -z(PX}s&+oPrecp6%B_ik>c(APhW(whZV8*kwzcIL3#zqB&dDX(d!d17uB}(URlvrNr -zz{49)8aIqKvA>ckVkwKb1B~eCPQ+>aac{LZ=fqG_PU;VPtYN2UUGZfirdrvMpdxbF!mZZ(nNZ{M>MUFz{2moSF}dAi4f -z4e+&SkXp2^v27uLupVL0;K0ggIgHURJKu-MLx8O}vlG3+A545_$4312@z?ae>eDeT -zdN^B55cqNy&{tVNf50#w<>3Ve(-q!Co-;M?z?~TJECegL5g>dWw_>ZO;8%A}PK+Mxqy}diI{*D_TeIw9~-ufsoFcvT<7U)g4H= -zoc%lQyIU%A(RPO4dd`2zTVHhazHFG32>LbRC|*H3Ur3u~5mGxyxA=z>rmuq12S=HF`$e1Gocni22x{{%L%^x`q?tU*;w8gOG`C>vp -z1b)mH3{!B)O|>WcF{n6Q(VvHO=S~icq~{9T4n8$wyjJW_Viruvf^#RmF`M$;2x@qc -z7Ks(Qw)$3JNlDFEqZ(C6Nbzj;Y8H^8ltae8g7TwfrW7B|Kh!Ma3(QC~Po+b1({bds -zJSToWwTNRP{sV+yd5B_p>r#x^H1x5NHoR5=3dho3e$892R-?cvTCYq>7Crs%gaFK~ -zwOU?_F>DNz{-5{UbuA!itDwx$zRLS@#GF2|_jBgr_yw1gi -z{cyxABGEqs?Id`hefpgM<74Dc7KP?>cEYi+*l{rg8S_=?7I%VI=I4)0Ek*oR05p7e -zgn2_!a_$ZS_`0-?k9jz9ky&P(IH(=I_=#6TwP0aD7p!wnx^K*0x1xijFME!@BhEs?u-Vii1 -z#gE>w)V*nszD*}hoSdp~Cwx2NS5shUeE7z6Ww3c_^|`d0zsG<)E#570&}LmR<2vg< -zzVNG|(KLGO;Dt!n(9$C*CYN2*seeRoBZKyN*k -zsFt1TCY9(f3dOHp7R(n&cA>`C8R042lGkzkb4u(#OY}g`-9HVrGeC@EBOsbA-MCQd -zudyDGG4YG?+UN)uX0)l-BfSU~j4i??%XyQ=R9dO|;3nI0*h#Ri=MOd3*r^%mlVLKo -zqU|od071ur;n*{o>wpSsayuZxmlj$w=ujGfh4%HWQthuOOV&;N@Rwf=sM=>gkm7dQ -zn7wX*sn9XtseESf+>(BWq87~P`{HM*aIT9`9fHo8Fm -z{8=KSQ$|ph2leZx1T#B!(fIRkBwU6BV}sgB*Hc|9^saWHvNH6FWwHaQqoM4oWpCS6 -zs!!HPiQGrQ=|;CvsEhir|Ml&eSIhdV1|E^{uaM -z%!-I7BR3a6C~$OKoImuY&f>h(BE6^<93eknoqn9!hCM0geiBz}w7C!Yiq)slBqMQ~ -zzcIa2Ine$Et6q&dC~|#!Cp221RVkkhGqs%N$d_^B|Lv*2(a>{R*FbS8e+`a^%6^Cy -zRyfuhDE7!=puW{pl$~K{1v0F_&eL_AtJFUo@Jt+^)eQ*KK8@mZY~qPe0JtANR>;(q -z#);v|QgfW@O7}SbuNohSd)n>iLB?H=yKEB(uBVG+Li+zC70H0K#HCT{Ux5y&7Jrk# -z9c&27bAmHbgQ;ZsE{rgJvCHv3GJ8-;~p3Ca)C}p~BD;46}bwbv~3zKuWG#I|Lglm=2tU(QocwT27 -ziK#JoE7+Koq(&3N##AJ!#5>BaR8YEyJp3-yYxl^=QiXZq;M99*51K=pb~N| -z(i98fF%nRg9Fc+m;u+W>!sKV_h+Fhd%SQ*CIV8fRL-9zyM=%&6pdQ7{RKP5rI4qL= -zJ=Kfmt1^kx-eF4BV-&@fw6^n7n-cf|jwdP9O>s`{Yla07K3BeSQ=3BgqC5W%p8X+> -zjyY-ijIa01@}O`TJ_=Sm@I`YXNrExGY^W8Z36~?hjDq5Z`tq|1Xa$m96l>r$hiYKXT;sszeH}nB>?cFuKewxQw(MICevf8j{ -z&+N0cyR<(jUe5LB%${Nvn+%O{$Y%I+DZIAUulSDg11T)}J_2xcQo*Bwxn@z!%! -z93U@UgE#!FjiB|yLH-~m7t>K7Vw;_`#WYSFBN=ERzva~E11CW?(`8Xvq=ji;&|MI? -z96jDo<&LMNzf?`Nfc>o8A{Zh5z7A<d4*Z^!bSO*KDxC^lv^zuyau7%?f4aaTLQ_rk-wdc`^jPtL%}7kZ -zV3zp>4x$=ebVM6HW-v_!b5WcAow){PB@ju=GLRI&7UKUz5A0V;k`@oj+-#cfX}8c6b+05JM?sOqdV( -zPa+VVDBuTOoYi06fh?F&H4BwQ`9p`_>@4R@9`mMYX^dm$iOE*BAwuNC>@{r4<zT&#SYIy)a_3;=Ehajy*1z -zt(r$`?(n(`Vk~sXH2xblMjHoDM_E7mpNv|+coP#0v)wt*NO3lpVJG)|gE=w=XzjsP -z6HiPcKnua?`4YKl^hZedV~}Jl_rGHLmU=ynV1f;^G;-t)MV9fGpIIR9@^yZNH*VJp -zqQT*)(Z!|Nu5oLw*4u*e`(Byt`z-uJ57vl3rMc%;6u+asg5#B+yU9fSgI^wz>N$8K -z#Tk4nlO$POU%l5-LeZFZ>{E})=Uw93GtyhAkU$K(W8R(IXIc>@x4z*HQZd -zq5X$TTDu0*$OkUt2{ZHJCIq6Ff0_CS3pU(mLRVx}Su)&Xo{AN>^Qc__%>~2~ -zpA)s?2Qgd@N4mI-s+)6oWQTt$x7?-9;5ypzMIja3{rTJVy?>K#UV6i8Q1W@{g^ART -z&n9Urrz!0rgGX!$z+mE9xLLPpEw(x|E^g%dqLZQ$4YtU-;p3$pF3>rV8U@f2V{o!lIUGID!1 -zOPoZnb8kl;MkdZr0sAopEo8$(<$+9cKhOgcoY`~_E6Ykd>GeP0LHc+II;7hs7=-S+ -zib9aZSrt9`bA?}YPyWIG+2ZXr9HI^oKw$Vt<;umMcb1qt@6v^`JK?0>aVEf`l$8GJ -zi;F4iKs9}I_7&tY)mej -z5`vn1LeTxzGs#hid~-^Mf$DW~(jDOhsC{6iY!m`1yEX3uYxqP-l*H?ri^UbU%aBo( -z@uR=b$sLf=eZvzO{)i8=HBHJ~-v}u~Pe6BTonQPlJ&j$YaD`pJ0fQsa`c!Qv|}Tj3bVTU=CwE+pa%K&)U*o)c6l(W^^_O9leq1jWitN=H`Foj;OG%(S{l{Syb{Yo0u3#JXg1WKV$0Z& -zSHK}_Uzdeo{H*6GPxom}c?4*Q -ze`(p-??kJSugc(g@QyVhm}tHR+#F0#V)g>d(71Mx7v&i*CLuDe{o0hsM_m) -z)d%>fIw@|B6IHEPg%q>s=lBNCE0{BRVtj}{bX022g$=FMc;z=_;-Q&u$`ft*8EJs|B{H;=>K7jY)hq@!@r -zcFFwjTmK7n+AKyUJbsx`CCTxZSVe}?67Ib4B8JiCCyLlz -zLA7x@eFw%5k07L7$VVLsnxaq4;>4oxQ!uLTm>FQy&XZ~ld5}G34Anoc9I?`Llmn>e(a6v%w{b8h0FJ){It@1l9Ux@iFtSv9$VgqI2s$lfrOg^ioZzmHz;8MEm%w_&Ecy=9-d4O^?Q(9aj%{WB2nhC(;Jak9mnR$I<%Na##6pbk1l6)#r;~ -zPkffia=ztuBKP%MMEvMtwOlz214co7RCwjel823{F|DlaN|#`lV0;^lG!FYwvH@xx -zx|rlXVOMdwvD<>kIph%9Zjt6nVI_cHB(BtYW{MmK{t(z?d8kr>*@CxZo)1-87rT&-uzKz#`c;CQ41py`*}XnE7$q^R&K5XSnN+n3?jZJe~Geu;F#l0xT|j@eE8G; -z7WNQvzZkCb6IIvv_uZS`*fG>9;s+udI7!2&XMBm(AUpuNaD%+%pg*X*Hb2yRC&N9y -zbFx<4I;_}G;8>Vup*`cEYGVL~-v+crpnDK%95-h^e|A<@|Kdun+47>Zgc5bv{Y`{w -zLJ}O}T6oyKoBa02;vnjO-#CqpEa<7O#V9ByZQbjhY-4iwua6~fwb0o(OuYh -zmQp1{9(G&ssFMo*PJM2W`h{<#KOv4IMdfqPefgs0g51FY-pPq*?$^WMN1=z`{z`tr -z&b&gS`Yg>_ao1HBgoJUPxdQ56i=9(^u#un` -zM#(t^TLYys|KN}9S}|loOU*_{_hH2R(;BGfkL}yOs=G=z@S<7IJ+n#Ptbi(gp`33s -z=e~IA!PF@1^62rL*Kpcwdx$0zJ=aBB=`9u~^f*OvdyC>>5v`AUkEbncD{m4KocDUO -z3^*IVp3n_As9UpzC00S9NmYb+c9k?V-N*#N(2*HoD5DL*q}hSv{QsmgYUP*_9xbcH -zwg_oUYkq>fPl*YXECQuIze;CqyluZ?*uVzZ&6gOZqc)b#l_(^*FU^oJ;TAePRO{94 -z!*|!=5m@~Smbw(r_5Q)mK$X2P9yt$G-IzboSLUQ=Sy_)LZ!w){1m{!igo^rF|I>rP -zH7NA6^qOyr%;dWAc?b-0c?=`w^EqO_`>u#$0gTvEt1TSY!u%YoN+xly$ -z5b`>>9MsS~BYC4sb;K>OY!2D^8#ZbD$zTqA3FFM))#X1u*f{P{6zeBJl6R` -z&rIKzB-oQdMumRT>jAxs`7FIB=(9bd-t)d=y^#i70L)FYUM}QVa}-|y?WM0@@KKhw -zFPxw0AdvNSp@NB^{+oe46qo!=hP&cC3tR#U-RCFF@p6}p+dda{!r|gvOR9%rZa*t8 -zFL=-?RtRVOTyWq+i9$@Jgh;IMX2u_uR|#{iPnyduLRW6<`DL1^_b{ -z&~AB;R`0*JPd@an#2=U-Zo#nQ%;^*B(NG~AOd%}Zz_Tv9_3+akzAPb4Qow&zqS=<% -zWIrC1-+<*A-aEQILVH;~;>`$}6PpQ`Icv(a5-VV=6pi^@!|t_2u|`B;+qmzoGFJC1 -zOW#-sjtmn$Aro`V#AaN4C%m6`>`?B!MX7xAwcWNhCOi&(2JHr13wq8c=_%j7a^!Xh -z9DbBH;sx34E8Bl4tD_@1#7x0Qi{Sqjz0vL-Idq_09fmx8jh0Ds?I-VOnD4}XT#=g8 -z^})w+0f#TLiM9pTwrx{q_Ygk6?m+Iq%S&f%dW{vZ*#M#rHXCO0`K!K6k(iygV}T00 -zW-n3zatw5Nc~)rp)jjzOOLS$GKBn5Lb2ZN{?dp|0VdjIMp1g!AAGQ#1IPzJrkuFF| -z?QR%i-a32D|Ba-8`!s)%HP(T2lL*S`2=&XF=NCOg4SYPJ9fR|K4~03q^zSkIa87muiZhX)t39gG*k)eQN -z^lOLYwMmx+TA5RFUN%$EBGQ|ou(e-XZ}Iu6JOR`ZnSRly -z?I-3d-=1am=b+2@l#$3vGFq8{O{TcmzH=4QcI?Ifk4tGNC?WKL2xN~>kn?4)lBXGX1SQfDQ>2kovId7+I? -zYO*9Dnm+HYQ-el|vE?lSe?1*m`Z^#PxbWdisz_aN-iPBVL`VUu-JYiv&?*#E#TMYc -zoINOLD!x^}hHh7lf5oDU+f3Z((gsQ@o6uLtx!n^YZ$_06Sp-IO@rA1~U51ss*PCg? -z`NTiP9H&BtZ670sL~T+mhg0aUMib8fp>Yp}ZQ6K=W#K)~P3mu2ZG?zvhtdP5&Es7-M+J}OcFyj_yYW8Wu -z949j0dcP)XBbYB~R#~-TeuU>Uh-`uEv}cHN;3U0pm0F3+VyCyuDTT;gOtUCOwh?8Ud -zqbEs*ip{j&P}F}vKRH>wt2D_$RHpwXkvu*s^DO2-lZnv>&5j}|G?y~YAhK7IBtOOB -zzYEhcSZg_&*G_y~o|1UQ&t3kx<|4>KdVPzQ -ztM%3Y?0bky3a3wIRwPn8|xNv@SY7>XjOm7_5}s5nn?pN5a*J3jT` -zNR%WKF^)Zt``Y_6lizwG9g$^3NOK}=18T&R3NKmVB?2}?wEDY}cH1L*O`Kegk-)nm -z+(Gr=4K=RShTDGjHxZU**4H6@wJ)8w=~T@Ni^g0e8aa!L_yzkw2XRJPdIAe6jvaIf -z^A2fnC2&2uQ=(%$=`*;1{MYxrG)s_dh!(^iO@CSa}--QodN&MC(5WfV2WKQc~#6%=tzWL%VrEv|(z9 -zs*J^)`yoRrbt=;@FFSL%OmD>lJ7JvqdF~LcMWMmL3nUU-$b%aW+X%A16$s-ho^v*~fx1mKZSd -z2L6P8*4Xh$$*EPLqZ6i}q$jmaEp<3Sw(2y0)ym+bD;6F>72qarSPneTQu-r+Waj&4K6 -zYi%E&5_KVHLXKycYAh5FFDDrLTzV*;gTBZSic3PD({g_*8mytoHWL-23R^^L-^Y`~ -zkcYK;1?75vu}AAfPVeLx80y3gzc^;2_=-#YdiXMW*jrQ){*D#6&%D2EKYB*6B;chW -z7=GoD8R@akH(o-up1R3C4L@|{7y2KKP(Sjob@h;iJQ~Ggc=q_L*Fo4Jz=E+ItRYAo -z3^->BS3=Es;@uIG;qz*EbxGdi6p>tyOb@yC`?22efH%=8v-T)kckL{NOe0@)5#{5R -zwB5fEhv}KSrwsdTMC3=eDDFpU9S3t#eRnWiBp1gNJ|Ch-AN?41_s_Stn&4sTKtTTl -z>%rrvlM!)xbfGl8T9lt17@qa~&0j>RgzhsCqtyj3HRr%Kn1ha!G^vF%Wi9z<1JoBs -zg87+5{OD@6la3?{y6!qXPu}ya?CbKqWdV!Z&3Y3d>9j5g;N<9 -z{q@^1;p4Z+RHs6I)bG6ew@{3|6~5&82-~ZUH=eMq@8SpWf3F~Pa+TTU -zwmJ!x;BPF!nXM9uNbF7Fv-SW){A<4Q4V-I!sh@ibx_1Kt%P<-;r?PDkvHL15>nvk0 -zsCoF~`iKS7&90aB$StOuI1io_d8)f29O-NeU*ivFF1m6EyK#_%CJY60WDMNoj%uHO?aYVgW9}ORV?y($fCq%{EwcW98Y+CBNsowD#GyNep~L7D-Zc7 -zj4gN*p3!*=&rnOr&fCmTjJ=vU_k<&>43a3J#|B598jOmGTfTv9s+p&_Pp7-eN@;r2edBW3_s`Bcd#F{Wr;Ztv?HKfTCzDE~8)`dPV%#LQkC -zdC$jSM1V!^G10SGUn9l5;M-g9NXjL!3UdeM?Qw(1_?C=mZN5yJ{HEE3(yAVhQYbA$ -zK3Bv2S_q>ABIL#3Chl^j>qqAAy|?CY@;@<$<@WqN1N=)y#3iI{8Y*e{GWdPVe -ztbGuAX2n>KZ3`Xf9@YAc;k@#3H1p{4pWZKV2m_=s64OM}f_WI|c^GPIMkEi;X%AyUG-^n;$g#+|IuP -zuZI*X=x&4vUH>7x|OA56q^w4UPRXYTSf73}x&2JSxzk9xSEhpkvs?4KNX -z6rZQSxBr;ZWd*|Lh)WaRMzxPPu#XEeH`1(18p$Q>BIyG@?3gqZE&dy{KXMoGeVi~L -z?u=LZiNgZL1ByUo%l@RJ263zsCEd#7k53{0o!uvZ&c18Cl&zKgvov0P?cb7$?2H)F -z-I%fZ%tf#~gja>}p(V#qQXHKX{3B_l8nKN;ijlWuMNlW_P!??uKrO?$aB_wnjKsDM -z5K1_Df_@L6i+)8Mqtd&naXLW80;*-QT_a|x*Mw8L_wqov(>aTik&|9-el^KCwn*;U -zNELBO5Oxbe8Wi^u}GvA%8VD?EiM{;Zm=_^-q3+f7mJkNLH{N>b34pFUC# -zC?4crjriX>Gk=kJPNtG#G9)5-y@4U2C_g<-*ZMvt$nwK9g;D}Hg~VH_A0eGOgJj#1 -zq|o(JvdRv=6rpUpm@d>$OkV4C3`|cag -z+i8E4VaT;j!D{d$h^xKhdVpudJUe5$-=9!{AKOlaX)|QI2T#xAOAaG~y5iZMU}K+; -zXEUQ=3gVIJhB)Tz5NL^VSFM%1yU<=fpvd4N<`~M*n~Dzs@rhi-Q^76@&)Yd=KE!M@ -z?>C;VPaaU5fRCU8ddjIsaf$r#wIYY}s~;N{-4o%U%;!j7y#l)dry8ieYYbG} -zR__KcP6t9mnq}s<>%~a7D_l|4jik_6NnIy}2(;<3*eTM(DH73ccx5Ci_1FsqXKy#g -z0A$tIcU+|xEQtNkdw#i#cAI4SeFqGHZ^vL=Xmkm6r#u{qOMSQ?@-ltmzGt#6qbEne -zd`(<(#((Jl;Z9~5iF7A6-Epm4NO7OU;r7xl$hq-4b39q|SCAr~k`sk$dF3{gDLQUwrvBR+u$# -z=g2xvG(mliVV8l8d-7^GEYRTR%b$(vxWAH>w!dgOl3a66wQqgUnlfJbi{$FwLRJ6$#y*41P^gm7(?V( -z35<$}c}TR@M)oH)jN$bMfGx*U&96@h!@84?CV>Hezz} -zXpCfIgZcsBYO70ygUSD^AW*+qn~hz?k9B%DQ2Vq{Ssi$6=E3?`4X~y@eH|R2=h;3+C4LxbKA0_FvQX1c-GfkLs?84tjU?%UUQoD#J8`MCbuI`5<&7{IBk_Y<#>r5VT^ -z53J(seVenuut7?3C>~&vq(;8(*^?1?8Vr7=^Mu -z(yHR%VC!B{r;l%1ct1Ala15?*@h=@^MYPpLSdyEUwm}K>YC}`lpb+{uG>CdnSSGGd -z{fC#5zp8zW#XA6dcc86k33(cm)R5lV6RdFMB5L7FNTD{Pl7EC9$?wOWiLmfU7pu}j -zimk)sXxZe!J!jdWNh)-}hfXayu>AR_a@TB+q+ro|LazQtV;p8X&$_e!_a*Uq8P}51 -zlhif$akv!zrPPpa;@eYv&fxqIm)=1@ztKkBAY6#bz2kNL92R_fNRj_pb9iV(Q;K<| -zcg(F*FM8%8&km#1+3(~451}RR4nv;Vq -zj8A~a1G##Vw*QE>C~$A!kDnW4R{8!bB4E_WQoI@YlYyXUk~9)Oru;D{EJc6jxsW$Z -znwE2u?X>su6PwTdWU4jxRG5|yZ(w#5e1~89DpJ4M;I+l?ztHJHa26WK7Z1I^rJL;mnRyWhSQdeMb)xE&3&c;Xd5N-Q-xB0b0N;}syDv&#OH5N}nr -z={{Cn^Y>k6)qA`3VW9!s5r~955`D^qQZLp$Kw7K!;f}*w2r}xJFWjz8PIpt~44bE2 -zF?~VW6lmy#N0w`Z>+{6%1S}gr&Gyki&(RXZA{bl5W+MME2WtAjg|=8if{c%ANLWC| -z-vvtKT@BZ+7Nqsc6lAYaBuTAM!^l$6V4Y{Il+{p5!~|(-9H-}ffyY3el+?cXJ_*$k`?5$Sg=Cq$skkog$j)*RC3OLH=9FYsc3Mg -z*%D=RY!&Et6Moqu*D{|#pnNz@*mi`>88e`_r$9>@R1gyyQ -zX2Au+fqg##i}JqG+?pwVfM|_%Ylmje6iCLw)J5<>VXdlDSfURX -zNqR*UMdUBT;a03ig;HiJ71SW4uXjKGQ=;iWnI4lxEX&#V;?G*v%AZpq=3Dytt<;-R -zxdG3XgGfyq@g@UXSGR7@0?n%KUdh%WWr+Fw%G!zEmt!J&Su -zzHK6r^HrU*O=R@HA&G4Z*qt1Nr1d;+V`QcF(suY#Pwmf%aR0l=%(t$hj{N5_71d0P)MlG=gMHxF -zvA&hA9H%nbM+5nanW)SBR67+3`TvBIX9|!1*pgU+f}u@Q?Fcn}d1JXvV^B-RJ=vM~ -zNO;M!?qn#fC!)%Q!v@Hj;CL}aZIi^E9dG_;z>xw?`63%Lc6Jm_x^e3#Gt(!!J1#46 -ztIipDb@52Io5!**u(_n84Dw70r~l6yctEF_WrsA!uMN;hV+;HzQ)2Z>$nt9MbBqv5 -zq6%)%z7xnjeaUd@z@@ciu*6-hwJ@KS`?Te{NiE&NY0dEOJ5=f}7Oyk4^^yzW<+br? -z4-HfMLltl40kQdM{-p~0>V*s_jvAq*urV6AQv2~|Cdncu=tk9c&c3me)!>ap=xDLi -zHj4_@An!sy?}j9PvQ2Hz%yX=3X`T`CUP=zmDyXcAtC|)zmISfIhDZ(gpuG=nuu9M$ -zxwgzPJhq10i+s|3GmO9*Tb$~J-3d6Gzum^Q?9J$A*I@?Xo~P#td8Jj$0q4)A`)~WV -z{R~^fGa66iBe-ait>VV}so9_(j0||i;|{cDMxt-&a*kiAuan{U!p@)$)lwE5>UkbS -z*4D+Y4^AAM(=fLNI%SMd}g -z{fD|SM!xb?F9vRB`GYcqLxRy5Z&goMSSrOqE6d6=$!p;syPf6;;wZI+w4C^%P!M+5 -zP1Gxrmq$CVGQh)tR8`NTMXWu1`Qsj;iw8nGaBFEdaDH?895LETXeOTJ4i^RzQL)ID -zPEq0bZvxY&^2Gn$*>PZ3OWcHLuw$;2V&>HwZ+=UAd)}K{%;MDpjIEuQGt6&I)v)Xb -zPuFuZatmOxy1=w!tW0su{LnuQFR;nhOlvF5ZK-aH02uSFII=im@&}~;BLe$5*g6Ud -zxcys+uAE)QM7UI53`5$AxJhG_Y -zo7FA6b7SBk-M{U9KlETV@+d0WP_Yv2tqQdOCvkB(_ -zt~<#WkgXC-e;#LQ=R6WtsZNzwe)<`{3oF`eo`x(erSz~>9q8Ir1YkisMQkoN>+Zks#)P2 -zXnP$`O3w{| -zb#BuoYv4nQe>MHo+BIFr71ainYJaEq=>5f=QWe-v#tCN6#-sY?b8rdNv7#aiU%^%S -zTm%EX1iu`(hfz_bC?BLlMC_%j@pN8z)r!Mm$E-5x&i}|ZmMu1vr(%Z{oD+td0&N2v -zCn6W4Wvjq5LHsDGQ$BkgKm9J{zx^6Qq%KBce3xw_JWP4`a?7ljV7`75>8W4KTl3st -zWo{jsKbg+0mSk3l%Bp--QMQS!7(FbC0mR%r-%?F-ySP`v77ZvQzh|^eQy?k@j~ -zfGHvjf5DlP?#g>HU-jdC#S%?!58*&+r%=@!{7|H0$(BrF3fpm;SDeM;cjfSR(I(HR -zv`SCY{cLNYyB8Blkl+7&L$DQon_oQArU#%` -zu;!XZh54G%K+YdNmb05pwoMeFXFHz9+t8<9KTVew8}j|r!~}l{6imyRJa&e#r32Be -zG|A-Q96OxIMW5@1_-44y}nlz#;Rhb^rrKJ -zo_hM2a?~160g3fm;8}8#f9iL15qMMj>(vPDPP&rEQ{rU4kc5}Ja>VNzaZJ_Qz`W>f -znJ{n;W7Uadib7b2FHCbE_@^3+l<(j>#AL#}ekjbY3N0Cm6lDJH -z32r1I?Spc}3{b#KzuR4Sk5WO>n(>4qq5z{rkkU8>xWVK8bm7~c#Z)>h5;*+@{1?R$ -zNK%?)_eBu;oZP25bm$eF -zOFWTyjrwoJ_6*)+LDq}~$Hn!eKi?rw$)0w_`UI2FmUYE*YuW9kw1<3Xq>`u9WKN(; -zHq(l*!4FOk2%`DLl+j*tj1k)KI;#J&R$#o<4Rmq^@3c8NL8OF(qo9#g+QDWwKgTn6M(!IO|(*w)& -z?;8n$N#+B~93xGlR}Dyqp>{r=Z*FG7(-2xsZP2Tyho57m@y4k#r~$!B^`73KDbY;V -z`*BepJK4RWo|_T9Vxglk66MJn-PmC;OQBARPrAHU?qN6WzvJ}#4cbic0185;*G*5E -zJNYbnJ^-V)t2WCWyhe=~%9!$;{Aw@l#3E)dv0-;qYNkG*)&R;ur%;PFJ$FJJs2|A^ -zgZ{@%E+w#qbLlfYYBO@rfm?fWxhelyW*5+ynU=@?_K?e&BnN-W>YW)uehxtv!j!0B -zP>c{?60r?{4*J?Mz>6|lPDyB4vqf%yUCzM|j{SaPa&%9#Tl|=M$NN~H1CTFnZs|5M -zEuQNd)oP(Iqi)Oy;RBqDt_y-{aHr+AO5;7Znkktv)7(e^x8W~<>7XmZ?17#HBYxCW -z3bd9GWG0tVqn)3_4=X9LwoqsiF9G$niW!+1nZ$O&62AQq^^KNw?K@z&CjLfsWU1V? -z69-=x+J;|???}-T-a*$y`)TC?Z9?}s7F)a?heOWG5GrRwe+ub2f1pn>Qnjic^51c@ -zEDq3h_*@dYw3~PtjLut<%?_IdMh_e|1?TI -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 -zYQB9p7>n{@Fz>&L&@s$v^(O)3ez3czXgL -z>^UjCC-usR8z`dAq<6(D7VFdfM-P`x=d-RhyQ=-(ch-Bg02=6ATJu)&l)xUEsMes^@?FaH6sCa*;_l;;3zC_dB1{wpMrkn~_ -z?y{REMIAe~F8`Poq9)YqIW`9iu(CJ@*;Eq_sxvbezf?!*AqxU^)a}EM*=e2IHP2V;Pmu6cs%TcI-0ak@3fqP|{;()-fE)rky@Lmnx6@ -zTi6zc%f{rLSM&e=EiVuL=a|3Dw#7BlE>RYSco3lfSiLM}?be?*mKj>H#VCODE#%kd9o#1D<(7TO8(hiGZv|!f703PN -zbGA-%g^(|Y&Y3%9hJ06X4}MI91)c!xZNWenI=yJjDQ)y2@>^K@LgD#jyT31qy4=Vl -z=%*&5H6enyMeIfk>eH_sWpEjR!P|D?kW?hUk6HtJ!mssLgyvosWl<>_!eF4NnSjCfe9Qnt-XZM| -zn#MN2a|6#qUD{J2olppLab9odZHE6SKM25}0*d7-HjaH1ryqaxEpGVeHA2>MP&aVF -zl>m(r%>m6Tl&8|yp0^A2r3D$#&k%d4dEr7o*At974ecJ9?Bz}1Qkjhc81`?>v>;-F -z`}QBRK8}^%PbiVOAj6q3I>11j>C8XycKgClJ62cHG}1RLEy~;oW9=?$wz> -zg#j44agw5o)2Z#04ohPZ9(217vF1U7$`*w&arpBEE14O+ -z;`>sz2{e+6>GdX{FeIX?6g}|5Y$KS1djywJivJ2;FImoGQ4u+hiv@8epRpc{H6%8) -zc6&c)ee!q_iOPi;G#ulBafIqMW&=#PQy20;h7Twz+IzFP^(l~dz{D;Y!~^dpD-3e} -zzGA<<10H$p%^5`oow?`=?=oAqud(P4h;{ZF?XPmRzl)%f!$T#w_7;z(LaK72rqo{6R{DRwur9E+!>k{Ay!HQ -zub*{i{aUnF647>Eg7#V?_Kl;F0DDg?Swe`&oYNsU`04i7c|li_GitCC1(r5_;xFVj -zjWs(3Fu^@&n;>?%DDxBxKp -zY7m8z{avN}nj%WS-k`$(?`4d-W#4+Z74oAO0H6YfVG0z>?!ngP<6apA5Gu$@))c)H -zHu7|aeD-RvI`FLXql8(cb9g-%YYJ$~@|K2uHAl3W@W?nQvF&2GKOkdmP)8NbUkE|6 -z@UdFuDgk!=oecbPk^D_oL*;1cNdE -zaDQ(fux7S^y+=m?`M~_1S+=UYLbjSzio}WYm%~yvl_2{D^%%4z({tjBmYC3RL#k@ -z3Z`R69e_)#LBww=*5iBKefjI@d^KK(zw% -zywb;5NFvsCMspT3WTS4{SJ!d3AMW0Nw1bF?_K(yXTIr>f8(AdG5gsWf@0hU>@r3PLE2Xsviy7 -z5jlwHS}Bt-n+PltQ-k08WIy0-R_q35$@&rTK<)cDqa$$P+Alrx9P=ZG3Sg{W&8le- -z(OJ~Lte3hWXdK(!9Ua8-ro8YBnFaGy9*a50BGa6Av|%5Bh62hn0@RE&rI&R*Q{(lv -ztG$Bxnoq_JQdJnm+v5@VwLJrI?8YfjI3o|}(D-UB9}k)qXCg+AS5m~RNrxm6U&(o8 -z6^7d5;zOp8D19GOpc(x25EK((gH1rr&fBHku^3`2K#@kiuy-?=}jQ$ -zDzQ+5VR_BrZbXb2>DaCod -zQarF&GHU{u$bX#3)l+x%$gD(O#*RSAlpiwYE1s|25&iGPE(gZ`oH-#5cn{qKGz-T2aLEV!-YZF;x_q##6=Z>ZDBk -z?iR!h{?BHGE8*J0BRtwp8c2TsghF5DN8Vum7HyiNcVGOhiyK5HIb>=67L4zmqBrcO -zxd+^{t4bF@opFQPnC3=;>~nT3*4`9CXT7dx<}$H{>w{cbiz{zlk`KBcKl&&g4Wr@4 -zeolO2$^qW+M5UjJy@Z`Q_R2i^LuXiImN7~)hP_-+@(tU2T)i5fQICF8{vHuRY-ThE -z1XNBuX;fA=(F_U96N$JDAHlo(z(Nn*BUY)T(?H6P+so;RPiDd0&;~*YxVDeoAl)Y) -z&e4Eohgx9Y6Ay?Vpci8tGW-T#kHnkZI!>Yw#W^H6-nDCC-b%rq3M?*F;CYqx!Jdkj -z@JDvIQ`Mq{mSV;&h_jMvLGexhpLgA7rO29goDirKj{Wv~J@q`(f;STnEe$;WiR35- -zlbv(zX0asQ?Tpfhm(uh9fockm8PFI{$(0+!#bxnnaFsmXEsJ*{q5G~DzbI6wD(mRB -zTI)B&MKJy`^lqI#M6QR)zl&G0l!WIu%Ia+_Vc+j^WiavbT2(PM_Ae~6v#gFN$TL;4 -z@(e6h-Up7Tq%q%H$%rss_vSb{N%1j^3xmKSPx3uAm#@-!H*ZSlOp=&y?TYbc&>ZM- -z#|$hhs~HF-k!oMRrA|#^ok;S2c>XUCd&D%NX*@#O?Tuw&7FzJ`tSjTVl^>mhOps-A -zHBDYtHffa0ET-d*;$7Qjl5;{($?#voW0O%CfXidD#OAV3=vB`WUn|v#8(sdno -z%Ra#U*b^Pt>v%@GNb;SX8#~q*D -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 -z=Hx15l6{6n!WwLPoTuI1CfGo8zf?_GBSjA$nJ -z2Zta)CdsOV$P}u;i(jjtP@C(h-{0a}x1#@F6t(2izCv7sVAxIl^@OqwH_2R!1Y{clvzpiULdS;<+9+Gz07Pbw -zZ&d2`SwwtS`?2l|S4*~me*hKdivDKE^iVZeT-C`4>F)2ReY>PfA@!0VC{Z^N;pobK -zfp(%Q_R;=H(}FKo%{cTgp68i>v}-L}AKJ~zde7((dLJ<1&DBevM&PQ_>0xHI=v$6X+7|F4{MUuTFpyubckwPTi -zU?;v{M8Rxw_v}IaggVJlbFz!GE41JVFmW-XAa~2mWUjQAK;44H{>XA&lrgb4FFOyW -zXzsidwJU5o(G^K073~9F4Ctk%c3d^0lY$%9HX$X(luNr}p`LV7vb-e(Ns2R<3vW48 -z)P@E`@<(7=2Lw0^tEjK4mdfmgG;}nV%8S^#VVq^*o1Q3%OE*Nu*kr$(XA%14PYC7x_kmfqKvmli;zY+G9A6D3 -zobi8VbQ{Y$Eh-n8wd)w7iu}(*DY!D_&w<$-tZlKUa6D_@JKVg%7`}d-2AywoE}hU> -zW{hola+>f4XLHH}eUp<3e$Z0X2yJ?wHK)t)YY+2CYjXU)rUVAif51b%Z{kNe4H#iq -zHABhx{)(x2rO~p7$wESbZ6fAx)OY}8Gea+L&q4^M93o1ZmIJi{Q=L<01{2+vJ3A(q -zwCbEh{&<`urFe+@dRy0(u_@q$FajiV#*p7ZKUe7M3Q8rsR-qduXjDJ=ZCjsn_lHuX8Vk{0J@dH=olWA*@(<=4 -zpzqVymy^MdLT0%<+iIw3}wR3oFe&~Oq!27 -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 -zCZ4N`i)F{$IQ}9~n^;6L=cEMrfkmfZrdF{ -zH}-lbj)6nNW@%s3A&;-(2C+vwdxs`M>vDv*SsC&jmg^D0w=1WAu&f&QwKtbHC7Oi~ -z=SD>`b5`)uU1c&mF<=mn! -zONpm1@s@OrnH)b~38WT0q{Ocp*|bNqng8MsMwuIZ+A{%)uhwDQTm#q4jLJH9wa5{8 -zmlE4?gFwxI!rIQX^T*_iij|-nrwZTnO&x8C0DiM#^0v*Aas8jr_4@1dD8aQsTnEjN -zjK$_WF<|c9@>ENbIQ;ckTEVZjy{1E04tMgAA4ZG{9pwZu(R~;Orc#W^);FdnE<(Pe+3v;b`Mopmx$P04IJxfm>&TGMg0nKQlAOC)fl=z?*61O<_)xJ)%6Q6#uw3 -zh|atiFq;cLhEGv?oQQ>6&1Ru4r=SdxKIi#4e#ix4N&2!KbaifpNH2ud9|1M-S|zm2n*SkD_D$qOg`b# -zszn8v#zuZ&;r{o8Hvh0}Q|ORIstdL?T$E@&E2F}?!=yQUU&jxRN}J!zQx({fb0* -z(rStPP2<-8jKLvDN3QBXdyy}VIMI`S8gz31zQk!j<{eMJ;|;@uXSW5-gXz7fqRRh2 -znyxw^s;`Mk2uOE#cXvy7{{)m!8j_U?W6 -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 -zlL$|Yf0&yYsqdPRs9oJ*?PYbVK(~J0%_d}a; -z>}3L>(MQ3MPcxqi7c?uwAZ}aJ>AVCLKbAOePArTp_{8|&7D}PYs$;4%neJtcd#8l|8O^3Ty>1sE$_-MU#f|jEuIs90=$sJ3N#? -zst~Z3MU^?hLksGKesjjRg(Rb*?Z}mVNuUHv4w*-&YqkPj1B_jbHq_(!t_qh~T64+s -zrbSul(V*}~yqp3OaN}Ok{)(7c^EEh2XF@}jVsP1gRb)K!bsuMl1oHVxj2sNz^>X}t -zr~r=cS?zS*23pNz~Vnp5LU>j2Rfl^xjm%e3u>$l6aTHM}E6w4aD^TDj(4> -zMtvz-g5q!Sq!j|Bk&(o`Qt@K=uL}ji_~c5?D&VTuqOU!9wrAv3Q#qZkpi3Jd)o_8F -zD81|d1K^^7wVBaI{IM2n{PZ2T13tiI`wNk?V%U1;Nq1S1o&!82*rBtaUeo)_SacJ`(oU0i -zF;SGgS*q}09s!OW-VdXG4YB`H3b|L3X_mwO?L9hdE4wU3gVak4rh_G#{UD_xTLEos -z$mDp@v&V|<=&e;i)%DV#Am)~KQ79# -zdgnS^RV0z#}l^%_1NUsPa!A9mCqv5_a0xu&GN$2Kg^xfg5LQ4$sdfX -zu5=-b)5Nlz&5s>*tqW*=&+AssanH9ne73VqeG;V8WiW|uRb|08l|#-)MX?+9fCaHp -z*wCuwFRICcHHdf%8=P4BFUVF1Zgac -zhy&g!&q&3WJ0j%RJGWw81)XwSb%R@Z;4lWBt{OTrrlgo4zE{2hjb4=ch3e<4R`J=( -zrp5KeKhP7bXA+OBo2mB5dU#s)f+A#>@%uNgZO7S8If>pSi!@yFZk}uDFufEi!N08< -z{;Nl+W|LphYBN+eW@kg(OE0`%2~>NWPd*BE2Si)n$atnV^G`W(PqW+CXA0wg(@)Me -zu4g<>rCN)AN5`3sM-Pb;)YcF-*5|i_q0*k+&a1(prttzV@!y2R_vTNis@K81{c3N3(6zcy7v -z!M{|S|CpKuC|(o-WTQ{9iNa1Htz?I=fY{#yt5&b>nh?c}^T -z$DcY0*&18{L$R;oyZP-R29jO09oH#oIfA^< -zOV8ot2P!i+VEVAB7MGu-r@(o{9@?YgLa{$q{P+v%TjPV0a-)xG;E&P7u0H(!6=1^h -z53ac`$?V(Y{xQuNK1o&4)nPJ5w0tx%=G<%(!O!Yn?=_4%k;R&8g8e}ZYWJ7h1l*xX -zPKh>klz*Xa;#lbOJo7t=!v4}K@X2T_Ie`KOawV?oXkZhn6&>0#U3zsJ)XfHeVmu^j -zXpk)-lhWV8d@s(do{8i+Qm`(`k6|IQcX{<+9F$UaROia?ANZs>?5 -z9a)qem*wI*wH33KpK#1^=b2uID~#Ksi)Io%i8-^RNiqNYa~+xPY%=R*0&3{jhoF{@ -z#8=NcX6hoBl?hYtgCRtc$@V^pNMnjA0#T_jux!9V@pA(8y=wz8v8VssaTtx*SJ(GQ -zn+jn$qrR6~dc~Iaj1#54Pz=b)r=~%jPD12K8a^p=3ZHV9%sY?#P41TbKFJSnyzbh* -zKuYiNnJ(TV+r-(rUnRryzQ`+*F(({oqZA7tn*H)L6yTmPxA3$Ua*VrEKNu;6-|;58 -z^Pa^lL4ybrKf9Zr9GyYut<#JNm<`xt#?N%WJm=hk@{0`3!iRpkLjZLzCNP&ee-oAtTRN -z>h>3~UKE?<44BWW8kKkyyu)L%CYf^Gx;et34*b;FR3b{x@V^wa+L? -z$;P!YWJBy1OS!(kn~Z|M2h>5>Cc5-qTA|FNjBcD`azK0wL`XV8$_O=~jfTjXG&N!j -zdi2LKFqA%Jo5)Vl((a9P*q;W*B&NYK${{MSY^wq$A28;$aPP|peU^QBAbfZ1Fm0aa -z9I2$McXlJ8=-YjYf1b5U-$p}B>y>tn>sgtmAORboP+Jz8SBdadw#iiRP$TTDdf&-# -zYIe(*E&M*;tM%eZ2n@u8Fkg!Zh&gpY=lZbQFHHJFj|gdB3=Jj5unz5i+lGxGR#-i? -zgy=x5C3V8o+3!o;#MU@HOH;!!$G*Bx`BJ;jJb@O?mzI_3VoiFSlS7UHw+dng -z#dn;@SeIMfMdpNWSgHPOwo*hx9!*z67^;%sAE5PrUcyhjgIf)|9HW?jh5+~jFw0_7 -zQQ)*%W6?REQRrRu{#m=2EW{T2SBtpoNv{h^A|yxa(5{7 -ztb+!;zkE(L*NTs7U2>t1s9_<&yQ2dGBirNbzhtf)xZf^+)3}~22yubl#6M!_U-ET=WvEmis)>IC{pz5uVs+D -zwnLbz`$+-(&w-N44|;Y<#=vj$qlJ5wZ>MQF&wQb9E%%jQCR5KQg(e$2D!xt9Y8BFM -z<92C$%AvPt)D!XJgn-dtIi(@N;M`=FmOS$qd9;m$S`xnon;j^VYzGH(HI&F{lpPbs -zJF3;t!VyuL^d^x2utc8r1p@bG?r1vIK4ikIsj -zV1;N0ysgu#9=3LKjY|ZxBSchd(%Y^efMy1wD^?~sA#idAh3^&|BORrcRplwrwgV!A -z79(K7rLxJ87#uf0%agn=Kg!C`#Ea1SK^De&)i?JALUy?Ey!^?%K^U{}a!nrt^{s)q -z7lD-j$QQD5k%8sf?;H@r`S?4|9rrR%!*^dq0y(1eAdfpNPv-jhVHmt8-=5IUz64Ke -zP39d_`CPs1Foxh+18mImDu!TVKmHgLR9V=L&1|&mmK;A;<>&CCO%&|c$nZXgD(1=$ -zSVo|(uNoZ8Nqilwt&6t3DAp14kfyN}a`chMb~TQ{6hbZlE|87UvIIxdn57DMLG2IqAKt&M|VliKTr9nfFwJVvL5HhN_}}a2ot$w?0JPO-<0nFJzKx -zY|Lq^%a4S5k4?}sILP?O$i46#cCEnz;1xBDuz!lsWLb0={8&8)S`81g&A -z{WTCq@I9S%Y(trb28^`TYnopH-Fdx-fn`Y)MFjXpXe{EPT@&G-fg&7WEC8bO`njbCW&d$+H!ff|L+s20 -zF++EI5NppN*kT3s<<^I_Ap4>-M=+!Pr1I`JhylgZ|ECsjc$ODW>nyRaVn1nq|5OQ|BE+MGqNH@T&C}T1Hn^p!pUKt>Zn*+qjYPOAK;^Z -zVOXJ+Cy?f(b{mvqC-5HDk;u*h8USD;46lMhV6-pzHpaczH1Ta+-|$Y+_WSy|K)3(^ -zn6eS2l~NOd;Avm)Ru$kMn-eWPF>RV|ds%vw%t2iRmF -zpGq7&`XbSfEWQK|f6eN(y7O*dEUS)2Ls3XWksb9_2}GcRCi?@_rBP*njXxr|Kgx2N -z_kr$jFwZ48{fZWMc(?!g{B?OLBb!rdB{D;k7(_g=^dm?Hx4Ldm!Yf1`2G!qRK7y$L -z>xIzbWwYg}$5EA~Xq4BBD~q5R&lDK0W&#t>2gbHVS@lsM*oXk%9z{G@NuYI43%3RR -z`pBURo?TsSZoaM>frIG0FTyqx8V#O3@J-FS7p|4FB#v8ZVw;)#12GqIYd -zqTsQ&8QI#psClFR7()&WG}PrIrp%||XClY`4Tm2mZTf`gL;UJTst<&^otwyO{hyb; -z(yg6;YdG^)93*mzud?fYy0*+s4eunt==s5HIT~IyD(2zmQ%O$by?Vy~RLGE^#$WR) -zykp{ngFs4s7SLDJkGZ(}Pf_!c>HgvEunlkpj+4?W+H74I-7gRGaD;wI!JyGPynIy- -z6{hUIt=3W61v!A~$t)%+HIS*SDt$Ag@1;*E-?`~CYC=XKsI`;(q{so7@;Wjd!L6d$ -zh3~D04UIzk06T9Bs3Moe)T*{FVyGy}$X&Q|>H=DOkCeA=*FxZOGh^N91XVTfco*YhI&>Q`p&!S@>YEptzAiou|}>#=N> -zD#%Z299xY9Xy(_({w8^N@87VU_zAM%5_1}E)hhQ_CKA8mhA7a@CvECJm5JpcbYTby -z^N|Smap$j=ZIVT|c|i;4riOLOj*Uk0Xld1uM?S9!SwL|~pRcGO)^EN}>#}dg)iwVp -zLfMz0ic9M8s2#_ZMNJSHgB}DaD?U8^k2= -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 -zFC>j0^C4ey?GbUQ<>qP -zVD|RWQ|13;K)rf&8&i0{aU%P0yxX2r2IO9BBwao?twyL=&nZ_b(lNJYSpSRVD9u>~ -zW&Sir?HwpA3{xHs9Me(=>hu{B%#-7#nW$a5MxG43=q`LfJI64SlC8q8Cf2?!|tpgC$T1l*k}Glo_Wm)0zE;x -zns3d6)iLiRf}tFAuppgXI2HqrD0998gUXv!(vbeebT8j+(`WTCS{t&ub5~_`M|uSu -z-@+(KbCrNJ{8IL>Hw+dZlk2@0^C~Q9F&m%!EMU?KzI0p?JvN@GDBC=xj2l-BfNmP# -z`!n_4Be=xL*r|z_9L)qRu4B@Mc_)NG>a&5WZ^xYcDt2y4t!xzu%Y&^bXReF#)4iwt -z1wbRZtF8eyCl77*-)hAT?6X?YODEZPz}5u@O~G8MlMx?u@W(cps5mmV9h&g{%@oNy!^L0ei^Br|eY~>z8L(nRh;IQt`)l`VR7u9lb -zV-CS;0D1sw#QD4ONyS4y)^+N#%#7y2wjm!u!=PI$Tvuw3Lau#WwxGv)m2R{+HU$19xC$9@TM{zv8ARlktYDI3MVxS -z{y1J<6>4cgdJnofjRM|nm!VhFw2L4CJ)|{la?ZK5XK>bAshA?mZocw#Cwjzy1fIx5 -zz?Ux3VsYimS79ndD_;G_6Nu9!UT|^Vaz94@v{DlR3Yu0%_-_cX0=zir -z{TqU*$v5BOf$sL6q$$Are)F@O+$Xe^Ewltcd(rTUlTC$%chyfg69|%IbX!rwx45Og -zz5heHRc^8>ANB8i*a@ERg*}p%7(_j$3h)KBsNnT1_y=Cb?`EH*Gj}0nwz(fS22k|G -zXW(mGny#s{_UEmu^Q*JgH0*}SAw^-pj`~9-*Hvi|f!&^0yM1QJCi-FiAGCZ|CZ1+O -zC4PZrusj>$U40zoGvmi6XqwHKpy(5z$CVLtqj0JpcGk2bG!ee9uN-KTA3I+|YdsTp -zSdq`w#wH*9aHUGYGwg-U`Kcw|&~nO+g#P~5ek~?S6xYi|TsY~6&!w$w;nO&^HSp6c -zJPuiqW2bqLeLC;asbIjptr0LrU@`KUJMQ$P1|np7giY6PA9YMJAQ$!tR;T(-DZC{6 -z(UbgcW{xAl3^EHOJ5v3vZpG0*$b12KkH>hQm)}f*MF}`b#0ssHREbO@Tk_PpeJwkI -zYFl6pxhZ|nKkGUmlQ;DLZSizg?jM*r2sJ4*Pi=^5#Cwhgh4R2 -zRS9d7#8we@O3PC}LNeUq3qw<gh_17$~u -zW4!21F<`&HA%5ZDH6RI_p<-)55zk}(!Skhtz9$|(tG8PY2s6z%xxSSaK^Rbh?<}j) -z*KK{2kKC^lAu1S@M`r#@ai9N`y_J6TS;-}?hHUl6mYhC&~?r9Gx{o!EfPEAo;j!hW&=kXte#Y -zN$q`s3Cu^TqMQO9;~g0-+VnS5@^dUppFJJNL*JSda@(d0BxJr(MXKG!NOn55 -zZd*Wje8Azd`1jH7Pt31y$Gl}OShxLsBfd@w*+z?X?|0?}zRk92KM)<|jX`QdWdg*+ -zch6}g-&LlM!uji;5x_Kpu}}o=XdMk_94r1kF5VhK5l&*|djhl<^YT>rZ&Tloc7(M0 -zBnDJ8J(r{!!)%+_n$kQR3|j9$qu^FHu07ss^AV~hz4b9^b%5go7#?L>MX?LH;2*q8 -zQ|pq*xu}Rr#g{p!A0btwaZUq6iHDzx-5zI>q6xM?G_L(J4x5-)p#-6}ZO9j&4VX+K -zMlS-B1`ymRk0LHIw;iTB(IX#Cc{%!HtGg#KNFmI4ab2%L1JTi6O_BN>RJ4|Kg4-9D -z@#Ahm0V&pGVjEg&%6EK+aqvja*z*nN -zA1s$@xD}p{Kd2^(A{q>>pACkqwvA!G3~>RQl#Urx{+i@BZxgDmVCn7 -zKPAls0i8-1t*`_eq7wJ@t~pZ806Go; -zy32{Mb8WVpvQ%p*uSJ93+;sNlejLJq1y@*uVfi_76ny2s=QRKX8W5P|YuY<((Dk;w -z=fz<3n7kX943_iZ%KZ^8^T4^8_qS~78j@Si#X1j}ByUlkKpvF(F|JZ)b6yK5mu*KE(mTC`GtcK0dq#ZWX}R0)|4btIB%UX%^167z -zC)6B9fQj6@4|e&z_51ly=PQpwPr6sZeq=Q`kjw*c#w!yh{wtR43tN-&{{TQfK!HJ? -zlck@=mv3&kn$^ejD`|n;cHvfJcNOE8Cq$yP%J>+ILB~oXUVakE(%J&MZJ{-q=CZe8 -zU&l@k2j4{RFdtAHim~e>}?& -zQ4(Cgq{R@iXkX>!;N2L$DD%vLR>3+Mti3e*_jrj+9=84ou4ztx7>?yAkS>Zr7uw$(x=-sdH`VceAw -z)naRmne{(4qcGqN$dxM)3XwXmC^#|sGqQ8NC3kO5S8)mxV;kHEbRM$_uRt7VXrg{+ -zM(lKn723kUzaMeX!sGjrmM&8-mddSrmlb`VZWmC&2a-{ux);y!L`q{ehw)p -ze$Q-bpH1%RnK(m@?>gCe#<2ED#v8JRQq24wtAg&F=K@~p!1#y6m;^>&H%?}q -zVuZ8uKxZsSITTb>lfRDky_Y5-HJ!P`juoX{*TUpz9Vzp%2J95(4fg1Z0Ji%mS>r)Qt@hTjkj+PsTm7}i0IK_n<}F|)b-qZ5N$38*s#+~RG_%%iQV -zy7)iFd6gtQk@8w0K~OJY)8(xyBn~6?me~Z+^JURy+Af30v1^6WavRa^1*4hG6+ -z0g&mJr840W7gMypU32KJ8$Z0@19ogY>75%K$=Bc+b=gL9;*(1=|1YdXu -z9^$@G^0`q^=X|t!R~hnDEbBiOFa~P1P-6e)Xj5ngtsLerI5#26K;NmYGX=?!AE6+5 -zDKjROjD9mPp(gVT;?t9DqhE22>$M3z}^wik%E#1`#jNF}XQ?W=B5_DX5mnbu#aF$^vn4n8hQ8;V91hbEBXC_}j13HW&= -zqcD!@E>yb_t<3n*mNngEwKnE6NU-NP+6mfSVy8u{{z3a+G>c7M*Qr -zX8yuu=^hw9ZIIz{PASdpTdwCSWhA^=`;vQ`%-B+699Ny|PV*)+_yiH|YgBR6Xdhs* -z;{k+}ViQp>DU`KQreq4^P{St=?`%7ML5qAl9dX$#G^vM71-Bn9a65p10v1>i=sI%Y -zwpwpYvnjB8HVo~e5VwfV-=z}R=GZ%?ksV%sGR!i<$ZmxHDW{S37rb82!^SV5m=-v; -zaFf|Qiur%GFo7b% -zAIB*Q$IP9qj2O2_`m%N+Z;pV5AsDWOYNLNVthn87lDKOP_)uNYqJL{l_T!%S^CCrj -zQm(hNAXtcv{Od=9(Uxo32OsTXN+YpmwJ&iiOY$)qeAjoEYN-k%V7;iOu{Vgy^q&mx -zAt1)c(}&9?S6beqCvVHcIaIeTwsxW%6!6UYxg6`*Q#|+KGbK&v96zhC?2Q(llW8AaG(I2wVJ->3sO8Dx*pZeFS-M7m)A{NAL}?5)mFqFjgS2Z-b* -z17f*+JXhmJR+~CHCA3C2wIW2F_Vx!3lUeGX)IGp-uABGM8wTwMR{ZyB#31}%^C4b4 -z+owj3;^Z%DDU5HXo#tmPfnHTlFDFv+a}nnJ;`r+zp%dl9M)P-@Qc%p>pI<*a_nnm*@Y4^dF{ -zLhu1BzF!w!+vPQ*e<K=x -zVwWSdwBjU4Pz6$HG#TI_{oPN1w<;(_ZXgl|Hx(St_%NxVdoo%wgG$%JM}8dOhbQ!fTy6zQdx$$W4y@N%-m+q47e*V5 -z{wPWakbc3ruToxGc9j-r2Z^Xse;b+F2mM)5Tif{vkRm}>Ma+#O75Pg-1H&@P*W?#? -ztsbatV*!HeWVXeb=|%diJ9r9CF7NtscS6$Xh&?Y&r-v7WUxlByRiNFI02{b4NPf9X -z#nAlVAAHveWDl$W1jT{lFBAKkdzqG&-3G^!mxBc349s3Vy3ItEtS)B&<;hK{V=3L) -z*PTaUGLpzEqVz>W{1)0bH`qA}JVJ-M&JHI97jt}WDcZT-CRsY;VI&s%exi>IC>F*? -zLzAz^B^0#2KD9J|4>3Pl}V(B=bH;Z -zvo~f}6M_Uf-7hKI|7mPo_yB&dTZKFh04;&N -zUeG9*c&AsKTWn)XO*xdupum*)fAnvHm#f|WhTkY@G4JZkTS3Ic2X*4kI$wb`qw1Np -z)?%yq$=0;!+{<0OAwS(lrzqw6f2HEM!?}{&8@=_29l{0l*K$g&bB6T{PY@x9S|eAG&@jVc-j+*=W#Na$9*QO-=>hR( -zJ#W94$x1%=g~SKRYf-v-q|LP>w%ZrCR3JZ=NWX{7r=lFgw71mh2V9Nuhw*l3T -z9QYX;k|RL&_Z8pKn;7(RJ|`1?iOTP5}w&uBD_AK|%>Bk(N$rfu#hI4k-~7 -zP#UDWk?szqJHNZTe1Gvg%bP9K#tBs+K-;Yxo+BHtoOOZ-T1e`rWtZWmy&OOhO!tc*JM96Ho_AULMLVA -zVxl-66ZZE6hBrWg+%;swGKMubeB1VEb<(^l%f6CFg$k9v))9H9WWT%0udvxk0Yy}5u;m&Wd -z0hCOqj5A^i?)Z=G)ttF@h*aQdA=q;?@i#1GX**O2LOC4RQl+n=tku^VmU>=7lhgoQAT5bmp+bxME;=H6*UhcEI?h9*q1yag9q($cf -zuD(~QQI-Tl{As(bym8vSlsLZ7I+8BrbF9={>Duvbfk^m9=zBIKo=4vAy^>5NcP2u2 -zz@Qx${D1jIraGA$^l&U@UHLIaGDUa%mL>UNtF~h+P4gqLaFT-qZC414?**3VPW|D6NQz%XJWTRf$ur4F4!M35B|Pq9VJ4>z$q*a -zSFQtC`wM=mo?bnR5ng@bC&|OTQ26;<&p)ty_M$4pQf3jxs;&=Lzg9fS#X%!JsPnpF -zjuizJlwtopoZp+Bo*N&cWi}v=_VOjCPDIL7$Fi)v@cN2kThp+6%O&fZ4wV!QpDnd| -z7VA$8Dxd=hoTn`JqEs*bep;(4k0wMsG{i1a=ImL^w*C6Sf>r-n%mLgF60DL=V=4!- -zftS(ERov)~?{4zDSI#|U#3YMZr*LOI5iaNZ(N_fJ3hdd!N^#grq}}MxTAF0!Jze%; -z5FRKiT27sb0gA2Qh!|zRsw{86tW}B1Vs9cth(90dge0p8VsrHFFFMD1F4^@#J3#a=8c4Na%}l -zxxVRrM=!M`B}-@bnIYa5V529S7Cv)~6~?OCR^{uSUC#FR+gsyc10@A+!r3}%2OK~} -z05%(R^)YV_$MVgW{BmMNgY;pvVA^y61siLfB@0H*hXX`MQEAa5%P$&wUM78G6?i(I -zeoO}lx5bX~Jw=bh`hB89FRF6VIw{^=XJh~Dt@yJ-;+s$sz!KK~pVBrh*}8b;79qs7 -zeoOK~m%^rNZHTWcWWZtxpJtq8R{JgTx^8ye_tw2u75@yo?VNp5DwxJ_TXp)-e&5hd -z`D@Uj@|v;~=j9dsSz68H`a=aPO6tRt?Re{v5CgS5a<#q1rFxouEsRz4lTMkp#P*(? -zEAGjWKiAs7rjL%}8N+?LC-tuUN;BiJB{$8FU%HRidP;J;pkY9{z{>9@?wEPyyjXwk -z?aCB8RQHQ^Y*sZ?;HVS}EknYX{5b{n4aMrbeGz^9NC>%Fo(QUzC)X@h{m(yaN9e)6 -zt9$t%Gg(`UlBrWc0wl*~ZB$W@G`{Gvtu^fUaaf$Lt+t{|@4lLVHssnZH}1B%X&-?- -z0!r~|swGFm#mOm34wbq=dK1xo+^Bjp58Fnr`V`3q*%PwX;y1M(EG(pI&RWUa7F$a_PEVs~ps#zNsiVf -z=3l{!HXnL#5 -z6DfDhI6P6@59xtpd+=A<@motTcM`Tdc4+n|)Z7L!&&?r|%^`!yc2(}UjQ8Iw?n;dA -z6cL$!{N%CiSBZSvIetXyF-hEDB*0KqD=Bv>%qU|gTsw{)PqKHqEz(`+w52TT&tUcI -z+ae^#A;zBiuaX$1ZZ2ha0U70i*>Mcz>6z3+=?k)I4@{{psis9#G4{@hMi+HN{t_s} -z)`Gi}U2)s#5MG=jK(|=gS@|>Lo41^@ec0)rRfIk>EWaxF&nng-wa~b_Lx+fSLbzUn -zCVA?Q0DvBV=Y20O?lM*()gg6r)zZV*osh~;Pldr`c?glr%yd8S?-v$a=k4!YwEOZD -zdA>wC;YW`7=vC0!*^jk~cr%ema%>DG7n2zU+nAo -z`RTB3>~ZvIbv}GNVFF*`-3Y5anp-kP>L%KDy>{>ldeU$IzQ5`KuE;br97VAB@xc9DA9nA+f{kOEiQ^V5^5j)p&o50w -zVw`99G%gAbxjG2EZcbn@?U29X)<4L{oay+t?4ro1ddkamH&x97xZYV!?;@{x&k#Q= -z`_eg=w_R@Vb99ECj4qlCdFi;S%a@`D#wl<^VlYel(Q-Onok3qrz8y05mk$GT|9jWe -zY<+Lqba`<*ce_qE79$0iX%f=hUWaKURFihRr~r36-cG -zbo8wdVVWz|g23xpfB;05RmxfDCjH92HRyov^}S})=ysCry33=UU4^%P1rfcV>h^?| -zoikpw2Za*yI(46KZcMU|hzx;b%Jh82E`G?@kG1L0dl+$Dy!zrb^Jk6(4c3>BmG8H_ -zfQ7Q4HM!w?cXbnI++m;UkCFGg6sV2ecd8z{KF+4X -zJVSfinoZm=VTt!Ep8d|-bQW_IMeX1-pyyIH-lK9xxBgqjPnFjuF4ZT5XT)R1j$62a -ze23z9DDZbuL3=vK8EBeW)xw^1PkJRP1?ku!rqfI&l0W4t_xoCXcvvBJVNf9+mM)9F -zqZ|6NC_-*LQF^+np>`WS=!$ao{N9#uo}rYK$%S$atntKuS8M;LJ=w61HNV=>%aPS6hthfK>ghV-C( -z#h!x~{LUGbo*y|-pZJ^Xzzm4NJ?ZyMsFa_EKL3<9mf9VHd=%s~e31FPDbXuO#TcM$7M4>oS+^4EyNaflWCoUyMQe(QR_9uRLx8PG0WX!nI- -zF<{?QUi-4eTN=%&1pYdCeY6=U=He#xT64cN>(-?7+C>8b)+tagNn*Jqq`1~^SLNaS -zfW|&i(H;uFtY+~TOG2f^L%+n=0xRcO3=-Wlc8`|drc6GTgC}n;0?zM5ognyZ;%lEQ -z#38&+Mp|iv^6HO}hU1YddO{H?f{giYRWF2fk#}$;x+1%8A87LT0&c?y>u``uFLG8{4>Fu)it2m -z1?!FV649odqEypq?v_*JaBY=Lhcn7$QI*7#$VpmmIdQH$&3&As=U&x%5i)((DEg7bucn%DU -z?Es*qFW$&eZLOFw*1pW^OA?cKwRe>JdOM{(dwHefm$MQ-C7Y%9@)CgCb -z?!Av>L#W6Mc@3Qi*1>{R1rtt`S!a?HAHT7RBszm%%*2LnAl>vcBS^^CzOns -zTv!jW-}pxo?IrAC&)X01U9hXFNcWc0Dp>p-_j`_qkXG{BZ952X0AP0N7tRgqEy{NR -z@_`G0E!Tp$p5pA=Yrn{+jkny+XNd1tY8Le9J!L2e((RbL`D^>B5?<+J)x}Tt;j{P= -zvG(i6wSV?I{GSDN{(|-Q&Q27>wx^S^5no?P&lM=YZ?j&USG@G!*m!O#ck#@;LP!=Z+^|qJ2|s_%4MD8hcUAeW5ZL$z9R~JVNhz*T2U0d; -z-b;(DY?qym|3-B4+-cfoA-lhzl=>RZ|8IVni9HDkkbIo!OS?icd2z#Aa-V5em?dDN -zjM^i}5|*GnCCA$xR#L}jju`%>+R!f37T8h65&AB6XlqPH5B^LGyFB%hdFjkb*;G2h -zEx)yJ8{c01@Cqt{znyQ7A-4=&t#I@jdB7pWW_TC!#M*o(*Z6}&IJ%Ya%>B0V#TT=s -z5x)=!H2+exYAp$=%vo4b5ol<~Gm`F-DqNNIaSW~S)4{8%Ryba~^fe@an)Uqi!LMKL -z3AY#X`R#%k{T=Ur>tnbK8@zW;u!upa)2q_Rn3nUMG->1lw39USJ)cA$m${7lPv`4C -z$8urf$zy7`qzM`eQ%Kty{me@A&GVSl#?voRF#JX#Q{%9bZ5NZxndlj8Awxs`P{N02 -z{usEQtR&qPMG@do~UiR5fX2Miw* -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 -z8!Qa@pPdY;{6LEe6z#aLzx30Vg -zvp=MWyr4mSq<4~K0V;crIxnK=kgCDYSUkr~s|=?iph>LhPY7b4{2uU! -zko>)%e~AbD3952-gyx5GLVEt+eiUU=jh$7o%DXctdBl<{l!NALr%dnf7`|MRDwevO -z(G2MIT`}^eGDZF0J8EqQwcdtXujcW_S=EVS1{wT&J?JUcNYqqs1rU!B~EQswQ_nU}% -z!{dNsv_5v4uHZGgD5c`CL(|ov(5nq}Wd(sq5gRF(9u$OmJinJ8ue$z~E$TzVg#zpA -zq}$W~?ysGH_Rg-9L9?3aH{h4AltL{2 -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 -zuIxA3)!=_8L+g)bp#(Y3|6bP! -zU{OxH0Zb0#r!f5^JPBpP3n7r2!sbb%UqsOA2tjg&_7Y?3E@5;($w2o -zyA!E^>DooZl5KlVwo)U!f5e#K>-=U}bIq9lj -z@j@Qrn)!=ug?$}&NZ@3wz3DmV186lUI}6J&g>>Z13-x<5q-_{dKY!M>mIiI`)pWs- -zY^pXpbY<;#7<(@JQEPzNwb3nn1*U8HuigM>Mm)K@JL4meua)-x -z_^8>^{HjBcJ^_pYL>3ur_RAy*f~;me1>Y<0AvbcF!X)gpOhQB -zxUnxRCc@D4eS|i1YwB9ie=PK -zr(h_+FG)58K+&jZJZuUsZo9#J%QaZ -z;-|ymEq;Wu`}<6gXX5D%v}X2jUx@4!$A%L=^t9Gn+lyq0AbL0w9fn!6M|$eo%e}Ie -z|8B9M%IG$7`OkpGZDruQ$H&KaM#6ezC}*04c7vZ-2W|tng(lSSe4Y8m{lb^MO{%BC -zTMH5aGtrPpp{|xtUW27Yy@Q?^Emg^nO#pHRcln87zlZpJhST?%-Ec&INg}0VW<>r+ -z=HI%5N*Y+P1SCUWw+=c*v>&0<+#0!hfP!`j(opL$n!K^G{Lb*`k`_(-2S+Lud@~$W -zma5_u23VixJS4|}ro$3{=S|C|n_ai}Pl_YSzhY -z7`-_dZ&i(on9~5q -zNy-hF$slW0iqo~cSkbp1WrM-Ez@4p1ftVub>L3qg`Ao@$c~u&*^_T9ox8|6+();i%L6qgZxRZ*;5WPPkjvq``E%N3^?nI*d^Y -z?8&>=&RvW-IH^oX@wgguRI=)nX!7h6yJlIsi~)0J(_Bk4tS-kZo(shxT|GX-mTM{z -zW8-wmx)ewlgp$prG(NtzZ1?!WD$;)}46Ubq<-M+`d4BK1^!HSCA9+U7i$AM+qp(h* -z1`S5ryf*lm<@dMZ -z-?O9-ElE{3r%yRc^94pJ`F?hD`+MkSc%iXL+}k~$>OOhm>1hXoH$p7pLFL6HOR*=?HgHOrE8t(=V6g829)2m%WWMKxBAp$c_B%I^>CjH~vgL -z4qzxfp+3a#uHODS5GzW8z8R3bYAGf}(t2DiZ7BoUiMrX?0UnRoXi5Un*6mCCx!tnH -z?fzd;C!{zaTqTsImz{hsgqk-OZ@#^Z3Y8GF2ZoThKm_7Z#X0ncC{Zn@Jq4*ekD0Y# -zHU`ZN2p&uMX_3V>tBlOs7x(n~7|B1h`1yx6&K&HWY69Vt+O&RZp$al5afuz1{4cz-_#7EZmD(&KDAYLZ%%Gsh0G0Pw!#K?W=%d%^$YMj+5$fB&KA=B1Wd{ -zF-$P0Wh(b$Q`0M$_y|M#$o@*V-2>#(B}k5|YlTo2*6@f^{=`9OsGbx(iNUh0ABc3G@rpvE)nDcC*4qVBIf2Npn`Y$d}@Q)fewhWDVH0{|SAn#g5!v}C~Ftz72o|G($ -zRM7mKK`eZQKP7Hd$nngh#9|*vuM2)R<`M{!dxS0=dI_dE$gzQscU!z%^Fu7@E+Ht& -zqEZST&J|ZP&Dy`Wd_WrwPUss?^KrRL_vLefYH*w3iF?@VM~|Ins^VT*67;2=y>e#B -zBkgvmuGHVh)iQy904*6Ux&v~}^P`!BBRi<)Y{~n*;JYyGHr14?A&_4JbwMn8Wc7Y` -zV=3QedtB+(G5D4Mn0S~E9$Gq=@JZnFJ)KciRW}wGNf-`*6`Mdog`cq&Z<@I+w-PFf*J<(T1$C5@?Mic -z5xDS5fo~=$iMnMu4GXE;(J^G`X%@kz$=30KycsZYU3x#`+I}9ZHt_6-#Xj%r25yR5zBBxQ43iK#|M}n)EQ+-NS$8!YTKyOpG*q|}Z -z)7n5&e(h@&R9KWH`ISBcR#68wMN;7d;Y|2>HVGy-A{mH}ZmEj=JA3p9TW4p&y-n_| -zZn5KxM{fcO0VcKJq*zzFt}NJM4mMtprjAYrUsc#9;_MWZ#hOt`n5V*qWT2L(bK0y; -zv;X>S$;W53lM8k#-|1<69L{p!Mj?yzX(zo>JFO6n?Bze+$c9g!kA^wR5=JcL^Nv#U -z)%OS`z5V{-SI)|i$-l0YCtWp&T3HZ#7?$pCVT}gYQ|py+-Pj@U+Kl@v&MKAsGcCSm -zNV3-Y8J_!y<{E?;V2TGPyW^C9t>Mq -z!Pn&AbKrMEM#9!jZ4LMMO!dJvZ126tx$p@0cy+qqxbuc&u{!UOBn<|_ii -zOlENM9}w=Zr}M{)Ns;;K>sO1;YFi0CG~c;Q@Y?!S7I2V>bv@m6B&~bDGYFmaTs-Lg -zp|NS+U8}PZf3$ynxz3Ghbr_H=l|S!8G-hHP0mo?e1=2dFj1P?~`Ci>+L%?eRGtR -z4t%z?`Wx!n=M&l?Db?+O_veUMIdm*-4I76v{}7Zzg+sY@sN4rOZhgKL@!){Kkpx6= -zDS9H)xyJJaIJX8G7C;>j#%g0Jo9_HkfpS;_?UY`?R^Om8@#5Z)5}8eOa@}V%pE@Tm -z6;r9D$KSLAd-xagoLF9|lB{{aBY$H<5#-QzPI+}m0-jA0UU&R*x0xk5b@QSPaos#e -z;^05L`>^wjlS75ILvEMxRSb6{j;ub95)2P~b|yqe;|;%jJOJM%ShF|EGxIYXuMgxn -zkGwJGhm;yNAE1ISU!b~Xi_3~ELK8*1d4*JsF{HoNgb6Qy0~rHe8hDCg$p>SKk4xW> -z?64A3Opu6>B+T-o&XG_6%u@gxjr?MY>1@%dIMpD0&!?H-e!`DR2*xJ<-XD|1Pv|B` -zUOQ4QS}>tv0$aER?lM)Hv%#;|@(RSUXFaI1NVjjE`u$oOXdZjI=?-54Wu-}grNrji -zw@vg9Xml-K7&3H|YLVr{d$YUx(2WhG*l%6llt48^OZX%lYa$YF0JnpGN{&}(m0}{wU6&uX7VtAt<~;g< -z^0+$u@%s{Jwq&Lt@O>Y&p5DZ?OW086bQwM3j4g1iMERk)Jk)3=I% -z@^E$)eSS@N@z_kWNcpDIuII9~`1yIDQ4N#QSdu1r2Z(2h`FKL!6a3+G6HxpSFk-GY -z!(f7m*b -znJ8|%4U?bkd_Vk`m$$ahS$A29Mn5P2@+etBR_aV)oUF2yy+yrN{k$Cc*5SS9rsLXp*o{4uorcv#MCSYf#qq_II#ZeI;e6`Dif=0){a}*v?T@ -zSO864yO&YD>d`182Vp9CC%$+SQvK299#Q-wRx$EOay*oTmCsK1n7-J)ys6E~0g*S0 -zcHg^@nYJ)!Zan%cF?tNPcr>98!rq0a$XeyRqwVCklW!;AFq?{3ptrMVE#rQPoJCWc -z?>K%1{C7sf4R?%Q$9X@uwJ|&%k5|*F-Ez&pChuqEaG`i0W%DfLvnlhbKHAIsyC?@} -zs)u3~c>m!5a~MjQTdK65S+@*h?jIqpxnIb-kPaQb(34RPw;QyB6yq5-M7e>Z>|=b+8BJJP1-yf9%3(`Zipoh`^&f0=aP- -z5In%z*Wm9V8{nbqSC*F+%XW^(1rWsgMRQZ5y`XIiTy<$J5hYflMG6;fi1$pa>4|IM -zj&;@*M4i_W3jwFr<#e1#D80i^ZD4ki%mgqS7*@?nlv)12>RN31l=7Q*6O*I}e_R$r -zV%eX8iCKjfplnxww9jK$V*dBTC+9_5^_%olet2T|5~p-QB$M8z7DHm`;AMMqYv6UC -z=mkoL$1vQ3g62YI`}MF-mPs#>G{<}1(Gp-|`p}K2dXPb?J{i+leZe+redx%(W2yd; -z?FCUn(=+qKmcc&pr(o#^#rs)J-j7kjVh>tBoU(WvUjg!rUbu$GLp1O5tM1JJA7Ludf`~#o9VZ?tc%1PV&>ow*u -zs5wy^9*()Ek8YHgbp@?N)6}NMAvDvge3sO26O#vIl0TSJzGArM^j&ksROl9Wg)x0V -z=t0eJ+CW@%yOaYfXo3n0WtJ}Maa5L{s0@5HtP_>tP$4lHW!|0>3&L&IS%!511_qjM5Za>iG4L?O!c6J3bN%%+Pxt -zBW{+|zHsBy)(4vOUO=$J+(ekX?YWhM?0J!ZeI6q0r}ktY7D3+*XZ3COY?OtGpuvo7 -z?1u{cUYIWGM2!D1I?p9=52C%(6!4GOqWSmNP4bKb8D=sZ?nXE{3+$_u$`(5%qcRp} -zTzDOw`!yR#xA7Ita8Ob%Vmre_@qXg6293BxbY$>*l|R8fW!Zy{+C(035K<9me*M`4 -zsV4-OV$_8h69f_&rR%-@4|ret82@HlJCGYYWkv#75X`USM_rDDW$Hr)?WC?fVuZo-6*I=ih?d=Qk8=2YB!6ely!qoR)Waz= -z9oyI!1*tPAa_VWCHE3oE`i?lAX}Z4ec(Y7@QyoYhua -z%0h(ao?rpdEi6dOt=#=DrQuOCxjkc@idY;&T`$c)sw^-#V(hS$imVNR*FTX7Fk8hQ -zI1%P8<&f}lCCUuqC#u=t{GCI9smdBmKW{13@vWhomOL5@oOuFtG#KG{dJjG2n;j|O -zN@#vsmmTz0g3ULI1*DWoabENe)N6YqP+;t337-=rL6X({{948Tc_wO@_Zf(gL_1?7 -z*$ek0ZjoEaGi=qqiYQDkdnN^xPu#y5B;z}8edncJ -zbjywb>Ny}Nni)&>MJu8Wy)AdRVSA1Exc4AiY*j;Ed&)X4Mdc@&>kxkR(_$!mY1R@H -z>c2?7?pO{_zvrx+8_yZetaiN9N`5NhK%Xy1=mY2O4f$&vUnF>`7PZ6$_dmBsFIk~B -zQxjF1$E5Z-5^TPPk$ylz;sYtCOj{vqPj!4bkY;(F_ZSC5&^eH@8afMWO$&ymbHlpL -zu(D>Ih;xflcB~>@OeX@R!w%coMTnZS|H<{Gb%qkVGweF%N>uiK5YzFz*OQMd2S5GL -z{Bg-QE1Sb^Y;*~3DgsPn -zK5aF?U$|`2!R`oDX|z-n`)lM2%|at?NY0Eej^Pz{(=Ba9gm4LO(g(vMt{{Cg$m^J% -zMOr3b7G!^5L_@an+QF&766|ROtuZ!HH0MRh;(tO~<$;I?_jB54l*kP4H5@#+4G%?J -zYn}6%JC&G)%FBQEdm=`KBpPg{%ieGlRE8cOSvYP`Bk-5ezwwNG&I&e~xeb(|X;<|l -z0w5d&l;p&JoodraO|u`E@|+gTUboOrM(n`s6+sZUJIA~H9`qtHRB}O&66I#+|59I)KZ~TpC8tbu -z0(M{iN7Ge@MfJ2%k?!v9k`C$aMnFPR8tLwm7FfDLx)cyWT9Az -zy}Ng2?%bJo-gDk_CZ^j*D~8nR^E7Fg!dM**A<69mn-j}WT*^+`*qfT5e~nl(%XL3l -zz*`5a{7=H9`qF?a{W|hmp$Ef)v-i%y{}G1@m&{qKl%3DZJqRuR`c}^^vG)an)a8uAEgYKg6Zvj^0Jn+ -z`|cDXzEajqGDKR<-bYzLnMAMPr#}A)hAcUFIo2x=dMng>70e_~*q%U(K&EcLj -zao9&T018SE&F&Wd-h^p5GDi5t-Rb=X_!4~S({XMJ`eblJNwI^rxkm6~@fuWp3kx0V -zfX1E^=}UzzUD{hR=AU7+vJK7+0-zkFH&Cx0i3dLbv}}J)gJcB1`pMbQX?T6+(Z&kaK0p -zNiD!g0VJ*jK1m*acS?3w;UeyBWNAswAfJ$KuF_fm1PS)-pdk{4eFRNrmC0UMPPUof;BY&4kc;wLA)Y&Iwpql -zF@`e9pi1;8F*_ -zBj;p)^Z|vCfG5KP%dD^9N!j|1CM4iopd_}%YyDKyvv|4GMhLw8`ikt+Q#Re{+s>9r -z#XuYBsDIU1R|SVs)>R{3GXuIHm+miVq5^o`%H6@oB1t(^oNrC_rbBPX{_iE{Ge=u9 -zB)x#0ncVQbl#5+)U-rrN_tW1fP~KOf0B|=N9BfP~(H$F6j}X7rgj~NBdME)eoQe$x -z26*4%dRY?nw5_pUk7>2KHI~8NsvkWUWs>^=UmXubF#Ftrt3D6KpSW(dbEO-A^XTT2 -zKsIz&@MgDj4tF|i_Jx}XJdk&aj>A4Q{7oIU{QgJ}zbQR@0UI=M2f5#5FEo=dXG@h9 -zc*P|(R5R+Qsv)Z6u{CrY_IafN?#y0sMI23Z=(JSdg%-N;>%-Pew`kFog*(f0VT~!#E -z)zgX*P~KDhT$lsdRNXi{puf_`CQ8|VY%b7FDC%l-)S7kU?SJaiAr~`h+6q>UvgI=avJy?>BR@^Al3io=pH6YfCEJE;fnyU; -zbc&LSA=&u6Ivxq)dj6~!VsrpU826tER# -z(v!D4b@w5(yNWoy;3;hl>#^(!v7Ei(z-x8q=zgfN=%Q2&jx+z*Z&JPX0|E5( -z-)?+t=?#4paD{Xd?>o-;4}APv03>Y$$3g~%y1wy}-D=u;f;)Lb>eg`h(N?1kn*mN_ -z@b}peAfXJXSp2Y(G$NJs*=$w?J%Qz@I|go?5YUFa4XsEqdUL+@6iScL(?&gse|i8{ -zgm&z66rE$=s(-!AQFA%pM=}E0hA%r6RyiJh=Ue@N5@Uov97YbVw*}5ulHDq|8K$&p -z-s2#9`6uY`vf4-*gCB9kaIIFxen6{$JaPU0x1D))zG057#K?J&9~+hIw#aZR1bvM& -zFft>p-DAgAvoo^FAz^Hbc63|%cv -zSF*~s-k0U^ZrTy{JI;Xw6#Nn%+JPjtzBrO)@?oE)6$G4N&jvWFwF^^;0>Eu)Xep45 -zzkCywV@>hl>XMVzwNI9z(>!Q&aqBF(t(*T$x1-VC)bI~nSKKgg;L7=V(?b!J~Q@mvQFi7IpDnvF@+@! -z;O3J0@WjBS@(E8j-+m2S^|2MD6`T&f86-EyH#N7$#eK+fiX{)vJ_L7TR!?`rBmS5{ -zPeP2;>s4pXFEa9xfLA*-^BI4H^D&fM42U)nYQT%L8OTY}SC4)noAL8#R2W=A8h-pSKDH+_XIc1SBBWzWW$F9sSkd -zEVL(B>g`J8*BRv|CfUg?4|iy%ID+1C!#U3Q-oIF3_8J3_`;>#ChPs^R*wJMMP~p~1+c5T{T9XAO)iUmm@Ueg -zlkkec+RIN2NwUSHojrAzz<2@kURsrZ*i$qtF|&_P|09^x9G}z_y1r$`pVRVsGrjY= -zuq%S!Sjr`dA+N4}1gdv0^lX~zMNS$hKA#VXV%Hs~Ij6N~8suj2s72#_#F&AU&c3Ds -zPGIw1!5x2Fnu7!XM!2S5zBt1IW&&MVXGp*{Q7)S4ay|8qllIKQ2Ci#82g(V^FTkTB -z)LvqTzA_-GVln6&G4p@CyV0yY?0JDkftf@1Pw9y1L$GO4OF@|A67s9%B{lC}A2<^o -ziFj?H#E6Ufn_O%P%$C@Nu#DV@lD>LY7W0j(7_~jHlM|IR3BeHV -zg;k~QmWy+t2M#S2ceJPa)2 -zZ(dG*4v}+UP0XOH~v9kZLN_B>AwFSTVR}^kRI3-{9!LFUa?8ImDgKq41l}X&ZBt#7$5jPsx -zOMIIzFvvFB-xU_rhyc|`{9vBw<_Od^4im9GsH;1S{B~6i$VL$Q*>&@Y)Y626J8VvO -zeSKO^lN5PPAgMx%1^yTO*myhY)z1?)PuR4#gMtz%l>oUJsDi8>V7AMmnemsAvD(KE -zb5!!nyKzrt)S-0nT#_)SjaUt9;X5iI -z3CcTZVjICFfpdl&>=g7=bZ?=m48swr6)h4;U)5U>O6e|v=>!k-8?~Yr{j?M -z%>wS4Nyh4~=8{wKW7v8lg|pmAA3F>Er8naJp3S@gn)g2;cPgsNl9io6@po=`$P#z( -z{l@$4`NDKcQh0XxViiyuCGv6B&!melK32QMT{`;llM-Kiu&yc??&u5xd2BJx4~YQ^ -z^pnY)cesjXc$&wDj2kQs-rJ(aIUJtjLj<1Ba_(h$Xw(*Z -z&Q)pKE8DbTNj|S(Mdb-YNA>-T1;fC&trWIX5~l39p9VeI;?G66_?+KGEurGT$}a&O -z9A>ZRqgIq&*E(2hXZEQ0`)LUTAdDG6+_yT$Vy3D##hC76tD|>7WKMpxJ;^7v1D4PJ -z2Pz&@$`2=ZF`v+o^hNi1P0M*-%QxHQG;(b9Rs#znIZb{kYk;MSjYSz%w@wj0B13FJx+?J^NayV}uJNV`A -zWoO%1Es-FJZ`O3T;E_!;u6UBtoDh5>NCG<%0hCn6?21F4C98k>al -z*z7H!#}_xaX1I_8Y8zA*UBb-4Y$$Ym0+o#K%XH2o-=wGx#v(f)TGrXtaU;}CB{ZN= -zL2t*-DiU{G7w6|)Br-p<^6t4s0B8Wl#YQ=A*HUkp+whi?Rwt$s-^f5HlsBE)75vh2AXmbpC@a8XDyYBFsUHvNjMcC1JW3=n8g_JTDn@_fPSsb# -z4}@bv#k7Ta5v4Pxh>tKK;9cSLy&7z2==tQby3WbZXdU;6sT-62awg60%PiC*ZA@mc -zaUQTipKugl^t;7Mvd&HSwU1C1KUhKkNUqyPvKwiwl{f(h{22tS$)rEh@uaDgn!L>A -z6is#m2FOvt6_ipMmd?8Q5_?MGB3lC3Oe*&mQh0YodrAWhIqi#f*@)jo%}bTvve8TF -z+aoGj3fuo0WRtxu9zXMEQ^$sYvlh|_bL{%BvD>9qKs9tSd{vPPErjX}o~qE8N>7_m -zk%@?YK^~A2TSxPCwcnu{>}KS*nl!8R)O~piAECrj;O>@-Pf+k3nm<#-AHPf&0FW@n-hxNlLN(+ -z4_{(kAma-I@=W;3iGFWv;#!O -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 -z`zZJEKR*UYs`3Qn#U62NIr8^; -zuU#YL(QkNvee>CLu&d@p)r1FN=CbgHjH3pBvyL?{9K3RO-r$ya+eRMM0)EjLIF^-n -z+^r*SnFX)2B?lFc~dfoU(6r;W?xv%N{2ohKy5yntjh-Ee)%UM0b41ts8f00porLA~BLkLrrG# -zh9=)(aP|0u4dP#|$8@2~vzm*YW`9>OR(>keL+FR}l=jgJ`LPY~%t1V2CE3=qYw(X$d(}{Ftkd}H>0ESm6k9X)(R8rF0Hpq~| -zE&uL2a@qNTKUh5x6@(r>f2MYJEtyA*n2Au55K{Ftd_;W_3x7!iMTc5eo4i5$%7M*8 -zAw*?UhbY=^$+k<;x7u9s!nwjjMW8ocPuEZyv9xI?ni0CHjEy4Qo<0maPKj -z2Wx2wo5@)Lo&&JyNKq$`W6SDKpyI{H=p1qKFuq^5DNG5N)0}*_KJ=pP38W?)2+03g -ze_m~778`f@5UQ~vK1X&mQ#Lb3sKl&s2m^D908oMIfoDt#fJ_b7z3ULG*K)hEiiq_m=bJ5o -z@;PANn)BnTLc9+5L3s31a3OzFe}x -z&bJ-~7(hMsArXeQo$Nb!HG>ON3;f=KuM#PDOpm5OeF(sC0BGrJ73FZb@DANTQsyD46%zbr1psv({%lfhy{< -zz1|VEPSW`Cd5tJ9=DsaulG7+7G(~W&Jdm!K?XB%>|Ay#qP|PV6l0Vxh-Y}Y}>G!S? -zB@bcltT^-KJPU-H)-Ycg7DzfleL=p6j_+b~np<&*H<-*;{oCA@A%uV3Pc1#<=1f?+ -zPW_l_2x_J4p`vKgvbz}j%y^K7FCi9*DE>pN$s#s4i=X$xSaeRqijx27A9SWF$sfEw0jjywa!115A{2KUWoO9c^mn=wPxnn)uSBBjd%iPWg~_1?`LCWF*V!c -zf1#Czirhhzc)MmuEcu4B_gn=KPm-}#fo}rgEP}0I<7*DYhr@eAs?7<|kq@5gCoC-t -z)i*4v`|d_nqF}Q;xs!r%+VEkJ*M>0d`WqysS4EP210qzMAaOrb%~x0}E`@{*s*V7==Q5My|NS{W&V)zttTZr5d-f|wHc -z11Zd`QcQL))iZ$;%P*tzBiZ+k-)OGSEIQiEVW8JSpiK^bA-?>?7q~7r7@8WdR5G!i -z?*s@_S~7`w0k;hRmKZI}58m2;-P7S`#^PuCD`I*j#B&yI2CL8&%^CGF{MQ28Vkd`J -z%hjs^U!deT+3?0{ZpM&tq?5WYCb5IWF^Z1sp~rS&qeOI|HaX!?gS -zmrl@$Mm=6VxZT2W-6!Q;322ltswgJhDNLE`{~q-_T?w?}d`qzEL^vU8`j>O)ckt{> -zV*ptM^AiJC8#IK(h`dtPyBS1P*}~B)sKVdzd&Gg?6&<~b4{t5~?3W-d-yo?}4Mpn^ -zGMxIVerzqSXCc0fUFlo6M6YD{79~Ld>U~=mAJBbZi^s92_+k86n~(D}MH|Y?!ch3c -zr|M9O8Qb^?2A$W$YN3_|T|fKY>iEC+MU@4DfzxST_@E4>c3MGC0Ae9 -zzJ{8)gbHDWmZv)W5A2?JXEP1lCF?4wr%nf9NqF!Bl}5*3%amvM#oaXNidaq74gZ_Y -z-OQr_(<+~VK!$fg3f>avGfaP#v%7)eLnB^Rh(am -z|D|Q3LaLPB{*6hrKSBT43j0$)Q+k&2Y9}}WLdEc5kbe_hv_s+`Z36U~RrnnDO)^@yrbbws- -z!yL=4w|20ZjNg6iTkLnMK7FCbD_aQvNJIt0K%1G?K;|D{j9Gu%R0w&sH!^xlt9!af -z1>=xvVtFKuWdbf?2CDR03cLt>%cC}O_OX-VbXM}pgU*c-tofZ{VH7jiM}^aY?gNX8 -zaz$Dn$P(*uRV#)1pZ`vh968)yrcvhLL9-p3U8T?9l|P8yoRB6oB`~RX(|F%fi3p>E -zsIpDF#Mv}~M>-%^e&JD3p2(_91MSN=Wm%amU;3a~& -zvn92-humA8uB4S%8@!KH%(}`4>+b^1M -z$8^r%tr=mlS-~i+wwoX2ea8w5Y62FEG=V@hCr{DcY*duSPD(pHn4=((B!COO9PMv7B;if|N_4XN3e89KY -z+ly)->!c-s0;Z2Sd9zv{4~&8aa%=W|>n -z-%EI2Q>BIyKJ{Ag95^b87os80h6+}`Hnf__HUc5K^s6NbjK$^bSD#1e5?zd|9iwK~ -zp|!eobM^&W=)b}C|GR4Q2j718azS~$6!q7S?g@-c8ZOrZt>mwy`D`dt!Xqbt7^F(? -zbV(vQlFTUmd@lei=XC3DZ)1s{-ey{lhw0s=|G>|Xj$plY%biqR`Qpt1(taS+z3FIQZ}_F?PiSdZTJ#lhID4SF -z=4ZRecWPxsq(CpO4s-mEMDFQ$MwO1iEShus#6-XH=-l!Tq8d<)Q`t-SkS4D5@i0}- -zIM~edu|@lF%p&|z{Uq^U0K{?+*Y!`~9yrmkx@5Ppa6Pc9*~mwwEr<`V31vN8WVP)| -zSIx@9hKZNdOPOGFi0M*djipPc@gy4uPIl6By?i+@0A158rK!=2{O*m*zZ!QPQRNvM -z`i_%iA2}`S{MjLgj^F7qy}`T}v&#hD>3$-ubvdSe-KE=NO@W-sc+D4j7Q6PP!PgTI=K$h$7{G?L^nWPaX&Hk{1KgKQDmlWUuHzZWk}oW1%yG+Wb-jv+$g -zPEf<0B1bb{hkE(orTn=0bGNk^Re5rODq7}$l -zz={qezg)e;VCKj;?$zNhXjmt?!a;vGHHEe4QwKtVG9mJ(Qe0Q1d=IA2UYw6k5MyEr -zIlMxWut{bdj7CvH*3~f=%tI<8I0_u7PAB{-(DMF&%B54I&}FAEH^caDA}bQ70)1y4 -zuY;cmePl3yAb84Bzb@JEx__aJjRg`YSY@?{khBgob!64y!gC@L*nZ3`ng1F)8c5CU -z?|cIu-M#%rV=m=DFO9)thPT*%^<~4ToGnylW!qlULI&0E!anueZ$Hw#FM1#?p#ZPF -zFH*%Ema6|nuTt5bJa{WD)t}7znsX9f2_@xk^J+I6qUrQjgdV+0Vg&C!aSW(v0ntcF -zB(lFjy{pHfZ(DFO-JSbIUdlIs2b|=ia2dama|25z{5|{2V$N@V>#J`qCI&3EboFXN7auFJ0-o8TuSk&bsv6`%;2D)V?T(1$DKu)&@(P2!6o4$MGM6g$bz8cYX_V7{M(Wo~DFoT&!OgQqV2y0Eff47;p##UraMdf+HttoXf -z=(zLZD$0}sHN7S>S&uj~opwiZo<6r+@c++hB7ds~P3Us(1lxP<=Nk1X!WcH}0h6}` -z1D5CkWc5$AUGg=PL=>AK426NQ-}=!eFZMn9GA?lEs}iKO9=9A`!io)9fBfE5Zzr+m -zwG>cNKX}$a?2)<4)ZM3UNJ2$C+@@z_M@o+HFL(S}MnEdyr;}0Ax=w0vvZD>FumvRS -zEEK4=YKAzdg|3q!m97%KIguj$)jj6>W(oJYli7(%um7%`e- -zalA&dC}$rLck}Hgy?pzh25_^7>&IfL903$_G|^IzBnhwmIBbkgck)ok%@L$G>6~;0 -z)ptS|E=~v4AfZd2-1=o1SMG{p#FS3}m?AzUU&u#(zc6T2%#ct)O(U -z(A_zqe{k5RVt05K#)(L=w=u|f?-LG@Dql6bp=vJQR4H;rJT!szW!OzHMYH~(tPz{z -ziJR&pbO+{th)aIR;yBn_w=OltNi_;DqM^9W$Ktz32R(t$coG;Q`D)v`JTUX8YCG12 -zov9HTvUy4|_d;z8i~ni7t1y~<5=OyInT{vtQ!NhJveNW}Biw?`GT&|=g(%d92;EWN -zm%99$k`=mhP8+{TqS07AE1~%ZmJT&T6-JFwP6J&$COifNm&^(e?oTNZf+GHZ -zJhnJ5^eyPzY$VC^-K#V^C$YafqOAt*2Dl0Ql -zqKA>8t}CM@KDtbXmP9&+jmevmy)#HBt!QpYSQQ5~V+S-lJ1gnmt+huA3KaPEfZny< -z*Fp$P4O^zUZnGYGtjVQRodFGtWHrrQ{u>l -zlkcq}4`L(SIUY~;GvJuYF;tY`w|-G#WS9(rf|mb#!A-bMa;Is{J1)aj+}+O!U@vj0 -z&nJpFR6Eu~_3YhQjQmmLw47c)u0jlCXwMG2AzJG^77FNCpruX0J$*P@Mg~MiT=7Av -z`~pSph-T~k35frB3W0U{>tUBNu2a^UuxH=R+4IN>^6LHdi&cp8MJXs}Kwlvmm29(; -z+?j%&B2Jcp18J*<%<(4g_{0+29lN|jYyf2A%!(eDfj#gvfmyL;!R_YVI7x3cQltvlM8V9u -zBc_XgV?|ZqL)Ex`^kU%v6r$`T;Uzm&_HDTq9hI`z6VBl8&~Kjo-w%b5i~d^bQ)fbj -zo4VoTRWdH9-{p(Xmp_D!CF@&|{#d? -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 -z@;K!=) -zJ|GEzdc?*orG|c?hWz#feu$Zhw#KRU+*|Vql)!RmLk0QrFTZbSWb={z6mVCz=vjVB -zQEU8ibHhytsvLM;fh(KcQsk`*yDxQqHbs9RwjP%%0*#Er -zwoWf_W`XnXN8qY5g8mGORRU@ELgvOhIR0)yT_y1I*a>a6yYUv>`c?68af3oFp*?6e -z0mP($bF6q(mMSXcu#O!?CU)m4p^ErRZ%Wu$93pt`l$t -zt=rtde&2={uRN2d!`^YrX)A#@MsT%Fa~jH -z5ZKP~j*&2L)BXT$SNn$9iR=m;>lj=&VTFv}Mk|%xI+1{E^>w4_1#-7=7ys9(5bYh?q~5?ZmYcBqY=$uPFDt^7N&$Kgz#svt^5>U3 -zzMJ*`nkGKY4PP%|-m1~g{Q(!-10Sm(L8;^)dN|oPp=Z -zM)p5kLyT?HG02ss+R7!x3cCPTYtljUKj%~nMt#e}>S9V1 -z4DD1#Uz@JFDp$;HaOTaf?@Bp>UlZf9EO)cy{pRf_>Auig1PAiLHn*HE_wAIN4v$VZ -zW@(U3@>PQV5kmN?U5l_We*`E_{+OI2>#%%pTLLE1`^$b4hrj1{U`vF8LWmr0taXK= -zLff1j2WmnXaNNP&DZS5{R=W*cc(io|9gO@_NbVix2?_UuTr1M2Ivf$#wP>aQ>*^T! -z3CQzT;`okfB5-0eNt^@ef61438@gz64rAUMybX^LYUDd@! -zt@TRqt{rqxpViFuQAX&o%T#MupYTN|77&GZ`9w7l<*mr}pv>ghv*^SS%W%4!ht*3a -zVOJ7yvXdxZb+J}m3?Az?H8nSR`91z_KfwfbClhhAm%y&s2TwJkRl278*k^YxKBJr% -zh1bz%I!sW_b$M!cKwJ_F?dw59%n~c;OEt>&J2?I^nAN<#t@ucxJNnvUCxv(D?XD6# -zG?^+Oh5>PbsbP3(keF`Dl~(CD;1I@)`z|@-j9AcyFtpiqhW@Th{|rseMSG6j#2qD6 -zydjr{tJd4%KsQLxnNH!|D*zB=Xu!*o^=ohu-b;zC_xt`IdFq#d{>DY;g(e%_Z)ah= -zp5&EdZbotA5pM8WZA|Eo_2vLZXeeR>+$)y7YT`+K+EKdNht11K-{6q^#vn~W&i$S|YJYok+{SO&Yj~dAyWBcToV&M;{2Wi{RhJKq -zZEkIw&)_;rdS@tet?Ya**PXLuv{@22xRyOhh>?cfE+`k|0`8?mYRFM(7G_0b&USS< -zw8Xz(x(2+_h^0^!O)zwLrNU=x&Vsk+U%o6 -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 -z)P5N6fUK1`!Et-XA$`* -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 -z2b!xiGJ|9QU?= -z67xppzAt2cOwd3FTsvOw!=HKL=}8Dzj$J=2bt*GVt%(xzP?@@JrrL!=p=^}?+vFMe -z`)esk%uT~VNTz)RD2kj-@~!8vt8HlGK3iUlAZt+=2~FXea4>btf+&B0X+wmj>Cs6# -z=vS#?^JF;#N+0*-I=fC5iDXf`&YEC4?BK+y_l>^wIaMuq@k~qRNWud~%QKj@J86-h -z#36ON5AX85g0ui|g6W^69emmvNFMslk!d0Zk_>j`fsk?d&BDlxx!6AcIREmVUFx>h -zQN!m}=C(TIeKUuH%8U)3@i;L@$B_#u?266KjsSd_?m73|`5;G!3*h8b?%^E&);O(i -znk}0~Ht=Hn;sp0&_X9nhH6Jq4+3Yp}7d@1{&Q7Fd=={1ury3Psb75)3?${?om_33Q -zOj80fhN(RugWH%dX+uAmDJxvUFcLQJ0xPBo+FqiWkE!O%Nw594@wHlYKLxD##Pl$F -zC|D}=0*ob~JFM_-tcGFZoPons=FSg^Hi1?^Qpvt=%OteDmo{sfi98;0ke*0o77{Oi#JZ(#fAhj03eo#b3{UyZPJ^1froaT~8pSu92Ci-> -z+p5DEg=V5zjymg1D5Q010!+K@PbqV4J~p(QT9%7HYfKl%fmr}_5)Ry^B0T=e?Z@^Y -z;NFBMv#^pI0Kr8cb9N7_`VuA<7b|^=3pUM{&!E)L>hr11L)E9mF?s2^+M^4?Z=<3cJ_+8G;-IU#*%PaHQ)z}0BxFX*Dh*WmHrP*sRswL| -z3wVO*1bdDS`~AT>RD=TEZF>dw>Sex9ahC--J^q=Cw!A@|_B0NL%0aw7@)NfkO2%M$ -zZEb@C-@fg}5jvdn`lyqF_EzQ-m8Zm~M+qm+-i<5x(?q47fPpfNfy14P0mK08q)<(Q -zdFvaEsgoEKz6}l1FY_Bq$W$9OK+KP*`J1(fMiAb&u9k+*I}O(dKFQfJNK_h9bLch -z{5n)*I^qPpqszxd2=FWs)b0ymvhYqs?-oV?CX*j}<(-#w>T4KFDEe#nzB$mXKF)H| -zB#8@Ijnm=VWIX@WK7s0&$m8}8otn}qE8rTpQ|6BTGel99DhhCezzA-WwpRpIGdluq -zaN`$gZa*Ch3Sd?hgNA1RBec-2Yg_v{5fvnf8Qmu$)KfzeXl02UJRF$I9^21$*tc=R -zHT1++0vz;wV_}+VBE0ag06!T9Zow?D59#U6WsRY#1qJ5Fz|M#HjbQ_rJ+Eb-ng={z -zzq05&aduFsCQI(#-M=L&d^jq%0`xbGNk-OO3?8;P^4U? -z`D6Weng@Dxfp3qMq}egXU8u8XLZGk>D1wJ{x10+b$le-xQVc5F80uP10u -zLNe7$MbSeUUoBn)Q(X(iyD_n{Vi}A!lL0K*KEH-^v=fq#^_J -zQ^zW$+#wS+T!8wMB_Q*-=(CK>u^~u8tLFoF#IKMf7SB)fTYk^%#p=knlcCA}i<2%F -z8a;l=5o|8?8LtfaFMf3KH5g$w%y=${{43mdG)OOO>w8le44VPdQIfB5ITO?Zyx2(O -z%!P=3y-3uPHAIe$#7XW-5LUcX8qWJeXaM3N{k_#w_rS*Y&!j4xcEfo(sLn3%PzLgh -zgO!-1B%@Zt1$ZUdpO+H)>WDfDDaE8P4nsNc8_xef -zl_oZBQmBUr56o5;cG#8%<)aoJ_NVp1LBCu}+$W_|o@D=vOA=Xt2TU2*vEj4FRoIZx -z&AV0y%wyI>#Cst|dtl=LJ5%~ev3ouDuy={r6I}TZKRU>rajr%+s~W37LJ|m-8_|;P -zGQW-!M5I@dv8}!Q^W+W#E?D!HQV>}Y%RZtYO@t0ZQI@;P!cqUf=oI(movhE|I5mq> -zsBJ{B?aj5q6NUiLF^$wgbtn^_f -zV%RYQ-~!(x2h-)^mCnq7j>$>R^$T`T!$+C -zn6b#bt;54NGcYS*1?jv)+uJ@o(fw%h$wC22E)R9HJL3(d>-X`=+i>zrfD{DGR7&O> -zc)EoR)Xi-wRd3tJy31j45gCe -zuhg`3`XBf7C|F(Cw#w%6hX$IkPOAL$?XRKDsYnCyRNK}_hG{f)=s!ciIS@dMXDp%< -z)UY?E$($HrERyOjXn5eKErz(bh7(cSh5hKT>kJC$w}s}-s~(7n!YmQwKI!;o1 -z$7^J7S!=Y#oSH+Rj?Tffo=`%A-Zz}Uxk8xPoUFdQnTXDK!}3611GshA8=*h8Z4o#b -z(A+FJK0~x$JYM)yxiZQSJ>O7(JVz{NKh0W9^)=d#`C?_ph1G81$0a>Z9|~nPl<(0Y -zw*W#on^fDW^D0U4!tFi7$J7G$a)%3DzyW3-*Ct4d2yK*bp^tEG9}xroHQ!i?Vrt{v -zVlcHDNZ#a%6CfP=`G_%>ML^6+CG~nbT@`p^VywKL~#*W$sS>UNjO&+sMOM -z-&&b-$fPHqet94qM??s~)|+uv&1V)r$gv#?P2jk#-#T0qZ2Y=rIKYW)Lxd_zI~brMiqLXieQeqAUu&olp^&c_xk1-x=^}kB;e=+0Rpj==RC&T -zai33=zB^M5aFN?q%b<^qN$W5n&o0^S=k`arE}>_gHLWCMIMF{Id=y?8*NP<=MBG1) -z&2|XD5?wy|4|BT4%`A2*e6KJnU0wu`d;4b~u|jQ55VxFf0F)b`D$r^kWF`?zTDeWb -ziNSvmSC8PgUH>hL!MnD3DOgE#e!(6)i?r=-C_EV#r0;TNHB>opqeCp@)XGyybPrJU -z6@)=-Nr9;;+!xg6Z8S6iz$K9Ih>KN6g&`rW@OTA#s@e{(&ixoEIQ4C$>M|_=Sx%)N%EZDlAbRj*YcfZFFW-v}Bl=Gv`C=8BzZK_$qU!Kp=l?;#nM>AxnDXrH_xSvN -zytc=Y9SEo5VO -z=m$oV5|w<4Pig8C>Wz8I!zbUNNPm_0DUJ_)sB^#(7ZI^gc-*fGAnWK6SKode=8(By -zLcH+%bc>AUu0+$A5FlHCcpPhH%f4D=C9XC`<#q6pe0!?aLEG?Eg&Al~0dp5B9A(EI -z8ynW)+esNfOo7%y(s(=Y{?sNW@EQ^F=9#c@3K!EQV5JLaxze$s-6?oE8xMcp{tsN) -zt^!gUYmRT|WT}h%nDgJ@j1U{XC_fat^b(m((ll;%G6`dB--})Mv&6&Va__Lrj(Xq@B -z#Mw1|Pi*@agB%`LGgeqV_f=;G(ub{;Q|uG+=tq%m@0=V6AL#wnz!vjwo|l|LF1X{X -z^-aUO<#$J0*huUUgc4zHiCf`TX*rxgNxA%Na|F5hn}<3-&gw7fP<|_E1dJvCN{P3( -z(6O>^Ngq+GhW+$^2(6@5d6xE;co>sg2X1FjB$Tz8ur-h#5`=kf*^y-U+%UjIW)=0- -z5KZ~Y$YUJ^5AYhmgijaO7FyFN+`eu$Fo7mi++q<)nl6Jf#jeOh#^TjQfx~j)=JQ8IBl!tC24cqQPm5<;jO5c|adHAc -z&5ZY*978a;-{R4(HBN*zDqA^{-suZO;D8V`Ax^mh*KM{#jy$?a6i~bMo=??gz=<&i -z(P@LOY@CJGZrYxnXW&vYT_|-3l9R;P^Y>QvRTN_zjuMyTKii=Yxq0?c&aTR7@(abw -z=DGxG%KBN9>nNW>WX|rSgUO{9Of$?8>`R*&s5_wko+ -z18H*_xu0>Hs6pm9-DuppvdhhbIta8~05$r37p#SFYSNqHe4;N!lFRqNHMyf8dTIj) -zbG&R6PDgW>_QG3EdO-jSnbNSrES~$(mPnuCg-y48jazm){d`0bCRCR_^02Dy~beAP>LYL!Wit -zI$xf<=LT!lGycU9{L^5|!Q)iDx@ -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 -zYu*LNhf7Y|@Mo){ZCwy<=;xR8XUcyeXIV -z=Tws=ez4X8p15RWn?+x)qB`n^4YJAm#5QYu56CNoG@&l&fE;aIvmKjt)QxS^_N~gj -z-m_K$IqEvo8t9*^xC?U@)a)nc5&_}|V)dL1<>?3|Jz%>vQDUFM -zqVRs-YVM&d-G+A)P#GRPH;`B@kG?T><6QW>y50eb69)ctS@z*^evz`8hc)HRy@s+r -z95p3QVGuFDF3UrHKN^aRWC`K5f(%a}3G>(1#Lh<(>Y#Bu=moKo5s6d@%sgozOG!Gx -zJ2_OcTC+t#&a1R-hw|n@5=otMW>imqBeWz0&b9|?>Th<6y6Z}bJF~N{hk8mp4`U#Z -zA|aNVnSh6a*3r7H363o$|Lb={!JN8FWqLipP6ZHN?Yk_YeH+11AA -z_iHOIG^hwJzn{Gp4h^%zeDLdB=7bVjIlt-QC>KF?)ujJjQLd$}t86sMjLRR6Bcoti -z1N@I1{c*vl -z8_;#x;*Uwf>iWEq=wS`T1^Vlf?`m2i4{UvpIlL(EldRK4CV@3wzqiX%iwMgz+8`|J -z4T`Pe;2X@hzgG%QKUK1lHK)qiwZp^tHH3Mmw~s9m^sxBm`DgqDXW$%sRc7v;{$@Mz -zwGqzJo-eh72YTQfxg(KzjzYUnNClZ`F4`?8+TY5Idj`;VIsOhUWf1A$Kcy%fe|vc) -zn{>vGiTKy2;i<3-+;*MG$pT^YL5CN%Iga2qv%!kIkntPJq)Bmlx@~Sp&vg*@{X%-3 -z7@|?!+8!r=Yf;STR($sKr*)3b2)nH9cR81LfdUm>Tu>D!5_MzMDvbaYC1!WRZI;|H -z3eVcx80ic%4{kpzXkjVH$3C*GfeX~zbB*ZsR$c`ifAxB>c8d#bnU(WHzs+%b_MtR>Y -zreC~&wJiv?JQnp{AHbnti!G{5>qJqei9sQdKl4o#S*HH>9N#<0qq_<1b0t#wP2;`x*uQ?O(3^9%sYig-+bxdxwv*H|KGJ-%1#$+cb+7ey;zt1d{`Eap -zN#%|75DadFuB64)!(*?rnMZD4cm6ZU6e-MHg@R%ksexl5#THjZ!?TmFvWlmSy5Z>! -z_r>NPw;+cB5S!bNy?$4g;3n{50fLZ0Kg^s-q#}zWZE+C4Pgw!z*{L2Y8QjtUkx5|G -z2|=*Wm!l5|9f%JLI2;zql0 -zd;Qu|U2mxRaBZW&K>zZiDMY&lHVQ5JxXQmHb3`c{NmO-*2AAbSq8BH5DRze -zzY5tGRA10v{VRePOs-6wpq4E3wr%B?wh65@K13ioRC0 -z3#Ld@I$C$J+^cwSZQxBsN~DTXiIPbihNpFA$6xx5?3D|{|1%dLouDFA6C9f-^|^np -zugNs`m!>M;clz%>Sw?!Y8-#Uy4snop3fmSdmn^$pR8pyV -zMr4F4-uGgDQ1fZQ%hU;c2o!4|yjpmqoY1jG?|$Nb>R;ftpiN|AV7k4XTm~^r1<78Y -zlkDw|>}>m;BdkhB>Jg(+_*nBQGxrd^HMnF@nNpj^O6RAh#uU!%Ooi_Tn!5B!3m?2 -z$qcOt-P8;ekV4%Ez!YuEU#@)i7?0dm -zamVx9M~{#kFGbW$A5w=%v-mQ0KgZ}7u7_6gSIsiHaj>bHPY~Cang$J6S|uv|E{dm} -zub}lleTEf>+78j3CEL>oiQ6#vYDuLP40^X6ms>soH|Rxa^Qn{wP*dybok)HS5_5sZ -zJRWrVO@6J}D}RPq4{}vD0l*0AJ_ilYx>RAO6!=QhKDGOD7JTzUW&?Ug@b;2&*l~Ep -z=qVBqU7|kef8lwxe52JB012Fd{a~vi_i+mCoq1tNTBXfuYXsB2&c4vdfjT{XDo^QB0K)do6%AKnBXRfTr)dK%YWr-WeyzO9*K-l75}(T@N{0(HiZ6S?>S -zwUbDps!G_30qu=O0;8Vh(9KB<_V5DX%<)GWamCJjVOID&zrm!c|D6hgSgKIca@D(< -zl?OP;Oo@HXjfURri`Q=j`R75%itw~!@9T|Qvhb(iVY}C^u$4F-6l+l$ihY(UhON8h -zUNMP#8LvWLZc3{s{rw{Uci-OG%o21~-_*qTB!Kxzmb{)_5W$6F|Gw6$OmNOt_{U3Q -zm#fQRL8}Ll>%jK}SM{=M&0FJwhRlilX>!7qin+PyfJu(CMRz^=2C4lC~uC3&s#F0i+8{T)*s -zR;skX091$tsE=Oa;!?yPQ>2Gc=Ep@X9!G%2^q%*k4?!z#@Zlyfh?Z<8`@zrKOQED^ -z`l{o04IMDA+ZXjfz6IXSwGR7%NkfEK=@4Y8%Uh%JQ#+pV+1qeaKZcwFZX12S1S_Wr -zV+#Ym15?Ne2(j$mlvgP?c#LJW^`zF2x~WEyra!`$BZZZnGwtNY!nNarQ=~u!_UGe& -z9!1R6yl5$0pk3q8z_&BOYsy@znD;^(g3f9jES&%6g}To)S6{?d%WJHVSB1a8()e$! -ze+X@1dBZD+X|@vw>jasp -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 -zC=2RAeLeG&l{J%0U$>{rHm#U)BibN+x{QmL21 -zR&g6-3;2au8;oYt>kx)Dh)Z895^A8|^;!S33g(gB=oz4v;om0iZh%bR`#6|ZSFxLJ -z0j85{1OAs|@7gt>s1v9je?<>48~qv^Wb)DKM6|nJF^InGd5qsP-$H+g69gw4*x=|6eX7`y>BNk7@a-6A2TaSc*b%O(dqzWp$HxBWot?)iG~YSr^oI9#oG< -zuucpPnF)(^mloRz@(zPB@SgJV<;H(&a?5xUX`oYpVJ%ea186t1no82PRvgVuW+lvLNM!#;II{iSHpUKgiC55Aw_P$#-Q*M?rWPL4;Uu -zT`>!}TIjCZX9sm5v=4~yi1=bNate=pVi<{G!qu%1Tu8+29IjZ3uxxf4(Na_VV8{n0 -z7Qf!cqy{4Pxp{0L_jMk_Ej1dtifrV?YzB9VY`$nl+j}nr@;E}QTk60BpZUeS7(*^HYN8>d%BMQDykKoZK;9%{b^^X;xSGk{P5^GpD -z(>|X;`6{S0@)p9>{w{DCh#XrJ7&VIR&_*(dVaz|t#9VWBNX#fEaRbYt%sCsqm5pA7 -zrE@d|&;5Zvn^%lJ`x94Fl;U5k0(6V&o$DSi+bhv!gDc*n;|WlC^To -zKdI3*mQH$+guFgjmbNw}l5x7Y_0>+6I)pOD*(5OL9wyp{Kg#;{M@{X9xc1O^j&Zs78C`S`iAmFdSH)yE@Yg7*v_yPSPM7b4E-K%s -z(CRatnE9kn!%ip90i#2ygL34L^;K|G_L4ni{zupt9_XgggAc4IHX6}-lO^K?JuiEx -zqLr&PJT9??bdy%h);^X)GSk-;Gl*khJ<~Pv+%bDC@WZ-#ajFJUV5#@G)fca -zgcsD_nPEvyYCa;cQOWA~$sGftFpL45C2~G_Z-l5`i{sc1>8(io(UmlT9>2;-YtS1jydp)ibaAK-F3Sq< -zpKsokVkb8=qwB#B9>`hf9pJ-pJLKOnhzy};z)$)2Rn`O?2DEq2@Oq`s`A09Zd*X_w -z*WD8?P@!VeAefPP5!*U$?bvFy*8j}s>I7oDaxfoTH3ZD8#b#Ti911Y+?8oMcHP&r* -zUhMWfXhrwW!R`?vacXK(uq&8PP^qyBAo*LJk(RMBbqnqD2XxZ7fl) -zdYp=LPBej0jHyzF8KQ$!=GTWpDI(7xp&F9nelr^90{>&W_Hn9npe}H=4f+F{id*mz1hSYFBa++!sXZS+%P6B``3NrW4V@|`DrY=saH%fPZ7%$g`6p;U#6nfbnkkTp|W79o3;(9!h;o4PU%!bL?BJ_jc02>ySj%& -zH~j6+5|xhPP<<(-&61C_IJ0WHb@~o?YyjEs!krEjZ1eziVL$ypWVl{kT!r4}^bbvH -zr7V{cIj5+78DB_WeQ7t{^X1PvqMi=>$5T7^!{k^G;In|S4GZhTuqtIxdK!WdzkGJ+ -zjkXeV$Z{a-lOEm=?Oy8pBPi!)WHmDSMhOLP?!LF;*$NB|p>Um1)Y)2Qf9saEi08kF -z66nBrrXohZhA@}>?Nt7D&nEtME=*OyG5n05XvnG?C{#h~)qj#Z!#!oYS_L{?jcKeQ -zQ-{wys$2FJjgheYDW4iT(;Gu=&_SW|#YR1CzCVX?rZI)x! -zNzr%&W&>^T#@g>!I{x_g;be0^zZyJBr=_a?s<&JcX;ja@Mg5Qgr7n*}_LFwK7Bc3Q -zR?hi9$jP -z0Xz+_t5wPi4;R;`5h?Ec<$Mgk5Z~#MtswovPH2WL^a^>KSOZ<%0d8w}cR@XC=^ZYr -zJZ}ZV)@(T$TnN3h=}D)Hi(&!{e-;%l{l}M}m$dAu^GR-6T%gZRdBTMpTjn2GZ}Y<4 -zPvyuNWKHPlJHoYoZRAA8cVB($$|3b;03QPOgMz{+Cdpmsja{r(+&fIt!83sB0(=gS -zcezS@PeiSAvAh^lqpQs|;*Q0;(zbbKd%W6dNImpRyl?RVy49UO0$?#lU6ivRNuzv@xXvJ(b> -zOeKah^v?QjIHK9C68(P8qX!Qs1Z#EauquaBfAHh;?+BO&g>U14x64{+W1nsF8@dLZ -z=6@0~7SOm=NASBNPmYI0qi=$oz=YEEVE}*Dc5g>4*Kr*GHyr5xN~$wmt3FuNs536=8{eG+=y%<{C>iAR2$|4gbO%vHb -zZl4l~6?uGk)h^uRAS(ZvUTyaP9io2)hSR~Y>9cJdy1(j)Dxc2V&r6C{l=MLRlKPCg -z@LAip~5NRDbDg{U9T29os7n#SjhX$fD;n|k|ve_O-; -z=H#2kCO9<^f-#-uCf+D_?s%!;JP1hhFz|H*{njf?f;o!vN=(w|e-V$6bjHg3E0KqY -zW-URN?G2oWg=`eIPql&|GX*IFJfUyl(1QMxD7?;NBZ2| -zE<)xB>Y8va6dt?73eFiX$OQ*~Z@w#%l{CT8xr}!j@&^zyFychd@u?RJJmTz15hJj> -zq%ksQs-j@YmgEDYbq<2pdBaH66dN39%r$m&U=d9~y!?`F3y{P!0GKe(FHNzEj5PT1+Hsvd -zu|8_^x?z5?0fgX$SRsD;S0D4v^{1a;JO0P7AXv)y;;;wijn>f_dGWU&q0Nn!9CjB# -zg*lyA{|(05ukoAKN51lBloNEglHZw7O<8k)I+n2>77(`yf -z)CmH6dhm%ZrCzQPt(YxEFnJp*AykQeYOqBdV^ELcNPgxFOyT#ac4#l~uXo3F$sAaD*ujvzw8-oY7iKA5ycS2`}r@Q4@DW*FA0${z{ -z1AHn8qm=8mzxfQqJKFXJFJa#e9O;}T`k$| -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 -zITVSxR7NL};pA3-((-gETj9@Qi&wyEv -z{Lz(z_=SO0wT(Xm&O>CKv6|8u`ZKs8flNQ8GLm8H9%(~z6I@Mga?u1&^@gI^mnl)k -z0J8&`Wn?#o_H!~1*wdbnYu;tvb`osE^%@5@QVB?q3#2?U*4BR3`#(R=0{encutKhQ -z#J)SS>2}0DE~5BEI7|32@Q&M2MQ**LYp*eFLqh0*tM}OX=Y}JaxCn55+6-o2NbrD# -z&0&9Hi-E~@$DVI$J|vX@^HNzj#058fI}xAN7m-S6adkp;4qfVV+|1hOtAY=g=YVho -zB|R*Y&yLh7+$J{vdgyc;JIf{jcSR`vTLBK2v%WwnhfUQ1rNqWJXhU -zpt1DuJ7{?+Ek$mkZsxY|zrP41)qRgJ(hQ*n5n?%Oh@U6gscf&+;@&SlPlv|LI1)iU -zKLjTTvVGnql}?2Bxa$tai%2}HVsLRlBO5ufwT7731J8h?-#=aO^V_Gga!P5f=Tms_ -zU_UD8rnzVaDVt9EZM6M_TI*2Ih=smCR+lU3tTL^qOK{lIBIF -zQ_h2wSv_!Vm6mFrq@snx*%U@_sbWk~FCLkgMH%+Ls!dk!xM>6!fcOIhg}$-1Ke&Uj -z@GM|Ff6w#_p5k_Sc>X)8*68Dwvv)*-Z$m~wbQT1&RP01t_x#l#KeI`fvB;kfa4g8u -zhtAZC6m9uNW!3fJ58`Rh3Ld!o9T#u3qV$+?mj0ygeEYul5a7v96NJdZ&UObOwU90G -z&D|SQM5F0SVZ7{*uhF0g`~Pa?GK4&0qR__rCWh>DWd#N%oBSeDmy7)V+M)2c1r~L} -zj=;7E*Gp9?*OR@N8t6^QjM2jJ>+qhU5#(4ExT3?Li<`}6ZnfUrvq&2izjT -z7}7-XAA_cwWX7Zu8yxndw_z20m6EAT(hGL0640=8t~bt`_Wj|-O~J=iltLevG7Azn -zDUQgBuUX~E$@JFHS>9G>|21tmhaYPR_CzASJqU)2ztC<+rOsHmN_4YA@8G9uD0B?u -z(s0fCF>Q*+lHEillGj6lwefkhLlov_Z4@Uzp7xH;?0{JfQb{7=>+vrvegxTds)M9D -z8ZPi>Xw>w^BC68@eZEgJDQpqm6cOSDK_4?-LU83Pev59b3)L`;Tdp^x;dBn~y?5Rt -z;9_Tj=F>(*i%h(_BeYP#DNwKsFDo)O;=*{LJ?hFCbcf!DzrmUxj7{Q;cb^d<&DIU! -zrW!$>`cUP@M&A711rHkf>u*+8Tr*?@RQzt=M-H#pP0QFES@@a{N3eOJkLefQAOMd+o~+JbnMl+zp^cgw%c2GRILgB^ -zFPEm+t#*21SdNYs8&SB)m4tNH^?q=9S1y;Mfqdl!tV#3xWLug*Z)W3@{Ml1 -zZhUmF^5$6>@q6BZM>pdLe-FyP7osSQq#sOe3FO%X4Yq{B`?={&isI+YwAbIWo~Fd{ -zJW!HpX3J1!nt7J01R!I>M}V7cBF%3w{w=_yaO<+Ia9;OPfGN_@={p{Z{F4onrDrH! -zP`sUtQh^2z!%_u%@KE5?!fC>i9-kMEmn=}O8>`%U?<=e!6#cfDN~FPMM0~jgV@qRd -z5fq@$uqQX&l-sQ(i_igef+lbE|9Ob9_fkP=85DHH{JeD6u!$z&t>du?hkwtll(K)6 -z3D;B+0D5<@el+t1%kTwKY7S;0X^OAJb~8#73(4=1XZk*YvsSSWV(+Mf=#9WuvmK^x -zLxECg7`mnJTD$!uG2g>sReaMjF|0%buUDcS#UE;E6>p_DWlM`{m5#N+F& -zEkvE+)Ym{h>8@jDM%GgNehGaWS;>@<5l~nZNe=Y7FBg;=6&nkm`UGwTe?*M&+VD0* -zw0xjdpyeRn=bPEk>h&yH5#lOR-?I99zF7=O!V-?9x%&XUArTYW0=WoQt0BEH8e>`f -z-Z)t9sgl3oZ?>|{+PQc2&J48y!vkcVLPo2fQ#DFKL}w^miarY?`I%cG{%Hg~_Q?kk -zO($=zfD-Lt_w|E%Q2UXCj;^k$wh=uf<(S-JFJz&>7n$;8u6WNP2 -zPpvS01kj`@?I*1WuUcAGNqGIO9iE{P{SiDZ(Tf8%j=)2f(LUw9W;nw;ixYb_y|=XV -zVW${(BgI=iIuei={|V(&ez9r1aGln%!}G?oe%GC$lMw(U2u3U3y81JxDZ?Gl^p8Pg -z8Di?p!VY}PgnPCF*RhTnwS{@lliX>3oos2yu;1CYw%}A{#Bq#qvFfGmYc%MSKOXhhbjtY&`*X7j9VI={C>xeBIe`?` -zpn0Q|^?-iWn_ye=#{aww)1N_LMvDOJ4k60;<*T?3k;3xPSSHS`Y4P<9>kpp|Z7g#^ -z|Eve4G0Imx>Ls2b-_vvKg)lnf7%LGEvEr!1op6hQR&^lY*p;IvYwL(owQ^pxVR3o+ -zG6n8?$P3n$PZmwzHO}~r4NRW1mF8Bt^G}wfLd-v-j<#w -z<@#;(JvMU>AU*FNR8@0bS6^-}rhffT2X0wTW8h9W?O2Ci(b#ylyi0un1+Q{5prMu_Vew -zkakq6z!kKf0qdRznb}veBi7sls`pzDQ@ -z+XC=~7)rEx{qJ-B2#T1e>DvVAO7}inUFawPAvMt#$vSHeN2j0qpW*Q?`T7Vx2{UoG -zU4P2nlZ@>|m<6GYr3VhhpT3R&?~u8=OUG!p%e;K?Wk0$6`f1a -z(CU9QU1eBQT^D_kZX_fm1nDm6p^=o94nabYX6O`Y=@cnxkPc~(ZfQZ9p}U6$zsn5Y -z^SpmvnYnY%x#ym<_g-tS)qXvj{w<|k$GNvZ(A}r2WT_>5-b#-q1h=JK`(bL(4v~0v -zrN=90OccPs!*iU(>*xP!1rivC8ROpgiRhUe!T1s@{FS5n%KdkLCtRAr4G_wo)e(L~1aW2B5A#hH=CrZU(kTnc(V7(*^bX;ql{cuF>%v7=+$6ckb9)6aCqMCPpQjW~-7e&t{%x -zN4qJF;PI%UC1QTz|K>;h)_Cj)noox>?@DzI&+#U0lfc{U{<$J11)%L5*z0ikoyrgW -z*2y->=-AT@+%Gy`4MX3E441mVo8nb5#6n2IK%n3?SJ6Kc4b$aPN(hx&ta}n5TUfZY -zmc`TWIvYnEumeEMCXD2G&lOS}cJtUoss(YzaVmbiiDol@=x=ZHe>Y1;KT-2C-lkNl -zm!OKGH+|hTA{<*=fE2y5&=HhOPhJ6Q4!}eV=(Y|#RGfC|@Fta(!zrXo-))#)ZO7A* -ziPID0#@6b(dJa=60T_LPA94qHk{VSF*xza9x9R?)>3FX3E082MwtHbGo^k;;$3I*& -zE9_XFm|hX>XQ-}n9w6Zy3h=n;GwZM0_r0JiXH%OL)coN; -zwym!X4`oCkgc`t0!lvSn!=MtCNtW40q8hH}IYgEn%P9M>{c2?b0+mwkhm#JjB9K9P -z5^|(Ei_u7F%`MgzR{s|W*N3jhiaCKBn%`_oJFKm!bKrZKB~1~94`IVy8{UgIxBE47 -z_hzoUf;_gq&Lakx@eHyte;@94waM58RIhGy#itUDeUgHwBQ7iL+G{&1^Y$+4IvtcjoV -zg&BHYQ!Z;;S*(Z_%5i5Ay;l}L(b%E)ypd*G~1v90LZ{^%J2h+-A7 -zs*JDTVYb%HTTJv75n>q_9orkO!mrN@@Fk276@vQSTKzK^I0vo>40)dr|o=7(XzR)Y6376EHsf1*`4Q -zD%FInp_sc3`i!92H>V$IxvS_zKReDiV26Io9+*{@I0NW0K;Q`IG_4r9bBN5dZJ&t< -z2)(EcEF=|wn8S2?#QYxNpsgBRRSMKpm -zL{lj+`u|c1`OTKd<~4Nvxnb~35^TsQIQ)a`mT{EI)x4K!F8Vi8DbSS+CzuijH( -zy3w0O^6(Sz^Y1H_pk$uJ{@KjjjUjq4UjmxeALK5^gqn~-ahHBKx?T~*WodhQS(E8i -zE!1tmDUkIyN4jm_u(n8REO9HJg1Y?Kgf2YsHKoR1BBbk~?5XYJAOhC`I9cYasb{W$ -z0MdD=v^F`7g>;%Ql@rm+V_byF0*^;?Uo_nWfn5rNR|I<9udiJS5&~Xju{$8W^hiWi7X0EANU?l1~b1IzrcMPvzsvcut&PFgl~wGX5KAU9}| -zR}qiTu#&e*sh>prnt+~j*4W=H8!-+e7pMt3kNia_5oS#Ct2C({k7e1p3Mc`V$=CCNj1*}}x! -zkOWe_91n7u*01&j2#!!0nEc#d@IQZ=LF#DHvkUZ#HUUrEMEnvlKJ~T%QSSr2DspC4 -zLU(x~LeOi{PaDRg^(N>mkT;*`Jk~R^#9%idZAjlmXUxHEwLGWs$y<8__qTV`w$HQ#an1ryb?`tnUSSAx71`KNaar63JI-`@0vopzCy6RW*UH5fB-j7+wVs -z8Ir5kDCZ)0KB2^_zpCV^M3Raclu{ThC40AAouDjKa|Ra>P|L$f-rx4e9qCN$9@(12 -z$ES`r-a2Y9H6b6cd`uoF34N_>gk;HOmT7|)oR5_h`AGxYg)Ta(#xyTslm?`h*Ktix -z{^_tHzoIz24z(5i-VLe$o?#W=D{x0`S+?%c^RL6P+8{ZefA@q7vXJ-Lt@h` -z=wA&BQ2V9$O$DZM2pEj>mD?NrD9; -z@{mMc{LdDWCbLDd$DM3?8-Qafa6hze>wl{idW#VS`@R1NCwH~9d5^`|woAO7kD@t{ -z64HkwwFkB47$lZ00T1JRW7dJ5~k=fI8 -zq=~PrPp)h+K}~S<*f=~6(ZhcJ-I693AB(Lv0Eq)}U-;;9fMtb=!DoZ9U7jbZuf1z8 -z!rCQ-@FvyclK3(*bwjgskF$|=oB(LpRwsJ^5?fz9xB -z$uuYUPq5yKlJVBqz$p9Y|AL=)+g9L!{{fK_BUu=~>JO|E&t&KJWc*#(45iM7s#&U2h# -zKqYxtDWfqeXn8c_{??vYUG}p3kCTrZlNC>kBs-FbwN1_M1m%FD=fRW@>Q|ALVlThw -z?)mIO{M>R@@FcbrWNqYSCPhyo^)%!?K*dTTPVoAJeubBgR4pyLM#a>bljbc -zZ0+qxDWlpe<&SC(M(HUXv7RMvJi4>{a7&bISMY|mBrD?;l)y-yQZ&wySj((BjTPa& -zw}OoIlY(j38kPLfOe^tG#N6qkxX&YMq8m!0MHI7Bv&U?py5Y5z$=`5Z0_$lCz!tc8N(BXXB7JD -z>Oouo4OXaZN^d&%a>F_cyFv^2>viJLE-VtV^P--==>4{E0bUyv!r*AJxjdUrR(jI# -zG^qTsyJf|b5JV|s)pucvPu=)#8G)RCPszRMJN6B8r7XI_Mp?vKH2=+XIZW9*0PWEF -zU2SzdicY^6+4pe9Nb-AT(oyD&(10@k@BGte2>{^$$PPmYRAcs@;Gk+abok*6)7Odj -z1;tn~&9j@2uu5!e)?!^t7PtDs2hACc=<%0b6>uu!HkNw6L+XWv>AqAD`7~IFWJi<~ -zcp3omS20tM&VXaeGM~Wzd=GT@>EkoI&(R+L?NEG_^iK*id;ntDutGI`;zREHf>B7w -zbjbUVurot&W^jb(mk|gS^LnPdb-uwnV`COG@DBbn=XAmP$0m4ykn!B42^B{Qq$C%) -zI?}JPU=~*j8)%1&^3n+-3VmajrWx_(5LN7Cy-%BYH=aP->+gT&Z{eD%XboS5+4Bdr -z!CgdjV{C1sZAfhN&)S+}wI?0hHh%g!!>a^ka$b1xDpLK9uJe+Wnj!0C4xL;_M1Fx% -zAub(kws26%36LGQ@3czJDEDpq96m!p+9x>BAJFg$0PN-L^rVWD -z7GjW!r!UqVJ!hS-a6?ic&z0OsRrlT9D`P*+KO|VQfEvX>*QTRFw*-!-PlpSb3pZoN -zJYrt{l3kSmMRza*PN7`xZeErg>I0XUu9$pAcl;0z*_bbj|9JN-j5}@|;$V0B;6Vcf -z^2vBxf6aeg=*0IF^0j!0vQR_ -ziapitZsHm6_yAwE;P;v8ZK1ul+lkYjx)ik%_9`}#9Ta;W6#K9-mGxG~2U$x3RUm~g -zZ;i>i7E#V^+BvzzqN?vbJRYo{xnG0_V+y_@S24IPfQuYvcgD{glXeGCZE){OWk3-I -zZyS@hb3}P3?SNGBVb5@-5%4B1w%G#THbc{t{*-R|zhU|hiNO1TRRcu+^(7h7 -zDVN^6Ongt=V+}~?OWx7Qm^MHQU2_M>w(ETB;jmhE$_p6=;2asTEFbg)voGLB`N)-f -z4|!~Ozh30!b_h~0#gnMH -z?FVFIP5QJGynND5i#^r%q?9AaZF`UVJ40vxW~v`hB^v#`7sK7n5#-=Wu;C -zqLvT6nCoAXC>6|BSnk~twZld@QrILy*PLDTb;E;pcPov{dI9EE5{95g+2(s;#f{vT -z%9u@PPO~-8e##i)n9I-51pdp&A -z8})me)Nn0(lSJ81Zd5e)Xrc2V3GeX7yV44r2cNON6Cl2gOkZ6_S=g)*8B66^k)W7r -z{`&f_K({5;J&cy&n7*6qh)UA2Ie${rP2sJQmHH8yX0)!$!A^0I1M>qm5ucR3W<5I~w8G$;;{Ac!nXAa@A&3Cqk^v4Gt^Z5z;k -zx5R3{NKBiM-ori|^V|qc%A}v0!O9h9R_ntTo$r6h#-#K#E=$?z7E*U-_N_ -zXHm#35~^;M7;-NK`2!oFS`dlUF~|hd@Jsw&<5%ra$8SFhb>v!mL-b*MHOD+_v}MHm -zvF$!|J%exyb_EVwMt$6VbPn$%57-0g`aQa>3VA+2mysfn(#KR{z8LpMBOJo}AixN$ -z(nO2lV55$d4SBHRfX2T@sDWBuH}uHF5>`lxiRZ2kHWK`xc&P8buJhr}{p1Np|7(xe -zO&qRp>t@q$Cx*%E=p$QP>zxZOGV4PIb|8-3zV+=yY|x>^1U!Ur!|-Dc9_ZMvwjeXv -z@?5j&J^V8PgO?#?;5lya9|vh@EmuWXTZ07%{_pL6h69DO^nNwxIq)c%J -z`6rE+VqW~;mHuNukmuXagpZ-Hd~pPmLHkE*n;M^C|E{=1%kD99-^k75LBcdfG>cdO -z-ZW!$(=a|{%Ka*+F$1z5za>PEAkAYkdbC_*E(k8ki#a3@RhZ*nzl(JS4 -z$S)VfJ~`*)DtkMzlY=VX$5d7wihNJS>${03u=gjv2-Uk%RwU;gtwMJ@s#GE+1uGzW -z=+@E*$z85uiW*F1N@lp1(_Z#h3JnMBl8*tSU~}<8a@48ZxJAJ>Og5h~hx3>$7JEp- -zw~8cNcSWxCZxkp~jzCJ|nm=XsgWg-70>_^<&}VVH`0V@^a?n{S21MyjmW^1@P%nD3 -z>x^_S??H~W61QB9B`+z4f(IXBb{8%4yKR5#?G$$d{Etc0dF`6Xe;i~AfHtIEt1n8$ -ztq0^xD)gCS$_mAu(b|`;9mSEynfITw0At`X%Z_koHkJ5!7eS(+$v0X8c{ZI}q^`>U -zRU@R0a|R#(YVfH~1t^D1ALlK$n1ekfSc2Ahd22iQHAaKUTi#@CQF-^XWtRkLfLW-3F~bWt`V=zYdsb%n{251?Y{1L4xb6YI=~u}G^3SdRrd&UfId7S} -z->qX3w9PAwlySYe!mC(K`5vLOj}~F%pA+ACy*(uh+$`dg-K{T)zc$lT`I;pSKisqa -zE}e9HlMz;>YT`~k(HNgH%?k!-hTJa(*w?Bt963i2GS+FdXZFY};{tajnMa$!Up`Z& -zQf^!6DBV{9(Xic&Fq&x5}<8^;KF{H7a#96liOe_8+azTe*jJ!#U!Wj*Dctq}pFMH#lW*Ug$g)Ac%EnPW;5@J}WF`+*{T -zk2q7LE}dXnC+1Se26Gce;mPLHzl7%?!lFmy>f^Q5S%sukw -zn|m!2>M|&F)=7h^sW(0`*+)c&90-yM!)SkfCWtXwR^w{-hd>^waz&48{i8KqR}ovK -z|1Ml8|0~QR{GlHIxouP%QvZId{SB6?8To50o@*Wq>UYD2o0pw{%qX0m#r%&3W5LZ^ -zHA`}gjvLE^gbNRnmQJ+g -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 -ztrp`yCS<1b>o00$CQ=wT|+ -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 -zXxctp#Ts_1`2%Yc36E;U2 -z%^tezqK?_Wd| -z>_Q5lA|1x$f?dcP>)~3FNLZdmMcy#y2iUKQA$7qKrcBwV=iYA!jL7j63k+AgV&A5F -z<{+g~I-LT4euEXdOURsm6yCGvx`(MJ%Pj5l+Q&%NGjLF3_PSyeW*`Ct1b0&^v>8eI -znWBo&_Xh0dmQJ2r`%SXR!vGrrNMfC{P%-RPVsqW!maxerEZe#XPk%vtqANtDFay7X -zf&ELn@=YFv6t^!t3n-Zr%a4ijnkDao0Zwu}>vyHm(w(^l<19VmAJ@k)vuU6WY%XQ_ -z1bDqkhdBbgB|`d)jQZPnG%g?OQ2UO))lnzaPOmG=;SqD0h~*!i0r$H++49*}&+>nH -zh=_^8|DrAX0ev>Ht_VR=)CMW+hzOl7jC`%dH510Bh(w5eQ#7np^yAr#Tdwlcd9hrl -zR8Xm`QSqjXcgG_k--%vc2y&%POpcnY{wl!C3Vh~oIqgp6{G*4z>==fx26*|@V@#N9 -zbyY>LJhTZHbLHutj{KA5HYCV|Lle>upFD%N3Vb^6D!qkB(AeS_c?6(gd(> -zH*dZl@X`Yh%t`zI5st3*J4=9zUnC9{=3&mL+QTI~vxi+1c*s|j1fOZGLz0&> -zPC#tt?j?As@a6+%r*y!Zga_R7Uph5kQiI($cu;$x!zhD3C7Zb4$7cY6I9veo?65dP -z-H*P;LQ)}AD#X-IMtI8em&rcDT;k6 -z75j>_bCIjc92<-^(EKL{z-Y(h><<+@o6N);Ea54fZ>}|`1SV!HVZ@Qa#RWWdI-Yu! -z@#B-}H>LFmn)rTGSd8ngQMx8}w<_*{ -zhlHfpf0o|T{G`0K*g6RvXMYoIzrb!>`ACi{>?UnLbd{UW+uhl>9=tYn!`pY~*EIxJ -z(OB8!Y0N{;v})KISWP0weA8=wejICj!@Uk4fLU_XKqoOS)!7Fo>pg`vqs!Gl4Xuj* -z+T!7JRW@Xz8-$nih2#m@2kfn@Nw!snl()!QeGCtNjMw_hn73F(E%oYxRJ~5V-v4Fi^RDdY7 -zjri(?|EE&Y@~$VwC$fg<-T$80gH&3b#@+rhKAqp2nQ8e0Bh&7~@z -zzl#loHEt~P{D?R@r&rx_B%L80#k$*Sg{(P;^5f6Vj)3kL)=Lw^is_5#I#0`hz@5S2 -zvkDQwc+o4ZX#N_vEX~aW!M4~jLe>}KET65 -z-7|M&)ou(cc{_~YF@|_4r9o_`E>+3+eR)#&Yzt>nwY{lbpxAu3`i}36>#q`Da^UVs -zPjj9D!RC2QDN5s4;tG2s7M$n19+1)gDGm=b9t+Z7Ib6SlczI77vWMdH?l2+kPxXb) -zk6d@eb@!ve_toiP=t6V_{+@w`D@C%gHO``}K!ieEfPI(BA1yfj?nXLbd|)*3Q{~Lv -z08`r%O@qe^Mi&4M0?(?RrWAR_zZy156DW7<4#{*nEtGT#FmlT%U0B?ksbB|Z7a -zd}0q-FUH_nGpV1M_D#RraJ=o=uLr_RfXq=1&i&O?X7ly!LZ{Ia!KD!Ur0>{wAMK37 -z!j}nGc#vnQ!UU1sUwbuVAH0u+a(|He=U@Q{*w@u4&0o`HN(u`G8T~Bg!VOge -z?@Ldc116edscwp_G4CdH)LcmNW}4KgT^+6GoqsQITS=9Y;z`IZQ5=dHdTt#)KWGn* -zQ+8Un@MXj?0QNAh7Xyx0KZv$xzF^L+S1~RTh|Y1PF((AId9;=N{V5dz0LuUsI?38F -zIYdzaSr$bc1;L#>%hg@RduK6gSZV+0H(+)FoUNyjiyt=WoqvWpmqszNu!72`9&mU- -zL@e^-Z8#5CyiLpay9)#Cj9a0Xw?dgR{lK^W0p^}QfX!U60=<>1IFr;z)X9fe5;$ls -z=9?u)vwt=f+ni}J%m5!vM>sB%#LE2B%s{-v;{7iu-UdLmyZkT5FKENMvuLF&rtt#T -zgWJcrMnxY)|ACN8`!ZkP`#2Aft$e)*^to$3EnuocbGI5lU+x1SWx%*W67_jKlS~mF -zYe8#V?40aRCZB4aQrK6g)pCEu8J`5=QXV@_hPxCJoqF}z;@(wEnwwHFcfo+>(7DoH -zGp95q{R9%_O&6x;tugCG1JfR&4_5&0Uk_v`F}K`Hju|A@I3k*sa4QM&ymF~M)ycs54EYE?#01+D@(G0WKK}Gn9?Q^Z;tRrgx -z&+PH9FZ*D#mLRathmU+j -zVlL*ROgKKTAskRi&6*g=k;5tz5=eO{8n~i#3ELZ;NbWgJH_=qEX#?5;ytgiv1M?#F -z)`HPboE4@Go4^%;=S{9_t`Y`7+6=1=m~lHc=2D{^Z>%BzGo+s(B3ccO4j#hoT?g<~ -zfB^23$Hu-JK!}BvKGJ!xO_mA$JR8*eaLxeB65TTMkF(b02eKarjlUK=Td#XyUJ7R7 -zw4~nK@2Q{0A)F`+NJ0PMOEv&eilul$)q0)&2cp(bhfK?5xJRJKAO2S+BC(r*+<){Rq^NNu|ypa%rp=8gB8@L5iaj>8pt%JCXZZyBbzvSakVh?D%EE7*%ETcC?IorT7j)1` -zRSUJq#zFh$h=bV{{#Va-ZGA@6DfZsI@Fen(4W=4H<9|Tt+2!9hOOQVvZ26s^nA>k} -z7}-xeS-=$?Yp*-#R^g2KR4SP$1IvbtEcFqEueW5*F#Glwtn8B?wI|45_rBZ{OStt2 -zwFU5mU2BDvynlGo^BGH_AO*LXFmW1Zts6n1XCRs|f#v{%oeF1#JD^h>f0rcdRmC^t0-GNp2AZDgcpKp@Sj+W>kl+v*xTF|3!BA!GhXmCLAoHk0SS)mvpN~WTNhAfE)tw{%ceE -zdb~#FiT>1rd#?90|Ae3Pyo{d5zM=b7ihVD~TSe -zoSem#C*rH|VCwKNOs&z{t_&fFg1#lJlcj5&jHCKqh=&??jxA!|;v$fa)C;JE_4tog -zjxxuy=K6maW>-R(ZQ;bRwp($=hm=9Lewm1y)vea7)|ZT*Y<13EnbBLGCYu}qm@2S& -zz0uovI}>98x)0ECSD`-5XzgL#hmG5wOQFc;g9F`R_om4Fw^Z#DSuqfhG6CCh*_IlH -zC2as8JN2=-ez2(uW8eGLizh_4FEx{=iNbS2MksBKn3N2KqKP%^R*Bh2yGIYpK7= -z6&QU;2!ZJi=})-Jp^Kkfp#l)-hXbRV@J9lF5kiQ=xARoWJM8=S)3C{&8x90#cWB47 -z&av}XE^-Wk$;QoHY+*wJHXvtlIX!xdyDfFSjX%|c+Jh5pUAI_ii?D3qz)qG4hy0{O -z#jbZ2R7q@peFw3F-KKknQiC-s7k`=4;I7CCvcom3{KRNpto>fG$g*2aT0wV4>KPj{ -z?UhUS)s`D_3DCt2Xd0e_ObSXwhWT}Z+9o8&h5(Nwpc@<5o(4v#DP(pVM;-F&-hY-6 -z(GLf_8R~rWo!x-S0+6}wGE#L%TIRoy!GkX=zNycfZgecmsbL3NdA}Y++bGZegBD=AhrG -z_5;$_af$e8fW;I5 -zl>!rZCA;)$`{_=FQ1}6z%Mh_WlmP^H2mrjo{@O_PcXCKY=3thkrTE6LdIJ}-5J$U5 -zWR7f+An<%vmmxT;$i(ojW+DvZ?#=#5)*0iy+9?m&;3om91Li1a`JSE%H+vB}s=mLy -zihy~C=j`H#ltTG~o{D51jgk>1y(5rqRukW(x5YT+QD|D~@&=<-!)EKYqMpU7!v%tp -z3;FEmud%QnPJ^p&K9&t?jBhrvXKRLk&U|*8>^!T=lU_KuJ>|0RH02q=9v)wEvax;I -z=iIP9=mNAaYt0&=o>lF{|4_SKor;)GKAly)8P-(Jax%zBw`(1o9K%YpU`N8uduuv& -zM2P9r@L(>Yvr5#_6lkA>j~7(!XzaU?xxF61H@Ww_>DjHg8I3}*BScc3p~y+$s5H5b -z9XEcfD?jTq-x;oOe0VruQfZn0%8T55ifV=Is=MKSJ%KWPA1m~}Hfn`1AQ(C8`Kemh -z=Cz(Y!?%=FqF)4b9Q=Ss^)pM)(;dMAWT*sfWG*|7qk_c8+x(+e$oMlc2yC-v;_iZu8FjBd -znUT6j`waI{#yBrT$~9BQL{OMpn!cYPH$_6rUikGtnyxY|tELG{mo!Lsw{&->q$u6p -z-6h@K-65cKgLHQ&-Q6J}@f{xC?+@3-bN1|+ot>SzcVhQ>=S_z~5ouBfhmsJxvO_`- -zUB>1LN{+4=4WH9r=>S19JP6WlhPpe#3jDn!p(F?RqLhw0{eO!gFAg9D<_;vc-Y~1M -z+qi$KiQZK=U!Of|T4&E7Z(bc+r_>f9FE -zOo^GtW6~9wR)h|}G@+gyFY+u6FUSX2g{)WT6S({k59G5yENQ;{OKf~S4FC{thP%e> -z2JnhWLQ|)(6|g_&SP+niAp(`JR|fz(XobDXAa9d=$Qiq=T8aj}$)$Mj^UvzHalDwS -zWzzVEec%q)*+%xg;`gqUqD -zt-p=wv?sw~MYTsmXJSqJ+t*Drir)=fT{_)Z#nwNYT5@nUyk2JQYb?|>Ysi^jUT)D5 -z(MXTJMdF^K9xB05uJqg -z#ne$&Sg!}lz}j1!}~1yTUbSzz|9H#A;Xj;7`O>$^bzo1kI0M%v2XRcoB6STLvpN>3E -zse>l_qIiOUb*MYm!=(^OrD=mJ?YR2rodcpW=9Jd!kx;-v;@;lX{}{21Oq{hEOyYrI -z0Q|q*s+qAbzLfLgS`hSqrvr!;pd+x5LIwAB-^OX{m^s0XAN+K%(@XJ#PLx*98{)193v>Mpw^VY; -zv=|6+M1i4J)3tEAP^L`wJby;Z40alI)Z+kUXaHHDCD{)M*)ERT(55tP9#Ek5z?qG< -z7&^l4B>F5OQs3}=Qw?+iR7CIXa?^ZHa>~C^WH44vM1q1KX+CSCV_?jo!_xs328*0- -zWb#wk1VI>#ZuiN>iM2h -zZ^qvCi6jXJQYUI@ZaBZj5V&0I_J@fjQ9BNy=e2Cs2u^`07{KNNvfF_BWQ7Lq-zYPY -zn=P1xBlEfd(RdI6_iCE{2*|LDyAk(x;@S!$Noe00`K~+M0bT&>(Fr`9$H7&gV5@Ab -zoA!Mv0++TPrg~hx>BNW8hY#O3F#)5+N}TSI_~lkMMnOGIQI&V*8vnlu(MX(>oRZ?dN!{j5uBGA@sw}#}jCX3ggaDT2sj{!9rlX}09 -z3%cgBNL!YCK5mXP;Gt!DiMiUgYKrMlL>CA_0ebml@TRP01D;vNetokBO9XInX9<~N -z@lihl!(xR9*vWxghI-*L7O38LKjpIJZ#JhlZl<;kC>@$8J<1;ZT@4!j=1KsOW3s{_ -zCAKmd&H3}+KPf|EQ&BMW=#k2=QF?#@bmL;MNfk8&Gm}ZUK=!37<#om56zJXjuYGQP -zX>Lb2j1a$dJYbbbQDRnGH+yVfqn3adM2jatE;22*59xd6Q5m*v0yi1hPdd)42npr4 -zPa8;~i8>>VW@#i}fjOOHI@AAhsLtW0(EUiP0~%o92xgritOhIx1Hm;l=OZC9^mLdP -zawnmKK5%q35t=qA8VPIvjnr@@#yrYl;4?OHNh;xLL(EK1H>-^2Tjg!(H$?YwBYbTs -zB~+$ovliivu>$3JbCkPL>+jGWmVmhe6uah)n4}H$A&olXXPbdF_bcevMF2bgAkaZ$ -zTv5T)63?Do)32R<6BPFt3&so*;Y0?BO*v(ASqa8uD!DtcIlZx+)Yckl;_6)X-J7uT -z3tV7R%tGwLc!%|UGg+GQ%Y^wz_q!fq0smL;JD~2uPcg5t>3X3vMbRO>=@TZUkw$H@bdDtvWSF+egkKa_Tw@|9%CC5?Gz`c -z_q8El=V{VDPQt%=hu>t?N -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 -zMk`Z4q|$E%Lf^d$R~y@LQy$Pl(cP^~Ben}< -zf#S7>je>zsh@=V@jVn@kF|HqBpo%5JGLo4Gn|h4BG#iQJlgW^F0RcC&8Yg884GApM -zzM7|bn}r=Eu226FygG%t%4guSVQ--2vp^&{9h93V$xN~G%)R3Nj4=M?tnH~Ijhq+I -zE#IKUifdMl`TG{=TAiA_RU>E3}@WiXUzCFJjh?;(Rx<^>@P6Sc6uP^S3ue? -z)-kI-pP9l8f9TVD@x9pMK;3VxmjlWjal=n{KaN~WK#M;O*c}LzORlN*+fWj_y#01k -zg}fNluT^bo=b966p2pt63!3(p-yg?3aXW^gE-y~mOYl!A;vzb)c#1||DuVNHV>AFU -zgq>Is8nQoD4_q_B;tPm>BO|mqPh+?j+jBz%#}xnfFl>k~e%Wbz?HvQcvuWH2emwq- -zCx9{m5Wtu4a}T&Jltp~!b2wslVb)eF%iSqxMiRwN#q)QI!G3*spAu9yoV37}>cVm6 -zRS6vOHE~`4Y)1c3;O=za_)yRa7>GhJCH&21teNXuu1MS9>)gdCq+hZ)Ui7^I)auqo2 -z?}R^Ho=9sbB0lT~?O6cVh}5LPBC0f6SlVyLg}Fo|L&^htIOOHF*MZOYHDR}yq^8um -zi?$S4*{W^Sh~-6|-wg}o6l8$}_HR|F8DIKh?#DADJBaTDEl+hE$mVDoCcuT()Q=m} -zR+}xmRcD~#vl%B|UUg2O%v92^_1^3)0hK?V#X!P_0CEb-D*EXxnkr7FqN)s8eNLHY -zx^Cy2Xvl=cjW(dv%ySX(t9>k3v`74;t-d{doRC@NHKF{v!G%m7hsl#>MTxV_oT!+{h(Xa`Jo>l_09I4PP(J-!76(h8 -zYio{b)fBQRlEUXG#SSFJQO);2|My -zXrmc|54SfgwZmv+UCjo+VT!nS5dDVhKH%vgk3W0~zD`_BfCUQ_A*fQe)ja{W!`8Sc -z%=bq&i!;`k0rMmVj1CAiOEsrOq%!rvql|@wiE0Gbxn^t8in*c26*XQ-`Uy}0BN_=E~O5m -z5iY2!0_bO5#*GT-7_QXwLV?`khEzD!f!BZaK -ztA-Xce@J;WOUk~9Cz2e%opwlkiGBPuHF!eEJ??o{m-p8y8%Z2qpKsrhPI@BwkcI5g -z_VC6VNHR7oVc5eDP+$ukR@dO7O%$~ItwbC8^B?%y$#<^nm_4)V^U_9hAuZf5fG}&e -zms3BVLydYCH=cO|w?;c&74t`FZPQC&WON5wG4`jq`UlW<$t9?sN+?lv&K~`_olX4w -z`yb#-*UUN)o#Jq9Em}2>OM9*{TS5jBkiCkJr>n!Es*tdx|14K+i`@RB@0jRT^%S%a -zmA^_`CHN$o-Reb#sv|+N-Lr{zAJd*wm-o5yLUz>2x(z-jx@6jBZ^~vNxnRi?q!m)8 -zwAw1GNz<_7C91YZy=`iE@+PyFDu-E^(#oG!6+vx8KD#yp$Nz1Ht`=S0XxZ_BCF0NG -z!nlFub!fSp+_~*!JKh2K=mTP?qNO-YHV@?wsD?@+DrE;f=5V9wINvY7$l+mDk)D}{ -zg5Qg`n8=g>QU@sPt%o|(E>EzPc-1KGcsJ)DMNj^tn>o?=@1VyQ92r!2KJ6cRWrUZN -zQI0^y!YPezTHb1x32jv}3oG5X=WJ!yA(N63#BKYpxjSzeYCe$@t$_wV_jbs6jRuC+(`UAc}z -z$Qmnk59Mt6RYroKK|C;aQrj!K3;IKKY|yJe4EMcVHm`JzDvO3@gr!pXGjJ=|t7YwO -zSDMpPkrlsVXCKe3nQ)^El4WGRTzV+*1b|Q>*e@0?KI8P~@Ko?8wTsjly(KUr<6!KL -zrMz7CG?IQOB`M7_b7VltuoJ`I3uB|OpEP|uNiETI$(F83t!EQa>W`MheEfSwq=PO1*~>KDu=-&VALsB6u=(x?2w~)GBD8 -zCUqiluA&}yb}?&ILji9or(JO8W%vH7im -z%!a4D87s~GB%4qw5X3ey9HIqN%w@FH8!A2=v7}rT=ByK|Zs_%v@ -zIfcuJAUVudQknCDZoR*@%c>??(M9AaQ?0z<$%(ft&2xS+1#k>nWptL}I8F@KZXDlI -zX%d{%mb3(4!vD6(@W9uV5Ah8)ZDSSx`jJ*l4Hv4vPA_mGvL>EK#5V(c8i<&DMXAUr -z^C->$E@YOJ%e^K6;(V{xyp)E3IkCJ)D!w;$j}`18WZYOchWfg}t8^LY699&gG&}1Z -z&sb!sVk9WLh+o&M$Lkn~I`h%rzUUxRl2M!=N0+}((kF+0#;H82IQb`JDN(PDcS0rL -z7T_STnZv;2NlsNxihk$=TMN3>u3A0;oB>>o%ZSI+azPhvCpvMUc4Bib+W|0yNXUdmO&h32}7m+};Oj8Fs1%?-{qYiU>_@s<0{r*OFP3?Od;rJH+u$Dp& -zksW3JWPC*Z5C`e(6Z-6xL5>HAgQZYx2>Ut)uFK!5Zbg)=^SA__yKe(I$2-HwlVcg) -z8a!-IK$YyP_+B(HT@QYf-zylk8uYD6f%DqSLW-|UcF#j@1)0=dGPQz3E_DUz;h2lc -z=!0<8_TPoCtN<7lPl%R_%3|zBRG=&Li}b?cw~DM?p2P_zmpT4TU^Yl7?bPL9NE2|44BL%u21#G}ZeY560%!nS0Kb=w2 -zan4F*W4YkhjZcB%BfWSlZROIG6j{H*o(rpCI!bB1G@*&!^bRZWmu5|PbJn_;63KNw -z5af}{pb0CH(ltwxoX4o0^-gf4%vQdGEQ%Caa>{?}uXW5x$#w!R^zxD6qwTEQY(Ch= -z>J&?ivVoVYq$NkSj(4btBuF=*v1+d>r8s4lEKZ08B12(f+`1&Y?-ab}y~ZYbOm)Er -z5Qv!&BoZ?X1*Jng_&dW~E2zv+qOZ~>r#OfZlNUsXaFiqn5?p`B$p3(NYru!NPqT~h -z>56h29)DK41(Op=Soxh}&)75_+Os^~Baab(-;1So>8ol0CRfZicOO0?&=pk`mC)yd -zjo`|RMR&p5EJRf6USAaQ_SzH}*v5zDyn4F -zu>ZZq9V;Udlacnteh$BEWGh{ZhZ>9BHD8qTclzW2j%G`t<%$vZZqc*w$RI2>T|dYB -zFLOhL4xa#WBmnrD{$2YNp$Y$!jRI7hLi*g^ooJKpc8)+B0Qi96RY6wv^U}WGe>6EA -z<*%KoB1J!LgHdDw!Tt3r*C@MYt2;I?EM{@kum7?Y*g(JEDb}r2i)%{cA=H_yVVvMh -z0_irOC1k^K*9tw)f?=K$lS^@hCVchiYtbk776i~}7Tq%q;b=k6@>A%Ba>Y^CQr0b< -z2to5a-NfQ|1+{_wRq&nFNT-QBW5B%K4xYHHs^~`Qe -zQw4kmksxeB=B3|DR>X1$UO&6Dj&kM5x?va+Lx}p^fg+Ls27`}jLfz>W{@lPq0U}4t -z+~T6At~k$sPapX!%=pY$Aai8*CSTjl+>WpR#2S>5s+JkYd$B0V6I>L5PfHybz3@1? -zUUVD8gjYHbbly2ZEbjT)SfFS$;C2sNXjO=o#s9>N0Or?vY?4RN%eR8Il&LI;;BaT9 -zhcsa=0(`U;I&jpWkP>cO=^9xI2Va(|GhQ%Y48x=?n@dFU1D?nUrnwEUYJd-R_rypC -zN=ft;!=VF(ML0D6F0$rrMrwhhE;-;OC2tXMu_6A8jp9{fyQ{x^GxI80p*p4WX}fmX -z0)Zn+8&j*mMqB&W(4wf^(~UqC92aXfa>r+NgS*6@oRv<^kX%co?WL_^#3wRN+aY-d -zK9}&-1z#cC7$Cd47q?oTLFKTnbOj46P8lYxIr`o{P>~n+%Y!BY^z$jn7Cy4|zHgp_ -z*!rkg74p}TKqa%!?tk3He_fRG2*^qlLCKf^w>(YMjd9d)Pz5{O)dY?(;_(btxlYeg -z{#o7$RD8M$?eRXX%kw>#%gn-)E#4M1*&YY-sX6D}<_5hbZJENZ_|;PKsi_~L;@@2; -z30t1l=b0eFma%S+M!`P9QEP|uUB-KgL;7`Sl?PRi+%d^FYNZE5TbD*y6v3gZ@_$R1u}oN4OcG+;Bvu@MuBa-VSW? -z`UxdGi|9114KBNdlqN>Cl-6UBFs?QE#>ZH{R8xRWnx-xFaK>OxVIsD!*Wb`K+JMqQ -zIz(8S19}CX{T=+IG=^hnAh1_0JoGpXxaVTg4l9u2$9$L@u -z_CcmXOEfN46tyGUOKF3qm3bQuVmiQ{$mIh(L#?|cNWrL*yuwHkUN1trjAVU(;qB`^ -z=h^auKuywRGtukKnJ$*n7;IMP4@+1Qr9oTDs??O@j$v0-!jlu$T*6)~Est_~mTB8O -z`4$dlP`QlGRntrQYT^T;El$f!DoT&jUyy2hZ`pC6zrqLUz%4xv_l$?0P|1vyy#oXy -z-9+a~XE*wGAUdT?PE}pt!mdCd&(GJsrb -z-B8dWzzUSCXLF* -z_{9D3IYaaYEFJ*utwmDuE9vS+KU=g#H$5s^xq*JZqpXswG5=Ek7}8Wi{cW3&Zw3^y -zgnX`*6N(be_9n|Pm-5C=3HIL>nH$?SIb_!VA^#d31$x}K$SS)IDi&k>vc>&}zO6)4 -zP$kXnHrC$9oDcVy)mn4RKfOqvWn2e0xZ@1d{p}T<5*o4~xVG{j1-ghrdS(e4s#9fc -z`c3yZ=d7R$mlq -zc>^)GvDiL^ppGCUVh#S-DscLV$S2ZcDx3tg1I*{A>%VBzwI(eKu1@mOXyAMP11hX1 -zcYqBAyoCLV1}5RLGDw_;{FJnRGoscMLx31804FTkv$wW>gxU~J6Kl0x(y2sxGWf7= -z4H5yb^kQY^EnPxbw8)yG)|Nt$=f<2?_prnLDevDd -z5Wbd&=q|!f5fj%*hmb8f0iT^Px(d%g0#^a25T8n6qD6ZA&Hm~U2ap%q@*KA-CRapt -zOy5E^us>dQMqFnsm*=(`((&#Ss~~sh+W+f#7-~-YdQkixAqBi -zK)tvg%ALO1_J5HCG3={%7}u=9Tn6tGmZ!AY;(@*S!y!prD*$l;hn6_bJ>(s%5UW4K -zccyFgD;P#MWBYm=h-XND_+jEb*F7|0f@t~YeNbm2M;i%>YxhTGf=vOE6kD18`UD0~ -zWfX28+!UulY59Yja_+z>I{8DSy2a-YNsUYXFB|yUfIhMml48zoaS!^VfE$=RIzpPr -zje#Sx&L>zW2P)?vl3m3{NhRHfl6KnyfT=1LZ``!Qz$+NUQ -zwKn%JNAu5TkdQE>-ZEk|hm~N8JeKgxfOhwr|9pzs$PB6eJ-eb;zqMMEqSLx>aad20 -zfH^#mt#*HS_^f6GqL`$Fbm=9UPt>j{aK!w#_8v}0C3D{mBdHw^B1%I=L`?pE1xSWm -zSJs{KL`Js3cuN#4k@u+*G#JswA2)*XtyKttSU3RsQ7sHLgq%^ss)$v<^|!hy|5;N6!t|qS-ZDCEaKT)*29J%_*>)_e4t#IUZU|`pF68rj-LH7wrVZY^D_!%3^8s -zhs>E95WyQ{fCLZkjHaAqS6p|G@v}Yp)BW|Up)nU)SL6Gfg7Q%lBXy9<5}(nMTDxHL -zXo~%?Vpem?)AJq0+q+kxX}>ja-1(Fg!Pb6_g{1V7mHl%7zu>XDiLviH+jO7V``z)M -zZ+2=%o(yYrzI{65t7&@YI+yL+lIs!bJjoYxUlq24C+6oP*&3`X_?Cz6{^_w~V++8d -zfql(oLD?K2wRtK*Fuq(5`@{VV!C9hV3&e)ac>7@WZU2}+DWM5*SU$LS72y7?zoSQ& -zVV-B~Y(<|1-7epr&5-=0u}j_|!1*3y -zXP}*hrM+&+-JSf?e=C|qKhJ1iad&xVODKx<`45^L`;SkrfDcI3!AmXtVQ15S>UaBo -z`CJbxR^HfqRH#PCweNOFWJe0kKeEl|I(cf;)BP)mX -z{=PEqfum#Y^@2=HM9Sf2vrtx@?fnBlAmE|91#jnG+^12BUrhcvwh%j|g7lTX_LnPY -z(%3_Mjg-HMX45>3n&QbgenFFY^3Iq9=oNNmg*Goe7@E|!(5!O$yqAz6r2ckTj$7Y8Zc_*}d^!SrhI>buU| -zK-bKS0brx%f*9I6Esa6XzJ~-Oz&alAxfVqzC#mzXOL0VhfwQOsh^@cmf=#W*ASG!_ -z>FN%2Te>fQ`e+MKo)1RCL-7RfL&5R*leNTe&zF$Yrex{sP_x2XB~Ub;N{O9&LNI^T -zN+K7t75T=>B4&!Q=7id3HsZ`va#fngSeoC>Wj8P$K1~H7-37k@lr^qojy{toRkqtM -z&s&VEV9?r9KV&b!V_h1?o{hLO^1=TIdcePrRT}ZAlkFILfEE_Df*Nv?<`=)d^1vjs -zorO(tkEQ5XcG>l`&KDjoO$bs>Xdrd{Z%RDR1$ -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 -z5P_!u=&fc1oY%-}$+spau$+ktd0XM$=}stWaV -z>o$;6@)5qEWP(Lz02KY+{FbM1z)upqR3X;a=<(^lAC(cjGaGc$=NO)DKoy0dnhY4h -zH5bK&vMoE2tgFiGRk$cIu)aWS5lC%9FaYxCrJ8z&8M1GZzUUpJ;DOv-%akz5kNd`j -z?~M}Qfe#JF#j)tebh^K3M1hY(Et%vAWpcow7vEo=-9Wxr66Ha>!t53{nI!`3=BNha -z@lC=2x-_&@WlwQ8H35M-$hZ6inYzNGaSq-{u}cRi?mh -zCaVA#z>da#WvxH6%F0bk?aslQ;mVs(a+kFH`3smp3(K6hC^boQ36i|LrjI1=28M7d -zyy3Ng2+G#Ao_RXZB5(%|!bqz+zvXKciN{H~~O -zUHUU6VTu<*3H)u7leG>Z{1Dz*-Wz#rl~`zLY&!RpWUqC)-@!H_ST5BFamsNcww<>q -z>^oE#s`nBVi%A8JHi+Kzl%;78sTxlR*hL(AjNTu=+0^AJ^^2QE-WIvCgeHAZdN}O3 -z!v9#h%BZNeFbdM$(%n+h-QduzfYJ>jE!_<&LkuM$T~9ztQjl(tl9cXFX?S;L{KZ-` -z!#(Go{9^C@6&=x6EsuYXJNZebE0ET^3Lz9RMkS>OMMsw6G|DuUsS^RQ*eaZ`v! -z|MMZ!4Rj2zPs#|?Lb#Uz|8^tUeQ70bc>5C;TXMxx{41e@s!~qKO{(<_NvmN0cwnmA -zP@*g;sRG{7Xh=fkU5Esa0M63zE@b=QWWs1&+U56Xa8;k&IrT(bIsIlY90bwZT;DX9 -z9mCAQt-Za}Jpm+#fzh9uo{kI|820PQ*Z+EHKmyO~EZC>3rX1U3DUXT@vAO}%1T|O- -zNPvwYd0Bz5HJz;&MVcaeYm_aQ*wy_Vej_=dJ%k_y;p(4vK{UqpHQ1>~1aJ+}!+D8x -z?VNGo;2NC`C-s=a6BLwWF0{+e>IX`O(UKv^jAG14rOw?`^QHh_e-N;Jo&x?o2Io(5 -zxpp22|Hh?_mrU>N0=WD>r_eDHX@Re-;PbP{PT;-LF+knH+)K!>Bc>r-*Y~ouJ)1!s -zfu};W>ki-ye-@xK0qKy@j{RI#c)Qs`A^Og%Z|UO7iMg3rMW79m4eyi!4f&QBIe8yg -z=|{F0$pXmQWPg5bhw_CJY_pyy##AZ2{S#4It3YxQ2B^eC4ayR|PoI@blEri4Wo0l} -z1+Jf7*>Fu$6SVQ0Z}B$Fe&58vmr7l=UaKllacY*rr~tq~o} -zg(~ggudh5fWIZ|rfL5QMPthBVG}53>D32v0Lq1RYXzTz$17K>cg{KQXJ@21uHnBZx -z?FR!`2;f6HOH>#8(bRXzVvIg%t_)o6iPpt-OiK08K|I&Klt(19{NwJX# -zF?GXrKB`Lh^zT|At`@jM^Sy-;xaAsr#;uwMGm}I*f5k<1yeM#PwthCb(rQK3?+NMQ -zQ^KrXwNs26f+I8?td)aA-;?Xt3>`ijcvq@9&| -ztAP`o4M1yvK>Q_llxZ|dfrC;~z+aGG0`jq3;(h3;5X{fn4xf##0sRf)yN=3x%Uhch -zMp?BU0wb0G4$c`7q@3t}flEk;I;7p?%(9_SQqA%t60`z4`am2(Rh!5-rAQmJXDIMD|!>@ew2pmeh8DmjTXb -zx6Kh!IuIGtC~f`AQ?Y687p>`syV)gTEm5zYSio}dClzfE$$G7ePqxZVAqro9Ep{Ac -zl)@KuG{b_gXk+(^t$A54rtVnAAQ#o2LgohWC~`SGy$+_5DyH++TkpUlXV#yLamv_1 -zaxsC~fYH8hbAK~DwRvnD_xz|bPrw|>h~+S~5dzJyLow=l?K^LuFmOCw{!xdn%LR)( -zg|fN0>kRsUY?TIdH&{72l4;HG3Z=#bYrnG1_3-t7UfNLptru+%r$ptQ^Z)pQbNGn! -zP&X*S38wY@LX>yMR{jyo94Pb716w^6M5ugRHGFO#GMvvqgW@MS+f6X851aaLV{=l4 -zZwA~9ki5$C7sX7656z1kus1?p>}cI1swx0)IE?7)>IBM>bd=mx!~X3`OgB^?d9BxL -zvLgwLxtmTEPa6Fa+L9pMAr6wMnl(pSDK04xB7+Y=xREij`7?#9@#Z0OTi%LC6k%sz -zxGNB~ttCahNIA=cyD)0-`Fis+PVan+j!1<}6wnSwX -z$^X`fhN=;iR}VDz8VKTb^g_^!ta+b&4wGIBwU7tep!mr$fCwW->}!0&5o9kCY=5o&7?U;_cm%ZZDO9xU>esUtDM -zEPF?V;qKM)5saPP@iLENK-r+cE!F5%A<@PNs&XQylzE%21Pb6pR| -z*!yS68HZQZCXYJa9s>3<-%2oiCJR1(0!cek^+k#|xzdKT)^Pu%VH^;qp@`uWLf8b| -zJ(pB}BW(i2`pdSTS&GR2#`l`{Ssk)WIi?v%D;3}oFvW;*9GNI+svzfXdkO%UCu43H -zFDgLKZqxuz4zhb6@K?Q$YK!TysunxIUjE%|i^5~kvdb13H`1o)xSNmF#g6_FVrBrX -zn^(w?u_rBvzU37ZVifcJ4TZ%F%I|c8PS&LOr7E3GLSaiZqrIA6D@HAX4d875%n_%Ibe8GRvv$F#7z}Ria-&b{F#8UQ?Zq=4xogiMRBU2gxKM -z_j=p!T?xC*XObbyQR+s+)a+)R*0U!nM!Sua;bIiw?0cJ=$iD>vZ(>&BS+)vrAs`Vj -z$#GIKkr)IgiV+=cL*^g5Ur>F^bYB!4n-H^;FVFgJe^|XuUzj8=U*estU3ND{42C!^ -z#!1c;SXTh~A|u-}WpNtKM3TMi7xW9`akQVmLYd!}YRpI)D-U^5fjf?D!#sXmQ~LH1 -zc-@ikj5{B0G0%B0bq=5Nv6|w`Fd3Afj`qK5n){(37k>I_ADSzPa{P$6VK^`wxtp7P -zA;wRfF-D*={-)zycQ4}SAAe*c3?VI>d24T4Z}l7vUK0uOY8&{u!B*hZ+@k$Gl(~DOKADovIU@49IE_lq9 -z+a=vt@V4z?8H(Jxp6j@3N&}V)HQ5tT-MOQ>qQ71BBJ8r1@QS9+D_hmQE+WJt;|?+= -znT37q|7YOEYQVQ-GWZxOHWXr7_gC=5-09(4O2+mQ-TueQdNa}5xm<*oj}ON}v^mtD -zXLgHR8IklS_J0w9!ZCoH8TVzudz3w6n=mZjfwpQqKicq9!pdt`i6GM7o1!qFOenba -z&p?p_*tw2+4+8#s)c~irOJ!R<;oy&x=VY{wAEtB*JU5o*WTtzK_5dX60qLL=31_g> -zpD}@WZ5=V{2YW{5XD%9Ay+6cdW9EB*Qv(nJAQoesiT-`p23K?C0a?T-b{*1_h%VdqrOH*^ldf@sPIu$wZxP<}mR1Vl -zZztV@-kFhjCn^^#shPpY!N^}ybw~=7I~dR*b7=9kMzeKf1MpfYt_=M~xo31h02~rYrp5^+&jkD6T~ixSh=qy;r|5K?|@niiy=_wEQc?iK3IE>m5My%LWa8c124uJ_6DUJeSBw@ -zfk8H}(VgVTgW-rSHAo&rXd@)o0O20?IsNQ?C2=fE=7P1Por#eRsb|>Stx4m!oDa*}gZ(eVdxl6X(YtXgYM^x1 -z+be?UrMD}i@Ajf#0rs=UfX_7@2Buxz>sf4{4+zeFac8|-OUnr3xjwOhH4bp}S;~Vu -zYyD(nME1eh(Q1QKd|YR_BOWl*v7w-6X?w*qT-n{fB`GS#ZPoZ~i#oLwEJPen8fgf~ -z%j|Z@nlrRy+cr==|MV@x({wT>r?9hZ8m8Qrz<&Z03;h{BgxO{^%3nWS6$lOh$(cNhYG3 -z*)^VS*IGdSgozz?OvdiPpTsOXp&j=E`;+!n7~%^+*TcfDuXPCgm7kVs`1>-MpD9T? -z@{K7pZ^rnk;s=U!qGyjhrIz5K)!egRMC(rr%w_nPt(@p8q!(`2b_8H3s4ip1dcgWD -zpf3DCz<0LwY2Gx|il0Fuv2RRaMtE~ta|C{6zIw=~I%_*>6o>8(z+e{Za(S9ZtzMA* -z+*!)y5LfD^lQq^bZFIsxazyxS;RuVOM}ld$D!lN|?DH6=p>9AD#do@S-{HvZB~qEB -zSIe%vLp|lJ#U{Xe)r98`{oi159Xw7Wj&VjuYP#M-T_PyTA?d_gMd84BwB6W$+tyd& -z_}{M=#NN4vzo5yLQ2URqNk;5T|IET0e$9I&Z4YFx17mnjiorjzD&|!TJ;>2}61_mP!HU$^Cdp#@joZ7k%P(mhQrj0^30zDyVzElHoHzLpe -z{u|yb-Mrr3oS$gCou#@9k@oadg$If#uMJ>jP1(R`&p(Ky7rD*p!{9)$5Tu&VI -z*V@=FS{{wqPQly?`h+Be3qN)`?c(G_;3p{JD=t5B*HJ7R+Bt*1oa&!?kPwR^rbV(sA5zq*#yUUois^4}_{m2>TBdUdD7!)3?{6 -zW400}iWS#M(vR;h+Ad;l#=^y_uQ?`tNcubIW|LYHV4s-D>^l^_i%vg%wcdxG>hkbt -zmWXrhE!PYvS^NOBSTDc2&hWb=HfjkD9RC^TNR!d`PO}Q2n6sBx&&G(fXh{rOx#r`-RA$pTDzGyz-=*BF#OO -zAMfK5z4K>&4yHBLJV+_d1b@GGkcfsi2N -zNXq)mA0V+9u95m!-SuWplDiv86aUaJjlg8|>UXR!xD4lWzNMzF&3!t0&aM2anw6fQ -zmj4Jt-w#72(dE`eWWvjw=ARfq))b0tOZ)~J@o8)_WWcLTtTDM -zZbb?#49L+apE+#V#wD^@p#E9ekHL8p;#z!m&==xbqlaWkVZX-Hi`W4k^LK|gB{+4~ -zXKuv@wbgcD1PG>zOYS}iS)_4ZAUI~)Pg>VJFjc-kwJZ4T4kR;jWKJu|w!>!b>}v-N -zPl(c}Mkb-!&TI^d((+^W#m$1%2mFCi^!uF3`8p!}z_CaQ38I?S30I152*a8T3m;NX -z`;rfEKMMLh-0a?gB7^Q^=JL%t?9E)uRTVy<_kZCsbe#rJJTUOX%EoU -zApdnn@z*0+F5yQw!>86?P`Uwddq%9Sst)b{>P}p*8vRdJBjA;aX|ws&;lB;wkm!SN -zeE+>jOjkHufU-qrDAp`k;G4-a-1O5KEAea@AZqskU&EC&sL@JL)sXi&&cHnMsnF>94de>D@M%h(mWPlc>%x25c5XQWA4P21 -zD_8n!Y90^LafI`K7>l$<5)A#T_X;vK;(u`KR@h(3Iq0>$`v~rA`_$Ap|GD6okJSm< -z(&7b>`v;7F)ge7L=jjLE!UGXv=8jw|cdf=fa{fABMd*nF9J{r%an=H)Y?b329VOd+ -zce&4E585}~Eum-CI|_V5b&>bH7J8h$p`AS~>Ys7dG#$tb!bZa7c85N-%EJmdI5pD3&4g>c91n=9E@M@h@9-_EDKPC -z9NT#Q87$_0@m#~|waT#M-?UL;ilo;pE9A!5b>2nJ1X5p~PciujqErj~4hkUmn}r-p -z!EGS=bDQsKEIxWXO9?p}o1MjGNczM9Z+s#`)K(CbEocxjT_wuZ%U;0D;*ikxalYOj24so9~&{WduI4kT?$m~KS>wL^5ph~EYi=Hg(=H#`+% -zO5g|~(!tJC{;OgVluE8_sI~IJB;ntd(`)CjY;O((V~AXE#Nvo}n&=H8&z3B`TWEpd -z06I{5dauAQt%)1+=`jkcQ*|&cs7QdUGoEQ`507$Y&R7CyT-vr -zKwYzTXQYv_@~a@vB{QArT^dWM4umq&lM3G#aT#47aP|4yja5?V8=FP#-)vsDF}S9< -zU=cQ2shl5UytQoF__s?S!+wP;1qp>!R|BQ4>py&>Exh%FN{p+}0g?Sm{*2CoLQxo@Z%f!LCkM -zj2-+JTZe`&;oQq2s`Y0n%~{s|X7)ZXgHjQx1LrHZGxyOAe?#-3uTJ)^&1wZGl2j_G -z`13DeKePYpa_`*WTkVOQ#aOfAu1oQs;>yc{81<5cTocv%Sp{dwfB-TbZvUTyJ<@EqaWq&rKz&aUW}}$&S=90okKH{?o{l -z0bj7uau|CmJnt1yIUzz-Ot|flAvuJN{1q-=|K6V%U{S*^5;cBalr(j-x%^G;j{6SR -zkLL=BhiH9F=}|n2KLQNL_8m5_PI;8d!Gl1`0uMyOMbu^REY}UtX-V6xAdtn -zWQ{Z22O1`Y$1-0zm0vasB}nc91_|(!$>1wl>*n~mzRKRttl#X7bMsT!r&uV0rVmqM -zAb4U`gUwmb0gJtY_34XjdYSVO$KJpsuu@{~ejnHlnGAKr6{AnYOC5e;#!EN#sU?vN -z*-)*oFVGKJuA$`Nqh7XS47rEybx9_B7j$Yt{@v7}&)pL6_ri|lY(9G8j9W#Kf7mxr -z^>r2y@EOg$83QE9V7zza8fw0K?L#{?N$#Dv>iGyxbq}Ng>Q5xNoT)7u(;71HA(2b( -z-UK7ILQuV1}^vEPxsuilp;xe%&n -zS{5m_Aag`w6_8k)<9VmAH8$B8NyBpH@!y7Om28nH&%Y^54?%!tfQ-(_BX-t5uEd0iZ_msUDs;>$yGb(yXxemK -zw^>W(UBqd?=APTDHYxJ8UgkH1#){OGzDzUT9# -z)U}hm&@#eCGB64c5i7Tbs&XJ|Z4Fwf=O#=T%WU=2QpfO!t1}^9MtsFC-eWg((hCq* -zYDgv$Ks8+zPG?{6=l;;0>qGa^Sg^O>GNYhaumPVL)^Ig=a@AIwwO{3pw<3*@uAa95 -za5z?HfOm2Ti@TE8$N3MoPQpEujm6CEWghxd*DwN5%lku$bF+jdDfrc+qH9HWNY?oh -zDs|}ugo%0?%V#>Wm|Bj9XX>ekf{G&_22GB+g=Ty0x`B*MHg}>O9+6sx -zxD#Bhm5$E$(^qqF>Ks0qR_E0-?G)bEXTSP$VH5aXq8q^NU8-$(cTfs%&x@VC8cZBK -z#Q-y`4XsLPEQ$zOORg2*0QT1hEF5+^8m(4ZmrK+~N_jvk3MhSXz&nxQRqLKFz%ojx -z*1db2uSG-H5mk4!lucQ7y=@E404lx*t=LAAdlw9TAe-yIb7TF0hBFS{SVuW6>IIV8 -z$9A=V$Ud#)Yhu*!p3}UMdNzpW4^IDGQ^^|u@3)+;*N}NmgIXX_v2xm{eIi@1D3Hw$c>U)Yi?Oh-i2;AA_-ovWnWrkBGK3~mh8bzv-$XCt -zb{`?~&@pZxGU{)|{UC3YWsG2;e*42`{rl*{e$SLk -z0o8}@hY)As3HTRIZ12KJYF%Y2ynDt&+g!Fu_{KxFbSk!t7+d0zv0n=pHL%8-D~}q}UE*Gds#T>A -zs8{w9HQFwVL{(WhF;L`ITtvnMY@B@PNt4`xwbnzH)MK6Oh8OfmxqR>&Na@3B`_ho?{3roJ?Nh -zM|{ir$WG18?Ue{qvjLs}-t+m5#a7xK$-5SG!`3e{*wO&Gxrd%0K=5cm_2W>iX`YtE -z4RLTvgt})Ug_rWcw!Ew(fLs9nx2j4c2hwNFcG|=Lo^+j$S=15rsr7jRXcmakGO@-5l5#k>QAW% -z=N@&O(XK=2$^|Eu*EX=m65h4gq_V|kcyUwK9+aHO9bQ)fZiHa -zua1A$kcjP3Q1M<_8^Rz89IJfN73KM2eq{=wM -zC2p#i=tSOseak}k6m}M4tf;60Za&xf}Oiy#sR7} -zh)4TWKOGSNe4?ZxBcm0;pBUeXVWg$t&j(*LVU-}4sGGh_w@t(E9VE+Y^dhdgv~jGk -z2Fmnk3sCYSRlPL&=Lz#in_G?X;bYela6ZM4k@S&pu@IAeoir4<#u7^|dU``=0R0VM -zKP7f@`5ehUVZFK0seD9K$t=06Qf2k{SAziEX8l86~ -z4X9&Lq4y)ItOWB=`eiBr906{FipFB2kEAJaBL1%wiCwC5iUH^bu-_?vT!$W$i{uwE -zbv-GO$OHvYuy2~ibIB&B{CI+RuwKQ53`Mf!A)W|DEitu0g0#vO0^Za@MJs?cesjZ~ -zyJi0KEGkr|Yysz*O3^Uo$0YljT6o)2)1|I_pu=1g_(#|I_YYwSxAp%vv>>3vb>;hR -zTRe}WG@o|$2Hua|73CoPJoZ50FQ!l}hSE -z1sj0%5qA1w*UYB*$Ga8_m912$rvh{W?UbgHy7OJeGUN*kM}r3 -zZ(xR!5h1>x{RJlRlYua%*;yJT=Zi7o=}Op&ZBl)!{;}-oYqoMMZT~Hl!#%BC-7_KW~!fep%a -z5dZa#{WR=&F2QlMPe4}S{&YNcsVLFNnSNkkW&)C!^M@b4$K*xl<&UzQP3JlT(w$0y -z@RADvwB`0M>a{tK{(n?e#5kRmC*mVG4rZYkU=QL5ckIVnCDa1!SPdmp`0sXL}7H-0Yb|Nf*|aVUJJQnUk6 -zX_hZL!NCgtS6PT-HOa%0*Eh~?ngEIb*tULEh=b2_M(9Y;tTMHYw>`SsM<<+Pao}G< -zKAy;WI~y|cP^*~Ogjq)2@J@Dse842@fsmW(CmJN}T+d%776vvyg2OARM!PiT}wA`(nM}%o=+Rkg#?h4af!9aS;Fx_g4@0xya -zF6GrMdZK}tvsl-S|M`|l!m+UmwC+G2VlEl}_0J$)Vq+B{a4!){_6qTCxK$SgO{#EzLoy=p6uc0Pg(Djf{?1RaZ%xALrab71PeJVImeDWDYk~ -zxsZM{>&Vmr`(e1ds8M1*y7OMG_A&}&*+*${VvSmo_AI(dzvI;s={o?c0fbF`r}>Qn -z4*;&iha94EHcmGkTXWJ$Twd-WNW3g$0C2y1|^)JwPw(KNRh@96B*T -zJ&iV?xvSwVtl$Xy1Rr;1BFz!o-}k~x&%7Y%mCdbw`;}1Xd^;I`vrkd+1+7f4*>y}w -z8*#YQU?C^qZJ0Ckvx5dUv&^>;5|Xc9O&|0#g_U$qhdyhD*(YA-o-F;F3!{^+{y&#> -z8$M=eSgp!$;-Q*_&H&iF2#~BIALVCuk$npbce~uU(U{J#+bsU1(x*4&8vRlLSnE9t -z;)rO2rs$n*Xv!#+ExnjD?bU4w&V9b^z{z%wc=^&`Q2eQ0UO -zAA;g@M5^@|YG=Fi=XKF3!s8mXwKEOUuj>z?Gc>T=PJ-KJtSpVG+2SuGNu20(qd?xT -zvn>I?0sD5svWJ}P;>j8JdTRXJT;tyeK64iUQ>JHl@Z6?7pSvwzSfhVK@F5`R{sG!# -z(h=AL#P}>F)1G}EW$;k`*`O*e8d^N_T1(}eRt>6xVy2G4X8)w9;pV!T>u>O{;2o6> -zCtIYqcWgH`KrX7yugFq-AS2k?xE)KfQs@{W&Z$>*Jo)*a0(^)G9s#z)Ykc#=Qt8Dh -zIVuPGt@LjxQg@~*llxK7LL_}81j%R~50(ypju~nsAq%?7i5G@^(g{_!bame}dnZZuMF?t)Wvh^7_(gj7jk$IkrN>xQV1IJS^q?v;)+jP<%?AOZ#Xd!ueLqgJ -z56d0P=D8vm>db!ynwDHn$f71WD@ZvQ4DlVn`DNyM^q{i~`6v_t$ -z?)4apMOz^eef0ca>WX*`cJ{dG7B|V2(y&KDKtZeoi=oZ=Lf>xuLFs*p4Ie$5XX#XvR@|BVB~u7S2G`x~r>o^U}o&79w5#y{x8+D_*Ljd3?-hqWCbk -z^UX56`Ku(i;m_I~sBoj5j7LeW=l$*k5SoZPixA({XHpK+e7%Mru-~Gk_8bLokj*2J -zt)-sqvWGg^*pqkiFx{c~-O&BT>2}ltX)Hp)nW5yK;+97F!2R~H13;H0|sW# -zhVrAyj{khHVCLvjX(8WK{%MK>R2V>>z}VuDUVY${FX9`hRZLA*`kI-@9}3ic0Rkl& -zHYOHDgph3dm(Rj@47f4S8?=_(a&_37$sE=;lUptuhbM+mr@WP?d{k^)_l-IK;F?Aa -zZqWclICA`@<7~aG6EEf-D7a!G*yZ9YP)=z`vN2BsQc94_zLM~fZy9oi7%a5_D$u|nxyVP`)KDcd -zEbLh+uM4M6O%mI# -z&ixA4qEP{K43>O -zeOIE79jz)XqJkZG8dEvOXk-%W@<@suT>%#;7@4+A5cl1Zv^O=KjRT`p@rO@EK4_2C -zy*gwvsz?@3rl^;Iugc5s7fct#*6yl8V7`e|l*XvRf~Q~NW%gg!kTnAe0Knn?#%XbU -zgZjb=Gm@Bc5gk#$dK3Bu)LK>ZNXs4z*R%)a61_J-jU1c-(Mex)vSl)~owvom+7^SM -zxtvu$a@+fjkXoGRm2?{Pu6<_5-M2XQmQq{iePohzH -zxKC>UAYyleh7(N@QH>o(`qDt`P&y_ZcpmWPb@EnouAq?VCX#D0fzisDg;Ulupngmf -zytDH=ZIl&#j>}KzzC7Ip_fGzVgy_mp4U;Q>Vlw=vT)^mWlj+Qvb*JGWH#L{m32yvi -z|5H?qe{JE(NEXbbvwvd~R5x0fU~Xju9ybW05$8`Irp^0>2eKYn?heWI1U10bevn0yTN+dCHV637na#kN=dEdL1+9RJ -ziVQwS(eXB*dg}UQV{JqHGK2etEC;Fl!LGs)1U)J~{}-org3DgU?kRuFH$b!>@NIO8 -zkS}{_r&~0dp3KJ#hCHuSYjKfzzJ%rlqsfL73nH8q$Vbz&kS@GwlQVz)%P7@%XKgvC -zp;!|G9hO~O#d$B%AA}(J&g>Ij`twCgjI+>PH#VHFw0?(Tu#kPnFgKWAy!upCbN8y9 -zt>EXbyecvE?3;i~IF%fN`eIWJbu#^F9A@^9Z&)_k#TfKQ5_+VheZH8gXsT(eYf#WC -zP|IcI^m88>%}p3%vvZuwh9pJ|r)d`20}nA4v>5=O5$WXTixqJhjt^Aa{Zd^E$(x#!%p5rtvHlgT)v;+Uz)ajakH&(An}Mt~E4A~={wVaBzmQ)zC6 -z+02~aYwn<(MnX2HJn#6E+E6{@p7&p28r6XNO{j<@YG<)nv-HTdcfAz2qG$Ac(1-lA -z>qBicA0ImU5NOkW)xC!2TtXGVd{}+DH2iTtKJY5dsy@4UiG&i^RKU$OypY6EMzL2{ -z)7aT-YI6qPX{PG!G89zTC1>Yd&DbYY=S&z}%_I14rElO&=iOHH#ml*kWoCOMg00orP3CxW9AxD~85ElO -zVQZYlPB!b#0T}7kr~JyJSvnq5?f(Q4^@+Se -zqvcgKOSI`saiu6#W*9!7%_!K3*wwP;+S>3G;V;#0e7`pDN}W3t|Jj|GVax9F4>oV# -zJexchFAU-+gp7wxZ`n%=_q!hbLqN5F<-mMyw^!^X3@d!!7U@EteVK@Z -zKVbnUfRsD+Zu>|s0myv;8jNq#gx4pp2Eo#`)I5ZO+3Eck4t7Dcp3qb>Ae-fPsMXoX -zZfAUG_paqxhu+k$t-vCpAba_PCLhWKzuj7z=Wh0C!a^n%BU!g6tTb&mr7ZpEnHgQ7 -zu!rZd^lPQi(q|(d`l=+hPy2O^-A5X0hOm;|gyu4$EH>#mev}e`=Iw!6kcMImVE=t- -z;fV~;<2zdF5F1A$&^_Go!nC!Ky7FqoIka>sH5x5 -zPo&ncvty~oJ)XpEEMdi5T8k}>p=A7)XPnJH;d{qHQ)gWCLaF%Ot@j*E1dM%38$-oC -zcE`7ynBu8+@ij@102N?)|MuQku}kT>A0yphMP%;qJpVEq7Y3lQ)P;{SEaVGYuD?L) -z(c}T5IJ1q#zK`Sb$_(#!yBtBG6iw -zn<_uQ10tT8d4wEjhaIFZ%ndZH?@B;Xja5caTS-YnZ_8pM8` -z_Bg+F7G>@%!2vL>PNPWA<+8ikkg1z~#S8YUNPWJ1b)IctyIT9+W2uMxd&h=3Ao|Od -z;YC{HD{TIAZ~1U<4VH2W?{z=+{!ti-#@X_9YYMB?mRzVH>x3iKoTHBzIo$jW5Z08! -zR^x(~EtnIa+oc}1KZXR8-PM@{Au$UYv9S4MH$zJr0OR16=%|_hUm#QecxBL_2p;S+ -zLQK(dx{%E&TId4HsP+N>OuriwKL1f5J@DQ7vKwjz0X_tC+fV*a*>&FpN#41}kG5hr -zpWca6oni5hNbH^Y$#w5RvzR~wWepx}k$DNh=UmoV5sRKQsS|Oy^qJ{*-of}=--g=& -z*#KCjSrj26#_3eTwch2!48k>lgbI){iL-9wV=D5ZMy+E-3w7gI+w+-?P(QBh=cAoN -z`RIV%k6R^AzK=~gl7{gdPuO0TW3OZAAl$TZ#hedoaOfg3)txzE9-i@2pl=Ju*(i8= -zq<9`^jX-0vZOKk6?vPr}Um}D&pR42*V6V2wbU!QQPDA}{>y -zZhWa1j1|UIE2AOKX?_-?)H-4^MY(>&X9ocD7r2)wR*>)|qx1Afy8>Aj9a5vR>clDG -zoZxzvxAyIQ1AX$ET6|Fg2q@#vQuwZbK?Q=gsO2B_%T@dCBjnB6Cx}CzYS7~aW?f!u -zo$7^INE4Ao(Mt)}!E?r4Ef0OAP18OX9aEu4Pm5HQc+XC~-ck%F6b*15j#pRkDCc{JKyx+5jaZuc4EymI2(Z1e-mJ|n2 -z#54<4GvA79OmOd1#Mx8|_{^8z!s?L&uQ#dlZMyXN++~+qpNM**g~#-XD?`iit->KJ -zWX*t~dp;YXp-Rp^ZtG-%mq0zbQ8$o$Jap2lj2DEisbdOcUOjQ5oxQIFzxIg6?idFu -zkQ38NcSBRVK=jENYiiXHX|Z>bqhq>8PcdBjbs0li!1*~8N-!Plz4ZN|X5xEn-Uk_t|H*=xpnPv*%(mtgLSWl?0);{(`YC5XA9;<+un945-)CYEoDdI%)d<;Wg0+0$Y9 -z40K;i(e6HLSp?vM7>w&a(=WMm=^R|jZP?N;L9|JE^-&#G79OzJnx(*a&F*L8`x%LS -zowQiOcQ;uo|OhM(*)rpse6 -zPfDRNe}TIiZ1qfkR!v-9?28al-Z}9?mOi4NDj~kPBUGp!uuUX2L<80IQ -zQd8rv@(nD~K4-w2dIOXxYPgHMT+d{&WHjm-BQu`n12*=}7a*BruqGF%JPB -z$6^hm*)sIIxCu~TJvZXqpHWLgy8h)&0`n`i%p+ev`}5N$A)t&Ylk#q1x*$ouG$5uW -z{{@gRgkG#C>6Zn<{&_82E2Kag62@7wWg|@7zj#hhY)lpK<8wggF_RLJ{QxpDcQ3z7 -z9LzSC{yEmu#O#5GAP}|#T!9b-h-%SWQNye9?=J|^dUh5*` -z*yW`Z=%Xi7B2C&r<=*7CWSa@R3$Wl)XGp&k*z$kfoKp0CB{AX7APhSh=+xIecjTJkw_m -z=`6_CSLT0X?gad@@|9czUU9}J@L46+{R^H)by?tXWerMT8)+wTs|Vp3jy2zDJzo7c -zEC3j3fMj^FsMI1!?c%jB;>e+D=xH(N7Zn8_E=ria*9|dRDUi5n4~C+ijEfuC -z2y}rPvS%fvE*dr+O{NOU${mUI%sUZS#gLcBS{tF~0RZ)XJ?rut9J}qmBI52LIahw) -z;ircg!Zj6Pz7I?uy0ea&0lo*+eBAYU -zKg(BZ%_rz&Pf+}HH8^`Iq4}SsZI3AU$GIt**9TZQn2^6Q{z=~1)F1`j)#2+_UP3H* -zUUU`GwU+blAV(ULTykZ)@L^81XRLooc>~wILN2JIrQti&x~M=TC{n0?+ONPwfL0%> -z@R7YeyDc#zy|Tb9%Cu15%A2K$8@4VD#GcJ@7g!gb{^8EkJkzqAe3H4PHi%w&Q5B9z#T9zwbee}ERNpTuR%}zWOBqc)7K2p_%^kxyw4v# -zK*2Ep@ho~d$BavLwIOrn@NUU%4V%i(dp$vpdF^~~Ru~u-AOQ8y_vz<7Z-PNEKPHG^ -zwQj`#2-10IPSS>3RTR#AgEw?_L(=}ITpyX6*foo^NBc(n@l@2tf{iZ;b!ibEODfPu -zs9g1VW>K8Uv-`x9NADBTTpXZ%-Y`Y<5dNNeTM`=*WMJgb@*&XipCtC79DIn2ttY^!@b+>{Crp3ta=h!W&HDX!PND~u)Tq>K0Iqn?c2GvA -zsSp%vB75RntlQB-_mR9IfOSW_h;@*p?N(~7Wgif&LJBp?)pvMf^XaWD!A>_vI4c&& -z=u@D?qZJB3t{Xz{!z>QRp*@z*oC7}qamD&w1!oTxZtmJ$2zI*Q;?rDzQCL;4lYLoc -zS>$5LR19)kRJ!H2ModIiAGf?XRs7|y0IvB>ar*ZO3c`(x8Trubno;ye>_kmUeX3}g -zt2T(5zt6jpc7A0dhRk*181DXBaXOJN92%)FT<%;BP;HmHf~MSM_ov=M3tu4$AAm5Nbp$)mwfLmtzwo+w2g&54ZgM1aJBkm8}EnUcQl8dD0D -z9QD8!mpCO$fmSD~MhKn1cTwSWoW`8i{QA#$ya|6TWm7iX9K@O#ZijSctoQvQK}6hb -zc|zyT*)a!P!C6=XmplqT2kj5rP}UX?y%ud5KysQ|gI&Fmxq#q69^zOdP{enC+I^$q -z>Y_RJ)5FCCUFmclj$p4^-ASxHXn0zQYHQaz>-JsI`o%a@pNu&GER+E7>y%ZQr_$YU -zA91|N`}`11Svg1f&VU>j22YNG7#B&v^`|T47D@#i+X*9HPZkk6$0S^hkMmdO75=vPAyG7>T*MGJ7d%1 -z08l;!B6w^CftTudirLp_X{8T7fTA!kfJl2!JN!`-srvZpoZkM!N;G=YbGTfn=+c@# -z`4j^!_>KC>v8ukVbkx9bzp&^R#+2GJNf+6te_3Ew@$5A!?lIO$hGMov$M8EdP{IXw -zqr*hzeV8w`|M2cmLD-g1N=Jc64ntyIGe;WrdWpQ&%5&2it<-;-26B{;0z!Pu_cS^} -zJo(fptu805Mgeh<^?4-Yq`Z4lvcGXT{B+YDQ}DuL>_=~na-2Ou(da5AnpFXu=%;`Hc4t7Cwut|lsjTVvB5;qpS9_L~&C_Fd-dMK-Ln%`ii9XIQt%caMwsH~wh -zh?t*jp%}W)8aV->$wxOUrxWI_16bcc+q!gFW{W|WfsVMD5AD)xrnUEV1YYhnx~ft7 -zGr7iiQuzD35}vN$eg#3uTU9~p6~DyV3_s%~aVps!f`@LH@fD7LDuUU^&6m7id?O8b -zVjvXK410Vxy^P5oXbCRoz*t=}id_qD_{uGCz6$O01}Ufq$NK0=ovda>Kkxlis$gF@ -zDD>kT*}eVmNqRdV%f9o$ndK4NVQxdorLS4$qLkp7z-yzHU~U)M`uq&4ssL~alFacu -z-2h&rm*jjAcp0I$mnC*jjL5ZWJaC+n9RX8Jf-(iRXI8mfNib>#3PvjR@I+1i%s9Mn -z|JV$xFvQBnl#1m}*S%r-QBlRR*6-vrgv@kwI_c9z^QKKYN#7(o%VPmvge^;D{q@x@ -z;~F!qnMh_H<|;Sr5_-rR(Kyj^yNO^wz2W{P+I8C2%{boX|5*8Cpm!E%0016&kJs_K -zF{I0Lj=aH(!l$rNncfv9{fhWHqf*Af{>NQN -z6DmtT;<=e1240(N#FTOndM+{~dqu8T5Ss`#sC9 -z@rz3SRRen?UDF1nW2op5US;0@e$>@p^|;a@vmJY_&DH40@?C>pyPMRF@)H+WK_Sj~ -z-7gE_dnEdi#|H-|Ei^4NB5u#{utZqXhA|q(Or}3P$7O>{y} -zFjoQjL4qhX!~*LY=d%d;!V -zlq@Olu~MlpIw2@{&j0JFRLsuzqJO2%OVcrN4e9P{YJxUQJjV*nPGx$Ak0ywj^kbB> -z#qgstsi&sPEe!;!_YRbpR+F&8IiCHFF+>%T^VJ>p`CcN1_?ug}trnLm#T5AjiE6Mf~vg -z0iA^mvw4;SBNk{I@gR5+sa*UEMuZ?q+z~4eaR_Uaw3AW@S=_{R8X&OW-mh|jFD7q+ -z^wMsuLbXOM;prJI!TL+{XC``4dP>eRxR8#&J5_+8095HhQ>iPr+hffGo(TOEE&CE# -zrL@3LHyDe6<9$cLJ@Jg!x9K55@BGM5D0vSUoVEr=1eT&X-h0V_|5#dUelgXxer+;>Eo6pvLumUzKmP_$D)kY+&xi3J -zbOe1t;>wthRvON3r*==?3m4Sgq9?YaGG(V`(gD8$l6ANS!J`GiUulm{ACh{V&glk!Qi?e9C_B-RMY>Hnu-X4X@9JF5u#P1^Jb*2ha&l2j7 -zGX9zl^nCn(&#+14fIYPUa5o6;?0~stBeZIzV+I85rzDL9UH#Ua-t`ulNC|)0*Ua0- -z+Buki1l6`5^Baya910%Xw^YCUtnlm7+k4{fYTW_E(BS(Z0|=2d;$}=jD;Y3+)KKVs -z5=-^3EoW&IFEYEdA2*_ov8M0_y{)}AgP##K2?0~gQ2{=e33PY4DUMp>{~Re5==1gr -zg2FW8`x(g*>2B~LJUHI4`6_d{G8tY6iqu~jXd`>mq%@uF(UV>e!}28qKTap}vTZX- -zndK!SM$v0hj7~VbfH(ovz~~XN9b@F_MnY&CQyfL!5^yXx<-cMoPClTVO&r%Gc)LB4 -zS(ymHAAT*nQ*Xm13n&p-5*Sck)30yyXuk|{8+&qi7+{)RVZsrtYm)!gD5xIKa6OTV -ze$dnKiDKPSxwlA;<>pNtrf=}0DK&0BRo(F)kq7d9QU_il2gfT8?cPj9B8Hei0A(1$ -zB^BBDbqBeO>7i2Rp_&zj -zrMi&@`E8hFiRo(YJ6W5#T#B}dU^(m|?kx{5Vh%n#p219l%C&DBCed7iB1s3~2Rn^Z1puaYme8DQQ{6GSetYHDI= -zE|d7RAtoA>j7Xu7(3`jIm=1=|g>*N96T59%OU`GWZJ%HsnqAIMd$S`I!juI;7bkCxuQ -zDkMo8xw*uP9j9=9p{#rG1%ZGQ^P90Hz}>j#_qr~BI?*@#F}+a0=oXN$`{R?{L1{O= -zQSUg+<(r|#3)Vyx;8 -zCF8+_lIXOXItK-X`0?hrKO{^)(6S6a2p3yl*o_5GZ7F$Kk%&)UQE-grSWP6HH_`q0 -z>{@$-f%eQM8_3x0wW4CnwhtSSU;XsW&*o)aUe-4j()gZwL$YzvtJ(F*yu9QGh>02UL?FYRe7t{9DY5d7~k#~c&YQ~m*YdzCcJdK -zFv&O$sP9jj_^)q6r -zC)~D+DV~#~E8K{V(O;td6Q`x{B&jY&$~UdI0G?pb#FU}J$`b#Ra_d{43|0Hv}gNLR{V(q5D!Pa5pl4?PK=*b_T0GIBRff -z|7u^Bwp+UJ!F*NEe34B^h2^{j^{3J3hm0;+mU{N+H(`BsB;Z}(4`v{Ijv8)XYS=(3 -zSi;Z<#jqreSQ7!DeG-0#%aO|8<4Z6YRcN10l4T0BzAu*W!J=e{@KeYa>2`bs#(v1b -z2sMnrLK?s_nU*N>6(3Dk!2bOZ@|p1)M`C-GDz+oP@64u6)N?0W$MW3nEvKQdP+ -z`Z`A)da4X^WWv_w99>-h>cQOufgzb^H*y}-$HQN$R-Q?1=3JdNq+D3kps2w>_H7cV -zE$Kf`jD|Y!WLui@F{8{DWovYISag=y)%#^W5F|uSKYRih^1(&Vv%g^`r>RW{`Q0Vu -zG{j-Wdd>7<9R5y4g*`K=i((lLI5Nv~5`J;@ay?YjS>n&QkNA6{1YhC&tWk=N<3|=l -z()Cs>rgSqJ){AQCShpTSb=4_eTd)W4heoJ`D6Z!$do#t#afFRYUFjUhQ`Hd5tpCSL -zqp>_?`ff(jtWYLh&OCH6FD))n2pzFl*Neh~4Zk*fu=IZIt*Ry!1=VeV!8|N;>A<;A -zwK-EY9VmR`7gHnFy}k3A$Z#xa)%mXJO -zetio%kSj>fIQo11viq~vqhwU0VW|8+Y00YY9A -z-M@`7%pUv^kt6}Lm$JSn^49Vih6{<3J7?t7mjtieLtFS%a~bEBH-ITBoSi<-aI1U(P_ -zkp-Ho0VxE1MZ*&s!Bcj(AxPp|GpZo73SsY;YcrKJ!HmJ?5|4qq2F7iEBuQejHEurB^I2g!Jfdd(NF_k5b`R{%ax@ -zG+3u~_v@%2Q$-!>$08b$Di@#KPnf@|AjD@4fGno -zJ=RGj;dULecDp^dAte5Bb94Xm5=Lq+YG8ZSIj!)>b$`n1A{W#c)uk7JqLE_nm7=H0Oy^* -zr(1?ui0@6iv;2PH(|s0Ee+*`Ors&X?Ne;8H%3U}F^uQhc+c4zDaVk1jr9+1TACZu( -z_iIWpR~a)Rc6;8MxwSCty*f0cd^?EFmO;`~EI18H4f_MQ(^&_Fxvfa=k`ZygOb&V8 -z3U(IUSi+_mx3>{XnD6fWl-VIe4lTHB*lPFk(MjU*L%qNayfSL;OEW6HR4e#L2S-FR -zbIxUl0&XzlnJ>DokWpNs48=sf@?m>UdP+&O+0{8impRzAp_KoAbprIlQ&5j=;ATHg -zvzned4S+%HLZUl4lY;6=wZ~rErmz}ft%}J#zv&?6%@?XeT2;~d_-qgOO_H(Z2 -zeL1NZ23bP2`ZSIYZ5EuRX6QHT08LFrVGjw=x!-v7(G`BdbC~ -zyIrz)lg<;oaIT8DJhbza2fx#dD#upyKh85apzNG9w -zC{mtJ>2v%}=|#BX(jLMzZ$rJmtFiDjZOaTiQX8R$rqafsM3sNkhoE=SDHDkV(AQ-*RB4vo3-7ETJh -zi%E+8WsN-W14b+Lesc9?qScUghEGhw|-xck{LsXi?+Eu>15 -zh4ntYecph$f|&~X^?Zalw@x)8e=qdn{_OGqBuYAzd?zff%x6UMxLx^wSW4;t-C}Y< -zp)Z#;2*1*6&!(QAUE2ECZ@^Fj+2(i}IGkC9DD>ZDtDPU(kO+I%+#$|m(Ve0kr9Muh -zxa(&ng_)djg(W2J{Y$nbo+PnWH`z;kH$6jv)3JZrT+IaJqXJ}O_2&+{w`WkO_JkkJ -zSXrN*W!o=OTn0@d{d_Llze*I;scW=Fl&8krQLr#%R7l~sJO@XRBH~T|<8+4CuP9V& -z$hO>)7%j$OxAT}Esx|i`zmmy}THTM*WtZ-toC=N`C;EFqbmi0{**CR9)hSn$C9QQa -z4Z6DcuOBh60#YW{w^?fOLSr0<8(}j<;|}!fJtW&ShxcljtAxHtZO)3^nq0t+jQNH3 -za(~nvnvr^y-G_9wtBhJO`*T}~y^3IQ=s|M=Q*0*QISwY2tnV#dBv=-L3x==^uJWkV9d -zoo_!)JOhS^aXn_G?sA`AhbBx7vWz#*g!)YWYwck%ilJHvXcG1C8FYh?Y77VQ&!EPA -z3bOOPoQU#9)7s5~J`d0&Y^7Y4+;HwXlQl6M;piXC($?W}zsNs0d90{WVuR$C13RfG -zmP&^Wb6GNITcyrU4=~f*bIbYtn%X@7?S~oTjN{IrrICqsbWR@!IipkABu2NSCO#Jc -zKmZj8P98VZPsV&`F>BOy*GH{zFKUZYnd|NPatQhs)%^e(gDeS|V{|_CXsb@)=e3wL6(pT>AugzGB!hzD$8YMEYaY~jA(v#0z=*!q2$-M$fYatVC*SC$;XDG -zXkx@Js+sQJf|-oZw5XatUa)LMRt=!Z@{&1ee#QEZmHxCVE -za8(W8w{XYBHLt~Z>?l9%p<1^TwN7Y|zc`~XsLC>z(T;XWJfCNoP;a?i{o15pghj3Fl<)~lJx>6eMWt9;O9-DYgR)J -z(p8GaWw0&#WiKOR{9zEg1~2P94IZOP -z$71eBLT!qsE48LD&`+RY(MGi6C>LMOO}W7DA2$|dDsJvnNPc$|{Q^X)9ZGVc%6oDO -zkgm0{g>x#IKm_ksgH_kh<>xr7fT-k?ROZ5DD_I)v-sQy7v#x)wl!S|8!w4Cys(OG& -zfHO>!rR`vaC`Pz`7+gAl;)y~vBdW+zBA-DK5<1=b?P=epq)gk-LJ74$dWow&K`&sJ -zE$B=C66Y5`jcbD@L!vZ`tXCiVTYmZ<0$~!ln}cW3ix~lRKFsP|tyj%&Onz?olCB-Rv2|U0}H`&6g)aNmgi9`MZz5Kjmz`s=fqdcBkZ8v4sY| -z(7scOc{*CcWC=jXv^Qb=`M})VfABv5y -z*QC6A8=}9ur&T0L*&lO@27y`J8i+l^a^&FtY!JoF;Yhu7pO_~^v7%x+i`+fP44ZZF -zdTtnws6eT#w{xP!G3v-ck+4ZN>4{l-;+?M7yx)FdA0W&Y^xp@Xgf;Weuxob3AQO8q -z@Zk7&XHc2@om>)*6PM$Ee`4wWYT?>aslqW603!iHyQE%9 -zd-kx2Y-#tEg=kA`{2I@jo?x*!zVAX>t7WrTqOhQ&P&&l4aArg>m+|^NkItD|!5q^i -zHd-iQClh*Jrg)jn*Mk_2TnZL!jQX)G -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 -z-k%4lkt~9sZ)sHHG5wbA -z9G*lLjMktq4subXH>ZnW#Vy^v_NfuRy_=dd=xCGAX-G%;Hz=f^aXxYZMp+L -z1-NhVam!~|o}i)DIx?Q~%!lP|Kb4Gw57s0;k7@j2JVgisU8mnN-b=DImbOTO-fV70 -z1MhbYf-vgOaUstk{v`dsjB)H2L+e*HiuaLYYWEN?@L!M$Yj_&!Gq~0x^oa0sbrDL+ -z2eRaXl_>56TCc3VRJ=$z{yTgeNw76!@!{?Z;cVYGhqP+@!735hFMlx;rLkEtDh~`| -zuu4+MSpRrW*A`;oucF+7w|;CC>wbajkE*HgpozB%4jKqtZdiH!T3nvw+v|@kL=Ja; -zH$9i_8{rfw5dikRYU?^Bsjp9J{Z@Qoq};vC9m6>MuarRXTg5gl5oswDttrjOctt_) -zuf!>we~*;1HQk<_#AL9#_1*vFKBah)AuisMl!g}?!7g?0+C4@#`kVgp`8&QDnL -zeGP|%KHp3Gw#>g@RVB*S<%4-J*$C>_=0%e|U#T=9_VYa&f=)6g-*Hd=s#Mg!vZh#C -z>Q(a+!ynOXCeGf@5HX8kR=Q*P8}0ma-IwV`j|eXUF;6s3(&qAN4i075w^WX5ej6XO -zv)%XZplaKO7_?98rNAa)iy10?rJ7oln4p%&I+@2owTkkkfa~ubx$qPm&><{qq5hKp -zJn}q+mTUR#%Z7c{2FGc$?2WKJ@}bEC7)=3y`TTtNheM52H5c=!p2C?MnY!l^n+J-m -z8X&`6_h%UO(2mYImM1nbPEXNx$9Se4sG}av{A#iok`XT9^uH)eUj+Zn9V0E?w-yW{ -zc_G22W{EK0mZ8TBF(D!F$fU!J+i^(FLHn#f?z|rdxx?NhA3i~~mya4#lDnN*^Cl1p -znLD$S2_qhqRXon6totje3SI^{=b3#+Qlk^yF>~^oZ~G}tbp8{Q_`t+yCgA2nv){-o -zfJ=`A$+{m(mJk1tD`A%_Vg6$oGp^Cj++pG$L#Np+KMIA#qQ~kOrvqkvUvu3J<(c3& -z-_7tiyhJ3@lC0Wouv}oaMV1k3Eett?<@Hq5jJqrXH@82wWgoru_#PG0Fz*02jIh -zQQ+ORNA!}azYXZs)ewhn+hn|m)?i;Wc~O41d6x8eE!;jq#&UWhnP9*G(F6cCAUIN| -z$ijb#M~kfzo4NEN$?$r66RjBXF?L?Zz!hh*0s5hQ1jkK_@Cocni~`f1-9(d(|Au&4 -z%vM(s>3>2oHCE#8loQ0!eT=kDQmVWQL%8AcU!EtF!2i|Juw5`S?eXXVjWKGdW^teW -z)np#c8OV@96Xh50!z$Z~<45%lp7HeY`G93o2DJDFG=Co+#y4fmhp{3po`(p^j+JBV -zojbKPj4l2Q`VUH?4{*fF=UAu#2#Ota%6}Lh{h^K~X6HSy<62>=)XyUt^iXsSM$ -zKkC6Axct;Qo`%II0rfX^E?<}<2Mpk1^QZ-ZV^1VX)1E)oUN@ggutRRzezc5j%>PIf -zP#t%%qXg~?3u{`=f%9NXhRdOyltinHz4SXQh!`U5vxi&&L6A7AT6r+8hF3d%xji1a -z4G)W-8)A`L>PSIy8#9-S3)>woCUh+i9~vc+Jd=|qwLVocqV+c3^h+d7Q`(O&I^7`C -z_Z;P#hGsUuBR@2I5z>;8D|$m7LKqdsU&^u=I@2BsumE>{4E{G{=7D_$Q2{p41A1SG -z;20+9CgZUz6#nz~GNatnr%e9KIV_gOH65^s53En12ltx{iiC~5qKEQa -zHL@U#eu2RJ_;5xkOWwYV=8;+9Z|*!df)Lk{%yh-Qtae4P84tL*53w%u0IUFD2|FgZ -z_t10{Er$QnJ87V}l1hk2mmU?q!L3@@p5EvIUdx!DrFk0rhlM}R1$E`M-U{&m9Rkjj -z)x1lQnk>^nIB4P9I{lv_-gB;u -zYGF^qmuTzs`z-Q8DtSoSPcagY2R_;UeC{r$luK-&t5DKDVj -z!o68R`~<`py#w{gZg~n)fhe+f)HFAsOGtNH$(fXOY3y#k@AZLcZ|5-j*9&BOaaBt_ -zoLv(s2dIbdpS4`Uwjf;cAV1F*Y5h;0<@Ry%N5KyFO+zK2AH54%W5K%LJvLipXXzOe -zZGP!=p7Q(IiP%wcNo2CQwSrclFDj5?Mfp`*-S4_gH6CpY?L4g!(ciV~hR3sv}x0PVsk|So% -zsXK~~^ysMCc*V?&RYbFiv9;b>ZFCQStFAp8tJ)@NLYE~#`Ql0*Z|N|qd?=VpGu$jC -z^EhWQ4~zGln-?FKn2A&b!FVoyQ(7kB;vW}`qYZY+V@eI)wE91ilN2P**%~i^0GE$@ -zhWl?&;RY9NQjKUn7eC)Q3Le>+J{c27fkn<3R0PT -zTq_K|a2l^I!oRxjbn%lYa*Eb<*}+@SgaQ~Q8*$W2#-yLl&R?z{h3k)cdr5AFf -zB_S+?DtiDGcZ9GqUygbz=2cF%FtV_e3&i!#wX8}ExgWG8u!0g09H~=FVb|zgs1|4D -zIAJn#C~209$AaB`M9izok5uWqQnKWfr^X@C;`gyxA4n(Ym#hY|;%;G_B%pJgI$q~a -z3MnQ@;qMn$`j -z!?ECuZ~PfmAsM_{{v(G=Y^x#nMdJd!%7U`CfV?M#p-%Yx0(Qm!g+c^NwzR+~vVw{@aqmUf76>N?CdT|Eryk6=%g -zhWDo_X7nv6#Y0@ev}D+L+n$KZWYG|Dkk9`yxAulDgu0HPjxpydsYx{dmvd)NrV5wf -zwow6oDRkeHRJh)`zl<%WxbbRm7k&g*^iOtt1JC%g8?|h;hK3r=(MjC(LnGX}TRr$G -zlJh0FL&dW275cU9$jVqQvNGQE!s(+b=h7l<-aTHhzKCb+-mQ|5y5{ -z@Ls+H9V$nDmQsg|8Tw7vE)3qA&Ir6o_q09_&h-04G>oS0*6uU@SBzp;4$yMPgkN&5 -zWh&J?>OQORjiV7h4z>2r{gvClH+{xeH$0KL -zqvKeS9Wrkor3!X4FHJs$mqL6b$L*?3{|cm+{K1_-k|INy8@?P`C1E&d;sqN%O(DL= -z0qsa939tQ$PUV8+@KW=alc3S#ACu9r`Yoz_z<1SBpsd|Wb$G;vPD)PWLFKrv`uM6m -zfnCfu_a}G|*lmJqr2I5(AzD?0c(l(GP*^%&N~#u$jJ7N0jMd1oFE6z^CJt|ug5o3i -ztmli(caTA6V)ss$+7{u^^wSI->Z-61tDf|SwKx{7LS$6`d}Emc(_X>~W13k}BB@rg -zE;q#JKAr9w(J`l1Kf~Ajsnhi^r=)}DJ!`C3xv)u%wD01YiZ*ZCvAT@=JhB@YJ}_c) -zBdoQQnT9fU`J=ia0}R}FY?b1;841&D&&IYbp^61i+rUDAgoruc^5gTP#rFrUCE=$< -z#xD0=Xh9mR%QeqmWL;zim7%3E!|wNY)&k!mHKMjd3_4Fg>MDe;p}5vJ3OkRlBex%m -zoj)_2JA*T`Ae>YwDsl!0eP|Q@Qjq>W7>kmw9Di+5p{bpdf8R*4>A}eR6ylXqfIf#E -z9c1Z9ZtwfvzlhqBzKb8{-?I@an`*GcV6em>KtPi%Y~cR7EXSogqwj3-z0E?L)I%4=MhEj%ggj;EG25^6m`n9}bGzw5Gb`;cjf8!0m|2ZA$tj}cO@UkhQcpcW}g3G&grVUc`OQU7F(9EKHOkTQU* -z{v|aTo#KciOMcD&%KSpI;m$Ai(>=yrn9W2=Hmp{2w1J=52?Vy?A;S1CF&~^oCUCiX -z$OxWJ)jUU}gFSKqW5e`fYI7r6q&a*&O3^^7^{M*_Mq!E4=J%S^Rpn^PFz#mLxM*u= -z1x5!^(rzvFx}7m9sC?ecRpQlDKi|b76nyr_@4|RjRnzzN^;(5H6ovI2x#Q`6Ar!_0 -zHmJKuC55by-fym5`ws^jg#0mxvNA(=lW>evya|h9jF;jAd@rk|q@SlSbrS%xn;)5e -z)N7{uyQ|Ot?VUrda!XeKKGiVnP=p?BoYRH>mKQw4448;De_6n|W`;5p%N#;*Ty)CVVE2+scH^Ddn$@A23*^aQn6pl3qiFL>=T+^EN^Tj?pGPQ`WpO^*U6N+66L~#x6Lf`#=TO4F+x_1oVTiRjqLWRfTxEYr*iBiPaaybs -zcP?sAsp$K2Ujeews*x+o=4(OX}@XQAuN~+Z+ -zD7YLbb&J$cpDCsCU~;`^b<3cbKnU3c5h8II;GuT6PjTlguJIjh_AQIb;M<;HPW -z#5jGSBfCmkv=c^p0@l9dckk~?fcC9Z$v@+$rz1qDlp`vp{^?(jdWf~U$USZlhdSVB -zcsCcqQZ?3m$ANBOZd)i|UPn@_p}zT}sWwNSWWvp;;}on%4)EF -z&jV+j<;APrZUG$5OkCet6=@AWeDCMmCZMddK~-~w4tf0b`8WmlqeXi{4(Amry*8ga -zyWU@YPL2vL$JD}O`B37tG=!mAW+Ni^p(n(<_7M#kg_6cKq3wTD3kIreq)N$fwO;m=w@BTY)(=3F51bn(;a%kg?~PKNxiRcFq39%ezG=YQ7=bbQhn@-a{zpJS -zk9_l!UhB=B8kNr;1MCh0EK6qo$8j0Ke}oYqx8Eq_W*0QBro7Tx8RbbiEb6!bz=r89 -zCH`_C+NKsg94jbYFzxnDNm%yKbBznZHQ%pMPOn^3_c%<_F}hbYJVyQ-e41yfbKQq?3^>zvNP$^mZ0k+A_P@e#iHp5IT0;5oj|;oDcK -z7LC5xNJ_QTDR^vxCdS2`)m>es@T>46^<3um*jgJk&JBLS%bEBP~kh?0EP=~D& -zyz!IQEN -zsjk3i2lQz&2Q9Tj17y(EBAS=biC@4sKdUJy%{dkV-2>`~Z9Ptp`5_I%9b+^CpespV -z%xUv*HoE8?Lc&y`*i7}cq&CcBvd70g4LlFZV;rD0YySOE>vgVjM>To*E0|@gN!cM} -zNymCG;NF>%e-%R2Hz>i??oX6MTRR2wdU$CbiZmXK-wt(o`<%Ele+hXn>iLEFAS4Vw -zZ)q3?AF&aadk#ndcc~qoXBad+EQU~Z-stLl+4!BK{AM4Q15rsxDbQ;QIJ>~?l(D8e -z3Cln4N_uFj^$g#i^_kW;0eUvzNRc;7cC7*%r4G^C;WN% -zk2_+SX&8G%peoLjAUgZ(SW(4B(edrfK0f%gfI#K3?EG)ZYhC04F_(+QYuybP^dWog -zU?NlC#*6L)0ObbBhXyQu6ohIujQZ6euIr8L5lyI@vZu}4Zrof7noq%|p^xn?BGXvm -zQpXkX_2~UDdySEks_&ZpsG7!)2{|sc}v;JRm=j -z29{%m*D7-NXGl|zh0yj2{hx?vf5Bc333&&lr~tWyrIF?i~+kja#>fj -z_Xc9?$tj0tQZPLQ;9m#{(w3n->UVCHWlMArco3LM+w{1PsqP2U1cbGG~rcXpq^|&ea76n2|E3OLop3eIa5#B -z_-v)Nl;XKUswg;SAwn`zA#aCZ5r%u%0DU9M`UP}hfWneTqU4X|wdzDfV -zYGG|71fBwdr4UW_|Smf9!h86S!Kkmr3 -z6-VQ>xn{cuf$-%Od>k=&^l5lb{C0z^={j4H-7$;WDNK=q%V{5vnT6p*5S9fl?s{QL -z=!)OdU437u*8hY2_@frdDx9Clveq0^b|4rYyebTe2>3n6&5QYF0t@?v)iRV2QND=Ve1?C}G>zisvuc%{{UA;A{_@g)fXOb17zn3>E?n93Ff8Ek*e{ -zMK4+hAqkMprFbFtl}92BX3)@&Y53VFP^u{uFF%H&|GYYiz7m~P!V`sU>IpwTijhZ0 -zkpD*H*xEU8d~^My4LwOV+lt>He9ZG#eO7eoTfP-gMP1c8VeRe{r6d#<1El$li|EJYaK<0}QG&&^9;C?f;dQD>I?&4}ca -z)Lv)XYUxV#RCPTM9<1btRBcNpk3cPkVA;67feF}ENoVSmQV -zBlvdnut<9aUhj7kQKhwWpPYGv#l?Es`}VbIYx(UBJ2I4%0$fOnYNP*0(^UpU)iq%{ -zr9rw|8kAnTyOaj$?(UElSV~%?OF|H7>F!2Cx{(G!^1Hjd-#>BhJ@@3yoOzy^xxl7k -z>SO})D(=c-M{M&j2|$mrR=k@@3w=czz3tY|xL)uEEt8YqP3nKi8A{h{dpwSl(3PcI -znusVB4OTxLY!JFYMsEne5h%Ppu?J$qqI7ZGc05hEJ%kp10&?N9f%Z(4*dzIf?&Ctl%m;;~Iz-*dc>omd@66Jx*eQeeHC -zj@bPmlv4E87qyr@;xR6(;nDuR`FJngtCyc+B!UR$k)g0@exWcBnrySPmeeAAQaV0% -zIZED3u>B;`TA&dO1Q=V1xqlMPRF4{ds6fqFUes^8a&cC`*gYe|0Mfq$&aN}1uVOgi -zDFbx+#*LL6_kue!{8-cEFHl0%z*~fq+OHxY<;th(18vkf_}nxHe=1g~n!7u%1tpFO -zbrS%Y#)z;_RPyf1IDlHUxVS@R6m&Bxaf+gMy%VCo#eD8}de{$&$NRCxKl18T^vPIT -z4y+VdKYM>F-M3|-byKZ=$Q*!VIHY8cSQN(N)dUMQHQBQiz1`Ot#{ao~ela9RIMQkrrrqjnUjW$PBxEB`izIet8eXVvKqeM@#D?^oXY> -zq@u1fGj@3<@m%BbUnkhDo-u~FVFv72^1cXwFu0-{y~035_WPWfm0rx~iTMdh!S6NT -zHc4(XwzG1!vu>DSsgrNnBQinLhJ4lKct0 -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 -z5-g9@Yyp>A4cFnJ3MRy8F>nugvCCH -zO7P%!%C&?Oc$Qp$9mb!%oWCsvR|@+Gw$*uoa`d8%u7Fw}CBdF{p>Su^06#_0Ry@fl -zbrRi>6Dh)OC&Aj}ptkdVNGc$Qgt!BTjee8W%YCd;se?E>z{6e`1b%Rh|I4$)W~ZrW -z+3|l9M^g|kdq0QsF84%ZQYM&Zm=6(j-N}-1n|l!NMY+wG!A# -zBWn>y`@jG7O~VH4^P>TA?=2FSBUK@AfA56$?Z?7ZyEzC*QD0_oiDtH2B?lVEpEbu#0R -z!yNfPr5?g@QT_`_JWr%fu`i~0>!NhvQd-dXlQ`!2NyD<`qA(p>RQ!UeKaww67O78T -zP%GZEUX#kqhhR|jbx_Z3YMz_};{oW?CBsrCuhg9Pz;LAnc$7RKSUG+2C<}PuX&8ro -z<@ZJ%Awg|9Le@rAO@~&{b@CV^Pjn@2lSb)H^J1rL!e_S!Q~p&^Dc;^Ed&V{2lPaMb -z_ofqJ&wNqvC%<32en#qArfP#TTnI6ShGwaZ(^)L?mNHw(Im<_|! -z3j<|u$m3aUI_1o>jr*^@LpN#C=w{W)#}*}5I-@t7$tq;ErqbD7gDEbQO%ssa1W4-T -z10{`W;~wsRj^3J9NhvCmQ~$*J0GJja=@pKK9pKXBF57h0eEa69Cg8um1B-sm$fUg7 -zy3YlHhTqtTp=>J`QkZ%Q{b(o2ijKD>nR{J@HS`6pO8F;HSEDt*w)`n|)e|B5N(kXF0Pop5s>Wmx4uGJXB{r#oTs&wp&M -z8zprS2I4lfihercOslzGJS9ROtZ_6$=9ZM`C-&GKSqy1RIkYg$Vd=05p0c(ZtmQz7mcW* -z=}}Jkum)t_0+ybR7bTw2TU8^H3ugGkHV5vC5wmZJ{o}uWkkR-Xt+m$IU_fdE!Y!}( -zfO%&`N~B7LSC=Qu^7<_S982`Qlj{x8IK-68K@(`@u(6uK^6@pY0}FJusC4qr8C2Rv -z3_m~cWpR`KT1tH+^l+-DKsxP&>`E40aWhIF*XA9h(*2_}JlyVH_D9b&dzGdP3C7W; -zoSYL{#J9e!Tj_$Ei_5K0>=uQYD+k=>3IEMsTZH0X&MsWO4?)Vy6f|=rwcBX(6&;6<+zg?w!qW358K>@Owi^ -zD7VA*>inLJrShIp<+P#S@Axs7GK1YFqBS=rlsG1zQwoaw-;9Ir@?cX^MS5xAo2Uz+{xdhJ+G@*UAwsWniyYS^Yts -zTB)+VAxA9HH4IC|OjSKf1xCh3g6*H+zTfJL(d{FvUUU>m{gvvX+~2A!<{5lnW_C&< -zxGH65ymk*3+=?v1%>LJOsA%(_ZxMw&TwzhXyv|NxYqrU>VmaQiH>ABVzmlo)9MN`T -z5`d)vhqpr~6LP|gW!ltCZEK>^7CGBVDQlI-f3UHwhtHr{`GVuL@xhA*5vB8QgUq^a -zZ0=n)WcnwN*m%Gj@(!uGB(Rb{EI-R&IV9l>N~C#4h{2|9{VZ4*S8M%R@07q`p(?nS -zwN@1V56|xnhO68qEL;b{jX`6`QO2gx{n!`JbB_40n&!{W)?{}IevvU~nNP8r(Xt;nSdS!lJKlm%JPpE)#wPoZvw#r+yYWfL9y8m{%(uzZ -z($vCL)xyp1{SbK&;XNOOSqR*6#At|+&)3x!^ES!zHkcsv -z)=m8bl<9|lY#CPWMputv;)i^nTHdZtE&!#SEN_mbgX**#g~k$M?Ap4jS$I)ptCEq< -zPU9UH)v^R}@+Tgbm%Fp!Ct#@`23X98kjQl5bHCiju-q@wIvY{P?5c@+N`4>o{S7!3 -z&Eiy9K1PWo*VOt%N{wf!x}OKCFkHWvuHJ3tZJ->t9H -zE^{rWhMdXxdB$7(Bix?u>y_qXzsKUQT4`kr_ -zU?r#)N+9rx*eU>SnE#jsv*<#u|83+~SZ(tp-Hlsi=+vuYw?$z)*fAJ6+1b`s!3NPw -z4LWS!h~3=c$a6Q;k4-uNNx6uyGg^{fPq`)+QF2F1?QIzzHH~DP578;@?#=ki7VyrD -zjDBt6eDHO(p4m2@_~$jQB^y8i6f6omH-dy0w-wqq^@sN=pDSDYIThEz|*%{io>P -zl+gjx?b>AWXy@H1Mnr?)dy!RC@ZTU8 -zM<)iT65m2ow!i98rip$ZLcme~WLC|ywhPaQn~no2cz=riOv?^-+hpMNo|ai2AvAwo -zdQOKf8j)^~FIltS#_J9xlu*ZDT3ZNs{=wh!fJ1qU!$EbY`^(tHk-NTD+|nBr_Yl1- -zV6F0a;e2ZG>KT)^-6M|fNzq|Soir!mVB_bmLcE$ZtirzX8+s=~3Y8OZ>r;Uw2b(z~ -z`l+p_n@`>?&2O|l41C&i`iS6na8X*HXffW_V&rqlfBn9@aYHMA!lT!hst`nfY`wB1 -z*+*XbURHMbRt1INFcgp<>%nXOR;yxGnArb*u&B(3z)QR$U0{eeH4t_o7S!6h2v1H& -zL*tFT6E(B^PC7C_s6E8Gu@)!Bc3!YSJBpA{`D<^!slKHif?8|?krJ6lJP6*fo~ -z?mnUI;>nk;Xayq)!uN3z+Y+Asma;z{OZU8=p6mD9KpQ#By*zb>PI)ERLWd;LQ{h%2v~rKjRBU`ojVY58^nw0aA0ZP1a!P=*8z -z_K~pcpMK41@&u1C7D|5;dFARO6R_0|v%VBHjK69C96L5L?Ed(eOxXiY1joZf(fd0{ -zINW+Liv2rO0YZ_Ab^q`}EXFPJZRflcmo*8Id&FV(y+@gH$WGn}7OUWV-IOy*tuf`? -zR>ESIr@nW|7Y-2&8^KgvLF7L+)=M(_pHyUzn0?(9k*^3F0OiMn9HztY7sB?o3X5hXSqa~Ni&ut0Ga6E^!C*vB-74CyQ`r9}N7MA<~`3}`!6Hi6y -zErfVYhCOw%?<23K*I=1W+2!1qbJ!=Ri$rhpZz9YSU)jnEm=wk^Ob>n{UT&S%E_bqw;-Y_+OR)4v%g$C&Aat)V`x7MO^imLfI>w;sDp|2)L@S*c9{-3F#$rT_z_ -zt#l`AZJOJ@#n-mE;*_*5T8$a!sR2YVTa_b&AWG_t%Zud;SpRs)Qd{ -zW+#RoRme%;6~mR1Jaf@kQTT#PM_}A9F{5PKZ(siqjwBao3=a{OU%a)?Aai_>*~Lu6 -z1?#U0F9Wa&ur`UeIN|h(J#+z?dZ{Q%f5As+{$%`KmF@kvQvvOO? -zf|>ucRMq=6)e8#RuQJYuk^T*WbHw(0e%+Of7pfJ$d4>gNrQz^2VSmCYyv@Vrg0A2l -z8=J2%bIqA1mrVw}-JgyJt7Ul}fz&O?Qnsha6yazA9+&J*b@KCGvFu*NV6?7C?xT`e -zS=qJ8Nc~mdqP-c6Vv|j77d)*38>28j``E2Du -zGFa|n!KXr0_iN^lQa)Yryka*?Z3Sj;{``6a-Tax^NF_Fx&Yh7iBb|o$W`k7B_<}$7 -zJazarPSYT_>Tvkb_sI!Ww}on7Fm|3_G4)I<%RsVb2u*SvJ&+eeUAAbu!pw_u9NQ~f -zs&(Ug2agRIFt7qiCNgXvbY{MY@*{as1eKxy%|*k9#%bfCqlTlgL@GAgFP-6NQ#yKN -zQlr!+5lAOZTvh2w{ns%Ce>(Dxdvz6)qXGlbcVbBKJDxVbY^0wLA*>b=Y@H)4v7$=l -z(z~&0cuO>&B=WR}$4wz@zQgUCJQ|3@4ikkT_B}zQ=EK0Gw?3|^pnni+KUVDR+h?8J -zX+58MVdTyWH`D`v-yE`FF&Bd&`R?K-kCywaJ8)h7=rwN!bs?l7V8<9Ex>_i->O|gm -zZo~E(YW2(wM3ZDCn -z#Fg0b&}XF7ty?!I{;JIO87c-{a8jm49k@k)LO?(=Y#;mMdJpEmBO=?W-Dzr^BJ8K7 -z-hwav&2a?Y5N*Zhf_?`ngNg_MoegLvvewYgtQkvjl(K_|=7fTYZxQNi^J#c?T;`}A -zmYyn#Pk~dyi;3dMaP;QxCl0&5kheGOOTC!~A(0}mH(c0p&#G(s8%8CeSx6q2E?9B4 -z-{O5H%e2U4haIP_vn4}EaKh~y2Je-`Jg}AdZQRaALTk5_XLDwz{eY~>%@a@_0-#Jmp#)*TM2pihc0C6`c-`4}O -z3J~z|NUD4_5T+lz~kHoM;hB -zh0c**BRJn}GsW7f-xyv0J>LKQ)k)R6Zu_bIq^xB3YtX~n9TROf%_VDbWgds1jjM8V -zr$Fbo`m4Tddr#xszaQ=nKGz#A*@{<+OkY?&Ds08%ilf_R0WrkdU_O7{m9|?Iblbza -zhvE2I+nJIg$HOHfblaTq9{T$;3efLc;Ms3Vl%?)y32z-3E~dNVGaG5|AJ=DP*-B@* -ziwXm3)Nh{fzl|)ZOU1xk{+7)vIK?WKT3xGVh`T(Xiy5yeiA?4B4Rk+AYs&< -zS5Z)d*o(v&gonCo8G9Bwfq`E49o}0@Rk;F&A6ORtZ2t?#@i=xkb|Dug_6G4GI5$hs1RmNf0xL}=H@nXy?8>!y*M<8 -znhcx1Ie0W>duQ`1mSR6?#yhL|HOsSk!bG^CX`}q#zdtBXlgbc&aA$Nixv7`OsIb|e -zqCv&EH{>n;F^ms2rZ}~{SedC_eqg=h-C%xiGR;Thk6rGP*4tlVE(yS;`mA`S;UURy -z!Sk$yto|o+$N*eNhRu%k)4 -z#NS}+l<=Zh_B_R{{`aH(W{FBZT*Y_vCV%aJNdSd?A>yJ7HgRvS%OyiC;P97tT-?Xp -zTQNzGwW-3rAc%`4&8nW_U6rk;sf?ZhqG=b9hsMX~atN*BrjD -zvYNpGz^?(_OG{mkkEqqG)0}jDfTZ`8^a_6{s=K)oASeJvs>0nWt|qMxZ{B{vJ!k1j -zJf#$vm;KBedYkBjb;+Jodm#Yi8alaZ&$YK)JQxdrnCzJXR3bGw6ff=f$p?hpx*Oe- -zc8khdAS44)$fS^dJ$+>dVt5GTXoH#U|(yBR3-sY={>=&u5gt_Kg)KMMb-ljLnA^^mws -zw;6iuywyk@r$^9@!04-Ugk;JAP9*C3wCk=g -zd(0-^)0q -zT;S*^7#I-J9$tPn*fYrjs#D(wh=ZR0WXIV(c3xE!GpEjrVS@c)%0M2#Q0zoR=R;<{ -z`1}Ng@k8exlVF~|a7>iyEYHV|u{S}a#10*qU36R(%W%#M8mWG#}SQ75PXKfL8H;r(2Wq>j&M6MK>X7yt|E?Sf3vKQx)HrK5O}?@-B`ixIs_}!e{k$=y1FN`^lZM -zTa`HSwFzs-WBXTTpx?kcWxM8W7zz$F%I!piB%2URMz0eF)uC#HpR3;%1M02|)}`lE -zpvnx+X)G+7QFGbE`PMN~X1cB=KAEUGeTPi;;9Z7jKQq&88zfT$4|30kuIfwvoFNNL -z-e0%G*I@G_Rdn|e$&Fwl0L12zPv}PnA6hiA^Bg3ZDDOOCc -zmK3XylMPf7ky^0|nsHU#7ac|l4`IFMmCDrI*NY+N -z{<290dv+~MW|de$1TzH_-I_<0-d5#sap+nIeBqyvFZ>jgFI>YAj9mVY-oS -zi}LIFXDRDVxM*;X%l_*^j+aa~YJ;6{Wv1cT+7WcOVxnKeF6hm7>75kl`$J#N-y>shon%5)QXf)8ETXP7(E(9h+|N`tnC7@Dq* -z{Tf7o%hYagaM!NR&DQ)nYA;c?%`40=taYV#MN0`fE8>H`4o+py$3S9YIC7j-0W0Qj2}8KGdq?cJ7R&ncT0 -z${knJ#M0|(34Vc)p!lFx%1!xH3^#gOhAz-Pz_kHXL*yu{YJNd6b8?_d!ZL&YUU=9m -zo8mWS3w#wMKx630J=F;0c@kf9&Xb>wLEI4`i+TxS`(yk;O!$NYAuPsV_yzgeYc=_o -z(DRv+y#z+>B{=ySQqm&)zGBxd`Tz~t;|9jg|ge1=Zl|{@)pv_lT|qL -z-UvhJP#eMgltW(QngYkL^vJwhN1O(d+fO=by_% -zLnq5VSmM&cG?d$UI(aB9QWxe;X5*5}sq16x$D)BZVguf)8C)0`ubQs+*Z6ylc%otm -z!~xy8Z{qdTk}ak} -zH)P^e*F9NFA?B-4UcCt?T?VG2El*b630^-2+N{h8vf}`eQdpB8$mP|8 -zcH-@p8ABGKOc<%De}0CLY6rV%qJ6{}F!Ro*vHptq5Nd%duFit=t8;03jp7IU#W)zl -zP*l|yodaFb!_?k3)ds)<`(V$!4{N~OCIeO)TQwG+JnM4+=cARr=(F{K2GnQTeaWlB -zu5!275JIV%DsKd0#Y-hRu+rL`6m=Gx8DsJS!xIm_iL=1Bd&8^`4pKBIuMY$o2Ba#- -z-Z6;_D<@t)Ypau@tvf4xr0}ajkPISXig2%>ZZAL{dcyKAmdRs8dsSFk;CnUv-69jJ -zc$_d<+Ri?@#J?zRA^WXbX2NRsD7sQDcW6=1vps-_{dYQZq| -zH#`%y%vrQv_}r@uHSTvEVeuYUK)2%HH)Pc8wY5|6nb(or{=CHs$MPL<{^ff!dBvLt -zbb=PSC$4L}*$56Bg|XgE1e4Bfg^!*~N*)Fdok#P(d#P}i8p@(?`UG>98rN5%(dhg* -z@*R`RnMWt$LrqRgXdk=|n1%mc4eCAgL5d^*u3>9&m++|d@5b%M**=IPlK$CgWri*p -znF+xcjDe682yyWFND4@0%xHsQm>DRxe@bhMg(ZbuxmV(O`h53Kp-*h=#G00P3%Aq_ -z^B4SUd2wO7Fc~F`7qRj7BZ?LDs~-C8J5Vr-{P7gXjU45DE!k!?sQqQ1#lW -z4Xt=q&)6_mx0z96O-|b(!`i`z8UIiMI4Xd*0*!)=Rt2rgN?=ePguw+wF;n&OLk+1L -zTndbig4x?ifa-#WjNq1M(b$u?m+m}zmjLoI7E#&WOvLu#GkFgrV(5ZBOGN$c;D(OX -zZkL7YX@E^LIIo)m#F+4%{hzf29;V#dk}1k@SOJLnNPu1wAvuCv1QV4Ps6M -zCQ<805aM8Poz9Jmy+9!$D$bd#fl_YaF(erTaK|~wbHUaWC#bnoF#=&fN`!u)ccF9D -zhZhmKfs6vUAz@A6v1$HeLiu9S-_8BA1rp24Pn9Dc&2bR@*BDJP^sdra6gsNL(vrTC -ze@b}5Svg8lWb_$b#_hxvJUL@nAAGQzKK$5os|WFpzOo=UEc1z8FN?qQXaGadV(3 -zcy@nqMsD?mt59;I=vUtB{6_#Ud4NX_d+9#V^iSp6E_yu$qlx%-Dm6?E)Tii;1(3I& -z`sD_pbn<_hj+J=&w3p&(vsBbr_Bvpi+uz -zszMjl(dZ{pQ9_l-N0f65SAl@-RSGvnSk*dZ}2}Q -zm(|HONXLNvB8)JIDemS;%$B|>cdm4!G#H`}^FlMPnmu>InGl|v1R)fivcE`N5R=ST{oEOI6p$Y+ -zXKJwHm7W$!7S7-!;=A?~Ww!Y|>z3AA39!JX8HW*<=1PmedOxbxz&t#NgP3PuB!e>82F -z!VWb^9gbP9F-mNK{_gEAjlditQ#tsFw88gMxvcN`pwd`tdZs8Mdo@Y^pbh!1wROCD -zRi(8*5#}45R8$UeJpk8ux4g0`Ko`Y*+#N#->m0Ls9f2R5+hu%!1{7QYR(;gsmH3k8 -z>*^a{SD9h&*I=yx>#Y7?)6ea*w-^j@>!wmy$*H{+3{@8$4X=9M_J=vn!jZUBr~-ww -zd1r4}?jKDv4$=VK2izaWE9BTGUiIqWGTXS06?ReyWUy>XR#8?qynmjZ1PgQJ*!Dv4)nkpb{+03A{yoXjG0pkNZBdF+~&RdE*~zjQzh%zYoMI{Frc -ziENMalE%5PLU*ni%XDOi4-g6oY&OKPoEN^D?BqL%hWsK)pUhwE`}-d9J#Ua>Qr7Oq -z;si|5`c0a4g>IO@PYIZ*dwq)*kmLX^V#__UV4ALTL-c?d6XF^=;TVfQzH92&?vU4k -z>p+9iUYn9mgu~b>bFN{Wn7Uxuq?uz7kU*UN`J*CZ>bdVA$45q7A_eTgE*zp -zR05pSvhyLQ#Q`u_yScZIw=@yM5U5Ns#a=gQ6@b{MvxKL4?Zhin_x*+Qn7PhMtx8iZ -zd`g=RcagM=TM|>s*EK}RM9S!vUb5|J7x)wI6V?HsOdNi?Lryd(uY-dSq$F|pSuGF2dQ{_Rm>gbz3{I!y@19l=n2e!rmFlld; -zz9~u8E1{;i3$VZqzkaFD@aM>(jAS(vt?T47aBtYQ^*u=iHBg4*m{ZJyO3-9cO -zne^k8TwlANO4L==Z0IBNxV!I_#%8R9c69LO8#7mPteAXM93N3`O^IeUGNV|J(t?r| -zM7Gji?%%LhXhS?h_1othdwKJWzeQ=#C>6YW -zKY}nPbvbgTS(zK~X0tIT*N}qg&S^`2>TP{sC@>A4EykT#>w-CR}$ZRtzGuQTc`h?QBmtj -zK}@ORNV8KA)MGif+(fHnUcf%ZH|?g<^#CLz(7`apl5diCvV3W;y-^in>6xhW&NM^b -z5v06^+Iv-;)qj|@1RD}iaj>3rUOb}mcM|;T3FCzheItthyVi%QfwDlY-9ynzmt)d6 -z+4fFYmmwbcABuxK)FXImo2>N|AqKty-RVe6GFpxhmlkAff&r2$Ni(5M4BUU%v2oVw?e)m)HfBkb_Tz@?n`xg1#@kXUtrg=IEM>rnjN&{JMoB^P8AE&C8Zliuu -zT@lM7HbU6_0j1J2sP@%&=D -zEOJ+=?hPWFlmubV*a?%gz0Z&s8yNoD{`!Z~-RGtsO5@>GKj)z{8BD%re>nH;@ib%X -zkCb~F;b4wSmy&(CFYp>M8B^k#1Y8Gq!iM(s#jN>9Du -z!dy(fRWBm}Hz96DrG%eSK+4`jmVSPyuiWLGjY3RKiUr!Nw)Yal%(H)2Tihk%whAA| -z(@Q#RnByagAK*pKfZtdi57kU3(Fs=f%wDHm)aMpFvXe_ge%c -zoZJ#KN|I;NAinIhxjaLw8|G2JY^sbFh{T5U9dlP@Ly%7TGg`xDOjpta##5EMw-~km}85 -z^n&!eq_a8gWDFpty4pqTg~Qw^4LQTt0>T7)?K(jF;vCi=a -z;At7_hq=Ez=hsFA3=qKX^$^P{rgLx`^#E@QkVj}DXRQ`>0*wIYYhGJ*tjz~UraDKr -znH_K~Ga+odD|U_)!O^sq1zSUJ8Ox|cdmFseV~t-x?Q9e~-1ku+j0vUWQ-;XMrr`i+ -zpY!!LTjQkF$Y%DX#o+@7DwW`a@!Dur4a2;2ah|2;4KCdUeIY!ie0@-fM%*9SB2UG- -z_wE|<@8HKOq08F>RA~2u8(roM<9_ub6DCU_vCAjaFD8D3ydoIoAaSkQ3ECO0;pl{G -zTytDQZnyvd#NBzV0!xImNHAR5UlUzPjr{=ZJ8) -zj;8r_4J-V-ZHPIZ%3+w>M@H~{sd1iDVmZdKx!Z2$Bqnyw&wt=--Ms@$J^MjXbt&$!p4&BVdz4F7zK4~7ww{Xvd1k|dBy;eZf8 -zPeL>qUgXd;zd@qK6fg)i5d4TR7<@%US+rRvS;{nH)&Ky(5EE>wLxC}xVBSaWVN$ciUtO1(hkK$s#v(PRD_r# -z6ee*QUB*dqx2_e}9g~~k+b(y>gb$+;5YciB(5$7IbvzXT2D1~)e>ll|r{t}WnDlbe -zzYg=$Vz%8U%$$vxd3&Jt`|H3DpQHY|w6ja_gWfO~&X3(;?BRrG*P}>J5^;pN%As`*n279 -zIc=jx=I0?y3FGx(XNC0!w-6tw~po&#fA<~VdrLK~&z+FT2N+a&M -zRm^o-j8}==HkCh@>m0tO8r;|d1rO_YeGj|>y_hqA=g -zxn8c5l85_BB77@wWZPS1#hd2-fd6gx5+f(60GQ8>E(QknUzFK_tG}-QV{w`*?5W&di-V_ndR*Lps2I;rpl2 -z1M|Pv8Ur}Pe>(8WNbPq8gDhbi>{9%%HkL6y*s7uy){ehg%xuuXy}VBl)=~PPW{;1F -zTYi-9;gDj8?8JY&Kd;qU%3CT}@e#V=!-pz&>dFkxgXQ%ulH)Z0=|=*#2lD7!32OH1 -z%h}UQDE<-LAufe%J2jw5w?R;`$!=JeqVt}1K5iNYls}LTF}d8>vQ{V#bCgVghiIM> -zHwR_uda5D@Cuc|tvFvpg9Fe(m)9pgqE{eM9)Hk?1W}m>l89)=BD)!V8G&t%!Tg&;l -ziP9Og$|bWSpxVjLtA1;cI0M?U5uo#VUo2gmXA~{s!mnjO+WM259#8t~N?7OY50vA^ -zP`yw8wPSQp^|ck>i*D%W>G&n@5sib?W+v%lYP;4teNVFYam{4TeoQNKZ5{9AOIIhg -zdBfTW$Iq^q;?MrqF~uup@C-OE#O -zk{BswE3tL#BHUjucNN|>=(l?9f%jSt7zcvBguPkPwSx+ocoQ{q7{8o&M!mV_!2-d_=tsc^?SP-T( -z$beG{e@6IYi3eqNt-r!_M@H~N(p2gLe={!h9SFY9&hH9cJWr!I#e2NU!05B%U4~kY -zDO&cCcyT|!IX~Sy1Y!i%G5N;PhmL)zm*&20{wq_xclmRZWo(TOu|Y?(z51sFm_9u5 -z$8vEN_~*4izV}hOHJL;$pKkosVZdy!z~qq)!_Q3rN{yk`l*h!hSS@SjNpEnqTkk0r -zf$JF{0C(VKob*4z>gXlNilf8%V2M)o(&L^Z}na_rqhEb!PykH6-qyjtk -z8I?@>g-J9=bq)VuvL6cBb#PiC5=EnMqkI8!Idk5YE)&?y84p=)@TbT1>}DKbqmJWxtv8t9dzcwk|32cBuqUhnR537VHK6 -zsIfx&gFTvT@;t(9wvYn1-M7~;h$;Mz1^}-!Z&e)}|8UUU3J)sTHSGKCDn25A>8i#* -zsWS2pVE4cuC=KH{B*kZz;6x;g-`p#x=it<*W^)hQx2~e-U;vw$i`*W4cSQyyl-r$> -zLSXeGF7e~7@f=gtN12hFxbSr6G?W1vd5u-teIsEe5yTdXLOM~VpuD`IJk3;X?PdCc -zj$Gd;5ns~#Zl(s~YK!_rN9~9WUc^R@k$`EZG;Wo5<+O_HJrYt{2hYpc=nl -zRxi!uaBSDUyjg}xsH-o36_Vk*?p3`Ag(7g6?7hN5jJc>2RS=nQpjJ7mY-S_-8lXI`5(w!@OdDohv7<)8_5V;66cw1 -zoF}VWE5EvGgN{1*%wA813Q{9Nrtxan0gDpTVktKC{KntbPdX`Is}N|VK?0df-YfRO -z`K9+jaUvJU*KG#C81C#q`9Gjn6d&{F=A~OlAVQk56h6O;osW}4cVvC?VE~E;oY~$t -z6a+KoR&(gQVaA38)iZfiPbvnToj0wXo$S#(C0qlj{(V{^y}ow!AW_jq7s(x~d!|kz -zy5~PAT5gvfX4t-K2DBMK6N*~?xGyl)u+$w8DYbEDkLGF{*MS~RGy~IOzIaM|u86eu -z^>JV`cVH-zJvpL-E`idd_NO}0z4+(36V -zW}QYm&w(B>ZV@Du%|k?L9vqc40ox;0_mIq(UK;nV-vuYY3=y!M7erbVWN5E!<$rdd -zSg!*1aMRDei`unx10>9U?7 -zuUlbKt2?}V#fcYHZXmK6nb_hw@%PLZfamR~BTnuTDh##G9n6n4j_Pv-oliRA@T!c{ -z{NXodz?1yn9bINq&N(%Ardt|1yb(a1lU$G0%fB9v;s@24zx90P;PgrIe>i=KG)l$P -zgX22~$BL{L(>E*ypFhcU6FwN`Y{lsz9ILu*QMYTjDce~fgCuk!!MHc7ug9>InM@dJVtf5xlGt`E;Hem -zB|FP0)+|1Cvc%_c@#L={_S9rsE{i7qNOO<;oxokfk{*QpSH8ibDF;`dYuxG($Qxd8 -zgx!vv4mpxFBhDj)Fq=1{+qK3Q4blIZ6fgt^vZlP0#a9@4^ikQ$QnF}|GC!d-W&=+$I%d-x^##z=)nSz5eevwz`LB -zg~@adv>2H7s14t+{K#Hu@cmuYk&#&%LC(vwiA8&3v9zVVsk9dp*qN3{?7BijQ`|Wm -zGj`fFw!oaMFZVImGe!1@iN)KDaW!E8A%hj0s*^s*IpML58up{3Rp3M;A^Q0B4Ysda -z3i4{9#-olXJr-Z&kZcUjrEjmkWIiP9#>U(rqomV8Du)>TEK6zFb)JjJFRk(|-s -zM(^d9W`CZ_j<~e^x!uS82|eLaX$!m1NOtXwHaC72+k1=VKZUyS__Z4HP1_TKJ|A%| -zIw^aZjrPVB{2ZQr=gRKInj}Tx$<%)CaPR#)=g?#aD){*Xc#2^Eb{0ziwPQEjZHKdn -zIiv~1ef-Z@q0FWXpB-85Iihr_OH0SrlB1(ct=_fGoG -zU_>bB#C)kO;sf~(uwC#ciM`n)lEAQMEbNaVJLWZz1ED`;@a23Gv7}n|TGSh&w`Xu3|hs;(tHib3C@w`7#9MMv-@xij=@XxtU6T17U -zeKj~rj204wFAA1|%$$`w8sLC1VBk)V;0IMNb!;OIzE+=ZJPe(~C -zBDN7@%;c(rDU0Lmw9W|saP&y9Y$lMbZz4rNi;4^VM;ijf18)NZ9*o5jpj|laPWhxz -z9(X&vX|nQg#Y}gow#D7TV7{8Hqk8GL-;&2OA68q4&&_KYW^n)YDmocekR&J>%ketvADZgc^EdI4PG~%jaQ84IQ+((r$-7}!X6E~6~EXm -z&k?-$;mD=tOjU=XMa;A8w;`Mq2P}LNMIW@VJ@QD00XKgK9zd)H^rT2~by@KLaZJov -z+h&?6M?RZ_dQ6Ry0aD^L%+Ocv`qG -z#UPluN;;*O!q4*!QGb_Dm=sYL)5X>VRU7K)%f|CHzUG<0czn -zzeu9$Jz%dHPc0TlfH+_Ss7d89MGJ9cKa)sBa^0-n`-J%56YXT4rPhbqdTaSi9aqV- -zE_$cw=0nSPYz>!>O%Is`oJ&$w0~zC6!r&lq@7;=c;lV7bE&)Zp?dCe -zmMfqn_99$N2oy(aX!mt53VWDxEZ(Om)6=bVXDZc5wZ#`8cOm9Oo4D@xDwBaby@98; -z)BB`VpRtLl!bE?R0zwi9(DI7UpWn(}PHH1rpv<{l-`#X*vof>j7PW7A_`vtDd<6w`sq=Ek3p9gpv0G<1!B-e3# -zeE~rgn_e=4Zx28tX5_RHC|1+HzpLDM8+FJ)$}QRI14R-T19=9j_R2=*NQNMKU*z}+3=J*mt34Nc%j*q&1kgx5^{au8ZA3MT}hIQd9)mg}YpHg0N -z_}fD(`r5cvm?~%h&jdkq5)upXt>pO%V@8)%qnD((+s)`I7g}PJyS?}W2B-u3fQdYs -zJsN67{`xZ-(XaE?u;1>%8ui)vP}7;6`zJd*|^gT=`EB_5ks;WX=5wXjQqK#+f;PYVd}e$f!_$;wQ*ear-i0-qiHhif2v@@gCI+5^mo=? -z^l6bqZ}b}0Bq*mADzHYU+4Oy@*%OWrfS@DZ+uJq*t@??|5F4~t=Za!nATz^C)~RUz -zAgjd>Tg|{`r@1f`F6UT1CIoak_E!XYH_E -z0m=xJ;QqjjTx?nk!efR4wp&?*y6_V^^YCH!(1jscN}R!Vxay8 -zW>3v|FekTMDq0_EEtH;O6J^z+5t*VKekP^E^9J#No=?IjIliH)&Z -zEdtr0PueSN%4fN7v4Uu0+B2J#DW?IJ -z#WCb-QssK(a}=;X>$lu4GlW!h{%Cs@uKN!gDkO#&Wk6R=!za?mFHK}2XyonqsIBl~ -z*^2lp5vK)dXV3q&0s>hq8iiDu6>VYBYB2`sKK<&;MagPICO;c}oe%~t*-`xyS@?h~ -zCUP)wyxP;0Kzf;4&8Sl2Jz^F(x98|$-Tze;qJNNgS3SUlkhYm3@2LT`GPLgV=tZ+1 -zyh;Gj@nEvuNx|Ui9^1e7@FNQ?lv8E6KpBRTO!;3G2eA-0zRv?(d(X;qS_HC?Z;s{D -z|M=(jF@(}kjP1KV73P;0V!n`Ujp|8`Q{(@P^hjx=Y&(w9zsS9xuWIwCQ$ImsHD^Uk -z7SXp(RC(!$+ccfrT3?shGueCd9ZOR~$jMFnE-2PArgPnrRMlJD{?Jl4`Y?iWcKsIn -z|EFp$l_x(oQ#eb5sp3mG79TPD#t2@@Pdg(G;y~=@0eeN?Kkdn_7#`mJbXC_3lMR5e -zVAY5Q&W%u}&F~dOKabAm5S41VR7M0m6Lq9tiUO~wVG8n7{U3A%SnfzO`=f*i=I^t& -z&_5fRKqGntAbLQMegCv&zAP{4P{!%t1Nc{PvQYfglbOK6*q#|=8tdaM&`VIcQn5tW -zKldVf;4Y`gx9kGMV~Qiu90qRV(sp`tt&*l^etGVtQ`uDVE|RGX>fmY^^$v%2DykpMtGSa}3|pDj}upZgErEnVK6 -z=U%*jP}O?hS3^=D+Tha(;|S*qme~1c;_hXGSVW#e*wsc-+8BL>vJH+C1(p+&`i`dm -zo$np>BBQlkCfrDun=(PD0AkMfR?g1*YxX~5~&wsgLJhycb{12}iK-!?v#|8<}k;h(-58yikN1=|wz3V|%w -z_+3Ym6cTNyj<6eSIr(hz|H0ZS@>SGs2CN&qlYn$0**`qi9ob#PGf$)Y_cvUgPcoSK -zB0^PNaStoBA()@aklaFN@zO{=e=SP5QY=fMBpO==1 -zJ7!l~5W~;su2o6v+uBxaYqznWn*nRJs;TgQmj(~HIhZQX!J?t0UknwTmAGH{Ic>{l -z_dO4Fb1js_M8@=b2zt6PQS*snoMHef>Fuc$ZhW;Q;}PC3N-hy7{}azv4|0Vf{S$=a -zB>^#e$GTt3e-%VivGT9!w(;_7{3+gvs4Av7jsEFnRU$XU99Ob+t5?SnTeSH5@(ChT -zBxaTLTz{S^TvETL>3jErlU>M7@R#IFKkP7L;*0F@Sp~ -z$I<{CHs6jJ%200!7d4GFN|rKv*$p)*E+2$z?qnGZaT#!({u^;w-Qt;rgrFH@NRLeg -zrum{PX}XhbHYj_e>-x9S<1Gm~uS?YCWUCO%l0<~Em})G_)bJi3&70O7SW+v71i?ktcH~iygeXT=K51baaMIZL{N&_hLsB8?IqtCp&Wy6YNFacGySO$@~bo>*jJ?7o_BIT;+*olkeEf|On7laAozV(!)2rS5R -zbnLG`}}T~7UTsn7N}h*4PRgbkIN;^R-rt*4m*gaE$Bv9Kj!<=d{L -z^7s>^CKSElSh~{s&wHuLz7>I4{7D}yAHL%EO_FT}JbT0$N>BAq(0=U9Fw=a(IeIqs -z-7o?wqNaDyXs#|KaFgVh;L5dX&sP!<#&3*psf_F -z7uobc(z2)yt{n!x&fy9r^<5zc<9XQMw}KA7+{|Xs1FQ8ji36jr*~5uQT2+b_iYMVr(399P{vzI{MDz?IWyCcIGza;MMu|jJJAMu3Gd?3v$a>)`p0p -z@R1I!zTR~e)autspr=n^=uTyQ_jGF(oEujIh)&nkGZcu{*y9Ewr~dwc5q=Gr?SIW! -zv(Pt*_Rb`=YZ -zyDKt?uHLd5;fC<-7#nFcJ~P=q*FAGNo%E6)pm$nV%Dx|skZ&WRWU=%2^qZO8-=0X; -zQ-qS3|HP_)oA#wM(+DgcxFqKyNI|WF$=6MlTvKMPPukG4(L1W0^*Nn%V^InGPHtDZ -zFkE{Vl$WCnd9(AM&CW7V?CKoe_45JBAJ|uRQW{?BM&~OF%UoO>q&3VTS|}$T{(IR+ -zAvH39twuk@t-2-H4T+ie^x!)wi3zzINh?1M5t@#$AZ*b&A4gcuQ&Bs#6cTK$jAZXu -zS&^KWaEn@^J&+HVEI9NxSd+nRt4yAS`r9GZXSSy?hRgoa(2eAETIY{ -z#~UZTo$2QH!$I#(EZ3PehHM) -zZX^p0%zy)?Ob`|cQ?Ky}I$d8ij=;IN>1MimnB^$o0e%x9!1;{Vlz$kNpC7l}aHC_e -z6%P+o0QmMyHL)3Q^E>-G&Hk4huW1cgsSk9Z)xcvUQE$df#ILP9`(m|*%S73%}&WpB>$zIRARMMp&q- -ztlEqgVI5)BQlhVzmm-k3uUMcXr>ROGpN`-NL*QU)q4WtvChss4(($KLRs#98wFy${ -zP+F|rzI)PNelW6BikB|3Tmd%-)T@=ylej&Nh>%AetMuiYE{dN{Jco1ho7#OsmH;*^P+tZMfsPsj%TRXv5@0st8GJ&nz)V*edLMl2r)iO!VTz|L>G?A6_b -ziXqkUENmg7m0oiB=RwNINT8p-m|SyB?ESpVr9y~Umy_(~aguxm0EobGKmFq8*WtD6BUy$2Q8QFa7-ZmW5ioc*FuFUke_?Jp7g~coPsh*BHb#49v -z*|@vV<)Tw^1j%++p%d}>9{fW3A$w$kJCDYd`Ui~|dBa8EU`iLr?oi&Huo&FQPj&prB)Q|3o -zW2GG9Ej|IT)gPGGb_MqLMg1>JIIBFixcCf*TP8Npp&^7=Mv+u;ilOGZsbhPJIbtGqn@Vzp>@Tau^_|g@Pp*lvv^jmCtLm)6d4(C -zO{$J-x@wT+o0_89v~AYl%2lBRmvE07KLgJyQD?b_5BgK`dFdEAvxt`<)A#v~i4}D! -z+^(aHF6nNgEgcC9I|wHPB|xtG8L6xc*mNg+We1EMFf$9taUx`OB5xz^vt)ovfZ-X6dOVB6x6)zhnmL3rYk&2@a5~P^ -zwcCYHJ;%}ko_AgLbdJMgT))WrzFX(6{rVzKJN~Q*WbnWy?C^~)kES(45@T>L_Y}5O -z|XquHJD@-9C{UiDOF+2|qPN_QDjU7`r5wtzB -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 -z-v89_;DiXh`QzE?z$7SxnTY#fNlP -zf!Ff(iM`>OZJW=fNY^*EW`lD)Y>CBA_AAgrmRdZ$GT+49G^KXtyp-On{b{K4I$c$# -z{4|2x)9~2@ZJQ8B3Ptta8dp*t<20h0<|egAZi=z~mCg@x#?w0jW*JGnu1P2DW`Eb_ -zTu0q^t1`j<#0ZT#&g6S!D3wS7t2*~ek<#U)3^gmVsPwT0!TNo^ -zG!5RYUPV=Ck@yz4lJEWR8loE6{^l91`&$efg8Nfe%TYn6IVj}Rf%HXT^ocHaW}IA> -zOOKB -z&qXxnY#WiuR5wf*i3zY|U?6L035DniwETY`;aMn4 -z&g->44HJApPoesx7PR{L1&@htxW;40rYk%G`D+GV{r;fi$c>tr=0XJz%ucIp?wx=f -zo!FU@#xvB-HD^XMWZsiN-XuSVS(*Idrwh-_DiuldBjcD-+oa>8nMnw!6A2Lb-wBo} -zOI&Tfi^a@*V>h>z5T|HSyE`O3s-oY1Nvb5;dev);fMvTG;3Skav#${p6$bfK3;X9G -zt$d*Ad2D5SWOfnN_Psl%|!;ib8&mDnBh?PThlk%4hnctjx -zI+PdkH{G1o8Ye>Q9WNk4yMwok$IpW -z%bzk#`|fn8!{b+q1nwm^wCbQbT}v_v_4aq>r02f+;<}Z>a#MHi)9CUUp)#N2!h|1$ -z+u=y94cqT5Jm#oFy#xMt`MgjgF&SR9-`?Ke;EW!SY4JQ`v(YCZlI(wnmug#>9_WfR -z9<}{$DUN?J?iW~#kIx6MxDYX1yYrL)NO#~7@dNc%fk-OW%6)CTCB2vsa+pQBFWt;I -ztS6QRh={DHZ<;yE2e!ow3u?BLXq)MKKvah0$(o-+ehyysqC!CluUYprn0 -zf!hCJ{f~8KMoebu8}CVHL&tPgs+3K~QRP=mv8`#Z}si>U#cwg!8&Fj9i^1>YGS8-w^@R^Vr-nQWb9%39=3 -z%wVhWVmF-H1v(VpN2>ep`&W;c*mRq=bJpsi)b -zj>YI={JS(`LM-3whS;GAz?RZTCKVAWT -zy3Y6;C~-%3y1DJsolA4#V%fBp7aiR9ZpfSmXD>{3Ko%WQoeDM|jnesNY%(+z;_rC| -zavdPjE$GE+ynU0BZF4=And<=u^EU!|f=a|=)a9y1>plu_CxSus;2E;f)&2oFKI)wW -zIcyLdOi}r7F|r;bPTH`#Wg?0_v#kkoXWij%*pL#(e0l;+ -z&1LXGOclpSw -z7{nu;lx)_ZVUbm_#A<}qOD(h@z!Y@OumjHx0l0|GSD#zaL~A&VGD1}9Ez_DMx|#I6 -zRAP412w?kw@pEH5CrG#|(`eCr4?&<8D{d*qe0K3+l~7!MTsh+)%g)OIY$Rzy>~!l3 -z=Gz%`tpkC)w(OvT{>{XVqwV;J`OV6TAq9bveKjrch`7 -zDTzDHZMPEr5*nk06l%+9hgu!$IpAr|wB`*#gAe0y*}Uy!6tw{+47`u}^Nm2*wqTpd -zv3iV^U9??yBTW0^6kc%^@X6E_Gy+bDod+G8LUsERxf1E#!W1k>s`~UvjF4;878aC_ -z#gTq|HhKPo>+c1U_brA?ZGieNK9F|cYVn2Xe`;|(7yP)RiGM2*7X~wYsA17?vL&c- -z-I@O6UWY5$Lu`L1l0B$i`X8&lN~*790X~m5XuvmsiTdYME|phu*oG9bF#;+qkZ?c8jMe$mr8!_eP}eb}%QqsTzzC%Dg=d_+&aN){wOAE(IOOeR -z^r`Faw>}@-;?i>=?fJ}Ts}f5R9^D-1g%}Rt*D9cU*3O$B0-biKVI{e3&|vY#x8tuS -z@k}g`sMPY9$i3>rV -zxp3ZfeVqs4g1&`t8N~jfM9!#yOwFSdHJ0S_U!_Sx7iMwz2nZusCWnM8)(^S=Z$0W(nmut;mUHrbo^p1(R8^K -zZ?&VPsfi=9Pv6X-g^ymV@z0|{`gq&a{T@-%&zP^jNCeX+9RH>A*(*oAfyspkcc -zs5_cqst?d1seE#t^6Zc&jsV}IAPB3J~e -zfEPQHCs%cP6EmZwqnQbRmPyIGot0xF==e{N44>SHon%w#&EX*Z6vIKM6x_2BRQoIR -zF~@$!$(hM;(CmgF8@^|~hNEed>$<=?-FjK2&f^P{0?g~NwN^3){PhV2a|nZ<@(IzK -zX17Iy0^DCEQ$c=N8QYx0*_8F)hfn%THzvI!pzRyrt -zg>FIb-M5IYC$lQXskf28ZAC55Z$}foBzt$<3ERV?i;fwzyR+>E_~^bajDuTo7KEzO -zsz>VgedGP5-_A~c{n79k?=sYO_wbR#>8?qX^!4bZqoK|_%+3-lQH|dcKXJ2^Y|mTe -zmp@)EixrJ7m*00y>a7x!B1Y{*y7I5}9M?Pd1}v251@nTvU>d#WMjlE4bp;JsPO&z` -zH1Vv`jTPnpm5%mOd$sPfYS=%H7$PkL0F>oDe&ioMju7o%8 -zLZdPf?EqI|Hx~unNj^dSGp5a5>!)$}P6s*z==s8%X3<+k2proPb?|x0%?l3h1D7M1 -zOwAdXrS1e_q~E)sTu`^hOZ&Q^DG%|f)o+bn<)BncG%Zo7-W79+%FnV)OC{4^r!A@? -zVAlZ2f#ITkX78j)je!H5(hk&Tdir<06+bW!%&a4U%p@m4>$!Q{vyGce5*`5ShP5{>R7K1qBGgPKMp&U}R5h+YI&W()5yG7=_M+ptj -z>>J_52SH8F^-0+b-4Aq0MM6LOhw0vebgwW#{ZZ)D>ou4*RB)BJ-d;R*XZGV&B7rjk -z;N=PxQw62%I%+9DS+cV;pG23D_Qv@S&=P5{Mp_^@{jo4XZkN2qw4mLX52p}?-P9cW! -zm)|QhJ)XxdB$MAmgmXSICIp@xw9RxBDZX62SocQp@&0^3e~D1m>aOIJ_MgYc;hW6p -zzH$K9v+!^DNUQ%edyZRMt5#TyWJZLci`9GsRfnmX*6w+u3>Wcy#t4F>xWA|{H_Fg} -zYl=ZkM$Ougs>|AWsW-G>-(rgkFYOKFtRV~q209NWqD%+oP1mFnH(tzobNO|)xOoz6 -zBhl)GV7jLhLvB?SM=!{t=0xok0HzFpomXLU5fxrf9$U;j?2SWj*LC>YJ|02PSv@ag -zK67hJcjM5S;gi*a7JiHJc -zT^@b&a1a~}sOCx@6ELRV%#9-rmPz?#vk!+{B(c@m-YV{lxpMl{ZTEOh0&TPCi3Gg* -z2aw{76>A9(rc0e?g<7di`KX>e$77QV+kToVwplyA5z+;GIG7egRDR1U+Vi6N{pAIE -z$L?9THtB&U2-_%h!+z6_;yp|ipl}Hq>XaJeU%3E8CuMk{ZP4@r?zFq9Ch_P**fkar -z8zG(gqw8j}c8y4-Z>_ME$dawg3$Hj^J*)m<68F|_Gn%W}UD=ZV&S~s1yTLkEs*k8` -z6`)jqT(=)STcD_DY??uu#T3`DU2Dp&8wxX#j+tueMO>duO9a8|YLk!x6jQ2q3+6LH -z28wca1{BK!Jhmu&K??uCM+kM<@PLincnGzYbH+AS`f=Jyi* -z&&<}2aQ#c!M3_BF6E&r%;ic48#$bV_|B4idoxv2Cvr=**!$s>OHyo92AKh^7LeV$h -z353mdOTj_-F4U2|FGce|p(1p57>-{Q?mT>d-+K0JOC?^}wmLbrn-1>X2GJWC>!Z=?N9Z|JKAu^fInr14G&+ZImQ837sF%bFG;budFxB*iaFy6F4=p_Y|2xF;C^PrkvYL+ -z@FYm9DxGt9+qWd3jO0oQafyfcNRF*-;+LJOy3w|n`LT_ejWz472~{gI)stN -zgDmX_mt)?#nV;FORlW7;X4*hYJ({FZEW5O8SVuPRLZfuf@*j%~waW${*{x@-Wm3k! -zT?is@bi7QlG!DI;c{se@C+(cIV6YvD@DQG6j|TbhIPQrI3aSm^fnxr;!+6n^<4*Mj -zWvk$&vFKeUPB_dx#Y?Eo>{Q?h_`3)^roIpb!!M7HtT&A1!Z?21YyzF-We2uUP4*n-F4g`q6cKA -zZ+1Gq&M&OKe#b-mqg#U45d|&b>PW4`W8z~(TlHzCxFvj8WL0Q{gg>WTvU3P-OE5dE -zNhQ|WSBBt9(^mvI1QUrjb|gz9`pTCwnW-__{&=6F5j)N^Rjh{Qz-~<)ei>st-=%2brZxBGRv!a@@P7`#6e4U%l(=*-x-=ioaOX=4(gcJ_#0{_BhCcDYU&aSAq -z{PD{<=Ww5$OhW4nV?6P*XRsgX$Vd1&Xp*gu#Z$>LFR_g;#)>nDJJ!+ONj}WQ!`$tH -z;hZ3!^5DM;)BALP;}lBZp)#08pRaZ -zb~OM6GvFsLJbNCg5_qp1-2rC8>J)GgRHYoUe#6p#AH;jis&LH>E%9K9Bh;mp#RISPs$@L=c8v>2_06Yl{4;u0z{2%MvCgyF33fn=o)-9}GU#rbY4w+EbPu<*N -z;(m!zuQAIa=xTcZWzj$F4};Wm@`uLR-iUkaX^DPKMvL3Vvzxx1F?ogZ@`w%HuNG=g -z9k33lxz@;uFeJ2*AH6mOd8@2FV6LY~W|<6;dlH$aabON1r>6r`B?+Z7Mj}{2-;TB{ -z`eO-~*t&v6b(^+z6(Fw1rfnI@)=SNJuiR?Cw{(Tm_1VJ{GUr{=EPWCj6LCxZW{0*U -za8WPOU_A11-0h{&%c+37KOjIJ)B+6-H1_mjzeZ&!d3bww`cNZbSL!8MmRg|z6|PgyV-E9wAD{ggQA+9H&pemKuevUd3J)nb1R#p!o)B8d11CEr*s<~5CE -zERMwAId+3=udwC&4-`h)6D1PO^3)&^<==w_LEt>$nG;`aaLsx!s;r5goAB&EB%5v02t -ziErO~{JwwTzPoXEXJ_Y}Im1kcW7bnl;n>~FsUSa@zO?*Fn2P(B9*zTO2f4Upy@<}L -z63}xgVG_97jvC_k%2PQhXvxlwMxfr`2>FWQm-c(eXq?QrxXqb%a14QLuh{OxOT<4F -z8Ea_48ZQyiMIUN@d)yK}N0&TI_Tg%Dw21+0s~S#~r1Pqlq4CAOv;ut0? -z_iC5mZ_FPIh#4HoG;xkX;S$*JW8`UL#n@fi9uU`{k+^);`D*}Q3S-fy} -z6RCEO+yjFRU!^BE*;@0?iEG??Y&*$Y>7R7|G#h=_G=WA1Gw~aIV~n~zFCOtawlobh -z$3%CpX8_dtWRMgqjC4>#k=;v0)ru8$k!sMFEaK$K1XW1XH5dTnAXdZXeUlt!sF3;Z -zpa^c=QSzk5$qoDv&@CiJeVlS -z%Z08F;mUjVV*CDpcY)hB&e2=8F**9^b2{?EVa~o!HSc%{$VP=ClgJ>>IPga(3s?h6 -z+_$a~6##H`-ij0qRZYyj58m&Mci9qn{ -z4pbh*+Ez$WO$hoLP!i6SXIh&0k?X{qNuieT1PYr!aK_zLh-;w16zj%_8W~(;c=TyM -zq4A~oz1sH62-{rh^T=51?(Zb~J)8hZheXDXPZN}NOXtjr7@mJBwUAHwFfdmSwRC0K -z2_NK9OAd3v;iME|{cwt~hg4HM)GWLJztb@z}OC5#e9q -z@_|P}p(L*B1b6$HmJq@LaOD_T_#@T?Ngfh?kQPugCL5^lEfr4Q*H0M&uL0!&x>5t* -zzbQe2aBe)J_$TpEwEII~I7$n;rn -zMU#DGQL1VvO7yn#SK78BNYoufj2Oo$@1|}A7bo{!-^x9`n~KG%B(xD(HYvs9Qp_dU -zsgU~<>qE7(QA`gD`nfJi+n`Wi;dfb% -zo$|90h=2czORqyWK@DZsM#<1^tNIP2B;lOD=gqCvLY{QPlQW8qUT6XwI9ZnisJWBN -zdrdn&nJvX?)*aOC@zo4zK}r38C!*+*U7dJANmrS87ef5SWn=e`p~wlN@x^iI -zGAa!m>xVeu+?EHKs2|A#B4f}NA#@yY2i6Ni`GxwzEl$(c%u|o?1uM(YmogG-FT;DT -zs~q;C{&_!Bdtz&3e!~#wIv&#)vOlB*^}27hFHXXfslf3UC5vEwlzD|>rAUIIt1`v{DJ0b^WcRFVqZYhi#g}sBt9q<6TCm*aE22D6 -zmDnUchdNgG*NfSEfn0XUN>laJ4h#P!0G6L-$#v?Tw|RmE08Negq>uL~@~(EzVl>8!*OJjwWAU?K&m-u{=1=z)iKi -zV(@Q-?oh^$bC!;jNV&0k9!NgKBnwa*Ag;PI&s(n$fbvynY>u2~z~YfM;{e%#*q`gf -z>5wfnACR`v2ET}^;Bx2o$z)SXnFz_nv0~XmwSQB)|-BdNwa1- -zS(Q53WF7L>NEoD>Z3MT8A^a8f_Eq$+7t=M_%~83o0&5Sx^VRo4A3&*mlfmNHBck0v -zM!3WHfzZJiNY6cGsYz85E;^8)n}#9CjMs^;8NA~#x!UEm+8CwfJq>pCa4NQ60}{W1?KjuS}TSerkQ@RHZChx0~l -zV@uPRSms~LwIAGAD@4QqY%-}UDdDHM4?AR@rVyy#eB0H@s@bk7%@n)1c7-~FslZu9ojV>%4c-)0Pw -zkXHM6Fu&GdD8>m|i^1VXI}-(8Aw8Nj%5V)b&c-aOwK@|ce+WNN7yictVH*bZ{$BqO -zbFpEiMjHo$d@+9{1flsf;G?A`{)nxk?SANysqQC&=R&@T+Uaj4z*)TBANdO# -zyS=H5AU>^?!p(-o)a!(h!bIyShnYnT)KxGLNPLiEJ(8~|Ng;E)f>FdHJdTMXMemh5 -zB;^p$W6_^lNERmXwqHB&X1bSIq;DFIDCrJ0QlhFp^Cku(@>%tD`?5r6x=A$hI#JpQ -zd9qr}o>uX0Do%HM`=krj{>L7b7GdeVsF1(i6Rx?guahow|*%FKkOq)n#Pa7o*gaP)x)*Ddl=^(x5~v`86of7HCH5vyF1~ -zSwS5gQlm~mGBTmIBP>vp(uJfef{mBYkM(EK!4v2$LN2FG3#|gvuTc?hNh`1W%iS}G -zX9diE*%1Ci`;<3pA}s@T4<)BK7}H|tRJO$7bUK{7P@?F@J;t)#%~3TVR3Ik?JI%Qs -zW4*|?5@pRlU5yk4=EU$#vgwpiEq^Fsyh(c;9CcPWG+YJu-29aEZ%u%El@fY-wY7kJ -znx2>hkBX68g+G(T?s1aSyHEaPmkxDv)9jPA&2okIUOkgh{lrltuGfwT+Z=GY_(A+@ -z3gx780$MTcDt}hrj`_`a(*O3T&>h&RFl)ggM2@vS>-E>X;k?l`;LI^GtaN@+pz=`H -z72E5hO6vgJuP+&uXu*#ZjKlFoNRG@)B$W~ky!KkXTCX{Ie-Z$d#UIP7H$WJxu0-;x -zqS526&|$K+PnwrT+rNN}FoH4TqztB6g5%!Bs0yd!+0o3gb$ -zn}Iviqc)2Oo#d}Q=EYusZ#92L$>@%BJG%4S@KeS^khxH<6tHhGuijZ(@m-21O>(*O -z(T|F%8iJTMO`~9ygl;~ap=TFLsg?6@n-XF%JYt-iv%?;lz98>w_|BudUylRM2K)J8 -z;el6qZ=@4Ch-oOPIXp3K+}{`e@*s+Cl?e;AS~?mU^p{noD~PZXek-eu$&0TVDup$2 -z-7`iwv$7_>sZX&O5J-2J$6LTuh}`Wt|guJD6pCD)xQbur`4 -zuH?&Tu{@88doDxtho*qrOyS{@pZ`kq$7AV|*P)TdrU#LBGKt2dEDxk -zg~8d>ND6mue{XoX!YB -z-grTZg~Lv&nlcGLS)Z4x{}%qARZoWL5jgOM0d;-RmvSk`ej(5O3n(SIpwi-h?)+D6 -z;2HO_8h`{s5F}@=e)ojJ`O>#o2vd2|)C>^|UCkV6R&t2dGm());XIU(IPq3nvRd1~ -zcGPWo-&+cCwrh+;V8%dpTj7ja#k+&{8WTzGm5YKlXM0(SCl7~iza!ot*v@-zPwNav -zFcA~J(M1-n|D3yhg-Rxgt-JA+rFBpK6Con@I~GSC`3c}yE%|<)Z`a@D{@Xv5W7I?z -zPF^Cs8&qYh9oqsE|1Nu_cCf)rxBGiPBTamb?lXC%=;>Sy=hLZN!+cU*SMS36Dz}O| -zOl^8R15=|4180Rws0O)GiE{%8z1{DYu!k7ib%Kb>e&LMirO0XftHwFPg`|~LA#`aN -z6fo@`=!2AL%%XzjoQ`>EZ -zLpU$Jb_$`+;KxH98}TXZfxJ%Knm9>54w?lY1c+2QK%2VUf=XsERMgo6Z%|QqG5$34 -zmX=Y71L%`N*>vEO@M&Fm7e9AdHqy`O -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 -zFNvYgT&@YVoqXewPy`y~hwoxOdA;s -zjx#be{Th44#yek@o6gg072$9d3cgR=7wj@=5ub?-a2p)vQdX=@YS-@Sh&LKYdim -z;za=lZsurj|8W*wGBR;~bO%{oUx0`eowN!NMV8Nz -zPTctM$jmn2b}}Gez8m21Kq*ISIbZi~WZ(~w(E`1e#YDlUFl$R%-Cd;?L+lnkl>}1` -z=BViUgVe~ti<%A|0oT#25x%|DwR+)uB}Z)kiD&H8DN`Ysshj_>M_F}!V=z%UR5h=7 -zbEYv1Xic)Su_7n`-OH#qNBd)Lp(5?5pZhb&9=oyY2%mm7rY5Tie>)$KXTNs$$)W0g -zsb9QO#oK)mThRNBK`{N5mI$N9&8q-+0O|veI@TkLxh1BGYMXHZ^X7KTb$4X&Uo4`- -z;a5V|UWSl0xt+{?^AR6ytx`WV{OGBx2CqUr^s^u{z-c#VF -zKi~AF##<~p&4%?VL&Gl8Xx(O8#-`Dj94(aNgK+;f5ZxWcP*$P!iadoS7EHCCn#ut9>a@SJGD>o=j(3*8$R*ac{arf#gB<7}$J#JhH<;92KK -zzd)#j2Eckc9d!q6Z~j5J=AaItguUaR5fjgqlBD?eySds22_qBt%9wS%PHGQI+QqWb -z-34a8+xZd3A(G$8+iRG_c8;7w1WHEhD&vjypxeolrGOOK(3BMC -z%ZsI-(<*X?u6rO|9QbiZjrCdH6`B@y)6O}#m7XK!JVf?;43YeistW&b$lYd@;cf>t3 -zTyebQpP$$2x*UK4M|evm3Q2_r0`#GzecaP*WLb)v#$(on`DwFJPaeV=D$(2A)kDWV -zmghJraim(%epQATMZ~aN6dxuPpNY-kD2R -z!)vUU+$yrhUb8xMC8cOx)r{BoC`p59t)nwuubzqZeht=+bC4rRn;)+wtqzN43! -z>5NNm55_MrO-j~czV17kAs0yiv5J5}j(wI&T#uvaRaNKJR2GT=511`UCq= -zt)x+e{wJP^W4`JeoA@M3Z}%C}yRmi_@;k1Ah{^_-9&d>sxilp*BX&n9(UDo!_dBgG -z0|561*W$7_6ljh8$XWx8!6U=IPSm7?6Nl&vgHJ32po!nXqr@+o^JtsAWr)Cj8>CjI1O~+%3m1^ZVl6(7sDQpsP@-5#RURPWdJ`&C^sXheJoP;@(EXGF1F{ -z0rpaU_spyJHqYEsu(+$K8LQF7uf|cDZa+(GL;KVs1Ghf81;|gOsWrBX-z$h}6y~L= -zRIbSwreU*#&!7HV^{yGBbPU28hF)#OVkV2bT3t`MO#)O^?jr3xwA}D45PoJ@)hZ!j -z(VdQEuV65}&A}D=y{2(f%_4WIq(3AJiL#U7dm}Q2++j8(=r4|*{SBY6x#`^5EuQq# -zDef30*7Co0kc9_owJv?4TSKy92A64o5jQN&uak>Z}))Q`#J19R_HxX=EkdhN=OPi2D -zzd}mi+_10KxRCO`TQ4dfa=oa}XbsH(0EcN35ykG@G-vb= -z>2m6D5u?q&Y*b5AnV%K&IP9N0&1V}T{T -zF%3N7^7LU@tXtcuS%6vtyR*gl<#lc=qQqz?0flZ~(RS_c@QV_G8$wOZacu~A4pt{m -z=HzEgy=caguA&2Td803`aUlQ`1}C}4&gPfsO{O!`dL{6OdDA2|6tO35?^*pvS$O}A -zeuu#9V3(qZJTs -zF>^?a?>k(?l2BGaSs3VZZPWT^V)))PhiX1-EE_g{rnYmduzx&R-_r$!jv>1_J6Z15 -z&W`4`Gw{*z+ostVl-o&B*(5= -zLiXk5Iu7_xkHZXkp>wjXEtXU0**CK9NAN6;hmMrVUyspTzcX;aNu%6Yr1FAy*+Ek#cSy0Sh)YEavi=hd9#0<09}cf3@``5>A6^fO~&`7B|99 -z{;Dc+i52}J$^vs_b!&E$n){kEyKOQ6(GNJxZJZxPKZoPkk(7cc{`n|oy%-b*#D+Wvp$#Qt&p+oHx -zidg9U*t0P_#g{ZNxN%Cy$3D%GLlaTKO@;}b$LYUqdyR4XCtmobN+g(agNrA1-tK7I -zb3kcgZuS1{G@iNmgB}%~W+WMs`6>QW9}@Wlpx;MKFS@1luxFgEJlj7@?5&OuL2Ekf -zwG=3KZ0*&oMMGaCIPqP~=ah5}MZhtT4D$Z!0xgl5h7`O-1~$5DgnkyWtMdvLhJsu3 -zE!*$=2wsIqN%F(ehAZ?t#ss5c2rL5@IdY>YuBYCy65!-yn!Bllio*K9AgoiwJ+QF} -zin|Ms=G|P$DVM{#jWwSNOumT=%L=C%ld@l0Plz{H&N~O_u{Kb3OWFQ$@I+^Vw7=Ew -z@4HD>E7^;!sD+DD4UmHk!k~YMopUd8nW@N%@;`Of3+=tZ;0L+U;QSwOr+1Fl;095M -zFU=U$N*8qtG75PxnQ*DkJ4>ODK#3lan__!1*o!1Luw@oI9j1)g+@ClkoY(2z$-)Bs -z=kM?^5SWplTQg0~^#tU%Ft|$e(Z;n%U%pD=o?Dtq@AorxxZOPTS -zu>snbXcs)BG}FJ&dIR?_#*C@#eI6^6J-_?PLKe@jbzi}An{9#LRcS$90Q;$f56_{c -zZM@DpHh1uI(d5Qp2Xk&4zE*i%t)W>p!9Wj~?Ii@Xp3TMe#3i{>`NT -zkOh0dNzv}hw+vLE9M)ObdYzDe&+Cf}{`q&Yik`&0+2+v;R~+y~W1GoBP+s)o_F5Hi*Xp>Z#*PT0S?0KN_+!{~|~5;q7J) -zmqCb-5)g$wP@eYFvJTZwp>WK8moh4|o*gLw&z-(H;b2avA&t&wjkb+oPB9gyq) -zYW{NVgnA2d41nB|T+GHtdv1ji>hHH2hGM0}SUS>vL%XPUC3!A2{hMebC!mwqOlg=# -z9p{#W=@2?EdkXWBYfTy-C!!xdlPG7tvmSqU1id;YVj<|oaJ0L>IjroE?pKZ~%FUm% -zn`mNRbx{;)^DHpP18KwH?AdyEbazzk8fQ7ggd~K)kkt7tNwAZwUwfD4bPO6BfzxO_ -znG1N7iWC*E{S4Plky%%R(=`O)uh*kSfIk8z)bmgO=1f^F?6?hh-ei&fe7jY9v+Opa -zq&JfT!`PO6Gf-JYTpMVg5OjKaFe7{h91et<&fI(LUV=tShYt$2c)gkrkAB(7)EfD>L@my>ZD%SV#W76q;wC^z*u6VxKYab -z(4by43>|Crg_2z6_L>75xBnb{+qcA==E1unS9(anYA{e-iu$&L$J#l}RkwKfH*j$k -zP@Cg0WiK(sk!o&R#YEe2+!l>~=KcGC>Bn^}npd;l#~Y?K$~TY$>pjpCH|wcQd&uED -zGlH)_k&51rI&4VL2wpM+BIWos4oOpvL6)600WJGjtqXU=CSm2m$|ux<=IQ7aI?&$( -zDp0j1*7JeytIG`Y&1!AQ>eo-gRL|W$ -zES7svWFPXaORVy{3IH9RAWJ_F=8==^EA*^4ZC8*~3M5l_fYa&5S}&<33~*5hIZA7> -z_=g-*dzY~%+`3@|f2toeHDBlyF|lf;TjD#7twDG<=V3Vci%O5Tax$u*IxR4Cp=?xd -zg0X`*0}<4&-iIa;&)O~;Mmda-f8gyNL!Dyf+@QkS6e`c1DC)=`vXI#Q?fwEaW_2K{ -z?Yca-(3&-`Jl7z4czr2>H}B&&cHS4}#eQdym|0sO`!(Z>TCHO -z=u@bgsa1+vLqHa^OsUWnK0l19gHuK*m&jfip7-DQ`M+YrgRSn}S%lwq)v94p=s5VN -zy?DPe-j>)4rldB(tq<7#vpT!EHMr?J>F>%!QHrQ>629!@&xU`;&GN7JyQ7e@(U{*Y -zYqG1KgthKqK08u3wJ)x23x`x0lXVi#NV~=tPJ6Uif-%damjl))q?4^oYAYXNe)tki -z{!Q+Qj>%yx#_HiM|Ma(beT(?<`DW0H#GuqtISd -z$1jTLHYGV`=esDstHk2)L<_vc{BGHfB*wvZlJTRaPSyuln9UE7Pq^a_{$LiXhf>L0 -zyvk)74t?q|1BxuH^yA)6>z!AWIf)xz$P`F^r?lY-+E*T(ozhsZ$avUGo6AF~iPh;K -zZq!Wc7?4GDWU{07m>>*Q7@w1oN#uLXt23>o+d?bwCcr>fVH^~inb#7+q?*0T<~7`C)~KQv0_S}t@r`8jK+5fLQogu1?S3v -zq(B(6%Ib`4;RmIUzsa#{$T>noIM62QGih1IC6|OIwIKu%u%%g;WV^X`Q^xc?WE^%l -z#-naUKhHv)=+C}tNljb&B^2{ZgQ(v`mh49N8OoHwsmY5OTteGcTQ2t15;LwE(^h0z -zutblZc+vMR{FwcpjwD3HybZp&uIWg&yCGrVVe(MjUdr0J8w58UfIrM)_RFWLdTFf~ -ztAMN{P3WS#&+b5GB&WIJq1jU*BA|Zmqe{y0vEC9=e;K$->Vi!lW&9IOFBe&qrH}cK -zQ!o%jgk#B7aO<(Kp1R3q8t^Yr%AB8?NlE%J^k-YNZo*%b? -z$g_jOZ2qyVQpAjFXI&&alO#;C-iT4QLR9V5Vy74UWPcmFxmIYoh#|-Eu$Y55X{P;0 -z_upOmc`u0+;Ib~g?$O{(klxQ5(n?p!rttZ<%&er?J_Q|j3GzgG+SckW%%up(y-jd< -zV3_>nC%!}O$}mm!a<7IPM{Cu-x#tuNfT9)GA`+hHf&& -zMVqix=VD!sbL~BJ+^ydcsWAGur1xdsON!WUAFc&&ykkybc>Z6WL}J<$V;2_64bP|4 -zEb-3;-%mAlOM!ArOYU} -zNRK#$)cNgz$JRHt?d&%jKZuI|%gXn9KUDLV?rj^izAa#X>YbWPTri`TR_g5rs}bqn -zg;IJsl$|=oXlQ#O@Jz_}pF-edaFp5Mt%i^ID;HXOrR0;22#~x|9Py6RtXG~{-rqxl -zv3TS^1%(H=k~UzRMttiEXApF~_!ShyaHuwe*v)k#O%Ekj*^9qfQRgZhx)R0T=qgSJ -z;>K<61_xWneeZPOjt@#^ku;XD@d?KWE#o2OumR2LNUUM%+H_ZSw-I<+ZPp3Tdu#+u0A%(N+h-%qMAx=x<1-W9tK -z-+M1`VuLqp4lL3?m7aNEIn(|P9ap|RM&g!*$jD6%>9NlA~w6cqe>Zf)vG;k~7 -zc?tTK!D4{Hv+I2WNUdd{`X-WH_&(q%w}KLf9_Chr>~~1;8l>SYa?)ivrF%FY=)WEs -zTN|z!RVX5Vnq}~u06H6E;~Igs5pH`^!$!UAQRrx@$`soywgB-1DpA=Ug5z(;NVdeb -z?m^tGt&mpjNo$hhbn&XQ3!>4u$ALo+?3})7(8CZ@X9<%)>Xnj>N|Qi#g3GDZ4xwsl -zn_~JlSmt?c#+V4{NE~xUjsnF`6_V$fnRsSqhv;mvrI2U{STXy98<`(wSl=lyWgoOi -zzoeqZJG2A&Q($JtkYp@w0!N7UPg{;A`t+O26vW>OO%yx9Ud)GP_!x)riKms?_E!v8 -z*SS3Wo^ew~KT#bdk~9z;lRPtegwv4lcNKvVT=T#OeYmz5G+Ag>7Kcmuw3eE?#gZ>o -z?fkwm&EeQdG((R7#aOe#u4PW^(t`^Cv_g8}5=Wl@B==v@kO#cn7oF-w6Z#ftbJBk} -z@k=lKl2S)rCK%qYKsV8BwdUXGE&r}3V0qBw`q&aZIQYjhB0Pc#vk_K5duYz(o!f-f}XaSE~OG)oDJ%$`~+nQlkgeTG%m)z%^w -zl8&R(?LRoXD!b~w+lsaUgtQD3kx3&le=-37f;MgB}0AXpj2th24vGykPILU-k-=qS(Lglq;uFmtdc_6%>l11b}66K+*g -zv(nn47fOeyUASvU|3EW&!76i+>!iH24|JN!rw!P%qUu?BkX(aR>m{+Qzf-)Ka=)I; -zEVUm#cMDK0t#`m9(Xm3%ZMoV^-&Z|C90*Vy3;;_Tv{Y1O@Q*wQKZf@(Fp){DJ}fRA -z`sXcq=rI4<&lPQO-NlvV1aZc5D>{Gj3u${cNQhvQ{k<0e13bHO0PntLVCPg`(g;-s*vTK5v1s9zZc2&75A6128NI_Y^0`oW_!GB -z=gc&}n?m)r7;i&oNIe-W@mUDMN(l%6B@Og(%PmfzloUvZz*S!8Hf9@cGd9D#0d^U6S^x|$d(-)~oc -z93uM;=?^{kJ8^GwO*6G;`M;ZT(a$F*M6{&;2C!?ub)Q13TT+4@&S+i8&4Q}Kje-X)z!}R{C;@TMuA1L -zzy0nc7wIN#5D$l{?ych1Fpl{7NnB~rYiClXx(cn63QLf?TX?pmt8P{H(o+ft8xMb1 -zwjts3d_-? -zx+rQi&uLK))uo*hj78^)LNg)=POL;nyUJHr@J|!#gfhjoU#(9uH|3*Xejd(G!!eBF -zAB5J=ZF3CeDARO2VtQ2mUVcWVF)W;|-gh{FqxNK5D#z63SB7E4+9^izr-?+~$m^%E -z21{|BG#RrzS9uRp*8wl*Ri4hpEn}}6@1Agh-1KXiA!PtE^dhQUN^q{1d_x1*n7~60 -zFRpXI{W)0s>U@K3Je9*QY`7WAT=c6!O1lrM7|n;g0ucH&TWMyk{AG4QrNz@to?Qmq -zIZSi!x5(VjEAOpIH9j8e#}vhR;fPI+b!ktxs8HcIUQvgMX}-3viqQ-lR2vOWX< -zkxo4BkZNY8%PaG!3kHty?ayQMfv+GQ5Log;>ufDGVMnyB?FN_KKOg_YUAF<^=^%#z -zIrTT@0*#*ROfvT$##FC7N@9lRyjrIq_6g!TLdaw5Xv3i34vueacHcMHxsnx{)+HEr -zOQqty7qLmp9c1!WJ9zALg9!mOHzQvVbrpc~z${Gk;c{^Wq9-5nWW-@}melZmn0ht8 -zhl_)f$X=Bmc5hs43~t!>p7Bw3&u0=9+jjBPZ)a1A`HzjsEBC-Xeug)>Z!iP^UeJ9h -zy4OmkbgM0{Zd(ScsBBIQC%nPi1TVmqJY0K7OiIKRV4^*Q?*$ -zTCkj(xq1&&UL*$mY4!8Kd^6pDR(lc$J_))!_gsZ)kDk`;N5^c*n=$>}DmC8K27Ebr>CmrQ)-I}vh}XMn -z7T@)_BKx*M;h+lEZCpGaw$?r5=jL(x<17CZ;@H_#I{prAh$_`cRVUZzLPHjMGps6R -zufJI{ud?O~9~UBV<=rizq-w*;KT0$vOwP4qJi{>{v96|ZcovppX<{%Z*kYF@9`-hE -zXZJBo=*53agJh!5ttYU@H}sTpK6ViI@kQr_kb0S&K?d`G^!(0ZG3!BnwiUNUWE_6{ -z_ylq9d*~qok7tj)>!Zh6ZMK>2T_vPG^m|e)2jOg5>{nWY56C9rna=GNYL`gl*z8g# -zOHg`PxNpNMJ+?vav<^R|r^Ve;Icsg1HY$HPW3&*^^Eq28OHQ_PKj&LY -z!sOIN1+wJ`w+BVTPqsn26AV5T%w{ADOW>+apT#*2P -zy{TQ};J$_S#NKv$_S8DbZL#iCZ0Mgi|H`T0lR{CrT>oSDKVMuoK#Otji990zk)X_} -z{NOci(zAqP+U4%&()ExSAvjo%BVDG3jj<%+@U8$9(k&Fa=`|9Bs!=D=pU;*2UJ~;0 -z?!XN`FL*^%&%;L7yB5Yz7>Rrv`KU(8Z~LG{G5-rzh8*uSb{wT>kM2U;-4aCI67r+x -zuLl+>C~oB+WeopG$Q_smy*{xe#cC|25JWWlAZ17h$}vO!@K8dGZAb^Y)=})pQN`V5 -zQ~c6CZwP-?Gk$B}6)x8#>>q*gDK-9Y4s~OmoHq1^JAe5gwR@gr>xn}wj&IXzho2U* -z51D?)lD7vVT))dY-S)}^`sZMLTrJQ1Dj6hP6N8i_o5qT;j#)Y)X|1vjGL;U$77rTh -zL0e5_!EJ9XvEI1O|7t|@1}~rX9}R74p4dpnPa_%bcVZ01dc}~~`7H>4o}=BJq<^u} -zg3){Z#dPRcFn -z5B}r*=^9<=c!D!lKDP&27bgy_bjf}0mDaTIN1Y92=;$2z{x~Ent!l?8_!2rtk~Z}= -zx}UXG8kLm_1`kniR;ibpa*h6Iw5~NpzE0O^fR&TB_jAwg{Ze_IE@S@&4&Hm?$WvB~ -zI``9?P${Ig33kU%Q7zZnJeg2P7RB(}JC_8ig2z4nJ!VInoQsU$KD-m+ae{%|21Q%_ -zwE8;vH5f<>QKPLS$1}O -zz5S{0zO?hE%tC|i_z(05@GQ?pzavhq`<8aC_Po*`^{jGj?mg7Fl6-xK6Y12oLHA>< -zDRQlAtTjeR`krdU-(8LIT-ZemF^;nx=UOmxC}ow59QMB7*l~6O_A7aNx^FE^nM5W* -zg2MfeE==WK^SIy<*zs;KDjJdHG3ðP9;3@Ds(O%T4jhF;0=R_lfKz4A)N~`?4i8 -zARs=lBh#mum@c2KjM6_QF9P=i>QGnjFoHs%y(_O1$h>}jA1_%{r9N+3Z -zC0(i8i{OKIF!=nElS~@UwXX|Vr2H9t0c6jEv!_T%a3t_NpaoY2qf9I6B3SD6{A$pz -zo@gOh+>nCtTF9e~n{MKAbVT!X*QLoqY;!CYy$QEtMIFrKtkNImO_n0fnwf>Qv -z3LJ>geeQIWm~6sKb!8~4g>CUYw$Z7YSG8N}94@b<&7wUB{-LDXv3`vQWx?(TS(dF7 -zL1hqD5-o(IZrCA+*!F$vI{SWPS}MC7InC=OJtl8IT|eb|qGw5DK#teYlI^Qwi0>3# -zQ`U>tQ!lgqt6%l__j9N!ne_TV?Xpp3qiCuoqK8BOZ}9T -zbF(d;r=q9QFJuE`X(JEmrp~Ok{xo>*Aq&TfPBlG7odiLswis8zJo*ejYXQ?>oR!7v -z+-B)_sYk_P31$m!Djw>+t!9=atQ)Rgc{6y3-q-jPw{vc+8``X+RA{Oj&Cy@po?STg -zj~>Y%@bQ8AyeXm@Zxwsyyn{vT+c4hexyorF${+qY*a+nY+#ap;LT>haZJ(R!9fs;~ -zD>s|p$tl1ackOk8r^~lYK$qk7(A&7?=YCzuXltMsk!Wdy2dz9j=y#>6baKW_FYFgwqvZ8K!orciCGlQ5AQ$zylUuIH|7R{QR~62 -z&C1R!w!!M_AYU5XRAS5{6_<77vvGb^xDI&941r2=zm&$!2gWsOFE65*NBVSzO8+T2 -zukXz-7B|2+AcIwDDJPCgFRrNKMiw)r>F>{aw+924wbrSsk6Fj8S{CU%Jz&J+G1gJC -z59jSD8_6Rcb*pnwpxn*vbm0jb2Z-_Bq_b#E+^V$Gq?^%n>LuBSD*V>-pf^ -zUE@RMl#^bLIS9)$VsNKNVgJ0U;cv_&`Fds9#He`(YT7}zRciDLT(=a>a3S)bzd1_j -zf6Soo1<{HC_2m9gGwlD-bkzY-K22CkxK*s)&bzxaJI_4Nyymzi@7MIfww#-UF)O>Ag0q_d87zK`~<`MOn=lIB8+t%})o-g#DUF1(cJXolL`6jn{Inev|;lWGldA7C5 -zCM_Jgi#2NLW;l-F=vSfs -zFl=Jq8`D2;$I&C3g-5R;%V{13-@E^^n72dtyg<_Xk9w$U -z8fRh=$~{t^q|Df#Hia+d#mJ8O&=4qVTiuP+l|F38tv>`j2fz~hQ}>l?w}xoD>lu`#T@FrQW+>{(w0J_<-t$FMiFoL!@uRmBG<|(6 -zQMFuleZn3Jdfx#~?i@&7AzIc*)rn=EAMQw0!IY-&B13pN@{Sj9J-#&Z?EQQ|h=4fO0!cu+Jt=G&X3HWm|- -z`8iWrlqnhk=_SoZhBG3;ZBsP4oF@9g=p7R|X3F8;oH;Jo*@7azMAOTav-yO=mtQ*R -z;vxb4WuZvOA>Y(;qZ9CsK%&YhKmJjySTx%3@a=JB-5s{C56o){%JDU!c|@_!n7CFp -ztKmf)OTZ1>Ef)SM{l5b(_Z1~vyF -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 -zYc>F&X|b*c)m{_P=fH_#E8w -ziXQi8E<`bZl!pv=2;j-Cd{;Cif=tnAmr;XmKrdJy2=!ES=45{PRLC%<6pJ*b?;R1% -z4)dI~zT#>DZQ(e~k-eI|g^agT|45Eb*34>5O+ftv*sVmJtx?M_N@Nu8QT`o`bBkQC -zb3p&F%;tlsj1fox=_h;-cm3r0rukq`V-@L3jQuR!z1n*$15oJVBz`lh)GP4)E4d-g -zJ2abFg4W@?=u(fIPtY#P`W@SHWZltEwHjEe2`R*`(#t!spSmk_K-C_>RTBMF<(-FQ -z!X}Tp(ZRc-lgWn!n0k%U9kFYBBtqsD3sFGhD}_v1om2^*`JCTp#n2PtBdY$fVSbD3Eh9$uA0Z~{4Nd+IF^+1S>|ccN;FKWF_m7$LLiq_g%M(&AGdoivyhm8l^4 -z3c0r{jUeCc+bp-<$4N=e6-(MuYT*({!H!I -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 -zaR3u|wW(U6#l+Lgw2BT`ZmY?opE&n=529j-- -z3la7Yws6)b5X;(+E41#PV6ByOE*%GAk7}FRJt&2~MGDe-ffXJlUNykj9%EqLe>4ar -zdj1}ck4vip5Ea}qY~eOF{v4e|8kO`Yil5~Q-2jvr6t)lX{I}Zy|84i1-|{@F3ZtqI -z&jZsRUve052`#fP!$Zv)YVI}UCa!j##^lmj>PMl0@i{j;4%RU4@2EO%#ae+6+ -zQcvDL{IZD>{=^dKdlA9!jiCT_sd+fw;mcxJGagaP|H`|L0Dx~thU4EpajN_1 -zb0Rq$R}@pm4{2=&-JEPC#&HuP4lhv}=&}HMD={kleH`zu^?#8uwSOzLOjSv=d4*cJ -z%qRB)N@|khn!gFrynZ|}6tg;?bklVxgYhDcVAUb*#P2DIzY^s`oI!AHBy!m@^p&=Ay7vzn~W1HYlw^++Ll2{%tM1`xw?VcHkW3lu;v`MHi -z3EbSUoP+K?45<-^knDs)wJ?Fhcb3RsdxqnV%#&oVGEIl`ikywom1O277)w!wrydq| -zUjNR>DWmuW==Or6Km{=v=X?#a{_~P%8#`M$QG}3uMhjxz0w7 -zx2b63H$bNt)3<*VL_odfW1xx9S1vCiv0vmDqj)@wv=}+LSKo1bJz#m22rM_B`T6(I*#8FzKh|f1GmH{B;CQG?}t#+ho6H` -z4w_9V8Dd$tkh6`gyFdRLdUOR|OjuU)b>WLu_1F8Ys1b5;ic+f=TN+*nekkA1Oh3BJ -z=j-z&$Xte*Pqdt?PJ>3IuU37E%}BzO9u=&_-MFN(YP_jDn1WkA6;@!N4lUQfj|4fG -z2_U)m%~p7rky1I({8IO -zWd3%Bpf{>lzJBzz(=9N;Ij4%e8mWwA+@m2I>G{jk5(-OtR8H(mbK{^?LBi*ittZ|o -zL5hNGW6iT;KzcE11Bj$nFeEmAU>b8`U}Dc0KP4Gb+*>p#05ruyG?egXO?U(vO}GT8 -z4%6?5-5cc5uR}|YuXp&HJPEee3;wL -zknJu(FO9}!XG;*K#M-J{uqJ+QTmV#IUJdYWnqe$j^47lB9;jxNP$t6>{hb2(q{ONd -zXD6)Z2;UK2H72VWuNwepd{sL~aQJGQ0&=-T+Z-4QVr(95t`4Ug=(>Y@U9fzaXfqWs -z$4sSRoh}>un340X@a8<(YOWPN8apOK>FTTH_xx>tw=;o^%JD{j6jsxDs9XJrXbqb? -ztLd9LCRSv|aP&V7VvC+1w(H(pZ*23iZBepn67VK*XhuZnxZo^_>@P_T;GojrtGk)wuGK(k(lk(ig -zckVl=j0v?qbh1Oqmz}7{^`#_E4i>;p#zdgu{(3lpe~=bzDg@xbG)yipss5#CW2jn`I<4oFbQXM6gw -zBV935Fhm4>$1>bRrsV}JJG2u7$D|*0jiq~$f=D^iwJLp?Vet}6p+6@qXo$Ep7&q9D -z7DhQL<23h5h#Gk0BJ*>Tjcyfbd1Os_L2`CXA)3-+F!?PXhA?1SfkXIuDp#C?YPOD+ -zI+G1wFVjPY$$Bi;P%zh@Re9wOLVX5hd8_KfgdGwKifMI9SZj}1Q9pZzoW*oX_23>C -z&8SEJi2E@D;0_>u+vGWqgmp*I6k?gRySz}FWu+Bng7?{IZ-w!ql^P5SB(eLwdUHOXyduCy5#B$To -zatg(yfNzUH&8H2uwr{KIHL!AaO_FjsFmrtwB^EA_=?1y-05?j1d%W<*ElIxC9byg; -z3qSc_WZ^B2Dy|izs$)^q84Sv9LYzraD`7MIf~p{Co2eQgl%!mQXopVmvMZ%{j1NLU -zO%<%m8Di4SZGH~x% -zXMIycixu*{a6!-SS0N43fMDj+>Heifj5xstoIm-!2DtU-7^=e7?CSM|rzcp;Ab}5F -z2j1i0hWX+nj}$5`C8i7xDsLEVwt%=$L`={EuP}LnU$jb&=2_fbl#OWlqL};6%@9O; -zy9X{O(4vn=uFA9pxPFEj%a=gw7^nce5pPaF?OEd)6F%Oq__?by2~w1x{)!O&ln0-D -z;-f4O>)ilN3tlQx-4T)ZhPtVI#49PJKi`{xdL98i`q@+iG07Nj-GXbnsup -z<78MQ>2r=i(UoMv!Bvx|yzqyTUc$8d&lW4Ch!ONEvi~#H%j~T}=Nh|(34^zP+MCU2 -z*;l!a7D2Ic8;-e7M1|(!jyvmLG+&1pV`nT0Jr~t7F?zAL1*9q*#j{WFnHScBBR78& -zC}QzD;T^_zeUMit$#e9Q&~qhw<}~dMyUrm#Mo!eHX8lg>jV>${^7qpg^va9)-oFAX -zks9-STR-3e>RWwnQoK1c0JRK~QMWxueIA4E=T?ezd{b6tR7A}*UVS`Sdas;*oVP{`0B{JbWTU2Qez-6- -zTLrPt2>{Rn|C8z~B7fYLzeViuB!YXRIf8{dfqZDn^8eA0&S6C3o?oJESoSxad-@TW -zZl%C~w&@y?`EeLGw1{x&c&*$Tc&}PAeVfhqib+ThfroSuw+pyBf{a$o>zxU!h83eCca^R|n1s9@qEf14wQP6!R1n5aA9OMcthwpWc!J_tBCp>cEaVpzU6onyRN{PvIfxE@WeJUB -zzAIw}X7q{M6w!Pvj#)4`#IolCBMh!Oc&u=3+F=)WJ_~D^Qc*(H2S=?V2Zb`&87L&v -zW1$qT)Ho-t3tumLyT6PURpWfpYr#&G@Sc^bLXNZCV;3M`V3Q`*-dRZMttu^FW+jE! -z-r=j^LC@`k4tQ5z3?RvR5`=1l8bi8yOXfwRgOViB>;c0q75<VKwXsdDb-dGQC?(c7fBn(*R!3A5KuSG8zw|;tEs;y9 -zz5wxC&4QX+0%mDpL!m|@YBF*})x}<#6%=@K_;F5 -z!QWJKTl{93^vm;FnuL -zkC@C=&3CvTnIdld5UG8Tt0m~%e4FW&VDcqy&{8F0B1$yqRZiDYefHCN`Iq*Z%dmsh -zxL{r;EA9uOz-i_lc&*$-=wdk)ebUs*oYsb3Svh! -z9X^X7#N__t$8x&ij|#o7tC+EvQLIG8x602@+dyNxGxkayh0x%E60+WNzDhyXn_d2_ -zh_C|kj79Y2@vQhCu+<-Lx$>{|hl#)NYJ!zn4ofjcP{y7VhcomY95;l;5Z0%BkKMD| -zRH%A=v!dxOEV)|O(w%<_W4F&EI`T~Ye*Va`;v9e(;P}I5oSpo(c>1k(G`j*vKnE+V -z8KceY`VE$wUM!SN8HDy?<80`tqaHyvPSA%3nlcawb>512#PqrBEJ91iV#4N#Ew@mW -zeF6YI;Rs(UY854w3i>ONR$odgjq`iRs+!7L)6>g84PX|Yn-!!QPtQ%SCd5yb9}`aG -z++3El58Hizyd?l-H{h93b3HNP&60lUS>cF1EhjHb_~b(fRdH{=a*?4Xchu|A!;O>@ -z&+G3*LMkAjc!O#R{a13s)P@ -z^~-&yA$49f-I-{M_`iRtKdz-2iD7>F*4SF3As|Nxj3FW4w%| -z1f4nMorL`<^`x=9AqYNPwUW+MVO+Kf4ac*7ABzU~htyILlsq%XnA(P -zd21>$%=4eaub+mGU*K|6>9iE`dqU46=>hcM*gfIZKcYmq0ceX35-2_&8R|@SBHeQ; -zF;Ag>$6A8pm5^2(F&yOzLb^fJ{P7?wh*gjw&bi7911+J#;XYe8mix24cPH)43 -zczRvEsi&C&!Ay|A%F5MZ8#eI}d{DHpe6Eu_eleDp1jW7~mn%r;fdl<4>WTK}H?FhU -znE>eq!FY@5S~Ff!lppn0{+iu1T$tAY0rWa;;6}jJ?PG_jZ+Ae1JnR` -zc`4qHZ28DBfPb#|Z!xzo8ocNlzp5Y`8rTY_=Z$2f(fuHN3ok+{-sDgYYeop@xa)tk -z^a`p`*|?fLRqcD5^N2lCD1OiW`o}(R`4Y?koI3v$xG_&Tk*EdT$Vgv2!#*@jQ-fwM -zk6()*VWvy5PnlGBys61`(@3jfg-d5~R+Z8OaSw>I%PjEdG&C5SjPr>3%_F#ABxX@; -zqF9{~>X1Aoi~}nx1mD{x4qoW^V;sNW=FXa-iF0N!wtUFi_}=fv8nzTb`GgmPV(Sct -zH~YB6PzXj%PdA9A(9{ytc@s+`*)ULlyc7HMF*%vlG=e~Gb1*+MjloV&0YwH>j?KVK -zHSfGB5uZ@a(QI^_tR85C!03_|DSe5-5*l!dLb>VP+$)X!4CiO!GbCakb|&FPs4EM9 -zc&0+%Q+o60RQ@NPAjx@-nhy~j|15bA@3@CxZY{?Fg)pVQljNLQpMJTM!>A~S&ixnY -zqDF?pl8~pkgL>zA=B32*V(EN8{SQ*fR$HYTF)1^_oj`7jQqy}#S_f1={R+y2uczj* -z{>XNDWauD_{d9O;P4yTmf#M)e@c7$TihR$LE7S1e;{5CL)(J@aOz=)TcTIyiW0*|h -zU6))cl^7Y~4=V)Nuh{n)$M8?iTfV_G_|s{IcSjs))J86p_(p@q%L@%JH~)Gc-T>t;z)+Hf`aA%l0Yl90(gTU -zs!lh$jnJXgFlH1jptcjGkNi2f&|$!M(}097JRxW7XY-{HXqJN0i@itmbc4Fl0R4>R -z6dfzSv+G@ttkdPtKORWWNU%M8W{xjyj$q#%@_N-1AU`dlK3Y5}VhShdALP8`--IsC -z3XStLym>PNEh?|i=~kQeKRG4|>OB5vuw9<@8qE*dyNJsat8~yz-@-uZ>T+f#k_R#6 -z=bTf;a+b9Sph`lo`y+IfquUj$Af=D;sJX;p|Y~D_ZYh^0_%u0HMTw^shxBjt35`WUf(q2nP)XJd&k-lCm)Le*? -zt0GdXu|IjA{gM!PI^Io;CevN*f*M!ZBgn2BL%1D7Nb(z|+tQ_Bn{ICUKc22KpsKFv -zf`FuScZZaebeD9hfOI^RG}0v{AkqStl9EsX>29RELAtwOL*@FV2+H( -z#CRK8n5de?YQr${xfOG!`I5!;&%$+pJcCv8oXBfsbmqKa*odJ6ptHb-_}G|cVD(Z87iId -ztrP=~nSW)}X_BZ#?JC7w_<<<;S2Rb^1i>KA|EBpqiFTfI`-GBbE5H<2GZ@5i|;R&wWM}^XR>JoyiW#2M{ca)#r -zG@wxK3y__BgrES7Qh~j%ZSzcpsgYK8`E_#>3NU#1>Ko`szwis!LCw;dQ>nh9lJlG_^CX3c -z#<=tdgsWHDag}cYGX6kGJwW2sd*#U33UBtJgHZQPW3+(Zp?`_Xe4whRQ^ -z!(KKq1^1P_Q`>jy1RygAxug>)uyj(J9AWx+M0gPjUwex_ybXBCuCry2R*+;r;S*9j -z^N5&CNoFt}a0j?_RhW(aOO<>vkDzBOvhss+*wvzX+;3chx -z*oi>}Lf?{`>#pG8OM#6#roDoTYQNh$E6FE`;q%*RRs1wWxS3S>ML^wf%;`zfaD9Uq -zASm^@WMC%lt*VXsvU`<0 -zD~HxjRIbKV<+Zu5%|i|VqO)(Ix73|S*HKY>u&MJB{Nlp9=YU-`sRAu8+A}w*9i^Q) -zvA*YguT7JVWVp53!CHYbo?4fC*AME|hp!)_C&N# -z0e!6#*N3t|XyY5xUr;MOwZp~~7dloAqYEd*CpM7i2?+(hxxm@ah!qWZyMa6o#-75Qc-`fluQBv4;KM9SkSdQi3h{IBaUQXt -zW={q`?dZ?<%=!YNut9|5dpr}J-@AJ|S3(qVXaaFjWYa&Qct-!h`iSx+i15r|q(N)+ -zkERTY=(Tfh|J}0j*d~y1m*y?;lnV;ZzW0!0dMNLsfD0Ls4Nl)2{qgj@erPuQDV3Rh -zgJNmE^2SF7x2yVpHg6oE>1~UqoQnzCW4|L5*%dg-#pOtQ)=~bJ~%OA>;aw< -zx&wKM0NDn6;_DEkdeRWb{m1vBj()&KLdFcc6w4i>^F2jjnTa7b;E6tcZ)Q)>1ie|w -z#kl5c&Z(EYIEa7)E9}jwaz>Tke0;sOo#^h7=egi}&qd6aqI4h$wUieDbr267dturO -znrZR*hpE`iwZ4veeAN$@2>8=fUDm1p`LUMFofX5wKz8fdQ$hz9LSX&0g`|l_WJU+2_y|%7yH#yY-Yl -zVK_%-TvLlyOzXuDQgrud7ly~rk>iqg2siAY2P~+0XfiSF{9X)FN_Q!rZkvEN|M#J! -zDd>&=K;n4Tky>M4Go+;s>R^OHUIqyZmG_{P7{)!>8xW}Q^f)_$grYRx#Z)0DDJJL( -z3~o8vLSPN>dbBHzMxlPuL6yh6hmK31;cu0OB4yjF;#9j)ur; -z1f4!&`yPc+2EA>+Fwahp9Gu_$HlWw;HD1vSdOto -zvXW`*kJzgsOGa>(Xzw0>prnu#{Wy&B-8Iece9Y~&Obsjsc(k!B!lBl2L`9>58C;9M -z;+LKO!X?~#_hd&rOcZoE7~7{QtG05YIrtb}&k9VA{jkEl2tU4YE65l8&cuczu-sYl -zP(9X3Vrv0#^9CwC^H-A4nPy6oA1bthos7v{SCKD@!q?`@_V^P+PP|UO$hWBS5jcXy -zsXn(L|CvgFTCpiZnhq)2P-nsU{U4S;!QH&5l#8BO_0WA8t!~XtsphOJDysIGw$>=}z3F|A{ -z@cXEbi_&+tJ$5ca%osHZHBUwwG_1nHHM^%U;`X7hPWeh2n2{**^bhVRJmu$3R$3qb -zXnA+&%5jy=rJdT;ej-(g+x?kXY+pQTCD2-m+r*f;a|b5%{yKU@YUD{k)AlY3t> -z!mT?&+5yZjtF$%%)ZtwJ;=Mk*2Oj -zcUSlguv%b@#Cuh}vR6>gu0Wm0OVnJwIe>YS9vb3a7PN1dN1{^^KreuWkZ*`{sSHOg -z^{VxaxV5|I=%?3R@=gcA!Ojj3EJ$#JQ=SP!RT^IU;yLPo8DnKIOYe=e(u!w>F*!iPT^RQR0mj*4sH^ -z{WKchIFD?%JL8KWGRtRw3u}VFNgi8|+(fQj^oB(AcA`$3nVFrT!fYs?tRm%>sdQV- -zyhkN?0XsQ%6NoJbx#?_Rvg5Vuw0-R=IbG7SnfrWGvnF+H)DSLe2UAI`pXb&ZpOaS< -zOSZ3tJ&0)MC%Fx$XB(Uhw_kRA#d6 -z7b-n39D`V%!~tTcuGga9cJ!)X@$O<6Totq@f*C>my|DLa;@^V?H(NzrdZw@%j)Z?w -z8j9ZKrklT5b>n%W#o>5swJXc5Up%Yce -zu?@cV3s!_8U({Y6eMW)Pdc=Tl-9P039tQCkREZeLk9dzW7~rxtc}Nhj-$3El6@va# -zqz!^#|DBSd5s|@|I7v<5EEd6L9@3{@;9&9skO&HpwSyqJG -zIoO`Ux(?Be_uXQP!Q+x=h6k!HES9e9#~S^cB$N9|(q6DTWFWq$+`gx@p;Y==*DFzaI`QlN{ -z!v-N`l7~=URlh&`NSB~gzyQ9KCpW2<;1CMUM~t@Eql+8-ln#jQQ)_It`d7EoSdUwk77Z!RjSX6Cf -zJiVi5Fh4sm;GOPFw`$i>I+$B!1KVdQ=R@@ -zt^BHWltv~^p588LKnb6ljXdCFdK3=7`3EFFxF^)x9RP6G1ejq4JcQVy7U_-|fyb$y -zS*cJpfmlU89n~}av8X_Qn+qSU-21MV4Gd`F{bef%kjA0cFf+)ttRL!RK0~fW>Z%y -zc-!1FcMk3|hbZPFb+zHL^pG&1GAJ&{CAJ<<(pgnw?0UAfoJbUQE-%+Nu|H@5jc_-P -z=Hy?UL%4CMkC44+nXOkwnx+C%@{6XLhCgO*<`I4=r;V%qt+}Dv*)@-QW9JL<515b{ -zr+Y~Ac{KF8gz%={9V;($)C#^PQsnw`_TFL#8R)MIQ0H=1V6c@0sq}nnbv8}$B=xyT -zNj6$Ys&;5>10h8Osmr6~A)(OLKYOOCf4gfxeh{5S7Uo{pVYJsyaV4nyISSZ -z-aoW4-cKno56HbACB2f#ojWg;+^s#=c)%JOw?H6-!J*lqY~dQf85!1Z&<)lnr{bz_ -zxlJUZqrd-}z8ExUwvx2llbM+;cYSdUF`kNr-;GH(YHI$_UX%klDl)n7X3{Xp8`87}u@QGIO^4csz -zJYq(Cdj`{$EtE#ekplclB;<)csF2V8V>34FG%3(oz-_Oj99xy%=ZC^C|3TNhAcV(A -zI|Ra|ur-X1=Vj{oH}e>comf?;G6fd(kzwZJ*sC?WP%&}HXOvK7p`I<3-?~P&{!hLF -z)k*W?u$L4CFXsc^nK~05{4T1vJ8e}tfWp8?hzta`g7t|h -zj!q@gv_NM~vcjXfeC$sL5l?6&iTUMf+Orl76k?vAt06q_+pU45!-vfX^yty$yRG7N -z*^2o=tlYR8d@#>Kl73lTq`DoQX6Q*g*IqmIwh`8ltFg!0T3!bxm96bQC@#AO6G`##USeflb~|D*`gelt}Jo0+GD -zm*%hQMBTHgR?kJffd;C$XkHU5MsP)SyXBhGUDaMZi5+b&1i;XJ3p|dC8{}&{df4c+ -zk&#WruaN)Zfigk3ob}bX0VcHn6*E|3uP6gmM}HL*G;JUicjK#$G*~q-_P!h=A#3`2F^nzaK>6bDMa7nxbZ&N6t-#%r6~Xf7pOAYBYWa8&8>x -zGC0eJMAs#0D-fu*NZ@h;7ELA>=WwwOz`79tAnNp$M5=9&kdhITT_?Z -z7cOPuN8^|wC8hRrcXL+cb*JN~Wy%7k#0;1cpUAOkrmzIu8NUlGoziS2AS?95P+H{) -z5;e2Aa149DPUVM13r8C4#V@A9UHJEBLi|KtXT93W{cIIo~2cr;m_ -zm59+!+)m_peopSz$=gu!D2qf~Q&Qc_@$0!jE2`aZ1mDd@SSXzH|>I)|_$PY+~KxRCb2mRR&Q -zPp5-S3VY2+&>Ub5`>}@dk(5z;GJR^? -zM!be0N&&hRuaeuk#Fy|?7&-siiV -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 -z4o)RndE>|kO8PCfPt8)Q`M14^Q8a%JpUVr -z`G6et#xB3<&{~9>qasqY8_gUavKS2Rn8stx+(Dd-v7~Yp@ -zPCtn7Ym51C1SvJ{{{7*HLUDC;aYm0sI+T617|CM@y)J;XhBSaMhfXn%w9M&~qFMM~ -zHGcD*%Cr-hvOq7|>s;eXSugsICAS=ERsyn399)7@I|F5^(rHCwu#J|92_b$9NhQhq -z*ZX(eMNp$cwYn*zOHuiqU{1MM4nabLh8irf{|kKBsJ(8epnA01Thu(~q5Z^pE&RK` -z5(m)ev=lORuHP0d^RK=$sw~XX{LJ;KRK+r&S^$hlS@p-xGryK9PzTssdy472B21D{ -z69oK;-1Gqk0g4mR4PIp`nzYuXW%)~B`Xk4n(PX^W&Y*BmK%mna7;lGL=aV2!y}J5t<3Y)GGeE#nHZCc{ -z-j_&|%AQ032RGVGpuX=AmhlrtYqhC({U38IuFR(nF*CN?BAznX>er8qy-- -zp{?}cXO2;Td{;g3ofdQ>kyDFTT^v_nKabRdnO9+~j*}w|n_`TTOpi8`wIaJW-jxy( -zVt{W3>Fcow+0)m^v=-l4cM2UPjK#jYOmJJA@vcssS_Oq4FcMt@^ABLv<5~xAjonCI -zi^pfbZWjA}eGpRQpPvEUW7FI!c3+b;k-x%RYsaFfq41uByy&l3jz~bC{5ME^EB(~8 -zmRz*cX&X~XeH|+odf&Ll&6P3~I?C*3Tid^=<<9q^ -zyB897R#0C-%(C)ctq4TI-O{{XW*IL=W{SLf&6>@BaVVP*AiE7sab1|*rQAV*@su`B$ -zqxqqce^Tg*5vs1bT_k-ma{5GNHZpk*j_nE=%k{PQ}lntM2ff -zI*-zGEgU|a0m25DB4<&PkBYQnFfdZ41wc~2mnqZnjv0qT*Uwb|JOF;{Qb0iBhzQ~0u)OZI)wyGwQ5(-brVR?1(C?=EWuLo|%gAJWS~ -z$;pG03WD>57aD3?;R?S)N(AY>IygcD<=gE>-JsEDr`8-RL;)*l=PKDAnQTyR3az%eufK|#l)F< -z=g70f8>M*#^}5?+J7YLH3OOkFsY-G+r=B`b&iBmPPcN($62hgK#RFbC^nc>udwJ?P -z>gNBDq{3o;(MUE&vRp1<`*f#AsfVmM#T>xekNWYjyAzihJ>^~l^e5ZXS$!VjsQJw_ -zjrE|cRKnIDsyg*Ouvk<4r2LD*Z16QX{hQ2;n{J;ocF1Az(U$Q_fEAio5&iERUJORo -z;M=>K$OG_6%B|fY#RvHG-+?*?62hTSfQZ&CI}T*-=I`rf;d~@MoxJ!q%g>MXY#&c9 -z$NHzBiHD{&WwjxbyJo&SbkcjR{Y$_@x66Og@xTq_z=H|TV8|LPy!37|dQ!r^PMJg? -z-YaU&5o3FJi!kqVXr>_)R63HnNF>r5OflbCvxoG+V3d$pIt7x -zNnf&!`AioSnW;P1(xoi`pnky^;D<$Gctse(A7^>S=fz6_VlQ<>wZOV -z^rF}SGCcpkfWgkPXzH*_SZVw1qJT(ytw)f&I~2{%X4on$e_tD;3E$c@+-Ff&Lb~`r -z56eQp<^W5uj8$%jz3b{(55|Iy_F -zRBsT^g>+IBbn&YyCAZJNfHcB57d=nS3AF|y)T=iJ)llPJ+7Id7oIHMzO9q>DO%8#; -zAtZfEqrA`cz{@HSelzw5sVGj98cK6>k<$XKYu?GHU($KRy8JhsqPnH-)}+55-5$bR{)RmevnY<N@G9zqya&5SC$$wl?lZn8f&VPujj!xDu6UDthl$G~?Bv -zSUuChVj~p&c`YoIu+fqw;Lb-Bq0D{kKRd$kZuXk-U($W@v!`#vAtoMuv@aX -zkp_>0SE(vu35b0Ez=@O6MQ($F8_ -zy2iqSvw$0rjLrlZPpH8iaBlp2vgOtTFL3%B2_GF-K1!==v)Bb -z2AsrNDQcpNcxArQhV`2Ri-#5l_dYUUYXQ_0$jy1Uwbfd%8m3B<0YC^qN5 -zDp2@!h_&?}HmyO7?aj9A0;ML)T$Pro{7hWpYh~99j -zw``fdf$^u(cS>+$*i5>(vBD)Vwd8XZEuZeN__T$}Xak;6kW<)}*=td?-;p}xoA%jt9iO935|K`?9D#+Y<`NaLXaHi* -z?4Y`%WPUD$mayu2-`j6R$~kN-&?sNf;rtWPEEtdF0D;D9B8SGSw$pky?x+CNFT^Px -z6|j#{i1jwEf%kG{Bw*|zufCC4{dHA|K!8Bx$`$n@tGlD`zl(u|e?Q^n*o`G2;gZ7W -zkr~52B)v7~^z-o#*2&EWIvmW~65IIHD -zM-{td&4bf4AWXXOPsVHad)L_9NPmtU&MB)<5|1jva4(#TVCGZ%7JsfX&Z8zl$A^)1 -zl%N-STHqi<^tg*B#prT-!d)b1x~nc=U2D)Pthy%@wqblD{T1-@T~H>DrM9L}@~<@8 -zUg4uQjIWADiRU_<@JMwCef%jqEFcgFXrvODiIfzs2)&b**kj}cRKmS!Jpp#UD-%@B -zl!R_87S2Jf156$qhjUNEj|2DYjpw!$BaH4Y_5EhhL)`$-F1cbu#p3Gd9HX-eZK#)2qp;1?_hVB?{oFSh5CQ*X_! -zTMag?XVT9OVuZ0w`a6F5mH5gN#gk4!Tfj2#QE&k>;$mP1utHf!#B^*-ERdHc@W?fHJU -zcR+n$HEk`zsBcp7-R}pB1ym}rkuBtq=r>Q<)NgvPeOs|oM_oEBY;SVY2*Q1!EK%BkqgoX1u_j;{n7rsl6;M1CZ-c29O -zLY_x$M%Zt$L+*pU+7^m2BwVks|EXC@F8a(e5T|aXkUS1qd71D$nu|s*GARdHB5H%O$RMA0acE@qfK@8*EIQgEB?(M3PlvIDd)6*V&o%%-H27oHtpEEHfxt-m9)Le;p(p}_7lS+?xi$QK8L1XYJ%z(1E|0VNtP -z+sk+5C=eCR80SQ{hs2;Lt4HC{`sZ)o?{_?!%HI5&Sq&PO4d=TF7k_?r`N}F;T}}TB -zOp!@?%3b)tx#Q1JsD)j7-B566iey~IH&T#NK{wq7-qSbRI%q?01F-2Sl=`(vb&k_L -z@{+46t5Sae{s@?X{KCEeA+5FjqRjeZY{q(88hy*y)aA6y-+YrgC$w-BeE{eiV9Urm -zSDrr2zjF|qhkz3pJU8%$^P+Bg#Af60t1tT&OrN;2IO!*X7>Bi=-O$I=m2lJoO1tqU -z19&cARxby5obG(5EHY{G70!>>a=TiX1eyC_@z2KM3TD)t)Bj3@lfgVVV`h7Us;gu9 -zD&t?|#$z=g(P^?o%(+>xjlE;_uFKkC{u&_sV0ilmeBcjCY7CEzE=+oU!&+c3Uv5jE -z>glV9cPX+hl|Q%_Z*X;kP{l}b3&Q4q0PgR@?Q -zt!9-sM!J5&31yhnS)?&jsUP~am?lEXs72>HbAYu7dhz3V!t{>|@y~I7LLpb!Q~Uq% -z>hgM~T|mD_=5+GHyT~&8OZeG-C(}2ss1UJ4_LHb*^fu*zO8~ZdP@gFE+0Id(rQGe*p=+bzTbFGa -z=zN)4CHeU1snx+}EcYj;uD5o%^svd^m=j5VVeR!{&v3oCK)84IhNfDi!wrrWdbOtX -zyr5kUHB%sr{Wvzd2`e+MGI -zppdZ*k0{m-kN7$LEp3~bFsg@3-e#vg@=>${*D1;KT2~lJVdMM7TZ>@x3?j?Hny9Y$ -zf@o*=?uwm_Rc7Cl=?UDvL7 -zn+H}TfvxPY1~Cb(L~D{6KW5GJpvgRy*$RJJJg$Ptc{%5AwVO&GFVy@iDEyI5nm?D} -zrb;3x!d(>Ewm`0#xA&jCC3J+I^8XeH!FQNdT&VBvZVl~ra;5ihQHe-_)pVv-5Z-MQ -zoVV}W;GR*YjP$)43GCAIFfk9aF4lP~ulOJIC)WPZ3Wqbv{^E(Jb%Cf-U40jx67@)E -zxZ-9IsA8pt-Q!=TJm^bI^^iL6DBNN=D$#a}2@5fz4h)z4&g$PhfzUmbCtERfC*9IvKs -zKL#!w^b!MFZPO3Wd>NgSjue{WS#++Zs3}&CAhRJz(EGw(TUHbut+#ESJh?ALg*7O+ -zj4xY$DqFrVqiT@JT`)GEpk09=1u$F6Fm`A&t$ZzWe4+NXx@-VC`Z`yK(#TZyYIu^if%b9H -zf+_BIFIPs;iItMtgE>~4r{5Lz&qEa;vTt|Pu9+<*>ba3LMl+j^8XH+?)1Vy_)<)GK -zE{1>C8#lZVZulj$T1fl((e2oj|JBZ4?}wt&U^)uSU&{-Im`3=ZaZMl&V9GVGeqdP4 -z7+X8~ZMp|TvXQIB5>8%qF(Z;WAjor|Q}B7YNH&x|R{@#%4+=&tIg%SlSJUfnI2l^^ -zDiEo@wT~X&O=~FQIl0gvBiKqzEpt<-8lPp=!X%VVeub~EBt%N9a-AL(GvxY5m;Kwq -zsb}UZB(2TzB#~D*xVLhf;I^1$PIn^HP|G>xhVGU{qOuoHwEp3*+mj9~PdnWWrcsfW -zPbY+5V}>q2ls*KD3j`fl%UWk%$Q7F5Y)^2b_JsC%xc(_a%#}2&_j83(0b-Sz2_J1* -zZcv#EIO(CPc|3bY=40^^vFVglV6}dlQ4vrW9^g1+23b*!R=K?k>L)>I^*7=Fw#e{I -zG5R_J##GHg#9F4yNiFjpx|ujLR^M`1Z)Pz$0mqr+U?ErhK&_Cz#kcRP88!A -zAF1TN^3ctA&vecXPb~A7+%IW??+U_*Q{cm3Aho+(PtH$?Z`0C3)#&kVU0pLh)LetS -zMo~etX)O;L1wer+W?xP~*HE+oGFETM?G^Yjmf%iM--}d0{`V~7?Smx3a=>K=LF+S= -z#2sbZ&il6xF+xG?{_a{rH!yF+hBy))C53iILxHKJH+Umo=+6n=<^fdmKad9O8^kj0 -zhY)_$QzgM3ZJp1TyFWZmcX<_@$$vfHJp$|mU@d^U8(ar3xYFLA;t31o_7LBAs6HR& -z=ChmyNcaO@&8ppdqKf2I$q?2xJ;X}viq(j8#(UP)h5C!L%YC(3-uvMF*bt$eXWi0j5h!*& -zK5Jc1liuN}5$VQ8jLjD%cp1y6yd->cbaah;#rcOfyntq_7>V!oCx^dYv-12xk(!5N -z2R)qxE0YSQ+6HxSvgUq}}x3kug?4Eg= -zGPGKca0bj66ztx3)^4wN_c{tD>&ZPL3-kigw_mm|@0-@0s`Lr9jiTvvn_|TGoIFPS -zpPT0GOLz2fJL?L}`&gmRg8Jm1jOMs2Rj8?#6`+EbJvo+z!ME5Guz&M*>{rrtAluMqM|%LALieAh-d(KbHz?5 -zXp^n0{y41;s=tMeGg8}~srlIooY0SJu;HnYZ-kbjg>Q~S^8@Z0k -zQNaQx_gCAB%S7jEE0(}FhuS%)%q;6N`Tr@i#NEsU&ObN?fVsdLf(6IjyOj9jT>e>Q -z&iic|t~rsEiHk4Hu#z(8+~LnHb)Pe`4%H}Yr*X`4C$v%~^$c`bkRGK^CH2hfgNW2V -zIkt+ZB5sP)z&nB4EEWnm#yv(}r}O7Wp$+RV7fn -z3^7))R%d*aQM89K-)UwW7IuBTRWh6o1wQqiPFi|F-(j^gayjup2Lkz0i0`_@{y6#x -zT)MOhq;gP-X~};>AtFn3_P^P0eE%(5RAY$oV5 -z(@wkk=*v$tr%44$%v?b-6!c@{&$$ctI|)3YFItKkyqg{&N$m)+({A#}^8C(abvr%6 -zV9uG4%946#57czPmc#p!*+FfmLhKI7ywCLW!jJ6Qr0eN_#x_v>Ga2ph8kV`1Uay<*zSQP?I_XUa-c8ZpugR{6WSkpud#guI26F{9Ac(p -zNL!*1q8uk@S#}o*>B%e9I8-{oj5J8*EcbZLkY9cQ*vul}jnFQ$*QsWNt*%GTum -z6MRH(*KbxmzD{TJFFS`p^tl{eMg5#22VE|$*zG7-OTy^5^>OM2jz&@C{5ReTGct2eU9`MJYGed2I0|ebbKrUWZylQ_P!) -zCdnpBpL2Fa9sJJmOCn;f5O_ZEfVcx9Rt^)qTuE`on``}{ySR~EXT9Bz#HlQufcXH9 -zgzZM|d}UnHFP28>UycyA=u}|Al_Ne9tYjic?5^{4Y_e{qlX^=n?GC0I8Bev{KdOM0 -zK^|kZQs~RwaQ2yYM(l)tkv(u=A}u59f3ha)I>V{DQ`fdUmuWmFoFSYwS3F_q` -zvZhwqsj?6=CIWotgJcv{OzrMe8Ubo;*xu@oZqR5@%#gt@|K&1Hl2iuZs4}p8bI^U( -zxqjJw&BewOr*b^(;QJdCdju;cd9q)%L;LxcV0)l>^zyx2{MDvGdkgF*er1F{+NPyd -zh-OFb0k$@OhdfqGGx^2!GF56oTt&a&FX9x0Y@iUK0;(1g%n-X}YGix1S?ERgbsSn{ -zWDg};|A{^`c!#{{o(S``&nK`xw^b5wEVlw}^=U^Esq#KYNMajIcYS=+W`Sh8!XlpC -zru>0Q$8`l>k!=&`WRTvsy(y&u~)qC>XVSQd; -znQ*5Us6=j%GNL8cAW%jkI7cXKvYc^mQHB_dFciTNs;bukPeYXkd$sg -zL4~EHy9G&U5D-whOO%e4?#^#^*YEGf+a5FOL{w%22WwNH0X9gz{VqC~Vx^lW-62ZtR%Btwi;HmboBy@$y#0 -zF#9KUi2IK;Uk{Ko??R&MMK|w@Ocs7#9pdn;^^GWT+9>!=dEnfja4r`(Uhc#>h#XT6aG}DY#hbT@qGbrl>aI%jxQiL -z0zC?FgfTz1JDx1()=XOQzTEw_ci_EsZwNC^%g?j?wy)C253zz|2fB1y=T=$Nc1AaP -z1Pl~V@EFqh4*(I{FQjhyThlOV4+tz%#dXrcYDVlbwNI>VRA7O&6D2{z$sc~~<`X2E -z$K!Sew~aXpiWpI}cI25;c;#C7-5ckxJ0=b-He4_lf8q|WEl?yu5h(~Qr+_HG{VAZO -zS$l#6%(LWZ$%3AsqbtQg*5N8H;5C^N);wyTY4lG?A6_`%rCL}rzqg3{pwIk5mi%jN -zu)8(}i`1Pi5>K`9sKFDU{$%@x$(}GXRP@mb -zDR<(()l__5>*v-1<60E!$Or9;{9%^*o$nnU1YCMv++;}5f* -zlzrstzT0jgD=ZTWqy^6cR==7&Q|i{&PXUgkI!{T5xmW$GkOUC|q4%Fuw?Aur|Gkey -zOCoD0uZ|IaF#lYn^ZqlF)4xO1vtXm!og*JrQR}^=KL@VwK++*qh&EkEnXM&`=iPUW -z31vWQmisIugym2c?9E~qOX><;ID$|krlO106Zy*|_vmE0!bppLRfEtZEEHTxv?=`j -zy+izw;++487N%cHff6=&*Aqe_&s33|s4ya*=cBSHOuJbTIX*%qxY#%dI+zT-)>YE;oxndP -z#}Rp+qNLaR1M9Ee5e&HrJn9C9)E!eI-VYYH5^eU1Rh1m`CBDeCDNGKh#9M0DYrXxK -z^gZFt>0XlEVyzHoPOKMyVSF*QRqDlfKIq@}FRiy)pQ$^rv{+DN4;`o0;2)=)9l=i@ -zUUm_E(55#{ulp1cB*k*akEP_Z8U_V=ZLe#HZL)t=`scaUpw18^trgJr!dceAS1uM;TSNMrXmWFXm;EizY)K2X -z@h-iBJB)o?yEqWL^!>%hOQ1VjuWE29K-_zU)cL9-bdSLA=Qz^SyAyJnG01k~YN)K) -zo#?HUWm4$aeJOwxvP!{brCWF>N!W6Ufz_I>p;kuOdX?>qtt1v{LnQtm>$u*^B%MJ8 -z;B6E_OIb|Y9$~kcF=vjtrC7zvj2v#kxb+ms2M+ -zto{;qQiF++`3CpAu%JFCn@_5VssEehCbZ>W_I8_zbtK*Gki*3NFErXn^MkeWI1SFd -zUK(Q7r84eytd6tfJ<;GW4xA=N!AersJ33$$4{l;S`X?hv`6N<0F<;ZRU6ZPDwQ6Ox -z%#%)=C7m8;bChC4D9c{ee -zCU^Y>?Ivwlcak`u(4eiKaY8Km&8)BENw9hR6brNCrK;J|C~!4geDvvT0Y{8tHPd`u -z3lN0fM|ET#L;f-1~<$GN7{KP^UVF>CPqqME~&B;}3dycXTz5rK{Rmsdn8Q -zsEmvu{qo)69*@`s+(XF_`7f^8153 -zRv+bMJ~ds9=OgXK20S?yMvLM1gjP1MG!TP0XJS0jOpJ3}+N!CH^|xV|uV~tcj6BKC -z{o;faKi|H^{EveG>IsJxlX?v1M6B{XFov*Bgk)xC8VIxV6NWGT$5HXP5I%9-B^CQk -zfK7|lb}6J>0`K^^>v2VD#qj^P%mFrT`#^!Dz@sNLH%n?af09gU{#tElAGg5P3qd^0 -z%gp?sWTI)0%?Ew`YYZqqSN)*ZZY&=(tf^tG3%E;eUor3r^WrvPZ5d3^=wLys^4{Gj -z%oq|Jw21t_f@l(dpQ)Q^1tr!s<{-o`v(M8P*?BYU&36=!c+*|@d28aSSM5T)6aBRD -zX~{0qw1cf!M>EWx70^VvbaGyY*Q~ZCT@!lyU+E5~DtIsT>|#d6CwKM6MPmI6x+y=dhU-)C%$CbwEF5=l^>c4nFXkR;>9E3*c}~s59;e`K-5f(!tmL*_i?y5;YFI_v9?E+ -z20-81U`kQy>C*(=;T_m}2Waco%bZ}MWx^I4Mnd0HNNsdsaXyE4sXOfCoC0m_H9}HxvKL9VW3J7d{(D6*v9b -zc0|Z;-1~j{Mf&FPBCmy+F8Patll`#0{jG=4PyJ!yUr?a6xjx_>@c|geLbWMNTI3!9 -zn`HyX#9B(5ag`8Bmym8BfxsB{Ou+S|YN{83% -zNeq{0K;g6hmp2L2E;v3?D>{1)TVmj)AHG@a{Q{FK05c%JVfKdr^_Z5``wjp4Tihdb -z_@{0unJq$VrzZQwJqE8P;)4$1b3X;;1<+2t&0gTu$`qxdUT>p9735MA^${B_N|gF% -zTsDY#6Z-z`u)SvNmrX67J4wS~|BnT)RTGKv2xKdb{imQnisx5+$n6OdIl -zDIRD%UmcE>oTtUR9PHQH!+-^kz+2>OJvV>oxb98zWaEJ%O%^NtTe3LPbS)Amx2D%7 -z_({8?-z#L683j9|;UE{x(Y&o18$FvF-I+M@7nyoD{NX_;&>yG@!c8_^2#X0inU(CZ -zr^@k2JzQ2}N&8G$_VB{t_t6LMybnCEuLKyY*|`o~i<7VjCs+B_BwxLU)_Hos=_KDn -z3UDPAbxBU%5COSbB*gz8BDuY^nA*f0CzC8@`c^Ww@4NNC={rkL3`?h5MBbRrtK3OA_6 -zta6d@KY8ZvQ+0BjXD=P}mkR=q>htHYN7K8ZLv^js3qNe&D@Lh*Fb4`1+@UGa;ToKx -z!XQ%sjNTffx-wrJK%@r$TYeJ?y*5A%r`h|{$2jAfrSpd^_0AFtqJmr$bizsIcV4%q&ct0Kn0GCDCiVKVnRq%>ndfu>< -zR*3t55Sxj%A>Jl&=dHW|gf59m%gEEbWzEE|I(=U-WrVxADh!0WdpU35u0Y^ybx_J} -z>+vKVf&Fn2JNPx+KGhIWxlT$ZL_5!R%M4e~#m~DYw -z3pq`87)-jDor%@-M1GEMsSsbwYDBQvYF6iGi{VMNGpns(%;=FwxFzZQBDDOTbGJ8y -zI5a|rSv4``Ezqpw3Ndnh1ZFgO@c`W#UL`tDe%$pd -z9&CZyV;J56EOQJrrXr&D8u~zDXb1BQ -z73Jx<>0TFI2?)Yro-8oXU@l{h0S{ByE)hllotRYF7~Qi!Kg@;H;p-$&xRVyn`Q%6t -z6t?jnX`8KnKIJgLpTJ8^tei-Hi+@o?tM{U#_BzlP_wQK6MA?7Qohw);vZA4D2b4^7^Z(A=(&v7v -ziIEL>Ps?RAv*<+`o5|+-M$T*cydJf>x8LDe)xL5{tVf_X%7>`fcgA*dYB$Nk6%INx -zc}ltzBwTkv_82T-5~!~o%WVBQiuQVE8VR(he3>1uiRIJ99;!%}Fn$~qzDD342(X83 -zugS=$l@p?aKLoV9G)27F=I+WwwBc58(RQObr!SzAM$q~wlJb~OD&>`C;SvJ^TDF|K -zUzA$H8M^C6La6mU>pWR1(%fMEHWG21^hP1~+|D<%WOqXL$EKXF6nHNv9thaJ;G`K? -zeQmX^CZ~c{PEwcCdiXQ57JM0MTd+ -z7w^Bkj~jQ@GLU&gVIR2zZ7<$mcLZ^~nIiR6@2)G&QM51-y9J-hon67yfxBl;Nk*D?Is!Uo7mYeFJb8K%)d39J@*`L|}|LF^bAbTY0L=PwhM -z@4eh#>O3%ilO5a5Y15PG>-ARO6VnndJjQf|E*`EOAmb`kCa%*~BA6qy)AbU1n$W67 -z!xMze_g^Kh;_o@E5_qTe2)TEf?%(y)4ere!qnZB++e^V*DTnDARL%OjG})2$^%tLHjl=L(zFIJRCk -zj)$iD7nWu}LdE>t6d^|T=8^SGE!v|y3UGD7ZqJaZ?b_@@yZNhrSr@XY!?~X2zxqj^ -zAB?5=fzr^+mgMizXRM}$=U6zG3Q6{G!~h+3+te&xb@p6Iw=oUM?>3#`XP4^1Uz66p -z!XhV-@nyUAb-lM6Si@T==lf$-bptBL8fxim8Y%XKR2d-Qdj;3D8WR8sW&I8Cbu -z|3uf2qa?f0D`Pdqs}6A#YoLEwPBG9Qen0pZ``ui{=r}+efD=T}F3&WdP1j6CRn6kM -zxT=uSi!BAg8H``PLS8$ErwCnv?e#~G_^ESsUu*tBm2osI)T>0h%C -zYO_&L=ioR=Xt1L6Cp@Vct>U7pxK`aA+U~E(BLl)g?ptK==$Ct9Nb`la)JC!XT{h&^ -z4ZNA$ZQV6Sf|xIMII`AaK2{q2@7jF;xBw_3Ke#ct-15oG@1?HrnZ>`uZ2yd(lr1|q -z3iyMde!UVbG;_(hRjf{f;p-l{|4q0)%cv0CF(0Tr|95-atQ5Yt024O_HHp=fCf;%7 -zL@@|tQz)MebHUvAa6Axwh%j;Et&s)%T7+inqaXa@8b6R=sA4Poug-G9LoxO{O&gZD -z)LbTrNqPVAuW^59%q>n*0bUsnm~yfJ99286owsu^xPiI0BsjZjn*;P&7<+X@TN} -zbEKFUd_(Lh?e6_@Kw&<#{zFVl;nW@ODKLQK+H|t9>3q>_5Rnb-l4TYfQX?3uvZIj_fU|fP}WRi`3D6d#1>w7il`IXj?6nd*01sw$q`KcdJnA)C`8~1 -z@I)(Lp_=NvvqH(dEcozO%axKs@xyy&l|+Z0VuM#rmF%-;ToRya?-%`(f^}Y@#52~8%)SQmOQ0x&Sl6&V%RUuPNty91W|a0%%XRp -zubpI2wWiZtI3mKIh_bfC#e&r8ea>(=RVz1cBw;PKdDHCm@9_S(^9L(!7jUo$G}!y0 -z=`DG}7muVpX9PnaNpt-vZYtv&?2It9Be5wzn4&I78MNSTn2=Mg@qTJP5jm*=!Q4tP -zfxDqn&kOk@mAc|wti-HKy_OL)x{L>*g8jVu@IgT6%}=_m^rDGs;lWs&b+q<7zN)|C -zLyZ=yeTylMLS{EDbzWdrgBtON;+}q5!f}_vIVRwMvdW|>7WgyhBh7Ku*4^nh%SH^otSyU{gu5)DW|Ay!d1|%K2!B#a7YhWUjm22YyEf*kUKf -zowrFH)zx9VG_E|lm|>ZMePev19N -znL`WVvh~C+?gdX?O8Na~G!LyUgR#Rw7-klrSY_KNBm+No<1LQC{smCDh=wO_o+EG`o4fSJDo6AK%;=b6bhKg6Sp -z_|KVmGmwiy_!z6YJcD3Q2bdMd??p)l_kH+>$C*f~WAQ(KvJLz8lDU=cpm* -zk-4b7?9R#*gKw-Hz09JiIIXNP7y7Mmb;-K^@63n6`dP1-JX^`=opi~x$b&9ytzEyr -zuRwWV0O`O!YP>Ovjm2MlEDuzoK?hz3c@h3%h}(>;QTOj#cxL2W-BQSM8+;?5R@@n3 -ztZwZH%R~XO~#QBo@?OX`>eg#t#}1#c)*$8n+O2u1UHI -z$>-f23n;LUfsT?F&-DxGGi*8c?87|CU3j@W6s3RIuv5E0M;|urukMPE2Hy(b#F~GyrsD3+z{B8~GVg2u~)pOiCgICv=J2_~z&=g)RZEAvd2l4RTmT7(jl}a41sQkUPYzy=QO5<=w{Q9;-qm2yWxdy#wyt|2&xS1XO6?4E>(% -z>DlLW%x}oJ3u*!d#QiiusgA!gNGE`#6w`y$ng6uhIg=tMr&Utu9+@1WoCK*tCC3(v -z*$mU>p7<33&x}cL#mQ`7O;WP|r!lYwy3Z|hN$T}7#j^qx%yv{UZdTSDyI^W#g5}#U -z)i36|=hqz0WTFOl02>>w@2l2`{MKif=Aih%nk6Ne=wm}`ByO|}zR&Ahqf#?xOd+_k3xy|`}6zRy`~Y)(X9VdEJvZ{G|t(tL!`mG5Lh(WyUE -zZTiAl!zCuZ>g@~Zqs6JlIm!kNm=Q^zKmKQOXUUSlU0YnTrrg1#8AJ%yE=em> -zp=!kKVx1Tv1$aM?U+9UQeDfMF=~aIa*)>4q<=~i|-^#2T`=2+%L(Z;=2qX*22TLmN -zVy+2RF)TD?y6pYWt+p^oRv_PO`Mto@fgN-~R*K8}_}O9qQ>T1bW$nP -z)z|IkSj@WlCDOL8_*b0(-R$WnFcuDwl=;jk^OCB&qufXL3vSep^Iw56msQB6hx^vl -zp$#=Qf*$a~Bv2;WUsi>n=LB#9BGwV%KS{NZhI;z&DO_SK$Rc#h|nB*UL&+Dcx>gF8tbJNlk=yb)`@SU -z{m@1#t-~p75l;kNJKSeh=pp0V93I6$QR)URd=|oY?p=n+jZ1lwul|Dl&PCE>y+>H0 -zh?TQUJZg-cnC@F{N?TwH)9zk6eAO8*!yC*xZCVm+aR&U{VS0eaTJAcwf*kOJZU~m -z&vMuEF6eKS?ffT6v!0DK4OmtRoFaCCV{m|agnDhQJSpBrgMYW;!=xLo)aln?aeYdw -zJ}TO(cp$WeEP+Tc1#6850=w -zh)btb5dVZwSyP37ufrhNPMt+vDWYTM=4qbuqu~i~N8mjKM(q!a$6pQDZX%vtzv8RB -z4pn1QAMWSm$zQ_~fkg_Sc7E4~q}AcI67w>>F~zc{R#SuShQq#9BLjAO0Gad*lE|5E -zV=WeMEnMLIp6^6FU>wo9=rckb@=hh1jLZEFl;|UrW>NMNM%17$o+i78C#GOTf~|Oz)s}d(#}z=0H(U334f!@}Ch@ -z?)-iBwjN%ugH#$d&SY`?_D4v?ObMR-Q>*Pm@PN=eWZ&|l9JeazbBpTl%+P!6M30~J -z^CE6JH?J9&p;y&SKSoQ0AjZ@YK%TxvT -zMHaPI_kCTF_vg<4<6VGVVmY`tQ3<#dy2!CR?NYEeGk8a1eG^oY*w{tKuo%jJ -zhQ>XCWE?&|Pe<_xSPmK;U3v-Q7dZjX#sQ{ZY0?-0{MB-UrP4{;Jy?Add}S+DBo5(M -zcA20haEAG$tA;g_UzoU-ny9hcixXtE@$3Hlp)`o_!DOl{%PU;08k11|;rwDNzBz&Y -zd6CXU_Z>Ra2i|_cnBMQ8L+$RA%#3FGnF7JHR{DBG&vA)RxJjyx#ETRis|zsUw_ftR -zG(G` -z+;k$RFYvZ`fI9+NhM_f%49U@#`eV -z(i##oC`vl<{ccW(s$AcS -zri|!0;8VtvNSi{x`=r_dc4ZJh(fB6(ttuYLy{~?Sr~jN--mPS{ppVW#`fsnX6LHL1FdJTW887v;0T%f}I9Qq?+T -z>oNa*XH+_6_rGh^&j%!I5FnbM#Tf5>xH*#}jAzp3 -zCCxxvu36$Le*D_tC(li4;?=)kIId{20dE%Xu+#(xXQDg7Hja5qgs86^-g$&>DV5~c -zCKJ3F;-ty?pIOkLN!u4`1A%MPqM29iGzVtN%$6;NnK?vvkia8$UP&InJz1yk0tAvYr%jx#{>>IwE@xua0&- -zx`g1II9l-ha);g~#m0fs4k)DAe$Z*mVD#5XbL8&MIpzBv&D+c|fvwYDfsfeRJ`k$a -zvCU|5MJvadv^5X3Dy3Tu!ZgMKjxWjn^S0BHIfW;Y5`^+L<0_@^Tr)@SywZv4Xyg;{ -zo9m(|LQY3b!K2d`#9KP?q9AWUf$_Y7uMh^r-CaV}uEY`dvlHFL<)5eWOc|VwGA@~E -z-mnK<4sJkVN~*DR%_$Yp%o3gwdh#!M27IzdY{ahy;%~iqbKcsS!K=(UGk>_hsa%y( -zeRH(A6{=SefY*8>iklp8ayn{`pElJ*HO?Jsbqky@iSh{bLTl4dnzQ%q&VZL%Xl6cF -zOgNfdvC_AG`;_Bu5~0EIeCRI+;>`{nxbyPKm`u-Td|W}iwi?#&x2xgGm}vdJ4VzDf -zOn=p6qxW}VTe$KRlwxP7r6oLB!m>ik;-8#48AJSiBBi&i{cn`~pwcQEtfbL4%c0*g(&iTD7D1pC0nI4= -zMMUisSF|=o$i;Tg)t@YBWGqhx2Gn65l&u_&%w0UDa?*9YHZ`^3xGx3#?V2;{TG*aS -zoW9juQwy1TY$vrtNzfFr-&@IWpQXI9>mi|Qpe7b=6)Rcm)yNb+HpEj9FM`xJHGpSB -zIG>m$Dc9%P!qRF}{FGl6u#{b+%ni-V3chC?<_!^}?=qXcmYE2>4MCxAJBbq(`jJV_ -z_+uPNS38}p<(&H!!R_OhQfzFBrAa22r_-8o~94a -z;>+4jA*=j~r2I;Ln7`eUKvQ5%ms`qG)v~uPjVlvpanraf>5#odPxuJmY1K_uWH>q4 -zW|@liC~7Zg*0vD;Kvvd%ES^v#TARwHi>;x$75SL7~7~EbZBWXb|pU)s$EnqK3H=ybpqi(DwA{1b%CbN-l3euMrV)i?(L?bhfEC -zUV-83p@lNBTpx`h`Cn1%yIZ5B&TP-sr3|(FFvH -zu~m|-mWo+XUK;J9k>R9^U5}lUuw$T1{IDf`2nm!gaEjK>qpySt#YHJXY;TCKg{vY6 -zb`qtfXH*vu`;bF^*Q7%?B~Q{(c0|3+(T -zKh2_BNoQD{+rRJ$42BOtI_^=~WtXhXH5;?vq|V_tiaC<09*+G@yFo*{(bYBQ(VMvE -z6EP`0&W7)r!Cyo$P^HEwwYAfPlzr1Z1G~+wk+@|_^!i7lI!Nb3?k&m)eU1! -z(t1&M*p#G~0&?_XTv1c^u&i2D#{b!;+l8YSC0uEKnIuqdF>~J#wG_@3+^G~bTQSMJC -zxE(77;?p!ZES&N8?W&m}?#+^q;9rk~%r1K}E3zzvA7+&4!U)sAXFB^gPyB^iI$gl- -zU=Njxv+pjv^oe;OZD{p`%$l83%0pR6m13+y=UMFuM8aYcCT9MW)+5Dklc03{bN=_2 -zB!}rVJ~Wm^Wv=v|8T|?#+ts~>op6-zaN!$mJ2-oaxkqAMK^|CpxIwum$#a(3mvwTgURosynrgX|mBalYos -zOysR3MP04RptndDl=kQLI*2s8DkMj18 -z{^JzS*SxDhEF2dk+_21 -zFT%OAZ0md~o>14R(B+lcUGyw?jG2C@I{m6LRN>KF2V0Se-`8EjThJ`X8HFhO<={g@ -zsWq$DloDDOP$@L<-Qrw*NRlxg-=x1%5wL+juBHY@U|*dr3QLBDDK2YEqj;>8YoCC> -z#cyKg7r0Icl$tcQfqQTrY12e@6bIuG=gD@PB@4{I-c>T;RVA@qTf+Be5}VrB`)oJe -z@F!Yc=2F?Ybakbcb$>=eGla`i0)Z7)uGlg3Jvb -z!%uOT5-0?WN5-c_rsV$Od0eeu{CxDUtHGuVVy!W6xg49Jnmq3>1hSu|P`-5Xe)`m% -zjFLNT^)tC9i$;w;7*S`$Vj8wV*$QZ0gBJ%oN>hm*@-0r@mzYd|2K{W* -zO$zu<>{atjsSaKNY-krfgjSC0{pePoWkMH2xVn!7C^HrE530_4+fh*sepOx9OF|Gu&-uZC_HnbzRjPGJsf^{gb)NLyd=Ee8WC{nz42h(8dl_2?=)K@_~zuX_V#aAHGz5}%Y`~+YsaHIgBkm%lBG}AMk}Uj -zy@<*xQ2Z}iOm|S8e)%m^uM$on1j}~QU-cnsTfvFv?$KhIozZ>+8)<02zvt=ZDM1hg -z(RHmp^;}il`;Rn;wvpqGU3_0r -z4QU{0_*B}%5%FNtzxHMtzb`)@0M@22D@U#P1MCT_` -zzPu3A-#yp9HcF#N{Gytbz5hyYL$n2kPfnbTHp}D3r;pE)N~58pLO)AfEgRSxA*q=T -zHF`v={!OJKu5L}WMOiK|f1d^x+7jjbd9cjLFg}yQ;C*-x+r*>u=XWSZ%BhS3vXb5DO1fFL<-RA+++QeRz -zv5VmI1J9ODq|vp9qigqRZjise*?YUPQlsGCjkbVx+eB4I&2qk!ie>~UMiVe*p0_yt -z%<1=@O+%$oi1D4F;$3W3#|Du;nv#vR -z(Y(r4IvYPEJqS51HLuMECubc(I#Js8_(*c=_-xeO6NV$mveGDP_?hkTXS7|&u8+0m#x2J~e~UOh(t_sWnCkj&XSP+RaS@u6Lgkzyq{}W|OTzeH_%-827v*>l>dfKr>5oOI^ -zUr_lRk@Vd}ikh)c`dRwrE@>cENNG6A|D8F{LBjWp`;RM3C1B;qrQr4N5>PRIQK4SZ -z{%n_Nvf?#r`QDWc=K>0#9&Uq&De#uzR%Ki-w#1Z>V8*aS%tGOSae*h+IASATup$M1 -zC$5s3BT8~{Gt4y+X%MfuqUtvuvgcl*TL+t?JNH~9h9U5J+f&-WiP@^3pMy7eH1njb -zb3VT&A5)-N-{m_?guMxUGBy`LmM3Mn9evz0fO`Bdz8Ac;2AK4@(vBmEXbr`3D!_ -z2|dBdd4HP`ik`#ijy%M_Y*6}vk;CTnP04@$pud1-N)^`5o%UfJJWeRyF4J5sK(&0a -ze|5glv-IEd33q-L=oeP;-SyT+pA&f7E=t*XZ?Qtu!*bEzeV)9E8Jcg$9_>DG4IQIe -zl*JQk&j|FbY5WOlw`#yzg*aB^lL2YlZNkpb3B|a5SZ9S0Ekf#?yM#&(@)ozSIFp)N -zcgoP`NAoX4om3X1HqV=V$bA=cmqp-jIWyCKx4n3LaZ#eRFSti&@VStEDN5i{*P&R9 -zOVcNGL>aO;(LVAiJ-+)zL+Xfw-ZQ7d^yj_P^(`ZyBnkrinlcLuarb*)FPBI-8Ll -zXA4or{UAN9tmj(7hR!FLksr=beo^t>cqk<%qc{KoyrY~a+EXPM5tnBazNq2Yuzv@U -zu83eh-e{7?G5Z5&B?C8QRav=5bt?1fzjcUSEICPU15tArb(NvW=2OvUN7>yJd@=mh -zH#7pIsw*XgCy(YVObn=r+|6}>?oYQCsRTdm^?Ji142g;d%;i)o}2Cs -z@@v;@nw*qY7%dspXMJ-T@v^A4v_B5-3HADNQ*B9C{|r6PzjW@1Mii7YhS(yrsuB!U -z`!72&ML!W1Q%|Zz9f4;h#z1Y~LyZoz5YAq2r>7TH3m|jfrOTfdeddBu%=y7@vGN`? -z%1ILrA3;Xz^kXMi$L{&Wq7ld$`0nA0@naLTU`h=n3}3nW&WJs{{)xgnZ+Hh2^yh1< -z`U?l>o8Or9jAseZT}t^}A!_0MQ(otabqQE?)bSjJcw~Xob%8eG*mdIkaB^=rN=M!t -zuj(Tlhnu!@z>69qX$xM5g>1zKuORNS#1a4)yyu_I&Z!gcHEw+ty`RJ~@4L_fBQb-u -z;GqFT-zdpL?{k-4K -zEpH_n{@Ig=suCibikz^PN)hs*DHwHIBm1In@i%ir%zI^Dd%JHp%5D8}jrtk%{Rdo* -zXeBt3zJ6$hd=$a8Q+rRnBrk1zIgt?9|`2QzhONF7=VPw -z$dcw_PaT=Ram11q-g#J=j^oV12ep5U0Musrn=r=5>Xo+O8WT)q15=lJK*t4#4RMkL -z$>_L)@DCr))lc<|aMMC};hzV7&7&uIMi{(=`Smvvmlvj?bNN#lM{o`SHY{jz8=BpB -zP6V9Oe;C9TT{LV}QDev7>+CRJD-C?1XdNtpnVK&JXKNpZsuq6P@}l)$-N&y)5foM{F4+V#CL0oX9j5t|q}JQ>vNt{OsrP8JS7W9W8(u&4(dN#PqtpYUbM8so^#8 -zB_uguou(YDh1V7$kOL(%Q3|N6*}9{3gOJWJ3wZANzjK9X7UE#risBtFN$+7$&;9X+ -zF`xk~{WR -z&2P9COwBaV&NyFvj{m`4-=-{0BCWz_I)#*I%}GYr;de+B9p; -zB!iJG0|N|y@|0K36>9q;0mmAQaH?K*+VHyBYqD(ABo6YdYn)UOcDn*>up;(k&s|(g -zJldz)TL}0&nHQpj1$>nl_F~`9p8UC$dB0i4eEcPS+M~p{-fW~#3D5x9HPtH3o<+4% -zhWe6d+24H}PyRS28~~mE_g9)-yQGhj95eCHpkj~t9)8DxzJh_Pz)V=cR6aoN`oNcR -z3avrKs;z}#uz+|>o0Y9YLkQLE=YK+xne?r+ -z6O+C}AsmQ|3RYCxJ*O+dx)p{&7oUIRWHPCj1Q(yOi5LYC$Qfjm(%GN(%`9!yEII+( -z^}(m43DyiPO85(YdP&X4tG_ot!&jb=uM)So9Nl!H6{khdXJ&PI0EM$ -z*8Ze{K2y}pYEdE46Isi5nvZ>%kS}DmJl|(()_l;~D2b#D&h&{yK^AyLrJTY{8(kCL -zPJOOEA&S%AixVux8zT0^I(49iE=@($_iG+DBsc$#J2Y`;IcJs$w-1d+wAGjYF{N=t -z&jgBw;u~?E4-dX(nDG6GsFPzVW=rknYoat>i4Ol8yS#(@=9H_aRAY~#C+x$=Zx$v` -zsuAzoj33nUM{^;gzZz^n7S64&8T_?az(Q+)@1(u)~(;j0!BpdbA}3Q8QpT -zW-|swH?@c|yfePF3zM@PtWZ$_xK2%fm|DlK8g87X>kH4RXy%vmK~2xb@t)$oAUYzzJy~KDb71^=|923m*=D3=?N624)qchEw -zpb1>4+9@pL5eEz&tqWZ-SB;-DYHTzX%)a_G*03WZl?CJ39)>Pe>O3s?@N)HQJR|*^ -z{HGnn#hKdbB3YvjGMd0E9E?3SR$j4TIL&_ayMQh2~BQK%D+#FTtp+WdQE;b`fd$!xBP2X -zYXKY%bsm>w>ojpO5*?_Rd2Tq~U7)nB(9wo_;Q~K-Ku2~+X?dHRr^-3dZ}#|T?VXjh -zQs!Gs^Y{$R!9HaG)lu%Q+l4@ZkS&ULxu=N9U-&ICi#(RYQOahi0xk4OjEhi(md=N1jum5UIvbgj5gAMch&<`GKZ39(YE?`O^0E?1@rb8)TdLYH{kjpkr} -zPn?tl+{3KqyD?e|ftMi_;@ncHU#3-4fN%~xr`DBTa-jj+o91m&VvxN4d(89%>%Vt) -zW{XbpF^+?HJw4L;hS24uykRTcbh6*Dq%dd@OXptrJ==Y!Xt&t@hjU#8oo)BThC)nN -z=q#YL3XGR!3b-jaLq7W%mDLgUdKEK;p3oUmDWK#k&}-^Tq{2wR^i$o@TRgo=Z|l>O#26#-x%dW -zOOswK?N$Xoc8@}i4iYA$%!=uyNAJA;`5C>`L>@dQN=Tql_TMIEmR^AG%>=}Kc;Aa2 -zW#>m`w%52+tLEahq=)@-e2yj;LNw7OVCLoF@{rM5l0W$PrTLL6-$f3)Kjk}G1*;}8 -zSdAF05`O(pneTudqbg{dQvPDrjKmO}<*^6Vm4 -zd|=Lc=bMIMZf#SFYNqxL19^_c;F22|a)|p1A2@n}P)OOJP=WCCndtij9&VBD6foGw -zkxo)X`Rej~;Fpdl?H~h%UeI -zCV%tm>ou)o%Js^X5@$B6W@zf6s+uN!kJVK@gYV|UypF3U|AwG#zlZC>SN6-d|D1HE -z@@{-Rce@@$UVL1(=UBKQN;rn+w(u4|{>CM-tgy=r%i`&~!HmpsXuDmElOV$OP3-4? -z@@)iOA_E}VQ#6{q_lDA{4XS_K2dY>ywQe7?6r{b-a8~{Qc!-$Il8mI3TgvZvILPOT -zCU)QTL60_Hy|Wtp2NB~BImhedNd)l2@q;9IPB3nLTQ2(*AL_;pI-QWfqkj+WPz>#B -zmY)Ks%cC)A&s?d!@Z!4ssQN48Y3c(TYhlvfVC%D2P=1Wxh{3br9tq)9k`{aKjtpIJ -zr+ot1`Up-?Sn#KcYo>JI#Y<|ICj$t&cYN~fvtR08{2pbq)mYdVMUYr)JK7dUP1y`0 -zXE*hOB(CInflkQas3^0gP6S)#+CzgEiw?hd7-{6<>Q1J-irJh&ElKew|>F&7D=+}$EvZ-tO-(PdxsRPv$3@KKw#4E#MMZ|y_1+F!kArX?}^F#*xS -zL#Tz>0K);kl^C`|L1*DMgg1teYp!8`x)nFcTcVBHP8G|cG`OezB4ux%)h6>hw_cJ^ -z7QS;7B$tVUGg6aNFj8AeH5V1=80aHmHY(uqlyw89w_k^K>Nypw#i>!niTFK2c!-`Z -zvx1gD@(E8aP(4EGByUccbV47Ur1BdI6X;5?Lfb3opZ(U}Ex6na)sr@y-$X1nEGN41 -zucDv-q_I-|6)pdSjBf!${V_TgzOA_bz(LCL4nkhX)m`45BLQW9=wKA9ty+?S+xdK- -z$4UmvVVEyGjzGk;&??vy{fuQtA*t6j>z^2L#v8$+M{ar=-2TiqbX_}`hg)oKX?_(< -zA4_Avm$@+)u5kS~z9&TJa$||Fg)G=D6qaPTvKjB@EVhh&|M7jFo%c9Kt2*O#WQX%@ -zx?x(g=5;9Dk^CZJ=QC~>n5XcBBHFs(b#-7v<{ytk%Xsce-t$`h+oeCVw9lP0Z0!Xz -z-Ze=ibCh5_@cKQ_F|Q1oiD1jtwKX)pP|u0jTd2x@PGqwLZY3&O5!;{ -z{f^Z?Qb^^u53ve?yiH+K!fe}U9)kZm#pl;Orkseicwa-nP38nOUO=0Q-022BNOMtK -z?{XAs-Rt?&n|X&Gucg#b2h^M(rW1|04z0L)vJbg^N;PTUXp6^V^}4|HUlQ}Wpc-c+ -zL`(FbPm^n$=@iwNo4J(v@Tl^?%S(Gfp||`3hVKxq)9dK2>T~8Ol%%@UtyGM`o%q6#7$U>)JmIu2TUqq|`7alW&g7!%|M7H{VO4ca -zTSU4`5a|X9X{5VD1Roj%K}s6wk_IVBk?xWdX^`&j?rsTb_|`ec_q+Ia*n91jGqdKN -zxu#Ct)Z -zbvumkHE*YO4%^4ioh%{~NK?wP=DosfZ{DHP%XUK~zT~%{-Up7qW|F%uF8c+FW^Ddr -z*&w!`3wfn-sB-Y7{OSBSB*FG6W-z+^s`=pOhWX55r&kTZq3NRD#;0G7Gu~%+!+Uuq -zcS#KA5Db9o;~+$Hy$`>)c^00=@X4hplX{ceO1JlJz_%qtYgB@3Y2m$oQsC -z?w#xWl_j$4o4&Cg>`Yg4JArHHx=JQ&_e*>?Ko@SuQSl3lbrFx;%!^6yPYj+Ur`#ra -z7|jvTX~NR%wwe{df2d|ymAlUo5!UKE|K`)V~O2V -zrGsk?@E|4x7yPCFR-SF+6*($)WXfuWB4zr13PktPM_S4)y~{NxJmRw#6M`D$XYyZj -zW*kscLr6~Wqx_FW9hOUohv|Y7^=`2J>!Y}?^_IPPeBEji(Nds-RWwK;Zn7!Gb&M>) -zd!IgwFeduG(($4)HJwZyP}!&*p3oA|E&Z;X#JEZPLGg+Gw4Nm3usMg~%X=MtNM#hT -z-VK%JhVc}--KcU%Q|*Vc=c~hLsmKU4*fn$ -zsCI-m%^*YAC^Q1D6|RLp+5G5b)O&rCwRn?&^hl*ZN0KEL3TxeU0q0E`72P#5&(Is; -zYQ^nrX!T^>?>|gw!VFkSzsU|^{OD$_7O=_#AVu+jdq)s`{PL87#4w2E-K}iIs|>RK -zWGxggT#Y%^B$HOxCr;&ChjRuJ5dI4{KnVEFN|7F2+tMF1q7?rvL7kI#o&!g@2!i4q -zI#pKSHE9LjmRcZRk3(2PwSAu&jfNbFTs9<|lgb_M+9k?XOyE0$0t5V31$z=J5>F>e -z*9*L<8eY%08vKd8HU}|OM0y4&yBsK=NqS5684L+D^}CyB5*TTE+n=A~gL?(=nr}`f -zxI1c{{W7vP`DlZZ>griIY9u01i*q_l)2iwQe5K>l1I3Yz -zPtR`RcPg^f%YHKJTUk2GtQ@?D79>c)zmIpeVdS?^A8jIV1V2r2d@`9)Ym@z?W%BvG -z?Yu{n(S;@mXW_FD`)!gKTAFq#Tq*6Dp}2%D3b&GvdsY-*@KN`nbwJ^ZiuJufRX;TR -z#%S>3z085d-DN04xg5wKh3%F!hFi9OH1g)+2JB|DupqvXCdJ>={k$*PEChESI=9`v -zmb(y|7jf1&bD-vp^$FSN!@`PoC&q@Na-vd@nAx8)ya_L`{fl+@q17i6swWnk1rwxH -z4f8kyoV5=V%V9@3!PN1ui1JDiwYyM*6&^pZMS)jZO~w4NMu$wsJG$Bb2t_1R07MSN -zp*x;iEhi&tvEWAJ{00o3e}1OEWEqmxq`Qa$&6{1lpK!+YL4L-_9k=sb2+|rzrG6MJ -zYOcT@{1l$9Zeg=`Yg(QMdpSwAr;_l3rCKoi`P(wGZw~^Uwl)yo48X43&mG;S@Kx&1 -z;u`NdO93Pf34=$_laKOWVBMn7dSvoJG59+>D%m2Y{d?gp$Dc52!0!n?g!agWDM(VP -z@_xn2^6!P@xrHn`+<6xu;kpB$M1qEQxy+Qrv7M|bNaF>u!SrTvKQf4(uC&E>03KV| -zFnQw(YBGDiaiGRosawqUikdV+pcSBJ7g4lR+^5N0S4>*|D4J|_J!`~+rtL{8M8?N3 -z+NG?`runUNG^lkcpA}D)6~V@*=j5Xoq27Lz|F&Ne>hjU-2<(x+ZqY -z93;`JPCf7rmpNk(->XFtg#ppRqAK=+Y;fB#D0)jW@=swoA-XsiOEhKZIrvPv*C}Lr -zP_!m2jt<9yIp32YL;-%R7FmY%PBY3Q#cii0B0Kb3vFp!diK -zK)kJRBWL1yLdLQhfffQD)e3QBzTqZ+x~G;7fW-lj+IW=4t=+CPuguO3a0#kZCBOg()uLnE8jq(1w@#$sL -z7`$jQv>mO@QEqvGpzVVCE+*Vk2a+xgdbl3edN!rCfpSjhU+Ovj&ok-O;C8Hj@aOSq -zZJ*9!SAXF?b)Yo4t&}*0=3*OC15);ygwx;5L?gYE18Nbg}i`IY__f5TMx -zm7y$syBZdfW6_rZ7{BbQ@ak=GbTu@Zpj~I{kcLH$JVQ^=C1#MC^{V_CqZV{JJszE| -z%To{Tt75Fe&xpRXr7$M!J--tD{qzjR9L;1l(+?=E<%)@qVPwGJ2@YZT!B -zIt7OBM)@ASj-PtPI>y2PqtSNBI-X+BT175p5TByH;EJ=S(#lPi`CnC;MKmE3Yu_gq -zCm9Wc1X^!AKmH>sEPc|LYtuY~SJvLVMxnMk_PU)SfYvqF^WVR1Ch$`0PNR+JexD?Q -z3e#YB&I)Kd7*7A}4o^CLna~yj^{S03WNWn -zo^aMTqiQ}6#{T*15TDpEPtVpoO3?I29S;Kx`sPB2ERWZ~duY`X8xSu!_;;ge*std&MwVWDcC^~Bh0 -z#BbGc_I`=xj|_aPxVd%weI#V#rKFaI}X&OFKX4rAYAoIb5M -zlP|zbZ=2-$n6LeW^b5TAH<lvq2*0VzD}`S@vC_LS`Mk7mOMF1I&9 -zCw>tB_NBSXA015di!Pq>^{VAL8pXKuE$@GIM_>G?{V90AQc=W0S9KB9D+iNtlf9#B -z-gMyeTsp#?o5)y>^IP?&A#&yIZxB@_Mli$($Vi(&Qp>*Su0F}43idsZImG1Ah6{Fb -z*iK5VX8{(FaU!t>aRxi9Z1hEu0B!qYsxe-IT1Xq?8hn?9mc(k)-~VM`F&9;7&W9DbBLrf(Jn8$3aA>`8W!W -zg4JTlpY16=ia}cG8pXk$ABhYmiL@_-0p*!$5uq6T%ga>K`&Zo}1r)r|-cMjLG -zKn^A7fEo2|CqQ5U#&>2(f?Xg_U7uO{Xo(HtT!nP6y~~t~y@)Z*q6Yy>p5zK~L+rFNpr(zKc5QBUm-U%jEY`~GcP;PnRw -z4vYGNjhYbcVH>H_GBu2*$jTOGqGE-TDYF_XNIh3@_)j=ijO7)Ov-%S6X<1x3$fyV5 -z1c>Wu?!ny(*vd*I*u_LmZIAq4CRmXM3oU;B26*^NwnQ-(j{>w5c4NUc^3%;35F%cABUQwU8P*i?O}!6iP?mnAo$eb3LvLGB?~JRA|4 -z$H%hlgEWtWi-x@+b@U*c1(#9PebOO{CUuigK;Hh_;RhJ2g}T@jqfYKp_BW9p)(a>~ -z*e+BQ_}ro4Ly|0CwLaQ{h}b1$FrbCZ^DDOFfP1msM75xrFFyCyLgRRwj{*tafsopH -z*l>i?Q%#Oe-nbL~O` -z6;WPm!Knx#nrk(=w06r;R>NLx~y5?Y)@zo5&B{S=H(5 -z9C3d(M5W#6wi$Pm@VPyqnVg_9^v-(}sg&NN5t4B~-<22-&n2+JLYToMZ9z_~!*?p6ww -zNlyqk(Kp9N4_+VUl(icMzEnjHay&m2rL(-5gk}2`Yk2#T28bQGafpzP`Xz_p0@%!J -z`76f599+Z6$KqBjpVxTZ@|g9XlKlgeoaVjM2^A|%4uI7Rk$B%xaHhIL8{r4_q087H -z+jpPOC~-#=C>Y~k1&?y@mriyQwmvtVMU{yj4@5pqTdqXVMSF@Q$rsT1&hDj@&|d$1 -z9usMiLWw*5Yx9%Hzo0cB7%HhFHnMo`;K+LrCxO`r`Kf_{zQ(6OaZk?OA93DRfch7|R)eQ%?*Bn^M~Y$sP_H{gB)|~lB@&5R$8d|!=TMMFn|`{584H4uxiOJH -zyTX?$+&&{VHFH!oiF&P~XI7X8Lq*WC&cxuUZN@1-+G`2eN`0)k{-=0!hw)Bi3NJVM -zeQip7wqepcEb^Mf$v#7u^76PGbLY69Q#vH}rJMNo^nbk)KLczR*`Y)^7_&k%7M*gq -zuOYF+U<(-T>k0p2@m`*S4EhWFDvcR}G6P;U5BeFn7DH6YM5OS=g1X2oY*JRUWpLD< -zP8vStZ`MntQVUb%E~5eu=}$#$f*UIseyhozYw<^+jzsscNY6U&gcc~PE!g~$0Vy}H -zf@0!T)nY$=vmPL~ey0zcOMP}~!q=IFeM}6V3Y<&eGmx9b&y`~dVzjOKfu)^i_W#B` -zFL_##oBhEpOVLK49q5YtPC^+!J-v{)or -zu|fu=Y<~X-H$vs|Li2%kVr?J-k!8CYl&U$j@22z&bfw`6ygC=Mb3{7!z5Y{xaoP%O -z9$_1O(tu{tMv|Gxv1P+?P;ydj>sg^d{QJ{4tlFzg?fV_8>1MQ6?NNl -z0{p-TnjDI4ljERZQWBh_AryX>_~juXp7uty6d@cGpj5)_FIBG-8;QYvty$?KTY|R3Tg3V|omSL*IDAqb5HQ-;L?he>S@|U2Lm&U+r@)vU5-y^i}GcHCz`4LdS`G1|S;+E;tva -zHZh<())y{#;HNX?=V-4iV^=wHiOhcQ7r;;gAn#N)86i>z|1%nFeAH*P6X|3!rI&?B -zA^%gA#haprj$b|!UB7i$PXDv5@rr`RL8U|M=>@~ro|6TpK{Pf!9Y8X4&4P(sIuPME -zlekX(`8K)Y%W9|XcM4;4*~9-e)Dfr=qi>GJ8Yf8~S*N!s3@)duJ}$0_d}G`AntbTP -zTx8Bdn{X>zL{cTJM01RtVn8l}>t_u64j97TWc8rBK+=!Te)cz{pz#*xFHWo9LG-Xi9r%un~5gk)H;no -zNhH`&uDR}2?FLWlB4Bc$cFIb8Q+W<}<2jMq6`pxI?U-;XSWVIf-hhDfe5jz;KibaF -zNpoC6a#r#ywcR;_c;Y}OFB!L=rxrRxD!l+EgZE-zc()SL3jbm-JmV(AFsM*0=&71C -zOwfmOM!AdKNKMIy0SgUu@}4;9kpQL+QC#3PdnY9+y!f->9Jn08O8!UTtlj4nqR~L{ -z7D?|xGP|;ESd=XW9_P50lyMBWDuLh>d8p`M5~R+RpIQ^3c)jw@$}KiDQwUMt7d!r%(>kRRA}S&l}p% -zx7!*g?19jRX3gcpXK27i9{}MZ4u*LnBqAa_@K^uL8p)rJ#jAPW%53OW7>>G}xszaT -zxCkdo9xH2l5!vn9k)@UVMWD`!`S6EldmEHlg_=^%T=I{iX;+frnFm%prYdFZ5Cupx -zS1%kL?_fR1NvCANqZ)+6poY^WHWX6l-V4Iw#ro~UxUA9j30k8WSQ|7&-~Mv-gyq^@ -z^-X7aflogN-K)7{@=pyo@{6OX+d2s+Ug)n@v84t4=;w;h`3SIMd52*8lig -zowNg;@Zq{mSp_ms;8~VV1^OpJ4ub=m>ZB{RkOMjIr<1l+Vu8sQ0ggRvqne*Kq#p$##8!6Vf+jek+^Jowwk -zgq(R%%E8G3_R0GD)O%)(Fd$G`=-`$qSns+H{r0vZRH7m -z13Tb8_wlMO+UFnLn7m7kwIH1nglm@64lCEDbZHbRwh&!6YF?Ib&1BtVN(?$$YUe`X -zgiN`7-?|yO-IwCpe@Po32XDF@-vvC|cRZn=$@&*G2h3O3|Adqux8&0h1oT9^+9Dlnx1tCn4=T>5-;PnW`#ne7S}119~t&?`s_oa&I-i)k|=@~I){ -zbx*ta<6Ww|)FxrpYkd{5XG#C0ncw~OXy)Mjei7q}4J7&#gq*yPr87N}%J9ocgAj#+ -z(vC@prVVtozdhZ~1Laumen3U#nU(e9t)c(r+7&aUG{uG(IG{@9fB8@cfds%E&+3t{ -zWI^p`p`-WAQqO%d;S@aDwjpo`M3wACe&H0V`Wdu!_n9Ua;Wwaxo_A2S)SbiAyaB)n -zcv(Tr9l4H4tObsXAT=67QVCIK%2sxry_yi_*zYJVqww2dt+2pcElKETD{`YFpx>jWg&0V@Hy -zH(2ePe2|{_U5U23gp;eP3qDEu(pXmB@?l(SEfUAuntM_*Jz#VtoG6A3kW|r+s7C4X -zze^-{zaqkMiY}M=vlR7aWPp?u_^B!srB)P#_E@w!=&3OQACs@w&&R9bF5D%jaYu?;|;1*|)qTM{N^Cy7*{397=PFQQa|(1-yCMR{G2e -z#iKp31rPwOswk -zniysleLjWrT=%WR5n$iOnYI>x`%fJ?(>bMM+T(lbtu?E{UA=o@DR8+18H}a#vhaHX -zTzRS<{AYetrXqz!5Vi?DV5%R2xkKi9M0WkJWHwir`Izr*rM{y+WI%;h;SfmGU>38# -z5=b6#RyP3joj|;?;Rv&#l$TN5t_j@obMCjVYA~xZj0q@;;gMZH3tM}GAljr=P>wJ* -zSPrx212Yu^52w8h;SrWt;zx^32vPx&z)cG$^OW8D=93jrB?zu$XIreDu1gYi*G;jQ -zI|Uxf{1s_pe6ac$z`>GdvrANEe&?L%Flu9bPn7;dIx@1W=t3zCQqB_yf-20VpLanq -z)H8XD8+I&XF#@5O*z(A25SC -zi+m$|2BiXUo%*jt4Qeb4p=A+(PqBe{A}SbfdNdyJCwHTg2@||mxMK)(ZJ!RP|IrN& -zB@pfUj($V?rLz_1#$4WybhL@>h}C-5wsYg%w1Fma5LM^&7SAAzXu!&(FR^L7ehaf4 -zI?83q$fDjHg$4x?9@f@Wk}OG4zJSmcLRx&nCqTbo&UyIXvTu8|j{ROUBFTY}A0ul) -zd6L;8>=AjcBR>lnJNeYL8FC1W1UZ(h2_cdpMts$}ZKwa=IZ3%X^{}4SK4aF}babP> -zc6={>>$|377kS;^1n!Uyf+2EcxaM`!DGO3XUzy+aEDn0N{At@2FT(VO2CM(solHZm -z9LAlcB2#2lX`YB>2`lyn&&RJ7RF^;A$lYcs>ItNp6WGCuhsVM6w%lpngdD!?j+<6AV -zdmPjUiqE%6o6X>XW8TFE1qzkk_Sb7%JBg$W#eWrNhx8ezd0Gvioxc^X*Olf((Gu&O -zzY=hUFpdIwjYq7a^fw`Ip4&g#xoU%Cb}WmvEOOvcJD8?wK8lm+B&GH>$G&6Dv5zi@ -z6ukM;iPrkp;x^ymL2*o=WxuWM`%CcTH)5>F6ilL^cqD%WNl_4^Q6s?m_E7kPmqTJI -zRHGcezhsN<&Lj228Gx1y0K4#_2k{Gx5KBLCI9!_1*()c$S#wrrczoBS1q*qH6-}C? -zLNSd;hgsC6#w)pu&N%vbJt -zP0#rg=@weEKwjAIF2H_VhJyY;gDS;%>bq~m2ZB+_KhPZ{5}ORJOM~MLY|RAq#xmMT -znv>+VjlB1|W6HE2dM}p#d0AZO*18WE=d|t8{hDPObP}iS -zSyTh4Ki~(0>x&r^CW_ts)Ps1{65&F$h_zQg&GH;EphhU*D#i$x7j4gzor&7CZpt5x -zQgz99uVb5-hDP2rJQ)NEK_tfih=}pav5=gqlP-w?YKqp0VAo{v67-SEJsIAFU75O9 -zNJ%*H@3rVeFeMV&B50GK`2^sm6WJI0g2F!~7@xLHc~SD)FlK}6?Y3E@V6XG*(sEu% -zTpzgMq(Ai?40|;qbU>pbCW_uy8FM59xaV(obvb3Lpbp-e2DfJfNorkF6(ln@mkh_p -zYCNVMLyJu??=K{zW>5KbG*i;e+VcHgqB2?8GC9{xv=6${c_s7_pz&4fkyA$FYWv=( -zi5rx%2J~)%RBk9i=qf?$md~(|46aaMDO#}(Gn#}MZtRI`YcuipUEnPSV<-|-vp_j< -z`+aVH_bu}S%&V&;R^BodHb&2W3+iTaB1v+ZCs?BD7WxSOs{U|Jb85Qy+QkOCP4x+% -zHdt4?PlR2lUJT?yB}KLc^A;a<{L407)(GQc(&HRQ^^~fleH&m!2Gby=7=^dR&P*p;y0L71VbSEPu^m6^eRc -zs~Ew#E0gdALzA(bDsZXZoBdxBT5$Xj&HKw{ZsP3DXFPc1cn=KPsTODJ81yp$$N_g5 -zqs_#^BTbR2t-~`+)(?b|4Dl$`2Vpd?QmG2O<^}>1XqdSQG4tfJBl=Q!Q5znw@pRqZpVNuZ8T0C0Sth!EJbbzmQ4 -zEyqr~?7AJLU0mk{t(m8>0C`LUjOFgEO9%aMl!N% -zRF(I}fwtg9ax7+8+)bki?ti~x(hZIivy~W*@^pEZ{^FxlRIIE(PsMpa)pWOSx -zNC68b~av` -zX5!zzQK9Ee+js2ncT!?gKQ_R@e=xWol6*A!vZ;akF|zffua|Q!%ZqpR8466UUkizD -zd$ozw>kU!*R`|N;icM_+EtO?_&t33dGK0L=QZwz9b82Ftm+iPG5_%~zoT#aZ$gUCih>>2{Q`hG9dYDm=7~HS^Jl>R3 -z&&IUAY~jC+k70HM(Qjz+J8xg;92hm4+^;{q3K| -z830I>>5xukbObbEHt{=7hb59bSxfqEDmJq$61<>NMEs89o|xTymtIlkT@ce7({b_( -z79ZsFkkmRkv}=>Jo#a{}B}@m@3J;Dqh%^fF!))t``W?s5Xhx*k83i{utB7?QAQf4_ -z<-|&=WPI~8s=(WNjQqB>R&kBaPyFcX?YQ5Oe*;mdLxO!i$vN1tM)rwBfE!*k$*5jX0pihvLFN*SpnZdOsF75Qec3t~tNAZN82(A3TO$ -zg8|=kMS<8)xjvV3Mh)Y$Y>s!FUWt^TN+1XhfE*d~7FnTXO7367kIv`9V#;zN$$rdx -ze*EMY1ly)B!~z6a*2j^9D{?Vhk80u>iKtimPknjH5fYT#4oqxHNB%tfA1iS_ohyM*ygRMsL)py`gE0Wcq$}y3?%(zN;Y^9 -zw|d1qYbXOv6H+x8vOx$F&yQxdRL7hfTVok>yznF}iY4)*g3 -zwuV7usq|=cc&$Lgpmc`L5{=>%fVEjvAtPNU(3FPF@bhtb-D&Eqd -z53P%GKWsZVURZ_>#=q_CsIIs)TS?uUAzYlZvuwdM0XEATVig(~KavzYcZD7;U4@9e -zlj-^!0la>jK71Di0?xapxUDmUA0M4FVi<3jSR4YfNVCh?_2x9OH!JQ$p{7&?IO?JU -z!K@8Ep&+dWqIw7h>Q$ouOeL8?Ae0L}is`eRHzs@Ls{`hbZIlHnEZd!nZmO*ZE+Mp& -zpvNYAmZ4Ycv7-Z7!gb0K4H}TNB(V6F`zu?=6MbXmOhu<5dA-i+D&?*)N`VG*ouQOT -zHDaGn-G1_q3s^TQewUJCfVaTig;(pVf--x!c;7}le>OD#7UIJgqG{TC!*E*H856sk -z>(vQKKL;lPc{1SqG+Wa&?Ru@?3pe4@%Dy=X&|`3Uc!MTQ%ovkqZ$MhA%W~e^ -zCm}*I%p62-yQdVo+?d`)WGjYHbG3MQ1byDnaW-@vgq4#AbP+hjER3bI_e#_#Uvs`J -z1f8DbB2a^g1s~DpDf?^oPESpitpeR>m2WSq>Ak{q7pc+cfj#b-j<6bzqrp#O@lDL` -zxwW;QOQ*+H%xwa&V2}nTQcnq)iTu%>xwrhVRH85CKGfB6d?eH><{7Cep1Vdzt#&UW -zsOu&CVC`-?B|+BaTkGKwvSu|qRX -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 -z$%gx55uShVpjY|OYFji2Vq4S~@}!Dotb -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 -zWOin}>vE{yZTki3ai)=Cj77KX{ -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 -z_Q@yP{`!2CpOHtR4wbaM -z-rT=vf)PuLprnNf(J-rNV0iL_QNI#h)Ub7RZ&(uRac( -z7XG6T^xGfJR7>GtU6xaY#tgYQ9NH7R9o2P&EVQf+<0Xy#OH6Q8aH9z@!7DPS3ESKyZ&Vr&w9BOX -zwW1_K(T{pn@~uJqxAO(rDjS&x8zl!e*8tG$Zp+vH%y}{Xbl!H4PXbY&l4!xKVW{A(44J9hgS^+t9-2X|6HCz8L07 -z2?!}#KuA%%9rQ^|Jxh~{w@>0EKd*#EiziIw(D11jdalQKKe(U4ekAZhw63oQxzDws -z0^$L3g9gVUD7vPie5{pFKY3#`csU$yz2tW7AQExXKs6X6!U!();(?;$&Vs*q_UT!F -z#~HGCaaC&(KekycG}jc>pP4{=(LfH;ZT_?E-B<9qS;3+Bi2jbHU?{u5Z}}TBnn|c$ -z`KPd|+EgY$cNDw0Y<8@qzlx0PJXPVU^!NdAbYG^hQ^nAf{6*hB337^zsZQxtEm`%w -zDmX?JqNEehmJJDcQH%`fw&zw$WlD;=Ma?N`pz!Eo@ucnc`a|&GbA?Pg -z)a-|t9rJ-uBVztHbC}$~rTdM>Fp}eEIjl11<^+zqR+!gblGbP3{x1X7PLcN=c9G>C -z54(xM+|w%Z1+q?5u|ro%s)o<7{&rc*^ZO}%xv@ZX+1t!Qg0)~0Bq9ouOZ>Ns<6MyN -zA7T6@cW7I;<)3i3$zg}6R6EL=2Bo+AoDbU<+4X3StU&!)3iZ+4mdqPI0hl(dgg8)F -zB@S+FzWN$z+pR(O{2iN>m3)d06+z$mhyvsvIdClzDYw2DiO~Y^ -z017eaGuGX>&<`iMPGxb(H~j@d2|9>4d=KA69 -zq4`%$HdG$Xah9U@VybynZu`@4IPeSK^F%r9Hi>1MV*hqeQ1iu|hco;lkmnJTg9sTb -zd$xKw$$Fw&H>_wj$vkM>s8~9y))I%i=Il9iW#Lo{gf08Sl1qj;3-Mk@>a_hckaht4 -zl32_T7An*i2&G;YZpfKGG^t4+a-*#1kExtDgFoSg$OY!hjH8AWNo!f;^x`b~(%f*5 -z?Lk|nf~cZ!WF&$K?NZjA2Za{J8a`2iG!mkuLEmU!6s_j-0BO&vU+8P(3pcN2NJZI& -z>ov{))1ll_%e!$K7UGc6>JaLJ5I~rkz-ks7nw5z;!+S3Ei7G4% -z>HtDn11n`?mXEdPV~<4xl4t1ov6LSj+M^hZJC2rDZr5l&5C>R#?=`F?qmCFLF8*PK -zdkQB1az5<3L;3R3A6avLj8J05@Jyj1x|Q}07iiB0%JLy!wn0N?vrcX4sZeAyJ+F{X -zS4-Zpl{ev|jhC?F&ZWZbIuawdP8p*^-+&{=HF+~oB6}f*j;$f=W%Sa%fBe^j2jq|! -z-`ejipMp`t&FdQ@tb=cwoF36jX|OF_@f>zg`!$XB7x*s~lf~S0G^jCdPQSx8sQ!Av -zU<>k7Msc=^5`98%I-TVS6!965l?6|;hVP+ -z?O&!cdP`!NRl<_6pTTsV=%~uOE06kSwJ5&+<$M^F(;hE*h1MHEfz_Jdt)0)u;G_gM -z^8zIJHx*~jyH20zW!W#l_Q_CaUNCLpxQ$D=p<*YqBKjM?Rh~yhEmDGUF$bD-_MeuN -zVoF}aHk*vG#KseHFEjqsgo-{Nc-Ez;EiI;IZt8EPQ&X-6(;t3(cCZ0oe2(zSwMd#U -z0X6W%NRshq->^zGN8WEN#m$3-kwpzM{colF|D=2Cjjn!0^J28G|4rOB8E4i-=cr4| -zx^@*&z$7r7e%~G@?BbMcXhIYx;3VxX=Wgp@YP@i-@*USdAnYl -zc*jkxLD~30jVQJXwk%F4ccrD8HHaDPQO*WjDDmFA_hs+^$3{ -zAl>m@Y@@bp7CyKA1Fg{|!#z)n*mUfnU#UI0j99=D8?pQ%)zmto@Ecw`b9E9HUw|=Z -z7WBbmwtTt7Lme3D|FiCuh+*?N9v)PG(8KVS>d`-wzLUw!OMj0XI*{Cxvs*`9P6L%@ -z^!EV<4X`nO##3B69KO-ry3;AsTUCuz`H9Y&ff!~&uKbaMWWwX++jHvug0!h&jn5z%k>3m(ccO)0D?;fYGh -z>xVa#Vj>L}p4RBG`0ym&FeqJz{qt!$I}_I<$VQrl*&0>Mp0#ICJz!5-Uxqtp$!57ex$c(z)GmVTKrn<{grs<}+0#b<$#ZZk7+4n#HDjSd$=v0_Hu5ug|>E -zNEcrQ+A{+Zy!XdHCk*`-Y-I0`(>7B~lvR43_NVDnS3*M5SPPYel$KKxS}Cmw>&xKzdScB!C=vd6i7hKu -z6!VG%#irj};r2b`i{O|upVoC5q@?ng95dI$#i0D_&8U~d=FiSeG_uu0X3C;DQQ>aN -zU}90iG0GBD!l0tfw8qI$GAE`;e(ErWphLA0wZ%FoapPNelAmYdh;(;|-8lLaHWuFu -zZ0ZKWASx!A!_wq-wW(#>TIDGx#*dRPPP@pk<7JMr6P>mx`B_m6Us%8>38*l -zo>TvXRpw(Lgezh?UmF}C0jxy0;v-#5 -z%Aa7q5#B8H>`#2vTjFVji=U{wZJ@7Mq0g0zhJGaaP~bx5hU~i|S(8dgh4mNq*Hq3LHri}hE=Vo_ZG2Z0qY>)tflEen#=wl8p-qkOs;lmP21Nj_d}eq -zp(Qh#qy4LfRB@6DXVDv*f?YVKg7NdKxNk)<<=Odngid7L^rB}Q7b+onY29CXa7>;DN%i?JW)^BSxp1UyU>I+C+>$h^>ocFBMX6-@CkDAU+_(R?fM?Eeon -z%X0A3S7iTZmnfZQT5XROBH3P-e8PoN*Y;BBZLCWaaiR%ZJ5ng?im& -zjo5+A>{-1^UlIgjs5TBfbHjyETxyHz{DI=lf*(%5cPunm57}>Nb7-mDA8ztRAIT}S -ze{nV!eIS7?3;(DJyGFCfP68Ur$Ro(a4AD)VxhjMiR+U&0#=t*jOjL7_(fX*m1B{L% -z8LoKhlo@t?(n&Fi0!e#4m_8u#;l -zV7eBM#C;CaPeRGIG>U~yOz$#8ohQlD&Vcm5CY^pZMnt?8E9GiRTFbC46A?5JAJk9U -zQD&BQ9p`;5zWczx4iHt*=Q&S}Dy6<))nNT|>iy!&b%CA(=x*@SMk*)Ak!nU|5ZN93 -z5yC((4QZI>9Z5X?!O9Fp0my{~nFr9RJlm;4<^NUDLygeoxh{p3f_-t}8nayYWVI2$ -zq;z>0F!AyTbeX4G&bqa!SyY~Uw7v*7v(AB`?(g>nGqOw260S<2tD=U`TEqU6N>1t* -z?yL?@fLSUx-T9h3O~--$Zq)U|Lz=E09eYkJR6U(?nlz$LsG^t46g-Q2bYgxh1tkQY -zkl|jAGh6Xxs~8Ebjzsceeie6DqfX?#gNKVjpq{l9M?x&UaAkuQpbiICgIlnY6#X%C -zDm<|6u@N{+2VX<`8-t;CQfdEiXIo)(*)*)1dgtkL@pY13&!~DmI;Y!@Fql -zLdW`aC5*w8HXusUmb>?*(BHC^wnJD^sZ7VS!lGCFeW6H-y!SoXi>bMuX+5>x -z2XO#oFg(Tz?;#@Flbum*48-5_ZWcGG*E9)uSlrbz*2XwFWeX}X57LsoqkTS)haYT5 -zJ@!G}V~IuRs3W9)qm-ywMg7Pc>x$3mE=pKmy8B_q&z{R6k#CNe92O{C=B?Yo&K%g;@HgcFZd!-xE2T=@)n|8uZP=l?a_UcoU=!#Se -z45E`L+?Bc&v@}*-p;6d|S>Bqga}CKLzPn>iPXN#n^yHt?Vj+0zjhrhQcM&F-aMd+l -zJUQ^eceb)r@x_b=_$zo5exF;`AQ#bC0M*FDzRwXLTNx*kKFF4pyE9VEcguw2KRj*D -zNZm_ejk6c)tf!QEGjePXbfE`tX-Du*Fxsb<>h3h_eE1?|(v9#z6WqWnL^%tuy-Ak# -zvK?9!n%{8~8=+C@D1Y$OiZh{nJ~#r&B>pT5C^jSG8;5i1CC_61HZ971_A`9 -z%$WT1>2%1e=EsvmpYyBq5xy^l2BG)yol>u+GQobYCfX*VQ_Y&IiugAgHDRS>-`@W= -zl;IK4-{H}*@w$qC;#NdS&cQW$Jz#Wpu(i(eqxbazwB@)wLhIHn-qK24boXs2zTWr> -zv_&}7#I>hkTr%c-oIXv?`L3YRDR`e=1k#X!GV|>2UlCW1OOh9S+AS%;-JRi=2bg^z -zJd+Sg=3vUS87t5g0US8Rk3vLTJUgaX>MMa2AuG5kf5AV4FeJS%XnC3}ld{tJ(JWdY -z+>>b$HF2O7)?lWb#s&OXbb9Zfjy}#62s>FfIF#GkaA7m!Gn+)<48eH>>-mip{#V>( -zV8`{GkM?s+z7eGcv$rduU&-^GxqS`IP0*j85s2-!HwYs}R!w1nXlXW>(bh;dFU!_d22%jfqU*h$HibAi4 -zUtu(S3`N&lVR+0hVw)Ct{2zB9JE2avF$KJ94yW$nzb6d1G+HOS5pG?;qxkDcp^=lf -zRcO4@0Q@<4ZRT)&rtQH#Le0aU?0xJv@0_vCUnTUYXae -z>KPeBOvmTl6gszP}v88D9l% -zTy|_D0J%`@70s3F5R|&e2>=Io(w`6$UK%Gn>#w+|;@s$|*uKf$vP}9p?0ZLUQ!c5M -zkhgEL24#L?hh|7v3@k-mJ;(e4b*7at73-#RN8lA8()Bp96S()-v78?SPgF7^;8E+Z -z_SR`66{qlIQL@B>kA!sdkuR=*XJk1J4GLm)k(rg;BjwEYrikLNvm2RiUT>v74tXX9 -zcJms#WBQrQ8u}YvO#3>PV3RDbp>^zyu~nJznwM`K3!>q*h7!}ac@o2YAq4VgpEpJi -z+a>QP`(A<=#hveC@sgK#x5!LLFSn^g-UUnR=!N{>|}YowB%Q3#>8{-EBS!DvBOom?VZ&y!xxfQ -zV;>WD5pp9*A&S2=Mw`q>&zFT^84p?TkS;Dl$RS#idt2~@CmA-Edr!01P_u{!o#)Jh -zE-CpMd^kJ`&&rLX#j@37QrI^2oVqguaPvS7MV!+e4ljpfF(|g4|LB$GJ<71s9~d@& -zq0i5QFvxvz%0pWPL*U{**Y!=B=7>vtROx1oay8bytYf!;R`eJAnpJJ5-~9Nyy^*4F -z(ES^c*?)Urs{qm+0QL2+5+b_Q$0xzjgS|~xIvz3?cO!f=uM~>aR!*3|N%FQJMs185 -z0~Zq6IaEO^9C9r&yQcZiM5=Q!)X+&b#Od}3R?E?;!iPUn4&J@Ed9dvamlw1|O#5+3 -zUxcNkU$arKp$szl>3)%jvg2_eVcG7vLx7!dd#R+1Pi<^{6Nz7wpBf*ZK6yXF8R9Lcj&%76chd9q;x~E;m1ya_v>@TxnAn><5(t_+U6N -z?y)|n2ihD&T>!G5hbcu%(5@4+vgj$pP8f@^5IY4r8EnRnluLU$DhR@vSQiz@Gk>mNRWAUF3uao^&#JlQy3d*$zn -zI5twF%>uZOD5coj+}QHT|SlM_;l&L_$a7)Rzsj0RXR)cHWAKHC_7Q4 -zZ2c|5$;8sM6#Q%N3fzd9hTKjmvGxMKzduQUjeGwbtsML(@Hp(c+RdKg-qj0lT8J#k -zeOdO#{DE*HIlnFUlS7-HHe`-&r#hN?jB_8RLo1@w+)bwoX(cQ}Hr=K!+u;yV-V%`A -zhQhV`EY<@~JOsHtBEzm5IYOBH!wW!gI|8f!=y~$SZUQov2rc?w{Su>j)zxJ1W{|)J -z!Tw;9iKK_W-+{I-u%xALMX1kGTk-l1A!{2poglr&yRkq`T`UDiYZU1h_+xJ(pIXAQ -zr@h{Lu%-6JrmMp@;M5xaX3!B`1aEQ01HD`mY6D+sXj?RhT5hOqZL9K(4E-=|9vyn2 -zk_wZ8+-@_MALnZGv*R^6I(~`^*rNuN|D -z)k-(@6Nrl->TM30FYqAqK+>*y&W))5O$%A)y=n|I`uY1^17cm!hZzhYrzez%ax3<| -zTP(fP1>SdiJeR*Z9FjRrA2v%mC2Bj6j4m@ingH=MjR$Uk+A7w9@_d=F4<{TZx22D2 -z-UE~}3w~*!UVmx!AiEfCS+(Gta-08#{O~h5_QeKnzsGJ2(I}!)`afkDpMb?FR3*0% -zjdp&;e>CpH6$t8XPsb{)0|c8vmGl%11*+u4-c<{1w^t{>-13!ZA4OhxZ-C2}hLnw)ym4yg$8x3nxQyL*D -zTu67$Ay+d*qM)lZP{*CEGB%hFLb}W%?r3gZoY*zA{rQ*u -zchsxdadQn>P)n_bAfrE1f-!&E<&{3d?Eq+VQ{)S!c8?s(jak~X^#kR9F}HJE -zHrd}NW)k}?{pmShNJYPW&@^@`b!Yz(mLHb`bNebY) -zy^C*~auR+9pT6R=I1BTD6eXH)JdfKno%u`$`8#hAg0M2$xS$3j58h=W#O|&jXDgqd -z0+rhS#M4d~(VYZWFZ!GkITRE^17!M3(eO=ptdUdRhxtS~<)?|K6kq^N!+~(ETv33TtGE=Anx;ckR@45ku0`wq~gaG4NlIXmR(>&TScbO7b -zkS(GMfDzdJL|ea-XL_^$$>`7?O4HS5cW -zzy*;39jgvq_V#&C2&k+|Lzd&k#Q4bA}-N~N@}2>N);Q-P%W$5@HniHQh%RUeR#A0 -zTzq#m>r?L$-qgk#J)YW5see)T#%_l7SWq#l9Vd4){Ff945yM>FAlgonJI^i6pm$~T -zceWg<9y+(4+Mbp7Ai0=`UdZuwIZ`nWla?|r94~g}D--3-!A9hT7WtJ?uA@$+A1+00 -z4-4LNthMoDPcqlP*o7M&@%WOqvQ4_oY{o2P8jl+f9%yq?+;b4tu^dJP*v2w2dKK#q7_Fh>8qTH^;6dltsBo-FI$( -zKuT7twQKFwaagK%W9Tgu -zHAgHk-gB0Ao4ZOuHVJ4IkH0T?4GIzLCIb(y#);Q6EM-&|6hjOIY_I=%l2t;iCOoq& -z6_AbxkQHTS+C(A)J%tO~hHCN$8EU;`ccBC}*l~)fxC6t@u4&PjcsAOm`G`dZ4l4JS -z{G~9>qm{)^%zGBSTO>c67AQa#phYWK`Jgy%+o;s+pe -z>>F+3uD)o+h9ruZv1-3JivTJICr#!TqWrW^PK)%*FU@=@d2b0K5^{80SqXxQkZ0jB -z|2&G}OTp)i5y)f(YI`(rC=#i!Um25HV+^D*qVz0$ghL#wkk^wP(iyJ-CDAjW#|F=h -zuqCT+h8FGhX+mW`XHq8J&DCvNj^hIYfAOZg%ZAaD&hlGv4aX_bN~4ck%^EI@mq;(- -z+pS#NBF9qZ#JY^~QTo&fMtF9P?8AW<5=85Zk5ZD4$BzHNMt7lOXCQNo{; -z6%Dos#>NoSI&}`jkD9vD?8QW;<8Tip=P+@2rlmES@O->eW^i%v)o% -zPol077g;nHGs}B?LL`lFibC~3Vk{Xktwhd`hD5Qy5Dkg{u$8tVc{J#eGAu@~UqLqx -zO|plgZmPJ)he!AxgEvHOe&CfURD8>=0-clkBXNXZN+T -zg5KWX)dlA2vgZ{;DCnvTRh&XPNv&z}@tKB864DmYF7ASR?PVP}1}k4+VTB(1BTbpR -zslr{wSKumN^%%Z4%8Rpp3CMsh{b?`7uvak{H0l`deNE0)33C7;nEkewby?eA8SO$B -z*lMw1PYJJ7$oHMpFpVzp$;25&f)B?=aR^&M^Fp?wI4J)DVHYLhF=^6$AlKVN!kS(! -ze@>Y`*KW?}V4EM~Y)XZ8oE;5ZR5K#1w_G18V(G5K+*rv!0PeY -z@>$McL(k+)*B#s5TnCA3z7E440J9HqJtAdn)~ywpD#{OmheM=i)3f0^?hrufeFXuEAv&X -zj`I5t#6fNROT$W`e)A-Orfjb71}ou&>20?)E#^)%{Gqfuh#R$SUk1ZDQJl||+^6hL -z!3NS*c$I|PyS6ad$h$K*Rse69vx|&&Y8obg!TOfWJ9;GYqqQ?P^(nt;zV?>Yvd2K1SJl$!2NJ -zd4i>v4UBmS{2}t+FUrABuTNzt?BhI5-I{F-=f6f8o6~^0d{BuV7&jhr -z`w@&J_<=_vp_0ffTC$0cue*dgsm?B@9z~*4VX+6peM4<}cu3+#t>s7N@dnz4s|x}N -zzo2J6uq7N(Lp+on6#RK8%;#}}dyp~#m$gFDq&{;7J3u7>HZnuwK|!XeQtfpRDn^q# -zo_a^5%IZn`q-18-0H=DpJQd_m!d(6f%eNxz -zlrt+cWpI4C`#rLmQTo6&O=EP7S7#R`R5)#*`m&OsUOEvub}r}(f?EZEZpKFl3Mq`@ -zyux>|_{|!2k{kFDrIDIROV75m1hIQ!#fr=>YXdquErey_s9AeIi3yezEKhW*;d)KW -z&4))2whpSqhn_|1e9H1dvJ4B6f#XR;^>IBef(GPj2#;p`zw5qVU(v4qFXSdkMilqr -zgV(xJKPBd_Bsa8sJ*Y$-oFxA4GNx9~Y3H)ndDwoU_VRT5L2V0dPP@P8ZlGGTxp|KO -zE$RkQob>ZVvndHdA!YmWrA_M0ii{i7jze_cN9~6 -zpzSg1vvXfQESRf&l|JtrZ;ylK66h1_NW@fF<2|H!hZ>6wGX-(n4o5V!U+^O2NkduM -zv-~*Bp5|05=5G61wSX&6+7VV162r+ -z1eF-KuE-MeF8K+LmTK0=n4{17J;EOJIWIp(5r^crcb7c&t1~@M9z>&*pYu+=`_t$V -zKH0hDJ-yWcwKglcfhY>gZF(+f+7GnHfhh4-;)d+9y~W#M?Cb<&M69`dlQK&1b2T#D -zO1x(U9)zB(g4$ale32r5xuW()$y?x>d!B -z{U@4_Zu!8A&X!=nLC$^ICCR -zaWnU>V2qkfCFK$;L26#@&<}R<)5f@0gh3P4Irky6s!_2O?BrJ=wRXPHR^p?9EdCP5 -zsu(SE(ISmX)8eHHOAMDS#*zXoy#zMFH -zp||>i0`N7B|Iu`n0a0{aSU_o{yGuZ%yJ1nfK|#7CrIBu7kxuFEdO=E3x*G)P?(P)f -zo89I63p=}a?%cWeob$v9mz4-pJq>zo2l7EqhVz#Z&@X4SsHCP`YGilJ{JVew%p#DJ -z>}v0%4TSdL&jl@jtDUO|Zlh|Qb&kDQ>kgnVD6s7e1SZ8a(b*KrsmkwBQ&iiF_0MFM -zsRl_S0jtvCM~x2k52aq&s$e&9^SKcQkCP1jp=OPkMaC%>50X17I41?8JF4 -zl##*KteE6$rWEP3!815o*UvzKKa(l`?oJ0?Ol-5G^o_zplh?l;z!CIIdmBf+od!eh -zGf@x^!$)b3#@J9jk9!=*@d8WZ4!><%S7g~&v%sp#=%6P1%3{eT!evu!ujZj>ux!Sbg{}h=P{+e&R)o+aVwL{S&9rll!x$J) -z(LbL}gg;6#w#hZh_~UXPn8hPyQzS5|p-rZnWIDvv{H98@!958Czs+aV3#^?np2q{e(Q2qS#eE43eS_MBfqGS1hl==^y=l8Y?|tz -zm)PKC29M0CsEhnA?O--Ik%`>b|7sev?!|=bQGg5J*eSrSc>aD;7aXY254Yu-z1mCQ -zC?x-db9sFnhSYXf5Ps*Avh`MVU+-1P!_Py9Kh!qE)2B8NLmiUjapOsWpvBXERIfo2 -zdL6lm;yxg6rqKT{EAx*K-%UYoraicbtclM$@7#KNldJs}5fbU>_R32DYBId_e -ziV1LMZEsd5PTeV9(lrKD!vKmO^H#C1BM*ZV#U$XJu%gyFyYrcHc^@>qp{dg~3zN^r -z#XqMT4Uc@*$xGLE-57d$Tb>D>6WxuNxRs09gPqs$X>K>!8~fX$=O<#ou?D?CttL10 -zW{~&m52lyH;1a8t4AzgxVs^!7J>1!Mh>bZ#!`bmuk{?WAgUF>zY8Wfev*SE=$kg*C -z3SAF@WBdua;WrS2PKV6iq3N!l(=U_S*md-g#plMdTA(QPN3?_y=s0t}8DpfW_6NbO -zMy#I28)k_A7hAC`4|+rU8zLSAHhz80udYG)mM`RcYsBRP2rEw_lz3pcR*T -z0oR$6-!{{(@8p9+)Xfq<&ib{%7p<@Q>C60s+Q0(%@=>|M@DEw0+~pW^afM2u$kEQw -z^(O4U%aY}bYY_WwV0=D9j5m@Opyyk`&(GtSLA;~K@&V@1kRV0L*=%<`Lx^Ww#i!=a -z)5qy75zawFOcgEtZxh>CFmgS{NQLfo7@3wqjDHCs+HgA_DkYZm>IK%|LDti8`QLrj -zbT`CX!_ePyyc||*>@qv$UKIH7t=oQAFf+aB&ExqJ#PlCn=+PImM{CmtO@9V{@0{VD -zec7et&Tnnv`DsI`5A}dT_Hfc@2hD$d#Xc^gHoksC+5a&U^WJ6f7qzb^ggphIMY>uf -zDwRJse~mEM>&iG2+Vr|ePVpO3v{*}gU8cd;!|rrdznp?jpIbrmr-`0Z$?}TAWykAe -z8TV2b6u>qeNQPvJz!yM+X@f55+w{KiU>r}HW6O6fKH?}+Wju+1NFEYbzJ9r2fQNK6 -zi21!PN`BT1dc2}<;FSE;nJE@XD3h%3svSB}SSAD3;~cOC_Tm}0Ta*UxH7X6Ez`ulu -z0;UITr|jYD=By1$Pi;6?0q|B>%ODIwrYuM9pNUtP_uk@1h(cvFdUr+K$C9-XLAD6U -z$pP5L$DDUNV!%b@pTm%P$U`Z!GoTGBfWsaTxC6x3J@@!6Aby{&k0UL&w&N+>yYryz` -z%w%dh%?BxWLf8(;Y~nYlb@?`#q#ALXt}JON5;CA^l+ocKqV@k`4y+@`@|nR+Y%lm7X4>G&%DCn6KS*sA>B@e7NH(enL -z;}F*S^QA -zm(8GGp;13=c5MZkv5u~%AhQbWk=Bylkx?d0N=+-Rj?-MjLQWAB)^=C&I2tJLB?0*} -z5S+KZj9sK1v5|Sla;XUsa0Brw@s_Nfg=_w&#oOG%2T1uAVWk=P4}e!R-{DXm%6Z{& -zsI#TA>Mw4-oe~F?rQm;r-gF+7YJ}r5qLQYBhR1z9Kkj^spdZ7^LHy{wEt;O<;G+kb6iiQshV>+mZ4$2~HX^hHhhMSg# -zzN{wnfPLKe4;4wJ4?}#*UO4mv(Ox1+t!lQ!D2caw(hP|>spJKYgCh)6MlpA&0tU^YC>o@#TdD -zn~!l|&m>w`rjwhIHS3d1?0mP7 -zHLO-_Y+bpO^gy!;&?VY%{ugKQ04sc!n2?;7aVn1tt0Tv`Q|j3tz`pm}&oBJtHPZ22 -zm_Z>AmD@CK9l^xXceqo9F+g+>=)h6x3L{6tNQMFsu2N$3h-<;cc>?tb>jK&ZA`7I4s65;~ZT#mOoInnQR -zhZRHYrm0Di%gl}K&1FBEH=xYrsDl=Ti5{_uAx`B0AlDHIn2OS5{Iv5;Xqknb-swV_ -zmN}j7B2#HiVNyp7unJC=HVr*)B&mBM$R4MrxmBiACfSVYBWDAPrM{S|IG^*sz(1PAY#+mvR$QzM9Se51e -z5yPS8S@3d@)rbVZcoevej25r+}LAjZyr6*Z2JvUGqDfrz46EFdYhtJh>y~bhHNg{+?LW -z0GM+hTe)FWQ9qly1ar%QhoI|?ZD&QSdD++4U*q7pTz3v;f}#5OKOK|_4Tl;s=8O`Y -zOwDKNs1eg&O`E2{+Fk`}ZFgxr53Hj#bpZY_s)4NigJCynDdnO}9%t54^FdERR_EeM -z=Cz%=7f!+4SKdiSuAolhWmn`n+0vQl=i53O5pE~?S0Z8|WpUJMRjvT*$oAD}lfG7G -z!|_#(O^#A*pc)@?e&fXJ1ad?yznz|5$3ckL!S2;fb?_aF1EvE3Q5R+lI -z>xd?r*0mm~Rf#!?y)5fHZMegsZJNg*&DLX+&@BpA7rO>fkg*HLB+l@8czjJmh(Kj< -zJxvCE_CHBX4vCwE%c#Y`XX4+p2{MbR^~G5G{lc6KALX`;9D*o>P$LeLf&?R{g5YNo -zV8MaI#2HRyRy1<(5amG|$<@y#ZSeEj~kFcZrm?R+C?|*Ga_1aU?(}Mb|={X6{c|Cm3){}p$E)=)^UYlstBs^xh*@2?J;pjwv%O~^_)(qLH2<|R- -zyeF=xYeC|xi{O-iycnSmu(axQy_`*TJnIfswpYDBdEJ+qCY~cf_%|*en;>+HDb5e) -z-bjr$fBnyWOFw`PJ?$X=GJ$xJJ@-6;$xhw2kMM5pbP`(Aaw{(Jzv-)qw*~d4XcYpq -zt5^)0j2=&UPS^JkCZ?shS4so(1Zt}t6GELju~mI?m+zap!G$mNL6PUVhmBrvr^R08 -z4G@hxaAI!rWZnfO%&3o_Dju$5(MhuW#}L8|`s4HvErtqQ4frSrzHoa_{s)|qVye~_ -z`opAa`1ydf{g|J{d(`hz37Ksn=fylLk^5+0q%ppA -zV)fv8*uk0mN-K&uH#C=jn`1WW=)HtbxL4L9)kJ`vAG$^U;vj3Y -zPN?D5t0O&RNKc6Pt0`2+j-0&-)UPa)8?-*=wG@cz=C|Cq+C;T69c29N7?xbA`L8Df -zFfRv!QxqSE>A#%nNg`1tzvpp%YYzaCHXsQ!Ugo5AHAvf8?K_g-_O);@{jV4EYi11P -z*LYcLi1`r^n7*T}E&H`^wD;Q;EeCPCb*~Plv*-gf#A4>3-dc9@$2-dJy5T!!teWor -zNF56Qfs3MDi-V5SP!1Smy!xX#h{tKkHXx=Ik3=J9T@&c62;-gQm`tB3YJHaJsq%vh -zrsK+r{6x%OC7ekzf4Tt;Qt4DU={8skvCt5;X1fYQObI$5>_h -zR8*W1!o&CZdiXyvIuH3dQ1<6nGS-*8BKJGc0%I2Tupgg7{+5{#m_qj(BF{^aR)oO4 -zrXgeA|A2?72)G8sv$(r?;-QLuv#n&8OvY -z75@*<`GYsGw_$QPjtf_X&O)SFT<@dkZIZeP97pIcDmY>CW%5V1{nTP0CNGCmP5Rl{ -zNWj=3Y{KeX|6#dHf##my`!_89zrO$Dm9Ty3)(=9P{UHidFTq#oiDJdCxHuRt#}dAJ -zO{s<3H~mhAztDgB&@cYG9 -z0k@E~V|8`Gj~;p%-izBdN~_sT=;xlZIW}H^427?bTU!k7gx;?U1;QlkH--^CoKwwq -z0{`|a)^Y)9Jul!%RkdnH8~T+Md^hRQldEU&s?i6cNd@+Q^KN*~gd4rb_cN7Hn4S8O -ze2e&lF{UB)f^=`t48wM$#Kf5?C-lX5zTOM>lH=UkQ;4m~0shCs%LuR6Ch3b2ENuzWL`-@tRv^)yTc -z99nq5bSgkvz%2p5(_G?10cJsLpd^ -zkT)5|P+4@}*eb12fq?;ykw^AYJ-sgYzIOdr@*P9w4U=T+-Y6aCSM;NF$+?N+2Vy%I -zvkHzmN!`&f!erfZ`M$+73 -zM96fXRQR1Yqq+=DO6+N$Gre`vwiDW1pnUn}pHc5`864`jl>NhPdlpg~^)bVq;xP34 -z`8!{-B7KbVb|XwWlWVI_17rJ98~i3*s`ca~4T|0Xy8_5_@^}P4TSfeA47okbJyw4W -zKfw5REkG9=6C%F{%8k_hh*e_b?Kl-|belOwiF6qQpD2RE-Y|`o -zn;&i%#K=VS`3%}61B_cqK60QV{ZJ@Msew%_t0ntZhwCYmQd;uf$H0VNoFjn;C>r7L -z1@DRU?P%zsSbbpGxGJhvx@mW(JIXWFT5)PR!N@|;n0Jy|cooF!1=y7vCf;2XQ*Q0!R@O{VK6}&_w`%iY;a;`tWBwF$()Jo@ijf77r49N8;z(e|#II05l%hzgmb; -zvp4(*DZFPD(p0OQ6*eoTG -zyIz=DtnP+)JirgB3bc6ql477x_PSJ6EI{YZP`1d4In#Qnmd_i%OyOO0*KPEs76 -zaY6=8?j+vC;BC!TU@QyGktmWI{Dt41vmAN&Y+sx@x9le>k5;s}&Z!IzI}30Pl5Ccm -z2Qz)^S(@It?Xnape>Eh`_PZoI0+Qr8tk-xAyIp=m49ia2EN}L3O9TAfc|GXAAsTv1 -z{oI`3FT5Cd7rbzZoRy|n~FX+ZV%(YcE><-!^In=Q!qEFGJ88M&v -z*s?y>|11c(sGT~W){8vnjTAif-5$a7{*uK&W9VK1fC?coP2K|QjqVm7$-<9&;L(q$ -zFE}+|f`9)aICr}ZGcq>ZxDaaba?%GA1aN)ffrwU$?d!)dLdmD1pQviE`uxT}94_45 -zY&!nFl=)y8S&Aph>J77GrlcS&>UW|{|E!76uig~yiKb-vl}EzA_XXS8kLupY62Q72 -z!ZR?d8HU&T`|Z69kE&Z6U002%WqTF&rw%m(mh+iSR3n0=YaXML8EC|DvU%Asd4=3A -z62)&4<|cA+5{%&D!tQf$LLShBVVrIG?7D5!6lxU>#2yiGL_V*hDErW^LGH?8-26=c -zXiDTLnwApBe1|OYSr7A{N{hzT1*Qgc#9WR(XP7K0XwGeBv}qAw$y*+b#d8>|(ZTmJ -zjLl*3UQ(Xt+2?;TgK=n=x*6Lf|AiKI19S%i^I#nF{fjm;-E9HsGEi3U2C%m`fsBnETtZNPHG%Mwua6<4=TkA}(n7ERM+7?V~ -zA^-vaP`WuvMVXY~%Lt~+(@#pJ6vC7&>>T6I|9vi~P^ATZJ`;ZR|BX9Iy~|5KJTPP= -z_puCOvgXeFq)<|jc6SLmO%xGwcypJ6_fMT0K%?ujACS!OhP_IRTe2dVB>&T1hfgaO -zL>H-vKOB)9^g-s=kq#Yn-J9N;oOXAEovwRGq6Q-11c6Tt`=^qLg?CQEg3uCgJ*9Gr -zTj7lB|7-T3faaGguEBq|q$q?Ar~?HzUsZGWRLZzz!bi2BV?uO?QW(h1eTZ=lCR{wT -zW5#mwI4Babt|YG$abD7seZ;8MD0Te@<1sd73fG4Vu^NnrZB<6fZ<2*Z}fFY!#0^p=ke|RS_J*{s@ -zA@Gh{LtM7cMxN!eJuM|Sg -ziBt;g6oa746Ejz9p{y5oR0=2`794~{Q1W}Ahga9-RIWKfqfS8+g&*=4%w5!X -zGQmhbD+29=?W-5kB}fnjE^uZDNYkQs|0LluQvx0-wJDjDGapT5y+go$fLk!e*`=Zg -zur45na&stubHEtk#lkq;Cj;ze4{kyyv>dETKsXMK$Wjg1Lg}fob7Tf1LGBBVGTYZ9 -zFwgaN6@V#;RWW}m2be305ArJ1E40olz);oHb(BJ%IfaK86#v{{Ytzxqd3x2MzK#|CCEQ5a4cH=e)36sLC9`4N`r2h;=y6cS+8{vGE#)i}~csh=q -z8ghFY^tZ3n$PHac3i=rCP$RbS2bNTVU1u8=1}TVx&{>Z!(ECtuJ?5-S!*#<9V%~-ke>hU7~4#Tg?(?$M9o?$ -z+`1H5t$!Nx)d2^Yy>!IA(!B>_Rtl!%I*bldrmEp1fG*U%P#i!iPDHHY{UXsvY9;W6 -z_AV0o%UzuY=iXi~Zy0+b$o-%#w6HRjZNFcx0Vv;jw83 -zq810vC&g%V*I&>3b^9c$j1QBwY?qs1S&9H*iu;X4L%i`#!|L0x9kt-&NIgvQWt;}F -z;MItyq5;=yk_Og_aWi@BlY}oseOTe)p{}>VrNP$+Pdf66@@Y6^WMMON+$IW65&%G< -zCa~j55ouR>0n>vcTYJ?sVAw&_Re*l9$$-thAW&M(f{aIr_FO?RBtB3h;QNV86ghq= -zBSTsVuXd*Lr0yExta|Mnu>~mtF{K~)lpgm%MC6)1Oj7wB-48Q$A@w9RE*R|a* -z$Rq=~4x7Yt1`HK9u66{_^RzmZ`5zVNFYm`SZ3~_&m%@_n`rZ?hD?cL8Zd+dyQa}1` -zD)i}e-R`Bv-P0ho#1+V>4fIfbmgN+Di983(j -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 -zY18)U;|Y|Kx3W&)mzR+ACE=&I6* -zO1u0uBrxU;dw+l{-(ie3wOb(F^wMkklKz14R?v;Q<;$&!f{#2TB?Q)4{+5z%jFv_6 -z$R`0o9KGad-~136zhLeY(0d7mdkN}WuIOaCc;+9@ltF6P8^!A##9!XgY7UMsZp8Q+ -zkn!^Z{o2Aj3a+uud)HC0&C_!0RvY4NKD$7*6->>76)GbXF8`WA$j>w|IF%Sf2b~?m -zII#%_fOZKRfU}Sb*T3+nQ0CaqEKPyNHLk@MqM1<)fLp5~UmUN7%wf=EfCw#;52j$u -zTibJ?8?6TfFT77Xt_#ACG -zXhmI;<|}2G|CQe%GJrWRJ}LG80nGk-Ov9Ft7Oy_EEJ=9mnN} -zW5A;~Sa(|$(fDrGmcOo^xu$StJv5~$lXf!$s4Z8=dw}?a!>dTC-rjGS{JVi{FEJ}( -z-ut^vKL##gVc#2{tUBt-$!@%1hWYHPnRtTN!Y7;;66P6VBnz} -zVW7riPtOb>80vBI1wn8eak2yxHuMwKISKu`76Qp$#SOo(Zuh{Eb1FJ@m!0t#@4x%) -z`G92XI@LZ0UvNC@LlS=X>|t=>s^PP@C#z0ydB{}oH_0;66nB!n|2A^iVhro~m26q4zYaVUR=*B>9@7F=Tby#VAgiiHYI8wCJ#2J#ue6|hR!A^3cE0~DGK9&-b(RzwKcDeh;IDsCZ8@GY!2 -zjV&ThP#_oeU95`|{FwWzk#ll`3m>Spr2W-G|6+>Ku9DX-n8cT{m2MRR8uWhC+@bve -zJXg~*8c2lxPR86cOGth|&f-4j?G267c@LTm;I|G!Sfe8_?2pvD+Bcd^f7>VXto%*; -z9pfh}HDZk?Ri#Xud$%YmmWD+AXT1LBY%M3&suu@L;sBx-uqjS#XYc1l%B(#`|TwdQZ`D~S# -zeoFKHC859raW(ECyqUOvJaHdB-Olfol729hFVF?IA4b;x1BI~XnA$SW`7d0AqXET+d*gFXi)j;^2aPHiD-^3QC_Q|_pn7Mmjsq`Tyvkm$3>gjkLhg@25 -zrnXve6bpCfx-;2U8l?l{C#lQY3I?06(CMF`r{h}=`s22A>71=yGrdE_FA6f1n4D0R -z8m~DmX&FPGT8GH*fts1WC(>il_vDV>vBd1o5jtnI=-U=hxZB|x#QPKTYgoglOeU24 -zUnjXUY*^T}hr^KZ0Bs$=agBB<2Drb~5O$DLa^FCeFNGk}Kv1ZL6aG~__NSA-ly0v1 -zacYx$pi!e`_x@536rAuH>)Ulax -z$RGa9j-=r7%iE~^CvH6HD`Fq~i@v&0O#j>#~NEhp};!#@kPw;qbJE)S+*K+BN1 -zGRGHOkmr|K1%KOK;eY!^_uf@dyUJs0SsI^TH%l87f_5z8>qqEaJl(|o{ -z{%xVhcb^8Wov9_$l0A*Oy|pGMV8vCMdsf|4sSKmucto*3MSbJ<52!F^!c9&vtz6*# -zvtNZ}sRQX&Mp -zkvHM2I=;q^W#0-Nx^HCslEV|+)77v)0eY%62Pg_6zO{w_>DizXvH^5A!UKJvC(nDVcU>Zg~yC -zMSN(P`bTh}ye&mW=_NifY?l4sqk{(h-3U7JJ(I8(x=FfSMHs2M5)YI(lE+kUhRim%?v<7%+AWLs{+~YHa^dKiSf~T{e7D~Ciwxd_BKJ5l&qEt-PAZH -zv0Dw+t|PGZB;&_^f5icBLxZIa=COOh;)&{p0oDcXK09E$0C1gBxT$E)d)MA}5Yim@ -z1&s6*t_=J(l3TWYl?k&>$Hsbl(o9(?mbU)K+zU^vrWgJo#w~Sz-Q`q<2sq_V)*jK9 -z$&+4?Qe3XTe>Dr;_~BW}r%byWa?20c&3}wbNT8{h_QV-9UFhL>x2w;b^&%@ruv#dCC6}xuuS;BU-wSlzd{|L#~gO-)GzC+I? -z)i)p3%BAst4~6D?4+o$gIK4x8Os8Hf2Kvewz!vw7LJI>0{g7ll*k`NeTQ8HW4gs^W -z*YwPX*a?h*VOROXHo!{-5R9vo+a<+Kjz$(11hwh#Ib2_$h^Qu+E+x{a=48CRZ9qLo -zgeG=1;m^~ZxGtS0QnnQGxo^7sZeo2_gk9o`gs9MHU)!jQ0UR#i+v0uTXg;iR{#API -z%YI=o&5hZ|RmLCX5nT!X)Irm>Ouar9ByHRdI~lXFQS%LL>D4%&wP1U81SJq(YQ1ER -z%(2h{s^-80u|+oEbPWi*R7dFvAbBC`7KXNJ45B-w0tG&TnHfh>- -z;}T<7`7zKY2 -zk~SD~ihCp`dksdkDav=s^0{PNZrp)iq5UePF@-}gp;1ziC#HUA778R~IXoj2`=qP{ -zsC+%^ee-qeYAIWtm1(cy4L`>ZA-m-mOlN^6t221s=rpKhjDnK*9qLZRJ3vpqhJ)-GP-d|qh(pEa;L>~9KcD>ZuNxeqUm?rShqbvqGi_+o4g>M5xM-ywxHIJVB3@qdb$}`6qSK1^3NW6V@j6s%RAx4d54L<{&rO98+Nc}x?5j_Q^5|qv -z$bNXTQjRO~qkw;0Tdn~ujwmSsdrrtL&}DwC83k_^a?Z8sCc>rCf^J4VGBUi@T)!I>V@1mz0v&FkbP#`a#w^8mem@OJBBO%cPgwa^ra70X -z$D~(Hw}`)69_~Rv16c%k0j1zXp#_Z-!^y07rzAwJgS``ryjA%_sW6^sNB+w+`8hfq -zzpEn*iuXE{HtpDyrN?(Ls5?a3U8UCVc>mNEJUUv03E_hQX|EAO7ELes4Z~u|JJOaP -z&sF6QRw$#yLoq-E_>F84O~k7h(R|`+XyQW(8&ru6 -zrF9VeTV*d36GN2wXD>tPjW?J5)pY5U_toU;dx)bEP(?ay+ivlp4`M3(zAZjEYEs)- -z8M@xzIt$>#z?r+^a8k7@+kme=_S)fD%SulX#3-^#t8% -z|E)h3hZ)O*;tde{VhrWuuJ`7t&!un3SzosjpxCK>Y4hB~iVhNd8EmrOdk1tV1$IRV -zeJaKF!+xU_&T$s+L@_1x2ga=DbNFzZHgMDGUQhfc(`hzk`~L60rf!?1W~oFaiX5lK -zASGp4gdC!Q#m?2QQQP5nQ4mA{IELQv#qsaVdT&d=44j%&TbC{$N0BZ<$J5Zsuq%LJ -z*C8jVIl&`%=eIGf1FTNBCQ%q1^grhVPo8t(zK8jF=V5)0^viS4vu~Q)T1;7|Rox;@ -z#L2-DD!)D1dQ$73n8k86r=2WJ>qefGQq{Vdl}Y7% -zsa`8vL*+-trVPHgUNh}IWM8OEpW4-1Aj&Oh;5lL7XjHb_tHlmq#BOzms4H3$PBDXQ -zC{F;HNfjmecr-|^wk*;nyNRquNbGFdyAauENueD#9vV&%U?7ha^*$KxF#?SzW~|}a -z?eYc)KQA<$(_UeNvDu??qRu;Ew7T)5rF<*D^m`8QV3lMVe6&Fm4e%q7s3P~P&$MKQ -zsz4Rl@@4GE_y?7%3cquxG=v5Ys5M!Ot~QvuOY=Amt!utbW60)2u(Hw3prnNPz$k6A -z4(syhbeV=3qt@IKj1OFfw7Xr| -zX}On6kOq4|IRf)STI@8#Uic6bCbvZ{h^uGZe0Fxb=>g|8xPO3iJ^s>v)Nh^1IqlD0 -z_z3LP*UQX4ZSWN2cSR_}&_%ha?fiRuQnB|Vc_;r1f3jfno%@sj4b3H@6xxXls+pl| -zAGq+%K6(geai4p023X7cvKkuA5mvM;PP%t-tp-jpRqn(Yr*~qf{Pck`xGlxm)dB{= -zQr+RJn?vZgTARI08_e+x>P_2v%N;6@Fs3mwQc%A?dz7np1Kr2BASAj3=6LB3g8wDK -z4TD>rl0wpphF4T|7>g$ -z4yG0&^+K&uLDSX?%MBntWY5hchdt@o`uj>Nnyw&PZKuQ2lZlx$R?vmf@z8j&i|IuC5JPNNO -zOf&Lo5e?uE7*w7Ml4avH9ReqTug -zj0~VfU|Pd=F~30(ze8?uUG5r%uL!H%CWog}kN$*$P(-P|fo5R~dl4fz$$|W<>GS*W -zGawFFG#=YPS}@uOi1nnjXP_&$14T`YQ`nqC{Ar -zv5G#Nxpx`ox=i21`p*=MEK|Uw0I>Xs&Hp`#_`24_UZpUOI_D+nfANHxHq(_*!J56S -z#O?$s+50bK9et5Vg%?Ep(@d}TaNcj5?gl((CZioGO__n3#MvUVG -zUQosv5J0n&h!IxIQs(N!;7*>F5ewS(Ee>U7t(4P6m_VG0&-$5w7TrScLgs3Vn?c!! -z?N8ZjWDznP(9Ho-x48A-$z>4@_3%tIzX%>61P4FqBRwyNAI_(oh^V4S4K22|@{Igk -z^mhJFWE;ZrBz6<6V*idIAnJ1oS0TDGHEneS3<#+H*K)f#r`(@G*n7YewjFQAtAWEN -z;{19xxsjc3o8e50EI;n@$^0@EHeUV@u%3kv%-O=ApJ|kJ= -z$Q2e5I5?ZEU*1ZFjV?*mV1nw+9m!8t*(f?6@5B}~+)Q!zbk5%N_N|jw;3u@5c$j(X -z&>anxKFKZ)>QtuBeVK#FgO63try!-o{JcEdw5^LA61%Md9`z{TCADQi_b|1I3 -zKVEwqs6yX7dp!BuX+rR6@3ZOMWN15EIK7FY?NQ>bf)RVawG~A_oeomLZN;JE`yRE9 -zCCc>q-Rm4vNH8%LuNSdjWp)Vb-5t>umf5|=TbmeV&VbV2l(|CfzxtEx`F*ycIpnAI -zqAdm*D&wunk1ipfekk3Gx$T3{=PZN)t}2lm6A!hr8uFg4Dxc`Th3H0oU0E( -zVK(DN=n|-II#KobxaLdyE&o^d6yQd<7P@C`zryCr6 -zu9Ss)cA=5Tk=sVvxx7bj6KZ=3HCsUfY1}t7AD)VGxaK-GVdQm-&$nHGO<*R(nn^`= -z#eG7pn_X#Lz!IWjGQ(qHn{HL}6HgmqIJG^u49JPgWs6D&2~|IDTtI-SEth7vw}?JOr;->x9%IXq#vJbj;!{$u=H2f=?y51lDCE<)rF=a?V(F`< -z3^>-y6Z;LRFCvH-u%};l_TK>+Dm+~V8F~&vN10ie(>U@w`%ARHXxTbzKgLq5WUt+` -z=t`gSD%lr1V=RD!$15vA`KAO4htCwTm1rI(%XzBY^4N3^jQtOB-Dp!83KY^;q-L`M<-_p7!`<;_s{*@gM1C*dE+$ay1G(kl>d`bVW>59GZLGMu_fx -z&m<{E?T3XO+v$^Qq+0a$N-7J1h(XFuaxYfzXJ@JEFJ`++hsYSud{09onh7@cf&TBV -z|1+sg*Q9~t&QCih4sR298Z>Nv6X924&U_bkPTl&;-`B4#s?cYElz -z$ydY4T|CFIygS1g@=9%+!fHNm*Cm~evz}=vZC@K|SlJCiOUtgIc0+sK`pe%rrp)}y_V2<0rJ^XpVd%a#B-2SiC_!;X4=J^ZUL{aB|>>4`~c>>_fg}*mrGB -zEM?UR@*3D3nYp12=)2L@Xzd(JT~ER&k8eg0$&4OU=0P$bbWi9;4NX0yzK5SCu$5ij -z!*eZz592m)W1{CL^7JMm>XUqBXevIiH-yrWLv)ZqC66R$IV4+{(PxeDD6gUokGNkd -zs7biS*X|gkx8xpVcW25ZJK1d$=h=wt? -zzF`hmFS{Z`T&3eWy`+kS4w{xVq)$DpQb-yI1>XmfrR?G>r8B0-vi=dx$^!21!O16| -zKVbUhCaC=hm0*D9N?R0qFbxN5Oqa}$rY(*`MlNK4Yq}|RH1Q3X;#1N4gQNR+@AZgS -z_3;0mx=B|ki#;hCb)ZcvqPOHzVmuglNXCMQ;8t#mejMdM+^JP?S(wls^+R%&A9G8R-(6zT8np-wwd -z<`f=2=!(o3pU+g6TI`|GodLBeXqHwF==FM+Qxj#ZnEV@lg5*obcTI_F-2xmw{nK6O -z0JUc-vZMX&X72o<2LJLF5Or+TN`n$LC!CO3VTV^$$^` -zX0UK(E}+4K5P-UV2V1Q<6f2YyUEf2HvPbJ7?3y^Le>5Txaq-$2`Dk5W -zsOM%#f*3HK9~2P(T~(}7yN#a<@>Qnj5U*%q*KE+yrs@kJ2%+I*`10x&`Nu*474X0F -zi6$<-kbS&S{9YL4SpfNCr-F)F6(x9?3K6@hI0j1|I2<6}0~CN0lvlse5$#W(&{{wVw_>NHa|Ow&hRy>o>iQEDT~EuKRTyKaWPdxLoYU4UN#FboH}( -z9fa|+{6!-bO$mjC9(4f6CK~^p#lI0|?lMd1f0FdQal-8D?{nxdSe0lkaizT>vE0s2 -zN573pR1OQu5^mI1{#6Vav1Nrt^pItT$Q%?zHxzEGjp8KvR7t<}VpMkT0InQ_5-0y2vy%0H&fPiuxVD-Xg!qKD56;OI -zv7=ul?8OU~szNA(lsy?)a+MvUvJ&YF;=^)=6naXq<%5pTM+K?AanERu#X%QX8Rb1= -z-EeIdWs`SrxgY+P2Sbq>7WTb-?`97XH4^*GX?V+G%ME)e>X-J7DYS7c>7{(Ro7sUu -zG*%iJ{DPH+&)CxD*j54$*DPWM>Y-fT(57s`1tK=qJPC$`x3sHU?6QI{f(CS6WBNev -zf$iSUu;Ce*@RzAYM)}`=EITaW{q#Yl -z2(0UQ1n3|nqA`CL>8-)WXGa`Kw`YeYSVYO-}*3Ox*65sZh?2(L`s>sRi23EvRZ -zywcp-PG;eq+JQ29WW9C6q7rr;hKh3ye(<_bz!fe&9&MGD6i+Ws^`h1-HX4QWs|f>n -z*;*QQArD?NmPn~C$#$UkyCiiCc{Wzv%iqF;LqNZ)z|~d&v4RJ!Td*x?=oHsS?CT95 -z;JotvF9a?aD-#Y20+&G2w@hs4KoF`_SkNGj);jp7rf!F^>4NF{peq1Aee8IoN|2Ub -zHIWwKf+Vpz8SUT2@@7=;2fJKUd9v-St5F2ML>>xkHo&-#SKd35C#x -zu49fB1?p;Ih-XyPB8qSNgLa0X_yOJk<8qT|>rQ4)%2*vY6dV*()5MiQxZszYNh%L8 -zC=he@kM3*bN}jsr7wu;Y|9yG0tKNp`AejB@z}HXkGz8ZO06V~;h0ab-&nBCU?Y6m0 -z_?IH&71u&yLD#T#D^PH@$YN1>VGb^e^UP!nMZ{f%k(buwM3&7h4owm)+2j)Pr@KgNb?b6TQZ3 -zbAj{9PV`Louw3FK8R_ZQR4A@NmIDBFQWEULHc;WJ7#dWNMXyE-ub>3Q^(h{B8vH>a*RxmNd?IOs6nGv%}^8@UlIPSBi -z)G()tu@i5Jg0$VbL*~;tW -z3I*lABZKK{85d`CcoLc)indL~4I7qe!b*EnGO1^K3oAWC3SVL@Y$yebWn}m{&H`Cq -z8`AUZ+~J_FNBdmSj9*W~zQ!d9*rI{(8>sfGx@tta`C^+&Jt0XxaZr=&J`auk=GH~H -zuP_T_W39G|9Uts9;&q=Tk4fqA+E83&+{faLb^06py>wGmm;ojqJQK-SaWCsfbnMw^ -zHU@Ql*vXsGdMaEk$@IMnkIcUTw6EwDJ6EM|)2n(zai-DVA8hxZWjuu7cd;PA_q?O} -zcy*Z;%VI7uG$xphQyDXw-;1Jbq>}8h8{rJ;w}6k+SmJgNOm=Wo`Dpn}@O+M&1zE!c -zo}7$oul%wFM4ge%>2|P*Gi>`Du-y0PA-8V~9zPp2Gm<~aJD0(kt*Kk}jN9r^v8tqT{K$Q1^ -z&9x3e!*_XsF&4lwm>3#BD7Af#1ug(@m%FpuoDaOTn@<1J$d%WgAj|)4}wtr%dG~59h)__`E9F -zrQXp?61>5aZw-CMA6vJCNg;S@SB -zRK`oW(%$cvJgoT^qR}vwv65@{k*2oZOqVgd`wFa!$n8BY#8+0&GoN{bol+GphnmPP -zvK%{=A!6Y)a^Al&xsJH^j(TnsB>%>JWrGpNB<6TpZgjMlvnt|oQBTG)hi@{yx-y_t -z+Q6AR!@O5)6$7=z@`mPeY=~UMi?4FN+Bb&+*a^4;fSq*9G$37UFTRFrf9?yUaX_Px -zNV}5ft|Z-XRMd9F$3CnA5L89s{*~EasV-vb!0V1kXyS50y8brY!A`+3}Q#%=J2BGznqe_e(g)&ms9mUA*V5(H-Uat-@Dn$n91* -zIpYN<%6MhH66uveX$35z^PJ>Bo#8}=H9pZH$dbs%0Kgxl(L?1KehH22ISR%3X}yG` -zNs9`9D(FOo<}$3e&Z_DPzFj?p!-As5Xm{_Z+3Ordo@3=UmbKGRxVvYMj5UKr6R49X -zH{|+Hza6oYFZuRR8Jd=w&B~I(ef0c=7k41GAd+aqkP1JAZLdZ4nH?jQG -z<}ddYykqk|>tlBE4fRNop16o%8g6afsuOxbO7+L=!u*QZm!5bGud>IMd5*`RYqXHC -zJ7VYR{!~DgT&pnOWuaD(&!bIt9=G7z^0@F}A=l?Py|!{o1Ppg#u#_ShfrkEtTKg2- -z53S-PSK72`D-VfNd{Sl1lolo>h&-A}vDsdZTuCAI5)u|p`0_FmU7)2E@7F6L1S#eH -zjCNf7hl<5@B{tgM+w_QK!`TRO;E-~8Jxb}7Ymg+fHlOaqgO=p9-Ouuo_549%5dblp -zyuFxkv|E{R2qCq9PR<(HA9m7SEQ%kui0zu)iDP+zWRw6;1FxO5D{K%x1$UH#6BI#q -z>I&Q5su~i9f5U7CN~ECGc}JG&eZhA!;bN}?Y#m7RtIl=W?q5FGssoQQ#xv^U8+p}V -zCZ98!ykir_Ar&7BQDZT5wd!UjZKc7%X0ihDMQgCA3zU*e0Yen1?2#Z<@fn|dt%f5D?&k# -zke%_pf{*fslLwT0@Iuw>k`PsWXnFgx4Sgse_YvebCa8lguj$RLBbl?{C -z+@mqAXj#!MBoEP!u(A08ssgxT8UX=WQV1lCl#>kPVhU{=x!I45sLs`)Gye*l;oa?1 -zIDN=lPC(rhqi-Xr8SErU6~~sAv@U{lM}MS){@`g2=Er;$CDA5Oe}sJ86?JV*3QM!* -zqwi-n9x1{V@wt@yJ~Ki{%i;OA){1Wk1U<`Th_AA^q)a6lx>(k&a{r5qvz|Pb{fN@4nw-Iu$k!qXR(ku(tv$PQ -zIT3{AH~F9pO`QHIgf+jk>8maa>N%DFG+@~SJ|TH@lb<8mv)<2nzo;u6XKb#Ef4Z#3 -zzSE==BVkRAJlVobd+<~Tr-nFo9+7_L!Xz8oe)_(MZim3()XwCP7&ZM@t`3RdZQCcr -zde!{{n-Kq0oI763ArYq`!SV=lX`r%o4`Pa>Tsl2nEBr=T{`)O8i&S-^Z2{~YNS}c= -z$0SFLWc^wp{6X6Mo7M7MH{ChKU8>hckm-G9$)j!%t5QD}C)xI#1#?3GSOz=}fTrl1 -z3zIAeh;$o;?wbavTwYMzsIolZ3V`z;%Wki!9Wyc7lRt-9B@pZCjV9 -zyWBA>w6e0j6!9&JPAy -zz&is;Kemnz;Z%AwUZCHqj!IDd;`Ud)()`iyFt7d|SftOrka)IMa=9jv9 -z-b(Gc+MAsH-e0HV5-d%lCY!Gx=+295JRHvnOrW(`G09scpxfBlXe}Kyz$!Po@WhK)hHXu>IruuuP^texD#Irouh}um6_++5FrULn#wM%wKMK&VTMfux0FO;FR)KBm-po -zw@v#MDH(oZk?Osnj4g~A{DEJFb=0%zavKLZK`>5V5t&#w4!lknJ~90~41E7=Ko&W9 -zaybn~ZsWRU_fS4?4)3lPH5~%{r@X9L(9HIE8WyC-U~7h!DS@%w?_vwFbq4^?M7W0i -z`lYrJnxCghUu5Z!4_Gi=&ptCkiTk`>)qf`{8pHArEg^CNfTV*Vk0?clrD;4m)(q(U -zMG<$jUe)G;JK#9*7X4n{lpi;V$CUoX49-!J@o5GP4nAbJYHaZy3OZ5K9}(Eu8wm_J -z<>lB8cW+qEU%YQ|Hp(uwF1NOd+GN}Z``_UBvQc#5X_J{Iv{-D9 -zFQ4x?Qyv~8VE8XUi{)4qIhJL|^@WcP*cZlFfzQC1)0}vhy^^x(^eSsLR6HL^?I>_n -zw5X2Ct0Ys_n~JMk-rGaQ?H$+nZ|xX^hFYERHSpCNU;LhF#u#{#HE3G -zzUJz{x8~)0pJkq$C1{Vee6K9A`U&#o>)0^V4t)3YQl;Z-#aVKCm)rI8E0m_W0%r*G -zQQp7lzU71r-&V1~=Y~@19G_Z*A7K;G=3O -z!L7lOqEI&MD_#RoG+=b_zEos_UKr1LHKdYm$Xlxmr}f2b6|rDo@%RWjviM;s*o3wY -zZ#u(5d_IdKmox6W3qu6$Ekxm`f;rBy28LW%`&k!dCz&8So?R2rFlmvHEi^}$FyOp2 -z>xjrHGBIQzTE=e7+Cx%)Po^4nW+1Hz$#0;4qJwes5Pangt8mIY?nV4hDajJ#A%KK8 -zC5`yhk|jFdo^RHquWzN5c48<(Wz@R+Nioyv5TPz4(r*qI`T_)cV}cZIXO71p^=g3d -z^$Lt8oi>lXF-*r!(2WXTuN)yNm00u66*QG+Iyn^Il3Oep3xn2aHIWbD2oL3`PLmkW -zY})>F*l8-K(!BcCWF)TG(vf-fmGPmr48lGM{(ZNlTrb?>0A?a`w$zcenFN}&5c=+%1Q2t5v%JYKihhvQ>JU5=oVz!!{@b0IxL;+o?fu -zRD13l*jLjLJ7u_BD2Vt?PvXdL>(7*vn?R`=AkB}=oARr;kOk!D2puTOQu7dRo6P@! -z^WTHBo4@MLu2eOffrbSO#Tw6cQ{!Ee^Lt$}CQp{P1M1^D9aU)S?t&Kkxru- -zc2XZ*q471x2tl6U$0O9qYSnEOhdgJJ-j?SF-R44Vg{(Z=rn9arThq%)$_F2FeRI(* -z9rMu*UAuVq-M7rALSc3g?EbU2_$gm49brla`VhI<_R14Q>jTpV@NR}dg61KMjZ4Kn -zQ5G{v -zzZP*5^8j4)ACJ|c*d3FkeWvUjF^&KXxAw5c-UJik=NW5oxH(PhS{5KtsYGe^)4WJoP@{V)SigVWqW(` -zYIRHm5NP&4u8fH-tLj<^;Tn!jK-1jIMRQIRMr0m8q_8XD{OoUYXD2|(S`JQJ?=Ifl -zUqH&f@y7_OryQH$HU)Qu*hvQaV8l_-+1T}?YFntn&nK3}Qn=}IzpmGK|EslTC=*21 -zW;6DmcJy?D4F9rjKAt~iquiUk@C>aibxhGcNY{i-1Y+fA4e?xO)GgcP_H`=&J6&=K -z4{UwK4ZSteDY52qyaa!{uPCM2Dh`4F5igH9_A3RJW(njA$uXYzsvt{-Ux4%tQkc4P -z{Hq@a!^&gV{(88_T%`XXsM&$qN=+q6WB?$L!W6_$=1VN?%>~kQI=CQZES!TDjlYbXNO)UF& -z{D2HBhp|7Tpyfy4^YoxIPv6&;p5*;tYa(O@p_;5rMX;-#gsNW;__kMA{YBMAxu~|O0bv^DZzEMVlYPqnEJyOtXXt5~dp4nBdMi>U9YP~DACk4& -z1l1Q&4}+A$lm@XZ^&65+A&;ZP368zk4@H5g`w^Elln;}koc4~Nb+_d*lf&V$K^KdB -znKo&LmH(v{2MOL-Y<;$V*q|Q{Zj<3p0P-hj{f#x=Hphx$EoF8*@=&(%fv5NRD;h^0 -zC_U93x0>xc2nfqAw>s6IVaixjKsgVl00S~F)a -z9fi=d#qL=$Ok!Iv(crZiWIao^C{(wQ0Zr>EppljLO1Hn1lkCTfnb!F=_vu;3#apZL -zhhZ7>UE)59HbrJU<09u+E8g#od-8N@FfMEFNK@JNK?;5m)J|0PTb$=a!X*+^Q{E*O -zYooD^S1?X3;a7sK$T0NOL>T=yt!zg?`^cvAE#+VN2icGzl>^R<%d*>2Z8)1?zE43F8a&(E^HM -z7|jP)HlI{8_vPh9Eq?agLpNnd90+c_Y>c9$IX!=hlrawdTJYnkovuIQv>VH$k+#51 -zQFMG>dEO@vnz@%e09*gx5Nef56hW71JC55`2JI(981Y7djFklIGe<$hh4;(#;sRKd -z3mT}RgRd&k?@-Z0tDWuj9R}Cl(X=-Z0PnV8KjB=uH{59_y_E6t+Z18qnW=IvmdC~9 -zIfmww!6~PT8kCa89wGxih0#SR$VaMF-yLaQAC8vO%|r=?IBl4M-`LQ$HxCzkdTEB1 -z5Bm1I&|FN?xGDB6$PsPy+_-aQHxPmZWzqL2#=TgFi%Io}Lz{xPL^qmaf??qshc@;< -z?AYI%BA>QkigJG9o=h-%(XO#aESu|KJ4&Wp7!f&Ggdfg^34_05y!<7RFhmZ~Pc8kaSy2qad<5q1jEwrw%+8xlW)O@Z4Q6DyN`OH@ZNW0Kn$L0ex46%_R4!?b&)QX3U>(# -z(PKut--*Ht-|ioA#aTnSWO^i5BAdrmyZIl_U3Y{kMKXO*Vgb1t1OgQ&iXx5_moKE> -z7Lol|I|x=xz^XRv$FAs77b-_32vSF1*_%64C7*#dEiOWq!^G^mUQc^Zi=fEis2q$`-@Jd)0!vt)}b+8-U -zDp+y3Jd{p>wZer#v-q;o9?!ISF^sY@+9H!eUy#XfLCV{f@FVawgMGl~KfU$TZCZ{y -zTKpF*PM%rcM}SEghz{rTpKHhJGvEIrQnYY@`OAx&(5>Qcd>yuKT!9V<)L;&cO^okd -zE^7OPCqE>`jGM9XlU%z6)TMU(3qyDrpa%QmS^%5Gx@es8rEnUsonu -zid6w7aV}yYuxVEp2jXlwft1g+PJU$FzeHtzih*?f3|GTX;N|24t)L09Gv9(5Hd^xP -zOh!nLm*(qjo$h&t@si7-!rTUwk1Ukp;&bj(z55OlUloyFp>cnuugShKwE@RHH8{%k -z-QTTN`OHH3Iw6eW7L!l1E;)~}+bFl9QOmevQ@~YVEsEVQK=C%lIYnUOSUckOrH)cG -zY(4vD7&jJ&zzdwmK^7usAy<5W_{}s2@hNWvA4Ofo?3+>FHlcZn`VP-B>JM-&5_d_T -zxFSy%Ac5OeeCnlt$Ulpr-w*!=QB;e2=>6W{0xZYA%2{a7{IAP{wjL@%m*huavhS~n -z+~TTTqIh_ZOiGu*3e+ztmZENOhJ{ZjxM|r<4?%t3G+j8LhrdyoXLdBa$mz-(;3z0rO~{ -zi}xtia-18IX!m7w*x^LY# -zZ$L;}lqLrbaz`|KFDVLM(yN|%{GyWLcJ+0GTq^msj`_TL4PjgO;4C#8nkm`^1q -z|B6nvjk;0BRgSFTdlJuYJ^+U)FNDD=7A6DZecDG{3adzw14K>EK2J)y -z$KcwJfW%dgEM!gT3mr;+{tMH7RXbp@jlH%KC4q@!lAqBfVbs12YBu)Ladkh$JQ+f=NHT(VWv$z5&b49nXq34CxrT~YG1t_ -z>loF}qlVx~khYBXe(BPEIF>&yM_|G4?(;1^!1{VPYUkVGYZwtp^SqMK84VJA%3|15 -zb~cOr$(DIX-b$j(oKoQ$>gMLwj^5qs*l-YIX4j@JiI7M16}}8IV>#cPibNV~g4Ele -z!0X#QyNfw{m5B1QL+~u@mK{B6I~6h~{$4Jr3&Mt(g~a2_c=Jl{U}@lZlHiHdL;1Eh -z#9o_O-aI|Ocr*mh#_99(DM5^qDqV@-XeeDB#3-c<&*D2)YaskH72K(etP(_=mI -zs7oe72Wv{#YrYf1lS0a2Kziw!@Vox#1O}L1Df@mUh+&`30A7455Z@$H6b -z?0`lX(~+LCmU7jo`qzqz#d8oQfgrkct|7Ib&}8jT1$|ixz4%-Dr2NYLLa)S4P&EY$ -zxt?Rk=(AFxa+UYA;f2OrNn#~G7f@z{VGCRr-$2PsWAXjL|G|XHKJV0#RT7XlGP+H% -z$u3ojn7KyPUdRD2xfMlq2RKLH9w@4{QJ_ -z`HrUBBE3P~moplCC$l?bkW!NKULbcO2biYiLbXmD!hKv!aSHr{+$7fyi3EHJcR -zJH~%`;1)|R>+8Yay;22nv -ztBstAtBBdlPn_&2#F37lWaheoXMjAf?qv(Z^1BPers%~t>3G+#=N`6RP$)WZ&ix}^EKw> -z$U~~U^DLv4h-dw{@ciWkjEV^tGYM0NA-h!QyX7fVRVR=uKRKM2uzuBd2!Gm0mwep- -z0SHkvsOTFiD?VonCc7yOIs8N_yuE)lTMM>2wfm>R-Nlbm;YzgX5qk;(@p~sNJjIsZ -zeka`Po459{Tte_|unIp^y9leY$MB^R!<3^<4_h9+EYv?17c%=f#>gN{#~~iKy!Yz! -zt&aaZ=Gl34JWY_`QmO4V0ru}PU!?jWuT)3JzsdPl3VVEA8CrjWzig{DkO=IeldR^F -z%SBA7)j@aG;cvO70^Uzfsmtl~wlp{(5p$qY==xQVrYU*%^J(t}9v -z2%Sky^F+aBFA@i@-)|`zmDZ8pA!*(e=TmzIM%zOqkH8H@e5*Hj_2?_!2F}OUJZPMQ -zbY;V+do>5F8SYaKI5lia3d1mfx|caSw)hGW`hE*c>91bRQJbtrJBpM_n66D{z#1{S -zLK1}lDZ1pkQp{>>jYyP)Y7jtP@RJac=0sfv9jk3Z2^McDUTmrCPoFy})t|Qy -z1ak_jvD^+{AE~FfGcLQ>r06Q$D>%RN50AFKSxPXM+T+sJ?5E{m?MKk1 -z!S8eS3O^YrS;3Ewxus$gFEB_mD>4)jUV=Ze8;<4DLv<>-aL{9U0_Fg*)4kFE{fl5Q((9&{C_MzJau>CS -zaoWwg^Z>?B=|zl9yK_5EYex@y -z#pHg^daWN8hkcuj@Q3wPiT`_}ry_s9ZXrj**a$u%Rf=?^_@J`0naFkv5#ENKQJU>p -zUqr%V@*&Rq=MMj0!Cn24SBUG`w{BM30_aa<%vU)O{)%^-Mtu}fZ0IFi@T@6TG#R*N -znBowD)Skh&z}HnT7h$E}qZ2cBEFf%9B4*{>)`P)j87$p|!Ed5_zqMhR!2k&hU7Zh> -zTJG!)UBCop6?BSK6W}(~hrSCn8 -zxH)>b1drx=6rkyX2S#3=dk-p8xz_`Yu#n^ZZn~oNlVWszTs^3dy`MO8L=ZV_6`gjl -zLXakDx`aDCIlWNNuWFH&-BIB>Dq2xKxy{UCLQt~=*zq0w9qeCYn-?kV&dq@X&pT4< -z6dLy1qSlok(WT~h_BZaaOkE>_mB9NKF+TamCA4tj^J{&HD)VV>z;+Z{Ke#mS$b4`vWdUkIe4Lzmu -zm5qNb&SdI!&9Oy%?9%+ug8==wZyN@FKatCwR2WtkyqY7j`KF1)O<{dZ6^h)eb_8d85A^Ti^)f8rY%e&8i_i{(`uk})a9duzvi -z64!(7V||yg=i&Jj#rx?8Wfx){ESPkNa$nyN{r -z)Ga)cR -z(gec^V*GT(%o%LwED`>E@vL~W3x;9hX*GTQoKZ}Oyg9g&=)wf19c3lGi*PNvozO+k -zb9Y^@fIg?B!CUIZ<1drCG0-U<4MR-E8l*SFWa$5j*df^VL`wz|cx_p&rTR^V*Eb-*yl~PJNLhrv&JD=Wd0em&1@Zq?Iw_Ul=+5W}n -zERz1WQ`%>p3kGRbh_FU%A{b{Jj=O`AZ>%K{HIM>IOhbK_NfSou~FAc9+ -z2vrBXgyU}sDv}D5ULQ2plCT}0HxJ1>0QXPT^tm=rlL(O=?e%}IBQNM}RGVP|(4k{%8R2JU -z84psP;NQlfnJaFveeW|+s=Xga(JpboIfx-0_l9&3U6S`e2 -zmipmTI!V34&!YjqMp3H7I#h`B062T5GFAEKHVdmrX=1M|h~_ -zy3z+ttXO=;P>mncKfLMivJGCp*b&nE(IZ2hkhv}bZK5KE+nv0K+xf|~7t5kAe!F_> -zBf9%+XL-Q`gT+MZ@ag@!DL>CddSw^C1axQ+Z2rX~q;8Vz8~j}ziX>4F -zIAE$rMlrfJ#%?#A;r|EVektu;pQ?UyR40uJM;j39pHVN}r&#o;>FUkVm#-UH2&;k1 -zE*GK(m$}WG+y3rRhdo+T*&|TBTX#gk -zn6c_fE1PV+e6QLbV%x@RjYT$se{a;{4N;@FcR7gFE{~I@#9z{R|B*yUWDo$_{zFIN -zPrYv@8)<5hTGpL85kPyQG^8PHm@xLcPAsE1JKjJ@_>qfDsywHyS$-%)tZBqAWI=jg -z&X9B@c&!VR&Alo5dvc>Mn@N;J{ko9}e>lUmu4u(@`-nKjQq>QJoG|j=UpdO{{VA263WE7Ya{xVSO)C0`P%W{g-ip$F5z@+zd_3~E0>N>=QWt}$M%U{5us<0Ef@lB}AyU~mEpXR~+R -z54W~lNNpSG{psqI`Z`0Aj=jB9@IGNieQ}OkdGNdxXWO -zHF>xH5I!E3^vqLGpIu7A?_pRMFR=o|)Oj1)x(#GxYx%My*2WF|}sVFiR58L;-s3dh$1E%+29LiR0wZBMO%9E(7Z?VzWD*e5m*@ -z$A>iX#k&zM%+0NG^x7Lm7>*sWsiT>}-@%4yXS#$%w;!JXUZTXOi0YoDKWBJzY20TD -zHW?cn(P+PK}PlF!g~mB0V&_`UW)uQpzs -zf3|^nVZ95PFRR_mR(Vu(Li6b4pOpP%ivT$7rO~i-VE&(35+HINb -zqUPfRLLZmIE}?+pI0Z3L6Y~old!&|DJI-K7g%txbRl8NvbiQydfJr%Ue6bN{2wP(> -z1crvc>+T6W?vq3s(dShJtZp}06tw<}iM{9#va&&|H{SYk`MBW+Ivg}JHSKX2eC~E= -z^Im1Kh3pR0`263rNG{O=sB!USoZLFdMY8b1H)UXjy+cejnKNf2i~gV(KSwh*U9CW*ymTyXxXPWw`bJ29EMCyaeyO6 -zm;WQq?-0fc{L}r*R1c{pBvV+2pra9Fc}^B9wJgxBfmZ3%8=m!eq+EvDb>W -za#%a1X4qe)b8Jb52XYyq%J03K=88a~*J?b^isU7VM6JWmKf)|9<@BvapRLYa=ONp3 -zUX$=fI^_?t+|4cyp2ooO&D}UzYB%I9{x1ji^aM1XX`!c7(o8WQ6 -z3y)f<(3`A_sL&yCt*TLb_3T+sT^|{lO#!5rz}}KXEcS_t_RYe#!fj_nq7ZC*W1nst -zq2LegAXF@)qiBe+6TEMkL=VCXQ#;|;#fDC -z96U&GLc0^NN&1{nXe^HS3PC7nwlGLcf<|q8sg!QDd4ywrIsSG}(P~OhP$(g%3S&h)t^3*()z_1(h&*tj(ZSNBe1$_Re -zUm+P=;8rx`K{+U~c}!nes1UurCPd*lk@LPSH)BZkWx;&4fjy)%EPCc{Lwowny5cOh -zB%A!+N8~YXz09?@^x2C&&fVA>P0uY)k`1Mmldyc2g_flpF6;zV&y<6K0ZBNnebNJb -z*gG30+mmeu&6G_x`0O{0OHu$F&X8D7gj=o_?7=ID#4-&9eINS4d)H9 -zy&hognxcm?l78f05$y7$=X*8p`fSE62`H`Z14PhQdDuc7|LRL8HplD5pqS61e|o;u -zeS$z7vS+rE856kN9TuKD^Um1}hU5O%??~R^ -z25L?w^Nzm|BDTUKbpVOqQS*rY&^;{N7G?L2l$RBdXhC)vem?q7XPImLL6KoVNjL1Y -zje;PRu6ndwV1wn-knSRgLdJcgSBraNkVx@Vt#z_LDe(B&Dv)r000lGYufa!L7xHlN -z`4C89w#4dsO5*DF*~aybPzb{+eISl{%YCJyxdq520*cX*`P&Tap_1VAD<@N_3?pR) -zAc+n#h-wiOINfRVTq_#!Mt|1Jrgbo2T(4egT*(3|3G~J>Kd_Jkj>>YY`O$@@=@ZNn -zL!4ieQM{Q|r0~k?)qD7EUJ+uw#||=(!|LY|HnB<4{evPxDO2E}qpTLu8x-3c;w%)> -zq$40h1o`DFhW9iyoW=>=Qm-YnZemeof@A}zK3%)xu0{;TPc&3iK%EBsWemEazar+v -zmx)*;OPysK*k6^n*Y#X&je|h}SZcqcPm)7*t)aZF^XDTCqtK=TNrO4Fl?ZlO+UH-I -zA{+hY_?&o!{xR`eh` -zz&WDl?{V!7apyCWwS138Mqgu_drOWBHyw11%@82@#m9!B8hE#Z*X)c?h`~12jPiJV -zUEgB?S>@*il6xW22l|ZCKX%&z_xYE46CsAr}G=Z|V!{6r1%VU1`aPiH8YksK3}=QVcf< -zuj%l9VO|S&{Q!dL%}rD68;_?eu%!-xYt3ki*iL#W-;1W?qUeI -zss189P~&;8H6U~Q&ANBN`P%0{arCG^~4<(S?0$dk;f1 -zdoC&!qOe(xffVJPk^9SeLD7N4T2KaJrvy9_W39F7a|>{NpR2fsM&usO39}z5v;QLT -z6Kr)}pHh&C+Icvv6~Op43EPoX@@C?$zAf`hRFMmOp17G!Tff(ynE`y82zul*5nHXIFh$yf{$1o56^@ES_Rj -zxXz(?7;p@vs`npatluWvsoi|TqW;A$li(zzvyuv?gQNg+S|MJIX1!Hn;@5_;ZZXk9mT*$cROq_lrkVXKVm1;Hsb+MMlz -z`TgHgvX7x*Ud~DUCiOTo%NQB96fPsi6a|(2+5N^zG43NJ7w#xTMOZ=G32yJpvY%ml -zhnwcUWayPn5Fx07Vqr`dhZQqj;@+dd-e{}eOuR|o!SWLy^~M}qJ|?{GbpVE@5)N`_ -zO)$c@tTtL~DumpQn!MzxOrPi3eIt?Z?|6g-<-OvzleEydkb@;nagY&RY>jdWj`s=iRA(k!po@Hnr+M&;&oG} -z*;f8y=$)*w7sC94QIiE<=Og9HPhN;id##b%k0PR6MWq+YCfGhEEVCFg3G2>mFT~c| -zqUaP@VOXcQd|qN>;;B`YcUKF&hWLOqs`J@ae(6&X)%Z|lynV#UL6t-J*n{rOR}8;o -zBhqs^JBRf8T%__UF)!meP#w9(PG~qZZ7|x=9JHIRGkEx{YxT5Qz`oVyo<4LG0Q%E*42(Z@zGBw%?k8Zmv{U7>%>eT -z=nAd+(I*FaJCd6_tGu-f|L75N7P}u&3=*1K>0$Ivaw69s?gPG_0JMN(0yhwe$We=RqW6L1E@`}!ap;r>1~_%k8p<^E^#A -z$)ectoO%4C$YAoI3vGJKiQI{FV9>|a(7%e4v}=0$S)|4-HFeE#`tDVqQ-21I|0@~`(z!b7y*;iwj8jYIns -zMiuX#i-R=I9mLpIq9Jtci3GRkXG-Z$)Fv^B9=yOUasPZ$gDXvj3 -z4JK0mvO-xijIaT{fD2+YoPrITPTq7Z`#r1%A~;@?{6C)5m(T5LhhE$}+2{sgn_&({ -z6&gbmTJ43@l;RrrC0r@)h$1)ni@_|yRERAH_z__tyZi|J*PW$Q(tZ>SDrW;%`RwFK^seZ}@D)~NevciwM>^b)1JVp4(T -zH2b_I5$@})N39$G#8LSt36(JHX7mtaGzE9U_U|-_q_q-$x2zu|%KsNFualliJo``K -zyYeQe90Goo0XU_go5KJcs*^|OwMO)p!_~8%o%v;P&v}OJ4%7)D#uPv>ZIENj2|6FP{cX8LRz&PMpAeiQRdP)d$oU=W}!>s -zAi&oI1N*_pBYq4nlz*}K;jy6^- -zdlVO`41uF4)EgtlB#{k`9g?{IE%w*_e9HKib+1y6vwx?RQtz&JiNT5b4-&)xDB=k3Jya=k@9))J_CeLQ02p -zY~{%IlA&>rjnXxO;^XSs)iZEeIElNHu4Fb-9HnpeO)B8r+6!5Mk-jZkV=w_70i{Q3 -zQ``$?2pX;1brS0rYDc&381gv*K4rykx-nsYF-Q|A-^oTRD9V!l5|uRkul4E`J$Av0 -zmU-Eb@JTuPDZtGE3&`{sa$8$<&$+fD)R_AQCq^YQ9HjMtcm3tL0{g=w^^-k$K(8<# -zB0v+ZjVkr$QpjemSrTkct5pxF;QBK;=SM8?9b$4x==t9ajW4|x`9qpLvmsFlqwSGy -zC^h@ZHZ5ngvUU{oZhtDZ16UNDubx)9)gy?+#`NrBr<>k!kS~7$gF<7tLLfPVe;@YU -zF!Xh5nv%bR6?0`-pz+-P+5+p#_0{vgv}JO7^EXc-p!G&TR@kV$^*X8y&l$}&;D(7_ -zaL_dM{TwDBPtcIX)Kh<4l6&iSBhA|FRjTq@;~Kmoh2T31C1{Vm>E)}s4~$v)C~pRk -z^qugrgY@I7lN(IzIfB&`YD0y#7gJVmK61TUo8?OUMrLT!Z1nX51Gs0;5Pfpl);1VEfvWvO6ui{b)DQ3qBg+GMp;q&td -z?vB8IHYJLOwR#pfmPILUYt_A?z!I@_v1^h&sEc2M!fM*K+oYL0K(B=PY4?N`o8_)$ -zIGyLI4jAfmg-~1*5V*N-%?9gqSyV}>7yiFcJVWTQP~sk*BWv;*^j*<!|_i8WgUO5zY?dJ0X`IrATryi -zU*O7sB5qKEhy_@F8tJr4W6~+7Icq+=OdV&$F6n^AvJ;ZJO5%y9i`F%p$otWnCM~DL -zhm({NLHalA!{M~@%j5&YQx2FAaq|R6Xk_R#@E>iI4!y%ncvGdChWWa>TKBC<48ku(o@kz$^ -z$ya68S>{hGVt+|K6J0xT8_hC5vO8ZsU9RJj;EI+wH$%+TE3(2NUsdv?^4CsGSkr?V -zC=aix9y!g!u$HLh<>euOssc=hw;4$pj1V8XEv?v^U;laH!*3ZMG2&A*5kVf`(-iek -z8t0F4>HJp#? -zIfrvZu#RWBr;bD7uZR3#;o-d8c4C23m30pw6<@XXh(PliLelLCyAB+HI9Uiknt{Cx -zic(ozAAb9RB|hE@8sVq)eWA?AZ*Q%F<9`o;oM8^6y`APj8Xg -z)D;O5xHd_io1SIfau(%|;kcc;<@J1-Y=u6tXaO#5e-zyQZ;+qUCx=IRXES`C#A*;W -z9+jcNHN==dE;HD2s9%OcZhB1hK(iJ&;&}19bUV^vOPEul|2n1xYs-K{X5f+`a%FY) -z*H3-106~5`9DIhotk7k`DaAwbxQ|08SLqBVS7ux6BlqMciJk9$|4H$V$L*X|S5Q%8 -zb4{@6`n-eF@DHHlG7z5SG`0oxw255aC3v+EdrHBF$w^WP;JEt>aJfQ>aEvf97M$S8 -zk2tEwZZ@L`;~D8quH5i}*HC+C!_RH`B2}p4x;>3nz+%SMVU6A45Hcuew^k0bf_0H- -zQm{3PVkU41&*IYbW_m@c>+blyu;vP014Bz-gyl*Od3j#2@E3sUwdz2Tk3bKFGSVm{ -z{V!dXl1+suFrDMC-4isMxa4q8p1AE-_!!Io)mL2+NXiD>?mwB$H^?gQX&hH$dzR6% -z9{rz;?_ZAHzE!g~zDP13U?#8C*RUTwqBU<;u$Hn=!c2cYvkzq8>5T25X(!Zpv(JWz>mTX*sepM?)ltmaWfH?2Gv7tfGnJN3>-Yp1ncV+u^5y+Yb -zBT!;l+^r4VnI;45D<`rTPXZWDFh}61ULSmMrzY6QGG$p=xrGxr2|OH*@C@s_`Ko+L -z@^(lbC*8V}N5ec$L}1S^w+!X!8;sh;JmxwL*sKAA7RNKr2!Wv)UIQa2*M?~tkLy+~ -zn_+ExpD_cr9Af9o;2BCu(vY(=ds9wQoQCBJC@B91Imj2s)8OTANA8PGx~~Z*$D|#S -zW={IMLbp&_X~oY^kIh=`z}w+qOu9{IZQ -zyoInAM0TBZow7-Rhp3I$eSJLMj1ijopJlIC$JU;ZBn96-fm9vCvl;i+0<~FVg -zKb6nD8_VVJm72(E6QaY|9SRv&&vO-MJvHQsF>BOB71SS0&K_kH}mSJ@gE}bppU9*mEX9(rVaKvKg|Gj`v$qQ -zE}MF7`09ZD9V1hN3;?^{Twy}%Zv#f1l2XGcmlgFk>(SczB&0hW5ns6!f}lAgxCqS{ -zAjXWCJ67PIEXb|(jcc8Oy-}Yoh#5Sz*ZzI(dW^x@yPWLeZ(YRx$%QENZizV`SkTN2 -zGA*RzxEmQw@G>cp>q0il1Ys_b -zROPkT>-nS0{QVr5W^aVNzxZ*Qr_yu$@d;q3rsde`&$$8947xR>j0u1qk-!1mLLgEW -z&zy9M6kk>s`PL#}B7pVRC?|Qr-{;4sd)krArz-JXu+-_!FzOUGZh&}DT8E{;7B##} -z{g-FM;n&PBwc*l7niMt%hu9Pm?ruA>Vb6lbu=jqkwjxOSe -z%eKGHhdR|lVRHAFCzIa}NOic4*PeG@q51bH*fUQ8ldJFS%D1jbB&wk9bvVLGv}8CJ -z_ir|S>HKucpM;_6)sq}&f1W@@HnX_aWaQoq4!qw=ol*Afior39R0#q(7W7)4`+MooS6%oq``8O>2vFg -z+A`YT57(1fu=!Zzui>LHD8xB^FiITULJ=(d(F2x1lC6e6%lgmYn)fOszD$W2%;#u9 -zQlO4@C`1X|dw$QT;s6sCLbYk>%%qBPkIclX|JIMI9?2bDVXi^;ND{y7g3vF1jOET1 -zmn2*Ea`W~Twi44V(^dpbuaM*4q0*B@FtvRU%qrHfwsJTc!!o#%AzbZ9x<>||D7=P? -z>jUw?1+!rr*-1jL7;tDC*3cOJ!xW$H6j2 -z>8esJ$D>C)D3o6MdZx#JUBli%%}FH(sB{o(6)}(+rwTiQ@$R$vd40ri+!PxQB676- -zS3f>Gw)(V*n0&j^Z(Iky6O0hRCdHVBEwDH$nF7Jg0f`;ZnBbr~hBr_Kb`K3-C(CV( -zKJ9KN^V<^x5$Q6@oZ`C#KE|_MsXYdKzbJ-jdUo3Q(vBI~i{IM;~eN -zqm65^`GF&&gnA#&)Th<1r|B$Tkn6yZA?mkI{lYL|IxXC|V75GxrsGNRAC`{E-$;Oq -z?Ko=EHuOA*#4Px^!uqVychLv_6|)^c2GrrT!hEoxOcxAZ2$m@#{uQ+_heD8^zw+vq -z%4_2H*`lGWN;;T^3hAwQPC(8cV9gXdwy#U5+`gRirAp8D7t~7Gl9=OZbu0I~$v$!g -zqC$cZ4BEBB+Ya8k?|_Is`<10YS5m0rH{*JA!qV47-j>9ntw=I1z=MF8dxqK1@&ZRE -zA-qi*<>j_cXa{IYGSWnIJ0g-oG5%0Lp|-OE<^==p*qpXmE6|DX#l5XYY)pG}a(j14 -ztJT|?&bcIWS5%M-0H)ndlJI5Y+(+tsO?O9};otPbP!j*z{4r}p7|o(e4)-iSTa_mh -zgF1ndL;O##k^jXy%WWNZGbkWhQz_m!_gNobxdXkWNF+NaW;Uj$l#Bac!q50-Ba|4H*J39+WPoFurF@=@VX -z6J$}7NfS0vc##D=H&bjCBE8q3)pl&PT(n%g36MJ^lMM>30RLsRky?~lvnQORb(#v8 -zEiC(aOM9-;LzF16KJ#5OMZ2QAkH38yKF?Ieda={uU?ZB54|U?=6_yW5RLf_A*zlL` -zA@HZ)I~?3?k|9B*VV`SO4-}Y-Yd#$EoihAr7Ob$APW%oX`O0)T -zLN2D3_h{eQKIF9C$KB5~z?d**L+6XwWNbiD12p2Bi`?f^C{-f1z-{KabS`G=dhkI8 -z%p`qQgdWO~``XT5L|bUeZOIfZrnmZNTP5!90?tT>%^&o0nkyBw$hdj>{y(N;(TKnz -zDQWRE6@juMJ0Bt#@BYX7Y#gvC0mr*mAf^PTHZ!nH%5Uh7qLoA#L^OZZcZZF7Dob6W -z5r1ub_>T0v(2TUX0k`z6`4Q(v^<8st&es-ozKH$DdT32aF7jv_92d(5vaJe|Ha4ZK -z4aj<1;T(kH637n)F!)YM<@dDq8PQ)+L$TM(uE68FCv(P9$7I`9Tc<<$`fax83e_zz -z%XOp|)3NrkT~&l@c{Hg~PPKWWy`YaoI<5mZBRwD`lZVLkA8OPgum%7rJ^FH_AngVF -z2*O3~V-Xb)N|k-X`tL?WX80W8mrn{P_h>F#3}!-N_)HX7GB+<%BfnK1d1Vatgx%tR -zvWeK63$fTA2LStx+Qj6%q5`l#_ro2yb&;KG=w -zFRoj}S3aQ;h;RTbG}hbc5_BI(L4MtYd(dGWBvo-AvIYZF>fbHouW_ByezWaIl3V(eo{KYkdI${wyS+zoB{|7U9{Kl#G8`JI{&84QrL%9*;mv4K$YP -z@kbw%K0fxG)I!5Ph%s|B`;LQ*IBEzXVSCuU5n}Gl=04t28CF_~W7Y^NW>x!~&{`IN -zHK-|!eHKXX<%`0YwyjIhHJLA8d`83vg?NF_ztLJjleCGapR$v9T5Fd02A{uTz4M|v -zD*^T-;Xw{o-;17jJ>Jgz(Ga&NWu9jJ)CY(?DeZO7*lVQoScIeMbKQJ&@^LfOw|l^k -z0?u00t^lU0hCehX6~M(_n0n(MzIo7qK=b&!;Fr(KHb=>>OPB&jwH7Ko4laP<0V`C! -zc6Yt}Q8wrwutlqWJyGF_bH{~8e>u<(oVRtuZiR!%(iWCHVSybh>c4+0Rbi->x2hOgk -zgm6!QFb1IRXP94YO^;Tuq?T=_p@kO05hyRdLgqQNXp`LI_`FV*7f(zc4kDk!Od|kp -zOEA>$Q1Zjcy7~!8!5ICEY1nXnc@a|dbUNGrAv922JGVJ!=(4F)dL;<4P|;95aQX@a -z#KDGsW_FMm&M}`tPtjM9`QQdE7iKTCMPmG!X@*{}Up0z<$&|3?+sNL>2W8iLrdrGN -zK-fB|0L^$XKaFVjt1{u^iSLIUIat(4DmT5-Nm!{v{w)CW5QblB&H!aDdF*V}_f{ip -zyNL&G@dELS5fZXZAPJf?=}g-zM>k;FyAX0=eIZ2qf(MW|yWghs^X7oh0B0ow -zuO#yQ3d<*!g5+)V-{Zhi0z08Lq%#Tr1%~jiyjzIwfP8=Kk*)>kYT!5v_A*j;rpWoq -zp+T~RKL05?2>y}lOZ|QNX|QmHZ|;5fpC}iVE|l3&jUs6Z93T3g@YG`ICVWF-Cv^H7 -zwBV;xgmGHySugfs3{P9o$gqzu{#W(2+-|tgVthLwx7y*AE8O)Yf!VDz*3NRztC@aUj}0IkYb{;0EA( -z8r;+GZL#Seb6-#^(?3|fnBkD;PVL6heK;|m>lnNM_+>!m#|nRsbVfPy%l}|&`NYqO -z*vA$82z$%0VUZ9K_1etB7mo}`)&_R&ifm8pBeIdfO$dF0$6HhJCIXk-18zM**oG9t -zztB#OKINW%sGC~d9&6_?OTG3P^c`j*Mh1;dUcx@sNwPtc`K&j1q9~bVGUj`iZ6wkG -z_XRYJVA=2L)7!b=w0ldtL-AyoGVFrSY5a2-9$cDvhVx75^1IEEH*kcz;A6q7qVjH^1X|#3El=Gx0=O -zJ;!odU7#NSDS+jVh-uMT9@}%>2kZW9Cq#H7g6;;btvd)$VSXfRS!jIgpBJ~oI?{Y9 -zn`I6ohbZ3D(CzMGCPJ6A$|Y%i4Y$5?QbJf~eJPU0$G-Iw$SgO&q{&y)`!ga9FN@M%@> -zTbTIN&k!_Og=EAk46HMJj_7UR!zTuo``L7uVCxVC#Vfxk<4(Z-paP>NYuqI180E2 -zMEOSL_>K22*X01o!msSlSq#iZMI~f^l3Xc;-zJwB*~E5aAU!tZYi*zFAQv{|HQ|q| -zy=RGAPR$aYcFaZQU>G{1 -zT$Q!XOg7<5vS`2DBI$5_5qGMEa`h4ElN&Bp-tX^pdQ6Ppo!lWoCHzwAHFO$yKbVHL -z+9WnlJEAY3K8Oh97ZaG{o1*p$nR2>u5cxEwbCyHOy&5|WCvO&^qp0WYUoPE2urn|~J>qWw -z6#(RkF>##+y(wIS1QC{TBok4ORSKBH*AJgofr3|NgRHoSO3w{NC;_C4kI6{#W~rBB -zMZ!Bg6R3X==u+-HR(;7L@4{yXNXw_~j|We9k=y&6d;43r%ozsn$DP$WC{_))+VabW -zYG%TH?=Q|?`8fhY51=}^@p-a8cdj$ZBeSq1MW>g9QTN5k(aW6kyu#=0?4JMl6qiM#J$aD0Z?w#Q9 -zHIMVT5K!CaEi2-A_{?g^IuT~XYc?6@XQsE3XE1wC#Ko3Adu{&Y`yr~wP7dfMWrYX1 -zLjjN9`{$F5B{oIIDD`2JGVb*1;|`RM?1ZPFbyBAVIQ5kf2<~XS+S>dey`YUA<=qpn -zNvz0v^J1r@+x?{gd!!9GdV{AJY5DfupbH$hBdBy)(bNex$gzjSF*R=^RelGnOq8m~ -zmB#td!IkZo)|n@aSnfl8dVpfSn>+WPw+R<%M$Ud`b3vAwMTm;|=YI(lp20zUz~5LtV{2>>Yd);w;o~SvBfUlTmi-D02H_L$LN@GpQ0eH -z&!pr-Huy2o@gvM?tkE(hc@jWo#zZ5&h= -zzs~f!Bu!zbMtXS7(}Xoafb)!=o7c3b$DHHTUwx>xO>f~TY#Aw{Q2pP+y1=)~^u_m? -z7(S5@Tc)S`6LBQ%=QA&0!!U&SN^rR`yn@u?{UxV2UPl(pOl%gD36t~}5q9yxZ-~zp -zK$D489=L=_ixofmHFI}K`xp3;xL^k}J|yy^cDiPd`rJtH*PWg=^SCUiFWnAr-<@YP -zpU)vsSv-eQud`Is(y2|u -zxn3pa3=tZy*k8fP;KM9vl;z{#?l@Bsa#Jvl@&kW38t|ZL!D^JxV6epciuep$ii{8!Oy~bqTqN -zkm+5e?NsogaKhm*#a?R|7c0z&wTOxI!2Ppf@Tj`SuvRDV=KcoAiv~;ykyFu~Y$HyI -z(u!b|g_&CXu_#Kko607qUE=_eOC&p880ADQNY&&t_WX5X=Jjh_e5-7cEDs@+xZ2RXQ -z-=}Gcg$FOL<~b#UsJb(w*X$z%9i(RA%X`b;OH!d^7y=?GCx1G#dn@%go2%r}ikZ>L2jzq(6ddBI8P7x?VMc}eu -zF^5ZxJjP61b$3anQ%6iBm1bT$s#KVWBXCpwPw -zRxU_pjN;F|y!LPX-H1q|K+)FdF<<4&HSKa17y=CdH;I!x^Wbec7F_FHdO6;k)j-(^}zST_A#MWfLBFB?i>ihe_fEhZDyf;8TZomzV^x}Q{YP> -zjC1XL73_OgdA_jEk*Fnzs|Au`2vc8|?5lxud5o|pHu;uA -zIM_pGZoN*|KVD2GbS1**#l(MK_guQ`GG!DOD~Jn=9Yv5D4*w;eQU_b{dPR%gRZZFr -z$#)*uoE6sh$2Dc@Zn!NCz6OvVkOrEwHQSBttCDla{JX3CBUk1v!6Ps#y|=x1;}q`L -z;rLh%QjJ#Ofx@!9LF4vUIFUuc4>m5?cyES{m=lfuX%(uXS(rE#)V)Qs8gDeTIF6}4 -zyHxXbUkT9TzO%D70mYRMt0^{(1*9^mhFwAua335pM(i!=?_wn9<0kXEV`z^o`S-RK -z&4uNYO8PPLOehPeQ+QY-UkBA@%ewFv{aJHcnH-z+#bKCf!5=3ba72n|d?({M3vzq= -zCz;2q#Gb#}qw%_bNVvKMz|r&E1+eaDSk>O%;rdOJ1{mFklAuE^`O=ET^-ICNY0>6$ -zs%t6+z3%lMMZHjxOJTH|ItIeJO2bFc`BwRnneB=num=-(3>`Gu7m~ -zS9nu}=ktJJZtXzsb+tD@=YfmqRW6rY|05F!&RR$M?ZuWFXv_Vog~Dt+;9xN=JNezvix_f)V1OJ=HRfaG}wZ9FsusYNyaJCidbq*`kiBxGgvOU_;J)*bZ(l%Rx -z=5zz6k2ycSs5*Qoq3;BnK^H$^kR-B}V%(Hh-Xt^>%!`}i$AMY}yuf^EjO)*4)zkqoY=zH -zv#kVY0I={lV9Mx5Z7MF)d0bm&^;Njyg^hPqg7*;^<4F}5UM*#nmC60+5q2D2g6wfV -z?}c8i*VuF7P}vD6i;qei>y@0MJX(4}C|CmCw2>`h=>LY9OXS%KY$cvcr#%U9OyLn( -zG9&-o_OV}Ea6z3!4AvSZly?|AB~GKlpbeSp;b_N8*n0c -z_reGsFgBe3dfv>M^1zsCB_)^PY#+94CRuEQEvs!d6{&y$28vWmRC?>X$^V{dj!bA+ -z2V2mTtnGd$K-B>WJ%qUT*=VhiHnF8|X7BK2e!Z>$N>e -z@SJ3lA7kn`At6+DcE`5h^%IT#aV*G(x^q5@^*>mJ{7aS8ppQq684kEDcEaDG;mwH6 -zEjG)sc$vkkivPkbJdwoYKP2+0x|(44-9|s0i3mQ$3BTZf$FV(<)0z1^S++*m8zuEP -z!IbG6wODW3;@WFL*q&DgTEsJX%f(g;$Dv=k>?Y^BXp}ZZI>d!~-NQK5710}7ox*YH -z1d9lnOliiituJ^ppDmFE)N(*(~(^#`+b6vZS)6s?V}1l+|8J(P6NqBS$dlxD9e(^2-Nod}ueRP|gOk6at0K-$2%b88W^p<@76eQQ -zxE$|O)vLd8r*0k`k3=cG8=t0HQC@m28sCC&;=u#hCV)k@1Jq`TczwK+tWQ5b6&N2L -zy3ji)k@xl~BH*eEk0DjsLi?7P-@j^Y$*WKZziBd>6vkS0I=*~N`ZdAvpz_4$yQ(8r -zy!xYfybHo~?7q>KT}&viKz*FS;|5akfgcxS%OczY%; -zq18ZAe&87ZRwbrxG9}m*D)jukhQzsP^i%AwGWDO=m;VoHMPUbjDivA%_`4M%1xAB> -z#3-U19GGqHfT>=);E|t7--(0V!9`(AJtX}KoZ6$S=9ab9B*1KeP!kIrnFAHZ;XeC~ -z&WdNaGOpnF(Yli9S(fRqVB|Isy&-#Jli;%3spGJ4GwO{a+ai(db0I$+E4fAsg>`i@ -zw_U)C!6d%GO?!I7`08LN-?|>BG+!Xn3ruYex@J0(n*}#P=K}zt@G=)gB>NU63J1TE -zjRKjbO{HdPF&)sNC)DQ$ki(1ZteH!Ip8(5uPd6aD0;ljJ!U})AX*WBw( -z2=<*6H5zP -zI9B{g<|Y$YD@dPzQ+X3@SnQIC^85&HMYH%R_k#>Q?n{3L^N$F>NGg@c)09^`ew-c& -z#L=cC0xLYLloLqMLkYMF_3g3Xx&4SHuN|Rsj1QM!^p&)OH)o{tNPrrs#~>}*!IY`> -z>21^K_p-YT12n2Jtc+i`jPtLH*{n}VkpvVuh&K|0r3!fD -zAx~^GZ$iQ -zSiC#S@>KeVe$MrkP^a_n+0BoQVQPD3I3O3;>zY+`!io)rW?URP -zKPk|Cp2h?s*(`q=g|)EaetPUe`){hdI!Rq`Cz|#wytLU39lr}wzljD;2M{<`HaxMp -z&V<0-gl%8${yb)wea7iK19&w1$A3~s_Xa$9FNB0x^5BKBMiGLLWV^wyDut{uaxLPG -ztb)Zc_npM$3^tj7QcumwJhoHZhf%pHVWd2DS0Rp|uc2&tJ_&hjjp=xvER@Zyfc^14 -zmEg@_2DM=JGHc@dAk90!Sw5@ExA#`CQvfJ@L#AR15*C95?F$jC*XL{Yrq9!3<0|=J -z)rW!PG)b9!wLqlVpG`Ra;g0G(GCrTa_|4eJD0#jE5^=T5M`QaJl)ikDIUYN7%n1c- -zi!S(M6G`#moaf~8it70nEMs^xU$$oF0r%pu2c9CpqANh-oqSuO0C8z8+2Nc$2L4~8jX8rCjOrEns4IOr5kqt)(vvTE -z7$*;@bEmBU94;>Mp3*-np)tFX+bpuOM{hVEv3t=5c)aJKp%(R>$OG -zN|YZx{O>_ac1wHS@+)G@K6v!vR?|!CDUy0gKiQN3&ab4=*>u-LeUsstMRqe37}X?c{QrfbsSz@q}G=31^`^PpMpe)|JW?c$Ax#OY8g -zPo8%L(tX`XGk*K;#E)6vL+PZSc%$2a_-C&^t!f=$?qoP5JKh|Sk})?RqwxOK{xZxo -z%yR<(-QNdpd$T{e%PgX3Qqlatyroqc1!)fZPMT{`4btd&zJ>fyKHfdVS>%&&6dh~W -zrDNVAEA7(ba0MSSyhp|t$&f)j`YvQcR+A0gq3yJvk^H>AlgmHfd>L1LsaJzYcK-wE -zJzyS-gOhE%orSzFz>5;ZSg#Wch+OvYNYR0pw8vj7oCOckL)Nu(kT71H88SK*taReM -z46MY6=fK($l28Pkj8f+ -zc=Sf)n6;McWQ$#F%Xvv}W?ic#t@SP79o5RE6cK$^catgKPpx#ik84QiDfKTNVSCwd -zARUoqfh5Nn^9Cl<%mRKh81g?vz5u`$;)zwQE2&EbF -zpbyIrhCkUs2xHVbUkItKm!ZsbEYSAd16zsX>PKeJ_+pdb-jf^dO8ZM`Ji(0AkXGex -z)O;h$)(T1s&hc84bwukn63UL2C&cgbA1dFaRJ?-85?xGz*An%4?fY9TxgMo|HdJE2 -z{X9hh0Sq_b^jlfvfF->m(Yhk#2suaPDZ+-vouwxB4ftj2jhK21ufims=-myl0s~#W -zw#OOL@YLZDCv8O*^;uY66-Kh?UfrowC$)`4B1=s8;SjzDD(s_;d1~8k%eT`0^ThUh -zjZqPOrbg9R2{(^6XFX(0sxTf?*imDP4EVc1KYNTAE%x3Zxcf>%AI_K2|gvkvO`$c*r*$I0{7O+a2!{K@lb -zABsNUroacbz)@(Pk=!gZNjquVa^qlQwBd~UQwNR8N@^^Wo(JTgCff(GzoME)_U&P5 -zgO1!E-Cx^zpw#cGUvYU4?@W-ko^bL>X&c1_+Kz -zE-;)EEb}5GKKIQ}T57<&t0Lr8+br*28S_*0D%|wChf(3r -zytu}=#fi{nJ6@eakODo5DPNH|FDHz%8QDM^6ayl<8Bp{^M&J}o9n^c#0_DC|ADLNx -zgiR>(?jYoa^EwoTWP^hnS1s&cLfwC-Dz3IN?@Rt#RHE3sZM6flBiz!DN{Se0XIM9+ -zI@9d>A3i{hY2PJ3A&t+?wYza62pg=)?L`C;EE3P?D$_9Lwp0>Bc9pYhs+@2c&l)yu -zU}wTUqnmW9EswhYa!ThiQ?NtnJkgut^h6IXXE6A&Wgluot@<4)%rfWS=2Gt$6~BJY -z!!A>Rzf$nwG|=%Q%z1=+##7Zlc5XZ5C33X-GFhFvOV8N;8vm`< -z=Q3yWKMi-E@idd&8f8k&8FYz -z_UtO`pRAW4g%piG)Kdm7U4tCg*3GgSk9I`WKXDluTM6qw?yS(vZXhGJMh2M|Rjg+1 -zSbrs0O&t*j6?sUBx~@1;MfBFl2!2#B -zYaF#vhRuJ$vGG>sV0@-6orGCF!aIy}pKziDJe9N3%pL={&XM3%|B-V-m}1AJ^owQp -zO0p2*x3;nn?yTBW&JQ`{AkoR0#s3@ecx3Sb+bbUu+3sCQ -zxE}~)3v6HEPDZ_+0J$EXuvxz6(%00naolSSO^#AyE~-(E%N>GfWDi7HT;xE)qdYO@ -znrB@4$pNR`bNfdDT#vPa^zN9Z6s6FQVp1VX(W|u~ImTe%LExuT-yflcylV?ZfItIL?#WBCa0W_yVs$7#@*gn+^<)GFG#)}i$ -zV;IWD{;=vC5Rd*T*^whj;pTgUscm8^kr0hMOx%+J6F`2s&+AM>;8VM04~RbTY&z+< -zfl_iM5A=zWcOO^VOcc6nmNv@dK9J`gZ1m%eKp|4Vl|(%86X9?3_C1K))mdRCAL6Nk -z19{~0-Fd96ItTDSQzDJl7jj!^-#hqCI0q#PGZ0p2QeCOk^h+d+l@QA5NR1Pd(m-kz -z@C!R4TFaLIqv-Hiwm(jcL9BLY&=jndui(jiNC -zeRp^H{<6%>y)!q?Jx?6b3v`^286KV(^9A;_*g2k#SMFb}6s4*;U(hk+R8%P=KE#sB -zGr>31tfLnmgy@yCZ|39%hzrLDa#c2xsn3((eR1YZv_^4rg68{Rb=N-UeK|9Xm6A`u -znk-I;1Wt-y1!?7@IAXm14x41>+;3Z5%D3jXTQw~UC(6ut%U=(((grdatLl|eys>*k -zu^bHyHcB}S6OFZHR?_gWmM2>2Z$s8oEt5eJ>lAW|S*Lo&v`;Ef;ld}5UzolWTGX5I -zTZtg>Q@CCD+L2>%rx*o#VSVj18-0E=cR> -zB)LN@Z?$)=8kVMQS;TSZang?upX=Hs4pVKfYX6Y8pC+rzWtsHLPoK+Q5W-s|-|pX= -zh&i0{6XiR{pJa{PkAnOhSGlD2L3<8e%WtEQP=)u(Y4l^j0tcX4x#_Q`GVYTko-2Y( -zL!Mk41{+b^_dK5#U1P#1`6nsz=zVr0$s?%7WJ^*5NBI{TflWejX&>%*5#4&ag*BL?*b0Cl^*eamL9N`av?L_PT?kc=>6g2&=N3sPP`z-IrYN=WO&2^IWfp`2> -zh*ouurF+uNIkD95M6~qVQYMP1c?8GyvBPhppOV>pR?R>Gxp(v?rw_c~CytV)BQ&<# -z;wz$rZj}SXF}yzn4u3mjWzDQ*Yl}REx8 -zPi-rGH+Na`-{E==OWjeOOuK%qqhVP#;+)48XN{bD6V-^!7Dl2-v(~tv9?yiRkoq5& -zj0ah>J_B48Gi9O>3-s5?f{$(*Gb-T6|21h+bK8wMkuP|M>UrY%e>6Aul15LjLwui( -zm0a=|RyQfgAwYAyKLOi#{p)4=ySJJi-op6pr?c*j7ssBjvy5)^z{X3^7o;YBFy49l -zYlCKZ6s`-GF7L$<;XvjXZ8B|6>yWvO#XchOb9?dnXbN_01qljc<;}_fS&MF8gBHC+ -z9U5 -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 -zs%E2i&uNmgV(YCvT#lc@4Cd2k5{uCIqntvmsv -z0^ZQ8ijJz-T{M;&6@|tHA4EaLJ*Dt&KwXM$2SDS+0rTG(PoXR5X`hX -z)X`sR9Mn&8nPV9iB3`v1twmFKAU-c_-Q+xV&cOd!aQ?=4^`(xRID -z!SiQ%92w`z@@ki`4~{@OXq|D##4aWeH8hYS=nEfK_RJjAv%Kdak=eb{ehpb)np212 -zy7P{HVkv=BhJJx7Wdc>)_Flr^)V5N!8y0j%)2B7RFvZ~0x8ZoZo|LGEnRNw|Daa4L -zgVkg+-(OFX0)@waD`U$24oK^mxNK04s=k2}x?@a_FeevH)Nc9iwB+)wQw=#fVcKHM -zMNwsQw_$RNjh^RO#9fH{&$-6$4?m)QVfj8oNp9E5q|h)P+YfrhE&ZK_>Cx0EOiSN} -z6cg{7X62f&ukpk6k+gD>m1G%#*eFimA;-`^V>^-EX$i^EMa{GPwrq^LnQsX#qqn!HsM1zD?P3`*~H4DOCnP)}VuSB21kgN%fh?aRXvg6J_qZ#4lQmCGA` -z;Ef%O%)xY&3_+Pop%*j*;=XuSz~RgFC#b) -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 -z;-HL%1jZ -zlCHCd`0st-|1L+DE01}^l3HJSnGAk}EmaAawsIH`nA`aphggOpUmhR1_+7)T>X!_V -z-?eli*NcVp!kGvkwzG-u&BNe;`BPO%3RE!rBVBHs5l9`?<{Hd6Kb#7HBPgz;9$ -z!X3iSAubzu+cQ)qfTIBdxmxA-WUV_fVRJl2f`pCq?LjHrW?>=7-~R0}Ace428@m~o -z)!MgKJ?NL7ggY|GR9K4=c{AWyuW6vLyjjKRaYWM`%h?mlu}Md$@ncPX2)$T$Tp+yZ -zs;5X4KH0lmN`zn8F&pz)RimccXixSmu_u)oL^RjPK<^;Ae4kOibvWtZbuHgMPeujf -zgR3uBWxkLZaTwDB;7GT-RNJ})hm5q -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 -zlStKT#;_)G?MHRg!~1? -z_wKw;4YNEdm5=!vH!c!QmyZk>r(u2ZTk$WTGRcxN67Hbr&MQTMLA!#q-|O|A*Tm>f -zKJQ(}fiVgWGA1Sd1z3w3kc!cXT;Qsg+$C4XVc7sRHjd&ZYJ$U~bea2cQY$Qha}QR8 -zP!0xSMkkK;f2ghg)K;H?y%&D;Ky68H$mI5-(!(E+!{Sq{sDQz)DN_Tl!Z#L_iiVWv -z#yRF3f(l$K{4=X(EafJPsh~c=MKDhgoG(W{Jhvu13`GY#wu^j_yV%lWy=@A?}x -zZAiMmynxM%T;h&M?+Wk*VjUb?l@BfWlY2CW6lEfLBq9IwtN=)`QDt79J&-hxp|Ci| -zzRB4G9R6tw6M#%+8bA#e+T3^164^KnEbNQ8+#|)#Utn8*?`LPU`%j%K#eL5tenHfy -zIvddRxA;-#s1@iRkQpebhvh#m?@;z(SEU6NnlI+fW-2qDrn9=-$mcS0dvCrMVmF(p -zTsXI|qpV##Q}&$!~G-Gdvo8;n -z@~SmwEO)moYCSQi1b*v|Z}e?>PHs+zz_bDn4tmDRV;1x_{Z -zSEe>7oiynj`WY60fq7zVxX-^k9?3}Rx!&)cj_n0DvSH(r{^#1-c<9U7pl+C{=+~HT -z_TwXaZn&Ew+>9^lm)o`SRTg)nbOGx&kELGNVx65W2vh-Y_fg+-G!&+Jhgx3ziNK^X -zYf%u1FZ-WOly*Wnm5LpL7&k0?#TPH&ZI)4ZieZV)8)FLH8~o%Qz&OD2FkC4t%<};$ -zr0O6|M(IIy7^Suf -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 -zD75fIS -zj*{1j(&RrQvpD$wus~wOg{zPIkmwQ$We#hU1+$TY81>PJIv%jllb4}f%_13peBjW^ -zJ&33+jDq^xOc4j)CzG~T_xnxA*zI -z(mHDL8K*BWh1pQfpK=GJwWtOz3k?Wnzp=uC!+!J+CHh#H3dd^^GHd+dkUvxx)Owm%m;0K(t3c}(nIpp^~ZE3yN;W+ut>BHN4SB7dC -zVa>+pCLp&Df~t5bA5w>ekZdh+t&7I;Y=4h&(Ytzrt>ugu6l~NH&YRlamDxt<$1A$T -z8he&kOg?}N0UP_!17~x>EqkpFuTO3H+nv==EKd{4exKzz8~Dr#%V5sgke2O1`LQtBQ9A321f%FZtT9?&LGJ?qh}W3X^71 -z`5)tHTV6WtZ*ym#FaA=%c=92({|Vj$~vvJd@oCy#ILKnov~-b7cSS7crF5wbs2>>$tusDR -zF&n(%>DL|Fg=G{$z91Cxd??Ar=jqx0i9<^|ud@qMTW|)ytMd(P2FwW3-cw{EW-WXp -zhnb?R)Lwcjv~DyXlHqx -z=Z!`A)q-ORm`sNEYvXWM(!6Y~i-zZj=3J8feBBa#Oa-c`y5`}RbWqatr+LX&1$<-> -z)=JUsyGr?(6CQOzz<}L;w+&0ZzuMR -z;S)83F86r%z}bsvg9Z5D8S5p|_C5;8(pc{#pjL4hYkD=!%>}Cy4Iu8xXw|dOz4Lgt -z+V|!P9~1d6SpU_)GgKLv|5c0oZ_x#&G-1|g=;x(gJ|qyHu+Q#xBrCy|z!|Le1tBt+ -z-%v+=?@+-ttPolZZU(o|jbv6l+ -z{xqsjB$e2~4(odU=8x-$1zfQJa#`o%XcJ=HY1bH%%Hi9RUJD5XuKGNPKaB=FWIv7Y+`ItKLqy0Jw}${}K@mn+V(%Q*HNniTp!EFMbk*?q`hZWxLV -z*I9D?M-6lEgblK_0DBBDUp$hn1?*oC*)%A^T<_SkRp}2h8oe>qDjqU -zxig#iYr_8@-D>8h@!ap#Q@W-M&;?OB%^%XlK16tWzkC@Opt-WaDDj$Y)`{xo$OZck -zLIcd_mSoi1bgmskZapgKk -zb($50$=%GIvhu=Sio8M#Fbc~HW}3saf!NGBA%sG+{i6%g*5{La;2!P8A~Bs=`DewR -z4E|QG{J<3*%W0l|Lwa$Y{!jIMXV9=(iKUh>LeJlcp}2@;M=A@gtIp>Ex*Y=3^mE|{ -zm&b~vj^+#m+{9zFX7h4dH`OaX7MaL7wzL4D=Fn1kZf~wBTz1or=}ph^@tzxNQ5)BP -zDGb&7D!b}Tc5WnF%{m2VUIWgSkj4r2^^P56+6wz#ou39$I~x`v4p>h7uY4WKpG7?0 -z+x->rnVD)ODBRbe6Ql2TL4Yo@WhSNK9J9TiROT -z_qVRuHcMcM15*McP*B$HG%e)&{9)ibO4Ea$&gs|B@jpOY{MYUtdH8KBnz{k^#Glvs -ze`WAYiiXZit?;dvZ@7U)n+Lte#iF`IE}Af>oG0t_NR&0ibw0YXA7*G+6y*T -zkUnx&5zVkfrLOvfl9RQdtr(*uGh*wOr4B-m;pr@3wG4nVAf<}AESPM1wc&vG$CtE( -zjh(4122N40%+3GY5Os+7o*yDYB!7Cb@#joZrpx_;fq^*zuAU*f#po(boXd8VAkrt! -zD!}X>Ei$H7a^2!r04YmCWZCp?TE9-V$o-B*yoS%!g$uYEP@6yGHhu<;4%w|HnOyLe7>VQ58B9){_!t_e3N*2HLtljSUhldzPk -zupo8@ZCn=&&pw*#(LGwzeevX&V3R3{fc7qKk9+95(hqjr?fN@N-3HWzcyo%)l7AFB -zyB+SGll86Vg5WyTgWTkM9;Tjpyldf_wHe9vO``YK+l_= -z$*y&HhyNOQ>~v7h{x#5vwM*2d$W-9m+vHj?Ao8!Q;>AVIjiO(tVxS2*bkcRGf!p>gA?))s~yESh)5NSWrkN5#x#}Z -zrb>IKchDd^Em&a~dEn)HvJr{h*dgX0ru+%xd3Vh|5{w%ZD=qFWtNawdR*2ECys(D;J~x|2s@PO;AvH@I{mv= -zLRf}je^S;z74y})vTU!I_r=8l&iv_D%B-|f&R9b<>#`vX{$Rg%uSxTCnZ!M(__%}9 -zN-~_H&fxNS5+$~wt3^=$@pO!s?!H5@e`_gZ_3H&mx!o6!3_!W+KCme__q`1>L_-}x&)9-pl`jYtWnocYDWiv+~H!HcqR -zld6ExUA6f+J`rQPO^0hL?eFK9D;>>%(NMf!gDP5mgVx4y`Blueelq*0p=8vvcI(63sT*qL@m_PAM}(WBP4x-wW00*hh}y%qYK6PvB*Wto&~LaPv@yNi91 -zyoQia`oBAA&_e)A==xkQirXkTH24Zkyc4HEN!o#0G7R70B7ZSdq>Wizr>+H|moUQ7 -zSO(olXG5Xp^QRs`c*3s3+&5mC6?w#7!=If8a?v1K=%CL&BC%>RA$qI1fS3}JG=kXm -z@BYJF1FBBIscDm1iE=g;m$JJzXhHy;t}1}3lE%UL4}|WC -zW}7>_*Q&~|+yx(So`-Y@Qly(YgfAzUD9H@bg)xRz$LZ(3frMpoDjn -zuN=gja95|JwB7mL#97I3oCogO$<1RipZKGh49d1{t~0L*Q=)$jq^`pi4A`29i| -z)%>RJrBqgN9*t*SO7qhvd0zrHa-XPJyDDcv#uT(0E^Wp(k0uAs%qUjtCkp%!9GuR@ -zY3TVJKMWmmzSsM+GV%hINEL-xXcdP}<4JaRnsPnRUF8ICv;@dB5}LJ9E?$0nFZU5( -ziXxg~Iq#m(ZSJRk=nExcY@cFKXle@ZOsi2T1mVem59Zk;9rl4=A2m!wy?9^H>HAsTDJGhtYMgf37Tyy)ttLo7;^^{l -z2hI%8JEvmIaq7X=^GxRt)+}*$R6G{`+*nW=YM&P`^ECO-s?$gK2g%zw=mfm@VS1zzG>6?~u>J)Q^`rM75eB^_ -z04t?yKxMv;=c{u7v=nF*V5U2|(rMA1lV0(SoP;2t&Kce>_|~XNiP5iIe}#!Qs8V@| -z8>Xi%bW#jkU+&u0O!4a{7Vy-^jZ#8B`64=lcT -z_J31i!eUcaW~4Ez(Qon?Q{qnXYlzGYe|!3y#~sQDZChf)O}s=sjf{N{j4csxycFgN -zW+caQQM+Sa`+i!w$n}BXz4l^PbO_t#!0|?*H4|Ii7ri#HH=@yibz;_48hY=jDlV-? -zXX=M>?3bwLJ7>aqn(Ue}JaukL$s@%Pzv1}+mJ2Rvq9IQCfU#%dV+PelkU+Y+i4U)l -zyaj@scha1dk4r@X_oEP<3yk)4A;qQ18MyLt)fQ4m@P5mW?||T -z*q@8prilg|QWLPA)0pr-_BgFf?{Rtm#SNNI0?QN@5_6@1%n&>Rj7krEQqrXR2*t`O -zZ;0~+xN%Vw2$<;m>2RKZ -zO~<6CFXlZWAAq8J#m-a;egu5RH-`o>|Hgdc2~EjSppB|q5Zm2;mAZ#^qF(exF~(@r -z-Q{PGZ&T~def-~^uOq5h;wY>|->k{vSDU-fHn~>!vaV(F2LcCtrsmhp>qXZ3s^e=q -zpzg;kvv*UPF^_r&B*dGiazz~c4F>|;>^(Sy|9)LU2coIJlhAJQ$p{s-?{vboweq?~ -zc>P$D|B#g%&&rsms_dyR<3ZZ!Gis74lzX@{#(r`OtVL?X*nU@1yDD;R{>`{7D!LXS -z!i$tqon156RSd_e3=F-*5oJt -z*~%AH5DU9qq(pz2TpJ1C7IPejLH3_`!4P)?@ahpsSQ)d@6x6G&-Ww}f-TY=MTl{eS -z3t}DtOrqHZ^~BIFD{S}oqff&G8>Dl%Jm$uLaYUsOd4zHLmCJ0sps#@2v~Nt9Ed$-t -zj^C#A>oECu@JiOxFtRxGQ8z3JB=NJ?O+Q6HF9$Bg*T8~~d$Q>w7g{m#xR?w)?G$GU -zb0RWuJ=_UD4vJx;>~BiX=JMvt1wY}%4h_f*M6wY;ME=2Nuj?W6_csI3U0wbHX(Rwx -z!G%lp#ci*bR&~n(qtTrUK|=6jz13}YNTF~K=o^J)R;?qd*QA;K>#+}XawLj=>8`au -zMqxp~^BgsbZh*&ccOeQ|0^A5~8>G#6c39cunM^e2*)X8!l5C1s#lF+`atxxG4)`Fh -z`^B05Y^t@pa(!`Qnxj9j=ixe`TWInttpj+yoKymO!|FsCPS^cRM=Du3F_ofd;_$oo -zi7Abo_BS4yiWKqW!0(}nwG^&-kL5-t1{T1Y3QMx@k|rlK%p-M$4gEeC -zLTo94(bCsKq7|jHKriP@35R-;RByE1^pPYe)(?a__im_J8TuWQf(BaPS50M67H)D% -z3eOWoWN2=;V20dvt)5GsSuECbN{7FLt8OFOM~?I|0+A=RUxH)+5E9Ge8e|<)qh0#S -zGciP#7B@lQI%MmS{_guPiN!M%km@F2>)Q#lIG59*w4Fp&@4WokbG5bZB@Tn_9aDQl -zxDtu)Z|OyDcr_{$<@&BR7L=j440k9Ii5YM6;IeVjbl>+-Ly}sl^Fz%qYzwy87Iz!{ -z%st3GH9RfE6tumaaru0O^aEho15HVZX@W$SiDk}6Q@JmdPfRVKfd3{jwWFP)awZ$`8!jwtwNsH7KSV;hI -zd@Fpc@L6`AfSW)pyM;5GgAB#UO`K{4Fi3{3Jq%hyLpxG=6PhK^w(1|{q*Q%#Pi#vh -z61w^4zF9Q9=>5@yGst=B%Y_5u%aH`#W;I>4>CHD6X}S>AdvFEhTVW%Zp`5nYTN43R($d@9{iiEDpycjPh7_)$} -zm7@0p@C~CYb4@ewFw{^=A=U;-CuE -zJ3OsNpLU-?*@!?~>IV%qisNQk@>;T?~3Wo8ffx@6rC0_RecWmQ78Nf5JPV}}0PviV(SngxFmMULvJfSXEyTy9c$Zn%*{V4PvX#n$Ye=~B+ -z`%ZvBe33HT7{;j1JC3345HhlAyC@o872o_S>b|ddARq9|)53` -z&5&|AJp&_HJG{){G*kO>5{gK5wb#{-zdGUBee1x`ZucDYmJI=-aI6ZeGb@p=4-*Yp -zwD(YbX(wY0Ar5$20O0B`a*rpKhU&0$w&kmJfCp5`=M5V;ahWz7E~ta -zNw!w$DEsmJO}C3Yey~d5z3F@8J{W8Ga^P1`WF|71s`Xv*mC}n~V_LfM+4NVKelQpE -zT`rgW^w5AQmfz)Txj&%K(@Sn!sM2`kJ3?Gor%UYnI-Jp|#x<{vst&A+3+3?7fV&G& -zgP9Fa`Oq&YiO;@mOwaOFNHEM)i3QU%(< -z&>^EPzxQ+^LJvSQtieqGyTDO7Y@fW%x-C&F?JI44cB9sx{Z9jW&FHdIeo>s04qZDW -zQY>mIhpF&ZC={Y8h#c$yYAQHLS9w;3HhgGof^w6R@Q7urxva?aTVDXLK+pb2;p*Ni -z+oC^e=8P+gAN>P$lwkY@ZYCqLv -zwW5N)+abH_Ghm?y4Slg{w53#JZ$BZ|FTUbOBqo)ME*-wZjR8XDU}@vKk$S2uzxeWn -z2F;jIM*Uyj;8uV+fEiK0;JvI}Md2o6P+6cyVx*_D9Pjh4<3_D~sOA7SO5n53=NIP~ -zZ@Z%parhw8Tx_?e-l$=Fe3fF7ev>7{vMoTyB9= -zd#OOINxKte2Z8w`Q=J>BaNpw0)`kHX@B4n9qAK$aIRlMLHM;o(K@1H}&Y98qCJi?A -zJI=4=FY>y`yvuQFRw9{R{y}3*(8>bMOsq4D|AfEqq~%2Elh`d!{=6T5n;63u;@ms? -z_Z4gj6_AO?$dAq_K7;!g6~AF6;5WBKbp&o=DRlSG^i?{lVTnyV)mqyslkLzb4Rq7B -zZRqlaZg1cxrJdtnZnVGB!ZXpo44s-Iyg=9?6_`#5U7ZW!mt5*-B0_%k0(LoN_KQNc3Cb(kNE>qI6Jp0 -z&zu*-I{K+uJ_RnL0iS*7Z(Q6JcAqk__(w~iiC}LIV~h-75$%~}z5$J*3+2BBUMAuX -zz0({8;f8;Ca3mGh -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 -zTQG?NvGJ!X3)LWnAWhOQj-g9o!I5q~rMmgJ3Z -zy%L>|lYo5ai%D21d@+Ff`i9i?z!7fE@MddYNVEK8M-(Kz2`$CtBKdY-R5*QE$p3(g -zmcb4k;VAzTK3YDFRXWabO!iMmyy-2lp~TI&*^ge|wWG6ZP_PhaDSUMdTdTPBA)`L` -zHs%*`1WM^2HcuW6x47qEC@i&GKs0rt5Za$S^FleJfHe4km5uQybCI>NnrtWn3rgtC -zaN8`iqNsw%QL+#H@Ns?5H7uLXuJs#e&Se|df)p&92%bcK$FG2R6@k5{2deJ8FSM@e -z)3yAa7PxZygX{GTduaMzb@GEK4XFRg@BQ12jR@~4`@;bC4E9KK(r&QZn39aS|DW_3 -z?Jzs0-qD^cNw0A2OT)+*dI&=q?3ycU_z?33V3-h|w=!eRCvmQ(W2>HbG8nI>4G-t5 -z*t!f4C1q5Nd5x|CLl~&+yf|Rwcx-y5u{E4emD(w*E=9~c*%f-cak9|011R&ry?QiY -z>9tX>g|n#No;v!C@~%BNIPlnI>W(dL$?Hz#8ZJ&>Sv%P{*tL)aq-0> -z1%s|#6&M=rvLwsn+}Fa098w|sj<@fz4c@&9OcmTZj;&V|nXuz>gL1<=S=Y#p;_!;S -zBu0@5N&3oLm2QNhHzU8WzOxXWaDtu~Ea~&j=N#=vMr}Pv-m>mcvLq;cRK#7q{t()X@> -zWCu!?UW;nH4UlEFuLZpxg|f`HSzgyGlf;2RbsJhC*4NU3sebP+59B`i5 -z@rmgr-8{th!`(zb;`py>h -zD`;F1ivPH@8S1@)$W~N{M*k~UCu*R+SCc^RlJGwV+AX4sbh54X(74K>0jPWHnxRc5 -z`+w`S*xhmiiK(c@BvlKt$gHVkKKSPkghR|HV@BwPiU(ok_Ywb0sDbL$PeY>>wvUR1 -zeYaeOY2 -z>L3g%W)?qbtOFY$lf4JpiBdd^%IG_CbjOUs2Qg7tdr(x*p -z`XzIWl#~HQ%2;9@GyY`iaz@=5btrPxt>m!y9mG5XjBq{f0fnoO)6CeWf8Clt-~H1m -z&E#6qA5Gx&_n#0<`U5K8P;CiGvat{^_Z*XqU*mLS5m1mT0g^j5O9A<}H$5+Z{lN3` -z>?!#`j`f>-u^Q5`Z?*M-Nsf~I^)cN6@n*!kHv9er*RML?3EN{1$Mx?>aa}v>x_M38 -z0HNT4cqrF%&3rA|)#&=-fb#VT20s-JlWF^9x5_W)!_ZD>#$!79bn>5qKWW-Qaa>e|<=fi{}HE{A4K2xIfHMVgsnC*K3{1l%4Qo?F!_s&elf& -z0N~}odD&l?oBa%hW&6?HeZ)L-Xl%YVIC)?y|+*WrtZjT_vF538o<;Y8Beg{5`MY*%k7>LbN*tR)fHGy){D()8T--$~oPmbMM{SU-wD -zwScCxnLQKc&LmVufpe)l64y>~{X+>1byp9}QWS4kZc>=33H4 -zz=eWD!C#yrxdlJY;Ijrly-_~_ -zB-1I}ZC2y23&!O)sW*>7Mqx6f{^iPE${iizH$BD?sAjt#7brnuW -z9&M(9YjO2;U*R=-*p0B^BO~TJkW0c3rxF-1m{X!(l+IML?;isUI*JU3tQ>7(<|Cl3 -zEWY$HL5=11JP+|6JosH-utCiEhDt<*SO=Or@tqgr>Y&du4O -zY$52p;mSJwI~AK+p(W`f>O;J~dxEYZS36Vn5=8YGoVjHIbYUwl1?qh?jp3c~#O92t -z_vImY6=f0B3Jp+2=&d|PlbM3?*A0Yd6@;&?-*dKltHEZw5@XeJR1bQRj#PdPe0A&l -zlsa;c)aSM9)w_@1^nk+y{UXz=u}m8BCqtsM^Mx8Pg9&vh_P+OP -zvIACeG1G}~m*f8QdUPg-+wYuEdzf)cU)}j=BAZ$40m5@u%8BgdgfHb#ET}h>2Od2Zkauwl{opE<-|fKkstkT6k=t(Z!@9hiYU1@JdL3e70F>t;~R -zwXEX$r{kD-tY6iq7irMJ*DG1&st%A1KVglEcbdic#ME}u_^Jk2;zClk!rzUVf}xHZ -zqLwmYr%~^2r3BkTVut~D87!cL&1n*9%z63J|0GsLZBDwiTA?jLKcd9gVdk>|Mcg-2 -zMO=>hh@0PJnH3qDX&~*i;1g@o5@e&Ey-D#xiXS;wDEe}JeECkc@NIc7IBFDv#8DCE -zZkWLAas8vUkIa=&JTBC#kp5LD`u?-@8XHBV(lVsO*4lp;??zbv?CL9F{kgd;1wL+`Sk7W82d86B~Y(2M=fLq|2M5%iPu*q6uI(cMu{qq#oW -zzhmzW3fy(?=eB`PJa`|c^5OkZ`^|(T;)Dat&X3jKJEHydg4J7YiYk>d2IO`oD9(VmdDH*`a*NwQp`@}xJ@8vz!0B@gDqhE{0z93r-$hzk0w -z$|hd1X%={{Iv&n)R{%jP=-gvVUv*IQ9lOy$V9?tqGctBzv&(#CP(^=Z|DzoQy8-Kg -zsS$z%bG+8fo6tS^0z@w~>7gPok|blSP(XzS&t*rUa@tjK(C|?BCe_`n_;}=MKKKJn -z5gNtoqgxLWr`PL#Vxpo#q&GdA<4P#c`*4ONlcwB~!|Kl&QSZx)DR6`KX6gNn9c-X_ -z(d+(}be*5MpB~mOZR$T5$p6FlcGX)%ELF#HIsL>fZp`#wp=$+J6kH*m -z0T2%408%-N>hU!myzT^_PttMlg-IRRoR|EMy&hRSd&;}eR^tgYErH$HV7OWK&8T~j -zUF$B+Jh%&cv8oSFgECA*QPGFVdk-amuet8)Vg)~w2o(9elbB?ePeW9*#LgH+?b+TF -zn7Ps>#0XncD7O@PdmWyrHw+LFC^rvW%~m`Ux)D?V0iB?)B!oGg7;FOak!TZzCWsOc -z+@SMjt>w}IeojB0VpQch#k&amKAfdx+l6UlIpxTL9t0hFhvdRL9Bo#(D(O)aIuEzXI;L2b^1g<-BUb -zn%ARLRg`9zK#R(7)A4|N){*lM_qnHAWA%UkQ|`m9&Mqi%;2JyN%PrCgT#dvLlMqk| -zwR*&89dMgz%#KmF7BOaMYeb2wiRcmVuFx)87sJ|=;ki)n3CVcW*Xs -zw0~aDKpd+Q6)qk{8E8}k}AyaCj{*1%$n;yH8 -z?ifi>+uiX0c~z%xneKh{zHKIXgbb&r80m%EobSX>y(TpTPXSnXAJ`aZ8g=^HwsTWR -zzYjAbW>DdJ?u{w-rkM>FbNDn|lH-xY1%~n6Rj<4&bS{*mv-44MKVQOYy1V?ySk3JI -zixB@gi`}XfTtC3PAZ5fY6$yd*zcdbl3McDvU!7ONUr%*v8|{Ft5Bj1L`UB^|89O$w -zHuyz6p;O~kC9mCpdTW+apyFraWeP$s=zm8&=+WYv2g_wW2Gm3UGDqPh2=)X7!#}XV -zkf#mq91lF~UK_c`29XO+C_$|#9;e5zUWpAlkgjmQ5leYWiBSb$HIN+I;riyw(zmnM -z`li$f;`$S`Dy8KWLKP|2{p%)$H%*jQ28H-J^y!CrR5{q+x_+_y>I?(q#^;R_YN+l) -zXQskFB-n}`{!S83`mJ%sto9I!b+~;HURT5H2py6Xu~i%#*Uva|v~?CIEor2x%(7ED!}E0tcv -zdX+!JD0mVH9tW8FSc&=%pDu*^i?OAPDZJj!{?ws31N$}lVb#`+#pPeEN%%I -z(C{i*(yKO|2`evi;{Ji^>2}V4rd(4r`^}ikE}QNuDS8t~By7hk+8T-RP -z0&*2JJr3J4R2*MYwhuIY#U2n_DKJ|Y;Zi?(orjqDbWTd3j`&jhNMYt=A11Sz!`x@v -zHN#nPyO1HcOqFw+cMJ{9&r(8!@FxP@vUac9Gy|5;-1Sa=;3~$%^oV7~=NChM1H@do -zZ%iaiRYDi~CZ4N5ulYnlsP^XrpS9(wFa)9l>7MO{Y6cd;FBC%3$8;hB7UD=TzVh75 -z;MT#@IND;96lT3vb6tFOs)U_nC3vXJYJ8k{4%^eFtw?iLO^WZxPC}p&dl!==Q7DA` -zFLYaH{GLRYVN!+cr@@yY=kdlPkG>Ic8H>fSp}_w`($x-6k=^(WYAJqNb;U`);6Ul5 -z_cS{YI{)pmk4xH`l!>G_`pwp=cxX?=%{1e2rCdbZG -zC;E9599s~jlW6g!hRQE-;otAgBd)pHxLisltdF3dCTb0B-N&CK+B=vVlrjQn0%ShK -zzUWOx`#^1(X(kiT`5ZzHtB{0TJmjk~ -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 -zE*@PG8zsB4cVjl!tXE6V4=oqp -zir@SqZKuhi^i_Ff-ln$11^)`D%y;hd;HJ%ch2;?)vZdjkFdk{M2R%}^pYT1s>qJWa -z^pqi|+9s==!ZMf|c*s`?Cx$Eh>?h=Q9C|3|jG2ghWG*6=mKvmUfe@u)?woSEK)g|l -z{B+0}RTO0(4w;MX(a9Dh8JtEW;*&gr9~A?7MVl10n>pQ*d&-kVDi(pSWtg;(Q{b13 -z^2owllC_o(1LRdsLmyBdZDn-1dv -zpLGRiSTPUXZ9OgiGk8*pDXTTEjZckcQEIY%jB=6=irC)-U&e+E6qR>^>}^Kung-u_ -zuiERCbj#3CA?j@dpiAN33C~Vfi1|!*T*-gG@Nksn{`~}JodH*>;6H&ef^H%D!O-3m -z0!|<^6Fx?^)MWEAjTXw@D`fV4X`~fUw$B~aUSe>!8s|hoY^cOG1K^1U_6KhxbW|SY -z=+-QLw?^imOKR#p967jPaA@I>d|_hQTOanL%({4T>ip-QT{Tf_~WJx=D@o7a-Q{m3*Ddmv|zFbYg90 -z|5?}-j!M(J^FByVt5Ia8Sh#VZC+43GNOsYD>_571h7@*JZ$8$eaas)QEpEZ;M;VtL -z7;v#qI{`L*kawT%VxG{kJs9(w{o&h&5hv*X_jgVE5#$ZGtOz{7E79wQ#!(o{FB(U{pw4}g@noP*cm=z=;Puad`@lJ;^{BfZ+%0p -z9I}~a8vIY1qr-xEZZ)Tp3XPOwVcJKX;r|n6e(8g~`=Tr?o4lkuCM(#n7KX#S$?ydU -z7H&<3soIH)PSp$jlt>Wme2doWPQ^RotSsyVA99zqheZByv9@`h8m83`A%jTK$(-*G -zCo(UJ^twfO5rLkMgWGwJhS%$rkRhZ`h)A>I;S82EGoALaw{0y}n#hLrD}&?|VHhY2 -zL~_42de%~YZRm(EWE0&;EVsf7xk-W?pC5eM%QWJ((~CRu4KK-I%h;tyxl_rCiPN3o -z8Crl(7ZMEt1K*RR^E@49B$QvvkzGZ7oBnmNAF3614$)+_kHcwAmh>)wq!Mh{Gtc7r -zNeOFzrPOUP>4_b`JB_=iXs1z25{dyxK&Eh}CLhJCfG3e-CgoHr7i=*zX5k5j#y79V -zgZ?PE$rOCfbtIK;tZ;zIKEeEx?n)4Ni;E%cA~yCULYfUq(jt)kpO^4O8)?AYzb%lK -z+kg5pJkLytZEWdd>pq<0a(Q69#Y -zv|}~n%DBUemE)4YtF;Uz%$;OuQ6KR1WOx|bJ9*Szg7tsps8Z0(EB2mMeht+^{Vs2! -z&Bs=i7r|lQ(9@4xs5DdU4g>eyWCmV7$Bf#ZXc{(+qS+@zTQeb4o~!N4k`)m50lrio -zYfmNM-sZsmg0WGN@j@nU%~(YAHLYTgqE^9|yg){F@#fCN7kd-FFPpjs;!I|Gdu^Y0 -z0?0ZS`8`X|_QKb`JdVWAyb&B

~=17FDXmg>_s8%XvH5w2WL6ygKUEbl_lnwHaSA -z=r8r+%2rh^0>Yg-omh%Cg2zY&n4IOHH;T+}L^j4ttvn#vjCB9z%W#P<7Pf$3a2|Q{ -z1|I(*i%g+uXftW(EaH`Ley7WF%_3LPISnc(D7cfUR(wz=)1UzScHW4P{slJNK)=A6 -zFpM;UghVPgVH#>5N2wN)F&LO}vw2hx3W^go(FGW{(!({zAiV|Opn*Pa2HNomG#&_fXptvHh!s8Q -zG3wR?3e|9!rdOWBGDg62?zdm0l>DYKKgaj6+tZ4^;k2R+;f~w0|6?iC(>nEK>DBJ7 -zE;d?=tGMGAz=VO{I77zrW#nKK^V?SSWp_(sbM(pf*r3dhY2;nf9&LFjA;_42KN70* -zB9y7JxdPAWX!{RM%huiT27f)i|~%L?f*mSt(n=7dd3&mfNJ})i*iVr6w~Ge(Tte@ -zXDlobM`F~ec9BOCOO7<<@-=5lK(FMXlH&u>iSSOpLRN=8BaAz^Vs?c(M_3EX_f#E! -z3YwTmN0m1&yI(jk_$07)wBRS_YJPw`9(?u%6Dv$j@vW?yBD9xk|XJXmi2ygVnM`N6F5E{kM{*%#zBifY_GHQ5H9`!HD_@ -ztSObbn@r$Thxm0)jbd_7SRjNFd!Cd4{?;&R7?{;wF*0(l#b=c;@8Dmf_wWJ2U+5$8 -z1jsjf>KWTUDfpaOPIegFCHVqu(Cc;*~&{iGtJTTe>36OIZ2iQa1H_N?q!o`k`4>X5UyinTQAugB23}h2@Xdr5qMP4M$+fMAUuhLBEkfRJq2YgvbsX6r};pSk7@+hDPxQ! -zK=ar&XWhKCIsrt#%W@49%i -zKY&|Q2eFjPpgpVF_8=+hOd}r~Dr-;LmQeA}4D91a4jva!(?oL-Ng7c)#8|V-5_=wD -zJGw9&Gp@EBp-eSl_cnFU_ZU5Ji#)w(M6GLxs)9q_fcFn6YHX`0WirUg`O>p~E~V=R -zU#z@9BbKZiA3y-%91I6=XBW~6#80Io$X^yOXCejr7jYOSI^6&piVjO2IhoPKH#*Eu -zxJBVw)_d8*yq)m9u~D$S!~gz3+2V#IS&s6xG?WJ&f9_oIn{DAZyy9o0Ye04-!D{FCGti-=Lc -z)#pQf{H02;@MZ(Z}euXDnTm5oR0uZ(2Pb?Wy&S_q{8dk@c=Ep#=jUbWp1_OZ;4wPrd_RqUO^cW7E%d -zR0H-vd$C@-T~8wgIdKOr$x$|O?%P;&mT0caku~Su`548Jte`CG{p{2akIBCjoXxdv -zosO8Zeu;4T5uOcN6c^89yGswXYbz^Y8BAUgB+`6{?3`u9Tkn=;RL4}0ov -zYFa^h<%5%<-u0%f}n2ybb1eWK1V;_Hl$#aBSt=r%tR?I|$5f2Wf)%^M7&}h?I_Tga>0&JYzNtfJfz4bYL`DvpiCjCRRp~BThsRBjVFe`!&58 -z!cNT|^6Io~sMaXiu-+fWHXb59f-Z*1|2kFbsJiW7L#3WdV96t)<_1=J7ZX{K7g-;) -zeelMCzmuLS;W5E`{Asc}OeeN)PLgi@pJ`_zufJ4mfAtp`TC{d=Xgb@M6nqe5crmoo -zSWi02N9HFk_hV23ImXq~Vt+SvqnK&>T%H`7R)oS={*52a>ofV0$d*9FXgCoB9K@sG -z*!vUA^*%`})7Eijdd|D -zTsC^C3A;N0$yYOotn1*eG7>Ovt`NN|8Gi))%K;K$re8M=`HD7JJ7md5jR%lPSho0E -zz+Zm3DK*ovcqRTLbT4IRTc7SG6Z5YUO6aB{`Mdu!95Q|_Ycy0DKu>=!0QopLS(^*- -zx2M_T7B4g%BasSFm_`O>n*E$%-#&Op0XR!`#73__-Qj9GZo`9pHzD#V0X9FGbzxB~ -ztn1n9X_o+34y`BicWmF1cW)4@GvAr_=h!tST2lR9VbOy=%9-21uK{6!yjB(OgI -zp1`E{ym(!Jzk(~ZF!{G=Zk@5#m*A}QC!)V_vo29}`Aj^q6fodfO}&Y-zJ=KrH5uOu -zy|oV*=Ef{0g(x}ijN#N4hB9Kw>ZVYlhK+0@*^4kNTE+F_yRGDKkKcsfiFXxq^}c;^ -z2||dWFa7hCCrY*shPk$Dkl(*3A9URW!B2;W%W!NhfUtz64XaeW$e+oSG;?w^3%C_ -zA7vXwF+Y07OEt+Z%kBhO6jo4~JDPxl*bHS4MBHQ0asqUoE2s8iEWP4>(4TC?C%IT$ -zf!c2NF|r^+oqL27-T?e4{BWt~@Y%Ztn|P1J6>_XUJ7VU5BJ#*xW&vfxgfJ?>-So#y -zUdt&fE| -zi2FjR%phRZ5`7$b#&fBL6jT}LnV7x9nePBk-I6&5l~#I_5|YYnycyV+{Byr;l1LB^ -zPVp_HK5K_Ht^ku`aa&stL*0`;sGy3KUHoHPfBwR*qU%W5$o(q#6(STHgeW`F1imPH -zQ}pr{mt(#!dcZyy|H#+)NZ9|r9b2HjXWhgUTsj~AR9v^(lEHN5jcUK0TrRQL0?Fia -zIW>%@mfvQE2u^Hyyx@05PknkA8TbT>+URwkVQ{bYmF2Bp2G4F``IOiKQ2PGHy8P!U4ls_S$h1b->O@YJVXCC;$hvX$C6aS -zJHx-R&$-($63ns(Dst~lQmB`>dmSV>$-EK#>wvy!vcxt15I({L1b>!nZsX{PB=0@;1Fq96>eUb&2}|b&T+TVPQ3MM6oNHihEp(ChG?@^g@;^&ruQEl8m@{}ECVdM4RvM=|M{P7k@q9LlAmd%wN+vW=9M -z8d0Bl?yA|#3qlxb%T{9vdlGGeEg#zh8AWvH6a6(;LxUccuTjhlf==CjKx=tdNY~?D6b=K%gTLPFJSC$|@JGC8&2Ar<&>R>me|SH=f-L$; -zjG&lS$Sd~gt1o`5a^D%ch9XvHf&tl%$vH@HOb8D4Hj1F@KnmZgJD#X;8Z+M}$Hb|% -zej_$K(#}Snr_V)PXH3X9&y#iIP2sL~t&N8exzpEscH7#ST9svA{>@}tuR>&W9As=F -zJ38yg=>CqKcyEceBlJbtK5aP97&H>Umz(hF%onSl@bU_5ipj0VP8OT9MW@2AVuLe1 -zH`jz1a -z9YDmbByS!B?mmOmgpIU~#aA8Q7&o)zvi`z$6=(3;~fnX5G^g-Iv -z^Uk1hR&_=O<<+E6PSdS1#?#|>`KoPZwsRU*^-x_^i25rs(1TI?_A2Ax-Q;d9LE!k_e;q^ju>l5W1&i2?BzhMUeS$b@R -zzXo@)zuXxlg(Uf+CPLQrNV`@2ezRNFVL#=fi3F#>h>?~j>XWZf6YUG_sX3b^WNe@F -zJ?$Fo)VFb;`p4*V9kj!MTaveBcHLwTR>bJ9*vZ9njkI3bJmecJ#rEUqf63NApPB3~uS7dz)5T?G -zm%~Yfu<#Zdy|6GmyFbbrr8=zksz?mwgUa6s8-@f02>_z{N7U72Vw)#p`X92Cr6We&wIOmnfu!Q%-guEcToTD5zl_oh;r21iYlqY8wi -zd9>t-Lkj%6qFg_CJ9(ynGlBF#?EbE2px2oL8RMd1iTaXmPD|dC3SKidN#?o+=_fg0 -zmVk1dUFOzjKk*mm%+ab!sb9|LOkEIGhwr_=^P{p}!4-B8oAdF_5Iq5h`)Z0`u+g&I?<6z@$KpduoQ -zd04`sQc3+eK3wm%`iW6lGv8ugH&;i0<#~q^5_kSlnji=KJO- -z2CGgZUGT~TEXe0x2s+s -zT?zy>A}p5xMCB=RrUqrrYJq6(s(N|t7D*;K{U*yl&=0Uh=4gFeP#;{HN%NbO81ii> -zqP6U1?ycarArf|qLvI6plBplpn=qX}h#hqxjG@fs=rP(%o(;*V-WpDR6?4h>`BBu~ -z4+7?p6n$bWO!z*df>a9jx-Wk`UJ*3wr?6Zf*w^7UL9feJ==FvIw{2f8U%HmUj}wR%j7pzESG7t&CylA0lDTY&b(Vfoy_F`U-HKqedgIEorg^2e{j7%pjzTWuO- -zn$LkIdAo;p@F4xA{AcYHv>)8N>C2f!ma$rXY`g3kvSt|-Fq@;0mC$>Uss^WQ*})B6 -zNMVcdo>q4AIgg0_WZfcB61{2bL4F2w#jdvpI@syk+7#|j4ZH^Se047_4DHisGtCjt -z^8LrTF^h`EZiUlrRlAw=y%-6K5f1uXGJhB^#!Y6O6mn2cb8y{!9({^hB23SJ`+@0v -z2TA|S-jC}ag*UgODB?s&?8}(vG+`>3ow-6wjGBy<0|tk!nE9r}BdiH)Hk* -zL>=QhFV4lXJI@zkiSupP`k9ppsvE3a)l -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 -zq8ooQ!ZRIZGM!(cg*6oWnL>wuqCd -z!0xK}$5G-;$P0Yh$;g&g{PhHtY?3Nk9!mTP8cR6xkbTWU_u+iK@az{SZfw_)h1%pp -z6p@}8|Gl?1LH{qe7?0Ay48Gme9LHmhXFxogX05bM~7XoPbKa`Ep8XftBH -zyk`BQsK4eIJKd%r``L6cMKhc+>mJu3Qm^2iL-eP~^L8d7jw!f>KP+(WC?jC51iMlnG3>Z2g`_BH;S-Dk(sI -zjsZvV`# -zZ=s(ny-8%TT@!o@-zq5D)(5|H0$@ML<~cGFI`B>-N6QCtP21Go3h;-t>INw@oL7`u -zg9HACAv4(LS5%f!kv8pUn`89%4>hH_Qv<#j0v^VeSd3Do``tJrOQgF~M?HPWVySwVoPtI7*S5t_6DLY)*E}JtTkt3?GDS4U)R8O$<8c -z(_1R{S0<4%iLgP1?l;?i)Fth~jz)kR503eA6lX`mSRp3G!$beee{+xGVTL_wx8p!w -zVQhh21bVkcJ`9fqlUL+<|L9v~?%tX^)wW=8|6pEP2Ys}KI2GbMS(w&x3N-7{(w97p -ze7T6u5lB!uo`GcRZ7g_i1ra-6*k{u}Sgw4{IcZ03R6EpF@?)za9vcNUEDZlvx4Q%O -zQb6gY>pq6K^J;-EL|ql#0A)!%lSOC^w{g_7=TUza@5NZs+S$=71ZH?t|CU?b*ns3w -z{N_=ST?Fs$U;mtmSudEm05^DW606~ODG_7yZ_XR>-p}|40CP5=4KlNW4}TVn3d_?$ -z(&v-h?C!v^DyNy6Abd}c{bJb&{a(|4xE8@QImz1yW%IHbq?|)x4#a=7S=f2CdMGx% -z@Ce1Uu0YuPeLknrvuIZwqwgcUKR1wEmq^G?;eEws&Xty|$)?9Y3-iXa2O(Rh3~*o> -zbNubGVzcCJtvJjIoU+>$;Vx&-ZWt$>m}o5_97*lv!ev}Ki^I7E#c;vqHk^!d(k5{w -zea^w0YNh~NYMLw1**9)8`Sl%Jv9#I}->MqLkmwqupW=x^p`z_~(X6UI41uN1xIClr -zc6}MDpLXxN(7(uKSe2#_bWcA_m-V}V(C~QC8ZtFqmMJN_8EJhU^YWB8d`Ipfrgezwd>W`80gz5dBLNrLEa>`NKyTg7A* -zof)U76yal$g!9|0gTlqhsC4`V=ok=-M-y^qz%PVvo-(~cPD;0TltN6h|@2sCk -ztEc)93BXR)1xMIF%?grr>EN2jVMKvQD&BR?*fBO>QUi3kv0{(H -zLNc-#ni0ysMur^^XV~wi7XEoYlb}^)U}4B!d~f0uv)S_4)CVSS9Yd%&#??x2c-MU> -zt|xv$_l@VXiMYd(7$+q?Ub)RZ!LNglnV%sJXi=NQ_2`=>kJH~oeb%kY8u}EuU1Pc0 -zqv>h)tKl!K5)^XHGp3HPPM=_oH9es8*JHoIjPy};zXdQ^p35{a8(j#WIjErp2J?#~ -zBUVknhF#p;Qe?(uN9}QCKB{af1)Jt$TL!gK{chuwj{u!C5zGapf{4?B66ddEgk(IC -zdQS`=iys=>{zw$49@56Bs)r&DDwo{q+K-`P9TEUG3u<%X1>+}n*nQcAU%CgX{#E0M -ziqQ8ITl6}zG0HkMrgdpifBjqzS-i4qD|-%qz#~l2_Hx#|ex2jE)tMSBQ-p}V=F#Zs -z-V3|#D&FatfSw$O>Pf=TNG0Xeu7C${`U2B34wQtLRoM{_g^fMxhKVrq(W)f8^62}H -zw4#8Cxm_#%*BY%56Po%7_d -z5}E(}5Dns6&9yxw`ZBu`Cdsq$!%RvuRBG+y-Xd<--4&Ati;d!&+Pv|-RWs!ramr== -zk;$9Ye3HM2lYjqV&=-!OrDFl581qH0VVAmcuIPg!{tTT77c>x3C+3BOApQStT6&US -zlUNmlAAO+Y2r? -zO9q1a4(T(u!d}xTHXfc4Sivb4IXqm$jztBv3;Tho=t>K!>&*dI`?o-zw&(c%yWFvf -zg4}oi8bS`zMd6$n-gE^*P+vBw+?l9!x^Yu$;4)&CH&(qs+5&V2P-w$u8x%Sj{Ba#2 -zM`T>;(s@af2F7?b^svbyG^p^oQDL6k0rvh1(Y#UoL61@YELh-k?D1s;=C7(pc+Zd?4Uzn*-k%Z7C?Cd+UP=c=2Q!Tqh_ -z^!;YrFKcixepLb5Yw6^h^ZZ_<2u0mtx_Hkld3}a3|IJ70nYd%dGUKRm6NIr-?R!rL -z%)VhXJejPm%$R$nU54W}cpYg@qOV)x1?O_P4XhE*wJK;zp69EV`N{l#(<6@2mV~=i -zO8<2jfuRp+#X|{QEy(K)vUmh5RmZf${O5Jt4-eO~H?6n{?K)DQ`{V4y!{ehE#f;yA -z{AUrzXtA3|YzkYn;yvYgqjvcYi02Qe0G0?Ey|YtSp!;!erfF>2svfJ4-}@@p6_~LD -zc$@om(B2;bB=+1*49G9h&c%F6Rzpi3dj7qDDeOQzu|RD3j9x`9{!`h`52{Ax30n{O -zpVn_yGiX?!hfuXifV%)e%mH_&Uvun}9J`8vUrZuC)ruPYhZAdzGRo4qgDj1kNqNuV -z(ktyp8ocAaY=cpS#Sfyj9$>5FB~N25KQHW}Rj%Tz!>yH;G~6=M={C+X$iE%i;$zdU7xeYS=ceG!UR5=L$QT@I -z#y#b{_mx3qqidf(z*pimM&gsSxLcpsuCP))z*Kq2aa6xp#fiH5&Hl_3lC@=sn56dP -z|BKaD_T)~;%-_rD*A=|v(X-P-N~$HWSlNek@`KIWl*m%5K|~cbo-L3sxr^G%YDov? -zau3q4xEW>#?7@fxJY@8A9#!vjvfsu%Sxw`4UoKZZ9XPi6Q!CQ_h##GDK -z#&3={PX6OGNE4FQ -zg|wE4p}}}IF{!{A7O3!zxj3Z4kz(@mF?R@g`i*JFQWJhJOu+|+uh_e}*on$53i*5V -zyDw65jY2`>Crk9Fd+9v#o;2b;2%z3ep-iIWa6WO8d_2&rg02!q@B~6LEOBQ^ce-0& -zztqCcEFvbQx54!246ppx^Dl&C3lYb}Fl|Q^t7Awnel&sd=h*q)@<5vD?kfLncx{Ar -zQ}~93p@N-(dNE6gRWLl4jrfWrnqGP_2xl^Ae{BrC+cE4eJe}qZe0bUnwSOKSjLaR& -zMzP&JM^xnd9KB3|o3R=I@2*EB=P2H*l1X -z>pXxY$#T`^VLQ_3XZRQ6Ie(38bBtHP!GnZXC~gOO^3;?raOPv6U6`zyG% -zvGJW_p7otOl}sX4ih}dMK9R<<@{&!UE680JtW5x5z0D1KV!CH>RS$ePw08ynmRrHr -z@zy(`|DH8S*}fxas&bN?|6o3(sQhXEn~o7X$0ZPeUukj^%L)|o -zpNr!tub=Xl_p`#37k6K6Qie!sN#$aH^2v?px}+(ncZB5gOsxW+DIN#d<~#C)X!$9<&CF*cS$4d1o~>3VPE~>){RuP;djLje5~1Ote)?%18X~R -zy5dX3bfTb5!*Ju=`WGcF$>$G+qW4@j=RQk--@~8Se#zhQw)y?1y9x-un}%eoW6&+Mp#;1K2nfujFAdQxtbMC$2HxwRk~Gti)QHScxdWLwz&{h34b35VfX -zR_^;W=_mEKuhTD`w#>6i5S0 -z`#0vvrLfn-X5Z6MmKU_5Nd;Nhi@Qj1YJb{;jXMkXD(b|P{ElPSCn(YV|6-oP^`)fs -z@@lv<(T3xfE!yh)_YF?~uXx}IsA$<8QO$_k;_5e!jbXUN4op69PwSz@kKg{FNs3`i)L&WJNW}N@n6!O|0>kqEY)M3l$7GR_wtOR$6g8|QqA-;CSu3NeT%VoL4@&;ADUbP)wy!nBKy5+Yc_*1JpGH-gV3wOvJh&y7R^zcIYHK#1~( -zvJdMAE1(Y+POa|zNm`yG@bV`%XWd9^@j^}PK|c5Wnt-DsBfSB02iw6#xRr7*TZSm5LL`Zsgx=G6z%hd -zRoV{OPCK7WDX;4GI8xA3>m!dK`We$m2{Ylz4KTj>c67)puUmv0x`8-;3iq&me4mxM -z=GS~IEJsDAomgU!Tg_?}(wjZwau -zsGJl=y~b(DXa_gLT;zdxKZDfCxvTT)?mNc&OBI+FJ$$3zwL!i=rj$@L-Wy`?)&16B -z9gv0t-|Y|;j)-)U8>-WJDY43R_w+7MCv4$9iwEu&v}p~Wy>BiBHAM{MpPqprp?)8O -z1~qG45bL7S?j~GWYGZFdYZZPiMh0)sexSVbZAElF28a^9E}ter=_dAeH!x}NvQX$y -zaPROK>)JfiJT$gS2p7%jx20E!y9lg!t`FV3LWhZ#fZgQ&x4c`*?Bj9bVnieIWeA>t -z!~d>tb|Sw(gNBC5%*_9!Z%f=?bQ$;Zsr*A^7=(j9#MUJ?w_V9f{pZr4JY{I0 -z>w5I(Kt5DM6j}V&k$5dVpfm=Or??omrYHg|^wOKlLn=gXq-qn^B83&&#C=GC9YVRd7@R=ry8CFF$m1C;LOjjDzk8 -z>@wptbGhE-rCc!j1(VS9%=j8^vF#}e8ElweM>>BC->|c2O*|`q1R)IzZrKH|<5s_X -z1M(@@hMLb9@gQrynA5xOcLy8=I}>*$H+M!*S9k`%XyfuF*-57GRu5jjx50TzkTybB -zwgFhqXbt;m-$fz1dE3lfCN*by(6-oDz=hbLzn5>d$BL_NDG{mBI7F2>g+S!F-F=Hf -zAV>QwZ7lrtDuy=5HI?=L|=iA5C{9+!Y4_~RJn_JX;DWN%vh8e`&5HYj- -z5jK&>98`p*>`I_cM!5>S1!1a*tF8%kpz>&tj}zqgO1!&9 -zy+#a3jBJvf*-<;N32q(;wlUa~RGb{CAJgi(P6XaE0L^?dzMf$O{g%$ya!&>#^MOqn -zK&Hc)7Rkt*{+FTWIu7I|nT6Gy)P~bZx6?lH0Cy<$(TUl)$_J~qnNg+irX6dq-yzX} -za`qM%SZ`gf`TCn>q*{N%Qrh#g!XBMCByOQ6fEHR$L%f9nl65ODsa~+bv?22&e3IwN -zMTu?%BGh$X>?GJ{{)$1;;fFf*&C~sKT3X#oI8}yL2XMi8udXi?3+l-aL -zN1u^<@tj@0q^`+Wz;LnlH{ld4flzYN^)Z=eEO#isF;-M4#m)~eaajnG=e5O-M(%y? -z02!wXM|U^5m;$A_-vc$@1hamNAO1PC2m=DaD8Yt+mzZ{vtRl~B)CD`0Kl?;Ru9bD@ -zFS9D{xSSe%8gbi&1;0j85^!4~n2zJDC;S40+B1+_Cv}clCFk-PRN2pL_pj5F@H-*~0OH^GDiHM9mTTPUfaO -z!alC1pTB(ebTG2Jt~|%2XR3$h%DO-+rU>chPH!tx;Kksn{kU>!CG? -zw#G&4pSm!kdv|C@2}jUu1iNWP6 -zZE;i98fA9y{7_2HY?9l&ZCxW*2}%$Xn^0#{ms%Lby6NNbA0f5LT5llglyfHd9q -zAQPTQEm2`A7Erv`NfQu#++V6aQDE_^$}sr_ys{U|r9I{S)Wckm#e?0VNmy)Pkq>^} -zB+$%hVMixKtP6M@=<(Vt^Gt}x_9Q=^L-^>|&Rt3>CUR(#>L{`YPKYSQq~sv-5zi2> -znqsp^qQ!~#nTpYeHHn3Ah*3{HAl*s9(CpMLyIs$-(-lt8y)J`J<8r=(PM7>6@P;2Z -z|0Y^YnJ>ORB*lm|dr$L|CNC>E=OK7&1kncAPoLRV)9wO#!2yQ44*!V^n}nafXhEOJ -zXjHjE^|NtatT7zk0bFAeSLF5{3yQ970mNX(wNLfu3 -zmZJ{95(zi~AEvwFZ5L-olgN+#zj#cC3T7{FHLzNYpZ`Qaf?4v(|1iGh`0ysQ?4t-)flzIFZ1v+Fp6BfEif7|CT2juGM4rPGM45kEc`j=3mDhk}j*G -zHQHyS9YG`^H@s^Srut9YF`bU1qQ-LRttxWNF#7Cxa7AoLy -zulEFMEZdRcpA*+m$Y|i4f%{J`w-l6H_`ptjN1mml7KTQoVu#G&Ahf6ere{81AF>#G9 -zmWC*I*ei`6RA7!=uEg0UpoD@j*CArX@MwO9BVJp2eOU_YGu)1x{oy8&>Mm -zZo73;+(nhME7@jg*5BHHaDZ0@GP5j|1HJ9{V*IdJ^b#lz@+@0hibpA6Cr?4J{;v?G -zuX<9Dfsl5|hG?E2V$|QV1L9^Pt3mm&r7fd-PT?e1aI(s0OMFSh*7mEVvRJ@iz8n7G -z1Z0YID>rk=kdJZmJh5KV1SQXcbD;vgHHk%W?FIRV0Z)!31QNH#M-)ABWXX;4{qW(XP@c2vhVTth{ts~FnbHMrW -z^-4QrQmJ^38ZGL*?t_-U@Qkt4v>!UPHqyipre|vJRykQTAF@HkiVz&gG;<`*Selw6!uEsz4 -zT4!k+Pd(?Tks1hB>sZQ8@m|Fd5{H-#v6A|U6)P@HDny*%R7IA{!{!fX$w8dgW6gfe -zCOV!fgRxVj9p7)j&-JAiFD&7%&1T6^nVm(}vyi!5*NtsjCyFoEP4Y9*hJSp%#AijI -ze)_7~^xx$_Uf+Kq(Kz6Cw8yHOgL(b+@*rlyCv#6Lz8A9q9huBO=07WV&cL(+Z&-@A -zHC$@pUOx0@BU`Lwe=np2w74(4FbY{IK)*?~N;#QmFtjFADl%_ia{X@2u>U7`T -zDaC_*ob~ljP$Q -z+(`#K)Sbo~R{G9`zWdZQASKjDN^ -zJ&ye_30gM~a%2x;WpcQe19t4FX17~3742H4 -z;EO1cipJ0JlY!G5V<86&?7`r)<~HfLYSNwbIMN}xE%YVdXW4*u5_tK-d?bq5hcSVx -z%OSjCYAs?kIO}$AuJzUUVL7luU^m)}Fr70bv6E}f_OthUwDGvyFOFyK8ynwW*yeE8 -zBDae@n0CWmlq=~!8k@04G-JI~gC!_`XGVoX;-1!~Dt)pJKDI#aeRIyQvYxDRR4A_3gcf(Pp*6jw -zOJ%iV9wXcdZ)@36pRCyv;-Q+54?D_>oHu{9V2J!D%y -zDnCaSWylk-2HaVF0bw@m)tqY<#eSmgErmfNjq8RComz+c1Pkz7H}e0EoM#EZz``yR#xbvzv}Dn<}e?9eE(sd?0$4?qaV7A*+Kgst`t{u%=JJdsN>pf9&1ZxU4aScQp? -zPL=aPTv%Zpa4-TWog-bofou|>0q*&073Iy&VW^?sX#7j(#}AKBHu*av?GQLXX_@`L -zWR&7B9tcU$?7;nR%nFAo79}-fS1%2w@Y9k6YLQvEHANDim~0JWsh|~=lIp_;gz1B% -zbyHSTt2}{*z&6DV{H#A>pMWxWpEgeeEZI42H5M&7#c4ePaCZW3kClnk??|4ZSwJ!G -za(_{Bk=Xs&tm3o6J6^W3AK(JKv`%EncA<#T_2@O7yq{~XD9^QJgqCJ|ax?T-x=G^y -z>{yzW-e&_Z@WTOGgux&#tK_I3xe`|;THpQ}Bk7X(-*4xm+qyC@D5t%vBhM^k{S -zKVfAa-cJdD__|~O0INQ!A99}TBn!~AcNbQt0QwrR%q>csKMUt8QqGlfe0wHaGJ39| -zc0$zwhK(fmoC*1Y?%Df+e%E!U3C8^Pg4Y-x-67IJ-$Sems|oijRWM0qKb7RxJG_IiA5&tQ%EG%X?jCtwo$(CtTIiri2VRDg -zMA_Bb-f0k5^v@qFF?{%R@?BeZW@m!T;7FRP&5>-FtZ)_RnI=eqpJQ#Kf@eKCN9{ocPUSm_Z_mc()i-$WuT{7dVg-XN~ -zFhrX2@Oers6sO%)^(-emPY9?8HQBF|><_feS&jCQ(vq0k8e7*}t?hdZ?h)+Z(rQ2A -zxVI7DGxGz!ok|<#J}JmYQkTVe_P8@~S5;8}f{H*zdEynP_EPsny_R^Ct5y6qfaz69JOg*-UYIs7(V738?AQ<*AFTfm{deZ`&UjJ>i -z(K>mvYjuI6#(fM2_F|*T`NA7x>pr!asvY@Xf@L0Vg%MPVk_oHP;F%tzPPk%H_d4#Y -zxJ^gil^l>G|7AE4J}`UPCHTS@P==1QI7?J2%`+mEFYL_Ab$c@*NlJ#HWg}ij!LuQ2 -z$@l0o#OveV?^H+K;cbwwFNGTDN7-dAll&eNrx=wAIO!ZPo3i@d{3%ZU>Yb9 -zx-0mVJ-~4|6N_4ooGqfxTP+WfhrfX$J;uXx`bWH+t9trzKkLYBQx6Zr;O;R?`yuGh -zV^~6%)KKWppueNXV!e~Dpb8cymwyfK;jfpNGKZoLoPs1e+g1A4T8<><>MQluHIckZ -z4Qs=IcptVP`^D5Y*0qWkcU`2Sgwlv26}-9!aG!Oj&Gt9;Jy_-9yf1OONX()Vo|`dd -z|4KabZU$N<27k3oa!E9O?U$--4Lds?Dk+!cel-s~c`1rN&k16IMkO80J?J)a9CV+v -z+VLeD6(6lCB-Mo-QUj3+X06ewQheaZYc3+GHFu+1CCdsT(VsE63)o4IeitklR{H_J -z+KK#e$JxE-bm0L_818o0-J^t&4;@ThR%eS_TlBLY4iPjWltX*%L)ydEfDvho=nbmMtAdQs!QTW~wqt2=ap*T-CIRX}N2 -zFFn5gm|co1LmxxVAgUO?6L;DYu04^?3Uc!m=!kL)Ux)s)nTKQB%$rWw<1Q#5r724vcMst5Z0-nn; -zCB_<84a51BW$YvHg={x1ZH+wqlLXQxMcv8rU)nND8jP4@`!P<=qJDG3c*`ls;lO+X -zjUP(UIG--h+2jMRalrHep{OI0Mqj05v(n`5pPRmSu0wTo!+ob}prhp;`_+`1j0-ha -zqXl%$TU2DXKz^}t=e(EJ_f7xjbi)}$K}p1XiRJ;6hBT0-GU+DzS~$&}0J=)O;ODoC -zLQ9x%*E<}w1mIJ^@m==7w(i-}s5b^kERz`SFpyQk3g -zqLkMYG5SZ4^yVqphJHYpm8OXk`F=~@p!T1ZY>nIOpNjP=EA-tl_%E@t|9Vw7!GXM7 -zVw(T!IuJdhU-ZaN?Jneu_MTt>5S>gl&)&)=n}03Kv5%*0W}@gnj5_D`{BX`~chAO% -zKwX|pRE#3}HDT{riAn=VzyOga;7s%C`O>H&6ZXpvf!%z0AF)CUQWMeCx*ABM#08A=W0dZ(B~3m%7ErynmE=fA>zSFX|` -zuU;^ET)-ELsRR`rj(323vxE7WbS5{%aE>8a@kxl{^$dUu2sdU@!DYq7A9fyzZH@p2 -z`sFI7Z`vR$So;vExbR0K-j4Hf>K;A$&Up2m~}nhCI_2-GGt*H!6`EL(4Bfm!%Fp1LH<&so{P#FIlnO5XrH!%I7pBQ|dqNz!T^)%=VG@6KUOe^Xum2bAVueJhYk$-)r0X8&M8 -ztTW>j;0%8c2q#;%R7Ebq5W1TB^&lq~TMKRdz(WM%T6h(FP3L+}oYlNJ6Buo%p`Eey -zjVApx>Y#3N7Aj^#*Zy-MOa{V!C -z^QlaHIo8tXw1zj*2*9?$qPr#Q!fQA3Z=I5mWnSu6*v~Hd -zI#Hkn9pjnRpM}&C_FH!thyr%RE%K*!k9+=^`E(S!~-6%2T6q@=e#GFyc6;u -zh%g|7lom5j{z8tNfi4{ro>}EsJf)-#WRZM%Z9!H2`79`Wdmw#6jVrxh5-Fj^o22FK -ze&LsU`)c3@cJkG7$-sW5{6W6>?F^5z&t@O)C~f;@SI-T@ZLZO%N9MaU!0s71m%sA* -zoMq+uX!I -zP9)J#5MYWl&+>j8>8;eu7!)^*!32jo!PTZpSmt03Y9u`8%jFnlL -zN+;Q5Y`dbfd5#`Bbfkiz4g3U8rA8nex3Gx(a~wV`%Y-$E|bstSux_* -zDFQk-k{pAK(e9MO&JSma+S0r)T?txftxO35FO9PeGluVx89vO;n!t$;Wz66_Vd~2s -zFo8iVTU=_?muIAP?6Mwh+21%MzWpC8f0UqpvtW-1zG%3;Y1E3e4s& -zEADElI46}J)qei}+oRA2FY|ub=sg%GD@W)%^*&*9R+{J*oCygmXx?@Fb7hDhJ$#q| -zV64E^!!P^bebx8Lu2QJQ{joF%{OrCs{+jB}CxcfGhyo>u!D66iOqvwWI)X2=q5n%o -z!Fp#)7NWN6K&IVZ)9H2)8NUri)}(!A*VQxK2yckJ58mic-3gaJa8%WRgVE=@!>Lde -z7G$wi)JZxuDP8(riOsGR(ji} -z4S%WJ;mx$q-DR6}TplPwkL?~1g-B70VI1YeZWL$n)^0Ix-pyDS{Z5}{EtAXbA(Hh% -zu$d3PL}?aY*!IVW1shM2y4=FJ}lTl!OWzQsveuyud18cZG++-9w$tRJU3uw$mQIC`dfpF%oG -zT(3|3?2dpkY}UEaDQ5WD5>;}yLeNgr_VYwqUu`{)k-shWwfv~LK%(Y -z@$<3`Hytk0tj=m~U*r1JLr&9zyBAiKV!m*1lwb&uYR1O~eN(Hi-DwP*)Y7s7`h#oE -zv*4U&&>G)Om5zlodc<*VjffsDez4lHytw3}OIMZFPzb!q -zZe+>1c!r7%uQ#;{TAk0cq)EoyC%M*|n02aOqEV_PY`ZsJ=JKxI1(ihHi}HZov+zOG -z`{kv+#AyDa7Bo4!dI$~^pTFC&KtJo7IA##IX3c|q@PpCz0pnhK(IRT~7iEKsgXCq< -zEXWcibC?QCO*8J1NBRz+&Fz8SA+61*o*;fjX=!6METN{Obf@}Zm*`{&AR4N?RYX*_ -z7OvcSX+2QGpIo13W)8XDFki>uXv_elh{t#0iHd);xlggu7&r0+d9;3gOm~)|kO|x8 -zvKtqHQ<<9QE)6#|P%q4S4!!}C52UD*u|ye~f{F#S+sgnhpv9;aXr6mbWkgzsc&R&O -z4DXB!_}*73-$ak|nZ&>K+lDVq+Gcs}jy6I*A9Oxh1GMal_>%1V(-lZP{fHS;C%$Mu -zYu|y~!h#)89Gu)cihUE-IKH3TRbU+<2~*|*JkDRZR@~5C%d~WE+Lyuo%*RU?^mbvXaUj=bykGaoc7J;D(sj9eNVpp486phCv2viaBQLjeR|4C -z5UR -z&|m$g<`U}1@Fuv^?7s**IFR^NzmiM6&9Pta`JelZFQF2#n-)?+_vVI_qO2_E#ruv2 -zPOU|D&A(+99*^EPJHB5Sv))6xa>jeMsFRT6)F -zWd1K4)$a@={Y)(QB=?vy(b;iSc+|qcgnUUJk7q5}+z8GRJpaWDot$8(?>teJutv2Q -z(h_DKnYHEyG@$o%TE`tQA9U2?bvN}*;z?pFX!6Drz}XL2wIFwDOEv7+ -zBt1AcTPjtexSrLo9=up8UhyzFh1Neg6JN9-)Se+c0bDy!`*qN*s3$t{c_+FB -zC$v5L-5Kx6S@N8iwe%uE`RPfW -z=wd_@k9Py(=oX4Q-|73ui15j0A9>VDk(svK`r_78rz8QM@qGZm*$B-Y$og&h%}VAx -z^k--R6wGyXIZ8;Dl317tHjXW+nm7S2?~T9g@z=VxQbMoxz6S*#(xUOj#+d#^3M_oE -zN(C+}m;Oh|n-^;<0h`Yv^qX&D+LA7XeOxW7af)2Y -zSC7H=)`(8k!#hR;-XtMOKf}uD#P-fZ4JG;6e`coF>>eE?zPICv@t{dm24kFn`Puv6 -zo5#W7rd1^lZBzR}&rfMj+Mc_0fm&0-SCoSAJ(Oa!V8I|@LkGsT5cM2;Q9w^r^tn=( -z)o=T-`lA`-eG=jf0La?ZE%X^%3=DabGj(Q*-+FfWqTRll_#NA65W%8MCHnaDv;DxA -za|6Fa@z_lMUN&PN!(r(lmoPp_zb{i`1K(>9cjJ`6btaiA-1Rr;%pN0MekW8ut5y>_ -z)E`=^-^2eXyp-3Y-tHL -z25@27AeT65-WRfb6&C!cja5>&uhnX%OFK$^3x}$L0SDb9B1!FGoS!&DXkib`*eU7n -zi_*R?wJg0-aY}CTK-ePeA^Pf0m=xBQ^~1Yvw=SaEH~_5 -z|N5?6wCOFm!Cg%=f86J`%4pEC!vdqcgh2({9OWSdrypKyuO-5$rfKzn@OZ?y+P~h@RlbP8y`B*X^|5X?HE%s -zJgzjTe(haYhH(6KBzf;Yx`LprF$C`~CD5IztCP)%hJ6|!zx`P8wtP28Lxq%NR5(KYV*!|Gq~e{!hNZKSLa5pY!Ooy2X|FOaE7(_sNr$zc@( -zz`^3W9t@`oZsyLuFteTDQVnNw3lGTbi8Eii=0a=6v-LLfUZMLcq*s|I4@cd<1Rr(& -z`K4wojHCW+?H7fp_PooqvF}Qy+mkljNG(l7Hb+;y5#_UoqGYn}G}uw&jF!fS*KvdQ -zbf+`bh3{q}(M14u_c^diA>>?Siw~;Ur_hs=o%1bY`_|{wX@c2u%epI5l8ymiG_&0_ -z|HRS<6uY0Ty;3tS;%13=5KI<<1g%`xt;2~QPA?(tfxpPr^tk@^ThZ@0z9ny-f5J-Z -zs9u901N^a4;zS-xtlJ+VsUwg|80wp*3hAP7J_?QbP56if{SuK&hkI``#`HLUdZI0K -z(Y@b!HY@az?=GcA?E5!lm!za>c!C%E+vde*>hwXAdgO{RxjTaIXA^*)0CSMo}0O_Q``9dc$M=1-GWeOdc;I}_-N<8rU#_G!``8}f)sh#qK3m* -z6&z$BqeBH+iwknif4xYn&~QI*m2d!C11bpBMt9|ycTt#&EZ4APw!hxC!^Byn0BzQM=mqyadR#;fP>hG<{L-EJNORub;MbMyXk2<7 -zZh^-XU)wx*)6CFyY5p=r01n(k3&-d89;^KbQA=UnSyv(RPyL@zq`$eCN1QCuvy0)h -z^-kqm|0_U9*h{O%@qA%4=)>@!%{)v>8MsRC_x5e-3}~xI42KxIOl-z~gh*pHk6&*h -zsZ2U5u%ZEgW8t$Bt4ktwo!rlP$sjOaL2&FW@i4)At2cdYrXPaHx@nF4Db9f2t{U_s -zZsrHaX|%*~FOo!PiaS13oQ%?~J1)%5PQX)Bk$319g6d|hjTbF=-_Xdp1`hbFUCYzO -zB0SPH8|#h&%{2_(4=TtQLB4=(jV}8M{9nf)2xivFcPbXQTOr3b+~2 -zH=D<^-(0hHpuZ5-Uu#QVS1l@qYyA$THApO$M%)UVre9Q6lx133KH(0(^RRa!fuwSY -zD9z6>IlzC6VC^^Nb9|PbQ=aeXwqa4^7;SO#p(n!RrNl+2G`&#p;Rp=*mf6#nWH?`S -z_U4N>eaQfJS$Q_eIDdpO8}2|2jnvUkjKfJ56Su3rVdOz&?2NXyBRk>8tsqK -z_Luo2d(yUR?;pY7Zz)|8bc>DdMzY7-^ffvpEO820LCQ1q&_~Y44MQUHImzeJ#Def~ -zn2r-8DS&_IW8&1j-)XYkORj7|GkG$EayPV4bK7p11NWg`3aG`dw+by6dt2P=>?{O% -z<1F;Hxsyb`hi6X&mr!gI&WrBjeI;U8bIak$pJ?R&7(oR}#kPtkJ?<&b@BR&vLly7N -zs<4iNDD_?%z*)LA#oxS9tfZvQ)28AnG2*aa*=E!)(bm97sAvt^B8>5G(HkSOV#31W -zs3JhQeD(Q<`Za8AnTQ5e$Y0H~UZK?jKw=@oL`%sH^H*8NnaVZ0fez=J(8CL~b)rGB8&`|%RvC41MetNRR -z3wIl)XJwXe%J~*eLD*x`gBs?+G9dkMN%Dud#4xg{!b#!CS`%=&0`ASZ?^rSNmQt_HQ>9w6lq*HrF>X{KqinFgX?L?KHxBveV -z^)~S7^2PQVM>X3$q{&}Pd6X0+#V6mpA4nWuz6Fjw*bO5<-lHk!d2Gw1$=zExbTeC% -zvAvbv?tvqkcU_C3M*G?n_Q0B-dZiqfOl^&@p1rRt&J{TfVrTn9xiyJsI~+^WJb#J) -zn1wLGxCMW8x5Q5rduPiA}Z-^2jUMWSq~f -z13g25;0Xw1+=5E(%9U;RZ5$5BE1~xMVQO)W{oqD2S6xq%_s8G*gQ?CwSxp~>&|>%{ -z%n&OhEi0e!1BLN;D|(!NZsa?d7`3(!DR_+Nqu`q$5h7tch%Rs6vp;>$Mg~fL7vbk=K%CI=pPEww;V9>ff -z)IC_i -zu2c?VgPk*g+Y?7h()(kg_R@#euSyNtsDqHyw}I=94bUZM8k -z^T};npqVhl%cKobwoXKA6)5(77;yN=xhXY{^#W*2ZPxYCbIqYX{9wQ=-BCn3az_Py -zGV|(!a>ITeM#K6PC4>3QnCK5#h}lni?L(=DY_T_`ssEaomx{b`6 -zy^N7w88um4-ht2oU`W-Kib+wOx^*SW#`bK)mU`hd<7UmAz$e)9Pc61i;^qQzujbfX -zPBSwn`XVz$@kxTYlq1%cJ}M|SNPmDejg~}G`lt9vhjvm~v^bSm)(=?&%RBcr1vf*= -zfleWG)1Vnz_HO5pWY7qf>ObROo(hh%Jz1U|eDJaY%}1$iopK=F5;gfzh5IH@0Y?l3M(Im_33_8siRR8&IHels)&>R13Mw_VOQ`_WkXq=ul^Q?#B;D5@xjouwE%Z_cYeMhvG53*|OTRxI4pU5HHwFV6AbH5kDSn -zHsu}hZs(=bYR)u0yCpNxy0K|xfS9{!COBp3>Um^;Au2nB8tp!ep8PVTj6q~ldW=7it^<@aG~SEq#C%Xh -zSJ+2*6N}XLmy@(uMpmqH5k#4R0*wa*`^$bVZxQ-Pgx&ykM( -z;LBmnzs~p6&lg)FDo0oQW|-UV299R`i>x0=b(ZpS;z=53VU@~t{eAK8)@GEU6gEGr -zQ6-o=8J=(JDN9z=h% -z!>6o6HUpm$Q0r#E!{@3?*4yDMa3xne1K}!9{`subq11)=rvO$W!XNHenngUM8d^cQ -z2(_1#%H}Utyw8RG*gQ$Na@ubs3u*I;7yL}m5sGy4fWwuQBdMgj&|8!hVmx}PewQXO -zF2M?1ek*6$da8hf*k%@*IZs>D1u2B-F+h=Bl+7>hX$*)cP}nxeQy*9C*^Us{zrYYK -zdP6=IL~Ak@Y!90t=MJQ5vG2Dt#nxP|PYq&4Srmtk61n1C)HxjBD%joGSgq=Ac{(J9 -zni$Px$XKF}Y(D2%Wb35G=kJ-LKOzt(Ghre@*xRpLTOcG$t*5N9+*MH1eZm4?%3)N1l?Z7m7KJV!4EoF<$MdXF3_^DIfsa2A>XlU>7ZWUrMulj7gi -z{gQpTtqxc<25`1XYcQp%V=WSA2PKi-R{danR?B{Uz5a0h7?(iV2VuR8GrcbeY3=cR -zDcemwdTCkESf -zh$>RKw^l=mJ0hrw&1+TKjyXMksE_`^$FUa4|0CR-^|9*Sq68R>)^oy7SmDW_?aI=h -zZ-VwErKZ2}42;EM^1AGHxt8@M+U+1j3px1}EEI%oCnkDwN>5SUTBYu3p11u1E?gg6@Hg$tXR$JO(Ifvy -z{cdqhR9Ak-c$2>0%h5)v8GC -zvEV(}qmNRgkKrYi1*K`GXbg*IVcIAS)S5QCw67S6FHh8bL)(XaYp>a0&-(kTj%0@N -zgP~VkT_p)tMcZ+R^%Y06)`V|4E^!(C!B#tAKd_Zp#Y%#Y*=Nt{QE36ouz2?%F0m5= -zj`$Msj182eFirhXjI|532TDcN8^m}KTgNXo@OYpN&zl?5o$3cZb+ -zY!UY0J19cWyEUO*Kv+=>9Jv))2CIxVug*6P*Wgt>z{AHGpv6lacVTCnX8&H`tqIz3 -z)@JWuYIZQmhyQprbSq9FBx^t@!e9xUV>L#ql(dBg_PJP+o*RQnrltO9YwguStH!x| -zG6G3f+$l8UBd88Hk;}jRp}VE>5r&N|w|FRwQ}d>7Ir6n>_z;W!*M(n{n8hqvzl#38 -zwYi4Ng4*eXY)$*NF}|1MONu^WNZ+e&0Kp*oR*En3O0MV>xLZ>{fYxjdT3KyosI*zw -zOB`?01ljx!VJ6W4$@0sic_&8E?5}L>=|to2eb;knp46wq4SeEptY@a|&sB6PI(j|)s31~5eq -z3NUGye1_^gIJ&W!7uyW8&C;h5)hg0m;FTUN_eB^2&rtn+PG$c{j=;ZO{v -zafR^8|DFyE#6J50tgo$I7|h_;+8Nc9rg}pNLsP~f9b~NAo^31dR44Crx;(KLXs3P*Txv!Xe={U$v0q*AUNPSo%Jby`%5;9!O^T|l#OcPFiBHO8Or2@9 -z%BMSlP`_*LLBeA$Otpg-nvD*>0U)JHM*=IZ5j%zViOgP~)9*PlMUDL@>1nNw~O!F^@Q5$*jcfS*vUjr{Ye7K>q~_@v-yJV5^(vPi^o$DVZiq? -zJcCO#>GHin>^|Yj9?#VP_ceakxryMj8=r=$2@ePbWnhM(hB806i;lxfGF!PP(5X>% -zr&(d6W*-wB(~rC0q;?Jsc*iMuR_<&vLTG*&Ks6b1oGh2N*1yWgN*YY`qo;V`aUTYu -z2%Ds;S3XfMTTpO4-_O2&h#%-Ui1?H=nH>=C^Qs;(7r2QLYd??hW)zf7IBHKlTF0D_ -za+T6u&`^KksTF9r!IwuK?P0D-5wdM?{lw(e2kdsrcYLBMZf1U25iyQa_r?Dd;G9KT -zCiIlD6;k+(ikl~Y(~E>Q-~Hhos+!v>$M1YIfRpl~?;A?c86uDl>TYvUnn7bvsTeLAyt#={iOX$3oImf#;WH -z!qb9SR1|bWp})QTBxQNQH6*#fPmUjE74n!VZ -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 -zUFA@0y}2GIM$g+h9%r0`tM -z=HDphQ0bME3*ue7yH&d38W2Q;R=AI*v8--)v3-f>VMC$KL6>jNLkx-R)Ry+kY4vT+ -z{GkIv^N(RZ9#Y`7qGo3wK}LpVy8UpHh0b5efo}7>YjW{jt_#x&suT0&CjlPZ#%p(E -z3$99UT&lr!GK_=T=^xq&*5CrTXq1QO)|$ikdg!g*&J7qDk%-(I2TKb!gizKiy&PHN -zjUaK%@_Mw|=0!pnHNV)4EKG604G -zZC~OC%)c0Wz8h-PM8;g+MB&-uYMEMIVo3jB5+BZ}bC8qw#7~yH!0A}@)u*R&zud%V -zUpuLAN`^fz9()RzPeLgX*r*9a6+#x%Ssg5xOQt3JgQmjaGgXs5tE`^?SHGh39)o4h -z;(;Sm4b4pKACqYSliS|=Sw^V5JhzvilgAG(GauIiQ*iMLytP_$3T|>+L967<*5S<|JNx^;X~-3Sy{hI}vHs -z9(VNlI6kMpECQ`y=i1zRC{<5QbybQ{?R?;qhrl{QmD5eyz}ZQ^p5F&2SOKyEBe3Iz -zw*v}&yz-wmLPOGkj7jP}H?&}^{g5fXPiYP4lmL&^U6Ak>bfhEXxGrvVR_@}$k>T9! -z2Kjqx4Smq@t`hjgHj+WFFS8)LnXInL%I!?^t3T6^neN<6syQ8@J=8^IxBw3o5F -zr~z<%<2+x$dv+%nUgywbij4_&?NN@NC%bRtD#afR-x{ -z^BVe)$rK3Ch?J$qNC!z*Nkfb_LdwinR+5$$wU*}09%bAC6o!D-k5h)_+itmMr=4lN -zzU7oZva@UeoB*FDE7izLG$DMI_?;bm{6^zMbot^FA|5eO9blXv`e0QJ_4+yNSU!05 -zX()Nqali20jA8;m$(?C{FETTjl!;g7gsL({>E&9bm4S9J1WS$ttWS(Cjgbx%PhvVE -zLSeXN4kQyL#-C`6ZjZIuLo#fcPmJ;AW<#5oWcEbO^Veg1k{lwjH9zx@@JNb8D&XNk -ziP=6Tj4VmJJ?fqO19uG>;~ms=t4=VYG9%5V~^gZepN9YybXhueiK+vZP7WMjf;%VfC3%cspH8IyGo|6v#UFKlO; -zd|P+aJxP*@KXNS`$F*J5f_45f+?Q-@V|kHVRcz-^+O29YMuhRy6-6t}^%1^O7ZQMs -zq|Bld;oX}y_y1$iOie8VX5zuG5}8m%L=hHY&YNO6e_#H5Wbgy^j$)a49ih3a4Vd)V -zB9=p6xT(qpr%#Y%;ZLB0;OT4J0g0FoAs5)w?SK!59nCd8Q~yFe5)d8T!y|RiuK5!0 -z5HNzfk+yY;VtC$$zKf$k{|w=4*u9n|S|`ma$vU4J_0pU2=J1Uf(g(0MjZRx;?cM-O -z-H{Z7Ye_*)X6aNB3V}6ZkXT3H -zQn)_FqcaY0LgLie#lIsd(33^3+HcrbZ&YnDa7zB0Vyt`~V!i|j7y$B5?~`uoKG3bJ -z9tj<*hE!2xX5;(lppol7iTog=-j1=x|N6!>nbr8VTe5o6=4OGF2S~BDe6hvRqT(Ze -z5OENoSC!Ewhk?Ei7$UAP;(-EhVA8!FTR*_=*Wl7h^D@JUqRUH5GU#R!p#hAUa4WPk -zUi4V50gT!$)Ayefh>wb}Gt`QHa3bF8D$+^8x4yD|MD+pMyro@~@ga=fy7x1tBJzXy -z;}`Q{PcWq8Qm4MO$^POKKb(`6GQM=t%EPsOCAfqyRMUU$0I(x)Z+!5@(UgaxxX@sZ -za1l>arn-^W(k)Zm*;5fDg_^EYZ1jNlkI)?vQ#JZc)%w&Zo$?;>G!m0VyYr?01!Q=h87H$X{o$d~!()YGe196wA)^g0dXnBS5} -zocn*V+eNavKLF&jAP?Ygc46YvI%oxoqqps&J6#Jc=addp;cMltizl@m$$O&LHG#hh -zN0C|3!L3ZiSk~tKz0dZx1wqjUomWm9vMArA5xQ2JE>w2YG+w2T>lOTf#E{n-rG9y` -z1%dQr_QKO^3vsN06q#dzkQF;jhFvYo19#Lwq4q4GH!P-M`Ybl)?nO5Gp5|Cwqt4}W -zR7c*^1QxvW$r>3}2>7tG3Tquegr!+(%RS@T@%=aKrZ(=@y36)Tek;8Zev>6UU?Ds% -zX7@Th4V~L*5pY=eL{i9;a_(xIVJmrbK=Srp-Tf|LFES|k? -zLfIUi77Ie*MxGOUe93@CfT)eHJ8H4B6B|h1IFV_wv)4Ua!bvX1H%0`PoYcl~n}ht% -zTkk+`OWi_%J`O-W>%IH6#lDsoiIUh!BbBW;Y;27w1U>V<0-Hi5r|(+86v?|x?)XzJ -zvL0$b*QWI!#TJ43CgahC#rxCRjEA?Y?m82z_RRej?G)4g9DTlQOi`Wi;_*xDVVk6s -z#%T#wkThwPtU2Y~(+JE0Z&V|X3gGbi=Ms=q$7u<3r*0~ul -zNIAW{a0_9$2ioC||LTBQB&S4!{Z~UoR-0^Na6?=N(do~C&*d+a%q$rL14IqeH~|Lw -zXIrYobhDkwP>5n5E2=F~i6n9?LeSpw?9SLt{%te;7Ag}r%b2;v -zJ~JI)Zr#76>#r!+e*;#pN6q^6;Zdd-K>zzT50#jid5zOiE- -zja|#T{&L*&AnnsgL)2n1=N=^U3UF`feAOaHU^&AX`AQBqt~GI~UpCD0U0mO+QK^0Y -z%N@7nl+1qyAZPaCuNgaftPATtq>(ncGRiHc9Yo&)9af(wrdD-mj>EH(P`n3tGpSyM -zXiDf|$p -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 -zmFwyRS?|B`K){F|xR9P7Zts)+Zd#(%`crB6~e -z<1GSQSbIFH<0;o)r3ufPDjv;De}+eQ9?m_TsTeUM_=$cxBb*hd -zaVpg`R!({rc$!IaO;KnfaVFGGaA_%CCt7_qk%+Z;YT#9BP`@iPz -z#t`VVeI-fJ=!II6T%i8EcHo||Lf6QaaDzp9rdJ^Z#6UBD>j9E&0>4=E?17WV4Y-7; -zM*~`ZtmJx@yWd$G$KuUOZG&OnK(0ouJu1F2WTmXOv!}pUnS|Nf+`M4na`U9&2!o#M -zCZBUU6qnS;V!p4H)+-R)Gm1-c#a)j;D>JLKi~z}O08#k{=69>pQ=j|8lbi>ea<5m_ -zWf>ub;)dSL?>e+;@Z9DR=lk5jE}dA0FSAb!5e%l0gs*`vrPQj}lTl!z5qbe;J1YUU -zUJ)@h&m!I}*#AV5;r@Tp6-&$Rr9}ec!rqJ{8KVLD|G5teU1XiDaS+j2!Ps|r -z?E@ezd*tA|o*U2mq=t)UcT~*MK74YlfhqQQ6BE;m~2a?=d>~Ckrp}lZ&}R -zb<}O{qs{Zv6d;{{ -zCum(ni?>P59v(Iya+tLrq{=P3)dXILG`|2z@)yRV87>z4FCz#(iMpMWziXFl{!#}v -zcSGGL4r;cGWQy8*YOEv72O3DsUMw2Y@I~z+z9vMt5~RN!eY9c$q(F;U9A>$E&yF3l -zxJEeG+*CRt(Ij4CL*n!kS!gXdlMaKzc!c8z+y0QG@m|_B*s5N*{l1ikDat=?Y0O-Cb#EHl{< -zY*XRc=pMN`Kxcs(U+4Stcd8}|WR-&(IS9lHtrud>_f3jbw)#M$6qq97^xZwNqs4a4 -zl+*n>AyNyNTH2TaGQphLo2DI_F*p^JUae0YkP45)*|YZx#Z`%zoW3-y!Q@;lLPSwQ -z8U1;f*PPGr&7;azFT5bKSlhlk-`wZai;vQ;4v&0W8fZ`wVOH0tI3+Tto4|RH2D=9g -zoG9L|7~m21*-D(gzmY~i=A-yWhU@nis+&{BYTJ@-e<4y1x$wLa0;`u)nX9M#7vwBd -zzA`v3QonZ@8iv6xd5V(X*>t$Pw3rvl1Fi~Guyh#6UbU;J$hn!gJl}Ea6gOpVMh;Jf -zlTOe7o{e&CG-EJC4Nsy3On5wTIDbQ#E&<0h3Cx{&;F -z+_!1EV6gb%a>d9wXy_{q?Te$i%{R~yo2OYFuf)Al>^2!U>ojy5n|ieh)Cr#e&Y3qK -z-E?>^(=qtYrt~F#x&JX4*Y(a`1MJZU>5FNT+;UGcp*Py~Ar-}&aPeBDGxQb3Eg!R4 -zWcuv2#!EeUbQ70|^#2Bkl{|#*CebH`T@7|b{<+_yPN08YU(TrYlMRQF(U^F1s!K<{ -zKSJ2Zo9c2>QkqAsX{-(ks+|aTc9U|+xs`*xMP!Tlclp{#j$-UHFVJ;XjcFb$^MEQ7 -zv@E$Nn)bzV99SMWn3Uq;4F;TJugHAKr}$U%beXC_lA`5jfwnRECqyBi%Kq7z?z?5X -zndF=x6*IbW-Jh2Ouo9p(y6{ImFuRPh%k<+wc@gih;72biz8>xXFUIuzm^yEW8?}AA -z;#l4g2^&Yu2ZG@7Tfu+@yO+f^U?xVYY&R8UXb3*OK_R!*WWht0BHsT -zXInd%2~VefXerpebqAYnSC*({fV-;~#>b1I_%&BTz`ptoy>PPRL;4=ymSN=3cWRIFQdA -zFfPDjf)Kvr2vKx|L}s*u_RL0DQxiS5?BDtjC3GSskCJYA-uV^_FFhne5M{n?PYI -zJUIyT;?)X76yWLbp6>Ny5qO$O@b!qLNGgK$?l@#WS+gNwr5GlYtMVQG`_EV!wdf6A -zjJwVK4^~_PibHlXY)<|b&fPbJk!-(Wi`tDnt+4uYCv>GlijiVsEb&Ua#nEmBvP$M| -zgX)&P!gNQDJmW50{a2OCxKn?LUiA`C4EErwWb!m9{4Pg6qAW7^GMN%Ixy5>c&-f^R -z@O3aSQZgpa$&kWf2B)0B0$rQD@BI=XQM>vzH-H-4;vLtmNZuu+^Ed_7IJ(Fv4-){= -z(Vwya@5AVWpozx3^7ejBzw^N@8lpal6s$%WB?HMLSdI5yGEqNQeMi?7+SJ{2JJ^wmAb{c>2{F%hD75R3Yi(gAUd$LtAy<(#y -zi29pgWnlqmT6zGS5hV70-)z+M2ozl#zm~HtouLj;&Z(lr;hc!e=_JsFWZ>7MMx4&W -z1FYgjlP|aJ=TVuP#9RErk;>WEFL=n3kk=-0a=s -z^%Bf;1ir8ds{Y2HoyAI8a-v`V4^e`4XgT>f69N2DCBk$Va{Y*T;cZ@z4 -zzV2zDV426}1&I{DFv-{S&W|bh;)Jw251}*xRr+3;H-@o;3OYRVL#%^%86<=9U4QYvh#12OrEy{q&{RNr&fb -z)xK_SU|U9Rf+hjw#S89JysuRza9~b`1yKaVZRw9wk6p}f!BB|^8B=vzk<@=TNh3Sp -z6hB2kbEqFyulAieXbghpcteQqLcW;&H?HCx&{mbPZKdYZp^lCVPeR -zzjjGIWsd%MED7ZeE_A+8~^%z)?|0TQ>H4VO2 -zW|%947KdH;-9RSS4mLeMZvKz05y_J;~BW79qeNnv$Xg24`3UPJB}%i4cmN -z-64(ZRgD9aoHGqnVe5}T6bob&3ysQu2h@oXyMD~8+JMXkX$LW3bLvX|Fw{Wam;sq| -zdY{tL!oK#u6x3j$hCf!HS7_zw#~sQ4LBU1-N{p7g*_6sTFFo{CTZ?2)Q7L|l9luS*re|4A|f0Yn3ih+I-%!ssqk{x4%l|&9hE*#hc*k}M7 -zzJ=863L>84)=|VQ;p-sb3yhF--af^ -zXb`b|F9+io8jwfsCIG|p5nwAIe@y;f!Q`_Neim6Oenp|(&n{DHopz{mwrhgA`?vXBPf4D(+Vv~dECo-_V0v?a9^Ib%Y<9CX$q -z@IV!DKQEoO+)ANnJ}@LClUWlFVLpu}rti^weL7W-)MvmhHd1RQgOUSW89% -zCd`WrO7fc&vJPs8#KW#Bt#H -zhw_M4h@FwPulHU~QK}JaWAl0yQ|dwr8+3S0{gE$lO$Te^1#s})@sm;Bgbn6W;4GVh -zCnc02;}uF*+^1go=RRse&)*$+&z4Bfrd1n95&Tb81QMEIi^t5XM)Hta3CV^Fw!F+U -zR=wuRVXEI#312bdU3>JY05GN646`RGba;P{m$HlI;rA@^+)1jy|7pJ9{~IhHRp_h# -z8(xa`5b;z_adEFay@19*8N8cEg!Z& -zaX3LRNpT~^JL6YZ`it&sw|@gn$KoX{vL0O@9`Rh%OC#%nCIR2^^0l)l?sinx8`#cH -z&O%R4DhNcr=RN_-7Q|7Cw@s`8okRao1zj-H_>b4-E90OJ(7?AZAgC?_9TCna{EO)* -z-4f>K`D~OwMGQX;JJQ -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 -z#(R8g7))u`dn@9@=E7z&dE8+$ -zF6~M3Iubbpn6lEIoRiHcj50fK&PwzfcQ&q>{sq5(AIYTR2qTzTg^bmjZF^3-au5N% -zmV_UBja@I+hK@BShd#TM7%e--A_VW@UdV19npf{g@}?3gJ+>q4!DAFZ@&yiFOgXQH -zPnf{&Q}^snMfq0)$`nokrb5Q0R>#dV{%!#PABhd`>g&6_dqT(KGt4*{ox+T_!-6eT -z_hHr1uGus$Q7wv^DXxW)Y3ivD0?Vg1G4-X*t1_V(}LRlajDj#ULbmH18aG8{AVAmUo{(cy{a${ -zeyYK*)=P@r=KX0rzK=Fio^;YFDsGZQwBeUi&m$2JwZ$yNhus*$f_PZM&Gi_q_apMj -zgViY4^9>SXyb>&O!vb+*3v|;2-T=OyqlwHvJpFnEVh;w!h~;023u|oX*p^Mto&*bZ -zSvpP|TA>PA0EZ?18^_$>^0#HRez5YCJ+{1#6)WsfqX-5xl6gmjTgaS!A_RRhut|Z;8E`{Il?%nG -z@n&N@_#E5fZSr-5oyGeuHyv1Qz$tq=K~%`1jW;-7vkAwZIfU_Lh7*;t-a9kx5yB3j -zE9_hv6gy;)-`Ws4c$}`MHnSvjRvsqdc10;4CILz_fN{;g?y0|$pQW@I$VSc65oNXIv}B}CP@VgDo19B}fG>jJ*K8zMr$%*$`U7$QkEW{(sH$ngB1m^imy~pO -zgLI?PozmUiol190NJ)o;ba!`mr@(i(_x*m}d-m+vnVp@TnP+x3W=55NRZXyo6iGlp -z4q59HNayP1lDt5XQ#b@J;yNh4J6K6((Aspl3kLHS&k3A6#oW7LP)*VejlA*Ahp -zQ@PgFe0{Ys%$STL{N=l3HH+tLb73bj$Pvp{J2%Sebo%&|q74Q{fYg!L$1))>l>t$3#W+kp3 -zwSVkO{yi<{#1a}&VIfooc5q~h=WwoQLPuTsabEmz986@H+mg$wM( -z`M&jEa#LKI#!`$&B2nvD++ViRCQ;RYe>96%y{NrYKr3o%tRaFsL(NSqsMiIOhN$Eo -z*VJFa>rWTT)z10Od9U^=nSv&Owg8*7aK?D?9ZW$@Nm;$5swF3if?{sf~#CGCm) -zGaYc7ZrhX%jwK>fB9EHC)w#)=zA-QY!PNuaPoStHut6_9@S#0~xDSX25<*84m`NbG -zawS$*(r;>vg9w-=75p4lW74p3ep< -zs)!m6wNd1$mOqbZ6e~rOp&T4XR)0x1Wix39uG9cB6aa_V`OQrN -z+_M4LR~>n924@{HG+wu!d@+ozV<15WPXFKbm<|-A_Ol?(xvMgF9K5_1yJxo-`ZJR^ -zNZfdqR*}S-iqXizZ6qc$hA@Po$+%bIbO=hy3Z17YT){;YW!mXfAYUOF?(iI6#vMRO0RNN-aX(npuO89DZTg0G-AOMaP(J4|yy0D9rLR%)Y#qBLN6S`!G!RZ8UE_zSfvz5qr*>u*O|v{-Z!} -ztPkq$$$#fluR_F$~~$Vxc_#MHza%t!R+FF>X#yn_y@|1Wd$l#m?l#G#tltG -z4&Aw6CM7xeg4nEfbKXuw%<27=h$v>{ls=0Fe7=qHYG<~DlR3v=cAX)Q$uu>X#7$>~q%s(=m)V(>fBc?)YmIYl%y0rg7)ZydkFSL{drG*X(?Fob -z;s*c*9ifKZR29|Kp|c_D8)lFnLGAsN`slwJ;y8l-At1X!lc0~Dl(4&)Na!^e0oWM4 -zKZOwQspq8C`ihGx^Li$n~3Ie+kdj@&&U(I -z)H_UyHMpzJwY}4}$RB#GodJYMxbxbU9=@gQ`OeH?Z1i?j7nBnxW1SN$js0h>i!49b -zhPa8th0=;#vz^VjM8-TMTK?%HjB#$Ruz9_72Qa?Vj0eUE-1;PvfKm|MKjw3E9^aQ_ -zzAibKk`AX&Y2d8Pz?bmc9d@mYX31CT0mrO6Y68hOlstHD#IBh}ML)TH@nM4%NqwDl -z<0y@$2SlmZc%I!oL%xFybGZNYJAU?eAYkwOT?*q1z0VThvd962^~~Yg7%+DTS`(ao -zUaOb_{IPyQv{yPm+>J+7PsUnSjV&`tQYerR6q7aqy|J96syjj3rn?Iz=8HcnrhlJm -zYd~b60OtF~Z2k3~-G?5JgKpH61utQYXMg -zIH7L9k)wJir`Zl*-8;SwU3|yk(vl%nm9pg|6`^lTE2`(*VHYelbwMxR9fdC$1#XI! -zGt%@B*tLZ82bC5JMxz6x64nYU}OQz*_;dejb -z2;?JlKOt~GiKm@7YSaWd7ujtOS6#oApP-3!9m}#GtZWGRVyJ&wq` -zmN=P$sU>)3h!u|eXuogSROy`~R{zIS!=(Or!HnS68@8rxav-d)&Xq|V@KPV|n8vco1h4bP -z_(;-UC8%qeLQ`n$(UCj-zci6KX6i{^#N~59w}1n7tPRw#TkU`Ox9*YpSIa>ukA(BH -z!bA<%Yr{?!|7_%ZHU@~3>Mdrs{mO5xcCCR_4?wdFJaAm9qx0@=ymp&iV*PhkS-qCGH}8A3Y}u7#ZZ11zxB9VEAvYz{dVWBv -zTU?ZUbEj@ZB8fG|IX_+NIg`h*@)VIHhs>e-X8@=p%U@}& -z_Kr>ay9RQrm% -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 -z`>CvZXka1YA%)(FW#9 -zkTAdJ-y^MhtgX2Z@xpPfRbRv3F;cw>doJ9xz1oh0^8JB*R>TOBgXDW$liCW-BL`ON -zhLT^6O;1<<^jNt;W2!vgrd-&O?Pj_? -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 -z07`*CZecPP -zekr3U8&%+7rTdEOp<~inb`#rcmq0^g)7Ji90UQXuU1eW@v2gRXy<{c_odeHzNdCij~e#)C<#H=pwu&|Js! -zi5F{NLoXgMiNDWFmIsc(=JGvjIug=k#^1E&*JM7Lxxh_HXFnjq^2C{@Kvbnebtl?8 -z%Fz1#q_w(K!u;4BJ-&@z`%a^FJz^o+k$2vbRhuX$B0LaZh#^Ipwlg5y -zVXEkFcTd#w0DGGwdhtq{sS3-Dj_|8ifB%cyQbG4V6T3rV-SH90?gjxrjk(tiUbq_; -z^Sjk4v~$J;dmG}bUxBytax=i_xKEI;6Hb$h$U&#`cG~^Y(tB2f(Q4Ysk{+Bi2>jw6r5U<4GVp6y?QzT>`3eU0Dvfg~Pk -z)>%FED&n_KO;~&*5nFlgNTGWZ=QvI|6!e1MkqLMAK%TNZi&kKO*= -zbc)_6YGczF6#)LjA!{xjfl -zPg@8P)KM8Vm&q{{D=5z~_X10boqr~WgW*``_Q>p61N!z_=_!jM -zp35(a9+5?opjNR?;ys#n`gf3qH(Uxy4uFo$fEEjzt-<9Qq?fZMPGZqBm}#K5?!8Ay -zGY7ouA_%lQGkF_{0sP-yh6l+~?;vHzG`6A`6pwK)r)JT_2L7^*8Y^{SrPo5TuuxV`v8O@S*LHi-OOGg8Ou}Ixk%t%S`-|ragZqokH-CYE`^OCP38R|JDtr8f~ -zFN4Dh-*LRyPq4dX=k3KNZUVfm4B1I$ZyJ|vd@fdWJk6*giM(>-j!0F1*UU|m2Wu?p -z-8h%|+D;xaw}Ft#@=nE>7aMN&$QhA&X=;OyC`U!Qr)}xK7M)D()*g~`+V7!%kNK)~ -ze8}aU|Ni8I+{M$#jlP@IfrC`-ctin4QG)n$vaE}-NaJWbg1Zj`(MgjpEbdRG%KIz< -zfo&hgALyW#7jpFp!eFOibHeL=u~ -z$%T`ITmwx!!vKEJ{k>L%X^V7y5vf{)?q6w}J9tv+)Z3JwOwlYh1Esm -zNl`q%)G?ndf5>LcKVUx;zcb+gt&!vq{GSjt&t~SPH2)&;yAIhqf?wwWz=N2uG-jg& -zOyl3_aQ51##WG1F_{h86>3c{!FGtyN;)4WxUJCjYY?(>NqPRp6Ia&}9r1r&N1bBQVgB`%n -z2>k2HYOe)V*bN{PDQsJb$G1;Z27qw>>!{}73K*2=9q9DW$kv;BSU=h)-s1#viu4Ol_C`J$*D5^W@%QZQnKAAFqdLhwx -zV6`M+`pJAYq#OKxN3|0dcAVf2>Yw+9l;`LZEYz|bExZG9^uh;G^@VOp)*@LKXS=|3 -z7C;BO<`$fNGo8g@CAK*9sNVz#dq6;fJ)I~uy%^jQJFuOhvFpFR%UHVtlia{yEQ9YY -zPZs9(3+AP`k!l2>3NWT@S+?B^MTxwndsZ`wNj+ooVC|mvryCz%Js@D66eV&du-Z50 -zL--Bze?;5iASc~EJ|-V4864j(O{@nG+V01myE!YIQ`2xo7LhgBS#+j&FOIpK)U|9{ -zGieF~l^);R{kAKySAoBK2PBN$y;JLE;cDwN`aDX5$23XRUM31(UhP0Jm2@M4uxBXj -zi{POv=h)N0#~RBpbG3P2BteG4Qt~OVuEX%UR0S$ajR^eXd?dJLf8PeEuo8$k*|;(8 -z*lxEWtheH)=26D}e+!6ri`%pEfSv({p>#2g2rOPRzl)%JGV$1P?&+8rb$)tO7ZvEc -zfXz-#DAA{c&_bjyq(VqWJJu3~ht5iQNBsMq<3oG)&s6rWf74u$K&Gl#r3i{$;fCc$ -z?F|{jLs6dbUZy)skX0SN;(V=fBI@D)WEW*|LCBEaK_N$;jGEmiT>cEmn9WreX4`0?VssO;WG-Rhq75qt_ -zw?~&DtqReesgX#xuQQ=`^9TK(8xvA6)Bmx-%_FtpfTlcFB+n9S0m*Z=iw;}GFy8&q -zwX}e>9%QY`p6FWqyGbfP^Wf-PGS~A^D>Dh%LEp5g?%4(AAAt57s6ukIJ+pHc6SWPZ -z9pt^k%WUS0_<&%Y!`ic;?kgq_1VS?5dHgjHt@FeeCl^ihS!H8;=U3cU$%F#V%9ra# -zU+A#^nS8Q&AxT6I9DT2p!O+E7{>l>Ah_B(TL}xlNdJ`&yLT-c|!!+6|Rv*nZ3M-K3! -z9d86#Z=c5jiZh_06ezcLqL9VBQw(SpJ^Be1^unQ91r5=OwZ*-j2*Kh-QT1mVF*J5G -z)b=7Cqjqmy{|l5{du-fa@+qp#6X{Rpz|a7(II=iF#zm#%O$%50R-JsxS)J(s3_>1~ -zEEe5_cVS8yIxH!Yfy5D0g~)rnM*sC4z(rixUh6uw|JhR^>=@1eK7n8?#4&diu^nV> -z#C`ROldwkL#2nv-a#TD519qup$8$zh>J!7Rn3g2NrsZqfr7pYz2MxTQNQnvqjUQ-^ -zJF750{Ih}$y*{kF^7-t*+5GA4^x=*lLP&96pZ#EdHapwZ5=#wMdSeQDOrd}H_2^x3 -z4SI3K1jl$wRhRmzf_d~vW1MPC&&*}mV%&~0hq$7cI|LAqb~+F%QIS!*9uC`!iEuL^ -z%}A^`XOgHPSRU@*N{9McQHxZ%@+11Ix!?j7_8i@pM59E1&X~o?-E{O>sqAlQG)D34 -zLm$#qXf$nk&x1_!9QzgzV#^gTew-aJO8cA6%4EAQ^Hn%yUW=1+mLT^i2T#mh9l96J -zBcYqUbILUc3YMSQuR19o8>fT`lpSiv|Cp!Q^C;Fm_Bs9iw+wN+{n -z<7WJ3EZ+}b;MTp4pMWMN{ZNEBQLh2O9VUH+;Cgt2Y*1ZM*j*y3I^uAYdv}QHS@}KB -z_=hW -zM!@%$A{2Np6%rU)`yxThcKkrh@ehoW9$ANZVR9Jv4R=k4&-2`qtV92rt35Kfq@Cql4ldq3Hz<-lneK9 -z`!ThL4&&!AfwE(pln%RKIV6$fgk?diLXDBrAN6H-huAC)HDnbCJ5BlaktND{?>nTINKz{Ia?6cA5y)vbo)Dk{h%BHA_J=LjdFmEdTXWq7 -zKZnjAV^bV37h-yOE$+lNm9qx(>bwS;fe4LUe5SaaB6_+!w>7Cx;tB7yN9Yi%? -z%QEUdQ_$uvw}o`K*Qh_D{X! -z^z9@N0taRZNZ!HfAxwZ>WRaMSAiuJ*M_>0!S_AV{Nt$T@E!Dy|#1oTn^kJo^vou!f -zrmD^R1Q@oN(0euwbNy`150$?Sn{uOTdVgGd0C_3^ObYDe#{B#Vu=DLJ@YpQFoq_PC -zUh>}R4%REi1y&%tgbeFjT=Nn&?l!k0nVJTe_0a8k34v1iJ+(>T%qKA_ -zzaPGH72$Tz`@XOaQxZ3hn_Z`%DfpvnQ{^ej&ZW&GOXq>_oS;XOHmtt6(~I^1tYM3d -zC7|zF-@Ac059;@@(`);nw7!o>u>V#8Kb;hRZmUKhP&jlZPgCT;da2;&_^wnSm^O;v -zTJi>j?&w7QgPb9C#DOs;b`KS_FmWY#fbWmZb;}yBtAm+cX -z@hL8^ST-QUXGR9P7r`6q>kxS>X*4!os<~>qG~|Zv*CZ;op>CPz2 -z4stX8Ap7+BGUZ^!V@k^@E077(a`NUCZLv7H#=b_Bg|m|l$jMk{e&m}#nVm7J-CK4M -zWc(=GY2R>NObZlapgMAik?v%!e5NGo<+kdC6(!4w%7DkZ;=~As2K44G4C^ -z=_%o}HSP{I`VckmsJUyY>rIPCgv#uFeM_Fs#6a{mY&oZk!svW3!y;4|7oc8&w(6a8 -zX>=2HFP^7kbeVT?y8%gz{hf*Yecnol;{@5Px1yT^4Y|vrG5$<`p3bDUpc2Sm?$q0~ -ztc-rU&=NRsK!Z?JmQu-_yweM^G}-Y`wRYA|^&v1=Nz735M#p| -zY6}lCAIcd%5YuN4Qtg(Z1%t_`LP>~hUjil}4VY^YepONd85ph^>gOE(@!i)30E$rr -zLCWdb<~}g4ZGFf4Le2BA_RTM8Sew@#P#Qq&nWcqEZ!^Cw*m$zi*nd85LT@qXtGQVc -z#|;Aeok8Er(tjdh(9(8=I#`anB9$*#xUKj{Z^&3Ah2Jhg>~2Q;>#8dVn0e&>hHH?D -z<{xFCGiiPO@7pUJ40z;Hl$5vyarb!^-ht$zPK|=ZHUS0@l5oxnV=W3)09Xg8HdMt_ -zLdtmb>}6l~UX!nv895iB>mDFMqqr{suK11GGa&L#*kotGVPD9iN+*wW0%Ns6?RK@OEz*`W-Li{tcf40z$ot79zy -zD*PR~`+1r%Zs&d}l|nVZbi6*HX-oqD832<3i}~?vP@TA3G3BQco)p}D4D?rom8NFo -z&?wMcI>+(Ka)iL`^^%TsChxJOzaiWru!6n10H;q0y8T@GG*c01G1u!QiC?0TAP$6z!hFf9E2`{rQ6Hba>JI^& -zMW}3|2srubLvA39Ck>hVX1UQZ64TY-=chRG;f%7b{y-5_A?M@I0efzs+<@`epSbcI -z?!3UxGOQZO>n)wKf_+>wl=eeam?8Ea$r5}ua2ZR@RQg$o4W -zY6Dp$*|~)nXi-wj2!1N=3StZaEmBhHAv^f+{n(ioO1@u1lK7kyGr{X-a$byO62u -z{KxbfQoJ3`?R-NTNU7=(TZy3Bd3@}%yD(I2xs3~ISn2thlO2*34)B}ZvTw}O8KB`tNlvgVDTCp}jMxA4IwR-$6V~RiOt2LGx}r}BCEw|qaFWOmb13-``W&@qjp -z=B-q8sF^l8lPw4BjO@GOR+s|{MJt@ho~Akb6q?br5?@3vv38Q3x -z>N0lfpooN(F-X}5`a)zY`qQJ_mUZd}#qXRkRby5scGb*VR&J6Eq;h@lUL<8s&0%@Z -zoud&~NjBJwmW*9u -z)I&s>-HWaz!pn$KoHDIFwVqr(kS6kE#-LyWcjdyN!X$1sOPr`1iCL&|`;ZqyfcnZg -zAS(ObC4@`G_J1^8Wmr^Q7nP9iPU%LZyQLZWMMAn$y1PR{Lb_X!MvxZi?(S}+8~H9X -ze*buenRCuPvCrOnt+ns|?H&HIo#a|nfUT+LCJ;+h?+q-_F^rsEHq*vC3v61BMQ+#Sl5ni5hg%VU%clw`D; -zxs1jkS8pybZ!68j2_si0zA;1XO_NTX!<=-rmIM=y-*r=C*PvWZ`ykQkUDiZ7eMzz6 -z>(|Vu{^?sp@B%tt&JWV$L!Yf^l&AX>GZu9E(B%0!ljkD79199^e=w0CEX1j_6ZVqR -z1K%NNN_EtDB-|tG`8R+edWtVZT#J7>aG7 -z1ge8?foi1dI6@m~%75-Se~7x?gG_ROcy8eMg&zah!sK%JO|*iouY)tDamy4=R72yf -zR5y-f;7rUqtB~#&kTa%n(4q^<3JJd>3Q|haZE9Z~Ya2oF?H*Ix3 -zEI9`3-ZHH3+*;9Sx2Y?A+JEz}7 -znojm4PK*=9QvW3Lg5SFUP6DFZI;m9p{^zXvSS)177g@SE%y6`bL&d}{#`vsIGV_%$ -z`)#KSid1gl%c+QiH>P8|p&aI~Ex=IpS#@#wlkFACI!M`C;AeeKUzQWF< -zv`fAoXEPNDWhRY#?917qT7_@|HoD>j%wCu4!ok|90NKG<`BHPMy~6IV%`;?~khp3? -zurWL0b;Db<_lQy%`N?GvTAV^Lp8Wp&U4`0UCb}PZ;MIfFom%MWck1V-S`^{pIi|e$ -zW$s)402=~u-6d4npPly$GWVS{>O=3B6mC3T+yo%>HuvEZ|E!2e$A}CUKXf~y6N+VM -zAH9l$(gOUCzYl@fN~1DuEdJBI##c^ -z1@cdmCzY|nJ^$N0dHW#RXt$Up2-;4R(}Cpk)<8)H`>setZS(G+aa|uztDT1IsSplU -zchlX>flcTz5EC!q$$RGIQ{b|46lHaBzZb_5!q_zk0Wd~8@Uq8BjQeGR!EYeFXq4NC -zS{$}p-*K*+k3I_&&-K!0Cih2P -zo{)o3*wSISt6$~cu0k54f+=xQp&kZd1@sNO->L{kpFF@dZ>0I;PPu9cZDa0Jqm~ID -z2ytz~2;T$E0#CXDYAklJ-`eQXs=WmLmzReyEpR|v?i`;wOoAe6E4SbBkKiXQ2kmv> -zsJ+9Xa=AuUxO&g;=L|q8`B2pf&j>L~Y8CRucslP)7`r?k#r^6! -zrm+Y+w_hx2AyizUGcLfmY0YiEN%n0FDNd##jd_?tTo17#o-} -zzV9^P(vwYV)ubCHccoN;&VX=GN58$E4aECBHwr1Ub8n~nVugERP3_GGI0^clG`Lvd -ztfKZTAiD`D+e%8u&D5jGG`=n5>bP(R%Qv{xwausDc1+o(REDTRo=AbgfCj2?Z#I&| -z-bCLfd;X_K`Q~3n*WhPO7O>A!Fyhr5P^nt$MACAxXUyRXp(`lKpTS%_SgNk?qks80-tEv= -zdS~Sm^z55Khye7W`$@X{Io(5?yc4=`3tuL<2D-X87Il{0s~rln*p -za@8Q2#-l5PhCTPZDihMx^8qD4fMJ -zL9B6ex+zkFtfES&nvw_Y=hG{Qv*?j`EO3-+dgFXoTj!N^lz&$JTjdD~;u1T5v4f#C -zz);%6MXL1GIa~apW0+UNbZA!Ub!qfZEtn@bo)>lOt0Oty>&Ufr+%Kqg1wi&d@B^*e -z%0qX$G3^OG)$cQPrStJ0SDxV3dTwkv2j)+t95IaP5!|02V#N*c#kej5Bx#pmp(Jn) -zB>g5z^);#wX5HrQ6~>O7?@TsI8`cel=d%ER(L%IJ_1#`;RaUgdQTKa&`mD{^veV<1 -z=CqS6$gs~P1`(CgJr24;l`8x06-Q^PLI$a?$CZ@8Pu#UW%|YO`bh;|S;~kH+C?X7@ -z8?wIZ@&yKy?vL;Q%&U&L?t1i6H*k9Al_hSwKFO{GY)bp9$VrscZi@!U}r@EvG -zu)@_%_s3I;bs=c{P?rfK{q##(K<+7)N7NkgzwKdpv0x)16>UonT-3at!LK)$VWU&g -z8r+kMEi}q58Q%;{1U?&9pgPBi{#X%Yq4m7bZ06rxQ9h#O-pCevO`2pd{PTR8aTFuIt5VoA#^2Rd=}+1>j>F+IRkG9_gv&naR&9>H$c?RzM^t4G$}HW6OW2Fys&c -zZ*G4QWl8qq9N~#oI{gFmG-DH7U5tPlqiKE!S$aU=QZBBle3+fZM4G?j?9DK$GF^a` -zA}txxBS;33ecp_pzyFj(0iZCiC-5qG=MAEcDMG7zT=bn1?n(8fYilz(4t#kl5_}|1 -zO!57;jbZX^N4 -zNu^K<=v6ukv;o8g;DMVn;!8BwR12So4$DYNq3VM;^vnB(iHwaH;A5{0cgg|-+`v2% -zN|&|y7!TU{#hmjV&ULr)1h5$m7W+&Eg#Hc`pI?9Dw|=UHB!o(hP=1KZpYwWs`j0o2 -zM3ELA9=0;nK19}1P4xTSk%KQV8ep6wBp5A3J#{J}Ki+g>6Ra=76Z1Orth4~&I-r#t -zMuU+)Nt?Y-sr;!D$6GsU+h}C$MU=ylBuw1z=bi_Eg8;X`BTl{{Xt3L=AJ?#EAXaw2 -zT%XSoKr4X@bhNS!);5e|wbR&X9tgDoepie_=UjGSA?L1QF5El*7n9q@;~i2AEkV@04f(q!F-33|wwU -zftVj(EmnOOPhtsRVZKt*@Mcs?qQAnBd^QNt2Cs)sUttoh4DZJ(;cN1WE&nR;!gY}p -z{^`Fkag?>TpBvxy<|>Xx|4C`KJB!GtDTBx$kc?;4`2roRoam=jx -z_6v0&6RvBztQZc(hW0RIk4{LhEWm*l2}Xd+c2eDPId -z-^vN&+uLKTzhWc7kx{6GG0JGJEn1MBdHZ`-GUJN-U0LRzZ@~neU#r<%5}6KOdmgX^ -z0AnfTA}_HNArOnCBbQD6*0r -zU>sRUbDQ}NEd6iiKKl$8g`-Oz1G*{jMnGVpy?+yAjUsR1?1;q-$Y%CUHuf!@>Nkra -zcLe2iBg`!E7sXdUf-(7LkGPDgWv^2nu|Fa$Ea|WcIClDXn~1!y$$`lL2taprLJs9O -zwY=gFeC3|$*%t08I-t#Ai0F7cBjd_6pV4V5cv-C(BC@OMi}cM5J$A8;&)PD7>s^a~ -z7H1d!f;vmV1ftgta>g<{3(DHrRWtlB9-;2UCMCOg0lk6EKZz(l#oMzZViJGMer_5# -zqu}|_42~!rcn=4MY$CBzWrZI@dvJd9pk7lUC#*DaN{c`$1a#D{a8w7&TPP3?-u0%OE*gXzt3Vq>yw?I(KE1v#^6_F`KKk -zb>L$DkV$}K{u -zoX>)|rl(q{x}^11I)DArBZeQmuX}jjuoEpR_LJgX`A(5pYj34`r@*e-+(J;&h$TY8 -zMkd0$HU+UoAVQ|g!h#6Gb8)S-{;rNxS0c=~#Fl;QHHX=D)x&Vg#DKHo@TyTGa`$>6 -zv;d|c71wjfHL-duE8_L4sQ{!)8tbJ2{1MqP=M4nXl??=+H+29i3K*V&QoBN3B_&ze -zK@?Ru-Rqq}I{vZ7oBulpu}nD7u})KDr1k|DYb5ol^PR&YwmLW@zQpb!{Gi3{j+-$d -zf=Vpp46yTz(`fw}2D)YCHY0r(xl*Yj{JrQ9D0>qGd8~eF0e;8p0FpTVdqpm{3nxJ0 -zc)&%z2UVz%aToN(&oJ2{tgDNNxDDJ?ws#`8nq}Yn^7UB>>55|8uTcWo1Hq5c!&_iy -zZl(SV8%L9B&nODNB)*SqlM(iLJ=%8F~pO};AW9WTY`EnEp_gZ_*bg+mm@ -zO=D(;VRAN-&iiwm(v2!{HQ#Gb*Wr`Vg0Wy0h|~Kap2+9^Cuh+kuT|;>sKs}e04FK_Fe+S)Pq}(oR*~8HRxuim{ec_sr1ZpOfEfnc(~2T!Iie*KZ4>FLkZY(zMF( -zeq?h=R`^~3H5^`xA0?XYZGux`>E;u5=nFhP?r*TFJE*%_yh4|$P;ushI!x~HhC&@5 -zzLRtPd$!|$!LMO9&C_OqZ%+El6ckVhrmvkvW@Bba>Kb6&hNZaKVKd||R_ls<%mq3J -zvefTaCe1fUR97@<69?b^5u^b=1)zZMSLzdq0<+sV -z&Xi9a*=vC`cV0)2>@8q|fV=u=z*rY)H5j2p{>`pS5tCIA5A>U3KRlE=Zh)XG-)<@F -zbphG=aPyyR(Fc&BmZH(~YYhE){9-f~&A;4>C4EBYpF^(}kE+aa=}_Z%uYFvKy4ws{ -z@f7F5YtJv@vE_#b4A3EBy7RDUL9R}QzJeGG2rK7q7sqY1*B;2=j6lK50+$1hvV -z|EU+89f6GHCBQhW -zpT5-ZEhtKwrui3$WHgfc>2;%KcQvZuR9%CQDa+knhgoEj>VotlNUn#jBNUQ`8Ik4Q -zWhHQ(nvGuw(}Ha`*5J+nRb?$m7Fe#X1@F};sbEfQTUSS7ZzoHe -zih~;s&t&*r7sY&kaZdSXUsP_-pFU6IXywKdQZ_`iaaoG5!R0CK{RNF4DrqHmLIp9c -zZ*#|cPp{c_$94naW^$K4S3e&JeR#wClOB*sfr_!;KV=*f#45IIg24I!Qz>5G#3;b2 -zxlCw`7Ne~)u)cLIzx)Mko-}aEhDr7$L)kBd89o%fs2|->_qck8;wxd@c1^VR5&CJm -z-&qHA(QQPe8@c3?>-v?G?DKvnwl1}@I-CSF(Qh8^-PoPZx<5i?QgNl9|0@@!Ii85) -zVeM^gP0a^*EWC;{{9@zJw?aHtWYuY+Ua; -z;OfFjR!mK8(Y{uv0)P-<>^6YLz9TlU$SRXlnt=F${sT^CG!DMg4sa{1TajSk78Z9= -z{CO>1a=6?p_}C$z)6Sn7>Cj83ov}qRw`L+bROnB@M0_F_7^VU}?S8SQXti#`oyE1! -z?fSOP!r{l6l76Qd5iKweSD=vCP`WhyN#c6*FzmL5{RsY(eBls+hZD0-KUtvf2yOn6 -zKaX6U#7%rp1WILjIh*1g?&A}L#`_4f#8)W)swVIv2PN|nK^rv(sqOcXf~~@r#P2Z8 -z>@*ugE2k~z#^JHRyRPet$ww3t!Z~V}o5VBzB}6c-y4Ta5`UB%0U{iy7X>Nm& -zYseF~wd5f45lv%#aWP}z)-MA?jrVbP}&$ucia_&FO&Mt4p*2}nJ=}kS^+G_zDWnSs|{!g@A^_DR#mi0B7 -zLIv2QWgR|ytPM|Pv_s>c^`h*+jchd4bm*`?x|`ZKuO@FLAF98QORPmIy5f{eu+O@ -zFoOW@HGddrf6&GzJXkKdc-Jf5N;gBr;!5IWD?*I?dc+82y8_ -zmi`7JuUt$kSt5?#35Fdceuy8{-Jj^Sar#IhD%V* -zyx{~t0DbB)jdDDhj`I{%?m=*_A!Y>+a5Ph?RMcW|1q?G9XgyH$(mx@rwnL*9H -zu|htpPe!?rUa^G-621l7?Uh*?8Vipk`&WxJvx*Xli|f$ZzDImb!xr -ztx+nLbq;yd!74^$jGD+uzXMa7{~cxeWLb8VQ28N^R~pzN=q!L*gR{YT>T3)P^g*w-p~vB?~1?~fUXfJu?CpAkk29bXN<7@ -z8gZo^(HF~wB{E_Ep}P45D}s~#=hrxRF*tHh8L~Za1hE+=0J04P>9t$QYyP6J1)b`> -zTgkM1oha|f|>tEr5Wg})=7~cuv1^NuM`Ms&j1P^wsqL!PlpZ?j1 -z4lX_SMnaZ=6^ghtC7$8;{XLvw%}zuDWZ)gB?Qa*cXPV9q+jP-+XzCg2q7IF`h)nYi -zojd<&zQ@z?qnckw_Vzi1;<8g}5ES*9y}sd@A8{+{14HZ^Yp%?BdmE8I2vzdRM)UI#`NQ-p`8~y!u -zU-9JV1)j~0?k#238n|c@d|ga79(1~c`nW(F-#(VcOh}GB3yzqV!*Zv!=KC(w-V^Ai -zCJUG>z+I%p{7tcwQ?JwF(Lh-T#7z*1Fnk(a*5-;1ixQ_^VXbemru~xy0D%HAj_Ly| -z_ts~nSRjZvbHh+r_Da3Td&X^8v8?8fyxK(GWt`1vj -z=M6nt6AM;oJ27xP0}l!mDwEubk(F3du?)GME1^w>RTqCMk$MuW9XZtr^)T6`j&Tx2QN_}rxtc0#ZFjN@DIoSpIE5eY9!icYF0Gud`lO^`YK -zKkC!fw>m*{C~}6+eM6>Ss+lm2P708cIw2T+kxZF#lYi~Xrd8t@_tZ`n7mKX+Wy}QQM;>!*`EB3Qg -zJG;^B?CJ84gFlCjZthW04x2~gI5>R20^@uk4%OVDzLcd&vUJU$C&J!K*lTxT2tgGP -zXb4zvQHJzPL<`FH98N%5&w%9qpH4pBCO!KbzxkET13z=bj82g$pnnJO!!J;05%EUi -z#*LY??g(G9>Ichz?UHsvq{%jFoYyuv+B-da_V$z`Q6SZ@QT}vKgtt-BT(%V$@=ngA -z7_-euA0V>qM@^9ZR*JGZS#744yD3N;6t?l})2p#N;D!J+(sD2xjOzJy94qfAQq|&N -zjGm&6I)IOXbX9N%y59I2^+iWWXpfXEPiz|F{8tz+{=M<4#|uylgfD1k_W_~UxX$+M4s0%(A9S%R -zMo1eM1tpywb(YcK#SrVt3%vyAj6gvmxLU|4GaGm7}cvis|*Fbo41G2`jDt-%a$u)t!!K8^7x -z_*iJZ!grnw&EQWNZmH;<&Ttz|Vh{qc^*zvsT4spYL4-dnLG?5|v7h_RL;a*Ov_9SC -z^4f#(z-sw1@ia!LTV1LsE+-w1uB -z`1&-_gAS@Z5_1piTRS^}Dgbl`PA1y)T5j`lY?&r%+aWDn-&+Cuos*>O7qG+%72$!c -z*a9E{+lH6aKszA7{*{VOLogaU*07eZSPA7ID+d}O+AXRpV1l#lyzcVk -z-V%zQrJHPy6UC*&UcMRfC#;ICS@}HeHd9bVHIIEq{}zhY7+!(Be%&O*;G%Kq+?Hlc -z?rZ%l4Z-~8&~Zd%R(Ec0*xZlC$4>yWrr|0xVTjsRI!&wtSN0|tx6-%wRIA%UnB%bl -zsBPmwOWe6eI{*q~Ddsh1T@@7-zsWl8e3lAvxH$ph457)C`1krrk-JWPt}!(++}yuz -zGjZ=vXq3DAIddX@1SzjbaqkW{{Zi~7RW6?4dYjeIoKVvAnqMY|F`Xd}3msaV@GE}O -zn8a6UIO27ObD(lWqOcn>UII^lIuK|9B`%FQUZcLM`*wAVwYU=XEz`EIk5o5y`H@G- -zIZ>30J3;Bpb5nyX8H4X}Azy){a*)aGrUm( -zvAebae`%!_wltdKt21S!$2lXfo44>`?-7|PlmLu;_!0{5A*v4lp-bS*!`pzra^o&_ -z{i8Y+kysSyBa|O7AM*7i-8&ZOeT@wp1o#p -zuyJjzZAiO7UC18;FW3J(yw8wM7ie^Bvn5G)edUfUTO0&fz#DPlYyDXG0Nj7k-|cR3 -z-qNmJ|8CGl=(3cEh7mS4f=XXT-yg`8P6}!_r7HRdwvn`W6eifJj5S4Z29?6Awp4{qZlC -z>-HPg=b6G6X*5v6u3OEh+k?8oh}pUBH`ib9PJOUmXt{1 -zPXDErC}3@ozbMFH>)?r9q~u&hPQ5EO_-tbHDc8=-WEHjx&?c)BVZ_I>r1HL-w|`Tc -z?J=aa`A1LU$LjAVN2cp~uBRyt1dJ~YJ1@7MIZ8^|+*Je=U>Z;p@N+nCv|&P8%BIyEo65?yrg -zIV)YP$a%DS#8Nw@Tk`B{uOCzR$KKeu0E*{baus59{$;eijV-kU<_38F&}D@*ZbEWl -z{b*YuH4||1U1exHNTPe!Cov0aKm4|U -z5AEm}@KN5O=I&i} -zcR|bWKJajy=fJUEFRrlZ{;Rd9z=BvbvsOipPR3-V`~C?-v8=K8`ZB#6aBmf1#F=R^ -z;RXpC`;lyQ^5`hkVZ;Q|@_3ft;sYQd;QRvhx8~HMST?N`H7Kkvzm$qSmze*hS97UX -z7tuA_X9f#rgJmdnZs2!?sct4jh~_x9MUt!`rT>VOxk61BgfVxy{n;}RX>D`hg$ -zfpXtqIy$f@iK(_Ve+jQNlbOGY2*tYzH|;?Du$;4lF#oz2s -zv{6K1wyP34mAZcq*RL|y{4-7wz7_AuKPPHuo0U9rM1 -zL2c!CAV3~W&WdOCKvo9e7_Xy+(8K)q>?|BL9f?hB4n?|uEt-sAmiK?K$l~~H2Gg2U -zXTNAKi=hmw8e`9*<`j|qzpUY0x4(VFG&7$y|8WwxW8bn -zE;{(a%!FlK-23KZ!~~B$*|@-G6Oh>m*r1ej+K`6XLf3q6CRQdvJDEovT4K9zDJ}$a -zlEy(*>&ibTlbD_(of4z?IZb+fo9BgF(Ew8k1Q`h%AQtIlSB<&TATrx+?Q8><_Nsi( -zT#?9+KuwsRsC>fmS}Ku -z5+^9vDpLD%e7`*|jU@0%^j!MLkojn=M_Bqz#or|%8j_LD-2G#Q&&`x6?d~ysx_Cl< -zNAgzDqx+->M(-&@p7nPrJZ^Nsl%F01LoA_{*D9ukbzCDdZhMnyLf%zx=SOIx2^rfV -zC3}D50I}169JbSE?5sjiOWw>;9knn~Fk2^RH8l)VM(mHQDK( -zF_Fx`kb#)=z1!f#7kM4Y&6uos-Fm7%=aRKLgjlC#J2;02%f;d9ckVukpG`>pT7Vt<*Imy?C1@a7zA_|Wb -z%vD*wkGXEJlB4pk_q%Jdw{}OV+V(3A#>%J)}KH1-szyHrag?9|K+AS*9 -zT)x;4X_n#^p0kIRxP9gP8a-gP3q9!43lB97;&!Z3f{bSG3rCO+B8IlnN7xNvk -zO3M$Z{rSxh%zx#AgqYUw!V&rkCjlq-RQ+>iveXTQ*&c61Yi+#0JGcyv>($m8K13$9 -z)k4=qKztC(E%bPw`S7QEF2UuDgoXogSRnFpN1w -z)pH=`cX_qK+ok8dXn7@jX6l)|WL;bH# -zmYLJUvgW2cYUE;u+%lp4<1Y}aR+_JpQrOkg*)$+J2YX+rSX@B$?CRV+4s6|)SngT{ -zr$n9D%B+qa+k^)c@CFaIoI`>-j@l_u+gQVLW$AjOLyzd%SSQR}L=O5v+4Qq|(Dzb} -zm-1hA0D2UWYeuthhrFTNP&Vg?p3>}idRL1+4j-pC|$0V;YimJ}^b3XafsDH`a>EidKfp9effWz0*v5=1H7ca_1hpo|y -zDi{2X+Sw;p9$_oaa|tco)~xuy>J_{kyds&F?dff7AK4s6m%J|N<1fx~QY`={K0z{C -z9zETXk$aMG3{iBMYfKAz+DepjqQcH{wlmJ!f!(&Z1wC)>t^QMDIETIuFNkjL>g0a9 -z9jF@h4VzRZ0^Kr|O7iT@v?o$O4*3KOP5R&g_jzh&hQ|<(A*m#p&zVs~W -zsN~z@@X(Ql%l;KRh+|UFLYn%KPV)r~247{=Lzlnl8i4^W!=nFWC%TpzIU?Gnp!WBLX>F -z3Z&&NQ8{KA*~Or%oB4E}_3vTBoLp6@L;o}gDhG!^ -z*&=&3Hmd9_EIYqrFGuiUETOQHy+}(8RItk;z91o;yq;R%wAZa$e7St~jQq -zTc8YMSZ^c-&VRP6Drz7ik%xu$GnF%Hd}IG{U;P`)RKFh(3JJo~xI_jf9EaGqStG_z -zU3`q~KiH~T((|d@rqci2X9d`IuyqcI7DvT`Y=m^ssEGWSglLaY<;p0B(EB0(c(5Df -z;{785Fp9M19a+C^7f$=LLMiN&K7|jzzF!$j_j`GB1i16+)99kA_D{?pBQH;pyaOl -zj@MCK?zXQ_>r-T8(9XioLvVnR;fAQlM^oJyEMFe@t@2e)wYt)bmc~Lb&*f%{}q5s1yGa{81swCF(Vk-^E&#ReBurDjdPFTJkfMVSKWAc -z@x=j`Ls8(zuL>Rp`Qkw>{z6%K&J&Ef?)yJ>NB6+i2E>7ulQJ#OUv5$aM;_id226ZR -ztdS)93p@L>*){qGe1=9Advhb-*2T(;&Mp!EJ({kRKcMx3DB`+29)9*0UOQ;?zgxOm -zwd^dG@73i_)&y={U@mu~3ozOObjhyT07=@mzR4EaaK+4BZSRYy9;lzaBFsYQrXW4T -zGx{@9R94dX;b+}C59>+VVQm|j3-7S-&iR3?;nhNCAxB5yq!|-u(Hg+Luqz&u+Wn_2 -z>}9`bUpVywuYksm<7^=xP-Sad;%H!c3&U8x*%xi3b-(@Y9^pk}Zy}m-WAjQm{njE( -z)52oumz+EmKKAi_`l$jKnFLtg-1}?Twu_e%!$XUxdq-nmFcH~=68g+iD5*y-V}I-D -z{XZjGDuK{I<)g$Zr$0!-;kZa6nVgSBfv48z)m7T=8V_-8N4Ol-KIzH!m|=SjZ1x~g -zVAqo7vo7y~A1xp1Ok&OMynXopwbrfUX_WeLR6$F6s5xON`cu^M6=%crK!HlvJBaBJ -zOuD~ce&MD8`PkBQp2laRhO4eDv;i_5aiQD2t{>ChXbTXc#fXa>ZL+f*R;P%GD2@|f -zA20B$ -zf&2rTUZgq-WCIl9#{Y@%)s;$C^Bux6!O5$Gp2s#}TG}n?1BBB6Ii#oy+7(R;-VCc{ -zO)ck|EssyR=8ZDeiFdjQsZY#o7}N83oB+5(1ntR?#3&G@?3t$k4PB~a<1vyUJF@hN -ze=mP|e_XRqPnkRw;iXh#UL?vRiW?Lcw2c(_-QZ}469H0BdB1a2nA$bIQy$$Y{9>7bwLc1QC8T#@WR4^vY7VfX -zm*#kHKSPuA-E~c*51Kw9o~89gFb~8Gi4uD}IfAqEPnd^fN|B>BC;P4h4c*JJ+_x?W -zzI9_P@72FHWDIIVDRK_V&6Y({&9OD}GfwsQ`NS`i3SskYh9^x~A;jh=6mGtU!U -zQtQpRe=MGHie*N1ql?9iZ9U-$FkbNgV=?4p$E_FOWk$&=1uF9wNDIkKAe@|qYHbn{#ZKC;4U3twoohx`R4ZFBUz2q{QM~ -zj6=O`^?l=VyLjR(c>!iEAQVL;#MT!@5NT1MexepiJ$MNh0H2nOjP~LOMqxwM;oCKp -z>Y)k_|La6Fwwo8V31BbPa%eSk=ay0ycCD*R7?r(z%tG-{6!r4`u=L;zf0*z)4YLWpq^p*ce>us8ChuAck{X)auDhTan6o8Oz^2zRV?A5 -zAts;Z%#uz#7T6@lHqa&e!RIXHhsS9{Esh6!9}hxGNpCd!aAuVJ^eil^5@J)!BmDYQWmNZnkC9ZM_GJ&x73<;^(T{nwFA6VSa|(B(A#3-?0(Z -zj4WOr86@5VP!WVzKpj^&VHGKCV^;KRCw1L==3=n|<~(fdOfOcg+jSDJNG^CPQ`&N* -zQaWs`h5eI!Z|s+b4HWwfSNryfyDX`0r(4pA-Q7*Z34k-LKVj0^-|nhtg7!_2YSjA@ -z&xV1Ty5RrhyfU))U~b$&JM(-ns>(%UAbd@B3|v`mN{OagpZiC-yR$43b0%vCQNKJ^ -z=?RakKtJUtAbwh@n&mM2Ym`eY?4`h)$SUo?MdZdOO@~h(bZ@f+|_&L>GxYb`uKX$wXoW&W|7uHnWyCB -zc(|?W2L?-5C-I4ZisI|=C2FUB$7!$q%x2`is{0iN1%dwXc4)f{&>XEJt+0^rxJ-s6 -zi!|Z(sl=Ip-O_fcK8|p!d}dfFBNdxI-fkvZ -z;(&6o-% -z@+Ti;r7q2;-~BVW@lYNAg^sXAxQDR&-Um)A*2NOC*lO*;;-)ho2|kEIn^U*zLiBBz -z10_U^Kg@DUbQkI~`AWpxn0te1Nuq+e_WNhJOhF4?2h6WXzW -z=OgN}KSk&?FKM(+N{kvF!27VEx>ngf@~@iv5$T2kj_3*b=}j8_4!;y?)vd&t|1M(a -zV^>y@J2A7bICpI8Wg?`}yaStw2}Ei{?b|C{qvoH`7L24uPkmdd44W#=DD!zh -zjpG*!-W97pdW<-FjoKM6@2QvEa&U1C8;dQOL=PJreK2_qCR7+@$AxHxPm_EQI`TZ& -z`C*J-yG-XUy2w*Q=^;>*t+|)zM^E4m=HSlRDUB3swC7pd8c&jtZf<3cA=MVvQMxf@ -z?=*BzhpE4?3;=Ojq4L;+!8-p&q!nmSy$$NeD=RAH&x;;)6xGhZ@gF0)r)?f_89cx( -z$}CQj;5_Bk6DLg*&%7ovLamX%m6XN}%CY&f6S2M?;$yVgsbT&Efct>Oc3|5M3Hr7d -zmp(rP8uM1LWUKaJE&o1VL{-;;>G|~HVp)osV9K?5;*}XZy9W^QnEfhi;3ms;zj}X! -z&linXxgup5a>qY@1tvOd^!A%<8Xr4iH=Fr(>j{!-|KdUZH2-6za3o+V`%k6rCP3!^ -zE)iF<(&Z6PfC(n75=)o%VZN)rcMJ(ZX{x=bZrw|8d~jhKA_GtK;{kQ_z8A-PA2w8v -z@7PTw`1ATJG_sm}PUzxf)JPo5qZZMKlb7YcqVyydddki|YAGx}JzX`|!`e`%o=Ty~ -zSVln(tFUzQU>PakTWf+)X|VBFunN{Ff>w+gsdHp{7KGDzIfyH$h+qGG40{0pfL9m( -zl9pBajcwahqG+1lag3(OgLZyt5`Y(oN)`hN5qn$cn4bje#9)vbgqCCG#0~r4tzX0A -zV%Les)V8hwulWGNG#zNk1n$L8AA*iy*oilz9`QnJgW|TdgHs$k#$I&&>O>ewKsYVA -z6{-!z-St}-@=iMkq(n5&$3Fy}mS>^mVu`M($Jzt93s=?Mq}n8D>tKQnP-vS?HKEF& -z>%cOO#62zj>w8Z$yf^S|&rUgjavaE5hAGu;Qw3**NYVt55<2*6kQ_{1#y;!-G&V4! -zz~NcKj|?LnJjkV2-Ipi<-3%digbu>)8Hkq)aROl0LpZMZAxW#UyC+ICT&3nkZGPvx -zEsj*WSdi12%&1JSh=Kqnj#tPD4ztezFF3CjG -zX^{%@E;d9f-2A@>hy=C4c4jE0Fu;)$J+A<5d@fRMD0(@e#tt67 -z1rfh-@012~TPh|Z6>VLJ;>r0T?$_Ezk#a~3Mxo*FH8oVuwhZTql*RY!Iy`3bvia%l -zU)YbMjo?87bq_qEds*BsxN$D2JE65XBJIuIRQz18g&Jmw2z?pQ)u>&s-T)YRA#i_VxG4xrtY8-1+2$!*5QfrAPAZ^0ngDh~C}`p{L^NNIT~4wq99GbIxt+bFPX9f8NN6cPHV*Q`*ypQ%W!>t6r3SSZ -z(DWRV#vM5dAF-RzU_}NF-tV6p{Ty0f51Mr|3fOVsx&`augZryllb+iiw%W)HC(4mq -zFCP&HKWarq>wU#>l33Z~k8@ -zgjJ0B{`+~>f>Z}m&$N0qD}JC8*%KWoNdpb1b2V44sT{xrydyCHDj-4Wg&+f*EQCY> -z@33RbEn$9XKIrf}PO;!bg#`@WkY;boob#a5<@$rOgO5WhZnAQajEUXta1A!aJT8i= -zQxMIhj>?e_``x3&I~XI#CVB92_Q#4?#hV;7Y_Pg0g5?XWx@zcS5VIriY>SV^m)E!+D5Lb>Jz@7S3XNevR-Y6QlpYTImciemG}GTXR|-e|2+Q;_ -z);B=sl)k5Wv*lgO+SkGEfHySjWThSW;LZ8KCwKkdwaP$~{Y^&I-$j6;8tmgdaMXXF -z19xK>1JE{r%#3&-8kb{r?DZRw!gKhByQwo47FuXYZhBW}Y#OJtgLR^I?qr}fz=E2_ -zY}m(oJBur9nAud2lY6O(3r8mYI+bAf(8XJ8da=y}-vta0;OD-w%~SnD{FUt;^`;~C -z99eE-OX?FeD4FMxw#QxsV;5XTpbN94x4$cO?N`=4U=WMlr@v!}MtM7X_Pj7BfX=c> -zF@%Y|+xZV6Pm)I@Sei3&+&AkTQLR%>k@uTB2wb#@AFzT#pI{! -zKu{b<25~zSU2{6|@!%Tz5{9>1`FAErqOIuvnV|N=&CQ-wMi%u&B_Qt7cUgIFzQYGt -zkw9BUOSTrPeX^0nZJOdCr;<6|c>u+IHkNx5crc&@jR8J84(iQ*M5yrToX~vNn6zYN -z4>Rv!T)kC&#~h87zk=^k1Dz+s)ej)i02D$jvuh-~>&g-@OY!lO8nBR3g%s9D#=){Esar{d`TF(7p%5R4j5HU*+Q48k(#3$|X~8t| -zN9C!)g_Aflzwb_W$bPsUKW1D2&Av$7fl#-_bF_U(QfTU{*RAzpp+`3! -z3zMxGf$ZA~JRQOrboTA98+Vn1Imh5EZJ>}swZ*)}L&{COI?GFJOrhd8w@59WK`FQ_5bU92wbU12^(q;7z1)jaDQ5CN#@;fZ -zs$hE`7D2ickPf9m>23r?I;A9(Mp}^W4gnFQ8$kr5JEcSEkVZPByZz5T2k*VV_tX2u -zBYU5-XZFmR70*0t4Y`1G^bTQj33;gsGa$K^jF -zYrFeFNzEn{coCPRK$nTL|1rKF;&* -zs7daxM9!^wjF&t_$zIgpkjV#m>b>3gOI`779Nvz7EVKfjk!G;pmM`w4=EebnH^4;c+!DRw -zNt3=DD9)v7esNaN^pI)cO)WKTK8)tFcWA`K;&D@=15gQAZ#JQo?4$Bo$sFp*YPYrv -z$C=Pwo9b#&rnTEF_@-&@7Q(X4CDA6Gc_vxzP&;~9+Ze=4`+n}RPzF;__GXDu3NGl*uR8BuMebS)MX)WO;YSZuC2Rktu -z98Wv)tBgemU+L)omwGs%{=1|rj;#QODtfMSq)F@MQ9;PdT$y$>U&*! -zsOI0yY;cGX@9sY#d?{2=yAZKJ(la6lsdN5E#yhg-}W2`$q#BQ!5bVKyp~P?e!nnl8V)^c_OI -z1h2GL_G}{$%=G{i%CVquckd7B6>6U4dzw~vg%cDR79f9~n*>+UyD&f8;N5u4Sc$IZ -z2&d03R@~Du3m9{!<%w?~d*3tEi -zBb>2r?t=NC9tG1~Tr^5ed;=&?mn6ikM0+BZyNR1rt{j7^@ -zY~d-pVv{BZuw72Lx~k{dLC2{MPW|kN8XdR+?7)$=M=2O -z(5V9;i1yhJXnpc~8?? -zz_9X!_)!Lzaaun-A72tl#^}`TKE=U0PwJ5|`(3>^j!A21(jiw|5T5~v_65JTx<_KJ -zc|=EwIgXl6iP(;?o&XgX1n8cIsCLOlQoODirdAglJ<~@Lj;1d$jD(6gKiZ+AAV9%3 -z#P+1Al%tGS-*fmU+tlap=)KNy;wpmAjQ10qL5UVa@gUc^`R_Zptsa6LmsZk?b^(>0 -z&*@)wQt)Rpy!pLlaWONZ8)yS>(e1d6zbB}hpdG8pPCVZG<=Q;Ii0SD!n4kQLGh^>h -zW#mE#PxWomN@e+YG)E#I;J8f{6q4b>eu0WnaYc+KK{2|I -z(f9LI($AS5{ -zoOnE{jp&Mpvp$@+2_)t=96x`s5INn8M}j2 -zuf_v;FuNEvr>{dDQ$ENg8L~gaRrITPB5pNKyDZKfo-?Z>#g#?U`b1MId;t^GrTHc`NCwQ=C_z; -z8#h#D0aFwUChx8)e$tG~l_4LZxXgA2` -z2O_M5Qxl*|>57Pq6l#{Y`zi+!WjnNFAuIJ|8$W3qaO~7()&f&*hmsJX*O+cz{Wmy!!TpG( -z$#ut3V{g=rkSQsQPl+qXa)j@7QdD?>4huj$fo$Km{(!JdiS1fFV(0MOfqcctTSbXl -z9ScpG2#={WeR1=9)y$`e1F$g)z3+!M{%nq_d&1=|sZXp& -z99>8z;Wcx^g>wj}cOKqj8i-Je{j@Q$K+uG>fUA0YQm=#_{+fz0k9twE!h6k!O><^2 -zI|$BN3ly*|S@Z|(Y9lNO!c0s}8lmc6V2@Ges(ZZ6GAV24fjUp%{D&R3Zl*`RI?RZ%-OIVmfG!VY~Vu#CAs_(I(Vx -zN*4L~c62`D;zyxnE(^X`MU9I*QG8H}wIP~1lTEe&0ry)c+2@`nH~Y*{1UXxY6*+dJ -z{uI7bV)81#Xzr?bR$}GWAelaMZ5`lZFM$=72RN90x|zY#44tsNC?3QuAG>o3m=hCB -ztyFFEnwzJKX1g|A{fM=-hc0ar*c25C#Pmo+?f;gGJ7WjCij3ikR|IT%Kys*(BPZk47 -zw{BeE?i~@*-L1+n-5ZgT`(cnIAUp5bk1sbCAoz1I+|pY0u2^(HzY8gSkq30pA|T{$ -zokt-4RNx7IsZpu(^x&!F(%gXMF6zLr>w>AB!go`dJ5L$fbY-23V9f_phJ9@}@U^ut -zbL2DV<&s?^yGy7_6ssv2*pE!-q>GMl)6216?}`}(%71N^9ww9f<=@A#elnzfZjh)a -z^88B4$mTQh2VKz{*54z%^&s56?oG^M6r!w4(S)5?r&~thL -z?6UAOZfnKaJ3)M3GW+)x#oygSY|nW1Mx|wgUh#&1{?JPCYmic|LBNQV<`Fgr`Xgic -zEdc?^)1f>mmPcgtSk&%u^GWa(iPYoxY&Uer8@udQA{qas<;l}qwVpx=uFX;nph($m -zUDY|-kzWNCAHD@=p4zpZtl%kCXR?r{7kGeTS7jajyzVjwZkDG?o^Mn-lL|RqT3M%} -z_a0DR+|C7u3OaE-Ml+L?)p+bWNhML>H5e6y@1Ts2K3)@hm+zIRmN-B~`ZFmpsZ|IMH)e3a$QH?7)V| -zb51&al23J7%4KX=97Ud~U)a9Ik$#Xhj9zW6KRqZEpCu -zSXlhAc~xZTz@6pe;-S+q>fXiVwY_>>2Sxo`OKP()+I{;xQ8T -zD>50Mn9KWbXpsfl^cv$GR1mu3C%x{aj=`~xUvwk}wcOtXS+|e}Gm(8MeidkP=?)I4 -zReIq?hnHp;ggu%f-5oy`9jW4aedqY_iQM{(lsQxygyt8K)0cN1;PjYP#6{J?2na~a+Uu0-zkPR}H2vOW3{f2UOwEPy -zTk+3j03!#SaiLhQ1rC;@b@;oY_P%4r|7$gf9Wh0SRAo0~OSiHB~|be(#*QXI3Jl|*nH$*vAR0lkWbB` -z=__>ip%1+*N%C+22NZznoM~CJIUX_g_@lR`HWZ3dx3n4NNfhYP(irrF1>fm*`~hbw -z02>!$646LcZLT-;fsiG|Bf{`dSlqw*YLkW(yu7)Xru`-s2{rEntRWQPX*w^9fx>Ua -z*NDBaGXg>NNxrwht3o6#9lz`e#N-ip`;xH2;|n3_+r5xN=gh9gmNvGn?0;iE$x^q) -z_z4ZDC2rMw4!W~aDY6%9h=Fj@%_|(nk9FJf>7QL}4p~$76PxoQAGe>f$vY-n=b#F| -z%Kdf01wTK%t=)gVVF}AC<5sCGPG9_?WR0=i(>&7J6X|On5YrF1@k@qgWSi&7 -zk9!*j-*$ey6>1fD}@cGOO}a{Ni5PUt^T;Vr -zYEvfh9UT}_$vXO@1mUd;b{E^-XO-NG;ke+~kTI35k@xfnl399vx!DS5pUKEP56VFx -z#~c70V279S&2%F}eHoWdPimImf9D9Z6DAsUl}K)Y87GR2J+k&i->)6sYbL2}+m08L -z%V2}v9`$2}8j8C^Lr8!tObqr$qkp~rwxiL|o}V_9e_|K6r6f9*Wog$Gf2-V1Ln;@> -zOc_L?t;N^fj3pz%!WZ})@(_m?%KHsB*2b~_^*9N}$JAn@8o(++OUzb>C1Q1%=GjS#%E3%|#*O09;?7x5TrWm>In&a^> -ztnb^cR;S7}7&MzY{}ss`#JpN1+-#VsceBGyVe;PlX%QdBu)#Vm^V<)X==}Gls(wV+ -zkb@fApN%76@Ay%hZuWsAozUQS;fworHflz{LmZu5Q(Sa)?Bc8nUD*p^Y!lRWyxvdY -zLeqJa}F>daOY7i -zz|_G0)O2atr7_Pra>r@d{f0*e)PW~qs@b|Ip85zaCA=yF5_5U~o6ID6FQzBGUbxL) -zyguN#ngn@u+&~?(oKMLc#IH#5ms`IDT>rlP)hw_h)*Nk)#a5B5&^M?kt?-7Z^2Fh< -zQ75UIQuCKxS6Wu`LeDdJEj^)Izil&PJA3FUDJpa=PYc{{sFO%;!9;ocff=V#%52`+ -zwR~bq-HJrxAIN*Fq83da%T5F;KF0n97&L%Qg`n;Kwl~-l)$GzhJY%(hO>gXc!nf)d -zOA73E+u{q#-^+LuLbc|ueA(`Dp8G2*Q+BX&6?eO>x)u4PNu8aq~V -zX;(xp7P;&@j#G|;H=KddQHb#D7b{_8BG$w#yL*2=!h;kXVNx(xFGz5mk6wF!Fr$fm -z@Vs=3@8n~GB8jvQHZ1$eT_xLb9gA^E>?3xaC!NBWOH*Abw$|V;(<|7vbY^g7SwAuN -zy;`R*-Mh<`52!7sEf_!hMyZJ69#rVK5fj|hmHqou%%{fA0y*?n1F=0i%e?aU^xm3; -zpF{pyGuhMbzw~ZAyl!dabh-^^2OG!SBbMynbSdcQ!%x${DQZY!s7&fj%7NVn;Mi(w -zPqA5vx!qHGbhR~>WPCeDU@D9xLFZ6_YvTXV9+nXaO -zCP^62U;D~-E>wo!c|XPG|5@FRz{X`ik*uZ;I%*v38iIP21!hcQ&}DxW_s6-8_~+w2+esc{;xG{USZGbegWe{o9RW_#1C-N?7!6p_`izWF|`^B=OW -zvkJ!=dK@&6hJlQ#A}4@5FqT;-jP#=N4zI=YA1Irs9a(TTrqJ#t1=LS+h1{ -zLGGZ&Hb)`bB-LhLqdRD>c7sKFY>Yl39&t|$vpAL-Ww9UN{EByIUvfg4m8i?P6uqg< -z{P0ug*gFoRY!*WGu5$g!vFp>z$A|C|7LHxNgc?&V#2V(8CH4c$|KIp=9Aw4DLGV`!p!w3vgpe4VdbuY88D?6tPN=U}J;=Z=RNinmZeJa^DJltH($N2eTJEHKJw0Z`0 -z6dY6jXxfMHM8|$3R)8O;@;v0u;gf;0d8NwVN+S!eCIUsO($5-ZtOd=!*YLIoJr5^2 -zJ8j+-jRHhR;MkcCp8PJNKPB|QVSAcjiG1N~w5^rYh}tS9xbZfk54I{C_YetnQJ(zdEG#xbP7|5ZEs?|h;z`z_ -zS+YHV-d_DfLlkB@!Ew${X+t|`p7!@`6&AaxM04qKn~}7;Uv+@}I-8_l#}folbq_E` -z@dGm^h@mbWXkGVtnM*aLu#dL}%!b=+?sCo-^T=DWv<6Aj`eLN}MrJZSyuEeI=i$Gu -zsB|4fu`!&r=bG(s@9BY!(&4>;D_#cVkWBDzz2y8gR;Y638u(W_bL}ryXq+VbB`JQH -z?rJYWAEoMk)0FMZ@1NlXHTK$J>3sG25p8d5pFe22oiR)PJ*UcKI)f) -z-s#XZnZcg_^djIe!gn@&eZ6Hmonz;5UUI_5c5WI6zOQZCV5GS0m#&cm=xk -z=`s`k$QdwH&@HHyrzfz6Yheu!US&0??uTvbZ>Fd|zsJa+c9cxtt=yUF`IczKfq+9N -z@QkJ84I&d`a84@cC4uGhj^sqVbc6(XKlEH9#zfaX6vc96C21q@voGCt!hsRe51)UL -z?CG~q!13tu`=LLL@JUDNMZe3jr=ff -z_<5>1Nj4QD`Z&+j-|>1<%CuQ6;x2L}>0YQu_6|Ko6r=;Bh-Fu#{4uQC-ZIBIUsr|F -zvPOMme81$aPQNy4p^3u~Ts2VjEtlh*$LJ~vyd5B9`8V~j9aI!X7zNLeGNTS^J!5TZ -zxWiQ~!hRb8+G_$g70X2+7MXAZB_cs<6{PZx -z4n^FKerG){_mZLW@FP3@psIL( -zH6qZ1d0$Q@@Pu&(A_O-+2HIW_wAz3~Bk;6@tnhB*I(2NJgdVGCPj?Kp{XuQ;6sS0{ -zuJCGi{*E2jld@?(+XgBjBq8$1O!xNw>1e2GHh9+wycAMOV@dG?M~NRD+smA!UeNDh -zcSHp0<@5MA4di>R>5HX(*J=!QKVd+iy7V-VqNN^a>M=(L;=VdEr$?rH}Wla~SX~ -z$(TO|ITMJGatzRaZu{4^%Xkd!;ca0w-^{a0_lqT?Qjl)C!QZctvmtik9#hf%ZXAz5 -zKJ2o$R^;#T?KK9UF@c2p>x@y?lQV?#fxBu1H(P}DU~o5$9sd%2) -zv$OeB -zw!d)e;4pwS)!$}P9r_iyZ{>WR``G7v-jgvD_wsl5%)Ui`6#*3~!M$GRKY0AZ)oGEv -zk8oS_{Tf$fP8lY=-np37i9Hm?!;w3XyR&x>290-$|#_`)*czW!SCNt+EVg2xh+ -zpPA?CnkGDW4qwvOp6n^QGmz&4zKXeKZqWRCZCLRfCZ8{${wE4PvU9d|gBBNfADkkQ -zohLZfHzRn3$l%mYc*_V-$U=iShrc9D3^VQ-LG`-8(mCF6Y9qd^UM$YZf2RFFF}MtL -z2h7vqs0PZUw8%!@^2*-T0Tty*^s6Et_joj3$f-O$6!ADB8ZZ3mnq=fSNHxR5qr1oH -z{$p+iBC>%F9)_r+0ELqC<%Dqn&qnX_Lj&jSUMPhR_Crq|w_~GywL@t{e$)q|X;3vd -z@Twy4S3Nlt!Cpp)TPS`TVAE9o2aGn*ZT)&4j_mFc0ozY%VNNZW9GA=^XmY>{RB~e3 -zQ0fZU&T%_l@(&aRrTJ6N-3-)b2!#rF>C`$OBhLH~4!q}$LJ2=BlNWtW38ung(L^wK -zdXBaFvBq$4psW*Ug6LJlQn}lS$G_j%tvl<6HeJEnA(<`ip_-S! -zq(@FvTD~ueCfW$Jr2Cs1*j;62E~D`BEc<5q2I#96s}UT -zyiG&J9~49?K?LazZCS(x9OzR5@uB4@=EH_z)$M(%1|=-fBuYy~zojf!tYB)!d0#1? -zzZtKnaGHZ~2GdrgIgSA|tB1J2HUf=5H&*b+5pDmEj$(?94Uimg1JGp#?`m=U&sRy+ -z``DbNvdI1(w}H)k1CA?YF~oL=HA>!<)D9IAc}UmSa+<&oITf%z>`FqWvOE^Ktz_-Mh*H?o4h7!Q -zgWBn8HccUfFolY}Hx6c>!w@#tkC1?bgI7|mGIR__I{Buk80pjgo6mzO7Xrh9(2%~l -z4KOnG0dLfr{PsGv1#at4E=+`zSh;_GcjdUet92aOPo#%`^}2eg -z8)Om<$ke)6`CW=T%!G-!o6%&UAQ!cmp2jx0l?#Uh`}&HL+Y7Ng3Npz-5C2G9iJ{F2 -z9}9;AyK2Olk|HeF5Vsh0u=9ppvR;jX?G_P -z4!0GdKDS%iKb9UlWjHlcg$XS7J+lhF==amyTkYpwn?uA6NZQQ2kxz&psF@DoTAx{J -zwXfWzkvh8C+@2WblS%&sk}L-AxArSF1mSwOzD^86;j&4l8F*9UGV0R^K1pzc9m|k9 -zIqwXAacaoPXY-D%RP?O`@F5TtfZc|~g|{PNlHB^)s!|G-nQcIBdz}lsBuJjAJ)_%-@#hep4xjgbWq0cvDYD*L~WqD -zmR2ZiEyRivf^&-y_Fn8`NK2O}r>U`nZ;uUo=VHSLg;u`aD{PHJ8^`|^*AWG!n+%{3 -zfZmYNy?RbQPax*Q!prl;M)+=qyYzpS{vR{3&;GBgd7tR9xmO3}cX(wZ?7@ahG9k-$ -zQtOYZxkqjhO2Bnr(h2-BOm7c+<7zEpqCHziiHf>vhqi-?5FP}5NaAHXGmhY=t@AmL -z-YX+zKuex@PJK}MT%M-N~fEBZE|1zQ4; -z7XsO>KYni|GtM50yp$#REUPhJMh_j_Tfs#YaX#I2!q*Qov!{q)GJtJG?W1D`i8@CM -zQ-bi>@w8Mlv2kOuaJOB4Bb9uP!ULV(2>SlhB(r3mgWJ(~banm=Ob1Z(l9zSNw>^M5 -zmPIr;k!)pg7?)yyG@X0dx&>uy=mArh?1;yvFid8HlOoZo$P<>=IUw}<6tMk)0}$jf -zl7#W@-u;OPzFq!eRnrTq@!eRM`S>T)_+|{o2`co9t8gVsW<{qUC?}SBlrlYSN7~57 -z&%FTYdmui(?Fb?QevX>jWb!1=KUkl144&SCPexgG|0>^SB`b!%EYhDPuDef-Ks{i{ -z*@&Rw4rbxrw~eILr1RRlF-Fk}W8%d8IN>&4+qsbw!!Q3cs4#;h(?fkJAm87{kyg0& -zhp{#R^8Su0>RsM*zQ(YU!oPBSZewIZ-SDu>(IU)u2#@j_{2thQSUd;Bb6rG6YWs3A -z7I`g>Lk2zsaW0CwOhjgHb935vL4D+h|4{>wRH!0ynG)W?;yVn3kw<_6%%^wVB74g_oPs)!ppCL?IXNN=)vd{$Lny@nEEt#u1E0m3 -z@0>nF2CXxOPPRnCoOxiSF=?CJwrX|(yjg2EF+Li0iO;g -zY(Q+W{VZ!{v_E4%>iYFY9+b+*dbg2EbC(77opG%P(SH3%5RV{*q -z0w8*i`nXz?@X&p}!~`XLQf|VWEAWk6;C}I*^TnOX=jq&*bjY>zOVyaz>*1V%OEg;Y -z^`$OmsUw`V&BYz=O&U$i+W#rj5janwfutvr#Jm6yHB -z%z&a)mQ7i!J=P;KgL4S4yR8C{E9i&kl`;iO+&i{;!mjKpEWEiyl{~fF&<;=NhxHN2 -zX$DB>RSOY>@*5Y2Sh=0DPX@`ASbfHNNc#7?N`jE6hM8+~l0VuSA5=MsNkJ_Y2`Dv7 -zSz%!Xf7n7Ml;|=wH8Z-P6kHO{(0Wn5V0szb`gkA?7+Vw9dwG8q5Dijj2ej>S&c)_{ -zm5oM=pdDje)u2?Jm6P+tC~D+%NEUHE3PaLvm~#DEBftfcA-E$G4-4{PS7_720fGTc -zgW<2B5`=^aGzrD|zN3vWHxcx^90;H*k=X3&p3!_L6jqMOXM(@@B)gCX@`!O?038Ay -zM{D~bj=VE0pW7h_*6N+P~$&-O0_~xitXSs-uV1_aH{bk?gKor -zKVR`ik>O5gva?`1R?#sK`*d> -zSCi+%yEmHmy6{HNPl=nXC>+oNQ4?-yKenhBfGc&|-L-p5>F-6F@t?9|-&qh;%dBwr -zxa7IqhLiwMZVSF?Lt^>PQC2&RDx+raVb`v2)Ih5e>Rv|I$|K?vAB%c+m#8YP4$3nFD{CL)Z$1QbfeyXsO(9oLUJ=1+C22ZkX&dK)EwA7V -z>Xn#+Om2-I|MI1 -z^PL|5MDRs$aTFqW=L26RynH~bPFe$Hj|*R|{rft^{s)%}_-m(4?!P6PykvF$kbb9m -zP#E&(IGP$6t0iVtpRJT#Z$e%Y_$JJW#==5H>nT|LlD`Tuw1NLjhMY{(o=ESuQ57z{ -z&yXM~5RY=L40xWP7El4NLvWXlZi@ML2zDqBMQ)peJ3e+ga=|nT9|jZjc7KTz3m>jZ -z6J%m*I5KrM-*k%XJXB{^B*z7uzy*dz%6RkH&~WU787IXI_rE{04PoASvd~~H7+xqC -z?DLD9z$T)Yo`t{z;E)vm@k19mU3)de#{LCYzhHBui`BR05-wG!{Qp$rCa5iwRwZuK -zoU|(Azgv%%USXLtz~uORZ_&{G=MpROL9Qx>QQ(~c?a;!Y!{hw<8k{Ehj3->*uUF~dYw6xw0} -z+Oas&(=mLQSuc=YO8`KQK#3b7C5JJt$8ga_)n#dR8`c57`M&@g@*RpOSnE#+iyFHG -zcC2lHJOi=+P}H~-5a{VcD<9K#HehxI@Xh}TNkOzFZH6%*p?0ac=nR57XeeJtq&lDp -zVF$(f-k1|I#~j^q(ujbQj;_kIYFh#k)z8M2un6vy8bY@I)j}3lr=Q1?& -zD$J!1gO0QUX5_<1-%O;Ye!4ekA0fEpe>%(JBf>!BLY3uhzBO*ry|?z{uDy?_A^?R~frck!jGl;xiq-K=$atbRnP!LPlt6 -z_#>gJ7H1ItW@!OMd5lkW^)2lmCV5aC0qnK-rt4EbrARUjWV6YFJY`=V7B47}1@A1W -zC1q*%y3~Z3_6?uXyXxuEH{K@K=QqB?kFE8B7v*FW0nI7@RXxBr88dR@p`)+BvH<38 -zed@~k2o3JDC?LI1c&eVtvm_ylfB>pesA0gbmkxS9mg=6{x)ius^2ym%lwA8V!ukCH -zgp0!kdtfNR@Y?|oe^>eRFVh{;eMHBP)07)e(t4<~vb~{K>B*>7BJ9brtMQobqud)8 -zojkf{c2uzUMhpc)M!Bdl-!Mu=3+M%q@fy=xl;h)ySsax=7PDGYqGac>=<6lr^Xtw{ -zy+sa;PmRlwj{*d@qDj@h8}>B2jQL^pbw4cSYub>1BjWi-vHTP{cN0vW!RI|1{NqOV -zw_irCu08U(o=qauTjE>MNJCkfb~E0WJ&6@#PL=~;|L)*1;QzM;6B1{psQq}Gxm-%I -z#^f^=$|+v`OTd34`CW;}&-l;4%gk4N!ENh^nqILWcjUtZ>q2dd$tLclKQ3yJh_O-9 -zD@V^y?`K}3m1~djnOa2rQVt20s0*Ib#fT$K{|2H^#D{#O{ecFdD|e3DASCJ^v;n!E -z^M*&g>{R=0h2T&dXq6$6irkXN;nNcaTd-@a+*A~z$~WFs&})2Yf4U#<(i)GX;3{~U -zQ11$=C;{dcwt4~Hku5O#;MThwg?C_&eNg|6Sn{pMb~!WDKV`Q{eAOWe&oA%lIAwG* -zr+c$!YhDJShyTYZ>iPZKaZM~);8)O>>9VcSqRn#v6uFY%5=u5|t;WAkD*VX_Q<6b-iJqDixEB;DAk;^&kG6aYx*o -zm+THoRcJ3b$*nzbJ<-y%x$R%XZgft%=6i)F(S=lPLa5ETwdEneGoAKiYtfObL -z8OvlD$$av>a(*QE3)X)lQc$yjm;lS36_L+>2S?fUjGhIqP);A$LwO1i0#(SsC2PHj -z@8{SodS58JJZo(_D2Xt|(i-#_49xhJoMxBxly{}@=fC|v0p(WRj<*mxCsbxo0V@c0 -ztndK<;2(3bfoMKjC2>UW4I}$W;V|Eo-QTD;QB+Z?plUR7=(WS{pRARR`j>m(T)@!_ -z@CZxd9ndBqKzd~u7NJP2ff!2iN-khlYSY)BaCU#{toe8e=0%gu3N$Qa?vN4&<$Gln^F8ng>C$Odg8jIyA;+< -z_*a15GdAE2lqF0$P<8)&jlCbZZPYb)4vXIadz>>prX?$rG)Qc_&^m2x1suBcf&}-i -zYvqsQ7V@`ZJf0&qRUwT0MEmpVcZ&ce4}fQ<%6&4cgqS-80Eq$p$WpjN -z`jYm&6ys&<)LW>o<6Ycy{h7$;3f*F35-;ayWmPn>Xb;!^Ivxg?3 -zRq6E=Veci3KmnHY?XN$Z&HE2mnBRTW#qNZ}6%2`KRMN+Zh^g4uXHF76^hiw!Q8PJ| -zai?7JH$p|K(}sP~T7Yco9- -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 -zEYn2-G_za`Y?sIajL+qUj6obH;Y{RtnA7f9X& -zagcx%f`go+heS{pGgf`}w>hC%DUh$34`P2vX;_$v#qTF3yzf>Er_=rPb8P1y0@aE; -zNm0R`^61$;RXO$*lY^!W7$Tud -z5i)rs6C&E1$CCQdQ>nAh9+B`6qQ#n5W+kG8b@PJw2s7Al^}Alzd+Ziw$LfY#Zvga3 -zjCDNBl4(g)HBCYcA+Q;r0j!+5BpD3h}31PXM8uPbp3 -z%CowOUF0LYxz5P(2{*_G#380Cmb?I;6MxmIw6u%o@}qC`Xxg)YS?9;Di_tz{JRY>O-(d#NdqleI6YqoE3rh^^AKSm$z0xdFhSeUV$#5B;# -z$GX+X*8nO5Vy9E@c}t@>F{UW;b56V8go;zdQ*e-@B)2^TM9o3{zDfNt`4EHv91Vrk -zHE4Gp`2CWzsiC~Ag-6S)+Ftd-;V`G_SYmTzuzv7sR=WuLuXqM;50>*$_1ksF)ks&B?*c&I{a5SH?PM)?;v_zsg!f_9`D#IAMnsyN0%kv9 -z6bmpU!&@PUA$UTx@`7LTx%C1TiaVp~lwrs#nRo2Z`)S4)EKUESA%sxgk;bvMf%|9G+k}aA-^%P?bvshb&iyai0xbfh -z&`#H!+2@gn^c(SpiuI*9^)3L8X&UhU&|1Q0tI*Xa;F#P>%}7^=49RCd$SvUDB-==F0@r0saE?*S}polKa_oSC*zKni=3azy&R3 -zk(+m1o}rK7xBd=4sAH;R6Ju($z(UuA!Ml)Q5~fWdbG5rCbPN%4{wFxMYlt69PLk># -z>1_7_&w{=>rDrUkXL4zGA+)?j3+so37mI;WrhRlNm)7@l2p{~{6#xjV5qv32`0A(H -zLy5^G%6Rt8{LID$&>ta3PYc~s6=}dFiBjh)Nyf?NX-L}wv{pF~+E#-s++lg02p`Uw -zpW;VU0B!-L&mis3^QEdVw>(veOsK;1Z#y1J8@y`q#PP^a7yvJUxM1Vm2mAK;vT(=) -zd_A&8B8qAU6IidvN;~A8-X4txg4CpcG7sKKCm)ZU3q7imE!qFsjrlh)JjKqjBO}2y -zF<-TPcX?a1@dhVSt_m9b19x>yytAP0~Y;Qjpbf}RH_-bZt#GbU`K -z@r}toF^>DK1&et>VJJXE>b`%@#{^ZR1?c}wD$I!pL`FhM8y=I`y1iH-XY(UZTjWA2 -zZ6x$3+{NrzOy+zmaTH(#3yY!M5-cc;0WV-cSk9dm*!h(Nj_eFy>pYcr=jnW=66AOc -z!7PxjJ|5f<`+uB$bzD_jx9Cw65eX@gE|E||x3zE_xr6Aqi -zAl=>l=GvR{o$ucJ?z``I|JktjTC>I+J;xYxIz05$cvZAA>-IrUu!zFPHN|ef)Ej$_ -zA)u-$cqft+`;ANeO6yxO?^myujiP7p?ixhH>G$94#aS+0uTTt41xt?Ek9}R|mM)N5 -z0R(CWgK0#k15cd5)b)|=&S;#&3tPIz=ftE?VO>a*g!=^npyP)o@FY*fNxz4dA%gRW -zDJ9WuGtkC@zN7?$Fez;Nzm4#aT_z)DrD$Xta|gl7Yj5Xzq3Si}6D7A8Bz35P6#~w& -zuEWKf$h`UTO{`Yi7b?yf`iJz5t1eKC?XgYdxLs#UPiuaJP3Eco(kz;kn{^ -z9C8X_inFBNd)e?NSnXWq9U~L4u$~}+vW)NZO&=ebOCgowwr$|7jAldwpCKSoaOLly -z>Eq(*K9ScmdmB)+im~k1cX;Ei+-;4b5;}4VoN@WbqY>4adXYjV^NSbgkb`vmwg{^0 -zEjc<)2Oh~AwocANOiYkHm$*-7{aT|drRborv!nxv%86>X9u9O7#$Q}$a#GAu<+n8Q -z1eG?i9c4azf9qH~b5DRL3%GXgEM-!jZIAwNJv~I~QMs9C1j2ZJ5P}Z*acsn5`E=DY -z`vkrV{X-Frvb%T3s@=*UjSU>D@kP>}_B^^x -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 -zTpRd$!^)7%;gI;_{(jnZ?xX%Ev -zmQ*x8gQf{77d6xIINzSwB4;{wc^@d)RONbXIfk9gejA&*7zT`P*7 -zXChB`9l1p(fZV`;Tn@~7RWd7P&o!v4Pa~?!AzFf)fxS%OBX9|%g>$KPa2*M2(nJfd$P -z0jcotdN>=8dQfSUo_%PJ1;u5cyf9wU(j8Z{H}V)Q4W@yQ2PqomrA)Lyf#e?8s7zhc -z@m+A)N)9jsI(k#j6{ntqq8Cu`3Z4P|8_Pfgyzb5gd?3bdlzdz0%)taldaBFazuDJc -z;s36{e{76(jOyk3j4xogNXDiX+2WX+5SsE1}xvc>hjuHX%5hU3eMmGm(yFGvI=fZnb6S)pizP&2LJB9ViAfX -zIgp_Iq-$)EBHp7$+Lj}h-y^|yM@+WWJNgIZj(ry=tTn?3BLboG=6+Qjt -z-|{JxG~9}8@7hfUe8_MS^K2pY>a##&JhP$h<)2j#5Vea?1!ieym1|&avS?zg|CGSS@*mo&H5*Y|4?s#q#0(vXhTfgK -z^JL&rHrxUMYGH<~*iPV6ZEK+)c2|w>#MFiX8@hI-tkOH~p&IO3li&ZJ){cbZqqj?R-rhEe^stPF^Bc8ZV9LTwhWV>ly@ -zm^?Lp7XQW5{KPfNQ@|0D)(E8?;wjQPGmZH$p&Y5^H0{cT2&gC~$hP~s?T2)fM=7Ju -z@_H|+;>Ic)VF0$vGc!uwCR#Tlqiu;^(Cw|>Ty -z{px(Ev(LX!{~o@Nz_q!uA+ML28X}~@4GbF@)P@|v$Nb73F~mCj -z_p(Kzlb?|ap?4lV9nNzG%Y_WYZRiXoFZo8{T#RD#25sP(N-^saBDk=WpT`8x*&f=R -z-f3{0;|Bp2uJ%_}4=cJY$@(>e{6xqFz|WFJXdM1BGO^t?oh_V*pmWl_Z`_Qt?)qr% -zOWcwR+A_8(SHxed;!iUhKaOco-XJ*UXsX&;UNV93(g$&<2jJazWE)lR -zE9q9Wd6K<({dQu_Pz3s2&kV^n -z;EQNU307~=->T##+K$);p;rj{#$j*yAt_cK(Jh?U67gDu2C}~1I_O_Qp&CFb^`A-R -zS>NbR$t}P1s+<7+Jdng+kR4ug62#wXJ-+m28&wc{VcE%=DQ -zEoy?W6o0E%U*0dlG#hERL_$!G_z0E6l0z#iy=*JZw}u4xaYIDF7@M-~?@`u;UkCG9 -z55Gjk`Dub_st$k(TcGaHfZF$%(;`8Z4~BwnLwu2mc7W9D20V}XB&69aqLbS_#=IlG -z!7D)Q2=Q%%`A=ue^g^*if6H$T6{LE~{wNV|>H*JJJul3OacpNi%gD1aBMY^GxedJH -ztbVX%$!GDT645UIs5`*(zqUs^M@KE!J*tFoM6jXBG6Zvf=6q^>mx0A?4bqpvInZ1_ -zyp9&&K0U2jD->&^9d0k02ztNPHvAeL11=Nc?5=ACF2`k4)2MFP@}%>TSzcz$c+dQ*}lC1rc65N@4^Ws9B`Mz3Hv4NeCJ@?|&^rIu@Kw -zF#gW*4^%cCajbrutkLiAEFOD>u_`y4ai)sq`FKhMB&xQ5%~(;C)J}Ge-|$iCPAzl& -zvv-K)Lg)+`g}4JnuT+{bv_?Ef%C=f(AgcbmVclEJ|u*WihZhl -zy_Oy0Y`>l2_GC!;6@Ez&0pL6%kEN~_c|Dqbr#wR87rq>I_2hS{D4be`=wcr;ImJ2AW -z32yfcv>4K8qgBl&Z@EF&$OBexhdtU5aO%SaQ0iZnn4yqXX2krrEcroDC>-)8R?bqq -z;TxWa6y=PrqlMSu`j_AU_{T;5L1s}Ft1pZ~;P(?HN4E$MC}0kB?&G?)(bBesn{lt4 -z<@Vk_4Wv8+7T4l`q6YqBAiO_Gni!Xj(4Oe)L -zv_@~)jryKDysx@@*hm>P}IHEO5)rp;9uDF9FqRy?ii;q6D1_;E|3U-CFE<^$j_`mr^PzMZ|Ho56I!3<_+r^$zmHwBclYY>P*e&JKD8 -z*cHE2Y*w^B*G+z_A`<_Cc+)i9a4`D^8ktJYTA4y;`wMvv8s3~4rIcmKW -zkOW~jMt&^JD0=I~Z``(5fy*UFk~RKBZL7RT4w4R!JGY(WUogr7;ge1vo4l>d;BM>vhn1=rqK6-?NDjx-TAHYz6=W3BUq_ -z#+1==z_hP2JoVHwv=%XifnfV{E+U6Jhv&a>!EM|c03Nieh3z&2={erPr}Kk#;5F*b -zpXnnPtW|Z0w656a7{iUeV{ZE(x`x3B`HovAbI15qv7T@5V9W^`V27pY1hG!c8VxJZ -zrMmP+e%*4oB4^J0MZyB$7}EQzTb&oxLvj$ntnHO#5QmSK0L4pf!_6uIp(m$`3BoB^W~UfT9%yEvS|P7@nH6BO*gAzFau -z39y5?#FAsfM>ki_`58#XJ}zU&l;Q#|jWtQuhd6WWo^LA-kP_ci3KSd@)S8jPPm}=~ -z;#@#(Ob@zFOUKl-n5$xW+OnY^SFzfxQKRoho$6fx;n -zoUP`?=>eD1kE%Mukxo4#);Xl#tCe6}*3mw4c_NH_1;Y)G#rymoBJ--iTfYFAYldg1 -zGC{2g`j4S9!094$pkD8E_*xKDMp&AX6_obfV^D8HJS0avgux%)bH8!(NKQToyAf2@ -zr3sh?C3~6RpT(j(p`a`Hr&#K-gv$~=RGZl58FnM+J6arGl$i3^*9~p4J&>iOF4#mN%1JBSe6`&Z{qd^`V)}!e$tG`bCG?LLW;|0C(iPf&^L`n -zUbyQ0Q(DpOnWSI1Mji$90|b)UU@Csbhw+PnMe|`2&e~k(^Mle;DruJccY9hr(3KU7 -z!5CGfX~bDX2Wx2gT`vw*Q!Mw9m-R5lKpo+2dfX6Fuc6j}wV-)Vc2o%_&SdEzOjHS8 -zDxZJhB22B -z(PX=+;BPL!T$OMtP)1C)w=MKG2SlUf$#eaH6b8|cI4J#TGq9xQv3qF&9Z`S@ -z-CVxiByX|rIRoMvhG>a5K6MIE6ij~Qx%sYh10FO0x-YD19%Rl6`)lB`{ve=$Er!m1ZNC$ZZ%Pp@N77+u1E_<&W>?g;|9cm9g}{|Obow+21Qk*S>m?22a9x)$9q2y3d`NH -zb|lXnRd1EJYM!Vx1AG2_zot%n`*QiVf-YU+lSEp=%Ef21IsryOx$a?;J6=j}KS@xT5>Kx63QpUsPzX$9?Z*WStMSkX -z!+)ptseRnVQl4+&Z<5lI28KR$pm6tHihg(*aW!Rm+MgpG%11aOv&CoP=OLy!hEKM% -zxw6xmFA*Hd(Tt|UMt?Jt^FJt)KIy%FhDV!+u!BpZ`E>gK)kWK4wm~IgqPDN^= -zbbgX(=-!`-CA*Q6RdDtGKA0a?*Z!sCFiV7-T1PTB`X8SAfqaAuGFx^2`flGYKGOs- -z(c8@Tq8K<6l}muTa9n@eW-P>WdgQ@uV+aJDPd`j*kc0W2%WUDKyu^i;3%U!~HJ`-W -zoOsP+Ix5Xu=Rl2E&}GtwtgrnI03&D$CVcj%KYu%)vR#H&#GV;p_)vz5^Y&}fE1wrp -zNRS3Qemx>f`I<;57D^fFm$Y(0-OYZu_s!C2$#)NP*InzR;$+Vy8UlCxiWxE4S!exL -zQ%#GNyN{Lm)OgHx=aSm_bOkOd-|E*7%feM8DI`p`qAAbn?X$bJU%8np&mmKXJ#SbsLYr6OxLgsxB?tn3aghT>4YG -z3@4(*b=U)BU-5((_rA|Q;g~)exP&J9EW^8KG;9(nSo&Yh$ftK*>oye}rtL9q-dV&Y -zQ?o}APV17v7v_~R3=lqGjj;0&vAyaFMA&>vcKwfD+ps0L;cgs2OydEO`AQ7 -z*TJ@(xI90)e33V(`uIHfNeVk^Ff*%D>>g9l8iV6l40;Cd`z(!av9_gdIUBD}nruLP -zcGyaP6Yov!88_ME*qUkft-u~j>3PN4zp{ceJ}x#F@6+h{1A8nD`iU&1@mr6HM~M(= -zu;o{Wo!Ko1);XYi1^?;>5J3!s3PbMDoD- -zrPO0O%BO(IfOZ<)x{Olo9=j^vQ!uy3 -z5H-%s2&W{bp#T7g<%*ElKVp)2tCJLF50SDsvJdxtjgErGi+uT3Tn&m)ac;heVa6Zo -zh1O~n>e2h=N^`uqsjo1Fqw?3D08kU$zlVJ0(#^TB8kk%4rOaHrXBy>e4=Q{RLCpTI -zXUe-7(3TL~cZrgn$rm&=&R|FYkHwLH51ZUy@dGFIiWH$uEuKG(o3~06P5dS(YCdLt -zxdV&ZApF(t2i_D$_EBH#NFceHDOiCE)!X$=vR%)q|7RR2_L)Wh!XvTye${QO&pk -z@Ov>ZVQsDP^Q%hBWqf+I51IDPNGE1?*5sG~cNgd7b2Zy-Lc3a}NV*){r%AZ%#yxz0S=m`D77~`w%?D3z_mpq61wNjLwFUHko(uB>8DMFAFM*cmh8O!e>bAN3V -z-c{JW$+qN2V3O~MNo$Xy7MCK|JcA~X;V{nWS-9Q#siz<*5CMYY6v{d_Y}YL*uwtAy -zowm!q8?6zLIRA8`P&s&=jd5#hI};Ka?{tN51z%E~O+h41OK`vB)04s`P535ar&t6} -z)#49DmcVgpH_5d5w4HF=D7}%10m1?l*GsoBNB(NnDpINQOlqwO;`34@u#W)$4soaheQ{c$B-+b+LK6! -z{Hn5213?N_$(3(#h+9#xVe%EH!2jP-5scq>R96w5l=tiqwsw=|u#A%wu`yOwp^Sw( -zH;&+YjB=8(w5b4x_VDw7s+j<2bHNy{B*TRquq7=Y(&1h>t{iu|SWoXQ1Rp3aS3Ib5 -z@B1d|BnMyJ2UtpDNY8tGKw?x#^@68)E~{rXneLgNWKu}BvqUy%d^Qt;tf&W)dmfrR -zR-+jDA%kiVF1DudQTUynP;T71J7(1hcd-H8Gwg{p?GWKK<=_IO%A8@twi$MDm4cO` -zM4guhr;!c|+p~--0BhMN6k9xNsg1Ru*6( -zTPbSjD@>&<^ss!%IAHsUAk(MlriOvBNRxilSC!C-6a!TIR(#dcKejkvh{U5ilUhs?YR;90HW(h<0P#d$r3KOgvB>!vn@WBK2-Yy -z1QH})(UTIQ>Qb`W3y2?!YN3#T?qekB2kawz?)r*9`rr%8Wx_aUm?%vzwoMBOO7%g!tO(i6e@V8YU-)jif5z2P`;1~w~gSZMrI -zHKmch -z(Av~^l-o}UPoW>q#~ee2^)tCoz2<#ih4N*0cy4#f<-K+}l_-=PfR2iK;@SozlNI1L1+ -zyEI$cbg>ZB+B|=KLIfchAgFb|M}1ofC?r51&=qQ7s@alQ$sh}Zc*{B3O?^i-qwI<5 -z8xYSIU1aGyZ(S9LXbafgjYKql`awN+=ga0SqZ4NS4pD-uV^{UbCu~4gJ1pcv%hs_$ -zvIqoUn_|4=<9C^+YVHMn0jZ#6sLqV&;@E*$B2FVpq#?eu?&qYR{PnaS!^Qsf%iar} -zW(Y~bZWQ7Mov4vY7oRn6HNAMRh?tCGihk=i>}%$zeYLRh_Uy#=n7b@;}!IiLs=)xc}qE?7UC-Q%yi8iwoe -z?VilzFTXR2#UY*P;HI%5aJ&AGNpPLVoG5&GA12h%+F3^Mg4ixQFS5snLyxKSTv;V; -zq#napSQ&A2b9@mt6Vl>_zLKQRt@yhR+0I2QVZLZ%qb{2;KOy`s9ERhBE8nf|g^eZI -z7)~ExX;QI}Bibi5F}_T!L`MsrZu}El8>=&YcD~<_f*`UM8bO~QJB3!bvv*`I22Y(; -zuZ##}F66YA*B&{p(!hD=B{_w|ukyu=j?Xw111D{Q64Y$r(PcPr*~gzE#%im90QCGv -z-ZLYX8<8?_GDS)0B>FCfV7O1OOlt-BPflw(5-;KM7ibS6bX}$x5M!kPwQ*XRnshi9 -z_c*Vy=2ZyhHq#Gx`qo3jE0=K5VZ`#bj<5Ctd)-h2PGiF$3X>N$qrii2&s!52WTK{X -zolj;BUuK-)8r$zRipwJbwm%17h8ZjNZp#%knFTVLE)4w8vA>tucM&WF;sW4U?@O2> -zPxSykkGGPkR?TvZOSd-@kVwCyCcx>~RQL(a>n&HmjG1e$G%CL`OjWlc>K -z)N>Su$-A3^!WT!cu5r$IlAE)UCZyhj=RDESF&5|)dO}<`+%1oKBQ7Ia{TGj1e6HEx -z9nm+%FK<#{v9rPfsvYd#_IoQvAHMOkq!*I871;2}&1TL;wUv=g>Ssnn8V;bXk*bb% -zWYs!{(yh4fF7QSB$S+%z>maav$7V3?8s7&O&rv!te5Iy*yWm>f;=1*CU^&a<>B -zdo2OItt3XP`8~T(RRZ`F1ciq=j}A&uOREuDjfao3Q|DM(=Pti00$VLoI?ukW!cs=h -zTxGAdDTWj3MQ#TbWWH6MV}6Rr>Bq`?)TqH>%g&7ZnL;9rCBi9K*-f|ke;7sH%TqAy -zuuc8wQqmZ?^&|xyHCQoj_!e8VuqH0yug(pv&wwiMeH-w|?EopQPhZ`bVHExh&tA&EJT`p#)pVV2*Bt~oR5vtE#*Ozj -zE10TBDD9ALpF|)%fh(BxH3nJQ{Uy^cXUucoa(j&~;Ii+X9?qXmEVPkBI_*fyhO5WH -zp~Q1X4Lvvsyo#38pB(F-8{e%JI5W?^cyx7KU6=bqmLwky7(r+#{txF&_~VF*3Ev7t -zpajUP?E_Q&FkLtzC5)1urd6rZ2YA9=6E3syvL}?0CPN+im$MC>(E%O`)le1 -za3pTDwl!LiE!WcjI?H-A-_L`WH;vPc;1TDoUPJDLb0UVWccN=g$8e_hW7gbAYG2QN -zejne5vY|i-B8&X(LoJKTk?1%zye+yl -zNY@40ef5r9q{-@{jiG6A%?6{u%i2vmEK|*br|^dvk)6X_C2O<;Z;LyM9>hKYGz)Z~ -zLm%_t>A64mn(piwJu**3=o7iZlY4?&dHfS{BpG_O^Mi7w@4a6>fh)3aEkBmI*5G*% -zc?_bny{D{iL#UEgLWlObiJNcv5n9D;r|?=Ug~){;9oeGU`BOGClJ!>6-2u4z5k^Wk -z=b;zCaNpGU8<-hjiVfr^uvNIu%7B!5J~Udb$H7Z~^|>HqMRcPO)u)r;&x|_Wi*QZn -zhGP2rIOT?Z5-Rg8o|>EW;Olmoysv=@d5u}X-R^85w(;5fi7H+brFtZMIX6>`@3AVt@^52%XAqLB^p$|u=2i?#??^zT;$uQytmkc_?`U?#VhqTdCMxlo2&*q{?0=8MRP>DMKk^c4i`3b5b;;pr4D~x%;y_4-9 -z3xri}3E7ANlL}PYDRnP+RKQCnOMk(x6QPxCerSJPK^ggR>*=E>LwVG -z4E8QrMxptMj;3vp4WB016|xC*C{e_uzOhq%w;LCo -zjP91bGUyl{wsqJ3q-cDBQf(CTn_enCGOH@bW~t+hHF8}wP~~hneb-{n!_u`^>Q)Sq -zz1mgQB+d_GKAgZ@C6lI|zW(29SH0T9zdT;mbr}p{t7i^{&Yfv6DwD6V#ai*fn${Lf -zPERK)$-ugXjP}vM5cBk5c7*6iRZ3nTJre9-d;6E)-LIc&xjx(<#6MWte99M+51EaFNTWV$PgK1&iiV+vI=h<|@%Cv$NguD`n+^a-Qk2K_UxF9Oc -z(>KmbD>57Dn#>jrGb(LZv!1r!%+cKZvbbm0r;YbshKRXZoY{>&J(44sUz6hf?-BW` -z>g0pWPiM;k8LjT2#q4YOZ4(&|rzL#T!~n(tg(-)b>W7Ly@b^3WTurnHX$Ep>)PZRi -z2A&LYx)Z&e;p{j~dmT)6K<@=S7bUX_~je_4{=JDsZF -zShTRA!wsOT_ZzDVC!*P(B+jnEMU`JT^ps$J0E00J(N%4P;z#KWrUs&X=U+#uRP0Sb -z{XE0x=`v(DzH}-q7D~VWz2^JC?t#Y8Q?gx~_;1L{SVkPoN*mclu!bQu*25%Zk3SwK -zyU3&phWn#`)OJHOVt`TP*MY3Gk@H*2(O~##()rP@y`%O!HGD-?w@TODY2I_dSPgIq -zg$~+T7Pk^A&PoeXyX3{T#}}RBg*#_t2@nzzqpsh|5P1%e5T?4cFB>oFJj$082ZoT9gBc6r*xv>6wTvM>az0#*zizl#m -z6T@DpqW5!l((6iHrD-3?jl}QYru?Ad)VHSCSC_IMXXm=nHT-^8==QGfpkv>f=FPK} -z=<*s!NVR_vpa5{rP{iOTO -z=|;AYRO^AoZB7Q-d1dGw0REZVVE-S8DL9S;9vLKXwo2M?JxNL08yC*=1mWXC_hY -zHpqA~!ByNJFXzbcUdE^RgGX?u)A6m_<`k?a>j{NPi(0frvMq@f!DkaueGYHzN6&Lm -zEBd<=j~+aKtSdLsJsc9%PB;J!DK~+Ykqg^9*b9loE~44=QT$CGrii@}VDjmI_-tdF -zGWi%8ZYZba|6e~*;J>?K711#I0k#~*Z}m)>9Okng@G<4)38k)_78+g)K84Hd+bp44 -zlu;afk=wgsV7dL9{;Xbg8usYC#F>(qe8)}aSZTLCQYGH28^1z -zNKaB_S?v$O7-v0*G5jCE#}Ft%jFEyE0~68E%@8p?5ybS!G~mm~S-3;$vYe_*Nr -zdMFmb3joVjc|^$ji3xkditxXD#zLUwLM*$P4zVk;h-F&^!gnQ939&2j2#C$$!XZYQ -z2|>&h3@TjvJ)lVz?B=8-qMa_%rW;zPJ{{Qgu3)`WgAlFaJxp@R9 -zl)dVjth-{V#buzCsDW80fM?fOELcZEDLWPH5s!(9cl6GSzM6S1uYGa#4TpV -zjne-l@F}DwU=j>zr7a%_2FmIhQbTT_ -zet`e)U5*NBbSXcazqg^T$qVxpMf4mIS0BGfToK(mO|NWV7L%49vsNoqE1yt$aCrx_ -z1c+<++&#oD;r)Q6F3;9}c?7meIa4=bG9hzja8r*Zt7mEELWY=fhy}hPp_bv3m>`H4 -z-NfpIT{X#`B17QF>MD2kaB8Dcf&a^r$PT-z<*sGFexz}=6CHN`XNU_xG=*n+)gb6C -zq793ShAtS7GTy>2-w@_222E(bOXG~PeXjrstQf1S{Pax49m9`T6+qUpcJQ9`s$fpv -zqy;HN@q*LzR~la!X?|Q@bQMBCJ5en-*v=Wx=^kyKhArI@u6Tb>9!syYHYj=8x+`?q -z@;3f7J=o$rm>_|(;5TRK`afP^CEE=-Ls#p&gZEtSdS`;!l(~uhx?y#)-X%rLVi?sB -zHZh`7p;U*8zXcn(%uMp+niK5w$4AFX5B{t>>>BIJjn%qz#hnt2Ggh&bv(qw9=-|^T -zoolk{Juo#!nc=f8d+OddL2WwmBAV$AXqC>nyyh*WhGD; -z6@~3-%wWD%AEOP2-+GnJlBBw_A5y@3xH#=ALRBv%&JvQkJDO19#(pWxwmIa8zOc6+ -zlK1q~qtc0A%6}!lR1A8&e|C_uz>t0weKNPVO9hfE0$ol^=vTYb6gZhF5+?C0pX2pn -z1npwxe2l^)eyFnaKxJ9tPX@uR>D|TsPW!GfvL$ypIhM|&O7=U#Hn@a>(zg7M=xmy^ -zVk(hSoc5gOn>5Hvgi;DIC~Rq5i5!N?Eoxo%Eetel++rhgQf{VjlJb5&q5A6Xv$*M! -z2Dy*lkqC3S@~~=vXalxW3Lkw9vgixa&r@l@9*^8edTGv8melk^M8z$ldsAsBuXD+< -zLpp^4H8^p@;xW^{w`Y?9d0c7XXQVJGa@>k`iit^n9?m!XV`=g>E}^G41d}E1KqtVn -zTM8aiChkwcNi%1MOufrMg_sBjF=_%ZrAxg8mwwr9uAON`D9wIR5c7##dn3`}8+em| -zS@+K9>A~sn*V!7`>~posd2@XHfa!cu9A(2HWMAI;uB$jQinn+zo)o+-wP&fvD<2m^ -zhk^McY#-)!B(~F!uZZ`;!YfmkWD5NELH{`*n+fn=i#GV}7v72MXhFff;e4SiR37TJ -zJw5jj4cam$8)y2OC%w1uVhi` m$Kh_En_a%f6R)@wAR-!76(S1LNkdNbWL -zGl&vGo(9@Vw3mlLk{e6|s6H_5OOr8=&Uu;7Nd-K-YF;SVMc!z&7$uM`)I#-ad(*33 -zB6yy7?uXE=R*Tnvq+2Ods1*ZOBXdvJBsDLx?Pz(b@~IW2e3XhVYo9n?>>PB8wR@qa -z;||iP=ii^VAsjSmaZ}jeRne)PdHP9_GCus^C^G-Y#jvUcH-x2tIn*SMrC1zRv!h@}bs=`#WBGBOoR+=WAOX4@w!l?0wR|u -zN2UB+5~a8B0BxI>P1iDyXN=}6Y)o5{#xJatk+|ldjCPjsCr{fkBsKp=+sZtgzxAek -z<1b~}X@tg^(eU$}1gm7AQ@V0$T20^&KY~$YWZ4(jbjEqtzH(j#+F+nDr{)fK-*>|)bLRmbZd7p -z1NCw>kQ_#9Urds7JY<~=WK?-vXVQ%;(x*KB4@do<7i``GT-TfvG!CO$g^Uz(10-&_--rF?<+O{+e)G|+>v -zn4{KshaF>SubS~@s0%J#MxYMk4yBUBFzn@?QP5dh6`6))C}oRsVH@?(S7M!)di+mK7BFHP}o^fm~$S`#5!1a9*93M0Vm_5+L1rL}`E^JB8*!y?-SbcdhdQ(f{0J0Tr{e#-0 -z2o2Zjo2?OJkJ#;GE{QXNS9 -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 -z+c0abRlZQf7MyHG{P3N>KtFe(-$9=JMe- -z(?9T&?LJaPc1Z5VfxMHE6Os)DgK+d=JKrgjTFszS;l%=|zv;hz?3b|^>h{|@>|_r< -z|J!z-*W0rlI5RX$d=TOx(zf)BjH&chhAK>%$^NXAFb~Ud8cu!e -zc`4X&4O7hOoO@scAEiJf@s;})JB6Q}y#YI1rDAC7>kk^fzD^NO;E)RLuV|JJW=|3S -zOSRvSVY8Kyt-spVaf4YB -zJS%hk1qumLv7fpXQ}>%bPFrZ_I5+WQzj0<{kLa=r@#T(Ps|#R=F3V^1EE=`m)}Q;p -zP$QS>7OVDeWF)z|JM~-Y|Mqv8)U%np{d(YbsNp4)Oz`pZhfpTBu -z?zIkmlW`%>t_sX)+KILfg$wSDzb8d8pFT=9+(1jT -z_AZ8Dep$|RYa3dy=>nKFgVR=}qt1 -zjDCv9rF@W}XIK~f6*8+yUkuUKy8wwL(OzVVsLJWD4OXjN#etv)G~H^};H}h_di&~_ -z`O#&c6a-_M`stvC3`z2n4ZDDHEk;k8^jmTp^qJ<`I1v7N>7b_>r{WU-(vTYXu1y0 -zg+tXp^_~RY359sJ9RTD;BU}@xGrSE!F@J(gpV=v0yRw{1ka5-GxrKjyB?8n>5{<>oVeyqE%%Q+Dj0JqhF&M%=XaHwk)OB4Ogx|= -z*ZUZNo9^=@AMPg0J&imTfscMf8FSdo?MkxWUb@+v-DKmmq@neUW6ay&?jp~SjYFo_ -zD!=rHZc1Pd71-5L_uIy9ugY3wunz|IMSF>yXGi|ZqNMoRcU|iXw|72Px}C7nMZhq< -zO{r+h)x!xcPn?e~JJ@7LlvU{$VK%IITA|Z7JoWwyscR>SYI|ujKY&+a$RDb8r1fPqQ8m9Chr-ay1 -zb_amQc<6V%hSh`(NjA90PjlyI9X>uBy|w;jdvyv#s~_lY3LhMA-^8FweM_@BQ5Ef( -zu0#Xf7Ja)h+(k-A@zWprYlk-Rj0&6(>;?4$&l2odMawXxO`iFk8msFcquYiQ4vcxK -zJdOW{b)ejXAG_t#EEfp8qjnJ$c4x>Gw0AofG-&p_pKaDW4*|H)yqxE%FSBO*?CLtM -z%*G=W4wD+3rTSLUP^vi~DVr(oZOjF-xgzgScD-DCk!jNFLobKhQNi<-M|x-PCj{PF -zvO+TyqK45^nsJDJKBw1~x&3g}q+Qk9L^$sTV|{gf;q`Zr5gCiI3DPbC%W?b$)?gp%%qYYi`2XbrY*l -zZM2ExPL(7trCO&%m4&y^p|+w!4h^o!7;Z+kPGO*iriJ)GDBUxObB!fxNNxXDINR -zC6{sjVPE;CT9q_{^DfBaJRpD)0;ynCC;m#hAdn-w2M$p+eNxC-DsaDeHDkwLPexC* -z+`hS|v;9N$GOk1157c>oWlx3n@d2`?6x$lYb-tgz-AHmCx;E7$~S1wNqMcUuhH66pLb?= -zlP%XW1;>ZijAo_;N6iDy4Eb+4JM;3xPQiiI15osnpd#EX6vKt(la<;*#Y@kH{^oznESnI5Vhwe -zm(dWogWY{kzu}h=J@y#*wfjyQ*vktn8w6qjvjKrvz_n%bAxmT8HBfSezz!|3{eiro -zR)5+dw#FEmRm>EFW)XW5l5B$bC(EMw8^>>yk0C#7L@)BgYSjLxLifFDg1`^EF^P=) -zu;w)Iz*?8v25dI`R`a~udRNR_iGx?ihIX%V-*W3%?ep%TlL>bG`7)U!!bNASJNmpA -zZ{yj%tunbTj_rZ}sPVD*L!}Ro%v7g{b3YK`w$zR7kEHUZX5x7cgFmVFj>adq8EiO`E>&7EZh7Y$50sjEX+ -z@nDoKS>W{Kox}pJsEd|)^$*7K&3p=)X*?<7(0kt7*}zr1xF49Vwa|_I#FW>LuQjq_ -z9KQ-JwjZ5282Vao)h>a<;ctH?<*dIjaV21LlS1wDG?K?`{@EU$2b}Am)^(eodD>jx -z4|z!}DG!kIR2I8L1lgz@zTdCmUI6*7 -zs}|+WlyG%VIGnn4_($JycY)Rt$W}=fl+Mf_UAxMC@1_kuC(=;t=Oq|Q|Y*vo5Gc#;=9RbM{^i0~t>>kVC&r^~QN>~ye -zwKuZp`5(6rP8FB!`|5h7NV_g1I|Lrn#XBU+IjT<3&hKlpttV{0jvJ)#4QgJFaqUE; -z>a^9n*ZNBqI^o0B=Vf{J??rajyZll-<==ox0clg$H5&4iwzszvr -z-iu;;aqog0Gh#G3<8NQxWd%%h`x=Jy$s{=0R`Yy$)62~soQ97moa49;)$aHkd8fZ^ -zVmqHYcWbPuOn8ksp01d>vsv$R9=a+>@knfFUO)aIDd#&GZiQIp&1gR`dK)@yv)?i) -z=r}%{0TR>DTqruXcy}LA7x4O~s6N_7xi%&@+qz4xZDD*4iEWiJ_dc|wZVCIxL^eK( -zPm2Dt-LtOsK}O!s!42xaooRm8PbXm21HTo?6vh{lX8iCm4{*3z@CfW9O?cEjeKq`H -zpR9i|I|O+t&lV_3rT-XBL#Ju}q&lu&zS7g~xp|4ZE&91{Y&C<-;c54RyOxKK0?yFg -zdv2LNcUS+A?0@$tLzu&J?Yb|LF~`IPOa+}5O(?Y3C2|G}2jA{1;rCFa74bOeS_GJg -zNj?u?CgkPxn_4ZqP`jX^mZBg6CymZuY3R3&wt1`jP92UJr8sze4K3tvj@4e7Z|i9z -zx@IbDAY7B@FXu~^L7JzczCk%k&6Y4WgPmDoylNQ8&o -zpvz=lck5f<;>9uSX|thsJ;GC_GX9^|eycq=(mmF6D{gxZ%zCeBgUyB+=d{A^6?R}i -z!0*FR+1i|99RgH+<^(SSkx=V{Wo1^s!Kg{7Ooy$*Y{BID`^cuKE$LAjFI@aHDfY&j -zYj>4v)qbZL*6~>gqvJo8O2hk_>^ZF~>YoX2OX|nEtFo{(+V~RpH3$yQ!4G*PU>!DrK4FeOZ61 -znyc=X%VE`Jjn9E!8yoqs?czm$@{Hwu&KLMrQz*W572kTTjc?UG!?(1ETgv!WvwF18 -z7rwcWQJL-2y5~E7e5|Kew??mO;mayq#=rJ$r(;wk*WJ>~Q&+`}0wrr_YdMaH6eQ0j -zQ%;^p?EOSp6j{m{$GheDGpcGjjE*WmRscz=5*}wA=qk{o(|`iv1omGsNkozFpew}z>#H@*?czO!cxpMEqxRS -z4pbj%PxO=B{@~m4bSieDpZQR*Y(5AVOE`kV#a7^O -zvC9xH2JPH-DuK}J^{o&0gOg0i5QUquPrOzk+3qK*EXcezs(eB#5qsPifCWsvk;jb< -zdEC5E=0TL%@n{DO(DDwt#vDQ6WoyS@AGdC`sBOo7x3&2C9AD4kYbCyJF?<1Ic<6Ki -z0}DKSBDo(u$pswuO(X$QY#j1{aoJ|`p`jv|oN8h(@^*>VK%SWww6&uS3{mWsD?awPz`zVpf}{n6RjB|dPAN(=nZ-Dpf}_I -zgx;WTMF6V>PD(V2>K7-lt*vdK0j6PoteIV -zFsXRvf&QG>8UUWQ%G!Mwe?7ctY2fFSoMP0QIJ+pU2QdxkVc--*qfR2jk5ag>y4Us{2DlCKd1gGqgVI1ry4XIG?()tq*uC;bY~_!-O`4rW?7BhH@#>4x#eVo|P-fnBDH^!m -z({|a(!@s9;uW{DKN0#*^L7980fgbHW&XoG9y*94}6_g*@C|6rV#LZT}H}%U3jvjLy -zx?AOXWa{-+=1|uD7+Ug+E{JRQF!o5x_mI&pNmjM$ -zoKQRDfq?N3-_;cIRhz57bBB(it>uTW$8wv{^xaL}b&uPwv|NHb=tVcYm?@j8%6K+c -zl>MjU8hx$;*W0 -zFOxC|k&~&~G<3O&Es-2FzBpp!aaEy^H@l!_a#@I%Qg3(ER95;b2g^F1$-@=3=cTu= -z`0J9j3;=RlW%|j8^}agNiW45zHe#@&_Pp5VsV?W8Dw?}O+lA`@I@Z(sV&8_K=O$TF -zl~SP=9MT0HGOpP7*R(8tpLj2sYSq+}T`%2WvQK-key53O)#+0|gfQ7AOWW1=pgk#exWMYr -z{{4A5EeYe`AVW0VCPv(mPvmlJYUfEe=Nt0@iS)Ssa(hvNLY -z$>xh$c?14K`4*GYCiR!pC)wJ2&0CiYM1V14tGdBpGGDjl?UPGstAf_WFSzhT=`BFi -z-HztxTGPlDx4$Ds<$ir(%Z5Bu~@IxX8U!OIq -zTU;cP(TA|jnKyJZi|GqPy*1-(?K3I8ZIdUqN&@!?ye)-MITy5ExqCDmxBQOYIklD+ -z{G#uN#<0njRhc6PhfFtGP`3nJ*qG%n3{BZYbKH|tY4f+WtaPy8H?MbVFN!O=i|>5S -z*GkomwpK~V+%v{Bh;Ojv^9-0XlWaOc5iQxP-0icw+2eltv4U=t&*MiR^Lgu -zCC(M)Z@QQ&*QV~JBhVPl>!dO`s5;mW23v&r#hY>*N!67<)mj>4=|^_*Frw~{3N${; -z%&@rlQrjSfFC=T6Z?y+)iN;4euEHgIPBWICQCT-0N3xH-bMq+r5nVNYw6ELtLFnGh -z<(|W;eoUjx>wyQSLwniaZh?N>V1il;M~HH_q=ahl2(Q^q^@=PS7dkP>v74xPp{U>jozbLN)7~PyfsV@h@Oyq=2JD9WfuKy6?dub`cEU(WXjmv -z!E^P7u7>72Ge?%%TP9YGC+%*yHq3mx{loIi7t^sy!$~5ixAO46TMtLzW-UKVTFUY<*?@5izs;iTgxuD^l`xC*M8K$S>ngRytwmpV4F^FuAo$nw{0-#+F0GsC}5^J~)wO(WO!Pryd|+RoGcvDj0MedJzBGc* -zw5Y*zwckxYI9!`lGicnYTk^oQy6+U5(|483j0ewDU5p{LH^a@_V7od5_SU@I(k5tl -zzA<{+uDcaGjc-#n8TQ`u0DINI>?daC5>$Wg~zoS(5p -z-8*xoXT4!y29J%?`I^?ZotkrjuZn`IR(mMwhD$07uRa7HQL=upOCsR1#a48l$wGBd -zH*U=TvPFK)QunjS@7`m_3wFVZDSZ#H3%(QwCV#FhWx&w5N1|UET04xGDZWO5p<3^EsFz&xA -zY+rV9C6>e5SSBTyN -z9Qyx$U5(rM_gx_f561a_dws18Ca&Sunsbty|A#A(ym0s5bA3~NuG|EKb&PkEAH>30 -z!TFBU6RM#`Fc^UUj$2?rOHMs-grx(WT!ppRBi@Bpm9s(ytRpx(BuxwkEwRkk4X|cm -z6ziLo+buf1hWCGtX;sA*HVSDCFF=-1nE_YXwxXr)5$ur{H0U1G?vY|)Tm5x|hGao!|~7Rr2m7)1-kMHKy;ZY?MJ -zg6LuB3yvM3zIGEc_rG(CI5v(%U>hL<_wl0|5|8gkOv(THEncE8527zZ+|FSu`ON>) -zwF0;Ezi|D`XZhT;X9GIdXH7vW46CgGthUx;wdIM`mIzi`Vc=@ZDhxY@uI%HlRTASO -zB9QPWiVh5loB!LcUAV`8;}ws*YyO%G^c7-z3^C{Pzi=&q -zpl(ycf8+HYZvWqR9Vy^bcpeH)L@Yo)Sb(-;0gA)|6o~~Wl7hr25}!wn#Drm_0+PU$ -zT4+xg#cJ;rA{OrKQPL=zuQqdwk8|F&xsO$YlLP0nyXRW# -z)7NDN85CIT7&p7a3~w%5XD4sgHmf*Rv0=HwqUvNpkEJmtOmBKzyYSU(bBiNHgH6iq -zH}h;at_>V{TpS!ExB7ulg5{s7hQGBAIAnGjsLWDQ;Omx$Y6ZhhDFrq95tXT*;-#o5 -z++H4AR$A7+y3(%^@JYlafLGPD!`)y+Y)x6RW|sj&)u7kipD#{_DNcP^NaJCc*DBkD -ztIutS_Y+L9sJ&_vpuUd2KgW-J%+#z=Lg}cf^U8#q7bkgrkIQ>4%HVe;sA>pGd)rxYr+1lHYkwOiIt_9p=b(uEja;4UTY~1g7QO^tXCmL0KQ& -zkxeQP*-?8%Ywkxd1h(QE_6(8R?a1W;g~S*ynMTl9eSV^7`C1wChtwZ#2jD|fI-OLJ -zFr^dyIS@pYNE9P)sMKNqZ?X_K7DlArcf7k1Wo)|6cXCuLC2_ -zkY0FK6auHZE0tdsXDzctmzW}OlvH}>D;pS4P0)vDX0r2nn#tO&C6n+LtUDWn4aolb -z$f>#!-rZUqc`fMe6#hgp` -zH4bKmTWa_Qhs66G?K9;WoVoaiCo|}Th?X82M)F_-NuQ%F9hIplP^M7|96v;L1zAB* -zYy&Oqt>Cr{bO$PQYKire+pPhzysrmqJXm=O9+Z|M<-3%W)bQ7e3|K(g=j$~~UKN8BK87p> -z229ds8#RTy6p(V|7fh`Yv5{GN&KzoF0cylKNUW5$Ly>1P-+%k7zQ{iWZRU!KV(H)7 -zj(vYbftNw)3d-d~1?h6)#v1jSX6nC5Bu#lpX#BP&aceWR+Qml3=-bO_JDw{0ozD+Pb4KL*$cvp} -zYQgyhVgfiE$`9`&dDz2;ZzG(Is2q{BC~#Vilgi@NqxvE#f(67A?r7D}XI~`KM6y8z -z_pwpLB;TOhXQ=YWJ=k$=$mH0zph43EeLwNfJ>DZhP|29xUCR{a0%tZ=DK}fa=5WxW -zFSs7Aj&3e02%&#uwNvcAdr1erd1O@V98+tv_YRWKBFfQ>Z~+G`zXjKy!nC!zx05Tf -zL!OX?&N@t{!wpF*`0$|m^?FTDS%HIW&01m|=)OW-V6yd{E3vQpBH`0*FBe>|40*$Z -z@5d?@x*g!jrKv&0Y%AwIHU_+RB1tAB3_e{8O?$bsm$P~)^f*0VM3}K)KKWI!4GjwQ -zeZhNZK39{WH$RNy=#g*BM&-E)EpZyI*Yga4BPnRo%KIWRV5PwXJ?2<35F~&ni09?DIS&gEPhSqzJc$c#g>Ml^81>rOeV0CmH*ZlZxjY=uU+yL`7-j=pbc -z=8u)0@pCO?FdB$4Wb55=?zP(Xeqn&sq?7q!&+DJ`QbeZAVLS6SCkfTbQL9AeSeml@ -zsM8%5#xVI>HA~BlfdV -zcEF0!K^5JVO^?@WK9r3raQm5}!1~|;K;JjE~42*Hl2|;({I6-mE+2|&3rd#GZM84PkfpI(gz*E^>ekkoZZ{lJ~R2h#g6T7vBRxku_Fo#A(J@KU8ELQI~qoCL3l-gZ8J#Cqp -zYt>U*8Y5jV3K+-+z9KE~Fecu0>j3 -zw(cMiyf=t~=J}WEBs?Ia&xUuyA6|zKXd>BDznEEJ0Kv78#^b}e>XZ}xW;pdv-aQY{ -zzy+w=dv0i{n&SKalKZ*seMBEoOT9_Ck|?{>YXCNRe)OoD*VMQ>sNpd*JO4=PE4xBU -zcPw%?58U^mBQ{8BTulZ((F+efUh&iIy+AO3DGffn2~WO&^1Y$#5uT3ayUzEU<>UEq -z^`O2jUf}M}tKh-@?ZsyAu6;rgr-~fZF5N*TUrCTV$e#S@dH=&~4g_U!;<2oS$tH?& -zE!XEDsZz^Ly1@YIDv -zu3erA41j-co)?;0Axv|h8KkI*;ZU65Ge@;@uX3#gLf=?9&?xl*Yc=f|-4zJT-L0N*-3>Pitw|aS+B3`_yp-zB>*@RmBqKlkw_~MfIk5 -zon8bD3sC&}!8U#+FJLr8= -zYWQBP#b5G%66+4ig4X;NtQOMJVM?}Rc}Y>v?Awk@WTRabngy9m9eKlQBjS`A0`LC_ -zs!rY6fbbYvE|z_~>hWF5PRUpQ+73j%Nw85|Ivx5WLHoi&_B(tDL2v{K(X!w1kJi9N -zw-|l)t0ePghtzN`r56LrUWguhGY{;)S{P5b`yKv_Y9;Y=eM0~OYQgh!ot&@aSg=(> -zl(ZMgQ^uuVUd#_*ZV&PN?#G+|@v_;C?7Vk~{m&qVXF{GyfzoHT!JR -zSx9#*{23$N%f1O7k5FG6zgl -zsQiNh5>u#QT2Akrys$;W`6kL#q8v>RPd&!aKmY{*n?9pB!Xj)r!#T>iMo#YB`RO9_YL#9>{ -z%Iti*nx+QY1l9p}t^+Hz1_VuNes}p5HQS$x(5{I65Wb7^lDs5d%w45EtO3Ce!y3iXSx|qI -z0E}Ua;}vKoC*hLu#eei8Fl{UkTVzj)1zyfpjJ_opwWEIgf-p9R_3F?`%0hSi9?{xmOZ_M|hl$D?!!L -zRth$17)Re)3#~J1MF!?gVIY85t{bUs1H4$-uL`ZS1Nmy}e_;q>42dZbw{v*o8I{w@cgP-9X-rJuv -zJJEItP6k}zAC86=e$wca%f5w!TG_1yu==JLwy9u1jgw!N@K -z{C9F>kl8LG{iEqcxmx7*`R@IXBiSKL6Zxj>t-%yHYdA#`dcFkKD13zk5JrdB_1CG!)H}mL)K-ltAQ;Q;r6b%7*7j0Z7(@!~CWQcnS-T08 -zoZn3Vn6q{hgutot#pE4hs3oi?aCKVEbqlAmGHi5}6c;9S@+?bS2^lA{sB -zj=P;$sx;rRpfCX906=;*;PG*_MZ&&A^SOu+y0S@PDY2U{n3Bd=sbT^KwSlxMfGN~+ -zo*S2;V`iUOF4isOWb{S}8vxmO6z6C9 -zFe~|rrqxAO0iFkj$9s~d=5qvfnBM;}L`CJU?!cnwg#eM!VqG8CME{i@o`aW)DdTj% -z8Q@{Ou3&*eGL>^_ih4p}5dDTdwiwm@f`~p?1`6r}6b}Jmpo`-kckI=0-sZIcWciWW -zaX*h>^nAMwh)afM;jeKrfX{|;zmjmyvRA{q&lj*IiA;<&cK(B2h+TpkHYW^@Ve4>1 -z$Q#StCWM$vXe6N~P{2fWA@`>ZJ{VmWTZqJmUcw~-^szD*?ebG#CApfE9ij6?XM5^X -z8X5)KILcpm_qNXY1D+;e@>&@)%5Y1#cEXKEwc_XR?+U~iS!1r}VqNmSm3^Q77=7HJ -z3Gf`)pvl -zG5jAvl=2N;gt>-R!gmTpPMhYHliSDyL6aWtB#&w57ffHkDYNv>mIF^3G!HY1fn;TX -z_Q*Biah%Kd^>9#AxP$m)m&>A0LN(X1U=Hu+kY_2b)O{BkG@l?UM`Vr-*j^4)WyIn2 -z@%~6L&|?;14%aNy!0F=r#C@uPUd-WfID@)I_mF}oCaBX900-so8B*Q1$(z^$#jc5D -z5ZPZw#jbqF7$Wez`>}|ezgXo5C5)|N&kxsf=83kLHO%nY^K7r|iOPc`DbU#9xfZ1$ -z?lWg(zWM-^#_ItY&j^Xnz-|LIY!0M6h<-t -zg+bPy6w4#N8?QNxpAm55Iq86Saxg)5!n!Bg0pbB+YE&Ds5kw~1_K6e*GzpmrO~aIl8Kbrh&V;F%EeQb41pn}}G!j2w>2;_dMJ)XTV6|Y# -zerq8B8X{BA8=e~QH*hISSBxV34d~Fq2EMu+*kRtIruj)uyOAd@YvcRYLkZfmHE9Ro -z)HM_y54rxVY$}Jv_;>V*|B{7C#Qk4nbk|s?khi^s -z4^cqz)$gc7ehq=*zS4Z~CufjxJ-nFEWW%P(UK-Wktx~YY96-(k;>PIjP5qq^9gN=i -z7Rho%hr@HZb_d;Q(ErhVCZG_c~jsI#Mu%pAf61T;zdUQoq(w=fG4v8 -zF}5t=4wen>81yJ+$N|9RZ`7Wgds6Nlzf>5#?$yostnQag>o8J-Dzt$b2OK -zrG9%R-)Uw!KaW5`0h?!XM3RkKAdox_q-7otx`R?TU_N^nXwg*oTQXWvqOjH(X8AMB -zXJbFrO8dn9P&yDT`B+6%F>o2Mja~4a`guoHmkv(jT{re9ZrdH^P2Zd4VmpL+p7S8) -zHkjraDg{>*0QY@h*a1gLWcHP6+JMs(Nz}#x@F0N100+w>0Am+M#Oxb{k%&x>r(iQF -zAvSi;3nfQX3H&oV0J##G0~R9J4{Bg;{G%qw5_HpEq742J+>YsAez&dhO-yljVPXk8 -zTrj3TkVEsAv(+|j0CF9?QWu|v7tx@Mu!+3ha^5QPDE2a`dSGfB-9P+sJGkfATT8O} -zxl9lr0)LPN{;8vY9sn96rxh1G0+Ia5jhzAoZrI<298JJ;BiEN6xb;}2*8tJNO7?(q -z1XK@QZx|CZoX_P2ih0F9zAi|D`(N`oM*WE1PLeT4f1)@)V_-VKG@=;;@I60cfXG=h -zMr7g{DaDiL=N;#?FmXu{p`esSglpVO!f<*|_L<*NrCNAAp_!ks$elhQRg_2JyqGZzX{# -z)|yYh@5VO6t>1vafnx{!aT?7h=I)G;n^Xi<`_@T*Kp}x!0rMi*s!+k}>m-^^458mp -zV0{AdjSw2f-H4q@8&R$&Q1vS$ra+cMX6lF*&dhWBbBR+JY7-`FDN+#7CidyU3=%$5 -zv}OT`KjY`(gf)v=!Y;uGR^~KXv(P=f0rwWud&L0B!8`aUg#R4E#gM!1nn*Xo+~9Ai -z2m!sE1gjtM>+pYag-HECQe&UcpH0)kJc=R{-2qS@|M?qeRh$Ga -z7G@57tvO(M=2npl_ymsm&vBiMoaZ{Cn*?;SZ3g -zVHU{ne94PhATS{dPht!NvTVZ3;dyq!b>v}ej|Tm*Lr9h3j?za^T4JyFFr*cbkvEz-{b;9^}}Luo-0X}V~0nEoB%*P^lD$Tt{^JL@UJ{h!VAF3Kiy9^lwHO!UCEBR -zcl&(4kRymBQRFd4Xht~vEvGrM$Y8DOx!x{b*H1U1kiaDc0WUS2OBul3vXUpoVAsJu -zSeQ(GoCGTk;zamN{Swpzz;o8G&w= -zf0UrZk@x}r20_J6u>_oiwG6X&8LKrraM-}zVp;za@L;(5t7V2O3ju(G3u_d;Y~8st^)&#cr=BDxab>oSbszkupo;H -zr!<7jH_%E3(S%SFXh9W%4Tz4vp;v=Vf@9fkyLX8az1Hb@e^>J(&=EqIM6NF|UIgsL -zs1suh+!Jusz+(N$Vz6O0nnRC6GyulMh*_K`&KD!6JEJ -zPX4|9KEpi@h8B@35!i;->OzawA=D01qE5uCU};)uoaIOWZ-UkaG93OC>}Ih_P#vnM -zJCnb4HS!3+iS=x^$9j_>r$Ca!|1pjbp)Dw>6>&YUu>WpnGwjOne~e#Z5XBArIjE%@ -z+b^!zl}N$ayTM2VWA-?vlo02Yfud?n}Ot!PZ#vr9D$Q%yi -zK$Ou~UBy}t#bCOs`)OKV*9Jsnc|ct(?MK)$uZin=q8;(icE>A4`Z)P`*-Ucan+6Dt -zfqbqpu*0=5>v9jdfdF?Smy3DBsmWeJvTGOKAz|A|eHMdBouwW%e?VLWD5g}U@3cO1 -zta%m`wg#mEE(fBBY5Get4laNeOf1O=Oj5Y{wLrDLoO -z8e$MJj5-i8nGDDFm|~qQ+Wn*$JQs#8!1+L66DCGB8$4JvPr={JL-Am^k5`}R(Fmm5 -zfRC9BOe>LmD!3wsl{6&V1TkA5#@AC_8tJdo!5~0?@(nhjFd1e9|6$xKcOcAhK5Ppe -z2=c;z(YYKlJHU0a9sQCvlHV{2qa%_%hyz>cFmi|UUKyb+p>%A230FUSjtu_9bu$;( -zxI`P@D7BBW5n+B6{y32P@9eFJX52XRdj-(wL=yeKY9y$@|5y}s)#C+*U8pgbtShk{ -z=>)fqI3gl-WZAY1!cfF{*pLGo`!Rykp!#9@E}ja6qRE#O|jD4KA?;Ih~aGm4ux -z^S;xH5H$3p;mzJoB=22Hdf02!`04bgRYrNUnBazqP80BM1$&5Sj0-qQM{LC*wueY< -zE8i{O%6<$Nz?6lzY)zISsTa*0?ic8?p;L0$;(LSKR+vM_u+?;tiT2f<5^O*MYU=_)Yo|jD0i!5}ejFV2Vk30=_RlndT}!3F -zb#Da$4454%aI;!c0zR#Hc}5hy^IB2hUg}IIb-eeyt0?6Z{E_qie%*$px$ikQZNABr -zJS!$ief{|lmVaHxMWB1MTqW_AftM?h`Ok9YSTTq& -zISv8@9(#Uo0gpG{M38Hh0Kv`3BLE;8G(g%2e+vsQp9Cpa!6hTn^kQDqopT(xPptMq -zg5P&sA(E>F-pwadz(ECoT0n}ec^d5`_%C5$#dM;!R__z~DCP6Bl#c&w`M5j04ET;+ -zIp7H7CxrqUB%#7D^by3w!(W0vMUE?6;GRAsbQuQIAX)TF9**xNd^iMjf40wPo|_1k -z>hta$nMj1#2D~FG3Gg`tyk~|sZYhiXT1LS1-C8fD4rA<&!j2_z%FClh&MvHAC-(s| -z{`~@t7h`?Uk2Dm&0u%Bt(~133%^2%LxK6e}Fz)Ro_@$f_vC>0+DO?N3ix3@y$8QVk -z{x#&6B5VnLM{rgdx(sX^!SN1!3iiy{;$`l@0%&NrWQgBbh~&kok9ctZ&5y88gs%!-9}~joV$)ZeH5E!Ge5fi$m -zQ$W_7S1nI_P34+YwiMKd5kbZ0mg~wrJmh)bth2=ZMHafbpfAa?K3&3>n82tp6)@QMx -z&C6>E>dcE@q${QAg0lc58p#>VJoGsayn({KwPijwz -zUCsUMm+)2;Ka%g(jK%G_uAI)9srm544c -zjf9V-QRSy^Se&7M@-yf`BY{0>EAp-2%FPrIJ}I2(b@k*U$2BVe(83OOZy0SJ@X0o|j(Hxe1i;^l -z1#SmAH87U;^j~nj6zpaq_ahhhJc<6G1s1P;Yr}wwqCLXZEGG-}O~@fDfCW2Q$`^X4 -zzV;1A2Lp6&Q-ZZg1-FIG|2`R!_HDY;;=>f&#QMD``ZpjpS;|exQpXVf%4s<*?Y|ZneEGCJ_PXs0IU&2 -z?m4u2lh{y!4!d@5ol-YbC7vjMI(GNjQUD>HKz3UVKPrpYEa3!pXLm$|Gdv=4Lv`Ut -ze50PrN@0%^jzf9OBuHv_tqv&M3uj_@iBnw5!A}TmHY~}5P3yB*)lV}(5B{h7?(5LO -z034=r<=Wnyfzh -zCkmLc)21!%`&EBi?VKiBbk~c}&EC~fb;@HUzMle;4SY6K?g@2ueIHvl_8xc<`1z)| -z)Okl0vSgRwxpnBAA$NI5Fn@Qt5da=ORGyY1poH)KSC7;R+&cD1v7vX2JyJwR|9GS@ -z{Qs{Wskg+l7lpu|mKgKpwc%o4xHC7rB!*HI;+h_A4aPKD=qRKcJ2I9`R*K)rPmMZxh8lY(af#0V4b -zAf#IfdKQ-jlLbgJth|rIi7CXL0~T2hE+V2D_NEdg`(f1+1H6WgO#MrB>?6%y(C8$6 -zuH`on*8e$V9JAQaEOMvu -zH;JYVsBaJ+JZ+?bh@tfS>x+;!B2kLn&=!B4O6wTiP^U>gmk;b(0H<~{N -zEIg27CpHp9H#0VtiFB{W!tIJXa!_)%)aNrg`VDhhM6VFhLWh6qzdOgMAgT -z9-yQOgT~jw+W{|B)SQ#|TiQN;>`t0Iu9a0urgO5+Oc5=CW9TJEXgaD6ex?YuD<@;e -zzeBTd45|?64COo6xuh=EJ74oA5Xz#=lbhVLAUG5`qsB));S;VEgJ~p#7x#_@E{YBD~L$XS%>+m1Rh52{YT)ZrOIb#mB6@{{1ieF7^Hn5J6YHj -z1OeDxL62|%${sS{aDJd`P|Tb_7YbFO(50>fiYHeoyJj-|ef`_6I!UvFn8b>lTH8p+ -zC+Z@O)%(Qb_n;Gz*q3u2cZ{4-fbI9QHTQsqw5V?8BLZ8F0SF_aU4U(8rLxg+GosrA -zAC;KyRG18+LHr~{gWG%~Y5R!K8s3vtWI6y{mOlzea_o(0Dq-k0jnDK;Ab}gLW>8vCQlo0sj0uJO2NXY}O96aSW?+)21A($@ngkRupvjmj-ybl-4`k0E1DnkBrv9*fjE}-#C-| -z%|?tR>NlWi{4(t8&Y9eA;q0`CF^EN=vs={N_1_ux{xuW^fM;ZiLcm7YMQ}JN@LIHf -z7Mk{@VLE6o56hQZ%@8j&X;9CxD-&wu -zid)^8B5V!Va(?`5v~%r@l`yq6%)CgbP~9zRBucmQ1{^tz_NxPilT~tF8}&W42-7tx -zELWWA>~q^K)p;0Mz|U~axfEMFPf0`p!b=0Ln>65n8QIyK4WJ^E44{-L89?cffYCx$ -z!+AVh*lB??*=YfA8ePdw3xcDj_&|}#P75|X8rQ=i#$LE72o`$AJI9TYTy>@&=v+W~ -z%(F#+H7JjDW8&*V&r3abFI7ocTRy8n_+lqTUhFSJ=i)W&`4uU7n~?1WFT@sb$m-&| -zQ((SDXcA5WMCD>x=vd1IY>&hPeD>5MNFbdfk~7+PehPZI5)+) -z(TpHCNJ@~|93;iLB1lS5)f^->jIhVDvl<_*uje!dX^D*?)yBlf2FE`gD(y81N#qEBVPMaTO6^CyF@95F`hY`1}T?do`nm+7>4loHn>% -zl35Rxnkwj4=#AqT1rHFa&-t=c?=9yEbrJhmo17|MCF%$YLQgipgDSFlE -z3$2!3J-lwDUVTi!&K##P-x2<)UuW`dd{|#5W%}l&TXE>v%MBZmWXJ2404TSN_(pfP -zlmWT-M`z&pW_+-NR+bcJ)~!0`t3?Ptd(aiEZK+l1ABNV&Z-bhO?Nf8Xd}ps7)D+$I -zM~QBCSl9qDf}Y=#?+PZ>!<;ynlSKLpZ|oa_YF|vwEj*HFB*N2ww%nOvHvC}giGwBv -zgxuCSv!;a#{0m^F*(@IO9AXp>Xx$)#wVG=oNDpCgJpSs)q$FT8PiO}4n9x6@<}$Vh -zF>_^ULMg&*rEqBBt^!|KhTQlqZ_a=-ETAnm(E`CzlT}R(QM7~jcWcT>PTt8$5qtqi -zOIA0%g0cV{H-xW0JDb1>Mvg#jAZ|DpMEd-q1j1LcwigenZZ~G+t~w&KzZ#{xw|*aC -zbdPW7xCR$&xRvi~<)8+dZh+x -ze-$_TmPm9%HWS@3iy%jGvN_4HLBfHAUbY^m;D09h4f|V6P7KL~9SKSFiu!at$@810 -zh42B#Ui*(cHJ`Rctd7g{* -ztju~=-$TqN{)rHrN*r@L5(|RUf2J3LHxU9=qp&UfQc9g;K&wUo(wG-|Sl>!z3t`}- -z#r4gSyY7}xC3e#(w(6cX4Sw_MUzh{Ya+&AwR}nSUrUUb=;LVIY7A`vjOH2F)yOaz5 -zl#^=eh#rIYIi}zjWLTFR#!FXCHlB}{!yo$En6=H;r=q*ATNm`S*gPCPu=aI#_x^g{ -zZ?KGMSb-bimmYN;j+)PU`P{yclHF~3bH0`Qk`hM7#^m*;Z -z9+EvGsKIV858b_KTV<}JEp+1hsw}gF8SEkAEMaDSwFERi$|Jj=lxA-)9`pS}IMR}4 -zRRXzRLnj4peA~%w_&$&HtF{zb){9SIJ&BJNZ*iwcD3Lqc@5rEYQtai53$;y4e@~Aa -z6uj#F8kuXJw%oYI$OOdFqi*!d>KTbsPA~Z->=_f^V5kF)*E{iIM^;XCN`VY)DtQS$mC3n!2aVTjPy^mHzoOAe|hZCGKm8G>B -z$VuTda$pi0aUCo7WHU*P5U9>m-9)-?cY76Kg89Nf`2ZT@YI++lpIy{xtUu3-tvZLn -z>I-_iQ`VMYQ`k)fAKPMNf&*YorJBcGay_B-mE1EA^E8YgPXb2mz0`88XFQd%3y7#@ -z+^-@|SLUyBJ*qp%ZWvkUC{oGuLi7#t&ZJPJ -zNrIv#8xxs~?72YB?l$?~<-cmKqdPEB;VI1)Z8l2H0*1reC<^Ki^TiNV!sCrA`kfX9 -zIUGu~!QoKGE#XiA*UE4x@-Kq -zUp{MB9T7pf)=w!CDv(3NJ{a|@jv(EhwJ=B7kMG)ubI4C+Ml$s+t5Ui?ml-4Gbj7Ny -z?T^pCbTs6X8=Qz+>6}mb!|-5^+>?q9=SSY>sBH$+H!%nFk8ZH+rt`WBN|}sMGNYD*Z^l{c6o7k -zcgYLfkOFmD@s{C2`-DjDwOW4jZB7UNk1vF2jgHA5dG+J!#d-LaSVV&9DOqwBw1AX~ -zh{+*I6oieepALeR4UtyD+nhFi>H~qLZA$$r2gKG3Ogo^y+Gqsi-cXM%7XnJ_gANtc -zG1)x?5Qg2O1%uPcm+P~wK#7i(_!=TKruP{gV>>x!F>z1MKN=G(vRKlIRgrk;@g3J! -zu949%vojfhPPgMgG58P7GNd>$^?F4y -zi-!R|@SY4G8e;yQs9$!J8L;}{ZTG!k4mnS4d&bM{~6J>T3e -zxZ%)hYRWgW{NnosmOdu?s>32aZ64v8Sn}z%tCQ%oT8rg4+-9%OKp<1{H~n9;{z)g@ -zj1_58^!7&JX8lxNCU%%LtiPZ57t7Hx=?yq@Wy$XYHe+zuly0grpa^5E35U{NHQil@ -zeS{u-2NO|Tm+|LIhFkWKSck4zSNjnFieRL__xYOS104WjHCZ%Il?d(@khSokM79uI(Q`9(M1w^FPVzuO8ten -z&;nm=em(HsQV-WitGvb7?~svn9?RWs_@Xb?|D#Vw@ttmnExE++-6(6k!?JtyTTw(A -zqw|6dx#>anVO@GOX7ov6=>A1cTu`k4iv=Cw#|*D=yl1P`nq2Gk+|9&raU3VYNk00W -zi4DsU@Cy4d`GTWm1m#F6I-TCf9wJ$fYAcS4!bubXA(GSJaBjVx`)L`x^`#`)kEAvl -z;Oue;4&gX&55^)PH8=Fo1t|$zaf;9`JI)yEX -ze+U+8bUl-*ouA5vq;qlu_zJp)t=lrd0G?3OpFetr-`k`I;guvh-5NmuXN*e0Wb%54FE;|9EcJe!S(iBm9^yDJvCy7K -zIuQlUMG9C_4=&y?DE%95m7tbM*Y8i_RYk6i&WVe6A8%P -z*dP_=N`*D69?3$;R=`!g$>8H7$Kao>f}pdEQ>!ady#7R*c4JTnU!uZ1_H3wStEhQfrk?e}aN7Pa_fa&UZeN2AJ%dzYUg~Qta -zU!_6;%(>%W%mBuQ&?Y&Sm-A0xL)H+G(fD1`LPI2Xl0PrV10&B*t7)X$V=$OB55eq) -z@)$`Zvqy~xnLUvjdyTpcjo>^&k#nLXA3~TdTS3cP;|87cIn^>=-#l=$aNO!xJ}G?P -zRl87jkmA2G09PR81N+KL>HiOR70;yl>+ARy-0PL7gE|%R;^h_+7%e>_sUc?>_Zh&nZe -z%rY6bAPh}xH2E^^`F@kVXP29o|Uo3hb?7a -zX)L+}A!xD-csrog?@sbYlk|5WTNA49Sng>WJ>j?phwzOgy^<*)#jzEV^k6?0Kur_2 -zki%@#mRE^35b0VSGh`Gm=YtPDb6NnG5KJZ#)LXKjw>o&v#!4+f4({N8D_!;2P_&0I -zexv8fmoIkf$?FO$>d|+QMI9kZ-jKH7#l@SBjq6{wA@2J~qN%&34>R3bW-0P-6LUku -zNQ)di6?Wto^Do~NN^)lFwpu-(@zys|O4}8rw$W!Y}Kn5OcrQ?$D#+pd#2XK-`@cXBc_eR90SW(>s -z+Df`T4Nl9>GyIvTi+|%yZxyh^qxlqG>cA1=ZZlxOItqbcyR4~g`&Jm0X4k0L)zABhg4hDCD37NzbAOYAWVWJ=tkI(xVTXU>Gl`6llP -z-eeh^!d@V1i-ylASL{-HbO1*PPm)**^oS?|_loa08;8O67m6M7x~%`^9Scx);QGrT0Ojm4U -z5)Irj3s5$&%#!G0(1H6}{hkdM)qf<}xCNgNWeaWU>}t~IafB;S>agfTdZ+(3EBNq+Fcj)d{x=nZ0hzowCdxb_+>nuN%NV3{oVs -z7oo?$wA|in-QdiOYL#afC-L+J3w`6Jqa{x3hq;ACLY)x5Epc@Q{40A~CH`ywS6X1i -zu`_o3!c-tN#QqjcVq4+hE$D2f3`ONE>N6ezCu!#Wy=~$V&+y`n{U$?7 -z&J9V>5Hf8;fe -zv%@a{rQ~3 -zHbng9YKhJ<7Jh&q+rqgURP>cq{ou^)mf>*o63HT^7m)?s8r~9J2}YHjC0}xDB?HY% -z9TCv>02LG}*8xK5$dx<}5aCV)lBNxp%preJFm! -zhwcHJdMkv{@C)zhmu~N7UljJBsAF^FB4uWQt()^xRba)WzF^MsP1v -zR>Cf#(LYY)j>&XdSSY>BXn@qduUt^ySWYu2#91t-?FL>FO_|>f{8sx#E)yV0X2V8A -z2{-ED{y)Chj5`m=JM`yEOP=hy9wQ#qhmU2!Kd5DSZ(2H|lhRom+H$jb_(6fHs`zJ} -zi_DB8MxF=*#?F|R7bNWbICk(inZ%c8!O~CGBSzf1G+#vKTVZ;G4^sm3?r3zWgv+m9 -zkXp`JK=d=nIXm1eh`4TA& -zE(#6>eGlOv!EG~7@VEDwax5!5pU_uvI}m}TxwW~BZNkL-=tZ+ -z#>qg@p71kVFb#v(vxn-d@*^WG^=NzVnAjl|tgcG#pLP)Fdjo%K}8p*menpon6 -zv;agk?{83??&X7vQl(z6w&IlpbWi8^f$yDYm@#SVDyK2M~%SlN~MPj)~%7o+Gl-Svn{H%<4&DDc_ -zT%>qESp9i@Wq>U9gH?PMV9uT^vA01=%Ss^tH1>kGm&a^bcjMr9(#}3uIIwZRgHFsBfAiNhq@qYu_-8%V@au3)CozGK`qaE4X^%SAM&K6Bm7=O -z5zyuDBVW+O#&*763O}OWr4Sn7S27o3CsJVwJ`xHdbvmcOFbaN}!f7BS$b>R`Ra14M -zPI>hQpWI>Y+m@)yZ&;O3vQ;rwW;&UCuJN0b(vyUx|0he5c--3p#Fcn|@a;z*Ch6b= -zMGXiELTnT_B+)$aihda@ev~Nd@8ZHdH{WxrXm9t+@#^>iR|ouO1C^h@Y8Eb8wg>k7BT -zpoQD{Pt6m##9X)V+5AHoY_-_^ij|iQgtt*G4hhQZaDY7EF@I?z@W=@kG7K8LtDf%H -zAzrygvFjgNgD2R06=b>-rGSeJ4coZU#XK5cc%8Gr*exXkxHZVp_IftPhVk?LQxao6 -zji=P6XPD&6jbqM!_r|L-x0gomIpL2}oW2M=ACVta*Yo6NrA;Y$nOVsFhM7@T2Th&& -zIZvgu1d_4od#z7xEb?q#3srCNd(l<`Sc?%u=1l-)tWq|135sjeg#o7Z|3x24b5}`|TL!>L5=<8?>2oIPftIm=Lp_=+@xG+fQIdX04%eRNl -znGKwv(D&}bEB1-4~;-WlM+(GRyg -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 -zi#P&1z%KWpfFREAa8r1wBu}Lej@tetc -zy-88(+5uMM!T{2>6Azv!b?rch&{gFEY(v*hd;Ybbh72_=oViHixUCBPCM=Pznuj20 -zg#?%f0v&kJJ8<=`^6?LJrxj;1+44pL(IAWY^?f_>^*6JaB?lyiFT2DC;Ep6-V43#p -zz}4usU2?s~TFSAByjbgzLp5h|bwNxQZQYP?^sIw3FTs3ci)ev$rv-Ya8(UC#chlYf9X$fcgV5yy94GQfyp7{TxPXWgVSq30zu|BAyDK`6^N(1M&MujMZqqZxA6GDB -z`Tq*9wNNN|Y@CCYL^zQ!Omi35gexCIz6`*bzltskpURsQ1qqS+I06M&*^ZOqA8+Y5 -z!ICo#@we)@Efy3a{8X?5wS%RO+r<4Nh>Bo@d_(h{xCRG3EL|Uemch8rZ`db6aMA#SpfLW;m#Q?duFZ=&>GQf`wflIpv7$qu?&MC9U*Ct|T% -zqM9Hvc&%+}2Vt}XSb^BFYlf}*ak54oY==v1*z)u~=y9I)!If-xe{Jr7bWgsh{es+n -z)NYBF4umiu0Z$jpS@VN&E#T?YyST>2c%g8Ajtv{6qT}+Z!H=$I$yi}b*S90WG!XaY -zoC(l(lD{p#H~wJzK##y<)~h}l#e91C)7rg0m-TGQijUuu@4kQet2fyxDG&GL463jS -zuak8dh8xB+R>;)nC9GaXOtsJ&9A5pP@^sOzrGX&RVd<dfry3`Ny+^rN?vX5@kN=X)vlbeEIj06ItNo=cj7kWmY0o<;6aCN~ -z#Pa6N0Y}Ugu|$%{W%CHIwqyhrm(Ft(6kdUWhHEbt&8Dy9RS&xoa2{^^!aoi1JyepAYL!RR{!sl_k|2jW$&VLTT&93eJm4F4STZuzlx_^)=8v1r-B1wji7q0No5;CZ#w -z55wRqB9Q39B>-x~FlkmjNK=-$`U*RY$bLw|E+BPbXBtFQ9<%_b;Lawm>N)drtsx_b -z;HG2hFO_dH(}gmi{ZOWsttqhUpkS7Xh`BEcQ%Gh8+_>?|NQyq3wU_N#WWb|roM|~s -z>B-nY=DxWP1DPdf)12VD*)#_-8(l-DIW#S1I>$mHlTCAiB!_7(LMrfJEUwxX4YWN5 -z5{Fxb1Sj9PL!BtY=G~3H!S_RKSlNg8D@!hy)T|?aLD+keES_bjsE}X2@Vq8<4itt( -zl8ot`@=Z1|1d+tp4JU4V94-=3&dSu;Yf*V^9Upa|Pb&6$Wp85xh -zWn}~pYy_`=L0HK_OjS6Vm*FyAd46mZLLDL1aVQwwwxu;v1Fht<`}Z>02b9=mjHd`funmg+)uywJaqoyi_PwNgc{ut*=^!w+UH6DuJ*+ -zo#2ZkcMJOxq_oG8IC3-WB8^`lO#O7B$LY}h-+pX7Z6L+3L(Rm1j8!BiOA>*lhUt+M -zA9n`#ajic6fmA2X;C?_(LV$$hGX~-F&v@V#u2orN^|0xnhnol1d{uMmrTG(FZE-Z< -zs#8^8qK4qWe1^dxJM;>tk#;Q>5k|}+oJo{IJTQI*cIImhlZeuJ -zgd}C9+5S9*5ix -zL{dKc!!e5Q7fc@M%th?0r;sL*t|@t(d1;bsb^5zWp2zQ(cx7!4gt_VEh4`a%J_PIf -zrs#V0H!2zn%;$faGqsAYuE+R}vuc>wbatE&kPoKABAfO8?AADL#N(e_|J_s{;gJ6e -zODbbcK25#M@Ry8lBK0|_$;8aRaAxkcZSniRwH=Qbb}TyZWqF$u&FlGWJ=l)8F5r*6 -zYCL16zg{xAI!SSj;WF^g+Z-3Jgj*)LD41AC8s*%7%2w##^bch_WlBMk=dU?#$o`g{ -zUa(sI=r>#gDr)7tq9l=HI-10msb*X~@WUoQ#iTd9s6oDL!^#RSbkU){P&Nk;Fq(aZ -z8|ckw=!;|bWUgS}VgIgrbaU3}$QX$G@hc)S;yZe|CbR(R(s71o|-|Nu`$)aSrz7FcCaBi|{YakvT}Bdmb!Kl^o5n{iV`#WSWKKZ7Se<;W6IG -zpa^JD~-cpf%}%fWu~;!B<3r<9UTnhZK75f-7>? -zy99Y!d^pe3712{h=n7HX2Ts^P{48lDeS*Vf+fSYBuS_+Xz@wJEkhsWSuGZZ0TM-9D -zg5v(n<0WOhlsb_UvpmBT2_h_olu=S3wJxQJsxEu4N{IS=>ol;?Tfr2kM -zJe|6N3_}6zhEmm^<3f7ruUEw0NTtXX8I6*f12eV=_PZSZP={eB(L#jYnwgGet)RZwAmo1!SPf4%dq3g5sqFz -zg{6imhvz%H`kF81GaEUGsRpW3=GOlGh -zUuhNYm}1@z(s3knGAXRsbHyEw -zh=BnKZ8tCUc0KwP-GQ+JK~bYsbzIg4sCs8rIeoabuyCD%n>`oZp+Y9^-SHT6sNoO- -z?_quMH_j{WrcT#1{aUmBH3B{^t@4mt9uiujxuK8I8rEqNforZ+ct1bJv#XQ@^sWH) -zv%qqL%afi;PjlrhO(dW3dHKTrpoH|SmV(U36e-J@P#W%u=mBo%OYl0%U`t -zq3*`Z1N$@bk)m%L1$G0!V@IWs9^iNC1F|;*FJsAM#|C~b;-~m|YYa(ct$z`+6yZM< -z4Q0TCBGU|-c?{6aFWb(#H-BpTUQ0RXt`-!7@c}v!Xv2hLCgMB`aXGUFCIoK3#Qv~8 -z@8ELvYsM#VX=i;vd$s(~%VG2gY2PWOGb!$~^qZbq6@S2TVZggZ30=i>9=<}WC%>9h -z1LWM-?=~)XBIbXd(8nXn5>!Y~tKYq7KQ_}L`&9+0n~AbxyJHS^YYCo0CRPq%P>}G< -zxZ`!qpaDC)rSW+5V;O~V--%{ -zfW;PXi>ps4+R0wtE|Q&3w5NsBtVr3?EkmO4R~Co>f%{;JeJWpi+M+@jK;iC^2w`H1 -z_6EbQ+JLHXVR -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 -zs&`h0t|ZcnZO9#bPj&bV53 -zYk6J2mj8>_PzZdNaz!$~o39B2_kz{++(ZJ$@Gjc!xtnyu%T+rb$y3 -zaP#o&DPl3@cVmw2ypkLuf$Vn2Zi$qycQ^dkT-$qlo<{hrO*j0Q?udM0I>t@`s0oQIH-9I$>U3Yb7OJiP2TcZ(9C2cQH&3VH8J-T#xR=)r0 -zIWMQTn!}5-b2(l*NX*&Yxxn4{rpBY+j^!n~Q-{FEgwL_BY6hmYq-q{4;c~Qj*hrg4 -zg;cj7A{8Tz8ytpl{JF9*HM8IGh94o?`hTe=?GA2mt0l-wQ>2>_*2Q0Viad$1ECqlq -zZKdh!dSTA*gkV+2>gKhl>+q>g*J7vDw&9dKl -ziT-g4dY1>aoxsbHDrQ^6DmY$unQ8Tc)Bhgj@RI<5Hm-a8hPg+LsSY?9yld@dk*jU9 -ziE=Ui&FRE9gNAEXL~21~t$2ZccmW)id3~Q9FOmRSvCr>x&0Efe@7s=uxqasd4en*8 -zT^1LL+#B7{Z?P6Sm6sD;pGNe!7B+l!+Uu$Sqs(`Ic5Cl}!A0K6x1dD`;Dg+R-;n9P+u -z>(fSebWe&2TR%CiIW0B7wlxlBF8#ObG>%J`5w@Mx-s3^Z%nOfqIa%gD2;SlO(3{Xq -z?#<81`;@G2Na;H1jf{Gs*BF6_lN_8Z|G#B8O+LA}2E+u{PTGdE0ERmDRiYh$oPp14 -zG6p;2anxAn)i>ALyi#Dd$9Ay|AIWuS$#XaXxIJEXF9;LfVahg*Ga~f5M3p`a$QCQ( -z5P^1aTDTe$#t_%G@HFMnFBY)qdw| -zz2L3PU3-1uE0F?5$q|q7b3B&^^3h^m)|Hr`Pa5kJH+MNiot|((?~`L3J;Y?v)UG1T -zD<)&QIem_qRjs`0Z+Ue1GTKkmw{cbH*~*{ZnSis)=! -z!@NxZbOW2wS%sRzDa%a4&-dF*V)%@qL^J{*FF(eSVW#M$AkbR8?k+q -z<t -z*V?e;Ng9CTd?>Y4cQi>06H -zw&28oCay0;6UV53qPo2-yu36vOrKAc)6ynDfm%EnKIhCAJ2u69G?INXjhV2dT|(Sc -zM!^Z*iEB+NpU7qbHRD*)F%|i>xB#fy^PheU*W3;Py{;!)hiPce9F-o`abv -z6Ku0un^~`<6pcWxjnjXwXz_($Zqarv0l95_7NJEA2$fC>z>T`fBQU3k&KyFZ7F8Yv -z>r1K6&HP9Nu)5TXuS5!mTPbha)z#_?#&g@|7ebY_AG=_u5Orud<5b#w(72rPZ6Sc~ -zj`mtJ??u{d|Ddc%URLY9HoouSx1#}LS)p>m;BwdOkR`(>MNdi`+Qa<)mXN$egSra; -zsj~rqsSk6DGx}%>X2rWZGsFZ5zpA&)IwPMmd9x-D)yKp*eM|ou!!sK3;9=dH^5)Sl -zA){lsy!n3RWd4cORO3B|HFtN8*-~9s_p**Dfn{myo3^jl@c6LkT`GT9KON_5`>%O= -zZ5hi@6KGO;L3zZd_Yr@#Zo6~=52>W!H*c-CeE(=fHFiwUGnOA-8hf-=0^P+uy4Le>C?!BV+D+gOm|5}<7NDmM5Y_i4S -z-Vy8>&Rl81&mWzS8-Lj1Qns-{ljF6;Z?H%_bpGSz*s%*#h~oKBshFtRyJvmPas6od -znL%xhmlVEF&q;SaD)(rP2eo9sD(yp7Tv&{M**HHC(Zkxu=9kR;J@^HltW5hbado3M -z`n&vB(}t#FWnY(`di&r0*R#VJa)HK)NaTbkl4H$wF}G=soK?55%DRq7Y$&zxTf1ruQ -zUH1zw9oQ>@#X$yU2m4RYWJVgFzepf^9Hn%y7;+Q*U)b|MryjV5NML*?Q+v_8G_^fk -ztXRbVt}2W%$`ldOSfMhAbpKm9Ez5XNsRu01((yM2#mTP?+SyYI|Fdeo -zbyG=4K;XS(eK`?-#oepU*U7TCyYp(I!qG|mpkO)9)*zi>5N -zEM#a3wxYNWSkgqrqrv*hHqHiL9d&C`LK)Z1Ya=ktxp63;~+n@wXr+<3Wkf=-?)AE$=h -z+GOWn8Rq!@{mK~K`_&rr0t6BVAY_gi(6F80m|Z51w5z2x(oDy*Cu5xNF!X@5!DDD+ -z=(S}mMK%o1D@a*eKaXg6QG#fB0B!(VqU9Okn-eW>wAEtFud;!}R2#B&$K=iZob-Q> -zEdAOfy(0KAlB38JaC;6K$wYdVy>nkWXC5!>kJ+03 -zonh&?1|pLCyG1=nO(5&Vo?%pbV4F%VRp?@r4$?|tn)-}L=-WS=re+6VoH?vWTjF|p -z!4OPT;B2sV9#v&)ipm=N3y2KQO>N~6Bwyo-fA+J*r+pC&cbnDUcJ#&PnudAmMaah7yYiDr7(iQO>Zz -z-k9*aNcGdE-;C{x;6W$M2I$7HtQjvrIUCEml@Kz9sp$H`V^Z}+b6_K&O1{^3oo1}< -zG&xQo_t184{BUZlfb&Tkb~L0HfB5LQBSzr&BAURAmcLz`Rojpg(2G)e>y63$euke=i5# -z2{w9Kc-7u)!#ap6Y)I#~@SHRg1hjeA>78Q*quupE7m3?uHde6L)d4pP&6$+$^`$d& -z<^dL$YH|RA@dJ!{ap#6RXReuo1>-O+r(c*_OIXN!{tr`zgumGW#824* -z#0`6sCDw^?c5S!A*TTjT4ek4G*L`K~A}jRJLkWEc$pe{Oo)+_5_0G;>M&jmr?zR4t -zz(ArChlL|(lwtNXI*W5PGYtb5=?yP}VOcuH(D|m!+WDB>KiZ8W!dPm72xF17^Tui* -zlHS`keVdzp`+P^!vkzSNEOqLBDpy32P>!52ewbeKRKdjMoz#9(;?CFz}LG>Q;zFv*XISSx{+*cYZx8_n#q=m -z|A^w9XU9V|#yuHLolFSuw$A?=&uZMGV|izA%t_DhGc -z&CLEd>KjJO@2{4)2Gn+C527JDltP -zrmSW(n~O?KuMGZPhru;gh^_)$!>OgVE^hPE6^bR>=KEc^li#zU>1CM{J_bw2eBk}* -zlu}a#>|@W6qA>?I0*|s;ABW?Z0koXhk$HlX7*=%;au*ZMfV&HfG0NmbqR8=DxAIHx -z3|*bRrOCF)>ZP(;WyX-yoD^{eSW>gx?;@o^h|A;axef3PLra%ec4Ze6EF_WOBy5=M -z*hu6q@fm7;?LIoq@bcQ@xj7S19K3nHVVgcHj}8$l&#=xg*J7=TJMn0BRWUQ+tv5bZ -z#E9qn7C2X29kF8sJ_5-7vylkoIkssSi4?mGfp(c9w_Int>Y*UR_iGtVpzpx>V*+-} -zzolRo;%~!mUj{ptXshw4zGwN`e;`^|#)(iS8)i(Hz{W&mh*X$uwZO(O4}r{kA}ubT -z0kd0iB-aLe?@SHFl0gk{5Y-6|cHxrfHbo=s7xY+gSYXbX!;%UX$xqjeoimH6oZxn; -zImSv7E073kz>R;cb|CDF>h4qEMgfpbJry`!0>747iA{yCk33|%P>i6d{ViTeTyvcGD%AJ5C*_ -zLTX_9`lfXm4Mtq29Q~J~;AOrVytF1X*ZOEcsaG@}u+jc06XF%xAA)RGXk>4&sS*h>!2HW|e@CfC~J>r(fInE;7o -zNq=|<*AhH`R9Sd0U2W-WS@e+YI*En@8x^s?nw~#irg%HA!Ff_lWonO$E4?r!i`&P3 -zdg$Dg9_EJX-RO_{ahUYw)Bg`=ZyuLb)qahCGew*=XHpzWOHC=o2|>jn%Ty>FasbLw -zKtoLsnJLgTO3hMvKn27UhlD3XQO2BdKm`P&KqOIQP(YM<{H<&4bA$Cf-{1Rr-~aY~ -z?sN7z_qos6d+l|tYh8NTK6dVMXH4WV?&@o^W@>Jm8MEX+l2}zyGsffhmMSW){{E7q -zugHVIn3c2u@6tsSLLxXtYY9iHI*AE`c!RIhOS;qP%klv*74fRz4y9{ -z@Wirm*;6Yz542ZCpp8R(0fvMVI -z(;z2M9he?zyq-;*z1DB?;RY|aUJD|6fMv#ozav5dz+x;1=f(d4>R6WUiG0-XTZAxC -z09_XC&8_4++^<^~U_|zE(IQ@xaVR+fJ0zpVv$hNJUx)MM7@|Qn^+eY9u -zM6t}$v@m~Us?&x%&Z($N9NuIW^{CV$uQDyqB5T8$`JXg(Zg^Uk*1#~E^VB=jti7*= -z01Ij!5g -z9bESO1Qp*lA~XTi;L4q+URis%`e=w!gq3@*@E_6rH7>C9=C0dj!GqfDUUr|57f2_f -z?CWMtf=KH0%hK(9S9`KK^2h@Nb~J5L#rLue<0e!Ei04q77nQMEI~ogNt;ZRQz!?Ch -z14K^*{cFq}Uz+c%&MY#G1+KgZgaiLF2;l@*?9zAq&9#2~&8=>Rt@b3|_L_MiqAXD1 -z!Yx~tb~~ixAk+4FxPLAo4-B}Iqus8&a#P`81b2Z7_|gf`z42G-&`A%S4lfd>^{idW -z^eJ}d<;8LPsHOR-G;8ZX;x}9j&7U*%RlqC|$zu?g?>;(M% -z6r;^&HbB1**uYM$3>}|#x06WVp-)qsRzAbxX%8ahnSmv}>kICreK4i~A#$wcZoOG> -zU{cyhC>Yajjh1GygoOyf^(8F1grmMb1dJo)7Yw2-4=DQ47ZcV97RTs21JN~3gQ=4epgm#SJ<}50&e6RT^!OOfj{UI3X9jlJ$yI0>V -ze-iL{wTs&|3BXQk2YmnDJo&RyL)YVhk$?4onqjf+XBq6iS3w=D<3@tk-T?L5Zrlnj -zd|Mj42VAyj2!?OebtFrXA(Z6ES=B)dH<1;WK%{WkV<|>(l7rApmDL5#1e92w{>aH9 -z%crZaCPSM~5z$MEX@=N{Q!F*hE$U?l#=%81t=~oj1#IEP)Wpr2PFmN*GePWwL`u2N6Y4DBVp4KLA;%xGlT_j|!!XACK6!b{J-4m}795 -z>|}Bq(loSn0)ioK>t(iM(y?N4;FM>74zG(xevdc9$ViKU*yvJrAX&vL4YeqGxt1NZ=X?L7LZpve#akX -z3!oB?b~y|JwB+cjzEJ$hls|t%$5q91*7_yP9szW0=C@?h4?^tC?aadIyb>sau{C<)0$P)iCblQCB+3?cH!4sVUblX;udbsNM}h>y8g=C@sq -zs@*DW<1}{I!1&OAXN=h=8DqBYg+7YP_UM&plw2I1RO;293-xwX{SZ|bXlibE;CPeT -z+5mZ!fNolg?uR(%beQLz%B7l49NLok#Ul(8%}{D8M<)P2ty2lqz5lOb+Hs_P9L -zWmw5|jGJfztJz(%YvCIM4G2+W9mdvHS%;Bw4ikM8Thq)za{T24&W1VtTCtQ&%BffM3q8p_lyXuPp~Yt?O9Xt-YWs>)V>e2k_VVr! -zb0=Y=TaBk1_ny`<)6qP3WI@I1dsEouR@ao`w@YdpD()#3K)_*t`SXv2H|B>g@7~AL -zn(>RSerxKZ)1!MfJcWJ{Pf}Sr1hE0385srn9VT=C-u0I+WIW=T|1)qzi8cdA?tCO9 -zYlE%l0!KvO_y_(YaKzW;nY~Nw+be9>1b9dXDeb0ozDW#kKcY6=L&TuqsrXm0o5q`F -zbE9J(mr3x0=b5^<%D8H@Sw57`{7j{@x@V$vW>;~Y+}%V;&kyfN`T<*vrg4z~U=8UA -zbiz&?+)Q}rT^-%)Z|*vD!>m(JE}dK~rXxVl -zFj86yN$8}|%sXi*qYKI=S?w7IUkwWWAWJCMHNKb?TVK6@7-Wlm`j)H4zxwDJearWG -z9L8e%#9I<4%jKFHmbBQpAD}}9+3tPp3LrI;p>SyC2o#>aRv!^sc+j! -zsE8ea7N!auk%cx0eyANKR5Y}irXg;=D50Xc8mfM%zD=2jP!W(XhA#JWi?oeA3xP2> -zWep+^ZjZ1U^dOk4+6z(77G__e!!ef?P#nb5Z11R8(;X{85_8L^=Xdx$;{mt)S7`^d -z_9fdKm3eM#*@`)ffhEE@MtHMrIc> -zhz8i~0)NWg%j69Pi7mN1FXL9NWXxy0M7&gUkvY>d#_-6v4ifce(^Jw^ZZNT^)E75V -zHP;IIQwJh$BuHH{j|ND7hPsMa`Po3klAqy80y;>R)VVV=WeEowOzs+RGFrTARBg-D -zqIB21YdBnY*C>nj%}50|!{)9>MBgrBu*(j;!``)%k0PTs$*QbEjW=psNfM85K&$Jw&pNQyXopwT7oop2T -zdc#!e#kg%yYst6)fvs^!;G?0jmee5bI79eoT}zPp2EjIXu>P?h*4jbpPH{uh5S!Krhu4?g2+Hp$n{wnvt+siyz%XRY -zOuymM9$jEKDXmISa1fqOgoYME81p+47QcBBDLGG@H%s(s|v!zQpo;=?%}! -z1G%ZE7+4&FJJ(agH4dsPER5rj!xR;1} -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 -zONm9D;v*zJT&s9Pn(tRiO+S+Chc?@J -z>Z{DpA^1KQ+EkK`aFd3=5A2kDP8m?c6C!OI^28_!6LayrVdQEv^D_5Jwt#pL*!mPJaq3`qf0r{ -z>+U>?>%yVz%luYrA%5dd;IYoAL`O`W@PJT=%s8<)c=3~`#?4YFwXX~lN`BIE$2#Kw -zn=5}Wb-B9Mlk3@(snCawNTWJ^?T3dpC`GtnJ5Aiee~CL77tFT<1<$AAyoT-e!$RK# -zIvbdtL3AC_d25w~paM-}j=z}OAfBk$`g3P}32%zVyXcGReqh+uu2)1A5~w;*UfRx! -zkUl1|5U92>w}hNS60x?ggg8~VD^gU3(_okp%#jf>GA4X!iAQyvkNK$s_D7`0!!IuP -z*mU0=ag?RM#Z|AU_LrNb1`@O{af?78E3wLX;IWeNCeH& -zOdP9%FO?=a)fGPV2=VRJ(Y=y7oA=lW{8mQjndJo+7S6*BJ%NZkS8^jLo--9@NyPUIbZe`V*4KoaDL#8jdJ!OmKpxi@ov@p8%KtQ!FF2$gM#H9e#8J9w)8+}al_#F){j*k6T$$N@M-}>sbdHHy(*8%wJby -zH$`*J%N=I(R`iYoC8F&QuvK2~?qWdZ_7x@_xpKnaVvBC+S%EfjqeEdWlzOwN^8wusW^DQ275EV;93fc!M -zP#1CV&*Gtd6Fpz1uISZuqpH)iRI9(GKMB3KTLwRPzd6+2da^k`_!>xQaH>7s(wq!I -zPQl$9kL4f)3sjTAP5^7Csh$SE?TtGdezG~n3KAQCl03`9wP$&SKz(dWS>0pN;p)rd -zdE6!;m2pzJOW^)z%MGBCK^>I<8N_@BVv)diRw#0*BatZubr9F0)EX$grF_T|#ypLs -z{>DFSxc|HDpwPkm?_kkjIuFns5mT6DYAW(gNZrd9#80cteQMWfONC!#IP{7bNpY26 -znrwC|JK!rL%?0J+ma_r3_iJ4b63`_3Gr{q87tb(- -zQ@)sP2QV`uMBIySL!pSx$hy1mRU#SL2p%(8NQYxDGk!HyMDA-SYFvT12`b`<8d8iz -zj(Lb0vUZ*DvhGt;Jd^hqE|r}PxpRY1vqi9MrSP~YP}kTjqDgvh7r~q!O>;5OBWp(^ -zIF9x#{zIItjNk~=VFah@GrXRW3X`=}iBiijdFD>BnIri;BN^>tt`nMz+FsnE+*2e9g%V2K0b2v)xqFZ28zmZK -z=6U9}nc`#W8NZ!S2tIU!i^UH~!w;v}66d$0`nANS@nS -zjE{N6Z1)!jKmqK3y`kZ6h|F~cgdfcWvq>e)sQ9TiaVBp}nbPx_%aLzR+b$t{fvwhpQt71mBzVPdRZxn8 -zZkA2LMvVc}VR76(qH>l^B5r5dB(}hzX_Pt)k5D#=q&TvA{#G`LFr8(S_%(zJEXsq^ -zNC6lkVql?~)EiQU!_HKJIyhDDPxP;z7kCM+M!Fe{jNg%2dp2mJ%bL7XU=9lsaeyL?d -zQRa@L5YhbGuHd^dZrVI~cKJf|qXLrB^w1-8evUtvu!;dfVu@xQ@B}*iq)Yz%S(p6z -zNs<=D`s8w`$K5er3G(oLlB|`wx&N!kLUZq=O<>~I<({Z@_S@IMSJi2Au9kjuHA}`l -z6wry8g)G@`Pd&!Uz;{-((}p!7XE=jnBs>q)v+Jz_MC!ffExmHV2z7KkJa6_`3aTrp -zy$f6?6-_)ie%cG==61zO|51F1Y -zcHwNWZKP?jPIQam5CHB{eXDe!q1zXqrwD-9(h9N#p_31m#rfG}hJ?P@US -z#K;Fit3jEzH*Hx0azN%1kgLeQF9A<958+zNedNIPhi)zA(9{o-k7G>EJP#2fM)Yf(;}C%Y -zVW-GvVVt=Y8rEZDplyXA3T2yZW5b7oIM2h6S{{)z{w@%^CXsBy`vsa{$86xlfFKtE^9%n|#w&NN*jhLED-^*_q#3PyF_+DFK0 -z^ok72*GCu>%SDTQ=O-zq7Dd6Q8{3-4k6Zh!Fu!N#OHVwGj30MAx-`EodJ{6FE^W;8 -zfe!?hi_vR4zp=Ntu9cCk!5`5m!dEnA;{p=l?kUAr_iQ2lrfef7d^pGGr73m2m;RpB -zd+EdG$W)>&nt1Jtw#q~OfntvB$5P7tiA7bjXNXqF%joIuwJo(Oo8q(0Pa9c3*w@}mp>(aaa -zkAt5r*h!DG%Inq(zL*s~w`x=9j#E|;NB_N=PDInRN5Yw-;MX;uHHD>-smZ0aUzuB= -zyxin#3wy#7%_({Qs|X!q`gEIl5a$5!hDzeEpUj*V^<+>zvf%Vso6feuXOFj+A*|Xk -z%Jodo_bF7t{BhH4#Z@PZ1@v?oaDTC`>7G(>$7%s#)da|4=I`bc*x9{l-&-9P-Un3H -zf>8j-8llKNpfMJMIQ&!RM8mLv#5d#e3y4UJ#g|X(E9OM-IF0D8P6vn9Y{w$F8vM(T -z3Rj~qbb$Yv5F6fIbw_>+pz2Q5Xd?#a8?3;3NG;}P!rMZr3_&=KqHoWY#JN9%8?o%f -z?P62Z#!|ZSZ@_vmXl^HU{0!g2H--GZ=Dh8GZS~!%i-|9lnc+~$l!`^^Gyrue{UWs? -zATLM$Q?w>%NBWc$TGDpS!Z4(Ejq8X=lREzLc&qyK43$bHg%8HE*W<$D&tW~nAj6?Y%hXI3g8fVu% -z+x*#|A=>J=Z2iofOWie>6cQ2aKu!-tk2#@-%9JvY3!nsPrg~j|z+N9?h&58*h^+}4E_5Eb4C4V~3 -zegyNMhVZO=(^K}D-+0aOS;+LCcY55eh;|+G{ffm{-&vmvefYy^Dbts}yW^_K4lj2? -zKqq5CNB5NU>gl>tOR2Zzs}Vx)7yWuL%QSbfM2=(jm;(_=K@zXap+K9xM11b9r`}c& -z<8R_!*4L9k?`186Rv~BiB0ONk>V=xL9dYr0`V!iIe(R=lqB17LQ|D`Lg}hRZtp-xK -zLnE&dGbW&B%vg;Svn_FvoGCG=Ei%!;XpItAgscuR>nLs^WVvH&-{0M^3?f_?|L(-l -z3A^V0{O3{sl3K_amL2=qXNz}DL!q}8`CL=x@Agebr>*}PYx-mCUE(ECvXCZsZMybG -zW8CO(ezM$@MyC4zpWE&jgknhKcMT8&n#`qXuleh@bx{N7vDn{O%MvkujX}R?71A!E -zjAVLLC~};rPApD;Pqu+o_p2A>J05P^AxCbC7S}k9dMPyfPfcT1*6p36DQ-ygi?iBkGOnA#8cbMmNSFt7f*(K+j0@x#W62UZ@>*?iDE#Lx%StOU;e6rJswi0X(70?QvP}=y-C^+?l;pc< -z26aQ!98pY{x1XJuJ<13$hlF&}c}-e`ta%>v?hV;PK)v1%eri -zJucP>Q&Hj~m>^dxG+|&-NwhTKI38Dh=Y+nHF7uLsw;V5gtzu1uDy0OVS|Qc7aAwuiV1IT8nZJX+iY%4 -z^0pPbr}P`z__XS-)3smnlg{l89qZ>lDJ|sNw7r&Ke#dq!DxTvGxH12fv_vL!%tWuk -zeov|MZFFZXfylY(*n&NisZ -zbZnudc+Gw+b#73y7~_?RUCRB9hp~noMQ1Sdihvk*StawII0^!V5|1MFLu(QIDU2%2 -z(lHswr=5pjm#yat)X?`howqc8yYA?BGUVcUOe;HGYbjhq)zL4(VP};*thqT^xruRg -z8(%;D+QDPF-u5*~If?6QlA5{Ai36WHbXfQG_qLsjlTr05w!W~z=>GA+rOgRU1v8Iq -zV6jL1`7Ks|J<6+|L}U5QPzVcs5e*B0qF}6jN?lb%du8VQW9Xmv7p-Z_)a4ly#P%*a -zG^yAlAiyX9_PtV|+GT0V|EZD^(e(dCC8cP&VY*66&}56ELsvtTwMtdYbN*c4iccx%$$SIvCR_yI@^l`#IlAjYs^VLP}h?c%Y7MkfJJpPt0 -zeF-lT_0z=HNMG_fynk|Xpr_&mN=G-=#b4EwD|q>XHC2lQiu=nYOQ874dlXgk#b--i -z{B(xLTME4IY%XsDfGmYQs4u~K359)BBwe_6b+~Y%Ear~49(5);T(_{CNBr=JkU{YZUyPZDet3k@6t(JF&CnNqc>mZ>`Qd#rYp34zG8SNqAjG>2)Q$X!Qn$Kfgu%DaK5gZvn1uMPf#^f3jAJUBsYKVmr9UtInQJnVV2Y|ibJI0j$aJo3wG7ule@k5S?bAQ`oUWNLDQZdQk -zs#Hw6t9K*sUcgSK1*M7X0CjHu6eIn+V)zZqy0sD~Q_V=<+-p6Ws#m_sXi#qf|Lp$Ustf0B8yj~g*(TKg5^|vqb5zC)KestEn#2l9b~00hp+QZNZ{T+1I?DYO+zD}#5xdT=+&j7ZQC -zSUZMx`dXKg-k}O#3f-h@5k+IM$}|w3uw_4{fskCblr#{q!niw30|8yFrGcoH%qk$M -zabc1M!j>ZcS$%2MHk%wvw3;; -z&;r!ZrR%Gui(NPk^#r^w3n5X({7Bl{D(+B48;q*V@l-4}i+xtC~qS89Ze -zBz}MJ#?m#8ch?@uN2s>1{E1i04-v+n0;>i{6XRC)u90*2RCI!dklf@{a9$y0~eF-M#r^ -z+if?^9B;L4UEwlRyt0Ao&u0bh3e9|yG}LP<;NABkL;gFY-c+y5vjj9?au} -zxCHm^sIvMtz<8HA--x&4mZqn+c^}MzRs29v*dsuB*xg)vVCGgl?W2|-e)nhWEo#Hx -zS9&%}9q-%;^FC4d>*AU~-`MBey(ME&10y{QUmMPujZ;10x)Pca*fSkTq4`abH?(VN -zmw8Bo(#ve^vdm_ByZH}`z31WG;0OJ_U0tDzeMU{?)B1XY6Ee#$pBcCMw+e$*nG4I` -z60>g3j#6VD$XsB_!u3K4W9>1)-rFN>1w8SnyPCL-hIm3rqn;29@iZD5+<*q57yZYMsHk+vu7qbnP4u<{R;Z4$9-Y#*Zq@Vp -zX@8imIHnXuUjo_keyMS@88vQ@v$ZjKSJRzaIdBfhsc<|O8jiRcy1_CiKltc7`Y;*< -z6LG=+tB|v+SL>PC+06!9>)5CK!Tw>#b#8c$lIL|)1$j90g9AyRCBqQVkP&X1sX~Dw@XAq3bxT93KHhc|8 -zn}~=EG%(HguzSA>x0vFMI#M7wS!Z4s%s`EZp47&FR!{nYo_mt@qIxRzs|@^0+m~7= -z=&`Yu+9eWhsU5@o8NKHC5>ge#p06i_rUs0lvl1GhHr!T2XHe{|RVkk;^WQYEF4#}% -zPGE2ZUMIv6(YG8Rg&l5kKThLpy(@(sa2Cwh$a2$Ko1cu$flve;ei{0;c=>^=wz2lG -zvHl`6#OTwcM!tM}^YQ-s0M?c71H)A{MuSyDu4 -z*_eW0tNW!A$aA_7>M?IyVizO^W#3@}8+-#d(i8*Mf@T`(c=l_kN68#pVNOkTJHfX{ -z7wB;#yUgrWzgczlz&sd4-E46-lF-@W+L&4c#=qT_EDO9`AB47C`& -zDBX!9x+OA@Vr=if+Ea_}wa%!f9%Q-Y)v*cu*7Qh;fh}Va%?^W>7G6Wo{I*CDGqWSg -z=yL+g)U#@vOb|WqlBKryh<~UZZD4#!>(O;4xK|!SgGTQ7jyd8sJoB)sIqz?-V)LG) -zHQnHK!|_Okh=WIOS|Zl)EWcG$$+03w!WnWhiD+9?9)D^+ul$3Bi@{vR8J -z=23gtq(b+=-ZuTuO#~KI6J-kV1JndDA_x-_BYzQL1+n${tnZa&2>}Y2^bT8 -zQqe6i0wgB6YqlFJ7^mbP>w+`aFHh;e?EaUfXJhMkhd23V8RgIvaDSl$hQt%l)6QLP -z8mi@J@vNiQm?>5HUa?0>=5RYPQkHvptbOYn*drn_T`QY2R6=OBZ^2`}d*qz5kx|D4 -z02T6<9RqAB4K(zfoo#hn8^Hj#0VAA6G(qa5Kv@BDiHOcMzyKb(Wl|-#4nmI>C7ML8%WbOCo?@KEKkK$UHmcGd`D|9&V~dsc0J4cSwVFDg -zd+m3u>QPhCVd9$V;HJiNR$J00SFv;w_Ihyk*QJn{snZNnW`G>H;Jl)SA>+jO!jlDg -zoTxa00GDgE_IOH|+?847aBwtM#T?P?a~|9F=f`YBej-D?8em1v@5)u03d6N%3>>yO -zZc51!?zzd2ks-EKttsfCkx@EM^)IQYU2q%5a?oe?DHI($Hcb6XlscWLbOI^<1aV6a45jNWTi -z-9uJ||DpKQcTy6wJl`OV4F;43hR#!w*QVu90@B9(lO|Sv8?r#7eIqGqvZsKvEfQLL -z(#(+1W-G#(aW!ru)lQggDF#;>;6CJ(_ipslp}Z0yjc11wovT{ttl5xf;-2WyUgN|e -z~sw&OmV;<%-5{(NR>ffWvZF)ZGA -zW46m53ypGe^RkxPR3BN6$FYcyo;;3hF_udb+O&1UyOSIpehF~6)GCa*H`K^;JeQ;l -zb)XpEu@x3?J1zXtSf}%2pOs1}xk|Y$4EX}EYaw46t(}*fYiJtN?ZPmLyfs`$!Qmb( -zquE<;?8c#@D6bgd7c|N0O$5)4QJhcVX;l~9*$Dib%BNQzcpM$cy#27k5Pyeh`7)?3Oc9ngk7VXJ9-_tj2RM=q?B -zgbYA!r>UQ2ed`>%uy<3BE{;`ezdRl?{r&k_8!H`szC*gR@@5PF){P~CZI4t%`qwue -z+R5WyZJk|tUg;V&eJv5Uq3^sz^JgRNe{OREZW~J>JtGphrO0T2P*F<(d*h8ZE@<#r -zv{@-+K1g|7HX`~(rSI)mUVG}v(v-Z)_@t!#B&FI|j_A>U%_-`ll~=-F1q2SPWL5!% -zf0pS5odKSGe8c>l|KfiaVpJ{v7~@B_kw~D&|JccW$HpD?V;QB~ByS7=JOpM!vj%ZM -zk>DL$gZq`cl)8DjyjPnxJb^W8X{FcEUH9|{?~=CzWyZ)W_sYaIkJMl -zB0`r65TLJd@f58PtJD6Dhp_@g5bv?r-`&ujd{)kZI1U+d1G+TdNUVx=z2oubc~}yR -zeX=ANTX;*PA`g}^BIw)EU3H2WC@Z()eXCnQ<@pMB2MJ3ai2KR6LdIzBf)v@~ -z5bOVquttg|Y)JrH<+W!E5iWSBaJ30Di5=Z>nv54d{|I^jtg79NJFu)gRcG@kplRX^y|T;=iI+7b$F%o<*M`*D6F;mwNDVs4s0h=zc%Y&$|d -zQgjk=Da@$tB&mKye|G;%yr+fr?_&xQT*5XA=pOYVG>DaPDAQsUu#HDr3jj|-;(Nxt -za+jF^-AOCaexVF)?7p;*bK;+IkurCU0ts#ld8Rt57-o0L< -z*2nVN9!U8cUOcmmdh*ZgU}9~vBWr|Hhb5nxk4P{)buS=-Y{$pqsUK_-;J%k^M`ZjEYA&shU1lL;=Y4!0SrjBCb20&QJdGsNK7;pZ74D-X%o9 -zLS(lJN6D{$SF)DMhN(12+=zzK%}%xP>uiGG%)wpNdHqqMExK=-0_w7oz=z|AR9V#c -zH|HOzjkCp|Z19efT!`A`?-4|T{a<+rYPH(CMjV97m&Mpy -ziA5Qp^adm`V0^wU_o&QE(%;BQBcwMn`sQQDo?l0l&gEcHz4xcr_gHHkeJ25Bz;DIO -zsUD*jJyfIP$P(=w=P{3~?@}>3&ezttcw%@3sKvBbKt6t-q#!}sjXzmZkkpQ%u?K?2 -zP$yEav2uM(L4uq_+mGL>6eK;cI>I4lWO`;aNoGO3ub|RQHV6{ -z!g@37TgQ{mJ1%{H&wYz$Nj^EX)uTMR8{3Iv{K733lWtb_yc+p*tCI!z@856k>MC|7 -zdn8s**$k&f$vKMRz%Sk~6k<~{!x^AKkr33&1`43pE!mpqhjh*!EZy=CT{tFUOjJv^l!)izkSP5hRhKl} -zf;gmVX%VJ>fOhYq@s_DEN}vQ$GZriCpSMKadgL6P(hxp5YInJ*l2-l=Roq%mSB2b+ -zZj&nz6(#h2ho*PD)9p3WJLJAl94+@z=xP9od!aKU6gGvt*-|`7F!4(243inHDv8f89`Vyympg&!x|q-|?lL8uutbud?_X%Rjvqhjf;@;~1&? -zwG?5(+mHX3yXU2>nN4M -zN0JDU^oc9bh(jw_HGdp3=B@nTfu -zyUWn -zlDw=cjaM|u&>cKp*Jv)f!(XjAqF^+YXp^xF&nnsk*v>&2(I((-U9<_XUNW)}ZMvb| -zGyr7ER~T&~&s=SNG;zRdrZuV@Q`C178d`SuhSAfl0=y--G!ctxKw@2RX)}XM)|RP) -ziKTXvguFX2cPL3AYRO3Q#LZG+sF|o;4OFg+7->DVg}7WDBnd~_nIxY`+f^zv{YU@Y -zRguu*F-BOusr8T#w3Y;O6qXh*Pzpk{f|tBE=d|4ro{MnSA#Fk5_8TZZKf!zS1(+SS -z4s=a;s8BU(CE&+$;C7j^W$o(l;>akAiu4AJzmEGb^{4ALzX241GpFCItOxKPNg?!# -zzWfi&jm8hW*D4HF*%Af=-1Z`WE#=qKAqdAr`M2`xRv{|lh-p-HAm!JO@@T-m(%@P} -zkdGL?QP+{U15RcfvgNGMYGg}KSmD5u@(*?;*|5FNVp_vlh1ghf%}KhDg^_USlVym- -z@(CAC*vt4RH*TfBNm{--42*{t?M+Z2Z6~gbQ)4ST%tcNd4?aw_uS(bUbvFt<9r4;N -ztw+--P8;{$T6HpK)}x4j)@8E#ZFK3{vX!qUjZWB{pgTi5^Mm*moCi#g)L*w|6D6F^ -zKOReu8o1 -zw%&Vvj-A;0=L3V%)pEsM^Mh@4A?0L8Lji@v-du*Th2@pDZ3YvO6db;X8AGAv^P*k=G&dR8 -z98%6bb5?EHuHoqayA7*2i9wzaYwC4&`#2dlx>29Nxt{uj>6~lju_OLg`UK){>JtbL -zs82v&;0tg)(4Oe#3()5qruG}JK>VgSDcr|zakc8yu@G3^u0K)wwcd$GQkP1CO!-dx -zpUDbX5{0ZJIS|D9#;JEiobVn)O>S4$XrU+dSwc^M#)wKW^fctZgr4@agq~D$(2)n) -zF{6ZcRU2cZG>}SLk`Vk7UXH|RRPWlJy2v{+GO@1yFhz2bRQsb8F}I^fw{N)jUMZWV -zJU^rw6%euj6y3H5^tRJQWa}L1s3qfZtEd!sc)H}aRsEGZ -zbdslCE{W=iGDcWS{#JT#ta{ASrbBmF1o_SiJ8;Ie{@T(ifuZwVB}ZWf$aJovrMg|V -zn_FZCmdMPSUZvp=)Wz8=;dLx#2QbA8jgaOwnfJ<+XC;APoNTFrhWTHlmb7Keu`*Zg -z4}tGA$#7sxlAATB5mLpn_Bj1hhv>)PTzf# -zptm@tA!I|=$C*z*D|?z7aBsxJZdzR$raeE;FXQe{PbqZ(3#;OF;&;QAtZE&ImF-i) -zGl#hp$vDsO$fAtv<5k>An@j=0W!wjM$0HdUQGLjob}k`<)CCISno5FpJc29H8yx<1 -z)-9x|!DMGE!up#Bm^BO!<)qq4Q$%os87S -zc}6*0uOSB&nj(r<9B0;?DUQ}S@hkokegde*EwP@q;p;6I%DcN2_;g;dpsC-q-8Xp| -z7JZwZbF?FsE@g&QZzB=&87V)ftSWD!S>o#h@`HbDwVcuq7F(i-gr;^J$0gnyU -zxdAG@5RGHOU!YoD{bp;-H*bPstc8mrSx(j-8gaGSC+W>PVQdK#WrxH`zJn5BRV_g- -zszs)r0uM6vZ1GQHORaGUv*DbEqkU&(eFnFzXB&WEen(&mV&j_J)Zc*~`yS{5|iQ4pk(+aTM@5%f+f23z{_3ZXET09x+a4jPSon*rzBi@q$iB{7_78i>Id*5P -zw~yBZ#*8i^TQTiB3Rv8We7uK``|{lXF$^`TdOGoSQJbc+Clw~@zJ^x0R$Y-22EgWG -z{@V%51PMgVC`HjRQMSE$JuN1DkjCO<#phS#^*z&}zj9AOC~D%@NxC=`>WK}p*Q^GO -zW3ykqA0VUwP;l#;ZG387`a@oV(QIkz6r?ONfv?-*RJi#NGv}7xNh>#fp(0%@?!KZ) -zVesg%D|>^V**jTGXQzPQy5c%B8~$=H#%s -z$>!jh(VM3v^yR@!%uy%1C}rH$fnpeJ+@pD@7|s_XAq;G`r98)*dP&v_*lr=k;LY4@6Hu=_KntBUiF#D@x}!gRZ?KeR?T -z0dP_4b-(MHyLv(rq_!qRs%khGC{VlQv`6q4F}>^%t*{hYtsIn$_dC%zGJoeCgQ(bAxcD#Ex=0Qt$_uY62fisvqOH4d$gs~@k#1v -zrA6gVABcw?c^!KRuxKrs4FZfzssMNU_x+G6|DNV9a-_GXj-_rXvg0cNi{*A$OK1Uc -zkkk@liw0*DvMA!=81Jb||G7wq!zG{JV4Oxj69lxxXP;lg$DMRJ;8&?wE21Nek

WuEvwKW+y&)aO$ -z=niFb>?Fbj#&4`^RFbX?lUM{YB89Mq`$v)xx>SgMI0P~tg}o~-YW`pqtl)m>n*kO*Ypky7;pch{bJDA`UVm-6nd5@?-D-h%0>_`Bv(fx<YljH@);yZ$Y_d#AqFc9o^G%@Y7GEXhp#cso}#y -zURWgYxb8cmQzPOROA~=R7@}A3&F5|7;k<1;h_{Vs9=9#+Y4n8m{-qS&xwj^aN<4Lc -z-NZLynP-U=R9oD;PSO(<*dWAB27ZOP9OLGt{puhl-Jv&(&GN(nyK7Gzx8+_+`bC`Y -z)DCpMW2ltQcN)jdCBfg=?)?&!|NDL_>_icZa=w#cSY?qZf?BX9Tl7s9(90g0$luV5<8PpPo*>Cv_o0V(ect;(`rabR2I -zu&%D=@?^)%TV*gxM1bVP_Dc>KhkbHZpD+D5J!f>T!@ho?u3S0%-OrObhc+p#9kMZ88%Ng|wU48Q*a+K-6gys&sO9tqkX+AG+OH$OoCw=eznG0dHc3L=##%`l -zJc86*5E$X{Xk;k7X(;fK3?60Vm?KpDCk-Vo5)H+Wn`kJ;#m^X<2pWoiehU7d34#JK -z5z$f@nllZ>HY7|#;o?xcpRZjXvu~&r`!4E0BGR&wcTo1;FN-?PkBgJiFQIv1S_jEt -z>PYZ3hf7HRjZmbf!Iqcvj!U+6#6s}pV-&0i3Urvn$!vag(Q;64vVDVA8uyd!o1s+H -zbClb-7|xAzg~THc^!oU;HCU#VY*UBWcYlx!Af=Arno{;9#_hrffNvAomjKAgg^Iw3 -zc$zCh$MZ!II$q@Ac{b$T5zb}>OLl&x{wx35s^qjd9KHftZ*-Z$SBMgaui&4Bx6?`j -zgUmvCShjcO>`*JreoS7p?T*%BVtJrkzqHc@CR)%7>2h}HP1j!t+xTI5X5YiV<&~V{ -z&A>Rr@hz>Ycxf)ax@siKDRO;{Gn5F -ztGY;49l#xg5##0gcg1tVo%il!ui}>#Uaiq-lZ1QeQLtR%_rHdmV+W|9hg@^0|QlPuF9G1iqWYl*d=1`JT{w2Ud)Y)YF(iJjwpTs`$pS%snLqrD0Y@~Q9 -zQ(#ICr#J2?-}P+%CGs-on+W=eo3Mof-g3>p#-;DN05pq#;)0Q2lbgjH1!cwUa+*oe -zh2zd`c%cUe=35U-I%wUlUbZjKYNbeejM_u{kYfhW_P%)nx0JdrV}~$OY`88%Ktc6l -z@LKOp;c)VPN4>_wSg|^Gf&Af?@wP?|HL+tmd;L(pC2B8cZf{LVIRCSFUweYIx2IFZeuo{Y7^0*|Gu6B-Hk^go`aX-C=bM%^-67AQrHO4 -zJqv|Z!V;3+wXBEUHM&=ZS}m(@?)p7DZ$dMnB*xU(Pueo%ZX -zqNgH^%HO;2Rk-_>Sr7WmK=Gy)2!l%kc09PDLq-^98D;tH=WJSEXXKi!TXvv`5CoUyz>BjZR -zW6#yu1gPV-NHNEbr`y*ihXuS-_HptHX2eAO1Rqug-f#7VhX9wLFN6;yZTAmu-SU-% -z1`S=2ICub?o^v91uEYWRrt&-xkts0}q}MWZ28<8;azeS2SHkt4W|q&UOiLGeHpNn= -zrIq|SXdKvNg!Dn8gqW1j)v^)+CX6-#fZME*0~f^?+bP!#Uu2VpO{@u^1DdZPfYfJJ -zF>JxYUzJPjP9|C>cQR38cQWq9?%teW3E+C>OFwzPnYw!KlErNyuYb4Zg6ojd#<+iY -zL>)2RJ>l0^-6#1prS=ehQB?^ESMOmn#g=BgFZJ4WcD>}-A3NqxU;4lB%%C85-Tj)w -zLBlm>{SvMxZUFf-hLUq`>mL#9?M|waZ4-#rB6lCne&;18Hjnp0n7Ky?Cb%#0GW?N3 -z9~n{c9Z*Y-{=$j<=WA&quzP9(vh2VuesEEsu|;X>;g)bXM{QwSBV3A`q=K2v)jm$A -z9ycJv4#Jp$7lI$`qs3zrn=;qYjZm92tw>I9l3_C<-ywbaw-y(3Oa5meYadkVuB -z&Zz{G5h6Tpqk4y -zDVY-NMaY+G!188_gaS9HD1v_Cce3mUz{Nun$=rVs(_Icw`2MXX7CEoUDN<~o{M%c} -zhMS$_l{cs@yl}p2xesE<2)HZ-3dCg!PKIk3Ire2ABz)OnfXR4PM5E-u+ngRqgy1Gp -zfPaRvtzFnz-`L{WatnEsJa%SQBT*zq^Orr2TI0_s5e|?BBJL2t28g7v1Oor|9+D-h -zKD{>36femw|K0Z=+Hr=fvq?{mDK``e#y8NH-Aw`~RM>D;QDBiW1ZH28mHbNGd2`TF -zKgysZ1#koC6&s_J3ZA6`+-$JN>KEu|Wt7W<^aq2CHR>c2L&_QmCQz#&Ldt7K4vn!3 -z9>snGdYzTi>pxN+3^*C6PJ;a(=OjHhJi?;VTps*Wjm#@9Bu4G*Yt$B-)Zczs;4LI< -zwF>l0E4Q6ab}ozfI%yd1>~YQ*gS?|H_Zp)6Si5Y_i7z{NiK8Q2{OD~Q?<6%q`Hk-X -ze}v2?PgjQJ6!i%}7z0S5?uyCG1p6Q-(*x`k$@Bzl&yRPF`2um`8P&4w#u8Q#^XR#< -zI++@qvR)b~E{a%p(8Tg>NQzw-dy;j@kh+c^&J~T#@H$W@yfEOgi4;%V>|6JL+~y*h -z#okme-3Gh0u4Mnzt_v!g0P&;RxJTp0I8&Dug>jCxf~O0-*?!FOU|PahR#oqe$NId< -zXK+6lxwx_hS>Yb*Q?SWb`j2(Rhj^Q`M;6N^tRS8n;dp!Ld9kA&D^itvI}YWrWGrOe -zVBTht=2)c+8b0Tc( -z!JG(}t~eKMOjD1SdBomBV6{$!%E7V6^vF_Yp0}(tUe5YyzmZ|uTWTI!#vkK&6h2ty -zIQI!VVS?uQ>3GmL6ubnp`@m}TmGaLbrf=3*kGK@~`91mNYi%or){Cq;Hxfdw)hBG( -zTjc#);_+V@ss_2Ed`6TVPU>d-+pUN7YPi`kOwA-;opS$1y_&KqC$aMH*!; -zWp~@QFaqIl){%;QT~lpGOYAXVLkr6Z-jOa>NZz)gsU|UgK@x|0{PhGm|H2&7vS|m~W -zy>08M=JKpAkq!hQ^J>Pf?HttlU&Yw74Hf?gm-nRfu9<`f*^i9vPeM&Kt;hfF@FX(p -z5Q{CkAvrvmS(FZ__)#L8a!odsA?bsA)=*i$)RN4AppLCUD_ -zvqPuxQrfPSphhk!XKK`i`mW_4_l!_j!E<8=!Xw7FJ#h{DfWon-GAN02l?Ux}4|hl4 -z4(s-9oR2-rEsru`c&)afpdAin4$VdJ_w#d7g5M-9^%f~u>lr(KtObmG8#s)r;F(hT -zoiiqH`I@b@$&EwCrCBG))+q-yMrSj7bgae8Kkd!+9$TW=Oh);flW8u@VL(J$X%a#- -zBAnnT3N*z*O>_vjt9JAXwtgCQ``eJ< -z;Gm@srI07&wIcvC4YvUNoZN^(bo>7*Hjek1EVaQ#(?Sq1fogTCG(F*~!g2!3C``pd -zM)4KyqtI1JT>%o7Y_AdWk;9xNvFAPO(EfpyIb`NVYMw)8a)~oc2uO~Z4Am;%4UP_~ -zRW<^zA=Rq5iSj&f)t#3}BhBC*8FcFb_`TMrUbD(|(0;Q{eR8~_SSZ?OzGQJPJ>ko9 -zb`s_%ouIg@+Y0=F@7q3-9XGo<@~+Hojx5}nQ#a^Z-?5TnoTM&t<6+s5a$?kSMGNvR -zkxGr^iyQYV>mt_ -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 -z*fJ(HHW&$)wlYJu%T?j$vS_IVbQccReSvi##+ -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 -zO?im$`J1+JHYsT3ffoxN??o(aR?@I -zr6yrB5UT;SX2pC3ky@-=M~VxnBKtAt8$41O3~!tDO6kO1lCcWA)gPhl89|2QyW -zdBjO6v3*l(aY#)_?G}BX(s%9rRx1e?BUW?h?=W*76qHonw&30@3Z^5jn&K=T6y)b& -z+}k5Ewh_?1p>BKo&!p_;-_y<5{06^gt3_6%PAGkeM0l-Pl?lBDDQ~{8rx?+Tl-_6i -zcRqW4xP5AmdXA0no6AlVNCWhSs)t=c8qq0H3|WxzXNY7806l3U8v;CveaK;86Ul#+ -zO%+*&OJS?XI_J9BhwvdoZ2ZR*P;uX&+zij>-E3QK#8;Qtyz1xD!Vdb@`sS#6Rmc+L -zizJT?8{OHt^;h*2geU6CJ)|P|OS=C0xM3eQwLI%Ng>UB87&*NOA`b`6l42iXu*uM= -zA6vsvEWaj->yk<#{y5|dsAaNL;@?mCyjD>t1# -ze>(4MfVg_xR#n$?Q|{rkguV8~cX~8gRW`b=^x3~j+g|U|r_p$Z!`J;4S(=u|&TsPr -z_49j&YHvp-zv(pcmyYYcF*@H4L;DZjR079xXHJ=!Z)?~eCvSR9T^Xlu|x7Na4{w~%yRlP?JXtF%{3%EkO^r`;l|Q$V)OOJ-hI)0!bob5piqe8b7_-fAAK3G5gP~H-`!5!Y -zXZz3Esqm^2{kz!fK}-B1O@_aw$?~kdx|O7qv^}SG+z}AG$#! -ztPc&+g|62H4bd(5PHyk#GjxC@Vl7?rpVd3j>l3Pjm%iv+nU*lu!n=O^ZrvNVo!X+s -z2(@mToN-b+1z+uAuj7-we%{+RKYHH2&5p}i5oI&gg_b6oAL4AZ&jnYOxSCni7f`EXRQu4-ukqzuJyVf~bV$cGG@M0U&$y{CQHhj1e@jHL;!atYIZdVB{@g5j;#Qb5dO#SF|m -zjuRJ;p(bK#{x6ratDPI+`}W(3j+)h#jhn+iR%$wEGf@=<%<9sv8snI5dB|SVHgbTx -z&pA$ut$^cLfAf3LeC1Oy^nZ^lU)BezHVqpvI;geI?j_wS>fS4nvM}T9&B{NeVsH7k -zJ(0$oD$Izk^*JW$%5=Y6Ck~%3m-X)7$}5j$=Wx#zbV+RL-Tej`2jX&>4L -zVy@w|#hyjm#nvBe4$wH&hCd84X~Y>yFTY;7?Ri7F$~DX0VhzP*qY(<+XGBJ^v_u9> -z`I&4|vA8PKi*HkIK-zRLn%p{+MZsySV5`bCdVFF^IRT~p!_f44CkIY}99L -zU)b1X-QJ?VA0u{yJcVkPKEe^!NLW05jWME2`0KrefjTX|uJfF7U$t1L1E0e<58-Ec -zE8C?C$DJ1MfN=?LhpoBN#c_0^h?=i^!BmR7c-YzJQS9@)5j@#*Ex_e7zA0oL_Kn%R -zczffV62DJY?JISCSsKBM((kAG1y`5QRoZPc;4RD@92cj-tlYq-jcTen1%sgZH%p1H -z{u=KbdjB#L18rFB@C4){Z)m8Cjdk?KwC_&f`iD3w1lX#DdMD4KwhH1Jx>DOe8dmW -z6fuTv6q$nV>=*1wU;=mYAWq=7xfwtGXqp(W5mPb=;Lwii5*8{|#f~`aE~yCd=Jf3V -zZ^S6UiS3sYbJR-$P8RL(NDEmx)JXe{T|rD~!B3M_$tBSZ@T%MAoK= -zv~dU~&^d<)Sw~Dw!hvA{4R>}pf7h_sspaS@**e|b&B+B!Ix4@)uFT`5 -zR<~WCuM3R6HdU+eJ;XzD@*Co^!kh%gVf@9{cduSndnv9yb{fCo5@liOJ%@VkN>OQn -zvZA6Y?@5;aQIW-jrV6b3*AMuYym(U&_b0wPX6?zv_R -z<10GLlMWJIs*S+%(Y=6D_ -z)>UQ2G5gH3?Fy$lOMSz2`GfkaodROY*LPW!Db|(N^=oT8JIYD_#|`o5(O$KW4N#Zf -z&QHM2aGk8ZvFC$I@hy}?`ZvTbzE2H~RSx~qOhV18blJzR0H -zMy-b@;9-Vux@-`A8*aQyT~eU)RH);e -z`o)H%@=bp}te0QkY^V0)^|Ph-IY+6u#(8a8LO**=`#Q}RVs2MN)qSX}hI08XeT2k= -z&T;CQ1-l5U)~(^|&V*^+DVn5eLE!(!se67~u5HS>wPXiZobOzTAESo12F2NgSxnj5 -zFm{_mgkxK7>lS5uN4it;`#4_o*kEurwh{5WNg -zWqX6pm%2hD<)Yet>N%V$hiscwgWy-x7`-WS&=33VH9Jjr@0khgSFpA)vp@Y;JQJYq -z(0_wkpTmc||6+Ifw%ZiHhOw{m?T#tOrw6!<y12* -zEN@$CB;2)ma?(Yjg)fbwULWg}@k -zM3IpnN4C0@Lyax7xDpKC3EuYL4NJAcCOvOzEM#W;rkkm%g#hEyo7kvp7;P#($Vf3k(tmO -z=d?E_WFa7B%E$p<7Ga<<@2i1SdY^MpAA%2>FVKQ1@RPW_s?lgk#Z_xm|83*|%hiCW -z*a#d`dOg5IA;a3Rt;X4Q&W%S&4VPEHy}f$#;De`imEXnMYf9j27EuP%?t}B=?)7L| -zK(h>&|1#aJ4u5)CM>{Ycdk{!A<2Z&}^vu$D9}4>+hPFRoUxX -zJhheO+IE-pus}K!A@-gK%=&tp!n*K=L7*^Q37Uw7kGXVgk7jr|O4YdQenr#)0(t{~ -zCdlxXgvuDM102^2RMcZPp%sKB#TG&~K96skdhvo$VZf0c-4 -z`}XONH(|_pEWweLgJM>S3N)Yqu2dIAnv`e(^K8?xzkow}MlLM{5R*A(`@6WVQ8otU -z`C%y^8s3@)*lIZj0o%0K5Unb{SA+~fdLb}vT&HY=1c&?}OH4Fj0Ve^CPD7F`k8Ws) -zJsIshBJEm%Q?A1h-TNKadurN%2l_=gdVi-jZ}j*r^>IqVbN04BB!uNIAD#qVYSJWC -z0gMssadJ(mH_;^JMco|i7w`1Y88lT|UkBs7RgN3{*3h+>Ot<6_G-?udiLQ|h9#&rxa`6Af#- -zwsNkxZ{~a~sUy569GGd&9(rhF)cqF?#o2D?2jm8t!mIMrSXh7n(CF(jM*rxqt&NIZ -z67nBVr6|7?V~`r+A=L^AgOnx$-#Z4c@2;@Js#`F@Y%&N5B+p3lLg2nNlW)sI5%3Ok -z3&5Y#zo0nVd5)oFh+JfOOM=!@8Q^?^<5mgn^NgLqQ(Eb2X-kp;pxp6ZPF#Ur$S4D< -zfS2jr3XL*2CAnd5L|qz(Z-q;hOns!~E6O^MB`oZkZkUaU$=V2+qumchR -z*j+B3k3TN~{Xi$L2AM;;QGW~B`~1@}8q9NyDl{~h0$AwZ=p!V6?CZ|@snNAgnW8pO -zDH{X>)m)B0MlOI7q%jnAB#VlxC{p@G!YhzKo{<+)1hD_q^L~-Vm|_MY=R+LKoWfub -zPjH2hm$=LzSm1QkX|o0ivcK*XoL(Q=dA0R7>BP9klTyeK{`;ZDNfKBlb9ExV9G7R) -ztduUV%7-tzsQqwHS*aw4H013#|GS6QeAX>pb3{wuwrY_3RSP{?@aVEytNB#+@mrmZ -z>-3s|XM~FL=YdJVQj-joVyN>?%ak4)JtB0$P5y@~H~w1`*bmL5kQ{i3AA8l9W2yDg -z7Ogvz^;yH{h-qcfEUDHHikOz^dB#NJ+vC6}tC);8RKv>P;)i4CNwjm;CpvcDCH1{(k<~ -znP}%VuZF8>3EDME>vWrppju1on*gHFaP@0kEYEloJJ#q)Dm8e6hS>eTOTw$Kq~bD& -z3@s%53+%s>gnwK9q|+0<+N7(6t6=GzYAmX3 -zv}sUO){uyR<#vP6DFhpwmamf-!OQUqYXufq--jnlyJK2Vcvm>JHlLm+ss6XE8 -zMv5Ij=(clZZYf|o)}AS3;}~xFzH51(qiF{jGxamyD&6$xwAsvnF}ybK{GwQX7fnGs -z^4CyvU#fuOYUR;{4t4Qqe-deEOH!yRM_k6CkCsSDRf}O3#lA;m89&Iw_Q|?P2T$7H -z!lJVuqiyJWx9r!IIm`=p=S}JHkaPYG6S?*O9F52=g`@zTlSh8Vr#4~sp$|(|bFDmu -zm#pQ-`NTo^c{Q5r0k;D55@*rg`gqaR6hSYTs7kI27W<(~H<7 -zd?iXlcXe=}5P&R=y$u2cgi+*?Mw??>j>FLcPt2i>}`NfYb-3zp!GB<=iDe>T)qg-wl+9oX2p -zMOh4+AE;1kx3{|y#zzP(w{5fR9hbH@eUjWL{o7T!2N-MSf%#cydOc{2ugFX|dgFu# -z9N5atTuG9ZtuW3G0ZtuyL|j&zg$Ak*A)3}%+n031{c37EW4DgtS{|e;fQUjrWF80P -z6_?B1u#qnOE5B-Q!(#pO_^gmt(2cGkLVJ(%tihxUJ!Qq-+=e!YMqDg3>aTXF5~?>7 -zO@hY{GJ}Rc!SQE_P9Tk-U;r?zXWVQBK{0)PTklF$ -zc!DWi^_^}jC`ltNS<>B#>yVKsLI@XP -zd+m8IUuk|))!|m$RapUIY=jFxoz*X**I~;4`9^`(zzcNkI;|rc0km+@8B^fRr&=Y5 -z4LH(SODI$|#yG>o?^+t&ecUWI)_E*%0HzLw@CyL|ZSnEXb%{pV^JCnqWzv4?VIQ6p -zhxAlfvCEBO9^@h&BdL2sYb`HeisEis`$bT}3HhR@Gj>=Zz-Uh^JZioadj@?vK@Nlx -zCCkO*&AEOMDp^t%ow6)*v=ycOo=E=168rA9G -zf3SmHfoFAg?>FSmw=8p-oIA64YU~*9{tPegqCogFp^pdXI0MgDw>>aynND-Nw7~{bvn{-Up25N)T>h;*Nsc} -z0;>QgliWUZ003igj{~{` -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 -zRte-K -zNdb#s;g8ALf_sKTKe#rn+m`7$a>kHMzo82Hh}j2h6!L2YV|@Jt7r{0hT!aiIjFlix -zIkn*kgNYIZvsQC_e<3%pw-?I|v{Pti!0%AV5LZ)12%)Ncq8pnoVV%7Ei7ESCph!Hp -zK_Y=6rc`Wta&gy!4)tf1akpC?`okHbAG`%`!T5dOU-{Om?d>y2CksCdXBY+1JpIC6 -z^QGx-C+ob(h-;eI&+%`ckpmiyK!(A+a2Pa7He^f%E-@bHR=99!!%cU~dqa(M1pJ{A -z%2`2o@RQ8UYeLMWJFRHfm}|k+8K{Ci#ABUEAtSX|DrgF>(g(sOS`?c>z2usaP3)l{ -zGFZTSjW^oYvGRe%QI&WlLh&rD=1UiaUH~v20xj8wiwY&7ETS<2l`a_Bc$R -z#3q|Ct%BtS{0s7S{mJ|Sxey>avtj4V4TWI_r~o!SqIrhtR}Ymwy=h-k6Y{uyTDb>) -z0OIO4Wl^8PqgLd5i6MVbWYrMqtFAtEr!G!w|3h1g@=l#XCpZ->^3i!&l_TG}v#o33 -znLi2M<7S{^PbZ~8dVd0!T<6jcbVso8;6}!Z~iO-^` -zJJ1yQV^?Le{(0e|forT%5|4sx&n_Ae-N_mVm>+KlvjMnCux=%sT{O;dx1PE;up&g% -z#X*I+$@2l`S(PQCDmM$vk7l)n~@mrfC=_)X@}rZ~JYE-Jy>Fz{*DrgzWbBsLPxy}oyAyY_KqvX6Um==z72 -z)|Cx8f47pK#&?iXOSn&9PWKd4HSNdif|qn|6iPHevDK9zM@SPjrEqGdPz**~Gd%QZ -z6LaG<6O~ehaOXLOyV?tPrCtl5$I+?venkc!W~0=a_lnvDLD4TbVRNWBe%$jRx(fWy -zmM@~%*Zh%rIUi|F>ctm_lyy@aiA|yc^xdl~1@8dK_1{+^E7g6MJnDdCU)2|JlgMe1 -zo3vDnJTL}I74E=Jk_L+TI!lqJJWSe@gu$?U=L4fBIW_*P_|!LRV0-&(fs$;&&QpTS -zc&1or6xKBlNKps`VYL8bf{VZjHPIlJz{WP$K?n+9b-0LCX4gxf7pVEzApVn3U~pi9 -zVT~xlOUpn5@Z254AYs51bgG+4upDE{@3@Vn|3UVepU;Nr?^T`gb*a7~siSI+!oCIo -zt2#CpUXrqDjX0frHz=(ind{RUzmRvfKz#~wF=bAT2J@ZYwp1_D`k=@ -z>bpw{`3UeB@SjAT_75wr&(Sq0Z%=$FH^MoqBuU$n4B+^jMcD8AeaL_)W>|zQ$hf!u -zlJ0btEeJ}}zDrMPK2RNgq4gF#0ohy74Nr&P;h-snYQHwarn#406!|>z!wHw!>p?Zy -zV^3r^#&kLZMX{@WFNTE;mdLiSfusu{o7GDDNI+gl5|GVIQkQm@Lu;e1&jDY=(|tBM -zUXnDyj+gA84cyfw`E>)>j3YOmweu}<;03A~c1YIj-*Nuq*t4g=d7;WR!!ubr~gzZpKnYFp_XqoE><|>m-8$;z*wg-_8Q9$5C!1O`d5Ah -zY8+j>;{ztmj!&jz+@H7Vw?PMNeDqX4xV~pNpI&Rxfk~t3)PcNiVYQ(*9XkL8Yk&Qc -z)tTo*f`9yWAe&lt7jyhfnBxG -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 -zib*(S3ZV&*!wIFasaH8r>KPBus7)$!)cxt@ -zvzQKZsvN>7U8;;|1N+|Msl_INw@e>iV{&1Rb% -zVpG;tP7s66&u7|ry$`ZdkrSIq2+@JwNWk^(+n^Sdn}tuHFq2L5V_E&}b*68^t_!y< -zZcT_=RP{cbW2InIwZEtI8|2SP;wf%zWbzD=I}|ASAm$jVY9C#vNpIdwYGb*@tOxlN -zZz|DEU6s-$sR{9s7P%3%)+S?0=^qYxm7w?sgp-!tEk%fv-W~Ej*&@$#dSUm+a`^2&i) -zAPR#W1UbSX{RhEdghNdxjU(6<1cZaHo)1~_=!XG&muc#L(YSvWC1CHbgx!Kt&|J>` -zERKv}_j4Us)sInV1PZ%`zmY-!e5?p^IQ*G}BEcR_2!u<8L;`au!08yczmk~AKVv?j -zLlMae2v=>f4?i+^pmZe5@e{CMhL%Ne8H3sL2c@yUgqTAudaa*to89{5&rFFYV=t!0oVJ5XIA@&aFb)*qMgC^FOEf=fW&)+D@sF#8Fg|2jnM_`Q%o}+8C(n$b -z2=Ol=j)YRJ$*fd3nz9xLL{`D(hd5$6x{o)=&SjoNDo8V!E^6$?p90;;43E9Sb`#Vv -zVtT`q6{;fIhZm+fP1a$=%0ohRMjT-VBf^P09+tm`Uhp(xs{?AJ+8&!VkpO_!CgN%! -zPoT*g$L2YLM3POR^7bKEFVN3w_qcx=k_~ZI`&bFFd+3Oia_R`;1EB`B(1%rG_bl7#TZ02kD?vv_OU1)SMaa -zV!^=-2lIVE&i-(MA*WHKYqu$kY;3GWiG5ymx9|9zAuYGybCCI=&+30elV?5lrR3F; -zv?PQ;r|x!<&yFFD2G8z_YktJRk0oBx)GBW({q}h;IX}^6b!4J}MC7AL%Fx(NY#CNr -zRApNA$v=b4q+NL_rWV -zt5eES7UQ&s$Xb$;6c#INTAeDs&{g>E3faHf(@OCmaDv?xCNo$8rXZ2%b65{B{rh}4;0Xx;kgtQ6PP$4Bxt61~aKKg7ytNy|kQY)z -z-aAo3OC&tt(D#GLewhXGD0&gF-Q1O7o3Mi5)QlRy89R~r -z4BexSFbR=!T(YX$7_fPwt@g89t!>LTKXA;bv#2@=|IFOSaHiTMTy^LKO1evi> -z^xS$iN93QlkJ#*iz-f%In@S_}YbN6$*P-yww?QW##OwtpljhOBzT(C!PQ&OIoajp* -zThG;v>2BSGFrFQ`&~^ihj(7${0l|STSa3-atX*$e@eQbo^^ekQOP?5}Q&W -zX(f_N5V&+doD4Qc6M<4pfhh;=E+-r!jZ8Oa#Wc9{JVhrJqT(nG$7t=x(c$Wksr^Sj -zy}ewUu>z@-(A0i-F=1<40g>M5l#?KMGkrcY5S<6+@m|u}h@c$8mT*s)`i_WABOsG> -zy3C*S8~xOuU=EgI=n(00za)Kv=#0tR5Wo_?cftUR1Oo&$_8ra>Hx5juhyooElxv_g -zTVHd^BGyUBulAsPbVVYXOTdZ)t}O^cf?z-CR|@H|!Xj_NIZ;)hM+KY{74{V-PKoH3 -zT`?I#YDI9kLc0(%Q0$(Ci|1m89Kw!8%xUt^zT>)$M$kgKty*9I(T^8`KheA#dzW58 -zJulH1C%VN@pLNsub5KvAM|FfnFPSq$P9(A!r0I -zBQUqa_eg0KhCR8^XkQQ)o3|#wSkM;F)t_sPBB=+dQId-E*=}9f)PQD&8Ji6Oe9$IG -zi6jV^gi<3xq&IpX1eYkuITSO_!AaB!Y6*R0&m{bbawB0msu&*svITMAQ0u`S^XvLg -zC&u+Jl)q`Mn+(Ehcx!NDqBA!QSzv>|%Bg4+ldfTC6zI_YL|WC=o=LEHtDT -zB!)wnIkF5u2;@u6Oc3U4dWt^`6pSC_e_1Pog6UC{h}TaV4wfxSlW-bpl^fb3+5g#Q -zfOOVy9}2%i3ia>*{A%JL*yTXNm`mc+@d-((1UUcX~naZjou -zyfv3?D3Kp`u*HLFOCuTR2#j=wC-w6(3D7`Z%NO76ySwX$Ig2fya#9ws%#G6C5^ss1Q(BElsfKjCu4 -z)>9kS+i!J$LSFVE&u?py^0J5C5**o+mvPE#ic35>qF$#8p!KpO`hsz5K6!a(`lTm9 -zVQvn~&>13jnx#T -zGv+%Veji2tx6ACHFv(E^b7K>=j2)q`U;FW{G_iVL=W)ft*d%iunm=tke>rIWs)J;L -z!$>q0k_YyY?zhrYt}iONVn}LYMdrp4`dZY5_smiHTEDG>xP0#(T+XB^l5BAa&-$jl -z_`1mhYM@7VbbtX3_rZiz=MLj>{q)OFa;8znUsd|Y7JlPPw(QLr^Z#jp7t*h~Ijpgj -zT`?-t@6OtPx`{%iX<uk8W4rt#F+L)2z6S(dD47hD7m=$7Zdq#?VplxPo8^$dMZO=$CysQ22@`7R9 -z1O%<~V6>Heo`*mnlof-37Ct?m7vbxb_#7(0=Mcsfaf~Z_V7a&>EbUK&35MU#ve1f*Y$G(iUl -z9T8ds1FM2iX>Jy-MT)Pd47GoRpg)A#-$&3NLM_4`YYavOv>2U^$z!;x2C$ovVm7?D -zn*lLHVMDHfZeWM1Lcg$OMWM%ORW^Z^0Wm`XMg*W`fY%ae8Q@hE;Poe!iS@YgiHg1&twv~=>w(|otRR5$7cc9x?x22Fhl@k -zTfkB}m;w?g1}vSKV(5|%x|D~u0ZVOXq!`{*IE0gg`~IAn{sm0|pQnPRQ-)n!aR!(v*>_y`&zb4>xcWn8I>NX`uS|#^z3@aV -ziP}=&1pqQe;%Te|z)GX_`0Oab=z-sPod>h6Y-Kj0pPdi95Ji1$jfv`O>mc}))MQUi -z?!g-gCGJ9ii;{UEXdD9A9rMDR$PvIdg9$UES`3J>KdTOSDg{;4pe;bvu^A}_M3us* -z8Cwc%1FnwENHIX6qZ&SAGJv?&LO(qix?T)JZ-ALYk{HX!rdb^j_2Wj|x)Z?dh70&9 -z=wZ&6KHq*`f0LO0^tS&p*6BFx~!14@$XLf% -z70^7wd-JB8vlVT&pDItk($oJJw5*Fj)k%k!#sHQ&LlaXwWbO;og)pXhLWRbEmTjbx#J}lgH!kf!IpAS6o220C))nom>o$#7qrzzZB}v77&@F_wbvg_`#~-N-e#%OJ^NatZWcCr(ftq1SHq{8f -z=?Y9P?w!Ebo|tTyVTIRWpq|BWO)#1mBQzEMM#}wSdh4D^s0HwzQK$v*o)XmJb7RUC -zb@5ZDO$|$@Qn8Ujg%*QlG=QZhfaP@n%NGEa9e`}d@tzI_GCSSsfRdVkl3?Hx1S6Kp -z0*54o3>WbsVG@ibkn32N1vU}opJ>V-Q+lA$w&R7;f*~a6I}!^hsR<}~5pWHRS}M~k -z2K}wMgy6B4)C}i;876BEEP -zSt8BtPpoBM)fv_pJ47+*XgyDkv=yK{2kE8+{5C-NwZMKGNJo$K!I-K2LVwGRE9!uH -z@;96Yz9X_Lr*FB^0XF$lBD)>8Xa-maWBhX>D?H;wb_UROc7_6?kKYoBQedAzB!Vza -zFu_DZ0*HhtCK77BvcBn8lQFQAVkNmP59T5MSbNHcw5OmS{!W`aU9W&2+O)p<86Z_) -zIfl_#&<3mpq*VlrosnW+j2K$rF`x*Bk}Y_9uZ2Cz0{w#Kz#q2j^eSVt&;pMEMKEdQ -zL(71rEEo%8_hDx04-D3KI+e@eZcqrU1@u$|n4OVgeiz=`Xi#hL{y&S&CNy9+S%+7^ -zS*+a<1+&Q&xW+3&6q`*{LGj6d2rrJmn`LR>;Q%rH0a}ePsA{a9iQ*u5f2=T*@Y0O_ -zbC5b!N3G(i;^dSo{)YgSG@}i -zU}CZh>o5+34&%RGSpN@rVYL8LwEz@N1*QuA0;b(SpTM>i47ROefZG-_(0EpJe}nzj -zSf=>K?k)h9kc;?@FMvBjF?N_x;e!3xl`k3#FG1M-0yG4ssz9ZH6}14sf)l|Hih(*J -zx`7z90H)e40Gi+!VETu}si0}Ch91D?F9=qwV36gD0bW~x%US@)PP00A2b4(wIR)1N -zL9k*4gKS?6;Q1t=~f4FDgopaoCgHKiWLl2tYRRiEdaO!z-7Umpls^ZLE?}A -z83x=31l0h@Fh}}@hE)YBKBA079$4Qx2AAW5MF|Ta0r+&`!l0162vbge%r_Q}7+g%h -zx)rY&BMce=-xzAadyy3Dy1srGW2!Y};G9ZDAeb|Xus|^5@tjPBiB6>=5KJ@NV$}>$ -zRv?&N(Be$#UO@pWkKZ*Na7XX}H^g=lIxI;HfCsodmL%u|@bwOY34TkzyVpp5RfYzJHWg|ckoDk<6a%u}0c5QL8ruc^fJsURXly*t*b1Pr -z2d7v49l+&rfJ-reOInyAGMGf5vGIVe6@aeOtq$mV9B8Z6`aCDLAVtfrEi7M8BTdaj^OgL3Rb1qAY6q`RWnykcx -zbE=~M6zUZNSH`>V7h2RQSL6n!3B2(Cy1JDN>pWAu@#_VD@a~^^W_^hWWdpBKCwy#p -zgK`weg%3Vfm_(mIbpTNd-#qQUjxMM0*H+VM6Q6o-vO$D)vF4uUS@#EcL6is0K}RB -z#0mq%Qp2n-hUXy0$AuX{>~yOGX1)Q;Gy{kg28gAG!FWRJa?mWrhtu&5ygV~F -zI)(qY5m;jVK?KV5SnKu0^CA!kCt!jv#sr8Z+f9tACMYl{d$9sk2@AD6Sg5twiG^BD -z?B`{O{Jg*h^_?FVgsg7Ir%F5kH;~1DHdg(j;`Cx$|H4z@%=nS{YkIM*UwLX3Jj{<` -z5=gKb2Q2(EXo9BhXAfM0D=%3kOJz~DxjlX0Iu%=T8kLF!kKp0an4uhxs!d -z!8hEuk%AWB(+l8J9^f+)(6$VtVjIL1Sb`Q-45;jMs{`SY2dd+P37RG7UumaTyud*N -zjYZ*GqewMAVJyHa3m-E@*eD_Z{89qzMFqeG)CU`11xhi?O#dze2GSn-VC1m`tt~C+ -z7UTgbBLP^;FtD~k9Dyac4Tu2=r3GO10$`nH^;|$oLjYDj46JPsM_>s`S25tMv;eGL -z0Ibuk4xH5xfRzseYa7H7Sc1}33^*$-a8@tithv*y4re04>zEIg2J$_gqDkwg6=x7u -zp(z1~UnjU>;WZIzj}H$COf_1;4MPntgjBc&Hw<0^^*~C~fge#1R2kZxQH1@Pab>3H -z>u;oH`2~IbF50SVsu23~iocPXZP3yC@YGGNYLQ(9TRTV52d#4cJHsDu8eT%RekeX|WJIK@fl? -zXk5jBvl0Rb2k8_tdcH#4E}WpEzEtaaaQlz>5fmlU#roRlI7F@HJ>*!vJne0B&0WZY=6Zq+END)7C+SXz`LLHEtXGq)14K4nW -z8i2yV2jwx4#5nQA+y5{~6iWETazp3Nc)GyF9A{^P{0yYrfI-db%CuW09(}tNWBS=I?d`r0I5_!;1}a# -zER7f=mM%bQ0_p!0G|f|K82=P9hL@|C@oc> -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 -z$gwY)iF{Jme+T9QXZ9{$NJW| -zCCqNH=+gFUFP3bSbdm{n*>cj!vQ3^hjH6gkOu0LCr+!PKjbNX?Q5B;)>$aPhI!GcG -z)VQo!8PzD065MC<#yUOZfP+r1mq*W%zJ&LE4=ZvXj2yF5vsvPruDWR-*KDJjJ00<# -zE)x~JIOM-CjO2hyN@ck+lT*e0`9|lHrO0F^5~*A#hVKfOymK$Uw2<}n0=^M{H+?s& -z6pqGEUyWw9O?8l4$V^1f%ccr;dCkYbxqeXob3J2&b<)XoRn?6k(V$NBFs -zlq?WT+8(FOBbm3Bisd}>`iE~bGm?ulGicHO35_JNcUzhgJTIpeYB=f#3>g(AKy{m`1JhqZ0i>N6(rr6H+p*Y(nI8`Q*E>xpI7JE -zQ7d}a@Y9=Var)J+VJWe+Nia_#OB~_X=@{V;+Ey+5fjW0f`a5w6&;I2Hg1m*@{qq-a -zTyMIb%eMYugKll^1HEqbcbrm#reoq8g(bt&;%@hGk|~yS(8@n~mgnB#z7g)>m@QkG -zmAcf-k&^oPdUHmtn&z&@J0hxX#VJ#4e|_c9Wc_){+jxZwqCMwzD$iPzko?j* -znmA;M3QgfM(~qADm5FjxZ^<;FX_u;E-_A;z+E%@1)>xj*7*9#K_U56)VSk6Tc^x(U -z5lpdm`yH%jT^u!ytP&_DcJ5d{>%2@+@BOAdPFYK2KGK@9*ss|sX{NK?1J40kLcC2R -z)=uqv47ajnOV6sVkmod8wtsb5PB_UCPv;9E>U(cCyN8GuI;3dCE3X@2s+*T2Is5(m -zGZtBqJ=ffLN!C4Am-Qv5S(K4(X~DF6dp9X+^=`2L7MH6n2fg{KsK>cn-t)_;uv{i~ -zSn5Vf_fc@OI&IEvY6Hzio<~8${6-N)^1F(|7let_hijy)j-Jjb(A`z#zM~~F-ndlo#=(RLLG|{h;7kIb2S{R8Tbb -zYO~eSn5E%ovNy!@WtjG&u~hlzZ#xn<6cLuVzG95(pk(*0Pl?KpQm^OwzAUwlFXZK{ -ztmBk*Epup$UUj07tm2P>_MggO1 -zf#wcOj(Q5Io8Y^b62DC$lkF&X$o!!$rAnRZ0T9PEY@_^8SWn{Dwk>x -z>```W5k+kq7?GYN*>I2{TCg{0uJS%_ao4C4^Tt#Dk1h#DIC6%}Iusbd8nJ6r5L7lc -zYGARXGJNhvo4wI9ny#h1PLiqQ;(3#|w-qd!T#gpWyBZiNW{g@bokNh -z1*MWzb7bkuGv@6oD>)L9BFRByBt@lVAMM}5?NP4u{y3|+PnaJonUCUKzx=Mc7Gity -zvvg)wF8uV1(F>kc9*lIeS-fc( -z`#@QQUeK&k(btD^9_WdXwrF@~crM)Lu!QW~ilF_+tf!?BF~N4rBkPC2MNa#vua&#h4Vyuz*% -z3b*B7jcseQ?Of1tU(Ax}Q(R}>ahRv&Co5)~YO2_txo0Yto^szW`bpv14ZR~ArgyRf -zYPK(nC3;5dos7q6A3fN{HzdDw=|-Pu+A{M|7COlh)7I0G4cALm-c&x#e4Nj7Q$jAt -z`;1bnGJVXMhHEMbI?6iqt?HlXKG1DH((Og`gpa<9oYPNv+YviI2UcS5*Ncp;__W)Z -z`FICZ18fg@-c_OWrDnSL*2`rKrT4`%mo1c1Y2TQ?{)?bkpso-kA=FE&i#oFopY>Qs? -z`dEuzTa$g)Pj8sxRb8n?T;P!MJWL?9sfK^Fm-_xPPJ=*QeW9~PTCrn-%4_Ilb90(o -zTtx7wJl7w2d)j^f=Gsp$;#=+T2zCZ#NR6#rwU?QDZ;^P(P}$i-@iG(>(r@>8B!{D~ -zhg$9s#bpG(m8e^z73o;Hqxj}%)&kYrW3;yxW=oumS6e)87wOY@{iD)XC35TJ&-1+3*pJ*pmGo5qiGfR>eC%&;Wh*{B)DmhY# -zaSN65&C2Blz9&^q)t?9|;Ca!)9^Y%LJ*!GUJ-dK>__9sMy6&D?ij_|qm&)6BCJ<*l -zJ5s;7zvfo85kIYiw!?(d~$Er-@UYh$Ntq=P2;)z -z#*JJ;1ASo!gMDM7s8+=uC}l1=^Ljt;3In?p&pvUV^*q+Zu`Bajoc!D3>ZnHXPO`#{ -zwTrZp_~RegE*Z9RS(2$|_u}c<4G&Mp-cR4PZ8q)dSYsm{R|?HeMg@)lHa7#m*h{3E -zDlN_p+n>bV%-d5OqSk$b(L8~b_=cOyMicj3X|hF4WrYS}#|I*Pk(csp(n{}*4o;gXT4!0et9V*_iVf&iQ%_2dU$42y@O4;Rxv~m+|L#Idk -zm6a*82NW)eTea^Pdb+&7JpYOMhZlK;_xXCS?|&Y~(Wjy2Ah;vDfVq#tASml<8bj9V -zj9%$93e&TPh3{-S`;g7<)5rBI53KcDuFt1lT#&U)=3sSWYl-E86?!qXRHs>a9$ulD -zT`x(rElzph35U~&NaWH0wuf9XXLyRNm%q4VpDLi=ZJ@oRnJ#{H>{{U--q`!`1BJ=a -zF=XuJAM?tZ;Af$aJ7OC4UU -z-5%ZHN}p){s?b)YwLxO+{)d&CX(saMj_d+KfjyUd%2zF3lS|%k*s-+Px$w}lbeiZP -zhK1&zhW$9u;nJbisw^dbtoqn(7VBec%lGtp-GA4o$7{V%oh0J$fm8R+t-m+_;%F?w -zg)QrDjVxjI<+}P*Q8ZVZZS7jmtRS~dG#VP$rL{@2-dQHttn3K#7DJs9$+8oT%n!cM -z=G!^eG^%8JzO>duj-h1eUhdnaJB3LNHmfp*=?SV8$%h#jtyN>CX%e|5<-th(_AEPxbc6f0;-PVF3mV~qW+38~rfi)}U^y@j;EMK=a*JwmNe>hL$eXO0F8O9*4b}t#`O-0ZIDVzDpq^arLX_+nQ1$IFEh4d1Kvt -zxnQf{o*R69Vj>Zb>K~-~1l~Ll6?Syd%BaU=E!zeqU!tKMFj^kt8RC7fe|6=#;r`dv -zRZYVcjUg987-%H|PVmzozcGLQ5nro(qXF_(XIk4!*JB)fFT`=tC^b|L7wX%%1`1b| -zxdgN6_FmJ)Pr@EvM* -z;!I;Ho&E2XZ@-_fE-JLcTW(g0Cv}r^@zN6+d+hCIbs0%^7_H|mSr{5VD|P^rqMJ&~ -zmVROh_dU++Qq5Fj-_dpHr0|%kSI^#yOH=(A-#cXm -z>|19ZM;>KuEOk03;GT?fI|G|nqldSIWHwqFFliR-b2wl;0C58NS(&F5RGPxmjqI_M2 -zj88OcLTQ&;*jU(&t{n?M&=ToyV07Df87X7i%x%Cy{*~b -z4RyaWsFP-$V9Gg@fyE8Iwa+*dmM++8Nc{TZtA*wxLg+Clh3H!3m(;F!-;%RqlcCIe -z=eYIpp$b-iA -zSS(+vX{h!p=sxQ!mZ)TOw#8Q33}g(klVx%_82f}Ph=_VgFC`Y=IWS5Yvs-NOfJWlZ -zp!0m_d2vRLNJI5b(75RmeQ~0ntY3DwodUqHS@J(M_4K<*33)W -zG^}Mjf^ObMHeXX(dVO$H+p+nNE!+-yF&r!Vq_&(@WOMJPOZgr>_4WGQRhHV_8ZD8* -zG)sj;V$2)eP1mJ{yliw4H&@(8Dyc*lx_I*dIyU!8-N>K4H}J)Z{0A)th>nIKt!To7}p#Q{}T#Ns&lT{AFdFf -z-`4DMG?`60K;5;S`WCKSIs|h)$#acnO>$qRWvkzqB(RVt{;OJERS$i5H}xCka+h>wsD&$ -z&rUT?X)6`x8+VC<4lt(Pl<{L?xOrs}dOK@LvT~P`4uq{_*&u)T5Tn-|^HQP9k8c$7 -z%re3=;$tYwqA{m)nQ%XynqLztX%+KF9o1Cd1r|x|u~x(n+T}oP|dsIFwHAf;U7T -zrK`uI$1ZA~N5*a_ReGF6wAkNRw3-`FPvPt&Q{Sv>1Hrm!qHj;Ws@OKlz5B>V51}Rw -zothlMZ23|=+=fke!yVj@aGuaMrMmx2jK(R8<1Le+hS;^Gj|TIH-zn&&2{dkD7$^MYVO4p=v`--O<{fIF>SRZk`9rT -z^%)i+;ysTgV|Wr|&Y2(7am(wxlIPZREw?PsI^qOgxu=2xds1RXOe>Dc+`Ho1oxF1c -zJ7Lu(T~+YZKcu$fZQVcvPliG5DO-W&;B?nw(xj_?Tn9BmFs1Yhv$JV&V$z!tS@U}&k?LG}%Zj-VHDHNspj+BR>m -zD6wo3k*|SWR6JkePW7$;@d@9I?B!L%y|G#G+gm-BpMM0)^^QzKs@hiJ>QQD55AT%h -zx75~0QlG9&%Ng#-8A@_vy=vANm-yl8<0UYV@|MG!TLPJ5o5h1FyF_vi=FyHTA4_Ol -zMwFh)nWzj;omC#`$g*0iMx|OLn>G90p3(5JDrWh^-Y3LZiY0G15AD&qztC~>hZ_$X -z_8GtyHlVz=Yt63Zw>kQ2kL(>4Wz;`*IHmCItedsnIrSv)L=BpUisLeZa(Gk^$JK8m -zYFZ!iFv)q~Wthb=kc0Qd~ -zV>#qc-R8iy^NfkQ(^s}>Ka06YyJQ}BdCjIduQVUEU1W-A=HW_ub|qbxtVsU2D1#I6 -z+6A5CTwH#koQbYQyy)3jNwU(ilt0eB-m`EK{aCP5R?aAe=cAF1#+=op^|$6yUt6@d -zSH8;V3YGh89YXcsq(|IrZ*B_(Go3oS^Q`3h?4{$h^iF%=v4sO_T2~wu)r~uv_KK-3 -zIoDp&?m)>7z9yQWz;=86ID_T5HcP+EX7K -z>2o(v*ln^oO|(qZMez#NK!1vW9N~s7+j!ggZr=0Ab9o@mR-c~W8yfb|wRI)imNoln -zbgk6#&(Jd}oz2o(9E^0Sc+L3INC -zL0==mR+G*ge^K4)T<0P0)i1|7Q2km$tDW2~@=)9e4QK^2x-nbL%_xql^ -zxW>`NAulq0y$M(R*vPTiUi#kTwb2BGJ0%^Psrw|$Jt5e;=i@5Paz4B>FI`U4XI$`3 -z$d|_3(yp(#cs9L4xSIjtPVB_bU_n3 -zf<#oVG%j-8%u%h|w9X-s9$^Oi)A4kvg8h{5nQGS>I#>k8)pFupSTOr>>!N(!w9VpY -zty+p+n~)l&*(sW9=j+p4@b!Xs-4eP#n2312smChM^#gYH#O!$a%ny?1w`X3ZeNu;I -zqjktByQD~iUD*Y!UHscWt`TO+Kn~C=`ZO*+DeKkPlCgNAOg_njuE_ClXdd+ehq{2A -zQvJIliGt0#ro+Y&9k0?4OD5*(?P$=`={wDMgb{fs)6&XDk#of)uQ<*`^wMsioG4dV -z;iSS=CYit?mT|FEw_SG@=!_kHE4fW(r8`g9VS|V?$ra&tnT{RX!^NI3M44{nP8B>e -z#3#O2O=T_pJ{EdA($HHh5fAsGdVZaf4mV!xjY-L3cqh_ABDj^J#QV(4-3ET-)~_R+ -z%umps;$jfpN9}Hya&M6q?QFgjQDLR4x{Dcioo}+Y1(9mLKHi -zZq^i3duSN3_F9*3T!gz^6kV1)aR1~1MccN6Kl!fdDV%KhSribY!XC4!zq<8KUN5u3#Kbqe -zir*x%rp#R#b>7H8WW9=^@bP5QjpD?1#UX5mk5aeHZOb@W_~w!HhLW@T4a8^Dxz~@l -zi<>i44C9e+?pSz#g|UagaN`A&`6iUHbY|!Q%%nQco<9-RQVsRiKfFMXA72jWe7nqf&1v`{9qnZcj^JN_DD4 -zQ^GC`q2K?W{_M5RV!?A=KE_T#np&y{Z!1nDuDo`wiJpggoKVZ0cE|j2nhNFDs=|!h -z6B`QY7CO~Nc#-srXf+i3vo7pe^X#b$8EcO+7B~(Z+ZeTH=!$Uiy3`W;`}>ziOORw< -zQ#i@OaX8F(oATCqBx@vx4(Gk`z-P?dl`OO3XWf{io*Giq*FBG&_mRDtMa_AJ=Eglo -znpI=(j+4lwE^0+p(TNegC?@J)PD{qhd&x07r1MSoW|;`TZga*)^Z)$tOmrvI2dz$HRLFsgG`oiNPHr`K@OIwSYb=wFn=6EGg8zi^wRFn_b -z4>@+caB@aY(i`79pA#%u?zKq3RD!6)yo<@0LJmS7Jc>8!r?N@d9tUX{R? -z>uD7N6>)YJ2wuBpIb^JU*_D%G&!en -z*C`~na#||HtH-<`J+2V6vZaYZ^|H=hbOs^>Hlf*{yx{C(C1Y|Lb;teuTby1FGVBvy -z>P~hJouB+9S)rt6sea4Ps%QocK4Q7Ii-^}Tvu)?rjCr6=75iaX -zV%P%oiXlVYhRg0-nTn$^w7OjA+V!YJr9mc3h|&7G@G6?b+F;5j40B#t^qS9mS3uVa -zibphdXYsK03n^BUEtB1rZM^P?>1l4VkPAelk4K30%y|>c=O@PSKc&Bf -zm*sp%H5HcCXG~7Vp3>O1C)@vmeL9tj -zYqYF@V)mx$q4}O2)L93cJvEcB*Kmq*OuiF`HW{;U8P;vvh1k9K^zI(mV7mA~46DML -zq&lTtK0sVfH7OkRj9UG8)*!!78jX#aI;rf+M458&qkk1fBc_h*Kre|BK+)Jaqi5L6poIU1^=z5dOCEc2a#-h71 -zdfv^aDBRTYOM8aul`Pa7dW$iKWlWVm@H(&5mtp5n_9!=ti}-qaz8&c)TT50|g=)Dm -z7A3HASnZyLgqSd*hLCEj=Uif)W&w$!M|?YP%aC5-7$%JKRGq3HyQz=!tmFAj%scfm -z^n7Eo_R=2j6^L9Zes>$uoP}#`3W(Wv9h%kk3KOCm5P~5+nv{{txU_qJV=9H -zw=G6AO;C1mYxJu~psdPL2BCGs3Jcl#ZIo&0B#Xwm_B=7q-%7pROUW*Q@}2wbq4fj` -zy!;_W<&`CFGH%YBx6ipg`ZiHCe}lyA-Ntt@FXJKEET;N|_X+n|0SQt2w)I?=!Aggz -z@Aa+}ZE?)M^;lq|S?@85^Qa|VvU8bU)kpkwq$*F}`v)}Duo?}X#3nT`^oi6(AkD_y;cwXcU -zN`ie|JKu#mJlJ(ISlM?^AxBh}h|NKs>Sh=o7D8BG`B`vXB^S*pv;?jtsaMTE@Xd556Xh5mwxJ6z3=6w&}hHjNAe6#&T -z&bXw6owlBgJOQkp563idtmNxv8p)L2Smfnwxep5=Nht8ueV`p%aY|;CyPH`=^?;j+s{b~h4UuW@@Ml!u|Kpt>$al0|HNirg#i6HWhUmwv#q7O -zSGGLdG=Mrm^2h7C%)1<}G@L&Sr=NgYfLFgSGLwme$;>19gNB4?v_52K1!TC`Jj -zwnPy7Cmm{zqaUSkz~n@iY<|1ssfzfGi;WmBZPuTdXF4y!^%9Y2&?@(hYy`bZOyTt$ -z{`cXRtslpg!wlJ{oc_yT=`CIsd1(%OG(M4{JzSWZ@P!_B%S|E!DubhJm)Ln{Wk+v-MinFcb%;dL+Sx31h4p1;A^Lcx>k)_|DUL*}>T4KkaUdgh7Ne(%otP$GEJ7xVLpat7qJIQGsRT}t48g72|tW4zGrdvw84&*g2(m{v3jEyGmR{pZa -zPK|KsSdUg^G|@(6^Zi^8)f3-ybVyKPtDjgSzF`sRZ558k4|GfHNE_}=(nZGb{q;2g -zvy5GpyEMJY_2xf5^!(LR?X{2;YAE!k%GAnpK-t=m%gs0$MAqjMn>u -zujMOk_&{d`8xO6;%UhD3E7T?5x~SgV6VSb@{>)?t9J7NdC)(ba%~5JH3Keh;Syqd1 -zsluXhYxS-zkE%kr>HXh&^LOVLG)UbX*VHWj|5*F#psJtfQ2_y^BqgMzyOHja?oR3M -zkW>@|F5NASv`RNp(%m6Qhop1}Z|~*%-u&jx`}55(!)JT$IbCi@%J^&pXcx%X(Fdt2CJo3AEKNtR^iu;b)J- -zPTKKmxIn-=E+F#mWx*#j4ye*b(h(| -zO{Yc@^U>J$C#tXsQl-B+QGdp0*ex{sxtG$D0!z*nPR#YfQS)){QaC&EsL(t~+n3#Alq?Y&V -z{tpEgqwx5f;ZOCkG97%y{TcAyY=3094ATN~=`+&dM?b#@a!*Fz+%W6ChL|WGQ@u(^ -zrtZCI_Ix5es~j)?->LVL{Gpfzde$3dJqzHY{q)^`sS!DHQ!E>`zDOuR+Y<4 -z(oJSR=a!Tqc6#ZQwm!~TI6|`m++s-rF&K$wwM6CYm1odP;y|otFr?PjT8Fev$m3>^qmv)Qu5!n=__|Itm_9MQ{O)1n#CyBxZn9qw^*4-k}(t5zR3 -zJ?Lr#e2y3L73@4#DOpwV8@uR{>oc*Hq`aw@*7N>#W&om4a!QntUjKSH=HIQ+uBv{Wb8HTmXj)G0rUqz=(`H^?ed|EM}9QVgu9e=4V4)P;yank^E^21 -z?0cY%=udSA#1-QXbM$(v*E^rz_i}Vn>z}7|kdKrpz~ltA-M)+toGaR+l$L?0DjTkb -zl#hwra>5=}qf(O0&*Ny*Q7@i@`%38Djb*LO@Oqh9T(Npu0!mFg+d*kPTUSHYvP66< -z$NbCS!@~#O@ZE)}Oqcs-f^j=7s|NS5SBDm3-x~Utd^hJDicg(+6|bvxs8{!3>Y%;g -zu+CT2syA_*h_u}4*D*9Hiv<~s#k0Q>P_u`M71ph**Xdng)7+fcSX}21IpReNPj}+; -zO-oAN8Ce&7JajZ~oJtG>Rvq!HCtt&nmcI-c%2mccGUpnZmqh!H&LkT+I00D2d83d&Ck=G;XX|5VRqIBLP(U+6 -zR+bI6{-WWkeXAPkYiIl<)a{Lz+ZIe2qassEHsHsc>lN#nl*xX(vr1$X*{k#(-MW#J -zmrCq?p`8K?DodH?vj-6?FgbK9G4^_~iU^7@oy7i)Hud`Q_5)qjx__CSx69Y&~6IH!5a%7DT( -zEtd9|c@7ksbh{5B_w*1*YCeOnMDk-=Qkf4N_^uVPCcNyJE&LyU1a -zzxM^JVHH14HY#D*r?-5arVjRwH&tu2@M<`~Yx}hiXF*fkzeJ8rigtMUk*_mGp4<54 -zrr`$!^%XMSB@(5kh%C47TF$i33Q0TzIpQZRoMQ4ko@&W^2^Vl;>)tcGcbt&d;DDoy -z-_QSJpEVNv?5%RQf?9lw7@Ly1NFGTrQoEuc)=$kVYSA@Fh(L43st*^*UN56%-0mKF -zTp!cMtdZIqKL%^IXf=bBl%ED|qbll1{R(P{EpP-)RAkCt-f3F`vR0Ox@Gpn_OqpxM -z(9Y`%S_qO|ON=nN2i$Cn -z`M3hOOSN5%qFgXMfGp_7Z-9Q7ts -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 -zNg`eVy=MBJ^;JeOs3%*Za>PrS_>RZCCo(T+w -zi2!P^P=?z7LK28tjAcRF8AZzJ2rkKr~-3Up5xxi?=nPQcbCr%?r!H|Ylf5W7Y-t!76orXR{f9neT|R98a{Jd(-a8;6Q)$k2AyO@u4fyoaZ!m0& -z9n3eY(R?4EKrQ!=3;t;#Onpa(^c=Ww?8Y$!DI_!Mj1XDYa8|il5p4;?Zcc6wDsq~< -zy=Jq@W5n6QhfxKmCKYLnE*N;J7U#$c08t|2N -zBDlWl#yF5;mM#2(BtRWs@=^XE7}HxOGGGslQPZ2Ob8pyFxuzMfvCF%v>7&lPSg~N# -zs(1^VxU*lS5OZRtmZDir=!E)t2yW6#VZY-|b+rdZn2*A!Qq^TisB@{ci$H~yr@Peo -zRw0rJK3fIb1#)eI-JlQU;_(`9hQGie37++SiS5*K^FYr?2+ps4y#DQRo05E3Q%+wBC0I=b7_^zX^N)LxJAw#W4(yYgWZpP%PXR%4|&(XvkWe+$zJIb@Ng9Sh1QL -zDpAhj4y -zRHB9$O%yS~`tKuNI%)?w6buK$fYfW3sF`Gu_=08Dc@y<0Um{>mjAQV7+}2CrL6Fz5 -z=}w#%r&T1w*|PZ?-`fd20Nmi8FpeH74UgWQE#!MFQ6CcYv{!+BwpacaZ867KtGX6XbBI93%+&9}s{*bZ -z-c%p(!fvPv`|tUuRGHRThQw?SotYb4_1`6Ft06krmn*?6kNnxe-C9B%&linmwosL6 -zdHSBk-_$8;C68>9o~>KNob>X|J2;h-5rFq>%1WY^8zC>c5BUcEnLV@ARP09}w+IVb -zX-_4+O*om6UG2#sPUmSREHbqyp?MncJ*5-fR**0QQs;||xtDs$yGj4(;b~xZiS+nL -z*bONa;XLVtd~ZCiYJintcA!^7w>*8Bpe#0OuNKvL_9J)G>=Ge$Vv&k+4*J+Vvf{=1 -zMZV%=Zu~R(u+XmHw7>cCMJ&11)J8qeX(txgRHi=f;Ai964!CaS=*<0HVoc%;2}(9aB5Z_iUlMW%rz?nZ|zK+CQ=*G78IY{#Qm!H?-X13Xc!o(Cl9yAU8x3`qZTeShC%k7hmE*Z){W(1g&D-1-A -ze{rZx@x^CN@tDxa8aK(_o?W!~q?jGp(K80cdTT75!CaHXE&T<0F`i)%wZ@y^(4Wp| -z&YtB3n1@LYa!Z3U`<#S -z(07~b)9cC6Rs;et4YHPm*wdbb|IcjD3g-m%K4L#3#rV?7eyi)YL&Qvgb`$>&bj03v -z1VW{RT?N1U>8UixdJCeTmmak#=l|PEY}FENzs=Q}9gcvvV!Njb%+7YsnqfiN#INb_w8Tv}cDylGWos+KtL4nI -zK3dZ}tRP*0{B9`{7r}?_@xG)!AWp&CvG)+Cmijj0u_w7=OBwItktPBizIvg2tedI(c#kOHekSSfm(pMIQ|(zX3HnU^QGB|t}`@`{T$-LnZ(@D72kbn!i -zH)3S-_j6Zfx^r#Mf!kco6D9Gn+nw-hvJNejmu;*MS!gl69*=vGgH9#OoMYg@+RM|t -zK5PdK3fx?5O^Ko%f5jy}t{i0T;H;hCXnXQ(PH7W=1qx~k5SS*_I0y!0=RVJV0|n3a -z{Qd9ux8iV!C*j%OGM83LKHUn~_#XW7c?S=&K&79*d~R4P#&7!g8T#(gs$y-zd2{A>(wWBn8DI@Jnp~T&_175|gQl?ZrKFnL&%SDm> -zgvO#_erGVPqq%hAD}80c)xk}T34ON7(p2$PJ&(2u<{`vxFw*~6IC^!6ZZhCEtN$?q -zBv!TP-w#50grAAqpI&r5+Ye6BefdcW7bj2U=$K3;;oK(i4K9js0CuqXB}2})h*b(Q -zCmz4WtFt>31C1zEgTEHYGi*N4dgoOJM(=Cd` -z4-Z{WSXpZh(N$b>L}ZXMD|aF4sd%bl#ujsF28r|_x<|L=S`&72wni|pL0;HfWqEzC -z8Q?j#?fKWbP0%g1AiK8u;*2hPn-F|A3}O{4)hw}U!*z$N8q{PW;_iQ2#vf!YoA)f_ -zyx&ETs?-+S93}-Ic9L?F9Ij=|N`6*GPV!vi-M2Jo&@!j9zk{q?KBfB> -zsEocfBK$%psF6#%W>HK@wl#XaqgBx#KsYd;(qyZEoH6~x>)d~qyeQCJKh?US!w&lB -z(FKhY_FpHAmH6YRac=?&KYzLY03Gq{SW>HEYlEO~R1=(A@w__zrow|WMCcHZ&!LW4 -zAR-m$sLQq1#r*|F0Or?qSbCuUuDwS1s}L@1VuBQRdzeF4B)PB|U_p*i2Lv|tKEt{X -zT>XkD@`e>Q9i+ahDn2?NjB^<)5WmT*1dN0EVb#D%tK_*BpX3UHcw3-5{E1tt(;cwHGq{M8b+ -zR3Tj2naNMEl_7Tb@ViF*H>p*7V?fkAYTX3xxYlytKu6!t;avc`o#0cdj4Kk2x`{8> -zqKVZ#*9xXKsc!)+yd=4n25fCAyX6qN;d21-f~Ed6;#E8301B%fSh6G()~(7;`FKa_ -z`TI!XH0~_1Xqkrz`aU#@TVVmde(My}3^; -zdE5ePJLQEd{kb=0rm=uI`@e2el>UQu1S;RpSlkmPPzq2=N@ZdAkWR_<=*MlY`r({5c^cTDvEqxpWz~#*0L{z} -z&wxf1E`VFP>a)W_xK=ly&6m2&1+$m&f$IbE&dbmPoVnx~Af*cJJ9lDX*u6x!|I7^_ -zM13~nH3YVY;43a=+Txj7j^_fArwbQaUs+&PL6Hxodm3n0Yj&KsQ_CIQpQeS=H1;LXLdXL-h& -zZA}>b(~~q3pglaaJkP}iUaE(VtMv|0USG`9dF<}uDo -zsBWNn5K74|EOUbWWbA(iAM8RcQYCUFnPO}(h3B7ZtqhRSMN|7U&{QzhuG9+l9kyE5 -z0?U<5riwGTbT)m52oUPDG52uB9iuz^D%eOnp+ez8?L*v&|FLO6&J3Qv*s%oIzqf@^ -z6MsOkyi|UruOLpI)h=%f2$A=>c5*ZC@X$LFh~+rx;)DJ$2sDwfixHQT6jk4V`o;yIFtqjNDAn~-RPMi25e<0(13Jw)g -z$StYHw`Gj{qAs;ilI|`=uc*-M?3kp2=H~G6*kEry9UM;W>i=l8n)dpl5BvwOfCDJ? -zGgN(`elB9#Tv<6KfcB4Wu~3Al -zp26<{aHR8)^5$hJ?>qZc3ga)uj10Ljvd-0*>&N{UH_e-gGjVRhXV_1u7d3pne$ZU -zhnX?k|Gt<>g9qPAua+H^1O-12hI4pCh}#I%(LKj9muQGC%|uaCAE8TVJ{eK_R0?FQ -zZt(4P5k~yAc;W}$K|kULxcRKZaGtz+M*P<_CR4JwU97vMXAt2zR$3p1ycB|NhlXe# -z;#)lVR&@30o`GkvI%0YWMj*L=J)hy2)m@XTf}uD+Ix5UKN$W3^!eCn&^xW -zcRUr12=O6-8M+x=i33Tgwe&^QCMZ2`H5wzttyN(UU<3TJF}KBKWjF%J#M*!G3N-I< -zx{tTb0nfxs9hxtPZl7%nMU{PY5})bFAl5@AkG-4iY5}*Pt8VnhToT+3zK+|~xQbrH -zGr;;>WVKI8y6I7ep;>e}D&>?gMA_{i=BtSUyPnV3FRP0Cd=W6gKM*-gSJecB2jZ~a -zw%Zmp-09H;E1CX{&|UuxaIk5{60aVqF;Bn_eGI|0H(bD!^javwJau}4&7}k_SeZ^x -z{abQv#d37i0h6_8$vyOU2_X3nQ@uI2fvC#(lTDj3YSvxZUhy$nK)^MD|OL>E%Y7I*x|Tv5t6 -zM(3@YbCYpYKvBwvA{5F@=@pcnz)ukR&=R)s)r{GQsO3GWZd^%96Anvelxz}w1u-so -znyR7lGGZX3XavV9<Cy&rqjA`$>UIqwI2MKy*i)eto3y!VDH6z40r~_Lf -zu1>H+(EW0)6mT8J2(G;C0BOL)j0xz!sNnpHP?U{Zw-Tr_Qgi|0UA+oH-vo~Ah1Hc* -z_ib)VCm*?ylgkBUf`SR%=+j#(X8w^+x8v2PWFPi_S|z!LpxLtYzPVF~`Ahr; -znktFN6_iOSFo+jRgy)XhdQz2O$3f>&9}21}BH>NC1<{8ZAz3`fE42j2W^^EXnl_g= -z=4-04L5!H;Q~Y8e&{(M0_@cMe3_M#6;Zp-bz(BSdlkEmvK8gs(6_D={2@_(=&u_BI -zyA%JZ*S`iVM%=pqhprzgF9!dWD@be^kudXu!OX~pth*hYdY7DLwJ_rhak1N6_Ip|0 -z5)mLS0lGvyMP1}S<5;gX;VD4LA`{zzCQ -zt6<*f+_2^arDHfXtB&6ftDrIobxstLLj^j1A;>3HLCTM|deS+ynetvK4FU${&ueCf -z`9kCy03!vE3$uu=zGy~tf+eg}aD|XTIOYM4qVa9_n>-L#o0>2|HZ_Y2u%t!ik3Lx$ -zfQnW0XP40rV%3QNVG``OUPbg+1LaR!P(#;fhZV9)3~U+J7AoNfGFI*SoA`Q!3E9p* -zfVQzDYWK&nb@PvNwAGV;Eb-dvy@P${G>`L34}YZuhL9KijQiPiBY@;E5GE|#*1NiM -zw5jxEzoJVpD76U4NftAV3#u7pt>!3F^wJq326B3`*uUVDfrqb5G1bptey1FC2H}j& -zGJRcS%@u$WmZR+wLvm+oKnICp1*O^-KuT{x+eL$z8UxAwE@_fFmWLuMqQ|++T!mlO -zi(Z$n6)MbqMB8PB2;cq*dB=J&f)5xqn8=>b`!v&xaf$C*OIXM4u6RHY7){V-fIH45 -zc-rZ*v+xq6Z8L^*==92efYWM3Z~V^m%_1?sZ*v+55RLy>flQ2VjrGevAblaiO+3Zj -zpoMab_kFiJ_kO~Z^E8a3Fb%q&aZJ-ff$!&ZL}!9HGO1XVL#f^wg>1dN_sz~TpslDa{iq^ -zXEPHztG`JANcne&A&sHn03Gh;OP(fGCw-*aOl+n;4$vc=Xx-mSF}|%(;t%W~2J**o -z6MvZMTWY{Q+DhXOb^xhMo|L62LzaqNT_KP|Ss=$0jB2Iro0mZAh@A!BqkkP3h+lmH*yzpXL>c{c@F4rBgMOx2az(CdU{p7 -z(ruLUu@>A|#L6C&hf8=rpVmB5t&x)`o@rN$JDW);=8 -zT3DuiQnc=d>f3r#NncRe!~V6E-1BhL0+qa*drAu>iWnD4D#0gVx0rD=z)dv=KB&Bu -z9Ij1GzSdaySpu->()s!I@yU!ppvqWl>dVkYK@DMAH5*&+zF|WVw7WFvKqcemp}A_? -ztvk}WWk8OqgC=(80l$Gw>D>v&@et5P=jU_3QMyE`Ch>X!g{6C>gqi35HKUMmQ${3R -z4)4GvP_9n9OV2HB-&sRRe7N?09`7!|OP{If&n>(#fuY&9?S8@8V&W=Q2>o_LE{VGn` -zBRKr=QT=T5{w2%1hDQnXp>32R9yuSx+Wy4Lb+z@c4L -z6zZ4!xr~K+jBmZG`pCiO)cVV|>Lxz};#^2Hb3rCC=Fxp6?G~dON#cjS(rCrP9gWPB -z?~#KZ)hLxBtr>u3&NO6`FW8F))MXEPu+a6^{&{O^kfOFlFw1BF440PUC|`VG??`~e%>K@Sa-O47M;%lbtLmuXSOt({K>fHA#{+m*06?Q5)_WA0~MtUM4Z%8luCcxjaHK+ -zS6#8^?*8q#>y;nu@ui@Qnd=@M`ISi`QrUP=FSQ_V4D!F@;U7ZM#vsTU%J{7e@gpdNa9fpzV@L|a4{O^fngguQav|td@4OnKW{W!zs^ttJ(2vO}Jsxr_J!5Jhvh$2jyCh;Esvwy(S_4A^GIO6DxdF->N8 -zOGSUNyS0KSZ3obEi%N8GULy -zvToJP_jPY7^2+15^Pb4zDwu;xPX1#V72C(JfEu9DH~;86w`cf*yKVr_i;)F3#D+Y% -zBqV?(cAAyr3jUOWi?YNEy13vcJ-E5kNgwj>4zxx#0=$7_F;ikrl0!GIGyoK##Ik5O -zSN>ZZ}(4#_gkE0aWJMG!LT{XaJP6> -z(|`Gr7h$c=5v$n9M&!*KXo?sUqxeQ0{pZ)Yfb{Two4N?L!qvV-4x#J!SLK8-*19S7 -zv2cf7*E>{WK6~39SGn_C1^jFPWPec%3qz$kVl~cDYu@N11smi~qUl5|jX1gO?IpPj -zmi+ZBJS0kW(fO0stl*6huB6z9LerUH463x0mZ!p+#NCf9`k3I?si)eZK$#by| -zzWQ|X;yuUA_ZhccKPR>~C84!&m#U_}0#M%iYAb|j70*vCGRoI2Atn&U8x7UkGV}1U -zEHRIYYcJ8#JjFy+}1r$=tb9~e#=L% -zGvf$vo2gI5@^Jr)Ib3f!E%sBs6Th3T4mKq}ggiAWFhr+{)v^dQeNR~w_mXo+zGXjl -z^tuCc%!T;gJA6HsB}o+!FK5N&Uk&->ei -z04`r6`wua26-pio&BkGc?yq5mZX^$d<`0GPW3WOdDfRSy4BSCAu9`W}(f^gimCP$^ -zf|DA$?O0wp$R<%;7j))8zIRG1Trp-w3x&rgx~9k?)r -zcI`|+NI -zhp!b1`q|!$6!FDbwDF#d<7}|3fQCQs^u_;Bf(JtjrHtw+#j*K@R03%PcggHNkQE+S -z?gYkYxIA>E-TrElyo(C($Q0DYQKSKL>;fZNSh!wcAiWbv{i*#~Vdc=AAGq2=bN?DA -zk3K~*c97BE%v<@C*ynH{I5$=|voMx)WnEuxnbNh&pQ_-(v#fcLQpP5FgmFCVj0!!lE!ylJ|{9DEgAwe^WBk -zUo;ib#-*4dgZ(;a6`F_^eFhC!@3q{IyU9-E?7D?8eI2azPxueQvFcIRjSttbPl#^x -z*zP*hsnE!EOmgl?mGC6mX;dP;AM(5@$BvbMr>K)os{K66jUO#LHBEQI<9{q%)o7Xs6Rc>VJ8Wdk5FD2T8Y{aG6luzRu|U -zA$qvTiAUD*9YX5QIjT=dZa(}(g%iQ!N$5AC>@FFB8!}1JMXppDB%e~f@3VO**_m&$ -zN4j*pz)$JmnEm3DcCp**$ULbjCD>+e%8c0#;#A|Z6ME@m{N(;mimXv$9gYe@_QJ>H -z3q*YT9)-Ws-o84Ub~>A-V>s1Osq4&t&nGXdU)>B->Y#JqmF(0E)&0}gFzitnU#cs- -zTz3p#BpxQ9eOVIDNpm|mBw!iG!|?lpw8auU&}>$P%Odj+A>AL#i@jh9`Pg=|!VfFo -z!V#DJGQGrPra^c$#~$CT40q2s+DU3bIj=Stwr7tEV3~DllysV8k{e_nlOB2=twP`Oo{i?RXLo`N#kCosNK) -z>6Aa?|Hc~+H{Hyb3?iXX8ZsGSx0|^h;Avm(Xqftqd)N7Be9hbp=kB7L&<%PFO4GFq -zPlSA+(V{&%`^|R_>_iKG3bKRh=biqKOAX-wQD|)B$V6400`D93epOmA1m7FN_xnvQ -zS6Zcwa5}Tx`r{J?@PKeV|CqrKw{UrZ7=D|1cdd!^U$2Ax{qH$}_caf`5DPrI2m)|B -zZE4$fSsA+rkwmtcrJ_XwJ47Hff1U+m6`%wF`g59;+r#OSMvIeCZCz44r3?-8_HMbq -z`Valpuc+3P=%u)pH&6BFilUf@gL|??y8S?hw7wF;j*6s5r^bgKo3y@88Rin0WK_^=-@SH#{#dm%jaHr4#wZl -z2?9sO!@i~8JYHU7%^)AtzPps6ZF%<21U7RN#c9tJ`}?hUhWVGl`+B3KeUC4!Zn7e16)f+SCNN^P@zZsS*iSNC&Wc(W4K43+8H -z0=K0R3y!EIQV^GF4TYpYBeP13hJK57S4Z!#!Cef$9MY;r(<){io@E(P5;#q%6&mw# -z^25e$CR=M(BED~!gwFO%M0Ja)#a9-`nG8rifqjtC7hauZ^{?S0F30&3W(l$0|Dmez -zK9y~C4bbQHMk;wz8Q0Y+TgnWX7Q<8v_pRwCn -zF`FBq<)^tf2cJSAQG79WHy%xVk9mn}(71uA6=9_>2=zZIuW+6oTH!W!;O?<*s5s@d -z^L8l0Q^sER(LBd!xB|F4*59emP|CT|)_lFo+q^}re0HediGp^D9sh4SZ~81nyf-a4 -z;fPc?QcjSqXti3d^A>9~3JQcCq~*sv;KyY&V!2eltlO!Nh~hD-?=dHghbofY;~y>x -z3@0>R;hUtwt9jQ>kT2C97=PR!l>ciL_GqA|UB6{by0XId<|_~Oz%kx-cwmWkVNBW{ -zd`w)iW)qe3;D|_+{^AtD(?qxDYo2iSMCvmuGa++%x_vr+>~Hbu+ar2h8K+B5q%#`@3b6m?rn9@iQ>{!!_ioOW?{ck(NE -z;%=Tj@@?0~6gT?YuEx5>NAd54lR9jhdr~gL4Gbo{8%^~;yOmWRNeH8_wts)QL|yaj -zpv2{F!Dv+v{ICs8aahMcbnC>f*T+gaq45`=a70sOZF8Mj;S!rpm*7;u197^=<@YFz -zo&h^Di|vu`o+N;W;V2h9q$Ekmcly!bk-p^09nvI+N*%@r1n66H)p`i2;xoa_X@nv^ -zxc^;wBS3ID4_0WK-KlK$kj;}_RBx&JBCp4#zWtY7nbM<&*xP$>D -z%>^ard?n~5CrL95nVCHe@9uARKT+L1U46Q%s_FWl=bY-yFK*lQ^@I@CZszpo&KjH4 -zs-v_Y7R#+y=Bn3j^UN6ni{HItoy8QDn%8tj?Uu^F{yq@qAtXOWl35`8r~%_%;x}pF -zRib=-LB0dyc=;BZZ8bG4*2-irl&W2XDvwWqJ|9P>64BMvl&pwI4?BTC?)9tr^-rUI<*g=f0aQ -zMdqZ=yc<^MW@4GR@J@t!S`x~K>-%e-TYHcjB|x0+{Bajnxv3XjeV_i!Z&mr`e36cApsPM@$!fK5D8Th*OaEp@^3F7dxbi4{3gV -zIPhOR<7Dhn%2egE%}WU7VjS% -zuDm9WOi6TYWU;Nn9*Szt^U7N+@UNw;&rgyi>);#JA!~1qwuKee)XAz?*X*a2b&4=X -za?cFBq2*-b8I`Ma=zxUG{GRqcIYvU)Lt!` -zwalYmBB|wK7u55mRb}<$zsiuFcU#uLZD?$ViZYe;$ewCk(o}%|wJ%;J7OCW^qT)mK -z?b*WHCaL7Pq6w5KyXD@ARORaqJoK(k0tW2WQoS(P9r)>qQ{D7|!q#tLY})>M#5V7s -z8Pma&D;gElJRLTbrr0Ul7CSewL}B^el+b`z^Vall?@d@zQO6&#Y=TY->wN;WpKOYV)w)D|vk#{%Z@+6R~<n -zQJLSd^=LuQ?A7-~2m6Tp!_?*uF?Hd~shiA)jBnNUgeKS;O5Q)TrW6l$Z(lqQ~=OHC)l* -zbR*@#|2xv2-rFhr@i@9jg|P8Zu-gGIHW0{cL9Z7wuMy4K0X@qJkZ^~z|DZwAT^mgp$8$Q#;BKf@12&HN3c%?jl2T5;%g8-y=w)2 -z@1Bims)%MxdC<9g$)GUFSWOw>rT{p%a5VUs?$|AgJMO+EW%a+xX!XoA5#8;l%ey>xQi)s5BD^S&ef -zvVmG+398@|@Z;`+HPQGkbgJd~z+Z0m>bo}u_nrAAPf4BzM-jI^z?`fopc5K@Tm8jV -zG%D*qU~~%ie7*EM=JoiWa*us@5=}MV5fKugK7zIAgd0R4D{Cp#mmY@+6H^9VyBVtB -z;t3Owo;Uskq%<`<3SY(j1!Z=$N_Ys29qnNi$=nO4Eay6$SN1o7T-_&!b4!zq)f3s^ -zc_a?G`N{9Yc{ld-KJc3jf%oT*=9Dx20eGB^|MqHp4Ic4WUnxOqADONj9bay1eCNFR -z$c?wzQ2`kq?s2%{$W|5P0d`p?x@}+Ds#U!SEWlE%bS3Q>&GV#(S2{I;LtL^BjdTKD -zBWr1>n0y1UJFPg6nUoqJ@WA&4uu}orj~NB{;043ew=GE*2}T4a4%gSj@r*^E -zeNa@U5p$B7@8T(oPR-wlBNza#D-&3#0g7g~AJ?g0E)tQs5XaVje@+t_$r!$&+ui%r -zXaS#oc$qc=kQpJ2*H7eL)A?HBZob^*7%5l>r`!QxxQMvBDlXA~$0joCXfV#LN!I;e -z=x+DkrhanBhWzO=uonEr{_0vYaPt7|;*Il**G<6l1{4`(y@IzexHVGw#%a1k!x)yw -z!(5QZRh>U81-%Exj+fzS!`lqStLz>~{J5+s>ui?=^yv$Q+>H)_2Ac{1zC?i_EJf;pOet -z8pxZN+pzoP!7K1>Z9txSbkNaaBB4xa8Kb)B9ZF-z@;PepRK^+Ek2xI~ -zsz-{7`mv^*sZ@1`EN3_mbcfVaJlQ`UBAa5M#&@M7O#?h)ryf@EMm2<$Z94;a;?&x=SNFHU_ -z!t0}Pxved1qQT!vrlyGWmB-eY`+J|VW?-kH@oUWLNV!mZqi!q?3wa~|Eb24X5VIdE -z`x5LeZ#1#~Qc8(^^8k{MROM=KQhN@k>#??^B=dZ@$~66AFlS}2@1LvU3!1-=v|L-Y -zW~{lRX((8Koyj~>H+RKwc7PK;#0s>=2&P#&t!srM-NkN}yYXyTW!Jg(RM3u{B#}5Lxg2L6%C7a* -zhmy_jWT&W7R`E$KoP|Db+Jj=r4O1~xL-S>|7ejxFB=aa`B^qyG`J$2P7@C4%PKV*J;4kd8vAFV1Jo+^%ipovLTzvdr$Yp2Uk>kb0v=?RUJe -z{zW<$jOSmFC@7`X+1^ -z|8|SRaPx=B>haq+9T=o0aIR56l!an)bDHa<5I=if;@?f`KZ1}YvJA62=~B#RY@G+- -zY;DxMP1pl!VX>_dUNPGmz6;Vo5-D+R`OQB87kq85+4w?~xpAv1-7~`H$!{k_+jol4Nk;Lomg=^? -zpDYo5hE*R;Kd%1<=UeHSu7M;wFl=3xV&CJy=(cI@pIYEGaa)J)#kW-@{~6X_RbJE$ -zy}zo0Vf{VBc;0{Nu6^s?Eq$G=htwG3W+utORe$zvuYKde4`g20Z?uIBd(sX)Z}t3P -zRrU;)j@2kozJ9ML$fY#lSdJ7;khXQz@OA%nGE7<`bcSNGsr!BWPSva#Ngg|~R_i2k -z(cc?UkKtl60q44Nu7C?gu~Nj0jy(2#>=h=Wmy3MXJLhABPEL%1-%MP3g_CH^9Wk)Q -zs8Xc4cHxg9$73>9ZTW&iq>A&dBc#bD!ouDv6-hmD4Jt@R&uVkC?TG}<-y3N9LOh`{9v`v&xHCS->?P)x=*aHmixv1CDKT5`&jhKMv=aT`N$tW> -z=#Qjohj<3u&4% -zC#shscWblQVv5^lkiVmjj~*JkcjJSFjQ+wi!n=Y|T)_rhM@pA_xI=hjC(IWYVJHbJ -z-ulWP{n2yMV-3qcHwgKAy0?GDWV^g6INq8EOMMS=a$Ils9t_X_5hRU4lBOhh>vF#j -zyTqg5bF?b(`w2vrx;`H>_qg{#6epHlJ$>JRI6_e17LeCti%e`S5gDIR9-D#Iaez0T^ -zpF`JS$QK}YQ9QFzuW2Zcg?JoPtLcsytKM`u)j2B-4Wu5!cvGvjT+hfL&M@O?S*qFV -z$fFp3tebiH>+TtRY=vvQdhdzaTkWu7_gCdSn$3Zel_`-ZBr}d>u73Q|>R1Pon4(*! -zP{h~E9w*kn^d+x}2O41LSB6F8i{rY@Jc|_WBElVeNNPjNT)p^_OX@2=ypeR4yD8K3 -z5&Ec{@$+^cBT9o~<_Kl7D1}{7nNJY~E4ckUaz&F19gO}pu}bD{Cn%#HKD0i@hds1W -zK&f?zQdGgLSvTH=YEY#Ill}D5d3!!~&N$WjKH;nDJAfcaa~V4yUUXmwV6;{<*2k_< -ztasKcB{?udW=JSrM6B(XJ$mbt8V6temqYU{Cj`H|$^JPNS&$(3jvjO3n@}tSjCl_B -zM;6SbuvT(%adN78gZeg~99giqQg2!^(NX@S!R6cJ!UzF4ZFiKGj5 -zGFM4XJHfv+PFbz>-A6m!L%{dsavAq(?=eMZySJ#m4r+sXxw))==`U)YO9WgyvcT$7 -zADsk&g*m@kqDO@Cn?BxkF}$t?`4qdOhi7c;aVw1@IfqwBdA%7@2fUry`~L(P1U2`m)eB< -z1h=*eH71qQ2~*QF&4LN6@M#G9<{>3Pu7K?{?VKq7hjwerQUt$;((d8m`*y~m3$nj< -zgx0OyGu`&7>$SkU9N8J`Yvj6PckVb|llMZVMUUsVHXuA!0&l`VJsdA0Dy2YKHB#w7 -zj|nw-!XWu;?z;C?2X*050iA`uat{QTwx#-X+}vD;$J?dFj_nT}1pcCJXC!aQE6goj -zCpN_fcwZF+OnV}!75~9}zT#yf3##@ib@gK6q8wK&UflaMpxP@cTXALn=c4O1kf^uA -z9jGamxkcOqlntNDa;FS&HVB~YMycV4*{?91eseUPXogZklv>l#`cK>K>6*9HMX70* -zcduXa`xEj;-QZ_&nZKf1UZ-V>O<=4#+HR)7`EZmN>aJ46vHO#$@NK(mfR8Did|bhY -z5&pG436rZdfvxR!Bm4Mzbr3De)$p!*y=5-FPlLjA^;=qyZ+^v^?J4WO%ZC@GLW&*z -z#b{vO*5P)hn>T8|rQ#H8GG7K+(MSHYs57It;DxW==D|fa{?R_RT!jirJ>$Hed;wR1 -zV}>TR8n!oO=D0v;SDEZ`?h*zH+Q+rXjUN}w`uhkj5vPW97EL@cq|8LrW)HnJvtfbo -z#M=1&!mah%W$;sK8r2e6z@E^D^B#ERi&UzIcWrg3c|^FoKD=+osNm<}g=Y_c -zPM`o()@~mB8GR;apm9u@d)`UbK>%!xZ`M}|Onhrr+G4Q-m;oZ}Yg|?kF=^miOYvGBlXPIWM -z6yY*!0Q-lYmXv*0#wbj;(m}`w0t8}w_8w`*+5J5xLxdI6g<(5eV{8VNIA{yBx$(_A$mZ$YEJ8c&i@7ku8>6ir;;PRM=YaSs>WX -zV~s@T2+gmpdoPaV!(@C>rx1i|Zp;Sb`zM^79wO45!2n~-wh1{1*kPzuysb|h|{yv-TVcsco;l88r-0?3oswZwp{b>1U_smPmfBS=c -zRicY&$w{pgI-5xAW5=mf!kXoB6+J62W3YtNFKE}xe+5 -zDsSuSbu`pB+F1`@mXZ~(PGIKA`^bk{K4Ql-D@xOF{(NA#ZJgRDLKA6 -zf+isb!(AZaS-cWWk(C*S&zAPJIqG;dh+JL~XgFU>b -z&QI5jj<8agT}tPt~-S- -b&=!Yol6%P;{v@(L85Lyi`_3fb6UBc4C!SUG - -literal 0 -HcmV?d00001 - diff --git a/patches/grub/2.02~beta3/series b/patches/grub/2.02~beta3/series deleted file mode 100644 index 181b6128a..000000000 --- a/patches/grub/2.02~beta3/series +++ /dev/null @@ -1,5 +0,0 @@ -# This series applies on GIT commit 11d83cf98780871e4adfabc0314ab48fe748ccda -set-default-graphics-mode-to-text.patch -disable-build-of-documentation.patch -gcc6-use-no-pie-compiler-flag.patch -include-compatible-unifont-bdf.patch diff --git a/patches/grub/2.02~beta3/set-default-graphics-mode-to-text.patch b/patches/grub/2.02~beta3/set-default-graphics-mode-to-text.patch deleted file mode 100644 index 206f91dd9..000000000 --- a/patches/grub/2.02~beta3/set-default-graphics-mode-to-text.patch +++ /dev/null @@ -1,27 +0,0 @@ -set default graphics mode to text - -# This file is derived from https://github.com/opencomputeproject/onie/blob/master/patches/grub/e4a1fe391/set-default-graphics-mode-to-text.patch -Copyright (C) 2016 Pankaj Bansal - -SPDX-License-Identifier: GPL-2.0 - -For EFI set the default graphics mode to text. - -This supresses an ugly, but harmless message about no video mode -found. - -diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index fddcc46..4598392 100644 ---- a/grub-core/loader/i386/linux.c -+++ b/grub-core/loader/i386/linux.c -@@ -45,8 +45,8 @@ GRUB_MOD_LICENSE ("GPLv3+"); - #ifdef GRUB_MACHINE_EFI - #include - #define HAS_VGA_TEXT 0 --#define DEFAULT_VIDEO_MODE "auto" --#define ACCEPTS_PURE_TEXT 0 -+#define DEFAULT_VIDEO_MODE "text" -+#define ACCEPTS_PURE_TEXT 1 - #elif defined (GRUB_MACHINE_IEEE1275) - #include - #define HAS_VGA_TEXT 0 diff --git a/patches/grub/2.04/CVE-2020-10713.patch b/patches/grub/2.04/CVE-2020-10713.patch deleted file mode 100644 index d2eba42cc..000000000 --- a/patches/grub/2.04/CVE-2020-10713.patch +++ /dev/null @@ -1,68 +0,0 @@ -From 705b89f19fff03054f7167e1785461492688d61b Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Wed, 15 Apr 2020 15:45:02 -0400 -Subject: yylex: Make lexer fatal errors actually be fatal - -When presented with a command that can't be tokenized to anything -smaller than YYLMAX characters, the parser calls YY_FATAL_ERROR(errmsg), -expecting that will stop further processing, as such: - - #define YY_DO_BEFORE_ACTION \ - yyg->yytext_ptr = yy_bp; \ - yyleng = (int) (yy_cp - yy_bp); \ - yyg->yy_hold_char = *yy_cp; \ - *yy_cp = '\0'; \ - if ( yyleng >= YYLMAX ) \ - YY_FATAL_ERROR( "token too large, exceeds YYLMAX" ); \ - yy_flex_strncpy( yytext, yyg->yytext_ptr, yyleng + 1 , yyscanner); \ - yyg->yy_c_buf_p = yy_cp; - -The code flex generates expects that YY_FATAL_ERROR() will either return -for it or do some form of longjmp(), or handle the error in some way at -least, and so the strncpy() call isn't in an "else" clause, and thus if -YY_FATAL_ERROR() is *not* actually fatal, it does the call with the -questionable limit, and predictable results ensue. - -Unfortunately, our implementation of YY_FATAL_ERROR() is: - - #define YY_FATAL_ERROR(msg) \ - do { \ - grub_printf (_("fatal error: %s\n"), _(msg)); \ - } while (0) - -The same pattern exists in yyless(), and similar problems exist in users -of YY_INPUT(), several places in the main parsing loop, -yy_get_next_buffer(), yy_load_buffer_state(), yyensure_buffer_stack, -yy_scan_buffer(), etc. - -All of these callers expect YY_FATAL_ERROR() to actually be fatal, and -the things they do if it returns after calling it are wildly unsafe. - -Fixes: CVE-2020-10713 - -Signed-off-by: Peter Jones -Reviewed-by: Daniel Kiper - -Patch-Name: CVE-2020-10713.patch ---- - grub-core/script/yylex.l | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/grub-core/script/yylex.l b/grub-core/script/yylex.l -index 7b44c37b7..b7203c823 100644 ---- a/grub-core/script/yylex.l -+++ b/grub-core/script/yylex.l -@@ -37,11 +37,11 @@ - - /* - * As we don't have access to yyscanner, we cannot do much except to -- * print the fatal error. -+ * print the fatal error and exit. - */ - #define YY_FATAL_ERROR(msg) \ - do { \ -- grub_printf (_("fatal error: %s\n"), _(msg)); \ -+ grub_fatal (_("fatal error: %s\n"), _(msg));\ - } while (0) - - #define COPY(str, hint) \ diff --git a/patches/grub/2.04/at_keyboard-module-init.patch b/patches/grub/2.04/at_keyboard-module-init.patch deleted file mode 100644 index af7fd2300..000000000 --- a/patches/grub/2.04/at_keyboard-module-init.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 274c57260b4b599874e9ede10ea417b7bb7c98e2 Mon Sep 17 00:00:00 2001 -From: Jeroen Dekkers -Date: Sat, 12 Jan 2019 21:02:18 +0100 -Subject: at_keyboard: initialize keyboard in module init if keyboard is ready - -The change in 0c62a5b2 caused at_keyboard to fail on some -machines. Immediately initializing the keyboard in the module init if -the keyboard is ready makes the problem go away. - -Bug-Debian: https://bugs.debian.org/741464 -Last-Update: 2019-02-09 - -Patch-Name: at_keyboard-module-init.patch ---- - grub-core/term/at_keyboard.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/grub-core/term/at_keyboard.c b/grub-core/term/at_keyboard.c -index f0a986eb1..d4395c201 100644 ---- a/grub-core/term/at_keyboard.c -+++ b/grub-core/term/at_keyboard.c -@@ -244,6 +244,14 @@ grub_at_keyboard_getkey (struct grub_term_input *term __attribute__ ((unused))) - return ret; - } - -+static grub_err_t -+grub_keyboard_controller_mod_init (struct grub_term_input *term __attribute__ ((unused))) { -+ if (KEYBOARD_COMMAND_ISREADY (grub_inb (KEYBOARD_REG_STATUS))) -+ grub_keyboard_controller_init (); -+ -+ return GRUB_ERR_NONE; -+} -+ - static void - grub_keyboard_controller_init (void) - { -@@ -314,6 +322,7 @@ grub_at_restore_hw (void) - static struct grub_term_input grub_at_keyboard_term = - { - .name = "at_keyboard", -+ .init = grub_keyboard_controller_mod_init, - .fini = grub_keyboard_controller_fini, - .getkey = grub_at_keyboard_getkey - }; diff --git a/patches/grub/2.04/bash-completion-drop-have-checks.patch b/patches/grub/2.04/bash-completion-drop-have-checks.patch deleted file mode 100644 index 05aeb4775..000000000 --- a/patches/grub/2.04/bash-completion-drop-have-checks.patch +++ /dev/null @@ -1,143 +0,0 @@ -From 2e8913f8b9759a926cae0b07c112e42e03621bac Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Fri, 16 Nov 2018 16:37:02 +0000 -Subject: bash-completion: Drop "have" checks - -These don't work with and aren't needed by dynamically-loaded -completions. - -Bug-Debian: https://bugs.debian.org/912852 -Forwarded: no -Last-Update: 2018-11-16 - -Patch-Name: bash-completion-drop-have-checks.patch ---- - .../bash-completion.d/grub-completion.bash.in | 39 +++++++------------ - 1 file changed, 13 insertions(+), 26 deletions(-) - -diff --git a/util/bash-completion.d/grub-completion.bash.in b/util/bash-completion.d/grub-completion.bash.in -index 44bf135b9..d4235e7ef 100644 ---- a/util/bash-completion.d/grub-completion.bash.in -+++ b/util/bash-completion.d/grub-completion.bash.in -@@ -166,13 +166,11 @@ _grub_set_entry () { - } - - __grub_set_default_program="@grub_set_default@" --have ${__grub_set_default_program} && \ -- complete -F _grub_set_entry -o filenames ${__grub_set_default_program} -+complete -F _grub_set_entry -o filenames ${__grub_set_default_program} - unset __grub_set_default_program - - __grub_reboot_program="@grub_reboot@" --have ${__grub_reboot_program} && \ -- complete -F _grub_set_entry -o filenames ${__grub_reboot_program} -+complete -F _grub_set_entry -o filenames ${__grub_reboot_program} - unset __grub_reboot_program - - -@@ -198,8 +196,7 @@ _grub_editenv () { - } - - __grub_editenv_program="@grub_editenv@" --have ${__grub_editenv_program} && \ -- complete -F _grub_editenv -o filenames ${__grub_editenv_program} -+complete -F _grub_editenv -o filenames ${__grub_editenv_program} - unset __grub_editenv_program - - -@@ -219,8 +216,7 @@ _grub_mkconfig () { - fi - } - __grub_mkconfig_program="@grub_mkconfig@" --have ${__grub_mkconfig_program} && \ -- complete -F _grub_mkconfig -o filenames ${__grub_mkconfig_program} -+complete -F _grub_mkconfig -o filenames ${__grub_mkconfig_program} - unset __grub_mkconfig_program - - -@@ -254,13 +250,11 @@ _grub_setup () { - } - - __grub_bios_setup_program="@grub_bios_setup@" --have ${__grub_bios_setup_program} && \ -- complete -F _grub_setup -o filenames ${__grub_bios_setup_program} -+complete -F _grub_setup -o filenames ${__grub_bios_setup_program} - unset __grub_bios_setup_program - - __grub_sparc64_setup_program="@grub_sparc64_setup@" --have ${__grub_sparc64_setup_program} && \ -- complete -F _grub_setup -o filenames ${__grub_sparc64_setup_program} -+complete -F _grub_setup -o filenames ${__grub_sparc64_setup_program} - unset __grub_sparc64_setup_program - - -@@ -305,8 +299,7 @@ _grub_install () { - fi - } - __grub_install_program="@grub_install@" --have ${__grub_install_program} && \ -- complete -F _grub_install -o filenames ${__grub_install_program} -+complete -F _grub_install -o filenames ${__grub_install_program} - unset __grub_install_program - - -@@ -327,8 +320,7 @@ _grub_mkfont () { - fi - } - __grub_mkfont_program="@grub_mkfont@" --have ${__grub_mkfont_program} && \ -- complete -F _grub_mkfont -o filenames ${__grub_mkfont_program} -+complete -F _grub_mkfont -o filenames ${__grub_mkfont_program} - unset __grub_mkfont_program - - -@@ -358,8 +350,7 @@ _grub_mkrescue () { - fi - } - __grub_mkrescue_program="@grub_mkrescue@" --have ${__grub_mkrescue_program} && \ -- complete -F _grub_mkrescue -o filenames ${__grub_mkrescue_program} -+complete -F _grub_mkrescue -o filenames ${__grub_mkrescue_program} - unset __grub_mkrescue_program - - -@@ -400,8 +391,7 @@ _grub_mkimage () { - fi - } - __grub_mkimage_program="@grub_mkimage@" --have ${__grub_mkimage_program} && \ -- complete -F _grub_mkimage -o filenames ${__grub_mkimage_program} -+complete -F _grub_mkimage -o filenames ${__grub_mkimage_program} - unset __grub_mkimage_program - - -@@ -422,8 +412,7 @@ _grub_mkpasswd_pbkdf2 () { - fi - } - __grub_mkpasswd_pbkdf2_program="@grub_mkpasswd_pbkdf2@" --have ${__grub_mkpasswd_pbkdf2_program} && \ -- complete -F _grub_mkpasswd_pbkdf2 -o filenames ${__grub_mkpasswd_pbkdf2_program} -+complete -F _grub_mkpasswd_pbkdf2 -o filenames ${__grub_mkpasswd_pbkdf2_program} - unset __grub_mkpasswd_pbkdf2_program - - -@@ -460,8 +449,7 @@ _grub_probe () { - fi - } - __grub_probe_program="@grub_probe@" --have ${__grub_probe_program} && \ -- complete -F _grub_probe -o filenames ${__grub_probe_program} -+complete -F _grub_probe -o filenames ${__grub_probe_program} - unset __grub_probe_program - - -@@ -482,8 +470,7 @@ _grub_script_check () { - fi - } - __grub_script_check_program="@grub_script_check@" --have ${__grub_script_check_program} && \ -- complete -F _grub_script_check -o filenames ${__grub_script_check_program} -+complete -F _grub_script_check -o filenames ${__grub_script_check_program} - - - # Local variables: diff --git a/patches/grub/2.04/blacklist-1440x900x32.patch b/patches/grub/2.04/blacklist-1440x900x32.patch deleted file mode 100644 index 2562e93cf..000000000 --- a/patches/grub/2.04/blacklist-1440x900x32.patch +++ /dev/null @@ -1,34 +0,0 @@ -From e36b83c8b3b320365deddc2a3df266a57857fda7 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:11 +0000 -Subject: Blacklist 1440x900x32 from VBE preferred mode handling - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/701111 -Forwarded: no -Last-Update: 2013-11-14 - -Patch-Name: blacklist-1440x900x32.patch ---- - grub-core/video/i386/pc/vbe.c | 9 +++++++++ - 1 file changed, 9 insertions(+) - -diff --git a/grub-core/video/i386/pc/vbe.c b/grub-core/video/i386/pc/vbe.c -index b7f911926..4b1bd7d5e 100644 ---- a/grub-core/video/i386/pc/vbe.c -+++ b/grub-core/video/i386/pc/vbe.c -@@ -1054,6 +1054,15 @@ grub_video_vbe_setup (unsigned int width, unsigned int height, - || vbe_mode_info.y_resolution > height) - /* Resolution exceeds that of preferred mode. */ - continue; -+ -+ /* Blacklist 1440x900x32 from preferred mode handling until a -+ better solution is available. This mode causes problems on -+ many Thinkpads. See: -+ https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/701111 */ -+ if (vbe_mode_info.x_resolution == 1440 && -+ vbe_mode_info.y_resolution == 900 && -+ vbe_mode_info.bits_per_pixel == 32) -+ continue; - } - else - { diff --git a/patches/grub/2.04/bootp-alloc.patch b/patches/grub/2.04/bootp-alloc.patch deleted file mode 100644 index 84e499ba1..000000000 --- a/patches/grub/2.04/bootp-alloc.patch +++ /dev/null @@ -1,29 +0,0 @@ -From d8c9aaa767a83470147c843acc6d97f70140ebdf Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Fri, 24 Jul 2020 11:24:28 +0100 -Subject: bootp: Improve allocation handling in parse_dhcp6_option - -This adjusts Debian's net_bootp6 patch to perform safe allocation. (In -practice this isn't a security problem because `ln` is 16 bits so it -can't overflow after promotion to 32 bits.) - -Signed-off-by: Colin Watson - -Patch-Name: bootp-alloc.patch ---- - grub-core/net/bootp.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c -index dd0ffcdae..efa92b89b 100644 ---- a/grub-core/net/bootp.c -+++ b/grub-core/net/bootp.c -@@ -857,7 +857,7 @@ parse_dhcp6_option (const struct grub_net_dhcp6_option *opt, void *data) - break; - } - dhcp6->num_dns_server = ln = len >> 4; -- dhcp6->dns_server_addrs = la = grub_zalloc (ln * sizeof (*la)); -+ dhcp6->dns_server_addrs = la = grub_calloc (ln, sizeof (*la)); - - for (po = opt->data; ln > 0; po += 0x10, la++, ln--) - { diff --git a/patches/grub/2.04/bootp-new-net_bootp6-command.patch b/patches/grub/2.04/bootp-new-net_bootp6-command.patch deleted file mode 100644 index 63836a5c5..000000000 --- a/patches/grub/2.04/bootp-new-net_bootp6-command.patch +++ /dev/null @@ -1,1117 +0,0 @@ -From e1a872b0277a1c405bc7120b89e70001a60a6d12 Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 27 Oct 2016 17:41:04 -0400 -Subject: bootp: New net_bootp6 command - -Implement new net_bootp6 command for IPv6 network auto configuration via the -DHCPv6 protocol (RFC3315). - -Signed-off-by: Michael Chang -Signed-off-by: Ken Lin - -Patch-Name: bootp-new-net_bootp6-command.patch ---- - grub-core/net/bootp.c | 908 +++++++++++++++++++++++++++++++++++++++++- - grub-core/net/ip.c | 39 ++ - include/grub/net.h | 72 ++++ - 3 files changed, 1018 insertions(+), 1 deletion(-) - -diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c -index 04cfbb045..21c1824ef 100644 ---- a/grub-core/net/bootp.c -+++ b/grub-core/net/bootp.c -@@ -24,6 +24,98 @@ - #include - #include - #include -+#include -+#include -+ -+static int -+dissect_url (const char *url, char **proto, char **host, char **path) -+{ -+ const char *p, *ps; -+ grub_size_t l; -+ -+ *proto = *host = *path = NULL; -+ ps = p = url; -+ -+ while ((p = grub_strchr (p, ':'))) -+ { -+ if (grub_strlen (p) < sizeof ("://") - 1) -+ break; -+ if (grub_memcmp (p, "://", sizeof ("://") - 1) == 0) -+ { -+ l = p - ps; -+ *proto = grub_malloc (l + 1); -+ if (!*proto) -+ { -+ grub_print_error (); -+ return 0; -+ } -+ -+ grub_memcpy (*proto, ps, l); -+ (*proto)[l] = '\0'; -+ p += sizeof ("://") - 1; -+ break; -+ } -+ ++p; -+ } -+ -+ if (!*proto) -+ { -+ grub_dprintf ("bootp", "url: %s is not valid, protocol not found\n", url); -+ return 0; -+ } -+ -+ ps = p; -+ p = grub_strchr (p, '/'); -+ -+ if (!p) -+ { -+ grub_dprintf ("bootp", "url: %s is not valid, host/path not found\n", url); -+ grub_free (*proto); -+ *proto = NULL; -+ return 0; -+ } -+ -+ l = p - ps; -+ -+ if (l > 2 && ps[0] == '[' && ps[l - 1] == ']') -+ { -+ *host = grub_malloc (l - 1); -+ if (!*host) -+ { -+ grub_print_error (); -+ grub_free (*proto); -+ *proto = NULL; -+ return 0; -+ } -+ grub_memcpy (*host, ps + 1, l - 2); -+ (*host)[l - 2] = 0; -+ } -+ else -+ { -+ *host = grub_malloc (l + 1); -+ if (!*host) -+ { -+ grub_print_error (); -+ grub_free (*proto); -+ *proto = NULL; -+ return 0; -+ } -+ grub_memcpy (*host, ps, l); -+ (*host)[l] = 0; -+ } -+ -+ *path = grub_strdup (p); -+ if (!*path) -+ { -+ grub_print_error (); -+ grub_free (*host); -+ grub_free (*proto); -+ *host = NULL; -+ *proto = NULL; -+ return 0; -+ } -+ return 1; -+} - - struct grub_dhcp_discover_options - { -@@ -563,6 +655,578 @@ out: - return err; - } - -+/* The default netbuff size for sending DHCPv6 packets which should be -+ large enough to hold the information */ -+#define GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE 512 -+ -+struct grub_dhcp6_options -+{ -+ grub_uint8_t *client_duid; -+ grub_uint16_t client_duid_len; -+ grub_uint8_t *server_duid; -+ grub_uint16_t server_duid_len; -+ grub_uint32_t iaid; -+ grub_uint32_t t1; -+ grub_uint32_t t2; -+ grub_net_network_level_address_t *ia_addr; -+ grub_uint32_t preferred_lifetime; -+ grub_uint32_t valid_lifetime; -+ grub_net_network_level_address_t *dns_server_addrs; -+ grub_uint16_t num_dns_server; -+ char *boot_file_proto; -+ char *boot_file_server_ip; -+ char *boot_file_path; -+}; -+ -+typedef struct grub_dhcp6_options *grub_dhcp6_options_t; -+ -+struct grub_dhcp6_session -+{ -+ struct grub_dhcp6_session *next; -+ struct grub_dhcp6_session **prev; -+ grub_uint32_t iaid; -+ grub_uint32_t transaction_id:24; -+ grub_uint64_t start_time; -+ struct grub_net_dhcp6_option_duid_ll duid; -+ struct grub_net_network_level_interface *iface; -+ -+ /* The associated dhcpv6 options */ -+ grub_dhcp6_options_t adv; -+ grub_dhcp6_options_t reply; -+}; -+ -+typedef struct grub_dhcp6_session *grub_dhcp6_session_t; -+ -+typedef void (*dhcp6_option_hook_fn) (const struct grub_net_dhcp6_option *opt, void *data); -+ -+static void -+foreach_dhcp6_option (const struct grub_net_dhcp6_option *opt, grub_size_t size, -+ dhcp6_option_hook_fn hook, void *hook_data); -+ -+static void -+parse_dhcp6_iaaddr (const struct grub_net_dhcp6_option *opt, void *data) -+{ -+ grub_dhcp6_options_t dhcp6 = (grub_dhcp6_options_t )data; -+ -+ grub_uint16_t code = grub_be_to_cpu16 (opt->code); -+ grub_uint16_t len = grub_be_to_cpu16 (opt->len); -+ -+ if (code == GRUB_NET_DHCP6_OPTION_IAADDR) -+ { -+ const struct grub_net_dhcp6_option_iaaddr *iaaddr; -+ iaaddr = (const struct grub_net_dhcp6_option_iaaddr *)opt->data; -+ -+ if (len < sizeof (*iaaddr)) -+ { -+ grub_dprintf ("bootp", "DHCPv6: code %u with insufficient length %u\n", code, len); -+ return; -+ } -+ if (!dhcp6->ia_addr) -+ { -+ dhcp6->ia_addr = grub_malloc (sizeof(*dhcp6->ia_addr)); -+ dhcp6->ia_addr->type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; -+ dhcp6->ia_addr->ipv6[0] = grub_get_unaligned64 (iaaddr->addr); -+ dhcp6->ia_addr->ipv6[1] = grub_get_unaligned64 (iaaddr->addr + 8); -+ dhcp6->preferred_lifetime = grub_be_to_cpu32 (iaaddr->preferred_lifetime); -+ dhcp6->valid_lifetime = grub_be_to_cpu32 (iaaddr->valid_lifetime); -+ } -+ } -+} -+ -+static void -+parse_dhcp6_option (const struct grub_net_dhcp6_option *opt, void *data) -+{ -+ grub_dhcp6_options_t dhcp6 = (grub_dhcp6_options_t)data; -+ grub_uint16_t code = grub_be_to_cpu16 (opt->code); -+ grub_uint16_t len = grub_be_to_cpu16 (opt->len); -+ -+ switch (code) -+ { -+ case GRUB_NET_DHCP6_OPTION_CLIENTID: -+ -+ if (dhcp6->client_duid || !len) -+ { -+ grub_dprintf ("bootp", "Skipped DHCPv6 CLIENTID with length %u\n", len); -+ break; -+ } -+ dhcp6->client_duid = grub_malloc (len); -+ grub_memcpy (dhcp6->client_duid, opt->data, len); -+ dhcp6->client_duid_len = len; -+ break; -+ -+ case GRUB_NET_DHCP6_OPTION_SERVERID: -+ -+ if (dhcp6->server_duid || !len) -+ { -+ grub_dprintf ("bootp", "Skipped DHCPv6 SERVERID with length %u\n", len); -+ break; -+ } -+ dhcp6->server_duid = grub_malloc (len); -+ grub_memcpy (dhcp6->server_duid, opt->data, len); -+ dhcp6->server_duid_len = len; -+ break; -+ -+ case GRUB_NET_DHCP6_OPTION_IA_NA: -+ { -+ const struct grub_net_dhcp6_option_iana *ia_na; -+ grub_uint16_t data_len; -+ -+ if (dhcp6->iaid || len < sizeof (*ia_na)) -+ { -+ grub_dprintf ("bootp", "Skipped DHCPv6 IA_NA with length %u\n", len); -+ break; -+ } -+ ia_na = (const struct grub_net_dhcp6_option_iana *)opt->data; -+ dhcp6->iaid = grub_be_to_cpu32 (ia_na->iaid); -+ dhcp6->t1 = grub_be_to_cpu32 (ia_na->t1); -+ dhcp6->t2 = grub_be_to_cpu32 (ia_na->t2); -+ -+ data_len = len - sizeof (*ia_na); -+ if (data_len) -+ foreach_dhcp6_option ((const struct grub_net_dhcp6_option *)ia_na->data, data_len, parse_dhcp6_iaaddr, dhcp6); -+ } -+ break; -+ -+ case GRUB_NET_DHCP6_OPTION_DNS_SERVERS: -+ { -+ const grub_uint8_t *po; -+ grub_uint16_t ln; -+ grub_net_network_level_address_t *la; -+ -+ if (!len || len & 0xf) -+ { -+ grub_dprintf ("bootp", "Skip invalid length DHCPv6 DNS_SERVERS \n"); -+ break; -+ } -+ dhcp6->num_dns_server = ln = len >> 4; -+ dhcp6->dns_server_addrs = la = grub_zalloc (ln * sizeof (*la)); -+ -+ for (po = opt->data; ln > 0; po += 0x10, la++, ln--) -+ { -+ la->type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; -+ la->ipv6[0] = grub_get_unaligned64 (po); -+ la->ipv6[1] = grub_get_unaligned64 (po + 8); -+ la->option = DNS_OPTION_PREFER_IPV6; -+ } -+ } -+ break; -+ -+ case GRUB_NET_DHCP6_OPTION_BOOTFILE_URL: -+ dissect_url ((const char *)opt->data, -+ &dhcp6->boot_file_proto, -+ &dhcp6->boot_file_server_ip, -+ &dhcp6->boot_file_path); -+ break; -+ -+ default: -+ break; -+ } -+} -+ -+static void -+foreach_dhcp6_option (const struct grub_net_dhcp6_option *opt, grub_size_t size, dhcp6_option_hook_fn hook, void *hook_data) -+{ -+ while (size) -+ { -+ grub_uint16_t code, len; -+ -+ if (size < sizeof (*opt)) -+ { -+ grub_dprintf ("bootp", "DHCPv6: Options stopped with remaining size %" PRIxGRUB_SIZE "\n", size); -+ break; -+ } -+ size -= sizeof (*opt); -+ len = grub_be_to_cpu16 (opt->len); -+ code = grub_be_to_cpu16 (opt->code); -+ if (size < len) -+ { -+ grub_dprintf ("bootp", "DHCPv6: Options stopped at out of bound length %u for option %u\n", len, code); -+ break; -+ } -+ if (!len) -+ { -+ grub_dprintf ("bootp", "DHCPv6: Options stopped at zero length option %u\n", code); -+ break; -+ } -+ else -+ { -+ if (hook) -+ hook (opt, hook_data); -+ size -= len; -+ opt = (const struct grub_net_dhcp6_option *)((grub_uint8_t *)opt + len + sizeof (*opt)); -+ } -+ } -+} -+ -+static grub_dhcp6_options_t -+grub_dhcp6_options_get (const struct grub_net_dhcp6_packet *v6h, -+ grub_size_t size) -+{ -+ grub_dhcp6_options_t options; -+ -+ if (size < sizeof (*v6h)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("DHCPv6 packet size too small")); -+ return NULL; -+ } -+ -+ options = grub_zalloc (sizeof(*options)); -+ if (!options) -+ return NULL; -+ -+ foreach_dhcp6_option ((const struct grub_net_dhcp6_option *)v6h->dhcp_options, -+ size - sizeof (*v6h), parse_dhcp6_option, options); -+ -+ return options; -+} -+ -+static void -+grub_dhcp6_options_free (grub_dhcp6_options_t options) -+{ -+ if (options->client_duid) -+ grub_free (options->client_duid); -+ if (options->server_duid) -+ grub_free (options->server_duid); -+ if (options->ia_addr) -+ grub_free (options->ia_addr); -+ if (options->dns_server_addrs) -+ grub_free (options->dns_server_addrs); -+ if (options->boot_file_proto) -+ grub_free (options->boot_file_proto); -+ if (options->boot_file_server_ip) -+ grub_free (options->boot_file_server_ip); -+ if (options->boot_file_path) -+ grub_free (options->boot_file_path); -+ -+ grub_free (options); -+} -+ -+static grub_dhcp6_session_t grub_dhcp6_sessions; -+#define FOR_DHCP6_SESSIONS(var) FOR_LIST_ELEMENTS (var, grub_dhcp6_sessions) -+ -+static void -+grub_net_configure_by_dhcp6_info (const char *name, -+ struct grub_net_card *card, -+ grub_dhcp6_options_t dhcp6, -+ int is_def, -+ int flags, -+ struct grub_net_network_level_interface **ret_inf) -+{ -+ grub_net_network_level_netaddress_t netaddr; -+ struct grub_net_network_level_interface *inf; -+ -+ if (dhcp6->ia_addr) -+ { -+ inf = grub_net_add_addr (name, card, dhcp6->ia_addr, &card->default_address, flags); -+ -+ netaddr.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; -+ netaddr.ipv6.base[0] = dhcp6->ia_addr->ipv6[0]; -+ netaddr.ipv6.base[1] = 0; -+ netaddr.ipv6.masksize = 64; -+ grub_net_add_route (name, netaddr, inf); -+ -+ if (ret_inf) -+ *ret_inf = inf; -+ } -+ -+ if (dhcp6->dns_server_addrs) -+ { -+ grub_uint16_t i; -+ -+ for (i = 0; i < dhcp6->num_dns_server; ++i) -+ grub_net_add_dns_server (dhcp6->dns_server_addrs + i); -+ } -+ -+ if (dhcp6->boot_file_path) -+ grub_env_set_net_property (name, "boot_file", dhcp6->boot_file_path, -+ grub_strlen (dhcp6->boot_file_path)); -+ -+ if (is_def && dhcp6->boot_file_server_ip) -+ { -+ grub_net_default_server = grub_strdup (dhcp6->boot_file_server_ip); -+ grub_env_set ("net_default_interface", name); -+ grub_env_export ("net_default_interface"); -+ } -+} -+ -+static void -+grub_dhcp6_session_add (struct grub_net_network_level_interface *iface, -+ grub_uint32_t iaid) -+{ -+ grub_dhcp6_session_t se; -+ struct grub_datetime date; -+ grub_err_t err; -+ grub_int32_t t = 0; -+ -+ se = grub_malloc (sizeof (*se)); -+ -+ err = grub_get_datetime (&date); -+ if (err || !grub_datetime2unixtime (&date, &t)) -+ { -+ grub_errno = GRUB_ERR_NONE; -+ t = 0; -+ } -+ -+ se->iface = iface; -+ se->iaid = iaid; -+ se->transaction_id = t; -+ se->start_time = grub_get_time_ms (); -+ se->duid.type = grub_cpu_to_be16_compile_time (3) ; -+ se->duid.hw_type = grub_cpu_to_be16_compile_time (1); -+ grub_memcpy (&se->duid.hwaddr, &iface->hwaddress.mac, sizeof (se->duid.hwaddr)); -+ se->adv = NULL; -+ se->reply = NULL; -+ grub_list_push (GRUB_AS_LIST_P (&grub_dhcp6_sessions), GRUB_AS_LIST (se)); -+} -+ -+static void -+grub_dhcp6_session_remove (grub_dhcp6_session_t se) -+{ -+ grub_list_remove (GRUB_AS_LIST (se)); -+ if (se->adv) -+ grub_dhcp6_options_free (se->adv); -+ if (se->reply) -+ grub_dhcp6_options_free (se->reply); -+ grub_free (se); -+} -+ -+static void -+grub_dhcp6_session_remove_all (void) -+{ -+ grub_dhcp6_session_t se; -+ -+ FOR_DHCP6_SESSIONS (se) -+ { -+ grub_dhcp6_session_remove (se); -+ se = grub_dhcp6_sessions; -+ } -+} -+ -+static grub_err_t -+grub_dhcp6_session_configure_network (grub_dhcp6_session_t se) -+{ -+ char *name; -+ -+ name = grub_xasprintf ("%s:dhcp6", se->iface->card->name); -+ if (!name) -+ return grub_errno; -+ -+ grub_net_configure_by_dhcp6_info (name, se->iface->card, se->reply, 1, 0, 0); -+ grub_free (name); -+ -+ return GRUB_ERR_NONE; -+} -+ -+static grub_err_t -+grub_dhcp6_session_send_request (grub_dhcp6_session_t se) -+{ -+ struct grub_net_buff *nb; -+ struct grub_net_dhcp6_option *opt; -+ struct grub_net_dhcp6_packet *v6h; -+ struct grub_net_dhcp6_option_iana *ia_na; -+ struct grub_net_dhcp6_option_iaaddr *iaaddr; -+ struct udphdr *udph; -+ grub_net_network_level_address_t multicast; -+ grub_net_link_level_address_t ll_multicast; -+ grub_uint64_t elapsed; -+ struct grub_net_network_level_interface *inf = se->iface; -+ grub_dhcp6_options_t dhcp6 = se->adv; -+ grub_err_t err = GRUB_ERR_NONE; -+ -+ multicast.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; -+ multicast.ipv6[0] = grub_cpu_to_be64_compile_time (0xff02ULL << 48); -+ multicast.ipv6[1] = grub_cpu_to_be64_compile_time (0x10002ULL); -+ -+ err = grub_net_link_layer_resolve (inf, &multicast, &ll_multicast); -+ if (err) -+ return err; -+ -+ nb = grub_netbuff_alloc (GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE); -+ -+ if (!nb) -+ return grub_errno; -+ -+ err = grub_netbuff_reserve (nb, GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ err = grub_netbuff_push (nb, dhcp6->client_duid_len + sizeof (*opt)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ opt = (struct grub_net_dhcp6_option *)nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_CLIENTID); -+ opt->len = grub_cpu_to_be16 (dhcp6->client_duid_len); -+ grub_memcpy (opt->data, dhcp6->client_duid , dhcp6->client_duid_len); -+ -+ err = grub_netbuff_push (nb, dhcp6->server_duid_len + sizeof (*opt)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ opt = (struct grub_net_dhcp6_option *)nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_SERVERID); -+ opt->len = grub_cpu_to_be16 (dhcp6->server_duid_len); -+ grub_memcpy (opt->data, dhcp6->server_duid , dhcp6->server_duid_len); -+ -+ err = grub_netbuff_push (nb, sizeof (*ia_na) + sizeof (*opt)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ if (dhcp6->ia_addr) -+ { -+ err = grub_netbuff_push (nb, sizeof(*iaaddr) + sizeof (*opt)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ } -+ opt = (struct grub_net_dhcp6_option *)nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IA_NA); -+ opt->len = grub_cpu_to_be16 (sizeof (*ia_na)); -+ if (dhcp6->ia_addr) -+ opt->len += grub_cpu_to_be16 (sizeof(*iaaddr) + sizeof (*opt)); -+ -+ ia_na = (struct grub_net_dhcp6_option_iana *)opt->data; -+ ia_na->iaid = grub_cpu_to_be32 (dhcp6->iaid); -+ -+ ia_na->t1 = grub_cpu_to_be32 (dhcp6->t1); -+ ia_na->t2 = grub_cpu_to_be32 (dhcp6->t2); -+ -+ if (dhcp6->ia_addr) -+ { -+ opt = (struct grub_net_dhcp6_option *)ia_na->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IAADDR); -+ opt->len = grub_cpu_to_be16 (sizeof (*iaaddr)); -+ iaaddr = (struct grub_net_dhcp6_option_iaaddr *)opt->data; -+ grub_set_unaligned64 (iaaddr->addr, dhcp6->ia_addr->ipv6[0]); -+ grub_set_unaligned64 (iaaddr->addr + 8, dhcp6->ia_addr->ipv6[1]); -+ -+ iaaddr->preferred_lifetime = grub_cpu_to_be32 (dhcp6->preferred_lifetime); -+ iaaddr->valid_lifetime = grub_cpu_to_be32 (dhcp6->valid_lifetime); -+ } -+ -+ err = grub_netbuff_push (nb, sizeof (*opt) + 2 * sizeof (grub_uint16_t)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ opt = (struct grub_net_dhcp6_option*) nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_ORO); -+ opt->len = grub_cpu_to_be16_compile_time (2 * sizeof (grub_uint16_t)); -+ grub_set_unaligned16 (opt->data, grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_BOOTFILE_URL)); -+ grub_set_unaligned16 (opt->data + 2, grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_DNS_SERVERS)); -+ -+ err = grub_netbuff_push (nb, sizeof (*opt) + sizeof (grub_uint16_t)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ opt = (struct grub_net_dhcp6_option*) nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_ELAPSED_TIME); -+ opt->len = grub_cpu_to_be16_compile_time (sizeof (grub_uint16_t)); -+ -+ /* the time is expressed in hundredths of a second */ -+ elapsed = grub_divmod64 (grub_get_time_ms () - se->start_time, 10, 0); -+ -+ if (elapsed > 0xffff) -+ elapsed = 0xffff; -+ -+ grub_set_unaligned16 (opt->data, grub_cpu_to_be16 ((grub_uint16_t)elapsed)); -+ -+ err = grub_netbuff_push (nb, sizeof (*v6h)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ v6h = (struct grub_net_dhcp6_packet *) nb->data; -+ v6h->message_type = GRUB_NET_DHCP6_REQUEST; -+ v6h->transaction_id = se->transaction_id; -+ -+ err = grub_netbuff_push (nb, sizeof (*udph)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ udph = (struct udphdr *) nb->data; -+ udph->src = grub_cpu_to_be16_compile_time (DHCP6_CLIENT_PORT); -+ udph->dst = grub_cpu_to_be16_compile_time (DHCP6_SERVER_PORT); -+ udph->chksum = 0; -+ udph->len = grub_cpu_to_be16 (nb->tail - nb->data); -+ -+ udph->chksum = grub_net_ip_transport_checksum (nb, GRUB_NET_IP_UDP, -+ &inf->address, -+ &multicast); -+ err = grub_net_send_ip_packet (inf, &multicast, &ll_multicast, nb, -+ GRUB_NET_IP_UDP); -+ -+ grub_netbuff_free (nb); -+ -+ return err; -+} -+ -+struct grub_net_network_level_interface * -+grub_net_configure_by_dhcpv6_reply (const char *name, -+ struct grub_net_card *card, -+ grub_net_interface_flags_t flags, -+ const struct grub_net_dhcp6_packet *v6h, -+ grub_size_t size, -+ int is_def, -+ char **device, char **path) -+{ -+ struct grub_net_network_level_interface *inf; -+ grub_dhcp6_options_t dhcp6; -+ -+ dhcp6 = grub_dhcp6_options_get (v6h, size); -+ if (!dhcp6) -+ { -+ grub_print_error (); -+ return NULL; -+ } -+ -+ grub_net_configure_by_dhcp6_info (name, card, dhcp6, is_def, flags, &inf); -+ -+ if (device && dhcp6->boot_file_proto && dhcp6->boot_file_server_ip) -+ { -+ *device = grub_xasprintf ("%s,%s", dhcp6->boot_file_proto, dhcp6->boot_file_server_ip); -+ grub_print_error (); -+ } -+ if (path && dhcp6->boot_file_path) -+ { -+ *path = grub_strdup (dhcp6->boot_file_path); -+ grub_print_error (); -+ if (*path) -+ { -+ char *slash; -+ slash = grub_strrchr (*path, '/'); -+ if (slash) -+ *slash = 0; -+ else -+ **path = 0; -+ } -+ } -+ -+ grub_dhcp6_options_free (dhcp6); -+ return inf; -+} -+ - /* - * This is called directly from net/ip.c:handle_dgram(), because those - * BOOTP/DHCP packets are a bit special due to their improper -@@ -631,6 +1295,77 @@ grub_net_process_dhcp (struct grub_net_buff *nb, - } - } - -+grub_err_t -+grub_net_process_dhcp6 (struct grub_net_buff *nb, -+ struct grub_net_card *card __attribute__ ((unused))) -+{ -+ const struct grub_net_dhcp6_packet *v6h; -+ grub_dhcp6_session_t se; -+ grub_size_t size; -+ grub_dhcp6_options_t options; -+ -+ v6h = (const struct grub_net_dhcp6_packet *) nb->data; -+ size = nb->tail - nb->data; -+ -+ options = grub_dhcp6_options_get (v6h, size); -+ if (!options) -+ return grub_errno; -+ -+ if (!options->client_duid || !options->server_duid || !options->ia_addr) -+ { -+ grub_dhcp6_options_free (options); -+ return grub_error (GRUB_ERR_BAD_ARGUMENT, "Bad DHCPv6 Packet"); -+ } -+ -+ FOR_DHCP6_SESSIONS (se) -+ { -+ if (se->transaction_id == v6h->transaction_id && -+ grub_memcmp (options->client_duid, &se->duid, sizeof (se->duid)) == 0 && -+ se->iaid == options->iaid) -+ break; -+ } -+ -+ if (!se) -+ { -+ grub_dprintf ("bootp", "DHCPv6 session not found\n"); -+ grub_dhcp6_options_free (options); -+ return GRUB_ERR_NONE; -+ } -+ -+ if (v6h->message_type == GRUB_NET_DHCP6_ADVERTISE) -+ { -+ if (se->adv) -+ { -+ grub_dprintf ("bootp", "Skipped DHCPv6 Advertised .. \n"); -+ grub_dhcp6_options_free (options); -+ return GRUB_ERR_NONE; -+ } -+ -+ se->adv = options; -+ return grub_dhcp6_session_send_request (se); -+ } -+ else if (v6h->message_type == GRUB_NET_DHCP6_REPLY) -+ { -+ if (!se->adv) -+ { -+ grub_dprintf ("bootp", "Skipped DHCPv6 Reply .. \n"); -+ grub_dhcp6_options_free (options); -+ return GRUB_ERR_NONE; -+ } -+ -+ se->reply = options; -+ grub_dhcp6_session_configure_network (se); -+ grub_dhcp6_session_remove (se); -+ return GRUB_ERR_NONE; -+ } -+ else -+ { -+ grub_dhcp6_options_free (options); -+ } -+ -+ return GRUB_ERR_NONE; -+} -+ - static char - hexdigit (grub_uint8_t val) - { -@@ -864,7 +1599,174 @@ grub_cmd_bootp (struct grub_command *cmd __attribute__ ((unused)), - return err; - } - --static grub_command_t cmd_getdhcp, cmd_bootp, cmd_dhcp; -+static grub_err_t -+grub_cmd_bootp6 (struct grub_command *cmd __attribute__ ((unused)), -+ int argc, char **args) -+{ -+ struct grub_net_card *card; -+ grub_uint32_t iaid = 0; -+ int interval; -+ grub_err_t err; -+ grub_dhcp6_session_t se; -+ -+ err = GRUB_ERR_NONE; -+ -+ FOR_NET_CARDS (card) -+ { -+ struct grub_net_network_level_interface *iface; -+ -+ if (argc > 0 && grub_strcmp (card->name, args[0]) != 0) -+ continue; -+ -+ iface = grub_net_ipv6_get_link_local (card, &card->default_address); -+ if (!iface) -+ { -+ grub_dhcp6_session_remove_all (); -+ return grub_errno; -+ } -+ -+ grub_dhcp6_session_add (iface, iaid++); -+ } -+ -+ for (interval = 200; interval < 10000; interval *= 2) -+ { -+ int done = 1; -+ -+ FOR_DHCP6_SESSIONS (se) -+ { -+ struct grub_net_buff *nb; -+ struct grub_net_dhcp6_option *opt; -+ struct grub_net_dhcp6_packet *v6h; -+ struct grub_net_dhcp6_option_duid_ll *duid; -+ struct grub_net_dhcp6_option_iana *ia_na; -+ grub_net_network_level_address_t multicast; -+ grub_net_link_level_address_t ll_multicast; -+ struct udphdr *udph; -+ -+ multicast.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; -+ multicast.ipv6[0] = grub_cpu_to_be64_compile_time (0xff02ULL << 48); -+ multicast.ipv6[1] = grub_cpu_to_be64_compile_time (0x10002ULL); -+ -+ err = grub_net_link_layer_resolve (se->iface, -+ &multicast, &ll_multicast); -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ return err; -+ } -+ -+ nb = grub_netbuff_alloc (GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE); -+ -+ if (!nb) -+ { -+ grub_dhcp6_session_remove_all (); -+ return grub_errno; -+ } -+ -+ err = grub_netbuff_reserve (nb, GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE); -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ err = grub_netbuff_push (nb, sizeof (*opt) + sizeof (grub_uint16_t)); -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ opt = (struct grub_net_dhcp6_option *)nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_ELAPSED_TIME); -+ opt->len = grub_cpu_to_be16_compile_time (sizeof (grub_uint16_t)); -+ grub_set_unaligned16 (opt->data, 0); -+ -+ err = grub_netbuff_push (nb, sizeof (*opt) + sizeof (*duid)); -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ opt = (struct grub_net_dhcp6_option *)nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_CLIENTID); -+ opt->len = grub_cpu_to_be16 (sizeof (*duid)); -+ -+ duid = (struct grub_net_dhcp6_option_duid_ll *) opt->data; -+ grub_memcpy (duid, &se->duid, sizeof (*duid)); -+ -+ err = grub_netbuff_push (nb, sizeof (*opt) + sizeof (*ia_na)); -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ opt = (struct grub_net_dhcp6_option *)nb->data; -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IA_NA); -+ opt->len = grub_cpu_to_be16 (sizeof (*ia_na)); -+ ia_na = (struct grub_net_dhcp6_option_iana *)opt->data; -+ ia_na->iaid = grub_cpu_to_be32 (se->iaid); -+ ia_na->t1 = 0; -+ ia_na->t2 = 0; -+ -+ err = grub_netbuff_push (nb, sizeof (*v6h)); -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ v6h = (struct grub_net_dhcp6_packet *)nb->data; -+ v6h->message_type = GRUB_NET_DHCP6_SOLICIT; -+ v6h->transaction_id = se->transaction_id; -+ -+ grub_netbuff_push (nb, sizeof (*udph)); -+ -+ udph = (struct udphdr *) nb->data; -+ udph->src = grub_cpu_to_be16_compile_time (DHCP6_CLIENT_PORT); -+ udph->dst = grub_cpu_to_be16_compile_time (DHCP6_SERVER_PORT); -+ udph->chksum = 0; -+ udph->len = grub_cpu_to_be16 (nb->tail - nb->data); -+ -+ udph->chksum = grub_net_ip_transport_checksum (nb, GRUB_NET_IP_UDP, -+ &se->iface->address, &multicast); -+ -+ err = grub_net_send_ip_packet (se->iface, &multicast, -+ &ll_multicast, nb, GRUB_NET_IP_UDP); -+ done = 0; -+ grub_netbuff_free (nb); -+ -+ if (err) -+ { -+ grub_dhcp6_session_remove_all (); -+ return err; -+ } -+ } -+ if (!done) -+ grub_net_poll_cards (interval, 0); -+ } -+ -+ FOR_DHCP6_SESSIONS (se) -+ { -+ grub_error_push (); -+ err = grub_error (GRUB_ERR_FILE_NOT_FOUND, -+ N_("couldn't autoconfigure %s"), -+ se->iface->card->name); -+ } -+ -+ grub_dhcp6_session_remove_all (); -+ -+ return err; -+} -+ -+static grub_command_t cmd_getdhcp, cmd_bootp, cmd_dhcp, cmd_bootp6; - - void - grub_bootp_init (void) -@@ -878,6 +1780,9 @@ grub_bootp_init (void) - cmd_getdhcp = grub_register_command ("net_get_dhcp_option", grub_cmd_dhcpopt, - N_("VAR INTERFACE NUMBER DESCRIPTION"), - N_("retrieve DHCP option and save it into VAR. If VAR is - then print the value.")); -+ cmd_bootp6 = grub_register_command ("net_bootp6", grub_cmd_bootp6, -+ N_("[CARD]"), -+ N_("perform a DHCPv6 autoconfiguration")); - } - - void -@@ -886,4 +1791,5 @@ grub_bootp_fini (void) - grub_unregister_command (cmd_getdhcp); - grub_unregister_command (cmd_bootp); - grub_unregister_command (cmd_dhcp); -+ grub_unregister_command (cmd_bootp6); - } -diff --git a/grub-core/net/ip.c b/grub-core/net/ip.c -index ea5edf8f1..01410798b 100644 ---- a/grub-core/net/ip.c -+++ b/grub-core/net/ip.c -@@ -239,6 +239,45 @@ handle_dgram (struct grub_net_buff *nb, - { - struct udphdr *udph; - udph = (struct udphdr *) nb->data; -+ -+ if (proto == GRUB_NET_IP_UDP && udph->dst == grub_cpu_to_be16_compile_time (DHCP6_CLIENT_PORT)) -+ { -+ if (udph->chksum) -+ { -+ grub_uint16_t chk, expected; -+ chk = udph->chksum; -+ udph->chksum = 0; -+ expected = grub_net_ip_transport_checksum (nb, -+ GRUB_NET_IP_UDP, -+ source, -+ dest); -+ if (expected != chk) -+ { -+ grub_dprintf ("net", "Invalid UDP checksum. " -+ "Expected %x, got %x\n", -+ grub_be_to_cpu16 (expected), -+ grub_be_to_cpu16 (chk)); -+ grub_netbuff_free (nb); -+ return GRUB_ERR_NONE; -+ } -+ udph->chksum = chk; -+ } -+ -+ err = grub_netbuff_pull (nb, sizeof (*udph)); -+ if (err) -+ { -+ grub_netbuff_free (nb); -+ return err; -+ } -+ -+ err = grub_net_process_dhcp6 (nb, card); -+ if (err) -+ grub_print_error (); -+ -+ grub_netbuff_free (nb); -+ return GRUB_ERR_NONE; -+ } -+ - if (proto == GRUB_NET_IP_UDP && grub_be_to_cpu16 (udph->dst) == 68) - { - const struct grub_net_bootp_packet *bootp; -diff --git a/include/grub/net.h b/include/grub/net.h -index cc114286e..58cff96d2 100644 ---- a/include/grub/net.h -+++ b/include/grub/net.h -@@ -448,6 +448,66 @@ struct grub_net_bootp_packet - grub_uint8_t vendor[0]; - } GRUB_PACKED; - -+struct grub_net_dhcp6_packet -+{ -+ grub_uint32_t message_type:8; -+ grub_uint32_t transaction_id:24; -+ grub_uint8_t dhcp_options[0]; -+} GRUB_PACKED; -+ -+struct grub_net_dhcp6_option { -+ grub_uint16_t code; -+ grub_uint16_t len; -+ grub_uint8_t data[0]; -+} GRUB_PACKED; -+ -+struct grub_net_dhcp6_option_iana { -+ grub_uint32_t iaid; -+ grub_uint32_t t1; -+ grub_uint32_t t2; -+ grub_uint8_t data[0]; -+} GRUB_PACKED; -+ -+struct grub_net_dhcp6_option_iaaddr { -+ grub_uint8_t addr[16]; -+ grub_uint32_t preferred_lifetime; -+ grub_uint32_t valid_lifetime; -+ grub_uint8_t data[0]; -+} GRUB_PACKED; -+ -+struct grub_net_dhcp6_option_duid_ll -+{ -+ grub_uint16_t type; -+ grub_uint16_t hw_type; -+ grub_uint8_t hwaddr[6]; -+} GRUB_PACKED; -+ -+enum -+ { -+ GRUB_NET_DHCP6_SOLICIT = 1, -+ GRUB_NET_DHCP6_ADVERTISE = 2, -+ GRUB_NET_DHCP6_REQUEST = 3, -+ GRUB_NET_DHCP6_REPLY = 7 -+ }; -+ -+enum -+ { -+ DHCP6_CLIENT_PORT = 546, -+ DHCP6_SERVER_PORT = 547 -+ }; -+ -+enum -+ { -+ GRUB_NET_DHCP6_OPTION_CLIENTID = 1, -+ GRUB_NET_DHCP6_OPTION_SERVERID = 2, -+ GRUB_NET_DHCP6_OPTION_IA_NA = 3, -+ GRUB_NET_DHCP6_OPTION_IAADDR = 5, -+ GRUB_NET_DHCP6_OPTION_ORO = 6, -+ GRUB_NET_DHCP6_OPTION_ELAPSED_TIME = 8, -+ GRUB_NET_DHCP6_OPTION_DNS_SERVERS = 23, -+ GRUB_NET_DHCP6_OPTION_BOOTFILE_URL = 59 -+ }; -+ - #define GRUB_NET_BOOTP_RFC1048_MAGIC_0 0x63 - #define GRUB_NET_BOOTP_RFC1048_MAGIC_1 0x82 - #define GRUB_NET_BOOTP_RFC1048_MAGIC_2 0x53 -@@ -481,6 +541,14 @@ grub_net_configure_by_dhcp_ack (const char *name, - grub_size_t size, - int is_def, char **device, char **path); - -+struct grub_net_network_level_interface * -+grub_net_configure_by_dhcpv6_reply (const char *name, -+ struct grub_net_card *card, -+ grub_net_interface_flags_t flags, -+ const struct grub_net_dhcp6_packet *v6, -+ grub_size_t size, -+ int is_def, char **device, char **path); -+ - grub_err_t - grub_net_add_ipv4_local (struct grub_net_network_level_interface *inf, - int mask); -@@ -489,6 +557,10 @@ void - grub_net_process_dhcp (struct grub_net_buff *nb, - struct grub_net_network_level_interface *iface); - -+grub_err_t -+grub_net_process_dhcp6 (struct grub_net_buff *nb, -+ struct grub_net_card *card); -+ - int - grub_net_hwaddr_cmp (const grub_net_link_level_address_t *a, - const grub_net_link_level_address_t *b); diff --git a/patches/grub/2.04/bootp-process-dhcpack-http-boot.patch b/patches/grub/2.04/bootp-process-dhcpack-http-boot.patch deleted file mode 100644 index 40cd012e6..000000000 --- a/patches/grub/2.04/bootp-process-dhcpack-http-boot.patch +++ /dev/null @@ -1,122 +0,0 @@ -From 1728caae46b17a42da4f1fb86b5d194d879bd4aa Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 27 Oct 2016 17:42:19 -0400 -Subject: bootp: Add processing DHCPACK packet from HTTP Boot - -The vendor class identifier with the string "HTTPClient" is used to denote the -packet as responding to HTTP boot request. In DHCP4 config, the filename for -HTTP boot is the URL of the boot file while for PXE boot it is the path to the -boot file. As a consequence, the next-server becomes obseleted because the HTTP -URL already contains the server address for the boot file. For DHCP6 config, -there's no difference definition in existing config as dhcp6.bootfile-url can -be used to specify URL for both HTTP and PXE boot file. - -This patch adds processing for "HTTPClient" vendor class identifier in DHCPACK -packet by treating it as HTTP format, not as the PXE format. - -Signed-off-by: Michael Chang -Signed-off-by: Ken Lin - -Patch-Name: bootp-process-dhcpack-http-boot.patch ---- - grub-core/net/bootp.c | 60 ++++++++++++++++++++++++++++++++++++++++++- - include/grub/net.h | 1 + - 2 files changed, 60 insertions(+), 1 deletion(-) - -diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c -index 21c1824ef..558d97ba1 100644 ---- a/grub-core/net/bootp.c -+++ b/grub-core/net/bootp.c -@@ -154,7 +154,7 @@ struct grub_dhcp_request_options - { - grub_uint8_t type; - grub_uint8_t len; -- grub_uint8_t data[7]; -+ grub_uint8_t data[8]; - } GRUB_PACKED parameter_request; - grub_uint8_t end; - } GRUB_PACKED; -@@ -498,6 +498,63 @@ grub_net_configure_by_dhcp_ack (const char *name, - if (opt && opt_len) - grub_env_set_net_property (name, "extensionspath", (const char *) opt, opt_len); - -+ opt = find_dhcp_option (bp, size, GRUB_NET_BOOTP_VENDOR_CLASS_IDENTIFIER, -+ &opt_len); -+ if (opt && opt_len) -+ { -+ grub_env_set_net_property (name, "vendor_class_identifier", -+ (const char *) opt, opt_len); -+ if (opt_len == sizeof ("HTTPClient") - 1 && -+ grub_memcmp (opt, "HTTPClient", sizeof ("HTTPClient") - 1) == 0) -+ { -+ char *proto, *ip, *pa; -+ -+ if (!dissect_url (bp->boot_file, &proto, &ip, &pa)) -+ return inter; -+ -+ grub_env_set_net_property (name, "boot_file", pa, grub_strlen (pa)); -+ if (is_def) -+ { -+ grub_net_default_server = grub_strdup (ip); -+ grub_env_set ("net_default_interface", name); -+ grub_env_export ("net_default_interface"); -+ } -+ if (device && !*device) -+ { -+ *device = grub_xasprintf ("%s,%s", proto, ip); -+ grub_print_error (); -+ } -+ if (path) -+ { -+ *path = grub_strdup (pa); -+ grub_print_error (); -+ if (*path) -+ { -+ char *slash; -+ slash = grub_strrchr (*path, '/'); -+ if (slash) -+ *slash = 0; -+ else -+ **path = 0; -+ } -+ } -+ grub_net_add_ipv4_local (inter, mask); -+ inter->dhcp_ack = grub_malloc (size); -+ if (inter->dhcp_ack) -+ { -+ grub_memcpy (inter->dhcp_ack, bp, size); -+ inter->dhcp_acklen = size; -+ } -+ else -+ grub_errno = GRUB_ERR_NONE; -+ -+ grub_free (proto); -+ grub_free (ip); -+ grub_free (pa); -+ return inter; -+ } -+ } -+ - inter->dhcp_ack = grub_malloc (size); - if (inter->dhcp_ack) - { -@@ -572,6 +629,7 @@ send_dhcp_packet (struct grub_net_network_level_interface *iface) - GRUB_NET_BOOTP_HOSTNAME, - GRUB_NET_BOOTP_ROOT_PATH, - GRUB_NET_BOOTP_EXTENSIONS_PATH, -+ GRUB_NET_BOOTP_VENDOR_CLASS_IDENTIFIER, - }, - }, - GRUB_NET_BOOTP_END, -diff --git a/include/grub/net.h b/include/grub/net.h -index 58cff96d2..b5f9e617e 100644 ---- a/include/grub/net.h -+++ b/include/grub/net.h -@@ -523,6 +523,7 @@ enum - GRUB_NET_BOOTP_DOMAIN = 0x0f, - GRUB_NET_BOOTP_ROOT_PATH = 0x11, - GRUB_NET_BOOTP_EXTENSIONS_PATH = 0x12, -+ GRUB_NET_BOOTP_VENDOR_CLASS_IDENTIFIER = 0x3C, - GRUB_NET_DHCP_REQUESTED_IP_ADDRESS = 50, - GRUB_NET_DHCP_OVERLOAD = 52, - GRUB_NET_DHCP_MESSAGE_TYPE = 53, diff --git a/patches/grub/2.04/btrfs-raid1c34.patch b/patches/grub/2.04/btrfs-raid1c34.patch deleted file mode 100644 index 7ebf60fd1..000000000 --- a/patches/grub/2.04/btrfs-raid1c34.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 71e87f5ac2ffac3705655aecc22f3f872fb603d6 Mon Sep 17 00:00:00 2001 -From: David Sterba -Date: Mon, 4 Nov 2019 17:23:22 +0100 -Subject: btrfs: Add support for new RAID1C34 profiles - -New 3- and 4-copy variants of RAID1 were merged into Linux kernel 5.5. -Add the two new profiles to the list of recognized ones. As this builds -on the same code as RAID1, only the redundancy level needs to be -adjusted, the rest is done by the existing code. - -Signed-off-by: David Sterba -Reviewed-by: Daniel Kiper - -Origin: upstream, https://git.savannah.gnu.org/cgit/grub.git/commit/?id=495781f5ed1b48bf27f16c53940d6700c181c74c -Bug-Debian: https://bugs.debian.org/958236 -Last-Update: 2020-04-20 - -Patch-Name: btrfs-raid1c34.patch ---- - grub-core/fs/btrfs.c | 11 +++++++++-- - 1 file changed, 9 insertions(+), 2 deletions(-) - -diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 48bd3d04a..63f9657a6 100644 ---- a/grub-core/fs/btrfs.c -+++ b/grub-core/fs/btrfs.c -@@ -136,6 +136,8 @@ struct grub_btrfs_chunk_item - #define GRUB_BTRFS_CHUNK_TYPE_RAID10 0x40 - #define GRUB_BTRFS_CHUNK_TYPE_RAID5 0x80 - #define GRUB_BTRFS_CHUNK_TYPE_RAID6 0x100 -+#define GRUB_BTRFS_CHUNK_TYPE_RAID1C3 0x200 -+#define GRUB_BTRFS_CHUNK_TYPE_RAID1C4 0x400 - grub_uint8_t dummy2[0xc]; - grub_uint16_t nstripes; - grub_uint16_t nsubstripes; -@@ -964,14 +966,19 @@ grub_btrfs_read_logical (struct grub_btrfs_data *data, grub_disk_addr_t addr, - csize = (stripen + 1) * stripe_length - off; - break; - } -+ case GRUB_BTRFS_CHUNK_TYPE_RAID1C4: -+ redundancy++; -+ /* fall through */ -+ case GRUB_BTRFS_CHUNK_TYPE_RAID1C3: -+ redundancy++; -+ /* fall through */ - case GRUB_BTRFS_CHUNK_TYPE_DUPLICATED: - case GRUB_BTRFS_CHUNK_TYPE_RAID1: - { -- grub_dprintf ("btrfs", "RAID1\n"); -+ grub_dprintf ("btrfs", "RAID1 (copies: %d)\n", ++redundancy); - stripen = 0; - stripe_offset = off; - csize = grub_le_to_cpu64 (chunk->size) - off; -- redundancy = 2; - break; - } - case GRUB_BTRFS_CHUNK_TYPE_RAID0: diff --git a/patches/grub/2.04/core-in-fs.patch b/patches/grub/2.04/core-in-fs.patch deleted file mode 100644 index 1ba3b4b81..000000000 --- a/patches/grub/2.04/core-in-fs.patch +++ /dev/null @@ -1,45 +0,0 @@ -From d7e4bea95adfdbc80f574e154a62a383bbbeb5d6 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:12:51 +0000 -Subject: Write marker if core.img was written to filesystem - -The Debian bug reporting script includes a warning in this case. - -Patch-Name: core-in-fs.patch ---- - util/setup.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/util/setup.c b/util/setup.c -index 6f88f3cc4..fbdf2fcc5 100644 ---- a/util/setup.c -+++ b/util/setup.c -@@ -58,6 +58,8 @@ - - #include - -+#define CORE_IMG_IN_FS "setup_left_core_image_in_filesystem" -+ - /* On SPARC this program fills in various fields inside of the 'boot' and 'core' - * image files. - * -@@ -666,6 +668,8 @@ SETUP (const char *dir, - #endif - grub_free (sectors); - -+ unlink (DEFAULT_DIRECTORY "/" CORE_IMG_IN_FS); -+ - goto finish; - } - -@@ -707,6 +711,10 @@ unable_to_embed: - /* The core image must be put on a filesystem unfortunately. */ - grub_util_info ("will leave the core image on the filesystem"); - -+ fp = grub_util_fd_open (DEFAULT_DIRECTORY "/" CORE_IMG_IN_FS, -+ GRUB_UTIL_FD_O_WRONLY); -+ grub_util_fd_close (fp); -+ - grub_util_biosdisk_flush (root_dev->disk); - - /* Clean out the blocklists. */ diff --git a/patches/grub/2.04/default-grub-d.patch b/patches/grub/2.04/default-grub-d.patch deleted file mode 100644 index 4a25f67c9..000000000 --- a/patches/grub/2.04/default-grub-d.patch +++ /dev/null @@ -1,195 +0,0 @@ -From 83446ff328321ff05818fee1ed150f8efd4730b8 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:10 +0000 -Subject: Read /etc/default/grub.d/*.cfg after /etc/default/grub - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/901600 -Forwarded: no -Last-Update: 2014-01-28 - -Patch-Name: default-grub-d.patch ---- - grub-core/osdep/unix/config.c | 114 +++++++++++++++++++++++++++------- - util/grub-mkconfig.in | 5 ++ - 2 files changed, 98 insertions(+), 21 deletions(-) - -diff --git a/grub-core/osdep/unix/config.c b/grub-core/osdep/unix/config.c -index 65effa9f3..5478030fd 100644 ---- a/grub-core/osdep/unix/config.c -+++ b/grub-core/osdep/unix/config.c -@@ -24,6 +24,8 @@ - #include - #include - #include -+#include -+#include - #include - #include - #include -@@ -61,13 +63,27 @@ grub_util_get_localedir (void) - return LOCALEDIR; - } - -+struct cfglist -+{ -+ struct cfglist *next; -+ struct cfglist *prev; -+ char *path; -+}; -+ - void - grub_util_load_config (struct grub_util_config *cfg) - { - pid_t pid; - const char *argv[4]; -- char *script, *ptr; -+ char *script = NULL, *ptr; - const char *cfgfile, *iptr; -+ char *cfgdir; -+ grub_util_fd_dir_t d; -+ struct cfglist *cfgpaths = NULL, *cfgpath, *next_cfgpath; -+ int num_cfgpaths = 0; -+ size_t len_cfgpaths = 0; -+ char **sorted_cfgpaths = NULL; -+ int i; - FILE *f = NULL; - int fd; - const char *v; -@@ -83,29 +99,75 @@ grub_util_load_config (struct grub_util_config *cfg) - cfg->grub_distributor = xstrdup (v); - - cfgfile = grub_util_get_config_filename (); -- if (!grub_util_is_regular (cfgfile)) -- return; -+ if (grub_util_is_regular (cfgfile)) -+ { -+ ++num_cfgpaths; -+ len_cfgpaths += strlen (cfgfile) * 4 + sizeof (". ''; ") - 1; -+ } -+ -+ cfgdir = xasprintf ("%s.d", cfgfile); -+ d = grub_util_fd_opendir (cfgdir); -+ if (d) -+ { -+ grub_util_fd_dirent_t de; -+ -+ while ((de = grub_util_fd_readdir (d))) -+ { -+ const char *ext = strrchr (de->d_name, '.'); -+ -+ if (!ext || strcmp (ext, ".cfg") != 0) -+ continue; -+ -+ cfgpath = xmalloc (sizeof (*cfgpath)); -+ cfgpath->path = grub_util_path_concat (2, cfgdir, de->d_name); -+ grub_list_push (GRUB_AS_LIST_P (&cfgpaths), GRUB_AS_LIST (cfgpath)); -+ ++num_cfgpaths; -+ len_cfgpaths += strlen (cfgpath->path) * 4 + sizeof (". ''; ") - 1; -+ } -+ grub_util_fd_closedir (d); -+ } -+ -+ if (num_cfgpaths == 0) -+ goto out; -+ -+ sorted_cfgpaths = xmalloc (num_cfgpaths * sizeof (*sorted_cfgpaths)); -+ i = 0; -+ if (grub_util_is_regular (cfgfile)) -+ sorted_cfgpaths[i++] = xstrdup (cfgfile); -+ FOR_LIST_ELEMENTS_SAFE (cfgpath, next_cfgpath, cfgpaths) -+ { -+ sorted_cfgpaths[i++] = cfgpath->path; -+ free (cfgpath); -+ } -+ assert (i == num_cfgpaths); -+ qsort (sorted_cfgpaths + 1, num_cfgpaths - 1, sizeof (*sorted_cfgpaths), -+ (int (*) (const void *, const void *)) strcmp); - - argv[0] = "sh"; - argv[1] = "-c"; - -- script = xmalloc (4 * strlen (cfgfile) + 300); -+ script = xmalloc (len_cfgpaths + 300); - - ptr = script; -- memcpy (ptr, ". '", 3); -- ptr += 3; -- for (iptr = cfgfile; *iptr; iptr++) -+ for (i = 0; i < num_cfgpaths; i++) - { -- if (*iptr == '\\') -+ memcpy (ptr, ". '", 3); -+ ptr += 3; -+ for (iptr = sorted_cfgpaths[i]; *iptr; iptr++) - { -- memcpy (ptr, "'\\''", 4); -- ptr += 4; -- continue; -+ if (*iptr == '\\') -+ { -+ memcpy (ptr, "'\\''", 4); -+ ptr += 4; -+ continue; -+ } -+ *ptr++ = *iptr; - } -- *ptr++ = *iptr; -+ memcpy (ptr, "'; ", 3); -+ ptr += 3; - } - -- strcpy (ptr, "'; printf \"GRUB_ENABLE_CRYPTODISK=%s\\nGRUB_DISTRIBUTOR=%s\\n\" " -+ strcpy (ptr, "printf \"GRUB_ENABLE_CRYPTODISK=%s\\nGRUB_DISTRIBUTOR=%s\\n\" " - "\"$GRUB_ENABLE_CRYPTODISK\" \"$GRUB_DISTRIBUTOR\""); - - argv[2] = script; -@@ -125,15 +187,25 @@ grub_util_load_config (struct grub_util_config *cfg) - waitpid (pid, NULL, 0); - } - if (f) -- return; -+ goto out; - -- f = grub_util_fopen (cfgfile, "r"); -- if (f) -+ for (i = 0; i < num_cfgpaths; i++) - { -- grub_util_parse_config (f, cfg, 0); -- fclose (f); -+ f = grub_util_fopen (sorted_cfgpaths[i], "r"); -+ if (f) -+ { -+ grub_util_parse_config (f, cfg, 0); -+ fclose (f); -+ } -+ else -+ grub_util_warn (_("cannot open configuration file `%s': %s"), -+ cfgfile, strerror (errno)); - } -- else -- grub_util_warn (_("cannot open configuration file `%s': %s"), -- cfgfile, strerror (errno)); -+ -+out: -+ free (script); -+ for (i = 0; i < num_cfgpaths; i++) -+ free (sorted_cfgpaths[i]); -+ free (sorted_cfgpaths); -+ free (cfgdir); - } -diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index 45cd4cc54..8a1bc0441 100644 ---- a/util/grub-mkconfig.in -+++ b/util/grub-mkconfig.in -@@ -157,6 +157,11 @@ fi - if test -f ${sysconfdir}/default/grub ; then - . ${sysconfdir}/default/grub - fi -+for x in ${sysconfdir}/default/grub.d/*.cfg ; do -+ if [ -e "${x}" ]; then -+ . "${x}" -+ fi -+done - - # XXX: should this be deprecated at some point? - if [ "x${GRUB_TERMINAL}" != "x" ] ; then diff --git a/patches/grub/2.04/dejavu-font-path.patch b/patches/grub/2.04/dejavu-font-path.patch deleted file mode 100644 index 90a3d40b8..000000000 --- a/patches/grub/2.04/dejavu-font-path.patch +++ /dev/null @@ -1,23 +0,0 @@ -From c9434fab26adda59da5d80997ae337e9211a4a39 Mon Sep 17 00:00:00 2001 -From: Fabian Greffrath -Date: Tue, 19 May 2020 12:19:26 +0200 -Subject: add /u/s/fonts/truetype/dejavu to the DejaVu fonts search paths - -Patch-Name: dejavu-font-path.patch ---- - configure.ac | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index 883245553..851f61546 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1661,7 +1661,7 @@ fi - - if test x"$starfield_excuse" = x; then - for ext in pcf pcf.gz bdf bdf.gz ttf ttf.gz; do -- for dir in . /usr/src /usr/share/fonts/X11/misc /usr/share/fonts/truetype/ttf-dejavu /usr/share/fonts/dejavu /usr/share/fonts/truetype; do -+ for dir in . /usr/src /usr/share/fonts/X11/misc /usr/share/fonts/truetype/dejavu /usr/share/fonts/truetype/ttf-dejavu /usr/share/fonts/dejavu /usr/share/fonts/truetype; do - if test -f "$dir/DejaVuSans.$ext"; then - DJVU_FONT_SOURCE="$dir/DejaVuSans.$ext" - break 2 diff --git a/patches/grub/2.04/deviceiter-overflow.patch b/patches/grub/2.04/deviceiter-overflow.patch deleted file mode 100644 index 42a273cc1..000000000 --- a/patches/grub/2.04/deviceiter-overflow.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 4bb7f63fd56a4b1408d871eadbdc24cd73c9e9ed Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Fri, 24 Jul 2020 11:30:46 +0100 -Subject: deviceiter: Fix integer overflow in grub_util_iterate_devices - -This adjusts Debian's grub-mkdevicemap restoration patch to perform safe -allocation. - -Signed-off-by: Colin Watson - -Patch-Name: deviceiter-overflow.patch ---- - util/deviceiter.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/util/deviceiter.c b/util/deviceiter.c -index dddc50da7..3a8f2770e 100644 ---- a/util/deviceiter.c -+++ b/util/deviceiter.c -@@ -35,6 +35,7 @@ - #include - #include - #include -+#include - - #ifdef __linux__ - # if !defined(__GLIBC__) || \ -@@ -576,7 +577,7 @@ grub_util_iterate_devices (int (*hook) (const char *, int, void *), void *hook_d - struct device *devs; - size_t devs_len = 0, devs_max = 1024, dev; - -- devs = xmalloc (devs_max * sizeof (*devs)); -+ devs = xcalloc (devs_max, sizeof (*devs)); - - /* Dump all the directory entries into names, resizing if - necessary. */ -@@ -598,8 +599,13 @@ grub_util_iterate_devices (int (*hook) (const char *, int, void *), void *hook_d - continue; - if (devs_len >= devs_max) - { -+ size_t sz; -+ - devs_max *= 2; -- devs = xrealloc (devs, devs_max * sizeof (*devs)); -+ sz = devs_max; -+ if (grub_mul (sz, sizeof (*devs), &sz)) -+ grub_util_error ("%s", _("overflow is detected")); -+ devs = xrealloc (devs, sz); - } - devs[devs_len].stable = - xasprintf ("/dev/disk/by-id/%s", entry->d_name); diff --git a/patches/grub/2.04/disable-floppies.patch b/patches/grub/2.04/disable-floppies.patch deleted file mode 100644 index 7d4835e13..000000000 --- a/patches/grub/2.04/disable-floppies.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 42e4cfb46a2a617eb7dc1526700ab6015710222e Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:12:54 +0000 -Subject: Disable use of floppy devices - -An ugly kludge. Should this be merged upstream? - -Author: Robert Millan - -Patch-Name: disable-floppies.patch ---- - grub-core/kern/emu/hostdisk.c | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/grub-core/kern/emu/hostdisk.c b/grub-core/kern/emu/hostdisk.c -index e9ec680cd..8ac523953 100644 ---- a/grub-core/kern/emu/hostdisk.c -+++ b/grub-core/kern/emu/hostdisk.c -@@ -532,6 +532,18 @@ read_device_map (const char *dev_map) - continue; - } - -+ if (! strncmp (p, "/dev/fd", sizeof ("/dev/fd") - 1)) -+ { -+ char *q = p + sizeof ("/dev/fd") - 1; -+ if (*q >= '0' && *q <= '9') -+ { -+ free (map[drive].drive); -+ map[drive].drive = NULL; -+ grub_util_info ("`%s' looks like a floppy drive, skipping", p); -+ continue; -+ } -+ } -+ - /* On Linux, the devfs uses symbolic links horribly, and that - confuses the interface very much, so use realpath to expand - symbolic links. */ diff --git a/patches/grub/2.04/dpkg-version-comparison.patch b/patches/grub/2.04/dpkg-version-comparison.patch deleted file mode 100644 index 86e5c7ea6..000000000 --- a/patches/grub/2.04/dpkg-version-comparison.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 89a5bb08600e06c33e44a14b1997af3efc98782b Mon Sep 17 00:00:00 2001 -From: Robert Millan -Date: Mon, 13 Jan 2014 12:12:52 +0000 -Subject: Improve handling of Debian kernel version numbers - -Forwarded: not-needed -Last-Update: 2013-12-20 - -Patch-Name: dpkg-version-comparison.patch ---- - util/grub-mkconfig_lib.in | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index 0f801cab3..b6606c16e 100644 ---- a/util/grub-mkconfig_lib.in -+++ b/util/grub-mkconfig_lib.in -@@ -239,8 +239,9 @@ version_test_numeric () - - version_test_gt () - { -- version_test_gt_a="`echo "$1" | sed -e "s/[^-]*-//"`" -- version_test_gt_b="`echo "$2" | sed -e "s/[^-]*-//"`" -+ version_test_gt_sedexp="s/[^-]*-//;s/[._-]\(pre\|rc\|test\|git\|old\|trunk\)/~\1/g" -+ version_test_gt_a="`echo "$1" | sed -e "$version_test_gt_sedexp"`" -+ version_test_gt_b="`echo "$2" | sed -e "$version_test_gt_sedexp"`" - version_test_gt_cmp=gt - if [ "x$version_test_gt_b" = "x" ] ; then - return 0 -@@ -250,7 +251,7 @@ version_test_gt () - *.old:*) version_test_gt_a="`echo "$version_test_gt_a" | sed -e 's/\.old$//'`" ; version_test_gt_cmp=gt ;; - *:*.old) version_test_gt_b="`echo "$version_test_gt_b" | sed -e 's/\.old$//'`" ; version_test_gt_cmp=ge ;; - esac -- version_test_numeric "$version_test_gt_a" "$version_test_gt_cmp" "$version_test_gt_b" -+ dpkg --compare-versions "$version_test_gt_a" "$version_test_gt_cmp" "$version_test_gt_b" - return "$?" - } - diff --git a/patches/grub/2.04/efi-halt-reboot-use-after-free.patch b/patches/grub/2.04/efi-halt-reboot-use-after-free.patch deleted file mode 100644 index dd07cd20a..000000000 --- a/patches/grub/2.04/efi-halt-reboot-use-after-free.patch +++ /dev/null @@ -1,177 +0,0 @@ -From bb5fc65035e82509b0565bfe2994fbe6cc11016e Mon Sep 17 00:00:00 2001 -From: Alexey Makhalov -Date: Mon, 20 Jul 2020 23:03:05 +0000 -Subject: efi: Fix use-after-free in halt/reboot path - -commit 92bfc33db984 ("efi: Free malloc regions on exit") -introduced memory freeing in grub_efi_fini(), which is -used not only by exit path but by halt/reboot one as well. -As result of memory freeing, code and data regions used by -modules, such as halt, reboot, acpi (used by halt) also got -freed. After return to module code, CPU executes, filled -by UEFI firmware (tested with edk2), 0xAFAFAFAF pattern as -a code. Which leads to #UD exception later. - -grub> halt -!!!! X64 Exception Type - 06(#UD - Invalid Opcode) CPU Apic ID - 00000000 !!!! -RIP - 0000000003F4EC28, CS - 0000000000000038, RFLAGS - 0000000000200246 -RAX - 0000000000000000, RCX - 00000000061DA188, RDX - 0A74C0854DC35D41 -RBX - 0000000003E10E08, RSP - 0000000007F0F860, RBP - 0000000000000000 -RSI - 00000000064DB768, RDI - 000000000832C5C3 -R8 - 0000000000000002, R9 - 0000000000000000, R10 - 00000000061E2E52 -R11 - 0000000000000020, R12 - 0000000003EE5C1F, R13 - 00000000061E0FF4 -R14 - 0000000003E10D80, R15 - 00000000061E2F60 -DS - 0000000000000030, ES - 0000000000000030, FS - 0000000000000030 -GS - 0000000000000030, SS - 0000000000000030 -CR0 - 0000000080010033, CR2 - 0000000000000000, CR3 - 0000000007C01000 -CR4 - 0000000000000668, CR8 - 0000000000000000 -DR0 - 0000000000000000, DR1 - 0000000000000000, DR2 - 0000000000000000 -DR3 - 0000000000000000, DR6 - 00000000FFFF0FF0, DR7 - 0000000000000400 -GDTR - 00000000079EEA98 0000000000000047, LDTR - 0000000000000000 -IDTR - 0000000007598018 0000000000000FFF, TR - 0000000000000000 -FXSAVE_STATE - 0000000007F0F4C0 - -Proposal here is to continue to free allocated memory for -exit boot services path but keep it for halt/reboot path -as it won't be much security concern here. -Introduced GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY -loader flag to be used by efi halt/reboot path. - -Signed-off-by: Alexey Makhalov -Reviewed-by: Darren Kenny - -Patch-Name: efi-halt-reboot-use-after-free.patch ---- - grub-core/kern/arm/efi/init.c | 3 +++ - grub-core/kern/arm64/efi/init.c | 3 +++ - grub-core/kern/efi/efi.c | 3 ++- - grub-core/kern/efi/init.c | 1 - - grub-core/kern/i386/efi/init.c | 9 +++++++-- - grub-core/kern/ia64/efi/init.c | 9 +++++++-- - grub-core/kern/riscv/efi/init.c | 3 +++ - grub-core/lib/efi/halt.c | 3 ++- - include/grub/loader.h | 1 + - 9 files changed, 28 insertions(+), 7 deletions(-) - -diff --git a/grub-core/kern/arm/efi/init.c b/grub-core/kern/arm/efi/init.c -index 06df60e2f..40c3b467f 100644 ---- a/grub-core/kern/arm/efi/init.c -+++ b/grub-core/kern/arm/efi/init.c -@@ -71,4 +71,7 @@ grub_machine_fini (int flags) - efi_call_1 (b->close_event, tmr_evt); - - grub_efi_fini (); -+ -+ if (!(flags & GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY)) -+ grub_efi_memory_fini (); - } -diff --git a/grub-core/kern/arm64/efi/init.c b/grub-core/kern/arm64/efi/init.c -index 6224999ec..5010caefd 100644 ---- a/grub-core/kern/arm64/efi/init.c -+++ b/grub-core/kern/arm64/efi/init.c -@@ -57,4 +57,7 @@ grub_machine_fini (int flags) - return; - - grub_efi_fini (); -+ -+ if (!(flags & GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY)) -+ grub_efi_memory_fini (); - } -diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index e12261fd5..acb38d61f 100644 ---- a/grub-core/kern/efi/efi.c -+++ b/grub-core/kern/efi/efi.c -@@ -157,7 +157,8 @@ grub_efi_get_loaded_image (grub_efi_handle_t image_handle) - void - grub_reboot (void) - { -- grub_machine_fini (GRUB_LOADER_FLAG_NORETURN); -+ grub_machine_fini (GRUB_LOADER_FLAG_NORETURN | -+ GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY); - efi_call_4 (grub_efi_system_table->runtime_services->reset_system, - GRUB_EFI_RESET_COLD, GRUB_EFI_SUCCESS, 0, NULL); - for (;;) ; -diff --git a/grub-core/kern/efi/init.c b/grub-core/kern/efi/init.c -index 3dfdf2d22..2c31847bf 100644 ---- a/grub-core/kern/efi/init.c -+++ b/grub-core/kern/efi/init.c -@@ -80,5 +80,4 @@ grub_efi_fini (void) - { - grub_efidisk_fini (); - grub_console_fini (); -- grub_efi_memory_fini (); - } -diff --git a/grub-core/kern/i386/efi/init.c b/grub-core/kern/i386/efi/init.c -index da499aba0..deb2eacd8 100644 ---- a/grub-core/kern/i386/efi/init.c -+++ b/grub-core/kern/i386/efi/init.c -@@ -39,6 +39,11 @@ grub_machine_init (void) - void - grub_machine_fini (int flags) - { -- if (flags & GRUB_LOADER_FLAG_NORETURN) -- grub_efi_fini (); -+ if (!(flags & GRUB_LOADER_FLAG_NORETURN)) -+ return; -+ -+ grub_efi_fini (); -+ -+ if (!(flags & GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY)) -+ grub_efi_memory_fini (); - } -diff --git a/grub-core/kern/ia64/efi/init.c b/grub-core/kern/ia64/efi/init.c -index b5ecbd091..f1965571b 100644 ---- a/grub-core/kern/ia64/efi/init.c -+++ b/grub-core/kern/ia64/efi/init.c -@@ -70,6 +70,11 @@ grub_machine_init (void) - void - grub_machine_fini (int flags) - { -- if (flags & GRUB_LOADER_FLAG_NORETURN) -- grub_efi_fini (); -+ if (!(flags & GRUB_LOADER_FLAG_NORETURN)) -+ return; -+ -+ grub_efi_fini (); -+ -+ if (!(flags & GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY)) -+ grub_efi_memory_fini (); - } -diff --git a/grub-core/kern/riscv/efi/init.c b/grub-core/kern/riscv/efi/init.c -index 7eb1969d0..38795fe67 100644 ---- a/grub-core/kern/riscv/efi/init.c -+++ b/grub-core/kern/riscv/efi/init.c -@@ -73,4 +73,7 @@ grub_machine_fini (int flags) - return; - - grub_efi_fini (); -+ -+ if (!(flags & GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY)) -+ grub_efi_memory_fini (); - } -diff --git a/grub-core/lib/efi/halt.c b/grub-core/lib/efi/halt.c -index 5859f0498..29d413641 100644 ---- a/grub-core/lib/efi/halt.c -+++ b/grub-core/lib/efi/halt.c -@@ -28,7 +28,8 @@ - void - grub_halt (void) - { -- grub_machine_fini (GRUB_LOADER_FLAG_NORETURN); -+ grub_machine_fini (GRUB_LOADER_FLAG_NORETURN | -+ GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY); - #if !defined(__ia64__) && !defined(__arm__) && !defined(__aarch64__) && \ - !defined(__riscv) - grub_acpi_halt (); -diff --git a/include/grub/loader.h b/include/grub/loader.h -index 7f82a499f..b20864282 100644 ---- a/include/grub/loader.h -+++ b/include/grub/loader.h -@@ -33,6 +33,7 @@ enum - { - GRUB_LOADER_FLAG_NORETURN = 1, - GRUB_LOADER_FLAG_PXE_NOT_UNLOAD = 2, -+ GRUB_LOADER_FLAG_EFI_KEEP_ALLOCATED_MEMORY = 4, - }; - - void EXPORT_FUNC (grub_loader_set) (grub_err_t (*boot) (void), diff --git a/patches/grub/2.04/efi-malformed-device-path-2.patch b/patches/grub/2.04/efi-malformed-device-path-2.patch deleted file mode 100644 index dd5891f17..000000000 --- a/patches/grub/2.04/efi-malformed-device-path-2.patch +++ /dev/null @@ -1,86 +0,0 @@ -From c5763039a630dee079f0afbd5ced9cd74efe0b71 Mon Sep 17 00:00:00 2001 -From: Chris Coulson -Date: Wed, 22 Jul 2020 17:06:04 +0100 -Subject: Fix a regression caused by "efi: fix some malformed device path - arithmetic errors" - -This commit introduced a bogus check inside copy_file_path to -determine whether the destination grub_efi_file_path_device_path_t -was valid before anything was copied to it. Depending on the -contents of the heap buffer, this check could fail which would -result in copy_file_path returning early. - -Without any error propagated to the caller, make_file_path would -then try to advance the invalid device path node with -GRUB_EFI_NEXT_DEVICE_PATH, which would also fail, returning a NULL -pointer that would subsequently be dereferenced. - -Remove the bogus check, and also propagate errors from copy_file_path. - -Patch-Name: efi-malformed-device-path-2.patch ---- - grub-core/loader/efi/chainloader.c | 25 +++++++++++++------------ - 1 file changed, 13 insertions(+), 12 deletions(-) - -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index 978fab002..e9b06242a 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -106,7 +106,7 @@ grub_chainloader_boot (void) - return grub_errno; - } - --static void -+static grub_err_t - copy_file_path (grub_efi_file_path_device_path_t *fp, - const char *str, grub_efi_uint16_t len) - { -@@ -116,15 +116,9 @@ copy_file_path (grub_efi_file_path_device_path_t *fp, - fp->header.type = GRUB_EFI_MEDIA_DEVICE_PATH_TYPE; - fp->header.subtype = GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE; - -- if (!GRUB_EFI_DEVICE_PATH_VALID ((grub_efi_device_path_t *)fp)) -- { -- grub_error (GRUB_ERR_BAD_ARGUMENT, "EFI Device Path is invalid"); -- return; -- } -- - path_name = grub_calloc (len, GRUB_MAX_UTF16_PER_UTF8 * sizeof (*path_name)); - if (!path_name) -- return; -+ return grub_error (GRUB_ERR_OUT_OF_MEMORY, "failed to allocate path buffer"); - - size = grub_utf8_to_utf16 (path_name, len * GRUB_MAX_UTF16_PER_UTF8, - (const grub_uint8_t *) str, len, 0); -@@ -137,6 +131,7 @@ copy_file_path (grub_efi_file_path_device_path_t *fp, - fp->path_name[size++] = '\0'; - fp->header.length = size * sizeof (grub_efi_char16_t) + sizeof (*fp); - grub_free (path_name); -+ return GRUB_ERR_NONE; - } - - static grub_efi_device_path_t * -@@ -195,13 +190,19 @@ make_file_path (grub_efi_device_path_t *dp, const char *filename) - d = (grub_efi_device_path_t *) ((char *) file_path - + ((char *) d - (char *) dp)); - grub_efi_print_device_path (d); -- copy_file_path ((grub_efi_file_path_device_path_t *) d, -- dir_start, dir_end - dir_start); -+ if (copy_file_path ((grub_efi_file_path_device_path_t *) d, -+ dir_start, dir_end - dir_start) != GRUB_ERR_NONE) -+ { -+ fail: -+ grub_free (file_path); -+ return 0; -+ } - - /* Fill the file path for the file. */ - d = GRUB_EFI_NEXT_DEVICE_PATH (d); -- copy_file_path ((grub_efi_file_path_device_path_t *) d, -- dir_end + 1, grub_strlen (dir_end + 1)); -+ if (copy_file_path ((grub_efi_file_path_device_path_t *) d, -+ dir_end + 1, grub_strlen (dir_end + 1)) != GRUB_ERR_NONE) -+ goto fail; - - /* Fill the end of device path nodes. */ - d = GRUB_EFI_NEXT_DEVICE_PATH (d); diff --git a/patches/grub/2.04/efi-malformed-device-path.patch b/patches/grub/2.04/efi-malformed-device-path.patch deleted file mode 100644 index fdfe07cb8..000000000 --- a/patches/grub/2.04/efi-malformed-device-path.patch +++ /dev/null @@ -1,249 +0,0 @@ -From 9735a4b2f52caf79e5804ca3e959f0f444a8716c Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Sun, 19 Jul 2020 16:53:27 -0400 -Subject: efi: fix some malformed device path arithmetic errors. - -Several places we take the length of a device path and subtract 4 from -it, without ever checking that it's >= 4. There are also cases where -this kind of malformation will result in unpredictable iteration, -including treating the length from one dp node as the type in the next -node. These are all errors, no matter where the data comes from. - -This patch adds a checking macro, GRUB_EFI_DEVICE_PATH_VALID(), which -can be used in several places, and makes GRUB_EFI_NEXT_DEVICE_PATH() -return NULL and GRUB_EFI_END_ENTIRE_DEVICE_PATH() evaluate as true when -the length is too small. Additionally, it makes several places in the -code check for and return errors in these cases. - -Signed-off-by: Peter Jones - -Patch-Name: efi-malformed-device-path.patch ---- - grub-core/kern/efi/efi.c | 67 +++++++++++++++++++++++++----- - grub-core/loader/efi/chainloader.c | 19 ++++++++- - grub-core/loader/i386/xnu.c | 9 ++-- - include/grub/efi/api.h | 14 ++++--- - 4 files changed, 88 insertions(+), 21 deletions(-) - -diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index ad170c7ce..e12261fd5 100644 ---- a/grub-core/kern/efi/efi.c -+++ b/grub-core/kern/efi/efi.c -@@ -360,7 +360,7 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0) - - dp = dp0; - -- while (1) -+ while (dp) - { - grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp); - grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp); -@@ -370,9 +370,15 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0) - if (type == GRUB_EFI_MEDIA_DEVICE_PATH_TYPE - && subtype == GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE) - { -- grub_efi_uint16_t len; -- len = ((GRUB_EFI_DEVICE_PATH_LENGTH (dp) - 4) -- / sizeof (grub_efi_char16_t)); -+ grub_efi_uint16_t len = GRUB_EFI_DEVICE_PATH_LENGTH (dp); -+ -+ if (len < 4) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, -+ "malformed EFI Device Path node has length=%d", len); -+ return NULL; -+ } -+ len = (len - 4) / sizeof (grub_efi_char16_t); - filesize += GRUB_MAX_UTF8_PER_UTF16 * len + 2; - } - -@@ -388,7 +394,7 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0) - if (!name) - return NULL; - -- while (1) -+ while (dp) - { - grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp); - grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp); -@@ -404,8 +410,15 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0) - - *p++ = '/'; - -- len = ((GRUB_EFI_DEVICE_PATH_LENGTH (dp) - 4) -- / sizeof (grub_efi_char16_t)); -+ len = GRUB_EFI_DEVICE_PATH_LENGTH (dp); -+ if (len < 4) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, -+ "malformed EFI Device Path node has length=%d", len); -+ return NULL; -+ } -+ -+ len = (len - 4) / sizeof (grub_efi_char16_t); - fp = (grub_efi_file_path_device_path_t *) dp; - /* According to EFI spec Path Name is NULL terminated */ - while (len > 0 && fp->path_name[len - 1] == 0) -@@ -480,7 +493,26 @@ grub_efi_duplicate_device_path (const grub_efi_device_path_t *dp) - ; - p = GRUB_EFI_NEXT_DEVICE_PATH (p)) - { -- total_size += GRUB_EFI_DEVICE_PATH_LENGTH (p); -+ grub_size_t len = GRUB_EFI_DEVICE_PATH_LENGTH (p); -+ -+ /* -+ * In the event that we find a node that's completely garbage, for -+ * example if we get to 0x7f 0x01 0x02 0x00 ... (EndInstance with a size -+ * of 2), GRUB_EFI_END_ENTIRE_DEVICE_PATH() will be true and -+ * GRUB_EFI_NEXT_DEVICE_PATH() will return NULL, so we won't continue, -+ * and neither should our consumers, but there won't be any error raised -+ * even though the device path is junk. -+ * -+ * This keeps us from passing junk down back to our caller. -+ */ -+ if (len < 4) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, -+ "malformed EFI Device Path node has length=%d", len); -+ return NULL; -+ } -+ -+ total_size += len; - if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (p)) - break; - } -@@ -525,7 +557,7 @@ dump_vendor_path (const char *type, grub_efi_vendor_device_path_t *vendor) - void - grub_efi_print_device_path (grub_efi_device_path_t *dp) - { -- while (1) -+ while (GRUB_EFI_DEVICE_PATH_VALID (dp)) - { - grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp); - grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp); -@@ -937,7 +969,11 @@ grub_efi_compare_device_paths (const grub_efi_device_path_t *dp1, - /* Return non-zero. */ - return 1; - -- while (1) -+ if (dp1 == dp2) -+ return 0; -+ -+ while (GRUB_EFI_DEVICE_PATH_VALID (dp1) -+ && GRUB_EFI_DEVICE_PATH_VALID (dp2)) - { - grub_efi_uint8_t type1, type2; - grub_efi_uint8_t subtype1, subtype2; -@@ -973,5 +1009,16 @@ grub_efi_compare_device_paths (const grub_efi_device_path_t *dp1, - dp2 = (grub_efi_device_path_t *) ((char *) dp2 + len2); - } - -+ /* -+ * There's no "right" answer here, but we probably don't want to call a valid -+ * dp and an invalid dp equal, so pick one way or the other. -+ */ -+ if (GRUB_EFI_DEVICE_PATH_VALID (dp1) && -+ !GRUB_EFI_DEVICE_PATH_VALID (dp2)) -+ return 1; -+ else if (!GRUB_EFI_DEVICE_PATH_VALID (dp1) && -+ GRUB_EFI_DEVICE_PATH_VALID (dp2)) -+ return -1; -+ - return 0; - } -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index daf8c6b54..978fab002 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -116,6 +116,12 @@ copy_file_path (grub_efi_file_path_device_path_t *fp, - fp->header.type = GRUB_EFI_MEDIA_DEVICE_PATH_TYPE; - fp->header.subtype = GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE; - -+ if (!GRUB_EFI_DEVICE_PATH_VALID ((grub_efi_device_path_t *)fp)) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "EFI Device Path is invalid"); -+ return; -+ } -+ - path_name = grub_calloc (len, GRUB_MAX_UTF16_PER_UTF8 * sizeof (*path_name)); - if (!path_name) - return; -@@ -156,9 +162,18 @@ make_file_path (grub_efi_device_path_t *dp, const char *filename) - - size = 0; - d = dp; -- while (1) -+ while (d) - { -- size += GRUB_EFI_DEVICE_PATH_LENGTH (d); -+ grub_size_t len = GRUB_EFI_DEVICE_PATH_LENGTH (d); -+ -+ if (len < 4) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, -+ "malformed EFI Device Path node has length=%d", len); -+ return NULL; -+ } -+ -+ size += len; - if ((GRUB_EFI_END_ENTIRE_DEVICE_PATH (d))) - break; - d = GRUB_EFI_NEXT_DEVICE_PATH (d); -diff --git a/grub-core/loader/i386/xnu.c b/grub-core/loader/i386/xnu.c -index e9e119259..a70093607 100644 ---- a/grub-core/loader/i386/xnu.c -+++ b/grub-core/loader/i386/xnu.c -@@ -515,14 +515,15 @@ grub_cmd_devprop_load (grub_command_t cmd __attribute__ ((unused)), - - devhead = buf; - buf = devhead + 1; -- dpstart = buf; -+ dp = dpstart = buf; - -- do -+ while (GRUB_EFI_DEVICE_PATH_VALID (dp) && buf < bufend) - { -- dp = buf; - buf = (char *) buf + GRUB_EFI_DEVICE_PATH_LENGTH (dp); -+ if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp)) -+ break; -+ dp = buf; - } -- while (!GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp) && buf < bufend); - - dev = grub_xnu_devprop_add_device (dpstart, (char *) buf - - (char *) dpstart); -diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index 75befd10e..a3f4df91d 100644 ---- a/include/grub/efi/api.h -+++ b/include/grub/efi/api.h -@@ -635,6 +635,7 @@ typedef struct grub_efi_device_path grub_efi_device_path_protocol_t; - #define GRUB_EFI_DEVICE_PATH_TYPE(dp) ((dp)->type & 0x7f) - #define GRUB_EFI_DEVICE_PATH_SUBTYPE(dp) ((dp)->subtype) - #define GRUB_EFI_DEVICE_PATH_LENGTH(dp) ((dp)->length) -+#define GRUB_EFI_DEVICE_PATH_VALID(dp) ((dp) != NULL && GRUB_EFI_DEVICE_PATH_LENGTH (dp) >= 4) - - /* The End of Device Path nodes. */ - #define GRUB_EFI_END_DEVICE_PATH_TYPE (0xff & 0x7f) -@@ -643,13 +644,16 @@ typedef struct grub_efi_device_path grub_efi_device_path_protocol_t; - #define GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE 0x01 - - #define GRUB_EFI_END_ENTIRE_DEVICE_PATH(dp) \ -- (GRUB_EFI_DEVICE_PATH_TYPE (dp) == GRUB_EFI_END_DEVICE_PATH_TYPE \ -- && (GRUB_EFI_DEVICE_PATH_SUBTYPE (dp) \ -- == GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE)) -+ (!GRUB_EFI_DEVICE_PATH_VALID (dp) || \ -+ (GRUB_EFI_DEVICE_PATH_TYPE (dp) == GRUB_EFI_END_DEVICE_PATH_TYPE \ -+ && (GRUB_EFI_DEVICE_PATH_SUBTYPE (dp) \ -+ == GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE))) - - #define GRUB_EFI_NEXT_DEVICE_PATH(dp) \ -- ((grub_efi_device_path_t *) ((char *) (dp) \ -- + GRUB_EFI_DEVICE_PATH_LENGTH (dp))) -+ (GRUB_EFI_DEVICE_PATH_VALID (dp) \ -+ ? ((grub_efi_device_path_t *) \ -+ ((char *) (dp) + GRUB_EFI_DEVICE_PATH_LENGTH (dp))) \ -+ : NULL) - - /* Hardware Device Path. */ - #define GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE 1 diff --git a/patches/grub/2.04/efi-variable-storage-minimise-writes.patch b/patches/grub/2.04/efi-variable-storage-minimise-writes.patch deleted file mode 100644 index 798c737c8..000000000 --- a/patches/grub/2.04/efi-variable-storage-minimise-writes.patch +++ /dev/null @@ -1,895 +0,0 @@ -From fc333cf241ea774b0610c8ba57c833d6937dd0f5 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 11 Mar 2019 11:17:43 +0000 -Subject: Minimise writes to EFI variable storage - -Some UEFI firmware is easily provoked into running out of space in its -variable storage. This is usually due to certain kernel drivers (e.g. -pstore), but regardless of the cause it can cause grub-install to fail -because it currently asks efibootmgr to delete and re-add entries, and -the deletion often doesn't result in an immediate garbage collection. -Writing variables frequently also increases wear on the NVRAM which may -have limited write cycles. For these reasons, it's desirable to find a -way to minimise writes while still allowing grub-install to ensure that -a suitable boot entry exists. - -Unfortunately, efibootmgr doesn't offer an interface that would let -grub-install do this. It doesn't in general make very much effort to -minimise writes; it doesn't allow modifying an existing Boot* variable -entry, except in certain limited ways; and current versions don't have a -way to export the expected variable data so that grub-install can -compare it to the current data. While it would be possible (and perhaps -desirable?) to add at least some of this to efibootmgr, that would still -leave the problem that there isn't a good upstreamable way for -grub-install to guarantee that it has a new enough version of -efibootmgr. In any case, it's cumbersome and slow for grub-install to -have to fork efibootmgr to get things done. - -Fortunately, a few years ago Peter Jones helpfully factored out a -substantial part of efibootmgr to the efivar and efiboot libraries, and -so it's now possible to have grub-install use those directly. We still -have to use some code from efibootmgr, but much less than would -previously have been necessary. - -grub-install now reuses existing boot entries where possible, and avoids -writing to variables when the new contents are the same as the old -contents. In the common upgrade case where nothing needs to change, it -no longer writes to NVRAM at all. It's also now slightly faster, since -using libefivar is faster than forking efibootmgr. - -Fixes Debian bug #891434. - -Signed-off-by: Colin Watson - -Bug-Debian: https://bugs.debian.org/891434 -Forwarded: https://lists.gnu.org/archive/html/grub-devel/2019-03/msg00119.html -Last-Update: 2019-03-23 - -Patch-Name: efi-variable-storage-minimise-writes.patch ---- - INSTALL | 5 + - Makefile.util.def | 20 ++ - configure.ac | 12 + - grub-core/osdep/efivar.c | 3 + - grub-core/osdep/unix/efivar.c | 508 ++++++++++++++++++++++++++++++++ - grub-core/osdep/unix/platform.c | 100 +------ - include/grub/util/install.h | 5 + - util/grub-install.c | 4 +- - 8 files changed, 562 insertions(+), 95 deletions(-) - create mode 100644 grub-core/osdep/efivar.c - create mode 100644 grub-core/osdep/unix/efivar.c - -diff --git a/INSTALL b/INSTALL -index 8acb40902..342c158e9 100644 ---- a/INSTALL -+++ b/INSTALL -@@ -41,6 +41,11 @@ configuring the GRUB. - * Other standard GNU/Unix tools - * a libc with large file support (e.g. glibc 2.1 or later) - -+On Unix-based systems, you also need: -+ -+* libefivar (recommended) -+* libefiboot (recommended; your OS may ship this together with libefivar) -+ - On GNU/Linux, you also need: - - * libdevmapper 1.02.34 or later (recommended) -diff --git a/Makefile.util.def b/Makefile.util.def -index 8a24b23f0..59e41423b 100644 ---- a/Makefile.util.def -+++ b/Makefile.util.def -@@ -558,6 +558,8 @@ program = { - common = grub-core/osdep/compress.c; - extra_dist = grub-core/osdep/unix/compress.c; - extra_dist = grub-core/osdep/basic/compress.c; -+ common = grub-core/osdep/efivar.c; -+ extra_dist = grub-core/osdep/unix/efivar.c; - common = util/editenv.c; - common = grub-core/osdep/blocklist.c; - common = grub-core/osdep/config.c; -@@ -571,12 +573,15 @@ program = { - common = grub-core/kern/emu/argp_common.c; - common = grub-core/osdep/init.c; - -+ cflags = '$(EFIVAR_CFLAGS)'; -+ - ldadd = '$(LIBLZMA)'; - ldadd = libgrubmods.a; - ldadd = libgrubgcry.a; - ldadd = libgrubkern.a; - ldadd = grub-core/lib/gnulib/libgnu.a; - ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; -+ ldadd = '$(EFIVAR_LIBS)'; - - condition = COND_HAVE_EXEC; - }; -@@ -605,6 +610,8 @@ program = { - extra_dist = grub-core/osdep/basic/no_platform.c; - extra_dist = grub-core/osdep/unix/platform.c; - common = grub-core/osdep/compress.c; -+ common = grub-core/osdep/efivar.c; -+ extra_dist = grub-core/osdep/unix/efivar.c; - common = util/editenv.c; - common = grub-core/osdep/blocklist.c; - common = grub-core/osdep/config.c; -@@ -618,12 +625,15 @@ program = { - common = grub-core/kern/emu/argp_common.c; - common = grub-core/osdep/init.c; - -+ cflags = '$(EFIVAR_CFLAGS)'; -+ - ldadd = '$(LIBLZMA)'; - ldadd = libgrubmods.a; - ldadd = libgrubgcry.a; - ldadd = libgrubkern.a; - ldadd = grub-core/lib/gnulib/libgnu.a; - ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; -+ ldadd = '$(EFIVAR_LIBS)'; - }; - - program = { -@@ -645,6 +655,8 @@ program = { - common = grub-core/osdep/platform.c; - common = grub-core/osdep/platform_unix.c; - common = grub-core/osdep/compress.c; -+ common = grub-core/osdep/efivar.c; -+ extra_dist = grub-core/osdep/unix/efivar.c; - common = util/editenv.c; - common = grub-core/osdep/blocklist.c; - common = grub-core/osdep/config.c; -@@ -657,12 +669,15 @@ program = { - common = grub-core/kern/emu/argp_common.c; - common = grub-core/osdep/init.c; - -+ cflags = '$(EFIVAR_CFLAGS)'; -+ - ldadd = '$(LIBLZMA)'; - ldadd = libgrubmods.a; - ldadd = libgrubgcry.a; - ldadd = libgrubkern.a; - ldadd = grub-core/lib/gnulib/libgnu.a; - ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; -+ ldadd = '$(EFIVAR_LIBS)'; - }; - - program = { -@@ -684,6 +699,8 @@ program = { - common = grub-core/osdep/platform.c; - common = grub-core/osdep/platform_unix.c; - common = grub-core/osdep/compress.c; -+ common = grub-core/osdep/efivar.c; -+ extra_dist = grub-core/osdep/unix/efivar.c; - common = util/editenv.c; - common = grub-core/osdep/blocklist.c; - common = grub-core/osdep/config.c; -@@ -693,12 +710,15 @@ program = { - common = grub-core/kern/emu/argp_common.c; - common = grub-core/osdep/init.c; - -+ cflags = '$(EFIVAR_CFLAGS)'; -+ - ldadd = '$(LIBLZMA)'; - ldadd = libgrubmods.a; - ldadd = libgrubgcry.a; - ldadd = libgrubkern.a; - ldadd = grub-core/lib/gnulib/libgnu.a; - ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; -+ ldadd = '$(EFIVAR_LIBS)'; - }; - - script = { -diff --git a/configure.ac b/configure.ac -index e382c7480..883245553 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -443,6 +443,18 @@ AC_CHECK_HEADER([util.h], [ - ]) - AC_SUBST([LIBUTIL]) - -+case "$host_os" in -+ cygwin | windows* | mingw32* | aros*) -+ ;; -+ *) -+ # For setting EFI variables in grub-install. -+ PKG_CHECK_MODULES([EFIVAR], [efivar efiboot], [ -+ AC_DEFINE([HAVE_EFIVAR], [1], -+ [Define to 1 if you have the efivar and efiboot libraries.]) -+ ], [:]) -+ ;; -+esac -+ - AC_CACHE_CHECK([whether -Wtrampolines work], [grub_cv_host_cc_wtrampolines], [ - SAVED_CFLAGS="$CFLAGS" - CFLAGS="$HOST_CFLAGS -Wtrampolines -Werror" -diff --git a/grub-core/osdep/efivar.c b/grub-core/osdep/efivar.c -new file mode 100644 -index 000000000..d2750e252 ---- /dev/null -+++ b/grub-core/osdep/efivar.c -@@ -0,0 +1,3 @@ -+#if !defined (__MINGW32__) && !defined (__CYGWIN__) && !defined (__AROS__) -+#include "unix/efivar.c" -+#endif -diff --git a/grub-core/osdep/unix/efivar.c b/grub-core/osdep/unix/efivar.c -new file mode 100644 -index 000000000..4a58328b4 ---- /dev/null -+++ b/grub-core/osdep/unix/efivar.c -@@ -0,0 +1,508 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2013,2019 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+/* Contains portions derived from efibootmgr, licensed as follows: -+ * -+ * Copyright (C) 2001-2004 Dell, Inc. -+ * Copyright 2015-2016 Red Hat, Inc. -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ */ -+ -+#include -+ -+#ifdef HAVE_EFIVAR -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+struct efi_variable { -+ struct efi_variable *next; -+ struct efi_variable **prev; -+ char *name; -+ efi_guid_t guid; -+ uint8_t *data; -+ size_t data_size; -+ uint32_t attributes; -+ int num; -+}; -+ -+/* Boot option attributes. */ -+#define LOAD_OPTION_ACTIVE 0x00000001 -+ -+/* GUIDs. */ -+#define BLKX_UNKNOWN_GUID \ -+ EFI_GUID (0x47c7b225, 0xc42a, 0x11d2, 0x8e57, 0x00, 0xa0, 0xc9, 0x69, \ -+ 0x72, 0x3b) -+ -+/* Log all errors recorded by libefivar/libefiboot. */ -+static void -+show_efi_errors (void) -+{ -+ int i; -+ int saved_errno = errno; -+ -+ for (i = 0; ; ++i) -+ { -+ char *filename, *function, *message = NULL; -+ int line, error = 0, rc; -+ -+ rc = efi_error_get (i, &filename, &function, &line, &message, &error); -+ if (rc < 0) -+ /* Give up. The caller is going to log an error anyway. */ -+ break; -+ if (rc == 0) -+ /* No more errors. */ -+ break; -+ grub_util_warn ("%s: %s: %s", function, message, strerror (error)); -+ } -+ -+ efi_error_clear (); -+ errno = saved_errno; -+} -+ -+static struct efi_variable * -+new_efi_variable (void) -+{ -+ struct efi_variable *new = xmalloc (sizeof (*new)); -+ memset (new, 0, sizeof (*new)); -+ return new; -+} -+ -+static struct efi_variable * -+new_boot_variable (void) -+{ -+ struct efi_variable *new = new_efi_variable (); -+ new->guid = EFI_GLOBAL_GUID; -+ new->attributes = EFI_VARIABLE_NON_VOLATILE | -+ EFI_VARIABLE_BOOTSERVICE_ACCESS | -+ EFI_VARIABLE_RUNTIME_ACCESS; -+ return new; -+} -+ -+static void -+free_efi_variable (struct efi_variable *entry) -+{ -+ if (entry) -+ { -+ free (entry->name); -+ free (entry->data); -+ free (entry); -+ } -+} -+ -+static int -+read_efi_variable (const char *name, struct efi_variable **entry) -+{ -+ struct efi_variable *new = new_efi_variable (); -+ int rc; -+ -+ rc = efi_get_variable (EFI_GLOBAL_GUID, name, -+ &new->data, &new->data_size, &new->attributes); -+ if (rc < 0) -+ { -+ free_efi_variable (new); -+ new = NULL; -+ } -+ -+ if (new) -+ { -+ /* Latest Apple firmware sets the high bit which appears invalid -+ to the Linux kernel if we write it back, so let's zero it out if it -+ is set since it would be invalid to set it anyway. */ -+ new->attributes = new->attributes & ~(1 << 31); -+ -+ new->name = xstrdup (name); -+ new->guid = EFI_GLOBAL_GUID; -+ } -+ -+ *entry = new; -+ return rc; -+} -+ -+/* Set an EFI variable, but only if it differs from the current value. -+ Some firmware implementations are liable to fill up flash space if we set -+ variables unnecessarily, so try to keep write activity to a minimum. */ -+static int -+set_efi_variable (const char *name, struct efi_variable *entry) -+{ -+ struct efi_variable *old = NULL; -+ int rc = 0; -+ -+ read_efi_variable (name, &old); -+ efi_error_clear (); -+ if (old && old->attributes == entry->attributes && -+ old->data_size == entry->data_size && -+ memcmp (old->data, entry->data, entry->data_size) == 0) -+ grub_util_info ("skipping unnecessary update of EFI variable %s", name); -+ else -+ { -+ rc = efi_set_variable (EFI_GLOBAL_GUID, name, -+ entry->data, entry->data_size, entry->attributes, -+ 0644); -+ if (rc < 0) -+ grub_util_warn (_("Cannot set EFI variable %s"), name); -+ } -+ free_efi_variable (old); -+ return rc; -+} -+ -+static int -+cmpvarbyname (const void *p1, const void *p2) -+{ -+ const struct efi_variable *var1 = *(const struct efi_variable **)p1; -+ const struct efi_variable *var2 = *(const struct efi_variable **)p2; -+ return strcmp (var1->name, var2->name); -+} -+ -+static int -+read_boot_variables (struct efi_variable **varlist) -+{ -+ int rc; -+ efi_guid_t *guid = NULL; -+ char *name = NULL; -+ struct efi_variable **newlist = NULL; -+ int nentries = 0; -+ int i; -+ -+ while ((rc = efi_get_next_variable_name (&guid, &name)) > 0) -+ { -+ const char *snum = name + sizeof ("Boot") - 1; -+ struct efi_variable *var = NULL; -+ unsigned int num; -+ -+ if (memcmp (guid, &efi_guid_global, sizeof (efi_guid_global)) != 0 || -+ strncmp (name, "Boot", sizeof ("Boot") - 1) != 0 || -+ !grub_isxdigit (snum[0]) || !grub_isxdigit (snum[1]) || -+ !grub_isxdigit (snum[2]) || !grub_isxdigit (snum[3])) -+ continue; -+ -+ rc = read_efi_variable (name, &var); -+ if (rc < 0) -+ break; -+ -+ if (sscanf (var->name, "Boot%04X-%*s", &num) == 1 && num < 65536) -+ var->num = num; -+ -+ newlist = xrealloc (newlist, (++nentries) * sizeof (*newlist)); -+ newlist[nentries - 1] = var; -+ } -+ if (rc == 0 && newlist) -+ { -+ qsort (newlist, nentries, sizeof (*newlist), cmpvarbyname); -+ for (i = nentries - 1; i >= 0; --i) -+ grub_list_push (GRUB_AS_LIST_P (varlist), GRUB_AS_LIST (newlist[i])); -+ } -+ else if (newlist) -+ { -+ for (i = 0; i < nentries; ++i) -+ free_efi_variable (newlist[i]); -+ free (newlist); -+ } -+ return rc; -+} -+ -+#define GET_ORDER(data, i) \ -+ ((uint16_t) ((data)[(i) * 2]) + ((data)[(i) * 2 + 1] << 8)) -+#define SET_ORDER(data, i, num) \ -+ do { \ -+ (data)[(i) * 2] = (num) & 0xFF; \ -+ (data)[(i) * 2 + 1] = ((num) >> 8) & 0xFF; \ -+ } while (0) -+ -+static void -+remove_from_boot_order (struct efi_variable *order, uint16_t num) -+{ -+ unsigned int old_i, new_i; -+ -+ /* We've got an array (in order->data) of the order. Squeeze out any -+ instance of the entry we're deleting by shifting the remainder down. */ -+ for (old_i = 0, new_i = 0; -+ old_i < order->data_size / sizeof (uint16_t); -+ ++old_i) -+ { -+ uint16_t old_num = GET_ORDER (order->data, old_i); -+ if (old_num != num) -+ { -+ if (new_i != old_i) -+ SET_ORDER (order->data, new_i, old_num); -+ ++new_i; -+ } -+ } -+ -+ order->data_size = new_i * sizeof (uint16_t); -+} -+ -+static void -+add_to_boot_order (struct efi_variable *order, uint16_t num) -+{ -+ int i; -+ size_t new_data_size; -+ uint8_t *new_data; -+ -+ /* Check whether this entry is already in the boot order. If it is, leave -+ it alone. */ -+ for (i = 0; i < order->data_size / sizeof (uint16_t); ++i) -+ if (GET_ORDER (order->data, i) == num) -+ return; -+ -+ new_data_size = order->data_size + sizeof (uint16_t); -+ new_data = xmalloc (new_data_size); -+ SET_ORDER (new_data, 0, num); -+ memcpy (new_data + sizeof (uint16_t), order->data, order->data_size); -+ free (order->data); -+ order->data = new_data; -+ order->data_size = new_data_size; -+} -+ -+static int -+find_free_boot_num (struct efi_variable *entries) -+{ -+ int num_vars = 0, i; -+ struct efi_variable *entry; -+ -+ FOR_LIST_ELEMENTS (entry, entries) -+ ++num_vars; -+ -+ if (num_vars == 0) -+ return 0; -+ -+ /* O(n^2), but n is small and this is easy. */ -+ for (i = 0; i < num_vars; ++i) -+ { -+ int found = 0; -+ FOR_LIST_ELEMENTS (entry, entries) -+ { -+ if (entry->num == i) -+ { -+ found = 1; -+ break; -+ } -+ } -+ if (!found) -+ return i; -+ } -+ -+ return i; -+} -+ -+static int -+get_edd_version (void) -+{ -+ efi_guid_t blkx_guid = BLKX_UNKNOWN_GUID; -+ uint8_t *data = NULL; -+ size_t data_size = 0; -+ uint32_t attributes; -+ efidp_header *path; -+ int rc; -+ -+ rc = efi_get_variable (blkx_guid, "blk0", &data, &data_size, &attributes); -+ if (rc < 0) -+ return rc; -+ -+ path = (efidp_header *) data; -+ if (path->type == 2 && path->subtype == 1) -+ return 3; -+ return 1; -+} -+ -+static struct efi_variable * -+make_boot_variable (int num, const char *disk, int part, const char *loader, -+ const char *label) -+{ -+ struct efi_variable *entry = new_boot_variable (); -+ uint32_t options; -+ uint32_t edd10_devicenum; -+ ssize_t dp_needed, loadopt_needed; -+ efidp dp = NULL; -+ -+ options = EFIBOOT_ABBREV_HD; -+ switch (get_edd_version ()) { -+ case 1: -+ options = EFIBOOT_ABBREV_EDD10; -+ break; -+ case 3: -+ options = EFIBOOT_ABBREV_NONE; -+ break; -+ } -+ -+ /* This may not be the right disk; but it's probably only an issue on very -+ old hardware anyway. */ -+ edd10_devicenum = 0x80; -+ -+ dp_needed = efi_generate_file_device_path_from_esp (NULL, 0, disk, part, -+ loader, options, -+ edd10_devicenum); -+ if (dp_needed < 0) -+ goto err; -+ -+ dp = xmalloc (dp_needed); -+ dp_needed = efi_generate_file_device_path_from_esp ((uint8_t *) dp, -+ dp_needed, disk, part, -+ loader, options, -+ edd10_devicenum); -+ if (dp_needed < 0) -+ goto err; -+ -+ loadopt_needed = efi_loadopt_create (NULL, 0, LOAD_OPTION_ACTIVE, -+ dp, dp_needed, (unsigned char *) label, -+ NULL, 0); -+ if (loadopt_needed < 0) -+ goto err; -+ entry->data_size = loadopt_needed; -+ entry->data = xmalloc (entry->data_size); -+ loadopt_needed = efi_loadopt_create (entry->data, entry->data_size, -+ LOAD_OPTION_ACTIVE, dp, dp_needed, -+ (unsigned char *) label, NULL, 0); -+ if (loadopt_needed < 0) -+ goto err; -+ -+ entry->name = xasprintf ("Boot%04X", num); -+ entry->num = num; -+ -+ return entry; -+ -+err: -+ free_efi_variable (entry); -+ free (dp); -+ return NULL; -+} -+ -+int -+grub_install_efivar_register_efi (grub_device_t efidir_grub_dev, -+ const char *efifile_path, -+ const char *efi_distributor) -+{ -+ const char *efidir_disk; -+ int efidir_part; -+ struct efi_variable *entries = NULL, *entry; -+ struct efi_variable *order; -+ int entry_num = -1; -+ int rc; -+ -+ efidir_disk = grub_util_biosdisk_get_osdev (efidir_grub_dev->disk); -+ efidir_part = efidir_grub_dev->disk->partition ? efidir_grub_dev->disk->partition->number + 1 : 1; -+ -+#ifdef __linux__ -+ /* -+ * Linux uses efivarfs (mounted on /sys/firmware/efi/efivars) to access the -+ * EFI variable store. Some legacy systems may still use the deprecated -+ * efivars interface (accessed through /sys/firmware/efi/vars). Where both -+ * are present, libefivar will use the former in preference, so attempting -+ * to load efivars will not interfere with later operations. -+ */ -+ grub_util_exec_redirect_all ((const char * []){ "modprobe", "efivars", NULL }, -+ NULL, NULL, "/dev/null"); -+#endif -+ -+ if (!efi_variables_supported ()) -+ { -+ grub_util_warn ("%s", -+ _("EFI variables are not supported on this system.")); -+ /* Let the user continue. Perhaps they can still arrange to boot GRUB -+ manually. */ -+ return 0; -+ } -+ -+ rc = read_boot_variables (&entries); -+ if (rc < 0) -+ { -+ grub_util_warn ("%s", _("Cannot read EFI Boot* variables")); -+ goto err; -+ } -+ rc = read_efi_variable ("BootOrder", &order); -+ if (rc < 0) -+ { -+ order = new_boot_variable (); -+ order->name = xstrdup ("BootOrder"); -+ efi_error_clear (); -+ } -+ -+ /* Delete old entries from the same distributor. */ -+ FOR_LIST_ELEMENTS (entry, entries) -+ { -+ efi_load_option *load_option = (efi_load_option *) entry->data; -+ const char *label; -+ -+ if (entry->num < 0) -+ continue; -+ label = (const char *) efi_loadopt_desc (load_option, entry->data_size); -+ if (strcasecmp (label, efi_distributor) != 0) -+ continue; -+ -+ /* To avoid problems with some firmware implementations, reuse the first -+ matching variable we find rather than deleting and recreating it. */ -+ if (entry_num == -1) -+ entry_num = entry->num; -+ else -+ { -+ grub_util_info ("deleting superfluous EFI variable %s (%s)", -+ entry->name, label); -+ rc = efi_del_variable (EFI_GLOBAL_GUID, entry->name); -+ if (rc < 0) -+ { -+ grub_util_warn (_("Cannot delete EFI variable %s"), entry->name); -+ goto err; -+ } -+ } -+ -+ remove_from_boot_order (order, (uint16_t) entry->num); -+ } -+ -+ if (entry_num == -1) -+ entry_num = find_free_boot_num (entries); -+ entry = make_boot_variable (entry_num, efidir_disk, efidir_part, -+ efifile_path, efi_distributor); -+ if (!entry) -+ goto err; -+ -+ grub_util_info ("setting EFI variable %s", entry->name); -+ rc = set_efi_variable (entry->name, entry); -+ if (rc < 0) -+ goto err; -+ -+ add_to_boot_order (order, (uint16_t) entry_num); -+ -+ grub_util_info ("setting EFI variable BootOrder"); -+ rc = set_efi_variable ("BootOrder", order); -+ if (rc < 0) -+ goto err; -+ -+ return 0; -+ -+err: -+ show_efi_errors (); -+ return errno; -+} -+ -+#endif /* HAVE_EFIVAR */ -diff --git a/grub-core/osdep/unix/platform.c b/grub-core/osdep/unix/platform.c -index 9c439326a..b561174ea 100644 ---- a/grub-core/osdep/unix/platform.c -+++ b/grub-core/osdep/unix/platform.c -@@ -19,15 +19,12 @@ - #include - - #include --#include - #include - #include - #include - #include - #include --#include - #include --#include - - static char * - get_ofpathname (const char *dev) -@@ -78,102 +75,19 @@ get_ofpathname (const char *dev) - dev); - } - --static int --grub_install_remove_efi_entries_by_distributor (const char *efi_distributor) --{ -- int fd; -- pid_t pid = grub_util_exec_pipe ((const char * []){ "efibootmgr", NULL }, &fd); -- char *line = NULL; -- size_t len = 0; -- int rc = 0; -- -- if (!pid) -- { -- grub_util_warn (_("Unable to open stream from %s: %s"), -- "efibootmgr", strerror (errno)); -- return errno; -- } -- -- FILE *fp = fdopen (fd, "r"); -- if (!fp) -- { -- grub_util_warn (_("Unable to open stream from %s: %s"), -- "efibootmgr", strerror (errno)); -- return errno; -- } -- -- line = xmalloc (80); -- len = 80; -- while (1) -- { -- int ret; -- char *bootnum; -- ret = getline (&line, &len, fp); -- if (ret == -1) -- break; -- if (grub_memcmp (line, "Boot", sizeof ("Boot") - 1) != 0 -- || line[sizeof ("Boot") - 1] < '0' -- || line[sizeof ("Boot") - 1] > '9') -- continue; -- if (!strcasestr (line, efi_distributor)) -- continue; -- bootnum = line + sizeof ("Boot") - 1; -- bootnum[4] = '\0'; -- if (!verbosity) -- rc = grub_util_exec ((const char * []){ "efibootmgr", "-q", -- "-b", bootnum, "-B", NULL }); -- else -- rc = grub_util_exec ((const char * []){ "efibootmgr", -- "-b", bootnum, "-B", NULL }); -- } -- -- free (line); -- return rc; --} -- - int - grub_install_register_efi (grub_device_t efidir_grub_dev, - const char *efifile_path, - const char *efi_distributor) - { -- const char * efidir_disk; -- int efidir_part; -- int ret; -- efidir_disk = grub_util_biosdisk_get_osdev (efidir_grub_dev->disk); -- efidir_part = efidir_grub_dev->disk->partition ? efidir_grub_dev->disk->partition->number + 1 : 1; -- -- if (grub_util_exec_redirect_null ((const char * []){ "efibootmgr", "--version", NULL })) -- { -- /* TRANSLATORS: This message is shown when required executable `%s' -- isn't found. */ -- grub_util_error (_("%s: not found"), "efibootmgr"); -- } -- -- /* On Linux, we need the efivars kernel modules. */ --#ifdef __linux__ -- grub_util_exec ((const char * []){ "modprobe", "-q", "efivars", NULL }); -+#ifdef HAVE_EFIVAR -+ return grub_install_efivar_register_efi (efidir_grub_dev, efifile_path, -+ efi_distributor); -+#else -+ grub_util_error ("%s", -+ _("GRUB was not built with efivar support; " -+ "cannot register EFI boot entry")); - #endif -- /* Delete old entries from the same distributor. */ -- ret = grub_install_remove_efi_entries_by_distributor (efi_distributor); -- if (ret) -- return ret; -- -- char *efidir_part_str = xasprintf ("%d", efidir_part); -- -- if (!verbosity) -- ret = grub_util_exec ((const char * []){ "efibootmgr", "-q", -- "-c", "-d", efidir_disk, -- "-p", efidir_part_str, "-w", -- "-L", efi_distributor, "-l", -- efifile_path, NULL }); -- else -- ret = grub_util_exec ((const char * []){ "efibootmgr", -- "-c", "-d", efidir_disk, -- "-p", efidir_part_str, "-w", -- "-L", efi_distributor, "-l", -- efifile_path, NULL }); -- free (efidir_part_str); -- return ret; - } - - void -diff --git a/include/grub/util/install.h b/include/grub/util/install.h -index 8aeb5c4f2..a521f1663 100644 ---- a/include/grub/util/install.h -+++ b/include/grub/util/install.h -@@ -219,6 +219,11 @@ grub_install_get_default_x86_platform (void); - const char * - grub_install_get_default_powerpc_machtype (void); - -+int -+grub_install_efivar_register_efi (grub_device_t efidir_grub_dev, -+ const char *efifile_path, -+ const char *efi_distributor); -+ - int - grub_install_register_efi (grub_device_t efidir_grub_dev, - const char *efifile_path, -diff --git a/util/grub-install.c b/util/grub-install.c -index ba06e1350..fdec5dd83 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -2061,7 +2061,7 @@ main (int argc, char *argv[]) - "\\System\\Library\\CoreServices", - efi_distributor); - if (ret) -- grub_util_error (_("efibootmgr failed to register the boot entry: %s"), -+ grub_util_error (_("failed to register the EFI boot entry: %s"), - strerror (ret)); - } - -@@ -2175,7 +2175,7 @@ main (int argc, char *argv[]) - ret = grub_install_register_efi (efidir_grub_dev, - efifile_path, efi_distributor); - if (ret) -- grub_util_error (_("efibootmgr failed to register the boot entry: %s"), -+ grub_util_error (_("failed to register the EFI boot entry: %s"), - strerror (ret)); - } - break; diff --git a/patches/grub/2.04/efinet-set-dns-from-uefi-proto.patch b/patches/grub/2.04/efinet-set-dns-from-uefi-proto.patch deleted file mode 100644 index 163d10bd1..000000000 --- a/patches/grub/2.04/efinet-set-dns-from-uefi-proto.patch +++ /dev/null @@ -1,339 +0,0 @@ -From b9b962cbf2657ee5912b6951654c6c6e1965fc3e Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 27 Oct 2016 17:43:21 -0400 -Subject: efinet: Setting DNS server from UEFI protocol - -In the URI device path node, any name rahter than address can be used for -looking up the resources so that DNS service become needed to get answer of the -name's address. Unfortunately the DNS is not defined in any of the device path -nodes so that we use the EFI_IP4_CONFIG2_PROTOCOL and EFI_IP6_CONFIG_PROTOCOL -to obtain it. - -These two protcols are defined the sections of UEFI specification. - - 27.5 EFI IPv4 Configuration II Protocol - 27.7 EFI IPv6 Configuration Protocol - -include/grub/efi/api.h: -Add new structure and protocol UUID of EFI_IP4_CONFIG2_PROTOCOL and -EFI_IP6_CONFIG_PROTOCOL. - -grub-core/net/drivers/efi/efinet.c: -Use the EFI_IP4_CONFIG2_PROTOCOL and EFI_IP6_CONFIG_PROTOCOL to obtain the list -of DNS server address for IPv4 and IPv6 respectively. The address of DNS -servers is structured into DHCPACK packet and feed into the same DHCP packet -processing functions to ensure the network interface is setting up the same way -it used to be. - -Signed-off-by: Michael Chang -Signed-off-by: Ken Lin - -Patch-Name: efinet-set-dns-from-uefi-proto.patch ---- - grub-core/net/drivers/efi/efinet.c | 163 +++++++++++++++++++++++++++++ - include/grub/efi/api.h | 76 ++++++++++++++ - 2 files changed, 239 insertions(+) - -diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index 2d3b00f0e..82a28fb6e 100644 ---- a/grub-core/net/drivers/efi/efinet.c -+++ b/grub-core/net/drivers/efi/efinet.c -@@ -30,6 +30,8 @@ GRUB_MOD_LICENSE ("GPLv3+"); - /* GUID. */ - static grub_efi_guid_t net_io_guid = GRUB_EFI_SIMPLE_NETWORK_GUID; - static grub_efi_guid_t pxe_io_guid = GRUB_EFI_PXE_GUID; -+static grub_efi_guid_t ip4_config_guid = GRUB_EFI_IP4_CONFIG2_PROTOCOL_GUID; -+static grub_efi_guid_t ip6_config_guid = GRUB_EFI_IP6_CONFIG_PROTOCOL_GUID; - - static grub_err_t - send_card_buffer (struct grub_net_card *dev, -@@ -325,6 +327,125 @@ grub_efinet_findcards (void) - grub_free (handles); - } - -+static grub_efi_handle_t -+grub_efi_locate_device_path (grub_efi_guid_t *protocol, grub_efi_device_path_t *device_path, -+ grub_efi_device_path_t **r_device_path) -+{ -+ grub_efi_handle_t handle; -+ grub_efi_status_t status; -+ -+ status = efi_call_3 (grub_efi_system_table->boot_services->locate_device_path, -+ protocol, &device_path, &handle); -+ -+ if (status != GRUB_EFI_SUCCESS) -+ return 0; -+ -+ if (r_device_path) -+ *r_device_path = device_path; -+ -+ return handle; -+} -+ -+static grub_efi_ipv4_address_t * -+grub_dns_server_ip4_address (grub_efi_device_path_t *dp, grub_efi_uintn_t *num_dns) -+{ -+ grub_efi_handle_t hnd; -+ grub_efi_status_t status; -+ grub_efi_ip4_config2_protocol_t *conf; -+ grub_efi_ipv4_address_t *addrs; -+ grub_efi_uintn_t data_size = 1 * sizeof (grub_efi_ipv4_address_t); -+ -+ hnd = grub_efi_locate_device_path (&ip4_config_guid, dp, NULL); -+ -+ if (!hnd) -+ return 0; -+ -+ conf = grub_efi_open_protocol (hnd, &ip4_config_guid, -+ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -+ -+ if (!conf) -+ return 0; -+ -+ addrs = grub_malloc (data_size); -+ if (!addrs) -+ return 0; -+ -+ status = efi_call_4 (conf->get_data, conf, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_DNSSERVER, -+ &data_size, addrs); -+ -+ if (status == GRUB_EFI_BUFFER_TOO_SMALL) -+ { -+ grub_free (addrs); -+ addrs = grub_malloc (data_size); -+ if (!addrs) -+ return 0; -+ -+ status = efi_call_4 (conf->get_data, conf, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_DNSSERVER, -+ &data_size, addrs); -+ } -+ -+ if (status != GRUB_EFI_SUCCESS) -+ { -+ grub_free (addrs); -+ return 0; -+ } -+ -+ *num_dns = data_size / sizeof (grub_efi_ipv4_address_t); -+ return addrs; -+} -+ -+static grub_efi_ipv6_address_t * -+grub_dns_server_ip6_address (grub_efi_device_path_t *dp, grub_efi_uintn_t *num_dns) -+{ -+ grub_efi_handle_t hnd; -+ grub_efi_status_t status; -+ grub_efi_ip6_config_protocol_t *conf; -+ grub_efi_ipv6_address_t *addrs; -+ grub_efi_uintn_t data_size = 1 * sizeof (grub_efi_ipv6_address_t); -+ -+ hnd = grub_efi_locate_device_path (&ip6_config_guid, dp, NULL); -+ -+ if (!hnd) -+ return 0; -+ -+ conf = grub_efi_open_protocol (hnd, &ip6_config_guid, -+ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -+ -+ if (!conf) -+ return 0; -+ -+ addrs = grub_malloc (data_size); -+ if (!addrs) -+ return 0; -+ -+ status = efi_call_4 (conf->get_data, conf, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_DNSSERVER, -+ &data_size, addrs); -+ -+ if (status == GRUB_EFI_BUFFER_TOO_SMALL) -+ { -+ grub_free (addrs); -+ addrs = grub_malloc (data_size); -+ if (!addrs) -+ return 0; -+ -+ status = efi_call_4 (conf->get_data, conf, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_DNSSERVER, -+ &data_size, addrs); -+ } -+ -+ if (status != GRUB_EFI_SUCCESS) -+ { -+ grub_free (addrs); -+ return 0; -+ } -+ -+ *num_dns = data_size / sizeof (grub_efi_ipv6_address_t); -+ return addrs; -+} -+ - static struct grub_net_buff * - grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *use_ipv6) - { -@@ -377,6 +498,8 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u - grub_efi_ipv4_device_path_t *ipv4 = (grub_efi_ipv4_device_path_t *) ldp; - struct grub_net_bootp_packet *bp; - grub_uint8_t *ptr; -+ grub_efi_ipv4_address_t *dns; -+ grub_efi_uintn_t num_dns; - - bp = (struct grub_net_bootp_packet *) nb->tail; - err = grub_netbuff_put (nb, sizeof (*bp) + 4); -@@ -438,6 +561,25 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u - *ptr++ = sizeof ("HTTPClient") - 1; - grub_memcpy (ptr, "HTTPClient", sizeof ("HTTPClient") - 1); - -+ dns = grub_dns_server_ip4_address (dp, &num_dns); -+ if (dns) -+ { -+ grub_efi_uintn_t size_dns = sizeof (*dns) * num_dns; -+ -+ ptr = nb->tail; -+ err = grub_netbuff_put (nb, size_dns + 2); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ *ptr++ = GRUB_NET_BOOTP_DNS; -+ *ptr++ = size_dns; -+ grub_memcpy (ptr, dns, size_dns); -+ grub_free (dns); -+ } -+ - ptr = nb->tail; - err = grub_netbuff_put (nb, 1); - if (err) -@@ -470,6 +612,8 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u - struct grub_net_dhcp6_option *opt; - struct grub_net_dhcp6_option_iana *iana; - struct grub_net_dhcp6_option_iaaddr *iaaddr; -+ grub_efi_ipv6_address_t *dns; -+ grub_efi_uintn_t num_dns; - - d6p = (struct grub_net_dhcp6_packet *)nb->tail; - err = grub_netbuff_put (nb, sizeof(*d6p)); -@@ -533,6 +677,25 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u - opt->len = grub_cpu_to_be16 (uri_len); - grub_memcpy (opt->data, uri_dp->uri, uri_len); - -+ dns = grub_dns_server_ip6_address (dp, &num_dns); -+ if (dns) -+ { -+ grub_efi_uintn_t size_dns = sizeof (*dns) * num_dns; -+ -+ opt = (struct grub_net_dhcp6_option *)nb->tail; -+ err = grub_netbuff_put (nb, sizeof(*opt) + size_dns); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_DNS_SERVERS); -+ opt->len = grub_cpu_to_be16 (size_dns); -+ grub_memcpy (opt->data, dns, size_dns); -+ grub_free (dns); -+ } -+ - *use_ipv6 = 1; - } - -diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index 664cea37b..75befd10e 100644 ---- a/include/grub/efi/api.h -+++ b/include/grub/efi/api.h -@@ -334,6 +334,16 @@ - { 0x8B, 0x8C, 0xE2, 0x1B, 0x01, 0xAE, 0xF2, 0xB7 } \ - } - -+#define GRUB_EFI_IP4_CONFIG2_PROTOCOL_GUID \ -+ { 0x5b446ed1, 0xe30b, 0x4faa, \ -+ { 0x87, 0x1a, 0x36, 0x54, 0xec, 0xa3, 0x60, 0x80 } \ -+ } -+ -+#define GRUB_EFI_IP6_CONFIG_PROTOCOL_GUID \ -+ { 0x937fe521, 0x95ae, 0x4d1a, \ -+ { 0x89, 0x29, 0x48, 0xbc, 0xd9, 0x0a, 0xd3, 0x1a } \ -+ } -+ - struct grub_efi_sal_system_table - { - grub_uint32_t signature; -@@ -1749,6 +1759,72 @@ struct grub_efi_block_io - }; - typedef struct grub_efi_block_io grub_efi_block_io_t; - -+enum grub_efi_ip4_config2_data_type { -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_INTERFACEINFO, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_POLICY, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_MANUAL_ADDRESS, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_GATEWAY, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_DNSSERVER, -+ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_MAXIMUM -+}; -+typedef enum grub_efi_ip4_config2_data_type grub_efi_ip4_config2_data_type_t; -+ -+struct grub_efi_ip4_config2_protocol -+{ -+ grub_efi_status_t (*set_data) (struct grub_efi_ip4_config2_protocol *this, -+ grub_efi_ip4_config2_data_type_t data_type, -+ grub_efi_uintn_t data_size, -+ void *data); -+ -+ grub_efi_status_t (*get_data) (struct grub_efi_ip4_config2_protocol *this, -+ grub_efi_ip4_config2_data_type_t data_type, -+ grub_efi_uintn_t *data_size, -+ void *data); -+ -+ grub_efi_status_t (*register_data_notify) (struct grub_efi_ip4_config2_protocol *this, -+ grub_efi_ip4_config2_data_type_t data_type, -+ grub_efi_event_t event); -+ -+ grub_efi_status_t (*unregister_datanotify) (struct grub_efi_ip4_config2_protocol *this, -+ grub_efi_ip4_config2_data_type_t data_type, -+ grub_efi_event_t event); -+}; -+typedef struct grub_efi_ip4_config2_protocol grub_efi_ip4_config2_protocol_t; -+ -+enum grub_efi_ip6_config_data_type { -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_INTERFACEINFO, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_ALT_INTERFACEID, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_POLICY, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_DUP_ADDR_DETECT_TRANSMITS, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_MANUAL_ADDRESS, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_GATEWAY, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_DNSSERVER, -+ GRUB_EFI_IP6_CONFIG_DATA_TYPE_MAXIMUM -+}; -+typedef enum grub_efi_ip6_config_data_type grub_efi_ip6_config_data_type_t; -+ -+struct grub_efi_ip6_config_protocol -+{ -+ grub_efi_status_t (*set_data) (struct grub_efi_ip6_config_protocol *this, -+ grub_efi_ip6_config_data_type_t data_type, -+ grub_efi_uintn_t data_size, -+ void *data); -+ -+ grub_efi_status_t (*get_data) (struct grub_efi_ip6_config_protocol *this, -+ grub_efi_ip6_config_data_type_t data_type, -+ grub_efi_uintn_t *data_size, -+ void *data); -+ -+ grub_efi_status_t (*register_data_notify) (struct grub_efi_ip6_config_protocol *this, -+ grub_efi_ip6_config_data_type_t data_type, -+ grub_efi_event_t event); -+ -+ grub_efi_status_t (*unregister_datanotify) (struct grub_efi_ip6_config_protocol *this, -+ grub_efi_ip6_config_data_type_t data_type, -+ grub_efi_event_t event); -+}; -+typedef struct grub_efi_ip6_config_protocol grub_efi_ip6_config_protocol_t; -+ - #if (GRUB_TARGET_SIZEOF_VOID_P == 4) || defined (__ia64__) \ - || defined (__aarch64__) || defined (__MINGW64__) || defined (__CYGWIN__) \ - || defined(__riscv) diff --git a/patches/grub/2.04/efinet-set-network-from-uefi-devpath.patch b/patches/grub/2.04/efinet-set-network-from-uefi-devpath.patch deleted file mode 100644 index 39083bbab..000000000 --- a/patches/grub/2.04/efinet-set-network-from-uefi-devpath.patch +++ /dev/null @@ -1,388 +0,0 @@ -From 9d4c6679960366658950f8727497a85cf3d26fc8 Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 27 Oct 2016 17:43:05 -0400 -Subject: efinet: Setting network from UEFI device path - -The PXE Base Code protocol used to obtain cached PXE DHCPACK packet is no -longer provided for HTTP Boot. Instead, we have to get the HTTP boot -information from the device path nodes defined in following UEFI Specification -sections. - - 9.3.5.12 IPv4 Device Path - 9.3.5.13 IPv6 Device Path - 9.3.5.23 Uniform Resource Identifiers (URI) Device Path - -This patch basically does: - -include/grub/efi/api.h: -Add new structure of Uniform Resource Identifiers (URI) Device Path - -grub-core/net/drivers/efi/efinet.c: -Check if PXE Base Code is available, if not it will try to obtain the netboot -information from the device path where the image booted from. The DHCPACK -packet is recoverd from the information in device patch and feed into the same -DHCP packet processing functions to ensure the network interface is setting up -the same way it used to be. - -Signed-off-by: Michael Chang -Signed-off-by: Ken Lin - -Patch-Name: efinet-set-network-from-uefi-devpath.patch ---- - grub-core/net/drivers/efi/efinet.c | 268 ++++++++++++++++++++++++++++- - include/grub/efi/api.h | 11 ++ - 2 files changed, 270 insertions(+), 9 deletions(-) - -diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index fc90415f2..2d3b00f0e 100644 ---- a/grub-core/net/drivers/efi/efinet.c -+++ b/grub-core/net/drivers/efi/efinet.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -324,6 +325,221 @@ grub_efinet_findcards (void) - grub_free (handles); - } - -+static struct grub_net_buff * -+grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *use_ipv6) -+{ -+ grub_efi_uint16_t uri_len; -+ grub_efi_device_path_t *ldp, *ddp; -+ grub_efi_uri_device_path_t *uri_dp; -+ struct grub_net_buff *nb; -+ grub_err_t err; -+ -+ ddp = grub_efi_duplicate_device_path (dp); -+ ldp = grub_efi_find_last_device_path (ddp); -+ -+ if (GRUB_EFI_DEVICE_PATH_TYPE (ldp) != GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE -+ || GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_URI_DEVICE_PATH_SUBTYPE) -+ { -+ grub_free (ddp); -+ return NULL; -+ } -+ -+ uri_len = GRUB_EFI_DEVICE_PATH_LENGTH (ldp) > 4 ? GRUB_EFI_DEVICE_PATH_LENGTH (ldp) - 4 : 0; -+ -+ if (!uri_len) -+ { -+ grub_free (ddp); -+ return NULL; -+ } -+ -+ uri_dp = (grub_efi_uri_device_path_t *) ldp; -+ -+ ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; -+ ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -+ ldp->length = sizeof (*ldp); -+ -+ ldp = grub_efi_find_last_device_path (ddp); -+ -+ if (GRUB_EFI_DEVICE_PATH_TYPE (ldp) != GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE -+ || (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE -+ && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE)) -+ { -+ grub_free (ddp); -+ return NULL; -+ } -+ -+ nb = grub_netbuff_alloc (512); -+ if (!nb) -+ return NULL; -+ -+ if (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) == GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE) -+ { -+ grub_efi_ipv4_device_path_t *ipv4 = (grub_efi_ipv4_device_path_t *) ldp; -+ struct grub_net_bootp_packet *bp; -+ grub_uint8_t *ptr; -+ -+ bp = (struct grub_net_bootp_packet *) nb->tail; -+ err = grub_netbuff_put (nb, sizeof (*bp) + 4); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ -+ if (sizeof(bp->boot_file) < uri_len) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ grub_memcpy (bp->boot_file, uri_dp->uri, uri_len); -+ grub_memcpy (&bp->your_ip, ipv4->local_ip_address, sizeof (bp->your_ip)); -+ grub_memcpy (&bp->server_ip, ipv4->remote_ip_address, sizeof (bp->server_ip)); -+ -+ bp->vendor[0] = GRUB_NET_BOOTP_RFC1048_MAGIC_0; -+ bp->vendor[1] = GRUB_NET_BOOTP_RFC1048_MAGIC_1; -+ bp->vendor[2] = GRUB_NET_BOOTP_RFC1048_MAGIC_2; -+ bp->vendor[3] = GRUB_NET_BOOTP_RFC1048_MAGIC_3; -+ -+ ptr = nb->tail; -+ err = grub_netbuff_put (nb, sizeof (ipv4->subnet_mask) + 2); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ *ptr++ = GRUB_NET_BOOTP_NETMASK; -+ *ptr++ = sizeof (ipv4->subnet_mask); -+ grub_memcpy (ptr, ipv4->subnet_mask, sizeof (ipv4->subnet_mask)); -+ -+ ptr = nb->tail; -+ err = grub_netbuff_put (nb, sizeof (ipv4->gateway_ip_address) + 2); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ *ptr++ = GRUB_NET_BOOTP_ROUTER; -+ *ptr++ = sizeof (ipv4->gateway_ip_address); -+ grub_memcpy (ptr, ipv4->gateway_ip_address, sizeof (ipv4->gateway_ip_address)); -+ -+ ptr = nb->tail; -+ err = grub_netbuff_put (nb, sizeof ("HTTPClient") + 1); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ *ptr++ = GRUB_NET_BOOTP_VENDOR_CLASS_IDENTIFIER; -+ *ptr++ = sizeof ("HTTPClient") - 1; -+ grub_memcpy (ptr, "HTTPClient", sizeof ("HTTPClient") - 1); -+ -+ ptr = nb->tail; -+ err = grub_netbuff_put (nb, 1); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ *ptr = GRUB_NET_BOOTP_END; -+ *use_ipv6 = 0; -+ -+ ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; -+ ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -+ ldp->length = sizeof (*ldp); -+ ldp = grub_efi_find_last_device_path (ddp); -+ -+ if (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) == GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE) -+ { -+ grub_efi_mac_address_device_path_t *mac = (grub_efi_mac_address_device_path_t *) ldp; -+ bp->hw_type = mac->if_type; -+ bp->hw_len = sizeof (bp->mac_addr); -+ grub_memcpy (bp->mac_addr, mac->mac_address, bp->hw_len); -+ } -+ } -+ else -+ { -+ grub_efi_ipv6_device_path_t *ipv6 = (grub_efi_ipv6_device_path_t *) ldp; -+ -+ struct grub_net_dhcp6_packet *d6p; -+ struct grub_net_dhcp6_option *opt; -+ struct grub_net_dhcp6_option_iana *iana; -+ struct grub_net_dhcp6_option_iaaddr *iaaddr; -+ -+ d6p = (struct grub_net_dhcp6_packet *)nb->tail; -+ err = grub_netbuff_put (nb, sizeof(*d6p)); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ d6p->message_type = GRUB_NET_DHCP6_REPLY; -+ -+ opt = (struct grub_net_dhcp6_option *)nb->tail; -+ err = grub_netbuff_put (nb, sizeof(*opt)); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IA_NA); -+ opt->len = grub_cpu_to_be16_compile_time (sizeof(*iana) + sizeof(*opt) + sizeof(*iaaddr)); -+ -+ err = grub_netbuff_put (nb, sizeof(*iana)); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ -+ opt = (struct grub_net_dhcp6_option *)nb->tail; -+ err = grub_netbuff_put (nb, sizeof(*opt)); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IAADDR); -+ opt->len = grub_cpu_to_be16_compile_time (sizeof (*iaaddr)); -+ -+ iaaddr = (struct grub_net_dhcp6_option_iaaddr *)nb->tail; -+ err = grub_netbuff_put (nb, sizeof(*iaaddr)); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ grub_memcpy (iaaddr->addr, ipv6->local_ip_address, sizeof(ipv6->local_ip_address)); -+ -+ opt = (struct grub_net_dhcp6_option *)nb->tail; -+ err = grub_netbuff_put (nb, sizeof(*opt) + uri_len); -+ if (err) -+ { -+ grub_free (ddp); -+ grub_netbuff_free (nb); -+ return NULL; -+ } -+ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_BOOTFILE_URL); -+ opt->len = grub_cpu_to_be16 (uri_len); -+ grub_memcpy (opt->data, uri_dp->uri, uri_len); -+ -+ *use_ipv6 = 1; -+ } -+ -+ grub_free (ddp); -+ return nb; -+} -+ - static void - grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, - char **path) -@@ -340,6 +556,11 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, - grub_efi_device_path_t *cdp; - struct grub_efi_pxe *pxe; - struct grub_efi_pxe_mode *pxe_mode; -+ grub_uint8_t *packet_buf; -+ grub_size_t packet_bufsz ; -+ int ipv6; -+ struct grub_net_buff *nb = NULL; -+ - if (card->driver != &efidriver) - continue; - cdp = grub_efi_get_device_path (card->efi_handle); -@@ -359,11 +580,21 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, - ldp = grub_efi_find_last_device_path (dp); - if (GRUB_EFI_DEVICE_PATH_TYPE (ldp) != GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE - || (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE -- && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE)) -+ && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE -+ && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_URI_DEVICE_PATH_SUBTYPE)) - continue; - dup_dp = grub_efi_duplicate_device_path (dp); - if (!dup_dp) - continue; -+ -+ if (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) == GRUB_EFI_URI_DEVICE_PATH_SUBTYPE) -+ { -+ dup_ldp = grub_efi_find_last_device_path (dup_dp); -+ dup_ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; -+ dup_ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -+ dup_ldp->length = sizeof (*dup_ldp); -+ } -+ - dup_ldp = grub_efi_find_last_device_path (dup_dp); - dup_ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; - dup_ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -@@ -375,16 +606,31 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, - } - pxe = grub_efi_open_protocol (hnd, &pxe_io_guid, - GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); -- if (! pxe) -- continue; -- pxe_mode = pxe->mode; -+ if (!pxe) -+ { -+ nb = grub_efinet_create_dhcp_ack_from_device_path (dp, &ipv6); -+ if (!nb) -+ { -+ grub_print_error (); -+ continue; -+ } -+ packet_buf = nb->head; -+ packet_bufsz = nb->tail - nb->head; -+ } -+ else -+ { -+ pxe_mode = pxe->mode; -+ packet_buf = (grub_uint8_t *) &pxe_mode->dhcp_ack; -+ packet_bufsz = sizeof (pxe_mode->dhcp_ack); -+ ipv6 = pxe_mode->using_ipv6; -+ } - -- if (pxe_mode->using_ipv6) -+ if (ipv6) - { - grub_net_configure_by_dhcpv6_reply (card->name, card, 0, - (struct grub_net_dhcp6_packet *) -- &pxe_mode->dhcp_ack, -- sizeof (pxe_mode->dhcp_ack), -+ packet_buf, -+ packet_bufsz, - 1, device, path); - if (grub_errno) - grub_print_error (); -@@ -393,10 +639,14 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, - { - grub_net_configure_by_dhcp_ack (card->name, card, 0, - (struct grub_net_bootp_packet *) -- &pxe_mode->dhcp_ack, -- sizeof (pxe_mode->dhcp_ack), -+ packet_buf, -+ packet_bufsz, - 1, device, path); - } -+ -+ if (nb) -+ grub_netbuff_free (nb); -+ - return; - } - } -diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index ca6cdc159..664cea37b 100644 ---- a/include/grub/efi/api.h -+++ b/include/grub/efi/api.h -@@ -825,6 +825,8 @@ struct grub_efi_ipv4_device_path - grub_efi_uint16_t remote_port; - grub_efi_uint16_t protocol; - grub_efi_uint8_t static_ip_address; -+ grub_efi_ipv4_address_t gateway_ip_address; -+ grub_efi_ipv4_address_t subnet_mask; - } GRUB_PACKED; - typedef struct grub_efi_ipv4_device_path grub_efi_ipv4_device_path_t; - -@@ -879,6 +881,15 @@ struct grub_efi_sata_device_path - } GRUB_PACKED; - typedef struct grub_efi_sata_device_path grub_efi_sata_device_path_t; - -+#define GRUB_EFI_URI_DEVICE_PATH_SUBTYPE 24 -+ -+struct grub_efi_uri_device_path -+{ -+ grub_efi_device_path_t header; -+ grub_efi_uint8_t uri[0]; -+} GRUB_PACKED; -+typedef struct grub_efi_uri_device_path grub_efi_uri_device_path_t; -+ - #define GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE 10 - - /* Media Device Path. */ diff --git a/patches/grub/2.04/efinet-uefi-ipv6-pxe-support.patch b/patches/grub/2.04/efinet-uefi-ipv6-pxe-support.patch deleted file mode 100644 index e54aa78b7..000000000 --- a/patches/grub/2.04/efinet-uefi-ipv6-pxe-support.patch +++ /dev/null @@ -1,126 +0,0 @@ -From da20e93fb30294801f9ea0dd2917d945654174e1 Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 27 Oct 2016 17:41:21 -0400 -Subject: efinet: UEFI IPv6 PXE support - -When grub2 image is booted from UEFI IPv6 PXE, the DHCPv6 Reply packet is -cached in firmware buffer which can be obtained by PXE Base Code protocol. The -network interface can be setup through the parameters in that obtained packet. - -Signed-off-by: Michael Chang -Signed-off-by: Ken Lin - -Patch-Name: efinet-uefi-ipv6-pxe-support.patch ---- - grub-core/net/drivers/efi/efinet.c | 24 ++++++++++--- - include/grub/efi/api.h | 55 +++++++++++++++++++++++++++++- - 2 files changed, 73 insertions(+), 6 deletions(-) - -diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index 5388f952b..fc90415f2 100644 ---- a/grub-core/net/drivers/efi/efinet.c -+++ b/grub-core/net/drivers/efi/efinet.c -@@ -378,11 +378,25 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, - if (! pxe) - continue; - pxe_mode = pxe->mode; -- grub_net_configure_by_dhcp_ack (card->name, card, 0, -- (struct grub_net_bootp_packet *) -- &pxe_mode->dhcp_ack, -- sizeof (pxe_mode->dhcp_ack), -- 1, device, path); -+ -+ if (pxe_mode->using_ipv6) -+ { -+ grub_net_configure_by_dhcpv6_reply (card->name, card, 0, -+ (struct grub_net_dhcp6_packet *) -+ &pxe_mode->dhcp_ack, -+ sizeof (pxe_mode->dhcp_ack), -+ 1, device, path); -+ if (grub_errno) -+ grub_print_error (); -+ } -+ else -+ { -+ grub_net_configure_by_dhcp_ack (card->name, card, 0, -+ (struct grub_net_bootp_packet *) -+ &pxe_mode->dhcp_ack, -+ sizeof (pxe_mode->dhcp_ack), -+ 1, device, path); -+ } - return; - } - } -diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index addcbfa8f..ca6cdc159 100644 ---- a/include/grub/efi/api.h -+++ b/include/grub/efi/api.h -@@ -1452,14 +1452,67 @@ typedef struct grub_efi_simple_text_output_interface grub_efi_simple_text_output - - typedef grub_uint8_t grub_efi_pxe_packet_t[1472]; - -+typedef struct { -+ grub_uint8_t addr[4]; -+} grub_efi_pxe_ipv4_address_t; -+ -+typedef struct { -+ grub_uint8_t addr[16]; -+} grub_efi_pxe_ipv6_address_t; -+ -+typedef struct { -+ grub_uint8_t addr[32]; -+} grub_efi_pxe_mac_address_t; -+ -+typedef union { -+ grub_uint32_t addr[4]; -+ grub_efi_pxe_ipv4_address_t v4; -+ grub_efi_pxe_ipv6_address_t v6; -+} grub_efi_pxe_ip_address_t; -+ -+#define GRUB_EFI_PXE_BASE_CODE_MAX_IPCNT 8 -+typedef struct { -+ grub_uint8_t filters; -+ grub_uint8_t ip_cnt; -+ grub_uint16_t reserved; -+ grub_efi_pxe_ip_address_t ip_list[GRUB_EFI_PXE_BASE_CODE_MAX_IPCNT]; -+} grub_efi_pxe_ip_filter_t; -+ -+typedef struct { -+ grub_efi_pxe_ip_address_t ip_addr; -+ grub_efi_pxe_mac_address_t mac_addr; -+} grub_efi_pxe_arp_entry_t; -+ -+typedef struct { -+ grub_efi_pxe_ip_address_t ip_addr; -+ grub_efi_pxe_ip_address_t subnet_mask; -+ grub_efi_pxe_ip_address_t gw_addr; -+} grub_efi_pxe_route_entry_t; -+ -+ -+#define GRUB_EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES 8 -+#define GRUB_EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES 8 -+ - typedef struct grub_efi_pxe_mode - { -- grub_uint8_t unused[52]; -+ grub_uint8_t started; -+ grub_uint8_t ipv6_available; -+ grub_uint8_t ipv6_supported; -+ grub_uint8_t using_ipv6; -+ grub_uint8_t unused[16]; -+ grub_efi_pxe_ip_address_t station_ip; -+ grub_efi_pxe_ip_address_t subnet_mask; - grub_efi_pxe_packet_t dhcp_discover; - grub_efi_pxe_packet_t dhcp_ack; - grub_efi_pxe_packet_t proxy_offer; - grub_efi_pxe_packet_t pxe_discover; - grub_efi_pxe_packet_t pxe_reply; -+ grub_efi_pxe_packet_t pxe_bis_reply; -+ grub_efi_pxe_ip_filter_t ip_filter; -+ grub_uint32_t arp_cache_entries; -+ grub_efi_pxe_arp_entry_t arp_cache[GRUB_EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES]; -+ grub_uint32_t route_table_entries; -+ grub_efi_pxe_route_entry_t route_table[GRUB_EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES]; - } grub_efi_pxe_mode_t; - - typedef struct grub_efi_pxe diff --git a/patches/grub/2.04/emu-free-null.patch b/patches/grub/2.04/emu-free-null.patch deleted file mode 100644 index 466bcad18..000000000 --- a/patches/grub/2.04/emu-free-null.patch +++ /dev/null @@ -1,32 +0,0 @@ -From c0a2098a2d47a752f9416a655a7010973298f66f Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Sun, 19 Jul 2020 16:08:08 -0400 -Subject: emu: make grub_free(NULL) safe - -The grub_free() implementation in kern/mm.c safely handles NULL -pointers, and code at many places depends on this. We don't know that -the same is true on all host OSes, so we need to handle the same -behavior in grub-emu's implementation. - -Signed-off-by: Peter Jones -Reviewed-by: Darren Kenny - -Patch-Name: emu-free-null.patch ---- - grub-core/kern/emu/mm.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/grub-core/kern/emu/mm.c b/grub-core/kern/emu/mm.c -index 145b01d37..4d1046a21 100644 ---- a/grub-core/kern/emu/mm.c -+++ b/grub-core/kern/emu/mm.c -@@ -60,7 +60,8 @@ grub_zalloc (grub_size_t size) - void - grub_free (void *ptr) - { -- free (ptr); -+ if (ptr) -+ free (ptr); - } - - void * diff --git a/patches/grub/2.04/fix-lockdown.patch b/patches/grub/2.04/fix-lockdown.patch deleted file mode 100644 index 7bfcc18d7..000000000 --- a/patches/grub/2.04/fix-lockdown.patch +++ /dev/null @@ -1,45 +0,0 @@ -From ea65cb74601fd4c8229349d6d937d18033af796e Mon Sep 17 00:00:00 2001 -From: Luca Boccassi -Date: Tue, 15 May 2018 11:36:46 +0100 -Subject: Do not overwrite sentinel byte in boot_params, breaks lockdown - -grub currently copies the entire boot_params, which includes setting -sentinel byte to 0xff, which triggers sanitize_boot_params in the kernel -which in turn clears various boot_params variables, including the -indication that the bootloader chain is verified and thus the kernel -disables lockdown mode. According to the information on the Fedora bug -tracker, only the information from byte 0x1f1 is necessary, so start -copying from there instead. - -Author: Luca Boccassi -Bug-Fedora: https://bugzilla.redhat.com/show_bug.cgi?id=1418360 -Forwarded: no - -Patch-Name: fix-lockdown.patch ---- - grub-core/loader/i386/efi/linux.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 16372a0c8..34605dfed 100644 ---- a/grub-core/loader/i386/efi/linux.c -+++ b/grub-core/loader/i386/efi/linux.c -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -334,7 +335,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - lh.code32_start = (grub_uint32_t)(grub_addr_t) kernel_mem; - } - -- grub_memcpy (params, &lh, 2 * 512); -+ /* do not overwrite below boot_params->hdr to avoid setting the sentinel byte */ -+ start = offsetof (struct linux_kernel_params, setup_sects); -+ grub_memcpy ((grub_uint8_t *)params + start, (grub_uint8_t *)&lh + start, 2 * 512 - start); - - params->type_of_loader = 0x21; - diff --git a/patches/grub/2.04/font-name-leak.patch b/patches/grub/2.04/font-name-leak.patch deleted file mode 100644 index 72fb53f85..000000000 --- a/patches/grub/2.04/font-name-leak.patch +++ /dev/null @@ -1,36 +0,0 @@ -From fcc11dc1e68192d50cfb914314fb5e2f0504c498 Mon Sep 17 00:00:00 2001 -From: Daniel Kiper -Date: Tue, 7 Jul 2020 15:36:26 +0200 -Subject: font: Do not load more than one NAME section - -The GRUB font file can have one NAME section only. Though if somebody -crafts a broken font file with many NAME sections and loads it then the -GRUB leaks memory. So, prevent against that by loading first NAME -section and failing in controlled way on following one. - -Reported-by: Chris Coulson -Signed-off-by: Daniel Kiper -Reviewed-by: Jan Setje-Eilers - -Patch-Name: font-name-leak.patch ---- - grub-core/font/font.c | 6 ++++++ - 1 file changed, 6 insertions(+) - -diff --git a/grub-core/font/font.c b/grub-core/font/font.c -index 5edb477ac..d09bb38d8 100644 ---- a/grub-core/font/font.c -+++ b/grub-core/font/font.c -@@ -532,6 +532,12 @@ grub_font_load (const char *filename) - if (grub_memcmp (section.name, FONT_FORMAT_SECTION_NAMES_FONT_NAME, - sizeof (FONT_FORMAT_SECTION_NAMES_FONT_NAME) - 1) == 0) - { -+ if (font->name != NULL) -+ { -+ grub_error (GRUB_ERR_BAD_FONT, "invalid font file: too many NAME sections"); -+ goto fail; -+ } -+ - font->name = read_section_as_string (§ion); - if (!font->name) - goto fail; diff --git a/patches/grub/2.04/gettext-quiet.patch b/patches/grub/2.04/gettext-quiet.patch deleted file mode 100644 index 09977de4b..000000000 --- a/patches/grub/2.04/gettext-quiet.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 5264381cd94fc29aea05e50654df364e131e777f Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:02 +0000 -Subject: Silence error messages when translations are unavailable - -Bug: https://savannah.gnu.org/bugs/?35880 -Forwarded: https://savannah.gnu.org/bugs/?35880 -Last-Update: 2013-11-14 - -Patch-Name: gettext-quiet.patch ---- - grub-core/gettext/gettext.c | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/grub-core/gettext/gettext.c b/grub-core/gettext/gettext.c -index 4d02e62c1..2a19389f2 100644 ---- a/grub-core/gettext/gettext.c -+++ b/grub-core/gettext/gettext.c -@@ -427,6 +427,11 @@ grub_gettext_init_ext (struct grub_gettext_context *ctx, - if (locale[0] == 'e' && locale[1] == 'n' - && (locale[2] == '\0' || locale[2] == '_')) - grub_errno = err = GRUB_ERR_NONE; -+ -+ /* If no translations are available, fall back to untranslated text. */ -+ if (err == GRUB_ERR_FILE_NOT_FOUND) -+ grub_errno = err = GRUB_ERR_NONE; -+ - return err; - } - diff --git a/patches/grub/2.04/gfxmenu-load-image-double-free.patch b/patches/grub/2.04/gfxmenu-load-image-double-free.patch deleted file mode 100644 index d1a2d5b10..000000000 --- a/patches/grub/2.04/gfxmenu-load-image-double-free.patch +++ /dev/null @@ -1,34 +0,0 @@ -From e283bb250350e8c2f7edeb344a624c57c26b042f Mon Sep 17 00:00:00 2001 -From: Alexey Makhalov -Date: Wed, 8 Jul 2020 20:41:56 +0000 -Subject: gfxmenu: Fix double free in load_image() - -self->bitmap should be zeroed after free. Otherwise, there is a chance -to double free (USE_AFTER_FREE) it later in rescale_image(). - -Fixes: CID 292472 - -Signed-off-by: Alexey Makhalov -Reviewed-by: Daniel Kiper - -Patch-Name: gfxmenu-load-image-double-free.patch ---- - grub-core/gfxmenu/gui_image.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/grub-core/gfxmenu/gui_image.c b/grub-core/gfxmenu/gui_image.c -index 29784ed2d..6b2e976f1 100644 ---- a/grub-core/gfxmenu/gui_image.c -+++ b/grub-core/gfxmenu/gui_image.c -@@ -195,7 +195,10 @@ load_image (grub_gui_image_t self, const char *path) - return grub_errno; - - if (self->bitmap && (self->bitmap != self->raw_bitmap)) -- grub_video_bitmap_destroy (self->bitmap); -+ { -+ grub_video_bitmap_destroy (self->bitmap); -+ self->bitmap = 0; -+ } - if (self->raw_bitmap) - grub_video_bitmap_destroy (self->raw_bitmap); - diff --git a/patches/grub/2.04/gfxpayload-dynamic.patch b/patches/grub/2.04/gfxpayload-dynamic.patch deleted file mode 100644 index 7c802aa33..000000000 --- a/patches/grub/2.04/gfxpayload-dynamic.patch +++ /dev/null @@ -1,290 +0,0 @@ -From f892ba14f3ec78b03cd3feb2f5845a223786823f Mon Sep 17 00:00:00 2001 -From: Evan Broder -Date: Mon, 13 Jan 2014 12:13:29 +0000 -Subject: Add configure option to enable gfxpayload=keep dynamically - -Set GRUB_GFXPAYLOAD_LINUX=keep unless it's known to be unsupported on -the current hardware. See -https://blueprints.launchpad.net/ubuntu/+spec/packageselection-foundations-n-grub2-boot-framebuffer. - -Author: Colin Watson -Forwarded: no -Last-Update: 2019-05-25 - -Patch-Name: gfxpayload-dynamic.patch ---- - configure.ac | 11 ++ - grub-core/Makefile.core.def | 8 ++ - grub-core/commands/i386/pc/hwmatch.c | 146 +++++++++++++++++++++++++++ - include/grub/file.h | 1 + - util/grub.d/10_linux.in | 37 ++++++- - 5 files changed, 200 insertions(+), 3 deletions(-) - create mode 100644 grub-core/commands/i386/pc/hwmatch.c - -diff --git a/configure.ac b/configure.ac -index 7dda5bb32..dbc429ce0 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1879,6 +1879,17 @@ else - fi - AC_SUBST([QUICK_BOOT]) - -+AC_ARG_ENABLE([gfxpayload-dynamic], -+ [AS_HELP_STRING([--enable-gfxpayload-dynamic], -+ [use GRUB_GFXPAYLOAD_LINUX=keep unless explicitly unsupported on current hardware (default=no)])], -+ [], [enable_gfxpayload_dynamic=no]) -+if test x"$enable_gfxpayload_dynamic" = xyes ; then -+ GFXPAYLOAD_DYNAMIC=1 -+else -+ GFXPAYLOAD_DYNAMIC=0 -+fi -+AC_SUBST([GFXPAYLOAD_DYNAMIC]) -+ - LIBS="" - - AC_SUBST([FONT_SOURCE]) -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 67a98abbb..836bf0a59 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -971,6 +971,14 @@ module = { - common = lib/hexdump.c; - }; - -+module = { -+ name = hwmatch; -+ i386_pc = commands/i386/pc/hwmatch.c; -+ enable = i386_pc; -+ cflags = '$(CFLAGS_POSIX) $(CFLAGS_GNULIB)'; -+ cppflags = '$(CPPFLAGS_POSIX) $(CPPFLAGS_GNULIB)'; -+}; -+ - module = { - name = keystatus; - common = commands/keystatus.c; -diff --git a/grub-core/commands/i386/pc/hwmatch.c b/grub-core/commands/i386/pc/hwmatch.c -new file mode 100644 -index 000000000..6de07cecc ---- /dev/null -+++ b/grub-core/commands/i386/pc/hwmatch.c -@@ -0,0 +1,146 @@ -+/* hwmatch.c - Match hardware against a whitelist/blacklist. */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2011 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+GRUB_MOD_LICENSE ("GPLv3+"); -+ -+/* Context for grub_cmd_hwmatch. */ -+struct hwmatch_ctx -+{ -+ grub_file_t matches_file; -+ int class_match; -+ int match; -+}; -+ -+/* Helper for grub_cmd_hwmatch. */ -+static int -+hwmatch_iter (grub_pci_device_t dev, grub_pci_id_t pciid, void *data) -+{ -+ struct hwmatch_ctx *ctx = data; -+ grub_pci_address_t addr; -+ grub_uint32_t class, baseclass, vendor, device; -+ grub_pci_id_t subpciid; -+ grub_uint32_t subvendor, subdevice, subclass; -+ char *id, *line; -+ -+ addr = grub_pci_make_address (dev, GRUB_PCI_REG_CLASS); -+ class = grub_pci_read (addr); -+ baseclass = class >> 24; -+ -+ if (ctx->class_match != baseclass) -+ return 0; -+ -+ vendor = pciid & 0xffff; -+ device = pciid >> 16; -+ -+ addr = grub_pci_make_address (dev, GRUB_PCI_REG_SUBVENDOR); -+ subpciid = grub_pci_read (addr); -+ -+ subclass = (class >> 16) & 0xff; -+ subvendor = subpciid & 0xffff; -+ subdevice = subpciid >> 16; -+ -+ id = grub_xasprintf ("v%04xd%04xsv%04xsd%04xbc%02xsc%02x", -+ vendor, device, subvendor, subdevice, -+ baseclass, subclass); -+ -+ grub_file_seek (ctx->matches_file, 0); -+ while ((line = grub_file_getline (ctx->matches_file)) != NULL) -+ { -+ char *anchored_line; -+ regex_t regex; -+ int ret; -+ -+ if (! *line || *line == '#') -+ { -+ grub_free (line); -+ continue; -+ } -+ -+ anchored_line = grub_xasprintf ("^%s$", line); -+ ret = regcomp (®ex, anchored_line, REG_EXTENDED | REG_NOSUB); -+ grub_free (anchored_line); -+ if (ret) -+ { -+ grub_free (line); -+ continue; -+ } -+ -+ ret = regexec (®ex, id, 0, NULL, 0); -+ regfree (®ex); -+ grub_free (line); -+ if (! ret) -+ { -+ ctx->match = 1; -+ return 1; -+ } -+ } -+ -+ return 0; -+} -+ -+static grub_err_t -+grub_cmd_hwmatch (grub_command_t cmd __attribute__ ((unused)), -+ int argc, char **args) -+{ -+ struct hwmatch_ctx ctx = { .match = 0 }; -+ char *match_str; -+ -+ if (argc < 2) -+ return grub_error (GRUB_ERR_BAD_ARGUMENT, "list file and class required"); -+ -+ ctx.matches_file = grub_file_open (args[0], GRUB_FILE_TYPE_HWMATCH); -+ if (! ctx.matches_file) -+ return grub_errno; -+ -+ ctx.class_match = grub_strtol (args[1], 0, 10); -+ -+ grub_pci_iterate (hwmatch_iter, &ctx); -+ -+ match_str = grub_xasprintf ("%d", ctx.match); -+ grub_env_set ("match", match_str); -+ grub_free (match_str); -+ -+ grub_file_close (ctx.matches_file); -+ -+ return GRUB_ERR_NONE; -+} -+ -+static grub_command_t cmd; -+ -+GRUB_MOD_INIT(hwmatch) -+{ -+ cmd = grub_register_command ("hwmatch", grub_cmd_hwmatch, -+ N_("MATCHES-FILE CLASS"), -+ N_("Match PCI devices.")); -+} -+ -+GRUB_MOD_FINI(hwmatch) -+{ -+ grub_unregister_command (cmd); -+} -diff --git a/include/grub/file.h b/include/grub/file.h -index 31567483c..e3c4cae2b 100644 ---- a/include/grub/file.h -+++ b/include/grub/file.h -@@ -122,6 +122,7 @@ enum grub_file_type - GRUB_FILE_TYPE_FS_SEARCH, - GRUB_FILE_TYPE_AUDIO, - GRUB_FILE_TYPE_VBE_DUMP, -+ GRUB_FILE_TYPE_HWMATCH, - - GRUB_FILE_TYPE_LOADENV, - GRUB_FILE_TYPE_SAVEENV, -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 51cdb5e1d..2f5217358 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -23,6 +23,7 @@ datarootdir="@datarootdir@" - ubuntu_recovery="@UBUNTU_RECOVERY@" - quiet_boot="@QUIET_BOOT@" - quick_boot="@QUICK_BOOT@" -+gfxpayload_dynamic="@GFXPAYLOAD_DYNAMIC@" - - . "$pkgdatadir/grub-mkconfig_lib" - -@@ -145,9 +146,10 @@ linux_entry () - if [ "x$GRUB_GFXPAYLOAD_LINUX" != xtext ]; then - echo " load_video" | sed "s/^/$submenu_indentation/" - fi -- if [ "$ubuntu_recovery" = 0 ] || [ x$type != xrecovery ]; then -- echo " set gfxpayload=$GRUB_GFXPAYLOAD_LINUX" | sed "s/^/$submenu_indentation/" -- fi -+ fi -+ if ([ "$ubuntu_recovery" = 0 ] || [ x$type != xrecovery ]) && \ -+ ([ "x$GRUB_GFXPAYLOAD_LINUX" != x ] || [ "$gfxpayload_dynamic" = 1 ]); then -+ echo " set gfxpayload=\$linux_gfx_mode" | sed "s/^/$submenu_indentation/" - fi - - echo " insmod gzio" | sed "s/^/$submenu_indentation/" -@@ -226,6 +228,35 @@ prepare_root_cache= - boot_device_id= - title_correction_code= - -+# Use ELILO's generic "efifb" when it's known to be available. -+# FIXME: We need an interface to select vesafb in case efifb can't be used. -+if [ "x$GRUB_GFXPAYLOAD_LINUX" != x ] || [ "$gfxpayload_dynamic" = 0 ]; then -+ echo "set linux_gfx_mode=$GRUB_GFXPAYLOAD_LINUX" -+else -+ cat << EOF -+if [ "\${recordfail}" != 1 ]; then -+ if [ -e \${prefix}/gfxblacklist.txt ]; then -+ if hwmatch \${prefix}/gfxblacklist.txt 3; then -+ if [ \${match} = 0 ]; then -+ set linux_gfx_mode=keep -+ else -+ set linux_gfx_mode=text -+ fi -+ else -+ set linux_gfx_mode=text -+ fi -+ else -+ set linux_gfx_mode=keep -+ fi -+else -+ set linux_gfx_mode=text -+fi -+EOF -+fi -+cat << EOF -+export linux_gfx_mode -+EOF -+ - # Extra indentation to add to menu entries in a submenu. We're not in a submenu - # yet, so it's empty. In a submenu it will be equal to '\t' (one tab). - submenu_indentation="" diff --git a/patches/grub/2.04/gfxpayload-keep-default.patch b/patches/grub/2.04/gfxpayload-keep-default.patch deleted file mode 100644 index 4ef95cfd8..000000000 --- a/patches/grub/2.04/gfxpayload-keep-default.patch +++ /dev/null @@ -1,39 +0,0 @@ -From d768f3c486db716fe662b32afc1327f27fad012b Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:12:57 +0000 -Subject: Disable gfxpayload=keep by default - -Setting gfxpayload=keep has been known to cause efifb to be -inappropriately enabled. In any case, with the current Linux kernel the -result of this option is that early kernelspace will be unable to print -anything to the console, so (for example) if boot fails and you end up -dumped to an initramfs prompt, you won't be able to see anything on the -screen. As such it shouldn't be enabled by default in Debian, no matter -what kernel options are enabled. - -gfxpayload=keep is a good idea but rather ahead of its time ... - -Bug-Debian: http://bugs.debian.org/567245 -Forwarded: no -Last-Update: 2013-12-25 - -Patch-Name: gfxpayload-keep-default.patch ---- - util/grub.d/10_linux.in | 4 ---- - 1 file changed, 4 deletions(-) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 4532266be..dd5a60c71 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -114,10 +114,6 @@ linux_entry () - # FIXME: We need an interface to select vesafb in case efifb can't be used. - if [ "x$GRUB_GFXPAYLOAD_LINUX" = x ]; then - echo " load_video" | sed "s/^/$submenu_indentation/" -- if grep -qx "CONFIG_FB_EFI=y" "${config}" 2> /dev/null \ -- && grep -qx "CONFIG_VT_HW_CONSOLE_BINDING=y" "${config}" 2> /dev/null; then -- echo " set gfxpayload=keep" | sed "s/^/$submenu_indentation/" -- fi - else - if [ "x$GRUB_GFXPAYLOAD_LINUX" != xtext ]; then - echo " load_video" | sed "s/^/$submenu_indentation/" diff --git a/patches/grub/2.04/grub-install-extra-removable.patch b/patches/grub/2.04/grub-install-extra-removable.patch deleted file mode 100644 index 90c43ad59..000000000 --- a/patches/grub/2.04/grub-install-extra-removable.patch +++ /dev/null @@ -1,202 +0,0 @@ -From 6394c8c2ce2bdec46c94942fae6546e125047165 Mon Sep 17 00:00:00 2001 -From: Steve McIntyre <93sam@debian.org> -Date: Wed, 3 Dec 2014 01:25:12 +0000 -Subject: Add support for forcing EFI installation to the removable media path - -Add an extra option to grub-install "--force-extra-removable". On EFI -platforms, this will cause an extra copy of the grub-efi image to be -written to the appropriate removable media patch -/boot/efi/EFI/BOOT/BOOT$ARCH.EFI as well. This will help with broken -UEFI implementations where the firmware does not work when configured -with new boot paths. - -Signed-off-by: Steve McIntyre <93sam@debian.org> - -Bug-Debian: https://bugs.debian.org/767037 https://bugs.debian.org/773092 -Forwarded: Not yet -Last-Update: 2014-12-20 - -Patch-Name: grub-install-extra-removable.patch ---- - util/grub-install.c | 110 +++++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 108 insertions(+), 2 deletions(-) - -diff --git a/util/grub-install.c b/util/grub-install.c -index caadada98..ab79828a5 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -56,6 +56,7 @@ - - static char *target; - static int removable = 0; -+static int force_extra_removable = 0; - static int recheck = 0; - static int update_nvram = 1; - static char *install_device = NULL; -@@ -113,7 +114,8 @@ enum - OPTION_LABEL_BGCOLOR, - OPTION_PRODUCT_VERSION, - OPTION_UEFI_SECURE_BOOT, -- OPTION_NO_UEFI_SECURE_BOOT -+ OPTION_NO_UEFI_SECURE_BOOT, -+ OPTION_FORCE_EXTRA_REMOVABLE - }; - - static int fs_probe = 1; -@@ -216,6 +218,10 @@ argp_parser (int key, char *arg, struct argp_state *state) - removable = 1; - return 0; - -+ case OPTION_FORCE_EXTRA_REMOVABLE: -+ force_extra_removable = 1; -+ return 0; -+ - case OPTION_ALLOW_FLOPPY: - allow_floppy = 1; - return 0; -@@ -322,6 +328,9 @@ static struct argp_option options[] = { - N_("do not install an image usable with UEFI Secure Boot, even if the " - "system was currently started using it. " - "This option is only available on EFI."), 2}, -+ {"force-extra-removable", OPTION_FORCE_EXTRA_REMOVABLE, 0, 0, -+ N_("force installation to the removable media path also. " -+ "This option is only available on EFI."), 2}, - {0, 0, 0, 0, 0, 0} - }; - -@@ -839,6 +848,91 @@ fill_core_services (const char *core_services) - free (sysv_plist); - } - -+/* Helper routine for also_install_removable() below. Walk through the -+ specified dir, looking to see if there is a file/dir that matches -+ the search string exactly, but in a case-insensitive manner. If so, -+ return a copy of the exact file/dir that *does* exist. If not, -+ return NULL */ -+static char * -+check_component_exists(const char *dir, -+ const char *search) -+{ -+ grub_util_fd_dir_t d; -+ grub_util_fd_dirent_t de; -+ char *found = NULL; -+ -+ d = grub_util_fd_opendir (dir); -+ if (!d) -+ grub_util_error (_("cannot open directory `%s': %s"), -+ dir, grub_util_fd_strerror ()); -+ -+ while ((de = grub_util_fd_readdir (d))) -+ { -+ if (strcasecmp (de->d_name, search) == 0) -+ { -+ found = xstrdup (de->d_name); -+ break; -+ } -+ } -+ grub_util_fd_closedir (d); -+ return found; -+} -+ -+/* Some complex directory-handling stuff in here, to cope with -+ * case-insensitive FAT/VFAT filesystem semantics. Ugh. */ -+static void -+also_install_removable(const char *src, -+ const char *base_efidir, -+ const char *efi_suffix_upper) -+{ -+ char *efi_file = NULL; -+ char *dst = NULL; -+ char *cur = NULL; -+ char *found = NULL; -+ -+ if (!efi_suffix_upper) -+ grub_util_error ("%s", _("efi_suffix_upper not set")); -+ efi_file = xasprintf ("BOOT%s.EFI", efi_suffix_upper); -+ -+ /* We need to install in $base_efidir/EFI/BOOT/$efi_file, but we -+ * need to cope with case-insensitive stuff here. Build the path one -+ * component at a time, checking for existing matches each time. */ -+ -+ /* Look for "EFI" in base_efidir. Make it if it does not exist in -+ * some form. */ -+ found = check_component_exists(base_efidir, "EFI"); -+ if (found == NULL) -+ found = xstrdup("EFI"); -+ dst = grub_util_path_concat (2, base_efidir, found); -+ cur = xstrdup (dst); -+ free (dst); -+ free (found); -+ grub_install_mkdir_p (cur); -+ -+ /* Now BOOT */ -+ found = check_component_exists(cur, "BOOT"); -+ if (found == NULL) -+ found = xstrdup("BOOT"); -+ dst = grub_util_path_concat (2, cur, found); -+ cur = xstrdup (dst); -+ free (dst); -+ free (found); -+ grub_install_mkdir_p (cur); -+ -+ /* Now $efi_file */ -+ found = check_component_exists(cur, efi_file); -+ if (found == NULL) -+ found = xstrdup(efi_file); -+ dst = grub_util_path_concat (2, cur, found); -+ cur = xstrdup (dst); -+ free (dst); -+ free (found); -+ grub_install_copy_file (src, cur, 1); -+ -+ free (cur); -+ free (efi_file); -+} -+ - int - main (int argc, char *argv[]) - { -@@ -856,6 +950,7 @@ main (int argc, char *argv[]) - char *relative_grubdir; - char **efidir_device_names = NULL; - grub_device_t efidir_grub_dev = NULL; -+ char *base_efidir = NULL; - char *efidir_grub_devname; - int efidir_is_mac = 0; - int is_prep = 0; -@@ -888,6 +983,9 @@ main (int argc, char *argv[]) - bootloader_id = xstrdup ("grub"); - } - -+ if (removable && force_extra_removable) -+ grub_util_error (_("Invalid to use both --removable and --force_extra_removable")); -+ - if (!grub_install_source_directory) - { - if (!target) -@@ -1107,6 +1205,8 @@ main (int argc, char *argv[]) - if (!efidir_is_mac && grub_strcmp (fs->name, "fat") != 0) - grub_util_error (_("%s doesn't look like an EFI partition"), efidir); - -+ base_efidir = xstrdup(efidir); -+ - /* The EFI specification requires that an EFI System Partition must - contain an "EFI" subdirectory, and that OS loaders are stored in - subdirectories below EFI. Vendors are expected to pick names that do -@@ -2023,9 +2123,15 @@ main (int argc, char *argv[]) - fprintf (config_dst_f, "configfile $prefix/grub.cfg\n"); - fclose (config_dst_f); - free (config_dst); -+ if (force_extra_removable) -+ also_install_removable(efi_signed, base_efidir, efi_suffix_upper); - } - else -- grub_install_copy_file (imgfile, dst, 1); -+ { -+ grub_install_copy_file (imgfile, dst, 1); -+ if (force_extra_removable) -+ also_install_removable(imgfile, base_efidir, efi_suffix_upper); -+ } - free (dst); - } - if (!removable && update_nvram) diff --git a/patches/grub/2.04/grub-install-pvxen-paths.patch b/patches/grub/2.04/grub-install-pvxen-paths.patch deleted file mode 100644 index e461fc25e..000000000 --- a/patches/grub/2.04/grub-install-pvxen-paths.patch +++ /dev/null @@ -1,71 +0,0 @@ -From 1a4d25cb7f215fcd61f50b3ee99b6f34ee06fff6 Mon Sep 17 00:00:00 2001 -From: Ian Campbell -Date: Sat, 6 Sep 2014 12:20:12 +0100 -Subject: grub-install: Install PV Xen binaries into the upstream specified - path - -Upstream have defined a specification for where guests ought to place their -xenpv grub binaries in order to facilitate chainloading from a stage 1 grub -loaded from dom0. - -http://xenbits.xen.org/docs/unstable-staging/misc/x86-xenpv-bootloader.html - -The spec calls for installation into /boot/xen/pvboot-i386.elf or -/boot/xen/pvboot-x86_64.elf. - -Signed-off-by: Ian Campbell - -Bug-Debian: https://bugs.debian.org/762307 -Forwarded: http://lists.gnu.org/archive/html/grub-devel/2014-10/msg00041.html -Last-Update: 2014-10-24 - -Patch-Name: grub-install-pvxen-paths.patch - ---- -v2: Respect bootdir, create /boot/xen as needed. ---- - util/grub-install.c | 24 ++++++++++++++++++++++-- - 1 file changed, 22 insertions(+), 2 deletions(-) - -diff --git a/util/grub-install.c b/util/grub-install.c -index b82c14d41..caadada98 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -2057,6 +2057,28 @@ main (int argc, char *argv[]) - } - break; - -+ case GRUB_INSTALL_PLATFORM_I386_XEN: -+ { -+ char *path = grub_util_path_concat (2, bootdir, "xen"); -+ char *dst = grub_util_path_concat (2, path, "pvboot-i386.elf"); -+ grub_install_mkdir_p (path); -+ grub_install_copy_file (imgfile, dst, 1); -+ free (dst); -+ free (path); -+ } -+ break; -+ -+ case GRUB_INSTALL_PLATFORM_X86_64_XEN: -+ { -+ char *path = grub_util_path_concat (2, bootdir, "xen"); -+ char *dst = grub_util_path_concat (2, path, "pvboot-x86_64.elf"); -+ grub_install_mkdir_p (path); -+ grub_install_copy_file (imgfile, dst, 1); -+ free (dst); -+ free (path); -+ } -+ break; -+ - case GRUB_INSTALL_PLATFORM_MIPSEL_LOONGSON: - case GRUB_INSTALL_PLATFORM_MIPSEL_QEMU_MIPS: - case GRUB_INSTALL_PLATFORM_MIPS_QEMU_MIPS: -@@ -2066,8 +2088,6 @@ main (int argc, char *argv[]) - case GRUB_INSTALL_PLATFORM_MIPSEL_ARC: - case GRUB_INSTALL_PLATFORM_ARM_UBOOT: - case GRUB_INSTALL_PLATFORM_I386_QEMU: -- case GRUB_INSTALL_PLATFORM_I386_XEN: -- case GRUB_INSTALL_PLATFORM_X86_64_XEN: - case GRUB_INSTALL_PLATFORM_I386_XEN_PVH: - grub_util_warn ("%s", - _("WARNING: no platform-specific install was performed")); diff --git a/patches/grub/2.04/grub-install-removable-shim.patch b/patches/grub/2.04/grub-install-removable-shim.patch deleted file mode 100644 index c2e06eab1..000000000 --- a/patches/grub/2.04/grub-install-removable-shim.patch +++ /dev/null @@ -1,193 +0,0 @@ -From cb2746b915b7d8b5a3c78fae3d40fc0ccc41b650 Mon Sep 17 00:00:00 2001 -From: Steve McIntyre <93sam@debian.org> -Date: Fri, 14 Jun 2019 16:37:11 +0100 -Subject: Deal with --force-extra-removable with signed shim too - -In this case, we need both the signed shim as /EFI/BOOT/BOOTXXX.EFI -and signed Grub as /EFI/BOOT/grubXXX.efi. - -Also install the BOOTXXX.CSV into /EFI/debian, and FBXXX.EFI into -/EFI/BOOT/ so that it can work when needed (*iff* we're updating the -NVRAM). - -[cjwatson: Refactored also_install_removable somewhat for brevity and so -that we're using consistent case-insensitive logic.] - -Bug-Debian: https://bugs.debian.org/930531 -Last-Update: 2019-06-14 - -Patch-Name: grub-install-removable-shim.patch ---- - util/grub-install.c | 84 ++++++++++++++++++++++++++++++++++++--------- - 1 file changed, 67 insertions(+), 17 deletions(-) - -diff --git a/util/grub-install.c b/util/grub-install.c -index fdec5dd83..666cef3d2 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -883,17 +883,13 @@ check_component_exists(const char *dir, - static void - also_install_removable(const char *src, - const char *base_efidir, -- const char *efi_suffix_upper) -+ const char *efi_file, -+ int is_needed) - { -- char *efi_file = NULL; - char *dst = NULL; - char *cur = NULL; - char *found = NULL; - -- if (!efi_suffix_upper) -- grub_util_error ("%s", _("efi_suffix_upper not set")); -- efi_file = xasprintf ("BOOT%s.EFI", efi_suffix_upper); -- - /* We need to install in $base_efidir/EFI/BOOT/$efi_file, but we - * need to cope with case-insensitive stuff here. Build the path one - * component at a time, checking for existing matches each time. */ -@@ -927,10 +923,9 @@ also_install_removable(const char *src, - cur = xstrdup (dst); - free (dst); - free (found); -- grub_install_copy_file (src, cur, 1); -+ grub_install_copy_file (src, cur, is_needed); - - free (cur); -- free (efi_file); - } - - int -@@ -2078,11 +2073,14 @@ main (int argc, char *argv[]) - case GRUB_INSTALL_PLATFORM_IA64_EFI: - { - char *dst = grub_util_path_concat (2, efidir, efi_file); -+ char *removable_file = xasprintf ("BOOT%s.EFI", efi_suffix_upper); -+ - if (uefi_secure_boot) - { - char *shim_signed = NULL; - char *mok_signed = NULL, *mok_file = NULL; - char *fb_signed = NULL, *fb_file = NULL; -+ char *csv_file = NULL; - char *config_dst; - FILE *config_dst_f; - -@@ -2091,11 +2089,15 @@ main (int argc, char *argv[]) - mok_file = xasprintf ("mm%s.efi", efi_suffix); - fb_signed = xasprintf ("fb%s.efi.signed", efi_suffix); - fb_file = xasprintf ("fb%s.efi", efi_suffix); -+ csv_file = xasprintf ("BOOT%s.CSV", efi_suffix_upper); -+ -+ /* If we have a signed shim binary, install that and all -+ its helpers in the normal vendor path */ - - if (grub_util_is_regular (shim_signed)) - { - char *chained_base, *chained_dst; -- char *mok_src, *mok_dst, *fb_src, *fb_dst; -+ char *mok_src, *mok_dst, *fb_src, *fb_dst, *csv_src, *csv_dst; - if (!removable) - { - free (efi_file); -@@ -2107,8 +2109,6 @@ main (int argc, char *argv[]) - chained_base = xasprintf ("grub%s.efi", efi_suffix); - chained_dst = grub_util_path_concat (2, efidir, chained_base); - grub_install_copy_file (efi_signed, chained_dst, 1); -- free (chained_dst); -- free (chained_base); - - /* Not critical, so not an error if they are not present (as it - won't be for older releases); but if we have them, make -@@ -2119,8 +2119,6 @@ main (int argc, char *argv[]) - mok_file); - grub_install_copy_file (mok_src, - mok_dst, 0); -- free (mok_src); -- free (mok_dst); - - fb_src = grub_util_path_concat (2, "/usr/lib/shim/", - fb_signed); -@@ -2128,27 +2126,79 @@ main (int argc, char *argv[]) - fb_file); - grub_install_copy_file (fb_src, - fb_dst, 0); -+ -+ csv_src = grub_util_path_concat (2, "/usr/lib/shim/", -+ csv_file); -+ csv_dst = grub_util_path_concat (2, efidir, -+ csv_file); -+ grub_install_copy_file (csv_src, -+ csv_dst, 0); -+ -+ /* Install binaries into .../EFI/BOOT too: -+ the shim binary -+ the grub binary -+ the shim fallback binary (not fatal on failure) */ -+ if (force_extra_removable) -+ { -+ grub_util_info ("Secure boot: installing shim and image into rm path"); -+ also_install_removable (shim_signed, base_efidir, removable_file, 1); -+ -+ also_install_removable (efi_signed, base_efidir, chained_base, 1); -+ -+ /* If we're updating the NVRAM, add fallback too - it -+ will re-update the NVRAM later if things break */ -+ if (update_nvram) -+ also_install_removable (fb_src, base_efidir, fb_file, 0); -+ } -+ -+ free (chained_dst); -+ free (chained_base); -+ free (mok_src); -+ free (mok_dst); - free (fb_src); - free (fb_dst); -+ free (csv_src); -+ free (csv_dst); - } - else -- grub_install_copy_file (efi_signed, dst, 1); -+ { -+ /* Tried to install for secure boot, but no signed -+ shim found. Fall back to just installing the signed -+ grub binary */ -+ grub_util_info ("Secure boot (no shim): installing signed grub binary"); -+ grub_install_copy_file (efi_signed, dst, 1); -+ if (force_extra_removable) -+ { -+ grub_util_info ("Secure boot (no shim): installing signed grub binary into rm path"); -+ also_install_removable (efi_signed, base_efidir, removable_file, 1); -+ } -+ } - -+ /* In either case, install our grub.cfg */ - config_dst = grub_util_path_concat (2, efidir, "grub.cfg"); - grub_install_copy_file (load_cfg, config_dst, 1); - config_dst_f = grub_util_fopen (config_dst, "ab"); - fprintf (config_dst_f, "configfile $prefix/grub.cfg\n"); - fclose (config_dst_f); - free (config_dst); -- if (force_extra_removable) -- also_install_removable(efi_signed, base_efidir, efi_suffix_upper); -+ -+ free (csv_file); -+ free (fb_file); -+ free (fb_signed); -+ free (mok_file); -+ free (mok_signed); -+ free (shim_signed); - } - else - { -+ /* No secure boot - just install our newly-generated image */ -+ grub_util_info ("No Secure Boot: installing core image"); - grub_install_copy_file (imgfile, dst, 1); - if (force_extra_removable) -- also_install_removable(imgfile, base_efidir, efi_suffix_upper); -+ also_install_removable (imgfile, base_efidir, removable_file, 1); - } -+ -+ free (removable_file); - free (dst); - } - if (!removable && update_nvram) diff --git a/patches/grub/2.04/grub-legacy-0-based-partitions.patch b/patches/grub/2.04/grub-legacy-0-based-partitions.patch deleted file mode 100644 index 2039c3f9c..000000000 --- a/patches/grub/2.04/grub-legacy-0-based-partitions.patch +++ /dev/null @@ -1,39 +0,0 @@ -From fbb34837e1b3185dd2a55d8aeb9b23a8fcc50d54 Mon Sep 17 00:00:00 2001 -From: Robert Millan -Date: Mon, 13 Jan 2014 12:12:53 +0000 -Subject: Support running grub-probe in grub-legacy's update-grub - -Author: Colin Watson -Forwarded: not-needed -Last-Update: 2013-12-25 - -Patch-Name: grub-legacy-0-based-partitions.patch ---- - util/getroot.c | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/util/getroot.c b/util/getroot.c -index 847406fba..cdd41153c 100644 ---- a/util/getroot.c -+++ b/util/getroot.c -@@ -245,6 +245,20 @@ find_partition (grub_disk_t dsk __attribute__ ((unused)), - - if (ctx->start == part_start) - { -+ /* This is dreadfully hardcoded, but there's a limit to what GRUB -+ Legacy was able to deal with anyway. */ -+ if (getenv ("GRUB_LEGACY_0_BASED_PARTITIONS")) -+ { -+ if (partition->parent) -+ /* Probably a BSD slice. */ -+ ctx->partname = xasprintf ("%d,%d", partition->parent->number, -+ partition->number + 1); -+ else -+ ctx->partname = xasprintf ("%d", partition->number); -+ -+ return 1; -+ } -+ - ctx->partname = grub_partition_get_name (partition); - return 1; - } diff --git a/patches/grub/2.04/grub.cfg-400.patch b/patches/grub/2.04/grub.cfg-400.patch deleted file mode 100644 index 1fee91ac0..000000000 --- a/patches/grub/2.04/grub.cfg-400.patch +++ /dev/null @@ -1,25 +0,0 @@ -From e0ceb93ec1feab2b084f58d98f8c865847354254 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:12:55 +0000 -Subject: Make grub.cfg world-readable if it contains no passwords - -Patch-Name: grub.cfg-400.patch ---- - util/grub-mkconfig.in | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index 9f477ff05..45cd4cc54 100644 ---- a/util/grub-mkconfig.in -+++ b/util/grub-mkconfig.in -@@ -276,6 +276,10 @@ for i in "${grub_mkconfig_dir}"/* ; do - esac - done - -+if [ "x${grub_cfg}" != "x" ] && ! grep "^password" ${grub_cfg}.new >/dev/null; then -+ chmod 444 ${grub_cfg}.new || true -+fi -+ - if test "x${grub_cfg}" != "x" ; then - if ! ${grub_script_check} ${grub_cfg}.new; then - # TRANSLATORS: %s is replaced by filename diff --git a/patches/grub/2.04/hfsplus-overflow.patch b/patches/grub/2.04/hfsplus-overflow.patch deleted file mode 100644 index e1b2c12ab..000000000 --- a/patches/grub/2.04/hfsplus-overflow.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 2db482b906c425aa755fc78e8e8980659b92f5a1 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Sun, 19 Jul 2020 14:43:31 -0400 -Subject: hfsplus: fix two more overflows - -Both node->size and node->namelen come from the supplied filesystem, -which may be user-supplied. We can't trust them for the math unless we -know they don't overflow; making sure they go through calloc() first -will give us that. - -Signed-off-by: Peter Jones -Reviewed-by: Darren Kenny - -Patch-Name: hfsplus-overflow.patch ---- - grub-core/fs/hfsplus.c | 11 ++++++++--- - 1 file changed, 8 insertions(+), 3 deletions(-) - -diff --git a/grub-core/fs/hfsplus.c b/grub-core/fs/hfsplus.c -index dae43becc..9c4e4c88c 100644 ---- a/grub-core/fs/hfsplus.c -+++ b/grub-core/fs/hfsplus.c -@@ -31,6 +31,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -475,8 +476,12 @@ grub_hfsplus_read_symlink (grub_fshelp_node_t node) - { - char *symlink; - grub_ssize_t numread; -+ grub_size_t sz = node->size; - -- symlink = grub_malloc (node->size + 1); -+ if (grub_add (sz, 1, &sz)) -+ return NULL; -+ -+ symlink = grub_malloc (sz); - if (!symlink) - return 0; - -@@ -715,8 +720,8 @@ list_nodes (void *record, void *hook_arg) - if (type == GRUB_FSHELP_UNKNOWN) - return 0; - -- filename = grub_malloc (grub_be_to_cpu16 (catkey->namelen) -- * GRUB_MAX_UTF8_PER_UTF16 + 1); -+ filename = grub_calloc (grub_be_to_cpu16 (catkey->namelen), -+ GRUB_MAX_UTF8_PER_UTF16 + 1); - if (! filename) - return 0; - diff --git a/patches/grub/2.04/ieee1275-clear-reset.patch b/patches/grub/2.04/ieee1275-clear-reset.patch deleted file mode 100644 index 29f8ae0d6..000000000 --- a/patches/grub/2.04/ieee1275-clear-reset.patch +++ /dev/null @@ -1,32 +0,0 @@ -From dd145cfecb96c4601f4dc66981c9c7c642e12e81 Mon Sep 17 00:00:00 2001 -From: Paulo Flabiano Smorigo -Date: Thu, 25 Sep 2014 18:41:29 -0300 -Subject: Include a text attribute reset in the clear command for ppc - -Always clear text attribute for clear command in order to avoid problems -after it boots. - -* grub-core/term/terminfo.c: Add escape for text attribute reset - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1295255 -Origin: other, https://lists.gnu.org/archive/html/grub-devel/2014-09/msg00076.html -Last-Update: 2014-09-26 - -Patch-Name: ieee1275-clear-reset.patch ---- - grub-core/term/terminfo.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/term/terminfo.c b/grub-core/term/terminfo.c -index d317efa36..63892ad42 100644 ---- a/grub-core/term/terminfo.c -+++ b/grub-core/term/terminfo.c -@@ -151,7 +151,7 @@ grub_terminfo_set_current (struct grub_term_output *term, - /* Clear the screen. Using serial console, screen(1) only recognizes the - * ANSI escape sequence. Using video console, Apple Open Firmware - * (version 3.1.1) only recognizes the literal ^L. So use both. */ -- data->cls = grub_strdup (" \e[2J"); -+ data->cls = grub_strdup (" \e[2J\e[m"); - data->reverse_video_on = grub_strdup ("\e[7m"); - data->reverse_video_off = grub_strdup ("\e[m"); - if (grub_strcmp ("ieee1275", str) == 0) diff --git a/patches/grub/2.04/ignore-grub_func_test-failures.patch b/patches/grub/2.04/ignore-grub_func_test-failures.patch deleted file mode 100644 index ccffc9af2..000000000 --- a/patches/grub/2.04/ignore-grub_func_test-failures.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 75c4e78459d20ed24a9ac85043b11342582f63a5 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:32 +0000 -Subject: Ignore functional test failures for now as they are broken - -See: https://lists.gnu.org/archive/html/grub-devel/2013-11/msg00242.html - -Forwarded: not-needed -Last-Update: 2013-11-19 - -Patch-Name: ignore-grub_func_test-failures.patch ---- - tests/grub_func_test.in | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/tests/grub_func_test.in b/tests/grub_func_test.in -index c67f9e422..728cd6e06 100644 ---- a/tests/grub_func_test.in -+++ b/tests/grub_func_test.in -@@ -16,6 +16,8 @@ out=`echo all_functional_test | @builddir@/grub-shell --timeout=3600 --files="/b - - if [ "$(echo "$out" | tail -n 1)" != "ALL TESTS PASSED" ]; then - echo "Functional test failure: $out" -- exit 1 -+ # Disabled temporarily due to unrecognised video checksum failures. -+ #exit 1 -+ exit 0 - fi - diff --git a/patches/grub/2.04/insmod-xzio-and-lzopio-on-xen.patch b/patches/grub/2.04/insmod-xzio-and-lzopio-on-xen.patch deleted file mode 100644 index 45a760e6d..000000000 --- a/patches/grub/2.04/insmod-xzio-and-lzopio-on-xen.patch +++ /dev/null @@ -1,33 +0,0 @@ -From d9b8da8f0d48df481fec93750e91468b1f51479d Mon Sep 17 00:00:00 2001 -From: Ian Campbell -Date: Sun, 30 Nov 2014 12:12:52 +0000 -Subject: Arrange to insmod xzio and lzopio when booting a kernel as a Xen - guest - -This is needed in case the Linux kernel is compiled with CONFIG_KERNEL_XZ or -CONFIG_KERNEL_LZO rather than CONFIG_KERNEL_GZ (gzio is already loaded by -grub.cfg today). - -Signed-off-by: Ian Campbell - -Bug-Debian: https://bugs.debian.org/755256 -Forwarded: http://lists.gnu.org/archive/html/grub-devel/2014-11/msg00091.html -Last-Update: 2014-11-30 - -Patch-Name: insmod-xzio-and-lzopio-on-xen.patch ---- - util/grub.d/10_linux.in | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index ba945582e..8a74c677b 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -162,6 +162,7 @@ linux_entry () - fi - - echo " insmod gzio" | sed "s/^/$submenu_indentation/" -+ echo " if [ x\$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi" | sed "s/^/$submenu_indentation/" - - if [ x$dirname = x/ ]; then - if [ -z "${prepare_root_cache}" ]; then diff --git a/patches/grub/2.04/install-efi-adjust-distributor.patch b/patches/grub/2.04/install-efi-adjust-distributor.patch deleted file mode 100644 index b80fe03b1..000000000 --- a/patches/grub/2.04/install-efi-adjust-distributor.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 80341ef386df5bfe94a1e242700be34caa155809 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:27 +0000 -Subject: Adjust efi_distributor for some distributions - -This is not a very good approach, and certainly not sanely upstreamable; -we probably need to split GRUB_DISTRIBUTOR into a couple of different -variables. - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1242417 -Bug-Debian: https://bugs.debian.org/932966 -Forwarded: not-needed -Last-Update: 2019-08-06 - -Patch-Name: install-efi-adjust-distributor.patch ---- - util/grub-install.c | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/util/grub-install.c b/util/grub-install.c -index b0c7c7c37..e89667ff2 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -1115,6 +1115,10 @@ main (int argc, char *argv[]) - */ - char *t; - efi_distributor = bootloader_id; -+ if (strcmp (efi_distributor, "kubuntu") == 0) -+ efi_distributor = "ubuntu"; -+ else if (strcmp (efi_distributor, "devuan") == 0) -+ efi_distributor = "debian"; - switch (platform) - { - case GRUB_INSTALL_PLATFORM_I386_EFI: diff --git a/patches/grub/2.04/install-efi-fallback.patch b/patches/grub/2.04/install-efi-fallback.patch deleted file mode 100644 index 3207dd475..000000000 --- a/patches/grub/2.04/install-efi-fallback.patch +++ /dev/null @@ -1,91 +0,0 @@ -From cf15ef6dc47c0304d0bcf5308a8f42da8da54100 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:05 +0000 -Subject: Fall back to non-EFI if booted using EFI but -efi is missing - -It may be possible, particularly in recovery situations, to be booted -using EFI on x86 when only the i386-pc target is installed, or on ARM -when only the arm-uboot target is installed. There's nothing actually -stopping us installing i386-pc or arm-uboot from an EFI environment, and -it's better than returning a confusing error. - -Author: Steve McIntyre <93sam@debian.org> -Forwarded: no -Last-Update: 2019-05-24 - -Patch-Name: install-efi-fallback.patch ---- - grub-core/osdep/linux/platform.c | 40 ++++++++++++++++++++++++++++---- - 1 file changed, 35 insertions(+), 5 deletions(-) - -diff --git a/grub-core/osdep/linux/platform.c b/grub-core/osdep/linux/platform.c -index e28a79dab..2e7f72086 100644 ---- a/grub-core/osdep/linux/platform.c -+++ b/grub-core/osdep/linux/platform.c -@@ -19,10 +19,12 @@ - #include - - #include -+#include - #include - #include - #include - #include -+#include - #include - - #include -@@ -128,9 +130,24 @@ const char * - grub_install_get_default_arm_platform (void) - { - if (is_efi_system()) -- return "arm-efi"; -- else -- return "arm-uboot"; -+ { -+ const char *pkglibdir = grub_util_get_pkglibdir (); -+ const char *platform; -+ char *pd; -+ int found; -+ -+ platform = "arm-efi"; -+ -+ pd = grub_util_path_concat (2, pkglibdir, platform); -+ found = grub_util_is_directory (pd); -+ free (pd); -+ if (found) -+ return platform; -+ else -+ grub_util_info ("... but %s platform not available", platform); -+ } -+ -+ return "arm-uboot"; - } - - const char * -@@ -138,10 +155,23 @@ grub_install_get_default_x86_platform (void) - { - if (is_efi_system()) - { -+ const char *pkglibdir = grub_util_get_pkglibdir (); -+ const char *platform; -+ char *pd; -+ int found; -+ - if (read_platform_size() == 64) -- return "x86_64-efi"; -+ platform = "x86_64-efi"; -+ else -+ platform = "i386-efi"; -+ -+ pd = grub_util_path_concat (2, pkglibdir, platform); -+ found = grub_util_is_directory (pd); -+ free (pd); -+ if (found) -+ return platform; - else -- return "i386-efi"; -+ grub_util_info ("... but %s platform not available", platform); - } - - grub_util_info ("Looking for /proc/device-tree .."); diff --git a/patches/grub/2.04/install-locale-langpack.patch b/patches/grub/2.04/install-locale-langpack.patch deleted file mode 100644 index 12e9ca289..000000000 --- a/patches/grub/2.04/install-locale-langpack.patch +++ /dev/null @@ -1,116 +0,0 @@ -From 6cc599e9bc39386fcd59f95c68b8a93e06734f06 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:07 +0000 -Subject: Prefer translations from Ubuntu language packs if available - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/537998 -Forwarded: not-needed -Last-Update: 2013-12-25 - -Patch-Name: install-locale-langpack.patch ---- - util/grub-install-common.c | 37 ++++++++++++++++++++++++++++++------- - 1 file changed, 30 insertions(+), 7 deletions(-) - -diff --git a/util/grub-install-common.c b/util/grub-install-common.c -index ca0ac612a..fdfe2c7ea 100644 ---- a/util/grub-install-common.c -+++ b/util/grub-install-common.c -@@ -609,17 +609,25 @@ get_localedir (void) - } - - static void --copy_locales (const char *dstd) -+copy_locales (const char *dstd, int langpack) - { - grub_util_fd_dir_t d; - grub_util_fd_dirent_t de; - const char *locale_dir = get_localedir (); -+ char *dir; - -- d = grub_util_fd_opendir (locale_dir); -+ if (langpack) -+ dir = xasprintf ("%s-langpack", locale_dir); -+ else -+ dir = xstrdup (locale_dir); -+ -+ d = grub_util_fd_opendir (dir); - if (!d) - { -- grub_util_warn (_("cannot open directory `%s': %s"), -- locale_dir, grub_util_fd_strerror ()); -+ if (!langpack) -+ grub_util_warn (_("cannot open directory `%s': %s"), -+ dir, grub_util_fd_strerror ()); -+ free (dir); - return; - } - -@@ -636,14 +644,14 @@ copy_locales (const char *dstd) - if (ext && (grub_strcmp (ext, ".mo") == 0 - || grub_strcmp (ext, ".gmo") == 0)) - { -- srcf = grub_util_path_concat (2, locale_dir, de->d_name); -+ srcf = grub_util_path_concat (2, dir, de->d_name); - dstf = grub_util_path_concat (2, dstd, de->d_name); - ext = grub_strrchr (dstf, '.'); - grub_strcpy (ext, ".mo"); - } - else - { -- srcf = grub_util_path_concat_ext (4, locale_dir, de->d_name, -+ srcf = grub_util_path_concat_ext (4, dir, de->d_name, - "LC_MESSAGES", PACKAGE, ".mo"); - dstf = grub_util_path_concat_ext (2, dstd, de->d_name, ".mo"); - } -@@ -652,6 +660,7 @@ copy_locales (const char *dstd) - free (dstf); - } - grub_util_fd_closedir (d); -+ free (dir); - } - #endif - -@@ -670,13 +679,15 @@ grub_install_copy_nls(const char *src __attribute__ ((unused)), - { - char *srcd = grub_util_path_concat (2, src, "po"); - copy_by_ext (srcd, dst_locale, ".mo", 0); -- copy_locales (dst_locale); -+ copy_locales (dst_locale, 0); -+ copy_locales (dst_locale, 1); - free (srcd); - } - else - { - size_t i; - const char *locale_dir = get_localedir (); -+ char *locale_langpack_dir = xasprintf ("%s-langpack", locale_dir); - - for (i = 0; i < install_locales.n_entries; i++) - { -@@ -693,6 +704,16 @@ grub_install_copy_nls(const char *src __attribute__ ((unused)), - continue; - } - free (srcf); -+ srcf = grub_util_path_concat_ext (4, locale_langpack_dir, -+ install_locales.entries[i], -+ "LC_MESSAGES", PACKAGE, ".mo"); -+ if (grub_install_compress_file (srcf, dstf, 0)) -+ { -+ free (srcf); -+ free (dstf); -+ continue; -+ } -+ free (srcf); - srcf = grub_util_path_concat_ext (4, locale_dir, - install_locales.entries[i], - "LC_MESSAGES", PACKAGE, ".mo"); -@@ -702,6 +723,8 @@ grub_install_copy_nls(const char *src __attribute__ ((unused)), - free (srcf); - free (dstf); - } -+ -+ free (locale_langpack_dir); - } - free (dst_locale); - #endif diff --git a/patches/grub/2.04/install-powerpc-machtypes.patch b/patches/grub/2.04/install-powerpc-machtypes.patch deleted file mode 100644 index 61e7a5b06..000000000 --- a/patches/grub/2.04/install-powerpc-machtypes.patch +++ /dev/null @@ -1,220 +0,0 @@ -From 37fdf067b8bf60e999da5e34f9394ea93904fe0c Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Tue, 28 Jan 2014 14:40:02 +0000 -Subject: Port yaboot logic for various powerpc machine types - -Some powerpc machines require not updating the NVRAM. This can be handled -by existing grub-install command-line options, but it's friendlier to detect -this automatically. - -On chrp_ibm machines, use the nvram utility rather than nvsetenv. (This -is possibly suitable for other machines too, but that needs to be -verified.) - -Forwarded: no -Last-Update: 2014-10-15 - -Patch-Name: install-powerpc-machtypes.patch ---- - grub-core/osdep/basic/platform.c | 5 +++ - grub-core/osdep/linux/platform.c | 72 ++++++++++++++++++++++++++++++ - grub-core/osdep/unix/platform.c | 28 +++++++++--- - grub-core/osdep/windows/platform.c | 6 +++ - include/grub/util/install.h | 3 ++ - util/grub-install.c | 11 +++++ - 6 files changed, 119 insertions(+), 6 deletions(-) - -diff --git a/grub-core/osdep/basic/platform.c b/grub-core/osdep/basic/platform.c -index a7dafd85a..6c293ed2d 100644 ---- a/grub-core/osdep/basic/platform.c -+++ b/grub-core/osdep/basic/platform.c -@@ -30,3 +30,8 @@ grub_install_get_default_x86_platform (void) - return "i386-pc"; - } - -+const char * -+grub_install_get_default_powerpc_machtype (void) -+{ -+ return "generic"; -+} -diff --git a/grub-core/osdep/linux/platform.c b/grub-core/osdep/linux/platform.c -index 2e7f72086..5b37366d4 100644 ---- a/grub-core/osdep/linux/platform.c -+++ b/grub-core/osdep/linux/platform.c -@@ -24,6 +24,7 @@ - #include - #include - #include -+#include - #include - #include - -@@ -184,3 +185,74 @@ grub_install_get_default_x86_platform (void) - grub_util_info ("... not found"); - return "i386-pc"; - } -+ -+const char * -+grub_install_get_default_powerpc_machtype (void) -+{ -+ FILE *fp; -+ char *buf = NULL; -+ size_t len = 0; -+ const char *machtype = "generic"; -+ -+ fp = grub_util_fopen ("/proc/cpuinfo", "r"); -+ if (! fp) -+ return machtype; -+ -+ while (getline (&buf, &len, fp) > 0) -+ { -+ if (strncmp (buf, "pmac-generation", -+ sizeof ("pmac-generation") - 1) == 0) -+ { -+ if (strstr (buf, "NewWorld")) -+ { -+ machtype = "pmac_newworld"; -+ break; -+ } -+ if (strstr (buf, "OldWorld")) -+ { -+ machtype = "pmac_oldworld"; -+ break; -+ } -+ } -+ -+ if (strncmp (buf, "motherboard", sizeof ("motherboard") - 1) == 0 && -+ strstr (buf, "AAPL")) -+ { -+ machtype = "pmac_oldworld"; -+ break; -+ } -+ -+ if (strncmp (buf, "machine", sizeof ("machine") - 1) == 0 && -+ strstr (buf, "CHRP IBM")) -+ { -+ if (strstr (buf, "qemu")) -+ { -+ machtype = "chrp_ibm_qemu"; -+ break; -+ } -+ else -+ { -+ machtype = "chrp_ibm"; -+ break; -+ } -+ } -+ -+ if (strncmp (buf, "platform", sizeof ("platform") - 1) == 0) -+ { -+ if (strstr (buf, "Maple")) -+ { -+ machtype = "maple"; -+ break; -+ } -+ if (strstr (buf, "Cell")) -+ { -+ machtype = "cell"; -+ break; -+ } -+ } -+ } -+ -+ free (buf); -+ fclose (fp); -+ return machtype; -+} -diff --git a/grub-core/osdep/unix/platform.c b/grub-core/osdep/unix/platform.c -index 55b8f4016..9c439326a 100644 ---- a/grub-core/osdep/unix/platform.c -+++ b/grub-core/osdep/unix/platform.c -@@ -218,13 +218,29 @@ grub_install_register_ieee1275 (int is_prep, const char *install_device, - else - boot_device = get_ofpathname (install_device); - -- if (grub_util_exec ((const char * []){ "nvsetenv", "boot-device", -- boot_device, NULL })) -+ if (strcmp (grub_install_get_default_powerpc_machtype (), "chrp_ibm") == 0) - { -- char *cmd = xasprintf ("setenv boot-device %s", boot_device); -- grub_util_error (_("`nvsetenv' failed. \nYou will have to set `boot-device' variable manually. At the IEEE1275 prompt, type:\n %s\n"), -- cmd); -- free (cmd); -+ char *arg = xasprintf ("boot-device=%s", boot_device); -+ if (grub_util_exec ((const char * []){ "nvram", -+ "--update-config", arg, NULL })) -+ { -+ char *cmd = xasprintf ("setenv boot-device %s", boot_device); -+ grub_util_error (_("`nvram' failed. \nYou will have to set `boot-device' variable manually. At the IEEE1275 prompt, type:\n %s\n"), -+ cmd); -+ free (cmd); -+ } -+ free (arg); -+ } -+ else -+ { -+ if (grub_util_exec ((const char * []){ "nvsetenv", "boot-device", -+ boot_device, NULL })) -+ { -+ char *cmd = xasprintf ("setenv boot-device %s", boot_device); -+ grub_util_error (_("`nvsetenv' failed. \nYou will have to set `boot-device' variable manually. At the IEEE1275 prompt, type:\n %s\n"), -+ cmd); -+ free (cmd); -+ } - } - - free (boot_device); -diff --git a/grub-core/osdep/windows/platform.c b/grub-core/osdep/windows/platform.c -index 7eb53fe01..e19a3d9a8 100644 ---- a/grub-core/osdep/windows/platform.c -+++ b/grub-core/osdep/windows/platform.c -@@ -128,6 +128,12 @@ grub_install_get_default_x86_platform (void) - return "i386-efi"; - } - -+const char * -+grub_install_get_default_powerpc_machtype (void) -+{ -+ return "generic"; -+} -+ - static void * - get_efi_variable (const wchar_t *varname, ssize_t *len) - { -diff --git a/include/grub/util/install.h b/include/grub/util/install.h -index 2631b1074..8aeb5c4f2 100644 ---- a/include/grub/util/install.h -+++ b/include/grub/util/install.h -@@ -216,6 +216,9 @@ grub_install_get_default_arm_platform (void); - const char * - grub_install_get_default_x86_platform (void); - -+const char * -+grub_install_get_default_powerpc_machtype (void); -+ - int - grub_install_register_efi (grub_device_t efidir_grub_dev, - const char *efifile_path, -diff --git a/util/grub-install.c b/util/grub-install.c -index e89667ff2..b82c14d41 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -1179,7 +1179,18 @@ main (int argc, char *argv[]) - - if (platform == GRUB_INSTALL_PLATFORM_POWERPC_IEEE1275) - { -+ const char *machtype = grub_install_get_default_powerpc_machtype (); - int is_guess = 0; -+ -+ if (strcmp (machtype, "pmac_oldworld") == 0) -+ update_nvram = 0; -+ else if (strcmp (machtype, "cell") == 0) -+ update_nvram = 0; -+ else if (strcmp (machtype, "generic") == 0) -+ update_nvram = 0; -+ else if (strcmp (machtype, "chrp_ibm_qemu") == 0) -+ update_nvram = 0; -+ - if (!macppcdir) - { - char *d; diff --git a/patches/grub/2.04/install-signed.patch b/patches/grub/2.04/install-signed.patch deleted file mode 100644 index b615dd9dd..000000000 --- a/patches/grub/2.04/install-signed.patch +++ /dev/null @@ -1,311 +0,0 @@ -From a80b79bdb9caeef728d8fbc76735bd9e594569d3 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:22 +0000 -Subject: Install signed images if UEFI Secure Boot is enabled -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Author: Stéphane Graber -Author: Steve Langasek -Author: Linn Crosetto -Author: Mathieu Trudel-Lapierre -Forwarded: no -Last-Update: 2016-11-01 - -Patch-Name: install-signed.patch ---- - util/grub-install.c | 212 ++++++++++++++++++++++++++++++++------------ - 1 file changed, 153 insertions(+), 59 deletions(-) - -diff --git a/util/grub-install.c b/util/grub-install.c -index 3b4606eef..b0c7c7c37 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -80,6 +80,7 @@ static char *label_color; - static char *label_bgcolor; - static char *product_version; - static int add_rs_codes = 1; -+static int uefi_secure_boot = 1; - - enum - { -@@ -110,7 +111,9 @@ enum - OPTION_LABEL_FONT, - OPTION_LABEL_COLOR, - OPTION_LABEL_BGCOLOR, -- OPTION_PRODUCT_VERSION -+ OPTION_PRODUCT_VERSION, -+ OPTION_UEFI_SECURE_BOOT, -+ OPTION_NO_UEFI_SECURE_BOOT - }; - - static int fs_probe = 1; -@@ -234,6 +237,14 @@ argp_parser (int key, char *arg, struct argp_state *state) - bootloader_id = xstrdup (arg); - return 0; - -+ case OPTION_UEFI_SECURE_BOOT: -+ uefi_secure_boot = 1; -+ return 0; -+ -+ case OPTION_NO_UEFI_SECURE_BOOT: -+ uefi_secure_boot = 0; -+ return 0; -+ - case ARGP_KEY_ARG: - if (install_device) - grub_util_error ("%s", _("More than one install device?")); -@@ -303,6 +314,14 @@ static struct argp_option options[] = { - {"label-color", OPTION_LABEL_COLOR, N_("COLOR"), 0, N_("use COLOR for label"), 2}, - {"label-bgcolor", OPTION_LABEL_BGCOLOR, N_("COLOR"), 0, N_("use COLOR for label background"), 2}, - {"product-version", OPTION_PRODUCT_VERSION, N_("STRING"), 0, N_("use STRING as product version"), 2}, -+ {"uefi-secure-boot", OPTION_UEFI_SECURE_BOOT, 0, 0, -+ N_("install an image usable with UEFI Secure Boot. " -+ "This option is only available on EFI and if the grub-efi-amd64-signed " -+ "package is installed."), 2}, -+ {"no-uefi-secure-boot", OPTION_NO_UEFI_SECURE_BOOT, 0, 0, -+ N_("do not install an image usable with UEFI Secure Boot, even if the " -+ "system was currently started using it. " -+ "This option is only available on EFI."), 2}, - {0, 0, 0, 0, 0, 0} - }; - -@@ -825,7 +844,8 @@ main (int argc, char *argv[]) - { - int is_efi = 0; - const char *efi_distributor = NULL; -- const char *efi_file = NULL; -+ const char *efi_suffix = NULL, *efi_suffix_upper = NULL; -+ char *efi_file = NULL; - char **grub_devices; - grub_fs_t grub_fs; - grub_device_t grub_dev = NULL; -@@ -1095,6 +1115,39 @@ main (int argc, char *argv[]) - */ - char *t; - efi_distributor = bootloader_id; -+ switch (platform) -+ { -+ case GRUB_INSTALL_PLATFORM_I386_EFI: -+ efi_suffix = "ia32"; -+ efi_suffix_upper = "IA32"; -+ break; -+ case GRUB_INSTALL_PLATFORM_X86_64_EFI: -+ efi_suffix = "x64"; -+ efi_suffix_upper = "X64"; -+ break; -+ case GRUB_INSTALL_PLATFORM_IA64_EFI: -+ efi_suffix = "ia64"; -+ efi_suffix_upper = "IA64"; -+ break; -+ case GRUB_INSTALL_PLATFORM_ARM_EFI: -+ efi_suffix = "arm"; -+ efi_suffix_upper = "ARM"; -+ break; -+ case GRUB_INSTALL_PLATFORM_ARM64_EFI: -+ efi_suffix = "aa64"; -+ efi_suffix_upper = "AA64"; -+ break; -+ case GRUB_INSTALL_PLATFORM_RISCV32_EFI: -+ efi_suffix = "riscv32"; -+ efi_suffix_upper = "RISCV32"; -+ break; -+ case GRUB_INSTALL_PLATFORM_RISCV64_EFI: -+ efi_suffix = "riscv64"; -+ efi_suffix_upper = "RISCV64"; -+ break; -+ default: -+ break; -+ } - if (removable) - { - /* The specification makes stricter requirements of removable -@@ -1103,66 +1156,16 @@ main (int argc, char *argv[]) - must have a specific file name depending on the architecture. - */ - efi_distributor = "BOOT"; -- switch (platform) -- { -- case GRUB_INSTALL_PLATFORM_I386_EFI: -- efi_file = "BOOTIA32.EFI"; -- break; -- case GRUB_INSTALL_PLATFORM_X86_64_EFI: -- efi_file = "BOOTX64.EFI"; -- break; -- case GRUB_INSTALL_PLATFORM_IA64_EFI: -- efi_file = "BOOTIA64.EFI"; -- break; -- case GRUB_INSTALL_PLATFORM_ARM_EFI: -- efi_file = "BOOTARM.EFI"; -- break; -- case GRUB_INSTALL_PLATFORM_ARM64_EFI: -- efi_file = "BOOTAA64.EFI"; -- break; -- case GRUB_INSTALL_PLATFORM_RISCV32_EFI: -- efi_file = "BOOTRISCV32.EFI"; -- break; -- case GRUB_INSTALL_PLATFORM_RISCV64_EFI: -- efi_file = "BOOTRISCV64.EFI"; -- break; -- default: -- grub_util_error ("%s", _("You've found a bug")); -- break; -- } -+ if (!efi_suffix) -+ grub_util_error ("%s", _("You've found a bug")); -+ efi_file = xasprintf ("BOOT%s.EFI", efi_suffix_upper); - } - else - { - /* It is convenient for each architecture to have a different - efi_file, so that different versions can be installed in parallel. - */ -- switch (platform) -- { -- case GRUB_INSTALL_PLATFORM_I386_EFI: -- efi_file = "grubia32.efi"; -- break; -- case GRUB_INSTALL_PLATFORM_X86_64_EFI: -- efi_file = "grubx64.efi"; -- break; -- case GRUB_INSTALL_PLATFORM_IA64_EFI: -- efi_file = "grubia64.efi"; -- break; -- case GRUB_INSTALL_PLATFORM_ARM_EFI: -- efi_file = "grubarm.efi"; -- break; -- case GRUB_INSTALL_PLATFORM_ARM64_EFI: -- efi_file = "grubaa64.efi"; -- break; -- case GRUB_INSTALL_PLATFORM_RISCV32_EFI: -- efi_file = "grubriscv32.efi"; -- break; -- case GRUB_INSTALL_PLATFORM_RISCV64_EFI: -- efi_file = "grubriscv64.efi"; -- break; -- default: -- efi_file = "grub.efi"; -- break; -- } -+ efi_file = xasprintf ("grub%s.efi", efi_suffix); - } - t = grub_util_path_concat (3, efidir, "EFI", efi_distributor); - free (efidir); -@@ -1368,14 +1371,41 @@ main (int argc, char *argv[]) - } - } - -- if (!have_abstractions) -+ char *efi_signed = NULL; -+ switch (platform) -+ { -+ case GRUB_INSTALL_PLATFORM_I386_EFI: -+ case GRUB_INSTALL_PLATFORM_X86_64_EFI: -+ case GRUB_INSTALL_PLATFORM_ARM_EFI: -+ case GRUB_INSTALL_PLATFORM_ARM64_EFI: -+ case GRUB_INSTALL_PLATFORM_IA64_EFI: -+ { -+ char *dir = xasprintf ("%s-signed", grub_install_source_directory); -+ char *signed_image; -+ if (removable) -+ signed_image = xasprintf ("gcd%s.efi.signed", efi_suffix); -+ else -+ signed_image = xasprintf ("grub%s.efi.signed", efi_suffix); -+ efi_signed = grub_util_path_concat (2, dir, signed_image); -+ break; -+ } -+ -+ default: -+ break; -+ } -+ -+ if (!efi_signed || !grub_util_is_regular (efi_signed)) -+ uefi_secure_boot = 0; -+ -+ if (!have_abstractions || uefi_secure_boot) - { - if ((disk_module && grub_strcmp (disk_module, "biosdisk") != 0) - || grub_drives[1] - || (!install_drive - && platform != GRUB_INSTALL_PLATFORM_POWERPC_IEEE1275) - || (install_drive && !is_same_disk (grub_drives[0], install_drive)) -- || !have_bootdev (platform)) -+ || !have_bootdev (platform) -+ || uefi_secure_boot) - { - char *uuid = NULL; - /* generic method (used on coreboot and ata mod). */ -@@ -1916,7 +1946,71 @@ main (int argc, char *argv[]) - case GRUB_INSTALL_PLATFORM_IA64_EFI: - { - char *dst = grub_util_path_concat (2, efidir, efi_file); -- grub_install_copy_file (imgfile, dst, 1); -+ if (uefi_secure_boot) -+ { -+ char *shim_signed = NULL; -+ char *mok_signed = NULL, *mok_file = NULL; -+ char *fb_signed = NULL, *fb_file = NULL; -+ char *config_dst; -+ FILE *config_dst_f; -+ -+ shim_signed = xasprintf ("/usr/lib/shim/shim%s.efi.signed", efi_suffix); -+ mok_signed = xasprintf ("mm%s.efi.signed", efi_suffix); -+ mok_file = xasprintf ("mm%s.efi", efi_suffix); -+ fb_signed = xasprintf ("fb%s.efi.signed", efi_suffix); -+ fb_file = xasprintf ("fb%s.efi", efi_suffix); -+ -+ if (grub_util_is_regular (shim_signed)) -+ { -+ char *chained_base, *chained_dst; -+ char *mok_src, *mok_dst, *fb_src, *fb_dst; -+ if (!removable) -+ { -+ free (efi_file); -+ efi_file = xasprintf ("shim%s.efi", efi_suffix); -+ free (dst); -+ dst = grub_util_path_concat (2, efidir, efi_file); -+ } -+ grub_install_copy_file (shim_signed, dst, 1); -+ chained_base = xasprintf ("grub%s.efi", efi_suffix); -+ chained_dst = grub_util_path_concat (2, efidir, chained_base); -+ grub_install_copy_file (efi_signed, chained_dst, 1); -+ free (chained_dst); -+ free (chained_base); -+ -+ /* Not critical, so not an error if they are not present (as it -+ won't be for older releases); but if we have them, make -+ sure they are installed. */ -+ mok_src = grub_util_path_concat (2, "/usr/lib/shim/", -+ mok_signed); -+ mok_dst = grub_util_path_concat (2, efidir, -+ mok_file); -+ grub_install_copy_file (mok_src, -+ mok_dst, 0); -+ free (mok_src); -+ free (mok_dst); -+ -+ fb_src = grub_util_path_concat (2, "/usr/lib/shim/", -+ fb_signed); -+ fb_dst = grub_util_path_concat (2, efidir, -+ fb_file); -+ grub_install_copy_file (fb_src, -+ fb_dst, 0); -+ free (fb_src); -+ free (fb_dst); -+ } -+ else -+ grub_install_copy_file (efi_signed, dst, 1); -+ -+ config_dst = grub_util_path_concat (2, efidir, "grub.cfg"); -+ grub_install_copy_file (load_cfg, config_dst, 1); -+ config_dst_f = grub_util_fopen (config_dst, "ab"); -+ fprintf (config_dst_f, "configfile $prefix/grub.cfg\n"); -+ fclose (config_dst_f); -+ free (config_dst); -+ } -+ else -+ grub_install_copy_file (imgfile, dst, 1); - free (dst); - } - if (!removable && update_nvram) diff --git a/patches/grub/2.04/install-stage2-confusion.patch b/patches/grub/2.04/install-stage2-confusion.patch deleted file mode 100644 index 214a7f6da..000000000 --- a/patches/grub/2.04/install-stage2-confusion.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 81cb5ffcbdc273cb57ccc355342d81cf34d8a7b7 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:12:58 +0000 -Subject: If GRUB Legacy is still around, tell packaging to ignore it - -Bug-Debian: http://bugs.debian.org/586143 -Forwarded: not-needed -Last-Update: 2013-12-25 - -Patch-Name: install-stage2-confusion.patch ---- - util/grub-install.c | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/util/grub-install.c b/util/grub-install.c -index 8a55ad4b8..3b4606eef 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -42,6 +42,7 @@ - #include - #include - #include -+#include - - #include - -@@ -1714,6 +1715,19 @@ main (int argc, char *argv[]) - grub_util_bios_setup (platdir, "boot.img", "core.img", - install_drive, force, - fs_probe, allow_floppy, add_rs_codes); -+ -+ /* If vestiges of GRUB Legacy still exist, tell the Debian packaging -+ that they can ignore them. */ -+ if (!rootdir && grub_util_is_regular ("/boot/grub/stage2") && -+ grub_util_is_regular ("/boot/grub/menu.lst")) -+ { -+ grub_util_fd_t fd; -+ -+ fd = grub_util_fd_open ("/boot/grub/grub2-installed", -+ GRUB_UTIL_FD_O_WRONLY); -+ grub_util_fd_close (fd); -+ } -+ - break; - } - case GRUB_INSTALL_PLATFORM_SPARC64_IEEE1275: diff --git a/patches/grub/2.04/is_sb_enabled_command.patch b/patches/grub/2.04/is_sb_enabled_command.patch deleted file mode 100644 index c82a00b04..000000000 --- a/patches/grub/2.04/is_sb_enabled_command.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 0269b30263899d047f53df9b6a8acb61f6a61cb6 Mon Sep 17 00:00:00 2001 -From: Andriy Dobush -Date: Wed, 26 May 2021 11:12:27 +0300 -Subject: [PATCH] Add cli to enable check in config file if secure boot is - enabled Disbale gpg verification if UEFI secure boot is disabled - -Signed-off-by: Andriy Dobush - -Patch-Name: is_sb_enabled_command.patch ---- - grub-core/Makefile.core.def | 6 ++++ - grub-core/commands/efi/is_sb_enabled.c | 52 ++++++++++++++++++++++++++++++++++ - grub-core/commands/pgp.c | 6 ++++ - 3 files changed, 64 insertions(+) - create mode 100644 grub-core/commands/efi/is_sb_enabled.c - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 836bf0a..3fb985f 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -799,6 +799,12 @@ module = { - }; - - module = { -+ name = is_sb_enabled; -+ common = commands/efi/is_sb_enabled.c; -+ enable = efi; -+}; -+ -+module = { - name = efifwsetup; - efi = commands/efi/efifwsetup.c; - enable = efi; -diff --git a/grub-core/commands/efi/is_sb_enabled.c b/grub-core/commands/efi/is_sb_enabled.c -new file mode 100644 -index 0000000..2955416 ---- /dev/null -+++ b/grub-core/commands/efi/is_sb_enabled.c -@@ -0,0 +1,52 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2012 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+#include -+#include -+#include -+ -+GRUB_MOD_LICENSE ("GPLv3+"); -+ -+static grub_err_t -+grub_cmd_is_sb_enabled (grub_command_t cmd __attribute__ ((unused)), -+ int argc __attribute__ ((unused)), -+ char **args __attribute__ ((unused))) -+{ -+ if (grub_efi_secure_boot ()) -+ { -+ grub_printf ("Secure Boot enabled"); -+ return 1; -+ } -+ else -+ { -+ grub_printf ("Secure Boot disabled"); -+ return 0; -+ } -+} -+ -+static grub_command_t cmd; -+ -+GRUB_MOD_INIT(is_sb_enabled) -+{ -+ cmd = grub_register_command ("is_sb_enabled", grub_cmd_is_sb_enabled, -+ "", "Show if secure boot is enabled"); -+} -+ -+GRUB_MOD_FINI(is_sb_enabled) -+{ -+ grub_unregister_command (cmd); -+} --- -2.11.0 - diff --git a/patches/grub/2.04/iso9660-realloc-leak.patch b/patches/grub/2.04/iso9660-realloc-leak.patch deleted file mode 100644 index 3d449b22a..000000000 --- a/patches/grub/2.04/iso9660-realloc-leak.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 99c176e216b7196ac8d2af2b9bc483070b1a170a Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Sat, 4 Jul 2020 12:25:09 -0400 -Subject: iso9660: Don't leak memory on realloc() failures - -Signed-off-by: Peter Jones -Reviewed-by: Daniel Kiper - -Patch-Name: iso9660-realloc-leak.patch ---- - grub-core/fs/iso9660.c | 24 ++++++++++++++++++++---- - 1 file changed, 20 insertions(+), 4 deletions(-) - -diff --git a/grub-core/fs/iso9660.c b/grub-core/fs/iso9660.c -index 7ba5b300b..5ec4433b8 100644 ---- a/grub-core/fs/iso9660.c -+++ b/grub-core/fs/iso9660.c -@@ -533,14 +533,20 @@ add_part (struct iterate_dir_ctx *ctx, - { - int size = ctx->symlink ? grub_strlen (ctx->symlink) : 0; - grub_size_t sz; -+ char *new; - - if (grub_add (size, len2, &sz) || - grub_add (sz, 1, &sz)) - return; - -- ctx->symlink = grub_realloc (ctx->symlink, sz); -- if (! ctx->symlink) -- return; -+ new = grub_realloc (ctx->symlink, sz); -+ if (!new) -+ { -+ grub_free (ctx->symlink); -+ ctx->symlink = NULL; -+ return; -+ } -+ ctx->symlink = new; - - grub_memcpy (ctx->symlink + size, part, len2); - ctx->symlink[size + len2] = 0; -@@ -634,7 +640,12 @@ susp_iterate_dir (struct grub_iso9660_susp_entry *entry, - is the length. Both are part of the `Component - Record'. */ - if (ctx->symlink && !ctx->was_continue) -- add_part (ctx, "/", 1); -+ { -+ add_part (ctx, "/", 1); -+ if (grub_errno) -+ return grub_errno; -+ } -+ - add_part (ctx, (char *) &entry->data[pos + 2], - entry->data[pos + 1]); - ctx->was_continue = (entry->data[pos] & 1); -@@ -653,6 +664,11 @@ susp_iterate_dir (struct grub_iso9660_susp_entry *entry, - add_part (ctx, "/", 1); - break; - } -+ -+ /* Check if grub_realloc() failed in add_part(). */ -+ if (grub_errno) -+ return grub_errno; -+ - /* In pos + 1 the length of the `Component Record' is - stored. */ - pos += entry->data[pos + 1] + 2; diff --git a/patches/grub/2.04/linux-initrd-overflow.patch b/patches/grub/2.04/linux-initrd-overflow.patch deleted file mode 100644 index 716924e39..000000000 --- a/patches/grub/2.04/linux-initrd-overflow.patch +++ /dev/null @@ -1,167 +0,0 @@ -From 81fae35a346bef8f7b27ba8d186a18ae21281755 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Sat, 25 Jul 2020 12:15:37 +0100 -Subject: linux: Fix integer overflows in initrd size handling - -These could be triggered by a crafted filesystem with very large files. - -Fixes: CVE-2020-15707 - -Signed-off-by: Colin Watson -Reviewed-by: Jan Setje-Eilers - -Patch-Name: linux-initrd-overflow.patch ---- - grub-core/loader/linux.c | 74 +++++++++++++++++++++++++++++----------- - 1 file changed, 54 insertions(+), 20 deletions(-) - -diff --git a/grub-core/loader/linux.c b/grub-core/loader/linux.c -index 25624ebc1..e9f819ee9 100644 ---- a/grub-core/loader/linux.c -+++ b/grub-core/loader/linux.c -@@ -4,6 +4,7 @@ - #include - #include - #include -+#include - - struct newc_head - { -@@ -98,13 +99,13 @@ free_dir (struct dir *root) - grub_free (root); - } - --static grub_size_t -+static grub_err_t - insert_dir (const char *name, struct dir **root, -- grub_uint8_t *ptr) -+ grub_uint8_t *ptr, grub_size_t *size) - { - struct dir *cur, **head = root; - const char *cb, *ce = name; -- grub_size_t size = 0; -+ *size = 0; - while (1) - { - for (cb = ce; *cb == '/'; cb++); -@@ -130,14 +131,22 @@ insert_dir (const char *name, struct dir **root, - ptr = make_header (ptr, name, ce - name, - 040777, 0); - } -- size += ALIGN_UP ((ce - (char *) name) -- + sizeof (struct newc_head), 4); -+ if (grub_add (*size, -+ ALIGN_UP ((ce - (char *) name) -+ + sizeof (struct newc_head), 4), -+ size)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ grub_free (n->name); -+ grub_free (n); -+ return grub_errno; -+ } - *head = n; - cur = n; - } - root = &cur->next; - } -- return size; -+ return GRUB_ERR_NONE; - } - - grub_err_t -@@ -173,26 +182,33 @@ grub_initrd_init (int argc, char *argv[], - eptr = grub_strchr (ptr, ':'); - if (eptr) - { -+ grub_size_t dir_size, name_len; -+ - initrd_ctx->components[i].newc_name = grub_strndup (ptr, eptr - ptr); -- if (!initrd_ctx->components[i].newc_name) -+ if (!initrd_ctx->components[i].newc_name || -+ insert_dir (initrd_ctx->components[i].newc_name, &root, 0, -+ &dir_size)) - { - grub_initrd_close (initrd_ctx); - return grub_errno; - } -- initrd_ctx->size -- += ALIGN_UP (sizeof (struct newc_head) -- + grub_strlen (initrd_ctx->components[i].newc_name), -- 4); -- initrd_ctx->size += insert_dir (initrd_ctx->components[i].newc_name, -- &root, 0); -+ name_len = grub_strlen (initrd_ctx->components[i].newc_name); -+ if (grub_add (initrd_ctx->size, -+ ALIGN_UP (sizeof (struct newc_head) + name_len, 4), -+ &initrd_ctx->size) || -+ grub_add (initrd_ctx->size, dir_size, &initrd_ctx->size)) -+ goto overflow; - newc = 1; - fname = eptr + 1; - } - } - else if (newc) - { -- initrd_ctx->size += ALIGN_UP (sizeof (struct newc_head) -- + sizeof ("TRAILER!!!") - 1, 4); -+ if (grub_add (initrd_ctx->size, -+ ALIGN_UP (sizeof (struct newc_head) -+ + sizeof ("TRAILER!!!") - 1, 4), -+ &initrd_ctx->size)) -+ goto overflow; - free_dir (root); - root = 0; - newc = 0; -@@ -208,19 +224,29 @@ grub_initrd_init (int argc, char *argv[], - initrd_ctx->nfiles++; - initrd_ctx->components[i].size - = grub_file_size (initrd_ctx->components[i].file); -- initrd_ctx->size += initrd_ctx->components[i].size; -+ if (grub_add (initrd_ctx->size, initrd_ctx->components[i].size, -+ &initrd_ctx->size)) -+ goto overflow; - } - - if (newc) - { - initrd_ctx->size = ALIGN_UP (initrd_ctx->size, 4); -- initrd_ctx->size += ALIGN_UP (sizeof (struct newc_head) -- + sizeof ("TRAILER!!!") - 1, 4); -+ if (grub_add (initrd_ctx->size, -+ ALIGN_UP (sizeof (struct newc_head) -+ + sizeof ("TRAILER!!!") - 1, 4), -+ &initrd_ctx->size)) -+ goto overflow; - free_dir (root); - root = 0; - } - - return GRUB_ERR_NONE; -+ -+overflow: -+ free_dir (root); -+ grub_initrd_close (initrd_ctx); -+ return grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); - } - - grub_size_t -@@ -261,8 +287,16 @@ grub_initrd_load (struct grub_linux_initrd_context *initrd_ctx, - - if (initrd_ctx->components[i].newc_name) - { -- ptr += insert_dir (initrd_ctx->components[i].newc_name, -- &root, ptr); -+ grub_size_t dir_size; -+ -+ if (insert_dir (initrd_ctx->components[i].newc_name, &root, ptr, -+ &dir_size)) -+ { -+ free_dir (root); -+ grub_initrd_close (initrd_ctx); -+ return grub_errno; -+ } -+ ptr += dir_size; - ptr = make_header (ptr, initrd_ctx->components[i].newc_name, - grub_strlen (initrd_ctx->components[i].newc_name), - 0100777, diff --git a/patches/grub/2.04/linux-loader-overflow.patch b/patches/grub/2.04/linux-loader-overflow.patch deleted file mode 100644 index 5e7e31c5c..000000000 --- a/patches/grub/2.04/linux-loader-overflow.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 6d438b80c4cfe75a67f619918706630ccc2252b6 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Fri, 24 Jul 2020 13:57:27 -0400 -Subject: linux loader: avoid overflow on initrd size calculation - -Signed-off-by: Peter Jones - -Patch-Name: linux-loader-overflow.patch ---- - grub-core/loader/linux.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/grub-core/loader/linux.c b/grub-core/loader/linux.c -index 471b214d6..25624ebc1 100644 ---- a/grub-core/loader/linux.c -+++ b/grub-core/loader/linux.c -@@ -151,8 +151,8 @@ grub_initrd_init (int argc, char *argv[], - initrd_ctx->nfiles = 0; - initrd_ctx->components = 0; - -- initrd_ctx->components = grub_zalloc (argc -- * sizeof (initrd_ctx->components[0])); -+ initrd_ctx->components = grub_calloc (argc, -+ sizeof (initrd_ctx->components[0])); - if (!initrd_ctx->components) - return grub_errno; - diff --git a/patches/grub/2.04/linuxefi.patch b/patches/grub/2.04/linuxefi.patch deleted file mode 100644 index c467a06d1..000000000 --- a/patches/grub/2.04/linuxefi.patch +++ /dev/null @@ -1,550 +0,0 @@ -From 4cf3b1871d621c8dfe5ad54ae206530bb0de1606 Mon Sep 17 00:00:00 2001 -From: Matthew Garrett -Date: Mon, 13 Jan 2014 12:13:15 +0000 -Subject: Add "linuxefi" loader which avoids ExitBootServices - -Origin: vendor, http://pkgs.fedoraproject.org/cgit/grub2.git/tree/grub2-linuxefi.patch -Author: Colin Watson -Author: Steve Langasek -Author: Linn Crosetto -Forwarded: no -Last-Update: 2019-06-26 - -Patch-Name: linuxefi.patch ---- - grub-core/Makefile.core.def | 7 + - grub-core/kern/efi/mm.c | 32 +++ - grub-core/loader/i386/efi/linux.c | 381 ++++++++++++++++++++++++++++++ - grub-core/loader/i386/linux.c | 41 ++++ - include/grub/efi/efi.h | 3 + - 5 files changed, 464 insertions(+) - create mode 100644 grub-core/loader/i386/efi/linux.c - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 474a63e68..67a98abbb 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -1849,6 +1849,13 @@ module = { - enable = x86_64_efi; - }; - -+module = { -+ name = linuxefi; -+ efi = loader/i386/efi/linux.c; -+ enable = i386_efi; -+ enable = x86_64_efi; -+}; -+ - module = { - name = chain; - efi = loader/efi/chainloader.c; -diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c -index b02fab1b1..a9e37108c 100644 ---- a/grub-core/kern/efi/mm.c -+++ b/grub-core/kern/efi/mm.c -@@ -113,6 +113,38 @@ grub_efi_drop_alloc (grub_efi_physical_address_t address, - } - } - -+/* Allocate pages below a specified address */ -+void * -+grub_efi_allocate_pages_max (grub_efi_physical_address_t max, -+ grub_efi_uintn_t pages) -+{ -+ grub_efi_status_t status; -+ grub_efi_boot_services_t *b; -+ grub_efi_physical_address_t address = max; -+ -+ if (max > 0xffffffff) -+ return 0; -+ -+ b = grub_efi_system_table->boot_services; -+ status = efi_call_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_MAX_ADDRESS, GRUB_EFI_LOADER_DATA, pages, &address); -+ -+ if (status != GRUB_EFI_SUCCESS) -+ return 0; -+ -+ if (address == 0) -+ { -+ /* Uggh, the address 0 was allocated... This is too annoying, -+ so reallocate another one. */ -+ address = max; -+ status = efi_call_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_MAX_ADDRESS, GRUB_EFI_LOADER_DATA, pages, &address); -+ grub_efi_free_pages (0, pages); -+ if (status != GRUB_EFI_SUCCESS) -+ return 0; -+ } -+ -+ return (void *) ((grub_addr_t) address); -+} -+ - /* Allocate pages. Return the pointer to the first of allocated pages. */ - void * - grub_efi_allocate_pages_real (grub_efi_physical_address_t address, -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -new file mode 100644 -index 000000000..16372a0c8 ---- /dev/null -+++ b/grub-core/loader/i386/efi/linux.c -@@ -0,0 +1,381 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2012 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+GRUB_MOD_LICENSE ("GPLv3+"); -+ -+static grub_dl_t my_mod; -+static int loaded; -+static void *kernel_mem; -+static grub_uint64_t kernel_size; -+static grub_uint8_t *initrd_mem; -+static grub_uint32_t handover_offset; -+struct linux_kernel_params *params; -+static char *linux_cmdline; -+ -+#define BYTES_TO_PAGES(bytes) (((bytes) + 0xfff) >> 12) -+ -+#define SHIM_LOCK_GUID \ -+ { 0x605dab50, 0xe046, 0x4300, {0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23} } -+ -+struct grub_efi_shim_lock -+{ -+ grub_efi_status_t (*verify) (void *buffer, grub_uint32_t size); -+}; -+typedef struct grub_efi_shim_lock grub_efi_shim_lock_t; -+ -+static grub_efi_boolean_t -+grub_linuxefi_secure_validate (void *data, grub_uint32_t size) -+{ -+ grub_efi_guid_t guid = SHIM_LOCK_GUID; -+ grub_efi_shim_lock_t *shim_lock; -+ grub_efi_status_t status; -+ -+ if (! grub_efi_secure_boot()) -+ { -+ grub_dprintf ("linuxefi", "secure boot not enabled, not validating"); -+ return 1; -+ } -+ -+ grub_dprintf ("linuxefi", "Locating shim protocol\n"); -+ shim_lock = grub_efi_locate_protocol(&guid, NULL); -+ -+ if (!shim_lock) -+ { -+ grub_dprintf ("linuxefi", "shim not available\n"); -+ return 0; -+ } -+ -+ grub_dprintf ("linuxefi", "Asking shim to verify kernel signature\n"); -+ status = shim_lock->verify(data, size); -+ if (status == GRUB_EFI_SUCCESS) -+ { -+ grub_dprintf ("linuxefi", "Kernel signature verification passed\n"); -+ return 1; -+ } -+ -+ grub_dprintf ("linuxefi", "Kernel signature verification failed (0x%lx)\n", -+ (unsigned long) status); -+ return 0; -+} -+ -+typedef void(*handover_func)(void *, grub_efi_system_table_t *, struct linux_kernel_params *); -+ -+static grub_err_t -+grub_linuxefi_boot (void) -+{ -+ handover_func hf; -+ int offset = 0; -+ -+#ifdef __x86_64__ -+ offset = 512; -+#endif -+ -+ hf = (handover_func)((char *)kernel_mem + handover_offset + offset); -+ -+ asm volatile ("cli"); -+ -+ hf (grub_efi_image_handle, grub_efi_system_table, params); -+ -+ /* Not reached */ -+ return GRUB_ERR_NONE; -+} -+ -+static grub_err_t -+grub_linuxefi_unload (void) -+{ -+ grub_dl_unref (my_mod); -+ loaded = 0; -+ if (initrd_mem) -+ grub_efi_free_pages((grub_efi_physical_address_t)(grub_addr_t)initrd_mem, BYTES_TO_PAGES(params->ramdisk_size)); -+ if (linux_cmdline) -+ grub_efi_free_pages((grub_efi_physical_address_t)(grub_addr_t)linux_cmdline, BYTES_TO_PAGES(params->cmdline_size + 1)); -+ if (kernel_mem) -+ grub_efi_free_pages((grub_efi_physical_address_t)(grub_addr_t)kernel_mem, BYTES_TO_PAGES(kernel_size)); -+ if (params) -+ grub_efi_free_pages((grub_efi_physical_address_t)(grub_addr_t)params, BYTES_TO_PAGES(16384)); -+ return GRUB_ERR_NONE; -+} -+ -+static grub_err_t -+grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), -+ int argc, char *argv[]) -+{ -+ grub_size_t size = 0; -+ struct grub_linux_initrd_context initrd_ctx; -+ -+ if (argc == 0) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -+ goto fail; -+ } -+ -+ if (!loaded) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, N_("you need to load the kernel first")); -+ goto fail; -+ } -+ -+ if (grub_initrd_init (argc, argv, &initrd_ctx)) -+ goto fail; -+ -+ size = grub_get_initrd_size (&initrd_ctx); -+ -+ initrd_mem = grub_efi_allocate_pages_max (0x3fffffff, BYTES_TO_PAGES(size)); -+ -+ if (!initrd_mem) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("can't allocate initrd")); -+ goto fail; -+ } -+ -+ grub_dprintf ("linuxefi", "initrd_mem = %lx\n", (unsigned long) initrd_mem); -+ -+ params->ramdisk_size = size; -+ params->ramdisk_image = (grub_uint32_t)(grub_addr_t) initrd_mem; -+ -+ if (grub_initrd_load (&initrd_ctx, argv, initrd_mem)) -+ goto fail; -+ -+ params->ramdisk_size = size; -+ -+ fail: -+ grub_initrd_close (&initrd_ctx); -+ -+ if (initrd_mem && grub_errno) -+ grub_efi_free_pages((grub_efi_physical_address_t)(grub_addr_t)initrd_mem, BYTES_TO_PAGES(size)); -+ -+ return grub_errno; -+} -+ -+static grub_err_t -+grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), -+ int argc, char *argv[]) -+{ -+ grub_file_t file = 0; -+ struct linux_i386_kernel_header lh; -+ grub_ssize_t len, start, filelen; -+ void *kernel; -+ -+ grub_dl_ref (my_mod); -+ -+ if (argc == 0) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -+ goto fail; -+ } -+ -+ file = grub_file_open (argv[0], GRUB_FILE_TYPE_LINUX_KERNEL); -+ if (! file) -+ goto fail; -+ -+ filelen = grub_file_size (file); -+ -+ kernel = grub_malloc(filelen); -+ -+ if (!kernel) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("cannot allocate kernel buffer")); -+ goto fail; -+ } -+ -+ if (grub_file_read (file, kernel, filelen) != filelen) -+ { -+ grub_error (GRUB_ERR_FILE_READ_ERROR, N_("Can't read kernel %s"), argv[0]); -+ goto fail; -+ } -+ -+ if (! grub_linuxefi_secure_validate (kernel, filelen)) -+ { -+ grub_error (GRUB_ERR_ACCESS_DENIED, N_("%s has invalid signature"), argv[0]); -+ grub_free (kernel); -+ goto fail; -+ } -+ -+ grub_file_seek (file, 0); -+ -+ grub_free(kernel); -+ -+ params = grub_efi_allocate_pages_max (0x3fffffff, BYTES_TO_PAGES(16384)); -+ -+ if (! params) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, "cannot allocate kernel parameters"); -+ goto fail; -+ } -+ -+ grub_dprintf ("linuxefi", "params = %lx\n", (unsigned long) params); -+ -+ grub_memset (params, 0, 16384); -+ -+ if (grub_file_read (file, &lh, sizeof (lh)) != sizeof (lh)) -+ { -+ if (!grub_errno) -+ grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -+ argv[0]); -+ goto fail; -+ } -+ -+ if (lh.boot_flag != grub_cpu_to_le16 (0xaa55)) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("invalid magic number")); -+ goto fail; -+ } -+ -+ if (lh.setup_sects > GRUB_LINUX_MAX_SETUP_SECTS) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("too many setup sectors")); -+ goto fail; -+ } -+ -+ if (lh.version < grub_cpu_to_le16 (0x020b)) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("kernel too old")); -+ goto fail; -+ } -+ -+ if (!lh.handover_offset) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("kernel doesn't support EFI handover")); -+ goto fail; -+ } -+ -+ linux_cmdline = grub_efi_allocate_pages_max(0x3fffffff, -+ BYTES_TO_PAGES(lh.cmdline_size + 1)); -+ -+ if (!linux_cmdline) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("can't allocate cmdline")); -+ goto fail; -+ } -+ -+ grub_dprintf ("linuxefi", "linux_cmdline = %lx\n", -+ (unsigned long) linux_cmdline); -+ -+ grub_memcpy (linux_cmdline, LINUX_IMAGE, sizeof (LINUX_IMAGE)); -+ { -+ grub_err_t err; -+ err = grub_create_loader_cmdline (argc, argv, -+ linux_cmdline -+ + sizeof (LINUX_IMAGE) - 1, -+ lh.cmdline_size -+ - (sizeof (LINUX_IMAGE) - 1), -+ GRUB_VERIFY_KERNEL_CMDLINE); -+ if (err) -+ goto fail; -+ } -+ -+ lh.cmd_line_ptr = (grub_uint32_t)(grub_addr_t)linux_cmdline; -+ -+ handover_offset = lh.handover_offset; -+ -+ start = (lh.setup_sects + 1) * 512; -+ len = grub_file_size(file) - start; -+ -+ kernel_mem = grub_efi_allocate_fixed(lh.pref_address, -+ BYTES_TO_PAGES(lh.init_size)); -+ -+ if (!kernel_mem) -+ kernel_mem = grub_efi_allocate_pages_max(0x3fffffff, -+ BYTES_TO_PAGES(lh.init_size)); -+ -+ if (!kernel_mem) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("can't allocate kernel")); -+ goto fail; -+ } -+ -+ grub_dprintf ("linuxefi", "kernel_mem = %lx\n", (unsigned long) kernel_mem); -+ -+ if (grub_file_seek (file, start) == (grub_off_t) -1) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -+ argv[0]); -+ goto fail; -+ } -+ -+ if (grub_file_read (file, kernel_mem, len) != len && !grub_errno) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -+ argv[0]); -+ } -+ -+ if (grub_errno == GRUB_ERR_NONE) -+ { -+ grub_loader_set (grub_linuxefi_boot, grub_linuxefi_unload, 0); -+ loaded = 1; -+ lh.code32_start = (grub_uint32_t)(grub_addr_t) kernel_mem; -+ } -+ -+ grub_memcpy (params, &lh, 2 * 512); -+ -+ params->type_of_loader = 0x21; -+ -+ fail: -+ -+ if (file) -+ grub_file_close (file); -+ -+ if (grub_errno != GRUB_ERR_NONE) -+ { -+ grub_dl_unref (my_mod); -+ loaded = 0; -+ } -+ -+ if (linux_cmdline && !loaded) -+ grub_efi_free_pages((grub_efi_physical_address_t)(grub_addr_t)linux_cmdline, BYTES_TO_PAGES(lh.cmdline_size + 1)); -+ -+ if (kernel_mem && !loaded) -+ grub_efi_free_pages((grub_efi_physical_address_t)(grub_addr_t)kernel_mem, BYTES_TO_PAGES(kernel_size)); -+ -+ if (params && !loaded) -+ grub_efi_free_pages((grub_efi_physical_address_t)(grub_addr_t)params, BYTES_TO_PAGES(16384)); -+ -+ return grub_errno; -+} -+ -+static grub_command_t cmd_linux, cmd_initrd; -+ -+GRUB_MOD_INIT(linuxefi) -+{ -+ cmd_linux = -+ grub_register_command ("linuxefi", grub_cmd_linux, -+ 0, N_("Load Linux.")); -+ cmd_initrd = -+ grub_register_command ("initrdefi", grub_cmd_initrd, -+ 0, N_("Load initrd.")); -+ my_mod = mod; -+} -+ -+GRUB_MOD_FINI(linuxefi) -+{ -+ grub_unregister_command (cmd_linux); -+ grub_unregister_command (cmd_initrd); -+} -diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index d0501e229..2eab9bb10 100644 ---- a/grub-core/loader/i386/linux.c -+++ b/grub-core/loader/i386/linux.c -@@ -76,6 +76,8 @@ static grub_size_t maximal_cmdline_size; - static struct linux_kernel_params linux_params; - static char *linux_cmdline; - #ifdef GRUB_MACHINE_EFI -+static int using_linuxefi; -+static grub_command_t initrdefi_cmd; - static grub_efi_uintn_t efi_mmap_size; - #else - static const grub_size_t efi_mmap_size = 0; -@@ -651,6 +653,39 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - - grub_dl_ref (my_mod); - -+#ifdef GRUB_MACHINE_EFI -+ using_linuxefi = 0; -+ if (grub_efi_secure_boot ()) -+ { -+ /* linuxefi requires a successful signature check and then hand over -+ to the kernel without calling ExitBootServices. */ -+ grub_dl_t mod; -+ grub_command_t linuxefi_cmd; -+ -+ grub_dprintf ("linux", "Secure Boot enabled: trying linuxefi\n"); -+ -+ mod = grub_dl_load ("linuxefi"); -+ if (mod) -+ { -+ grub_dl_ref (mod); -+ linuxefi_cmd = grub_command_find ("linuxefi"); -+ initrdefi_cmd = grub_command_find ("initrdefi"); -+ if (linuxefi_cmd && initrdefi_cmd) -+ { -+ (linuxefi_cmd->func) (linuxefi_cmd, argc, argv); -+ if (grub_errno == GRUB_ERR_NONE) -+ { -+ grub_dprintf ("linux", "Handing off to linuxefi\n"); -+ using_linuxefi = 1; -+ return GRUB_ERR_NONE; -+ } -+ grub_dprintf ("linux", "linuxefi failed (%d)\n", grub_errno); -+ goto fail; -+ } -+ } -+ } -+#endif -+ - if (argc == 0) - { - grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -@@ -1036,6 +1071,12 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), - grub_err_t err; - struct grub_linux_initrd_context initrd_ctx = { 0, 0, 0 }; - -+#ifdef GRUB_MACHINE_EFI -+ /* If we're using linuxefi, just forward to initrdefi. */ -+ if (using_linuxefi && initrdefi_cmd) -+ return (initrdefi_cmd->func) (initrdefi_cmd, argc, argv); -+#endif -+ - if (argc == 0) - { - grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index a237952b3..085ee0524 100644 ---- a/include/grub/efi/efi.h -+++ b/include/grub/efi/efi.h -@@ -47,6 +47,9 @@ EXPORT_FUNC(grub_efi_allocate_fixed) (grub_efi_physical_address_t address, - grub_efi_uintn_t pages); - void * - EXPORT_FUNC(grub_efi_allocate_any_pages) (grub_efi_uintn_t pages); -+void * -+EXPORT_FUNC(grub_efi_allocate_pages_max) (grub_efi_physical_address_t max, -+ grub_efi_uintn_t pages); - void EXPORT_FUNC(grub_efi_free_pages) (grub_efi_physical_address_t address, - grub_efi_uintn_t pages); - grub_efi_uintn_t EXPORT_FUNC(grub_efi_find_mmap_size) (void); diff --git a/patches/grub/2.04/lvm-overflow.patch b/patches/grub/2.04/lvm-overflow.patch deleted file mode 100644 index 38b585266..000000000 --- a/patches/grub/2.04/lvm-overflow.patch +++ /dev/null @@ -1,109 +0,0 @@ -From fc669c03dbffd20667f40a2375c30ef91cdc2707 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Sun, 19 Jul 2020 15:48:20 -0400 -Subject: lvm: fix two more potential data-dependent alloc overflows - -It appears to be possible to make a (possibly invalid) lvm PV with a -metadata size field that overflows our type when adding it to the -address we've allocated. Even if it doesn't, it may be possible to do -so with the math using the outcome of that as an operand. Check them -both. - -Signed-off-by: Peter Jones -Signed-off-by: Darren Kenny - -Patch-Name: lvm-overflow.patch ---- - grub-core/disk/lvm.c | 47 ++++++++++++++++++++++++++++++++++++-------- - 1 file changed, 39 insertions(+), 8 deletions(-) - -diff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c -index d1df640b3..e1299a348 100644 ---- a/grub-core/disk/lvm.c -+++ b/grub-core/disk/lvm.c -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - - #ifdef GRUB_UTIL - #include -@@ -102,10 +103,11 @@ grub_lvm_detect (grub_disk_t disk, - { - grub_err_t err; - grub_uint64_t mda_offset, mda_size; -+ grub_size_t ptr; - char buf[GRUB_LVM_LABEL_SIZE]; - char vg_id[GRUB_LVM_ID_STRLEN+1]; - char pv_id[GRUB_LVM_ID_STRLEN+1]; -- char *metadatabuf, *p, *q, *vgname; -+ char *metadatabuf, *p, *q, *mda_end, *vgname; - struct grub_lvm_label_header *lh = (struct grub_lvm_label_header *) buf; - struct grub_lvm_pv_header *pvh; - struct grub_lvm_disk_locn *dlocn; -@@ -205,19 +207,31 @@ grub_lvm_detect (grub_disk_t disk, - grub_le_to_cpu64 (rlocn->size) - - grub_le_to_cpu64 (mdah->size)); - } -- p = q = metadatabuf + grub_le_to_cpu64 (rlocn->offset); - -- while (*q != ' ' && q < metadatabuf + mda_size) -- q++; -- -- if (q == metadatabuf + mda_size) -+ if (grub_add ((grub_size_t)metadatabuf, -+ (grub_size_t)grub_le_to_cpu64 (rlocn->offset), -+ &ptr)) - { -+error_parsing_metadata: - #ifdef GRUB_UTIL - grub_util_info ("error parsing metadata"); - #endif - goto fail2; - } - -+ p = q = (char *)ptr; -+ -+ if (grub_add ((grub_size_t)metadatabuf, (grub_size_t)mda_size, &ptr)) -+ goto error_parsing_metadata; -+ -+ mda_end = (char *)ptr; -+ -+ while (*q != ' ' && q < mda_end) -+ q++; -+ -+ if (q == mda_end) -+ goto error_parsing_metadata; -+ - vgname_len = q - p; - vgname = grub_malloc (vgname_len + 1); - if (!vgname) -@@ -367,8 +381,25 @@ grub_lvm_detect (grub_disk_t disk, - { - const char *iptr; - char *optr; -- lv->fullname = grub_malloc (sizeof ("lvm/") - 1 + 2 * vgname_len -- + 1 + 2 * s + 1); -+ -+ /* this is kind of hard to read with our safe (but rather -+ * baroque) math primatives, but it boils down to: -+ * -+ * sz0 = vgname_len * 2 + 1 -+ * + s * 2 + 1 -+ * + sizeof ("lvm/") - 1; -+ */ -+ grub_size_t sz0 = vgname_len, sz1 = s; -+ -+ if (grub_mul (sz0, 2, &sz0) || -+ grub_add (sz0, 1, &sz0) || -+ grub_mul (sz1, 2, &sz1) || -+ grub_add (sz1, 1, &sz1) || -+ grub_add (sz0, sz1, &sz0) || -+ grub_add (sz0, sizeof ("lvm/") - 1, &sz0)) -+ goto lvs_fail; -+ -+ lv->fullname = grub_malloc (sz0); - if (!lv->fullname) - goto lvs_fail; - diff --git a/patches/grub/2.04/lzma-overflow.patch b/patches/grub/2.04/lzma-overflow.patch deleted file mode 100644 index 6337ae6b1..000000000 --- a/patches/grub/2.04/lzma-overflow.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 8b93dd5ba38c2d726a08b271b14a74e8f960d147 Mon Sep 17 00:00:00 2001 -From: Konrad Rzeszutek Wilk -Date: Thu, 9 Jul 2020 03:05:23 +0000 -Subject: lzma: Make sure we don't dereference past array - -The two dimensional array p->posSlotEncoder[4][64] is being dereferenced -using the GetLenToPosState() macro which checks if len is less than 5, -and if so subtracts 2 from it. If len = 0, that is 0 - 2 = 4294967294. -Obviously we don't want to dereference that far out so we check if the -position found is greater or equal kNumLenToPosStates (4) and bail out. - -N.B.: Upstream LZMA 18.05 and later has this function completely rewritten -without any history. - -Fixes: CID 51526 - -Signed-off-by: Konrad Rzeszutek Wilk -Reviewed-by: Daniel Kiper - -Patch-Name: lzma-overflow.patch ---- - grub-core/lib/LzmaEnc.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - -diff --git a/grub-core/lib/LzmaEnc.c b/grub-core/lib/LzmaEnc.c -index f2ec04a8c..753e56a95 100644 ---- a/grub-core/lib/LzmaEnc.c -+++ b/grub-core/lib/LzmaEnc.c -@@ -1877,13 +1877,19 @@ static SRes LzmaEnc_CodeOneBlock(CLzmaEnc *p, Bool useLimits, UInt32 maxPackSize - } - else - { -- UInt32 posSlot; -+ UInt32 posSlot, lenToPosState; - RangeEnc_EncodeBit(&p->rc, &p->isRep[p->state], 0); - p->state = kMatchNextStates[p->state]; - LenEnc_Encode2(&p->lenEnc, &p->rc, len - LZMA_MATCH_LEN_MIN, posState, !p->fastMode, p->ProbPrices); - pos -= LZMA_NUM_REPS; - GetPosSlot(pos, posSlot); -- RcTree_Encode(&p->rc, p->posSlotEncoder[GetLenToPosState(len)], kNumPosSlotBits, posSlot); -+ lenToPosState = GetLenToPosState(len); -+ if (lenToPosState >= kNumLenToPosStates) -+ { -+ p->result = SZ_ERROR_DATA; -+ return CheckErrors(p); -+ } -+ RcTree_Encode(&p->rc, p->posSlotEncoder[lenToPosState], kNumPosSlotBits, posSlot); - - if (posSlot >= kStartPosModelIndex) - { diff --git a/patches/grub/2.04/maybe-quiet.patch b/patches/grub/2.04/maybe-quiet.patch deleted file mode 100644 index b76ff6aba..000000000 --- a/patches/grub/2.04/maybe-quiet.patch +++ /dev/null @@ -1,386 +0,0 @@ -From 4225ea9ee7c546c4340e658b0bd6983c436a5f51 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:26 +0000 -Subject: Add configure option to reduce visual clutter at boot time - -If this option is enabled, then do all of the following: - -Don't display introductory message about line editing unless we're -actually offering a shell prompt. (This is believed to be a workaround -for a different bug. We'll go with this for now, but will drop this in -favour of a better fix upstream if somebody figures out what that is.) - -Don't clear the screen just before booting if we never drew the menu in -the first place. - -Remove verbose messages printed before reading configuration. In some -ways this is awkward because it makes debugging harder, but it's a -requirement for a smooth-looking boot process; we may be able to do -better in future. Upstream doesn't want this, though. - -Disable the cursor as well, for similar reasons of tidiness. - -Suppress kernel/initrd progress messages, except in recovery mode. - -Suppress "GRUB loading" message unless Shift is held down. Upstream -doesn't want this, as it makes debugging harder. Ubuntu wants it to -provide a cleaner boot experience. - -Author: Will Thompson -Bug-Ubuntu: https://bugs.launchpad.net/bugs/386922 -Bug-Ubuntu: https://bugs.launchpad.net/bugs/861048 -Forwarded: (partial) http://lists.gnu.org/archive/html/grub-devel/2009-09/msg00056.html -Last-Update: 2019-06-24 - -Patch-Name: maybe-quiet.patch ---- - config.h.in | 2 ++ - configure.ac | 16 ++++++++++++++++ - grub-core/boot/i386/pc/boot.S | 11 +++++++++++ - grub-core/boot/i386/pc/diskboot.S | 26 ++++++++++++++++++++++++++ - grub-core/kern/main.c | 17 +++++++++++++++++ - grub-core/kern/rescue_reader.c | 2 ++ - grub-core/normal/main.c | 11 +++++++++++ - grub-core/normal/menu.c | 17 +++++++++++++++-- - util/grub.d/10_linux.in | 15 +++++++++++---- - 9 files changed, 111 insertions(+), 6 deletions(-) - -diff --git a/config.h.in b/config.h.in -index 9e8f9911b..d2c4ce8e5 100644 ---- a/config.h.in -+++ b/config.h.in -@@ -12,6 +12,8 @@ - /* Define to 1 to enable disk cache statistics. */ - #define DISK_CACHE_STATS @DISK_CACHE_STATS@ - #define BOOT_TIME_STATS @BOOT_TIME_STATS@ -+/* Define to 1 to make GRUB quieter at boot time. */ -+#define QUIET_BOOT @QUIET_BOOT@ - - /* We don't need those. */ - #define MINILZO_CFG_SKIP_LZO_PTR 1 -diff --git a/configure.ac b/configure.ac -index 1e5abc67d..ea00ccd69 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1857,6 +1857,17 @@ else - fi - AC_SUBST([UBUNTU_RECOVERY]) - -+AC_ARG_ENABLE([quiet-boot], -+ [AS_HELP_STRING([--enable-quiet-boot], -+ [emit fewer messages at boot time (default=no)])], -+ [], [enable_quiet_boot=no]) -+if test x"$enable_quiet_boot" = xyes ; then -+ QUIET_BOOT=1 -+else -+ QUIET_BOOT=0 -+fi -+AC_SUBST([QUIET_BOOT]) -+ - LIBS="" - - AC_SUBST([FONT_SOURCE]) -@@ -2114,5 +2125,10 @@ echo "Without liblzma (no support for XZ-compressed mips images) ($liblzma_excus - else - echo "With liblzma from $LIBLZMA (support for XZ-compressed mips images)" - fi -+if [ x"$enable_quiet_boot" = xyes ]; then -+echo With quiet boot: Yes -+else -+echo With quiet boot: No -+fi - echo "*******************************************************" - ] -diff --git a/grub-core/boot/i386/pc/boot.S b/grub-core/boot/i386/pc/boot.S -index 2bd0b2d28..b0c0f2225 100644 ---- a/grub-core/boot/i386/pc/boot.S -+++ b/grub-core/boot/i386/pc/boot.S -@@ -19,6 +19,9 @@ - - #include - #include -+#if QUIET_BOOT && !defined(HYBRID_BOOT) -+#include -+#endif - - /* - * defines for the code go here -@@ -249,9 +252,17 @@ real_start: - /* save drive reference first thing! */ - pushw %dx - -+#if QUIET_BOOT && !defined(HYBRID_BOOT) -+ /* is either shift key held down? */ -+ movw $(GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR + 0x17), %bx -+ testb $3, (%bx) -+ jz 2f -+#endif -+ - /* print a notification message on the screen */ - MSG(notification_string) - -+2: - /* set %si to the disk address packet */ - movw $disk_address_packet, %si - -diff --git a/grub-core/boot/i386/pc/diskboot.S b/grub-core/boot/i386/pc/diskboot.S -index c1addc0df..9b6d7a7ed 100644 ---- a/grub-core/boot/i386/pc/diskboot.S -+++ b/grub-core/boot/i386/pc/diskboot.S -@@ -18,6 +18,9 @@ - - #include - #include -+#if QUIET_BOOT -+#include -+#endif - - /* - * defines for the code go here -@@ -25,6 +28,12 @@ - - #define MSG(x) movw $x, %si; call LOCAL(message) - -+#if QUIET_BOOT -+#define SILENT(x) call LOCAL(check_silent); jz LOCAL(x) -+#else -+#define SILENT(x) -+#endif -+ - .file "diskboot.S" - - .text -@@ -50,11 +59,14 @@ _start: - /* save drive reference first thing! */ - pushw %dx - -+ SILENT(after_notification_string) -+ - /* print a notification message on the screen */ - pushw %si - MSG(notification_string) - popw %si - -+LOCAL(after_notification_string): - /* this sets up for the first run through "bootloop" */ - movw $LOCAL(firstlist), %di - -@@ -279,7 +291,10 @@ LOCAL(copy_buffer): - /* restore addressing regs and print a dot with correct DS - (MSG modifies SI, which is saved, and unused AX and BX) */ - popw %ds -+ SILENT(after_notification_step) - MSG(notification_step) -+ -+LOCAL(after_notification_step): - popa - - /* check if finished with this dataset */ -@@ -295,8 +310,11 @@ LOCAL(copy_buffer): - /* END OF MAIN LOOP */ - - LOCAL(bootit): -+ SILENT(after_notification_done) - /* print a newline */ - MSG(notification_done) -+ -+LOCAL(after_notification_done): - popw %dx /* this makes sure %dl is our "boot" drive */ - ljmp $0, $(GRUB_BOOT_MACHINE_KERNEL_ADDR + 0x200) - -@@ -320,6 +338,14 @@ LOCAL(general_error): - /* go here when you need to stop the machine hard after an error condition */ - LOCAL(stop): jmp LOCAL(stop) - -+#if QUIET_BOOT -+LOCAL(check_silent): -+ /* is either shift key held down? */ -+ movw $(GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR + 0x17), %bx -+ testb $3, (%bx) -+ ret -+#endif -+ - notification_string: .asciz "loading" - - notification_step: .asciz "." -diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c -index 9cad0c448..714b63d67 100644 ---- a/grub-core/kern/main.c -+++ b/grub-core/kern/main.c -@@ -264,15 +264,25 @@ reclaim_module_space (void) - void __attribute__ ((noreturn)) - grub_main (void) - { -+#if QUIET_BOOT -+ struct grub_term_output *term; -+#endif -+ - /* First of all, initialize the machine. */ - grub_machine_init (); - - grub_boot_time ("After machine init."); - -+#if QUIET_BOOT -+ /* Disable the cursor until we need it. */ -+ FOR_ACTIVE_TERM_OUTPUTS(term) -+ grub_term_setcursor (term, 0); -+#else - /* Hello. */ - grub_setcolorstate (GRUB_TERM_COLOR_HIGHLIGHT); - grub_printf ("Welcome to GRUB!\n\n"); - grub_setcolorstate (GRUB_TERM_COLOR_STANDARD); -+#endif - - grub_load_config (); - -@@ -308,5 +318,12 @@ grub_main (void) - grub_boot_time ("After execution of embedded config. Attempt to go to normal mode"); - - grub_load_normal_mode (); -+ -+#if QUIET_BOOT -+ /* If we have to enter rescue mode, enable the cursor again. */ -+ FOR_ACTIVE_TERM_OUTPUTS(term) -+ grub_term_setcursor (term, 1); -+#endif -+ - grub_rescue_run (); - } -diff --git a/grub-core/kern/rescue_reader.c b/grub-core/kern/rescue_reader.c -index dcd7d4439..a93524eab 100644 ---- a/grub-core/kern/rescue_reader.c -+++ b/grub-core/kern/rescue_reader.c -@@ -78,7 +78,9 @@ grub_rescue_read_line (char **line, int cont, - void __attribute__ ((noreturn)) - grub_rescue_run (void) - { -+#if QUIET_BOOT - grub_printf ("Entering rescue mode...\n"); -+#endif - - while (1) - { -diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index 1b03dfd57..0aa389fa1 100644 ---- a/grub-core/normal/main.c -+++ b/grub-core/normal/main.c -@@ -389,6 +389,15 @@ static grub_err_t - grub_normal_read_line_real (char **line, int cont, int nested) - { - const char *prompt; -+#if QUIET_BOOT -+ static int displayed_intro; -+ -+ if (! displayed_intro) -+ { -+ grub_normal_reader_init (nested); -+ displayed_intro = 1; -+ } -+#endif - - if (cont) - /* TRANSLATORS: it's command line prompt. */ -@@ -441,7 +450,9 @@ grub_cmdline_run (int nested, int force_auth) - return; - } - -+#if !QUIET_BOOT - grub_normal_reader_init (nested); -+#endif - - while (1) - { -diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c -index 3611ee9ea..ebf5a0f10 100644 ---- a/grub-core/normal/menu.c -+++ b/grub-core/normal/menu.c -@@ -827,12 +827,18 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot) - - /* Callback invoked immediately before a menu entry is executed. */ - static void --notify_booting (grub_menu_entry_t entry, -+notify_booting (grub_menu_entry_t entry -+#if QUIET_BOOT -+ __attribute__((unused)) -+#endif -+ , - void *userdata __attribute__((unused))) - { -+#if !QUIET_BOOT - grub_printf (" "); - grub_printf_ (N_("Booting `%s'"), entry->title); - grub_printf ("\n\n"); -+#endif - } - - /* Callback invoked when a default menu entry executed because of a timeout -@@ -880,6 +886,9 @@ show_menu (grub_menu_t menu, int nested, int autobooted) - int boot_entry; - grub_menu_entry_t e; - int auto_boot; -+#if QUIET_BOOT -+ int initial_timeout = grub_menu_get_timeout (); -+#endif - - boot_entry = run_menu (menu, nested, &auto_boot); - if (boot_entry < 0) -@@ -889,7 +898,11 @@ show_menu (grub_menu_t menu, int nested, int autobooted) - if (! e) - continue; /* Menu is empty. */ - -- grub_cls (); -+#if QUIET_BOOT -+ /* Only clear the screen if we drew the menu in the first place. */ -+ if (initial_timeout != 0) -+#endif -+ grub_cls (); - - if (auto_boot) - grub_menu_execute_with_fallback (menu, e, autobooted, -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 61335e908..2e4dff9fb 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -21,6 +21,7 @@ prefix="@prefix@" - exec_prefix="@exec_prefix@" - datarootdir="@datarootdir@" - ubuntu_recovery="@UBUNTU_RECOVERY@" -+quiet_boot="@QUIET_BOOT@" - - . "$pkgdatadir/grub-mkconfig_lib" - -@@ -158,10 +159,12 @@ linux_entry () - fi - printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/" - fi -- message="$(gettext_printf "Loading Linux %s ..." ${version})" -- sed "s/^/$submenu_indentation/" << EOF -+ if [ x"$quiet_boot" = x0 ] || [ x"$type" != xsimple ]; then -+ message="$(gettext_printf "Loading Linux %s ..." ${version})" -+ sed "s/^/$submenu_indentation/" << EOF - echo '$(echo "$message" | grub_quote)' - EOF -+ fi - if test -d /sys/firmware/efi && test -e "${linux}.efi.signed"; then - sed "s/^/$submenu_indentation/" << EOF - linux ${rel_dirname}/${basename}.efi.signed root=${linux_root_device_thisversion} ro ${args} -@@ -173,13 +176,17 @@ EOF - fi - if test -n "${initrd}" ; then - # TRANSLATORS: ramdisk isn't identifier. Should be translated. -- message="$(gettext_printf "Loading initial ramdisk ...")" -+ if [ x"$quiet_boot" = x0 ] || [ x"$type" != xsimple ]; then -+ message="$(gettext_printf "Loading initial ramdisk ...")" -+ sed "s/^/$submenu_indentation/" << EOF -+ echo '$(echo "$message" | grub_quote)' -+EOF -+ fi - initrd_path= - for i in ${initrd}; do - initrd_path="${initrd_path} ${rel_dirname}/${i}" - done - sed "s/^/$submenu_indentation/" << EOF -- echo '$(echo "$message" | grub_quote)' - initrd $(echo $initrd_path) - EOF - fi diff --git a/patches/grub/2.04/mdraid1x-linux-gcc-10.patch b/patches/grub/2.04/mdraid1x-linux-gcc-10.patch deleted file mode 100644 index dd2f93969..000000000 --- a/patches/grub/2.04/mdraid1x-linux-gcc-10.patch +++ /dev/null @@ -1,53 +0,0 @@ -From c54b0d1ed58cf7abe95af0b79008324d442e64dc Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 26 Mar 2020 14:35:34 +0800 -Subject: mdraid1x_linux: Fix gcc10 error -Werror=array-bounds - -We bumped into the build error while testing gcc-10 pre-release. - -../../grub-core/disk/mdraid1x_linux.c: In function 'grub_mdraid_detect': -../../grub-core/disk/mdraid1x_linux.c:181:15: error: array subscript is outside array bounds of 'grub_uint16_t[0]' {aka 'short unsigned int[0]'} [-Werror=array-bounds] - 181 | (char *) &sb.dev_roles[grub_le_to_cpu32 (sb.dev_number)] - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -../../grub-core/disk/mdraid1x_linux.c:98:17: note: while referencing 'dev_roles' - 98 | grub_uint16_t dev_roles[0]; /* Role in array, or 0xffff for a spare, or 0xfffe for faulty. */ - | ^~~~~~~~~ -../../grub-core/disk/mdraid1x_linux.c:127:33: note: defined here 'sb' - 127 | struct grub_raid_super_1x sb; - | ^~ -cc1: all warnings being treated as errors - -Apparently gcc issues the warning when trying to access sb.dev_roles -array's member, since it is a zero length array as the last element of -struct grub_raid_super_1x that is allocated sparsely without extra -chunks for the trailing bits, so the warning looks legitimate in this -regard. - -As the whole thing here is doing offset computation, it is undue to use -syntax that would imply array member access then take address from it -later. Instead we could accomplish the same thing through basic array -pointer arithmetic to pacify the warning. - -Signed-off-by: Michael Chang -Reviewed-by: Daniel Kiper - -Last-Update: 2020-12-28 - -Patch-Name: mdraid1x-linux-gcc-10.patch ---- - grub-core/disk/mdraid1x_linux.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/disk/mdraid1x_linux.c b/grub-core/disk/mdraid1x_linux.c -index 7cc80d3df..c980feba4 100644 ---- a/grub-core/disk/mdraid1x_linux.c -+++ b/grub-core/disk/mdraid1x_linux.c -@@ -178,7 +178,7 @@ grub_mdraid_detect (grub_disk_t disk, - return NULL; - - if (grub_disk_read (disk, sector, -- (char *) &sb.dev_roles[grub_le_to_cpu32 (sb.dev_number)] -+ (char *) (sb.dev_roles + grub_le_to_cpu32 (sb.dev_number)) - - (char *) &sb, - sizeof (role), &role)) - return NULL; diff --git a/patches/grub/2.04/mkconfig-loopback.patch b/patches/grub/2.04/mkconfig-loopback.patch deleted file mode 100644 index 28054e018..000000000 --- a/patches/grub/2.04/mkconfig-loopback.patch +++ /dev/null @@ -1,96 +0,0 @@ -From eac8d3f2f35c3478673698c800b21d425faf6326 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:00 +0000 -Subject: Handle filesystems loop-mounted on file images - -Improve prepare_grub_to_access_device to emit appropriate commands for -such filesystems, and ignore them in Linux grub.d scripts. - -This is needed for Ubuntu's Wubi installation method. - -This patch isn't inherently Debian/Ubuntu-specific. losetup and -/proc/mounts are Linux-specific, though, so we might need to refine this -before sending it upstream. The changes to the Linux grub.d scripts -might be better handled by integrating 10_lupin properly instead. - -Patch-Name: mkconfig-loopback.patch ---- - util/grub-mkconfig_lib.in | 24 ++++++++++++++++++++++++ - util/grub.d/10_linux.in | 5 +++++ - util/grub.d/20_linux_xen.in | 5 +++++ - 3 files changed, 34 insertions(+) - -diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index b6606c16e..b05df554d 100644 ---- a/util/grub-mkconfig_lib.in -+++ b/util/grub-mkconfig_lib.in -@@ -133,6 +133,22 @@ prepare_grub_to_access_device () - esac - done - -+ loop_file= -+ case $1 in -+ /dev/loop/*|/dev/loop[0-9]) -+ grub_loop_device="${1#/dev/}" -+ loop_file=`losetup "$1" | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"` -+ case $loop_file in -+ /dev/*) ;; -+ *) -+ loop_device="$1" -+ shift -+ set -- `"${grub_probe}" --target=device "${loop_file}"` "$@" -+ ;; -+ esac -+ ;; -+ esac -+ - # Abstraction modules aren't auto-loaded. - abstraction="`"${grub_probe}" --device $@ --target=abstraction`" - for module in ${abstraction} ; do -@@ -165,6 +181,14 @@ prepare_grub_to_access_device () - echo "fi" - fi - IFS="$old_ifs" -+ -+ if [ "x${loop_file}" != x ]; then -+ loop_mountpoint="$(awk '"'${loop_file}'" ~ "^"$2 && $2 != "/" { print $2 }' /proc/mounts | tail -n1)" -+ if [ "x${loop_mountpoint}" != x ]; then -+ echo "loopback ${grub_loop_device} ${loop_file#$loop_mountpoint}" -+ echo "set root=(${grub_loop_device})" -+ fi -+ fi - } - - grub_get_device_id () -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index dd5a60c71..8c22c79f6 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -40,6 +40,11 @@ fi - case ${GRUB_DEVICE} in - /dev/loop/*|/dev/loop[0-9]) - GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"` -+ # We can't cope with devices loop-mounted from files here. -+ case ${GRUB_DEVICE} in -+ /dev/*) ;; -+ *) exit 0 ;; -+ esac - ;; - esac - -diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index 96179ea61..9a8d42fb5 100644 ---- a/util/grub.d/20_linux_xen.in -+++ b/util/grub.d/20_linux_xen.in -@@ -40,6 +40,11 @@ fi - case ${GRUB_DEVICE} in - /dev/loop/*|/dev/loop[0-9]) - GRUB_DEVICE=`losetup ${GRUB_DEVICE} | sed -e "s/^[^(]*(\([^)]\+\)).*/\1/"` -+ # We can't cope with devices loop-mounted from files here. -+ case ${GRUB_DEVICE} in -+ /dev/*) ;; -+ *) exit 0 ;; -+ esac - ;; - esac - diff --git a/patches/grub/2.04/mkconfig-nonexistent-loopback.patch b/patches/grub/2.04/mkconfig-nonexistent-loopback.patch deleted file mode 100644 index 9566acd9f..000000000 --- a/patches/grub/2.04/mkconfig-nonexistent-loopback.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 89bc673c4a1cedfd851377b69772d65270967a9a Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:08 +0000 -Subject: Avoid getting confused by inaccessible loop device backing paths - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/938724 -Forwarded: no -Last-Update: 2013-12-20 - -Patch-Name: mkconfig-nonexistent-loopback.patch ---- - util/grub-mkconfig_lib.in | 2 +- - util/grub.d/30_os-prober.in | 9 +++++---- - 2 files changed, 6 insertions(+), 5 deletions(-) - -diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index b05df554d..fe6319abe 100644 ---- a/util/grub-mkconfig_lib.in -+++ b/util/grub-mkconfig_lib.in -@@ -143,7 +143,7 @@ prepare_grub_to_access_device () - *) - loop_device="$1" - shift -- set -- `"${grub_probe}" --target=device "${loop_file}"` "$@" -+ set -- `"${grub_probe}" --target=device "${loop_file}"` "$@" || return 0 - ;; - esac - ;; -diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in -index 775ceb2e0..b7e1147c4 100644 ---- a/util/grub.d/30_os-prober.in -+++ b/util/grub.d/30_os-prober.in -@@ -219,6 +219,11 @@ EOF - LINITRD="${LINITRD#/boot}" - fi - -+ if [ -z "${prepare_boot_cache}" ]; then -+ prepare_boot_cache="$(prepare_grub_to_access_device ${LBOOT} | grub_add_tab)" -+ [ "${prepare_boot_cache}" ] || continue -+ fi -+ - onstr="$(gettext_printf "(on %s)" "${DEVICE}")" - recovery_params="$(echo "${LPARAMS}" | grep 'single\|recovery')" || true - counter=1 -@@ -230,10 +235,6 @@ EOF - fi - used_osprober_linux_ids="$used_osprober_linux_ids 'osprober-gnulinux-$LKERNEL-${recovery_params}-$counter-$boot_device_id'" - -- if [ -z "${prepare_boot_cache}" ]; then -- prepare_boot_cache="$(prepare_grub_to_access_device ${LBOOT} | grub_add_tab)" -- fi -- - if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then - cat << EOF - menuentry '$(echo "$OS $onstr" | grub_quote)' $CLASS --class gnu-linux --class gnu --class os \$menuentry_id_option 'osprober-gnulinux-simple-$boot_device_id' { diff --git a/patches/grub/2.04/mkconfig-other-inits.patch b/patches/grub/2.04/mkconfig-other-inits.patch deleted file mode 100644 index 711636fa5..000000000 --- a/patches/grub/2.04/mkconfig-other-inits.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 8c4c292397fafe3cb80eee9f1bfd69189d41c1bc Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Sat, 3 Jan 2015 12:04:59 +0000 -Subject: Generate alternative init entries in advanced menu - -Add fallback boot entries for alternative installed init systems. Based -on patches from Michael Biebl and Didier Roche. - -Bug-Debian: https://bugs.debian.org/757298 -Bug-Debian: https://bugs.debian.org/773173 -Forwarded: no -Last-Update: 2017-06-23 - -Patch-Name: mkconfig-other-inits.patch ---- - util/grub.d/10_linux.in | 10 ++++++++++ - util/grub.d/20_linux_xen.in | 11 +++++++++++ - 2 files changed, 21 insertions(+) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 8a74c677b..0cd4cf5c0 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -32,6 +32,7 @@ export TEXTDOMAIN=@PACKAGE@ - export TEXTDOMAINDIR="@localedir@" - - CLASS="--class gnu-linux --class gnu --class os" -+SUPPORTED_INITS="sysvinit:/lib/sysvinit/init systemd:/lib/systemd/systemd upstart:/sbin/upstart" - - if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then - OS=GNU/Linux -@@ -127,6 +128,8 @@ linux_entry () - case $type in - recovery) - title="$(gettext_printf "%s, with Linux %s (%s)" "${os}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" ;; -+ init-*) -+ title="$(gettext_printf "%s, with Linux %s (%s)" "${os}" "${version}" "${type#init-}")" ;; - *) - title="$(gettext_printf "%s, with Linux %s" "${os}" "${version}")" ;; - esac -@@ -381,6 +384,13 @@ while [ "x$list" != "x" ] ; do - - linux_entry "${OS}" "${version}" advanced \ - "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" -+ for supported_init in ${SUPPORTED_INITS}; do -+ init_path="${supported_init#*:}" -+ if [ -x "${init_path}" ] && [ "$(readlink -f /sbin/init)" != "$(readlink -f "${init_path}")" ]; then -+ linux_entry "${OS}" "${version}" "init-${supported_init%%:*}" \ -+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} init=${init_path}" -+ fi -+ done - if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then - linux_entry "${OS}" "${version}" recovery \ - "${GRUB_CMDLINE_LINUX_RECOVERY} ${GRUB_CMDLINE_LINUX}" -diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index f2ee0532b..81e5f0d7e 100644 ---- a/util/grub.d/20_linux_xen.in -+++ b/util/grub.d/20_linux_xen.in -@@ -27,6 +27,7 @@ export TEXTDOMAIN=@PACKAGE@ - export TEXTDOMAINDIR="@localedir@" - - CLASS="--class gnu-linux --class gnu --class os --class xen" -+SUPPORTED_INITS="sysvinit:/lib/sysvinit/init systemd:/lib/systemd/systemd upstart:/sbin/upstart" - - if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then - OS=GNU/Linux -@@ -106,6 +107,8 @@ linux_entry () - if [ x$type != xsimple ] ; then - if [ x$type = xrecovery ] ; then - title="$(gettext_printf "%s, with Xen %s and Linux %s (%s)" "${os}" "${xen_version}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" -+ elif [ "${type#init-}" != "$type" ] ; then -+ title="$(gettext_printf "%s, with Xen %s and Linux %s (%s)" "${os}" "${xen_version}" "${version}" "${type#init-}")" - else - title="$(gettext_printf "%s, with Xen %s and Linux %s" "${os}" "${xen_version}" "${version}")" - fi -@@ -310,6 +313,14 @@ while [ "x${xen_list}" != "x" ] ; do - - linux_entry "${OS}" "${version}" "${xen_version}" advanced \ - "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" -+ for supported_init in ${SUPPORTED_INITS}; do -+ init_path="${supported_init#*:}" -+ if [ -x "${init_path}" ] && [ "$(readlink -f /sbin/init)" != "$(readlink -f "${init_path}")" ]; then -+ linux_entry "${OS}" "${version}" "${xen_version}" "init-${supported_init%%:*}" \ -+ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT} init=${init_path}" "${GRUB_CMDLINE_XEN} ${GRUB_CMDLINE_XEN_DEFAULT}" -+ -+ fi -+ done - if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then - linux_entry "${OS}" "${version}" "${xen_version}" recovery \ - "single ${GRUB_CMDLINE_LINUX}" "${GRUB_CMDLINE_XEN}" diff --git a/patches/grub/2.04/mkconfig-recovery-title.patch b/patches/grub/2.04/mkconfig-recovery-title.patch deleted file mode 100644 index 38e52baca..000000000 --- a/patches/grub/2.04/mkconfig-recovery-title.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 24f2301bae760f8d3dcf5d06b75bea1f647263ea Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:33 +0000 -Subject: Add GRUB_RECOVERY_TITLE option - -This allows the controversial "recovery mode" text to be customised. - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1240360 -Forwarded: no -Last-Update: 2013-12-25 - -Patch-Name: mkconfig-recovery-title.patch ---- - docs/grub.texi | 5 +++++ - util/grub-mkconfig.in | 7 ++++++- - util/grub.d/10_hurd.in | 4 ++-- - util/grub.d/10_kfreebsd.in | 2 +- - util/grub.d/10_linux.in | 2 +- - util/grub.d/10_netbsd.in | 2 +- - util/grub.d/20_linux_xen.in | 2 +- - 7 files changed, 17 insertions(+), 7 deletions(-) - -diff --git a/docs/grub.texi b/docs/grub.texi -index a835d0ae4..3ec35d315 100644 ---- a/docs/grub.texi -+++ b/docs/grub.texi -@@ -1536,6 +1536,11 @@ a console is restricted or limited. - This option is only effective when GRUB was configured with the - @option{--enable-quick-boot} option. - -+@item GRUB_RECOVERY_TITLE -+This option sets the English text of the string that will be displayed in -+parentheses to indicate that a boot option is provided to help users recover -+a broken system. The default is "recovery mode". -+ - @end table - - The following options are still accepted for compatibility with existing -diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index 8752777e0..0aa41da93 100644 ---- a/util/grub-mkconfig.in -+++ b/util/grub-mkconfig.in -@@ -189,6 +189,10 @@ GRUB_ACTUAL_DEFAULT="$GRUB_DEFAULT" - - if [ "x${GRUB_ACTUAL_DEFAULT}" = "xsaved" ] ; then GRUB_ACTUAL_DEFAULT="`"${grub_editenv}" - list | sed -n '/^saved_entry=/ s,^saved_entry=,,p'`" ; fi - -+if [ "x${GRUB_RECOVERY_TITLE}" = "x" ]; then -+ GRUB_RECOVERY_TITLE="recovery mode" -+fi -+ - - # These are defined in this script, export them here so that user can - # override them. -@@ -244,7 +248,8 @@ export GRUB_DEFAULT \ - GRUB_BADRAM \ - GRUB_OS_PROBER_SKIP_LIST \ - GRUB_DISABLE_SUBMENU \ -- GRUB_RECORDFAIL_TIMEOUT -+ GRUB_RECORDFAIL_TIMEOUT \ -+ GRUB_RECOVERY_TITLE - - if test "x${grub_cfg}" != "x"; then - rm -f "${grub_cfg}.new" -diff --git a/util/grub.d/10_hurd.in b/util/grub.d/10_hurd.in -index 59a9a48a2..7fa3a3fbd 100644 ---- a/util/grub.d/10_hurd.in -+++ b/util/grub.d/10_hurd.in -@@ -88,8 +88,8 @@ hurd_entry () { - - if [ x$type != xsimple ] ; then - if [ x$type = xrecovery ] ; then -- title="$(gettext_printf "%s, with Hurd %s (recovery mode)" "${OS}" "${kernel_base}")" -- oldtitle="$OS using $kernel_base (recovery mode)" -+ title="$(gettext_printf "%s, with Hurd %s (%s)" "${OS}" "${kernel_base}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" -+ oldtitle="$OS using $kernel_base ($GRUB_RECOVERY_TITLE)" - else - title="$(gettext_printf "%s, with Hurd %s" "${OS}" "${kernel_base}")" - oldtitle="$OS using $kernel_base" -diff --git a/util/grub.d/10_kfreebsd.in b/util/grub.d/10_kfreebsd.in -index 9d8e8fd85..8301d361a 100644 ---- a/util/grub.d/10_kfreebsd.in -+++ b/util/grub.d/10_kfreebsd.in -@@ -76,7 +76,7 @@ kfreebsd_entry () - fi - if [ x$type != xsimple ] ; then - if [ x$type = xrecovery ] ; then -- title="$(gettext_printf "%s, with kFreeBSD %s (recovery mode)" "${os}" "${version}")" -+ title="$(gettext_printf "%s, with kFreeBSD %s (%s)" "${os}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" - else - title="$(gettext_printf "%s, with kFreeBSD %s" "${os}" "${version}")" - fi -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 174d547bb..ba945582e 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -126,7 +126,7 @@ linux_entry () - if [ x$type != xsimple ] ; then - case $type in - recovery) -- title="$(gettext_printf "%s, with Linux %s (recovery mode)" "${os}" "${version}")" ;; -+ title="$(gettext_printf "%s, with Linux %s (%s)" "${os}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" ;; - *) - title="$(gettext_printf "%s, with Linux %s" "${os}" "${version}")" ;; - esac -diff --git a/util/grub.d/10_netbsd.in b/util/grub.d/10_netbsd.in -index 874f59969..bb29cc046 100644 ---- a/util/grub.d/10_netbsd.in -+++ b/util/grub.d/10_netbsd.in -@@ -102,7 +102,7 @@ netbsd_entry () - - if [ x$type != xsimple ] ; then - if [ x$type = xrecovery ] ; then -- title="$(gettext_printf "%s, with kernel %s (via %s, recovery mode)" "${OS}" "$(echo ${kernel} | sed -e 's,^.*/,,')" "${loader}")" -+ title="$(gettext_printf "%s, with kernel %s (via %s, %s)" "${OS}" "$(echo ${kernel} | sed -e 's,^.*/,,')" "${loader}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" - else - title="$(gettext_printf "%s, with kernel %s (via %s)" "${OS}" "$(echo ${kernel} | sed -e 's,^.*/,,')" "${loader}")" - fi -diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index 9a8d42fb5..f2ee0532b 100644 ---- a/util/grub.d/20_linux_xen.in -+++ b/util/grub.d/20_linux_xen.in -@@ -105,7 +105,7 @@ linux_entry () - fi - if [ x$type != xsimple ] ; then - if [ x$type = xrecovery ] ; then -- title="$(gettext_printf "%s, with Xen %s and Linux %s (recovery mode)" "${os}" "${xen_version}" "${version}")" -+ title="$(gettext_printf "%s, with Xen %s and Linux %s (%s)" "${os}" "${xen_version}" "${version}" "$(gettext "${GRUB_RECOVERY_TITLE}")")" - else - title="$(gettext_printf "%s, with Xen %s and Linux %s" "${os}" "${xen_version}" "${version}")" - fi diff --git a/patches/grub/2.04/mkconfig-signed-kernel.patch b/patches/grub/2.04/mkconfig-signed-kernel.patch deleted file mode 100644 index 5d8105ded..000000000 --- a/patches/grub/2.04/mkconfig-signed-kernel.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 492e1623436d1f0f2557ff4da2eb68a502295ba5 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:21 +0000 -Subject: Generate configuration for signed UEFI kernels if available - -Forwarded: no -Last-Update: 2013-12-25 - -Patch-Name: mkconfig-signed-kernel.patch ---- - util/grub.d/10_linux.in | 15 +++++++++++++++ - 1 file changed, 15 insertions(+) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index fd87a124d..61335e908 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -161,8 +161,16 @@ linux_entry () - message="$(gettext_printf "Loading Linux %s ..." ${version})" - sed "s/^/$submenu_indentation/" << EOF - echo '$(echo "$message" | grub_quote)' -+EOF -+ if test -d /sys/firmware/efi && test -e "${linux}.efi.signed"; then -+ sed "s/^/$submenu_indentation/" << EOF -+ linux ${rel_dirname}/${basename}.efi.signed root=${linux_root_device_thisversion} ro ${args} -+EOF -+ else -+ sed "s/^/$submenu_indentation/" << EOF - linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} - EOF -+ fi - if test -n "${initrd}" ; then - # TRANSLATORS: ramdisk isn't identifier. Should be translated. - message="$(gettext_printf "Loading initial ramdisk ...")" -@@ -214,6 +222,13 @@ submenu_indentation="" - is_top_level=true - while [ "x$list" != "x" ] ; do - linux=`version_find_latest $list` -+ case $linux in -+ *.efi.signed) -+ # We handle these in linux_entry. -+ list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '` -+ continue -+ ;; -+ esac - gettext_printf "Found linux image: %s\n" "$linux" >&2 - basename=`basename $linux` - dirname=`dirname $linux` diff --git a/patches/grub/2.04/mkconfig-ubuntu-distributor.patch b/patches/grub/2.04/mkconfig-ubuntu-distributor.patch deleted file mode 100644 index 2af261062..000000000 --- a/patches/grub/2.04/mkconfig-ubuntu-distributor.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 267fd06cb9680bf457a1d9a4f532f8ce21c6ddf3 Mon Sep 17 00:00:00 2001 -From: Mario Limonciello -Date: Mon, 13 Jan 2014 12:13:14 +0000 -Subject: Remove GNU/Linux from default distributor string for Ubuntu - -Ubuntu is called "Ubuntu", not "Ubuntu GNU/Linux". - -Author: Colin Watson -Author: Harald Sitter -Forwarded: not-needed -Last-Update: 2013-12-25 - -Patch-Name: mkconfig-ubuntu-distributor.patch ---- - util/grub.d/10_linux.in | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 0509ac680..fd87a124d 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -32,7 +32,14 @@ CLASS="--class gnu-linux --class gnu --class os" - if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then - OS=GNU/Linux - else -- OS="${GRUB_DISTRIBUTOR} GNU/Linux" -+ case ${GRUB_DISTRIBUTOR} in -+ Ubuntu|Kubuntu) -+ OS="${GRUB_DISTRIBUTOR}" -+ ;; -+ *) -+ OS="${GRUB_DISTRIBUTOR} GNU/Linux" -+ ;; -+ esac - CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}" - fi - diff --git a/patches/grub/2.04/mkconfig-ubuntu-recovery.patch b/patches/grub/2.04/mkconfig-ubuntu-recovery.patch deleted file mode 100644 index ada73c064..000000000 --- a/patches/grub/2.04/mkconfig-ubuntu-recovery.patch +++ /dev/null @@ -1,107 +0,0 @@ -From 4493c7ab311c8f0b898a17b407939d042edf66cd Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:06 +0000 -Subject: "single" -> "recovery" when friendly-recovery is installed -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -If configured with --enable-ubuntu-recovery, also set nomodeset for -recovery mode, and disable 'set gfxpayload=keep' even if the system -normally supports it. See -https://launchpad.net/ubuntu/+spec/desktop-o-xorg-tools-and-processes. - -Author: Stéphane Graber -Forwarded: no -Last-Update: 2013-12-25 - -Patch-Name: mkconfig-ubuntu-recovery.patch ---- - configure.ac | 11 +++++++++++ - util/grub.d/10_linux.in | 16 ++++++++++++++-- - util/grub.d/30_os-prober.in | 2 +- - 3 files changed, 26 insertions(+), 3 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 7656f2434..1e5abc67d 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1846,6 +1846,17 @@ fi - AC_SUBST([LIBZFS]) - AC_SUBST([LIBNVPAIR]) - -+AC_ARG_ENABLE([ubuntu-recovery], -+ [AS_HELP_STRING([--enable-ubuntu-recovery], -+ [adjust boot options for the Ubuntu recovery mode (default=no)])], -+ [], [enable_ubuntu_recovery=no]) -+if test x"$enable_ubuntu_recovery" = xyes ; then -+ UBUNTU_RECOVERY=1 -+else -+ UBUNTU_RECOVERY=0 -+fi -+AC_SUBST([UBUNTU_RECOVERY]) -+ - LIBS="" - - AC_SUBST([FONT_SOURCE]) -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 8c22c79f6..0509ac680 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -20,6 +20,7 @@ set -e - prefix="@prefix@" - exec_prefix="@exec_prefix@" - datarootdir="@datarootdir@" -+ubuntu_recovery="@UBUNTU_RECOVERY@" - - . "$pkgdatadir/grub-mkconfig_lib" - -@@ -84,6 +85,15 @@ esac - - title_correction_code= - -+if [ -x /lib/recovery-mode/recovery-menu ]; then -+ GRUB_CMDLINE_LINUX_RECOVERY=recovery -+else -+ GRUB_CMDLINE_LINUX_RECOVERY=single -+fi -+if [ "$ubuntu_recovery" = 1 ]; then -+ GRUB_CMDLINE_LINUX_RECOVERY="$GRUB_CMDLINE_LINUX_RECOVERY nomodeset" -+fi -+ - linux_entry () - { - os="$1" -@@ -123,7 +133,9 @@ linux_entry () - if [ "x$GRUB_GFXPAYLOAD_LINUX" != xtext ]; then - echo " load_video" | sed "s/^/$submenu_indentation/" - fi -- echo " set gfxpayload=$GRUB_GFXPAYLOAD_LINUX" | sed "s/^/$submenu_indentation/" -+ if [ "$ubuntu_recovery" = 0 ] || [ x$type != xrecovery ]; then -+ echo " set gfxpayload=$GRUB_GFXPAYLOAD_LINUX" | sed "s/^/$submenu_indentation/" -+ fi - fi - - echo " insmod gzio" | sed "s/^/$submenu_indentation/" -@@ -280,7 +292,7 @@ while [ "x$list" != "x" ] ; do - "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" - if [ "x${GRUB_DISABLE_RECOVERY}" != "xtrue" ]; then - linux_entry "${OS}" "${version}" recovery \ -- "single ${GRUB_CMDLINE_LINUX}" -+ "${GRUB_CMDLINE_LINUX_RECOVERY} ${GRUB_CMDLINE_LINUX}" - fi - - list=`echo $list | tr ' ' '\n' | fgrep -vx "$linux" | tr '\n' ' '` -diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in -index 515a68c7a..775ceb2e0 100644 ---- a/util/grub.d/30_os-prober.in -+++ b/util/grub.d/30_os-prober.in -@@ -220,7 +220,7 @@ EOF - fi - - onstr="$(gettext_printf "(on %s)" "${DEVICE}")" -- recovery_params="$(echo "${LPARAMS}" | grep single)" || true -+ recovery_params="$(echo "${LPARAMS}" | grep 'single\|recovery')" || true - counter=1 - while echo "$used_osprober_linux_ids" | grep 'osprober-gnulinux-$LKERNEL-${recovery_params}-$counter-$boot_device_id' > /dev/null; do - counter=$((counter+1)); diff --git a/patches/grub/2.04/mkrescue-efi-modules.patch b/patches/grub/2.04/mkrescue-efi-modules.patch deleted file mode 100644 index db44eea4a..000000000 --- a/patches/grub/2.04/mkrescue-efi-modules.patch +++ /dev/null @@ -1,35 +0,0 @@ -From b1e5197cab859b271d539c8e4a9f2928b23b66b2 Mon Sep 17 00:00:00 2001 -From: Mario Limonciello -Date: Mon, 13 Jan 2014 12:12:59 +0000 -Subject: Build vfat into EFI boot images - -Author: Colin Watson -Bug-Ubuntu: https://bugs.launchpad.net/bugs/677758 -Forwarded: http://lists.gnu.org/archive/html/grub-devel/2011-01/msg00028.html -Last-Update: 2016-09-18 - -Patch-Name: mkrescue-efi-modules.patch ---- - util/grub-mkrescue.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/util/grub-mkrescue.c b/util/grub-mkrescue.c -index ce2cbc4f1..45d6140d3 100644 ---- a/util/grub-mkrescue.c -+++ b/util/grub-mkrescue.c -@@ -750,6 +750,7 @@ main (int argc, char *argv[]) - - grub_install_push_module ("part_gpt"); - grub_install_push_module ("part_msdos"); -+ grub_install_push_module ("fat"); - - imgname = grub_util_path_concat (2, efidir_efi_boot, "bootia64.efi"); - make_image_fwdisk_abs (GRUB_INSTALL_PLATFORM_IA64_EFI, "ia64-efi", imgname); -@@ -827,6 +828,7 @@ main (int argc, char *argv[]) - free (efidir); - grub_install_pop_module (); - grub_install_pop_module (); -+ grub_install_pop_module (); - } - - grub_install_push_module ("part_apple"); diff --git a/patches/grub/2.04/multiboot2-leak.patch b/patches/grub/2.04/multiboot2-leak.patch deleted file mode 100644 index 9b55df4d9..000000000 --- a/patches/grub/2.04/multiboot2-leak.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 3b39c2023f3aa242b008385939a7394e5946e94b Mon Sep 17 00:00:00 2001 -From: Konrad Rzeszutek Wilk -Date: Fri, 26 Jun 2020 10:51:43 -0400 -Subject: multiboot2: Fix memory leak if grub_create_loader_cmdline() fails - -Fixes: CID 292468 - -Signed-off-by: Konrad Rzeszutek Wilk -Reviewed-by: Daniel Kiper - -Patch-Name: multiboot2-leak.patch ---- - grub-core/loader/multiboot_mbi2.c | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/grub-core/loader/multiboot_mbi2.c b/grub-core/loader/multiboot_mbi2.c -index 53da78615..0efc66062 100644 ---- a/grub-core/loader/multiboot_mbi2.c -+++ b/grub-core/loader/multiboot_mbi2.c -@@ -1070,7 +1070,11 @@ grub_multiboot2_add_module (grub_addr_t start, grub_size_t size, - err = grub_create_loader_cmdline (argc, argv, newmod->cmdline, - newmod->cmdline_size, GRUB_VERIFY_MODULE_CMDLINE); - if (err) -- return err; -+ { -+ grub_free (newmod->cmdline); -+ grub_free (newmod); -+ return err; -+ } - - if (modules_last) - modules_last->next = newmod; diff --git a/patches/grub/2.04/net-read-bracketed-ipv6-addr.patch b/patches/grub/2.04/net-read-bracketed-ipv6-addr.patch deleted file mode 100644 index f318be0c2..000000000 --- a/patches/grub/2.04/net-read-bracketed-ipv6-addr.patch +++ /dev/null @@ -1,254 +0,0 @@ -From baf5beb0dba441f4622de2f0d152e389975fee56 Mon Sep 17 00:00:00 2001 -From: Aaron Miller -Date: Thu, 27 Oct 2016 17:39:49 -0400 -Subject: net: read bracketed ipv6 addrs and port numbers - -Allow specifying port numbers for http and tftp paths, and allow ipv6 addresses -to be recognized with brackets around them, which is required to specify a port -number - -Patch-Name: net-read-bracketed-ipv6-addr.patch ---- - grub-core/net/http.c | 21 ++++++++-- - grub-core/net/net.c | 93 +++++++++++++++++++++++++++++++++++++++++--- - grub-core/net/tftp.c | 6 ++- - include/grub/net.h | 1 + - 4 files changed, 110 insertions(+), 11 deletions(-) - -diff --git a/grub-core/net/http.c b/grub-core/net/http.c -index 5aa4ad3be..f182d7b87 100644 ---- a/grub-core/net/http.c -+++ b/grub-core/net/http.c -@@ -312,12 +312,14 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial) - int i; - struct grub_net_buff *nb; - grub_err_t err; -+ char* server = file->device->net->server; -+ int port = file->device->net->port; - - nb = grub_netbuff_alloc (GRUB_NET_TCP_RESERVE_SIZE - + sizeof ("GET ") - 1 - + grub_strlen (data->filename) - + sizeof (" HTTP/1.1\r\nHost: ") - 1 -- + grub_strlen (file->device->net->server) -+ + grub_strlen (server) + sizeof (":XXXXXXXXXX") - + sizeof ("\r\nUser-Agent: " PACKAGE_STRING - "\r\n") - 1 - + sizeof ("Range: bytes=XXXXXXXXXXXXXXXXXXXX" -@@ -356,7 +358,7 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial) - sizeof (" HTTP/1.1\r\nHost: ") - 1); - - ptr = nb->tail; -- err = grub_netbuff_put (nb, grub_strlen (file->device->net->server)); -+ err = grub_netbuff_put (nb, grub_strlen (server)); - if (err) - { - grub_netbuff_free (nb); -@@ -365,6 +367,15 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial) - grub_memcpy (ptr, file->device->net->server, - grub_strlen (file->device->net->server)); - -+ if (port) -+ { -+ ptr = nb->tail; -+ grub_snprintf ((char *) ptr, -+ sizeof (":XXXXXXXXXX"), -+ ":%d", -+ port); -+ } -+ - ptr = nb->tail; - err = grub_netbuff_put (nb, - sizeof ("\r\nUser-Agent: " PACKAGE_STRING "\r\n") -@@ -390,8 +401,10 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial) - grub_netbuff_put (nb, 2); - grub_memcpy (ptr, "\r\n", 2); - -- data->sock = grub_net_tcp_open (file->device->net->server, -- HTTP_PORT, http_receive, -+ grub_dprintf ("http", "opening path %s on host %s TCP port %d\n", -+ data->filename, server, port ? port : HTTP_PORT); -+ data->sock = grub_net_tcp_open (server, -+ port ? port : HTTP_PORT, http_receive, - http_err, http_err, - file); - if (!data->sock) -diff --git a/grub-core/net/net.c b/grub-core/net/net.c -index d5d726a31..b917a75d5 100644 ---- a/grub-core/net/net.c -+++ b/grub-core/net/net.c -@@ -437,6 +437,12 @@ parse_ip6 (const char *val, grub_uint64_t *ip, const char **rest) - grub_uint16_t newip[8]; - const char *ptr = val; - int word, quaddot = -1; -+ int bracketed = 0; -+ -+ if (ptr[0] == '[') { -+ bracketed = 1; -+ ptr++; -+ } - - if (ptr[0] == ':' && ptr[1] != ':') - return 0; -@@ -475,6 +481,9 @@ parse_ip6 (const char *val, grub_uint64_t *ip, const char **rest) - grub_memset (&newip[quaddot], 0, (7 - word) * sizeof (newip[0])); - } - grub_memcpy (ip, newip, 16); -+ if (bracketed && *ptr == ']') { -+ ptr++; -+ } - if (rest) - *rest = ptr; - return 1; -@@ -1260,8 +1269,10 @@ grub_net_open_real (const char *name) - { - grub_net_app_level_t proto; - const char *protname, *server; -+ char *host; - grub_size_t protnamelen; - int try; -+ int port = 0; - - if (grub_strncmp (name, "pxe:", sizeof ("pxe:") - 1) == 0) - { -@@ -1299,6 +1310,72 @@ grub_net_open_real (const char *name) - return NULL; - } - -+ char* port_start; -+ /* ipv6 or port specified? */ -+ if ((port_start = grub_strchr (server, ':'))) -+ { -+ char* ipv6_begin; -+ if((ipv6_begin = grub_strchr (server, '['))) -+ { -+ char* ipv6_end = grub_strchr (server, ']'); -+ if(!ipv6_end) -+ { -+ grub_error (GRUB_ERR_NET_BAD_ADDRESS, -+ N_("mismatched [ in address")); -+ return NULL; -+ } -+ /* port number after bracketed ipv6 addr */ -+ if(ipv6_end[1] == ':') -+ { -+ port = grub_strtoul (ipv6_end + 2, NULL, 10); -+ if(port > 65535) -+ { -+ grub_error (GRUB_ERR_NET_BAD_ADDRESS, -+ N_("bad port number")); -+ return NULL; -+ } -+ } -+ host = grub_strndup (ipv6_begin, (ipv6_end - ipv6_begin) + 1); -+ } -+ else -+ { -+ if (grub_strchr (port_start + 1, ':')) -+ { -+ int iplen = grub_strlen (server); -+ /* bracket bare ipv6 addrs */ -+ host = grub_malloc (iplen + 3); -+ if(!host) -+ { -+ return NULL; -+ } -+ host[0] = '['; -+ grub_memcpy (host + 1, server, iplen); -+ host[iplen + 1] = ']'; -+ host[iplen + 2] = '\0'; -+ } -+ else -+ { -+ /* hostname:port or ipv4:port */ -+ port = grub_strtol (port_start + 1, NULL, 10); -+ if(port > 65535) -+ { -+ grub_error (GRUB_ERR_NET_BAD_ADDRESS, -+ N_("bad port number")); -+ return NULL; -+ } -+ host = grub_strndup (server, port_start - server); -+ } -+ } -+ } -+ else -+ { -+ host = grub_strdup (server); -+ } -+ if (!host) -+ { -+ return NULL; -+ } -+ - for (try = 0; try < 2; try++) - { - FOR_NET_APP_LEVEL (proto) -@@ -1308,15 +1385,19 @@ grub_net_open_real (const char *name) - { - grub_net_t ret = grub_zalloc (sizeof (*ret)); - if (!ret) -- return NULL; -- ret->protocol = proto; -- ret->server = grub_strdup (server); -- if (!ret->server) -+ grub_free (host); -+ if (host) - { -- grub_free (ret); -- return NULL; -+ ret->server = grub_strdup (host); -+ if (!ret->server) -+ { -+ grub_free (ret); -+ return NULL; -+ } - } - ret->fs = &grub_net_fs; -+ ret->protocol = proto; -+ ret->port = port; - return ret; - } - } -diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c -index 7d90bf66e..a0817a075 100644 ---- a/grub-core/net/tftp.c -+++ b/grub-core/net/tftp.c -@@ -314,6 +314,7 @@ tftp_open (struct grub_file *file, const char *filename) - grub_err_t err; - grub_uint8_t *nbd; - grub_net_network_level_address_t addr; -+ int port = file->device->net->port; - - data = grub_zalloc (sizeof (*data)); - if (!data) -@@ -382,13 +383,16 @@ tftp_open (struct grub_file *file, const char *filename) - err = grub_net_resolve_address (file->device->net->server, &addr); - if (err) - { -+ grub_dprintf ("tftp", "file_size is %llu, block_size is %llu\n", -+ (unsigned long long)data->file_size, -+ (unsigned long long)data->block_size); - destroy_pq (data); - grub_free (data); - return err; - } - - data->sock = grub_net_udp_open (addr, -- TFTP_SERVER_PORT, tftp_receive, -+ port ? port : TFTP_SERVER_PORT, tftp_receive, - file); - if (!data->sock) - { -diff --git a/include/grub/net.h b/include/grub/net.h -index 4a9069a14..cc114286e 100644 ---- a/include/grub/net.h -+++ b/include/grub/net.h -@@ -270,6 +270,7 @@ typedef struct grub_net - { - char *server; - char *name; -+ int port; - grub_net_app_level_t protocol; - grub_net_packets_t packs; - grub_off_t offset; diff --git a/patches/grub/2.04/no-devicetree-if-secure-boot.patch b/patches/grub/2.04/no-devicetree-if-secure-boot.patch deleted file mode 100644 index 92b8ea039..000000000 --- a/patches/grub/2.04/no-devicetree-if-secure-boot.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 269cf7f9c74d192d33dc899cadcd4ee120e494e1 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Wed, 24 Apr 2019 10:03:04 -0400 -Subject: Forbid the "devicetree" command when Secure Boot is enabled. - -Signed-off-by: Peter Jones -Signed-off-by: Steve McIntyre <93sam@debian.org> - -Origin: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=927888#15 -Bug-Debian: https://bugs.debian.org/927888 -Last-Update: 2019-05-04 - -Patch-Name: no-devicetree-if-secure-boot.patch ---- - grub-core/loader/arm/linux.c | 12 ++++++++++++ - grub-core/loader/efi/fdt.c | 8 ++++++++ - 2 files changed, 20 insertions(+) - -diff --git a/grub-core/loader/arm/linux.c b/grub-core/loader/arm/linux.c -index 51684914c..092e8e307 100644 ---- a/grub-core/loader/arm/linux.c -+++ b/grub-core/loader/arm/linux.c -@@ -30,6 +30,10 @@ - #include - #include - -+#ifdef GRUB_MACHINE_EFI -+#include -+#endif -+ - GRUB_MOD_LICENSE ("GPLv3+"); - - static grub_dl_t my_mod; -@@ -471,6 +475,14 @@ grub_cmd_devicetree (grub_command_t cmd __attribute__ ((unused)), - if (argc != 1) - return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); - -+#ifdef GRUB_MACHINE_EFI -+ if (grub_efi_secure_boot ()) -+ { -+ return grub_error (GRUB_ERR_ACCESS_DENIED, -+ "Secure Boot forbids loading devicetree from %s", argv[0]); -+ } -+#endif -+ - dtb = grub_file_open (argv[0], GRUB_FILE_TYPE_DEVICE_TREE_IMAGE); - if (!dtb) - return grub_errno; -diff --git a/grub-core/loader/efi/fdt.c b/grub-core/loader/efi/fdt.c -index ee9c5592c..f0c2d91be 100644 ---- a/grub-core/loader/efi/fdt.c -+++ b/grub-core/loader/efi/fdt.c -@@ -123,6 +123,14 @@ grub_cmd_devicetree (grub_command_t cmd __attribute__ ((unused)), - return GRUB_ERR_NONE; - } - -+#ifdef GRUB_MACHINE_EFI -+ if (grub_efi_secure_boot ()) -+ { -+ return grub_error (GRUB_ERR_ACCESS_DENIED, -+ "Secure Boot forbids loading devicetree from %s", argv[0]); -+ } -+#endif -+ - dtb = grub_file_open (argv[0], GRUB_FILE_TYPE_DEVICE_TREE_IMAGE); - if (!dtb) - goto out; diff --git a/patches/grub/2.04/no-insmod-on-sb.patch b/patches/grub/2.04/no-insmod-on-sb.patch deleted file mode 100644 index 177ec54bb..000000000 --- a/patches/grub/2.04/no-insmod-on-sb.patch +++ /dev/null @@ -1,99 +0,0 @@ -From b5a6aa7d77439bfeb75f200abffe15c6f685c907 Mon Sep 17 00:00:00 2001 -From: Matthew Garrett -Date: Mon, 13 Jan 2014 12:13:09 +0000 -Subject: Don't permit loading modules on UEFI secure boot - -Author: Colin Watson -Origin: vendor, http://pkgs.fedoraproject.org/cgit/grub2.git/tree/grub-2.00-no-insmod-on-sb.patch -Forwarded: no -Last-Update: 2013-12-25 - -Patch-Name: no-insmod-on-sb.patch ---- - grub-core/kern/dl.c | 13 +++++++++++++ - grub-core/kern/efi/efi.c | 28 ++++++++++++++++++++++++++++ - include/grub/efi/efi.h | 1 + - 3 files changed, 42 insertions(+) - -diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c -index 48eb5e7b6..074dfc3c6 100644 ---- a/grub-core/kern/dl.c -+++ b/grub-core/kern/dl.c -@@ -38,6 +38,10 @@ - #define GRUB_MODULES_MACHINE_READONLY - #endif - -+#ifdef GRUB_MACHINE_EFI -+#include -+#endif -+ - - - #pragma GCC diagnostic ignored "-Wcast-align" -@@ -686,6 +690,15 @@ grub_dl_load_file (const char *filename) - void *core = 0; - grub_dl_t mod = 0; - -+#ifdef GRUB_MACHINE_EFI -+ if (grub_efi_secure_boot ()) -+ { -+ grub_error (GRUB_ERR_ACCESS_DENIED, -+ "Secure Boot forbids loading module from %s", filename); -+ return 0; -+ } -+#endif -+ - grub_boot_time ("Loading module %s", filename); - - file = grub_file_open (filename, GRUB_FILE_TYPE_GRUB_MODULE); -diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index 6e1ceb905..96204e39b 100644 ---- a/grub-core/kern/efi/efi.c -+++ b/grub-core/kern/efi/efi.c -@@ -273,6 +273,34 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, - return NULL; - } - -+grub_efi_boolean_t -+grub_efi_secure_boot (void) -+{ -+ grub_efi_guid_t efi_var_guid = GRUB_EFI_GLOBAL_VARIABLE_GUID; -+ grub_size_t datasize; -+ char *secure_boot = NULL; -+ char *setup_mode = NULL; -+ grub_efi_boolean_t ret = 0; -+ -+ secure_boot = grub_efi_get_variable ("SecureBoot", &efi_var_guid, &datasize); -+ -+ if (datasize != 1 || !secure_boot) -+ goto out; -+ -+ setup_mode = grub_efi_get_variable ("SetupMode", &efi_var_guid, &datasize); -+ -+ if (datasize != 1 || !setup_mode) -+ goto out; -+ -+ if (*secure_boot && !*setup_mode) -+ ret = 1; -+ -+ out: -+ grub_free (secure_boot); -+ grub_free (setup_mode); -+ return ret; -+} -+ - #pragma GCC diagnostic ignored "-Wcast-align" - - /* Search the mods section from the PE32/PE32+ image. This code uses -diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index e90e00dc4..a237952b3 100644 ---- a/include/grub/efi/efi.h -+++ b/include/grub/efi/efi.h -@@ -82,6 +82,7 @@ EXPORT_FUNC (grub_efi_set_variable) (const char *var, - const grub_efi_guid_t *guid, - void *data, - grub_size_t datasize); -+grub_efi_boolean_t EXPORT_FUNC (grub_efi_secure_boot) (void); - int - EXPORT_FUNC (grub_efi_compare_device_paths) (const grub_efi_device_path_t *dp1, - const grub_efi_device_path_t *dp2); diff --git a/patches/grub/2.04/olpc-prefix-hack.patch b/patches/grub/2.04/olpc-prefix-hack.patch deleted file mode 100644 index b14c333a2..000000000 --- a/patches/grub/2.04/olpc-prefix-hack.patch +++ /dev/null @@ -1,51 +0,0 @@ -From f268916868b7b2a6b0012a23fb6f434eb208b834 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:12:50 +0000 -Subject: Hack prefix for OLPC - -This sucks, but it's better than what OFW was giving us. - -Patch-Name: olpc-prefix-hack.patch ---- - grub-core/kern/ieee1275/init.c | 11 +++++++++++ - 1 file changed, 11 insertions(+) - -diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c -index d483e35ee..8b089b48d 100644 ---- a/grub-core/kern/ieee1275/init.c -+++ b/grub-core/kern/ieee1275/init.c -@@ -76,6 +76,7 @@ grub_exit (void) - grub_ieee1275_exit (); - } - -+#ifndef __i386__ - /* Translate an OF filesystem path (separated by backslashes), into a GRUB - path (separated by forward slashes). */ - static void -@@ -90,9 +91,18 @@ grub_translate_ieee1275_path (char *filepath) - backslash = grub_strchr (filepath, '\\'); - } - } -+#endif - - void (*grub_ieee1275_net_config) (const char *dev, char **device, char **path, - char *bootpath); -+#ifdef __i386__ -+void -+grub_machine_get_bootlocation (char **device __attribute__ ((unused)), -+ char **path __attribute__ ((unused))) -+{ -+ grub_env_set ("prefix", "(sd,1)/"); -+} -+#else - void - grub_machine_get_bootlocation (char **device, char **path) - { -@@ -146,6 +156,7 @@ grub_machine_get_bootlocation (char **device, char **path) - } - grub_free (bootpath); - } -+#endif - - /* Claim some available memory in the first /memory node. */ - #ifdef __sparc__ diff --git a/patches/grub/2.04/onie-disable-udevadm-in-grub-install.patch b/patches/grub/2.04/onie-disable-udevadm-in-grub-install.patch deleted file mode 100644 index a6658a034..000000000 --- a/patches/grub/2.04/onie-disable-udevadm-in-grub-install.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 174c02f9a4e9b1963071a5e8eca6295a577bbdfe Mon Sep 17 00:00:00 2001 -From: Alex Doyle -Date: Thu, 15 Oct 2020 12:53:32 -0700 -Subject: [PATCH] Disable udevadm call in grub-install - -The ONIE GRUB install environment does not have udevadm installed. -For the 2.02 release, this was not an issue - the attempt to -use udevadm in hostdisk.c would fail and install would continue. - -With the 2.04 release, the on_exit handler is enabled, which attempts -to clean up if there is an error. - -Since udevadm is not installed, that call errors, triggers the -exit handler, and it deletes all the files in /mnt/onie-boot/grub/i386-pc, and the install fails. - -A silent failure is fine as the install will proceed. ---- - grub-core/osdep/linux/hostdisk.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/grub-core/osdep/linux/hostdisk.c b/grub-core/osdep/linux/hostdisk.c -index 8b92f85..6f7b703 100644 ---- a/grub-core/osdep/linux/hostdisk.c -+++ b/grub-core/osdep/linux/hostdisk.c -@@ -106,6 +106,16 @@ sysfs_partition_path (const char *dev, const char *entry) - size_t len = 0; - char *path = NULL; - -+ /* -+ * The ONIE install environment doesn't have udevadm installed, which causes: -+ * The forked call to return an error, -+ * ...which triggers the on_exit cleanup routine -+ * ...which deletes everything under /mnt/onie-boot/grub/i386-pc/ -+ * ...which then destroys the embed install. -+ * returning NULL gracefully fails it. -+ */ -+ return NULL; -+ - argv[0] = "udevadm"; - argv[1] = "info"; - argv[2] = "--query"; --- -2.20.1 - diff --git a/patches/grub/2.04/ppc64el-disable-vsx.patch b/patches/grub/2.04/ppc64el-disable-vsx.patch deleted file mode 100644 index 1db923efe..000000000 --- a/patches/grub/2.04/ppc64el-disable-vsx.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 09d05ea908db9618409b24ed4a5aa8194e084f5d Mon Sep 17 00:00:00 2001 -From: Paulo Flabiano Smorigo -Date: Thu, 25 Sep 2014 19:33:39 -0300 -Subject: Disable VSX instruction - -VSX bit is enabled by default for Power7 and Power8 CPU models, -so we need to disable them in order to avoid instruction exceptions. -Kernel will activate it when necessary. - -* grub-core/kern/powerpc/ieee1275/startup.S: Disable VSX. - -Also-By: Adhemerval Zanella -Also-By: Colin Watson - -Origin: other, https://lists.gnu.org/archive/html/grub-devel/2014-09/msg00078.html -Last-Update: 2015-01-27 - -Patch-Name: ppc64el-disable-vsx.patch ---- - grub-core/kern/powerpc/ieee1275/startup.S | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/grub-core/kern/powerpc/ieee1275/startup.S b/grub-core/kern/powerpc/ieee1275/startup.S -index 21c884b43..de9a9601a 100644 ---- a/grub-core/kern/powerpc/ieee1275/startup.S -+++ b/grub-core/kern/powerpc/ieee1275/startup.S -@@ -20,6 +20,8 @@ - #include - #include - -+#define MSR_VSX 0x80 -+ - .extern __bss_start - .extern _end - -@@ -28,6 +30,16 @@ - .globl start, _start - start: - _start: -+ _start: -+ -+ /* Disable VSX instruction */ -+ mfmsr 0 -+ oris 0,0,MSR_VSX -+ /* The "VSX Available" bit is in the lower half of the MSR, so we -+ don't need mtmsrd, which in any case won't work in 32-bit mode. */ -+ mtmsr 0 -+ isync -+ - li 2, 0 - li 13, 0 - diff --git a/patches/grub/2.04/probe-fusionio.patch b/patches/grub/2.04/probe-fusionio.patch deleted file mode 100644 index 650fd69d4..000000000 --- a/patches/grub/2.04/probe-fusionio.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 3b29db7e1e314aae7d42b74940c01d1de716ccf8 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:31 +0000 -Subject: Probe FusionIO devices - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1237519 -Forwarded: no -Last-Update: 2016-09-18 - -Patch-Name: probe-fusionio.patch ---- - grub-core/osdep/linux/getroot.c | 13 +++++++++++++ - util/deviceiter.c | 19 +++++++++++++++++++ - 2 files changed, 32 insertions(+) - -diff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c -index 90d92d3ad..7adc0f30e 100644 ---- a/grub-core/osdep/linux/getroot.c -+++ b/grub-core/osdep/linux/getroot.c -@@ -950,6 +950,19 @@ grub_util_part_to_disk (const char *os_dev, struct stat *st, - *pp = '\0'; - return path; - } -+ -+ /* If this is a FusionIO disk. */ -+ if ((strncmp ("fio", p, 3) == 0) && p[3] >= 'a' && p[3] <= 'z') -+ { -+ char *pp = p + 3; -+ while (*pp >= 'a' && *pp <= 'z') -+ pp++; -+ if (*pp) -+ *is_part = 1; -+ /* /dev/fio[a-z]+[0-9]* */ -+ *pp = '\0'; -+ return path; -+ } - } - - return path; -diff --git a/util/deviceiter.c b/util/deviceiter.c -index a4971ef42..dddc50da7 100644 ---- a/util/deviceiter.c -+++ b/util/deviceiter.c -@@ -383,6 +383,12 @@ get_nvme_disk_name (char *name, int controller, int namespace) - { - sprintf (name, "/dev/nvme%dn%d", controller, namespace); - } -+ -+static void -+get_fio_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/fio%c", unit + 'a'); -+} - #endif - - static struct seen_device -@@ -923,6 +929,19 @@ grub_util_iterate_devices (int (*hook) (const char *, int, void *), void *hook_d - } - } - -+ /* FusionIO. */ -+ for (i = 0; i < 26; i++) -+ { -+ char name[16]; -+ -+ get_fio_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ - # ifdef HAVE_DEVICE_MAPPER - # define dmraid_check(cond, ...) \ - if (! (cond)) \ diff --git a/patches/grub/2.04/quick-boot-lvm.patch b/patches/grub/2.04/quick-boot-lvm.patch deleted file mode 100644 index b8fd10db9..000000000 --- a/patches/grub/2.04/quick-boot-lvm.patch +++ /dev/null @@ -1,77 +0,0 @@ -From be1a470babffb9305a41aae735cc62c509d63b27 Mon Sep 17 00:00:00 2001 -From: Steve Langasek -Date: Tue, 30 Oct 2018 15:04:16 -0700 -Subject: If we don't have writable grubenv and we're on EFI, always show the - menu - -If we don't have writable grubenv, recordfail doesn't work, which means our -quickboot behavior - with a timeout of 0 - leaves the user without a -reliable way to access the boot menu if they're on UEFI, because unlike -BIOS, UEFI does not support checking the state of modifier keys (i.e. -holding down shift at boot is not detectable). - -Handle this corner case by always using a non-zero timeout on EFI when -save_env doesn't work. - -Reuse GRUB_RECORDFAIL_TIMEOUT to avoid introducing another variable. - -Signed-off-by: Steve Langasek - -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1800722 -Last-Update: 2019-06-24 - -Patch-Name: quick-boot-lvm.patch ---- - util/grub.d/00_header.in | 18 +++++++++++++++--- - 1 file changed, 15 insertions(+), 3 deletions(-) - -diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in -index 674a76140..b7135b655 100644 ---- a/util/grub.d/00_header.in -+++ b/util/grub.d/00_header.in -@@ -115,7 +115,7 @@ EOF - cat < -Date: Mon, 13 Jan 2014 12:13:28 +0000 -Subject: Add configure option to bypass boot menu if possible - -If other operating systems are installed, then automatically unhide the -menu. Otherwise, if GRUB_HIDDEN_TIMEOUT is 0, then use keystatus if -available to check whether Shift is pressed. If it is, show the menu, -otherwise boot immediately. If keystatus is not available, then fall -back to a short delay interruptible with Escape. - -This may or may not remain Ubuntu-specific, although it's not obviously -wanted upstream. It implements a requirement of -https://wiki.ubuntu.com/DesktopExperienceTeam/KarmicBootExperienceDesignSpec#Bootloader. - -If the previous boot failed (defined as failing to get to the end of one -of the normal runlevels), then show the boot menu regardless. - -Author: Richard Laager -Author: Robie Basak -Forwarded: no -Last-Update: 2015-09-04 - -Patch-Name: quick-boot.patch ---- - configure.ac | 11 ++++++ - docs/grub.texi | 14 +++++++ - grub-core/normal/menu.c | 24 ++++++++++++ - util/grub-mkconfig.in | 3 +- - util/grub.d/00_header.in | 77 +++++++++++++++++++++++++++++++------ - util/grub.d/10_linux.in | 4 ++ - util/grub.d/30_os-prober.in | 21 ++++++++++ - 7 files changed, 141 insertions(+), 13 deletions(-) - -diff --git a/configure.ac b/configure.ac -index ea00ccd69..7dda5bb32 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1868,6 +1868,17 @@ else - fi - AC_SUBST([QUIET_BOOT]) - -+AC_ARG_ENABLE([quick-boot], -+ [AS_HELP_STRING([--enable-quick-boot], -+ [bypass boot menu if possible (default=no)])], -+ [], [enable_quick_boot=no]) -+if test x"$enable_quick_boot" = xyes ; then -+ QUICK_BOOT=1 -+else -+ QUICK_BOOT=0 -+fi -+AC_SUBST([QUICK_BOOT]) -+ - LIBS="" - - AC_SUBST([FONT_SOURCE]) -diff --git a/docs/grub.texi b/docs/grub.texi -index 87795075a..a835d0ae4 100644 ---- a/docs/grub.texi -+++ b/docs/grub.texi -@@ -1522,6 +1522,20 @@ This option may be set to a list of GRUB module names separated by spaces. - Each module will be loaded as early as possible, at the start of - @file{grub.cfg}. - -+@item GRUB_RECORDFAIL_TIMEOUT -+If this option is set, it overrides the default recordfail setting. A -+setting of -1 causes GRUB to wait for user input indefinitely. However, a -+false positive in the recordfail mechanism may occur if power is lost during -+boot before boot success is recorded in userspace. The default setting is -+30, which causes GRUB to wait for user input for thirty seconds before -+continuing. This default allows interactive users the opportunity to switch -+to a different, working kernel, while avoiding a false positive causing the -+boot to block indefinitely on headless and appliance systems where access to -+a console is restricted or limited. -+ -+This option is only effective when GRUB was configured with the -+@option{--enable-quick-boot} option. -+ - @end table - - The following options are still accepted for compatibility with existing -diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c -index ebf5a0f10..42c82290d 100644 ---- a/grub-core/normal/menu.c -+++ b/grub-core/normal/menu.c -@@ -604,6 +604,30 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot) - static struct grub_term_coordinate *pos; - int entry = -1; - -+ if (timeout == 0) -+ { -+ /* If modifier key statuses can't be detected without a delay, -+ then a hidden timeout of zero cannot be interrupted in any way, -+ which is not very helpful. Bump it to three seconds in this -+ case to give the user a fighting chance. */ -+ grub_term_input_t term; -+ int nterms = 0; -+ int mods_detectable = 1; -+ -+ FOR_ACTIVE_TERM_INPUTS(term) -+ { -+ if (!term->getkeystatus) -+ { -+ mods_detectable = 0; -+ break; -+ } -+ else -+ nterms++; -+ } -+ if (!mods_detectable || !nterms) -+ timeout = 3; -+ } -+ - if (timeout_style == TIMEOUT_STYLE_COUNTDOWN && timeout) - { - pos = grub_term_save_pos (); -diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index 8a1bc0441..8752777e0 100644 ---- a/util/grub-mkconfig.in -+++ b/util/grub-mkconfig.in -@@ -243,7 +243,8 @@ export GRUB_DEFAULT \ - GRUB_ENABLE_CRYPTODISK \ - GRUB_BADRAM \ - GRUB_OS_PROBER_SKIP_LIST \ -- GRUB_DISABLE_SUBMENU -+ GRUB_DISABLE_SUBMENU \ -+ GRUB_RECORDFAIL_TIMEOUT - - if test "x${grub_cfg}" != "x"; then - rm -f "${grub_cfg}.new" -diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in -index 93a90233e..674a76140 100644 ---- a/util/grub.d/00_header.in -+++ b/util/grub.d/00_header.in -@@ -21,6 +21,8 @@ prefix="@prefix@" - exec_prefix="@exec_prefix@" - datarootdir="@datarootdir@" - grub_lang=`echo $LANG | cut -d . -f 1` -+grubdir="`echo "/@bootdirname@/@grubdirname@" | sed 's,//*,/,g'`" -+quick_boot="@QUICK_BOOT@" - - export TEXTDOMAIN=@PACKAGE@ - export TEXTDOMAINDIR="@localedir@" -@@ -44,6 +46,7 @@ if [ "x${GRUB_TIMEOUT_BUTTON}" = "x" ] ; then GRUB_TIMEOUT_BUTTON="$GRUB_TIMEOUT - - cat << EOF - if [ -s \$prefix/grubenv ]; then -+ set have_grubenv=true - load_env - fi - EOF -@@ -96,7 +99,50 @@ function savedefault { - save_env saved_entry - fi - } -+EOF -+ -+if [ "$quick_boot" = 1 ]; then -+ cat < -Date: Wed, 15 Jul 2020 06:42:37 +0000 -Subject: relocator: Protect grub_relocator_alloc_chunk_addr() input args - against integer underflow/overflow - -Use arithmetic macros from safemath.h to accomplish it. In this commit, -I didn't want to be too paranoid to check every possible math equation -for overflow/underflow. Only obvious places (with non zero chance of -overflow/underflow) were refactored. - -Signed-off-by: Alexey Makhalov -Reviewed-by: Daniel Kiper - -Patch-Name: relocator-chunk-addr-overflow.patch ---- - grub-core/loader/i386/linux.c | 9 +++++++-- - grub-core/loader/i386/pc/linux.c | 9 +++++++-- - grub-core/loader/i386/xen.c | 12 ++++++++++-- - grub-core/loader/xnu.c | 11 +++++++---- - 4 files changed, 31 insertions(+), 10 deletions(-) - -diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index 2eab9bb10..58d76fc0a 100644 ---- a/grub-core/loader/i386/linux.c -+++ b/grub-core/loader/i386/linux.c -@@ -36,6 +36,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -549,9 +550,13 @@ grub_linux_boot (void) - - { - grub_relocator_chunk_t ch; -+ grub_size_t sz; -+ -+ if (grub_add (ctx.real_size, efi_mmap_size, &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ - err = grub_relocator_alloc_chunk_addr (relocator, &ch, -- ctx.real_mode_target, -- (ctx.real_size + efi_mmap_size)); -+ ctx.real_mode_target, sz); - if (err) - return err; - real_mode_mem = get_virtual_current_address (ch); -diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c -index 47ea2945e..31f09922b 100644 ---- a/grub-core/loader/i386/pc/linux.c -+++ b/grub-core/loader/i386/pc/linux.c -@@ -35,6 +35,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -218,8 +219,12 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - setup_sects = GRUB_LINUX_DEFAULT_SETUP_SECTS; - - real_size = setup_sects << GRUB_DISK_SECTOR_BITS; -- grub_linux16_prot_size = grub_file_size (file) -- - real_size - GRUB_DISK_SECTOR_SIZE; -+ if (grub_sub (grub_file_size (file), real_size, &grub_linux16_prot_size) || -+ grub_sub (grub_linux16_prot_size, GRUB_DISK_SECTOR_SIZE, &grub_linux16_prot_size)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ goto fail; -+ } - - if (! grub_linux_is_bzimage - && GRUB_LINUX_ZIMAGE_ADDR + grub_linux16_prot_size -diff --git a/grub-core/loader/i386/xen.c b/grub-core/loader/i386/xen.c -index 8f662c8ac..cd24874ca 100644 ---- a/grub-core/loader/i386/xen.c -+++ b/grub-core/loader/i386/xen.c -@@ -41,6 +41,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -636,6 +637,7 @@ grub_cmd_xen (grub_command_t cmd __attribute__ ((unused)), - grub_relocator_chunk_t ch; - grub_addr_t kern_start; - grub_addr_t kern_end; -+ grub_size_t sz; - - if (argc == 0) - return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -@@ -703,8 +705,14 @@ grub_cmd_xen (grub_command_t cmd __attribute__ ((unused)), - - xen_state.max_addr = ALIGN_UP (kern_end, PAGE_SIZE); - -- err = grub_relocator_alloc_chunk_addr (xen_state.relocator, &ch, kern_start, -- kern_end - kern_start); -+ -+ if (grub_sub (kern_end, kern_start, &sz)) -+ { -+ err = GRUB_ERR_OUT_OF_RANGE; -+ goto fail; -+ } -+ -+ err = grub_relocator_alloc_chunk_addr (xen_state.relocator, &ch, kern_start, sz); - if (err) - goto fail; - kern_chunk_src = get_virtual_current_address (ch); -diff --git a/grub-core/loader/xnu.c b/grub-core/loader/xnu.c -index 77d7060e1..9ae4ceb35 100644 ---- a/grub-core/loader/xnu.c -+++ b/grub-core/loader/xnu.c -@@ -34,6 +34,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -59,15 +60,17 @@ grub_xnu_heap_malloc (int size, void **src, grub_addr_t *target) - { - grub_err_t err; - grub_relocator_chunk_t ch; -+ grub_addr_t tgt; -+ -+ if (grub_add (grub_xnu_heap_target_start, grub_xnu_heap_size, &tgt)) -+ return GRUB_ERR_OUT_OF_RANGE; - -- err = grub_relocator_alloc_chunk_addr (grub_xnu_relocator, &ch, -- grub_xnu_heap_target_start -- + grub_xnu_heap_size, size); -+ err = grub_relocator_alloc_chunk_addr (grub_xnu_relocator, &ch, tgt, size); - if (err) - return err; - - *src = get_virtual_current_address (ch); -- *target = grub_xnu_heap_target_start + grub_xnu_heap_size; -+ *target = tgt; - grub_xnu_heap_size += size; - grub_dprintf ("xnu", "val=%p\n", *src); - return GRUB_ERR_NONE; diff --git a/patches/grub/2.04/relocator-chunk-align-fix-top.patch b/patches/grub/2.04/relocator-chunk-align-fix-top.patch deleted file mode 100644 index 190276a12..000000000 --- a/patches/grub/2.04/relocator-chunk-align-fix-top.patch +++ /dev/null @@ -1,44 +0,0 @@ -From dcc097ac0531485f0785816469370bfcb1a29f60 Mon Sep 17 00:00:00 2001 -From: Alexey Makhalov -Date: Fri, 17 Jul 2020 05:17:26 +0000 -Subject: relocator: Fix grub_relocator_alloc_chunk_align() top memory - allocation - -Current implementation of grub_relocator_alloc_chunk_align() -does not allow allocation of the top byte. - -Assuming input args are: - max_addr = 0xfffff000; - size = 0x1000; - -And this is valid. But following overflow protection will -unnecessarily move max_addr one byte down (to 0xffffefff): - if (max_addr > ~size) - max_addr = ~size; - -~size + 1 will fix the situation. In addition, check size -for non zero to do not zero max_addr. - -Signed-off-by: Alexey Makhalov -Reviewed-by: Daniel Kiper - -Patch-Name: relocator-chunk-align-fix-top.patch ---- - grub-core/lib/relocator.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/grub-core/lib/relocator.c b/grub-core/lib/relocator.c -index 5847aac36..f2c1944c2 100644 ---- a/grub-core/lib/relocator.c -+++ b/grub-core/lib/relocator.c -@@ -1386,8 +1386,8 @@ grub_relocator_alloc_chunk_align (struct grub_relocator *rel, - }; - grub_addr_t min_addr2 = 0, max_addr2; - -- if (max_addr > ~size) -- max_addr = ~size; -+ if (size && (max_addr > ~size)) -+ max_addr = ~size + 1; - - #ifdef GRUB_MACHINE_PCBIOS - if (min_addr < 0x1000) diff --git a/patches/grub/2.04/relocator-chunk-align-underflow.patch b/patches/grub/2.04/relocator-chunk-align-underflow.patch deleted file mode 100644 index 667fb611e..000000000 --- a/patches/grub/2.04/relocator-chunk-align-underflow.patch +++ /dev/null @@ -1,336 +0,0 @@ -From e39786ab462b1e4770fb35c736927286381ec47d Mon Sep 17 00:00:00 2001 -From: Alexey Makhalov -Date: Wed, 8 Jul 2020 01:44:38 +0000 -Subject: relocator: Protect grub_relocator_alloc_chunk_align() max_addr - against integer underflow - -This commit introduces integer underflow mitigation in max_addr calculation -in grub_relocator_alloc_chunk_align() invocation. - -It consists of 2 fixes: - 1. Introduced grub_relocator_alloc_chunk_align_safe() wrapper function to perform - sanity check for min/max and size values, and to make safe invocation of - grub_relocator_alloc_chunk_align() with validated max_addr value. Replace all - invocations such as grub_relocator_alloc_chunk_align(..., min_addr, max_addr - size, size, ...) - by grub_relocator_alloc_chunk_align_safe(..., min_addr, max_addr, size, ...). - 2. Introduced UP_TO_TOP32(s) macro for the cases where max_addr is 32-bit top - address (0xffffffff - size + 1) or similar. - -Signed-off-by: Alexey Makhalov -Reviewed-by: Daniel Kiper - -Patch-Name: relocator-chunk-align-underflow.patch ---- - grub-core/lib/i386/relocator.c | 28 ++++++++++---------------- - grub-core/lib/mips/relocator.c | 6 ++---- - grub-core/lib/powerpc/relocator.c | 6 ++---- - grub-core/lib/x86_64/efi/relocator.c | 7 +++---- - grub-core/loader/i386/linux.c | 5 ++--- - grub-core/loader/i386/multiboot_mbi.c | 7 +++---- - grub-core/loader/i386/pc/linux.c | 6 ++---- - grub-core/loader/mips/linux.c | 9 +++------ - grub-core/loader/multiboot.c | 2 +- - grub-core/loader/multiboot_elfxx.c | 10 ++++----- - grub-core/loader/multiboot_mbi2.c | 10 ++++----- - grub-core/loader/xnu_resume.c | 2 +- - include/grub/relocator.h | 29 +++++++++++++++++++++++++++ - 13 files changed, 69 insertions(+), 58 deletions(-) - -diff --git a/grub-core/lib/i386/relocator.c b/grub-core/lib/i386/relocator.c -index 71dd4f0ab..34cbe834f 100644 ---- a/grub-core/lib/i386/relocator.c -+++ b/grub-core/lib/i386/relocator.c -@@ -83,11 +83,10 @@ grub_relocator32_boot (struct grub_relocator *rel, - /* Specific memory range due to Global Descriptor Table for use by payload - that we will store in returned chunk. The address range and preference - are based on "THE LINUX/x86 BOOT PROTOCOL" specification. */ -- err = grub_relocator_alloc_chunk_align (rel, &ch, 0x1000, -- 0x9a000 - RELOCATOR_SIZEOF (32), -- RELOCATOR_SIZEOF (32), 16, -- GRUB_RELOCATOR_PREFERENCE_LOW, -- avoid_efi_bootservices); -+ err = grub_relocator_alloc_chunk_align_safe (rel, &ch, 0x1000, 0x9a000, -+ RELOCATOR_SIZEOF (32), 16, -+ GRUB_RELOCATOR_PREFERENCE_LOW, -+ avoid_efi_bootservices); - if (err) - return err; - -@@ -125,13 +124,10 @@ grub_relocator16_boot (struct grub_relocator *rel, - grub_relocator_chunk_t ch; - - /* Put it higher than the byte it checks for A20 check. */ -- err = grub_relocator_alloc_chunk_align (rel, &ch, 0x8010, -- 0xa0000 - RELOCATOR_SIZEOF (16) -- - GRUB_RELOCATOR16_STACK_SIZE, -- RELOCATOR_SIZEOF (16) -- + GRUB_RELOCATOR16_STACK_SIZE, 16, -- GRUB_RELOCATOR_PREFERENCE_NONE, -- 0); -+ err = grub_relocator_alloc_chunk_align_safe (rel, &ch, 0x8010, 0xa0000, -+ RELOCATOR_SIZEOF (16) + -+ GRUB_RELOCATOR16_STACK_SIZE, 16, -+ GRUB_RELOCATOR_PREFERENCE_NONE, 0); - if (err) - return err; - -@@ -183,11 +179,9 @@ grub_relocator64_boot (struct grub_relocator *rel, - void *relst; - grub_relocator_chunk_t ch; - -- err = grub_relocator_alloc_chunk_align (rel, &ch, min_addr, -- max_addr - RELOCATOR_SIZEOF (64), -- RELOCATOR_SIZEOF (64), 16, -- GRUB_RELOCATOR_PREFERENCE_NONE, -- 0); -+ err = grub_relocator_alloc_chunk_align_safe (rel, &ch, min_addr, max_addr, -+ RELOCATOR_SIZEOF (64), 16, -+ GRUB_RELOCATOR_PREFERENCE_NONE, 0); - if (err) - return err; - -diff --git a/grub-core/lib/mips/relocator.c b/grub-core/lib/mips/relocator.c -index 9d5f49cb9..743b213e6 100644 ---- a/grub-core/lib/mips/relocator.c -+++ b/grub-core/lib/mips/relocator.c -@@ -120,10 +120,8 @@ grub_relocator32_boot (struct grub_relocator *rel, - unsigned i; - grub_addr_t vtarget; - -- err = grub_relocator_alloc_chunk_align (rel, &ch, 0, -- (0xffffffff - stateset_size) -- + 1, stateset_size, -- sizeof (grub_uint32_t), -+ err = grub_relocator_alloc_chunk_align (rel, &ch, 0, UP_TO_TOP32 (stateset_size), -+ stateset_size, sizeof (grub_uint32_t), - GRUB_RELOCATOR_PREFERENCE_NONE, 0); - if (err) - return err; -diff --git a/grub-core/lib/powerpc/relocator.c b/grub-core/lib/powerpc/relocator.c -index bdf2b111b..8ffb8b686 100644 ---- a/grub-core/lib/powerpc/relocator.c -+++ b/grub-core/lib/powerpc/relocator.c -@@ -115,10 +115,8 @@ grub_relocator32_boot (struct grub_relocator *rel, - unsigned i; - grub_relocator_chunk_t ch; - -- err = grub_relocator_alloc_chunk_align (rel, &ch, 0, -- (0xffffffff - stateset_size) -- + 1, stateset_size, -- sizeof (grub_uint32_t), -+ err = grub_relocator_alloc_chunk_align (rel, &ch, 0, UP_TO_TOP32 (stateset_size), -+ stateset_size, sizeof (grub_uint32_t), - GRUB_RELOCATOR_PREFERENCE_NONE, 0); - if (err) - return err; -diff --git a/grub-core/lib/x86_64/efi/relocator.c b/grub-core/lib/x86_64/efi/relocator.c -index 3caef7a40..7d200a125 100644 ---- a/grub-core/lib/x86_64/efi/relocator.c -+++ b/grub-core/lib/x86_64/efi/relocator.c -@@ -50,10 +50,9 @@ grub_relocator64_efi_boot (struct grub_relocator *rel, - * 64-bit relocator code may live above 4 GiB quite well. - * However, I do not want ask for problems. Just in case. - */ -- err = grub_relocator_alloc_chunk_align (rel, &ch, 0, -- 0x100000000 - RELOCATOR_SIZEOF (64_efi), -- RELOCATOR_SIZEOF (64_efi), 16, -- GRUB_RELOCATOR_PREFERENCE_NONE, 1); -+ err = grub_relocator_alloc_chunk_align_safe (rel, &ch, 0, 0x100000000, -+ RELOCATOR_SIZEOF (64_efi), 16, -+ GRUB_RELOCATOR_PREFERENCE_NONE, 1); - if (err) - return err; - -diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index 58d76fc0a..c98fbbb37 100644 ---- a/grub-core/loader/i386/linux.c -+++ b/grub-core/loader/i386/linux.c -@@ -183,9 +183,8 @@ allocate_pages (grub_size_t prot_size, grub_size_t *align, - for (; err && *align + 1 > min_align; (*align)--) - { - grub_errno = GRUB_ERR_NONE; -- err = grub_relocator_alloc_chunk_align (relocator, &ch, -- 0x1000000, -- 0xffffffff & ~prot_size, -+ err = grub_relocator_alloc_chunk_align (relocator, &ch, 0x1000000, -+ UP_TO_TOP32 (prot_size), - prot_size, 1 << *align, - GRUB_RELOCATOR_PREFERENCE_LOW, - 1); -diff --git a/grub-core/loader/i386/multiboot_mbi.c b/grub-core/loader/i386/multiboot_mbi.c -index ad3cc292f..a67d9d0a8 100644 ---- a/grub-core/loader/i386/multiboot_mbi.c -+++ b/grub-core/loader/i386/multiboot_mbi.c -@@ -466,10 +466,9 @@ grub_multiboot_make_mbi (grub_uint32_t *target) - - bufsize = grub_multiboot_get_mbi_size (); - -- err = grub_relocator_alloc_chunk_align (grub_multiboot_relocator, &ch, -- 0x10000, 0xa0000 - bufsize, -- bufsize, 4, -- GRUB_RELOCATOR_PREFERENCE_NONE, 0); -+ err = grub_relocator_alloc_chunk_align_safe (grub_multiboot_relocator, &ch, -+ 0x10000, 0xa0000, bufsize, 4, -+ GRUB_RELOCATOR_PREFERENCE_NONE, 0); - if (err) - return err; - ptrorig = get_virtual_current_address (ch); -diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c -index 31f09922b..5fed5ffdf 100644 ---- a/grub-core/loader/i386/pc/linux.c -+++ b/grub-core/loader/i386/pc/linux.c -@@ -453,10 +453,8 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), - - { - grub_relocator_chunk_t ch; -- err = grub_relocator_alloc_chunk_align (relocator, &ch, -- addr_min, addr_max - size, -- size, 0x1000, -- GRUB_RELOCATOR_PREFERENCE_HIGH, 0); -+ err = grub_relocator_alloc_chunk_align_safe (relocator, &ch, addr_min, addr_max, size, -+ 0x1000, GRUB_RELOCATOR_PREFERENCE_HIGH, 0); - if (err) - return err; - initrd_chunk = get_virtual_current_address (ch); -diff --git a/grub-core/loader/mips/linux.c b/grub-core/loader/mips/linux.c -index 7b723bf18..e4ed95921 100644 ---- a/grub-core/loader/mips/linux.c -+++ b/grub-core/loader/mips/linux.c -@@ -442,12 +442,9 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), - { - grub_relocator_chunk_t ch; - -- err = grub_relocator_alloc_chunk_align (relocator, &ch, -- (target_addr & 0x1fffffff) -- + linux_size + 0x10000, -- (0x10000000 - size), -- size, 0x10000, -- GRUB_RELOCATOR_PREFERENCE_NONE, 0); -+ err = grub_relocator_alloc_chunk_align_safe (relocator, &ch, (target_addr & 0x1fffffff) + -+ linux_size + 0x10000, 0x10000000, size, -+ 0x10000, GRUB_RELOCATOR_PREFERENCE_NONE, 0); - - if (err) - goto fail; -diff --git a/grub-core/loader/multiboot.c b/grub-core/loader/multiboot.c -index 4a98d7082..facb13f3d 100644 ---- a/grub-core/loader/multiboot.c -+++ b/grub-core/loader/multiboot.c -@@ -403,7 +403,7 @@ grub_cmd_module (grub_command_t cmd __attribute__ ((unused)), - { - grub_relocator_chunk_t ch; - err = grub_relocator_alloc_chunk_align (GRUB_MULTIBOOT (relocator), &ch, -- lowest_addr, (0xffffffff - size) + 1, -+ lowest_addr, UP_TO_TOP32 (size), - size, MULTIBOOT_MOD_ALIGN, - GRUB_RELOCATOR_PREFERENCE_NONE, 1); - if (err) -diff --git a/grub-core/loader/multiboot_elfxx.c b/grub-core/loader/multiboot_elfxx.c -index cc6853692..f2318e0d1 100644 ---- a/grub-core/loader/multiboot_elfxx.c -+++ b/grub-core/loader/multiboot_elfxx.c -@@ -109,10 +109,10 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) - if (load_size > mld->max_addr || mld->min_addr > mld->max_addr - load_size) - return grub_error (GRUB_ERR_BAD_OS, "invalid min/max address and/or load size"); - -- err = grub_relocator_alloc_chunk_align (GRUB_MULTIBOOT (relocator), &ch, -- mld->min_addr, mld->max_addr - load_size, -- load_size, mld->align ? mld->align : 1, -- mld->preference, mld->avoid_efi_boot_services); -+ err = grub_relocator_alloc_chunk_align_safe (GRUB_MULTIBOOT (relocator), &ch, -+ mld->min_addr, mld->max_addr, -+ load_size, mld->align ? mld->align : 1, -+ mld->preference, mld->avoid_efi_boot_services); - - if (err) - { -@@ -256,7 +256,7 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) - continue; - - err = grub_relocator_alloc_chunk_align (GRUB_MULTIBOOT (relocator), &ch, 0, -- (0xffffffff - sh->sh_size) + 1, -+ UP_TO_TOP32 (sh->sh_size), - sh->sh_size, sh->sh_addralign, - GRUB_RELOCATOR_PREFERENCE_NONE, - mld->avoid_efi_boot_services); -diff --git a/grub-core/loader/multiboot_mbi2.c b/grub-core/loader/multiboot_mbi2.c -index 0efc66062..03967839c 100644 ---- a/grub-core/loader/multiboot_mbi2.c -+++ b/grub-core/loader/multiboot_mbi2.c -@@ -295,10 +295,10 @@ grub_multiboot2_load (grub_file_t file, const char *filename) - return grub_error (GRUB_ERR_BAD_OS, "invalid min/max address and/or load size"); - } - -- err = grub_relocator_alloc_chunk_align (grub_multiboot2_relocator, &ch, -- mld.min_addr, mld.max_addr - code_size, -- code_size, mld.align ? mld.align : 1, -- mld.preference, keep_bs); -+ err = grub_relocator_alloc_chunk_align_safe (grub_multiboot2_relocator, &ch, -+ mld.min_addr, mld.max_addr, -+ code_size, mld.align ? mld.align : 1, -+ mld.preference, keep_bs); - } - else - err = grub_relocator_alloc_chunk_addr (grub_multiboot2_relocator, -@@ -708,7 +708,7 @@ grub_multiboot2_make_mbi (grub_uint32_t *target) - COMPILE_TIME_ASSERT (MULTIBOOT_TAG_ALIGN % sizeof (grub_properly_aligned_t) == 0); - - err = grub_relocator_alloc_chunk_align (grub_multiboot2_relocator, &ch, -- 0, 0xffffffff - bufsize, -+ 0, UP_TO_TOP32 (bufsize), - bufsize, MULTIBOOT_TAG_ALIGN, - GRUB_RELOCATOR_PREFERENCE_NONE, 1); - if (err) -diff --git a/grub-core/loader/xnu_resume.c b/grub-core/loader/xnu_resume.c -index 8089804d4..d648ef0cd 100644 ---- a/grub-core/loader/xnu_resume.c -+++ b/grub-core/loader/xnu_resume.c -@@ -129,7 +129,7 @@ grub_xnu_resume (char *imagename) - { - grub_relocator_chunk_t ch; - err = grub_relocator_alloc_chunk_align (grub_xnu_relocator, &ch, 0, -- (0xffffffff - hibhead.image_size) + 1, -+ UP_TO_TOP32 (hibhead.image_size), - hibhead.image_size, - GRUB_XNU_PAGESIZE, - GRUB_RELOCATOR_PREFERENCE_NONE, 0); -diff --git a/include/grub/relocator.h b/include/grub/relocator.h -index 24d8672d2..1b3bdd92a 100644 ---- a/include/grub/relocator.h -+++ b/include/grub/relocator.h -@@ -49,6 +49,35 @@ grub_relocator_alloc_chunk_align (struct grub_relocator *rel, - int preference, - int avoid_efi_boot_services); - -+/* -+ * Wrapper for grub_relocator_alloc_chunk_align() with purpose of -+ * protecting against integer underflow. -+ * -+ * Compare to its callee, max_addr has different meaning here. -+ * It covers entire chunk and not just start address of the chunk. -+ */ -+static inline grub_err_t -+grub_relocator_alloc_chunk_align_safe (struct grub_relocator *rel, -+ grub_relocator_chunk_t *out, -+ grub_phys_addr_t min_addr, -+ grub_phys_addr_t max_addr, -+ grub_size_t size, grub_size_t align, -+ int preference, -+ int avoid_efi_boot_services) -+{ -+ /* Sanity check and ensure following equation (max_addr - size) is safe. */ -+ if (max_addr < size || (max_addr - size) < min_addr) -+ return GRUB_ERR_OUT_OF_RANGE; -+ -+ return grub_relocator_alloc_chunk_align (rel, out, min_addr, -+ max_addr - size, -+ size, align, preference, -+ avoid_efi_boot_services); -+} -+ -+/* Top 32-bit address minus s bytes and plus 1 byte. */ -+#define UP_TO_TOP32(s) ((~(s) & 0xffffffff) + 1) -+ - #define GRUB_RELOCATOR_PREFERENCE_NONE 0 - #define GRUB_RELOCATOR_PREFERENCE_LOW 1 - #define GRUB_RELOCATOR_PREFERENCE_HIGH 2 diff --git a/patches/grub/2.04/restore-mkdevicemap.patch b/patches/grub/2.04/restore-mkdevicemap.patch deleted file mode 100644 index f459634ff..000000000 --- a/patches/grub/2.04/restore-mkdevicemap.patch +++ /dev/null @@ -1,1320 +0,0 @@ -From 2ecd079ed1078da6a26223333d0645dd53ef181a Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:01 +0000 -Subject: Restore grub-mkdevicemap - -This is kind of a mess, requiring lots of OS-specific code to iterate -over all possible devices. However, we use it in a number of scripts to -discover devices and reimplementing those in terms of something else -would be very complicated. - -Author: Dimitri John Ledkov -Forwarded: no -Last-Update: 2019-05-25 - -Patch-Name: restore-mkdevicemap.patch ---- - Makefile.util.def | 17 + - docs/man/grub-mkdevicemap.h2m | 4 + - include/grub/util/deviceiter.h | 14 + - util/deviceiter.c | 1021 ++++++++++++++++++++++++++++++++ - util/devicemap.c | 13 + - util/grub-mkdevicemap.c | 181 ++++++ - 6 files changed, 1250 insertions(+) - create mode 100644 docs/man/grub-mkdevicemap.h2m - create mode 100644 include/grub/util/deviceiter.h - create mode 100644 util/deviceiter.c - create mode 100644 util/devicemap.c - create mode 100644 util/grub-mkdevicemap.c - -diff --git a/Makefile.util.def b/Makefile.util.def -index 969d32f00..0029b9000 100644 ---- a/Makefile.util.def -+++ b/Makefile.util.def -@@ -324,6 +324,23 @@ program = { - condition = COND_GRUB_MKFONT; - }; - -+program = { -+ name = grub-mkdevicemap; -+ installdir = sbin; -+ mansection = 8; -+ -+ common = util/grub-mkdevicemap.c; -+ common = util/deviceiter.c; -+ common = util/devicemap.c; -+ common = grub-core/osdep/init.c; -+ -+ ldadd = libgrubmods.a; -+ ldadd = libgrubgcry.a; -+ ldadd = libgrubkern.a; -+ ldadd = grub-core/lib/gnulib/libgnu.a; -+ ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; -+}; -+ - program = { - name = grub-probe; - installdir = sbin; -diff --git a/docs/man/grub-mkdevicemap.h2m b/docs/man/grub-mkdevicemap.h2m -new file mode 100644 -index 000000000..96cd6ee72 ---- /dev/null -+++ b/docs/man/grub-mkdevicemap.h2m -@@ -0,0 +1,4 @@ -+[NAME] -+grub-mkdevicemap \- make a device map file automatically -+[SEE ALSO] -+.BR grub-probe (8) -diff --git a/include/grub/util/deviceiter.h b/include/grub/util/deviceiter.h -new file mode 100644 -index 000000000..85374978c ---- /dev/null -+++ b/include/grub/util/deviceiter.h -@@ -0,0 +1,14 @@ -+#ifndef GRUB_DEVICEITER_MACHINE_UTIL_HEADER -+#define GRUB_DEVICEITER_MACHINE_UTIL_HEADER 1 -+ -+#include -+ -+typedef int (*grub_util_iterate_devices_hook_t) (const char *name, -+ int is_floppy, void *data); -+ -+void grub_util_iterate_devices (grub_util_iterate_devices_hook_t hook, -+ void *hook_data, int floppy_disks); -+void grub_util_emit_devicemap_entry (FILE *fp, char *name, int is_floppy, -+ int *num_fd, int *num_hd); -+ -+#endif /* ! GRUB_DEVICEITER_MACHINE_UTIL_HEADER */ -diff --git a/util/deviceiter.c b/util/deviceiter.c -new file mode 100644 -index 000000000..a4971ef42 ---- /dev/null -+++ b/util/deviceiter.c -@@ -0,0 +1,1021 @@ -+/* deviceiter.c - iterate over system devices */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 1999,2000,2001,2002,2003,2004,2005,2007,2008,2011 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+#include -+#include -+ -+#ifdef __linux__ -+# if !defined(__GLIBC__) || \ -+ ((__GLIBC__ < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR__ < 1))) -+/* Maybe libc doesn't have large file support. */ -+# include /* _llseek */ -+# endif /* (GLIBC < 2) || ((__GLIBC__ == 2) && (__GLIBC_MINOR < 1)) */ -+# include /* ioctl */ -+# ifndef HDIO_GETGEO -+# define HDIO_GETGEO 0x0301 /* get device geometry */ -+/* If HDIO_GETGEO is not defined, it is unlikely that hd_geometry is -+ defined. */ -+struct hd_geometry -+{ -+ unsigned char heads; -+ unsigned char sectors; -+ unsigned short cylinders; -+ unsigned long start; -+}; -+# endif /* ! HDIO_GETGEO */ -+# ifndef FLOPPY_MAJOR -+# define FLOPPY_MAJOR 2 /* the major number for floppy */ -+# endif /* ! FLOPPY_MAJOR */ -+# ifndef MAJOR -+# define MAJOR(dev) \ -+ ({ \ -+ unsigned long long __dev = (dev); \ -+ (unsigned) ((__dev >> 8) & 0xfff) \ -+ | ((unsigned int) (__dev >> 32) & ~0xfff); \ -+ }) -+# endif /* ! MAJOR */ -+# ifndef MINOR -+# define MINOR(dev) \ -+ ({ \ -+ unsigned long long __dev = (dev); \ -+ (unsigned) (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); \ -+ }) -+# endif /* ! MINOR */ -+# ifndef CDROM_GET_CAPABILITY -+# define CDROM_GET_CAPABILITY 0x5331 /* get capabilities */ -+# endif /* ! CDROM_GET_CAPABILITY */ -+# ifndef BLKGETSIZE -+# define BLKGETSIZE _IO(0x12,96) /* return device size */ -+# endif /* ! BLKGETSIZE */ -+ -+#ifdef HAVE_DEVICE_MAPPER -+# include -+# pragma GCC diagnostic ignored "-Wcast-align" -+#endif -+#endif /* __linux__ */ -+ -+/* Use __FreeBSD_kernel__ instead of __FreeBSD__ for compatibility with -+ kFreeBSD-based non-FreeBSD systems (e.g. GNU/kFreeBSD) */ -+#if defined(__FreeBSD__) && ! defined(__FreeBSD_kernel__) -+# define __FreeBSD_kernel__ -+#endif -+#ifdef __FreeBSD_kernel__ -+ /* Obtain version of kFreeBSD headers */ -+# include -+# ifndef __FreeBSD_kernel_version -+# define __FreeBSD_kernel_version __FreeBSD_version -+# endif -+ -+ /* Runtime detection of kernel */ -+# include -+static int -+get_kfreebsd_version (void) -+{ -+ struct utsname uts; -+ int major; -+ int minor; -+ int v[2]; -+ -+ uname (&uts); -+ sscanf (uts.release, "%d.%d", &major, &minor); -+ -+ if (major >= 9) -+ major = 9; -+ if (major >= 5) -+ { -+ v[0] = minor/10; v[1] = minor%10; -+ } -+ else -+ { -+ v[0] = minor%10; v[1] = minor/10; -+ } -+ return major*100000+v[0]*10000+v[1]*1000; -+} -+#endif /* __FreeBSD_kernel__ */ -+ -+#if defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) -+# include /* ioctl */ -+# include -+# include /* CDIOCCLRDEBUG */ -+# if defined(__FreeBSD_kernel__) -+# include -+# if __FreeBSD_kernel_version >= 500040 -+# include -+# endif -+# endif /* __FreeBSD_kernel__ */ -+#endif /* __FreeBSD_kernel__ || __NetBSD__ || __OpenBSD__ */ -+ -+#ifdef HAVE_OPENDISK -+# include -+#endif /* HAVE_OPENDISK */ -+ -+#ifdef __linux__ -+/* Check if we have devfs support. */ -+static int -+have_devfs (void) -+{ -+ struct stat st; -+ return stat ("/dev/.devfsd", &st) == 0; -+} -+#endif /* __linux__ */ -+ -+/* These three functions are quite different among OSes. */ -+static void -+get_floppy_disk_name (char *name, int unit) -+{ -+#if defined(__linux__) -+ /* GNU/Linux */ -+ if (have_devfs ()) -+ sprintf (name, "/dev/floppy/%d", unit); -+ else -+ sprintf (name, "/dev/fd%d", unit); -+#elif defined(__GNU__) -+ /* GNU/Hurd */ -+ sprintf (name, "/dev/fd%d", unit); -+#elif defined(__FreeBSD_kernel__) -+ /* kFreeBSD */ -+ if (get_kfreebsd_version () >= 400000) -+ sprintf (name, "/dev/fd%d", unit); -+ else -+ sprintf (name, "/dev/rfd%d", unit); -+#elif defined(__NetBSD__) -+ /* NetBSD */ -+ /* opendisk() doesn't work for floppies. */ -+ sprintf (name, "/dev/rfd%da", unit); -+#elif defined(__OpenBSD__) -+ /* OpenBSD */ -+ sprintf (name, "/dev/rfd%dc", unit); -+#elif defined(__QNXNTO__) -+ /* QNX RTP */ -+ sprintf (name, "/dev/fd%d", unit); -+#elif defined(__CYGWIN__) -+ /* Cygwin */ -+ sprintf (name, "/dev/fd%d", unit); -+#elif defined(__MINGW32__) -+ (void) unit; -+ *name = 0; -+#else -+# warning "BIOS floppy drives cannot be guessed in your operating system." -+ /* Set NAME to a bogus string. */ -+ *name = 0; -+#endif -+} -+ -+static void -+get_ide_disk_name (char *name, int unit) -+{ -+#if defined(__linux__) -+ /* GNU/Linux */ -+ sprintf (name, "/dev/hd%c", unit + 'a'); -+#elif defined(__GNU__) -+ /* GNU/Hurd */ -+ sprintf (name, "/dev/hd%d", unit); -+#elif defined(__FreeBSD_kernel__) -+ /* kFreeBSD */ -+ if (get_kfreebsd_version () >= 400000) -+ sprintf (name, "/dev/ad%d", unit); -+ else -+ sprintf (name, "/dev/rwd%d", unit); -+#elif defined(__NetBSD__) && defined(HAVE_OPENDISK) -+ /* NetBSD */ -+ char shortname[16]; -+ int fd; -+ -+ sprintf (shortname, "wd%d", unit); -+ fd = opendisk (shortname, O_RDONLY, name, -+ 16, /* length of NAME */ -+ 0 /* char device */ -+ ); -+ close (fd); -+#elif defined(__OpenBSD__) -+ /* OpenBSD */ -+ sprintf (name, "/dev/rwd%dc", unit); -+#elif defined(__QNXNTO__) -+ /* QNX RTP */ -+ /* Actually, QNX RTP doesn't distinguish IDE from SCSI, so this could -+ contain SCSI disks. */ -+ sprintf (name, "/dev/hd%d", unit); -+#elif defined(__CYGWIN__) -+ /* Cygwin emulates all disks as /dev/sdX. */ -+ (void) unit; -+ *name = 0; -+#elif defined(__MINGW32__) -+ sprintf (name, "//./PHYSICALDRIVE%d", unit); -+#else -+# warning "BIOS IDE drives cannot be guessed in your operating system." -+ /* Set NAME to a bogus string. */ -+ *name = 0; -+#endif -+} -+ -+static void -+get_scsi_disk_name (char *name, int unit) -+{ -+#if defined(__linux__) -+ /* GNU/Linux */ -+ sprintf (name, "/dev/sd%c", unit + 'a'); -+#elif defined(__GNU__) -+ /* GNU/Hurd */ -+ sprintf (name, "/dev/sd%d", unit); -+#elif defined(__FreeBSD_kernel__) -+ /* kFreeBSD */ -+ if (get_kfreebsd_version () >= 400000) -+ sprintf (name, "/dev/da%d", unit); -+ else -+ sprintf (name, "/dev/rda%d", unit); -+#elif defined(__NetBSD__) && defined(HAVE_OPENDISK) -+ /* NetBSD */ -+ char shortname[16]; -+ int fd; -+ -+ sprintf (shortname, "sd%d", unit); -+ fd = opendisk (shortname, O_RDONLY, name, -+ 16, /* length of NAME */ -+ 0 /* char device */ -+ ); -+ close (fd); -+#elif defined(__OpenBSD__) -+ /* OpenBSD */ -+ sprintf (name, "/dev/rsd%dc", unit); -+#elif defined(__QNXNTO__) -+ /* QNX RTP */ -+ /* QNX RTP doesn't distinguish SCSI from IDE, so it is better to -+ disable the detection of SCSI disks here. */ -+ *name = 0; -+#elif defined(__CYGWIN__) -+ /* Cygwin emulates all disks as /dev/sdX. */ -+ sprintf (name, "/dev/sd%c", unit + 'a'); -+#elif defined(__MINGW32__) -+ (void) unit; -+ *name = 0; -+#else -+# warning "BIOS SCSI drives cannot be guessed in your operating system." -+ /* Set NAME to a bogus string. */ -+ *name = 0; -+#endif -+} -+ -+#ifdef __FreeBSD_kernel__ -+static void -+get_ada_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/ada%d", unit); -+} -+ -+static void -+get_ataraid_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/ar%d", unit); -+} -+ -+static void -+get_mfi_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/mfid%d", unit); -+} -+ -+static void -+get_virtio_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/vtbd%d", unit); -+} -+ -+static void -+get_xvd_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/xbd%d", unit); -+} -+#endif -+ -+#ifdef __linux__ -+static void -+get_virtio_disk_name (char *name, int unit) -+{ -+#ifdef __sparc__ -+ sprintf (name, "/dev/vdisk%c", unit + 'a'); -+#else -+ sprintf (name, "/dev/vd%c", unit + 'a'); -+#endif -+} -+ -+static void -+get_dac960_disk_name (char *name, int controller, int drive) -+{ -+ sprintf (name, "/dev/rd/c%dd%d", controller, drive); -+} -+ -+static void -+get_acceleraid_disk_name (char *name, int controller, int drive) -+{ -+ sprintf (name, "/dev/rs/c%dd%d", controller, drive); -+} -+ -+static void -+get_ataraid_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/ataraid/d%c", unit + '0'); -+} -+ -+static void -+get_i2o_disk_name (char *name, char unit) -+{ -+ sprintf (name, "/dev/i2o/hd%c", unit); -+} -+ -+static void -+get_cciss_disk_name (char *name, int controller, int drive) -+{ -+ sprintf (name, "/dev/cciss/c%dd%d", controller, drive); -+} -+ -+static void -+get_ida_disk_name (char *name, int controller, int drive) -+{ -+ sprintf (name, "/dev/ida/c%dd%d", controller, drive); -+} -+ -+static void -+get_mmc_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/mmcblk%d", unit); -+} -+ -+static void -+get_xvd_disk_name (char *name, int unit) -+{ -+ sprintf (name, "/dev/xvd%c", unit + 'a'); -+} -+ -+static void -+get_nvme_disk_name (char *name, int controller, int namespace) -+{ -+ sprintf (name, "/dev/nvme%dn%d", controller, namespace); -+} -+#endif -+ -+static struct seen_device -+{ -+ struct seen_device *next; -+ struct seen_device **prev; -+ const char *name; -+} *seen; -+ -+/* Check if DEVICE can be read. Skip any DEVICE that we have already seen. -+ If an error occurs, return zero, otherwise return non-zero. */ -+static int -+check_device_readable_unique (const char *device) -+{ -+ char *real_device; -+ char buf[512]; -+ FILE *fp; -+ struct seen_device *seen_elt; -+ -+ /* If DEVICE is empty, just return error. */ -+ if (*device == 0) -+ return 0; -+ -+ /* Have we seen this device already? */ -+ real_device = canonicalize_file_name (device); -+ if (! real_device) -+ return 0; -+ if (grub_named_list_find (GRUB_AS_NAMED_LIST (seen), real_device)) -+ { -+ grub_dprintf ("deviceiter", "Already seen %s (%s)\n", -+ device, real_device); -+ goto fail; -+ } -+ -+ fp = fopen (device, "r"); -+ if (! fp) -+ { -+ switch (errno) -+ { -+#ifdef ENOMEDIUM -+ case ENOMEDIUM: -+# if 0 -+ /* At the moment, this finds only CDROMs, which can't be -+ read anyway, so leave it out. Code should be -+ reactivated if `removable disks' and CDROMs are -+ supported. */ -+ /* Accept it, it may be inserted. */ -+ return 1; -+# endif -+ break; -+#endif /* ENOMEDIUM */ -+ default: -+ /* Break case and leave. */ -+ break; -+ } -+ /* Error opening the device. */ -+ goto fail; -+ } -+ -+ /* Make sure CD-ROMs don't get assigned a BIOS disk number -+ before SCSI disks! */ -+#ifdef __linux__ -+# ifdef CDROM_GET_CAPABILITY -+ if (ioctl (fileno (fp), CDROM_GET_CAPABILITY, 0) >= 0) -+ goto fail; -+# else /* ! CDROM_GET_CAPABILITY */ -+ /* Check if DEVICE is a CD-ROM drive by the HDIO_GETGEO ioctl. */ -+ { -+ struct hd_geometry hdg; -+ struct stat st; -+ -+ if (fstat (fileno (fp), &st)) -+ goto fail; -+ -+ /* If it is a block device and isn't a floppy, check if HDIO_GETGEO -+ succeeds. */ -+ if (S_ISBLK (st.st_mode) -+ && MAJOR (st.st_rdev) != FLOPPY_MAJOR -+ && ioctl (fileno (fp), HDIO_GETGEO, &hdg)) -+ goto fail; -+ } -+# endif /* ! CDROM_GET_CAPABILITY */ -+#endif /* __linux__ */ -+ -+#if defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) -+# ifdef CDIOCCLRDEBUG -+ if (ioctl (fileno (fp), CDIOCCLRDEBUG, 0) >= 0) -+ goto fail; -+# endif /* CDIOCCLRDEBUG */ -+#endif /* __FreeBSD_kernel__ || __NetBSD__ || __OpenBSD__ */ -+ -+ /* Attempt to read the first sector. */ -+ if (fread (buf, 1, 512, fp) != 512) -+ { -+ fclose (fp); -+ goto fail; -+ } -+ -+ /* Remember that we've seen this device. */ -+ seen_elt = xmalloc (sizeof (*seen_elt)); -+ seen_elt->name = real_device; /* steal memory */ -+ grub_list_push (GRUB_AS_LIST_P (&seen), GRUB_AS_LIST (seen_elt)); -+ -+ fclose (fp); -+ return 1; -+ -+fail: -+ free (real_device); -+ return 0; -+} -+ -+static void -+clear_seen_devices (void) -+{ -+ while (seen) -+ { -+ struct seen_device *seen_elt = seen; -+ seen = seen->next; -+ free (seen_elt); -+ } -+ seen = NULL; -+} -+ -+#ifdef __linux__ -+struct device -+{ -+ char *stable; -+ char *kernel; -+}; -+ -+/* Sort by the kernel name for preference since that most closely matches -+ older device.map files, but sort by stable by-id names as a fallback. -+ This is because /dev/disk/by-id/ usually has a few alternative -+ identifications of devices (e.g. ATA vs. SATA). -+ check_device_readable_unique will ensure that we only get one for any -+ given disk, but sort the list so that the choice of which one we get is -+ stable. */ -+static int -+compare_devices (const void *a, const void *b) -+{ -+ const struct device *left = (const struct device *) a; -+ const struct device *right = (const struct device *) b; -+ -+ if (left->kernel && right->kernel) -+ { -+ int ret = strcmp (left->kernel, right->kernel); -+ if (ret) -+ return ret; -+ } -+ -+ return strcmp (left->stable, right->stable); -+} -+#endif /* __linux__ */ -+ -+void -+grub_util_iterate_devices (int (*hook) (const char *, int, void *), void *hook_data, -+ int floppy_disks) -+{ -+ int i; -+ -+ clear_seen_devices (); -+ -+ /* Floppies. */ -+ for (i = 0; i < floppy_disks; i++) -+ { -+ char name[32]; -+ struct stat st; -+ -+ get_floppy_disk_name (name, i); -+ if (stat (name, &st) < 0) -+ break; -+ /* In floppies, write the map, whether check_device_readable_unique -+ succeeds or not, because the user just may not insert floppies. */ -+ if (hook (name, 1, hook_data)) -+ goto out; -+ } -+ -+#ifdef __linux__ -+ { -+ DIR *dir = opendir ("/dev/disk/by-id"); -+ -+ if (dir) -+ { -+ struct dirent *entry; -+ struct device *devs; -+ size_t devs_len = 0, devs_max = 1024, dev; -+ -+ devs = xmalloc (devs_max * sizeof (*devs)); -+ -+ /* Dump all the directory entries into names, resizing if -+ necessary. */ -+ for (entry = readdir (dir); entry; entry = readdir (dir)) -+ { -+ /* Skip current and parent directory entries. */ -+ if (strcmp (entry->d_name, ".") == 0 || -+ strcmp (entry->d_name, "..") == 0) -+ continue; -+ /* Skip partition entries. */ -+ if (strstr (entry->d_name, "-part")) -+ continue; -+ /* Skip device-mapper entries; we'll handle the ones we want -+ later. */ -+ if (strncmp (entry->d_name, "dm-", sizeof ("dm-") - 1) == 0) -+ continue; -+ /* Skip RAID entries; they are handled by upper layers. */ -+ if (strncmp (entry->d_name, "md-", sizeof ("md-") - 1) == 0) -+ continue; -+ if (devs_len >= devs_max) -+ { -+ devs_max *= 2; -+ devs = xrealloc (devs, devs_max * sizeof (*devs)); -+ } -+ devs[devs_len].stable = -+ xasprintf ("/dev/disk/by-id/%s", entry->d_name); -+ devs[devs_len].kernel = -+ canonicalize_file_name (devs[devs_len].stable); -+ devs_len++; -+ } -+ -+ qsort (devs, devs_len, sizeof (*devs), &compare_devices); -+ -+ closedir (dir); -+ -+ /* Now add all the devices in sorted order. */ -+ for (dev = 0; dev < devs_len; ++dev) -+ { -+ if (check_device_readable_unique (devs[dev].stable)) -+ { -+ if (hook (devs[dev].stable, 0, hook_data)) -+ goto out; -+ } -+ free (devs[dev].stable); -+ free (devs[dev].kernel); -+ } -+ free (devs); -+ } -+ } -+ -+ if (have_devfs ()) -+ { -+ i = 0; -+ while (1) -+ { -+ char discn[32]; -+ char name[PATH_MAX]; -+ struct stat st; -+ -+ /* Linux creates symlinks "/dev/discs/discN" for convenience. -+ The way to number disks is the same as GRUB's. */ -+ sprintf (discn, "/dev/discs/disc%d", i++); -+ if (stat (discn, &st) < 0) -+ break; -+ -+ if (realpath (discn, name)) -+ { -+ strcat (name, "/disc"); -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ goto out; -+ } -+#endif /* __linux__ */ -+ -+ /* IDE disks. */ -+ for (i = 0; i < 96; i++) -+ { -+ char name[16]; -+ -+ get_ide_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+#ifdef __FreeBSD_kernel__ -+ /* IDE disks using ATA Direct Access driver. */ -+ if (get_kfreebsd_version () >= 800000) -+ for (i = 0; i < 96; i++) -+ { -+ char name[16]; -+ -+ get_ada_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* ATARAID disks. */ -+ for (i = 0; i < 8; i++) -+ { -+ char name[20]; -+ -+ get_ataraid_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* LSI MegaRAID SAS. */ -+ for (i = 0; i < 32; i++) -+ { -+ char name[20]; -+ -+ get_mfi_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* Virtio disks. */ -+ for (i = 0; i < 96; i++) -+ { -+ char name[16]; -+ -+ get_virtio_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* Xen virtual block devices. */ -+ for (i = 0; i < 96; i++) -+ { -+ char name[16]; -+ -+ get_xvd_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+#endif -+ -+#ifdef __linux__ -+ /* Virtio disks. */ -+ for (i = 0; i < 26; i++) -+ { -+ char name[16]; -+ -+ get_virtio_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* ATARAID disks. */ -+ for (i = 0; i < 8; i++) -+ { -+ char name[20]; -+ -+ get_ataraid_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* Xen virtual block devices. */ -+ for (i = 0; i < 26; i++) -+ { -+ char name[16]; -+ -+ get_xvd_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+#endif /* __linux__ */ -+ -+ /* The rest is SCSI disks. */ -+ for (i = 0; i < 48; i++) -+ { -+ char name[16]; -+ -+ get_scsi_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+#ifdef __linux__ -+ /* This is for DAC960 - we have -+ /dev/rd/cdp. -+ -+ DAC960 driver currently supports up to 8 controllers, 32 logical -+ drives, and 7 partitions. */ -+ { -+ int controller, drive; -+ -+ for (controller = 0; controller < 8; controller++) -+ { -+ for (drive = 0; drive < 15; drive++) -+ { -+ char name[24]; -+ -+ get_dac960_disk_name (name, controller, drive); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ } -+ } -+ -+ /* This is for Mylex Acceleraid - we have -+ /dev/rd/cdp. */ -+ { -+ int controller, drive; -+ -+ for (controller = 0; controller < 8; controller++) -+ { -+ for (drive = 0; drive < 15; drive++) -+ { -+ char name[24]; -+ -+ get_acceleraid_disk_name (name, controller, drive); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ } -+ } -+ -+ /* This is for CCISS - we have -+ /dev/cciss/cdp. */ -+ { -+ int controller, drive; -+ -+ for (controller = 0; controller < 3; controller++) -+ { -+ for (drive = 0; drive < 16; drive++) -+ { -+ char name[24]; -+ -+ get_cciss_disk_name (name, controller, drive); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ } -+ } -+ -+ /* This is for Compaq Intelligent Drive Array - we have -+ /dev/ida/cdp. */ -+ { -+ int controller, drive; -+ -+ for (controller = 0; controller < 3; controller++) -+ { -+ for (drive = 0; drive < 16; drive++) -+ { -+ char name[24]; -+ -+ get_ida_disk_name (name, controller, drive); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ } -+ } -+ -+ /* This is for I2O - we have /dev/i2o/hd */ -+ { -+ char unit; -+ -+ for (unit = 'a'; unit < 'f'; unit++) -+ { -+ char name[24]; -+ -+ get_i2o_disk_name (name, unit); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ } -+ -+ /* MultiMediaCard (MMC). */ -+ for (i = 0; i < 10; i++) -+ { -+ char name[16]; -+ -+ get_mmc_disk_name (name, i); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ -+ /* This is for standard NVMe controllers -+ /dev/nvmenp. No idea about -+ actual limits of how many controllers a system can have and/or -+ how many namespace that would be, 10 for now. */ -+ { -+ int controller, namespace; -+ -+ for (controller = 0; controller < 10; controller++) -+ { -+ for (namespace = 0; namespace < 10; namespace++) -+ { -+ char name[16]; -+ -+ get_nvme_disk_name (name, controller, namespace); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ goto out; -+ } -+ } -+ } -+ } -+ -+# ifdef HAVE_DEVICE_MAPPER -+# define dmraid_check(cond, ...) \ -+ if (! (cond)) \ -+ { \ -+ grub_dprintf ("deviceiter", __VA_ARGS__); \ -+ goto dmraid_end; \ -+ } -+ -+ /* DM-RAID. */ -+ if (grub_device_mapper_supported ()) -+ { -+ struct dm_tree *tree = NULL; -+ struct dm_task *task = NULL; -+ struct dm_names *names = NULL; -+ unsigned int next = 0; -+ void *top_handle, *second_handle; -+ struct dm_tree_node *root, *top, *second; -+ -+ /* Build DM tree for all devices. */ -+ tree = dm_tree_create (); -+ dmraid_check (tree, "dm_tree_create failed\n"); -+ task = dm_task_create (DM_DEVICE_LIST); -+ dmraid_check (task, "dm_task_create failed\n"); -+ dmraid_check (dm_task_run (task), "dm_task_run failed\n"); -+ names = dm_task_get_names (task); -+ dmraid_check (names, "dm_task_get_names failed\n"); -+ dmraid_check (names->dev, "No DM devices found\n"); -+ do -+ { -+ names = (struct dm_names *) ((char *) names + next); -+ dmraid_check (dm_tree_add_dev (tree, MAJOR (names->dev), -+ MINOR (names->dev)), -+ "dm_tree_add_dev (%s) failed\n", names->name); -+ next = names->next; -+ } -+ while (next); -+ -+ /* Walk the second-level children of the inverted tree; that is, devices -+ which are directly composed of non-DM devices such as hard disks. -+ This class includes all DM-RAID disks and excludes all DM-RAID -+ partitions. */ -+ root = dm_tree_find_node (tree, 0, 0); -+ top_handle = NULL; -+ top = dm_tree_next_child (&top_handle, root, 1); -+ while (top) -+ { -+ second_handle = NULL; -+ second = dm_tree_next_child (&second_handle, top, 1); -+ while (second) -+ { -+ const char *node_name, *node_uuid; -+ char *name; -+ -+ node_name = dm_tree_node_get_name (second); -+ dmraid_check (node_name, "dm_tree_node_get_name failed\n"); -+ node_uuid = dm_tree_node_get_uuid (second); -+ dmraid_check (node_uuid, "dm_tree_node_get_uuid failed\n"); -+ if (strstr (node_uuid, "DMRAID-") == 0) -+ { -+ grub_dprintf ("deviceiter", "%s is not DM-RAID\n", node_name); -+ goto dmraid_next_child; -+ } -+ -+ name = xasprintf ("/dev/mapper/%s", node_name); -+ if (check_device_readable_unique (name)) -+ { -+ if (hook (name, 0, hook_data)) -+ { -+ free (name); -+ if (task) -+ dm_task_destroy (task); -+ if (tree) -+ dm_tree_free (tree); -+ goto out; -+ } -+ } -+ free (name); -+ -+dmraid_next_child: -+ second = dm_tree_next_child (&second_handle, top, 1); -+ } -+ top = dm_tree_next_child (&top_handle, root, 1); -+ } -+ -+dmraid_end: -+ if (task) -+ dm_task_destroy (task); -+ if (tree) -+ dm_tree_free (tree); -+ } -+# endif /* HAVE_DEVICE_MAPPER */ -+#endif /* __linux__ */ -+ -+out: -+ clear_seen_devices (); -+} -diff --git a/util/devicemap.c b/util/devicemap.c -new file mode 100644 -index 000000000..c61864420 ---- /dev/null -+++ b/util/devicemap.c -@@ -0,0 +1,13 @@ -+#include -+ -+#include -+ -+void -+grub_util_emit_devicemap_entry (FILE *fp, char *name, int is_floppy, -+ int *num_fd, int *num_hd) -+{ -+ if (is_floppy) -+ fprintf (fp, "(fd%d)\t%s\n", (*num_fd)++, name); -+ else -+ fprintf (fp, "(hd%d)\t%s\n", (*num_hd)++, name); -+} -diff --git a/util/grub-mkdevicemap.c b/util/grub-mkdevicemap.c -new file mode 100644 -index 000000000..c4bbdbf69 ---- /dev/null -+++ b/util/grub-mkdevicemap.c -@@ -0,0 +1,181 @@ -+/* grub-mkdevicemap.c - make a device map file automatically */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 1999,2000,2001,2002,2003,2004,2005,2007,2008,2009,2010 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define _GNU_SOURCE 1 -+#include -+ -+#include "progname.h" -+ -+/* Context for make_device_map. */ -+struct make_device_map_ctx -+{ -+ FILE *fp; -+ int num_fd; -+ int num_hd; -+}; -+ -+/* Helper for make_device_map. */ -+static int -+process_device (const char *name, int is_floppy, void *data) -+{ -+ struct make_device_map_ctx *ctx = data; -+ -+ grub_util_emit_devicemap_entry (ctx->fp, (char *) name, -+ is_floppy, &ctx->num_fd, &ctx->num_hd); -+ return 0; -+} -+ -+static void -+make_device_map (const char *device_map, int floppy_disks) -+{ -+ struct make_device_map_ctx ctx = { -+ .num_fd = 0, -+ .num_hd = 0 -+ }; -+ -+ if (strcmp (device_map, "-") == 0) -+ ctx.fp = stdout; -+ else -+ ctx.fp = fopen (device_map, "w"); -+ -+ if (! ctx.fp) -+ grub_util_error (_("cannot open %s"), device_map); -+ -+ grub_util_iterate_devices (process_device, &ctx, floppy_disks); -+ -+ if (ctx.fp != stdout) -+ fclose (ctx.fp); -+} -+ -+static struct option options[] = -+ { -+ {"device-map", required_argument, 0, 'm'}, -+ {"probe-second-floppy", no_argument, 0, 's'}, -+ {"no-floppy", no_argument, 0, 'n'}, -+ {"help", no_argument, 0, 'h'}, -+ {"version", no_argument, 0, 'V'}, -+ {"verbose", no_argument, 0, 'v'}, -+ {0, 0, 0, 0} -+ }; -+ -+static void -+usage (int status) -+{ -+ if (status) -+ fprintf (stderr, -+ _("Try `%s --help' for more information.\n"), program_name); -+ else -+ printf (_("\ -+Usage: %s [OPTION]...\n\ -+\n\ -+Generate a device map file automatically.\n\ -+\n\ -+ -n, --no-floppy do not probe any floppy drive\n\ -+ -s, --probe-second-floppy probe the second floppy drive\n\ -+ -m, --device-map=FILE use FILE as the device map [default=%s]\n\ -+ -h, --help display this message and exit\n\ -+ -V, --version print version information and exit\n\ -+ -v, --verbose print verbose messages\n\ -+\n\ -+Report bugs to <%s>.\n\ -+"), program_name, -+ DEFAULT_DEVICE_MAP, PACKAGE_BUGREPORT); -+ -+ exit (status); -+} -+ -+int -+main (int argc, char *argv[]) -+{ -+ char *dev_map = 0; -+ int floppy_disks = 1; -+ -+ grub_util_host_init (&argc, &argv); -+ -+ /* Check for options. */ -+ while (1) -+ { -+ int c = getopt_long (argc, argv, "snm:r:hVv", options, 0); -+ -+ if (c == -1) -+ break; -+ else -+ switch (c) -+ { -+ case 'm': -+ if (dev_map) -+ free (dev_map); -+ -+ dev_map = xstrdup (optarg); -+ break; -+ -+ case 'n': -+ floppy_disks = 0; -+ break; -+ -+ case 's': -+ floppy_disks = 2; -+ break; -+ -+ case 'h': -+ usage (0); -+ break; -+ -+ case 'V': -+ printf ("%s (%s) %s\n", program_name, PACKAGE_NAME, PACKAGE_VERSION); -+ return 0; -+ -+ case 'v': -+ verbosity++; -+ break; -+ -+ default: -+ usage (1); -+ break; -+ } -+ } -+ -+ if (verbosity > 1) -+ grub_env_set ("debug", "all"); -+ -+ make_device_map (dev_map ? : DEFAULT_DEVICE_MAP, floppy_disks); -+ -+ free (dev_map); -+ -+ return 0; -+} diff --git a/patches/grub/2.04/safe-alloc-1.patch b/patches/grub/2.04/safe-alloc-1.patch deleted file mode 100644 index e2bdbbfcd..000000000 --- a/patches/grub/2.04/safe-alloc-1.patch +++ /dev/null @@ -1,122 +0,0 @@ -From 016977edbd5d9f6fbab6412fb8b4d1f50eb432e7 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 15 Jun 2020 10:58:42 -0400 -Subject: safemath: Add some arithmetic primitives that check for overflow - -This adds a new header, include/grub/safemath.h, that includes easy to -use wrappers for __builtin_{add,sub,mul}_overflow() declared like: - - bool OP(a, b, res) - -where OP is grub_add, grub_sub or grub_mul. OP() returns true in the -case where the operation would overflow and res is not modified. -Otherwise, false is returned and the operation is executed. - -These arithmetic primitives require newer compiler versions. So, bump -these requirements in the INSTALL file too. - -Signed-off-by: Peter Jones -Reviewed-by: Daniel Kiper - -Patch-Name: safe-alloc-1.patch ---- - INSTALL | 22 ++-------------------- - include/grub/compiler.h | 8 ++++++++ - include/grub/safemath.h | 37 +++++++++++++++++++++++++++++++++++++ - 3 files changed, 47 insertions(+), 20 deletions(-) - create mode 100644 include/grub/safemath.h - -diff --git a/INSTALL b/INSTALL -index 342c158e9..991479b52 100644 ---- a/INSTALL -+++ b/INSTALL -@@ -11,27 +11,9 @@ GRUB depends on some software packages installed into your system. If - you don't have any of them, please obtain and install them before - configuring the GRUB. - --* GCC 4.1.3 or later -- Note: older versions may work but support is limited -- -- Experimental support for clang 3.3 or later (results in much bigger binaries) -+* GCC 5.1.0 or later -+ Experimental support for clang 3.8.0 or later (results in much bigger binaries) - for i386, x86_64, arm (including thumb), arm64, mips(el), powerpc, sparc64 -- Note: clang 3.2 or later works for i386 and x86_64 targets but results in -- much bigger binaries. -- earlier versions not tested -- Note: clang 3.2 or later works for arm -- earlier versions not tested -- Note: clang on arm64 is not supported due to -- https://llvm.org/bugs/show_bug.cgi?id=26030 -- Note: clang 3.3 or later works for mips(el) -- earlier versions fail to generate .reginfo and hence gprel relocations -- fail. -- Note: clang 3.2 or later works for powerpc -- earlier versions not tested -- Note: clang 3.5 or later works for sparc64 -- earlier versions return "error: unable to interface with target machine" -- Note: clang has no support for ia64 and hence you can't compile GRUB -- for ia64 with clang - * GNU Make - * GNU Bison 2.3 or later - * GNU gettext 0.17 or later -diff --git a/include/grub/compiler.h b/include/grub/compiler.h -index c9e1d7a73..8f3be3ae7 100644 ---- a/include/grub/compiler.h -+++ b/include/grub/compiler.h -@@ -48,4 +48,12 @@ - # define WARN_UNUSED_RESULT - #endif - -+#if defined(__clang__) && defined(__clang_major__) && defined(__clang_minor__) -+# define CLANG_PREREQ(maj,min) \ -+ ((__clang_major__ > (maj)) || \ -+ (__clang_major__ == (maj) && __clang_minor__ >= (min))) -+#else -+# define CLANG_PREREQ(maj,min) 0 -+#endif -+ - #endif /* ! GRUB_COMPILER_HEADER */ -diff --git a/include/grub/safemath.h b/include/grub/safemath.h -new file mode 100644 -index 000000000..c17b89bba ---- /dev/null -+++ b/include/grub/safemath.h -@@ -0,0 +1,37 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2020 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ * -+ * Arithmetic operations that protect against overflow. -+ */ -+ -+#ifndef GRUB_SAFEMATH_H -+#define GRUB_SAFEMATH_H 1 -+ -+#include -+ -+/* These appear in gcc 5.1 and clang 3.8. */ -+#if GNUC_PREREQ(5, 1) || CLANG_PREREQ(3, 8) -+ -+#define grub_add(a, b, res) __builtin_add_overflow(a, b, res) -+#define grub_sub(a, b, res) __builtin_sub_overflow(a, b, res) -+#define grub_mul(a, b, res) __builtin_mul_overflow(a, b, res) -+ -+#else -+#error gcc 5.1 or newer or clang 3.8 or newer is required -+#endif -+ -+#endif /* GRUB_SAFEMATH_H */ diff --git a/patches/grub/2.04/safe-alloc-2.patch b/patches/grub/2.04/safe-alloc-2.patch deleted file mode 100644 index 9c59ff0ec..000000000 --- a/patches/grub/2.04/safe-alloc-2.patch +++ /dev/null @@ -1,241 +0,0 @@ -From f80ca28e207484650fc7634545cd3dc6037de3c8 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 15 Jun 2020 12:15:29 -0400 -Subject: calloc: Make sure we always have an overflow-checking calloc() - available - -This tries to make sure that everywhere in this source tree, we always have -an appropriate version of calloc() (i.e. grub_calloc(), xcalloc(), etc.) -available, and that they all safely check for overflow and return NULL when -it would occur. - -Signed-off-by: Peter Jones -Reviewed-by: Daniel Kiper - -Patch-Name: safe-alloc-2.patch ---- - grub-core/kern/emu/misc.c | 12 +++++++++ - grub-core/kern/emu/mm.c | 10 ++++++++ - grub-core/kern/mm.c | 40 ++++++++++++++++++++++++++++++ - grub-core/lib/libgcrypt_wrap/mem.c | 11 ++++++-- - grub-core/lib/posix_wrap/stdlib.h | 8 +++++- - include/grub/emu/misc.h | 1 + - include/grub/mm.h | 6 +++++ - 7 files changed, 85 insertions(+), 3 deletions(-) - -diff --git a/grub-core/kern/emu/misc.c b/grub-core/kern/emu/misc.c -index 65db79baa..dfd8a8ec4 100644 ---- a/grub-core/kern/emu/misc.c -+++ b/grub-core/kern/emu/misc.c -@@ -85,6 +85,18 @@ grub_util_error (const char *fmt, ...) - exit (1); - } - -+void * -+xcalloc (grub_size_t nmemb, grub_size_t size) -+{ -+ void *p; -+ -+ p = calloc (nmemb, size); -+ if (!p) -+ grub_util_error ("%s", _("out of memory")); -+ -+ return p; -+} -+ - void * - xmalloc (grub_size_t size) - { -diff --git a/grub-core/kern/emu/mm.c b/grub-core/kern/emu/mm.c -index f262e95e3..145b01d37 100644 ---- a/grub-core/kern/emu/mm.c -+++ b/grub-core/kern/emu/mm.c -@@ -25,6 +25,16 @@ - #include - #include - -+void * -+grub_calloc (grub_size_t nmemb, grub_size_t size) -+{ -+ void *ret; -+ ret = calloc (nmemb, size); -+ if (!ret) -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); -+ return ret; -+} -+ - void * - grub_malloc (grub_size_t size) - { -diff --git a/grub-core/kern/mm.c b/grub-core/kern/mm.c -index ee88ff611..f2822a836 100644 ---- a/grub-core/kern/mm.c -+++ b/grub-core/kern/mm.c -@@ -67,8 +67,10 @@ - #include - #include - #include -+#include - - #ifdef MM_DEBUG -+# undef grub_calloc - # undef grub_malloc - # undef grub_zalloc - # undef grub_realloc -@@ -375,6 +377,30 @@ grub_memalign (grub_size_t align, grub_size_t size) - return 0; - } - -+/* -+ * Allocate NMEMB instances of SIZE bytes and return the pointer, or error on -+ * integer overflow. -+ */ -+void * -+grub_calloc (grub_size_t nmemb, grub_size_t size) -+{ -+ void *ret; -+ grub_size_t sz = 0; -+ -+ if (grub_mul (nmemb, size, &sz)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ return NULL; -+ } -+ -+ ret = grub_memalign (0, sz); -+ if (!ret) -+ return NULL; -+ -+ grub_memset (ret, 0, sz); -+ return ret; -+} -+ - /* Allocate SIZE bytes and return the pointer. */ - void * - grub_malloc (grub_size_t size) -@@ -561,6 +587,20 @@ grub_mm_dump (unsigned lineno) - grub_printf ("\n"); - } - -+void * -+grub_debug_calloc (const char *file, int line, grub_size_t nmemb, grub_size_t size) -+{ -+ void *ptr; -+ -+ if (grub_mm_debug) -+ grub_printf ("%s:%d: calloc (0x%" PRIxGRUB_SIZE ", 0x%" PRIxGRUB_SIZE ") = ", -+ file, line, size); -+ ptr = grub_calloc (nmemb, size); -+ if (grub_mm_debug) -+ grub_printf ("%p\n", ptr); -+ return ptr; -+} -+ - void * - grub_debug_malloc (const char *file, int line, grub_size_t size) - { -diff --git a/grub-core/lib/libgcrypt_wrap/mem.c b/grub-core/lib/libgcrypt_wrap/mem.c -index beeb661a3..74c6eafe5 100644 ---- a/grub-core/lib/libgcrypt_wrap/mem.c -+++ b/grub-core/lib/libgcrypt_wrap/mem.c -@@ -4,6 +4,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -36,7 +37,10 @@ void * - gcry_xcalloc (size_t n, size_t m) - { - void *ret; -- ret = grub_zalloc (n * m); -+ size_t sz; -+ if (grub_mul (n, m, &sz)) -+ grub_fatal ("gcry_xcalloc would overflow"); -+ ret = grub_zalloc (sz); - if (!ret) - grub_fatal ("gcry_xcalloc failed"); - return ret; -@@ -56,7 +60,10 @@ void * - gcry_xcalloc_secure (size_t n, size_t m) - { - void *ret; -- ret = grub_zalloc (n * m); -+ size_t sz; -+ if (grub_mul (n, m, &sz)) -+ grub_fatal ("gcry_xcalloc would overflow"); -+ ret = grub_zalloc (sz); - if (!ret) - grub_fatal ("gcry_xcalloc failed"); - return ret; -diff --git a/grub-core/lib/posix_wrap/stdlib.h b/grub-core/lib/posix_wrap/stdlib.h -index 3b46f47ff..7a8d385e9 100644 ---- a/grub-core/lib/posix_wrap/stdlib.h -+++ b/grub-core/lib/posix_wrap/stdlib.h -@@ -21,6 +21,7 @@ - - #include - #include -+#include - - static inline void - free (void *ptr) -@@ -37,7 +38,12 @@ malloc (grub_size_t size) - static inline void * - calloc (grub_size_t size, grub_size_t nelem) - { -- return grub_zalloc (size * nelem); -+ grub_size_t sz; -+ -+ if (grub_mul (size, nelem, &sz)) -+ return NULL; -+ -+ return grub_zalloc (sz); - } - - static inline void * -diff --git a/include/grub/emu/misc.h b/include/grub/emu/misc.h -index ce464cfd0..ff9c48a64 100644 ---- a/include/grub/emu/misc.h -+++ b/include/grub/emu/misc.h -@@ -47,6 +47,7 @@ grub_util_device_is_mapped (const char *dev); - #define GRUB_HOST_PRIuLONG_LONG "llu" - #define GRUB_HOST_PRIxLONG_LONG "llx" - -+void * EXPORT_FUNC(xcalloc) (grub_size_t nmemb, grub_size_t size) WARN_UNUSED_RESULT; - void * EXPORT_FUNC(xmalloc) (grub_size_t size) WARN_UNUSED_RESULT; - void * EXPORT_FUNC(xrealloc) (void *ptr, grub_size_t size) WARN_UNUSED_RESULT; - char * EXPORT_FUNC(xstrdup) (const char *str) WARN_UNUSED_RESULT; -diff --git a/include/grub/mm.h b/include/grub/mm.h -index 28e2e53eb..9c38dd3ca 100644 ---- a/include/grub/mm.h -+++ b/include/grub/mm.h -@@ -29,6 +29,7 @@ - #endif - - void grub_mm_init_region (void *addr, grub_size_t size); -+void *EXPORT_FUNC(grub_calloc) (grub_size_t nmemb, grub_size_t size); - void *EXPORT_FUNC(grub_malloc) (grub_size_t size); - void *EXPORT_FUNC(grub_zalloc) (grub_size_t size); - void EXPORT_FUNC(grub_free) (void *ptr); -@@ -48,6 +49,9 @@ extern int EXPORT_VAR(grub_mm_debug); - void grub_mm_dump_free (void); - void grub_mm_dump (unsigned lineno); - -+#define grub_calloc(nmemb, size) \ -+ grub_debug_calloc (GRUB_FILE, __LINE__, nmemb, size) -+ - #define grub_malloc(size) \ - grub_debug_malloc (GRUB_FILE, __LINE__, size) - -@@ -63,6 +67,8 @@ void grub_mm_dump (unsigned lineno); - #define grub_free(ptr) \ - grub_debug_free (GRUB_FILE, __LINE__, ptr) - -+void *EXPORT_FUNC(grub_debug_calloc) (const char *file, int line, -+ grub_size_t nmemb, grub_size_t size); - void *EXPORT_FUNC(grub_debug_malloc) (const char *file, int line, - grub_size_t size); - void *EXPORT_FUNC(grub_debug_zalloc) (const char *file, int line, diff --git a/patches/grub/2.04/safe-alloc-3.patch b/patches/grub/2.04/safe-alloc-3.patch deleted file mode 100644 index 2d746aa4b..000000000 --- a/patches/grub/2.04/safe-alloc-3.patch +++ /dev/null @@ -1,1821 +0,0 @@ -From 65dfa11751111173ce6f492afce13d4a2c2b006c Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 15 Jun 2020 12:26:01 -0400 -Subject: calloc: Use calloc() at most places - -This modifies most of the places we do some form of: - - X = malloc(Y * Z); - -to use calloc(Y, Z) instead. - -Among other issues, this fixes: - - allocation of integer overflow in grub_png_decode_image_header() - reported by Chris Coulson, - - allocation of integer overflow in luks_recover_key() - reported by Chris Coulson, - - allocation of integer overflow in grub_lvm_detect() - reported by Chris Coulson. - -Fixes: CVE-2020-14308 - -Signed-off-by: Peter Jones -Reviewed-by: Daniel Kiper - -Patch-Name: safe-alloc-3.patch ---- - grub-core/bus/usb/usbhub.c | 8 ++++---- - grub-core/commands/efi/lsefisystab.c | 3 ++- - grub-core/commands/legacycfg.c | 6 +++--- - grub-core/commands/menuentry.c | 2 +- - grub-core/commands/nativedisk.c | 2 +- - grub-core/commands/parttool.c | 12 +++++++++--- - grub-core/commands/regexp.c | 2 +- - grub-core/commands/search_wrap.c | 2 +- - grub-core/disk/diskfilter.c | 4 ++-- - grub-core/disk/ieee1275/ofdisk.c | 2 +- - grub-core/disk/ldm.c | 14 +++++++------- - grub-core/disk/luks.c | 2 +- - grub-core/disk/lvm.c | 8 ++++---- - grub-core/disk/xen/xendisk.c | 2 +- - grub-core/efiemu/loadcore.c | 2 +- - grub-core/efiemu/mm.c | 6 +++--- - grub-core/font/font.c | 3 +-- - grub-core/fs/affs.c | 6 +++--- - grub-core/fs/btrfs.c | 6 +++--- - grub-core/fs/hfs.c | 2 +- - grub-core/fs/hfsplus.c | 6 +++--- - grub-core/fs/iso9660.c | 2 +- - grub-core/fs/ntfs.c | 4 ++-- - grub-core/fs/sfs.c | 2 +- - grub-core/fs/tar.c | 2 +- - grub-core/fs/udf.c | 4 ++-- - grub-core/fs/zfs/zfs.c | 4 ++-- - grub-core/gfxmenu/gui_string_util.c | 2 +- - grub-core/gfxmenu/widget-box.c | 4 ++-- - grub-core/io/gzio.c | 2 +- - grub-core/kern/efi/efi.c | 6 +++--- - grub-core/kern/emu/hostdisk.c | 2 +- - grub-core/kern/fs.c | 2 +- - grub-core/kern/misc.c | 2 +- - grub-core/kern/parser.c | 2 +- - grub-core/kern/uboot/uboot.c | 2 +- - grub-core/lib/libgcrypt/cipher/ac.c | 8 ++++---- - grub-core/lib/libgcrypt/cipher/primegen.c | 4 ++-- - grub-core/lib/libgcrypt/cipher/pubkey.c | 4 ++-- - grub-core/lib/priority_queue.c | 2 +- - grub-core/lib/reed_solomon.c | 7 +++---- - grub-core/lib/relocator.c | 10 +++++----- - grub-core/lib/zstd/fse_decompress.c | 2 +- - grub-core/loader/arm/linux.c | 2 +- - grub-core/loader/efi/chainloader.c | 2 +- - grub-core/loader/i386/bsdXX.c | 2 +- - grub-core/loader/i386/xnu.c | 4 ++-- - grub-core/loader/macho.c | 2 +- - grub-core/loader/multiboot_elfxx.c | 2 +- - grub-core/loader/xnu.c | 2 +- - grub-core/mmap/mmap.c | 4 ++-- - grub-core/net/bootp.c | 2 +- - grub-core/net/dns.c | 10 +++++----- - grub-core/net/net.c | 4 ++-- - grub-core/normal/charset.c | 10 +++++----- - grub-core/normal/cmdline.c | 14 +++++++------- - grub-core/normal/menu_entry.c | 14 +++++++------- - grub-core/normal/menu_text.c | 4 ++-- - grub-core/normal/term.c | 4 ++-- - grub-core/osdep/linux/getroot.c | 6 +++--- - grub-core/osdep/windows/getroot.c | 2 +- - grub-core/osdep/windows/hostdisk.c | 4 ++-- - grub-core/osdep/windows/init.c | 2 +- - grub-core/osdep/windows/platform.c | 4 ++-- - grub-core/osdep/windows/relpath.c | 2 +- - grub-core/partmap/gpt.c | 2 +- - grub-core/partmap/msdos.c | 2 +- - grub-core/script/execute.c | 2 +- - grub-core/tests/fake_input.c | 2 +- - grub-core/tests/video_checksum.c | 6 +++--- - grub-core/video/capture.c | 2 +- - grub-core/video/emu/sdl.c | 2 +- - grub-core/video/i386/pc/vga.c | 2 +- - grub-core/video/readers/png.c | 2 +- - include/grub/unicode.h | 4 ++-- - util/getroot.c | 2 +- - util/grub-file.c | 2 +- - util/grub-fstest.c | 4 ++-- - util/grub-install-common.c | 2 +- - util/grub-install.c | 4 ++-- - util/grub-mkimagexx.c | 6 ++---- - util/grub-mkrescue.c | 4 ++-- - util/grub-mkstandalone.c | 2 +- - util/grub-pe2elf.c | 12 +++++------- - util/grub-probe.c | 4 ++-- - 85 files changed, 175 insertions(+), 174 deletions(-) - -diff --git a/grub-core/bus/usb/usbhub.c b/grub-core/bus/usb/usbhub.c -index 34a7ff1b5..a06cce302 100644 ---- a/grub-core/bus/usb/usbhub.c -+++ b/grub-core/bus/usb/usbhub.c -@@ -149,8 +149,8 @@ grub_usb_add_hub (grub_usb_device_t dev) - grub_usb_set_configuration (dev, 1); - - dev->nports = hubdesc.portcnt; -- dev->children = grub_zalloc (hubdesc.portcnt * sizeof (dev->children[0])); -- dev->ports = grub_zalloc (dev->nports * sizeof (dev->ports[0])); -+ dev->children = grub_calloc (hubdesc.portcnt, sizeof (dev->children[0])); -+ dev->ports = grub_calloc (dev->nports, sizeof (dev->ports[0])); - if (!dev->children || !dev->ports) - { - grub_free (dev->children); -@@ -268,8 +268,8 @@ grub_usb_controller_dev_register_iter (grub_usb_controller_t controller, void *d - - /* Query the number of ports the root Hub has. */ - hub->nports = controller->dev->hubports (controller); -- hub->devices = grub_zalloc (sizeof (hub->devices[0]) * hub->nports); -- hub->ports = grub_zalloc (sizeof (hub->ports[0]) * hub->nports); -+ hub->devices = grub_calloc (hub->nports, sizeof (hub->devices[0])); -+ hub->ports = grub_calloc (hub->nports, sizeof (hub->ports[0])); - if (!hub->devices || !hub->ports) - { - grub_free (hub->devices); -diff --git a/grub-core/commands/efi/lsefisystab.c b/grub-core/commands/efi/lsefisystab.c -index df1030221..cd81507f5 100644 ---- a/grub-core/commands/efi/lsefisystab.c -+++ b/grub-core/commands/efi/lsefisystab.c -@@ -71,7 +71,8 @@ grub_cmd_lsefisystab (struct grub_command *cmd __attribute__ ((unused)), - grub_printf ("Vendor: "); - - for (vendor_utf16 = st->firmware_vendor; *vendor_utf16; vendor_utf16++); -- vendor = grub_malloc (4 * (vendor_utf16 - st->firmware_vendor) + 1); -+ /* Allocate extra 3 bytes to simplify math. */ -+ vendor = grub_calloc (4, vendor_utf16 - st->firmware_vendor + 1); - if (!vendor) - return grub_errno; - *grub_utf16_to_utf8 ((grub_uint8_t *) vendor, st->firmware_vendor, -diff --git a/grub-core/commands/legacycfg.c b/grub-core/commands/legacycfg.c -index db7a8f002..5e3ec0d5e 100644 ---- a/grub-core/commands/legacycfg.c -+++ b/grub-core/commands/legacycfg.c -@@ -314,7 +314,7 @@ grub_cmd_legacy_kernel (struct grub_command *mycmd __attribute__ ((unused)), - if (argc < 2) - return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); - -- cutargs = grub_malloc (sizeof (cutargs[0]) * (argc - 1)); -+ cutargs = grub_calloc (argc - 1, sizeof (cutargs[0])); - if (!cutargs) - return grub_errno; - cutargc = argc - 1; -@@ -436,7 +436,7 @@ grub_cmd_legacy_kernel (struct grub_command *mycmd __attribute__ ((unused)), - { - char rbuf[3] = "-r"; - bsdargc = cutargc + 2; -- bsdargs = grub_malloc (sizeof (bsdargs[0]) * bsdargc); -+ bsdargs = grub_calloc (bsdargc, sizeof (bsdargs[0])); - if (!bsdargs) - { - err = grub_errno; -@@ -559,7 +559,7 @@ grub_cmd_legacy_initrdnounzip (struct grub_command *mycmd __attribute__ ((unused - return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("can't find command `%s'"), - "module"); - -- newargs = grub_malloc ((argc + 1) * sizeof (newargs[0])); -+ newargs = grub_calloc (argc + 1, sizeof (newargs[0])); - if (!newargs) - return grub_errno; - grub_memcpy (newargs + 1, args, argc * sizeof (newargs[0])); -diff --git a/grub-core/commands/menuentry.c b/grub-core/commands/menuentry.c -index 2c5363da7..9164df744 100644 ---- a/grub-core/commands/menuentry.c -+++ b/grub-core/commands/menuentry.c -@@ -154,7 +154,7 @@ grub_normal_add_menu_entry (int argc, const char **args, - goto fail; - - /* Save argc, args to pass as parameters to block arg later. */ -- menu_args = grub_malloc (sizeof (char*) * (argc + 1)); -+ menu_args = grub_calloc (argc + 1, sizeof (char *)); - if (! menu_args) - goto fail; - -diff --git a/grub-core/commands/nativedisk.c b/grub-core/commands/nativedisk.c -index 699447d11..7c8f97f6a 100644 ---- a/grub-core/commands/nativedisk.c -+++ b/grub-core/commands/nativedisk.c -@@ -195,7 +195,7 @@ grub_cmd_nativedisk (grub_command_t cmd __attribute__ ((unused)), - else - path_prefix = prefix; - -- mods = grub_malloc (argc * sizeof (mods[0])); -+ mods = grub_calloc (argc, sizeof (mods[0])); - if (!mods) - return grub_errno; - -diff --git a/grub-core/commands/parttool.c b/grub-core/commands/parttool.c -index 22b46b187..051e31320 100644 ---- a/grub-core/commands/parttool.c -+++ b/grub-core/commands/parttool.c -@@ -59,7 +59,13 @@ grub_parttool_register(const char *part_name, - for (nargs = 0; args[nargs].name != 0; nargs++); - cur->nargs = nargs; - cur->args = (struct grub_parttool_argdesc *) -- grub_malloc ((nargs + 1) * sizeof (struct grub_parttool_argdesc)); -+ grub_calloc (nargs + 1, sizeof (struct grub_parttool_argdesc)); -+ if (!cur->args) -+ { -+ grub_free (cur); -+ curhandle--; -+ return -1; -+ } - grub_memcpy (cur->args, args, - (nargs + 1) * sizeof (struct grub_parttool_argdesc)); - -@@ -257,7 +263,7 @@ grub_cmd_parttool (grub_command_t cmd __attribute__ ((unused)), - return err; - } - -- parsed = (int *) grub_zalloc (argc * sizeof (int)); -+ parsed = (int *) grub_calloc (argc, sizeof (int)); - - for (i = 1; i < argc; i++) - if (! parsed[i]) -@@ -290,7 +296,7 @@ grub_cmd_parttool (grub_command_t cmd __attribute__ ((unused)), - } - ptool = cur; - pargs = (struct grub_parttool_args *) -- grub_zalloc (ptool->nargs * sizeof (struct grub_parttool_args)); -+ grub_calloc (ptool->nargs, sizeof (struct grub_parttool_args)); - for (j = i; j < argc; j++) - if (! parsed[j]) - { -diff --git a/grub-core/commands/regexp.c b/grub-core/commands/regexp.c -index f00b184c8..4019164f3 100644 ---- a/grub-core/commands/regexp.c -+++ b/grub-core/commands/regexp.c -@@ -116,7 +116,7 @@ grub_cmd_regexp (grub_extcmd_context_t ctxt, int argc, char **args) - if (ret) - goto fail; - -- matches = grub_zalloc (sizeof (*matches) * (regex.re_nsub + 1)); -+ matches = grub_calloc (regex.re_nsub + 1, sizeof (*matches)); - if (! matches) - goto fail; - -diff --git a/grub-core/commands/search_wrap.c b/grub-core/commands/search_wrap.c -index d7fd26b94..47fc8eb99 100644 ---- a/grub-core/commands/search_wrap.c -+++ b/grub-core/commands/search_wrap.c -@@ -122,7 +122,7 @@ grub_cmd_search (grub_extcmd_context_t ctxt, int argc, char **args) - for (i = 0; state[SEARCH_HINT_BAREMETAL].args[i]; i++) - nhints++; - -- hints = grub_malloc (sizeof (hints[0]) * nhints); -+ hints = grub_calloc (nhints, sizeof (hints[0])); - if (!hints) - return grub_errno; - j = 0; -diff --git a/grub-core/disk/diskfilter.c b/grub-core/disk/diskfilter.c -index c3b578acf..68ca9e0be 100644 ---- a/grub-core/disk/diskfilter.c -+++ b/grub-core/disk/diskfilter.c -@@ -1134,7 +1134,7 @@ grub_diskfilter_make_raid (grub_size_t uuidlen, char *uuid, int nmemb, - array->lvs->segments->node_count = nmemb; - array->lvs->segments->raid_member_size = disk_size; - array->lvs->segments->nodes -- = grub_zalloc (nmemb * sizeof (array->lvs->segments->nodes[0])); -+ = grub_calloc (nmemb, sizeof (array->lvs->segments->nodes[0])); - array->lvs->segments->stripe_size = stripe_size; - for (i = 0; i < nmemb; i++) - { -@@ -1226,7 +1226,7 @@ insert_array (grub_disk_t disk, const struct grub_diskfilter_pv_id *id, - grub_partition_t p; - for (p = disk->partition; p; p = p->parent) - s++; -- pv->partmaps = xmalloc (s * sizeof (pv->partmaps[0])); -+ pv->partmaps = xcalloc (s, sizeof (pv->partmaps[0])); - s = 0; - for (p = disk->partition; p; p = p->parent) - pv->partmaps[s++] = xstrdup (p->partmap->name); -diff --git a/grub-core/disk/ieee1275/ofdisk.c b/grub-core/disk/ieee1275/ofdisk.c -index f73257e66..03674cb47 100644 ---- a/grub-core/disk/ieee1275/ofdisk.c -+++ b/grub-core/disk/ieee1275/ofdisk.c -@@ -297,7 +297,7 @@ dev_iterate (const struct grub_ieee1275_devalias *alias) - /* Power machines documentation specify 672 as maximum SAS disks in - one system. Using a slightly larger value to be safe. */ - table_size = 768; -- table = grub_malloc (table_size * sizeof (grub_uint64_t)); -+ table = grub_calloc (table_size, sizeof (grub_uint64_t)); - - if (!table) - { -diff --git a/grub-core/disk/ldm.c b/grub-core/disk/ldm.c -index 2a22d2d6c..e6323701a 100644 ---- a/grub-core/disk/ldm.c -+++ b/grub-core/disk/ldm.c -@@ -323,8 +323,8 @@ make_vg (grub_disk_t disk, - lv->segments->type = GRUB_DISKFILTER_MIRROR; - lv->segments->node_count = 0; - lv->segments->node_alloc = 8; -- lv->segments->nodes = grub_zalloc (sizeof (*lv->segments->nodes) -- * lv->segments->node_alloc); -+ lv->segments->nodes = grub_calloc (lv->segments->node_alloc, -+ sizeof (*lv->segments->nodes)); - if (!lv->segments->nodes) - goto fail2; - ptr = vblk[i].dynamic; -@@ -543,8 +543,8 @@ make_vg (grub_disk_t disk, - { - comp->segment_alloc = 8; - comp->segment_count = 0; -- comp->segments = grub_malloc (sizeof (*comp->segments) -- * comp->segment_alloc); -+ comp->segments = grub_calloc (comp->segment_alloc, -+ sizeof (*comp->segments)); - if (!comp->segments) - goto fail2; - } -@@ -590,8 +590,8 @@ make_vg (grub_disk_t disk, - } - comp->segments->node_count = read_int (ptr + 1, *ptr); - comp->segments->node_alloc = comp->segments->node_count; -- comp->segments->nodes = grub_zalloc (sizeof (*comp->segments->nodes) -- * comp->segments->node_alloc); -+ comp->segments->nodes = grub_calloc (comp->segments->node_alloc, -+ sizeof (*comp->segments->nodes)); - if (!lv->segments->nodes) - goto fail2; - } -@@ -1017,7 +1017,7 @@ grub_util_ldm_embed (struct grub_disk *disk, unsigned int *nsectors, - *nsectors = lv->size; - if (*nsectors > max_nsectors) - *nsectors = max_nsectors; -- *sectors = grub_malloc (*nsectors * sizeof (**sectors)); -+ *sectors = grub_calloc (*nsectors, sizeof (**sectors)); - if (!*sectors) - return grub_errno; - for (i = 0; i < *nsectors; i++) -diff --git a/grub-core/disk/luks.c b/grub-core/disk/luks.c -index 86c50c612..18b3a8bb1 100644 ---- a/grub-core/disk/luks.c -+++ b/grub-core/disk/luks.c -@@ -336,7 +336,7 @@ luks_recover_key (grub_disk_t source, - && grub_be_to_cpu32 (header.keyblock[i].stripes) > max_stripes) - max_stripes = grub_be_to_cpu32 (header.keyblock[i].stripes); - -- split_key = grub_malloc (keysize * max_stripes); -+ split_key = grub_calloc (keysize, max_stripes); - if (!split_key) - return grub_errno; - -diff --git a/grub-core/disk/lvm.c b/grub-core/disk/lvm.c -index 7b265c780..d1df640b3 100644 ---- a/grub-core/disk/lvm.c -+++ b/grub-core/disk/lvm.c -@@ -173,7 +173,7 @@ grub_lvm_detect (grub_disk_t disk, - first one. */ - - /* Allocate buffer space for the circular worst-case scenario. */ -- metadatabuf = grub_malloc (2 * mda_size); -+ metadatabuf = grub_calloc (2, mda_size); - if (! metadatabuf) - goto fail; - -@@ -426,7 +426,7 @@ grub_lvm_detect (grub_disk_t disk, - #endif - goto lvs_fail; - } -- lv->segments = grub_zalloc (sizeof (*seg) * lv->segment_count); -+ lv->segments = grub_calloc (lv->segment_count, sizeof (*seg)); - seg = lv->segments; - - for (i = 0; i < lv->segment_count; i++) -@@ -483,8 +483,8 @@ grub_lvm_detect (grub_disk_t disk, - if (seg->node_count != 1) - seg->stripe_size = grub_lvm_getvalue (&p, "stripe_size = "); - -- seg->nodes = grub_zalloc (sizeof (*stripe) -- * seg->node_count); -+ seg->nodes = grub_calloc (seg->node_count, -+ sizeof (*stripe)); - stripe = seg->nodes; - - p = grub_strstr (p, "stripes = ["); -diff --git a/grub-core/disk/xen/xendisk.c b/grub-core/disk/xen/xendisk.c -index 48476cbbf..d6612eebd 100644 ---- a/grub-core/disk/xen/xendisk.c -+++ b/grub-core/disk/xen/xendisk.c -@@ -426,7 +426,7 @@ grub_xendisk_init (void) - if (!ctr) - return; - -- virtdisks = grub_malloc (ctr * sizeof (virtdisks[0])); -+ virtdisks = grub_calloc (ctr, sizeof (virtdisks[0])); - if (!virtdisks) - return; - if (grub_xenstore_dir ("device/vbd", fill, &ctr)) -diff --git a/grub-core/efiemu/loadcore.c b/grub-core/efiemu/loadcore.c -index 44085ef81..2b924623f 100644 ---- a/grub-core/efiemu/loadcore.c -+++ b/grub-core/efiemu/loadcore.c -@@ -201,7 +201,7 @@ grub_efiemu_count_symbols (const Elf_Ehdr *e) - - grub_efiemu_nelfsyms = (unsigned) s->sh_size / (unsigned) s->sh_entsize; - grub_efiemu_elfsyms = (struct grub_efiemu_elf_sym *) -- grub_malloc (sizeof (struct grub_efiemu_elf_sym) * grub_efiemu_nelfsyms); -+ grub_calloc (grub_efiemu_nelfsyms, sizeof (struct grub_efiemu_elf_sym)); - - /* Relocators */ - for (i = 0, s = (Elf_Shdr *) ((char *) e + e->e_shoff); -diff --git a/grub-core/efiemu/mm.c b/grub-core/efiemu/mm.c -index 52a032f7b..9b8e0d0ad 100644 ---- a/grub-core/efiemu/mm.c -+++ b/grub-core/efiemu/mm.c -@@ -554,11 +554,11 @@ grub_efiemu_mmap_sort_and_uniq (void) - /* Initialize variables*/ - grub_memset (present, 0, sizeof (int) * GRUB_EFI_MAX_MEMORY_TYPE); - scanline_events = (struct grub_efiemu_mmap_scan *) -- grub_malloc (sizeof (struct grub_efiemu_mmap_scan) * 2 * mmap_num); -+ grub_calloc (mmap_num, sizeof (struct grub_efiemu_mmap_scan) * 2); - - /* Number of chunks can't increase more than by factor of 2 */ - result = (grub_efi_memory_descriptor_t *) -- grub_malloc (sizeof (grub_efi_memory_descriptor_t) * 2 * mmap_num); -+ grub_calloc (mmap_num, sizeof (grub_efi_memory_descriptor_t) * 2); - if (!result || !scanline_events) - { - grub_free (result); -@@ -660,7 +660,7 @@ grub_efiemu_mm_do_alloc (void) - - /* Preallocate mmap */ - efiemu_mmap = (grub_efi_memory_descriptor_t *) -- grub_malloc (mmap_reserved_size * sizeof (grub_efi_memory_descriptor_t)); -+ grub_calloc (mmap_reserved_size, sizeof (grub_efi_memory_descriptor_t)); - if (!efiemu_mmap) - { - grub_efiemu_unload (); -diff --git a/grub-core/font/font.c b/grub-core/font/font.c -index 85a292557..8e118b315 100644 ---- a/grub-core/font/font.c -+++ b/grub-core/font/font.c -@@ -293,8 +293,7 @@ load_font_index (grub_file_t file, grub_uint32_t sect_length, struct - font->num_chars = sect_length / FONT_CHAR_INDEX_ENTRY_SIZE; - - /* Allocate the character index array. */ -- font->char_index = grub_malloc (font->num_chars -- * sizeof (struct char_index_entry)); -+ font->char_index = grub_calloc (font->num_chars, sizeof (struct char_index_entry)); - if (!font->char_index) - return 1; - font->bmp_idx = grub_malloc (0x10000 * sizeof (grub_uint16_t)); -diff --git a/grub-core/fs/affs.c b/grub-core/fs/affs.c -index 6b6a2bc91..220b3712f 100644 ---- a/grub-core/fs/affs.c -+++ b/grub-core/fs/affs.c -@@ -301,7 +301,7 @@ grub_affs_read_symlink (grub_fshelp_node_t node) - return 0; - } - latin1[symlink_size] = 0; -- utf8 = grub_malloc (symlink_size * GRUB_MAX_UTF8_PER_LATIN1 + 1); -+ utf8 = grub_calloc (GRUB_MAX_UTF8_PER_LATIN1 + 1, symlink_size); - if (!utf8) - { - grub_free (latin1); -@@ -422,7 +422,7 @@ grub_affs_iterate_dir (grub_fshelp_node_t dir, - return 1; - } - -- hashtable = grub_zalloc (data->htsize * sizeof (*hashtable)); -+ hashtable = grub_calloc (data->htsize, sizeof (*hashtable)); - if (!hashtable) - return 1; - -@@ -628,7 +628,7 @@ grub_affs_label (grub_device_t device, char **label) - len = file.namelen; - if (len > sizeof (file.name)) - len = sizeof (file.name); -- *label = grub_malloc (len * GRUB_MAX_UTF8_PER_LATIN1 + 1); -+ *label = grub_calloc (GRUB_MAX_UTF8_PER_LATIN1 + 1, len); - if (*label) - *grub_latin1_to_utf8 ((grub_uint8_t *) *label, file.name, len) = '\0'; - } -diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 63f9657a6..4b8380439 100644 ---- a/grub-core/fs/btrfs.c -+++ b/grub-core/fs/btrfs.c -@@ -415,7 +415,7 @@ lower_bound (struct grub_btrfs_data *data, - { - desc->allocated = 16; - desc->depth = 0; -- desc->data = grub_malloc (sizeof (desc->data[0]) * desc->allocated); -+ desc->data = grub_calloc (desc->allocated, sizeof (desc->data[0])); - if (!desc->data) - return grub_errno; - } -@@ -754,7 +754,7 @@ raid56_read_retry (struct grub_btrfs_data *data, - grub_err_t ret = GRUB_ERR_OUT_OF_MEMORY; - grub_uint64_t i, failed_devices; - -- buffers = grub_zalloc (sizeof(*buffers) * nstripes); -+ buffers = grub_calloc (nstripes, sizeof (*buffers)); - if (!buffers) - goto cleanup; - -@@ -2167,7 +2167,7 @@ grub_btrfs_embed (grub_device_t device __attribute__ ((unused)), - *nsectors = 64 * 2 - 1; - if (*nsectors > max_nsectors) - *nsectors = max_nsectors; -- *sectors = grub_malloc (*nsectors * sizeof (**sectors)); -+ *sectors = grub_calloc (*nsectors, sizeof (**sectors)); - if (!*sectors) - return grub_errno; - for (i = 0; i < *nsectors; i++) -diff --git a/grub-core/fs/hfs.c b/grub-core/fs/hfs.c -index ac0a40990..3fe842b4d 100644 ---- a/grub-core/fs/hfs.c -+++ b/grub-core/fs/hfs.c -@@ -1360,7 +1360,7 @@ grub_hfs_label (grub_device_t device, char **label) - grub_size_t len = data->sblock.volname[0]; - if (len > sizeof (data->sblock.volname) - 1) - len = sizeof (data->sblock.volname) - 1; -- *label = grub_malloc (len * MAX_UTF8_PER_MAC_ROMAN + 1); -+ *label = grub_calloc (MAX_UTF8_PER_MAC_ROMAN + 1, len); - if (*label) - macroman_to_utf8 (*label, data->sblock.volname + 1, - len + 1, 0); -diff --git a/grub-core/fs/hfsplus.c b/grub-core/fs/hfsplus.c -index 54786bb1c..dae43becc 100644 ---- a/grub-core/fs/hfsplus.c -+++ b/grub-core/fs/hfsplus.c -@@ -720,7 +720,7 @@ list_nodes (void *record, void *hook_arg) - if (! filename) - return 0; - -- keyname = grub_malloc (grub_be_to_cpu16 (catkey->namelen) * sizeof (*keyname)); -+ keyname = grub_calloc (grub_be_to_cpu16 (catkey->namelen), sizeof (*keyname)); - if (!keyname) - { - grub_free (filename); -@@ -1007,7 +1007,7 @@ grub_hfsplus_label (grub_device_t device, char **label) - grub_hfsplus_btree_recptr (&data->catalog_tree, node, ptr); - - label_len = grub_be_to_cpu16 (catkey->namelen); -- label_name = grub_malloc (label_len * sizeof (*label_name)); -+ label_name = grub_calloc (label_len, sizeof (*label_name)); - if (!label_name) - { - grub_free (node); -@@ -1029,7 +1029,7 @@ grub_hfsplus_label (grub_device_t device, char **label) - } - } - -- *label = grub_malloc (label_len * GRUB_MAX_UTF8_PER_UTF16 + 1); -+ *label = grub_calloc (label_len, GRUB_MAX_UTF8_PER_UTF16 + 1); - if (! *label) - { - grub_free (label_name); -diff --git a/grub-core/fs/iso9660.c b/grub-core/fs/iso9660.c -index 49c0c632b..4f1b52a55 100644 ---- a/grub-core/fs/iso9660.c -+++ b/grub-core/fs/iso9660.c -@@ -331,7 +331,7 @@ grub_iso9660_convert_string (grub_uint8_t *us, int len) - int i; - grub_uint16_t t[MAX_NAMELEN / 2 + 1]; - -- p = grub_malloc (len * GRUB_MAX_UTF8_PER_UTF16 + 1); -+ p = grub_calloc (len, GRUB_MAX_UTF8_PER_UTF16 + 1); - if (! p) - return NULL; - -diff --git a/grub-core/fs/ntfs.c b/grub-core/fs/ntfs.c -index fc4e1f678..2f34f76da 100644 ---- a/grub-core/fs/ntfs.c -+++ b/grub-core/fs/ntfs.c -@@ -556,8 +556,8 @@ get_utf8 (grub_uint8_t *in, grub_size_t len) - grub_uint16_t *tmp; - grub_size_t i; - -- buf = grub_malloc (len * GRUB_MAX_UTF8_PER_UTF16 + 1); -- tmp = grub_malloc (len * sizeof (tmp[0])); -+ buf = grub_calloc (len, GRUB_MAX_UTF8_PER_UTF16 + 1); -+ tmp = grub_calloc (len, sizeof (tmp[0])); - if (!buf || !tmp) - { - grub_free (buf); -diff --git a/grub-core/fs/sfs.c b/grub-core/fs/sfs.c -index 50c1fe72f..90f7fb379 100644 ---- a/grub-core/fs/sfs.c -+++ b/grub-core/fs/sfs.c -@@ -266,7 +266,7 @@ grub_sfs_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock) - node->next_extent = node->block; - node->cache_size = 0; - -- node->cache = grub_malloc (sizeof (node->cache[0]) * cache_size); -+ node->cache = grub_calloc (cache_size, sizeof (node->cache[0])); - if (!node->cache) - { - grub_errno = 0; -diff --git a/grub-core/fs/tar.c b/grub-core/fs/tar.c -index 7d63e0c99..c551ed6b5 100644 ---- a/grub-core/fs/tar.c -+++ b/grub-core/fs/tar.c -@@ -120,7 +120,7 @@ grub_cpio_find_file (struct grub_archelp_data *data, char **name, - if (data->linkname_alloc < linksize + 1) - { - char *n; -- n = grub_malloc (2 * (linksize + 1)); -+ n = grub_calloc (2, linksize + 1); - if (!n) - return grub_errno; - grub_free (data->linkname); -diff --git a/grub-core/fs/udf.c b/grub-core/fs/udf.c -index dc8b6e2d1..a83761674 100644 ---- a/grub-core/fs/udf.c -+++ b/grub-core/fs/udf.c -@@ -873,7 +873,7 @@ read_string (const grub_uint8_t *raw, grub_size_t sz, char *outbuf) - { - unsigned i; - utf16len = sz - 1; -- utf16 = grub_malloc (utf16len * sizeof (utf16[0])); -+ utf16 = grub_calloc (utf16len, sizeof (utf16[0])); - if (!utf16) - return NULL; - for (i = 0; i < utf16len; i++) -@@ -883,7 +883,7 @@ read_string (const grub_uint8_t *raw, grub_size_t sz, char *outbuf) - { - unsigned i; - utf16len = (sz - 1) / 2; -- utf16 = grub_malloc (utf16len * sizeof (utf16[0])); -+ utf16 = grub_calloc (utf16len, sizeof (utf16[0])); - if (!utf16) - return NULL; - for (i = 0; i < utf16len; i++) -diff --git a/grub-core/fs/zfs/zfs.c b/grub-core/fs/zfs/zfs.c -index 2f72e42bf..381dde556 100644 ---- a/grub-core/fs/zfs/zfs.c -+++ b/grub-core/fs/zfs/zfs.c -@@ -3325,7 +3325,7 @@ dnode_get_fullpath (const char *fullpath, struct subvolume *subvol, - } - subvol->nkeys = 0; - zap_iterate (&keychain_dn, 8, count_zap_keys, &ctx, data); -- subvol->keyring = grub_zalloc (subvol->nkeys * sizeof (subvol->keyring[0])); -+ subvol->keyring = grub_calloc (subvol->nkeys, sizeof (subvol->keyring[0])); - if (!subvol->keyring) - { - grub_free (fsname); -@@ -4336,7 +4336,7 @@ grub_zfs_embed (grub_device_t device __attribute__ ((unused)), - *nsectors = (VDEV_BOOT_SIZE >> GRUB_DISK_SECTOR_BITS); - if (*nsectors > max_nsectors) - *nsectors = max_nsectors; -- *sectors = grub_malloc (*nsectors * sizeof (**sectors)); -+ *sectors = grub_calloc (*nsectors, sizeof (**sectors)); - if (!*sectors) - return grub_errno; - for (i = 0; i < *nsectors; i++) -diff --git a/grub-core/gfxmenu/gui_string_util.c b/grub-core/gfxmenu/gui_string_util.c -index a9a415e31..ba1e1eab3 100644 ---- a/grub-core/gfxmenu/gui_string_util.c -+++ b/grub-core/gfxmenu/gui_string_util.c -@@ -55,7 +55,7 @@ canonicalize_path (const char *path) - if (*p == '/') - components++; - -- char **path_array = grub_malloc (components * sizeof (*path_array)); -+ char **path_array = grub_calloc (components, sizeof (*path_array)); - if (! path_array) - return 0; - -diff --git a/grub-core/gfxmenu/widget-box.c b/grub-core/gfxmenu/widget-box.c -index b60602889..470597ded 100644 ---- a/grub-core/gfxmenu/widget-box.c -+++ b/grub-core/gfxmenu/widget-box.c -@@ -303,10 +303,10 @@ grub_gfxmenu_create_box (const char *pixmaps_prefix, - box->content_height = 0; - box->raw_pixmaps = - (struct grub_video_bitmap **) -- grub_malloc (BOX_NUM_PIXMAPS * sizeof (struct grub_video_bitmap *)); -+ grub_calloc (BOX_NUM_PIXMAPS, sizeof (struct grub_video_bitmap *)); - box->scaled_pixmaps = - (struct grub_video_bitmap **) -- grub_malloc (BOX_NUM_PIXMAPS * sizeof (struct grub_video_bitmap *)); -+ grub_calloc (BOX_NUM_PIXMAPS, sizeof (struct grub_video_bitmap *)); - - /* Initialize all pixmap pointers to NULL so that proper destruction can - be performed if an error is encountered partway through construction. */ -diff --git a/grub-core/io/gzio.c b/grub-core/io/gzio.c -index 6208a9763..43d98a7bd 100644 ---- a/grub-core/io/gzio.c -+++ b/grub-core/io/gzio.c -@@ -554,7 +554,7 @@ huft_build (unsigned *b, /* code lengths in bits (all assumed <= BMAX) */ - z = 1 << j; /* table entries for j-bit table */ - - /* allocate and link in new table */ -- q = (struct huft *) grub_zalloc ((z + 1) * sizeof (struct huft)); -+ q = (struct huft *) grub_calloc (z + 1, sizeof (struct huft)); - if (! q) - { - if (h) -diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index 96204e39b..ad170c7ce 100644 ---- a/grub-core/kern/efi/efi.c -+++ b/grub-core/kern/efi/efi.c -@@ -202,7 +202,7 @@ grub_efi_set_variable(const char *var, const grub_efi_guid_t *guid, - - len = grub_strlen (var); - len16 = len * GRUB_MAX_UTF16_PER_UTF8; -- var16 = grub_malloc ((len16 + 1) * sizeof (var16[0])); -+ var16 = grub_calloc (len16 + 1, sizeof (var16[0])); - if (!var16) - return grub_errno; - len16 = grub_utf8_to_utf16 (var16, len16, (grub_uint8_t *) var, len, NULL); -@@ -237,7 +237,7 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, - - len = grub_strlen (var); - len16 = len * GRUB_MAX_UTF16_PER_UTF8; -- var16 = grub_malloc ((len16 + 1) * sizeof (var16[0])); -+ var16 = grub_calloc (len16 + 1, sizeof (var16[0])); - if (!var16) - return NULL; - len16 = grub_utf8_to_utf16 (var16, len16, (grub_uint8_t *) var, len, NULL); -@@ -411,7 +411,7 @@ grub_efi_get_filename (grub_efi_device_path_t *dp0) - while (len > 0 && fp->path_name[len - 1] == 0) - len--; - -- dup_name = grub_malloc (len * sizeof (*dup_name)); -+ dup_name = grub_calloc (len, sizeof (*dup_name)); - if (!dup_name) - { - grub_free (name); -diff --git a/grub-core/kern/emu/hostdisk.c b/grub-core/kern/emu/hostdisk.c -index 8ac523953..f90b6c9ce 100644 ---- a/grub-core/kern/emu/hostdisk.c -+++ b/grub-core/kern/emu/hostdisk.c -@@ -627,7 +627,7 @@ static char * - grub_util_path_concat_real (size_t n, int ext, va_list ap) - { - size_t totlen = 0; -- char **l = xmalloc ((n + ext) * sizeof (l[0])); -+ char **l = xcalloc (n + ext, sizeof (l[0])); - char *r, *p, *pi; - size_t i; - int first = 1; -diff --git a/grub-core/kern/fs.c b/grub-core/kern/fs.c -index 2b85f4950..f90be6566 100644 ---- a/grub-core/kern/fs.c -+++ b/grub-core/kern/fs.c -@@ -151,7 +151,7 @@ grub_fs_blocklist_open (grub_file_t file, const char *name) - while (p); - - /* Allocate a block list. */ -- blocks = grub_zalloc (sizeof (struct grub_fs_block) * (num + 1)); -+ blocks = grub_calloc (num + 1, sizeof (struct grub_fs_block)); - if (! blocks) - return 0; - -diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index 18cad5803..83c068d61 100644 ---- a/grub-core/kern/misc.c -+++ b/grub-core/kern/misc.c -@@ -691,7 +691,7 @@ parse_printf_args (const char *fmt0, struct printf_args *args, - args->ptr = args->prealloc; - else - { -- args->ptr = grub_malloc (args->count * sizeof (args->ptr[0])); -+ args->ptr = grub_calloc (args->count, sizeof (args->ptr[0])); - if (!args->ptr) - { - grub_errno = GRUB_ERR_NONE; -diff --git a/grub-core/kern/parser.c b/grub-core/kern/parser.c -index 78175aac2..619db3122 100644 ---- a/grub-core/kern/parser.c -+++ b/grub-core/kern/parser.c -@@ -213,7 +213,7 @@ grub_parser_split_cmdline (const char *cmdline, - return grub_errno; - grub_memcpy (args, buffer, bp - buffer); - -- *argv = grub_malloc (sizeof (char *) * (*argc + 1)); -+ *argv = grub_calloc (*argc + 1, sizeof (char *)); - if (!*argv) - { - grub_free (args); -diff --git a/grub-core/kern/uboot/uboot.c b/grub-core/kern/uboot/uboot.c -index be4816fe6..aac8f9ae1 100644 ---- a/grub-core/kern/uboot/uboot.c -+++ b/grub-core/kern/uboot/uboot.c -@@ -133,7 +133,7 @@ grub_uboot_dev_enum (void) - return num_devices; - - max_devices = 2; -- enum_devices = grub_malloc (sizeof(struct device_info) * max_devices); -+ enum_devices = grub_calloc (max_devices, sizeof(struct device_info)); - if (!enum_devices) - return 0; - -diff --git a/grub-core/lib/libgcrypt/cipher/ac.c b/grub-core/lib/libgcrypt/cipher/ac.c -index f5e946a2d..63f6fcd11 100644 ---- a/grub-core/lib/libgcrypt/cipher/ac.c -+++ b/grub-core/lib/libgcrypt/cipher/ac.c -@@ -185,7 +185,7 @@ ac_data_mpi_copy (gcry_ac_mpi_t *data_mpis, unsigned int data_mpis_n, - gcry_mpi_t mpi; - char *label; - -- data_mpis_new = gcry_malloc (sizeof (*data_mpis_new) * data_mpis_n); -+ data_mpis_new = gcry_calloc (data_mpis_n, sizeof (*data_mpis_new)); - if (! data_mpis_new) - { - err = gcry_error_from_errno (errno); -@@ -572,7 +572,7 @@ _gcry_ac_data_to_sexp (gcry_ac_data_t data, gcry_sexp_t *sexp, - } - - /* Add MPI list. */ -- arg_list = gcry_malloc (sizeof (*arg_list) * (data_n + 1)); -+ arg_list = gcry_calloc (data_n + 1, sizeof (*arg_list)); - if (! arg_list) - { - err = gcry_error_from_errno (errno); -@@ -1283,7 +1283,7 @@ ac_data_construct (const char *identifier, int include_flags, - /* We build a list of arguments to pass to - gcry_sexp_build_array(). */ - data_length = _gcry_ac_data_length (data); -- arg_list = gcry_malloc (sizeof (*arg_list) * (data_length * 2)); -+ arg_list = gcry_calloc (data_length, sizeof (*arg_list) * 2); - if (! arg_list) - { - err = gcry_error_from_errno (errno); -@@ -1593,7 +1593,7 @@ _gcry_ac_key_pair_generate (gcry_ac_handle_t handle, unsigned int nbits, - arg_list_n += 2; - - /* Allocate list. */ -- arg_list = gcry_malloc (sizeof (*arg_list) * arg_list_n); -+ arg_list = gcry_calloc (arg_list_n, sizeof (*arg_list)); - if (! arg_list) - { - err = gcry_error_from_errno (errno); -diff --git a/grub-core/lib/libgcrypt/cipher/primegen.c b/grub-core/lib/libgcrypt/cipher/primegen.c -index 2788e349f..b12e79b19 100644 ---- a/grub-core/lib/libgcrypt/cipher/primegen.c -+++ b/grub-core/lib/libgcrypt/cipher/primegen.c -@@ -383,7 +383,7 @@ prime_generate_internal (int need_q_factor, - } - - /* Allocate an array to track pool usage. */ -- pool_in_use = gcry_malloc (n * sizeof *pool_in_use); -+ pool_in_use = gcry_calloc (n, sizeof *pool_in_use); - if (!pool_in_use) - { - err = gpg_err_code_from_errno (errno); -@@ -765,7 +765,7 @@ gen_prime (unsigned int nbits, int secret, int randomlevel, - if (nbits < 16) - log_fatal ("can't generate a prime with less than %d bits\n", 16); - -- mods = gcry_xmalloc( no_of_small_prime_numbers * sizeof *mods ); -+ mods = gcry_xcalloc( no_of_small_prime_numbers, sizeof *mods); - /* Make nbits fit into gcry_mpi_t implementation. */ - val_2 = mpi_alloc_set_ui( 2 ); - val_3 = mpi_alloc_set_ui( 3); -diff --git a/grub-core/lib/libgcrypt/cipher/pubkey.c b/grub-core/lib/libgcrypt/cipher/pubkey.c -index 910982141..ca087ad75 100644 ---- a/grub-core/lib/libgcrypt/cipher/pubkey.c -+++ b/grub-core/lib/libgcrypt/cipher/pubkey.c -@@ -2941,7 +2941,7 @@ gcry_pk_encrypt (gcry_sexp_t *r_ciph, gcry_sexp_t s_data, gcry_sexp_t s_pkey) - * array to a format string, so we have to do it this way :-(. */ - /* FIXME: There is now such a format specifier, so we can - change the code to be more clear. */ -- arg_list = malloc (nelem * sizeof *arg_list); -+ arg_list = calloc (nelem, sizeof *arg_list); - if (!arg_list) - { - rc = gpg_err_code_from_syserror (); -@@ -3233,7 +3233,7 @@ gcry_pk_sign (gcry_sexp_t *r_sig, gcry_sexp_t s_hash, gcry_sexp_t s_skey) - } - strcpy (p, "))"); - -- arg_list = malloc (nelem * sizeof *arg_list); -+ arg_list = calloc (nelem, sizeof *arg_list); - if (!arg_list) - { - rc = gpg_err_code_from_syserror (); -diff --git a/grub-core/lib/priority_queue.c b/grub-core/lib/priority_queue.c -index 659be0b7f..7d5e7c05a 100644 ---- a/grub-core/lib/priority_queue.c -+++ b/grub-core/lib/priority_queue.c -@@ -92,7 +92,7 @@ grub_priority_queue_new (grub_size_t elsize, - { - struct grub_priority_queue *ret; - void *els; -- els = grub_malloc (elsize * 8); -+ els = grub_calloc (8, elsize); - if (!els) - return 0; - ret = (struct grub_priority_queue *) grub_malloc (sizeof (*ret)); -diff --git a/grub-core/lib/reed_solomon.c b/grub-core/lib/reed_solomon.c -index ee9fa7b4f..467305b46 100644 ---- a/grub-core/lib/reed_solomon.c -+++ b/grub-core/lib/reed_solomon.c -@@ -20,6 +20,7 @@ - #include - #include - #include -+#define xcalloc calloc - #define xmalloc malloc - #define grub_memset memset - #define grub_memcpy memcpy -@@ -158,11 +159,9 @@ rs_encode (gf_single_t *data, grub_size_t s, grub_size_t rs) - gf_single_t *rs_polynomial; - int i, j; - gf_single_t *m; -- m = xmalloc ((s + rs) * sizeof (gf_single_t)); -+ m = xcalloc (s + rs, sizeof (gf_single_t)); - grub_memcpy (m, data, s * sizeof (gf_single_t)); -- grub_memset (m + s, 0, rs * sizeof (gf_single_t)); -- rs_polynomial = xmalloc ((rs + 1) * sizeof (gf_single_t)); -- grub_memset (rs_polynomial, 0, (rs + 1) * sizeof (gf_single_t)); -+ rs_polynomial = xcalloc (rs + 1, sizeof (gf_single_t)); - rs_polynomial[rs] = 1; - /* Multiply with X - a^r */ - for (j = 0; j < rs; j++) -diff --git a/grub-core/lib/relocator.c b/grub-core/lib/relocator.c -index ea3ebc719..5847aac36 100644 ---- a/grub-core/lib/relocator.c -+++ b/grub-core/lib/relocator.c -@@ -495,9 +495,9 @@ malloc_in_range (struct grub_relocator *rel, - } - #endif - -- eventt = grub_malloc (maxevents * sizeof (events[0])); -+ eventt = grub_calloc (maxevents, sizeof (events[0])); - counter = grub_malloc ((DIGITSORT_MASK + 2) * sizeof (counter[0])); -- events = grub_malloc (maxevents * sizeof (events[0])); -+ events = grub_calloc (maxevents, sizeof (events[0])); - if (!events || !eventt || !counter) - { - grub_dprintf ("relocator", "events or counter allocation failed %d\n", -@@ -963,7 +963,7 @@ malloc_in_range (struct grub_relocator *rel, - #endif - unsigned cural = 0; - int oom = 0; -- res->subchunks = grub_malloc (sizeof (res->subchunks[0]) * nallocs); -+ res->subchunks = grub_calloc (nallocs, sizeof (res->subchunks[0])); - if (!res->subchunks) - oom = 1; - res->nsubchunks = nallocs; -@@ -1562,8 +1562,8 @@ grub_relocator_prepare_relocs (struct grub_relocator *rel, grub_addr_t addr, - count[(chunk->src & 0xff) + 1]++; - } - } -- from = grub_malloc (nchunks * sizeof (sorted[0])); -- to = grub_malloc (nchunks * sizeof (sorted[0])); -+ from = grub_calloc (nchunks, sizeof (sorted[0])); -+ to = grub_calloc (nchunks, sizeof (sorted[0])); - if (!from || !to) - { - grub_free (from); -diff --git a/grub-core/lib/zstd/fse_decompress.c b/grub-core/lib/zstd/fse_decompress.c -index 72bbead5b..2227b84bc 100644 ---- a/grub-core/lib/zstd/fse_decompress.c -+++ b/grub-core/lib/zstd/fse_decompress.c -@@ -82,7 +82,7 @@ - FSE_DTable* FSE_createDTable (unsigned tableLog) - { - if (tableLog > FSE_TABLELOG_ABSOLUTE_MAX) tableLog = FSE_TABLELOG_ABSOLUTE_MAX; -- return (FSE_DTable*)malloc( FSE_DTABLE_SIZE_U32(tableLog) * sizeof (U32) ); -+ return (FSE_DTable*)calloc( FSE_DTABLE_SIZE_U32(tableLog), sizeof (U32) ); - } - - void FSE_freeDTable (FSE_DTable* dt) -diff --git a/grub-core/loader/arm/linux.c b/grub-core/loader/arm/linux.c -index 092e8e307..979d425df 100644 ---- a/grub-core/loader/arm/linux.c -+++ b/grub-core/loader/arm/linux.c -@@ -82,7 +82,7 @@ linux_prepare_atag (void *target_atag) - - /* some place for cmdline, initrd and terminator. */ - tmp_size = get_atag_size (atag_orig) + 20 + (arg_size) / 4; -- tmp_atag = grub_malloc (tmp_size * sizeof (grub_uint32_t)); -+ tmp_atag = grub_calloc (tmp_size, sizeof (grub_uint32_t)); - if (!tmp_atag) - return grub_errno; - -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index cd92ea3f2..daf8c6b54 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -116,7 +116,7 @@ copy_file_path (grub_efi_file_path_device_path_t *fp, - fp->header.type = GRUB_EFI_MEDIA_DEVICE_PATH_TYPE; - fp->header.subtype = GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE; - -- path_name = grub_malloc (len * GRUB_MAX_UTF16_PER_UTF8 * sizeof (*path_name)); -+ path_name = grub_calloc (len, GRUB_MAX_UTF16_PER_UTF8 * sizeof (*path_name)); - if (!path_name) - return; - -diff --git a/grub-core/loader/i386/bsdXX.c b/grub-core/loader/i386/bsdXX.c -index af6741d15..a8d8bf7da 100644 ---- a/grub-core/loader/i386/bsdXX.c -+++ b/grub-core/loader/i386/bsdXX.c -@@ -48,7 +48,7 @@ read_headers (grub_file_t file, const char *filename, Elf_Ehdr *e, char **shdr) - if (e->e_ident[EI_CLASS] != SUFFIX (ELFCLASS)) - return grub_error (GRUB_ERR_BAD_OS, N_("invalid arch-dependent ELF magic")); - -- *shdr = grub_malloc ((grub_uint32_t) e->e_shnum * e->e_shentsize); -+ *shdr = grub_calloc (e->e_shnum, e->e_shentsize); - if (! *shdr) - return grub_errno; - -diff --git a/grub-core/loader/i386/xnu.c b/grub-core/loader/i386/xnu.c -index e64ed08f5..b7d176b5d 100644 ---- a/grub-core/loader/i386/xnu.c -+++ b/grub-core/loader/i386/xnu.c -@@ -295,7 +295,7 @@ grub_xnu_devprop_add_property_utf8 (struct grub_xnu_devprop_device_descriptor *d - return grub_errno; - - len = grub_strlen (name); -- utf16 = grub_malloc (sizeof (grub_uint16_t) * len); -+ utf16 = grub_calloc (len, sizeof (grub_uint16_t)); - if (!utf16) - { - grub_free (utf8); -@@ -331,7 +331,7 @@ grub_xnu_devprop_add_property_utf16 (struct grub_xnu_devprop_device_descriptor * - grub_uint16_t *utf16; - grub_err_t err; - -- utf16 = grub_malloc (sizeof (grub_uint16_t) * namelen); -+ utf16 = grub_calloc (namelen, sizeof (grub_uint16_t)); - if (!utf16) - return grub_errno; - grub_memcpy (utf16, name, sizeof (grub_uint16_t) * namelen); -diff --git a/grub-core/loader/macho.c b/grub-core/loader/macho.c -index 085f9c689..05710c48e 100644 ---- a/grub-core/loader/macho.c -+++ b/grub-core/loader/macho.c -@@ -97,7 +97,7 @@ grub_macho_file (grub_file_t file, const char *filename, int is_64bit) - if (grub_file_seek (macho->file, sizeof (struct grub_macho_fat_header)) - == (grub_off_t) -1) - goto fail; -- archs = grub_malloc (sizeof (struct grub_macho_fat_arch) * narchs); -+ archs = grub_calloc (narchs, sizeof (struct grub_macho_fat_arch)); - if (!archs) - goto fail; - if (grub_file_read (macho->file, archs, -diff --git a/grub-core/loader/multiboot_elfxx.c b/grub-core/loader/multiboot_elfxx.c -index 70cd1db51..cc6853692 100644 ---- a/grub-core/loader/multiboot_elfxx.c -+++ b/grub-core/loader/multiboot_elfxx.c -@@ -217,7 +217,7 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) - { - grub_uint8_t *shdr, *shdrptr; - -- shdr = grub_malloc ((grub_uint32_t) ehdr->e_shnum * ehdr->e_shentsize); -+ shdr = grub_calloc (ehdr->e_shnum, ehdr->e_shentsize); - if (!shdr) - return grub_errno; - -diff --git a/grub-core/loader/xnu.c b/grub-core/loader/xnu.c -index 7f74d1d6f..77d7060e1 100644 ---- a/grub-core/loader/xnu.c -+++ b/grub-core/loader/xnu.c -@@ -800,7 +800,7 @@ grub_cmd_xnu_mkext (grub_command_t cmd __attribute__ ((unused)), - if (grub_be_to_cpu32 (head.magic) == GRUB_MACHO_FAT_MAGIC) - { - narchs = grub_be_to_cpu32 (head.nfat_arch); -- archs = grub_malloc (sizeof (struct grub_macho_fat_arch) * narchs); -+ archs = grub_calloc (narchs, sizeof (struct grub_macho_fat_arch)); - if (! archs) - { - grub_file_close (file); -diff --git a/grub-core/mmap/mmap.c b/grub-core/mmap/mmap.c -index 6a31cbae3..57b4e9a72 100644 ---- a/grub-core/mmap/mmap.c -+++ b/grub-core/mmap/mmap.c -@@ -143,9 +143,9 @@ grub_mmap_iterate (grub_memory_hook_t hook, void *hook_data) - - /* Initialize variables. */ - ctx.scanline_events = (struct grub_mmap_scan *) -- grub_malloc (sizeof (struct grub_mmap_scan) * 2 * mmap_num); -+ grub_calloc (mmap_num, sizeof (struct grub_mmap_scan) * 2); - -- present = grub_zalloc (sizeof (present[0]) * current_priority); -+ present = grub_calloc (current_priority, sizeof (present[0])); - - if (! ctx.scanline_events || !present) - { -diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c -index 558d97ba1..dd0ffcdae 100644 ---- a/grub-core/net/bootp.c -+++ b/grub-core/net/bootp.c -@@ -1559,7 +1559,7 @@ grub_cmd_bootp (struct grub_command *cmd __attribute__ ((unused)), - if (ncards == 0) - return grub_error (GRUB_ERR_NET_NO_CARD, N_("no network card found")); - -- ifaces = grub_zalloc (ncards * sizeof (ifaces[0])); -+ ifaces = grub_calloc (ncards, sizeof (ifaces[0])); - if (!ifaces) - return grub_errno; - -diff --git a/grub-core/net/dns.c b/grub-core/net/dns.c -index 5d9afe093..e332d5eb4 100644 ---- a/grub-core/net/dns.c -+++ b/grub-core/net/dns.c -@@ -285,8 +285,8 @@ recv_hook (grub_net_udp_socket_t sock __attribute__ ((unused)), - ptr++; - ptr += 4; - } -- *data->addresses = grub_malloc (sizeof ((*data->addresses)[0]) -- * grub_be_to_cpu16 (head->ancount)); -+ *data->addresses = grub_calloc (grub_be_to_cpu16 (head->ancount), -+ sizeof ((*data->addresses)[0])); - if (!*data->addresses) - { - grub_errno = GRUB_ERR_NONE; -@@ -406,8 +406,8 @@ recv_hook (grub_net_udp_socket_t sock __attribute__ ((unused)), - dns_cache[h].addresses = 0; - dns_cache[h].name = grub_strdup (data->oname); - dns_cache[h].naddresses = *data->naddresses; -- dns_cache[h].addresses = grub_malloc (*data->naddresses -- * sizeof (dns_cache[h].addresses[0])); -+ dns_cache[h].addresses = grub_calloc (*data->naddresses, -+ sizeof (dns_cache[h].addresses[0])); - dns_cache[h].limit_time = grub_get_time_ms () + 1000 * ttl_all; - if (!dns_cache[h].addresses || !dns_cache[h].name) - { -@@ -479,7 +479,7 @@ grub_net_dns_lookup (const char *name, - } - } - -- sockets = grub_malloc (sizeof (sockets[0]) * n_servers); -+ sockets = grub_calloc (n_servers, sizeof (sockets[0])); - if (!sockets) - return grub_errno; - -diff --git a/grub-core/net/net.c b/grub-core/net/net.c -index b917a75d5..fed7bc57c 100644 ---- a/grub-core/net/net.c -+++ b/grub-core/net/net.c -@@ -333,8 +333,8 @@ grub_cmd_ipv6_autoconf (struct grub_command *cmd __attribute__ ((unused)), - ncards++; - } - -- ifaces = grub_zalloc (ncards * sizeof (ifaces[0])); -- slaacs = grub_zalloc (ncards * sizeof (slaacs[0])); -+ ifaces = grub_calloc (ncards, sizeof (ifaces[0])); -+ slaacs = grub_calloc (ncards, sizeof (slaacs[0])); - if (!ifaces || !slaacs) - { - grub_free (ifaces); -diff --git a/grub-core/normal/charset.c b/grub-core/normal/charset.c -index b0ab47d73..d57fb72fa 100644 ---- a/grub-core/normal/charset.c -+++ b/grub-core/normal/charset.c -@@ -203,7 +203,7 @@ grub_utf8_to_ucs4_alloc (const char *msg, grub_uint32_t **unicode_msg, - { - grub_size_t msg_len = grub_strlen (msg); - -- *unicode_msg = grub_malloc (msg_len * sizeof (grub_uint32_t)); -+ *unicode_msg = grub_calloc (msg_len, sizeof (grub_uint32_t)); - - if (!*unicode_msg) - return -1; -@@ -488,7 +488,7 @@ grub_unicode_aglomerate_comb (const grub_uint32_t *in, grub_size_t inlen, - } - else - { -- n = grub_malloc (sizeof (n[0]) * (out->ncomb + 1)); -+ n = grub_calloc (out->ncomb + 1, sizeof (n[0])); - if (!n) - { - grub_errno = GRUB_ERR_NONE; -@@ -842,7 +842,7 @@ grub_bidi_line_logical_to_visual (const grub_uint32_t *logical, - } \ - } - -- visual = grub_malloc (sizeof (visual[0]) * logical_len); -+ visual = grub_calloc (logical_len, sizeof (visual[0])); - if (!visual) - return -1; - -@@ -1165,8 +1165,8 @@ grub_bidi_logical_to_visual (const grub_uint32_t *logical, - { - const grub_uint32_t *line_start = logical, *ptr; - struct grub_unicode_glyph *visual_ptr; -- *visual_out = visual_ptr = grub_malloc (3 * sizeof (visual_ptr[0]) -- * (logical_len + 2)); -+ *visual_out = visual_ptr = grub_calloc (logical_len + 2, -+ 3 * sizeof (visual_ptr[0])); - if (!visual_ptr) - return -1; - for (ptr = logical; ptr <= logical + logical_len; ptr++) -diff --git a/grub-core/normal/cmdline.c b/grub-core/normal/cmdline.c -index c037d5050..c57242e2e 100644 ---- a/grub-core/normal/cmdline.c -+++ b/grub-core/normal/cmdline.c -@@ -41,7 +41,7 @@ grub_err_t - grub_set_history (int newsize) - { - grub_uint32_t **old_hist_lines = hist_lines; -- hist_lines = grub_malloc (sizeof (grub_uint32_t *) * newsize); -+ hist_lines = grub_calloc (newsize, sizeof (grub_uint32_t *)); - - /* Copy the old lines into the new buffer. */ - if (old_hist_lines) -@@ -114,7 +114,7 @@ static void - grub_history_set (int pos, grub_uint32_t *s, grub_size_t len) - { - grub_free (hist_lines[pos]); -- hist_lines[pos] = grub_malloc ((len + 1) * sizeof (grub_uint32_t)); -+ hist_lines[pos] = grub_calloc (len + 1, sizeof (grub_uint32_t)); - if (!hist_lines[pos]) - { - grub_print_error (); -@@ -349,7 +349,7 @@ grub_cmdline_get (const char *prompt_translated) - char *ret; - unsigned nterms; - -- buf = grub_malloc (max_len * sizeof (grub_uint32_t)); -+ buf = grub_calloc (max_len, sizeof (grub_uint32_t)); - if (!buf) - return 0; - -@@ -377,7 +377,7 @@ grub_cmdline_get (const char *prompt_translated) - FOR_ACTIVE_TERM_OUTPUTS(cur) - nterms++; - -- cl_terms = grub_malloc (sizeof (cl_terms[0]) * nterms); -+ cl_terms = grub_calloc (nterms, sizeof (cl_terms[0])); - if (!cl_terms) - { - grub_free (buf); -@@ -385,7 +385,7 @@ grub_cmdline_get (const char *prompt_translated) - } - cl_term_cur = cl_terms; - -- unicode_msg = grub_malloc (msg_len * sizeof (grub_uint32_t)); -+ unicode_msg = grub_calloc (msg_len, sizeof (grub_uint32_t)); - if (!unicode_msg) - { - grub_free (buf); -@@ -495,7 +495,7 @@ grub_cmdline_get (const char *prompt_translated) - grub_uint32_t *insert; - - insertlen = grub_strlen (insertu8); -- insert = grub_malloc ((insertlen + 1) * sizeof (grub_uint32_t)); -+ insert = grub_calloc (insertlen + 1, sizeof (grub_uint32_t)); - if (!insert) - { - grub_free (insertu8); -@@ -602,7 +602,7 @@ grub_cmdline_get (const char *prompt_translated) - - grub_free (kill_buf); - -- kill_buf = grub_malloc ((n + 1) * sizeof(grub_uint32_t)); -+ kill_buf = grub_calloc (n + 1, sizeof (grub_uint32_t)); - if (grub_errno) - { - grub_print_error (); -diff --git a/grub-core/normal/menu_entry.c b/grub-core/normal/menu_entry.c -index cdf3590a3..1993995be 100644 ---- a/grub-core/normal/menu_entry.c -+++ b/grub-core/normal/menu_entry.c -@@ -95,8 +95,8 @@ init_line (struct screen *screen, struct line *linep) - { - linep->len = 0; - linep->max_len = 80; -- linep->buf = grub_malloc ((linep->max_len + 1) * sizeof (linep->buf[0])); -- linep->pos = grub_zalloc (screen->nterms * sizeof (linep->pos[0])); -+ linep->buf = grub_calloc (linep->max_len + 1, sizeof (linep->buf[0])); -+ linep->pos = grub_calloc (screen->nterms, sizeof (linep->pos[0])); - if (! linep->buf || !linep->pos) - { - grub_free (linep->buf); -@@ -287,7 +287,7 @@ update_screen (struct screen *screen, struct per_term_screen *term_screen, - pos = linep->pos + (term_screen - screen->terms); - - if (!*pos) -- *pos = grub_zalloc ((linep->len + 1) * sizeof (**pos)); -+ *pos = grub_calloc (linep->len + 1, sizeof (**pos)); - - if (i == region_start || linep == screen->lines + screen->line - || (i > region_start && mode == ALL_LINES)) -@@ -471,7 +471,7 @@ insert_string (struct screen *screen, const char *s, int update) - - /* Insert the string. */ - current_linep = screen->lines + screen->line; -- unicode_msg = grub_malloc ((p - s) * sizeof (grub_uint32_t)); -+ unicode_msg = grub_calloc (p - s, sizeof (grub_uint32_t)); - - if (!unicode_msg) - return 0; -@@ -1023,7 +1023,7 @@ complete (struct screen *screen, int continuous, int update) - if (completion_buffer.buf) - { - buflen = grub_strlen (completion_buffer.buf); -- ucs4 = grub_malloc (sizeof (grub_uint32_t) * (buflen + 1)); -+ ucs4 = grub_calloc (buflen + 1, sizeof (grub_uint32_t)); - - if (!ucs4) - { -@@ -1268,7 +1268,7 @@ grub_menu_entry_run (grub_menu_entry_t entry) - for (i = 0; i < (unsigned) screen->num_lines; i++) - { - grub_free (screen->lines[i].pos); -- screen->lines[i].pos = grub_zalloc (screen->nterms * sizeof (screen->lines[i].pos[0])); -+ screen->lines[i].pos = grub_calloc (screen->nterms, sizeof (screen->lines[i].pos[0])); - if (! screen->lines[i].pos) - { - grub_print_error (); -@@ -1278,7 +1278,7 @@ grub_menu_entry_run (grub_menu_entry_t entry) - } - } - -- screen->terms = grub_zalloc (screen->nterms * sizeof (screen->terms[0])); -+ screen->terms = grub_calloc (screen->nterms, sizeof (screen->terms[0])); - if (!screen->terms) - { - grub_print_error (); -diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c -index e22bb91f6..18240e76c 100644 ---- a/grub-core/normal/menu_text.c -+++ b/grub-core/normal/menu_text.c -@@ -78,7 +78,7 @@ grub_print_message_indented_real (const char *msg, int margin_left, - grub_size_t msg_len = grub_strlen (msg) + 2; - int ret = 0; - -- unicode_msg = grub_malloc (msg_len * sizeof (grub_uint32_t)); -+ unicode_msg = grub_calloc (msg_len, sizeof (grub_uint32_t)); - - if (!unicode_msg) - return 0; -@@ -211,7 +211,7 @@ print_entry (int y, int highlight, grub_menu_entry_t entry, - - title = entry ? entry->title : ""; - title_len = grub_strlen (title); -- unicode_title = grub_malloc (title_len * sizeof (*unicode_title)); -+ unicode_title = grub_calloc (title_len, sizeof (*unicode_title)); - if (! unicode_title) - /* XXX How to show this error? */ - return; -diff --git a/grub-core/normal/term.c b/grub-core/normal/term.c -index a1e5c5a0d..cc8c173b6 100644 ---- a/grub-core/normal/term.c -+++ b/grub-core/normal/term.c -@@ -264,7 +264,7 @@ grub_term_save_pos (void) - FOR_ACTIVE_TERM_OUTPUTS(cur) - cnt++; - -- ret = grub_malloc (cnt * sizeof (ret[0])); -+ ret = grub_calloc (cnt, sizeof (ret[0])); - if (!ret) - return NULL; - -@@ -1013,7 +1013,7 @@ grub_xnputs (const char *str, grub_size_t msg_len) - - grub_error_push (); - -- unicode_str = grub_malloc (msg_len * sizeof (grub_uint32_t)); -+ unicode_str = grub_calloc (msg_len, sizeof (grub_uint32_t)); - - grub_error_pop (); - -diff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c -index 7adc0f30e..a5bd0752f 100644 ---- a/grub-core/osdep/linux/getroot.c -+++ b/grub-core/osdep/linux/getroot.c -@@ -168,7 +168,7 @@ grub_util_raid_getmembers (const char *name, int bootable) - if (ret != 0) - grub_util_error (_("ioctl GET_ARRAY_INFO error: %s"), strerror (errno)); - -- devicelist = xmalloc ((info.nr_disks + 1) * sizeof (char *)); -+ devicelist = xcalloc (info.nr_disks + 1, sizeof (char *)); - - for (i = 0, j = 0; j < info.nr_disks; i++) - { -@@ -241,7 +241,7 @@ grub_find_root_devices_from_btrfs (const char *dir) - return NULL; - } - -- ret = xmalloc ((fsi.num_devices + 1) * sizeof (ret[0])); -+ ret = xcalloc (fsi.num_devices + 1, sizeof (ret[0])); - - for (i = 1; i <= fsi.max_id && j < fsi.num_devices; i++) - { -@@ -396,7 +396,7 @@ grub_find_root_devices_from_mountinfo (const char *dir, char **relroot) - if (relroot) - *relroot = NULL; - -- entries = xmalloc (entry_max * sizeof (*entries)); -+ entries = xcalloc (entry_max, sizeof (*entries)); - - again: - fp = grub_util_fopen ("/proc/self/mountinfo", "r"); -diff --git a/grub-core/osdep/windows/getroot.c b/grub-core/osdep/windows/getroot.c -index 661d95461..eada663b2 100644 ---- a/grub-core/osdep/windows/getroot.c -+++ b/grub-core/osdep/windows/getroot.c -@@ -59,7 +59,7 @@ grub_get_mount_point (const TCHAR *path) - - for (ptr = path; *ptr; ptr++); - allocsize = (ptr - path + 10) * 2; -- out = xmalloc (allocsize * sizeof (out[0])); -+ out = xcalloc (allocsize, sizeof (out[0])); - - /* When pointing to EFI system partition GetVolumePathName fails - for ESP root and returns abberant information for everything -diff --git a/grub-core/osdep/windows/hostdisk.c b/grub-core/osdep/windows/hostdisk.c -index 355100789..0be327394 100644 ---- a/grub-core/osdep/windows/hostdisk.c -+++ b/grub-core/osdep/windows/hostdisk.c -@@ -111,7 +111,7 @@ grub_util_get_windows_path_real (const char *path) - - while (1) - { -- fpa = xmalloc (alloc * sizeof (fpa[0])); -+ fpa = xcalloc (alloc, sizeof (fpa[0])); - - len = GetFullPathName (tpath, alloc, fpa, NULL); - if (len >= alloc) -@@ -399,7 +399,7 @@ grub_util_fd_opendir (const char *name) - for (l = 0; name_windows[l]; l++); - for (l--; l >= 0 && (name_windows[l] == '\\' || name_windows[l] == '/'); l--); - l++; -- pattern = xmalloc ((l + 3) * sizeof (pattern[0])); -+ pattern = xcalloc (l + 3, sizeof (pattern[0])); - memcpy (pattern, name_windows, l * sizeof (pattern[0])); - pattern[l] = '\\'; - pattern[l + 1] = '*'; -diff --git a/grub-core/osdep/windows/init.c b/grub-core/osdep/windows/init.c -index e8ffd62c6..6297de632 100644 ---- a/grub-core/osdep/windows/init.c -+++ b/grub-core/osdep/windows/init.c -@@ -161,7 +161,7 @@ grub_util_host_init (int *argc __attribute__ ((unused)), - LPWSTR *targv; - - targv = CommandLineToArgvW (tcmdline, argc); -- *argv = xmalloc ((*argc + 1) * sizeof (argv[0])); -+ *argv = xcalloc (*argc + 1, sizeof (argv[0])); - - for (i = 0; i < *argc; i++) - (*argv)[i] = grub_util_tchar_to_utf8 (targv[i]); -diff --git a/grub-core/osdep/windows/platform.c b/grub-core/osdep/windows/platform.c -index e19a3d9a8..cb626c8c3 100644 ---- a/grub-core/osdep/windows/platform.c -+++ b/grub-core/osdep/windows/platform.c -@@ -231,8 +231,8 @@ grub_install_register_efi (grub_device_t efidir_grub_dev, - grub_util_error ("%s", _("no EFI routines are available when running in BIOS mode")); - - distrib8_len = grub_strlen (efi_distributor); -- distributor16 = xmalloc ((distrib8_len + 1) * GRUB_MAX_UTF16_PER_UTF8 -- * sizeof (grub_uint16_t)); -+ distributor16 = xcalloc (distrib8_len + 1, -+ GRUB_MAX_UTF16_PER_UTF8 * sizeof (grub_uint16_t)); - distrib16_len = grub_utf8_to_utf16 (distributor16, distrib8_len * GRUB_MAX_UTF16_PER_UTF8, - (const grub_uint8_t *) efi_distributor, - distrib8_len, 0); -diff --git a/grub-core/osdep/windows/relpath.c b/grub-core/osdep/windows/relpath.c -index cb0861744..478e8ef14 100644 ---- a/grub-core/osdep/windows/relpath.c -+++ b/grub-core/osdep/windows/relpath.c -@@ -72,7 +72,7 @@ grub_make_system_path_relative_to_its_root (const char *path) - if (dirwindows[0] && dirwindows[1] == ':') - offset = 2; - } -- ret = xmalloc (sizeof (ret[0]) * (flen - offset + 2)); -+ ret = xcalloc (flen - offset + 2, sizeof (ret[0])); - if (dirwindows[offset] != '\\' - && dirwindows[offset] != '/' - && dirwindows[offset]) -diff --git a/grub-core/partmap/gpt.c b/grub-core/partmap/gpt.c -index 103f6796f..72a2e37cd 100644 ---- a/grub-core/partmap/gpt.c -+++ b/grub-core/partmap/gpt.c -@@ -199,7 +199,7 @@ gpt_partition_map_embed (struct grub_disk *disk, unsigned int *nsectors, - *nsectors = ctx.len; - if (*nsectors > max_nsectors) - *nsectors = max_nsectors; -- *sectors = grub_malloc (*nsectors * sizeof (**sectors)); -+ *sectors = grub_calloc (*nsectors, sizeof (**sectors)); - if (!*sectors) - return grub_errno; - for (i = 0; i < *nsectors; i++) -diff --git a/grub-core/partmap/msdos.c b/grub-core/partmap/msdos.c -index 7b8e45076..ee3f24982 100644 ---- a/grub-core/partmap/msdos.c -+++ b/grub-core/partmap/msdos.c -@@ -337,7 +337,7 @@ pc_partition_map_embed (struct grub_disk *disk, unsigned int *nsectors, - avail_nsectors = *nsectors; - if (*nsectors > max_nsectors) - *nsectors = max_nsectors; -- *sectors = grub_malloc (*nsectors * sizeof (**sectors)); -+ *sectors = grub_calloc (*nsectors, sizeof (**sectors)); - if (!*sectors) - return grub_errno; - for (i = 0; i < *nsectors; i++) -diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c -index ee299fd0e..c8d6806fe 100644 ---- a/grub-core/script/execute.c -+++ b/grub-core/script/execute.c -@@ -553,7 +553,7 @@ gettext_append (struct grub_script_argv *result, const char *orig_str) - for (iptr = orig_str; *iptr; iptr++) - if (*iptr == '$') - dollar_cnt++; -- ctx.allowed_strings = grub_malloc (sizeof (ctx.allowed_strings[0]) * dollar_cnt); -+ ctx.allowed_strings = grub_calloc (dollar_cnt, sizeof (ctx.allowed_strings[0])); - - if (parse_string (orig_str, gettext_save_allow, &ctx, 0)) - goto fail; -diff --git a/grub-core/tests/fake_input.c b/grub-core/tests/fake_input.c -index 2d6085298..b5eb516be 100644 ---- a/grub-core/tests/fake_input.c -+++ b/grub-core/tests/fake_input.c -@@ -49,7 +49,7 @@ grub_terminal_input_fake_sequence (int *seq_in, int nseq_in) - saved = grub_term_inputs; - if (seq) - grub_free (seq); -- seq = grub_malloc (nseq_in * sizeof (seq[0])); -+ seq = grub_calloc (nseq_in, sizeof (seq[0])); - if (!seq) - return; - -diff --git a/grub-core/tests/video_checksum.c b/grub-core/tests/video_checksum.c -index 74d5b65e5..44d081069 100644 ---- a/grub-core/tests/video_checksum.c -+++ b/grub-core/tests/video_checksum.c -@@ -336,7 +336,7 @@ grub_video_capture_write_bmp (const char *fname, - { - case 4: - { -- grub_uint8_t *buffer = xmalloc (mode_info->width * 3); -+ grub_uint8_t *buffer = xcalloc (3, mode_info->width); - grub_uint32_t rmask = ((1 << mode_info->red_mask_size) - 1); - grub_uint32_t gmask = ((1 << mode_info->green_mask_size) - 1); - grub_uint32_t bmask = ((1 << mode_info->blue_mask_size) - 1); -@@ -367,7 +367,7 @@ grub_video_capture_write_bmp (const char *fname, - } - case 3: - { -- grub_uint8_t *buffer = xmalloc (mode_info->width * 3); -+ grub_uint8_t *buffer = xcalloc (3, mode_info->width); - grub_uint32_t rmask = ((1 << mode_info->red_mask_size) - 1); - grub_uint32_t gmask = ((1 << mode_info->green_mask_size) - 1); - grub_uint32_t bmask = ((1 << mode_info->blue_mask_size) - 1); -@@ -407,7 +407,7 @@ grub_video_capture_write_bmp (const char *fname, - } - case 2: - { -- grub_uint8_t *buffer = xmalloc (mode_info->width * 3); -+ grub_uint8_t *buffer = xcalloc (3, mode_info->width); - grub_uint16_t rmask = ((1 << mode_info->red_mask_size) - 1); - grub_uint16_t gmask = ((1 << mode_info->green_mask_size) - 1); - grub_uint16_t bmask = ((1 << mode_info->blue_mask_size) - 1); -diff --git a/grub-core/video/capture.c b/grub-core/video/capture.c -index 4f83c7441..4d3195e01 100644 ---- a/grub-core/video/capture.c -+++ b/grub-core/video/capture.c -@@ -89,7 +89,7 @@ grub_video_capture_start (const struct grub_video_mode_info *mode_info, - framebuffer.mode_info = *mode_info; - framebuffer.mode_info.blit_format = grub_video_get_blit_format (&framebuffer.mode_info); - -- framebuffer.ptr = grub_malloc (framebuffer.mode_info.height * framebuffer.mode_info.pitch); -+ framebuffer.ptr = grub_calloc (framebuffer.mode_info.height, framebuffer.mode_info.pitch); - if (!framebuffer.ptr) - return grub_errno; - -diff --git a/grub-core/video/emu/sdl.c b/grub-core/video/emu/sdl.c -index a2f639f66..0ebab6f57 100644 ---- a/grub-core/video/emu/sdl.c -+++ b/grub-core/video/emu/sdl.c -@@ -172,7 +172,7 @@ grub_video_sdl_set_palette (unsigned int start, unsigned int count, - if (start + count > mode_info.number_of_colors) - count = mode_info.number_of_colors - start; - -- tmp = grub_malloc (count * sizeof (tmp[0])); -+ tmp = grub_calloc (count, sizeof (tmp[0])); - for (i = 0; i < count; i++) - { - tmp[i].r = palette_data[i].r; -diff --git a/grub-core/video/i386/pc/vga.c b/grub-core/video/i386/pc/vga.c -index 01f47112d..b2f776c99 100644 ---- a/grub-core/video/i386/pc/vga.c -+++ b/grub-core/video/i386/pc/vga.c -@@ -127,7 +127,7 @@ grub_video_vga_setup (unsigned int width, unsigned int height, - - vga_height = height ? : 480; - -- framebuffer.temporary_buffer = grub_malloc (vga_height * VGA_WIDTH); -+ framebuffer.temporary_buffer = grub_calloc (vga_height, VGA_WIDTH); - framebuffer.front_page = 0; - framebuffer.back_page = 0; - if (!framebuffer.temporary_buffer) -diff --git a/grub-core/video/readers/png.c b/grub-core/video/readers/png.c -index 777e71334..61bd64537 100644 ---- a/grub-core/video/readers/png.c -+++ b/grub-core/video/readers/png.c -@@ -309,7 +309,7 @@ grub_png_decode_image_header (struct grub_png_data *data) - if (data->is_16bit || data->is_gray || data->is_palette) - #endif - { -- data->image_data = grub_malloc (data->image_height * data->row_bytes); -+ data->image_data = grub_calloc (data->image_height, data->row_bytes); - if (grub_errno) - return grub_errno; - -diff --git a/include/grub/unicode.h b/include/grub/unicode.h -index a0403e91f..4de986a85 100644 ---- a/include/grub/unicode.h -+++ b/include/grub/unicode.h -@@ -293,7 +293,7 @@ grub_unicode_glyph_dup (const struct grub_unicode_glyph *in) - grub_memcpy (out, in, sizeof (*in)); - if (in->ncomb > ARRAY_SIZE (out->combining_inline)) - { -- out->combining_ptr = grub_malloc (in->ncomb * sizeof (out->combining_ptr[0])); -+ out->combining_ptr = grub_calloc (in->ncomb, sizeof (out->combining_ptr[0])); - if (!out->combining_ptr) - { - grub_free (out); -@@ -315,7 +315,7 @@ grub_unicode_set_glyph (struct grub_unicode_glyph *out, - grub_memcpy (out, in, sizeof (*in)); - if (in->ncomb > ARRAY_SIZE (out->combining_inline)) - { -- out->combining_ptr = grub_malloc (in->ncomb * sizeof (out->combining_ptr[0])); -+ out->combining_ptr = grub_calloc (in->ncomb, sizeof (out->combining_ptr[0])); - if (!out->combining_ptr) - return; - grub_memcpy (out->combining_ptr, in->combining_ptr, -diff --git a/util/getroot.c b/util/getroot.c -index cdd41153c..6ae35ecaa 100644 ---- a/util/getroot.c -+++ b/util/getroot.c -@@ -200,7 +200,7 @@ make_device_name (const char *drive) - char *ret, *ptr; - const char *iptr; - -- ret = xmalloc (strlen (drive) * 2); -+ ret = xcalloc (2, strlen (drive)); - ptr = ret; - for (iptr = drive; *iptr; iptr++) - { -diff --git a/util/grub-file.c b/util/grub-file.c -index 50c18b683..b2e7dd69f 100644 ---- a/util/grub-file.c -+++ b/util/grub-file.c -@@ -54,7 +54,7 @@ main (int argc, char *argv[]) - - grub_util_host_init (&argc, &argv); - -- argv2 = xmalloc (argc * sizeof (argv2[0])); -+ argv2 = xcalloc (argc, sizeof (argv2[0])); - - if (argc == 2 && strcmp (argv[1], "--version") == 0) - { -diff --git a/util/grub-fstest.c b/util/grub-fstest.c -index f14e02d97..57246af7c 100644 ---- a/util/grub-fstest.c -+++ b/util/grub-fstest.c -@@ -650,7 +650,7 @@ argp_parser (int key, char *arg, struct argp_state *state) - if (args_count < num_disks) - { - if (args_count == 0) -- images = xmalloc (num_disks * sizeof (images[0])); -+ images = xcalloc (num_disks, sizeof (images[0])); - images[args_count] = grub_canonicalize_file_name (arg); - args_count++; - return 0; -@@ -734,7 +734,7 @@ main (int argc, char *argv[]) - - grub_util_host_init (&argc, &argv); - -- args = xmalloc (argc * sizeof (args[0])); -+ args = xcalloc (argc, sizeof (args[0])); - - argp_parse (&argp, argc, argv, 0, 0, 0); - -diff --git a/util/grub-install-common.c b/util/grub-install-common.c -index fdfe2c7ea..447504d3f 100644 ---- a/util/grub-install-common.c -+++ b/util/grub-install-common.c -@@ -286,7 +286,7 @@ handle_install_list (struct install_list *il, const char *val, - il->n_entries++; - } - il->n_alloc = il->n_entries + 1; -- il->entries = xmalloc (il->n_alloc * sizeof (il->entries[0])); -+ il->entries = xcalloc (il->n_alloc, sizeof (il->entries[0])); - ptr = val; - for (ce = il->entries; ; ce++) - { -diff --git a/util/grub-install.c b/util/grub-install.c -index 666cef3d2..bd6d8dbb3 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -655,7 +655,7 @@ device_map_check_duplicates (const char *dev_map) - if (! fp) - return; - -- d = xmalloc (alloced * sizeof (d[0])); -+ d = xcalloc (alloced, sizeof (d[0])); - - while (fgets (buf, sizeof (buf), fp)) - { -@@ -1374,7 +1374,7 @@ main (int argc, char *argv[]) - ndev++; - } - -- grub_drives = xmalloc (sizeof (grub_drives[0]) * (ndev + 1)); -+ grub_drives = xcalloc (ndev + 1, sizeof (grub_drives[0])); - - for (curdev = grub_devices, curdrive = grub_drives; *curdev; curdev++, - curdrive++) -diff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c -index bc087c2b5..d97d0e7be 100644 ---- a/util/grub-mkimagexx.c -+++ b/util/grub-mkimagexx.c -@@ -2294,10 +2294,8 @@ SUFFIX (grub_mkimage_load_image) (const char *kernel_path, - + grub_host_to_target16 (e->e_shstrndx) * smd.section_entsize); - smd.strtab = (char *) e + grub_host_to_target_addr (s->sh_offset); - -- smd.addrs = xmalloc (sizeof (*smd.addrs) * smd.num_sections); -- memset (smd.addrs, 0, sizeof (*smd.addrs) * smd.num_sections); -- smd.vaddrs = xmalloc (sizeof (*smd.vaddrs) * smd.num_sections); -- memset (smd.vaddrs, 0, sizeof (*smd.vaddrs) * smd.num_sections); -+ smd.addrs = xcalloc (smd.num_sections, sizeof (*smd.addrs)); -+ smd.vaddrs = xcalloc (smd.num_sections, sizeof (*smd.vaddrs)); - - SUFFIX (locate_sections) (e, kernel_path, &smd, layout, image_target); - -diff --git a/util/grub-mkrescue.c b/util/grub-mkrescue.c -index 45d6140d3..cb972f120 100644 ---- a/util/grub-mkrescue.c -+++ b/util/grub-mkrescue.c -@@ -441,8 +441,8 @@ main (int argc, char *argv[]) - xorriso = xstrdup ("xorriso"); - label_font = grub_util_path_concat (2, pkgdatadir, "unicode.pf2"); - -- argp_argv = xmalloc (sizeof (argp_argv[0]) * argc); -- xorriso_tail_argv = xmalloc (sizeof (argp_argv[0]) * argc); -+ argp_argv = xcalloc (argc, sizeof (argp_argv[0])); -+ xorriso_tail_argv = xcalloc (argc, sizeof (argp_argv[0])); - - xorriso_tail_argc = 0; - /* Program name */ -diff --git a/util/grub-mkstandalone.c b/util/grub-mkstandalone.c -index 4907d44c0..edf309717 100644 ---- a/util/grub-mkstandalone.c -+++ b/util/grub-mkstandalone.c -@@ -296,7 +296,7 @@ main (int argc, char *argv[]) - grub_util_host_init (&argc, &argv); - grub_util_disable_fd_syncs (); - -- files = xmalloc ((argc + 1) * sizeof (files[0])); -+ files = xcalloc (argc + 1, sizeof (files[0])); - - argp_parse (&argp, argc, argv, 0, 0, 0); - -diff --git a/util/grub-pe2elf.c b/util/grub-pe2elf.c -index 0d4084a10..11331294f 100644 ---- a/util/grub-pe2elf.c -+++ b/util/grub-pe2elf.c -@@ -100,9 +100,9 @@ write_section_data (FILE* fp, const char *name, char *image, - char *pe_strtab = (image + pe_chdr->symtab_offset - + pe_chdr->num_symbols * sizeof (struct grub_pe32_symbol)); - -- section_map = xmalloc ((2 * pe_chdr->num_sections + 5) * sizeof (int)); -+ section_map = xcalloc (2 * pe_chdr->num_sections + 5, sizeof (int)); - section_map[0] = 0; -- shdr = xmalloc ((2 * pe_chdr->num_sections + 5) * sizeof (shdr[0])); -+ shdr = xcalloc (2 * pe_chdr->num_sections + 5, sizeof (shdr[0])); - idx = 1; - idx_reloc = pe_chdr->num_sections + 1; - -@@ -233,7 +233,7 @@ write_reloc_section (FILE* fp, const char *name, char *image, - - pe_sec = pe_shdr + shdr[i].sh_link; - pe_rel = (struct grub_pe32_reloc *) (image + pe_sec->relocations_offset); -- rel = (elf_reloc_t *) xmalloc (pe_sec->num_relocations * sizeof (elf_reloc_t)); -+ rel = (elf_reloc_t *) xcalloc (pe_sec->num_relocations, sizeof (elf_reloc_t)); - num_rels = 0; - modified = 0; - -@@ -365,12 +365,10 @@ write_symbol_table (FILE* fp, const char *name, char *image, - pe_symtab = (struct grub_pe32_symbol *) (image + pe_chdr->symtab_offset); - pe_strtab = (char *) (pe_symtab + pe_chdr->num_symbols); - -- symtab = (Elf_Sym *) xmalloc ((pe_chdr->num_symbols + 1) * -- sizeof (Elf_Sym)); -- memset (symtab, 0, (pe_chdr->num_symbols + 1) * sizeof (Elf_Sym)); -+ symtab = (Elf_Sym *) xcalloc (pe_chdr->num_symbols + 1, sizeof (Elf_Sym)); - num_syms = 1; - -- symtab_map = (int *) xmalloc (pe_chdr->num_symbols * sizeof (int)); -+ symtab_map = (int *) xcalloc (pe_chdr->num_symbols, sizeof (int)); - - for (i = 0; i < (int) pe_chdr->num_symbols; - i += pe_symtab->num_aux + 1, pe_symtab += pe_symtab->num_aux + 1) -diff --git a/util/grub-probe.c b/util/grub-probe.c -index 81d27eead..cbe6ed94c 100644 ---- a/util/grub-probe.c -+++ b/util/grub-probe.c -@@ -361,8 +361,8 @@ probe (const char *path, char **device_names, char delim) - grub_util_pull_device (*curdev); - ndev++; - } -- -- drives_names = xmalloc (sizeof (drives_names[0]) * (ndev + 1)); -+ -+ drives_names = xcalloc (ndev + 1, sizeof (drives_names[0])); - - for (curdev = device_names, curdrive = drives_names; *curdev; curdev++, - curdrive++) diff --git a/patches/grub/2.04/safe-alloc-4.patch b/patches/grub/2.04/safe-alloc-4.patch deleted file mode 100644 index 6202e5abd..000000000 --- a/patches/grub/2.04/safe-alloc-4.patch +++ /dev/null @@ -1,1321 +0,0 @@ -From d84e89f4734711d8ff3c84b6c58985c824b4d889 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 15 Jun 2020 12:28:27 -0400 -Subject: malloc: Use overflow checking primitives where we do complex - allocations - -This attempts to fix the places where we do the following where -arithmetic_expr may include unvalidated data: - - X = grub_malloc(arithmetic_expr); - -It accomplishes this by doing the arithmetic ahead of time using grub_add(), -grub_sub(), grub_mul() and testing for overflow before proceeding. - -Among other issues, this fixes: - - allocation of integer overflow in grub_video_bitmap_create() - reported by Chris Coulson, - - allocation of integer overflow in grub_png_decode_image_header() - reported by Chris Coulson, - - allocation of integer overflow in grub_squash_read_symlink() - reported by Chris Coulson, - - allocation of integer overflow in grub_ext2_read_symlink() - reported by Chris Coulson, - - allocation of integer overflow in read_section_as_string() - reported by Chris Coulson. - -Fixes: CVE-2020-14309, CVE-2020-14310, CVE-2020-14311 - -Signed-off-by: Peter Jones -Reviewed-by: Daniel Kiper - -Patch-Name: safe-alloc-4.patch ---- - grub-core/commands/legacycfg.c | 29 +++++++++++++++---- - grub-core/commands/wildcard.c | 36 ++++++++++++++++++++---- - grub-core/disk/ldm.c | 32 +++++++++++++++------ - grub-core/font/font.c | 7 ++++- - grub-core/fs/btrfs.c | 28 +++++++++++++------ - grub-core/fs/ext2.c | 10 ++++++- - grub-core/fs/iso9660.c | 51 ++++++++++++++++++++++++---------- - grub-core/fs/sfs.c | 27 ++++++++++++++---- - grub-core/fs/squash4.c | 45 ++++++++++++++++++++++-------- - grub-core/fs/udf.c | 41 +++++++++++++++++---------- - grub-core/fs/xfs.c | 11 +++++--- - grub-core/fs/zfs/zfs.c | 22 ++++++++++----- - grub-core/fs/zfs/zfscrypt.c | 7 ++++- - grub-core/lib/arg.c | 20 +++++++++++-- - grub-core/loader/i386/bsd.c | 8 +++++- - grub-core/net/dns.c | 9 +++++- - grub-core/normal/charset.c | 10 +++++-- - grub-core/normal/cmdline.c | 14 ++++++++-- - grub-core/normal/menu_entry.c | 13 +++++++-- - grub-core/script/argv.c | 16 +++++++++-- - grub-core/script/lexer.c | 21 ++++++++++++-- - grub-core/video/bitmap.c | 25 +++++++++++------ - grub-core/video/readers/png.c | 13 +++++++-- - 23 files changed, 382 insertions(+), 113 deletions(-) - -diff --git a/grub-core/commands/legacycfg.c b/grub-core/commands/legacycfg.c -index 5e3ec0d5e..cc5971f4d 100644 ---- a/grub-core/commands/legacycfg.c -+++ b/grub-core/commands/legacycfg.c -@@ -32,6 +32,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -104,13 +105,22 @@ legacy_file (const char *filename) - if (newsuffix) - { - char *t; -- -+ grub_size_t sz; -+ -+ if (grub_add (grub_strlen (suffix), grub_strlen (newsuffix), &sz) || -+ grub_add (sz, 1, &sz)) -+ { -+ grub_errno = GRUB_ERR_OUT_OF_RANGE; -+ goto fail_0; -+ } -+ - t = suffix; -- suffix = grub_realloc (suffix, grub_strlen (suffix) -- + grub_strlen (newsuffix) + 1); -+ suffix = grub_realloc (suffix, sz); - if (!suffix) - { - grub_free (t); -+ -+ fail_0: - grub_free (entrysrc); - grub_free (parsed); - grub_free (newsuffix); -@@ -154,13 +164,22 @@ legacy_file (const char *filename) - else - { - char *t; -+ grub_size_t sz; -+ -+ if (grub_add (grub_strlen (entrysrc), grub_strlen (parsed), &sz) || -+ grub_add (sz, 1, &sz)) -+ { -+ grub_errno = GRUB_ERR_OUT_OF_RANGE; -+ goto fail_1; -+ } - - t = entrysrc; -- entrysrc = grub_realloc (entrysrc, grub_strlen (entrysrc) -- + grub_strlen (parsed) + 1); -+ entrysrc = grub_realloc (entrysrc, sz); - if (!entrysrc) - { - grub_free (t); -+ -+ fail_1: - grub_free (parsed); - grub_free (suffix); - return grub_errno; -diff --git a/grub-core/commands/wildcard.c b/grub-core/commands/wildcard.c -index 4a106ca04..cc3290311 100644 ---- a/grub-core/commands/wildcard.c -+++ b/grub-core/commands/wildcard.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - - #include - -@@ -48,6 +49,7 @@ merge (char **dest, char **ps) - int i; - int j; - char **p; -+ grub_size_t sz; - - if (! dest) - return ps; -@@ -60,7 +62,12 @@ merge (char **dest, char **ps) - for (j = 0; ps[j]; j++) - ; - -- p = grub_realloc (dest, sizeof (char*) * (i + j + 1)); -+ if (grub_add (i, j, &sz) || -+ grub_add (sz, 1, &sz) || -+ grub_mul (sz, sizeof (char *), &sz)) -+ return dest; -+ -+ p = grub_realloc (dest, sz); - if (! p) - { - grub_free (dest); -@@ -115,8 +122,15 @@ make_regex (const char *start, const char *end, regex_t *regexp) - char ch; - int i = 0; - unsigned len = end - start; -- char *buffer = grub_malloc (len * 2 + 2 + 1); /* worst case size. */ -+ char *buffer; -+ grub_size_t sz; - -+ /* Worst case size is (len * 2 + 2 + 1). */ -+ if (grub_mul (len, 2, &sz) || -+ grub_add (sz, 3, &sz)) -+ return 1; -+ -+ buffer = grub_malloc (sz); - if (! buffer) - return 1; - -@@ -226,6 +240,7 @@ match_devices_iter (const char *name, void *data) - struct match_devices_ctx *ctx = data; - char **t; - char *buffer; -+ grub_size_t sz; - - /* skip partitions if asked to. */ - if (ctx->noparts && grub_strchr (name, ',')) -@@ -239,11 +254,16 @@ match_devices_iter (const char *name, void *data) - if (regexec (ctx->regexp, buffer, 0, 0, 0)) - { - grub_dprintf ("expand", "not matched\n"); -+ fail: - grub_free (buffer); - return 0; - } - -- t = grub_realloc (ctx->devs, sizeof (char*) * (ctx->ndev + 2)); -+ if (grub_add (ctx->ndev, 2, &sz) || -+ grub_mul (sz, sizeof (char *), &sz)) -+ goto fail; -+ -+ t = grub_realloc (ctx->devs, sz); - if (! t) - { - grub_free (buffer); -@@ -300,6 +320,7 @@ match_files_iter (const char *name, - struct match_files_ctx *ctx = data; - char **t; - char *buffer; -+ grub_size_t sz; - - /* skip . and .. names */ - if (grub_strcmp(".", name) == 0 || grub_strcmp("..", name) == 0) -@@ -315,9 +336,14 @@ match_files_iter (const char *name, - if (! buffer) - return 1; - -- t = grub_realloc (ctx->files, sizeof (char*) * (ctx->nfile + 2)); -- if (! t) -+ if (grub_add (ctx->nfile, 2, &sz) || -+ grub_mul (sz, sizeof (char *), &sz)) -+ goto fail; -+ -+ t = grub_realloc (ctx->files, sz); -+ if (!t) - { -+ fail: - grub_free (buffer); - return 1; - } -diff --git a/grub-core/disk/ldm.c b/grub-core/disk/ldm.c -index e6323701a..58f8a53e1 100644 ---- a/grub-core/disk/ldm.c -+++ b/grub-core/disk/ldm.c -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - - #ifdef GRUB_UTIL - #include -@@ -289,6 +290,7 @@ make_vg (grub_disk_t disk, - struct grub_ldm_vblk vblk[GRUB_DISK_SECTOR_SIZE - / sizeof (struct grub_ldm_vblk)]; - unsigned i; -+ grub_size_t sz; - err = grub_disk_read (disk, cursec, 0, - sizeof(vblk), &vblk); - if (err) -@@ -350,7 +352,13 @@ make_vg (grub_disk_t disk, - grub_free (lv); - goto fail2; - } -- lv->name = grub_malloc (*ptr + 1); -+ if (grub_add (*ptr, 1, &sz)) -+ { -+ grub_free (lv->internal_id); -+ grub_free (lv); -+ goto fail2; -+ } -+ lv->name = grub_malloc (sz); - if (!lv->name) - { - grub_free (lv->internal_id); -@@ -599,10 +607,13 @@ make_vg (grub_disk_t disk, - if (lv->segments->node_alloc == lv->segments->node_count) - { - void *t; -- lv->segments->node_alloc *= 2; -- t = grub_realloc (lv->segments->nodes, -- sizeof (*lv->segments->nodes) -- * lv->segments->node_alloc); -+ grub_size_t sz; -+ -+ if (grub_mul (lv->segments->node_alloc, 2, &lv->segments->node_alloc) || -+ grub_mul (lv->segments->node_alloc, sizeof (*lv->segments->nodes), &sz)) -+ goto fail2; -+ -+ t = grub_realloc (lv->segments->nodes, sz); - if (!t) - goto fail2; - lv->segments->nodes = t; -@@ -723,10 +734,13 @@ make_vg (grub_disk_t disk, - if (comp->segment_alloc == comp->segment_count) - { - void *t; -- comp->segment_alloc *= 2; -- t = grub_realloc (comp->segments, -- comp->segment_alloc -- * sizeof (*comp->segments)); -+ grub_size_t sz; -+ -+ if (grub_mul (comp->segment_alloc, 2, &comp->segment_alloc) || -+ grub_mul (comp->segment_alloc, sizeof (*comp->segments), &sz)) -+ goto fail2; -+ -+ t = grub_realloc (comp->segments, sz); - if (!t) - goto fail2; - comp->segments = t; -diff --git a/grub-core/font/font.c b/grub-core/font/font.c -index 8e118b315..5edb477ac 100644 ---- a/grub-core/font/font.c -+++ b/grub-core/font/font.c -@@ -30,6 +30,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -360,9 +361,13 @@ static char * - read_section_as_string (struct font_file_section *section) - { - char *str; -+ grub_size_t sz; - grub_ssize_t ret; - -- str = grub_malloc (section->length + 1); -+ if (grub_add (section->length, 1, &sz)) -+ return NULL; -+ -+ str = grub_malloc (sz); - if (!str) - return 0; - -diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 4b8380439..27339bdb3 100644 ---- a/grub-core/fs/btrfs.c -+++ b/grub-core/fs/btrfs.c -@@ -40,6 +40,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -331,9 +332,13 @@ save_ref (struct grub_btrfs_leaf_descriptor *desc, - if (desc->allocated < desc->depth) - { - void *newdata; -- desc->allocated *= 2; -- newdata = grub_realloc (desc->data, sizeof (desc->data[0]) -- * desc->allocated); -+ grub_size_t sz; -+ -+ if (grub_mul (desc->allocated, 2, &desc->allocated) || -+ grub_mul (desc->allocated, sizeof (desc->data[0]), &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ -+ newdata = grub_realloc (desc->data, sz); - if (!newdata) - return grub_errno; - desc->data = newdata; -@@ -624,16 +629,21 @@ find_device (struct grub_btrfs_data *data, grub_uint64_t id) - if (data->n_devices_attached > data->n_devices_allocated) - { - void *tmp; -- data->n_devices_allocated = 2 * data->n_devices_attached + 1; -- data->devices_attached -- = grub_realloc (tmp = data->devices_attached, -- data->n_devices_allocated -- * sizeof (data->devices_attached[0])); -+ grub_size_t sz; -+ -+ if (grub_mul (data->n_devices_attached, 2, &data->n_devices_allocated) || -+ grub_add (data->n_devices_allocated, 1, &data->n_devices_allocated) || -+ grub_mul (data->n_devices_allocated, sizeof (data->devices_attached[0]), &sz)) -+ goto fail; -+ -+ data->devices_attached = grub_realloc (tmp = data->devices_attached, sz); - if (!data->devices_attached) - { -+ data->devices_attached = tmp; -+ -+ fail: - if (ctx.dev_found) - grub_device_close (ctx.dev_found); -- data->devices_attached = tmp; - return NULL; - } - } -diff --git a/grub-core/fs/ext2.c b/grub-core/fs/ext2.c -index 9b389802a..ac33bcd68 100644 ---- a/grub-core/fs/ext2.c -+++ b/grub-core/fs/ext2.c -@@ -46,6 +46,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -703,6 +704,7 @@ grub_ext2_read_symlink (grub_fshelp_node_t node) - { - char *symlink; - struct grub_fshelp_node *diro = node; -+ grub_size_t sz; - - if (! diro->inode_read) - { -@@ -717,7 +719,13 @@ grub_ext2_read_symlink (grub_fshelp_node_t node) - } - } - -- symlink = grub_malloc (grub_le_to_cpu32 (diro->inode.size) + 1); -+ if (grub_add (grub_le_to_cpu32 (diro->inode.size), 1, &sz)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ return NULL; -+ } -+ -+ symlink = grub_malloc (sz); - if (! symlink) - return 0; - -diff --git a/grub-core/fs/iso9660.c b/grub-core/fs/iso9660.c -index 4f1b52a55..7ba5b300b 100644 ---- a/grub-core/fs/iso9660.c -+++ b/grub-core/fs/iso9660.c -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -531,8 +532,13 @@ add_part (struct iterate_dir_ctx *ctx, - int len2) - { - int size = ctx->symlink ? grub_strlen (ctx->symlink) : 0; -+ grub_size_t sz; - -- ctx->symlink = grub_realloc (ctx->symlink, size + len2 + 1); -+ if (grub_add (size, len2, &sz) || -+ grub_add (sz, 1, &sz)) -+ return; -+ -+ ctx->symlink = grub_realloc (ctx->symlink, sz); - if (! ctx->symlink) - return; - -@@ -560,17 +566,24 @@ susp_iterate_dir (struct grub_iso9660_susp_entry *entry, - { - grub_size_t off = 0, csize = 1; - char *old; -+ grub_size_t sz; -+ - csize = entry->len - 5; - old = ctx->filename; - if (ctx->filename_alloc) - { - off = grub_strlen (ctx->filename); -- ctx->filename = grub_realloc (ctx->filename, csize + off + 1); -+ if (grub_add (csize, off, &sz) || -+ grub_add (sz, 1, &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ ctx->filename = grub_realloc (ctx->filename, sz); - } - else - { - off = 0; -- ctx->filename = grub_zalloc (csize + 1); -+ if (grub_add (csize, 1, &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ ctx->filename = grub_zalloc (sz); - } - if (!ctx->filename) - { -@@ -776,14 +789,18 @@ grub_iso9660_iterate_dir (grub_fshelp_node_t dir, - if (node->have_dirents >= node->alloc_dirents) - { - struct grub_fshelp_node *new_node; -- node->alloc_dirents *= 2; -- new_node = grub_realloc (node, -- sizeof (struct grub_fshelp_node) -- + ((node->alloc_dirents -- - ARRAY_SIZE (node->dirents)) -- * sizeof (node->dirents[0]))); -+ grub_size_t sz; -+ -+ if (grub_mul (node->alloc_dirents, 2, &node->alloc_dirents) || -+ grub_sub (node->alloc_dirents, ARRAY_SIZE (node->dirents), &sz) || -+ grub_mul (sz, sizeof (node->dirents[0]), &sz) || -+ grub_add (sz, sizeof (struct grub_fshelp_node), &sz)) -+ goto fail_0; -+ -+ new_node = grub_realloc (node, sz); - if (!new_node) - { -+ fail_0: - if (ctx.filename_alloc) - grub_free (ctx.filename); - grub_free (node); -@@ -799,14 +816,18 @@ grub_iso9660_iterate_dir (grub_fshelp_node_t dir, - * sizeof (node->dirents[0]) < grub_strlen (ctx.symlink) + 1) - { - struct grub_fshelp_node *new_node; -- new_node = grub_realloc (node, -- sizeof (struct grub_fshelp_node) -- + ((node->alloc_dirents -- - ARRAY_SIZE (node->dirents)) -- * sizeof (node->dirents[0])) -- + grub_strlen (ctx.symlink) + 1); -+ grub_size_t sz; -+ -+ if (grub_sub (node->alloc_dirents, ARRAY_SIZE (node->dirents), &sz) || -+ grub_mul (sz, sizeof (node->dirents[0]), &sz) || -+ grub_add (sz, sizeof (struct grub_fshelp_node) + 1, &sz) || -+ grub_add (sz, grub_strlen (ctx.symlink), &sz)) -+ goto fail_1; -+ -+ new_node = grub_realloc (node, sz); - if (!new_node) - { -+ fail_1: - if (ctx.filename_alloc) - grub_free (ctx.filename); - grub_free (node); -diff --git a/grub-core/fs/sfs.c b/grub-core/fs/sfs.c -index 90f7fb379..de2b107a4 100644 ---- a/grub-core/fs/sfs.c -+++ b/grub-core/fs/sfs.c -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -307,10 +308,15 @@ grub_sfs_read_block (grub_fshelp_node_t node, grub_disk_addr_t fileblock) - if (node->cache && node->cache_size >= node->cache_allocated) - { - struct cache_entry *e = node->cache; -- e = grub_realloc (node->cache,node->cache_allocated * 2 -- * sizeof (e[0])); -+ grub_size_t sz; -+ -+ if (grub_mul (node->cache_allocated, 2 * sizeof (e[0]), &sz)) -+ goto fail; -+ -+ e = grub_realloc (node->cache, sz); - if (!e) - { -+ fail: - grub_errno = 0; - grub_free (node->cache); - node->cache = 0; -@@ -477,10 +483,16 @@ grub_sfs_create_node (struct grub_fshelp_node **node, - grub_size_t len = grub_strlen (name); - grub_uint8_t *name_u8; - int ret; -+ grub_size_t sz; -+ -+ if (grub_mul (len, GRUB_MAX_UTF8_PER_LATIN1, &sz) || -+ grub_add (sz, 1, &sz)) -+ return 1; -+ - *node = grub_malloc (sizeof (**node)); - if (!*node) - return 1; -- name_u8 = grub_malloc (len * GRUB_MAX_UTF8_PER_LATIN1 + 1); -+ name_u8 = grub_malloc (sz); - if (!name_u8) - { - grub_free (*node); -@@ -724,8 +736,13 @@ grub_sfs_label (grub_device_t device, char **label) - data = grub_sfs_mount (disk); - if (data) - { -- grub_size_t len = grub_strlen (data->label); -- *label = grub_malloc (len * GRUB_MAX_UTF8_PER_LATIN1 + 1); -+ grub_size_t sz, len = grub_strlen (data->label); -+ -+ if (grub_mul (len, GRUB_MAX_UTF8_PER_LATIN1, &sz) || -+ grub_add (sz, 1, &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ -+ *label = grub_malloc (sz); - if (*label) - *grub_latin1_to_utf8 ((grub_uint8_t *) *label, - (const grub_uint8_t *) data->label, -diff --git a/grub-core/fs/squash4.c b/grub-core/fs/squash4.c -index 95d5c1e1f..785123894 100644 ---- a/grub-core/fs/squash4.c -+++ b/grub-core/fs/squash4.c -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - #include - - #include "xz.h" -@@ -459,7 +460,17 @@ grub_squash_read_symlink (grub_fshelp_node_t node) - { - char *ret; - grub_err_t err; -- ret = grub_malloc (grub_le_to_cpu32 (node->ino.symlink.namelen) + 1); -+ grub_size_t sz; -+ -+ if (grub_add (grub_le_to_cpu32 (node->ino.symlink.namelen), 1, &sz)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ return NULL; -+ } -+ -+ ret = grub_malloc (sz); -+ if (!ret) -+ return NULL; - - err = read_chunk (node->data, ret, - grub_le_to_cpu32 (node->ino.symlink.namelen), -@@ -506,11 +517,16 @@ grub_squash_iterate_dir (grub_fshelp_node_t dir, - - { - grub_fshelp_node_t node; -- node = grub_malloc (sizeof (*node) + dir->stsize * sizeof (dir->stack[0])); -+ grub_size_t sz; -+ -+ if (grub_mul (dir->stsize, sizeof (dir->stack[0]), &sz) || -+ grub_add (sz, sizeof (*node), &sz)) -+ return 0; -+ -+ node = grub_malloc (sz); - if (!node) - return 0; -- grub_memcpy (node, dir, -- sizeof (*node) + dir->stsize * sizeof (dir->stack[0])); -+ grub_memcpy (node, dir, sz); - if (hook (".", GRUB_FSHELP_DIR, node, hook_data)) - return 1; - -@@ -518,12 +534,15 @@ grub_squash_iterate_dir (grub_fshelp_node_t dir, - { - grub_err_t err; - -- node = grub_malloc (sizeof (*node) + dir->stsize * sizeof (dir->stack[0])); -+ if (grub_mul (dir->stsize, sizeof (dir->stack[0]), &sz) || -+ grub_add (sz, sizeof (*node), &sz)) -+ return 0; -+ -+ node = grub_malloc (sz); - if (!node) - return 0; - -- grub_memcpy (node, dir, -- sizeof (*node) + dir->stsize * sizeof (dir->stack[0])); -+ grub_memcpy (node, dir, sz); - - node->stsize--; - err = read_chunk (dir->data, &node->ino, sizeof (node->ino), -@@ -557,6 +576,7 @@ grub_squash_iterate_dir (grub_fshelp_node_t dir, - enum grub_fshelp_filetype filetype = GRUB_FSHELP_REG; - struct grub_squash_dirent di; - struct grub_squash_inode ino; -+ grub_size_t sz; - - err = read_chunk (dir->data, &di, sizeof (di), - grub_le_to_cpu64 (dir->data->sb.diroffset) -@@ -589,13 +609,16 @@ grub_squash_iterate_dir (grub_fshelp_node_t dir, - if (grub_le_to_cpu16 (di.type) == SQUASH_TYPE_SYMLINK) - filetype = GRUB_FSHELP_SYMLINK; - -- node = grub_malloc (sizeof (*node) -- + (dir->stsize + 1) * sizeof (dir->stack[0])); -+ if (grub_add (dir->stsize, 1, &sz) || -+ grub_mul (sz, sizeof (dir->stack[0]), &sz) || -+ grub_add (sz, sizeof (*node), &sz)) -+ return 0; -+ -+ node = grub_malloc (sz); - if (! node) - return 0; - -- grub_memcpy (node, dir, -- sizeof (*node) + dir->stsize * sizeof (dir->stack[0])); -+ grub_memcpy (node, dir, sz - sizeof(dir->stack[0])); - - node->ino = ino; - node->stack[node->stsize].ino_chunk = grub_le_to_cpu32 (dh.ino_chunk); -diff --git a/grub-core/fs/udf.c b/grub-core/fs/udf.c -index a83761674..21ac7f446 100644 ---- a/grub-core/fs/udf.c -+++ b/grub-core/fs/udf.c -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -890,9 +891,19 @@ read_string (const grub_uint8_t *raw, grub_size_t sz, char *outbuf) - utf16[i] = (raw[2 * i + 1] << 8) | raw[2*i + 2]; - } - if (!outbuf) -- outbuf = grub_malloc (utf16len * GRUB_MAX_UTF8_PER_UTF16 + 1); -+ { -+ grub_size_t size; -+ -+ if (grub_mul (utf16len, GRUB_MAX_UTF8_PER_UTF16, &size) || -+ grub_add (size, 1, &size)) -+ goto fail; -+ -+ outbuf = grub_malloc (size); -+ } - if (outbuf) - *grub_utf16_to_utf8 ((grub_uint8_t *) outbuf, utf16, utf16len) = '\0'; -+ -+ fail: - grub_free (utf16); - return outbuf; - } -@@ -1005,7 +1016,7 @@ grub_udf_read_symlink (grub_fshelp_node_t node) - grub_size_t sz = U64 (node->block.fe.file_size); - grub_uint8_t *raw; - const grub_uint8_t *ptr; -- char *out, *optr; -+ char *out = NULL, *optr; - - if (sz < 4) - return NULL; -@@ -1013,14 +1024,16 @@ grub_udf_read_symlink (grub_fshelp_node_t node) - if (!raw) - return NULL; - if (grub_udf_read_file (node, NULL, NULL, 0, sz, (char *) raw) < 0) -- { -- grub_free (raw); -- return NULL; -- } -+ goto fail_1; - -- out = grub_malloc (sz * 2 + 1); -+ if (grub_mul (sz, 2, &sz) || -+ grub_add (sz, 1, &sz)) -+ goto fail_0; -+ -+ out = grub_malloc (sz); - if (!out) - { -+ fail_0: - grub_free (raw); - return NULL; - } -@@ -1031,17 +1044,17 @@ grub_udf_read_symlink (grub_fshelp_node_t node) - { - grub_size_t s; - if ((grub_size_t) (ptr - raw + 4) > sz) -- goto fail; -+ goto fail_1; - if (!(ptr[2] == 0 && ptr[3] == 0)) -- goto fail; -+ goto fail_1; - s = 4 + ptr[1]; - if ((grub_size_t) (ptr - raw + s) > sz) -- goto fail; -+ goto fail_1; - switch (*ptr) - { - case 1: - if (ptr[1]) -- goto fail; -+ goto fail_1; - /* Fallthrough. */ - case 2: - /* in 4 bytes. out: 1 byte. */ -@@ -1066,11 +1079,11 @@ grub_udf_read_symlink (grub_fshelp_node_t node) - if (optr != out) - *optr++ = '/'; - if (!read_string (ptr + 4, s - 4, optr)) -- goto fail; -+ goto fail_1; - optr += grub_strlen (optr); - break; - default: -- goto fail; -+ goto fail_1; - } - ptr += s; - } -@@ -1078,7 +1091,7 @@ grub_udf_read_symlink (grub_fshelp_node_t node) - grub_free (raw); - return out; - -- fail: -+ fail_1: - grub_free (raw); - grub_free (out); - grub_error (GRUB_ERR_BAD_FS, "invalid symlink"); -diff --git a/grub-core/fs/xfs.c b/grub-core/fs/xfs.c -index 96ffecbfc..ea6590290 100644 ---- a/grub-core/fs/xfs.c -+++ b/grub-core/fs/xfs.c -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -899,6 +900,7 @@ static struct grub_xfs_data * - grub_xfs_mount (grub_disk_t disk) - { - struct grub_xfs_data *data = 0; -+ grub_size_t sz; - - data = grub_zalloc (sizeof (struct grub_xfs_data)); - if (!data) -@@ -913,10 +915,11 @@ grub_xfs_mount (grub_disk_t disk) - if (!grub_xfs_sb_valid(data)) - goto fail; - -- data = grub_realloc (data, -- sizeof (struct grub_xfs_data) -- - sizeof (struct grub_xfs_inode) -- + grub_xfs_inode_size(data) + 1); -+ if (grub_add (grub_xfs_inode_size (data), -+ sizeof (struct grub_xfs_data) - sizeof (struct grub_xfs_inode) + 1, &sz)) -+ goto fail; -+ -+ data = grub_realloc (data, sz); - - if (! data) - goto fail; -diff --git a/grub-core/fs/zfs/zfs.c b/grub-core/fs/zfs/zfs.c -index 381dde556..36d0373a6 100644 ---- a/grub-core/fs/zfs/zfs.c -+++ b/grub-core/fs/zfs/zfs.c -@@ -55,6 +55,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -773,11 +774,14 @@ fill_vdev_info (struct grub_zfs_data *data, - if (data->n_devices_attached > data->n_devices_allocated) - { - void *tmp; -- data->n_devices_allocated = 2 * data->n_devices_attached + 1; -- data->devices_attached -- = grub_realloc (tmp = data->devices_attached, -- data->n_devices_allocated -- * sizeof (data->devices_attached[0])); -+ grub_size_t sz; -+ -+ if (grub_mul (data->n_devices_attached, 2, &data->n_devices_allocated) || -+ grub_add (data->n_devices_allocated, 1, &data->n_devices_allocated) || -+ grub_mul (data->n_devices_allocated, sizeof (data->devices_attached[0]), &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ -+ data->devices_attached = grub_realloc (tmp = data->devices_attached, sz); - if (!data->devices_attached) - { - data->devices_attached = tmp; -@@ -3468,14 +3472,18 @@ grub_zfs_nvlist_lookup_nvlist (const char *nvlist, const char *name) - { - char *nvpair; - char *ret; -- grub_size_t size; -+ grub_size_t size, sz; - int found; - - found = nvlist_find_value (nvlist, name, DATA_TYPE_NVLIST, &nvpair, - &size, 0); - if (!found) - return 0; -- ret = grub_zalloc (size + 3 * sizeof (grub_uint32_t)); -+ -+ if (grub_add (size, 3 * sizeof (grub_uint32_t), &sz)) -+ return 0; -+ -+ ret = grub_zalloc (sz); - if (!ret) - return 0; - grub_memcpy (ret, nvlist, sizeof (grub_uint32_t)); -diff --git a/grub-core/fs/zfs/zfscrypt.c b/grub-core/fs/zfs/zfscrypt.c -index 1402e0bc2..de3b015f5 100644 ---- a/grub-core/fs/zfs/zfscrypt.c -+++ b/grub-core/fs/zfs/zfscrypt.c -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -82,9 +83,13 @@ grub_zfs_add_key (grub_uint8_t *key_in, - int passphrase) - { - struct grub_zfs_wrap_key *key; -+ grub_size_t sz; -+ - if (!passphrase && keylen > 32) - keylen = 32; -- key = grub_malloc (sizeof (*key) + keylen); -+ if (grub_add (sizeof (*key), keylen, &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ key = grub_malloc (sz); - if (!key) - return grub_errno; - key->is_passphrase = passphrase; -diff --git a/grub-core/lib/arg.c b/grub-core/lib/arg.c -index fd7744a6f..3288609a5 100644 ---- a/grub-core/lib/arg.c -+++ b/grub-core/lib/arg.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - - /* Built-in parser for default options. */ - static const struct grub_arg_option help_options[] = -@@ -216,7 +217,13 @@ static inline grub_err_t - add_arg (char ***argl, int *num, char *s) - { - char **p = *argl; -- *argl = grub_realloc (*argl, (++(*num) + 1) * sizeof (char *)); -+ grub_size_t sz; -+ -+ if (grub_add (++(*num), 1, &sz) || -+ grub_mul (sz, sizeof (char *), &sz)) -+ return grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ -+ *argl = grub_realloc (*argl, sz); - if (! *argl) - { - grub_free (p); -@@ -431,6 +438,7 @@ grub_arg_list_alloc(grub_extcmd_t extcmd, int argc, - grub_size_t argcnt; - struct grub_arg_list *list; - const struct grub_arg_option *options; -+ grub_size_t sz0, sz1; - - options = extcmd->options; - if (! options) -@@ -443,7 +451,15 @@ grub_arg_list_alloc(grub_extcmd_t extcmd, int argc, - argcnt += ((grub_size_t) argc + 1) / 2 + 1; /* max possible for any option */ - } - -- list = grub_zalloc (sizeof (*list) * i + sizeof (char*) * argcnt); -+ if (grub_mul (sizeof (*list), i, &sz0) || -+ grub_mul (sizeof (char *), argcnt, &sz1) || -+ grub_add (sz0, sz1, &sz0)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ return 0; -+ } -+ -+ list = grub_zalloc (sz0); - if (! list) - return 0; - -diff --git a/grub-core/loader/i386/bsd.c b/grub-core/loader/i386/bsd.c -index 3730ed382..b92cbe98d 100644 ---- a/grub-core/loader/i386/bsd.c -+++ b/grub-core/loader/i386/bsd.c -@@ -35,6 +35,7 @@ - #include - #include - #include -+#include - #include - #ifdef GRUB_MACHINE_PCBIOS - #include -@@ -1012,11 +1013,16 @@ grub_netbsd_add_modules (void) - struct grub_netbsd_btinfo_modules *mods; - unsigned i; - grub_err_t err; -+ grub_size_t sz; - - for (mod = netbsd_mods; mod; mod = mod->next) - modcnt++; - -- mods = grub_malloc (sizeof (*mods) + sizeof (mods->mods[0]) * modcnt); -+ if (grub_mul (modcnt, sizeof (mods->mods[0]), &sz) || -+ grub_add (sz, sizeof (*mods), &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ -+ mods = grub_malloc (sz); - if (!mods) - return grub_errno; - -diff --git a/grub-core/net/dns.c b/grub-core/net/dns.c -index e332d5eb4..906ec7d67 100644 ---- a/grub-core/net/dns.c -+++ b/grub-core/net/dns.c -@@ -22,6 +22,7 @@ - #include - #include - #include -+#include - - struct dns_cache_element - { -@@ -51,9 +52,15 @@ grub_net_add_dns_server (const struct grub_net_network_level_address *s) - { - int na = dns_servers_alloc * 2; - struct grub_net_network_level_address *ns; -+ grub_size_t sz; -+ - if (na < 8) - na = 8; -- ns = grub_realloc (dns_servers, na * sizeof (ns[0])); -+ -+ if (grub_mul (na, sizeof (ns[0]), &sz)) -+ return GRUB_ERR_OUT_OF_RANGE; -+ -+ ns = grub_realloc (dns_servers, sz); - if (!ns) - return grub_errno; - dns_servers_alloc = na; -diff --git a/grub-core/normal/charset.c b/grub-core/normal/charset.c -index d57fb72fa..4dfcc3107 100644 ---- a/grub-core/normal/charset.c -+++ b/grub-core/normal/charset.c -@@ -48,6 +48,7 @@ - #include - #include - #include -+#include - - #if HAVE_FONT_SOURCE - #include "widthspec.h" -@@ -464,6 +465,7 @@ grub_unicode_aglomerate_comb (const grub_uint32_t *in, grub_size_t inlen, - { - struct grub_unicode_combining *n; - unsigned j; -+ grub_size_t sz; - - if (!haveout) - continue; -@@ -477,10 +479,14 @@ grub_unicode_aglomerate_comb (const grub_uint32_t *in, grub_size_t inlen, - n = out->combining_inline; - else if (out->ncomb > (int) ARRAY_SIZE (out->combining_inline)) - { -- n = grub_realloc (out->combining_ptr, -- sizeof (n[0]) * (out->ncomb + 1)); -+ if (grub_add (out->ncomb, 1, &sz) || -+ grub_mul (sz, sizeof (n[0]), &sz)) -+ goto fail; -+ -+ n = grub_realloc (out->combining_ptr, sz); - if (!n) - { -+ fail: - grub_errno = GRUB_ERR_NONE; - continue; - } -diff --git a/grub-core/normal/cmdline.c b/grub-core/normal/cmdline.c -index c57242e2e..de03fe63b 100644 ---- a/grub-core/normal/cmdline.c -+++ b/grub-core/normal/cmdline.c -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - - static grub_uint32_t *kill_buf; - -@@ -307,12 +308,21 @@ cl_insert (struct cmdline_term *cl_terms, unsigned nterms, - if (len + (*llen) >= (*max_len)) - { - grub_uint32_t *nbuf; -- (*max_len) *= 2; -- nbuf = grub_realloc ((*buf), sizeof (grub_uint32_t) * (*max_len)); -+ grub_size_t sz; -+ -+ if (grub_mul (*max_len, 2, max_len) || -+ grub_mul (*max_len, sizeof (grub_uint32_t), &sz)) -+ { -+ grub_errno = GRUB_ERR_OUT_OF_RANGE; -+ goto fail; -+ } -+ -+ nbuf = grub_realloc ((*buf), sz); - if (nbuf) - (*buf) = nbuf; - else - { -+ fail: - grub_print_error (); - grub_errno = GRUB_ERR_NONE; - (*max_len) /= 2; -diff --git a/grub-core/normal/menu_entry.c b/grub-core/normal/menu_entry.c -index 1993995be..50eef918c 100644 ---- a/grub-core/normal/menu_entry.c -+++ b/grub-core/normal/menu_entry.c -@@ -27,6 +27,7 @@ - #include - #include - #include -+#include - - enum update_mode - { -@@ -113,10 +114,18 @@ ensure_space (struct line *linep, int extra) - { - if (linep->max_len < linep->len + extra) - { -- linep->max_len = 2 * (linep->len + extra); -- linep->buf = grub_realloc (linep->buf, (linep->max_len + 1) * sizeof (linep->buf[0])); -+ grub_size_t sz0, sz1; -+ -+ if (grub_add (linep->len, extra, &sz0) || -+ grub_mul (sz0, 2, &sz0) || -+ grub_add (sz0, 1, &sz1) || -+ grub_mul (sz1, sizeof (linep->buf[0]), &sz1)) -+ return 0; -+ -+ linep->buf = grub_realloc (linep->buf, sz1); - if (! linep->buf) - return 0; -+ linep->max_len = sz0; - } - - return 1; -diff --git a/grub-core/script/argv.c b/grub-core/script/argv.c -index 217ec5d1e..5751fdd57 100644 ---- a/grub-core/script/argv.c -+++ b/grub-core/script/argv.c -@@ -20,6 +20,7 @@ - #include - #include - #include -+#include - - /* Return nearest power of two that is >= v. */ - static unsigned -@@ -81,11 +82,16 @@ int - grub_script_argv_next (struct grub_script_argv *argv) - { - char **p = argv->args; -+ grub_size_t sz; - - if (argv->args && argv->argc && argv->args[argv->argc - 1] == 0) - return 0; - -- p = grub_realloc (p, round_up_exp ((argv->argc + 2) * sizeof (char *))); -+ if (grub_add (argv->argc, 2, &sz) || -+ grub_mul (sz, sizeof (char *), &sz)) -+ return 1; -+ -+ p = grub_realloc (p, round_up_exp (sz)); - if (! p) - return 1; - -@@ -105,13 +111,19 @@ grub_script_argv_append (struct grub_script_argv *argv, const char *s, - { - grub_size_t a; - char *p = argv->args[argv->argc - 1]; -+ grub_size_t sz; - - if (! s) - return 0; - - a = p ? grub_strlen (p) : 0; - -- p = grub_realloc (p, round_up_exp ((a + slen + 1) * sizeof (char))); -+ if (grub_add (a, slen, &sz) || -+ grub_add (sz, 1, &sz) || -+ grub_mul (sz, sizeof (char), &sz)) -+ return 1; -+ -+ p = grub_realloc (p, round_up_exp (sz)); - if (! p) - return 1; - -diff --git a/grub-core/script/lexer.c b/grub-core/script/lexer.c -index c6bd3172f..5fb0cbd0b 100644 ---- a/grub-core/script/lexer.c -+++ b/grub-core/script/lexer.c -@@ -24,6 +24,7 @@ - #include - #include - #include -+#include - - #define yytext_ptr char * - #include "grub_script.tab.h" -@@ -110,10 +111,14 @@ grub_script_lexer_record (struct grub_parser_param *parser, char *str) - old = lexer->recording; - if (lexer->recordlen < len) - lexer->recordlen = len; -- lexer->recordlen *= 2; -+ -+ if (grub_mul (lexer->recordlen, 2, &lexer->recordlen)) -+ goto fail; -+ - lexer->recording = grub_realloc (lexer->recording, lexer->recordlen); - if (!lexer->recording) - { -+ fail: - grub_free (old); - lexer->recordpos = 0; - lexer->recordlen = 0; -@@ -130,7 +135,7 @@ int - grub_script_lexer_yywrap (struct grub_parser_param *parserstate, - const char *input) - { -- grub_size_t len = 0; -+ grub_size_t len = 0, sz; - char *p = 0; - char *line = 0; - YY_BUFFER_STATE buffer; -@@ -168,12 +173,22 @@ grub_script_lexer_yywrap (struct grub_parser_param *parserstate, - } - else if (len && line[len - 1] != '\n') - { -- p = grub_realloc (line, len + 2); -+ if (grub_add (len, 2, &sz)) -+ { -+ grub_free (line); -+ grub_script_yyerror (parserstate, N_("overflow is detected")); -+ return 1; -+ } -+ -+ p = grub_realloc (line, sz); - if (p) - { - p[len++] = '\n'; - p[len] = '\0'; - } -+ else -+ grub_free (line); -+ - line = p; - } - -diff --git a/grub-core/video/bitmap.c b/grub-core/video/bitmap.c -index b2e031566..6256e209a 100644 ---- a/grub-core/video/bitmap.c -+++ b/grub-core/video/bitmap.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -58,7 +59,7 @@ grub_video_bitmap_create (struct grub_video_bitmap **bitmap, - enum grub_video_blit_format blit_format) - { - struct grub_video_mode_info *mode_info; -- unsigned int size; -+ grub_size_t size; - - if (!bitmap) - return grub_error (GRUB_ERR_BUG, "invalid argument"); -@@ -137,19 +138,25 @@ grub_video_bitmap_create (struct grub_video_bitmap **bitmap, - - mode_info->pitch = width * mode_info->bytes_per_pixel; - -- /* Calculate size needed for the data. */ -- size = (width * mode_info->bytes_per_pixel) * height; -+ /* Calculate size needed for the data. */ -+ if (grub_mul (width, mode_info->bytes_per_pixel, &size) || -+ grub_mul (size, height, &size)) -+ { -+ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ goto fail; -+ } - - (*bitmap)->data = grub_zalloc (size); - if (! (*bitmap)->data) -- { -- grub_free (*bitmap); -- *bitmap = 0; -- -- return grub_errno; -- } -+ goto fail; - - return GRUB_ERR_NONE; -+ -+ fail: -+ grub_free (*bitmap); -+ *bitmap = NULL; -+ -+ return grub_errno; - } - - /* Frees all resources allocated by bitmap. */ -diff --git a/grub-core/video/readers/png.c b/grub-core/video/readers/png.c -index 61bd64537..0157ff742 100644 ---- a/grub-core/video/readers/png.c -+++ b/grub-core/video/readers/png.c -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -301,9 +302,17 @@ grub_png_decode_image_header (struct grub_png_data *data) - data->bpp <<= 1; - - data->color_bits = color_bits; -- data->row_bytes = data->image_width * data->bpp; -+ -+ if (grub_mul (data->image_width, data->bpp, &data->row_bytes)) -+ return grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ - if (data->color_bits <= 4) -- data->row_bytes = (data->image_width * data->color_bits + 7) / 8; -+ { -+ if (grub_mul (data->image_width, data->color_bits + 7, &data->row_bytes)) -+ return grub_error (GRUB_ERR_OUT_OF_RANGE, N_("overflow is detected")); -+ -+ data->row_bytes >>= 3; -+ } - - #ifndef GRUB_CPU_WORDS_BIGENDIAN - if (data->is_16bit || data->is_gray || data->is_palette) diff --git a/patches/grub/2.04/safe-alloc-5.patch b/patches/grub/2.04/safe-alloc-5.patch deleted file mode 100644 index 19819278c..000000000 --- a/patches/grub/2.04/safe-alloc-5.patch +++ /dev/null @@ -1,149 +0,0 @@ -From 3e6aa687d9a2f8d172536a67d0d0f8bc7adb3108 Mon Sep 17 00:00:00 2001 -From: Alexander Burmashev -Date: Wed, 22 Jul 2020 06:04:38 -0700 -Subject: update safemath with fallback code for gcc older than 5.1 - -The code used in the header was taken from linux kernel commit -f0907827a8a9152aedac2833ed1b674a7b2a44f2. Rasmus Villemoes -, the original author of the patch, was -contacted directly, confirmed his authorship of the code, and gave his -permission on treating that dual license as MIT and including into GRUB2 -sources - -Signed-off-by: Alex Burmashev - -Patch-Name: safe-alloc-5.patch ---- - include/grub/safemath.h | 119 +++++++++++++++++++++++++++++++++++++++- - 1 file changed, 118 insertions(+), 1 deletion(-) - -diff --git a/include/grub/safemath.h b/include/grub/safemath.h -index c17b89bba..1ccac276b 100644 ---- a/include/grub/safemath.h -+++ b/include/grub/safemath.h -@@ -31,7 +31,124 @@ - #define grub_mul(a, b, res) __builtin_mul_overflow(a, b, res) - - #else --#error gcc 5.1 or newer or clang 3.8 or newer is required -+/* -+ * Copyright 2020 Rasmus Villemoes -+ * -+ * Permission is hereby granted, free of charge, to any person obtaining a copy -+ * of this software and associated documentation files (the "Software"), to -+ * deal in the Software without restriction, including without limitation the -+ * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -+ * sell copies of the Software, and to permit persons to whom the Software is -+ * furnished to do so, subject to the following conditions: -+ * -+ * The above copyright notice and this permission notice shall be included in -+ * all copies or substantial portions of the Software. -+ -+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS -+ * IN THE SOFTWARE. -+ */ -+/* -+ * The code used in this header was taken from linux kernel commit -+ * f0907827a8a9152aedac2833ed1b674a7b2a44f2 -+ * Rasmus Villemoes , the original author of the -+ * patch, was contacted directly, confirmed his authorship of the code, and -+ * gave his permission on treating that dual license as MIT and including into -+ * GRUB2 sources -+ */ -+ -+#include -+#define is_signed_type(type) (((type)(-1)) < (type)1) -+#define __type_half_max(type) ((type)1 << (8*sizeof(type) - 1 - is_signed_type(type))) -+#define type_max(T) ((T)((__type_half_max(T) - 1) + __type_half_max(T))) -+#define type_min(T) ((T)((T)-type_max(T)-(T)1)) -+ -+#define __unsigned_add_overflow(a, b, d) ({ \ -+ typeof(+(a)) __a = (a); \ -+ typeof(+(b)) __b = (b); \ -+ typeof(d) __d = (d); \ -+ (void) (&__a == &__b); \ -+ (void) (&__a == __d); \ -+ *__d = __a + __b; \ -+ *__d < __a; \ -+}) -+#define __unsigned_sub_overflow(a, b, d) ({ \ -+ typeof(+(a)) __a = (a); \ -+ typeof(+(b)) __b = (b); \ -+ typeof(d) __d = (d); \ -+ (void) (&__a == &__b); \ -+ (void) (&__a == __d); \ -+ *__d = __a - __b; \ -+ __a < __b; \ -+}) -+#define __unsigned_mul_overflow(a, b, d) ({ \ -+ typeof(+(a)) __a = (a); \ -+ typeof(+(b)) __b = (b); \ -+ typeof(d) __d = (d); \ -+ (void) (&__a == &__b); \ -+ (void) (&__a == __d); \ -+ *__d = __a * __b; \ -+ __builtin_constant_p(__b) ? \ -+ __b > 0 && __a > type_max(typeof(__a)) / __b :\ -+ __a > 0 && __b > type_max(typeof(__b)) / __a; \ -+}) -+ -+#define __signed_add_overflow(a, b, d) ({ \ -+ typeof(+(a)) __a = (a); \ -+ typeof(+(b)) __b = (b); \ -+ typeof(d) __d = (d); \ -+ (void) (&__a == &__b); \ -+ (void) (&__a == __d); \ -+ *__d = (grub_uint64_t)__a + (grub_uint64_t)__b; \ -+ (((~(__a ^ __b)) & (*__d ^ __a)) \ -+ & type_min(typeof(__a))) != 0; \ -+}) -+ -+#define __signed_sub_overflow(a, b, d) ({ \ -+ typeof(+(a)) __a = (a); \ -+ typeof(+(b)) __b = (b); \ -+ typeof(d) __d = (d); \ -+ (void) (&__a == &__b); \ -+ (void) (&__a == __d); \ -+ *__d = (grub_uint64_t)__a - (grub_uint64_t)__b; \ -+ ((((__a ^ __b)) & (*__d ^ __a)) \ -+ & type_min(typeof(__a))) != 0; \ -+}) -+ -+#define __signed_mul_overflow(a, b, d) ({ \ -+ typeof(+(a)) __a = (a); \ -+ typeof(+(b)) __b = (b); \ -+ typeof(d) __d = (d); \ -+ typeof(+(a)) __tmax = type_max(typeof(+(a))); \ -+ typeof(+(a)) __tmin = type_min(typeof(+(a))); \ -+ (void) (&__a == &__b); \ -+ (void) (&__a == __d); \ -+ *__d = (grub_uint64_t)__a * (grub_uint64_t)__b; \ -+ (__b > 0 && (__a > __tmax/__b || __a < __tmin/__b)) ||\ -+ (__b < (typeof(__b))-1 && \ -+ (__a > __tmin/__b || __a < __tmax/__b)) || \ -+ (__b == (typeof(__b))-1 && __a == __tmin); \ -+}) -+ -+#define grub_add(a, b, d) \ -+ __builtin_choose_expr(is_signed_type(typeof(+(a))), \ -+ __signed_add_overflow(a, b, d), \ -+ __unsigned_add_overflow(a, b, d)) -+ -+#define grub_sub(a, b, d) \ -+ __builtin_choose_expr(is_signed_type(typeof(+(a))), \ -+ __signed_sub_overflow(a, b, d), \ -+ __unsigned_sub_overflow(a, b, d)) -+ -+#define grub_mul(a, b, d) \ -+ __builtin_choose_expr(is_signed_type(typeof(+(a))), \ -+ __signed_mul_overflow(a, b, d), \ -+ __unsigned_mul_overflow(a, b, d)) -+ - #endif - - #endif /* GRUB_SAFEMATH_H */ diff --git a/patches/grub/2.04/script-remove-unused-fields.patch b/patches/grub/2.04/script-remove-unused-fields.patch deleted file mode 100644 index c1bd21f14..000000000 --- a/patches/grub/2.04/script-remove-unused-fields.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 7855b7e78de5f257fa686ec569bda27472c4f5da Mon Sep 17 00:00:00 2001 -From: Chris Coulson -Date: Fri, 10 Jul 2020 11:21:14 +0100 -Subject: script: Remove unused fields from grub_script_function struct - -Signed-off-by: Chris Coulson -Reviewed-by: Daniel Kiper - -Patch-Name: script-remove-unused-fields.patch ---- - include/grub/script_sh.h | 5 ----- - 1 file changed, 5 deletions(-) - -diff --git a/include/grub/script_sh.h b/include/grub/script_sh.h -index 360c2be1f..b382bcf09 100644 ---- a/include/grub/script_sh.h -+++ b/include/grub/script_sh.h -@@ -359,13 +359,8 @@ struct grub_script_function - /* The script function. */ - struct grub_script *func; - -- /* The flags. */ -- unsigned flags; -- - /* The next element. */ - struct grub_script_function *next; -- -- int references; - }; - typedef struct grub_script_function *grub_script_function_t; - diff --git a/patches/grub/2.04/script-use-after-free.patch b/patches/grub/2.04/script-use-after-free.patch deleted file mode 100644 index 989076a39..000000000 --- a/patches/grub/2.04/script-use-after-free.patch +++ /dev/null @@ -1,108 +0,0 @@ -From fdc80d2460e5d3b54f5cde8657f9e171b0b9a376 Mon Sep 17 00:00:00 2001 -From: Chris Coulson -Date: Fri, 10 Jul 2020 14:41:45 +0100 -Subject: script: Avoid a use-after-free when redefining a function during - execution - -Defining a new function with the same name as a previously defined -function causes the grub_script and associated resources for the -previous function to be freed. If the previous function is currently -executing when a function with the same name is defined, this results -in use-after-frees when processing subsequent commands in the original -function. - -Instead, reject a new function definition if it has the same name as -a previously defined function, and that function is currently being -executed. Although a behavioural change, this should be backwards -compatible with existing configurations because they can't be -dependent on the current behaviour without being broken. - -Fixes: CVE-2020-15706 - -Signed-off-by: Chris Coulson -Reviewed-by: Daniel Kiper - -Patch-Name: script-use-after-free.patch ---- - grub-core/script/execute.c | 2 ++ - grub-core/script/function.c | 16 +++++++++++++--- - grub-core/script/parser.y | 3 ++- - include/grub/script_sh.h | 2 ++ - 4 files changed, 19 insertions(+), 4 deletions(-) - -diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c -index c8d6806fe..7e028e135 100644 ---- a/grub-core/script/execute.c -+++ b/grub-core/script/execute.c -@@ -838,7 +838,9 @@ grub_script_function_call (grub_script_function_t func, int argc, char **args) - old_scope = scope; - scope = &new_scope; - -+ func->executing++; - ret = grub_script_execute (func->func); -+ func->executing--; - - function_return = 0; - active_loops = loops; -diff --git a/grub-core/script/function.c b/grub-core/script/function.c -index d36655e51..3aad04bf9 100644 ---- a/grub-core/script/function.c -+++ b/grub-core/script/function.c -@@ -34,6 +34,7 @@ grub_script_function_create (struct grub_script_arg *functionname_arg, - func = (grub_script_function_t) grub_malloc (sizeof (*func)); - if (! func) - return 0; -+ func->executing = 0; - - func->name = grub_strdup (functionname_arg->str); - if (! func->name) -@@ -60,10 +61,19 @@ grub_script_function_create (struct grub_script_arg *functionname_arg, - grub_script_function_t q; - - q = *p; -- grub_script_free (q->func); -- q->func = cmd; - grub_free (func); -- func = q; -+ if (q->executing > 0) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, -+ N_("attempt to redefine a function being executed")); -+ func = NULL; -+ } -+ else -+ { -+ grub_script_free (q->func); -+ q->func = cmd; -+ func = q; -+ } - } - else - { -diff --git a/grub-core/script/parser.y b/grub-core/script/parser.y -index 4f0ab8319..f80b86b6f 100644 ---- a/grub-core/script/parser.y -+++ b/grub-core/script/parser.y -@@ -289,7 +289,8 @@ function: "function" "name" - grub_script_mem_free (state->func_mem); - else { - script->children = state->scripts; -- grub_script_function_create ($2, script); -+ if (!grub_script_function_create ($2, script)) -+ grub_script_free (script); - } - - state->scripts = $3; -diff --git a/include/grub/script_sh.h b/include/grub/script_sh.h -index b382bcf09..6c48e0751 100644 ---- a/include/grub/script_sh.h -+++ b/include/grub/script_sh.h -@@ -361,6 +361,8 @@ struct grub_script_function - - /* The next element. */ - struct grub_script_function *next; -+ -+ unsigned executing; - }; - typedef struct grub_script_function *grub_script_function_t; - diff --git a/patches/grub/2.04/series b/patches/grub/2.04/series deleted file mode 100644 index 725c3d945..000000000 --- a/patches/grub/2.04/series +++ /dev/null @@ -1,99 +0,0 @@ -olpc-prefix-hack.patch -core-in-fs.patch -dpkg-version-comparison.patch -grub-legacy-0-based-partitions.patch -disable-floppies.patch -grub.cfg-400.patch -gfxpayload-keep-default.patch -install-stage2-confusion.patch -mkrescue-efi-modules.patch -mkconfig-loopback.patch -restore-mkdevicemap.patch -gettext-quiet.patch -install-efi-fallback.patch -mkconfig-ubuntu-recovery.patch -install-locale-langpack.patch -mkconfig-nonexistent-loopback.patch -no-insmod-on-sb.patch -default-grub-d.patch -blacklist-1440x900x32.patch -uefi-firmware-setup.patch -mkconfig-ubuntu-distributor.patch -linuxefi.patch -mkconfig-signed-kernel.patch -install-signed.patch -sleep-shift.patch -wubi-no-windows.patch -maybe-quiet.patch -install-efi-adjust-distributor.patch -quick-boot.patch -quick-boot-lvm.patch -gfxpayload-dynamic.patch -vt-handoff.patch -probe-fusionio.patch -ignore-grub_func_test-failures.patch -mkconfig-recovery-title.patch -install-powerpc-machtypes.patch -ieee1275-clear-reset.patch -ppc64el-disable-vsx.patch -grub-install-pvxen-paths.patch -insmod-xzio-and-lzopio-on-xen.patch -grub-install-extra-removable.patch -mkconfig-other-inits.patch -zpool-full-device-name.patch -net-read-bracketed-ipv6-addr.patch -bootp-new-net_bootp6-command.patch -efinet-uefi-ipv6-pxe-support.patch -bootp-process-dhcpack-http-boot.patch -efinet-set-network-from-uefi-devpath.patch -efinet-set-dns-from-uefi-proto.patch -fix-lockdown.patch -skip-grub_cmd_set_date.patch -bash-completion-drop-have-checks.patch -at_keyboard-module-init.patch -uefi-secure-boot-cryptomount.patch -vsnprintf-upper-case-hex.patch -efi-variable-storage-minimise-writes.patch -no-devicetree-if-secure-boot.patch -grub-install-removable-shim.patch -sparc64-fix-bios-boot-partition-support.patch -verifiers-blocklist-fallout.patch -btrfs-raid1c34.patch -dejavu-font-path.patch -xen-ignore-xenpolicy-and-config.patch -xen-support-xsm.patch -xen-no-xsm-policy-in-non-xsm-options.patch -CVE-2020-10713.patch -safe-alloc-1.patch -safe-alloc-2.patch -safe-alloc-3.patch -safe-alloc-4.patch -iso9660-realloc-leak.patch -font-name-leak.patch -gfxmenu-load-image-double-free.patch -xnu-double-free.patch -lzma-overflow.patch -term-overflow.patch -udf-leak.patch -multiboot2-leak.patch -tftp-no-priority-queue.patch -relocator-chunk-addr-overflow.patch -relocator-chunk-align-underflow.patch -script-remove-unused-fields.patch -script-use-after-free.patch -relocator-chunk-align-fix-top.patch -hfsplus-overflow.patch -lvm-overflow.patch -emu-free-null.patch -efi-malformed-device-path.patch -efi-malformed-device-path-2.patch -safe-alloc-5.patch -efi-halt-reboot-use-after-free.patch -linux-loader-overflow.patch -linux-initrd-overflow.patch -bootp-alloc.patch -unix-config-overflow.patch -deviceiter-overflow.patch -is_sb_enabled_command.patch -mdraid1x-linux-gcc-10.patch -zfs-gcc-10.patch diff --git a/patches/grub/2.04/skip-grub_cmd_set_date.patch b/patches/grub/2.04/skip-grub_cmd_set_date.patch deleted file mode 100644 index 67faaa4a4..000000000 --- a/patches/grub/2.04/skip-grub_cmd_set_date.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 00fc42d9bcd934148a927dc94ccbb59084a420db Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Sun, 28 Oct 2018 19:45:56 +0000 -Subject: Skip flaky grub_cmd_set_date test - -Bug-Debian: https://bugs.debian.org/906470 -Last-Update: 2018-10-28 - -Patch-Name: skip-grub_cmd_set_date.patch ---- - tests/grub_cmd_set_date.in | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/tests/grub_cmd_set_date.in b/tests/grub_cmd_set_date.in -index aac120a6c..1bb5be4ca 100644 ---- a/tests/grub_cmd_set_date.in -+++ b/tests/grub_cmd_set_date.in -@@ -1,6 +1,9 @@ - #! @BUILD_SHEBANG@ - set -e - -+echo "Skipping flaky test." -+exit 77 -+ - . "@builddir@/grub-core/modinfo.sh" - - case "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" in diff --git a/patches/grub/2.04/sleep-shift.patch b/patches/grub/2.04/sleep-shift.patch deleted file mode 100644 index 34ea6242d..000000000 --- a/patches/grub/2.04/sleep-shift.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 5d7d236d606632d194bdec1b8cfb52b2ecbaa5a6 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:23 +0000 -Subject: Allow Shift to interrupt 'sleep --interruptible' - -Upstream would like to consider this at more length. See -http://lists.gnu.org/archive/html/grub-devel/2009-08/msg00718.html, and -the rest of the thread for context. - -Forwarded: http://lists.gnu.org/archive/html/grub-devel/2009-08/msg00694.html -Last-Update: 2013-12-04 - -Patch-Name: sleep-shift.patch ---- - grub-core/commands/sleep.c | 27 ++++++++++++++++++++++++++- - grub-core/normal/menu.c | 19 +++++++++++++++++++ - 2 files changed, 45 insertions(+), 1 deletion(-) - -diff --git a/grub-core/commands/sleep.c b/grub-core/commands/sleep.c -index e77e7900f..3906b1410 100644 ---- a/grub-core/commands/sleep.c -+++ b/grub-core/commands/sleep.c -@@ -46,6 +46,31 @@ do_print (int n) - grub_refresh (); - } - -+static int -+grub_check_keyboard (void) -+{ -+ int mods = 0; -+ grub_term_input_t term; -+ -+ if (grub_term_poll_usb) -+ grub_term_poll_usb (0); -+ -+ FOR_ACTIVE_TERM_INPUTS(term) -+ { -+ if (term->getkeystatus) -+ mods |= term->getkeystatus (term); -+ } -+ -+ if (mods >= 0 && -+ (mods & (GRUB_TERM_STATUS_LSHIFT | GRUB_TERM_STATUS_RSHIFT)) != 0) -+ return 1; -+ -+ if (grub_getkey_noblock () == GRUB_TERM_ESC) -+ return 1; -+ -+ return 0; -+} -+ - /* Based on grub_millisleep() from kern/generic/millisleep.c. */ - static int - grub_interruptible_millisleep (grub_uint32_t ms) -@@ -55,7 +80,7 @@ grub_interruptible_millisleep (grub_uint32_t ms) - start = grub_get_time_ms (); - - while (grub_get_time_ms () - start < ms) -- if (grub_getkey_noblock () == GRUB_TERM_ESC) -+ if (grub_check_keyboard ()) - return 1; - - return 0; -diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c -index d5e0c79a7..3611ee9ea 100644 ---- a/grub-core/normal/menu.c -+++ b/grub-core/normal/menu.c -@@ -615,8 +615,27 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot) - saved_time = grub_get_time_ms (); - while (1) - { -+ int mods = 0; -+ grub_term_input_t term; - int key; - -+ if (grub_term_poll_usb) -+ grub_term_poll_usb (0); -+ -+ FOR_ACTIVE_TERM_INPUTS(term) -+ { -+ if (term->getkeystatus) -+ mods |= term->getkeystatus (term); -+ } -+ -+ if (mods >= 0 && -+ (mods & (GRUB_TERM_STATUS_LSHIFT -+ | GRUB_TERM_STATUS_RSHIFT)) != 0) -+ { -+ timeout = -1; -+ break; -+ } -+ - key = grub_getkey_noblock (); - if (key != GRUB_TERM_NO_KEY) - { diff --git a/patches/grub/2.04/sparc64-fix-bios-boot-partition-support.patch b/patches/grub/2.04/sparc64-fix-bios-boot-partition-support.patch deleted file mode 100644 index 69ef28727..000000000 --- a/patches/grub/2.04/sparc64-fix-bios-boot-partition-support.patch +++ /dev/null @@ -1,49 +0,0 @@ -From c5ab3241ea94f769437b08a26fa15b0872b03da4 Mon Sep 17 00:00:00 2001 -From: James Clarke -Date: Thu, 18 Jul 2019 14:31:55 +0200 -Subject: [PATCH] sparc64: Fix BIOS Boot Partition support - -Currently, gpt_offset is uninitialised when using a BIOS Boot Partition -but is used unconditionally inside save_blocklists. Instead, ensure it -is always initialised to 0 (note that there is already separate code to -do the equivalent adjustment after we call save_blocklists on this code -path). - -This patch has been tested on a T5-2 LDOM. - -Signed-off-by: James Clarke -Tested-by: John Paul Adrian Glaubitz -Reviewed-by: Vladimir Serbinenko -Reviewed-by: Eric Snowberg - -Origin: upstream, https://git.savannah.gnu.org/cgit/grub.git/commit/?id=4e75b2ae313b13b5bfb54cc5e5c53368d6eb2a08 -Bug-Debian: https://bugs.debian.org/931969 -Last-Update: 2019-08-06 - -Patch-Name: sparc64-fix-bios-boot-partition-support.patch ---- - util/setup.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/util/setup.c b/util/setup.c -index fbdf2fcc5..512977000 100644 ---- a/util/setup.c -+++ b/util/setup.c -@@ -272,6 +272,9 @@ SETUP (const char *dir, - #ifdef GRUB_SETUP_BIOS - bl.current_segment = - GRUB_BOOT_I386_PC_KERNEL_SEG + (GRUB_DISK_SECTOR_SIZE >> 4); -+#endif -+#ifdef GRUB_SETUP_SPARC64 -+ bl.gpt_offset = 0; - #endif - bl.last_length = 0; - -@@ -738,7 +741,6 @@ unable_to_embed: - #ifdef GRUB_SETUP_SPARC64 - { - grub_partition_t container = root_dev->disk->partition; -- bl.gpt_offset = 0; - - if (grub_strstr (container->partmap->name, "gpt")) - bl.gpt_offset = grub_partition_get_start (container); diff --git a/patches/grub/2.04/term-overflow.patch b/patches/grub/2.04/term-overflow.patch deleted file mode 100644 index 5baaa9242..000000000 --- a/patches/grub/2.04/term-overflow.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 2328abbe2caa2129084da04a3e19461ddc571549 Mon Sep 17 00:00:00 2001 -From: Konrad Rzeszutek Wilk -Date: Tue, 7 Jul 2020 15:12:25 -0400 -Subject: term: Fix overflow on user inputs - -This requires a very weird input from the serial interface but can cause -an overflow in input_buf (keys) overwriting the next variable (npending) -with the user choice: - -(pahole output) - -struct grub_terminfo_input_state { - int input_buf[6]; /* 0 24 */ - int npending; /* 24 4 */ <- CORRUPT - ...snip... - -The magic string requires causing this is "ESC,O,],0,1,2,q" and we overflow -npending with "q" (aka increase npending to 161). The simplest fix is to -just to disallow overwrites input_buf, which exactly what this patch does. - -Fixes: CID 292449 - -Signed-off-by: Konrad Rzeszutek Wilk -Reviewed-by: Daniel Kiper - -Patch-Name: term-overflow.patch ---- - grub-core/term/terminfo.c | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git a/grub-core/term/terminfo.c b/grub-core/term/terminfo.c -index 63892ad42..aa3a108ca 100644 ---- a/grub-core/term/terminfo.c -+++ b/grub-core/term/terminfo.c -@@ -398,7 +398,7 @@ grub_terminfo_getwh (struct grub_term_output *term) - } - - static void --grub_terminfo_readkey (struct grub_term_input *term, int *keys, int *len, -+grub_terminfo_readkey (struct grub_term_input *term, int *keys, int *len, int max_len, - int (*readkey) (struct grub_term_input *term)) - { - int c; -@@ -414,6 +414,9 @@ grub_terminfo_readkey (struct grub_term_input *term, int *keys, int *len, - if (c == -1) \ - return; \ - \ -+ if (*len >= max_len) \ -+ return; \ -+ \ - keys[*len] = c; \ - (*len)++; \ - } -@@ -602,8 +605,8 @@ grub_terminfo_getkey (struct grub_term_input *termi) - return ret; - } - -- grub_terminfo_readkey (termi, data->input_buf, -- &data->npending, data->readkey); -+ grub_terminfo_readkey (termi, data->input_buf, &data->npending, -+ GRUB_TERMINFO_READKEY_MAX_LEN, data->readkey); - - #if defined(__powerpc__) && defined(GRUB_MACHINE_IEEE1275) - if (data->npending == 1 && data->input_buf[0] == GRUB_TERM_ESC diff --git a/patches/grub/2.04/tftp-no-priority-queue.patch b/patches/grub/2.04/tftp-no-priority-queue.patch deleted file mode 100644 index 8aaae63ec..000000000 --- a/patches/grub/2.04/tftp-no-priority-queue.patch +++ /dev/null @@ -1,281 +0,0 @@ -From 7726da0d972c3996b3ced02586204334eb03d472 Mon Sep 17 00:00:00 2001 -From: Alexey Makhalov -Date: Thu, 9 Jul 2020 08:10:40 +0000 -Subject: tftp: Do not use priority queue - -There is not need to reassemble the order of blocks. Per RFC 1350, -server must wait for the ACK, before sending next block. Data packets -can be served immediately without putting them to priority queue. - -Logic to handle incoming packet is this: - - if packet block id equal to expected block id, then - process the packet, - - if packet block id is less than expected - this is retransmit - of old packet, then ACK it and drop the packet, - - if packet block id is more than expected - that shouldn't - happen, just drop the packet. - -It makes the tftp receive path code simpler, smaller and faster. -As a benefit, this change fixes CID# 73624 and CID# 96690, caused -by following while loop: - - while (cmp_block (grub_be_to_cpu16 (tftph->u.data.block), data->block + 1) == 0) - -where tftph pointer is not moving from one iteration to another, causing -to serve same packet again. Luckily, double serving didn't happen due to -data->block++ during the first iteration. - -Fixes: CID 73624, CID 96690 - -Signed-off-by: Alexey Makhalov -Reviewed-by: Daniel Kiper - -Patch-Name: tftp-no-priority-queue.patch ---- - grub-core/net/tftp.c | 168 ++++++++++++++----------------------------- - 1 file changed, 53 insertions(+), 115 deletions(-) - -diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c -index a0817a075..84229d03d 100644 ---- a/grub-core/net/tftp.c -+++ b/grub-core/net/tftp.c -@@ -25,7 +25,6 @@ - #include - #include - #include --#include - #include - - GRUB_MOD_LICENSE ("GPLv3+"); -@@ -106,31 +105,8 @@ typedef struct tftp_data - int have_oack; - struct grub_error_saved save_err; - grub_net_udp_socket_t sock; -- grub_priority_queue_t pq; - } *tftp_data_t; - --static int --cmp_block (grub_uint16_t a, grub_uint16_t b) --{ -- grub_int16_t i = (grub_int16_t) (a - b); -- if (i > 0) -- return +1; -- if (i < 0) -- return -1; -- return 0; --} -- --static int --cmp (const void *a__, const void *b__) --{ -- struct grub_net_buff *a_ = *(struct grub_net_buff **) a__; -- struct grub_net_buff *b_ = *(struct grub_net_buff **) b__; -- struct tftphdr *a = (struct tftphdr *) a_->data; -- struct tftphdr *b = (struct tftphdr *) b_->data; -- /* We want the first elements to be on top. */ -- return -cmp_block (grub_be_to_cpu16 (a->u.data.block), grub_be_to_cpu16 (b->u.data.block)); --} -- - static grub_err_t - ack (tftp_data_t data, grub_uint64_t block) - { -@@ -207,73 +183,60 @@ tftp_receive (grub_net_udp_socket_t sock __attribute__ ((unused)), - return GRUB_ERR_NONE; - } - -- err = grub_priority_queue_push (data->pq, &nb); -- if (err) -- return err; -- -- { -- struct grub_net_buff **nb_top_p, *nb_top; -- while (1) -- { -- nb_top_p = grub_priority_queue_top (data->pq); -- if (!nb_top_p) -- return GRUB_ERR_NONE; -- nb_top = *nb_top_p; -- tftph = (struct tftphdr *) nb_top->data; -- if (cmp_block (grub_be_to_cpu16 (tftph->u.data.block), data->block + 1) >= 0) -- break; -- ack (data, grub_be_to_cpu16 (tftph->u.data.block)); -- grub_netbuff_free (nb_top); -- grub_priority_queue_pop (data->pq); -- } -- while (cmp_block (grub_be_to_cpu16 (tftph->u.data.block), data->block + 1) == 0) -- { -- unsigned size; -- -- grub_priority_queue_pop (data->pq); -- -- if (file->device->net->packs.count < 50) -+ /* Ack old/retransmitted block. */ -+ if (grub_be_to_cpu16 (tftph->u.data.block) < data->block + 1) -+ ack (data, grub_be_to_cpu16 (tftph->u.data.block)); -+ /* Ignore unexpected block. */ -+ else if (grub_be_to_cpu16 (tftph->u.data.block) > data->block + 1) -+ grub_dprintf ("tftp", "TFTP unexpected block # %d\n", tftph->u.data.block); -+ else -+ { -+ unsigned size; -+ -+ if (file->device->net->packs.count < 50) -+ { - err = ack (data, data->block + 1); -- else -- { -- file->device->net->stall = 1; -- err = 0; -- } -- if (err) -- return err; -- -- err = grub_netbuff_pull (nb_top, sizeof (tftph->opcode) + -- sizeof (tftph->u.data.block)); -- if (err) -- return err; -- size = nb_top->tail - nb_top->data; -- -- data->block++; -- if (size < data->block_size) -- { -- if (data->ack_sent < data->block) -- ack (data, data->block); -- file->device->net->eof = 1; -- file->device->net->stall = 1; -- grub_net_udp_close (data->sock); -- data->sock = NULL; -- } -- /* Prevent garbage in broken cards. Is it still necessary -- given that IP implementation has been fixed? -- */ -- if (size > data->block_size) -- { -- err = grub_netbuff_unput (nb_top, size - data->block_size); -- if (err) -- return err; -- } -- /* If there is data, puts packet in socket list. */ -- if ((nb_top->tail - nb_top->data) > 0) -- grub_net_put_packet (&file->device->net->packs, nb_top); -- else -- grub_netbuff_free (nb_top); -- } -- } -+ if (err) -+ return err; -+ } -+ else -+ file->device->net->stall = 1; -+ -+ err = grub_netbuff_pull (nb, sizeof (tftph->opcode) + -+ sizeof (tftph->u.data.block)); -+ if (err) -+ return err; -+ size = nb->tail - nb->data; -+ -+ data->block++; -+ if (size < data->block_size) -+ { -+ if (data->ack_sent < data->block) -+ ack (data, data->block); -+ file->device->net->eof = 1; -+ file->device->net->stall = 1; -+ grub_net_udp_close (data->sock); -+ data->sock = NULL; -+ } -+ /* -+ * Prevent garbage in broken cards. Is it still necessary -+ * given that IP implementation has been fixed? -+ */ -+ if (size > data->block_size) -+ { -+ err = grub_netbuff_unput (nb, size - data->block_size); -+ if (err) -+ return err; -+ } -+ /* If there is data, puts packet in socket list. */ -+ if ((nb->tail - nb->data) > 0) -+ { -+ grub_net_put_packet (&file->device->net->packs, nb); -+ /* Do not free nb. */ -+ return GRUB_ERR_NONE; -+ } -+ } -+ grub_netbuff_free (nb); - return GRUB_ERR_NONE; - case TFTP_ERROR: - data->have_oack = 1; -@@ -287,19 +250,6 @@ tftp_receive (grub_net_udp_socket_t sock __attribute__ ((unused)), - } - } - --static void --destroy_pq (tftp_data_t data) --{ -- struct grub_net_buff **nb_p; -- while ((nb_p = grub_priority_queue_top (data->pq))) -- { -- grub_netbuff_free (*nb_p); -- grub_priority_queue_pop (data->pq); -- } -- -- grub_priority_queue_destroy (data->pq); --} -- - static grub_err_t - tftp_open (struct grub_file *file, const char *filename) - { -@@ -373,20 +323,12 @@ tftp_open (struct grub_file *file, const char *filename) - file->not_easily_seekable = 1; - file->data = data; - -- data->pq = grub_priority_queue_new (sizeof (struct grub_net_buff *), cmp); -- if (!data->pq) -- { -- grub_free (data); -- return grub_errno; -- } -- - err = grub_net_resolve_address (file->device->net->server, &addr); - if (err) - { - grub_dprintf ("tftp", "file_size is %llu, block_size is %llu\n", - (unsigned long long)data->file_size, - (unsigned long long)data->block_size); -- destroy_pq (data); - grub_free (data); - return err; - } -@@ -396,7 +338,6 @@ tftp_open (struct grub_file *file, const char *filename) - file); - if (!data->sock) - { -- destroy_pq (data); - grub_free (data); - return grub_errno; - } -@@ -410,7 +351,6 @@ tftp_open (struct grub_file *file, const char *filename) - if (err) - { - grub_net_udp_close (data->sock); -- destroy_pq (data); - grub_free (data); - return err; - } -@@ -427,7 +367,6 @@ tftp_open (struct grub_file *file, const char *filename) - if (grub_errno) - { - grub_net_udp_close (data->sock); -- destroy_pq (data); - grub_free (data); - return grub_errno; - } -@@ -470,7 +409,6 @@ tftp_close (struct grub_file *file) - grub_print_error (); - grub_net_udp_close (data->sock); - } -- destroy_pq (data); - grub_free (data); - return GRUB_ERR_NONE; - } diff --git a/patches/grub/2.04/udf-leak.patch b/patches/grub/2.04/udf-leak.patch deleted file mode 100644 index a06d1db76..000000000 --- a/patches/grub/2.04/udf-leak.patch +++ /dev/null @@ -1,54 +0,0 @@ -From ba1d97845644290f03754432bcb6bbd6fefe7003 Mon Sep 17 00:00:00 2001 -From: Konrad Rzeszutek Wilk -Date: Tue, 7 Jul 2020 22:02:31 -0400 -Subject: udf: Fix memory leak - -Fixes: CID 73796 - -Signed-off-by: Konrad Rzeszutek Wilk -Reviewed-by: Daniel Kiper -Reviewed-by: Jan Setje-Eilers - -Patch-Name: udf-leak.patch ---- - grub-core/fs/udf.c | 17 +++++++++++++---- - 1 file changed, 13 insertions(+), 4 deletions(-) - -diff --git a/grub-core/fs/udf.c b/grub-core/fs/udf.c -index 21ac7f446..2ac5c1d00 100644 ---- a/grub-core/fs/udf.c -+++ b/grub-core/fs/udf.c -@@ -965,8 +965,10 @@ grub_udf_iterate_dir (grub_fshelp_node_t dir, - return 0; - - if (grub_udf_read_icb (dir->data, &dirent.icb, child)) -- return 0; -- -+ { -+ grub_free (child); -+ return 0; -+ } - if (dirent.characteristics & GRUB_UDF_FID_CHAR_PARENT) - { - /* This is the parent directory. */ -@@ -988,11 +990,18 @@ grub_udf_iterate_dir (grub_fshelp_node_t dir, - dirent.file_ident_length, - (char *) raw)) - != dirent.file_ident_length) -- return 0; -+ { -+ grub_free (child); -+ return 0; -+ } - - filename = read_string (raw, dirent.file_ident_length, 0); - if (!filename) -- grub_print_error (); -+ { -+ /* As the hook won't get called. */ -+ grub_free (child); -+ grub_print_error (); -+ } - - if (filename && hook (filename, type, child, hook_data)) - { diff --git a/patches/grub/2.04/uefi-firmware-setup.patch b/patches/grub/2.04/uefi-firmware-setup.patch deleted file mode 100644 index a3b64c4ab..000000000 --- a/patches/grub/2.04/uefi-firmware-setup.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 13d2fe93f081930f1976fbd532672b44c5e7f90a Mon Sep 17 00:00:00 2001 -From: Steve Langasek -Date: Mon, 13 Jan 2014 12:13:12 +0000 -Subject: Output a menu entry for firmware setup on UEFI FastBoot systems - -Forwarded: no -Last-Update: 2015-09-04 - -Patch-Name: uefi-firmware-setup.patch ---- - Makefile.util.def | 6 +++++ - util/grub.d/30_uefi-firmware.in | 46 +++++++++++++++++++++++++++++++++ - 2 files changed, 52 insertions(+) - create mode 100644 util/grub.d/30_uefi-firmware.in - -diff --git a/Makefile.util.def b/Makefile.util.def -index 0029b9000..8a24b23f0 100644 ---- a/Makefile.util.def -+++ b/Makefile.util.def -@@ -519,6 +519,12 @@ script = { - installdir = grubconf; - }; - -+script = { -+ name = '30_uefi-firmware'; -+ common = util/grub.d/30_uefi-firmware.in; -+ installdir = grubconf; -+}; -+ - script = { - name = '40_custom'; - common = util/grub.d/40_custom.in; -diff --git a/util/grub.d/30_uefi-firmware.in b/util/grub.d/30_uefi-firmware.in -new file mode 100644 -index 000000000..3c9f533d8 ---- /dev/null -+++ b/util/grub.d/30_uefi-firmware.in -@@ -0,0 +1,46 @@ -+#! /bin/sh -+set -e -+ -+# grub-mkconfig helper script. -+# Copyright (C) 2012 Free Software Foundation, Inc. -+# -+# GRUB is free software: you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation, either version 3 of the License, or -+# (at your option) any later version. -+# -+# GRUB is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with GRUB. If not, see . -+ -+prefix="@prefix@" -+exec_prefix="@exec_prefix@" -+datarootdir="@datarootdir@" -+ -+export TEXTDOMAIN=@PACKAGE@ -+export TEXTDOMAINDIR="@localedir@" -+ -+. "@datadir@/@PACKAGE@/grub-mkconfig_lib" -+ -+efi_vars_dir=/sys/firmware/efi/vars -+EFI_GLOBAL_VARIABLE=8be4df61-93ca-11d2-aa0d-00e098032b8c -+OsIndications="$efi_vars_dir/OsIndicationsSupported-$EFI_GLOBAL_VARIABLE/data" -+ -+if [ -e "$OsIndications" ] && \ -+ [ "$(( $(printf 0x%x \'"$(cat $OsIndications | cut -b1)") & 1 ))" = 1 ]; then -+ LABEL="System setup" -+ -+ gettext_printf "Adding boot menu entry for EFI firmware configuration\n" >&2 -+ -+ onstr="$(gettext_printf "(on %s)" "${DEVICE}")" -+ -+ cat << EOF -+menuentry '$LABEL' \$menuentry_id_option 'uefi-firmware' { -+ fwsetup -+} -+EOF -+fi diff --git a/patches/grub/2.04/uefi-secure-boot-cryptomount.patch b/patches/grub/2.04/uefi-secure-boot-cryptomount.patch deleted file mode 100644 index 403a64858..000000000 --- a/patches/grub/2.04/uefi-secure-boot-cryptomount.patch +++ /dev/null @@ -1,48 +0,0 @@ -From cb6e90c39f78e1bacc5b8213d8fef90eb3230a1a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Herv=C3=A9=20Werner?= -Date: Mon, 28 Jan 2019 17:24:23 +0100 -Subject: Fix setup on Secure Boot systems where cryptodisk is in use - -On full-encrypted systems, including /boot, the current code omits -cryptodisk commands needed to open the drives if Secure Boot is enabled. -This prevents grub2 from reading any further configuration residing on -the encrypted disk. -This patch fixes this issue by adding the needed "cryptomount" commands in -the load.cfg file that is then copied in the EFI partition. - -Bug-Debian: https://bugs.debian.org/917117 -Last-Update: 2019-02-10 - -Patch-Name: uefi-secure-boot-cryptomount.patch ---- - util/grub-install.c | 17 +++++++++++++++++ - 1 file changed, 17 insertions(+) - -diff --git a/util/grub-install.c b/util/grub-install.c -index ab79828a5..ba06e1350 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -1523,6 +1523,23 @@ main (int argc, char *argv[]) - || uefi_secure_boot) - { - char *uuid = NULL; -+ -+ if (uefi_secure_boot && config.is_cryptodisk_enabled) -+ { -+ if (grub_dev->disk) -+ probe_cryptodisk_uuid (grub_dev->disk); -+ -+ for (curdrive = grub_drives + 1; *curdrive; curdrive++) -+ { -+ grub_device_t dev = grub_device_open (*curdrive); -+ if (!dev) -+ continue; -+ if (dev->disk) -+ probe_cryptodisk_uuid (dev->disk); -+ grub_device_close (dev); -+ } -+ } -+ - /* generic method (used on coreboot and ata mod). */ - if (!force_file_id - && grub_fs->fs_uuid && grub_fs->fs_uuid (grub_dev, &uuid)) diff --git a/patches/grub/2.04/unix-config-overflow.patch b/patches/grub/2.04/unix-config-overflow.patch deleted file mode 100644 index fc03a333c..000000000 --- a/patches/grub/2.04/unix-config-overflow.patch +++ /dev/null @@ -1,84 +0,0 @@ -From a0c8532b48cc452d2afd7d27f05c43c68b7b3f5e Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Fri, 24 Jul 2020 11:27:01 +0100 -Subject: unix/config: Fix integer overflow in grub_util_load_config - -This adjusts Debian's /etc/default/grub.d/*.cfg patch to perform safe -allocation. - -Signed-off-by: Colin Watson - -Patch-Name: unix-config-overflow.patch ---- - grub-core/osdep/unix/config.c | 22 ++++++++++++++++++---- - 1 file changed, 18 insertions(+), 4 deletions(-) - -diff --git a/grub-core/osdep/unix/config.c b/grub-core/osdep/unix/config.c -index 5478030fd..545d64b4c 100644 ---- a/grub-core/osdep/unix/config.c -+++ b/grub-core/osdep/unix/config.c -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -101,8 +102,14 @@ grub_util_load_config (struct grub_util_config *cfg) - cfgfile = grub_util_get_config_filename (); - if (grub_util_is_regular (cfgfile)) - { -+ size_t sz; -+ - ++num_cfgpaths; -- len_cfgpaths += strlen (cfgfile) * 4 + sizeof (". ''; ") - 1; -+ sz = strlen (cfgfile); -+ if (grub_mul (sz, 4, &sz) || -+ grub_add (sz, sizeof (". ''; ") - 1, &sz) || -+ grub_add (len_cfgpaths, sz, &len_cfgpaths)) -+ grub_util_error ("%s", _("overflow is detected")); - } - - cfgdir = xasprintf ("%s.d", cfgfile); -@@ -114,6 +121,7 @@ grub_util_load_config (struct grub_util_config *cfg) - while ((de = grub_util_fd_readdir (d))) - { - const char *ext = strrchr (de->d_name, '.'); -+ size_t sz; - - if (!ext || strcmp (ext, ".cfg") != 0) - continue; -@@ -122,7 +130,11 @@ grub_util_load_config (struct grub_util_config *cfg) - cfgpath->path = grub_util_path_concat (2, cfgdir, de->d_name); - grub_list_push (GRUB_AS_LIST_P (&cfgpaths), GRUB_AS_LIST (cfgpath)); - ++num_cfgpaths; -- len_cfgpaths += strlen (cfgpath->path) * 4 + sizeof (". ''; ") - 1; -+ sz = strlen (cfgpath->path); -+ if (grub_mul (sz, 4, &sz) || -+ grub_add (sz, sizeof (". ''; ") - 1, &sz) || -+ grub_add (len_cfgpaths, sz, &len_cfgpaths)) -+ grub_util_error ("%s", _("overflow is detected")); - } - grub_util_fd_closedir (d); - } -@@ -130,7 +142,7 @@ grub_util_load_config (struct grub_util_config *cfg) - if (num_cfgpaths == 0) - goto out; - -- sorted_cfgpaths = xmalloc (num_cfgpaths * sizeof (*sorted_cfgpaths)); -+ sorted_cfgpaths = xcalloc (num_cfgpaths, sizeof (*sorted_cfgpaths)); - i = 0; - if (grub_util_is_regular (cfgfile)) - sorted_cfgpaths[i++] = xstrdup (cfgfile); -@@ -146,7 +158,9 @@ grub_util_load_config (struct grub_util_config *cfg) - argv[0] = "sh"; - argv[1] = "-c"; - -- script = xmalloc (len_cfgpaths + 300); -+ if (grub_add (len_cfgpaths, 300, &len_cfgpaths)) -+ grub_util_error ("%s", _("overflow is detected")); -+ script = xmalloc (len_cfgpaths); - - ptr = script; - for (i = 0; i < num_cfgpaths; i++) diff --git a/patches/grub/2.04/verifiers-blocklist-fallout.patch b/patches/grub/2.04/verifiers-blocklist-fallout.patch deleted file mode 100644 index 312e86b00..000000000 --- a/patches/grub/2.04/verifiers-blocklist-fallout.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 9bd1ddebca3685f74187eef656a149d28804eeba Mon Sep 17 00:00:00 2001 -From: David Michael -Date: Fri, 5 Jul 2019 07:45:59 -0400 -Subject: verifiers: Blocklist fallout cleanup - -Blocklist fallout cleanup after commit 5c6f9bc15 (generic/blocklist: Fix -implicit declaration of function grub_file_filter_disable_compression()). - -Signed-off-by: David Michael -Reviewed-by: Daniel Kiper - -Origin: upstream, https://git.savannah.gnu.org/cgit/grub.git/commit/?id=dabdfa1c6a80639197d05f683a445fa8615517fe -Last-Update: 2019-12-12 - -Patch-Name: verifiers-blocklist-fallout.patch ---- - grub-core/osdep/generic/blocklist.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/grub-core/osdep/generic/blocklist.c b/grub-core/osdep/generic/blocklist.c -index ea2a511b6..2d9040302 100644 ---- a/grub-core/osdep/generic/blocklist.c -+++ b/grub-core/osdep/generic/blocklist.c -@@ -59,7 +59,7 @@ grub_install_get_blocklist (grub_device_t root_dev, - - grub_disk_cache_invalidate_all (); - -- file = grub_file_open (core_path_dev, GRUB_FILE_TYPE_NONE | FILE_TYPE_NO_DECOMPRESS); -+ file = grub_file_open (core_path_dev, GRUB_FILE_TYPE_NONE | GRUB_FILE_TYPE_NO_DECOMPRESS); - if (file) - { - if (grub_file_size (file) != core_size) -@@ -116,7 +116,7 @@ grub_install_get_blocklist (grub_device_t root_dev, - - grub_file_t file; - /* Now read the core image to determine where the sectors are. */ -- file = grub_file_open (core_path_dev, GRUB_FILE_TYPE_NONE | FILE_TYPE_NO_DECOMPRESS); -+ file = grub_file_open (core_path_dev, GRUB_FILE_TYPE_NONE | GRUB_FILE_TYPE_NO_DECOMPRESS); - if (! file) - grub_util_error ("%s", grub_errmsg); - diff --git a/patches/grub/2.04/vsnprintf-upper-case-hex.patch b/patches/grub/2.04/vsnprintf-upper-case-hex.patch deleted file mode 100644 index 690d87695..000000000 --- a/patches/grub/2.04/vsnprintf-upper-case-hex.patch +++ /dev/null @@ -1,65 +0,0 @@ -From d2e2c770cf8f1f1044827e030fbe38c2b177375e Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 11 Mar 2019 11:15:12 +0000 -Subject: Add %X to grub_vsnprintf_real and friends - -This is needed for UEFI Boot* variables, which the standard says are -named using upper-case hexadecimal. - -Signed-off-by: Colin Watson - -Bug-Debian: https://bugs.debian.org/891434 -Forwarded: https://lists.gnu.org/archive/html/grub-devel/2019-03/msg00121.html -Last-Update: 2019-03-23 - -Patch-Name: vsnprintf-upper-case-hex.patch ---- - grub-core/kern/misc.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index 3b633d51f..18cad5803 100644 ---- a/grub-core/kern/misc.c -+++ b/grub-core/kern/misc.c -@@ -588,7 +588,7 @@ grub_divmod64 (grub_uint64_t n, grub_uint64_t d, grub_uint64_t *r) - static inline char * - grub_lltoa (char *str, int c, unsigned long long n) - { -- unsigned base = (c == 'x') ? 16 : 10; -+ unsigned base = (c == 'x' || c == 'X') ? 16 : 10; - char *p; - - if ((long long) n < 0 && c == 'd') -@@ -603,7 +603,7 @@ grub_lltoa (char *str, int c, unsigned long long n) - do - { - unsigned d = (unsigned) (n & 0xf); -- *p++ = (d > 9) ? d + 'a' - 10 : d + '0'; -+ *p++ = (d > 9) ? d + ((c == 'x') ? 'a' : 'A') - 10 : d + '0'; - } - while (n >>= 4); - else -@@ -676,6 +676,7 @@ parse_printf_args (const char *fmt0, struct printf_args *args, - { - case 'p': - case 'x': -+ case 'X': - case 'u': - case 'd': - case 'c': -@@ -762,6 +763,7 @@ parse_printf_args (const char *fmt0, struct printf_args *args, - switch (c) - { - case 'x': -+ case 'X': - case 'u': - args->ptr[curn].type = UNSIGNED_INT + longfmt; - break; -@@ -900,6 +902,7 @@ grub_vsnprintf_real (char *str, grub_size_t max_len, const char *fmt0, - c = 'x'; - /* Fall through. */ - case 'x': -+ case 'X': - case 'u': - case 'd': - { diff --git a/patches/grub/2.04/vt-handoff.patch b/patches/grub/2.04/vt-handoff.patch deleted file mode 100644 index bd69441ae..000000000 --- a/patches/grub/2.04/vt-handoff.patch +++ /dev/null @@ -1,101 +0,0 @@ -From 3b90c3e720f1663906e2e8af3c21123d66e14b88 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:30 +0000 -Subject: Add configure option to use vt.handoff=7 - -This is used for non-recovery Linux entries only; it enables -flicker-free booting if gfxpayload=keep is in use and a suitable kernel -is present. - -Author: Andy Whitcroft -Forwarded: not-needed -Last-Update: 2013-12-25 - -Patch-Name: vt-handoff.patch ---- - configure.ac | 11 +++++++++++ - util/grub.d/10_linux.in | 28 +++++++++++++++++++++++++++- - 2 files changed, 38 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index dbc429ce0..e382c7480 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1890,6 +1890,17 @@ else - fi - AC_SUBST([GFXPAYLOAD_DYNAMIC]) - -+AC_ARG_ENABLE([vt-handoff], -+ [AS_HELP_STRING([--enable-vt-handoff], -+ [use Linux vt.handoff option for flicker-free booting (default=no)])], -+ [], [enable_vt_handoff=no]) -+if test x"$enable_vt_handoff" = xyes ; then -+ VT_HANDOFF=1 -+else -+ VT_HANDOFF=0 -+fi -+AC_SUBST([VT_HANDOFF]) -+ - LIBS="" - - AC_SUBST([FONT_SOURCE]) -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 2f5217358..174d547bb 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -24,6 +24,7 @@ ubuntu_recovery="@UBUNTU_RECOVERY@" - quiet_boot="@QUIET_BOOT@" - quick_boot="@QUICK_BOOT@" - gfxpayload_dynamic="@GFXPAYLOAD_DYNAMIC@" -+vt_handoff="@VT_HANDOFF@" - - . "$pkgdatadir/grub-mkconfig_lib" - -@@ -104,6 +105,14 @@ if [ "$ubuntu_recovery" = 1 ]; then - GRUB_CMDLINE_LINUX_RECOVERY="$GRUB_CMDLINE_LINUX_RECOVERY nomodeset" - fi - -+if [ "$vt_handoff" = 1 ]; then -+ for word in $GRUB_CMDLINE_LINUX_DEFAULT; do -+ if [ "$word" = splash ]; then -+ GRUB_CMDLINE_LINUX_DEFAULT="$GRUB_CMDLINE_LINUX_DEFAULT \$vt_handoff" -+ fi -+ done -+fi -+ - linux_entry () - { - os="$1" -@@ -149,7 +158,7 @@ linux_entry () - fi - if ([ "$ubuntu_recovery" = 0 ] || [ x$type != xrecovery ]) && \ - ([ "x$GRUB_GFXPAYLOAD_LINUX" != x ] || [ "$gfxpayload_dynamic" = 1 ]); then -- echo " set gfxpayload=\$linux_gfx_mode" | sed "s/^/$submenu_indentation/" -+ echo " gfxmode \$linux_gfx_mode" | sed "s/^/$submenu_indentation/" - fi - - echo " insmod gzio" | sed "s/^/$submenu_indentation/" -@@ -228,6 +237,23 @@ prepare_root_cache= - boot_device_id= - title_correction_code= - -+cat << 'EOF' -+function gfxmode { -+ set gfxpayload="${1}" -+EOF -+if [ "$vt_handoff" = 1 ]; then -+ cat << 'EOF' -+ if [ "${1}" = "keep" ]; then -+ set vt_handoff=vt.handoff=7 -+ else -+ set vt_handoff= -+ fi -+EOF -+fi -+cat << EOF -+} -+EOF -+ - # Use ELILO's generic "efifb" when it's known to be available. - # FIXME: We need an interface to select vesafb in case efifb can't be used. - if [ "x$GRUB_GFXPAYLOAD_LINUX" != x ] || [ "$gfxpayload_dynamic" = 0 ]; then diff --git a/patches/grub/2.04/wubi-no-windows.patch b/patches/grub/2.04/wubi-no-windows.patch deleted file mode 100644 index 9d266c6ea..000000000 --- a/patches/grub/2.04/wubi-no-windows.patch +++ /dev/null @@ -1,57 +0,0 @@ -From b24fac0f34fcf007c54adcd9e67d26235843c735 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Mon, 13 Jan 2014 12:13:24 +0000 -Subject: Skip Windows os-prober entries on Wubi systems - -Since we're already being booted from the Windows boot loader, including -entries that take us back to it mostly just causes confusion, and stops -us from being able to hide the menu if there are no other OSes -installed. - -https://blueprints.launchpad.net/ubuntu/+spec/foundations-o-wubi - -Forwarded: not-needed -Last-Update: 2013-11-26 - -Patch-Name: wubi-no-windows.patch ---- - util/grub.d/30_os-prober.in | 19 +++++++++++++++++++ - 1 file changed, 19 insertions(+) - -diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in -index b7e1147c4..271044f59 100644 ---- a/util/grub.d/30_os-prober.in -+++ b/util/grub.d/30_os-prober.in -@@ -110,6 +110,8 @@ EOF - - used_osprober_linux_ids= - -+wubi= -+ - for OS in ${OSPROBED} ; do - DEVICE="`echo ${OS} | cut -d ':' -f 1`" - LONGNAME="`echo ${OS} | cut -d ':' -f 2 | tr '^' ' '`" -@@ -146,6 +148,23 @@ for OS in ${OSPROBED} ; do - case ${BOOT} in - chain) - -+ case ${LONGNAME} in -+ Windows*) -+ if [ -z "$wubi" ]; then -+ if [ -x /usr/share/lupin-support/grub-mkimage ] && \ -+ /usr/share/lupin-support/grub-mkimage --test; then -+ wubi=yes -+ else -+ wubi=no -+ fi -+ fi -+ if [ "$wubi" = yes ]; then -+ echo "Skipping ${LONGNAME} on Wubi system" >&2 -+ continue -+ fi -+ ;; -+ esac -+ - onstr="$(gettext_printf "(on %s)" "${DEVICE}")" - cat << EOF - menuentry '$(echo "${LONGNAME} $onstr" | grub_quote)' $CLASS --class os \$menuentry_id_option 'osprober-chain-$(grub_get_device_id "${DEVICE}")' { diff --git a/patches/grub/2.04/xen-ignore-xenpolicy-and-config.patch b/patches/grub/2.04/xen-ignore-xenpolicy-and-config.patch deleted file mode 100644 index 2d34983a8..000000000 --- a/patches/grub/2.04/xen-ignore-xenpolicy-and-config.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 300b43f3513e4067abfcb73de191a2cfa75f9957 Mon Sep 17 00:00:00 2001 -From: Ian Jackson -Date: Wed, 20 May 2020 13:14:19 +0100 -Subject: templates/20_linux_xen: Ignore xenpolicy and config files too - -file_is_not_sym() currently only checks for xen-syms. Extend it to -disregard xenpolicy (XSM policy files) and files ending .config (which -are built by the Xen upstream build system in some configurations and -can therefore end up in /boot). - -Rename the function accordingly, to file_is_not_xen_garbage(). - -Signed-off-by: Ian Jackson -Reviewed-by: Daniel Kiper - -Origin: upstream, https://git.savannah.gnu.org/cgit/grub.git/commit/?id=7a9b30143bb9f6fc19b4e1cf8d4d184a49c3c36e -Last-Update: 2020-05-27 - -Patch-Name: xen-ignore-xenpolicy-and-config.patch ---- - util/grub.d/20_linux_xen.in | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index 81e5f0d7e..30da49d66 100644 ---- a/util/grub.d/20_linux_xen.in -+++ b/util/grub.d/20_linux_xen.in -@@ -181,10 +181,14 @@ if [ "x${linux_list}" = "x" ] ; then - exit 0 - fi - --file_is_not_sym () { -+file_is_not_xen_garbage () { - case "$1" in - */xen-syms-*) - return 1;; -+ */xenpolicy-*) -+ return 1;; -+ */*.config) -+ return 1;; - *) - return 0;; - esac -@@ -192,7 +196,7 @@ file_is_not_sym () { - - xen_list= - for i in /boot/xen*; do -- if grub_file_is_not_garbage "$i" && file_is_not_sym "$i" ; then xen_list="$xen_list $i" ; fi -+ if grub_file_is_not_garbage "$i" && file_is_not_xen_garbage "$i" ; then xen_list="$xen_list $i" ; fi - done - prepare_boot_cache= - boot_device_id= diff --git a/patches/grub/2.04/xen-no-xsm-policy-in-non-xsm-options.patch b/patches/grub/2.04/xen-no-xsm-policy-in-non-xsm-options.patch deleted file mode 100644 index 4583cd582..000000000 --- a/patches/grub/2.04/xen-no-xsm-policy-in-non-xsm-options.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 3017210d8539946c516003270cba7f3de569f2b3 Mon Sep 17 00:00:00 2001 -From: Ian Jackson -Date: Wed, 27 May 2020 17:00:45 +0100 -Subject: 20_linux_xen: Do not load XSM policy in non-XSM options - -For complicated reasons, even if you have XSM/FLASK disabled (as is -the default) the Xen build system still builds a policy file and puts -it in /boot. - -Even so, we shouldn't be loading this in the usual non-"XSM enabled" -entries. It doesn't do any particular harm but it is quite confusing. - -Signed-off-by: Ian Jackson - -Bug-Debian: https://bugs.debian.org/961673 -Last-Update: 2020-05-29 - -Patch-Name: xen-no-xsm-policy-in-non-xsm-options.patch ---- - util/grub.d/20_linux_xen.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index 7a092b898..cbad5f95a 100644 ---- a/util/grub.d/20_linux_xen.in -+++ b/util/grub.d/20_linux_xen.in -@@ -173,7 +173,7 @@ EOF - ${module_loader} --nounzip $(echo $initrd_path) - EOF - fi -- if test -n "${xenpolicy}" ; then -+ if ${xsm} && test -n "${xenpolicy}" ; then - message="$(gettext_printf "Loading XSM policy ...")" - sed "s/^/$submenu_indentation/" << EOF - echo '$(echo "$message" | grub_quote)' diff --git a/patches/grub/2.04/xen-support-xsm.patch b/patches/grub/2.04/xen-support-xsm.patch deleted file mode 100644 index 0cadda071..000000000 --- a/patches/grub/2.04/xen-support-xsm.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 5bb5538be2e2a7325555a7156797f59b5be1f7f6 Mon Sep 17 00:00:00 2001 -From: Ian Jackson -Date: Wed, 20 May 2020 13:14:20 +0100 -Subject: templates/20_linux_xen: Support Xen Security Modules (XSM/FLASK) - -XSM is enabled by adding "flask=enforcing" as a Xen command line -argument, and providing the policy file as a grub module. - -We make entries for both with and without XSM. If XSM is not compiled -into Xen, then there are no policy files, so no change to the boot -options. - -Signed-off-by: Ian Jackson -Reviewed-by: Daniel Kiper - -Origin: upstream, https://git.savannah.gnu.org/cgit/grub.git/commit/?id=a81401ff493958e626e84f802f44434978fa4d4d -Last-Update: 2020-05-27 - -Patch-Name: xen-support-xsm.patch ---- - util/grub.d/20_linux_xen.in | 24 ++++++++++++++++++++++++ - 1 file changed, 24 insertions(+) - -diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index 30da49d66..7a092b898 100644 ---- a/util/grub.d/20_linux_xen.in -+++ b/util/grub.d/20_linux_xen.in -@@ -94,6 +94,11 @@ esac - title_correction_code= - - linux_entry () -+{ -+ linux_entry_xsm "$@" false -+ linux_entry_xsm "$@" true -+} -+linux_entry_xsm () - { - os="$1" - version="$2" -@@ -101,6 +106,18 @@ linux_entry () - type="$4" - args="$5" - xen_args="$6" -+ xsm="$7" -+ # If user wants to enable XSM support, make sure there's -+ # corresponding policy file. -+ if ${xsm} ; then -+ xenpolicy="xenpolicy-$xen_version" -+ if test ! -e "${xen_dirname}/${xenpolicy}" ; then -+ return -+ fi -+ xen_args="$xen_args flask=enforcing" -+ xen_version="$(gettext_printf "%s (XSM enabled)" "$xen_version")" -+ # xen_version is used for messages only; actual file is xen_basename -+ fi - if [ -z "$boot_device_id" ]; then - boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" - fi -@@ -154,6 +171,13 @@ EOF - sed "s/^/$submenu_indentation/" << EOF - echo '$(echo "$message" | grub_quote)' - ${module_loader} --nounzip $(echo $initrd_path) -+EOF -+ fi -+ if test -n "${xenpolicy}" ; then -+ message="$(gettext_printf "Loading XSM policy ...")" -+ sed "s/^/$submenu_indentation/" << EOF -+ echo '$(echo "$message" | grub_quote)' -+ ${module_loader} ${rel_dirname}/${xenpolicy} - EOF - fi - sed "s/^/$submenu_indentation/" << EOF diff --git a/patches/grub/2.04/xnu-double-free.patch b/patches/grub/2.04/xnu-double-free.patch deleted file mode 100644 index 8dcc3028a..000000000 --- a/patches/grub/2.04/xnu-double-free.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 387219ffbb751afd336ebd71f1a375d9923ba416 Mon Sep 17 00:00:00 2001 -From: Alexey Makhalov -Date: Wed, 8 Jul 2020 21:30:43 +0000 -Subject: xnu: Fix double free in grub_xnu_devprop_add_property() - -grub_xnu_devprop_add_property() should not free utf8 and utf16 as it get -allocated and freed in the caller. - -Minor improvement: do prop fields initialization after memory allocations. - -Fixes: CID 292442, CID 292457, CID 292460, CID 292466 - -Signed-off-by: Alexey Makhalov -Reviewed-by: Daniel Kiper - -Patch-Name: xnu-double-free.patch ---- - grub-core/loader/i386/xnu.c | 17 ++++++++--------- - 1 file changed, 8 insertions(+), 9 deletions(-) - -diff --git a/grub-core/loader/i386/xnu.c b/grub-core/loader/i386/xnu.c -index b7d176b5d..e9e119259 100644 ---- a/grub-core/loader/i386/xnu.c -+++ b/grub-core/loader/i386/xnu.c -@@ -262,20 +262,19 @@ grub_xnu_devprop_add_property (struct grub_xnu_devprop_device_descriptor *dev, - if (!prop) - return grub_errno; - -- prop->name = utf8; -- prop->name16 = utf16; -- prop->name16len = utf16len; -- -- prop->length = datalen; -- prop->data = grub_malloc (prop->length); -+ prop->data = grub_malloc (datalen); - if (!prop->data) - { -- grub_free (prop->name); -- grub_free (prop->name16); - grub_free (prop); - return grub_errno; - } -- grub_memcpy (prop->data, data, prop->length); -+ grub_memcpy (prop->data, data, datalen); -+ -+ prop->name = utf8; -+ prop->name16 = utf16; -+ prop->name16len = utf16len; -+ prop->length = datalen; -+ - grub_list_push (GRUB_AS_LIST_P (&dev->properties), - GRUB_AS_LIST (prop)); - return GRUB_ERR_NONE; diff --git a/patches/grub/2.04/zfs-gcc-10.patch b/patches/grub/2.04/zfs-gcc-10.patch deleted file mode 100644 index 2fb4d0db5..000000000 --- a/patches/grub/2.04/zfs-gcc-10.patch +++ /dev/null @@ -1,89 +0,0 @@ -From c65818fd6db0d95a2e80fb9b7d80fdca1d330d08 Mon Sep 17 00:00:00 2001 -From: Michael Chang -Date: Thu, 26 Mar 2020 14:35:35 +0800 -Subject: zfs: Fix gcc10 error -Werror=zero-length-bounds - -We bumped into the build error while testing gcc-10 pre-release. - -In file included from ../../include/grub/file.h:22, - from ../../grub-core/fs/zfs/zfs.c:34: -../../grub-core/fs/zfs/zfs.c: In function 'zap_leaf_lookup': -../../grub-core/fs/zfs/zfs.c:2263:44: error: array subscript '' is outside the bounds of an interior zero-length array 'grub_uint16_t[0]' {aka 'short unsigned int[0]'} [-Werror=zero-length-bounds] -2263 | for (chunk = grub_zfs_to_cpu16 (l->l_hash[LEAF_HASH (blksft, h, l)], endian); -../../include/grub/types.h:241:48: note: in definition of macro 'grub_le_to_cpu16' - 241 | # define grub_le_to_cpu16(x) ((grub_uint16_t) (x)) - | ^ -../../grub-core/fs/zfs/zfs.c:2263:16: note: in expansion of macro 'grub_zfs_to_cpu16' -2263 | for (chunk = grub_zfs_to_cpu16 (l->l_hash[LEAF_HASH (blksft, h, l)], endian); - | ^~~~~~~~~~~~~~~~~ -In file included from ../../grub-core/fs/zfs/zfs.c:48: -../../include/grub/zfs/zap_leaf.h:72:16: note: while referencing 'l_hash' - 72 | grub_uint16_t l_hash[0]; - | ^~~~~~ - -Here I'd like to quote from the gcc document [1] which seems best to -explain what is going on here. - -"Although the size of a zero-length array is zero, an array member of -this kind may increase the size of the enclosing type as a result of -tail padding. The offset of a zero-length array member from the -beginning of the enclosing structure is the same as the offset of an -array with one or more elements of the same type. The alignment of a -zero-length array is the same as the alignment of its elements. - -Declaring zero-length arrays in other contexts, including as interior -members of structure objects or as non-member objects, is discouraged. -Accessing elements of zero-length arrays declared in such contexts is -undefined and may be diagnosed." - -The l_hash[0] is apparnetly an interior member to the enclosed structure -while l_entries[0] is the trailing member. And the offending code tries -to access members in l_hash[0] array that triggers the diagnose. - -Given that the l_entries[0] is used to get proper alignment to access -leaf chunks, we can accomplish the same thing through the ALIGN_UP macro -thus eliminating l_entries[0] from the structure. In this way we can -pacify the warning as l_hash[0] now becomes the last member to the -enclosed structure. - -[1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html - -Signed-off-by: Michael Chang -Reviewed-by: Daniel Kiper - -Last-update: 2020-12-28 - -Patch-Name: zfs-gcc-10.patch ---- - grub-core/fs/zfs/zfs.c | 5 ++++- - include/grub/zfs/zap_leaf.h | 1 - - 2 files changed, 4 insertions(+), 2 deletions(-) - -diff --git a/grub-core/fs/zfs/zfs.c b/grub-core/fs/zfs/zfs.c -index 36d0373a6..41ef0ff57 100644 ---- a/grub-core/fs/zfs/zfs.c -+++ b/grub-core/fs/zfs/zfs.c -@@ -142,7 +142,10 @@ ZAP_LEAF_NUMCHUNKS (int bs) - static inline zap_leaf_chunk_t * - ZAP_LEAF_CHUNK (zap_leaf_phys_t *l, int bs, int idx) - { -- return &((zap_leaf_chunk_t *) (l->l_entries -+ grub_properly_aligned_t *l_entries; -+ -+ l_entries = (grub_properly_aligned_t *) ALIGN_UP((grub_addr_t)l->l_hash, sizeof (grub_properly_aligned_t)); -+ return &((zap_leaf_chunk_t *) (l_entries - + (ZAP_LEAF_HASH_NUMENTRIES(bs) * 2) - / sizeof (grub_properly_aligned_t)))[idx]; - } -diff --git a/include/grub/zfs/zap_leaf.h b/include/grub/zfs/zap_leaf.h -index 95c67dcba..11447c166 100644 ---- a/include/grub/zfs/zap_leaf.h -+++ b/include/grub/zfs/zap_leaf.h -@@ -70,7 +70,6 @@ typedef struct zap_leaf_phys { - */ - - grub_uint16_t l_hash[0]; -- grub_properly_aligned_t l_entries[0]; - } zap_leaf_phys_t; - - typedef union zap_leaf_chunk { diff --git a/patches/grub/2.04/zpool-full-device-name.patch b/patches/grub/2.04/zpool-full-device-name.patch deleted file mode 100644 index 4361c4e22..000000000 --- a/patches/grub/2.04/zpool-full-device-name.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 29f69269fdb282c41ae0204c080a73e3a5f380c3 Mon Sep 17 00:00:00 2001 -From: Chad MILLER -Date: Thu, 27 Oct 2016 17:15:07 -0400 -Subject: Tell zpool to emit full device names - -zfs-initramfs currently provides extraneous, undesired symlinks to -devices directly underneath /dev/ to satisfy zpool's historical output -of unqualified device names. By including this environment variable to -signal our intent to zpool, zfs-linux packages can drop the symlink -behavior when updating to its upstream or backported output behavior. - -Bug: https://savannah.gnu.org/bugs/?43653 -Bug-Debian: https://bugs.debian.org/824974 -Bug-Ubuntu: https://bugs.launchpad.net/bugs/1527727 -Last-Update: 2016-11-01 - -Patch-Name: zpool-full-device-name.patch ---- - grub-core/osdep/unix/getroot.c | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/grub-core/osdep/unix/getroot.c b/grub-core/osdep/unix/getroot.c -index 46d7116c6..da102918d 100644 ---- a/grub-core/osdep/unix/getroot.c -+++ b/grub-core/osdep/unix/getroot.c -@@ -243,6 +243,7 @@ grub_util_find_root_devices_from_poolname (char *poolname) - argv[2] = poolname; - argv[3] = NULL; - -+ setenv ("ZPOOL_VDEV_NAME_PATH", "YES", 1); - pid = grub_util_exec_pipe (argv, &fd); - if (!pid) - return NULL; diff --git a/patches/grub/2.14/0001-build-i386-pc-update-kernel-image-generation.patch b/patches/grub/2.14/0001-build-i386-pc-update-kernel-image-generation.patch new file mode 100644 index 000000000..b4730b349 --- /dev/null +++ b/patches/grub/2.14/0001-build-i386-pc-update-kernel-image-generation.patch @@ -0,0 +1,105 @@ +From ba2f3511452484710c27cad10160943d98cdc351 Mon Sep 17 00:00:00 2001 +From: Nicholas Vinson +Date: Tue, 3 Mar 2026 21:41:14 -0500 +Subject: [PATCH] build/i386-pc: Update kernel image generation + +The i386-pc kernel image fails to build because of changes made to +address ld.lld-21 and newer linking issues. Specifically, with +ld.lld-21, if you try to set the text section address below image base +address when linking a non-relocatable binary, ld.lld wil fail to link. + +Switching to using a customized linker script solves the issue and is +a more robust solution to supporting multiple linkers than attempting to +find a set of command-line flags that satisfied all supported linkers +and links the kernel properly. In the worst case, continued use of +command-line flags could result in having to create code branches to +support various linkers. + +For example, when dealing with just ld.bfd and ld.lld, the behavioral +differences between the two made finding a proper subset of flags that +worked impossible. The previous attempt dropped -Ttext for --image-base, +which has been proven not to work. The simplest correction, +"-Wl,--image-base=0 -Wl,-Ttext", did not work because that option resulted +in a GRUB kernel that entered into a tight infinite refresh loop. + +Moreover, ld.lld does not order the sections the same way ld.bfd does, +and that results in object files with gaps or holes when sections are +stripped. I suspect, but did not investigate, that this plays a role in +the infinite refresh loop I mentioned earlier. + +The easiest way to resolve all this is to use customized linker scripts. +These scripts, by default, override any default configuration the linker +would otherwise impose, allow for complete control in aligning sections, +and allows GRUB to specify where in the load segment each section goes. + +This patch series does require linkers to support the --defsym flag, +which requires its argument to be of the form "sym=address" as +"sym address" is not supported. + +Signed-off-by: Nicholas Vinson +Reviewed-by: Daniel Kiper +--- + conf/i386-pc-kernel.lds | 51 +++++++++++++++++++++++++++++++++++++++++ + 1 file changed, 51 insertions(+) + create mode 100644 conf/i386-pc-kernel.lds + +diff --git a/conf/i386-pc-kernel.lds b/conf/i386-pc-kernel.lds +new file mode 100644 +index 000000000..b580414c7 +--- /dev/null ++++ b/conf/i386-pc-kernel.lds +@@ -0,0 +1,51 @@ ++ENTRY(_start) ++ ++/* ++ * Align sections to a 16-byte boundary. This guarantees ABI compatibility with ++ * C generated code. ++ */ ++SECTION_ALIGN = 0x10; ++ ++PHDRS { ++ text PT_LOAD FLAGS(7) /* PF_R | PF_W | PF_X */; ++} ++ ++SECTIONS ++{ ++ /* ++ * Set section alignment to 1. This allows sections to be aligned without ++ * creating holes in the VMA space or gaps in the file. ++ */ ++ . = _grub_text_base; ++ .text ALIGN(0x1) : { ++ _start = .; ++ *(.text .text.*) ++ . = ALIGN(SECTION_ALIGN); ++ } :text ++ .rodata ALIGN(0x1) : { ++ *(.rodata .rodata.*) ++ . = ALIGN(SECTION_ALIGN); ++ } :text ++ .module_license ALIGN(0x1) : { ++ *(.module_license) ++ . = ALIGN(SECTION_ALIGN); ++ } :text ++ .data ALIGN(0x1) : { ++ *(.data .data.*) ++ . = ALIGN(SECTION_ALIGN); ++ _edata = .; ++ } :text ++ .bss ALIGN(0x1) : { ++ __bss_start = .; ++ *(.bss .bss.*) ++ *(COMMON) ++ . = ALIGN(SECTION_ALIGN); ++ _end = .; ++ } :text ++ /DISCARD/ : { ++ *(.interp) ++ *(.note*) ++ *(.comment) ++ *(.build-id) ++ } ++} +-- +GitLab + diff --git a/patches/grub/2.14/0002-revert-configure-print-helpful-error-if-autoconf-archive-missing.patch b/patches/grub/2.14/0002-revert-configure-print-helpful-error-if-autoconf-archive-missing.patch new file mode 100644 index 000000000..179781b92 --- /dev/null +++ b/patches/grub/2.14/0002-revert-configure-print-helpful-error-if-autoconf-archive-missing.patch @@ -0,0 +1,34 @@ +From 7b72d6cbd548f714a0122c3cd1dd9a70db10894a Mon Sep 17 00:00:00 2001 +From: Nicholas Vinson +Date: Tue, 3 Mar 2026 21:41:15 -0500 +Subject: [PATCH] Revert "configure: Print a more helpful error if + autoconf-archive is not installed" + +This reverts commit ac042f3f5 (configure: Print a more helpful error if +autoconf-archive is not installed). + +Signed-off-by: Nicholas Vinson +Reviewed-by: Daniel Kiper +--- + configure.ac | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/configure.ac b/configure.ac +index d8ca1b7c1..45f19f188 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1792,11 +1792,6 @@ LIBS="" + # Defined in acinclude.m4. + grub_ASM_USCORE + grub_PROG_TARGET_CC +- +-# The error message produced by autoconf if autoconf-archive is not installed is +-# quite misleading and not very helpful. So, try point people in the right direction. +-m4_ifndef([AX_CHECK_LINK_FLAG], [m4_fatal([autoconf-archive is missing. You must install it to generate the configure script.])]) +- + if test "x$TARGET_APPLE_LINKER" != x1 ; then + AX_CHECK_LINK_FLAG([-Wl,--image-base,0x400000], + [TARGET_IMG_BASE_LDOPT="-Wl,--image-base"], +-- +GitLab + diff --git a/patches/grub/2.14/0003-revert-configure-check-linker-for-image-base-support.patch b/patches/grub/2.14/0003-revert-configure-check-linker-for-image-base-support.patch new file mode 100644 index 000000000..6080de8c9 --- /dev/null +++ b/patches/grub/2.14/0003-revert-configure-check-linker-for-image-base-support.patch @@ -0,0 +1,72 @@ +From 1dc2986c7e8480d955f87d276d31400116a21fac Mon Sep 17 00:00:00 2001 +From: Nicholas Vinson +Date: Tue, 3 Mar 2026 21:41:16 -0500 +Subject: [PATCH] Revert "configure: Check linker for --image-base support" + +This reverts commit 1a5417f39 (configure: Check linker for --image-base support). + +Signed-off-by: Nicholas Vinson +Reviewed-by: Daniel Kiper +--- + acinclude.m4 | 5 ----- + configure.ac | 14 ++------------ + 2 files changed, 2 insertions(+), 17 deletions(-) + +diff --git a/acinclude.m4 b/acinclude.m4 +index 70c1912f8..fa7840f09 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -79,11 +79,6 @@ AC_DEFUN([grub_PROG_OBJCOPY_ABSOLUTE], + [AC_MSG_CHECKING([whether ${TARGET_OBJCOPY} works for absolute addresses]) + AC_CACHE_VAL(grub_cv_prog_objcopy_absolute, + [cat > conftest.c <<\EOF +-asm ( +- ".globl start, _start, __start\n" +- ".ifdef cmain; .set start = _start = __start = cmain\n.endif\n" +- ".ifdef _cmain; .set start = _start = __start = _cmain\n.endif\n" +-); + void cmain (void); + void + cmain (void) +diff --git a/configure.ac b/configure.ac +index 45f19f188..209c0fb11 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1461,6 +1461,7 @@ elif test x$grub_cv_target_cc_link_format = x-mi386pe || test x$grub_cv_target_c + TARGET_IMG_LDSCRIPT='$(top_srcdir)'"/conf/i386-cygwin-img-ld.sc" + TARGET_IMG_LDFLAGS="-Wl,-T${TARGET_IMG_LDSCRIPT}" + TARGET_IMG_LDFLAGS_AC="-Wl,-T${srcdir}/conf/i386-cygwin-img-ld.sc" ++ TARGET_IMG_BASE_LDOPT="-Wl,-Ttext" + TARGET_IMG_CFLAGS= + else + TARGET_APPLE_LINKER=0 +@@ -1468,6 +1469,7 @@ else + TARGET_IMG_LDSCRIPT= + TARGET_IMG_LDFLAGS='-Wl,-N' + TARGET_IMG_LDFLAGS_AC='-Wl,-N' ++ TARGET_IMG_BASE_LDOPT="-Wl,-Ttext" + TARGET_IMG_CFLAGS= + fi + +@@ -1793,18 +1795,6 @@ LIBS="" + grub_ASM_USCORE + grub_PROG_TARGET_CC + if test "x$TARGET_APPLE_LINKER" != x1 ; then +-AX_CHECK_LINK_FLAG([-Wl,--image-base,0x400000], +- [TARGET_IMG_BASE_LDOPT="-Wl,--image-base"], +- [TARGET_IMG_BASE_LDOPT="-Wl,-Ttext"], +- [], +- [AC_LANG_SOURCE([ +-asm (".globl start; start:"); +-asm (".globl _start; _start:"); +-asm (".globl __start; __start:"); +-void __main (void); +-void __main (void) {} +-int main (void); +- ])]) + grub_PROG_OBJCOPY_ABSOLUTE + fi + grub_PROG_LD_BUILD_ID_NONE +-- +GitLab + diff --git a/patches/grub/2.14/0004-configure-drop-ttext-checks-for-i386-pc.patch b/patches/grub/2.14/0004-configure-drop-ttext-checks-for-i386-pc.patch new file mode 100644 index 000000000..0fedb82a5 --- /dev/null +++ b/patches/grub/2.14/0004-configure-drop-ttext-checks-for-i386-pc.patch @@ -0,0 +1,236 @@ +From 86283bfd4ed056fba15fcbfb90b9ad91016d838a Mon Sep 17 00:00:00 2001 +From: Nicholas Vinson +Date: Tue, 3 Mar 2026 21:41:18 -0500 +Subject: [PATCH] configure: Drop -Ttext checks for i386-pc + +The i386-pc target now uses a linker script, so -Ttext is no longer +required. However, a new variable TARGET_IMG_BASE_LDOPT_ARG_SEP is +introduced to handle the fact that when using --defsym the argument +separator must be "=". The space character is a syntax error. + +Finally, EXTRA_DIST is updated to track the linker script used. + +Signed-off-by: Nicholas Vinson +Reviewed-by: Daniel Kiper +--- + acinclude.m4 | 13 ++++++++++++- + conf/Makefile.extra-dist | 1 + + configure.ac | 29 ++++++++++++++++++++++++++--- + grub-core/Makefile.core.def | 31 ++++++++++++++++--------------- + 4 files changed, 55 insertions(+), 19 deletions(-) + +diff --git a/acinclude.m4 b/acinclude.m4 +index fa7840f09..478aab6d3 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -93,7 +93,18 @@ else + fi + grub_cv_prog_objcopy_absolute=yes + for link_addr in 0x2000 0x8000 0x7C00; do +- if AC_TRY_COMMAND([${CC-cc} ${TARGET_CFLAGS} ${TARGET_LDFLAGS} -nostdlib ${TARGET_IMG_LDFLAGS_AC} ${TARGET_IMG_BASE_LDOPT},$link_addr conftest.o -o conftest.exec]); then : ++ ++ target_img_base_ld="${TARGET_IMG_BASE_LDOPT}" ++ case "$target_img_base_ld" in ++ *_grub_text_base) ++ target_img_base_ld="${target_img_base_ld}=$link_addr" ++ ;; ++ *) ++ target_img_base_ld="${target_img_base_ld},$link_addr" ++ ;; ++ esac ++ ++ if AC_TRY_COMMAND([${CC-cc} ${TARGET_CFLAGS} ${TARGET_LDFLAGS} -nostdlib ${TARGET_IMG_LDFLAGS_AC} ${target_img_base_ld} conftest.o -o conftest.exec]); then : + else + AC_MSG_ERROR([${CC-cc} cannot link at address $link_addr]) + fi +diff --git a/conf/Makefile.extra-dist b/conf/Makefile.extra-dist +index d22b6c862..892df8208 100644 +--- a/conf/Makefile.extra-dist ++++ b/conf/Makefile.extra-dist +@@ -17,6 +17,7 @@ EXTRA_DIST += docs/grub.cfg + EXTRA_DIST += docs/osdetect.cfg + + EXTRA_DIST += conf/i386-cygwin-img-ld.sc ++EXTRA_DIST += conf/i386-pc-kernel.lds + + EXTRA_DIST += grub-core/Makefile.core.def + EXTRA_DIST += grub-core/Makefile.gcry.def +diff --git a/configure.ac b/configure.ac +index 209c0fb11..470a26b0f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1454,6 +1454,7 @@ if test x$grub_cv_target_cc_link_format = x-arch,i386 || test x$grub_cv_target_c + TARGET_IMG_LDFLAGS='-nostdlib -static -Wl,-preload -Wl,-segalign,20' + TARGET_IMG_LDFLAGS_AC='-nostdlib -static -Wl,-preload -Wl,-segalign,20' + TARGET_IMG_BASE_LDOPT="-Wl,-image_base" ++ TARGET_IMG_BASE_LDOPT_ARG_SEP="," + TARGET_LDFLAGS_OLDMAGIC="" + elif test x$grub_cv_target_cc_link_format = x-mi386pe || test x$grub_cv_target_cc_link_format = x-mi386pep ; then + TARGET_APPLE_LINKER=0 +@@ -1461,7 +1462,8 @@ elif test x$grub_cv_target_cc_link_format = x-mi386pe || test x$grub_cv_target_c + TARGET_IMG_LDSCRIPT='$(top_srcdir)'"/conf/i386-cygwin-img-ld.sc" + TARGET_IMG_LDFLAGS="-Wl,-T${TARGET_IMG_LDSCRIPT}" + TARGET_IMG_LDFLAGS_AC="-Wl,-T${srcdir}/conf/i386-cygwin-img-ld.sc" +- TARGET_IMG_BASE_LDOPT="-Wl,-Ttext" ++ TARGET_IMG_BASE_LDOPT= ++ TARGET_IMG_BASE_LDOPT_ARG_SEP="," + TARGET_IMG_CFLAGS= + else + TARGET_APPLE_LINKER=0 +@@ -1469,7 +1471,16 @@ else + TARGET_IMG_LDSCRIPT= + TARGET_IMG_LDFLAGS='-Wl,-N' + TARGET_IMG_LDFLAGS_AC='-Wl,-N' +- TARGET_IMG_BASE_LDOPT="-Wl,-Ttext" ++ if test "x$target_cpu-$platform" != "xi386-pc"; then ++ TARGET_IMG_BASE_LDOPT="-Wl,-Ttext" ++ TARGET_IMG_BASE_LDOPT_ARG_SEP="," ++ else ++ TARGET_IMG_BASE_LDOPT="-Wl,--defsym=_grub_text_base" ++ TARGET_IMG_BASE_LDOPT_ARG_SEP="=" ++ TARGET_IMG_LDSCRIPT='$(top_srcdir)'"/conf/i386-pc-kernel.lds" ++ TARGET_IMG_LDFLAGS="${TARGET_IMG_LDFLAGS} -Wl,-T${TARGET_IMG_LDSCRIPT}" ++ TARGET_IMG_LDFLAGS_AC="-Wl,-T${srcdir}/conf/i386-pc-kernel.lds" ++ fi + TARGET_IMG_CFLAGS= + fi + +@@ -1802,7 +1813,18 @@ if test "x$target_cpu" = xi386; then + if test "$platform" != emu && test "x$TARGET_APPLE_LINKER" != x1 ; then + if test ! -z "$TARGET_IMG_LDSCRIPT"; then + # Check symbols provided by linker script. +- CFLAGS="$TARGET_CFLAGS -nostdlib ${TARGET_IMG_LDFLAGS_AC} ${TARGET_IMG_BASE_LDOPT},0x8000" ++ target_img_base_ld="${TARGET_IMG_BASE_LDOPT}" ++ case "$target_img_base_ld" in ++ *_grub_text_base) ++ target_img_base_ld="${target_img_base_ld}=" ++ ;; ++ *) ++ target_img_base_ld="${target_img_base_ld}," ++ ;; ++ esac ++ target_img_base_ld="${target_img_base_ld}0x8000" ++ CFLAGS="$TARGET_CFLAGS -nostdlib ${TARGET_IMG_LDFLAGS_AC} ${target_img_base_ld}" ++ target_img_base_ld="" + fi + grub_CHECK_BSS_START_SYMBOL + grub_CHECK_END_SYMBOL +@@ -2404,6 +2426,7 @@ AC_SUBST(TARGET_CCASFLAGS) + AC_SUBST(TARGET_IMG_LDFLAGS) + AC_SUBST(TARGET_IMG_CFLAGS) + AC_SUBST(TARGET_IMG_BASE_LDOPT) ++AC_SUBST(TARGET_IMG_BASE_LDOPT_ARG_SEP) + AC_SUBST(TARGET_APPLE_LINKER) + + AC_SUBST(HOST_CFLAGS) +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 0cf155128..1a91e53d6 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -10,6 +10,7 @@ transform_data = { + installdir = noinst; + name = genmod.sh; + common = genmod.sh.in; ++ i386_pc_ldflags = '$(TARGET_IMG_LDFLAGS)'; + }; + + transform_data = { +@@ -82,21 +83,21 @@ kernel = { + riscv64_efi_stripflags = '--strip-unneeded -K start -R .note -R .comment -R .note.gnu.gold-version -R .eh_frame'; + + i386_pc_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x9000'; ++ i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x9000'; + i386_qemu_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_qemu_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x9000'; ++ i386_qemu_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x9000'; + i386_coreboot_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_coreboot_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x9000'; ++ i386_coreboot_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x9000'; + i386_multiboot_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_multiboot_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x9000'; ++ i386_multiboot_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x9000'; + i386_ieee1275_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_ieee1275_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x10000'; ++ i386_ieee1275_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x10000'; + i386_xen_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_xen_ldflags = '$(TARGET_IMG_BASE_LDOPT),0'; ++ i386_xen_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0'; + x86_64_xen_ldflags = '$(TARGET_IMG_LDFLAGS)'; + x86_64_xen_ldflags = '$(TARGET_IMG_BASE_LDOPT),0'; + i386_xen_pvh_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_xen_pvh_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x100000'; ++ i386_xen_pvh_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x100000'; + + mips_loongson_ldflags = '-Wl,-Ttext,0x80200000'; + powerpc_ieee1275_ldflags = '-Wl,-Ttext,0x200000'; +@@ -450,10 +451,10 @@ image = { + sparc64_ieee1275 = boot/sparc64/ieee1275/boot.S; + + i386_pc_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x7C00'; ++ i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x7C00'; + + i386_qemu_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_qemu_ldflags = '$(TARGET_IMG_BASE_LDOPT),$(GRUB_BOOT_MACHINE_LINK_ADDR)'; ++ i386_qemu_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)$(GRUB_BOOT_MACHINE_LINK_ADDR)'; + i386_qemu_ccasflags = '-DGRUB_BOOT_MACHINE_LINK_ADDR=$(GRUB_BOOT_MACHINE_LINK_ADDR)'; + + /* The entry point for a.out binaries on sparc64 starts +@@ -478,7 +479,7 @@ image = { + cppflags = '-DHYBRID_BOOT=1'; + + i386_pc_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x7C00'; ++ i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x7C00'; + + objcopyflags = '-O binary'; + enable = i386_pc; +@@ -489,7 +490,7 @@ image = { + + i386_pc = boot/i386/pc/cdboot.S; + i386_pc_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x7C00'; ++ i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x7C00'; + + sparc64_ieee1275 = boot/sparc64/ieee1275/boot.S; + +@@ -509,7 +510,7 @@ image = { + i386_pc = boot/i386/pc/pxeboot.S; + + i386_pc_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x7C00'; ++ i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x7C00'; + + objcopyflags = '-O binary'; + enable = i386_pc; +@@ -520,7 +521,7 @@ image = { + i386_pc = boot/i386/pc/diskboot.S; + + i386_pc_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x8000'; ++ i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x8000'; + + sparc64_ieee1275 = boot/sparc64/ieee1275/diskboot.S; + sparc64_ieee1275_ldflags = '-Wl,-Ttext=0x4200'; +@@ -536,7 +537,7 @@ image = { + i386_pc = boot/i386/pc/lnxboot.S; + + i386_pc_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x6000'; ++ i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x6000'; + + objcopyflags = '-O binary'; + enable = i386_pc; +@@ -578,7 +579,7 @@ image = { + i386_pc_nodist = rs_decoder.h; + + objcopyflags = '-O binary'; +- ldflags = '$(TARGET_IMG_LDFLAGS) $(TARGET_IMG_BASE_LDOPT),0x8200'; ++ ldflags = '$(TARGET_IMG_LDFLAGS) $(TARGET_IMG_BASE_LDOPT)$(TARGET_IMG_BASE_LDOPT_ARG_SEP)0x8200'; + enable = i386_pc; + }; + +-- +GitLab + diff --git a/patches/grub/2.14/0005-efi-sb-prefer-legacy-SHIM_LOCK-verify-for-pre-SBAT-kernels.patch b/patches/grub/2.14/0005-efi-sb-prefer-legacy-SHIM_LOCK-verify-for-pre-SBAT-kernels.patch new file mode 100644 index 000000000..1398837d4 --- /dev/null +++ b/patches/grub/2.14/0005-efi-sb-prefer-legacy-SHIM_LOCK-verify-for-pre-SBAT-kernels.patch @@ -0,0 +1,52 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Brad House +Date: Fri, 10 Jul 2026 00:00:00 +0000 +Subject: [PATCH] efi/sb: prefer legacy SHIM_LOCK verify so pre-SBAT kernels + boot under shim >= 15 + +ONIE supports platforms that still build older (pre-6.x) Linux kernels. +Those kernels' EFI stub predates SBAT and carries no .sbat section. + +grub 2.14 verifies the images it loads (including the kernel) using shim's +newer image-loader protocol when shim provides it (shim >= 15/16). That +path makes an .sbat section MANDATORY, so shim rejects a pre-SBAT kernel +("No .sbat section data" -> grub "bad shim loader signature") even though +the kernel's Authenticode signature is valid. + +shim also still installs the legacy SHIM_LOCK verify protocol, which +enforces the signature but treats SBAT as optional for images verified +through the protocol (shim's verify_sbat_section() returns success on a +missing .sbat when in_protocol). Prefer that protocol when it is present +so a validly-signed old kernel boots. shim and grub keep full SBAT +enforcement in the boot chain up to grub itself; only the kernel is then +verified by signature alone -- which is how ONIE (signing its own kernels) +verified kernels before the shim/grub modernization. + +Signed-off-by: Brad House +--- + grub-core/kern/efi/sb.c | 14 ++++++++++++++ + 1 file changed, 14 insertions(+) + +--- a/grub-core/kern/efi/sb.c ++++ b/grub-core/kern/efi/sb.c +@@ -236,6 +236,20 @@ + shim_loader = grub_efi_locate_protocol (&shim_loader_guid, 0); + shim_lock = grub_efi_locate_protocol (&shim_lock_guid, 0); + ++ /* ++ * ONIE: when the legacy SHIM_LOCK verify protocol is available, prefer it ++ * over shim's newer image-loader protocol. shim's load_image path makes an ++ * .sbat section MANDATORY in every image it loads, which rejects ONIE's ++ * older (pre-6.x) kernels whose EFI stub predates SBAT -- "No .sbat section ++ * data" -> "bad shim loader signature" -- even though the kernel signature ++ * is valid. The SHIM_LOCK->verify path still enforces the signature but ++ * treats SBAT as optional (in_protocol), so a validly-signed old kernel ++ * boots. shim and grub keep full SBAT enforcement in the boot chain up to ++ * grub itself; only the kernel is verified by signature alone. ++ */ ++ if (shim_lock != NULL) ++ shim_loader = NULL; ++ + /* shim is missing, check if GRUB image is built with --disable-shim-lock. */ + if (shim_loader == NULL && shim_lock == NULL) + { diff --git a/patches/grub/2.14/series b/patches/grub/2.14/series new file mode 100644 index 000000000..f92508db0 --- /dev/null +++ b/patches/grub/2.14/series @@ -0,0 +1,14 @@ +# Upstream grub fix series (post-2.14, grub master, by Nicholas Vinson) for +# the i386-pc kernel.img link under modern binutils. grub 2.14's i386-pc +# kernel.img links via -Wl,--image-base, and binutils >= 2.39 (-z separate-code) +# maps the ELF headers into the first PT_LOAD, shifting .text off the required +# 0x9000 base ("grub-mkimage: kernel.img is miscompiled: start address 0x9074"). +# These commits switch i386-pc to a custom linker script + --defsym=_grub_text_base. +# Reverting the --image-base AX_CHECK_LINK_FLAG block also removes grub's +# autoconf-archive build dependency. Drops when ONIE moves to grub >= the +# release that includes these (post-2.14). +0001-build-i386-pc-update-kernel-image-generation.patch +0002-revert-configure-print-helpful-error-if-autoconf-archive-missing.patch +0003-revert-configure-check-linker-for-image-base-support.patch +0004-configure-drop-ttext-checks-for-i386-pc.patch +0005-efi-sb-prefer-legacy-SHIM_LOCK-verify-for-pre-SBAT-kernels.patch diff --git a/patches/i2ctools/gitignore.patch b/patches/i2ctools/gitignore.patch index 932580b1b..48ba066d4 100644 --- a/patches/i2ctools/gitignore.patch +++ b/patches/i2ctools/gitignore.patch @@ -5,15 +5,13 @@ Copyright (C) 2014 david_yang SPDX-License-Identifier: GPL-2.0 diff --git a/.gitignore b/.gitignore -new file mode 100644 -index 0000000..f7775cf ---- /dev/null +index e1bcbb3..a1fcba0 100644 +--- a/.gitignore +++ b/.gitignore -@@ -0,0 +1,7 @@ -+*.o -+*.patch +@@ -6,3 +6,6 @@ + *.so.* + *.so.dbg + *.ao ++sys_eeprom/24cXX.c ++sys_eeprom/24cXX.h +sys_eeprom/onie-syseeprom -+tools/i2cdetect -+tools/i2cdump -+tools/i2cget -+tools/i2cset diff --git a/patches/i2ctools/i2ctools-onie-cross-compile.patch b/patches/i2ctools/i2ctools-onie-cross-compile.patch index 25522c340..52a409832 100644 --- a/patches/i2ctools/i2ctools-onie-cross-compile.patch +++ b/patches/i2ctools/i2ctools-onie-cross-compile.patch @@ -6,28 +6,40 @@ Copyright (C) 2014 david_yang SPDX-License-Identifier: GPL-2.0 diff --git a/Makefile b/Makefile -index 5ea7486..0c859b3 100644 +index 5ac8a59..566bc2a 100644 --- a/Makefile +++ b/Makefile -@@ -21,10 +21,9 @@ INSTALL_DIR := $(INSTALL) -m 755 -d - INSTALL_PROGRAM := $(INSTALL) -m 755 +@@ -24,9 +24,9 @@ INSTALL_PROGRAM := $(INSTALL) -m 755 + LN := ln -sf RM := rm -f - + -CC ?= gcc -+CC=$(CROSS_COMPILE)gcc - --CFLAGS ?= -O2 --# When debugging, use the following instead -+#When debugging, use the following instead - #CFLAGS := -O -g - CFLAGS += -Wall - -@@ -34,7 +33,5 @@ KERNELVERSION := $(shell uname -r) - +-AR ?= ar +-STRIP ?= strip ++CC = $(CROSS_COMPILE)gcc ++AR = $(CROSS_COMPILE)ar ++STRIP = $(CROSS_COMPILE)strip + + CFLAGS ?= -O2 + # When debugging, use the following instead +@@ -34,9 +34,9 @@ CFLAGS ?= -O2 + CFLAGS += -Wall + SOCFLAGS := -fpic -D_REENTRANT $(CFLAGS) + +-BUILD_DYNAMIC_LIB ?= 1 ++BUILD_DYNAMIC_LIB ?= 0 + BUILD_STATIC_LIB ?= 1 +-USE_STATIC_LIB ?= 0 ++USE_STATIC_LIB ?= 1 + + ifeq ($(USE_STATIC_LIB),1) + BUILD_STATIC_LIB := 1 +@@ -54,7 +54,5 @@ endif + all: - + -EXTRA := --#EXTRA += py-smbus --SRCDIRS := include eeprom stub tools $(EXTRA) -+SRCDIRS := include tools +-#EXTRA += eeprog py-smbus +-SRCDIRS := include lib eeprom stub tools $(EXTRA) ++SRCDIRS := include lib include $(SRCDIRS:%=%/Module.mk) diff --git a/patches/i2ctools/i2ctools-sys-eeprom.patch b/patches/i2ctools/i2ctools-sys-eeprom.patch index e47b69062..eed7ddbc6 100644 --- a/patches/i2ctools/i2ctools-sys-eeprom.patch +++ b/patches/i2ctools/i2ctools-sys-eeprom.patch @@ -5,48 +5,38 @@ Copyright (C) 2014 david_yang Copyright (C) 2014 Curt Brune diff --git a/Makefile b/Makefile -index 0c859b3..144e1bc 100644 +index 566bc2a..7446ae7 100644 --- a/Makefile +++ b/Makefile -@@ -34,4 +34,9 @@ KERNELVERSION := $(shell uname -r) +@@ -55,4 +55,9 @@ endif all: - SRCDIRS := include tools + SRCDIRS := include lib + +ifeq ($(SYSEEPROM_ENABLE),yes) +SRCDIRS := $(SRCDIRS) sys_eeprom +endif + include $(SRCDIRS:%=%/Module.mk) - -diff --git a/sys_eeprom/24cXX.c b/sys_eeprom/24cXX.c -index 54c6342..be194ad 100644 ---- a/sys_eeprom/24cXX.c -+++ b/sys_eeprom/24cXX.c -@@ -44,7 +44,7 @@ static int i2c_write_2b(struct eeprom *e, __u8 buf[2]) - r = i2c_smbus_write_byte_data(e->fd, buf[0], buf[1]); - if(r < 0) - fprintf(stderr, "Error i2c_write_2b: %s\n", strerror(errno)); -- usleep(10); -+ usleep(1000); - return r; - } - diff --git a/sys_eeprom/Module.mk b/sys_eeprom/Module.mk new file mode 100644 -index 0000000..5b59b5a +index 0000000..0cfd439 --- /dev/null +++ b/sys_eeprom/Module.mk -@@ -0,0 +1,32 @@ +@@ -0,0 +1,36 @@ +#sys_eeprom Makefile + +SYS_EEPROM_DIR := sys_eeprom -+SYS_EEPROM_FLAGS := -O2 -Iinclude -lz ++SYS_EEPROM_FLAGS := -O2 -Iinclude ++SYS_EEPROM_LIBS := $(LIB_DIR)/$(LIB_STLIBNAME) -lz +SYS_EEPROM_TARGETS:= onie-syseeprom + +$(SYS_EEPROM_DIR)/onie-syseeprom: $(SYS_EEPROM_DIR)/sys_eeprom.o \ -+ $(SYS_EEPROM_DIR)/onie_tlvinfo.o $(SYS_EEPROM_DIR)/24cXX.o -+ $(CC) $(CFLAGS) $(SYS_EEPROM_FLAGS) $(LDFLAGS) -o $@ $^ ++ $(SYS_EEPROM_DIR)/onie_tlvinfo.o $(SYS_EEPROM_DIR)/24cXX.o \ ++ $(LIB_DIR)/$(LIB_STLIBNAME) ++ $(CC) $(CFLAGS) $(SYS_EEPROM_FLAGS) $(LDFLAGS) -o $@ \ ++ $(SYS_EEPROM_DIR)/sys_eeprom.o $(SYS_EEPROM_DIR)/onie_tlvinfo.o \ ++ $(SYS_EEPROM_DIR)/24cXX.o $(SYS_EEPROM_LIBS) + +$(SYS_EEPROM_DIR)/sys_eeprom.o: $(SYS_EEPROM_DIR)/sys_eeprom.c \ + $(SYS_EEPROM_DIR)/onie_tlvinfo.c $(SYS_EEPROM_DIR)/onie_tlvinfo.h \ @@ -59,7 +49,7 @@ index 0000000..5b59b5a + $(CC) $(CFLAGS) $(LD_FLAGS) $(SYS_EEPROM_FLAGS) -c $< -o $@ + +$(SYS_EEPROM_DIR)/24cXX.o: $(SYS_EEPROM_DIR)/24cXX.c \ -+ $(INCLUDE_DIR)/linux/i2c-dev.h $(SYS_EEPROM_DIR)/24cXX.h ++ $(INCLUDE_DIR)/i2c/smbus.h $(SYS_EEPROM_DIR)/24cXX.h + $(CC) $(CFLAGS) $(SYS_EEPROM_FLAGS) -c $< -o $@ + +all-sys_eeproms: $(addprefix $(SYS_EEPROM_DIR)/,$(SYS_EEPROM_TARGETS)) diff --git a/patches/i2ctools/series b/patches/i2ctools/series index be175ab6e..13b2cb92a 100644 --- a/patches/i2ctools/series +++ b/patches/i2ctools/series @@ -1,4 +1,4 @@ -# This series applies on GIT commit 160112307a7bcc6eef24e122b52ea2ff83a07683 +# This series applies on the i2c-tools 4.4 release tarball gitignore.patch i2ctools-onie-cross-compile.patch i2ctools-sys-eeprom.patch diff --git a/patches/kexec-tools/0001-Improve-device-tree-directory-sorting.patch b/patches/kexec-tools/0001-Improve-device-tree-directory-sorting.patch deleted file mode 100644 index 243ef57c3..000000000 --- a/patches/kexec-tools/0001-Improve-device-tree-directory-sorting.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 0e1030b345b9e7c1c64b85dde32a282a19b825f0 Mon Sep 17 00:00:00 2001 -From: Curt Brune -Date: Tue, 24 Nov 2015 18:17:10 -0800 -Subject: [PATCH 1/1] Improve device tree directory sorting - -Previously when sorting the device tree directory entries, if both -device tree entries contained the '@' character then comparison was -made based on the length of the strings. - -This did not work in all cases and could result in odd orderings. - -This patch modifies the comparison function for the case when both -strings contain the '@' character. - -First a lexical comparison is made between the prefix portions of the -strings *before* the '@' character. - -Next, if the prefixes are equal, the lengths of the suffixes *after* -the '@' character are compared. This preserves the intent of the -original code. - -Next, if the suffix lengths are equal, a lexical comparison of the -suffixes is made. - -This is still not strictly correct, as ideally the portion after the -'@' should be compared numerically. However, determining what base to -use for all case is difficult. - -Signed-off-by: Curt Brune -Signed-off-by: Simon Horman ---- - kexec/arch/ppc/fs2dt.c | 21 +++++++++++++++++---- - 1 file changed, 17 insertions(+), 4 deletions(-) - -diff --git a/kexec/arch/ppc/fs2dt.c b/kexec/arch/ppc/fs2dt.c -index 4121c7d..6e77379 100644 ---- a/kexec/arch/ppc/fs2dt.c -+++ b/kexec/arch/ppc/fs2dt.c -@@ -30,6 +30,7 @@ - #include - #include "../../kexec.h" - #include "kexec-ppc.h" -+#include "types.h" - - #define MAXPATH 1024 /* max path name length */ - #define NAMESPACE 16384 /* max bytes for property names */ -@@ -296,6 +297,8 @@ static int comparefunc(const void *dentry1, const void *dentry2) - { - char *str1 = (*(struct dirent **)dentry1)->d_name; - char *str2 = (*(struct dirent **)dentry2)->d_name; -+ char *p1, *p2; -+ int res = 0, max_len; - - /* - * strcmp scans from left to right and fails to idetify for some -@@ -303,11 +306,21 @@ static int comparefunc(const void *dentry1, const void *dentry2) - * Therefore, we get the wrong sorted order like memory@10000000 and - * memory@f000000. - */ -- if (strchr(str1, '@') && strchr(str2, '@') && -- (strlen(str1) > strlen(str2))) -- return 1; -+ if ((p1 = strchr(str1, '@')) && (p2 = strchr(str2, '@'))) { -+ max_len = max(p1 - str1, p2 - str2); -+ if ((res = strncmp(str1, str2, max_len)) == 0) { -+ /* prefix is equal - compare part after '@' by length */ -+ p1++; p2++; -+ res = strlen(p1) - strlen(p2); -+ if (res == 0) -+ /* equal length, compare by strcmp() */ -+ res = strcmp(p1,p2); -+ } -+ } else { -+ res = strcmp(str1, str2); -+ } - -- return strcmp(str1, str2); -+ return res; - } - - /* --- -1.9.1 - diff --git a/patches/kexec-tools/15-25-kexec-tools-add-aarch64-support.patch b/patches/kexec-tools/15-25-kexec-tools-add-aarch64-support.patch deleted file mode 100644 index 1a7c2a9ad..000000000 --- a/patches/kexec-tools/15-25-kexec-tools-add-aarch64-support.patch +++ /dev/null @@ -1,828 +0,0 @@ -Subject: [PATCH 1/1] From: Geoff Levand Date: Mon, 15 - Jul 2013 23:32:36 +0000 (-0700) Subject: Add arm64 support X-Git-Url: - https://git.linaro.org/gitweb?p=people%2Fgeoff%2Fkexec-tools.git;a=commitdiff_plain;h=fbf5ac6c2c70ec0f6da2b9ff563e573999752c01 - -Add arm64 support - -Signed-off-by: Geoff Levand - -Get patch from: -https://fedorapeople.org/~hrw/aarch64/for-fedora/kexec-aarch64.patch - -Signed-off-by: Kai Kang ---- - configure | 3 + - configure.ac | 3 + - kexec/Makefile | 1 + - kexec/arch/arm64/Makefile | 13 ++ - kexec/arch/arm64/crashdump-arm64.c | 305 ++++++++++++++++++++++++++++++++ - kexec/arch/arm64/include/arch/options.h | 26 +++ - kexec/arch/arm64/kexec-arm64.c | 177 ++++++++++++++++++ - kexec/arch/arm64/kexec-arm64.h | 20 +++ - kexec/arch/arm64/kexec-elf-arm64.c | 114 ++++++++++++ - kexec/kexec-syscall.h | 7 +- - kexec/kexec.c | 4 +- - purgatory/arch/arm64/Makefile | 7 + - 12 files changed, 678 insertions(+), 2 deletions(-) - create mode 100644 kexec/arch/arm64/Makefile - create mode 100644 kexec/arch/arm64/crashdump-arm64.c - create mode 100644 kexec/arch/arm64/include/arch/options.h - create mode 100644 kexec/arch/arm64/kexec-arm64.c - create mode 100644 kexec/arch/arm64/kexec-arm64.h - create mode 100644 kexec/arch/arm64/kexec-elf-arm64.c - create mode 100644 purgatory/arch/arm64/Makefile - -diff --git a/configure b/configure -index 94a429c..1b59cdf 100755 ---- a/configure -+++ b/configure -@@ -2195,6 +2195,9 @@ case $target_cpu in - ARCH="ppc64" - SUBARCH="LE" - ;; -+ aarch64 ) -+ ARCH="arm64" -+ ;; - arm* ) - ARCH="arm" - ;; -diff --git a/configure.ac b/configure.ac -index 94f3018..c815f34 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -35,6 +35,9 @@ case $target_cpu in - ARCH="ppc64" - SUBARCH="LE" - ;; -+ aarch64 ) -+ ARCH="arm64" -+ ;; - arm* ) - ARCH="arm" - ;; -diff --git a/kexec/Makefile b/kexec/Makefile -index a758b4a..8bc6d08 100644 ---- a/kexec/Makefile -+++ b/kexec/Makefile -@@ -71,6 +71,7 @@ KEXEC_SRCS += $($(ARCH)_FS2DT) - - include $(srcdir)/kexec/arch/alpha/Makefile - include $(srcdir)/kexec/arch/arm/Makefile -+include $(srcdir)/kexec/arch/arm64/Makefile - include $(srcdir)/kexec/arch/i386/Makefile - include $(srcdir)/kexec/arch/ia64/Makefile - include $(srcdir)/kexec/arch/m68k/Makefile -diff --git a/kexec/arch/arm64/Makefile b/kexec/arch/arm64/Makefile -new file mode 100644 -index 0000000..639805a ---- /dev/null -+++ b/kexec/arch/arm64/Makefile -@@ -0,0 +1,13 @@ -+arm64_KEXEC_SRCS += \ -+ kexec/arch/arm64/kexec-arm64.c \ -+ kexec/arch/arm64/kexec-elf-arm64.c \ -+ kexec/arch/arm64/crashdump-arm64.c -+ -+arm64_ARCH_REUSE_INITRD = -+arm64_ADD_SEGMENT = -+arm64_VIRT_TO_PHYS = -+ -+dist += $(arm64_KEXEC_SRCS) \ -+ kexec/arch/arm64/Makefile \ -+ kexec/arch/arm64/kexec-arm64.h -+ -diff --git a/kexec/arch/arm64/crashdump-arm64.c b/kexec/arch/arm64/crashdump-arm64.c -new file mode 100644 -index 0000000..bb1b8bd ---- /dev/null -+++ b/kexec/arch/arm64/crashdump-arm64.c -@@ -0,0 +1,305 @@ -+/* -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation (version 2 of the License). -+ */ -+ -+#include "../../kexec.h" -+#include "../../kexec-elf.h" -+#include "../../crashdump.h" -+ -+int is_crashkernel_mem_reserved(void) -+{ -+ return 0; -+} -+ -+#if 0 -+/* -+ * Used to save various memory ranges/regions needed for the captured -+ * kernel to boot. (lime memmap= option in other archs) -+ */ -+static struct memory_range crash_memory_ranges[CRASH_MAX_MEMORY_RANGES]; -+struct memory_ranges usablemem_rgns = { -+ .size = 0, -+ .ranges = crash_memory_ranges, -+}; -+ -+/* memory range reserved for crashkernel */ -+static struct memory_range crash_reserved_mem; -+ -+static struct crash_elf_info elf_info = { -+ .class = ELFCLASS32, -+ .data = ELFDATA2LSB, -+ .machine = EM_ARM, -+ .page_offset = PAGE_OFFSET, -+}; -+ -+unsigned long phys_offset; -+ -+/** -+ * crash_range_callback() - callback called for each iomem region -+ * @data: not used -+ * @nr: not used -+ * @str: name of the memory region -+ * @base: start address of the memory region -+ * @length: size of the memory region -+ * -+ * This function is called once for each memory region found in /proc/iomem. It -+ * locates system RAM and crashkernel reserved memory and places these to -+ * variables: @crash_memory_ranges and @crash_reserved_mem. Number of memory -+ * regions is placed in @crash_memory_nr_ranges. -+ */ -+static int crash_range_callback(void *UNUSED(data), int UNUSED(nr), -+ char *str, unsigned long base, -+ unsigned long length) -+{ -+ struct memory_range *range; -+ -+ if (usablemem_rgns.size >= CRASH_MAX_MEMORY_RANGES) -+ return 1; -+ -+ range = usablemem_rgns.ranges + usablemem_rgns.size; -+ -+ if (strncmp(str, "System RAM\n", 11) == 0) { -+ range->start = base; -+ range->end = base + length - 1; -+ range->type = RANGE_RAM; -+ usablemem_rgns.size++; -+ } else if (strncmp(str, "Crash kernel\n", 13) == 0) { -+ crash_reserved_mem.start = base; -+ crash_reserved_mem.end = base + length - 1; -+ crash_reserved_mem.type = RANGE_RAM; -+ } -+ -+ return 0; -+} -+ -+/** -+ * crash_exclude_range() - excludes memory region reserved for crashkernel -+ * -+ * Function locates where crashkernel reserved memory is and removes that region -+ * from the available memory regions. -+ */ -+static void crash_exclude_range(void) -+{ -+ const struct memory_range *range = &crash_reserved_mem; -+ int i; -+ -+ for (i = 0; i < usablemem_rgns.size; i++) { -+ struct memory_range *r = usablemem_rgns.ranges + i; -+ -+ /* -+ * We assume that crash area is fully contained in -+ * some larger memory area. -+ */ -+ if (r->start <= range->start && r->end >= range->end) { -+ struct memory_range *new; -+ /* -+ * Let's split this area into 2 smaller ones and -+ * remove excluded range from between. First create -+ * new entry for the remaining area. -+ */ -+ new = usablemem_rgns.ranges + usablemem_rgns.size; -+ new->start = range->end + 1; -+ new->end = r->end; -+ usablemem_rgns.size++; -+ /* -+ * Next update this area to end before excluded range. -+ */ -+ r->end = range->start - 1; -+ break; -+ } -+ } -+} -+ -+static int range_cmp(const void *a1, const void *a2) -+{ -+ const struct memory_range *r1 = a1; -+ const struct memory_range *r2 = a2; -+ -+ if (r1->start > r2->start) -+ return 1; -+ if (r1->start < r2->start) -+ return -1; -+ -+ return 0; -+} -+ -+/** -+ * crash_get_memory_ranges() - read system physical memory -+ * -+ * Function reads through system physical memory and stores found memory regions -+ * in @crash_memory_ranges. Number of memory regions found is placed in -+ * @crash_memory_nr_ranges. Regions are sorted in ascending order. -+ * -+ * Returns %0 in case of success and %-1 otherwise (errno is set). -+ */ -+static int crash_get_memory_ranges(void) -+{ -+ /* -+ * First read all memory regions that can be considered as -+ * system memory including the crash area. -+ */ -+ kexec_iomem_for_each_line(NULL, crash_range_callback, NULL); -+ -+ if (usablemem_rgns.size < 1) { -+ errno = EINVAL; -+ return -1; -+ } -+ -+ /* -+ * Exclude memory reserved for crashkernel (this may result a split memory -+ * region). -+ */ -+ crash_exclude_range(); -+ -+ /* -+ * Make sure that the memory regions are sorted. -+ */ -+ qsort(usablemem_rgns.ranges, usablemem_rgns.size, -+ sizeof(*usablemem_rgns.ranges), range_cmp); -+ -+ return 0; -+} -+ -+/** -+ * cmdline_add_elfcorehdr() - adds elfcorehdr= to @cmdline -+ * @cmdline: buffer where parameter is placed -+ * @elfcorehdr: physical address of elfcorehdr -+ * -+ * Function appends 'elfcorehdr=start' at the end of the command line given in -+ * @cmdline. Note that @cmdline must be at least %COMMAND_LINE_SIZE bytes long -+ * (inclunding %NUL). -+ */ -+static void cmdline_add_elfcorehdr(char *cmdline, unsigned long elfcorehdr) -+{ -+ char buf[COMMAND_LINE_SIZE]; -+ int buflen; -+ -+ buflen = snprintf(buf, sizeof(buf), "%s elfcorehdr=%#lx", -+ cmdline, elfcorehdr); -+ if (buflen < 0) -+ die("Failed to construct elfcorehdr= command line parameter\n"); -+ if (buflen >= sizeof(buf)) -+ die("Command line overflow\n"); -+ -+ (void) strncpy(cmdline, buf, COMMAND_LINE_SIZE); -+ cmdline[COMMAND_LINE_SIZE - 1] = '\0'; -+} -+ -+/** -+ * cmdline_add_mem() - adds mem= parameter to kernel command line -+ * @cmdline: buffer where parameter is placed -+ * @size: size of the kernel reserved memory (in bytes) -+ * -+ * This function appends 'mem=size' at the end of the command line given in -+ * @cmdline. Note that @cmdline must be at least %COMMAND_LINE_SIZE bytes long -+ * (including %NUL). -+ */ -+static void cmdline_add_mem(char *cmdline, unsigned long size) -+{ -+ char buf[COMMAND_LINE_SIZE]; -+ int buflen; -+ -+ buflen = snprintf(buf, sizeof(buf), "%s mem=%ldK", cmdline, size >> 10); -+ if (buflen < 0) -+ die("Failed to construct mem= command line parameter\n"); -+ if (buflen >= sizeof(buf)) -+ die("Command line overflow\n"); -+ -+ (void) strncpy(cmdline, buf, COMMAND_LINE_SIZE); -+ cmdline[COMMAND_LINE_SIZE - 1] = '\0'; -+} -+ -+static unsigned long long range_size(const struct memory_range *r) -+{ -+ return r->end - r->start + 1; -+} -+ -+static void dump_memory_ranges(void) -+{ -+ int i; -+ -+ if (!kexec_debug) -+ return; -+ -+ dbgprintf("crashkernel: [%#llx - %#llx] (%ldM)\n", -+ crash_reserved_mem.start, crash_reserved_mem.end, -+ (unsigned long)range_size(&crash_reserved_mem) >> 20); -+ -+ for (i = 0; i < usablemem_rgns.size; i++) { -+ struct memory_range *r = usablemem_rgns.ranges + i; -+ dbgprintf("memory range: [%#llx - %#llx] (%ldM)\n", -+ r->start, r->end, (unsigned long)range_size(r) >> 20); -+ } -+} -+ -+/** -+ * load_crashdump_segments() - loads additional segments needed for kdump -+ * @info: kexec info structure -+ * @mod_cmdline: kernel command line -+ * -+ * This function loads additional segments which are needed for the dump capture -+ * kernel. It also updates kernel command line passed in @mod_cmdline to have -+ * right parameters for the dump capture kernel. -+ * -+ * Return %0 in case of success and %-1 in case of error. -+ */ -+int load_crashdump_segments(struct kexec_info *info, char *mod_cmdline) -+{ -+ unsigned long elfcorehdr; -+ unsigned long bufsz; -+ void *buf; -+ int err; -+ -+ /* -+ * First fetch all the memory (RAM) ranges that we are going to pass to -+ * the crashdump kernel during panic. -+ */ -+ err = crash_get_memory_ranges(); -+ if (err) -+ return err; -+ -+ /* -+ * Now that we have memory regions sorted, we can use first memory -+ * region as PHYS_OFFSET. -+ */ -+ phys_offset = usablemem_rgns.ranges->start; -+ dbgprintf("phys_offset: %#lx\n", phys_offset); -+ -+ err = crash_create_elf32_headers(info, &elf_info, -+ usablemem_rgns.ranges, -+ usablemem_rgns.size, &buf, &bufsz, -+ ELF_CORE_HEADER_ALIGN); -+ if (err) -+ return err; -+ -+ /* -+ * We allocate ELF core header from the end of the memory area reserved -+ * for the crashkernel. We align the header to SECTION_SIZE (which is -+ * 1MB) so that available memory passed in kernel command line will be -+ * aligned to 1MB. This is because kernel create_mapping() wants memory -+ * regions to be aligned to SECTION_SIZE. -+ */ -+ elfcorehdr = add_buffer_phys_virt(info, buf, bufsz, bufsz, 1 << 20, -+ crash_reserved_mem.start, -+ crash_reserved_mem.end, -1, 0); -+ -+ dbgprintf("elfcorehdr: %#lx\n", elfcorehdr); -+ cmdline_add_elfcorehdr(mod_cmdline, elfcorehdr); -+ -+ /* -+ * Add 'mem=size' parameter to dump capture kernel command line. This -+ * prevents the dump capture kernel from using any other memory regions -+ * which belong to the primary kernel. -+ */ -+ cmdline_add_mem(mod_cmdline, elfcorehdr - crash_reserved_mem.start); -+ -+ dump_memory_ranges(); -+ dbgprintf("kernel command line: \"%s\"\n", mod_cmdline); -+ -+ return 0; -+} -+ -+#endif -+ -diff --git a/kexec/arch/arm64/include/arch/options.h b/kexec/arch/arm64/include/arch/options.h -new file mode 100644 -index 0000000..04f6451 ---- /dev/null -+++ b/kexec/arch/arm64/include/arch/options.h -@@ -0,0 +1,26 @@ -+#ifndef KEXEC_ARCH_ARM64_OPTIONS_H -+#define KEXEC_ARCH_ARM64_OPTIONS_H -+ -+//#define OPT_ARCH_MAX ((OPT_MAX)+0) -+ -+#define OPT_APPEND ((OPT_MAX)+0) -+#define OPT_RAMDISK ((OPT_MAX)+1) -+#define OPT_DTB ((OPT_MAX)+2) -+ -+#define OPT_ARCH_MAX ((OPT_MAX)+3) -+ -+ -+#define KEXEC_ARCH_OPTIONS \ -+ KEXEC_OPTIONS \ -+ { "append", 1, NULL, OPT_APPEND }, \ -+ { "command-line", 1, NULL, OPT_APPEND }, \ -+ { "dtb", 1, NULL, OPT_DTB }, \ -+ { "initrd", 1, NULL, OPT_RAMDISK }, \ -+ { "ramdisk", 1, NULL, OPT_RAMDISK }, \ -+ -+#define KEXEC_ARCH_OPT_STR KEXEC_OPT_STR /* Only accept long arch options. */ -+ -+#define KEXEC_ALL_OPTIONS KEXEC_ARCH_OPTIONS -+#define KEXEC_ALL_OPT_STR KEXEC_ARCH_OPT_STR -+ -+#endif /* KEXEC_ARCH_ARM64_OPTIONS_H */ -diff --git a/kexec/arch/arm64/kexec-arm64.c b/kexec/arch/arm64/kexec-arm64.c -new file mode 100644 -index 0000000..fdb59d8 ---- /dev/null -+++ b/kexec/arch/arm64/kexec-arm64.c -@@ -0,0 +1,177 @@ -+/* -+ *ARM64 kexec support. -+ */ -+ -+#define _GNU_SOURCE -+ -+#include -+#include -+ -+//#include -+ -+#include "../../kexec.h" -+#include "../../kexec-syscall.h" -+#include "kexec-arm64.h" -+ -+ -+void arch_usage(void) -+{ -+ fprintf(stderr, "%s:%d: ->\n", __func__, __LINE__); -+ -+ printf( -+" --append=STRING Set the kernel command line to STRING.\n" -+" --command-line=STRING Set the kernel command line to STRING.\n" -+" --dtb=FILE Use FILE as the device tree blob.\n" -+" --initrd=FILE Use FILE as the kernel initial ramdisk.\n" -+" --ramdisk=FILE Use FILE as the kernel initial ramdisk.\n"); -+ -+ fprintf(stderr, "%s:%d: <-\n", __func__, __LINE__); -+} -+ -+int arch_process_options(int UNUSED(argc), char **UNUSED(argv)) -+{ -+ fprintf(stderr, "%s:%d: do\n", __func__, __LINE__); -+ return 0; -+} -+ -+const struct arch_map_entry arches[] = { -+ { "aarch64", KEXEC_ARCH_ARM64 }, -+ { NULL, 0 }, -+}; -+ -+void arch_update_purgatory(struct kexec_info *UNUSED(info)) -+{ -+ fprintf(stderr, "%s:%d: do\n", __func__, __LINE__); -+} -+ -+unsigned long virt_to_phys(unsigned long addr) -+{ -+ fprintf(stderr, "%s:%d: %016lx -> %016lx\n", __func__, __LINE__, addr, -+ addr + 0x080000000UL); -+ return addr + 0x080000000UL; -+} -+ -+void add_segment(struct kexec_info *info, const void *buf, size_t bufsz, -+ unsigned long base, size_t memsz) -+{ -+ fprintf(stderr, "%s:%d: ->\n", __func__, __LINE__); -+ add_segment_phys_virt(info, buf, bufsz, base, memsz, 1); -+ fprintf(stderr, "%s:%d: <-\n", __func__, __LINE__); -+} -+ -+static int get_memory_ranges_1(struct memory_range **range, int *ranges, -+ unsigned long kexec_flags) -+{ -+ static struct memory_range memory_range[KEXEC_SEGMENT_MAX]; -+ const char *iomem; -+ int range_count = 0; -+ char line[MAX_LINE]; -+ FILE *fp; -+ -+ iomem = proc_iomem(); -+ fp = fopen(iomem, "r"); -+ -+ if (!fp) { -+ fprintf(stderr, "Cannot open %s: %s\n", -+ iomem, strerror(errno)); -+ return -1; -+ } -+ -+ dbgprintf("memory ranges:\n"); -+ -+ while(fgets(line, sizeof(line), fp) != 0) { -+ struct memory_range r; -+ char *str; -+ int consumed; -+ -+ if (range_count >= KEXEC_SEGMENT_MAX) -+ break; -+ -+ if (sscanf(line, "%Lx-%Lx : %n", &r.start, &r.end, &consumed) -+ != 2) -+ continue; -+ -+ str = line + consumed; -+ r.end++; -+ -+ if (memcmp(str, "System RAM\n", 11)) { -+ dbgprintf(" Skip: %016Lx - %016Lx : %s", r.start, r.end, -+ str); -+ continue; -+ } -+ -+ r.type = RANGE_RAM; -+ memory_range[range_count] = r; -+ range_count++; -+ -+ dbgprintf(" Add: %016Lx - %016Lx : %s", r.start, r.end, str); -+ } -+ -+ fclose(fp); -+ *range = memory_range; -+ *ranges = range_count; -+ -+ return 0; -+} -+ -+static int get_memory_ranges_2(struct memory_range **range, int *ranges, -+ unsigned long UNUSED(kexec_flags)) -+{ -+ static struct memory_range memory_range[2]; -+ -+ memory_range[0].start = 0x080000000; -+ memory_range[0].end = 0x100000000; -+ memory_range[0].type = RANGE_RAM; -+ -+ memory_range[1].start = 0x900000000; -+ memory_range[1].end = 0x880000000; -+ memory_range[1].type = RANGE_RAM; -+ -+ *range = memory_range; -+ *ranges = sizeof(memory_range) / sizeof(memory_range[0]); -+ -+ return 0; -+} -+ -+int get_memory_ranges(struct memory_range **range, int *ranges, -+ unsigned long kexec_flags) -+{ -+ /* FIXME: Should get this info from device tree. */ -+ -+ return get_memory_ranges_1(range, ranges, kexec_flags); -+} -+ -+struct file_type file_type[] = { -+ { "elf-arm64", elf_arm64_probe, elf_arm64_load, elf_arm64_usage }, -+}; -+ -+int file_types = sizeof(file_type) / sizeof(file_type[0]); -+ -+int arch_compat_trampoline(struct kexec_info *info) -+{ -+ fprintf(stderr, "%s:%d: do\n", __func__, __LINE__); -+ return 0; -+} -+ -+void arch_reuse_initrd(void) -+{ -+} -+ -+int machine_verify_elf_rel(struct mem_ehdr *ehdr) -+{ -+ (void)ehdr; -+ -+ fprintf(stderr, "%s:%d: do\n", __func__, __LINE__); -+ return 0; -+} -+ -+void machine_apply_elf_rel(struct mem_ehdr *ehdr, unsigned long r_type, -+ void *location, unsigned long address, unsigned long value) -+{ -+ (void)ehdr; -+ (void)r_type; -+ (void)location; -+ (void)address; -+ (void)value; -+ fprintf(stderr, "%s:%d: do\n", __func__, __LINE__); -+} -diff --git a/kexec/arch/arm64/kexec-arm64.h b/kexec/arch/arm64/kexec-arm64.h -new file mode 100644 -index 0000000..e5bf383 ---- /dev/null -+++ b/kexec/arch/arm64/kexec-arm64.h -@@ -0,0 +1,20 @@ -+/* -+ *ARM64 kexec support. -+ */ -+ -+#if !defined(KEXEC_ARM64_H) -+#define KEXEC_ARM64_H -+ -+/* #include FIXME: this is broken */ -+#include -+ -+#include "../../kexec.h" -+ -+#define KEXEC_SEGMENT_MAX 16 /* FIXME: this should come from */ -+ -+int elf_arm64_probe(const char *buf, off_t len); -+int elf_arm64_load(int argc, char **argv, const char *buf, off_t len, -+ struct kexec_info *info); -+void elf_arm64_usage(void); -+ -+#endif -diff --git a/kexec/arch/arm64/kexec-elf-arm64.c b/kexec/arch/arm64/kexec-elf-arm64.c -new file mode 100644 -index 0000000..72c8687 ---- /dev/null -+++ b/kexec/arch/arm64/kexec-elf-arm64.c -@@ -0,0 +1,114 @@ -+/* -+ *ARM64 kexec support. -+ */ -+ -+#define _GNU_SOURCE -+ -+#include -+#include -+ -+#include "../../kexec-syscall.h" -+ -+#include "kexec-arm64.h" -+#include "arch/options.h" -+ -+#if !defined(EM_AARCH64) -+# define EM_AARCH64 183 -+#endif -+ -+int elf_arm64_probe(const char *buf, off_t len) -+{ -+ int result; -+ struct mem_ehdr ehdr; -+ -+ fprintf(stderr, "%s:%d: ->\n", __func__, __LINE__); -+ -+ result = build_elf_exec_info(buf, len, &ehdr, 0); -+ -+ if (result < 0) { -+ dbgprintf("Not an ELF executable\n"); -+ goto out; -+ } -+ -+ if (ehdr.e_machine != EM_AARCH64) { -+ dbgprintf("Not an AARCH64 executable\n"); -+ result = -1; -+ goto out; -+ } -+ -+ result = 0; -+ -+out: -+ free_elf_info(&ehdr); -+ fprintf(stderr, "%s:%d: <-\n", __func__, __LINE__); -+ return result; -+} -+ -+int elf_arm64_load(int argc, char **argv, const char *buf, off_t len, -+ struct kexec_info *info) -+{ -+ static const struct option options[] = { -+ KEXEC_ARCH_OPTIONS -+ { 0 } -+ }; -+ static const char short_options[] = KEXEC_OPT_STR ""; -+ const char *command_line = NULL; -+ unsigned int command_line_len = 0; -+ const char *ramdisk = NULL; -+ const char *dtb = NULL; -+ int opt; -+ struct mem_ehdr ehdr; -+ int result; -+ -+ fprintf(stderr, "%s:%d: ->\n", __func__, __LINE__); -+ -+ while ((opt = getopt_long(argc, argv, short_options, options, 0)) -+ != -1) { -+ switch (opt) { -+ default: -+ if (opt < OPT_MAX) /* Ignore core options */ -+ break; -+ case OPT_APPEND: -+ command_line = optarg; -+ command_line_len = strlen(command_line) + 1; -+ break; -+ case OPT_RAMDISK: -+ ramdisk = optarg; -+ break; -+ case OPT_DTB: -+ dtb = optarg; -+ break; -+ } -+ } -+ -+ fprintf(stderr, "%s:%d: command_line: %s\n", __func__, __LINE__, command_line); -+ fprintf(stderr, "%s:%d: ramdisk: %s\n", __func__, __LINE__, ramdisk); -+ fprintf(stderr, "%s:%d: dtb: %s\n", __func__, __LINE__, dtb); -+ -+ if (info->kexec_flags & KEXEC_ON_CRASH) { -+ fprintf(stderr, "kexec: kdump not yet supported on arm64\n"); -+ return -1; -+ } -+ -+ result = build_elf_exec_info(buf, len, &ehdr, 0); -+ -+ if (result < 0) { -+ free_elf_info(&ehdr); -+ fprintf(stderr, "%s:%d: free_elf_info failed\n", __func__, -+ __LINE__); -+ return result; -+ } -+ -+ elf_exec_build_load(info, &ehdr, buf, len, 0); -+ -+ info->entry = (void*)0x80080000UL; // FIXME -+ -+ fprintf(stderr, "%s:%d: <-\n", __func__, __LINE__); -+ return 0; -+} -+ -+void elf_arm64_usage(void) -+{ -+ fprintf(stderr, "%s:%d: ->\n", __func__, __LINE__); -+ fprintf(stderr, "%s:%d: <-\n", __func__, __LINE__); -+} -diff --git a/kexec/kexec-syscall.h b/kexec/kexec-syscall.h -index ce2e20b..b66db6c 100644 ---- a/kexec/kexec-syscall.h -+++ b/kexec/kexec-syscall.h -@@ -39,7 +39,7 @@ - #ifdef __s390__ - #define __NR_kexec_load 277 - #endif --#ifdef __arm__ -+#if defined(__arm__) || defined(__arm64__) - #define __NR_kexec_load __NR_SYSCALL_BASE + 347 - #endif - #if defined(__mips__) -@@ -108,6 +108,8 @@ static inline long kexec_file_load(int kernel_fd, int initrd_fd, - #define KEXEC_ARCH_PPC64 (21 << 16) - #define KEXEC_ARCH_IA_64 (50 << 16) - #define KEXEC_ARCH_ARM (40 << 16) -+#define KEXEC_ARCH_ARM64 (183 << 16) -+/* #define KEXEC_ARCH_AARCH64 (183 << 16) */ - #define KEXEC_ARCH_S390 (22 << 16) - #define KEXEC_ARCH_SH (42 << 16) - #define KEXEC_ARCH_MIPS_LE (10 << 16) -@@ -150,6 +152,9 @@ static inline long kexec_file_load(int kernel_fd, int initrd_fd, - #if defined(__mips__) - #define KEXEC_ARCH_NATIVE KEXEC_ARCH_MIPS - #endif -+#if defined(__arm64__) -+#define KEXEC_ARCH_NATIVE KEXEC_ARCH_ARM64 -+#endif - #ifdef __m68k__ - #define KEXEC_ARCH_NATIVE KEXEC_ARCH_68K - #endif -diff --git a/kexec/kexec.c b/kexec/kexec.c -index b088916..4ef7c64 100644 ---- a/kexec/kexec.c -+++ b/kexec/kexec.c -@@ -663,7 +663,9 @@ static int my_load(const char *type, int fileind, int argc, char **argv, - - memset(&info, 0, sizeof(info)); - info.kexec_flags = kexec_flags; -- -+ -+ fprintf(stderr, "%s:%d: do\n", __func__, __LINE__); -+ - result = 0; - if (argc - fileind <= 0) { - fprintf(stderr, "No kernel specified\n"); -diff --git a/purgatory/arch/arm64/Makefile b/purgatory/arch/arm64/Makefile -new file mode 100644 -index 0000000..d88e037 ---- /dev/null -+++ b/purgatory/arch/arm64/Makefile -@@ -0,0 +1,7 @@ -+# -+# Purgatory arm64 -+# -+ -+arm64_PURGATORY_SRCS = -+ -+dist += purgatory/arch/arm64/Makefile $(arm64_PURGATORY_SRCS) --- -1.9.1 - diff --git a/patches/kexec-tools/series b/patches/kexec-tools/series index 73a74ea10..289a5f798 100644 --- a/patches/kexec-tools/series +++ b/patches/kexec-tools/series @@ -1,6 +1,9 @@ -# Disabled this series for the post 2021.08 ONIE release, as the upgraded -# kexec-tools has arm64 support, and seems to work fine without the patch. -# PowerPC support remains to be tested - Alex Doyle -# This series applies on GIT commit db8668ed563d446839f25150fb1ba24721d7c4be -#0001-Improve-device-tree-directory-sorting.patch -#15-25-kexec-tools-add-aarch64-support.patch +# No patches required for kexec-tools. +# +# Historically ONIE carried two patches against kexec-tools: +# 0001-Improve-device-tree-directory-sorting.patch +# 15-25-kexec-tools-add-aarch64-support.patch +# Both were already disabled (commented out) after the post-2021.08 upgrade and +# are now fully upstream as of kexec-tools 2.0.32, so they have been dropped: +# - The device-tree directory sorting fix is present in kexec/arch/ppc/fs2dt.c. +# - arm64/aarch64 support is fully provided by kexec/arch/arm64/. diff --git a/patches/lvm2/0001-add-sysmacros.h-to-filter-sysfs.c b/patches/lvm2/0001-add-sysmacros.h-to-filter-sysfs.c deleted file mode 100644 index fd8a2f349..000000000 --- a/patches/lvm2/0001-add-sysmacros.h-to-filter-sysfs.c +++ /dev/null @@ -1,10 +0,0 @@ ---- a/lib/filters/filter-sysfs.c 2021-08-13 14:07:25.761101198 +0000 -+++ b/lib/filters/filter-sysfs.c 2021-08-13 03:57:01.817585951 +0000 -@@ -18,6 +18,7 @@ - #ifdef __linux__ - - #include -+#include - - static int _locate_sysfs_blocks(const char *sysfs_dir, char *path, size_t len, - unsigned *sysfs_depth) diff --git a/patches/lvm2/series b/patches/lvm2/series index c54dcfe69..dc5acad82 100644 --- a/patches/lvm2/series +++ b/patches/lvm2/series @@ -1 +1,8 @@ -0001-add-sysmacros.h-to-filter-sysfs.c \ No newline at end of file +# This series applies on lvm2 release LVM2.2.03.41 +# +# No patches required. +# +# The former 0001-add-sysmacros.h-to-filter-sysfs.c patch (which added +# for the major()/minor() macros to satisfy newer glibc) +# is now upstream as of the 2.03 series and no longer applies, so it has +# been dropped. diff --git a/patches/pciutils/0000-Makefile-changes-for-ONIE.patch b/patches/pciutils/0000-Makefile-changes-for-ONIE.patch index 936791640..19c816275 100644 --- a/patches/pciutils/0000-Makefile-changes-for-ONIE.patch +++ b/patches/pciutils/0000-Makefile-changes-for-ONIE.patch @@ -7,27 +7,16 @@ SPDX-License-Identifier: GPL-2.0 Minor Makefile changes for ONIE build environment. diff --git a/Makefile b/Makefile -index 0a21ee8..f2b8924 100644 +index a726773..7d2567c 100644 --- a/Makefile +++ b/Makefile @@ -4,6 +4,10 @@ OPT=-O2 CFLAGS=$(OPT) -Wall -W -Wno-parentheses -Wstrict-prototypes -Wmissing-prototypes - + +# ONIE build environment changes +CFLAGS += $(ONIE_CFLAGS) +LDFLAGS += $(ONIE_LDFLAGS) + - VERSION=3.2.1 - DATE=2013-11-10 - -@@ -130,7 +134,8 @@ install-lib: $(PCIINC_INS) lib/$(PCILIBPC) install-pcilib - $(INSTALL) -c -m 644 $(PCIINC_INS) $(DESTDIR)$(INCDIR)/pci - $(INSTALL) -c -m 644 lib/$(PCILIBPC) $(DESTDIR)$(PKGCFDIR) - ifeq ($(SHARED),yes) -- ln -sf $(LIBNAME).so$(ABI_VERSION) $(DESTDIR)$(LIBDIR)/$(LIBNAME).so -+ ln -sf $(PCILIB) $(DESTDIR)$(LIBDIR)/$(LIBNAME).so$(ABI_VERSION) -+ ln -sf $(PCILIB) $(DESTDIR)$(LIBDIR)/$(LIBNAME).so - endif - - uninstall: all + VERSION=3.15.0 + DATE=2026-04-05 diff --git a/patches/pciutils/series b/patches/pciutils/series index 788eadc6a..b70328ee7 100644 --- a/patches/pciutils/series +++ b/patches/pciutils/series @@ -1,2 +1,2 @@ -# This series applies on GIT commit 68d0399702a226d60ad9ed7e7f42f0b7b13ff830 +# This series applies on pciutils release 3.15.0 0000-Makefile-changes-for-ONIE.patch diff --git a/patches/pesign/Fix-unsigned-char-changes-value-from-496-to-240.patch b/patches/pesign/Fix-unsigned-char-changes-value-from-496-to-240.patch deleted file mode 100644 index 2415c0212..000000000 --- a/patches/pesign/Fix-unsigned-char-changes-value-from-496-to-240.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 95439e6f4f2f5e752bee76685627c78329fc8728 Mon Sep 17 00:00:00 2001 -From: Alex Doyle -Date: Mon, 30 Aug 2021 22:53:12 +0000 -Subject: [PATCH] Fix 'unsigned char' changes value from '496' to '240' - ---- - src/efikeygen.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/efikeygen.c b/src/efikeygen.c -index 121a238..848480a 100644 ---- a/src/efikeygen.c -+++ b/src/efikeygen.c -@@ -208,7 +208,7 @@ static int - add_cert_type(cms_context *cms, void *extHandle, int is_ca) - { - SECItem bitStringValue; -- unsigned char type = NS_CERT_TYPE_APP; -+ int type = NS_CERT_TYPE_APP; - - if (is_ca) - type |= NS_CERT_TYPE_SSL_CA | --- -2.30.2 - diff --git a/patches/pesign/brace-initialization.patch b/patches/pesign/brace-initialization.patch deleted file mode 100644 index 1e72c62db..000000000 --- a/patches/pesign/brace-initialization.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 96576124252305d23e486e068d8abe0b0cc1bc93 Mon Sep 17 00:00:00 2001 -From: Alex Doyle -Date: Fri, 18 Dec 2020 10:16:28 -0800 -Subject: [PATCH] brace-initialization-patch for pesign-113 - -Fix strict warning message treated as an error -(-Werror=missing-braces) by explicitly initializing every struct -member to zero. ---- - libdpe/pe_allocspace.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libdpe/pe_allocspace.c b/libdpe/pe_allocspace.c -index a2898f6..cdd6a5d 100644 ---- a/libdpe/pe_allocspace.c -+++ b/libdpe/pe_allocspace.c -@@ -61,7 +61,7 @@ pe_set_image_size(Pe *pe) - struct pe32plus_opt_hdr *opthdr = pe->state.pe32plus_exe.opthdr; - - Pe_Scn *scn = NULL; -- struct section_header shdr = { "", 0, }, tmp_shdr; -+ struct section_header shdr = {{ 0 }, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, tmp_shdr; - if (pehdr->sections < 1) - return -1; - --- -2.20.1 - diff --git a/patches/pesign/implicit-fallthrough.patch b/patches/pesign/implicit-fallthrough.patch deleted file mode 100644 index ef1f517b4..000000000 --- a/patches/pesign/implicit-fallthrough.patch +++ /dev/null @@ -1,22 +0,0 @@ -implicit-fallthrough.patch - -When compiling using gcc-7 with -Werror=implicit-fallthrough enabled, -implicit case statement fallthroughs are not permitted. - -This patch uses the gcc "comment method" to make the fallthrough -explicit. Using the comment method is backwardly compatible with -earlier versions of gcc. See The gcc documentaion for the --Wimplicit-fallthrough=3 option. - -diff --git a/src/authvar.c b/src/authvar.c -index ad659ca..0c5d752 100644 ---- a/src/authvar.c -+++ b/src/authvar.c -@@ -511,6 +511,7 @@ main(int argc, char *argv[]) - case IMPORT|SET: - case IMPORT|SIGN|SET: - fprintf(stderr, "authvar: not implemented\n"); -+ /* fallthrough */ - case IMPORT|SIGN|EXPORT: - default: - fprintf(stderr, "authvar: invalid flags: "); diff --git a/patches/pesign/pesigcheck-Fix-a-wrong-assignment.patch b/patches/pesign/pesigcheck-Fix-a-wrong-assignment.patch deleted file mode 100644 index ba4593174..000000000 --- a/patches/pesign/pesigcheck-Fix-a-wrong-assignment.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 5e18c5e057d08c7aeffb41d4c35583094fe67365 Mon Sep 17 00:00:00 2001 -From: Alex Doyle -Date: Mon, 30 Aug 2021 22:59:24 +0000 -Subject: [PATCH] pesigcheck: Fix a wrong assignment. - ---- - src/pesigcheck.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/pesigcheck.c b/src/pesigcheck.c -index 524cce3..8fa0f1a 100644 ---- a/src/pesigcheck.c -+++ b/src/pesigcheck.c -@@ -318,7 +318,7 @@ check_signature(pesigcheck_context *ctx, int *nreasons, - reason->type = SIGNATURE; - reason->sig.data = data; - reason->sig.len = datalen; -- reason->type = siBuffer; -+ reason->sig.type = siBuffer; - nreason += 1; - is_invalid = true; - } -@@ -330,7 +330,7 @@ check_signature(pesigcheck_context *ctx, int *nreasons, - reason->type = SIGNATURE; - reason->sig.data = data; - reason->sig.len = datalen; -- reason->type = siBuffer; -+ reason->sig.type = siBuffer; - nreason += 1; - has_valid_cert = true; - } --- -2.30.2 - diff --git a/patches/pesign/series b/patches/pesign/series deleted file mode 100644 index ccd457ba3..000000000 --- a/patches/pesign/series +++ /dev/null @@ -1,9 +0,0 @@ -# This series applies for building pesign version 113 -brace-initialization.patch -# https://github.com/rhboot/pesign/commit/b535d1ac5cbcdf18a97d97a92581e38080d9e521 -Fix-unsigned-char-changes-value-from-496-to-240.patch -# https://github.com/rhboot/pesign/commit/c555fd74c009242c3864576bd5f17a1f8f4fdffd -pesigcheck-Fix-a-wrong-assignment.patch - - - diff --git a/patches/popt/aarch64_support.patch b/patches/popt/aarch64_support.patch deleted file mode 100644 index bebe2516e..000000000 --- a/patches/popt/aarch64_support.patch +++ /dev/null @@ -1,733 +0,0 @@ -#------------------------------------------------------------------------------- -# -# Copyright (C) 2016 Pankaj Bansal -# -# SPDX-License-Identifier: GPL-2.0 -# -#------------------------------------------------------------------------------- - -diff --git a/config.sub b/config.sub -old mode 100755 -new mode 100644 -index 2a55a50..1028ea4 ---- a/config.sub -+++ b/config.sub -@@ -1,38 +1,31 @@ - #! /bin/sh - # Configuration validation subroutine script. --# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, --# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 --# Free Software Foundation, Inc. -+# Copyright 1992-2016 Free Software Foundation, Inc. - --timestamp='2009-11-20' -+timestamp='2016-05-10' - --# This file is (in principle) common to ALL GNU software. --# The presence of a machine in this file suggests that SOME GNU software --# can handle that machine. It does not imply ALL GNU software can. --# --# This file is free software; you can redistribute it and/or modify --# it under the terms of the GNU General Public License as published by --# the Free Software Foundation; either version 2 of the License, or -+# This file is free software; you can redistribute it and/or modify it -+# under the terms of the GNU General Public License as published by -+# the Free Software Foundation; either version 3 of the License, or - # (at your option) any later version. - # --# This program is distributed in the hope that it will be useful, --# but WITHOUT ANY WARRANTY; without even the implied warranty of --# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the --# GNU General Public License for more details. -+# This program is distributed in the hope that it will be useful, but -+# WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+# General Public License for more details. - # - # You should have received a copy of the GNU General Public License --# along with this program; if not, write to the Free Software --# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA --# 02110-1301, USA. -+# along with this program; if not, see . - # - # As a special exception to the GNU General Public License, if you - # distribute this file as part of a program that contains a - # configuration script generated by Autoconf, you may include it under --# the same distribution terms that you use for the rest of that program. -+# the same distribution terms that you use for the rest of that -+# program. This Exception is an additional permission under section 7 -+# of the GNU General Public License, version 3 ("GPLv3"). - - --# Please send patches to . Submit a context --# diff and a properly formatted GNU ChangeLog entry. -+# Please send patches to . - # - # Configuration subroutine to validate and canonicalize a configuration type. - # Supply the specified configuration type as an argument. -@@ -40,7 +33,7 @@ timestamp='2009-11-20' - # Otherwise, we print the canonical config type on stdout and succeed. - - # You can get the latest version of this script from: --# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD -+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub - - # This file is supposed to be the same for all GNU packages - # and recognize all the CPU types, system types and aliases -@@ -60,24 +53,17 @@ timestamp='2009-11-20' - me=`echo "$0" | sed -e 's,.*/,,'` - - usage="\ --Usage: $0 [OPTION] CPU-MFR-OPSYS -- $0 [OPTION] ALIAS -- -+Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS - Canonicalize a configuration name. -- - Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit -- - Report bugs and patches to ." - - version="\ - GNU config.sub ($timestamp) -- --Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, --2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -- -+Copyright 1992-2016 Free Software Foundation, Inc. - This is free software; see the source for copying conditions. There is NO - warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -@@ -123,13 +109,18 @@ esac - # Here we must recognize all the valid KERNEL-OS combinations. - maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` - case $maybe_os in -- nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ -- uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ -+ nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ -+ linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ -+ knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ - kopensolaris*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; -+ android-linux) -+ os=-linux-android -+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown -+ ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] -@@ -152,12 +143,12 @@ case $os in - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ -- -apple | -axis | -knuth | -cray | -microblaze) -+ -apple | -axis | -knuth | -cray | -microblaze*) - os= - basic_machine=$1 - ;; -- -bluegene*) -- os=-cnk -+ -bluegene*) -+ os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= -@@ -173,10 +164,10 @@ case $os in - os=-chorusos - basic_machine=$1 - ;; -- -chorusrdb) -- os=-chorusrdb -+ -chorusrdb) -+ os=-chorusrdb - basic_machine=$1 -- ;; -+ ;; - -hiux*) - os=-hiuxwe2 - ;; -@@ -221,6 +212,12 @@ case $os in - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; -+ -lynx*178) -+ os=-lynxos178 -+ ;; -+ -lynx*5) -+ os=-lynxos5 -+ ;; - -lynx*) - os=-lynxos - ;; -@@ -245,20 +242,29 @@ case $basic_machine in - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ -+ | aarch64 | aarch64_be \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ -- | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ -+ | arc | arceb \ -+ | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ -+ | avr | avr32 \ -+ | ba \ -+ | be32 | be64 \ - | bfin \ -- | c4x | clipper \ -+ | c4x | c8051 | clipper \ - | d10v | d30v | dlx | dsp16xx \ -- | fido | fr30 | frv \ -+ | e2k | epiphany \ -+ | fido | fr30 | frv | ft32 \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ -+ | hexagon \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ -+ | k1om \ -+ | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ -- | maxq | mb | microblaze | mcore | mep | metag \ -+ | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ -@@ -272,38 +278,55 @@ case $basic_machine in - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ -+ | mipsisa32r6 | mipsisa32r6el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ -+ | mipsisa64r6 | mipsisa64r6el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ -+ | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ -- | nios | nios2 \ -+ | nds32 | nds32le | nds32be \ -+ | nios | nios2 | nios2eb | nios2el \ - | ns16k | ns32k \ -- | or32 \ -+ | open8 | or1k | or1knd | or32 \ - | pdp10 | pdp11 | pj | pjl \ -- | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ -+ | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pyramid \ -- | rx \ -+ | riscv32 | riscv64 \ -+ | rl78 | rx \ - | score \ -- | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ -+ | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ -- | spu | strongarm \ -- | tahoe | thumb | tic4x | tic80 | tron \ -+ | spu \ -+ | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ - | ubicom32 \ -- | v850 | v850e \ -+ | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ -+ | visium \ - | we32k \ -- | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ -+ | x86 | xc16x | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; -- m6811 | m68hc11 | m6812 | m68hc12 | picochip) -- # Motorola 68HC11/12. -+ c54x) -+ basic_machine=tic54x-unknown -+ ;; -+ c55x) -+ basic_machine=tic55x-unknown -+ ;; -+ c6x) -+ basic_machine=tic6x-unknown -+ ;; -+ leon|leon[3-9]) -+ basic_machine=sparc-$basic_machine -+ ;; -+ m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) - basic_machine=$basic_machine-unknown - os=-none - ;; -@@ -313,6 +336,21 @@ case $basic_machine in - basic_machine=mt-unknown - ;; - -+ strongarm | thumb | xscale) -+ basic_machine=arm-unknown -+ ;; -+ xgate) -+ basic_machine=$basic_machine-unknown -+ os=-none -+ ;; -+ xscaleeb) -+ basic_machine=armeb-unknown -+ ;; -+ -+ xscaleel) -+ basic_machine=armel-unknown -+ ;; -+ - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. -@@ -327,25 +365,32 @@ case $basic_machine in - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ -+ | aarch64-* | aarch64_be-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ -- | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ -+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ -+ | ba-* \ -+ | be32-* | be64-* \ - | bfin-* | bs2000-* \ -- | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ -- | clipper-* | craynv-* | cydra-* \ -+ | c[123]* | c30-* | [cjt]90-* | c4x-* \ -+ | c8051-* | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ -- | elxsi-* \ -+ | e2k-* | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ -+ | hexagon-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ -+ | k1om-* \ -+ | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ -- | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ -+ | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ -+ | microblaze-* | microblazeel-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ -@@ -359,33 +404,43 @@ case $basic_machine in - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ -+ | mipsisa32r6-* | mipsisa32r6el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ -+ | mipsisa64r6-* | mipsisa64r6el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ -+ | mipsr5900-* | mipsr5900el-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ -- | nios-* | nios2-* \ -+ | nds32-* | nds32le-* | nds32be-* \ -+ | nios-* | nios2-* | nios2eb-* | nios2el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ -+ | open8-* \ -+ | or1k*-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ -- | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ -+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pyramid-* \ -- | romp-* | rs6000-* | rx-* \ -+ | riscv32-* | riscv64-* \ -+ | rl78-* | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ -- | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ -- | tahoe-* | thumb-* \ -- | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ -+ | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ -+ | tahoe-* \ -+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ -+ | tile*-* \ - | tron-* \ - | ubicom32-* \ -- | v850-* | v850e-* | vax-* \ -+ | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ -+ | vax-* \ -+ | visium-* \ - | we32k-* \ -- | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ -+ | x86-* | x86_64-* | xc16x-* | xps100-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) -@@ -410,7 +465,7 @@ case $basic_machine in - basic_machine=a29k-amd - os=-udi - ;; -- abacus) -+ abacus) - basic_machine=abacus-unknown - ;; - adobe68k) -@@ -460,6 +515,9 @@ case $basic_machine in - basic_machine=i386-pc - os=-aros - ;; -+ asmjs) -+ basic_machine=asmjs-unknown -+ ;; - aux) - basic_machine=m68k-apple - os=-aux -@@ -480,11 +538,20 @@ case $basic_machine in - basic_machine=powerpc-ibm - os=-cnk - ;; -+ c54x-*) -+ basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; -+ c55x-*) -+ basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; -+ c6x-*) -+ basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; -- cegcc) -+ cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; -@@ -516,7 +583,7 @@ case $basic_machine in - basic_machine=craynv-cray - os=-unicosmp - ;; -- cr16) -+ cr16 | cr16-*) - basic_machine=cr16-unknown - os=-elf - ;; -@@ -674,7 +741,6 @@ case $basic_machine in - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; --# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 -@@ -713,6 +779,9 @@ case $basic_machine in - basic_machine=m68k-isi - os=-sysv - ;; -+ leon-*|leon[3-9]-*) -+ basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` -+ ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux -@@ -732,11 +801,15 @@ case $basic_machine in - basic_machine=ns32k-utek - os=-sysv - ;; -- microblaze) -+ microblaze*) - basic_machine=microblaze-xilinx - ;; -+ mingw64) -+ basic_machine=x86_64-pc -+ os=-mingw64 -+ ;; - mingw32) -- basic_machine=i386-pc -+ basic_machine=i686-pc - os=-mingw32 - ;; - mingw32ce) -@@ -764,6 +837,10 @@ case $basic_machine in - basic_machine=powerpc-unknown - os=-morphos - ;; -+ moxiebox) -+ basic_machine=moxie-unknown -+ os=-moxiebox -+ ;; - msdos) - basic_machine=i386-pc - os=-msdos -@@ -771,10 +848,18 @@ case $basic_machine in - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; -+ msys) -+ basic_machine=i686-pc -+ os=-msys -+ ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; -+ nacl) -+ basic_machine=le32-unknown -+ os=-nacl -+ ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 -@@ -839,6 +924,12 @@ case $basic_machine in - np1) - basic_machine=np1-gould - ;; -+ neo-tandem) -+ basic_machine=neo-tandem -+ ;; -+ nse-tandem) -+ basic_machine=nse-tandem -+ ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; -@@ -921,9 +1012,10 @@ case $basic_machine in - ;; - power) basic_machine=power-ibm - ;; -- ppc) basic_machine=powerpc-unknown -+ ppc | ppcbe) basic_machine=powerpc-unknown - ;; -- ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ppc-* | ppcbe-*) -+ basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown -@@ -948,7 +1040,11 @@ case $basic_machine in - basic_machine=i586-unknown - os=-pw32 - ;; -- rdos) -+ rdos | rdos64) -+ basic_machine=x86_64-pc -+ os=-rdos -+ ;; -+ rdos32) - basic_machine=i386-pc - os=-rdos - ;; -@@ -1017,6 +1113,9 @@ case $basic_machine in - basic_machine=i860-stratus - os=-sysv4 - ;; -+ strongarm-* | thumb-*) -+ basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` -+ ;; - sun2) - basic_machine=m68000-sun - ;; -@@ -1073,20 +1172,8 @@ case $basic_machine in - basic_machine=t90-cray - os=-unicos - ;; -- tic54x | c54x*) -- basic_machine=tic54x-unknown -- os=-coff -- ;; -- tic55x | c55x*) -- basic_machine=tic55x-unknown -- os=-coff -- ;; -- tic6x | c6x*) -- basic_machine=tic6x-unknown -- os=-coff -- ;; - tile*) -- basic_machine=tile-unknown -+ basic_machine=$basic_machine-unknown - os=-linux-gnu - ;; - tx39) -@@ -1156,6 +1243,9 @@ case $basic_machine in - xps | xps100) - basic_machine=xps100-honeywell - ;; -+ xscale-* | xscalee[bl]-*) -+ basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` -+ ;; - ymp) - basic_machine=ymp-cray - os=-unicos -@@ -1253,11 +1343,11 @@ esac - if [ x"$os" != x"" ] - then - case $os in -- # First match some system type aliases -- # that might get confused with valid system types. -+ # First match some system type aliases -+ # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. -- -auroraux) -- os=-auroraux -+ -auroraux) -+ os=-auroraux - ;; - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` -@@ -1281,28 +1371,30 @@ case $os in - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ -- | -sym* | -kopensolaris* \ -+ | -sym* | -kopensolaris* | -plan9* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ -- | -aos* | -aros* \ -+ | -aos* | -aros* | -cloudabi* | -sortix* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ -- | -openbsd* | -solidbsd* \ -+ | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* \ -- | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -- | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ -- | -uxpv* | -beos* | -mpeix* | -udk* \ -+ | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ -+ | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ -+ | -linux-newlib* | -linux-musl* | -linux-uclibc* \ -+ | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ -- | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) -+ | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ -+ | -onefs* | -tirtos* | -phoenix*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) -@@ -1341,7 +1433,7 @@ case $os in - -opened*) - os=-openedition - ;; -- -os400*) -+ -os400*) - os=-os400 - ;; - -wince*) -@@ -1390,7 +1482,7 @@ case $os in - -sinix*) - os=-sysv4 - ;; -- -tpf*) -+ -tpf*) - os=-tpf - ;; - -triton*) -@@ -1426,15 +1518,16 @@ case $os in - -aros*) - os=-aros - ;; -- -kaos*) -- os=-kaos -- ;; - -zvmoe) - os=-zvmoe - ;; - -dicos*) - os=-dicos - ;; -+ -nacl*) -+ ;; -+ -ios) -+ ;; - -none) - ;; - *) -@@ -1457,10 +1550,10 @@ else - # system, and we'll never get to this point. - - case $basic_machine in -- score-*) -+ score-*) - os=-elf - ;; -- spu-*) -+ spu-*) - os=-elf - ;; - *-acorn) -@@ -1472,8 +1565,23 @@ case $basic_machine in - arm*-semi) - os=-aout - ;; -- c4x-* | tic4x-*) -- os=-coff -+ c4x-* | tic4x-*) -+ os=-coff -+ ;; -+ c8051-*) -+ os=-elf -+ ;; -+ hexagon-*) -+ os=-elf -+ ;; -+ tic54x-*) -+ os=-coff -+ ;; -+ tic55x-*) -+ os=-coff -+ ;; -+ tic6x-*) -+ os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) -@@ -1493,14 +1601,11 @@ case $basic_machine in - ;; - m68000-sun) - os=-sunos3 -- # This also exists in the configure program, but was not the -- # default. -- # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; -- mep-*) -+ mep-*) - os=-elf - ;; - mips*-cisco) -@@ -1527,7 +1632,7 @@ case $basic_machine in - *-ibm) - os=-aix - ;; -- *-knuth) -+ *-knuth) - os=-mmixware - ;; - *-wec) diff --git a/patches/popt/popt-workaround-uclibc-glob-pattern-p.patch b/patches/popt/popt-workaround-uclibc-glob-pattern-p.patch deleted file mode 100644 index 7dcf52065..000000000 --- a/patches/popt/popt-workaround-uclibc-glob-pattern-p.patch +++ /dev/null @@ -1,31 +0,0 @@ -workaround uClibc glob_pattern_p / __GLIBC__ - -Copyright (C) 2014 Curt Brune - -SPDX-License-Identifier: GPL-2.0 - -The uClibc header defines the macro __GLIBC__, which -stricly speaking is false. See the comment in the uClibc -why they do this. - -The poptconfig.c file tests for the presence of __GLIBC__ and -configures its globbing behaviour accordingly. Unfortunately in the -case of uClibc it gets it wrong. - -This patch simply inforces the correct behaviour when compiling with -ONIE's uClibc. -Summary: - -diff --git a/poptconfig.c b/poptconfig.c -index 7840d0c..f4e115a 100644 ---- a/poptconfig.c -+++ b/poptconfig.c -@@ -42,7 +42,7 @@ extern int glob_pattern_p (const char *__pattern, int __quote) - /*@=declundef =exportheader =incondefs =protoparammatch =redecl =type @*/ - #endif /* __LCLINT__ */ - --#if !defined(__GLIBC__) -+#if !defined(__GLIBC__) || defined(__UCLIBC__) - /* Return nonzero if PATTERN contains any metacharacters. - Metacharacters can be quoted with backslashes if QUOTE is nonzero. */ - static int diff --git a/patches/popt/series b/patches/popt/series index 517ec14d4..ae046e8e6 100644 --- a/patches/popt/series +++ b/patches/popt/series @@ -1,4 +1,5 @@ -# This series applies on GIT commit 2b1804e1a2b9b0d915010a7dd4b50c179fa733a4 +# This series applies on popt 1.19. +# The uClibc glob_pattern_p workaround and the aarch64 support patch are +# dropped: popt 1.19 detects glob_pattern_p via configure (handles its +# absence on uClibc) and carries aarch64 support upstream. gitignore.patch -popt-workaround-uclibc-glob-pattern-p.patch -aarch64_support.patch diff --git a/patches/shim/series b/patches/shim/series index daeeed0f1..e69de29bb 100644 --- a/patches/shim/series +++ b/patches/shim/series @@ -1,2 +0,0 @@ -# This series applies on GIT commit 6e13a921b2ad400d581d19edc1890d4269cd0ddf -update-makefile.patch diff --git a/patches/shim/update-makefile.patch b/patches/shim/update-makefile.patch deleted file mode 100644 index 8836515fd..000000000 --- a/patches/shim/update-makefile.patch +++ /dev/null @@ -1,101 +0,0 @@ -Update Makefiles - -Modify the Makefiles slightly to mesh with the ONIE build environment. - -diff --git a/Cryptlib/Makefile b/Cryptlib/Makefile -index 2aa5695..c1f32b9 100644 ---- a/Cryptlib/Makefile -+++ b/Cryptlib/Makefile -@@ -1,7 +1,11 @@ - - EFI_INCLUDES = -I$(TOPDIR)/Include -I$(EFI_INCLUDE) -I$(EFI_INCLUDE)/$(ARCH) -I$(EFI_INCLUDE)/protocol - --CFLAGS = -ggdb -O0 -I$(TOPDIR) -iquote $(TOPDIR) -fno-stack-protector -fno-strict-aliasing -fpic -fshort-wchar \ -+# Seed compiler and linker flags ONIE build environment flags -+CFLAGS = $(ONIE_CFLAGS) -+LDFLAGS = $(ONIE_LDFLAGS) -+ -+CFLAGS += -ggdb -O0 -I$(TOPDIR) -iquote $(TOPDIR) -fno-stack-protector -fno-strict-aliasing -fpic -fshort-wchar \ - -Wall $(EFI_INCLUDES) -std=gnu89 \ - -ffreestanding -I$(shell $(CC) -print-file-name=include) - -@@ -19,7 +23,7 @@ endif - ifeq ($(ARCH),aarch64) - CFLAGS += -DMDE_CPU_AARCH64 - endif --LDFLAGS = -nostdlib -znocombreloc -+LDFLAGS += -nostdlib -znocombreloc - - TARGET = libcryptlib.a - OBJS = Hash/CryptMd4Null.o \ -diff --git a/Cryptlib/OpenSSL/Makefile b/Cryptlib/OpenSSL/Makefile -index 916feac..158ba5b 100644 ---- a/Cryptlib/OpenSSL/Makefile -+++ b/Cryptlib/OpenSSL/Makefile -@@ -3,7 +3,11 @@ EFI_INCLUDES = -I$(TOPDIR)/../Include \ - -I$(EFI_INCLUDE) -I$(EFI_INCLUDE)/$(ARCH) -I$(EFI_INCLUDE)/protocol \ - -I$(TOPDIR)/crypto/asn1 -I$(TOPDIR)/crypto/evp -I$(TOPDIR)/crypto/modes -I$(TOPDIR)/crypto/include - --CFLAGS = -ggdb -O0 -I$(TOPDIR) -I$(TOPDIR)/.. -I$(TOPDIR)/../Include/ -I$(TOPDIR)/crypto \ -+# Seed compiler and linker flags ONIE build environment flags -+CFLAGS = $(ONIE_CFLAGS) -+LDFLAGS = $(ONIE_LDFLAGS) -+ -+CFLAGS += -ggdb -O0 -I$(TOPDIR) -I$(TOPDIR)/.. -I$(TOPDIR)/../Include/ -I$(TOPDIR)/crypto \ - -fno-stack-protector -fno-strict-aliasing -fpic -fshort-wchar -nostdinc \ - -ffreestanding -std=gnu89 -I$(shell $(CC) -print-file-name=include) \ - -Wall $(EFI_INCLUDES) -DL_ENDIAN -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DOPENSSL_SMALL_FOOTPRINT -DPEDANTIC -@@ -25,7 +29,7 @@ endif - ifeq ($(ARCH),arm) - CFLAGS += -O2 -DMDE_CPU_ARM - endif --LDFLAGS = -nostdlib -znocombreloc -+LDFLAGS += -nostdlib -znocombreloc - - TARGET = libopenssl.a - OBJS = crypto/cryptlib.o \ -diff --git a/Make.defaults b/Make.defaults -index e11ab5a..768a3d1 100644 ---- a/Make.defaults -+++ b/Make.defaults -@@ -39,7 +39,11 @@ EFI_LIBS = -lefi -lgnuefi --start-group Cryptlib/libcryptlib.a Cryptlib/OpenSSL/ - EFI_CRT_OBJS = $(EFI_PATH)/crt0-efi-$(ARCH).o - EFI_LDS = $(TOPDIR)/elf_$(ARCH)_efi.lds - --CFLAGS = -ggdb -O0 -fno-stack-protector -fno-strict-aliasing -fpic \ -+# Seed compiler and linker flags ONIE build environment flags -+CFLAGS = $(ONIE_CFLAGS) -+LDFLAGS = $(ONIE_LDFLAGS) -+ -+CFLAGS += -ggdb -O0 -fno-stack-protector -fno-strict-aliasing -fpic \ - -fshort-wchar -Wall -Wsign-compare -Werror -fno-builtin \ - -Werror=sign-compare -ffreestanding -std=gnu89 \ - -I$(shell $(CC) -print-file-name=include) \ -@@ -126,4 +130,4 @@ ifneq ($(origin VENDOR_DBX_FILE), undefined) - CFLAGS += -DVENDOR_DBX_FILE=\"$(VENDOR_DBX_FILE)\" - endif - --LDFLAGS = --hash-style=sysv -nostdlib -znocombreloc -T $(EFI_LDS) -shared -Bsymbolic -L$(EFI_PATH) -L$(LIBDIR) -LCryptlib -LCryptlib/OpenSSL $(EFI_CRT_OBJS) --build-id=sha1 $(ARCH_LDFLAGS) --no-undefined -+LDFLAGS += --hash-style=sysv -nostdlib -znocombreloc -T $(EFI_LDS) -shared -Bsymbolic -L$(EFI_PATH) -L$(LIBDIR) -LCryptlib -LCryptlib/OpenSSL $(EFI_CRT_OBJS) --build-id=sha1 $(ARCH_LDFLAGS) --no-undefined -diff --git a/Makefile b/Makefile -index 115e7f0..291d7d0 100644 ---- a/Makefile -+++ b/Makefile -@@ -129,7 +129,7 @@ ifeq ($(origin EFIDIR),undefined) - endif - - install-deps : $(TARGETS) --install-deps : $(SHIMNAME).debug $(MMNAME).debug $(FBNAME).debug buildid -+install-deps : $(SHIMNAME).debug $(MMNAME).debug $(FBNAME).debug - install-deps : $(BOOTCSVNAME) - - install-debugsource : install-deps -@@ -140,7 +140,7 @@ install-debugsource : install-deps - $(INSTALL) -m 0644 $${file} $(DESTDIR)/$(DEBUGSOURCE)/$(PKGNAME)-$(VERSION)$(DASHRELEASE)/$${outfile} ; \ - done - --install-debuginfo : install-deps -+install-debuginfo : install-deps buildid - $(INSTALL) -d -m 0755 $(DESTDIR)/ - $(INSTALL) -d -m 0755 $(DESTDIR)/$(DEBUGINFO)$(TARGETDIR)/ - @./buildid $(wildcard *.efi.debug) | while read file buildid ; do \ diff --git a/rootconf/default/etc/init.d/networking.sh b/rootconf/default/etc/init.d/networking.sh index 7d66cd778..d20dd0f42 100755 --- a/rootconf/default/etc/init.d/networking.sh +++ b/rootconf/default/etc/init.d/networking.sh @@ -54,7 +54,12 @@ config_ethmgmt_dhcp4() udhcp_args="$udhcp_args -t 15 -T 3" fi udhcp_request_opts= - for o in subnet broadcast router domain hostname ntpsrv dns logsrv search ; do + # Request by name for options in busybox's built-in udhcpc table, but use + # the numeric code for logsrv (option 7): busybox trims it from the stock + # table for size, and "-O logsrv" would abort udhcpc with "unknown option" + # -- a numeric "-O 7" is accepted with no table entry. When received it + # surfaces as $opt7, which udhcp4_net aliases back to $logsrv. + for o in subnet broadcast router domain hostname ntpsrv dns 7 search ; do udhcp_request_opts="$udhcp_request_opts -O $o" done diff --git a/rootconf/default/lib/onie/udhcp4_net b/rootconf/default/lib/onie/udhcp4_net index 529b594b7..4dabbe762 100755 --- a/rootconf/default/lib/onie/udhcp4_net +++ b/rootconf/default/lib/onie/udhcp4_net @@ -18,6 +18,21 @@ LOGSRV_CONF="${ONIE_RUN_DIR}/dhcp.logsrv" case $1 in bound|renew) + # busybox trims logsrv (option 7) from udhcpc's built-in table, so a + # received option 7 arrives as $opt7 in raw hex rather than $logsrv as a + # decoded IPv4 address; decode + alias it (no-op on a busybox that still + # knows the name, where $logsrv is already set and $opt7 is absent). + if [ -z "$logsrv" ] && [ -n "$opt7" ] ; then + _h="$opt7" + while [ ${#_h} -ge 8 ] ; do + _a=$((0x${_h%${_h#??}})); _h=${_h#??} + _b=$((0x${_h%${_h#??}})); _h=${_h#??} + _c=$((0x${_h%${_h#??}})); _h=${_h#??} + _d=$((0x${_h%${_h#??}})); _h=${_h#??} + logsrv="$logsrv $_a.$_b.$_c.$_d" + done + logsrv="${logsrv# }" + fi [ -n "$broadcast" ] && BROADCAST="broadcast $broadcast" [ -n "$subnet" ] && NETMASK="netmask $subnet" diff --git a/rootconf/default/lib/onie/udhcp4_sd b/rootconf/default/lib/onie/udhcp4_sd index 6d0ed4487..419ecd7d0 100755 --- a/rootconf/default/lib/onie/udhcp4_sd +++ b/rootconf/default/lib/onie/udhcp4_sd @@ -15,10 +15,58 @@ PROG="DHCP" case $1 in bound|renew) - # Print responses usable by onie, prefixed with "onie_disco" - # Translate '=' into '@', e.g. name=val => name@@val - # Separate name@val pairs with '##' - onie_parms=$(printenv | sed -e '/.*=$/d' -e '/^[A-Z_]/d' -e '/^onie.*/d' -e 's/=/@@/' -e 's/$/#/' -e 's/^/onie_disco_/' | tr '\n' '#') + # busybox's udhcpc exports a RECEIVED option as a friendly typed + # "=" env var only if that option is in its built-in table; + # options it doesn't know are exported generically as "opt=" + # -- RAW HEX, untyped. busybox trims rarely-used options from that table + # for size (it dropped vivso/125 after ~1.25 and never carried + # tftpsiaddr/150), so several options ONIE's discovery consumes by name + # arrive as opt in hex. Rather than carry a busybox source patch + # to re-add them (which upstream is unlikely to take back), decode those + # here -- the one place that turns the udhcpc env into onie_disco_* -- + # to the typed value and name ONIE expects: + # 72 -> wwwsrv (WWW_SERVER, IPv4 list) + # 114 -> url (DEFAULT_URL, string) + # 125 -> vivso (VIVSO, binary -- left as hex; import_vivso decodes) + # 150 -> tftpsiaddr (TFTP_SERVER_IP, IPv4) + # Each is a no-op on a busybox that already knows the name (the opt + # var is absent), so this stays correct across busybox versions. + + # hex string -> ASCII, byte-by-byte via octal escapes so a '%' or '\' + # in (e.g.) a percent-encoded URL is never interpreted by printf. + hex2str() { + local h="$1" out= + while [ ${#h} -ge 2 ]; do + local b=${h%${h#??}}; h=${h#??} + out="$out$(printf "\\$(printf '%03o' "0x$b")")" + done + printf '%s' "$out" + } + # hex of one or more 4-byte IPv4 addresses -> "a.b.c.d ..." + hex2ip() { + local h="$1" out= + while [ ${#h} -ge 8 ]; do + local a=$((0x${h%${h#??}})); h=${h#??} + local b=$((0x${h%${h#??}})); h=${h#??} + local c=$((0x${h%${h#??}})); h=${h#??} + local d=$((0x${h%${h#??}})); h=${h#??} + out="$out $a.$b.$c.$d" + done + printf '%s' "${out# }" + } + [ -n "$opt114" ] && export url="$(hex2str "$opt114")" + [ -n "$opt72" ] && export wwwsrv="$(hex2ip "$opt72")" + [ -n "$opt150" ] && export tftpsiaddr="$(hex2ip "$opt150")" + [ -n "$opt125" ] && export vivso="$opt125" + + # Print responses usable by onie, prefixed with "onie_disco". + # Translate '=' into '@', e.g. name=val => name@@val; separate name@val + # pairs with '##'. Drop the raw opt vars (superseded by the + # decoded names above) so they don't also leak through. + onie_parms=$(printenv | sed \ + -e '/^opt[0-9]/d' \ + -e '/.*=$/d' -e '/^[A-Z_]/d' -e '/^onie.*/d' \ + -e 's/=/@@/' -e 's/$/#/' -e 's/^/onie_disco_/' | tr '\n' '#') echo "ONIE_PARMS:$onie_parms" ;; diff --git a/upstream/0.4.0.tar.gz.sha1 b/upstream/0.4.0.tar.gz.sha1 deleted file mode 100644 index 6fec2a699..000000000 --- a/upstream/0.4.0.tar.gz.sha1 +++ /dev/null @@ -1 +0,0 @@ -42d6c1551535386cba63265a6ed7172d11c88b97 0.4.0.tar.gz diff --git a/upstream/0.7.2.tar.gz.sha1 b/upstream/0.7.2.tar.gz.sha1 new file mode 100644 index 000000000..af44561d2 --- /dev/null +++ b/upstream/0.7.2.tar.gz.sha1 @@ -0,0 +1 @@ +4c7863e8d39990a1d2f0aa6aac607a040014ea23 0.7.2.tar.gz diff --git a/upstream/18.tar.gz.sha1 b/upstream/18.tar.gz.sha1 new file mode 100644 index 000000000..2857621a1 --- /dev/null +++ b/upstream/18.tar.gz.sha1 @@ -0,0 +1 @@ +60b0f6201eb1a70bc6069ff1d77635331a95c94c 18.tar.gz diff --git a/upstream/39.tar.gz.sha1 b/upstream/39.tar.gz.sha1 new file mode 100644 index 000000000..0ba59fac2 --- /dev/null +++ b/upstream/39.tar.gz.sha1 @@ -0,0 +1 @@ +107fbb2a8bb936bf791d5c9e8cc229c05d08f3dd 39.tar.gz diff --git a/upstream/IPMITOOL_1_8_19.tar.gz.sha1 b/upstream/IPMITOOL_1_8_19.tar.gz.sha1 new file mode 100644 index 000000000..6b0bf3ee9 --- /dev/null +++ b/upstream/IPMITOOL_1_8_19.tar.gz.sha1 @@ -0,0 +1 @@ +92620c40a0f2d5fbe72e774385a55a53aa4ec448 IPMITOOL_1_8_19.tar.gz diff --git a/upstream/LVM2.2.03.41.tgz.sha1 b/upstream/LVM2.2.03.41.tgz.sha1 new file mode 100644 index 000000000..82aa8ab91 --- /dev/null +++ b/upstream/LVM2.2.03.41.tgz.sha1 @@ -0,0 +1 @@ +8a16e5e133da63f1aae3d6416aee568bc203df0f LVM2.2.03.41.tgz diff --git a/upstream/acpica-unix-20260408.tar.gz.sha1 b/upstream/acpica-unix-20260408.tar.gz.sha1 new file mode 100644 index 000000000..bfe6e39dc --- /dev/null +++ b/upstream/acpica-unix-20260408.tar.gz.sha1 @@ -0,0 +1 @@ +2894397c3b9914b08d5d93d4d23d608269cea794 acpica-unix-20260408.tar.gz diff --git a/upstream/btrfs-progs-v7.0.tar.xz.sha1 b/upstream/btrfs-progs-v7.0.tar.xz.sha1 new file mode 100644 index 000000000..09885b8c9 --- /dev/null +++ b/upstream/btrfs-progs-v7.0.tar.xz.sha1 @@ -0,0 +1 @@ +ab3a17109d6c770551daa9e2494bed7d3ba115a8 btrfs-progs-v7.0.tar.xz diff --git a/upstream/busybox-1.38.0.tar.bz2.sha1 b/upstream/busybox-1.38.0.tar.bz2.sha1 new file mode 100644 index 000000000..468153941 --- /dev/null +++ b/upstream/busybox-1.38.0.tar.bz2.sha1 @@ -0,0 +1 @@ +6ef8d237a825ed0a61fee4f68d42b19d4d3aca5d busybox-1.38.0.tar.bz2 diff --git a/upstream/crosstool-ng-1.24.0.tar.xz.sha1 b/upstream/crosstool-ng-1.24.0.tar.xz.sha1 deleted file mode 100644 index 0b0f6f29a..000000000 --- a/upstream/crosstool-ng-1.24.0.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -ccc4da8e0714ceef1fd28dc1f493b9f52d4da19f crosstool-ng-1.24.0.tar.xz diff --git a/upstream/crosstool-ng-1.28.0.tar.xz.sha1 b/upstream/crosstool-ng-1.28.0.tar.xz.sha1 new file mode 100644 index 000000000..fe8b0f62d --- /dev/null +++ b/upstream/crosstool-ng-1.28.0.tar.xz.sha1 @@ -0,0 +1 @@ +cdeeea026046bd4408e1e6248ae96b7383665110 crosstool-ng-1.28.0.tar.xz diff --git a/upstream/dmidecode-3.7.tar.xz.sha1 b/upstream/dmidecode-3.7.tar.xz.sha1 new file mode 100644 index 000000000..1705ff331 --- /dev/null +++ b/upstream/dmidecode-3.7.tar.xz.sha1 @@ -0,0 +1 @@ +6fb5157e0e5deef087187d0494167fe408f37130 dmidecode-3.7.tar.xz diff --git a/upstream/dosfstools-3.0.26.tar.xz.sha1 b/upstream/dosfstools-3.0.26.tar.xz.sha1 deleted file mode 100644 index 8d1fb2e60..000000000 --- a/upstream/dosfstools-3.0.26.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -1385f707b7ff93cb521e8158e60276c531c1b0a6 dosfstools-3.0.26.tar.xz diff --git a/upstream/dosfstools-4.2.tar.gz.sha1 b/upstream/dosfstools-4.2.tar.gz.sha1 new file mode 100644 index 000000000..993e0b523 --- /dev/null +++ b/upstream/dosfstools-4.2.tar.gz.sha1 @@ -0,0 +1 @@ +14efc68c64987a9067b6a919ad2870007247686b dosfstools-4.2.tar.gz diff --git a/upstream/dropbear-2026.91.tar.bz2.sha1 b/upstream/dropbear-2026.91.tar.bz2.sha1 new file mode 100644 index 000000000..2b8ae2b11 --- /dev/null +++ b/upstream/dropbear-2026.91.tar.bz2.sha1 @@ -0,0 +1 @@ +10d90d69f7c6a45e5fd0babd96be7950b2467364 dropbear-2026.91.tar.bz2 diff --git a/upstream/efibootmgr-16.tar.bz2.sha1 b/upstream/efibootmgr-16.tar.bz2.sha1 deleted file mode 100644 index b3c20d127..000000000 --- a/upstream/efibootmgr-16.tar.bz2.sha1 +++ /dev/null @@ -1 +0,0 @@ -3b023978c27af2514606de2a6be11801d881b5a3 efibootmgr-16.tar.bz2 diff --git a/upstream/efivar-37.tar.bz2.sha1 b/upstream/efivar-37.tar.bz2.sha1 deleted file mode 100644 index 9e347ee78..000000000 --- a/upstream/efivar-37.tar.bz2.sha1 +++ /dev/null @@ -1 +0,0 @@ -1ef24e0a06e1a42d7a93ba7a76b2970659c7c0c0 efivar-37.tar.bz2 diff --git a/upstream/ethtool-6.15.tar.xz.sha1 b/upstream/ethtool-6.15.tar.xz.sha1 new file mode 100644 index 000000000..004222283 --- /dev/null +++ b/upstream/ethtool-6.15.tar.xz.sha1 @@ -0,0 +1 @@ +aad9291bea6d29e288ac8d0ce0cb5c0b25e4d305 ethtool-6.15.tar.xz diff --git a/upstream/gcc-4.7.3.tar.bz2.sha1 b/upstream/gcc-4.7.3.tar.bz2.sha1 deleted file mode 100644 index 2d2ffd43a..000000000 --- a/upstream/gcc-4.7.3.tar.bz2.sha1 +++ /dev/null @@ -1 +0,0 @@ -69e02737bd6e1a7c6047d801600d39c32b9427ca gcc-4.7.3.tar.bz2 diff --git a/upstream/gcc-4.9.2.tar.bz2.sha1 b/upstream/gcc-4.9.2.tar.bz2.sha1 deleted file mode 100644 index 8b1c5797a..000000000 --- a/upstream/gcc-4.9.2.tar.bz2.sha1 +++ /dev/null @@ -1 +0,0 @@ -79dbcb09f44232822460d80b033c962c0237c6d8 gcc-4.9.2.tar.bz2 diff --git a/upstream/gcc-4.9.4.tar.bz2.sha1 b/upstream/gcc-4.9.4.tar.bz2.sha1 deleted file mode 100644 index 78ae358c7..000000000 --- a/upstream/gcc-4.9.4.tar.bz2.sha1 +++ /dev/null @@ -1 +0,0 @@ -5bb0b783a57a62b11f1f9bd2aa37145da221d3d0 gcc-4.9.4.tar.bz2 diff --git a/upstream/gcc-6.3.0.tar.bz2.sha1 b/upstream/gcc-6.3.0.tar.bz2.sha1 deleted file mode 100644 index e68d821a6..000000000 --- a/upstream/gcc-6.3.0.tar.bz2.sha1 +++ /dev/null @@ -1 +0,0 @@ -928ab552666ee08eed645ff20ceb49d139205dea gcc-6.3.0.tar.bz2 diff --git a/upstream/gcc-8.3.0.tar.xz.sha1 b/upstream/gcc-8.3.0.tar.xz.sha1 deleted file mode 100644 index 059c1725f..000000000 --- a/upstream/gcc-8.3.0.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -c27f4499dd263fe4fb01bcc5565917f3698583b2 ./gcc-8.3.0.tar.xz diff --git a/upstream/glibc-2.24.tar.xz.sha1 b/upstream/glibc-2.24.tar.xz.sha1 deleted file mode 100644 index 04dbdfe38..000000000 --- a/upstream/glibc-2.24.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -e5d9725d94d59475d9a6869a4447a70c1bf3ef78 glibc-2.24.tar.xz diff --git a/upstream/glibc-2.25.tar.xz.sha1 b/upstream/glibc-2.25.tar.xz.sha1 deleted file mode 100644 index 83fc7e78f..000000000 --- a/upstream/glibc-2.25.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -5fff5a94ef4470bf48fe1b79093185f19f5c827a glibc-2.25.tar.xz diff --git a/upstream/glibc-2.29.tar.xz.sha1 b/upstream/glibc-2.29.tar.xz.sha1 deleted file mode 100644 index a1f32acd7..000000000 --- a/upstream/glibc-2.29.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -c8376086203fa5e39dc869235ab8a400ed747c44 glibc-2.29.tar.xz diff --git a/upstream/gnu-efi-3.0.12.tar.bz2.sha1 b/upstream/gnu-efi-3.0.12.tar.bz2.sha1 deleted file mode 100644 index e9c346773..000000000 --- a/upstream/gnu-efi-3.0.12.tar.bz2.sha1 +++ /dev/null @@ -1 +0,0 @@ -46a513b9ba07a8841e5f6b4865a99d1fed081ba1 gnu-efi-3.0.12.tar.bz2 diff --git a/upstream/gptfdisk-1.0.10.tar.gz.sha1 b/upstream/gptfdisk-1.0.10.tar.gz.sha1 new file mode 100644 index 000000000..55ac3a31a --- /dev/null +++ b/upstream/gptfdisk-1.0.10.tar.gz.sha1 @@ -0,0 +1 @@ +70c0bfe4290c2893fc957ef7f6156c5e74e469fc gptfdisk-1.0.10.tar.gz diff --git a/upstream/grub-2.04.tar.xz.sha1 b/upstream/grub-2.04.tar.xz.sha1 deleted file mode 100644 index b71d781e7..000000000 --- a/upstream/grub-2.04.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -3ed21de7be5970d7638b9f526bca3292af78e0fc grub-2.04.tar.xz diff --git a/upstream/grub-2.14.tar.xz.sha1 b/upstream/grub-2.14.tar.xz.sha1 new file mode 100644 index 000000000..47da77a8d --- /dev/null +++ b/upstream/grub-2.14.tar.xz.sha1 @@ -0,0 +1 @@ +b8370fa991f63027764f41d58b90aa8a0871f1e9 grub-2.14.tar.xz diff --git a/upstream/i2c-tools-3.1.1.tar.bz2.sha1 b/upstream/i2c-tools-3.1.1.tar.bz2.sha1 deleted file mode 100644 index c8adf71ca..000000000 --- a/upstream/i2c-tools-3.1.1.tar.bz2.sha1 +++ /dev/null @@ -1 +0,0 @@ -05e4e3b34ebc921812e14527936c0fae65729204 i2c-tools-3.1.1.tar.bz2 diff --git a/upstream/i2c-tools-4.4.tar.gz.sha1 b/upstream/i2c-tools-4.4.tar.gz.sha1 new file mode 100644 index 000000000..062bcb186 --- /dev/null +++ b/upstream/i2c-tools-4.4.tar.gz.sha1 @@ -0,0 +1 @@ +91307d1b376d18277d24b4eebfda9d5bfe90f316 i2c-tools-4.4.tar.gz diff --git a/upstream/kexec-tools-2.0.32.tar.xz.sha1 b/upstream/kexec-tools-2.0.32.tar.xz.sha1 new file mode 100644 index 000000000..fbcad16ac --- /dev/null +++ b/upstream/kexec-tools-2.0.32.tar.xz.sha1 @@ -0,0 +1 @@ +8ac0f768bb3280c4f42901b12085b4945f56a0f1 kexec-tools-2.0.32.tar.xz diff --git a/upstream/keyutils-1.6.3.tar.gz.sha1 b/upstream/keyutils-1.6.3.tar.gz.sha1 new file mode 100644 index 000000000..3769b9fe9 --- /dev/null +++ b/upstream/keyutils-1.6.3.tar.gz.sha1 @@ -0,0 +1 @@ +7e5112d68eef5677e474d062282a0e1d1f19904c keyutils-1.6.3.tar.gz diff --git a/upstream/libaio-0.3.113.tar.gz.sha1 b/upstream/libaio-0.3.113.tar.gz.sha1 new file mode 100644 index 000000000..8d3ded1b5 --- /dev/null +++ b/upstream/libaio-0.3.113.tar.gz.sha1 @@ -0,0 +1 @@ +86727941e0d3084ce264b8a6878961812bc212b8 libaio-0.3.113.tar.gz diff --git a/upstream/libmnl-1.0.5.tar.bz2.sha1 b/upstream/libmnl-1.0.5.tar.bz2.sha1 new file mode 100644 index 000000000..b1afbdd19 --- /dev/null +++ b/upstream/libmnl-1.0.5.tar.bz2.sha1 @@ -0,0 +1 @@ +63c6456b77f7978a7b37e62c1b38346b2ef2d91c libmnl-1.0.5.tar.bz2 diff --git a/upstream/libpcap-1.10.6.tar.gz.sha1 b/upstream/libpcap-1.10.6.tar.gz.sha1 new file mode 100644 index 000000000..b3dcfeed0 --- /dev/null +++ b/upstream/libpcap-1.10.6.tar.gz.sha1 @@ -0,0 +1 @@ +38a1661487e01bf59167a6f2cfab0f23fa3139ea libpcap-1.10.6.tar.gz diff --git a/upstream/lzo-2.10.tar.gz.sha1 b/upstream/lzo-2.10.tar.gz.sha1 new file mode 100644 index 000000000..6d70c2829 --- /dev/null +++ b/upstream/lzo-2.10.tar.gz.sha1 @@ -0,0 +1 @@ +4924676a9bae5db58ef129dc1cebce3baa3c4b5d lzo-2.10.tar.gz diff --git a/upstream/mtd-utils-2.3.1.tar.bz2.sha1 b/upstream/mtd-utils-2.3.1.tar.bz2.sha1 new file mode 100644 index 000000000..7fd88b929 --- /dev/null +++ b/upstream/mtd-utils-2.3.1.tar.bz2.sha1 @@ -0,0 +1 @@ +09973ba80cc9a78abc2012681de238c757bbf08f mtd-utils-2.3.1.tar.bz2 diff --git a/upstream/mtd-utils-e4c8885.tar.gz.sha1 b/upstream/mtd-utils-e4c8885.tar.gz.sha1 deleted file mode 100644 index 0d8080124..000000000 --- a/upstream/mtd-utils-e4c8885.tar.gz.sha1 +++ /dev/null @@ -1 +0,0 @@ -253eaa9be52be6cb62cfcac8034936dd8b854d85 mtd-utils-e4c8885.tar.gz diff --git a/upstream/openssl-1.0.2l.tar.gz.sha1 b/upstream/openssl-1.0.2l.tar.gz.sha1 deleted file mode 100644 index 4f6da73e6..000000000 --- a/upstream/openssl-1.0.2l.tar.gz.sha1 +++ /dev/null @@ -1 +0,0 @@ -b58d5d0e9cea20e571d903aafa853e2ccd914138 openssl-1.0.2l.tar.gz diff --git a/upstream/openssl-1.1.1g.tar.gz.sha1 b/upstream/openssl-1.1.1g.tar.gz.sha1 deleted file mode 100644 index 42101e3ed..000000000 --- a/upstream/openssl-1.1.1g.tar.gz.sha1 +++ /dev/null @@ -1 +0,0 @@ -b213a293f2127ec3e323fb3cfc0c9807664fd997 openssl-1.1.1g.tar.gz diff --git a/upstream/openssl-3.4.0.tar.gz.sha1 b/upstream/openssl-3.4.0.tar.gz.sha1 deleted file mode 100644 index f1559a293..000000000 --- a/upstream/openssl-3.4.0.tar.gz.sha1 +++ /dev/null @@ -1 +0,0 @@ -5c2f33c3f3601676f225109231142cdc30d44127 openssl-3.4.0.tar.gz diff --git a/upstream/openssl-3.5.7.tar.gz.sha1 b/upstream/openssl-3.5.7.tar.gz.sha1 new file mode 100644 index 000000000..bc4c14bb0 --- /dev/null +++ b/upstream/openssl-3.5.7.tar.gz.sha1 @@ -0,0 +1 @@ +53d331880fbde8e6fe25870d5325a61201f6264d openssl-3.5.7.tar.gz diff --git a/upstream/pciutils-3.15.0.tar.xz.sha1 b/upstream/pciutils-3.15.0.tar.xz.sha1 new file mode 100644 index 000000000..a3d84aad4 --- /dev/null +++ b/upstream/pciutils-3.15.0.tar.xz.sha1 @@ -0,0 +1 @@ +0cd524a8217ec55c1bd12f35c75b7614e6e070b9 pciutils-3.15.0.tar.xz diff --git a/upstream/pciutils-3.2.1.tar.xz.sha1 b/upstream/pciutils-3.2.1.tar.xz.sha1 deleted file mode 100644 index 112df915b..000000000 --- a/upstream/pciutils-3.2.1.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -2009c441bfb78811c2991bde03b88c043654c195 pciutils-3.2.1.tar.xz diff --git a/upstream/pesign-113.tar.bz2.sha1 b/upstream/pesign-113.tar.bz2.sha1 deleted file mode 100644 index 1a605a724..000000000 --- a/upstream/pesign-113.tar.bz2.sha1 +++ /dev/null @@ -1 +0,0 @@ -1fabe291298395b6dd3129e250d8b67345745834 pesign-113.tar.bz2 diff --git a/upstream/popt-1.19.tar.gz.sha1 b/upstream/popt-1.19.tar.gz.sha1 new file mode 100644 index 000000000..518ab7442 --- /dev/null +++ b/upstream/popt-1.19.tar.gz.sha1 @@ -0,0 +1 @@ +75654eebd67791f6c58059d0ac552230d81b09d9 popt-1.19.tar.gz diff --git a/upstream/shim-15.tar.bz2.sha1 b/upstream/shim-15.tar.bz2.sha1 deleted file mode 100644 index ad66536cf..000000000 --- a/upstream/shim-15.tar.bz2.sha1 +++ /dev/null @@ -1 +0,0 @@ -2dc6308584187bf3ee88bf9b119938c72c5a5088 shim-15.tar.bz2 diff --git a/upstream/shim-16.1.tar.bz2.sha1 b/upstream/shim-16.1.tar.bz2.sha1 new file mode 100644 index 000000000..b21640659 --- /dev/null +++ b/upstream/shim-16.1.tar.bz2.sha1 @@ -0,0 +1 @@ +53a4a52f2cddd7ae880e405b4e3336a5968c5683 shim-16.1.tar.bz2 diff --git a/upstream/tcpdump-4.99.6.tar.gz.sha1 b/upstream/tcpdump-4.99.6.tar.gz.sha1 new file mode 100644 index 000000000..8e46600bb --- /dev/null +++ b/upstream/tcpdump-4.99.6.tar.gz.sha1 @@ -0,0 +1 @@ +e090c039e687d885338d18b69a32fd293cf6e907 tcpdump-4.99.6.tar.gz diff --git a/upstream/uClibc-ng-1.0.22.tar.xz.sha1 b/upstream/uClibc-ng-1.0.22.tar.xz.sha1 deleted file mode 100644 index 82fa0042d..000000000 --- a/upstream/uClibc-ng-1.0.22.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -c46d35fddf02e92fad94c545957289ea8c46a146 uClibc-ng-1.0.22.tar.xz diff --git a/upstream/uClibc-ng-1.0.35.tar.xz.sha1 b/upstream/uClibc-ng-1.0.35.tar.xz.sha1 deleted file mode 100644 index 87a2f243b..000000000 --- a/upstream/uClibc-ng-1.0.35.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -07601337238fe06b3ac83ca6d8447326df76fe13 uClibc-ng-1.0.35.tar.xz diff --git a/upstream/uClibc-ng-1.0.38.tar.xz.sha1 b/upstream/uClibc-ng-1.0.38.tar.xz.sha1 deleted file mode 100644 index e5d8c8e3e..000000000 --- a/upstream/uClibc-ng-1.0.38.tar.xz.sha1 +++ /dev/null @@ -1 +0,0 @@ -67480362767568a1d887210d39b8da6661bce28a uClibc-ng-1.0.38.tar.xz diff --git a/upstream/uClibc-ng-1.0.54.tar.xz.sha1 b/upstream/uClibc-ng-1.0.54.tar.xz.sha1 new file mode 100644 index 000000000..02c0cc470 --- /dev/null +++ b/upstream/uClibc-ng-1.0.54.tar.xz.sha1 @@ -0,0 +1 @@ +0ef81caf04c711b9290615ea21d5c81aa2599c3d uClibc-ng-1.0.54.tar.xz diff --git a/upstream/zlib-1.3.2.tar.xz.sha1 b/upstream/zlib-1.3.2.tar.xz.sha1 new file mode 100644 index 000000000..37785a283 --- /dev/null +++ b/upstream/zlib-1.3.2.tar.xz.sha1 @@ -0,0 +1 @@ +6c9a55ad71ce9a7b252d4faf648ff66b56401e50 zlib-1.3.2.tar.xz From d95005525a24114cb4f6246fc2d09b7faf37f41b Mon Sep 17 00:00:00 2001 From: Brad House Date: Thu, 9 Jul 2026 19:19:42 +0000 Subject: [PATCH 2/5] kernel: move to the 6.18 LTS kernel Bump the image kernel from 5.4.86 to the 6.18.35 LTS line, now that the GCC 14 toolchain is in place (previous commit). - kernel-download.make: LINUX_VERSION 5.4.86 -> 6.18.35. - Non-versioned base config: LINUX_CONFIG falls back to a shared conf/kernel/linux..config (per-version configs under conf/kernel// are still preferred when a platform ships one), so a kernel bump needs no new committed config. - The .config recipe now runs "make olddefconfig" (via the cross toolchain, hence the order-only XTOOLS_BUILD_STAMP dep) to reconcile the base config to the kernel actually being built. - Module signing: 6.18 dropped MODULE_SIG_KEY_SRCPREFIX and resolves CONFIG_MODULE_SIG_KEY relative to the build tree, so after olddefconfig rewrite a configured signing key to the absolute path of the generated key (replacing the MODULE_SIG_KEY_SRCPREFIX passed on the build line). - conf/kernel/linux.x86_64.config, conf/kernel/linux.armv8a.config, patches/kernel/6.18.35/series, upstream/linux-6.18.35.tar.xz.sha1. Signed-off-by: Brad House --- build-config/conf/kernel/linux.armv8a.config | 7021 ++++++++++++++++++ build-config/conf/kernel/linux.x86_64.config | 3732 ++++++++++ build-config/make/kernel-download.make | 4 +- build-config/make/kernel.make | 23 +- patches/kernel/6.18.35/series | 0 upstream/linux-6.18.35.tar.xz.sha1 | 1 + 6 files changed, 10776 insertions(+), 5 deletions(-) create mode 100644 build-config/conf/kernel/linux.armv8a.config create mode 100644 build-config/conf/kernel/linux.x86_64.config create mode 100644 patches/kernel/6.18.35/series create mode 100644 upstream/linux-6.18.35.tar.xz.sha1 diff --git a/build-config/conf/kernel/linux.armv8a.config b/build-config/conf/kernel/linux.armv8a.config new file mode 100644 index 000000000..395ebda81 --- /dev/null +++ b/build-config/conf/kernel/linux.armv8a.config @@ -0,0 +1,7021 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/arm64 5.4.86 Kernel Configuration +# + +# +# Compiler: gcc (Debian 8.3.0-6) 8.3.0 +# +CONFIG_CC_IS_GCC=y +CONFIG_GCC_VERSION=80300 +CONFIG_CLANG_VERSION=0 +CONFIG_CC_CAN_LINK=y +CONFIG_CC_HAS_ASM_GOTO=y +CONFIG_CC_HAS_ASM_INLINE=y +CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_EXTABLE_SORT=y +CONFIG_THREAD_INFO_IN_TASK=y + +# +# General setup +# +CONFIG_INIT_ENV_ARG_LIMIT=32 +# CONFIG_COMPILE_TEST is not set +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_BUILD_SALT="" +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +CONFIG_CROSS_MEMORY_ATTACH=y +# CONFIG_USELIB is not set +CONFIG_AUDIT=y +CONFIG_HAVE_ARCH_AUDITSYSCALL=y +CONFIG_AUDITSYSCALL=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_SHOW_LEVEL=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_IRQ_MIGRATION=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_DOMAIN_HIERARCHY=y +CONFIG_GENERIC_MSI_IRQ=y +CONFIG_GENERIC_MSI_IRQ_DOMAIN=y +CONFIG_IRQ_MSI_IOMMU=y +CONFIG_HANDLE_DOMAIN_IRQ=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_SPARSE_IRQ=y +# CONFIG_GENERIC_IRQ_DEBUGFS is not set +# end of IRQ subsystem + +CONFIG_GENERIC_IRQ_MULTI_HANDLER=y +CONFIG_ARCH_CLOCKSOURCE_DATA=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_ARCH_HAS_TICK_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_HZ_PERIODIC is not set +CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set +# CONFIG_NO_HZ is not set +CONFIG_HIGH_RES_TIMERS=y +# end of Timers subsystem + +# CONFIG_PREEMPT_NONE is not set +# CONFIG_PREEMPT_VOLUNTARY is not set +CONFIG_PREEMPT=y +CONFIG_PREEMPT_COUNT=y +CONFIG_PREEMPTION=y + +# +# CPU/Task time and stats accounting +# +CONFIG_TICK_CPU_ACCOUNTING=y +# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set +# CONFIG_IRQ_TIME_ACCOUNTING is not set +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_XACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +# CONFIG_PSI is not set +# end of CPU/Task time and stats accounting + +CONFIG_CPU_ISOLATION=y + +# +# RCU Subsystem +# +CONFIG_PREEMPT_RCU=y +# CONFIG_RCU_EXPERT is not set +CONFIG_SRCU=y +CONFIG_TREE_SRCU=y +CONFIG_TASKS_RCU=y +CONFIG_RCU_STALL_COMMON=y +CONFIG_RCU_NEED_SEGCBLIST=y +# end of RCU Subsystem + +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +# CONFIG_IKHEADERS is not set +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 +CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 +CONFIG_GENERIC_SCHED_CLOCK=y + +# +# Scheduler features +# +# end of Scheduler features + +CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y +CONFIG_ARCH_SUPPORTS_INT128=y +CONFIG_NUMA_BALANCING=y +CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y +CONFIG_CGROUPS=y +CONFIG_PAGE_COUNTER=y +CONFIG_MEMCG=y +CONFIG_MEMCG_SWAP=y +CONFIG_MEMCG_SWAP_ENABLED=y +CONFIG_MEMCG_KMEM=y +CONFIG_BLK_CGROUP=y +CONFIG_CGROUP_WRITEBACK=y +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +# CONFIG_CFS_BANDWIDTH is not set +# CONFIG_RT_GROUP_SCHED is not set +CONFIG_CGROUP_PIDS=y +# CONFIG_CGROUP_RDMA is not set +# CONFIG_CGROUP_FREEZER is not set +CONFIG_CGROUP_HUGETLB=y +CONFIG_CPUSETS=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_CGROUP_PERF=y +# CONFIG_CGROUP_DEBUG is not set +CONFIG_NAMESPACES=y +CONFIG_UTS_NS=y +CONFIG_IPC_NS=y +CONFIG_USER_NS=y +CONFIG_PID_NS=y +CONFIG_NET_NS=y +# CONFIG_CHECKPOINT_RESTORE is not set +CONFIG_SCHED_AUTOGROUP=y +# CONFIG_SYSFS_DEPRECATED is not set +# CONFIG_RELAY is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +CONFIG_RD_BZIP2=y +CONFIG_RD_LZMA=y +CONFIG_RD_XZ=y +CONFIG_RD_LZO=y +CONFIG_RD_LZ4=y +CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +CONFIG_HAVE_UID16=y +CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_BPF=y +# CONFIG_EXPERT is not set +CONFIG_UID16=y +CONFIG_MULTIUSER=y +CONFIG_SYSFS_SYSCALL=y +CONFIG_FHANDLE=y +CONFIG_POSIX_TIMERS=y +CONFIG_PRINTK=y +CONFIG_PRINTK_NMI=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_FUTEX_PI=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +CONFIG_IO_URING=y +CONFIG_ADVISE_SYSCALLS=y +CONFIG_MEMBARRIER=y +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +CONFIG_KALLSYMS_BASE_RELATIVE=y +# CONFIG_BPF_SYSCALL is not set +# CONFIG_USERFAULTFD is not set +CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y +CONFIG_RSEQ=y +# CONFIG_EMBEDDED is not set +CONFIG_HAVE_PERF_EVENTS=y + +# +# Kernel Performance Events And Counters +# +CONFIG_PERF_EVENTS=y +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +# end of Kernel Performance Events And Counters + +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_SLUB_DEBUG=y +# CONFIG_COMPAT_BRK is not set +# CONFIG_SLAB is not set +CONFIG_SLUB=y +CONFIG_SLAB_MERGE_DEFAULT=y +# CONFIG_SLAB_FREELIST_RANDOM is not set +# CONFIG_SLAB_FREELIST_HARDENED is not set +# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set +CONFIG_SLUB_CPU_PARTIAL=y +CONFIG_SYSTEM_DATA_VERIFICATION=y +CONFIG_PROFILING=y +# end of General setup + +CONFIG_ARM64=y +CONFIG_64BIT=y +CONFIG_MMU=y +CONFIG_ARM64_PAGE_SHIFT=12 +CONFIG_ARM64_CONT_SHIFT=4 +CONFIG_ARCH_MMAP_RND_BITS_MIN=18 +CONFIG_ARCH_MMAP_RND_BITS_MAX=33 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=11 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CSUM=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ZONE_DMA32=y +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +CONFIG_SMP=y +CONFIG_KERNEL_MODE_NEON=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_PGTABLE_LEVELS=4 +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_ARCH_PROC_KCORE_TEXT=y + +# +# Platform selection +# +# CONFIG_ARCH_ACTIONS is not set +# CONFIG_ARCH_AGILEX is not set +CONFIG_ARCH_SUNXI=y +CONFIG_ARCH_ALPINE=y +CONFIG_ARCH_BCM2835=y +CONFIG_ARCH_BCM_IPROC=y +CONFIG_ARCH_BERLIN=y +# CONFIG_ARCH_BITMAIN is not set +# CONFIG_ARCH_BRCMSTB is not set +CONFIG_ARCH_EXYNOS=y +# CONFIG_ARCH_K3 is not set +CONFIG_ARCH_LAYERSCAPE=y +CONFIG_ARCH_LG1K=y +CONFIG_ARCH_HISI=y +CONFIG_ARCH_MEDIATEK=y +CONFIG_ARCH_MESON=y +CONFIG_ARCH_MVEBU=y +# CONFIG_ARCH_MXC is not set +CONFIG_ARCH_QCOM=y +# CONFIG_ARCH_REALTEK is not set +CONFIG_ARCH_RENESAS=y +CONFIG_ARCH_ROCKCHIP=y +CONFIG_ARCH_SEATTLE=y +CONFIG_ARCH_STRATIX10=y +# CONFIG_ARCH_SYNQUACER is not set +CONFIG_ARCH_TEGRA=y +CONFIG_ARCH_SPRD=y +CONFIG_ARCH_THUNDER=y +# CONFIG_ARCH_THUNDER2 is not set +CONFIG_ARCH_UNIPHIER=y +CONFIG_ARCH_VEXPRESS=y +CONFIG_ARCH_XGENE=y +CONFIG_ARCH_ZX=y +CONFIG_ARCH_ZYNQMP=y +# end of Platform selection + +# +# Kernel Features +# + +# +# ARM errata workarounds via the alternatives framework +# +CONFIG_ARM64_WORKAROUND_CLEAN_CACHE=y +CONFIG_ARM64_ERRATUM_826319=y +CONFIG_ARM64_ERRATUM_827319=y +CONFIG_ARM64_ERRATUM_824069=y +CONFIG_ARM64_ERRATUM_819472=y +CONFIG_ARM64_ERRATUM_832075=y +CONFIG_ARM64_ERRATUM_834220=y +CONFIG_ARM64_ERRATUM_845719=y +CONFIG_ARM64_ERRATUM_843419=y +CONFIG_ARM64_ERRATUM_1024718=y +CONFIG_ARM64_ERRATUM_1418040=y +CONFIG_ARM64_ERRATUM_1165522=y +CONFIG_ARM64_ERRATUM_1286807=y +CONFIG_ARM64_ERRATUM_1463225=y +CONFIG_ARM64_ERRATUM_1542419=y +CONFIG_CAVIUM_ERRATUM_22375=y +CONFIG_CAVIUM_ERRATUM_23144=y +CONFIG_CAVIUM_ERRATUM_23154=y +CONFIG_CAVIUM_ERRATUM_27456=y +CONFIG_CAVIUM_ERRATUM_30115=y +CONFIG_CAVIUM_TX2_ERRATUM_219=y +CONFIG_QCOM_FALKOR_ERRATUM_1003=y +CONFIG_ARM64_WORKAROUND_REPEAT_TLBI=y +CONFIG_QCOM_FALKOR_ERRATUM_1009=y +CONFIG_QCOM_QDF2400_ERRATUM_0065=y +CONFIG_SOCIONEXT_SYNQUACER_PREITS=y +CONFIG_HISILICON_ERRATUM_161600802=y +CONFIG_QCOM_FALKOR_ERRATUM_E1041=y +CONFIG_FUJITSU_ERRATUM_010001=y +# end of ARM errata workarounds via the alternatives framework + +CONFIG_ARM64_4K_PAGES=y +# CONFIG_ARM64_16K_PAGES is not set +# CONFIG_ARM64_64K_PAGES is not set +# CONFIG_ARM64_VA_BITS_39 is not set +CONFIG_ARM64_VA_BITS_48=y +CONFIG_ARM64_VA_BITS=48 +CONFIG_ARM64_PA_BITS_48=y +CONFIG_ARM64_PA_BITS=48 +# CONFIG_CPU_BIG_ENDIAN is not set +CONFIG_SCHED_MC=y +# CONFIG_SCHED_SMT is not set +CONFIG_NR_CPUS=64 +CONFIG_HOTPLUG_CPU=y +CONFIG_NUMA=y +CONFIG_NODES_SHIFT=2 +CONFIG_USE_PERCPU_NUMA_NODE_ID=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +CONFIG_HOLES_IN_ZONE=y +# CONFIG_HZ_100 is not set +CONFIG_HZ_250=y +# CONFIG_HZ_300 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ=250 +CONFIG_SCHED_HRTICK=y +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_HAVE_ARCH_PFN_VALID=y +CONFIG_HW_PERF_EVENTS=y +CONFIG_SYS_SUPPORTS_HUGETLBFS=y +CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y +CONFIG_SECCOMP=y +CONFIG_PARAVIRT=y +# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set +CONFIG_KEXEC=y +# CONFIG_KEXEC_FILE is not set +# CONFIG_CRASH_DUMP is not set +CONFIG_XEN_DOM0=y +CONFIG_XEN=y +CONFIG_FORCE_MAX_ZONEORDER=11 +CONFIG_UNMAP_KERNEL_AT_EL0=y +CONFIG_HARDEN_BRANCH_PREDICTOR=y +CONFIG_HARDEN_EL2_VECTORS=y +CONFIG_ARM64_SSBD=y +CONFIG_RODATA_FULL_DEFAULT_ENABLED=y +# CONFIG_ARM64_SW_TTBR0_PAN is not set +CONFIG_ARM64_TAGGED_ADDR_ABI=y +CONFIG_COMPAT=y +CONFIG_KUSER_HELPERS=y +# CONFIG_ARMV8_DEPRECATED is not set + +# +# ARMv8.1 architectural features +# +CONFIG_ARM64_HW_AFDBM=y +CONFIG_ARM64_PAN=y +# CONFIG_ARM64_LSE_ATOMICS is not set +CONFIG_ARM64_VHE=y +# end of ARMv8.1 architectural features + +# +# ARMv8.2 architectural features +# +CONFIG_ARM64_UAO=y +# CONFIG_ARM64_PMEM is not set +CONFIG_ARM64_RAS_EXTN=y +CONFIG_ARM64_CNP=y +# end of ARMv8.2 architectural features + +# +# ARMv8.3 architectural features +# +CONFIG_ARM64_PTR_AUTH=y +# end of ARMv8.3 architectural features + +CONFIG_ARM64_SVE=y +CONFIG_ARM64_MODULE_PLTS=y +# CONFIG_ARM64_PSEUDO_NMI is not set +# CONFIG_RANDOMIZE_BASE is not set +# end of Kernel Features + +# +# Boot options +# +# CONFIG_ARM64_ACPI_PARKING_PROTOCOL is not set +CONFIG_CMDLINE="" +# CONFIG_CMDLINE_FORCE is not set +CONFIG_EFI_STUB=y +CONFIG_EFI=y +CONFIG_DMI=y +# end of Boot options + +CONFIG_SYSVIPC_COMPAT=y +CONFIG_ARCH_ENABLE_HUGEPAGE_MIGRATION=y + +# +# Power management options +# +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_HIBERNATE_CALLBACKS=y +CONFIG_HIBERNATION=y +CONFIG_PM_STD_PARTITION="" +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +# CONFIG_PM_AUTOSLEEP is not set +# CONFIG_PM_WAKELOCKS is not set +CONFIG_PM=y +# CONFIG_PM_DEBUG is not set +CONFIG_PM_CLK=y +CONFIG_PM_GENERIC_DOMAINS=y +# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +CONFIG_PM_GENERIC_DOMAINS_SLEEP=y +CONFIG_PM_GENERIC_DOMAINS_OF=y +CONFIG_CPU_PM=y +# CONFIG_ENERGY_MODEL is not set +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_HIBERNATION_HEADER=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +# end of Power management options + +# +# CPU Power Management +# + +# +# CPU Idle +# +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y +# CONFIG_CPU_IDLE_GOV_LADDER is not set +CONFIG_CPU_IDLE_GOV_MENU=y +# CONFIG_CPU_IDLE_GOV_TEO is not set +CONFIG_DT_IDLE_STATES=y + +# +# ARM CPU Idle Drivers +# +CONFIG_ARM_CPUIDLE=y +# CONFIG_ARM_PSCI_CPUIDLE is not set +# end of ARM CPU Idle Drivers +# end of CPU Idle + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +CONFIG_CPU_FREQ_GOV_COMMON=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +# CONFIG_CPU_FREQ_GOV_SCHEDUTIL is not set + +# +# CPU frequency scaling drivers +# +CONFIG_CPUFREQ_DT=y +CONFIG_CPUFREQ_DT_PLATDEV=y +# CONFIG_ACPI_CPPC_CPUFREQ is not set +# CONFIG_ARM_ARMADA_37XX_CPUFREQ is not set +# CONFIG_ARM_ARMADA_8K_CPUFREQ is not set +# CONFIG_ARM_MEDIATEK_CPUFREQ is not set +# CONFIG_ARM_QCOM_CPUFREQ_HW is not set +CONFIG_ARM_TEGRA20_CPUFREQ=y +CONFIG_ARM_TEGRA124_CPUFREQ=y +CONFIG_QORIQ_CPUFREQ=y +# end of CPU Frequency scaling +# end of CPU Power Management + +# +# Firmware Drivers +# +# CONFIG_ARM_SDE_INTERFACE is not set +CONFIG_DMIID=y +# CONFIG_DMI_SYSFS is not set +# CONFIG_ISCSI_IBFT is not set +# CONFIG_FW_CFG_SYSFS is not set +# CONFIG_INTEL_STRATIX10_SERVICE is not set +CONFIG_QCOM_SCM=y +CONFIG_QCOM_SCM_64=y +# CONFIG_QCOM_SCM_DOWNLOAD_MODE_DEFAULT is not set +CONFIG_HAVE_ARM_SMCCC=y +CONFIG_ARM_PSCI_FW=y +# CONFIG_ARM_PSCI_CHECKER is not set +# CONFIG_GOOGLE_FIRMWARE is not set + +# +# EFI (Extensible Firmware Interface) Support +# +# CONFIG_EFI_VARS is not set +CONFIG_EFI_ESRT=y +CONFIG_EFI_PARAMS_FROM_FDT=y +CONFIG_EFI_RUNTIME_WRAPPERS=y +CONFIG_EFI_ARMSTUB=y +CONFIG_EFI_ARMSTUB_DTB_LOADER=y +# CONFIG_EFI_CAPSULE_LOADER is not set +# CONFIG_EFI_TEST is not set +# CONFIG_RESET_ATTACK_MITIGATION is not set +# end of EFI (Extensible Firmware Interface) Support + +CONFIG_EFI_EARLYCON=y +CONFIG_MESON_SM=y + +# +# Tegra firmware driver +# +# CONFIG_TEGRA_IVC is not set +# end of Tegra firmware driver + +# +# Zynq MPSoC Firmware Drivers +# +CONFIG_ZYNQMP_FIRMWARE=y +# CONFIG_ZYNQMP_FIRMWARE_DEBUG is not set +# end of Zynq MPSoC Firmware Drivers +# end of Firmware Drivers + +CONFIG_ARCH_SUPPORTS_ACPI=y +CONFIG_ACPI=y +CONFIG_ACPI_GENERIC_GSI=y +CONFIG_ACPI_CCA_REQUIRED=y +# CONFIG_ACPI_DEBUGGER is not set +CONFIG_ACPI_SPCR_TABLE=y +# CONFIG_ACPI_EC_DEBUGFS is not set +CONFIG_ACPI_AC=y +CONFIG_ACPI_BATTERY=y +CONFIG_ACPI_BUTTON=y +CONFIG_ACPI_FAN=y +# CONFIG_ACPI_TAD is not set +# CONFIG_ACPI_DOCK is not set +CONFIG_ACPI_PROCESSOR_IDLE=y +CONFIG_ACPI_MCFG=y +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_THERMAL=y +CONFIG_ACPI_NUMA=y +CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y +CONFIG_ACPI_TABLE_UPGRADE=y +# CONFIG_ACPI_DEBUG is not set +# CONFIG_ACPI_PCI_SLOT is not set +CONFIG_ACPI_CONTAINER=y +# CONFIG_ACPI_HED is not set +# CONFIG_ACPI_CUSTOM_METHOD is not set +# CONFIG_ACPI_BGRT is not set +CONFIG_ACPI_REDUCED_HARDWARE_ONLY=y +# CONFIG_ACPI_HMAT is not set +CONFIG_HAVE_ACPI_APEI=y +# CONFIG_ACPI_APEI is not set +# CONFIG_PMIC_OPREGION is not set +# CONFIG_ACPI_CONFIGFS is not set +CONFIG_ACPI_IORT=y +CONFIG_ACPI_GTDT=y +CONFIG_ACPI_PPTT=y +CONFIG_HAVE_KVM_IRQCHIP=y +CONFIG_HAVE_KVM_IRQFD=y +CONFIG_HAVE_KVM_IRQ_ROUTING=y +CONFIG_HAVE_KVM_EVENTFD=y +CONFIG_KVM_MMIO=y +CONFIG_HAVE_KVM_MSI=y +CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y +CONFIG_KVM_VFIO=y +CONFIG_HAVE_KVM_ARCH_TLB_FLUSH_ALL=y +CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y +CONFIG_HAVE_KVM_IRQ_BYPASS=y +CONFIG_HAVE_KVM_VCPU_RUN_PID_CHANGE=y +CONFIG_IRQ_BYPASS_MANAGER=y +CONFIG_VIRTUALIZATION=y +CONFIG_KVM=y +CONFIG_KVM_ARM_HOST=y +CONFIG_KVM_ARM_PMU=y +CONFIG_KVM_INDIRECT_VECTORS=y +# CONFIG_VHOST_NET is not set +# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set +CONFIG_ARM64_CRYPTO=y +CONFIG_CRYPTO_SHA256_ARM64=y +# CONFIG_CRYPTO_SHA512_ARM64 is not set +CONFIG_CRYPTO_SHA1_ARM64_CE=y +CONFIG_CRYPTO_SHA2_ARM64_CE=y +# CONFIG_CRYPTO_SHA512_ARM64_CE is not set +# CONFIG_CRYPTO_SHA3_ARM64 is not set +# CONFIG_CRYPTO_SM3_ARM64_CE is not set +# CONFIG_CRYPTO_SM4_ARM64_CE is not set +CONFIG_CRYPTO_GHASH_ARM64_CE=y +# CONFIG_CRYPTO_CRCT10DIF_ARM64_CE is not set +CONFIG_CRYPTO_AES_ARM64=y +CONFIG_CRYPTO_AES_ARM64_CE=y +CONFIG_CRYPTO_AES_ARM64_CE_CCM=y +CONFIG_CRYPTO_AES_ARM64_CE_BLK=y +# CONFIG_CRYPTO_AES_ARM64_NEON_BLK is not set +# CONFIG_CRYPTO_CHACHA20_NEON is not set +# CONFIG_CRYPTO_NHPOLY1305_NEON is not set +# CONFIG_CRYPTO_AES_ARM64_BS is not set + +# +# General architecture-dependent options +# +CONFIG_CRASH_CORE=y +CONFIG_KEXEC_CORE=y +# CONFIG_KPROBES is not set +CONFIG_JUMP_LABEL=y +# CONFIG_STATIC_KEYS_SELFTEST is not set +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y +CONFIG_HAVE_NMI=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y +CONFIG_ARCH_HAS_FORTIFY_SOURCE=y +CONFIG_ARCH_HAS_KEEPINITRD=y +CONFIG_ARCH_HAS_SET_MEMORY=y +CONFIG_ARCH_HAS_SET_DIRECT_MAP=y +CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y +CONFIG_HAVE_ASM_MODVERSIONS=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_RSEQ=y +CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y +CONFIG_HAVE_RCU_TABLE_FREE=y +CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y +CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y +CONFIG_HAVE_CMPXCHG_LOCAL=y +CONFIG_HAVE_CMPXCHG_DOUBLE=y +CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_SECCOMP_FILTER=y +CONFIG_HAVE_ARCH_STACKLEAK=y +CONFIG_HAVE_STACKPROTECTOR=y +CONFIG_CC_HAS_STACKPROTECTOR_NONE=y +CONFIG_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR_STRONG=y +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_HAVE_ARCH_HUGE_VMAP=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_MODULES_USE_ELF_RELA=y +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y +CONFIG_HAVE_ARCH_MMAP_RND_BITS=y +CONFIG_ARCH_MMAP_RND_BITS=18 +CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y +CONFIG_ARCH_MMAP_RND_COMPAT_BITS=11 +CONFIG_ARCH_WANT_DEFAULT_TOPDOWN_MMAP_LAYOUT=y +CONFIG_HAVE_COPY_THREAD_TLS=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_COMPAT_OLD_SIGACTION=y +CONFIG_64BIT_TIME=y +CONFIG_COMPAT_32BIT_TIME=y +CONFIG_HAVE_ARCH_VMAP_STACK=y +CONFIG_VMAP_STACK=y +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y +CONFIG_STRICT_KERNEL_RWX=y +CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y +CONFIG_STRICT_MODULE_RWX=y +CONFIG_REFCOUNT_FULL=y +CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y +CONFIG_ARCH_USE_MEMREMAP_PROT=y +# CONFIG_LOCK_EVENT_COUNTS is not set + +# +# GCOV-based kernel profiling +# +# CONFIG_GCOV_KERNEL is not set +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y +# end of GCOV-based kernel profiling + +CONFIG_PLUGIN_HOSTCC="" +CONFIG_HAVE_GCC_PLUGINS=y +# end of General architecture-dependent options + +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +# CONFIG_MODULE_FORCE_LOAD is not set +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +# CONFIG_MODULE_SIG is not set +# CONFIG_MODULE_COMPRESS is not set +# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_TRIM_UNUSED_KSYMS is not set +CONFIG_MODULES_TREE_LOOKUP=y +CONFIG_BLOCK=y +CONFIG_BLK_SCSI_REQUEST=y +CONFIG_BLK_DEV_BSG=y +CONFIG_BLK_DEV_BSGLIB=y +CONFIG_BLK_DEV_INTEGRITY=y +# CONFIG_BLK_DEV_ZONED is not set +# CONFIG_BLK_DEV_THROTTLING is not set +# CONFIG_BLK_CMDLINE_PARSER is not set +# CONFIG_BLK_WBT is not set +# CONFIG_BLK_CGROUP_IOLATENCY is not set +# CONFIG_BLK_CGROUP_IOCOST is not set +CONFIG_BLK_DEBUG_FS=y +# CONFIG_BLK_SED_OPAL is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y +CONFIG_EFI_PARTITION=y +# end of Partition Types + +CONFIG_BLOCK_COMPAT=y +CONFIG_BLK_MQ_PCI=y +CONFIG_BLK_MQ_VIRTIO=y +CONFIG_BLK_PM=y + +# +# IO Schedulers +# +CONFIG_MQ_IOSCHED_DEADLINE=y +CONFIG_MQ_IOSCHED_KYBER=y +# CONFIG_IOSCHED_BFQ is not set +# end of IO Schedulers + +CONFIG_PREEMPT_NOTIFIERS=y +CONFIG_ASN1=y +CONFIG_UNINLINE_SPIN_UNLOCK=y +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y +CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y +CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_QUEUED_RWLOCKS=y +CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y +CONFIG_FREEZER=y + +# +# Executable file formats +# +CONFIG_BINFMT_ELF=y +CONFIG_COMPAT_BINFMT_ELF=y +CONFIG_ELFCORE=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_BINFMT_SCRIPT=y +# CONFIG_BINFMT_MISC is not set +CONFIG_COREDUMP=y +# end of Executable file formats + +# +# Memory Management options +# +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SPARSEMEM=y +CONFIG_NEED_MULTIPLE_NODES=y +CONFIG_HAVE_MEMORY_PRESENT=y +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_SPARSEMEM_VMEMMAP=y +CONFIG_HAVE_MEMBLOCK_NODE_MAP=y +CONFIG_HAVE_FAST_GUP=y +CONFIG_ARCH_KEEP_MEMBLOCK=y +CONFIG_MEMORY_ISOLATION=y +# CONFIG_MEMORY_HOTPLUG is not set +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_MEMORY_BALLOON=y +CONFIG_BALLOON_COMPACTION=y +CONFIG_COMPACTION=y +CONFIG_MIGRATION=y +CONFIG_CONTIG_ALLOC=y +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_MMU_NOTIFIER=y +CONFIG_KSM=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y +# CONFIG_MEMORY_FAILURE is not set +CONFIG_TRANSPARENT_HUGEPAGE=y +CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y +# CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set +CONFIG_TRANSPARENT_HUGE_PAGECACHE=y +# CONFIG_CLEANCACHE is not set +# CONFIG_FRONTSWAP is not set +CONFIG_CMA=y +# CONFIG_CMA_DEBUG is not set +# CONFIG_CMA_DEBUGFS is not set +CONFIG_CMA_AREAS=7 +# CONFIG_ZPOOL is not set +# CONFIG_ZBUD is not set +# CONFIG_ZSMALLOC is not set +CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set +# CONFIG_IDLE_PAGE_TRACKING is not set +CONFIG_ARCH_HAS_PTE_DEVMAP=y +CONFIG_FRAME_VECTOR=y +# CONFIG_PERCPU_STATS is not set +# CONFIG_GUP_BENCHMARK is not set +# CONFIG_READ_ONLY_THP_FOR_FS is not set +CONFIG_ARCH_HAS_PTE_SPECIAL=y +# end of Memory Management options + +CONFIG_NET=y +CONFIG_NET_INGRESS=y +CONFIG_SKB_EXTENSIONS=y + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_DIAG is not set +CONFIG_UNIX=y +CONFIG_UNIX_SCM=y +# CONFIG_UNIX_DIAG is not set +# CONFIG_TLS is not set +# CONFIG_XFRM_USER is not set +# CONFIG_NET_KEY is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +# CONFIG_IP_ADVANCED_ROUTER is not set +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE_DEMUX is not set +CONFIG_NET_IP_TUNNEL=m +# CONFIG_IP_MROUTE is not set +# CONFIG_SYN_COOKIES is not set +# CONFIG_NET_IPVTI is not set +# CONFIG_NET_FOU is not set +# CONFIG_NET_FOU_IP_TUNNELS is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +CONFIG_INET_TUNNEL=m +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +# CONFIG_INET_UDP_DIAG is not set +# CONFIG_INET_RAW_DIAG is not set +# CONFIG_INET_DIAG_DESTROY is not set +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +CONFIG_IPV6=m +# CONFIG_IPV6_ROUTER_PREF is not set +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +# CONFIG_INET6_AH is not set +# CONFIG_INET6_ESP is not set +# CONFIG_INET6_IPCOMP is not set +# CONFIG_IPV6_MIP6 is not set +# CONFIG_IPV6_ILA is not set +# CONFIG_IPV6_VTI is not set +CONFIG_IPV6_SIT=m +# CONFIG_IPV6_SIT_6RD is not set +CONFIG_IPV6_NDISC_NODETYPE=y +# CONFIG_IPV6_TUNNEL is not set +# CONFIG_IPV6_MULTIPLE_TABLES is not set +# CONFIG_IPV6_MROUTE is not set +# CONFIG_IPV6_SEG6_LWTUNNEL is not set +# CONFIG_IPV6_SEG6_HMAC is not set +# CONFIG_NETLABEL is not set +# CONFIG_NETWORK_SECMARK is not set +CONFIG_NET_PTP_CLASSIFY=y +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set +CONFIG_NETFILTER=y +CONFIG_NETFILTER_ADVANCED=y +CONFIG_BRIDGE_NETFILTER=m + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_INGRESS=y +CONFIG_NETFILTER_FAMILY_BRIDGE=y +# CONFIG_NETFILTER_NETLINK_ACCT is not set +# CONFIG_NETFILTER_NETLINK_QUEUE is not set +# CONFIG_NETFILTER_NETLINK_LOG is not set +# CONFIG_NETFILTER_NETLINK_OSF is not set +CONFIG_NF_CONNTRACK=m +CONFIG_NF_LOG_COMMON=m +# CONFIG_NF_LOG_NETDEV is not set +# CONFIG_NF_CONNTRACK_MARK is not set +# CONFIG_NF_CONNTRACK_ZONES is not set +CONFIG_NF_CONNTRACK_PROCFS=y +CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_TIMEOUT is not set +# CONFIG_NF_CONNTRACK_TIMESTAMP is not set +# CONFIG_NF_CONNTRACK_LABELS is not set +# CONFIG_NF_CT_PROTO_DCCP is not set +# CONFIG_NF_CT_PROTO_SCTP is not set +# CONFIG_NF_CT_PROTO_UDPLITE is not set +# CONFIG_NF_CONNTRACK_AMANDA is not set +# CONFIG_NF_CONNTRACK_FTP is not set +# CONFIG_NF_CONNTRACK_H323 is not set +# CONFIG_NF_CONNTRACK_IRC is not set +# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set +# CONFIG_NF_CONNTRACK_SNMP is not set +# CONFIG_NF_CONNTRACK_PPTP is not set +# CONFIG_NF_CONNTRACK_SANE is not set +# CONFIG_NF_CONNTRACK_SIP is not set +# CONFIG_NF_CONNTRACK_TFTP is not set +# CONFIG_NF_CT_NETLINK is not set +CONFIG_NF_NAT=m +CONFIG_NF_NAT_MASQUERADE=y +# CONFIG_NF_TABLES is not set +CONFIG_NETFILTER_XTABLES=m + +# +# Xtables combined modules +# +# CONFIG_NETFILTER_XT_MARK is not set +# CONFIG_NETFILTER_XT_CONNMARK is not set + +# +# Xtables targets +# +# CONFIG_NETFILTER_XT_TARGET_AUDIT is not set +CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m +# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set +# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set +# CONFIG_NETFILTER_XT_TARGET_DSCP is not set +# CONFIG_NETFILTER_XT_TARGET_HL is not set +# CONFIG_NETFILTER_XT_TARGET_HMARK is not set +# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set +# CONFIG_NETFILTER_XT_TARGET_LED is not set +CONFIG_NETFILTER_XT_TARGET_LOG=m +# CONFIG_NETFILTER_XT_TARGET_MARK is not set +CONFIG_NETFILTER_XT_NAT=m +# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set +# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set +# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set +# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set +# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set +CONFIG_NETFILTER_XT_TARGET_MASQUERADE=m +# CONFIG_NETFILTER_XT_TARGET_TEE is not set +# CONFIG_NETFILTER_XT_TARGET_TPROXY is not set +# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set +# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set + +# +# Xtables matches +# +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +# CONFIG_NETFILTER_XT_MATCH_BPF is not set +# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set +# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set +# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set +# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set +# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set +# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set +# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set +CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m +# CONFIG_NETFILTER_XT_MATCH_CPU is not set +# CONFIG_NETFILTER_XT_MATCH_DCCP is not set +# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set +# CONFIG_NETFILTER_XT_MATCH_DSCP is not set +# CONFIG_NETFILTER_XT_MATCH_ECN is not set +# CONFIG_NETFILTER_XT_MATCH_ESP is not set +# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set +# CONFIG_NETFILTER_XT_MATCH_HELPER is not set +# CONFIG_NETFILTER_XT_MATCH_HL is not set +# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set +# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set +# CONFIG_NETFILTER_XT_MATCH_L2TP is not set +# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set +# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set +# CONFIG_NETFILTER_XT_MATCH_MAC is not set +# CONFIG_NETFILTER_XT_MATCH_MARK is not set +# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set +# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set +# CONFIG_NETFILTER_XT_MATCH_OSF is not set +# CONFIG_NETFILTER_XT_MATCH_OWNER is not set +# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set +# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set +# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set +# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set +# CONFIG_NETFILTER_XT_MATCH_REALM is not set +# CONFIG_NETFILTER_XT_MATCH_RECENT is not set +# CONFIG_NETFILTER_XT_MATCH_SCTP is not set +# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set +# CONFIG_NETFILTER_XT_MATCH_STATE is not set +# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set +# CONFIG_NETFILTER_XT_MATCH_STRING is not set +# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set +# CONFIG_NETFILTER_XT_MATCH_TIME is not set +# CONFIG_NETFILTER_XT_MATCH_U32 is not set +# end of Core Netfilter Configuration + +# CONFIG_IP_SET is not set +# CONFIG_IP_VS is not set + +# +# IP: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV4=m +# CONFIG_NF_SOCKET_IPV4 is not set +# CONFIG_NF_TPROXY_IPV4 is not set +# CONFIG_NF_DUP_IPV4 is not set +# CONFIG_NF_LOG_ARP is not set +CONFIG_NF_LOG_IPV4=m +CONFIG_NF_REJECT_IPV4=m +CONFIG_IP_NF_IPTABLES=m +# CONFIG_IP_NF_MATCH_AH is not set +# CONFIG_IP_NF_MATCH_ECN is not set +# CONFIG_IP_NF_MATCH_RPFILTER is not set +# CONFIG_IP_NF_MATCH_TTL is not set +CONFIG_IP_NF_FILTER=m +CONFIG_IP_NF_TARGET_REJECT=m +# CONFIG_IP_NF_TARGET_SYNPROXY is not set +CONFIG_IP_NF_NAT=m +CONFIG_IP_NF_TARGET_MASQUERADE=m +# CONFIG_IP_NF_TARGET_NETMAP is not set +# CONFIG_IP_NF_TARGET_REDIRECT is not set +CONFIG_IP_NF_MANGLE=m +# CONFIG_IP_NF_TARGET_CLUSTERIP is not set +# CONFIG_IP_NF_TARGET_ECN is not set +# CONFIG_IP_NF_TARGET_TTL is not set +# CONFIG_IP_NF_RAW is not set +# CONFIG_IP_NF_SECURITY is not set +# CONFIG_IP_NF_ARPTABLES is not set +# end of IP: Netfilter Configuration + +# +# IPv6: Netfilter Configuration +# +# CONFIG_NF_SOCKET_IPV6 is not set +# CONFIG_NF_TPROXY_IPV6 is not set +# CONFIG_NF_DUP_IPV6 is not set +CONFIG_NF_REJECT_IPV6=m +CONFIG_NF_LOG_IPV6=m +CONFIG_IP6_NF_IPTABLES=m +# CONFIG_IP6_NF_MATCH_AH is not set +# CONFIG_IP6_NF_MATCH_EUI64 is not set +# CONFIG_IP6_NF_MATCH_FRAG is not set +# CONFIG_IP6_NF_MATCH_OPTS is not set +# CONFIG_IP6_NF_MATCH_HL is not set +# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set +# CONFIG_IP6_NF_MATCH_MH is not set +# CONFIG_IP6_NF_MATCH_RPFILTER is not set +# CONFIG_IP6_NF_MATCH_RT is not set +# CONFIG_IP6_NF_MATCH_SRH is not set +# CONFIG_IP6_NF_TARGET_HL is not set +CONFIG_IP6_NF_FILTER=m +CONFIG_IP6_NF_TARGET_REJECT=m +# CONFIG_IP6_NF_TARGET_SYNPROXY is not set +CONFIG_IP6_NF_MANGLE=m +# CONFIG_IP6_NF_RAW is not set +# CONFIG_IP6_NF_SECURITY is not set +CONFIG_IP6_NF_NAT=m +CONFIG_IP6_NF_TARGET_MASQUERADE=m +# CONFIG_IP6_NF_TARGET_NPT is not set +# end of IPv6: Netfilter Configuration + +CONFIG_NF_DEFRAG_IPV6=m +# CONFIG_NF_CONNTRACK_BRIDGE is not set +# CONFIG_BRIDGE_NF_EBTABLES is not set +# CONFIG_BPFILTER is not set +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_RDS is not set +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_L2TP is not set +CONFIG_STP=y +CONFIG_GARP=y +CONFIG_MRP=y +CONFIG_BRIDGE=m +CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_HAVE_NET_DSA=y +# CONFIG_NET_DSA is not set +CONFIG_VLAN_8021Q=y +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_VLAN_8021Q_MVRP=y +# CONFIG_DECNET is not set +CONFIG_LLC=y +# CONFIG_LLC2 is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_PHONET is not set +# CONFIG_6LOWPAN is not set +# CONFIG_IEEE802154 is not set +# CONFIG_NET_SCHED is not set +# CONFIG_DCB is not set +CONFIG_DNS_RESOLVER=y +# CONFIG_BATMAN_ADV is not set +# CONFIG_OPENVSWITCH is not set +# CONFIG_VSOCKETS is not set +# CONFIG_NETLINK_DIAG is not set +# CONFIG_MPLS is not set +# CONFIG_NET_NSH is not set +# CONFIG_HSR is not set +CONFIG_NET_SWITCHDEV=y +# CONFIG_NET_L3_MASTER_DEV is not set +# CONFIG_QRTR is not set +# CONFIG_NET_NCSI is not set +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_XPS=y +# CONFIG_CGROUP_NET_PRIO is not set +# CONFIG_CGROUP_NET_CLASSID is not set +CONFIG_NET_RX_BUSY_POLL=y +CONFIG_BQL=y +CONFIG_BPF_JIT=y +CONFIG_NET_FLOW_LIMIT=y + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# end of Network testing +# end of Networking options + +# CONFIG_HAMRADIO is not set +# CONFIG_CAN is not set +CONFIG_BT=m +CONFIG_BT_BREDR=y +# CONFIG_BT_RFCOMM is not set +# CONFIG_BT_BNEP is not set +CONFIG_BT_HIDP=m +# CONFIG_BT_HS is not set +# CONFIG_BT_LE is not set +CONFIG_BT_LEDS=y +# CONFIG_BT_SELFTEST is not set +# CONFIG_BT_DEBUGFS is not set + +# +# Bluetooth device drivers +# +# CONFIG_BT_HCIBTUSB is not set +# CONFIG_BT_HCIBTSDIO is not set +CONFIG_BT_HCIUART=m +# CONFIG_BT_HCIUART_H4 is not set +# CONFIG_BT_HCIUART_BCSP is not set +# CONFIG_BT_HCIUART_ATH3K is not set +# CONFIG_BT_HCIUART_INTEL is not set +# CONFIG_BT_HCIUART_AG6XX is not set +# CONFIG_BT_HCIBCM203X is not set +# CONFIG_BT_HCIBPA10X is not set +# CONFIG_BT_HCIBFUSB is not set +# CONFIG_BT_HCIVHCI is not set +# CONFIG_BT_MRVL is not set +# CONFIG_BT_MTKSDIO is not set +# end of Bluetooth device drivers + +# CONFIG_AF_RXRPC is not set +# CONFIG_AF_KCM is not set +CONFIG_WIRELESS=y +CONFIG_CFG80211=n +# CONFIG_NL80211_TESTMODE is not set +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y +CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEBUGFS is not set +CONFIG_CFG80211_CRDA_SUPPORT=y +# CONFIG_CFG80211_WEXT is not set +CONFIG_MAC80211=n +CONFIG_MAC80211_HAS_RC=y +CONFIG_MAC80211_RC_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y +CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" +# CONFIG_MAC80211_MESH is not set +CONFIG_MAC80211_LEDS=y +# CONFIG_MAC80211_DEBUGFS is not set +# CONFIG_MAC80211_MESSAGE_TRACING is not set +# CONFIG_MAC80211_DEBUG_MENU is not set +CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 +# CONFIG_WIMAX is not set +CONFIG_RFKILL=n +CONFIG_RFKILL_LEDS=y +CONFIG_RFKILL_INPUT=y +# CONFIG_RFKILL_GPIO is not set +CONFIG_NET_9P=y +CONFIG_NET_9P_VIRTIO=y +# CONFIG_NET_9P_XEN is not set +# CONFIG_NET_9P_DEBUG is not set +# CONFIG_CAIF is not set +# CONFIG_CEPH_LIB is not set +# CONFIG_NFC is not set +# CONFIG_PSAMPLE is not set +# CONFIG_NET_IFE is not set +# CONFIG_LWTUNNEL is not set +CONFIG_DST_CACHE=y +CONFIG_GRO_CELLS=y +CONFIG_PAGE_POOL=y +CONFIG_FAILOVER=y +CONFIG_HAVE_EBPF_JIT=y + +# +# Device Drivers +# +CONFIG_ARM_AMBA=y +CONFIG_TEGRA_AHB=y +CONFIG_HAVE_PCI=y +CONFIG_PCI=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCI_DOMAINS_GENERIC=y +CONFIG_PCI_SYSCALL=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCIEAER=y +# CONFIG_PCIEAER_INJECT is not set +# CONFIG_PCIE_ECRC is not set +CONFIG_PCIEASPM=y +# CONFIG_PCIEASPM_DEBUG is not set +CONFIG_PCIEASPM_DEFAULT=y +# CONFIG_PCIEASPM_POWERSAVE is not set +# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set +# CONFIG_PCIEASPM_PERFORMANCE is not set +CONFIG_PCIE_PME=y +# CONFIG_PCIE_DPC is not set +# CONFIG_PCIE_PTM is not set +# CONFIG_PCIE_BW is not set +CONFIG_PCI_MSI=y +CONFIG_PCI_MSI_IRQ_DOMAIN=y +CONFIG_PCI_QUIRKS=y +# CONFIG_PCI_DEBUG is not set +# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set +# CONFIG_PCI_STUB is not set +# CONFIG_PCI_PF_STUB is not set +CONFIG_PCI_ATS=y +CONFIG_PCI_ECAM=y +CONFIG_PCI_BRIDGE_EMUL=y +CONFIG_PCI_IOV=y +# CONFIG_PCI_PRI is not set +# CONFIG_PCI_PASID is not set +CONFIG_PCI_LABEL=y +# CONFIG_HOTPLUG_PCI is not set + +# +# PCI controller drivers +# +CONFIG_PCI_AARDVARK=y + +# +# Cadence PCIe controllers support +# +# CONFIG_PCIE_CADENCE_HOST is not set +# end of Cadence PCIe controllers support + +# CONFIG_PCIE_XILINX_NWL is not set +# CONFIG_PCI_FTPCI100 is not set +# CONFIG_PCI_TEGRA is not set +CONFIG_PCIE_RCAR=y +CONFIG_PCI_HOST_COMMON=y +CONFIG_PCI_HOST_GENERIC=y +# CONFIG_PCIE_XILINX is not set +CONFIG_PCI_XGENE=y +CONFIG_PCI_XGENE_MSI=y +CONFIG_PCIE_IPROC=y +CONFIG_PCIE_IPROC_PLATFORM=y +CONFIG_PCIE_IPROC_MSI=y +# CONFIG_PCIE_ALTERA is not set +# CONFIG_PCI_HOST_THUNDER_PEM is not set +# CONFIG_PCI_HOST_THUNDER_ECAM is not set +# CONFIG_PCIE_ROCKCHIP_HOST is not set +# CONFIG_PCIE_MEDIATEK is not set +# CONFIG_PCIE_MOBIVEIL is not set + +# +# DesignWare PCI Core Support +# +CONFIG_PCIE_DW=y +CONFIG_PCIE_DW_HOST=y +# CONFIG_PCIE_DW_PLAT_HOST is not set +CONFIG_PCI_LAYERSCAPE=y +CONFIG_PCI_HISI=y +CONFIG_PCIE_QCOM=y +CONFIG_PCIE_ARMADA_8K=y +# CONFIG_PCIE_KIRIN is not set +# CONFIG_PCIE_HISI_STB is not set +# CONFIG_PCI_MESON is not set +# CONFIG_PCIE_UNIPHIER is not set +# CONFIG_PCIE_AL is not set +# end of DesignWare PCI Core Support +# end of PCI controller drivers + +# +# PCI Endpoint +# +# CONFIG_PCI_ENDPOINT is not set +# end of PCI Endpoint + +# +# PCI switch controller drivers +# +# CONFIG_PCI_SW_SWITCHTEC is not set +# end of PCI switch controller drivers + +# CONFIG_PCCARD is not set +# CONFIG_RAPIDIO is not set + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER=y +CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y + +# +# Firmware loader +# +CONFIG_FW_LOADER=y +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_FW_LOADER_USER_HELPER is not set +# CONFIG_FW_LOADER_COMPRESS is not set +# end of Firmware loader + +CONFIG_WANT_DEV_COREDUMP=y +CONFIG_ALLOW_DEV_COREDUMP=y +CONFIG_DEV_COREDUMP=y +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set +# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set +CONFIG_SYS_HYPERVISOR=y +CONFIG_GENERIC_CPU_AUTOPROBE=y +CONFIG_GENERIC_CPU_VULNERABILITIES=y +CONFIG_SOC_BUS=y +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_SPI=y +CONFIG_REGMAP_SPMI=y +CONFIG_REGMAP_MMIO=y +CONFIG_REGMAP_IRQ=y +CONFIG_DMA_SHARED_BUFFER=y +# CONFIG_DMA_FENCE_TRACE is not set +CONFIG_GENERIC_ARCH_TOPOLOGY=y +# end of Generic Driver Options + +# +# Bus devices +# +# CONFIG_BRCMSTB_GISB_ARB is not set +# CONFIG_MOXTET is not set +# CONFIG_HISILICON_LPC is not set +# CONFIG_QCOM_EBI2 is not set +# CONFIG_SIMPLE_PM_BUS is not set +CONFIG_SUN50I_DE2_BUS=y +# CONFIG_SUNXI_RSB is not set +# CONFIG_TEGRA_ACONNECT is not set +# CONFIG_TEGRA_GMI is not set +CONFIG_UNIPHIER_SYSTEM_BUS=y +CONFIG_VEXPRESS_CONFIG=y +CONFIG_FSL_MC_BUS=y +# end of Bus devices + +# CONFIG_CONNECTOR is not set +# CONFIG_GNSS is not set +CONFIG_MTD=y +# CONFIG_MTD_TESTS is not set + +# +# Partition parsers +# +# CONFIG_MTD_AR7_PARTS is not set +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_OF_PARTS=y +# CONFIG_MTD_AFS_PARTS is not set +# CONFIG_MTD_REDBOOT_PARTS is not set +# end of Partition parsers + +# +# User Modules And Translation Layers +# +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set +# CONFIG_SM_FTL is not set +# CONFIG_MTD_OOPS is not set +# CONFIG_MTD_SWAP is not set +# CONFIG_MTD_PARTITIONED_MASTER is not set + +# +# RAM/ROM/Flash chip drivers +# +CONFIG_MTD_CFI=y +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_GEN_PROBE=y +CONFIG_MTD_CFI_ADV_OPTIONS=y +CONFIG_MTD_CFI_NOSWAP=y +# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set +# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set +# CONFIG_MTD_CFI_GEOMETRY is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_OTP is not set +CONFIG_MTD_CFI_INTELEXT=y +CONFIG_MTD_CFI_AMDSTD=y +CONFIG_MTD_CFI_STAA=y +CONFIG_MTD_CFI_UTIL=y +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set +# end of RAM/ROM/Flash chip drivers + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PHYSMAP is not set +# CONFIG_MTD_INTEL_VR_NOR is not set +# CONFIG_MTD_PLATRAM is not set +# end of Mapping drivers for chip access + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_PMC551 is not set +CONFIG_MTD_DATAFLASH=y +# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set +# CONFIG_MTD_DATAFLASH_OTP is not set +# CONFIG_MTD_MCHP23K256 is not set +CONFIG_MTD_SST25L=y +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOCG3 is not set +# end of Self-contained MTD device drivers + +# CONFIG_MTD_ONENAND is not set +# CONFIG_MTD_RAW_NAND is not set +# CONFIG_MTD_SPI_NAND is not set + +# +# LPDDR & LPDDR2 PCM memory drivers +# +# CONFIG_MTD_LPDDR is not set +# end of LPDDR & LPDDR2 PCM memory drivers + +CONFIG_MTD_SPI_NOR=y +CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y +# CONFIG_SPI_CADENCE_QUADSPI is not set +# CONFIG_SPI_HISI_SFC is not set +# CONFIG_SPI_MTK_QUADSPI is not set +# CONFIG_MTD_UBI is not set +# CONFIG_MTD_HYPERBUS is not set +CONFIG_DTC=y +CONFIG_OF=y +# CONFIG_OF_UNITTEST is not set +CONFIG_OF_FLATTREE=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_KOBJ=y +CONFIG_OF_DYNAMIC=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_IRQ=y +CONFIG_OF_NET=y +CONFIG_OF_MDIO=y +CONFIG_OF_RESERVED_MEM=y +CONFIG_OF_RESOLVE=y +CONFIG_OF_OVERLAY=y +CONFIG_OF_NUMA=y +# CONFIG_PARPORT is not set +CONFIG_PNP=y +CONFIG_PNP_DEBUG_MESSAGES=y + +# +# Protocols +# +CONFIG_PNPACPI=y +CONFIG_BLK_DEV=y +# CONFIG_BLK_DEV_NULL_BLK is not set +# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set +# CONFIG_BLK_DEV_UMEM is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +# CONFIG_BLK_DEV_DRBD is not set +CONFIG_BLK_DEV_NBD=n +# CONFIG_BLK_DEV_SKD is not set +# CONFIG_BLK_DEV_SX8 is not set +# CONFIG_BLK_DEV_RAM is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +CONFIG_XEN_BLKDEV_FRONTEND=y +# CONFIG_XEN_BLKDEV_BACKEND is not set +CONFIG_VIRTIO_BLK=y +# CONFIG_VIRTIO_BLK_SCSI is not set +# CONFIG_BLK_DEV_RBD is not set +# CONFIG_BLK_DEV_RSXX is not set + +# +# NVME Support +# +CONFIG_NVME_CORE=y +CONFIG_BLK_DEV_NVME=y +# CONFIG_NVME_MULTIPATH is not set +# CONFIG_NVME_FC is not set +# CONFIG_NVME_TCP is not set +# CONFIG_NVME_TARGET is not set +# end of NVME Support + +# +# Misc devices +# +# CONFIG_AD525X_DPOT is not set +# CONFIG_DUMMY_IRQ is not set +# CONFIG_PHANTOM is not set +# CONFIG_TIFM_CORE is not set +# CONFIG_ICS932S401 is not set +# CONFIG_ENCLOSURE_SERVICES is not set +# CONFIG_HP_ILO is not set +# CONFIG_QCOM_COINCELL is not set +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set +# CONFIG_DS1682 is not set +# CONFIG_LATTICE_ECP3_CONFIG is not set +CONFIG_SRAM=y +CONFIG_VEXPRESS_SYSCFG=y +# CONFIG_PCI_ENDPOINT_TEST is not set +# CONFIG_XILINX_SDFEC is not set +# CONFIG_PVPANIC is not set +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +CONFIG_EEPROM_AT24=y +CONFIG_EEPROM_AT25=n +# CONFIG_EEPROM_LEGACY is not set +# CONFIG_EEPROM_MAX6875 is not set +# CONFIG_EEPROM_93CX6 is not set +# CONFIG_EEPROM_93XX46 is not set +# CONFIG_EEPROM_IDT_89HPESX is not set +# CONFIG_EEPROM_EE1004 is not set +# end of EEPROM support + +# CONFIG_CB710_CORE is not set + +# +# Texas Instruments shared transport line discipline +# +# CONFIG_TI_ST is not set +# end of Texas Instruments shared transport line discipline + +# CONFIG_SENSORS_LIS3_I2C is not set +# CONFIG_ALTERA_STAPL is not set + +# +# Intel MIC & related support +# + +# +# Intel MIC Bus Driver +# + +# +# SCIF Bus Driver +# + +# +# VOP Bus Driver +# +# CONFIG_VOP_BUS is not set + +# +# Intel MIC Host Driver +# + +# +# Intel MIC Card Driver +# + +# +# SCIF Driver +# + +# +# Intel MIC Coprocessor State Management (COSM) Drivers +# + +# +# VOP Driver +# +# end of Intel MIC & related support + +# CONFIG_GENWQE is not set +# CONFIG_ECHO is not set +# CONFIG_MISC_ALCOR_PCI is not set +# CONFIG_MISC_RTSX_PCI is not set +# CONFIG_MISC_RTSX_USB is not set +# CONFIG_HABANA_AI is not set +# end of Misc devices + +# +# SCSI device support +# +CONFIG_SCSI_MOD=y +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +# CONFIG_SCSI_PROC_FS is not set + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +# CONFIG_CHR_DEV_ST is not set +# CONFIG_BLK_DEV_SR is not set +# CONFIG_CHR_DEV_SG is not set +# CONFIG_CHR_DEV_SCH is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set + +# +# SCSI Transports +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +CONFIG_SCSI_SAS_ATTRS=y +CONFIG_SCSI_SAS_LIBSAS=y +CONFIG_SCSI_SAS_ATA=y +CONFIG_SCSI_SAS_HOST_SMP=y +# CONFIG_SCSI_SRP_ATTRS is not set +# end of SCSI Transports + +CONFIG_SCSI_LOWLEVEL=y +# CONFIG_ISCSI_TCP is not set +# CONFIG_ISCSI_BOOT_SYSFS is not set +# CONFIG_SCSI_CXGB3_ISCSI is not set +# CONFIG_SCSI_CXGB4_ISCSI is not set +# CONFIG_SCSI_BNX2_ISCSI is not set +# CONFIG_BE2ISCSI is not set +# CONFIG_BLK_DEV_3W_XXXX_RAID is not set +# CONFIG_SCSI_HPSA is not set +# CONFIG_SCSI_3W_9XXX is not set +# CONFIG_SCSI_3W_SAS is not set +# CONFIG_SCSI_ACARD is not set +# CONFIG_SCSI_AACRAID is not set +# CONFIG_SCSI_AIC7XXX is not set +# CONFIG_SCSI_AIC79XX is not set +# CONFIG_SCSI_AIC94XX is not set +CONFIG_SCSI_HISI_SAS=y +# CONFIG_SCSI_HISI_SAS_PCI is not set +# CONFIG_SCSI_MVSAS is not set +# CONFIG_SCSI_MVUMI is not set +# CONFIG_SCSI_ADVANSYS is not set +# CONFIG_SCSI_ARCMSR is not set +# CONFIG_SCSI_ESAS2R is not set +# CONFIG_MEGARAID_NEWGEN is not set +# CONFIG_MEGARAID_LEGACY is not set +# CONFIG_MEGARAID_SAS is not set +# CONFIG_SCSI_MPT3SAS is not set +# CONFIG_SCSI_MPT2SAS is not set +# CONFIG_SCSI_SMARTPQI is not set +# CONFIG_SCSI_UFSHCD is not set +# CONFIG_SCSI_HPTIOP is not set +# CONFIG_SCSI_MYRB is not set +# CONFIG_SCSI_MYRS is not set +# CONFIG_XEN_SCSI_FRONTEND is not set +# CONFIG_SCSI_SNIC is not set +# CONFIG_SCSI_DMX3191D is not set +# CONFIG_SCSI_FDOMAIN_PCI is not set +# CONFIG_SCSI_GDTH is not set +# CONFIG_SCSI_IPS is not set +# CONFIG_SCSI_INITIO is not set +# CONFIG_SCSI_INIA100 is not set +# CONFIG_SCSI_STEX is not set +# CONFIG_SCSI_SYM53C8XX_2 is not set +# CONFIG_SCSI_IPR is not set +# CONFIG_SCSI_QLOGIC_1280 is not set +# CONFIG_SCSI_QLA_ISCSI is not set +# CONFIG_SCSI_DC395x is not set +# CONFIG_SCSI_AM53C974 is not set +# CONFIG_SCSI_WD719X is not set +# CONFIG_SCSI_DEBUG is not set +# CONFIG_SCSI_PMCRAID is not set +# CONFIG_SCSI_PM8001 is not set +CONFIG_SCSI_VIRTIO=y +# CONFIG_SCSI_DH is not set +# end of SCSI device support + +CONFIG_HAVE_PATA_PLATFORM=y +CONFIG_ATA=y +CONFIG_ATA_VERBOSE_ERROR=y +CONFIG_ATA_ACPI=y +# CONFIG_SATA_ZPODD is not set +CONFIG_SATA_PMP=y + +# +# Controllers with non-SFF native interface +# +CONFIG_SATA_AHCI=y +CONFIG_SATA_MOBILE_LPM_POLICY=0 +CONFIG_SATA_AHCI_PLATFORM=y +CONFIG_AHCI_CEVA=y +# CONFIG_AHCI_MTK is not set +CONFIG_AHCI_MVEBU=y +# CONFIG_AHCI_SUNXI is not set +# CONFIG_AHCI_TEGRA is not set +CONFIG_AHCI_XGENE=y +CONFIG_AHCI_QORIQ=y +# CONFIG_SATA_AHCI_SEATTLE is not set +# CONFIG_SATA_INIC162X is not set +# CONFIG_SATA_ACARD_AHCI is not set +CONFIG_SATA_SIL24=y +CONFIG_ATA_SFF=y + +# +# SFF controllers with custom DMA interface +# +# CONFIG_PDC_ADMA is not set +# CONFIG_SATA_QSTOR is not set +# CONFIG_SATA_SX4 is not set +CONFIG_ATA_BMDMA=y + +# +# SATA SFF controllers with BMDMA +# +# CONFIG_ATA_PIIX is not set +# CONFIG_SATA_DWC is not set +# CONFIG_SATA_MV is not set +# CONFIG_SATA_NV is not set +# CONFIG_SATA_PROMISE is not set +CONFIG_SATA_RCAR=y +# CONFIG_SATA_SIL is not set +# CONFIG_SATA_SIS is not set +# CONFIG_SATA_SVW is not set +# CONFIG_SATA_ULI is not set +# CONFIG_SATA_VIA is not set +# CONFIG_SATA_VITESSE is not set + +# +# PATA SFF controllers with BMDMA +# +# CONFIG_PATA_ALI is not set +# CONFIG_PATA_AMD is not set +# CONFIG_PATA_ARTOP is not set +# CONFIG_PATA_ATIIXP is not set +# CONFIG_PATA_ATP867X is not set +# CONFIG_PATA_CMD64X is not set +# CONFIG_PATA_CYPRESS is not set +# CONFIG_PATA_EFAR is not set +# CONFIG_PATA_HPT366 is not set +# CONFIG_PATA_HPT37X is not set +# CONFIG_PATA_HPT3X2N is not set +# CONFIG_PATA_HPT3X3 is not set +# CONFIG_PATA_IT8213 is not set +# CONFIG_PATA_IT821X is not set +# CONFIG_PATA_JMICRON is not set +# CONFIG_PATA_MARVELL is not set +# CONFIG_PATA_NETCELL is not set +# CONFIG_PATA_NINJA32 is not set +# CONFIG_PATA_NS87415 is not set +# CONFIG_PATA_OLDPIIX is not set +# CONFIG_PATA_OPTIDMA is not set +# CONFIG_PATA_PDC2027X is not set +# CONFIG_PATA_PDC_OLD is not set +# CONFIG_PATA_RADISYS is not set +# CONFIG_PATA_RDC is not set +# CONFIG_PATA_SCH is not set +# CONFIG_PATA_SERVERWORKS is not set +# CONFIG_PATA_SIL680 is not set +# CONFIG_PATA_SIS is not set +# CONFIG_PATA_TOSHIBA is not set +# CONFIG_PATA_TRIFLEX is not set +# CONFIG_PATA_VIA is not set +# CONFIG_PATA_WINBOND is not set + +# +# PIO-only SFF controllers +# +# CONFIG_PATA_CMD640_PCI is not set +# CONFIG_PATA_MPIIX is not set +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_OPTI is not set +CONFIG_PATA_PLATFORM=y +CONFIG_PATA_OF_PLATFORM=y +# CONFIG_PATA_RZ1000 is not set + +# +# Generic fallback / legacy drivers +# +# CONFIG_PATA_ACPI is not set +# CONFIG_ATA_GENERIC is not set +# CONFIG_PATA_LEGACY is not set +# CONFIG_MD is not set +# CONFIG_TARGET_CORE is not set +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_FIREWIRE is not set +# CONFIG_FIREWIRE_NOSY is not set +# end of IEEE 1394 (FireWire) support + +CONFIG_NETDEVICES=y +CONFIG_MII=y +CONFIG_NET_CORE=y +# CONFIG_BONDING is not set +# CONFIG_DUMMY is not set +# CONFIG_EQUALIZER is not set +# CONFIG_NET_FC is not set +# CONFIG_NET_TEAM is not set +CONFIG_MACVLAN=n +CONFIG_MACVTAP=n +# CONFIG_IPVLAN is not set +# CONFIG_VXLAN is not set +# CONFIG_GENEVE is not set +# CONFIG_GTP is not set +# CONFIG_MACSEC is not set +# CONFIG_NETCONSOLE is not set +CONFIG_TUN=y +CONFIG_TAP=n +# CONFIG_TUN_VNET_CROSS_LE is not set +CONFIG_VETH=n +CONFIG_VIRTIO_NET=y +# CONFIG_NLMON is not set +# CONFIG_ARCNET is not set + +# +# CAIF transport drivers +# + +# +# Distributed Switch Architecture drivers +# +# end of Distributed Switch Architecture drivers + +CONFIG_ETHERNET=y +CONFIG_NET_VENDOR_3COM=y +# CONFIG_VORTEX is not set +# CONFIG_TYPHOON is not set +CONFIG_NET_VENDOR_ADAPTEC=y +# CONFIG_ADAPTEC_STARFIRE is not set +CONFIG_NET_VENDOR_AGERE=y +# CONFIG_ET131X is not set +CONFIG_NET_VENDOR_ALACRITECH=y +# CONFIG_SLICOSS is not set +CONFIG_NET_VENDOR_ALLWINNER=y +# CONFIG_SUN4I_EMAC is not set +CONFIG_NET_VENDOR_ALTEON=y +# CONFIG_ACENIC is not set +# CONFIG_ALTERA_TSE is not set +CONFIG_NET_VENDOR_AMAZON=y +# CONFIG_ENA_ETHERNET is not set +CONFIG_NET_VENDOR_AMD=y +# CONFIG_AMD8111_ETH is not set +# CONFIG_PCNET32 is not set +CONFIG_AMD_XGBE=y +CONFIG_NET_XGENE=y +# CONFIG_NET_XGENE_V2 is not set +CONFIG_NET_VENDOR_AQUANTIA=y +# CONFIG_AQTION is not set +CONFIG_NET_VENDOR_ARC=y +# CONFIG_EMAC_ROCKCHIP is not set +CONFIG_NET_VENDOR_ATHEROS=y +# CONFIG_ATL2 is not set +# CONFIG_ATL1 is not set +# CONFIG_ATL1E is not set +# CONFIG_ATL1C is not set +# CONFIG_ALX is not set +# CONFIG_NET_VENDOR_AURORA is not set +CONFIG_NET_VENDOR_BROADCOM=y +# CONFIG_B44 is not set +# CONFIG_BCMGENET is not set +# CONFIG_BNX2 is not set +# CONFIG_CNIC is not set +# CONFIG_TIGON3 is not set +# CONFIG_BNX2X is not set +CONFIG_BGMAC=y +CONFIG_BGMAC_PLATFORM=y +# CONFIG_SYSTEMPORT is not set +# CONFIG_BNXT is not set +CONFIG_NET_VENDOR_BROCADE=y +# CONFIG_BNA is not set +CONFIG_NET_VENDOR_CADENCE=y +CONFIG_MACB=y +CONFIG_MACB_USE_HWSTAMP=y +# CONFIG_MACB_PCI is not set +CONFIG_NET_VENDOR_CAVIUM=y +# CONFIG_THUNDER_NIC_PF is not set +# CONFIG_THUNDER_NIC_VF is not set +# CONFIG_THUNDER_NIC_BGX is not set +# CONFIG_THUNDER_NIC_RGX is not set +# CONFIG_CAVIUM_PTP is not set +# CONFIG_LIQUIDIO is not set +# CONFIG_LIQUIDIO_VF is not set +CONFIG_NET_VENDOR_CHELSIO=y +# CONFIG_CHELSIO_T1 is not set +# CONFIG_CHELSIO_T3 is not set +# CONFIG_CHELSIO_T4 is not set +# CONFIG_CHELSIO_T4VF is not set +CONFIG_NET_VENDOR_CISCO=y +# CONFIG_ENIC is not set +CONFIG_NET_VENDOR_CORTINA=y +# CONFIG_GEMINI_ETHERNET is not set +# CONFIG_DNET is not set +CONFIG_NET_VENDOR_DEC=y +# CONFIG_NET_TULIP is not set +CONFIG_NET_VENDOR_DLINK=y +# CONFIG_DL2K is not set +# CONFIG_SUNDANCE is not set +CONFIG_NET_VENDOR_EMULEX=y +# CONFIG_BE2NET is not set +CONFIG_NET_VENDOR_EZCHIP=y +# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set +CONFIG_NET_VENDOR_FREESCALE=y +# CONFIG_FSL_FMAN is not set +# CONFIG_FSL_PQ_MDIO is not set +CONFIG_FSL_XGMAC_MDIO=y +# CONFIG_GIANFAR is not set +# CONFIG_FSL_DPAA2_ETH is not set +# CONFIG_FSL_ENETC is not set +# CONFIG_FSL_ENETC_VF is not set +# CONFIG_FSL_ENETC_MDIO is not set +CONFIG_NET_VENDOR_GOOGLE=y +# CONFIG_GVE is not set +CONFIG_NET_VENDOR_HISILICON=y +# CONFIG_HIX5HD2_GMAC is not set +# CONFIG_HISI_FEMAC is not set +# CONFIG_HIP04_ETH is not set +CONFIG_HNS_MDIO=y +CONFIG_HNS=y +CONFIG_HNS_DSAF=y +CONFIG_HNS_ENET=y +# CONFIG_HNS3 is not set +CONFIG_NET_VENDOR_HP=y +# CONFIG_HP100 is not set +CONFIG_NET_VENDOR_HUAWEI=y +# CONFIG_HINIC is not set +CONFIG_NET_VENDOR_I825XX=y +CONFIG_NET_VENDOR_INTEL=y +# CONFIG_E100 is not set +CONFIG_E1000=y +CONFIG_E1000E=y +CONFIG_IGB=y +CONFIG_IGB_HWMON=y +CONFIG_IGBVF=y +# CONFIG_IXGB is not set +# CONFIG_IXGBE is not set +# CONFIG_IXGBEVF is not set +# CONFIG_I40E is not set +# CONFIG_I40EVF is not set +# CONFIG_ICE is not set +# CONFIG_FM10K is not set +# CONFIG_IGC is not set +# CONFIG_JME is not set +CONFIG_NET_VENDOR_MARVELL=y +# CONFIG_MVMDIO is not set +# CONFIG_MVNETA is not set +# CONFIG_MVPP2 is not set +# CONFIG_PXA168_ETH is not set +# CONFIG_SKGE is not set +CONFIG_SKY2=y +# CONFIG_SKY2_DEBUG is not set +# CONFIG_OCTEONTX2_AF is not set +# CONFIG_NET_VENDOR_MEDIATEK is not set +CONFIG_NET_VENDOR_MELLANOX=y +# CONFIG_MLX4_EN is not set +# CONFIG_MLX5_CORE is not set +# CONFIG_MLXSW_CORE is not set +# CONFIG_MLXFW is not set +CONFIG_NET_VENDOR_MICREL=y +# CONFIG_KS8842 is not set +# CONFIG_KS8851 is not set +# CONFIG_KS8851_MLL is not set +# CONFIG_KSZ884X_PCI is not set +CONFIG_NET_VENDOR_MICROCHIP=y +# CONFIG_ENC28J60 is not set +# CONFIG_ENCX24J600 is not set +# CONFIG_LAN743X is not set +CONFIG_NET_VENDOR_MICROSEMI=y +# CONFIG_MSCC_OCELOT_SWITCH is not set +CONFIG_NET_VENDOR_MYRI=y +# CONFIG_MYRI10GE is not set +# CONFIG_FEALNX is not set +CONFIG_NET_VENDOR_NATSEMI=y +# CONFIG_NATSEMI is not set +# CONFIG_NS83820 is not set +CONFIG_NET_VENDOR_NETERION=y +# CONFIG_S2IO is not set +# CONFIG_VXGE is not set +CONFIG_NET_VENDOR_NETRONOME=y +# CONFIG_NFP is not set +CONFIG_NET_VENDOR_NI=y +# CONFIG_NI_XGE_MANAGEMENT_ENET is not set +CONFIG_NET_VENDOR_8390=y +# CONFIG_NE2K_PCI is not set +CONFIG_NET_VENDOR_NVIDIA=y +# CONFIG_FORCEDETH is not set +CONFIG_NET_VENDOR_OKI=y +# CONFIG_ETHOC is not set +CONFIG_NET_VENDOR_PACKET_ENGINES=y +# CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set +CONFIG_NET_VENDOR_PENSANDO=y +# CONFIG_IONIC is not set +CONFIG_NET_VENDOR_QLOGIC=y +# CONFIG_QLA3XXX is not set +# CONFIG_QLCNIC is not set +# CONFIG_NETXEN_NIC is not set +# CONFIG_QED is not set +CONFIG_NET_VENDOR_QUALCOMM=y +# CONFIG_QCA7000_SPI is not set +# CONFIG_QCOM_EMAC is not set +# CONFIG_RMNET is not set +CONFIG_NET_VENDOR_RDC=y +# CONFIG_R6040 is not set +CONFIG_NET_VENDOR_REALTEK=y +# CONFIG_8139CP is not set +# CONFIG_8139TOO is not set +# CONFIG_R8169 is not set +CONFIG_NET_VENDOR_RENESAS=y +# CONFIG_SH_ETH is not set +CONFIG_RAVB=y +CONFIG_NET_VENDOR_ROCKER=y +# CONFIG_ROCKER is not set +CONFIG_NET_VENDOR_SAMSUNG=y +# CONFIG_SXGBE_ETH is not set +CONFIG_NET_VENDOR_SEEQ=y +CONFIG_NET_VENDOR_SOLARFLARE=y +# CONFIG_SFC is not set +# CONFIG_SFC_FALCON is not set +CONFIG_NET_VENDOR_SILAN=y +# CONFIG_SC92031 is not set +CONFIG_NET_VENDOR_SIS=y +# CONFIG_SIS900 is not set +# CONFIG_SIS190 is not set +CONFIG_NET_VENDOR_SMSC=y +# CONFIG_SMC91X is not set +# CONFIG_EPIC100 is not set +CONFIG_SMSC911X=y +# CONFIG_SMSC9420 is not set +CONFIG_NET_VENDOR_SOCIONEXT=y +# CONFIG_SNI_AVE is not set +CONFIG_NET_VENDOR_STMICRO=y +CONFIG_STMMAC_ETH=n +# CONFIG_STMMAC_SELFTESTS is not set +CONFIG_STMMAC_PLATFORM=n +# CONFIG_DWMAC_DWC_QOS_ETH is not set +CONFIG_DWMAC_GENERIC=n +CONFIG_DWMAC_IPQ806X=n +# CONFIG_DWMAC_MEDIATEK is not set +CONFIG_DWMAC_MESON=n +CONFIG_DWMAC_QCOM_ETHQOS=n +CONFIG_DWMAC_ROCKCHIP=n +CONFIG_DWMAC_SOCFPGA=n +CONFIG_DWMAC_SUNXI=n +CONFIG_DWMAC_SUN8I=n +# CONFIG_STMMAC_PCI is not set +CONFIG_NET_VENDOR_SUN=y +# CONFIG_HAPPYMEAL is not set +# CONFIG_SUNGEM is not set +# CONFIG_CASSINI is not set +# CONFIG_NIU is not set +CONFIG_NET_VENDOR_SYNOPSYS=y +# CONFIG_DWC_XLGMAC is not set +CONFIG_NET_VENDOR_TEHUTI=y +# CONFIG_TEHUTI is not set +CONFIG_NET_VENDOR_TI=y +# CONFIG_TI_CPSW_PHY_SEL is not set +# CONFIG_TLAN is not set +CONFIG_NET_VENDOR_VIA=y +# CONFIG_VIA_RHINE is not set +# CONFIG_VIA_VELOCITY is not set +CONFIG_NET_VENDOR_WIZNET=y +# CONFIG_WIZNET_W5100 is not set +# CONFIG_WIZNET_W5300 is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_NET_SB1000 is not set +CONFIG_MDIO_DEVICE=y +CONFIG_MDIO_BUS=y +# CONFIG_MDIO_BCM_IPROC is not set +# CONFIG_MDIO_BCM_UNIMAC is not set +CONFIG_MDIO_BITBANG=y +CONFIG_MDIO_BUS_MUX=y +CONFIG_MDIO_BUS_MUX_BCM_IPROC=y +# CONFIG_MDIO_BUS_MUX_GPIO is not set +CONFIG_MDIO_BUS_MUX_MESON_G12A=n +CONFIG_MDIO_BUS_MUX_MMIOREG=y +# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set +# CONFIG_MDIO_GPIO is not set +# CONFIG_MDIO_HISI_FEMAC is not set +# CONFIG_MDIO_MSCC_MIIM is not set +# CONFIG_MDIO_OCTEON is not set +# CONFIG_MDIO_SUN4I is not set +# CONFIG_MDIO_THUNDER is not set +CONFIG_MDIO_XGENE=y +CONFIG_PHYLINK=n +CONFIG_PHYLIB=y +CONFIG_SWPHY=y +# CONFIG_LED_TRIGGER_PHY is not set + +# +# MII PHY device drivers +# +# CONFIG_SFP is not set +# CONFIG_ADIN_PHY is not set +# CONFIG_AMD_PHY is not set +CONFIG_AQUANTIA_PHY=y +# CONFIG_AX88796B_PHY is not set +# CONFIG_AT803X_PHY is not set +# CONFIG_BCM7XXX_PHY is not set +# CONFIG_BCM87XX_PHY is not set +# CONFIG_BROADCOM_PHY is not set +# CONFIG_CICADA_PHY is not set +# CONFIG_CORTINA_PHY is not set +# CONFIG_DAVICOM_PHY is not set +# CONFIG_DP83822_PHY is not set +# CONFIG_DP83TC811_PHY is not set +# CONFIG_DP83848_PHY is not set +# CONFIG_DP83867_PHY is not set +CONFIG_FIXED_PHY=y +# CONFIG_ICPLUS_PHY is not set +# CONFIG_INTEL_XWAY_PHY is not set +# CONFIG_LSI_ET1011C_PHY is not set +# CONFIG_LXT_PHY is not set +# CONFIG_MARVELL_PHY is not set +# CONFIG_MARVELL_10G_PHY is not set +# CONFIG_MESON_GXL_PHY is not set +CONFIG_MICREL_PHY=y +# CONFIG_MICROCHIP_PHY is not set +# CONFIG_MICROCHIP_T1_PHY is not set +# CONFIG_MICROSEMI_PHY is not set +# CONFIG_NATIONAL_PHY is not set +# CONFIG_NXP_TJA11XX_PHY is not set +# CONFIG_QSEMI_PHY is not set +CONFIG_REALTEK_PHY=y +# CONFIG_RENESAS_PHY is not set +# CONFIG_ROCKCHIP_PHY is not set +CONFIG_SMSC_PHY=y +# CONFIG_STE10XP is not set +# CONFIG_TERANETICS_PHY is not set +CONFIG_VITESSE_PHY=y +# CONFIG_XILINX_GMII2RGMII is not set +# CONFIG_MICREL_KS8995MA is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +CONFIG_USB_NET_DRIVERS=y +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +CONFIG_USB_PEGASUS=n +CONFIG_USB_RTL8150=n +CONFIG_USB_RTL8152=n +# CONFIG_USB_LAN78XX is not set +CONFIG_USB_USBNET=n +CONFIG_USB_NET_AX8817X=n +CONFIG_USB_NET_AX88179_178A=n +CONFIG_USB_NET_CDCETHER=n +# CONFIG_USB_NET_CDC_EEM is not set +CONFIG_USB_NET_CDC_NCM=n +# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set +# CONFIG_USB_NET_CDC_MBIM is not set +CONFIG_USB_NET_DM9601=n +# CONFIG_USB_NET_SR9700 is not set +CONFIG_USB_NET_SR9800=n +CONFIG_USB_NET_SMSC75XX=n +CONFIG_USB_NET_SMSC95XX=n +# CONFIG_USB_NET_GL620A is not set +CONFIG_USB_NET_NET1080=n +CONFIG_USB_NET_PLUSB=n +CONFIG_USB_NET_MCS7830=n +# CONFIG_USB_NET_RNDIS_HOST is not set +CONFIG_USB_NET_CDC_SUBSET_ENABLE=n +CONFIG_USB_NET_CDC_SUBSET=n +# CONFIG_USB_ALI_M5632 is not set +# CONFIG_USB_AN2720 is not set +CONFIG_USB_BELKIN=y +CONFIG_USB_ARMLINUX=y +# CONFIG_USB_EPSON2888 is not set +# CONFIG_USB_KC2190 is not set +CONFIG_USB_NET_ZAURUS=n +# CONFIG_USB_NET_CX82310_ETH is not set +# CONFIG_USB_NET_KALMIA is not set +# CONFIG_USB_NET_QMI_WWAN is not set +# CONFIG_USB_HSO is not set +# CONFIG_USB_NET_INT51X1 is not set +# CONFIG_USB_IPHETH is not set +# CONFIG_USB_SIERRA_NET is not set +# CONFIG_USB_VL600 is not set +# CONFIG_USB_NET_CH9200 is not set +# CONFIG_USB_NET_AQC111 is not set +CONFIG_WLAN=y +CONFIG_WLAN_VENDOR_ADMTEK=y +# CONFIG_ADM8211 is not set +CONFIG_WLAN_VENDOR_ATH=y +# CONFIG_ATH_DEBUG is not set +# CONFIG_ATH5K is not set +# CONFIG_ATH5K_PCI is not set +# CONFIG_ATH9K is not set +# CONFIG_ATH9K_HTC is not set +# CONFIG_CARL9170 is not set +# CONFIG_ATH6KL is not set +# CONFIG_AR5523 is not set +# CONFIG_WIL6210 is not set +# CONFIG_ATH10K is not set +# CONFIG_WCN36XX is not set +CONFIG_WLAN_VENDOR_ATMEL=y +# CONFIG_ATMEL is not set +# CONFIG_AT76C50X_USB is not set +CONFIG_WLAN_VENDOR_BROADCOM=y +# CONFIG_B43 is not set +# CONFIG_B43LEGACY is not set +CONFIG_BRCMUTIL=n +# CONFIG_BRCMSMAC is not set +CONFIG_BRCMFMAC=n +CONFIG_BRCMFMAC_PROTO_BCDC=y +CONFIG_BRCMFMAC_SDIO=y +# CONFIG_BRCMFMAC_USB is not set +# CONFIG_BRCMFMAC_PCIE is not set +# CONFIG_BRCM_TRACING is not set +# CONFIG_BRCMDBG is not set +CONFIG_WLAN_VENDOR_CISCO=y +CONFIG_WLAN_VENDOR_INTEL=y +# CONFIG_IPW2100 is not set +# CONFIG_IPW2200 is not set +# CONFIG_IWL4965 is not set +# CONFIG_IWL3945 is not set +# CONFIG_IWLWIFI is not set +CONFIG_WLAN_VENDOR_INTERSIL=y +# CONFIG_HOSTAP is not set +# CONFIG_HERMES is not set +# CONFIG_P54_COMMON is not set +# CONFIG_PRISM54 is not set +CONFIG_WLAN_VENDOR_MARVELL=y +# CONFIG_LIBERTAS is not set +# CONFIG_LIBERTAS_THINFIRM is not set +# CONFIG_MWIFIEX is not set +# CONFIG_MWL8K is not set +CONFIG_WLAN_VENDOR_MEDIATEK=y +# CONFIG_MT7601U is not set +# CONFIG_MT76x0U is not set +# CONFIG_MT76x0E is not set +# CONFIG_MT76x2E is not set +# CONFIG_MT76x2U is not set +# CONFIG_MT7603E is not set +# CONFIG_MT7615E is not set +CONFIG_WLAN_VENDOR_RALINK=y +# CONFIG_RT2X00 is not set +CONFIG_WLAN_VENDOR_REALTEK=y +# CONFIG_RTL8180 is not set +# CONFIG_RTL8187 is not set +CONFIG_RTL_CARDS=n +# CONFIG_RTL8192CE is not set +# CONFIG_RTL8192SE is not set +# CONFIG_RTL8192DE is not set +# CONFIG_RTL8723AE is not set +# CONFIG_RTL8723BE is not set +# CONFIG_RTL8188EE is not set +# CONFIG_RTL8192EE is not set +# CONFIG_RTL8821AE is not set +# CONFIG_RTL8192CU is not set +# CONFIG_RTL8XXXU is not set +# CONFIG_RTW88 is not set +CONFIG_WLAN_VENDOR_RSI=y +# CONFIG_RSI_91X is not set +CONFIG_WLAN_VENDOR_ST=y +# CONFIG_CW1200 is not set +CONFIG_WLAN_VENDOR_TI=y +# CONFIG_WL1251 is not set +# CONFIG_WL12XX is not set +CONFIG_WL18XX=n +CONFIG_WLCORE=n +# CONFIG_WLCORE_SPI is not set +CONFIG_WLCORE_SDIO=n +CONFIG_WILINK_PLATFORM_DATA=y +CONFIG_WLAN_VENDOR_ZYDAS=y +# CONFIG_USB_ZD1201 is not set +# CONFIG_ZD1211RW is not set +CONFIG_WLAN_VENDOR_QUANTENNA=y +# CONFIG_QTNFMAC_PCIE is not set +# CONFIG_MAC80211_HWSIM is not set +# CONFIG_USB_NET_RNDIS_WLAN is not set +# CONFIG_VIRT_WIFI is not set + +# +# Enable WiMAX (Networking options) to see the WiMAX drivers +# +# CONFIG_WAN is not set +CONFIG_XEN_NETDEV_FRONTEND=y +# CONFIG_XEN_NETDEV_BACKEND is not set +# CONFIG_VMXNET3 is not set +# CONFIG_FUJITSU_ES is not set +# CONFIG_NETDEVSIM is not set +CONFIG_NET_FAILOVER=y +# CONFIG_ISDN is not set +# CONFIG_NVM is not set + +# +# Input device support +# +CONFIG_INPUT=y +CONFIG_INPUT_LEDS=y +CONFIG_INPUT_FF_MEMLESS=y +# CONFIG_INPUT_POLLDEV is not set +# CONFIG_INPUT_SPARSEKMAP is not set +# CONFIG_INPUT_MATRIXKMAP is not set + +# +# Userland interfaces +# +CONFIG_INPUT_MOUSEDEV=y +CONFIG_INPUT_MOUSEDEV_PSAUX=y +CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +# CONFIG_INPUT_JOYDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_KEYBOARD_ADC is not set +# CONFIG_KEYBOARD_ADP5588 is not set +# CONFIG_KEYBOARD_ADP5589 is not set +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_QT1050 is not set +# CONFIG_KEYBOARD_QT1070 is not set +# CONFIG_KEYBOARD_QT2160 is not set +# CONFIG_KEYBOARD_DLINK_DIR685 is not set +# CONFIG_KEYBOARD_LKKBD is not set +CONFIG_KEYBOARD_GPIO=y +# CONFIG_KEYBOARD_GPIO_POLLED is not set +# CONFIG_KEYBOARD_TCA6416 is not set +# CONFIG_KEYBOARD_TCA8418 is not set +# CONFIG_KEYBOARD_MATRIX is not set +# CONFIG_KEYBOARD_LM8323 is not set +# CONFIG_KEYBOARD_LM8333 is not set +# CONFIG_KEYBOARD_MAX7359 is not set +# CONFIG_KEYBOARD_MCS is not set +# CONFIG_KEYBOARD_MPR121 is not set +# CONFIG_KEYBOARD_NEWTON is not set +# CONFIG_KEYBOARD_TEGRA is not set +# CONFIG_KEYBOARD_OPENCORES is not set +# CONFIG_KEYBOARD_SAMSUNG is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_SUN4I_LRADC is not set +# CONFIG_KEYBOARD_OMAP4 is not set +# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_CROS_EC is not set +# CONFIG_KEYBOARD_CAP11XX is not set +# CONFIG_KEYBOARD_BCM is not set +CONFIG_INPUT_MOUSE=y +CONFIG_MOUSE_PS2=y +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_BYD=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y +CONFIG_MOUSE_PS2_CYPRESS=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +# CONFIG_MOUSE_PS2_ELANTECH is not set +# CONFIG_MOUSE_PS2_SENTELIC is not set +# CONFIG_MOUSE_PS2_TOUCHKIT is not set +CONFIG_MOUSE_PS2_FOCALTECH=y +CONFIG_MOUSE_PS2_SMBUS=y +# CONFIG_MOUSE_SERIAL is not set +# CONFIG_MOUSE_APPLETOUCH is not set +# CONFIG_MOUSE_BCM5974 is not set +# CONFIG_MOUSE_CYAPA is not set +# CONFIG_MOUSE_ELAN_I2C is not set +# CONFIG_MOUSE_VSXXXAA is not set +# CONFIG_MOUSE_GPIO is not set +# CONFIG_MOUSE_SYNAPTICS_I2C is not set +# CONFIG_MOUSE_SYNAPTICS_USB is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +CONFIG_INPUT_MISC=y +# CONFIG_INPUT_AD714X is not set +# CONFIG_INPUT_ATMEL_CAPTOUCH is not set +# CONFIG_INPUT_BMA150 is not set +# CONFIG_INPUT_E3X0_BUTTON is not set +# CONFIG_INPUT_MSM_VIBRATOR is not set +CONFIG_INPUT_PM8941_PWRKEY=y +# CONFIG_INPUT_PM8XXX_VIBRATOR is not set +# CONFIG_INPUT_MMA8450 is not set +# CONFIG_INPUT_GP2A is not set +# CONFIG_INPUT_GPIO_BEEPER is not set +# CONFIG_INPUT_GPIO_DECODER is not set +# CONFIG_INPUT_GPIO_VIBRA is not set +# CONFIG_INPUT_ATI_REMOTE2 is not set +# CONFIG_INPUT_KEYSPAN_REMOTE is not set +# CONFIG_INPUT_KXTJ9 is not set +# CONFIG_INPUT_POWERMATE is not set +# CONFIG_INPUT_YEALINK is not set +# CONFIG_INPUT_CM109 is not set +# CONFIG_INPUT_REGULATOR_HAPTIC is not set +# CONFIG_INPUT_UINPUT is not set +# CONFIG_INPUT_PCF8574 is not set +# CONFIG_INPUT_PWM_BEEPER is not set +# CONFIG_INPUT_PWM_VIBRA is not set +# CONFIG_INPUT_RK805_PWRKEY is not set +# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set +# CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_IMS_PCU is not set +# CONFIG_INPUT_CMA3000 is not set +CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y +# CONFIG_INPUT_SOC_BUTTON_ARRAY is not set +# CONFIG_INPUT_DRV260X_HAPTICS is not set +# CONFIG_INPUT_DRV2665_HAPTICS is not set +# CONFIG_INPUT_DRV2667_HAPTICS is not set +CONFIG_INPUT_HISI_POWERKEY=y +# CONFIG_RMI4_CORE is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +# CONFIG_SERIO_SERPORT is not set +CONFIG_SERIO_AMBAKMI=y +# CONFIG_SERIO_PCIPS2 is not set +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set +# CONFIG_SERIO_ALTERA_PS2 is not set +# CONFIG_SERIO_PS2MULT is not set +# CONFIG_SERIO_ARC_PS2 is not set +# CONFIG_SERIO_APBPS2 is not set +# CONFIG_SERIO_SUN4I_PS2 is not set +# CONFIG_SERIO_GPIO_PS2 is not set +# CONFIG_USERIO is not set +# CONFIG_GAMEPORT is not set +# end of Hardware I/O ports +# end of Input device support + +# +# Character devices +# +CONFIG_TTY=y +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_HW_CONSOLE=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=16 +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_NOZOMI is not set +# CONFIG_N_GSM is not set +# CONFIG_TRACE_SINK is not set +# CONFIG_NULL_TTY is not set +CONFIG_LDISC_AUTOLOAD=y +CONFIG_DEVMEM=y + +# +# Serial drivers +# +CONFIG_SERIAL_EARLYCON=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y +CONFIG_SERIAL_8250_PNP=y +# CONFIG_SERIAL_8250_FINTEK is not set +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_DMA=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_EXAR=y +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +CONFIG_SERIAL_8250_EXTENDED=y +# CONFIG_SERIAL_8250_MANY_PORTS is not set +# CONFIG_SERIAL_8250_ASPEED_VUART is not set +CONFIG_SERIAL_8250_SHARE_IRQ=y +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +# CONFIG_SERIAL_8250_RSA is not set +CONFIG_SERIAL_8250_DWLIB=y +CONFIG_SERIAL_8250_BCM2835AUX=y +CONFIG_SERIAL_8250_FSL=y +CONFIG_SERIAL_8250_DW=y +# CONFIG_SERIAL_8250_RT288X is not set +CONFIG_SERIAL_8250_MT6577=y +CONFIG_SERIAL_8250_UNIPHIER=y +CONFIG_SERIAL_OF_PLATFORM=y + +# +# Non-8250 serial port support +# +# CONFIG_SERIAL_AMBA_PL010 is not set +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +# CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST is not set +CONFIG_SERIAL_MESON=y +CONFIG_SERIAL_MESON_CONSOLE=y +CONFIG_SERIAL_SAMSUNG=y +CONFIG_SERIAL_SAMSUNG_UARTS_4=y +CONFIG_SERIAL_SAMSUNG_UARTS=4 +CONFIG_SERIAL_SAMSUNG_CONSOLE=y +CONFIG_SERIAL_TEGRA=y +# CONFIG_SERIAL_MAX3100 is not set +# CONFIG_SERIAL_MAX310X is not set +# CONFIG_SERIAL_UARTLITE is not set +CONFIG_SERIAL_SH_SCI=y +CONFIG_SERIAL_SH_SCI_NR_UARTS=18 +CONFIG_SERIAL_SH_SCI_CONSOLE=y +CONFIG_SERIAL_SH_SCI_EARLYCON=y +CONFIG_SERIAL_SH_SCI_DMA=y +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_JSM is not set +CONFIG_SERIAL_MSM=y +CONFIG_SERIAL_MSM_CONSOLE=y +# CONFIG_SERIAL_SIFIVE is not set +# CONFIG_SERIAL_SCCNXP is not set +# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_IFX6X60 is not set +CONFIG_SERIAL_XILINX_PS_UART=y +CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y +# CONFIG_SERIAL_ARC is not set +# CONFIG_SERIAL_RP2 is not set +CONFIG_SERIAL_FSL_LPUART=y +CONFIG_SERIAL_FSL_LPUART_CONSOLE=y +# CONFIG_SERIAL_FSL_LINFLEXUART is not set +# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set +# CONFIG_SERIAL_SPRD is not set +CONFIG_SERIAL_MVEBU_UART=y +CONFIG_SERIAL_MVEBU_CONSOLE=y +# end of Serial drivers + +CONFIG_SERIAL_MCTRL_GPIO=y +# CONFIG_SERIAL_DEV_BUS is not set +CONFIG_HVC_DRIVER=y +CONFIG_HVC_IRQ=y +CONFIG_HVC_XEN=y +CONFIG_HVC_XEN_FRONTEND=y +# CONFIG_HVC_DCC is not set +CONFIG_VIRTIO_CONSOLE=y +# CONFIG_IPMI_HANDLER is not set +# CONFIG_IPMB_DEVICE_INTERFACE is not set +CONFIG_HW_RANDOM=y +# CONFIG_HW_RANDOM_TIMERIOMEM is not set +CONFIG_HW_RANDOM_BCM2835=n +CONFIG_HW_RANDOM_IPROC_RNG200=n +CONFIG_HW_RANDOM_OMAP=y +CONFIG_HW_RANDOM_VIRTIO=y +CONFIG_HW_RANDOM_HISI=n +CONFIG_HW_RANDOM_XGENE=n +CONFIG_HW_RANDOM_MESON=n +CONFIG_HW_RANDOM_CAVIUM=n +CONFIG_HW_RANDOM_MTK=y +CONFIG_HW_RANDOM_EXYNOS=n +# CONFIG_APPLICOM is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_TCG_TPM is not set +CONFIG_DEVPORT=y +# CONFIG_XILLYBUS is not set +# end of Character devices + +# CONFIG_RANDOM_TRUST_BOOTLOADER is not set + +# +# I2C support +# +CONFIG_I2C=y +CONFIG_ACPI_I2C_OPREGION=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MUX=y + +# +# Multiplexer I2C Chip support +# +# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set +# CONFIG_I2C_MUX_GPIO is not set +# CONFIG_I2C_MUX_GPMUX is not set +# CONFIG_I2C_MUX_LTC4306 is not set +# CONFIG_I2C_MUX_PCA9541 is not set +CONFIG_I2C_MUX_PCA954x=y +# CONFIG_I2C_MUX_PINCTRL is not set +# CONFIG_I2C_MUX_REG is not set +# CONFIG_I2C_DEMUX_PINCTRL is not set +# CONFIG_I2C_MUX_MLXCPLD is not set +# end of Multiplexer I2C Chip support + +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_ALGOBIT=y + +# +# I2C Hardware Bus support +# + +# +# PC SMBus host controller drivers +# +# CONFIG_I2C_ALI1535 is not set +# CONFIG_I2C_ALI1563 is not set +# CONFIG_I2C_ALI15X3 is not set +# CONFIG_I2C_AMD756 is not set +# CONFIG_I2C_AMD8111 is not set +# CONFIG_I2C_AMD_MP2 is not set +# CONFIG_I2C_HIX5HD2 is not set +# CONFIG_I2C_I801 is not set +# CONFIG_I2C_ISCH is not set +# CONFIG_I2C_PIIX4 is not set +# CONFIG_I2C_NFORCE2 is not set +# CONFIG_I2C_NVIDIA_GPU is not set +# CONFIG_I2C_SIS5595 is not set +# CONFIG_I2C_SIS630 is not set +# CONFIG_I2C_SIS96X is not set +# CONFIG_I2C_VIA is not set +# CONFIG_I2C_VIAPRO is not set + +# +# ACPI drivers +# +# CONFIG_I2C_SCMI is not set + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +CONFIG_I2C_BCM2835=n +CONFIG_I2C_BCM_IPROC=y +# CONFIG_I2C_CADENCE is not set +# CONFIG_I2C_CBUS_GPIO is not set +CONFIG_I2C_DESIGNWARE_CORE=y +CONFIG_I2C_DESIGNWARE_PLATFORM=y +# CONFIG_I2C_DESIGNWARE_SLAVE is not set +# CONFIG_I2C_DESIGNWARE_PCI is not set +# CONFIG_I2C_EMEV2 is not set +CONFIG_I2C_EXYNOS5=y +# CONFIG_I2C_GPIO is not set +CONFIG_I2C_IMX=y +CONFIG_I2C_MESON=y +# CONFIG_I2C_MT65XX is not set +CONFIG_I2C_MV64XXX=y +# CONFIG_I2C_NOMADIK is not set +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_PCA_PLATFORM is not set +# CONFIG_I2C_PXA is not set +CONFIG_I2C_QUP=y +# CONFIG_I2C_RIIC is not set +CONFIG_I2C_RK3X=y +CONFIG_I2C_SH_MOBILE=y +# CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_SPRD is not set +CONFIG_I2C_TEGRA=y +# CONFIG_I2C_UNIPHIER is not set +CONFIG_I2C_UNIPHIER_F=y +CONFIG_I2C_VERSATILE=y +# CONFIG_I2C_THUNDERX is not set +# CONFIG_I2C_XILINX is not set +CONFIG_I2C_RCAR=y + +# +# External I2C/SMBus adapter drivers +# +# CONFIG_I2C_DIOLAN_U2C is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_ROBOTFUZZ_OSIF is not set +# CONFIG_I2C_TAOS_EVM is not set +# CONFIG_I2C_TINY_USB is not set + +# +# Other I2C/SMBus bus drivers +# +CONFIG_I2C_CROS_EC_TUNNEL=y +CONFIG_I2C_ZX2967=y +# end of I2C Hardware Bus support + +# CONFIG_I2C_STUB is not set +CONFIG_I2C_SLAVE=y +# CONFIG_I2C_SLAVE_EEPROM is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# end of I2C support + +# CONFIG_I3C is not set +CONFIG_SPI=y +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y +CONFIG_SPI_MEM=y + +# +# SPI Master Controller Drivers +# +# CONFIG_SPI_ALTERA is not set +# CONFIG_SPI_ARMADA_3700 is not set +# CONFIG_SPI_AXI_SPI_ENGINE is not set +CONFIG_SPI_BCM2835=n +CONFIG_SPI_BCM2835AUX=n +CONFIG_SPI_BCM_QSPI=y +# CONFIG_SPI_BITBANG is not set +# CONFIG_SPI_CADENCE is not set +# CONFIG_SPI_DESIGNWARE is not set +CONFIG_SPI_FSL_QUADSPI=y +# CONFIG_SPI_NXP_FLEXSPI is not set +# CONFIG_SPI_GPIO is not set +# CONFIG_SPI_FSL_SPI is not set +CONFIG_SPI_FSL_DSPI=y +# CONFIG_SPI_MESON_SPICC is not set +CONFIG_SPI_MESON_SPIFC=n +# CONFIG_SPI_MT65XX is not set +# CONFIG_SPI_OC_TINY is not set +CONFIG_SPI_ORION=y +CONFIG_SPI_PL022=y +# CONFIG_SPI_PXA2XX is not set +# CONFIG_SPI_ROCKCHIP is not set +# CONFIG_SPI_RSPI is not set +# CONFIG_SPI_QCOM_QSPI is not set +CONFIG_SPI_QUP=y +CONFIG_SPI_S3C64XX=y +# CONFIG_SPI_SC18IS602 is not set +# CONFIG_SPI_SH_MSIOF is not set +# CONFIG_SPI_SH_HSPI is not set +# CONFIG_SPI_SIFIVE is not set +# CONFIG_SPI_SPRD is not set +# CONFIG_SPI_SPRD_ADI is not set +# CONFIG_SPI_SUN4I is not set +# CONFIG_SPI_SUN6I is not set +# CONFIG_SPI_MXIC is not set +# CONFIG_SPI_TEGRA114 is not set +# CONFIG_SPI_TEGRA20_SFLASH is not set +# CONFIG_SPI_TEGRA20_SLINK is not set +# CONFIG_SPI_THUNDERX is not set +# CONFIG_SPI_UNIPHIER is not set +# CONFIG_SPI_XCOMM is not set +# CONFIG_SPI_XILINX is not set +# CONFIG_SPI_ZYNQMP_GQSPI is not set + +# +# SPI Protocol Masters +# +CONFIG_SPI_SPIDEV=n +# CONFIG_SPI_LOOPBACK_TEST is not set +# CONFIG_SPI_TLE62X0 is not set +# CONFIG_SPI_SLAVE is not set +CONFIG_SPI_DYNAMIC=y +CONFIG_SPMI=y +CONFIG_SPMI_MSM_PMIC_ARB=y +# CONFIG_HSI is not set +CONFIG_PPS=y +# CONFIG_PPS_DEBUG is not set + +# +# PPS clients support +# +# CONFIG_PPS_CLIENT_KTIMER is not set +# CONFIG_PPS_CLIENT_LDISC is not set +# CONFIG_PPS_CLIENT_GPIO is not set + +# +# PPS generators support +# + +# +# PTP clock support +# +CONFIG_PTP_1588_CLOCK=y +CONFIG_PTP_1588_CLOCK_DTE=y + +# +# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. +# +# end of PTP clock support + +CONFIG_PINCTRL=y +CONFIG_GENERIC_PINCTRL_GROUPS=y +CONFIG_PINMUX=y +CONFIG_GENERIC_PINMUX_FUNCTIONS=y +CONFIG_PINCONF=y +CONFIG_GENERIC_PINCONF=y +# CONFIG_DEBUG_PINCTRL is not set +# CONFIG_PINCTRL_AMD is not set +# CONFIG_PINCTRL_MCP23S08 is not set +CONFIG_PINCTRL_ROCKCHIP=y +CONFIG_PINCTRL_SINGLE=y +# CONFIG_PINCTRL_SX150X is not set +# CONFIG_PINCTRL_STMFX is not set +CONFIG_PINCTRL_MAX77620=y +# CONFIG_PINCTRL_RK805 is not set +# CONFIG_PINCTRL_OCELOT is not set +CONFIG_PINCTRL_BCM2835=y +CONFIG_PINCTRL_IPROC_GPIO=y +CONFIG_PINCTRL_NS2_MUX=y +# CONFIG_PINCTRL_AS370 is not set +# CONFIG_PINCTRL_BERLIN_BG4CT is not set +CONFIG_PINCTRL_MVEBU=y +CONFIG_PINCTRL_ARMADA_AP806=y +CONFIG_PINCTRL_ARMADA_CP110=y +CONFIG_PINCTRL_ARMADA_37XX=y +CONFIG_PINCTRL_MSM=y +# CONFIG_PINCTRL_APQ8064 is not set +# CONFIG_PINCTRL_APQ8084 is not set +# CONFIG_PINCTRL_IPQ4019 is not set +# CONFIG_PINCTRL_IPQ8064 is not set +# CONFIG_PINCTRL_IPQ8074 is not set +# CONFIG_PINCTRL_MSM8660 is not set +# CONFIG_PINCTRL_MSM8960 is not set +# CONFIG_PINCTRL_MDM9615 is not set +# CONFIG_PINCTRL_MSM8X74 is not set +CONFIG_PINCTRL_MSM8916=y +# CONFIG_PINCTRL_MSM8994 is not set +CONFIG_PINCTRL_MSM8996=y +# CONFIG_PINCTRL_MSM8998 is not set +# CONFIG_PINCTRL_QCS404 is not set +CONFIG_PINCTRL_QDF2XXX=y +CONFIG_PINCTRL_QCOM_SPMI_PMIC=y +# CONFIG_PINCTRL_QCOM_SSBI_PMIC is not set +# CONFIG_PINCTRL_SC7180 is not set +# CONFIG_PINCTRL_SDM660 is not set +# CONFIG_PINCTRL_SDM845 is not set +# CONFIG_PINCTRL_SM8150 is not set +CONFIG_PINCTRL_SAMSUNG=y +CONFIG_PINCTRL_EXYNOS=y +CONFIG_PINCTRL_EXYNOS_ARM64=y +CONFIG_PINCTRL_SH_PFC=y +CONFIG_PINCTRL_PFC_R8A7795=y +CONFIG_PINCTRL_PFC_R8A7796=y +# CONFIG_PINCTRL_SPRD is not set +CONFIG_PINCTRL_SUNXI=y +# CONFIG_PINCTRL_SUN4I_A10 is not set +# CONFIG_PINCTRL_SUN5I is not set +# CONFIG_PINCTRL_SUN6I_A31 is not set +# CONFIG_PINCTRL_SUN6I_A31_R is not set +# CONFIG_PINCTRL_SUN8I_A23 is not set +# CONFIG_PINCTRL_SUN8I_A33 is not set +# CONFIG_PINCTRL_SUN8I_A83T is not set +# CONFIG_PINCTRL_SUN8I_A83T_R is not set +# CONFIG_PINCTRL_SUN8I_A23_R is not set +# CONFIG_PINCTRL_SUN8I_H3 is not set +# CONFIG_PINCTRL_SUN8I_H3_R is not set +# CONFIG_PINCTRL_SUN8I_V3S is not set +# CONFIG_PINCTRL_SUN9I_A80 is not set +# CONFIG_PINCTRL_SUN9I_A80_R is not set +CONFIG_PINCTRL_SUN50I_A64=y +CONFIG_PINCTRL_SUN50I_A64_R=y +CONFIG_PINCTRL_SUN50I_H5=y +CONFIG_PINCTRL_SUN50I_H6=y +CONFIG_PINCTRL_SUN50I_H6_R=y +CONFIG_PINCTRL_TEGRA=y +CONFIG_PINCTRL_TEGRA124=y +CONFIG_PINCTRL_TEGRA210=y +CONFIG_PINCTRL_TEGRA_XUSB=y +CONFIG_PINCTRL_UNIPHIER=y +# CONFIG_PINCTRL_UNIPHIER_LD4 is not set +# CONFIG_PINCTRL_UNIPHIER_PRO4 is not set +# CONFIG_PINCTRL_UNIPHIER_SLD8 is not set +# CONFIG_PINCTRL_UNIPHIER_PRO5 is not set +# CONFIG_PINCTRL_UNIPHIER_PXS2 is not set +# CONFIG_PINCTRL_UNIPHIER_LD6B is not set +CONFIG_PINCTRL_UNIPHIER_LD11=y +CONFIG_PINCTRL_UNIPHIER_LD20=y +CONFIG_PINCTRL_UNIPHIER_PXS3=y + +# +# MediaTek pinctrl drivers +# +CONFIG_EINT_MTK=y +CONFIG_PINCTRL_MTK=y +CONFIG_PINCTRL_MTK_MOORE=y +CONFIG_PINCTRL_MTK_PARIS=y +CONFIG_PINCTRL_MT2712=y +CONFIG_PINCTRL_MT6765=y +CONFIG_PINCTRL_MT6797=y +CONFIG_PINCTRL_MT7622=y +CONFIG_PINCTRL_MT8173=y +CONFIG_PINCTRL_MT8183=y +CONFIG_PINCTRL_MT8516=y +# end of MediaTek pinctrl drivers + +# CONFIG_PINCTRL_ZX296718 is not set +CONFIG_PINCTRL_MESON=y +CONFIG_PINCTRL_MESON_GXBB=y +CONFIG_PINCTRL_MESON_GXL=y +CONFIG_PINCTRL_MESON8_PMX=y +CONFIG_PINCTRL_MESON_AXG=y +CONFIG_PINCTRL_MESON_AXG_PMX=y +CONFIG_PINCTRL_MESON_G12A=y +CONFIG_GPIOLIB=y +CONFIG_GPIOLIB_FASTPATH_LIMIT=512 +CONFIG_OF_GPIO=y +CONFIG_GPIO_ACPI=y +CONFIG_GPIOLIB_IRQCHIP=y +# CONFIG_DEBUG_GPIO is not set +CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_GENERIC=y + +# +# Memory mapped GPIO drivers +# +# CONFIG_GPIO_74XX_MMIO is not set +# CONFIG_GPIO_ALTERA is not set +# CONFIG_GPIO_AMDPT is not set +# CONFIG_GPIO_CADENCE is not set +CONFIG_GPIO_DWAPB=y +# CONFIG_GPIO_EIC_SPRD is not set +# CONFIG_GPIO_EXAR is not set +# CONFIG_GPIO_FTGPIO010 is not set +CONFIG_GPIO_GENERIC_PLATFORM=y +# CONFIG_GPIO_GRGPIO is not set +# CONFIG_GPIO_HLWD is not set +# CONFIG_GPIO_MB86S7X is not set +CONFIG_GPIO_MPC8XXX=y +CONFIG_GPIO_MVEBU=y +CONFIG_GPIO_PL061=y +CONFIG_GPIO_RCAR=y +# CONFIG_GPIO_SAMA5D2_PIOBU is not set +# CONFIG_GPIO_SPRD is not set +# CONFIG_GPIO_SYSCON is not set +CONFIG_GPIO_TEGRA=y +# CONFIG_GPIO_THUNDERX is not set +# CONFIG_GPIO_UNIPHIER is not set +CONFIG_GPIO_XGENE=y +CONFIG_GPIO_XGENE_SB=y +# CONFIG_GPIO_XILINX is not set +# CONFIG_GPIO_ZYNQ is not set +# CONFIG_GPIO_ZX is not set +# CONFIG_GPIO_AMD_FCH is not set +# end of Memory mapped GPIO drivers + +# +# I2C GPIO expanders +# +# CONFIG_GPIO_ADP5588 is not set +# CONFIG_GPIO_ADNP is not set +# CONFIG_GPIO_GW_PLD is not set +# CONFIG_GPIO_MAX7300 is not set +# CONFIG_GPIO_MAX732X is not set +CONFIG_GPIO_PCA953X=y +CONFIG_GPIO_PCA953X_IRQ=y +# CONFIG_GPIO_PCF857X is not set +# CONFIG_GPIO_TPIC2810 is not set +# end of I2C GPIO expanders + +# +# MFD GPIO expanders +# +CONFIG_GPIO_MAX77620=y +# end of MFD GPIO expanders + +# +# PCI GPIO expanders +# +# CONFIG_GPIO_BT8XX is not set +# CONFIG_GPIO_PCI_IDIO_16 is not set +# CONFIG_GPIO_PCIE_IDIO_24 is not set +# CONFIG_GPIO_RDC321X is not set +# end of PCI GPIO expanders + +# +# SPI GPIO expanders +# +# CONFIG_GPIO_74X164 is not set +# CONFIG_GPIO_MAX3191X is not set +# CONFIG_GPIO_MAX7301 is not set +# CONFIG_GPIO_MC33880 is not set +# CONFIG_GPIO_PISOSR is not set +# CONFIG_GPIO_XRA1403 is not set +# end of SPI GPIO expanders + +# +# USB GPIO expanders +# +# end of USB GPIO expanders + +# CONFIG_GPIO_MOCKUP is not set +# CONFIG_W1 is not set +CONFIG_POWER_AVS=y +CONFIG_ROCKCHIP_IODOMAIN=y +CONFIG_POWER_RESET=y +# CONFIG_POWER_RESET_BRCMSTB is not set +# CONFIG_POWER_RESET_GPIO is not set +# CONFIG_POWER_RESET_GPIO_RESTART is not set +# CONFIG_POWER_RESET_HISI is not set +CONFIG_POWER_RESET_MSM=y +# CONFIG_POWER_RESET_QCOM_PON is not set +# CONFIG_POWER_RESET_LTC2952 is not set +# CONFIG_POWER_RESET_RESTART is not set +CONFIG_POWER_RESET_VEXPRESS=y +CONFIG_POWER_RESET_XGENE=y +CONFIG_POWER_RESET_SYSCON=y +# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set +# CONFIG_POWER_RESET_ZX is not set +# CONFIG_SYSCON_REBOOT_MODE is not set +# CONFIG_NVMEM_REBOOT_MODE is not set +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +CONFIG_POWER_SUPPLY_HWMON=y +# CONFIG_PDA_POWER is not set +# CONFIG_GENERIC_ADC_BATTERY is not set +# CONFIG_TEST_POWER is not set +# CONFIG_CHARGER_ADP5061 is not set +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2781 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_LEGO_EV3 is not set +# CONFIG_BATTERY_SBS is not set +# CONFIG_CHARGER_SBS is not set +# CONFIG_MANAGER_SBS is not set +CONFIG_BATTERY_BQ27XXX=y +CONFIG_BATTERY_BQ27XXX_I2C=y +# CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +# CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_LP8727 is not set +# CONFIG_CHARGER_GPIO is not set +# CONFIG_CHARGER_MANAGER is not set +# CONFIG_CHARGER_LT3651 is not set +# CONFIG_CHARGER_DETECTOR_MAX14656 is not set +# CONFIG_CHARGER_QCOM_SMBB is not set +# CONFIG_CHARGER_BQ2415X is not set +# CONFIG_CHARGER_BQ24190 is not set +# CONFIG_CHARGER_BQ24257 is not set +# CONFIG_CHARGER_BQ24735 is not set +# CONFIG_CHARGER_BQ25890 is not set +# CONFIG_CHARGER_SMB347 is not set +# CONFIG_BATTERY_GAUGE_LTC2941 is not set +# CONFIG_CHARGER_RT9455 is not set +# CONFIG_CHARGER_CROS_USBPD is not set +# CONFIG_CHARGER_UCS1002 is not set +CONFIG_HWMON=y +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Native drivers +# +# CONFIG_SENSORS_AD7314 is not set +# CONFIG_SENSORS_AD7414 is not set +# CONFIG_SENSORS_AD7418 is not set +# CONFIG_SENSORS_ADM1021 is not set +# CONFIG_SENSORS_ADM1025 is not set +# CONFIG_SENSORS_ADM1026 is not set +# CONFIG_SENSORS_ADM1029 is not set +# CONFIG_SENSORS_ADM1031 is not set +# CONFIG_SENSORS_ADM9240 is not set +# CONFIG_SENSORS_ADT7310 is not set +# CONFIG_SENSORS_ADT7410 is not set +# CONFIG_SENSORS_ADT7411 is not set +# CONFIG_SENSORS_ADT7462 is not set +# CONFIG_SENSORS_ADT7470 is not set +# CONFIG_SENSORS_ADT7475 is not set +# CONFIG_SENSORS_AS370 is not set +# CONFIG_SENSORS_ASC7621 is not set +# CONFIG_SENSORS_ASPEED is not set +# CONFIG_SENSORS_ATXP1 is not set +# CONFIG_SENSORS_DS620 is not set +# CONFIG_SENSORS_DS1621 is not set +# CONFIG_SENSORS_I5K_AMB is not set +# CONFIG_SENSORS_F71805F is not set +# CONFIG_SENSORS_F71882FG is not set +# CONFIG_SENSORS_F75375S is not set +# CONFIG_SENSORS_FTSTEUTATES is not set +# CONFIG_SENSORS_GL518SM is not set +# CONFIG_SENSORS_GL520SM is not set +# CONFIG_SENSORS_G760A is not set +# CONFIG_SENSORS_G762 is not set +# CONFIG_SENSORS_GPIO_FAN is not set +# CONFIG_SENSORS_HIH6130 is not set +# CONFIG_SENSORS_IIO_HWMON is not set +# CONFIG_SENSORS_IT87 is not set +# CONFIG_SENSORS_JC42 is not set +# CONFIG_SENSORS_POWR1220 is not set +# CONFIG_SENSORS_LINEAGE is not set +# CONFIG_SENSORS_LTC2945 is not set +# CONFIG_SENSORS_LTC2990 is not set +# CONFIG_SENSORS_LTC4151 is not set +# CONFIG_SENSORS_LTC4215 is not set +# CONFIG_SENSORS_LTC4222 is not set +# CONFIG_SENSORS_LTC4245 is not set +# CONFIG_SENSORS_LTC4260 is not set +# CONFIG_SENSORS_LTC4261 is not set +# CONFIG_SENSORS_MAX1111 is not set +# CONFIG_SENSORS_MAX16065 is not set +# CONFIG_SENSORS_MAX1619 is not set +# CONFIG_SENSORS_MAX1668 is not set +# CONFIG_SENSORS_MAX197 is not set +# CONFIG_SENSORS_MAX31722 is not set +# CONFIG_SENSORS_MAX6621 is not set +# CONFIG_SENSORS_MAX6639 is not set +# CONFIG_SENSORS_MAX6642 is not set +# CONFIG_SENSORS_MAX6650 is not set +# CONFIG_SENSORS_MAX6697 is not set +# CONFIG_SENSORS_MAX31790 is not set +# CONFIG_SENSORS_MCP3021 is not set +# CONFIG_SENSORS_TC654 is not set +# CONFIG_SENSORS_ADCXX is not set +# CONFIG_SENSORS_LM63 is not set +# CONFIG_SENSORS_LM70 is not set +# CONFIG_SENSORS_LM73 is not set +# CONFIG_SENSORS_LM75 is not set +# CONFIG_SENSORS_LM77 is not set +# CONFIG_SENSORS_LM78 is not set +# CONFIG_SENSORS_LM80 is not set +# CONFIG_SENSORS_LM83 is not set +# CONFIG_SENSORS_LM85 is not set +# CONFIG_SENSORS_LM87 is not set +CONFIG_SENSORS_LM90=n +# CONFIG_SENSORS_LM92 is not set +# CONFIG_SENSORS_LM93 is not set +# CONFIG_SENSORS_LM95234 is not set +# CONFIG_SENSORS_LM95241 is not set +# CONFIG_SENSORS_LM95245 is not set +# CONFIG_SENSORS_PC87360 is not set +# CONFIG_SENSORS_PC87427 is not set +# CONFIG_SENSORS_NTC_THERMISTOR is not set +# CONFIG_SENSORS_NCT6683 is not set +# CONFIG_SENSORS_NCT6775 is not set +# CONFIG_SENSORS_NCT7802 is not set +# CONFIG_SENSORS_NCT7904 is not set +# CONFIG_SENSORS_NPCM7XX is not set +# CONFIG_SENSORS_OCC_P8_I2C is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_PMBUS is not set +# CONFIG_SENSORS_PWM_FAN is not set +# CONFIG_SENSORS_SHT15 is not set +# CONFIG_SENSORS_SHT21 is not set +# CONFIG_SENSORS_SHT3x is not set +# CONFIG_SENSORS_SHTC1 is not set +# CONFIG_SENSORS_SIS5595 is not set +# CONFIG_SENSORS_DME1737 is not set +# CONFIG_SENSORS_EMC1403 is not set +# CONFIG_SENSORS_EMC2103 is not set +# CONFIG_SENSORS_EMC6W201 is not set +# CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_SMSC47M192 is not set +# CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_SCH5627 is not set +# CONFIG_SENSORS_SCH5636 is not set +# CONFIG_SENSORS_STTS751 is not set +# CONFIG_SENSORS_SMM665 is not set +# CONFIG_SENSORS_ADC128D818 is not set +# CONFIG_SENSORS_ADS7828 is not set +# CONFIG_SENSORS_ADS7871 is not set +# CONFIG_SENSORS_AMC6821 is not set +# CONFIG_SENSORS_INA209 is not set +CONFIG_SENSORS_INA2XX=n +# CONFIG_SENSORS_INA3221 is not set +# CONFIG_SENSORS_TC74 is not set +# CONFIG_SENSORS_THMC50 is not set +# CONFIG_SENSORS_TMP102 is not set +# CONFIG_SENSORS_TMP103 is not set +# CONFIG_SENSORS_TMP108 is not set +# CONFIG_SENSORS_TMP401 is not set +# CONFIG_SENSORS_TMP421 is not set +CONFIG_SENSORS_VEXPRESS=y +# CONFIG_SENSORS_VIA686A is not set +# CONFIG_SENSORS_VT1211 is not set +# CONFIG_SENSORS_VT8231 is not set +# CONFIG_SENSORS_W83773G is not set +# CONFIG_SENSORS_W83781D is not set +# CONFIG_SENSORS_W83791D is not set +# CONFIG_SENSORS_W83792D is not set +# CONFIG_SENSORS_W83793 is not set +# CONFIG_SENSORS_W83795 is not set +# CONFIG_SENSORS_W83L785TS is not set +# CONFIG_SENSORS_W83L786NG is not set +# CONFIG_SENSORS_W83627HF is not set +# CONFIG_SENSORS_W83627EHF is not set + +# +# ACPI drivers +# +# CONFIG_SENSORS_ACPI_POWER is not set +CONFIG_THERMAL=y +# CONFIG_THERMAL_STATISTICS is not set +CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 +CONFIG_THERMAL_HWMON=y +CONFIG_THERMAL_OF=y +# CONFIG_THERMAL_WRITABLE_TRIPS is not set +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set +# CONFIG_THERMAL_GOV_FAIR_SHARE is not set +CONFIG_THERMAL_GOV_STEP_WISE=y +# CONFIG_THERMAL_GOV_BANG_BANG is not set +# CONFIG_THERMAL_GOV_USER_SPACE is not set +CONFIG_THERMAL_GOV_POWER_ALLOCATOR=y +CONFIG_CPU_THERMAL=y +# CONFIG_CLOCK_THERMAL is not set +CONFIG_THERMAL_EMULATION=y +# CONFIG_THERMAL_MMIO is not set +# CONFIG_HISI_THERMAL is not set +# CONFIG_MAX77620_THERMAL is not set +# CONFIG_QORIQ_THERMAL is not set +# CONFIG_ROCKCHIP_THERMAL is not set +# CONFIG_RCAR_THERMAL is not set +# CONFIG_RCAR_GEN3_THERMAL is not set +# CONFIG_ARMADA_THERMAL is not set +CONFIG_MTK_THERMAL=n + +# +# Broadcom thermal drivers +# +# CONFIG_BCM2835_THERMAL is not set +CONFIG_BCM_NS_THERMAL=y +CONFIG_BCM_SR_THERMAL=y +# end of Broadcom thermal drivers + +# +# Samsung thermal drivers +# +CONFIG_EXYNOS_THERMAL=y +# end of Samsung thermal drivers + +# +# NVIDIA Tegra thermal drivers +# +# CONFIG_TEGRA_SOCTHERM is not set +# end of NVIDIA Tegra thermal drivers + +# CONFIG_GENERIC_ADC_THERMAL is not set + +# +# Qualcomm thermal drivers +# +# CONFIG_QCOM_SPMI_TEMP_ALARM is not set +# end of Qualcomm thermal drivers + +# CONFIG_ZX2967_THERMAL is not set +# CONFIG_UNIPHIER_THERMAL is not set +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y +# CONFIG_WATCHDOG_NOWAYOUT is not set +CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y +CONFIG_WATCHDOG_OPEN_TIMEOUT=0 +# CONFIG_WATCHDOG_SYSFS is not set + +# +# Watchdog Pretimeout Governors +# +# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set + +# +# Watchdog Device Drivers +# +# CONFIG_SOFT_WATCHDOG is not set +# CONFIG_GPIO_WATCHDOG is not set +# CONFIG_WDAT_WDT is not set +# CONFIG_XILINX_WATCHDOG is not set +# CONFIG_ZIIRAVE_WATCHDOG is not set +CONFIG_ARM_SP805_WATCHDOG=y +# CONFIG_ARM_SBSA_WATCHDOG is not set +# CONFIG_ARMADA_37XX_WATCHDOG is not set +# CONFIG_CADENCE_WATCHDOG is not set +CONFIG_HAVE_S3C2410_WATCHDOG=y +CONFIG_S3C2410_WATCHDOG=y +# CONFIG_DW_WATCHDOG is not set +# CONFIG_SUNXI_WATCHDOG is not set +# CONFIG_MAX63XX_WATCHDOG is not set +# CONFIG_MAX77620_WATCHDOG is not set +CONFIG_IMX2_WDT=y +# CONFIG_TEGRA_WATCHDOG is not set +# CONFIG_QCOM_WDT is not set +CONFIG_MESON_GXBB_WATCHDOG=n +CONFIG_MESON_WATCHDOG=n +# CONFIG_MEDIATEK_WATCHDOG is not set +CONFIG_RENESAS_WDT=y +# CONFIG_RENESAS_RZAWDT is not set +# CONFIG_ZX2967_WATCHDOG is not set +# CONFIG_UNIPHIER_WATCHDOG is not set +# CONFIG_SPRD_WATCHDOG is not set +# CONFIG_PM8916_WATCHDOG is not set +# CONFIG_ALIM7101_WDT is not set +# CONFIG_I6300ESB_WDT is not set +CONFIG_BCM2835_WDT=y +# CONFIG_MEN_A21_WDT is not set +# CONFIG_XEN_WDT is not set + +# +# PCI-based Watchdog Cards +# +# CONFIG_PCIPCWATCHDOG is not set +# CONFIG_WDTPCI is not set + +# +# USB-based Watchdog Cards +# +# CONFIG_USBPCWATCHDOG is not set +CONFIG_SSB_POSSIBLE=y +# CONFIG_SSB is not set +CONFIG_BCMA_POSSIBLE=y +# CONFIG_BCMA is not set + +# +# Multifunction device drivers +# +CONFIG_MFD_CORE=y +# CONFIG_MFD_ALTERA_SYSMGR is not set +# CONFIG_MFD_ACT8945A is not set +# CONFIG_MFD_SUN4I_GPADC is not set +# CONFIG_MFD_AS3711 is not set +# CONFIG_MFD_AS3722 is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_AAT2870_CORE is not set +# CONFIG_MFD_ATMEL_FLEXCOM is not set +# CONFIG_MFD_ATMEL_HLCDC is not set +# CONFIG_MFD_BCM590XX is not set +# CONFIG_MFD_BD9571MWV is not set +# CONFIG_MFD_AXP20X_I2C is not set +CONFIG_MFD_CROS_EC_DEV=y +# CONFIG_MFD_MADERA is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_MFD_DA9052_SPI is not set +# CONFIG_MFD_DA9052_I2C is not set +# CONFIG_MFD_DA9055 is not set +# CONFIG_MFD_DA9062 is not set +# CONFIG_MFD_DA9063 is not set +# CONFIG_MFD_DA9150 is not set +# CONFIG_MFD_DLN2 is not set +CONFIG_MFD_EXYNOS_LPASS=n +# CONFIG_MFD_MC13XXX_SPI is not set +# CONFIG_MFD_MC13XXX_I2C is not set +# CONFIG_MFD_HI6421_PMIC is not set +CONFIG_MFD_HI655X_PMIC=y +# CONFIG_HTC_PASIC3 is not set +# CONFIG_HTC_I2CPLD is not set +# CONFIG_LPC_ICH is not set +# CONFIG_LPC_SCH is not set +# CONFIG_MFD_JANZ_CMODIO is not set +# CONFIG_MFD_KEMPLD is not set +# CONFIG_MFD_88PM800 is not set +# CONFIG_MFD_88PM805 is not set +# CONFIG_MFD_88PM860X is not set +# CONFIG_MFD_MAX14577 is not set +CONFIG_MFD_MAX77620=y +# CONFIG_MFD_MAX77650 is not set +# CONFIG_MFD_MAX77686 is not set +# CONFIG_MFD_MAX77693 is not set +# CONFIG_MFD_MAX77843 is not set +# CONFIG_MFD_MAX8907 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +# CONFIG_MFD_MT6397 is not set +# CONFIG_MFD_MENF21BMC is not set +# CONFIG_EZX_PCAP is not set +# CONFIG_MFD_CPCAP is not set +# CONFIG_MFD_VIPERBOARD is not set +# CONFIG_MFD_RETU is not set +# CONFIG_MFD_PCF50633 is not set +# CONFIG_MFD_QCOM_RPM is not set +CONFIG_MFD_SPMI_PMIC=y +# CONFIG_MFD_RDC321X is not set +# CONFIG_MFD_RT5033 is not set +# CONFIG_MFD_RC5T583 is not set +CONFIG_MFD_RK808=y +# CONFIG_MFD_RN5T618 is not set +CONFIG_MFD_SEC_CORE=y +# CONFIG_MFD_SI476X_CORE is not set +# CONFIG_MFD_SM501 is not set +# CONFIG_MFD_SKY81452 is not set +# CONFIG_MFD_SMSC is not set +# CONFIG_MFD_SC27XX_PMIC is not set +# CONFIG_ABX500_CORE is not set +# CONFIG_MFD_STMPE is not set +CONFIG_MFD_SUN6I_PRCM=y +CONFIG_MFD_SYSCON=y +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MFD_LP3943 is not set +# CONFIG_MFD_LP8788 is not set +# CONFIG_MFD_TI_LMU is not set +# CONFIG_MFD_PALMAS is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS65010 is not set +# CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS65086 is not set +# CONFIG_MFD_TPS65090 is not set +# CONFIG_MFD_TPS65217 is not set +# CONFIG_MFD_TPS68470 is not set +# CONFIG_MFD_TI_LP873X is not set +# CONFIG_MFD_TI_LP87565 is not set +# CONFIG_MFD_TPS65218 is not set +# CONFIG_MFD_TPS6586X is not set +# CONFIG_MFD_TPS65910 is not set +# CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_MFD_TPS65912_SPI is not set +# CONFIG_MFD_TPS80031 is not set +# CONFIG_TWL4030_CORE is not set +# CONFIG_TWL6040_CORE is not set +# CONFIG_MFD_WL1273_CORE is not set +# CONFIG_MFD_LM3533 is not set +# CONFIG_MFD_TC3589X is not set +# CONFIG_MFD_TQMX86 is not set +# CONFIG_MFD_VX855 is not set +# CONFIG_MFD_LOCHNAGAR is not set +# CONFIG_MFD_ARIZONA_I2C is not set +# CONFIG_MFD_ARIZONA_SPI is not set +# CONFIG_MFD_WM8400 is not set +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM831X_SPI is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set +# CONFIG_MFD_ROHM_BD718XX is not set +# CONFIG_MFD_ROHM_BD70528 is not set +# CONFIG_MFD_STPMIC1 is not set +# CONFIG_MFD_STMFX is not set +CONFIG_MFD_VEXPRESS_SYSREG=y +# end of Multifunction device drivers + +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +CONFIG_REGULATOR_FIXED_VOLTAGE=y +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +# CONFIG_REGULATOR_88PG86X is not set +# CONFIG_REGULATOR_ACT8865 is not set +# CONFIG_REGULATOR_AD5398 is not set +# CONFIG_REGULATOR_ANATOP is not set +# CONFIG_REGULATOR_DA9210 is not set +# CONFIG_REGULATOR_DA9211 is not set +# CONFIG_REGULATOR_FAN53555 is not set +CONFIG_REGULATOR_GPIO=y +CONFIG_REGULATOR_HI655X=y +# CONFIG_REGULATOR_ISL9305 is not set +# CONFIG_REGULATOR_ISL6271A is not set +# CONFIG_REGULATOR_LP3971 is not set +# CONFIG_REGULATOR_LP3972 is not set +# CONFIG_REGULATOR_LP872X is not set +# CONFIG_REGULATOR_LP8755 is not set +# CONFIG_REGULATOR_LTC3589 is not set +# CONFIG_REGULATOR_LTC3676 is not set +# CONFIG_REGULATOR_MAX1586 is not set +CONFIG_REGULATOR_MAX77620=y +# CONFIG_REGULATOR_MAX8649 is not set +# CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_MAX8952 is not set +# CONFIG_REGULATOR_MAX8973 is not set +# CONFIG_REGULATOR_MCP16502 is not set +# CONFIG_REGULATOR_MT6311 is not set +# CONFIG_REGULATOR_PFUZE100 is not set +# CONFIG_REGULATOR_PV88060 is not set +# CONFIG_REGULATOR_PV88080 is not set +# CONFIG_REGULATOR_PV88090 is not set +CONFIG_REGULATOR_PWM=y +CONFIG_REGULATOR_QCOM_SPMI=y +CONFIG_REGULATOR_RK808=y +# CONFIG_REGULATOR_S2MPA01 is not set +CONFIG_REGULATOR_S2MPS11=y +# CONFIG_REGULATOR_S5M8767 is not set +# CONFIG_REGULATOR_SLG51000 is not set +# CONFIG_REGULATOR_SY8106A is not set +# CONFIG_REGULATOR_SY8824X is not set +# CONFIG_REGULATOR_TPS51632 is not set +# CONFIG_REGULATOR_TPS62360 is not set +# CONFIG_REGULATOR_TPS65023 is not set +# CONFIG_REGULATOR_TPS6507X is not set +# CONFIG_REGULATOR_TPS65132 is not set +# CONFIG_REGULATOR_TPS6524X is not set +CONFIG_REGULATOR_UNIPHIER=y +# CONFIG_REGULATOR_VCTRL is not set +# CONFIG_REGULATOR_VEXPRESS is not set +CONFIG_CEC_CORE=n +# CONFIG_RC_CORE is not set +CONFIG_MEDIA_SUPPORT=n + +# +# Multimedia core support +# +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +# CONFIG_MEDIA_RADIO_SUPPORT is not set +# CONFIG_MEDIA_SDR_SUPPORT is not set +# CONFIG_MEDIA_CEC_SUPPORT is not set +CONFIG_MEDIA_CONTROLLER=y +# CONFIG_MEDIA_CONTROLLER_DVB is not set +CONFIG_VIDEO_DEV=n +CONFIG_VIDEO_V4L2_SUBDEV_API=y +CONFIG_VIDEO_V4L2=n +CONFIG_VIDEO_V4L2_I2C=y +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +CONFIG_V4L2_MEM2MEM_DEV=n +CONFIG_DVB_CORE=n +# CONFIG_DVB_MMAP is not set +# CONFIG_DVB_NET is not set +CONFIG_DVB_MAX_ADAPTERS=8 +# CONFIG_DVB_DYNAMIC_MINORS is not set +# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set +# CONFIG_DVB_ULE_DEBUG is not set + +# +# Media drivers +# +# CONFIG_MEDIA_USB_SUPPORT is not set +# CONFIG_MEDIA_PCI_SUPPORT is not set +# CONFIG_V4L_PLATFORM_DRIVERS is not set +CONFIG_V4L_MEM2MEM_DRIVERS=y +# CONFIG_VIDEO_MEDIATEK_VPU is not set +# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set +# CONFIG_VIDEO_SAMSUNG_S5P_G2D is not set +CONFIG_VIDEO_SAMSUNG_S5P_JPEG=n +CONFIG_VIDEO_SAMSUNG_S5P_MFC=n +# CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC is not set +# CONFIG_VIDEO_SH_VEU is not set +# CONFIG_VIDEO_RENESAS_FDP1 is not set +# CONFIG_VIDEO_RENESAS_JPU is not set +CONFIG_VIDEO_RENESAS_FCP=n +CONFIG_VIDEO_RENESAS_VSP1=n +# CONFIG_VIDEO_ROCKCHIP_RGA is not set +# CONFIG_VIDEO_QCOM_VENUS is not set +# CONFIG_V4L_TEST_DRIVERS is not set +# CONFIG_DVB_PLATFORM_DRIVERS is not set + +# +# Supported MMC/SDIO adapters +# +# CONFIG_SMS_SDIO_DRV is not set +# CONFIG_CYPRESS_FIRMWARE is not set +CONFIG_VIDEOBUF2_CORE=n +CONFIG_VIDEOBUF2_V4L2=n +CONFIG_VIDEOBUF2_MEMOPS=n +CONFIG_VIDEOBUF2_DMA_CONTIG=n +CONFIG_VIDEOBUF2_VMALLOC=n + +# +# Media ancillary drivers (tuners, sensors, i2c, spi, frontends) +# +CONFIG_MEDIA_SUBDRV_AUTOSELECT=y +CONFIG_MEDIA_HIDE_ANCILLARY_SUBDRV=y +CONFIG_MEDIA_ATTACH=y + +# +# I2C drivers hidden by 'Autoselect ancillary drivers' +# + +# +# Audio decoders, processors and mixers +# + +# +# RDS decoders +# + +# +# Video decoders +# + +# +# Video and audio decoders +# + +# +# Video encoders +# + +# +# Camera sensor devices +# + +# +# Lens drivers +# + +# +# Flash devices +# + +# +# Video improvement chips +# + +# +# Audio/Video compression chips +# + +# +# SDR tuner chips +# + +# +# Miscellaneous helper chips +# + +# +# SPI drivers hidden by 'Autoselect ancillary drivers' +# + +# +# Media SPI Adapters +# +# CONFIG_CXD2880_SPI_DRV is not set +# end of Media SPI Adapters + +CONFIG_MEDIA_TUNER=n + +# +# Tuner drivers hidden by 'Autoselect ancillary drivers' +# +CONFIG_MEDIA_TUNER_SIMPLE=n +CONFIG_MEDIA_TUNER_TDA8290=n +CONFIG_MEDIA_TUNER_TDA827X=n +CONFIG_MEDIA_TUNER_TDA18271=n +CONFIG_MEDIA_TUNER_TDA9887=n +CONFIG_MEDIA_TUNER_MT20XX=n +CONFIG_MEDIA_TUNER_XC2028=n +CONFIG_MEDIA_TUNER_XC5000=n +CONFIG_MEDIA_TUNER_XC4000=n +CONFIG_MEDIA_TUNER_MC44S803=n + +# +# DVB Frontend drivers hidden by 'Autoselect ancillary drivers' +# + +# +# Multistandard (satellite) frontends +# + +# +# Multistandard (cable + terrestrial) frontends +# + +# +# DVB-S (satellite) frontends +# + +# +# DVB-T (terrestrial) frontends +# + +# +# DVB-C (cable) frontends +# + +# +# ATSC (North American/Korean Terrestrial/Cable DTV) frontends +# + +# +# ISDB-T (terrestrial) frontends +# + +# +# ISDB-S (satellite) & ISDB-T (terrestrial) frontends +# + +# +# Digital terrestrial only tuners/PLL +# + +# +# SEC control devices for DVB-S +# + +# +# Common Interface (EN50221) controller drivers +# + +# +# Tools to develop new frontends +# + +# +# Graphics support +# +CONFIG_VGA_ARB=y +CONFIG_VGA_ARB_MAX_GPUS=16 +CONFIG_TEGRA_HOST1X=n +CONFIG_TEGRA_HOST1X_FIREWALL=y +CONFIG_DRM=n +CONFIG_DRM_MIPI_DSI=y +# CONFIG_DRM_DP_AUX_CHARDEV is not set +# CONFIG_DRM_DEBUG_SELFTEST is not set +CONFIG_DRM_KMS_HELPER=n +CONFIG_DRM_KMS_FB_HELPER=y +CONFIG_DRM_FBDEV_EMULATION=y +CONFIG_DRM_FBDEV_OVERALLOC=100 +# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set +# CONFIG_DRM_DP_CEC is not set +CONFIG_DRM_TTM=n +CONFIG_DRM_GEM_CMA_HELPER=y +CONFIG_DRM_KMS_CMA_HELPER=y +CONFIG_DRM_VM=y + +# +# I2C encoder or helper chips +# +CONFIG_DRM_I2C_CH7006=n +CONFIG_DRM_I2C_SIL164=n +# CONFIG_DRM_I2C_NXP_TDA998X is not set +# CONFIG_DRM_I2C_NXP_TDA9950 is not set +# end of I2C encoder or helper chips + +# +# ARM devices +# +# CONFIG_DRM_HDLCD is not set +# CONFIG_DRM_MALI_DISPLAY is not set +# CONFIG_DRM_KOMEDA is not set +# end of ARM devices + +# CONFIG_DRM_RADEON is not set +# CONFIG_DRM_AMDGPU is not set + +# +# ACP (Audio CoProcessor) Configuration +# +# end of ACP (Audio CoProcessor) Configuration + +CONFIG_DRM_NOUVEAU=n +CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT=y +CONFIG_NOUVEAU_PLATFORM_DRIVER=y +CONFIG_NOUVEAU_DEBUG=5 +CONFIG_NOUVEAU_DEBUG_DEFAULT=3 +# CONFIG_NOUVEAU_DEBUG_MMU is not set +CONFIG_DRM_NOUVEAU_BACKLIGHT=y +# CONFIG_DRM_VGEM is not set +# CONFIG_DRM_VKMS is not set +CONFIG_DRM_ATI_PCIGART=y +CONFIG_DRM_EXYNOS=n + +# +# CRTCs +# +# CONFIG_DRM_EXYNOS_FIMD is not set +CONFIG_DRM_EXYNOS5433_DECON=y +CONFIG_DRM_EXYNOS7_DECON=y +# CONFIG_DRM_EXYNOS_MIXER is not set +# CONFIG_DRM_EXYNOS_VIDI is not set + +# +# Encoders and Bridges +# +CONFIG_DRM_EXYNOS_DSI=y +# CONFIG_DRM_EXYNOS_DP is not set +CONFIG_DRM_EXYNOS_HDMI=y +CONFIG_DRM_EXYNOS_MIC=y + +# +# Sub-drivers +# +# CONFIG_DRM_EXYNOS_G2D is not set +# CONFIG_DRM_EXYNOS_FIMC is not set +# CONFIG_DRM_EXYNOS_ROTATOR is not set +# CONFIG_DRM_EXYNOS_SCALER is not set +# CONFIG_DRM_EXYNOS_GSC is not set +# CONFIG_DRM_UDL is not set +# CONFIG_DRM_AST is not set +# CONFIG_DRM_MGAG200 is not set +# CONFIG_DRM_CIRRUS_QEMU is not set +CONFIG_DRM_RCAR_DU=n +# CONFIG_DRM_RCAR_DW_HDMI is not set +CONFIG_DRM_RCAR_LVDS=n +CONFIG_DRM_RCAR_VSP=y +CONFIG_DRM_RCAR_WRITEBACK=y +# CONFIG_DRM_SUN4I is not set +# CONFIG_DRM_QXL is not set +# CONFIG_DRM_BOCHS is not set +# CONFIG_DRM_VIRTIO_GPU is not set +CONFIG_DRM_MSM=n +CONFIG_DRM_MSM_GPU_STATE=y +# CONFIG_DRM_MSM_REGISTER_LOGGING is not set +CONFIG_DRM_MSM_HDMI_HDCP=y +CONFIG_DRM_MSM_DSI=y +CONFIG_DRM_MSM_DSI_PLL=y +CONFIG_DRM_MSM_DSI_28NM_PHY=y +CONFIG_DRM_MSM_DSI_20NM_PHY=y +CONFIG_DRM_MSM_DSI_28NM_8960_PHY=y +CONFIG_DRM_MSM_DSI_14NM_PHY=y +CONFIG_DRM_MSM_DSI_10NM_PHY=y +CONFIG_DRM_TEGRA=n +# CONFIG_DRM_TEGRA_DEBUG is not set +# CONFIG_DRM_TEGRA_STAGING is not set +CONFIG_DRM_PANEL=y + +# +# Display Panels +# +# CONFIG_DRM_PANEL_ARM_VERSATILE is not set +# CONFIG_DRM_PANEL_LVDS is not set +CONFIG_DRM_PANEL_SIMPLE=n +# CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set +# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set +# CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set +# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set +# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set +# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set +# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set +# CONFIG_DRM_PANEL_LG_LB035Q02 is not set +# CONFIG_DRM_PANEL_LG_LG4573 is not set +# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set +# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set +# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set +# CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set +# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set +# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set +# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set +# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set +# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set +# CONFIG_DRM_PANEL_ROCKTECH_JH057N00900 is not set +# CONFIG_DRM_PANEL_RONBO_RB070D30 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set +# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set +# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set +# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set +# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set +# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set +# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set +# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set +# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set +# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set +# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set +# CONFIG_DRM_PANEL_TPO_TPG110 is not set +# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set +# end of Display Panels + +CONFIG_DRM_BRIDGE=y +CONFIG_DRM_PANEL_BRIDGE=y + +# +# Display Interface Bridges +# +# CONFIG_DRM_ANALOGIX_ANX78XX is not set +# CONFIG_DRM_CDNS_DSI is not set +# CONFIG_DRM_DUMB_VGA_DAC is not set +# CONFIG_DRM_LVDS_ENCODER is not set +# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set +# CONFIG_DRM_NXP_PTN3460 is not set +# CONFIG_DRM_PARADE_PS8622 is not set +# CONFIG_DRM_SIL_SII8620 is not set +# CONFIG_DRM_SII902X is not set +# CONFIG_DRM_SII9234 is not set +# CONFIG_DRM_THINE_THC63LVD1024 is not set +# CONFIG_DRM_TOSHIBA_TC358764 is not set +# CONFIG_DRM_TOSHIBA_TC358767 is not set +# CONFIG_DRM_TI_TFP410 is not set +# CONFIG_DRM_TI_SN65DSI86 is not set +CONFIG_DRM_I2C_ADV7511=n +# CONFIG_DRM_I2C_ADV7511_AUDIO is not set +CONFIG_DRM_I2C_ADV7533=y +CONFIG_DRM_I2C_ADV7511_CEC=y +# end of Display Interface Bridges + +CONFIG_DRM_VC4=n +# CONFIG_DRM_VC4_HDMI_CEC is not set +# CONFIG_DRM_ETNAVIV is not set +# CONFIG_DRM_ARCPGU is not set +# CONFIG_DRM_HISI_HIBMC is not set +CONFIG_DRM_HISI_KIRIN=n +# CONFIG_DRM_MEDIATEK is not set +# CONFIG_DRM_ZTE is not set +# CONFIG_DRM_MXSFB is not set +# CONFIG_DRM_MESON is not set +# CONFIG_DRM_GM12U320 is not set +# CONFIG_TINYDRM_HX8357D is not set +# CONFIG_TINYDRM_ILI9225 is not set +# CONFIG_TINYDRM_ILI9341 is not set +# CONFIG_TINYDRM_MI0283QT is not set +# CONFIG_TINYDRM_REPAPER is not set +# CONFIG_TINYDRM_ST7586 is not set +# CONFIG_TINYDRM_ST7735R is not set +# CONFIG_DRM_PL111 is not set +# CONFIG_DRM_XEN is not set +# CONFIG_DRM_LIMA is not set +# CONFIG_DRM_PANFROST is not set +CONFIG_DRM_LEGACY=y +# CONFIG_DRM_TDFX is not set +# CONFIG_DRM_R128 is not set +# CONFIG_DRM_MGA is not set +# CONFIG_DRM_VIA is not set +# CONFIG_DRM_SAVAGE is not set +CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=n + +# +# Frame buffer Devices +# +CONFIG_FB_CMDLINE=y +CONFIG_FB_NOTIFY=y +CONFIG_FB=y +# CONFIG_FIRMWARE_EDID is not set +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_IMAGEBLIT=y +CONFIG_FB_SYS_FILLRECT=y +CONFIG_FB_SYS_COPYAREA=y +CONFIG_FB_SYS_IMAGEBLIT=y +# CONFIG_FB_FOREIGN_ENDIAN is not set +CONFIG_FB_SYS_FOPS=y +CONFIG_FB_DEFERRED_IO=y +CONFIG_FB_MODE_HELPERS=y +# CONFIG_FB_TILEBLITTING is not set + +# +# Frame buffer hardware drivers +# +# CONFIG_FB_CIRRUS is not set +# CONFIG_FB_PM2 is not set +CONFIG_FB_ARMCLCD=y +# CONFIG_FB_CYBER2000 is not set +# CONFIG_FB_ASILIANT is not set +# CONFIG_FB_IMSTT is not set +# CONFIG_FB_EFI is not set +# CONFIG_FB_OPENCORES is not set +# CONFIG_FB_S1D13XXX is not set +# CONFIG_FB_NVIDIA is not set +# CONFIG_FB_RIVA is not set +# CONFIG_FB_I740 is not set +# CONFIG_FB_MATROX is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_ATY128 is not set +# CONFIG_FB_ATY is not set +# CONFIG_FB_S3 is not set +# CONFIG_FB_SAVAGE is not set +# CONFIG_FB_SIS is not set +# CONFIG_FB_NEOMAGIC is not set +# CONFIG_FB_KYRO is not set +# CONFIG_FB_3DFX is not set +# CONFIG_FB_VOODOO1 is not set +# CONFIG_FB_VT8623 is not set +# CONFIG_FB_TRIDENT is not set +# CONFIG_FB_ARK is not set +# CONFIG_FB_PM3 is not set +# CONFIG_FB_CARMINE is not set +# CONFIG_FB_SH_MOBILE_LCDC is not set +# CONFIG_FB_SMSCUFX is not set +# CONFIG_FB_UDL is not set +# CONFIG_FB_IBM_GXT4500 is not set +# CONFIG_FB_XILINX is not set +# CONFIG_FB_VIRTUAL is not set +CONFIG_XEN_FBDEV_FRONTEND=y +# CONFIG_FB_METRONOME is not set +# CONFIG_FB_MB862XX is not set +# CONFIG_FB_SIMPLE is not set +# CONFIG_FB_SSD1307 is not set +# CONFIG_FB_SM712 is not set +# end of Frame buffer Devices + +# +# Backlight & LCD device support +# +CONFIG_LCD_CLASS_DEVICE=n +# CONFIG_LCD_L4F00242T03 is not set +# CONFIG_LCD_LMS283GF05 is not set +# CONFIG_LCD_LTV350QV is not set +# CONFIG_LCD_ILI922X is not set +# CONFIG_LCD_ILI9320 is not set +# CONFIG_LCD_TDO24M is not set +# CONFIG_LCD_VGG2432A4 is not set +# CONFIG_LCD_PLATFORM is not set +# CONFIG_LCD_AMS369FG06 is not set +# CONFIG_LCD_LMS501KF03 is not set +# CONFIG_LCD_HX8357 is not set +# CONFIG_LCD_OTM3225A is not set +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_GENERIC=n +# CONFIG_BACKLIGHT_PWM is not set +# CONFIG_BACKLIGHT_PM8941_WLED is not set +# CONFIG_BACKLIGHT_ADP8860 is not set +# CONFIG_BACKLIGHT_ADP8870 is not set +# CONFIG_BACKLIGHT_LM3630A is not set +# CONFIG_BACKLIGHT_LM3639 is not set +CONFIG_BACKLIGHT_LP855X=n +# CONFIG_BACKLIGHT_GPIO is not set +# CONFIG_BACKLIGHT_LV5207LP is not set +# CONFIG_BACKLIGHT_BD6107 is not set +# CONFIG_BACKLIGHT_ARCXCNN is not set +# end of Backlight & LCD device support + +CONFIG_VIDEOMODE_HELPERS=y +CONFIG_HDMI=y + +# +# Console display driver support +# +CONFIG_DUMMY_CONSOLE=y +CONFIG_DUMMY_CONSOLE_COLUMNS=80 +CONFIG_DUMMY_CONSOLE_ROWS=25 +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set +# end of Console display driver support + +CONFIG_LOGO=y +# CONFIG_LOGO_LINUX_MONO is not set +# CONFIG_LOGO_LINUX_VGA16 is not set +CONFIG_LOGO_LINUX_CLUT224=y +# end of Graphics support + +CONFIG_SOUND=y +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +CONFIG_SND_PCM_ELD=y +CONFIG_SND_PCM_IEC958=y +CONFIG_SND_DMAENGINE_PCM=y +CONFIG_SND_JACK=y +CONFIG_SND_JACK_INPUT_DEV=y +# CONFIG_SND_OSSEMUL is not set +CONFIG_SND_PCM_TIMER=y +# CONFIG_SND_HRTIMER is not set +# CONFIG_SND_DYNAMIC_MINORS is not set +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_PROC_FS=y +CONFIG_SND_VERBOSE_PROCFS=y +# CONFIG_SND_VERBOSE_PRINTK is not set +# CONFIG_SND_DEBUG is not set +# CONFIG_SND_SEQUENCER is not set +CONFIG_SND_DRIVERS=y +# CONFIG_SND_DUMMY is not set +# CONFIG_SND_ALOOP is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set +CONFIG_SND_PCI=y +# CONFIG_SND_AD1889 is not set +# CONFIG_SND_ATIIXP is not set +# CONFIG_SND_ATIIXP_MODEM is not set +# CONFIG_SND_AU8810 is not set +# CONFIG_SND_AU8820 is not set +# CONFIG_SND_AU8830 is not set +# CONFIG_SND_AW2 is not set +# CONFIG_SND_BT87X is not set +# CONFIG_SND_CA0106 is not set +# CONFIG_SND_CMIPCI is not set +# CONFIG_SND_OXYGEN is not set +# CONFIG_SND_CS4281 is not set +# CONFIG_SND_CS46XX is not set +# CONFIG_SND_CTXFI is not set +# CONFIG_SND_DARLA20 is not set +# CONFIG_SND_GINA20 is not set +# CONFIG_SND_LAYLA20 is not set +# CONFIG_SND_DARLA24 is not set +# CONFIG_SND_GINA24 is not set +# CONFIG_SND_LAYLA24 is not set +# CONFIG_SND_MONA is not set +# CONFIG_SND_MIA is not set +# CONFIG_SND_ECHO3G is not set +# CONFIG_SND_INDIGO is not set +# CONFIG_SND_INDIGOIO is not set +# CONFIG_SND_INDIGODJ is not set +# CONFIG_SND_INDIGOIOX is not set +# CONFIG_SND_INDIGODJX is not set +# CONFIG_SND_ENS1370 is not set +# CONFIG_SND_ENS1371 is not set +# CONFIG_SND_FM801 is not set +# CONFIG_SND_HDSP is not set +# CONFIG_SND_HDSPM is not set +# CONFIG_SND_ICE1724 is not set +# CONFIG_SND_INTEL8X0 is not set +# CONFIG_SND_INTEL8X0M is not set +# CONFIG_SND_KORG1212 is not set +# CONFIG_SND_LOLA is not set +# CONFIG_SND_LX6464ES is not set +# CONFIG_SND_MIXART is not set +# CONFIG_SND_NM256 is not set +# CONFIG_SND_PCXHR is not set +# CONFIG_SND_RIPTIDE is not set +# CONFIG_SND_RME32 is not set +# CONFIG_SND_RME96 is not set +# CONFIG_SND_RME9652 is not set +# CONFIG_SND_SE6X is not set +# CONFIG_SND_VIA82XX is not set +# CONFIG_SND_VIA82XX_MODEM is not set +# CONFIG_SND_VIRTUOSO is not set +# CONFIG_SND_VX222 is not set +# CONFIG_SND_YMFPCI is not set + +# +# HD-Audio +# +# CONFIG_SND_HDA_INTEL is not set +# CONFIG_SND_HDA_TEGRA is not set +# end of HD-Audio + +CONFIG_SND_HDA_PREALLOC_SIZE=64 +CONFIG_SND_SPI=y +CONFIG_SND_USB=y +# CONFIG_SND_USB_AUDIO is not set +# CONFIG_SND_USB_UA101 is not set +# CONFIG_SND_USB_CAIAQ is not set +# CONFIG_SND_USB_6FIRE is not set +# CONFIG_SND_USB_HIFACE is not set +# CONFIG_SND_BCD2000 is not set +# CONFIG_SND_USB_POD is not set +# CONFIG_SND_USB_PODHD is not set +# CONFIG_SND_USB_TONEPORT is not set +# CONFIG_SND_USB_VARIAX is not set +CONFIG_SND_SOC=y +CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y +# CONFIG_SND_SOC_AMD_ACP is not set +# CONFIG_SND_ATMEL_SOC is not set +CONFIG_SND_BCM2835_SOC_I2S=n +# CONFIG_SND_DESIGNWARE_I2S is not set + +# +# SoC Audio for Freescale CPUs +# + +# +# Common SoC Audio options for Freescale CPUs: +# +# CONFIG_SND_SOC_FSL_ASRC is not set +CONFIG_SND_SOC_FSL_SAI=y +# CONFIG_SND_SOC_FSL_AUDMIX is not set +# CONFIG_SND_SOC_FSL_SSI is not set +# CONFIG_SND_SOC_FSL_SPDIF is not set +# CONFIG_SND_SOC_FSL_ESAI is not set +# CONFIG_SND_SOC_FSL_MICFIL is not set +# CONFIG_SND_SOC_IMX_AUDMUX is not set +# end of SoC Audio for Freescale CPUs + +# CONFIG_SND_I2S_HI6210_I2S is not set +# CONFIG_SND_KIRKWOOD_SOC is not set +# CONFIG_SND_SOC_IMG is not set +# CONFIG_SND_SOC_MT2701 is not set +# CONFIG_SND_SOC_MT6797 is not set +# CONFIG_SND_SOC_MT8173 is not set +# CONFIG_SND_SOC_MT8183 is not set +# CONFIG_SND_SOC_MTK_BTCVSD is not set + +# +# ASoC support for Amlogic platforms +# +# CONFIG_SND_MESON_AXG_FRDDR is not set +# CONFIG_SND_MESON_AXG_TODDR is not set +# CONFIG_SND_MESON_AXG_TDMIN is not set +# CONFIG_SND_MESON_AXG_TDMOUT is not set +# CONFIG_SND_MESON_AXG_SOUND_CARD is not set +# CONFIG_SND_MESON_AXG_SPDIFOUT is not set +# CONFIG_SND_MESON_AXG_SPDIFIN is not set +# CONFIG_SND_MESON_AXG_PDM is not set +# CONFIG_SND_MESON_G12A_TOHDMITX is not set +# end of ASoC support for Amlogic platforms + +# CONFIG_SND_SOC_QCOM is not set +# CONFIG_SND_SOC_ROCKCHIP is not set +CONFIG_SND_SOC_SAMSUNG=y +# CONFIG_SND_SAMSUNG_PCM is not set +# CONFIG_SND_SAMSUNG_SPDIF is not set +# CONFIG_SND_SAMSUNG_I2S is not set +# CONFIG_SND_SOC_SAMSUNG_SMDK_WM8994 is not set +# CONFIG_SND_SOC_SAMSUNG_SMDK_SPDIF is not set +# CONFIG_SND_SOC_SMDK_WM8994_PCM is not set +# CONFIG_SND_SOC_SNOW is not set +# CONFIG_SND_SOC_ODROID is not set +# CONFIG_SND_SOC_ARNDALE_RT5631_ALC5631 is not set + +# +# SoC Audio support for Renesas SoCs +# +# CONFIG_SND_SOC_SH4_FSI is not set +CONFIG_SND_SOC_RCAR=y +# end of SoC Audio support for Renesas SoCs + +# CONFIG_SND_SOC_SOF_TOPLEVEL is not set +# CONFIG_SND_SOC_SPRD is not set + +# +# STMicroelectronics STM32 SOC audio support +# +# end of STMicroelectronics STM32 SOC audio support + +# +# Allwinner SoC Audio support +# +# CONFIG_SND_SUN4I_CODEC is not set +# CONFIG_SND_SUN8I_CODEC is not set +# CONFIG_SND_SUN8I_CODEC_ANALOG is not set +# CONFIG_SND_SUN50I_CODEC_ANALOG is not set +# CONFIG_SND_SUN4I_I2S is not set +# CONFIG_SND_SUN4I_SPDIF is not set +# end of Allwinner SoC Audio support + +# CONFIG_SND_SOC_TEGRA is not set +# CONFIG_SND_SOC_UNIPHIER is not set +# CONFIG_SND_SOC_XILINX_I2S is not set +# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set +# CONFIG_SND_SOC_XILINX_SPDIF is not set +# CONFIG_SND_SOC_XTFPGA_I2S is not set +# CONFIG_ZX_SPDIF is not set +# CONFIG_ZX_I2S is not set +# CONFIG_ZX_TDM is not set +CONFIG_SND_SOC_I2C_AND_SPI=y + +# +# CODEC drivers +# +# CONFIG_SND_SOC_AC97_CODEC is not set +# CONFIG_SND_SOC_ADAU1701 is not set +# CONFIG_SND_SOC_ADAU1761_I2C is not set +# CONFIG_SND_SOC_ADAU1761_SPI is not set +# CONFIG_SND_SOC_ADAU7002 is not set +# CONFIG_SND_SOC_AK4104 is not set +# CONFIG_SND_SOC_AK4118 is not set +# CONFIG_SND_SOC_AK4458 is not set +# CONFIG_SND_SOC_AK4554 is not set +CONFIG_SND_SOC_AK4613=y +# CONFIG_SND_SOC_AK4642 is not set +# CONFIG_SND_SOC_AK5386 is not set +# CONFIG_SND_SOC_AK5558 is not set +# CONFIG_SND_SOC_ALC5623 is not set +# CONFIG_SND_SOC_BD28623 is not set +# CONFIG_SND_SOC_BT_SCO is not set +# CONFIG_SND_SOC_CROS_EC_CODEC is not set +# CONFIG_SND_SOC_CS35L32 is not set +# CONFIG_SND_SOC_CS35L33 is not set +# CONFIG_SND_SOC_CS35L34 is not set +# CONFIG_SND_SOC_CS35L35 is not set +# CONFIG_SND_SOC_CS35L36 is not set +# CONFIG_SND_SOC_CS42L42 is not set +# CONFIG_SND_SOC_CS42L51_I2C is not set +# CONFIG_SND_SOC_CS42L52 is not set +# CONFIG_SND_SOC_CS42L56 is not set +# CONFIG_SND_SOC_CS42L73 is not set +# CONFIG_SND_SOC_CS4265 is not set +# CONFIG_SND_SOC_CS4270 is not set +# CONFIG_SND_SOC_CS4271_I2C is not set +# CONFIG_SND_SOC_CS4271_SPI is not set +# CONFIG_SND_SOC_CS42XX8_I2C is not set +# CONFIG_SND_SOC_CS43130 is not set +# CONFIG_SND_SOC_CS4341 is not set +# CONFIG_SND_SOC_CS4349 is not set +# CONFIG_SND_SOC_CS53L30 is not set +# CONFIG_SND_SOC_CX2072X is not set +# CONFIG_SND_SOC_DMIC is not set +CONFIG_SND_SOC_HDMI_CODEC=n +# CONFIG_SND_SOC_ES7134 is not set +# CONFIG_SND_SOC_ES7241 is not set +# CONFIG_SND_SOC_ES8316 is not set +# CONFIG_SND_SOC_ES8328_I2C is not set +# CONFIG_SND_SOC_ES8328_SPI is not set +# CONFIG_SND_SOC_GTM601 is not set +# CONFIG_SND_SOC_INNO_RK3036 is not set +# CONFIG_SND_SOC_MAX98088 is not set +# CONFIG_SND_SOC_MAX98357A is not set +# CONFIG_SND_SOC_MAX98504 is not set +# CONFIG_SND_SOC_MAX9867 is not set +# CONFIG_SND_SOC_MAX98927 is not set +# CONFIG_SND_SOC_MAX98373 is not set +# CONFIG_SND_SOC_MAX9860 is not set +# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set +# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set +# CONFIG_SND_SOC_PCM1681 is not set +# CONFIG_SND_SOC_PCM1789_I2C is not set +# CONFIG_SND_SOC_PCM179X_I2C is not set +# CONFIG_SND_SOC_PCM179X_SPI is not set +# CONFIG_SND_SOC_PCM186X_I2C is not set +# CONFIG_SND_SOC_PCM186X_SPI is not set +# CONFIG_SND_SOC_PCM3060_I2C is not set +# CONFIG_SND_SOC_PCM3060_SPI is not set +# CONFIG_SND_SOC_PCM3168A_I2C is not set +# CONFIG_SND_SOC_PCM3168A_SPI is not set +# CONFIG_SND_SOC_PCM512x_I2C is not set +# CONFIG_SND_SOC_PCM512x_SPI is not set +# CONFIG_SND_SOC_RK3328 is not set +# CONFIG_SND_SOC_RT5616 is not set +# CONFIG_SND_SOC_RT5631 is not set +CONFIG_SND_SOC_SGTL5000=y +# CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set +# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set +# CONFIG_SND_SOC_SPDIF is not set +# CONFIG_SND_SOC_SSM2305 is not set +# CONFIG_SND_SOC_SSM2602_SPI is not set +# CONFIG_SND_SOC_SSM2602_I2C is not set +# CONFIG_SND_SOC_SSM4567 is not set +# CONFIG_SND_SOC_STA32X is not set +# CONFIG_SND_SOC_STA350 is not set +# CONFIG_SND_SOC_STI_SAS is not set +# CONFIG_SND_SOC_TAS2552 is not set +# CONFIG_SND_SOC_TAS5086 is not set +# CONFIG_SND_SOC_TAS571X is not set +# CONFIG_SND_SOC_TAS5720 is not set +# CONFIG_SND_SOC_TAS6424 is not set +# CONFIG_SND_SOC_TDA7419 is not set +# CONFIG_SND_SOC_TFA9879 is not set +# CONFIG_SND_SOC_TLV320AIC23_I2C is not set +# CONFIG_SND_SOC_TLV320AIC23_SPI is not set +# CONFIG_SND_SOC_TLV320AIC31XX is not set +# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set +# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set +# CONFIG_SND_SOC_TLV320AIC3X is not set +# CONFIG_SND_SOC_TS3A227E is not set +# CONFIG_SND_SOC_TSCS42XX is not set +# CONFIG_SND_SOC_TSCS454 is not set +# CONFIG_SND_SOC_UDA1334 is not set +# CONFIG_SND_SOC_WM8510 is not set +# CONFIG_SND_SOC_WM8523 is not set +# CONFIG_SND_SOC_WM8524 is not set +# CONFIG_SND_SOC_WM8580 is not set +# CONFIG_SND_SOC_WM8711 is not set +# CONFIG_SND_SOC_WM8728 is not set +# CONFIG_SND_SOC_WM8731 is not set +# CONFIG_SND_SOC_WM8737 is not set +# CONFIG_SND_SOC_WM8741 is not set +# CONFIG_SND_SOC_WM8750 is not set +# CONFIG_SND_SOC_WM8753 is not set +# CONFIG_SND_SOC_WM8770 is not set +# CONFIG_SND_SOC_WM8776 is not set +# CONFIG_SND_SOC_WM8782 is not set +# CONFIG_SND_SOC_WM8804_I2C is not set +# CONFIG_SND_SOC_WM8804_SPI is not set +# CONFIG_SND_SOC_WM8903 is not set +# CONFIG_SND_SOC_WM8904 is not set +# CONFIG_SND_SOC_WM8960 is not set +# CONFIG_SND_SOC_WM8962 is not set +# CONFIG_SND_SOC_WM8974 is not set +# CONFIG_SND_SOC_WM8978 is not set +# CONFIG_SND_SOC_WM8985 is not set +# CONFIG_SND_SOC_ZX_AUD96P22 is not set +# CONFIG_SND_SOC_MAX9759 is not set +# CONFIG_SND_SOC_MT6351 is not set +# CONFIG_SND_SOC_MT6358 is not set +# CONFIG_SND_SOC_NAU8540 is not set +# CONFIG_SND_SOC_NAU8810 is not set +# CONFIG_SND_SOC_NAU8822 is not set +# CONFIG_SND_SOC_NAU8824 is not set +# CONFIG_SND_SOC_TPA6130A2 is not set +# end of CODEC drivers + +CONFIG_SND_SIMPLE_CARD_UTILS=y +CONFIG_SND_SIMPLE_CARD=y +# CONFIG_SND_AUDIO_GRAPH_CARD is not set +# CONFIG_SND_XEN_FRONTEND is not set + +# +# HID support +# +CONFIG_HID=y +# CONFIG_HID_BATTERY_STRENGTH is not set +# CONFIG_HIDRAW is not set +# CONFIG_UHID is not set +CONFIG_HID_GENERIC=y + +# +# Special HID drivers +# +CONFIG_HID_A4TECH=y +# CONFIG_HID_ACCUTOUCH is not set +# CONFIG_HID_ACRUX is not set +CONFIG_HID_APPLE=y +# CONFIG_HID_APPLEIR is not set +# CONFIG_HID_ASUS is not set +# CONFIG_HID_AUREAL is not set +CONFIG_HID_BELKIN=y +# CONFIG_HID_BETOP_FF is not set +# CONFIG_HID_BIGBEN_FF is not set +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y +# CONFIG_HID_CORSAIR is not set +# CONFIG_HID_COUGAR is not set +# CONFIG_HID_MACALLY is not set +# CONFIG_HID_PRODIKEYS is not set +# CONFIG_HID_CMEDIA is not set +# CONFIG_HID_CREATIVE_SB0540 is not set +CONFIG_HID_CYPRESS=y +# CONFIG_HID_DRAGONRISE is not set +# CONFIG_HID_EMS_FF is not set +# CONFIG_HID_ELAN is not set +# CONFIG_HID_ELECOM is not set +# CONFIG_HID_ELO is not set +CONFIG_HID_EZKEY=y +# CONFIG_HID_GEMBIRD is not set +# CONFIG_HID_GFRM is not set +# CONFIG_HID_HOLTEK is not set +# CONFIG_HID_GOOGLE_HAMMER is not set +# CONFIG_HID_GT683R is not set +# CONFIG_HID_KEYTOUCH is not set +# CONFIG_HID_KYE is not set +# CONFIG_HID_UCLOGIC is not set +# CONFIG_HID_WALTOP is not set +# CONFIG_HID_VIEWSONIC is not set +# CONFIG_HID_GYRATION is not set +# CONFIG_HID_ICADE is not set +CONFIG_HID_ITE=y +# CONFIG_HID_JABRA is not set +# CONFIG_HID_TWINHAN is not set +CONFIG_HID_KENSINGTON=y +# CONFIG_HID_LCPOWER is not set +# CONFIG_HID_LED is not set +# CONFIG_HID_LENOVO is not set +CONFIG_HID_LOGITECH=y +# CONFIG_HID_LOGITECH_HIDPP is not set +# CONFIG_LOGITECH_FF is not set +# CONFIG_LOGIRUMBLEPAD2_FF is not set +# CONFIG_LOGIG940_FF is not set +# CONFIG_LOGIWHEELS_FF is not set +# CONFIG_HID_MAGICMOUSE is not set +# CONFIG_HID_MALTRON is not set +# CONFIG_HID_MAYFLASH is not set +CONFIG_HID_REDRAGON=y +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y +# CONFIG_HID_MULTITOUCH is not set +# CONFIG_HID_NTI is not set +# CONFIG_HID_NTRIG is not set +# CONFIG_HID_ORTEK is not set +# CONFIG_HID_PANTHERLORD is not set +# CONFIG_HID_PENMOUNT is not set +# CONFIG_HID_PETALYNX is not set +# CONFIG_HID_PICOLCD is not set +# CONFIG_HID_PLANTRONICS is not set +# CONFIG_HID_PRIMAX is not set +# CONFIG_HID_RETRODE is not set +# CONFIG_HID_ROCCAT is not set +# CONFIG_HID_SAITEK is not set +# CONFIG_HID_SAMSUNG is not set +# CONFIG_HID_SONY is not set +# CONFIG_HID_SPEEDLINK is not set +# CONFIG_HID_STEAM is not set +# CONFIG_HID_STEELSERIES is not set +# CONFIG_HID_SUNPLUS is not set +# CONFIG_HID_RMI is not set +# CONFIG_HID_GREENASIA is not set +# CONFIG_HID_SMARTJOYPLUS is not set +# CONFIG_HID_TIVO is not set +# CONFIG_HID_TOPSEED is not set +# CONFIG_HID_THINGM is not set +# CONFIG_HID_THRUSTMASTER is not set +# CONFIG_HID_UDRAW_PS3 is not set +# CONFIG_HID_U2FZERO is not set +# CONFIG_HID_WACOM is not set +# CONFIG_HID_WIIMOTE is not set +# CONFIG_HID_XINMO is not set +# CONFIG_HID_ZEROPLUS is not set +# CONFIG_HID_ZYDACRON is not set +# CONFIG_HID_SENSOR_HUB is not set +# CONFIG_HID_ALPS is not set +# end of Special HID drivers + +# +# USB HID support +# +CONFIG_USB_HID=y +# CONFIG_HID_PID is not set +# CONFIG_USB_HIDDEV is not set +# end of USB HID support + +# +# I2C HID support +# +# CONFIG_I2C_HID is not set +# end of I2C HID support +# end of HID support + +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +# CONFIG_USB_LED_TRIG is not set +CONFIG_USB_ULPI_BUS=y +# CONFIG_USB_CONN_GPIO is not set +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB=y +CONFIG_USB_PCI=y +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEFAULT_PERSIST=y +# CONFIG_USB_DYNAMIC_MINORS is not set +CONFIG_USB_OTG=y +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +# CONFIG_USB_OTG_FSM is not set +# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set +CONFIG_USB_AUTOSUSPEND_DELAY=2 +# CONFIG_USB_MON is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_C67X00_HCD is not set +CONFIG_USB_XHCI_HCD=y +# CONFIG_USB_XHCI_DBGCAP is not set +CONFIG_USB_XHCI_PCI=y +CONFIG_USB_XHCI_PLATFORM=y +# CONFIG_USB_XHCI_HISTB is not set +# CONFIG_USB_XHCI_MTK is not set +# CONFIG_USB_XHCI_MVEBU is not set +CONFIG_USB_XHCI_RCAR=y +CONFIG_USB_XHCI_TEGRA=y +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_EHCI_PCI=y +# CONFIG_USB_EHCI_FSL is not set +CONFIG_USB_EHCI_HCD_ORION=y +# CONFIG_USB_EHCI_TEGRA is not set +CONFIG_USB_EHCI_EXYNOS=y +CONFIG_USB_EHCI_HCD_PLATFORM=y +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set +# CONFIG_USB_FOTG210_HCD is not set +# CONFIG_USB_MAX3421_HCD is not set +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PCI=y +CONFIG_USB_OHCI_EXYNOS=y +CONFIG_USB_OHCI_HCD_PLATFORM=y +# CONFIG_USB_UHCI_HCD is not set +# CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set +# CONFIG_USB_RENESAS_USBHS_HCD is not set +# CONFIG_USB_HCD_TEST_MODE is not set +CONFIG_USB_RENESAS_USBHS=n + +# +# USB Device Class drivers +# +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set +# CONFIG_USB_WDM is not set +# CONFIG_USB_TMC is not set + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may +# + +# +# also be needed; see USB_STORAGE Help for more info +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_REALTEK is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_ONETOUCH is not set +# CONFIG_USB_STORAGE_KARMA is not set +# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set +# CONFIG_USB_STORAGE_ENE_UB6250 is not set +# CONFIG_USB_UAS is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set +# CONFIG_USBIP_CORE is not set +# CONFIG_USB_CDNS3 is not set +# CONFIG_USB_MTU3 is not set +# CONFIG_USB_MUSB_HDRC is not set +CONFIG_USB_DWC3=y +# CONFIG_USB_DWC3_ULPI is not set +# CONFIG_USB_DWC3_HOST is not set +# CONFIG_USB_DWC3_GADGET is not set +CONFIG_USB_DWC3_DUAL_ROLE=y + +# +# Platform Glue Driver Support +# +CONFIG_USB_DWC3_EXYNOS=y +CONFIG_USB_DWC3_PCI=y +CONFIG_USB_DWC3_HAPS=y +CONFIG_USB_DWC3_MESON_G12A=y +CONFIG_USB_DWC3_OF_SIMPLE=y +CONFIG_USB_DWC3_QCOM=y +CONFIG_USB_DWC2=y +# CONFIG_USB_DWC2_HOST is not set + +# +# Gadget/Dual-role mode requires USB Gadget support to be enabled +# +# CONFIG_USB_DWC2_PERIPHERAL is not set +CONFIG_USB_DWC2_DUAL_ROLE=y +# CONFIG_USB_DWC2_PCI is not set +# CONFIG_USB_DWC2_DEBUG is not set +# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set +CONFIG_USB_CHIPIDEA=y +CONFIG_USB_CHIPIDEA_OF=y +CONFIG_USB_CHIPIDEA_UDC=y +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_ISP1760=y +CONFIG_USB_ISP1760_HCD=y +CONFIG_USB_ISP1761_UDC=y +# CONFIG_USB_ISP1760_HOST_ROLE is not set +# CONFIG_USB_ISP1760_GADGET_ROLE is not set +CONFIG_USB_ISP1760_DUAL_ROLE=y + +# +# USB port drivers +# +# CONFIG_USB_SERIAL is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_SEVSEG is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_SISUSBVGA is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set +# CONFIG_USB_TEST is not set +# CONFIG_USB_EHSET_TEST_FIXTURE is not set +# CONFIG_USB_ISIGHTFW is not set +# CONFIG_USB_YUREX is not set +# CONFIG_USB_EZUSB_FX2 is not set +# CONFIG_USB_HUB_USB251XB is not set +CONFIG_USB_HSIC_USB3503=y +# CONFIG_USB_HSIC_USB4604 is not set +# CONFIG_USB_LINK_LAYER_TEST is not set +# CONFIG_USB_CHAOSKEY is not set + +# +# USB Physical Layer drivers +# +# CONFIG_NOP_USB_XCEIV is not set +# CONFIG_USB_GPIO_VBUS is not set +# CONFIG_USB_ISP1301 is not set +# CONFIG_USB_TEGRA_PHY is not set +CONFIG_USB_ULPI=y +CONFIG_USB_ULPI_VIEWPORT=y +# end of USB Physical Layer drivers + +CONFIG_USB_GADGET=y +# CONFIG_USB_GADGET_DEBUG is not set +# CONFIG_USB_GADGET_DEBUG_FILES is not set +# CONFIG_USB_GADGET_DEBUG_FS is not set +CONFIG_USB_GADGET_VBUS_DRAW=2 +CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 + +# +# USB Peripheral Controller +# +# CONFIG_USB_FOTG210_UDC is not set +# CONFIG_USB_GR_UDC is not set +# CONFIG_USB_R8A66597 is not set +CONFIG_USB_RENESAS_USBHS_UDC=n +# CONFIG_USB_RENESAS_USB3 is not set +# CONFIG_USB_PXA27X is not set +# CONFIG_USB_MV_UDC is not set +# CONFIG_USB_MV_U3D is not set +CONFIG_USB_SNP_CORE=y +CONFIG_USB_SNP_UDC_PLAT=y +# CONFIG_USB_M66592 is not set +# CONFIG_USB_BDC_UDC is not set +# CONFIG_USB_AMD5536UDC is not set +# CONFIG_USB_NET2272 is not set +# CONFIG_USB_NET2280 is not set +# CONFIG_USB_GOKU is not set +# CONFIG_USB_EG20T is not set +# CONFIG_USB_GADGET_XILINX is not set +# CONFIG_USB_DUMMY_HCD is not set +# end of USB Peripheral Controller + +# CONFIG_USB_CONFIGFS is not set +# CONFIG_TYPEC is not set +CONFIG_USB_ROLE_SWITCH=y +CONFIG_MMC=y +CONFIG_PWRSEQ_EMMC=y +CONFIG_PWRSEQ_SIMPLE=y +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_MINORS=32 +# CONFIG_SDIO_UART is not set +# CONFIG_MMC_TEST is not set + +# +# MMC/SD/SDIO Host Controller Drivers +# +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_ARMMMCI=y +CONFIG_MMC_QCOM_DML=y +CONFIG_MMC_STM32_SDMMC=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_IO_ACCESSORS=y +# CONFIG_MMC_SDHCI_PCI is not set +CONFIG_MMC_SDHCI_ACPI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MMC_SDHCI_OF_ARASAN=y +# CONFIG_MMC_SDHCI_OF_ASPEED is not set +# CONFIG_MMC_SDHCI_OF_AT91 is not set +CONFIG_MMC_SDHCI_OF_ESDHC=y +# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set +# CONFIG_MMC_SDHCI_CADENCE is not set +CONFIG_MMC_SDHCI_TEGRA=y +# CONFIG_MMC_SDHCI_PXAV3 is not set +# CONFIG_MMC_SDHCI_F_SDH30 is not set +CONFIG_MMC_SDHCI_IPROC=y +# CONFIG_MMC_MESON_GX is not set +# CONFIG_MMC_MESON_MX_SDIO is not set +CONFIG_MMC_SDHCI_MSM=y +# CONFIG_MMC_TIFM_SD is not set +CONFIG_MMC_SPI=y +# CONFIG_MMC_SDHCI_SPRD is not set +CONFIG_MMC_TMIO_CORE=y +CONFIG_MMC_SDHI=y +# CONFIG_MMC_SDHI_SYS_DMAC is not set +CONFIG_MMC_SDHI_INTERNAL_DMAC=y +# CONFIG_MMC_UNIPHIER is not set +# CONFIG_MMC_CB710 is not set +# CONFIG_MMC_VIA_SDMMC is not set +CONFIG_MMC_DW=y +CONFIG_MMC_DW_PLTFM=y +# CONFIG_MMC_DW_BLUEFIELD is not set +CONFIG_MMC_DW_EXYNOS=y +# CONFIG_MMC_DW_HI3798CV200 is not set +CONFIG_MMC_DW_K3=y +# CONFIG_MMC_DW_PCI is not set +CONFIG_MMC_DW_ROCKCHIP=y +# CONFIG_MMC_DW_ZX is not set +# CONFIG_MMC_SH_MMCIF is not set +# CONFIG_MMC_VUB300 is not set +# CONFIG_MMC_USHC is not set +# CONFIG_MMC_USDHI6ROL0 is not set +CONFIG_MMC_SUNXI=y +CONFIG_MMC_CQHCI=y +# CONFIG_MMC_TOSHIBA_PCI is not set +# CONFIG_MMC_BCM2835 is not set +# CONFIG_MMC_MTK is not set +# CONFIG_MMC_SDHCI_XENON is not set +# CONFIG_MMC_SDHCI_OMAP is not set +# CONFIG_MMC_SDHCI_AM654 is not set +# CONFIG_MEMSTICK is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y +# CONFIG_LEDS_CLASS_FLASH is not set +# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set + +# +# LED drivers +# +# CONFIG_LEDS_AN30259A is not set +# CONFIG_LEDS_BCM6328 is not set +# CONFIG_LEDS_BCM6358 is not set +# CONFIG_LEDS_CR0014114 is not set +# CONFIG_LEDS_LM3530 is not set +# CONFIG_LEDS_LM3532 is not set +# CONFIG_LEDS_LM3642 is not set +# CONFIG_LEDS_LM3692X is not set +# CONFIG_LEDS_PCA9532 is not set +CONFIG_LEDS_GPIO=y +# CONFIG_LEDS_LP3944 is not set +# CONFIG_LEDS_LP3952 is not set +# CONFIG_LEDS_LP5521 is not set +# CONFIG_LEDS_LP5523 is not set +# CONFIG_LEDS_LP5562 is not set +# CONFIG_LEDS_LP8501 is not set +# CONFIG_LEDS_LP8860 is not set +# CONFIG_LEDS_PCA955X is not set +# CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_DAC124S085 is not set +CONFIG_LEDS_PWM=y +# CONFIG_LEDS_REGULATOR is not set +# CONFIG_LEDS_BD2802 is not set +# CONFIG_LEDS_LT3593 is not set +# CONFIG_LEDS_TCA6507 is not set +# CONFIG_LEDS_TLC591XX is not set +# CONFIG_LEDS_LM355x is not set +# CONFIG_LEDS_IS31FL319X is not set +# CONFIG_LEDS_IS31FL32XX is not set + +# +# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) +# +# CONFIG_LEDS_BLINKM is not set +CONFIG_LEDS_SYSCON=y +# CONFIG_LEDS_MLXREG is not set +# CONFIG_LEDS_USER is not set +# CONFIG_LEDS_SPI_BYTE is not set +# CONFIG_LEDS_TI_LMU_COMMON is not set + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +# CONFIG_LEDS_TRIGGER_TIMER is not set +# CONFIG_LEDS_TRIGGER_ONESHOT is not set +# CONFIG_LEDS_TRIGGER_DISK is not set +# CONFIG_LEDS_TRIGGER_MTD is not set +CONFIG_LEDS_TRIGGER_HEARTBEAT=y +# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set +CONFIG_LEDS_TRIGGER_CPU=y +# CONFIG_LEDS_TRIGGER_ACTIVITY is not set +# CONFIG_LEDS_TRIGGER_GPIO is not set +CONFIG_LEDS_TRIGGER_DEFAULT_ON=y + +# +# iptables trigger is under Netfilter config (LED target) +# +# CONFIG_LEDS_TRIGGER_TRANSIENT is not set +# CONFIG_LEDS_TRIGGER_CAMERA is not set +# CONFIG_LEDS_TRIGGER_PANIC is not set +# CONFIG_LEDS_TRIGGER_NETDEV is not set +# CONFIG_LEDS_TRIGGER_PATTERN is not set +# CONFIG_LEDS_TRIGGER_AUDIO is not set +# CONFIG_ACCESSIBILITY is not set +# CONFIG_INFINIBAND is not set +CONFIG_EDAC_SUPPORT=y +# CONFIG_EDAC is not set +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +CONFIG_RTC_SYSTOHC=y +CONFIG_RTC_SYSTOHC_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set +CONFIG_RTC_NVMEM=y + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +# CONFIG_RTC_DRV_ABB5ZES3 is not set +# CONFIG_RTC_DRV_ABEOZ9 is not set +# CONFIG_RTC_DRV_ABX80X is not set +CONFIG_RTC_DRV_DS1307=y +# CONFIG_RTC_DRV_DS1307_CENTURY is not set +# CONFIG_RTC_DRV_DS1374 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_HYM8563 is not set +# CONFIG_RTC_DRV_MAX6900 is not set +CONFIG_RTC_DRV_MAX77686=y +CONFIG_RTC_DRV_MESON_VRTC=n +CONFIG_RTC_DRV_RK808=n +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_ISL12022 is not set +# CONFIG_RTC_DRV_ISL12026 is not set +# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_PCF8523 is not set +# CONFIG_RTC_DRV_PCF85063 is not set +# CONFIG_RTC_DRV_PCF85363 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF8583 is not set +# CONFIG_RTC_DRV_M41T80 is not set +# CONFIG_RTC_DRV_BQ32K is not set +# CONFIG_RTC_DRV_S35390A is not set +# CONFIG_RTC_DRV_FM3130 is not set +# CONFIG_RTC_DRV_RX8010 is not set +# CONFIG_RTC_DRV_RX8581 is not set +# CONFIG_RTC_DRV_RX8025 is not set +# CONFIG_RTC_DRV_EM3027 is not set +# CONFIG_RTC_DRV_RV3028 is not set +# CONFIG_RTC_DRV_RV8803 is not set +CONFIG_RTC_DRV_S5M=y +# CONFIG_RTC_DRV_SD3078 is not set + +# +# SPI RTC drivers +# +# CONFIG_RTC_DRV_M41T93 is not set +# CONFIG_RTC_DRV_M41T94 is not set +# CONFIG_RTC_DRV_DS1302 is not set +# CONFIG_RTC_DRV_DS1305 is not set +# CONFIG_RTC_DRV_DS1343 is not set +# CONFIG_RTC_DRV_DS1347 is not set +# CONFIG_RTC_DRV_DS1390 is not set +# CONFIG_RTC_DRV_MAX6916 is not set +# CONFIG_RTC_DRV_R9701 is not set +# CONFIG_RTC_DRV_RX4581 is not set +# CONFIG_RTC_DRV_RX6110 is not set +# CONFIG_RTC_DRV_RS5C348 is not set +# CONFIG_RTC_DRV_MAX6902 is not set +# CONFIG_RTC_DRV_PCF2123 is not set +# CONFIG_RTC_DRV_MCP795 is not set +CONFIG_RTC_I2C_AND_SPI=y + +# +# SPI and I2C RTC drivers +# +CONFIG_RTC_DRV_DS3232=y +CONFIG_RTC_DRV_DS3232_HWMON=y +CONFIG_RTC_DRV_PCF2127=y +# CONFIG_RTC_DRV_RV3029C2 is not set + +# +# Platform RTC drivers +# +# CONFIG_RTC_DRV_DS1286 is not set +# CONFIG_RTC_DRV_DS1511 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1685_FAMILY is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_DS2404 is not set +CONFIG_RTC_DRV_EFI=y +# CONFIG_RTC_DRV_STK17TA8 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_M48T35 is not set +# CONFIG_RTC_DRV_M48T59 is not set +# CONFIG_RTC_DRV_MSM6242 is not set +# CONFIG_RTC_DRV_BQ4802 is not set +# CONFIG_RTC_DRV_RP5C01 is not set +# CONFIG_RTC_DRV_V3020 is not set +# CONFIG_RTC_DRV_ZYNQMP is not set +# CONFIG_RTC_DRV_CROS_EC is not set + +# +# on-CPU RTC drivers +# +CONFIG_RTC_DRV_FSL_FTM_ALARM=y +CONFIG_HAVE_S3C_RTC=y +CONFIG_RTC_DRV_S3C=y +# CONFIG_RTC_DRV_SH is not set +# CONFIG_RTC_DRV_PL030 is not set +CONFIG_RTC_DRV_PL031=y +CONFIG_RTC_DRV_SUN6I=y +# CONFIG_RTC_DRV_MV is not set +# CONFIG_RTC_DRV_ARMADA38X is not set +# CONFIG_RTC_DRV_CADENCE is not set +# CONFIG_RTC_DRV_FTRTC010 is not set +# CONFIG_RTC_DRV_PM8XXX is not set +CONFIG_RTC_DRV_TEGRA=y +# CONFIG_RTC_DRV_SNVS is not set +# CONFIG_RTC_DRV_MT7622 is not set +CONFIG_RTC_DRV_XGENE=y +# CONFIG_RTC_DRV_R7301 is not set + +# +# HID Sensor RTC drivers +# +CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set + +# +# DMA Devices +# +CONFIG_ASYNC_TX_ENABLE_CHANNEL_SWITCH=y +CONFIG_DMA_ENGINE=y +CONFIG_DMA_VIRTUAL_CHANNELS=y +CONFIG_DMA_ACPI=y +CONFIG_DMA_OF=y +# CONFIG_ALTERA_MSGDMA is not set +# CONFIG_AMBA_PL08X is not set +# CONFIG_AXI_DMAC is not set +CONFIG_DMA_BCM2835=n +# CONFIG_DMA_SUN6I is not set +# CONFIG_DW_AXI_DMAC is not set +CONFIG_FSL_EDMA=y +# CONFIG_FSL_QDMA is not set +# CONFIG_INTEL_IDMA64 is not set +# CONFIG_K3_DMA is not set +# CONFIG_MV_XOR is not set +CONFIG_MV_XOR_V2=y +CONFIG_PL330_DMA=y +# CONFIG_SPRD_DMA is not set +CONFIG_TEGRA20_APB_DMA=y +# CONFIG_TEGRA210_ADMA is not set +# CONFIG_UNIPHIER_MDMAC is not set +# CONFIG_XGENE_DMA is not set +# CONFIG_XILINX_DMA is not set +# CONFIG_XILINX_ZYNQMP_DMA is not set +# CONFIG_ZX_DMA is not set +# CONFIG_MTK_HSDMA is not set +# CONFIG_MTK_CQDMA is not set +# CONFIG_MTK_UART_APDMA is not set +CONFIG_QCOM_BAM_DMA=y +CONFIG_QCOM_HIDMA_MGMT=y +CONFIG_QCOM_HIDMA=y +# CONFIG_DW_DMAC is not set +# CONFIG_DW_DMAC_PCI is not set +# CONFIG_DW_EDMA is not set +# CONFIG_DW_EDMA_PCIE is not set +CONFIG_RENESAS_DMA=y +CONFIG_RCAR_DMAC=y +# CONFIG_RENESAS_USB_DMAC is not set + +# +# DMA Clients +# +# CONFIG_ASYNC_TX_DMA is not set +CONFIG_DMATEST=y +CONFIG_DMA_ENGINE_RAID=y + +# +# DMABUF options +# +CONFIG_SYNC_FILE=y +# CONFIG_SW_SYNC is not set +# CONFIG_UDMABUF is not set +# CONFIG_DMABUF_SELFTESTS is not set +# end of DMABUF options + +# CONFIG_AUXDISPLAY is not set +# CONFIG_UIO is not set +CONFIG_VFIO_IOMMU_TYPE1=y +CONFIG_VFIO_VIRQFD=y +CONFIG_VFIO=y +# CONFIG_VFIO_NOIOMMU is not set +CONFIG_VFIO_PCI=y +CONFIG_VFIO_PCI_MMAP=y +CONFIG_VFIO_PCI_INTX=y +# CONFIG_VFIO_PLATFORM is not set +# CONFIG_VFIO_MDEV is not set +# CONFIG_VIRT_DRIVERS is not set +CONFIG_VIRTIO=y +CONFIG_VIRTIO_MENU=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTIO_PCI_LEGACY=y +CONFIG_VIRTIO_BALLOON=y +# CONFIG_VIRTIO_INPUT is not set +CONFIG_VIRTIO_MMIO=y +CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y + +# +# Microsoft Hyper-V guest support +# +# end of Microsoft Hyper-V guest support + +# +# Xen driver support +# +CONFIG_XEN_BALLOON=y +CONFIG_XEN_SCRUB_PAGES_DEFAULT=y +CONFIG_XEN_DEV_EVTCHN=y +CONFIG_XEN_BACKEND=y +CONFIG_XENFS=y +CONFIG_XEN_COMPAT_XENFS=y +CONFIG_XEN_SYS_HYPERVISOR=y +CONFIG_XEN_XENBUS_FRONTEND=y +CONFIG_XEN_GNTDEV=y +CONFIG_XEN_GRANT_DEV_ALLOC=y +# CONFIG_XEN_GRANT_DMA_ALLOC is not set +CONFIG_SWIOTLB_XEN=y +# CONFIG_XEN_PVCALLS_FRONTEND is not set +# CONFIG_XEN_PVCALLS_BACKEND is not set +CONFIG_XEN_PRIVCMD=y +CONFIG_XEN_EFI=y +CONFIG_XEN_AUTO_XLATE=y +# end of Xen driver support + +# CONFIG_GREYBUS is not set +CONFIG_STAGING=y +# CONFIG_PRISM2_USB is not set +# CONFIG_COMEDI is not set +# CONFIG_RTL8192U is not set +# CONFIG_RTLLIB is not set +# CONFIG_RTL8723BS is not set +# CONFIG_R8712U is not set +# CONFIG_R8188EU is not set +# CONFIG_RTS5208 is not set +# CONFIG_VT6655 is not set +# CONFIG_VT6656 is not set + +# +# IIO staging drivers +# + +# +# Accelerometers +# +# CONFIG_ADIS16203 is not set +# CONFIG_ADIS16240 is not set +# end of Accelerometers + +# +# Analog to digital converters +# +# CONFIG_AD7816 is not set +# CONFIG_AD7192 is not set +# CONFIG_AD7280 is not set +# end of Analog to digital converters + +# +# Analog digital bi-direction converters +# +# CONFIG_ADT7316 is not set +# end of Analog digital bi-direction converters + +# +# Capacitance to digital converters +# +# CONFIG_AD7150 is not set +# CONFIG_AD7746 is not set +# end of Capacitance to digital converters + +# +# Direct Digital Synthesis +# +# CONFIG_AD9832 is not set +# CONFIG_AD9834 is not set +# end of Direct Digital Synthesis + +# +# Network Analyzer, Impedance Converters +# +# CONFIG_AD5933 is not set +# end of Network Analyzer, Impedance Converters + +# +# Active energy metering IC +# +# CONFIG_ADE7854 is not set +# end of Active energy metering IC + +# +# Resolver to digital converters +# +# CONFIG_AD2S1210 is not set +# end of Resolver to digital converters +# end of IIO staging drivers + +# CONFIG_FB_SM750 is not set +# CONFIG_USB_EMXX is not set + +# +# Speakup console speech +# +# CONFIG_SPEAKUP is not set +# end of Speakup console speech + +# CONFIG_MFD_NVEC is not set +# CONFIG_STAGING_MEDIA is not set + +# +# Android +# +# end of Android + +# CONFIG_STAGING_BOARD is not set +# CONFIG_LTE_GDM724X is not set +# CONFIG_GS_FPGABOOT is not set +# CONFIG_UNISYSSPAR is not set +# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set +# CONFIG_FB_TFT is not set +CONFIG_FSL_DPAA2=y +# CONFIG_FSL_DPAA2_ETHSW is not set +# CONFIG_WILC1000_SDIO is not set +# CONFIG_WILC1000_SPI is not set +# CONFIG_MOST is not set +# CONFIG_KS7010 is not set +# CONFIG_PI433 is not set + +# +# Gasket devices +# +# CONFIG_STAGING_GASKET_FRAMEWORK is not set +# end of Gasket devices + +# CONFIG_XIL_AXIS_FIFO is not set +# CONFIG_FIELDBUS_DEV is not set +# CONFIG_USB_WUSB_CBAF is not set +# CONFIG_UWB is not set +# CONFIG_EXFAT_FS is not set +# CONFIG_QLGE is not set +# CONFIG_GOLDFISH is not set +CONFIG_MFD_CROS_EC=y +CONFIG_CHROME_PLATFORMS=y +# CONFIG_CHROMEOS_TBMC is not set +CONFIG_CROS_EC=y +# CONFIG_CROS_EC_I2C is not set +# CONFIG_CROS_EC_SPI is not set +CONFIG_CROS_EC_PROTO=y +# CONFIG_CROS_KBD_LED_BACKLIGHT is not set +# CONFIG_CROS_EC_CHARDEV is not set +CONFIG_CROS_EC_LIGHTBAR=y +CONFIG_CROS_EC_VBC=y +CONFIG_CROS_EC_DEBUGFS=y +CONFIG_CROS_EC_SYSFS=y +# CONFIG_MELLANOX_PLATFORM is not set +CONFIG_CLKDEV_LOOKUP=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_COMMON_CLK=y + +# +# Common Clock Framework +# +CONFIG_COMMON_CLK_VERSATILE=y +CONFIG_CLK_SP810=y +CONFIG_CLK_VEXPRESS_OSC=y +# CONFIG_CLK_HSDK is not set +# CONFIG_COMMON_CLK_MAX77686 is not set +# CONFIG_COMMON_CLK_MAX9485 is not set +CONFIG_COMMON_CLK_RK808=y +CONFIG_COMMON_CLK_HI655X=y +# CONFIG_COMMON_CLK_SI5341 is not set +# CONFIG_COMMON_CLK_SI5351 is not set +# CONFIG_COMMON_CLK_SI514 is not set +# CONFIG_COMMON_CLK_SI544 is not set +# CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_COMMON_CLK_CDCE706 is not set +# CONFIG_COMMON_CLK_CDCE925 is not set +CONFIG_COMMON_CLK_CS2000_CP=y +CONFIG_COMMON_CLK_S2MPS11=y +CONFIG_CLK_QORIQ=y +CONFIG_COMMON_CLK_XGENE=y +CONFIG_COMMON_CLK_PWM=y +# CONFIG_COMMON_CLK_VC5 is not set +# CONFIG_COMMON_CLK_FIXED_MMIO is not set +CONFIG_CLK_BCM2835=y +CONFIG_COMMON_CLK_IPROC=y +CONFIG_CLK_BCM_NS2=y +CONFIG_CLK_BCM_SR=y +CONFIG_COMMON_CLK_HI3516CV300=y +CONFIG_COMMON_CLK_HI3519=y +CONFIG_COMMON_CLK_HI3660=y +CONFIG_COMMON_CLK_HI3670=y +CONFIG_COMMON_CLK_HI3798CV200=y +CONFIG_COMMON_CLK_HI6220=y +CONFIG_RESET_HISI=y + +# +# Clock driver for MediaTek SoC +# +CONFIG_COMMON_CLK_MEDIATEK=y +CONFIG_COMMON_CLK_MT2712=y +# CONFIG_COMMON_CLK_MT2712_BDPSYS is not set +# CONFIG_COMMON_CLK_MT2712_IMGSYS is not set +# CONFIG_COMMON_CLK_MT2712_JPGDECSYS is not set +# CONFIG_COMMON_CLK_MT2712_MFGCFG is not set +# CONFIG_COMMON_CLK_MT2712_MMSYS is not set +# CONFIG_COMMON_CLK_MT2712_VDECSYS is not set +# CONFIG_COMMON_CLK_MT2712_VENCSYS is not set +CONFIG_COMMON_CLK_MT6779=y +# CONFIG_COMMON_CLK_MT6779_MMSYS is not set +# CONFIG_COMMON_CLK_MT6779_IMGSYS is not set +# CONFIG_COMMON_CLK_MT6779_IPESYS is not set +# CONFIG_COMMON_CLK_MT6779_CAMSYS is not set +# CONFIG_COMMON_CLK_MT6779_VDECSYS is not set +# CONFIG_COMMON_CLK_MT6779_VENCSYS is not set +# CONFIG_COMMON_CLK_MT6779_MFGCFG is not set +# CONFIG_COMMON_CLK_MT6779_AUDSYS is not set +CONFIG_COMMON_CLK_MT6797=y +# CONFIG_COMMON_CLK_MT6797_MMSYS is not set +# CONFIG_COMMON_CLK_MT6797_IMGSYS is not set +# CONFIG_COMMON_CLK_MT6797_VDECSYS is not set +# CONFIG_COMMON_CLK_MT6797_VENCSYS is not set +CONFIG_COMMON_CLK_MT7622=y +# CONFIG_COMMON_CLK_MT7622_ETHSYS is not set +# CONFIG_COMMON_CLK_MT7622_HIFSYS is not set +# CONFIG_COMMON_CLK_MT7622_AUDSYS is not set +CONFIG_COMMON_CLK_MT8173=y +CONFIG_COMMON_CLK_MT8183=y +# CONFIG_COMMON_CLK_MT8183_AUDIOSYS is not set +# CONFIG_COMMON_CLK_MT8183_CAMSYS is not set +# CONFIG_COMMON_CLK_MT8183_IMGSYS is not set +# CONFIG_COMMON_CLK_MT8183_IPU_CORE0 is not set +# CONFIG_COMMON_CLK_MT8183_IPU_CORE1 is not set +# CONFIG_COMMON_CLK_MT8183_IPU_ADL is not set +# CONFIG_COMMON_CLK_MT8183_IPU_CONN is not set +# CONFIG_COMMON_CLK_MT8183_MFGCFG is not set +# CONFIG_COMMON_CLK_MT8183_MMSYS is not set +# CONFIG_COMMON_CLK_MT8183_VDECSYS is not set +# CONFIG_COMMON_CLK_MT8183_VENCSYS is not set +CONFIG_COMMON_CLK_MT8516=y +# CONFIG_COMMON_CLK_MT8516_AUDSYS is not set +# end of Clock driver for MediaTek SoC + +CONFIG_COMMON_CLK_MESON_REGMAP=y +CONFIG_COMMON_CLK_MESON_DUALDIV=y +CONFIG_COMMON_CLK_MESON_MPLL=y +CONFIG_COMMON_CLK_MESON_PLL=y +CONFIG_COMMON_CLK_MESON_VID_PLL_DIV=y +CONFIG_COMMON_CLK_MESON_AO_CLKC=y +CONFIG_COMMON_CLK_MESON_EE_CLKC=y +CONFIG_COMMON_CLK_MESON_CPU_DYNDIV=y +CONFIG_COMMON_CLK_GXBB=y +CONFIG_COMMON_CLK_AXG=y +# CONFIG_COMMON_CLK_AXG_AUDIO is not set +CONFIG_COMMON_CLK_G12A=y +CONFIG_ARMADA_AP_CP_HELPER=y +CONFIG_ARMADA_37XX_CLK=y +CONFIG_ARMADA_AP806_SYSCON=y +CONFIG_ARMADA_CP110_SYSCON=y +CONFIG_QCOM_GDSC=y +CONFIG_COMMON_CLK_QCOM=y +# CONFIG_QCOM_A53PLL is not set +# CONFIG_APQ_GCC_8084 is not set +# CONFIG_APQ_MMCC_8084 is not set +# CONFIG_IPQ_GCC_4019 is not set +# CONFIG_IPQ_GCC_806X is not set +# CONFIG_IPQ_LCC_806X is not set +# CONFIG_IPQ_GCC_8074 is not set +# CONFIG_MSM_GCC_8660 is not set +CONFIG_MSM_GCC_8916=y +# CONFIG_MSM_GCC_8960 is not set +# CONFIG_MSM_LCC_8960 is not set +# CONFIG_MDM_GCC_9615 is not set +# CONFIG_MDM_LCC_9615 is not set +# CONFIG_MSM_MMCC_8960 is not set +# CONFIG_MSM_GCC_8974 is not set +# CONFIG_MSM_MMCC_8974 is not set +# CONFIG_MSM_GCC_8994 is not set +CONFIG_MSM_GCC_8996=y +CONFIG_MSM_MMCC_8996=y +# CONFIG_MSM_GCC_8998 is not set +# CONFIG_QCS_GCC_404 is not set +# CONFIG_SDM_CAMCC_845 is not set +# CONFIG_SDM_GCC_660 is not set +# CONFIG_QCS_TURING_404 is not set +# CONFIG_SDM_GCC_845 is not set +# CONFIG_SDM_GPUCC_845 is not set +# CONFIG_SDM_VIDEOCC_845 is not set +# CONFIG_SDM_DISPCC_845 is not set +# CONFIG_SDM_LPASSCC_845 is not set +# CONFIG_SM_GCC_8150 is not set +# CONFIG_SPMI_PMIC_CLKDIV is not set +# CONFIG_QCOM_HFPLL is not set +# CONFIG_KPSS_XCC is not set +CONFIG_CLK_RENESAS=y +CONFIG_CLK_R8A7795=y +CONFIG_CLK_R8A7796=y +# CONFIG_CLK_R9A06G032 is not set +CONFIG_CLK_RCAR_GEN3_CPG=y +# CONFIG_CLK_RCAR_USB2_CLOCK_SEL is not set +CONFIG_CLK_RENESAS_CPG_MSSR=y +CONFIG_CLK_RENESAS_DIV6=y +CONFIG_COMMON_CLK_SAMSUNG=y +CONFIG_EXYNOS_ARM64_COMMON_CLK=y +CONFIG_EXYNOS_AUDSS_CLK_CON=y +CONFIG_SPRD_COMMON_CLK=y +CONFIG_SPRD_SC9860_CLK=y +CONFIG_CLK_SUNXI=y +CONFIG_CLK_SUNXI_CLOCKS=y +CONFIG_CLK_SUNXI_PRCM_SUN6I=y +CONFIG_CLK_SUNXI_PRCM_SUN8I=y +CONFIG_CLK_SUNXI_PRCM_SUN9I=y +CONFIG_SUNXI_CCU=y +CONFIG_SUN50I_A64_CCU=y +CONFIG_SUN50I_H6_CCU=y +CONFIG_SUN50I_H6_R_CCU=y +# CONFIG_SUN8I_A83T_CCU is not set +# CONFIG_SUN8I_H3_CCU is not set +CONFIG_SUN8I_DE2_CCU=y +CONFIG_SUN8I_R_CCU=y +CONFIG_TEGRA_CLK_DFLL=y +CONFIG_CLK_UNIPHIER=y +# CONFIG_COMMON_CLK_ZYNQMP is not set +# end of Common Clock Framework + +CONFIG_HWSPINLOCK=y +CONFIG_HWSPINLOCK_QCOM=y +# CONFIG_HWSPINLOCK_SPRD is not set + +# +# Clock Source drivers +# +CONFIG_TIMER_OF=y +CONFIG_TIMER_ACPI=y +CONFIG_TIMER_PROBE=y +CONFIG_CLKSRC_MMIO=y +CONFIG_DW_APB_TIMER=y +CONFIG_DW_APB_TIMER_OF=y +CONFIG_ROCKCHIP_TIMER=y +CONFIG_TEGRA_TIMER=y +CONFIG_ARM_ARCH_TIMER=y +CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y +CONFIG_ARM_ARCH_TIMER_OOL_WORKAROUND=y +CONFIG_FSL_ERRATUM_A008585=y +CONFIG_HISILICON_ERRATUM_161010101=y +CONFIG_ARM64_ERRATUM_858921=y +CONFIG_SUN50I_ERRATUM_UNKNOWN1=y +CONFIG_ARM_TIMER_SP804=y +CONFIG_SYS_SUPPORTS_SH_CMT=y +CONFIG_MTK_TIMER=y +CONFIG_SPRD_TIMER=y +CONFIG_SYS_SUPPORTS_SH_TMU=y +CONFIG_SH_TIMER_CMT=y +CONFIG_SH_TIMER_TMU=y +CONFIG_CLKSRC_VERSATILE=y +# end of Clock Source drivers + +# CONFIG_MAILBOX is not set +CONFIG_IOMMU_IOVA=y +CONFIG_IOMMU_API=y +CONFIG_IOMMU_SUPPORT=y + +# +# Generic IOMMU Pagetable Support +# +CONFIG_IOMMU_IO_PGTABLE=y +CONFIG_IOMMU_IO_PGTABLE_LPAE=y +# CONFIG_IOMMU_IO_PGTABLE_LPAE_SELFTEST is not set +# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set +# end of Generic IOMMU Pagetable Support + +# CONFIG_IOMMU_DEBUGFS is not set +# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set +CONFIG_OF_IOMMU=y +CONFIG_IOMMU_DMA=y +# CONFIG_ROCKCHIP_IOMMU is not set +# CONFIG_TEGRA_IOMMU_SMMU is not set +# CONFIG_EXYNOS_IOMMU is not set +# CONFIG_IPMMU_VMSA is not set +CONFIG_ARM_SMMU=y +CONFIG_ARM_SMMU_DISABLE_BYPASS_BY_DEFAULT=y +CONFIG_ARM_SMMU_V3=y +# CONFIG_MTK_IOMMU is not set +# CONFIG_QCOM_IOMMU is not set +# CONFIG_VIRTIO_IOMMU is not set + +# +# Remoteproc drivers +# +# CONFIG_REMOTEPROC is not set +# end of Remoteproc drivers + +# +# Rpmsg drivers +# +# CONFIG_RPMSG_VIRTIO is not set +# end of Rpmsg drivers + +# CONFIG_SOUNDWIRE is not set + +# +# SOC (System On Chip) specific Drivers +# + +# +# Amlogic SoC drivers +# +# CONFIG_MESON_CANVAS is not set +CONFIG_MESON_CLK_MEASURE=y +CONFIG_MESON_GX_SOCINFO=y +CONFIG_MESON_GX_PM_DOMAINS=y +CONFIG_MESON_EE_PM_DOMAINS=y +CONFIG_MESON_MX_SOCINFO=y +# end of Amlogic SoC drivers + +# +# Aspeed SoC drivers +# +# end of Aspeed SoC drivers + +# +# Broadcom SoC drivers +# +CONFIG_BCM2835_POWER=y +# CONFIG_SOC_BRCMSTB is not set +# end of Broadcom SoC drivers + +# +# NXP/Freescale QorIQ SoC drivers +# +# CONFIG_FSL_DPAA is not set +CONFIG_FSL_GUTS=y +CONFIG_FSL_MC_DPIO=y +CONFIG_DPAA2_CONSOLE=y +# end of NXP/Freescale QorIQ SoC drivers + +# +# i.MX SoC drivers +# +# end of i.MX SoC drivers + +# +# MediaTek SoC drivers +# +# CONFIG_MTK_CMDQ is not set +CONFIG_MTK_INFRACFG=y +# CONFIG_MTK_PMIC_WRAP is not set +CONFIG_MTK_SCPSYS=y +# end of MediaTek SoC drivers + +# +# Qualcomm SoC drivers +# +CONFIG_QCOM_COMMAND_DB=y +# CONFIG_QCOM_GENI_SE is not set +# CONFIG_QCOM_GSBI is not set +# CONFIG_QCOM_LLCC is not set +CONFIG_QCOM_MDT_LOADER=n +# CONFIG_QCOM_RMTFS_MEM is not set +# CONFIG_QCOM_RPMH is not set +CONFIG_QCOM_SMEM=y +# CONFIG_QCOM_SMSM is not set +# CONFIG_QCOM_SOCINFO is not set +# end of Qualcomm SoC drivers + +CONFIG_SOC_RENESAS=y +CONFIG_ARCH_RCAR_GEN3=y +# CONFIG_ARCH_R8A774A1 is not set +# CONFIG_ARCH_R8A774C0 is not set +CONFIG_ARCH_R8A7795=y +CONFIG_ARCH_R8A7796=y +# CONFIG_ARCH_R8A77965 is not set +# CONFIG_ARCH_R8A77970 is not set +# CONFIG_ARCH_R8A77980 is not set +# CONFIG_ARCH_R8A77990 is not set +# CONFIG_ARCH_R8A77995 is not set +CONFIG_SYSC_R8A7795=y +CONFIG_SYSC_R8A7796=y +CONFIG_RST_RCAR=y +CONFIG_SYSC_RCAR=y +CONFIG_ROCKCHIP_GRF=y +CONFIG_ROCKCHIP_PM_DOMAINS=y +CONFIG_SOC_SAMSUNG=y +CONFIG_EXYNOS_CHIPID=y +CONFIG_EXYNOS_PMU=y +CONFIG_EXYNOS_PM_DOMAINS=y +CONFIG_SUNXI_SRAM=y +CONFIG_ARCH_TEGRA_132_SOC=y +CONFIG_ARCH_TEGRA_210_SOC=y +# CONFIG_ARCH_TEGRA_186_SOC is not set +# CONFIG_ARCH_TEGRA_194_SOC is not set +CONFIG_SOC_TEGRA_FUSE=y +CONFIG_SOC_TEGRA_FLOWCTRL=y +CONFIG_SOC_TEGRA_PMC=y +# CONFIG_SOC_TI is not set + +# +# Xilinx SoC drivers +# +# CONFIG_XILINX_VCU is not set +CONFIG_ZYNQMP_POWER=y +CONFIG_ZYNQMP_PM_DOMAINS=y +# end of Xilinx SoC drivers + +# CONFIG_SOC_ZTE is not set +# end of SOC (System On Chip) specific Drivers + +# CONFIG_PM_DEVFREQ is not set +CONFIG_EXTCON=y + +# +# Extcon Device Drivers +# +# CONFIG_EXTCON_ADC_JACK is not set +# CONFIG_EXTCON_FSA9480 is not set +# CONFIG_EXTCON_GPIO is not set +# CONFIG_EXTCON_MAX3355 is not set +# CONFIG_EXTCON_PTN5150 is not set +# CONFIG_EXTCON_QCOM_SPMI_MISC is not set +# CONFIG_EXTCON_RT8973A is not set +# CONFIG_EXTCON_SM5502 is not set +CONFIG_EXTCON_USB_GPIO=y +# CONFIG_EXTCON_USBC_CROS_EC is not set +CONFIG_MEMORY=y +# CONFIG_ARM_PL172_MPMC is not set +CONFIG_TEGRA_MC=y +CONFIG_IIO=y +# CONFIG_IIO_BUFFER is not set +# CONFIG_IIO_CONFIGFS is not set +# CONFIG_IIO_TRIGGER is not set +# CONFIG_IIO_SW_DEVICE is not set +# CONFIG_IIO_SW_TRIGGER is not set + +# +# Accelerometers +# +# CONFIG_ADIS16201 is not set +# CONFIG_ADIS16209 is not set +# CONFIG_ADXL345_I2C is not set +# CONFIG_ADXL345_SPI is not set +# CONFIG_ADXL372_SPI is not set +# CONFIG_ADXL372_I2C is not set +# CONFIG_BMA180 is not set +# CONFIG_BMA220 is not set +# CONFIG_BMC150_ACCEL is not set +# CONFIG_DA280 is not set +# CONFIG_DA311 is not set +# CONFIG_DMARD06 is not set +# CONFIG_DMARD09 is not set +# CONFIG_DMARD10 is not set +# CONFIG_IIO_ST_ACCEL_3AXIS is not set +# CONFIG_KXSD9 is not set +# CONFIG_KXCJK1013 is not set +# CONFIG_MC3230 is not set +# CONFIG_MMA7455_I2C is not set +# CONFIG_MMA7455_SPI is not set +# CONFIG_MMA7660 is not set +# CONFIG_MMA8452 is not set +# CONFIG_MMA9551 is not set +# CONFIG_MMA9553 is not set +# CONFIG_MXC4005 is not set +# CONFIG_MXC6255 is not set +# CONFIG_SCA3000 is not set +# CONFIG_STK8312 is not set +# CONFIG_STK8BA50 is not set +# end of Accelerometers + +# +# Analog to digital converters +# +# CONFIG_AD7124 is not set +# CONFIG_AD7266 is not set +# CONFIG_AD7291 is not set +# CONFIG_AD7298 is not set +# CONFIG_AD7476 is not set +# CONFIG_AD7606_IFACE_PARALLEL is not set +# CONFIG_AD7606_IFACE_SPI is not set +# CONFIG_AD7766 is not set +# CONFIG_AD7768_1 is not set +# CONFIG_AD7780 is not set +# CONFIG_AD7791 is not set +# CONFIG_AD7793 is not set +# CONFIG_AD7887 is not set +# CONFIG_AD7923 is not set +# CONFIG_AD7949 is not set +# CONFIG_AD799X is not set +# CONFIG_BCM_IPROC_ADC is not set +# CONFIG_BERLIN2_ADC is not set +# CONFIG_CC10001_ADC is not set +# CONFIG_ENVELOPE_DETECTOR is not set +CONFIG_EXYNOS_ADC=y +# CONFIG_HI8435 is not set +# CONFIG_HX711 is not set +# CONFIG_INA2XX_ADC is not set +# CONFIG_LTC2471 is not set +# CONFIG_LTC2485 is not set +# CONFIG_LTC2497 is not set +# CONFIG_MAX1027 is not set +# CONFIG_MAX11100 is not set +# CONFIG_MAX1118 is not set +# CONFIG_MAX1363 is not set +# CONFIG_MAX9611 is not set +# CONFIG_MCP320X is not set +# CONFIG_MCP3422 is not set +# CONFIG_MCP3911 is not set +# CONFIG_MEDIATEK_MT6577_AUXADC is not set +CONFIG_MESON_SARADC=y +# CONFIG_NAU7802 is not set +# CONFIG_QCOM_SPMI_IADC is not set +# CONFIG_QCOM_SPMI_VADC is not set +# CONFIG_QCOM_SPMI_ADC5 is not set +# CONFIG_ROCKCHIP_SARADC is not set +# CONFIG_SD_ADC_MODULATOR is not set +# CONFIG_TI_ADC081C is not set +# CONFIG_TI_ADC0832 is not set +# CONFIG_TI_ADC084S021 is not set +# CONFIG_TI_ADC12138 is not set +# CONFIG_TI_ADC108S102 is not set +# CONFIG_TI_ADC128S052 is not set +# CONFIG_TI_ADC161S626 is not set +# CONFIG_TI_ADS1015 is not set +# CONFIG_TI_ADS7950 is not set +# CONFIG_TI_ADS8344 is not set +# CONFIG_TI_ADS8688 is not set +# CONFIG_TI_ADS124S08 is not set +# CONFIG_TI_TLC4541 is not set +# CONFIG_VF610_ADC is not set +# CONFIG_XILINX_XADC is not set +# end of Analog to digital converters + +# +# Analog Front Ends +# +# CONFIG_IIO_RESCALE is not set +# end of Analog Front Ends + +# +# Amplifiers +# +# CONFIG_AD8366 is not set +# end of Amplifiers + +# +# Chemical Sensors +# +# CONFIG_ATLAS_PH_SENSOR is not set +# CONFIG_BME680 is not set +# CONFIG_CCS811 is not set +# CONFIG_IAQCORE is not set +# CONFIG_SENSIRION_SGP30 is not set +# CONFIG_SPS30 is not set +# CONFIG_VZ89X is not set +# end of Chemical Sensors + +# CONFIG_IIO_CROS_EC_SENSORS_CORE is not set + +# +# Hid Sensor IIO Common +# +# end of Hid Sensor IIO Common + +# +# SSP Sensor Common +# +# CONFIG_IIO_SSP_SENSORHUB is not set +# end of SSP Sensor Common + +# +# Digital to analog converters +# +# CONFIG_AD5064 is not set +# CONFIG_AD5360 is not set +# CONFIG_AD5380 is not set +# CONFIG_AD5421 is not set +# CONFIG_AD5446 is not set +# CONFIG_AD5449 is not set +# CONFIG_AD5592R is not set +# CONFIG_AD5593R is not set +# CONFIG_AD5504 is not set +# CONFIG_AD5624R_SPI is not set +# CONFIG_LTC1660 is not set +# CONFIG_LTC2632 is not set +# CONFIG_AD5686_SPI is not set +# CONFIG_AD5696_I2C is not set +# CONFIG_AD5755 is not set +# CONFIG_AD5758 is not set +# CONFIG_AD5761 is not set +# CONFIG_AD5764 is not set +# CONFIG_AD5791 is not set +# CONFIG_AD7303 is not set +# CONFIG_AD8801 is not set +# CONFIG_DPOT_DAC is not set +# CONFIG_DS4424 is not set +# CONFIG_M62332 is not set +# CONFIG_MAX517 is not set +# CONFIG_MAX5821 is not set +# CONFIG_MCP4725 is not set +# CONFIG_MCP4922 is not set +# CONFIG_TI_DAC082S085 is not set +# CONFIG_TI_DAC5571 is not set +# CONFIG_TI_DAC7311 is not set +# CONFIG_TI_DAC7612 is not set +# CONFIG_VF610_DAC is not set +# end of Digital to analog converters + +# +# IIO dummy driver +# +# end of IIO dummy driver + +# +# Frequency Synthesizers DDS/PLL +# + +# +# Clock Generator/Distribution +# +# CONFIG_AD9523 is not set +# end of Clock Generator/Distribution + +# +# Phase-Locked Loop (PLL) frequency synthesizers +# +# CONFIG_ADF4350 is not set +# CONFIG_ADF4371 is not set +# end of Phase-Locked Loop (PLL) frequency synthesizers +# end of Frequency Synthesizers DDS/PLL + +# +# Digital gyroscope sensors +# +# CONFIG_ADIS16080 is not set +# CONFIG_ADIS16130 is not set +# CONFIG_ADIS16136 is not set +# CONFIG_ADIS16260 is not set +# CONFIG_ADXRS450 is not set +# CONFIG_BMG160 is not set +# CONFIG_FXAS21002C is not set +# CONFIG_MPU3050_I2C is not set +# CONFIG_IIO_ST_GYRO_3AXIS is not set +# CONFIG_ITG3200 is not set +# end of Digital gyroscope sensors + +# +# Health Sensors +# + +# +# Heart Rate Monitors +# +# CONFIG_AFE4403 is not set +# CONFIG_AFE4404 is not set +# CONFIG_MAX30100 is not set +# CONFIG_MAX30102 is not set +# end of Heart Rate Monitors +# end of Health Sensors + +# +# Humidity sensors +# +# CONFIG_AM2315 is not set +# CONFIG_DHT11 is not set +# CONFIG_HDC100X is not set +# CONFIG_HTS221 is not set +# CONFIG_HTU21 is not set +# CONFIG_SI7005 is not set +# CONFIG_SI7020 is not set +# end of Humidity sensors + +# +# Inertial measurement units +# +# CONFIG_ADIS16400 is not set +# CONFIG_ADIS16460 is not set +# CONFIG_ADIS16480 is not set +# CONFIG_BMI160_I2C is not set +# CONFIG_BMI160_SPI is not set +# CONFIG_KMX61 is not set +# CONFIG_INV_MPU6050_I2C is not set +# CONFIG_INV_MPU6050_SPI is not set +# CONFIG_IIO_ST_LSM6DSX is not set +# end of Inertial measurement units + +# +# Light sensors +# +# CONFIG_ACPI_ALS is not set +# CONFIG_ADJD_S311 is not set +# CONFIG_AL3320A is not set +# CONFIG_APDS9300 is not set +# CONFIG_APDS9960 is not set +# CONFIG_BH1750 is not set +# CONFIG_BH1780 is not set +# CONFIG_CM32181 is not set +# CONFIG_CM3232 is not set +# CONFIG_CM3323 is not set +# CONFIG_CM3605 is not set +# CONFIG_CM36651 is not set +# CONFIG_GP2AP020A00F is not set +# CONFIG_SENSORS_ISL29018 is not set +# CONFIG_SENSORS_ISL29028 is not set +# CONFIG_ISL29125 is not set +# CONFIG_JSA1212 is not set +# CONFIG_RPR0521 is not set +# CONFIG_LTR501 is not set +# CONFIG_LV0104CS is not set +# CONFIG_MAX44000 is not set +# CONFIG_MAX44009 is not set +# CONFIG_NOA1305 is not set +# CONFIG_OPT3001 is not set +# CONFIG_PA12203001 is not set +# CONFIG_SI1133 is not set +# CONFIG_SI1145 is not set +# CONFIG_STK3310 is not set +# CONFIG_ST_UVIS25 is not set +# CONFIG_TCS3414 is not set +# CONFIG_TCS3472 is not set +# CONFIG_SENSORS_TSL2563 is not set +# CONFIG_TSL2583 is not set +# CONFIG_TSL2772 is not set +# CONFIG_TSL4531 is not set +# CONFIG_US5182D is not set +# CONFIG_VCNL4000 is not set +# CONFIG_VCNL4035 is not set +# CONFIG_VEML6070 is not set +# CONFIG_VL6180 is not set +# CONFIG_ZOPT2201 is not set +# end of Light sensors + +# +# Magnetometer sensors +# +# CONFIG_AK8974 is not set +# CONFIG_AK8975 is not set +# CONFIG_AK09911 is not set +# CONFIG_BMC150_MAGN_I2C is not set +# CONFIG_BMC150_MAGN_SPI is not set +# CONFIG_MAG3110 is not set +# CONFIG_MMC35240 is not set +# CONFIG_IIO_ST_MAGN_3AXIS is not set +# CONFIG_SENSORS_HMC5843_I2C is not set +# CONFIG_SENSORS_HMC5843_SPI is not set +# CONFIG_SENSORS_RM3100_I2C is not set +# CONFIG_SENSORS_RM3100_SPI is not set +# end of Magnetometer sensors + +# +# Multiplexers +# +# CONFIG_IIO_MUX is not set +# end of Multiplexers + +# +# Inclinometer sensors +# +# end of Inclinometer sensors + +# +# Digital potentiometers +# +# CONFIG_AD5272 is not set +# CONFIG_DS1803 is not set +# CONFIG_MAX5432 is not set +# CONFIG_MAX5481 is not set +# CONFIG_MAX5487 is not set +# CONFIG_MCP4018 is not set +# CONFIG_MCP4131 is not set +# CONFIG_MCP4531 is not set +# CONFIG_MCP41010 is not set +# CONFIG_TPL0102 is not set +# end of Digital potentiometers + +# +# Digital potentiostats +# +# CONFIG_LMP91000 is not set +# end of Digital potentiostats + +# +# Pressure sensors +# +# CONFIG_ABP060MG is not set +# CONFIG_BMP280 is not set +# CONFIG_DPS310 is not set +# CONFIG_HP03 is not set +# CONFIG_MPL115_I2C is not set +# CONFIG_MPL115_SPI is not set +# CONFIG_MPL3115 is not set +# CONFIG_MS5611 is not set +# CONFIG_MS5637 is not set +# CONFIG_IIO_ST_PRESS is not set +# CONFIG_T5403 is not set +# CONFIG_HP206C is not set +# CONFIG_ZPA2326 is not set +# end of Pressure sensors + +# +# Lightning sensors +# +# CONFIG_AS3935 is not set +# end of Lightning sensors + +# +# Proximity and distance sensors +# +# CONFIG_ISL29501 is not set +# CONFIG_LIDAR_LITE_V2 is not set +# CONFIG_MB1232 is not set +# CONFIG_RFD77402 is not set +# CONFIG_SRF04 is not set +# CONFIG_SX9500 is not set +# CONFIG_SRF08 is not set +# CONFIG_VL53L0X_I2C is not set +# end of Proximity and distance sensors + +# +# Resolver to digital converters +# +# CONFIG_AD2S90 is not set +# CONFIG_AD2S1200 is not set +# end of Resolver to digital converters + +# +# Temperature sensors +# +# CONFIG_MAXIM_THERMOCOUPLE is not set +# CONFIG_MLX90614 is not set +# CONFIG_MLX90632 is not set +# CONFIG_TMP006 is not set +# CONFIG_TMP007 is not set +# CONFIG_TSYS01 is not set +# CONFIG_TSYS02D is not set +# CONFIG_MAX31856 is not set +# end of Temperature sensors + +# CONFIG_NTB is not set +# CONFIG_VME_BUS is not set +CONFIG_PWM=y +CONFIG_PWM_SYSFS=y +# CONFIG_PWM_BCM_IPROC is not set +CONFIG_PWM_BCM2835=n +# CONFIG_PWM_BERLIN is not set +# CONFIG_PWM_CROS_EC is not set +# CONFIG_PWM_FSL_FTM is not set +# CONFIG_PWM_HIBVT is not set +CONFIG_PWM_MESON=n +# CONFIG_PWM_MTK_DISP is not set +# CONFIG_PWM_MEDIATEK is not set +# CONFIG_PWM_PCA9685 is not set +# CONFIG_PWM_RCAR is not set +# CONFIG_PWM_RENESAS_TPU is not set +CONFIG_PWM_ROCKCHIP=y +CONFIG_PWM_SAMSUNG=y +# CONFIG_PWM_SPRD is not set +# CONFIG_PWM_SUN4I is not set +CONFIG_PWM_TEGRA=n +# CONFIG_PWM_ZX is not set + +# +# IRQ chip support +# +CONFIG_IRQCHIP=y +CONFIG_ARM_GIC=y +CONFIG_ARM_GIC_PM=y +CONFIG_ARM_GIC_MAX_NR=1 +CONFIG_ARM_GIC_V2M=y +CONFIG_ARM_GIC_V3=y +CONFIG_ARM_GIC_V3_ITS=y +CONFIG_ARM_GIC_V3_ITS_PCI=y +CONFIG_ARM_GIC_V3_ITS_FSL_MC=y +CONFIG_ALPINE_MSI=y +# CONFIG_AL_FIC is not set +CONFIG_DW_APB_ICTL=y +CONFIG_HISILICON_IRQ_MBIGEN=y +CONFIG_RENESAS_IRQC=y +CONFIG_MVEBU_GICP=y +CONFIG_MVEBU_ICU=y +CONFIG_MVEBU_ODMI=y +CONFIG_MVEBU_PIC=y +CONFIG_MVEBU_SEI=y +CONFIG_LS_SCFG_MSI=y +CONFIG_PARTITION_PERCPU=y +# CONFIG_QCOM_IRQ_COMBINER is not set +CONFIG_IRQ_UNIPHIER_AIDET=y +CONFIG_MESON_IRQ_GPIO=y +# CONFIG_QCOM_PDC is not set +# end of IRQ chip support + +# CONFIG_IPACK_BUS is not set +CONFIG_ARCH_HAS_RESET_CONTROLLER=y +CONFIG_RESET_CONTROLLER=y +CONFIG_RESET_BERLIN=y +CONFIG_RESET_MESON=y +# CONFIG_RESET_MESON_AUDIO_ARB is not set +# CONFIG_RESET_QCOM_AOSS is not set +# CONFIG_RESET_QCOM_PDC is not set +CONFIG_RESET_SIMPLE=y +CONFIG_RESET_SUNXI=y +# CONFIG_RESET_TI_SYSCON is not set +CONFIG_RESET_UNIPHIER=y +CONFIG_RESET_UNIPHIER_GLUE=y +CONFIG_COMMON_RESET_HI3660=y +CONFIG_COMMON_RESET_HI6220=y + +# +# PHY Subsystem +# +CONFIG_GENERIC_PHY=y +CONFIG_PHY_XGENE=y +CONFIG_PHY_SUN4I_USB=y +# CONFIG_PHY_SUN6I_MIPI_DPHY is not set +# CONFIG_PHY_SUN9I_USB is not set +CONFIG_PHY_MESON8B_USB2=y +CONFIG_PHY_MESON_GXL_USB2=y +CONFIG_PHY_MESON_GXL_USB3=y +CONFIG_PHY_MESON_G12A_USB2=y +CONFIG_PHY_MESON_G12A_USB3_PCIE=y +CONFIG_PHY_BCM_SR_USB=y +# CONFIG_BCM_KONA_USB2_PHY is not set +# CONFIG_PHY_BCM_NS_USB2 is not set +# CONFIG_PHY_BCM_NS_USB3 is not set +CONFIG_PHY_NS2_PCIE=y +CONFIG_PHY_NS2_USB_DRD=y +CONFIG_PHY_BRCM_SATA=y +CONFIG_PHY_BCM_SR_PCIE=y +# CONFIG_PHY_CADENCE_DP is not set +# CONFIG_PHY_CADENCE_DPHY is not set +# CONFIG_PHY_CADENCE_SIERRA is not set +# CONFIG_PHY_FSL_IMX8MQ_USB is not set +# CONFIG_PHY_MIXEL_MIPI_DPHY is not set +CONFIG_PHY_HI6220_USB=y +# CONFIG_PHY_HI3660_USB is not set +# CONFIG_PHY_HISTB_COMBPHY is not set +# CONFIG_PHY_HISI_INNO_USB2 is not set +# CONFIG_PHY_BERLIN_SATA is not set +# CONFIG_PHY_BERLIN_USB is not set +CONFIG_PHY_MVEBU_A3700_COMPHY=y +CONFIG_PHY_MVEBU_A3700_UTMI=y +# CONFIG_PHY_MVEBU_A38X_COMPHY is not set +# CONFIG_PHY_MVEBU_CP110_COMPHY is not set +# CONFIG_PHY_PXA_28NM_HSIC is not set +# CONFIG_PHY_PXA_28NM_USB2 is not set +# CONFIG_PHY_MTK_TPHY is not set +# CONFIG_PHY_MTK_UFS is not set +# CONFIG_PHY_MTK_XSPHY is not set +# CONFIG_PHY_CPCAP_USB is not set +# CONFIG_PHY_MAPPHONE_MDM6600 is not set +# CONFIG_PHY_OCELOT_SERDES is not set +# CONFIG_PHY_QCOM_APQ8064_SATA is not set +# CONFIG_PHY_QCOM_IPQ806X_SATA is not set +# CONFIG_PHY_QCOM_PCIE2 is not set +# CONFIG_PHY_QCOM_QMP is not set +# CONFIG_PHY_QCOM_QUSB2 is not set +# CONFIG_PHY_QCOM_UFS is not set +# CONFIG_PHY_QCOM_USB_HS is not set +# CONFIG_PHY_QCOM_USB_HSIC is not set +# CONFIG_PHY_RCAR_GEN2 is not set +# CONFIG_PHY_RCAR_GEN3_PCIE is not set +CONFIG_PHY_RCAR_GEN3_USB2=y +# CONFIG_PHY_RCAR_GEN3_USB3 is not set +# CONFIG_PHY_ROCKCHIP_DP is not set +CONFIG_PHY_ROCKCHIP_EMMC=y +# CONFIG_PHY_ROCKCHIP_INNO_HDMI is not set +CONFIG_PHY_ROCKCHIP_INNO_USB2=y +# CONFIG_PHY_ROCKCHIP_PCIE is not set +# CONFIG_PHY_ROCKCHIP_TYPEC is not set +# CONFIG_PHY_ROCKCHIP_USB is not set +CONFIG_PHY_EXYNOS_DP_VIDEO=y +CONFIG_PHY_EXYNOS_MIPI_VIDEO=y +# CONFIG_PHY_EXYNOS_PCIE is not set +CONFIG_PHY_SAMSUNG_USB2=y +CONFIG_PHY_EXYNOS5_USBDRD=y +# CONFIG_PHY_UNIPHIER_USB2 is not set +# CONFIG_PHY_UNIPHIER_USB3 is not set +# CONFIG_PHY_UNIPHIER_PCIE is not set +CONFIG_PHY_TEGRA_XUSB=y +# CONFIG_PHY_TUSB1210 is not set +# end of PHY Subsystem + +# CONFIG_POWERCAP is not set +# CONFIG_MCB is not set + +# +# Performance monitor support +# +# CONFIG_ARM_CCI_PMU is not set +# CONFIG_ARM_CCN is not set +CONFIG_ARM_PMU=y +CONFIG_ARM_PMU_ACPI=y +# CONFIG_ARM_SMMU_V3_PMU is not set +# CONFIG_ARM_DSU_PMU is not set +# CONFIG_HISI_PMU is not set +# CONFIG_QCOM_L2_PMU is not set +# CONFIG_QCOM_L3_PMU is not set +# CONFIG_XGENE_PMU is not set +# CONFIG_ARM_SPE_PMU is not set +# end of Performance monitor support + +CONFIG_RAS=y + +# +# Android +# +# CONFIG_ANDROID is not set +# end of Android + +# CONFIG_LIBNVDIMM is not set +# CONFIG_DAX is not set +CONFIG_NVMEM=y +CONFIG_NVMEM_SYSFS=y +# CONFIG_MTK_EFUSE is not set +# CONFIG_QCOM_QFPROM is not set +# CONFIG_ROCKCHIP_EFUSE is not set +CONFIG_NVMEM_BCM_OCOTP=y +# CONFIG_NVMEM_SUNXI_SID is not set +# CONFIG_UNIPHIER_EFUSE is not set +# CONFIG_MESON_EFUSE is not set +# CONFIG_MESON_MX_EFUSE is not set +# CONFIG_NVMEM_ZYNQMP is not set + +# +# HW tracing support +# +# CONFIG_STM is not set +# CONFIG_INTEL_TH is not set +# end of HW tracing support + +# CONFIG_FPGA is not set +# CONFIG_FSI is not set +# CONFIG_TEE is not set +CONFIG_PM_OPP=y +# CONFIG_SIOX is not set +# CONFIG_SLIMBUS is not set +# CONFIG_INTERCONNECT is not set +# CONFIG_COUNTER is not set +# end of Device Drivers + +# +# File systems +# +CONFIG_DCACHE_WORD_ACCESS=y +# CONFIG_VALIDATE_FS_PARSER is not set +CONFIG_FS_IOMAP=y +CONFIG_EXT2_FS=y +# CONFIG_EXT2_FS_XATTR is not set +CONFIG_EXT3_FS=y +# CONFIG_EXT3_FS_POSIX_ACL is not set +# CONFIG_EXT3_FS_SECURITY is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_POSIX_ACL=y +# CONFIG_EXT4_FS_SECURITY is not set +# CONFIG_EXT4_DEBUG is not set +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=y +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +CONFIG_BTRFS_FS=n +CONFIG_BTRFS_FS_POSIX_ACL=y +# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set +# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set +# CONFIG_BTRFS_DEBUG is not set +# CONFIG_BTRFS_ASSERT is not set +# CONFIG_BTRFS_FS_REF_VERIFY is not set +# CONFIG_NILFS2_FS is not set +# CONFIG_F2FS_FS is not set +# CONFIG_FS_DAX is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=y +# CONFIG_EXPORTFS_BLOCK_OPS is not set +CONFIG_FILE_LOCKING=y +CONFIG_MANDATORY_FILE_LOCKING=y +# CONFIG_FS_ENCRYPTION is not set +# CONFIG_FS_VERITY is not set +CONFIG_FSNOTIFY=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY_USER=y +CONFIG_FANOTIFY=y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y +CONFIG_QUOTA=y +# CONFIG_QUOTA_NETLINK_INTERFACE is not set +CONFIG_PRINT_QUOTA_WARNING=y +# CONFIG_QUOTA_DEBUG is not set +# CONFIG_QFMT_V1 is not set +# CONFIG_QFMT_V2 is not set +CONFIG_QUOTACTL=y +CONFIG_AUTOFS4_FS=y +CONFIG_AUTOFS_FS=y +CONFIG_FUSE_FS=n +CONFIG_CUSE=n +# CONFIG_VIRTIO_FS is not set +CONFIG_OVERLAY_FS=n +# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set +CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y +# CONFIG_OVERLAY_FS_INDEX is not set +# CONFIG_OVERLAY_FS_XINO_AUTO is not set +# CONFIG_OVERLAY_FS_METACOPY is not set + +# +# Caches +# +# CONFIG_FSCACHE is not set +# end of Caches + +# +# CD-ROM/DVD Filesystems +# +# CONFIG_ISO9660_FS is not set +# CONFIG_UDF_FS is not set +# end of CD-ROM/DVD Filesystems + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +# CONFIG_MSDOS_FS is not set +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_FAT_DEFAULT_UTF8 is not set +# CONFIG_NTFS_FS is not set +# end of DOS/FAT/NT Filesystems + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +# CONFIG_PROC_KCORE is not set +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +# CONFIG_PROC_CHILDREN is not set +CONFIG_KERNFS=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +# CONFIG_TMPFS_XATTR is not set +CONFIG_HUGETLBFS=y +CONFIG_HUGETLB_PAGE=y +CONFIG_MEMFD_CREATE=y +CONFIG_ARCH_HAS_GIGANTIC_PAGE=y +CONFIG_CONFIGFS_FS=y +CONFIG_EFIVAR_FS=y +# end of Pseudo filesystems + +CONFIG_MISC_FILESYSTEMS=y +# CONFIG_ORANGEFS_FS is not set +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_ECRYPT_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_JFFS2_FS is not set +# CONFIG_CRAMFS is not set +CONFIG_SQUASHFS=y +CONFIG_SQUASHFS_FILE_CACHE=y +# CONFIG_SQUASHFS_FILE_DIRECT is not set +CONFIG_SQUASHFS_DECOMP_SINGLE=y +# CONFIG_SQUASHFS_DECOMP_MULTI is not set +# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set +# CONFIG_SQUASHFS_XATTR is not set +CONFIG_SQUASHFS_ZLIB=y +# CONFIG_SQUASHFS_LZ4 is not set +# CONFIG_SQUASHFS_LZO is not set +# CONFIG_SQUASHFS_XZ is not set +# CONFIG_SQUASHFS_ZSTD is not set +# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +# CONFIG_VXFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_OMFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_QNX6FS_FS is not set +# CONFIG_ROMFS_FS is not set +# CONFIG_PSTORE is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set +# CONFIG_EROFS_FS is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V2=y +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +CONFIG_NFS_V4=y +# CONFIG_NFS_SWAP is not set +CONFIG_NFS_V4_1=y +CONFIG_NFS_V4_2=y +CONFIG_PNFS_FILE_LAYOUT=y +CONFIG_PNFS_FLEXFILE_LAYOUT=n +CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" +# CONFIG_NFS_V4_1_MIGRATION is not set +CONFIG_NFS_V4_SECURITY_LABEL=y +CONFIG_ROOT_NFS=y +# CONFIG_NFS_USE_LEGACY_DNS is not set +CONFIG_NFS_USE_KERNEL_DNS=y +# CONFIG_NFSD is not set +CONFIG_GRACE_PERIOD=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +CONFIG_SUNRPC_GSS=y +CONFIG_SUNRPC_BACKCHANNEL=y +# CONFIG_SUNRPC_DEBUG is not set +# CONFIG_CEPH_FS is not set +# CONFIG_CIFS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +CONFIG_9P_FS=y +# CONFIG_9P_FS_POSIX_ACL is not set +# CONFIG_9P_FS_SECURITY is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +# CONFIG_NLS_ASCII is not set +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +# CONFIG_NLS_MAC_ROMAN is not set +# CONFIG_NLS_MAC_CELTIC is not set +# CONFIG_NLS_MAC_CENTEURO is not set +# CONFIG_NLS_MAC_CROATIAN is not set +# CONFIG_NLS_MAC_CYRILLIC is not set +# CONFIG_NLS_MAC_GAELIC is not set +# CONFIG_NLS_MAC_GREEK is not set +# CONFIG_NLS_MAC_ICELAND is not set +# CONFIG_NLS_MAC_INUIT is not set +# CONFIG_NLS_MAC_ROMANIAN is not set +# CONFIG_NLS_MAC_TURKISH is not set +# CONFIG_NLS_UTF8 is not set +# CONFIG_DLM is not set +# CONFIG_UNICODE is not set +# end of File systems + +# +# Security options +# +CONFIG_KEYS=y +CONFIG_KEYS_COMPAT=y +# CONFIG_KEYS_REQUEST_CACHE is not set +# CONFIG_PERSISTENT_KEYRINGS is not set +# CONFIG_BIG_KEYS is not set +# CONFIG_ENCRYPTED_KEYS is not set +# CONFIG_KEY_DH_OPERATIONS is not set +# CONFIG_SECURITY_DMESG_RESTRICT is not set +CONFIG_SECURITY=y +# CONFIG_SECURITYFS is not set +# CONFIG_SECURITY_NETWORK is not set +# CONFIG_SECURITY_PATH is not set +CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y +# CONFIG_HARDENED_USERCOPY is not set +# CONFIG_FORTIFY_SOURCE is not set +# CONFIG_STATIC_USERMODEHELPER is not set +# CONFIG_SECURITY_SMACK is not set +# CONFIG_SECURITY_TOMOYO is not set +# CONFIG_SECURITY_APPARMOR is not set +# CONFIG_SECURITY_LOADPIN is not set +# CONFIG_SECURITY_YAMA is not set +# CONFIG_SECURITY_SAFESETID is not set +# CONFIG_SECURITY_LOCKDOWN_LSM is not set +CONFIG_INTEGRITY=y +# CONFIG_INTEGRITY_SIGNATURE is not set +CONFIG_INTEGRITY_AUDIT=y +# CONFIG_IMA is not set +# CONFIG_EVM is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_LSM="lockdown,yama,loadpin,safesetid,integrity" + +# +# Kernel hardening options +# + +# +# Memory initialization +# +CONFIG_INIT_STACK_NONE=y +# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set +# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set +# end of Memory initialization +# end of Kernel hardening options +# end of Security options + +CONFIG_XOR_BLOCKS=n +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_RNG_DEFAULT=y +CONFIG_CRYPTO_AKCIPHER2=y +CONFIG_CRYPTO_AKCIPHER=y +CONFIG_CRYPTO_KPP2=y +CONFIG_CRYPTO_KPP=n +CONFIG_CRYPTO_ACOMP2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +# CONFIG_CRYPTO_USER is not set +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +CONFIG_CRYPTO_GF128MUL=y +CONFIG_CRYPTO_NULL=y +CONFIG_CRYPTO_NULL2=y +# CONFIG_CRYPTO_PCRYPT is not set +CONFIG_CRYPTO_CRYPTD=y +CONFIG_CRYPTO_AUTHENC=y +# CONFIG_CRYPTO_TEST is not set +CONFIG_CRYPTO_SIMD=y +CONFIG_CRYPTO_ENGINE=n + +# +# Public-key cryptography +# +CONFIG_CRYPTO_RSA=y +# CONFIG_CRYPTO_DH is not set +CONFIG_CRYPTO_ECC=n +CONFIG_CRYPTO_ECDH=n +# CONFIG_CRYPTO_ECRDSA is not set + +# +# Authenticated Encryption with Associated Data +# +CONFIG_CRYPTO_CCM=n +CONFIG_CRYPTO_GCM=n +# CONFIG_CRYPTO_CHACHA20POLY1305 is not set +# CONFIG_CRYPTO_AEGIS128 is not set +CONFIG_CRYPTO_SEQIV=n +CONFIG_CRYPTO_ECHAINIV=y + +# +# Block modes +# +# CONFIG_CRYPTO_CBC is not set +# CONFIG_CRYPTO_CFB is not set +CONFIG_CRYPTO_CTR=n +# CONFIG_CRYPTO_CTS is not set +CONFIG_CRYPTO_ECB=n +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_OFB is not set +# CONFIG_CRYPTO_PCBC is not set +# CONFIG_CRYPTO_XTS is not set +# CONFIG_CRYPTO_KEYWRAP is not set +# CONFIG_CRYPTO_ADIANTUM is not set +# CONFIG_CRYPTO_ESSIV is not set + +# +# Hash modes +# +CONFIG_CRYPTO_CMAC=n +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_VMAC is not set + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=y +# CONFIG_CRYPTO_CRC32 is not set +# CONFIG_CRYPTO_XXHASH is not set +CONFIG_CRYPTO_CRCT10DIF=y +CONFIG_CRYPTO_GHASH=n +# CONFIG_CRYPTO_POLY1305 is not set +# CONFIG_CRYPTO_MD4 is not set +# CONFIG_CRYPTO_MD5 is not set +# CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_RMD128 is not set +# CONFIG_CRYPTO_RMD160 is not set +# CONFIG_CRYPTO_RMD256 is not set +# CONFIG_CRYPTO_RMD320 is not set +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_LIB_SHA256=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SHA512=y +# CONFIG_CRYPTO_SHA3 is not set +# CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_STREEBOG is not set +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_WP512 is not set + +# +# Ciphers +# +CONFIG_CRYPTO_LIB_AES=y +CONFIG_CRYPTO_AES=y +# CONFIG_CRYPTO_AES_TI is not set +# CONFIG_CRYPTO_ANUBIS is not set +CONFIG_CRYPTO_LIB_ARC4=n +CONFIG_CRYPTO_ARC4=n +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST6 is not set +CONFIG_CRYPTO_LIB_DES=y +CONFIG_CRYPTO_DES=y +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_SALSA20 is not set +# CONFIG_CRYPTO_CHACHA20 is not set +# CONFIG_CRYPTO_SEED is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_SM4 is not set +# CONFIG_CRYPTO_TEA is not set +# CONFIG_CRYPTO_TWOFISH is not set + +# +# Compression +# +# CONFIG_CRYPTO_DEFLATE is not set +# CONFIG_CRYPTO_LZO is not set +# CONFIG_CRYPTO_842 is not set +# CONFIG_CRYPTO_LZ4 is not set +# CONFIG_CRYPTO_LZ4HC is not set +# CONFIG_CRYPTO_ZSTD is not set + +# +# Random Number Generation +# +CONFIG_CRYPTO_ANSI_CPRNG=y +CONFIG_CRYPTO_DRBG_MENU=y +CONFIG_CRYPTO_DRBG_HMAC=y +# CONFIG_CRYPTO_DRBG_HASH is not set +# CONFIG_CRYPTO_DRBG_CTR is not set +CONFIG_CRYPTO_DRBG=y +CONFIG_CRYPTO_JITTERENTROPY=y +# CONFIG_CRYPTO_USER_API_HASH is not set +# CONFIG_CRYPTO_USER_API_SKCIPHER is not set +# CONFIG_CRYPTO_USER_API_RNG is not set +# CONFIG_CRYPTO_USER_API_AEAD is not set +CONFIG_CRYPTO_HASH_INFO=y +CONFIG_CRYPTO_HW=y +# CONFIG_CRYPTO_DEV_MARVELL_CESA is not set +CONFIG_CRYPTO_DEV_FSL_CAAM_COMMON=y +CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC=y +CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API_DESC=y +CONFIG_CRYPTO_DEV_FSL_CAAM=y +# CONFIG_CRYPTO_DEV_FSL_CAAM_DEBUG is not set +CONFIG_CRYPTO_DEV_FSL_CAAM_JR=y +CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE=9 +# CONFIG_CRYPTO_DEV_FSL_CAAM_INTC is not set +CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API=y +CONFIG_CRYPTO_DEV_FSL_CAAM_AHASH_API=y +CONFIG_CRYPTO_DEV_FSL_CAAM_PKC_API=y +CONFIG_CRYPTO_DEV_FSL_CAAM_RNG_API=y +CONFIG_CRYPTO_DEV_FSL_DPAA2_CAAM=y +# CONFIG_CRYPTO_DEV_EXYNOS_RNG is not set +# CONFIG_CRYPTO_DEV_S5P is not set +# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set +# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set +# CONFIG_CRYPTO_DEV_CCP is not set +# CONFIG_CAVIUM_CPT is not set +# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set +# CONFIG_CRYPTO_DEV_CAVIUM_ZIP is not set +# CONFIG_CRYPTO_DEV_QCE is not set +# CONFIG_CRYPTO_DEV_QCOM_RNG is not set +# CONFIG_CRYPTO_DEV_ROCKCHIP is not set +CONFIG_CRYPTO_DEV_VIRTIO=n +# CONFIG_CRYPTO_DEV_SAFEXCEL is not set +# CONFIG_CRYPTO_DEV_CCREE is not set +# CONFIG_CRYPTO_DEV_HISI_SEC is not set +# CONFIG_CRYPTO_DEV_HISI_ZIP is not set +CONFIG_ASYMMETRIC_KEY_TYPE=y +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y +CONFIG_X509_CERTIFICATE_PARSER=y +# CONFIG_PKCS8_PRIVATE_KEY_PARSER is not set +CONFIG_PKCS7_MESSAGE_PARSER=y +# CONFIG_PKCS7_TEST_KEY is not set +# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set + +# +# Certificates for signature checking +# +CONFIG_SYSTEM_TRUSTED_KEYRING=y +CONFIG_SYSTEM_TRUSTED_KEYS="" +# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set +# CONFIG_SECONDARY_TRUSTED_KEYRING is not set +# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set +# end of Certificates for signature checking + +# +# Library routines +# +CONFIG_RAID6_PQ=n +CONFIG_RAID6_PQ_BENCHMARK=y +# CONFIG_PACKING is not set +CONFIG_BITREVERSE=y +CONFIG_HAVE_ARCH_BITREVERSE=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_NET_UTILS=y +# CONFIG_CORDIC is not set +CONFIG_RATIONAL=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y +CONFIG_ARCH_HAS_FAST_MULTIPLIER=y +# CONFIG_INDIRECT_PIO is not set +# CONFIG_CRC_CCITT is not set +CONFIG_CRC16=y +CONFIG_CRC_T10DIF=y +CONFIG_CRC_ITU_T=y +CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set +# CONFIG_CRC64 is not set +# CONFIG_CRC4 is not set +CONFIG_CRC7=y +CONFIG_LIBCRC32C=n +# CONFIG_CRC8 is not set +CONFIG_XXHASH=y +CONFIG_AUDIT_GENERIC=y +CONFIG_AUDIT_ARCH_COMPAT_GENERIC=y +CONFIG_AUDIT_COMPAT_GENERIC=y +# CONFIG_RANDOM32_SELFTEST is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=n +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_LZ4_DECOMPRESS=y +CONFIG_ZSTD_COMPRESS=n +CONFIG_ZSTD_DECOMPRESS=n +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_X86=y +CONFIG_XZ_DEC_POWERPC=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_BCJ=y +# CONFIG_XZ_DEC_TEST is not set +CONFIG_DECOMPRESS_GZIP=y +CONFIG_DECOMPRESS_BZIP2=y +CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_XZ=y +CONFIG_DECOMPRESS_LZO=y +CONFIG_DECOMPRESS_LZ4=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_XARRAY_MULTI=y +CONFIG_ASSOCIATIVE_ARRAY=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT_MAP=y +CONFIG_HAS_DMA=y +CONFIG_NEED_SG_DMA_LENGTH=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_DMA_DECLARE_COHERENT=y +CONFIG_ARCH_HAS_SETUP_DMA_OPS=y +CONFIG_ARCH_HAS_TEARDOWN_DMA_OPS=y +CONFIG_ARCH_HAS_SYNC_DMA_FOR_DEVICE=y +CONFIG_ARCH_HAS_SYNC_DMA_FOR_CPU=y +CONFIG_ARCH_HAS_DMA_PREP_COHERENT=y +CONFIG_ARCH_HAS_DMA_COHERENT_TO_PFN=y +CONFIG_SWIOTLB=y +CONFIG_DMA_REMAP=y +CONFIG_DMA_DIRECT_REMAP=y +CONFIG_DMA_CMA=y + +# +# Default contiguous memory area size: +# +CONFIG_CMA_SIZE_MBYTES=16 +CONFIG_CMA_SIZE_SEL_MBYTES=y +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set +# CONFIG_CMA_SIZE_SEL_MIN is not set +# CONFIG_CMA_SIZE_SEL_MAX is not set +CONFIG_CMA_ALIGNMENT=8 +# CONFIG_DMA_API_DEBUG is not set +CONFIG_SGL_ALLOC=y +CONFIG_CPU_RMAP=y +CONFIG_DQL=y +CONFIG_GLOB=y +# CONFIG_GLOB_SELFTEST is not set +CONFIG_NLATTR=y +CONFIG_CLZ_TAB=y +# CONFIG_IRQ_POLL is not set +CONFIG_MPILIB=y +CONFIG_LIBFDT=y +CONFIG_OID_REGISTRY=y +CONFIG_UCS2_STRING=y +CONFIG_HAVE_GENERIC_VDSO=y +CONFIG_GENERIC_GETTIMEOFDAY=y +CONFIG_FONT_SUPPORT=y +# CONFIG_FONTS is not set +CONFIG_FONT_8x8=y +CONFIG_FONT_8x16=y +CONFIG_SG_POOL=y +CONFIG_SBITMAP=y +# CONFIG_STRING_SELFTEST is not set +# end of Library routines + +# +# Kernel hacking +# + +# +# printk and dmesg options +# +CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_CALLER is not set +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 +CONFIG_CONSOLE_LOGLEVEL_QUIET=4 +CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_DYNAMIC_DEBUG is not set +# end of printk and dmesg options + +# +# Compile-time checks and compiler options +# +CONFIG_DEBUG_INFO=y +# CONFIG_DEBUG_INFO_REDUCED is not set +# CONFIG_DEBUG_INFO_SPLIT is not set +# CONFIG_DEBUG_INFO_DWARF4 is not set +# CONFIG_DEBUG_INFO_BTF is not set +# CONFIG_GDB_SCRIPTS is not set +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_FRAME_WARN=2048 +# CONFIG_STRIP_ASM_SYMS is not set +# CONFIG_READABLE_ASM is not set +CONFIG_DEBUG_FS=y +# CONFIG_HEADERS_INSTALL is not set +CONFIG_OPTIMIZE_INLINING=y +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_SECTION_MISMATCH_WARN_ONLY=y +CONFIG_ARCH_WANT_FRAME_POINTERS=y +CONFIG_FRAME_POINTER=y +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# end of Compile-time checks and compiler options + +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 +CONFIG_MAGIC_SYSRQ_SERIAL=y +CONFIG_DEBUG_KERNEL=y +CONFIG_DEBUG_MISC=y + +# +# Memory Debugging +# +# CONFIG_PAGE_EXTENSION is not set +# CONFIG_DEBUG_PAGEALLOC is not set +# CONFIG_PAGE_OWNER is not set +# CONFIG_PAGE_POISONING is not set +# CONFIG_DEBUG_RODATA_TEST is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_VM is not set +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y +# CONFIG_DEBUG_VIRTUAL is not set +CONFIG_DEBUG_MEMORY_INIT=y +# CONFIG_DEBUG_PER_CPU_MAPS is not set +CONFIG_HAVE_ARCH_KASAN=y +CONFIG_HAVE_ARCH_KASAN_SW_TAGS=y +CONFIG_CC_HAS_KASAN_GENERIC=y +# CONFIG_KASAN is not set +CONFIG_KASAN_STACK=1 +# end of Memory Debugging + +CONFIG_ARCH_HAS_KCOV=y +CONFIG_CC_HAS_SANCOV_TRACE_PC=y +# CONFIG_KCOV is not set +# CONFIG_DEBUG_SHIRQ is not set + +# +# Debug Lockups and Hangs +# +# CONFIG_SOFTLOCKUP_DETECTOR is not set +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 +# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set +CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 +# CONFIG_WQ_WATCHDOG is not set +# end of Debug Lockups and Hangs + +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +CONFIG_PANIC_TIMEOUT=0 +# CONFIG_SCHED_DEBUG is not set +CONFIG_SCHED_INFO=y +# CONFIG_SCHEDSTATS is not set +# CONFIG_SCHED_STACK_END_CHECK is not set +# CONFIG_DEBUG_TIMEKEEPING is not set +# CONFIG_DEBUG_PREEMPT is not set + +# +# Lock Debugging (spinlocks, mutexes, etc...) +# +CONFIG_LOCK_DEBUGGING_SUPPORT=y +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set +# CONFIG_DEBUG_RWSEMS is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_LOCK_TORTURE_TEST is not set +# CONFIG_WW_MUTEX_SELFTEST is not set +# end of Lock Debugging (spinlocks, mutexes, etc...) + +# CONFIG_STACKTRACE is not set +# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set +# CONFIG_DEBUG_KOBJECT is not set +CONFIG_HAVE_DEBUG_BUGVERBOSE=y +CONFIG_DEBUG_BUGVERBOSE=y +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_PLIST is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_CREDENTIALS is not set + +# +# RCU Debugging +# +# CONFIG_RCU_PERF_TEST is not set +# CONFIG_RCU_TORTURE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=21 +# CONFIG_RCU_TRACE is not set +# CONFIG_RCU_EQS_DEBUG is not set +# end of RCU Debugging + +# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set +# CONFIG_FAULT_INJECTION is not set +# CONFIG_LATENCYTOP is not set +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACING_SUPPORT=y +# CONFIG_FTRACE is not set +CONFIG_RUNTIME_TESTING_MENU=y +# CONFIG_LKDTM is not set +# CONFIG_TEST_LIST_SORT is not set +# CONFIG_TEST_SORT is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_RBTREE_TEST is not set +# CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_INTERVAL_TREE_TEST is not set +# CONFIG_PERCPU_TEST is not set +# CONFIG_ATOMIC64_SELFTEST is not set +# CONFIG_TEST_HEXDUMP is not set +# CONFIG_TEST_STRING_HELPERS is not set +# CONFIG_TEST_STRSCPY is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_TEST_PRINTF is not set +# CONFIG_TEST_BITMAP is not set +# CONFIG_TEST_BITFIELD is not set +# CONFIG_TEST_UUID is not set +# CONFIG_TEST_XARRAY is not set +# CONFIG_TEST_OVERFLOW is not set +# CONFIG_TEST_RHASHTABLE is not set +# CONFIG_TEST_HASH is not set +# CONFIG_TEST_IDA is not set +# CONFIG_TEST_LKM is not set +# CONFIG_TEST_VMALLOC is not set +# CONFIG_TEST_USER_COPY is not set +# CONFIG_TEST_BPF is not set +# CONFIG_TEST_BLACKHOLE_DEV is not set +# CONFIG_FIND_BIT_BENCHMARK is not set +# CONFIG_TEST_FIRMWARE is not set +# CONFIG_TEST_SYSCTL is not set +# CONFIG_TEST_UDELAY is not set +# CONFIG_TEST_STATIC_KEYS is not set +# CONFIG_TEST_KMOD is not set +# CONFIG_TEST_MEMCAT_P is not set +# CONFIG_TEST_STACKINIT is not set +# CONFIG_TEST_MEMINIT is not set +CONFIG_MEMTEST=y +# CONFIG_BUG_ON_DATA_CORRUPTION is not set +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set +CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y +# CONFIG_UBSAN is not set +CONFIG_UBSAN_ALIGNMENT=y +CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y +# CONFIG_STRICT_DEVMEM is not set +# CONFIG_ARM64_PTDUMP_DEBUGFS is not set +# CONFIG_PID_IN_CONTEXTIDR is not set +# CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set +# CONFIG_DEBUG_WX is not set +# CONFIG_DEBUG_ALIGN_RODATA is not set +# CONFIG_DEBUG_EFI is not set +# CONFIG_ARM64_RELOC_TEST is not set +# CONFIG_CORESIGHT is not set +# end of Kernel hacking diff --git a/build-config/conf/kernel/linux.x86_64.config b/build-config/conf/kernel/linux.x86_64.config new file mode 100644 index 000000000..ae750d779 --- /dev/null +++ b/build-config/conf/kernel/linux.x86_64.config @@ -0,0 +1,3732 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/x86 5.4.86 Kernel Configuration +# + +CONFIG_CC_IS_GCC=y +CONFIG_CLANG_VERSION=0 +CONFIG_CC_CAN_LINK=y +CONFIG_CC_HAS_ASM_GOTO=y +CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_EXTABLE_SORT=y +CONFIG_THREAD_INFO_IN_TASK=y + +# +# General setup +# +CONFIG_INIT_ENV_ARG_LIMIT=32 +# CONFIG_COMPILE_TEST is not set +CONFIG_LOCALVERSION="-onie" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_BUILD_SALT="" +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_BZIP2=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_XZ=y +CONFIG_HAVE_KERNEL_LZO=y +CONFIG_HAVE_KERNEL_LZ4=y +# CONFIG_KERNEL_GZIP is not set +# CONFIG_KERNEL_BZIP2 is not set +# CONFIG_KERNEL_LZMA is not set +CONFIG_KERNEL_XZ=y +# CONFIG_KERNEL_LZO is not set +# CONFIG_KERNEL_LZ4 is not set +CONFIG_DEFAULT_HOSTNAME="onie" +CONFIG_SWAP=y +CONFIG_SYSVIPC=y +CONFIG_SYSVIPC_SYSCTL=y +# CONFIG_POSIX_MQUEUE is not set +CONFIG_CROSS_MEMORY_ATTACH=y +# CONFIG_USELIB is not set +# CONFIG_AUDIT is not set +CONFIG_HAVE_ARCH_AUDITSYSCALL=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_IRQ_MIGRATION=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_DOMAIN_HIERARCHY=y +CONFIG_GENERIC_MSI_IRQ=y +CONFIG_GENERIC_MSI_IRQ_DOMAIN=y +CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y +CONFIG_GENERIC_IRQ_RESERVATION_MODE=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_SPARSE_IRQ=y +# CONFIG_GENERIC_IRQ_DEBUGFS is not set +# end of IRQ subsystem + +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_ARCH_CLOCKSOURCE_DATA=y +CONFIG_ARCH_CLOCKSOURCE_INIT=y +CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y +CONFIG_GENERIC_CMOS_UPDATE=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_HZ_PERIODIC is not set +CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y +# end of Timers subsystem + +CONFIG_PREEMPT_NONE=y +# CONFIG_PREEMPT_VOLUNTARY is not set +# CONFIG_PREEMPT is not set + +# +# CPU/Task time and stats accounting +# +CONFIG_TICK_CPU_ACCOUNTING=y +# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set +# CONFIG_IRQ_TIME_ACCOUNTING is not set +# CONFIG_BSD_PROCESS_ACCT is not set +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +# CONFIG_TASK_XACCT is not set +# CONFIG_PSI is not set +# end of CPU/Task time and stats accounting + +CONFIG_CPU_ISOLATION=y + +# +# RCU Subsystem +# +CONFIG_TREE_RCU=y +# CONFIG_RCU_EXPERT is not set +CONFIG_SRCU=y +CONFIG_TREE_SRCU=y +CONFIG_RCU_STALL_COMMON=y +CONFIG_RCU_NEED_SEGCBLIST=y +# end of RCU Subsystem + +CONFIG_BUILD_BIN2C=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +# CONFIG_IKHEADERS is not set +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 +CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 +CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y + +# +# Scheduler features +# +# CONFIG_UCLAMP_TASK is not set +# end of Scheduler features + +CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y +CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH=y +CONFIG_ARCH_SUPPORTS_INT128=y +# CONFIG_CGROUPS is not set +# CONFIG_NAMESPACES is not set +# CONFIG_CHECKPOINT_RESTORE is not set +# CONFIG_SCHED_AUTOGROUP is not set +CONFIG_SYSFS_DEPRECATED=y +CONFIG_SYSFS_DEPRECATED_V2=y +# CONFIG_RELAY is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +# CONFIG_RD_BZIP2 is not set +# CONFIG_RD_LZMA is not set +CONFIG_RD_XZ=y +# CONFIG_RD_LZO is not set +# CONFIG_RD_LZ4 is not set +# CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE is not set +CONFIG_CC_OPTIMIZE_FOR_SIZE=y +CONFIG_SYSCTL=y +CONFIG_HAVE_UID16=y +CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_HAVE_PCSPKR_PLATFORM=y +CONFIG_BPF=y +CONFIG_EXPERT=y +CONFIG_UID16=y +CONFIG_MULTIUSER=y +CONFIG_SGETMASK_SYSCALL=y +CONFIG_SYSFS_SYSCALL=y +# CONFIG_SYSCTL_SYSCALL is not set +# CONFIG_FHANDLE is not set +CONFIG_POSIX_TIMERS=y +CONFIG_PRINTK=y +CONFIG_PRINTK_NMI=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_PCSPKR_PLATFORM=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_FUTEX_PI=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +CONFIG_SHMEM=y +CONFIG_AIO=y +CONFIG_IO_URING=y +CONFIG_ADVISE_SYSCALLS=y +CONFIG_MEMBARRIER=y +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y +CONFIG_KALLSYMS_BASE_RELATIVE=y +# CONFIG_BPF_SYSCALL is not set +# CONFIG_USERFAULTFD is not set +CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y +CONFIG_RSEQ=y +# CONFIG_DEBUG_RSEQ is not set +CONFIG_EMBEDDED=y +CONFIG_HAVE_PERF_EVENTS=y +# CONFIG_PC104 is not set + +# +# Kernel Performance Events And Counters +# +CONFIG_PERF_EVENTS=y +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +# end of Kernel Performance Events And Counters + +CONFIG_VM_EVENT_COUNTERS=y +# CONFIG_SLUB_DEBUG is not set +# CONFIG_COMPAT_BRK is not set +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +CONFIG_SLAB_MERGE_DEFAULT=y +# CONFIG_SLAB_FREELIST_RANDOM is not set +# CONFIG_SLAB_FREELIST_HARDENED is not set +# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set +CONFIG_SLUB_CPU_PARTIAL=y +CONFIG_PROFILING=y +# end of General setup + +CONFIG_64BIT=y +CONFIG_X86_64=y +CONFIG_X86=y +CONFIG_INSTRUCTION_DECODER=y +CONFIG_OUTPUT_FORMAT="elf64-x86-64" +CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_MMU=y +CONFIG_ARCH_MMAP_RND_BITS_MIN=28 +CONFIG_ARCH_MMAP_RND_BITS_MAX=32 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 +CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y +CONFIG_ARCH_MAY_HAVE_PC_FDC=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_ARCH_HAS_CPU_RELAX=y +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_FILTER_PGPROT=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARCH_WANT_GENERAL_HUGETLB=y +CONFIG_ZONE_DMA32=y +CONFIG_AUDIT_ARCH=y +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_X86_64_SMP=y +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_PGTABLE_LEVELS=4 +CONFIG_CC_HAS_SANE_STACKPROTECTOR=y + +# +# Processor type and features +# +CONFIG_ZONE_DMA=y +CONFIG_SMP=y +CONFIG_X86_FEATURE_NAMES=y +# CONFIG_X86_X2APIC is not set +CONFIG_X86_MPPARSE=y +# CONFIG_GOLDFISH is not set +CONFIG_RETPOLINE=y +# CONFIG_X86_CPU_RESCTRL is not set +CONFIG_X86_EXTENDED_PLATFORM=y +# CONFIG_X86_VSMP is not set +# CONFIG_X86_GOLDFISH is not set +# CONFIG_X86_INTEL_MID is not set +# CONFIG_X86_INTEL_LPSS is not set +# CONFIG_X86_AMD_PLATFORM_DEVICE is not set +CONFIG_IOSF_MBI=y +# CONFIG_IOSF_MBI_DEBUG is not set +CONFIG_SCHED_OMIT_FRAME_POINTER=y +CONFIG_HYPERVISOR_GUEST=y +# CONFIG_PARAVIRT is not set +# CONFIG_ARCH_CPUIDLE_HALTPOLL is not set +# CONFIG_PVH is not set +# CONFIG_JAILHOUSE_GUEST is not set +# CONFIG_ACRN_GUEST is not set +# CONFIG_MK8 is not set +# CONFIG_MPSC is not set +CONFIG_MCORE2=y +# CONFIG_MATOM is not set +# CONFIG_GENERIC_CPU is not set +CONFIG_X86_INTERNODE_CACHE_SHIFT=6 +CONFIG_X86_L1_CACHE_SHIFT=6 +CONFIG_X86_INTEL_USERCOPY=y +CONFIG_X86_USE_PPRO_CHECKSUM=y +CONFIG_X86_P6_NOP=y +CONFIG_X86_TSC=y +CONFIG_X86_CMPXCHG64=y +CONFIG_X86_CMOV=y +CONFIG_X86_MINIMUM_CPU_FAMILY=64 +CONFIG_X86_DEBUGCTLMSR=y +CONFIG_PROCESSOR_SELECT=y +CONFIG_CPU_SUP_INTEL=y +CONFIG_CPU_SUP_AMD=y +# CONFIG_CPU_SUP_HYGON is not set +# CONFIG_CPU_SUP_CENTAUR is not set +# CONFIG_CPU_SUP_ZHAOXIN is not set +CONFIG_HPET_TIMER=y +CONFIG_HPET_EMULATE_RTC=y +CONFIG_DMI=y +CONFIG_GART_IOMMU=y +# CONFIG_CALGARY_IOMMU is not set +# CONFIG_MAXSMP is not set +CONFIG_NR_CPUS_RANGE_BEGIN=2 +CONFIG_NR_CPUS_RANGE_END=512 +CONFIG_NR_CPUS_DEFAULT=64 +CONFIG_NR_CPUS=12 +CONFIG_SCHED_SMT=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_MC_PRIO=y +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_IO_APIC=y +CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y +# CONFIG_X86_MCE is not set + +# +# Performance monitoring +# +CONFIG_PERF_EVENTS_INTEL_UNCORE=y +# CONFIG_PERF_EVENTS_INTEL_RAPL is not set +# CONFIG_PERF_EVENTS_INTEL_CSTATE is not set +# CONFIG_PERF_EVENTS_AMD_POWER is not set +# end of Performance monitoring + +CONFIG_X86_16BIT=y +CONFIG_X86_ESPFIX64=y +CONFIG_X86_VSYSCALL_EMULATION=y +# CONFIG_I8K is not set +# CONFIG_MICROCODE is not set +CONFIG_X86_MSR=y +CONFIG_X86_CPUID=y +# CONFIG_X86_5LEVEL is not set +CONFIG_X86_DIRECT_GBPAGES=y +# CONFIG_X86_CPA_STATISTICS is not set +# CONFIG_AMD_MEM_ENCRYPT is not set +# CONFIG_NUMA is not set +CONFIG_ARCH_SPARSEMEM_ENABLE=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_PROC_KCORE_TEXT=y +CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 +# CONFIG_X86_PMEM_LEGACY is not set +# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set +CONFIG_X86_RESERVE_LOW=64 +CONFIG_MTRR=y +CONFIG_MTRR_SANITIZER=y +CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 +CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 +CONFIG_X86_PAT=y +CONFIG_ARCH_USES_PG_UNCACHED=y +CONFIG_ARCH_RANDOM=y +CONFIG_X86_SMAP=y +CONFIG_X86_INTEL_UMIP=y +# CONFIG_X86_INTEL_MPX is not set +CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y +CONFIG_X86_INTEL_TSX_MODE_OFF=y +# CONFIG_X86_INTEL_TSX_MODE_ON is not set +# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set +CONFIG_EFI=y +CONFIG_EFI_STUB=y +# CONFIG_EFI_MIXED is not set +# CONFIG_SECCOMP is not set +# CONFIG_HZ_100 is not set +# CONFIG_HZ_250 is not set +# CONFIG_HZ_300 is not set +CONFIG_HZ_1000=y +CONFIG_HZ=1000 +CONFIG_SCHED_HRTICK=y +CONFIG_KEXEC=y +CONFIG_KEXEC_FILE=y +CONFIG_ARCH_HAS_KEXEC_PURGATORY=y +# CONFIG_KEXEC_SIG is not set +# CONFIG_CRASH_DUMP is not set +CONFIG_PHYSICAL_START=0x1000000 +CONFIG_RELOCATABLE=y +# CONFIG_RANDOMIZE_BASE is not set +CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_HOTPLUG_CPU=y +# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set +# CONFIG_DEBUG_HOTPLUG_CPU0 is not set +CONFIG_COMPAT_VDSO=y +CONFIG_LEGACY_VSYSCALL_EMULATE=y +# CONFIG_LEGACY_VSYSCALL_XONLY is not set +# CONFIG_LEGACY_VSYSCALL_NONE is not set +# CONFIG_CMDLINE_BOOL is not set +CONFIG_MODIFY_LDT_SYSCALL=y +CONFIG_HAVE_LIVEPATCH=y +# end of Processor type and features + +CONFIG_ARCH_HAS_ADD_PAGES=y +CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y +CONFIG_ARCH_ENABLE_SPLIT_PMD_PTLOCK=y + +# +# Power management and ACPI options +# +# CONFIG_SUSPEND is not set +# CONFIG_HIBERNATION is not set +# CONFIG_PM is not set +# CONFIG_ENERGY_MODEL is not set +CONFIG_ARCH_SUPPORTS_ACPI=y +CONFIG_ACPI=y +CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y +CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y +CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y +# CONFIG_ACPI_DEBUGGER is not set +CONFIG_ACPI_SPCR_TABLE=y +CONFIG_ACPI_LPIT=y +# CONFIG_ACPI_PROCFS_POWER is not set +CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y +# CONFIG_ACPI_EC_DEBUGFS is not set +# CONFIG_ACPI_AC is not set +# CONFIG_ACPI_BATTERY is not set +# CONFIG_ACPI_BUTTON is not set +# CONFIG_ACPI_FAN is not set +# CONFIG_ACPI_DOCK is not set +CONFIG_ACPI_CPU_FREQ_PSS=y +CONFIG_ACPI_PROCESSOR_CSTATE=y +CONFIG_ACPI_PROCESSOR_IDLE=y +CONFIG_ACPI_CPPC_LIB=y +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_HOTPLUG_CPU=y +# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set +CONFIG_ACPI_THERMAL=y +CONFIG_ARCH_HAS_ACPI_TABLE_UPGRADE=y +CONFIG_ACPI_TABLE_UPGRADE=y +# CONFIG_ACPI_DEBUG is not set +# CONFIG_ACPI_PCI_SLOT is not set +CONFIG_ACPI_CONTAINER=y +CONFIG_ACPI_HOTPLUG_IOAPIC=y +# CONFIG_ACPI_SBS is not set +# CONFIG_ACPI_HED is not set +# CONFIG_ACPI_CUSTOM_METHOD is not set +# CONFIG_ACPI_BGRT is not set +# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set +# CONFIG_ACPI_NFIT is not set +CONFIG_HAVE_ACPI_APEI=y +CONFIG_HAVE_ACPI_APEI_NMI=y +# CONFIG_ACPI_APEI is not set +# CONFIG_DPTF_POWER is not set +# CONFIG_PMIC_OPREGION is not set +# CONFIG_ACPI_CONFIGFS is not set +CONFIG_X86_PM_TIMER=y +# CONFIG_SFI is not set + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_ATTR_SET=y +# CONFIG_CPU_FREQ_STAT is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y + +# +# CPU frequency scaling drivers +# +CONFIG_X86_INTEL_PSTATE=y +# CONFIG_X86_PCC_CPUFREQ is not set +# CONFIG_X86_ACPI_CPUFREQ is not set +# CONFIG_X86_SPEEDSTEP_CENTRINO is not set +# CONFIG_X86_P4_CLOCKMOD is not set + +# +# shared options +# +# end of CPU Frequency scaling + +# +# CPU Idle +# +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y +# CONFIG_CPU_IDLE_GOV_TEO is not set +# end of CPU Idle + +CONFIG_INTEL_IDLE=y +# end of Power management and ACPI options + +# +# Bus options (PCI etc.) +# +CONFIG_PCI_DIRECT=y +# CONFIG_PCI_MMCONFIG is not set +# CONFIG_PCI_CNB20LE_QUIRK is not set +# CONFIG_ISA_BUS is not set +CONFIG_ISA_DMA_API=y +CONFIG_AMD_NB=y +# CONFIG_X86_SYSFB is not set +# end of Bus options (PCI etc.) + +# +# Binary Emulations +# +CONFIG_IA32_EMULATION=y +# CONFIG_X86_X32 is not set +CONFIG_COMPAT_32=y +CONFIG_COMPAT=y +CONFIG_COMPAT_FOR_U64_ALIGNMENT=y +CONFIG_SYSVIPC_COMPAT=y +# end of Binary Emulations + +# +# Firmware Drivers +# +# CONFIG_EDD is not set +CONFIG_FIRMWARE_MEMMAP=y +CONFIG_DMIID=y +CONFIG_DMI_SYSFS=y +CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y +# CONFIG_FW_CFG_SYSFS is not set +# CONFIG_GOOGLE_FIRMWARE is not set + +# +# EFI (Extensible Firmware Interface) Support +# +CONFIG_EFI_VARS=y +CONFIG_EFI_ESRT=y +CONFIG_EFI_RUNTIME_MAP=y +# CONFIG_EFI_FAKE_MEMMAP is not set +CONFIG_EFI_RUNTIME_WRAPPERS=y +CONFIG_EFI_BOOTLOADER_CONTROL=y +CONFIG_EFI_CAPSULE_LOADER=y +# CONFIG_EFI_TEST is not set +# CONFIG_APPLE_PROPERTIES is not set +# CONFIG_RESET_ATTACK_MITIGATION is not set +# CONFIG_EFI_RCI2_TABLE is not set +# end of EFI (Extensible Firmware Interface) Support + +CONFIG_EFI_EARLYCON=y +# CONFIG_EFI_CUSTOM_SSDT_OVERLAYS is not set + +# +# Tegra firmware driver +# +# end of Tegra firmware driver +# end of Firmware Drivers + +CONFIG_HAVE_KVM=y +# CONFIG_VIRTUALIZATION is not set + +# +# General architecture-dependent options +# +CONFIG_CRASH_CORE=y +CONFIG_KEXEC_CORE=y +CONFIG_HOTPLUG_SMT=y +CONFIG_OPROFILE=y +# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set +CONFIG_HAVE_OPROFILE=y +CONFIG_OPROFILE_NMI_TIMER=y +# CONFIG_KPROBES is not set +# CONFIG_JUMP_LABEL is not set +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_ARCH_USE_BUILTIN_BSWAP=y +CONFIG_HAVE_IOREMAP_PROT=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_OPTPROBES=y +CONFIG_HAVE_KPROBES_ON_FTRACE=y +CONFIG_HAVE_FUNCTION_ERROR_INJECTION=y +CONFIG_HAVE_NMI=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_ARCH_HAS_FORTIFY_SOURCE=y +CONFIG_ARCH_HAS_SET_MEMORY=y +CONFIG_ARCH_HAS_SET_DIRECT_MAP=y +CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y +CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y +CONFIG_HAVE_ASM_MODVERSIONS=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_RSEQ=y +CONFIG_HAVE_FUNCTION_ARG_ACCESS_API=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y +CONFIG_HAVE_USER_RETURN_NOTIFIER=y +CONFIG_HAVE_PERF_EVENTS_NMI=y +CONFIG_HAVE_HARDLOCKUP_DETECTOR_PERF=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_ARCH_JUMP_LABEL_RELATIVE=y +CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y +CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y +CONFIG_HAVE_CMPXCHG_LOCAL=y +CONFIG_HAVE_CMPXCHG_DOUBLE=y +CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y +CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_HAVE_ARCH_STACKLEAK=y +CONFIG_HAVE_STACKPROTECTOR=y +CONFIG_CC_HAS_STACKPROTECTOR_NONE=y +CONFIG_STACKPROTECTOR=y +CONFIG_STACKPROTECTOR_STRONG=y +CONFIG_HAVE_ARCH_WITHIN_STACK_FRAMES=y +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MOVE_PMD=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE_PUD=y +CONFIG_HAVE_ARCH_HUGE_VMAP=y +CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y +CONFIG_HAVE_ARCH_SOFT_DIRTY=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_MODULES_USE_ELF_RELA=y +CONFIG_HAVE_IRQ_EXIT_ON_IRQ_STACK=y +CONFIG_ARCH_HAS_ELF_RANDOMIZE=y +CONFIG_HAVE_ARCH_MMAP_RND_BITS=y +CONFIG_HAVE_EXIT_THREAD=y +CONFIG_ARCH_MMAP_RND_BITS=28 +CONFIG_HAVE_ARCH_MMAP_RND_COMPAT_BITS=y +CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8 +CONFIG_HAVE_ARCH_COMPAT_MMAP_BASES=y +CONFIG_HAVE_COPY_THREAD_TLS=y +CONFIG_HAVE_STACK_VALIDATION=y +CONFIG_HAVE_RELIABLE_STACKTRACE=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_COMPAT_OLD_SIGACTION=y +CONFIG_64BIT_TIME=y +CONFIG_COMPAT_32BIT_TIME=y +CONFIG_HAVE_ARCH_VMAP_STACK=y +CONFIG_VMAP_STACK=y +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y +CONFIG_STRICT_KERNEL_RWX=y +CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y +CONFIG_STRICT_MODULE_RWX=y +CONFIG_ARCH_HAS_REFCOUNT=y +# CONFIG_REFCOUNT_FULL is not set +CONFIG_HAVE_ARCH_PREL32_RELOCATIONS=y +CONFIG_ARCH_USE_MEMREMAP_PROT=y +# CONFIG_LOCK_EVENT_COUNTS is not set +CONFIG_ARCH_HAS_MEM_ENCRYPT=y + +# +# GCOV-based kernel profiling +# +# CONFIG_GCOV_KERNEL is not set +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y +# end of GCOV-based kernel profiling + +CONFIG_PLUGIN_HOSTCC="" +CONFIG_HAVE_GCC_PLUGINS=y +# end of General architecture-dependent options + +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +CONFIG_MODULE_FORCE_LOAD=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODULE_FORCE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_ASM_MODVERSIONS=y +# CONFIG_MODULE_SRCVERSION_ALL is not set +# CONFIG_MODULE_SIG is not set +# CONFIG_MODULE_COMPRESS is not set +# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set +# CONFIG_UNUSED_SYMBOLS is not set +# CONFIG_TRIM_UNUSED_KSYMS is not set +CONFIG_MODULES_TREE_LOOKUP=y +CONFIG_BLOCK=y +CONFIG_BLK_SCSI_REQUEST=y +CONFIG_BLK_DEV_BSG=y +# CONFIG_BLK_DEV_BSGLIB is not set +# CONFIG_BLK_DEV_INTEGRITY is not set +# CONFIG_BLK_DEV_ZONED is not set +CONFIG_BLK_CMDLINE_PARSER=y +# CONFIG_BLK_WBT is not set +CONFIG_BLK_DEBUG_FS=y +# CONFIG_BLK_SED_OPAL is not set + +# +# Partition Types +# +CONFIG_PARTITION_ADVANCED=y +# CONFIG_ACORN_PARTITION is not set +# CONFIG_AIX_PARTITION is not set +# CONFIG_OSF_PARTITION is not set +# CONFIG_AMIGA_PARTITION is not set +# CONFIG_ATARI_PARTITION is not set +# CONFIG_MAC_PARTITION is not set +CONFIG_MSDOS_PARTITION=y +# CONFIG_BSD_DISKLABEL is not set +# CONFIG_MINIX_SUBPARTITION is not set +# CONFIG_SOLARIS_X86_PARTITION is not set +# CONFIG_UNIXWARE_DISKLABEL is not set +# CONFIG_LDM_PARTITION is not set +# CONFIG_SGI_PARTITION is not set +# CONFIG_ULTRIX_PARTITION is not set +# CONFIG_SUN_PARTITION is not set +# CONFIG_KARMA_PARTITION is not set +CONFIG_EFI_PARTITION=y +# CONFIG_SYSV68_PARTITION is not set +# CONFIG_CMDLINE_PARTITION is not set +# end of Partition Types + +CONFIG_BLOCK_COMPAT=y +CONFIG_BLK_MQ_PCI=y + +# +# IO Schedulers +# +CONFIG_MQ_IOSCHED_DEADLINE=y +CONFIG_MQ_IOSCHED_KYBER=y +# CONFIG_IOSCHED_BFQ is not set +# end of IO Schedulers + +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +CONFIG_INLINE_READ_UNLOCK=y +CONFIG_INLINE_READ_UNLOCK_IRQ=y +CONFIG_INLINE_WRITE_UNLOCK=y +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_LOCK_SPIN_ON_OWNER=y +CONFIG_ARCH_USE_QUEUED_SPINLOCKS=y +CONFIG_QUEUED_SPINLOCKS=y +CONFIG_ARCH_USE_QUEUED_RWLOCKS=y +CONFIG_QUEUED_RWLOCKS=y +CONFIG_ARCH_HAS_SYNC_CORE_BEFORE_USERMODE=y +CONFIG_ARCH_HAS_SYSCALL_WRAPPER=y + +# +# Executable file formats +# +CONFIG_BINFMT_ELF=y +CONFIG_COMPAT_BINFMT_ELF=y +CONFIG_ELFCORE=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_BINFMT_SCRIPT=y +# CONFIG_BINFMT_MISC is not set +CONFIG_COREDUMP=y +# end of Executable file formats + +# +# Memory Management options +# +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SPARSEMEM=y +CONFIG_HAVE_MEMORY_PRESENT=y +CONFIG_SPARSEMEM_EXTREME=y +CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y +CONFIG_SPARSEMEM_VMEMMAP=y +CONFIG_HAVE_MEMBLOCK_NODE_MAP=y +CONFIG_HAVE_FAST_GUP=y +# CONFIG_MEMORY_HOTPLUG is not set +CONFIG_SPLIT_PTLOCK_CPUS=4 +# CONFIG_COMPACTION is not set +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_BOUNCE=y +CONFIG_VIRT_TO_BUS=y +CONFIG_KSM=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +# CONFIG_TRANSPARENT_HUGEPAGE is not set +CONFIG_ARCH_WANTS_THP_SWAP=y +# CONFIG_CLEANCACHE is not set +# CONFIG_FRONTSWAP is not set +# CONFIG_CMA is not set +# CONFIG_ZPOOL is not set +# CONFIG_ZBUD is not set +# CONFIG_ZSMALLOC is not set +CONFIG_GENERIC_EARLY_IOREMAP=y +# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set +# CONFIG_IDLE_PAGE_TRACKING is not set +CONFIG_ARCH_HAS_PTE_DEVMAP=y +CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y +CONFIG_ARCH_HAS_PKEYS=y +# CONFIG_PERCPU_STATS is not set +# CONFIG_GUP_BENCHMARK is not set +CONFIG_ARCH_HAS_PTE_SPECIAL=y +# end of Memory Management options + +CONFIG_NET=y +CONFIG_SKB_EXTENSIONS=y + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_DIAG is not set +CONFIG_UNIX=y +CONFIG_UNIX_SCM=y +# CONFIG_UNIX_DIAG is not set +# CONFIG_TLS is not set +CONFIG_XFRM=y +CONFIG_XFRM_ALGO=y +CONFIG_XFRM_USER=y +# CONFIG_XFRM_INTERFACE is not set +# CONFIG_XFRM_SUB_POLICY is not set +# CONFIG_XFRM_MIGRATE is not set +# CONFIG_XFRM_STATISTICS is not set +CONFIG_XFRM_IPCOMP=y +CONFIG_NET_KEY=y +# CONFIG_NET_KEY_MIGRATE is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +CONFIG_IP_FIB_TRIE_STATS=y +CONFIG_IP_MULTIPLE_TABLES=y +CONFIG_IP_ROUTE_MULTIPATH=y +# CONFIG_IP_ROUTE_VERBOSE is not set +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +# CONFIG_IP_PNP_RARP is not set +# CONFIG_NET_IPIP is not set +# CONFIG_NET_IPGRE_DEMUX is not set +CONFIG_NET_IP_TUNNEL=y +CONFIG_IP_MROUTE_COMMON=y +CONFIG_IP_MROUTE=y +# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set +# CONFIG_IP_PIMSM_V1 is not set +CONFIG_IP_PIMSM_V2=y +CONFIG_SYN_COOKIES=y +# CONFIG_NET_IPVTI is not set +# CONFIG_NET_FOU is not set +# CONFIG_NET_FOU_IP_TUNNELS is not set +# CONFIG_INET_AH is not set +# CONFIG_INET_ESP is not set +# CONFIG_INET_IPCOMP is not set +CONFIG_INET_TUNNEL=y +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +# CONFIG_INET_UDP_DIAG is not set +# CONFIG_INET_RAW_DIAG is not set +# CONFIG_INET_DIAG_DESTROY is not set +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_BIC=y +CONFIG_TCP_CONG_CUBIC=y +CONFIG_TCP_CONG_WESTWOOD=y +CONFIG_TCP_CONG_HTCP=y +# CONFIG_TCP_CONG_HSTCP is not set +# CONFIG_TCP_CONG_HYBLA is not set +# CONFIG_TCP_CONG_VEGAS is not set +# CONFIG_TCP_CONG_NV is not set +# CONFIG_TCP_CONG_SCALABLE is not set +# CONFIG_TCP_CONG_LP is not set +# CONFIG_TCP_CONG_VENO is not set +# CONFIG_TCP_CONG_YEAH is not set +# CONFIG_TCP_CONG_ILLINOIS is not set +# CONFIG_TCP_CONG_DCTCP is not set +# CONFIG_TCP_CONG_CDG is not set +# CONFIG_TCP_CONG_BBR is not set +# CONFIG_DEFAULT_BIC is not set +CONFIG_DEFAULT_CUBIC=y +# CONFIG_DEFAULT_HTCP is not set +# CONFIG_DEFAULT_WESTWOOD is not set +# CONFIG_DEFAULT_RENO is not set +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +CONFIG_IPV6=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y +CONFIG_INET6_AH=y +CONFIG_INET6_ESP=y +# CONFIG_INET6_ESP_OFFLOAD is not set +CONFIG_INET6_IPCOMP=y +CONFIG_IPV6_MIP6=y +CONFIG_INET6_XFRM_TUNNEL=y +CONFIG_INET6_TUNNEL=y +# CONFIG_IPV6_VTI is not set +CONFIG_IPV6_SIT=y +# CONFIG_IPV6_SIT_6RD is not set +CONFIG_IPV6_NDISC_NODETYPE=y +CONFIG_IPV6_TUNNEL=y +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_SUBTREES=y +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y +CONFIG_IPV6_PIMSM_V2=y +# CONFIG_IPV6_SEG6_LWTUNNEL is not set +# CONFIG_IPV6_SEG6_HMAC is not set +# CONFIG_NETWORK_SECMARK is not set +CONFIG_NET_PTP_CLASSIFY=y +CONFIG_NETWORK_PHY_TIMESTAMPING=y +# CONFIG_NETFILTER is not set +# CONFIG_BPFILTER is not set +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_RDS is not set +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_L2TP is not set +# CONFIG_BRIDGE is not set +CONFIG_HAVE_NET_DSA=y +# CONFIG_NET_DSA is not set +CONFIG_VLAN_8021Q=y +# CONFIG_VLAN_8021Q_GVRP is not set +# CONFIG_VLAN_8021Q_MVRP is not set +# CONFIG_DECNET is not set +# CONFIG_LLC2 is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_PHONET is not set +# CONFIG_6LOWPAN is not set +# CONFIG_IEEE802154 is not set +CONFIG_NET_SCHED=y + +# +# Queueing/Scheduling +# +# CONFIG_NET_SCH_CBQ is not set +# CONFIG_NET_SCH_HTB is not set +# CONFIG_NET_SCH_HFSC is not set +# CONFIG_NET_SCH_PRIO is not set +# CONFIG_NET_SCH_MULTIQ is not set +# CONFIG_NET_SCH_RED is not set +# CONFIG_NET_SCH_SFB is not set +# CONFIG_NET_SCH_SFQ is not set +# CONFIG_NET_SCH_TEQL is not set +# CONFIG_NET_SCH_TBF is not set +# CONFIG_NET_SCH_CBS is not set +# CONFIG_NET_SCH_ETF is not set +# CONFIG_NET_SCH_TAPRIO is not set +# CONFIG_NET_SCH_GRED is not set +# CONFIG_NET_SCH_DSMARK is not set +# CONFIG_NET_SCH_NETEM is not set +# CONFIG_NET_SCH_DRR is not set +# CONFIG_NET_SCH_MQPRIO is not set +# CONFIG_NET_SCH_SKBPRIO is not set +# CONFIG_NET_SCH_CHOKE is not set +# CONFIG_NET_SCH_QFQ is not set +# CONFIG_NET_SCH_CODEL is not set +# CONFIG_NET_SCH_FQ_CODEL is not set +# CONFIG_NET_SCH_CAKE is not set +# CONFIG_NET_SCH_FQ is not set +# CONFIG_NET_SCH_HHF is not set +# CONFIG_NET_SCH_PIE is not set +# CONFIG_NET_SCH_PLUG is not set +# CONFIG_NET_SCH_DEFAULT is not set + +# +# Classification +# +# CONFIG_NET_CLS_BASIC is not set +# CONFIG_NET_CLS_TCINDEX is not set +# CONFIG_NET_CLS_ROUTE4 is not set +# CONFIG_NET_CLS_FW is not set +# CONFIG_NET_CLS_U32 is not set +# CONFIG_NET_CLS_RSVP is not set +# CONFIG_NET_CLS_RSVP6 is not set +# CONFIG_NET_CLS_FLOW is not set +# CONFIG_NET_CLS_BPF is not set +# CONFIG_NET_CLS_FLOWER is not set +# CONFIG_NET_CLS_MATCHALL is not set +# CONFIG_NET_EMATCH is not set +# CONFIG_NET_CLS_ACT is not set +CONFIG_NET_SCH_FIFO=y +CONFIG_DCB=y +CONFIG_DNS_RESOLVER=y +# CONFIG_BATMAN_ADV is not set +# CONFIG_OPENVSWITCH is not set +# CONFIG_VSOCKETS is not set +# CONFIG_NETLINK_DIAG is not set +# CONFIG_MPLS is not set +# CONFIG_NET_NSH is not set +# CONFIG_HSR is not set +# CONFIG_NET_SWITCHDEV is not set +# CONFIG_NET_L3_MASTER_DEV is not set +# CONFIG_NET_NCSI is not set +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_XPS=y +CONFIG_NET_RX_BUSY_POLL=y +CONFIG_BQL=y +# CONFIG_BPF_JIT is not set +CONFIG_NET_FLOW_LIMIT=y + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +# end of Network testing +# end of Networking options + +# CONFIG_HAMRADIO is not set +# CONFIG_CAN is not set +# CONFIG_BT is not set +# CONFIG_AF_RXRPC is not set +# CONFIG_AF_KCM is not set +CONFIG_FIB_RULES=y +# CONFIG_WIRELESS is not set +# CONFIG_WIMAX is not set +# CONFIG_RFKILL is not set +# CONFIG_NET_9P is not set +# CONFIG_CAIF is not set +# CONFIG_CEPH_LIB is not set +# CONFIG_NFC is not set +# CONFIG_PSAMPLE is not set +# CONFIG_NET_IFE is not set +# CONFIG_LWTUNNEL is not set +CONFIG_DST_CACHE=y +CONFIG_GRO_CELLS=y +# CONFIG_FAILOVER is not set +CONFIG_HAVE_EBPF_JIT=y + +# +# Device Drivers +# +CONFIG_HAVE_EISA=y +# CONFIG_EISA is not set +CONFIG_HAVE_PCI=y +CONFIG_PCI=y +CONFIG_PCI_DOMAINS=y +CONFIG_PCIEPORTBUS=y +CONFIG_PCIEAER=y +# CONFIG_PCIEAER_INJECT is not set +# CONFIG_PCIE_ECRC is not set +# CONFIG_PCIEASPM is not set +# CONFIG_PCIE_DPC is not set +# CONFIG_PCIE_PTM is not set +# CONFIG_PCIE_BW is not set +CONFIG_PCI_MSI=y +CONFIG_PCI_MSI_IRQ_DOMAIN=y +CONFIG_PCI_QUIRKS=y +CONFIG_PCI_DEBUG=y +# CONFIG_PCI_STUB is not set +CONFIG_PCI_LOCKLESS_CONFIG=y +# CONFIG_PCI_IOV is not set +# CONFIG_PCI_PRI is not set +# CONFIG_PCI_PASID is not set +CONFIG_PCI_LABEL=y +# CONFIG_HOTPLUG_PCI is not set + +# +# PCI controller drivers +# + +# +# Cadence PCIe controllers support +# +# end of Cadence PCIe controllers support + +# CONFIG_VMD is not set + +# +# DesignWare PCI Core Support +# +# CONFIG_PCIE_DW_PLAT_HOST is not set +# CONFIG_PCI_MESON is not set +# end of DesignWare PCI Core Support +# end of PCI controller drivers + +# +# PCI Endpoint +# +# CONFIG_PCI_ENDPOINT is not set +# end of PCI Endpoint + +# +# PCI switch controller drivers +# +# CONFIG_PCI_SW_SWITCHTEC is not set +# end of PCI switch controller drivers + +# CONFIG_PCCARD is not set +# CONFIG_RAPIDIO is not set + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER=y +CONFIG_UEVENT_HELPER_PATH="" +CONFIG_DEVTMPFS=y +CONFIG_DEVTMPFS_MOUNT=y +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y + +# +# Firmware loader +# +CONFIG_FW_LOADER=y +CONFIG_EXTRA_FIRMWARE="" +# CONFIG_FW_LOADER_USER_HELPER is not set +# CONFIG_FW_LOADER_COMPRESS is not set +# end of Firmware loader + +CONFIG_ALLOW_DEV_COREDUMP=y +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set +# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set +CONFIG_GENERIC_CPU_AUTOPROBE=y +CONFIG_GENERIC_CPU_VULNERABILITIES=y +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=y +# end of Generic Driver Options + +# +# Bus devices +# +# end of Bus devices + +CONFIG_CONNECTOR=y +CONFIG_PROC_EVENTS=y +# CONFIG_GNSS is not set +CONFIG_MTD=y +# CONFIG_MTD_TESTS is not set + +# +# Partition parsers +# +# CONFIG_MTD_AR7_PARTS is not set +# CONFIG_MTD_CMDLINE_PARTS is not set +# CONFIG_MTD_REDBOOT_PARTS is not set +# end of Partition parsers + +# +# User Modules And Translation Layers +# +# CONFIG_MTD_BLOCK is not set +# CONFIG_MTD_BLOCK_RO is not set +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set +# CONFIG_SM_FTL is not set +# CONFIG_MTD_OOPS is not set +# CONFIG_MTD_SWAP is not set +# CONFIG_MTD_PARTITIONED_MASTER is not set + +# +# RAM/ROM/Flash chip drivers +# +# CONFIG_MTD_CFI is not set +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set +# end of RAM/ROM/Flash chip drivers + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_INTEL_VR_NOR is not set +# CONFIG_MTD_PLATRAM is not set +# end of Mapping drivers for chip access + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_PMC551 is not set +# CONFIG_MTD_DATAFLASH is not set +# CONFIG_MTD_MCHP23K256 is not set +# CONFIG_MTD_SST25L is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOCG3 is not set +# end of Self-contained MTD device drivers + +# CONFIG_MTD_ONENAND is not set +# CONFIG_MTD_RAW_NAND is not set +# CONFIG_MTD_SPI_NAND is not set + +# +# LPDDR & LPDDR2 PCM memory drivers +# +# CONFIG_MTD_LPDDR is not set +# end of LPDDR & LPDDR2 PCM memory drivers + +CONFIG_MTD_SPI_NOR=y +CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y +# CONFIG_SPI_MTK_QUADSPI is not set +# CONFIG_SPI_INTEL_SPI_PCI is not set +# CONFIG_SPI_INTEL_SPI_PLATFORM is not set +CONFIG_MTD_UBI=y +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI_BEB_LIMIT=20 +# CONFIG_MTD_UBI_FASTMAP is not set +# CONFIG_MTD_UBI_GLUEBI is not set +# CONFIG_MTD_UBI_BLOCK is not set +# CONFIG_MTD_HYPERBUS is not set +# CONFIG_OF is not set +CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y +# CONFIG_PARPORT is not set +CONFIG_PNP=y +CONFIG_PNP_DEBUG_MESSAGES=y + +# +# Protocols +# +CONFIG_PNPACPI=y +CONFIG_BLK_DEV=y +# CONFIG_BLK_DEV_NULL_BLK is not set +# CONFIG_BLK_DEV_FD is not set +# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set +# CONFIG_BLK_DEV_UMEM is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +# CONFIG_BLK_DEV_DRBD is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_SKD is not set +# CONFIG_BLK_DEV_SX8 is not set +CONFIG_BLK_DEV_RAM=y +CONFIG_BLK_DEV_RAM_COUNT=16 +CONFIG_BLK_DEV_RAM_SIZE=32768 +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_BLK_DEV_RBD is not set +# CONFIG_BLK_DEV_RSXX is not set + +# +# NVME Support +# +CONFIG_NVME_CORE=y +CONFIG_BLK_DEV_NVME=y +# CONFIG_NVME_MULTIPATH is not set +# CONFIG_NVME_FC is not set +# CONFIG_NVME_TCP is not set +# end of NVME Support + +# +# Misc devices +# +# CONFIG_AD525X_DPOT is not set +# CONFIG_DUMMY_IRQ is not set +# CONFIG_IBM_ASM is not set +# CONFIG_PHANTOM is not set +# CONFIG_TIFM_CORE is not set +# CONFIG_ICS932S401 is not set +# CONFIG_ENCLOSURE_SERVICES is not set +# CONFIG_HP_ILO is not set +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set +# CONFIG_DS1682 is not set +# CONFIG_LATTICE_ECP3_CONFIG is not set +# CONFIG_SRAM is not set +# CONFIG_PCI_ENDPOINT_TEST is not set +# CONFIG_XILINX_SDFEC is not set +# CONFIG_PVPANIC is not set +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +CONFIG_EEPROM_AT24=y +CONFIG_EEPROM_AT25=y +# CONFIG_EEPROM_LEGACY is not set +# CONFIG_EEPROM_MAX6875 is not set +# CONFIG_EEPROM_93CX6 is not set +# CONFIG_EEPROM_93XX46 is not set +# CONFIG_EEPROM_IDT_89HPESX is not set +# CONFIG_EEPROM_EE1004 is not set +# end of EEPROM support + +# CONFIG_CB710_CORE is not set + +# +# Texas Instruments shared transport line discipline +# +# CONFIG_TI_ST is not set +# end of Texas Instruments shared transport line discipline + +# CONFIG_SENSORS_LIS3_I2C is not set +# CONFIG_ALTERA_STAPL is not set +CONFIG_INTEL_MEI=y +CONFIG_INTEL_MEI_ME=y +# CONFIG_INTEL_MEI_TXE is not set +# CONFIG_VMWARE_VMCI is not set + +# +# Intel MIC & related support +# + +# +# Intel MIC Bus Driver +# +# CONFIG_INTEL_MIC_BUS is not set + +# +# SCIF Bus Driver +# +# CONFIG_SCIF_BUS is not set + +# +# VOP Bus Driver +# +# CONFIG_VOP_BUS is not set + +# +# Intel MIC Host Driver +# + +# +# Intel MIC Card Driver +# + +# +# SCIF Driver +# + +# +# Intel MIC Coprocessor State Management (COSM) Drivers +# + +# +# VOP Driver +# +# end of Intel MIC & related support + +# CONFIG_GENWQE is not set +# CONFIG_ECHO is not set +# CONFIG_MISC_ALCOR_PCI is not set +# CONFIG_MISC_RTSX_PCI is not set +# CONFIG_MISC_RTSX_USB is not set +# CONFIG_HABANA_AI is not set +# end of Misc devices + +CONFIG_HAVE_IDE=y +# CONFIG_IDE is not set + +# +# SCSI device support +# +CONFIG_SCSI_MOD=y +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +# CONFIG_CHR_DEV_ST is not set +# CONFIG_BLK_DEV_SR is not set +# CONFIG_CHR_DEV_SG is not set +# CONFIG_CHR_DEV_SCH is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +# CONFIG_SCSI_SCAN_ASYNC is not set + +# +# SCSI Transports +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_ATTRS is not set +# CONFIG_SCSI_SAS_LIBSAS is not set +# CONFIG_SCSI_SRP_ATTRS is not set +# end of SCSI Transports + +# CONFIG_SCSI_LOWLEVEL is not set +# CONFIG_SCSI_DH is not set +# end of SCSI device support + +CONFIG_ATA=y +CONFIG_ATA_VERBOSE_ERROR=y +CONFIG_ATA_ACPI=y +CONFIG_SATA_PMP=y + +# +# Controllers with non-SFF native interface +# +CONFIG_SATA_AHCI=y +CONFIG_SATA_MOBILE_LPM_POLICY=0 +# CONFIG_SATA_AHCI_PLATFORM is not set +# CONFIG_SATA_INIC162X is not set +# CONFIG_SATA_ACARD_AHCI is not set +# CONFIG_SATA_SIL24 is not set +CONFIG_ATA_SFF=y + +# +# SFF controllers with custom DMA interface +# +# CONFIG_PDC_ADMA is not set +# CONFIG_SATA_QSTOR is not set +# CONFIG_SATA_SX4 is not set +# CONFIG_ATA_BMDMA is not set + +# +# PIO-only SFF controllers +# +# CONFIG_PATA_CMD640_PCI is not set +CONFIG_PATA_MPIIX=y +# CONFIG_PATA_NS87410 is not set +# CONFIG_PATA_OPTI is not set +CONFIG_PATA_PLATFORM=y +# CONFIG_PATA_RZ1000 is not set + +# +# Generic fallback / legacy drivers +# +# CONFIG_PATA_LEGACY is not set +CONFIG_MD=y +CONFIG_BLK_DEV_MD=y +CONFIG_MD_AUTODETECT=y +CONFIG_MD_LINEAR=y +CONFIG_MD_RAID0=y +CONFIG_MD_RAID1=y +CONFIG_MD_RAID10=y +CONFIG_MD_RAID456=y +# CONFIG_MD_MULTIPATH is not set +# CONFIG_MD_FAULTY is not set +# CONFIG_BCACHE is not set +CONFIG_BLK_DEV_DM_BUILTIN=y +CONFIG_BLK_DEV_DM=y +# CONFIG_DM_DEBUG is not set +CONFIG_DM_BUFIO=y +# CONFIG_DM_DEBUG_BLOCK_MANAGER_LOCKING is not set +CONFIG_DM_BIO_PRISON=y +CONFIG_DM_PERSISTENT_DATA=y +# CONFIG_DM_UNSTRIPED is not set +CONFIG_DM_CRYPT=y +CONFIG_DM_SNAPSHOT=y +CONFIG_DM_THIN_PROVISIONING=y +# CONFIG_DM_CACHE is not set +# CONFIG_DM_WRITECACHE is not set +# CONFIG_DM_ERA is not set +# CONFIG_DM_CLONE is not set +CONFIG_DM_MIRROR=y +# CONFIG_DM_LOG_USERSPACE is not set +CONFIG_DM_RAID=y +# CONFIG_DM_ZERO is not set +# CONFIG_DM_MULTIPATH is not set +# CONFIG_DM_DELAY is not set +# CONFIG_DM_DUST is not set +# CONFIG_DM_INIT is not set +CONFIG_DM_UEVENT=y +# CONFIG_DM_FLAKEY is not set +CONFIG_DM_VERITY=y +# CONFIG_DM_VERITY_VERIFY_ROOTHASH_SIG is not set +# CONFIG_DM_VERITY_FEC is not set +# CONFIG_DM_SWITCH is not set +# CONFIG_DM_LOG_WRITES is not set +# CONFIG_DM_INTEGRITY is not set +# CONFIG_TARGET_CORE is not set +# CONFIG_FUSION is not set + +# +# IEEE 1394 (FireWire) support +# +# CONFIG_FIREWIRE is not set +# CONFIG_FIREWIRE_NOSY is not set +# end of IEEE 1394 (FireWire) support + +# CONFIG_MACINTOSH_DRIVERS is not set +CONFIG_NETDEVICES=y +CONFIG_NET_CORE=y +# CONFIG_BONDING is not set +CONFIG_DUMMY=y +# CONFIG_EQUALIZER is not set +# CONFIG_NET_FC is not set +# CONFIG_NET_TEAM is not set +# CONFIG_MACVLAN is not set +# CONFIG_IPVLAN is not set +# CONFIG_VXLAN is not set +# CONFIG_GENEVE is not set +# CONFIG_GTP is not set +# CONFIG_MACSEC is not set +CONFIG_NETCONSOLE=y +CONFIG_NETPOLL=y +CONFIG_NET_POLL_CONTROLLER=y +# CONFIG_TUN is not set +# CONFIG_TUN_VNET_CROSS_LE is not set +# CONFIG_VETH is not set +# CONFIG_NLMON is not set +# CONFIG_ARCNET is not set + +# +# CAIF transport drivers +# + +# +# Distributed Switch Architecture drivers +# +# end of Distributed Switch Architecture drivers + +CONFIG_ETHERNET=y +CONFIG_MDIO=y +# CONFIG_NET_VENDOR_3COM is not set +# CONFIG_NET_VENDOR_ADAPTEC is not set +# CONFIG_NET_VENDOR_AGERE is not set +CONFIG_NET_VENDOR_ALACRITECH=y +# CONFIG_SLICOSS is not set +# CONFIG_NET_VENDOR_ALTEON is not set +# CONFIG_ALTERA_TSE is not set +# CONFIG_NET_VENDOR_AMAZON is not set +# CONFIG_NET_VENDOR_AMD is not set +CONFIG_NET_VENDOR_AQUANTIA=y +# CONFIG_AQTION is not set +# CONFIG_NET_VENDOR_ARC is not set +# CONFIG_NET_VENDOR_ATHEROS is not set +# CONFIG_NET_VENDOR_AURORA is not set +# CONFIG_NET_VENDOR_BROADCOM is not set +# CONFIG_NET_VENDOR_BROCADE is not set +CONFIG_NET_VENDOR_CADENCE=y +# CONFIG_MACB is not set +# CONFIG_NET_VENDOR_CAVIUM is not set +# CONFIG_NET_VENDOR_CHELSIO is not set +# CONFIG_NET_VENDOR_CISCO is not set +CONFIG_NET_VENDOR_CORTINA=y +# CONFIG_CX_ECAT is not set +# CONFIG_DNET is not set +# CONFIG_NET_VENDOR_DEC is not set +# CONFIG_NET_VENDOR_DLINK is not set +# CONFIG_NET_VENDOR_EMULEX is not set +# CONFIG_NET_VENDOR_EZCHIP is not set +CONFIG_NET_VENDOR_GOOGLE=y +# CONFIG_GVE is not set +# CONFIG_NET_VENDOR_HP is not set +CONFIG_NET_VENDOR_HUAWEI=y +# CONFIG_HINIC is not set +# CONFIG_NET_VENDOR_I825XX is not set +CONFIG_NET_VENDOR_INTEL=y +# CONFIG_E100 is not set +CONFIG_E1000=y +CONFIG_E1000E=y +CONFIG_E1000E_HWTS=y +CONFIG_IGB=y +CONFIG_IGB_HWMON=y +# CONFIG_IGBVF is not set +CONFIG_IXGB=y +CONFIG_IXGBE=y +# CONFIG_IXGBE_HWMON is not set +# CONFIG_IXGBE_DCB is not set +# CONFIG_IXGBEVF is not set +# CONFIG_I40E is not set +# CONFIG_I40EVF is not set +# CONFIG_ICE is not set +# CONFIG_FM10K is not set +# CONFIG_IGC is not set +# CONFIG_JME is not set +# CONFIG_NET_VENDOR_MARVELL is not set +# CONFIG_NET_VENDOR_MELLANOX is not set +# CONFIG_NET_VENDOR_MICREL is not set +# CONFIG_NET_VENDOR_MICROCHIP is not set +CONFIG_NET_VENDOR_MICROSEMI=y +# CONFIG_NET_VENDOR_MYRI is not set +# CONFIG_FEALNX is not set +# CONFIG_NET_VENDOR_NATSEMI is not set +CONFIG_NET_VENDOR_NETERION=y +# CONFIG_S2IO is not set +# CONFIG_VXGE is not set +# CONFIG_NET_VENDOR_NETRONOME is not set +CONFIG_NET_VENDOR_NI=y +# CONFIG_NI_XGE_MANAGEMENT_ENET is not set +# CONFIG_NET_VENDOR_NVIDIA is not set +# CONFIG_NET_VENDOR_OKI is not set +# CONFIG_ETHOC is not set +CONFIG_NET_VENDOR_PACKET_ENGINES=y +# CONFIG_HAMACHI is not set +# CONFIG_YELLOWFIN is not set +CONFIG_NET_VENDOR_PENSANDO=y +# CONFIG_IONIC is not set +# CONFIG_NET_VENDOR_QLOGIC is not set +# CONFIG_NET_VENDOR_QUALCOMM is not set +# CONFIG_NET_VENDOR_RDC is not set +CONFIG_NET_VENDOR_REALTEK=y +# CONFIG_8139CP is not set +# CONFIG_8139TOO is not set +CONFIG_R8169=y +# CONFIG_NET_VENDOR_RENESAS is not set +# CONFIG_NET_VENDOR_ROCKER is not set +# CONFIG_NET_VENDOR_SAMSUNG is not set +# CONFIG_NET_VENDOR_SEEQ is not set +# CONFIG_NET_VENDOR_SOLARFLARE is not set +# CONFIG_NET_VENDOR_SILAN is not set +# CONFIG_NET_VENDOR_SIS is not set +# CONFIG_NET_VENDOR_SMSC is not set +CONFIG_NET_VENDOR_SOCIONEXT=y +# CONFIG_NET_VENDOR_STMICRO is not set +# CONFIG_NET_VENDOR_SUN is not set +# CONFIG_NET_VENDOR_SYNOPSYS is not set +# CONFIG_NET_VENDOR_TEHUTI is not set +# CONFIG_NET_VENDOR_TI is not set +# CONFIG_NET_VENDOR_VIA is not set +# CONFIG_NET_VENDOR_WIZNET is not set +CONFIG_NET_VENDOR_XILINX=y +# CONFIG_XILINX_AXI_EMAC is not set +# CONFIG_XILINX_LL_TEMAC is not set +# CONFIG_FDDI is not set +# CONFIG_HIPPI is not set +# CONFIG_NET_SB1000 is not set +CONFIG_MDIO_DEVICE=y +CONFIG_MDIO_BUS=y +# CONFIG_MDIO_BCM_UNIMAC is not set +# CONFIG_MDIO_BITBANG is not set +# CONFIG_MDIO_MSCC_MIIM is not set +# CONFIG_MDIO_THUNDER is not set +CONFIG_PHYLIB=y + +# +# MII PHY device drivers +# +# CONFIG_ADIN_PHY is not set +# CONFIG_AMD_PHY is not set +# CONFIG_AQUANTIA_PHY is not set +# CONFIG_AX88796B_PHY is not set +# CONFIG_AT803X_PHY is not set +# CONFIG_BCM7XXX_PHY is not set +CONFIG_BCM87XX_PHY=y +CONFIG_BCM_NET_PHYLIB=y +CONFIG_BROADCOM_PHY=y +# CONFIG_CICADA_PHY is not set +# CONFIG_CORTINA_PHY is not set +# CONFIG_DAVICOM_PHY is not set +# CONFIG_DP83822_PHY is not set +# CONFIG_DP83TC811_PHY is not set +# CONFIG_DP83848_PHY is not set +# CONFIG_DP83867_PHY is not set +# CONFIG_FIXED_PHY is not set +# CONFIG_ICPLUS_PHY is not set +# CONFIG_INTEL_XWAY_PHY is not set +# CONFIG_LSI_ET1011C_PHY is not set +# CONFIG_LXT_PHY is not set +CONFIG_MARVELL_PHY=y +# CONFIG_MARVELL_10G_PHY is not set +# CONFIG_MICREL_PHY is not set +# CONFIG_MICROCHIP_PHY is not set +# CONFIG_MICROCHIP_T1_PHY is not set +# CONFIG_MICROSEMI_PHY is not set +# CONFIG_NATIONAL_PHY is not set +# CONFIG_NXP_TJA11XX_PHY is not set +# CONFIG_QSEMI_PHY is not set +CONFIG_REALTEK_PHY=y +# CONFIG_RENESAS_PHY is not set +# CONFIG_ROCKCHIP_PHY is not set +# CONFIG_SMSC_PHY is not set +# CONFIG_STE10XP is not set +# CONFIG_TERANETICS_PHY is not set +# CONFIG_VITESSE_PHY is not set +# CONFIG_XILINX_GMII2RGMII is not set +# CONFIG_MICREL_KS8995MA is not set +# CONFIG_PPP is not set +# CONFIG_SLIP is not set +CONFIG_USB_NET_DRIVERS=y +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_RTL8152 is not set +# CONFIG_USB_LAN78XX is not set +# CONFIG_USB_USBNET is not set +# CONFIG_USB_IPHETH is not set +# CONFIG_WLAN is not set + +# +# Enable WiMAX (Networking options) to see the WiMAX drivers +# +# CONFIG_WAN is not set +# CONFIG_VMXNET3 is not set +# CONFIG_FUJITSU_ES is not set +# CONFIG_NETDEVSIM is not set +# CONFIG_NET_FAILOVER is not set +# CONFIG_ISDN is not set +# CONFIG_NVM is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set +# CONFIG_INPUT_POLLDEV is not set +# CONFIG_INPUT_SPARSEKMAP is not set +# CONFIG_INPUT_MATRIXKMAP is not set + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +# CONFIG_INPUT_EVDEV is not set +# CONFIG_INPUT_EVBUG is not set + +# +# Input Device Drivers +# +# CONFIG_INPUT_KEYBOARD is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +# CONFIG_INPUT_MISC is not set +# CONFIG_RMI4_CORE is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y +CONFIG_SERIO_I8042=y +# CONFIG_SERIO_SERPORT is not set +# CONFIG_SERIO_CT82C710 is not set +# CONFIG_SERIO_PCIPS2 is not set +# CONFIG_SERIO_LIBPS2 is not set +CONFIG_SERIO_RAW=y +# CONFIG_SERIO_ALTERA_PS2 is not set +# CONFIG_SERIO_PS2MULT is not set +# CONFIG_SERIO_ARC_PS2 is not set +# CONFIG_SERIO_GPIO_PS2 is not set +# CONFIG_USERIO is not set +# CONFIG_GAMEPORT is not set +# end of Hardware I/O ports +# end of Input device support + +# +# Character devices +# +CONFIG_TTY=y +CONFIG_VT=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_VT_CONSOLE=y +CONFIG_HW_CONSOLE=y +# CONFIG_VT_HW_CONSOLE_BINDING is not set +CONFIG_UNIX98_PTYS=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=256 +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_NOZOMI is not set +# CONFIG_N_GSM is not set +# CONFIG_TRACE_SINK is not set +# CONFIG_NULL_TTY is not set +CONFIG_LDISC_AUTOLOAD=y +CONFIG_DEVMEM=y +CONFIG_DEVKMEM=y + +# +# Serial drivers +# +CONFIG_SERIAL_EARLYCON=y +CONFIG_SERIAL_8250=y +# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set +CONFIG_SERIAL_8250_PNP=y +# CONFIG_SERIAL_8250_FINTEK is not set +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_PCI=y +CONFIG_SERIAL_8250_EXAR=y +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=2 +CONFIG_SERIAL_8250_EXTENDED=y +# CONFIG_SERIAL_8250_MANY_PORTS is not set +CONFIG_SERIAL_8250_SHARE_IRQ=y +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +# CONFIG_SERIAL_8250_RSA is not set +CONFIG_SERIAL_8250_DWLIB=y +# CONFIG_SERIAL_8250_DW is not set +# CONFIG_SERIAL_8250_RT288X is not set +CONFIG_SERIAL_8250_LPSS=y +CONFIG_SERIAL_8250_MID=y + +# +# Non-8250 serial port support +# +# CONFIG_SERIAL_MAX3100 is not set +# CONFIG_SERIAL_MAX310X is not set +# CONFIG_SERIAL_UARTLITE is not set +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_JSM is not set +# CONFIG_SERIAL_SCCNXP is not set +# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_IFX6X60 is not set +# CONFIG_SERIAL_ARC is not set +# CONFIG_SERIAL_RP2 is not set +# CONFIG_SERIAL_FSL_LPUART is not set +# CONFIG_SERIAL_FSL_LINFLEXUART is not set +# end of Serial drivers + +CONFIG_SERIAL_MCTRL_GPIO=y +# CONFIG_SERIAL_DEV_BUS is not set +# CONFIG_TTY_PRINTK is not set +# CONFIG_IPMI_HANDLER is not set +CONFIG_HW_RANDOM=y +# CONFIG_HW_RANDOM_TIMERIOMEM is not set +CONFIG_HW_RANDOM_INTEL=y +CONFIG_HW_RANDOM_AMD=y +CONFIG_HW_RANDOM_VIA=y +CONFIG_NVRAM=y +# CONFIG_APPLICOM is not set +# CONFIG_MWAVE is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_HPET is not set +# CONFIG_HANGCHECK_TIMER is not set +# CONFIG_TCG_TPM is not set +# CONFIG_TELCLOCK is not set +CONFIG_DEVPORT=y +# CONFIG_XILLYBUS is not set +# end of Character devices + +# CONFIG_RANDOM_TRUST_CPU is not set +# CONFIG_RANDOM_TRUST_BOOTLOADER is not set + +# +# I2C support +# +CONFIG_I2C=y +CONFIG_ACPI_I2C_OPREGION=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +CONFIG_I2C_CHARDEV=y +CONFIG_I2C_MUX=y + +# +# Multiplexer I2C Chip support +# +# CONFIG_I2C_MUX_GPIO is not set +# CONFIG_I2C_MUX_LTC4306 is not set +# CONFIG_I2C_MUX_PCA9541 is not set +CONFIG_I2C_MUX_PCA954x=y +CONFIG_I2C_MUX_REG=y +# CONFIG_I2C_MUX_MLXCPLD is not set +# end of Multiplexer I2C Chip support + +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_SMBUS=y +CONFIG_I2C_ALGOBIT=y + +# +# I2C Hardware Bus support +# + +# +# PC SMBus host controller drivers +# +# CONFIG_I2C_ALI1535 is not set +# CONFIG_I2C_ALI1563 is not set +# CONFIG_I2C_ALI15X3 is not set +# CONFIG_I2C_AMD756 is not set +# CONFIG_I2C_AMD8111 is not set +# CONFIG_I2C_AMD_MP2 is not set +CONFIG_I2C_I801=y +CONFIG_I2C_ISCH=y +CONFIG_I2C_ISMT=y +# CONFIG_I2C_PIIX4 is not set +# CONFIG_I2C_NFORCE2 is not set +# CONFIG_I2C_NVIDIA_GPU is not set +# CONFIG_I2C_SIS5595 is not set +# CONFIG_I2C_SIS630 is not set +# CONFIG_I2C_SIS96X is not set +# CONFIG_I2C_VIA is not set +# CONFIG_I2C_VIAPRO is not set + +# +# ACPI drivers +# +# CONFIG_I2C_SCMI is not set + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +# CONFIG_I2C_CBUS_GPIO is not set +# CONFIG_I2C_DESIGNWARE_PLATFORM is not set +# CONFIG_I2C_DESIGNWARE_PCI is not set +# CONFIG_I2C_EMEV2 is not set +# CONFIG_I2C_GPIO is not set +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_PCA_PLATFORM is not set +# CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_XILINX is not set + +# +# External I2C/SMBus adapter drivers +# +# CONFIG_I2C_DIOLAN_U2C is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_ROBOTFUZZ_OSIF is not set +# CONFIG_I2C_TAOS_EVM is not set +# CONFIG_I2C_TINY_USB is not set + +# +# Other I2C/SMBus bus drivers +# +# CONFIG_I2C_MLXCPLD is not set +# end of I2C Hardware Bus support + +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_SLAVE is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +# end of I2C support + +# CONFIG_I3C is not set +CONFIG_SPI=y +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y +CONFIG_SPI_MEM=y + +# +# SPI Master Controller Drivers +# +# CONFIG_SPI_ALTERA is not set +# CONFIG_SPI_AXI_SPI_ENGINE is not set +# CONFIG_SPI_BITBANG is not set +# CONFIG_SPI_CADENCE is not set +# CONFIG_SPI_DESIGNWARE is not set +# CONFIG_SPI_NXP_FLEXSPI is not set +# CONFIG_SPI_GPIO is not set +# CONFIG_SPI_OC_TINY is not set +# CONFIG_SPI_PXA2XX is not set +# CONFIG_SPI_ROCKCHIP is not set +# CONFIG_SPI_SC18IS602 is not set +# CONFIG_SPI_SIFIVE is not set +# CONFIG_SPI_MXIC is not set +# CONFIG_SPI_XCOMM is not set +# CONFIG_SPI_XILINX is not set +# CONFIG_SPI_ZYNQMP_GQSPI is not set + +# +# SPI Protocol Masters +# +# CONFIG_SPI_SPIDEV is not set +# CONFIG_SPI_LOOPBACK_TEST is not set +# CONFIG_SPI_TLE62X0 is not set +# CONFIG_SPI_SLAVE is not set +CONFIG_SPI_DYNAMIC=y +# CONFIG_SPMI is not set +# CONFIG_HSI is not set +CONFIG_PPS=y +# CONFIG_PPS_DEBUG is not set + +# +# PPS clients support +# +# CONFIG_PPS_CLIENT_KTIMER is not set +# CONFIG_PPS_CLIENT_LDISC is not set +# CONFIG_PPS_CLIENT_GPIO is not set + +# +# PPS generators support +# + +# +# PTP clock support +# +CONFIG_PTP_1588_CLOCK=y +# CONFIG_DP83640_PHY is not set +# end of PTP clock support + +CONFIG_PINCTRL=y +CONFIG_PINMUX=y +CONFIG_PINCONF=y +CONFIG_GENERIC_PINCONF=y +# CONFIG_DEBUG_PINCTRL is not set +# CONFIG_PINCTRL_AMD is not set +# CONFIG_PINCTRL_MCP23S08 is not set +# CONFIG_PINCTRL_SX150X is not set +# CONFIG_PINCTRL_BAYTRAIL is not set +# CONFIG_PINCTRL_CHERRYVIEW is not set +CONFIG_PINCTRL_INTEL=y +# CONFIG_PINCTRL_BROXTON is not set +CONFIG_PINCTRL_CANNONLAKE=y +# CONFIG_PINCTRL_CEDARFORK is not set +# CONFIG_PINCTRL_DENVERTON is not set +# CONFIG_PINCTRL_GEMINILAKE is not set +# CONFIG_PINCTRL_ICELAKE is not set +# CONFIG_PINCTRL_LEWISBURG is not set +# CONFIG_PINCTRL_SUNRISEPOINT is not set +CONFIG_GPIOLIB=y +CONFIG_GPIOLIB_FASTPATH_LIMIT=512 +CONFIG_GPIO_ACPI=y +CONFIG_GPIOLIB_IRQCHIP=y +# CONFIG_DEBUG_GPIO is not set +CONFIG_GPIO_SYSFS=y + +# +# Memory mapped GPIO drivers +# +# CONFIG_GPIO_AMDPT is not set +# CONFIG_GPIO_DWAPB is not set +# CONFIG_GPIO_EXAR is not set +# CONFIG_GPIO_GENERIC_PLATFORM is not set +CONFIG_GPIO_ICH=y +# CONFIG_GPIO_LYNXPOINT is not set +# CONFIG_GPIO_MB86S7X is not set +# CONFIG_GPIO_VX855 is not set +# CONFIG_GPIO_XILINX is not set +# CONFIG_GPIO_AMD_FCH is not set +# end of Memory mapped GPIO drivers + +# +# Port-mapped I/O GPIO drivers +# +# CONFIG_GPIO_F7188X is not set +# CONFIG_GPIO_IT87 is not set +# CONFIG_GPIO_SCH is not set +# CONFIG_GPIO_SCH311X is not set +# CONFIG_GPIO_WINBOND is not set +# CONFIG_GPIO_WS16C48 is not set +# end of Port-mapped I/O GPIO drivers + +# +# I2C GPIO expanders +# +# CONFIG_GPIO_ADP5588 is not set +# CONFIG_GPIO_MAX7300 is not set +# CONFIG_GPIO_MAX732X is not set +CONFIG_GPIO_PCA953X=y +# CONFIG_GPIO_PCA953X_IRQ is not set +# CONFIG_GPIO_PCF857X is not set +# CONFIG_GPIO_TPIC2810 is not set +# end of I2C GPIO expanders + +# +# MFD GPIO expanders +# +# end of MFD GPIO expanders + +# +# PCI GPIO expanders +# +# CONFIG_GPIO_AMD8111 is not set +# CONFIG_GPIO_BT8XX is not set +# CONFIG_GPIO_ML_IOH is not set +# CONFIG_GPIO_PCI_IDIO_16 is not set +# CONFIG_GPIO_PCIE_IDIO_24 is not set +# CONFIG_GPIO_RDC321X is not set +# end of PCI GPIO expanders + +# +# SPI GPIO expanders +# +# CONFIG_GPIO_MAX3191X is not set +# CONFIG_GPIO_MAX7301 is not set +# CONFIG_GPIO_MC33880 is not set +# CONFIG_GPIO_PISOSR is not set +# CONFIG_GPIO_XRA1403 is not set +# end of SPI GPIO expanders + +# +# USB GPIO expanders +# +# end of USB GPIO expanders + +# CONFIG_GPIO_MOCKUP is not set +# CONFIG_W1 is not set +# CONFIG_POWER_AVS is not set +# CONFIG_POWER_RESET is not set +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +CONFIG_POWER_SUPPLY_HWMON=y +# CONFIG_PDA_POWER is not set +# CONFIG_TEST_POWER is not set +# CONFIG_CHARGER_ADP5061 is not set +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2781 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_SBS is not set +# CONFIG_CHARGER_SBS is not set +# CONFIG_MANAGER_SBS is not set +# CONFIG_BATTERY_BQ27XXX is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +# CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_LP8727 is not set +# CONFIG_CHARGER_GPIO is not set +# CONFIG_CHARGER_LT3651 is not set +# CONFIG_CHARGER_BQ2415X is not set +# CONFIG_CHARGER_BQ24257 is not set +# CONFIG_CHARGER_BQ24735 is not set +# CONFIG_CHARGER_BQ25890 is not set +# CONFIG_CHARGER_SMB347 is not set +# CONFIG_BATTERY_GAUGE_LTC2941 is not set +# CONFIG_CHARGER_RT9455 is not set +CONFIG_HWMON=y +CONFIG_HWMON_VID=y +# CONFIG_HWMON_DEBUG_CHIP is not set + +# +# Native drivers +# +# CONFIG_SENSORS_ABITUGURU is not set +# CONFIG_SENSORS_ABITUGURU3 is not set +# CONFIG_SENSORS_AD7314 is not set +# CONFIG_SENSORS_AD7414 is not set +# CONFIG_SENSORS_AD7418 is not set +# CONFIG_SENSORS_ADM1021 is not set +# CONFIG_SENSORS_ADM1025 is not set +# CONFIG_SENSORS_ADM1026 is not set +# CONFIG_SENSORS_ADM1029 is not set +# CONFIG_SENSORS_ADM1031 is not set +# CONFIG_SENSORS_ADM9240 is not set +# CONFIG_SENSORS_ADT7310 is not set +# CONFIG_SENSORS_ADT7410 is not set +# CONFIG_SENSORS_ADT7411 is not set +# CONFIG_SENSORS_ADT7462 is not set +# CONFIG_SENSORS_ADT7470 is not set +# CONFIG_SENSORS_ADT7475 is not set +# CONFIG_SENSORS_AS370 is not set +# CONFIG_SENSORS_ASC7621 is not set +# CONFIG_SENSORS_K8TEMP is not set +# CONFIG_SENSORS_K10TEMP is not set +# CONFIG_SENSORS_FAM15H_POWER is not set +# CONFIG_SENSORS_APPLESMC is not set +# CONFIG_SENSORS_ASB100 is not set +# CONFIG_SENSORS_ASPEED is not set +# CONFIG_SENSORS_ATXP1 is not set +# CONFIG_SENSORS_DS620 is not set +# CONFIG_SENSORS_DS1621 is not set +# CONFIG_SENSORS_DELL_SMM is not set +# CONFIG_SENSORS_I5K_AMB is not set +# CONFIG_SENSORS_F71805F is not set +# CONFIG_SENSORS_F71882FG is not set +# CONFIG_SENSORS_F75375S is not set +# CONFIG_SENSORS_FSCHMD is not set +# CONFIG_SENSORS_GL518SM is not set +# CONFIG_SENSORS_GL520SM is not set +# CONFIG_SENSORS_G760A is not set +# CONFIG_SENSORS_G762 is not set +# CONFIG_SENSORS_HIH6130 is not set +# CONFIG_SENSORS_I5500 is not set +CONFIG_SENSORS_CORETEMP=y +# CONFIG_SENSORS_IT87 is not set +CONFIG_SENSORS_JC42=y +# CONFIG_SENSORS_POWR1220 is not set +# CONFIG_SENSORS_LINEAGE is not set +# CONFIG_SENSORS_LTC2945 is not set +# CONFIG_SENSORS_LTC2990 is not set +# CONFIG_SENSORS_LTC4151 is not set +# CONFIG_SENSORS_LTC4215 is not set +# CONFIG_SENSORS_LTC4222 is not set +# CONFIG_SENSORS_LTC4245 is not set +# CONFIG_SENSORS_LTC4260 is not set +# CONFIG_SENSORS_LTC4261 is not set +# CONFIG_SENSORS_MAX1111 is not set +# CONFIG_SENSORS_MAX16065 is not set +# CONFIG_SENSORS_MAX1619 is not set +# CONFIG_SENSORS_MAX1668 is not set +# CONFIG_SENSORS_MAX197 is not set +# CONFIG_SENSORS_MAX31722 is not set +# CONFIG_SENSORS_MAX6621 is not set +# CONFIG_SENSORS_MAX6639 is not set +# CONFIG_SENSORS_MAX6642 is not set +CONFIG_SENSORS_MAX6650=y +# CONFIG_SENSORS_MAX6697 is not set +# CONFIG_SENSORS_MAX31790 is not set +# CONFIG_SENSORS_MCP3021 is not set +# CONFIG_SENSORS_MLXREG_FAN is not set +# CONFIG_SENSORS_TC654 is not set +# CONFIG_SENSORS_ADCXX is not set +# CONFIG_SENSORS_LM63 is not set +# CONFIG_SENSORS_LM70 is not set +# CONFIG_SENSORS_LM73 is not set +CONFIG_SENSORS_LM75=y +# CONFIG_SENSORS_LM77 is not set +# CONFIG_SENSORS_LM78 is not set +# CONFIG_SENSORS_LM80 is not set +# CONFIG_SENSORS_LM83 is not set +CONFIG_SENSORS_LM85=y +# CONFIG_SENSORS_LM87 is not set +CONFIG_SENSORS_LM90=y +# CONFIG_SENSORS_LM92 is not set +# CONFIG_SENSORS_LM93 is not set +# CONFIG_SENSORS_LM95234 is not set +# CONFIG_SENSORS_LM95241 is not set +# CONFIG_SENSORS_LM95245 is not set +# CONFIG_SENSORS_PC87360 is not set +# CONFIG_SENSORS_PC87427 is not set +# CONFIG_SENSORS_NTC_THERMISTOR is not set +# CONFIG_SENSORS_NCT6683 is not set +# CONFIG_SENSORS_NCT6775 is not set +# CONFIG_SENSORS_NCT7802 is not set +# CONFIG_SENSORS_NCT7904 is not set +# CONFIG_SENSORS_NPCM7XX is not set +# CONFIG_SENSORS_PCF8591 is not set +# CONFIG_PMBUS is not set +# CONFIG_SENSORS_SHT15 is not set +# CONFIG_SENSORS_SHT21 is not set +# CONFIG_SENSORS_SHT3x is not set +# CONFIG_SENSORS_SHTC1 is not set +# CONFIG_SENSORS_SIS5595 is not set +# CONFIG_SENSORS_DME1737 is not set +# CONFIG_SENSORS_EMC1403 is not set +# CONFIG_SENSORS_EMC2103 is not set +# CONFIG_SENSORS_EMC6W201 is not set +# CONFIG_SENSORS_SMSC47M1 is not set +# CONFIG_SENSORS_SMSC47M192 is not set +# CONFIG_SENSORS_SMSC47B397 is not set +# CONFIG_SENSORS_STTS751 is not set +# CONFIG_SENSORS_SMM665 is not set +# CONFIG_SENSORS_ADC128D818 is not set +# CONFIG_SENSORS_ADS7828 is not set +# CONFIG_SENSORS_ADS7871 is not set +# CONFIG_SENSORS_AMC6821 is not set +# CONFIG_SENSORS_INA209 is not set +# CONFIG_SENSORS_INA2XX is not set +# CONFIG_SENSORS_INA3221 is not set +# CONFIG_SENSORS_TC74 is not set +# CONFIG_SENSORS_THMC50 is not set +CONFIG_SENSORS_TMP102=y +# CONFIG_SENSORS_TMP103 is not set +# CONFIG_SENSORS_TMP108 is not set +# CONFIG_SENSORS_TMP401 is not set +# CONFIG_SENSORS_TMP421 is not set +# CONFIG_SENSORS_VIA_CPUTEMP is not set +# CONFIG_SENSORS_VIA686A is not set +# CONFIG_SENSORS_VT1211 is not set +# CONFIG_SENSORS_VT8231 is not set +# CONFIG_SENSORS_W83773G is not set +# CONFIG_SENSORS_W83781D is not set +# CONFIG_SENSORS_W83791D is not set +# CONFIG_SENSORS_W83792D is not set +# CONFIG_SENSORS_W83793 is not set +# CONFIG_SENSORS_W83795 is not set +# CONFIG_SENSORS_W83L785TS is not set +# CONFIG_SENSORS_W83L786NG is not set +# CONFIG_SENSORS_W83627HF is not set +# CONFIG_SENSORS_W83627EHF is not set +# CONFIG_SENSORS_XGENE is not set + +# +# ACPI drivers +# +# CONFIG_SENSORS_ACPI_POWER is not set +# CONFIG_SENSORS_ATK0110 is not set +CONFIG_THERMAL=y +# CONFIG_THERMAL_STATISTICS is not set +CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 +CONFIG_THERMAL_HWMON=y +# CONFIG_THERMAL_WRITABLE_TRIPS is not set +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set +# CONFIG_THERMAL_GOV_FAIR_SHARE is not set +CONFIG_THERMAL_GOV_STEP_WISE=y +# CONFIG_THERMAL_GOV_BANG_BANG is not set +# CONFIG_THERMAL_GOV_USER_SPACE is not set +# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set +# CONFIG_THERMAL_EMULATION is not set + +# +# Intel thermal drivers +# +# CONFIG_INTEL_POWERCLAMP is not set +# CONFIG_INTEL_SOC_DTS_THERMAL is not set + +# +# ACPI INT340X thermal drivers +# +# CONFIG_INT340X_THERMAL is not set +# end of ACPI INT340X thermal drivers + +CONFIG_INTEL_PCH_THERMAL=y +# end of Intel thermal drivers + +# CONFIG_WATCHDOG is not set +CONFIG_SSB_POSSIBLE=y +# CONFIG_SSB is not set +CONFIG_BCMA_POSSIBLE=y +# CONFIG_BCMA is not set + +# +# Multifunction device drivers +# +CONFIG_MFD_CORE=y +# CONFIG_MFD_AS3711 is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_AAT2870_CORE is not set +# CONFIG_MFD_BCM590XX is not set +# CONFIG_MFD_BD9571MWV is not set +# CONFIG_MFD_AXP20X_I2C is not set +# CONFIG_MFD_MADERA is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_MFD_DA9052_SPI is not set +# CONFIG_MFD_DA9052_I2C is not set +# CONFIG_MFD_DA9055 is not set +# CONFIG_MFD_DA9062 is not set +# CONFIG_MFD_DA9063 is not set +# CONFIG_MFD_DA9150 is not set +# CONFIG_MFD_DLN2 is not set +# CONFIG_MFD_MC13XXX_SPI is not set +# CONFIG_MFD_MC13XXX_I2C is not set +# CONFIG_HTC_PASIC3 is not set +# CONFIG_HTC_I2CPLD is not set +# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set +CONFIG_LPC_ICH=y +CONFIG_LPC_SCH=y +# CONFIG_INTEL_SOC_PMIC_CHTDC_TI is not set +# CONFIG_MFD_INTEL_LPSS_ACPI is not set +# CONFIG_MFD_INTEL_LPSS_PCI is not set +# CONFIG_MFD_JANZ_CMODIO is not set +# CONFIG_MFD_KEMPLD is not set +# CONFIG_MFD_88PM800 is not set +# CONFIG_MFD_88PM805 is not set +# CONFIG_MFD_88PM860X is not set +# CONFIG_MFD_MAX14577 is not set +# CONFIG_MFD_MAX77693 is not set +# CONFIG_MFD_MAX77843 is not set +# CONFIG_MFD_MAX8907 is not set +# CONFIG_MFD_MAX8925 is not set +# CONFIG_MFD_MAX8997 is not set +# CONFIG_MFD_MAX8998 is not set +# CONFIG_MFD_MT6397 is not set +# CONFIG_MFD_MENF21BMC is not set +# CONFIG_EZX_PCAP is not set +# CONFIG_MFD_VIPERBOARD is not set +# CONFIG_MFD_RETU is not set +# CONFIG_MFD_PCF50633 is not set +# CONFIG_MFD_RDC321X is not set +# CONFIG_MFD_RT5033 is not set +# CONFIG_MFD_RC5T583 is not set +# CONFIG_MFD_SEC_CORE is not set +# CONFIG_MFD_SI476X_CORE is not set +# CONFIG_MFD_SM501 is not set +# CONFIG_MFD_SKY81452 is not set +# CONFIG_MFD_SMSC is not set +# CONFIG_ABX500_CORE is not set +# CONFIG_MFD_SYSCON is not set +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MFD_LP3943 is not set +# CONFIG_MFD_LP8788 is not set +# CONFIG_MFD_TI_LMU is not set +# CONFIG_MFD_PALMAS is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS65010 is not set +# CONFIG_TPS6507X is not set +# CONFIG_MFD_TPS65086 is not set +# CONFIG_MFD_TPS65090 is not set +# CONFIG_MFD_TI_LP873X is not set +# CONFIG_MFD_TPS6586X is not set +# CONFIG_MFD_TPS65910 is not set +# CONFIG_MFD_TPS65912_I2C is not set +# CONFIG_MFD_TPS65912_SPI is not set +# CONFIG_MFD_TPS80031 is not set +# CONFIG_TWL4030_CORE is not set +# CONFIG_TWL6040_CORE is not set +# CONFIG_MFD_WL1273_CORE is not set +# CONFIG_MFD_LM3533 is not set +# CONFIG_MFD_TQMX86 is not set +# CONFIG_MFD_VX855 is not set +# CONFIG_MFD_ARIZONA_I2C is not set +# CONFIG_MFD_ARIZONA_SPI is not set +# CONFIG_MFD_WM8400 is not set +# CONFIG_MFD_WM831X_I2C is not set +# CONFIG_MFD_WM831X_SPI is not set +# CONFIG_MFD_WM8350_I2C is not set +# CONFIG_MFD_WM8994 is not set +# end of Multifunction device drivers + +# CONFIG_REGULATOR is not set +# CONFIG_RC_CORE is not set +# CONFIG_MEDIA_SUPPORT is not set + +# +# Graphics support +# +# CONFIG_AGP is not set +# CONFIG_VGA_ARB is not set +# CONFIG_VGA_SWITCHEROO is not set +# CONFIG_DRM is not set +# CONFIG_DRM_DP_CEC is not set + +# +# ARM devices +# +# end of ARM devices + +# +# ACP (Audio CoProcessor) Configuration +# +# end of ACP (Audio CoProcessor) Configuration + +# +# Frame buffer Devices +# +# CONFIG_FB is not set +# end of Frame buffer Devices + +# +# Backlight & LCD device support +# +# CONFIG_LCD_CLASS_DEVICE is not set +# CONFIG_BACKLIGHT_CLASS_DEVICE is not set +# end of Backlight & LCD device support + +# +# Console display driver support +# +CONFIG_VGA_CONSOLE=y +CONFIG_DUMMY_CONSOLE=y +CONFIG_DUMMY_CONSOLE_COLUMNS=80 +CONFIG_DUMMY_CONSOLE_ROWS=25 +# end of Console display driver support +# end of Graphics support + +# CONFIG_SOUND is not set + +# +# HID support +# +# CONFIG_HID is not set + +# +# USB HID support +# +# CONFIG_USB_HID is not set +# CONFIG_HID_PID is not set + +# +# USB HID Boot Protocol drivers +# +# CONFIG_USB_KBD is not set +# CONFIG_USB_MOUSE is not set +# end of USB HID Boot Protocol drivers +# end of USB HID support + +# +# I2C HID support +# +# CONFIG_I2C_HID is not set +# end of I2C HID support + +# +# Intel ISH HID support +# +# CONFIG_INTEL_ISH_HID is not set +# end of Intel ISH HID support +# end of HID support + +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +# CONFIG_USB_ULPI_BUS is not set +# CONFIG_USB_CONN_GPIO is not set +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB=y +CONFIG_USB_PCI=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y + +# +# Miscellaneous USB options +# +CONFIG_USB_DEFAULT_PERSIST=y +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +CONFIG_USB_AUTOSUSPEND_DELAY=2 +# CONFIG_USB_MON is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_C67X00_HCD is not set +CONFIG_USB_XHCI_HCD=y +# CONFIG_USB_XHCI_DBGCAP is not set +CONFIG_USB_XHCI_PCI=y +# CONFIG_USB_XHCI_PLATFORM is not set +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TT_NEWSCHED=y +CONFIG_USB_EHCI_PCI=y +# CONFIG_USB_EHCI_FSL is not set +# CONFIG_USB_EHCI_HCD_PLATFORM is not set +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set +# CONFIG_USB_FOTG210_HCD is not set +# CONFIG_USB_MAX3421_HCD is not set +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_PCI=y +# CONFIG_USB_OHCI_HCD_PLATFORM is not set +CONFIG_USB_UHCI_HCD=y +# CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set +# CONFIG_USB_HCD_TEST_MODE is not set + +# +# USB Device Class drivers +# +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set +# CONFIG_USB_WDM is not set +# CONFIG_USB_TMC is not set + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may +# + +# +# also be needed; see USB_STORAGE Help for more info +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_REALTEK is not set +# CONFIG_USB_STORAGE_DATAFAB is not set +# CONFIG_USB_STORAGE_FREECOM is not set +# CONFIG_USB_STORAGE_ISD200 is not set +# CONFIG_USB_STORAGE_USBAT is not set +# CONFIG_USB_STORAGE_SDDR09 is not set +# CONFIG_USB_STORAGE_SDDR55 is not set +# CONFIG_USB_STORAGE_JUMPSHOT is not set +# CONFIG_USB_STORAGE_ALAUDA is not set +# CONFIG_USB_STORAGE_ONETOUCH is not set +# CONFIG_USB_STORAGE_KARMA is not set +# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set +# CONFIG_USB_STORAGE_ENE_UB6250 is not set +# CONFIG_USB_UAS is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set +# CONFIG_USBIP_CORE is not set +# CONFIG_USB_CDNS3 is not set +# CONFIG_USB_MUSB_HDRC is not set +# CONFIG_USB_DWC3 is not set +# CONFIG_USB_DWC2 is not set +# CONFIG_USB_CHIPIDEA is not set +# CONFIG_USB_ISP1760 is not set + +# +# USB port drivers +# +# CONFIG_USB_SERIAL is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_SEVSEG is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_SISUSBVGA is not set +# CONFIG_USB_LD is not set +# CONFIG_USB_TRANCEVIBRATOR is not set +# CONFIG_USB_IOWARRIOR is not set +# CONFIG_USB_TEST is not set +# CONFIG_USB_EHSET_TEST_FIXTURE is not set +# CONFIG_USB_ISIGHTFW is not set +# CONFIG_USB_YUREX is not set +# CONFIG_USB_EZUSB_FX2 is not set +# CONFIG_USB_HUB_USB251XB is not set +# CONFIG_USB_HSIC_USB3503 is not set +# CONFIG_USB_HSIC_USB4604 is not set +# CONFIG_USB_LINK_LAYER_TEST is not set +# CONFIG_USB_CHAOSKEY is not set + +# +# USB Physical Layer drivers +# +# CONFIG_NOP_USB_XCEIV is not set +# CONFIG_USB_GPIO_VBUS is not set +# CONFIG_USB_ISP1301 is not set +# end of USB Physical Layer drivers + +# CONFIG_USB_GADGET is not set +# CONFIG_TYPEC is not set +# CONFIG_USB_ROLE_SWITCH is not set +CONFIG_MMC=y +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_MINORS=8 +# CONFIG_SDIO_UART is not set +# CONFIG_MMC_TEST is not set + +# +# MMC/SD/SDIO Host Controller Drivers +# +# CONFIG_MMC_DEBUG is not set +CONFIG_MMC_SDHCI=y +# CONFIG_MMC_SDHCI_PCI is not set +# CONFIG_MMC_SDHCI_ACPI is not set +CONFIG_MMC_SDHCI_PLTFM=y +# CONFIG_MMC_SDHCI_F_SDH30 is not set +# CONFIG_MMC_WBSD is not set +# CONFIG_MMC_TIFM_SD is not set +# CONFIG_MMC_SPI is not set +# CONFIG_MMC_CB710 is not set +# CONFIG_MMC_VIA_SDMMC is not set +# CONFIG_MMC_VUB300 is not set +# CONFIG_MMC_USHC is not set +# CONFIG_MMC_USDHI6ROL0 is not set +# CONFIG_MMC_CQHCI is not set +# CONFIG_MMC_TOSHIBA_PCI is not set +# CONFIG_MMC_MTK is not set +# CONFIG_MMC_SDHCI_XENON is not set +# CONFIG_MEMSTICK is not set +# CONFIG_NEW_LEDS is not set +# CONFIG_ACCESSIBILITY is not set +# CONFIG_INFINIBAND is not set +CONFIG_EDAC_ATOMIC_SCRUB=y +CONFIG_EDAC_SUPPORT=y +# CONFIG_EDAC is not set +CONFIG_RTC_LIB=y +CONFIG_RTC_MC146818_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +CONFIG_RTC_SYSTOHC=y +CONFIG_RTC_SYSTOHC_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set +CONFIG_RTC_NVMEM=y + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +# CONFIG_RTC_DRV_ABB5ZES3 is not set +# CONFIG_RTC_DRV_ABEOZ9 is not set +# CONFIG_RTC_DRV_ABX80X is not set +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1374 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_MAX6900 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_ISL12022 is not set +# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_PCF8523 is not set +# CONFIG_RTC_DRV_PCF85063 is not set +# CONFIG_RTC_DRV_PCF85363 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF8583 is not set +# CONFIG_RTC_DRV_M41T80 is not set +# CONFIG_RTC_DRV_BQ32K is not set +# CONFIG_RTC_DRV_S35390A is not set +# CONFIG_RTC_DRV_FM3130 is not set +# CONFIG_RTC_DRV_RX8010 is not set +# CONFIG_RTC_DRV_RX8581 is not set +# CONFIG_RTC_DRV_RX8025 is not set +# CONFIG_RTC_DRV_EM3027 is not set +# CONFIG_RTC_DRV_RV3028 is not set +# CONFIG_RTC_DRV_RV8803 is not set +# CONFIG_RTC_DRV_SD3078 is not set + +# +# SPI RTC drivers +# +# CONFIG_RTC_DRV_M41T93 is not set +# CONFIG_RTC_DRV_M41T94 is not set +# CONFIG_RTC_DRV_DS1302 is not set +# CONFIG_RTC_DRV_DS1305 is not set +# CONFIG_RTC_DRV_DS1343 is not set +# CONFIG_RTC_DRV_DS1347 is not set +# CONFIG_RTC_DRV_DS1390 is not set +# CONFIG_RTC_DRV_MAX6916 is not set +# CONFIG_RTC_DRV_R9701 is not set +# CONFIG_RTC_DRV_RX4581 is not set +# CONFIG_RTC_DRV_RX6110 is not set +# CONFIG_RTC_DRV_RS5C348 is not set +# CONFIG_RTC_DRV_MAX6902 is not set +# CONFIG_RTC_DRV_PCF2123 is not set +# CONFIG_RTC_DRV_MCP795 is not set +CONFIG_RTC_I2C_AND_SPI=y + +# +# SPI and I2C RTC drivers +# +# CONFIG_RTC_DRV_DS3232 is not set +# CONFIG_RTC_DRV_PCF2127 is not set +# CONFIG_RTC_DRV_RV3029C2 is not set + +# +# Platform RTC drivers +# +CONFIG_RTC_DRV_CMOS=y +# CONFIG_RTC_DRV_DS1286 is not set +# CONFIG_RTC_DRV_DS1511 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1685_FAMILY is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_DS2404 is not set +# CONFIG_RTC_DRV_STK17TA8 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_M48T35 is not set +# CONFIG_RTC_DRV_M48T59 is not set +# CONFIG_RTC_DRV_MSM6242 is not set +# CONFIG_RTC_DRV_BQ4802 is not set +# CONFIG_RTC_DRV_RP5C01 is not set +# CONFIG_RTC_DRV_V3020 is not set + +# +# on-CPU RTC drivers +# +# CONFIG_RTC_DRV_FTRTC010 is not set + +# +# HID Sensor RTC drivers +# +# CONFIG_DMADEVICES is not set + +# +# DMABUF options +# +# CONFIG_SYNC_FILE is not set +# end of DMABUF options + +# CONFIG_AUXDISPLAY is not set +# CONFIG_UIO is not set +# CONFIG_VIRT_DRIVERS is not set +CONFIG_VIRTIO_MENU=y +# CONFIG_VIRTIO_PCI is not set +# CONFIG_VIRTIO_MMIO is not set + +# +# Microsoft Hyper-V guest support +# +# CONFIG_HYPERV is not set +# end of Microsoft Hyper-V guest support + +# CONFIG_GREYBUS is not set +# CONFIG_STAGING is not set +CONFIG_X86_PLATFORM_DEVICES=y +# CONFIG_ACER_WIRELESS is not set +# CONFIG_ACERHDF is not set +# CONFIG_DCDBAS is not set +# CONFIG_DELL_SMBIOS is not set +# CONFIG_DELL_SMO8800 is not set +# CONFIG_DELL_RBU is not set +# CONFIG_FUJITSU_TABLET is not set +# CONFIG_GPD_POCKET_FAN is not set +# CONFIG_HP_ACCEL is not set +# CONFIG_HP_WIRELESS is not set +# CONFIG_SENSORS_HDAPS is not set +# CONFIG_INTEL_MENLOW is not set +# CONFIG_ASUS_WIRELESS is not set +# CONFIG_ACPI_WMI is not set +# CONFIG_TOPSTAR_LAPTOP is not set +# CONFIG_TOSHIBA_BT_RFKILL is not set +# CONFIG_TOSHIBA_HAPS is not set +# CONFIG_ACPI_CMPC is not set +# CONFIG_INTEL_INT0002_VGPIO is not set +# CONFIG_INTEL_HID_EVENT is not set +# CONFIG_INTEL_VBTN is not set +# CONFIG_INTEL_IPS is not set +CONFIG_INTEL_PMC_CORE=y +# CONFIG_IBM_RTL is not set +# CONFIG_SAMSUNG_Q10 is not set +# CONFIG_INTEL_RST is not set +# CONFIG_INTEL_SMARTCONNECT is not set +# CONFIG_INTEL_PMC_IPC is not set +# CONFIG_SURFACE_PRO3_BUTTON is not set +# CONFIG_INTEL_PUNIT_IPC is not set +# CONFIG_MLX_PLATFORM is not set +# CONFIG_INTEL_TURBO_MAX_3 is not set +# CONFIG_I2C_MULTI_INSTANTIATE is not set + +# +# Intel Speed Select Technology interface support +# +# CONFIG_INTEL_SPEED_SELECT_INTERFACE is not set +# end of Intel Speed Select Technology interface support + +CONFIG_PMC_ATOM=y +# CONFIG_MFD_CROS_EC is not set +# CONFIG_CHROME_PLATFORMS is not set +# CONFIG_MELLANOX_PLATFORM is not set +CONFIG_CLKDEV_LOOKUP=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_COMMON_CLK=y + +# +# Common Clock Framework +# +# CONFIG_COMMON_CLK_MAX9485 is not set +# CONFIG_COMMON_CLK_SI5341 is not set +# CONFIG_COMMON_CLK_SI5351 is not set +# CONFIG_COMMON_CLK_SI544 is not set +# CONFIG_COMMON_CLK_CDCE706 is not set +# CONFIG_COMMON_CLK_CS2000_CP is not set +# end of Common Clock Framework + +# CONFIG_HWSPINLOCK is not set + +# +# Clock Source drivers +# +CONFIG_CLKEVT_I8253=y +CONFIG_I8253_LOCK=y +CONFIG_CLKBLD_I8253=y +# end of Clock Source drivers + +CONFIG_MAILBOX=y +CONFIG_PCC=y +# CONFIG_ALTERA_MBOX is not set +# CONFIG_IOMMU_SUPPORT is not set + +# +# Remoteproc drivers +# +# CONFIG_REMOTEPROC is not set +# end of Remoteproc drivers + +# +# Rpmsg drivers +# +# CONFIG_RPMSG_QCOM_GLINK_RPM is not set +# CONFIG_RPMSG_VIRTIO is not set +# end of Rpmsg drivers + +# CONFIG_SOUNDWIRE is not set + +# +# SOC (System On Chip) specific Drivers +# + +# +# Amlogic SoC drivers +# +# end of Amlogic SoC drivers + +# +# Aspeed SoC drivers +# +# end of Aspeed SoC drivers + +# +# Broadcom SoC drivers +# +# end of Broadcom SoC drivers + +# +# NXP/Freescale QorIQ SoC drivers +# +# end of NXP/Freescale QorIQ SoC drivers + +# +# i.MX SoC drivers +# +# end of i.MX SoC drivers + +# +# Qualcomm SoC drivers +# +# end of Qualcomm SoC drivers + +# CONFIG_SOC_TI is not set + +# +# Xilinx SoC drivers +# +# CONFIG_XILINX_VCU is not set +# end of Xilinx SoC drivers +# end of SOC (System On Chip) specific Drivers + +# CONFIG_PM_DEVFREQ is not set +# CONFIG_EXTCON is not set +# CONFIG_MEMORY is not set +# CONFIG_IIO is not set +# CONFIG_NTB is not set +# CONFIG_VME_BUS is not set +# CONFIG_PWM is not set + +# +# IRQ chip support +# +# end of IRQ chip support + +# CONFIG_IPACK_BUS is not set +# CONFIG_RESET_CONTROLLER is not set + +# +# PHY Subsystem +# +# CONFIG_GENERIC_PHY is not set +# CONFIG_BCM_KONA_USB2_PHY is not set +# CONFIG_PHY_PXA_28NM_HSIC is not set +# CONFIG_PHY_PXA_28NM_USB2 is not set +# end of PHY Subsystem + +# CONFIG_POWERCAP is not set +# CONFIG_MCB is not set + +# +# Performance monitor support +# +# end of Performance monitor support + +CONFIG_RAS=y +# CONFIG_THUNDERBOLT is not set + +# +# Android +# +# CONFIG_ANDROID is not set +# end of Android + +# CONFIG_LIBNVDIMM is not set +# CONFIG_DAX is not set +CONFIG_NVMEM=y +CONFIG_NVMEM_SYSFS=y + +# +# HW tracing support +# +# CONFIG_STM is not set +# CONFIG_INTEL_TH is not set +# end of HW tracing support + +# CONFIG_FPGA is not set +# CONFIG_UNISYS_VISORBUS is not set +# CONFIG_SIOX is not set +# CONFIG_SLIMBUS is not set +# CONFIG_INTERCONNECT is not set +# CONFIG_COUNTER is not set +# end of Device Drivers + +# +# File systems +# +CONFIG_DCACHE_WORD_ACCESS=y +# CONFIG_VALIDATE_FS_PARSER is not set +CONFIG_FS_IOMAP=y +CONFIG_EXT2_FS=y +CONFIG_EXT2_FS_XATTR=y +CONFIG_EXT2_FS_POSIX_ACL=y +CONFIG_EXT2_FS_SECURITY=y +CONFIG_EXT3_FS=y +CONFIG_EXT3_FS_POSIX_ACL=y +CONFIG_EXT3_FS_SECURITY=y +CONFIG_EXT4_FS=y +CONFIG_EXT4_FS_POSIX_ACL=y +CONFIG_EXT4_FS_SECURITY=y +# CONFIG_EXT4_DEBUG is not set +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=y +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +CONFIG_BTRFS_FS=y +# CONFIG_BTRFS_FS_POSIX_ACL is not set +# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set +# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set +# CONFIG_BTRFS_DEBUG is not set +# CONFIG_BTRFS_ASSERT is not set +# CONFIG_BTRFS_FS_REF_VERIFY is not set +# CONFIG_NILFS2_FS is not set +# CONFIG_F2FS_FS is not set +# CONFIG_FS_DAX is not set +CONFIG_FS_POSIX_ACL=y +# CONFIG_EXPORTFS_BLOCK_OPS is not set +CONFIG_FILE_LOCKING=y +CONFIG_MANDATORY_FILE_LOCKING=y +# CONFIG_FS_ENCRYPTION is not set +# CONFIG_FS_VERITY is not set +CONFIG_FSNOTIFY=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_FANOTIFY is not set +# CONFIG_QUOTA is not set +CONFIG_AUTOFS4_FS=y +CONFIG_AUTOFS_FS=y +# CONFIG_FUSE_FS is not set +# CONFIG_OVERLAY_FS is not set + +# +# Caches +# +CONFIG_FSCACHE=y +# CONFIG_FSCACHE_STATS is not set +# CONFIG_FSCACHE_HISTOGRAM is not set +# CONFIG_FSCACHE_DEBUG is not set +# CONFIG_FSCACHE_OBJECT_LIST is not set +# CONFIG_CACHEFILES is not set +# end of Caches + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=y +CONFIG_JOLIET=y +# CONFIG_ZISOFS is not set +# CONFIG_UDF_FS is not set +# end of CD-ROM/DVD Filesystems + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_FAT_DEFAULT_UTF8 is not set +# CONFIG_NTFS_FS is not set +# end of DOS/FAT/NT Filesystems + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_KCORE=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +# CONFIG_PROC_CHILDREN is not set +CONFIG_PROC_PID_ARCH_STATUS=y +CONFIG_KERNFS=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +# CONFIG_TMPFS_POSIX_ACL is not set +CONFIG_TMPFS_XATTR=y +# CONFIG_HUGETLBFS is not set +CONFIG_MEMFD_CREATE=y +CONFIG_ARCH_HAS_GIGANTIC_PAGE=y +# CONFIG_CONFIGFS_FS is not set +CONFIG_EFIVAR_FS=y +# end of Pseudo filesystems + +CONFIG_MISC_FILESYSTEMS=y +# CONFIG_ORANGEFS_FS is not set +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_ECRYPT_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +CONFIG_JFFS2_FS=y +CONFIG_JFFS2_FS_DEBUG=0 +CONFIG_JFFS2_FS_WRITEBUFFER=y +# CONFIG_JFFS2_FS_WBUF_VERIFY is not set +CONFIG_JFFS2_SUMMARY=y +# CONFIG_JFFS2_FS_XATTR is not set +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set +CONFIG_JFFS2_ZLIB=y +CONFIG_JFFS2_RTIME=y +CONFIG_UBIFS_FS=y +CONFIG_UBIFS_FS_ADVANCED_COMPR=y +CONFIG_UBIFS_FS_LZO=y +CONFIG_UBIFS_FS_ZLIB=y +CONFIG_UBIFS_FS_ZSTD=y +# CONFIG_UBIFS_ATIME_SUPPORT is not set +CONFIG_UBIFS_FS_XATTR=y +CONFIG_UBIFS_FS_SECURITY=y +# CONFIG_UBIFS_FS_AUTHENTICATION is not set +# CONFIG_CRAMFS is not set +CONFIG_SQUASHFS=y +CONFIG_SQUASHFS_FILE_CACHE=y +# CONFIG_SQUASHFS_FILE_DIRECT is not set +CONFIG_SQUASHFS_DECOMP_SINGLE=y +# CONFIG_SQUASHFS_DECOMP_MULTI is not set +# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set +# CONFIG_SQUASHFS_XATTR is not set +# CONFIG_SQUASHFS_ZLIB is not set +# CONFIG_SQUASHFS_LZ4 is not set +# CONFIG_SQUASHFS_LZO is not set +CONFIG_SQUASHFS_XZ=y +# CONFIG_SQUASHFS_ZSTD is not set +# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set +# CONFIG_SQUASHFS_EMBEDDED is not set +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 +# CONFIG_VXFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_OMFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_QNX6FS_FS is not set +# CONFIG_ROMFS_FS is not set +# CONFIG_PSTORE is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set +# CONFIG_EROFS_FS is not set +CONFIG_NETWORK_FILESYSTEMS=y +CONFIG_NFS_FS=y +CONFIG_NFS_V2=y +CONFIG_NFS_V3=y +# CONFIG_NFS_V3_ACL is not set +CONFIG_NFS_V4=y +# CONFIG_NFS_SWAP is not set +# CONFIG_NFS_V4_1 is not set +CONFIG_ROOT_NFS=y +# CONFIG_NFS_FSCACHE is not set +# CONFIG_NFS_USE_LEGACY_DNS is not set +CONFIG_NFS_USE_KERNEL_DNS=y +# CONFIG_NFSD is not set +CONFIG_GRACE_PERIOD=y +CONFIG_LOCKD=y +CONFIG_LOCKD_V4=y +CONFIG_NFS_COMMON=y +CONFIG_SUNRPC=y +CONFIG_SUNRPC_GSS=y +# CONFIG_SUNRPC_DEBUG is not set +# CONFIG_CEPH_FS is not set +# CONFIG_CIFS is not set +# CONFIG_CODA_FS is not set +# CONFIG_AFS_FS is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +# CONFIG_NLS_CODEPAGE_737 is not set +# CONFIG_NLS_CODEPAGE_775 is not set +# CONFIG_NLS_CODEPAGE_850 is not set +# CONFIG_NLS_CODEPAGE_852 is not set +# CONFIG_NLS_CODEPAGE_855 is not set +# CONFIG_NLS_CODEPAGE_857 is not set +# CONFIG_NLS_CODEPAGE_860 is not set +# CONFIG_NLS_CODEPAGE_861 is not set +# CONFIG_NLS_CODEPAGE_862 is not set +# CONFIG_NLS_CODEPAGE_863 is not set +# CONFIG_NLS_CODEPAGE_864 is not set +# CONFIG_NLS_CODEPAGE_865 is not set +# CONFIG_NLS_CODEPAGE_866 is not set +# CONFIG_NLS_CODEPAGE_869 is not set +# CONFIG_NLS_CODEPAGE_936 is not set +# CONFIG_NLS_CODEPAGE_950 is not set +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +# CONFIG_NLS_ISO8859_2 is not set +# CONFIG_NLS_ISO8859_3 is not set +# CONFIG_NLS_ISO8859_4 is not set +# CONFIG_NLS_ISO8859_5 is not set +# CONFIG_NLS_ISO8859_6 is not set +# CONFIG_NLS_ISO8859_7 is not set +# CONFIG_NLS_ISO8859_9 is not set +# CONFIG_NLS_ISO8859_13 is not set +# CONFIG_NLS_ISO8859_14 is not set +# CONFIG_NLS_ISO8859_15 is not set +# CONFIG_NLS_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +# CONFIG_NLS_MAC_ROMAN is not set +# CONFIG_NLS_MAC_CELTIC is not set +# CONFIG_NLS_MAC_CENTEURO is not set +# CONFIG_NLS_MAC_CROATIAN is not set +# CONFIG_NLS_MAC_CYRILLIC is not set +# CONFIG_NLS_MAC_GAELIC is not set +# CONFIG_NLS_MAC_GREEK is not set +# CONFIG_NLS_MAC_ICELAND is not set +# CONFIG_NLS_MAC_INUIT is not set +# CONFIG_NLS_MAC_ROMANIAN is not set +# CONFIG_NLS_MAC_TURKISH is not set +CONFIG_NLS_UTF8=y +# CONFIG_UNICODE is not set +# end of File systems + +# +# Security options +# +CONFIG_KEYS=y +CONFIG_KEYS_COMPAT=y +# CONFIG_KEYS_REQUEST_CACHE is not set +# CONFIG_PERSISTENT_KEYRINGS is not set +# CONFIG_BIG_KEYS is not set +# CONFIG_ENCRYPTED_KEYS is not set +# CONFIG_KEY_DH_OPERATIONS is not set +# CONFIG_SECURITY_DMESG_RESTRICT is not set +# CONFIG_SECURITY is not set +# CONFIG_SECURITYFS is not set +CONFIG_PAGE_TABLE_ISOLATION=y +CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y +# CONFIG_HARDENED_USERCOPY is not set +# CONFIG_FORTIFY_SOURCE is not set +# CONFIG_STATIC_USERMODEHELPER is not set +CONFIG_DEFAULT_SECURITY_DAC=y +CONFIG_LSM="lockdown,yama,loadpin,safesetid,integrity" + +# +# Kernel hardening options +# + +# +# Memory initialization +# +CONFIG_INIT_STACK_NONE=y +# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set +# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set +# end of Memory initialization +# end of Kernel hardening options +# end of Security options + +CONFIG_XOR_BLOCKS=y +CONFIG_ASYNC_CORE=y +CONFIG_ASYNC_MEMCPY=y +CONFIG_ASYNC_XOR=y +CONFIG_ASYNC_PQ=y +CONFIG_ASYNC_RAID6_RECOV=y +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_RNG_DEFAULT=y +CONFIG_CRYPTO_AKCIPHER2=y +CONFIG_CRYPTO_KPP2=y +CONFIG_CRYPTO_ACOMP2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +# CONFIG_CRYPTO_USER is not set +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +CONFIG_CRYPTO_NULL=y +CONFIG_CRYPTO_NULL2=y +# CONFIG_CRYPTO_PCRYPT is not set +# CONFIG_CRYPTO_CRYPTD is not set +CONFIG_CRYPTO_AUTHENC=y +# CONFIG_CRYPTO_TEST is not set + +# +# Public-key cryptography +# +# CONFIG_CRYPTO_RSA is not set +# CONFIG_CRYPTO_DH is not set +# CONFIG_CRYPTO_ECDH is not set +# CONFIG_CRYPTO_ECRDSA is not set + +# +# Authenticated Encryption with Associated Data +# +# CONFIG_CRYPTO_CCM is not set +# CONFIG_CRYPTO_GCM is not set +# CONFIG_CRYPTO_CHACHA20POLY1305 is not set +# CONFIG_CRYPTO_AEGIS128 is not set +# CONFIG_CRYPTO_AEGIS128_AESNI_SSE2 is not set +# CONFIG_CRYPTO_SEQIV is not set +CONFIG_CRYPTO_ECHAINIV=y + +# +# Block modes +# +CONFIG_CRYPTO_CBC=y +# CONFIG_CRYPTO_CFB is not set +# CONFIG_CRYPTO_CTR is not set +# CONFIG_CRYPTO_CTS is not set +CONFIG_CRYPTO_ECB=y +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_OFB is not set +CONFIG_CRYPTO_PCBC=y +# CONFIG_CRYPTO_XTS is not set +# CONFIG_CRYPTO_KEYWRAP is not set +# CONFIG_CRYPTO_NHPOLY1305_SSE2 is not set +# CONFIG_CRYPTO_NHPOLY1305_AVX2 is not set +# CONFIG_CRYPTO_ADIANTUM is not set +CONFIG_CRYPTO_ESSIV=y + +# +# Hash modes +# +# CONFIG_CRYPTO_CMAC is not set +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_VMAC is not set + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=y +# CONFIG_CRYPTO_CRC32C_INTEL is not set +# CONFIG_CRYPTO_CRC32 is not set +# CONFIG_CRYPTO_CRC32_PCLMUL is not set +# CONFIG_CRYPTO_XXHASH is not set +CONFIG_CRYPTO_CRCT10DIF=y +# CONFIG_CRYPTO_CRCT10DIF_PCLMUL is not set +# CONFIG_CRYPTO_GHASH is not set +# CONFIG_CRYPTO_POLY1305 is not set +# CONFIG_CRYPTO_POLY1305_X86_64 is not set +# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD5=y +# CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_RMD128 is not set +# CONFIG_CRYPTO_RMD160 is not set +# CONFIG_CRYPTO_RMD256 is not set +# CONFIG_CRYPTO_RMD320 is not set +CONFIG_CRYPTO_SHA1=y +# CONFIG_CRYPTO_SHA1_SSSE3 is not set +# CONFIG_CRYPTO_SHA256_SSSE3 is not set +# CONFIG_CRYPTO_SHA512_SSSE3 is not set +CONFIG_CRYPTO_LIB_SHA256=y +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SHA512=y +# CONFIG_CRYPTO_SHA3 is not set +# CONFIG_CRYPTO_SM3 is not set +# CONFIG_CRYPTO_STREEBOG is not set +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_WP512 is not set +# CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL is not set + +# +# Ciphers +# +CONFIG_CRYPTO_LIB_AES=y +CONFIG_CRYPTO_AES=y +# CONFIG_CRYPTO_AES_TI is not set +# CONFIG_CRYPTO_AES_NI_INTEL is not set +# CONFIG_CRYPTO_ANUBIS is not set +# CONFIG_CRYPTO_ARC4 is not set +# CONFIG_CRYPTO_BLOWFISH is not set +# CONFIG_CRYPTO_BLOWFISH_X86_64 is not set +# CONFIG_CRYPTO_CAMELLIA is not set +# CONFIG_CRYPTO_CAMELLIA_X86_64 is not set +# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64 is not set +# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 is not set +# CONFIG_CRYPTO_CAST5 is not set +# CONFIG_CRYPTO_CAST5_AVX_X86_64 is not set +# CONFIG_CRYPTO_CAST6 is not set +# CONFIG_CRYPTO_CAST6_AVX_X86_64 is not set +CONFIG_CRYPTO_LIB_DES=y +CONFIG_CRYPTO_DES=y +# CONFIG_CRYPTO_DES3_EDE_X86_64 is not set +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_SALSA20 is not set +# CONFIG_CRYPTO_CHACHA20 is not set +# CONFIG_CRYPTO_CHACHA20_X86_64 is not set +# CONFIG_CRYPTO_SEED is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_SERPENT_SSE2_X86_64 is not set +# CONFIG_CRYPTO_SERPENT_AVX_X86_64 is not set +# CONFIG_CRYPTO_SERPENT_AVX2_X86_64 is not set +# CONFIG_CRYPTO_SM4 is not set +# CONFIG_CRYPTO_TEA is not set +# CONFIG_CRYPTO_TWOFISH is not set +# CONFIG_CRYPTO_TWOFISH_X86_64 is not set +# CONFIG_CRYPTO_TWOFISH_X86_64_3WAY is not set +# CONFIG_CRYPTO_TWOFISH_AVX_X86_64 is not set + +# +# Compression +# +CONFIG_CRYPTO_DEFLATE=y +CONFIG_CRYPTO_LZO=y +# CONFIG_CRYPTO_842 is not set +# CONFIG_CRYPTO_LZ4 is not set +# CONFIG_CRYPTO_LZ4HC is not set +CONFIG_CRYPTO_ZSTD=y + +# +# Random Number Generation +# +# CONFIG_CRYPTO_ANSI_CPRNG is not set +CONFIG_CRYPTO_DRBG_MENU=y +CONFIG_CRYPTO_DRBG_HMAC=y +# CONFIG_CRYPTO_DRBG_HASH is not set +CONFIG_CRYPTO_DRBG=y +CONFIG_CRYPTO_JITTERENTROPY=y +# CONFIG_CRYPTO_USER_API_HASH is not set +# CONFIG_CRYPTO_USER_API_SKCIPHER is not set +# CONFIG_CRYPTO_USER_API_RNG is not set +# CONFIG_CRYPTO_USER_API_AEAD is not set +CONFIG_CRYPTO_HASH_INFO=y +# CONFIG_CRYPTO_HW is not set +# CONFIG_CRYPTO_DEV_PADLOCK is not set +# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set +# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set +# CONFIG_CRYPTO_DEV_CCP is not set +# CONFIG_CRYPTO_DEV_QAT_DH895xCC is not set +# CONFIG_CRYPTO_DEV_QAT_C3XXX is not set +# CONFIG_CRYPTO_DEV_QAT_C62X is not set +# CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set +# CONFIG_CRYPTO_DEV_QAT_C3XXXVF is not set +# CONFIG_CRYPTO_DEV_QAT_C62XVF is not set +# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set +# CONFIG_CRYPTO_DEV_SAFEXCEL is not set +CONFIG_ASYMMETRIC_KEY_TYPE=y +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y +CONFIG_X509_CERTIFICATE_PARSER=y +# CONFIG_PKCS8_PRIVATE_KEY_PARSER is not set +CONFIG_PKCS7_MESSAGE_PARSER=y +# CONFIG_PKCS7_TEST_KEY is not set +CONFIG_SIGNED_PE_FILE_VERIFICATION=y + +# +# Certificates for signature checking +# +# CONFIG_SYSTEM_TRUSTED_KEYRING is not set +# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set +# end of Certificates for signature checking + +# +# Library routines +# +CONFIG_RAID6_PQ=y +CONFIG_RAID6_PQ_BENCHMARK=y +# CONFIG_PACKING is not set +CONFIG_BITREVERSE=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_NET_UTILS=y +CONFIG_GENERIC_FIND_FIRST_BIT=y +# CONFIG_CORDIC is not set +CONFIG_RATIONAL=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IOMAP=y +CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y +CONFIG_ARCH_HAS_FAST_MULTIPLIER=y +# CONFIG_CRC_CCITT is not set +CONFIG_CRC16=y +CONFIG_CRC_T10DIF=y +# CONFIG_CRC_ITU_T is not set +CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set +# CONFIG_CRC64 is not set +# CONFIG_CRC4 is not set +# CONFIG_CRC7 is not set +CONFIG_LIBCRC32C=y +# CONFIG_CRC8 is not set +CONFIG_XXHASH=y +# CONFIG_RANDOM32_SELFTEST is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_ZSTD_COMPRESS=y +CONFIG_ZSTD_DECOMPRESS=y +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_X86=y +CONFIG_XZ_DEC_POWERPC=y +# CONFIG_XZ_DEC_IA64 is not set +# CONFIG_XZ_DEC_ARM is not set +# CONFIG_XZ_DEC_ARMTHUMB is not set +# CONFIG_XZ_DEC_SPARC is not set +CONFIG_XZ_DEC_BCJ=y +# CONFIG_XZ_DEC_TEST is not set +CONFIG_DECOMPRESS_GZIP=y +CONFIG_DECOMPRESS_XZ=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_ASSOCIATIVE_ARRAY=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT_MAP=y +CONFIG_HAS_DMA=y +CONFIG_NEED_SG_DMA_LENGTH=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +CONFIG_SWIOTLB=y +# CONFIG_DMA_API_DEBUG is not set +CONFIG_SGL_ALLOC=y +CONFIG_IOMMU_HELPER=y +CONFIG_CHECK_SIGNATURE=y +CONFIG_CPU_RMAP=y +CONFIG_DQL=y +CONFIG_GLOB=y +# CONFIG_GLOB_SELFTEST is not set +CONFIG_NLATTR=y +# CONFIG_IRQ_POLL is not set +CONFIG_OID_REGISTRY=y +CONFIG_UCS2_STRING=y +CONFIG_HAVE_GENERIC_VDSO=y +CONFIG_GENERIC_GETTIMEOFDAY=y +CONFIG_FONT_SUPPORT=y +CONFIG_FONT_8x16=y +CONFIG_FONT_AUTOSELECT=y +CONFIG_SG_POOL=y +CONFIG_ARCH_HAS_PMEM_API=y +CONFIG_ARCH_HAS_UACCESS_FLUSHCACHE=y +CONFIG_ARCH_STACKWALK=y +CONFIG_SBITMAP=y +# CONFIG_STRING_SELFTEST is not set +# end of Library routines + +# +# Kernel hacking +# + +# +# printk and dmesg options +# +CONFIG_PRINTK_TIME=y +# CONFIG_PRINTK_CALLER is not set +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 +CONFIG_CONSOLE_LOGLEVEL_QUIET=4 +CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_DYNAMIC_DEBUG is not set +# end of printk and dmesg options + +# +# Compile-time checks and compiler options +# +CONFIG_DEBUG_INFO=y +# CONFIG_DEBUG_INFO_REDUCED is not set +# CONFIG_DEBUG_INFO_SPLIT is not set +# CONFIG_DEBUG_INFO_DWARF4 is not set +# CONFIG_DEBUG_INFO_BTF is not set +# CONFIG_GDB_SCRIPTS is not set +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_FRAME_WARN=1024 +# CONFIG_STRIP_ASM_SYMS is not set +# CONFIG_READABLE_ASM is not set +CONFIG_DEBUG_FS=y +# CONFIG_HEADERS_INSTALL is not set +CONFIG_OPTIMIZE_INLINING=y +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_SECTION_MISMATCH_WARN_ONLY=y +CONFIG_STACK_VALIDATION=y +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# end of Compile-time checks and compiler options + +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 +CONFIG_MAGIC_SYSRQ_SERIAL=y +CONFIG_DEBUG_KERNEL=y +CONFIG_DEBUG_MISC=y + +# +# Memory Debugging +# +# CONFIG_PAGE_EXTENSION is not set +# CONFIG_DEBUG_PAGEALLOC is not set +# CONFIG_PAGE_OWNER is not set +# CONFIG_PAGE_POISONING is not set +CONFIG_DEBUG_RODATA_TEST=y +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_SLUB_STATS is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_VM is not set +CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y +# CONFIG_DEBUG_VIRTUAL is not set +# CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +CONFIG_HAVE_ARCH_KASAN=y +CONFIG_CC_HAS_KASAN_GENERIC=y +# CONFIG_KASAN is not set +CONFIG_KASAN_STACK=1 +# end of Memory Debugging + +CONFIG_ARCH_HAS_KCOV=y +CONFIG_CC_HAS_SANCOV_TRACE_PC=y +# CONFIG_KCOV is not set +# CONFIG_DEBUG_SHIRQ is not set + +# +# Debug Lockups and Hangs +# +# CONFIG_SOFTLOCKUP_DETECTOR is not set +CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y +# CONFIG_HARDLOCKUP_DETECTOR is not set +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 +# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set +CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 +# CONFIG_WQ_WATCHDOG is not set +# end of Debug Lockups and Hangs + +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +CONFIG_PANIC_TIMEOUT=120 +CONFIG_SCHED_DEBUG=y +CONFIG_SCHED_INFO=y +# CONFIG_SCHEDSTATS is not set +# CONFIG_SCHED_STACK_END_CHECK is not set +# CONFIG_DEBUG_TIMEKEEPING is not set + +# +# Lock Debugging (spinlocks, mutexes, etc...) +# +CONFIG_LOCK_DEBUGGING_SUPPORT=y +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set +# CONFIG_DEBUG_RWSEMS is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_LOCK_TORTURE_TEST is not set +# CONFIG_WW_MUTEX_SELFTEST is not set +# end of Lock Debugging (spinlocks, mutexes, etc...) + +# CONFIG_STACKTRACE is not set +# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_BUGVERBOSE is not set +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_PLIST is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_CREDENTIALS is not set + +# +# RCU Debugging +# +# CONFIG_RCU_PERF_TEST is not set +# CONFIG_RCU_TORTURE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=60 +# CONFIG_RCU_TRACE is not set +# CONFIG_RCU_EQS_DEBUG is not set +# end of RCU Debugging + +# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set +# CONFIG_FAULT_INJECTION is not set +# CONFIG_LATENCYTOP is not set +CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_FENTRY=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACE_CLOCK=y +CONFIG_RING_BUFFER=y +CONFIG_RING_BUFFER_ALLOW_SWAP=y +CONFIG_TRACING_SUPPORT=y +# CONFIG_FTRACE is not set +# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set +CONFIG_RUNTIME_TESTING_MENU=y +# CONFIG_LKDTM is not set +# CONFIG_TEST_LIST_SORT is not set +# CONFIG_TEST_SORT is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_RBTREE_TEST is not set +# CONFIG_REED_SOLOMON_TEST is not set +# CONFIG_INTERVAL_TREE_TEST is not set +# CONFIG_PERCPU_TEST is not set +# CONFIG_ATOMIC64_SELFTEST is not set +# CONFIG_ASYNC_RAID6_TEST is not set +# CONFIG_TEST_HEXDUMP is not set +# CONFIG_TEST_STRING_HELPERS is not set +# CONFIG_TEST_STRSCPY is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_TEST_PRINTF is not set +# CONFIG_TEST_BITMAP is not set +# CONFIG_TEST_BITFIELD is not set +# CONFIG_TEST_UUID is not set +# CONFIG_TEST_XARRAY is not set +# CONFIG_TEST_OVERFLOW is not set +# CONFIG_TEST_RHASHTABLE is not set +# CONFIG_TEST_HASH is not set +# CONFIG_TEST_IDA is not set +# CONFIG_TEST_LKM is not set +# CONFIG_TEST_VMALLOC is not set +# CONFIG_TEST_USER_COPY is not set +# CONFIG_TEST_BPF is not set +# CONFIG_TEST_BLACKHOLE_DEV is not set +# CONFIG_FIND_BIT_BENCHMARK is not set +# CONFIG_TEST_FIRMWARE is not set +# CONFIG_TEST_SYSCTL is not set +# CONFIG_TEST_UDELAY is not set +# CONFIG_TEST_STATIC_KEYS is not set +# CONFIG_TEST_KMOD is not set +# CONFIG_TEST_MEMCAT_P is not set +# CONFIG_TEST_STACKINIT is not set +# CONFIG_TEST_MEMINIT is not set +# CONFIG_MEMTEST is not set +# CONFIG_BUG_ON_DATA_CORRUPTION is not set +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set +CONFIG_ARCH_HAS_UBSAN_SANITIZE_ALL=y +# CONFIG_UBSAN is not set +CONFIG_UBSAN_ALIGNMENT=y +CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y +# CONFIG_STRICT_DEVMEM is not set +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_X86_VERBOSE_BOOTUP=y +CONFIG_EARLY_PRINTK=y +# CONFIG_EARLY_PRINTK_DBGP is not set +# CONFIG_EARLY_PRINTK_USB_XDBC is not set +# CONFIG_X86_PTDUMP is not set +# CONFIG_EFI_PGT_DUMP is not set +# CONFIG_DEBUG_WX is not set +CONFIG_DOUBLEFAULT=y +# CONFIG_DEBUG_TLBFLUSH is not set +# CONFIG_IOMMU_DEBUG is not set +CONFIG_HAVE_MMIOTRACE_SUPPORT=y +# CONFIG_X86_DECODER_SELFTEST is not set +CONFIG_IO_DELAY_0X80=y +# CONFIG_IO_DELAY_0XED is not set +# CONFIG_IO_DELAY_UDELAY is not set +# CONFIG_IO_DELAY_NONE is not set +# CONFIG_DEBUG_BOOT_PARAMS is not set +# CONFIG_CPA_DEBUG is not set +# CONFIG_DEBUG_ENTRY is not set +# CONFIG_DEBUG_NMI_SELFTEST is not set +# CONFIG_X86_DEBUG_FPU is not set +# CONFIG_PUNIT_ATOM_DEBUG is not set +CONFIG_UNWINDER_ORC=y +# CONFIG_UNWINDER_FRAME_POINTER is not set +# CONFIG_UNWINDER_GUESS is not set +# end of Kernel hacking diff --git a/build-config/make/kernel-download.make b/build-config/make/kernel-download.make index 21a1c2223..b72f16f56 100644 --- a/build-config/make/kernel-download.make +++ b/build-config/make/kernel-download.make @@ -16,9 +16,9 @@ #------------------------------------------------------------------------------- # Need the Linux kernel downloaded before building xtools -LINUX_VERSION ?= 5.4 +LINUX_VERSION ?= 6.18 LINUX_MAJOR_VERSION = $(firstword $(subst ., ,$(LINUX_VERSION))) -LINUX_MINOR_VERSION ?= 86 +LINUX_MINOR_VERSION ?= 35 LINUX_RELEASE ?= $(LINUX_VERSION).$(LINUX_MINOR_VERSION) LINUX_TARBALL ?= linux-$(LINUX_RELEASE).tar.xz export LINUX_TARBALL diff --git a/build-config/make/kernel.make b/build-config/make/kernel.make index 9edaca9c9..7aefcb0cf 100644 --- a/build-config/make/kernel.make +++ b/build-config/make/kernel.make @@ -14,7 +14,12 @@ #------------------------------------------------------------------------------- -LINUX_CONFIG ?= conf/kernel/$(LINUX_RELEASE)/linux.$(ONIE_ARCH).config +# Prefer a version-specific kernel config if a platform ships one (the legacy +# per-version configs under conf/kernel// are kept for the older +# machine kernels), otherwise fall back to the shared, non-versioned base. +# olddefconfig (see the .config recipe below) reconciles whichever base to the +# kernel actually being built, so a kernel bump needs no new committed config. +LINUX_CONFIG ?= $(firstword $(wildcard conf/kernel/$(LINUX_RELEASE)/linux.$(ONIE_ARCH).config) conf/kernel/linux.$(ONIE_ARCH).config) KERNELDIR = $(MBUILDDIR)/kernel LINUXDIR = $(KERNELDIR)/linux @@ -82,12 +87,25 @@ $(KERNEL_PATCH_STAMP): $(KERNEL_SRCPATCHDIR)/* $(MACHINE_KERNEL_PATCHDIR)/* $(KE $(Q) $(SCRIPTDIR)/apply-patch-series $(KERNEL_PATCHDIR)/series $(LINUXDIR) $(Q) touch $@ -$(LINUXDIR)/.config : $(LINUX_CONFIG) $(KERNEL_PATCH_STAMP) +# olddefconfig (below) runs the kernel kconfig, which probes the cross +# compiler via scripts/Kconfig.include, so the toolchain must already be +# built. Order-only so a toolchain rebuild does not force a config regen. +$(LINUXDIR)/.config : $(LINUX_CONFIG) $(KERNEL_PATCH_STAMP) | $(XTOOLS_BUILD_STAMP) $(Q) echo "==== Copying $(LINUX_CONFIG) to $(LINUXDIR)/.config ====" $(Q) cp -v $< $@ # $(Q) cat $(MACHINE_KERNEL_PATCHDIR)/config >> $(LINUXDIR)/.config $(Q) echo "==== Merging patches from $(MACHINE_KERNEL_PATCHDIR)/config to $(LINUXDIR)/.config ====" $(Q) $(LINUXDIR)/scripts/kconfig/merge_config.sh -r -m -O $(LINUXDIR) $(LINUXDIR)/.config $(MACHINE_KERNEL_PATCHDIR)/config + $(Q) echo "==== Reconciling kernel config to $(LINUX_RELEASE) (olddefconfig) ====" + $(Q) PATH='$(CROSSBIN):$(PATH)' $(MAKE) -C $(LINUXDIR) ARCH=$(KERNEL_ARCH) CROSS_COMPILE=$(CROSSPREFIX) olddefconfig + # Modern kernels resolve CONFIG_MODULE_SIG_KEY relative to the build tree + # and dropped the MODULE_SIG_KEY_SRCPREFIX mechanism, so rewrite a + # configured module-signing key to the absolute path of the generated key. + $(Q) if grep -q '^CONFIG_MODULE_SIG_KEY=' $(LINUXDIR)/.config && [ -n "$(ONIE_MODULE_SIG_KEY_SRCPREFIX)" ]; then \ + k=$$(sed -n 's/^CONFIG_MODULE_SIG_KEY="\(.*\)"/\1/p' $(LINUXDIR)/.config) ; \ + sed -i "s|^CONFIG_MODULE_SIG_KEY=.*|CONFIG_MODULE_SIG_KEY=\"$(abspath $(ONIE_MODULE_SIG_KEY_SRCPREFIX))/$$(basename $$k)\"|" $(LINUXDIR)/.config ; \ + echo "==== Set CONFIG_MODULE_SIG_KEY to $(abspath $(ONIE_MODULE_SIG_KEY_SRCPREFIX))/$$(basename $$k) ====" ; \ + fi # Interactive update. User selects options, or not @@ -129,7 +147,6 @@ $(KERNEL_BUILD_STAMP): $(KERNEL_SOURCE_STAMP) $(LINUX_NEW_FILES) $(LINUXDIR)/.co $(MAKE) -C $(LINUXDIR) \ ARCH=$(KERNEL_ARCH) \ CROSS_COMPILE=$(CROSSPREFIX) \ - MODULE_SIG_KEY_SRCPREFIX=$(ONIE_MODULE_SIG_KEY_SRCPREFIX)/ \ $(KERNEL_OLD_GCC_COMPAT) \ V=$(V) \ all diff --git a/patches/kernel/6.18.35/series b/patches/kernel/6.18.35/series new file mode 100644 index 000000000..e69de29bb diff --git a/upstream/linux-6.18.35.tar.xz.sha1 b/upstream/linux-6.18.35.tar.xz.sha1 new file mode 100644 index 000000000..ffe21078c --- /dev/null +++ b/upstream/linux-6.18.35.tar.xz.sha1 @@ -0,0 +1 @@ +88c0b87842b0d3523a1ebc622a00135927a2a79e linux-6.18.35.tar.xz From dccef3755799f487259a35669744f46403f34786 Mon Sep 17 00:00:00 2001 From: Brad House Date: Thu, 4 Jun 2026 00:16:22 +0000 Subject: [PATCH 3/5] machines: drop kernel version pins on platforms with no kernel patches 123 platforms carry an empty kernel patch series, so they have no version-bound kernel code. Drop their LINUX_VERSION / LINUX_MINOR_VERSION pins and let them ride the default kernel (now 6.18 LTS) instead of an EOL line. This modernizes them and lets them build on the GCC 14 toolchain again (they need no kernel-build leniency flags, having no patches). Platforms that DO carry kernel patches keep their pin -- their patches are written against that specific kernel and would not apply to 6.18. Signed-off-by: Brad House --- machine/accton/accton_833435_b21/machine.make | 3 --- machine/accton/accton_as4222_28pe/machine.make | 3 --- machine/accton/accton_as4620_54pe/machine.make | 3 --- machine/accton/accton_as4625/machine.make | 3 --- machine/accton/accton_as5512_54x/machine.make | 3 --- machine/accton/accton_as5712_54x/machine.make | 3 --- machine/accton/accton_as5812_54t/machine.make | 3 --- machine/accton/accton_as5812_54x/machine.make | 3 --- machine/accton/accton_as5822_54x/machine.make | 3 --- machine/accton/accton_as5912_42x/machine.make | 3 --- machine/accton/accton_as5912_54x/machine.make | 3 --- machine/accton/accton_as5912_54xk/machine.make | 3 --- machine/accton/accton_as5915_16x/machine.make | 3 --- machine/accton/accton_as5915_18x/machine.make | 3 --- machine/accton/accton_as5916_54xm/machine.make | 3 --- machine/accton/accton_as5916_54xmk/machine.make | 3 --- machine/accton/accton_as6712_32x/machine.make | 3 --- machine/accton/accton_as6812_32x/machine.make | 3 --- machine/accton/accton_as7112_54x/machine.make | 3 --- machine/accton/accton_as7212_54x/machine.make | 3 --- machine/accton/accton_as7312_54x/machine.make | 3 --- machine/accton/accton_as7312_54xs/machine.make | 3 --- machine/accton/accton_as7315_27xb/machine.make | 3 --- machine/accton/accton_as7315_30x/machine.make | 3 --- machine/accton/accton_as7316_26xb/machine.make | 3 --- machine/accton/accton_as7326_56x/machine.make | 3 --- machine/accton/accton_as7512_32x/machine.make | 3 --- machine/accton/accton_as7515_24x/machine.make | 3 --- machine/accton/accton_as7515_24xb/machine.make | 3 --- machine/accton/accton_as7515_30xb/machine.make | 3 --- machine/accton/accton_as7535_28xb/machine.make | 3 --- machine/accton/accton_as7535_32xb/machine.make | 3 --- machine/accton/accton_as7712_16x/machine.make | 3 --- machine/accton/accton_as7712_32x/machine.make | 3 --- machine/accton/accton_as7946_30xb/machine.make | 3 --- machine/accton/accton_as7946_74xkb/machine.make | 3 --- machine/accton/accton_as9716_32d/machine.make | 3 --- machine/accton/accton_as9736_64d/machine.make | 3 --- machine/accton/accton_as9737_32db/machine.make | 3 --- machine/accton/accton_as9947_36xkb/machine.make | 3 --- machine/accton/accton_bacon/machine.make | 3 --- machine/accton/accton_csp9250/machine.make | 3 --- machine/accton/accton_minipack/machine.make | 3 --- machine/accton/accton_wedge100_32x/machine.make | 3 --- machine/accton/accton_wedge100bf_32q/machine.make | 3 --- machine/accton/accton_wedge100bf_32qs/machine.make | 3 --- machine/accton/accton_wedge100bf_32x/machine.make | 3 --- machine/accton/accton_wedge100bf_65x/machine.make | 3 --- machine/accton/accton_wedge100s_32x/machine.make | 3 --- machine/accton/accton_wedge100sbf_32x/machine.make | 3 --- machine/accton/accton_wedge_16x/machine.make | 3 --- machine/alphanetworks/alphanetworks_bes2348t/machine.make | 3 --- machine/alphanetworks/alphanetworks_scg60d0_484t/machine.make | 3 --- machine/alphanetworks/alphanetworks_snc60d0_488f/machine.make | 3 --- machine/alphanetworks/alphanetworks_snc61d0_486t/machine.make | 3 --- machine/alphanetworks/alphanetworks_snh61d2_320f/machine.make | 3 --- machine/alphanetworks/alphanetworks_snj60d0_320f/machine.make | 3 --- machine/alphanetworks/alphanetworks_snj61d0_320f/machine.make | 3 --- machine/alphanetworks/alphanetworks_snj62d0_640f/machine.make | 3 --- machine/alphanetworks/alphanetworks_snk60i0_320f/machine.make | 3 --- machine/alphanetworks/alphanetworks_spx70d0_082f/machine.make | 3 --- machine/alphanetworks/alphanetworks_spx70d0_168f/machine.make | 3 --- machine/alphanetworks/alphanetworks_stx60d0_062f/machine.make | 3 --- machine/alphanetworks/alphanetworks_stx60d0_126f/machine.make | 3 --- machine/delta/delta_ag9032v2a/machine.make | 3 --- machine/delta/delta_ag9064/machine.make | 3 --- machine/delta/delta_common_bwde/machine.make | 3 --- machine/facebook/facebook_wedge100/machine.make | 3 --- machine/ingrasys/ingrasys_s9130_32x/machine.make | 3 --- machine/intel/intel_coreboot_rangeley/machine.make | 3 --- machine/juniper/juniper_qfx5200/machine.make | 3 --- machine/juniper/juniper_qfx5210/machine.make | 3 --- machine/lenovo/lenovo_ne0152t/machine.make | 3 --- machine/lenovo/lenovo_ne1064t/machine.make | 3 --- machine/lenovo/lenovo_ne2580/machine.make | 3 --- machine/netberg/netberg_aurora_221/machine.make | 3 --- machine/netberg/netberg_aurora_615/machine.make | 4 ---- machine/netberg/netberg_aurora_621/machine.make | 3 --- machine/netberg/netberg_aurora_705/machine.make | 3 --- machine/netberg/netberg_aurora_710/machine.make | 3 --- machine/netberg/netberg_aurora_715/machine.make | 4 ---- machine/netberg/netberg_aurora_721/machine.make | 3 --- machine/netberg/netberg_aurora_740/machine.make | 3 --- machine/netberg/netberg_aurora_750/machine.make | 3 --- machine/netberg/netberg_aurora_830/machine.make | 3 --- machine/qemu_armv8a/machine.make | 3 --- machine/quanta/quanta_bwde/machine.make | 3 --- machine/quanta/quanta_common_rglbmc/machine.make | 3 --- machine/quanta/quanta_dnv/machine.make | 3 --- machine/supermicro/supermicro_sse_t7132s/machine.make | 2 -- machine/ufispace/ufispace_dvtn_s9501series/machine.make | 3 --- machine/ufispace/ufispace_dvtn_s9502series/machine.make | 3 --- machine/ufispace/ufispace_dvtn_td3_x5_series/machine.make | 3 --- machine/ufispace/ufispace_s6301_56st/machine.make | 3 --- machine/ufispace/ufispace_s6301_56stp/machine.make | 3 --- machine/ufispace/ufispace_s9110_32x/machine.make | 3 --- machine/ufispace/ufispace_s9300_32d/machine.make | 3 --- machine/ufispace/ufispace_s9310_32d/machine.make | 3 --- machine/ufispace/ufispace_s9321_64e/machine.make | 3 --- machine/ufispace/ufispace_s9500_22xst/machine.make | 3 --- machine/ufispace/ufispace_s9500_30xs/machine.make | 3 --- machine/ufispace/ufispace_s9501_16smt/machine.make | 3 --- machine/ufispace/ufispace_s9501_18smt/machine.make | 3 --- machine/ufispace/ufispace_s9501_28smt/machine.make | 3 --- machine/ufispace/ufispace_s9510_28dc/machine.make | 3 --- machine/ufispace/ufispace_s9510_30xc/machine.make | 3 --- machine/ufispace/ufispace_s9511_20ct/machine.make | 3 --- machine/ufispace/ufispace_s9600_28dx/machine.make | 3 --- machine/ufispace/ufispace_s9600_32x/machine.make | 3 --- machine/ufispace/ufispace_s9600_48x/machine.make | 3 --- machine/ufispace/ufispace_s9600_56dx/machine.make | 3 --- machine/ufispace/ufispace_s9600_64x/machine.make | 3 --- machine/ufispace/ufispace_s9600_72xc/machine.make | 3 --- machine/ufispace/ufispace_s9601_104bc/machine.make | 3 --- machine/ufispace/ufispace_s9700_23d/machine.make | 3 --- machine/ufispace/ufispace_s9700_53dx/machine.make | 3 --- machine/ufispace/ufispace_s9701_78dc/machine.make | 3 --- machine/ufispace/ufispace_s9701_82dc/machine.make | 3 --- machine/ufispace/ufispace_s9705_48d/machine.make | 3 --- machine/ufispace/ufispace_s9720_56ed/machine.make | 3 --- machine/ufispace/ufispace_skl_ncplite_series/machine.make | 3 --- machine/ufispace/ufispace_skl_nighthawk_series/machine.make | 3 --- machine/wnc/wnc_rseb_w1_32/machine.make | 3 --- 123 files changed, 370 deletions(-) diff --git a/machine/accton/accton_833435_b21/machine.make b/machine/accton/accton_833435_b21/machine.make index f02f156a3..d49b47c3c 100644 --- a/machine/accton/accton_833435_b21/machine.make +++ b/machine/accton/accton_833435_b21/machine.make @@ -30,9 +30,6 @@ I2CTOOLS_SYSEEPROM = no # Console parameters CONSOLE_DEV = 1 -# Specify Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as4222_28pe/machine.make b/machine/accton/accton_as4222_28pe/machine.make index bdb6df2c3..68be7ada4 100644 --- a/machine/accton/accton_as4222_28pe/machine.make +++ b/machine/accton/accton_as4222_28pe/machine.make @@ -33,9 +33,6 @@ VENDOR_ID = 259 UEFI_ENABLE = yes PXE_EFI64_ENABLE = yes -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as4620_54pe/machine.make b/machine/accton/accton_as4620_54pe/machine.make index 754279e84..5a765407e 100644 --- a/machine/accton/accton_as4620_54pe/machine.make +++ b/machine/accton/accton_as4620_54pe/machine.make @@ -29,9 +29,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 1 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as4625/machine.make b/machine/accton/accton_as4625/machine.make index 4eab06a7d..57b619ee9 100644 --- a/machine/accton/accton_as4625/machine.make +++ b/machine/accton/accton_as4625/machine.make @@ -31,9 +31,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as5512_54x/machine.make b/machine/accton/accton_as5512_54x/machine.make index 1a565df9a..55f7d03ac 100644 --- a/machine/accton/accton_as5512_54x/machine.make +++ b/machine/accton/accton_as5512_54x/machine.make @@ -30,9 +30,6 @@ I2CTOOLS_SYSEEPROM = no # Console parameters CONSOLE_DEV = 1 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as5712_54x/machine.make b/machine/accton/accton_as5712_54x/machine.make index 6270639eb..ca6f98fce 100644 --- a/machine/accton/accton_as5712_54x/machine.make +++ b/machine/accton/accton_as5712_54x/machine.make @@ -30,9 +30,6 @@ I2CTOOLS_SYSEEPROM = no # Console parameters CONSOLE_DEV = 1 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as5812_54t/machine.make b/machine/accton/accton_as5812_54t/machine.make index 9f3b4a2c1..93ca9ade1 100644 --- a/machine/accton/accton_as5812_54t/machine.make +++ b/machine/accton/accton_as5812_54t/machine.make @@ -30,9 +30,6 @@ I2CTOOLS_SYSEEPROM = no # Console parameters CONSOLE_DEV = 1 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as5812_54x/machine.make b/machine/accton/accton_as5812_54x/machine.make index ffdd09b0e..73fa1c038 100644 --- a/machine/accton/accton_as5812_54x/machine.make +++ b/machine/accton/accton_as5812_54x/machine.make @@ -30,9 +30,6 @@ I2CTOOLS_SYSEEPROM = no # Console parameters CONSOLE_DEV = 1 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as5822_54x/machine.make b/machine/accton/accton_as5822_54x/machine.make index 50b6f2fe2..154ac2e90 100644 --- a/machine/accton/accton_as5822_54x/machine.make +++ b/machine/accton/accton_as5822_54x/machine.make @@ -31,9 +31,6 @@ I2CTOOLS_SYSEEPROM = no # Console parameters CONSOLE_DEV = 1 -# Specify Linux kernel version -- comment out to use the default -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as5912_42x/machine.make b/machine/accton/accton_as5912_42x/machine.make index b579cd9be..e6c241a9d 100644 --- a/machine/accton/accton_as5912_42x/machine.make +++ b/machine/accton/accton_as5912_42x/machine.make @@ -29,9 +29,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 1 -# Specify Linux kernel version -- comment out to use the default -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as5912_54x/machine.make b/machine/accton/accton_as5912_54x/machine.make index 618a600b8..62b9c482f 100644 --- a/machine/accton/accton_as5912_54x/machine.make +++ b/machine/accton/accton_as5912_54x/machine.make @@ -31,9 +31,6 @@ I2CTOOLS_SYSEEPROM = no # Console parameters CONSOLE_DEV = 1 -# Specify Linux kernel version -- comment out to use the default -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as5912_54xk/machine.make b/machine/accton/accton_as5912_54xk/machine.make index c5a7a5a2c..6fdcf8b4e 100644 --- a/machine/accton/accton_as5912_54xk/machine.make +++ b/machine/accton/accton_as5912_54xk/machine.make @@ -31,9 +31,6 @@ I2CTOOLS_SYSEEPROM = no # Console parameters CONSOLE_DEV = 1 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as5915_16x/machine.make b/machine/accton/accton_as5915_16x/machine.make index 90e8ed7c3..4ab83a347 100644 --- a/machine/accton/accton_as5915_16x/machine.make +++ b/machine/accton/accton_as5915_16x/machine.make @@ -31,9 +31,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as5915_18x/machine.make b/machine/accton/accton_as5915_18x/machine.make index d9bf9812f..c35e5f688 100644 --- a/machine/accton/accton_as5915_18x/machine.make +++ b/machine/accton/accton_as5915_18x/machine.make @@ -33,9 +33,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as5916_54xm/machine.make b/machine/accton/accton_as5916_54xm/machine.make index d89c393c3..b0062137c 100644 --- a/machine/accton/accton_as5916_54xm/machine.make +++ b/machine/accton/accton_as5916_54xm/machine.make @@ -29,9 +29,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as5916_54xmk/machine.make b/machine/accton/accton_as5916_54xmk/machine.make index bbb2768cd..388dd70ea 100644 --- a/machine/accton/accton_as5916_54xmk/machine.make +++ b/machine/accton/accton_as5916_54xmk/machine.make @@ -29,9 +29,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as6712_32x/machine.make b/machine/accton/accton_as6712_32x/machine.make index c2d771dde..954842a5c 100644 --- a/machine/accton/accton_as6712_32x/machine.make +++ b/machine/accton/accton_as6712_32x/machine.make @@ -30,9 +30,6 @@ I2CTOOLS_SYSEEPROM = no # Console parameters CONSOLE_DEV = 1 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as6812_32x/machine.make b/machine/accton/accton_as6812_32x/machine.make index e5d4b3788..17f3698c8 100644 --- a/machine/accton/accton_as6812_32x/machine.make +++ b/machine/accton/accton_as6812_32x/machine.make @@ -30,9 +30,6 @@ I2CTOOLS_SYSEEPROM = no # Console parameters CONSOLE_DEV = 1 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as7112_54x/machine.make b/machine/accton/accton_as7112_54x/machine.make index 3369ab5ad..a0189ca44 100644 --- a/machine/accton/accton_as7112_54x/machine.make +++ b/machine/accton/accton_as7112_54x/machine.make @@ -29,9 +29,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 1 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as7212_54x/machine.make b/machine/accton/accton_as7212_54x/machine.make index d20a19cb4..cc68e2acc 100644 --- a/machine/accton/accton_as7212_54x/machine.make +++ b/machine/accton/accton_as7212_54x/machine.make @@ -28,9 +28,6 @@ I2CTOOLS_SYSEEPROM = no # Console parameters CONSOLE_DEV = 1 -# Specify Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as7312_54x/machine.make b/machine/accton/accton_as7312_54x/machine.make index 0a5c2a929..cab56603f 100644 --- a/machine/accton/accton_as7312_54x/machine.make +++ b/machine/accton/accton_as7312_54x/machine.make @@ -31,9 +31,6 @@ I2CTOOLS_SYSEEPROM = no # Console parameters CONSOLE_DEV = 1 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as7312_54xs/machine.make b/machine/accton/accton_as7312_54xs/machine.make index 5149d2613..88a1c9944 100644 --- a/machine/accton/accton_as7312_54xs/machine.make +++ b/machine/accton/accton_as7312_54xs/machine.make @@ -29,9 +29,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 1 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as7315_27xb/machine.make b/machine/accton/accton_as7315_27xb/machine.make index 88e4df2cb..0a4d9e0e0 100644 --- a/machine/accton/accton_as7315_27xb/machine.make +++ b/machine/accton/accton_as7315_27xb/machine.make @@ -35,9 +35,6 @@ EXTRA_CMDLINE_LINUX = nopat # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as7315_30x/machine.make b/machine/accton/accton_as7315_30x/machine.make index e8546c154..445f2bce1 100644 --- a/machine/accton/accton_as7315_30x/machine.make +++ b/machine/accton/accton_as7315_30x/machine.make @@ -35,9 +35,6 @@ EXTRA_CMDLINE_LINUX = nopat # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as7316_26xb/machine.make b/machine/accton/accton_as7316_26xb/machine.make index 5e802e065..f7897a028 100644 --- a/machine/accton/accton_as7316_26xb/machine.make +++ b/machine/accton/accton_as7316_26xb/machine.make @@ -31,9 +31,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as7326_56x/machine.make b/machine/accton/accton_as7326_56x/machine.make index be7a7f0c8..0049027b3 100644 --- a/machine/accton/accton_as7326_56x/machine.make +++ b/machine/accton/accton_as7326_56x/machine.make @@ -29,9 +29,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as7512_32x/machine.make b/machine/accton/accton_as7512_32x/machine.make index 705820539..735cb1f76 100644 --- a/machine/accton/accton_as7512_32x/machine.make +++ b/machine/accton/accton_as7512_32x/machine.make @@ -30,9 +30,6 @@ I2CTOOLS_SYSEEPROM = no # Console parameters CONSOLE_DEV = 1 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as7515_24x/machine.make b/machine/accton/accton_as7515_24x/machine.make index 503d1405f..5eafea043 100644 --- a/machine/accton/accton_as7515_24x/machine.make +++ b/machine/accton/accton_as7515_24x/machine.make @@ -31,9 +31,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as7515_24xb/machine.make b/machine/accton/accton_as7515_24xb/machine.make index 3529c11bc..fb43c1c1a 100644 --- a/machine/accton/accton_as7515_24xb/machine.make +++ b/machine/accton/accton_as7515_24xb/machine.make @@ -32,9 +32,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as7515_30xb/machine.make b/machine/accton/accton_as7515_30xb/machine.make index 8635efc7d..0665eba7e 100644 --- a/machine/accton/accton_as7515_30xb/machine.make +++ b/machine/accton/accton_as7515_30xb/machine.make @@ -32,9 +32,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as7535_28xb/machine.make b/machine/accton/accton_as7535_28xb/machine.make index 64731eff5..aae452a1a 100644 --- a/machine/accton/accton_as7535_28xb/machine.make +++ b/machine/accton/accton_as7535_28xb/machine.make @@ -32,9 +32,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as7535_32xb/machine.make b/machine/accton/accton_as7535_32xb/machine.make index 5a82383b9..36306d048 100644 --- a/machine/accton/accton_as7535_32xb/machine.make +++ b/machine/accton/accton_as7535_32xb/machine.make @@ -32,9 +32,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as7712_16x/machine.make b/machine/accton/accton_as7712_16x/machine.make index 811dc8441..b6835377c 100644 --- a/machine/accton/accton_as7712_16x/machine.make +++ b/machine/accton/accton_as7712_16x/machine.make @@ -28,9 +28,6 @@ I2CTOOLS_SYSEEPROM = no # Console parameters CONSOLE_DEV = 1 -# Specify Linux kernel version -- comment out to use the default -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as7712_32x/machine.make b/machine/accton/accton_as7712_32x/machine.make index 44e9ef208..2ec02b24d 100644 --- a/machine/accton/accton_as7712_32x/machine.make +++ b/machine/accton/accton_as7712_32x/machine.make @@ -31,9 +31,6 @@ I2CTOOLS_SYSEEPROM = no # Console parameters CONSOLE_DEV = 1 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as7946_30xb/machine.make b/machine/accton/accton_as7946_30xb/machine.make index 9506fa9d9..a5791694d 100644 --- a/machine/accton/accton_as7946_30xb/machine.make +++ b/machine/accton/accton_as7946_30xb/machine.make @@ -32,9 +32,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as7946_74xkb/machine.make b/machine/accton/accton_as7946_74xkb/machine.make index 8f24ee8d1..66cde76f5 100644 --- a/machine/accton/accton_as7946_74xkb/machine.make +++ b/machine/accton/accton_as7946_74xkb/machine.make @@ -32,9 +32,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as9716_32d/machine.make b/machine/accton/accton_as9716_32d/machine.make index 891eeab25..201cc07cf 100644 --- a/machine/accton/accton_as9716_32d/machine.make +++ b/machine/accton/accton_as9716_32d/machine.make @@ -29,9 +29,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as9736_64d/machine.make b/machine/accton/accton_as9736_64d/machine.make index 89c9d92c4..59489fb86 100644 --- a/machine/accton/accton_as9736_64d/machine.make +++ b/machine/accton/accton_as9736_64d/machine.make @@ -31,9 +31,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as9737_32db/machine.make b/machine/accton/accton_as9737_32db/machine.make index b8a73a3d5..c985ac161 100644 --- a/machine/accton/accton_as9737_32db/machine.make +++ b/machine/accton/accton_as9737_32db/machine.make @@ -32,9 +32,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_as9947_36xkb/machine.make b/machine/accton/accton_as9947_36xkb/machine.make index 3cec0879e..d81858c6f 100644 --- a/machine/accton/accton_as9947_36xkb/machine.make +++ b/machine/accton/accton_as9947_36xkb/machine.make @@ -32,9 +32,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_bacon/machine.make b/machine/accton/accton_bacon/machine.make index 9e530d649..48ac7843d 100644 --- a/machine/accton/accton_bacon/machine.make +++ b/machine/accton/accton_bacon/machine.make @@ -31,9 +31,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 1 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_csp9250/machine.make b/machine/accton/accton_csp9250/machine.make index 12318925e..774ce7a2a 100644 --- a/machine/accton/accton_csp9250/machine.make +++ b/machine/accton/accton_csp9250/machine.make @@ -28,9 +28,6 @@ IPMITOOL_ENABLE = yes # Console parameters SERIAL_CONSOLE_ENABLE = no -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_minipack/machine.make b/machine/accton/accton_minipack/machine.make index 6b0980237..e51e77975 100644 --- a/machine/accton/accton_minipack/machine.make +++ b/machine/accton/accton_minipack/machine.make @@ -30,9 +30,6 @@ PXE_EFI64_ENABLE = yes CONSOLE_SPEED = 57600 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_wedge100_32x/machine.make b/machine/accton/accton_wedge100_32x/machine.make index 77167bd3d..356481957 100644 --- a/machine/accton/accton_wedge100_32x/machine.make +++ b/machine/accton/accton_wedge100_32x/machine.make @@ -33,9 +33,6 @@ I2CTOOLS_SYSEEPROM = no CONSOLE_SPEED = 57600 CONSOLE_DEV = 0 -# Specify Linux kernel version -- comment out to use the default -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_wedge100bf_32q/machine.make b/machine/accton/accton_wedge100bf_32q/machine.make index 76b92fcad..d6a476769 100644 --- a/machine/accton/accton_wedge100bf_32q/machine.make +++ b/machine/accton/accton_wedge100bf_32q/machine.make @@ -34,9 +34,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_wedge100bf_32qs/machine.make b/machine/accton/accton_wedge100bf_32qs/machine.make index 0ceb6ffb0..4d125d78d 100644 --- a/machine/accton/accton_wedge100bf_32qs/machine.make +++ b/machine/accton/accton_wedge100bf_32qs/machine.make @@ -34,9 +34,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_wedge100bf_32x/machine.make b/machine/accton/accton_wedge100bf_32x/machine.make index b1ae10cbf..60b313ccf 100644 --- a/machine/accton/accton_wedge100bf_32x/machine.make +++ b/machine/accton/accton_wedge100bf_32x/machine.make @@ -36,9 +36,6 @@ I2CTOOLS_ENABLE = yes # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_wedge100bf_65x/machine.make b/machine/accton/accton_wedge100bf_65x/machine.make index eb943b74b..1ec9aa668 100644 --- a/machine/accton/accton_wedge100bf_65x/machine.make +++ b/machine/accton/accton_wedge100bf_65x/machine.make @@ -34,9 +34,6 @@ PXE_EFI64_ENABLE = yes # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_wedge100s_32x/machine.make b/machine/accton/accton_wedge100s_32x/machine.make index 9fd1dae56..23dcfc03d 100644 --- a/machine/accton/accton_wedge100s_32x/machine.make +++ b/machine/accton/accton_wedge100s_32x/machine.make @@ -32,9 +32,6 @@ I2CTOOLS_SYSEEPROM = no CONSOLE_SPEED = 57600 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_wedge100sbf_32x/machine.make b/machine/accton/accton_wedge100sbf_32x/machine.make index 21fe384bd..5f6c5e934 100644 --- a/machine/accton/accton_wedge100sbf_32x/machine.make +++ b/machine/accton/accton_wedge100sbf_32x/machine.make @@ -30,9 +30,6 @@ PXE_EFI64_ENABLE = yes CONSOLE_SPEED = 57600 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/accton/accton_wedge_16x/machine.make b/machine/accton/accton_wedge_16x/machine.make index d29db892e..9cce6cd3f 100644 --- a/machine/accton/accton_wedge_16x/machine.make +++ b/machine/accton/accton_wedge_16x/machine.make @@ -30,9 +30,6 @@ I2CTOOLS_SYSEEPROM = no CONSOLE_SPEED = 57600 CONSOLE_DEV = 1 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/alphanetworks/alphanetworks_bes2348t/machine.make b/machine/alphanetworks/alphanetworks_bes2348t/machine.make index 1b3a8a915..e3b83f33f 100755 --- a/machine/alphanetworks/alphanetworks_bes2348t/machine.make +++ b/machine/alphanetworks/alphanetworks_bes2348t/machine.make @@ -35,9 +35,6 @@ CONSOLE_DEV = 1 # Enable UEFI support UEFI_ENABLE = yes -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 # Set uClibc-ng version diff --git a/machine/alphanetworks/alphanetworks_scg60d0_484t/machine.make b/machine/alphanetworks/alphanetworks_scg60d0_484t/machine.make index bda13402e..b04f7e274 100755 --- a/machine/alphanetworks/alphanetworks_scg60d0_484t/machine.make +++ b/machine/alphanetworks/alphanetworks_scg60d0_484t/machine.make @@ -37,9 +37,6 @@ CONSOLE_DEV = 1 # Enable UEFI support UEFI_ENABLE = yes -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 # Set uClibc-ng version diff --git a/machine/alphanetworks/alphanetworks_snc60d0_488f/machine.make b/machine/alphanetworks/alphanetworks_snc60d0_488f/machine.make index 349d553bd..09f66175f 100755 --- a/machine/alphanetworks/alphanetworks_snc60d0_488f/machine.make +++ b/machine/alphanetworks/alphanetworks_snc60d0_488f/machine.make @@ -32,9 +32,6 @@ CONSOLE_DEV = 0 # Enable UEFI support UEFI_ENABLE = yes -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 # Older GCC required for older 3.14.27 kernel #GCC_VERSION = 4.9.2 diff --git a/machine/alphanetworks/alphanetworks_snc61d0_486t/machine.make b/machine/alphanetworks/alphanetworks_snc61d0_486t/machine.make index 63501a895..a345b3a32 100755 --- a/machine/alphanetworks/alphanetworks_snc61d0_486t/machine.make +++ b/machine/alphanetworks/alphanetworks_snc61d0_486t/machine.make @@ -35,9 +35,6 @@ CONSOLE_DEV = 0 # Enable UEFI support UEFI_ENABLE = yes -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 # Older GCC required for older 3.14.27 kernel #GCC_VERSION = 4.9.2 diff --git a/machine/alphanetworks/alphanetworks_snh61d2_320f/machine.make b/machine/alphanetworks/alphanetworks_snh61d2_320f/machine.make index 512fe24f9..fcb12cf4b 100755 --- a/machine/alphanetworks/alphanetworks_snh61d2_320f/machine.make +++ b/machine/alphanetworks/alphanetworks_snh61d2_320f/machine.make @@ -32,9 +32,6 @@ CONSOLE_DEV = 0 # Enable UEFI support UEFI_ENABLE = yes -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #------------------------------------------------------------------------------- diff --git a/machine/alphanetworks/alphanetworks_snj60d0_320f/machine.make b/machine/alphanetworks/alphanetworks_snj60d0_320f/machine.make index d5c02be88..b7f1d2db2 100755 --- a/machine/alphanetworks/alphanetworks_snj60d0_320f/machine.make +++ b/machine/alphanetworks/alphanetworks_snj60d0_320f/machine.make @@ -32,9 +32,6 @@ CONSOLE_DEV = 0 # Enable UEFI support UEFI_ENABLE = yes -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 # Older GCC required for older 3.14.27 kernel #GCC_VERSION = 4.9.2 diff --git a/machine/alphanetworks/alphanetworks_snj61d0_320f/machine.make b/machine/alphanetworks/alphanetworks_snj61d0_320f/machine.make index 49e0a0f75..be0be8cc8 100755 --- a/machine/alphanetworks/alphanetworks_snj61d0_320f/machine.make +++ b/machine/alphanetworks/alphanetworks_snj61d0_320f/machine.make @@ -38,9 +38,6 @@ CONSOLE_DEV = 0 # Enable UEFI support UEFI_ENABLE = yes -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 # Set uClibc-ng version diff --git a/machine/alphanetworks/alphanetworks_snj62d0_640f/machine.make b/machine/alphanetworks/alphanetworks_snj62d0_640f/machine.make index 9f5842ae4..72c06f35b 100755 --- a/machine/alphanetworks/alphanetworks_snj62d0_640f/machine.make +++ b/machine/alphanetworks/alphanetworks_snj62d0_640f/machine.make @@ -35,9 +35,6 @@ CONSOLE_DEV = 0 # Enable UEFI support UEFI_ENABLE = yes -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 # Set uClibc-ng version diff --git a/machine/alphanetworks/alphanetworks_snk60i0_320f/machine.make b/machine/alphanetworks/alphanetworks_snk60i0_320f/machine.make index 4acddd88c..6031a47c1 100755 --- a/machine/alphanetworks/alphanetworks_snk60i0_320f/machine.make +++ b/machine/alphanetworks/alphanetworks_snk60i0_320f/machine.make @@ -40,9 +40,6 @@ CONSOLE_DEV = 0 # Enable UEFI support UEFI_ENABLE = yes -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 # Set uClibc-ng version diff --git a/machine/alphanetworks/alphanetworks_spx70d0_082f/machine.make b/machine/alphanetworks/alphanetworks_spx70d0_082f/machine.make index d0775f4d4..4dbe12cb3 100755 --- a/machine/alphanetworks/alphanetworks_spx70d0_082f/machine.make +++ b/machine/alphanetworks/alphanetworks_spx70d0_082f/machine.make @@ -35,9 +35,6 @@ CONSOLE_DEV = 1 # Enable UEFI support UEFI_ENABLE = yes -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 # Set uClibc-ng version diff --git a/machine/alphanetworks/alphanetworks_spx70d0_168f/machine.make b/machine/alphanetworks/alphanetworks_spx70d0_168f/machine.make index 7de9904f1..0d656df10 100755 --- a/machine/alphanetworks/alphanetworks_spx70d0_168f/machine.make +++ b/machine/alphanetworks/alphanetworks_spx70d0_168f/machine.make @@ -35,9 +35,6 @@ CONSOLE_DEV = 1 # Enable UEFI support UEFI_ENABLE = yes -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 # Set uClibc-ng version diff --git a/machine/alphanetworks/alphanetworks_stx60d0_062f/machine.make b/machine/alphanetworks/alphanetworks_stx60d0_062f/machine.make index cdeff82d8..4cb02ac2d 100755 --- a/machine/alphanetworks/alphanetworks_stx60d0_062f/machine.make +++ b/machine/alphanetworks/alphanetworks_stx60d0_062f/machine.make @@ -32,9 +32,6 @@ CONSOLE_DEV = 1 # Enable UEFI support UEFI_ENABLE = yes -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 # Older GCC required for older 3.14.27 kernel #GCC_VERSION = 4.9.2 diff --git a/machine/alphanetworks/alphanetworks_stx60d0_126f/machine.make b/machine/alphanetworks/alphanetworks_stx60d0_126f/machine.make index 847afd6d4..6288ebcd9 100755 --- a/machine/alphanetworks/alphanetworks_stx60d0_126f/machine.make +++ b/machine/alphanetworks/alphanetworks_stx60d0_126f/machine.make @@ -35,9 +35,6 @@ CONSOLE_DEV = 1 # Enable UEFI support UEFI_ENABLE = yes -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 # Older GCC required for older 3.14.27 kernel #GCC_VERSION = 4.9.2 diff --git a/machine/delta/delta_ag9032v2a/machine.make b/machine/delta/delta_ag9032v2a/machine.make index e080aef99..b2cedc1a0 100755 --- a/machine/delta/delta_ag9032v2a/machine.make +++ b/machine/delta/delta_ag9032v2a/machine.make @@ -34,9 +34,6 @@ PXE_EFI64_ENABLE = no # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.1 -LINUX_MINOR_VERSION = 38 UEFI_ENABLE = yes diff --git a/machine/delta/delta_ag9064/machine.make b/machine/delta/delta_ag9064/machine.make index 4e933008f..9849d800a 100755 --- a/machine/delta/delta_ag9064/machine.make +++ b/machine/delta/delta_ag9064/machine.make @@ -28,9 +28,6 @@ PXE_EFI64_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.1 -LINUX_MINOR_VERSION = 38 UEFI_ENABLE = yes diff --git a/machine/delta/delta_common_bwde/machine.make b/machine/delta/delta_common_bwde/machine.make index 8e7253784..f277845e0 100755 --- a/machine/delta/delta_common_bwde/machine.make +++ b/machine/delta/delta_common_bwde/machine.make @@ -33,9 +33,6 @@ PXE_EFI64_ENABLE = no # Console parameters CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.1 -LINUX_MINOR_VERSION = 38 UEFI_ENABLE = yes CONSOLE_SPEED = 115200 diff --git a/machine/facebook/facebook_wedge100/machine.make b/machine/facebook/facebook_wedge100/machine.make index 99c230115..4b8515717 100644 --- a/machine/facebook/facebook_wedge100/machine.make +++ b/machine/facebook/facebook_wedge100/machine.make @@ -33,9 +33,6 @@ I2CTOOLS_SYSEEPROM = no CONSOLE_SPEED = 57600 CONSOLE_DEV = 0 -# Specify Linux kernel version -- comment out to use the default -LINUX_VERSION = 4.1 -LINUX_MINOR_VERSION = 38 #------------------------------------------------------------------------------- # diff --git a/machine/ingrasys/ingrasys_s9130_32x/machine.make b/machine/ingrasys/ingrasys_s9130_32x/machine.make index 350262f9b..e62deb7ac 100644 --- a/machine/ingrasys/ingrasys_s9130_32x/machine.make +++ b/machine/ingrasys/ingrasys_s9130_32x/machine.make @@ -33,9 +33,6 @@ I2CTOOLS_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.1 -LINUX_MINOR_VERSION = 38 #------------------------------------------------------------------------------- diff --git a/machine/intel/intel_coreboot_rangeley/machine.make b/machine/intel/intel_coreboot_rangeley/machine.make index 414601afc..f1b22fb1a 100644 --- a/machine/intel/intel_coreboot_rangeley/machine.make +++ b/machine/intel/intel_coreboot_rangeley/machine.make @@ -46,9 +46,6 @@ I2CTOOLS_ENABLE = no CONSOLE_SPEED ?= 115200 -# Specify Linux kernel version -- comment out to use the default -LINUX_VERSION = 4.1 -LINUX_MINOR_VERSION = 38 # Specify any extra parameters that you'd want to pass to the onie linux # kernel command line in EXTRA_CMDLINE_LINUX env variable. Eg: diff --git a/machine/juniper/juniper_qfx5200/machine.make b/machine/juniper/juniper_qfx5200/machine.make index 66b96e363..4545b2124 100644 --- a/machine/juniper/juniper_qfx5200/machine.make +++ b/machine/juniper/juniper_qfx5200/machine.make @@ -33,9 +33,6 @@ CONSOLE_DEV = 0 # Enable UEFI support UEFI_ENABLE = yes -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 # ONIE defaults the serial console baud rate to 115200 CONSOLE_SPEED = 9600 diff --git a/machine/juniper/juniper_qfx5210/machine.make b/machine/juniper/juniper_qfx5210/machine.make index caafd6a2c..1f529f05c 100644 --- a/machine/juniper/juniper_qfx5210/machine.make +++ b/machine/juniper/juniper_qfx5210/machine.make @@ -34,9 +34,6 @@ CONSOLE_DEV = 0 UEFI_ENABLE = yes PXE_EFI64_ENABLE = yes -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 # ONIE defaults the serial console baud rate to 115200 CONSOLE_SPEED = 9600 diff --git a/machine/lenovo/lenovo_ne0152t/machine.make b/machine/lenovo/lenovo_ne0152t/machine.make index 82b22d511..1f134c061 100755 --- a/machine/lenovo/lenovo_ne0152t/machine.make +++ b/machine/lenovo/lenovo_ne0152t/machine.make @@ -48,9 +48,6 @@ UEFI_ENABLE = yes # Console parameters CONSOLE_DEV = 1 -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #------------------------------------------------------------------------------- diff --git a/machine/lenovo/lenovo_ne1064t/machine.make b/machine/lenovo/lenovo_ne1064t/machine.make index 4e5d90950..fddeff57f 100755 --- a/machine/lenovo/lenovo_ne1064t/machine.make +++ b/machine/lenovo/lenovo_ne1064t/machine.make @@ -47,9 +47,6 @@ CONSOLE_DEV = 0 #Enable UEFI support UEFI_ENABLE = yes -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 # Specify uClibc version #UCLIBC_VERSION = 0.9.32.1 diff --git a/machine/lenovo/lenovo_ne2580/machine.make b/machine/lenovo/lenovo_ne2580/machine.make index f95b7bc44..dbc5461f4 100755 --- a/machine/lenovo/lenovo_ne2580/machine.make +++ b/machine/lenovo/lenovo_ne2580/machine.make @@ -47,9 +47,6 @@ CONSOLE_DEV = 0 #Enable UEFI support UEFI_ENABLE = yes -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 # Specify uClibc version #UCLIBC_VERSION = 0.9.32.1 diff --git a/machine/netberg/netberg_aurora_221/machine.make b/machine/netberg/netberg_aurora_221/machine.make index 1819c29c0..4d6889620 100755 --- a/machine/netberg/netberg_aurora_221/machine.make +++ b/machine/netberg/netberg_aurora_221/machine.make @@ -35,9 +35,6 @@ EXTRA_CMDLINE_LINUX = earlycon=uart8250,io,0x3f8 acpi_osi="Linux" UEFI_ENABLE = yes RECOVERY_DEFAULT_ENTRY = embed -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 # Set uClibc-ng version diff --git a/machine/netberg/netberg_aurora_615/machine.make b/machine/netberg/netberg_aurora_615/machine.make index b0ac5ac0e..6977b3c91 100755 --- a/machine/netberg/netberg_aurora_615/machine.make +++ b/machine/netberg/netberg_aurora_615/machine.make @@ -33,11 +33,7 @@ I2CTOOLS_SYSEEPROM = no CONSOLE_DEV = 0 CONSOLE_SPEED ?= 115200 -# Set Linux kernel version #LINUX_VERSION = 4.1 -#LINUX_MINOR_VERSION = 38 -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #EXTRA_CMDLINE_LINUX = acpi_osi=Linux #GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- diff --git a/machine/netberg/netberg_aurora_621/machine.make b/machine/netberg/netberg_aurora_621/machine.make index b9345a88f..e9bc157e7 100755 --- a/machine/netberg/netberg_aurora_621/machine.make +++ b/machine/netberg/netberg_aurora_621/machine.make @@ -47,9 +47,6 @@ EXTRA_CMDLINE_LINUX = earlycon=uart8250,io,0x3f8 acpi_osi="Linux" CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #------------------------------------------------------------------------------- diff --git a/machine/netberg/netberg_aurora_705/machine.make b/machine/netberg/netberg_aurora_705/machine.make index 81b7a62ac..37b7d8799 100644 --- a/machine/netberg/netberg_aurora_705/machine.make +++ b/machine/netberg/netberg_aurora_705/machine.make @@ -33,9 +33,6 @@ I2CTOOLS_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.1 -LINUX_MINOR_VERSION = 38 #------------------------------------------------------------------------------- diff --git a/machine/netberg/netberg_aurora_710/machine.make b/machine/netberg/netberg_aurora_710/machine.make index 0b702ea9e..b3fb17ac3 100644 --- a/machine/netberg/netberg_aurora_710/machine.make +++ b/machine/netberg/netberg_aurora_710/machine.make @@ -44,9 +44,6 @@ CONSOLE_DEV = 0 # FIXME: do not commit to github EXTRA_CMDLINE_LINUX = i2c-i801.disable_features=0x10 -# Set Linux kernel version -LINUX_VERSION = 4.1 -LINUX_MINOR_VERSION = 38 #------------------------------------------------------------------------------- diff --git a/machine/netberg/netberg_aurora_715/machine.make b/machine/netberg/netberg_aurora_715/machine.make index 4e9d17240..6ca5cf077 100755 --- a/machine/netberg/netberg_aurora_715/machine.make +++ b/machine/netberg/netberg_aurora_715/machine.make @@ -33,11 +33,7 @@ I2CTOOLS_SYSEEPROM = no CONSOLE_DEV = 0 CONSOLE_SPEED ?= 115200 -# Set Linux kernel version #LINUX_VERSION = 4.1 -#LINUX_MINOR_VERSION = 38 -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #EXTRA_CMDLINE_LINUX = acpi_osi=Linux #GCC_VERSION = 4.9.2 #------------------------------------------------------------------------------- diff --git a/machine/netberg/netberg_aurora_721/machine.make b/machine/netberg/netberg_aurora_721/machine.make index ec7dbea97..e87191eea 100755 --- a/machine/netberg/netberg_aurora_721/machine.make +++ b/machine/netberg/netberg_aurora_721/machine.make @@ -47,9 +47,6 @@ EXTRA_CMDLINE_LINUX = earlycon=uart8250,io,0x3f8 acpi_osi="Linux" CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #------------------------------------------------------------------------------- diff --git a/machine/netberg/netberg_aurora_740/machine.make b/machine/netberg/netberg_aurora_740/machine.make index 9040eca12..5c999df35 100755 --- a/machine/netberg/netberg_aurora_740/machine.make +++ b/machine/netberg/netberg_aurora_740/machine.make @@ -44,9 +44,6 @@ CONSOLE_DEV = 0 # FIXME: do not commit to github EXTRA_CMDLINE_LINUX = i2c-i801.disable_features=0x10 -# Set Linux kernel version -LINUX_VERSION = 4.1 -LINUX_MINOR_VERSION = 38 #------------------------------------------------------------------------------- diff --git a/machine/netberg/netberg_aurora_750/machine.make b/machine/netberg/netberg_aurora_750/machine.make index 6de341202..9ec069bc3 100644 --- a/machine/netberg/netberg_aurora_750/machine.make +++ b/machine/netberg/netberg_aurora_750/machine.make @@ -44,9 +44,6 @@ CONSOLE_DEV = 0 # FIXME: do not commit to github EXTRA_CMDLINE_LINUX = i2c-i801.disable_features=0x10 -# Set Linux kernel version -LINUX_VERSION = 4.1 -LINUX_MINOR_VERSION = 38 #------------------------------------------------------------------------------- diff --git a/machine/netberg/netberg_aurora_830/machine.make b/machine/netberg/netberg_aurora_830/machine.make index dd4e71060..6c123651d 100755 --- a/machine/netberg/netberg_aurora_830/machine.make +++ b/machine/netberg/netberg_aurora_830/machine.make @@ -45,9 +45,6 @@ IOACCESS_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #------------------------------------------------------------------------------- diff --git a/machine/qemu_armv8a/machine.make b/machine/qemu_armv8a/machine.make index fc6c40078..1b0745d52 100644 --- a/machine/qemu_armv8a/machine.make +++ b/machine/qemu_armv8a/machine.make @@ -24,7 +24,6 @@ XTOOLS_ENABLE = yes ifeq ($(XTOOLS_ENABLE),no) TARGET = aarch64-linux-gnu CROSSBIN = $(HOME)/gcc-linaro-5.3-2016.02-x86_64_aarch64-linux-gnu/bin - LINUX_VERSION = 4.1.23 STRACE_ENABLE = no XTOOLS_BUILD_STAMP = $(CROSSBIN)/$(TARGET)-gcc endif @@ -43,8 +42,6 @@ RECOVERY_DEFAULT_ENTRY = embed PXE_EFI64_ENABLE = yes -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 KERNEL_DTB = arm/vexpress-v2f-1xv7-ca53x2.dtb KERNEL_DTB_PATH = dts/$(KERNEL_DTB) diff --git a/machine/quanta/quanta_bwde/machine.make b/machine/quanta/quanta_bwde/machine.make index 6da5cbf29..badf9b902 100644 --- a/machine/quanta/quanta_bwde/machine.make +++ b/machine/quanta/quanta_bwde/machine.make @@ -51,9 +51,6 @@ UEFI_ENABLE = yes # Enable UEFI PXE PXE_EFI64_ENABLE = yes -# Set the desired kernel version. -LINUX_VERSION = 4.1 -LINUX_MINOR_VERSION = 38 # # Console parameters can be defined here (default values are in diff --git a/machine/quanta/quanta_common_rglbmc/machine.make b/machine/quanta/quanta_common_rglbmc/machine.make index 2e6358e1e..e4348ead4 100644 --- a/machine/quanta/quanta_common_rglbmc/machine.make +++ b/machine/quanta/quanta_common_rglbmc/machine.make @@ -51,9 +51,6 @@ UEFI_ENABLE = yes # Enable UEFI PXE PXE_EFI64_ENABLE = yes -# Set the desired kernel version. -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 # diff --git a/machine/quanta/quanta_dnv/machine.make b/machine/quanta/quanta_dnv/machine.make index 435ae6ab9..1a1ff7dfe 100644 --- a/machine/quanta/quanta_dnv/machine.make +++ b/machine/quanta/quanta_dnv/machine.make @@ -63,9 +63,6 @@ PXE_EFI64_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set the desired kernel version. -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 # Specify any extra parameters that you'd want to pass to the onie linux # kernel command line in EXTRA_CMDLINE_LINUX env variable. Eg: diff --git a/machine/supermicro/supermicro_sse_t7132s/machine.make b/machine/supermicro/supermicro_sse_t7132s/machine.make index 823b59528..e83ef42d1 100644 --- a/machine/supermicro/supermicro_sse_t7132s/machine.make +++ b/machine/supermicro/supermicro_sse_t7132s/machine.make @@ -49,8 +49,6 @@ GPT_ENABLE = yes PARTED_ENABLE = yes IPMITOOL_ENABLE = yes -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 RECOVERY_DEFAULT_ENTRY = embed diff --git a/machine/ufispace/ufispace_dvtn_s9501series/machine.make b/machine/ufispace/ufispace_dvtn_s9501series/machine.make index 742d198f1..1f9e86f2f 100755 --- a/machine/ufispace/ufispace_dvtn_s9501series/machine.make +++ b/machine/ufispace/ufispace_dvtn_s9501series/machine.make @@ -49,9 +49,6 @@ OPENSSL_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_dvtn_s9502series/machine.make b/machine/ufispace/ufispace_dvtn_s9502series/machine.make index 0b7ef016d..81c88dbf4 100755 --- a/machine/ufispace/ufispace_dvtn_s9502series/machine.make +++ b/machine/ufispace/ufispace_dvtn_s9502series/machine.make @@ -50,9 +50,6 @@ EXTRA_CMDLINE_LINUX = earlycon=uart8250,io,0x3f8 acpi_osi="Linux" CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_dvtn_td3_x5_series/machine.make b/machine/ufispace/ufispace_dvtn_td3_x5_series/machine.make index fdb818c97..5772da846 100755 --- a/machine/ufispace/ufispace_dvtn_td3_x5_series/machine.make +++ b/machine/ufispace/ufispace_dvtn_td3_x5_series/machine.make @@ -49,9 +49,6 @@ OPENSSL_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s6301_56st/machine.make b/machine/ufispace/ufispace_s6301_56st/machine.make index fec00b6b8..e7b8980e3 100755 --- a/machine/ufispace/ufispace_s6301_56st/machine.make +++ b/machine/ufispace/ufispace_s6301_56st/machine.make @@ -49,9 +49,6 @@ OPENSSL_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s6301_56stp/machine.make b/machine/ufispace/ufispace_s6301_56stp/machine.make index fec00b6b8..e7b8980e3 100755 --- a/machine/ufispace/ufispace_s6301_56stp/machine.make +++ b/machine/ufispace/ufispace_s6301_56stp/machine.make @@ -49,9 +49,6 @@ OPENSSL_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9110_32x/machine.make b/machine/ufispace/ufispace_s9110_32x/machine.make index 9a172513a..34c737ce7 100755 --- a/machine/ufispace/ufispace_s9110_32x/machine.make +++ b/machine/ufispace/ufispace_s9110_32x/machine.make @@ -50,9 +50,6 @@ OPENSSL_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9300_32d/machine.make b/machine/ufispace/ufispace_s9300_32d/machine.make index 0a766a619..713dfc593 100755 --- a/machine/ufispace/ufispace_s9300_32d/machine.make +++ b/machine/ufispace/ufispace_s9300_32d/machine.make @@ -45,9 +45,6 @@ IOACCESS_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9310_32d/machine.make b/machine/ufispace/ufispace_s9310_32d/machine.make index 9d22bcba9..6ab58abb2 100755 --- a/machine/ufispace/ufispace_s9310_32d/machine.make +++ b/machine/ufispace/ufispace_s9310_32d/machine.make @@ -45,9 +45,6 @@ IOACCESS_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9321_64e/machine.make b/machine/ufispace/ufispace_s9321_64e/machine.make index 7399c46c9..5840be59a 100755 --- a/machine/ufispace/ufispace_s9321_64e/machine.make +++ b/machine/ufispace/ufispace_s9321_64e/machine.make @@ -48,9 +48,6 @@ OPENSSL_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9500_22xst/machine.make b/machine/ufispace/ufispace_s9500_22xst/machine.make index b8fbdaad8..016fc6119 100755 --- a/machine/ufispace/ufispace_s9500_22xst/machine.make +++ b/machine/ufispace/ufispace_s9500_22xst/machine.make @@ -48,9 +48,6 @@ OPENSSL_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9500_30xs/machine.make b/machine/ufispace/ufispace_s9500_30xs/machine.make index 254149fda..06ea1d8b3 100755 --- a/machine/ufispace/ufispace_s9500_30xs/machine.make +++ b/machine/ufispace/ufispace_s9500_30xs/machine.make @@ -41,9 +41,6 @@ I2CTOOLS_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.1 -LINUX_MINOR_VERSION = 38 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9501_16smt/machine.make b/machine/ufispace/ufispace_s9501_16smt/machine.make index a408cf5a5..ff45c9145 100755 --- a/machine/ufispace/ufispace_s9501_16smt/machine.make +++ b/machine/ufispace/ufispace_s9501_16smt/machine.make @@ -47,9 +47,6 @@ EXTRA_CMDLINE_LINUX = earlycon=uart8250,io,0x3f8 acpi_osi="Linux" CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9501_18smt/machine.make b/machine/ufispace/ufispace_s9501_18smt/machine.make index a408cf5a5..ff45c9145 100755 --- a/machine/ufispace/ufispace_s9501_18smt/machine.make +++ b/machine/ufispace/ufispace_s9501_18smt/machine.make @@ -47,9 +47,6 @@ EXTRA_CMDLINE_LINUX = earlycon=uart8250,io,0x3f8 acpi_osi="Linux" CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9501_28smt/machine.make b/machine/ufispace/ufispace_s9501_28smt/machine.make index fce5f39a5..577809411 100755 --- a/machine/ufispace/ufispace_s9501_28smt/machine.make +++ b/machine/ufispace/ufispace_s9501_28smt/machine.make @@ -47,9 +47,6 @@ EXTRA_CMDLINE_LINUX = earlycon=uart8250,io,0x3f8 acpi_osi="Linux" CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9510_28dc/machine.make b/machine/ufispace/ufispace_s9510_28dc/machine.make index 8add6691e..46cde54c5 100755 --- a/machine/ufispace/ufispace_s9510_28dc/machine.make +++ b/machine/ufispace/ufispace_s9510_28dc/machine.make @@ -49,9 +49,6 @@ OPENSSL_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9510_30xc/machine.make b/machine/ufispace/ufispace_s9510_30xc/machine.make index 7753f5494..b41efcf26 100755 --- a/machine/ufispace/ufispace_s9510_30xc/machine.make +++ b/machine/ufispace/ufispace_s9510_30xc/machine.make @@ -49,9 +49,6 @@ OPENSSL_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9511_20ct/machine.make b/machine/ufispace/ufispace_s9511_20ct/machine.make index 0a307ce04..55aa8042a 100755 --- a/machine/ufispace/ufispace_s9511_20ct/machine.make +++ b/machine/ufispace/ufispace_s9511_20ct/machine.make @@ -50,9 +50,6 @@ OPENSSL_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9600_28dx/machine.make b/machine/ufispace/ufispace_s9600_28dx/machine.make index c45699dd6..9ca7619ce 100755 --- a/machine/ufispace/ufispace_s9600_28dx/machine.make +++ b/machine/ufispace/ufispace_s9600_28dx/machine.make @@ -45,9 +45,6 @@ IOACCESS_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9600_32x/machine.make b/machine/ufispace/ufispace_s9600_32x/machine.make index 3c346d215..b8424847a 100755 --- a/machine/ufispace/ufispace_s9600_32x/machine.make +++ b/machine/ufispace/ufispace_s9600_32x/machine.make @@ -45,9 +45,6 @@ IOACCESS_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9600_48x/machine.make b/machine/ufispace/ufispace_s9600_48x/machine.make index 3208f693d..ac1be3e8b 100755 --- a/machine/ufispace/ufispace_s9600_48x/machine.make +++ b/machine/ufispace/ufispace_s9600_48x/machine.make @@ -45,9 +45,6 @@ IOACCESS_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9600_56dx/machine.make b/machine/ufispace/ufispace_s9600_56dx/machine.make index d778a9bf8..c1d0e27cd 100755 --- a/machine/ufispace/ufispace_s9600_56dx/machine.make +++ b/machine/ufispace/ufispace_s9600_56dx/machine.make @@ -45,9 +45,6 @@ IOACCESS_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9600_64x/machine.make b/machine/ufispace/ufispace_s9600_64x/machine.make index 41d545445..90d4af870 100755 --- a/machine/ufispace/ufispace_s9600_64x/machine.make +++ b/machine/ufispace/ufispace_s9600_64x/machine.make @@ -45,9 +45,6 @@ IOACCESS_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9600_72xc/machine.make b/machine/ufispace/ufispace_s9600_72xc/machine.make index 4b4eb0e65..e81034d43 100755 --- a/machine/ufispace/ufispace_s9600_72xc/machine.make +++ b/machine/ufispace/ufispace_s9600_72xc/machine.make @@ -45,9 +45,6 @@ IOACCESS_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9601_104bc/machine.make b/machine/ufispace/ufispace_s9601_104bc/machine.make index 29e5e6684..d3123dc6e 100755 --- a/machine/ufispace/ufispace_s9601_104bc/machine.make +++ b/machine/ufispace/ufispace_s9601_104bc/machine.make @@ -49,9 +49,6 @@ OPENSSL_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9700_23d/machine.make b/machine/ufispace/ufispace_s9700_23d/machine.make index 8b8e4fa0a..6b7845d46 100755 --- a/machine/ufispace/ufispace_s9700_23d/machine.make +++ b/machine/ufispace/ufispace_s9700_23d/machine.make @@ -48,9 +48,6 @@ OPENSSL_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9700_53dx/machine.make b/machine/ufispace/ufispace_s9700_53dx/machine.make index 6df9ad42e..f6898fb1b 100755 --- a/machine/ufispace/ufispace_s9700_53dx/machine.make +++ b/machine/ufispace/ufispace_s9700_53dx/machine.make @@ -48,9 +48,6 @@ OPENSSL_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9701_78dc/machine.make b/machine/ufispace/ufispace_s9701_78dc/machine.make index 724178a90..4f27a03a3 100755 --- a/machine/ufispace/ufispace_s9701_78dc/machine.make +++ b/machine/ufispace/ufispace_s9701_78dc/machine.make @@ -45,9 +45,6 @@ IOACCESS_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9701_82dc/machine.make b/machine/ufispace/ufispace_s9701_82dc/machine.make index ce253db5d..da00b2934 100755 --- a/machine/ufispace/ufispace_s9701_82dc/machine.make +++ b/machine/ufispace/ufispace_s9701_82dc/machine.make @@ -45,9 +45,6 @@ IOACCESS_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9705_48d/machine.make b/machine/ufispace/ufispace_s9705_48d/machine.make index bfe997a01..51dad2f9e 100755 --- a/machine/ufispace/ufispace_s9705_48d/machine.make +++ b/machine/ufispace/ufispace_s9705_48d/machine.make @@ -48,9 +48,6 @@ OPENSSL_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_s9720_56ed/machine.make b/machine/ufispace/ufispace_s9720_56ed/machine.make index 057022372..a5841fee3 100755 --- a/machine/ufispace/ufispace_s9720_56ed/machine.make +++ b/machine/ufispace/ufispace_s9720_56ed/machine.make @@ -48,9 +48,6 @@ OPENSSL_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_skl_ncplite_series/machine.make b/machine/ufispace/ufispace_skl_ncplite_series/machine.make index fcde23bfa..f625fc93a 100755 --- a/machine/ufispace/ufispace_skl_ncplite_series/machine.make +++ b/machine/ufispace/ufispace_skl_ncplite_series/machine.make @@ -48,9 +48,6 @@ OPENSSL_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/ufispace/ufispace_skl_nighthawk_series/machine.make b/machine/ufispace/ufispace_skl_nighthawk_series/machine.make index 049dc5dd3..743d1dee5 100755 --- a/machine/ufispace/ufispace_skl_nighthawk_series/machine.make +++ b/machine/ufispace/ufispace_skl_nighthawk_series/machine.make @@ -48,9 +48,6 @@ OPENSSL_ENABLE = yes CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 -# Set Linux kernel version -LINUX_VERSION = 5.4 -LINUX_MINOR_VERSION = 86 #------------------------------------------------------------------------------- diff --git a/machine/wnc/wnc_rseb_w1_32/machine.make b/machine/wnc/wnc_rseb_w1_32/machine.make index 559470575..4d4a3a251 100644 --- a/machine/wnc/wnc_rseb_w1_32/machine.make +++ b/machine/wnc/wnc_rseb_w1_32/machine.make @@ -31,9 +31,6 @@ CONSOLE_SPEED = 115200 CONSOLE_DEV = 0 UEFI_ENABLE = yes -# Specify Linux kernel version -- comment out to use the default -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 EXTRA_CMDLINE_LINUX = acpi_osi=Linux From 8e80bcfb8ce2854599f3534fb79d9e0fe19c07da Mon Sep 17 00:00:00 2001 From: Brad House Date: Thu, 4 Jun 2026 00:26:07 +0000 Subject: [PATCH 4/5] machines: pin celestica cls_ds4101 kernel to 5.4.86 cls_ds4101 carries kernel patches (cls-lpc-basecpld, enable-kernel-spcr) but pinned no kernel version, so it floated on the default. The toolchain milestone bumped the default to 6.18 LTS, which its older patches do not apply to. Pin it to 5.4.86 -- the prior default it was already building against -- so this change is a no-op for the platform. Whether it still builds on the modern toolchain is its owner's concern; this only avoids us silently moving it off its kernel. Signed-off-by: Brad House --- machine/celestica/cls_ds4101/machine.make | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/machine/celestica/cls_ds4101/machine.make b/machine/celestica/cls_ds4101/machine.make index dace63b18..0989e21c7 100644 --- a/machine/celestica/cls_ds4101/machine.make +++ b/machine/celestica/cls_ds4101/machine.make @@ -101,8 +101,11 @@ CONSOLE_DEV = 0 # Include additional files in the installer image. This is useful to # share code between the ONIE run-time and the installer. UPDATER_IMAGE_PARTS_PLATFORM = $(MACHINEDIR)/rootconf/sysroot-lib-onie/test-install-sharing -#LINUX_VERSION = 4.9 -#LINUX_MINOR_VERSION = 95 +# This platform carries kernel patches written against the previous default +# kernel, so pin it there explicitly (no behavior change) instead of letting +# it float onto a newer default its patches would not apply to. +LINUX_VERSION = 5.4 +LINUX_MINOR_VERSION = 86 # Secure GRUB requires Secure Boot extensions ifeq ($(SECURE_GRUB),yes) From 84e24aa14bbc8758cc1741462745cde9bec565fe Mon Sep 17 00:00:00 2001 From: Brad House Date: Thu, 4 Jun 2026 04:53:09 +0000 Subject: [PATCH 5/5] machines: replace Intel-SCH config-aggregator kernel patches with direct configs Nine x86 platforms (the Dell C2xxx/S-series family + agema_ag7648c) each carried a kernel patch whose sole purpose was to add a platform Kconfig symbol that select()ed a fixed set of standard Intel SoC options (I2C_ISCH, I2C_ISMT, GPIO_SCH, MFD_CORE, LPC_SCH) with no driver code. Replace each with those CONFIG_* set directly in the machine kernel config and drop the patch. The aggregator was each platform's only kernel patch, so with it gone they carry no version-bound kernel code: drop their LINUX_VERSION pins too and let them ride the default kernel (6.18 LTS, which builds under GCC 14). The five options were verified to survive `make olddefconfig` against the 6.18 base config. Signed-off-by: Brad House --- machine/agema/agema_ag7648c/kernel/config | 6 +++- .../kernel/platform-agema-ag7648c.patch | 24 -------------- machine/agema/agema_ag7648c/kernel/series | 1 - machine/agema/agema_ag7648c/machine.make | 3 -- machine/dell/dell_s3000_c2338/kernel/config | 6 +++- .../kernel/platform-dell-s3000-c2338.patch | 24 -------------- machine/dell/dell_s3000_c2338/kernel/series | 1 - machine/dell/dell_s3000_c2338/machine.make | 3 -- machine/dell/dell_s4000_c2338/kernel/config | 6 +++- .../kernel/platform-dell-s4000-c2338.patch | 24 -------------- machine/dell/dell_s4000_c2338/kernel/series | 1 - machine/dell/dell_s4000_c2338/machine.make | 3 -- machine/dell/dell_s4048t_c2338/kernel/config | 6 +++- .../kernel/platform-dell-s4048t-c2338.patch | 24 -------------- machine/dell/dell_s4048t_c2338/kernel/series | 1 - machine/dell/dell_s4048t_c2338/machine.make | 3 -- machine/dell/dell_s6010_c2538/kernel/config | 6 +++- .../kernel/platform-dell-s6010-c2538.patch | 24 -------------- machine/dell/dell_s6010_c2538/kernel/series | 1 - machine/dell/dell_s6010_c2538/machine.make | 3 -- machine/dell/dell_s6100_c2538/kernel/config | 6 +++- .../kernel/platform-dell-s6100-c2538.patch | 24 -------------- machine/dell/dell_s6100_c2538/kernel/series | 1 - machine/dell/dell_s6100_c2538/machine.make | 3 -- machine/dell/dell_z9100_c2538/kernel/config | 6 +++- .../kernel/platform-dell-z9100-c2538.patch | 24 -------------- machine/dell/dell_z9100_c2538/kernel/series | 1 - machine/dell/dell_z9100_c2538/machine.make | 3 -- .../dell/dellemc_s4100_c2338/kernel/config | 6 +++- .../kernel/platform-dellemc-s4100-c2338.patch | 32 ------------------- .../dell/dellemc_s4100_c2338/kernel/series | 1 - machine/dell/dellemc_s4100_c2338/machine.make | 3 -- .../dell/dellemc_s5100_c2538/kernel/config | 6 +++- .../kernel/platform-dellemc-s5100-c2538.patch | 32 ------------------- .../dell/dellemc_s5100_c2538/kernel/series | 1 - machine/dell/dellemc_s5100_c2538/machine.make | 3 -- 36 files changed, 45 insertions(+), 277 deletions(-) delete mode 100644 machine/agema/agema_ag7648c/kernel/platform-agema-ag7648c.patch delete mode 100644 machine/dell/dell_s3000_c2338/kernel/platform-dell-s3000-c2338.patch delete mode 100644 machine/dell/dell_s4000_c2338/kernel/platform-dell-s4000-c2338.patch delete mode 100644 machine/dell/dell_s4048t_c2338/kernel/platform-dell-s4048t-c2338.patch delete mode 100644 machine/dell/dell_s6010_c2538/kernel/platform-dell-s6010-c2538.patch delete mode 100644 machine/dell/dell_s6100_c2538/kernel/platform-dell-s6100-c2538.patch delete mode 100644 machine/dell/dell_z9100_c2538/kernel/platform-dell-z9100-c2538.patch delete mode 100644 machine/dell/dellemc_s4100_c2338/kernel/platform-dellemc-s4100-c2338.patch delete mode 100644 machine/dell/dellemc_s5100_c2538/kernel/platform-dellemc-s5100-c2538.patch diff --git a/machine/agema/agema_ag7648c/kernel/config b/machine/agema/agema_ag7648c/kernel/config index 2b755f17b..62415f2d7 100644 --- a/machine/agema/agema_ag7648c/kernel/config +++ b/machine/agema/agema_ag7648c/kernel/config @@ -1 +1,5 @@ -CONFIG_AGEMA_AG7648C=y +CONFIG_I2C_ISCH=y +CONFIG_I2C_ISMT=y +CONFIG_GPIO_SCH=y +CONFIG_MFD_CORE=y +CONFIG_LPC_SCH=y diff --git a/machine/agema/agema_ag7648c/kernel/platform-agema-ag7648c.patch b/machine/agema/agema_ag7648c/kernel/platform-agema-ag7648c.patch deleted file mode 100644 index 9d9c764e6..000000000 --- a/machine/agema/agema_ag7648c/kernel/platform-agema-ag7648c.patch +++ /dev/null @@ -1,24 +0,0 @@ -Platform support for the AGEMA AG7648C - -diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig -index 7f43cf8..b1acf68 100644 ---- a/drivers/platform/x86/Kconfig -+++ b/drivers/platform/x86/Kconfig -@@ -779,4 +779,17 @@ config SAMSUNG_Q10 - This driver provides support for backlight control on Samsung Q10 - and related laptops, including Dell Latitude X200. - -+config AGEMA_AG7648C -+ tristate "AGEMA AG7648C Platform Support" -+ depends on X86 && PCI -+ select I2C_ISCH -+ select I2C_ISMT -+ select GPIO_SCH -+ select MFD_CORE -+ select LPC_SCH -+ ---help--- -+ Enable support for AGEMA AG7648C switching platform. This -+ platform has a C2338 Atom (Rangeley) CPU module, a Broadcom -+ Trident2/Trident2+ switch ASIC. It has 48x10G Copper and 6x40G QSFP ports. -+ - endif # X86_PLATFORM_DEVICES diff --git a/machine/agema/agema_ag7648c/kernel/series b/machine/agema/agema_ag7648c/kernel/series index ef9b44227..e69de29bb 100644 --- a/machine/agema/agema_ag7648c/kernel/series +++ b/machine/agema/agema_ag7648c/kernel/series @@ -1 +0,0 @@ -platform-agema-ag7648c.patch diff --git a/machine/agema/agema_ag7648c/machine.make b/machine/agema/agema_ag7648c/machine.make index e1c265c56..06289d43e 100644 --- a/machine/agema/agema_ag7648c/machine.make +++ b/machine/agema/agema_ag7648c/machine.make @@ -31,9 +31,6 @@ CONSOLE_FLAG = 0 EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 acpi=off dhcp=eth0 -# Set Linux kernel version -LINUX_VERSION = 3.2 -LINUX_MINOR_VERSION = 69 #------------------------------------------------------------------------------- diff --git a/machine/dell/dell_s3000_c2338/kernel/config b/machine/dell/dell_s3000_c2338/kernel/config index 2f37f46ea..62415f2d7 100644 --- a/machine/dell/dell_s3000_c2338/kernel/config +++ b/machine/dell/dell_s3000_c2338/kernel/config @@ -1 +1,5 @@ -CONFIG_DELL_S3000_C2338=y +CONFIG_I2C_ISCH=y +CONFIG_I2C_ISMT=y +CONFIG_GPIO_SCH=y +CONFIG_MFD_CORE=y +CONFIG_LPC_SCH=y diff --git a/machine/dell/dell_s3000_c2338/kernel/platform-dell-s3000-c2338.patch b/machine/dell/dell_s3000_c2338/kernel/platform-dell-s3000-c2338.patch deleted file mode 100644 index 9b3f2e8f2..000000000 --- a/machine/dell/dell_s3000_c2338/kernel/platform-dell-s3000-c2338.patch +++ /dev/null @@ -1,24 +0,0 @@ -Platform support for the DELL S3000 with the Rangeley C2338 CPU module - -diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig -index 7f43cf8..b1acf68 100644 ---- a/drivers/platform/x86/Kconfig -+++ b/drivers/platform/x86/Kconfig -@@ -779,4 +779,17 @@ config SAMSUNG_Q10 - This driver provides support for backlight control on Samsung Q10 - and related laptops, including Dell Latitude X200. - -+config DELL_S3000_C2338 -+ tristate "DELL S3000_C2338 Platform Support" -+ depends on X86 && PCI -+ select I2C_ISCH -+ select I2C_ISMT -+ select GPIO_SCH -+ select MFD_CORE -+ select LPC_SCH -+ ---help--- -+ Enable support for DELL S3000 switching platform. This -+ platform has a C2338 Atom (Rangeley) CPU module, a Broadcom -+ Helix4 switch ASIC. It has 48x10/100/1000M RJ45 and 4x10G SFP+ ports. -+ - endif # X86_PLATFORM_DEVICES diff --git a/machine/dell/dell_s3000_c2338/kernel/series b/machine/dell/dell_s3000_c2338/kernel/series index 309f933fe..e69de29bb 100644 --- a/machine/dell/dell_s3000_c2338/kernel/series +++ b/machine/dell/dell_s3000_c2338/kernel/series @@ -1 +0,0 @@ -platform-dell-s3000-c2338.patch diff --git a/machine/dell/dell_s3000_c2338/machine.make b/machine/dell/dell_s3000_c2338/machine.make index 8a65a3f47..99119ebdc 100644 --- a/machine/dell/dell_s3000_c2338/machine.make +++ b/machine/dell/dell_s3000_c2338/machine.make @@ -31,9 +31,6 @@ CONSOLE_FLAG = 0 EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 -# Set Linux kernel version -LINUX_VERSION = 3.2 -LINUX_MINOR_VERSION = 69 #------------------------------------------------------------------------------- diff --git a/machine/dell/dell_s4000_c2338/kernel/config b/machine/dell/dell_s4000_c2338/kernel/config index 1ae157b40..62415f2d7 100644 --- a/machine/dell/dell_s4000_c2338/kernel/config +++ b/machine/dell/dell_s4000_c2338/kernel/config @@ -1 +1,5 @@ -CONFIG_DELL_S4000_C2338=y +CONFIG_I2C_ISCH=y +CONFIG_I2C_ISMT=y +CONFIG_GPIO_SCH=y +CONFIG_MFD_CORE=y +CONFIG_LPC_SCH=y diff --git a/machine/dell/dell_s4000_c2338/kernel/platform-dell-s4000-c2338.patch b/machine/dell/dell_s4000_c2338/kernel/platform-dell-s4000-c2338.patch deleted file mode 100644 index 030cd9b4c..000000000 --- a/machine/dell/dell_s4000_c2338/kernel/platform-dell-s4000-c2338.patch +++ /dev/null @@ -1,24 +0,0 @@ -Platform support for the DELL S4000 with the Rangeley C2338 CPU module - -diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig -index 7f43cf8..b1acf68 100644 ---- a/drivers/platform/x86/Kconfig -+++ b/drivers/platform/x86/Kconfig -@@ -779,4 +779,17 @@ config SAMSUNG_Q10 - This driver provides support for backlight control on Samsung Q10 - and related laptops, including Dell Latitude X200. - -+config DELL_S4000_C2338 -+ tristate "DELL S4000_C2338 Platform Support" -+ depends on X86 && PCI -+ select I2C_ISCH -+ select I2C_ISMT -+ select GPIO_SCH -+ select MFD_CORE -+ select LPC_SCH -+ ---help--- -+ Enable support for DELL S4000 switching platform. This -+ platform has a C2338 Atom (Rangeley) CPU module, a Broadcom -+ Trident2 switch ASIC. It has 48x10G SFP+ and 6x40G QSFP ports. -+ - endif # X86_PLATFORM_DEVICES diff --git a/machine/dell/dell_s4000_c2338/kernel/series b/machine/dell/dell_s4000_c2338/kernel/series index ff9fbc14c..e69de29bb 100644 --- a/machine/dell/dell_s4000_c2338/kernel/series +++ b/machine/dell/dell_s4000_c2338/kernel/series @@ -1 +0,0 @@ -platform-dell-s4000-c2338.patch diff --git a/machine/dell/dell_s4000_c2338/machine.make b/machine/dell/dell_s4000_c2338/machine.make index f38735cb5..857e98575 100644 --- a/machine/dell/dell_s4000_c2338/machine.make +++ b/machine/dell/dell_s4000_c2338/machine.make @@ -31,9 +31,6 @@ CONSOLE_FLAG = 0 EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 -# Set Linux kernel version -LINUX_VERSION = 3.2 -LINUX_MINOR_VERSION = 69 #------------------------------------------------------------------------------- diff --git a/machine/dell/dell_s4048t_c2338/kernel/config b/machine/dell/dell_s4048t_c2338/kernel/config index 63be8bb3a..62415f2d7 100644 --- a/machine/dell/dell_s4048t_c2338/kernel/config +++ b/machine/dell/dell_s4048t_c2338/kernel/config @@ -1 +1,5 @@ -CONFIG_DELL_S4048T_C2338=y +CONFIG_I2C_ISCH=y +CONFIG_I2C_ISMT=y +CONFIG_GPIO_SCH=y +CONFIG_MFD_CORE=y +CONFIG_LPC_SCH=y diff --git a/machine/dell/dell_s4048t_c2338/kernel/platform-dell-s4048t-c2338.patch b/machine/dell/dell_s4048t_c2338/kernel/platform-dell-s4048t-c2338.patch deleted file mode 100644 index 7c37a0a77..000000000 --- a/machine/dell/dell_s4048t_c2338/kernel/platform-dell-s4048t-c2338.patch +++ /dev/null @@ -1,24 +0,0 @@ -Platform support for the DELL S4048T with the Rangeley C2338 CPU module - -diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig -index 7f43cf8..b1acf68 100644 ---- a/drivers/platform/x86/Kconfig -+++ b/drivers/platform/x86/Kconfig -@@ -779,4 +779,17 @@ config SAMSUNG_Q10 - This driver provides support for backlight control on Samsung Q10 - and related laptops, including Dell Latitude X200. - -+config DELL_S4048T_C2338 -+ tristate "DELL S4048T_C2338 Platform Support" -+ depends on X86 && PCI -+ select I2C_ISCH -+ select I2C_ISMT -+ select GPIO_SCH -+ select MFD_CORE -+ select LPC_SCH -+ ---help--- -+ Enable support for DELL S4048T switching platform. This -+ platform has a C2338 Atom (Rangeley) CPU module, a Broadcom -+ BCM56864 switch ASIC. It has 48x10G 10gbase-t ports and 6x40G QSFP ports. -+ - endif # X86_PLATFORM_DEVICES diff --git a/machine/dell/dell_s4048t_c2338/kernel/series b/machine/dell/dell_s4048t_c2338/kernel/series index 36e0d5a72..e69de29bb 100644 --- a/machine/dell/dell_s4048t_c2338/kernel/series +++ b/machine/dell/dell_s4048t_c2338/kernel/series @@ -1 +0,0 @@ -platform-dell-s4048t-c2338.patch diff --git a/machine/dell/dell_s4048t_c2338/machine.make b/machine/dell/dell_s4048t_c2338/machine.make index 6a6eed7ef..7c65c60e6 100644 --- a/machine/dell/dell_s4048t_c2338/machine.make +++ b/machine/dell/dell_s4048t_c2338/machine.make @@ -28,9 +28,6 @@ CONSOLE_FLAG = 0 EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 -# Set Linux kernel version -LINUX_VERSION = 3.2 -LINUX_MINOR_VERSION = 69 #------------------------------------------------------------------------------- diff --git a/machine/dell/dell_s6010_c2538/kernel/config b/machine/dell/dell_s6010_c2538/kernel/config index ad8201520..62415f2d7 100644 --- a/machine/dell/dell_s6010_c2538/kernel/config +++ b/machine/dell/dell_s6010_c2538/kernel/config @@ -1 +1,5 @@ -CONFIG_DELL_S6010_C2538=y +CONFIG_I2C_ISCH=y +CONFIG_I2C_ISMT=y +CONFIG_GPIO_SCH=y +CONFIG_MFD_CORE=y +CONFIG_LPC_SCH=y diff --git a/machine/dell/dell_s6010_c2538/kernel/platform-dell-s6010-c2538.patch b/machine/dell/dell_s6010_c2538/kernel/platform-dell-s6010-c2538.patch deleted file mode 100644 index 5e1b313ac..000000000 --- a/machine/dell/dell_s6010_c2538/kernel/platform-dell-s6010-c2538.patch +++ /dev/null @@ -1,24 +0,0 @@ -Platform support for the DELL S6010 with the Rangeley C2538 CPU module - -diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig -index 7f43cf8..b1acf68 100644 ---- a/drivers/platform/x86/Kconfig -+++ b/drivers/platform/x86/Kconfig -@@ -779,4 +779,17 @@ config SAMSUNG_Q10 - This driver provides support for backlight control on Samsung Q10 - and related laptops, including Dell Latitude X200. - -+config DELL_S6010_C2538 -+ tristate "DELL S6010_C2538 Platform Support" -+ depends on X86 && PCI -+ select I2C_ISCH -+ select I2C_ISMT -+ select GPIO_SCH -+ select MFD_CORE -+ select LPC_SCH -+ ---help--- -+ Enable support for DELL S6010 switching platform. This -+ platform has a C2538 Atom (Rangeley) CPU module, a Broadcom -+ BCM56860 switch ASIC. It has 32x40G QSFP+ ports. -+ - endif # X86_PLATFORM_DEVICES diff --git a/machine/dell/dell_s6010_c2538/kernel/series b/machine/dell/dell_s6010_c2538/kernel/series index bba7db648..e69de29bb 100644 --- a/machine/dell/dell_s6010_c2538/kernel/series +++ b/machine/dell/dell_s6010_c2538/kernel/series @@ -1 +0,0 @@ -platform-dell-s6010-c2538.patch diff --git a/machine/dell/dell_s6010_c2538/machine.make b/machine/dell/dell_s6010_c2538/machine.make index 1e5bf2d49..6274e29ca 100644 --- a/machine/dell/dell_s6010_c2538/machine.make +++ b/machine/dell/dell_s6010_c2538/machine.make @@ -28,9 +28,6 @@ CONSOLE_FLAG = 0 EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 -# Set Linux kernel version -LINUX_VERSION = 3.2 -LINUX_MINOR_VERSION = 69 #------------------------------------------------------------------------------- diff --git a/machine/dell/dell_s6100_c2538/kernel/config b/machine/dell/dell_s6100_c2538/kernel/config index 6f0f108fb..62415f2d7 100644 --- a/machine/dell/dell_s6100_c2538/kernel/config +++ b/machine/dell/dell_s6100_c2538/kernel/config @@ -1 +1,5 @@ -CONFIG_DELL_S6100_C2538=y +CONFIG_I2C_ISCH=y +CONFIG_I2C_ISMT=y +CONFIG_GPIO_SCH=y +CONFIG_MFD_CORE=y +CONFIG_LPC_SCH=y diff --git a/machine/dell/dell_s6100_c2538/kernel/platform-dell-s6100-c2538.patch b/machine/dell/dell_s6100_c2538/kernel/platform-dell-s6100-c2538.patch deleted file mode 100644 index fad850018..000000000 --- a/machine/dell/dell_s6100_c2538/kernel/platform-dell-s6100-c2538.patch +++ /dev/null @@ -1,24 +0,0 @@ -Platform support for the DELL S6100 with the Rangeley C2538 CPU module - -diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig -index 7f43cf8..b1acf68 100644 ---- a/drivers/platform/x86/Kconfig -+++ b/drivers/platform/x86/Kconfig -@@ -779,4 +779,17 @@ config SAMSUNG_Q10 - This driver provides support for backlight control on Samsung Q10 - and related laptops, including Dell Latitude X200. - -+config DELL_S6100_C2538 -+ tristate "DELL S6100_C2538 Platform Support" -+ depends on X86 && PCI -+ select I2C_ISCH -+ select I2C_ISMT -+ select GPIO_SCH -+ select MFD_CORE -+ select LPC_SCH -+ ---help--- -+ Enable support for DELL S6100 switching platform. This -+ platform has a C2538 Atom (Rangeley) CPU module, a Broadcom -+ Tomahawk switch ASIC. It can support 32x100G or 64X40G ports. -+ - endif # X86_PLATFORM_DEVICES diff --git a/machine/dell/dell_s6100_c2538/kernel/series b/machine/dell/dell_s6100_c2538/kernel/series index 19514a1d9..e69de29bb 100644 --- a/machine/dell/dell_s6100_c2538/kernel/series +++ b/machine/dell/dell_s6100_c2538/kernel/series @@ -1 +0,0 @@ -platform-dell-s6100-c2538.patch diff --git a/machine/dell/dell_s6100_c2538/machine.make b/machine/dell/dell_s6100_c2538/machine.make index 9d8fff7c1..367f4d5eb 100644 --- a/machine/dell/dell_s6100_c2538/machine.make +++ b/machine/dell/dell_s6100_c2538/machine.make @@ -29,9 +29,6 @@ CONSOLE_SPEED = 115200 CONSOLE_DEV = 1 CONSOLE_FLAG = 0 -# Set Linux kernel version -LINUX_VERSION = 3.2 -LINUX_MINOR_VERSION = 69 EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 diff --git a/machine/dell/dell_z9100_c2538/kernel/config b/machine/dell/dell_z9100_c2538/kernel/config index c9590fcf1..538d9556f 100644 --- a/machine/dell/dell_z9100_c2538/kernel/config +++ b/machine/dell/dell_z9100_c2538/kernel/config @@ -1,2 +1,6 @@ -CONFIG_DELL_Z9100_C2538=y +CONFIG_I2C_ISCH=y +CONFIG_I2C_ISMT=y +CONFIG_GPIO_SCH=y +CONFIG_MFD_CORE=y +CONFIG_LPC_SCH=y CONFIG_STRICT_DEVMEM=y diff --git a/machine/dell/dell_z9100_c2538/kernel/platform-dell-z9100-c2538.patch b/machine/dell/dell_z9100_c2538/kernel/platform-dell-z9100-c2538.patch deleted file mode 100644 index 581b4f6de..000000000 --- a/machine/dell/dell_z9100_c2538/kernel/platform-dell-z9100-c2538.patch +++ /dev/null @@ -1,24 +0,0 @@ -Platform support for the DELL Z9100 with the Rangeley C2538 CPU module - -diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig -index 7f43cf8..b1acf68 100644 ---- a/drivers/platform/x86/Kconfig -+++ b/drivers/platform/x86/Kconfig -@@ -779,4 +779,17 @@ config SAMSUNG_Q10 - This driver provides support for backlight control on Samsung Q10 - and related laptops, including Dell Latitude X200. - -+config DELL_Z9100_C2538 -+ tristate "DELL Z9100_C2538 Platform Support" -+ depends on X86 && PCI -+ select I2C_ISCH -+ select I2C_ISMT -+ select GPIO_SCH -+ select MFD_CORE -+ select LPC_SCH -+ ---help--- -+ Enable support for DELL Z9100 switching platform. This -+ platform has a C2538 Atom (Rangeley) CPU module, a Broadcom -+ Tomahawk switch ASIC. It has 32x100G ports. -+ - endif # X86_PLATFORM_DEVICES diff --git a/machine/dell/dell_z9100_c2538/kernel/series b/machine/dell/dell_z9100_c2538/kernel/series index cb3f5bb9d..e69de29bb 100644 --- a/machine/dell/dell_z9100_c2538/kernel/series +++ b/machine/dell/dell_z9100_c2538/kernel/series @@ -1 +0,0 @@ -platform-dell-z9100-c2538.patch diff --git a/machine/dell/dell_z9100_c2538/machine.make b/machine/dell/dell_z9100_c2538/machine.make index a2c253ae9..726af520f 100644 --- a/machine/dell/dell_z9100_c2538/machine.make +++ b/machine/dell/dell_z9100_c2538/machine.make @@ -31,9 +31,6 @@ CONSOLE_FLAG = 0 EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 -# Set Linux kernel version -LINUX_VERSION = 3.2 -LINUX_MINOR_VERSION = 69 #------------------------------------------------------------------------------- diff --git a/machine/dell/dellemc_s4100_c2338/kernel/config b/machine/dell/dellemc_s4100_c2338/kernel/config index a29edb962..62415f2d7 100644 --- a/machine/dell/dellemc_s4100_c2338/kernel/config +++ b/machine/dell/dellemc_s4100_c2338/kernel/config @@ -1 +1,5 @@ -CONFIG_DELLEMC_S4100_C2338=y +CONFIG_I2C_ISCH=y +CONFIG_I2C_ISMT=y +CONFIG_GPIO_SCH=y +CONFIG_MFD_CORE=y +CONFIG_LPC_SCH=y diff --git a/machine/dell/dellemc_s4100_c2338/kernel/platform-dellemc-s4100-c2338.patch b/machine/dell/dellemc_s4100_c2338/kernel/platform-dellemc-s4100-c2338.patch deleted file mode 100644 index 0dd2843c4..000000000 --- a/machine/dell/dellemc_s4100_c2338/kernel/platform-dellemc-s4100-c2338.patch +++ /dev/null @@ -1,32 +0,0 @@ -Platform support for the DELL EMC S4100 with the Rangeley C2338 CPU module - -From: Lakesh Sharma - - ---- - drivers/platform/x86/Kconfig | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig -index b8a21d7..c19fb92 100644 ---- a/drivers/platform/x86/Kconfig -+++ b/drivers/platform/x86/Kconfig -@@ -1027,4 +1027,18 @@ config INTEL_TELEMETRY - used to get various SoC events and parameters - directly via debugfs files. Various tools may use - this interface for SoC state monitoring. -+ -+config DELLEMC_S4100_C2338 -+ tristate "DELL EMC S4100_C2338 Platform Support" -+ depends on X86 && PCI -+ select I2C_ISCH -+ select I2C_ISMT -+ select GPIO_SCH -+ select MFD_CORE -+ select LPC_SCH -+ ---help--- -+ Enable support for DELL EMC S4100 switching platform. This -+ platform has a C2338 Atom (Rangeley) CPU module and Broadcom -+ BCM56760A/BCM56762A as switch ASIC. -+ - endif # X86_PLATFORM_DEVICES diff --git a/machine/dell/dellemc_s4100_c2338/kernel/series b/machine/dell/dellemc_s4100_c2338/kernel/series index 3aa62598f..e69de29bb 100644 --- a/machine/dell/dellemc_s4100_c2338/kernel/series +++ b/machine/dell/dellemc_s4100_c2338/kernel/series @@ -1 +0,0 @@ -platform-dellemc-s4100-c2338.patch diff --git a/machine/dell/dellemc_s4100_c2338/machine.make b/machine/dell/dellemc_s4100_c2338/machine.make index dc4f199cd..dc0261ff3 100644 --- a/machine/dell/dellemc_s4100_c2338/machine.make +++ b/machine/dell/dellemc_s4100_c2338/machine.make @@ -29,9 +29,6 @@ EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 # Enable UEFI support UEFI_ENABLE = yes -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 #------------------------------------------------------------------------------- # diff --git a/machine/dell/dellemc_s5100_c2538/kernel/config b/machine/dell/dellemc_s5100_c2538/kernel/config index aef9618ee..62415f2d7 100644 --- a/machine/dell/dellemc_s5100_c2538/kernel/config +++ b/machine/dell/dellemc_s5100_c2538/kernel/config @@ -1 +1,5 @@ -CONFIG_DELLEMC_S5100_C2538=y +CONFIG_I2C_ISCH=y +CONFIG_I2C_ISMT=y +CONFIG_GPIO_SCH=y +CONFIG_MFD_CORE=y +CONFIG_LPC_SCH=y diff --git a/machine/dell/dellemc_s5100_c2538/kernel/platform-dellemc-s5100-c2538.patch b/machine/dell/dellemc_s5100_c2538/kernel/platform-dellemc-s5100-c2538.patch deleted file mode 100644 index 1deb5de0e..000000000 --- a/machine/dell/dellemc_s5100_c2538/kernel/platform-dellemc-s5100-c2538.patch +++ /dev/null @@ -1,32 +0,0 @@ -Platform support for the DELL EMC S5100 with the Rangeley C2538 CPU module - -From: Lakesh Sharma - - ---- - drivers/platform/x86/Kconfig | 14 ++++++++++++++ - 1 file changed, 14 insertions(+) - -diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig -index b8a21d7..c19fb92 100644 ---- a/drivers/platform/x86/Kconfig -+++ b/drivers/platform/x86/Kconfig -@@ -1027,4 +1027,18 @@ config INTEL_TELEMETRY - used to get various SoC events and parameters - directly via debugfs files. Various tools may use - this interface for SoC state monitoring. -+ -+config DELLEMC_S5100_C2538 -+ tristate "DELL EMC S5100_C2538 Platform Support" -+ depends on X86 && PCI -+ select I2C_ISCH -+ select I2C_ISMT -+ select GPIO_SCH -+ select MFD_CORE -+ select LPC_SCH -+ ---help--- -+ Enable support for DELL EMC S5100 switching platform. This -+ platform has a C2538 Atom (Rangeley) CPU module and a Cavium -+ Xp70 switch ASIC. It has 48x10G/25G and 6x40G/100G ports. -+ - endif # X86_PLATFORM_DEVICES diff --git a/machine/dell/dellemc_s5100_c2538/kernel/series b/machine/dell/dellemc_s5100_c2538/kernel/series index 401df5b0f..e69de29bb 100644 --- a/machine/dell/dellemc_s5100_c2538/kernel/series +++ b/machine/dell/dellemc_s5100_c2538/kernel/series @@ -1 +0,0 @@ -platform-dellemc-s5100-c2538.patch diff --git a/machine/dell/dellemc_s5100_c2538/machine.make b/machine/dell/dellemc_s5100_c2538/machine.make index 809b17f42..7926f7381 100644 --- a/machine/dell/dellemc_s5100_c2538/machine.make +++ b/machine/dell/dellemc_s5100_c2538/machine.make @@ -28,9 +28,6 @@ CONSOLE_FLAG = 0 EXTRA_CMDLINE_LINUX = i2c-ismt.bus_speed=100 -# Set Linux kernel version -LINUX_VERSION = 4.9 -LINUX_MINOR_VERSION = 95 # Enable UEFI support UEFI_ENABLE = yes

N?Q>HDnRoPBN@$m)c2vC^I5=}Kdnf2RhCbo{DUXh -zgZ$0UTk3xu#Q(<=nN(Flxnb73>(KdcE9N`No9Vy#9M<4zRK%3pALM%qwyi)l*b#3r -z_CLuzVOWseOrT+Y^+9bEoqNHXIBBTIdC?G)Q<9^rv -zDfYWtN5b8V{KL=XciT3IYT%dwtk4@S*U`S2u|TrcNz|x!M62{Fifg>zNB{dax5)7i -ziM-m6r8t+*w&VBKy0o(;#-d>|Jhzqf<@@tq`f(Qm43Fj!}gB%$poGdZ~J5+TyMw{#%+6YNI+)vTI3 -z+y0%sd)OQ3?PpVesukBU6M0`u2uvin(s6GrYA3%^ZuIhlXTbiVgFBlI1tu6H&=Q3o -z5}TYdx@Fsx&!lw9PH!t*+D+9)N0N?c%XY*4F$=7>)J;I=eMZ37V_A>e@3eLr-quOs -zwfTlaUc15g5hsT|J&t6sN4qxbdCslKm#?aKX7r(X-_oUaa-q?Dn7-|=~V*CR?j*K7uLaBC!!uIqjrIW08on`xL -zPGpqc6{n4xNF+ezQ6bSv#q7j&9^$z-S8L|fTfaq+1y{4qjt0*HJbBuE&CUhpFh-Kz -zUW;A%Ph>owLx{F&e}D_;0FiIG+<(Kv5Y3IS`VQdf;y5HL>^IF!|1GwqVnCm5xr|!D -z=R9q!VCeHakufFoS-njh70wd+kW>u{5JW?10V4P?t_nhtgaW0qZzFaS|I2a&(On2s -z{{umQ93()vpmt|PKmiV-|2({u1`&B)KoNnUSWAxgk$mdzol)lQU3m8XzhFPw&k_QKzK;03QrpYH%Cs<2#b -z)^v8kBm_YqoRSNN%H8G1cR_q>aE1R8A=hGNH?nGc*k#FK0QmEN$?aFNJUN}-OZ0XG -ze~`vVIW-|&;f?N@3Ky#YZ|X6(bQz?JgWjZuYYL_#_Rm}I9-OT10k#D0&s#TG8SxIGhn!$rcp -zk(E_}`OT=}u*3gL@X`OT!lA!WP#tsh58Ug*XQPAPKN%#U-^Si>JwJjwaU -zDj^{t*u{rs`)*Fwb7NbJM1p3b%X)+kjgY0$>!oUbC4m*jUM9EQO^EH)UG^q$jESA6 -z%Ejob{_8sP(AsFSfuz0hMa9)up&3L_nAB!td1&8w{CcY5ui)$n7lkOO4QB>iRzXS{ -z?K00`6PVfp%jFlf7uAn}lg;bc`6ii+zvH_2#_2o0?E=r191d-ZeG$>>x6SmOA7(0s-)mC_MVY?gNCx7$5BQ=TK5OOL1`o#2 -z)kV2^6J{~FXG>%U^EH|a7s&&Pu@H%_KP3~I)(j+5h9WD6iT~vu>3RpxbQPQ^AodG2 -z%`UIKdwJ;kQ|p&(#H-E5NcYGeC2P0(m|og{2CPdzKtAf~g50MxGalhX6$#r)p?a*0 -zmA6P*;*^MhcyqQ*;<=Gw3tXHT58T5LPX(v%C?h|_?Az04>Z~AlrEf)XlOyNgViRV# -za6A<5`GX|`JVMgu5FMbb=wYD`wO(A8T*h8|($svrM;!N7{@8gDMjTGVLIaxsVWxZQ -zckKL@B!lCmeC{|L8T|KoSQmr&^t#{AVl@LyH~x#`3e5R(54q9Y>xO!qDKo6=K8?&N2^5OA~=?(6z)faOp -zJN~}k6awm(Mw`wSH5?lbH>QBMF*cKYx(7LRI4%#k?`Pw9_gJn9W^B%M5IfGiahJRd -zant`IAWD8pcA5KXv(Lb=SJM%}7#?w0fSythB1Efao$r -z!!x>VYn=aSnOxV*xyQVFI4*zxyH}wsHT+{375RgUPHq}s)Tm@PSl*yDYYxhNhv}jT -zc0D9nbHn8AD5aoqmcC>21> -zP4ujBqWJyORlLxj&w;*uo>kp&*6(cqnK3>OUq8#`A_OtkMVVFI*ME8Vo>4$1cTM*c -zB9Wq~#Eh@QA9W`ob9vlwLXO3}7&@aIV}~3+nzDC2E6uqcv=wD)L}2P5PsM8`%#aR# -zKtS}b#28+(0u5u7nf?4VHW8(tfG4682<4oSoun#^<1{SdMpg`H$|ggeo+z`5yU@q;FlqVH -ziiVF(lX)w@!NUA4cE69$JZTaZlt=xbKn$68Ku7$Sx?1?d_+5N3uqGd=u>6P{ukre9 -z)NUqa8lsXVsZJ}O^N#w;c4x!Aaf9r{ -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 -z+c=ZtUWE~0<VqeJ-R0&r` -z(M-mY-QeGg7!#Q0+09`~kmE9)O9s`Y*~=5uMmd^yi6Tg@dk+Jyy;qdqK}dn5k!EN1 -zXY`e8t>ecF8gmdjAZv)+h$|@BP4z-8Brrz`8f7qe!ds0tsMza&94u!&a2|c-t?EF6 -zW<~~oA|)$jxX@o-bJ1Aj0Y;oiAA2Y+0T5yYuevG=w7M4;cGrMexhI{U0<)TJb-eKa -z&(1fT9c{IWkzHh69C&JjOcqgNqr9{*|7jjx7JB0oalOA_lc_`F9uVpf%h9^I92azc -zw1C$07x#YBHR;4XJ8XTyw8AkYiiY6{2%q2Zma!-i~SjcTB7;hBwDd4&gGH9nR65b8La0=P)} -zxlsk6kXGZm-SNNj^%5vEpI1j=3 -zP3G+)8L1VKk^tFM6-@Bhe!8s*GcbzB#C@@3LdkqS6VGhPX1+@`GtAl}H0CP^X*{B&!1eEiXfeL~-$@sO__P})J>AJY-YQ_g3%N=Th -z8{A5-4abf${}`f{SI}}F4FM$>e96T2{*indcp?L-xYZJURTY#liJTnzdH%uR$mETU -z>=lgSKYy)({Cw1i(AfU0AECDFqq?S7$YW+Z#`ycSE5PDBR4;M8tvnfUtq9>HupUkP -z9%6d^s9lswhWs^wRnNeA2+bF38K4p>HC8Z!jQR|mu4|#q)*B;n&&RS}UbAtJ -zpzeKyL`x{=q=53`k+7RG%BkMTJ2lf_ -zqdPS7yO+^z`V)Xzw=5L{){dNf$9m>|BSv-l>R|OH5y@x?5ry+^#VxJ^^~}P$|F|3| -z79)Uphxiv4{mZv@?TvFuj}wE$>doBgT|c}e^2`x_C|K^?Mz1@J8&CC6Ut1YPQapt$ -z>xW*C>XHp=jD)`yp8C?AUCYq;Z*d|Q=Rg8r)LivNc?pQ)TSrt{_Kk^{f_O^lb6cyI -zdO6quK8QurKsTs@UB4z0F6?LcR4)n$mY(FcPRXc-2Ow>j@{o)V$E%RTub+2 -zYf<;eLpjLuV@d$v#R9@#8HLc>qXLb~bv2{6EG63o -zs)w9%5Vkf|UsQLr<#Hj=nkX8|E1%7U>z1SuKTfh~X!-Si1y}$#zoc9u+SdkquhLKU -zQEK#+0e>S{5M=6UE&DkC-EJx{BX=U*rUTFBwwFY`T|CqSrUR4Rm)Z{Zi$OVvAUKgu -z&)pwltjiV7^}k~um(H_13u>dKn01czf^Mq}wWeZp)!vnG6Jgy|MP0oIN9}A6^AGg& -zCfY2nt0AI8D)lrIx%0qSGr%zXlF07(w@9VDZg^J0FY4EHPi4Y_NqJTzDdSe{s=j>5BaBJ -ze9k^!r%PlI(GVsFE_%T!tKrIIU9j*U2hHi6o%F^6f$+yD!+%=eqFF}$jd-HdCM=Nd -zX)%vA{Ac(r8c%-i%vIxdxkJ9>;fLQbfJj6$#A)$W^3(tYcZjjAy`d{J-L_@z6Wq3- -zA3WJAAU2T#Yot>N$IXkqS~rIZXOZt;foF~aYlxF?kj>6QE^%0|Y?NjEhZK}a6|?vG -zD*ISxgb<@qDb9G_@0#WzcIA^{y+*1SQvYo2@DZ+pq3CTLxFaWx0&9d5UUsAm?{|-1 -zd#(&#n1p7uwG$c$)8^GUUb`!Y@0TnqQa<|PpjXUty$tStCmCS9#M8|D!=*5p{X;J> -zykDojAd?m0N@%0d7AstHduBy|QBDXu+4~Akk0Qi-Oc@G@>CDk{)9XKlwmniIl&L3z -zVJX0szhVy0BIDK0@Rmva%N>&;fIK^HKVy`f -zsK+ugk?VCEcmA9}7|ntlSx1!n#dORLBZjgff*M)s+;|*C5#1l -zW|zGt?*O0;-w$r}S>*!G33}#*NR2udjorTj1d;0IL=b^pVY7F&L1frOM1ytBd$#$H -z>3}b|K-3}>-y1VVZolTQwr)n-Z~4;8k#=NY=MoCfGaiELLX632^*)G_1vZd#?!qka)6i9;#p41mBBLQBOFWS%gXZ9PJcNe$s$sm3Cpk2$_ib+V46Au(JWb -z{#Q68nqy-Nd5^P>zpRV0K|#w^m-f1UMDPj9&~Se&QTWNS-3@s&2@v>W8E^SHSxaTz){4N>hwRYaJ9=NA8VY&KM?^YH -zF>bV!wF?JbRsgh?y+zB*KCd;e;aqW_;MiSIQ+%2<1r8BF0nU*o%6~W?mp1jzgAheQ>(n6o{o=d -zL1oDAFUm10t%2fef%5bPym_M&f{;(>*fwAAoFoYNl`GFeo0u>sJMD~Mi-@{1NqeLU -zu%QqG?TE4VZHR^3LFv;4PYxhvCw`uxC874)iys7@1X>%X5hrYd!4@pK;%v7Zv@l -zetVH+tZQUzvmCr7BVsPvoW;u9JJ(^(fqqxJ;qjNc4e4WkVfCuyZ!O@&n3O!d<=j+> -z(h^6QMoU<3Dm!oZ#E4ox^u{a-N%QtzldmAO;k^yZp>@%Y?bPEoJ5SxnHB3%AT+GZZ -z4$c3utW8)i>RFuo$qm*X@KZ+oXYJaH{nEG6bYZ3qLbvqwCn;~1WU!C#+FhSWbXT5n -zy)m5qvpoA1y)*Ph*h=}njQV|*O(@Ti#0<}+5>E+Nbdp2G*ZRE|I}T1qEvr|kNpM3C -zUTMDCtW0Z^#p6ep=1A_TZHH^MsFJG7nWH7ZqnC_Oljr$}1;UrK{7ZPz&KJ*>3fwEaPth9FAFNaRvNb^!va#NZ3Z86M-3aq(M2IMxd5KHZZ?zOJqiC1qJFy$ZS -z#vLy5q&GA%PR2?6h>9R^L6?4cLg?mp>1Z3pLpbJoVjGS&5uQlLmb11-@lep^X%=oM -zLxk*ZI2uLoYB{_{SJ3~n7Jlt3y!QCi6?6E0ktl4U}XgVwp3+fo~<^p{kPm0T=cqz&MEK18hX5%6=w>^We -zJ>Z+Ar++CIO}6l%Q-Iuhwaoj=Dc*mbUh&0XG8hAs7kvw9QAonL`Hi<67%&oC9Toh* -z7!+PyB_?I8y{L}2y2pk(-0zUC)`$? -zqYsU6%lA@cQq6M*&So-|2w6Dxir*vQ48gI->)KFPLO*^8iOwT4_PY8D8+PTnwG}93 -z#O8yGn<^J?4a5)S~2)e;!#?tCS@Ty+R+iRpw%3@3JVJ%<3+h -ze<@Yf$P&M=^lbMAbnyF;{)E)ihbMjFAO^0EKp2!Jf`2KKupZ@n@4KMrGm!OyD}f28 -zWP^_&WeKq~FQ}NUMD>`%?Vn2xiGw>^OZ9-h=0k?gH5@1S3Jil1IT72>Y7{0-G)Xa+ -zVv{X7q{{_2=WeV__o<6B`B(sBY^*IBcDHdl)0NgL%Dsf8Z<8Dr?nUTsXoRlMB0vAm -zU+6YrN9&!lkxg`qhE0jnQp<3i!;)tVlQzvE;$4s*-(%Xp6+^;~Ip#t9mYuH8a)oPF -z&hcWA5kXegmxCfx>|Fy@fZ`qjMiU<)wvNhmp9x)0M=Y!{_-0zUVkGpAEo9VUMI7H> -zsJSjMcAbar$tPO>NiiK8htbfxJ`e%rRov!d{91>r^QZ;Ad}i{{Go7L4DR~2y?hr|~ -z7Lw|Ls)NFVjSaXXw^xsh7xQUkXuyr!kP6F{&+CM_7l-sPKXekW?3tssQO2T;1*>f1 -z%*Z9dc6rpFs=uCJ#0e5-`|QPVD(R?f_c>xbyb0yHjeu9N_!nbKn-*;}Z@YxP{GvLb -z4BRz8?Mog|%bsKr-Olu#^oe3{1hzRt+iHqvzh -z&32y^h0gHJ%CSGDOE0HHFKn~*SBAjQ+=Nay283(??s&BNi+82ZErl)C6)xhr8dvK2 -zYL`J34q@)*!WL@^i+-+F6p_|a*?s4&>toZ9JmI!&wSSi6h>R0ev+d!69yNg2q{m#8 -z5S1dU{x9#WvB9DCoHS^y%_GOaT)q#-Kw{68AbBsYoYE;{H=<|(%81;y)t0bmop_UL -z);9tTi-vy=HS`3r|I?+ -z%`0e6e5l^j%);~Ng6>s2)_%L%;s_TM9@7cnWFzW>P}+Nh*9(*-{-QztZfMK3rIy?jXg -zewH~uEiSHe(G=cP?izwb8E`lI)NN>E*H#L3E?=ozH|_XK)6Whao?qAG(Jx(&-cYeP -z2q$_5zY_D&8n>2Ii9pzuLTx?FyOVaY_M`9)RTIm_rOP*57JKsi!a`QA?8J8X_;Cb1 -zT*hRu(&^^R%96cBf;h^}Yk}oz90+$QRE3w1<~Y31In!-{RF^`P -zA#}&bg%pt%ZNRuf9*5jW2zWrF4Y<(W=($b53C@lK3E>FQej#r>F1J4eXcQsaCxseZ -zvmbF8;i?IyhmW`kr~dxX{@Il*P(Zij(Je`F=MjT?o@7wIXtYQKF`DO21+&%d8P2o; -zns3g^1!xNtx~LChs4dOMAu$9fCUIN}*C)r(KUQC!!sLVUV?!LX8TY -zPuyQVpwMyN=46yyx3%V(WGTv!3yJiL1k~_UO$| -z4{5FY+GbFMOvCDQlbvFfup1J|^9?7}p?Qr@x=Pw~A!}2lY#sIK*lPw%;GyP6q&Mxs -zztKN12^C*IIMxK!du8&U?cO{4Vuo|p*Aw9j6iNl{8EDZh@QGKgKx|$#f8H%5lZ%8W -zO!k98`S*xKwTb}usT_P@d$TZV@RO`D0-jKFk)JjNK8F>Pxn#i=-g%CtGT+)RFBizj -zZ~8boTL{G7@tdw^mqr%7YCBqNWxM2x>qW)UpkSN?51@4mX{mJ>jQ^b0 -zlwOJcwO%RIqR^P-3q04XH6#)(QdowE_*Z!#7|_C)J2&rhX73>GGEbskb*0{3FBdDl}Od3vMDN3es|AR_*sQUP7m2@wY{hcQ(Jnnjg{CjZIL|2?ky1L*HaolDFmin8OzPLYAM(b&*J7Y{PwWfjm2cJSre#__yVGooIAz8MOZ*q%M|6F!rVzz -z;A*2SH$mx*nxpRAdPI#Qg;~2Up*Z(4UX##qJNQ9f5&Gav$1CZ%eg2VLqRM&s3H)7R -zCL%Jm0gj89eIkYXq$(Bb4gRTW$aSb84~FdJ>(g&J28QHVEE?k!L!B)Lg)Brl{1YzW -ziYh^}F}0C*m#$mX9Qpf%Ugpy9u|CHa0{a6)1`4<7M7QVsF|)a8A+OtK;YYuGETPZp -z)hB5KoAd(6qSuN;8Z1{G2@g?nadh1i(wG8GXZ-WytS)@h9UCML#IAE8#k-52WpgVHcs5C_Fl^C -zvX=*fW7`|WbXx_JchTVCE-g|&YQz3PsdnExLdry^2%rLfW;BDFD25_3qu*_P3V;S# -z6TG5MFlT!ZnBHMHeN6G!p7TZ@k}6IojM5#(+?3OIdjB5#R?KJfAwbb^|I?WthmsiX -z%>whkdU#8{aCeR8Oef&+*zGZVhXr6fRC~E0ch$&_#wL5I_4IQXB(4HZVO!$1eZ9#K -znPP9T9$go(UAMc{daXSwna9jkYAW(ie3ArD1r=*?=T0I_8oz9QAro@We#N<;g2G&f -z=~$KKTBNI)4A)*41qj;Av?dORk{~k4d^&aIj%U9>^-t`X7W3Cfqrb;}mPVDH!xuoR -z4S4o@YJ9Y;pwsCW!+j>|iml&2xZI|P(9!K0*7&0)B!TxVbxL2YzU%gRZ`~#VK;}Gd -z$;d*stVB7)_Ap0TZDt?9w(@Jq&uea5dD8O}VnOCoypudJXzyfsYM8fP|C08`FSdH- -zlLjCo!;x=K$R~I8guO$F_WLrgGl$O*`4>Z*s&>M>EsJ`YJCB%Q2 -zMNI@Cp*+=pvOLl}uQASPO9Nnw0(%8S0heLCKzYOoFLs2;6!!9pB?ZcR{h2Ed>vCH7 -z3G(Y(MM!5#{Y|QP;SpjlO<@3VBS6)cEzYb~fRLY^t!unJ{6q5_1MzJn1NW -z>EldflElGQC&4F_(yRqv7x%!H@V*@&PF%AKa^lt7z>SE$K-+by|JXglmO$sgj(n*@ -zEs(=kHV4oCB78~PEtL^t{#UKcjSn9?T*l7=w_j8ZUf0Bl{_nkwRPoka$Uf07*kQz= -zC2|TY4G_k<-t2&~pcf(Oli{;##r*B~yYV?F%P5>dzikzjZMQCWS*yofAfN(O)}FhI -zSmL8NSsEeM$wMXXG;}ecm$^&2|FSq(*c_Tn4mi=-cKUqh@cFl(gOqXODUH5CF*I3M -z5uT@SOeJunDrZx%0U5U#Hlb>p?XK&U1LhTIk8wml!RfOMe&b$~yIN(p=Pd@`tH-VY -zR*#DBLOKE*4Xp+UA@zFC+*w=i<%lOT -zu@TN&7v{G1zMot1Rl;tumnz8zCERTodUcnczqfPD -zH=8v6)u}1&{lxJ{r5_Vcg5*y=_c$bnz5S-$Usg;Qao;Cp=`&^90hmk&b{%AYHyY<( -zo{h8WGbLVe-x2ROQ4HmR?XK{XlnimDQVBYnTcjZU)D2bdbFkQ;UdIt;Rz5-8jG9Q` -zXj1!EoM>{@@^D`J+!!o9-85kn8hOe)M(G?Hi;@>NN}-C9qpv>Rq!1>3%KfM4r6LgE -z{3zEn7QW}r&n9tIGOFPUE#4tOGumRDNsiWR`>2&rr=x1X6Z~)Sc#WWmj;1s -z5IZ5;&h$}Fe-UZB>X71zgF@>%-!Rd5_3MYA{G$}2CsTW`#ZPPobPM}FI1!+HU`0O-y*Jeri8*E?S -zcF0p5NUE4P|6-P>ec-y}Y)tasa^)3RxJ&%6aD|#cT9D22EIAgeYjL -zF|#m3P6a!^cNHN5zsQnsk0tKPcp@15Wd9xfWG=P-{M3g`1-lOi=afti42tNiJV|4sQ2=*-vL>)}1SmlNB$$)J1=9lnemr_`BSZyXuFO9u<<#v? -z`H^)5LB!ov1pd&fH%XS4Gxv50MJhX$6D{5;P>sXfB;iHHp@E<&klT_9Pww@1I(M}n -z9$H&BUm;B{Z|R_N($l(Qz$9oU-B-cKC>@jE-$V%8-kJrkETC84@o&pGuOEjp6y?T^ -zukE=CzE09T?Qd3g91e{)xBf||Q&3KgS?-gzQAl*F#Xs^LDhk@rY4H;TFy(NoHS5@9 -zOS4=R+ho_bT1}niLwPk-ro*>jWIbfok74kS6D-1laa~Ad=`@ce^f1eB?E~}41fKcO -zsvR>*^Mlasw%Pd`Aln5NK|$z=fj8ZN5C)e}DTXw-Bll?(R3yMLa93^=Jq?n*0*9#d -zbpxhp02y4l$MCI*VF{2nm#4B*B|PQNp%fLD&pJBHb-DSU{Q0Q{|6q7_-*sTN7<11N -z!X{MLElD@E{z*oGXM+7=J)LmBe+!4oh9S3s4+Av$-}*iCgTMW8iwPDBHv9;7l@2xV -zUZM&-tNV%sujRb1{@-&;!&l7>%Xux>G`{{j7p{G!#uS7Ln5SP_JNx#y^(D^Qzh#Xh -zU2l!H!X-b5Zlc`rts| -z%THI`6sWC=RLZv*x1p;X*4VY_!!rbhnhgtG6Xq*klOA0OLpsu&&K -z3zAEepDmy2N4v=IgpjX~|H*rA1Qnjq<;ei2l`5lpsXZSqNQ7UaDDo40F{3Nsj!u0k -zCfR&+iYFT8oBp*J=Oz;fDuYGg)9;9TI#U`W9*kWR7js}EX0i5IK*5V`F}W&>{;Jxd -z+U4eamkhM7m&2}3!b>}sP#8IKA`FkRxmF?uNMUckkx_WIuTZ*wAyV(P05n>l(9n+) -zKHBvn=?aG~YQ<1N;)F%zch#RJDr&@g< -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 -z3`O`>hEu+`*^8RGSf -zI^$m(OK+ujQk!7WaqR!Sz5AyReoLCEP&5vqd_gffpWr^d!a(${q32qE5Q3GC<7t5q -zt7%f_X5t+kOH9);=p6cp1JpFV$GO|C1;O^D==_1Y#x -zM6K;8(x$amRBFIJZ(Y`;cMb69)Ke>@x-oh5)XSFs*>YogDY;15Nl+%T*s>Jth498i -zt)JJMYaH`wWJTlQ87dS@;Av$6fw%6%^>fML4oR_r8BRpvjx50nhibPO>`KGk3_LNX -zaRp2bRoP!bL?n^GF+mCG#F3K%!z6LcZTg$Bp~Bj6d089ZNQ7pUvH1sW{Q>epiHAPy7pKqeOlLbYOns<^2W`PB^WuvHAQy#} -zxI}jk(z)>`?;B+6GfAqZmB~q3IlJ)1cVp$O4Fo8IY*BUlA49J$R+%z{7z`Pn3<+z& -zY``U9?wvKSM93J3+kexh6oojl)%~YSDsEB0JB?tuRxPt%P<6-Qxq51VCS|Xt-=>zy -zy#4fgBQQX`;YpJuUNdVD^^%C_q@dOGeji0t6!_qaLks1*3kp^Pog*t~2Rb@L^4&^G((Z%HW@u4G6nkrJss^itJ^u??z_@+-akax;$ -zEjAw^gcFL>mMTo}!{>XtJe$v7^m!HWQc -zbLSR(1_ahvG?_`nLKlSJx}Ri>zHNJ>A>g%zG^eQo+_Ag)%gTmTNq5!q-bk0WkYBPs -zMlWeNH<)24daoWsrGt9&jYf0_)BAVXkjf$<{Z3v17vT0?bi4u;P5fJnxSC}A?LW=^ -z%mhYW$ACi~K*wWE(B;;^h80OML}g9q6v)BO3lR`XU?`h&NRM_1Q_`-4LnDkzo^2=bYjJi7By_i -zf9bwFL0}_=k&8UOSrOK6k}M)ws*=*(8{LPXxX5=(rsv?z$u&_A%K+s; -zt?lm6Tl>iSE15$-!cE$UzCD!n3vAg?QQu;U8p_-VLi0aIu(6G&mZr}p_Gas@d=WVi4gwF5h^Nq#a>Mdj^A`qIi9U!< -zZg|r<(t#Unvu$P@af=WH^2aAomu*(I+dESz1cU9OZRQu$n7#{h^ZAnLugndBRPX|KpMQJA!`_OV2N-BZ;K%27 -zw;KbLz)+l|QyW5-3O3dpP+~zk`QQ8E%J5%M9mF9C0iXp<*9Fq6AkNk{Tc`uK+OUz_ -z-&#B0`^J+mDfuti_u^)T?m8>qnmc=mHRv36sa+05%_7VnX2+C?foL1Gsj^)PO%5SF -z$syBpW&dpY%zVy?7VD$8nC~@6s=Ws0IS2mUZA-ZD|25@zTp_;gJ>lF^1q+h?$GgeH=FI}Fo>uN_#Ey|KiN3#5SDLOlt{pZh>1G9rBxN9t;f0kR3q38 -zQd}&Kt)yG2&zrtc$Nt9=YbPG?ZCkxR-+ksfp%3-T5}QBT&L&`GAj)G9bF-Xr;2>7N -z|96-G=VHczU+vf`64)X|>h5%?rzIwve0+#aQ*OeUE})SSkT3 -zEuP###~khIT7Alzu#MTLLAdp7WDxa7 -zn+4g+0dAIB#essoClYwXg%qCtXA&woIwy|8T5ACi@D9|CPHoDBb%swyS|h@`1JY%p -zTj}kaV?Ba+HA9J7hp{ES{n8iF18*ie>0yxi+tiW;Hc^1ubQSPqdiM$*$!V&Lvm60o -z55+vx0E(uTxNc#R*EY1JGNNxJ!lI!~mD&E`0&@_2>2$(*fk`qx7`{f>p-^x%pQAo- -zsVd12!ox5r%>q|Abe3BHhSZhh_o(@?qDyD?75jOxQIm%2IHD_c;j_C}6!kR8^d`lj -zUTEnn73!!Wv?Ozt+10ZRge0-7?8ZI6;4$+7U39%(#6Xb%ki0lci*roN3}e0i0yG6q -zXwtY}G`M}=XFjQMp|hhb|KO^xHY}9aeBpzn95Fliv$55t^14|WwuF1-&iGUKf&@BJ -z7@*EMX#65&sq=4= -z2Rh;+9dxrW-|Z|v1&{CvAqVRSJk4LPoMAi`+%wwQmo3?V_e`LPSijQze!f%+5K4f1 -z+evOT)XRDo;N_vDF0!k(GLV+VW;&$#Dovhn@>&UaHvq~Jb16qGF+BfMg0G=vSL8w8 -zLGo#6f)}Vq2H;3^@N}#I8_|Cof9?NcN$e|ZPmO(e#qu4FKD>WtipqJX0IX90!h>WJ -z5vRGG&cE&-E!}twChDCbO2JotJ&X-iMbuFh0;^Q;w26&FHiU$6i$8lmBzsvGk#8f7 -zyUSJv_-?xDDctX|(kP8=@uVB58}VD&9(l(C#@Jm5D7$>=yz{~m&O(%Gknouh8n2{$G4TX>(EL2<4uWWJXCL~ -z=MBfem$GYvjkJaV1_iO)$L=a+V*>?(h+j#Y_wR~MYNr_;ux1#D@+}cT6oKw_T -z&U>UVrd%}}XVJL}vc}s)4hY+x3jei$!xQdzL@!@1;j6F?*WXkaHt5mswXK6j|JSa> -zBDPjl4uo-rJ+-s@-fTOkZ)b#+ihPv&?`P*rJX#DwL!;a9|5fFTFn>gZl+A -zz8J|8U@x-b^n0CKBGPqWLIVaq5(cD6JQWO~!L>FgG(VIbnP@xVHc&der;{-|_DLeu -zwSCt3{hXtKnOqL=&=izbAovr@z{2(@L*(X?QI>!fLD@dXg|LD#BdizVwmy7=W0bFG -z&)t4UbiND4*^XsG^R>(o1pbR^%5H%)tsukPzVYR!y5{~K%|N( -zM?EYkDl)t9C&ILpff`kcfPWvF5Bt};N1$h#_c{&X$Qdq!&hU#M&s)1$Ze-KnG!<6% -zm_&c%b!a+xbKtI8UF$Ia7DDa^K{9ea7#N0OhceD@5Cz#`NfNck^cm;>Za~vmrNcAViq=Dxk(hU&ZN$VSMQ_{Nw7;iL* -z=_XR|x=^z0S@y`w*A|_F)*VpzsWFT$f@e>!4}~$%05TA0N%ZswsG`8)WZuJXIBUJ%}4#YG<7-sNt*UDja4lyim%{gQl^ -zlAI(ra{~T4i2Si5E}L!XapA_JmVUBwmG=`Fi23M28P*oeOt%NV2e3k%)`8w;VlI|% -zbKyvt=S=i@P`GApKK2XXIIP`YKvlp(17>}D< -zguXhUH+%S&1L@igpg4Or&P?AK8-0}&2`6VvXC-Hp5jFHZD9&2G$7eYGs|QT^f6v|k -z&EIvQ@bd_hylU8vCG+E^9!1LSHWCf4deXyAZu*;6q~oQQAnVtD+D1=A6J03f@YE#f -zHGxi;Iy%EHWAamZml44Z#9BXbq{3ew3G@utexhS!UHqC032FGR1k@1B1y*N543D<< -za~)CZu}NGK9WL60ZUJf@SVm^hF%lU6P5_|=tlZARZ2Rwm#6_Q0jO9AZ=p?f*&Wg*jKCU5T}#*=sX4OvZu -zi5tpkqRQn9L8^* -z$G`6D8gL=J#5c>x5*w8AnX*0yTJXTUCqyjD{B#%ObI-G(-=w2WiIr*hlzV|Qny9;x -z*)c$qMQsqM*0FiLdAf4e)%Nt)zn`r+mH4Ry+x2~<5NV|d-Fb8sY-2*RlCU8PnTrBH -z752tNO^un}Tp=rd0%}wdS?KgBl9$3FAMSH9bh}ypB<1&j`JSr6Ti-bNi!g%#eHWSS -zub*@OGfHG^0Z4(M2}%dA>d_iw2%Bu4tBdLTNeSf;pBC935NugV3kf(OCH}5UAmiE>!C0(&Fs+v}nVIT^Z%GYgwF1U1!%FWwBxAZpU5p_+?tCBfW&{HHmHy7wpN -z-P5+NK0?GKDB!tJ0%S?MV1zcYEpeMJ0b5sd^ag<7%_~c}-2gqCIjulE^BZCslV2x( -z!!G^T6Bdexh{)DJqsJoC0GkPL-lvwA^25y~!@qP+G8UAH#fh#5$S#^Eo2h|aX$RI; -zYXR2t%EZ?b3qJf|55|uRQfz?TUH_rUVsxlqh$z1r#?)6fE}#U8=?Fa3MjLJu)ISJ4 -zzsb?uaMc`h5m0=)5%RPGXLX5{c;@V-L^$qeB_L8}y2FJ(CcaY6qtcQ@pQS_*aX=X- -zqnG)C#_LUc+}xt|ViH2nv&sjA*rXB)Tk -zBZoE!OvhQe=Os5@N-pnb2U=h~0U?ThQGL!`jm0jaWAFg$G-cMt`wBl0-4}HGV+Tup -z(jjF_b8lDw!^If$kb|xV5)@%QzCrJuhA953{qxUHaLwKXU%dM}R&d69M}|O0i7@5Z -zM!Ce4zVQDzZGEy&rVh1KO3dKsQ)@~>;9*qwY4fM)ulVC>vdz+Tk16gknyB10`#BdS -zP@n(QVZd>-)Gq7$j1bysKMBN^1fWHZ7f(Uk%kW(P)2&g-C>$~rci+ptf6h}zX~b;C -zgi0)8`Ko4Z+t3j)JbNnqZs)MZrX@C)*LLO*W3!xt1jLHzK+$l&ajyBmoOWkBDv -zHBaT|_DT!(@AK!N4YvHAulxNoH~zm)n|1F)(MT1n=+~367_@yRfy=%Mt`D?`0ds)N -zNE^bLiwLkk`^-7|&MNSSZ;q*OWY2yrvzc$6#PEK3YAlYcGLo@@jD9_)ltBjt-0r{; -z;C0(*kJf(~9g`^0EI8GsH~mw90)Yy+2F2iI*tU*1Q0qaIrq%5;hl)8{U6pE%6njTx -zc)8i#Ps(387aor&qUHMr1ow1@yYx9$9)&i|E3D9>{DM_4?wOEY!SRam?8)-wktLx3 -zXu|%J+y+K}Me6OFl1J6}XeHbuOe -zRJ{|4PZ(+RGNlS^E!@N}4_3471u&2^8AgQdOW4h|T0l^kVRv*|L=;|k%_BQASzgY) -zC=Elz?*NX#zjU-BOr^c^q;Z^QSXiwrGS6%=_t;1o0o>wZ(QuidN+>Oq-8JSz1bmY2 -zC>K_X_PzPMvYOp>p|63WEM)NQTBh5pxa$*$l02lGdSKSOp}6Ojy)%daBcJ19*)*AEcK2<6k}JlV49M~S7);^#j$XTEk- -zLpIz21S*w*-q_RBOJWb2>U+{`74`y=HX+=QHayC}+wfxo)*{)RH32=2epXU-%|A$j -z60>8;RJ@BT;uX2_qb5IUoF_P}k%Pu^8;~U-h=*svnt54E2 -z8Po2*1;{KE0yRKO1GWE_3-|mFRUTiahJX`P{-@Sh!bMuD##Iz)d&Uh&Q>I9UQSd){ -zY|*n^n3kG;yIL4#k&}IVjOl==h6EOByYOD8v7K|I+v^kjxX~yr{4FmkC5As3Grxqj -zkZ)pmE&c^dtrr?6q(o|P26w?gHz(LSD6n(9$|?b-3`o*M6JbRKEwLZdFTWmuSO0-6 -zJX%AYq@YCb2_Jv{b?|qF)ZlgUS(DD)VaIkI@)LENvbMBt%Y2u#Dy!PIS6h`nQoYwGwBe>sorp(AG>n?WBH^ -zg%y2I -zeXohd!uY76S{{!nmyHubm4QUICp+FBGvAp6O_DORlPlO*nE~^ZPZ5Gy^BPY7Qh9b3 -zNsnO$;r-M}d=Ft)+B1RF(ZB<}=(AFi;`PU*6zX9Qqzx0@RA#oYO^}rXW3&t4) -zT?mYHQknOi5>M!R(Ymg*$x}Y?R+k9%O=#%)#iL!MT{1Ydu4S*^8X@{{p~o-_1XGU= -zQ9yr@DxwO_H;WTA6g@m4@;`oq0Puk>3riY=QP^)gsjx~?r+zUsxD`;0v{wM%FB^6$ -z#^j&T^+Z}s=33^&A8JK?%uCH=eE(3|M>ndK1nAv&38bL)(G%4z)%Uy@=W*@ja~w8~ -zw}rR9c>j8Q5Z^z3o)?!}U(;o)jIu|`d!cVp<_-FLGbw(6pzo;gVaBQIYrCSj_1p}m -z=>^KcL%c_$hi1%3mJl95N1XNzO;((lZ!^g*Ky;5LD$f_jOKxHE-6E82msI)Ya))-8 -zgeJJ+kCT8RmE=lhT5c;)oZgVmmrd2SJ75wChT!4pIR;{Vp3Qjz2C6}sg?X)v7z$%& -zFCJ0T9|*#R+CbD&Q>Rhte(iCuLm0iYcE3xysr( -zq>@(MQU023c(cw9J^>p6M-j{^r?_wpOUZ{fgeHEAZbOq*EWzI&X2vbJE6&=;Ml|)) -zJFxo+h5MSh5sFS^pe`)zJ2NeL^988Dq2BU(0nAIt^ELip&W+t^BH&l~C9N -zJ#otw_XfFacd9osOtoDx_y~YX3PlD5N3~FUgXmB(C5zSTy5^qIk?NPeGUC2|;qxQu -zVHru)>Y7Q+qrP?%J>2CqlHLLyOB|_ZLZseKSkc(}pWAYV0glV%ODo>Oe+O>5V5z2I -z_lp%f*+R>}t24s~{z3qo>!z;}CmcOa23~o6u5a$yO95tX3-W_DEvR`A#9hnmaZudX -zEIbmjZlB{SZZ}TsPR^Y1Y^ne`O4-7PvtZEM&mb*bx_CM8kGoe{XkYnR#8ogPDq@MB -z9d$TQgm|_CQNH(a+mJ_N%`2)#Pj;e2rw`%vxn(p39h#9hGqt|rk@^~=17jvsuORH+ -zgl9w_TkLsov1Zp$X5B@&ug(n{`@}PnH*Ap1pfjZ@R|St&G>my&r(Vu<34LXJ$IQ^v)WMSaXE0eexa*j*PJ*sdXg!;(`Em}!PcmYAQ(GP -z_{a6En`8wZ_fAC>lLR>nw>(*U$2`bX*7gw7EgJwQ?+q>JfGDl!Gv{f6V*7sxuem^2oLu*|^BI=Yo-jrNPg%Kt1PnpwFqr -zR60nJS`rG$@VM?+X7#h?M1sT&L!w*_MJ!bxnP*gfx^4vEUw3aPW*ku+2w+PaGe)yA63HHnmRxE;)gdC%E;hFd3AjGFuK;!|XsoZx^9rY5F${03))qtTBxhUkA -zN~5tMJd1mflm)RfA{#&er+~)0ec>*sg1z>ZgDbyPVL*A}ugb-a(VjtQsDP|cS2%w- -zj?H!F?>OW1XgoFWITvef5rto&-BV=WV@^ysQm_RLt|$zZ9(Kg0=>AGJNR=BJO=gD% -z<`O+GQ%Bl8ms*%|%7Z(NfHaW@?RXML>0T_NnN2@!gB_*N?Sa<-rg6Q6(^_75R(8Wk -zIFrI7afxCbL5gRL9X%DlvEVaohq?$fQGc)9s|^hz9&TvtxVHjR`LP -z-eA92z1A-U%OA-C$GSIaFFYVQU2Rc_2=8~k>B3(w7k5nO*!t&v7`iJ89)Ct}?=xm7 -zf1oDN43e)*zAX^MO1`x}i5H}a%m-Dp*(qgp -zX*(9t--Tls+lJy6w5jIEEVE<9C3|_QH2Oq>-iXmM9a@y17&b6AY|u5D+uQNa%D=pF -zTIB-`vQ=h~XrZf#6qx%bZ{Tl#TPNLZV&Q+kIWY~pXIT6ww$|t -zm8@8ukrQXW(&-WC>M{@xYi9jsgRDP9gTMUqTZfI0D$pox`{>6RXn=KyXE9_5;R%u0^|9wY*!n>5>%z?e!ttIC} -zeD_B0fMXZy>ly;C0%-c&#rmQ$R*vI$&w+EcX5tKKGj=ZlLKh%Vi1E!V+YeB^yw+Q( -zEgY@2TfC-G-N*cE?(5&MrXJNP@D*lMOPRq7>ypmHgo=Z$ES -zUv_mj%TBcM#kP=S^84To6pFjzmUPkd#IQbcyC -z((Fg9TDR5fe_^*X_H(|`r3+~h&bzM`>a7@gNewxzUi -zbisWfRa~lfM5DU7+t1#*U2OAR^{fY$--8sP?8KW~G-xBp21*x(|JLg%svS#+jE6({ -zvf*z5@zur?(}w4WtOb~b=V0y2y9dql4~BLhkIG=B2gIWh;(Y$B+aD>w|OBGVhYXSQp)9q%{~SBx>p+F_B~5f)-6@N$R8W2mVZT7hyAi7JDl}#eaDFSKB}E -zKFrX|;{G=*=Z(ZSR@JE1oS6glNIXkf -zOoR?A)lk$bL4ryRIg!^gJT#)kvTP(qS4Zf1JB#%~SLp|DCM|bzME;h|bE80Cw`Hm! -z%iSG38^q9EX@zx)aFEpvcUSBma_X-I)k(7Xz$O)`2+y(EGDB -z$V|Bx;na8>L&f{CpRd^)9+k(>R5UzUJu9+--FH1o9|fCVDW4g&56kak4Mn)KZo6@) -zaC5HwK8%<8LghXIF?eKg{PR1BsYi0Hl`Pl7&s{~e7c_hi{nb5=kKRu}`;kKUi59rd -z_O^4NR$1BSTueFyt!=#2=g-+|4V{~vb`epa?tUp?66I3T#x{ZR8Om_5@3X&*fDg0Yry40PgwqR}>b0m*LmlcI)LqNFDR*Jh$-nQiVmWW}j_ihO5kQN)q%_#NIm-f{+`Ld(*C{_{d -zEeZWt#eea*(BL9osv>o*{4d=%IUbL?M-8oa5MVhFs=t&t`N1@qL4Pure3P^PkqjI9 -ztOHWxK3x5WpqcKA&)Sci+n;lg?F%EU -zF_scrBG3?0tl~H6C!p4PCXrvJJZKnqfr7$=OK*d2 -zb(MVfafo#y;5U)@^_+f^+lIs&OOK(ml8O48?5zd1Lf5jd-JXD8J5cB^9)HnVdH*e4 -ztkJS*Xu}U{#YFQ@nQ%?1$bHRL=EixKiGGTqx*ZNC5$6&^%)kpPv`$^(d8Ev-IHt=p -zE{kkE39bWGi)c|xvGU~~UmZn2n95JJ|4Ay{0J0DjL} -z2W;a5;1r*|58X0S{ALS~!xy%t0D}x@Ky@|>w5`s`Y?VDiE>Mpl{T2Eh#xr;Ea|K`< -zKQe_Dk1jN~F)aMS+Zb|U^$#JcdG>(-wn(4IN7cG3H%z4QakG2>=Yh}rrGK>a8sypj -zz}3>u!FQa~uiW*!Bc8|4|OKNGdG5(}Yi*YfRh -znoRA>W*yu~&)y*|u5(0u%*luTKN-Qq^FwNFv3NA@OYL|AV@vk~A3f|?t1NOl{5wP1 -zXH|ryz0g4}_2~(1bOs#<4K1R00LY26mb1t+O2dDht|Wd{)4_mM;orVm8lDH%mP3zD -zkCG~T>pMftZsvpK>pQ1KAkPU&*>p9?P8&XS6_oC4INDR#XEbq4m^EX{ix{X@D0|KM -zzBVaUa=WTJOXo{Zmx<{n>Yd)K%fQE=wBhzAUq>cWFI70-*CZv29#vBae>zD#Fbr=p -z8o8aS>BT>?F+$_pJ1dwJVssA&js~)4QMN(M0|=o -z;b;8$NFA5(;AY4j7X|cTN#VGqXtZ^JBH2&sRpW=zoTHQp?_mV8czk;!bmiTX5;MxL -z3P^5VthW@iu~Qu%q4S~>cF8$TJSwH0R_L>$w<3(~wLXn@&S!oPRw2h{7BPm|{TewC -zY>lmt6l?hS15|HvXD7p1jQen*&7_kP?T^Eh{Tgm3Xh(ERy%Gl1w_}O0?&ler4SCgo -zPgZT0oLH(ZagCqntos5emhlGAyjxg~hZv4U_VSzPZ23^seNFS=kcR$|S3$*{p}N$b -zYAH5j&}2InNZ#Lrdrr@*XFA -z?*g#!$d#EoVQuKW>Y=a7#PoPmqGTATb1FebTDjJdB+%@)0|SLc$=g*usy0_nux8{V -zR64QYBX}m5naV#c88y}vf+(P(6mQk~B}@Vz(rMpC94sKyohX926O!H{R%}IX+_$u0 -z57H48rYyKvRMWBFWB#MXLa#Xt#?s>eGxfKdFaEdmHbc{905evz)Xmx6^cz4+1GhSN -z(Ov3$xBuLK-s$(uV$k7>NU6jl!4UUBfq2m97`+Vd51riLbb!GHqPf9tE$neI3is5@ -z&x=W|=bydQ6*i?DfC@suGo(YC63OZ~AITesvI>8hVdT*)r*m&a&s2kU6$?MZHmv`- -z1PmHLj|R15e+-YOhkUT7z!rt>F-ytJdZ)Qd6VabdrB;{xGtI85Z+JxI!1|D(b{!)P0w{CPki#oC|UVxWDKV3n* -zfBegnQ8l%PP$letW$)5IC%p;nBQy9#Oe1*>oDPVnR(K!y5V}*eY#}l4E8jR|i^?ck -zbsyBpQ10Q+>1^{|J{ve9$KjYd%P(V`PEhaYC~|bn2X;*2V4`#XtXKp-;2bJ+8O|m% -zY+$G)p}jZ}gPqj)NzzsRp%uH1bH=B1mew&F+K=gQZG={)20{ -zp!shjE~f9(z1vIPTYTAg_R+xkb3nq@T|6rJB@SD^L8o78kTD^x{%?Jg8PV|pu$2vg -zwHi!p(>+Q+1*&Vg;9fR=Ro -zTZ!y@`HOi)65Kc-cBd`}oY%_#-bjdP5jVA{%iJ5Ts5V06)?sMbRq`Ttp&JWePx6ze -z&-#oC%m1AG0IJG>H_uY5$x)RpN13u8@7jKg`PiH^(teMP8Y>lc*y^Ciayr3_jf}$L -znRD^@8B1vsV?`v8do6$ps$$;tb_uwXzx`^9R7cIg>FEPQN$Bw0zkqVnBYBRT-FcgK -zF{++b#`Bix*m6Qh)GV@^8Xq|V$ot@x-S1J^i@o?Rv|tF0ZTzwX>b97%@8O*Ug82tn -zA65^h)e`y{i*fI+@u4-2b0zN%-->&x$NW??-Cvdfo?{kTFIrrVYwO4ThJX3F#_HE> -zfK3OyvyVXD@qpZeXJ(6RSZYzQ<%*zIWlH--tHlPup)Lo2c$oj9fg-8eY9Y=|4HM!y -za>dnkc}A|JQ2QOkUF7^3>SD^hNZye|v3fs%T8TL9s;2u|01 -zynlHHoF@wen)J}9A54s$5wMGh_&Mj3dY5QRb$tou;}6=1o&eXosBy2Kbn)6RmGc61 -z*{tb0Y0r-R#O^_(qaa$C*159;wHhmRLJY4VO>*G|dDJBq4g5Y}IQx0{4VqNa7hUkFzgxDXa5v%}E02m+;oM~F%=J72mweJCK -zy`N=S?7z?n#8ekqv&LBJ>52N*Mb5n*^tFKIufJR^u$OWuBhzZ#_AQ!EjX=PMW5jl# -zHk2i&XOYtegU1v{Uv93({vuhfjvRKEBOcp*#oIH`!IW+OJ*9+2b(|ykS@@&hgn+6=baLMHu|Zxi{OJ9*rhP7){`c`Vncn -zjaS`v>{u}|f^6=OC65ULH7Vg?e_}0eN6&MO)-Y+Z{0&k;P4H;1aPIq4T)Pdh|A0Q4 -z!Rl-G?rMijJ8<2tuRHi^6fPIKhIIZEzPJcLUBC+3PZno>`CbP)y_IBa#k3Iz?N$Hw -zA{x9k*?#u)O8A7mw@<5?>a2&WX!svNL)DVR6P?5s?>qQF+UO=#IBNEw^pa+!YVwq} -z--1bq6R{CZHNhU@2^$*Ut&B7-{xna#ENJDF@w9BU)C!HNnr7+DRzGXx3OKYFfReMr -z8@4@bXw~D*yk+v&9ko#MVilj+-v_eS4YF2ri=M)eL*ia7y!p!I3IY)fw4SUGd$I~A -z=_dn-@>KwS0PK^muTIiev7oZIMiJi6`O~(vI4BAHr*E4_?yF+~tqhPcm!~rN&~>`} -zJ<~JW%H39BS*rcov5%2v_g+x;t-d#Kp+xBS5E(hpu5d%0#b7NTWh-?ocGKyHuuHB8 -z9;w-TGCezDIWR8lY{N$qnye=Nb0bF*gEBe)xvMlT$Z)Lm^Wy&vY30i#la -z>2Ijm))afxJAwachmc}DcTlDHh?%iO>Cz4ld9-#(6BIZzBq{SWaRaIuQjrZPyJ-+LOd(0fY$$~JniDKZiioS{vWyX`|w_);Cb+i -zA852^!}{Xl#MfLnCnPT%<{vifO8?wUE-}^U%_IgWj#%@Aa_#9zPNO76D!8K4wvnXS -z&+^GVj$bYs?H*lKuTx`X;Kffk3>^T#6~JS$EGy~QtMsj=*Ai+Sgd5i& -z_E9-Y{~#o19qnT1o1J@4aKh!+Rh6!+@XUc@s#E-+{bX{m24J*+n8+jFZgP8Mhvz?7 -zJbuIrl_j55B?UcrPr{ -zoBL^Z@2d`U*&AL)lM*buW`6vlXC3(6GVPOWtLlSU(>FOXOT(=I$BoBKqkU0ikd>9} -zx+!<3m6p5j6&$!fR22=Jwx69p+u*Voop?v%?}M%|p_sAN6s_PBK~Rv6zQ0Q43rd&$ -z15I|wH>#)R)>^Ou+dn5N3{@Id^Ybb(m7rcDOk!gnEGwIP6 -zEg2}u|CuDJxn?}qJpXFY^caWoH$PYN|M7H{0abNPSGtst5~RCR;L=D)N()GrfYRL! -z(jeU}rF3_PbV~Ek-QDn=d#~^J_r^Z^>~r?)nOSSr7?<`h(4Lsw)%NkqX)3AUzs#f4 -zX%xhfl0yliRoWx*5iCr$|77jd?7Q;^camGeuQS&lI6>r<_(opeEjIirG2Sp}mfmM^ -zd~>edityzwHU}sV1*%Ha28yx^)RQygGU+#QaX^*U^(bx2nZO<}O) -zSAEKk-E^y*m_#yUfVH^wXE?L6kGWhe!L8wFth7i+si8RG8`+EZz%xEJ{(NL5n5(j! -zgz}#e>#)GvFZ-Sv;MlZi^l<1Z)*W%(^7=nV96MeQ#Db;P*VjglCgeB#&n#K#mru;I -zFIM)0q|PT)0SHcWE(DdGpl@hZnSr7~VxB;+Eo;TJ^v9_Hgg;>kaKXnFMZO-G6rS0^ -zE*mnrCLQ3*fymmz0x2*5$Gi>B5f@}()qnI%?W++o@Rv}WGA5=TXZPd<4u61iC{HP~ -z@>2B3t4rS3k)Y!mH>#kTbQvqr-J=i2yBAU_wdM0C)KFZh1s7)i&az&`fhDvTqNf)D -zC#oQ5dXu!j9Gp*0+Lkv8J&@@(KHs;s9N8~X5~ycLZPhsre(HWCP4LV%M;PoF{yc@gklaRqx9*)#$hhd+|l1fE=miH2$mB1xbRy7YB@l -zv~>dDk{!TC`H$~Xd3>$@!|~0xmm=mhvVSOYU_mLAA%pzNOTJYSt4A>UmR3Rg8!w&o -zst{QF1@MmxrYJ{i#9miQvi?WD9f)7rafh@--i(w4rc40YZBKe(b56SK0TRnlFy -zBf+S!OQd^OJds>UX7`TF{R*LjD@(^gAU$MgfNlT%y+v6aDe7hN)e3 -zI#+x^U$BE`xxt~@yuY7DyIDzGytqz6$=~oxUSR`TZ%2@%ZFN*L^3##{zDBSJO1AR1 -zfBXaI&Q0Wi+=*Pm6b<@OK4zPLSP5`F0wu+s!QKXe -zbaV}%9zp}-VN957cNeJ1240xh92_M9pn;@@wdCl{F^YBZIPAr+|sDgZ`=WNBJ -z(vp0prx;bRUcIIg0gB25XRWZ20y5k}0_`L_)~Qtg0K|fDEbgG?h|MtHC$nlt&8vbb -zdEz6;sX-KaR^NS@pl(tyZC2=PZYW`u8K{a(!4Naw-T?Tc08xC%hMdUoh(j+gojen> -z)gYE7P76N2`N#X;Vgxvqy@32R*hd%tuXXdAK*{u=X#9uYc|E+sVK)41vq?YBw!W*K -z>nP&TLF6C%H=F%_?sjvz8l)SulPHHbtRe{3Knt4DgNrGVuxTH{XD(e*>`f1?nD6y6 -z#uys)1k>+>7iFw;?V<26k(1ynT9ft)J&oEK{36`vD`)U=54_@1ltmL#qC@gZKG$@O -zcEuA0bQzD7;Xc`d10g(hhxEIU7_s}CN?H|Kq-x2n%{e)K=mtFk71|`lld==7#ypZ2 -zleg==F0` -zH`X?4b!PtVi!p021abq?(a+qGZ-iO4Iri+=xDemu6o|}9i;IMrSB~`3;ge_C -zqb5z~iQ3R@_~!ts!xXm?v#6n~+1P;Eq8)$&0MO`V&T-|a&@F@b)0h#|1P+mIV=P-r -zsrWSWy#Q*#9~dPhdu{oj7@dgG{S0;vbCenHY5PAczJ|Zdi&_5#zxY31CAI -zDPY6q;IL}v$F|{9W-7XD`;EpQ-ot8svHJ(57Q&ydE0gV%_ABl~r4sjr0RFzNorstH(u#71PphukiZ@p16;3zp59X0}LbyFDWH`+CS} -z@CT4-8=P-Kt?$ThMfH9tEmrzmcvO`4GFUneoGfJiLh;jx<~>7*It8fs^73XW@36s~ -zzaJ682zBJ#j0@7%!^ht+IpM^z$D_=oq5se9Wp#byy(#ZW2Rf_zqZBPdtJQ1Q;&f2a~?=i -zG(MivR_{ZhIJFs||*^b{oSAPf_Xaj+j9)UV? -zsRZ5X_;J{ZAFR9uT#DFW;iAWvS@RD2CX0NT?ipp -z!jbq)^j$#ULWSB{I;N`CSJK=0ALXKu?!%Yn#gmezCx_Jnw_#zP4LIUxR -ztC2hPkAuac+{D&2dOfsIJCHV}!jyZBlH7~!GF)A{_T{T<8kA|Et{79~n)nd6QOmH_ -z{DD*aN85$ie_%>TAY2X+Qud+!7YG+o=<<(QHI51%(I~1gd^P# -z_&D@=9i+55)tC$r2Y{;&29wloFPX=@eW^hFR0Si6w?jInK3(Hq3q`yQLdQ_kb+8C7 -zi$+a+@UL)_^38Q32{2}i0V8+`kmFMQ@8go!!S3cKgd6-xsjf_3~bq{jO#Lf -zt4!7yLPH2RXynT>!K(>$!7C#`$R#JuC*Y)%rR;^l_u41==&v?q%n73+5{~l3hpJSK -zAq?O8X8$+Zr;Q|O6`&2yx7y@VWMLt*d$Dn;qZr!GT_I|)Lya2l-pXkY5`0{g{2n~5=vTcs=noU0L^1MNyz>Dp7K>GqS&W0F# -znrUrM&wg`y{jMz1S}vG~dqurWT}>r(g#}74GS@fkrMzi2!K!D|0W%gqM&MliL_53?=HrMSGr!Q9Ol-s}gY -zdE#s5UkF+#pbR2qN(kwn5_-Oxzqg3vfH@_9Zw}O8PY#P$y?p0?W6F7DTy9|3KnjaM -z&^!M9Ye29WVM`f`_Bl5EO^xzz9#A1te9pAh{#<>kOd5SxtX+VKOHA2cVtq;>j>%~L -z8N}cyn2I8RiRXH*Z`f?}opob^;EfKv5e(xFhVxv%@ofY>2k3d|4?4dUA%!o`xO3M26apn73k|8fh(jc>t5I@L9d%`%R} -zP8yvRpX?7}cdzHyuOv`VzB@!p#6ecjy^GJhejgYSIFyhse8Fg -zbAzg&N32)oq1nG`=!*Tiy&&s7GjR0-;MAPIc-_K^a$o|rEQ_7ZnJc9r>R$~n1t$K2 -z){*R8fy`$w%<6UgTnX}gzNmXRgS8b6$}&ZjK_}@uUs-dw@Kpc;=(r_zXv$7b;Dtc= -zpya`l!4~l}2DjJtycu09q&XA-A`EOZLd*q_o9GrARwFeA8;2R~JO6aPcTL7`1RSVG -zaNgLuMRE>9pn=dFMyJtm-&9{Yi6IIRxhvfb$CAwG%>^Wzji{q>oMgbF0%kvp_LN0# -z8%21_yBIJ2e7RTD6tdp50(;68qHi=(qJ`O}L6b?sZ}skXI~nrVNcm0i|FK-&OThf) -zxiKi1JCiP~@{i+_%oC8fd9| -z#Qk3RcxB2(e})w7@k;jHI+WtWz1xm@Nvq{uJk!AnhLB9qk=c*Xy@{(3qh`8DR)^n3 -zlq>ZIF$q1ejsOnCFcBs?6^@n%^8|xpw?=0BSzQ~A>%1bI(51~|=~%)cAyJ5Qs?Y=U -z3WG53Pu=vi*LQZ#BRQt5W*n9!GkPD%q8Gs2697i>6Ov@zsvL{%8M=-y7tdGaAlqo` -ziR~MHS8YubA(?w?viCr-^pk4*l#6-0xo?KP=O>6PDUWj34h|8A -zhtVjf!6?x`Jp@imB^{!bupFB0JM$)g7DCsXsKHgU>YCfwh8F2bdqFZ$-T8IYtDJja -zmH>dQoKD5K(!91I$T^T?Cc;duMrCyE&|x}I6-r>mI|r*VuKMUlGb3@TCD3wfo{`Me -z5y_>Aw%YGvfJ=P<&w%w($dFU|yUVZ>HXZCQByAbnWEp4kc{yJRW4()3FeJa_gQ=*@ -zh&Ph=QaE$N`LC93zpeE@G9-MOYozjyKc`WgpIV&y0 -zuG_%mM0V6BN(EmJ*fS*YwngZg5+DW?cJ`{s2_3!>hs6BXi2Q#hqhTihc`LtDcj-D@ -zCJz-k0yv|7v!ZCO{Xsx|^~oaz%F6zjin5(hJhc9Fe0}eI-s3*dS-C#DV*XE&1wrue -zkB;B6m=eZjEp{aF*BRWP@RBpqYSF4pJl+41Ow`_yNPX_6Hqh3*Q6>GmQ;BQGk(RQW -z3I+W+a=2u-SsWi+J{9=SW~{A#-0epNSDSD7kXe79LU@02sZR@{kXIM-U%W>Q!3G4j -zAh(QM*D|x{L5-Gnf@v#rS@X_nRpE|@kcZq`@gSPw2v-Ms+zO%lG$k9hg*~MjIE|dU -z-&lKHp6^y&3LYpd)H8;T{)9JmzY+w>vjN}UIHGm5$f7A)d(rt$d7#I46Kz|YX^l7C -z3{oU*n=}~H^M+$i@J!OMbGW+U9Ff0?7^7{ZO4bw#H>0!vl7nrKqkhTPg~p|7&--@r -zVU&upN(f?e0d|5~9Q~V5!CaYM8yHcSK7yZ?;g!v+p#-P^_yi52;37%?q_iD|ewQJ_ -z;bH2vhfY#eT^%0ND}?R4n>dYf2vxVfEqQ=BPJJsnPm7b0x#IG!-=)%mE`|9;OxF9+$Kgp|t*B14ZO`eZf2j_ujrqwR -zOWd62vZVIuuf;C)Z?EtX<1KaU?T}hM3la4o`3Hx=!Z)M8SMVkEZ~ahMc6=1TK@4Ep -zejWtH`fKm~{w=0GZ8kuEbBa6C>Loq+3)irfxB<8_@RKxH!;KfnpS2nUjb240;8azR -zAT85kLCfv=#Mu*NrB7naee7?K0oe@n3dO`+UfN#2yMI&^@w}7S5AbhcU;a=maeafO -zqU_zlHS+U!(!Z)n5N2x`iV++-gSNBn -z^~e$l^{}V_F`sr4zxWo4U9jfT$}o})t%7%r7&x%hD0poHLwOi3AtZ}#)oAU -zPUXkA`1Wd#6pDxbrh@2)FXdp+9+2>z3-SiZmss@yO97mNxqo24Pm1eGhp)qHa2X_i -zJc5-meDbGyzaAXQ^icrPIu0mA`Ds({-Vhq9H&dV?y3P`}a~3Ur0mxbamEwTS!^!VT -z!(2Z);pB3W=}pntdV!?y{yqpyAOu)_uh|VhxRFIZI;1@BQ^M!?-qQzXZ0*pXvY(;A -zz|Hh2&$YuX2PQN;K>R-zA0#9waU$X$@}B39Kkup-uUR -ziW&C}(8YhpXpY(@>$IC-bVZiA)_&5zV -z*#P6p9Dn6M(S;2H-a5`Z)IXEM`*)hRb7z^E{u$5tl+M5;0aXVbzPaus`?w>=6O5<1 -zyebBP&_L_(#cWEp5a~N+mgiT&tyQu%;dyU!XA0|h2M$;wQ&H1LfZ -zA(`pz)$Ekc02PNORoc(r#Kz_-}oqb0OBIWQ*M(pSkTq|~2-y`s -zrZ#=ma<46$%1Oq3C)dS0(w%z!Vx)x%j|*1^EOHsbrC*H5uw)7MCV#yljvi;mrS5l_ -zxrMh3{Wj$dPbm8XEaupMa)39^Yra@^q*~l5x36)Iv{7>=YCJ*u{k;ZPJFH2HtC2lt -ziKbH5a2&s1PWxM84QVRk_rqKY_g|0bAO7@yFHd%6U)QQgmX2y0Fu3~@)Mllrl*(hB -zDKz1IqlkKJT-s6nLdCO)dao3(=JBTXBh-2FhlfBCOMaY-Xyu%_v=mf{Vm|8&m=h>ma%4ROW57Pq+7lfA9b` -z(bTWqdxpwr8C16t0D#w9Lep)*b(<$}Ds1nGA3)%W&y3VPZ4Q91vEgRSO74e<^Ju$j -zoGfprt6I9FN3DH9>^rO`uUA~`imF>Y3vuTF0A@I~?c?WKN|EC0lyl$A -z1kXJ^oBVN@M?Z79z0Vr>BWacS!_^U*N}T*k>L>;9PFF_{4pWQi9Q_P`6LTBjTbfMx -z#sTCVs9`qKX(x}pa=!?i{MIYY7DOyKJd4O#->b)VWa7l^pVTqBFCt3*bC#6hEjPr$ -z?c)tKI1G9$@*XGYQBlu4+ZQ^^TG(wcbklDk`P*KUrt~irRv(kV3!4}6^}rRaV@Pjn -z$>h6ph2+mT1*2=3vyGEvexe^%R$!8S1RQMW2RgzXDyYPqLyafrvH@ozZzU}8^bnEN$p_4jJwH6uXk6o)q;F|7s%LAJD>V#cWJ~-tH!Wui^nS3xX#ZJ%@fA(Rf=0Be@)6iqmfIW4V6iUMp8 -z6I#MF@Qjf42C(ceKbBZT6LT@|eImk@f6c4CBARE*BSd@y{%JCn>BwPYa7Vw -zh-MFItv8#zKxMQ2uuPGYs9NSk|+pub_ -z^M19^d+tb+1qs)7#J|3b++?PlI?r>^H$f!ozWUF5s33!vx_p1KTF7|!C6s=l^YQ&OOPN_%g|4?*w|MQ`8BrGHb0kO-qfKNvsM*Szez9S;{uoD>0LV -zYZjq0R2Gr>oe -zzdK0}r2|7XSZ**}M|iM~(JgbxIxb`gnY#sltSw8}etF;zG4we}-$mVLE{X|?*Ivt- -zNxZ@7Q-R%E`0MW5=j}c3U8gnTLNN^T`>3_*6kbwno6XEe4{#aRY&i|YUA0?9GT=D9 -zKRo^jNYa&!;6$lGr*N*{H#mtkpU+DuFa{nFfJ18(%l-GR$S}Xc*XX~=W6yIOvsJX2 -z6ZoK;f!>5aAnRL6Bp`PVY?VH2r_ovGaQddosPZ~}%xgi)I%NLF6qs?@U|-J>8I^9#AlJ^6+cFeHP6;k5B1A-@Muxh{Wy^cK-4fXtoIK3xpMt -z4#eGdl=eE`q8736-~QYAK{X5O3q=cd*n`Urz2J)n!ilCK+pQDTjs4a>ve`|`fX9xb -z4WgAK>X~_y3WfyNeS+uInR|=OI6>e%xz2MDdR=Rc{)%KHtPHX0*U^)OmL48JH -zV3?{he}7)~1=kN>ZT?5dw`XqEC{7k?P(NM90?8{VYam*q+zKt5J@S?qZCL*}eSG#? -zhTzzF_spYnA#Mu(oBnROKb%V#WfH~P;7}A;LXv4S&$BP26``L`c8Iha_RX7H=kUBv -zAm9BYM;jRrc+>t}+<^@(-Jy@$nzX5HRL9`uS8FAj&KBqT~aoSZ1>A9r=4%6)2$!D -zm=O>a8#;AFrWc4g6ux-(#hN8^XOY;M(b%{F*C@X^>g2PN2s88g2qduF>6mLMlU!uE -zck|#BswCS~%4j^RKFTF(n%i(90-g<^M4;}bnS=Zp9{tzO&pg1e!4qNwz -z)TIHN^_N)|p2P*ymq6AHDnndjip(U$#8$9Z!HLxURoqc>j70kF3`=%V@PD5CIbdB@ -zqyV)z%23QSQt6+7ICmRWN#z{;7Y2QXCH%7YMH1>_s)zIwP9%aO+tT9AN9(T2}%!CahYI -zZ5*C;CPPxqyrC=e}kOl_0E|o8aEFt -zvFriK{H3<0=l^QKa9-|kUp7#sIqtDPeFEMlW&l9OlqlYfy0cAjpRdl5m$pcUy}uWYpn1DVMN -z?@m=AiAAV5^{71LIJxdXV%s -z6J<;NMJ_Qu$c7L$mCzrwkv(Qf3`76m3m-BE{#5NZBlU~bm>=+jpf}p^hcEk#bu#+2>QJg#b~Ee&+hp0OlV?^9U7{rNGvB|8 -zGIFlnzgKa$NR5liFb~e$43pk%Jc+;nz+A7}39>dybjx1s8_o#N1foMke8ssXz7=`@ -z^bCL_z0K{hSp%&(tKbo@wC^?SCm*8P^ZsK=+lta)?TG8@m -zy|Mh;$_I%^BW?*Qq1QrNAW7)WZJTxT5)PW4#a6Dm(l`_j>rlTykf3Z*d52w{1KHQS -zl1+n-C=%*?;z%pw_(J=KFe1dVEQNfE!SjrNK92F=oNl%(mzXndyGxAr<4T&-rWLm-bNDf-uhoGf6^NU1E -z0Ix7!^{MxJrJlyU@EV7N_tx>lkg%KBDwm0nM{Si=1M#{R<2OTE3RiR$-4`MnO#y=@ -zaQhA-&D!eWJpK1KPD-M4%FE!D7OdUJm)&VduhJGb)b|#!>)H6`M -z0~{J`F@H(&eRW{b8Gb0y@f!!aJki6!#tZ)*Bwh``u#Z1`ru%fTuE{E0mP{^FtZ5>hsXC*Q?(8@n4MAL^K)(X6B{|1Em~(Nd=2lkSic%Io -zi@0_bSmU*Q-{b!R6o;|Wfdxw~`tVAcQ##5cO|dvYzbkUzUq6bNld?d+T~IT$_^8%P -zZ2U9hx5i{;=`oNMc|-DE&d(arp!(PwjgT3%>E9lD7)?)kxLk8`Z|YHxye#r5?bI{d -z6EYniV%(enwI?oHk)89qsm3R=8(zEmkQVB0vF0$gW$m6^y60E=Pgvw4 -zmq$c`6|r3JLm+#GbZlqM$>Kjb$}XNFiU$Bo6@&V9Lp*iX8)GfM6I(G{#k*`joN7gl -z(in@pz|8h`J-GWZ_d+{N@yigkpFik;w|qFG;^R8ROWuxWaJ!h -z%?MyGHoh$;Wp#~d)cK@jW*+hrDZV4Kd#f0US?ek2l%a-<_dP0kuWwlF2b=f5G_~-O -zyty>3=yie>uYi0zot6ph;aHWyVSjj}EWIFvJOIpbM&G}iz%YdKMsfXRc%YHNm~dzY -zGh@Skt63o1OGs$c{%U*f05Pj1sEtP2Bit9AX{zBw^yXsn=RKrS0@!_>&82A>u;(|L -z*~?hChq_FzK;I}aCI`sTZ|gUB;uBDzw-ImEx6VcMvhlUfha(2N^JMWOLk%j_{}s$) -zus#lvz_KHC-w^!zrC{YHP@(D6qt`BA&m&m*1s%FblhXaPzO))nWqT84nM-~#1Egow -z(83F25dqv~73a=eNyE>#2_tdXCZ#PPepUav_x%uA3D`v&^i8Mr-qhFYQY4aFTg+0f -zWV@s^JQX`Y$7F~Z+ei&@#>mK;`ku?)tmg5(DPxYB6OT3W7CkTb_gJ?+X$P!by@f{= -z;{qGRCDG4`MdnRr3lLnFvyY_j$AgvD^8Z+{8B(Ckz$_CB -zs%ZZysGUatFhuWOo($msABixjdOk4lkN4crl+k%89HZZuQLi4rj^GxLX9zrDu(bU1 -z^yMqYl+Y*RVl&5D$h#2=gs$*H>|7;RtE|M`Ee!>~QgN5YaQ;I=x^>E71lwTu{9wO* -zy>7xy{hE9_N5-4SXt{;GJju!a7fQ3hDMPa}<&Z(L=j|r6?VVmum{dXf(1xqPG-zMb -zA@=WmqeasY;7N^K{2L7SR=$07hdto_%74MOEh+~SChouwJhv1O*&cWOjbv-~(32Oq -z&IWjUwzmG#!cZR|Gdn$2r|I%*JpOzRY1EPZHz@BomMX|gW21Q4WtGy1`epNek-%{w -zJMEzpr!QyjU_3!n`XLBHv#aMy#E?8%?J7~zYv(XAUdL&$4`gnE)&vK8(5(_l=(Ce8 -zr6^oP4b)|w3@s-VL?Xbo9JtxE*Wa|S3xq>mJ5#~4-{_V+CD*&w9V(J}8asT}_N^z7 -z=7&HWm$(GNv}73HnZm -z7_p0(AIjwQ4ZeLERvm^#YCoL6q&Pd^?7LBfH-|2EFE#8wtdaSErN6BllR#> -zpU%^k)~Z*1nE|RF+o(s_9yOzzplS&l?x38ohj7N&1)}cZzSp}a;xU3nrUu(%&Zlwz -z3YV2&8mr9K#FV@mmf;JmV$xB*xVz=c``w6v`ncy=BbYFp_V8|VTf-xH#*v}ekA -zq~%Xf9FTJZIuc;3&ZwGV*xg*hXRLSNZv5k;v!aQPxUB>?7<&UonF$@R#T+=^+mCi9 -znpY79E)MKNIBFKAuY0Bo3PwtxV4v4z2BGK_-%k4ZU5y*_PnNJ*PTz4fIQe5(K@ -zNt-b?E+5^0!AA0c*>--fO1__-TW##{@()$mVYeUTmc{?uA_Q917di$1R}!nhW(^P? -z0QEW0<+0`4qxc!`UfO_v^Plhrg{(5ojM~xLgJy6L)S6@?y1d-;oeVpGHyL2CWw?ja -z1(yg4R0d^jCkP&@JQvslZYdzAX}>rA)`egu`=CTaezcTnr>4_GJ=*!7{jrpobXRv+ -z=fe2ZOBiUD?A2-+3P^tdc5FWNYp2DCScASnU~!&Yv6g%O$`Srw)F<1h^7XL*SHKAe -z-g*oqAxTxbP^U{9<*ORO$gxIKw^#`^w|`?VFUl27MIo1Jy=f(mQKX^y2~Sd31~pj7 -zcQ{Tzj;IPOx(!q9F9ZuB9S0Mn+Zvr$XKprqg&~IX#wPIlyR_0<+1(#mUTL|-gb~@v -z*Y6--ftFazLpUdnrOW7qDWhiI^i8l5t+{O0WxTpg`8X5=npg@PP0QEA(HEkmhr&?|1hN-U!97(sI31r6N{!*OtfjpOL -zN3AOMu;N4_bTp(CNO -zV&aMffvV0V85H{Q`oEo`FN?uxdJ0;jI62YaS8)X7YSHFa*>t+G50MQvRprfx{tr@0 -zoRD>)OQy-pcmpew?azF@S?SKo>jQLg=KOZR -zO#|D|l&?|w{cvY0o9b)j-p+tMIBBgQMz^)8F741!94_F#xzU3)4r?Y)HwFj;U#TOc -zA|?)RP&K{FxgLJHHNp>vJ}865_znFH4Afohskf=yJK?l7`wJN{(C>)P2d`k=M6WFI -znoL40LCMjwl`%T7fg(yl?UnwI%gv&CrUEj1!NN;&xF_kQW8|CfkR85-QmHoS0)3K& -zjU(Ec)c{$=QALv?9U@UeVhD}$LERHoE -z$cBqf7qUMlJ&~wyF9z;o`>Q%{@(S~Q*2;qP-KA;to{BoJzJ@g3w%1%ihDKZR!&#`N -zlDnV^?vNAZtjM%WKwE-AL4d;qT}gT53swBUf_I*U)t-P@01zk<-59l=)bZf0jLj4s -zSG~g5yWc`L!~9{%7?8dWD6T;4P$vT*r8h($e}FnQP_(MKx)u -zv^jAlgE|V#HYC!S3skQf#$Sl-k#u?GWV9{?)kK`=0d3P-le=-qonfRaR&B}rb>l92 -z>GH&|Ht`H%aIhEejs}~axWIjXV-;_1?QJ!hv9M*#?@J{+=&srr^;0g|m?+HX_!uQ3 -zh%g<+jhM2iP6H&zpFv$IQKsuhpFBpF-#V8is$F0J(gX$FGc+IWKBdU^(l)i4FI<*M -zfQf>U1|^oC*F&f0QT1)Jc*$^RavK|esfE`J-;A84VG!BO5W3F -zV0ch5ImZQE|3xinzlEz?HwPr2Pfh0chQ(C^Os7;4?gq-$UOE~e2zJ!VvK{qGUQ|PT -zRK@CyO%u_xN#6U$v_kfVG{eq7TRus5+r--Gog7I1Wcs>$SiC-*D6tFXa>d;Zks2yF -zkDB&%hI8X`YcrDJd+P>9;Ji@qCnFN+VVFxHET%$fWRj)?oi@lNel)j>TVMaNfu(B} -ziz|@hd|4h6nP~D13~$D^B&S3UFvmZi27dpOc1GZglk#C0n`rP|B8Cclc65C}LGdY| -zDgfjcZDStE$m7WTg3mN9@@uZpzUQE4yuMD7hu%ef+y1@XOqW?A;GjRsDwl^;RwV1o -zotxaXt5ibfP=6=Mds&&>j2FzQAm`8f+Hl345IL>356&Clr~n+4KCad%GsoR-Lr%_D -zG3o3HYq@tMQ2-GGh^R))tEpc8u(`40NCzr@9;R_VL){KnEhr9i!z43Fn~RP@L5!thQWO%N*Iu<;93 -zgwJ^1(MJ|elmuJ$G0_v5Kkk|7C>Qt6=YPToB-@5jR%q(^p@FtFAI?5Y0ZiCCDpiBv -z)4Aw-C`&;gS60J)HoSuwlws!79WIKFw9&10>bbhO=V8n5#Rnc}9z<5!OZ?U0SKnzw -zio3Q#yW6eF8kd>}O=YssjU=G>06dbTGDTR$?I-?36g_V2)-Mh5L<%cc4#SDT+t -zc7_DP>O9Kp5!6S_R##wIfPOGU4e>c;p@)i&9U(q~t}^cL5PEz?&A6CXs0{$(|{LXGl)+b`jvb7RSi3;(FAhimB8Uvg& -zmUZinoPSeyKgmrqc3N}d6+=7}7yL$i0teA8<<(u3*P+1~CZ7+=uxG!z1;40FiS$g| -z?EAxF#%TmqW{}@D%Nv@*`<%RM9BBN!L;pT3BZgIH9jcB{{{c=rw~sjf_>R}P&Nz+z -zqn2)Nx^Y@dj7q+rbRn|egSmF!gaGF6#RPuMlo0=P%dieaxj<=q5AcAT;n{E-b~zUjLS0OzY0Y_!KYDnNDt!l1>P{Xa;p^Cv{p -zX~F~M;RgYdwLl{0D4w=J0OU@lgLzWP3|>X -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 -zT&)4RJg1uu6<^ -zJBJ>a@+g0Rg+Nd;f_s5CQCYQH9|LTCCljVu?=S8Z;dGLcM~2IRVQE%stg -zF^W!_?Qdb}t54m#!?nXpXUjKkOBIn~;DL*!QB-v(@kNJbEQ?NC${7?(&#$7Y1ZUza -zv8PN||M1#{sXO6EW0fLlSb2or7t5W7q}k%=>?~y5VLNf!T&A>*y9N4i77AT8 -z$`NytPY^@qo!T@V$7L(w6ZGz@x#OWWH`x?YZGtH}W|Invrh;0s&VYB}cFxla?8aTd -zbGdI|y-r(I`24q(kymIRzpx7yPHJQG9aex1rd>!L=*e2D# -zJi1fvE7(?643ppK(Xu-AzE5;GfEQ6#NGF5?P-mMb#Rxr?ej5DJNF+5q1G&)xq%iJ7 -zv7N&d5CY?bOm$L;G^1%nPB>$5?Nw;xIX*kfAso~UfelHXW^Qm91+6Gk@$UM*QBj=k -zSLXm$@t0)^piW;z`BDONS@6{(LMJex@(%}gx_Z&`4upm`PctKa1O>aWqj;+BBO?0kPLI)cCG@U7(4<_ihcad}jR!aEt| -z@KjzbWEyZs4loYt9Q7#vh+L^|72g|+F -zwCv;63p)M69|9p<61JD)7P;zD59uf!RqZ$2I*ROxo6VC{#1&}}3`N6-DI0}}@UG}2 -zS{e3^oWU1?8#rZ1_zOWfKeN+_&>?VOFA2dA)XyE%0nNFiRKWd`Bu_!BSQ`Ndw?aB_ -zUtV#ktbI8OogR{BnNr9!A(D7t%`1_Qoeoz9`2|veyb7fPiy;ny=?P=MIceCD5SAZU -zvxyq{e;8#Um!4yN+FG)vxLe2q-u`=3C9VbFWCjl+hd={ -z%ix#NVVgYQ{B3Q1aKeNv8a~|I_QC383-{SW3hQSz9hZY#!{W -z)lpp_o&S^*DcoTR6mHf#22kM9PA-)@kT(N>EJAtL0(5f9puj>S;?{=%gM8!|@lx=> -z5D1jXb7Maf_WL*RXEOI2KAz0{Qwc`-~Wzb9mw=SxBH4 -z)u7O3UkGA?HW}wkz#?$9M01cYdYx#s{p(8BGxo~6GoL%1HP~PXT@aaR -zbkMwS6aUx2mUl)slEZ**ND8J;DPa((J(ptMYeN(Fq%RsIumV4mplWd3e -zCcvr>`S2)D0_*K#hvvzkXAv+6U}U2+cQR5-V#2C(GJ8Aj^;s51&uII;qA;ggX79O` -zdn627*w#1IbAXJq{P&rs<;Hs1rQzm-x}0^PJ_wQX0@znwIQ6V%bhSXOzFs+jibZ_@ -z^9Jxa#6;}qSL(ElB+VX1?FgKRY-YlhABF3Ep&(umY#Gan`EbWQFQuVLhz}Q~p;|cA -zYH&u!2Amu}Ec#dfx<2l~ppW29prF3p9x&7FSt01U;n=a%_n_+|x@smStP{g@|K?<$ -z^odsjP&Cdfo_6pkRK5+lHihT`7s>bJ)xKLH5+(azO#RJe<08gVt-`uLRt$DYrNVeI#!;a6VQ}6bXhGrj~7-rfd -zxc~0#K{k*>#}KXM5<`f`QmFka&)sBF)yLe-6L1p&Lsd&vg^>ugk`^nyc-TIMcDamb -zDY%~N9jLYGeY8ptJi*mCt1~a{CfudK)@!Z&e_W5x{P8AE1jL&6s{uxujode@KdZ-3P}+8S!}0|Jj<$2C+U6L^grnZ%pKH5i>;O~v)S -zL0cM)sjl|CXT*jiUAJ10AE0$=G!lk8J^N-|8EZ$wGY^l~40GNW=ui&^IrK%B`$UB( -z#7iSdOBUTnmYon-%t04n$Yd#VpLs&@{isPJDm9RsJ-AW-+5;Zz>OLuB*L`*BukDH6 -z?@gI40#a~^VTG@%gk4)a!H+*aUE_fB#TA@24DEJeK14<65wjI~Y;&g-POyY1@NQHK -zP(D45S#!+tC=)0PLJ?l~ez*v>8{OJIJvjp|7(hJU9JIcxrg1YPX?lE1$$Oe!GX!Mm -zfeYY;QTku_L%PTVXr%yhA)DMeppeiTp3`;|Pu4!EwDTV}bOb~rA{AzJTGSQ2@FtM1 -z_L%Q6e&Gb5V*vhhNwh9zG|V9qe>|*NWWXvk>w>W%LdgytzCj^j}8Bjg7M&|-gIZ}ZHIG?$9}fGbbe^`AoGBnwgrK1{wQ95 -zF_MoO*l?ru`$9MgCOfF9L}9HR%wz`uQramcbamG-;hjV=aAdQ59iB3-0QF6|Qj!kh -zD0g>_sSWMSHyzyj!OuIx5Rk>ETd6&|AIK9HV{uEZJK@`UhVzzmfM-s$|0q4K!nkP( -zy@#OhjvWtY!5JWdIG(I>5eobL5-3b*NG*3)BSH_7t69kuWSugueZUk3s{C~_=y4Qf -z&=lunxukSortt1>I>y*W1eDCCIhkf4vJgA0|H3BTET-zX1gN=+0jPtn)!3nZ6g(GR -z7#*U*0;Yn{;ks*^hO-M$-~O^|+>PL8yP0z|G^&>w7oPxsh2X&&V8J&#y{jgp#TI4y{XaeHa+?Mh{49F6qxj1 -zh(s`~z0PwRyXL_}U=!R|ZR^52P({W2KeMG^^7u#OzQ6Gv -zn9$PKR&M5H<=+@yaDEe{x}3{=^^K1#70O?z4c -zM^30k$`Guqh%#RAHCJ4k>tdVWcfb;7v3zes(8lAL0~1Fmh@^ -z3OX_rpp6gH+vQ7)KezkzILyo{>2Id_o51GC-C6KsiAapI*n}sk7F~8VG4T6<`{BlR -zRARoKojdqg@gdS)tsvE=2!Q-S67Q>hSc>twhml?+Qja{@f2i9|H*FvW(5mL2@Sm)# -z;y&U4l*;quOV`Z;pC>VUz$Xt#zfBpm8l!IZYt -z0?ZCzj!mPc#p_igBANyjl2p#6bZ=;$ot8MSFsc*IeOi(LQpzfk{*eTsalH6!l^f=c -zWk|Tt#TW~+tk-nfT&*UXhLaTg_ -zjS!|NeSL0*G>Y&Uob@KBJ8+&E{6fNLKRt7&`F+fxU;WdYb85>{*I&!kVvw09;C$;` -zINF`Dj@0cD^i8xF>n}&JDrN=2reUpFiqx{Uag=OvYXU&1LH{7%A|l#fKe$7`O7z}< -zsX=G?*?6zF&_;d|IZo)1#~(+eY&yg{%fO{Ybg1Ck&sqPXX1X@pw3h(xj|21hJN0g% -z1GY~~MRfIJ0JHPnYD|}EOuB_=2`&QOvS!uMFwBSEh?Mx^Q`iix423ra%V$Z&ehZ-+G(Iv% -zev14W_WDgjub@E6WW|;q*y@lD@ww|HIjL$R1lrVob4{46T4o5qoGRY>aOk -zMD`@3GlzPd-`s>)`6hy~+HCy-hfmaeod%p|pdeLTe@{O&%c-5QpC6ht91!>;P#8pw -zd|}Hk)qc>_#XF*$ayI!au)*~$g=+OhUV#Haa)PNR-@n0H?ZK{|B1jncaCH1{(1ZEH -zN6nV)fGVIg=Y~}6(Lfti*llQ8$0rY@t$;gvhv+@MaSY2T8uBV -zLKHdPGFZ#>^wNt%PpKkZTw5^j6om5HnXJ>~a-SZ%M?>P=DQEmJ0iS$XO7~Y=zgP5@ -zAGHb}15UabfLbbES6e%?do4o^M6v+uO1O;Wh*a3joJCboESmouu&2nu)0kDK5j~dS -zC%gikdWtF!Vu^UYzn$zz6I?eF3>ws%X-NeN?g8^2(U^$lt(&nr%uh77>d^HE1S9(M -zLc))B>u=uy2^R8Lv^f1u1qazIuIGlK_SJ*HvEg9*FCk8EfG>e$>!1tX9V|!>bnMhD -zpcyvQ!X!fQDlw#7=;Q}NcK-`0+oO;Bco9n)=**se9~F(#?f$= -zYpNH!36j;f6vwKTQ0Cz991xt~4sj|#4Ng<#njWomSA6-9EdHV&66e;--zS>=8LQ_v -zYQ{G1(ycr`T#?~wKhnqSt^a&9GEkI~e>R$vma7t6|E{>5KiKdQhdTW$<9HbLec2Kx -z!WK~$C=6Yndk+hpRWOD!#$J9rL(!WVo$+FW;Pr|*qPuf&Uf4u4&H;>%x4j?@xJ#?v -zGx^lQ{gYwGz4l~xgOi|bj-wmu3T54{g@h9H6^aXGjHWXCUL}x$}d&iML%jqjT9bBhMv9I3X)EeR}XIsab -zyn2*}m;^4S9zDr(9wmnHEJ`OVls*gJoUbG2oIWtVRNm+634;Y(`W+3XVux!MOS{}? -zFU5IerzVl{9y;odjs2@^tzsZ9px>m#>MO$;igb#|;oaf{<<(e$mPfq70<^pG=Nf(| -za`!SGtoXDom-c~-LB{)=)x@sH`BpYup~kG=zr?3}P9aD=jM!^>;eu_d?!CJ-4XTe$ -z82gF_c3)`cOmB}qx@)6TIT+Botveh71y$H!gRy=ysm8Y+0v-bKQa^q8vc)6Tz)`)Wfo -zgu09_d~o39&)cpp^{ms@uN7b~BDA*99(R5C1j*J{=dC%iNPRcb8BDDE{Icy3KH!l@ -z$`eB>up$U}@efhnOlYA`pZ(v&&% -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 -zTNouA-dh-Ln_DlPCx9KTG -zJc>VZTP*lb2C~gdiXsyoQ}j|1}8xIcMEqA(r8jhj9*RR0EMdU(*d& -zy$V^?hbDdZ24#W-IboZ$;@!G}nV%qg@Q?gz#hkxsO4FjWiD(JiN=2>E!5UVbN77eI -z+&Bdxg9QQztN>w`t`tTd^@XBx%ss~VzGPM%vlG2;wn6>b1P4^eB#b9`JFMvP4A#xZ -zGP?C_|2yHb4B#~*cUEEiW%au%e~@x;0jS>xLLt}^am<_?S}=#5@a?Lf@F-EKL&eQQ -zi^H;=b7Qx>i@{el03T -zr*rX3kwYsN)5y=aK-l#7IZ(%DP-zn{(8}1vvfb>Dkts(q!pGWK3ezkDsK5K;55Llu -zX|fTd*NOP@p>%qsdcD6_SDzq=8Doj466;{^g1yS%5D=nF5AScl42YocbU&P95Xy57 -zt4PIe2D#B;<6z(WdiA&_WO+PkQPQN|Q2qSTn<_<@m<`jBuJaLpy`11g0vn11p0B?k -z4qb9eIPxiT@ozIK&8qzPr>O&%cEN0N*EM&9Iqh7=Q{{bs704ovrY+RqyJlkKt0kR{ -zAA?7_!9o -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 -zxZKuLf)ZHa_4e*404&%=2@ZcM- -zL$mVBupVWOO4Xr#C@D^dRO<0j2QM%?0KKx)7sFZ8lu`9v41zpP=sXfy?`XdL$repp -zAma99b*ag+^G9%GUyRmR$7bFNZ8wS&Af7l~{SJe;Ug?7k*3sw*$mL{0TfTRPBklkG -z5AZ5ukX)73m`vazxBnt{hr8r9KWtwk0*^mPn{J1;D14;|Rw^wf$iv;V`Ymfz&_BeB -z1#XBUo0Np(1Kp&fFujD9yZ@+TG$WQXTGemb2lGSvaTi{+FL^+YU!_5zJjD*d*X;!R -zt8m%FhDr6qKlfem?`N#ZbEClb&r);6cXwf1%fvgJyQU0$W*4z50)S$IFU4JUGU7>T -zFJ{FDCXGS+@+`b9W}Kp_Ru7Ap<&-S`X>Z-4#*sF3aSshZR? -zUmzR3EF$1Sa#Ev+RNY~NtsX#MCe!+rAh-7pbL9!UuIje7Hcc^ffK?(bxGI;4#8-rM)2v -zv)C>-nNP0Ds@0TxcUbOs-RMg2ULTM&Pp2nAVv5Ru7O*Kq2ZC!xn05+3g>PFho=th* -zi8b#1+l+D#AviOOS1EhB;sY^b(urLhCAzC6k1@4YbMd;}{epOM)SLct}T+!$T -zjDijyzM10^nX8}c;=t3NA-TYUEroIs$A|3jqU^#JQtC0T&V -zRbWBLGmN?pa}RDOdz<;Zr270WKibTFw4*JX1KKraAj -z(oE;qGje31Z2DN$H)reKU~Ec&_qjfY+iIVjEoz~*?r|o1^y%fp$g~vr(QqEgpc6JR -zjuD7LjVFMa5chFAsE{Q?eh^h&*8DHyrYkw -zz;&}HHa(ku)Y*(iSMHXBTTCNf?Iw}!y{Ic^nBbRy5MTdh`ZNlQaM3?zE=3iZ7K}bP -zRS-MSmsP)G?l-g*Xf0atjZmRy_}hM~kt4Mw!?#g3gMBPhN;Q6^B16Eq=lRIED*q;^ -zS!90h$!g7sjc=?dTqAx9euMj6xZ7@gr!_-)_2K|#p(}?^iUapgCT`*UdBsOa8g4WX -z-bh$}fvC7psR)tIjC4G_1W(N$c -z3o4h~Ecx>^az3rLRQq=7!{P53@O3T=!k|{9o_k?JArVwsfKMu->XdAo9bQ%J)>>=| -znGq>z+L@-}zbYs@=*o5jdYIWeW)JR{Vvuc-{Xt;A@wFAkID-05k=%|7MlxX4fD5xl -z-n0lVmas2+P3hG`khb>2lrfJtVzRDiW(FhbG>T$*;Jn;?G`I`yq2@IUUBLyc=rP+K -zgn>hvB5n#gt}^&){hGM#IfQYW;e=W)amss`P)tBIHV2bV1#wgd*^X7Z-T-H)OmMGkMpn3&JS -z`8vP=fp5kP5wmpZac3wiz)tTV-ani>b})Oz5q>$g19JdX<4Pv&{paTYbgI -z`ji*!fjUuA{O!mZRo11U)a1>b;pQ;PIJf|ax8DGG(HXNW9lEYzLn_)#t2OSb-=))u -z)Q^`t&o<{=tklQ|B`RjL;9dnFVydZ+(Z@78FqTpRFYNan#k=!n|Jr|O)rU47NxQr! -z_=sY>mHHnes%XIHO5IwfF5 -z07_-B+v8)K-NM^(x2CC+<#6}B**mQ_a(gvCCf(Xsnf9eE|Elqn -zsY)T3iBGb=%cr!@gzZ1lf9o}PUL~1Ip}Qp_WgJZGS09$1G|FC)pE#P)(2n3 -zjf;cQi(33y01#VjXa -zy3Wb@m9L9xHn6MMnd_T6h}J#pG!~%ke%ksQ`wY6V@Z&O|%+_9Euq5>9ElN^pJQqo~ -zXZ0;A4cE~O;fVL^Jym@EmsxG0J#slr9qn%eF#qU?N->udTIy=g!3SlcCPsf$Bmhtm -zrPRg(u07HnY$Ul#e9>2vN!K^15*#qJfUFNM(>IsQLSHXbdO_{{ -z(_SK4Mt=~pddn<=MU3p2&09XFqA)uEd*pyZ#)wErzsn|q54CLd_R9m@X{M;xwuOSW -zQo<$t=$t~tD7leg*H0pUuF@VK@wiyV7%8MpJ`YOAp@{7_5t -z&Q8gQF>FDu7!Dr%l3vE>O4`v^_IGJRMxAda^+$Wo^3 -zN?_jARJbTzGbty*J#X5Z$;~LA(dE2sQ-wSvL^M4@?K5vP#=8+3ImP>DEfG)AI+lpC -z-(g_lus5GIZ(D$4!Y9O_rHThU|HbUa9`?`Lh&OiQErKp|hFd8nt5G?$&Vin4hgT~_ -zK}LV~FY0g2A(3$l9kZj3b2ohuq0cUXDutEjB|CjUIxcy1*yv;t^T~Kk~D}bh98|Bl${igrt2Dn1P -zVLE2KZNkO;=?;WcEKJ88dIXyI?rjRFzPYDyMmK#QTsPT=NvdVfLc~UG3?5%;Wy^Dw0i0^gcvM=7m0Jc -zM^IrvPorSOk}WH#`077>ED0Ww+o88F)S#=ph0bMnMaeB4E}jz32iqbl=k@NYGAOzU -z+%oGHi$%DR+WM?V-Pfs~pD%}HYoG70zl5z3Yd)CmS!{l0%Y_t{pSDe6=20+v9XfuE -zi*KGUbqV~uLcfOqiITomZ?BJj7rO#)j;)p4^R0@!U2XYs1j~ug|7HqujRpn66QR;g -zuAC&Yx(D=+uX_chi~g9kZp*k$;GZ0R{DKJaJq?zUN8ri7;s4>3zK}`mmEL);GcOA1 -zI5y&2mncjuBW}D4x*lJX(KFR|wNG9Jkn{7#HD0suLmefQtqd*vRJ6Z0mD-EX!$7SE -z1$d7@G7InqV@AuaEb4sVNpxuECLrnUFjg{? -z(^9!7B#DN7UPBZd^gtEwvN%8_h4A*GXI309U3U560KIFge;;&dg-{b)-+rV@Q -z)lht(v%7CfBCjL(vx62?ye3-P|GJaK*gaoe6a0xQbydtxC1`Yv%e9;G8g+JTjQO}I -zz7mU@Z)9_jg4s!27X7j<^LvCXKT!smY>9&BrRYlHrjQk!^bAuKa4aI0UrP-YaKyW^ -z8)!h8X%LeA+OLD@{U(+O)vIc)_EB!F`;mMOqGFG}IJh5?jM!Z= -zYHpelZQzja%novJjFV%izNJ|FqGBySVWC4uMn%sALdd`Q?fr0;SLEIfplNc3M;hoaQgl1}u4 -z9UKw~b)c>?Z>%?&uFH2ScI4yuSD|ZNUl06=jES4w&F;k6!Y -z8}4gKmfoFLcnFa`!PyX3KUy!o%ZpWd8mXpB#|B-t1_tw*!|~)>4!Bj3<88m<7O0qi -zh$R2fbd>>7wM|r{r9(ocrBk{~U@2*kMg*ipx>FinU;z;XkrWAOkPhisy1SM}nx*5r -z?DGBIyZ1i*%$##(rYj`bw!XinDz}1vL9Mf=d1V+OLK&b8xDEl~J%a3PLzzn`Gl;AG -z^40S+7S_k!Y2K94Ar?D$D##@Ws-W+nrozB3$Q}EYTBIoqwN` -zaj{>?9n$#=7sq1f2v=J=A?NC}0X2}|K>L2oh7Lw)y=snRg*QS9Bzpblds)CG6A#Xl -zE+Of2=Rl^9WbcP4(NpxiS}tvq#}*#``I?5`LKu)(zUc9J&kIJQ`XzA?;lF6q-v$|@ -zuxv1guP7iy4;^{c;oo|;oB09M!Cyw$QC#o3^%U)zr|+NRfq|vK(9^9205E&=0>AsI -zuvRqBpkan%A(T#&0>9U4z{ly|)8A^}awzbbn>l=3tXpLU(~1yeOz=>~vqS>3NKI*z -zgRr^sU|om>HIpz3MUB=AYhoi4#1W(&Inp~aJq -z1HQS2^H%CVwIZF$KSZelj@5lndxx?+CO|0kBmW^LcmegMc^8-?K)J=4q`;C9piXY7 -zFVy2jcVi;SqZ8ovC|ZTAROV$)F@)HJ1FrDG_y=~$GBa%)fVmh7Y=5jkb4o~vS~$33k6Eut%*VDCR6Cl& -z_^MXm+1+0865<)l{@j%_9LCXM1y(El-IGI5Mf`2+kE -z;F&svl_e8ftdgvZ4~7dy)6Lo)BFlNim4H9r1$t5#-e8#;EwH$qtc}ChT1G|}v(W;^ -zj7j_(D7}@jWF%*{kaR?XrW^sWC9j5B>hMJkN^~YCqQh5FN5tH#zVkb+M^4rZjPxa< -zd2B%#nm-14mHU*90&($q8xYqFE!Sh*aK~1K_X&y1N90?x;a)%N=G**vB1R5~mtXc@ -zJl=IgcX%w<*!2DOx#s2*_zf%l_XB41gp&aqI8;5ePaKQqv{d`Uzi@`Ya8b=?HX`cx -zmp5?AH4~hCvWJB$hZvHeIrY>^^K(rO@*u)~{Rp*0WAqtVUR`IJ)6llAjj*OHTqOfU -z3GlaqaEBec_2X>f=iC?=%XETHUtHqd8;1~dmAzZ#N7g``aAjwq=_p7z^v_T3?d`(VQQ_; -zwA3R-|Biw(y;P&OFX%PO;Re|G-0{-GYEbyn5BXFEp+bOWkQO!OvT2m -z?&BTVQi%R -zWs<8L9>lvhR0BY7fmoo!E~y1_^7LJu3Q^N)9PImZUS3=$JJ)H~5n-GMU)2r4q8 -zT`lEV@R}Yz{V^7ToJR{J@$I_74P>KB+=)7EjRA6`-~B~8Jlx(N7Hv@e=qU-oBHk$0 -z-rPSye4YcZQmGL~R@>AZJTD=z$f#-i0>L=B=KvCdIZPkm~pdXv7$+dX(b_LX|31Ds)i_q%YZ_uSkDTGnz86*7J&%46rIg&<^unD^^|f>yYXco99>FXO8nc*1U&BIL%iU9 -z2}6QS^>@D;9W=(7nO0HbPbZozg#TpxQZdkFP?ekX(jR1#J^e$D2mOk6eX``Pd1Y+7Tn?{p5~mP(%8uMDgG$Yx2f9^41{m#1DYrD!6t?68ef> -zJnTUtyn=L~mE{@q+Xro^fvySbh8T)?jb6^{q_=ZxM=vGb`CwDwF|U4R4NSH(Eg)_x -zh6`7bXRYsFf;2JPT(}kVK=h}3k$}~W;XJ#=VJKc5}|VM+Q4jV -zUD1)g&9_4yCwDDKE!%-bK$Tj3QNju-w1kNLR2urApXO3)r}F9f^#}(e(&A{GTWomr -zkg*kHHMa;8{(2h%6<)mG{J>GC3PTCuL@j&+T80K}*F%3@##yYFD390f@Rw3P1K%Q} -zqa>~KSS*W+34d46@A_6SDAO9gd~+XH1r4y`+E?LM6N_*b&}mh`*Tg-q`7h&)&_4z^ -z=k5uoZ-i-Qq3a4Gb#0cRHZS|GBpz)by4t{3_shHV6}LNM_$ro&I#SZRwe+Y>776g=bDuhAS1j8oRG)ds^aB>OAY=$rllLj?d^Jsbz8rAZ`R$HciP -zs6js|ug?tp0cdbF;BV181&rJY_ObxNTF{H`uHskit_R*%rMyO+>P+8Q$qD5=T#Vv0 -z;nO_IeeofACj7t5eijvW>npx`pTt*m@H@p(a?Xe8>r^UoGRw4QXv^SG_N0`o-EB;Z -zodwBTwm5F?yQbA-6}Sxq<~_ID*)PQS{?XAq|G+Wo%wy290J1qSay0i~=`p_gN=G^V -z;%J2fI*u1#lDqC(r!TRMh;60nz-x-j64w=f*%8h_d(BR}Y1Z4tsS%Y6U!|ZF4_(I{ -zp2xKUP*2>uc_=|z)$Q%5pYwyIY46*pvq5RQ+PQp-uH2x9#`waae$>pq6{vp#K1}7>-fw!}{~UPe2rDkPHVk`xfTwF%p_{tK5b-ko_OXnSWbIsc9ydl)>^7*+-NsmCX*)#BLca2qJF&Y5a&*1ipB|Sc@J+9l?I=p4pVq -zQ}#w@CzQ-Rz`p^pOpshYJL8V)-o6@x3dwg+EVhr;S&6*q=l##|h_*UFSESnljcFvi -zk_k$=xJavRsC<3_KLL4>u=3cU6i$$TP -zj4&J%EQ%#*Zt%zMXd9hU92O3Q6%U|C5qCpUl~6ikVyFfU;IfPtm`k03fpMjL~kO!c7OIsQJU_&^bf~GHvfWx -zb4{t{tG^Qv4omnn1eP(Hp0thnbkcS>2-4&2&(<~?-DLVB^8H;CJOlR!S1p~<@lq~@ -z*jT3Ql_x#!-$UfD@W2+a{SU+IZB-I+_U}J>(mLc=J1#PALX9LO=5T?O^pWd}YyIE6 -zDj%X5e3A@Y2nf39O21lvv?yisL`8q+!R}d)okTMBk7sxSt7rptX29&@>#yoY)Y(Fs -zH8p=8dt%o=2PbhgeuPpY)&o)RENk`3GK~ -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 -zxYGf1z?&eBW{0ZJz`xMlr8I8sbN+RG00 -zTv@-v%{wFQB!Y{d>3}VnjIZ^d{<)zS?gKmcJT_uQT!< -zjlWg|J*goTkkFib8)A~SaJX4+3+M;Gl*6jSxQd=#s#3ogBvlHmWmdWtGT$V&Z!WcsqZTQGq2{ -zBK{`tqpgM|P{et$4kE-P)ySNJemLRfy&0(t20u*}MS(pPd&RnP$a{lN)em?=!ge>y -zA-6tqpgHdK*3QNsvxhg_Yk(hnt~?Vwpv=#!trh1)Y_Gz-q&Iy@80i7*)v>^oW99hw -z1^71Yjg*JRmX9{%=aDJ+q|f7KBXJTJzcBv&R>8RmP+=;#4da^9Ul-`gVpEC+wUWlq -z*a&Xb9ye9OI8D0%)nQShLKdKKRa>T0GU<9eX|P`)AuU`^kU4C+WF3;(8iV`#fwCu# -zEew3Q_DCb-ld1#fMjX@6ka3UXNXQ5&97qU$?c3q-9z_t-ZvYybdo=Gb?Ui8B_l=c6 -zJ?>S75I(05W%WymwfL0>+@YPq?WFkAju^dH#Mi1N87$oN_1a6=iOzrDRl}N_fx`k= -zht%0536?J6zcDEkk_iiXd##9S*hhDHaQ=S@%nfJLtYOQYTgT@TcGEBAMj3n`Y#$5H -z$Q>Kl1WIk)E0HtZDrGuINuXw>H?)^=4#~JC9eu3k%1$5iP&~#j5jLzt3^cpy<>Yp| -zg`%KaTQ_8t6UNJ-rrN~T)e^~e64Fz?u=rq%v@E-T8CLDdg#gd!>7sCAZ7NfEorKc` -z$0p)Ht`2mXh(dnh@Xdp^If~IwfcmND^qleM3HYzA3ec|!L=N>Dj(a3>&X4I-R?`dE -z(EdGbUE=3htyN)SbGT^@gh&6Puu_|2z5YS^`n|AT!)mhOMPpT;D2m`BmC}P2z*j2C -zp1W7dHKZep{dxd4%lhO4 -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 -z4&eDhMeLFzAHnc*WDD1p`Z34 -zm3Tn5)whW~|2e_L4CHgssP{5tF7gw86lp9(KIf~@swaJh2RD}d%Cf;rxU>zg8%`ZX -zMqfq`&=&_Ou4LY$1HfMJd41kDN$7SEfz>V|bx`Wi(mjq^<%;y^D^*l&`S#D8hq#c0 -zx6RP;QH7c66^3%8R1QCY8qo_Sb6_ZG*shuEQL=-sI&YZ-`{0y%K&edB}gyE#(NZ&#au -zo0m)E{(&4r@u0o+vEgs$rITN3#E#AU_Bilvy|8@tp8vd|^qrM8ptyZ4;e)PkQkUzI -za@@UNWiw-?>|N0^30LZ5{Z5G9kz#Wk -zTRwdAK0$D@stemiut38efYl49A2z$TX`LQw5ct&}gr{>J6IXFCk;B19AD67#sSb?@ -zjn@U*ZAGO%J9O8G#r8hKn`7L4WisxtCJME06HQ%K#@|G^0Tw*G6n -z-9AH~oIl|iZ+S8WybATGvD*8HUxEI```!VA|z -z)!5(kyvE#(Xb{*kQJbcPFje2)>iX$_5>w2+?BE3SFo4D8BxkFaCJEIA2i5#I-wK6h -z{LWh8PC&8}g+TthkAm++YLTR*5!+XukhSX>&#_2deM_knT1jqM>5UKpp3A{H&dHL~ -zgSXM=1yVZ%Gc%p$pDp4&e&1HrA)QSxqc#ew%q<2$8(_Thcn0M{x)^<`_YKxwwtn$p -zJS$T9617^45;P$)K8eVifiDNDs-%m;T9jwQVc|G)@!h+jtqH({&k&b1A#y!R<`G@@#7>lIl~9f -z(2>VWyhcnw+>`~~@-^KfvB17KdL*p*wL$;H|MoWTSsFm2enIs+a$6>;8YFC;fgJcE -z4ck1jFJQ5mt)10k8;~Jv=^^;)%Lzz5N&3;@c3B~#xnXa4!eU$1uQ?LlIv1?UEcmQ! -zkk7A1qym>@O~#N#Fy&hL++C}}{OlJKxO55#^ten5r;4L|eZ<8?B-aDcd4hKP(f;;# -z6%5gDk5Y?YPXD?$d(8yi;jhIe+Lxq-e9B~78aXuL_;LTpa)8H^XaB_r3lJ(~`$b{x -zk}Mox7&Ld|4Cc_PlDu@+JA;Rr0am_1O0AswfyYitu4Dn4BiCN_?I}W>8vgavM#x=! -zdHh(7)>tCOFc$x;SgQ&`I5T2Lq>t#PYCpSj0u1^W;3B?XHB~NNeP9!Q5CvYl`xwbf -z_v9jFmeFXFgU}S3!_Tr2z~1}szR;0CL7wp7UiUJN<5R&9r^Gvr`>P3P^yZ}+O{XWD -zM;-P2qsJ#m;-i8zr^KBamg`~9!48M&xHb=_PI}3pf2z75{n>A-wQ-^ZhtII~;7lsx -z8+hW8EOk6_LFTqh*#Eg?`QD4)MsVbzKW8@sMA$ejISUauW0e@IlTWEfFC(D?78ZI -zvb^6w_2?}4qCxrn&iB?kkzj;=r -z<8ZjH9}ogBM;&c5684x8Kvti%ye&j#R0}zcw*;CF=t?~L7gV_I%d5RtThYNhbwggQ -zCFpI}E3esCV^K$1S(<7fh>obDed>y{RZ}H)0X0iFoCnAp1O&z%5^4~>|4$yU^$h|^ -zseV1e&3h33GI72Mkd-3c&{sc{T=A1hs!fJIBJ$d|$}mAUCxresL3F;x_t!<<*fVo` -zY>Xs3W@Ws&6{=5vt}6nw9~&$9JeV=Wt+|vqcR!L3aLCb1?eJ__>ipPJpJQmX6T;#; -znxVsRF^UZI8PU1hsPSS4gMzgdvkT#~wcX3B#FiU@Kaw5pQj8&>L#HT_OD=vj)k@{% -zw%{go>Qb4>-y_KlBqw+H{X|l~X{j=fLM;lD6vl{(h5Qb@LnKh|Ig*})N5pz)T4gAL -zGK`PseO9=$@oZb&g~oEO6C#K>&cAuh#q97}NwFvP)c-n|EE0C-&16g!`Nw4bf{~4_ -zp$kt`tieRYT@%j7EZYAl*`EVabjX71ifDXN)THYk1t&p>r2U%!QBX8MxJ0f0A-moC -z4@>MIW8ul-f0#vk8bPo4QWiDOM*;E!bgZ9%c2`E&O~G|eLBy%?(aU8)O~SA1PTD9G -ziX*66K{EC}*~;xb#BG?DTYNz`O`e1N9V{E`NyFo64e&yCvPd8x6l~$fq?&2Sev4xF -zxVtGmuPOe&C^rcCm?2R?ClB?$>&~l2>mFD!oiCN3|1YfLU$R&>5FX|e6o~H+^@cZw -z9v_Z1L$XkEAjpxoBw&>%U^GBdjV$&@KI@TX;1#;p`@>P+0jFH@%e)hnJr@4$Tb*qzIS>S|tKG!vDt -z-%^?xD~bQ{iQ$Yp8^3g{xpbpkXHQ=m^in^c#MoCd*KX5&MkSYIY@KKPtw|{*8_|zw -zWN{(}a=Lx77{i$L$VUcOG<1aR)LSPc{fIL2vBP{A**p2&hQ2uAi$toFYd?`$b2?AD -z*OhM!B;Zh8o@rNhOygt6MV0o5Awh8x(OwIVT@+RK+8e49`x}JD;-^6bhxvhR;jk#J -zPYpzYMIm=*B7KY8&4;bT5W0hSW?TB4*fOF!-C+C?nB;Uvj2q1vmyv+yi^Wm_a7el*M!mY~kAl$I&CHSq~7I>guwhf~8q0|z} -zW<1!O^7&OE-1C@Z!4A=ymF0|nr)-wi4RVVXhb)u9H8%E^j_=K^@2H(5c*Ws;I!87N -zub(p{2&H)LkVqyT=Tv|d)GvVvzuu%}k8N~bUU6q&`kw)Kpyu$_mDFpiT;1w^y_6jTO!_SivCPP -z2C4JnuMOkWe@mo=5keA)d5hrAVHy&ZRP`5QQRh=A>CC0CF}gGpqkQM^yZcGK6dNy; -z5o5oCblfX~O}~Oo`Z1tOD8tS-wG^c)VmNrE*g3-RfKx-@(JT0{;JbTLW6?f(m1dQ^ -zD)QKJEI_%-;W|m`poQLnyd;Q#;hnEe{F&W-I*(Q)b<+i%8)L04^GoSTZ;I9^3R!9M -zl(K9q%nmXRaGUp!l_T7OqWxV&VFsEA(!)u#)QR0XW!oUnc*{s2$BWx%qmT3~eiG_1 -zcT;2dD-T~!J9%%T_qY!0JX~;n-s98?Z-SIA8FJrC^L)^j_~@%NE~2vboMrP=%xjeo -zeqEkxsh;c%$EmaQycf%+BNkWdUKu#3Jg|a&G5-SiKXA`@g|7ZOPS-eASLMY^)TkBR -zYmVFSFFoN4nUdZ<;c(%0Q74`rer19m7u9#xrmBBpWh1J9 -zII>{AO6%f!h4aKnB9WP_Nd(pG4SZo54-sXp1W`Rr3?bF~{ -ze`s_ZzDRZG}0qFT+oJeN-7~)b?+ikst3Im8VylS{nYJlB7L5 -zyi_U=$O)pB!VQUVxn#H_c;^Z5uJG|6|F~Q@* -z#R}5^S2DUt498>+yj2Me!}zyWG{v^sK^Dp2YWW_7h+^lr|Ckuk+fv -zYXzim<9g4r0p7Ng+*$ULD;rSQ_aX?C$@*WJsW-_ThTb)IXfxo^tOVe16m!>!Iyobe -zx#H!oi$T9!tl2;O6(pZ)-Ql#Or_jklv3;rf76qa<6Tu-F{aXA?8Vc8vU_9-2j?ZBn -zr{Yn0Ef@ge{423i8S|NK5SDv;>3Cr&v4!Y6VLvhqI1x9 -zhg8zHoc4}fgxpQ*QtNdB@Fii)s=Ie<^%;O{4T!}MfM|g!jmXPKUUP^^hUmii<#O>1$6VrAwh*Z -z3CPhinM9v6BxFVFZ!S`Xr2k)w*aYluR9mDmhK)AM#jf&|O~|fB`O{l*4>3D(n{YdMmVS*-P}WK7ZEaJ`)I#0gbh@X_&}} -zU~+D4Dh1iOkog0fql$gTOZf2&6zG0~SLCtBWO3X**Prx7baiUL$^jO|e|*9U0D$-T -ziF}C77E99f(}zd9gN`S?$;kqZkyiyIE^0jNI@#yaP+aoVL -zZuJyS9rhM0Xo1-Ua!xbblio`GTvEk|w6dH#c(r=B?vXiUZNTXO29s0eptzf_Q#Q}t -z;x%CbIpps%r%`QNe?-;C-kRI)5hC|qy%~tF)^f^B%O5U&NWbBOJ^-`BeN-?)cwGbI -z6Wy}EOs9HMsRJKpg=Dp#I=wMj;rOU^$iG9|G|bM=pGs6IO1E%VUd}&ihhOEik1P#4 -ztK%Wj|FAl=Ldmy8N=5s183MMV_K&)$4w7n@?jA*{WG;THh5L$3KLwXDX9gNO8s+1LlOgJ^SDmwxr`Dj#$IC*(5@lF$d -z5>k18_C%z#xBMCGh(}_zTy*>|bJR&L&#g7MEDD?)XV4P>HF@_)?yt|Ur8?zc#KTm1 -zPh(4(^PjG}&Ijk;nbrCaJ%r&_tg?66Bp2+F&*3gKs6l3Lj5Z5?8~HPN8o<}5Xg~#v -zy=6Up!>#E&rI$r-O@fL4q%MBY -zk8H^h{RE12Y+~wK6}+>N^D&=Mzvgmk*g;0A5#B99N6M&| -zNY!)?+>&+R`a3#OftQH~ixD+136g?&kKN@?+qkmEe}DdurmGBys)?c?9n#$$l7b3I=aQ02cXvx8UD6;S -zxRi7W(%s!HA>CaP65nIj?>EESc{B6w+&K3fTlV+ZtmJmR+)X-p0P(_ED#>gR-J!BX -zigF|xPLUr)Eb-WIz;WGK^ZP-A5m{ -zLRR9UcUHmJsz0!1{ZXH*th1vHjO0;`XGLcM^cXss(}soycnry_){(qAgDCxr9X6n_%F+-5(9 -zqzUi(vp+IA*Y2yfa2ClwHnXG9Y;w!VyS=MKQ2E_d#JzGyeeC6XU-snT(!eu6n)OdI -zgsu$5sN@ZrJpX=6k|kDQ@IqVUZT-OxJpKTCPZ*rU;fDIa?j*}3r}jzLYq(% -zDK@&K4k?Rd`^CE!uksJQTHM1WA0!^E(*K)snz*if+J{%W7rbWN+Uh&&{z`*2;f-vr -z2%2H9KdeO^P1uQo^s?!ltnbAlXDs)Fj&K9yMsrUY;}?pkIDs`@h3n}UB|;STFL|-f -zjAs0vJH0~p{z2nf_o-GTQDCB%JOAazQ!2}qWx+lB%kcCnPI{7)>S}GwlZgasJuV!$ -z_r{J#8h7v+{l`(BH4X2(mp!ji0RT=E8P+$voGOFNJc$(j9umJ5{nwB0r>`MPB6ioH -zxt08-_>&YT(+FRT(#sb6o}pDaEM9 -zCLe$~?RNs6uo?g*_9`9ieJJ~Mm@CYHv=WJmX^&ak_n(hb?-n>-ohvBbO-(sL -zyvR)D7wsW*8rK)kd2`UE>;$pCz&mN%Q`}G-|87c#P=Ek<4~FC-o(RPz<*UlA>dV!o -zt0?iWQ;(wm!UKJijY!*wvr`i&XjGyO13`+9G8 -zQNe&{ -zWLPvzh301QH}gMnrH^ylk-TM#rr`Z7T6j -z^U#Gh;Wz*a=D08u>TzAP1t_hyNCp=OMM=LH{@Wuq8kTRu@Mmn-^t$M|2qLrmTV__l5L8RhhM~%CJwNxo@feQ&9*8PyHGe3Ce4aR2lYOH}f4w+OrHOl>c^EhXHF5EPa -zFwka7`=Fp1Ao~dWoV8ss&E&b__ondR(C{OiN}71s44(erP$lOr#fWTn&$p0tZl4?r -z2UkBeZ-QriFfl11IJYzIyRbRi(W+C+wwNL$uH!0O7qC*nRW#Sb9BN^vG`|}Na@frU -zmyt`B8&JjYp!E>@(d=H0(WeVRo`|gSmPU((!$N@a#*@UGxP_g2xdOnm>6Uy-H4=bW -zmnN9?n -z%aaQ>@IgFdoBc%J3~`I=T=AhC@yM<4$(e36g<-VeUCiy@3g5V&MjZn1iix=4k_{*1 -z-QgDcq*46W^g|%(=xB^nzp|GeR?Ghw=&3IQ;YJILIUgG2S&U_eI?eLhF;BLrE%yV| -zaFUcUDHR3PO`IXu5a&Fjgj&Tnm|PTE(|1I<@MKZPW?12hi{swkf+A_w{LIqZ0yGlC -zzkHrU6S091iUe)^G$-~7oDH@3&1$-zZpW=#^MFj>9hRJS^VLxRPSf?;%Tko8_7jxF -zCDD@94Vzl)7Z=*x5sg?8oh1Fu19XQa`%^tS=0_0-= -z57X`-{KY=l@;GzVT!yCi>$@$*!g&}ZquKIh=-)wE`{6puCM^`J8@awbIbAzvsbv85 -zOc{;$9oMsOs|KfmRqd|-S{2O^;P2ype7T6iBWNp+;iIzDj-Yh<+k9s4hy!ChNA{2X -zMj~pJvYR4m2a)myTj3L7tQb8uzL3j(b&N;)i(z-InE95#gceBmBT&nXIZA9B*QsAq -z4*4d>e(|=4Nn5k$=Y;Z2?<8sa@)pGEaI*4eoHM|wjXJXj+jUZlj8rpnR%3>C$ -zg=TK``@3-qt44O@uJ;!?WD+$V?YKMddOMU2+f*K1Up_5a7cBL8b4-pypAZu+`S$Fr -zN>ralU9ky%$Jr-edHWp{Xmt$WS^Z7X)!T!;d01csc;_`JhaezCQRJ4RxK{PNc7!kL -ze|0Y?_^*^!%F#U_LhZ~x9o;n)wkn^xilg@2_{`hRF;Cw-nFk8F@RL58@T=aib*kQY -zerY3K;yQ+=;f=4*+Ox!;#Jd1;b#y8Z-m@HV}oIQO>yHHy_(+6DQxDVrMK|< -zhU|eiC-*rbY}hq{-yBqDMMY+YmrD~C*dDU*V2`@Rrd<_;WX}#fJYq+r5BSvX!YtEX -zwM1UPOMT^~lFEok{;0C5pPkO_Gk~Ij`Me|rN9fyuZg8eK`#o!Nxa=9nvjT9aFH8sE -zWUcuj+a>&p%^kaRdZ}25CZvhuomf8@jJ)E$<Q6NSl1A;$TorD(@Z#Tf)Kf+M -z(6Wwsq~S_)tp6V6m;H&A$%C)lRBui-s3Cbm_)Nhk_Q -z5b|8&2I+H17Xl6%&uMHG#{eV-z`uOB -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 -zF7+?#`-zXrGk`Hn|0De`&Xx6%da><33R -zxS`mNWwd~ad~;_ir&TiE!0vk`iIk6Q1^rwViLm9r?Q^$3pyLbMRX5SEeLZJN>ab=- -zsbGAI2;e0rvYuEpq-p9qjjy8L(8HtMjtaGQ-c9`U4mHzZ4Tt-6_ct1>rSy3eUKGwU -zq&Mf~BWL4~lCEHFw -z*uM9YvZk-26d_Qy`@?Lw%e^ZK|Y%mSvG?@(XcmH=ZGf&VBAj~pZ4JG -z2Ql}Ue{MkI&AIV&rkp>!KEmOc>RvBx^xd)}uF9?uc-;Kpv%~lxAuKONxxYrGhB_d7aPNZ@C(A%et^tT?nz-C81^zU=Pt? -zSoFlabQv32DdjNn4PaPtr1~3hv3l0%o`^;n6tK!uuD7bZ!N!(^;?R+`;mD3oQtiKq -zGccOVS5SjOex`d*G{D70_w8fK8kbN -z=_rp*QVD<*TpE%+Mk67{8^v0o^ek_6p_yYd6(VF#K5Umes#Ms=ruC_F)fJOH*V+ShZ(TPHE%>-0 -zz$^;XDg3fw1gQ`_w!qSyn1~*iR;BRho>~cMRQN6;gB^4D#+Rixt9mAbQQ=mHkGWkK -z{3D32MNb{7_F7gZndGyJbfAn*~$w;J*b46!#rtDZ?JIwqnSe|E*+uN -zC@gi=x(9NTaFy`9YckY`(@+sd%5OQO+QG1YY%A*2*Rx1jqrN-u46tDYo0u`0i6ae# -zV3>Y&`1gXM&#-u7K+jq0YRqBzwTv($#ious{E7L7@f}?xjUNBeM)P~#_j@)3doxZ; -z?tjn@b@1T}3i>HH@I6HTDcJ>NuMaq@uNx3smdq-0h>G}*oDFG;tI9%mW^UsWPGMxr -zHvdP(KQme+=JD=Opzh$0K|L2!@pS1azUq#7p&q8eu{O;uu=E620Ww-e=7}w1QcN%M -zD1~t0*(h%UZT2Judar%`Xb3!I??nmN9TVD-QsKbb$mdQj&RBgt|Eqq(Y% -zE{fJ(Zx@`tGEvezb*?Fj(q6TKEic9UlB4gEV-kV@3MhXND1Yo)+b`zWAb!4uztUyL -zvx)M`;SqP}2~Oi6^5ZT!coyliV{STfr~0{?s~Pjl06WRg0g0xDFsNH)i1LqjyVK!j|KLE(-LJ^G(xzGAtqND&sUGjM>?rSqp3~-semN -zZ*6dTJad=1(K>UXP9c||Qn^|z|EL4`WoekT5>rjNoYIusrs+>(rHPxj$ge56Sp||& -zLowQFL_mPopr3n}?(NEm%R96hq_tPMKZlHFGd%1mMKxUY@- -zc*NCO0=>TGloxXhOFa|2_!l?*@2paAymT-1pVFehRS_TR`p(RT8&9&1PU4r!=t!T! -z3l~x(f?cl$!bge;P00MhGJiyHy&#Y~dyrY(B>=c6ZVsg;)YC)7C5FVO@(Z6GNfs>|CkaC -z*lRoibveELhj1(~uR2k5l<^Pxc{?rl?&UJSR(hKkLB{@QJ+Mgtdp&$TsM^;rhbE}` -zTc85hul_y7n4T7gE6ktikt8Khj%VZ~6wh%Gl8ag_L2#Oh`5a$JaFSDr2|@s<8~|g( -zJCt}GH_`yet2Y>78eC^Q#i-vh`VhJ~Fg|YxGDo1FTglO?dDdS76%=4V?km0P%9R=Y -z@`!3;<$&etH-UzsIaMFl%Z&93dc(wB;P_|XKT*B_?NREUWdq>pS9K~byi -zr-?{k9CN=$P=aoYny@+Y=MKigVR6uO_vQAYE#yI8Gb^W(euW8swji%JMb8GM{jquR -z3h(Ia(UVC6di6y5Sr7Yi2V*u(0PgcDL79Pt7^aZ(@+U$Npqjq)HO*RnO!fMQytE5k -zD#g{Db90lD5A?}m_*0)zOpDc7H*21A1t{FI7t>uuaLS2Qk`ur5d&|ACNGC-EtyA=LT7WGcC0`mSw*TC8`{v*l*~+S3 -zAWLP-Nzzla5{haCQ)H3EcNbmn -zT-Ys2?{-v$wSG3RKFdq@YP@WO{DOTl^DKF;If-T@{=hN$SqDPQjN_6&K9l)mHgo7A3@VGb2@9mNoh=+(H2?6BM^MACp(PyZ5-ghDZ#utlOLbr>Fwm -z()0l-XH2)%%>y!v)q&5fBjkp9Y^5=7%YnFXjbH9|dbygk^C0gLGC(cab<-exYg0ub+qPcW4K48We=jcuhbapS%pv& -zq@TQGTQaNwW}{vFOy^!NwP#o+H{l40VIAeA^7OH!Tm}ypQj4uXd2HRUAZbByJ9=%8uDJ;4Xz9iLrcl2fNu@Tcjka=Y1nz%34pXD -zjY85k1QemE6W2d`(JT+2pX=Rqa>-?HZ`cc2hAt$}_;)S`J1&R6!n(~_=_I=`F+6Tn -zwPv@Oe?hR#Ev?^9Xt}rNxQ9RKT^kf0iF*qOPG6#J22U_ -zs?VeAGyO!fZrVQ17^P?Ru`j>7;d(-xBdU5E3sDK`qtF>)9TfiP7-j#m8PL+(J@tR& -zzvQMoD@v0x@#fhxiuFBUiyWmC-~b3=w3Z=X)J662-@-rG$=W*#m^#NF(O{OiHr`hNqhVZZXzruDJ( -zZ(?&R(hD#ff{rZc?pc;5pMSx*he9+0_(?=_=pu#aMqxIsp3%B@brj-LplbzyIWrOh -zXHb!pUPQLgRYO!%0m*j9RI$k%FKQnm@j#CzOcCP{>yf4q5Yz4D%8rip?f@wZR{ -z?>oOSN8ig-DDVf9<09urCi5i!5GdkVA-lQ1UgF2UC&pA)Kv546vtnXJj(0~O?cJoGe)YarHyitI*anv@l@(fIWXZ!Z|yykMa+&*q%IkZPH7{q8E -zvlaZ|3Qv1tCXT|5C5P|GDO)p5=@AXr6R30j;u?M>yU(C}8$|!kguF*^4O7ECW;4af -zXO)#T#@p$r)NlnI0xL}lN7ELw#s!$n&BasQJBOYtj8{Z$7UB`uY*w`-nt}mF#DTOc -z;!gWEW>jt~mNz7GhYo))=|;_Uwwn>wBcEajcdS3`6TNVWR8%CLA*kbMlpYR!e`Q{I -zE6n>Y7Et0CZ5KQd$0Op%?2${R!A#NbwhHw4R0;(ktrus4Yg;~pM`WJhpBPGuZ$3qt -zTp4e+L~?H-G$ihMBNEAcqUxribk>wg-29VTF$zRKUuzyXv(kdvaoKCz1SX90a?#^Y -z5E7?Ez`jmdq@BV*v&{S9X>JYND|_D)^OIY{ioOC6ETO#4lw#hlY*k38pbpmL`= -zNEb?=>$H7_E)sPf{NWy6C+67_+-boo_Hf+Au=V#1HFvznd_>Wl1S7KOEtK>MH!eb< -z$^_UvEzCw?(S+utWD3-$97yDJpi{ -zq73IMM8jt1uWR2K=H(^8c&~+|flk(t61pD(unEAt@wXCTy#3>}@5WZ}#advU_(D5sM?81@q=PjCCIjQLAOhDs%;I$rH{im-=G<*EtJ8Qm}fB2p!H8+sb -z;FGmoh)}IA($v|sw|F{=6_P@_)oFL{2Xcd|5fxM56O!D!?tf@YR0?<=Z&Y%ZU}v-v -zNt4i)_cNyvf(vo{EAMtt*xhS{_GX}z(Sco(bm7?l{0NfqsCz>tB1VC_H -zPGt&D!tkZPX+Q`lbSyR~g$xZ9YjFZ9WfAl?Csb`ZK18slBqdRxy&kRBnJ~>c^d+vi -zyX(7jBq57M=bWo81RE>`lg+g3DEgDe*HhYCp5t10ho|}gDr>|+OOJyVZZd|D -zv)?ouBNE_N_Z`O5!Q{8 -zChc=&$(pBQ_zqRFI(j{zJ?QP^5kVIv+e9+tf|VvwTBg)7d2p&Iqzm8h)wZ6jp(qmX -zF$Bs4NCwCa&tj@Xev{Q?_|cM~j_4$g#&7p&DsiZMWC^-7yoPc#alFMYoY&4h4zQ!x -zp|nPIt|-@{{p^2RnOv5>LDGJq`uanvMfg~*YjLmMR=3^wf86Jc+~evV$o;2>8e~0P -z8zX>jHqSu(aZ_%g5~-BMe4fJC2dVOe)>rmq0t(^}3T&lVV0v%3A}odevIA4h`RJuk -zG$~_nS<2zdx({)WN3&1!2HM{5_vjB&w9An}!C)ScmOqWt{-Abw?E@n;Cim_E(H8fl -zWhz@aPqa=89zswZ5;DsoGT;)*liU*_wsqH>5$tblvuhO&ROc0$*cW>5gqmlzo<;&s -zj{>7|iFU<(d(QmjfNRlUxnm_%Kr|KAlznUTTD{fx3KA$x6${H^Q{yaQPi?B@fzdq= -zG#dTSlZOt`9R85RknmAyRc1xUFfqKEnVZxK{G03l{?8j}iv!O`-pVhV^-$+K3}h}o -zyh``yr_#I&<{N8zdlg67TsoRr3%$J#0SK&UZMa@;x?c5kN0Fn7K26U64BXs+bw%E- -zy7k{s+?*9=KzjK~PkgBL-SPos?m^bNkx>-&c-UgxS<9_MMpovDyQB>+zJ)?R8(~`a -zF*X(ee9!6Q3U`#b6gyrCxA|qN4qFd{3KzVS8{`)|mX>&avNOhGtnSDb^H@>S>vKrg -z`+CD{&;5hah6~=i{7UxK*END^&iEjd;BBL+8qD^-7YL? -z3GGty%Ld=^7G}2d{RNe#Zbh!MRHhonB(I@cTMEi0CDUW-M}3yB9bX|bfH9ybSDnN0 -zC@=dvw$s%848n-RjU@4w82>bvJZjG}-JGjoL$3DSO)KouUz^qC?frFRqp#QraG>jP -zUBuKajllfWODhcC*<0+M-lrqp#&=yB|b9&p( -zE?giPe>G7~vJ5~I0Izyrr|We7EKZ?@iDnJ{9V5zDE#0bowApTW%XSSN#LCt)K|@Y| -z9DwSph*tfYQK`)(pQ!&gU#FddTKez%)cU`C-F46(tg8x0R1V#4`&}C!)@>bVGq_&m%>`P?Al@96Y=W=8gxwCibBKJDpogXd-s!iE{oXg*u@(7Wa>hKD -zc)TF^=ha;7OaSc3^m?Sd+T!=pYZ6j>@Xq)$w(2230t29P*QeDvF2u)lSi-?&efgn0 -z&8tszKfwUYO^`#tC!BXG9b86gbDP|vuW8UdkCekI+1*JV7T)lxF1V*E?SxyF3Ap-H -zMhHUO8VfvjiUeQ5XMC1PEn{?(p9FEyx-L^fUEP_9$`4-2FH`?IF?*_*0nr2Oh?^Ye -z@7wdpj<3sRdcw`WfVduTw|R_VtCSMA+7t%PfN$EHL8^NWXAw-N(u1+uog9(#ua!&# -zHm+E}F*s|0H%4P^0`)?@fN|`{dcHs9P2!J@FSO2{dzO%QR}OIO`$%)+KV`T&TwJ>y -z;1PVmxU%lQ+!)JM`I-MEca_jH{0fj@BPJwN)El)R9-gyG&+?;NO_-#-pahDoK9Doj -zKDP*yO~x6T6G7d73SSl&cR}^$a@{{FFuCVlaqcjF6NX8cRuLiOmC+FI&-bARMJp!=3P?c -z?jqC-@y}bYBfkE5nHbYc+VRBD0{{@=?HxxyylK0Vu*U#7+Gub@a%OSs2~wGz)PX7u -zq@8P7oq>U`okV!4DS4EBVM2unOyoJLx -zIv&Lvo})A1L2+Y_RxLluzuy^K*My-IYG^vB=RuVr=$7H9nYl=>xJJWf*zuN -ze+2(i3?yrF;4pBei -z_M>}T`ukCnP9iI+Wc%wej`VX6ag%Vzt7#C#o>V091p5`{GNOqpBeqix5s`#67%UI@ -ztMUIH5%i?qnf(i>odJQFlgN$^QzM6%wKn0$?5Ujs<8M0?NlG^lWH2B9FTy06zD+e@ -zzso_F+)7d78`ly4R1$3Tk=ZbzFS59Y^ -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 -z=m%|qsp7vQ{%BL*n`TFwxSQlE6rR -zkxl@Fe1%X0_Lo`^Vi8&-338j9bBBo)4z#)W@4i&ibK-O!I3C<^6~Ez$CL1pyrdvW`9tHgw -zHMdo|G#!7P7WD^)OES|u;&2QTQOs+YpxXN1=oNy%`fd5GM9y`&)c3u&D2O$9C| -zQle-P_G#vd&kl{V8BQp+btPjnC`b-G-6@b!YNGqz3?^isGr>OoCzsE(t=G~rt5yEd -zuY|>XTU$KDj)I{jxdYvLY6wUncslTVWH_Zxy^N2hK+Ezi0 -z;8e^iaD@ZLFot{YwG{T+j7DIMd*_v9^Kz>q)sf4;s-qZQOYF_1Z`V;u~ilP?$ -znb57CkPb@R(|5?+^cNxG_Rlx5Vsq=tnV!yPl(giRbBLELSmc4wW|jlvAxcHSPywZCPz5C -zK_2A2So?!4cp;8FmDNN3KEC$->bMC&gWII8zrY5Pz>xxf;60PGsQwX_gCocdN1(Aj -zl5M@>1=r`|M>u9WJ0v-ZKFY=ukC!)(V -z82o+XKi+x`RsjLqc#~Sr#lWwQ%_+ZDkA1Fqd>cZ38qq@U(qC0OjU&W -z%b=Q#Aku=G0LfRQ6$`LhTBixfGBwXm+I*=xlObdGO_qDT+X3vdpf>}x8ajTA*@qhA -zkXOBWNbXtpj^z7U2=_c0C~apikw`vkC_dNxEZjk|eIX~%0DxEnO+9yR39vkL7;I*7 -za>Yx6U8vRvPVVjDu+k=<2w((kY(Ps&T7#C_HuC6~2g6Mu&fO~~Fn>m0+LvH~ebYDB -zTfh_sFR&+m?MM4|2n54-PRPDS*veX)b2I#%cVbcLD6#@W;hbv1_frHZnCD#7>ba2Z -zDdqjGEzp;kU;5bx&)!b?YFz*|Cczk8T^Ji2af1E*5olhnEdZuHxM2!2g1eZkzI>3h -zSev>@x65&NYdZxn;!JusOziQKl~vthATcMfD~|-ek9;JX_ysT(wQA<&U8Y7-w!fAw -zZM~jvyA6x+Ey}0-=rR-V^)~gz^z4srvBVV9jTfQ*dV@(xIF$7DM9hYB<()lf(I>`P -zw6qCN7bk#>yURKub_|hgl_n8L@YQGiEh$7 -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 -zvfeU6i56 -zG2I_+6Ow~G?x<@Gnc=iLtPabPeX*0Fe<|zfP#<=|5v`e$jKq}9!RxfXTj)2f>b=Dy -zP%#5_f?(xYEfv1|(K>Gz=iH-Lq3FqT?EPag>Z(@$^s_->u4bGHXl?EK<-{{=-PT2rV+Di!xOdmMQbTF0%) -zrw;w~-P``XU|@OJ;xslL$w#G>t>+#bAR>1JH7wJcQ7@KH*wr7vR;M%Jw<*VSZ0@Dm -zhk5aM+VW6A#z4_UDN0c^l)H1_LcdsfpJ8&T!PoJy)tF%JVOXG@Z?mVNnx3m{CE@-G -z5?S4d=EntXYn=Vi4S(9nh&r3X{j&E5u=+sI -zPsetj3rt8S>8-CVy93ylmQR)7@;K)87DE3aaNAn$bnzZb!38xLBEm$qgN|)WcY&N9 -zP%aqOxAeq+4m2L%>$Q>DTK+KLhLX*x0bn5!PnK>x$S+JfmAgp{Wf%oLGc6@)I`7D+c -z4d11~*7b+su%VAM8I!3-7vZ$T0B@XxuWMSL-GEv=kyql%PZp>=KW9BCP3)C(mwYLH -z_5rzbjbJ==Y|E?&B^osf&SXO4AV59)Ir}r@A?hrK`3Xgl%Ii&9$IbcXc8T8bTodfyFEd^uVWxd%LMIOd7Rjw;59ExHhzwu1N-GLZJFac`H8ay07U -zpJD~#E6;nx(nk(Q8$|^Kj-jX<{oPry5r`S4^7SZ1N>roXpG^L0Nvc?%JnitN<6e}o -zsCE3<1pM!r!uODrN!EGSnyPT+zqC>3gd3v?;_o`TWpcHC!}t~nOh2S%xQ3Qlb)#&p -zW9acYzC%#G-#_F9nh_5Pr)gMPxl#@Vz5dZ_YFP? -z1LWtCw3D(w6SGfu7!YBlzbmkYy!ph%ZWB?(!1w~o)Fl{QuS3&Gy85yws9hHdjZhb$ -z=zHBrSH7q9PE3$BzXJCjl*VJ2-`q-<;1A#+`!ndM)g`dqu%rmJSV=EaG`eX@M#lq -zlDPY!&cA~b+sj8?Jh_c;i?`Eyg17vI%V^3dI*WpusPNj@Lp`6NCWyB7w{V|lhT;JE -z4qD0_e%VlBO2c%|R!q+3pP%7Om52hj%DckIuH-)MJ+?`z7y4cPfFOV~DU(6od(qr) -z%Qnj_D28wRF4?uv06e74na4~h0TFj%x2u@aW;p3ILC1Hjy7G-cR{u|QX5`p#wUn1( -zX@GQzm#s&uoiqqgFJ~Ik&iwSzEL&6MB|rX`t=RRMzbvtVsMM6;Iep>Bj>6>CnCoHQor9*`F4}fu_BEL1?uK_wBWc&WS7}n>FBkrAD6;k(t0P` -za3d?qpY{E$GekeSRs@Jj@uBW`b| -zn$EH%`}X=GYV9NOehTqj)Ct%~>n1|p -zd%e(3fpk{RNKG4JJgIRu;99ZS#oB2i1vKyd#Y?`c0}vqa -z_urlJNBtXh`SyxpmX%wQLF-sp3C8><-e1S}`t&W0%J|1Rdj)`M#VB8#&UL>{6aA|Q -z9V;!nlerU?^VsHO9`{_c>pDnA-K7hU`s3a9qJJ-#VLnHCBhTEn7p%xSi1Ou@c(nzZ -z!_Q$TBnp;9K(Lmj!(PXTYP${dDH{2#&RLI5KIxaqN@$)II -zNU7_W^1o>W@L^Cekm7pADwO$b7V8JPr9rVV+(|>m`FYBn%FGQ#5ggIV53^G}oxk|n -zH@YUQZivYPgT=q^{-9zpfP@PvB;t|in}*YFJ`{}Xe@nsQ1di@UL1)h}8z%~!p>pt` -z#}o`Afrgepaje4Rm4k*+7@oOfCr1M{NH&g2o3<{LLZjw3&f)9B8269lMXHnbi#x -z40EVGs2T9p8ZIHHQ61T+CdFrUm}yxwuecVB&zZq#*&gKr5hLs5d!Zv-1+pkn8xk9> -z+12PBJ|(WRbW~sai%WlmD;TYm77e|SwvsA2U+!)=YY<5<0G6)}xw54Fz7Soo`NvFS -z*0A3|mcSHt5&(k%;sy#dk_x?qfUG>_aEcF6`GP+Ue}Jp=Tb3H(bV^;fzk&Su$ItgO -zp>B;tFrMe8YgHkJ2xdiAG#)3bS_a?d-5vnre{M6{kB&3f)arsk2z*C%Bm8=N|?shoA_<5-<;9l}Q2!z+~%2I4M* -zCU)aU-ZymaSEox(_5+ZoTrxH~i0J~wTTwbRe~n$ktYEoEtqc_SN39(H2}_H+_a&m$ -zx;(9NCrWxKE;pi87eVazVsixG?~++F9z^=9VsmTgna{U4VieSBydBd}Zz(NwweR-3 -zlJaW}4n9YBox-2!Ykb3b&cEpvgq2GF5E0?s-dlkFYU5APhg5V~`>fU!_{Gey%Fjkp -zzMK~Lo;R1XD|p46Pyc{EruM_X$r3kEZUrARKh2N+v63us9Lya)MSa_g(svma(&!?Y -zIy_LFYm}J=*(Z__nzr%YmS}P~;s^6zBs6gX&o%tx^8dah_^74+kClYQ#BsN5!G7|J -z39c#D_FMlu3}5v$Dq~pWW8u8K(Z-XPkV#z&Hm^h>{;?QM;FM9{2g(BVoGif}p{XBK -zjTJmlyX-+b@#RpW9n>{Gc2hVCj-%5R>5Bc;ST+m_Q6{1 -z|5PfW?{c;i1bPmK;^@MbU!`Kd6rhT&>314FhE|fp@up|y4u7lrm_5kdF?u-YpA=KN -z!esFFhcb|ks6SXAK -zXve7FHV493LTZC+B#D(16ekXwn($PGJ?sp6Wk^R~xiYa%PsWZ^j-eBg2cA%xcYI}= -ztr$1pQjL9y(E7eX_;2q6_un^=e#=wtT;!Fzla@8NgF>FxE3y7;Si=um?;hmiFO(Jn -z&2}MRn>@6^?-nUBOTKdGojW`Jrkr$d7d0q|X1QkcA%5C;qEtw -zM5PTCF_?#-;%7XQi)2HRDvPuG2?LX~Jm{wQ1u7z`$De0xGLTBb7knj52G+0`VieQW -zQoPRcD`S2mSuIGRP5c)+^*!Ccjwu6|eV)#nrSFi9#=_gv%8y`opunACw!B0<1F9!# -zCa4jsxm+s+$*M1xOV!#~bYf#EzlzPtcXRdrnGc04-R;x9wW$v@EPCmc*|Of1dJzIT -zFuU`F5^7FUwvN7ir!JFv?zSRG#P82Oi;Z-@it_n;2O{;B+&^iF)42&Xy#l>5! -zsnq;KJ>gM7D-$Y^#^HbrT~=po8`AwgzWRh=Kc0pUFH&B&j4RvRp(z4@jW~e&hdck+ -z@H!YVXjy_qtM@F-`OBUY;Qa$fP=65I8iH$_v)A6oW>Ip&M+mqg?=)esUzW789BjH& -zw(?~hxD7cng6kN}P~F2?g!oCxEZODp#V&;TW&MY8(3!FO(RK^#+A)q{z>`L#Wn&=j -z8e|~pJUN(A7F1$FVI^`MT3W$bvNapi<3O?;pM;g&=cfmHG8f}x%AZh@`0t8A1)Io2 -zP`a5_(o4bovfhz2RQf+w^fv^lYA5Hungn6TuUxvUpDC4rW5@|Kf4jFhZBJ@~nf%kU -zIqx8!JvN3~o|*WgnW?n1-*-@=`0^ -z@c^078>}b^<3vL(nitamS(SfK%jIswoeGR41VA(Kecg#+tQA%WRm8!VIQ{zmTh#`1 -zuK3m|s81Js-0!?=s<@{r)q<+?0sfgcfB;vF12v;+IC -zjQPuW8kGD8E_8HmLR6Yc+suXZ>dd2t{dJLB4LOP=p|NjYZ0f6?Z3>E^dMIYVbz|c7 -z!7v$NX6}+io8NxPYK+7rG9%ZPB=yS$lkRLnj=(GF%kl)7FTX1>J5e&t%@;)XS~WYrQ(00+MU0%9~E$fQDR|LxmL3ir3FjQGy?GN|eD1GI%sWWi9If&T^N -zG_81O0sP&EKk;ocvbI8AOk)5p5Vcy|e3yb5q(j&H$S|V^@HFf&J1fjh1ab -zF))?yH;+ftN~&4_#hff-mJGx7<5Asvnp}wHkzo4UBK;m7HXY0oDJOgs43_BUr26X@ -zU#+G?7f4K!DYQ`~Mdc`BIo!QI950@XJOC;o#Uu#;3CVulRuCMG-BUV6N7Yo?9DIP- -zC?klQ(eetF>;Ausi(MWEpyH$O62aMN$d3{oJ=bZNu21ltbt`)lCg^uh -zCmAS77Gm9`F=ikxneT+(E?^XYCCp7>i?}r9uIdL)1hD3@x2J>XZwYjT!eUOkZPNxHbd;VV`9xLbP;@0I6~g` -z;-2*c9`1P$~c&=>*07wC#F -zpAu8lu=>NnnK>&uR$LiXcBUA%4vg$a9F5<1KGP@yP|+B}x_)DZ9jylvu|Gjr%s(VK -z%P1d4Yr}RW(+t-r0J=^#NFf~8l%@BLZhp$9 -zG6t!%fHWemhhXzRjwgF&H%vd(RhjI46ubp*F-#G~bu6j%)7M5({Em#Y?M|k&QmfGP*0aVaSpmVk&D#%OL69cpD -z^@jV+gb5(F1su?IqtvO3$kso$ZCK0UDcS_Ah^SeYkUzb46wF_#Abc`|c#`YEES2K4 -zM3F<&St={`wRGl$rKVB{9X2re2O%4zwpF5`1Viu1kyHUd1HhBc!ts*7Z)lUj&I=V$ -zH;!+G6huBO0x+roowu5)8DMd(+LSGkrT5rzF}227BD#1X$!;_*hM#PQzZwMzL()Jf -z6KGfCa&KZ=#c6qhH!%Hv`C@x72@!a7ZKP+|k{Bw7PCQU;}Mb?GI -zBA)LGSU>HVHbk2A-FIr(qJziwlWm&^Y`M~`bce1YVCbz)a0mSU7+DlI@OiP*Eit%f -zTF0ZOp(p%s%e%1}`@IKg*mMCMlMydFjBTb>`Y^qrz4_Xn?ULVtE_=Qi4gWgJiHM9s6E>Dcrk>W6^f^Z-TIX -zef8pZ8mebXtst+ouv@~5PIs7kcT(!Oqs&+fJ&_xXw6@n_XmyTe?2%HDyYZu?TdU3c}{PLZKoj)fw@&zY@-9} -ziHRy8v?EeebwV1uj1EJz53111c9q*W9xZ{uK{~60Pf~12rZgh$6W(WuA^$;bCo&V; -zLm3EdGwVwaD_~a6>v#%*7czcME&|?fp`P_JR@sG7V;b{p-As9gbp|h=Xvf_#+6r*j -z&EO8$3mVx9U;c=;I@#VkZGuOP2rp=Qp162fHkNb?B><0MJapR!&71)7((OJ%XDdX8A0V%i%?vtz0AL -z(hkwN0g%!O>{JW<*u5&IE=+gP;EU%`Q6_6|*F+j<*1l -z!=2=-Lm0Czu&{a*dZ+@8AnJ -ztxQJUIWZJllv^&9nw8;~+rw<4SZV6jv|FdV{{cxWJ;x-sJw*H!p2KXb6 -zLPuKEAS+y4{a6l4jT~y|K5+Q4j4z149nqA(XY*Vi0uG?bHRIDL5`UCIjn1=2i;PkC -zkhpbu)Gy3LnJ|J+*3cMsDQ9y)SdU99V~o^@z>T$yifiiFBoV@`lQ&&~{o#dkvrh|w -zM!X5MU#P+BV!QuyYn&5|p|;3inS2vnqAfv=bw~U=uIK0*A35BZNm~RwFD4f}y3>K$ -zBB`bv7K;eN)$s8RAgvF~aFN?Mc*dIm6WO2h$A|5UUFi_V+eA-xKR*$F&Uo%z{M7!k -z(|?>5<69!m^pCZ~$}OJzyjhNy4j*`#@XBt31oI(t9u)}+Q1Updds9-3amj$*+O{`l -zG{*Ph$W7v>ASChIz%@1ZeTP@`fF1^RwNBtd=DCZ7kED_wuoSBlW(d%1iX!DGijhRG -z?}1Q}XKdUr9m{RP6n1>e033d)@st&K9N=Ehc)RF?g&%^!zXZZzmyJu}RQqR}_|Lk` -zj_-Psm?C?NpX4a!Z%ofTv7lMxBVLm`d1P(jUmtTE^T+xHH)C&QPY!C>Sr&TY-yFUT -ze75Qw6gUJPiKqJlpMWF%qGxE_G~ie0wlQKr=kx0U2haMfUPN|38~MTCVzjNL5ga+~ -zC{WgL`ITTK?(Uv2LRwl}aT^pLv1{9dg75olNE_}G4CCDJ+`HB=)Bq%}N=iy*n)@59 -zEMS`fck?Qc31y&QoiV3!Vya%2zeErfmKKW(K}P@(K)K-5wC5-ifI!wZR8?(vb*p0v -zmWc4$1Tu)0UOIX{SIhu7i6PVSon=ay&AN>n=MRd}$ymIVp!Y{|d#thXAUtCv=EYZ=|=MswkF#B9T#0A=;mR%1QtDxZA?*^o{CMLcD -zKR)kAk->WLP{ibIJDkSXVa#(Ajl2lliLWpO^XcW#20C&d;~~)M4g~O&j*;3>&tHiG -zv~$fU4op)He7~g2qapum}ALiTgW$kk0 -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 -zPi=?;o)YtDN>pOVUL?+Nw+rUx;XPP-BxJ2 -z7Fa%jUtt>1Fzkn$9N0Q>iETb(VbJ>?Ro+hQh~-LN9yE3R47ynl_VxmZ&uh8_xw8rbQ1Ri7GJRf+OvUVbK~e8q;8RNss(QWkng6urQzFPvEj4nO=v4^z7Uc$lp9Ne+bSeck)aggnve;*fDml=1F$djRJEW5OV9tH`7gF -zKHC@xWJm$1kf}4%_q$+6^@)6A-}IsL&szP=LYI!)@Z$OJ?5TjB3*bo#E0tjx($&HzFd -zz)ODD?DYV5v+3<(IUFAIPF6q=9LW+;2=_RtmHVHam>0x4sd5SKu?!`%A8jklelf-V -z-CX=UA3&(Z=>XQ-KslOnr=8G4P+O(`_|e4dF2Zj$pY2Zx=ts(l$OX-|AD;J8m)gM|nF;vEC>d8J%9)s*U?n}CH`FtkZGtVuMVT}(fW -zVRlT#av%Qcm7FN+Uc|y@kWUDeQ8Ca}=@1=0*&UmmF+Oz~FXhw{AGPL1VP{yFl7KNd -zkWKrIFug&9Hxem!kX-GY_vp>c^Ot<9a<{Ob7kvT?m_w|Zw3Al_84!Tg(9V(dWu;r+0~?U -zCOT$+r{!G!g~+=rRPa(C@B@I;n7QaHzG%4D@xV#Q9=M6xB?%04PyO(ZnQkfOBDMSl@}VT|M@;FSEIQW-L^K} -zdPYx#IMsQAGH@IQLWEY69gkt(QmmV^rS0zt;D0V0ThY` -z|28sM`wFc$grFh2q|(}wMPUZ&qpvrTQ^A0z -z3wZ}!{cxA}9?fg~J0&P`sH&q9wc1X{k*C`9CH#oequ;Ib=2sm%z{V&(vt)Lq>VJR1n1hy*8YGUnWU -zyQZ#qj}$PYS4`tn_0-+e^v&X;e0GiKjZ}UKlg+S3P#|WFGu3>EnsamsSSY}VlLKOO -zxA5MNxf`t!LL&1ILVIM+yYhl3{85-+sJHWx`M=}$#fYSWKPQZERq$ttX`qKDmPu6# -zk^YKJ8X!^U2&mly(rwI$`JH=(rf=B`++Ix`i?82~ZI##Vl~O-;09aIh>TZOtTmy>k -zTS!!Ns(*H+F!yEap|8MY%Zt5a$FeNALTKnIxop0VvGE*dN+rd0f&8_?J)3+{PRjjg -zaE2qpRl32H{GiKAHhT-=tV%#Es5m2&7nx-E4U~TPSOJ6#v#*ErzfPFHUtE8WD8z;x -zaTZDNn+^%*Y=f`TH|pUotZE|%F$G%2zmb3u%@Ag|<}1mt{Eal4N{s0WEnyX8z3?GU -z@A%kUy9Z0yqan}}XoV_jMnMZ(hh?JbKS{aj&QPs>uyz?@kt6CkuRVv|H5C^7hmxAK -zb2jP?`{`(^TUgDD;-5z?fsU@grUg>*88pplG-i~nIdArjO(;Gv8yLMfym{w!mo-!P -z=!F514J2(h;M4Q^rlO3>H!jsdJ2&SiTrgMixKa?TU^}go&`7}_s3q=esblU_$jJ5YqAlqm*`dCFq4&&q@3q{_8=3A -z2+Fp;-Q#giN0dg&u21~)wJ2X3y-4G=sH1F&T`eX?+SadPz##^Jslwx}D&}toa+AJq -z@iA)bhwVAu+}tYoyJk;r^8Fuk3D%xCa(q~na9jJ1EdgWrqLJjHTkk0epOy-J{{Ai& -zKj-ti_3zL_&33V1-`R`ighIDRDJbCWmRe=RCBBX+3U46V>)UyBF{phV;tx4`u?w(< -zF*KX#b^3>|59_od8ylm`zEonp;l}o@1{`Rh9m{{xVQ90|&$$FlRy>(FvQ1_R;FQ8l -zh=``JvYRmTgez9$N(_@pRNZ=^vPi*JX;ybcLoN&@h2py}3F!ES)x -zUsA&{joAXtU_`05k%1DYmw;{mK!#Jg%QU#Hs1(H;9b@oxK>W8cU<7?uxR|%;J)uJY~;^Im>@N^z=(AG@JIJV<2QN0!U5Y)q(HDsA+uBrohhMIwPN|X -zhIO67NU^RpjKrD0t6`+bL$-6z@}Grgq36f9(o-%!#}VFX{;U>w44!}#DpCY_|3iwV -z4Wnbcq#-sKsYbo*wK5q)ZLv@dZ>%wymkTP)=k7*WaedN|9NG|%*v%X4ve=9jSOuqN -z9yhj|`sE_N_}i+=bRqHS;0>zfBsH{hoeonYQd5}hqHlvIFNNX*?6fsUMc=+JbAU&{ -z((&tIP+bOfjo+-VnyDr+A&^UuEX>JU;|M}y#@@%%xU}X#zsm%X!YY9LS_>*EC|t5k -z9JvcpA+EO}83^BC+>F)ND=mt04pR?Tmt8A=(1qk-_C&Zi^v~1KQ>QG8RP@(ONkTCf -zJNVAAux+47-Ksl>&eI;(1#Z_dySrh@d7FbC@{^d`&G{(8%H=9F_e-F#>%at~ydzw+ubGkZeeSANN##UZ^vHf#xrsZ8 -z#tOvsCHLVAIQ6*pt?2jxodHH~M}wnQ+t>xh7d5ZnNpW$HHU43U?bHJU)INvtn@@_p -z@!LD)EuDYVcU+See%nDhEGzhJ>7Fh9(GkhXbwUDI#Ycn!k)9LmolcXgbX4`Q -zZh7+`T>51pr5VM1BOo*+#c1Bouzqz&w0}`VRhf;HYE6z)1~U%m8whw^9H^ZKuEhr~ -z$SGxYgLymSHkkv!3INk&4Lr|2EM?>TLq@T1T+-3R<3-jVO4%+5{1*u7D1)Edy!{fl -zO6XrH54490I3#$ujyHQKIs(}$60)DFMBKkb@b-q6R@MONS*rVIoiQqD) -zOzOE%UbjILthpE1l3uix3CGY;K{uPrjR7bUEbk^JOyQa0_tEQ!ly7TWrgg1d0Lg$;2B0<}(rHY9ez22q22LKa6H`-lP~t?Tdh -z&{+4x$}@GG`vv&$LKiOd-<=Qqv^u9#qo0#hZi)V)s>1dAzv)tuO~wm8*qy?}?1ZY% -z`(XeJgAxZUTphQv$2{_mU38=9Rf8D$E5!u1gVrP5^TS2bdSr3va@4d~>%-2v -zrtBU4*u~4N$F_BVP;dvv7pyVcm7eRgfpN-oh1zees<*0g#+rHAvz-krN4_wkx6f>Ew3YQbFGu4o$I>x4^u5)@16> -z_B)tqXpJ#Il)sHhWxf>?9GyY>@8B}xYKM4VeqhV?lKap9iUO;om2a#Do(^A*8SiPk -zpX$kKKtJ%yXcLL+4i|OC%t-@tnQ1zd3}+wRT}Q^O^HH4p>770|I5 -zC81G18XbTgd_s!OR63otkp60bYGwb0*UpgMHG|;4E^wmsoxeziQ4-#FjR+Oufz4E} -zHJP&Pu9jr0D*5l=ls~jL5F9D8|NQWEk7wWQNw!3u(d0a2775*Y38gkDRJjmE6f`T= -zz4fa0gUek-`t4c;C!R@&?ju58H)IkJs3CP3bLDY3(>SqgvtO+rpD&X>c6b9=BT4%P -z7yG30A_z8%&hd;S6*Ff$)!W02q50Sb)=8gBI~-=N;D*~_^fFj(p!)frXBFj54ZP;Y -zvR{TL+U-ca0D?}-dXV=PW}sVp;1yHzu}~b`F8{tzp^vY!JKy9T3Krj7iNlDy1TMi> -zw62^z8Q> -zLtZJn$I6vVX3lv8xg2zcyHM4isKIQV8sPsRW}?4tMDiN$s6jFakNtAL#Of617CfJH -z<)y|gKQqLOdzrdBp#{C~GaSd^vyoB}oJclY%WpoBf#!#(`B+uVF+Ho2&vvg7QQz)% -z*vD~k2Tw#u01o}c5K`~^FfoU?COTB?>OJ#5W*Lg5s^{-*Q-4pLKMQq|_Ivs}=KJ$= -zucbyv?9xj8z_a@ff@>NjD}(CXl+37F#{3i1ECF6$y#o{dxP3$;;|`nSZX964Q6H)Q@PdF#91D%Jh1^K3u+6$V1(D8iRTiDtNiT%eOtz8)JeUF+n -zTPumoe~E@)1=Q~Hkogys*V=~X8LxIUt|chUH+sWGg1k}Zof9?ZvkH^4o=>{-`lLXX -z1>!aY81H7hcg8*lf_tOLdZROLu*w8*<;{20*!J}dxl|wHJ1rYui%{k6+as -zJh#4@s1=n&5=1t3#&mXX#uwNYw4cmNKTQdK{3Y7zO~(I7i57UWi|^u3M8(Ahhtq7c -z<$O6!&${va@@f|-{mLvAMJCrt{qRg}?XV=c{|2$DH374KUje$@3o?DELw6?K86qz# -zg2(<#-d)$p12Qgysp=(!Me5=Wxj90vZK^^=o8vI(uGX<=ZbRSNGU>>t=QC>!&Jj~U -z_g>U9nz;-&i^k^BK(OJ@9s#SINZ=CYNkz~5- -z{?@XU0GW`Y@6$exOB@2Z(@suJ??-D4IQ>3$WPo(0-C~kK%8;xG6BUk>yGh$otIWch -z=k^JEP6Yn0u#h-duRjx$)9HEzXHlLa4*;^=}Y -zKJ+qvLU+0GUC_?^AP;;4us9W|@+(vC#H}dac8_cR$DwAk5Hxp|H_)ag;I@+&M@*WU -z@}{=&_EGO`UWn>zyLu$s4Hd6riB>OawN=E!8dmL(2z5{nnUYcLU?Cgk$yd1l7;l$0 -zJR6lSIT!gKS_oKOhPyuYEV3nRJb2oJriEkt^y*DK)v5j?KH(yHj^sMv^O{ztR-TQo -zm4A1I6eJLTEnVm($qM55(=3kLcBOhRe)-DYCksB}o$F}k{Z{_&B_ezjPQ-@XPs(v4 -zO@n(>lCq)i)zOVV2@L##v2AE3E1tf4qxZtgl(_^C&z6FkI&afT*K#~ThhcY{+1l+< -z(Tbf62jR`yjHKou#kT7yB9mW2f6U00`!j@(Kl37n_}V+R)WD!0*b{L2PR5ucdykjv -z41uOoUAyW4xce-8jfexvGHfl%0;f^cUNVWk;VzEEu^cnfFH_Q#xY8&|(iYG1+T8L6%md=^77db66l -z$UATbS%Ok{70J)j@Js26WZj5cbc-0|sr|cqklhKA7|;3_(-O87#JgSw%f-)^yS-A- -zTS$@8YvRkcfNhRQJVWuz@mZnNs;Xk<41@>-L}!0V2UXM{a@|UBJ=Ob-3umC)_Z>NE -z=eLtjo%zg#-(E|nI%7FUa(6w=Ong~$N=T?qSwaZpIsjaVqu7?LLD@2qI{p<|q%9iH -zdc0S>Y3~_%JCPVY{B4P+3=#Un{A2XFXc^}TEGZKrZkHB%f6IL~E?$LZVq6w1bgsTrl=Z581l2VIO>J^qJ9|?-k;J8YDfj2?~^D@^^u8GNx^VwtMz7kZsqam;} -zR+nGH0Q%@A9}u(Q=A7jo39bB({`TjiI{-MmiXc%6YdXQMvI6H?Ux7%E!+TUiu^*$y -zdx98&Fy$o;!ut#iK1=YT`X46Gl^~V$KieL=rATEI4)Up1u&6Qp*NN_*@$d9rSVc@Y -z$?^}HYHw>XZ^-P^V7`z6uik>{Rz(Q%QE -ze)b*a%l{qf`~@!JSM>K-Dj2;1VJB7UFqtfMcdWZvkzID!Jcf1vcmHc+6eOP(8~oC% -zT?MpJD8J=Qa%B~Iba(?}&d9u0%Y_a-yS6^Ad!qOWk#W|s!1Zgl;5;nw@o8V}4D#q;)EPozvwZNy6B_-n0O?d>ZS -zvo;vDQabqAizk)mGwq0ncXhu&MRpN1aVLKso1X$J_?pWZb@-4+cK86j;J~Y>7q(Bj_7ITH%n;_G7@3@KbjuF577D@Q!l+DXXUauYZ`76un0~P4!9w74rZ0vQ5{WPhl -zvpH%xHa6etE$0A%nFHoso9r@(>j+%!EqF)3#K%Qltw%#Trg5l;oK*aiyI|^5Uw42F -z)s5it4o~KT0ZA~WPq}pSo(+e&-tYMf%JC>Tm+LjiL6-OJMdyE^-ip?7COao#Pj7$9 -zkX@}60}%AKlMt1ba$b0ijJgQbR}Ey)RNk+ftL!9u*n>52#dqe#=B3+BsfwG&Ar&q8 -z7X~mi!+ROJcn9#l+DY!efhnJ@#T52zcG*eRmjBvX5ltP=e{6M}uRi%T>f{v(Zh{q6 -zpzu)5g(4&48R{8-;RBMT`*}GIsSN!;=m8gqHkG2jt(IQN>j-7`td}J{&2-)Tk8af8 -zXND6F>@1V9I2W~VxuBmM4z2lx*wJ8O)O8S@_rjN(xlQ-8665RB$z%{c?E&u9@!31I -zjf&zrgG5S-tjDfjfDc)A48V=cVM$zCP*MZQFfm!Qd+(VUj4`!m>hN`%8Jaw(X*Fx! -zdynz40m^IZybh4@fOAtp0#xojeAfU6m$$F!&o&qj~y&=KiETVM~R&8at>S#>ed4wW$=p -z#j}z&|8-^%@u2&w&Gc~QZu)t>zFq1z_Wc;Fdr+r7;~b`Q5rv1k8sB;i(;*(W>~b!8 -zv%44!Ed-PRKem51FY005kQ?CEiQIA>czycS)OT{_Z`B3-`(g5_PY#7-Dq{z3Sa;`O -zf0JQ1Y1+W9_E!V?jnOwOCs7!}?q4pQ -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 -zLA&qxGC*k1g6)F*Ojy7cl@pr1zUX3Q32tWb -zn=8nBdhfFXcwo+wGTe!Ra;Z-$M(ajfIt@fd$1u7!vu(ZzSxTByag&n}AYyXrcQ4lc -zsLmAtph`YPk@P_(3G+ETH4uZ_Zs2ag(Igz2_%+VE>Z}i;CR(JIocQB=xU?SD?!~E= -zA4%zx)db6Lx@2n16%=m&E-;x?%N>iBnqa#BYj^}3#4*x&0-_k!tL{u`l3`z7#hv9^ -zZO!+FX(>;*Y+H|>)cOMe-AIErrfq#Xmy5O8;mg-*UspoWK8f<12YD5*7b@=*N6lljE&G+hA8kH|ddOX<+Mj;Kt(329gYEa*xQ8kf6_vDaUpFI7Tyde -z@--tS-pi*kypUv*S9%;GUp;C)QLc`+3fHCksY(;R1x&NF2^~nWm#kPutB$`2d5X&O -z0_3R0!TfzuAsR%LWMTQnNT(@a=0C@o_<0CyOUW4Bv=_S42@vJJHqeBMhGyTqQd7t) -zxQI=5=1$RMPb{v%!)%1jRU^m^+WsVKsx)W2x`*P!Ne}nKp(QNkgj*P7)9*1M-#y4m -z5Rg3kGNKq^B~!R~w^+I6e6tkJDUEctktH*(OD}q{>Mn82l-iug=-cALxXe4g)B^8n -zD&uU+e>VPS3Sq2etbltRQ($jQDP3S8c8jtA`7T>f4XLTo=L(anZM}n0<6eg3Z|UK( -z!`*2GY;01gxuLdpl9LnEc$!O|7ME7=zPyg0)8|~Fs!}A>HhjbHBd9-G+48JWtn2a-1qQ$&PXCLzqP?HNb&X%8 -zTV*%sCe$tbj>ZFHb@O=n -ze~9FDWukMBDpXD~M`M@%%#RHmOn@RwK}IJ+#u?Dm51xu@_*9$S^`|^=-<0Nx0kyL< -z_Qzwg0b!oJZ@2WkZq*j5gv~iQrUyB4r7cC0{(yvWB+w2g>3sbrRy%_2#ckf9&^#d~ -z+ay7vG;10CW-Y1G`?Kutry?5h=i!W=b< -z3iG@?4By5X@}F==?n;kzgMil@E|TsQMk~lGZ;8 -z7d`46h%thWE2-apGB3;)qFM>Nsp0a560mYW -zL4^@$qv+j|mo@3DHE0z5+qA};lVTimfTjVI_xrkU80M5QMk!azZ~nI{)H^=YnLkq~ -zZ>I2K#S0dNZLj?|&@mPNQu>1PnXrLPFSWxvJCP`YwaLI=|8$?SRdNX=3_L`?*^o87 -z82=NR{~L=jH?_iVt6wFyD5q!GA_YtNOGF2(=utXlY2&i~PbRbF`t(Z0k>vO!s{gLj -z%Q?o!oCAP2EntD8gw~&1y+y=;;Hi<2$8(+Cvm@ri<{_my_|i!YPipiUp=G%KNxG0{ -z>|BIfTnc52{m3I=1Wac&W6W;n%+Q#uE+4vHA>YU`SonIohPoTRR0F1Eop)QN{ZUxi -zs9_ImHaIx$Pnf95o9JG&uSMo5EMPnM;k)wzgE)jZ@H%wW{ZbGiiGDeToF`8d8n{>h -z^bmIEHSAs_%8NPBlR{YcP9r4XdGOWiSGR5?}@WCuaQCh`18vQ4Q=kPSP^JB -z2j>1!D_ugjGk~yVBqW;38 -z=%H#?M^F-40$4_@pJ8*Axs*g*=V+~n;sX##^=C4Q#y0i$#dw@xQ2q$M@$!94Y+fiE -zf5LKd4ry4RiZAMYTXOsxYpGCP3JA-8xS62PNB6w3&R)qqa<;6GN^v!Kk0^b2wMLQs -zBUc+M@&!egg{zP!0V`4{`P|F+Ta1pn5MPTk<*PwNXn#C(f@ck&C(bE55d<7NnHcrj -z;3SsOGrhN|10xrzi2Y-${Md^+RBQ?K;PIKh1^~Q|Hb)`FbZ~r3d)t}gEvx_k1G6YZ?K9qYvocOAleAF;78U+2qNOO%$bv??7L8Hz;GdS&Gv0i+?Usr-=dod@ -zILG6c6`zh?eU+-h?B{yT_=dR=GDvvuw}BM -z-Spv?V(Hr0Fof7CLJG9z?qon -zOzAe`AwMzfeUcig-Xlwc!ijxh3yUoX_E?{ubgACkZmZ-)Z)@RXu=|4fuL3HVw|?wT -z=dep^V6}yD)%eeX?<6}PG~HO2!yba?5ybJ61s{WC;OEl_If?M>eqT43yQl)f-K#5u -zCPTe7)nJBkDXgusBUE@#sFx7KiNc7HJiV3$9Y&r4DwT*Z-~K$)JN+zriCH15;a8Fo$;QHN{a??HzHf(^iLOZLz -z=WKLttiIU8iJyfdX@9-i+>g`WfDo -z$){%Awu2v>E|lQ{O`alS+MnAJyuI>^pJwquG9C(*t>M&|H7-Lb{kj4Sifl|vh8-mr -z$w55KliaFPl?)&FAmd5ZE!N3&UWZxi26ueSdNY_YK -zWXsWkaZy%v2mWdbe>OH0kG%4s*mVFd119>^h{;W~&zH8%oYZxv^%;n~ut4Vp=oy@w -z5kYL{xTFv22OHOH5mq0~!%1qZQwgkpVm{xG2?{3VGCD;2y&|W8#rbI5vM9rU^09?4 -zo+wfsu-%U-FNpc1h)t~^4!(eWV7-u$8M0`9zA_WQL~fw*wpLd(ADFU+wqGv{twGbDEv=4iW!k_? -zJb9YeQK3#Rd83?RACq#Fc>X44hLFWybww2kWZ82gg&tB+h45Qd)u2G(cKhj+1k){C -zQ!1pra_7KoVamG+tse&;8{bc@1SN1D9>FEkre-js)>pM}l`@8q_8Hjl4w%lrhpd8j -ziLGquTVmk94B}QDpT$R3_ZX6u7E4Jc%aGzim_vSIG^(q~->J}!V_vy`;}t{bpwMM4v8#Z_ -zx=FecJW?o6Y;jXl^-mE?a7k>E!>d<;^Sqbig;zy4Ndo4tqKk8w1P>ZUznmspL7zjM -z>O{$}9s`?+1M>NZ{DtnLvE)oa*y~Ix;!%00dkfw%fbx$Sn;p;UcF&vzQ}0?b2jGv; -zP-ClVa%7NFo8srdMfL6~9MPC6;JiQi2?2yM^n|DamNjmYyCG>M@*xelQo0qR@B}@F -z^#Q9Zz4>q3Ll*g}xA5AXNTy@vLppzxm*P@tbl$BoiAtyvB*%Pf-xq3~STCj!nQisN -zhQ(niVk)&Tc?F@SYuf&sLXj`xVGFC{bG)vwkQc4bbCBQb@cEp`Pj0J7p6AoA=c|^! -zl@uZkyP|!${q---4-K^6OUopxdN(|2x|v)n#OHT4k8!=+0hl#l&}8$@Xb`*$t-}KI -zU+!(K+T*`ADkv`uITQYFJ_>IF%4s5D)yO4aj5~@#`nzu*i?MQ^IqzWK0kS+x$EdDq -zK)YHNKde$apR+_5bcV~9NK5_Ba(6ZiZ{6f`tABf`L=H-_Hg;{zW~;XM{!-0)tT=*> -z_N#+O4-QZt2__fibzt$)bZo||!f>8>T2e?^?;(LqFWf12T283;G1%@OT{5`XDjmnn -z!c}sfp7Xdw%Sj@L7tFtlTQ9YJ2`4&IyI@nrf(-7`Z95PkS)!wXxj`P1kiW`uYJLo# -zB*vG+ay*6}^QM58(*9;dppX`y7&rL9ax(gB?q$zw0ZCw)V8 -zZzGOJ6!YrH@G-!ZL0jxZ=?zhD7l2-$56xYc -zVQzEqJ#NwT-u_?51=m%O+u6u|$efE5o| -zW9+`qWuw83!>B=vt@C3rPR>th^I*T=gZQ!-%Pfcxt4X1sw`| -zcr_9`&*pUF3>BeI?c2)Ilzz(@cS%4&3Aopm(4+Yf-drf*e}%GF$;aQLM-hb$H)9zB$`N -z1Cc7cz08F_t`R@^0J`RJK_rBecrH#iK;-*L*yX7ZwZD^I9xP&w+-g`NBEQgFy5jL$ -z0IVM{A3Y^b`T401!<^27=-~|a!z)GQ%~*!^e~VnHF7VSh!u5dcZ~WWF_2%%KIbSKO -zF!^sE2jA`;VTlDby74Rww=^tX%+%~njE@*$-slK|nY{en?z*Ts#K_PDWM)H4eP%|a -zFmF-?lR}T^_=3govq*}FCzuvP%e{vM!GMHUX0WH;s6G&Bh7i2twS1KKA -zyUTCbTJKjd(9?Fx67rF|(eNUuILjY|ai1yKxak(I)^J^sv@NV1*m)f4GURnyQckBH|sZ}q0#_R4)nn|(c -zGZvgt+x@$wIA#wcj@G>?6I0$SDA1su%C|o)NFIdja1GrAT0Ct80oZCq0>Po6-`UQz -zX@$eW5D>As^8T=N7wdkle&P-A#%3n2&Bfo6Zj|P42|(t5q48oMERHn^fy6l* -z-f!e8UQa%b%BcY~0AQO7&iFwGwb~37NfuTV#NXQy$jWZ1Vp}BoeNT1(I1fM|f6uki -z{-Ow7Xr -z?~v1{1>0f#3qS;^T6zZWRwULjb#45BcT(&pBLoj=w1v!jRoFF80s0egg#mB7_}Hm5 -zMs%9+175{fKZod~oMX;WomGVuSRCQ~TCK~*ILl(2sLD#MbOB19jAu*sQZTFEZt=e- -zYsbHlLR$VYt7=-&Q8ehrwGPW-+hG-(M)y$4;t# -z*pDG3y62_BU(mO4bloY3&jagALI9&-u)YN2l4b`reQM7P27qM2ABdhg~;0#mLg@^zdH!xOdK=v)-? -zNFuE2Xz_<=e4!AJ*&lBr;IHTVUHD7xc{S1x`gubG5qq5Hi6J^xA4=?H)h? -z+Nz*@0azmdOX>^a=d-$T)oPk^NZHF|YKzzfXv!%TExK?cZlevhL!35j{fsQ*I&{yO -zc#ud8Be|11Ce=hI@pqq45ybBxpppA<=W6%tpT4+oK9-LoLiMm^XZLy0hq4>feo -z1A{dcR||_s1$e2e%&%#gs}!Qb>2j8l>R|}G9KLo5{*3EmCktP -z(c9+>Axa*hed9g%jWq3iS-(tQ-0O!Ixzxb?h1|X4vXm5-pFt>XZn2cbHXQPS%(ByO -zR%ri{%F3+UdmLbV1KR8W5O{3ZxT`$Ni&&-ID2?|YRzG_QZ~A@V`L6&{QoiyMr4!(- -z0M4PTx&r>Y+^C)nMW>3Wx2%fE^hZAes7a0;mK$NdvG?=ylo;QEj?Wo?biZHTdIR7G -zkWdQs`pm(jSmZ&m-HSeT>3y9tq(iA0Aqe{o4nQm!RcXbi`1V~(=q`Z=lj_a>C6&Kn -zQQ*S8sK?F@X3|AvY?vj_p$fbMJIPVP36@h_j^7Pqv|BoGjo6nyQkw+Wk9zHkANm0eAQ -zfg|}!SQf3Y%_j-B&2iJ;2gDi00kCjs%;?6KU=_L+&}CP#GGRIon^z-9*^ODdZUglF -z+sO-(w^!;T)v!E)^~m;syJ2+yS9vek938>}nR7pP6>_q3I1M5D@cL)K6OKcy=Wi(r -zeTf{dB)2#QkW7?K)nr;HW>FrS=>Yp>i}k$HR@M`imsj&W|FO`m=luir0&nP;-JR2g -zeL1*T0z+yjm9O@ngS>P&rtk8quQ{<(iLTxV*ZBzZ{(*pS4mR3qE3J{Wfuvk@i$fu# -zgoUNBvv#M=xI@?mZWdNfopbq2c=dl1q -z04wr2q^uzxpXj2qNkFthQ0me11&))G6<;qXQHaPmy;+eY6d$t6LfR=*h+I0Bea|i>P!`x9OTNWSN -z -zfky!|QjtO|cRy09gyc7qnQ;U;5ov~qRR3y+YgLHnGKx6FW$0dRGJhuyC9}7OCxTY9 -zbGJNWgrj1_=!HF)QnK<%)ZDNXqYdMp*3M#aQ^1yc9?&E-KT`osgemu6d*s1~$#|Y@ -z2)&jue9bmx82bV`)|lL4{V0(N%m7vXFtgJRRP(#%agM;ij{a=hDd5CTMcyDh8C`=Y -zZfUUgsg*9i+J$2`s-u>Li>zwseju{j;>QpRfTUF8R98LOAbfx72$BNi9kE=$m!XsE -z;@wKc!DIX8y~+Pm&30gW&+}h;PKoA=69lXEHU|pGb~1b5pL04C;m1;W -zrFSGpAbzBqv7FqIW -z8_z52+;6|W_kC8w@{_a|b4b_P8MY`(L)N8M{X{-y5KP6-v<71o+_#Iy&Ot8~xSi0- -zj+r2z?l%luk_bqIRlywi(Tk)ApU>=mD@Cr9QQBh61KmIeEiu$3!LQYh!}d#w6-=@Z -zJfnOO7ykVBXU9hl74Wuw&Z<(w%P};;~eELG5US!&T!?--f{ -z#IcRmMoUlv@T0BKGOBX}eRw@Y`@-II@ytM;2QY}X5q4_^;hp!s8bTS{qOq2G5F2*i -zSRqiqftI&^Vf;y&sl$Y}^f5Q^Ew4?|eRSA3A#M*S73)S9=>n%(1qo*%ANlTcCVG$8 -z!tmb?l@9DbL%casFGpWv-pIQ!)Nha_brdINc91fTmmKqUJ9octx~r1_J7+#WAF(ge -zB5DlBU+C$xPpv{OKHjzfOr2=KkMTscW^*MeLWH`7VL_vK)C+fDP`#G6FT9-Cl2VKR -z1Vf6E?`WNtCVLhPLP?xKWR?DGB!{(~AfI3XQhbrpOec|N_OZ^#@RSK1DF>lB&D~Ss|CR=so^gszhgQ$+ -zS~*TY)@EoBC4oxoZ&ji4F?=ieW_?UO-0f;B7-47qLQyf|xq@t$P6IFH45{1qcG-M2 -zF4Q-b^X%H-^!b<_QiP-U6gcA-AYcXDa`^`xmCS9!JBXgy>?l;txf&R7$^clMv9OsQ -z*-4DXH-mvh*Ctb+_mnqn)bK9`{Df(b77Eq-IExHg$Bm}BH=5E3V;}@DQ2#MuJXP_` -zUxpds$Xs7s_r56AljmmjB0rQzyeB<|;J`~hdREIjA1CGQf2KU6v_p7SYgL(3ZH9H{ -zIbGl+|6(jGbKLotM7ECqlqrI^T@aB&7vP6$ -zEuAb?wCGi&8nKbvRDY5nYB$;E(g;lbA5T{u5JmfSL6Gi{knV1zyQEV(rJJQ&UZe!1 -zrBh%L5s;7+q`SMMySu?}*yZ>Ay|XjV%v1Nd=iGBLuzo$^$WIGvum=7Y{(EnhyARxv -za}DN_cUTvALw=8cBDBeSYi*Jwp{vmpugcvw=Gl~bgl)d&B4~1UgM;>m*_2ZBAg71R -zaGXl<{y;&Gsn6&yOKYB6c!~%tmRm^BW7PddMWjH0F&pM&ytf;`c8}@^T-L%*a&>xHY#j -z!Tr<<)GRnPae!KN`UFG|-i{R*Cr -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 -z_CScZy -z3N?KYRmyZ0P*+o>U0WCB!L5cO-XMQ=6HMLX+R){Bp^#nNHUuB{807!-*@^cj=I -zYIlO(LRwWu6I}e~(&nvK=&E(7-}M!It*64yFyaC!yxCC?$)Y%=)O0NS5gxfhMjZtKv@GzNu_ -zyUvtuPhqyv*Alu4-9l;c!Dl`Fca1zNaTclFn&es4RRm)M$z15&Ki--k{iG)Whvdn_ -z$3glJk6&H_bx)V7)I^~Tc0@phLt@!bMZ|w4?U8+B;32#(45~0NUL32Zrmh-;D4N+W -zE26*MgM=mwp5#+~fG{N_Spx>#JR8#(7!YXau37+Xuw#2~G417h!@f6=(bgji|I&2j@$pr)TZ^M+$VgQTI1C&ouJY_?1qbdl&z?K*u6{vDi9CSrOj1?_G8Y -zbq7J?#&2`5P|fQn2MkY|e@eu=QNoOb)F@g5RQE1eY}eXQ;rx-!i;L8Fjv&Kb&P*ov -zR8<%*b0lx{|5Uk_f7ynrK)SY)>@$kU-%Eg^Wms*bD(pLZ@s~UF3d#^U9HS%?*(%B@ -z(?VZV;(3u8jxLOnXgP)u;nGrlb_^Z5IJ1iiLmuvhDxfdB(#fTbZ3nhZd(fX;V?va% -z!foFxx)S#C8+5<;z@wogE4I0g_!uIF@dH2j51sVw1ti(<87?@y#-tE)25oAWQz?yT -z2d2U@7tVLVd)I7QwX@7RBF%Dd*$+jM|5_WGW1ZH+TGI5~k+xh=Uok(6Y(xAbNq?oj -zG3Zy51|2zD|AbVojWaE(xp&A5eP0Y3B0jLQk=8l;!rb&u;yDmXi-HFn#-Gk&+=v}U -zv8PtMC1k9EZXFF6XE!`iP8;Huku^Ftc@QN5YH9`u$&2=gHM>nA~JrK|r&W(KzmMTI3#}cG=YHw!YU6oB5pvZJM()Sj*~W#z;;3Tedn|U87y++_Q$Fmj88- -z9XHB3G2l; -z6|DMSH;xbSD{rs->8yPc+5<{mS>y};CF|NS!E(CXVJ9u~d^qJ7L+pSygYSZ71ZmgS -z_eZtGNb;e9VI~5PGUcB+KBgH@Pbs__=n_2n-$UL^Kq+XO)@cCL5pl>SqBWSFU9E -zuF$s%vsuvM%!w1D(Q(7=ZhDIk1W#YFmG63YxJQ)mdHuxlry0>T>*1|gSUuX+#Lwgp -zZ(#OvWc|dEvi*vn$5DQW6bVXd5?;~*~v)5AMQ*0K}FrUwHq^}8Cl_dtt*a-zY$+@gP%}r9db#z)62Ni2E6?3n7mPk@ -zw3$g0Pol`Ey_QW;GE|YkH7#QsJKD`fbM<6e0d$lOon8=JWTw`+9EncGYMGkV7=y=k -za#DQ?oM8Q_-gEOTWv}kc-Yf9ih5kPFuIQBS8zq@mRPi~a?4-QGgqE^N=WVWIJ(~Xk -zCHSZu(~wqVa@9m8+A5!`pQlk;beVAEpEwiG=-rhAsN^2y+jpso9j>4#0IJc|ud!=kE4?N+&!JCqAon&q*#d!K}&hF>09@CnQZZrSID6Uy$Fgz!!4N5hm^pOZ1&Ynqx!$E6D>&P9yU$oE3=iv0}5fjmcH=ptMMj$kw{96X}nJ2xbCj5&$6BaFMUm+Kyb<2mNsZ -zQ%Fft)wwBSL_i_%gEH#@(z1q`d<)-Q#co`3CSM>Sx~v|aeW}yu7EI9hE6W1<#KyLq -z?`=iC>8@M|&cUhvF=+~S9A-ysQmz|S&oR$oIKVtr8sq$u{vtQGepMszs1e<%1tEm(Jk(dJpt#amA;_T+6o -zTnT-@RJb-0zd;-CzPdCQULOtp7uFSS03e2ZCXXHYX$+}DQ-im=Q#vB)mC;SoV3$iiIr4@mQmnR_(A|2^2Yg=W2f%Ee|*BwaD^w8n}=W-zv)D5G({vDR8q -zcLvaNO8>9cB5>Pr -z+`T1LGXQb8RjaupBr%0Y)1fhxf;|~O{7tJy(LvX?ok8prj9nrlp`q%RtlxUAm_EJK -zAi=pqIrERhc4&VcmU`ryYu7@M#AlT&%QP9BdG -zYX6GC&}OvdF9PcgUy9yv*VLEy(_8*sjf|4c##y8Ky63%RO8~j-#wvjsut|RK4^^1c -zBNH{sGZ+g_=cXu&kosPwQzh$!fi!_4aIHiVyw0teZLMANA$3$9)ozIR2tFxEbLp&% -zy}B&#lE)H`MNYeOTvUYb-1z7=;r$$z`&4lHUYZ?C5^W+j>}dYf^l=oD?+-Y5F^nZa -z1QkspoWQNQ&j02CEGvsIR^*TRA{O@j?Fxv@$TOj$sF1xL>pUqy7+@U&@iTuu2J%3? -z+W@oN5QUw`Z5GsTQ{4d^E#l;-r4&!>faPrb-7iVICn&GGxSK%g4qC8yVj4MMf07iG -zLmrd3&zOb^$a82u*_o^djpT-KN8++wIJ}Fc%llWX9xtHK#~hB=eO~YcwtqaZV)6#= -z`+A_Ck#6=%OC!6gThEe!_ENx!;3oieKgPgGDrm)RGt^>@hZy4rnl37eUQAq^^=bY? -zI|Gn*WfH93|9lT&&JxttioKpZp8nU_>a2sK=rVND=;~S^PAA5*dopHVy7UT>cG2 -zT!5BH8kOH=5*pf4!2oQVzcOg&M{%| -zo4?ph2fA(id`;e~XdO(aQ-sKhhZ_3=7awNz;+g6}pz+4=DDS^*f -z*5EkJ4{zZe=0P;jDUKvqtc}J@rS|T67`Q{~KXhy?FpdZ?A|O%uR -z^HzKQzOd7|GQeB)DtZJmc|)+2Dnd1k2X@IAk?Am*!PO`SY^mY6qOT4kn`ySiSfM-% -zf^+xK*23V1+@dtz={UrJ>)CMCH&|fH+wM1+0BHaiE4ws_rcx|B(m;jF^w@MTr*CE! -zysN?X4kTIFdeO(qCpSV(1y=I|Nr%|cU3b$oSnwV~IRpYXo#s2StJ1px=u6jzbVGsh -zi2RkLag`;7Yf7B|CU{OE_W+srW*!%_xzQdbijF82V|kM3CL5%^T1RoTP9TMRBiFI3 -zzUK4UuvpF1yyLBZ_xxKxMmBB$-$0#2O?0|WbI)2;zRGkNNOBSY91+8{F|*vbchVC& -zOIAET7aE2b6n+{u_S^yw1JtSndf(Ep??~JC`k{1YAVxMc4#J0seObZvh3Z3u^qX{> -z8LFcPHO84lJ0R%KjA0myuccp1DJ{X>hJqhv@dTjp+-D)!As|TYh%5gww6R$tH#Z^> -zoms%Fpa&>=sw;jw^)Sa>fwDM^MQAlWIByA5<>h^>@n54NoSI4MgH=x`iwfKzqw8l} -zew2*bxqoMiHiMp;e+`9+vxIKo-suI6q8N5k()@R5LLx#jHW?*7Qx`@J2dRV&5x%S_ -z9ucv(E&#MnUz_DyVvh>lWUWG*`Co7DMWwzjCBJSPY%AY<%m7^s^P~{%+2UMz0dn49`*5t1neOTYANP!3`oX#ha=o!Swtoyjt1AluOfc&u<=qpI}l3#>&Gq#y{DTP{TVBmfyH2Ljg@)73- -z)hT#xFYSFXYPP*B#+{QwvI@(cwlFQv;VYy$Sjk>|6nZ^ok2>g078fpDck_xqj -zKEbT0rwQ(k2EEybp>>e~#GyJKI4LnPn*IAhy& -z3)(a13?6jSy(*RIs9uxY@|nf`L|A89VLYP22}8j8z83Ut=iq#kM$q-YO?i>tVhsFS -z(4^*x$R{|-<85<6b?8kDX%qR>B=eX+`KHXPqrcV-|NYz}H(GmY0|3gT112EdY)Q;X -zIRf(TMvABXLWmttqFlgfcAE%aC0$a22n|@(`?>8_m)(fQNo#;}( -z-dF`YbtZgVK+m#PwC{+()AJf<7#O -zC@|qfGq#3r^0Oc%fa*KjREPFcWh#W1x;9a#*7Q80zST`T1U%v`V?~TTpWdS)PFn=- -zKqU^MsC9zQG@L0vXkPz<&tGpElkYl27Z}0|LyUFXg3$f1H5y5ZLlNS5@@+>j66n&@ -zg_Q|0&<+`Bw73KL5bNB<;cu#;77X7UTyf`}QrPmaMMDFH3JH@nio6xL?pL3JePAef -zHPO5(7!dTGU}FF%Y~StgBiV$m-W56mj{!QVrzA`=V(06hA&P7#(MaZ9LOl!YIW36 -zy(d$W|3X`OIPBwze#Zr^O+Qg5fqb2!KAH8WSYUpyZ{`8tqCE3VoWeXH2gJjnnZf++ -z!&2^8IAEUuusZ7nvhRnhMR5+FEiytO20eKuX=0}kC}#@p^Zx6^R&i!XsBq5o+T -z-lA}Q>2{Chl8g!Ac?XJRTAcF}PZx+DTL0prf_>XexO$ybxOB?ZLYzmwaQ~M&#G8iH -z2w+)&>+%uo6ee -z*6wr+W_`Hgy-IFre(sJhUjt+gpah^yg@o@rziaI(v7DmDX{4OiB-t4PGv3P|-wOL^ -z3AeBnmdPE%Tb~{Z=x@%$oYCpPle)NQr}iUpdUj`^RJejrKEL?{qbBQB=HCyC4O#Nu -z*5d2DRMtRu8DePB)keIIu0kV-Y)^#K$Yx$LL17`)&3LK~0JsEz2}Ykk<`@%QQe$9A -zi{97%38nXuT`V^H1{~~=V5N@AYt_?2;=-q%e5}cu4JC&Js~;ALSHjvUf-O7U))PBgQ)8M?c9PrtP3*3%2)>8Y|@jOs5hnUMR5$xQNp99^XR+ -ze7_?i4!kW|?8DbP$>npF6nBsW!ORv97x^rP;cl|V<`$ei(c|!7Klb$X-!Z_V4#OvV -zN6K3Wi=9PJQ}dC3F1Y)q623?1)7CD>p1-XRpwD -zYX&{wstXR#a49NfdGI#f+1ebt(g)PEr7`PJWki%I?~e6u@M8wN$*oDip=lO!9_z^f -zf~qtY{_QQFjfC=>aa7#Aa-#bCuk8dqWB9>3*XrBV8=(lV^0Tg9r8FNf?f@=5Ij5U{ -znL4n>iWe3~34+C9cl(W+128x} -zOggVYQXAW-82>~KO=!R2+K_q7qY)4o2Wnoenw8cJc3l{X+c}da%wl!0&jmc{_Apqt -z$t^ycbixvFesQyuWtZ^DGYS^9{_F*SPftrtv`{q->h=xZ*7&l}jF-^c3`Y7#koFRX -z=qATCF+a6_fQyhUWX8tPCzLe}3-c1x|0Mq=*GL13g##TCwyb^j&dR~QN24@pD4UI{ -zfO11DS}Bdg2a?JB+`r#l&PZK~_!_-qg?sF5al<3;XKjQOr3UM#W2A$;>Z`f#lt9c0 -zQx{lki+^v2@ou*qE>cu@SfA)F=wO9;*TE(0>iHw?U4_gW1@{D4TQ#Zj)TRHW&rl<) -z-`TkByi=+RQ8RL?XK5YQojJvdZTZuq_zz71$}(ZD5Vyj+0|m2ZA`3dKs4d*z0oyVJ -zaWYIWtv#3`<&I>?3bNJ7Q2d#6k*;L&@-tRah~1+el;Bf0aqk$5ga7fz^30a|*@fu9 -z_8C4PX8|B6_>O3)WDWgI8E -zq@Qq^oR!4UPe#9PWA4I4TXN>5TIYB*PYC1)???$amTe6PDjwKaruS`=Cj~Ngjy)>+vrmkq-}NCbnii_G{fAxBUO1q -z3X(M827AaurvqeT*)fsH-Stp%|0^B?%307Hxn|69FGYC(9U={qyWBW0R2S;{=eaSv -zND1lN>i&vzV@ykvKY -z(t!KQ_ql@;N-R%=6kw}M9i@96&7)tG@)G^)>=yyv6B{6s1U9iXe5TF2PvFz>y5#;S -z)n6G7-p@5S#@c_C%U;crq&?=FbG?#IV~WDh!g+j5_fmRJEtCff3hZs|y~#rKAyyDO -zXm+pkqeFZaCVDTdkV`$}X6!2}0AhiYj4HvX-6A`pQQX27%-bg0{3pvlWHill2sKGL -zveJ5EnsS({_1=o+f%qzwmno_uNc&!pDsFs$kqEM#{YFtB>`2Ag;^dkMX-7BLtjqc> -z8rV%%m^NL{R+{nb*`X4f+^o^qf>FOvzwECdS&5+Bl5NC7C>y*u$NS7Cl2{o&o;Hp9 -zv%K-{64}0L2Bt*MLIe_Ic-P7~i_~zIVw1&v5_qX!+bsI);+eB@FlN$);D5aqHs#Rc -z88gpeK`{4v@Z59(9Wn?Pk46R4+=WQ~GF^Mam)b7~ffGaiA<*wL|6mjNhbot-|153b -zu(FWVPY#OJL9GBs2^iMC+-{S*)tXtrLYxc>c2A2r56d;(DPySfu -z!F#`hNU7h=re1%3Zw$5mDg{;}^368x3&FPsJ%6EGoc8FcY|{O{x9Kqdv#cGJO+l{vTt2pl&BJy*xsH7QU%+;g|GkJ(*~m9ssrghMo+m}9 -zCUu_dcAqE{0jXhuW&14!}JA+ReWyPoKXFmbI`X{9RLb;;XxOUgkS?RBBm -zkgO<)mcZGycWxLi?=2B&g%ZDOJLFjYykfuoffZDC)XEVsKyZOC&!Pw;?@mGr- -z)7Ur2MU7BO1XAR{CK0woOz_0rE -z=4!1j-edT4k-TSW@?Kq1RiM~KH?S{{_J*>1Jsfu$i9skKb%Wnr8YfD=QE8g^aLbG^ -zD+(nAoT@|78EkCH%lca@S-umt5@9!bX@cL9fR-Lqc!512YqWGAn*ecQFB&|b9MG9B -zg&P|K`H~tNC;I{Ngc!e+c)BH}VnQQTdQP?(;639fRcsi~V9tPD7uY!XL{QuecnaM= -zS>f#HCtMnuarU4Z?|Q8AA$@@AQ|Me{g;L7yOmt487l@rve4**q;;Jn88G^6JMY67A -za|ng{^wie5O+#aSjNC$PLQ9k$xDvJ^SQsh)PVRU%7h*dZ@kIzkq-MSAyBjB}z -z6FC@yx3~T0?tN%ep=+ -z(Xrq_@eo7PR|`1hZ_OW%iX9_qAkm7QtbmxvW>M^3x=B9TTdLqtuWv*fEg!Ho{Qz+Y -zUXVBzmh<|4_~A-RIx~_2(aya}ZYl9}jw1UWrg`MRoBwfph|pCI>X0NRweJU^LJcPp -zA|5nn5~3Fy4BJC?{UnYY;u9&7ff?m5!9$g7#sdy`TdJJjKM;Li81!P;rciqn3O5ugR#rz -zXCxPKc(b{(^KX2HEE^$0s^WUi5F7?>bYo$&@zQA(u*|;CgLHMsz_u)r`q!A>%P-r1 -zQt?p_UHzBCdh?~{oaFW_iB-I$Vs`bXB4mDqc)~vc-@2Q=Cqp!xRpCixh-b{y`gS(fs%UjwE|}_brW= -z=cuIOwH3?sW5s+)hel`7heiQ*8zRb(Miy9D6`9o!a>;XlZ$+FT%iD{JvJLX#q90&b -z;S#|maG@Kw;jQUc5$ChP%1A}%;8 -zP5L#7BHB7f7De}7>%mH#7|p@HI!A<7z&?iPNw>eHx~9~VCF$uVCxv#|2wb04aOG^6 -zrU)yy$p$J%yo5-pB36`}p;SP+^(bJvF88FjObnA*EJvD!?$%uI2e#}un=A*kM=&#q -zKA_CyU%kVu>nK7R%uw80L;*^pz}YoyMW*~C)MVZ8U3ZU}b@?B|w&KG)0g-`qq4KY5 -zGeZY)>s9xxh$+bc6R0|O$``D-Qly3_iv5@r`L0^la-lc_h9qvd>n{)RLT_*%mpV~8 -zi4fGgf{RuzXIrO!6!l5^^y4UM@_-)NQS^K#s)miCgdO#t%#awZE2zDYNxgecDbu8{ -zUkG@S>JyYNlT+g&A5|I%j`GdMi~}Y}Ao1%=0;N}4;0^C{O_7;i2KgCEc8{ -zWk)S-YJj;Z390u1d>$8A!QP>S-Mt%?h0L~l(h}V8S@CQ9IX~?(-AJ9z1>Qaj5{H!R -zcyexRbFKXvK=rB>PF(rpB+BQkBOhOsUM)v_fVk!a_@K1G#(xNkesJX*2r!aznCU16mwyMzb2_HL -z4->~CB=Q~6ntf9mh)*!P9VAe~LCC)pDq(6>lp+ka4*+vB?P#1j-G`I%oJ>}lg5r#80sOAcYZpcx$U}WE0tU -zmt^D`-YSR)AV-(_RV!;(KmzCEx7s4ZqfE-_F`uoYxaX=sxK4C$gcfq;KFRrw2~H7h -z{M>T=p9m3(%aH%IMc3Niw*B{^wzoUT{oPKXim@bVukR@T>vQP;gX+k&Bm;pX5QccE -zU(5O-!Z0x&RbZutF!N&YzC<*PKIcYBL5ZG5Os)m41CErS=qnEXUT#U2oQ>&QB4H*u -z^pAph|59gk%0jcDJ{mtXC-Css@9LVmw1S1a+gSaiDTh_l&O_UuoujDyDqPYiiJTPl -zd{H9DtB|<`!(bJ~>bUYFlB$YsMoMF!3iJSW&jh#h4zsk&@Ub?L?2fmd*nFQgvvDCv -zkrWa)t_3aA61g7bQ!yA!Td&By$)rH0^r=!$Zv7(zZ&`8-u|wJnq7aSbJpxJZ1SP4D -z9q^OZXH}pvQ=*bue?lMG&ez|7sNw=V(^QFYrdtATa#f8QCAUw9uT@B@c$`#8m&JP* -zAaTZLI4W3TDQ2oS?PZ;7>8`44-nn)`s@GJ(T=Z0L#8z#ytVg!@9agx+o@yhlFp%<+ -znzFJh$mlpTXKDHGvZ?Mz?|UQJ3qYv%zD|xM^q=JhNwA7?L#v3|`FExZ4^0!)z9xBe -zR5Xy&B`t%klAruj0Q+<}@`H;B#1z%x4pHk9!%gHgR^(<5rthD_BHN=;Jj7YrM}vK$ -zpkQ(=)p5E_Q1aqW;Z42ROOKs;QeULVY8E2tIWR!oAr_!mCf6G+{txZU(3b~p>*oL# -z(`p9)^<6H@z_ERlZ%)6Jg1|ZcR``!%tIo;oj -zk98oIec3Vw|75Q#tKlZ!)5LavC_e6o_+tWrOl@O!xF6G;u)Q~+9q|Pw8{^re*_0o4 -z?zh|`YB*;$#aHqZqFnM%%6FRa**RH4bz2WdDxE(s+V6A1`Ifq^ofiSTFAa_=pT1~C -zV=|ws)*x_@Z@gwxQw*dJiX9sCB!#>P(i;>0DaMp#>AEi20=`bh4Haegl+Fcv1jRp~ -zrEJCFX32ey5J!I%*M5jQ$x4vg7xH2*v{!bU3VR-A4tO2N`8WM@Qw9ebQa@qSHHYI9xj@EzSkl`2G) -zR@*(e-2D^a4;ltqSpPas>Um>U2jfn5yOV*7eNv%M+u(RuKQY>~|1hEVC~#IOSMgEv -zb*vNQ`<#yDm%sh>Er&q`+Tk8zx~K&bS3)q)`QOlgEi00mdouJtxfmW4a!XjJRe2G -zq!^{vVZ4LGsISKf@jvK8Kcg7FsEpM+Wv#o4VMo$K6qCMWP-yU@xznbIBcyr8F9$;@ -z>eAw*(cYvzq2)!>ug6-?Oj53DD^uWo6RqN_-zs#BY3Kbd!-o*|RuX -zRFcxcJ<#@!v8ME|!Avs5WPTE1?I*x(x`|&*ObSmMlsO4Wo#o-ht%iOmbTthtJuREG -zqv%SD?}-i*zt2sx0#l(!!Sdi{%|j~TgotVVMJ@X>DsP1XO7nU78YuhQPfO;|^}0;@ -z&~@aHWau?Qx1EdSQklSqYPt1836TTH%P?%~N-0&;aFe;27GJyUtPI}OV7T2_ALlD! -zKEWP96?=F#yrd(_f?MlwVL7e$h=G(X`6cqo5d?fU9V{(GUn|b`tOyl6FCVzX{)aYN -zdh*AQlnji2mAr7_b~XWA2(Ua(n;uaz|J?2~r`AGfGA{ZDZ)abOQyiA(U5TqcKK42P -z(YS`{TGaYh(+}L~Ju>E~e|)!{q8zVz$iqwR1^ftrCa+vXjWIMCxXU^1Ug5RWACUir -zY~>5q?kvd$s+t8QTw`Q;nqSvsUjFJc-$+zz%FaC!zR;|)ZiiTQP`z4K8b|V>Bxx8d -zyiH5Yn>YMR`tJ>t{&>j!odlIsGTV%Qv(d>h+ZSs?l;hPtr1h1qAGBq{Yb1-#OrnM0 -zEgRVoCFY;1rGRpf#DOkfW(6f81U@+&31V8!$NbiC57&>G0C6!J2?`7UoaJ -z9OMdsXT~i9?`dp>SQ^J@rA#6I@^e9zPlA}aAW_v{O`(oD;FGQfEk}b>X2)~n{nvv( -zGW2KB8d(js`@Z;!nCb-tADclvZ!`zM@iTJV%HJ5Rga!X8Kv!cOE`)r=T2oxQaZB2k -znJQ_SS*Fx>7KyQ-2)B@2RzR-c>DI?7AKY(uKts75y>S-@;&YW0i;4UkWmgW|0L26V -zC=2*o%!V3V&*KS_c_qTx#pQVZW4%$E4ZVWhJRNg?=AlT(;xu=nHvf@Qc-yr&v3JFB -z1mTo$ewl!+7U?YtEE9BNEJ7@&HaQc1pYKVzH+oaOQ1mMRs4)Oe3O`4O!VDsEo0ecw -z%7$$ii$sn_-`y}c#VlZgdmucXwjIl|<|1VSu;DFVOr&n3t0*a5s9Zjfwgt;^|8vRI -zMn%bmIb#pNq}b+i7M -z0uLIp4QsiE(tloxe*moNLTN>Xc=+FbMOBZW#cE(+m+|B@bEBy&azuq4!$xLtSZ>Ly -z2`lbG4IG%w6o*J~uw3i?*vA{0_o}ry7E5QJfSKBR!@&iX3=FlcLVZ;!JGL{I6g -zqw0;G@;bWF98imP2LI|Jk`~jz@4VIP!%)w=Xt=cbcLCv6`hrsv0~-St+_%!5_GIHF>{A>5l-qc`1o# -zyS84F`1NDMgq8UECIZrEIH->Ld1{#oYHkP}ca3CR8geV_0G3(O9Go#p;xf^phEplVUyndwlR5r(Dj|R@{j2Bf9$=?irex -zs+0`m?c=Bnc?L6pF9VRHv?;H -zo?5XDiyxXpDyp5L0{nsi_&{~VaxMy`nWzrp@6(3o>^5D9(}1sYH>q<5F_Y@OxLn -zz18fbw2irimiF7A)e8#nWpt=v2Y=p&@({OBz68~7>R_o%%9+zUV)-KFP -zl&FWUDLatr+z9}w1IoqUX_L7cBsH5sGm;&jxIa!iR7RKihnX?wp2Nlh+c6L?>O{mV -zRMy!Y>Irs+PW|_e9xakm^7{BBT_frP5A+H$*tsU4nAejLV@y<2;+g}jN9S$1!zqDD -zcRq100t>W3nNO2R#h{*irBF0foK1zZydodR_rU{+VSwJ@~~?KM&ieQx|lf -z(lyXyap%ls;{fLwpsewb#&2uv=HUrd0vy}ms`+dR_GT9+>;5Xp>3#QU7Uib^xHrJ= -zWFWrpN?+rDEvEdcVHaNHSE(BGJajl35|~b+YfHaV^J@Xa1mirq+3pi?;3QMzgTPj1n(*kAxV0N(!>f;7fZW>u>j-R!#nsod4Fj#J?tqgZ~o -zbc0F24Jj#i)0gh3tZZW$MCOK8RLvG!YbPfqlIWh=fDG`S6Z-iuQru$%%(k@-D`=w6 -zUZh7lcIG%}aQOf0<>9+{5~}WjJ&Ddf3pZ0 -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 -zlTq{~!nk0==dBcF{Ru}=QDBrn4!2g -zhNVeM5xgTsrhWX;oZShSM(ta!*LA0K;{LRSk-ziVFRAZ92!uPTx;ZfGGTc{`_)Et? -z1g`U(UZH7Nz$H70H~F$n=PfYqvh*I3gt|&6^ZTJ0c|r5}l@zMR2!r@01FnL48hVDl4 -z9T(4NvdRYnW( -zW|=Ba;_~xBa=*CiVm8H>^4rSu&3BpJc(<>s5<nS-8_UOf&p@$DaknX{qPH` -z(>R1XBt4?*06NYcF)D!OysF(kF8*jYxr;ueGQ6b*P|o*+<-PwxQul_v2~-hEwJ9#Y -zs3os=od$#6MC=#!+{y8%TnY*zsbFRtd%8I096v|Vs?;&;PqDwLQa(sQ#N799uizLCnXvRK*#F9)OE9v9+`i;HL5`_BM|vM4hpn2E(eD~BVA`V%HO9bUJ=Ytz2N -zkgnUCcor_mFX-l=3eK-?V$794eEfFCy;`xtxgO;~d^$a=<9G{$JTbK>?+IaGENkWX -zw?n!*{!DJ5;P*Kby1UMNhs|X^UnqE@^Z5dvqHyZj*={(k7{m2-KzSl=cYH-t4?zdb -zw*Z;3_TY?>nhzZ7$L6jii$t&gF?l3}!9qRHB>CovmT@{puMtKOgm~y+ORoubwd@p0 -zMXV4bh|h?!aFlGE{U~*-1FIRHF!vo%r5ZFotvCabc_B0r!{8V6L7s^g5*genquGGp -zY+WA|x`%U2*nqMvq1L3dTOL2cS+s@FhNz~AzP7zC_{0y9aSC{i(Wtj{DhOKLcMta)(D7LM7|l -z`UjEJ31tvr<6d9}Lj?(Q$|IJIU)X$85gY`Q!G9gAx;A;oW0>&8?Q? -z%^7aYvshove&)?7NnA>-&UppIOrr%C?~3D#O(o?{0tbO)JULa(+aQzAf*ub#LSW4m -zz!#z6f;x%F@y43}D^wOtU3ZjW2Ug}EY2e;~QMo#v`$c&&B|bDn=HPJ14|^waui+0S -z-z;gxtLg~#dx9V3MCQZ+(oE@3@$M9V)CpX^zACCOXbFrJL~Vc+F)%uA_!)0*%yD)5 -zwuT=z|86%6{=qRi*7>B&=rmbdN4EbNLk4Qa%SijWgNu!m+88#yOfs@E2Z?XCliF4aUf$>3)pynKm~ -z*@GSVii+rom*TIV3n-x!$;sIP3^)T`51&M2G5trn{jTpKsto{6128zEHRsOCwcG#n -z1IVs+$DHy0h-ihyf?UPO=)h0n1nvz7g6+>w`|fxLCHww93)oN47=>p<|HdiGcu(%I -zXC|#n>2g0R#te?h!<9N39Y=;P@xK2cO^%zr!WRUm9u`L`I}ZDpJSjEy*wd@|?qusZ -zi^m&~ApDGKBaIe+sI`F9jzyUK*$Nn_OKe9`wMs;WCzqnf7>i|^_0v4IDizq -zuMhbF>;(6<61P>x6~oA29rQlKfcE9<8dGeeuF0$?A^SqGS?qd%#r}ksS1~K%$?RYJ -z-%XkSUuPDsLZ+bsx#cil&`+gsUI`Y|ptg=ZvHg1uxkYGCxk$_8uGK%(`g7>}zIq)% -zru!Nc!wOzXqTMa-Bv3|^jqvT-V{(=!U6ztOtQG14p_$k_4#C1NbxIjD!TaW~;mA$^r>$#KKE1lSRUm)bfLZ1aZb2WhX -z))o{@dBUVI{9f?YpR%|jBp)c$gJj4XF{{PCOZA`2L*Bj%eL8S5Zc -z#z^v*HD3=wlDYQ+L(YJP5Vi}3EaOCj`2gy{iKcH%nZ;M~tgu1K{#(i-6F>n4NKQfH -zKx0_tMe+4*=dsi0`JHP=o2!9cXfZu};ouZP_8Jh>MK#|P!~06xE_f>2ns -z|23-tY+3Y9iTl$fGnJ)AP-W|j3pOr_K&C*>S9H_Fph23QqsG6gMEFeZGgoVK-Xn)a^D*FD -z^k-Xluv0V@B)bS8vbhssS -zK+L!A6?cY0^*-oE>r%4jZQOi5S5fCbLDUKU%OX4j`^lw*4BbII?J2Rs<#k^el+{CMEbK)ZS}H>N{}!_uMSfQ#@?H -z<5dQx;VJM9fR=P{=S^xZn-GN<1}b-!EfDt~y=?kNhWMc?xERwGUY{!`KA)%9@V32O -z5*V#5u)NpNdb;{!2P3_p1pIy(hG+!owu2+08_M1ACmR9c`UMj45YkGL$oEUr@D4(m -zcaDGl_BZNWths~VerNG}Xa|g-mjA2Esz$%Y&$#?0us<#`=!VRe>s#bwO|7qa -zeSnm`R^%CNA=(3*eDDByy6P0l5;)BAnagwG{cPZn0y0-zX1T-fQU|7LA&}= -z+54m-`};fyj_w}V_9035a+r8u5BmIUnBb5cD)jgL83pbb?5L6A4P5Og? -zC5-Hl%cL3`5fGn92Eo*0G4;((N);u@W6_SuNACGVBmYtF9~qsl)koxBNtWPSLt?Vr -zIGIfVpP4*N2J(Jq_^4pzxtdv9*B?_6Zs7Q747xg@XFm4JJN@hxxx-G8VaPmRv$G{Y -zw>kVdM>QsmD8ZE(Q0BpqK6VjsYTm|g0uC~Oe2{iODJ)XCA0VS0pfwJMDS8hP_Rv;# -zY9uVXOgO`SgMca+i=5>ox#^T$d@ogvMH{Y=~5e1BZ7 -zzJCgtXH)NGl22^zW2Q7=IF1y-$D7)A(`HY1fJFsRCz=Xd0CqmzJFWj-xU=IcG-Ii7 -zOXf}FcYOlMVa^Jt?OP%cU54e{qKJrV&{=|OJ{kOQH@oXMtWrS~1wmmnW%9Jfe+C<7 -z`&DU?pCoj!SIHB{93F#|eGSb6Z-*2tJ62}XAsmpCtKF|@U#=NmMvPv^XD0>5Db)@E -z;uFB}lF0aH6g@F0|8N?*K_~109DD$W%rf;oO}9Xf%O-8aY)x~9l-+FChC*U}aI`sQ -zXXtA{H+wB0nM*SclO82Qx#%ZK&fMpBovaOZ_A`-S9xCtx)ug<=_!<{{mP#jlK^tMQ -z81(ndHqHM6kdR;l1k?M!_FDB`SCRgWU1LmFy{2y>&B@CJnmnEp++pZ5qkFvMl>x`r -zACK41f^Gn`lE+wc*dhNTa{!@^YXKU%dd`t-=Lu#X4`$$%(QKO}q&{tq#~$umA*e-3 -zF_w$+W>PH6NNd!Z2f22Vks*CEpGCpY8U^4=0g=jxA&S5)JS`zwUzd4ZlaNr{7dN~v -z5FUz>%J=t&Ibi*0B+d5>ny;aItuVOrjFbLko#D8-6g$2I&BBZVGxvO0KUTMTP)eTh -zgG`o1MAnxt_;nRa4lc{HTfsZXnH3{YVwx2$ho0zNn?8RUkr3ZgE(6LE!Y(>Nq+(Z} -ziQY`H)9$XAi(6dyFqWbw+##n9Ha|eeTmb?Sz?QebZh`eSE4jC<>Q1%r1SRx2?0lAt -zcG}nU{oc54WFT(yDubi&Q6I+W`GUjHIs2O8^4qdBDb3^fWhbOcgP&l*x)#7t>lZ*3 -z7s|O8{pjlTZMK>@z&|{z71K}?$Y&gyynN-o6HK4OPGuj!9Zuq0!(%L)r26niTaIn)pZ&&2LeUu%x-Sx~00O -zRUC!Nf;@FhFUR3Q$an6`Ei_9B`YxAyei4Fd6wUF`n4uyc(P=Nc`1^?721!=Y1 -zBrP$^@#q@&8>hGGb~GM(O(oXP4dg(y!uI8s@TjH0zF>dkW6qy5Kx61aNdORBX6sQq -z9+`S2&J*kU!RvS3eI8^s&R)a-_EmF)q)mLfgC3+$fugU~BNl5wf9L)&ZjQe&x@52p -zQCAc@6TY$2Xj_HmxOCW -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 -zCy3 -zH133H4fS{U(hQ@{WC({7H&K~D4a}AV>&GJ74xjEuf(-`$CBHoXDfLkCE&LcZ#$1b! -zH_!ux9-20IV$kQHs$UBrv`QJN^=sP%}$AmBO^{*3yV4(NjX=m)f%;f_G<_iL5vZO*3439)Bzdo94AFOtT> -z;K4NHZ`Nx)uizp6j_XxEo#P;7k&yo9nobQ$XITty7$K -zhxF`8+1Yeqfj-kvQLL|hAQ`yd$clb+hcr7j@G+Zzq^~pbN0;9IN*`pzhX0B1LvJ|w -z$?)V^2vaUZ9wj_&eb^RyUbYnjkK1(pYI)`xlHy&of{f8VCLRyOF(oZ~lACI}O{f~< -zl1*Hq0I}|8AXRvWU$r8RKq^EyYF+)2g^~_W?TyAILpDd3(=hR#$o@gsDh*$MLZsN)X^Y9o)n^-JCy -zcZ|WY4=X(l@?Iy;0G|{IM~#odm$k&jmHIlpKk@LoPR?FJ&JYLmj34;`xqnsdaPaH# -z$`xet9NQ0!6{%w1CmC)UM#kHWQ(yI@tH!Y1BMc6tp~alP#@_%OU;up!nA;?*!vk~t -zl(xxq=w)zmT3;@yec?&vvyt>rTuNW;Lx0S -z_H&WwCOKD_bJ);Jy%i*-SZnDw0Fn;8qLn~L?)1Iyo}6yLJwM7C|1>UaE~7BSD;Y^Z -zUR8_0dCa_!0R4QPmBY -zH^a4zR_fsA<(`D`fF?ybgF?DBP2VBRt7S&X(BdgH&h_(XouJ|jqEkSc-~tHV^1Dsf%rtIBe)0I!ey3&Ok(r{ouiX>`S4h34SpF#&>TwwSOl(+UnZh -z<+OV6Bs6@)aYrV$`ry`soBHunm-)nXcunoOHuPv5@0T?4O9*aC@JnVs@{AbJ;>{Jx -z)FW+tH*{+SC}9C%A^Yg6^?mW-gkXX<_k#T9NJ$2^9cu=)yD9hqguqgrOb856>~pG@ -zi#gRB?e*$p4nj+ji$)3Usvz`Glc!51{VRhcrapZHwyqMv(0TW^%8}@HUGV{3L+6*1o*N~@0v)N&N6jh1x}cL -zn4S-N8jflOG@bPeNk5~kV5nB8dJ+Vp0{?VpX3>Xrf)w;XLp?1$fsNW>rm -zlbq}^31AEi?(|$<_0}3SL@8PvXcNK0&)TYtL`%;w!;kECtLp6GFO-ICqb9;N2?dBw -zxb@v1)GXXSE6wmkUlJq}02cAIvDQ=mHsDF|VU#y2Ifc|ni5bO+Vr -z>u&D%pnL_9X7IE$Xy^2M#ms*4k2>?R)1&ld5T>Om6X&+?pDIeT1TNA8y=Lu8nhH{~ -z!1{HJK6ocM9+gFGjg=0x$!GeaQ+hP1im-Q -z{bua}x?$AamdFk%p4Vw(as!5l>dd1Z{U2fVgo=YQ5=t`g1o{3gYz>sz66JJvkmg;< -zV-E(TyRLzc^5hzQ-U$Rp7boW(OhP<_-}O&?(P$VCW2e_s$|WK&Zg|Y&9TsS}b6#Lw -z8<6z^Kk-1Q9n^#-*@UoiLX~eX2uL2B1E&^wB=!Kj84{FSW;WLSO&&cLCP0NwUbUlrraxRei3YQee)642pm#4%F&}lvBrcjz!MmeN95_;c73U);w&;5u}qO? -zM(Q_ydkoM6fSMzz$}9Wy1DU9R6_P>-RbgvjNMMwv_l))hof7T)?!VP~=L~l{Jmj(F -zeLeAWn*#vZ0w7Rg{c!9!a-x6}!`%-0?q2vP9eUci@G91txb=q6rlV?XcZ{&`fzj0i -zJQzx7Y`iMChAj*{&5;4AjH#wiQRirMRM;-e@ZY%X=~e~Rc`p}vZ6V9^-eEKGM|#rb -zPUZlzp!h@JX_MMy1eQ&>?mtK7wtW>rie59~mQZD45t&2`5n6fruD4&aS(@A1fm#C) -z<4GBu!170FZc)#{UgC4H7I>0Xsf;ao`8kS)yvw9IoOlR^MfEtIMPhO>rY_ljZj$YR -zc69XajbN -z?2LI{WVf<-+RGq44iqe60VYK{PIVp+$j2GU`=gYyd{>Qr;=Cs_U53I@?hl3VJd5&` -z5(^Pt33cYm+niaO{TB&vUb0>8neo1}fm)mttP;HyVIFYTcqvLP2DdZ>-M2k@KBS={ -z@5vv>+axicdt;0y%vUeDVQ9*uyk8$=Ri5LVA8@SUn^FO*vl*F4lZ(-+Puls`;aSgG -zjS)BbLkE6axxWH^*Arm!(jYJLd+mFMOE7Ce(do!qEs%!DRGh>LSXQOhrw877Iqx}S -zjW_)D+Kb7C=P?%#_e=lORdgbAWg%XQ(G)xsW#?UZKo?{rIYEBQGrpAgg9Kedh^2VX -z45uEq0q+h)c9MC0gzK1kF=6vvX5&7aT$ZfTRFMcEy!|3ALXVhel_n1srlpJPouHXA -zog*&EjenNq6PMWWJ=SuI^ILNVyI8?(iE$ux0?dz2KTqA}T}GUF$sd#(h#Td^i$!*C -za%#H1Rt}M-2b$FJbrZ6W6p^(SpWY)2{#Nac;LOWvs>(>STDJ`R%)-q&4 -zqEo;VB9zJ=x*GcOlETB?(WbM78c49e*3F1@aVLw@)s(Qu!N&@q959R24~Ts5z1wMi -zOn%PLN+(2`y5!ikt -z5jIT;E+rm~4`AQ9;s3HZP&$X@GVx5^(=NGg+i4(>#jL^fUof?c*;1?JvS)v_G~W$^ -zd5kM~N>_Xqtyl{{D%M5!8^e0FB2T$;dd_W3$i?`mvzDEYvC;2s6dw0NZ^}#%9Q}A) -zvGtJ^3<@dcP;9m3ZwcueVGiz(2!TIaOgA|lz}sLoF;R_~=``+T>ALLCH26M5DtaD1 -zrjthW7wDe`5)OfdR}L@moIGWlG~KM*4hHXg`Ej>jWNm#r>ks_cX(>!BA5~G4nnENX -zHiPe0kI#Dd>*>6NJpH*2hLm6ygLnWFDR&}mEVPG&41+uFb;p07*F})+g*$D+B~uQC -zBz=9`(_gDDe#M}?!a3aGzeBg%k-fVX@ByJinAFfJG@6p_c3YHOQ_6a><6N^J}=@Zb&$V3KFg#Ykzna|rUXhC5U1xRj57q~Uw3c@ -zOTOdl0v%@>F0X>;t>uEvWwr4dmn5TKkN=N;&_E~=Sc0lEyUwLpcl^v`-*HwbSmL@7 -zPAUgu9~7`ha7x3DspKe%nT%;nEn)2d-oW)i05{& -zP{=dBy`b>f$$~h;hA*n|;H7o~z6{Nh{NWAKv!u7EQyInH?md`BwvLuaFzKfg63Mt^$^Aa{d!B-)-^mCXo|KZ|OpMolL~ -zHsaa_o=5W~l|h{=KPR7m5ttN4ZG>3k+HXj&EW7@aLl|IP`rpHdLOkk;KGR2&jaz8K -zP%WVho^q>8Nc;Vgo(Hrv!J%@CGM%7}65^8w;?qrJlQJK$3_iU*D(JrpvpaZxEI`PV -zFVA3nW6WgoM#ITN+BRgYaCyg}Q5w1#?PJjE&!B&*sv25_+#M7>$yN!WEOsUGGOP<4 -zfqW}pyW~d5C!g!aK$k7*2RWGT>b~Kl{hZ=m)|2G8±Rp^|s;xb#LuB)Yo_ki?H_ -zGvGr!Nk>ou)M=!berU9YKNUV}O`m{EKiZ%q(LJbryb}_(cyq4=I8heHC(02R_Y0!U -z<>3lMPpy~UXqxEBb|`@z -zc_ScPfLdc3_vM6K3x<9`a;cm*9bK9*m;1a9RvOO7@7_-O&w9Q<7PF}6YdX^qf9B8N -z(?mMM@g%#32ub`T;sgUN>eF=a@w^k>B3I2z1@cXbdGK2HMIm4;ZQv6_wjRBl`ahw3 -zfX$KDk9_+T3!>8^9_REhh>-W?G#hQLIviB~!Q2@|4W=+t4I5EVe4S>8ARPD-Ih-%5 -zW&@ZXh6`3MfhaQJ5K!bKgh3VfPs#nnoV%3BluiALt+Giz^yM$_P)`7B0#4AaNg_-$ -zj_xW08K_bT($qOufRq9b&5>#)<;9Ul?ziUTB!`C#VMxC&UN&sQbHS$cgu`T9>4J0q -z+~T4KjC9<21JwjJ!Hxnl|BpI3zARP^p{e{}@Bz4h>5kI`gOct`#=- -zn0&Xa#qSV@Pf1-vOPR6lixPx(hYBGx%TD1GuR`IaiXf*8iG=+$sgl>={hun_ty6P1 -z@w}pP5g$7IoJ7&tQy@hDL)0hsa1ZBIN$f0fgRw#m`j=q$9UzX&*e?5nyIfF~U@H`z -zlYl!DxiyeQ;ZIoP_u#M(kXV2q&K(5j?rT(4&B}VlpcwfBGbOsK)S)@gBe$+UtpuC| -z041e~kGOX#;xgG2p~*1R^)fbvl55Nb-?}Q}MKkZfrdmCg=InQYZ>Pf-<1leGiPw!J -zdw)W4)|;A)pgYBkL)D@VuSM756KDN~6zXoOFM>U#>n43$DwKyAxHum^Y)_!l>fBgF -z0+Kuc)^HrSK7HP2D8Vv$6bE9b=(Xs?m4kWh-nAMK%?hoYu&3JCRE2yFFjs6zu*SSD -znk1#OiyA5J%M5mzAQIwK-NGMa#e2gD8l7jYj#~}IBzi0tGnySD8Y6CR%b6|(ebp`2 -z)}A~40UOOuVa85}6jwm+#H4zRk_%g@-uofTrVzNXmx#eHxWnBUm*cMx4ueB99YMuB -z$LaD6(5E+uCZENYc1!x+UD|bWI#rjdyl`283^Esl45NrHK -zIHh8-cbd`28m4NR5}VY&moPWeBYFJAO>)^tu*RLMV9it~BS+jXwzg_%q#SYpZw3OC -zGr_zn{-sx+v>)=2ey^ow5eDpM{B6A0`mYg1YrbRBSkr6J@oc`Ao1)b;=ewo4{s4u7 -zV9es+V{0}5{{h<={1OENjy=asx^t`C)sb&Z;+P&Ho?tL{{e=Zs!a!w?leCyUMggVM -zvS0&)eA{`i2wL>sc@Nv|Pis}O?k}Im4Eq{W3`pzk$kFaRHkuPI>Xuo+p480_g3i0y -z;TK`ibFU0J<3N4T@UWP6{Qx!xlvB2e+xJvRK2yA)_ZmnHjI%5?rFwjmB6=_Zd<+=) -zX%ZvVf9JErN=-bD_bMsB-_%B*&~-z -zh`V0o?KX`BI@g{jsFR{ux^f>huG75UG3|G~{k4q~kOB5~-Go@C0L%QE2wmgG44+O5 -zgA~Mr^^-rTZBG6x&Z!XOG~w3{!1;vY&df$V+jmiT_kt7|t%pak1_hx#@*t*ZILP@Ubog^|^fx~RigQa@x(Vxufc__@ -zMf4dNH~5!6)IC5#1m0?J85l9b&4sm|vJsmBD$Mf&6rix0_u@?&N@0v^-lv)BTUrWR -z(E->JpGmM31Ak+1TvO*vop%MHA(o3NY((#U9*TRJ=0)~!Z~HTPaf%|Y%K6_?`uI6m -zuuwa1**{}_DJ%vyQCHA<+VC_>u+%o>E%;>zY^G^p8j7s4r8E!k@^o?z2{h&OP&EZy -zr4K4jPCOE1!~q?@g0@%E$0$&Sl!OPG^c1v>+SV*mL}u06#DQKc#Ui6>q*y%8LCah( -zG%>PSG;fG%PI9Z0@j(w-r)ld?Rn6L#Gl -zErL=ywosMyZV)kK1@I;U71&NJMmJu_+Z$3Qt8sLoz+;bhMGcq0QOGjDydIlG@<~h$ -z#CUdvl|ryXlg>!hU`nWT<`ELIjk$VYmM*7!ZZ1N#Cj)%QZ);LJsA1C2xZ(3nBcj(k -zGzJqq)s=w0{^pe2c81_vCEr{Dfw -zw@z^lpVtNocHy~d$PGd#^~$mq;Go(gH32Ghd{b#6KhtsOYCE_lK6d3upLO@pP}P~` -zLKCZ6dIQ0kCmy1pxTA3ZI+Gn@PkY}n~4-%9~Q`V{HC6h -zXcuOe#k~N2WxAiEzrWeMeVORe6}`cazaF99-QFkpR~OZ4Yvi0k#bI;uBYhkOF*Gej -z649z6o-${1pgQX!6z>#8-BZ9^;q2#eLS)VUK(sDrJ&`}&bYBa3#SQ-I!!UU`gL>@ -z_3R-6Z2cPJyuaYeBf0iQob!LpQ!t1_eMsrehvoF#+n5L5wh4o}lmSZFF3SkVjjK)e -zaXgvRH8$tA#aowa{_o7N8W#UqmgLm*%}h?cXF|#%rHkF&S0~J_TGOQ@xV9^+9^cjl -zm_^S5jOq*#H5MUyM_={7jT1gL*It&)CVMyoy)FW-2qJ(lb%?21^Fl4r+684 -z{Gj{y3X!Q0TNLb4+S^rc$zCewbF8pNAt#O)zpk7-rd&<*XTh$GfN?oC?;n58H*f|- -zeWoL;L{!7(h3xPDaG!mbuHOJhKax%ayEd6JYX~S=;)12@L-jD4$!QxBB7TRk*)J>} -zD9I)*ARMb|nGk_?2xu -zYIS2UKgCaTGOM=NvH4;9d|~#GU&wi^CxsfAa4ZbYwfPFQ8Bjpb>_>@>hvYi1!P{db -zS&atxoB<~&&?6usAI>#)F>9!W{li!T;}@5b9)>XK?d)-JTm&5%DVPs2t~1KzwXfo` -z!0K_4&W~4ydCr~AB^b77dkr&syg)<>4jt2t0`lG3Tt(v7r)lr$(EF5O*AN_Q*LUD7Sx-7US8 -z#P`_s`&XWC@4fHdxifRlocaB==V_Gb@M7lkkg1I}#e#`cK|zN|HRS=K7}+GTe_>BU -z2Fmss4xo3MXX_Ffs&tJWsE9#~Wn@9A{6D=vJcS8D$0iD2SxqjOcJ6UUKADqHwX6|)X{cKqQxGB}1+kKv&4 -z$!X9b_L|mAcy%pUQ*ffhKz@w(`=7COB5?~>aZVj-7}ra -zR+#u#(N9!n?$p5Ku`__+IH>w)uwr)aolBDzV;{lNRSR3H`U|}l+O2}c1QWd1!U_36 -zYDw-{BSpdgyY)04c!#JWY}HK`akbB)pvX3DaC)Gm0hQ^%xkGiE-00{`2T}2~I}Z)k -zIjH>EGF$h>JcUYr1D+3_S4KOsFNr{1Zq`j+P=$nc=8O4Us>y{rRVB44l(@#^ -zqKwV9LC9nVY?)^wa7b_&aY@b@m6!`pO#S429%g@)C(}b+G~zXL_-dJ+s8uzlvIA1l -z^IPvKm{Nz-h3{56-}FRhRd*p;;Dw4_HqW?0S}w)giR$V^phyV_3u`VCV_pYx!+-j>e`|gAE=>)F}xc+0Ef51Vv -z?(*XS2NfKgo7?#}y*Y)Y1UUC+d(nvo@I8ox}m`&-992H`(s?r4b4 -zzSzf}sLC1tGbG1|-Bfe0SQ)n6zaBaJbx-%!q~zV5|AcKE2Wl*8o`aaU)7>krStbuN -zO9+`_|22txxIh69^$q86_gZF<8QcLth5)`aiW?0z4`;<4F4cdR=EiUvZEE1OoW&Mn -zcDXEcZ1In&e00DE1>^;l5ln4~XdBDNjTUXt&)bGV7NwL6(DWX4Wp+=^J^snIZqXi0 -zGv%A5s$xK@-5GOUuM1AE7{z9>q`qP#BHxT6Uy{ydgMLGO1`ehGXVW`ru-ke#O>kT^5zyhyTU)H(sb3x{Gs{`L;ChD^R@%)7=Ty9m5#>yszD{X*5{C -z@zZrrL!~r!){1OVbs8zjq+Esg=vNCVNi*p6ofvnhem#U0x`o<(us9=7RphllZ6h3` -zBXXoI@s%-EivD!wiA?&G=pk_G)x$iaomA~{YGrfZGa%Vc*R;r1Nl}U`TnHA`r-^+} -zqpCn*QvgtYfH=@lKe*G$FO&BMvY2b(UWqLvPlIBm{WX2{OP31#s<=xkX+n$bIEhZ1 -zD=^|7I4XtL%qI+ro=U>-628hOGbr^d1!pSuaHWXgq8A^&dy=X|C@=(+sURjd>I!A?`qSMNy~Z-pd!} -zD%TAW-~?OKSGpkVOg+?JGjrv@y$Eyy#edK;Xt6CQ`W@~`{FNCkV!Zwfya6*RV*F)G -zQx4SQG&w{;)msmi+ny}vMrIM<>@OY$X6Ob{ -z7VY-gzhDE^%8{9t)pyWGL;0!De76-@n$VB;e;_xza~mo&$1*K=(^_)k>;?+-cJQknt^JT@{zTxkm>h$z?SJ)C#2fHH53CDAM%1>`FRvfi0puZ6k6uRh=WdIT_+Xevl{61)5#5MHrMtqy#b}t?%U9Y)I**XK@y`Q# -zKd>IRjwpUFVLQ$EJ#^xs|IDz-?@E&Os*}E%OI!JMD~|U0pqdrI+sf4Ad!gLzm9o0P -ze_SKx?vPkE6o;L(V@bKUfzmBNh9ojePv|?_*<8{}ZXp1t0cxJXmaQ+$nT+cxnfd4O -z9-i6^4NmUvmgfXFCAjaIZ$E2s&_r7@Qd3t|?32Z-7)-5mXDv!j-{n!JX4mzP6|Zy> -z7DXX5&!~&a0$Nm^Czt0i)De$5f)0izk80;*G(YJ#eVU$ao}3H`*Bh+H{HP3Y&0olU -zrBBsEi7fw8!b=w(*F;1~nB}FkgHa;7G3nETs22jr@*AENC|K#b-MN$$|OsD{Q2 -z*S{OS^ar(O{pqlk1Yhd-fuP7#=?9bapI%nKj>nbNr}Z7r!Oyye1^8_BAix~~2)b%q -zpB#W(*Ahy$YgJn53Era`Y>att_z?wFK=5S@KALGhVUv*En`&AJp!dBw-%ln< -z&clSx1YleCQdl!Hao(Y?5tb1DG4@Is43l0kOj%hU16TsU$;lwA$1W3XuI^e7G}6z4 -zM`&rG80^&@m*PnMjEvESu6>3Zi40UG&%@L~<089przE=BXD#6f6~MaGkDmfF1c -z76Cm1AnBybr{ElZJc3klQp-OQu}H8ZYN{+zAT|Xu1$FmAGLO0<9}a%72YTe^9k&p=K|$(k=lRB>ob5mx -z{4jOMW?m3Dk=ldpu$ufIM#T@h3Zrl~m$U1gkrN9Q8gfee^+JRUhK)LArw#|UUMsMW -z$C;83nzHfU{%rF2EJ*Tb=p_~E*ZOVGTk5mjnom8*boDHM9mXHydZc@rsdSO1O~k32N!jGlEiE&rEzzN6EsX^ -zU>@jsZFZ#kK{B?wcup}`ftjW&ib%o{D46K2@hyEM6LWfR~uw4*q78XKG|w -zjo{D(`|9;y&cix(_$!H+XV4koR-!W@^INgM^ngeJNIA`OEg|j1Xpu1wHJuho$aUi8 -zwhF*dfO!|^W5sw}M7Q%Vr^$H)eyA&%-Fi{q(+-bXJvZ1gVRKO%aZKL|(448C+&)xbnULx=qS`p -z841ZtnvP*BQ&CWR#9-mI1=O>|{z$m7FQJ4ksktLLG5K#`wS*9$2z4T2=U0rOQ -zBt1GJK3i@_navIzg`dgc%&9G_8q6;h7h3Xb)H0+PAiYag7dvDD<%gWKPyntk@C7K| -z;Z_aGGx!V8TGA}X{V44_3t7wG4|G_e2&fR!q=kYg*QfiPY7HxE3)0WTobHE=Kh(Y>DUnThX4H?iC)vY94dhpd!$RWxIXd -z`x!??MKj+G_HKVEUqc5VCO=<~GhXaUUjf0%mqw?2P$5y%9Sp5pQ{Ph72ODPw -z?tfz8LM;p)`6xx(2?hpY*tSd#fS(VO79;!iRCUf-H_OS-6O2m0a%0j*+763%F}%-?HC1N3&P-+~8gv|V`4Pdy{gVS4G4v;JMu^2I^Srz*va -z4aNn4(BX|!THfEF{`=COnJ}$#C6^0~L=|(54GPSy6A1pp)BgktjHEpx%4{vCX5<-r -z+`mO}b*Sk`dl@?&KY{c>RsP=M(&vo1{1h!GiZ_abyWdL8>B -z<{O&K{96t6F}gG54QJulTCC$3w1i*PPq!%$*Z*f7(2I!16&;E(i3>;71J~USFFRID -zF1LK{O6X`!F1Mt+3mZuD`k1OGC1Pv;r7lSh&Vzk52GI5rU8#fdy?gYph9^G(cpEW3 -zTBW%DJ3TS0uh1JY#kA4)9A0SYHxXFG26B*inatw0G7a6Wt6jQ5 -z=>Z1DG#*z(KGlE5{mB2zarLORCga8ri1L!e04=rMVNaiEJf$}`e6H!<4V1{}+KFd2t_i%Gl@vv9-v50Wg+y?e5*^Zt%7kx -zWq)!QlS?-aK6|-If*{}vPrigcPI+@^W{Wg97-9xVrWvML2rvr%U<_0?11GMF>YJoo -zTe3@jn{$8^uKqdENwV$v+(WCJIq-MjvbPBU|2Mrciu`DCbT<1r&A1zA;YTp(t*4s? -zwP8R@h4(K;s5_iJzhRU*{zdn|#5~WFe^a1e+yhhr1KXn+LjV_-L~W2wG=Bu~>u_D+ -z;-Q7%3zP`~+^1%bPX{r1_xVA_ELnX#uNoi379L9;K>#1=)9>_`b5C!u7n!{HjVt8& -zA02pGJ&?79l3T6FN8o0bvq?;Lu$iTbs|Vhf|;XhuM19+w_~U^ -z&+?MV?07#DS#bpAa|Adc=v8NJ&o{e!-7oo36;jk^VDA{tefdI1LnqC+lCD{heiFy~ -z6%i0?`){!8h;~@9uwV#9Bl8{-A?Cktys1zFBI(=TJIhet{hL*N?hK -z^6n7Wmx6{N*7w;!yi%amBi&$ETExgF56?V%mVtj0!3ID6^A(DDw!*=&QB@tes1j=t -zV~S>|s^r?>xCnUoK%d1!WZNsCGgz;$!HDKU_;~y475(9E6~P51%LLt|55A}6Pl6vS -z&!g+ZtCJTbaKkV-J!)C2AuVc@X#|rd$sF2fjnWvnugb-k!;Xo+WT!@#VAbW2veXLP -zSQQJhkc$FMPmPjIoPGw7b2_A=e5`NR-xkSeJIQ{lACBM1R+@82Txf;hSx>5J3;r)q -z+8^i~@H&vPV?ytnL(Zs0{JtLR=$yP-I0MjrC_QGukqBt@)9<^d@@D|95iD!XrLLK9 -z+>iKygu+)43|Xsn#r=w|g7*0|`Q%q*$A~8T4BCpkc;Evy$9}H`g$Wt&Ixn)esG-3D -zGEm;ds>VUYAJBnG7WmA=12dMNPt$ChFfACK*p&*`z6gBekMbgpV3LckoHbFQXglmb -z&F9L*%v-^6+$&S$ -zrW1kxODXb|_>(j|%V&`{7Fz7?LMPVIlhn<Gq$=IrZ1IAP$2NVfN1U -zuc|xCtpMojUp!HJZ_9{>7&v#DHH0j_m9nUeMyR|@b}iY2{wJJA|EcLq2b@ZY^85DR -z%6r(Jaq?2x%rhENn(!Kb)RI4XZVFEAA$$(9cyf9H_g$ED7t+MOq1|@;CqI -zk1vwBZkDv-RAZCp50(UAjEQyEq-}bJ3zaSuOm6xEeQ+we+)LNX2(;GjwivOZNEz8W -zaVrYw6znAFVnaM@Bdjqv;Hj@!60r8QQ>Px^H9a+RS@XftQ98z<^+XFH6>9IH#*3Pn -z`^=YygKzst9b;qIv2j)ka)rHS^i5Qnr4M(rM5y#9)aSIR^a?~DN$OvjKE%(H`A&b#LYkikrnkG-{YA>?rUOnii+vIy=u55}JFBst1bSGTy -zAzkfVKbp$S1xypTUpDnJ1C$9FPWwpAF#JuDu|h}_tCh-v)^@C}&#eEyZ@|;*s{^t% -z)9~J6xzy=SSs7zAufuxf!TO02*OcWSF7CeWKke7|WLVTiw!xu)IlCWSz%Zx3_;4F; -z>i~?oTSm$y9Tp?ipYQDffig!Vw8#A2@Ky<3%gFB^PM^)p^4H)C(Orq`_xlh|6$F}!pl0=h!kPoas<-gF1vT64ZB*@ykn=-o~S84x&HIlU(PE?-Nw8*qO& -zqX{Krtp}qdppJ>nXc6H>+s}@uy+osg{|^K40@W;d_-(LY3TBIl4J?jQ-&JJ}ibRdN -zC-(Iy;OWg?{(VPqI&b>zwahIyRhe)b{@lI0=92&npkz3EtG?mv|06pj&=9N9w)}B$ -z;DufbpOm^uoGm^C1f%It#g%AVcJkt0#E7r`lwOs1OV^o?lr0B-^CKQH`coAo4E(oD{kZg&l*ComQ0_d&)Zp>sT51nJ@ -zoF;Cf@}-5HDGIg~o@n+f0&RuO+xs=zCJ(r)j4aqFQTD9lBY8K_%M6?He7;d|Slb62 -zY1{F9%GeIEO@!M)o{xJKR(-HzPxbphr^KVvp8M0^ePth|nf;QIGdM+0EA -zG7zC&Jnp>k58Bv$5F&oz618G;9jrcb`l6gQ99!R(%NY$Hl$HmAXE~#on^Dknn%A7L -zAKI?eHjGa)CvJ`r!X4q0jz;1eq@vGlbPqmc99dxG&Hm>^_kYce4cIdA^&#@TL)@?m -z;>-Pn(C)bjMtXK=ug@l0F;J3hc;uSKqh8>&v<3YX0k-)hy~sOA%1#nSjH?c->!;dn -zroFQ|VEH!F9T)U!1h9{?t<^mMCkMiJ{J|eT&NdU#c4W@X4x8il2)@Y|Ap6iSl*4ZE -z$~871=R0Wh-_nSmd=dGugz-4rJHI95!}UelJO5RQl!u8lvgG)1TY#i;3CKtmG-D21 -zm5?l6w7(+RT7>A)=nwnk*=`z}(V;HF*CALWFE8FvKlI|nZMBTNhMvMz@AUVVNX2}F -z1k2ewL78hW4N`G(M7ZX1xhWe=;V*a11B9W^eZunXGC{&E(@Gh0^e6!*X0g~B^{603 -z7SS?l$E2sBg(yVXO^FLL!;th7)jvd34CKls7Mvk#Bcii#r_Tv&q@9zI>_J);(%pIm -z8ExjCzr3I}}Gj -z&)?j=!vAV^@0e9E`KpI_Ms~TTu;u+^C9--|Tu5)($|M(*mReN!fD^C2E6)%m7`}qB -z*iRwph^&Muj|4AA0g3=SGKcr|;-LI9q&Zom2M*;V5eGDxdPqBV)+j2n<+g;Y=fF6B -zb08I2=_B&y>QY}=-NTBKOD+5;x{F6-#hlNGjk9&$uN>E(%f7y=k)D$XvsezXSWX2p -z_D?qPq(tlD9J0TL)F_-Z#o+CjDI%chWB2GnD?Q&xILH|qnx -z{D@Jr-_Frl-PyYH9O?NkXZTNp;zyM0e~A~Yz(i)Wj@oTJL;X;ZDZjk$H?~;3 -zaWTm?mO)zXSvAR1*w+*R@lHC>c8{Ehl^81EVn!DlhenuG^NMP!@ts%9?dce_ -z-GKz3f(N8@inqA2kkD)~l`D~n`8C%SPk#`s8G^B7Fa2)6{}6RY)r*j(AM(Q;Xau8F -zCreLg65t48;9ePT@p+Y6q~g#UXG09-W{Qz3YgB&Um`TEH*%iYBSWAPLo4RwREj4iO -zg}wel7>4c`?Wf!4E_C*{Qlqfs(t*iTqR_zG?6>MoC3Va#+EinmJ9Wnf_s}$npKM-E -zwe~V^JQXV(7L(#*WJf0S<#h8dnxkn*W2MrQ?&+R(;PHn&h0R&VOEAov_ARtR4ko_o&qwLm@S3pk51m{((@(8xxs- -zAEm5TpV@c532#?=aAl`B!|fh&o{dz0`ZU*eKARj{J0J8 -z_V||j<1bebukakEngbwmVoGhd%;Y8}qog>ZJI1Y~M3%TS7yF-H0XY^Wm{%oF>=1ds -zCTsfpsTd_#uf7r#s*Wk9AgWl|68#~@E*|c*oQ9B#*OEx?dWjSx1P>?=8{C}a1Xo!8 -zaQC7+&dbbS^+x@`qLyxw-k964{n|p*y2dptxq&T_NgY-$&~&k3?J;lX%(p -zd3em=kvd~kfp&S%Q6vw53hhPW#b$iE{+8$7^O(6gHmM8bsV8S123t=0rLazjtNBg; -zM33a7%M+lfAWCE;AaKfd&Wu^3p>zxQ=`A1j?p2_)=;zPX3IRP8Mg=RZpAqw~T+k~N -zxR~zdi;7n)Q_Wb5YCd~Jhv~+Ds`_h`UizX>Bj~k$R0NGQ&nx{ -z9VE&E`7j=NhAPzTqY$>s5GzIgWuEc^Nwm*EhPK(ww`WYq{#YQ+yQM;~d^NG%cCwBX;RMyp65;D?Ri$XMtd -zR^sNrNBdl%VA4)c#gik?@;RNIO2rX>tEyqtS(uWXWgoe+Ql5O3%upP&Vke9inuneZ -z{OjZRo2x>Z-30=cF19zVF*auD{`TTMd9wg;>{0-`12;@PBL49zJ_huF$ou!IjSp(H -zigx^w%)8!^ZXJ1fV5`50@P4wc0KXwju8ayyjdwhs+w2WS8`M#WK@`VVHX<9lfY8g- -zS_qOnESbAmNv;;1?N`+5Dws&#Fw8k7g^ZdZ7rc8lm-9r7^BWUv5K*ZpW}T9k0#$+` -zT#EJ2gxHPg)R8L(LU;=w!hp+p-3N;}zu;w7@g7&ArOwu=gP3xgmr$&wVVWIr*`VKu -zmT(u^7dh2^0&F(uEGYcAJiz;C7rOk{#C+@}_WoJCDn#a|2Vqf^Po63uYgNX~1a^TS -zN9Ka&dJ*wjNdrDAYo*Qo@#}OFjrf9O;8*Gi1GB3CXm9XGV>kO{Ww5y8_1>9E(#XD5 -z*6R@Rm6uzxIRWGk0CNhbyyrqteaEz@7gpUqj*Sjd@8Mitvph3~VYc)mBm3z0&?ZFu)bGREOU^ -zpK(~dg=n8%_AgqT}#{1G`e@`zu{9a;5bN;JJ!A*dasd$Y{_+WpN^5(<8 -zQPiR69pS&&idBkM&O?d)nQdY@V#n$A&^38`GHd@(8`N#?J(QBSvOW1-P -zP*|6S2QK)2;Vzk9Va^{}V;Y -zt99c;A49vxiKpYX=2LXn9N{k6-{*Fr+y7ehD|~F+bE=D&A0P$EPOt?^#y!uI4+<>% -zOlQ|@T-oBA^}wiS!{r&op&kXIzv^J71Se!Ob~6lXyjT>+K9O6Tq4d^SETc;Ro5C+> -z#Loum -zk<426lV^Vn+GIk)@K|t^0SzaI++J$9m6@B?m};a=sRwT9)9MUKd-a=~?`~!o$I$7l -z`^aRI(=!r*@Ym{yb8<3l0v@m4O~Cp#m=Wy+2F`48Ci<2vk0_l*U<=2n5T$KA8^7ip -za2h;xlJ(EL5WLuKRSR_V`ccUhR`$|%GdChKCN_QqwI!8pyy%}$zUZmCID|dGG -z^K1&fiRM*rEv4bsxx}y&K0L|0TTGbSzHWHn$x5B2)^WS$vDnO5<76c`Pw%tnnAd-6 -z2S`2vu0}{!6q;tZz3oR#6oJ?Uq!-Td=7OK=7K~K~U%_k=?H28C*4L`kbj?lVuFrS= -z%l`G>Fifl=IEcS4`T=g2QIiJ@PDJS@p9tM;*wnKDT^}-Qn!v;vf@S?oYL2#wGxpQ# -z2aAMaHQ5U(Tn2+x*&s(#P>zKK27@(yC`x!I(qR0}pFaA77LlSjP!fmFsTNH{ckdIY -z2QUIYt{^t`b$+-#(p!jxl1lcgTgXCU_9>JTgz#}2sk}Kb8=d89mGLa;MdHkh2?@UU -z2+0Dk<)W^wBv8%B_`>hGt|_0Ii~>czy}EFCekhD)5zeD##_c9ULnFa){A!9s(FHGX -zdde@Yj!uZhY -z3a=uO+;z=%z11B{rU9M3TRNf7%zA8<~QbyYcSChTZS>zKZ!tN&&DiggxjH -zwM_^XP6yTB-sK;|tV#RbT3Ye8{dCL~M$v!dNfP?nS5dS#Vh?Nc5ees!m92cR6VlAj -zc5cmWugc{bXVNl5TUeMhs?0FaDmQ-wJso65sD#hjQ?e(vH)*!H*Ek1heB+!xaKA%6 -z!xNU>m;&v?!hkh%LBHz^x;*%iNy>`nJO1fkU(WH_Co$~|Y|R+x@7j4?iUE@cPSV*v -zb2NK!@hwF)WG4OVkps&viowtw+M>Ir2@n$iq|wnnyG*yUu>bgI35U>f#L$vS{b+mT -zjx7_yfYRSww&N%78(@Rj8uQA(9+{f(kIMI85nZIquydHv-7j7qYv@GgnI>+S;^#TWH@UD2&Vv+<-OtavzD+Pm -znKqTe%_%D@J1kaBQQ!s#w%D6!N09#t>l(O??`l^cu5ZI{MDc{T$tw;5&{}}f -zHD}C18L3h~BMlUJd-x(%zDrcue(iBBX8zzLI^a$zir!hUbCOJZ19V}*XW -zimm0nxn#`QPQTa_Q}4yR0DV=?he%;5-6^j}pxS4Q>7^6j8e=Ypo(E6L0hDIb?hw9| -zE5Ii(m2=44FGgx5u+EJVD>stvpZ)xefE0IybJ0@{2)GaS(0+Ca*$@BquWkD)hjJRP -z!q%oTv(?40bWqc5jq(nf9~LQ^w&}HT)i={cP#MAcE=#X9LKEYk(t&G#e^66$EHwZS -zROSIb(FUXakv*f9K{>vikYQnKR(Bpnfx1-o0~_#Dz)7F!bh;`%UPJleMONUODLSgG -zm9VVP{3OX>FJd8D4BL7gQ+Q -zW|UR=yQ@;R7E>+22D;%_G2Q?{?1=MO|>* -z8=dh!Q%S6ebGHP$?f_aKp!uV;7dI}DpBBbINMqr~G!dM24A~{F$$IQdC1iqVnUpa^ -z#&)@7v03uQV7(X$qt2_M5n=Y<48A9K$wU;2JP3K;5LQM(xW5r+$Svqb&J*?rC%fQqtr6U+>*4)5P}D6aeTd=*t= -zemxs%%eVok(4AOR1AqbQqm@fFIX(NEKo)AGXOQ0wxR!S4CGA_lI}%&+Idv{vXc#0)ra!218YL1qw&Bb8`$z;)#^fAHV)F -zqm0`_3G->cd6o&Cz_Lz7Ru5*v47dMe-|db8xd?y;NS~&ESt(t3n+!^t4Ddy#Kqqk$ -zkmOz>w3i%1Tl=>BV+4=~2b7$7lzxvy4?oCEg{!3O&is;Af@TIJ?f_a&pmTi8Uq1yc -z{*MQCTW83L&ER+ws8`nM`mNY%tFm;)e1g__1km|rAxC|dMRnSdoxP&52_zrhI};_qJA243LhP?`EU)0{ApQj~(Zu%OGj8fz(S@xwU)vZSOx} -z!21Eqjj3E&(3_t}F6OddB=F%8hlFxj=ZT{OL{GA;3Uy&z~Nv2iztdes8+? -zZw(-G10(&VK!l~aX@Z9FLq7FqqEpT_&0@wVq*{Se5!$;D8IBHP;e36W*(D=bNlRHH76ky<3_Ru=wuMC7`Uu3+hh*P^BANm -zAJ)JLL(X0oRf~uuf2ffn%Jj`P^LU2!U{7SUC7V5{DsAN98oA;#zjh=686b43oyHZz|y<~f=U;0*_S5Ik3p!!ZvML((4aMsXj -zPV&3!S^cesV#waFY6ahjQYdY^1CGiqUOMD;?ylmtq+AV|xqskCVW-c5zdU{dDXTYt -z0iZGMsV%|f{A}}vE`r;x(fWJ4l*T628#n&5>ni=+;FCDO-vk6TC~%Xq(58qA#;L-H -zo18Xne|d?}Y5zTRayA1pThKk@mod)Hc_*NXV+=X?Mq-Z#L6E_uS)I>^T~8s;)5-{= -z-cA$}4lGB!i7)BPohV&etHPoE`w75vo(95U`?F-ILzubSwuG%&7dXsRg?$vt-%KfK -zC!clrN65rBjc(WzWZhz2P}cW&t0=vZp*D35RyRl#tvq`eOLfe7K3>CF^^aL-XRP-F -zDIcLn2ct;~2iZ#}8ojIK7r&yaQBe8DU%ARn=ub9pC+{!ef>rS=j@C*^N=@xn;+yGU -zIAZn*qS#b&?fF;N6%g|eZBd@N{R#c!iqNoO9uZb4_akZa -z)QU>T<7@SE*0yFFM2R!#J^+%zC84G$n;N^IDhbFh@N!uI_G3m9Y#u?f|ly-+K%O -zUj75jiu4%{{NzUR(QyVrVT^f3(jXTXHqFlo8r9BT&*-52kOGoMcPUc#ws*WQP~(Y8 -z$5mE-z$%7*q4C#t_;E6s?tf-O5K^4cW7;MDkdjypl$9?a6|C_R( -zl`uuegN)-*#58=vqvzoV@S{M`^5wor;(QUT_DE{?K>utF`Yp5S*d1A3Mh!m4ZG5J; -z-4`}QgA8{W)^!ks&_!b3KyWo*`BG9IjXzaIVz;qv4sam=TsPJ=hZHNqi$e60Pw7)( -zW1H0Q2JMjTlFXb>Q_I36HEscg-^bfzWRcNTQXl+T=bl4m;c%B!uGxW^HC1|85Env0 -zzCW8Q&3Wmgri3GB&_ske{%e%c5_Danj&lhsQS)4x4!Rp^Ow25qbfw% -z*+q&gsCvBazkJejk -zg2k*k*9xx&E2FDBP2)2b)MktG&~qfaQSq#^E=UDo`YV$}@3u?FhBo|qaXJZg4C3Cu -zihCbz|FYc}ZLfR4d=mBv0Te&Yq$`~ll+^ZC-n-^gOF{BSZ|A=ylkr1M@mv3_uIK|J -zI`T)X25elQ_{LBNzOakRq6&kU1JnKWiG%f|byL)F=x+zA=0TSiEqFACsW_7wZzv8B -z-kBuMAVUK5WAN{5Vp|Ql+2a596GqvbV2wFOp1p{tmYr>&^g)KMUAZdZrNsOG(DDgL -zuK}nn7yhpw_SffAq+zsD(eQd077X_aEc2p#H++*0mH$}JM4lt(HSfYHXXK^z{Mck{ -zw^lhPc16g)={%M^;J9{Xwl^K*{h1-3#LZg@z90bq2Mtd!g-``6+Z=UfKZ5D=O~D^zTjLWe;m4bcYWB-UPW*t=8}e8`hYbTtz}-7wNWrvHZ(8T -z)v=R>&EPvhNk3HY;v~q{0$;mOXWQQ)#*#D~oFxB8xiG(8Rh38N9&8DHNHm?xc;11S -zvX=qxIad9TJcChbtk=f4eVe=Xv`aPjDV~zxR2g)p&A>40FVhV -z-62`6Jy7H=u1j42^~US6T`TQy?m+pTTmiFad|%coQ>8K?REP3b -zH)v7msn*!H23E^g+1{uQZP!8EVJ4eXy}$mUVqsb7>8_$eCB$v7*@)GZFw|UyC^}tA -zaUQ86oReJs&k;eED+yNpR)11TfJ9imE@!FGGYF9<$Co3Dli_7g;PU*ZIs6FmX&h|` -zbjkp^KUyH;lI-=vZtk^ -z2YM3bbEC2V;dzr})qCM}2Q)jBKej=L>(w;TTZOju)Qk?ZFR_Gp7*Yc|6rma#4VB -zXqKE2p`T{Co4Q9SjopA=`)ye2MlWCGSMi}oV$L@I&PV0ck;w<}@CUBm+MJ|{zXoIl -zKoMD`g04zIGe=h~gbn8ejN=~U7AsKD!?#oaAx)V(ritULuj3*Bmt_`X@TFruJI)1R}jg8w$JNFLQUd;~+Cb0CQX`I-1=%!bbIvQ~tJ7)Y8dBmGvtE?LOcAT`}0_3rl*U;#)e2@Exj -z;nJ86B!wCBCZsdG#(si_fLyKaZc(3fi+W>yBs5&th5V!G4)j};C4_n}Qe`M&z` -z(0+~RlI{a$(0|@wpf(3Or5ub%D*%38J0JcaH2)t8kn7CdxoUHTQA|4BxGojK-0_w- -z&K5QXf7Sp0>^2V>4Mnbo+b>mMdFXQ~lCjNrT_wV7mqhf%3o*AemyVazG@#uxJ;G4l -zKw)M!S5obKS8{rcO_N2`|Ac+Uc)DyfOkh8vYI)-zT_gUXOSNUmUl2kl2~mO7$GDKu -ze=od`ia(h;$B?8|S&VzW7j8TC@nm5OBnopFm2`yDz%5tmO8cb<{oj8#_YSrCx&n9v -zkQ5r&=(c&;#*>*>^9}K1BFayj<=ln#n)dfR@7vsyc%ZBi7lfD10Ob-AdHnO4`M3R0 -zQzm>QhtO(-;vF_vz0W2@7KK1X1;61oUO1brM0 -zz(z-`)+-re)YB)Aekur;2BnQ|BGHo;;*{p%*}#v)3iGVqltksuD0C4ybV~OI -zsq-?*sxKEFgpA41-@LOs5=*WSq})}riA>y5oQ}axkZbl~)GA@TusPa$Y9fJ)gs|N< -zfYs^bn+eBl%{Obu+kO=+6!TFnP8&Q7y)ZX9WE+Gq`okJ7WT;K5xk_Dzh_sq>=7n3VNuo0*pfzmTV7V-%TBP*h*0DPP0v;*naQ(gv$ -zggsTWZo8hm)0R@e9?Vz -z9{i7v`eBs*8DGB~I%euiIqOU937$okcheWY{Vv|uAsRymW$!)!K6F6Yq&_UKebzPq -z9IMncdym%kdLr5iS)BdyH8fJe0-=P(ffAYK2gyAPx&*QcyV{bo3WIX%vo&{%2BU&x -zT)kj&00DO+<&1mzTY)N#ApK&q8C+&XVCN;nw<^1 -zU{MoCUl_gXA&hgHV}h*oFfy9sWu(EWE{wO+__8C|X?;N0Slq~dt4{1ONqNIfw#kOD -z?fL#cmg>6K0o{6pjGw{5u&xWzMYT1)(2IKc7u=lB+OJk#W&fj3;bGT`i#=C}h94?q -zPMF3)SOt8VUmJeg9Qxyb^?8}Zj4T?+IN#j -zp%1NVXLXYmG9xzn(#?|DKVacyJey19J5@C^FeGFf9+qN6EpMDO=)a{0f^Yb17lGHpV0UKmvaYIeE$p+9G)pehj+{^D~ -zhI;0XNNS#M7#k7EG%LUBJd)YE?}fw){DCH9fK&<*^Kc*oxD%1r%qR23g;16l{5(Nv -zlf0|-X!GGr8zHufK(_pZVvsIs1Dz$M{YDY7WM^N)%^xjP?c>Y`{)}Msr~qPJ -z08;?!8|HE!9{@Ts5HZN4M(>kg_2`7e+WwEHvyO}6`}#O7-3Unc(y4%SBO?6;L0Gy( -zq#Ma4rA0#N5RgW?rMnx6rKP(ho?(~Y^Y_kc=gz%%?woj^&*@E(C|?}DCg5$^9lWC5 -z0$`Fzf%@w~|ym9?(tf;^#dwoYU4oK-$$us?V`A(Xv2eJVmUD~K#%AOB)DzSb$0PWrI -zTfL5z2{(M$!$3+W;HR7;ZQ=6$i^K}#-1vYI+nknJxDJG*ANjM3Iy~)l -zOp@@G?gy>))n<(gb(GBy32_yz$1fXk{P+?ImhnL^L~n?VUjN%W4(E;I?EMAXeS&BI -zAZhSkDH7Vmr(}UP?BDt=*W-370)E|cKUNk9uEh<5p6`!j%bdmY;|V5IfyQUJh`3fC -zog+w5zPuCeFT6A_=h;bNy+4M5gs_K|bs`{j%n8D-f1&Y5by@t|lMZRgvyl2csKy)g -zlPQ|j<5ajS1no&6l;-T0>zMsLY#%C}%D?+Ga4eq{1B-il)i1>hoz;hB3s?c5$ld!# -z>pdqGJ@(y)Euczqf(`Onfe9$1M%wU&OS?djXB|4^B5?NgdsG56@+hk|uGQ7)E;xkc -zQuxMRK3*hyBt2bkkzwKLm9n;#t|b|N?h$gAsZ=aE7q060AlK1`2!-4sTe?eblYNDJ -z1i#*8P3+O)m%A<@S@o%aH_AW{q16y2nD)ortac*9-(_A>x$V-7ZhW$IeLS7#1N#s4 -zGb=<}as9i9_Db`_`S8WoI=2f4xIf%@tz3S6wu%v?TFo&fy^vOMeS`(tdps$NwzMng -ziTg&ESGgpfeevJ$SGb{VvfkZ0J-Ze3A -zk0dyYw(PJj|7McpC==p5M9@3D?zv;k{F^^#-O@x`wL&v@*wYyh4CEN6%x~r`qf|iV -z^%gwh$?OV>bh{jgUK?y%=&(4eTWKL{8Od&VaKD1bs+CmgTd(A>C69b5f;{tenHhUu -zN%wT{$)6m5CU|}OQ4Wt2h;Tv%g5B_PO*38;cINzT}j89!_O3n*g_7%>!&u$B0xK0j(iE*$&UUg^P^ -zFZ|7oqGMxv)L@8@Tg!XGt=i}40QEn2=L&ntp74aLTrb|tTBjaHbKP2tKhu46P?_&e -zVjSsGy)OV)#^VQKaoTgKFWW)8kr&xRP}+2I7Cs3i=n_Wy5^5wY4Q3;+C*G;IN=up` -zSk_^s+V->aHS2qYpI~$jn=G~_0%w3;JXXf7LMl_>6A}4A=rHi%x|oq7^C(`v$VwI= -zKq9P}YomcAwKC(!PlqDV`!W4@qr%f9sK3@}qM7^s=5`TG_z2yY*3x#eBmj@Vk~9DL -zH^DW3ROL)9UQTJh?+{d-@S|h$IaPb|EFKA->Sv>T>C!b?rZ80Gs4$}zTbS|oQgg)P -zjYbcN#K4Ccn0?nn4amKj;OfiLrY8#bJ9fHaI41M^3Ld(>GD|tR2E$q03u-3*G%drP -zAO`)9OlrL+eW=?QA=cn#VffdHnmycuEn2<&K!bQ_X`?0+$&2_$!Y+WGAl~? -zax0?8lq0$QOT9XlUijJeE*CvQ~h7dRP6Hjh_kSgm7PsZG7ZB -z_&O`<)8%LarsqOt{?WkLo`P^&+P~l6&H0IJJNY@;CjPb4FRP -z+Uipp*F)pJok_&F0{OUHhO2(epzI;*epz6+1&3^E-+(xAn^-DTxXY9qS1oT`f0!#3 -zH5YI9+S)*Wd73`3B*37Kw?~V%64G0fqdP#}(0zw29z~0S)~i)`p#3+=Bm?dh$dFj2 -z{<0R`P8@S(E#U5mJW_7drD+7#A_XGb=>c(1k`!BRo#4a6mV2@4gBSV5pg8yxwLJ*p$4)!h5y6_z&?!o|5jxY+`@wa9WAtZUa61ih>Ui^Ka`hMdrIfm&!tC -zQ3fAG6_R+C5q)li;=LIaRC5#q0J#{L9YGnAYZzdGUEY<_FT{~#7WDT35o$K%-(6#R -zcwzpvYlnd4eHi0Q^2f3Q5N7&d*5H}>DnQ4a-VXl`CgCETb!snXuh;ZlejGr3qi#HD_SBn29Ip`H9fb+EbbLzMe#M#> -z!V&~loXwsz*Z@b7adn@Ze`R-smt8`ZB*Rh;voV#CF!*lpPUE$1>KOlR_+WL!+ -z)=dHicCMxn*^Y%aZ -z$>DuwmQ~ozR2`{zo^R)+b>j&PsO%<%e6aY*-DCN}k)&!NrX)7YFN4V}Tuab$n(qiQ -z)N(CbA14kLG;Twbx+@^#RYXC~3R4ye_Cl+Y*5};~H$A9kh?ipdG>7n^L@HW`bT(RZOlMGd0Q#@9U^1P>c -zcBjHrF11WWoa^MwktKe;LVVwI+I{ED5###qk)9013H5thG^FrSHoD)#z;!K6!>~Tw8pvvzHEXS%Jt)chc9!>$DdI>u>xolmMUR1BTh^L%JjIkyAK9?Kq#67~n -zqbGd{0#ORv6Vi89W`nsAi`Tvk;1P4j&ssX4JYHaL+oku)Iacin|56Q6fP5Zmkb7WZ -zsZR%!|3uFl_cH@{sB(fNC}LOkJhKF}R#zcr -z4WIhT5}pY4yx;UAp`ufz@`@jM+x9wmbiEu_Mw^UGZ#ji0ehQknDZAIY%;)#1zk72( -zY&ZEpZve@fKr_{TXZD)}w7SMOAa9ULm^SgG;pzS1gIQopiO{{L3r&EP6Gb@A_F2n@_-~>a&Qe8e4EmTmDv9W+@y%M`W1_XfEx&e -z!;&C?tkwPM(e|c^!V>6aCtvKjchlN0pV5cY4RDIN8Qk7dc4%cBZ^)C7a1Sh?rJV}`NFHP^y?mf38ks05@v^|J~t$kM~z`GHpHZ6WFE&SJ$riqCUo -zK+^9HOd{hCxpDsDcp+(?ygVtIqZRJirPJy))Gt5L>IZjkD14H7V7F8j;J)TiDb-ObQUM?;hDce!eMjK^5{C?-O -z|Dw|@N0oQX-(rF?*)`g4I_v)JhI1@hOAV6Xze^1uKnNA8H8wy`iP}Nm+d18A9VtT@ -z9DKbm=8AF#C@N4`@)TJnPe^^L -zEPgw`bJWVl(%6m?cNg)x?KG+qiK<9V)k{b03P>SUDC0qVwa+HnaNh;0IVPdY;kF?b -zZT$u@s;o9Ef%6!wCIX&uXkwS-tdEDAtVigfQ(h8ONr!!z>(Er0)MQr0z@&e2VfEX6 -zlZ)GDB0$fZ+2f2KEQX{8eY<0v6%x`eD;7@A=gPq}^g${@gUzv=S4cE_X}HoIwh}1h -z7Et#1IzE>UobJVXXOMAWvq;vu4x@0cN=x_e^B;mLv$Dil&Iv*^v)Z7mfq`_L;9ndNz1&s -z^`&>aV^hy76*82g7r?Qduvj(d%~TH;*T|V^vE}Sjn(Yz$wZmx7nuyhF%MP=m*f-}X -z%#p=|L;n+^!@Mv+z2IX*O1H(DMd&&%jv#j4MSEA4RhzLty2@QENh9C%Xt&Ags_U4l -zGF&r<>{RTH4TF;m(Vw{2EZdP2b)~&jj*>~EGxhP1z-dN-omSucB|7?!>-MDi-w9bK -zk3m!QMtAtVV}HNBvUub=N<+dJf{gA3-*!reV|-^Nx*TE0{!gH7E6S|D17$<=eP4a6 -zFwAg^(NX1B4V0MD^S4#sjl9YqcO@Om4);|0Pp#UhbKe;AS@bhu+MZ!_so|gPby?Q7 -zDJYqdnAkO*ZH3+Qegr~6ciGd-vUA6I89+Hu#yKeeZicVHp|QkXq`Ye|@dui&y1N#` -zh2TwsvJcaei(CLKm&Wqk()>%LV&iAeI1Sqldr5VudO)4xJX=(AbmAe41~w=zYQZCO -zSzqfR;f=4tBQC!>q~i;2QLuSVZHPzo*$^rg>ElO@TKI$XY~n$^4zMnjqW8CX23^QN -zTvz#SSnO`pdDLMl+||vG!nl~ABTHfB?9)M2{CLx!srp<}G9<)yO^u#@aRhljn9}!; -z1Xsr@&q4ym>t9TGpPXN)5h}6Fwy`ZZZnvN?!Eg&%k27Zu4F_HZ6J`qP(l^2w&}B`r -zOfYHMSWoN<3+ktN_6lHyfZ>=U+0-WYlqrKIXHqFeTKwdFE;67#0SzP$8LyM~+d -zF|5BC&Csk&McFe=jpgNh&_7TGJXe(#!qq0Bd~Q{Sk%*|C{>9eh<0E>|=5)CNIr}}~ -zh;PJ$$NvjS#pDO=B?401Y=)ZF_r#U%OUvb0AJw#K_y|-_EAhpkS_op$qcpWtx4VzO -z3tPBWrNsmPO{$WG&wMv*fnS&AO@^$u(HkqE^pD$*e*o8Z7-9Qwpk`qyH`f`8lmo#T -z#IJV5@${Qs0&E6QSPGBm$I}DL1Wj^BPGu~-vExq2n%y^kVeiK|oTq#g)OO^V)=>?F -zEi_G@_`!eC^-cJ0G8NwFlo0C9-gnzaCoFhGxF$3kaOi}()uZ6<nP!h!~yoRx9~T}>nshH9UJ -zo50h2Olmn!#=-@2jrN)hGdRRlN^SR1_J+2kO2`Z>OdQAow1&i)RO_W)FqVF@I~uCp -zMQpC7{b=xC&^op)_dp0-cN(iOWVYT8QoMvLytUe>fqJIQNDNqewO>v_aABUxCc9{tqzpvHI5OEWgbfh -zSQr*IaKsYU(wj|+u1&VcJ&GKWmxkg0QoH1h`HX&J)dVwdfT44sd4Gq!a8+RAC|?9S1yk -zTh@h}`Dnf8Pg(0Yzp&@|xVL1%wOFc@apGye$iBB=Lv+3yZSS`MV@(nrr%^C|@7W7i -zKxA6jXk~)=oNCOcb7>;VAo1^sFS-#eH!75SKPG3vwy%y@_}mbZlF+Z-U;moXXc7Km -zwRNYNoi7-Y4&m2u)S17MH;XUg{MO -z)Fr=QGBkWLUyl1l+gD05rwDY%`O}2|oxSmIn0o`@4euLWh(9B{FDG02{Gn1qvUrd^ -z2J(&ny#zVCfXD`Qd%j2>z9_zYiaL5N7+ -z-|=7)#xEjK9u025*sz`v{`Yj>QHg5h4!)kC90?5mgrPG$JS%BxANfK%veIEL;ZpNR -z??!D8xtLuf$vo^<@{JwJz5ICB^1?KEn8%kH5pV4ObYAwPPF2z=D9oN|uu|1-U_4I; -zF1vC`Fh-zJq{Zik{nuz^eVrdr`lb7%dF$!>@64=dH@HgywuWs1kx2oc$#Z5hYy0^H -z8Y#lUks4BYg!lEFA1hXk$RLSX3d#8W&*?TCf5sAS-|wjC6Cm6vG~dY-bit7ze}$`S -zApuF1PyPJmOcB&1=O{Hj!FxPV2ct;@dMO}S2fIwV%VL#}kIpgqQX)+M{mJj&+MUzG -zwJ7c)JMN!&SG$!nu`f-ciSh)`ImY2wPUE$DrvmwyZkOYf*bFOmbsA!5adRMHd!i?# -z1Rm}Ig53$a)zrP=A74`m`N`_2l(CsMHS;!Ojsh&Z-Ow1rs)3%cXh?h5%_(hh+^1)CqzZ{52`I*BXV3kh>Fs|nL^_HLlU&~;Wl19_Vcmp6Rw5Z3f#?g9Yf5P!Zc>sV&RGP -zl?@OHO-r-9m<`iI{Wwe3L#2-BK+A`ChT^hZFFMo@gA$}sf>?O@#JdE9kn7m9J=DNN -zuGD{VxpRWwmiCe$?wcJmtzsW{kaPDpOtI0p-$sQCpR>%gSHN80wSk -zyXDg!31{(HPYAsXIF}&Q4O{hN?RR`GPR|MB9A`lsaTtJwzt)xPN~G^ejLnimW$Ad{ -zE`cecY<0Tskefh~ZvE5Kd8H@5xeaFXAAPf|HxyHirbT4zXhoxqwpSHw3=C^hBa3!i -zVc~LZkAh=Q%QkiE=t|bC{SfJtb`7B%WU?kF;=8{#at>~@tlFL6QlDn)W=JI%Xpm+F?@@&^WgEp9=kAq?wdLZG;=v -zWgeQujZB&~9OHY&>VY`)h6R0qB5LFuWV9Hd*+Sb85vFt7RR{;c7#gqzXpUN#%=;S4 -zek9SQnkxL|*$+KbH((0@&%B@E@eT`N-EAUCC82%;fNNQYGVJuS9kWZb<~k?JCerHP -zL$aDI(=af23kG+7=FQqj-H%!ZcuJc)9lvJx5l*vhL-h4W>CM6-5t32cb>6H;_XRr6 -zeK!wia9&x?C|j1~JxAxeAh7!+nw{g!cSi7`E&R2*Dy@4+-<+^TNom>!jDeIXrXlb?W&r> -zUeIx$MIkQXd^ZYsNtS`4GLhU|es+?N`uu3)YOGwejXgZyQgMZ(Je1Oz!d~f@tP*#x -zwq$*>FXEh4Ft2_Bh6h0CoYI`+px$<4qWk@G;U?xfK_l0FNg0E-)b*Bnw6E-Ua{a`( -z?&}bBO+HtWJ5d`cPI00aMv_{oPSaieSC?O^i9DEr;)*Z+lx1WS4So%ShOdPTaF^5l -znS>OT>Sj3UQvid -zDB_!`-De6%fje%zLqH;13sK!mF1Sfs#-{l9Jwjg78ztGB2}Hw7 -z8F^PD0eY5mj@nmceSTIftse5a8*@rkC-e+M{V7gkwmhXGBN&PYA`}~%Sl6oJb#PLY8OH32!P6W9LSbBAR-tSo+0@l;RFLV?8ZGs*@VDHw7{AGKW -zUlQYU-B+%AqqO2gCaOXT$T)Z4e<29iWPa$evaMdFKNw->MXk(g;0(34BuZD>)DBOO -zqsDPIL*QEpIo1(MdN*uLeEk}ZhgP{j5j~rMm4SD*wpCQ4R-D6&Q+s|}$>OL`j3UZI -zK=N^VuN2OA_Jv24lvuG((wb8<5MfJZ95z>mO=)w+@nSc>cv|Z-_5yZSTIx(4(GO=_ -zE5FFI`?Za3c_w}yE!*(?mlO1nYK=RHozKkx&VB{xdD7A})8cN_Ufy?csPNs><`F|) -z3r@`x08GYJ2QTxMMEP>$Ti!(INAr_-q9c6RS-()n&uX}KtCB;!7sVL -zw(s*dT<6=BIB@UX3~#SA^#|%Aa(vA(#2qsq1x9{fJdfej3}yo-XbefT2+jF?DEbCK -zzFnaVmWr8@Pc*L%igF}1(wO+1qArW^NgX$#t9Z*>xW~WLcrCdlNLRkqUlWZL{z9Ra -z!w$s&<|umOYrUYI89Q#`-}(6Ur_~*2Hut~_Sn%3j^3?o;pX#E-4ugFx1M%Fyypw=r -z#?|i+dJzCY?ZbO8N!06}O$%;9B6;E!mtE_)Dq`ea6_*_<@97+x{E5U$@=6sg+k{ -zu`Ypdm1Z;&=Y(`gPsI13ZRoy!FwOZX(KOUoZ)r|8Hw>(!z1b0UhqWVskdmg -zL&6;ERUf1T=9M-tW=p25w$(%-zmSHOdY{dp7NQxvo05Iy(bpX~JRjxPLk&^ICc_u;w{-?jWk3CI28GTn -z+ZnufAoR`mau2x!z+_Cnxqd&`{mYuUN0EuAb0%f%qNE4zDp9Cnx))Wj_Kce4EuYjSnzmzj^@rDmZsyeC?A0Z+0BGsZ}PNIOuh -zV5n9ER#$qDhOKvyQq;mLx$WL;!PH?)RAhvqW~mVr8fX8i -zNf-F56Gf(6ZvIP-6CGR!hdaO_8F}dHdRk`hTjMmyYt1hruT=l$7Izi=Z}5(Zg;C#H -zx1L_)f;5lfU#x%>MN%H8{?wme74KP1ULcO?2l@ur>G(R}lvAY>c)WW+yj^DRh>!gMKs)l=HQ4f<$Gw4IP8=0kWYX1)TOC215f$KNiz|3$5ZWav-% -z!qq=e`kz|FM|FS({qc#B$<@%>Me54FKqSK0Q4H7v#kr;48+)23!$fOB>$7q|^rFr05 -zu{Ov8C)C -zF7Nn@bk@Eg#QcxC8?b+oX1%$!h8kX20mz=hLHgy(ur(aHLD)|#N86^hjo}ntT+{XD -znf#^gpFZ&#d^;u-HV6n{Mwc5@=MrvWNLhrv13kuU3Ra}OU38>D5=UI3&5;@sd?eJH -z+$3;{WJONm7-F|}ZX113Kzah%;7RUFm){W6upUty0 -z-gjYb-cR!39Oy2>i6#^2==Tn?pi{3%DC&lKwD$8CRipY##qc9;GklD=t~zV`NLQkV -zgsMMO=0!^bM_d4Oi;zm1oIGgkT2Q-+n+aW -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 -z;D(NX#ZcGhBk%>J -znqzX`l;BpY|L~v+FmPcai0-Fm%Q(n*aJi?raYxkgis*dzfdE7a^{>iEXEccpCAFAuFq;N -z1Uj5Nca*Hmum#lZt}f#vqML1X=dO```|EY25;01fS>Pfj^sPS*m%uAGIYT8aWx!xtqL`&%V~1scutSJKIB54*c^K -zi%q40_&IH?8o;)WYpNxwO`ziBaSN*ySaNCEakBawaK>sZaUIy4z?1VI(w3PH8XF+b -zB!xC)Ae+<#mIy(X`hm({4rQ7rZlKyZNit0twb|)dRIt;8=d(vxA|nF@{s(INqcZ-J -zURqZAsAWdxNJndqf?JMU9Kw5(ExjMWlmJ#7qE|IT3vdLZ?Og#nI&@5O^&@3qs>0M?iD*fu3yfMH&2meNwJl*`_ouB%4)-xYvR{`QHH5 -z7Sex6eMUJwC}7iVk5Q`AGOZ&at+r*4xBm^}k?^D^_AsANR(=GA(md9>nIcW`CEKhqe=v|W0fK#iyz1N+P^4nUbWgfbxm^X<8Bsdx5_w#U0 -zppCRo;1GI6c!Qf1#;L3o$W9)jV8a=%XV`Zv@f8=I{-Lf0pMu6zIE+X|G1o~9=#Zcc -zZ#+NtRO)Y=K5~Zdqn{pFE4JOlLq_Gg7|IF^eo~dQRB)R=K~fS$H1vgkZR7uHza5pA -z7B;QN5i~-3eTi9^n-cyBx4~Ew91j)SxNJ -zMt8-!A -zX`&hYlr_>l;u0y(2R*l{Su5^q7Gw!E6}EA2sJ-Gy{__&hW}@{vU0ZP68-;#2Xrb^+ -zg8dp{>#YdxiHIN--zexvtGP`s9VGK2l1xrHA`8x*5IXsVfBwjUfZu>>or8nK^|`zy -zR)tnq^v|RT>PQ9g6cpz;dmSc<$CBZ>~U1Rr1I!99^PmQ`!35>_ezA0&;StGIPzV&#MTZ;NHoU%{|C-(2b$YD -z)S!0%#p-YiXuH)tH&uh;EwSCeYi2;+?vkfmZwWy|R2TWJjq|0YnFM+vY+w$0w{Djr -zcsxf(jlQJkQ&Q_zB-uXMP9^sCS>yCd6p|8|-~OYrrdCR$mXs#qP(@bhR>AgY(_i)b -zNVw#WI*B+tioM|Kq!W-ZIh5OBcqQGErt4W!Oj+;xcVovAwnr!(WD~i*d`*2taqRBF -zTbNkVy;Sk>NsJLnPJ2POH}fJYga|1hCo@_BemO}zZA`x@Q>tMuSt5~YdN~VohS3f= -zKSrZ>tmQY@B=s1Z)D8L{+ihLbdF<9Y#c5F$mcH)rShVR#?rucO5DPb4giyi%3=gs- -z-!~9h%U+{@8NOCSdoxldF5jnEZF1@N*wV{+pAv<0z^ZOyBR(!fIcmc1rxZH(pfN)u -ze&s#RW2Ri4*ys6+th5e3It%)QUOAE;^Y2DjOFl${uVE+e&y43d;G65y(;b@fyg3~G -zZ3YEq3h7sokW9CvIGF2gOphXHwCKOj#oy~ -zkDm)MS~pR2-IlYrDFx6GJ)EVbn46SOT!II6)Y0appmtto$-&6S%BW+dAiK8?iKAOR -z%`qul?c~8z%!Fh@f2ZQ%N&CL3gJJJmHHMnFQr}*FDwi6c3wZxTt$s-0fXc*i1}8xpJ?U>!zb|{1F41}~68yRPN#97(5CZ!Rg_r*~mCZC#SKBMs+2;_6Y&TSo -zXpN!nlE5v8S@@9l;ufm75IqH|yCrW~(7D#^j(vFw8J=VqM=|p3O(v*r% -z>Cn8lx*3ND7X@JkS{yeh72FNddDY4)mmN!2&Z~ -z0|HR}49$Bl-C%?OI=8H_#vX#>E1kX$eRiKPrd^aBVJP0Wln!cn;+BDK(oSwTNkEw3 -zp*z~~^P11aZ`DOu$8R!`IDWmDAaUpOa8L>SlDv!(3_ULdR?%+aVU{}fZOg{b(cL$X -zf(UMuDi%131V?40!3f?@Wk9k8e}eeO)*mjp{$Kl4!9h_vgU~8)_f@!bR&bUeA305Q -zV=b6{9*#j!W6|wykp1jc{2Rohj>!9joJJqXgRaMtdMPR`8hfp|I~)E;OIzg@tZ&^U>%!}yzxV1o~&0RJ~qPR~N>o)l1 -z287KsMQl(@IRgTn_PQO&rjJn>m~Jm06n%iutLcl{C&OZz&oj@?MY@|kpfnEe -zHJ+-0^BFZ7WREZoyjqb7szR#F_br%`ML;5`T$yMJX=s5y5@ERq5fdsjZ?1%Dc{d+k -z0)F@{zxniE*T*ZrKuU9jK6_#O={AGA>th=9XO)0L31sr5`;gcfGAzJ{6Thxs((gv(04p*$Z5YtJum1MdUvrao>-cL1&?-B8!y}$3<{K4m -zpe$VyiCoP@FQw0*bV51@^oZ;*Df7_O5Lyaj0PVNUL&^O$728$?zqnu~#JLd&=kBLQ -zSnU3)DaDNT1l9~H{*)oP12If}a-%^zc9`4bX8mY6DYH4_*VBnO%lc10Ql*P8eFHr~ -zwj5`Hb=~%i%5Cy(r -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 -zc0D9nbHn8AD5aoqmcC>21> -zP4ujBqWJyORlLxj&w;*uo>kp&*6(cqnK3>OUq8#`A_OtkMVVFI*ME8Vo>4$1cTM*c -zB9Wq~#Eh@QA9W`ob9vlwLXO3}7&@aIV}~3+nzDC2E6uqcv=wD)L}2P5PsM8`%#aR# -zKtS}b#28+(0u5u7nf?4VHW8(tfG4682<4oSoun#^<1{SdMpg`H$|ggeo+z`5yU@q;FlqVH -ziiVF(lX)w@!NUA4cE69$JZTaZlt=xbKn$68Ku7$Sx?1?d_+5N3uqGd=u>6P{ukre9 -z)NUqa8lsXVsZJ}O^N#w;c4x!Aaf9r{ -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 -z+c=ZtUWE~0<VqeJ-R0&r` -z(M-mY-QeGg7!#Q0+09`~kmE9)O9s`Y*~=5uMmd^yi6Tg@dk+Jyy;qdqK}dn5k!EN1 -zXY`e8t>ecF8gmdjAZv)+h$|@BP4z-8Brrz`8f7qe!ds0tsMza&94u!&a2|c-t?EF6 -zW<~~oA|)$jxX@o-bJ1Aj0Y;oiAA2Y+0T5yYuevG=w7M4;cGrMexhI{U0<)TJb-eKa -z&(1fT9c{IWkzHh69C&JjOcqgNqr9{*|7jjx7JB0oalOA_lc_`F9uVpf%h9^I92azc -zw1C$07x#YBHR;4XJ8XTyw8AkYiiY6{2%q2Zma!-i~SjcTB7;hBwDd4&gGH9nR65b8La0=P)} -zxlsk6kXGZm-SNNj^%5vEpI1j=3 -zP3G+)8L1VKk^tFM6-@Bhe!8s*GcbzB#C@@3LdkqS6VGhPX1+@`GtAl}H0CP^X*{B&!1eEiXfeL~-$@sO__P})J>AJY-YQ_g3%N=Th -z8{A5-4abf${}`f{SI}}F4FM$>e96T2{*indcp?L-xYZJURTY#liJTnzdH%uR$mETU -z>=lgSKYy)({Cw1i(AfU0AECDFqq?S7$YW+Z#`ycSE5PDBR4;M8tvnfUtq9>HupUkP -z9%6d^s9lswhWs^wRnNeA2+bF38K4p>HC8Z!jQR|mu4|#q)*B;n&&RS}UbAtJ -zpzeKyL`x{=q=53`k+7RG%BkMTJ2lf_ -zqdPS7yO+^z`V)Xzw=5L{){dNf$9m>|BSv-l>R|OH5y@x?5ry+^#VxJ^^~}P$|F|3| -z79)Uphxiv4{mZv@?TvFuj}wE$>doBgT|c}e^2`x_C|K^?Mz1@J8&CC6Ut1YPQapt$ -z>xW*C>XHp=jD)`yp8C?AUCYq;Z*d|Q=Rg8r)LivNc?pQ)TSrt{_Kk^{f_O^lb6cyI -zdO6quK8QurKsTs@UB4z0F6?LcR4)n$mY(FcPRXc-2Ow>j@{o)V$E%RTub+2 -zYf<;eLpjLuV@d$v#R9@#8HLc>qXLb~bv2{6EG63o -zs)w9%5Vkf|UsQLr<#Hj=nkX8|E1%7U>z1SuKTfh~X!-Si1y}$#zoc9u+SdkquhLKU -zQEK#+0e>S{5M=6UE&DkC-EJx{BX=U*rUTFBwwFY`T|CqSrUR4Rm)Z{Zi$OVvAUKgu -z&)pwltjiV7^}k~um(H_13u>dKn01czf^Mq}wWeZp)!vnG6Jgy|MP0oIN9}A6^AGg& -zCfY2nt0AI8D)lrIx%0qSGr%zXlF07(w@9VDZg^J0FY4EHPi4Y_NqJTzDdSe{s=j>5BaBJ -ze9k^!r%PlI(GVsFE_%T!tKrIIU9j*U2hHi6o%F^6f$+yD!+%=eqFF}$jd-HdCM=Nd -zX)%vA{Ac(r8c%-i%vIxdxkJ9>;fLQbfJj6$#A)$W^3(tYcZjjAy`d{J-L_@z6Wq3- -zA3WJAAU2T#Yot>N$IXkqS~rIZXOZt;foF~aYlxF?kj>6QE^%0|Y?NjEhZK}a6|?vG -zD*ISxgb<@qDb9G_@0#WzcIA^{y+*1SQvYo2@DZ+pq3CTLxFaWx0&9d5UUsAm?{|-1 -zd#(&#n1p7uwG$c$)8^GUUb`!Y@0TnqQa<|PpjXUty$tStCmCS9#M8|D!=*5p{X;J> -zykDojAd?m0N@%0d7AstHduBy|QBDXu+4~Akk0Qi-Oc@G@>CDk{)9XKlwmniIl&L3z -zVJX0szhVy0BIDK0@Rmva%N>&;fIK^HKVy`f -zsK+ugk?VCEcmA9}7|ntlSx1!n#dORLBZjgff*M)s+;|*C5#1l -zW|zGt?*O0;-w$r}S>*!G33}#*NR2udjorTj1d;0IL=b^pVY7F&L1frOM1ytBd$#$H -z>3}b|K-3}>-y1VVZolTQwr)n-Z~4;8k#=NY=MoCfGaiELLX632^*)G_1vZd#?!qka)6i9;#p41mBBLQBOFWS%gXZ9PJcNe$s$sm3Cpk2$_ib+V46Au(JWb -z{#Q68nqy-Nd5^P>zpRV0K|#w^m-f1UMDPj9&~Se&QTWNS-3@s&2@v>W8E^SHSxaTz){4N>hwRYaJ9=NA8VY&KM?^YH -zF>bV!wF?JbRsgh?y+zB*KCd;e;aqW_;MiSIQ+%2<1r8BF0nU*o%6~W?mp1jzgAheQ>(n6o{o=d -zL1oDAFUm10t%2fef%5bPym_M&f{;(>*fwAAoFoYNl`GFeo0u>sJMD~Mi-@{1NqeLU -zu%QqG?TE4VZHR^3LFv;4PYxhvCw`uxC874)iys7@1X>%X5hrYd!4@pK;%v7Zv@l -zetVH+tZQUzvmCr7BVsPvoW;u9JJ(^(fqqxJ;qjNc4e4WkVfCuyZ!O@&n3O!d<=j+> -z(h^6QMoU<3Dm!oZ#E4ox^u{a-N%QtzldmAO;k^yZp>@%Y?bPEoJ5SxnHB3%AT+GZZ -z4$c3utW8)i>RFuo$qm*X@KZ+oXYJaH{nEG6bYZ3qLbvqwCn;~1WU!C#+FhSWbXT5n -zy)m5qvpoA1y)*Ph*h=}njQV|*O(@Ti#0<}+5>E+Nbdp2G*ZRE|I}T1qEvr|kNpM3C -zUTMDCtW0Z^#p6ep=1A_TZHH^MsFJG7nWH7ZqnC_Oljr$}1;UrK{7ZPz&KJ*>3fwEaPth9FAFNaRvNb^!va#NZ3Z86M-3aq(M2IMxd5KHZZ?zOJqiC1qJFy$ZS -z#vLy5q&GA%PR2?6h>9R^L6?4cLg?mp>1Z3pLpbJoVjGS&5uQlLmb11-@lep^X%=oM -zLxk*ZI2uLoYB{_{SJ3~n7Jlt3y!QCi6?6E0ktl4U}XgVwp3+fo~<^p{kPm0T=cqz&MEK18hX5%6=w>^We -zJ>Z+Ar++CIO}6l%Q-Iuhwaoj=Dc*mbUh&0XG8hAs7kvw9QAonL`Hi<67%&oC9Toh* -z7!+PyB_?I8y{L}2y2pk(-0zUC)`$? -zqYsU6%lA@cQq6M*&So-|2w6Dxir*vQ48gI->)KFPLO*^8iOwT4_PY8D8+PTnwG}93 -z#O8yGn<^J?4a5)S~2)e;!#?tCS@Ty+R+iRpw%3@3JVJ%<3+h -ze<@Yf$P&M=^lbMAbnyF;{)E)ihbMjFAO^0EKp2!Jf`2KKupZ@n@4KMrGm!OyD}f28 -zWP^_&WeKq~FQ}NUMD>`%?Vn2xiGw>^OZ9-h=0k?gH5@1S3Jil1IT72>Y7{0-G)Xa+ -zVv{X7q{{_2=WeV__o<6B`B(sBY^*IBcDHdl)0NgL%Dsf8Z<8Dr?nUTsXoRlMB0vAm -zU+6YrN9&!lkxg`qhE0jnQp<3i!;)tVlQzvE;$4s*-(%Xp6+^;~Ip#t9mYuH8a)oPF -z&hcWA5kXegmxCfx>|Fy@fZ`qjMiU<)wvNhmp9x)0M=Y!{_-0zUVkGpAEo9VUMI7H> -zsJSjMcAbar$tPO>NiiK8htbfxJ`e%rRov!d{91>r^QZ;Ad}i{{Go7L4DR~2y?hr|~ -z7Lw|Ls)NFVjSaXXw^xsh7xQUkXuyr!kP6F{&+CM_7l-sPKXekW?3tssQO2T;1*>f1 -z%*Z9dc6rpFs=uCJ#0e5-`|QPVD(R?f_c>xbyb0yHjeu9N_!nbKn-*;}Z@YxP{GvLb -z4BRz8?Mog|%bsKr-Olu#^oe3{1hzRt+iHqvzh -z&32y^h0gHJ%CSGDOE0HHFKn~*SBAjQ+=Nay283(??s&BNi+82ZErl)C6)xhr8dvK2 -zYL`J34q@)*!WL@^i+-+F6p_|a*?s4&>toZ9JmI!&wSSi6h>R0ev+d!69yNg2q{m#8 -z5S1dU{x9#WvB9DCoHS^y%_GOaT)q#-Kw{68AbBsYoYE;{H=<|(%81;y)t0bmop_UL -z);9tTi-vy=HS`3r|I?+ -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 -zR*#DBLOKE*4Xp+UA@zFC+*w=i<%lOT -zu@TN&7v{G1zMot1Rl;tumnz8zCERTodUcnczqfPD -zH=8v6)u}1&{lxJ{r5_Vcg5*y=_c$bnz5S-$Usg;Qao;Cp=`&^90hmk&b{%AYHyY<( -zo{h8WGbLVe-x2ROQ4HmR?XK{XlnimDQVBYnTcjZU)D2bdbFkQ;UdIt;Rz5-8jG9Q` -zXj1!EoM>{@@^D`J+!!o9-85kn8hOe)M(G?Hi;@>NN}-C9qpv>Rq!1>3%KfM4r6LgE -z{3zEn7QW}r&n9tIGOFPUE#4tOGumRDNsiWR`>2&rr=x1X6Z~)Sc#WWmj;1s -z5IZ5;&h$}Fe-UZB>X71zgF@>%-!Rd5_3MYA{G$}2CsTW`#ZPPobPM}FI1!+HU`0O-y*Jeri8*E?S -zcF0p5NUE4P|6-P>ec-y}Y)tasa^)3RxJ&%6aD|#cT9D22EIAgeYjL -zF|#m3P6a!^cNHN5zsQnsk0tKPcp@15Wd9xfWG=P-{M3g`1-lOi=afti42tNiJV|4sQ2=*-vL>)}1SmlNB$$)J1=9lnemr_`BSZyXuFO9u<<#v? -z`H^)5LB!ov1pd&fH%XS4Gxv50MJhX$6D{5;P>sXfB;iHHp@E<&klT_9Pww@1I(M}n -z9$H&BUm;B{Z|R_N($l(Qz$9oU-B-cKC>@jE-$V%8-kJrkETC84@o&pGuOEjp6y?T^ -zukE=CzE09T?Qd3g91e{)xBf||Q&3KgS?-gzQAl*F#Xs^LDhk@rY4H;TFy(NoHS5@9 -zOS4=R+ho_bT1}niLwPk-ro*>jWIbfok74kS6D-1laa~Ad=`@ce^f1eB?E~}41fKcO -zsvR>*^Mlasw%Pd`Aln5NK|$z=fj8ZN5C)e}DTXw-Bll?(R3yMLa93^=Jq?n*0*9#d -zbpxhp02y4l$MCI*VF{2nm#4B*B|PQNp%fLD&pJBHb-DSU{Q0Q{|6q7_-*sTN7<11N -z!X{MLElD@E{z*oGXM+7=J)LmBe+!4oh9S3s4+Av$-}*iCgTMW8iwPDBHv9;7l@2xV -zUZM&-tNV%sujRb1{@-&;!&l7>%Xux>G`{{j7p{G!#uS7Ln5SP_JNx#y^(D^Qzh#Xh -zU2l!H!X-b5Zlc`rts| -z%THI`6sWC=RLZv*x1p;X*4VY_!!rbhnhgtG6Xq*klOA0OLpsu&&K -z3zAEepDmy2N4v=IgpjX~|H*rA1Qnjq<;ei2l`5lpsXZSqNQ7UaDDo40F{3Nsj!u0k -zCfR&+iYFT8oBp*J=Oz;fDuYGg)9;9TI#U`W9*kWR7js}EX0i5IK*5V`F}W&>{;Jxd -z+U4eamkhM7m&2}3!b>}sP#8IKA`FkRxmF?uNMUckkx_WIuTZ*wAyV(P05n>l(9n+) -zKHBvn=?aG~YQ<1N;)F%zch#RJDr&@g< -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 -z3`O`>hEu+`*^8RGSf -zI^$m(OK+ujQk!7WaqR!Sz5AyReoLCEP&5vqd_gffpWr^d!a(${q32qE5Q3GC<7t5q -zt7%f_X5t+kOH9);=p6cp1JpFV$GO|C1;O^D==_1Y#x -zM6K;8(x$amRBFIJZ(Y`;cMb69)Ke>@x-oh5)XSFs*>YogDY;15Nl+%T*s>Jth498i -zt)JJMYaH`wWJTlQ87dS@;Av$6fw%6%^>fML4oR_r8BRpvjx50nhibPO>`KGk3_LNX -zaRp2bRoP!bL?n^GF+mCG#F3K%!z6LcZTg$Bp~Bj6d089ZNQ7pUvH1sW{Q>epiHAPy7pKqeOlLbYOns<^2W`PB^WuvHAQy#} -zxI}jk(z)>`?;B+6GfAqZmB~q3IlJ)1cVp$O4Fo8IY*BUlA49J$R+%z{7z`Pn3<+z& -zY``U9?wvKSM93J3+kexh6oojl)%~YSDsEB0JB?tuRxPt%P<6-Qxq51VCS|Xt-=>zy -zy#4fgBQQX`;YpJuUNdVD^^%C_q@dOGeji0t6!_qaLks1*3kp^Pog*t~2Rb@L^4&^G((Z%HW@u4G6nkrJss^itJ^u??z_@+-akax;$ -zEjAw^gcFL>mMTo}!{>XtJe$v7^m!HWQc -zbLSR(1_ahvG?_`nLKlSJx}Ri>zHNJ>A>g%zG^eQo+_Ag)%gTmTNq5!q-bk0WkYBPs -zMlWeNH<)24daoWsrGt9&jYf0_)BAVXkjf$<{Z3v17vT0?bi4u;P5fJnxSC}A?LW=^ -z%mhYW$ACi~K*wWE(B;;^h80OML}g9q6v)BO3lR`XU?`h&NRM_1Q_`-4LnDkzo^2=bYjJi7By_i -zf9bwFL0}_=k&8UOSrOK6k}M)ws*=*(8{LPXxX5=(rsv?z$u&_A%K+s; -zt?lm6Tl>iSE15$-!cE$UzCD!n3vAg?QQu;U8p_-VLi0aIu(6G&mZr}p_Gas@d=WVi4gwF5h^Nq#a>Mdj^A`qIi9U!< -zZg|r<(t#Unvu$P@af=WH^2aAomu*(I+dESz1cU9OZRQu$n7#{h^ZAnLugndBRPX|KpMQJA!`_OV2N-BZ;K%27 -zw;KbLz)+l|QyW5-3O3dpP+~zk`QQ8E%J5%M9mF9C0iXp<*9Fq6AkNk{Tc`uK+OUz_ -z-&#B0`^J+mDfuti_u^)T?m8>qnmc=mHRv36sa+05%_7VnX2+C?foL1Gsj^)PO%5SF -z$syBpW&dpY%zVy?7VD$8nC~@6s=Ws0IS2mUZA-ZD|25@zTp_;gJ>lF^1q+h?$GgeH=FI}Fo>uN_#Ey|KiN3#5SDLOlt{pZh>1G9rBxN9t;f0kR3q38 -zQd}&Kt)yG2&zrtc$Nt9=YbPG?ZCkxR-+ksfp%3-T5}QBT&L&`GAj)G9bF-Xr;2>7N -z|96-G=VHczU+vf`64)X|>h5%?rzIwve0+#aQ*OeUE})SSkT3 -zEuP###~khIT7Alzu#MTLLAdp7WDxa7 -zn+4g+0dAIB#essoClYwXg%qCtXA&woIwy|8T5ACi@D9|CPHoDBb%swyS|h@`1JY%p -zTj}kaV?Ba+HA9J7hp{ES{n8iF18*ie>0yxi+tiW;Hc^1ubQSPqdiM$*$!V&Lvm60o -z55+vx0E(uTxNc#R*EY1JGNNxJ!lI!~mD&E`0&@_2>2$(*fk`qx7`{f>p-^x%pQAo- -zsVd12!ox5r%>q|Abe3BHhSZhh_o(@?qDyD?75jOxQIm%2IHD_c;j_C}6!kR8^d`lj -zUTEnn73!!Wv?Ozt+10ZRge0-7?8ZI6;4$+7U39%(#6Xb%ki0lci*roN3}e0i0yG6q -zXwtY}G`M}=XFjQMp|hhb|KO^xHY}9aeBpzn95Fliv$55t^14|WwuF1-&iGUKf&@BJ -z7@*EMX#65&sq=4= -z2Rh;+9dxrW-|Z|v1&{CvAqVRSJk4LPoMAi`+%wwQmo3?V_e`LPSijQze!f%+5K4f1 -z+evOT)XRDo;N_vDF0!k(GLV+VW;&$#Dovhn@>&UaHvq~Jb16qGF+BfMg0G=vSL8w8 -zLGo#6f)}Vq2H;3^@N}#I8_|Cof9?NcN$e|ZPmO(e#qu4FKD>WtipqJX0IX90!h>WJ -z5vRGG&cE&-E!}twChDCbO2JotJ&X-iMbuFh0;^Q;w26&FHiU$6i$8lmBzsvGk#8f7 -zyUSJv_-?xDDctX|(kP8=@uVB58}VD&9(l(C#@Jm5D7$>=yz{~m&O(%Gknouh8n2{$G4TX>(EL2<4uWWJXCL~ -z=MBfem$GYvjkJaV1_iO)$L=a+V*>?(h+j#Y_wR~MYNr_;ux1#D@+}cT6oKw_T -z&U>UVrd%}}XVJL}vc}s)4hY+x3jei$!xQdzL@!@1;j6F?*WXkaHt5mswXK6j|JSa> -zBDPjl4uo-rJ+-s@-fTOkZ)b#+ihPv&?`P*rJX#DwL!;a9|5fFTFn>gZl+A -zz8J|8U@x-b^n0CKBGPqWLIVaq5(cD6JQWO~!L>FgG(VIbnP@xVHc&der;{-|_DLeu -zwSCt3{hXtKnOqL=&=izbAovr@z{2(@L*(X?QI>!fLD@dXg|LD#BdizVwmy7=W0bFG -z&)t4UbiND4*^XsG^R>(o1pbR^%5H%)tsukPzVYR!y5{~K%|N( -zM?EYkDl)t9C&ILpff`kcfPWvF5Bt};N1$h#_c{&X$Qdq!&hU#M&s)1$Ze-KnG!<6% -zm_&c%b!a+xbKtI8UF$Ia7DDa^K{9ea7#N0OhceD@5Cz#`NfNck^cm;>Za~vmrNcAViq=Dxk(hU&ZN$VSMQ_{Nw7;iL* -z=_XR|x=^z0S@y`w*A|_F)*VpzsWFT$f@e>!4}~$%05TA0N%ZswsG`8)WZuJXIBUJ%}4#YG<7-sNt*UDja4lyim%{gQl^ -zlAI(ra{~T4i2Si5E}L!XapA_JmVUBwmG=`Fi23M28P*oeOt%NV2e3k%)`8w;VlI|% -zbKyvt=S=i@P`GApKK2XXIIP`YKvlp(17>}D< -zguXhUH+%S&1L@igpg4Or&P?AK8-0}&2`6VvXC-Hp5jFHZD9&2G$7eYGs|QT^f6v|k -z&EIvQ@bd_hylU8vCG+E^9!1LSHWCf4deXyAZu*;6q~oQQAnVtD+D1=A6J03f@YE#f -zHGxi;Iy%EHWAamZml44Z#9BXbq{3ew3G@utexhS!UHqC032FGR1k@1B1y*N543D<< -za~)CZu}NGK9WL60ZUJf@SVm^hF%lU6P5_|=tlZARZ2Rwm#6_Q0jO9AZ=p?f*&Wg*jKCU5T}#*=sX4OvZu -zi5tpkqRQn9L8^* -z$G`6D8gL=J#5c>x5*w8AnX*0yTJXTUCqyjD{B#%ObI-G(-=w2WiIr*hlzV|Qny9;x -z*)c$qMQsqM*0FiLdAf4e)%Nt)zn`r+mH4Ry+x2~<5NV|d-Fb8sY-2*RlCU8PnTrBH -z752tNO^un}Tp=rd0%}wdS?KgBl9$3FAMSH9bh}ypB<1&j`JSr6Ti-bNi!g%#eHWSS -zub*@OGfHG^0Z4(M2}%dA>d_iw2%Bu4tBdLTNeSf;pBC935NugV3kf(OCH}5UAmiE>!C0(&Fs+v}nVIT^Z%GYgwF1U1!%FWwBxAZpU5p_+?tCBfW&{HHmHy7wpN -z-P5+NK0?GKDB!tJ0%S?MV1zcYEpeMJ0b5sd^ag<7%_~c}-2gqCIjulE^BZCslV2x( -z!!G^T6Bdexh{)DJqsJoC0GkPL-lvwA^25y~!@qP+G8UAH#fh#5$S#^Eo2h|aX$RI; -zYXR2t%EZ?b3qJf|55|uRQfz?TUH_rUVsxlqh$z1r#?)6fE}#U8=?Fa3MjLJu)ISJ4 -zzsb?uaMc`h5m0=)5%RPGXLX5{c;@V-L^$qeB_L8}y2FJ(CcaY6qtcQ@pQS_*aX=X- -zqnG)C#_LUc+}xt|ViH2nv&sjA*rXB)Tk -zBZoE!OvhQe=Os5@N-pnb2U=h~0U?ThQGL!`jm0jaWAFg$G-cMt`wBl0-4}HGV+Tup -z(jjF_b8lDw!^If$kb|xV5)@%QzCrJuhA953{qxUHaLwKXU%dM}R&d69M}|O0i7@5Z -zM!Ce4zVQDzZGEy&rVh1KO3dKsQ)@~>;9*qwY4fM)ulVC>vdz+Tk16gknyB10`#BdS -zP@n(QVZd>-)Gq7$j1bysKMBN^1fWHZ7f(Uk%kW(P)2&g-C>$~rci+ptf6h}zX~b;C -zgi0)8`Ko4Z+t3j)JbNnqZs)MZrX@C)*LLO*W3!xt1jLHzK+$l&ajyBmoOWkBDv -zHBaT|_DT!(@AK!N4YvHAulxNoH~zm)n|1F)(MT1n=+~367_@yRfy=%Mt`D?`0ds)N -zNE^bLiwLkk`^-7|&MNSSZ;q*OWY2yrvzc$6#PEK3YAlYcGLo@@jD9_)ltBjt-0r{; -z;C0(*kJf(~9g`^0EI8GsH~mw90)Yy+2F2iI*tU*1Q0qaIrq%5;hl)8{U6pE%6njTx -zc)8i#Ps(387aor&qUHMr1ow1@yYx9$9)&i|E3D9>{DM_4?wOEY!SRam?8)-wktLx3 -zXu|%J+y+K}Me6OFl1J6}XeHbuOe -zRJ{|4PZ(+RGNlS^E!@N}4_3471u&2^8AgQdOW4h|T0l^kVRv*|L=;|k%_BQASzgY) -zC=Elz?*NX#zjU-BOr^c^q;Z^QSXiwrGS6%=_t;1o0o>wZ(QuidN+>Oq-8JSz1bmY2 -zC>K_X_PzPMvYOp>p|63WEM)NQTBh5pxa$*$l02lGdSKSOp}6Ojy)%daBcJ19*)*AEcK2<6k}JlV49M~S7);^#j$XTEk- -zLpIz21S*w*-q_RBOJWb2>U+{`74`y=HX+=QHayC}+wfxo)*{)RH32=2epXU-%|A$j -z60>8;RJ@BT;uX2_qb5IUoF_P}k%Pu^8;~U-h=*svnt54E2 -z8Po2*1;{KE0yRKO1GWE_3-|mFRUTiahJX`P{-@Sh!bMuD##Iz)d&Uh&Q>I9UQSd){ -zY|*n^n3kG;yIL4#k&}IVjOl==h6EOByYOD8v7K|I+v^kjxX~yr{4FmkC5As3Grxqj -zkZ)pmE&c^dtrr?6q(o|P26w?gHz(LSD6n(9$|?b-3`o*M6JbRKEwLZdFTWmuSO0-6 -zJX%AYq@YCb2_Jv{b?|qF)ZlgUS(DD)VaIkI@)LENvbMBt%Y2u#Dy!PIS6h`nQoYwGwBe>sorp(AG>n?WBH^ -zg%y2I -zeXohd!uY76S{{!nmyHubm4QUICp+FBGvAp6O_DORlPlO*nE~^ZPZ5Gy^BPY7Qh9b3 -zNsnO$;r-M}d=Ft)+B1RF(ZB<}=(AFi;`PU*6zX9Qqzx0@RA#oYO^}rXW3&t4) -zT?mYHQknOi5>M!R(Ymg*$x}Y?R+k9%O=#%)#iL!MT{1Ydu4S*^8X@{{p~o-_1XGU= -zQ9yr@DxwO_H;WTA6g@m4@;`oq0Puk>3riY=QP^)gsjx~?r+zUsxD`;0v{wM%FB^6$ -z#^j&T^+Z}s=33^&A8JK?%uCH=eE(3|M>ndK1nAv&38bL)(G%4z)%Uy@=W*@ja~w8~ -zw}rR9c>j8Q5Z^z3o)?!}U(;o)jIu|`d!cVp<_-FLGbw(6pzo;gVaBQIYrCSj_1p}m -z=>^KcL%c_$hi1%3mJl95N1XNzO;((lZ!^g*Ky;5LD$f_jOKxHE-6E82msI)Ya))-8 -zgeJJ+kCT8RmE=lhT5c;)oZgVmmrd2SJ75wChT!4pIR;{Vp3Qjz2C6}sg?X)v7z$%& -zFCJ0T9|*#R+CbD&Q>Rhte(iCuLm0iYcE3xysr( -zq>@(MQU023c(cw9J^>p6M-j{^r?_wpOUZ{fgeHEAZbOq*EWzI&X2vbJE6&=;Ml|)) -zJFxo+h5MSh5sFS^pe`)zJ2NeL^988Dq2BU(0nAIt^ELip&W+t^BH&l~C9N -zJ#otw_XfFacd9osOtoDx_y~YX3PlD5N3~FUgXmB(C5zSTy5^qIk?NPeGUC2|;qxQu -zVHru)>Y7Q+qrP?%J>2CqlHLLyOB|_ZLZseKSkc(}pWAYV0glV%ODo>Oe+O>5V5z2I -z_lp%f*+R>}t24s~{z3qo>!z;}CmcOa23~o6u5a$yO95tX3-W_DEvR`A#9hnmaZudX -zEIbmjZlB{SZZ}TsPR^Y1Y^ne`O4-7PvtZEM&mb*bx_CM8kGoe{XkYnR#8ogPDq@MB -z9d$TQgm|_CQNH(a+mJ_N%`2)#Pj;e2rw`%vxn(p39h#9hGqt|rk@^~=17jvsuORH+ -zgl9w_TkLsov1Zp$X5B@&ug(n{`@}PnH*Ap1pfjZ@R|St&G>my&r(Vu<34LXJ$IQ^v)WMSaXE0eexa*j*PJ*sdXg!;(`Em}!PcmYAQ(GP -z_{a6En`8wZ_fAC>lLR>nw>(*U$2`bX*7gw7EgJwQ?+q>JfGDl!Gv{f6V*7sxuem^2oLu*|^BI=Yo-jrNPg%Kt1PnpwFqr -zR60nJS`rG$@VM?+X7#h?M1sT&L!w*_MJ!bxnP*gfx^4vEUw3aPW*ku+2w+PaGe)yA63HHnmRxE;)gdC%E;hFd3AjGFuK;!|XsoZx^9rY5F${03))qtTBxhUkA -zN~5tMJd1mflm)RfA{#&er+~)0ec>*sg1z>ZgDbyPVL*A}ugb-a(VjtQsDP|cS2%w- -zj?H!F?>OW1XgoFWITvef5rto&-BV=WV@^ysQm_RLt|$zZ9(Kg0=>AGJNR=BJO=gD% -z<`O+GQ%Bl8ms*%|%7Z(NfHaW@?RXML>0T_NnN2@!gB_*N?Sa<-rg6Q6(^_75R(8Wk -zIFrI7afxCbL5gRL9X%DlvEVaohq?$fQGc)9s|^hz9&TvtxVHjR`LP -z-eA92z1A-U%OA-C$GSIaFFYVQU2Rc_2=8~k>B3(w7k5nO*!t&v7`iJ89)Ct}?=xm7 -zf1oDN43e)*zAX^MO1`x}i5H}a%m-Dp*(qgp -zX*(9t--Tls+lJy6w5jIEEVE<9C3|_QH2Oq>-iXmM9a@y17&b6AY|u5D+uQNa%D=pF -zTIB-`vQ=h~XrZf#6qx%bZ{Tl#TPNLZV&Q+kIWY~pXIT6ww$|t -zm8@8ukrQXW(&-WC>M{@xYi9jsgRDP9gTMUqTZfI0D$pox`{>6RXn=KyXE9_5;R%u0^|9wY*!n>5>%z?e!ttIC} -zeD_B0fMXZy>ly;C0%-c&#rmQ$R*vI$&w+EcX5tKKGj=ZlLKh%Vi1E!V+YeB^yw+Q( -zEgY@2TfC-G-N*cE?(5&MrXJNP@D*lMOPRq7>ypmHgo=Z$ES -zUv_mj%TBcM#kP=S^84To6pFjzmUPkd#IQbcyC -z((Fg9TDR5fe_^*X_H(|`r3+~h&bzM`>a7@gNewxzUi -zbisWfRa~lfM5DU7+t1#*U2OAR^{fY$--8sP?8KW~G-xBp21*x(|JLg%svS#+jE6({ -zvf*z5@zur?(}w4WtOb~b=V0y2y9dql4~BLhkIG=B2gIWh;(Y$B+aD>w|OBGVhYXSQp)9q%{~SBx>p+F_B~5f)-6@N$R8W2mVZT7hyAi7JDl}#eaDFSKB}E -zKFrX|;{G=*=Z(ZSR@JE1oS6glNIXkf -zOoR?A)lk$bL4ryRIg!^gJT#)kvTP(qS4Zf1JB#%~SLp|DCM|bzME;h|bE80Cw`Hm! -z%iSG38^q9EX@zx)aFEpvcUSBma_X-I)k(7Xz$O)`2+y(EGDB -z$V|Bx;na8>L&f{CpRd^)9+k(>R5UzUJu9+--FH1o9|fCVDW4g&56kak4Mn)KZo6@) -zaC5HwK8%<8LghXIF?eKg{PR1BsYi0Hl`Pl7&s{~e7c_hi{nb5=kKRu}`;kKUi59rd -z_O^4NR$1BSTueFyt!=#2=g-+|4V{~vb`epa?tUp?66I3T#x{ZR8Om_5@3X&*fDg0Yry40PgwqR}>b0m*LmlcI)LqNFDR*Jh$-nQiVmWW}j_ihO5kQN)q%_#NIm-f{+`Ld(*C{_{d -zEeZWt#eea*(BL9osv>o*{4d=%IUbL?M-8oa5MVhFs=t&t`N1@qL4Pure3P^PkqjI9 -ztOHWxK3x5WpqcKA&)Sci+n;lg?F%EU -zF_scrBG3?0tl~H6C!p4PCXrvJJZKnqfr7$=OK*d2 -zb(MVfafo#y;5U)@^_+f^+lIs&OOK(ml8O48?5zd1Lf5jd-JXD8J5cB^9)HnVdH*e4 -ztkJS*Xu}U{#YFQ@nQ%?1$bHRL=EixKiGGTqx*ZNC5$6&^%)kpPv`$^(d8Ev-IHt=p -zE{kkE39bWGi)c|xvGU~~UmZn2n95JJ|4Ay{0J0DjL} -z2W;a5;1r*|58X0S{ALS~!xy%t0D}x@Ky@|>w5`s`Y?VDiE>Mpl{T2Eh#xr;Ea|K`< -zKQe_Dk1jN~F)aMS+Zb|U^$#JcdG>(-wn(4IN7cG3H%z4QakG2>=Yh}rrGK>a8sypj -zz}3>u!FQa~uiW*!Bc8|4|OKNGdG5(}Yi*YfRh -znoRA>W*yu~&)y*|u5(0u%*luTKN-Qq^FwNFv3NA@OYL|AV@vk~A3f|?t1NOl{5wP1 -zXH|ryz0g4}_2~(1bOs#<4K1R00LY26mb1t+O2dDht|Wd{)4_mM;orVm8lDH%mP3zD -zkCG~T>pMftZsvpK>pQ1KAkPU&*>p9?P8&XS6_oC4INDR#XEbq4m^EX{ix{X@D0|KM -zzBVaUa=WTJOXo{Zmx<{n>Yd)K%fQE=wBhzAUq>cWFI70-*CZv29#vBae>zD#Fbr=p -z8o8aS>BT>?F+$_pJ1dwJVssA&js~)4QMN(M0|=o -z;b;8$NFA5(;AY4j7X|cTN#VGqXtZ^JBH2&sRpW=zoTHQp?_mV8czk;!bmiTX5;MxL -z3P^5VthW@iu~Qu%q4S~>cF8$TJSwH0R_L>$w<3(~wLXn@&S!oPRw2h{7BPm|{TewC -zY>lmt6l?hS15|HvXD7p1jQen*&7_kP?T^Eh{Tgm3Xh(ERy%Gl1w_}O0?&ler4SCgo -zPgZT0oLH(ZagCqntos5emhlGAyjxg~hZv4U_VSzPZ23^seNFS=kcR$|S3$*{p}N$b -zYAH5j&}2InNZ#Lrdrr@*XFA -z?*g#!$d#EoVQuKW>Y=a7#PoPmqGTATb1FebTDjJdB+%@)0|SLc$=g*usy0_nux8{V -zR64QYBX}m5naV#c88y}vf+(P(6mQk~B}@Vz(rMpC94sKyohX926O!H{R%}IX+_$u0 -z57H48rYyKvRMWBFWB#MXLa#Xt#?s>eGxfKdFaEdmHbc{905evz)Xmx6^cz4+1GhSN -z(Ov3$xBuLK-s$(uV$k7>NU6jl!4UUBfq2m97`+Vd51riLbb!GHqPf9tE$neI3is5@ -z&x=W|=bydQ6*i?DfC@suGo(YC63OZ~AITesvI>8hVdT*)r*m&a&s2kU6$?MZHmv`- -z1PmHLj|R15e+-YOhkUT7z!rt>F-ytJdZ)Qd6VabdrB;{xGtI85Z+JxI!1|D(b{!)P0w{CPki#oC|UVxWDKV3n* -zfBegnQ8l%PP$letW$)5IC%p;nBQy9#Oe1*>oDPVnR(K!y5V}*eY#}l4E8jR|i^?ck -zbsyBpQ10Q+>1^{|J{ve9$KjYd%P(V`PEhaYC~|bn2X;*2V4`#XtXKp-;2bJ+8O|m% -zY+$G)p}jZ}gPqj)NzzsRp%uH1bH=B1mew&F+K=gQZG={)20{ -zp!shjE~f9(z1vIPTYTAg_R+xkb3nq@T|6rJB@SD^L8o78kTD^x{%?Jg8PV|pu$2vg -zwHi!p(>+Q+1*&Vg;9fR=Ro -zTZ!y@`HOi)65Kc-cBd`}oY%_#-bjdP5jVA{%iJ5Ts5V06)?sMbRq`Ttp&JWePx6ze -z&-#oC%m1AG0IJG>H_uY5$x)RpN13u8@7jKg`PiH^(teMP8Y>lc*y^Ciayr3_jf}$L -znRD^@8B1vsV?`v8do6$ps$$;tb_uwXzx`^9R7cIg>FEPQN$Bw0zkqVnBYBRT-FcgK -zF{++b#`Bix*m6Qh)GV@^8Xq|V$ot@x-S1J^i@o?Rv|tF0ZTzwX>b97%@8O*Ug82tn -zA65^h)e`y{i*fI+@u4-2b0zN%-->&x$NW??-Cvdfo?{kTFIrrVYwO4ThJX3F#_HE> -zfK3OyvyVXD@qpZeXJ(6RSZYzQ<%*zIWlH--tHlPup)Lo2c$oj9fg-8eY9Y=|4HM!y -za>dnkc}A|JQ2QOkUF7^3>SD^hNZye|v3fs%T8TL9s;2u|01 -zynlHHoF@wen)J}9A54s$5wMGh_&Mj3dY5QRb$tou;}6=1o&eXosBy2Kbn)6RmGc61 -z*{tb0Y0r-R#O^_(qaa$C*159;wHhmRLJY4VO>*G|dDJBq4g5Y}IQx0{4VqNa7hUkFzgxDXa5v%}E02m+;oM~F%=J72mweJCK -zy`N=S?7z?n#8ekqv&LBJ>52N*Mb5n*^tFKIufJR^u$OWuBhzZ#_AQ!EjX=PMW5jl# -zHk2i&XOYtegU1v{Uv93({vuhfjvRKEBOcp*#oIH`!IW+OJ*9+2b(|ykS@@&hgn+6=baLMHu|Zxi{OJ9*rhP7){`c`Vncn -zjaS`v>{u}|f^6=OC65ULH7Vg?e_}0eN6&MO)-Y+Z{0&k;P4H;1aPIq4T)Pdh|A0Q4 -z!Rl-G?rMijJ8<2tuRHi^6fPIKhIIZEzPJcLUBC+3PZno>`CbP)y_IBa#k3Iz?N$Hw -zA{x9k*?#u)O8A7mw@<5?>a2&WX!svNL)DVR6P?5s?>qQF+UO=#IBNEw^pa+!YVwq} -z--1bq6R{CZHNhU@2^$*Ut&B7-{xna#ENJDF@w9BU)C!HNnr7+DRzGXx3OKYFfReMr -z8@4@bXw~D*yk+v&9ko#MVilj+-v_eS4YF2ri=M)eL*ia7y!p!I3IY)fw4SUGd$I~A -z=_dn-@>KwS0PK^muTIiev7oZIMiJi6`O~(vI4BAHr*E4_?yF+~tqhPcm!~rN&~>`} -zJ<~JW%H39BS*rcov5%2v_g+x;t-d#Kp+xBS5E(hpu5d%0#b7NTWh-?ocGKyHuuHB8 -z9;w-TGCezDIWR8lY{N$qnye=Nb0bF*gEBe)xvMlT$Z)Lm^Wy&vY30i#la -z>2Ijm))afxJAwachmc}DcTlDHh?%iO>Cz4ld9-#(6BIZzBq{SWaRaIuQjrZPyJ-+LOd(0fY$$~JniDKZiioS{vWyX`|w_);Cb+i -zA852^!}{Xl#MfLnCnPT%<{vifO8?wUE-}^U%_IgWj#%@Aa_#9zPNO76D!8K4wvnXS -z&+^GVj$bYs?H*lKuTx`X;Kffk3>^T#6~JS$EGy~QtMsj=*Ai+Sgd5i& -z_E9-Y{~#o19qnT1o1J@4aKh!+Rh6!+@XUc@s#E-+{bX{m24J*+n8+jFZgP8Mhvz?7 -zJbuIrl_j55B?UcrPr{ -zoBL^Z@2d`U*&AL)lM*buW`6vlXC3(6GVPOWtLlSU(>FOXOT(=I$BoBKqkU0ikd>9} -zx+!<3m6p5j6&$!fR22=Jwx69p+u*Voop?v%?}M%|p_sAN6s_PBK~Rv6zQ0Q43rd&$ -z15I|wH>#)R)>^Ou+dn5N3{@Id^Ybb(m7rcDOk!gnEGwIP6 -zEg2}u|CuDJxn?}qJpXFY^caWoH$PYN|M7H{0abNPSGtst5~RCR;L=D)N()GrfYRL! -z(jeU}rF3_PbV~Ek-QDn=d#~^J_r^Z^>~r?)nOSSr7?<`h(4Lsw)%NkqX)3AUzs#f4 -zX%xhfl0yliRoWx*5iCr$|77jd?7Q;^camGeuQS&lI6>r<_(opeEjIirG2Sp}mfmM^ -zd~>edityzwHU}sV1*%Ha28yx^)RQygGU+#QaX^*U^(bx2nZO<}O) -zSAEKk-E^y*m_#yUfVH^wXE?L6kGWhe!L8wFth7i+si8RG8`+EZz%xEJ{(NL5n5(j! -zgz}#e>#)GvFZ-Sv;MlZi^l<1Z)*W%(^7=nV96MeQ#Db;P*VjglCgeB#&n#K#mru;I -zFIM)0q|PT)0SHcWE(DdGpl@hZnSr7~VxB;+Eo;TJ^v9_Hgg;>kaKXnFMZO-G6rS0^ -zE*mnrCLQ3*fymmz0x2*5$Gi>B5f@}()qnI%?W++o@Rv}WGA5=TXZPd<4u61iC{HP~ -z@>2B3t4rS3k)Y!mH>#kTbQvqr-J=i2yBAU_wdM0C)KFZh1s7)i&az&`fhDvTqNf)D -zC#oQ5dXu!j9Gp*0+Lkv8J&@@(KHs;s9N8~X5~ycLZPhsre(HWCP4LV%M;PoF{yc@gklaRqx9*)#$hhd+|l1fE=miH2$mB1xbRy7YB@l -zv~>dDk{!TC`H$~Xd3>$@!|~0xmm=mhvVSOYU_mLAA%pzNOTJYSt4A>UmR3Rg8!w&o -zst{QF1@MmxrYJ{i#9miQvi?WD9f)7rafh@--i(w4rc40YZBKe(b56SK0TRnlFy -zBf+S!OQd^OJds>UX7`TF{R*LjD@(^gAU$MgfNlT%y+v6aDe7hN)e3 -zI#+x^U$BE`xxt~@yuY7DyIDzGytqz6$=~oxUSR`TZ%2@%ZFN*L^3##{zDBSJO1AR1 -zfBXaI&Q0Wi+=*Pm6b<@OK4zPLSP5`F0wu+s!QKXe -zbaV}%9zp}-VN957cNeJ1240xh92_M9pn;@@wdCl{F^YBZIPAr+|sDgZ`=WNBJ -z(vp0prx;bRUcIIg0gB25XRWZ20y5k}0_`L_)~Qtg0K|fDEbgG?h|MtHC$nlt&8vbb -zdEz6;sX-KaR^NS@pl(tyZC2=PZYW`u8K{a(!4Naw-T?Tc08xC%hMdUoh(j+gojen> -z)gYE7P76N2`N#X;Vgxvqy@32R*hd%tuXXdAK*{u=X#9uYc|E+sVK)41vq?YBw!W*K -z>nP&TLF6C%H=F%_?sjvz8l)SulPHHbtRe{3Knt4DgNrGVuxTH{XD(e*>`f1?nD6y6 -z#uys)1k>+>7iFw;?V<26k(1ynT9ft)J&oEK{36`vD`)U=54_@1ltmL#qC@gZKG$@O -zcEuA0bQzD7;Xc`d10g(hhxEIU7_s}CN?H|Kq-x2n%{e)K=mtFk71|`lld==7#ypZ2 -zleg==F0` -zH`X?4b!PtVi!p021abq?(a+qGZ-iO4Iri+=xDemu6o|}9i;IMrSB~`3;ge_C -zqb5z~iQ3R@_~!ts!xXm?v#6n~+1P;Eq8)$&0MO`V&T-|a&@F@b)0h#|1P+mIV=P-r -zsrWSWy#Q*#9~dPhdu{oj7@dgG{S0;vbCenHY5PAczJ|Zdi&_5#zxY31CAI -zDPY6q;IL}v$F|{9W-7XD`;EpQ-ot8svHJ(57Q&ydE0gV%_ABl~r4sjr0RFzNorstH(u#71PphukiZ@p16;3zp59X0}LbyFDWH`+CS} -z@CT4-8=P-Kt?$ThMfH9tEmrzmcvO`4GFUneoGfJiLh;jx<~>7*It8fs^73XW@36s~ -zzaJ682zBJ#j0@7%!^ht+IpM^z$D_=oq5se9Wp#byy(#ZW2Rf_zqZBPdtJQ1Q;&f2a~?=i -zG(MivR_{ZhIJFs||*^b{oSAPf_Xaj+j9)UV? -zsRZ5X_;J{ZAFR9uT#DFW;iAWvS@RD2CX0NT?ipp -z!jbq)^j$#ULWSB{I;N`CSJK=0ALXKu?!%Yn#gmezCx_Jnw_#zP4LIUxR -ztC2hPkAuac+{D&2dOfsIJCHV}!jyZBlH7~!GF)A{_T{T<8kA|Et{79~n)nd6QOmH_ -z{DD*aN85$ie_%>TAY2X+Qud+!7YG+o=<<(QHI51%(I~1gd^P# -z_&D@=9i+55)tC$r2Y{;&29wloFPX=@eW^hFR0Si6w?jInK3(Hq3q`yQLdQ_kb+8C7 -zi$+a+@UL)_^38Q32{2}i0V8+`kmFMQ@8go!!S3cKgd6-xsjf_3~bq{jO#Lf -zt4!7yLPH2RXynT>!K(>$!7C#`$R#JuC*Y)%rR;^l_u41==&v?q%n73+5{~l3hpJSK -zAq?O8X8$+Zr;Q|O6`&2yx7y@VWMLt*d$Dn;qZr!GT_I|)Lya2l-pXkY5`0{g{2n~5=vTcs=noU0L^1MNyz>Dp7K>GqS&W0F# -znrUrM&wg`y{jMz1S}vG~dqurWT}>r(g#}74GS@fkrMzi2!K!D|0W%gqM&MliL_53?=HrMSGr!Q9Ol-s}gY -zdE#s5UkF+#pbR2qN(kwn5_-Oxzqg3vfH@_9Zw}O8PY#P$y?p0?W6F7DTy9|3KnjaM -z&^!M9Ye29WVM`f`_Bl5EO^xzz9#A1te9pAh{#<>kOd5SxtX+VKOHA2cVtq;>j>%~L -z8N}cyn2I8RiRXH*Z`f?}opob^;EfKv5e(xFhVxv%@ofY>2k3d|4?4dUA%!o`xO3M26apn73k|8fh(jc>t5I@L9d%`%R} -zP8yvRpX?7}cdzHyuOv`VzB@!p#6ecjy^GJhejgYSIFyhse8Fg -zbAzg&N32)oq1nG`=!*Tiy&&s7GjR0-;MAPIc-_K^a$o|rEQ_7ZnJc9r>R$~n1t$K2 -z){*R8fy`$w%<6UgTnX}gzNmXRgS8b6$}&ZjK_}@uUs-dw@Kpc;=(r_zXv$7b;Dtc= -zpya`l!4~l}2DjJtycu09q&XA-A`EOZLd*q_o9GrARwFeA8;2R~JO6aPcTL7`1RSVG -zaNgLuMRE>9pn=dFMyJtm-&9{Yi6IIRxhvfb$CAwG%>^Wzji{q>oMgbF0%kvp_LN0# -z8%21_yBIJ2e7RTD6tdp50(;68qHi=(qJ`O}L6b?sZ}skXI~nrVNcm0i|FK-&OThf) -zxiKi1JCiP~@{i+_%oC8fd9| -z#Qk3RcxB2(e})w7@k;jHI+WtWz1xm@Nvq{uJk!AnhLB9qk=c*Xy@{(3qh`8DR)^n3 -zlq>ZIF$q1ejsOnCFcBs?6^@n%^8|xpw?=0BSzQ~A>%1bI(51~|=~%)cAyJ5Qs?Y=U -z3WG53Pu=vi*LQZ#BRQt5W*n9!GkPD%q8Gs2697i>6Ov@zsvL{%8M=-y7tdGaAlqo` -ziR~MHS8YubA(?w?viCr-^pk4*l#6-0xo?KP=O>6PDUWj34h|8A -zhtVjf!6?x`Jp@imB^{!bupFB0JM$)g7DCsXsKHgU>YCfwh8F2bdqFZ$-T8IYtDJja -zmH>dQoKD5K(!91I$T^T?Cc;duMrCyE&|x}I6-r>mI|r*VuKMUlGb3@TCD3wfo{`Me -z5y_>Aw%YGvfJ=P<&w%w($dFU|yUVZ>HXZCQByAbnWEp4kc{yJRW4()3FeJa_gQ=*@ -zh&Ph=QaE$N`LC93zpeE@G9-MOYozjyKc`WgpIV&y0 -zuG_%mM0V6BN(EmJ*fS*YwngZg5+DW?cJ`{s2_3!>hs6BXi2Q#hqhTihc`LtDcj-D@ -zCJz-k0yv|7v!ZCO{Xsx|^~oaz%F6zjin5(hJhc9Fe0}eI-s3*dS-C#DV*XE&1wrue -zkB;B6m=eZjEp{aF*BRWP@RBpqYSF4pJl+41Ow`_yNPX_6Hqh3*Q6>GmQ;BQGk(RQW -z3I+W+a=2u-SsWi+J{9=SW~{A#-0epNSDSD7kXe79LU@02sZR@{kXIM-U%W>Q!3G4j -zAh(QM*D|x{L5-Gnf@v#rS@X_nRpE|@kcZq`@gSPw2v-Ms+zO%lG$k9hg*~MjIE|dU -z-&lKHp6^y&3LYpd)H8;T{)9JmzY+w>vjN}UIHGm5$f7A)d(rt$d7#I46Kz|YX^l7C -z3{oU*n=}~H^M+$i@J!OMbGW+U9Ff0?7^7{ZO4bw#H>0!vl7nrKqkhTPg~p|7&--@r -zVU&upN(f?e0d|5~9Q~V5!CaYM8yHcSK7yZ?;g!v+p#-P^_yi52;37%?q_iD|ewQJ_ -z;bH2vhfY#eT^%0ND}?R4n>dYf2vxVfEqQ=BPJJsnPm7b0x#IG!-=)%mE`|9;OxF9+$Kgp|t*B14ZO`eZf2j_ujrqwR -zOWd62vZVIuuf;C)Z?EtX<1KaU?T}hM3la4o`3Hx=!Z)M8SMVkEZ~ahMc6=1TK@4Ep -zejWtH`fKm~{w=0GZ8kuEbBa6C>Loq+3)irfxB<8_@RKxH!;KfnpS2nUjb240;8azR -zAT85kLCfv=#Mu*NrB7naee7?K0oe@n3dO`+UfN#2yMI&^@w}7S5AbhcU;a=maeafO -zqU_zlHS+U!(!Z)n5N2x`iV++-gSNBn -z^~e$l^{}V_F`sr4zxWo4U9jfT$}o})t%7%r7&x%hD0poHLwOi3AtZ}#)oAU -zPUXkA`1Wd#6pDxbrh@2)FXdp+9+2>z3-SiZmss@yO97mNxqo24Pm1eGhp)qHa2X_i -zJc5-meDbGyzaAXQ^icrPIu0mA`Ds({-Vhq9H&dV?y3P`}a~3Ur0mxbamEwTS!^!VT -z!(2Z);pB3W=}pntdV!?y{yqpyAOu)_uh|VhxRFIZI;1@BQ^M!?-qQzXZ0*pXvY(;A -zz|Hh2&$YuX2PQN;K>R-zA0#9waU$X$@}B39Kkup-uUR -ziW&C}(8YhpXpY(@>$IC-bVZiA)_&5zV -z*#P6p9Dn6M(S;2H-a5`Z)IXEM`*)hRb7z^E{u$5tl+M5;0aXVbzPaus`?w>=6O5<1 -zyebBP&_L_(#cWEp5a~N+mgiT&tyQu%;dyU!XA0|h2M$;wQ&H1LfZ -zA(`pz)$Ekc02PNORoc(r#Kz_-}oqb0OBIWQ*M(pSkTq|~2-y`s -zrZ#=ma<46$%1Oq3C)dS0(w%z!Vx)x%j|*1^EOHsbrC*H5uw)7MCV#yljvi;mrS5l_ -zxrMh3{Wj$dPbm8XEaupMa)39^Yra@^q*~l5x36)Iv{7>=YCJ*u{k;ZPJFH2HtC2lt -ziKbH5a2&s1PWxM84QVRk_rqKY_g|0bAO7@yFHd%6U)QQgmX2y0Fu3~@)Mllrl*(hB -zDKz1IqlkKJT-s6nLdCO)dao3(=JBTXBh-2FhlfBCOMaY-Xyu%_v=mf{Vm|8&m=h>ma%4ROW57Pq+7lfA9b` -z(bTWqdxpwr8C16t0D#w9Lep)*b(<$}Ds1nGA3)%W&y3VPZ4Q91vEgRSO74e<^Ju$j -zoGfprt6I9FN3DH9>^rO`uUA~`imF>Y3vuTF0A@I~?c?WKN|EC0lyl$A -z1kXJ^oBVN@M?Z79z0Vr>BWacS!_^U*N}T*k>L>;9PFF_{4pWQi9Q_P`6LTBjTbfMx -z#sTCVs9`qKX(x}pa=!?i{MIYY7DOyKJd4O#->b)VWa7l^pVTqBFCt3*bC#6hEjPr$ -z?c)tKI1G9$@*XGYQBlu4+ZQ^^TG(wcbklDk`P*KUrt~irRv(kV3!4}6^}rRaV@Pjn -z$>h6ph2+mT1*2=3vyGEvexe^%R$!8S1RQMW2RgzXDyYPqLyafrvH@ozZzU}8^bnEN$p_4jJwH6uXk6o)q;F|7s%LAJD>V#cWJ~-tH!Wui^nS3xX#ZJ%@fA(Rf=0Be@)6iqmfIW4V6iUMp8 -z6I#MF@Qjf42C(ceKbBZT6LT@|eImk@f6c4CBARE*BSd@y{%JCn>BwPYa7Vw -zh-MFItv8#zKxMQ2uuPGYs9NSk|+pub_ -z^M19^d+tb+1qs)7#J|3b++?PlI?r>^H$f!ozWUF5s33!vx_p1KTF7|!C6s=l^YQ&OOPN_%g|4?*w|MQ`8BrGHb0kO-qfKNvsM*Szez9S;{uoD>0LV -zYZjq0R2Gr>oe -zzdK0}r2|7XSZ**}M|iM~(JgbxIxb`gnY#sltSw8}etF;zG4we}-$mVLE{X|?*Ivt- -zNxZ@7Q-R%E`0MW5=j}c3U8gnTLNN^T`>3_*6kbwno6XEe4{#aRY&i|YUA0?9GT=D9 -zKRo^jNYa&!;6$lGr*N*{H#mtkpU+DuFa{nFfJ18(%l-GR$S}Xc*XX~=W6yIOvsJX2 -z6ZoK;f!>5aAnRL6Bp`PVY?VH2r_ovGaQddosPZ~}%xgi)I%NLF6qs?@U|-J>8I^9#AlJ^6+cFeHP6;k5B1A-@Muxh{Wy^cK-4fXtoIK3xpMt -z4#eGdl=eE`q8736-~QYAK{X5O3q=cd*n`Urz2J)n!ilCK+pQDTjs4a>ve`|`fX9xb -z4WgAK>X~_y3WfyNeS+uInR|=OI6>e%xz2MDdR=Rc{)%KHtPHX0*U^)OmL48JH -zV3?{he}7)~1=kN>ZT?5dw`XqEC{7k?P(NM90?8{VYam*q+zKt5J@S?qZCL*}eSG#? -zhTzzF_spYnA#Mu(oBnROKb%V#WfH~P;7}A;LXv4S&$BP26``L`c8Iha_RX7H=kUBv -zAm9BYM;jRrc+>t}+<^@(-Jy@$nzX5HRL9`uS8FAj&KBqT~aoSZ1>A9r=4%6)2$!D -zm=O>a8#;AFrWc4g6ux-(#hN8^XOY;M(b%{F*C@X^>g2PN2s88g2qduF>6mLMlU!uE -zck|#BswCS~%4j^RKFTF(n%i(90-g<^M4;}bnS=Zp9{tzO&pg1e!4qNwz -z)TIHN^_N)|p2P*ymq6AHDnndjip(U$#8$9Z!HLxURoqc>j70kF3`=%V@PD5CIbdB@ -zqyV)z%23QSQt6+7ICmRWN#z{;7Y2QXCH%7YMH1>_s)zIwP9%aO+tT9AN9(T2}%!CahYI -zZ5*C;CPPxqyrC=e}kOl_0E|o8aEFt -zvFriK{H3<0=l^QKa9-|kUp7#sIqtDPeFEMlW&l9OlqlYfy0cAjpRdl5m$pcUy}uWYpn1DVMN -z?@m=AiAAV5^{71LIJxdXV%s -z6J<;NMJ_Qu$c7L$mCzrwkv(Qf3`76m3m-BE{#5NZBlU~bm>=+jpf}p^hcEk#bu#+2>QJg#b~Ee&+hp0OlV?^9U7{rNGvB|8 -zGIFlnzgKa$NR5liFb~e$43pk%Jc+;nz+A7}39>dybjx1s8_o#N1foMke8ssXz7=`@ -z^bCL_z0K{hSp%&(tKbo@wC^?SCm*8P^ZsK=+lta)?TG8@m -zy|Mh;$_I%^BW?*Qq1QrNAW7)WZJTxT5)PW4#a6Dm(l`_j>rlTykf3Z*d52w{1KHQS -zl1+n-C=%*?;z%pw_(J=KFe1dVEQNfE!SjrNK92F=oNl%(mzXndyGxAr<4T&-rWLm-bNDf-uhoGf6^NU1E -z0Ix7!^{MxJrJlyU@EV7N_tx>lkg%KBDwm0nM{Si=1M#{R<2OTE3RiR$-4`MnO#y=@ -zaQhA-&D!eWJpK1KPD-M4%FE!D7OdUJm)&VduhJGb)b|#!>)H6`M -z0~{J`F@H(&eRW{b8Gb0y@f!!aJki6!#tZ)*Bwh``u#Z1`ru%fTuE{E0mP{^FtZ5>hsXC*Q?(8@n4MAL^K)(X6B{|1Em~(Nd=2lkSic%Io -zi@0_bSmU*Q-{b!R6o;|Wfdxw~`tVAcQ##5cO|dvYzbkUzUq6bNld?d+T~IT$_^8%P -zZ2U9hx5i{;=`oNMc|-DE&d(arp!(PwjgT3%>E9lD7)?)kxLk8`Z|YHxye#r5?bI{d -z6EYniV%(enwI?oHk)89qsm3R=8(zEmkQVB0vF0$gW$m6^y60E=Pgvw4 -zmq$c`6|r3JLm+#GbZlqM$>Kjb$}XNFiU$Bo6@&V9Lp*iX8)GfM6I(G{#k*`joN7gl -z(in@pz|8h`J-GWZ_d+{N@yigkpFik;w|qFG;^R8ROWuxWaJ!h -z%?MyGHoh$;Wp#~d)cK@jW*+hrDZV4Kd#f0US?ek2l%a-<_dP0kuWwlF2b=f5G_~-O -zyty>3=yie>uYi0zot6ph;aHWyVSjj}EWIFvJOIpbM&G}iz%YdKMsfXRc%YHNm~dzY -zGh@Skt63o1OGs$c{%U*f05Pj1sEtP2Bit9AX{zBw^yXsn=RKrS0@!_>&82A>u;(|L -z*~?hChq_FzK;I}aCI`sTZ|gUB;uBDzw-ImEx6VcMvhlUfha(2N^JMWOLk%j_{}s$) -zus#lvz_KHC-w^!zrC{YHP@(D6qt`BA&m&m*1s%FblhXaPzO))nWqT84nM-~#1Egow -z(83F25dqv~73a=eNyE>#2_tdXCZ#PPepUav_x%uA3D`v&^i8Mr-qhFYQY4aFTg+0f -zWV@s^JQX`Y$7F~Z+ei&@#>mK;`ku?)tmg5(DPxYB6OT3W7CkTb_gJ?+X$P!by@f{= -z;{qGRCDG4`MdnRr3lLnFvyY_j$AgvD^8Z+{8B(Ckz$_CB -zs%ZZysGUatFhuWOo($msABixjdOk4lkN4crl+k%89HZZuQLi4rj^GxLX9zrDu(bU1 -z^yMqYl+Y*RVl&5D$h#2=gs$*H>|7;RtE|M`Ee!>~QgN5YaQ;I=x^>E71lwTu{9wO* -zy>7xy{hE9_N5-4SXt{;GJju!a7fQ3hDMPa}<&Z(L=j|r6?VVmum{dXf(1xqPG-zMb -zA@=WmqeasY;7N^K{2L7SR=$07hdto_%74MOEh+~SChouwJhv1O*&cWOjbv-~(32Oq -z&IWjUwzmG#!cZR|Gdn$2r|I%*JpOzRY1EPZHz@BomMX|gW21Q4WtGy1`epNek-%{w -zJMEzpr!QyjU_3!n`XLBHv#aMy#E?8%?J7~zYv(XAUdL&$4`gnE)&vK8(5(_l=(Ce8 -zr6^oP4b)|w3@s-VL?Xbo9JtxE*Wa|S3xq>mJ5#~4-{_V+CD*&w9V(J}8asT}_N^z7 -z=7&HWm$(GNv}73HnZm -z7_p0(AIjwQ4ZeLERvm^#YCoL6q&Pd^?7LBfH-|2EFE#8wtdaSErN6BllR#> -zpU%^k)~Z*1nE|RF+o(s_9yOzzplS&l?x38ohj7N&1)}cZzSp}a;xU3nrUu(%&Zlwz -z3YV2&8mr9K#FV@mmf;JmV$xB*xVz=c``w6v`ncy=BbYFp_V8|VTf-xH#*v}ekA -zq~%Xf9FTJZIuc;3&ZwGV*xg*hXRLSNZv5k;v!aQPxUB>?7<&UonF$@R#T+=^+mCi9 -znpY79E)MKNIBFKAuY0Bo3PwtxV4v4z2BGK_-%k4ZU5y*_PnNJ*PTz4fIQe5(K@ -zNt-b?E+5^0!AA0c*>--fO1__-TW##{@()$mVYeUTmc{?uA_Q917di$1R}!nhW(^P? -z0QEW0<+0`4qxc!`UfO_v^Plhrg{(5ojM~xLgJy6L)S6@?y1d-;oeVpGHyL2CWw?ja -z1(yg4R0d^jCkP&@JQvslZYdzAX}>rA)`egu`=CTaezcTnr>4_GJ=*!7{jrpobXRv+ -z=fe2ZOBiUD?A2-+3P^tdc5FWNYp2DCScASnU~!&Yv6g%O$`Srw)F<1h^7XL*SHKAe -z-g*oqAxTxbP^U{9<*ORO$gxIKw^#`^w|`?VFUl27MIo1Jy=f(mQKX^y2~Sd31~pj7 -zcQ{Tzj;IPOx(!q9F9ZuB9S0Mn+Zvr$XKprqg&~IX#wPIlyR_0<+1(#mUTL|-gb~@v -z*Y6--ftFazLpUdnrOW7qDWhiI^i8l5t+{O0WxTpg`8X5=npg@PP0QEA(HEkmhr&?|1hN-U!97(sI31r6N{!*OtfjpOL -zN3AOMu;N4_bTp(CNO -zV&aMffvV0V85H{Q`oEo`FN?uxdJ0;jI62YaS8)X7YSHFa*>t+G50MQvRprfx{tr@0 -zoRD>)OQy-pcmpew?azF@S?SKo>jQLg=KOZR -zO#|D|l&?|w{cvY0o9b)j-p+tMIBBgQMz^)8F741!94_F#xzU3)4r?Y)HwFj;U#TOc -zA|?)RP&K{FxgLJHHNp>vJ}865_znFH4Afohskf=yJK?l7`wJN{(C>)P2d`k=M6WFI -znoL40LCMjwl`%T7fg(yl?UnwI%gv&CrUEj1!NN;&xF_kQW8|CfkR85-QmHoS0)3K& -zjU(Ec)c{$=QALv?9U@UeVhD}$LERHoE -z$cBqf7qUMlJ&~wyF9z;o`>Q%{@(S~Q*2;qP-KA;to{BoJzJ@g3w%1%ihDKZR!&#`N -zlDnV^?vNAZtjM%WKwE-AL4d;qT}gT53swBUf_I*U)t-P@01zk<-59l=)bZf0jLj4s -zSG~g5yWc`L!~9{%7?8dWD6T;4P$vT*r8h($e}FnQP_(MKx)u -zv^jAlgE|V#HYC!S3skQf#$Sl-k#u?GWV9{?)kK`=0d3P-le=-qonfRaR&B}rb>l92 -z>GH&|Ht`H%aIhEejs}~axWIjXV-;_1?QJ!hv9M*#?@J{+=&srr^;0g|m?+HX_!uQ3 -zh%g<+jhM2iP6H&zpFv$IQKsuhpFBpF-#V8is$F0J(gX$FGc+IWKBdU^(l)i4FI<*M -zfQf>U1|^oC*F&f0QT1)Jc*$^RavK|esfE`J-;A84VG!BO5W3F -zV0ch5ImZQE|3xinzlEz?HwPr2Pfh0chQ(C^Os7;4?gq-$UOE~e2zJ!VvK{qGUQ|PT -zRK@CyO%u_xN#6U$v_kfVG{eq7TRus5+r--Gog7I1Wcs>$SiC-*D6tFXa>d;Zks2yF -zkDB&%hI8X`YcrDJd+P>9;Ji@qCnFN+VVFxHET%$fWRj)?oi@lNel)j>TVMaNfu(B} -ziz|@hd|4h6nP~D13~$D^B&S3UFvmZi27dpOc1GZglk#C0n`rP|B8Cclc65C}LGdY| -zDgfjcZDStE$m7WTg3mN9@@uZpzUQE4yuMD7hu%ef+y1@XOqW?A;GjRsDwl^;RwV1o -zotxaXt5ibfP=6=Mds&&>j2FzQAm`8f+Hl345IL>356&Clr~n+4KCad%GsoR-Lr%_D -zG3o3HYq@tMQ2-GGh^R))tEpc8u(`40NCzr@9;R_VL){KnEhr9i!z43Fn~RP@L5!thQWO%N*Iu<;93 -zgwJ^1(MJ|elmuJ$G0_v5Kkk|7C>Qt6=YPToB-@5jR%q(^p@FtFAI?5Y0ZiCCDpiBv -z)4Aw-C`&;gS60J)HoSuwlws!79WIKFw9&10>bbhO=V8n5#Rnc}9z<5!OZ?U0SKnzw -zio3Q#yW6eF8kd>}O=YssjU=G>06dbTGDTR$?I-?36g_V2)-Mh5L<%cc4#SDT+t -zc7_DP>O9Kp5!6S_R##wIfPOGU4e>c;p@)i&9U(q~t}^cL5PEz?&A6CXs0{$(|{LXGl)+b`jvb7RSi3;(FAhimB8Uvg& -zmUZinoPSeyKgmrqc3N}d6+=7}7yL$i0teA8<<(u3*P+1~CZ7+=uxG!z1;40FiS$g| -z?EAxF#%TmqW{}@D%Nv@*`<%RM9BBN!L;pT3BZgIH9jcB{{{c=rw~sjf_>R}P&Nz+z -zqn2)Nx^Y@dj7q+rbRn|egSmF!gaGF6#RPuMlo0=P%dieaxj<=q5AcAT;n{E-b~zUjLS0OzY0Y_!KYDnNDt!l1>P{Xa;p^Cv{p -zX~F~M;RgYdwLl{0D4w=J0OU@lgLzWP3|>X -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 -zT&)4RJg1uu6<^ -zJBJ>a@+g0Rg+Nd;f_s5CQCYQH9|LTCCljVu?=S8Z;dGLcM~2IRVQE%stg -zF^W!_?Qdb}t54m#!?nXpXUjKkOBIn~;DL*!QB-v(@kNJbEQ?NC${7?(&#$7Y1ZUza -zv8PN||M1#{sXO6EW0fLlSb2or7t5W7q}k%=>?~y5VLNf!T&A>*y9N4i77AT8 -z$`NytPY^@qo!T@V$7L(w6ZGz@x#OWWH`x?YZGtH}W|Invrh;0s&VYB}cFxla?8aTd -zbGdI|y-r(I`24q(kymIRzpx7yPHJQG9aex1rd>!L=*e2D# -zJi1fvE7(?643ppK(Xu-AzE5;GfEQ6#NGF5?P-mMb#Rxr?ej5DJNF+5q1G&)xq%iJ7 -zv7N&d5CY?bOm$L;G^1%nPB>$5?Nw;xIX*kfAso~UfelHXW^Qm91+6Gk@$UM*QBj=k -zSLXm$@t0)^piW;z`BDONS@6{(LMJex@(%}gx_Z&`4upm`PctKa1O>aWqj;+BBO?0kPLI)cCG@U7(4<_ihcad}jR!aEt| -z@KjzbWEyZs4loYt9Q7#vh+L^|72g|+F -zwCv;63p)M69|9p<61JD)7P;zD59uf!RqZ$2I*ROxo6VC{#1&}}3`N6-DI0}}@UG}2 -zS{e3^oWU1?8#rZ1_zOWfKeN+_&>?VOFA2dA)XyE%0nNFiRKWd`Bu_!BSQ`Ndw?aB_ -zUtV#ktbI8OogR{BnNr9!A(D7t%`1_Qoeoz9`2|veyb7fPiy;ny=?P=MIceCD5SAZU -zvxyq{e;8#Um!4yN+FG)vxLe2q-u`=3C9VbFWCjl+hd={ -z%ix#NVVgYQ{B3Q1aKeNv8a~|I_QC383-{SW3hQSz9hZY#!{W -z)lpp_o&S^*DcoTR6mHf#22kM9PA-)@kT(N>EJAtL0(5f9puj>S;?{=%gM8!|@lx=> -z5D1jXb7Maf_WL*RXEOI2KAz0{Qwc`-~Wzb9mw=SxBH4 -z)u7O3UkGA?HW}wkz#?$9M01cYdYx#s{p(8BGxo~6GoL%1HP~PXT@aaR -zbkMwS6aUx2mUl)slEZ**ND8J;DPa((J(ptMYeN(Fq%RsIumV4mplWd3e -zCcvr>`S2)D0_*K#hvvzkXAv+6U}U2+cQR5-V#2C(GJ8Aj^;s51&uII;qA;ggX79O` -zdn627*w#1IbAXJq{P&rs<;Hs1rQzm-x}0^PJ_wQX0@znwIQ6V%bhSXOzFs+jibZ_@ -z^9Jxa#6;}qSL(ElB+VX1?FgKRY-YlhABF3Ep&(umY#Gan`EbWQFQuVLhz}Q~p;|cA -zYH&u!2Amu}Ec#dfx<2l~ppW29prF3p9x&7FSt01U;n=a%_n_+|x@smStP{g@|K?<$ -z^odsjP&Cdfo_6pkRK5+lHihT`7s>bJ)xKLH5+(azO#RJe<08gVt-`uLRt$DYrNVeI#!;a6VQ}6bXhGrj~7-rfd -zxc~0#K{k*>#}KXM5<`f`QmFka&)sBF)yLe-6L1p&Lsd&vg^>ugk`^nyc-TIMcDamb -zDY%~N9jLYGeY8ptJi*mCt1~a{CfudK)@!Z&e_W5x{P8AE1jL&6s{uxujode@KdZ-3P}+8S!}0|Jj<$2C+U6L^grnZ%pKH5i>;O~v)S -zL0cM)sjl|CXT*jiUAJ10AE0$=G!lk8J^N-|8EZ$wGY^l~40GNW=ui&^IrK%B`$UB( -z#7iSdOBUTnmYon-%t04n$Yd#VpLs&@{isPJDm9RsJ-AW-+5;Zz>OLuB*L`*BukDH6 -z?@gI40#a~^VTG@%gk4)a!H+*aUE_fB#TA@24DEJeK14<65wjI~Y;&g-POyY1@NQHK -zP(D45S#!+tC=)0PLJ?l~ez*v>8{OJIJvjp|7(hJU9JIcxrg1YPX?lE1$$Oe!GX!Mm -zfeYY;QTku_L%PTVXr%yhA)DMeppeiTp3`;|Pu4!EwDTV}bOb~rA{AzJTGSQ2@FtM1 -z_L%Q6e&Gb5V*vhhNwh9zG|V9qe>|*NWWXvk>w>W%LdgytzCj^j}8Bjg7M&|-gIZ}ZHIG?$9}fGbbe^`AoGBnwgrK1{wQ95 -zF_MoO*l?ru`$9MgCOfF9L}9HR%wz`uQramcbamG-;hjV=aAdQ59iB3-0QF6|Qj!kh -zD0g>_sSWMSHyzyj!OuIx5Rk>ETd6&|AIK9HV{uEZJK@`UhVzzmfM-s$|0q4K!nkP( -zy@#OhjvWtY!5JWdIG(I>5eobL5-3b*NG*3)BSH_7t69kuWSugueZUk3s{C~_=y4Qf -z&=lunxukSortt1>I>y*W1eDCCIhkf4vJgA0|H3BTET-zX1gN=+0jPtn)!3nZ6g(GR -z7#*U*0;Yn{;ks*^hO-M$-~O^|+>PL8yP0z|G^&>w7oPxsh2X&&V8J&#y{jgp#TI4y{XaeHa+?Mh{49F6qxj1 -zh(s`~z0PwRyXL_}U=!R|ZR^52P({W2KeMG^^7u#OzQ6Gv -zn9$PKR&M5H<=+@yaDEe{x}3{=^^K1#70O?z4c -zM^30k$`Guqh%#RAHCJ4k>tdVWcfb;7v3zes(8lAL0~1Fmh@^ -z3OX_rpp6gH+vQ7)KezkzILyo{>2Id_o51GC-C6KsiAapI*n}sk7F~8VG4T6<`{BlR -zRARoKojdqg@gdS)tsvE=2!Q-S67Q>hSc>twhml?+Qja{@f2i9|H*FvW(5mL2@Sm)# -z;y&U4l*;quOV`Z;pC>VUz$Xt#zfBpm8l!IZYt -z0?ZCzj!mPc#p_igBANyjl2p#6bZ=;$ot8MSFsc*IeOi(LQpzfk{*eTsalH6!l^f=c -zWk|Tt#TW~+tk-nfT&*UXhLaTg_ -zjS!|NeSL0*G>Y&Uob@KBJ8+&E{6fNLKRt7&`F+fxU;WdYb85>{*I&!kVvw09;C$;` -zINF`Dj@0cD^i8xF>n}&JDrN=2reUpFiqx{Uag=OvYXU&1LH{7%A|l#fKe$7`O7z}< -zsX=G?*?6zF&_;d|IZo)1#~(+eY&yg{%fO{Ybg1Ck&sqPXX1X@pw3h(xj|21hJN0g% -z1GY~~MRfIJ0JHPnYD|}EOuB_=2`&QOvS!uMFwBSEh?Mx^Q`iix423ra%V$Z&ehZ-+G(Iv% -zev14W_WDgjub@E6WW|;q*y@lD@ww|HIjL$R1lrVob4{46T4o5qoGRY>aOk -zMD`@3GlzPd-`s>)`6hy~+HCy-hfmaeod%p|pdeLTe@{O&%c-5QpC6ht91!>;P#8pw -zd|}Hk)qc>_#XF*$ayI!au)*~$g=+OhUV#Haa)PNR-@n0H?ZK{|B1jncaCH1{(1ZEH -zN6nV)fGVIg=Y~}6(Lfti*llQ8$0rY@t$;gvhv+@MaSY2T8uBV -zLKHdPGFZ#>^wNt%PpKkZTw5^j6om5HnXJ>~a-SZ%M?>P=DQEmJ0iS$XO7~Y=zgP5@ -zAGHb}15UabfLbbES6e%?do4o^M6v+uO1O;Wh*a3joJCboESmouu&2nu)0kDK5j~dS -zC%gikdWtF!Vu^UYzn$zz6I?eF3>ws%X-NeN?g8^2(U^$lt(&nr%uh77>d^HE1S9(M -zLc))B>u=uy2^R8Lv^f1u1qazIuIGlK_SJ*HvEg9*FCk8EfG>e$>!1tX9V|!>bnMhD -zpcyvQ!X!fQDlw#7=;Q}NcK-`0+oO;Bco9n)=**se9~F(#?f$= -zYpNH!36j;f6vwKTQ0Cz991xt~4sj|#4Ng<#njWomSA6-9EdHV&66e;--zS>=8LQ_v -zYQ{G1(ycr`T#?~wKhnqSt^a&9GEkI~e>R$vma7t6|E{>5KiKdQhdTW$<9HbLec2Kx -z!WK~$C=6Yndk+hpRWOD!#$J9rL(!WVo$+FW;Pr|*qPuf&Uf4u4&H;>%x4j?@xJ#?v -zGx^lQ{gYwGz4l~xgOi|bj-wmu3T54{g@h9H6^aXGjHWXCUL}x$}d&iML%jqjT9bBhMv9I3X)EeR}XIsab -zyn2*}m;^4S9zDr(9wmnHEJ`OVls*gJoUbG2oIWtVRNm+634;Y(`W+3XVux!MOS{}? -zFU5IerzVl{9y;odjs2@^tzsZ9px>m#>MO$;igb#|;oaf{<<(e$mPfq70<^pG=Nf(| -za`!SGtoXDom-c~-LB{)=)x@sH`BpYup~kG=zr?3}P9aD=jM!^>;eu_d?!CJ-4XTe$ -z82gF_c3)`cOmB}qx@)6TIT+Botveh71y$H!gRy=ysm8Y+0v-bKQa^q8vc)6Tz)`)Wfo -zgu09_d~o39&)cpp^{ms@uN7b~BDA*99(R5C1j*J{=dC%iNPRcb8BDDE{Icy3KH!l@ -z$`eB>up$U}@efhnOlYA`pZ(v&&% -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 -zTNouA-dh-Ln_DlPCx9KTG -zJc>VZTP*lb2C~gdiXsyoQ}j|1}8xIcMEqA(r8jhj9*RR0EMdU(*d& -zy$V^?hbDdZ24#W-IboZ$;@!G}nV%qg@Q?gz#hkxsO4FjWiD(JiN=2>E!5UVbN77eI -z+&Bdxg9QQztN>w`t`tTd^@XBx%ss~VzGPM%vlG2;wn6>b1P4^eB#b9`JFMvP4A#xZ -zGP?C_|2yHb4B#~*cUEEiW%au%e~@x;0jS>xLLt}^am<_?S}=#5@a?Lf@F-EKL&eQQ -zi^H;=b7Qx>i@{el03T -zr*rX3kwYsN)5y=aK-l#7IZ(%DP-zn{(8}1vvfb>Dkts(q!pGWK3ezkDsK5K;55Llu -zX|fTd*NOP@p>%qsdcD6_SDzq=8Doj466;{^g1yS%5D=nF5AScl42YocbU&P95Xy57 -zt4PIe2D#B;<6z(WdiA&_WO+PkQPQN|Q2qSTn<_<@m<`jBuJaLpy`11g0vn11p0B?k -z4qb9eIPxiT@ozIK&8qzPr>O&%cEN0N*EM&9Iqh7=Q{{bs704ovrY+RqyJlkKt0kR{ -zAA?7_!9o -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 -zxZKuLf)ZHa_4e*404&%=2@ZcM- -zL$mVBupVWOO4Xr#C@D^dRO<0j2QM%?0KKx)7sFZ8lu`9v41zpP=sXfy?`XdL$repp -zAma99b*ag+^G9%GUyRmR$7bFNZ8wS&Af7l~{SJe;Ug?7k*3sw*$mL{0TfTRPBklkG -z5AZ5ukX)73m`vazxBnt{hr8r9KWtwk0*^mPn{J1;D14;|Rw^wf$iv;V`Ymfz&_BeB -z1#XBUo0Np(1Kp&fFujD9yZ@+TG$WQXTGemb2lGSvaTi{+FL^+YU!_5zJjD*d*X;!R -zt8m%FhDr6qKlfem?`N#ZbEClb&r);6cXwf1%fvgJyQU0$W*4z50)S$IFU4JUGU7>T -zFJ{FDCXGS+@+`b9W}Kp_Ru7Ap<&-S`X>Z-4#*sF3aSshZR? -zUmzR3EF$1Sa#Ev+RNY~NtsX#MCe!+rAh-7pbL9!UuIje7Hcc^ffK?(bxGI;4#8-rM)2v -zv)C>-nNP0Ds@0TxcUbOs-RMg2ULTM&Pp2nAVv5Ru7O*Kq2ZC!xn05+3g>PFho=th* -zi8b#1+l+D#AviOOS1EhB;sY^b(urLhCAzC6k1@4YbMd;}{epOM)SLct}T+!$T -zjDijyzM10^nX8}c;=t3NA-TYUEroIs$A|3jqU^#JQtC0T&V -zRbWBLGmN?pa}RDOdz<;Zr270WKibTFw4*JX1KKraAj -z(oE;qGje31Z2DN$H)reKU~Ec&_qjfY+iIVjEoz~*?r|o1^y%fp$g~vr(QqEgpc6JR -zjuD7LjVFMa5chFAsE{Q?eh^h&*8DHyrYkw -zz;&}HHa(ku)Y*(iSMHXBTTCNf?Iw}!y{Ic^nBbRy5MTdh`ZNlQaM3?zE=3iZ7K}bP -zRS-MSmsP)G?l-g*Xf0atjZmRy_}hM~kt4Mw!?#g3gMBPhN;Q6^B16Eq=lRIED*q;^ -zS!90h$!g7sjc=?dTqAx9euMj6xZ7@gr!_-)_2K|#p(}?^iUapgCT`*UdBsOa8g4WX -z-bh$}fvC7psR)tIjC4G_1W(N$c -z3o4h~Ecx>^az3rLRQq=7!{P53@O3T=!k|{9o_k?JArVwsfKMu->XdAo9bQ%J)>>=| -znGq>z+L@-}zbYs@=*o5jdYIWeW)JR{Vvuc-{Xt;A@wFAkID-05k=%|7MlxX4fD5xl -z-n0lVmas2+P3hG`khb>2lrfJtVzRDiW(FhbG>T$*;Jn;?G`I`yq2@IUUBLyc=rP+K -zgn>hvB5n#gt}^&){hGM#IfQYW;e=W)amss`P)tBIHV2bV1#wgd*^X7Z-T-H)OmMGkMpn3&JS -z`8vP=fp5kP5wmpZac3wiz)tTV-ani>b})Oz5q>$g19JdX<4Pv&{paTYbgI -z`ji*!fjUuA{O!mZRo11U)a1>b;pQ;PIJf|ax8DGG(HXNW9lEYzLn_)#t2OSb-=))u -z)Q^`t&o<{=tklQ|B`RjL;9dnFVydZ+(Z@78FqTpRFYNan#k=!n|Jr|O)rU47NxQr! -z_=sY>mHHnes%XIHO5IwfF5 -z07_-B+v8)K-NM^(x2CC+<#6}B**mQ_a(gvCCf(Xsnf9eE|Elqn -zsY)T3iBGb=%cr!@gzZ1lf9o}PUL~1Ip}Qp_WgJZGS09$1G|FC)pE#P)(2n3 -zjf;cQi(33y01#VjXa -zy3Wb@m9L9xHn6MMnd_T6h}J#pG!~%ke%ksQ`wY6V@Z&O|%+_9Euq5>9ElN^pJQqo~ -zXZ0;A4cE~O;fVL^Jym@EmsxG0J#slr9qn%eF#qU?N->udTIy=g!3SlcCPsf$Bmhtm -zrPRg(u07HnY$Ul#e9>2vN!K^15*#qJfUFNM(>IsQLSHXbdO_{{ -z(_SK4Mt=~pddn<=MU3p2&09XFqA)uEd*pyZ#)wErzsn|q54CLd_R9m@X{M;xwuOSW -zQo<$t=$t~tD7leg*H0pUuF@VK@wiyV7%8MpJ`YOAp@{7_5t -z&Q8gQF>FDu7!Dr%l3vE>O4`v^_IGJRMxAda^+$Wo^3 -zN?_jARJbTzGbty*J#X5Z$;~LA(dE2sQ-wSvL^M4@?K5vP#=8+3ImP>DEfG)AI+lpC -z-(g_lus5GIZ(D$4!Y9O_rHThU|HbUa9`?`Lh&OiQErKp|hFd8nt5G?$&Vin4hgT~_ -zK}LV~FY0g2A(3$l9kZj3b2ohuq0cUXDutEjB|CjUIxcy1*yv;t^T~Kk~D}bh98|Bl${igrt2Dn1P -zVLE2KZNkO;=?;WcEKJ88dIXyI?rjRFzPYDyMmK#QTsPT=NvdVfLc~UG3?5%;Wy^Dw0i0^gcvM=7m0Jc -zM^IrvPorSOk}WH#`077>ED0Ww+o88F)S#=ph0bMnMaeB4E}jz32iqbl=k@NYGAOzU -z+%oGHi$%DR+WM?V-Pfs~pD%}HYoG70zl5z3Yd)CmS!{l0%Y_t{pSDe6=20+v9XfuE -zi*KGUbqV~uLcfOqiITomZ?BJj7rO#)j;)p4^R0@!U2XYs1j~ug|7HqujRpn66QR;g -zuAC&Yx(D=+uX_chi~g9kZp*k$;GZ0R{DKJaJq?zUN8ri7;s4>3zK}`mmEL);GcOA1 -zI5y&2mncjuBW}D4x*lJX(KFR|wNG9Jkn{7#HD0suLmefQtqd*vRJ6Z0mD-EX!$7SE -z1$d7@G7InqV@AuaEb4sVNpxuECLrnUFjg{? -z(^9!7B#DN7UPBZd^gtEwvN%8_h4A*GXI309U3U560KIFge;;&dg-{b)-+rV@Q -z)lht(v%7CfBCjL(vx62?ye3-P|GJaK*gaoe6a0xQbydtxC1`Yv%e9;G8g+JTjQO}I -zz7mU@Z)9_jg4s!27X7j<^LvCXKT!smY>9&BrRYlHrjQk!^bAuKa4aI0UrP-YaKyW^ -z8)!h8X%LeA+OLD@{U(+O)vIc)_EB!F`;mMOqGFG}IJh5?jM!Z= -zYHpelZQzja%novJjFV%izNJ|FqGBySVWC4uMn%sALdd`Q?fr0;SLEIfplNc3M;hoaQgl1}u4 -z9UKw~b)c>?Z>%?&uFH2ScI4yuSD|ZNUl06=jES4w&F;k6!Y -z8}4gKmfoFLcnFa`!PyX3KUy!o%ZpWd8mXpB#|B-t1_tw*!|~)>4!Bj3<88m<7O0qi -zh$R2fbd>>7wM|r{r9(ocrBk{~U@2*kMg*ipx>FinU;z;XkrWAOkPhisy1SM}nx*5r -z?DGBIyZ1i*%$##(rYj`bw!XinDz}1vL9Mf=d1V+OLK&b8xDEl~J%a3PLzzn`Gl;AG -z^40S+7S_k!Y2K94Ar?D$D##@Ws-W+nrozB3$Q}EYTBIoqwN` -zaj{>?9n$#=7sq1f2v=J=A?NC}0X2}|K>L2oh7Lw)y=snRg*QS9Bzpblds)CG6A#Xl -zE+Of2=Rl^9WbcP4(NpxiS}tvq#}*#``I?5`LKu)(zUc9J&kIJQ`XzA?;lF6q-v$|@ -zuxv1guP7iy4;^{c;oo|;oB09M!Cyw$QC#o3^%U)zr|+NRfq|vK(9^9205E&=0>AsI -zuvRqBpkan%A(T#&0>9U4z{ly|)8A^}awzbbn>l=3tXpLU(~1yeOz=>~vqS>3NKI*z -zgRr^sU|om>HIpz3MUB=AYhoi4#1W(&Inp~aJq -z1HQS2^H%CVwIZF$KSZelj@5lndxx?+CO|0kBmW^LcmegMc^8-?K)J=4q`;C9piXY7 -zFVy2jcVi;SqZ8ovC|ZTAROV$)F@)HJ1FrDG_y=~$GBa%)fVmh7Y=5jkb4o~vS~$33k6Eut%*VDCR6Cl& -z_^MXm+1+0865<)l{@j%_9LCXM1y(El-IGI5Mf`2+kE -z;F&svl_e8ftdgvZ4~7dy)6Lo)BFlNim4H9r1$t5#-e8#;EwH$qtc}ChT1G|}v(W;^ -zj7j_(D7}@jWF%*{kaR?XrW^sWC9j5B>hMJkN^~YCqQh5FN5tH#zVkb+M^4rZjPxa< -zd2B%#nm-14mHU*90&($q8xYqFE!Sh*aK~1K_X&y1N90?x;a)%N=G**vB1R5~mtXc@ -zJl=IgcX%w<*!2DOx#s2*_zf%l_XB41gp&aqI8;5ePaKQqv{d`Uzi@`Ya8b=?HX`cx -zmp5?AH4~hCvWJB$hZvHeIrY>^^K(rO@*u)~{Rp*0WAqtVUR`IJ)6llAjj*OHTqOfU -z3GlaqaEBec_2X>f=iC?=%XETHUtHqd8;1~dmAzZ#N7g``aAjwq=_p7z^v_T3?d`(VQQ_; -zwA3R-|Biw(y;P&OFX%PO;Re|G-0{-GYEbyn5BXFEp+bOWkQO!OvT2m -z?&BTVQi%R -zWs<8L9>lvhR0BY7fmoo!E~y1_^7LJu3Q^N)9PImZUS3=$JJ)H~5n-GMU)2r4q8 -zT`lEV@R}Yz{V^7ToJR{J@$I_74P>KB+=)7EjRA6`-~B~8Jlx(N7Hv@e=qU-oBHk$0 -z-rPSye4YcZQmGL~R@>AZJTD=z$f#-i0>L=B=KvCdIZPkm~pdXv7$+dX(b_LX|31Ds)i_q%YZ_uSkDTGnz86*7J&%46rIg&<^unD^^|f>yYXco99>FXO8nc*1U&BIL%iU9 -z2}6QS^>@D;9W=(7nO0HbPbZozg#TpxQZdkFP?ekX(jR1#J^e$D2mOk6eX``Pd1Y+7Tn?{p5~mP(%8uMDgG$Yx2f9^41{m#1DYrD!6t?68ef> -zJnTUtyn=L~mE{@q+Xro^fvySbh8T)?jb6^{q_=ZxM=vGb`CwDwF|U4R4NSH(Eg)_x -zh6`7bXRYsFf;2JPT(}kVK=h}3k$}~W;XJ#=VJKc5}|VM+Q4jV -zUD1)g&9_4yCwDDKE!%-bK$Tj3QNju-w1kNLR2urApXO3)r}F9f^#}(e(&A{GTWomr -zkg*kHHMa;8{(2h%6<)mG{J>GC3PTCuL@j&+T80K}*F%3@##yYFD390f@Rw3P1K%Q} -zqa>~KSS*W+34d46@A_6SDAO9gd~+XH1r4y`+E?LM6N_*b&}mh`*Tg-q`7h&)&_4z^ -z=k5uoZ-i-Qq3a4Gb#0cRHZS|GBpz)by4t{3_shHV6}LNM_$ro&I#SZRwe+Y>776g=bDuhAS1j8oRG)ds^aB>OAY=$rllLj?d^Jsbz8rAZ`R$HciP -zs6js|ug?tp0cdbF;BV181&rJY_ObxNTF{H`uHskit_R*%rMyO+>P+8Q$qD5=T#Vv0 -z;nO_IeeofACj7t5eijvW>npx`pTt*m@H@p(a?Xe8>r^UoGRw4QXv^SG_N0`o-EB;Z -zodwBTwm5F?yQbA-6}Sxq<~_ID*)PQS{?XAq|G+Wo%wy290J1qSay0i~=`p_gN=G^V -z;%J2fI*u1#lDqC(r!TRMh;60nz-x-j64w=f*%8h_d(BR}Y1Z4tsS%Y6U!|ZF4_(I{ -zp2xKUP*2>uc_=|z)$Q%5pYwyIY46*pvq5RQ+PQp-uH2x9#`waae$>pq6{vp#K1}7>-fw!}{~UPe2rDkPHVk`xfTwF%p_{tK5b-ko_OXnSWbIsc9ydl)>^7*+-NsmCX*)#BLca2qJF&Y5a&*1ipB|Sc@J+9l?I=p4pVq -zQ}#w@CzQ-Rz`p^pOpshYJL8V)-o6@x3dwg+EVhr;S&6*q=l##|h_*UFSESnljcFvi -zk_k$=xJavRsC<3_KLL4>u=3cU6i$$TP -zj4&J%EQ%#*Zt%zMXd9hU92O3Q6%U|C5qCpUl~6ikVyFfU;IfPtm`k03fpMjL~kO!c7OIsQJU_&^bf~GHvfWx -zb4{t{tG^Qv4omnn1eP(Hp0thnbkcS>2-4&2&(<~?-DLVB^8H;CJOlR!S1p~<@lq~@ -z*jT3Ql_x#!-$UfD@W2+a{SU+IZB-I+_U}J>(mLc=J1#PALX9LO=5T?O^pWd}YyIE6 -zDj%X5e3A@Y2nf39O21lvv?yisL`8q+!R}d)okTMBk7sxSt7rptX29&@>#yoY)Y(Fs -zH8p=8dt%o=2PbhgeuPpY)&o)RENk`3GK~ -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 -zxYGf1z?&eBW{0ZJz`xMlr8I8sbN+RG00 -zTv@-v%{wFQB!Y{d>3}VnjIZ^d{<)zS?gKmcJT_uQT!< -zjlWg|J*goTkkFib8)A~SaJX4+3+M;Gl*6jSxQd=#s#3ogBvlHmWmdWtGT$V&Z!WcsqZTQGq2{ -zBK{`tqpgM|P{et$4kE-P)ySNJemLRfy&0(t20u*}MS(pPd&RnP$a{lN)em?=!ge>y -zA-6tqpgHdK*3QNsvxhg_Yk(hnt~?Vwpv=#!trh1)Y_Gz-q&Iy@80i7*)v>^oW99hw -z1^71Yjg*JRmX9{%=aDJ+q|f7KBXJTJzcBv&R>8RmP+=;#4da^9Ul-`gVpEC+wUWlq -z*a&Xb9ye9OI8D0%)nQShLKdKKRa>T0GU<9eX|P`)AuU`^kU4C+WF3;(8iV`#fwCu# -zEew3Q_DCb-ld1#fMjX@6ka3UXNXQ5&97qU$?c3q-9z_t-ZvYybdo=Gb?Ui8B_l=c6 -zJ?>S75I(05W%WymwfL0>+@YPq?WFkAju^dH#Mi1N87$oN_1a6=iOzrDRl}N_fx`k= -zht%0536?J6zcDEkk_iiXd##9S*hhDHaQ=S@%nfJLtYOQYTgT@TcGEBAMj3n`Y#$5H -z$Q>Kl1WIk)E0HtZDrGuINuXw>H?)^=4#~JC9eu3k%1$5iP&~#j5jLzt3^cpy<>Yp| -zg`%KaTQ_8t6UNJ-rrN~T)e^~e64Fz?u=rq%v@E-T8CLDdg#gd!>7sCAZ7NfEorKc` -z$0p)Ht`2mXh(dnh@Xdp^If~IwfcmND^qleM3HYzA3ec|!L=N>Dj(a3>&X4I-R?`dE -z(EdGbUE=3htyN)SbGT^@gh&6Puu_|2z5YS^`n|AT!)mhOMPpT;D2m`BmC}P2z*j2C -zp1W7dHKZep{dxd4%lhO4 -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 -z4&eDhMeLFzAHnc*WDD1p`Z34 -zm3Tn5)whW~|2e_L4CHgssP{5tF7gw86lp9(KIf~@swaJh2RD}d%Cf;rxU>zg8%`ZX -zMqfq`&=&_Ou4LY$1HfMJd41kDN$7SEfz>V|bx`Wi(mjq^<%;y^D^*l&`S#D8hq#c0 -zx6RP;QH7c66^3%8R1QCY8qo_Sb6_ZG*shuEQL=-sI&YZ-`{0y%K&edB}gyE#(NZ&#au -zo0m)E{(&4r@u0o+vEgs$rITN3#E#AU_Bilvy|8@tp8vd|^qrM8ptyZ4;e)PkQkUzI -za@@UNWiw-?>|N0^30LZ5{Z5G9kz#Wk -zTRwdAK0$D@stemiut38efYl49A2z$TX`LQw5ct&}gr{>J6IXFCk;B19AD67#sSb?@ -zjn@U*ZAGO%J9O8G#r8hKn`7L4WisxtCJME06HQ%K#@|G^0Tw*G6n -z-9AH~oIl|iZ+S8WybATGvD*8HUxEI```!VA|z -z)!5(kyvE#(Xb{*kQJbcPFje2)>iX$_5>w2+?BE3SFo4D8BxkFaCJEIA2i5#I-wK6h -z{LWh8PC&8}g+TthkAm++YLTR*5!+XukhSX>&#_2deM_knT1jqM>5UKpp3A{H&dHL~ -zgSXM=1yVZ%Gc%p$pDp4&e&1HrA)QSxqc#ew%q<2$8(_Thcn0M{x)^<`_YKxwwtn$p -zJS$T9617^45;P$)K8eVifiDNDs-%m;T9jwQVc|G)@!h+jtqH({&k&b1A#y!R<`G@@#7>lIl~9f -z(2>VWyhcnw+>`~~@-^KfvB17KdL*p*wL$;H|MoWTSsFm2enIs+a$6>;8YFC;fgJcE -z4ck1jFJQ5mt)10k8;~Jv=^^;)%Lzz5N&3;@c3B~#xnXa4!eU$1uQ?LlIv1?UEcmQ! -zkk7A1qym>@O~#N#Fy&hL++C}}{OlJKxO55#^ten5r;4L|eZ<8?B-aDcd4hKP(f;;# -z6%5gDk5Y?YPXD?$d(8yi;jhIe+Lxq-e9B~78aXuL_;LTpa)8H^XaB_r3lJ(~`$b{x -zk}Mox7&Ld|4Cc_PlDu@+JA;Rr0am_1O0AswfyYitu4Dn4BiCN_?I}W>8vgavM#x=! -zdHh(7)>tCOFc$x;SgQ&`I5T2Lq>t#PYCpSj0u1^W;3B?XHB~NNeP9!Q5CvYl`xwbf -z_v9jFmeFXFgU}S3!_Tr2z~1}szR;0CL7wp7UiUJN<5R&9r^Gvr`>P3P^yZ}+O{XWD -zM;-P2qsJ#m;-i8zr^KBamg`~9!48M&xHb=_PI}3pf2z75{n>A-wQ-^ZhtII~;7lsx -z8+hW8EOk6_LFTqh*#Eg?`QD4)MsVbzKW8@sMA$ejISUauW0e@IlTWEfFC(D?78ZI -zvb^6w_2?}4qCxrn&iB?kkzj;=r -z<8ZjH9}ogBM;&c5684x8Kvti%ye&j#R0}zcw*;CF=t?~L7gV_I%d5RtThYNhbwggQ -zCFpI}E3esCV^K$1S(<7fh>obDed>y{RZ}H)0X0iFoCnAp1O&z%5^4~>|4$yU^$h|^ -zseV1e&3h33GI72Mkd-3c&{sc{T=A1hs!fJIBJ$d|$}mAUCxresL3F;x_t!<<*fVo` -zY>Xs3W@Ws&6{=5vt}6nw9~&$9JeV=Wt+|vqcR!L3aLCb1?eJ__>ipPJpJQmX6T;#; -znxVsRF^UZI8PU1hsPSS4gMzgdvkT#~wcX3B#FiU@Kaw5pQj8&>L#HT_OD=vj)k@{% -zw%{go>Qb4>-y_KlBqw+H{X|l~X{j=fLM;lD6vl{(h5Qb@LnKh|Ig*})N5pz)T4gAL -zGK`PseO9=$@oZb&g~oEO6C#K>&cAuh#q97}NwFvP)c-n|EE0C-&16g!`Nw4bf{~4_ -zp$kt`tieRYT@%j7EZYAl*`EVabjX71ifDXN)THYk1t&p>r2U%!QBX8MxJ0f0A-moC -z4@>MIW8ul-f0#vk8bPo4QWiDOM*;E!bgZ9%c2`E&O~G|eLBy%?(aU8)O~SA1PTD9G -ziX*66K{EC}*~;xb#BG?DTYNz`O`e1N9V{E`NyFo64e&yCvPd8x6l~$fq?&2Sev4xF -zxVtGmuPOe&C^rcCm?2R?ClB?$>&~l2>mFD!oiCN3|1YfLU$R&>5FX|e6o~H+^@cZw -z9v_Z1L$XkEAjpxoBw&>%U^GBdjV$&@KI@TX;1#;p`@>P+0jFH@%e)hnJr@4$Tb*qzIS>S|tKG!vDt -z-%^?xD~bQ{iQ$Yp8^3g{xpbpkXHQ=m^in^c#MoCd*KX5&MkSYIY@KKPtw|{*8_|zw -zWN{(}a=Lx77{i$L$VUcOG<1aR)LSPc{fIL2vBP{A**p2&hQ2uAi$toFYd?`$b2?AD -z*OhM!B;Zh8o@rNhOygt6MV0o5Awh8x(OwIVT@+RK+8e49`x}JD;-^6bhxvhR;jk#J -zPYpzYMIm=*B7KY8&4;bT5W0hSW?TB4*fOF!-C+C?nB;Uvj2q1vmyv+yi^Wm_a7el*M!mY~kAl$I&CHSq~7I>guwhf~8q0|z} -zW<1!O^7&OE-1C@Z!4A=ymF0|nr)-wi4RVVXhb)u9H8%E^j_=K^@2H(5c*Ws;I!87N -zub(p{2&H)LkVqyT=Tv|d)GvVvzuu%}k8N~bUU6q&`kw)Kpyu$_mDFpiT;1w^y_6jTO!_SivCPP -z2C4JnuMOkWe@mo=5keA)d5hrAVHy&ZRP`5QQRh=A>CC0CF}gGpqkQM^yZcGK6dNy; -z5o5oCblfX~O}~Oo`Z1tOD8tS-wG^c)VmNrE*g3-RfKx-@(JT0{;JbTLW6?f(m1dQ^ -zD)QKJEI_%-;W|m`poQLnyd;Q#;hnEe{F&W-I*(Q)b<+i%8)L04^GoSTZ;I9^3R!9M -zl(K9q%nmXRaGUp!l_T7OqWxV&VFsEA(!)u#)QR0XW!oUnc*{s2$BWx%qmT3~eiG_1 -zcT;2dD-T~!J9%%T_qY!0JX~;n-s98?Z-SIA8FJrC^L)^j_~@%NE~2vboMrP=%xjeo -zeqEkxsh;c%$EmaQycf%+BNkWdUKu#3Jg|a&G5-SiKXA`@g|7ZOPS-eASLMY^)TkBR -zYmVFSFFoN4nUdZ<;c(%0Q74`rer19m7u9#xrmBBpWh1J9 -zII>{AO6%f!h4aKnB9WP_Nd(pG4SZo54-sXp1W`Rr3?bF~{ -ze`s_ZzDRZG}0qFT+oJeN-7~)b?+ikst3Im8VylS{nYJlB7L5 -zyi_U=$O)pB!VQUVxn#H_c;^Z5uJG|6|F~Q@* -z#R}5^S2DUt498>+yj2Me!}zyWG{v^sK^Dp2YWW_7h+^lr|Ckuk+fv -zYXzim<9g4r0p7Ng+*$ULD;rSQ_aX?C$@*WJsW-_ThTb)IXfxo^tOVe16m!>!Iyobe -zx#H!oi$T9!tl2;O6(pZ)-Ql#Or_jklv3;rf76qa<6Tu-F{aXA?8Vc8vU_9-2j?ZBn -zr{Yn0Ef@ge{423i8S|NK5SDv;>3Cr&v4!Y6VLvhqI1x9 -zhg8zHoc4}fgxpQ*QtNdB@Fii)s=Ie<^%;O{4T!}MfM|g!jmXPKUUP^^hUmii<#O>1$6VrAwh*Z -z3CPhinM9v6BxFVFZ!S`Xr2k)w*aYluR9mDmhK)AM#jf&|O~|fB`O{l*4>3D(n{YdMmVS*-P}WK7ZEaJ`)I#0gbh@X_&}} -zU~+D4Dh1iOkog0fql$gTOZf2&6zG0~SLCtBWO3X**Prx7baiUL$^jO|e|*9U0D$-T -ziF}C77E99f(}zd9gN`S?$;kqZkyiyIE^0jNI@#yaP+aoVL -zZuJyS9rhM0Xo1-Ua!xbblio`GTvEk|w6dH#c(r=B?vXiUZNTXO29s0eptzf_Q#Q}t -z;x%CbIpps%r%`QNe?-;C-kRI)5hC|qy%~tF)^f^B%O5U&NWbBOJ^-`BeN-?)cwGbI -z6Wy}EOs9HMsRJKpg=Dp#I=wMj;rOU^$iG9|G|bM=pGs6IO1E%VUd}&ihhOEik1P#4 -ztK%Wj|FAl=Ldmy8N=5s183MMV_K&)$4w7n@?jA*{WG;THh5L$3KLwXDX9gNO8s+1LlOgJ^SDmwxr`Dj#$IC*(5@lF$d -z5>k18_C%z#xBMCGh(}_zTy*>|bJR&L&#g7MEDD?)XV4P>HF@_)?yt|Ur8?zc#KTm1 -zPh(4(^PjG}&Ijk;nbrCaJ%r&_tg?66Bp2+F&*3gKs6l3Lj5Z5?8~HPN8o<}5Xg~#v -zy=6Up!>#E&rI$r-O@fL4q%MBY -zk8H^h{RE12Y+~wK6}+>N^D&=Mzvgmk*g;0A5#B99N6M&| -zNY!)?+>&+R`a3#OftQH~ixD+136g?&kKN@?+qkmEe}DdurmGBys)?c?9n#$$l7b3I=aQ02cXvx8UD6;S -zxRi7W(%s!HA>CaP65nIj?>EESc{B6w+&K3fTlV+ZtmJmR+)X-p0P(_ED#>gR-J!BX -zigF|xPLUr)Eb-WIz;WGK^ZP-A5m{ -zLRR9UcUHmJsz0!1{ZXH*th1vHjO0;`XGLcM^cXss(}soycnry_){(qAgDCxr9X6n_%F+-5(9 -zqzUi(vp+IA*Y2yfa2ClwHnXG9Y;w!VyS=MKQ2E_d#JzGyeeC6XU-snT(!eu6n)OdI -zgsu$5sN@ZrJpX=6k|kDQ@IqVUZT-OxJpKTCPZ*rU;fDIa?j*}3r}jzLYq(% -zDK@&K4k?Rd`^CE!uksJQTHM1WA0!^E(*K)snz*if+J{%W7rbWN+Uh&&{z`*2;f-vr -z2%2H9KdeO^P1uQo^s?!ltnbAlXDs)Fj&K9yMsrUY;}?pkIDs`@h3n}UB|;STFL|-f -zjAs0vJH0~p{z2nf_o-GTQDCB%JOAazQ!2}qWx+lB%kcCnPI{7)>S}GwlZgasJuV!$ -z_r{J#8h7v+{l`(BH4X2(mp!ji0RT=E8P+$voGOFNJc$(j9umJ5{nwB0r>`MPB6ioH -zxt08-_>&YT(+FRT(#sb6o}pDaEM9 -zCLe$~?RNs6uo?g*_9`9ieJJ~Mm@CYHv=WJmX^&ak_n(hb?-n>-ohvBbO-(sL -zyvR)D7wsW*8rK)kd2`UE>;$pCz&mN%Q`}G-|87c#P=Ek<4~FC-o(RPz<*UlA>dV!o -zt0?iWQ;(wm!UKJijY!*wvr`i&XjGyO13`+9G8 -zQNe&{ -zWLPvzh301QH}gMnrH^ylk-TM#rr`Z7T6j -z^U#Gh;Wz*a=D08u>TzAP1t_hyNCp=OMM=LH{@Wuq8kTRu@Mmn-^t$M|2qLrmTV__l5L8RhhM~%CJwNxo@feQ&9*8PyHGe3Ce4aR2lYOH}f4w+OrHOl>c^EhXHF5EPa -zFwka7`=Fp1Ao~dWoV8ss&E&b__ondR(C{OiN}71s44(erP$lOr#fWTn&$p0tZl4?r -z2UkBeZ-QriFfl11IJYzIyRbRi(W+C+wwNL$uH!0O7qC*nRW#Sb9BN^vG`|}Na@frU -zmyt`B8&JjYp!E>@(d=H0(WeVRo`|gSmPU((!$N@a#*@UGxP_g2xdOnm>6Uy-H4=bW -zmnN9?n -z%aaQ>@IgFdoBc%J3~`I=T=AhC@yM<4$(e36g<-VeUCiy@3g5V&MjZn1iix=4k_{*1 -z-QgDcq*46W^g|%(=xB^nzp|GeR?Ghw=&3IQ;YJILIUgG2S&U_eI?eLhF;BLrE%yV| -zaFUcUDHR3PO`IXu5a&Fjgj&Tnm|PTE(|1I<@MKZPW?12hi{swkf+A_w{LIqZ0yGlC -zzkHrU6S091iUe)^G$-~7oDH@3&1$-zZpW=#^MFj>9hRJS^VLxRPSf?;%Tko8_7jxF -zCDD@94Vzl)7Z=*x5sg?8oh1Fu19XQa`%^tS=0_0-= -z57X`-{KY=l@;GzVT!yCi>$@$*!g&}ZquKIh=-)wE`{6puCM^`J8@awbIbAzvsbv85 -zOc{;$9oMsOs|KfmRqd|-S{2O^;P2ype7T6iBWNp+;iIzDj-Yh<+k9s4hy!ChNA{2X -zMj~pJvYR4m2a)myTj3L7tQb8uzL3j(b&N;)i(z-InE95#gceBmBT&nXIZA9B*QsAq -z4*4d>e(|=4Nn5k$=Y;Z2?<8sa@)pGEaI*4eoHM|wjXJXj+jUZlj8rpnR%3>C$ -zg=TK``@3-qt44O@uJ;!?WD+$V?YKMddOMU2+f*K1Up_5a7cBL8b4-pypAZu+`S$Fr -zN>ralU9ky%$Jr-edHWp{Xmt$WS^Z7X)!T!;d01csc;_`JhaezCQRJ4RxK{PNc7!kL -ze|0Y?_^*^!%F#U_LhZ~x9o;n)wkn^xilg@2_{`hRF;Cw-nFk8F@RL58@T=aib*kQY -zerY3K;yQ+=;f=4*+Ox!;#Jd1;b#y8Z-m@HV}oIQO>yHHy_(+6DQxDVrMK|< -zhU|eiC-*rbY}hq{-yBqDMMY+YmrD~C*dDU*V2`@Rrd<_;WX}#fJYq+r5BSvX!YtEX -zwM1UPOMT^~lFEok{;0C5pPkO_Gk~Ij`Me|rN9fyuZg8eK`#o!Nxa=9nvjT9aFH8sE -zWUcuj+a>&p%^kaRdZ}25CZvhuomf8@jJ)E$<Q6NSl1A;$TorD(@Z#Tf)Kf+M -z(6Wwsq~S_)tp6V6m;H&A$%C)lRBui-s3Cbm_)Nhk_Q -z5b|8&2I+H17Xl6%&uMHG#{eV-z`uOB -z$+mfdAxvE{{-N>uz5-d<$QDDQD#8T4Fs&Z<>Vmp}c@z&dnCEY?xCvf>n*ITzQRzuC -z`Ip?SeOh0>sC#H5gX5L-AQ8pHc;@`3!6h5oD`A2YHOF7rTcRT_pM{&Ckf=pv_U-Tq -zt0qsRFGA*vo-Qvxv2vp={oth7JeeW){nh-BrfY^hDh7dHHmNlsoZe=&IWvTVW>uBo -zfa#!1agP~-Grk_n;kNhbCA(u2o0H3tUPiBs8y9ry1!E}mYh2UfYb2SGPL&R>09 -zOez^qT#$&{#V`nTse`o|>JhQtXo`v&BLz6p{5egx*yTcN)1bL=BCBzR44nmKtGqDo -z7hiYt$#nt3jCTvd`u9AzZ^c29=|THfWh`BTLF%8@rh7BshqaXC@(=fkb5Zg6zwU8$ -z4t=gFNOVX^a}XQ5rr9Y%sMg9GOImG<-W%*1P9z?zY~upiJ$V`?u>HTn1tF2o_M3Y)1_Ac#yhlI#iZ~B*`QHvN`n?SV!0oYf2-*v&OKHs -zdG?Bso&c9(~<7Lm-f2om}sj)uz<2gVWA1*jFtW -zbZonlw{0&^-_W^kM1zJPn(i*AuVGX3^=())TOFAp>T9jtF7t%ulr`3s9c-c -zQhRD9g5#}5l=@yEV#w}|*vy4!qFH?#b!nuDe{Ghqc^F|JPoClQa3Y4CL*knQa8d(- -zl!aSrz{E^Bu*5uE^|bWwx#@RXR`@(b6$2p_pf^bq&w{UOYs=X`bGACN0G3kp7T<>z -zZE3{OgpaytP$Y*;S%Rq3_t4^ipcNfrS2s|H56V{p`bA?M!It>pVoK$(7;QUgdz8iN -zU9}X-XP%;mPnZ|L0)xlNgr29vMa|*5@_xM0Sj?Y}`D6*;Z=M6afLwW9rc(KACrq#2 -z*{NF)YR4RKb!k&s^pq}Bt$REeK;48zLZMa5V2a@;`ICL_-=nXPZ5%%1#H2M;GZWz(W;*V=XriH_BOp*&}gJQycXZW -zGEM44PPHjT;Tc0mxuTCYCB$v?hIb;=4>UOkXMd-WnC&f+?_U>Kn;G@0md7?@z4Xb0 -zGDI|u=@6cZrRfXvC~>_C`qVhMG27tFhx&W(XOk^Z*$2e^BpTstuYaG>nh?Q{-qcSs -z&=A8#W~%gS#d@*SOebqsw{`S4sj+4yVsc6;~WHtJhX~ -zq?d0G{%>w3jL3crZ(3{gy&RtTyxUtWOs;$DrL)l35d&H02<3qn-`4>RmvK+<)#-Qg -z(##-5mm{)(@7wNm+}n-Pw%SvHW6Var_bL8C;^4{~D@l302C3L{P3z -z!WTzzVdH8_;ptt{J(PL{6GiL<3v{7e-iyeO=`0Q{ez;gdx^bsBGiX_|?0bbSCA7h} -z;@_WCbpX-MENrDL++$&peoddezh%PqcsXl+H)%|hOam9)<;hm!fWHPSJJH{B7&)x(=^}B@$$G|_C&nu|Elh1yrE=Ms(DYzi -zqWE_q$e#_8#Z4L2dd`(zCg_-Vh(V5T#747>)gsP>;|jZpB85Vhxh+5ONHIN20NLR# -zy71Zf*Ca8>*>oTHOIF3YXBEPcs`;wML^-3vk#71P>-P!EmpeIfggP#*)1fF5D+ay1 -z?3^MB(^vLq_%U5c_|45@XA%yW7wP|`65#*dqoyW!v8y=mTk{yCQv2rJekZVO+IM>s -z3EdnM2}L5x6%&t#THO-46iwl5LQdO?SZ+vTun_D$XjE%u}=S?!FTDVlOOhm%6 -ze;lRwK?q&+JE|RH`z$efmU)7rH{q92^ql{wH@di~8Q{dqgDsU@v~;b6q+8h8O|qMH -za*)p?oF=5)74zZCi~J9v7%#Ek)W7)6q~gb&-NbiIik$YthIVe1?AENl6HNg?deM0D_3 -zT}4*Q8D>PE?bblJ|r~zn+ied4Z0UsTQrHb_0cDF~>2xY-LXA?PIn{ZUaA3>JnIs#i{3 -zqU30+6i9dtVYK^l4+?ay2UA1X&L_~6bNC9E$#@~795`7qrkb{Wc~6HoBkky%6|Rbf -z%gCF#`$=y#L*l){PCiVIRbN89$}p#W+@0HGu|(MrkB@;pL6PgvP>(mAmXn*Zdr%aD -z;=TnTix`A!#P2I$EHXgOLCj#)5C1~uyDxaJ3ng|L9VXa_xK{~Ycj;JVadru~hNjp< -z9~_z~kTZefCk4|c@SFCmFFFT@*MCg`0Zz&<%o#Nyx;f`Izzm$Er0 -zLC3CXGeIqz=I;iMF6-7hDAv3M74;RUY?bL)7?05dn_GA)dQ*Sl7P_vA=2Puxy4gec -zngsgqEdXL{u0ns0klLq)MF6F}BZElVAjSL49Jio6Wh|wf+mksYI1Bksw43Yw@ZTJ0 -z=kw_guy|(ZBZiEdJtv?#|x$)g=9n3rYm(7mgC)Qesp} -zN8LMcZ~3)MPQI^&HxzeK2qNW<&dkpSz4k;kJr%3%ti+w^{hw?n0-P<6;)A;98Q@e{ -zl0&m|f{_koXhB%49qbwrF3Q(!8lxMAos?Iaps|w6jb<9rb+Au<(vkt9$Z{cq->lJs -zYhqS4DdL4BDJPE9G4?c!_;n${O4{BG8hPy4ZIJqI2LiEb8fs@l(*0CC+2(oW>Xx%92VTK*Q{lkCv -z6`M;lzE%iBlQhp(X8;xx5v&=ONv9bfD<#;U{&zfa#pb< -z9HOLxORJ}68XIx|jFyAq)TCDZR)0BxsPa`FRO&+-#;C2SjrDa|P|AwqlJV;-s{3|_ -z352}mtTk!r40s}&+@H*@j7WAs!4|mDK;C#8XRyxwnhatA4n<=rn8>K}FaDHCYaVsv -zVv$R*S{@=g{o909{U72?FH9Q95d?Md6P=GZb*Pp-)eyP(h$l$L&mI_{d_<@(L=TyI -zd=hl1L9#zCEmm>wbKoXx+DA#E(d3GDLnvC=AMQrhJDVL!tWGskf0Y4XN3#e -zzz4-bL^oH^b`%LX7M!!D6w1QJi_dHSKh}!NjVRZR0fAJ@@0UX*r_}&fIP_&{#Q24QAq}JDEWQlneEPC6`8K4dPaz7twV(YgO-C)C!ayoF -zF7+?#`-zXrGk`Hn|0De`&Xx6%da><33R -zxS`mNWwd~ad~;_ir&TiE!0vk`iIk6Q1^rwViLm9r?Q^$3pyLbMRX5SEeLZJN>ab=- -zsbGAI2;e0rvYuEpq-p9qjjy8L(8HtMjtaGQ-c9`U4mHzZ4Tt-6_ct1>rSy3eUKGwU -zq&Mf~BWL4~lCEHFw -z*uM9YvZk-26d_Qy`@?Lw%e^ZK|Y%mSvG?@(XcmH=ZGf&VBAj~pZ4JG -z2Ql}Ue{MkI&AIV&rkp>!KEmOc>RvBx^xd)}uF9?uc-;Kpv%~lxAuKONxxYrGhB_d7aPNZ@C(A%et^tT?nz-C81^zU=Pt? -zSoFlabQv32DdjNn4PaPtr1~3hv3l0%o`^;n6tK!uuD7bZ!N!(^;?R+`;mD3oQtiKq -zGccOVS5SjOex`d*G{D70_w8fK8kbN -z=_rp*QVD<*TpE%+Mk67{8^v0o^ek_6p_yYd6(VF#K5Umes#Ms=ruC_F)fJOH*V+ShZ(TPHE%>-0 -zz$^;XDg3fw1gQ`_w!qSyn1~*iR;BRho>~cMRQN6;gB^4D#+Rixt9mAbQQ=mHkGWkK -z{3D32MNb{7_F7gZndGyJbfAn*~$w;J*b46!#rtDZ?JIwqnSe|E*+uN -zC@gi=x(9NTaFy`9YckY`(@+sd%5OQO+QG1YY%A*2*Rx1jqrN-u46tDYo0u`0i6ae# -zV3>Y&`1gXM&#-u7K+jq0YRqBzwTv($#ious{E7L7@f}?xjUNBeM)P~#_j@)3doxZ; -z?tjn@b@1T}3i>HH@I6HTDcJ>NuMaq@uNx3smdq-0h>G}*oDFG;tI9%mW^UsWPGMxr -zHvdP(KQme+=JD=Opzh$0K|L2!@pS1azUq#7p&q8eu{O;uu=E620Ww-e=7}w1QcN%M -zD1~t0*(h%UZT2Judar%`Xb3!I??nmN9TVD-QsKbb$mdQj&RBgt|Eqq(Y% -zE{fJ(Zx@`tGEvezb*?Fj(q6TKEic9UlB4gEV-kV@3MhXND1Yo)+b`zWAb!4uztUyL -zvx)M`;SqP}2~Oi6^5ZT!coyliV{STfr~0{?s~Pjl06WRg0g0xDFsNH)i1LqjyVK!j|KLE(-LJ^G(xzGAtqND&sUGjM>?rSqp3~-semN -zZ*6dTJad=1(K>UXP9c||Qn^|z|EL4`WoekT5>rjNoYIusrs+>(rHPxj$ge56Sp||& -zLowQFL_mPopr3n}?(NEm%R96hq_tPMKZlHFGd%1mMKxUY@- -zc*NCO0=>TGloxXhOFa|2_!l?*@2paAymT-1pVFehRS_TR`p(RT8&9&1PU4r!=t!T! -z3l~x(f?cl$!bge;P00MhGJiyHy&#Y~dyrY(B>=c6ZVsg;)YC)7C5FVO@(Z6GNfs>|CkaC -z*lRoibveELhj1(~uR2k5l<^Pxc{?rl?&UJSR(hKkLB{@QJ+Mgtdp&$TsM^;rhbE}` -zTc85hul_y7n4T7gE6ktikt8Khj%VZ~6wh%Gl8ag_L2#Oh`5a$JaFSDr2|@s<8~|g( -zJCt}GH_`yet2Y>78eC^Q#i-vh`VhJ~Fg|YxGDo1FTglO?dDdS76%=4V?km0P%9R=Y -z@`!3;<$&etH-UzsIaMFl%Z&93dc(wB;P_|XKT*B_?NREUWdq>pS9K~byi -zr-?{k9CN=$P=aoYny@+Y=MKigVR6uO_vQAYE#yI8Gb^W(euW8swji%JMb8GM{jquR -z3h(Ia(UVC6di6y5Sr7Yi2V*u(0PgcDL79Pt7^aZ(@+U$Npqjq)HO*RnO!fMQytE5k -zD#g{Db90lD5A?}m_*0)zOpDc7H*21A1t{FI7t>uuaLS2Qk`ur5d&|ACNGC-EtyA=LT7WGcC0`mSw*TC8`{v*l*~+S3 -zAWLP-Nzzla5{haCQ)H3EcNbmn -zT-Ys2?{-v$wSG3RKFdq@YP@WO{DOTl^DKF;If-T@{=hN$SqDPQjN_6&K9l)mHgo7A3@VGb2@9mNoh=+(H2?6BM^MACp(PyZ5-ghDZ#utlOLbr>Fwm -z()0l-XH2)%%>y!v)q&5fBjkp9Y^5=7%YnFXjbH9|dbygk^C0gLGC(cab<-exYg0ub+qPcW4K48We=jcuhbapS%pv& -zq@TQGTQaNwW}{vFOy^!NwP#o+H{l40VIAeA^7OH!Tm}ypQj4uXd2HRUAZbByJ9=%8uDJ;4Xz9iLrcl2fNu@Tcjka=Y1nz%34pXD -zjY85k1QemE6W2d`(JT+2pX=Rqa>-?HZ`cc2hAt$}_;)S`J1&R6!n(~_=_I=`F+6Tn -zwPv@Oe?hR#Ev?^9Xt}rNxQ9RKT^kf0iF*qOPG6#J22U_ -zs?VeAGyO!fZrVQ17^P?Ru`j>7;d(-xBdU5E3sDK`qtF>)9TfiP7-j#m8PL+(J@tR& -zzvQMoD@v0x@#fhxiuFBUiyWmC-~b3=w3Z=X)J662-@-rG$=W*#m^#NF(O{OiHr`hNqhVZZXzruDJ( -zZ(?&R(hD#ff{rZc?pc;5pMSx*he9+0_(?=_=pu#aMqxIsp3%B@brj-LplbzyIWrOh -zXHb!pUPQLgRYO!%0m*j9RI$k%FKQnm@j#CzOcCP{>yf4q5Yz4D%8rip?f@wZR{ -z?>oOSN8ig-DDVf9<09urCi5i!5GdkVA-lQ1UgF2UC&pA)Kv546vtnXJj(0~O?cJoGe)YarHyitI*anv@l@(fIWXZ!Z|yykMa+&*q%IkZPH7{q8E -zvlaZ|3Qv1tCXT|5C5P|GDO)p5=@AXr6R30j;u?M>yU(C}8$|!kguF*^4O7ECW;4af -zXO)#T#@p$r)NlnI0xL}lN7ELw#s!$n&BasQJBOYtj8{Z$7UB`uY*w`-nt}mF#DTOc -z;!gWEW>jt~mNz7GhYo))=|;_Uwwn>wBcEajcdS3`6TNVWR8%CLA*kbMlpYR!e`Q{I -zE6n>Y7Et0CZ5KQd$0Op%?2${R!A#NbwhHw4R0;(ktrus4Yg;~pM`WJhpBPGuZ$3qt -zTp4e+L~?H-G$ihMBNEAcqUxribk>wg-29VTF$zRKUuzyXv(kdvaoKCz1SX90a?#^Y -z5E7?Ez`jmdq@BV*v&{S9X>JYND|_D)^OIY{ioOC6ETO#4lw#hlY*k38pbpmL`= -zNEb?=>$H7_E)sPf{NWy6C+67_+-boo_Hf+Au=V#1HFvznd_>Wl1S7KOEtK>MH!eb< -z$^_UvEzCw?(S+utWD3-$97yDJpi{ -zq73IMM8jt1uWR2K=H(^8c&~+|flk(t61pD(unEAt@wXCTy#3>}@5WZ}#advU_(D5sM?81@q=PjCCIjQLAOhDs%;I$rH{im-=G<*EtJ8Qm}fB2p!H8+sb -z;FGmoh)}IA($v|sw|F{=6_P@_)oFL{2Xcd|5fxM56O!D!?tf@YR0?<=Z&Y%ZU}v-v -zNt4i)_cNyvf(vo{EAMtt*xhS{_GX}z(Sco(bm7?l{0NfqsCz>tB1VC_H -zPGt&D!tkZPX+Q`lbSyR~g$xZ9YjFZ9WfAl?Csb`ZK18slBqdRxy&kRBnJ~>c^d+vi -zyX(7jBq57M=bWo81RE>`lg+g3DEgDe*HhYCp5t10ho|}gDr>|+OOJyVZZd|D -zv)?ouBNE_N_Z`O5!Q{8 -zChc=&$(pBQ_zqRFI(j{zJ?QP^5kVIv+e9+tf|VvwTBg)7d2p&Iqzm8h)wZ6jp(qmX -zF$Bs4NCwCa&tj@Xev{Q?_|cM~j_4$g#&7p&DsiZMWC^-7yoPc#alFMYoY&4h4zQ!x -zp|nPIt|-@{{p^2RnOv5>LDGJq`uanvMfg~*YjLmMR=3^wf86Jc+~evV$o;2>8e~0P -z8zX>jHqSu(aZ_%g5~-BMe4fJC2dVOe)>rmq0t(^}3T&lVV0v%3A}odevIA4h`RJuk -zG$~_nS<2zdx({)WN3&1!2HM{5_vjB&w9An}!C)ScmOqWt{-Abw?E@n;Cim_E(H8fl -zWhz@aPqa=89zswZ5;DsoGT;)*liU*_wsqH>5$tblvuhO&ROc0$*cW>5gqmlzo<;&s -zj{>7|iFU<(d(QmjfNRlUxnm_%Kr|KAlznUTTD{fx3KA$x6${H^Q{yaQPi?B@fzdq= -zG#dTSlZOt`9R85RknmAyRc1xUFfqKEnVZxK{G03l{?8j}iv!O`-pVhV^-$+K3}h}o -zyh``yr_#I&<{N8zdlg67TsoRr3%$J#0SK&UZMa@;x?c5kN0Fn7K26U64BXs+bw%E- -zy7k{s+?*9=KzjK~PkgBL-SPos?m^bNkx>-&c-UgxS<9_MMpovDyQB>+zJ)?R8(~`a -zF*X(ee9!6Q3U`#b6gyrCxA|qN4qFd{3KzVS8{`)|mX>&avNOhGtnSDb^H@>S>vKrg -z`+CD{&;5hah6~=i{7UxK*END^&iEjd;BBL+8qD^-7YL? -z3GGty%Ld=^7G}2d{RNe#Zbh!MRHhonB(I@cTMEi0CDUW-M}3yB9bX|bfH9ybSDnN0 -zC@=dvw$s%848n-RjU@4w82>bvJZjG}-JGjoL$3DSO)KouUz^qC?frFRqp#QraG>jP -zUBuKajllfWODhcC*<0+M-lrqp#&=yB|b9&p( -zE?giPe>G7~vJ5~I0Izyrr|We7EKZ?@iDnJ{9V5zDE#0bowApTW%XSSN#LCt)K|@Y| -z9DwSph*tfYQK`)(pQ!&gU#FddTKez%)cU`C-F46(tg8x0R1V#4`&}C!)@>bVGq_&m%>`P?Al@96Y=W=8gxwCibBKJDpogXd-s!iE{oXg*u@(7Wa>hKD -zc)TF^=ha;7OaSc3^m?Sd+T!=pYZ6j>@Xq)$w(2230t29P*QeDvF2u)lSi-?&efgn0 -z&8tszKfwUYO^`#tC!BXG9b86gbDP|vuW8UdkCekI+1*JV7T)lxF1V*E?SxyF3Ap-H -zMhHUO8VfvjiUeQ5XMC1PEn{?(p9FEyx-L^fUEP_9$`4-2FH`?IF?*_*0nr2Oh?^Ye -z@7wdpj<3sRdcw`WfVduTw|R_VtCSMA+7t%PfN$EHL8^NWXAw-N(u1+uog9(#ua!&# -zHm+E}F*s|0H%4P^0`)?@fN|`{dcHs9P2!J@FSO2{dzO%QR}OIO`$%)+KV`T&TwJ>y -z;1PVmxU%lQ+!)JM`I-MEca_jH{0fj@BPJwN)El)R9-gyG&+?;NO_-#-pahDoK9Doj -zKDP*yO~x6T6G7d73SSl&cR}^$a@{{FFuCVlaqcjF6NX8cRuLiOmC+FI&-bARMJp!=3P?c -z?jqC-@y}bYBfkE5nHbYc+VRBD0{{@=?HxxyylK0Vu*U#7+Gub@a%OSs2~wGz)PX7u -zq@8P7oq>U`okV!4DS4EBVM2unOyoJLx -zIv&Lvo})A1L2+Y_RxLluzuy^K*My-IYG^vB=RuVr=$7H9nYl=>xJJWf*zuN -ze+2(i3?yrF;4pBei -z_M>}T`ukCnP9iI+Wc%wej`VX6ag%Vzt7#C#o>V091p5`{GNOqpBeqix5s`#67%UI@ -ztMUIH5%i?qnf(i>odJQFlgN$^QzM6%wKn0$?5Ujs<8M0?NlG^lWH2B9FTy06zD+e@ -zzso_F+)7d78`ly4R1$3Tk=ZbzFS59Y^ -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 -z=m%|qsp7vQ{%BL*n`TFwxSQlE6rR -zkxl@Fe1%X0_Lo`^Vi8&-338j9bBBo)4z#)W@4i&ibK-O!I3C<^6~Ez$CL1pyrdvW`9tHgw -zHMdo|G#!7P7WD^)OES|u;&2QTQOs+YpxXN1=oNy%`fd5GM9y`&)c3u&D2O$9C| -zQle-P_G#vd&kl{V8BQp+btPjnC`b-G-6@b!YNGqz3?^isGr>OoCzsE(t=G~rt5yEd -zuY|>XTU$KDj)I{jxdYvLY6wUncslTVWH_Zxy^N2hK+Ezi0 -z;8e^iaD@ZLFot{YwG{T+j7DIMd*_v9^Kz>q)sf4;s-qZQOYF_1Z`V;u~ilP?$ -znb57CkPb@R(|5?+^cNxG_Rlx5Vsq=tnV!yPl(giRbBLELSmc4wW|jlvAxcHSPywZCPz5C -zK_2A2So?!4cp;8FmDNN3KEC$->bMC&gWII8zrY5Pz>xxf;60PGsQwX_gCocdN1(Aj -zl5M@>1=r`|M>u9WJ0v-ZKFY=ukC!)(V -z82o+XKi+x`RsjLqc#~Sr#lWwQ%_+ZDkA1Fqd>cZ38qq@U(qC0OjU&W -z%b=Q#Aku=G0LfRQ6$`LhTBixfGBwXm+I*=xlObdGO_qDT+X3vdpf>}x8ajTA*@qhA -zkXOBWNbXtpj^z7U2=_c0C~apikw`vkC_dNxEZjk|eIX~%0DxEnO+9yR39vkL7;I*7 -za>Yx6U8vRvPVVjDu+k=<2w((kY(Ps&T7#C_HuC6~2g6Mu&fO~~Fn>m0+LvH~ebYDB -zTfh_sFR&+m?MM4|2n54-PRPDS*veX)b2I#%cVbcLD6#@W;hbv1_frHZnCD#7>ba2Z -zDdqjGEzp;kU;5bx&)!b?YFz*|Cczk8T^Ji2af1E*5olhnEdZuHxM2!2g1eZkzI>3h -zSev>@x65&NYdZxn;!JusOziQKl~vthATcMfD~|-ek9;JX_ysT(wQA<&U8Y7-w!fAw -zZM~jvyA6x+Ey}0-=rR-V^)~gz^z4srvBVV9jTfQ*dV@(xIF$7DM9hYB<()lf(I>`P -zw6qCN7bk#>yURKub_|hgl_n8L@YQGiEh$7 -zgR8{I;lK+PAe$iKn!JL!5{xp(M@YpoG1QNpk1XV76W8^E^p&WZ -z!h#H5*H%K%S|Iv4fYt$)I+SS*ThD?RMG83((BU(ZdH%28O6 -zgZ>d?g?qre;}(~zbaqC4yY1=uhCAa`;+cWOkL>*mbjAvhZZW=?0^0y0Q$SccZo6Rc -zE}^`W*ZGn)FUWjZvrq%CS;r~>-9kA@wdM~8?GH$#X|9G=R!MbuHCb(VC$@q5<1lCn -z3i740VCFhk(twQ!b#=`u0SR=a&EcC9##~vsXPG)e$&S{U*iOn{x)WTzNr}!QckEpM -z(8?{-U%-Tsg)#-C?E8eB#PFdUL@Xk{^!__v#-=Yy9A2a}o&e&KA3lvj>4A(dU+!3T -zNWVBNERdoR&ANK2*&p`32YqPFIpiF21s%U|)4096yXj;Q8>c_gZ#kr);@AVfd#WkX -zM%9`(iPr5{LD2PayMOA|hs+Y;&itPNtvFm@VbNwi3iLNx{@2|GMH_Fp -zYyICOFrC;%zvboe6UE!$8T>PwmePz;-KjK1>l{FBx~qh}0Ma`P}iXQ9oXwMQGMh -z?&zgI>rw$3^DXB5JlM|4Ka)#*4(>#`2SIPFN&6{RO9owdHcz5zknhb8n0o*SiVBcz -z_56N$SSz1s>Gwk7;Z=ALWPqHo_@{NsLSl9b!)0<42L5H!n?oK6lnVN*Bf@dV|?}JK#vw7&>x{=nalP_#HI4< -z_jA*IFD$MLfn6hCQ9If!P7~}m0phFPb3;{4!L9?ZWDLC9LR2x}*msefhLOSSO;C=K -zjDTxQ7%xW$%M2~ox5+5>|53Y&<8}EzJ6tswBMjsH+wlgM0)zvwx@vf2^7lg`8ky&5ti8||)eun%czUg+c6gsg68N_G -z^`|}E^UL%^z8?in+0iFJp`!~{%4rlV@*$s(LWd6%L=GE(Q7|FD-ewSkf(_Y)2{ob` -zH-Z@rBWl?SKkon{#+9xX=-7-*ZqoT1!P`5e{JwF+wJisVUInIG#r5h&_!x(ROb5tQdfXu0?J0K;udi#TsSRR!9=Dc -z6xZ^ApvA^cdCc2#Mt>E5KV{!=a4>pzSaax-ifdL6fr3COk2g3apd+Mx4H34EZh -z7L|kLaywvbj`cJ;(Qf$-g-Flgphj^^c0XizeVI8~L8Xo;^o1uF$Etx#i2FMvKLFtl -zT7Q*@_hPQk#%-pN+(AX5r!ipfnXU-f04Z*HjiYU({W2~gafI|8e7snshX7UNXTcW$ -zw2}~3H$s3YqWwFB&kacF?x3MenE$QCpkqHVI<|Bi`!1iLwBrJq8*w~3iV@oPTotOQ -zrbpo@-+F~GvYe!~(h-(E`jYwDopb{Un6=L&YP79B0Ix&C^G*Fz{{3mY>vH^v8up5eT6UiW}KjPKGtr8$+&P(WA?J -zn8%)b9s+SNMVm+j+TXOCP3Xf&Z!jdY#Sw#XY4vwvzsry6uexpv7lf_O=vA6En4q)l -zLA7D%_|cBX(}Q?<7umuGX&(BegH0R9hVWS}aJt3Z2Kd^(Liul(>y^5eBSh>LufFFL -zS9eLhGyq-+y%smRLnsJ>(*+iP66{KSOnxv(HY2`?T}!H@*hW~0p1D=O2>RYGcpq#d -z#{EP7dJ7e@0Zq$PYRWT)?*L>7z?9;e)HyAWmQ83QL@Le~#2tDY%@m3? -zMk4HS7+6k8)Y4x|u|{a;i!L3M`EU?DtakIxIFBv)y8^;9K^2s7NHWPZNYI*iZa)GB -zfdjudvkI&GbJ&Zo<>hdJK6N$gIr0BQ#=C-$Qaj2dvjH$FhL^$5{5@SlU+oy=J5Rg}1i!Z5dvJD1knd_k;-usf|KAB606@R}n`wVprbsRVEh@%2IRAl4A>`MX! -z-3>@Gx~j3#iO$oeD(WJXJ8lf;Vcw@qXho;c5he;5TT7V|yW`8F&XxNK15XR&1|)H# -z4^WKoXfDE6vFwjN;L4oss23~r)9{F%ib!iHi^fmAKbW0vy#!K>KzoJ*XF3w5atoJW -zLdi(hD_zOcXsNyP5;gQkM1Un;Ggcy;5*q@kp)+65l!-eG_t8jT=C_(SP%2S)b0_Yo -z^`g7*aj;RO1w$(W|Q%F6+2%0q!2d)6Vsh3nCf}Zz_ -z{j*1tf2Zma-yWeoslj^5`hiHXud!IhihAOP(EAcBOy~a-gbMaJP%zD7^e=rbW%vIg -z0X8lj37Nr06-EmgMd71%UDMkC*EyKPCU5&k=FKskl#w;+OYtHyTLRsfY`@6`P7*pYlp!-Nm#=0j_EJlmZ-@KK`Od{w-7)USw->}bx0DQh(-Mu=` -zAWy?)jdxbhof%GmGDav8S`#szaHF}kVQ4@6yRjnY|Er&2acMGT)Oaw=tYTr?^r#lf -z|Ju_|aQxn*O&zpyIX)0W0iAS0^|jZ|VcFFfCDd*V?jHztjtm!~W%1sZT8VX_&m%Gd -zoo02EWC%8t@s;Rb;1yzCQdlJ>+6e71BV?&l>6F;XKb!U4GQYK|+K2}X65FkQ -z;rC)A!56OGYR6`#=_b8NYZ32ERw-JZLpB%URKJk+A62I{+X>d%{BXzbF^Ey&Ee*IE -z!Zs4`3cEol&z*R1w}G+J2^5QcJ`zI+%knPmE)^6(5sSVOGmM2)pd(zM@o#`PF3XH? -zu#Pd%c+V5ZwQg;(^v|noYk93jqr>^dc)4eK(^CQ>MT6b-(mOH4-G2%8QQ*$2& -zDN_HOa#7WbU#6SIb3ebHosda}9a0vqlyXmJB;St^_}jT^-g9%&K(5r4k9K{!VXux! -zn$i^3CVmdXY8X@f{6iK)-6|F+dFKBrQHO6LfBmN94C}677X*|@pVS4gq(8?erDVTz -zq)cWM_YfOM_FoFUC#94EV6EB$@pp#oiRGrzNi)SVzW$t`g+~z^@ji`qho>u3;ZRNh -ziz||-^yg)9k#wfL2gPh}X!R9aMZL!}xsMkAn9h%uAH#oDN+!tUPJhn_ZcQkVHB=?H -zwC4l8d%wnd(vZr%c^$$jRkm0eUt+)A{aGp8Xe^-UW-zFv35)bjxbM@q>YqI|w!&><&I)rkb8g#XD -zW->0dF=1XthF!?+z8PwM|6jgTgIKC%$~azB35#el?)NaNSer4Mz<^6AF2|l4l*LEY -zA;dSIJolRJx%NXvO$Z^s|GdiqQJBb1?G+3S_A7rF6aE9_FZ -z7lVQHt^rKJ&IIB*9B??cN^yV33X8t}gS)()i6>aaj(D=j&{w58HCcF+gPs_OVvV{I -za7=W;e>D|&d*4hxJ$Dj66KPY4_!9gTJg#^6hG(e4V=57_c$9&lN17q-0P2 -zdw2gcI8FaU-BJ&~d=%zf?bl0R5|iO3kb$JeIg%petBA7WXGomL1b!ZiQN}P`1mA|%Q&@gkqr-;+p#!+&8n{sNm4g5@IIJNbPp5RbG4}d -zI8;*)StqWNKnqbX?1x|Hp(h(E8ie4Jp38so2bqRzjroT-cX=lg{zYmtE3L{9gbhln -zuH`&8a_Uk%yl=-9ji`=b@Oa7-K`@k+B}&C&0};Nl8*9}#n@Dc&WRp)A;j~W67K^+> -z2niL7yckur3kOo$0V{edX72;YYZh_vx|Ybjc6kX2^Ua(0*mJ -z>6&d7@1JI6;NM~m{mPlA_(1_Lf%M=y?(R1<-qg6jK$h9o_T<-@dLr=)`ym^ju^?1B -z5O)J>dlj2S5&xRo1De5h{nlAcseLMqPHABA^&(0-`%jei&*-q~uECmU?#r@X5X3lP -z4|#m(#a`c7(kJBZ$+E3`ka|r1m8q1__4j#dTqSXkZ020XmGet1+A_P3#QR) -zvfeU6i56 -zG2I_+6Ow~G?x<@Gnc=iLtPabPeX*0Fe<|zfP#<=|5v`e$jKq}9!RxfXTj)2f>b=Dy -zP%#5_f?(xYEfv1|(K>Gz=iH-Lq3FqT?EPag>Z(@$^s_->u4bGHXl?EK<-{{=-PT2rV+Di!xOdmMQbTF0%) -zrw;w~-P``XU|@OJ;xslL$w#G>t>+#bAR>1JH7wJcQ7@KH*wr7vR;M%Jw<*VSZ0@Dm -zhk5aM+VW6A#z4_UDN0c^l)H1_LcdsfpJ8&T!PoJy)tF%JVOXG@Z?mVNnx3m{CE@-G -z5?S4d=EntXYn=Vi4S(9nh&r3X{j&E5u=+sI -zPsetj3rt8S>8-CVy93ylmQR)7@;K)87DE3aaNAn$bnzZb!38xLBEm$qgN|)WcY&N9 -zP%aqOxAeq+4m2L%>$Q>DTK+KLhLX*x0bn5!PnK>x$S+JfmAgp{Wf%oLGc6@)I`7D+c -z4d11~*7b+su%VAM8I!3-7vZ$T0B@XxuWMSL-GEv=kyql%PZp>=KW9BCP3)C(mwYLH -z_5rzbjbJ==Y|E?&B^osf&SXO4AV59)Ir}r@A?hrK`3Xgl%Ii&9$IbcXc8T8bTodfyFEd^uVWxd%LMIOd7Rjw;59ExHhzwu1N-GLZJFac`H8ay07U -zpJD~#E6;nx(nk(Q8$|^Kj-jX<{oPry5r`S4^7SZ1N>roXpG^L0Nvc?%JnitN<6e}o -zsCE3<1pM!r!uODrN!EGSnyPT+zqC>3gd3v?;_o`TWpcHC!}t~nOh2S%xQ3Qlb)#&p -zW9acYzC%#G-#_F9nh_5Pr)gMPxl#@Vz5dZ_YFP? -z1LWtCw3D(w6SGfu7!YBlzbmkYy!ph%ZWB?(!1w~o)Fl{QuS3&Gy85yws9hHdjZhb$ -z=zHBrSH7q9PE3$BzXJCjl*VJ2-`q-<;1A#+`!ndM)g`dqu%rmJSV=EaG`eX@M#lq -zlDPY!&cA~b+sj8?Jh_c;i?`Eyg17vI%V^3dI*WpusPNj@Lp`6NCWyB7w{V|lhT;JE -z4qD0_e%VlBO2c%|R!q+3pP%7Om52hj%DckIuH-)MJ+?`z7y4cPfFOV~DU(6od(qr) -z%Qnj_D28wRF4?uv06e74na4~h0TFj%x2u@aW;p3ILC1Hjy7G-cR{u|QX5`p#wUn1( -zX@GQzm#s&uoiqqgFJ~Ik&iwSzEL&6MB|rX`t=RRMzbvtVsMM6;Iep>Bj>6>CnCoHQor9*`F4}fu_BEL1?uK_wBWc&WS7}n>FBkrAD6;k(t0P` -za3d?qpY{E$GekeSRs@Jj@uBW`b| -zn$EH%`}X=GYV9NOehTqj)Ct%~>n1|p -zd%e(3fpk{RNKG4JJgIRu;99ZS#oB2i1vKyd#Y?`c0}vqa -z_urlJNBtXh`SyxpmX%wQLF-sp3C8><-e1S}`t&W0%J|1Rdj)`M#VB8#&UL>{6aA|Q -z9V;!nlerU?^VsHO9`{_c>pDnA-K7hU`s3a9qJJ-#VLnHCBhTEn7p%xSi1Ou@c(nzZ -z!_Q$TBnp;9K(Lmj!(PXTYP${dDH{2#&RLI5KIxaqN@$)II -zNU7_W^1o>W@L^Cekm7pADwO$b7V8JPr9rVV+(|>m`FYBn%FGQ#5ggIV53^G}oxk|n -zH@YUQZivYPgT=q^{-9zpfP@PvB;t|in}*YFJ`{}Xe@nsQ1di@UL1)h}8z%~!p>pt` -z#}o`Afrgepaje4Rm4k*+7@oOfCr1M{NH&g2o3<{LLZjw3&f)9B8269lMXHnbi#x -z40EVGs2T9p8ZIHHQ61T+CdFrUm}yxwuecVB&zZq#*&gKr5hLs5d!Zv-1+pkn8xk9> -z+12PBJ|(WRbW~sai%WlmD;TYm77e|SwvsA2U+!)=YY<5<0G6)}xw54Fz7Soo`NvFS -z*0A3|mcSHt5&(k%;sy#dk_x?qfUG>_aEcF6`GP+Ue}Jp=Tb3H(bV^;fzk&Su$ItgO -zp>B;tFrMe8YgHkJ2xdiAG#)3bS_a?d-5vnre{M6{kB&3f)arsk2z*C%Bm8=N|?shoA_<5-<;9l}Q2!z+~%2I4M* -zCU)aU-ZymaSEox(_5+ZoTrxH~i0J~wTTwbRe~n$ktYEoEtqc_SN39(H2}_H+_a&m$ -zx;(9NCrWxKE;pi87eVazVsixG?~++F9z^=9VsmTgna{U4VieSBydBd}Zz(NwweR-3 -zlJaW}4n9YBox-2!Ykb3b&cEpvgq2GF5E0?s-dlkFYU5APhg5V~`>fU!_{Gey%Fjkp -zzMK~Lo;R1XD|p46Pyc{EruM_X$r3kEZUrARKh2N+v63us9Lya)MSa_g(svma(&!?Y -zIy_LFYm}J=*(Z__nzr%YmS}P~;s^6zBs6gX&o%tx^8dah_^74+kClYQ#BsN5!G7|J -z39c#D_FMlu3}5v$Dq~pWW8u8K(Z-XPkV#z&Hm^h>{;?QM;FM9{2g(BVoGif}p{XBK -zjTJmlyX-+b@#RpW9n>{Gc2hVCj-%5R>5Bc;ST+m_Q6{1 -z|5PfW?{c;i1bPmK;^@MbU!`Kd6rhT&>314FhE|fp@up|y4u7lrm_5kdF?u-YpA=KN -z!esFFhcb|ks6SXAK -zXve7FHV493LTZC+B#D(16ekXwn($PGJ?sp6Wk^R~xiYa%PsWZ^j-eBg2cA%xcYI}= -ztr$1pQjL9y(E7eX_;2q6_un^=e#=wtT;!Fzla@8NgF>FxE3y7;Si=um?;hmiFO(Jn -z&2}MRn>@6^?-nUBOTKdGojW`Jrkr$d7d0q|X1QkcA%5C;qEtw -zM5PTCF_?#-;%7XQi)2HRDvPuG2?LX~Jm{wQ1u7z`$De0xGLTBb7knj52G+0`VieQW -zQoPRcD`S2mSuIGRP5c)+^*!Ccjwu6|eV)#nrSFi9#=_gv%8y`opunACw!B0<1F9!# -zCa4jsxm+s+$*M1xOV!#~bYf#EzlzPtcXRdrnGc04-R;x9wW$v@EPCmc*|Of1dJzIT -zFuU`F5^7FUwvN7ir!JFv?zSRG#P82Oi;Z-@it_n;2O{;B+&^iF)42&Xy#l>5! -zsnq;KJ>gM7D-$Y^#^HbrT~=po8`AwgzWRh=Kc0pUFH&B&j4RvRp(z4@jW~e&hdck+ -z@H!YVXjy_qtM@F-`OBUY;Qa$fP=65I8iH$_v)A6oW>Ip&M+mqg?=)esUzW789BjH& -zw(?~hxD7cng6kN}P~F2?g!oCxEZODp#V&;TW&MY8(3!FO(RK^#+A)q{z>`L#Wn&=j -z8e|~pJUN(A7F1$FVI^`MT3W$bvNapi<3O?;pM;g&=cfmHG8f}x%AZh@`0t8A1)Io2 -zP`a5_(o4bovfhz2RQf+w^fv^lYA5Hungn6TuUxvUpDC4rW5@|Kf4jFhZBJ@~nf%kU -zIqx8!JvN3~o|*WgnW?n1-*-@=`0^ -z@c^078>}b^<3vL(nitamS(SfK%jIswoeGR41VA(Kecg#+tQA%WRm8!VIQ{zmTh#`1 -zuK3m|s81Js-0!?=s<@{r)q<+?0sfgcfB;vF12v;+IC -zjQPuW8kGD8E_8HmLR6Yc+suXZ>dd2t{dJLB4LOP=p|NjYZ0f6?Z3>E^dMIYVbz|c7 -z!7v$NX6}+io8NxPYK+7rG9%ZPB=yS$lkRLnj=(GF%kl)7FTX1>J5e&t%@;)XS~WYrQ(00+MU0%9~E$fQDR|LxmL3ir3FjQGy?GN|eD1GI%sWWi9If&T^N -zG_81O0sP&EKk;ocvbI8AOk)5p5Vcy|e3yb5q(j&H$S|V^@HFf&J1fjh1ab -zF))?yH;+ftN~&4_#hff-mJGx7<5Asvnp}wHkzo4UBK;m7HXY0oDJOgs43_BUr26X@ -zU#+G?7f4K!DYQ`~Mdc`BIo!QI950@XJOC;o#Uu#;3CVulRuCMG-BUV6N7Yo?9DIP- -zC?klQ(eetF>;Ausi(MWEpyH$O62aMN$d3{oJ=bZNu21ltbt`)lCg^uh -zCmAS77Gm9`F=ikxneT+(E?^XYCCp7>i?}r9uIdL)1hD3@x2J>XZwYjT!eUOkZPNxHbd;VV`9xLbP;@0I6~g` -z;-2*c9`1P$~c&=>*07wC#F -zpAu8lu=>NnnK>&uR$LiXcBUA%4vg$a9F5<1KGP@yP|+B}x_)DZ9jylvu|Gjr%s(VK -z%P1d4Yr}RW(+t-r0J=^#NFf~8l%@BLZhp$9 -zG6t!%fHWemhhXzRjwgF&H%vd(RhjI46ubp*F-#G~bu6j%)7M5({Em#Y?M|k&QmfGP*0aVaSpmVk&D#%OL69cpD -z^@jV+gb5(F1su?IqtvO3$kso$ZCK0UDcS_Ah^SeYkUzb46wF_#Abc`|c#`YEES2K4 -zM3F<&St={`wRGl$rKVB{9X2re2O%4zwpF5`1Viu1kyHUd1HhBc!ts*7Z)lUj&I=V$ -zH;!+G6huBO0x+roowu5)8DMd(+LSGkrT5rzF}227BD#1X$!;_*hM#PQzZwMzL()Jf -z6KGfCa&KZ=#c6qhH!%Hv`C@x72@!a7ZKP+|k{Bw7PCQU;}Mb?GI -zBA)LGSU>HVHbk2A-FIr(qJziwlWm&^Y`M~`bce1YVCbz)a0mSU7+DlI@OiP*Eit%f -zTF0ZOp(p%s%e%1}`@IKg*mMCMlMydFjBTb>`Y^qrz4_Xn?ULVtE_=Qi4gWgJiHM9s6E>Dcrk>W6^f^Z-TIX -zef8pZ8mebXtst+ouv@~5PIs7kcT(!Oqs&+fJ&_xXw6@n_XmyTe?2%HDyYZu?TdU3c}{PLZKoj)fw@&zY@-9} -ziHRy8v?EeebwV1uj1EJz53111c9q*W9xZ{uK{~60Pf~12rZgh$6W(WuA^$;bCo&V; -zLm3EdGwVwaD_~a6>v#%*7czcME&|?fp`P_JR@sG7V;b{p-As9gbp|h=Xvf_#+6r*j -z&EO8$3mVx9U;c=;I@#VkZGuOP2rp=Qp162fHkNb?B><0MJapR!&71)7((OJ%XDdX8A0V%i%?vtz0AL -z(hkwN0g%!O>{JW<*u5&IE=+gP;EU%`Q6_6|*F+j<*1l -z!=2=-Lm0Czu&{a*dZ+@8AnJ -ztxQJUIWZJllv^&9nw8;~+rw<4SZV6jv|FdV{{cxWJ;x-sJw*H!p2KXb6 -zLPuKEAS+y4{a6l4jT~y|K5+Q4j4z149nqA(XY*Vi0uG?bHRIDL5`UCIjn1=2i;PkC -zkhpbu)Gy3LnJ|J+*3cMsDQ9y)SdU99V~o^@z>T$yifiiFBoV@`lQ&&~{o#dkvrh|w -zM!X5MU#P+BV!QuyYn&5|p|;3inS2vnqAfv=bw~U=uIK0*A35BZNm~RwFD4f}y3>K$ -zBB`bv7K;eN)$s8RAgvF~aFN?Mc*dIm6WO2h$A|5UUFi_V+eA-xKR*$F&Uo%z{M7!k -z(|?>5<69!m^pCZ~$}OJzyjhNy4j*`#@XBt31oI(t9u)}+Q1Updds9-3amj$*+O{`l -zG{*Ph$W7v>ASChIz%@1ZeTP@`fF1^RwNBtd=DCZ7kED_wuoSBlW(d%1iX!DGijhRG -z?}1Q}XKdUr9m{RP6n1>e033d)@st&K9N=Ehc)RF?g&%^!zXZZzmyJu}RQqR}_|Lk` -zj_-Psm?C?NpX4a!Z%ofTv7lMxBVLm`d1P(jUmtTE^T+xHH)C&QPY!C>Sr&TY-yFUT -ze75Qw6gUJPiKqJlpMWF%qGxE_G~ie0wlQKr=kx0U2haMfUPN|38~MTCVzjNL5ga+~ -zC{WgL`ITTK?(Uv2LRwl}aT^pLv1{9dg75olNE_}G4CCDJ+`HB=)Bq%}N=iy*n)@59 -zEMS`fck?Qc31y&QoiV3!Vya%2zeErfmKKW(K}P@(K)K-5wC5-ifI!wZR8?(vb*p0v -zmWc4$1Tu)0UOIX{SIhu7i6PVSon=ay&AN>n=MRd}$ymIVp!Y{|d#thXAUtCv=EYZ=|=MswkF#B9T#0A=;mR%1QtDxZA?*^o{CMLcD -zKR)kAk->WLP{ibIJDkSXVa#(Ajl2lliLWpO^XcW#20C&d;~~)M4g~O&j*;3>&tHiG -zv~$fU4op)He7~g2qapum}ALiTgW$kk0 -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 -zPi=?;o)YtDN>pOVUL?+Nw+rUx;XPP-BxJ2 -z7Fa%jUtt>1Fzkn$9N0Q>iETb(VbJ>?Ro+hQh~-LN9yE3R47ynl_VxmZ&uh8_xw8rbQ1Ri7GJRf+OvUVbK~e8q;8RNss(QWkng6urQzFPvEj4nO=v4^z7Uc$lp9Ne+bSeck)aggnve;*fDml=1F$djRJEW5OV9tH`7gF -zKHC@xWJm$1kf}4%_q$+6^@)6A-}IsL&szP=LYI!)@Z$OJ?5TjB3*bo#E0tjx($&HzFd -zz)ODD?DYV5v+3<(IUFAIPF6q=9LW+;2=_RtmHVHam>0x4sd5SKu?!`%A8jklelf-V -z-CX=UA3&(Z=>XQ-KslOnr=8G4P+O(`_|e4dF2Zj$pY2Zx=ts(l$OX-|AD;J8m)gM|nF;vEC>d8J%9)s*U?n}CH`FtkZGtVuMVT}(fW -zVRlT#av%Qcm7FN+Uc|y@kWUDeQ8Ca}=@1=0*&UmmF+Oz~FXhw{AGPL1VP{yFl7KNd -zkWKrIFug&9Hxem!kX-GY_vp>c^Ot<9a<{Ob7kvT?m_w|Zw3Al_84!Tg(9V(dWu;r+0~?U -zCOT$+r{!G!g~+=rRPa(C@B@I;n7QaHzG%4D@xV#Q9=M6xB?%04PyO(ZnQkfOBDMSl@}VT|M@;FSEIQW-L^K} -zdPYx#IMsQAGH@IQLWEY69gkt(QmmV^rS0zt;D0V0ThY` -z|28sM`wFc$grFh2q|(}wMPUZ&qpvrTQ^A0z -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 -zw62^z8Q> -zLtZJn$I6vVX3lv8xg2zcyHM4isKIQV8sPsRW}?4tMDiN$s6jFakNtAL#Of617CfJH -z<)y|gKQqLOdzrdBp#{C~GaSd^vyoB}oJclY%WpoBf#!#(`B+uVF+Ho2&vvg7QQz)% -z*vD~k2Tw#u01o}c5K`~^FfoU?COTB?>OJ#5W*Lg5s^{-*Q-4pLKMQq|_Ivs}=KJ$= -zucbyv?9xj8z_a@ff@>NjD}(CXl+37F#{3i1ECF6$y#o{dxP3$;;|`nSZX964Q6H)Q@PdF#91D%Jh1^K3u+6$V1(D8iRTiDtNiT%eOtz8)JeUF+n -zTPumoe~E@)1=Q~Hkogys*V=~X8LxIUt|chUH+sWGg1k}Zof9?ZvkH^4o=>{-`lLXX -z1>!aY81H7hcg8*lf_tOLdZROLu*w8*<;{20*!J}dxl|wHJ1rYui%{k6+as -zJh#4@s1=n&5=1t3#&mXX#uwNYw4cmNKTQdK{3Y7zO~(I7i57UWi|^u3M8(Ahhtq7c -z<$O6!&${va@@f|-{mLvAMJCrt{qRg}?XV=c{|2$DH374KUje$@3o?DELw6?K86qz# -zg2(<#-d)$p12Qgysp=(!Me5=Wxj90vZK^^=o8vI(uGX<=ZbRSNGU>>t=QC>!&Jj~U -z_g>U9nz;-&i^k^BK(OJ@9s#SINZ=CYNkz~5- -z{?@XU0GW`Y@6$exOB@2Z(@suJ??-D4IQ>3$WPo(0-C~kK%8;xG6BUk>yGh$otIWch -z=k^JEP6Yn0u#h-duRjx$)9HEzXHlLa4*;^=}Y -zKJ+qvLU+0GUC_?^AP;;4us9W|@+(vC#H}dac8_cR$DwAk5Hxp|H_)ag;I@+&M@*WU -z@}{=&_EGO`UWn>zyLu$s4Hd6riB>OawN=E!8dmL(2z5{nnUYcLU?Cgk$yd1l7;l$0 -zJR6lSIT!gKS_oKOhPyuYEV3nRJb2oJriEkt^y*DK)v5j?KH(yHj^sMv^O{ztR-TQo -zm4A1I6eJLTEnVm($qM55(=3kLcBOhRe)-DYCksB}o$F}k{Z{_&B_ezjPQ-@XPs(v4 -zO@n(>lCq)i)zOVV2@L##v2AE3E1tf4qxZtgl(_^C&z6FkI&afT*K#~ThhcY{+1l+< -z(Tbf62jR`yjHKou#kT7yB9mW2f6U00`!j@(Kl37n_}V+R)WD!0*b{L2PR5ucdykjv -z41uOoUAyW4xce-8jfexvGHfl%0;f^cUNVWk;VzEEu^cnfFH_Q#xY8&|(iYG1+T8L6%md=^77db66l -z$UATbS%Ok{70J)j@Js26WZj5cbc-0|sr|cqklhKA7|;3_(-O87#JgSw%f-)^yS-A- -zTS$@8YvRkcfNhRQJVWuz@mZnNs;Xk<41@>-L}!0V2UXM{a@|UBJ=Ob-3umC)_Z>NE -z=eLtjo%zg#-(E|nI%7FUa(6w=Ong~$N=T?qSwaZpIsjaVqu7?LLD@2qI{p<|q%9iH -zdc0S>Y3~_%JCPVY{B4P+3=#Un{A2XFXc^}TEGZKrZkHB%f6IL~E?$LZVq6w1bgsTrl=Z581l2VIO>J^qJ9|?-k;J8YDfj2?~^D@^^u8GNx^VwtMz7kZsqam;} -zR+nGH0Q%@A9}u(Q=A7jo39bB({`TjiI{-MmiXc%6YdXQMvI6H?Ux7%E!+TUiu^*$y -zdx98&Fy$o;!ut#iK1=YT`X46Gl^~V$KieL=rATEI4)Up1u&6Qp*NN_*@$d9rSVc@Y -z$?^}HYHw>XZ^-P^V7`z6uik>{Rz(Q%QE -ze)b*a%l{qf`~@!JSM>K-Dj2;1VJB7UFqtfMcdWZvkzID!Jcf1vcmHc+6eOP(8~oC% -zT?MpJD8J=Qa%B~Iba(?}&d9u0%Y_a-yS6^Ad!qOWk#W|s!1Zgl;5;nw@o8V}4D#q;)EPozvwZNy6B_-n0O?d>ZS -zvo;vDQabqAizk)mGwq0ncXhu&MRpN1aVLKso1X$J_?pWZb@-4+cK86j;J~Y>7q(Bj_7ITH%n;_G7@3@KbjuF577D@Q!l+DXXUauYZ`76un0~P4!9w74rZ0vQ5{WPhl -zvpH%xHa6etE$0A%nFHoso9r@(>j+%!EqF)3#K%Qltw%#Trg5l;oK*aiyI|^5Uw42F -z)s5it4o~KT0ZA~WPq}pSo(+e&-tYMf%JC>Tm+LjiL6-OJMdyE^-ip?7COao#Pj7$9 -zkX@}60}%AKlMt1ba$b0ijJgQbR}Ey)RNk+ftL!9u*n>52#dqe#=B3+BsfwG&Ar&q8 -z7X~mi!+ROJcn9#l+DY!efhnJ@#T52zcG*eRmjBvX5ltP=e{6M}uRi%T>f{v(Zh{q6 -zpzu)5g(4&48R{8-;RBMT`*}GIsSN!;=m8gqHkG2jt(IQN>j-7`td}J{&2-)Tk8af8 -zXND6F>@1V9I2W~VxuBmM4z2lx*wJ8O)O8S@_rjN(xlQ-8665RB$z%{c?E&u9@!31I -zjf&zrgG5S-tjDfjfDc)A48V=cVM$zCP*MZQFfm!Qd+(VUj4`!m>hN`%8Jaw(X*Fx! -zdynz40m^IZybh4@fOAtp0#xojeAfU6m$$F!&o&qj~y&=KiETVM~R&8at>S#>ed4wW$=p -z#j}z&|8-^%@u2&w&Gc~QZu)t>zFq1z_Wc;Fdr+r7;~b`Q5rv1k8sB;i(;*(W>~b!8 -zv%44!Ed-PRKem51FY005kQ?CEiQIA>czycS)OT{_Z`B3-`(g5_PY#7-Dq{z3Sa;`O -zf0JQ1Y1+W9_E!V?jnOwOCs7!}?q4pQ -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 -zLA&qxGC*k1g6)F*Ojy7cl@pr1zUX3Q32tWb -zn=8nBdhfFXcwo+wGTe!Ra;Z-$M(ajfIt@fd$1u7!vu(ZzSxTByag&n}AYyXrcQ4lc -zsLmAtph`YPk@P_(3G+ETH4uZ_Zs2ag(Igz2_%+VE>Z}i;CR(JIocQB=xU?SD?!~E= -zA4%zx)db6Lx@2n16%=m&E-;x?%N>iBnqa#BYj^}3#4*x&0-_k!tL{u`l3`z7#hv9^ -zZO!+FX(>;*Y+H|>)cOMe-AIErrfq#Xmy5O8;mg-*UspoWK8f<12YD5*7b@=*N6lljE&G+hA8kH|ddOX<+Mj;Kt(329gYEa*xQ8kf6_vDaUpFI7Tyde -z@--tS-pi*kypUv*S9%;GUp;C)QLc`+3fHCksY(;R1x&NF2^~nWm#kPutB$`2d5X&O -z0_3R0!TfzuAsR%LWMTQnNT(@a=0C@o_<0CyOUW4Bv=_S42@vJJHqeBMhGyTqQd7t) -zxQI=5=1$RMPb{v%!)%1jRU^m^+WsVKsx)W2x`*P!Ne}nKp(QNkgj*P7)9*1M-#y4m -z5Rg3kGNKq^B~!R~w^+I6e6tkJDUEctktH*(OD}q{>Mn82l-iug=-cALxXe4g)B^8n -zD&uU+e>VPS3Sq2etbltRQ($jQDP3S8c8jtA`7T>f4XLTo=L(anZM}n0<6eg3Z|UK( -z!`*2GY;01gxuLdpl9LnEc$!O|7ME7=zPyg0)8|~Fs!}A>HhjbHBd9-G+48JWtn2a-1qQ$&PXCLzqP?HNb&X%8 -zTV*%sCe$tbj>ZFHb@O=n -ze~9FDWukMBDpXD~M`M@%%#RHmOn@RwK}IJ+#u?Dm51xu@_*9$S^`|^=-<0Nx0kyL< -z_Qzwg0b!oJZ@2WkZq*j5gv~iQrUyB4r7cC0{(yvWB+w2g>3sbrRy%_2#ckf9&^#d~ -z+ay7vG;10CW-Y1G`?Kutry?5h=i!W=b< -z3iG@?4By5X@}F==?n;kzgMil@E|TsQMk~lGZ;8 -z7d`46h%thWE2-apGB3;)qFM>Nsp0a560mYW -zL4^@$qv+j|mo@3DHE0z5+qA};lVTimfTjVI_xrkU80M5QMk!azZ~nI{)H^=YnLkq~ -zZ>I2K#S0dNZLj?|&@mPNQu>1PnXrLPFSWxvJCP`YwaLI=|8$?SRdNX=3_L`?*^o87 -z82=NR{~L=jH?_iVt6wFyD5q!GA_YtNOGF2(=utXlY2&i~PbRbF`t(Z0k>vO!s{gLj -z%Q?o!oCAP2EntD8gw~&1y+y=;;Hi<2$8(+Cvm@ri<{_my_|i!YPipiUp=G%KNxG0{ -z>|BIfTnc52{m3I=1Wac&W6W;n%+Q#uE+4vHA>YU`SonIohPoTRR0F1Eop)QN{ZUxi -zs9_ImHaIx$Pnf95o9JG&uSMo5EMPnM;k)wzgE)jZ@H%wW{ZbGiiGDeToF`8d8n{>h -z^bmIEHSAs_%8NPBlR{YcP9r4XdGOWiSGR5?}@WCuaQCh`18vQ4Q=kPSP^JB -z2j>1!D_ugjGk~yVBqW;38 -z=%H#?M^F-40$4_@pJ8*Axs*g*=V+~n;sX##^=C4Q#y0i$#dw@xQ2q$M@$!94Y+fiE -zf5LKd4ry4RiZAMYTXOsxYpGCP3JA-8xS62PNB6w3&R)qqa<;6GN^v!Kk0^b2wMLQs -zBUc+M@&!egg{zP!0V`4{`P|F+Ta1pn5MPTk<*PwNXn#C(f@ck&C(bE55d<7NnHcrj -z;3SsOGrhN|10xrzi2Y-${Md^+RBQ?K;PIKh1^~Q|Hb)`FbZ~r3d)t}gEvx_k1G6YZ?K9qYvocOAleAF;78U+2qNOO%$bv??7L8Hz;GdS&Gv0i+?Usr-=dod@ -zILG6c6`zh?eU+-h?B{yT_=dR=GDvvuw}BM -z-Spv?V(Hr0Fof7CLJG9z?qon -zOzAe`AwMzfeUcig-Xlwc!ijxh3yUoX_E?{ubgACkZmZ-)Z)@RXu=|4fuL3HVw|?wT -z=dep^V6}yD)%eeX?<6}PG~HO2!yba?5ybJ61s{WC;OEl_If?M>eqT43yQl)f-K#5u -zCPTe7)nJBkDXgusBUE@#sFx7KiNc7HJiV3$9Y&r4DwT*Z-~K$)JN+zriCH15;a8Fo$;QHN{a??HzHf(^iLOZLz -z=WKLttiIU8iJyfdX@9-i+>g`WfDo -z$){%Awu2v>E|lQ{O`alS+MnAJyuI>^pJwquG9C(*t>M&|H7-Lb{kj4Sifl|vh8-mr -z$w55KliaFPl?)&FAmd5ZE!N3&UWZxi26ueSdNY_YK -zWXsWkaZy%v2mWdbe>OH0kG%4s*mVFd119>^h{;W~&zH8%oYZxv^%;n~ut4Vp=oy@w -z5kYL{xTFv22OHOH5mq0~!%1qZQwgkpVm{xG2?{3VGCD;2y&|W8#rbI5vM9rU^09?4 -zo+wfsu-%U-FNpc1h)t~^4!(eWV7-u$8M0`9zA_WQL~fw*wpLd(ADFU+wqGv{twGbDEv=4iW!k_? -zJb9YeQK3#Rd83?RACq#Fc>X44hLFWybww2kWZ82gg&tB+h45Qd)u2G(cKhj+1k){C -zQ!1pra_7KoVamG+tse&;8{bc@1SN1D9>FEkre-js)>pM}l`@8q_8Hjl4w%lrhpd8j -ziLGquTVmk94B}QDpT$R3_ZX6u7E4Jc%aGzim_vSIG^(q~->J}!V_vy`;}t{bpwMM4v8#Z_ -zx=FecJW?o6Y;jXl^-mE?a7k>E!>d<;^Sqbig;zy4Ndo4tqKk8w1P>ZUznmspL7zjM -z>O{$}9s`?+1M>NZ{DtnLvE)oa*y~Ix;!%00dkfw%fbx$Sn;p;UcF&vzQ}0?b2jGv; -zP-ClVa%7NFo8srdMfL6~9MPC6;JiQi2?2yM^n|DamNjmYyCG>M@*xelQo0qR@B}@F -z^#Q9Zz4>q3Ll*g}xA5AXNTy@vLppzxm*P@tbl$BoiAtyvB*%Pf-xq3~STCj!nQisN -zhQ(niVk)&Tc?F@SYuf&sLXj`xVGFC{bG)vwkQc4bbCBQb@cEp`Pj0J7p6AoA=c|^! -zl@uZkyP|!${q---4-K^6OUopxdN(|2x|v)n#OHT4k8!=+0hl#l&}8$@Xb`*$t-}KI -zU+!(K+T*`ADkv`uITQYFJ_>IF%4s5D)yO4aj5~@#`nzu*i?MQ^IqzWK0kS+x$EdDq -zK)YHNKde$apR+_5bcV~9NK5_Ba(6ZiZ{6f`tABf`L=H-_Hg;{zW~;XM{!-0)tT=*> -z_N#+O4-QZt2__fibzt$)bZo||!f>8>T2e?^?;(LqFWf12T283;G1%@OT{5`XDjmnn -z!c}sfp7Xdw%Sj@L7tFtlTQ9YJ2`4&IyI@nrf(-7`Z95PkS)!wXxj`P1kiW`uYJLo# -zB*vG+ay*6}^QM58(*9;dppX`y7&rL9ax(gB?q$zw0ZCw)V8 -zZzGOJ6!YrH@G-!ZL0jxZ=?zhD7l2-$56xYc -zVQzEqJ#NwT-u_?51=m%O+u6u|$efE5o| -zW9+`qWuw83!>B=vt@C3rPR>th^I*T=gZQ!-%Pfcxt4X1sw`| -zcr_9`&*pUF3>BeI?c2)Ilzz(@cS%4&3Aopm(4+Yf-drf*e}%GF$;aQLM-hb$H)9zB$`N -z1Cc7cz08F_t`R@^0J`RJK_rBecrH#iK;-*L*yX7ZwZD^I9xP&w+-g`NBEQgFy5jL$ -z0IVM{A3Y^b`T401!<^27=-~|a!z)GQ%~*!^e~VnHF7VSh!u5dcZ~WWF_2%%KIbSKO -zF!^sE2jA`;VTlDby74Rww=^tX%+%~njE@*$-slK|nY{en?z*Ts#K_PDWM)H4eP%|a -zFmF-?lR}T^_=3govq*}FCzuvP%e{vM!GMHUX0WH;s6G&Bh7i2twS1KKA -zyUTCbTJKjd(9?Fx67rF|(eNUuILjY|ai1yKxak(I)^J^sv@NV1*m)f4GURnyQckBH|sZ}q0#_R4)nn|(c -zGZvgt+x@$wIA#wcj@G>?6I0$SDA1su%C|o)NFIdja1GrAT0Ct80oZCq0>Po6-`UQz -zX@$eW5D>As^8T=N7wdkle&P-A#%3n2&Bfo6Zj|P42|(t5q48oMERHn^fy6l* -z-f!e8UQa%b%BcY~0AQO7&iFwGwb~37NfuTV#NXQy$jWZ1Vp}BoeNT1(I1fM|f6uki -z{-Ow7Xr -z?~v1{1>0f#3qS;^T6zZWRwULjb#45BcT(&pBLoj=w1v!jRoFF80s0egg#mB7_}Hm5 -zMs%9+175{fKZod~oMX;WomGVuSRCQ~TCK~*ILl(2sLD#MbOB19jAu*sQZTFEZt=e- -zYsbHlLR$VYt7=-&Q8ehrwGPW-+hG-(M)y$4;t# -z*pDG3y62_BU(mO4bloY3&jagALI9&-u)YN2l4b`reQM7P27qM2ABdhg~;0#mLg@^zdH!xOdK=v)-? -zNFuE2Xz_<=e4!AJ*&lBr;IHTVUHD7xc{S1x`gubG5qq5Hi6J^xA4=?H)h? -z+Nz*@0azmdOX>^a=d-$T)oPk^NZHF|YKzzfXv!%TExK?cZlevhL!35j{fsQ*I&{yO -zc#ud8Be|11Ce=hI@pqq45ybBxpppA<=W6%tpT4+oK9-LoLiMm^XZLy0hq4>feo -z1A{dcR||_s1$e2e%&%#gs}!Qb>2j8l>R|}G9KLo5{*3EmCktP -z(c9+>Axa*hed9g%jWq3iS-(tQ-0O!Ixzxb?h1|X4vXm5-pFt>XZn2cbHXQPS%(ByO -zR%ri{%F3+UdmLbV1KR8W5O{3ZxT`$Ni&&-ID2?|YRzG_QZ~A@V`L6&{QoiyMr4!(- -z0M4PTx&r>Y+^C)nMW>3Wx2%fE^hZAes7a0;mK$NdvG?=ylo;QEj?Wo?biZHTdIR7G -zkWdQs`pm(jSmZ&m-HSeT>3y9tq(iA0Aqe{o4nQm!RcXbi`1V~(=q`Z=lj_a>C6&Kn -zQQ*S8sK?F@X3|AvY?vj_p$fbMJIPVP36@h_j^7Pqv|BoGjo6nyQkw+Wk9zHkANm0eAQ -zfg|}!SQf3Y%_j-B&2iJ;2gDi00kCjs%;?6KU=_L+&}CP#GGRIon^z-9*^ODdZUglF -z+sO-(w^!;T)v!E)^~m;syJ2+yS9vek938>}nR7pP6>_q3I1M5D@cL)K6OKcy=Wi(r -zeTf{dB)2#QkW7?K)nr;HW>FrS=>Yp>i}k$HR@M`imsj&W|FO`m=luir0&nP;-JR2g -zeL1*T0z+yjm9O@ngS>P&rtk8quQ{<(iLTxV*ZBzZ{(*pS4mR3qE3J{Wfuvk@i$fu# -zgoUNBvv#M=xI@?mZWdNfopbq2c=dl1q -z04wr2q^uzxpXj2qNkFthQ0me11&))G6<;qXQHaPmy;+eY6d$t6LfR=*h+I0Bea|i>P!`x9OTNWSN -z -zfky!|QjtO|cRy09gyc7qnQ;U;5ov~qRR3y+YgLHnGKx6FW$0dRGJhuyC9}7OCxTY9 -zbGJNWgrj1_=!HF)QnK<%)ZDNXqYdMp*3M#aQ^1yc9?&E-KT`osgemu6d*s1~$#|Y@ -z2)&jue9bmx82bV`)|lL4{V0(N%m7vXFtgJRRP(#%agM;ij{a=hDd5CTMcyDh8C`=Y -zZfUUgsg*9i+J$2`s-u>Li>zwseju{j;>QpRfTUF8R98LOAbfx72$BNi9kE=$m!XsE -z;@wKc!DIX8y~+Pm&30gW&+}h;PKoA=69lXEHU|pGb~1b5pL04C;m1;W -zrFSGpAbzBqv7FqIW -z8_z52+;6|W_kC8w@{_a|b4b_P8MY`(L)N8M{X{-y5KP6-v<71o+_#Iy&Ot8~xSi0- -zj+r2z?l%luk_bqIRlywi(Tk)ApU>=mD@Cr9QQBh61KmIeEiu$3!LQYh!}d#w6-=@Z -zJfnOO7ykVBXU9hl74Wuw&Z<(w%P};;~eELG5US!&T!?--f{ -z#IcRmMoUlv@T0BKGOBX}eRw@Y`@-II@ytM;2QY}X5q4_^;hp!s8bTS{qOq2G5F2*i -zSRqiqftI&^Vf;y&sl$Y}^f5Q^Ew4?|eRSA3A#M*S73)S9=>n%(1qo*%ANlTcCVG$8 -z!tmb?l@9DbL%casFGpWv-pIQ!)Nha_brdINc91fTmmKqUJ9octx~r1_J7+#WAF(ge -zB5DlBU+C$xPpv{OKHjzfOr2=KkMTscW^*MeLWH`7VL_vK)C+fDP`#G6FT9-Cl2VKR -z1Vf6E?`WNtCVLhPLP?xKWR?DGB!{(~AfI3XQhbrpOec|N_OZ^#@RSK1DF>lB&D~Ss|CR=so^gszhgQ$+ -zS~*TY)@EoBC4oxoZ&ji4F?=ieW_?UO-0f;B7-47qLQyf|xq@t$P6IFH45{1qcG-M2 -zF4Q-b^X%H-^!b<_QiP-U6gcA-AYcXDa`^`xmCS9!JBXgy>?l;txf&R7$^clMv9OsQ -z*-4DXH-mvh*Ctb+_mnqn)bK9`{Df(b77Eq-IExHg$Bm}BH=5E3V;}@DQ2#MuJXP_` -zUxpds$Xs7s_r56AljmmjB0rQzyeB<|;J`~hdREIjA1CGQf2KU6v_p7SYgL(3ZH9H{ -zIbGl+|6(jGbKLotM7ECqlqrI^T@aB&7vP6$ -zEuAb?wCGi&8nKbvRDY5nYB$;E(g;lbA5T{u5JmfSL6Gi{knV1zyQEV(rJJQ&UZe!1 -zrBh%L5s;7+q`SMMySu?}*yZ>Ay|XjV%v1Nd=iGBLuzo$^$WIGvum=7Y{(EnhyARxv -za}DN_cUTvALw=8cBDBeSYi*Jwp{vmpugcvw=Gl~bgl)d&B4~1UgM;>m*_2ZBAg71R -zaGXl<{y;&Gsn6&yOKYB6c!~%tmRm^BW7PddMWjH0F&pM&ytf;`c8}@^T-L%*a&>xHY#j -z!Tr<<)GRnPae!KN`UFG|-i{R*Cr -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 -z_CScZy -z3N?KYRmyZ0P*+o>U0WCB!L5cO-XMQ=6HMLX+R){Bp^#nNHUuB{807!-*@^cj=I -zYIlO(LRwWu6I}e~(&nvK=&E(7-}M!It*64yFyaC!yxCC?$)Y%=)O0NS5gxfhMjZtKv@GzNu_ -zyUvtuPhqyv*Alu4-9l;c!Dl`Fca1zNaTclFn&es4RRm)M$z15&Ki--k{iG)Whvdn_ -z$3glJk6&H_bx)V7)I^~Tc0@phLt@!bMZ|w4?U8+B;32#(45~0NUL32Zrmh-;D4N+W -zE26*MgM=mwp5#+~fG{N_Spx>#JR8#(7!YXau37+Xuw#2~G417h!@f6=(bgji|I&2j@$pr)TZ^M+$VgQTI1C&ouJY_?1qbdl&z?K*u6{vDi9CSrOj1?_G8Y -zbq7J?#&2`5P|fQn2MkY|e@eu=QNoOb)F@g5RQE1eY}eXQ;rx-!i;L8Fjv&Kb&P*ov -zR8<%*b0lx{|5Uk_f7ynrK)SY)>@$kU-%Eg^Wms*bD(pLZ@s~UF3d#^U9HS%?*(%B@ -z(?VZV;(3u8jxLOnXgP)u;nGrlb_^Z5IJ1iiLmuvhDxfdB(#fTbZ3nhZd(fX;V?va% -z!foFxx)S#C8+5<;z@wogE4I0g_!uIF@dH2j51sVw1ti(<87?@y#-tE)25oAWQz?yT -z2d2U@7tVLVd)I7QwX@7RBF%Dd*$+jM|5_WGW1ZH+TGI5~k+xh=Uok(6Y(xAbNq?oj -zG3Zy51|2zD|AbVojWaE(xp&A5eP0Y3B0jLQk=8l;!rb&u;yDmXi-HFn#-Gk&+=v}U -zv8PtMC1k9EZXFF6XE!`iP8;Huku^Ftc@QN5YH9`u$&2=gHM>nA~JrK|r&W(KzmMTI3#}cG=YHw!YU6oB5pvZJM()Sj*~W#z;;3Tedn|U87y++_Q$Fmj88- -z9XHB3G2l; -z6|DMSH;xbSD{rs->8yPc+5<{mS>y};CF|NS!E(CXVJ9u~d^qJ7L+pSygYSZ71ZmgS -z_eZtGNb;e9VI~5PGUcB+KBgH@Pbs__=n_2n-$UL^Kq+XO)@cCL5pl>SqBWSFU9E -zuF$s%vsuvM%!w1D(Q(7=ZhDIk1W#YFmG63YxJQ)mdHuxlry0>T>*1|gSUuX+#Lwgp -zZ(#OvWc|dEvi*vn$5DQW6bVXd5?;~*~v)5AMQ*0K}FrUwHq^}8Cl_dtt*a-zY$+@gP%}r9db#z)62Ni2E6?3n7mPk@ -zw3$g0Pol`Ey_QW;GE|YkH7#QsJKD`fbM<6e0d$lOon8=JWTw`+9EncGYMGkV7=y=k -za#DQ?oM8Q_-gEOTWv}kc-Yf9ih5kPFuIQBS8zq@mRPi~a?4-QGgqE^N=WVWIJ(~Xk -zCHSZu(~wqVa@9m8+A5!`pQlk;beVAEpEwiG=-rhAsN^2y+jpso9j>4#0IJc|ud!=kE4?N+&!JCqAon&q*#d!K}&hF>09@CnQZZrSID6Uy$Fgz!!4N5hm^pOZ1&Ynqx!$E6D>&P9yU$oE3=iv0}5fjmcH=ptMMj$kw{96X}nJ2xbCj5&$6BaFMUm+Kyb<2mNsZ -zQ%Fft)wwBSL_i_%gEH#@(z1q`d<)-Q#co`3CSM>Sx~v|aeW}yu7EI9hE6W1<#KyLq -z?`=iC>8@M|&cUhvF=+~S9A-ysQmz|S&oR$oIKVtr8sq$u{vtQGepMszs1e<%1tEm(Jk(dJpt#amA;_T+6o -zTnT-@RJb-0zd;-CzPdCQULOtp7uFSS03e2ZCXXHYX$+}DQ-im=Q#vB)mC;SoV3$iiIr4@mQmnR_(A|2^2Yg=W2f%Ee|*BwaD^w8n}=W-zv)D5G({vDR8q -zcLvaNO8>9cB5>Pr -z+`T1LGXQb8RjaupBr%0Y)1fhxf;|~O{7tJy(LvX?ok8prj9nrlp`q%RtlxUAm_EJK -zAi=pqIrERhc4&VcmU`ryYu7@M#AlT&%QP9BdG -zYX6GC&}OvdF9PcgUy9yv*VLEy(_8*sjf|4c##y8Ky63%RO8~j-#wvjsut|RK4^^1c -zBNH{sGZ+g_=cXu&kosPwQzh$!fi!_4aIHiVyw0teZLMANA$3$9)ozIR2tFxEbLp&% -zy}B&#lE)H`MNYeOTvUYb-1z7=;r$$z`&4lHUYZ?C5^W+j>}dYf^l=oD?+-Y5F^nZa -z1QkspoWQNQ&j02CEGvsIR^*TRA{O@j?Fxv@$TOj$sF1xL>pUqy7+@U&@iTuu2J%3? -z+W@oN5QUw`Z5GsTQ{4d^E#l;-r4&!>faPrb-7iVICn&GGxSK%g4qC8yVj4MMf07iG -zLmrd3&zOb^$a82u*_o^djpT-KN8++wIJ}Fc%llWX9xtHK#~hB=eO~YcwtqaZV)6#= -z`+A_Ck#6=%OC!6gThEe!_ENx!;3oieKgPgGDrm)RGt^>@hZy4rnl37eUQAq^^=bY? -zI|Gn*WfH93|9lT&&JxttioKpZp8nU_>a2sK=rVND=;~S^PAA5*dopHVy7UT>cG2 -zT!5BH8kOH=5*pf4!2oQVzcOg&M{%| -zo4?ph2fA(id`;e~XdO(aQ-sKhhZ_3=7awNz;+g6}pz+4=DDS^*f -z*5EkJ4{zZe=0P;jDUKvqtc}J@rS|T67`Q{~KXhy?FpdZ?A|O%uR -z^HzKQzOd7|GQeB)DtZJmc|)+2Dnd1k2X@IAk?Am*!PO`SY^mY6qOT4kn`ySiSfM-% -zf^+xK*23V1+@dtz={UrJ>)CMCH&|fH+wM1+0BHaiE4ws_rcx|B(m;jF^w@MTr*CE! -zysN?X4kTIFdeO(qCpSV(1y=I|Nr%|cU3b$oSnwV~IRpYXo#s2StJ1px=u6jzbVGsh -zi2RkLag`;7Yf7B|CU{OE_W+srW*!%_xzQdbijF82V|kM3CL5%^T1RoTP9TMRBiFI3 -zzUK4UuvpF1yyLBZ_xxKxMmBB$-$0#2O?0|WbI)2;zRGkNNOBSY91+8{F|*vbchVC& -zOIAET7aE2b6n+{u_S^yw1JtSndf(Ep??~JC`k{1YAVxMc4#J0seObZvh3Z3u^qX{> -z8LFcPHO84lJ0R%KjA0myuccp1DJ{X>hJqhv@dTjp+-D)!As|TYh%5gww6R$tH#Z^> -zoms%Fpa&>=sw;jw^)Sa>fwDM^MQAlWIByA5<>h^>@n54NoSI4MgH=x`iwfKzqw8l} -zew2*bxqoMiHiMp;e+`9+vxIKo-suI6q8N5k()@R5LLx#jHW?*7Qx`@J2dRV&5x%S_ -z9ucv(E&#MnUz_DyVvh>lWUWG*`Co7DMWwzjCBJSPY%AY<%m7^s^P~{%+2UMz0dn49`*5t1neOTYANP!3`oX#ha=o!Swtoyjt1AluOfc&u<=qpI}l3#>&Gq#y{DTP{TVBmfyH2Ljg@)73- -z)hT#xFYSFXYPP*B#+{QwvI@(cwlFQv;VYy$Sjk>|6nZ^ok2>g078fpDck_xqj -zKEbT0rwQ(k2EEybp>>e~#GyJKI4LnPn*IAhy& -z3)(a13?6jSy(*RIs9uxY@|nf`L|A89VLYP22}8j8z83Ut=iq#kM$q-YO?i>tVhsFS -z(4^*x$R{|-<85<6b?8kDX%qR>B=eX+`KHXPqrcV-|NYz}H(GmY0|3gT112EdY)Q;X -zIRf(TMvABXLWmttqFlgfcAE%aC0$a22n|@(`?>8_m)(fQNo#;}( -z-dF`YbtZgVK+m#PwC{+()AJf<7#O -zC@|qfGq#3r^0Oc%fa*KjREPFcWh#W1x;9a#*7Q80zST`T1U%v`V?~TTpWdS)PFn=- -zKqU^MsC9zQG@L0vXkPz<&tGpElkYl27Z}0|LyUFXg3$f1H5y5ZLlNS5@@+>j66n&@ -zg_Q|0&<+`Bw73KL5bNB<;cu#;77X7UTyf`}QrPmaMMDFH3JH@nio6xL?pL3JePAef -zHPO5(7!dTGU}FF%Y~StgBiV$m-W56mj{!QVrzA`=V(06hA&P7#(MaZ9LOl!YIW36 -zy(d$W|3X`OIPBwze#Zr^O+Qg5fqb2!KAH8WSYUpyZ{`8tqCE3VoWeXH2gJjnnZf++ -z!&2^8IAEUuusZ7nvhRnhMR5+FEiytO20eKuX=0}kC}#@p^Zx6^R&i!XsBq5o+T -z-lA}Q>2{Chl8g!Ac?XJRTAcF}PZx+DTL0prf_>XexO$ybxOB?ZLYzmwaQ~M&#G8iH -z2w+)&>+%uo6ee -z*6wr+W_`Hgy-IFre(sJhUjt+gpah^yg@o@rziaI(v7DmDX{4OiB-t4PGv3P|-wOL^ -z3AeBnmdPE%Tb~{Z=x@%$oYCpPle)NQr}iUpdUj`^RJejrKEL?{qbBQB=HCyC4O#Nu -z*5d2DRMtRu8DePB)keIIu0kV-Y)^#K$Yx$LL17`)&3LK~0JsEz2}Ykk<`@%QQe$9A -zi{97%38nXuT`V^H1{~~=V5N@AYt_?2;=-q%e5}cu4JC&Js~;ALSHjvUf-O7U))PBgQ)8M?c9PrtP3*3%2)>8Y|@jOs5hnUMR5$xQNp99^XR+ -ze7_?i4!kW|?8DbP$>npF6nBsW!ORv97x^rP;cl|V<`$ei(c|!7Klb$X-!Z_V4#OvV -zN6K3Wi=9PJQ}dC3F1Y)q623?1)7CD>p1-XRpwD -zYX&{wstXR#a49NfdGI#f+1ebt(g)PEr7`PJWki%I?~e6u@M8wN$*oDip=lO!9_z^f -zf~qtY{_QQFjfC=>aa7#Aa-#bCuk8dqWB9>3*XrBV8=(lV^0Tg9r8FNf?f@=5Ij5U{ -znL4n>iWe3~34+C9cl(W+128x} -zOggVYQXAW-82>~KO=!R2+K_q7qY)4o2Wnoenw8cJc3l{X+c}da%wl!0&jmc{_Apqt -z$t^ycbixvFesQyuWtZ^DGYS^9{_F*SPftrtv`{q->h=xZ*7&l}jF-^c3`Y7#koFRX -z=qATCF+a6_fQyhUWX8tPCzLe}3-c1x|0Mq=*GL13g##TCwyb^j&dR~QN24@pD4UI{ -zfO11DS}Bdg2a?JB+`r#l&PZK~_!_-qg?sF5al<3;XKjQOr3UM#W2A$;>Z`f#lt9c0 -zQx{lki+^v2@ou*qE>cu@SfA)F=wO9;*TE(0>iHw?U4_gW1@{D4TQ#Zj)TRHW&rl<) -z-`TkByi=+RQ8RL?XK5YQojJvdZTZuq_zz71$}(ZD5Vyj+0|m2ZA`3dKs4d*z0oyVJ -zaWYIWtv#3`<&I>?3bNJ7Q2d#6k*;L&@-tRah~1+el;Bf0aqk$5ga7fz^30a|*@fu9 -z_8C4PX8|B6_>O3)WDWgI8E -zq@Qq^oR!4UPe#9PWA4I4TXN>5TIYB*PYC1)???$amTe6PDjwKaruS`=Cj~Ngjy)>+vrmkq-}NCbnii_G{fAxBUO1q -z3X(M827AaurvqeT*)fsH-Stp%|0^B?%307Hxn|69FGYC(9U={qyWBW0R2S;{=eaSv -zND1lN>i&vzV@ykvKY -z(t!KQ_ql@;N-R%=6kw}M9i@96&7)tG@)G^)>=yyv6B{6s1U9iXe5TF2PvFz>y5#;S -z)n6G7-p@5S#@c_C%U;crq&?=FbG?#IV~WDh!g+j5_fmRJEtCff3hZs|y~#rKAyyDO -zXm+pkqeFZaCVDTdkV`$}X6!2}0AhiYj4HvX-6A`pQQX27%-bg0{3pvlWHill2sKGL -zveJ5EnsS({_1=o+f%qzwmno_uNc&!pDsFs$kqEM#{YFtB>`2Ag;^dkMX-7BLtjqc> -z8rV%%m^NL{R+{nb*`X4f+^o^qf>FOvzwECdS&5+Bl5NC7C>y*u$NS7Cl2{o&o;Hp9 -zv%K-{64}0L2Bt*MLIe_Ic-P7~i_~zIVw1&v5_qX!+bsI);+eB@FlN$);D5aqHs#Rc -z88gpeK`{4v@Z59(9Wn?Pk46R4+=WQ~GF^Mam)b7~ffGaiA<*wL|6mjNhbot-|153b -zu(FWVPY#OJL9GBs2^iMC+-{S*)tXtrLYxc>c2A2r56d;(DPySfu -z!F#`hNU7h=re1%3Zw$5mDg{;}^368x3&FPsJ%6EGoc8FcY|{O{x9Kqdv#cGJO+l{vTt2pl&BJy*xsH7QU%+;g|GkJ(*~m9ssrghMo+m}9 -zCUu_dcAqE{0jXhuW&14!}JA+ReWyPoKXFmbI`X{9RLb;;XxOUgkS?RBBm -zkgO<)mcZGycWxLi?=2B&g%ZDOJLFjYykfuoffZDC)XEVsKyZOC&!Pw;?@mGr- -z)7Ur2MU7BO1XAR{CK0woOz_0rE -z=4!1j-edT4k-TSW@?Kq1RiM~KH?S{{_J*>1Jsfu$i9skKb%Wnr8YfD=QE8g^aLbG^ -zD+(nAoT@|78EkCH%lca@S-umt5@9!bX@cL9fR-Lqc!512YqWGAn*ecQFB&|b9MG9B -zg&P|K`H~tNC;I{Ngc!e+c)BH}VnQQTdQP?(;639fRcsi~V9tPD7uY!XL{QuecnaM= -zS>f#HCtMnuarU4Z?|Q8AA$@@AQ|Me{g;L7yOmt487l@rve4**q;;Jn88G^6JMY67A -za|ng{^wie5O+#aSjNC$PLQ9k$xDvJ^SQsh)PVRU%7h*dZ@kIzkq-MSAyBjB}z -z6FC@yx3~T0?tN%ep=+ -z(Xrq_@eo7PR|`1hZ_OW%iX9_qAkm7QtbmxvW>M^3x=B9TTdLqtuWv*fEg!Ho{Qz+Y -zUXVBzmh<|4_~A-RIx~_2(aya}ZYl9}jw1UWrg`MRoBwfph|pCI>X0NRweJU^LJcPp -zA|5nn5~3Fy4BJC?{UnYY;u9&7ff?m5!9$g7#sdy`TdJJjKM;Li81!P;rciqn3O5ugR#rz -zXCxPKc(b{(^KX2HEE^$0s^WUi5F7?>bYo$&@zQA(u*|;CgLHMsz_u)r`q!A>%P-r1 -zQt?p_UHzBCdh?~{oaFW_iB-I$Vs`bXB4mDqc)~vc-@2Q=Cqp!xRpCixh-b{y`gS(fs%UjwE|}_brW= -z=cuIOwH3?sW5s+)hel`7heiQ*8zRb(Miy9D6`9o!a>;XlZ$+FT%iD{JvJLX#q90&b -z;S#|maG@Kw;jQUc5$ChP%1A}%;8 -zP5L#7BHB7f7De}7>%mH#7|p@HI!A<7z&?iPNw>eHx~9~VCF$uVCxv#|2wb04aOG^6 -zrU)yy$p$J%yo5-pB36`}p;SP+^(bJvF88FjObnA*EJvD!?$%uI2e#}un=A*kM=&#q -zKA_CyU%kVu>nK7R%uw80L;*^pz}YoyMW*~C)MVZ8U3ZU}b@?B|w&KG)0g-`qq4KY5 -zGeZY)>s9xxh$+bc6R0|O$``D-Qly3_iv5@r`L0^la-lc_h9qvd>n{)RLT_*%mpV~8 -zi4fGgf{RuzXIrO!6!l5^^y4UM@_-)NQS^K#s)miCgdO#t%#awZE2zDYNxgecDbu8{ -zUkG@S>JyYNlT+g&A5|I%j`GdMi~}Y}Ao1%=0;N}4;0^C{O_7;i2KgCEc8{ -zWk)S-YJj;Z390u1d>$8A!QP>S-Mt%?h0L~l(h}V8S@CQ9IX~?(-AJ9z1>Qaj5{H!R -zcyexRbFKXvK=rB>PF(rpB+BQkBOhOsUM)v_fVk!a_@K1G#(xNkesJX*2r!aznCU16mwyMzb2_HL -z4->~CB=Q~6ntf9mh)*!P9VAe~LCC)pDq(6>lp+ka4*+vB?P#1j-G`I%oJ>}lg5r#80sOAcYZpcx$U}WE0tU -zmt^D`-YSR)AV-(_RV!;(KmzCEx7s4ZqfE-_F`uoYxaX=sxK4C$gcfq;KFRrw2~H7h -z{M>T=p9m3(%aH%IMc3Niw*B{^wzoUT{oPKXim@bVukR@T>vQP;gX+k&Bm;pX5QccE -zU(5O-!Z0x&RbZutF!N&YzC<*PKIcYBL5ZG5Os)m41CErS=qnEXUT#U2oQ>&QB4H*u -z^pAph|59gk%0jcDJ{mtXC-Css@9LVmw1S1a+gSaiDTh_l&O_UuoujDyDqPYiiJTPl -zd{H9DtB|<`!(bJ~>bUYFlB$YsMoMF!3iJSW&jh#h4zsk&@Ub?L?2fmd*nFQgvvDCv -zkrWa)t_3aA61g7bQ!yA!Td&By$)rH0^r=!$Zv7(zZ&`8-u|wJnq7aSbJpxJZ1SP4D -z9q^OZXH}pvQ=*bue?lMG&ez|7sNw=V(^QFYrdtATa#f8QCAUw9uT@B@c$`#8m&JP* -zAaTZLI4W3TDQ2oS?PZ;7>8`44-nn)`s@GJ(T=Z0L#8z#ytVg!@9agx+o@yhlFp%<+ -znzFJh$mlpTXKDHGvZ?Mz?|UQJ3qYv%zD|xM^q=JhNwA7?L#v3|`FExZ4^0!)z9xBe -zR5Xy&B`t%klAruj0Q+<}@`H;B#1z%x4pHk9!%gHgR^(<5rthD_BHN=;Jj7YrM}vK$ -zpkQ(=)p5E_Q1aqW;Z42ROOKs;QeULVY8E2tIWR!oAr_!mCf6G+{txZU(3b~p>*oL# -z(`p9)^<6H@z_ERlZ%)6Jg1|ZcR``!%tIo;oj -zk98oIec3Vw|75Q#tKlZ!)5LavC_e6o_+tWrOl@O!xF6G;u)Q~+9q|Pw8{^re*_0o4 -z?zh|`YB*;$#aHqZqFnM%%6FRa**RH4bz2WdDxE(s+V6A1`Ifq^ofiSTFAa_=pT1~C -zV=|ws)*x_@Z@gwxQw*dJiX9sCB!#>P(i;>0DaMp#>AEi20=`bh4Haegl+Fcv1jRp~ -zrEJCFX32ey5J!I%*M5jQ$x4vg7xH2*v{!bU3VR-A4tO2N`8WM@Qw9ebQa@qSHHYI9xj@EzSkl`2G) -zR@*(e-2D^a4;ltqSpPas>Um>U2jfn5yOV*7eNv%M+u(RuKQY>~|1hEVC~#IOSMgEv -zb*vNQ`<#yDm%sh>Er&q`+Tk8zx~K&bS3)q)`QOlgEi00mdouJtxfmW4a!XjJRe2G -zq!^{vVZ4LGsISKf@jvK8Kcg7FsEpM+Wv#o4VMo$K6qCMWP-yU@xznbIBcyr8F9$;@ -z>eAw*(cYvzq2)!>ug6-?Oj53DD^uWo6RqN_-zs#BY3Kbd!-o*|RuX -zRFcxcJ<#@!v8ME|!Avs5WPTE1?I*x(x`|&*ObSmMlsO4Wo#o-ht%iOmbTthtJuREG -zqv%SD?}-i*zt2sx0#l(!!Sdi{%|j~TgotVVMJ@X>DsP1XO7nU78YuhQPfO;|^}0;@ -z&~@aHWau?Qx1EdSQklSqYPt1836TTH%P?%~N-0&;aFe;27GJyUtPI}OV7T2_ALlD! -zKEWP96?=F#yrd(_f?MlwVL7e$h=G(X`6cqo5d?fU9V{(GUn|b`tOyl6FCVzX{)aYN -zdh*AQlnji2mAr7_b~XWA2(Ua(n;uaz|J?2~r`AGfGA{ZDZ)abOQyiA(U5TqcKK42P -z(YS`{TGaYh(+}L~Ju>E~e|)!{q8zVz$iqwR1^ftrCa+vXjWIMCxXU^1Ug5RWACUir -zY~>5q?kvd$s+t8QTw`Q;nqSvsUjFJc-$+zz%FaC!zR;|)ZiiTQP`z4K8b|V>Bxx8d -zyiH5Yn>YMR`tJ>t{&>j!odlIsGTV%Qv(d>h+ZSs?l;hPtr1h1qAGBq{Yb1-#OrnM0 -zEgRVoCFY;1rGRpf#DOkfW(6f81U@+&31V8!$NbiC57&>G0C6!J2?`7UoaJ -z9OMdsXT~i9?`dp>SQ^J@rA#6I@^e9zPlA}aAW_v{O`(oD;FGQfEk}b>X2)~n{nvv( -zGW2KB8d(js`@Z;!nCb-tADclvZ!`zM@iTJV%HJ5Rga!X8Kv!cOE`)r=T2oxQaZB2k -znJQ_SS*Fx>7KyQ-2)B@2RzR-c>DI?7AKY(uKts75y>S-@;&YW0i;4UkWmgW|0L26V -zC=2*o%!V3V&*KS_c_qTx#pQVZW4%$E4ZVWhJRNg?=AlT(;xu=nHvf@Qc-yr&v3JFB -z1mTo$ewl!+7U?YtEE9BNEJ7@&HaQc1pYKVzH+oaOQ1mMRs4)Oe3O`4O!VDsEo0ecw -z%7$$ii$sn_-`y}c#VlZgdmucXwjIl|<|1VSu;DFVOr&n3t0*a5s9Zjfwgt;^|8vRI -zMn%bmIb#pNq}b+i7M -z0uLIp4QsiE(tloxe*moNLTN>Xc=+FbMOBZW#cE(+m+|B@bEBy&azuq4!$xLtSZ>Ly -z2`lbG4IG%w6o*J~uw3i?*vA{0_o}ry7E5QJfSKBR!@&iX3=FlcLVZ;!JGL{I6g -zqw0;G@;bWF98imP2LI|Jk`~jz@4VIP!%)w=Xt=cbcLCv6`hrsv0~-St+_%!5_GIHF>{A>5l-qc`1o# -zyS84F`1NDMgq8UECIZrEIH->Ld1{#oYHkP}ca3CR8geV_0G3(O9Go#p;xf^phEplVUyndwlR5r(Dj|R@{j2Bf9$=?irex -zs+0`m?c=Bnc?L6pF9VRHv?;H -zo?5XDiyxXpDyp5L0{nsi_&{~VaxMy`nWzrp@6(3o>^5D9(}1sYH>q<5F_Y@OxLn -zz18fbw2irimiF7A)e8#nWpt=v2Y=p&@({OBz68~7>R_o%%9+zUV)-KFP -zl&FWUDLatr+z9}w1IoqUX_L7cBsH5sGm;&jxIa!iR7RKihnX?wp2Nlh+c6L?>O{mV -zRMy!Y>Irs+PW|_e9xakm^7{BBT_frP5A+H$*tsU4nAejLV@y<2;+g}jN9S$1!zqDD -zcRq100t>W3nNO2R#h{*irBF0foK1zZydodR_rU{+VSwJ@~~?KM&ieQx|lf -z(lyXyap%ls;{fLwpsewb#&2uv=HUrd0vy}ms`+dR_GT9+>;5Xp>3#QU7Uib^xHrJ= -zWFWrpN?+rDEvEdcVHaNHSE(BGJajl35|~b+YfHaV^J@Xa1mirq+3pi?;3QMzgTPj1n(*kAxV0N(!>f;7fZW>u>j-R!#nsod4Fj#J?tqgZ~o -zbc0F24Jj#i)0gh3tZZW$MCOK8RLvG!YbPfqlIWh=fDG`S6Z-iuQru$%%(k@-D`=w6 -zUZh7lcIG%}aQOf0<>9+{5~}WjJ&Ddf3pZ0 -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 -zlTq{~!nk0==dBcF{Ru}=QDBrn4!2g -zhNVeM5xgTsrhWX;oZShSM(ta!*LA0K;{LRSk-ziVFRAZ92!uPTx;ZfGGTc{`_)Et? -z1g`U(UZH7Nz$H70H~F$n=PfYqvh*I3gt|&6^ZTJ0c|r5}l@zMR2!r@01FnL48hVDl4 -z9T(4NvdRYnW( -zW|=Ba;_~xBa=*CiVm8H>^4rSu&3BpJc(<>s5<nS-8_UOf&p@$DaknX{qPH` -z(>R1XBt4?*06NYcF)D!OysF(kF8*jYxr;ueGQ6b*P|o*+<-PwxQul_v2~-hEwJ9#Y -zs3os=od$#6MC=#!+{y8%TnY*zsbFRtd%8I096v|Vs?;&;PqDwLQa(sQ#N799uizLCnXvRK*#F9)OE9v9+`i;HL5`_BM|vM4hpn2E(eD~BVA`V%HO9bUJ=Ytz2N -zkgnUCcor_mFX-l=3eK-?V$794eEfFCy;`xtxgO;~d^$a=<9G{$JTbK>?+IaGENkWX -zw?n!*{!DJ5;P*Kby1UMNhs|X^UnqE@^Z5dvqHyZj*={(k7{m2-KzSl=cYH-t4?zdb -zw*Z;3_TY?>nhzZ7$L6jii$t&gF?l3}!9qRHB>CovmT@{puMtKOgm~y+ORoubwd@p0 -zMXV4bh|h?!aFlGE{U~*-1FIRHF!vo%r5ZFotvCabc_B0r!{8V6L7s^g5*genquGGp -zY+WA|x`%U2*nqMvq1L3dTOL2cS+s@FhNz~AzP7zC_{0y9aSC{i(Wtj{DhOKLcMta)(D7LM7|l -z`UjEJ31tvr<6d9}Lj?(Q$|IJIU)X$85gY`Q!G9gAx;A;oW0>&8?Q? -z%^7aYvshove&)?7NnA>-&UppIOrr%C?~3D#O(o?{0tbO)JULa(+aQzAf*ub#LSW4m -zz!#z6f;x%F@y43}D^wOtU3ZjW2Ug}EY2e;~QMo#v`$c&&B|bDn=HPJ14|^waui+0S -z-z;gxtLg~#dx9V3MCQZ+(oE@3@$M9V)CpX^zACCOXbFrJL~Vc+F)%uA_!)0*%yD)5 -zwuT=z|86%6{=qRi*7>B&=rmbdN4EbNLk4Qa%SijWgNu!m+88#yOfs@E2Z?XCliF4aUf$>3)pynKm~ -z*@GSVii+rom*TIV3n-x!$;sIP3^)T`51&M2G5trn{jTpKsto{6128zEHRsOCwcG#n -z1IVs+$DHy0h-ihyf?UPO=)h0n1nvz7g6+>w`|fxLCHww93)oN47=>p<|HdiGcu(%I -zXC|#n>2g0R#te?h!<9N39Y=;P@xK2cO^%zr!WRUm9u`L`I}ZDpJSjEy*wd@|?qusZ -zi^m&~ApDGKBaIe+sI`F9jzyUK*$Nn_OKe9`wMs;WCzqnf7>i|^_0v4IDizq -zuMhbF>;(6<61P>x6~oA29rQlKfcE9<8dGeeuF0$?A^SqGS?qd%#r}ksS1~K%$?RYJ -z-%XkSUuPDsLZ+bsx#cil&`+gsUI`Y|ptg=ZvHg1uxkYGCxk$_8uGK%(`g7>}zIq)% -zru!Nc!wOzXqTMa-Bv3|^jqvT-V{(=!U6ztOtQG14p_$k_4#C1NbxIjD!TaW~;mA$^r>$#KKE1lSRUm)bfLZ1aZb2WhX -z))o{@dBUVI{9f?YpR%|jBp)c$gJj4XF{{PCOZA`2L*Bj%eL8S5Zc -z#z^v*HD3=wlDYQ+L(YJP5Vi}3EaOCj`2gy{iKcH%nZ;M~tgu1K{#(i-6F>n4NKQfH -zKx0_tMe+4*=dsi0`JHP=o2!9cXfZu};ouZP_8Jh>MK#|P!~06xE_f>2ns -z|23-tY+3Y9iTl$fGnJ)AP-W|j3pOr_K&C*>S9H_Fph23QqsG6gMEFeZGgoVK-Xn)a^D*FD -z^k-Xluv0V@B)bS8vbhssS -zK+L!A6?cY0^*-oE>r%4jZQOi5S5fCbLDUKU%OX4j`^lw*4BbII?J2Rs<#k^el+{CMEbK)ZS}H>N{}!_uMSfQ#@?H -z<5dQx;VJM9fR=P{=S^xZn-GN<1}b-!EfDt~y=?kNhWMc?xERwGUY{!`KA)%9@V32O -z5*V#5u)NpNdb;{!2P3_p1pIy(hG+!owu2+08_M1ACmR9c`UMj45YkGL$oEUr@D4(m -zcaDGl_BZNWths~VerNG}Xa|g-mjA2Esz$%Y&$#?0us<#`=!VRe>s#bwO|7qa -zeSnm`R^%CNA=(3*eDDByy6P0l5;)BAnagwG{cPZn0y0-zX1T-fQU|7LA&}= -z+54m-`};fyj_w}V_9035a+r8u5BmIUnBb5cD)jgL83pbb?5L6A4P5Og? -zC5-Hl%cL3`5fGn92Eo*0G4;((N);u@W6_SuNACGVBmYtF9~qsl)koxBNtWPSLt?Vr -zIGIfVpP4*N2J(Jq_^4pzxtdv9*B?_6Zs7Q747xg@XFm4JJN@hxxx-G8VaPmRv$G{Y -zw>kVdM>QsmD8ZE(Q0BpqK6VjsYTm|g0uC~Oe2{iODJ)XCA0VS0pfwJMDS8hP_Rv;# -zY9uVXOgO`SgMca+i=5>ox#^T$d@ogvMH{Y=~5e1BZ7 -zzJCgtXH)NGl22^zW2Q7=IF1y-$D7)A(`HY1fJFsRCz=Xd0CqmzJFWj-xU=IcG-Ii7 -zOXf}FcYOlMVa^Jt?OP%cU54e{qKJrV&{=|OJ{kOQH@oXMtWrS~1wmmnW%9Jfe+C<7 -z`&DU?pCoj!SIHB{93F#|eGSb6Z-*2tJ62}XAsmpCtKF|@U#=NmMvPv^XD0>5Db)@E -z;uFB}lF0aH6g@F0|8N?*K_~109DD$W%rf;oO}9Xf%O-8aY)x~9l-+FChC*U}aI`sQ -zXXtA{H+wB0nM*SclO82Qx#%ZK&fMpBovaOZ_A`-S9xCtx)ug<=_!<{{mP#jlK^tMQ -z81(ndHqHM6kdR;l1k?M!_FDB`SCRgWU1LmFy{2y>&B@CJnmnEp++pZ5qkFvMl>x`r -zACK41f^Gn`lE+wc*dhNTa{!@^YXKU%dd`t-=Lu#X4`$$%(QKO}q&{tq#~$umA*e-3 -zF_w$+W>PH6NNd!Z2f22Vks*CEpGCpY8U^4=0g=jxA&S5)JS`zwUzd4ZlaNr{7dN~v -z5FUz>%J=t&Ibi*0B+d5>ny;aItuVOrjFbLko#D8-6g$2I&BBZVGxvO0KUTMTP)eTh -zgG`o1MAnxt_;nRa4lc{HTfsZXnH3{YVwx2$ho0zNn?8RUkr3ZgE(6LE!Y(>Nq+(Z} -ziQY`H)9$XAi(6dyFqWbw+##n9Ha|eeTmb?Sz?QebZh`eSE4jC<>Q1%r1SRx2?0lAt -zcG}nU{oc54WFT(yDubi&Q6I+W`GUjHIs2O8^4qdBDb3^fWhbOcgP&l*x)#7t>lZ*3 -z7s|O8{pjlTZMK>@z&|{z71K}?$Y&gyynN-o6HK4OPGuj!9Zuq0!(%L)r26niTaIn)pZ&&2LeUu%x-Sx~00O -zRUC!Nf;@FhFUR3Q$an6`Ei_9B`YxAyei4Fd6wUF`n4uyc(P=Nc`1^?721!=Y1 -zBrP$^@#q@&8>hGGb~GM(O(oXP4dg(y!uI8s@TjH0zF>dkW6qy5Kx61aNdORBX6sQq -z9+`S2&J*kU!RvS3eI8^s&R)a-_EmF)q)mLfgC3+$fugU~BNl5wf9L)&ZjQe&x@52p -zQCAc@6TY$2Xj_HmxOCW -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 -zCy3 -zH133H4fS{U(hQ@{WC({7H&K~D4a}AV>&GJ74xjEuf(-`$CBHoXDfLkCE&LcZ#$1b! -zH_!ux9-20IV$kQHs$UBrv`QJN^=sP%}$AmBO^{*3yV4(NjX=m)f%;f_G<_iL5vZO*3439)Bzdo94AFOtT> -z;K4NHZ`Nx)uizp6j_XxEo#P;7k&yo9nobQ$XITty7$K -zhxF`8+1Yeqfj-kvQLL|hAQ`yd$clb+hcr7j@G+Zzq^~pbN0;9IN*`pzhX0B1LvJ|w -z$?)V^2vaUZ9wj_&eb^RyUbYnjkK1(pYI)`xlHy&of{f8VCLRyOF(oZ~lACI}O{f~< -zl1*Hq0I}|8AXRvWU$r8RKq^EyYF+)2g^~_W?TyAILpDd3(=hR#$o@gsDh*$MLZsN)X^Y9o)n^-JCy -zcZ|WY4=X(l@?Iy;0G|{IM~#odm$k&jmHIlpKk@LoPR?FJ&JYLmj34;`xqnsdaPaH# -z$`xet9NQ0!6{%w1CmC)UM#kHWQ(yI@tH!Y1BMc6tp~alP#@_%OU;up!nA;?*!vk~t -zl(xxq=w)zmT3;@yec?&vvyt>rTuNW;Lx0S -z_H&WwCOKD_bJ);Jy%i*-SZnDw0Fn;8qLn~L?)1Iyo}6yLJwM7C|1>UaE~7BSD;Y^Z -zUR8_0dCa_!0R4QPmBY -zH^a4zR_fsA<(`D`fF?ybgF?DBP2VBRt7S&X(BdgH&h_(XouJ|jqEkSc-~tHV^1Dsf%rtIBe)0I!ey3&Ok(r{ouiX>`S4h34SpF#&>TwwSOl(+UnZh -z<+OV6Bs6@)aYrV$`ry`soBHunm-)nXcunoOHuPv5@0T?4O9*aC@JnVs@{AbJ;>{Jx -z)FW+tH*{+SC}9C%A^Yg6^?mW-gkXX<_k#T9NJ$2^9cu=)yD9hqguqgrOb856>~pG@ -zi#gRB?e*$p4nj+ji$)3Usvz`Glc!51{VRhcrapZHwyqMv(0TW^%8}@HUGV{3L+6*1o*N~@0v)N&N6jh1x}cL -zn4S-N8jflOG@bPeNk5~kV5nB8dJ+Vp0{?VpX3>Xrf)w;XLp?1$fsNW>rm -zlbq}^31AEi?(|$<_0}3SL@8PvXcNK0&)TYtL`%;w!;kECtLp6GFO-ICqb9;N2?dBw -zxb@v1)GXXSE6wmkUlJq}02cAIvDQ=mHsDF|VU#y2Ifc|ni5bO+Vr -z>u&D%pnL_9X7IE$Xy^2M#ms*4k2>?R)1&ld5T>Om6X&+?pDIeT1TNA8y=Lu8nhH{~ -z!1{HJK6ocM9+gFGjg=0x$!GeaQ+hP1im-Q -z{bua}x?$AamdFk%p4Vw(as!5l>dd1Z{U2fVgo=YQ5=t`g1o{3gYz>sz66JJvkmg;< -zV-E(TyRLzc^5hzQ-U$Rp7boW(OhP<_-}O&?(P$VCW2e_s$|WK&Zg|Y&9TsS}b6#Lw -z8<6z^Kk-1Q9n^#-*@UoiLX~eX2uL2B1E&^wB=!Kj84{FSW;WLSO&&cLCP0NwUbUlrraxRei3YQee)642pm#4%F&}lvBrcjz!MmeN95_;c73U);w&;5u}qO? -zM(Q_ydkoM6fSMzz$}9Wy1DU9R6_P>-RbgvjNMMwv_l))hof7T)?!VP~=L~l{Jmj(F -zeLeAWn*#vZ0w7Rg{c!9!a-x6}!`%-0?q2vP9eUci@G91txb=q6rlV?XcZ{&`fzj0i -zJQzx7Y`iMChAj*{&5;4AjH#wiQRirMRM;-e@ZY%X=~e~Rc`p}vZ6V9^-eEKGM|#rb -zPUZlzp!h@JX_MMy1eQ&>?mtK7wtW>rie59~mQZD45t&2`5n6fruD4&aS(@A1fm#C) -z<4GBu!170FZc)#{UgC4H7I>0Xsf;ao`8kS)yvw9IoOlR^MfEtIMPhO>rY_ljZj$YR -zc69XajbN -z?2LI{WVf<-+RGq44iqe60VYK{PIVp+$j2GU`=gYyd{>Qr;=Cs_U53I@?hl3VJd5&` -z5(^Pt33cYm+niaO{TB&vUb0>8neo1}fm)mttP;HyVIFYTcqvLP2DdZ>-M2k@KBS={ -z@5vv>+axicdt;0y%vUeDVQ9*uyk8$=Ri5LVA8@SUn^FO*vl*F4lZ(-+Puls`;aSgG -zjS)BbLkE6axxWH^*Arm!(jYJLd+mFMOE7Ce(do!qEs%!DRGh>LSXQOhrw877Iqx}S -zjW_)D+Kb7C=P?%#_e=lORdgbAWg%XQ(G)xsW#?UZKo?{rIYEBQGrpAgg9Kedh^2VX -z45uEq0q+h)c9MC0gzK1kF=6vvX5&7aT$ZfTRFMcEy!|3ALXVhel_n1srlpJPouHXA -zog*&EjenNq6PMWWJ=SuI^ILNVyI8?(iE$ux0?dz2KTqA}T}GUF$sd#(h#Td^i$!*C -za%#H1Rt}M-2b$FJbrZ6W6p^(SpWY)2{#Nac;LOWvs>(>STDJ`R%)-q&4 -zqEo;VB9zJ=x*GcOlETB?(WbM78c49e*3F1@aVLw@)s(Qu!N&@q959R24~Ts5z1wMi -zOn%PLN+(2`y5!ikt -z5jIT;E+rm~4`AQ9;s3HZP&$X@GVx5^(=NGg+i4(>#jL^fUof?c*;1?JvS)v_G~W$^ -zd5kM~N>_Xqtyl{{D%M5!8^e0FB2T$;dd_W3$i?`mvzDEYvC;2s6dw0NZ^}#%9Q}A) -zvGtJ^3<@dcP;9m3ZwcueVGiz(2!TIaOgA|lz}sLoF;R_~=``+T>ALLCH26M5DtaD1 -zrjthW7wDe`5)OfdR}L@moIGWlG~KM*4hHXg`Ej>jWNm#r>ks_cX(>!BA5~G4nnENX -zHiPe0kI#Dd>*>6NJpH*2hLm6ygLnWFDR&}mEVPG&41+uFb;p07*F})+g*$D+B~uQC -zBz=9`(_gDDe#M}?!a3aGzeBg%k-fVX@ByJinAFfJG@6p_c3YHOQ_6a><6N^J}=@Zb&$V3KFg#Ykzna|rUXhC5U1xRj57q~Uw3c@ -zOTOdl0v%@>F0X>;t>uEvWwr4dmn5TKkN=N;&_E~=Sc0lEyUwLpcl^v`-*HwbSmL@7 -zPAUgu9~7`ha7x3DspKe%nT%;nEn)2d-oW)i05{& -zP{=dBy`b>f$$~h;hA*n|;H7o~z6{Nh{NWAKv!u7EQyInH?md`BwvLuaFzKfg63Mt^$^Aa{d!B-)-^mCXo|KZ|OpMolL~ -zHsaa_o=5W~l|h{=KPR7m5ttN4ZG>3k+HXj&EW7@aLl|IP`rpHdLOkk;KGR2&jaz8K -zP%WVho^q>8Nc;Vgo(Hrv!J%@CGM%7}65^8w;?qrJlQJK$3_iU*D(JrpvpaZxEI`PV -zFVA3nW6WgoM#ITN+BRgYaCyg}Q5w1#?PJjE&!B&*sv25_+#M7>$yN!WEOsUGGOP<4 -zfqW}pyW~d5C!g!aK$k7*2RWGT>b~Kl{hZ=m)|2G8±Rp^|s;xb#LuB)Yo_ki?H_ -zGvGr!Nk>ou)M=!berU9YKNUV}O`m{EKiZ%q(LJbryb}_(cyq4=I8heHC(02R_Y0!U -z<>3lMPpy~UXqxEBb|`@z -zc_ScPfLdc3_vM6K3x<9`a;cm*9bK9*m;1a9RvOO7@7_-O&w9Q<7PF}6YdX^qf9B8N -z(?mMM@g%#32ub`T;sgUN>eF=a@w^k>B3I2z1@cXbdGK2HMIm4;ZQv6_wjRBl`ahw3 -zfX$KDk9_+T3!>8^9_REhh>-W?G#hQLIviB~!Q2@|4W=+t4I5EVe4S>8ARPD-Ih-%5 -zW&@ZXh6`3MfhaQJ5K!bKgh3VfPs#nnoV%3BluiALt+Giz^yM$_P)`7B0#4AaNg_-$ -zj_xW08K_bT($qOufRq9b&5>#)<;9Ul?ziUTB!`C#VMxC&UN&sQbHS$cgu`T9>4J0q -z+~T4KjC9<21JwjJ!Hxnl|BpI3zARP^p{e{}@Bz4h>5kI`gOct`#=- -zn0&Xa#qSV@Pf1-vOPR6lixPx(hYBGx%TD1GuR`IaiXf*8iG=+$sgl>={hun_ty6P1 -z@w}pP5g$7IoJ7&tQy@hDL)0hsa1ZBIN$f0fgRw#m`j=q$9UzX&*e?5nyIfF~U@H`z -zlYl!DxiyeQ;ZIoP_u#M(kXV2q&K(5j?rT(4&B}VlpcwfBGbOsK)S)@gBe$+UtpuC| -z041e~kGOX#;xgG2p~*1R^)fbvl55Nb-?}Q}MKkZfrdmCg=InQYZ>Pf-<1leGiPw!J -zdw)W4)|;A)pgYBkL)D@VuSM756KDN~6zXoOFM>U#>n43$DwKyAxHum^Y)_!l>fBgF -z0+Kuc)^HrSK7HP2D8Vv$6bE9b=(Xs?m4kWh-nAMK%?hoYu&3JCRE2yFFjs6zu*SSD -znk1#OiyA5J%M5mzAQIwK-NGMa#e2gD8l7jYj#~}IBzi0tGnySD8Y6CR%b6|(ebp`2 -z)}A~40UOOuVa85}6jwm+#H4zRk_%g@-uofTrVzNXmx#eHxWnBUm*cMx4ueB99YMuB -z$LaD6(5E+uCZENYc1!x+UD|bWI#rjdyl`283^Esl45NrHK -zIHh8-cbd`28m4NR5}VY&moPWeBYFJAO>)^tu*RLMV9it~BS+jXwzg_%q#SYpZw3OC -zGr_zn{-sx+v>)=2ey^ow5eDpM{B6A0`mYg1YrbRBSkr6J@oc`Ao1)b;=ewo4{s4u7 -zV9es+V{0}5{{h<={1OENjy=asx^t`C)sb&Z;+P&Ho?tL{{e=Zs!a!w?leCyUMggVM -zvS0&)eA{`i2wL>sc@Nv|Pis}O?k}Im4Eq{W3`pzk$kFaRHkuPI>Xuo+p480_g3i0y -z;TK`ibFU0J<3N4T@UWP6{Qx!xlvB2e+xJvRK2yA)_ZmnHjI%5?rFwjmB6=_Zd<+=) -zX%ZvVf9JErN=-bD_bMsB-_%B*&~-z -zh`V0o?KX`BI@g{jsFR{ux^f>huG75UG3|G~{k4q~kOB5~-Go@C0L%QE2wmgG44+O5 -zgA~Mr^^-rTZBG6x&Z!XOG~w3{!1;vY&df$V+jmiT_kt7|t%pak1_hx#@*t*ZILP@Ubog^|^fx~RigQa@x(Vxufc__@ -zMf4dNH~5!6)IC5#1m0?J85l9b&4sm|vJsmBD$Mf&6rix0_u@?&N@0v^-lv)BTUrWR -z(E->JpGmM31Ak+1TvO*vop%MHA(o3NY((#U9*TRJ=0)~!Z~HTPaf%|Y%K6_?`uI6m -zuuwa1**{}_DJ%vyQCHA<+VC_>u+%o>E%;>zY^G^p8j7s4r8E!k@^o?z2{h&OP&EZy -zr4K4jPCOE1!~q?@g0@%E$0$&Sl!OPG^c1v>+SV*mL}u06#DQKc#Ui6>q*y%8LCah( -zG%>PSG;fG%PI9Z0@j(w-r)ld?Rn6L#Gl -zErL=ywosMyZV)kK1@I;U71&NJMmJu_+Z$3Qt8sLoz+;bhMGcq0QOGjDydIlG@<~h$ -z#CUdvl|ryXlg>!hU`nWT<`ELIjk$VYmM*7!ZZ1N#Cj)%QZ);LJsA1C2xZ(3nBcj(k -zGzJqq)s=w0{^pe2c81_vCEr{Dfw -zw@z^lpVtNocHy~d$PGd#^~$mq;Go(gH32Ghd{b#6KhtsOYCE_lK6d3upLO@pP}P~` -zLKCZ6dIQ0kCmy1pxTA3ZI+Gn@PkY}n~4-%9~Q`V{HC6h -zXcuOe#k~N2WxAiEzrWeMeVORe6}`cazaF99-QFkpR~OZ4Yvi0k#bI;uBYhkOF*Gej -z649z6o-${1pgQX!6z>#8-BZ9^;q2#eLS)VUK(sDrJ&`}&bYBa3#SQ-I!!UU`gL>@ -z_3R-6Z2cPJyuaYeBf0iQob!LpQ!t1_eMsrehvoF#+n5L5wh4o}lmSZFF3SkVjjK)e -zaXgvRH8$tA#aowa{_o7N8W#UqmgLm*%}h?cXF|#%rHkF&S0~J_TGOQ@xV9^+9^cjl -zm_^S5jOq*#H5MUyM_={7jT1gL*It&)CVMyoy)FW-2qJ(lb%?21^Fl4r+684 -z{Gj{y3X!Q0TNLb4+S^rc$zCewbF8pNAt#O)zpk7-rd&<*XTh$GfN?oC?;n58H*f|- -zeWoL;L{!7(h3xPDaG!mbuHOJhKax%ayEd6JYX~S=;)12@L-jD4$!QxBB7TRk*)J>} -zD9I)*ARMb|nGk_?2xu -zYIS2UKgCaTGOM=NvH4;9d|~#GU&wi^CxsfAa4ZbYwfPFQ8Bjpb>_>@>hvYi1!P{db -zS&atxoB<~&&?6usAI>#)F>9!W{li!T;}@5b9)>XK?d)-JTm&5%DVPs2t~1KzwXfo` -z!0K_4&W~4ydCr~AB^b77dkr&syg)<>4jt2t0`lG3Tt(v7r)lr$(EF5O*AN_Q*LUD7Sx-7US8 -z#P`_s`&XWC@4fHdxifRlocaB==V_Gb@M7lkkg1I}#e#`cK|zN|HRS=K7}+GTe_>BU -z2Fmss4xo3MXX_Ffs&tJWsE9#~Wn@9A{6D=vJcS8D$0iD2SxqjOcJ6UUKADqHwX6|)X{cKqQxGB}1+kKv&4 -z$!X9b_L|mAcy%pUQ*ffhKz@w(`=7COB5?~>aZVj-7}ra -zR+#u#(N9!n?$p5Ku`__+IH>w)uwr)aolBDzV;{lNRSR3H`U|}l+O2}c1QWd1!U_36 -zYDw-{BSpdgyY)04c!#JWY}HK`akbB)pvX3DaC)Gm0hQ^%xkGiE-00{`2T}2~I}Z)k -zIjH>EGF$h>JcUYr1D+3_S4KOsFNr{1Zq`j+P=$nc=8O4Us>y{rRVB44l(@#^ -zqKwV9LC9nVY?)^wa7b_&aY@b@m6!`pO#S429%g@)C(}b+G~zXL_-dJ+s8uzlvIA1l -z^IPvKm{Nz-h3{56-}FRhRd*p;;Dw4_HqW?0S}w)giR$V^phyV_3u`VCV_pYx!+-j>e`|gAE=>)F}xc+0Ef51Vv -z?(*XS2NfKgo7?#}y*Y)Y1UUC+d(nvo@I8ox}m`&-992H`(s?r4b4 -zzSzf}sLC1tGbG1|-Bfe0SQ)n6zaBaJbx-%!q~zV5|AcKE2Wl*8o`aaU)7>krStbuN -zO9+`_|22txxIh69^$q86_gZF<8QcLth5)`aiW?0z4`;<4F4cdR=EiUvZEE1OoW&Mn -zcDXEcZ1In&e00DE1>^;l5ln4~XdBDNjTUXt&)bGV7NwL6(DWX4Wp+=^J^snIZqXi0 -zGv%A5s$xK@-5GOUuM1AE7{z9>q`qP#BHxT6Uy{ydgMLGO1`ehGXVW`ru-ke#O>kT^5zyhyTU)H(sb3x{Gs{`L;ChD^R@%)7=Ty9m5#>yszD{X*5{C -z@zZrrL!~r!){1OVbs8zjq+Esg=vNCVNi*p6ofvnhem#U0x`o<(us9=7RphllZ6h3` -zBXXoI@s%-EivD!wiA?&G=pk_G)x$iaomA~{YGrfZGa%Vc*R;r1Nl}U`TnHA`r-^+} -zqpCn*QvgtYfH=@lKe*G$FO&BMvY2b(UWqLvPlIBm{WX2{OP31#s<=xkX+n$bIEhZ1 -zD=^|7I4XtL%qI+ro=U>-628hOGbr^d1!pSuaHWXgq8A^&dy=X|C@=(+sURjd>I!A?`qSMNy~Z-pd!} -zD%TAW-~?OKSGpkVOg+?JGjrv@y$Eyy#edK;Xt6CQ`W@~`{FNCkV!Zwfya6*RV*F)G -zQx4SQG&w{;)msmi+ny}vMrIM<>@OY$X6Ob{ -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 -z&F9L*%v-^6+$&S$ -zrW1kxODXb|_>(j|%V&`{7Fz7?LMPVIlhn<Gq$=IrZ1IAP$2NVfN1U -zuc|xCtpMojUp!HJZ_9{>7&v#DHH0j_m9nUeMyR|@b}iY2{wJJA|EcLq2b@ZY^85DR -z%6r(Jaq?2x%rhENn(!Kb)RI4XZVFEAA$$(9cyf9H_g$ED7t+MOq1|@;CqI -zk1vwBZkDv-RAZCp50(UAjEQyEq-}bJ3zaSuOm6xEeQ+we+)LNX2(;GjwivOZNEz8W -zaVrYw6znAFVnaM@Bdjqv;Hj@!60r8QQ>Px^H9a+RS@XftQ98z<^+XFH6>9IH#*3Pn -z`^=YygKzst9b;qIv2j)ka)rHS^i5Qnr4M(rM5y#9)aSIR^a?~DN$OvjKE%(H`A&b#LYkikrnkG-{YA>?rUOnii+vIy=u55}JFBst1bSGTy -zAzkfVKbp$S1xypTUpDnJ1C$9FPWwpAF#JuDu|h}_tCh-v)^@C}&#eEyZ@|;*s{^t% -z)9~J6xzy=SSs7zAufuxf!TO02*OcWSF7CeWKke7|WLVTiw!xu)IlCWSz%Zx3_;4F; -z>i~?oTSm$y9Tp?ipYQDffig!Vw8#A2@Ky<3%gFB^PM^)p^4H)C(Orq`_xlh|6$F}!pl0=h!kPoas<-gF1vT64ZB*@ykn=-o~S84x&HIlU(PE?-Nw8*qO& -zqX{Krtp}qdppJ>nXc6H>+s}@uy+osg{|^K40@W;d_-(LY3TBIl4J?jQ-&JJ}ibRdN -zC-(Iy;OWg?{(VPqI&b>zwahIyRhe)b{@lI0=92&npkz3EtG?mv|06pj&=9N9w)}B$ -z;DufbpOm^uoGm^C1f%It#g%AVcJkt0#E7r`lwOs1OV^o?lr0B-^CKQH`coAo4E(oD{kZg&l*ComQ0_d&)Zp>sT51nJ@ -zoF;Cf@}-5HDGIg~o@n+f0&RuO+xs=zCJ(r)j4aqFQTD9lBY8K_%M6?He7;d|Slb62 -zY1{F9%GeIEO@!M)o{xJKR(-HzPxbphr^KVvp8M0^ePth|nf;QIGdM+0EA -zG7zC&Jnp>k58Bv$5F&oz618G;9jrcb`l6gQ99!R(%NY$Hl$HmAXE~#on^Dknn%A7L -zAKI?eHjGa)CvJ`r!X4q0jz;1eq@vGlbPqmc99dxG&Hm>^_kYce4cIdA^&#@TL)@?m -z;>-Pn(C)bjMtXK=ug@l0F;J3hc;uSKqh8>&v<3YX0k-)hy~sOA%1#nSjH?c->!;dn -zroFQ|VEH!F9T)U!1h9{?t<^mMCkMiJ{J|eT&NdU#c4W@X4x8il2)@Y|Ap6iSl*4ZE -z$~871=R0Wh-_nSmd=dGugz-4rJHI95!}UelJO5RQl!u8lvgG)1TY#i;3CKtmG-D21 -zm5?l6w7(+RT7>A)=nwnk*=`z}(V;HF*CALWFE8FvKlI|nZMBTNhMvMz@AUVVNX2}F -z1k2ewL78hW4N`G(M7ZX1xhWe=;V*a11B9W^eZunXGC{&E(@Gh0^e6!*X0g~B^{603 -z7SS?l$E2sBg(yVXO^FLL!;th7)jvd34CKls7Mvk#Bcii#r_Tv&q@9zI>_J);(%pIm -z8ExjCzr3I}}Gj -z&)?j=!vAV^@0e9E`KpI_Ms~TTu;u+^C9--|Tu5)($|M(*mReN!fD^C2E6)%m7`}qB -z*iRwph^&Muj|4AA0g3=SGKcr|;-LI9q&Zom2M*;V5eGDxdPqBV)+j2n<+g;Y=fF6B -zb08I2=_B&y>QY}=-NTBKOD+5;x{F6-#hlNGjk9&$uN>E(%f7y=k)D$XvsezXSWX2p -z_D?qPq(tlD9J0TL)F_-Z#o+CjDI%chWB2GnD?Q&xILH|qnx -z{D@Jr-_Frl-PyYH9O?NkXZTNp;zyM0e~A~Yz(i)Wj@oTJL;X;ZDZjk$H?~;3 -zaWTm?mO)zXSvAR1*w+*R@lHC>c8{Ehl^81EVn!DlhenuG^NMP!@ts%9?dce_ -z-GKz3f(N8@inqA2kkD)~l`D~n`8C%SPk#`s8G^B7Fa2)6{}6RY)r*j(AM(Q;Xau8F -zCreLg65t48;9ePT@p+Y6q~g#UXG09-W{Qz3YgB&Um`TEH*%iYBSWAPLo4RwREj4iO -zg}wel7>4c`?Wf!4E_C*{Qlqfs(t*iTqR_zG?6>MoC3Va#+EinmJ9Wnf_s}$npKM-E -zwe~V^JQXV(7L(#*WJf0S<#h8dnxkn*W2MrQ?&+R(;PHn&h0R&VOEAov_ARtR4ko_o&qwLm@S3pk51m{((@(8xxs- -zAEm5TpV@c532#?=aAl`B!|fh&o{dz0`ZU*eKARj{J0J8 -z_V||j<1bebukakEngbwmVoGhd%;Y8}qog>ZJI1Y~M3%TS7yF-H0XY^Wm{%oF>=1ds -zCTsfpsTd_#uf7r#s*Wk9AgWl|68#~@E*|c*oQ9B#*OEx?dWjSx1P>?=8{C}a1Xo!8 -zaQC7+&dbbS^+x@`qLyxw-k964{n|p*y2dptxq&T_NgY-$&~&k3?J;lX%(p -zd3em=kvd~kfp&S%Q6vw53hhPW#b$iE{+8$7^O(6gHmM8bsV8S123t=0rLazjtNBg; -zM33a7%M+lfAWCE;AaKfd&Wu^3p>zxQ=`A1j?p2_)=;zPX3IRP8Mg=RZpAqw~T+k~N -zxR~zdi;7n)Q_Wb5YCd~Jhv~+Ds`_h`UizX>Bj~k$R0NGQ&nx{ -z9VE&E`7j=NhAPzTqY$>s5GzIgWuEc^Nwm*EhPK(ww`WYq{#YQ+yQM;~d^NG%cCwBX;RMyp65;D?Ri$XMtd -zR^sNrNBdl%VA4)c#gik?@;RNIO2rX>tEyqtS(uWXWgoe+Ql5O3%upP&Vke9inuneZ -z{OjZRo2x>Z-30=cF19zVF*auD{`TTMd9wg;>{0-`12;@PBL49zJ_huF$ou!IjSp(H -zigx^w%)8!^ZXJ1fV5`50@P4wc0KXwju8ayyjdwhs+w2WS8`M#WK@`VVHX<9lfY8g- -zS_qOnESbAmNv;;1?N`+5Dws&#Fw8k7g^ZdZ7rc8lm-9r7^BWUv5K*ZpW}T9k0#$+` -zT#EJ2gxHPg)R8L(LU;=w!hp+p-3N;}zu;w7@g7&ArOwu=gP3xgmr$&wVVWIr*`VKu -zmT(u^7dh2^0&F(uEGYcAJiz;C7rOk{#C+@}_WoJCDn#a|2Vqf^Po63uYgNX~1a^TS -zN9Ka&dJ*wjNdrDAYo*Qo@#}OFjrf9O;8*Gi1GB3CXm9XGV>kO{Ww5y8_1>9E(#XD5 -z*6R@Rm6uzxIRWGk0CNhbyyrqteaEz@7gpUqj*Sjd@8Mitvph3~VYc)mBm3z0&?ZFu)bGREOU^ -zpK(~dg=n8%_AgqT}#{1G`e@`zu{9a;5bN;JJ!A*dasd$Y{_+WpN^5(<8 -zQPiR69pS&&idBkM&O?d)nQdY@V#n$A&^38`GHd@(8`N#?J(QBSvOW1-P -zP*|6S2QK)2;Vzk9Va^{}V;Y -zt99c;A49vxiKpYX=2LXn9N{k6-{*Fr+y7ehD|~F+bE=D&A0P$EPOt?^#y!uI4+<>% -zOlQ|@T-oBA^}wiS!{r&op&kXIzv^J71Se!Ob~6lXyjT>+K9O6Tq4d^SETc;Ro5C+> -z#Loum -zk<426lV^Vn+GIk)@K|t^0SzaI++J$9m6@B?m};a=sRwT9)9MUKd-a=~?`~!o$I$7l -z`^aRI(=!r*@Ym{yb8<3l0v@m4O~Cp#m=Wy+2F`48Ci<2vk0_l*U<=2n5T$KA8^7ip -za2h;xlJ(EL5WLuKRSR_V`ccUhR`$|%GdChKCN_QqwI!8pyy%}$zUZmCID|dGG -z^K1&fiRM*rEv4bsxx}y&K0L|0TTGbSzHWHn$x5B2)^WS$vDnO5<76c`Pw%tnnAd-6 -z2S`2vu0}{!6q;tZz3oR#6oJ?Uq!-Td=7OK=7K~K~U%_k=?H28C*4L`kbj?lVuFrS= -z%l`G>Fifl=IEcS4`T=g2QIiJ@PDJS@p9tM;*wnKDT^}-Qn!v;vf@S?oYL2#wGxpQ# -z2aAMaHQ5U(Tn2+x*&s(#P>zKK27@(yC`x!I(qR0}pFaA77LlSjP!fmFsTNH{ckdIY -z2QUIYt{^t`b$+-#(p!jxl1lcgTgXCU_9>JTgz#}2sk}Kb8=d89mGLa;MdHkh2?@UU -z2+0Dk<)W^wBv8%B_`>hGt|_0Ii~>czy}EFCekhD)5zeD##_c9ULnFa){A!9s(FHGX -zdde@Yj!uZhY -z3a=uO+;z=%z11B{rU9M3TRNf7%zA8<~QbyYcSChTZS>zKZ!tN&&DiggxjH -zwM_^XP6yTB-sK;|tV#RbT3Ye8{dCL~M$v!dNfP?nS5dS#Vh?Nc5ees!m92cR6VlAj -zc5cmWugc{bXVNl5TUeMhs?0FaDmQ-wJso65sD#hjQ?e(vH)*!H*Ek1heB+!xaKA%6 -z!xNU>m;&v?!hkh%LBHz^x;*%iNy>`nJO1fkU(WH_Co$~|Y|R+x@7j4?iUE@cPSV*v -zb2NK!@hwF)WG4OVkps&viowtw+M>Ir2@n$iq|wnnyG*yUu>bgI35U>f#L$vS{b+mT -zjx7_yfYRSww&N%78(@Rj8uQA(9+{f(kIMI85nZIquydHv-7j7qYv@GgnI>+S;^#TWH@UD2&Vv+<-OtavzD+Pm -znKqTe%_%D@J1kaBQQ!s#w%D6!N09#t>l(O??`l^cu5ZI{MDc{T$tw;5&{}}f -zHD}C18L3h~BMlUJd-x(%zDrcue(iBBX8zzLI^a$zir!hUbCOJZ19V}*XW -zimm0nxn#`QPQTa_Q}4yR0DV=?he%;5-6^j}pxS4Q>7^6j8e=Ypo(E6L0hDIb?hw9| -zE5Ii(m2=44FGgx5u+EJVD>stvpZ)xefE0IybJ0@{2)GaS(0+Ca*$@BquWkD)hjJRP -z!q%oTv(?40bWqc5jq(nf9~LQ^w&}HT)i={cP#MAcE=#X9LKEYk(t&G#e^66$EHwZS -zROSIb(FUXakv*f9K{>vikYQnKR(Bpnfx1-o0~_#Dz)7F!bh;`%UPJleMONUODLSgG -zm9VVP{3OX>FJd8D4BL7gQ+Q -zW|UR=yQ@;R7E>+22D;%_G2Q?{?1=MO|>* -z8=dh!Q%S6ebGHP$?f_aKp!uV;7dI}DpBBbINMqr~G!dM24A~{F$$IQdC1iqVnUpa^ -z#&)@7v03uQV7(X$qt2_M5n=Y<48A9K$wU;2JP3K;5LQM(xW5r+$Svqb&J*?rC%fQqtr6U+>*4)5P}D6aeTd=*t= -zemxs%%eVok(4AOR1AqbQqm@fFIX(NEKo)AGXOQ0wxR!S4CGA_lI}%&+Idv{vXc#0)ra!218YL1qw&Bb8`$z;)#^fAHV)F -zqm0`_3G->cd6o&Cz_Lz7Ru5*v47dMe-|db8xd?y;NS~&ESt(t3n+!^t4Ddy#Kqqk$ -zkmOz>w3i%1Tl=>BV+4=~2b7$7lzxvy4?oCEg{!3O&is;Af@TIJ?f_a&pmTi8Uq1yc -z{*MQCTW83L&ER+ws8`nM`mNY%tFm;)e1g__1km|rAxC|dMRnSdoxP&52_zrhI};_qJA243LhP?`EU)0{ApQj~(Zu%OGj8fz(S@xwU)vZSOx} -z!21Eqjj3E&(3_t}F6OddB=F%8hlFxj=ZT{OL{GA;3Uy&z~Nv2iztdes8+? -zZw(-G10(&VK!l~aX@Z9FLq7FqqEpT_&0@wVq*{Se5!$;D8IBHP;e36W*(D=bNlRHH76ky<3_Ru=wuMC7`Uu3+hh*P^BANm -zAJ)JLL(X0oRf~uuf2ffn%Jj`P^LU2!U{7SUC7V5{DsAN98oA;#zjh=686b43oyHZz|y<~f=U;0*_S5Ik3p!!ZvML((4aMsXj -zPV&3!S^cesV#waFY6ahjQYdY^1CGiqUOMD;?ylmtq+AV|xqskCVW-c5zdU{dDXTYt -z0iZGMsV%|f{A}}vE`r;x(fWJ4l*T628#n&5>ni=+;FCDO-vk6TC~%Xq(58qA#;L-H -zo18Xne|d?}Y5zTRayA1pThKk@mod)Hc_*NXV+=X?Mq-Z#L6E_uS)I>^T~8s;)5-{= -z-cA$}4lGB!i7)BPohV&etHPoE`w75vo(95U`?F-ILzubSwuG%&7dXsRg?$vt-%KfK -zC!clrN65rBjc(WzWZhz2P}cW&t0=vZp*D35RyRl#tvq`eOLfe7K3>CF^^aL-XRP-F -zDIcLn2ct;~2iZ#}8ojIK7r&yaQBe8DU%ARn=ub9pC+{!ef>rS=j@C*^N=@xn;+yGU -zIAZn*qS#b&?fF;N6%g|eZBd@N{R#c!iqNoO9uZb4_akZa -z)QU>T<7@SE*0yFFM2R!#J^+%zC84G$n;N^IDhbFh@N!uI_G3m9Y#u?f|ly-+K%O -zUj75jiu4%{{NzUR(QyVrVT^f3(jXTXHqFlo8r9BT&*-52kOGoMcPUc#ws*WQP~(Y8 -z$5mE-z$%7*q4C#t_;E6s?tf-O5K^4cW7;MDkdjypl$9?a6|C_R( -zl`uuegN)-*#58=vqvzoV@S{M`^5wor;(QUT_DE{?K>utF`Yp5S*d1A3Mh!m4ZG5J; -z-4`}QgA8{W)^!ks&_!b3KyWo*`BG9IjXzaIVz;qv4sam=TsPJ=hZHNqi$e60Pw7)( -zW1H0Q2JMjTlFXb>Q_I36HEscg-^bfzWRcNTQXl+T=bl4m;c%B!uGxW^HC1|85Env0 -zzCW8Q&3Wmgri3GB&_ske{%e%c5_Danj&lhsQS)4x4!Rp^Ow25qbfw% -z*+q&gsCvBazkJejk -zg2k*k*9xx&E2FDBP2)2b)MktG&~qfaQSq#^E=UDo`YV$}@3u?FhBo|qaXJZg4C3Cu -zihCbz|FYc}ZLfR4d=mBv0Te&Yq$`~ll+^ZC-n-^gOF{BSZ|A=ylkr1M@mv3_uIK|J -zI`T)X25elQ_{LBNzOakRq6&kU1JnKWiG%f|byL)F=x+zA=0TSiEqFACsW_7wZzv8B -z-kBuMAVUK5WAN{5Vp|Ql+2a596GqvbV2wFOp1p{tmYr>&^g)KMUAZdZrNsOG(DDgL -zuK}nn7yhpw_SffAq+zsD(eQd077X_aEc2p#H++*0mH$}JM4lt(HSfYHXXK^z{Mck{ -zw^lhPc16g)={%M^;J9{Xwl^K*{h1-3#LZg@z90bq2Mtd!g-``6+Z=UfKZ5D=O~D^zTjLWe;m4bcYWB-UPW*t=8}e8`hYbTtz}-7wNWrvHZ(8T -z)v=R>&EPvhNk3HY;v~q{0$;mOXWQQ)#*#D~oFxB8xiG(8Rh38N9&8DHNHm?xc;11S -zvX=qxIad9TJcChbtk=f4eVe=Xv`aPjDV~zxR2g)p&A>40FVhV -z-62`6Jy7H=u1j42^~US6T`TQy?m+pTTmiFad|%coQ>8K?REP3b -zH)v7msn*!H23E^g+1{uQZP!8EVJ4eXy}$mUVqsb7>8_$eCB$v7*@)GZFw|UyC^}tA -zaUQ86oReJs&k;eED+yNpR)11TfJ9imE@!FGGYF9<$Co3Dli_7g;PU*ZIs6FmX&h|` -zbjkp^KUyH;lI-=vZtk^ -z2YM3bbEC2V;dzr})qCM}2Q)jBKej=L>(w;TTZOju)Qk?ZFR_Gp7*Yc|6rma#4VB -zXqKE2p`T{Co4Q9SjopA=`)ye2MlWCGSMi}oV$L@I&PV0ck;w<}@CUBm+MJ|{zXoIl -zKoMD`g04zIGe=h~gbn8ejN=~U7AsKD!?#oaAx)V(ritULuj3*Bmt_`X@TFruJI)1R}jg8w$JNFLQUd;~+Cb0CQX`I-1=%!bbIvQ~tJ7)Y8dBmGvtE?LOcAT`}0_3rl*U;#)e2@Exj -z;nJ86B!wCBCZsdG#(si_fLyKaZc(3fi+W>yBs5&th5V!G4)j};C4_n}Qe`M&z` -z(0+~RlI{a$(0|@wpf(3Or5ub%D*%38J0JcaH2)t8kn7CdxoUHTQA|4BxGojK-0_w- -z&K5QXf7Sp0>^2V>4Mnbo+b>mMdFXQ~lCjNrT_wV7mqhf%3o*AemyVazG@#uxJ;G4l -zKw)M!S5obKS8{rcO_N2`|Ac+Uc)DyfOkh8vYI)-zT_gUXOSNUmUl2kl2~mO7$GDKu -ze=od`ia(h;$B?8|S&VzW7j8TC@nm5OBnopFm2`yDz%5tmO8cb<{oj8#_YSrCx&n9v -zkQ5r&=(c&;#*>*>^9}K1BFayj<=ln#n)dfR@7vsyc%ZBi7lfD10Ob-AdHnO4`M3R0 -zQzm>QhtO(-;vF_vz0W2@7KK1X1;61oUO1brM0 -zz(z-`)+-re)YB)Aekur;2BnQ|BGHo;;*{p%*}#v)3iGVqltksuD0C4ybV~OI -zsq-?*sxKEFgpA41-@LOs5=*WSq})}riA>y5oQ}axkZbl~)GA@TusPa$Y9fJ)gs|N< -zfYs^bn+eBl%{Obu+kO=+6!TFnP8&Q7y)ZX9WE+Gq`okJ7WT;K5xk_Dzh_sq>=7n3VNuo0*pfzmTV7V-%TBP*h*0DPP0v;*naQ(gv$ -zggsTWZo8hm)0R@e9?Vz -z9{i7v`eBs*8DGB~I%euiIqOU937$okcheWY{Vv|uAsRymW$!)!K6F6Yq&_UKebzPq -z9IMncdym%kdLr5iS)BdyH8fJe0-=P(ffAYK2gyAPx&*QcyV{bo3WIX%vo&{%2BU&x -zT)kj&00DO+<&1mzTY)N#ApK&q8C+&XVCN;nw<^1 -zU{MoCUl_gXA&hgHV}h*oFfy9sWu(EWE{wO+__8C|X?;N0Slq~dt4{1ONqNIfw#kOD -z?fL#cmg>6K0o{6pjGw{5u&xWzMYT1)(2IKc7u=lB+OJk#W&fj3;bGT`i#=C}h94?q -zPMF3)SOt8VUmJeg9Qxyb^?8}Zj4T?+IN#j -zp%1NVXLXYmG9xzn(#?|DKVacyJey19J5@C^FeGFf9+qN6EpMDO=)a{0f^Yb17lGHpV0UKmvaYIeE$p+9G)pehj+{^D~ -zhI;0XNNS#M7#k7EG%LUBJd)YE?}fw){DCH9fK&<*^Kc*oxD%1r%qR23g;16l{5(Nv -zlf0|-X!GGr8zHufK(_pZVvsIs1Dz$M{YDY7WM^N)%^xjP?c>Y`{)}Msr~qPJ -z08;?!8|HE!9{@Ts5HZN4M(>kg_2`7e+WwEHvyO}6`}#O7-3Unc(y4%SBO?6;L0Gy( -zq#Ma4rA0#N5RgW?rMnx6rKP(ho?(~Y^Y_kc=gz%%?woj^&*@E(C|?}DCg5$^9lWC5 -z0$`Fzf%@w~|ym9?(tf;^#dwoYU4oK-$$us?V`A(Xv2eJVmUD~K#%AOB)DzSb$0PWrI -zTfL5z2{(M$!$3+W;HR7;ZQ=6$i^K}#-1vYI+nknJxDJG*ANjM3Iy~)l -zOp@@G?gy>))n<(gb(GBy32_yz$1fXk{P+?ImhnL^L~n?VUjN%W4(E;I?EMAXeS&BI -zAZhSkDH7Vmr(}UP?BDt=*W-370)E|cKUNk9uEh<5p6`!j%bdmY;|V5IfyQUJh`3fC -zog+w5zPuCeFT6A_=h;bNy+4M5gs_K|bs`{j%n8D-f1&Y5by@t|lMZRgvyl2csKy)g -zlPQ|j<5ajS1no&6l;-T0>zMsLY#%C}%D?+Ga4eq{1B-il)i1>hoz;hB3s?c5$ld!# -z>pdqGJ@(y)Euczqf(`Onfe9$1M%wU&OS?djXB|4^B5?NgdsG56@+hk|uGQ7)E;xkc -zQuxMRK3*hyBt2bkkzwKLm9n;#t|b|N?h$gAsZ=aE7q060AlK1`2!-4sTe?eblYNDJ -z1i#*8P3+O)m%A<@S@o%aH_AW{q16y2nD)ortac*9-(_A>x$V-7ZhW$IeLS7#1N#s4 -zGb=<}as9i9_Db`_`S8WoI=2f4xIf%@tz3S6wu%v?TFo&fy^vOMeS`(tdps$NwzMng -ziTg&ESGgpfeevJ$SGb{VvfkZ0J-Ze3A -zk0dyYw(PJj|7McpC==p5M9@3D?zv;k{F^^#-O@x`wL&v@*wYyh4CEN6%x~r`qf|iV -z^%gwh$?OV>bh{jgUK?y%=&(4eTWKL{8Od&VaKD1bs+CmgTd(A>C69b5f;{tenHhUu -zN%wT{$)6m5CU|}OQ4Wt2h;Tv%g5B_PO*38;cINzT}j89!_O3n*g_7%>!&u$B0xK0j(iE*$&UUg^P^ -zFZ|7oqGMxv)L@8@Tg!XGt=i}40QEn2=L&ntp74aLTrb|tTBjaHbKP2tKhu46P?_&e -zVjSsGy)OV)#^VQKaoTgKFWW)8kr&xRP}+2I7Cs3i=n_Wy5^5wY4Q3;+C*G;IN=up` -zSk_^s+V->aHS2qYpI~$jn=G~_0%w3;JXXf7LMl_>6A}4A=rHi%x|oq7^C(`v$VwI= -zKq9P}YomcAwKC(!PlqDV`!W4@qr%f9sK3@}qM7^s=5`TG_z2yY*3x#eBmj@Vk~9DL -zH^DW3ROL)9UQTJh?+{d-@S|h$IaPb|EFKA->Sv>T>C!b?rZ80Gs4$}zTbS|oQgg)P -zjYbcN#K4Ccn0?nn4amKj;OfiLrY8#bJ9fHaI41M^3Ld(>GD|tR2E$q03u-3*G%drP -zAO`)9OlrL+eW=?QA=cn#VffdHnmycuEn2<&K!bQ_X`?0+$&2_$!Y+WGAl~? -zax0?8lq0$QOT9XlUijJeE*CvQ~h7dRP6Hjh_kSgm7PsZG7ZB -z_&O`<)8%LarsqOt{?WkLo`P^&+P~l6&H0IJJNY@;CjPb4FRP -z+Uipp*F)pJok_&F0{OUHhO2(epzI;*epz6+1&3^E-+(xAn^-DTxXY9qS1oT`f0!#3 -zH5YI9+S)*Wd73`3B*37Kw?~V%64G0fqdP#}(0zw29z~0S)~i)`p#3+=Bm?dh$dFj2 -z{<0R`P8@S(E#U5mJW_7drD+7#A_XGb=>c(1k`!BRo#4a6mV2@4gBSV5pg8yxwLJ*p$4)!h5y6_z&?!o|5jxY+`@wa9WAtZUa61ih>Ui^Ka`hMdrIfm&!tC -zQ3fAG6_R+C5q)li;=LIaRC5#q0J#{L9YGnAYZzdGUEY<_FT{~#7WDT35o$K%-(6#R -zcwzpvYlnd4eHi0Q^2f3Q5N7&d*5H}>DnQ4a-VXl`CgCETb!snXuh;ZlejGr3qi#HD_SBn29Ip`H9fb+EbbLzMe#M#> -z!V&~loXwsz*Z@b7adn@Ze`R-smt8`ZB*Rh;voV#CF!*lpPUE$1>KOlR_+WL!+ -z)=dHicCMxn*^Y%aZ -z$>DuwmQ~ozR2`{zo^R)+b>j&PsO%<%e6aY*-DCN}k)&!NrX)7YFN4V}Tuab$n(qiQ -z)N(CbA14kLG;Twbx+@^#RYXC~3R4ye_Cl+Y*5};~H$A9kh?ipdG>7n^L@HW`bT(RZOlMGd0Q#@9U^1P>c -zcBjHrF11WWoa^MwktKe;LVVwI+I{ED5###qk)9013H5thG^FrSHoD)#z;!K6!>~Tw8pvvzHEXS%Jt)chc9!>$DdI>u>xolmMUR1BTh^L%JjIkyAK9?Kq#67~n -zqbGd{0#ORv6Vi89W`nsAi`Tvk;1P4j&ssX4JYHaL+oku)Iacin|56Q6fP5Zmkb7WZ -zsZR%!|3uFl_cH@{sB(fNC}LOkJhKF}R#zcr -z4WIhT5}pY4yx;UAp`ufz@`@jM+x9wmbiEu_Mw^UGZ#ji0ehQknDZAIY%;)#1zk72( -zY&ZEpZve@fKr_{TXZD)}w7SMOAa9ULm^SgG;pzS1gIQopiO{{L3r&EP6Gb@A_F2n@_-~>a&Qe8e4EmTmDv9W+@y%M`W1_XfEx&e -z!;&C?tkwPM(e|c^!V>6aCtvKjchlN0pV5cY4RDIN8Qk7dc4%cBZ^)C7a1Sh?rJV}`NFHP^y?mf38ks05@v^|J~t$kM~z`GHpHZ6WFE&SJ$riqCUo -zK+^9HOd{hCxpDsDcp+(?ygVtIqZRJirPJy))Gt5L>IZjkD14H7V7F8j;J)TiDb-ObQUM?;hDce!eMjK^5{C?-O -z|Dw|@N0oQX-(rF?*)`g4I_v)JhI1@hOAV6Xze^1uKnNA8H8wy`iP}Nm+d18A9VtT@ -z9DKbm=8AF#C@N4`@)TJnPe^^L -zEPgw`bJWVl(%6m?cNg)x?KG+qiK<9V)k{b03P>SUDC0qVwa+HnaNh;0IVPdY;kF?b -zZT$u@s;o9Ef%6!wCIX&uXkwS-tdEDAtVigfQ(h8ONr!!z>(Er0)MQr0z@&e2VfEX6 -zlZ)GDB0$fZ+2f2KEQX{8eY<0v6%x`eD;7@A=gPq}^g${@gUzv=S4cE_X}HoIwh}1h -z7Et#1IzE>UobJVXXOMAWvq;vu4x@0cN=x_e^B;mLv$Dil&Iv*^v)Z7mfq`_L;9ndNz1&s -z^`&>aV^hy76*82g7r?Qduvj(d%~TH;*T|V^vE}Sjn(Yz$wZmx7nuyhF%MP=m*f-}X -z%#p=|L;n+^!@Mv+z2IX*O1H(DMd&&%jv#j4MSEA4RhzLty2@QENh9C%Xt&Ags_U4l -zGF&r<>{RTH4TF;m(Vw{2EZdP2b)~&jj*>~EGxhP1z-dN-omSucB|7?!>-MDi-w9bK -zk3m!QMtAtVV}HNBvUub=N<+dJf{gA3-*!reV|-^Nx*TE0{!gH7E6S|D17$<=eP4a6 -zFwAg^(NX1B4V0MD^S4#sjl9YqcO@Om4);|0Pp#UhbKe;AS@bhu+MZ!_so|gPby?Q7 -zDJYqdnAkO*ZH3+Qegr~6ciGd-vUA6I89+Hu#yKeeZicVHp|QkXq`Ye|@dui&y1N#` -zh2TwsvJcaei(CLKm&Wqk()>%LV&iAeI1Sqldr5VudO)4xJX=(AbmAe41~w=zYQZCO -zSzqfR;f=4tBQC!>q~i;2QLuSVZHPzo*$^rg>ElO@TKI$XY~n$^4zMnjqW8CX23^QN -zTvz#SSnO`pdDLMl+||vG!nl~ABTHfB?9)M2{CLx!srp<}G9<)yO^u#@aRhljn9}!; -z1Xsr@&q4ym>t9TGpPXN)5h}6Fwy`ZZZnvN?!Eg&%k27Zu4F_HZ6J`qP(l^2w&}B`r -zOfYHMSWoN<3+ktN_6lHyfZ>=U+0-WYlqrKIXHqFeTKwdFE;67#0SzP$8LyM~+d -zF|5BC&Csk&McFe=jpgNh&_7TGJXe(#!qq0Bd~Q{Sk%*|C{>9eh<0E>|=5)CNIr}}~ -zh;PJ$$NvjS#pDO=B?401Y=)ZF_r#U%OUvb0AJw#K_y|-_EAhpkS_op$qcpWtx4VzO -z3tPBWrNsmPO{$WG&wMv*fnS&AO@^$u(HkqE^pD$*e*o8Z7-9Qwpk`qyH`f`8lmo#T -z#IJV5@${Qs0&E6QSPGBm$I}DL1Wj^BPGu~-vExq2n%y^kVeiK|oTq#g)OO^V)=>?F -zEi_G@_`!eC^-cJ0G8NwFlo0C9-gnzaCoFhGxF$3kaOi}()uZ6<nP!h!~yoRx9~T}>nshH9UJ -zo50h2Olmn!#=-@2jrN)hGdRRlN^SR1_J+2kO2`Z>OdQAow1&i)RO_W)FqVF@I~uCp -zMQpC7{b=xC&^op)_dp0-cN(iOWVYT8QoMvLytUe>fqJIQNDNqewO>v_aABUxCc9{tqzpvHI5OEWgbfh -zSQr*IaKsYU(wj|+u1&VcJ&GKWmxkg0QoH1h`HX&J)dVwdfT44sd4Gq!a8+RAC|?9S1yk -zTh@h}`Dnf8Pg(0Yzp&@|xVL1%wOFc@apGye$iBB=Lv+3yZSS`MV@(nrr%^C|@7W7i -zKxA6jXk~)=oNCOcb7>;VAo1^sFS-#eH!75SKPG3vwy%y@_}mbZlF+Z-U;moXXc7Km -zwRNYNoi7-Y4&m2u)S17MH;XUg{MO -z)Fr=QGBkWLUyl1l+gD05rwDY%`O}2|oxSmIn0o`@4euLWh(9B{FDG02{Gn1qvUrd^ -z2J(&ny#zVCfXD`Qd%j2>z9_zYiaL5N7+ -z-|=7)#xEjK9u025*sz`v{`Yj>QHg5h4!)kC90?5mgrPG$JS%BxANfK%veIEL;ZpNR -z??!D8xtLuf$vo^<@{JwJz5ICB^1?KEn8%kH5pV4ObYAwPPF2z=D9oN|uu|1-U_4I; -zF1vC`Fh-zJq{Zik{nuz^eVrdr`lb7%dF$!>@64=dH@HgywuWs1kx2oc$#Z5hYy0^H -z8Y#lUks4BYg!lEFA1hXk$RLSX3d#8W&*?TCf5sAS-|wjC6Cm6vG~dY-bit7ze}$`S -zApuF1PyPJmOcB&1=O{Hj!FxPV2ct;@dMO}S2fIwV%VL#}kIpgqQX)+M{mJj&+MUzG -zwJ7c)JMN!&SG$!nu`f-ciSh)`ImY2wPUE$DrvmwyZkOYf*bFOmbsA!5adRMHd!i?# -z1Rm}Ig53$a)zrP=A74`m`N`_2l(CsMHS;!Ojsh&Z-Ow1rs)3%cXh?h5%_(hh+^1)CqzZ{52`I*BXV3kh>Fs|nL^_HLlU&~;Wl19_Vcmp6Rw5Z3f#?g9Yf5P!Zc>sV&RGP -zl?@OHO-r-9m<`iI{Wwe3L#2-BK+A`ChT^hZFFMo@gA$}sf>?O@#JdE9kn7m9J=DNN -zuGD{VxpRWwmiCe$?wcJmtzsW{kaPDpOtI0p-$sQCpR>%gSHN80wSk -zyXDg!31{(HPYAsXIF}&Q4O{hN?RR`GPR|MB9A`lsaTtJwzt)xPN~G^ejLnimW$Ad{ -zE`cecY<0Tskefh~ZvE5Kd8H@5xeaFXAAPf|HxyHirbT4zXhoxqwpSHw3=C^hBa3!i -zVc~LZkAh=Q%QkiE=t|bC{SfJtb`7B%WU?kF;=8{#at>~@tlFL6QlDn)W=JI%Xpm+F?@@&^WgEp9=kAq?wdLZG;=v -zWgeQujZB&~9OHY&>VY`)h6R0qB5LFuWV9Hd*+Sb85vFt7RR{;c7#gqzXpUN#%=;S4 -zek9SQnkxL|*$+KbH((0@&%B@E@eT`N-EAUCC82%;fNNQYGVJuS9kWZb<~k?JCerHP -zL$aDI(=af23kG+7=FQqj-H%!ZcuJc)9lvJx5l*vhL-h4W>CM6-5t32cb>6H;_XRr6 -zeK!wia9&x?C|j1~JxAxeAh7!+nw{g!cSi7`E&R2*Dy@4+-<+^TNom>!jDeIXrXlb?W&r> -zUeIx$MIkQXd^ZYsNtS`4GLhU|es+?N`uu3)YOGwejXgZyQgMZ(Je1Oz!d~f@tP*#x -zwq$*>FXEh4Ft2_Bh6h0CoYI`+px$<4qWk@G;U?xfK_l0FNg0E-)b*Bnw6E-Ua{a`( -z?&}bBO+HtWJ5d`cPI00aMv_{oPSaieSC?O^i9DEr;)*Z+lx1WS4So%ShOdPTaF^5l -znS>OT>Sj3UQvid -zDB_!`-De6%fje%zLqH;13sK!mF1Sfs#-{l9Jwjg78ztGB2}Hw7 -z8F^PD0eY5mj@nmceSTIftse5a8*@rkC-e+M{V7gkwmhXGBN&PYA`}~%Sl6oJb#PLY8OH32!P6W9LSbBAR-tSo+0@l;RFLV?8ZGs*@VDHw7{AGKW -zUlQYU-B+%AqqO2gCaOXT$T)Z4e<29iWPa$evaMdFKNw->MXk(g;0(34BuZD>)DBOO -zqsDPIL*QEpIo1(MdN*uLeEk}ZhgP{j5j~rMm4SD*wpCQ4R-D6&Q+s|}$>OL`j3UZI -zK=N^VuN2OA_Jv24lvuG((wb8<5MfJZ95z>mO=)w+@nSc>cv|Z-_5yZSTIx(4(GO=_ -zE5FFI`?Za3c_w}yE!*(?mlO1nYK=RHozKkx&VB{xdD7A})8cN_Ufy?csPNs><`F|) -z3r@`x08GYJ2QTxMMEP>$Ti!(INAr_-q9c6RS-()n&uX}KtCB;!7sVL -zw(s*dT<6=BIB@UX3~#SA^#|%Aa(vA(#2qsq1x9{fJdfej3}yo-XbefT2+jF?DEbCK -zzFnaVmWr8@Pc*L%igF}1(wO+1qArW^NgX$#t9Z*>xW~WLcrCdlNLRkqUlWZL{z9Ra -z!w$s&<|umOYrUYI89Q#`-}(6Ur_~*2Hut~_Sn%3j^3?o;pX#E-4ugFx1M%Fyypw=r -z#?|i+dJzCY?ZbO8N!06}O$%;9B6;E!mtE_)Dq`ea6_*_<@97+x{E5U$@=6sg+k{ -zu`Ypdm1Z;&=Y(`gPsI13ZRoy!FwOZX(KOUoZ)r|8Hw>(!z1b0UhqWVskdmg -zL&6;ERUf1T=9M-tW=p25w$(%-zmSHOdY{dp7NQxvo05Iy(bpX~JRjxPLk&^ICc_u;w{-?jWk3CI28GTn -z+ZnufAoR`mau2x!z+_Cnxqd&`{mYuUN0EuAb0%f%qNE4zDp9Cnx))Wj_Kce4EuYjSnzmzj^@rDmZsyeC?A0Z+0BGsZ}PNIOuh -zV5n9ER#$qDhOKvyQq;mLx$WL;!PH?)RAhvqW~mVr8fX8i -zNf-F56Gf(6ZvIP-6CGR!hdaO_8F}dHdRk`hTjMmyYt1hruT=l$7Izi=Z}5(Zg;C#H -zx1L_)f;5lfU#x%>MN%H8{?wme74KP1ULcO?2l@ur>G(R}lvAY>c)WW+yj^DRh>!gMKs)l=HQ4f<$Gw4IP8=0kWYX1)TOC215f$KNiz|3$5ZWav-% -z!qq=e`kz|FM|FS({qc#B$<@%>Me54FKqSK0Q4H7v#kr;48+)23!$fOB>$7q|^rFr05 -zu{Ov8C)C -zF7Nn@bk@Eg#QcxC8?b+oX1%$!h8kX20mz=hLHgy(ur(aHLD)|#N86^hjo}ntT+{XD -znf#^gpFZ&#d^;u-HV6n{Mwc5@=MrvWNLhrv13kuU3Ra}OU38>D5=UI3&5;@sd?eJH -z+$3;{WJONm7-F|}ZX113Kzah%;7RUFm){W6upUty0 -z-gjYb-cR!39Oy2>i6#^2==Tn?pi{3%DC&lKwD$8CRipY##qc9;GklD=t~zV`NLQkV -zgsMMO=0!^bM_d4Oi;zm1oIGgkT2Q-+n+aW -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 -z;D(NX#ZcGhBk%>J -znqzX`l;BpY|L~v+FmPcai0-Fm%Q(n*aJi?raYxkgis*dzfdE7a^{>iEXEccpCAFAuFq;N -z1Uj5Nca*Hmum#lZt}f#vqML1X=dO```|EY25;01fS>Pfj^sPS*m%uAGIYT8aWx!xtqL`&%V~1scutSJKIB54*c^K -zi%q40_&IH?8o;)WYpNxwO`ziBaSN*ySaNCEakBawaK>sZaUIy4z?1VI(w3PH8XF+b -zB!xC)Ae+<#mIy(X`hm({4rQ7rZlKyZNit0twb|)dRIt;8=d(vxA|nF@{s(INqcZ-J -zURqZAsAWdxNJndqf?JMU9Kw5(ExjMWlmJ#7qE|IT3vdLZ?Og#nI&@5O^&@3qs>0M?iD*fu3yfMH&2meNwJl*`_ouB%4)-xYvR{`QHH5 -z7Sex6eMUJwC}7iVk5Q`AGOZ&at+r*4xBm^}k?^D^_AsANR(=GA(md9>nIcW`CEKhqe=v|W0fK#iyz1N+P^4nUbWgfbxm^X<8Bsdx5_w#U0 -zppCRo;1GI6c!Qf1#;L3o$W9)jV8a=%XV`Zv@f8=I{-Lf0pMu6zIE+X|G1o~9=#Zcc -zZ#+NtRO)Y=K5~Zdqn{pFE4JOlLq_Gg7|IF^eo~dQRB)R=K~fS$H1vgkZR7uHza5pA -z7B;QN5i~-3eTi9^n-cyBx4~Ew91j)SxNJ -zMt8-!A -zX`&hYlr_>l;u0y(2R*l{Su5^q7Gw!E6}EA2sJ-Gy{__&hW}@{vU0ZP68-;#2Xrb^+ -zg8dp{>#YdxiHIN--zexvtGP`s9VGK2l1xrHA`8x*5IXsVfBwjUfZu>>or8nK^|`zy -zR)tnq^v|RT>PQ9g6cpz;dmSc<$CBZ>~U1Rr1I!99^PmQ`!35>_ezA0&;StGIPzV&#MTZ;NHoU%{|C-(2b$YD -z)S!0%#p-YiXuH)tH&uh;EwSCeYi2;+?vkfmZwWy|R2TWJjq|0YnFM+vY+w$0w{Djr -zcsxf(jlQJkQ&Q_zB-uXMP9^sCS>yCd6p|8|-~OYrrdCR$mXs#qP(@bhR>AgY(_i)b -zNVw#WI*B+tioM|Kq!W-ZIh5OBcqQGErt4W!Oj+;xcVovAwnr!(WD~i*d`*2taqRBF -zTbNkVy;Sk>NsJLnPJ2POH}fJYga|1hCo@_BemO}zZA`x@Q>tMuSt5~YdN~VohS3f= -zKSrZ>tmQY@B=s1Z)D8L{+ihLbdF<9Y#c5F$mcH)rShVR#?rucO5DPb4giyi%3=gs- -z-!~9h%U+{@8NOCSdoxldF5jnEZF1@N*wV{+pAv<0z^ZOyBR(!fIcmc1rxZH(pfN)u -ze&s#RW2Ri4*ys6+th5e3It%)QUOAE;^Y2DjOFl${uVE+e&y43d;G65y(;b@fyg3~G -zZ3YEq3h7sokW9CvIGF2gOphXHwCKOj#oy~ -zkDm)MS~pR2-IlYrDFx6GJ)EVbn46SOT!II6)Y0appmtto$-&6S%BW+dAiK8?iKAOR -z%`qul?c~8z%!Fh@f2ZQ%N&CL3gJJJmHHMnFQr}*FDwi6c3wZxTt$s-0fXc*i1}8xpJ?U>!zb|{1F41}~68yRPN#97(5CZ!Rg_r*~mCZC#SKBMs+2;_6Y&TSo -zXpN!nlE5v8S@@9l;ufm75IqH|yCrW~(7D#^j(vFw8J=VqM=|p3O(v*r% -z>Cn8lx*3ND7X@JkS{yeh72FNddDY4)mmN!2&Z~ -z0|HR}49$Bl-C%?OI=8H_#vX#>E1kX$eRiKPrd^aBVJP0Wln!cn;+BDK(oSwTNkEw3 -zp*z~~^P11aZ`DOu$8R!`IDWmDAaUpOa8L>SlDv!(3_ULdR?%+aVU{}fZOg{b(cL$X -zf(UMuDi%131V?40!3f?@Wk9k8e}eeO)*mjp{$Kl4!9h_vgU~8)_f@!bR&bUeA305Q -zV=b6{9*#j!W6|wykp1jc{2Rohj>!9joJJqXgRaMtdMPR`8hfp|I~)E;OIzg@tZ&^U>%!}yzxV1o~&0RJ~qPR~N>o)l1 -z287KsMQl(@IRgTn_PQO&rjJn>m~Jm06n%iutLcl{C&OZz&oj@?MY@|kpfnEe -zHJ+-0^BFZ7WREZoyjqb7szR#F_br%`ML;5`T$yMJX=s5y5@ERq5fdsjZ?1%Dc{d+k -z0)F@{zxniE*T*ZrKuU9jK6_#O={AGA>th=9XO)0L31sr5`;gcfGAzJ{6Thxs((gv(04p*$Z5YtJum1MdUvrao>-cL1&?-B8!y}$3<{K4m -zpe$VyiCoP@FQw0*bV51@^oZ;*Df7_O5Lyaj0PVNUL&^O$728$?zqnu~#JLd&=kBLQ -zSnU3)DaDNT1l9~H{*)oP12If}a-%^zc9`4bX8mY6DYH4_*VBnO%lc10Ql*P8eFHr~ -zwj5`Hb=~%i%5Cy(r -zm*4mI&d$tx^XlGn?m5h>=p}iFt3@$Sxk5(7A`BGGGJLjKDm(H3LxCawpJ>65@N%g~ -zsgD^xEQp&YI&KZFhZ`IxSDKI#LtUf2Q{2W#!3P`%1PZMyVc3cyEiA2W5lI|CMhr2Jl?m~;jg^+o)|0U4awA;{IBGIcu_>G<7OAcI3E7Q(gu?JXg$TeOw~ -z70-3ylufQ`t3dl9$3XLa;cKZkUw_Z^{NScOn1i4M{B|WNWffOiw;> -z@?9{wq~}f1AwaVLRHjs-J4!(fkJQgbYt4=Zd?H7EHfdzkSHn*|ZWh}BE(9Q=MU*