From 2870b91bf2911004aabd26ca780007a3054479b9 Mon Sep 17 00:00:00 2001 From: Silas Parker Date: Mon, 3 Aug 2026 15:41:19 +0100 Subject: [PATCH] Add support for scanning IPK packages using the deb-archive-cataloger Signed-off-by: Silas Parker --- syft/pkg/cataloger/debian/capabilities.yaml | 1 + syft/pkg/cataloger/debian/cataloger.go | 2 +- syft/pkg/cataloger/debian/cataloger_test.go | 30 ++++++++ .../pkg/cataloger/debian/parse_deb_archive.go | 70 ++++++++++++++++-- .../debian/parse_deb_archive_test.go | 34 ++++++++- .../testdata/image-single-ipk/Dockerfile | 2 + .../image-single-ipk/Dockerfile.build | 34 +++++++++ .../libz1_1.3.2-r0_x86-64-v3.ipk | Bin 0 -> 48828 bytes 8 files changed, 161 insertions(+), 12 deletions(-) create mode 100644 syft/pkg/cataloger/debian/testdata/image-single-ipk/Dockerfile create mode 100644 syft/pkg/cataloger/debian/testdata/image-single-ipk/Dockerfile.build create mode 100644 syft/pkg/cataloger/debian/testdata/image-single-ipk/libz1_1.3.2-r0_x86-64-v3.ipk diff --git a/syft/pkg/cataloger/debian/capabilities.yaml b/syft/pkg/cataloger/debian/capabilities.yaml index 6d1f21e9923..fee11b8dded 100644 --- a/syft/pkg/cataloger/debian/capabilities.yaml +++ b/syft/pkg/cataloger/debian/capabilities.yaml @@ -75,6 +75,7 @@ catalogers: method: glob # AUTO-GENERATED criteria: # AUTO-GENERATED - '**/*.deb' + - '**/*.ipk' metadata_types: # AUTO-GENERATED - pkg.DpkgArchiveEntry package_types: # AUTO-GENERATED diff --git a/syft/pkg/cataloger/debian/cataloger.go b/syft/pkg/cataloger/debian/cataloger.go index 183b9d95ca1..9a96a9ae582 100644 --- a/syft/pkg/cataloger/debian/cataloger.go +++ b/syft/pkg/cataloger/debian/cataloger.go @@ -21,5 +21,5 @@ func NewDBCataloger() pkg.Cataloger { // NewArchiveCataloger returns a new Debian package cataloger object capable of parsing .deb archive files func NewArchiveCataloger() pkg.Cataloger { return generic.NewCataloger("deb-archive-cataloger"). - WithParserByGlobs(parseDebArchive, "**/*.deb") + WithParserByGlobs(parseDebArchive, "**/*.deb", "**/*.ipk") } diff --git a/syft/pkg/cataloger/debian/cataloger_test.go b/syft/pkg/cataloger/debian/cataloger_test.go index 4d5deb9fbf3..6e842eafeb6 100644 --- a/syft/pkg/cataloger/debian/cataloger_test.go +++ b/syft/pkg/cataloger/debian/cataloger_test.go @@ -276,6 +276,36 @@ func TestDpkgArchiveCataloger(t *testing.T) { }, }, }, + }, { + name: "image-single-ipk", + expected: []pkg.Package{ + { + Name: "libz1", + Version: "1.3.2-r0", + FoundBy: "deb-archive-cataloger", + Locations: file.NewLocationSet( + file.NewLocation("/libz1_1.3.2-r0_x86-64-v3.ipk"), + ), + PURL: "pkg:deb/libz1@1.3.2-r0?arch=x86-64-v3&upstream=zlib_1.3.2.bb", + Type: pkg.DebPkg, + Metadata: pkg.DpkgArchiveEntry{ + Package: "libz1", + Source: "zlib_1.3.2.bb", + Version: "1.3.2-r0", + Architecture: "x86-64-v3", + Maintainer: "Poky Maintainers ", + InstalledSize: 0, + Description: `Zlib Compression Library + Zlib is a general-purpose, patent-free, lossless data compression library + which is used by many different programs.`, + Provides: []string{"zlib"}, + Depends: []string{"musl (>= 1.2.6+git0+9fa28ece75)"}, + }, + Licenses: pkg.NewLicenseSet( + pkg.NewLicenseFromLocationsWithContext(ctx, "Zlib"), + ), + }, + }, }, } diff --git a/syft/pkg/cataloger/debian/parse_deb_archive.go b/syft/pkg/cataloger/debian/parse_deb_archive.go index b3b5f923f41..f21001c6ed3 100644 --- a/syft/pkg/cataloger/debian/parse_deb_archive.go +++ b/syft/pkg/cataloger/debian/parse_deb_archive.go @@ -2,6 +2,7 @@ package debian import ( "archive/tar" + "bytes" "context" "fmt" "io" @@ -28,10 +29,16 @@ import ( // // This function extracts and processes the control information to create package metadata. func parseDebArchive(ctx context.Context, _ file.Resolver, _ *generic.Environment, reader file.LocationReadCloser) ([]pkg.Package, []artifact.Relationship, error) { - arReader := ar.NewReader(reader) + validatedReader, err := newValidatedArReader(reader) + if err != nil { + return nil, nil, fmt.Errorf("invalid ar archive: %w", err) + } + + arReader := ar.NewReader(validatedReader) var metadata *pkg.DpkgArchiveEntry var licenses []string + var ctrlLicenses []string var unknownErr error for { header, err := arReader.Next() @@ -49,7 +56,7 @@ func parseDebArchive(ctx context.Context, _ file.Resolver, _ *generic.Environmen if err != nil { return nil, nil, unknown.New(reader.Location, fmt.Errorf("failed to decompress control.tar.* file: %w", err)) } - metadata, err = processControlTar(dcReader) + metadata, ctrlLicenses, err = processControlTar(dcReader) if err != nil { return nil, nil, unknown.New(reader.Location, fmt.Errorf("failed to process control.tar.* file: %w", err)) } @@ -70,6 +77,10 @@ func parseDebArchive(ctx context.Context, _ file.Resolver, _ *generic.Environmen return nil, nil, unknown.New(reader.Location, fmt.Errorf("no application found described in .dpkg archive")) } + if len(licenses) == 0 && len(ctrlLicenses) > 0 { + licenses = ctrlLicenses + } + return []pkg.Package{ newDebArchivePackage(ctx, reader.Location, *metadata, licenses), }, nil, nil @@ -103,7 +114,7 @@ func processDataTar(dcReader io.ReadCloser) ([]string, error) { return licenses, nil } -func processControlTar(dcReader io.ReadCloser) (*pkg.DpkgArchiveEntry, error) { +func processControlTar(dcReader io.ReadCloser) (*pkg.DpkgArchiveEntry, []string, error) { defer internal.CloseAndLogError(dcReader, "") tarReader := tar.NewReader(dcReader) @@ -111,6 +122,7 @@ func processControlTar(dcReader io.ReadCloser) (*pkg.DpkgArchiveEntry, error) { var metadata *pkg.DpkgArchiveEntry var files []pkg.DpkgFileRecord var confFileRecords []pkg.DpkgFileRecord + var licenses []string for { header, err := tarReader.Next() @@ -118,7 +130,7 @@ func processControlTar(dcReader io.ReadCloser) (*pkg.DpkgArchiveEntry, error) { break } if err != nil { - return nil, fmt.Errorf("failed to read control tar: %w", err) + return nil, nil, fmt.Errorf("failed to read control tar: %w", err) } switch filepath.Base(header.Name) { @@ -126,12 +138,13 @@ func processControlTar(dcReader io.ReadCloser) (*pkg.DpkgArchiveEntry, error) { // parseDpkgStatus already streams via bufio.Reader entries, err := parseDpkgStatus(tarReader) if err != nil { - return nil, fmt.Errorf("failed to parse control file: %w", err) + return nil, nil, fmt.Errorf("failed to parse control file: %w", err) } if len(entries) == 0 { - return nil, fmt.Errorf("no package entries found in control file") + return nil, nil, fmt.Errorf("no package entries found in control file") } entry := pkg.DpkgArchiveEntry(entries[0].toDpkgEntry()) + licenses = normalizeControlLicenses(entries[0].License) metadata = &entry case "md5sums": // parseDpkgMD5Info already streams via bufio.Scanner @@ -143,7 +156,7 @@ func processControlTar(dcReader io.ReadCloser) (*pkg.DpkgArchiveEntry, error) { } if metadata == nil { - return nil, fmt.Errorf("control file not found in archive") + return nil, nil, fmt.Errorf("control file not found in archive") } if len(confFileRecords) > 0 && len(files) > 0 { @@ -159,7 +172,48 @@ func processControlTar(dcReader io.ReadCloser) (*pkg.DpkgArchiveEntry, error) { } metadata.Files = files - return metadata, nil + return metadata, licenses, nil +} + +func normalizeControlLicenses(rawLicense string) []string { + parts := strings.Split(rawLicense, "&") + licenses := make([]string, 0, len(parts)) + + for _, part := range parts { + license := strings.TrimSpace(part) + if license == "" { + continue + } + + if strings.HasPrefix(license, "(") && strings.HasSuffix(license, ")") { + license = strings.TrimSpace(strings.TrimPrefix(strings.TrimSuffix(license, ")"), "(")) + } + + if strings.Contains(license, "|") { + alternatives := strings.Split(license, "|") + for i := range alternatives { + alternatives[i] = strings.TrimSpace(alternatives[i]) + } + license = strings.Join(alternatives, " or ") + } + + licenses = append(licenses, license) + } + + return licenses +} + +func newValidatedArReader(reader io.ReadCloser) (io.ReadCloser, error) { + prefix := make([]byte, len(ar.GLOBAL_HEADER)) + if _, err := io.ReadFull(reader, prefix); err != nil { + return nil, fmt.Errorf("failed to read ar header: %w", err) + } + + if !bytes.Equal(prefix, []byte(ar.GLOBAL_HEADER)) { + return nil, fmt.Errorf("expected ar header %q, got %q", string(ar.GLOBAL_HEADER), string(prefix)) + } + + return io.NopCloser(io.MultiReader(bytes.NewReader(prefix), reader)), nil } func decompressionStream(ctx context.Context, r io.Reader, filePath string) (io.ReadCloser, error) { diff --git a/syft/pkg/cataloger/debian/parse_deb_archive_test.go b/syft/pkg/cataloger/debian/parse_deb_archive_test.go index c9baee7389f..be11a5f3698 100644 --- a/syft/pkg/cataloger/debian/parse_deb_archive_test.go +++ b/syft/pkg/cataloger/debian/parse_deb_archive_test.go @@ -3,22 +3,26 @@ package debian import ( "archive/tar" "bytes" + "context" "io" "testing" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" + + "github.com/anchore/syft/syft/file" ) func TestProcessControlTar(t *testing.T) { tarBytes := createTestTarWithControlFiles(t) - metadata, err := processControlTar(io.NopCloser(bytes.NewReader(tarBytes))) + metadata, licenses, err := processControlTar(io.NopCloser(bytes.NewReader(tarBytes))) require.NoError(t, err) require.NotNil(t, metadata) assert.Equal(t, "test-package", metadata.Package) + assert.Equal(t, []string{"MIT"}, licenses) assert.Equal(t, "1.0.0", metadata.Version) // md5sums should have been parsed into file records @@ -30,6 +34,14 @@ func TestProcessControlTar(t *testing.T) { assert.True(t, metadata.Files[0].IsConfigFile, "file listed in conffiles should be marked as config") } +func TestParseDebArchive_RejectsInvalidArchiveHeader(t *testing.T) { + reader := file.NewLocationReadCloser(file.NewLocation("test.deb"), io.NopCloser(bytes.NewReader([]byte("not-an-ar-archive")))) + + _, _, err := parseDebArchive(context.Background(), nil, nil, reader) + require.Error(t, err) + assert.Contains(t, err.Error(), "ar archive") +} + func TestProcessControlTar_ConfigFileMarking(t *testing.T) { // Create a tar where conffiles lists paths that overlap with md5sums entries var buf bytes.Buffer @@ -48,9 +60,10 @@ func TestProcessControlTar_ConfigFileMarking(t *testing.T) { require.NoError(t, tw.Close()) - metadata, err := processControlTar(io.NopCloser(bytes.NewReader(buf.Bytes()))) + metadata, licenses, err := processControlTar(io.NopCloser(bytes.NewReader(buf.Bytes()))) require.NoError(t, err) require.Len(t, metadata.Files, 3) + assert.Empty(t, licenses) assert.True(t, metadata.Files[0].IsConfigFile, "first file should be marked as config file") assert.True(t, metadata.Files[1].IsConfigFile, "second file should be marked as config file") @@ -62,7 +75,7 @@ func createTestTarWithControlFiles(t *testing.T) []byte { var buf bytes.Buffer tw := tar.NewWriter(&buf) - controlContent := "Package: test-package\nVersion: 1.0.0\nArchitecture: all\nMaintainer: Test \nDescription: Test package\n" + controlContent := "Package: test-package\nVersion: 1.0.0\nArchitecture: all\nMaintainer: Test \nDescription: Test package\nLicense: MIT\n" writeTarEntry(t, tw, "control", controlContent) md5Content := "d41d8cd98f00b204e9800998ecf8427e usr/bin/test-command\n" @@ -85,3 +98,18 @@ func writeTarEntry(t *testing.T, tw *tar.Writer, name, content string) { _, err := tw.Write([]byte(content)) require.NoError(t, err) } + +func TestProcessControlTar_NormalizesLicenseList(t *testing.T) { + var buf bytes.Buffer + tw := tar.NewWriter(&buf) + + controlContent := "Package: test-package\nVersion: 1.0.0\nArchitecture: all\nLicense: MIT & (BSD-3-Clause | Apache-2.0) & ( GPL-2.0-or-later )\n" + writeTarEntry(t, tw, "control", controlContent) + + require.NoError(t, tw.Close()) + + metadata, licenses, err := processControlTar(io.NopCloser(bytes.NewReader(buf.Bytes()))) + require.NoError(t, err) + require.NotNil(t, metadata) + assert.Equal(t, []string{"MIT", "BSD-3-Clause or Apache-2.0", "GPL-2.0-or-later"}, licenses) +} diff --git a/syft/pkg/cataloger/debian/testdata/image-single-ipk/Dockerfile b/syft/pkg/cataloger/debian/testdata/image-single-ipk/Dockerfile new file mode 100644 index 00000000000..feeb4494d51 --- /dev/null +++ b/syft/pkg/cataloger/debian/testdata/image-single-ipk/Dockerfile @@ -0,0 +1,2 @@ +FROM scratch +ADD *.ipk / diff --git a/syft/pkg/cataloger/debian/testdata/image-single-ipk/Dockerfile.build b/syft/pkg/cataloger/debian/testdata/image-single-ipk/Dockerfile.build new file mode 100644 index 00000000000..7feaa74b122 --- /dev/null +++ b/syft/pkg/cataloger/debian/testdata/image-single-ipk/Dockerfile.build @@ -0,0 +1,34 @@ +# Based on the Yocto Project Quick Build guide: https://docs.yoctoproject.org/brief-yoctoprojectqs/index.html +FROM debian:stable-slim AS build + +RUN apt-get update && apt-get install -y \ + build-essential chrpath cpio debianutils diffstat file gawk gcc git \ + iputils-ping libacl1 libcrypt-dev locales python3 python3-git \ + python3-jinja2 python3-pexpect python3-pip python3-subunit socat texinfo \ + unzip wget xz-utils zstd + +ADD https://git.openembedded.org/bitbake.git /opt/bitbake + +ENV LANG=en_GB.UTF-8 +RUN sed -i -e '/en_US.UTF-8/s/^# //g' /etc/locale.gen && locale-gen + +RUN useradd -m -s /bin/bash user + +USER user +WORKDIR /home/user + +RUN /opt/bitbake/bin/bitbake-setup init --non-interactive poky-wrynose poky machine/qemux86-64 distro/poky-tiny + +# Cofigure to build IPK packages +COPY <;1CGz?y?Yc(ICOyg9H{|d~Uz@ zyZ7$B`{(Ap?UA0H?&+?oPfhiw=)^3&tQ{mUZEUR^E!{Y*9NjFvK5@~~a?}3b?SGE{ zrxf7h``;D+Q~q~of%%@38`Ij|&Bx2#h118BTV4zE6OeJXmDugTuzrQqND%xKnaqF(Las&*lUJ;QElr+k|I>08kuy*L)_tJ7W! zDnX=>>E$QK)r||FoQOofs~1JYaJ}fCI5}H0D{VaSv>4wjQAM`6e`|zKn~J?`kW=jC z6QQCD5iTjtC7*JgOP&Zz=8~Nx7m44Kz=;XL=PAyoQ zCui6Dm{7Ox6s|JQPi~F@Dx~ON5U@&r=XZSJ&0$Pd9`9p~3^L+`EgEyCUUFrj=-oSo z(;&a*0?~Y0Qa*O!bJ}X+dK}b`YjRXyiXbdwKkd%^K{l=O_j}lR{)8s={@59)cOAmH zX(zfFZ)Pp&YIAI2K5#BT&f-(Q(Mzps``Q4vCG2hK+hFg%n!!^_>6Bu%caIpT)OH$A z=m*Y*`A=pSTDS_EHJ6`663f_^Bqe}%H<7zV4Q@SffO{-B5cspl1(#Iy?f~Fh)BSBJ ztSuak2efj`&bJuZOFNfjIlo+Z!!)3qMmqm`Q(g(;t(?TwTu3Gu3AEmIZdsQxU1~^S z(1qj4{6EFbAw?~5x){OyJoJZmjbH3@l z68^1&bDh<~3)-S)K|5j3+KvvKBU2_?P^~$jbXkqx=O0mZC)TsJEr0r~cKyDI2K*TW zz8q)Xrl`1&Y<8=6fWU6e6z*;av=+#26)f;7(KfKL2)1WwkP=~4q-&~55PZ@PyPH_^ zhH6j#wH`@fsMVeRGL{YI5j++H0dA`{=8uv=LxVt%-FA2B?D5nGn0wB$zvA_Co;y}L zP@bkKw82$W6Wuoc*G&)tmlIiD-3zOruKse9@FrsA?)!>0xeii6)D8^!w;guSo!~Y?Oxj|!lv+7 zf&B@P=i?r3%L#F>6+C4sTG!X)Bq3%#nXacx7dHRv7a_UtP&42g-&^nq#Jk+j6S0lL z3;Iw)J{j=e4oOguJ_gdC+vBKO`{LCDXYsrqp`E#5rF*lF$4&CWns6 z`gHNVR4Cdp=p}wgQTa&v7S9Hso{9~O(V((&7SQ-p)=W@)t`c>_&?E>h4jAsz)jpJi z1_#SM0^&Zaz}v2R3}icXPUfG?2P`92eq~7?00r4Z!B#|fTtg$h2FEu}qpn3BF!5xv zs&^Y=c!#791E4p~v0=_D=4-J^kW@RF@}dvGEAeDvvq8K+jFG$4~1|X zWwo3pUD?ZbW}3I}F}Xlx1eY;=Tx(1D?3Sl z_xD%^Tj0nkPuNo=WsZXqocga^3tqdO=v%Fwraw-^MxXO+4uVbFCD4{n0Cv>U<8Ij& zX&oT17P%~ExYR)42m*!j5Kz6iNQ#rQA8E-YdkTa%5 z3$R^bi3Ycxa!+SvF_dx5HxjpB^pXfUYn0y?1=4g`qcE)TLqzZMCt_4K4%R6p40-6T z&AQbbEl%&9o>_&AoEFAdt8C{_Cn~D>+FTd>7Xt5eb9THFzxa7&)hx1b6H`J?O0Fd3 z8~VPqbr|^MISZl&lO@b&qu75YqJ#izQbtvT|GY8gK}6Mo=r7-OO40BbN(FJ@FP)U1 zc(t4O&8@JCFmq2HseUkuBFV77)_uv7u1myhHgDUEU+I?l3p`(0+u<)G$`&M7w6p%| za@RsiVM$I58>Z1`zu}EMSJFQIi}r@)hhDs?S;OZ^a$bU@gpn42{j}lBtyx7!lpfpo zLLiq9LMrRN5(Sswk=NX;GjQOoX$b#}y5FJx1hyh5}HMP!+k=o@uqO59Bsv?QT zU16AyeHl}Ye=Kj+!C?haYAfq7V|-rQ#(2NrIxw@MICmgVuhe`XzYWA2ST4j4Xeras znYS9O5(;Nbu>#`7sw)6+VN~PMKB;|g-jvT#!Z8t=!c_(gauA^P@rjCXn9 zsm(RQz{eYZP=dg6vX3TkJE#mkBkWtjx^AM7Z-RFRv^+W>Jzh|8s)m(jXyUJWFH&jq=vJR+8Ec4UxB)fcOXobN%i(I@Wvh%p3z`6C(`CGqqRgacVF%=L(~wEgU}%zQt8BJ0K@({ zH%3Ss$2BK!==%qH8~BFL+)Ka919Ik>hgH$`z9`~njB$n_fsi}@6$c;>O0ni#@vKYv z1XxsYqseCdzS+P|2?K~^1b+k+UiWC@6A)Vx(|i5&`z=a*CTLoyC@Ye-v-{mrr0dl- z`4dn?#z;@4SP7m7!{@XrCkbWX-Bd|x1OBs*dY)G$$)1_y)wZ>FnKB39x75oBBpj~- z0VJ$R3lNJ_FGIWvKptgXh#^pWvxTe8GdT`Cq*rMv$?rZ!LTKdrdWL>7wD(d@J!+ zmuN!Q=|u~Nh2)gLZ<(BXU<~8AT#9e+$iVNR^uC1B$7o9cYchcN85#E0lmU6bliD)-bL`*@dNKGrX`xtQTzV8i3 zn>#gO08IkH^E}Jepegz#%hm60dIAAul%R;vTBs%Q+0@^1GRsmqEJS;2%2_Tir zzewTFcIP+us?M#|qmyD?xOlMvu7PD0(b vTozI+h>&B3rTF;rS(91{tomg_g|>o zUDM)auCOnmOV5l!G8+fEI?WDB=JM^iGP}4{*Q`dog+a!jO+C*cyW64!8(4D}9Rg-Ir_SD@E-2@U_-Ma_Na=PDim-qIG^kuqZcAi+6 z_d4Of#0=$fK*P2Oha&+2)F=j9rNEj1TijNBVR{88J(cM8A8>kFSZtI}ki6a)!tv!z zx*ck;9K`H2dp70p;KNcbyxJd~{IPIT!`f91ymCdLPaO|0Dm@-OYA z^&DYwF*d5RD{BA>?I`)SC|>#{y4Ze?H>LFMRk`vc!p8M=Xq0LFX_r3$M+r| z5$XTo^SQihcWv8b*Ezlyh7|awbok3hV0j8Z_Om-oc=fvehd9V7Wa>p zKZXpK54Zc{$xoeJGw)2`^Ci4dQ+$F|jPx=I=%h|nSe!y+m)YVrT9yr9V0d&IX6*X+ zEL6i{756E%NO#HKe_OUfci43Vc1MHMYaP~X@e;lNY&{sl#JdLzh9-0tC|AsBYUoV; z$(nY&OpYkkb$7!%+C$uAyJ>`5={O6k%lw}JlVd2P`-n5lD<=@A)NC#gzqFwM&eRIyF-pRA}KPO0v?)3u}fCyVvQZq>DA6KH*3vi{-P?ZseL z{d`G@3H)?eu|*E@;GO%x)&$}mc$2r^UZtdA>x}@!A?-F3P4|Jf&F$=RVq?|aM+i`b z0TfsbYHFD;wzJRf;8+8DVk{mm7_0{@5bw+is5&$>cLrFnj(8&t&`e=UYV#^30UJhJ z#mu_D)iK!}ew^)NusXMI3Qfrwoq=J|3Ib`-&IO&gck?@B&w+`Xs9Gz+z#5LCg=iU% zGgL>@`qzvm?Lk&Ki)x5@lhLW(p_XuM!dVvPYSIS-LJd8Yi1lrtTiAK zFBu-&7|hJ^5{Tl_&lB=t5!>55N_PR;x8D%{77kMN-6g z8!Cbl2lS=-O@7>OjLd`4Y)Vmy|DIU|5j|808YLFcJ(+iX538RC7y9-_uVX8FaMPFK z#aD=dtPd^z5i&b?AYAywJiU#H_ZvM9iODm9w9 z23G#_;s1D^<|Tjz8K}k=2D@)|yNdDyHO7;6fhGt;#mI#zJ=C%V_A1If_hn@Bspwzk zpywWn{@vgV#4z=KWHykD=;AA@3?Q}Hj zir-XLe3!GByIY88P;&0Q+LOkd+`=`3t;p@hB3oOcnD*%M4`J7OU+x(w{Ea=JD6YAC zzZCgJ8eQ?#p~c~wDB(|7{%cOym|6SJjJ%`B;XL*+nA_?d_5-)oP2?E42{V9Uy-sLml!7fECrOF;HO1wD9T zU*^qmVXjEGQgmmUHtRO61EOV!k522QGI(sQQV{gl8(N%L=P9Iz(oymqH#9U7&wtwN zzuU+>dnpoglRh7;M*lY5a>b3=?Z{gJS5&4N<D`(OAx!UjAT|dnjl68uhVR~a$F4oElt)ctrIAEf zY|H04ot{!Gg|N^n1nfS5sHjO~+;@qZYw*TD&jVaC-V(1GHngAF!kzY5h@$&!^^YqU z<)Td4C%PqS>yeE2Z!5v6HUM=UBwMO4S6f zZ6QKt{w5wKVP9!_-BN|Np&1lgB{WutSfjk^l{XH0zh zlVinFh9xR$DAN92e55BiIWWEIPzTK8i2O_~+Ra?5&fd&xDL(>kRUTli{?U6tRPVMt znhECFO0#4(aOcrGBl7VO_+G9xCSPqDFHWLBDIinB2#z-f(@PSHq=7Bp1}NS zrhe&$dmWY3xV_T2o)(`H>WjnhPQ@I|XBRXPcyrHcU`QRx%*Bv}K zN$l8LPs2B~GrQx(qY4|S5;6F?^WLqh^8{g-RUkIA09Sg^Da0eP#a~gdiQi%M96QQg zE(m=pFrVi*HPRg+2g2K;Xt^8S*6l%1e^``O!>3#I-I!aQ-beej2%4q

Y|qKoRc= zRXykHK{+Z#jH2sXzkb`YJHXV%@`L4&QRj2#%d8G9U?YH8Ko+IOSn$SixD@h+{O8k7 zz@mM;5PMB8e3cIbTZ_}BhP+)|7H=hR$?Mi_q-lzsJh^vov^(m+M%H(r5r>n%`GNEM zNJ`8`d^?a!vmh-Jq7?N_Ct!1D<+MGC@>t)wwch6}KMh^9`z|+IS^LQj`!2Ysub-hC zo|`>VAN*$NL_*{iQV36u6vm(pNyR!m`MVmNb6+dSIN;l(wLt79G>4OQGR^+;Z8O`0 zKv>WsvdtUu^1v>*Ttn3lQP-@pR$X1~`T9VZI!Ef!>u5dtYiZ)0&Hj0Me|!9y-kH8W zLH|!Cb#~JOJ z&Q75Ga}S4v3x~VF`2^!dh>`8i3x3>m&UOix+kTt@+kfB7zoeHR-|YOUC>d|vY(zws z;3>biW_$avBcb3)pj9PoZ&pILTcSD8jY-XyhU(Go#4isNb$8oxtc`vNuq_b{0W~;` z+~~3(C*P=bAn1ekf?6rwmjL`ciS6JZR)%LToG%Fr@ z!Rq^i{Nf2n+TE0J)`vxh8ugcq!vR9l>ZC(}FoSWybZ!THG{(T7EfO3w3WZy2JqJF+ z!(Krca`yWTP*$VovE%4a^?*D& zVjsldKUA;1OBcISiw-OTTEf)pC&6%)2cj1WlniLJY54u(o3fxkTYrFp97@C& zJpjw#+4I}79(I$KRkwRrPHpJ1^GCh+`D5+e1J?q3hEOlbSl z?K3Q9p0J~Hp*P(3j38;vjJaVY5wjHJTPIeELu~=T@g&E_?aOlx9zm# zZo~DPf9N^{-rxfJob|a?dOI4i026lm>`!qfEDa-_KI%E99f+on#M_h>MhQY&++eYR z6z|K47*DP#$aelfNm|nz@GtOIh^l|H5Kn@P_HTsDc?~9lhhzvVU&8Cy@csGn6XHC; zYr7*=NH}l-8LujmAy|Xyi~dJEB464~VamGIUr5?v8I@QL4cx1rgx8`BpPEfKwFhK= ze#iXU#77pA|K+A8O!i-RL0&kM6tfPaJU*#d_^UB=(hM9i6MovHL8&q45X|}t5?3AG zn0IYkHms4vEP~vcQgt5{A9GWXIP)1b_K}; z2M625+Louj!suM(8mkoDMiS`=Iq909<6&F!nneyHA(HEPrdGpKX>pB&X6W+xVVmvn z>@?Rrs1)@;Ea*HN)8H5EZqVLIODYO+V-hoM_wC3LzA#PqEte6|0Eu}yno$m}`6FX3 zxxaak&Ft&rSa49bO4xe9?KVaI`s=VdfHOHv=R&O;?! za?jQ2Ti`Q%%^c))dlsI6flogWiAyUKw7H2q_9BuEhgwL?)j_SC_jzeu=-Zl-wsZFM zdWDm{lt&fh`nK^C$3%5CIvyn;pubY#in!Xfl(WD80wY22xVObRaw#EiWPEjI^vh;| zAYTKOo#?Y`HRem`3T^g;M-FoDxvjOGo0Lb}gnQ3Wnm}Swefg4wv9~vGqor(Q<`M-S zrFl!*e*ZW&MuNXLuQvs+HUpb6uXFao@bBP>4->Azye~p`CKtyMPp7i8b9cg(8F0Dr z^BY2Y2@S)`FR>GN(R=P@XKz18f#?^mAcdW~i<6C%hZr6O^?U_zW4Axw5*Gh&Vtn;? zZk(E$s|&QVzP(*JvNbY^x4 ziQ8CpWy?;lh1i-Sej?W81WK~BjLV5@>#Wt>RL@HxGBxaSKueLm;j$P&;k~@9gT9n8 zZ?p_JSjR4(ahF!B6}yWLtqyg4S$t<)+2E*a`A^CFl9e|wHpH5v+GS#VY@*6#+-1_v z+||yG&8|_fk;FuDb!dKZ#;$?ylfc9KZ0PLo@zL&h?C>alUP^)C)nPjd8#fyPJ6=j$ zneZi}<#;L=8-Xv2XJ@?=AF5r(hZ=uW7cX(I@a+59^$%quD{E62tBN-Apefq*e>fQ; z#cJdiXm%jM5^TKVz>dt!Hq4CYB-N&%QM6?BvSjVIoOG{LNjsNK(!eOmYyD?i?rm9u zHXlg>GC@(G1Tm_Kcu=;Jm0Xd1#}tp=9IICd=ai)x|G+Kc1^RYVviR%k!uPQdtjW2s zIH^7!>iVeB*Elsv5`$=?U8}DM>l%khm5P(_kH+)pZ5pDG(&9=*xA)^g-?)R@Y<~tc zw`*efx<0;BBGa4=%f}?J#w^7sQc}t!^N#x^$2D3XLqt_aFf_R%L!G%))`&z<;o%O$ z2$_kJmd#=Q!ZQFVY`ml=qg|q0GQoCk_zkkDuW-OKIcv9O%HW3N#?oWeQV0&22*!8U zxb3JHkH2#&oRmYx{_rv~iNFb0Sv9-2@QuGxCY1s^aft_uNC#$8tcg~E2g~+IluX30 z>VA}n&M$o#L_<`X%u(YkW}h?yAO;-ku>`LM%&i69j^IzOuknN+MP0pnPsX>abneo=(ouvIek2V$ z8848kqtwH1(iveuXYwNYg3t3A)kdj_DEbhZ%SJ%1k4)+*B}>KS{)%$vgM}R(1Iw?q z07DiNrS0bphBoSkh&x%e2k7u5CZh)vint-|dH=tpv>;7}0e+MWOyBi;h}Anig*{?e z&|#<~5`#)OC!gG0v13$4KhKtiQe-=&0R;sC|Cy95;Y(wgSo-0ms1 zS29X47tf&mkzd~lVR83dQ9DG9dOIP0Mw{jY+;J>WKDlDYP5i>wi2Zp19qR;2?A30D z)pnai^w7xW72tIR(ABC;cpmGn@!SK7eV&pL^~Bci4^CbI-}bGZ=b& z3sC0W2t9B78+jf|eCk&Jlcqhu@q zy9XZuwYOj*$tU2+1n9Y*Nte7g%G=g_1fl`KbAXZh9xwnTx8)y!NC5l{%z58p1GQVc zVqg8Ad*;kRY#B5vm`;aRnq(Z@&$D6 zae6O{46WK57~9*odpp4PA1)S;M1b{4^S8JRUG}=rak06LQ%4ei{xHDBatjD(d~p96 zluYXR6aFOAvS-Hz)HVOydd~` z**G|vOQnD>#N<>wi9(?Z{(Jsqci6>m-?ihF8oXiC-0x}oyxL(9X!~LeT4@LJ6dTrI z#z+kwDBXT_;TG(O4JpD&vn5az5mL9#?$CO;)Vx@nC44nZRF9KD!<1yuF=;9Cdqg7( zC#_n~qoT7`C%7eUUZ>Ila*`YvA&GKng=LALmr$(+0{jbLW+Bez$4N$k5;M7X&;gS) zT|VrfoW>Zh3JUXbPY}XIuLnJGnN2_Em1o5CP5!F@s}|4=euGyuxoJRX`y z>tvRVfV=&;?~83K#2NmcE%G_f!kTD-2qNk@?i)7v2$;&w0qEhDQ%(oG|FlCNO7bV) z(;^BPQbh4mH}mV2fSkSc!+u3K`F)(D9}ELsG!29NAFpCF#!cAQ>Wp8A)yJ5A>%}c? z(s~AoctmIoPVHF1v8qoap@pT)T0Z4GYBX9VNK)Eir0*1ah*zq}Sp$j?L%9TLgf|E1 zt(+X~=!oTXjK5cy_&i@zfF=_0*<_x30a~7|vG#cl@)q=M@0_~yS=*Fo>patx?%OZ1 zx3W!nnP65t^`kZnE6&%am|t-c(#@`CSu1l{g?=0Mo|nJg?MRm>lg%M;WM)9p@9cB5 z$fe7h+4|Gnk%gakQ}Zs&&$u@^s_T?dKG}vYFW4P3NQfx5@bk+oQfE`~q~;lvRd5*Q^E>VKl|0?XtB@$y(&TrgQtLWj`JT1uHMr zo_%7#HAdGLwu^e+iP{{%7jBzmm2|9Ve*T29>9gjK>HTt_#YhU`#y>G4?3a90(j4_7 zJ~OLEOHf%@oi35$Q*e%!h)-Qp^j8rfBNqZabZ_D9dP`mLNQTrY&U+jQk|c z4ZY=VNDDQ^SgfzFg1e%S{WhMXW%>wkjf@E-DLO#P#tglatf3eV8_+Nl#xjp@{&X7AAkHhvQ0kxiY2 zV-;6T?dmwuj9)tc8>oOZ*U2NdZe za||tZZ8Oc=_hccSAmg*I(?Bzp;*9@z9i~Dw4%Txd5FF|5Lse0`BNts>Kwa65XPZ+| zfIKC;Vv@Yv=P;fPRQ`rTkt|o#zN+)Jumn^2WvWQ_LiMkr4`pY{Z0-rX63qP3MG#f; z69*T%#9w0ndOD@p3^EwFCs|avrU|q6J`CL(=^E0!ln&e@?uVU6*7O911? zS|jb*_J9$Ew}(uO_&ThmXNR1%-?WW}cfcjJ)~u|X#M!@8Yt!zacRGu!BNWJxhgyx7kwbEU#1yYK% zGl(^Ya}p|MC3Q=XvQxgc-@cYK-YzTGdw&G6 zQYz&75E}9N^dhUMrk-+u%eU^sZBNQ#5zfA$8?@MLO^A%YJdbaD#BISg79`r65nCPP zQ8BiIm?IdG44!nc9wJUJs4Ntr;r|KryG@mf9pI{Vq}NA(bCHqw0q1v^3b4lF#XZkj z?R>W(q_7fb-`Ho~7FWs*HO-~RcG7qJsckn<%r~waVp6V3$$y=9bQgiJ@HVp#Y`-#M zjqta0TFG{o2Pe~9_~$Sc)m(XA;5hpPlc%<*L7d+&VW7;X!YN0>i~o=PwI* zvd!VQ+~sF3I_5)rK-H;Y_?lO;VS;Z%dIyzv{>bv7r>G>F5FVH4B8uJn0^4FgY!vhB zR0#9*tVqUj4FFDM;-=Pl4!p@FlwXgXtkZC$YIp)ven0kj#?NE|k~NNq^=6TvZyK@2 zzGox`Z`wLfOgD5sobk%db?0seq{5RMjH75ed*%*q@t~2spBxa7CM*#wf|#7 zMcL`84!ce14MLAU^l+M%r((CA@hSGgxIj~B(H=Lbyh?QOCqY0fhl!VO-Kx!y(Gp&- zQL#W)2k{&MXC4udiSskLaPoQ8bbQ9sJP{ba@jGp#{?$^nE)x5v^sCSuo*~KCl1kzq z#AlK-lcUi}3Rbe}?SZCy-G9O7FS7vXpJ(yLlICM=|355W5pQ6mtL6luXj_>e z34nWw)KKc8Lq8Td9nvgG_>7J*$7Nx@8F>*8E^?tWwo{Z}KQ5>!B&p{$FiN>8p zYKDk2=@U@Wt7aU|nzAr!g&dW?o1>vvWU+wz%*$u4tNA6f|#k{)z2c&X`97_Sk!;D+mhGLfcu=Z^3+ZzAO6eOEJMIhEtn60rIs;Hble|-Tt z-)@_WO{_2Mmf-YC0rk6P1FCN7<_-VP3o-iee%TC?2kjPRKUD8QWNOlulcBC^M+A218OaU#M zhS`tMW63uHBLwe{^s$h(MH}Mb8gn+f5rDQXlO^-k11$P;_XD`;yAA9^9eHz+LLFxB zH}wnGN`N!`4aLd{W73Lfzr=Z2U9yLZK1$KuJs>%!n+$10ldYS_Fs6B*t9D?)R#Pd$ zWXSNfi#B;Sz{4a6JTvZAC}SqLyo@}2JX9&Y15E6aEkQI4=~6Azm8IS4CmCzLXeV`? zN}k$f{w)9o*)Pnl*xAN3xs39K*+vSo9t?^H$;2eQoA<2_>8RaUl@_SMH+!)) zvk;HlQBaO!Hm!r6?V#l>;dMs;E}Yefv^g)+Ve| zS9u^*X-iso(KhN+kvNAXLqdeHGtH|XQYXxb$~W$5$v+n7MWoj_&eAi{U{o`OrA==w z?C^EYizu&;z~~c>RdrV@*^uokOeTlDE#YGK0Cqj*(@QxwI-#;cdu+aUOGi6?5Koof zEX!-X%^NgU+m7B4l?RU{rcM<{p|Y@6R=)oIvz&%aZKnb?dHLA_{PkSzHs$6MCkuvWaRV}fk{!-r@CI!IaK#I6(*jK4A09V| z1%20OS^zFzW=_qM`R-D}ev^Mqv;X{z++$Dvpxn+cEhM@BXy>ibsrtrv?_vNP~QCn8P`!?IWwuXLmI&h zuh{-E&j3SZl&jSmyz}G+rsOl)E_u%sz55mtrIfA}VXbvF`FC#$r4M*rHaZc{-^->i z`{Aj6Y)932Lum7~e(bwu4y)QXfmM~5z~ps>AsNN+$RpV=g_BcR7rxG|4m$05mJjPr z6=Ahm-jKre$Da;rnMzg^Tx!CV%&FSxYMI)NSvuXdS-g@qHel>+itGc;Y|;RE+0GOF zB0n$Fk0%g+217AP|H$^?vkj@~?;?gz8q#Wf7x1{{ukB??a{%GA9D}M<=hHjZkj2;DG^ z`bnz2K*7JDthu6j9x?0cY zL4~RK`EX4QAj#s|*M4&r%xLg^+&AVIEuFf&1s?uJw9qwB?%*Hy9O=$QC(5Sqmi-Yw zBXTa~m~t2$UF4cMx7w8tMQK87-R;{T~UI(pOnl0R4__8Cxn{eD1^hz+bb$c zYNiUpj8Y)7>hJrxO3+37Ib)8(GU~%(veIA@#GP@oQf~UxiRR^v{xW`s!a4UtWj&Q8 zH|p;+^b)mu3mj`!9ENcou3|1Y+M16aCYD|O6C4FT6q(C4={MnNS>zJX#z#`1%>?Hp zY9y*1`6|MHbvq&L1BB-8If#gWEDBr5;Iyi1z+-F`_oP*x`y3tU#V;UN-z|u1Vz8K) zE-enEs{7Os0Kin_;VCWlcKakg6iDf7I~4e(?);vop595*%F$=rZIRTSRYTY2u4B%y z&WSb>VYra4TO|{Mb5dn$?Kwvw4_kiE?=U`mA@CULr%8;2Si8Sof5Q-!qzGeWx9DV9 z&{g{cThrsWHJeK*KKl>Va4UEhi4$>|tR>;tO%H`(Ym6sN)MQ&An}JDP%%;xoC_t&w z`7nmTY{p9mID9}oq=zM8NMeJ?m)MS&3=x^o)Tl;KEf3M8IJsI^9n*Lx-z#l2W7UV* z8FC0_J6!|T<_LN%i|m^Q|KBp|zEk0v_8E!ec6dhRP;g9*ECXZEW9gX)-$n4;%#yVB z*Y}m~^a(fgI~F2B-my?bXSt@SPJk*@JeB5{d96#Hy5YQP9|Q~U1r0v^w4t$g46(b< zq_p;aG_wO0pREMV`@*S-fn`^TfEQk$%I|eO`Djb6qFv9+(^w66Tl_h^8dNUz2d6>5 zZM|z+Bkm?+EG5ubt%!VE=h8&4chuBK$td|OXKQAF*rc$Bsxcy8SoCw#Sjp;a(M_EL z#04$-rskj-U}-5}W_z^sylP;fskoPh-It*7q+h?3QJ&x6{TI6-oSoHhnGh-OEc(|> zp#0iz`RnI7%&Z#3sxyCm-|%0#?j`9`^FfR(EiP>S~IGxH>ya+6f(@rQq|uP4|NCY4Lii7$SF{TK3VwZXqls`0ujvC)jy! zETxE0CFxMxEU`X}*8Cd$LY@!M$ls1XjgUXC<7$on)4YRm%2_)(|JxkP8kc}~-iWw* zti;_17p>^U=Qb%b!P%U>Vt)mJj&a&nJiC(gax%8Rm;^dPWvL|4yN%6{R6WT;p{@*l z6)CHKhrHVUxrrDU`FCl(5~fbCJLBN4#b;>i?0QdA_o|8PH=>O=hD27a1*&(_-8;b% z2E3FUHR~Sc{5MMvn^>+e2p}jV2fLQYu#3nv_WdWXr@cYfoFcoX+pMb*C^(zSv8#jA zH74y{GYNX^bkpXIN@}4VR)-E_dU-I&o=C1zF*|)bNIe?B$2^fVfjVh9JLzig8yxF? zH*&As?_zSE%Mrf*27nv<74aT#o#dE3KZusGmR|BM#6BYz;qck*-iT*jIWWTf;5MG-E$>iy$Dqsn$#s zASj3p^*R5x*5qvZ%JXiL96DmZ5>-c@kFArSY05lfKX}XP{oXUDW?uIr9b>f^n#88u zebu5K)ZRU1zg6g?#HpKzkbqa0AF|3fB2Tf1ILuQ2PY!HOtgFUPFp+#qiH~H-6!3M? ztXtr3&2VwKwhLq$(qj*c&}sst=$}Mw8y%+aRa|2cd|RFcY!Zl8ZD&+5+!T!KD3KmT zT#8_PV7L^Y@fJ%h2MoKB58KvSQ$1=7Bv7C_>L1^mu_zRncD0Ah11v=l3a=AzPL6D- z4=pFU7b|V4%2Yp#a=}zmex>g~>6jf}cYncear;%DZVx;DWZ5Oke+`f!{L?u_tn#<0ip&eD_O9wC2lTF*0@U6ehVGP-^jC?hvK3 zS%WM}=U2Y>s=V1=6JJbQSVD`+bbYdl!B1Tf@?758-%)4#=G~~Clf}nS20tKp=$Qk z2|ec(3{b2cYgDqU4{A-TPki=L0r}IyDwKa%8-3aF!$?i?&dV{|*x)0H9P}hP?YQzA z)TL)PlASPcPAAe=bLI9w?mkvw()YZ64y50n1(!0@Uv|=}khX-50W3;g(~$1ctBnyy zL^4y|JGl2(`D1}ozC_-e9o+F@BYsN{xf~m4*E%YLXDJ3&?br0#jwY<18~2w&cSO6<D;e97;{Q<>WieMhGqHwHzJ8Z2#0x?|?EC-p|8Lve)&ehAQz$i1qk zrTu=fT}#(VHC(RBP~cW5%N{t}?|SqZ3~JvsCBoE>8wATGqkJ zNvYYkCKA>|a}T{iCJL`u#s?9jN$-z*DCpdZEZmI9^Es`o1pzOD%`6`^CZEEIg7ISq z06yYfU;QLcGCwIC^#M;5!t0WGJXQdC8O!T|MHMAo=!@8EKX#Q`fbWbV zo@>BIM`a6)>171+P1t=ia&sE>ZDhIhuS`H_CHf!Dz@#~ZZcqWG!=S=Il{p~>1C-f6 z;CDO-RxACLmhRN@Tz<*3?A{2!ZTFkICIn{?_!wBlJ#RFZ@(GqiXj4B4O6SSuMZfgg zI_>G>4fzDNS&4tSqz174dp-W*p_k#-!cSymK=(C!jV-oZS~MRuDemcB!6CX{EC`l4 zH9E+s8VQ9Y(pg|LbRT+jktrKj5g{^q;rfaLt@mkt}|1YM_GAxSk?c+;#cXu}e(%s#SG)hWJ`lGu$ zmF^A!fu$QnT0~e%kWiLxm}ma)o)aZ8lY2#z~I;5Js_)M+i_2Id}Q@@8xgs3)wx-YQ+23_>DrhX3gEAep6$$ z#+F4rhI)}-w%f8vt8b(#*Q$M0CuWSpnLtH=%Zd&rqv=}OASuFYWnCGQH$(0HF0Tdq z&|Ur%1k~@7_!Trhec3xsj(aaI>C*4>0rYx=Th2wsy;nY++l#Q5rbXxE^CsPGdoo69 z8Ix`=+feMtDVN0CT4Q7Er|2FEA7?c_>mQ~I4>WrpLS(1pin1bIA5U@(DE!pxhu_Uz z97jbvhX=k20%`_R2Sc>JjyeTtAaBn6n~9t-dA0h)r6&#g=C5Ux5`;Bn z#ZPI@6G<`R>M;inEZ-}gX6X!PHBSUb>o)e;rHYGohVdkgb)LTo5suUWvY!GxH=!y$ zW#7E}ItP7vVXAq@&ZxDu?}PqU>qZ#A5va$_QLlLkB?W^Mpw%(a`IS81?-Omkc>}1~ zmv*wM9&h-%#%@Figi?V1UY7|Kf%H>%pEfXU$X$H%nnnM$tG0F$XSy`4)b&Vjl6pnJ z9IvGGGoYx%4c)BExZC>3(+T(IWnGkE8!(K&+RFZ)Xg{D+%2oSRpJj2hK}<}qPLYzs zRa=CyEZH=O>eu{IE@!&&p`K>NFVWuhGmadMP0ste;p2aiF(*0EjkN#OOxtP~#8p-~ zXy|6Hw|+c1=b(T4gYGQ@jHQNRdTxAL=2IOR@S~6x@B)B1`do4EN&+Fv%8x~@ z>lSnz>xwIKHHOVP&6>0BALHoNyU~mFE@!@kjfd1|<6Jr=9f zKm;$K)+O+I@^h&@%KL-@Tiw8UjNeBJWPIw^zHKy-3Mf2eWZ+wwep+YL-vGd1YrG+T7odqj8Qz9d@IeplR%29Nys}_YHTe z$9FWRY1q)xRsW4x7+PeWaK)0wI0t$OMuRAY_su(fYG)+OQ-7^Ypwe*LV|Bgz);-Nj zM#F7#Rw`Kmbhj~7_e~J2CihA4UPH?tiCw;2+&rYnqRr^Ok16ra!Od~Xvy~O+y{U-= z5)*RPhC!!C5-v6^ea2goDva4)pXpOl8txzA-P-%AYyW}yl$92- zAHnIpx&9rWHO5H6JrjOCw8?Kd)3kZxl?rQKHTv*zen^XMT4B9K>~iy0lUMn{?7r`? zJVtn+9AZtSH^i?2yfxRDrLQmA5NqrQoygIA^d^D|UTv|0tNl*oTkev_wbnid!AILY zOkX8_VekENHP^W{-9#b#p)W*x?K}U~V3{iQeFLfRb-jB1XL>Wr5;R&&5RamO1&w0 z@sD%r$G0CS^&z^w{kHf%W?DqoZxBnF>){lg5pXekiRw*KH#8gzJ*pmWgX!-3B2E}? z>BXld9J0h!R^w%-6`IDb_-^x4C;?=h6^*``sz0*F>qaWk!_0bK#Zu(lC{YQVlQHIY zaoa<0oLBn!Bl)WvN-R?1VEDUM_UaK}EB(bA_(>LvbR+?jur0btz5s|hX6e643ee9aMsO}^z@yOK6{_@GHJun26fW(xyxSC7 zh%+CX9`YKGh<@L3G2Gt`zN=}pcB+5t55An1tw| zk!4@~NAAjC+A;>_{lNFM`UqTU#%MdzjvJ46%Ms}--uhDRwD&iQdInox#GPUgAu&y5FMC7p1077rGnjN$3&hXC=T z>PmTpNc|tsM9^BW+{s>8LB9Z{U*ICqdZepFz+!HD^X+TDi+(1&t+qYIKEZf#{w<() zN8j9gt3s{c9mlLFQ8WD`{}({a3p@NwOcuDQ|30ZC$Rms0{xr0V#J3f?o{5|$i&#gyk?-6=C@75m(IPU`hqq>^iB^8=B^gjFQ~4=HCwDnxT{e^ zBL#*YMkE~{px{*l21YUYaE{u`5?tX@kVa~my@==l^T4JASEE;P8QcV zwOOwF?)f)dp(dB%JRj)cHq!*yb3{_MPcP>Ck8#LWS`|G!;xqDYil;Gu`@I&Ea)1_q zQtuFZ;o9qdj|Nb4?lCQV-Q#a?@K~qTSnIiP(l2Pd@FSUYKlrWiKD*HKJ)rKn01ag( z|F{|U3n1|h2D8@okNPwlgJ@X{|Hd~%PhZ#uqnG@)yuSVeEbh&RzxP!fZ?CQNaH5nY zM|?1_4`o2>+A%$mL9k9UafzxcF`7{!NKg6GMfg+yVSaKBXphn@vVUq zgK6)gMBMbDn7ZP*YY`liYh7B!N%(md?JuKulKtMUt1G#VN=1+J#h%=U5j}Q*ZN-ha zqp%+Y^NcB9hJIneihE!EZ-un@rP?$6AT$hZ@+5`dz7gQC6EgO}q|l1~DO`~p=9@D& z=j~#U)eC-`0X!((3prQUV+ORyKmNqlhu49rV3c2yQVDUs8{?n)1AUWtsOkCPprw-) zyWgt$BxPx=z#Gap`__C&Ue!EMJ*=aYUi?L8=UVv|@-@lsm*I1j=tJ>QGN~>mXogmG z*#*0R_R}kj3-NQHso<`7DqUpsshDvr9w@_XG&Sh==zb`cmp+G!$LWNeoi`IJ;=bs# z>hvv`pK*ZwnDi>EAg+F&rt!Adcw(Yz*55d5M(rBpxFo#p>1vKStKBAg%)0p#nu+M` zNq6${zAiJe*RNc7rh!w))g>QHnix7|PT#g+M8dnoE^#I%&WCp?LyBS+jlUXsP&p+2 zbqqX*j){_BB?DxEXlB8oIz(@tn&*{l-fR(Z9hb$w<=&+jfDPi~F!$4VNrd#c*MyzP zMx!qsBV?~WcT*Vh3bP06zgdQ72)X2r zGI2E8VAxufDn%wp_(fEqoVA8mkXI)VeUfAK=RtO#db>QnOt!n*pMEu7M9oJYrob?k zDS%in<>QLkVwtd!i(yCIbB9{Y;4zFo9R8R8j^zkD(Xf~ySC&h`s?e2!M_d26qhY~w zm1Wz1@~0yE$nMBcjGU<7IJ$U5{CS`*i@+QW0{K_*&ovy|!(quJ1rmh%-8*u@3teHl z$MUuKCPqxj1=hv9awHYU*qBcDqRD+NX9DNh)x2s520T19=!1x1pP42uuGI5GYx*X~ z)9QE_OLVAxA?%nbkon(rXGrX0WQJ~jEQAP#>Ua}BBr?%ZN@xw(jIJHg=56jdgFpPk z&oD((%_j&u%){Q}33#vDcBZ!^gf^xu{w};zI%%99>bWhedxWH%w3chAS{A~x0a3*C zolW5mwb}H;1Rz% z2W2t&3%4((iW?=w+V|-orB3qh_)$zqay56r&4RT6=4u>mPJR> ziFe5RhHbaHv?3wqBKBu3CtOf>lFXUS&=9)_GD{&wH0b^_)eRApM9~%2Esr+9CKhK8 zlWe_kWRuM(>hnRH%os|b2|D(47xQU}#f{+9@bR;U~vyre18E_`FZ;uRVe$rcbwz~VxwMN^i1 zZiAn#q?-a|c@=`3?ryW4;8|xk#)S~ijmkc}Jv!kw{+X1w0BKm&YpHw+jak_wnT08+ zBnFp9R2C8|VE_Ilz&Xq5D2j+u@+^%4A3`6-rK&&pv)^VAE0btEzFYN!j`&*Iq_8Rx z3OWXtX=CMf5sR{9t(ic0(Pz{K$kDName61-gSM6$YD05PBLP2?TpZ0BHf0P6 z5sLi>*-UOp{G>9H_~{f$6P}TW(KRA;E5{UB+BBcMNjxNxK2aZIh$22|cq}DZ8KxWg zDAE)}M#MEj1zST~@vj5HqU@7AQZhxbt=563-qIllB5u1z3jMe!lml-qTLG83gd1`? z62%g8Ag)Lpek_`%yrv&q78Q@ouy4huGicMP#t z>EupCRmZprvmio2QWW)-?oOmU$|q9pmPrbF@+hZo#cyK=g==`|@UM;)S(IB4FfxT+ zaY1kf_rK@z61+2y+dfHSY#Fy8lE9C8Sk7T0Sas8FE%h>ph+82+ByXM8Dr1gvbGQ$B z_2Hep?3i*cYtkBIH{2dKvqXNer_uslus%WpoI64E#78Jl&r*yw!(hiPgvBVpFTn{7AXe(r|eND z=2;oNUDwX=W$CCjVl;i6uBwr;8lfaBBem1Zs9tSjcZqBwhTVl_?Z_)cPs)8n286;S zYjzPQV&#pMKj5C>lLG`7dP9*2)Jdz$Lk!Ad zbuuXp2qB*3I8kCX)jb;NF_*rX1hUxdl*EImltJvnmZQiUidc~wKSwyoV9X&i%@!Q&9#zurKg?TndOHosQ1S`CRek47k02ny z5fr8qluA=x%1j=aPRd@o@oeM0H}{ibXNk77f?3MNQ}$b4&9GcJ83J$jSMoQaFS0Eh z(8XRjkC6zr`h;N6fgZ52M_Eq3L}19 zA5RDoAAu(M@ByS7UFj5?$mkqtLdPz>NA6J;fg}~5)8(&+Xd0%CDnf*5(vewUx5dgU zbPvlGn)04HnKx&aruL3IE?CBz<=+!J#AL9_V#-lh4HRSCn%CE+0Y7msrCUmxQ#2JF}zGlnqb~5Re^0JB4QRoVB zhQuxX(Z2kSo{ws0`SmFLAuWqv6ZajuCAuC{?A#Xw@yN9ej&J50f$Bp;_;@0rjEz&e z2%j?1aL@)^i`n?KDKh$H$y&aAS{QEC;-5gt917%l9k8>ohtSgAA^#4dM)#4MSdqc% zaKyf6_?0Yfo(BQ~n5ETMKf6#3QOIV{V4}lm(F)6{jLGOh$0OfX!u$j27h#?L?abgf zQYhxg{8v+saY|Dx!bNuY%|@SNQ~|CkBt&40g$XWdYel(jqAd23$`mpQON7lq;xcl`zt<42J2z5yecJ(j6o( zeMSKs&%0-<+BUL3Scv$tesNyowU~%gxGI4<8*w!(KY|eO1L*P9h7C~I2&SuvMGhtN z+xPpz2hotZknyob#4b7xq+GVuEs7AxKOU)5A;%o=@0pD8&lO1-$C9GU z;xUWwE65Z zF{-qxB&e=6Xh}6Zos&Top-P~hgeJUB>p;RXiZV{GD-JtJCFK(<=}q4d!+~6iyt&2- zI(t-}xZc}geZlzzi6@R(txqC?sQn4Ej;42NqM0Ma=L+gYmh>d3@`RZ;ttvBxc`$~o zWaKd9(^tAd+_e$%-b&77#}SdKF4)v|DAJh7Ux_A?Py~~%nCbD>mpoNf>CmWuPcjh` zmTRQe8&mR#P)whi=f$-T53Q9Pr!MQIW6B_}&;KnQnx9C+L!u!3GSmjaKtf+Bov{-wmT;9cG+VpZXPHZ2UGE?RTk+9kpDWLK_;2{33ci6)L1a z0D~~V1|1#GIc#zRXNYl^(ADe_G3;AXE3sY3XHx=>vN+CRV1S&3QeR(4tt6Hz1^IIj zBW2`z4>BaXvczjRKXyEcSA>v1Qu3F6kpeO58Y>6)lvCT7CPdP9NgUD58G^M*Dyqjm zEXtmJexW)QPmXhQI*MLa7DL8uJ4tSLXbBALl$x-`iZC34tnq^eIWOa9S^vsue1s-;%26Lw;kYRh z;&*Cq2@Pd^bH-b}ik<<&R{nvOcMTc_6WGUFu_<8d6 zqkqSJxI4fvK(KH$hzrPsu2YhXDR8}Zb3^!q+abi)MeAW87ggT{t?coVl<&Ah=s<>orNkel9jO%{4&zI$@RynJ+QqQ3G$_qgD5XkZgBWygE+TW7DfU72**mQ>#;u>V2XJU)B zgeq@F!pK@#pTnf}tqVm%maRzW5CLl*foE>1BT{~hkwLByPw!&xL0_#*`7L5zySZUH z>zeUh+C)085Mfk)dYDnz{0voPF?ye6JYqy*Yy+R$Ll)^|T>c~}#jc3)pP$~QN(yCN zhz;6|x^{O+h-wla%^+l7AWE?+tHVXa_EdAYG}1Vt+sVl2|B(*nKo$Ak)aH+EC#fz{ zyrT=4B%Oy4_%iQk%2D!3ta;k5+sU7yBN^y&msq&^5DtCLfrRK7d}eYFt1&%hbFb2r z-BU6B!5*fH&%1#_nbkRrpB;1kJ+Zb*BJHZ~>X|yK7o|ia7Wqt$jPtKPO6}AyVbhVXCrQa-NAIx+oPMvY}bl0Y(DGtSi+Ql(ZVJT8b-n z3dD3WI&^Yj`u*W@JH&NS+%~%)M|IiVk+Ngu>UmsoylM6@j<|C4_iCe*Bpx{|-V8|_ zVx=uXWrC$C$>`ejml+9)%!dIQ7Dh~nD4!wp!eisfmC^x=-F;R@EscE)iQvmA`(IQ; zd|3rT;&3W0Nuj_oHC_C>qQ%kspy{%E{`sK%OD6PEo-PT7rv|UMNZT9-^{_;QtTHFd zpZULn6vBS_?M)&mBMwcKIH*7r9FwqW5U?jP$wWQKy$6xvBUd31B~RkcG50WMsq?Zesb;>vmbI?W8{{7Ia(*yBo%bgG1@zF0%xbgSt<$+x3`8 z?B+EXb(z0r#kM1I)3GUOp%5PHa(#xHM;~3Zy`G#*Faw_SG zMe)|kV)Keg3Jvmqh~`Ve7hpD(dYHs_*%xCLq}e4V9!ao|g;3UY50)Yfw!{umR^fem zZTg>QDmu!i6#_M(YR!3ibZiN19M7GmJ|0rBpZc;XEU#WzRRz(zZIkGct!5|X^?hwG z!%q_Mpd4AC+Q|Bm|jOv8(Ns6aN{qNaeCqM$Z^j$3Ys86ARMw zB9BgcKhI&ap<(F9Knhxg`dgB8M9T5s1yqOg3R}h=C#9(wtc)X;#nKr%A!$>~Tut$x zBq+g!7$(;J4ipgJm#@WQL~hIL%iGN?p;yb~u}R@&r`g7Lb(zX+L{S?!TT^&@ zHxb5Ks7zRqRAQU6yo!*5hoy9Ynk)cej3NEmi6#d}JfGysAEcyrB#!HDS4~mD7KsYR z1*P-ndu`=mab7dgBue?r*s{E%%_f!b83N`^mY5*L5=c0G3o|kH05W90p0J7u`9n)2 zqS}pOX+-evR*zu>Oa!De`>MfTYoBll4Y%dnb(L6A@Y*30C}|00RlF18qSY=Xl1uU! zir&nTBZ>U(i+$V#;qvj#GpRW3%VkU^s)q>*lyU)Kqh=7bwCz%RKQ@E=6Tc7gi-xj{ z3eE|O{B=TBL?aUjIy#Z4*#Y$9xE$+J*sdRB(OZ2oAn}c;D0U7)Vk&{8=&py|dgJsj z_Gp-lh@GdZ9J&Xp1sJ>?fp+EUWC^H~EF^XZEpky&l(TvWvcv+8pJ@=KlS&lsWa;^a z3pqIRSk>~H{!)8Q*^M#OU<;*EA~7sthne}xnNt_C%+9J(?4b(O5}6<4!Lh4M*xIiN3;~K=XG#EFVl3x zp@?5vaBR`0-OeLcwDqMPHPWMW<_vSrpe$@bjHY7`&_NCODrX}3VmM2rNwD`A#Q!#a zGYQ{TQj}m@H4&44Y2OODnrW3=Pl>82%j36A+5umS=6Cs$u}yO2FjeL(FNNJHjCKZP zdJD|;&ULbI+--)S1w(s?hH~XJ8veYv1*~lCGkxupY`uVOrz&Rxa$EB&)a9dc8y(9* z201&J;urqh3NcUbWh5@;G47zkAYIn^L;^LkkOto!3eWO?(^}N{XqH&t{ zkW&novfap%;SXSjvv+tHQjA2^?3HahK`Pi|Y1g_5X0gs7C8^uUI*FDcIP`;Ao5j4w zw4#{>q+*0mITo4~)Lz*k#5^r1GdPOZQ3LGl3LR0m!VUT4M3eIA3dqNnt!_>*( z{Zeo9CPzUD`@3RqM>hq^wpIM$U|6R|SY|wbfv;C70(Y;j;*`T=PN#xkdbOl8q0j6> zx)(YOA2B?KnxtkJ9}!6j1Yj6cmQqbqPmd(@?CQ_7Qs($q)6I=Iv|83_ckd&H9n!NyC9h1msI#B?75K zEPL_kj?i7Z$wgq!^5<`o{US^ztH_MM5uNQwk_n<9uYwi#rf4CYzr>qgloa|H(EcP*I37rvVWPG@?TL4ww*hnODFykp-wNb zQr^Ug>vf;(j6SB*B96ZgitQ57t$&xi(hD&)tM7V9Re|O;lkFNdrn`_h)?v1(yWW4- zoYVkuqzwIfaTc7cnJ+3Y{T^jY)rh zVGjeJ{qD$imI$^4Zbk@7Z4KkeYvqtM(CkYGjr9)mj8=z9A06sm%$j#WOS-TF1L&@K zD(l~ryUoV7C*14I&;tfCnf+EbBjQto;L1GNoH@fcuP04NQi_&g5(XZlA~XI)E>wT6 z#I~*-mp3UOAi*zKg*p@DL0fif-cb`rSBBkrj8?{#SXqh+|DDc(^BRH7>n2!ypTmMMd0d2Am)fs%+qNk(vkSqSEn{evCk%2(j{pul*${-$XAjNL6w!VU>MF(rZxH$@X$!)ukS#ul7myMh~;97Af`10AB5%r>H40b%g#z@FQu4Uy9 ze<$A-ExIC4;<{;y-xe4WG=>>!Ol`H(pm_5d`K$b{1(L-x2y!#VEWdZW48UgBT9vch zlvqbLV=Y5RE*_)MXQtFv*$g%p2+khQ8k1)lIp|@SeXkT1GwS~{<*S9QYPfT^SyXV_ z)=6=6~@@ZKl zWZ>0m&w{iA{Oscdkyjlp8TEj;OC4j)Upt9I`~omO;nZ=ix-{(EYs^On{Pr zF}890<9A1}>Vl8i`z-j&w8`EZ5?7K1U*T2b_kIW#ig5;Duzl5H^@88QYBZpg&H#H_ z?gmAqrPiHk@U92;ch$#mhAaB5^gDbe0AP!#a7p}lGl$NpF|q8Y z;Z6Z^3E+uq-OCW_Zlo7H(H`0?gEm#N==ROUbOpH7|rAhgV>^%&+S zIn9|?f_a30THmQIWE-bIaXmI(d*X4XFuyKQE^7ulfu5z{XXH`el|wL@J`@(KM`;%@ zP%LU1-(mRG+Q)*9zzyZwf)bF^dXpmYWltL}dV4XmIl-Fr073y|Jcr*JZb~o~{{>uk zhHJz66n6+Zp)%%*(RDZ1%pU%_4Z&{1HH~F{$?lmhKS+CJb#@;2J-Xky`+lIPxa?nf zOnE%FCqmT;>W%!I4>W*Ug$a4mVE$mJss}*xeVc8R1^2V7SV#b2bM#&Uoa|;1o6Bc50p-$6>2jw{4L`J z%CLV_`~LKLQ~k>%_*=nu<3W$DU-X`}TyrVG<8e10Gq3bnNbBeCjk!v(BfH~}^Z*^! z`YXwb1A6@kpA0eIbUUPRncBW4{8ZGsirfk6I$U4MwW~nl;ltZxeK^)HnhBKR1t?fu zz}U!2EM>e-IYCjUC0Ux^Z*!W{j=5*N(|_2J6yN%iPe;qDD}u8^wugL=Q{`*YNA+wN zq||#e=C&V6_Xha0X!&}_V6-6AY;^g$*2{N=lBX!;q0ufFo_=`Dr8~omTfb5*Q!(V#M@9Z&l2+Z1iJnSAhOT5yaj`DQ4UAMuczaCZW5!dl=LC&HGQufU zb0D@@hY@WCZ1%;ncqka8dFyB==O2>iqy6tgK z<8DCc&0M6`4H(s-m)kRTV=IpdXozOoD+)fx14*L$Dn2e{=&motsRxE!g1lgz8^>R; z&AgwAMeDtVMjuk&v&*@Xkro!YQAtA+E;fa{l5gg2*b*nJDdU#GDD;vLdOG7bQPS#G zPqfBc2a{|4*vop*mZ8Z$H7xyo*1N?1Sm@VBl1As-wX747SDm+?*V;|O?m8dpP6$?H zTq#Vcp&|-`6@^X>B!tu^&uFVzw{}%vC8e@9{}8g>W!SHcHuhuk5z-bU(J=j?{4zv4wO(&v9yixxA61=cz+qY)~bo?TrZ7pH+ruo_u@aT>k`STAok~T4#8G0XDaPTF4rAvi1eg>`4jx-&Dd-DzXmB6IHdcA z&Fot&cb~A~9;$HA64id~k_Z}QG%Z1rabX7ZyKP&%=uT$cG3#P05>4MNttapzLDEbN zD?_~&rBD0_J15glR|J1|Y+HNF$h(uQhEFMaD&?i|t2Y(>=UnaUy3I6?5gNrnxYV#i ztB$m@Pt0JwX%q3RoA`vQ*R zgNjicTfYM&xK#yO?!ULCKv&8Zs2PLRv$sV<9}m;q3*IrK*+2GvJXRB16Rsd(ri^bd z^MlhwfN0fhW2ig%I#|w+Jbq<*d%7%mtnCo?g}X<^k!o`WWLXeYarXQHzhkw3n{L5= zD?jviWOVapD^yf@_qEY0BJ)=T@kE#T@f?iC?S&YFr+-eFRN9g&Bfm&zv39my0l^ET zb$0t1tAnj?iW8LXjdD)+nC@%hw)$VlGT%K)2FL!={bnQ2D(Dn3V$40=?8&)dl7q{O z6{P;2THDH>cVLcYzyl&%CTEKopiO*8#Qfvq&HCFCuS%VNL19RvEg*bojG^bt%at6*Qqjk^ zh2MFIoF|(^#*m~{)TIuA;=FPgbRvI}w{ZF7L$d_#mXVe)j&bZedYMj3k-3Nlt4YoZ zRo{l9#B|0=GydN6!|q#pGcy+HZ{l6WK3ppXSaVI1{tv6ORhGs1t*auEr!=bZ+&h=< zpta(&&$Qd#hN(-DI14Yxx_0cpU7vpnZbkRnoMpv^-97~y3)`Mqtzn>0y(HxfJza&(vP1&B3atHrx5)5I@RF%XLm^C#!oG)L^Z&^_5^9&GLp1Cn+QTjK${khLe++TT`}`gCKaT zmxKS)*8@Ur_qtlgkE;sGA_NWKm=G2n=8QKm7)=d7HGR+ZxHX+xdji_=fMUf=$qJlL zYJyDxz(5#9AJEKv(R1F>yy^^!vYWnTpb&eMA>FcPAGW{Y12JMja`2O5FFpRvhX4e` z>4ow?rys?6n{9_BWWPx+px(*nSWtg_cX|HbnfZ)4@6?8ld~mWkVxKbk1S7Wdg4J-) zZF60UmZxzu0ms3giB*XmKp~*&i;yt&3YC+i2n^=o8PL{2WAElcy*#@in)J=yQD%H& zW8Cd2Z*z8iZDW07dVYRZ^l44fc>G{|XK8hDPV@=;t%%QEJ`P%}S!43ZcV|~;>i>*g zEgtp8Z8g8mCXeL)Jlqk1-<@~flqZdpLz7ECnytqOe(5;I!Ceuirk-``6vhp;cl%Jd zH4hUF!5}fP>-$e53I&BO107>$pGg>C8}@ zhPAWh#~?bHVBT-xn>gX0X#G3?G&KD!={@62XzJ|S{}zL@j-SuBWL^mFRT>_7FH8q> z5TRs{p@E1!;B^;qbJn?WgVK*+1QWo(^My{4%7DYiD*j5Ql0|a?#nAiH(R0EYkX3|5 z^}h|<{Smics&4@MFL9)~+}XAOpb*3c83D3lB*yAxpm_X%2F5nak4K0Jpl@?^wo7X= ztyS*N6%FWnb0)l+59(SR93U=0Dd%==^jrugL4B#LOCZiy7i$uHPTkG0l7#BmUed9U zbv0$_bL|rk!K%5RRcej8D)R1A1;g0})Y}-Lh91v=^)+whOepasP=7EPSd#Z;jD##W zmGBO4{}wP*8XJa{D?Td(-UCiq7=W%m`r4vI77w87V|K1yixQ~@*X@5Pl^t9dNt~!q zW;U8`+|8&IjLm@+Yo6ixC2iISXmGevH1j6IJ`LW74*y4De|5?{4H)E_V8{_@!nGcN zr47J@qns${ecLt=4>BZ8_OkVRz7QThKkNg}_kbx5ct&QL@E>S^h7thZHqUb8gYscq z4lrK=rW!4P29E~{lR@oDaPqVD?pU+FN~zEsxP)^z(7&rl|D!LEi?Da4zut}c5Ft;oyqY%;Fti* zRD9;T%n*I%qEWqS_AP4=%)S6*;$i8d_a?*71ItNv#+HiSs}dQkfO<3VJ^|-w(|pf5 zu%q)?g61K#78hz^|0Holu)W0r2XdhnUQZGrHPg{Jy*BG>P?yuQgjl>ChZV8%51pw> zlGWagm4VDBK;mReZ3NJ`=B?h{ss#_xo8{$G3NWB~Y~}H=RiVl|9-4`4KG9PXl2zi* z_z}?3h|_(3%@c2W_x@Nx{pmH2-xaUoeCSd-Ec)v1{kp*(g+2A<(KFh%OlAr2ol$7K zHD|f@mUBfWGsk4Anp|W4k$bOL?bOIckdQL_kVIn2`K0z%q$`xQ1?XBFcBst~nV0wl z{y7G$7;y3lXGX?=Bm?$S=;;*=*VWwWcBopq{!)6hUc9z>L?3NFd0_yHm=}%L)n}x$ zQ1GN1e?RewodNpLKkVC~Q_}#S5BuHkaEH6WK_`9=E?^8f-@{k6t2>AUpZa8h>1s5HE zVyo37PHM`8*=|3x1;+~f2BeU0aU)+suSYrFaD3_RK)rs6{sXKKzEaCwOfXUBX>3M# zu_gxwy7DTTy`9JPYaLe}e`Eq=qb4iB%oD(34CkYK9?UzdToe^>|ZpB{U-jAZs800n=E1W`nv_`qqv!Kd4hMrE}YIR*u&Pm-`dyyrgS; zC7Df|&NxTFgsEScc3wi?tG+PJyoCM?j^P6)_hVtNMDJCU8?z)6Os099&wC7Au0J!3 z$z0q4^e@)(a0wT7BU~XqfL%O!1OoJ z803$87HaqiR9d{f(x3KfU};?HC0Pd2?}6T1tN>u53b3Z77;U{m|Mv;;b12iQYPBQS zUJq6Wyk3CkW)gdjbWLSGmLECQ=Bf=as@c2O=Fh-?*I5kku>tW zo@Lj74kl>js5b)s?N{2_x7JbNrT(1gFNtQL!Dm5&BpE1+p$5k4OepxWIqR}4G+A=f zoAjrZm^BQjX zdYT-~{DQUmb?hQ$oF-SiDDe+B(v??mkl*0g?q53``UC95P>r2?f9ppe4&Ynq&DsIp z0-?3bkHigua=a(0#k{r;ccALE zgvpgjnQ4|B_P+_aDp${^4P7Ym4LQF2?=)NO;JR8hSGfCEfGsf4aQv+1B7cb#Lx`;( zlKumYsG&^#>lee90fBn|>c4=5=chh(Eu0OOqDQ{4ZtRAuHxs+X;ihn3;}?ps!%w&m z-%ILl1(jaNROcn~TL2W?E9ryp0OD8J#1pvm7m#})GrZ=FIUc}lz2&!lsi!`qNrC`I z-q6smm)6lMk4Vo0$HAeH9#@4!{JA)U10fFFX=#Ntpe0l?VPW&+Mh=k(8s;{9DQm%tqwOEe$tq_ z{#-dTKx_<0xw}ghUw+Ky0rY}`1{n8bIGb;|765jBsI}ZV9ZRJ@BKETi$bgz^psC3!q?KWC86wcP(1uwJjcpg&h(ekgsV4WXLRa~ zx11jVP{VIxc8SMw`^Irr#<2aC(*@883aV~<3LU=D-hU4DF1h812Xu^siWmO?YE8Es z{x8MrLB)iBfcT%inM#0;7F1&DY(VJmW_&bISpqAxyt96|o>Tk==xf0>RiF5Ff=n21 z29OteuTMhFR(gxTrXaFrEC|b*)43QliVet7?_|Yfzz2e%&TM~Cb z(;L2o`jTG&)j0uJ+~5{rfQEk1*29A};)&IptAXX^NA&&B#g~x#xEwvJ zPXJiu{y4NRTV4KKkeBS`D{X|~fs8B|+u1W$`1PE_WphQT|G|$?{Z4;$hnLL1SGaOh zp@iTH@k=Jy;1Qz$=C3e1`WLn@*Dr(LL-kGJcvnws|6p{A_d19RkC7~ZsvPtc`&H`I z$tQ%8(24>WMa8{J(9tJ^jL?cq7zO#g3hL1(xwKGbb2xS#Fli4rGYPx#>yD>ew!7P@myf)FbaW^kd@J?k@oM0GNM*70kzC*6NI+$7P$ge*<@^4{ndYkr zlb~*spazqm7L$iMlb{Zhpn8*sXLX=|u?xCr4P6X|F7jC)jlDU_Z@w~Xz5>*`LN6ZK ztQdj*>hFts%S=2h8(m7Wnn`fh&XS1Rz4xuXcZ4bF<4_Qn;n@T-Xd%eIWv%qH6 zsU!W1ZIiF~iLcmKBIH6MWbxDGRPm)+*BINt7~3Xm@e^yY?~ac2lUmnVruCiLj|sM| z3AW81o&Pr3HVKNK2#S3#LoO~u7PHT%a?jPerr8Fj*{texq*vHB<%^%>i~p~yvyO@* zX!c{Dq1J=NWi2KQ? zdqu&^RLVz1!5K!08OA?2g>N{8p05G7uK^3?HOo8Wl&9N-w^#DlSA|cH?{BaC z;6PaLJ0hfSr@w!H8@RK*eSJ0l{P+|6e%60=fA#6*u@(}P4U`z^2Oe)H-dw3aKURX@ z0g%46{=|X)ue;kWcUQ`gz_b2D@H-_0oDHOWxw?9OgnfEMe0n5&dtC=gTx@^c+4cs% z213C1+s6=&mq*{XS2OVYaliWUw)f4I#Peez_+1hLUhVHc+|Ind+IWAx>32EU9svR; z`umTzc`V#_S@?eu<&~O>gHWLd>sKwO!PM%Z42I9DPLbjy}!c0y<&jhr6GOm{Z|A1jl0`XcURhw zcX~(=?lLW@D9_(ymw*EaNig0mq3CUD;#;M>lw@D1JddRK5-qvtZ7#*L)v%|RRqiXK%A(Qz#hF2#Vug@ zBW36TB;t`WD(?Ui{kV;|{K^@|_1wSr-nb2{cr4_2F5G?p9m4qhb?-f~H090Z8oWrA z_LkTOxqo#DfZ!^CwS6Fy_bCv{Er?)`_utYjNaOGU@b@b)5R$(IzINn{FS;c@!~OuG$4NP*yQ0eJ-{Ay`+yW%j=5LO+NFml9Zg8wdt7ZUea| zfyb|f|1#gA`XCZTbP&QG2s9i6WdCt{;`OQzf=CCU?}1o&PeP7g=fZ+2!Kd%uAz5!W zH(*|0NcvTO&VfYKBk zjJ*&HItY6Y#O6w(?*8621wyk0p}2w|mRCUp&+vO7P(2WZ@}p?%`Vsgl-E+bp_N>{98^3`6&MIZUO1b4^frC4!schEy&*MHvO~2?gyp- z%*!km_~mwc`1R@^SX(33kK<}dx);K^1uR{-MNfq+Jpw0Rx9`EZieLvH$nqADg}&-{ z>YLyV7||EfpH{Y|bh|zHO8F1muQWZ!06Bd8digHV2l#>xDRwvz8haFO;oZFuI&&~l^WA3)Ns;d zLMG}2Lv^mZ6%Yz#q_|DW!ZL%?Sh^=_1Zgr2IBo~WC#p+7x+xqiF31WzFeQX*zgIsad&) zU%FH}rcAn3FV7gd-$6c+?)t`#t9mf=*7KFba~tRS@>W8*`e(DU|gX0 z4f6UR^zRS`EPobT*6t1ce620Y2=aWjBx8nm=DcGOY$dm+og4kUaLC;X$HdmFSmm1WDDz|YIikkH20 z@qBUI#&={$;-U7*V%E_CB*@#&!>}G_F{2W1U@g#}t?QfB^}ea+`3La=#4B)QZ1uVp zNu1OwctqsE9xq&(&u!Drf0RpXMC=j7TYJmp@#@PS-z6|+tZXrBX9LQ1ihs5q(;Lg% z2GxjyHiMjNySti`xo3`=KQ6YtCYO|y*ke2^d*kgR&JVQG%0d?1=IZ7qD9hf$!P)xG za6PxWJfC}RHOtDu8pQJ>8&ror>sbHd?C9)l4QlqSi!-qP_g|)zW|}UQ<~QrTZI&Kg zpW15`9LR9IQ`8#95izMpL(4mf(RyyK0cJ(^dVH&Iof9JI2d(M4*3T#>u%#ewlhl$vwe;;aa|T5kWDqaCk- zA@L6o$niqV^=V-DS!4qAYvTV;%#n)q(b1UPhp+z}wYbwK_F&-k_?QDDWq-aFU&nEy zbqt1VQsTv#5A+n;#Y}KnFLz*5dVTq`X-0W<{DZ!-Ke?r~t)+_Kj}~rTzW;G(852%Tq6{v-;t(n5X&P8ubZcHZEtuDLT zOM}#dH+OL<%gWB)LTqIrNWkBsFZ+MlOXT))Z~w9;bFj82UmDv49r5x1*Z*(8Sj9Js zVd9O*7JlB3d~NOMXe9@slV(|4Ia>aAJc-2Yw(KtM`TytPBhL|ju&FxLjT^4dS-XG) zTZzYWvPl-};^N~BGAaaCEZ8r$msXw6pKiwZXpKIoUkg)N&Wi*wbTy2diC=65!js2`o z1o9+u6qOP(h8ZxscvUmW38yDsXfBdTDToc&3PA+09 zBtBRfdlXW9`6N!-DOKbsuUfq1l3>dPm{D@gj2huiJlE*Bhr>%kdF`?~<6LtBRD44Sm`Y$a3JLga z_`(D&EHWI+>z{9oEm9^>F(kR6V(5pyCrXaU5b0ulpl~IZ_tQe=2x!e^V|f&Va5QLP z5%c+k2-=`VPT(^Ne)h0?mY@xWMJel{p{0J(@p33pS)ud0KS84sAPdqNFt~;03Hv<> zm1SEANaQD1j3B6r+0h(98_yjg<*_fL|3fe3N?c6u+x5mAS~?+>))a2whr}VH_zf10 z`IrlOl6(03VgeacSz3BhZg3p(UsV|R`{u+5W>|1Q0Jmopsz}r`?SKN|sti;vw`Zue zEdxRPI;0dy*rWoKg__32;f)kRTwyx$tXQBP+|!)`vyF;I2CvPx6cvFpB4S%B zmV18gZ#f&DR zI<11q$-#wCv5gW1elS+_MOhchLCKK~j+ODmDGo0J!X(DBqhdZ)n0A1Gip!HP6w(dI zILR-bSX#r&kdv3o|DJ5nmnWeo{+y%}X{4H772DEt-#~w+;a*6C^k=bj)OWe?iJ?tK zD|_87az+8H$=x)Dqy;7X^fE$*YY7~j57{YO?MXM6QzdG$du!BC=zGilIJ zM5*!sm~1(#)u(voo$39O=Xqt57#tT#V7h+4vIdJ6wo)`mz!xstqY|%OGcts;5saG!|!Xn}7Ny+rp z7s>9!hD_XNpYTq{XsN73dQ3}~>YyZlH(&C%XpfCzNQAbdJ*{HXbTEKDA{X8d~_;FNGYC6Xu9BkAn2`msVC}?Y>p{$4~nKV)!h<$X(}0`1Uc2T zZwKr|RHrcLG>2ITluDmS*wWTG`3i!fx>yq{>cY&&EZM2I?Uw)l>Qlsf)9jSA0hhyV~xw=1==oX(!GWtCct z=W!1cG2CpO=ai!wVwzk`y{1JaXS7Gvcw)n+=(UsOR>iXZ9hO!~+dd&_S z2YwEh1V)wia|H&G33ccRg5jMeIkkq0CWFRxc=CKXbFngHhfbyNj{~)zt@Z%|s%=2Z zcmxbQ%PM-e>C@oIB2K0-3x(tja>_~cqGEyUEF4SRP0Ycd%Pgs5MhrgY2pUd`Z72+C zq-NYSeQ5~?lC#hr2E3A))C*4uRm`#6=rRh>2uT786W_orkEqf1=pC~`%t2T*RiU`Q zTAY6@eafp8XY=(7-J=qyISBXQ@i4|sE5D#n>dOS1L#s9U*dP}QO4!yh>|imCe#i0M z+q{|7{~{I-Z;wp3ds5w`I5~mM1z$>AAS8&=81NUaqB&MP-4!o#PEk<`87f0fC>p-6 zkVxIh(GnMmAb5EK{xicGwAsQjEFrHN#~0k9;FPTpk8q52TWs!gJUm?P&SSb zrV*%SSQ{9Z1x6)kn>;xI0OKYa-!9%c9cGXe~T=c`9yh+;Gnt<#D2z6fq0Os!7Sg5GjVDykgqQs**^&L>3Vw zc$S}r2cxu;(PE(oiHIbod}KRTMl>ui5`lc*k7;Dt(&Egq!xiUmQo=M;hBaci<>^jJ z2WTfLnXJtC@M`V>m@61AIOUR1~bYN*NLPXtahWj?zRM;Dkj3pC(LM zizE;%1Z?djm|#32*m!Q>viw33>ywPAM@(~xN>Pczm|dYQRFm>yqKhaaPke_Dm6V~Z z%F&`|MPM|V6cBTZxLK(X-Wy~E9VW1mN0=ldhvA4~iZu7cT;j|z%zDKr1#!_xZtg-g zOrm~PW5+e@bT-nDqSY{>*@wlQGw(&sQ*>hpav_;7E6$Ir;$fiIaA|)+P^6*@O->zz z0Id)OG|@1rYTT`SeuX$f{|$vcr`LmsjjUD-+KBNbKg>~zI|A+FIcQ7BbTviKGx&gbT)@WWnuM2-SK zAPC_ZVb$C$nHG&ih(4vrjD*xocxUvFsmJ$pQDmmjfvL&z;%aDkv@rp+sgxkRP*KkqS6gh3@awyM1_Mxj9OFW@+9IAw z1qvRfoLiJt>9c|n3KwjU{xwv}fvMlHO0vZrwF(YR8JsM|Di@p9;#=^A&|P$541?Ct z(I)gA;xrt)vCz2ZQb=ktUg@`-q$u?mWO^9yg=}tV&$0>ok2f1KN?a6Np2CNY%K$C5 zyo`jUc_*<)IBVS$>x5gh<*(&J+H5-HHcgD|0BVH#$qcrS%%-%b>O=fBfzTOBmNu*g zlYkQeY*DU>5`L4ZCEIH<1(76U=tv^{8vQjG7~FtWDv5Ik1v8F|#=*5#=kqr-#~?XF zj+IUof!ykMK8-%8v4d1z1lLp&#}tJ^66XLqHk%s;9be2wc|}H2Qxm{Ya~O*FvHprH zWQVE(DmbD5DQ#ye&6aO>k{GV6V1x@wK3mk)_{1$a6uEhJ9ob@)LVyqqa>F-u^ICZ_ zC2B1}(nf0EL$lCy4uN8$BW}6aWrw5X2Au34u-Jy9)m0>b;M{%H#xA*HbtXbH#jM4f z^tr;lG-UikL(u2r+wtuw+gU(KJI8aCTpE6XmY&*P;K;bLWo{jCBnHGBsV zQ9{B;`0`n%Vk#O$1o-#ilkS8v1s*C+|XcLSt*{KV2H~Qq;fWW4hx?kCd$BWwUUV(} z$^xWH1GL(bSs8DnVnye8^{_>mQohBs{*$VghqGVi#oMD%aI8`IZ@gIZB#4xm*gL^n!b1bcosKqoyPA4&(PYS z+V8`@Yaz_;^$Z7yrtAiGorL~Tu_9c$o{M-2;+qhzh~c6Z+nA_q``{fJWYUSgXo~H@ zWIPc*nT&jyFS{=C6*XTxFc+n#^#j%O)uFM zht)x_GiFZzN!%|8C{s^>kVV`B^|Ra0k~I$S!sjQHgZRy={NHo2>v+aEg_!)g&;_C= zu9CP@KTIy6VY#y`@5e@Q$f?_?!-oGWH53LBCK9P*(7(lHp@D{I4XJ)Jq#dSPH~q-` zVE$0`mV-~2=?*~RD;V$LUauIJ<~mnakwRey=+tGOL|0gopNDJ+8TWEc^HEdHTsmcy z%T2a$znFhOdET?r%*pmO7M~k*_VMpko10h$rcgNxqktLsNRC@_OuAZfx=j7K@K6K_ z%!G?q^}28jzgXa~4`7?qNLAQlX~+NUz2BMwmUKE^V0CD)EU*%ac;t(mI!=tfk@58E(bO-B~rB6vJMIj0ogd^DdY z^ZGFPgG_dusQVtVMRB*lFE&}=zQNh}o42$?rr^JY=03pUD=FcJvhph_S?S3AL_2;0 z(&{dhij^+Gn4&V7x<}#PZe=pf`Z*UGvn$MCiwcTcHO*+`FBfI$X6*b?_T7)T~iLu$lKQUC>`aOWlXtEID;HPny`I8 zI<8ooH%_;k`N9YGg+FG~Lf6GB3dB=|17hn2R9O{5yKpxHs6BWNO+bizw->!h*0XYj z@~}9fx1@E<@G-zo8xhK)<@2$zv`d88C4Xg-Ng?Rg;Oui}j2UyBBo2*|Auf7zHw2s};{!ZFh*XJjSH=OiQ?3m^0P8ydmmifL5zY5t4w8uOvZFYk`i3JO&-Dj zT#$EISxGom_s=BHJ{m8K-U!I!0Yvn zCg#qYA1vpI_yik4qUHaaS)qj@Di6}v91T2LXy;k4*zpd7Ze_0}c35B@xmF3~?m|t- zhz}FMa%_4^LNqDWwcfgXLa3MEHIA=QvBZM%+rG`*#>Zp(n=YC~tX_JUw297FFfx?Y z{&H0*G;n}`J&B0W6fL#68b$V3kN`d`JeG?Ku1Op4^Jk{c{#vP8sblAFJqKdc{v(5qbiX3OQ_}HTmuIY^Q&Y`Kk8maEg%O zVUicYhHeB^03TSzZc=eC*wXd)${gbj3#WfO zh|(=GJ>AdSNp`E0y*w`1zMnTtdu@6(#9p3AiI{kC(72y#iIC?Ll)76I!dhyVe?Wa< z$75pcAMX}k0&hi}`h4>_I7_4XJ#C!sJHXl$1AigSn4^bL(|)+LKOrFhT{Uu*A9#Q~ zRw8-|q)qZ1V||>3(+5|1mrwz~BWB(Ftc%lipIQ;(lC{a1qY2ea2}y-Kt8Yb38rILP zLvE~75faN3V_J=yXhs#a#Ah(UWI+-d6tDq~ z;YnyS?{5}Aac`wQ-zUJi+<)eO*RB6j%r~j*&_Y!4~F}KIdB!%OBTDP5Wx2PVkAN=VaB7`(?0>)=Aw=A{6ch zMX4<`=NA{x7wc<1GVP0J7GW4U&L0|e9)a?z_=CLA?0EPttJR^iIuD!t&n49-CBayp zv+>@}l-n>J9tBrK1G2*hs5A_pesud#)Ymij{Wg|*A>}Wej4na+x3~4e(LZwvad++{iGD$QSe<81L7||PNTY}g!W99&%D_!{6;4#gP2w2@13PwMG>}8d* z2U1mIsPg-VMTjA)|2S2@Z+UbHme>W%v#}TRoh6#9WS!a_A7C7B_&zlL>Dz zjg9(s=ucLz8QYWWn17?Aiak$(ztwkm7;@Ki8b;Tlh|v~YW3#xHS{p2+)g5@P`V9jk zOdiy5vo~?IX2%8Y$61z zUJfMd_`e&0Y+Fu!SPDLhW_WW=58pC&=&hz`7m@4R>7>q{LMxavE@E$;S;F8J02TNx zXp(wt!x@2-qvF;z~b(JYxN zU&P^mzqU=8!cn{bfG$A?z{sEy+qR}q;kN{uEs+_$dO&B*z3-mQ^1!gUnPIe|(S*m0 z99end8vzi9;BsvKNnfCJ^0&D@nl(w* zs+icq#Zo=@Y93;3{*=g_JM3H$_qqRe2xrp7xUGql?)5|>F` zZ$=x`zHYHpjwO-YY7u_fwH&BK*qX!B*_cNUkB66}5eXJ+PPpQvg0Fo!K{PI@*bNW1 zww-vxxg7t(vsObm$;#8rg$)pO<6PGDJ}*?IZ(K$%H~5Lt>%jb>Nx6!QAXl7yo`!;K zwWR}CI36ZTGL`sV&!t-7QEbj*|IA2AZm*+xnFLMsx3|i3Jt8IRpqhW87i+o9IOuFj z!br*szwV6i;#v_^=esr^%=#<};Iu@P7OK3JS-3dCSMr++=8`0f6+WPw*z9tuGI0za zs{}=TD|j9kfVAjQg4xOE$^SMPnd>?q{}rNVY~Dtt#!K`IvU3KO4zGF$`(%uH4EVhjma|zM#vQi%U>b!e(z){18pF;MNBifDTz9Pxe(Po|j+^F0w))%)SfL zL_DZ*pQFsGyo)TBl`dkGfJMP>mK(0UaUA+Upo=DRM_yOkzf2%AQ*Nn>9y+=&?nNjU zUy~H(4aH(ABP`MPJ;tjR-~0zAb-mK^sPC!_(Q~lWibzy{6|!Xx2%G)hU~?VxR|=*} z)=+0<$F->@k`^CIDF;FytfEL&WaDohf~Ct*S+k58AlmZ)Q zsLB9S{(GB9tVTd-IXaTYBf`Ea;)0hC+DC z@TJLzaelT~Z3MfssZP;kO86MSJrn2^ycOpewg9qd1yQp@Y}gs_b6C5-wY{6d(OLS2 zC>E{C|C=adN&uKL5f0z!W$Z(SlN;R zbMvwQ1C7|6AiV2~@EbKDgxF7#feWumt(Dm3+=DV*e0)@?L8{0!vPL1uvkh!@&MYW; zP=1Xmvvj~g3`!d&p~&dyoSI?P;5er;Ayw#K=1J1ZJ_1^f=zS}lS|F`|_$E-qrU)6b z?UJvk8oFFTPO+qNd%NM>qMM|sBvtFklY=%vz|*h)==5;Dn&Ka;$;Ai4lb#-UvCIat zO!hC{jbbHh3DM$^{-O}-7ouCL_+s)ZroB8tXD@3&+F&o4C9n|IxB8vg(!zmMit($~ z&XOAw3Q~MP8C9i&yGhH?S_ZVBRDg;}*{0=2_&7EyLaTOU-Uil>gcJ_}uSN3{-A$YEC3lRvu1E zK*;+?9w8J(uJ}7^Z#$LQdxEt$`v+mrVX5a5KWi=|LShSgh9<)OsTcS6<*%G|ViN5p z-3mB1u0HoRB?_|2e@4(+4rXE=VCO&tnz`fs=uHEp*^B@@yY!-!D3!XV6G- z9Vty<$j=^$OnltAuqMq4p|EahCACRqf3YpqlFmqZPOG(V`KudmXm^ z&+2IxN;UBJ-?!mTD(1DP3{`lZ4QJ&Mv-jeg>$NEu6tt&OHuw%&lxu2ippj4QnGoz} zNTEG-{ddoU+xtTsfZ<(l<9cN^e%o->7Pi!17tEfR@iWqW_FL%awqDKN*yVRpUbUIhn356toPdCdUV%XS4fEFz z-(X*|5Sfd66sr_Pg0R`oy2=aemOeEkpZehyOV%7whN`pK;|!NLCON__CI)$ov2C*m zU=ku}BH`>*zYIR@2${{1=5gRsP#wE`QKv6Q-t^sZvATr|qSo%8sRE9skm}Y-C@I<| zeXguRA&Hr@9&5&|rU^ADz0BS5zeR1kwyZe#2bZG9$|+b1?yvhT7gnhCRJll46i7`SVoAZ#bG2% z|D9;F$n1?zqN<`#2l=+0y3pRXCfa9ah9g$a#ttu|ziWnJ?XaNAd1-Sw31_rlLaiJF z19PLSOAuK$KH&MJmFg!gOHC7RUNRP4&ls0pE|~x`oaIZG&%nfBXI+#M#^{A&ulpzx z3^VHkvD6pMO_^ov&pRvCV-YI|`#>3%;5!x9vD1t*L8QD&P-3BdQHZfe2%jY1p*($x zMfN|C1>dVfB5jkQptA(kygj2Fch<)XU?!g8!_2}|7=sy9DlxyNx*#7t}rx-C+p1EVdUOa$V<=1z8b;_ z!tI^5jf_4u>wRK&j?Eeg|MN4lb8u|1Q{6yBU)!NzWt)_!DsnN62tUJE*n zSJH3o5%Di+SoXAMCpX4LZI-cbWU|i)1twcFb8w;7Lsm;D3$71XczS*dYhu_g*urFD zp&0#VzozAyXF1DM33Cs7POlX2YdZZ!I(xYcQeBo(n$S%jsyB;8Xad3aC}VDEnAw&6 zdzWn>3mkL>T6ctDl?jecVx4?Hu8+LJrO2|P^c_&up5~oaXJ@2kc?#$3 zP||df!u3XE(}HiVlh_ake(I<*ALKcs_iL*hU*!F3Q?77Xm-F7$)&+Keo`2sBMa&U@^75deeK`#i6X zQRz}L%OOOeg6N;cD~FC=MFgg-KLf+{>!y$dJK-5WO@UU zKPNGf|c!YBkiKIM3wyPeQJ~*Z!nrVhByYwI$M)I1=5g64$&l5g=`ZJvnzL*tv z3=@NhSg?#l@Kh-XpxZ^qOQ@YLTc1o%r)#l<9v($8O<0wlq&4fZ%bZ6kn}#tbc?~EI zggzxVw5w0mJdZU}j+Xl5`K(fw#-gb~Mv~4vZtLJ+8HAz$OwC4hwaQcYcK&-UBcRvG zndt@e7a(m`o%WVCB)*)--N&DiICfNtazDxT9$D45_H;)3{SQq#yba|{Rr|}G@GuIL z+b;~*yU)(NTXdvPUwxS9oV3XfY=0XLs}A~dW&9=a8cZ`bFw8q+0gl2=hVI@eMmkxr zm`=7;aiI@|kwznq%qOnRaW@qhv`$T$pT#=&K9GK4xH1RP$&92=uKCX5)LTmy2P){} zS3b~Wx{yNW@a^e2cSYG&3+he13jk|W>cxo}>byclac3kyh2vWKPz)b_#S2HqAZBQf zOhAzgfple-d^5GnO~W13P{3#BV@qY$B8BITw}S)BO`F3y`QY%}`~noh@Dxf?%LX76?()e&^!{3IXb;l#|b_pkeSf$_AN`q4-1l6&GM~d z@;WM^?ts2X^zY?Chihs8HnOG^*6g=4VQrhAC~!cLc44mU2}I%@-VGc_mn)f$mVv@k z`U^Xo$JmD=#1Ti6Y%(!84L9?OZOWlUX z3p}iwh9_DWR<~8k7abI?I!B-M<%MH!-y^dwBLGBbBqBF zwkPEYuA1>O>=?oeC_`xmJG8)CWtwx3y@L^N*w&m1>*q}9B072iXiUDr(qewQDj%Hc zLz+gmupw&32}x-P^$l-lkWGzat^ zPT}o~r-H>fNAht!PA$w@UeqT-EqfHYs+BfPpa}hSqEZ(7Xpz1iGy33t-pY4aRoyVa z0;=IuTN)E6kMH(OVa5k~5~(VDQ3EOnyYnyD71z(7GtF_}_kKkG0E*CV?QevP9yVhN zBAD?hr!4gQ{HnGCDMMJ%Xw?frVVwejk_B`Z#}!J%;J`>qtms(>Ud1J3t#7XO4(Hz3 z3ce^_^`^Et*d4+aMLxW`|B5~(suT#2Y+tPT`Ce%n-7eRp(D<9RW7P}pPlNBhQqizb zbO`dv%MRNyLLLWyMrGuT7#>YYUhN9P-;&y%hu_$xO}b2Gpj-FvngNuNd*DLd+0P|H&F)XBjzYECJ#W_9fR_%mh zsj2EpiKgwiZ+gbgw?Jas=1%KWyMr^A1f*upm~wm{UK>tM42ue@R90uq4(*e1D+#68 zzVhzyH5H~smt8fwya-UEMVW!;6c227g<_rbgQ+ns5^8xdZ#*k?tuTF&vZV5g z(3_VDQ5n3Cn2`L7Qm>`Ct(GyCU2oO-U8*|CR%4-J_{UK`nPDQ+U@Zl7?E)8`B4s&=NHBK@Mvy?4;2^_b@g7}TDI0}U!yX*uC3w2EjRYV;PN)wBs zlni?bk^z8TMi-|nNmmA1k6v*|#N4&NQq9R<*zr%wXsDRRmnAIB9P5Efo1>o^Tvro( z>k;aOcu_<&vSNr*%pT2p8IOUwm!lJCxg9BEcFqz)Khh)II$;5YC(o^dHJ?3pLQni- z!3+_+HJKD4KCKob2T}ywXYciE=(>h=t{E`W>c95I}sjd$@1h z5(9yhQh1{Ls&w(j(W1Zgx=_rgD(d%Zl;}y6oC-_*oufn(Q84?AuG@V`x^sxzj~`VO zDcm$ZiRXb-eu$;A$3ayj@9=&(lYaL1#FnDZzUUWams`^7)`BUlf5~c>Vp7!#uVgN6 z_B8t_8?q+-@m!!qNMj*t@P#%x^~}NqQm*V7fCbl{B! z7z^|GsOYn0ugc8K96>RcVa2u~?DV(7$pB3J=2{_lUSC7OzmrU?QS4I&IJ+;RtIrM1 z#gsmSZ=XpvipjMu@o`;?|JW+N|ELSu>8buR$&Oow|Gc4Ro5I>6gt9qhR(A%*H*vkHBbJLr?Z}S0tCnpzCR3h zb!O{L@_C>-R3vnD9kv9;mg+a%sn7A67&su2iXOjFU%cF3Cp|CS3<1$IY*Wy(8A^!r zMezuRJ;O&fU7Ve`OCHCu(>-e!6gI6n=X~-?>yh59HY<}uHFmI`hi0V+Z^IuBx|vR= zv;tQ_@uWpjX1W>qu(rfcIhnfO_+WJ8bh60+0bs7?RjQ+s_!O(`zce;K;}w!--=Aa5 znxV%jxr~l@-*CFWr+J9Y^OlIckOov@t%AY^8oDaH1}t(HcKf`?9%}BZ3Cg6O16(