ppsspp-qt-1.11.2~git20210422-bp153.1.1 >  A `!M@eee+IMW(Rӯ#2,Г}^_CF %rtXۍjef+|ȁr>PqөJ|٩s8ظ*:|V{;F|=&ćosKjCсY  TcXH+S=PSo{Bbݟ1^ʞ$‰3N?pc(M x[bVXE+hN겄ﰃC=W)-c/4G-ZҠM/12e7731fecc7d6285e0a877be8946a499fbd36dffd4f15edffdfbdc89926d61da7c20190cea97177a2f2d3a6f867755d5a3070a8E[`!M@eeeZ'L|ʉz7dlC\5I9P'i%r"AssmXG4m-rpP Ζ3>ʤpR~Gtpd;kНJp$DG?I==5Uf9.IsְmPǐG 1i} ^ջf[㌗WA=>Vgm}.0ɹž"LT91\j1?qK_{FP; o:*>p>X?Xd  ) ;`dlp       @LPP TP( 8 9:5FSGTHT IT,XT0YT@\T|]T^TbTcUdUeUfUlUuV vVwW$xW0yW<LzXlX|XXXCppsspp-qt1.11.2~git20210422bp153.1.1PPSSPP Qt backendPPSSPP build using the Qt framework`֪build72(SUSE Linux Enterprise 15 SP3openSUSEGPL-2.0-or-laterhttps://bugs.opensuse.orgSystem/Emulators/Otherhttp://www.ppsspp.orglinuxx86_64'(큤`֧`֧`֧44630240714cbdd3889d00d7a3dc1b14a2a51c2212eb45cfed4058936f4bc0180f68826a3e63f5653689e5d2cf00ff3c92d1c3699fc9422d81e0abc56f8102cc4b238509441247fd3a84e7833dde4c9587a2f3181eacffd9332071e20d407010rootrootrootrootrootrootppsspp-1.11.2~git20210422-bp153.1.1.src.rpmapplication()application(ppsspp-qt.desktop)ppsspp-qtppsspp-qt(x86-64)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@     ld-linux-x86-64.so.2()(64bit)ld-linux-x86-64.so.2(GLIBC_2.3)(64bit)libGLEW.so.2.1()(64bit)libGLX.so.0()(64bit)libOpenGL.so.0()(64bit)libQt5Core.so.5()(64bit)libQt5Core.so.5(Qt_5)(64bit)libQt5Core.so.5(Qt_5.12)(64bit)libQt5Gui.so.5()(64bit)libQt5Gui.so.5(Qt_5)(64bit)libQt5Multimedia.so.5()(64bit)libQt5Multimedia.so.5(Qt_5)(64bit)libQt5OpenGL.so.5()(64bit)libQt5OpenGL.so.5(Qt_5)(64bit)libQt5Widgets.so.5()(64bit)libQt5Widgets.so.5(Qt_5)(64bit)libSDL2-2.0.so.0()(64bit)libSDL2-2.0.so.0(SUSE_2.0.7)(64bit)libavcodec.so.58.134()(64bit)libavcodec.so.58.134(LIBAVCODEC_58)(64bit)libavformat.so.58.76()(64bit)libavformat.so.58.76(LIBAVFORMAT_58)(64bit)libavutil.so.56.70()(64bit)libavutil.so.56.70(LIBAVUTIL_56)(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.11)(64bit)libc.so.6(GLIBC_2.14)(64bit)libc.so.6(GLIBC_2.15)(64bit)libc.so.6(GLIBC_2.17)(64bit)libc.so.6(GLIBC_2.2.5)(64bit)libc.so.6(GLIBC_2.28)(64bit)libc.so.6(GLIBC_2.3)(64bit)libc.so.6(GLIBC_2.3.4)(64bit)libc.so.6(GLIBC_2.4)(64bit)libc.so.6(GLIBC_2.7)(64bit)libc.so.6(GLIBC_2.8)(64bit)libdl.so.2()(64bit)libdl.so.2(GLIBC_2.2.5)(64bit)libgcc_s.so.1()(64bit)libgcc_s.so.1(GCC_3.0)(64bit)libm.so.6()(64bit)libm.so.6(GLIBC_2.2.5)(64bit)libm.so.6(GLIBC_2.27)(64bit)libm.so.6(GLIBC_2.29)(64bit)libpng16.so.16()(64bit)libpng16.so.16(PNG16_0)(64bit)libpthread.so.0()(64bit)libpthread.so.0(GLIBC_2.12)(64bit)libpthread.so.0(GLIBC_2.2.5)(64bit)libpthread.so.0(GLIBC_2.3.2)(64bit)libpthread.so.0(GLIBC_2.3.3)(64bit)librt.so.1()(64bit)librt.so.1(GLIBC_2.2.5)(64bit)libstdc++.so.6()(64bit)libstdc++.so.6(CXXABI_1.3)(64bit)libstdc++.so.6(CXXABI_1.3.2)(64bit)libstdc++.so.6(CXXABI_1.3.5)(64bit)libstdc++.so.6(CXXABI_1.3.8)(64bit)libstdc++.so.6(GLIBCXX_3.4)(64bit)libstdc++.so.6(GLIBCXX_3.4.11)(64bit)libstdc++.so.6(GLIBCXX_3.4.14)(64bit)libstdc++.so.6(GLIBCXX_3.4.15)(64bit)libstdc++.so.6(GLIBCXX_3.4.18)(64bit)libstdc++.so.6(GLIBCXX_3.4.19)(64bit)libstdc++.so.6(GLIBCXX_3.4.20)(64bit)libstdc++.so.6(GLIBCXX_3.4.21)(64bit)libstdc++.so.6(GLIBCXX_3.4.22)(64bit)libstdc++.so.6(GLIBCXX_3.4.9)(64bit)libswresample.so.3.9()(64bit)libswresample.so.3.9(LIBSWRESAMPLE_3)(64bit)libswscale.so.5.9()(64bit)libswscale.so.5.9(LIBSWSCALE_5)(64bit)libz.so.1()(64bit)libz.so.1(ZLIB_1.2.3.3)(64bit)ppsspp-commonrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)rpmlib(TildeInVersions)3.0.4-14.6.0-14.0-15.2-14.10.0-14.14.1``8`*b@`)`%@`!'`@`>`` a@_9_@_^4^a^@^Ǿ^@^@^^v^^h^g@^b;@^ZR@^F^AE^=Q@^4^)^!^@^ @^^,^C]f@]@]Y]*]@]ƪ@]@]@]]5@]@]]L@]]@]]]]]]v>]o@]k]fl]L]Ew@]1]-@]+@]%@] @]]]R]]@]\\F@\@\\P\\@\\@\Z@\@\\@\+@\6\B@\M\}@\{\y\v{\q5\o@\n\k\j@\iL\g@\f\^\]o@\X)@\T4\I\G\A\4\3?@\1\/J\,\(@\(@\&@\ @\x\\@\@\2\@\@\\>@\\\ `\\\@\&@[[@[@[[[@[[T@[[k@[k@[[@[@[0[@[ݍ[<@[[G[Ѱ@[ͻ[$@[[[@[[R@[@[][i@[t[#@[[@[@[:@[[[[ @[[[@[s["@[[@[[@[~[z@[ug@[qr[p!@[p!@[h8@[e@[^[]@[Tq[M@[E@[D[A[?Y[8@[6@[3|@[0@[.6@[.6@[*A[(@[&M@[$[#@["X[d@[[@[o[@[[{@[)[[5@[[@[ @[ L@[ZZz@ZZ4@ZZZ?Z@ZZK@ZZ@ZZZZmZZy@Z'Z'Z@Z؄ZZԐ@Z@Z@ZЛZJ@Z̧@Z̧@ZȲZȲZa@ZZZlZ@ZZ@Z@Z@ZZ2@ZZ@Z@Z=Z=Z=ZI@ZZ@Z`@ZZ@ZkZ@Z%ZZ1@Z@Zpousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.comGuillaume GARDET guillaume.gardet@opensuse.orgMichel Normand pousaduarte@gmail.comCarsten Ziepke pousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.comopensuse-packaging@opensuse.orgopensuse-packaging@opensuse.orgopensuse-packaging@opensuse.orgpousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.compousaduarte@gmail.com- Update to version 1.11.2~git20210422: * Debugger: Show string in status bar for li, etc. * Io: Prevent error on bad handle for DevType(). * Debugger: Prompt with previous search string. * Debugger: Mark ELF sections as suballocations. * Core: Correct ValidSize outside scratchpad. * Replacing the inconvenient prefix string for indentation with indent number. * Fix missing hex string at the last row when data size is a multiple of 16 bytes * GE Debugger: Keep dump generation deterministic. * Buildfixes * Update our miniupnp fork to upstream. * Reporting: Avoid generated homebrew IDs. * Oops * Don't even bother checking touch.id == 0 for closing popup windows. It's fine to close with any touch. * Remove now-redundant back button * Change pointer ID allocation on iOS. Fixes part of #14240 * UI: Load BG image properly on init. * Io: Calculate memory stick size on a thread. * Module: Speed up module unload. * Core: Init memory on multiple threads. * Module: Process relocations on threads. * Module: Process relocations using unchecked reads. * GE Debugger: Thread dedupe pushbuf lookups. * Common: Set a min size on threadpool work chunks. * Common: Allow threadpool size up to 16. * Umd: Fix thread wakeup. * Fix defaults for io threading and vertex cache * Remove duplicate from hardcoded settings * whitespace nit * Reorder core options * Further core options and defaults * Add defaults and core options * SaveState: Use memmove for the copy. * SaveState: Use SIMD to copy RAM faster. * SaveState: Copy RAM using threads. * Fix libretro build * jit: Increase the cycle cost of div.s. * jit: Increase the cycle cost of VFPU ops. * jit: Count delay slot cycles separately. * An attempt to detects getifaddrs availability properly * Changing warning log to info log on GetIPList * Added additional includes for GetIPList to work on Linux/Unix * Added warning log for testing purpose on GetIPList function * Rtc: Cleanup and simplify date struct handling. * Build: Recompress pngs using better zlib. * UI: Compress atlas metadata. * UI: Compress zim files with zstd. * UI: Load/save compressed atlas metadata. * UI: Add zstd to ZIM compression handling. * GE Debugger: Use zstd for save states. * SaveState: Switch to zstd. * Build: Add libzstd to build. * Enable save encryption to bring libreto in line with standalone configuration defaults. * UI: Remove extern global for UI message. * GPU: Stop using Off as terminator for postshaders. * Reporting: Add more info to libstubend error. * Module: Add a missing error return case. * Kernel: Define most reported missing kernel funcs. * GLES: Always use fragColor0 on GL 3.0+. * Reporting: Log more data about sceIoChStat(). * GPU: Avoid switch on uint. * Shaders: Set vert shaders to mediump by default. * GLES: Handle GLSL 1.30/1.40 better. * Dialog: Reset last status more consistently. * Dialog: Lock volatile on thread. * Dialog: Use a thread to init dialogs too. * Utility: Add a helper for the active dialog. * Utility: Update logging to new syntax for dialogs. * Utility: Move dialog classes to heap. * Debugger: Add APIs to set/list/search mem tags. * UI: Show more detailed load error messages. * GPU: Preconvert light vecs to Vec3f. * Disable spvremapper from glslang by default, we don't use it. * UI: Oops, prioritize PIC1, not PIC0. * Debugger: Provide memory mapping ranges. * Debugger: Return detail for breakpoints in macros. * Debugger: Add simple API to control tagging detail. * Update glslang_UWP.vcxproj * Forgot to return on invalid address, and moving reusable code out of HLE to prevent generating confusing logs * Ooops wrong way to do random range * minor fix * Randomize signal strength between 1%~99% since games like MGS:PW are using signal strength to determine the strength of the recruit * Fix stuck issue when scanning AP for Recruit on MGS:PW * UI: Don't include symbols in recent games anim. * UI: Centralize BG pic choosing a bit. * UI: Add BG animation for recent games. * UI: Flip Y analog direction based on config. * Windows: Normalize left and right analog stick. * UI: Log analog movement at a lower treshold. * Debugger: Maintain atrac data source info. * Debugger: Note atrac/sas reads from memory more. * Debugger: Tag savedata load and info. * Debugger: Memcheck and tag loading savedata to RAM. * Deflt: Correct available input length. * Deflt: Trigger memchecks / log source of writes. * Deflt: Cleanup and refactor to one common func. * Debugger: Note writes from debugger. * Dmac: Invalidate source data before copy. * Debugger: Include src tag in Memory::Memcpy. * Debugger: Include framebuffer in framebuf pack tag. * Debugger: Note GPU block transfer src as well. * Debugger: Include source tag in memcpys. * Debugger: Include filename in file IO memory tags. * Debugger: Make memory tags longer. * Debugger: Add menu to jump to begin/end of alloc. * Fix crashing issue when leaving a multiplayer game room #14337 * revert filename prefix for reducehashranges * Prevent flooding the logs with repeated attempts of Adding/Removing port mapping due to failure in the middle of UPnP initialization, as it needs to be reinitialized. * Attempts to reconnect to Adhoc Server only when Creating/Joining/Connecting to a group or Scanning for groups, instead of on 2 seconds interval. * Shows PSP error code as hex to be easier to find * Show the socket error code when failed to connect to adhoc server * Use a function to check for loopback address * UI: Fix savedata screen sorting. * fix: cleaned up my comment * feat: reduceHash configuration * Set ent_top/ent_size/stub_top/stub_size of SceModule * yet another gradle update * Fix Window size issue #14317 * PPGe: Remove ENTR hack, fix string concat. * Savedata: Always write the file list to the SFO. * Windows: Avoid segfault if memory except on boot. * Core: Limit scan for functions to end of valid RAM. * Core: Unbreak ValidSize limits. * PPGe: Interpret invalid UTF-8 sequences better. * PPGe: Apply overlong handling to wrapped text too. * Add missing rule in .gitlab-ci.yml * (Libretro/Gitlab) Add osx x64 target * Update .gitlab-ci.yml * Update lang submodule * Add a setting for choosing background animation. * Build: Simplify by always including FakeCPUDetect. * Build: Remove "fake" vertex decoder jit. * Add missing -DWITH_UPNP in a couple more places. * Windows: Enable UPNP again after 14304 * UTF-8 PPGe: Remove overlong encodings. Work around a weird issue in Ratchet & Clank. See issue #14297 * Fix build with USE_MINIUPNPC=OFF * VertexDecoderFake: Fix build * CMake: Fix build when ENABLE_SPVREMAPPER=OFF * CMake: Don't include X11 headers when compiling for FBDEV * Disable range culling in Asphalt 2. See #14299 * Module: Correctly handle modules with -1 entry. * Debugger: Ignore small memory info by default. * Fix performance regression from failing to optimize the new mem tracker.. * GitHub: Add multiple issue templates w/checklists. * Fix character's Side Space ltn0.pgf/ltn4.pgf * Android: Fix "Load..." to allow all file types. Change backported from PR #14232 * Fix FlatOut Head On multiplayer. * Debugger: Fix save state compat for slab info. * Debugger: Add header for strlen. * Further std::string removal * Remove static assert on struct size, we don't really care that much. * Buildfix * Remove std::string from memblockinfo * Additional indentation fix (forgot to save file) * Indentation fixes * Android: Add a dependency on the AndroidX appcompat library. * Fix Teenage Mutant Ninja Turtles Multiplayer. Alternatively, changing NET_SHUTDOWN_DELAY_US to 501000 usec or more will also works. * Warning fix, memleak fix * SDL: Fix use after free on shutdown * Only do the workaround in #14273 in Vulkan. May help #14280 * Some homebrew like Triple Triad tries to load flash0:/kd/pspnet*.prx. We better just lie. * Couple warning fixes. * GLSL vulkan: Specify the precision of function arguments. Works around #14269 * Work around crash in texture replacement. See #14252 * PipelineManagerVulkan: Log shader source when pipeline creation fails. * Fix bug in vertex shader generator. See #14260. * Switch: Workaround several missing toolchain defs. * Switch: Disable multi-instance tracking. * Allow polygon upscaling in Boku no Natsuyasumi series via IntraVRAMBlockTransferAllowCreateFB hack. * Update assets/lang * UI: Add search to savedata manager. * UI: Fix L/R tab navigation. * Build: Remove force include CMake line. * GPU: Ignore replacements for framebufs. * Build: More consistently avoid _M_ defines. * Build: Remove old ARM define. * Build: Remove MIPS define. * Build: Remove IOS define. * Build: Explicitly include ppsspp_config.h. * SaveState: Automatically fix duplicate event types. * Fix double space again * Fix typo * Module: Avoid logging bad pointers when no nids. * PPGe: Reload atlas on load state if different. * Only remove tha CMake line for Apple. * iOS: Try a different JIT detection method, thanks Halo-Michael. * Time to remove this line in CMakeLists.txt now. * Tweak to jit detection based on feedback to #14201 * Windows: Stop using 1234 default unused paths. * UI: Wrap long info items. * Core: Handle Disc ID a bit more consistently. * Core: Use homebrew disc IDs/titles when available. * Removing TCPNoDelay option from Networking Settings and always enable it to improve response time. * Replacing the deprecated gethostbyname function with getaddrinfo function to prevent getting deprecated warnings * Making sure there are no warnings related to deprecated inet_ntoa function * Mpeg: Allow full use of the buffer queue. * GPU: Dirty texparams when cropping a self-copy. * Windows: Add missing header for menu. * GPU: Normalize zero consistently in hw transform. * GE Debugger: Correct powered diffuse display. * GPU: Normalize 0 to 1 always in software lighting. * GPU: Look up replaced filtering options. * Replacement: Read in texture filtering overrides. * Windows: Setting for standard/debugger shortcuts. * Dialog: Use dialog type header more consistently. * Comment cleanup, allow file picker as far back as KitKat. * Address feedback, remove probably-misleading comment (had already fixed it). * Dialog: Respect accessThread priority on shutdown. * Screenshot: Provide common params properly. * HLE: Correct helper thread arg handling. * Dialog: Track type id on dialog class. * Savedata: Eat cycles in savedata shutdown start. * Fix exit "race", add persistable permissions * Android: Implement opening ISOs through a file picker and Storage Access Framework * Add a Storage tab to System Information. * mipsjit: Correct inheritance/compilation. * jit: Avoid using mips identifier directly. * UI: Require buttons always have text. * UI: Expose lists better in descriptions. * UI: Omit invisible views from viewgroup describe. * UI: Lock only if mutating views. * UI: Add text description for all views. * UI: Rename Describe() method for logging. * sceKernelFindModuleByName:Add delay for Fake module * Umd: Disallow waiting on status that can't occur. * Umd: Wake waiting threads on eject/insert. * Umd: Delay common wait drive stat funcs. - Disabled tests as per upstream suggestion - Exclude s390x from build as big endian architecture- Update to version 1.11.2~git20210224: * SaveState: Fix Snappy build error on older clang. * GPU: Revert stencil discard workaround change. * GPU: Update SPIRV-Cross to 2021-01-15. * Fix Size & Position jpn0.pgf/ltn0.pgf/ltn2.pgf/ltn4.pgf/ltn6.pgf * SaveState: Avoid some warnings in Snappy. * SaveState: Update to Snappy 453942b. * GPU: Use stencil discard workaround w/o depth test. * Mpeg: Correct stream buffer wrapping, cleanup. * (libretro) Fix static makefile * Don't even try the hack on iOS 14.4 * Add iOS version detection, turn off JIT on bootup if >= 14.3. * UnitTest: call InitVFPUSinCos() to set vfpu_* function pointers * CMake: enable testing * CMake: add TestShaderGenerators source back to unitTest * Mpeg: Set low latency flag for video decode. * SaveState: Delay restart handling until end frame. * SaveState: Start new events at end properly. * glslang: Update to latest glslang. * Making sure the port is bound to an interface when using bind with INADDR_ANY. Seems to fix #14130 * Minor changes. * Minor AdhocMatching changes. * Making sure src_addr and addrlen args of recvfrom is being set correctly upon use. * Shows a warning on Screen when detecting AdhocMatching data coming from an incorrect port, progressing any further may ended with connection issue. Players will need to wait until the port detected correctly before progressing any further (may takes a few more seconds) * Shows a warning log when bound port is shifted to negative port (may cause port issue when wrapped to 1024 or lower on android) * Hook open season * TexCache: Check for videos rendered as slices. * Module: Block a few network modules already HLE'd. * Debugger: Keep char *s for memchecks. * Mpeg: Assume 29.97 if bad frame rate returned. * Mpeg: Prevent sending flush packets to decode. * Atrac: Update to latest FFmpeg packet pump. * Update the discord-rpc submodule to the latest version. * iOS: Undo app ID change. * iOS: Fix multitouch tracking. * GPU: Rotate screenshot framebuffer per display. * Only consider the actual PPGe texture in kernel ram reliable. * SDL: Init profiler on SDL/Qt. * GPU: Correct more vertex/index endian swaps. * HLE: Swap endian in matrix multiply replacement. * Global: Correct many endian types and casts. * UWP: Disable SDLChecks, which error on deprecated. * Windows: Stop ignoring all deprecated warnings. * Windows: Run OSK/chat input box asynchronously. * Mpeg: Remove request_probe usage in newer FFmpeg. * Mpeg: Update videos to latest FFmpeg packet pump. * Mpeg: Clarify fallback problems. * Mpeg: Correct stream detection in newer FFmpeg. * Audiocodec: Update to latest FFmpeg packet pump. * Mpeg: Use direct pts value checks in newer FFmpeg. * AVI: Update to latest FFmpeg packet pump. * AVI: Avoid deprecated ffmpeg context usage. * Mpeg: Remove deprecated codec register calls. * libretro: Always use CONTINUOUS flipping. * TestVertexJit: fmodf() definition requires math.h * UnitTest: test that the function pointer for vfpu_sincos() is non-null * Fix "Enable chat" in Linux Qt build * Windows: Reduce camera state locks. * UI: Divert background only on change. * UI: Correct tweens repeatedly finishing. * UI: Use atomic to check for events. * UI: Avoid PathBrowser lock with no remote files. * Draw: Auto ref/release bound textures/samplers. * Windows: Enable chat when selecting Enable Chat. * Io: Allow early cancel of CRC calculation. * Reporting: Block for CRC calc on shutdown. * UI: Show CRC on game screen if calculated. * GPU: Prevent memory fault when no framebuf yet. * UI: Add button to show CRC on feedback screen. * Dialog: Unlock volatile without Update call. * CMake: use vendor GL implementations by setting CMP0072 to NEW * GPU: Remove clear framebuf on first use speedhack. * UI: Consider chat for visible UI. * UI: Make chatButton_ a member of EmuScreen. * UI: Avoid audio locks where possible. * Turn funcreplacments on in libretro builds. See #12322 * Debugger: Prevent thread errors on mem alloc info. * Debugger: Correct crash with no alloc tag. * Debugger: Correct merging fragmented blocks. * Debugger: Update status on scroll down. * Debugger: Fix memory lookup in mirrors/uncached. * Debugger: Show memory tag info in status bar. * Debugger: Extend tag background on select too. * Debugger: Highlight memory ranges in memory view. * Debugger: Reorganize memory view painting. * Debugger: Ignore unmarked mem block info in find. * Debugger: Add initial UI for mem info type. * Debugger: Correct search by empty string. * Debugger: Optimize linear marking. * Debugger: Track slabs by end, not size. * Debugger: Defer memory map calculations. * Debugger: Speed up lookup using an index. * GPU: Cleanup comment. * Debugger: Track ticks of allocation/write/etc. * Debugger: Track texture usage too. * Debugger: Mark framebuffers as VRAM allocations. * Debugger: Notate Memcpys directly as well. * Debugger: Notate memset tags directly. * Debugger: Track memory allocations and writes. * Debugger: Specifically tag relocations. * Debugger: Notate more cases of memory clears. * Debugger: Log access reason on memory breakpoint. * Debugger: Add more metadata for memory usage. * Mpeg: Correct incorrect upload size return. * Rename the FuncReplacements setting to effectively reset it for everyone. * libretro: Always use SKIP_FLIP. * Display: Change default unthrottle mode on non-Win. * Dialog: Clear volatile memory on unlock. * Usb: Implement state waits. * Experimenally turn off the debug symbols again - see if this helps the buildbot * Debugger: Cleanup swprintf() usage. * GPU: Correct some field shadowing. * Windows: Prevent some virtual dtor warnings. * Global: Cleanup class init order warnings. * Windows: Correct some variable init warnings. * D3D11: Fail if uniform buffer create fails. * Global: Remove some unused variables. * Windows: Remove unused file. * Thread: Log error waiting already waiting thread. * Thread: Log error when delaying a waiting thread. * Audio: Avoid left shift when resampling. * SaveState: Load misaligned wide strings properly. * SaveState: Make event restoring more obvious.- Update to version 1.11.2~git20210215: * Headless: Add test paths for CMake on Windows. * CMake: Correct headless build on Windows. * CMake: Correct build on Windows. * Update gradle. Enable automatic debug symbol upload for release builds. * libretro: Remove "Unsafe FuncReplacements" option. See #12322 * Fix many symbols on jpn0.pgf. * Windows: Fix some const type conversion warnings. * Windows: Make InputDevice destructor virtual. * GPU: Fix a type comparison warning. * Windows: Use CommonWindows more consistently. * Windows: Fix some format warnings. * Windows: Add some missing override specifiers. * Common: Include unistd.h before ctime on mingw. * Common: Fix AVX check on mingw/lower targets. * Build: Use ws2_32 and iphlpapi names directly. * Windows: Fix improper case or missing includes. * Debugger: Invalidate when using memory APIs. * Debugger: Option to skip mem hacks in memory dump. * mipsjit: Fix basic compilation. * Jit: Fix compilation of FakeJit. * Savedata: Show save icons with proper aspect ratio. * Savedata: Show corrupted data more clearly. * PPGe: Decimate early if kernel alloc fails. * GPU: Force texture invalidation for ZHP minimap. * Sas: Minor clenaup. * CoreTiming: Ensure we never idle into the past. * Common: Maintain C++11 support in sign extend. * Common: Sign extend w/func not chained casts. * Vertex cache minihash: Round up the starting address to a multiple of 4. * jpge.cpp: Remove malloc.h include * Update ext/jpge * Dialog: Simulate volatile memory lock behavior. * Dialog: Manage status only through accessors. * Power: expose volatile memory lock/unlock funcs. * HLE: Hook Worms text render copy func. * Vulkan: Remove #10097 hack for newer AMD drivers.- Update to version 1.11.2~git20210214: * Update version to 1.11.2 * compat.ini: GachiTora requires block transfer * Android: Ensure shutdown waits for render. * Build: Cache Qt during Actions run. * Build: Allow on actions test branch. * Don't assert on invalid format in CwCheat. * Io: Truncate reads/writes to valid memory. * Update lang submodule * Add some checks trying to prevent creation of 0 sized textures. * GPU: Force reinterpret off without copy image. * Revert (partially) "compat.ini: Add Split/Second to [ReinterpretFramebuffers]. See #13957" * Some GLSL compilers are very particular about the sign of shift operands..- Update to version 1.11.1~git20210211: * Update version to 1.11.1 * Slight simplification in LogoScreen * Update README.md for 1.11.1 * Fix lobby issue on The Warriors, probably also fix similar issue on other games too. * Update zh_CN and zh_TW * Windows recvfrom doesn't support MSG_TRUNC, so we're using dummy buffer with max size as alternative for peeking actual size of the next pending message. * Fix frozen (0 FPS) issue on Kao Challengers and Asterix & Obelix XX (probably also fix other games from the same developer with similar issue) https://github.com/hrydgard/ppsspp/issues/14103 * Assorted paranoid cleanups, inspired by #14082 * Remove a completely unnecessary check in BackgroundAudio.cpp that caused glitching at 44.1khz. * Update lang submodule (it_IT updates) * SaveState: Prevent crash on bad cookie marker. * Rename the new warmup variable from #14091 * Only allow sceMpegGetAvcAu warmup for God Eater Series * Remove now-redundant check * GL: Call CreateDeviceObjects *after* updating render_. * Buildfix * Cause the correct type of exception. Never ignore EXEC_ADDR exceptions. * Handle exec addr errors better - don't let IgnoreBadMemoryAccesses skip dispatcher exceptions. * Add more games to ReportSmallMemStick * PPGe: Decimate text images properly.- Update to version 1.11~git20210207: * Update version to 1.11 * Do the title screen animation by accumulator instead, to avoid a long first frame breaking it. * Update lang,pspautotests submodules * Run the link script, fixups * Run the link script * Removing hleDelayResult from internal adhoc functions to prevent waking up thread that supposed to be blocked by the outer HLE. * Updated some Logs to help finding the location of the call to debug. * PPGe: Clear text allocations on shutdown. * PPGe: Fallback to atlas text on alloc fail. * Debugger: Populate funcs if disassembly open early. * Fix jpn0.pgf characters position. * Fix possible race condition issue. * Moving hleDelayResult from internal function of SetSocketAlert to prevent waking up HLE-blocked thread * Minor renaming * We don't really need to allocate a buffer when using MSG_TRUNC on recvfrom * More stuff in README.md * More from unknown and sum2012 * List fixed games. Thanks sum2012 * Address initial feedback by iota97 * Update README.md for 1.11- Update to version 1.10.3~git20210205: * Windows: Prevent crash on null symbol map. * Core: Reset state properly on CPU init failure. * Make a couple of UI animations refresh rate independent * UI: Correct developer tools test run. * Updated PdpStat to prevent rcv_sb_cc from exceeding the buffer size arg (since we use larger buffer size to prevent micro stutters or disconnection issue due to too many dropped packets with small buffer size). TODO: May need to improve it to be able to calculate the correct size if there are multiple datagram messages * Fix possible lock issue during AdhocMatchingStart * (.gitlab-ci.yml) Add linux-i686 and windows-i686 targets (+ prevent creation of 'null' file when building Windows libretro cores)- Update to version 1.10.3~git20210201: * Updated PdpStat and PtpStat * vertexjit: Only save extra regs on x64. * Core: Assert debug stats remain positive. * vertexjit: Correct saved registers on x64. * Core: Maintain frame dump disc ID in SFO. * Loaders: Prevent errors on 0 byte reads. * Have the flat shading workaround obey the driver workarounds checkbox * Fix minor rendering glitch in PPSSPP's menus on iOS * Add checkbox to enable/disable driver bug workarounds. * Add a new command in developer tools to list and load framedumps from framedump.ppsspp.org/repro/ * Framedump test screen. Downloads a list of framedumps.- Update to version 1.10.3~git20210131: * Ge: Restore saved context when ending a list. * Ge: Improve some logging and memchecks. * Mpeg:Only allow firmware >= 6 for warmup * Vulkan: Fix image layout issues after compute shader uploads. * Io: Consistently use LE values of ISO entries. * Only force the log level if it set via an argv * jit: Be very clear on sign extension. * Core: Correct branch analysis truncation. * Fix Apple gpu detection * Attempt to fix #14022 * Fix logging flags * x64Emitter: Fix unaligned store UBSAN errors * Fix left shift of negative value in MIPSCodeUtils * Minimize the Adreno shader compiler bug repro test * Fix connection issue on Dynasty Warriors (Shin Sangoku Musou) games when playing with more than 2 players. * jit: Make branch shift more obvious. * Fix alignment issues in ISOFileSystem * Fix Russian characters ltn8~15.pgf * CMake: Fix UBSAN link error * CMake: Rename USE_ADDRESS_SANITIZER to USE_ASAN * CMake: Add USE_UBSAN * Try to build fix on non-windows * Mpeg:Only allow firmware >= 3 for warmup * (.gitlab-ci.yml) Add windows-x64 target * FindFFmpeg: Fix a few issues * gitlab ci change requested by m4xw * Fix Greek characters ltn0~7.pgf * Specify MaxScale=2 for the new MMPX texture scaling shader * Vulkan: Allow tex shaders to specify a max scale. * Vulkan: Add MMPX upscaling texture shader. * Remove duplicates from ThreadManForKernel * Mp3: Correct logging for init. * Updated GameMode initial data sync, in case remote players aren't listening yet when sending initial data (fix Pocket Pool) * Mp3: Always keep sample rate from original mp3. * Add back XCode TARGETED_DEVICE_FAMILY config line * Mp3: Allow decode without pcm pointer. * Mp3: Correct error handling for newer sdk versions. * GLES: Remove direct khrplatform.h header include. * Add header information * sceMp3Init:Add layerBits and versionBits information * Don't allow ForcedFirstConnect hack when using PtpConnect within PtpOpen to prevent returning result from blocking PtpConnect instead of result of PtpOpen. * Reporting: Expose CRC queue methods for other uses. * D3D9: Don't allow separate alpha clears. * GPU: Respect stencil write mask for 5551 buffers. * GE: Better naming of render passes for color reinterpret * Io: Don't allow async close while async busy. * Fix duplicate shader version in the flat shader test * OpenGL fragment shader gen: Fix precision inconsistency for v_color0/1.- Update to version 1.10.3~git20210124: * Fix returned error code on PtpSend and PtpRecv when socket is not connected yet. * Do PtpConnect internally during PtpOpen, since some games (ie. The Warriors) seems to do PtpSend immediately after PtpOpen without trying to PtpConnect first. * Fix Greek characters & Roman numbers & all balance on jpn0.pgf * Resample only in 32000Hz * Plugins: Enable by default. * compat.ini: Add Split/Second to [ReinterpretFramebuffers]. See #13957 * PPGe: Scale down by worst of window/internal res. * build fix * Some marks position fixed on jpn0.pgf * Fix Russian (Cyrillic alphabet) on jpn0.pgf. * Resample all mp3 * Oops! I misstook uploading jpn0.pgf. * PGF Fixed Bold & Italic property and camouflage the Font name. * Kernel: Adjust sceKernelGetThreadExitStatus timing. * Debugger: Include all press states for convenience. * Debugger: Broadcast ctrl input events. * Debugger: Add API to trigger buttons. * Compat: Enable reinterpret for Kingdom Hearts. * Vulkan: Prevent scaling shader leak. * GPU: Fix safe size checks when rect offscreen. * Headless: Default to PNG for ppdmp tests. * Headless: Simplify executing a ppdmp via headless. * Headless: Disable http disk cache. * Headless: Allow PNGs and http:// for screenshot. * Headless: Read expected file as a FileLoader. * Headless: Allow screenshot compare without backend. * GL FB readback: Only use "inout" if we actually want to read from the fb. * More GPU test improvements * Compat: Note that 3 LEGO games those are require Buffered rendering * Add texture to flat shaded test. * Adds two new tests to GPU driver test screen: Adreno shader logic test and flat shading * CMake fixes and new --ios-xcode ./b.sh command. * There's little reason to build at O3, so let's just not. Changing to O2. * Vulkan: Delete only created swapchain images. * SoftGPU: Fix sprite provoking vertex in fast path. * Module: Keep the state for each import. * Headless: Allow connecting the web debugger. * Compat: Note that Gradius requires block transfer. * Remove re-test each month * Module: Keep HI16/LO16 in a temp state object. * Module: Reverse a single HI16/LO16 pair correctly. * Fix Stuck issue on some games (Dissidia 012, Full Auto 2, etc) when Failed to connect to Adhoc Server (faked success) * VK: Re-apply the old Adreno driver bug workaround. Fixes #13910. * Make sure we don't try to set a negative viewport size. * Update Template * Enable BlockTransferAllowCreateFB for Gradius Collection * PGF Re-Fixed Euro Characters * irjit: Update clobber flag on inst swap. * irjit: Add disable flag for simplify passes. * Android: Add NEON/SSE funcs into Headless/UnitTest. * Build: Validate unittest/headless on Android. * Android: Fix headless and unittest build. * Fix copy/paste typo causing crash getting tempdirs if an env var had no value * GPU: Correct shader gen with weights as floats. * FixPGF for Euro Characters.(Balance emphasis) * UI: Cleanup Windows header in MainScreen.cpp. * http: Prevent Windows header leak from HTTPClient. * Windows: Handle fullscreen message consistently. * irjit: Fix mtv for INF4. * irjit: Correct flags for SetCtrlVFPUReg. * jit: Fix conditional disable flags. * Improve some i18n things * Enable using the folder browser on Android to select SD card through a gross hack. * Add a file picker (WIP) * Use the same logic of game setting for main menu full screen, add other system * Manually tighten up the layout a bit in the top right corner * Add a fullscreen toggle button to the main screen (Windows-only for now) * Try another method for getting SD card storage paths (env vars). * Reducing AdhocMatching events delay to prevent matchingEvents from piling up on Lord of Arcana. * Send AdhocMatching Data from within HLE whenever possible instead of through matchingEvent Thread. * Prevent access violation when running out of userMemory due to piling up AdhocMatching events. * Add game ID for russian version of Tron Evolution * Add 3 games to ForceMax60FPS * Add more error checking in SD storage detection * add assets to ubuntu build artifact * UI: Prevent self-powerdown check on load new game. * Core: Properly stop on abrupt shutdown. * Android: Minor cleanup. * Remove redundant method from PathBrowser.cpp * Fixes for SD card detection on slightly older devices. * UI tweaks * Use hacky methods to retrieve SD card directory if available. * Add home button on all platforms * Add some new icons. * Fix adding extra new line on checkbox change * Save on game start * iOS: Change iOS 13 check. * Savedata: Reduce some noisy logging. * cmake: Silence warning. * Adding games to RequireBufferedRendering that cause black screen when not enabled * Compat.ini cleanup to add missing IDs and remove unused ones from latest version * Add Missing game IDs for Tekken 6 * Initialize/Deinitialize the shader translation system once globally. * Savedata: Prevent garbage bleeding into save icons. * Revert "Bleach Soul Carnival. Disable the "First Frame Readback" compat setting." * Never pass a null into QueueDeleteImageView (got a report of that). * UI: Use "Details" for upgrade outside Win/Android. * SaveState: Allow rewind on mobile. * Postshader: Improve error reporting. * Bleach Soul Carnival. Disable the "First Frame Readback" compat setting. * GPU: Be careful with color write mask precision. * GPU: Ignore color write mask if unusable. * Windows: Prevent hang on shutdown. * D3D11: Avoid crash if debug/info queue unavailable. * Build: Include Windows ARM64 in builds too. * headless: Fix Windows ARM64 build. * Windows: Fix miniupnpc build on ARM64. * iOS: Expose iOS 12.1+/13/14 buttons. * UWP: Don't try compiling samplerjit. * Build: Run software backend for tests. * GPU: Remove NULL GPU. * Headless: Always use at least software rendering. * SoftGPU: Allow rendering with no backend at all. * UWP: Allow software renderer. * SoftGPU: Update PPGe draw context. * Readme script update * Psmf: Fix a potential leak on shutdown. * GPU: Correct some incorrect deallocations. * Common: Correct some formatting type mismatches. * http: Ignore signals on recv() too. * http: Cleanup excessive logging. * Android: Remove old NDK profiler. * Common: Fix logging shutdown race condition. * Debugger: Fix some type conversion warnings. * Windows: Fix some type conversion warnings. * Net: Remove static declarations from h file. * Build: Remove Travis in favor of GitHub Actions. * Build: Reference test as file on failure. * Build: Auto skip on documentation only changes. * Build: Disable fast fail to see all build errors. * Build: Skip SDL2 dependency for mobile platforms. * Build: Include PPSSPPSDL on macOS for debugging. * Build: Run tests on Linux and macOS. * Build: Install specific Android NDK. * Build: Install SDL2 dependency. * Build: Ensure yml use tabs. * Build: Add CMake to GitHub Actions. * Build: Enable graphics tests. * Build: Explicitly depend on miniupnpc. * Build: Add test execution. * Build: Add GitHub Actions workflow. * Headless: Add specific GitHub Actions logging. * Headless: Cleanup TeamCity handling in test.py. * Euro characters Fixed in jpn0.pgf. * Ipega PG-9118 modified: assets/gamecontrollerdb.txt * If we are reporting a small memstick size, but data is bigger, lie. * Debugger: Correct a type error. * Debugger: Cleanup some syntax. * Debugger: Add helper to read strings. * Debugger: Add API to read/write chunks of memory. * Debugger: Cleanup memory.read/write validation. * http: Prevent assert on bad websocket data. * Corrects the calculation of the return value when the callback of RingbufferPut returns a negative value. * Using MSG_TRUNC along with MSG_PEEK as a precaution of a possible buffer overflow when peeking recv buffer. * Revert "Merge pull request #13807 from unknownbrackets/ios-buttons" * An attempt to add BlockTransferAllowCreateFB for Naruto Shippuden: Ultimate Ninja Impact * Instance: add missing headers more POSIX systems * FileSystems: add missing header * Linux: ignore missing MAP_NORESERVE on FreeBSD * Split the DepthRangeHack compat setting into itself and DisableRangeCulling * http: Treat buffer full flush correctly. * http: Wait less time for IPv6 if IPv4 succeeds. * Fix layout problem on crash screen. Fixes #13808 * Fixed an issue where sometimes a player unable to join a host on Warriors Orochi 2 (should also fix similar issue on other games that use PDP/UDP on Windows) * Close the port immediately when closing a socket. * iOS: Expose iOS 12.1+ buttons. * Revert "Cleaner exit on Windows. Will hopefully help #13325" * Typo * Fix Grand Theft Auto - Vice City Stories * Mpeg: Add warm up staff * Android: Fix text color in dialogs by just inheriting from the DeviceDefault theme. * UWP StorageFileLoader: Remove some excessive logging. * Temporary workaround for Wipeout Pure lens flare flicker. * UWP: Work around another race condition in StorageFileLoader. * UWP: Fix dialog rendering (PPGe). * UWP: Make the home button say "Home" instead of "Browse...". * Forget this one HLE_KERNEL_SYSCALL * Add some ThreadManForKernel nis * Folder browsing on main screen: Prevent navigating "up" when you can't. * UWP: Make the home button say "Home" instead of "Browse...". * PathBrowser: Show simplified version of paths under the memstick dir. * Fix navigation upwards from a pinned game streaming folder. Fixes #13224. * Update ffmpeg submodule to a named (identical) commit, to not confuse some buildbots * Postprocessing shader, GL: Fix shader version bug. Fixes #13779 * UWP buildfix * D3D11: Avoid the debug layer hazard tracker after blits. * Cleaner exit on Windows. Will hopefully help #13325 * Misc logging improvements * Crash screen: Add a very dangerous and inaccurate "Resume" function. * Further improvements to crash screen * Hide touch controls on bluescreen * Fix bluescreen layout on notched phones * Improvements to crash screen. * Fix synchronization bug in StorageFileLoader.cpp (wrong mutex) * XAudioBackend: Limit the number of queued buffers properly. * Reformat and do minor cleanups in UWP/XAudioSoundStream * Linux: Properly avoid committing address space for large mmap(). * Fix PGF a figure. * Fixed "jpn0/kr0/ltn0,2,4,6 * Add stack value in scempeg and scepsmf from jpcsp * Add an iOS-only utility in devtools to copy savestates to memstick root. * Fix background idle animation on iOS when task switching * Apple driver bug workaround. See issue #13451 * Fix check for Android version in whether to display "ignore camera notch when centering" Fixes #13774 * GL: Detect Apple GPUs as a category * Minor cleanups * VK: Restore the ARM Mali Z hack that got lost in the refactor somehow. * Some cleanups in GL feature and shader language detection. * ARM64 buildfix * Minor refactor in sceUtility.cpp, making future changes easier. * Android: Enable fullscreen ("Immersive mode") by default. * Fix regression in Dream Club Portable. Fixes, for OpenGL, #6497 * Minor comment. * Don't display data info as new data when saving done. * Fixes incorrect date of savedata. * Turn off vertex range culling in bezier/spline calls. * Call g_Config.Save() first thing in MainScreen::OnExit. Workaround for #13286 * Assorted drive-by code cleanup * thin3d: Add a way to query the current render target for debugging. * Fix DiRT 2's car reflections. * cmake: Enable the install target for non-linux unix systems. * Use system time format on savedata aswell * Nassau's new fonts. Replaces #13753 * Change the typo * Fix loader * Bundle libMoltenVK * Another Ghosts'n'Goblins game ID. * Specify Target * Add more games to RequireBufferedRendering * Avoid potential crash without storage permissions. * Add games that requires buffered rendering * Do not use x86 for other machine * cmake: Add a desktop file. * cmake: Add an install target. * Use the double precision sincos for Hitman RBA 1 too. See #13706 * Add missing header in Logmanager.h * Fix headers in MIPSCPUDetect. * sz must be longer than target string * Remove superfluous variable from uniform buffer * Why not iOS? * Safer hack to build on M1. * CMakeLists.txt fixes for M1. It sets cpu arch to "arm64", not "aarch64" * M1: Correctly detect core count. * Cleaner way to flush the instruction cache on Mac ARM64 * Mark ARM64 Macs as needing WX-exclusive memory protection * Fix a crash if JIT space failed to allocate * Fix GPU driver test screen * Make universal binary version of ffmpeg work. (#13457) * D3D11: Fix shader module leak in thin3d. * Fixed a PlayStation typo (#13729) * Switch to nassau-tk's latest Korean font. See issue #13190 * Respect stage in BindFramebufferAsColorTexture(). * Change ltn x font (#13721) * Fix Ghosts & Goblins for older backends too. * Two more Ghosts & Goblins game IDs for compat.ini * Better debug names for BlitFramebuffer operations. * Enable color reinterpret for Ultimate Ghosts & Goblins * Need to take renderArea into account when merging render passes. * Update lang submodule * Correctly handle stuffing data of pack header. * Build fixes * Fixes state. * Writes target buffer address in multiple times. * Turn off the MacOS and iOS Travis jobs, they seem to have stopped working. * Only use double precision sincos in Hitman Reborn Battle Arena 2. See #12900 * Partially revert "VFPU: Compute sines and cosines in double precision." * Try to implement some related funcs. * Remember game list scroll * Update jpn0.pgf * Guess at a fix for #13698 - sceKernelThreadGetExitStatus probably takes some cycles. * Clean up. * Mpeg:Checks autual available space before putting data. * Implements sceUsbCamGetMicDataLength. * libretro: Remove VertexShaderGeneratorHLSL from Makefile.common. Fixes #13696 * Clean up psp_color shader * Update jpn0.pgf (manually merged from commit #13683) * Update lang submodule * Add developer setting "Show on screen messages". Uncheck to hide them. * Translation: Fix issue #13685 * Translation: Fix issues #13686 and #13687 * Adreno/OpenGL: Limit shader depal to 6xx series GPUs. Should help #13668. * Modified "ltn0/1/2/3/4/5/6/7 .pgf" * Makes a distinction between blocking and non blocking modes. * Changes the way of reading microphone data. * Fix some wrong asserts (we don't use ) * Fix mistake. * Better GLSL version handling. Now specify the latest version supported by the device. * Updated socket's send buffer size as an attempt to fix PSP2i unable to enter dungeon when using RadminVPN issue #13648 * Change socket's MSS based on PSP_ADHOC_PTP_MSS * Making use TCP_QUICKACK (or it's alternative) along with TCP_NODELAY * Fix crash when drag-dropping texture packs. Fixes the main part of #13614 . * Fix scale in FramebufferCommon::GetFramebuffer. Fixes #13644 * Clears didn't always properly set the RenderArea. Should help #13664 * Corrects the number of added packets returned by sceMpegRingbufferPut, especially if callback is called multiple times. * Fix crash in sceusbmic on load old staus then save again * Makes video streams amount meet the expectation of sceMpegRegistStream() not only the mpegheader. * Reads all packets to ringbuffer. * Fix crash on save state. Fixes #13658 * Fix Star Ocean stencil issue with OpenGL. Fixes #13746 * OpenGL: Assorted shader-depal bugfixes and regression fixes. * Fix check for when to generate packUnorm4x8 replacements * OpenGL: Detect Adreno model number * Update gamecontrollerdb.txt * Expose the "Lower resolution for effects" setting in libretro. Fixes #11099 * Don't try to texture from depth if not supported by backend. Works around #13621 * More consistent use of GLSL precision modifiers, now use them in Vulkan too. * Fix bug in the new color writemask code, failing to limit it to Outrun properly. Fixes #13650. * Outrun on OpenGL: Fix weird purple highlight seen on some devices * Fix task switching issue with reinterpret. Fixes #13649 * Minor cleanup in GL backend, fixes #13647 * D3D11: Fix writing to SV_Depth. Fixes #13641 * Linker fix - need to move init_resources along. * Mpeg:Revert part of https://github.com/hrydgard/ppsspp/commit/fa59be7e5db1526d07de75f6d7c14b94e98809e6 * On GLES3, GL_EXT_shader_framebuffer_fetch works a little differently. * Remove support for NV_shader_framebuffer_fetch extension, very old and rare. * Reorganize the end of the fragment shader generator. * Remove ForceGL2 flag. Add comments... hm. * Move ShaderTranslation.cpp/h to Common/GPU. * Fix crashes on exit (Vulkan). Should help #13223 * Fix HLSL shader gen issue * Temporarily disable GL frame-init error checks, see #13639 * Get shader color write masking going on all backends. * Fix AuCheckStreamDataNeeded function * Unrelated warning fixes * Fix some comments * Fix some comments, rename a function. * More work on detangling the concepts and making things make more sense. * ShaderBlend and FramebufferRead are separate concepts. Reflect that in naming. * Simplify shader blend logic in FragmentShaderGenerator.cpp * Address feedback. * Add compat flag for reinterpret shader, also disable on platforms that can't support it yet * Fix reinterpret shader for D3D11 * Cleanup reinterpret shader resources in FramebufferManagerCommon::DeviceLost(). * More work on reinterpret. Get Vulkan running * Reinterpret the data when binding a framebuffer with a different 16-bit format. * Reinterpret code runs, no idea if it works * More shadergen work * More reinterpret shader gen and test work. * Forgot a line in caa960ee8e * Unify FramebufferManager::BindFramebufferAsColorTexture * Start unifying BindFramebufferAsColorTexture * Reorganize the DeviceLost code a little. FramebufferManagerCommon now sees it. * Remove some accidentally added lines * GLSL ES compilers can be very picky about uint/int. Fixes #13628 - for real this time hopefully * Oops, what happened there.. * Some GL error logging improvements * Fix GLSL version detection bug. Fixes #13631 * Fix bugs caused by 44ec286ba4 * Fix off by one * Move shader language feature detection to the draw context. * Framebuffer: Keep the render scale factor around, no need to recompute it. * Partially revert "Remove remnants of an old, no longer applicable readback optimization" * Buildfix * Remove colorDepth property of framebuffers. They're all 8888. * Remove remnants of an old, no longer applicable readback optimization * Fix bug in framebuffer naming * Inline "OptimizeDownloadRange" to make the code more readable * Merge the two ShaderStage enums * Show an error on screen if a shader fails to compile. * Merge the two ShaderLanguage enums. * Move ShaderWriter to Common/GPU, along with some stuff from ShaderCommon.h. * Retry the masked memory experiment on iOS. Turns out it was the shader generator bug that broke things. * GLSL ES: Extensions must go first. Fixes #13620 * Disable masked memory on iOS again. The cure was worse than the disease apparently. * Partially revert "Clarify some logic, improve framebuffer names" * GPU: Correct shader blend equations. * Fix Starting multiplayer issue on DBZ Team Tag * Reducing the delay on GetPeerInfo * Enable masked memory addressing on iOS * Fix/workaround ARM64 with the MASKED_PSP_MEMORY build flag. * Fix a bad check, causing masked memory to fail on non-32-bit platforms even if desired. * Bugfix last commit * Apparently only MSVC can handle the ambiguity. * Buildfix the rest of the platforms * GEDebugger: Use utf-8 internally. * ShaderWriter, a replacement for the sprintf WRITE macro. * Safety, comments * Clarify some logic, improve framebuffer names * Fix vertex shader generator bug. Got caught by the new test * Move the generic vertex shader generator into GPU/Common and rename it. * Delete the HLSL shader generator, switch to the newly generic one. * Another hlsl compatibility fix * Share the uniform buffer declarations between D3D11 and VK. * Fix remaining differences between generated shaders * Start working on getting tess to match * Fix through mode differences * Make the lighting code match * Make the hardware skinning code match * More HLSL work. Some vertex shaders are starting to pass. * Vertex shader merge work * Oops, seems I screwed those #version statements up worse. * Fix #version statement for GLES 2.0 vertex shaders * Fix #version statement in GLES 2 fragment shaders * Remove a redundant bit from vertex shader IDs. * Fix an old inconsistency between D3D9 and D3D11 projection matrices. * Remove inPrefix. HLSL shaders gets slightly longer but probably no biggie. * Fix silly issue in vertex shader gen * UWP buildfix * Move the now-renamed fragment shader generator to GPU/Common. * Just some cleanups that get to tag along * Fragment shader gen: Remove unnecessary allocations * Cleanup * Check for a couple additional GL extensions * Remove the HLSL fragment shader generator. The GLSL one can now do its job. * Switch D3D9 too to the glsl shader generator * Switch D3D11 over to use the GLSL fragment shader generator * Misc cleanup * Minor D3D9 fixes * Test parsing of generated OpenGL shaders too (by using glslang). * Get D3D9 fragment shader generation to parity * HLSL fix * More D3D9 fixes. * Set up the test for D3D9, start fixing stuff. * Evolve the HLSL and GLSL fragment shader generators even closer together. * Change fragment shader output to work the same in GLSL and HLSL. * Make discard work the same way in the HLSL shader generator. * Start adding HLSL support to the GLSL shader generator. * wip * HLSL: Use #define to switch to glsl-like vector types. * Fix loading old savestates. * Modified "ltn0/2/4/6 .pgf" * When stops and unloads self module, make sure that the thread is properly deleted. * Fix significant FPS drops on Hitman Reborn Battle Arena 2 * Updated Blocking simulation of AdhocSocket (especially PdpRecv) * Updated Minimum Timeout workaround settings to use 0 as default (no override) * Remove support for D3D11_level_9 (previously only really used for Windows Phone, probably). * Blocks current thread to synchronize initial GameMode data. Fixes desync issue when GameMode multiplayer mission is being started. * Moving socket creation from AdhocMatchingCreate to AdhocMatchingStart. (Fixes Dissidia 012 unable to see any room issue) * Fixed an issue with AdhocMatching where there is a possibility that some data didn't get sent upon AdhocMatchingStop causing Joined players to get timeout. (Fixed Star Wars: The Force Unleashed) * Implementing Adhocctl Busy state to prevent getting kicked out from Adhoc Server on games that tries to leave the group multiple times in a row. Also Updated Adhocctl behavior. * Updated GameMode API (Fixed Pocket Pool) * Prevent memory leaks when clearing AdhocMatching events. * Fixed unable to see game room issue on Air Conflicts - Aces Of World War 2, should also fix other games with similar issue (due to invalid group mode) * Added delay result to SetSocketAlert for other threads that use the socket to trigger the alert. * Socket alerts can be triggered regardless of the nonblocking flag * Do not clear socket alert flag after signaled. * Prevent Scanning issue after reconnected to AdhocServer, also Updated logging to showing the error code on sceNetAdhocctlScan * Updated validity checking of mac address on PdpCreate, PtpListen, and PtpOpen * Updated Loggings and return value of PdpSend and PdpRecv * Added hleEatMicro (may not be accurate tho) on PdpSend, PdpRecv, and GetPeerInfo. * Updated error code on sceNetGetLocalEtherAddr * Prevent memory leaks when attempting to play GameMode multiplayer again after loading from SaveState in the middle of GameMode multiplayer. * Prevent Port leaks after loading SaveState in the middle of multiplayer resulting to "port in use" error on the next attempt to play multiplayer. * Fix checks for fragment test cache in GLES fragment shader generator * Modified "ltn1/3/5/7 .pgf" * Log the return value. * Fixes mistake. * IMP sceKernelFindModuleByUID and sceKernelFindModuleByName. * SaveState:Don't register the event during Dostate. * Modified "ltn1/3/5/7 .pgf" * Somehow forgot to delete VertexShaderGeneratorVulkan.cpp * Change jpn0 font (#13588) * Use splat3(x) liberally (converts to vec3(x) on GLES, vec3(x,x,x) on D3D) * Complete the vertex shader merge, deleting the Vulkan-specific vertex shader generator. * Additional fixes * More tess fixes * Initial work on fixing tess * Fix additional minor differences * Fix more vertex shader differences * Bridge more vertex shader differences * Time for the vertex shaders. Set up a test, start eliminating differences. * [Android] Retrieve isMicStarted from AndroidAudio state * [Android] Start recording immediately after asking for permission * [Android] Audio record using OpenSL * Fixes savesate for usbmic. * Revert "Android gradle update" * Completes the merge, deleting the Vulkan-specific fragment shader generator. * Fix more tiny differences. The fragment shader generators now match! * Fix additional differences * Fix minute differences between the shader generators found by the new tester * Hack up a test comparing Vulkan fragment haders generated by the GL GLSL generator to the ones generated by the Vulkan generator. * OpenGL: Share the shader version detection. * Cleanup * GLES: Read compat params first, emit code later. * More splat3 * Revert "Try my theory about memory mirrors on iOS 14. See #13451" * Android gradle update * Fix a section of the translatable message * SwicthUMD:Only update Switch UMD item of Windows menu instead of entire UI. * Try my theory about memory mirrors on iOS 14. See #13451 * Remove an unmotivated ifdef. Additional cleanup * OpenGL: Allow texture wrapping on framebuffers if supported * Prepare for more GLSL testing * Rename shader generator functions, a bit of moving around and adding an errorString param. * Add brute force shader generator tester. Tests D3D11 and Vulkan shaders. * Vulkan: remove array indexing for light parameters to match the other backends * Rename vk uniforms to match the other backends * Update gitlab ci for libretro to use cmake * Io: Track initial free space for compat flag. * Headless: Define consistent memstick size. * Psmf: Cleanup logging. * Psmf: Handle older states for delayed state change. * Address feedback about recent changes * Don't need to connect if AdhocServer IP is the same with this instance localhost IP and having AdhocServer disabled * Updated Loggings and return value on PtpSend, PtpFlush, and PtpRecv. * Show a warning just in case an abnormal situation occurred. * Fix disconnection issue due to timeout on blocking PTP Socket * Added Connection Refused error code on PtpConnect * Fixed disconnection issue when multiplayer game started on Shaun White Snowboarding, and improved multiplayer performance on games that use GameMode. * Updated Adhocctl timings based on the timestamp on JPCSP + prx files * DoState. * PsmfPlayer:The status will not be changed until the delay result is finished. * Io: Account for free space on the host device. * Qt: Remove Qt-specific screenshot path. * Error handling fixes * D3D11: Implement depth texturing. Fixes, for D3D11, #6411. * Set up depth buffers to be bound as shader resource views * Libretro: set Memory Stick Size config value. fixes #13552. * OpenGL: Disable auto invalidation of framebuffers, it has somehow broken * retro ci fix * oops, wrong filename * Removing the workaround that was used to fix Gran Turismo in the past but no longer needed. Since zero mac address is an invalid mac we should return an error. * Updated AdhocPollSocket timeout checking. * Increasing Adhocctl timeout to 5 seconds (with side effects of longer freezes when detecting disconnected players), to prevent failure to connect to AdhocServer on time due to some unknown reason where sometimes it tooks more than 2 seconds for Adhocctl Init to connect to AdhocServer on localhost (normally only 10 ms), and sometimes it tooks more than 1 seconds for built-in AdhocServer to be ready (normally only 1 ms) * Make all the Comp_Cache implementations the same. * Add libretro CI. * Prevent AdhocServer Pings from spamming Debug Log * Fix disconnection issue when joining multiplayer on Capcom Puzzle World * 2nd or more instance of PPSSPP should only bind it's own localhost IP for Adhoc Server. Fixes Capcom Classics Collection Remix multiplayer on multiple-instance. * More buildfixes * Removed unused texel info * Added new vertex shader file naturalA.vsh * Removed unnecessary vertex coords * Replaced shader vertex file for naturalA * Libretro: add SYSPROP_DISPLAY_SAFE_INSET* properties. fixes screen frame size. * Yet another one * Another missing header buildfix * Minor cleanups related to #13527 * Add missing include in URL.h * VS 2017 buildfix hack - these parameters are new to Windows. * libretro: Fix screen size problem in Vulkan. * Get Vulkan going again with libretro. Rendering is the wrong size and crashes on exit, but it's a start. * Libretro/VK: Add a README for debugging, so I don't forget. Minor cleanups. * Added 1 new NID of OpenPSID Service, also added Init & Shutdown function * No need to call video_cb if there is no image * fixed issue with: [libretro ERROR] [G3D] glewInit() failed- Exclude aarch64 and %arm as it never built due to openGL vs openGL ES issue.- Use again system ffmpeg - Update to version 1.10.3~git20201014: * Fix text issue in God Eater Burst. Forgot that games can allocate texture in volatile memory too. * Vulkan: fix stack overflow. * libkirk: fix buffer overflow. * Fix a couple of issues with #13477, found by aliaspider. * VK: Whenever safely possible, shrink the render area. * Fix OpenGL crash introduced in #13536 * Fix GPU profile display on notched screens * compat.ini: Add ID for European version of Car Jack Streets * Track and accumulate pipeline flags for render passes. * Bugfix * VK: Separate layout transitions from renderpasses again. * Remove the USE_GENERAL_LAYOUT_FOR* debug defines. * VK: Copy depth buffer if we can't blit. Some GPUs can't blit to depth. * Workaround for date bug in Car Jack Streets. * Fixed timeout issue due to the latest CoreTiming::GetGlobalTimeUsScaled() have a possibility to get smaller number than the previous one. * Added some network-related missing error codes. * Create a safer variant of BlockTransferAllowCreateFB, enable for FF Type 0 * Fix additional snappy warnings. * Warning fixes. * Avoid a division in time_now_d(). Minor optimizations. * VFPU: Compute sines and cosines in double precision. * Make Qt apply fullscreen change from UI as well * Make --windowed available on all platform and make sure to trigger resize * Add an option to the in-game dev menu to reset counts on limited logging * Change jpn0.pgf for a new one generated by nassau-tk * Update gradle, assets/lang * Prevent sceNetAdhocctlGetGameModeInfo from spamming Warn/Info Log on Street Supremacy * Added socom.cc as an alternative Public Adhoc Server, just because they have statistic web page for players to find out which games are being played and how many players are there. * Minor changes. * Return early to reduce indentation on AdhocMatching code * Updated AdhocPollSocket implementation to fix Bleach Heat the Soul 7, Fate Unlimited Codes, Carnage Heart EXA * Prevent getting too many Kernel Errors in the log during a Shutdown cleanups due to kernelObjects already cleared. * Prevent Dissidia 012 from opening too many ports when failed to connect continuously. * Making the workaround that fix Gundam vs Gundam Next Plus to be optional as it can improve connectivity on other games over high latency networks, and fix GvG Next Plus properly. * Updated AdhocSocket struct, and an attempt to reduce stutters by increasing the send buffer a little bit. * Fix Falcom games (ie. Ys vs. Sora no Kiseki, Vantage Master Portable) * Removing ETIMEDOUT from non-blocking socket's error checks * Updated GameMode implementation to fix Bomberman, also improved performance on BattleZone. (+1 squashed commits) * Fix NetconfDialog timings to get a better message transitions. * Fix Apctl and Adhocctl state change timings to works properly. Which fix the stuck MessageBox on Naruto Shippuden Ultimate Ninja Heroes 3 and .hack//Link properly. * Removing the workaround that fix the stuck MessageBox on Naruto Shippuden Ultimate Ninja Heroes 3 and .hack//Link but having a side effect of 0.5 second lag * Fix a recent bug in XinputDevice.h * Sets the maximum memory stick size to 32GB like a Memory Stick Duo. * Savedata:Skips non-directories in LISTALLDELETE mode. * Simulates memory stick size to get fixed free space. * SDL: Apply patch from issue #13516, fixing issue with Wacom tablets with readonly flags set. * SDL: Implement multitouch support * Buildfix - remove more Qt-specific code in TextureReplacer * Also report a smaller memstick for Street Fighter Alpha 3 MAX (see #10462) * Add compat.ini setting to work around memstick size math problem in Harry Potter - Goblet of Fire * Fix libretro makefile build * Add some recent contributors to the credits list. * Delete useless Qt-specific path in TextureReplacer * Vulkan: Automatically generate mipmaps for replacement textures. * Cap the global thread pool at 16 threads. * Remove Timer.cpp/h. Move various collections into Common/Data/Collections. * Fix Qt build by simply moving the offending file to the native project. No idea why Qt include paths only work there. * Buildfix linux * Windows: Remove the native project. * Complete the eradication of D3DX9 compiler loader * Move text rendering to Common. * Move most GPU things to Common. * KeyMap fix (libretro) * Libretro buildfixes * Move fileutil, net, image loaders, ui to Common. (#13506) * SaveData:Displays all saves like a PSP for LISTALLDELETE mode. * iOS buildfix * Mac/ios buildfix * Move NativeApp.h to Common/System, split into NativeApp.h and System.h * Move Display.cpp/h to Common. * Move the profiler to Common * Common.h shouldn't include Log.h. * Move math and some file and data conversion files out from native to Common. * iOS buildfix attempt * Move native/util, native/data and native/i18 to Common/Data. * Fixed missing cstring include. * Move input utilities from native to Common/Input. * Savedata:Corrects the performances when the data is broken. * Move threading utils from native to Common * Savedata:Supports empty file name for save/load/delete. * Savedata:Improves the deleting functions. * Libretro buildfix * Windows: Correct some stdafx.h paths. * Adnroid: Add back arm32 files for libpng. * Android: Fix include paths. * Global: Add back arm files for libpng. * Merge ext/native/ext/... directly into ext. * ByteSwap.h results in a file name collision on some systems with byteswap.h. Fix this by merging it into BitSet.h. * Additional UWP buildfix * UWP buildfix * retro buildfix * Buildfixes * Remove some TLS. * Remove unnecessary use of thread local storage * Remove some color util functions * Move buffer.cpp/h from base to Common * Buildfixes * Finish getting rid of basictypes.h * Merge base/basictypes.h into Common/Common.h (mostly). * Merge ext/native/stringutil.cpp/h into Common/StringUtils.cpp/h. * Remove old define for thread local storage * We no longer use TCHAR. * Remove our usage of ssize_t * Delete more useless math code * Delete unused math code * Delete more old detritus * Delete some unused string functions * Very minor optimization (divisions by constants are faster unsigned) * Delete unused backtrace.cpp * TimeUtil.cpp cleanup * Fix issue with duplicate texture dumps. * Add PSP color shader * SDL: Adjust locale parsing for Ubuntu. * Core: Fix memory size check. * fix #13471 * glcore context switching * Don't cache time in a variable. * Enable BlockTransferAllowCreateFB for Burnout Dominator. * Some GPU code cleanup. Disable some unnecessary reporting. * More cleanup * Cleanup * IndexGenerator::AddStrip: Avoid the fallback by writing a few extra indices if necessary. * Also optimize IndexGenerator::AddStrip for ARM NEON. * Buildfix * SSE-optimize IndexGenerator::AddStrip. Shaves about half a percent from GoW. * Speed up game start under Windows by not filling the symbol listbox until the disasm window is opened. * Windows debugger: Clean out old remains of multi-cpu support * Reduce string allocations in Vulkan memory allocator * Revert a bad optimization in word wrapper * An attempt to improve connection stability. * Fixed returned error code on sceNetAdhocctlDelHandler * Minor fix to sceNetAdhocctlGetPeerInfo * Added more info on some sceNet logs * Prevent sceNetGetMallocStat from spamming debug log on some games. * Remove some reporting that's normally just the result of garbage-as-display-list-execution. * Remove an allocation in the word wrapper. * Fix slowdowns due to careless use of auto * Mark the PPGe font texture as reliable to avoid hashing it. * Minor optimization in wrap_text.cpp * Fixed PdpStat and PtpStat info * Fixed returned error code of sceNetAdhocctlDisconnect * Quick fix for #13459 * Fix regression where Gran Turismo ended up recreating the framebuffer on every frame in the menu. * Update submodule ffmpeg to master * Remove unused lastBoundTexture from Vulkan * Comment fixes. Minor tweak. * Cleanups in/around BlitFramebufferDepth * Remove redundant bind on GL texture build. Improve dirtying of texture state. * Remove dirtying of TEXTURE_PARAMS from ForgetLastTexture, not its responsibility. * Set the texture dirty flags when binding a new framebuffer. * Added alerted flags info on AdhocSocket to be used on PollSocket * GPU debug stats: Show how many bytes of texture data we hash per frame * Simplify NotifyFrameBuffer - only needs one call for both "channels" now. * Share GPUS stats formatting code between the backends (easier to add new stats) * Have to invalidate "lastBoundTexture" when binding framebuffers as texture. * Remove some unnecessary function parameters, improve some comments. * Using REPORT_ONCE to report some of GameMode HLE existance. * Implementing Adhoc GameMode HLE * Minor changes to adhoc timestamps * A couple of D3D11 fixes. * Fixed crash issue when creating/connecting to a null group name. * Minor improvement to gl_debug_log.h * Fix bug in GLES texture filter setup * The new asserts found something. * Unify BlitFramebufferDepth. * Make the implementations of CopyFramebufferDepth more similar. * Unify some GPU_SUPPORT* bits * FPURegCache: The invariant checking is very slow in debug mode. Let's only turn it on when we need it. * More asserts * Use system date format on savestate as well * Buildfix * Help the compiler out a little bit in IndexGenerator::AddStrip. * Some header include cleanup * Add missing asserts after some VK resource creation functions * Don't over-invalidate textures when a framebuffer is created or modified. * Sneak in a fix for a limited memory leak in Vulkan vertex cache * Delete TexCacheEntries that get replaced by a framebuffer * Fix bug in new framebuffer code, reducing unnecessary texture invalidations. * Check whether there may be more than one save file names by mode. * Cache 60 FPS requirement * Fix an issue of major performance drops when using accepted PTP Sockets. * More moves * Also move video filtering override. * Move overrides to the end of GetSamplingParams * Switch to a returned value and rename these functions. * Unify/centralize SetFramebufferSamplingParams. Some include cleanup. * Make the signature of all the SetFramebufferSamplingParams the same * Workarounds for D3D9's very limited mip level control. * TextureCacheGLES: Also share the same sampler calculation for GLES. * TextureCacheDX9: Use the already centralized sampler setup code from D3D11/Vulkan. * Comment fix * Making sure the are no compiler warnings on adhoc code on android * Prevent Client side from forever re-trying to connect to Exited Host on Shin Sangoku Musou Multi Raid 2 * Improve readability of the boolean expression mess in GetSamplingParams * User chain support * Linux: Use MAP_NORESERVE when finding a memory base pointer. See #13187 * TextureCacheCommon::UpdateSamplingParams no longer takes a TexCacheEntry * Always use a linear filter for video, unless forcing NEAREST filtering. * Texfilter: Rewrite some checks in GetSamplingParams to be faster and more understandable. * Remove some outdated debugging code (SetDebugTexture) * Fix libretro OSX build * MemMap: Check for MAP_FAILED in mmap call. * Fix GetCurrentTextureDebug * Try unknown's workaround for clang code gen bug. See #13187. * Further simplify framebuffer matching. * SaveState: Update to latest Snappy v1.1.8. * x64: Fix stack alignment in vertex decoder, just because. * Optimize a couple more single color conversion functions * Optimize the DarkStalkers software rendering path a little more. * Show how many times we evaluate framebuffers per frame in debug statistics. * Re-fix BOF III - accidentally lost the texaddr offset * Mostly fix Katamari by boosting fbs from the same frame * Decouple framebuffers from texcache entries entirely. * Update symbol list of disassembly window when loadexec. * Don't read data more than data size of pgd files. * Remove fbCache_ from TextureCacheCommon.cpp. * Make SetColorUpdated static, reorder some fields * Minor cleanups in CaptureDevice * Fix Failed to Bind already used port issue on Android (and probably linux too). This should fix Dynasty Warrior Strikeforce and Shin Sangoku Musou Multi Raid 2 * Avoid getting Fatal signal 6 (SIGABRT) on linux/android when losing connectivity to the Adhoc Server. * Allows reusing the same port for PtpListen and PtpOpen. This fixes Shin Sangoku Musou Multi Raid 2, and probably other games with similar issue (ie. Dynasty Warrior Strikeforce) * Clients shouldn't try to detects timeout of other clients, because most of the time the client side doesn't have timeout information given, better wait for the host to tells them if a client got disconnected. * Sleep a bit longer, especially when PPSSPP paused. * Prevent spamming the log too much on some games * Fixed sceNetAdhocMatchingGetMembers error return value * Add option for the clear-fb-on-first-use speedhack. See #13295 * Resolve Adhoc Server DNS early and cache it so we don't need to resolve it again later. * Stop waiting for connection on Exit to Menu to prevent causing lags. * Combining PDP and PTP socket's array into a union array. Fixes Hot Shots Tennis that doesn't works well with socketId > 255 * softgpu: Correct cull handling for sprites. * Headless: Setup logman earlier. * GPU: Allow culling in through mode. * Plugins: Schedule plugins before game thread. * Plugins: Oops, typo. * Plugins: Support for loading game-specific plugins. * Module: Split out module start to use externally. * Simulate blocking PtpFlush * Allows blocking socket simulation on multiple threads simultaneously * Making use Adhoc SocketAlert Flags to stop/abort blocking sockets * Fixed return value when using Automatic Wlan Channel. Fixes Ridge Racer 2 and Warriors Orochi 2 * Changing default Wlan Channel to 11 on Automatic to be the same with real PSP * Prevent sceNetGetMallocStat from spamming Info Logs * TexCache: Correct detaching textures. * Net: Fix memory corruption on save old state. * Net: Correct save state from old loaded state. * TexCache: Rename "Invalid" attach to "Inexact". * TexCache: Always apply detach matches if found. * GE Debugger: Include game ID inside dump file. * Debugger: Add formats to breakpoint logging. * Fixed SceNetAdhocctlParameter structure * Added some more info in Debug Log to help debugging * Added another HexData printing with offset and ASCII contents to help dumping some data in the logs * Fixed an issue where the 1st line showing 17 bytes of data instead of 16 bytes like the rest of the lines * Ignore SIGPIPE error on certain system (ie. Linux) * An attempt to implement AdhocSocketAlert * Oops forgot to replace these numbers with const on adhoc socket reindexing PR * Imp sceKernelFindModuleByName * Reindexing PDP and PTP socket using const/var instead of using confusing raw numbers * Fix crash issue due to out of bound when indexing PDP socket * Add draft sceKernelFindModuleByUID (#13380) * Fix Phantasy Star Portable 2 Timeout issue * Fix multiplayer on Valhalla Knights 2 * Fix AdhocMatching P2P Mode. This fix Bleach Heat the Soul 7 * Fix crash in Digimon Adventures. * Minor changes to make sure the output struct/arg have similar value to the one from prx file (based on Kingdom Hearts BBS) * Don't allocate PSP's Memory during DoState * Fix communication issue with Adhoc Server where ping to the Adhoc Server sometimes getting socket error 10053 and disconnected from Adhoc Server * Fix possible stalled thread when PPSSPP closed down * An attempt to reduce the lags/stutters during multiplayer caused by improper blocking behavior. * Increasing the shutdown delay so that there will be at least one "4=sceUtilityNetconfGetStatus()" after "0=sceUtilityNetconfShutdownStart()" instead of directly to "0=sceUtilityNetconfGetStatus()" (just like what happen when using utility.prx file with KHBBS on JPCSP) * An attempt to differentiate adhoc connect, create, and join. * Oops we already have local mac stored in context, no longer need to getLocalMac again * Fix connection issue on games using AdhocMatching due to sometimes events are removed prematurely before being processed. This fix Gran Turismo where some peers could permanently be in "busy data" state. * Fixed possible crash issue due to lingering leftover callback events from previous multiplayer session. * Avoid using hleLog during a Shutdown * An attempt to sort AdhocMatching Member List in order to make a consistent list on all players (based on Host). Also fixed some disconnection issue on other players when a player is leaving the room on Gran Turismo and Patapon 3. * An attempt to make PDP and PTP ID to be unique so they can be polled properly together without getting conflicted ID. This fixes Gran Turismo. * An attempt to fix sceNetAdhocPollSocket to works properly. This fixes one of the multiplayer mode on Bleach Heat the Soul 7 * Making sure the 1st 2-bits on the 1st byte of MAC address' OUI are zero to prevent issue with some games (ie. Gran Turismo) * Default to P2P/Parent's MAC address if the target MAC on sceNetAdhocMatchingSendData is 00:00:00:00:00:00 (need to confirm whether this is correct or an error should be returned instead) * Ignores the 1st byte of MAC address when comparing, since there might be games (ie. Gran Turismo) that tries to tamper/change the 1st byte during multiplayer upon use. * Use >= 0x03080000 instead of 0x0307FFFF * Add a check in sceKernelTerminateThread * Look in the mirrors or not depending on whether the texture's address is in the mirrors (detected as a depth texture). * When going the other way, there can be multiple textures that need updating. * Partially fix Katamari (flicker due to choice of the wrong depth buffer still happening). * Reschedule after resuming thread from suspend. * Oops, crashfix for late change * Add some ONCE-reporting of multiple candidate situations * Forgot the if, oops. * Shrink the "Cardboard VR Off" button. * Test Drive: Allow virtual framebuffer copies. This eliminates the hyper expensive readbacks. * Apply the scoring model when creating/updating framebuffers too. * Switch framebuffer matching to a scoring model. * Extract AttachFramebufferToEntry function * GE dump loading: Try to use the correct GameID so compat.ini flags apply. * Add a check in sceKernelTerminateDeleteThread * Remove wrong assert. Should fix #13354 * cmake: Remove outdated ARMV7 define. * Global: Remove ARM64 define. * GPU: Avoid compile error if ARM64=1 specified. * TexCache: Try to avoid wrong texcache usage. * TexCache: Improve quicktexhash by ~1-4% on NEON. * Only clear when initializating kernelMemory and userMemory. * Virtual framebuffer copies: Make a more informed guess on appropriate pixel format. * Actually clear memory when initializating. * Delete an unused buffer, saving 0.5MB of RAM. * GPU: Remove ReliableHash aliases. * GPU: Hash CLUT using XXH3 with replacements off. * irjit: Switch to XXH3. * GPU: Switch vertex/lookup hashes to XXH3. * GPU: Remove neon xxhash implementation. * Vulkan: Type comparison warning fix. * unittest: Fix build on Android. * Common: Update to latest xxhash. * Net: Reduce PortManager log noise. * Throw in a minor simplification in depal. * Address feedback from #13341. * Fix final subpass dependency for depth * Correctly update image layout to the final one after a render pass. * Log validation errors normally as well as using OutputDebugString. * Improve LogSteps further. Break out PreprocessSteps. * Naming fix, better names for temp fbos * VulkanRenderManager: Improve logging. LogSteps output is much better. * Fix longstanding depth/stencil view issue in Vulkan. Cleans up validation. * Vulkan: Minor fix for depth/stencil pretransitions. Used DEPTH_ATTACHMENT_OPTIMAL by mistake in barrier. * AspectMask fix * Vulkan: Silly typo fix in barrier * Exception: Don't trust sigaltstack(). * SavedataParam: Be careful with const char* to string. Might help #13187 * Update lang submodule * http: Avoid logging errors for would block. * TexCache: Force recreate texture on detach. * Framebuffer manager refactor step 1: Split ApplyFramebuffer into Match and Apply steps. * Framebuffer matching: Don't try to match depth buffers with color if the swizzle bits don't indicate it. * Debugger: Check for no texture before debug bind. * GPU: Properly detect clears. * Quick Vulkan crashfix * Some minor logging improvements that get to tag along the previous commit * More explicit invalidation of any cached state in Thin3D. Fixes #13307 * UI: Use standard text wrapping for chat messages. * UI: Allow text to use native fonts. * UI: Split chat lines using Unicode. * GPU: Fix some case warnings. * Kernel: Avoid two different Heap structs. * Avoid using getaddrinfo during initialization as it could blocked the thread if there is no network * Audiocodec: Fix warning on older clang. * native: Minor header cleanup. * Windows: Show instance counter only with peers. * Net: Use locking consistently for instance counter. * Improve JPEG file detection (mainly for background image use) * Small mistake in sceKernelExitDeleteThread * Add a check in sceKernelExitDeleteThread * GL: Re-enable mipmaps for thin3d textures. * Windows: Make the instance counter go by 1, 2, 3. * Windows: Auto-enable GL validation (debug messages) in debug builds * More work on GL state leaks. Some things really need a redesign. * Net: Simplify local IP lookup. * Net: Cut down on local IP aliasing. * Use ppsspp error name * oop * Fix sceKernelExitThread * Add support for the 8Bitdo SF30/SN30 Pro controllers on SDL. See #13034 * Log the first 100 block transfers instead of just the first one. Should make it easier to spot interesting things without hacking the log code. * Some logging improvements. Show more coordinates for block transfers, etc. * Software renderer clipper: Don't clip on the sides. Fixes #4845 and should fix #7124 for the SW renderer. * Global: Unbreak build. * Buildfix * More Log.h cleanup. * Move MsgHandler into Log.cpp/h * More cleanup of Log.h, move AndroidAssert into MsgHandler.cpp/h. * First step of cleaning up Log.h. Plus a few other bits and bobs. * Fix undesired re-builds after runnning CMake * Buildfixes * Address feedback. * Switch to PPSSPP's assert functions (don't use the system's) * Fix newlines in logging before the manager is initialized. * Buildfix * Remove time_now() - time_now_d() is the replacement. Absolute time values can't be stored reliably in floats. * Android.mk fix * Update .editorconfig to match the encoding of the resource files. * Move timeutil to Common. (Experiment to see how much work it is to move these). * Address feedback * UWP buildfix * Vulkan: Fix tex upscaling 4444 swizzling. * Debugger: Oops, fix comment typos. * Finally delete base/logging.cpp/h. Carefully preserve behaviour on Android. * Fix build of ZimTool/AtlasTool. Had to break the ugly backwards dependency from LogManager to g_Config. * Getting really close to getting rid of base/logging.h now. * Even more base/logging.h removal and fixes * More base/logging.h cleanup * Remove base/logging.h in a whole lot more places. * Remove base/logging from a lot more files in native * Remove base/logging.h from a whole bunch of files in native * Remove base/logging from UI and more * Remove most instances of base/logging.h from Common, Core, GPU, more * Replace base/logging.h in VulkanContext and parts of native * Remove ELOG/ILOG/WLOG from the Android C++ code (mostly) * Recategorize some logging, in preparation for what's to come. * Fix menu navigation from axis in linux * Fix build with clang-cl * Fix SSE detection with clang-cl * Fix Windows/CMake build with Visual Studio * Shows AdHoc and Access Point Connecting... Dialog * Making sure std::min/max are not overridden by windows header's min/max * Moving reused adhoc function out of sceNet function to prevent getting extra SCENET log * An attempt to simulate a fake PSN authentication on Patapon 3 * Renaming sceNp* NIDs functions to their proper function names. * Really no need to call clear() in the constructor for AudioChannel. * Disable the instance counter in libretro builds. * Fix some minor issues found by address-sanitizer on Linux * UninstallExceptionHandler: Zero-initialize some structs. I've seen some weird crashes on the free() on Android. * Minor logging improvements * Global: Buildfix for parsers. * Global: Move string number parse to text/parsers. * Global: Reduce ini_file header complexity. * Global: Make stringutil includes more explicit. * Move Section out of IniFile so it can be forward declared. Unlocked further improvements to build speed. * Can't avoid sstream in ini_file.h, it seems. * Buildfix * Remove sstream from stringutil.h. See #13267 * libretro: Buildfix. * SaveState: Rename ChunkFile files to Serialize. * Global: Remove some unused header code. * SaveState: Split out Do types to reduce headers. * Audio: Avoid exposing fixed size queue in header. * SaveState: Add header to other makefiles. * Global: Remove unnecessary includes. * UI: Fix an override warning. * Audiocodec: Silence a known warning. * Global: Cut down on file/string includes. * HLE: Fix some missing error logging. * SaveState: Split Do() into a separate header. * Address feedback * Minor: Initialize a struct. Decrease logging in sceMt19937. * Remove partial comment * Vulkan: Implement depth texturing through depal. * Some fixes * Vulkan/generic: Initial prep for depth texturing * Optimize value conversion in (unused) depth readback. * These convenience overloads don't work in 32-bit builds, remove them. * Set debug names for more framebuffers and textures * Allow passing in an object name tag when creating framebuffers * Vulkan: Start adding object names for easier validation debugging * (Libretro) Buildfix for Windows * Remove double disable function on frame duplication * Enable pixel depth rounding for Nayuta no Kiseki. See issue #8744. * Logging improvement * Remove some unnecessary reporting. * Fix issue where after a backend change restart, the new instance was considered secondary. * Fix #13251 for D3D11. The remaining issue in #7124 should be fixed. * Expand the viewport to cover the scissor region, if it doesn't. Fixes #4845 (bloom in Dante's Inferno). * Viewport state conversion: Move the pixel scaling to after the overage clipping. * Remove the LARGE_VIEWPORTS separate path. The fewer paths the better, all need to work anyway. * Also correct the allocated size. * Correct the alignment size when allocate memory at a position. * UI sound fix * Be a little more aggressive discarding non matching framebuffers when texturing. Enable create framebuffer from copy, fixing #12345 * Texture from framebuffer: Logging improvements * Clarify, but don't yet remove, a perf hack for ES devices. Remove a unused sync parameter from readbacks. * Improve logging of unknown syscall imports. * Rename FramebufferDX9.cpp/h to FramebufferManagerDX9.cpp/h * Rename FramebufferVulkan.cpp/h to FramebufferManagerVulkan.cpp/h * Rename FramebufferCommon.cpp/h to FramebufferManagerCommon.cpp/h for consistency * Move a line to a better place * Expose SYSPROP_SYSTEMVERSION to Libretro Android core. This fixes crashes with targetSdk 29. * Fix Android Libretro build issues. * Fix texture upscaling and per game setting fix/cleanup * Off by default * Add a setting. Various tweaks to sound triggering. * Add a couple of more sounds. Rename some vars. * Hook up a couple more sounds. Unfortunately clickable back buttons now play both back and confirm sounds... * Hook up the first UI sound, make it play. * Read in WAV files for UI sounds * Initial sound effects * BackgroundAudio: Switch to a heap allocated buffer. * Consolidate BackgroundAudio.cpp into a class * libretro buildfix * SaveState: On section version failure, log out the name of the bad section. * Vulkan debug log: Remove some old exclusions, add a new one (for an old issue) * Minor logging improvements * Fix error in sceUsbMic savestate handling (need to accept old savestates without the section) * Fix crashes issue due to 0 is a valid index to types_, using invalid index like -1 should give a better/clearer stack trace * Save&Restore PSP Thread IDs to prevent using the wrong Thread ID after loading from save state, also making sure DoState have default value * UI: Simplify on/off for hardware tex scaling. * Vulkan: Allow custom texture upscaling shaders. * UI: Add setting for texture upload shader. * Lowering minVer of AfterAdhocMipsCall section. * Rearranged network's After PSPAction creation/registration so that newer one have higher value to prevent network's callbacks triggering the wrong after action after loading from old save state. * Update Vulkan headers to the latest, just to keep up. * Add some comments and const-correctness, and a pointer type fix, to the "semaphore" crypto stuff. * Reorganized Networking UI (#13232) * Init parameters in __UsbMicInit to avoid incorrect initial state when you exit to menu from ingame. * Patapon 3 Fix (#13231) * Imp sceUtilsBufferCopyWithRange and sceUtilsBufferCopyByPollingWithRange (#13206) * minor fix * BuildFix * Also partly implement in sceUsbCam. * Flush audio buffer when a transmission is completed. * Do state. * Use UTF-8 code page to get the device names. * Add basic Microphone support on Windows. * Fix alpha channel handling in xBRZ texture filter shader * Add two Kernel_Library's nids (#13218) * Added a fake thread to process Apctl Request Events into Apctl State Changes * Fix some lint warnings, and a "toast" on graphics init failure (instead of previous crashes) * Android: Reduce asserts during startup. * Some renaming and cleanup in the Android audio code * Android: Can't call AlertDialog.Builder.setOnDismissListener before JELLYBEAN_MR1 * GL: Add some paranoid checks. Remove a useless option. * Forgetting "return true" fooled the optimizer into crashing. Fixes #13215. * oop * Add two SysMemForKernel's nids * Add two ThreadManForKernel 's nids * Remove unnecessary vector from thin3d_gl texture handling. * Remove wrong comment * Don't trust the messy error checking in EmuScreen with figuring out what to do with zip files. * Reduce use of multi-byte char switches.. saw this go wrong when stepping!?! * ExceptionHandler uninstall: Don't crash if no exception handler already installed. * Add some threadman's nids * Added more stub for some unimplemented sceNetApctl* functions * Add two ModuleMgrForKernel's nids * Debugger: Add memory.read_*, memory write_* * Attempt to fix an issue when the 3rd player joined causing problem to other players on Patapon 3 (this may also affects other games that use AdhocMatching) * Added more info to AdhocMatching Logs to get a better insight * UI: Fix consistency in vsync setting for iOS. * Locking before changing peer linked list order, just to be safe. * (Libretro Windows) Buildfix * Added target/destination IP & port of sceNetAdhocPtpConnect in the log to get better insight * Fix some logs text * Fix an issue where a player got disconnected when another player tries to join. This should affects games that use AdhocMatching such as Patapon 3 * Small perf optimization in debug mode (surprisingly expensive to do a vector lookup here). * Libretro: Update minimum windows version to Vista. Committed on behalf of twinaphex * D3D11 - don't forget to unbind secondary texture when we need to unbind. * Just to be safe since SO_MAX_MSG_SIZE may not be available on all platform and forcing the definition to what windows use might be a bad idea. * Making mac2str function easier/cleaner/safer to use for logging purpose * Do UPnP stuff on it's own thread to prevent causing stutters/lags during multiplayer game due to blocking socket behavior on miniUPnP * Provides quick IP fill on Adhoc Server IP address setting to makes player's life easier :) * Need to make sure already connected to Adhoc Server before Creating/Joining a group. (Fix GTA VCS failed to join a group and unable to see any room) * Reconnect to Adhoc Server when disconnected while still having the AdhocCtl Inited (ie. due to timeout or network failure) so players doesn't need to reset the game to reconnect. * Fix issue when loading save state created from previous test version * Correct a crash on a missing kernel object. * Fix timeout comparison * Minor fixes * Fix possible crash issue during Networking Cleanup * Fixed PortManager fallback Cleanup issue when exiting PPSSPP due to early WSACleanup * Added an option to Disable Nagle Algorithm (Enable TCP No Delay) * Fixed UPnP port opened by PPSSPP detection, and Updated PortManager to be compliant to general purpose usage * Added a UPnP option to use original port for external port instead of using the shifted port by port offset, to be compatible with real PSP or other PSP emulators * Further libretro buildfix * Making sure there are no warnings on adhoc code when building on android studio * Fixed GvG Next Plus, Phantasy Star Portable 2, and some minor changes * libretro buildfix? * Attempt to fix compilation error on Linux * Fix Blinking game room issue on NFS Most Wanted, this will also fix lobby issue on Ridge Racer 2, Naruto Kizuna Drive, etc. * Backport Mac/iOS buildfix from a later commit * Use the alloc size from real PSP for FONT_OPEN_INTERNAL_STINGY mode. the * Added UI to change WLAN Channel. * An attempt to fix socket's behavior inconsistencies across platforms. * Implement ANR2ME's solution for miniupnpcstring.h * Oops * Create an Android.mk for miniupnp * Windows: Run the upnp string gen script regardless of architecture, and in UWP. * Update the gradle version again. * Add PortManager.cpp to Android.mk * Switch to my miniupnpc fork with a UWP fix * UWP: Unify linker options * Set up Windows UWP project for miniupnpc. * MiniUPNPC: Windows: Try to fix build on VS 2017, add more platforms. * Fix UPnP error detection * Added UPnP Support * Windows: Add command to load up a new identical instance of PPSSPP. * Temporary buildfix * Warning fixes * Backport a macOS buildfix from later * Fix Local IP detection on non-Windows system * Making sure Adhoc codes doesn't have compilation warnings * Enabling KeepAlive on sockets * Increasing the extra delays on Adhoc's callbacks just to be on the safe side, also decreasing the default network's timeout to be noticed sooner * making sure there are no alignment warnings related to member of packed struct on android * Improved multiplayer stability regardless of I/O Timing method * Fix i18n type * Improved multiplayer compatibility on some games (ie. GTA VCS, Naruto Ultimate Ninja Heroes 3, DBZ Shin Budokai 2, Power Stone Collection, .hack//Link, etc) * Another buildfix * Buildfix * Separate each AdhocMatching callback's buffer, since callback aren't immediately executed thus using shared memory address may corrupt previous data * Making sure adhoc callbacks runs on AdhocThread * Silence secondary instances. * PSP kernel: Improve logging when accessing bad kernel object handles. * Make the instance counter global and initialized at startup. * Remove some _XBOX stuff * Apply a few lines from "Added UPnP support", removing extra WSA calls. * Make PPSSPP_ID persistent every reset/changing game thus have persistent localhost IP * Excluding Android from multiple-instance feature because i'm too lazy to learn ashmem :D * Oops forgot to change this also for multiple-instance to work properly * Support multiple instance of localhost Multiplayer on 1 PC * Prevent reporting a bad memory access just because Tekken creates a mutex with a null name. * sceMpegAvcCsc: added range validity tests. * Buildfix * Third part of getting rid of PanicAlert * Step 2 of removing PanicAlert * Step 1 of removing PanicAlert * Remove category from _assert_msg_ functions. We don't filter these by category anyway. * Fix a bug in crashhandler where we could end up disassembling far too much. * EditorConfig: Separate indent style for libretro. * Display: Allow unthrottle to skip only flipping. * Support full VSync control in SDL OpenGL. * Improve some logging, and print the line number from PanicAlerts. * Update lang submodule * Eliminate an unnecessary global g_Vulkan. * Windows/Vulkan: Don't destroy the surface during resize, no need. * More buildfixes * Buildfix * SDL: Avoid destroying the surface on resize. * Cleanup log output on swapchain/surface recreation. * Buildfix. Checking _POSIX_VERSION is not recommended anyway. * Crash: Show disassembly of the instruction causing the crash, and the symbol name. * Split the fault handling from MemMap.cpp to MemFault.cpp. * Update README following unknows markup way * Savedata: Correct AM/PM and time/date settings. * Travis: Don't update python3. * Fix * (Libretro) Buildfix - add missing file x64Analyzer.cpp * Windows ARM fix, cleanup * Refactor MachineContext.h to reduce ifdefs elsewhere. * There's no sigcontext on 64-bit iOS either, apparently. * Yet another iOS buildfix attempt * Another iOS buildfix attempt * Various platform buildfixes * Make fastmem memory exceptions report the exceptions to Core correctly. * iOS buildfix attempt * HandleFault: Add missing nullcheck * Try USE_SIGACTION_ON_APPLE on IOS. * MachineContext, Linux/Android: Try to support android-x86 (32-bit) * Add x64Analyzer to Android.mk. Some minor cleanup * More info on crash screen * Exceptions: A bit more consistency in callback registeration. * Mac/Linux buildfixes * Draw a minimal crash dump on the emu screen after a crash (if bIgnoreBadMemAccess is false). * ARM/ARM64 instruction analysis, hook up to handler * Skip bad reads/writes by the guest executable. * Simple exception handler so we can ignore accesses that happen within the PSP memory space. * Switch to a fence instead for readbacks. Some sources suggest this is better than idling a queue or device. * Readback: Downgrade from vkWaitDeviceIdle to vkWaitQueueIdle. Probably effectively pretty much the same. * Osk: Draw shadows on all the letters. * MsgDialog: Show better error messages. * MsgDialog: Allow text to be wider. * MsgDialog: Add scrollbar when message is long. * PPGe: Draw nicer drop shadows. * PPGe: Handle text shadows more consistently. * Vulkan: Buildfix. * Vulkan: Make sure textures/samplers are unbound at the end of PresentationCommon::CopyToOutput. * Revert "Disable a new compiler warning that doesn't do us much good" * (Libretro) Add MSVC 2019 target * Change libretro.cpp to confirm to libretro code formatting conventions * Disable a new compiler warning that doesn't do us much good * (Libretro) Add optimal input read codepath - bitmasks * Remove irrelevant comment * Move the Vulkan swapchain out-of-date checking to the vkQueuePresentKHR call. * GLES: Invalidate framebuffers bound DONT_CARE. * Kernel: Check thread switch PC in release. * jit: Add some basic checks in armjit/arm64jit. * x86jit: Trigger exec exceptions. * irjit: Add jump crash checks. * UI: Allow non-ascii on crash dump screen. * Core: Track exception on bad jumps. * Core: Reset exception info on resume/reset. * Kernel: Add a bit more thread info on crash. * Add custom GLEW - interfaces with libretro get_proc_address - we need this for compatibility with DRM/KMS and Wayland contexts - otherwise we're limited to GLX context * Travis: Use the default macOS image. * Update v1.10.3 readme link * Expose more information on the crash screen (current kernel thread) * Address some feedback * Draw a minimal crash dump on the emu screen after a caught crash. * Formalize "core excpetions" as a concept * Some code reformatting/renaming * Centralize handling of memory exceptions a bit * Split CORE_ERROR into CORE_BOOT_ERROR and CORE_RUNTIME_ERROR * Update version for 1.10.3 * Update lang submodule * Update README for 1.10.3 * Travis: Disable OSX/iOS until we can fix them * Touch control layout screen: Make the expanded click zone around the controls symmetrical. * Kernel: Add a little paranoia check on chained mipscalls. * Fix decimal part * Touch control layout: Make dragging a lot less "jumpy" * TouchControlLayoutScreen: Reorder functions in the file to make more sense. * Refactor TouchControlLayoutScreen - break out the actual editor into a separate view. * (Libretro) Makefile build fixes * (Libretro) Buildfixes * Change wording of camera notch ignore setting * Update version for 1.10.2 * Update README.md for 1.10.2 * Add some paranoid checks in AfterMatchingMipsCall::run(). * Add automated script for link on readme * Android: Add option to ignore camera notches when sizing the display. * Remove unnecessary logging of preview formats * Link PR and issues in README * Screen: Unlock the inputLock_ mutex slightly earlier in processFinishDialog * Revert "Remove the I/O on Thread option - treat it as always on." * http: Check cancel flag more often. * Sneak in some paranoia in InstallZipScreen.cpp (another one from #13057) * Check that we actually got a preview size. * CameraHelper: Do a better job of choosing an appropriate preview size. * Add a try/catch to Android camera device listing. Might help #13091 and the issue seen in #13057. * Change default rendering resolution on Linux to auto * Fix radio button in "Window size" menu * Update submodule URL * Fix reliability of the CMake generated version * README.md update * Update version to 1.10.1 * Update README, lang submodule for 1.10.1 * SaveState: Prevent edge case on old save state. * SaveState: Make sure to default init net data. * Add some excessive null checks to GameScreen::render(), might fix the crash seen in #13057 * Disable the "Duplicate frames" feature if frameskip != 0. Works around / Fixes #13068 * Some paranoid checks in PPGeDraw. Might help the crash seen in #13047. * Downloader: Join threads in CancelAll * D3D9: Fix a sign mistake generating the projection matrix. Fixes #13063 * Different handling of Download lifetimes. Might help an issue from #13057 (1.10 crash mysteries) * cmake: don't install bundled glslang * Qt: unbreak build without SDL * TextureDecoder: Fix misuse of NEON on all armv7 * Vulkan: Correct secondary texture binding in Draw. * Draw: Allow 2 textures bound in Vulkan. * GPU: Add sampler1 for postshader orig source. * Draw: Fix textures and samplers at an offset. * Draw: Use uniform locs for GLES, add samplers. * GPU: Alternate FBOs for chained postshaders. * GPU: Avoid immediate postshader FBO recreate. * Android: Request stable layout and update on focus. * GLES: Use debug groups for render steps. * GLES: Avoid duplicate state resets. * GLES: Delay buffer use in vertex cache. * GLES: Fix disabled vertex cache code. * GPU: Try a bit harder to determine safe size. * Vulkan: Match safe size behavior on all backends. * Io: Fix LBN timing for virtual discs. * Io: Cleanup access bits for files. * Headless: Handle umd mapping with block devices. * Io: Open sce_lbn references and whole ISO faster. * Io: Account for OpenAsync timing. * Io: Fail without fd on bad device in OpenAsync. * Io: Improve non-async open timing. * Io: Track whether the game is on a UMD or storage. * Io: Simulate VFAT bug only when simulating FAT32. * Io: Improve timing of sceIoOpen(). * Io: Cleanup sceIoOpen errors and logging. * Windows: Make init crash warnings more generic.- Add Excludearch for PowerPC- Update to version 1.10~git20200627: * Update version number to 1.10. This required changing the Android version code pattern, but should be ok. * Update lang submodule again * Archive changelog for older versions * Add https://github.com/hrydgard/ppsspp/issues/11974 * Update lang submodule * Partly clean up SDL resize code, should help #11974 * Enable Vulkan validation in SDL debug builds * Update Lang * Minor style * Update readme for v1.10 * Logging improvements and warning fixes. * Finish the Linux part of this change * Vulkan: Recreate the swapchain if we get too many "out of date" frames. * Buildfixes * Move the responsibility to register the debugutils callback to the VulkanContext. We only use one anyway. * Simplify the validation interface code, bugfixes * Vulkan: Remove support for the old VK_EXT_debug_report extension * Update lang and pspautotests submodules * oop * oop * Fix by @unknownbrackets * oop * Add a sceOpenPSID_driver nid * Add sysclib_strncmp,sysclib_memmove * Reuse some already translated strings * ColorConv: Fix typo introduced in #12882, fixing #13014 * More README updates * More README.md updates * Don't forget rpi4 * Incorporate unknownbrackets' suggestions for the README.md update. * iota97's suggested README.md items. * Android: Fix odd screen centering with insets. * Update lang submodule. * Update README.md for 1.10.0. * Real support Code Geass: Lost Colors chinese patched version * Some work in sceKernelPartitionTotalFreeMemSize,sceKernelPartitionMaxFreeMemSize * Add Kurok (homebrew with a distinctive GameID to compat.ini ForceMax60FPS. Fixes #13025 * Add some ThreadManForKernel nids * Change to @unknownbrackets logic * oop * Add sysclib_strstr * Link to buildbot builds of PPSSPP * Add sceKernelStdout * Kill the log as @hrydgard suggest * Reduce sysclib_memcpy log level * Real support "Hatsune Miku Project Diva Extend" chinese version * Fix logging as @unknownbrackets suggest * Wrap sceKernelUnloadModule in ModuleMgrForKernel * Wrap some SysMemForKernel * Forget HLE_KERNEL_SYSCALL flag * Wrap sceKernelExitVSHKernel * Warp some ThreadManForKernel * Fix some bugs and style for #12994 * rudimentary serch function added for the memory dialog * Code style fix * Revert "Repeat of the experimental commit, was too fast for the build bot." * Repeat of the experimental commit, was too fast for the build bot. * Revert "Experimental commit: Bump up scratchpad size so that Android will act like Windows in #10196 (Spider-Man 3)" * Experimental commit: Bump up scratchpad size so that Android will act like Windows in #10196 (Spider-Man 3) * VFPU interpreter: Improve some error messages, after seeing a bad one in #10196. * We need to check for renderpass change and dirty here too. What a mess.. * Annotate calls to RebindFramebuffer with their cause. * Vulkan DrawEngine: Move the renderstep changed check until after the last place where it can change. * Disable range culling for MGS:PW and MGS:PO. See #12348 * Typo fix. Will hopefully help #12992. * Have DisplayLayoutScreen implemented insets manually. Gave up refactoring it. * Handle insets correctly for the in-game final screen blit. * Minor refactor in PresentationCommon (combine loose coordinates to a struct) * VulkanQueueRunner: Fix some uninitialized struct members (not sure if it has any effect) * oop * Remove log as @unknownbrackets suggest * add raspberry pi 64 bit build files * Experimentally enable pixel-depth-rounding for Tales of Phantasia, tries to work around an Exynos driver bug. * Time to update gradle again (Android Studio 4.0 was released) * Fix minor bug in StereoResampler debug display * UWP: Fix safe insets. * Vulkan: Ensure depth/stencil load match on Mali. * Vulkan: Trivially kill more empty steps. * Travis: Build UWP also. * UWP: Link ChatScreen. * UWP: Stub new inputbox system func. * UWP: Buildfix for controller vibration. * UWP: Add libpng17 include path. * UWP: Include TextDrawer in main MSVC project. * UWP: Fix TextDrawer with latest changes. * Thread: Default to kernel threads from kernel. * GPU: Don't allow step id to decrease at a sync. * Vulkan: Correct viewport flag reset on rebind. * GE Debugger: Fix alignment in GE dumps. * Do a similar thing for D3D (let the backend handle the dirtying). * OpenGL/Vulkan: Rework the contract around dynamic state. Removes some ugly dirtying from the GL render manager. * UI: Lock around removal from dispatch queue. * Remove all those "GLES reset the blend state" comments. * GLRenderManager: Removes some redundant dirtying. Preserves blend state (color mask) across clears. * Vulkan: After binding a new framebuffer, we always need to dirty the viewport/scissor state. * DarkStalkers: Handle the "normal" screen stretch too, not just "wide", to avoid a surprising performance drop. * Exclude a couple more commands from re-execution in ReapplyGfxState. See * GPU: Don't reapply LoadClut each frame. * PPGe: Left align messages in dialogs. * Windows: Workaround for custom build step error. * Windows: Avoid calling git describe 3 times. * SDL: Try to continue if EGL init fails. * Windows: Move git-version update to build event. * Global: Add more other platforms to MSVC project. * Support chain * Memory reading CWCheat * Add postprocessing CWCHEAT- Add QT5Multimedia as build requirement. Fix building of the Qt frontend. - Add %define _lto_cflags %{nil} to spec file. Fix building for Tumbleweed.- Update to version 1.9.3~git20200523: * Headless: Fix flash0/font path. * Debugger: Avoid symbol map if deleted. * Debugger: Don't break during startup. * Android: Buildfix. * GPU: Never set safe size larger than the buffer.- Update to version 1.9.3~git20200522: * [Camera/V4L] Add support for jpeg and multiple buffers * Windows: Ask for a specific device on failure. * Windows: Avoid WASAPI init for a bad format. * Windows: Avoid crash for a mono output format. * Ge: Check stack depth based on args struct size. * GPU: Ignore viewport for scissor of 481. * Vulkan: Label render passes in RenderDoc/etc. * Vulkan: Cleanup some duplicate code. * Correct an issue where reformat didn't work if no renderpass was active due to the use of clear. * Remove a redundant framebuffer bind in CopyDisplayToOutput * Add a name tag for all render steps (GL/Vulkan). Helps with debugging and should be cheap enough (a single pointer per "step"). * Move the check from #12908 into the firmware version check. * Vulkan: Avoid stencilAction != depthAction. * Vulkan: Check driver version for Adreno 5xx bug. * Vulkan: Move Harvest Moon fix to Draw::Bugs. * Vulkan: Stencil initialization: Use the adreno path for Mali as well. * Fix a case of pointer truncation in Vulkan on 32-bit. Fixes #12932 * Vulkan crashfix (pNext was uninitialized)- Update to version 1.9.3~git20200519: * Vulkan: Fix leak and remove extra allocator. * Vulkan: Create FB compatible pipelines in Draw. * Vulkan: Expand logging of render steps a bit. * D3D9: Avoid clearing color on stencil upload. * GPU: Avoid unnecessary clear on stencil upload. * Revert "Experimental commit that effectively reverts the Vulkan part of #12882." * Experimental commit that effectively reverts the Vulkan part of #12882. * Fix the Windows 32-bit build. * Track scissors like we track viewports (bugfix?). * Show "debug build" on the splash screen, in debug builds. * Vulkan: Switch the framebuffer-rebind-to-clear on reformat to, well, a normal clear instead. * Vulkan: Verify scissor as well. * Vulkan: Add asserts to catch no viewport render. * UI: Take reporting screenshot at frame end. * Vulkan validation: Switch to the new Khronos validation layer shipping with recent SDKs. * Vulkan: Stop merge at clear/touched read only. * Vulkan: Make merge pass a bit easier to read. * GLES: Fix invalidation of backbuffer. * Vulkan: Generalize dependency tracking. * GLES: Add dependency tracking for render passes. * GPU: Centralize framebuffer download. * Buildfix * Remove the Audio Resampling setting (now always on). Having it off is not useful because it'll never sync up perfectly over time. * Revert the loop check in StereoResampler, new one could accidentally keep looping when underrun severely (like if emulation stopped). * Add more debug info in scePsmfPlayerStart * Make the IsValidPBP DISC_ID check a bit more lenient. Fixes an issue where some homebrew would no longer show in the list. * Fix homebrew store button to work even after changing grid layouts (it lost its click handler) * Fix a crash bug in homebrew store * Remove our custom atomics code entirely. * Convert atomic code in core and ConsoleListener to use C++ atomics * Reduce the SDL audio buffer size, 2048 is a bit excessive. Port the changes to the Qt SDL code. * StereoResampler: Make sure the target buffer size is large enough, taking SYSPROP_AUDIO_FRAMES_PER_BUFFER into account. * Rename things to make more sense. * StereoResampler: Use C++ atomics * Add some vaguely interesting stats * SDL: If we get an audio device with a different freq than 44100, that's actually OK. * arm64jit: Track writable and non-writable pointers. * Mp4: Cleanup some parameters. * cmake: Fix rpi4 build on newer gcc. * GPU: Fix an overflow loading old save states. * GLES: Specify buffer type just to be safe. * arm64jit: Minor cleanup. * GPU: Allow each shader in chain to have settings. * UI: Translate shader setting names. * GPU: Keep last output size in chained postshaders. * GPU: Prevent infinite loops in postshader chains. * GPU: Force nearest only for the upscaling filter. * GPU: Move calculating render res to presentation. * GPU: Allow postshaders to have parents. * GPU: Update postshader uniforms for each. * GPU: Process all postshader pipelines. * GPU: Cleanup a comment, we use shorts now. * GPU: Move things around to be per postshader. * Simplify how to get the debug stats from StereoResampler * Fix comment * Qt fix * Only show frames per buffer if the number is available through sysinfo * Oops, need to pass an (invalid) slot number in headless too. * SDL: Show the actually used sample rate in system info. * oop * Fix "Improved compatibility of sceGeListEnQueue: verify that stackDepth < 256" * Display the savestate slot number when saving and loading state through shortcuts. * Very minor optimization in PresentationCommon (don't upload the indices every frame). * Fix per game setting and pack setting in vec4 * Use map for settings * Post shader setting uniform * Thin3D: use 16-bit indices. Fixes #12898. * GPU: Oops, don't skip copy if stride different. * Fix DarkStalkers after the just-merged refactoring. * Draw: Small optimization to callback. * Libretro: Add libpng17 to include flags. * GPU: Take A off RGB565 conversion funcs. * GPU: Use texclamp for postshader/present draw. * GPU: Centralize DestroyAllFBOs(). * GPU: Cleanup presentation flipping a bit. * D3D11: Allow pixel shader uniforms in Draw. * GPU: Cleanup skip buffer texture draws. * GPU: Simplify direct render when skipping buffers. * softgpu: Fix postshader on 5551. * D3D9: Attempt PS/VS 3.0 if it doesn't work with 2. * GPU: Use postshader for direct VRAM draws again. * GPU: Use a texture directly for MakePixelTexture. * softgpu: Avoid RB swizzle when using a postshader. * Vulkan: Allow frag shader UBO reads. * Vulkan: Correct missing offsets in Draw. * Vulkan: Correct postshader sampler binding. * Draw: Actually use the index offset parameter. * softgpu: Enable postshader support. * GLES: Fix reuse of vertex data buffer. * GPU: Cleanup leftover postshader stuff. * UI: Allow postshaders on D3D9. * GPU: Move post shader handling to new class. * D3D9: Enable postprocessing of post shaders. * Draw: Enable backwards compat on D3D11 shaders. * Draw: Add more uniform types. * Draw: Allow specifying a tag on shaders. * GPU: Move a bit more to new display approach. * softgpu: Allow display rotation. * softgpu: Allow configuring Google Cardboard. * GPU: Move cardboard/etc. to PresentationCommon. * Vulkan: Fix Draw usage of framebuffers. * GPU: Split FramebufferCommon into two classes. * softgpu: Fix texture overlap. * GPU: Handle buffer overhead in postshader uniforms. * Android: Oops, fix start with space in filename. * Global: Add some defs for MSVC highlighting. * Temporarily disable YuGiOh save fix (experiment in issue #7914) * Improved compatibility of sceGeListEnQueue: verify that stackDepth < 256 * D3D11: Better set current texture to null first, otherwise we can run into another issue. * Fix a comment * D3D11: Fix a bind ordering issue in depal (only a problem with debug layer enabled) * ColorConv: Fix a few conversions that missed the lower bits of each component. * Vulkan: Don't merge render passes where the second one begins with a clear. * Android: Avoid multiple resizes in a row. * UI: Add more options to touch test screen. * UI: Return to game settings after restart. * Windows: Fix GL reinit on backend switch. * Android: Move a bit more size handling. * Android: Reassert sustained perf when going ingame. * Android: Refactor size maintenance to own class. * GPU: Minor lighting cleanup in software transform. * GPU: Split up software transform into phases. * Windows: Add safety checks to WASAPI code. * GLES: Add safety handling for offset depal. * GPU: Calc framebuf offset with right params. * GPU: Avoid a texture offset change in sw transform. * GLES: Simplify the framebuf offset detection. * Vulkan: Framebuffer manager: Use an allocator for "MakePixelTexture" images. * compat.ini: Turn on ForceUMDDelay for Innocent Life. See issue #2830. * iOS/macOS : set bundle version * iOS : File association * compat.ini: Set ForceMax60FPS for Super Monkey Ball Adventures. See #7674. * Make PPSSPP visible in OUYA launcher * Fix: touchscreen evens on upcomming SDL2 versions which includes the same functionality but inside the library * And another mumbo jumbo game (#12857) * Enable ForceMax60FPS for games published by MumboJumbo. See issue #12857 * Vulkan: Discard negative width/height framebuffer blits. Will likely help #12531. * Address additional feedback from Unknown, finally * Assorted fixes (build and crash) * Use PPSSPP's kernel interface to retrieve Heap objects * Address Unknown's feedback * Change to info log * Attempt to make save status * Fix crash in sceKernelDeleteHeap * Attempt to build fix non-windows * remove comment * Try to Implement SysMemForKernel * Move SysMemForKernel to sceKernelMemory * oop * Wrap some SysMemForKernel's nids * Update dialog on Android 10 * iOS Share PPSSPP * Travis: Handle new package versions better. * PPGe: Remove half-pixel offset. * http: Fix thread join on enable/disable. * "Unify" the credits screen. Fixes #12844. * Android: Don't cache env in text drawer. * Update gradle again * GLES: Disable range culling on old Tegras, they seem to misbehave (see issue #12838). * update VS projects * D3D11: Always use accurate depth. * Windows: Send resize when adjusting render mode. * Add "Switch UMD" menu point to Linux version * Improve code readability * Implement PPSSPP specific cheats: * Update more Linux version menu points to correspond to Windows ones * Remove leftovers * Add "Record" menu group to Linux version * TextureReplacer: Generate a default value in the ini files for ignoreMipmap. * Add "Enable chat" menu point to Linux version * Auto rotate over a square * Fixes (stage 3) * Update TextureReplacer.h * Update TextureReplacer.cpp * Fixes (stage 2) * #8714 Unified resolution scaling for all platforms. * Add option to prevent Mipmaps from being dumped * Fixes (stage 1) * Turn on [ForceMax60FPS] for "Fat Princess: Fistful of Cake". Benefits loading times etc. * Update "File" menu to match Windows version * Update "Emulation" menu to match Windows version * Update "Debug" menu to match Windows version * Update "Options" menu to match Windows version * Update "Help" menu to match Windows version * UI: Respect insets with on-device debug stats. * GE Debugger: Prevent crash when stopping execution. * GLES: Update shader uniforms after apply state. * Cheats: Fix use in homebrew on start. * Cheats: Cleanup global usage. * UI: Cleanup old specialized checkbox. * UI: Monitor cheat file changes on cheat editor. * UI: Update cheat file more safely. * UI: Use standard back and checkbox in cheats UI. * UI: Prevent changing memstick path in game. * u8_clamp clean up * Squash commit- Update to version 1.9.3~git20200409: * Travis: Cache macOS python build as a bottle. * Audio: Remove latency setting. * GLES: Re-enable non-float depal shader path. * Update gradle again * x86jit: Force INF * 0 to +NAN.- Update to version 1.9.3~git20200406: * Windows: Prevent applying -1 as inset space. * Windows: Ensure we resize after hw transform swap. * Headless: Fix compile on Android. * UI: Small cleanup in touch control layout editor. * UI: General cleanup in layout editor. * UI: Prevent drag drift in layout editor. * UI: Make display layout editor support 1x PSP. * Fix SDK requirements of Atlas and Zim tools. * Net: Correct pool allocation. * GPU: Track HW tess at start of frame too. * GPU: Reset hw transform once per frame. * GPU: Move hw transform decision to draw engine. * GPU: Update uniforms w/ consistent render mode too. * GPU: Use consistent buffered rendering state. * Setting the width and height to 0 made the frameskip unusable on lakka/libretro with a XU4 with a MALI GPU T628. The result was that bad flickering happened when in frameskip mode. Once it reached 60fps, no flickering, below that flickering. This change fixes the flickering and calls video_cb with the correct height and width. * Travis: build libretro android- Update to version 1.9.3~git20200403: * libretro: Fix Android builds * Mouse 4 as back in menu navigation * android: include path fix- Update to version 1.9.3~git20200402: * Android: Change the display length for "toast" message to Toast.LENGTH_LONG * Touch layout clean up * UI: Properly clamp control positioning in edit. * [iOS] Notch support * Additional rendering fixes for notch * Fix landscape/reverse landscape cutout padding issue, see #12779 * Update the lang submodule * Support drawing around notches on Android displays. Fixes #12261 * Target Android SDK 29. * Vulkan: Pick shaders after calling ConvertStateToVulkanKey because it may end up disabling shader blending * Fix duplicate translation ID * PPGe: Slightly reduce the font size, might help #12764 * Windows: Show a message when failing over backend. * Back to ERROR * Remove outdated code that reset the logenabled flags on non-Windows. Fixes #12291 * Minor log improvement in BlockDevices.cpp * Rember cheat scroll position * HLE: Oops, make sure we don't deadbeef mips calls. * macOS: Fix build * SaveState: Correct compat load with OSK changes. * PPGe: Fix dialog button positioning. * UI: Prevent stretching game icons on detail. * Do not apply sensibility of deadzone skip * Fix translation things * Enable chat input for SDL * Skip deadzone option on tilt * HLE: Fix some misleading logging. * Windows: Fix strange build error. * UI: Translate HAT and left analog the same way. * Use 2 different button for CW and CCW * Core: Add argmask for threadhacks to prevent crash. * GPU: Treat negative light exp same as 0. * Android: Reassert immersive after input dialog. * cmake: Improve building with the system libpng. * Osk: Correct UCS2 conversion. * Auto rotating analog * Camera: Fix missing return warning. * Remove some more uint16_t * More correctly handle UCS2 encoding. * Address feedback * Support a few more wstring functions on non-windows platforms, due to the armips assembler. * Text input: Clearly use 16-bit chars like the PSP, don't rely on wchar_t. * PPGe: Avoid crash with missing metadata. * HLE: Make calling mips funcs simpler. * GPU: Assume a scissor of 481x273 is a mistake. * Io: Apply VFAT hack only to dirs <= 8 chars long. * UI: Allow startup without UI assets. * UI: Avoid crash when atlas metadata is missing. * UI: Avoid cached booleans for simple globals. * UI: Disable render dup frames where it can't work. * Font: Prevent crash on game exit. * Android: Fix dismiss of OSK dialog. * Reporting: Log SceIoChstat calls. * GPU: Avoid divide by zero in garbage displaylist. * GPU: Fix memory corruption with bufw > w. * Add more assets directory paths. * Correcting return value of some mipscalls without after action. * Qt: Correct DPI accounting in font rendering. * cmake: Disable discord-rpc for libretro builds. * Fix the logic around postEffectRequiresFlip so duplicateFrames doesn't require a post shader. * Vpl: Correct allocation order when splitting block. * Core: Use full memory for ELF files. * Reset the useAllocCallbacks on font init. * Buildfix. * Display: Update latched fbaddr on immediate update. * Fix states. * No need to manually decide pending or not for mipscalls. * Net: Stub network sign-in dialog. * Net: Support NETCONF_CONNECT_APNET_LAST request. * NetAdhoc: Match init/term behavior better. * Net: Better simulate sceWlanGetEtherAddr timing. * Net: Handle memory allocation better. * Add option to improve frame pacing through duplicate frames if framerate is below 60hz. * UI: Rebind the backbuffer when drawing UI. * Switch: Add EGL interface. * Kernel: Rename conflicting kernel object names. * Font:alloc/free memory for font file and char bitmap. * Vulkan: Blacklist on Switch. * Core: Add some libnx calls for Switch. * Core: Use a lock for i18n categories.- Update to version 1.9.3~git20200311: * PPGe: Clear unused parts of text image buffers. * PPGe: Correct double spacing in some save text. * libretro makefile fix * Camera: Simplify an expression. * Core: Quiet some warnings. * Android: Delay TextDrawer init in PPGe. * PPGe: Show ellipsis for overly long lines. * PPGe: Use TextDrawer for save UI if available. * PPGe: Make some of the API internal only. * PPGe: Support 8-bit text bitmaps from TextDrawer. * PPGe: Allow overriding text drawer DPI scale. * Qt: Cleanup differences in text hashing. * UI: Refactor TextDrawer to provide bitmaps too. * UI: Minor cleanups to chat UI code. * Fix capitalization of mfreadwrite.h include- Update to version 1.9.3~git20200310: * Windows: Warn if Windows Firewall blocks PPSSPP. * http: Show more detailed status when scanning. * http: Correct new thread executor. * Android: Enable native keyboard for OSK. * softgpu: Correct clear/solid rect BR corner. * Android: Fix upside-down joystick navigation (due to an old sin). * New heuristic for getting rid of unnecessary "antialias-lines". * THe proposed Hive Sweeper fix in #11025 looks right, let's just commit it. * Possible fix for libretro build issue. (blind commit, untested) * Osk: Prevent adding highlighted char past limit. * Core: Avoid shadowing a define. * Io: Correct some error handling for OpenFile(). * Android: Avoid translation conflict in translation. * UI: Move Camera settings lower in Graphics. * Android: Process input prompts more clearly. * UI: Make System_InputBox API asynchronous. * Vulkan: Track down another one of those minor resource leaks. * Module: Reinit gpu only on runtime module load. * Android: Reload game config on storage permission. * Android: Ensure we forget the shortcut on next run. * Update lang submodule * UI: Temporary solution to the layout issue: Remove the gear button from the recent screen. * Vulkan: Ensure scaling happens in cached RAM. * Headless: Prevent crash running graphics tests. * Vulkan: Fix minor vulkan resource leak if inflight frames isn't max. * UI: Simple joystick navigation. Fixes #10996. * Comment fix * Also move out the global stuff from view.cpp/h to root.cpp/h * UI: Break out the hierarchy functions into ui/root.cpp/h * Minor cleanups * UI: Ignore invalid PBPs in game browser. * Tweaked chatbox a little bit * Fix chat color formatting * Fix building errors * Update ab.cmd * group chat options and set enabled ptr * Bug fix * Quick Chat * Add virtual key for opening chat * Rebased and fix the update scroll * build fix * chat screen & chat button position and hide ui on show chat * remove pointer and using update() should fix random crash (thanks Uknown) * Add translation of "You're in Offline Mode" * Build fix for Linux QT * Add support OSK for windows * Android chat empty after : fix * pointer and scroll fix * cmake buildfix * Windows CTRL + C Hotkey * Add New Chat Counter * Android Chat Support * Oops it still random crashed destructor do the fix well * pointer fix random crash & better substring logic * Add translation * Enable chat box * PPSSPP early chat feature rebranched- Update to version 1.9.3~git20200305: * Let's wait 5 frames * Fix wheel up/down and additional mouse button * Android: Fix glslang include path. * Force Polar's Puzzles to use accurate UMD timing. Should help #12677 * Add the glslang include path in another place * http: Avoid detach() in webserver code. * Core: Bring over some file related Switch changes. * Another attempt * Fix atlas tool build on linux * Also try to fix the legacy Android build. * CMake buildfix * Update the glslang submodule, fix the build afterwards. * Better smoothing and added missing break on MOUSE_WHEEL * Fix excessive scroll * Warning fix. * Attempt to replace 0 frame width with valid frame width.(sceMpegAvcCsc) * UI fix * GPU: Restart when changing inflight frames setting. * Fix weight * Move clear game list to new menu * Update lang submodule * GPU: Use old frame when presenting a skip. * Address some feedback, thanks unknown * Fix toggle * GPU: Allow choosing number of inflight frames. * Vulkan: Allow alt speed above 60 with vsync. * Rebase on master * GPU: Add setting to control inflight frame usage. * Warning fixes * Vulkan: Support devices that don't properly support 16-bit texture (like MoltenVK). * Fix bug in atlas gen. * Switch all images to dynamic lookup in the atlas by string ID. * Get rid of atlas tables. * Update atlas building scripts * Modify atlas generator to output binary metadata * D3D9: Allow vsync change at runtime. * D3D11: Respect vsync setting. * Vulkan: Present using FIFO for vsync. * GPU: Centralize vsync interval logic. * UI: Respect resize flag during graphics init. * Debugger: Stop remote server in full shutdown. * Remove support for "lowmem" UI atlas. Had to regenerate unfortunately. * And 2017 again... * Delete unused support for ETC1 texture compression * And fix it on 2019... * Recreate the VS projects in 2017 * Code cleanup * More VS2017 compat * Reformat the atlastool/zimtool source, fix warnings. * Atlastool/zimtool: Try not to require VS 2019. * Atlastool/zimtool: Make it easy to build these on Windows (prebuilt submodule) * Log shader contents to VERBOSE instead of DEBUG. * Update gradle again * ScanForFunctions: Drastically speed up by only trying to insert the newly found functions into the symbol map. * Rename func. * Check whether the audio is actually played in psmf player * Rename rapid fire touch control * Add toggle flag to combo button * Fixes * Switch mode only if needed * SDL analog mouse input- Update to version 1.9.3~git20200226: * Better align and spacing of UI element * Better UI for game version in list view * Toggle mute button * Go for Abbanon approach * Scale font down a bit * Improve stability on non-jailbroken devices * Add a option for game ID+version as well * Show region on game selection screen * Kernel: Delay better in sceKernelReferThreadStatus. * UI: Separate sleep time in frame time graph. * UI: Show refresh rate on more platforms. * UI: Correct refresh rate display. * HLE: Replace Motorstorm pixel read func.- Update to version 1.9.3~git20200212: * UWP: Update "certificate thumbprint" to one that works * Fix linking issue in the UWP build (add camera files to project) * Add some reference line * Framegraph in devmenu- Update to version 1.9.3~git20200210: * macOS permissions * QT Api for Camera (Linux/macOS) * Core: Use a shared_ptr for i18n categories.- Update to version 1.9.3~git20200207: * HttpClient/Buffer: Just some tweaks/sanity checks * libretro: android: ios: Add stub camera functionality * libretro: android: Do not build in the standalone UI * Modify Info.plist automatically * NativeApp: add System_GetPropertyFloat all the places * Qt/macOS: enable HiDPI ( retina display ) support * Remove unused import. * Use System_GetPropertyInt(SYSPROP_SYSTEMVERSION to retrieve version. * Use ASharedMemory api instead of direct access to /dev/ashmem which is deprecated. * compat.ini: Workaround for timing problem in Hot Wheels, see #12604. * Rapid fire touch control * DX9: Simplify some expressions * GPU: Only GL uses a flipped buffer in non-buffered, reflect that in the SW transform code. * Apply viewport before SoftwareTransform so flipping can be checked * OpenGL: Call ApplyDrawState before SoftwareTransform * DrawEngineDX9: Rename lookup table, cleanup- Update to version 1.9.3~git20200127: * Add new listeners in addition to those present which are deprecated * Core: Future proof CSO support a bit. * Location: add HDOP; change speed to km/h; change altitude from geoid to sea level * Do not stop camera if unnecessary * Android satellites info * Common/Hashmaps.h: add missing include * Update macOS system name * Add camera/location support for iOS * Don't shut down camera when exiting games,also re-enumerating devices if * SDL app icon * Avoid divison by 0 * Remove extra newline * Snap resize- Update to version 1.9.3~git20200121: * Partial workaround for #12588. Cameras are now gone from settings though after playing one game... * D3D11: Fix mistake in UI vertex shader for non-textured geometry. Fixes #12587. * Add support for iOS ( completely untested ) * Initial support for vulkan on macOS ( MoltenVK ) * Revert "Android EGL config: Always require 8888, stencil if version >= ICS"- Update to version 1.9.3~git20200116: * Add camera support for linux (V4L2) * Add DEFLATE and MD5 to HLE module blacklist. Replaces #12576, fixes #12570 * Flush other UI element draw before changing to noTex * Fix line rendering in texmode * Render grid * BuildFix2 * Oops * Improve compatibility. * BuildFix * Add camera support for windows.- Update to version 1.9.3~git20200114: * Add another game controller mapping. Fixes #10679 * Loader: If the module range is bad, don't get stuck trying to scan for functions. * Update lang submodule- Update to version 1.9.3~git20200112: * Async I/O: Don't delay on close. Fixes #12549 (MGS:PW crash). * Warning fix * Upload new Gold icon for Windows * PRX Decryption: add pauth decryption * PRX Decryption: add missing decryption keys * PRX Decryption: add support for gzip compressed executables * PRX Decryption: add support for type 0/1/2/5/6 decryption * Windows: Mark PPSSPP as long path aware. * Windows: Make TEMP dir detection long path aware. * Windows: Allow long path for sys directory. * Windows: Support long My Documents paths. * Windows: Allow longer paths in browse for folder. * Windows: Make memory dump long path friendly. * Windows: Allow read only files in load dialog. * Windows: Make open/save dialogs long path aware. * Windows: Resolve module/full paths for long paths.- Update to version 1.9.3~git20200105: * Don't check auAddr. * Check invalid address in sceMpegAtracDecode. * Update submodules assets/lang, ffmpeg * Add headbar icon to Qt * Qt: don't return dangling pointer * Don't use the MAP_32BIT flag on any platform. * Mac: MAP_32BIT is no longer supported in Catalina and breaks. We don't need it anymore anyway. Fixes #12495. * Io: Correct async priority default on async open. * Oops. * fix * Io: Return a better error code for sceIoCancel. * Io: Update async priority more correctly. * Change async priority to current thread'priority if priority = -1. * minor fix * Avoid thread queue out of range by a offset. * Move umd replace to loaders.- Update to version 1.9.3~git20200101: * compat.ini: Add Japanese Game ID for DarkStalkers (Vampire Chronicles) * SDL: Ignore audio switch events in first second.- Update to version 1.9.3~git20191226: * Io: Allow adjusting default async thread priority. * Io: Correct leak on save state. * Just return error if current directory not be setted. * SoftGPU: Convert from 16-bit if unsupported. * Hide "Control" label on top * Disabled grid size if snap is disabled * Fix * Touch controll grid snap * Don't ignore SCE_KERNEL_ERROR_NOCWD in many cases. * IO:Re-grab SCE_KERNEL_ERROR_NOCWD. * IO:Add an extra delay to simulate umd delay in file seek whence.- Update to version 1.9.3~git20191218: * Update build.gradle.. again.- Update to version 1.9.3~git20191201: * vulkan: The GPU profiler could end up writing massive amounts of text, fix some bugs around that. * vulkan: ApplyRenderPassMerge; Add copy / blit destinations to touched buffers. * Vulkan: Enable renderpass merging for all games (was introduced in 1.9 for GoW games). A number of other games can also benefit.- Update to version 1.9.3~git20191126: * Update lang submodule- Update to version 1.9.3~git20191118: * Do not assert in Discord::Shutdown- Update to version 1.9.3~git20191110: * Update CMakeLists.txt- Update to version 1.9.3~git20191108: * Make style more consistent- Update to version 1.9.3~git20191105: * libretro buildfix * Update libretro.cpp * Remove the I/O on Thread option - treat it as always on. * Yet another gradle update- Update to version 1.9.3~git20191103: * Fix vcrs disassembly- Update to version 1.9.3~git20191030: * Oops * Isolate most of the softgpu specialization code to RasterizerRectangle. * Fix a backwards check * Remove unused textureswizzle support (we use shaders instead). Universally support presenting 5551 format directly. * Hack around most of the problems with the save/load dialog. Software stretch gets enabled in non-wide mode, so wallpapers work at a cost of speed. * Scissor fix * Even more speed. * More speed * Buildfix * Further specialization. * More specialization work. * DarkStalkers: Fix display on OpenGL ES. * DarkStalkers: Fix display in the D3D backends. Still broken in OpenGL. * Darkstalkers: Gross hack to avoid the game's own stretch, and present the raw buffer instead for a sharper image. * More darkstalkers work * Detect sprite drawing (1:1 texture mapping), run a simpler function without the triangle state tracking. * SoftGPU: Detect through-mode rectangles from triangle strips * Software renderer: Use hardware color conversion on Vulkan in 5551 16-bit mode * Start slowly migrating from macros * Add a compat.ini flag for software rendering, use it to force on in Darkstalkers- Update to version 1.9.3~git20191025: * Buildfix * Also rename the config setting to make sure it starts out off. * Cardboard VR: Add an on-screen VR OFF button. Enable Cardboard on iOS. * Revert "Remove Google Cardboard support. Fixes #11668" * Update lang submodule, adding Croatian, thanks to HilmBrala * Text drawing fixes * Correct the wrong GL DataFormat enums * GL: remove another unused format * Reduce GL texture format support to the ES minimum. We have to handle these anyway so let's only have one path. * OpenGL dataformat cleanup - pass Draw::DataFormat to the GLRenderManager.- Update to version 1.9.3~git20191022: * Fix the build - there's a Vec3 name collision, fixed it using a namespace. * Vulkan+SoftwareRenderer: Fix screen rotation on Android.- Update to version 1.9.3~git20191020: * Io: Consistently use error codes with OpenFile(). * Io: Return error code for write attempt to UMD. * Io: Change async thread priority if running. * Io: Destroy async threads on reset.- Update to version 1.9.3~git20191020: * Vulkan: Add checks so we don't try to write NULL objects to a descriptor set. * Change Bloom Hack aggressive detection to include GOW games bloom.- Update to version 1.9.3~git20191017: * Use old jit enablement method if clean method fails- Update to version 1.9.3~git20191015: * Fix fork logic * Replace horrible hack with less horrible hack * Fix name collision on iOS build * Move the viewport clamping back to rendermanager to avoid a struct copy in the common case. * Fix misplaced break * Vulkan: Move viewport/scissor rotation to the QueueRunner instead of RenderManager. Add some checks. * Vulkan blend factor: Bugfix and minor optimization * Update last commit to use IsValidRange instead of IsValidAddress. * Code analysis: Skip invalid code sections. May help #12414. * UI: Better way of showing game/savedata images. Fixes #12408 * WASAPI: Discovered by chance that pwstrDeviceId can be null. Treating it as a new device.- Update to version 1.9.3~git20191008: * SDL: Switch audio device when plugged in. * SDL: Add UI to reset audio device at runtime. * SDL: Use a configurable output device. * SDL: Use SDL2 audio API for output. * cmake: Ignore if madbundle.sh fails. * cmake: Remove old qmake options. * [iOS] Resolve SDK 13 Generation * Move window to center * MainScreen: Prevent grid game buttons from becoming too wide if the png has the wrong dimensions. * Vulkan: Always write gl_PointSize, fixes #12364. Remove unnecessary predeclaration of gl_Position. * Android: Setup UI callback earlier if possible. * UI: Allow pinning remote ISO paths. * UI: Handle remote browsing asynchronously. * UI: Cleanup browse button check. * UI: Allow remote paths to be pinned. * http: Use relative paths for remote isos. * http: Don't treat http:// as a relative path. * 1.9.3 commit * Android: Finally fix our display sizing problems for good, hopefully. * Android: Preparation for future cutout (notch) support * Increase max aspect to 2.4. Fixes #12349 * Logging improvements * Android: Setup UI callback before settings change. * Fixes * Make use of OnSystemUiVisibilityChangeListener to check whether navbar is hidden. Affects DPI calculations. * Vulkan: Compile compute shaders only if enabled. * Vulkan: Add a setting for hardware scaling. * Vulkan: Initial 16-bit texture shader decode. * Vulkan: Add 4xbrz texture shader. * Make the barrier a bit more focused. Up some limits. * Need a barrier on Mali. Strange that validation didn't warn... * In the computeUpload path, use a shader intrinsic to unpack the color. * Fix build error on 64-bit android * Vulkan: Check coherent bit. * Also experiment with a "copy shader" that just does raw data manipulation into GPU local memory, then copies to image from there. * Use a plain compute shader for RGBA8888 texture uploads, as a proof of concept. * Vulkan: Add simple manager for compute shaders that upload data to images. * SaveState: Handle compression thread better. * UI: Join downloads on destruct. * UI: Cleanup install threads from UI thread. * Io: Join loading/manager threads more explicitly. * http: Ensure webserver shutdown on exit. * Core: Avoid detach for game loading thread. * http: Avoid detaching threads, join instead. * Reporting: Use a single message posting thread. * Switch: Configure base paths. * Switch: Cleanup some includes. * Switch: Disable IPv6. * Switch: Add basic defines for checks/reporting. * Vulkan GPU profiler: Measure the CPU time spent on the render thread recording command buffers. * Io: Correct result on async file not found. * Io: Wait async thread on IO completion. * Io: Cleanup some logging. * Io: Check callbacks in sceIoWaitAsyncCB(). * Io: Handle open async in a thread. * Io: Use async for read/write/seek/ioctl. * Io: Prepare HLE thread handling for async. * Psmf: Cleanup finishThread save state handling. * Io: Cleanup some error handling. * Io: Store sceIoChangeAsyncPriority value. * Psmf: Use kernel memory for helper thread stack.- Update to version 1.9.2~git20191003: * Improve the touchscreen test screen with some numbers.- Update to version 1.9.2~git20191003: * Upgrade gradle version again * SDL: ensure swap interval is set correctly for SDL2 kmsdrm driver * Touchscreen: Apply weihouya's fix, add a touchscreen test screen. See #12381. * Don't assert if Discord not shut down properly. Possible workaround for #12140.- Update to version 1.9.2~git20190929: * UI: Stop caching the draw context in coreParam. * UI: Minor assert fix. * GPU: Generate normals for curves with lighting. * Core: Fix memory range guard check. * Workaround for a crash found in #12358 on older devices * Fix nasty race condition with menu background audio. Fixes #12365 * Add a comment. See issue #12365 * Assorted cleanup * Blind attempt at fixing an OpenSL ES crash * Add memory range checks to a few little-used sysclib functions. Might help #12359. * Fix crash in Zip UI. Make another crash happen earlier. * Fix crash in zip handling * Symbolic commit for 1.9.2. Making another submission attempt to Google play so have to increment the version. * Debugger: reset step counter on game stop. * Listed additional UMD serials for GTA titles * Symbolic commit for 1.9.1. * Symbolic 1.9.0 commit * Android: Fix crashes on Android versions < 11 due to mCameraHelper being null * Silence a few warnings. * Update lang submodule * Vulkan: Update API headers. * Refer to AkiraJkr's new issue * Add patch note about MGS:PW as suggested by AkiraJkr * Additional README updates * More readme updates * README.md: Lunamoo's additions * More README.md updates * Update README.md a bit more * Update README.md for 1.9.0- Update to version 1.8.0~git20190923: * Update default adhoc server to one that works * Another fix for AnalogTestScreen rendering (it broke again somehow?) * Case fix for previous commit * Hacky workaround for #12339 (Amazon FireStick 4k issue) * Android audio: Turns out the initial queue operation queued up too little data anyway (sizeof on dynamic buffer.. sigh). * Remove some legacy * Android OpenSL: Fix bug where we should have enqueued two buffers on startup. * Vulkan: Fix shutdown crash accidentally caused by #12324 * Fix issue preventing video to work correctly in Digimon. Fixes #12186 * Remove some logging, add a comment. * We had an old fallback to the EGL GL loop in the Vulkan init. Remove it. * Don't let a delayed config load mess with the GPU backend option. Fixes #12284. * Vulkan: Just some extra logging. * Vulkan: Clear caches when deleting shaders.- Update to version 1.8.0~git20190909: * Fix a comment * Vulkan: Slim down and rename the Mali hack. * Vulkan ARM mali Z hack: Modify the matrix instead of the shader. * Workaround ARM Mali depth hardware bug. Fixes #11937 * Update lang submodule * Improve Mali driver version detection- Update to version 1.8.0~git20190904: * Vulkan: Move scissor/viewport rotation into the VulkanRenderManager. Fixes #12303. * Analog test screen: Fix drawing of the X marks * Create a default keymap for the MOQI:I7S gamer phone (with builtin controls) * Windows: Kill the mouse wheel release timer after it's used to prevent spamming keyup events. * Remove an old special case * Android: Be slightly more aggressive at defaulting to Vulkan (from Android 8.1 / 27) * Android: Remove the popup message when falling back to OpenGL. Fixes #12284 . * Vulkan/PowerVR: Make another blind fix attempt for #12296. Can't find my PowerVR device :/ * Bump up the descriptor pool size for the UI. Should fix #12299. * Vulkan: Even more logging in VulkanMayBeAvailable. * SDL: Add back a couple of lines that should have been copied, not deleted. Thanks [Unknown] * Vulkan: Prepare for adding a second init path for VulkanContext.- Update to version 1.8.0~git20190901: * Attempt to work around the PowerVR bug again (pretransform undid the old workaround in landscape). See #12276 * Linux: Port the proper memory base finding over to MemArenaPosix.cpp. * SDL/Vulkan: Fix scale problems when maximizing/restoring the window. * Oops, fix the last commit, it got a little restrictive. * VulkanMaybeAvailable: Bail earlier in some cases where there's no surface extension. * [iOS] Resolve Cmake warning- Update to version 1.8.0~git20190826: * (Libretro) Buildfix - update Makefile.common * Remove deleted GE dumps from Recent. Fixes a part of #11904 (the recent list wasn't updated properly). * sceUsbCam: Fix some bugs my last commits introduced. * MJPEG in sceJpeg: Notify the framebuffer manager that there's been a picture written to memory. Fixes part of #8521 * Improve some logging (%08x for addresses) * sceUsbCam: Heap-allocate the buffer. * http: Remove web server restart handling. * http: Show recent games in same order. * http: Improve EBOOT.PBP handling. * [Android] Fix code style * [Android] Updates for camera * Missed this in the last commit, sigh * Improve an assert message that AkiraJkr saw. Fix a silly bug in the last commit. * Default to Vulkan on Android Pie or later. Fixes #12228. * Android: Update the gradle version again. * Fix display of memory view window on high-DPI displays. Fixes #11913. * Revert "GPU: Download CLUTs when loading at 256 stride." * SasAudio: Cap the cycle estimate at 1200 to prevent crackling in FFT. Fixes #9956. * Add a few more checks. * Vulkan profiling vis bugfix: Restore font scale after drawing. * Vulkan: Prevent some bad merging of renderpasses. Thanks Unknown for writing it up. * Stop renderpass merging at readbacks. * Minor optimization * Vulkan: Automatically merge render passes to the same target when possible. * Improve renderpass profiling descriptions a little * Vulkan: Profile individual render passes/steps. * Get rid of numQueries * Vulkan: Disable some bad validation. Things are right and work fine. * Decided to end the practice of #ifdefs in Config.h. Led to bizarre miscompilations when reading config with inconsistent ifdefs set. * Bugfixes to VK gpu profiling. Properly get the valid bits. * Vulkan: Implement basic integrated GPU profiling. * removed the sceUsbMic checks * Add sceUsbMic.cpp/h to the UWP project * Update PowerSaveModeReceiver (again) * Fixes delete button for downloaded games from homebrew store in UWP * UI: Fix crash with no buttons in popup. * UI: Validate address entered in settings. * configure QT to get a higher version for opengl * IO: Use TextEdit for hostnames on more platforms. * UI: Cleanup hostname entry to use a dialog. * UI: Make IP/hostname dialog more generic. * UI: Respect loop info for menu music. * Core: Fix a format type error. * iOS: Ignore gl3stubInit() on iOS, to avoid warnings. * Vulkan: Check default case with an assert. * GPU: Avoid some unused var/func warnings. * Android: Get our base pointer in a saner way than YOLO, if possible. Should help #12249. * Simplify openIniFile to use ShellExecute so .ini files get opened in an associated text editor * More extreme paranoia in VulkanMaybeAvailable * Vulkan: Re-enable the blacklist. * Vulkan: On Android, only try to load libvulkan.so, not libvulkan.so.1. Plus more paranoia. * VulkanMayBeAvailable: Add more logging, disable blacklist check for testing (see #12093) * Vulkan loader: Fix the SHIELD Tablet blacklist string. * Rename "Immersive Mode" to Full Screen. We can reuse the FullScreen translation from desktop. Fixes #12229 * Update PowerSaveModeReceiver * Cleanup * Android: NativeApp.Init: Log the device name. * Vulkan: Simple blacklist of device names that are not allowed to check for Vulkan. Will help #12093. * Typo fix * Minor code cleanup * Micro-optimize the Vulkan loader: Load more device-specific function pointers to avoid a bounce in the device loader, reorder things a little. * Vulkan: Reduce the amount of redundant stencil parameter sets * Vulkan: Image views: The driver is probably smart enough to recognize a no-swizzle, but let's use the proper method. * MakeUnique.h in the CMakeLists.txt * Init GlobalThreadPool in a thread safe manner * Start as many worker threads as actually used (used to start more) * Store std::thread in worker thread class by value and explicitly start it up, and don't use shared_ptr in thread pools * Cleanup mutex usage in worker threads * Remove 'started' bool from worker threads, as fixes for spurious wakeups made it obsolete * Handle spurious wakeups on worker thread condition variables properly * Use move semantics for worker thread functors * Clean up ThreadPool and WorkerThread constructors with C++11 features, * Add MakeUnique.h so make_unique is available without C++14 * Windows: Allow write-only files to be read later. * WASAPI: Add some missing error checks. May help #12081? (but will result in silence) * Apply the same Mali range culling "fix" in OpenGL. * Vulkan: Set all four coordinates to NaN instead of just W. Fixes range culling on ARM. Fixes #11999. * Set DrawSyncEatCycles for Patapon 2, recommended by pamford45- Update to version 1.8.0~git20190808: * Vulkan: Add missing barrier when rendering to a target that's already in COLOR_OPTIMAL layout. * Some changes and asserts. * Vulkan: Improve the Metal Gear Acid 2 performance hack. * Move NKCodeFrom*.h into the relevant platform folders * Address feedback * VFPU-Int: Add a few fast-paths to ReadMatrix/WriteMatrix. Should gain back part of the speed lost in #12217 * Buildfix (oops) * Memchecks: Avoid taking the mutex lock if no memchecks active. Possible minor speedup in GoW and other block-copy-heavy games. * Compat: Add more Tekken game IDs to leg shake fix. * Compat: Option to use accurate dotprod for VMMUL. * interp: Implement software inverse square root. * interp: Oops, fix vdot bug with subnormals. * interp: Implement software sqrt to match PSP. * interp: Use vfpu_dot for vdet as well. * interp: Use software dot in vcrsp/vqmul. * interp: Fix adding infinity in software dot. * interp: Handle rounding in software dot. * interp: Correct INF * 0 during dot. * interp: Use an integer multiply for dots. * interp: Handle NaN better in vfpu_dot. * interp: Use vfpu_dot for vavg, vfad, vhdp. * interp: Use software dot for better accuracy. * Fix the indirect postprocessing path. Fixes #12133 (but see the issue for a secondary bug). * Update lang submodule * sceUsbMic- Update to version 1.8.0~git20190801: * Workaround for DJ Max Portable's clumsy copy protection. Fixes #9477. * Vulkan: Actually fix #12202, an array was out of scope where it was used, causing garbage flags. * Vulkan: Using VK_DEPENDENCY_BY_REGION on the backbuffer subpass causes tearing, let's not do it. Fixes #12202. * Move WM_MOUSEWHEEL back to WndProc to fix wheel events not working in Win 7. * libretro: don't fail on missing SDL * GPU: Allow upload to temp resized framebuf. * Add Hori Fighting Stick VX to gamecontrollerdb.txt * UI: Support zip files with deep folder structures. * Android: Disable building HLSL support in glslang, works around #12105 * Add a little reminder to self with a link to an interesting article. * Upgrade gradle again * Make things clear for people that never saw real PSP. * Add right analog for touch controls.- Update to version 1.8.0~git20190718: * Config: Specify/save game title on load too.- Update to version 1.8.0~git20190716: * UI: Fix zip leak in error case. * UI: Allow custom button to toggle fullscreen. * Replace mouse control with device ID mouse check for threshold. * Reduce in-game axis bind threshold for mouse control. * Update all values for mouse axis. * UI: Allow installing texture packs from zips. * Replacement: Allow region-specific settings. * UI: Fix type comparison warning. * Config: Don't save empty sections. * Config: Add game name to game-specific inis. * Ignore mouse mappings for UI- Update to version 1.8.0~git20190714: * Address review feedback, thanks unknownbrackets * More GameManager improvements. * Fix build error on non-windows * Pre-check the contents of ZIP files before allowing install. * GameManager: Actually allow installing ISOs from zip files. Refactor. * Start refactoring GameManager zip handling to easier support ISOs in zips- Update to version 1.8.0~git20190708: * interp: Correct vsbn instruction. * Kernel: Shutdown when module load fails. * GPU: Forget pause signal on new list. * Experimentally revert a small part of #12094, ios external display support, that seemed to break exit. See #12140. * cmake: Automatically detect raspberrypi 4. * GPU: Download CLUTs when loading at 256 stride. * Travis: Build Windows on Travis too. * SDL: Use whatever display SDL gives us for EGL. * Replay: Attempt to ignore reads in PSP/GAME. * Replay: Add file header handling. * Travis: Update to NDK r18b. * Travis: Update config to reduce timeout errors.- Update to version 1.8.0~git20190705: * [Libretro] Fix some default config values -iAltSpeedVolume -iFirmwareVersion -iPSPModel Fixes #12144 * Audio: Quick SRC resampling experiment. * Audio: Track SRC frequency. * Audio: Correct sceAudioChRelease return value. * Audio: Improve error messages for sample counts.- Update to version 1.8.0~git20190703: * Simplify synchronization model in InputDevice.cpp - replaced volatile flags/mutex/condition variable with joining on thread and one atomic flag * Remove KeyboardDevice which was essentially useless * Support falling back to xinput9_1_0.dll if neither xinput1_4.dll or xinput1_3.dll are present. This can happen on a Windows XP, Vista or 7 PC without DirectX End-User Runtimes installed. * Windows: Properly check for hidden files when enumerating files * Windows: Fix an exit crash by not destroying the window in CGEDebugger destructor - this window (and displayList) have already been destroyed and freed at that point- Update to version 1.8.0~git20190702: * Update lang submodule * Remove Google Cardboard support. Fixes #11668 * Windows: Fix Vulkan out of process check.- Update to version 1.8.0~git20190629: * Enable right analog stick for libretro- Update to version 1.8.0~git20190627: * Windows: Fix leak on folder browse. * Comment some confusing code * Warning fix * Android: Add DPAD_CENTER as an accept button. Fixes menu navigation on Mi Box and Shield Remote. * UWP: Fix overscan on Xbox One * Update lang, pspautotest submodules * Vulkan: An additional check during init. May help #12131 * For the non-vulkan backends, zero display rotation settings just to be sure. * GE Debugger: Split playback into a separate file. * GE Debugger: Cache decompressed frame commands. * fix indent * GLES: Update proj matrix on viewport change. * GPU: Improve a 5551 stencil emulation case. * Debugger: Fix subtexture readback crash. * UI: Add a note for HTML link parsing. * Audio: Add volume for alternate speed. * http: Support redirects for load URL too. * http: Support relative redirects too. * http: Support redirects for downloads. * SaveState: Fail load on decompression error. * UI: Clear queued events on Event destruct. * Audio: Better errors on Output2/SRC reserve. * Audio: Correct errors on Output2/SRC release. * Debugger: Fix connection in Firefox. * Travis: Fix build cache for macOS/iOS. * Common: Fix some unused ident and case warnings. * Travis: Install python3 via brew. * Address feedback, delete some unused code. * Core: Keep number on setting for translated. * Core: Ignore case of GPU backend setting. * Core: Save GPU backend as identifier. * Core: Allow for disabling graphics backends. * Core: Use readable names for failed backends. * Don't ask for TRANSFER_DST for swapchain surface. No reason to. * Avoid rotating the image when DrawActiveTexture is used for other things than drawing to the backbuffer. * Fix the 270 degree rotation case * Vulkan: Apply the desired pretransform when drawing to the backbuffer. * Vulkan: Log supported pretransforms. * Disable external display by default * Fix invalid mode on iPad Pro 2018 * Ignore mute switch when connected to external display * Fix shutdown because of Discord deinitializer * Simple dpi scaling * Fix overscan compensation (Hack) * Do some clean up * Fix iPhone won’t switch to external display * Auto switch between internal and external display * Show root view controller on external display- Update to version 1.8.0~git20190620: * Buildfix for cmake builds * Update SPIRV-Cross * Upgrade glslang to latest * Vulkan: Upgrade to latest headers * Fix mouse scroll by releasing with a delay using timer(16ms) Also moved WM_MOUSEWHEEL to DisplayProc where it works fine now. * Fix some further static analysis warnings * Fix a bunch of inconsequential uninitialized variables * Fix static analysis warning about access outside array (d[ins] = s[ins * 4] * t[0]) * interp: Fix dumb mistake in vtfm.- Update to version 1.8.0~git20190614: * Implement and test clz32, use it in the MIPS interpreter cores.- Update to version 1.8.0~git20190611: * Fix build error * SDL: Adjust EGL config choice heuristics.- Update to version 1.8.0~git20190609: * UWP: white space fix * fix unintended line removal from rpi platform * UWP: Full screen support, config save fix * TextDrawerUWP: oops, forgot to release the objects used. * adding arm64 platform to libretro makefile * UWP: fix prebuild commands * UWP: fix && in English UI labels * TextDrawerUWP based on DirectWrite * UWP: enable SYSPROP_LANGREGION * UWP: project filiter update, add assets to other architectures * Update submodules lang, pspautotests * libretro: Add SpvPostProcess.cpp to the static makefiles * Revert "ARM64 vmmul experiment: Disable if S and T matrices overlap." * UWP: fix prebuild commands * ARM64 vmmov experiment: Reduce precision by using FMUL+FADD instead of FMADD. May help #12082 and thus also #11179 and #9843. * ARM64 vmmul experiment: Disable if S and T matrices overlap. * Add space to new setting name * Fix avi dump via render buffer instead, with an option to use output buffer since recording with post process effects will often be desirable. * JIT: Split VFPU_MTX disable options. To help with #9843 * arm64jit: Tweak matrix vfpu overlap detect, etc. * armjit: Fix avoidLoad handling for fpu regs. * arm64jit: Fix avoidLoad handling for fpu regs. * GPU: Correct Danganronpa hack. * Windows: Fix some warnings. * Fix minor oversight * Style fix * JitDisable: Add option to disable regalloc across instructions (flush after every instruction) * Silence robocopy error codes * Edited version of #12031, without the ISO/CSO ability. * Oops, tab fix to previous commit * Add d3d9_d3dcompiler_loader to libretro's makefile. Probably helps #12071 * Update lang submodule * Improve WordWrapper: * Block savestates OSM when video frames are dumped. Also make the dump messages shorter, especially dump start since it will be recorded. * Fix avi dump feature by using output buffer.- Update to version 1.8.0~git20190527: * GLES: Use fragColor0 in GLSL 3.30 float path. * Windows: Add ResolvePath fallback if symlink fails. * SoftGPU: Implement dithering. * Fix spurious unit test failure.- Update to version 1.8.0~git20190523: * Improved Show in Folder: * Update gradle yet again * Vain attempt to make the Windows buildbot happy, after LunaMoo's comment in #12052 * Oops, this was left for debugging. * VS2017: Add hack to automatically select the newest installed Windows 10 SDK. VS2019 already does this by default if you specify 10.0. * Compat: The Transformers games perform much better with Force 60fps. * Qt: Implement clipboard support * SDL: Implement clipboard support- Update to version 1.8.0~git20190516: * D3D11 init: Release pFactory at the appropriate place. * D3D11: Also properly check for the no-adapters case. * Add a missing error check to the D3D11 device creation. May help #12039? * Remove base/arch.h * Windows: Workaround buildbot failure. * Fix d3d11_loader on x86 * Use D3DCompiler_47.dll for D3D9 context.- Update to version 1.8.0~git20190513: * ArmCPUDetect: close the registry key when finish * fix git-version-gen on normal commits (without tag) * UWP: Use default (latest) toolset and remove dependency to 16299 SDK * Proper device type detection for UWP * UWP Window resizing support * Fix typo which disabled GEDebugger * Remove the related #include * Android: Display measurement fixes * Delete 2 unused i18n category pointer declarations * Add CPU string in Windows ARM * Fix issue with D3D9 vs UWP * Spacing fix * Oops, fix the D3D9 fallback * Oops, missed these two * Assorted warning fixes * Clean up some more ifdefs * Remove DbgNew.h forced include in ARM debug builds, doesn't work for some reason. * Add WindowsSDKDesktopARM64Support to vcxproj files * Fix #12023, accidental disabling of the GL backend on non-Windows ARM platform caused by #12013. * Revert "Remove default SDK version from project files" * UWP: Update the temporary-key with a new one generated by dominater01 * Remote ISO: Fix bugs from issue #12018 and probably #12019 * Game server: Reject bad URLs * Add Test Drive Unlimited to depthRangeHack to disable range culling * Report: Add Windows ARM identifiers * update ppsspp-ffmpeg to current master * Toolchain for nvidia jetson linker tegra lib. * Update lang and ffmpeg submodules * Fix D3D11 context on Windows ARM Debug * Remove unnecessary ifdefs * Fix UnixTests and HeadlessHost on ARM * Update ffmpeg to support Windows ARM64 * UWP: add missing files for ARM64 * Update UWP project files for ARM64 * Update .gitignore * Fix a crash on DirextX 11 with Feature Level <= 9_3 hardware * Update ppsspp_config.h for Windows ARM * Disable features not available on Windows ARM32/ARM64 * Fix ssize_t in libzip for Windows ARM64 * Add Crash() for Windows ARM64 * Enable ArmCPUDetect on Windows Desktop * Fix GetWindowsSystemArchitecture() * Fix neon headers for MSVC ARM64 * Update Visual Studio project files for Windows ARM32/ARM64 * Enable PNG screenshots for all platforms * UI: Make the screenshot key configurable. * Mp3: Set as inited only after success. * Mp3: Correct seek to specific frame. * Mp3: Fix ID3 tag handling. * Mp3: Properly flush the buffer on reset. * Mp3: Always output data in decode, except at end. * Mp3: Use a vector for the temp buffer. * Mp3: Correct delay on decode. * Mp3: Loop correctly from an offset. * Mp3: Reset sum decoded on loop. * Mp3: Correct sum decoded sample count. * Mp3: Return total frame count in sceMp3GetFrameNum. * Mp3: Fix loop func errors, clamp to -1. * Remove some unused code. * Add missing variable reset fixes #12002 * Remove default SDK version from project files * Fix VS2019 builds and remove _xp dependency (drops Win XP support, allows latest SDK etc.) * Hopefully fix the annoying LR. * Remove "sound speed hack". * Mp3: Correct sceMp3GetMaxOutputSample. * Mp3: Fix errors for a bunch of init getters. * Mp3: Detect offset headers, reject invalid data. * Mp3: Apply offset to stream read buffer. * Mp3: Align CheckStreamDataNeeded with InfoToAdd. * Mp3: Don't change buffer accounting until add. * Mp3: Fix errors on sceMp3NotifyAddStreamData. * Band-Aid for libretro Savestate load Proper would be using PPSSPP's Queue. This will need frontend extensions to do it sanely. Fixes #11429 (mitigate for now) * Mp3: Improve handle releasing behavior. * Mp3: Better errors in sceMp3GetInfoToAddStreamData. * Mp3: Allow allocating two mp3 handles. * Mp3: Fail to reserve if resource not inited. * Mp3: Better match resched on resource init/term. * Update gradle stuff again * Fix typo again * Oops, got these backwards. * Update ffmpeg and lang submodules * Fix typo * Masked PSP Memory support for the AArch64 Dynarec * Power: Match reschedule timing better. * Power: Correct hz on update and improve resched. * Added IO Timing Method option. * Update controller data base ps3 clone controller * GPU: Improve non dual source stencil replace.- Update to version 1.8.0~git20190404: * interp: Handle vtfm/vhtfm prefixes properly. * interp: Correct prefixes on vfad and vavg.- Update to version 1.8.0~git20190402: * interp: Cleanup prefix/size in vcrsp/vqmul. * interp: Handle invalid swizzle for vmin/vmax. * interp: Correct vwbn and vlgb size behavior. * interp: Better prefixes for vdiv/similar ops. * interp: Correct prefixes on vdot/vhdp. * interp: Handle prefixes on matrix init ops. * interp: Correct vsgn out of swizzle bounds. * interp: Handle vsgn prefixing. * Jit: Ignore high bit in vmfvc/vmtvc. * interp: Ignore high bit in vmfvc/vmtvc. * interp: Handle invalid swizzle in vsge/vslt. * interp: Implement vcrs prefixes and sizes. * interp: Correct simple vmov variant prefixing. * interp: Correct vdet prefix handling. * interp: Correct prefixes in vsrt ops. * interp: Correct prefixes for vsbn/vsbz. * interp: Cleanup vsocp size handling. * interp: Correct size handling for vi2x ops. * interp: Correct swizzle on vx2i ops. * interp: Don't write lane 2 on single colorconv. * interp: Correct some negative invalid zero cases. * interp: Force vscmp result of invalid to zero. * interp: Correct vfim for -inf and similar. * interp: Correct vmfvc register behavior. * interp: Handle wrong sizes of vf2h/vh2f. * interp: Correct vrnd prefix handling. * interp: Match actual vdiv prefix handling. * interp: Mask moves to vfpu ctrl. * interp: Handle NAN more correctly in vscmp. * interp: Handle flush prefixes slightly better. * interp: Handle prefixes for Vmmov/Vmmul/Vmscl. * interp: Handle vrot prefixes mostly correctly. * interp: Use a helper to generate prefix consts. * interp: Properly apply mask on single lane ops. * interp: Generate constants using prefixes. * interp: Correct vscl prefix handling. * interp: Fix vbfy prefix handling. * interp: Mask value in vpfxd. * interp: Confirm vi2f/vf2i prefix handling. * interp: Apply T prefix to D in vcmov. * interp: Correct behavior for matrixes with size=1. * interp: Handle abs/neg on nan values better. * IR: Use interp for unhandled prefix cases.- Update to version 1.8.0~git20190327: * Disables iOS exit animation to prevent freezing. Selective PTRACE sys call.- Update to version 1.8.0~git20190326: * Address feedback from #11936 (support memory types without CACHED as a backup) * Add texture dump/replace hotkeys. * Vulkan: Request cached memory for readbacks. First try coherent too but also support non-coherent cached memory.- Update to version 1.8.0~git20190325: * TexCache: Align bufw properly even for VRAM. * Debugger: Prevent saving a -1 sized func. * Vulkan validation: INFO level has gotten too spammy, turn it off. * Fix invalid argument string for kuKernelLoadModule. Fixes #11895. * MSVC project files: Fix silly search/replace error from #11883 * IR: Correct vmmul optimizations. * Android: Allow less common sample rates. * Kernel: Kernel threads can beget kernel threads. * SDL: Make it clear Vulkan check is not an error. * cmake: Automatically disable Wayland for Raspbian. * SDL: Fix compile error when not using FBDEV. * http: Fix warning on compare in url decode.- Update to version 1.8.0~git20190322: * UI: Allow deletion of GE dumps from UI. * Update lang (with ES spelling error fix, etc). Fixes #11912- Update to version 1.8.0~git20190318: * GPU: Respect stencil write mask on clear. * SoftGPU: Apply color doubling only to RGB. * Vulkan: Narrow down buffer usage flags a little bit. * Windows: Change FP model to Precise. See #11384 * UI: Pass touch/button releases to all screens.- Update to version 1.8.0~git20190317: * UI: Avoid using game info cache in savedata sort.- Update to version 1.8.0~git20190314: * Finish up the fix attempt for #11882 * Correctly handle memory types in VulkanPushBuffer. Should help #11882. * Update the version number in AndroidManifest.xml (pretty sure we don't really still need to do this, but whatever). * Update the lang submodule * Add last minute fix mention * Update README.md for 1.8.0. * Android (and libretro): Turn off -ffast-math. Fixes #11880. * Revert "Temporary commit to get CalcCullRange logging into a buildbot build" * Temporary commit to get CalcCullRange logging into a buildbot build * On game load error screens, print the filename. May help diagnose issues from screenshots of the error (commonly sent by end-users) * Vulkan subpass dependencies: Handle VK_IMAGE_LAYOUT_UNDEFINED without debug-asserting. * Fix apparent bug in #11094, fixes #11878 and likely #11798 * Fix a VK validation failure when opening the homebrew menu * Survive pipeline creation failure on Vulkan. Makes Burnout playable on Pocophone... Sigh. * Update to a new gradle version again- Update to version 1.7.5~git20190311: * sceFontLib: Don't call the callback if double-free. Should fix one part of #6627 * GLES: Fix stencil buffer upload at > 1x PSP.- Update to version 1.7.5~git20190304: * UI: Update more browser links to https://. * Windows: Link to https://. * Windows: Clear help menu correctly.- Update to version 1.7.5~git20190303: * DPI fixes in the old Win32 debugger. Fixes #11856. * Update gamecontrollerdb.txt * Hori Minipad S * GLES: Correct cull range offset in unbuffered. * GPU: Handle cull range properly drawing at offset. * Add the other gameIDs for euro tony hawk * Hardcode the cheats that work around the Tony Hawk jit issues. Temporary, horrible hack working around #3854.- Update to version 1.7.5~git20190301: * Use MSG_NOSIGNAL for some more send() calls. Didn't fix anything though. * UWP: Restore the Load button. Fixes #11855. * compat: Enable 60fps limit and warning for wrong clock freq for Tekken 6. * Remove old resolution hackery that didn't fix anything.- Update to version 1.7.5~git20190227: * Fix some minor things found looking at Valgrind output * Add missing line to SDL EGL init (no way this path could have worked anywhere?) * EGL errors should cause us to bail. Also downweight alpha in the EGL config chooser. See #11839 * Silence a compiler warning, fix an uninitialized variable * Disable vertex range culling when the depthrange hack is enabled. Temporary workaround for #11576. * Ignore DisableAccurateDepth on Adreno as well. Fixes #11557 * Disable more texcoord math on terrible-precision PowerVR (it's really awful). Fixes #9189. * EGL: Avoid HDR mode. Uses unknownbrackets' changes from #11839. * Better place for CloseHandle * Found the handle leak! Doh. * Avoid trying to create a FileLoader for empty filenames * Rename the lag sync config ini setting to reset it for all users. See #10195. * Back out wrong change. Leaving better error handling for later. * VulkanImage: Fix issue where we'd try to free dedicated allocations from the allocator_ instead of Vulkan directly. * interp: Implement vsbz and vlgb. * Jit: Correct VFPU prefix eating flags. * interp: Correctly handle vsocp prefixes. * Jit: Correct vocp prefix handling.- Update to version 1.7.5~git20190223: * Travis: Remove old clang cache workaround. * Android: Default screen rotation to auto landscape for new users. Fixes #11832 * Make window resize work with Vulkan. Seems more stable now. * Bundle libSDL inside app on macOS, fixes #11830 * Log why the config is being saved (we seem to do it a bit much at times) * SDL/Qt: At least quit properly when switching backends * Disable GLEW on macOS * Linux: Draw the graphics API on the splash screen, like most other platforms. * ARM/ARM64: Ignore invalid immediate addresses in delay slots, which may be conditional.- Update to version 1.7.5~git20190222: * Fix postprocessing shader support on macOS * interp: Correct vocp prefix handling.- Update to version 1.7.5~git20190221: * Add more games to RequireBlockTransfer. Plus, for whatever reason we seem to have a separate compat.ini for UWP, update it. * PPGe: Correct text wrap without height. * Add a large number of missing Game IDs to compat.ini. May help various Phantasy Star and SOCOM issues, in particular. * Another GOW game ID. See #11815 * compat.ini: More IDs to lists of games requiring default CPU freq and buffered rendering. * A lot more GoW game IDs. * Followup to last commit: Also add IDs for GOW demos. * Fix one instance of #11815. Hope there aren't a lot more missed GOW IDs. * Android: Allow using custom storage paths. * Core: Remove some now unused variables.- Update to version 1.7.5~git20190219: * Core: Fix lag sync on game start / after pause. * Update pspautotests submodule, not that it matters, just for convenience.- Update to version 1.7.5~git20190218: * SDL: Allow PauseWhenMinimized to work. * Qt: Cleanup indentation. * Windows: Hide accelerators when they are disabled. * Qt: Correct text bind on first draw of string. * Windows: Browse for folder like Qt. * Qt: Correct Browse... handling for multithreaded. * Qt: Re-enable Load button to browse for file. * SDL: Force fullscreen desktop for USING_FBDEV. * SDL: Prevent mouse capture on macbook trackpad. * Savedata: Truncate detail if it's too long.- Update to version 1.7.5~git20190216: * Windows: Detect Vulkan in separate process.- Update to version 1.7.5~git20190216: * GPU: Better typesafety for shader bits.- Update to version 1.7.5~git20190214: * Enable BlockTransferAllowCreateFB for Ys Seven as discussed in #11669 * CwCheat warning fixes * Update pspautotest submodule * add controllers * Lie about success of loading flash0:/kd/audiocodec_260.prx, just like we already lie about audiocodec.prx. * GLES: Disable range culling on VideoCore/Vivante. * Android: Update gradle to 3.3.1 * OpenGL: Disable the mapped buffer strategy for Adreno (Qualcomm). * Android: Add some logging * GPU: Correct depth clamp range in range cull. * Fix issue where too long filenames could wreck the Install Zip dialog layout. * Naruto 3: Probably a better fix for the video hang issue.- Update to version 1.7.5~git20190209: * Make "Show FPS Counter" in the Windows menu actually show fps, not just speed * Gate fewer effects behind "Disable slow framebuffer effects". * Only gate really expensive block transfers behind the setting. * The block transfer setting should not affect clearing memory behind a render target, especially since that's already gated behind a compat flag.- Update to version 1.7.5~git20190207: * Update lang * VK code cleanup: Just a little helper for handling dedicated allocation for images. * Disable vertex range culling on old NVIDIA. Should help #11638 * Detect PCI device ID where available (not in GL?) * Add missing break statement fixing bizarre language menu issue from #7929 * Enable the FPS limit for F1 2006, too. * Partially revert #10456 (avoid limit FPS without a clear). * Remove iForceMaxEmulatedFPS and replace with a compat setting for the two games that really need it. * Qt: Apply suggested keyboard shortcut fix. Fixes #11735. * Qt: Remove keyboard shortcut for buffered rendering. Mitigates #11725 although not a proper fix. * Compat: Force realistic UMD timing for F1 2006. Fixes #9193 but not the game, since there's also #11177. * Remove unused API, assorted cleanup. * Further improve VK extension loading. Switch to VK_EXT_debug_utils (but fallback to VK_EXT_debug_report if only that is available). * Update glslang to latest version * Add code to enable a couple more extensions I anticipate using eventually. * Properly use VK_KHR_dedicated_allocation to make some drivers extra happy * Minor refactor of physical device property/feature detection, to allow for more extension use. * More Vulkan validation fixes * Android .nomedia: Don't hide everything under PSP, too harsh. * To avoid strange images in Android gallery, pre-create TEXTURES with a .nomedia, and add .nomedia to the PSP directory.- Update to version 1.7.5~git20190204: * Vulkan: Fix typo, bump shader cache version. * Fix checkbox bug introduced in #11758. Fixes #11761. * Add simple UI for JIT feature disable flags * Reporting: Disable when jit flags are disabled. * UI: Add bitfield checkbox. * Jit: Respect flags for jit types and features. * Core: Add flags to disable jit features.- Update to version 1.7.5~git20190131: * VK: Load the dedicated allocation extension properly (but don't use it yet). * VK: Minor cleanup, turn off unfinished and probably wrong use of dedicated allocation feature * Load a function from VK_EXT_external_memory_host * Update Vulkan headers to SDK 1.1.97 * Reorder stuff to make the compiler happy. * Minor cleanup * Improve the check for Vulkan to check for surface extensions first. * If we lose the Vulkan device, recommend the user to switch to Direct3D11. * Fix silly mistake editing the vulkan image code * Also buildfix for libretro * Remove some unnecessary vkDestroyImage calls. * Fix SDL build * Better handling of swap chain size, add PowerVR hack. Fixes #11743 * Fixes for issues found by Vulkan validation layers, including a common non-harmful perf warning (doesn't fix all cases, but does fix the most common one). * DeleteDirRecursively: Don't leak the find handle on failure (win32) * CMakeLists: fix EGL detection for ARM devices- Update to version 1.7.5~git20190123: * Additional logging * VK device allocator: Support separate memory type per slab. * Fix for weird Xbox B button behavior, see #10948. A simpler change was tested to work by Ruler.- Update to version 1.7.5~git20190122: * Update armips submodule with bugfix. Also lang.- Update to version 1.7.5~git20190116: * Update build-x64.cmd * Added " guards to if not exists * Update to latest gradle, update lang submodule.- Update to version 1.7.5~git20190108: * Remove usage of deprecated function readdir_r (and ugly Blackberry hack diren_large) * Qt: Temporary workaround for #11721 - simply remove the load button (you can still load games from the Games tab)- Update to version 1.7.5~git20190106: * Address feedback * Try to support Qt keyboard input directly. Partially fixes #11653 (nickname crash on mac)- Update to version 1.7.5~git20190106: * Check that allocations in SplineCommon succeed. Attempt at #11660 but not optimistic. * Remove the duplicate * Update Launch Screen.storyboard * Typo * Removed the premade picture * Changing it to import some logo files on the iOS port. * Removing a now unused file. * Added a check to the pointer for memcpy- Update to version 1.7.5~git20190103: * GLES: Detect Vivante GPU, disable vertex range culling- Update to version 1.7.5~git20190102: * Update lang submodule * I don't know why i included it there haha * The new Launch Screen ( to include the logo ) * A new logo file * Configure CMake to include the new logo- Update to version 1.7.5~git20181230: * UI: Check for step debugging on unthrottle.- Update to version 1.7.5~git20181229: * http: Correct typo.- Update to version 1.7.5~git20181227: * http: Report errors reading discs. * Loaders: Refactor chaining to avoid dup code. * http: Add timeout on no response. * Update lang submodule * GLES: Remove FBO_UNUSABLE bug check. * GLES: Move some vendor bug checks to Draw. * GLES: Remove spurious semicolons in shaders. * GLES: Correct fragment precision check. * GLES: Specify glsl version precisely in depal. * GPU: Move dual source blending bug check to Draw. * Vulkan: Limit stencil workaround to Adreno 5xx. * GPU: Track draw in shader manager.- Update to version 1.7.5~git20181223: * GE Debugger: Minor fix step count dialog. * [spline/bezier]Remove unused stuff. * Avoid breaking any alpha-stencil emulation in Adreno bug workaround * Vulkan/adreno: Apply workaround for Harvest Moon issue #10421- Update to version 1.7.5~git20181222: * http: Check for available discs before connecting. * http: Parse port in ipv6 addresses.- Update to version 1.7.5~git20181220: * Minor tweak to the test * GE Debugger: Improve step count dialog. * GE Debugger: Add step count dialog.- Update to version 1.7.5~git20181220: * Update lang * Don't leak the new pipelines * This should finally repro one of the Adreno bugs- Update to version 1.7.5~git20181219: * Android EGL config: Always require 8888, stencil if version >= ICS * Android EGL: Add logging of depth and stencil bits * GPU driver test: Add a third test with depth completely disabled, and rename the others to match. * Display some important information on GPU test screen to make screenshots more useful * Build system updates * Finish up the test * thin3d: Make the stencil ref value dynamic state (all APIs support this directly). * Write rough framework for GPU discard test screen- Update to version 1.7.5~git20181219: * Delete some unused DNS code, just because. * GLES: Simplify depth download shader. * Fix bug in #11681 * Add check for GL_FRAGMENT_PRECISION_HIGH for GLES in stencil code. * thin3d: Remove unused shader language support * Fix ridiculous bug in thin3d.h. Only worked by accidental matchup between shader IDs.. * GLES: Download depth values via shader. * GLES: Move depth packing code to dedicated file. * GLES: Actually support depthless FBOs. * GLES: Use depth textures where possible.- Update to version 1.7.5~git20181218: * Additional raw string shaders * Remove unused and unfinished SPIRV disassembler * Use raw strings for more shaders * ActivateTopScissor doesn't belong in UIContext::Begin. * Remove no-op DrawBuffer::End()- Update to version 1.7.5~git20181217: * TWo warning fixes- Update to version 1.7.5~git20181217: * SoftGPU: Fix crash on garbage index data. * SoftGPU: Respect stencil write mask on test fail. * GPU: Fix curve breakage due to cull flipping.- Update to version 1.7.5~git20181215: * Remove the DisableShaderCache setting, rename the other * VK: Add INI options to disable some vendor checks, and to disable the shader cache.- Update to version 1.7.5~git20181214: * Oops, x2 * Remove outdated TrueColor setting. * Remove "Timer Hack" setting. Untested, probably low usage and unclear utility. * Remove the "Disable stencil test" hack. Doesn't seem to serve much purpose anymore. * Disable precompiled header for all configurations of Armips * Disable SDL check with armips dependency * Update UWP port- Update to version 1.7.5~git20181211: * GE Debugger: Fix dump replay ticks accounting. * Windows: Hide Vulkan/D3D11 if not available. * Revert 6fd1c0e3d and eba6c00 which experimentally disabled dual src on Adreno. * Just make the optimized (non-release) android build debuggable. * Attempt to improve Discord Rich Presence * Update to 1.7.5, update lang * cmake: Fix CMP0077 policy warnings. * cmake: Remove the unused RASPBIAN define. * GL: Realized we need another sanity check in the readback code * Have to increment the build number due to a mistake, so make it 1.7.4 * Update readme for 1.7.3 * 1.7.3 * Revert "Android: Fix Vulkan immersive startup." * VK: Fix sometimes-missing images in GameScreen. Can't load textures from update(). (should probably make that possible though.. later). * Attempt to fix the last very common issue of #11493 by being paranoid * VK: Add extra safety checks around font texture creation. Motivated by some Play crashes. * Core: Fix spurious error on Linux/Unix paths. * Coldbird server moved, so change the default. * ManagedTexture: CreateTextureFromFileData should not return a ManagedTexture object if it fails. * Comply with new Google Play policy that is not happy with "Support PPSSPP" leading to the PPSSPP Gold app in Play * Windows: Check for devices on Windows events only.- Update to version 1.7.1~git20181207: * Disable "Edit & Continue" with VS debug mode.- Update to version 1.7.1~git20181203: * SDL: Allow toggling fullscreen for GLES2 on desktops.- Update to version 1.7.1~git20181203: * GPU: Ignore light params for shade mapping. * Bump shader caches * GE Debugger: Allow relative prim counts. * Vulkan: Avoid using Vulkan by default. * Vulkan: Avoid OpKill workaround with no stencil. * GPU: Avoid stencil emulation if possible. * GPU: Dirty stencil on stencil mask change. * GPU: Avoid a missing virtual destructor warning. * GE Debugger: Allow jumping to a specific prim. * GE Debugger: Track a counter of prims.- Update to version 1.7.1~git20181201: * Madcatz Fightpad SFvTekken / Hori Mini Wired 4 * Io: Ensure sign extension for error codes. * Update lang again * Headless: Fix compare for 16-bit output. * Headless: Allow startup using NULL core. * GPU: Force use of indexes on cull mode flip.- Update to version 1.7.1~git20181130: * Update lang * GPU: Maintain a bit more state in inner-prim loop. * GPU: Properly flip cull on simple triangle lists.- Update to version 1.7.1~git20181129: * Windows: Define menu item text in menu only. * Windows: Translate all items by id, not position.- Update to version 1.7.1~git20181128: * Use compat setting instead * fix ifdef vs if defined * Avoid possible compile error: conflicting defs * yugioh save fix tool- Update to version 1.7.1~git20181126: * SoftGPU: Calculate texcoords in transform. * GPU: Correctly flush on cull mode change.- Update to version 1.7.1~git20181125: * UI: Allow sorting saves by date too. * SaveState: Retry failed state screenshots. * Attempt to fix glsl depal error reported in #11588 (ATI/AMD) * D3D11: Correct shader bounds apply. * D3D9: Correct shader bounds apply. * D3D11: Allow shader blend to self. * GL: Realized we need another sanity check in the readback code- Update to version 1.7.1~git20181123: * SoftGPU: Oops, properly apply pixel mask in 16-bit. * GE Debugger: Fix display of raw normals. * GPU: Use provoking normal for lighting with flat. * SoftGPU: Correct clipping for flat shading. * VK: Fix sometimes-missing images in GameScreen. Can't load textures from update(). (should probably make that possible though.. later). * GLES: Fix render-to-self detection. * GPU: Correct specular exponent zero. * GPU: Skip specular on negative diffuse factor. * GPU: Correct powered diffuse with exp=0. * GPU: Handle spot light with 0 exp or length. * GPU: Skip specular on powered diffuse. * Reporting: Ignore link error with bad shaders. * Attempt to fix the last very common issue of #11493 by being paranoid * VK: Workaround for validation bug (will be fixed in the next Vulkan SDK) * Assert even in release mode if preset shaders fail to compile. This is just to help track down a Play crash. * VK: Add extra safety checks around font texture creation. Motivated by some Play crashes. * SoftGPU: Fix pixel mask on rectangle clear. * handle cullface, help to #10597- Update to version 1.7.1~git20181120: * Coldbird server moved, so change the default.- Update to version 1.7.1~git20181119: * ManagedTexture: CreateTextureFromFileData should not return a ManagedTexture object if it fails. * SoftGPU: Cleanup lighting code a bit.- Update to version 1.7.1~git20181118: * GE Debugger: Support record for more render types. * GE Debugger: Avoid writing 0 sized packets. * GPU: Correct shade mapping with 0,0,0 light pos. * SoftGPU: Normalize 0,0,0 as 0,0,1 for shade map. * GPU: Fix shade mapping in soft transform. * GE Debugger: Fix display event record timing. * GE Debugger: Avoid overwriting in softgpu playback. * GE Debugger: Preserve VRAM textures in dumps. * Vulkan: Allow pre-transition from undefined. * GE Debugger: Fix type conversion warning. * GE Debugger: Fix handling for framebuf changes. * GE Debugger: Record block transfer too. * Core: Fix spurious error on Linux/Unix paths. * Debugger: Prevent invalid address on syscall.- Update to version 1.7.1~git20181113: * [spline/bezier]Unify SubmitSpline/Bezier.- Update to version 1.7.1~git20181112: * Take care of most cases of render-to-virtual-readback-buffer, I think. * Support virtual readbacks for detected-memcpy framebuffer copies, delete MotoGP hack. * Add compat flag to allow virtual framebuffer readbacks (auto-create fb from readback destination). Does not yet work outside VRAM but should fix Digimon Adventure. * No need for fb_normalized_address * Get rid of MaskedEqual * Only mask away Z mirrors if inside VRAM * Remove constraint that virtual framebuffers have to represent VRAM.- Update to version 1.7.1~git20181111: * New spline stuff seems to need bigger storage buffer pools- Update to version 1.7.1~git20181111: * UI: Fix incorrect 3D API. * Discord: Attempt to explicitly cleanup on exit. * Discord: Add cmake option to disable.- Update to version 1.7.1~git20181108: * F-droid lite version - create stubs for Moga Controller * GPU: Dirty frag shader on depth write. * Io: Add missing error code on file open. * CMake: Fix linking X11 when using EGL and not fbdev- Update to version 1.7.1~git20181106: * CMake: Link against OpenGL when using EGL but not GLES2 * CMake: Allow disabling Wayland support with USE_WAYLAND_WSI- Update to version 1.7.1~git20181105: * Framebuffer blit: Clip src rectangle as well- Update to version 1.7.1~git20181104: * Move comments in function to be more relevant * TexCache: Round DXT5 alpha up. * TexCache: In DXT3, don't swizzle alpha. * TexCache: Respect color order in DXT3/5. * TexCache: Mix DXT colors using 2/3 not 3/8. * TexCache: Decode DXT1 zero alpha as black. * TexCache: Don't swizzle DXT1 colors. * Fixes for Unknown * Update lang * Comply with new Google Play policy that is not happy with "Support PPSSPP" leading to the PPSSPP Gold app in Play * Fix database comments ending the cheat import. * MRFIXIT2001: This patch adds a second frameskip setting, one for setting the # of frames to skip, one for setting the % of frames to skip based off fps * GLES: Fix to delete subimage data since #11447. * [spline/bezier]minor fix * [spline/bezier]Reduce static buffers. Get rid of the spline buffer using half of the vertex buffer. * [spline/bezier]minor fix * [spline/bezier]minor fix * [spline/bezier]Get rid of duplication call of Flush(). * [spline/bezier]Surround with namespace Spline. * [spline/bezier]Remove comment. * [spline/bezier]Improve basic spline/bezier structures. * [spline/bezier]oops * [spline/bezier]minor fix(referenced to c1f0e981). * [spline/bezier]Fix GLES texture resolution of HW tess to real 2D to avoid huge width in FF4CC mist dragon morphing. * [spline/bezier]Instanced rendering for B-Spline is very slow when using weak GPU, so disabled it and simplify the shaders. Add changing the quality of HW tessellation. * [spline/bezier]Fix to build for Android(clang). * [spline/bezier]Modify ControlPoints and fix VertexPreview. * [spline/bezier]Put the control points stuffs all in one structure. * [spline/bezier]Modify the weights cache variables to a template variable. * Math3D: Something wrong with hand simd optimization in vec2, so it causes very slow down. However, compiler optimization is faster enough, so removed it. * [spline/bezier]Put the output buffers all in one structure. * [spline/bezier]Improve TemplateParameterDispatcher class macro to a real class. * [spline/bezier]Extract an if-check in the hot loops to the template parameter. * [spline/bezier]Expand loops in the shaders. * [spline/bezier]Precalculate weights in the shaders using the outer product. * [spline/bezier]Sharing textures to avoid heavily textures creation/deletion in one frame. At least, it occurs about 1000 and very slow down in Pursuit Force. * [spline/bezier]Fix around vertex type flags. * [spline/bezier]Improve shader uniforms a bit. * [spline/bezier]Reduce multiplications in the shaders from 16 to 4. * [spline/bezier]Get rid of wasted if-checks at Graphics Processors. * [spline/bezier]Move whole tessellation logic in the shaders into a subroutine. * [spline/bezier]Fix spline weights calculation and get rid of using next patch position in hwtess. * [spline/bezier]Unify hardware tessellation of bezier and spline. * [spline/bezier]Improve hwtess to use cached weights. * [spline/bezier]Unify software tessellation of bezier and spline. * [spline/bezier]Improve HW tess on Opengl to combine 3 textures into a single texture and use it. * thin3d: Add support for texture subimage to GLRender. * [spline/bezier]Fix to build for GE debugger. * [spline/bezier]minor cleanup * [spline/bezier]Fix about quality. * [spline/bezier]Improve template parameter dispatch method. * [spline/bezier]Improve spline tessellation using same as bezier tessellation method.(performance improvements, at least 10 FPS or more) * [spline/bezier]Fix normal generation flag and some minor stuffs. * [spline/bezier]Improve tessellator more generic. * [spline/bezier]Improve bezier tesselator more. * [spline/bezier]minor cleanup * [spline/bezier]Fix bezier texcoord generation. * [spline/bezier]Improve bezier tessellator more. * [spline/bezier]Improve bezier tessellator. * [spline/bezier]Implement weights cache system. * [spline/bezier]Make a spline weights calculation class and precalculate all spline weights at the beginning. * [spline/bezier]minor fix * [spline/bezier]minor fix * [spline/bezier]Make a bezier weights calculation class and precalculate all bezier weights at the beginning. * [spline/bezier]Improve bezier weights calculation. * [spline/bezier]Move bezier patch loops into the function and pre-convert control-points. * [spline/bezier]Move SIMD optimization of vector operations to Math3D.h. Needs rebuild to avoid a dialog confirmation on Visual Studio. * [spline/bezier]Use real tessellation in low-quality with "fixed to 2" tessellation factor. * [spline/bezier]Pre-convert control-points for the accumulation of SIMD optimization, and avoid conversion in hot loops. * Fix namespace Vec2f. * Modify IndexConverter class to functor. * [spline/bezier]minor fix * [spline/bezier]Make a function to build indices. * [spline/bezier]minor cleanup * [spline/bezier]Improve the logic of copying control-points. * [spline/bezier]Make a function to copy control points. * [spline/bezier]minor fix * [spline/bezier]minor fix * [spline/bezier]minor fix * [spline/bezier]minor fix * [spline/bezier]minor fix * [spline/bezier]Managing buffer allocation. * [spline/bezier]Add spline derivative calculation for normal generation. * [spline/bezier]Get rid of divisions in spline weights calculation.- Update to version 1.7.1~git20181102: * Fix libretro Windows build * Libretro d3d11 build fix * Add texture replacement option * add texture filtering core option * Squash of a few libretro makeile fixes * Core: Format CMakeLists.txt consistently. * Qt: Add GLES defines if USING_GLES2.- Update to version 1.7.1~git20181102: * Windows: Check for devices on Windows events only. * Core: Wait for background CPU load on exit. * GLES: Correct invalid scissor handling. * GLES: Add disabled code to run GLES on desktop. * GLES: Detect ARB aniso and cull distance. * Update OpenGL Extension * Fix whitespace * Readability improvements * Implement drawing of offset scale * Implement saner making space for offsets * Make space for offsets (dirty implementation)- Update to version 1.7.1~git20181101: * Update AndroidManifest.xml to 1.7.1 * Update README for 1.7.1 * Update lang yet again * GPU: Cancel shader preload on shutdown/lost. * GLES: Skip freeing program if not allocated. * Vulkan: Wait for GPU ready on shutdown.- Update to version 1.7~git20181030: * Update lang submodule * Savedata: Write only one secure entry. * Address feedback, thanks! * Make more lines translatable in credits * Improve sanity checks for framebuffer readbacks * native: enable backtrace on some BSDs * Update AndroidManifest.xml for 1.7.0 * On older Android versions, densityDpi can't change and is thus not present in the Configuration objects. * Update lang submodule again * Minor README update * Update lang submodule- Update to version 1.6.3~git20181025: * Update lang submodule * Just fix some gradle build warnings. It's using platform 16 anyway (but somehow it all still works back on -9) * Update lang * Update README.md for 1.7.0- Update to version 1.6.3~git20181022: * Yet another try at taking care of the GPD crashes in #11063. * Disable triangle range culling on D3D9 on Intel. Should fix #11477 * GL: Also skip gl calls in ThreadEnd during shutdown on Android. May help #11063 * Turn off gl debug logging again * Fix issue where skipGLCalls_ wasn't respected. May help #11063 * Revert two accidental minor changes * Workaround for bad int behaviour on Adreno / GLES. (no problems in Vulkan). * Fix minor bug in natural.vsh, which caused a gl_error that I ran into when tracing another bug- Update to version 1.6.3~git20181017: * Fix undefined MSG_NOSIGNAL * Ignore SIGPIPE signal receiving data to avoid crash * Added 8Bitdo SN30 Pro (Switch Profile) controller- Update to version 1.6.3~git20181011: * Oh, another gradle update. Why not. * Vulkan validation: Fix issue where we forgot to transition image mip levels past 0 away from TRANSFER_DST_OPTIMAL during creation. * Make sure to save the config while changing backends using the menu bar. Should help #11465- Update to version 1.6.3~git20181009: * Windows: Detect DirectInput devices after launch. * Disable CheckFailedGPUBackends() in debug builds, for convenience * Android: Fix Vulkan immersive startup. * Android: Avoid race on surface destroyed. * Android: Consistently use version constants. * http: Allow pbp and ppdmp files too. * Display: Resched interrupt before vblank threads. * GPU: Reduce log noise while stepping.- Update to version 1.6.3~git20181007: * Instead of the last commit, don't enable the dual src extension at all on Adreno.- Update to version 1.6.3~git20181006: * Experimental commit trying to solve #10421: Blacklist dual src blending on Adreno/Vulkan * Address additional comments. * Avoid calling any GL calls during shutdown on Android. Should help #11063 * Use androidgitversion version 0.4.5 * Remove duplicate library; use the existing one * Disable Android HW scale on TV type devices. * Android build: Enable AAPT2- Update to version 1.6.3~git20181004: * Replacement: Show a warning for bad texture names. * Replacement: Note filename restrictions in ini. * Replacement: Refactor ini template generation. * UI: Implement a glowing border touch control style.- Update to version 1.6.3~git20181003: * Vulkan: Apply Themaister's patch, removing illegal pre-transitions of swapchain images. Fixes #11417 * GE Debugger:Step to curved surface.- Update to version 1.6.3~git20181001: * Windows: Support WASAPI default device switching. * Windows: Support non-extensible float in WASAPI. * Listen to WASAPI events * Cleanup: Split out the WASAPI code into its own file. * Remove redundant minSdkVersion and targetSdkVersion settings from AndroidManifest.xml * UI: Ask for restart when changing graphics device. * Windows: Oops, backwards. * Windows: Detect Windows 10 using kernel32.dll.- Update to version 1.6.3~git20180929: * Core: Report disc read errors to the user. * Android: Update deps; Cannot reproduce #11420 * Android: Remove obsolete files: eclipse * Reduce the number of build variants- Update to version 1.6.3~git20180925: * Fix: prevent linkage error if EGL and GLES is not in one big blob- Update to version 1.6.3~git20180925: * GLES: Properly parse GL extension names. * GPU: Fix a shader unit typo. * Patch up small UI bug on credits screen.- Update to version 1.6.3~git20180924: * Update ffmpeg submodule- Update to version 1.6.3~git20180923: * Update assets/lang submodule * UI: Maintain aspect better on screenshots. * UI: Keep report image at right aspect ratio. * GPU: Dirty more correctly for cullrange params.- Update to version 1.6.3~git20180921: * GLES: Refactor out duplicate code. * GPU: Cleanup outdated flushbefore code. * GE Debugger: Fix tex preview race condition. * GPU: Correct handling of large viewport scaling. * Fix: should close on spec #11404- Update to version 1.6.3~git20180919: * D3D11: Enable depth clamping. * Android: Buildfix for CMake 3.6.- Update to version 1.6.3~git20180918: * Throw in very minor fix (apply readonly to buffer used in tesselation). * Vulkan: Only apply the depth workaround on Qualcomm devices (adreno) * Fix small and scary Vulkan bug (leftover from skinning-removal revert) * UI: Fix occassional issue starting second game. * GPU: Refactor cull range calculation together. * Vulkan: Avoid depth clamp with clip range. * Add: some helpers to compile on ODROID-XU4/XU3 * Vulkan: Implement verex range culling. * D3D9: Implement vertex range culling. * GLES: Implement vertex range culling. * Android: Don't use "hw scaling" on modern devices by default. * Add some links to Discord where appropriate. * Add: allow touch screen events on fullscreen- Update to version 1.6.3~git20180914: * Add TSX Extension * Add some extension * x86: Use OS for cores on Mac OS X too. * x86: Use OS to detect core count.- Update to version 1.6.3~git20180912: * Add: -ffast-math compiler option to anything other then Intel * GPU: Handle bad fog params as large signed vals. * SoftGPU: Support fog on 3D rectangles. * GPU: Apply fog before color test. * GPU: Clamp after color doubling. * GPU: Apply color test after doubling. * SoftGPU: Preserve stencil inside logic op func. * SoftGPU: Avoid extra lookup of old stencil. * D3D11: Fix pow(0, 0) lighting handling. * GPU: Clean up some shader id flag usage.- Update to version 1.6.3~git20180909: * D3D9: Set alpha mask reference in uniforms. * D3D11: Split color test out by component. * TexCache: Fix texture alignment in GLES. * Mpeg: Avoid reading outside available bytes. * Add: Touchscreen event support for SDL2 * Replacement: Cut down on parsing for large inis.- Update to version 1.6.3~git20180907: * Core: Reset working graphics backend on restart. * Core: Don't consider graphics failed on shutdown.- Update to version 1.6.3~git20180906: * Core: Log more on graphics backend failures.- Update to version 1.6.3~git20180905: * Debugger: Fix crash in softgpu with no texaddr yet. * UI: Automatically forget pinned deleted paths. * Core: Add flag to prevent graphics cycling. * Core: Track graphics startup failures and cycle.- Update to version 1.6.3~git20180903: * Android: Buildfix for CMake.- Update to version 1.6.3~git20180902: * TexCache: Optimize DXT5 alpha lerp. * Core: More consistently use directory constants. * Android: Add .nomedia files to system and textures. * TexCache: Avoid masking out alpha for DXT3/DXT5. * TexCache: Optimize DXT3/DXT5 decode to single pass. * UI: Fix state screenshot size on pause screen. * Savedata: Show confirm save without faded icon. * Add: Get user-preferred locale from OS (linux only)- Update to version 1.6.3~git20180902: * Core: Match up NOEN define usage a bit more. * Qt: Buildfix with removed debugger methods. * UI: Move debugger checkbox outside texture area. * Debugger: Add an event for GE dump recording. * Debugger: Refactor to allow simpler broadcasting. * Debugger: Prevent record with no commands. * GE Debugger: Refactor out stepping callback. * GE Debugger: Factor out host calls some.- Update to version 1.6.3~git20180901: * UI: Load post shader names on non-Windows early. * GPU: Clear alpha more consistently from 565. * Set a minimum of 1x1 for Android text bitmap measurement. * Add: EGL info for GLES on Linux * glslang options for vulkan * Debugger: Fix texture readback in GLES. * TexCache: Keep maxSeenV on clut variants in sync.- Update to version 1.6.3~git20180826: * Untested attempt to fix ios/mac discord * Allow choosing to use the system snappy or not. * GPU: Fix typo with wrong type. * UI: Use a larger buffer for realpath(). * Android: When using the hardware scaler, round the size to divisible by 4. Might help #11151 * Enable Discord integration for Mac and Linux.- Update to version 1.6.3~git20180826: * Update gradle version again * add BTP-BD2F joystick gamecontroller map * Ge: Keep jump/call optim when fast memory on. * Ge: Avoid executing invalid pointers. * GPU: Download safe size on next create, too. * GPU: Fix texture handling on framebuf detach. * GPU: Apply logic op in more cases. * GPU: Refactor logic op simulation for better reuse. * SoftGPU: Apply pixel mask for clears. * Headless: Fix graphics compare tests.- Update to version 1.6.3~git20180823: * Core: Fix logging of SCEGE category. * UI: Delay game config/discord until game info load.- Update to version 1.6.3~git20180818: * GLES: Fix direct shader depal on GLES. * Windows: Correctly buildfix Windows XP.- Update to version 1.6.3~git20180815: * Add sceUsbAcc stubs, improves EyePet(fixes endless loop on boot) * Harmonize some VS project settings. * Properly fix the iterator bug, oops. * Fix crash bug when cleaning duplicates of recent files * Revert some of the sln and vcxproj changes, hoping to appease Travis * Discord: Translated some messages * Don't forget to update the other build systems and try to fix the builds. * Basic Discord presence integration. * Add submodules, namespace json to prepare for the addition of rapidjson (sigh)- Update to version 1.6.3~git20180813: * Io: Fallback to long/full path on Windows XP. * Io: Linux buildfix. * GLES: Enable shader depal with Vulkan fixes. * Io: Prevent cur/parent dir in listing of root. * UI: Resolve symlinks when adding things to recent.- Update to version 1.6.3~git20180812: * Update README.md with discord link- Update to version 1.6.3~git20180812: * Savedata: Also validate icon/subdata size. * Savedata: Use size, not bufSize, for icons. * Savedata: Return error when bufSize is too small. * Savedata: Return error codes on WRITEDATA/MAKEDATA. * GE Debugger: Rename depth clamp more places. * SoftGPU: Oops, correct rounding to make sense.- Update to version 1.6.3~git20180806: * SoftGPU: Fix some minor rounding on viewport cull. * GE Debugger: Arrange matrices properly. * SoftGPU: Always clip, without special neg z case. * SoftGPU: Drop verts only when depth not clamped. * GE Debugger: Fix preview crash. * GPU: Rename clipping flag to depth clamp. * Update glslang again. Might fix #11276- Update to version 1.6.3~git20180801: * add libretro hooks for memory pointers to allow usage of new retroarch cheat code searching and rumble-on-memory change features- Update to version 1.6.3~git20180730: * GPU: Optimize > 0 alpha test using discard rules. * Headless: Fix graphics tests for Vulkan/Direct3D. * GPU: Restrict alpha test to zero for dest blend.- Update to version 1.6.3~git20180729: * Savedata: Reset data size when retrying hash. * OpenGL: Fix bug where we could end up calling glUniformMatrix without a bound program. Found by GL debug callback on NV. * GPU: Allow skipping discard when write disabled. * GLES: Avoid discard when we can blend. * Vulkan: Avoid discard when we can blend.- Update to version 1.6.3~git20180721: * Be extra careful about never ever binding null textures when drawing backgrounds. See #11243- Update to version 1.6.3~git20180716: * Update SPIRV-Cross to a fresher version. * Vulkan validation: Ignore the depthreplacing error for now * Update glslang to latest as of 2016-06-26 * Reduce the estimated transform cost of an additional light from 10 to 7 cycles, see #5530.- Update to version 1.6.3~git20180711: * Debugger: Add force resume/kill thread API. * Debugger: Add backtrace API. * Debugger: Add function symbol add/remove API. * Debugger: Add APIs for texture and CLUT.- Update to version 1.6.3~git20180709: * max res x2- Update to version 1.6.3~git20180707: * Just a quick fix for a typo made in last big rewrite of cheat engine.- Update to version 1.6.3~git20180705: * Don't cut below 2 * SaveState: Fix stale state threshold.- Update to version 1.6.3~git20180701: * Debugger: Update to latest armips. * Savedata: Use file hash to validate hash mode. * GLES: Include shader compile status in log/report. * GLES: Specify unsigned shift for Adreno bug. * GLES: Read compile/link errors consistently.- Update to version 1.6.3~git20180629: * GPU: Use hw tess only for hw transform. * GPU: Use HW transform for flat spline/bezier.- Update to version 1.6.3~git20180627: * Made X11-Vulkan default. Provided explanatory toolchain file as overriding is more complex. * Changed cmake option to exclude X11 rather than Vulkan itself. * Added Vulkan disable and forced CPU detection options * Restore the vertexCount to 32-bit, needed in some tesselation situations * GE Debugger:Fix indices memory allocation of bezier. * [spline/bezier]Modify D3D11 hwtess texture buffer to structured shader buffer. * Moved from using enum to enum class * Update AndroidManifest.xml * Update build.gradle * Update gradle-wrapper.properties * Update build.gradle * Added "oldest save" and "slots 1-5" as options for "auto load savestate" * [spline/bezier]Fix tex coords.- Update to version 1.6.3~git20180625: * Savedata: Upgrade secureVersion by default. * Savedata: Map secureVersion modes correctly. * Savedata: Add validation on secureVersion param. * Savedata: Return result codes from Save/Load. * Vulkan: Assert on some creates failing. * thin3d: Cleanup some unused/uninitialized warnings. * UI: Keep rendering UI even while stepping. * UI: Disable stepping on unthrottle touch button. * UI: Fix leak in control visibility screen. * UI: Make touch control visibility more consistent. * UI: Sort touch control visibility better. * UI: Show custom speed toggle buttons. * UI: Refactor touch control config handling. * Core: Allow toggle between 2 custom speeds. * UI: Make sliders able to show disabled. * Core: More consistently use config enums. * Core: Move config enums to separate file. * UI: Add a virtkey for holding alt speed.- Update to version 1.6.3~git20180623: * Debugger: Use Break instead of Stop. * Windows: Separate Pause and Break actions.- Update to version 1.6.3~git20180623: * UI: Interpret "unthrottle" to mean leave stepping. * CoreTiming: Reset CPU mhz on reset. * SaveState: Initialize some memory that is saved. * http: Don't crash on unclean client disconnect.- Update to version 1.6.3~git20180620: * Vulkan: Workaround Adreno discard bug. (#11197)- Update to version 1.6.3~git20180619: * Make HideSaveWarnings global (#11196) * Android: Allow desktop GL if available. * Android: Fix C++ EGL code path with threaded GLES. * GLES: Cut down on use of USING_GLES2. * Vulkan: Workaround stencil upload bug on Adreno. * GLES: Add missing semantics for stencil upload. * GLES: Cleanup stencil upload w/h handling. * native: Avoid an absolute value error. * Jpeg: Avoid signed shift warnings. * GPU: Avoid a switch case warning. * Vulkan: Fix some missing switch warnings. * GPU: Remove some unused fields. * Debugger: Fix some format warnings in udis86. * http: Check fread() result to avoid warning. * Debugger: Update to latest armips. * SDL: Avoid alpha on Mali/ARM devices using GLES. * SDL: Buildfixes for EGL lookup. * SDL: Allow more EGL configs. * GLES: Restore stencil/depth readback for debugger. * Debugger: Add some docs for new APIs. * Debugger: Add APIs to retrieve render image. * Debugger: Allow GPU actions while stepping. * GPU: Screenshot output in BGRA if that's native. * thin3d: Fix requesting BGRA buffers. * http: Discard output buffer on disconnect.- Update to version 1.6.3~git20180616: * Added Gioteck VX2 detection- Update to version 1.6.3~git20180616: * SaveState: Show only after 4 hours. * SaveState: Use latest version if initial missing. * SaveState: Add a setting to ignore warnings. * SaveState: Show warning on old / long use state. * UI: Show warning when in a temporary dir. * UI: Make button padding configurable.- Update to version 1.6.3~git20180615: * GLES: Use accurate GLSL ver in postshader convert.- Update to version 1.6.3~git20180614: * MediaEngine: adjust for AVStream.codec deprecation * GE Debugger: Stall less liberally on GE dump exec. * GE Debugger: Use a class for dump execution. * GE Debugger: Fix asserts when reading debug tex. * GE Debugger: Prevent hang on shutdown.- Update to version 1.6.3~git20180610: * SDL: Start with window hidden. * SDL: Use UpdateScreenScale(). * Qt: Allow for larger screen sizes. * Qt: Toggle fullscreen like on all other platforms. * Qt: Return correct refresh rate. * triangles * fx * triangle fan * cullmode fallback * flush back cull mode * handle cull mode by indices, improve performance for GVGNP, refer to #10172- Update to version 1.6.3~git20180610: * Vulkan: Properly transition stencil/depth for read. * Debugger: Prevent infinite loop on dead socket. * Debugger: Fix bounds warnings in debug mode.- Update to version 1.6.3~git20180609: * Qt: Use Roboto Condensed like on other platforms. * Qt: Remove bundled assets reader. * Debugger: Ignore invalid branches. * Debugger: Add func name and data symbol to disasm. * Debugger: Allow conditions on threadID/moduleID. * Debugger: Allow stepping based on thread. * Debugger: Avoid some lock ordering issues. * Debugger: Add HLE API funcs. * Debugger: Add debug interfaces for threads. * Debugger: Use a lock for memory reallocs. * Debugger: Add some missing memory locks. * Debugger: Add memory breakpoint management. * Debugger: Initial breakpoint APIs. * Debugger: Disasm search API. * Debugger: Avoid asserts in disassembly. * Debugger: Add thread safety to breakpoints. * Debugger: Fix resume not skipping breakpoints. * Debugger: Include assembler API. * Debugger: Poll frequently after stepping. * json: Optimize writing a bit. * Debugger: Use fragments for long chunks. * Debugger: Add stepping to WebSocket API. * Debugger: Add cpu.evaluate method. * Debugger: Prevent crazy disasm range. * Debugger: Add additional encoding/symbol info. * Debugger: Initial disasm API. * Debugger: Lock during startup/shutdown. * Debugger: Add version event for future proofing. * Debugger: Include PC and ticks in stepping events. * Debugger: Add current game info. * Log: Use a separate field for the timestamp. * Debugger: Disconnect on shutdown/disable. * Debugger: Add checkbox to enable remote debugger. * Debugger: Add config for remote debugger on start. * Debugger: Use a counter when entering stepping. * Debugger: Allow pinging current status. * Debugger: Name the WebSocket debugger thread. * Debugger: Add cpu.stepping and cpu.resume. * Debugger: Reorganize state handling. * Debugger: Cleanup, add initial API docs. * Debugger: Allow setting regs to inf/nan. * Debugger: Improve JSON number parsing. * Debugger: Initial register get/set APIs. * Debugger: Minor cleanup in MIPSDebugInterface. * Debugger: Synchronize error events using tickets. * Debugger: Organize WebSocket event handling. * Debugger: Serve a simple log listener WebSocket.- Update to version 1.6.3~git20180608: * Add missing include * net: Use WSAAddressToString for Windows XP. * http: Move web server to core and use flags. * thread: Add a simple thread executor. * http: Correct WebSocket close when code missing. * http: Use a buffer for WebSocket output. * http: Allow selecting a WebSocket subprotocol. * http: Allow fragmented data for WebSocket. * http: Add a simple WebSocket server class. * http: Add some operations to avoid blocking.- Update to version 1.6.3~git20180607: * jit: Remove unused breakpoint code. * armjit: Enable breakpoints. * arm64jit: Enable breakpoints. * Debugger: Run memory breakpoints on mobile. * Core: Remove sleep on stepping. * Core: Wake up inactive waits on game exit. * Debugger: Fix initialization issues. * Core: Process stepping on other platforms. * Core: Refactor stepping and locking. * json: Switch to gason instead of vjson. * json: Avoid encoding inf/nan in JSON. * json: Be precise by default. * json: Fix formatting of nested arrays/objects. * json: Allow formatting read json back to writer. * json: Actually include in build. * json: Escape strings in the json writer. * Debugger: Add assembler to build. * net: Listen on ipv6 and ipv4. * net: Support local ipv6 formatting. * net: Support ipv6 lookups. * Core: Remove some unused coreState funcs. * UI: Use UISTATE_PAUSEMENU while game still running. * Debugger: Consistently handle invalid addresses. * Debugger: Add mutexing to disassembly manager. * Debugger: Lock startup/shutdown for threadsafety. * Debugger: Track a counter when entering stepping. * Debugger: Allow multiple clients more properly. * GLES: Removed unused skip copy code. * GPU: Use unordered_map for tempFBOs. * GPU: Minor framebuffer code cleanup. * D3D9: Reuse BGRA conversion code. * D3D9: Use an unordered_map for offscreen. * thin3d: Convert BGRA8888 to RGB888 for screenshots. * GPU: Remove some unused code. * GPU: Dirty tex when clearing or rendering to self. * SDL: Fix EGL build.- Update to version 1.6.3~git20180606: * UI: Quit sorting when done. * UI: Add option to sort saves by size. * Sas: Correct calculation of VAG end. * Sas: Correct delay in playing samples. * GE Debugger: Cleaned repetition in spline preview. * GE Debugger: Show bezier/spline in preview. * Qt Debugger: Remove texture viewer. * Qt Debugger: Remove memory viewer. * Qt Debugger: Remove display list debugger. * Qt Debugger: Remove disassembly. * Qt Debugger: Remove VFPU dialog. * Qt: Fix build on Mac. * Qt: Mark git-version.cpp to skip automoc. * Qt: Load texture replacement images. * Reporting: Fix typo. * Reporting: Provide suggestions on negative reports. * UI: Show compat rating radios next to each other. * Headless: Default memory stick inserted. * Ctrl: Always mark non-user buttons released. * GPU: Use software transform for flat shading. * GPU: Correct sw flat shading color on Vulkan/D3D. * D3D9: Implement flat shading via state. * D3D11: Implement flat shading in shader. * Rename device choice config options as requested. * D3D11: Allow the user to select rendering device. * If there are multiple Vulkan devices, show a setting to allow the user to choose. * SDL: Move EGL init code into SDLGLGraphicsContext. * SDL: Use fullscreen for mobile/GLES. * SDL: Properly try multiple GL versions. * Update to 1.6.3 * Android: Reformat Java files. * cityhash: disable SSE 4.2 optimization on x86 * Update default firmware version to 6.60. * Savedata: Respect secureVersion parameter. * OpenGL: Similar to NvOptimusEnablement, use AmdPowerXPressRequestHighPerformance.- Update to version 1.6.2~git20180604: * Update lang submodule again- Update to version 1.6.2~git20180604: * save cache before clear- Update to version 1.6.2~git20180602: * UI: Reinit UI texture during game when used. * Fix a GL error when taking a screenshot in non-buffered. May help #11056 * Vulkan image readback: Fix a couple scary cases of wrong argument order in image transitions, leading to transitioning 0 mips * Better return the right pointer. * When creating temp framebuffers for download, size them using bufferWidth/Height instead of width/height. * Never bind a NULL image view in Vulkan no matter what.- Update to version 1.6.2~git20180601: * Update lang submodule * fx depal int precision for opengl es- Update to version 1.6.2~git20180531: * D3D11: Fix crash on screenshot. * Update to 1.6.2 * Fix another of these pesky GL task switching bugs. * More (disabled by default) gl error logging.. * Add a missing virtual destructor, fix a warning- Update to version 1.6.1~git20180529: * sprintf->snprintf. Don't think any of these are likely overflows though. * Thin3D: Handle binding a null texture better. * GLES: Properly restore the pointer to the render manager in more places- Update to version 1.6.1~git20180528: * Update to 1.6.1 * Vulkan: Update shaders/state when dirty properly. * Vulkan: Don't merge render passes if read from. * Minor cleanup * GLES: Refresh the draw context in DrawEngineGLES on DeviceRestore. How did we miss this? * More paranoia from Google Play * Add some paranoid checks guided by stack traces from Google Play * Change some log levels to verbose * Check for a valid screen manager in NativeIsAtTopLevel- Update to version 1.6~git20180526: * Update version to 1.6 in AndroidManifest.xml * Update lang * Android immersive mode: Fix display size stretch and touch screen inaccuracy when toggling immersive mode * Android: In v21 and later, make the navigation bar black using styles.xml * Improve README for 1.6 * Update README.md for 1.6- Update to version 1.5.4~git20180521: * SaveState: Fix rename when undo disabled. * Core: Shutdown properly on load failure.- Update to version 1.5.4~git20180514: * GLES shader depal fix. Again, this is disabled by default so should not affect anything. * Minor code simplification- Update to version 1.5.4~git20180513: * GLES depal (currently disabled): Use high int precision. * Always specify GLSL version 450 when compiling Vulkan shaders. * Let's try to update the sustainedperformancemode in yet another place... See #11018- Update to version 1.5.4~git20180510: * Another directory, plus no need to use c_str * Create vital directories on Android storage permission grant. Should help #11020- Update to version 1.5.4~git20180510: * Allow showing version only for Qt * Allow showing version only for SDL- Update to version 1.5.4~git20180510: * Win32: Not really appropriate to call exit() on a bad filename. Fixes #11030 * Call updateSustainedPerformanceMode from surfaceChanged as well. May help #11018- Update to version 1.5.4~git20180509: * Display: Prevent delaying flips inside interrupts. * Io: Prevent error when file locked for writing. * Android: Only keep the screen bright ingame. * Call updateSustainedPerformanceMode on app focus changes. Should help #11018 * Update to the current gradle version, 4.4- Update to version 1.5.4~git20180507: * Minor optimization * Shader depal (VUlkan): Apply a half-texel offset when bilinear filtering, fixing #11008 * Io: Cleanup file not found error codes. * D3D11: Use a dedicated slot for the depal texture. * GPU: Prevent temp FBOs from overwriting each other.- Update to version 1.5.4~git20180505: * Correct compatibility server link.- Update to version 1.5.4~git20180504: * Buildfix. * Update lang submodule * Fix regression caused by the new depal code for Vulkan. Fixes #10993 * softgpu: remove RIP addressing from SamplerX86- Update to version 1.5.4~git20180503: * D3D11 CopyFBToMemory: Clamp rect to fb size. Last-minute style fix, should really debug where the bad parameters came from. * Windows: If neither OpenGL nor D3D9 is available, offer an escape route into D3D11. * Vulkan: Leave removed commands in render passes. * Vulkan: Keep state on Clear cmds when used later.- Update to version 1.5.4~git20180503: * Vulkan: Discard draws immediately before clear.- Update to version 1.5.4~git20180502: * Revert "Limit the flip delay in the other direction to try to work around #10763."- Update to version 1.5.4~git20180430: * UI: Cleaning loading handling and use tags.- Update to version 1.5.4~git20180429: * Android: Properly reset home on config reload. * thin3d: Report unsupported format conversion. * GLES: Fix game screenshots. * Vulkan: Fix use-after-free crash on shutdown. * Savedata: Report secureVersion param usage.- Update to version 1.5.4~git20180429: * Remove misleading log * Limit the flip delay in the other direction to try to work around #10763.- Restore SDL build- Update to version 1.5.4~git20180422: * Depal: Reapply texture when bounds change.- Update to version 1.5.4~git20180422: * README: Add more to the issue template. * README: Cleanup and move some out to history. * Android: Add missing graphics shutdown calls.- Update to version 1.5.4~git20180421: * Fix build with ffmpeg 4.0- Update to version 1.5.4~git20180421: * Update UWP.vcxproj * Fixed Certification and img issues- Update to version 1.5.4~git20180420: * Oops, meant to commit this. * Disable the loading state string display, creates too much translation work for 1.6 * Android: Buildfix.- Update to version 1.5.4~git20180418: * Conditionally revert "Remove the bad orientation hack. Seems the Nexus 5X bug is fixed."- Update to version 1.5.4~git20180417: * Replay: Skip recording virtual disc reads.- Update to version 1.5.4~git20180415: * add support for File app on iOS 11- Update to version 1.5.4~git20180414: * Vulkan: Fix shutdown crash when device lost called. * Android: Avoid overload shadowing. * GLES: GlPushBuffer was a little too friendly. * Vulkan: Fix cache file error handling warnings. * Vulkan: Fix a log formatting issue.- Update to version 1.5.4~git20180414: * Fix glitch in MGS: Acid perf hack. yeah, slippery slope.. * Shader depal: fix bilinear filter coord * Implement shader depal for GL as well, but disabled by default. * Let's try it on SR2 as well. * Add a queue processing hack for Sonic Rivals too. Now it's fast. * Vulkan: Semi-gross hack that massively improves the perf of MGS2:Acid. * Fix various bugs. * Shader depal: Implement bilinear filtering. * Implement shader depal for Vulkan. See #10908. Bilinear filter not yet implemented.- Update to version 1.5.4~git20180413: * Just add some constants for the GL texture slots. * Vulkan/D3D11: Make some space in the base uniform buffer by consolidating the spline parameters into one variable.- Update to version 1.5.4~git20180412: * Avoid some GL errors on older devices * GL: Add a lot of conditional error checks (normally not enabled) * Some comment fixes and cleanup. * Don't forget to dirty some state after depal. May help #10906 ? * Replay: Fix a silly typo applying analog. * Android: Do the same file_offset_bits checks for pread64 as before. Should help #10901 * Temporary workaround for another IR interpreter crash. See #10897 * IR Interpreter: Add some missing instruction metadata. May help part of #10897- Update to version 1.5.4~git20180410: * Update lang submodule (restore software skinning option) * Buildfix.- Update to version 1.5.4~git20180410: * Inner interpreter safety check - in hw skinning mode, we need to flush if any part of the vertex format changes. * Remove some obsolete checks - software skinning is now supported even if morphcount isn't 1. * Revert "Start removing support for hardware skinning." * Revert "VertexLoader: Remove now-unused weights translation code" * Revert "Oops, fix hardware tess in Vulkan (after removing hw skinning, we need to adjust the binding number)" * Revert "Remove further remains of hardware skinning." * Revert "Remove gstate_c.deferredVertTypeDirty" * Revert "Comment fixes, reindentation." * Fix DecFmt bug * Revert "Further cleanup after the removal of hardware skinning." * Revert "Remove some remains of software skinning" * Module: Fix function hashing typo. * UI: Assert on invalid permission status. * Android: End GLES renderer after emu thread join. * GLES: Defrag using deleter off render thread. * Use tabs for indentation * fix “crash on exit” * allow padding specification, remove NSLog * add updated Obj-C version of SubtleVolume * Android: Avoid pread64 for > 2GB offsets. * Replay: Handle long button presses correctly. * Replay: Initial file handling and control funcs. * Replay: Track replay of file operations. * Replay: Prep side data structure. * Replay: Initial structure for replay functionality.- Update to version 1.5.4~git20180407: * UWP: Fix (or patch up...) a race condition in StorageFileLoader. Might help #10882, fixes some other freezes. * UWP: Remove the rendering backend picker. Fixes #10883, sort of. * UWP buildfix * Update lang submodule * Vulkan: Ease off on the allocator "slab pressure" if texture scaling is enabled.`- Update to version 1.5.4~git20180407: * Vulkan: Increase base slab allocation size. * Vulkan: Report old allocations when enabled. * Vulkan: Add tags to UI textures too. * Vulkan: Track tags on emu textures. * Vulkan: Allow reusing memory more aggressively. * Vulkan: Decimate when there are many slabs. * Vulkan: Add code to track allocator usage info. * Assorted cleanups. Don't assert on no clear mask.- Update to version 1.5.4~git20180405: * Vulkan: Remove the wrapper struct around VulkanTexture- Update to version 1.5.4~git20180405: * Fixes to in-game GPU shutdown/switching. Fixes #10860 * Fix issue in TextureCacheGLES::DeviceRestore * Auto unregister push buffer on deletion. * Auto register new push buffers on creation * Move pushbuffer deletion to the render manager. * Also take control over Begin/End * Minor refactoring moving creation/deletion of GLPushBuffer to GLRenderManager * OpenGL debug log: Filter out some buffer mapping info from the NV driver * More GL shutdown fixes. Partially fixes #10868- Update to version 1.5.4~git20180404: * arm64jit: Fix reg size in jr delay slot path. * Change to int to allow higher supersampling scale. * Add SSAA flag for post process shaders, enforces 2x auto resolution, to be used with blurry effects Also includes a perf. friendly example using simplified gauss filter- Update to version 1.5.4~git20180403: * GPU: Fix s8 norm with skin and morph. * Add "--pause-menu-exit" option.- Update to version 1.5.4~git20180402: * Android: Fix initial start from shortcut. * GLES: Show post-shader compile errors to user. * Vulkan: Show post-shader compile errors to user. * GLES: Show post-shader translate errors to user. * jit: Apply hasSetRounding at compile time. * arm64jit: Update rounding mode on thread switch.- Update to version 1.5.4~git20180401: * arm64jit: Fix a case of R() on unmapped. * arm64jit: Update some comments.- Update to version 1.5.4~git20180329: * Oops, fix mistake in #10834- Update to version 1.5.4~git20180329: * Include renderpass definition in Vulkan shader cache entries, should make it more effective again. * When binding a framebuffer to a texcache entry, delete its texture. Should help #10823- Update to version 1.5.4~git20180329: * Libretro needs core staticly linked even on Android * Fix libretro compile for gles platforms * OpenGL: Fix texture wrapping of render targets.- Update to version 1.5.4~git20180327: * Android: Properly restore screenshots on the Pause screen on task switching away and back. * GCC buildfix (can't use things without definitions in templates). * Make sure the renderpass cache hashmap is never accessed from the main thread at runtime. Should help #10811- Update to version 1.5.4~git20180327: * Fixed the new shader error on OpenGL ES (#10799) * Libretro: update Makefiles. * Libretro: style nits. * Libretro: set cache_context to true, fixes GL and D3D11 context reset. * Libretro: msvc build fix. * TexCache: unit test the quick tex hash. * Libretro: add experimental D3D11 support. * Libretro: update libretro.h * Headless: Quick update to use render thread. * SDL: Fix shutdown ordering. * SDL: Use wstrings in Windows API calls. * Libretro: Declare TARGET_ARCH for ARM before the include flags * libretro: msvc build fix.- Update to version 1.5.4~git20180326: * Don't leave "reduceHash_" uninitialized. Probably won't help #10796 though.. * Don't forget to initialize.. fixes #10802- Update to version 1.5.4~git20180325: * Headless: Add simple GL thread handling. * Quick try on fixing new shader for mobiles that are less forgiving. * PPSSPPSDL: Throttle refresh rate when in menu. Fixes #10445 * Remove the bad orientation hack. Seems the Nexus 5X bug is fixed. * Show chosen postshader display name properly, plus some additional bugfixes. Fixes #10790 * Android: Have haptic feedback ignore the global setting, but default to off. * Remove the last remains of the idea that textures can be efficiently updated instead of recreated. Accidentally fixes #10697 somehow.- Update to version 1.5.4~git20180325: * When listing post-shaders, use the "name" specified in the ini as default, when looking up translations. * Redirect the user to download the D3D9 runtime if D3D9 is not available and they don't want to switch to OpenGL. * Fix updating light constants when light type changes (we handle dir/pos lights differently). Fixes #10132 * Added new Natural Colors PP shader (removed blur) (#10782) * GPU: Count clears during frameskip.- Update to version 1.5.4~git20180324: * Remove "experimental" tag from Hardware Tessellation- Update to version 1.5.4~git20180324: * Remove some unnecessary logging. Fixes #10753 * nits. * Android: Reload the config after getting storage permission, and ask immediately. Should help #10670 * remove all usage of __LIBRETRO__ * Libretro port. * add missing include. * Windows/Vulkan: use the width and height arguments in ReinitSurface when provided.- Update to version 1.5.4~git20180324: * set _WIN32_WINNT to 0x0601 in stdafx.h * Android: Prevent a text bitmap size from becoming 0 on '\r\n'. Fixes #10764 (unless there are more platforms where it's broken...) * Win32 textdrawer: Fix rare crash affecting Patapon 2 in savedata manager. See 10764. * fix most write-strings warning. * remove unnecessary NULL assignment. * fix mingw and msvc cmake builds. * prevent reads of uninitialized memory. * vulkan: perform delete callbacks first since they can also queue deletes. * add missing inclues. * fix return value / plug leak. * prevent use-after-free. * fix va_list reuse without a va_copy. * SaveState: Default undo slots off on mobile. * SaveState: Show undos in save data manager. * SaveState: Keep an undo for each slot by default.- Update to version 1.5.4~git20180321: * Revert "Update glslang to the latest version" to fix #10748 * Enable FlushInstructionCache on UWP, it's been allowed finally. * Landscape Auto for Android * Map SDL controller's `back` button to Sony DualShock 4 V2's share button- Update to version 1.5.4~git20180319: * Android: Restore auto screen orientation. * Buildfix * Vulkan: Improve handling of shader compile failures (don't crash) * Vulkan: Workaround for bug in Adreno shader compiler affecting color tests.- Update to version 1.5.4~git20180319: * Delete some mistaken logging code * Minor improvement in pipeline-to-string (debug) * Vulkan: De-duplicate pipelines when storing cache * Vulkan: Minor logic fixes in the transition elimination * Vulkan: Use finalLayout to optimize away barriers before framebuffer copies. * Vulkan: Get rid of more explicit barriers by merging the finalLayout color transitions into renderpasses. * Add a super focused workaround for the Mali bug, see #10723 * Vulkan: Fix a barrier to be more permissive, there's no outstanding writes from the GPU to wait for. * Merge framebuffer layout pre-transitions into render pass subpass dependencies. * Vulkan Clear-renderpass merging: If a copy step is found that reads from the affected buffer, don't merge the clear into the later renderpass. * Shrink the vertexCount field in DeferredDrawCall to the 16 bits required. * Inner interpreter: Add support for the Gran Turismo hack. * Add another SDL game controller config, fixing #10724 * Pass new vulkan validation layers. Fix math in FindTransferFramebuffers. * Module: Clarify insertSymbols usage. * Module: Hash functions only once during loading. * Maybe slightly safer vulkan detection code. Might help #10732 * Vulkan: Load shaders/pipelines on thread. * OpenGL task switching fix * Do more detailed checks for Vulkan availability. Should hopefully solve #10729. * Remove some unused tracking of whether lighting is used by a shader * Update Vulkan headers to 1.1. Might as well keep up. * Bump GL shader cache version * Don't allow wrapping on framebuffer textures. Fixes GTA on old NV Shield * Update glslang to the latest version * Implement pipeline/shader cache for Vulkan, to avoid shader compile stutters on second and subsequent runs. * Remove some remains of software skinning * Vulkan pipeline: Merge a few property fields to a flags field. * Update lang submodule * Vulkan: Fix bug where we didn't always reset dynamic state after readbacks. * Oops, remove logging * Vulkan: Also check for empty clearing renderpasses later in the frame. * If the first renderpass is an empty clear, merge it into the next one that touches the same framebuffer. Works around #10723 in Wipeout.- Update to version 1.5.4~git20180315: * Vulkan: Add a (disabled) facility to force image layouts to GENERAL, for debugging barrier issues- Update to version 1.5.4~git20180314: * GL: Fix bug where we could crash if a readback happened at the same time as a buffer expansion. * Fix a typo extra " in some header- Update to version 1.5.4~git20180313: * Tiny unification of code. Save the GL shader cache a bit less often. * Fix the loading status. Prettify the loading screen by putting the status and spinner along the bottom edge. * UI: Show more detailed loading status. * Fix crash happening with glGetFloatv on GPDXD devices * Fix VSync on Windows. Should fix #10711 * Sort Vulkan function pointers by use. Might save us a cacheline or two during command submission..- Update to version 1.5.4~git20180312: * Combine the lightAngle and spotCoef float uniforms into one float2. Saves 64 bytes from the light uniform buffer, making it an even 512.- Update to version 1.5.4~git20180311: * Let's not do immediate flips in non-buffered. Should help #10395 * Fixes to vulkan restart logic on Android. Should help #10696- Update to version 1.5.4~git20180308: * Fix #10692 (crash when starting games from command line). Throw in some minor Vulkan fixes as well.- Update to version 1.5.4~git20180305: * MOVUPS to be safe. * Minor simplification in X86/X64 vertex decoder jit * Optimize the "inner interpreter" for God of War character drawing. Speeds the games up by 4% or so. * Move the vertTypeID calculation out of DrawEngine. Need to shorten SubmitPrim as much as possible.- Update to version 1.5.4~git20180305: * Oops, fix hardware tess in Vulkan (after removing hw skinning, we need to adjust the binding number) * Fix indentation mistake, minor cleanup. * Further cleanup after the removal of hardware skinning. * Comment fixes, reindentation. * Remove gstate_c.deferredVertTypeDirty * Remove further remains of hardware skinning. Fixes #10661 * VertexLoader: Remove now-unused weights translation code * Start removing support for hardware skinning. * Remove checks that disabled software skinning if there was morph. * Add necessary decode functions to support morph+skin * Small refactoring in VertexDecoderCommon * Minor cleanup * GLES: Support more buffer mapping strategies. * GLES: Fix force alignment on buffer map. * GL: Use AllocateAlignedMemory to make sure localMemory is always aligned. Fixes #10666 * GLES: Buffer handling cleanup.- Update to version 1.5.4~git20180303: * Qt: Set window title asynchronously. Should fix #10674 * Split out QtHost.h from HostTypes.h * Android: Fix fallback from Vulkan to GL.- Update to version 1.5.4~git20180302: * Turn off the inner interpreter when stepping in the GE debugger. Fix comment. * Fix custom UI backgrounds again by initializing lazily (turned out to be the cause of #10662)- Update to version 1.5.4~git20180301: * Buildfix, warning fixes * Some error handling and assert improvements, trying to understand #10662- Update to version 1.5.4~git20180301: * D3D9/D3D11: Fix GPU feature detection. Enforce accurate depth on nVidia as well, they no longer seem to support reverse depth so it's needed as a workaround. Fixes #10655 * inner interpreter: support skipping regular nops * Qt: Don't call SDL_PumpEvents from the emu thread. Fixes #10660 * b.sh: Add --qtbrew as a shortcut to use a Qt installed by homebrew. * Fix something found by -fsanitize=undefined * Buildfix, oops * GL: Fix depal issue where we forgot to set vp/scissor properly. Update some asserts. * Don't use the inner interpreter when debug recording * Execute_Prim: Add a smaller "inner interpreter" to avoid going back to the runloop during long sequences of PRIM commands.- Update to version 1.5.4~git20180228: * GL: Filter away redundant glEnable/Disable(GL_STENCIL_TEST) * Add an extra check to FindTransferFramebuffers to avoid misdetecting fb blits that end up out of bounds when we perform them. * Add comment trying to clarify shutdown of GPU_GLES, restore the wipe, minor tweaks. Should help #10652 * UWP buildfix? * Minor code/logging cleanups.- Update to version 1.5.4~git20180226: * GL: Don't wait-for-idle when shutting down the PSP GPU, it's the wrong place. Should fix #10652 * Remove duplicate declaration of GPUCommon::CmdFunc * Avoid the most common virtual call when possible. * Unify FramebufferDirty()/FramebufferReallyDirty() for the hw backends * Unify FastRunLoop for the hardware backends. * Unify UpdateCmdInfo * GPU: Unify command table (cmdInfo_) * Virtualize CheckGPUFeatures * Unify DispatchSubmitPrim as much as possible * Unify Execute_LoadClut * Unify Execute_Prim * Unify all the DrawEngine::SubmitPrim- Update to version 1.5.4~git20180226: * Improve a bunch of Vulkan copy-rect asserts by adding more debug info * Minor naming and init cleanups in VulkanTexture * Some log level changes.- Update to version 1.5.4~git20180226: * GLES: Disable buffer mapping for non-NVIDIA. * Vulkan: Remove the old method of uploading images. * Try to be more consistent when initializing vulkan structs. * Follow the spec rules about errors when allocating from descriptor pools * Extract RecreateDescriptorPool()- Update to version 1.5.4~git20180225: * Buildfixes * Separate T3DCreate* into its own header to avoid including Windows.h etc in some cases.- Update to version 1.5.4~git20180224: * Vulkan: Need to count allocated descsets per frame separately from the map, since tess isn't even in-frame cached. * Vulkan: Dynamically grow descriptor pools as needed. Should help #10641 and similar issues. * GLES: Fix texture scaling.- Update to version 1.5.4~git20180222: * iOS: fix hang on exit- Update to version 1.5.4~git20180219: * Qt: Remove old texture debug API. * GLES: Fix unpack misalignment, Qt debugger freeing. * GLES: Properly free when upscaling textures.- Update to version 1.5.4~git20180218: * TexCache: Decimate aggressively with many variants. * TexCache: Decimate CLUT variants more often.- Update to version 1.5.4~git20180213: * Fix issue with Vulkan task switching and resolution changes on Android.- Update to version 1.5.4~git20180212: * Postprocessing: Fix bug where scissor cut off the image if render resolution > display resolution * GL: Need to recompile postshaders on Resized() (which is a bit of a misnomer) * Oops, didn't mean to update the submodules backwards (remains from a bisect) * Whitelist mapbuffer usage to NVIDIA only (should maybe add Qualcomm too), it's murder on Mali * GLES: Fix shutdown while stepping. * GLES: iOS buildfix. * GLES: Android buildfix. * GLES: Use buffer storage and explicit flush. * GLES: Free localMemory later. * GLES: Use buffer range mapping where appropriate. * GLES: Use mapped device memory when possible. * Cheats: Fix a debug assertion. * iOS: Attempt to fix shutdown race condition. * GLES: Prevent race condition on shutdown. * GLES: Wait for queue idle properly.- Update to version 1.5.4~git20180211: * GLES: Use aligned memory for textures. * Global: Fix some type comparison/shadow warnings. * Tiny change to work around internal compiler error (!) in 32-bit builds with latest MSVC update * GLES: Prevent crash on screenshot without buffers. * Windows: Allow GL thread on graphics restart. * Windows: Prevent shutdown lag for non-GL. * SDL: Apply shutdown race condition fix. * Android: Fix race condition on shutdown. * Windows: Trigger StopThread() on shutdown. * GL: Fix clearing alpha on stencil uploads. * SDL: Fix issue with vulkan-to-opengl fallback * Windows: Consistently shutdown the main thread after exiting the message loop. * Improve assert messages in VulkanRenderManager (minor) * For some reason we use DrawActiveTexture in the GL stencil stuff, don't want to disable stencil unconditionally.. * Fix another way the scissor test could accidentally get disabled * Remove the confusing "DisableState" across the codebase * GL: Set a plain render state in DrawActiveTexture, without relying on the caller having called DisableState * Add a simple spinner to the game load screen to not look frozen. * Minor Qt cleanup, force OpenGL since we don't yet support Vulkan in Qt * Buildfix * gl-render-manager: Oops, fix scissor tests after clears * Avoid causing a gl error on startup on core contexts. * Another go at the deleter problem. Still not feeling 100% good about how this works.. but it does seem to work fine. * Get rid of an unused codepath (gl rendering is now always threaded) * GL render manager: Fix bug when setting texture sampler if the wrong GL texture slot is active. Will likely help #10583 * GLES: Fix minor memory leak * Qt: Fix emuthread management to exit cleanly without hanging * Cleanup the Windows thread stuff to work like the other platforms. Not quite perfect yet. * Android: Fix emuthread management to exit cleanly without hanging. Helps with task switching on Android. * SDL: Fix emuthread management to exit cleanly without hanging. * Add an option to use the system libzip, to please grumpy package maintainers. * Always use the bundled libzip to avoid compatibility issues. Should fix #10575 * Noticed that the UWP build has been broken for some time, fix it. * Fix another Qt memory leak * Qt: Prevent some race conditions on shutdown by deleting emugl. * Fix further memory leaks * Move SDLGLGraphicsContext.h to the correct location. Minor cleanup * Minor cleanups * Split the SDL graphics contexts into their own files. * SDL: NativeInitGraphics/NativeShutdownGraphics should run on the emu thread. * Qt: Some cleanup and fixes. Still not working correctly with gl-render-manager. * Temporarily disable symbols on Qt, crashes strangely. * Warning fixes * Fix some memory leaks * Revert "Simpler way to deal with the GL deleter" * gl-render-manager: Use properly scaled scissor rectangle, oops. Fixes higher resolutions. * gl-render-manager: Fix postprocessing shaders. Fixes #10566. Live switching is broken though for some reason. * gl-render-manager: Support scissored clears, as used by the GL backend. Fixes GT. * b.sh: Add a build option for address sanitizer. When enabled, we turn on some compatibility options to make it work right.- Update to version 1.5.4~git20180131: * Rough fix for threaded GL for Qt. * Simpler way to deal with the GL deleter * Minor: Make the Vulkan allocator debug visualizer slightly better looking by adding a border. * Buildfixes * Avoid linking error on MacOSX. * Include order fix. Darn X11 headers. * Debug visualization for the Vulkan memory allocator. Shows some interesting behaviour. * Fix readback color conversion * Fix some accidental extra-indentation * Don't crash on missing readback formats. * Enough JNI/threading hackery to get it to run on Android! Broken readbacks make it crash alot though. * Work towards threaded GL on Android. Now TextDrawer barfs on wrong JNI context. * another whitespace fix * one more whitespace fix * whitespace cleanup * disable the iOS thread before shutting down * use GLRenderManager on iOS * SDL: Oops, only start the emu thread for GLES. * Core: Set thread names when possible. * GLES: Fix segfault on GL 2.x. * SDL: Allow running GL on thread. * GLES: Handle glGetString() on GL thread. * GPU: Fix shader blending recopying. * GLES: Correct shader blending. * GLES: Run ThreadFrame until frame complete. * GLES: Fix race crash on shutdown. * GLES: Reintroduce out of memory checks. * GLES: Re-enable texture scaling. * GLES: Add TODO note for shader blend texture. * GLES: Use linear for high-res FBO tex copies. * GLES: Report errors for link failures. * GLES: Keep the GLRShader desc around. * GLES: Avoid using failed depal shaders if possible. * D3D11: Remove potentially misleading rebind func. * GLES: Skip blend reset after stencil upload. * GLES: Reset blend state on clear. * Reintroduce check for GE_LOGIC_COPY * ES2 buildfix - glGetTexImage is not available * gl-render-manager: Fix updating sampler modes when texturing from framebuffer * gl-render-manager: Fix HW tesselation. Remove 1D texture support, likely no benefit. * GLES: Avoid a shutdown race condition. * Debugger: Fix texture preview in GLES. * GLES: Actually stop the thread on shutdown. * Vulkan: Fix alpha clear on stencil upload. * GLES: Consistently reset state on new steps. * GLES: Fix intra-buffer block transfers. * gl-render-manager: Implement logic ops * GLES: Accept a color mask for clears. * GLES: Prevent writing to gutter in readback. * Vulkan: Correct zero stencil upload fast path. * Vulkan: Fix stencil-only clear for stencil upload. * GLES: Document stencil clearing bug. * GLES: Move stencil upload state into render pass. * GLES: Ensure stencil upload clear in render pass. * GLES: Bind texture on MakePixelTexture(). * More work on shutdown, still hanging though. * Fix for deletes, add some debugging stuff * gl-render-manager: Now threaded mode seems to work fine (and fast!). Shutdown doesn't, though, and there are stability issues. * OpenGL: Now run GL on a secondary thread. Sync issues remain. * Fix use-after-free in shader error reporting * TODOs and indentations * StencilBufferGLES: Move SetNoBlendAndMask to the right places. * Fix goof with the stencil buffer drawing * GL render manager: Improve shader error reporting. * Minor fixes, indentation and comments * Vulkan: Use push_back instead of resize(+1) * Truncate the '\n' from GL debug strings before logging them. * iOS buildfix * Move GL sampler state tracking into GLRenderManager/QueueRunner. * More state dirtying, a comment * Fix terrible drawing glitches when we do sync readbacks. * Assorted cleanup * Rip out async readbacks from FramebufferManagerGLES. They should be implemented in GLQueueRunner, differently. * Remove the old CPU threading remains, start redesigning interfaces. * GL render manager: Simple implementation of synchronous framebuffer readbacks. * Remove viewport flipping where it's not needed * GL render manager: Add some more dirty tracking. * GL render manager: Merge BindInputLayout into BindVertexBuffer. * Fix bug, works on Android now. Don't reuse textures. * Run the depal stuff, seems a bit broken. Add some state filtering. * Scissor fix * Fix showing savestate screenshots (needed mips) * Make sure we set GL_TEXTURE_MAX_LEVEL somewhere. * Fix some texture memory bugs (yeah need to make copies..) * gl-render-manager: Need to actually bind newly created textures. * GL render manager: Various fixes and cleanup including a buffered rendering fix, rect primitive fix * Start moving the framebuffer stuff over to the render manager * Fix more gl-render-manager problems * Kill off the GL state cache * Delete the gl name cache (might resurrect it on the GLQueueRunner side if needed later). Other cleanup and fixes. * Initial texture work. Bugfix indexed drawing * More GLRenderManager * Start messing with the draw engine... * Finish the shader manager (almost) * PushBuffer added. Thin3d works now on top of GLRenderManager, except framebuffers. * Fix clears and textures. Things still broken due to memory overwrites. * First garbage graphics output! * Even more gl-render-manager * More gl-render-manager * More work on gl-render-manager * Begin implementing GLQueueRunner and GLRenderManager * Additional header cleanup * Split Android graphics context implementations into their own files. * Windows: Fix loading files with a long path. * Revert "EditorConfig: Workaround MSVC2017 bug." * Windows: Use sufficient buffer for config file paths. * Windows: Fix a small memory leak. * Experimenally try a new gamecontrollerdb.txt line for 360 wireless receiver on linux. See #10181 * Allow up to 10x window size on Windows. * Windows: Fix extracting UMD block data. * Add taptic feedback on virtual buttons * Don't prevent use of make's long options * Update Inno installer * Check for Vulkan Xlib/Wayland surface support before enabling * Update lang submodule * IR: This optimization is safe when all three regs are consecutive, so avoid disabling it unnecessarily. * Minor cleanup * Use more accurate words * irjit: Remove Comp_ITypeMemLR. * Use more specific words when applicable * GPU: Improve some bezier logging. * irjit: Improve multiple lwr in a row. * irjit: Swap moves when it may allow clobbering. * irjit: Convert lwr and friends to easier code. * irjit: Combine lwl/lwr and swl/swr, like before. * irjit: Handle Left/Right ops in passes. * irjit: Add dedicated ops for lwl/swl and friends. * irjit: Optimize out temp lhs copies.- Update to version 1.5.4~git20180108: * irjit: Skip preloading blocks with jump to 0. * irjit: For debug, return the best block at addr. * irjit: Allow precompiling funcs at start. * jit: Add interface to precompile functions.- Update to version 1.5.4~git20180105: * irjit: Add a safety check for block num overflow. * irjit: Enable more debug UI for block selection. * irjit: Calculate bloat statistics. * Cleanup GetBlockNumberFromStartAddress * Fix that weird unordered compare mode, hopefully * IR: More fixes. Still something wrong with VFPU compares (not caused by this PR). * require iOS 8, add a launch screen * On Linux, can't even include nmmintrin without explicitly enabling SSE 4.2 support. * IR interpreter: Add some braces to allow variable declaration in the switch cases. * Add some more SIMD support to IR interpreter. Mostly just because, but also serves as implementation reference for later code generation backends. * IRInterpreter: Fix bugs in floating point truncation functions * Fix running the CPU test from the UI. * Show IR disassembly in JIT Compare screen * IR Interpreter: Add missing break; to switch case IROp::FSign. * irjit: Encode downcount directly as a constant. * irjit: Embed constant inside IRInst. * Minor fix for previous commit. * irjit: Fix swr typo. * VertexDecoderCommon: A few more cases. * IR Interpreter: Add a comment, minor cleanup, minor SSE stuff. * VertexDecoderCommon: Avoid reading the destination during vertex decode, might be some kind of memory that's not good to read from... * Module: Avoid scanning stubs if possible. * Module: Scan modules with no sections at all. * Module: Correct detection of executable sections. * UI: Fade in loading much slower to avoid flicker. * UI: Actually offset text shadow. * UI: Show PIC1 while loading. * Core: Asynchronously load the main ELF. * irjit: Properly account for delay slots in size. * iOS: ViewController cleanups - delete unused code and properties * iOS: call PROFILE_INIT so we don't crash with USE_PROFILER * iOS: Nix iosCanUseJit and targetIsJailbroken. Move NativeInit call to main so it can take cmd line args. * Remove references to AudioEngine, which isn't used anyway * HLE: Reset latestSyscall on save state load. * irjit: Implement lwl/lwr/swl/swr. * irjit: Add options for compile/optimize steps. * irjit: Add extra temps to make lwl/swl/etc. easier. * irjit: Cleanup some invalid op handling. * arm64jit: Avoid spilling an extra reg for lwl/lwr. * jit: Report blocks with uneaten VFPU prefixes. * Logging: Use AndroidLogger for all mobile devices. * nil out sharedViewController in case bindDefaultFBO is called again * iOS: convert all obj-c source code to ARC * iOS: fix a reference counting bug that may have caused ViewController to never be deallocated * Modernize property syntax and don't use viewDidUnload (deprecated in iOS 6) * Create AppDelegate the standard way instead of in PPSSPPUIApplication init * irjit: Speed up icache block invalidation. * Change iOSCoreAudio from cpp to mm. Explicitly activate the audio session. Always set the same mDataByteSize. * Add AVFoundation to linked frameworks on iOS * Handle iOS audio session interruptions by reinitializing audio * add an include for PPSSPP_PLATFORM * fix cmake when building for iOS in a path with spaces * Fix build on iOS (only iOS 9 and up support thread_local) * Stencil copy: Avoid clearing the depth buffer. * Remove outdated comment. * Oops, forgot these. * Complete the separation of depth and stencil renderpass flags * Start separating depth and stencil renderpass actions, only internally in the Vulkan code so far. * Vulkan: Create renderpass objects on demand. Just a refactoring to prepare for some later features/optimizations. * Vulkan: Use VK_KHR_DEDICATED_ALLOCATION for frame buffers for minor speedup on some GPUs. Check for the debug report extension before enabling it. * Typo fix * Add a bit of logging to try to figure out #10477 * arm64jit: Negate in ADDI2R/SUBI2R as well. * Debugger: Fix hang when viewing invalid RAM. * arm64jit: Statically allocate ra as well. * Profiler: Show the slowest thread's categories. * Profiler: Fix cat display on small screens. * Profiler: Separately track texture hashing. * arm64jit: Free up W23 for static alloc. * arm64jit: Cleanup method names, temp discard. * UI: Fix dev menu scroll on small screens. * UI: Only default focus visible things. * arm64jit: Enable safe memory for lwl/lwr. * arm64jit: Avoid arithmetic movs. * arm64jit: Fix spilling for more than one temp reg. * arm64jit: Use TBZ/TBNZ for vfpu branch as well. * arm64jit: Use TBZ/TBNZ for fp branches. * arm64jit: Use CBZ/CBNZ for zero compare branches. * arm64jit: Handle more imm compare cases. * arm64jit: Use CMN for CMPI2R if possible. * arm64jit: Avoid temporary on variable shift. * arm64jit: Reuse code in I2R funcs. * Dual source blend: Remove bad #ifdef that killed dual src code on Android... oops. Re-enable on nVidia Shield TV/Tablet. Fixes #10136 properly. * arm64jit: Oops, properly init temp locked flag. * UI: Check existance outside of game info lock. * UI: Use atomic flags in game info cache. * arm64jit: Remove unnecessary address masking. * HLE: Replace starocean framebuf clear func. * GPU: Track stats on uploads. * arm64jit: Avoid flushing when mapping as pointer. * arm64jit: Jit lwl/lwr with proper temp regs. * arm64jit: Fix and enable imm lwl/lwr. * arm64jit: Allow ANDI2R/etc. with zero. * arm64jit: Attempt to reuse imms on sw/etc. * x86jit: Fix safemem on WX exclusive. * jit: Skip unlinking blocks on clear. * arm64jit: Autodetect pointerify support. * arm64jit: Allow reg ptr offsets when unaligned. * arm64jit: Allow ARMREG_AS_PTR to be dirty. * arm64jit: Use reg sum for LDR/STR. * arm64jit: Fix an integer truncation warning. * arm64jit: Reprotect fixed code after icache flush. * arm64jit: Remove buggy icache invalidate. * arm64jit: Avoid MOVK elsewhere without pointerify. * arm64jit: Allow static alloc without pointerify. * arm64jit: Skip storing spilled but not dirty. * arm64jit: Only adjust pointers if pointerified. * arm64jit: Allow disabling pointerification. * Module: Reload imports later in save state load. * Android cmake buildfix * GPU: Reset context version on init. * UI: Trigger view recreate on static sized screens. * Display: Avoid limiting FPS without a clear. * Debugger: Defer active symbol updates. * Vulkan: Allow full depth range with depth clamp. * Vulkan: Use depth clamping, where available. * GPU: Match GE saved context better. * Vulkan: Fix fragment depth rounding. * Qt: Fix OpenGL init. * GPU: Reset GPUBackend on graphics init. * GPU: Remove duplicate BACKEND constants. * Check for Wayland headers in CMake * Remove VULKAN_STATIC * Support Vulkan on any Unix * Add support for Vulkan on Wayland * GPU: Avoid memory corruption on bone matrix > 96. * UI: Remove auto-download options. * GPU: Remove FBO auto-download hack. * irjit: Allow continuing from mips break. * GPU: Add quick method for debugging. * UI: Fix graphics API display on start. * Windows: Track minimize as lost focus. * GPU: Reduce depth blits when not updated. * Software: Execute bounding box tests. * Vulkan: Decimate the texture allocator. * GLES: Allow dual src blend on newer Intel. * GE Debugger: Allow enable/disable of prim preview. * GE Debugger: Keep prim preview on pan/zoom. * GE Debugger: Fix preview when zooming. * GE Debugger: Fix some crashes while stepping. * GE Debugger: Save with alpha for PNGs. * GPU: Cleanup some feature flags usage. * GLES: Improve HW tess requirements validation. * Core: Allow more formats for screenshot. * GE Debugger: Allow image export from previews. * Core: Refactor screenshot saving. * Android cmake fix * SDL: unbreak on more non-Vulkan platforms * GLES: Reduce conversion buf size if possible. * GLES: Avoid buffer on GLES2 for h=1 / CLUT. * Vulkan: Cleanup unused code. * GLES: Pack without stride where possible. * SDL: Fix OpenGL init again. Fixes #10424 * Build Vulkan on all platforms, won't be used if not supported. * Get Vulkan going on Linux * Statically link a vulkan loader on Linux. Use to to init vulkan on X11. Unfortunately, it's broken. * Cleanups in PCMain.cpp * WIP vulkan on linux stuff * SDL: really try lower GL profiles & add GLES context support * Vulkan: Fix bug where we'd do the initial layout transition for an image before binding memory to it. Should help the issue uncovered in #10413 * Add missing includes. Remove some more unnecessary #ifdef _DEBUG checks - the debugger is supposed to work in release mode too. * CMakeLists: relocate EGL library name detection * Move QtMain.cpp and PCMain.cpp to more sensible locations. Native isn't standalone anymore... * Remove more obsolete ifdefs * Some ifdef cleanup. * Get rid of the old custom "Event" sync primitive. * Win32: Use the standard thread APIs to manage the emu thread. * Avoid including platform-specific headers in VulkanContext.h * Implement warning when trying to play Ghost of Sparta with a modified CPU clock, as suggested by unknownbrackets in #7411 * Update vulkan headers, add linux .so loader lib for easy builds, like Sascha does. * Fix annoying name clashes (Status is in X11 headers..) * Just some log cleanup * Fix typo causing #10408 * Another buildfix, sigh. Also extend the safe region a little bit to the thing from a couple commits ago. * Add a tiny bit of safety margin to the RipAccessible check. Should be enough for 128-bit SSE data. * Update lang submodule * Oops, buildfix * Move vulkan debug callback out from WindowsVulkanContext into a file that can be shared with other platforms later. * UI: Properly center storage perm prompt. * UI: Use less space with recent + need storage. * UI: Allow skipping transitions on set current tab. * UI: Fix AnchorLayout size when wrapping content. * UI: Pass UNSPECIFIED through on scroll views. * UI: Give ItemHeaders intrinsic size. * UI: Add flex pressure to tab content. * Update bounds in NativeResized as well to fix glitches on layout screens that use it. * Improve very small display on very large surface, And change some variables to constants. * Limit smallest zoom to match it's slider and well. * Respect sticky edge by center option and make it stick from smaller range * Stick display to edges of the screen/window size * Improve display layout editor for zooming into corners, also limit the scale to 10 to match slider. * GPU: Rename GPUBackend setting to apply default. * GPU: Default to Vulkan if possible. * http: Allow sharing automatically on PPSSPP start. * UI: Always clip tab contents. * UI: Clip scissor to screen. * UI: Transition tab strips on select. * UI: Allow negative left/right for anchor layouts. * UI: Add tween for translating anchor offsets. * Windows: Fix UI text measurements with &. * UI: Reset transitions after too long a time. * UI: Translate API on start screen. * UI: Allow translating system info. * Another driver version check change, should help Galaxy A5 2017 on issue #10361 * Force AccurateDepth on, on older Mali drivers which don't handle reverse Z viewports. Should help #10361 * Make a minor correction to Vulkan driver version display. * Store: Maintain icon aspect ratio. * Store: Highlight active item, reselect on resize. * Store: Wrap item descriptions on small screens. * UI: Transition button and item focus/presses. * UI: Add an event for tween finish. * UI: Add delay to tweens. * UI: Show a few more flags in build config. * UI: Show extensions at full width. * And yet another case of the same problem as the previous commit. * Fix another case where we trusted std::move to clear the origin, which is not guaranteed. * Tweak logging and asserts in VulkanDeviceMemory::Destroy * Don't hold the lock when processing messages, only when taking them off the queue. Fixes #10383 * Display: Only reapply state on load. * Display: Reset cycle counter on load state. * UI: Always apply tweens after restore. * UI: Add threadsafety to cache item file loaders. * Loaders: Depriorize disc streaming queue items. * GLES device lost/store fixes * Apply a fix to the ARM64 emitter ported over from Dolphin * Add a comment, revert a reporting change. * UI: Cancel loaders on shutdown. * Loaders: Add cancelation to all file loaders. * UI: Reset touch controls after config load. * UI: Persist tween data on view recreate. * Add missing IF statement for instance rendering check.. * Minor uniform cleanup * Try to fix build with the old Android build system too... * SPIRV-Cross should build on Android now, so remove another platform check. * Use glslang to translate GLSL 1.x postshaders to GLSL 3.0 or later to appease strict GL Core drivers. Should fix #10362 * Update travis config to use NDK 16b * Also update Application.mk for the old build system. * From NDK 16, libc++ is out of beta and gnustl will be deprecated soon, so switch. * Fix another little inconsistency (two uniforms were merged for bad reasons) * Clean up a small inconsistency * Rework GL lost-device to work more like Vulkan. Gets rid of gl_lost manager etc. * Recreate views after boot is done, to workaround #10360 . Not the best solution.. * Vulkan: Add facility to auto-generate mipmap levels. Not yet used. * Vulkan: Show samplers in "shader debug" * Avoid multiple flips per frame, fixes immediate flip for God of War * Add mitigation for games like GTA that never call sceDisplaySetFramebuf * Flip immediately if that's OK. This can save up to a frame of graphics latency, in games that display "immediately" instead of latched. * UI: Show loading message while shaders preload. * fixup! UI: Ensure tweens always complete. * GLES: Avoid hanging while precompiling shaders. * System: Allow GPU to have delayed loading. * UI: Apply tweens on Update(). * UI: Reorganize EmuScreen so it renders on loading. * UI: Ensure tweens always complete. * UI: Add a simple tween class. * UI: Add colorBlend() helper. * Display: Correct max FPS limiting skew. * Windows: Request a core profile by default. * SDL: Use core profile, fixing old Mac GL issues. * arm64: Use LDRUH instead of two LDRBs. * Savedata: Show icon for new saves more often.- Update to version 1.5.4~git20171205: * v1.5.4 * Try to fix iOS builds on the Travis buildbot. #10254 * Replacement: Break the mip loading loop if a level is wrong. Also shrink the log output. * Reject texture replacement mipmaps of the wrong size * Just some debug output for future decisions * Update submodule lang * Also disable dualsrc blend on Tegra K1. Should help #10208 * Missing -lEGL when -DUSING_EGL=ON * Android: Warn if PPSSPP fails to save the config file. * RIFF: Add check for truncated files, cleanup a little more. * Try to protect against bad data in RIFF files (used for menu background audio only) * Even more cleanup of RIFFReader * Kill off more unused code in RIFFReader * Remove write support from chunk_file, rename to RIFFReader * Reformat chunk_file. Don't usually reformat whole files, but this was too ugly to work on :P * GE Record: After recording a frame, log the filename of the output file. * Disable "Accurate Depth" in Burnout games, they have trouble with it on Mali (Z-fighting...) * Vulkan: Allow shutdown with init commands. * Android: Fix race condition on lock/unlock. * Android: Reset immersive after native dialogs. * Vulkan: Swap in more forceful asserts. * Global: Silence some unused declaration warnings. * UI: Fix some virtual override warnings. * Windows: Stop input poll before emu shutdown. * UI: When stepping, clear on initial load. * Android: Fix crash on shutdown/restart. * UI: Fix D3D9 half-pixel offset at 1x. * Clip block transfer destinations. Should fix crash in #10011. Stats: Invent some sort of usage metric for device memory allocators. * Revert "Fix memory-scan bug in VulkanDeviceAllocator that probably causes some fragmentation." * Fix memory-scan bug in VulkanDeviceAllocator that probably causes some fragmentation. * Shutdown fix. * Fix bugs in VulkanImage allocator support * Add another assert, which gets hit.. Hm. Something is wrong.. * Change some Crash() to asserts in VulkanDeviceAllocator * Use a VulkanDeviceAllocator for thin3d textures. Many devices have a hard limit on the total number of allocs and it's unnecessary to have the UI put pressure on that. * Vulkan: Only call EndCreate on the texture if it actually exists.. Though not having one would be bad. * UI: Send prompt results even on back/cancel. * D3D11: Change state caches to DenseHashMaps. * Hashmaps: Fix missing maintain calls in non-GLES. * Fix a use-after-free in sceKernelTerminateDeleteThread * Android: Render text with newlines properly. * UI: Wrap text properly with explicit newlines. * UI: Clean up some unused code and flags. * Hashmaps: Another cleanup. * UI: Avoid pushing a screen on top of itself. * UI: Cleanup common message handling. * UI: Avoid navigation with an active dialog. * UI: Send messages to dialog parents by default. * Hashmaps: Reset count on clear. * GLES: Log shader cache filesize error better. * GPU: Minor cleanup. * Hashmaps: Reset state when growing. * Hashmaps: Change some crashes to asserts. * GLES: Validate shader cache filesize on preload. * GPU: Use more typesafe shader IDs. * GPU: Annotate free shader ID bits. * Update AndroidManifest.xml to 1.5.3.0, just in case anyone is still using the old build system where this isn't automatic. * Update lang * Fix bug in Vulkan non-buffered where clears could extend outside the frame, since Vulkan clears do not respect scissors. * Vulkan: Remove misguided assert about backbuffer clearing mode. * Reporting: Oops, fix module load log line. * Add hotkey to toggle audio and video dumping together in sync. * Add a github issue template. Let's see if this works. * Reporting: Use a different link message on preload. * GPU: Add missing shader id to short desc. * Improve reporting for imm buffer exceeded. Reset the immCount_ every frame to avoid getting "stuck" permanently in case some garbage is executed.. * Try a silly workaround for an otherwise unexplainable crash seen in Google Play Console * Reporting: Don't report with locked CPU speed. * Reporting: Improve bezier/spline morph/skin data. * Try to help Mali 400 shader reg alloc by reusing variables. It's still commonly reported. * Comment, minor cleanup * Reporting: Improve no pos verts message. * Reporting: Skip reporting reused depthbuffers. * Module: Cleanup magic number. * Reporting: Remove unused code. * Reporting: Stop reporting module load versions. * Adhoc: Remove incorrect thread create param. * Reporting: Disallow feedback for fake game ids. * Buildfix, oops * Vulkan: Fix crash bug when post processing shaders failed to compile. * Clean up all the FBOs in DestroyAllFBOs. Missing any can have bad consequences after app switching on Android/Vulkan where we recreate stuff. * Checks and paranoia in response to a crash report.. * Check for HW-transform and through when loading GL shader cache. * Minor cleanup. Add a debug assert in shader ID calculation * Oops:] * Despam a sceDmacMemcpy report. Happens in Naruto Shippuden: Ultimate Impact, accordint to reports.- Update to version 1.5.2~git20171201: * Clear postprocess confusion in d3d9 backend by hiding the option:] * Vulkan: Report more info on texture from target. * GPU: Try to avoid FB download without an FBO. * GLES: Report shader errors with shader desc. * Add some debug asserts, useful for debugging shader mismatches locally (though haven't found any..) * Module: Stop reporting bad magic numbers. * Memory::Memset: IsValidRange is a better solution. * Fix minor discrepancy in shader ID calculation, I don't think this will fix anything though. Bumping shader cache version and doing minor cleanup too. * Avoid wrapping when shifting down the audio after scaling by a 20-bit value. Fixes #9967 * Add sanity check in Memory::Memset * Still seeing asserts in this function, weakening remaining to debug-only.. but these really shouldn't trigger. * DX9: Revert a bad optimization, hopefully fixing #10205. Vulkan: Add a missing check.- Update to version 1.5.2~git20171130: * Add some comments. * Oops;p, I always mess this up. * Change some other substr used with cheats and smuggle a fix for another problem * Change str.substr(x, 1) == "y" to str[x] == 'y' * Fix a cheat menu crash with invalid cheat name. Also stop #comments from being removed by cheat menu. * VKRFramebufer: Just some checks to be slightly safer in case creation failed.. * Fix UI crash when keyboard navigating out of popup list. * Can't call functions through known-nil pointers, even if they don't touch local data - LLVM's optimizer might have done something stupid. * Fix a java exception around the GPS stuff * Vulkan: Avoid duplicate image pre-transitions (actually eliminated later anyway, but a small saving) * Vulkan transitions after render: Add a missing case that seems like it could be common? * Avoid an assert in ARM64 emitter, seen in Google Play crash logs * Move pushbuffer map/unmap to the .cpp file to avoid inlining (for stack traces) * Crash in a more appropriate place if missing a drawcontext (happens on really weak devices only) * Fix another possible Vulkan shutdown bug * Loosen up some asserts that seem to trigger unexpectedly... need investigation. * Crash reports from 5% rollout of 1.5: Make some asserts dbg_asserts for now, try to fix an issue with framebuffers when postproc is enabled. * Try to get androidgitversion to behave. It thinks the build is dirty when it's not. * Add privacy policy link to app, as required by Google Play since we use the CAMERA permission now. * Update AndroidManifest.xml to 1.5.0 * Update lang submodule- Update to version 1.4.2~git20171128: * Readme for 1.5: Small rewording * Coldbird's up and running again, restore the proAdhoc default. See issue #9984 * More README updates * More 1.5 README fixes * Update the README for 1.5. * Fix a text overdraw problem on the title screen on very small displays. * Fix the fix for Thrillville. See #7459 * Add ability to simulate a few kinds of Vulkan initialization failures, to test the GL fallback. * Minor error checking improvement * Android: Call setDisplayParameters early with the display w/h in pixels. Without this, was defaulting to 1x rendering on S8 which is silly. * Windows: Avoid UWP for desktop api family. * UI: Fix alphaMul clamping. * Kernel: Fix delete thread null check. * Global: Fix some warnings. * Windows: Fix error formatting with % signs. * GPU: Fix block transfer write breakpoint. * Just reduce some log levels * Unbreak save states, fix other minor issues from review * Fix some comments * Add safety check. * Hack that converts immediate draws to through-mode draws. This won't work correctly in all cases - but it's enough for Thrillville which uses it to clear only. Works around #7459. * Process immediate draw commands. Not yet sending to graphics backends. * Fix D3D11 push buffer overflow * Fix the prefix problems on ARM 32-bit as well. * Core: report Debian GNU/kFreeBSD separately * Common: implement GetExeDirectory on NetBSD * ARM64 JIT: Fix additional VFPU prefix problems * Fix JIT bug in ARM64. Fixes #10183 * Vulkan vertex cache: Fix memory leak * Fix _assert_ on Android to assert properly * Revert "Temporary hack (see #10163): Ignore the VK_ERROR_INITIALIZATION_FAILED from vkQueueSubmit." * Temporary hack (see #10163): Ignore the VK_ERROR_INITIALIZATION_FAILED from vkQueueSubmit. * UI: Minor pause screen cleanup. * UI: Draw actual, not aligned, text width. * UI: Clear font bitmap after aligning size. * When drawing text using our truetype backends, round coordinates to pixels. Fixes #10180 * Fix text width measurement on Android when there are spaces at the start/end of the string (bounds doesn't handle that). Fixes 10174 * Get rid of collision-prone font cache keys. Stress the font cache a little less on slider dialogs. * Yet another buildfix, sorry :/ * Oops, android buildfix * ARM buildfix * Allow loading graphics dumps (*.ppdmp) through the regular UI. * Add a hidden debug option [Graphics]GfxDebugSplitSubmit to try to narrow down some Vulkan issues, see #10163. Also improve some asserts. * Make our release mode asserts actually fire properly in release mode again... * Android: Use __android_log_assert facility to get pretty message-asserts into crash dumps. * Fix gl scissor rect issue. Fixes #10119 * Cleanup GPU vendor detection a bit, use it to avoid the issue mentioned in #9545 * Add a missing break that would explain the odd AUTO mipmap test results on D3D11 and Vulkan... * Disable the DisableAccurateDepth compat flag on AMD/Vulkan, see #9545. Ugh. * Android: Fix #9697 where we'd hang if we lacked permission and got a filename as a command. * Android: Update to gradle 3.0.1 * Workarounds for issue with "accurate depth". See #9545, #10087 * Update armips to latest. See #10161 * The UNKNOWN(3) mip selection mode seems to act like CONST. Keep that working. * Fix message asserts on Android. Add more of them to check things in Vulkan code. * Refactor: Unify DecodeVerts and move ComputeNumVertsToDecode to Common * Vulkan: Break apart DecodeVerts * GL: Compute "availableUniform" when generating shaders instead of by querying. * GL: Compute the attrMask while generating the vshader instead of querying. * Move aniso to the sampler cache key. * Disable anisotropic filtering in headless, screws up mipmap test * Cleanups * Fix headless to work better in vulkan mode * Make test.py python3-compatible, print out command lines better. * Attempt to unbreak D3D9 mipmapping (still disabling SLOPE mode) * Buildfix, update comments slightly * Share UpdateSamplingParams between D3D11 and Vulkan. Support lod bias in Vulkan. * Properly zero samplercache keys before filling them out. * Mipmaps: Disable LOD bias in slope mode as that's not how it works.- Update to version 1.4.2~git20171118: * Remove trailing whitespace from CMakeLists.txt * Vulkan: Fix stencil clears to a specific value. Should help #10150 * Silence travis gcc version errors.- Update to version 1.4.2~git20171117: * Remove wrong comments * GPU: Advance the vertex pointer after BBOX vertices are sent. Fixes #6554, finally! * Win32: Improvements to vulkan init error handling * Temporarily turn off Vulkan threading on AMD, see issue #10097. * Vulkan: Forgot to enable our various depth rounding features. * Vulkan: Flush at display list waits. Fixes #10095 * Minor cleanup, and more terrifying orientation hackery * Android: When creating shortcuts, put the file path in data, not in Extras. * Fix the "vulkan not found" message on android. Fixes #10034 * Make remoteiso_subdir and server editable on Android. Fixes #10142. Really need a better mechanism for these fields. * Workaround orientation bug in Android when unlocking the screen. * Unify RebindFramebuffer, mostly. * Vulkan: Fix bug where shader blend texture overwrote normal texture binding. Fixes #10135 * Update .gitignore for libretro builds. * Fix headless to work better in vulkan mode * Make test.py python3-compatible, print out command lines better. * Vulkan screenshots: Fix R/G swap bug. Thanks unknown. * Make sure the device supports transfers from swapchain images when taking screenshots. * Windows/Vulkan: implement screenshots. Something is iffy with the red/blue swap though... * Vulkan: Dual Src blending strikes again! Disable it on nVidia X1 (Shield TV) due to driver bugs, sigh. * Vulkan: Show the preferred depth-stencil format in the feature list. * Just more accurate feature flags for Vulkan. * Headless: Prevent segfaults with Vulkan. * Headless: Fix crash with null GPU. * Links from the UI: Change from http:// to https:// wherever possible. * Add missing ID for CTTR compat hack. * Fix Memory Leak :D * spaces->underscores:) * Fixes problem switching between non-through triangles and rects. Helps a small part of #6554 * More duplicate code removal * Small changes. Thx [Unknown] * Change KernelTimeNow to KernelTimeNowFormatted and return nice timestamp. * Requested changes. * Blah;p. Buildfix. * Fix linux build. * Add an option to allow resetting video/audio dump on save/load state. * Use gameID and emulated timestamp for Avi/Wav dump filenames. * Fix texture conversion. * Vulkan: Use optimal alignment for texture uploads. May help stutter in #10105 ? * Kill off more unused duplicate code * Oops * Delete unused duplicate functions * Fix annoying little flicker when starting a game. * Vulkan shader view (debug): Add a simple textural representation (incomplete) of pipelines * Vulkan: Make sure to clear the pipeline key to avoid padding bytes causing us to allocate duplicate pipelines. * D3D11: Similarly to the last vulkan commit, don't create lots of dupe vertex input layouts * Vulkan: Fix bug where we ended up creating duplicate pipelines even if vertices decoded to the same format, if they were created from different formats. * DevScreens: In shader viewer tabs, show the number of each shader type. * Unify Execute_Bezier and Execute_Spline * Minor cleanup, fix a comment. * Vulkan: Minor validation error fix * Nitpicking! Correct minor version for non Nvidia. * Win32: Add (debug) to window title in debug builds * Fix driver version display on Vulkan. Enable dualsrc blend on newer AMD drivers. Fixes #10109 * SoftGPU: Oops, fix silly typo. * Vulkan: Remove experimental warning. * Vulkan: Cut down on asserts during init. * TexCache: Add NEON alpha checks for Vulkan. * TexCache: Simplify CheckAlpha funcs and SIMD. * TexCache: Check alpha before scaling. * TexCache: Remove simple 0/1 alpha check. * Vulkan: Avoid checking texture alpha after scale. * Fix bug where readback buffers would be created too small sometimes. Should help #10098 * Vulkan: Tweak stencil value from clears. * Vulkan: When deriving stencilref from color, don't forget to update the value.- Update to version 1.4.2~git20171112: * UI: Typo fix. * Buildfixes for Android * Vulkan: Implement post-processing. The Vulkan backend is now "feature-complete", and GL is now legacy :P * Vulkan: Speed up and simplify hardware tesselation by using storage buffers. * hwtess: Shrink Vulkan UV textures * Make the interface to hw tess slightly more flexible. * Vulkan: Use a device allocator for tesselation data textures. Add comment about better solutions. * Vulkan: Support wide lines if available on the GPU. * Vulkan readback: Resize the readback buffer dynamically as necessary. * SoftGPU: Add a clear mode fast path. * Debugger: Prevent clear while stepping. * SoftGPU: Thread by width for wide polygons. * SoftGPU: Fix crash when stride is 0. * Vulkan hw tess: Assorted minor fixes. Works on Mali now. * Vulkan hw tess: Use pushbuffers instead of temp images to upload data. * Vulkan hw tess: Don't reuse the same dynamic texture for multiple draws, not safe. * Remove unused pointer. * Vulkan: Noticed a framebuffer refcount leak, and changed my mind regarding those :) Let's do it this way instead. * Reduce a ERROR_LOG_REPORT to a warning (vfpu branches in delay slots) * SaveState: Avoid clearing shaders in all backends. * D3D11: Clear input layouts on shader clear. * D3D11: Avoid clearing shaders on load state. * SaveState: Fix use-after-resize iterator. * Vulkan: Enable the "accurate depth" codepath, using the same formula as D3D9. * Android: Cleaner way to avoid double-resizing the backbuffer. * Fix blackscreen when resolution is set to auto. Fixes #10081 * Experimenally disable dual source blending on AMD too for Vulkan, see #10065 * MotoGP: Compat hack to disable framebuffer readbacks. * Buildfix 32-bit * Ditch a silly vertex count limit that only makes sense for GLES, so move it there. * Fix race condition. * Fix a few more device-loss bugs. * Avoid double-initializing the Vulkan backbuffer on startup. * Logging improvements, avoid resetting the Android text drawer unnecessarily * More minor vulkan fixes and cleanups. Don't actually call "Resized" if the size stays the same. * Change Android logging ID from "NativeApp" to "PPSSPP" * More logging and tweaking * Vulkan: Remove duplicate depalShaderCache, fix a number of instances where we didn't use the deleter properly. * Keep the draw context up to date in a bunch of places. More logging. * Vulkan: Improve init/shutdown logging on Android. Fix a bug where we'd not run InitDeviceObjects on GPU_Vulkan sometimes. * Fix some ports * Upgrade glslang to a fresh version (used to compile Vulkan shaders). Might help #10065 ?) * Ooops * Vulkan: Disable dual source blending on Intel GPUs, fixes #10074. * Show textual names of Vulkan GPU vendors * Improve Vulkan device selection mechanism to prefer discrete GPUs * Cleanup gradle output. * Cheats: Fix pointer command count offset. * Cheats: Clamp pointer command data to avail. * Fix 0x6 code types * Vulkan: Apply simple workaround for Mali driver bug (see #10070), and minor cleanup. * Fix some minor things found by running Sizer on PPSSPP * Cheats: Enable for any non-zero number. * Disable lwl/lwr on ARM64 JIT again. Seems b9b2656e9313 broke things, see #10020 * Count readbacks in a frame and show in GPU debug stats. * Cheats: Split parsing and execution. * Try harder to free up memory from the Android native font rendering system. Might help #10069 * Vulkan: If acquiring a frame fails (happens sometimes during window resize), skip swapping the frame. Should help #10063 * Vulkan: Wait for orderly thread stop on resize. * Vulkan: Fix deadlock on resize. * Vulkan: Some error handling improvement. Might get us a clue for #10065 * Vulkan: The validation layers don't like zero-size blits. * Vulkan: Better way to make sure we bind the backbuffer at some point. * Vulkan: Convert depth format on readback. * Vulkan: Show textures in GE debugger. * Vulkan: Add texture image readback. * Vulkan: Fix non-16 bit indexed drawing. * Vulkan: Allow clearing the backbuffer to any color. * D3D11: Show FBO-as-texture in GE debugger. * TexCache: Warning fix. * Use W^X on OpenBSD. * Don't use "threadsafe events" for Ge stuff. * Vulkan: Fix leak in WipeQueue(). * Turn on multithreaded vulkan * Remove/deprecate GPU tick sync * Get rid of GPUCommon's "Internal" functions. * Delete ProcessEvent and the GPUEvent enum * Delete GPUCommon::ScheduleEvent * Get rid of a bunch of sync stuff that's no longer needed. * Get rid of the sync around curTickEst * Delete the mutex in GPUCommon. * Vulkan: Fix framebuffer leak. * Remove the setting to run the display list interpreter on a separate thread. * Vulkan: Correct logicop dirtying. * Vulkan multithread: Fix race condition. * TexCache: Detect textures in FBO gutters. * GPU: Properly Release() FBOs. * SaveState: Correct free on error and uncomp format. * SaveState: Use malloc to avoid Android OOM crash. * Vulkan: Make sure backbuffer is bound for UI. * Vulkan: Resignal unexecuted fences on thread stop. * Vulkan: Wait for queue idle in DestroyBackbuffers. * GPU: Restore initial readback on output. * Vulkan: Refcount framebuffer deletes. * Vulkan: Account inside frame from push side. * Add missing Google Maven repository * Buildfix again. Should fix #10046 this time. * Unify a little bit of depal code. * Vulkan: Fix bug in depal causing Sonic Rivals to be grayscale. * Minor depal state dirtying fix * Add include. Will hopefully help #10046 * Cleanups and fixes around Vulkan stencil upload. thx unknown * Should be bufferWidth here, not width. Thanks unknown. * Vulkan: Fix a comment. * Vulkan: Allow sync when using threading. * Vulkan: Fix out-of-sync frames on threading. * Vulkan: Trigger condvar only at frame end. * Vulkan: Fix segfault on swapchain fail. * Fix issue in framebuffer size calculation when viewport is bogus in through mode. Fixes #10043. * Tiny cleanups. * Vulkan: Minor fixes. * Stop leaking framebuffers on shutdown. Fix other shutdown issues. * Minor optimization. * Remove some code duplication * Vulkan: Implement stencil upload (for Star Ocean).- Update to version 1.4.2~git20171101: * Small fix for a bad block transfer in Soul Calibur * Fix bug in Vulkan's vertex shader generator, causing stretched characters in Jeanne D'arc. * DenseHashMap: Speed up clearing. Became more important since I had to disable keeping descriptor sets around between frames. * Complete a comment. * Vulkan: Fix colors for low-bpp depal (actually fixing the shadows of ff-type0) * Make VulkanTexture "immutable". * Add some disabled code to submit "init" command buffers separately to the queue for debugging. * Always recreate DrawPixelsTex to avoid inter-frame races. * Use the global curFrame counter. No need for a vector for pushing cmdbufs. * Add a QueueRunner logging facility. Set up a subpass dependency for the backbuffer pass. * Add and update some comments. * Vulkan: Make backbuffer transitions part of backbuffer render pass. Optimize depth buffer memory operations. * Decimate descriptors every frame until I find a better solution. Fixes flicker in videos in several games. * Remove disabling of validation warning. It works. * Vulkan: Fix depal and shader blending. * Vulkan depal code now passes validation, but produces black. * Implement the rest of Vulkan framebuffer depal. Not yet working though. * Some reorganization. Start implementing framebuffer depal for Vulkan. * Delete superfluous bind of temporary render target on creation. * Implement GetFramebufferAPITexture for Vulkan- Update to version 1.4.2~git20171029: * Share the conversion code between vulkan and D3D, fixing the missing format thing. * Color-convert directly during the readback, saves a copy. Like we already do in D3D11. * Revert most of the last commit - will do it differently. * Use the CPU color conversion from GLES for readbacks in Vulkan (and D3D11). Fix bug. * Fix Vulkan framebuffer readbacks, as long as they're in R8G8B8A8. * Vulkan: Rough untested implementation of synchronous readbacks. * VulkanRenderManager: Split out BeginFrame and EndFrame from Run * Comment cleanup * Refactor: Split out VulkanQueueRunner from VulkanRenderManager * Forgot to update the Android target version here to 26. * Another buildfix * Fix integer overflow affecting very large draw calls * More buildfixes, warning fix, memory leak fix * 32-bit android buildfix attempt * Bump descriptor set limits, which became insufficient with the addition of tesselation (should really use separate big desc layouts for them) * Remove misguided hack. * Warning fixes * Remove a bad check making us use the wrong way to copy depth buffers. Add a cap so we can try to unify BlitFramebufferDepth later. * Assorted fixes * Fix (some) crashes on blits. Validation issues remain. * Forgot to add the CMakeLists.txt change to the last commit. * Warning fixes, CMakeLists.txt/Android.mk fixes * Fix some resource leaks and excessive logging in VulkanRenderManager * Clean out some obsolete code * VulkanRenderManager: BindPipeline should really be its own command. Tighten up some image transitions. * Improve synchronization, though there are very weird issues. Possibly need to run the swap chain from the thread that created it? * Avoid re-binding pipelines. * Let's try a mutex. Doesn't completely solve the problem though.. * Make sure not to begin and end the init command buffer on different threads. * Vulkan: Don't forget to specify stencil load op in render passes * This makes a little more sense, but still hangs (frameAvailable = true while stuck on condvar) * Synchronization is HARD. need a rethink, methinks. * Move the VulkanRenderManager stuff to thin3d, fits in better there. * Rendering basics now works. * A multitude of fixes. The UI now works correctly, though of course ingame still broken. * It builds! With some shortcuts, of course. * Use RenderManager for thin3d stuff * Initial work on render queue manager- Update to version 1.4.2~git20171026: * Update gradle files to Android Studio 3.0 defaults.- Update to version 1.4.2~git20171024: * Automatically scroll textboxes when the caret ends up outside. Fixes #10026 . * Fix issue with caret position in text boxes caused by a bad hash function. Fletcher is 2-bytes-at-a-time and thus very inappropriate for short strings. * Can't use the camera stuff on Android versions before 11. Fixes #10029.- Update to version 1.4.2~git20171023: * Separate -Bsymbolic Shared linker flag * Ops typo * Better path fix x86_64 android- Update to version 1.4.2~git20171022: * Comment and typo fixes. * Vulkan: Fix silly mistake in blend constant checks, thanks Unknown.- Update to version 1.4.2~git20171021: * Bit more Vulkan barrier cleanup. * Various Vulkan image transition fixes and related * More work towards passing 1.61 Vulkan validation layers * Initial work on passing the latest Vulkan validation checks. * Don't call functions in asserts, they get compiled out in release... * Allow D3D9 context creation to bail if shader compilation fails (D3D9 runtime not installed). * Have GetFramebufferDimensions return the backbuffer size for null in all backends. * Another minor cleanup (DescribeCodePtr) * Unify and move around code to cleanup some debug accessors * Unify GetFramebufferList() (trivial) * Unify DownloadFramebufferForClut * Remove more dummy code from Vulkan backend. * Unify FlushBeforeCopy. Remove old dummy methods from Vulkan framebuffer manager. * Add some safety checks. Fix some inadvertent Y-flips (bit hacky). * Unify some more framebuffer functions. Leave the GL stuff alone for now due to async. * Unify (well, almost) GetOutputFramebuffer (D3D11/GL) * Unify GetDepthBuffer/GetStencilBuffer in GL/D3D11- Update to version 1.4.2~git20171017: * Minor refactoring of framebuffer readbacks. * Start moving PACK_ALIGNMENT into SafeGLReadPixels * Minor OpenGL refactor. * More format support in thin3d GL * Move GL readback to a Thin3D abstraction * Get rid of BindFramebufferForRead * D3D11: Move to CopyFramebufferToSync where easily possible. * Unify GetFramebuffer in GLES and D3D11. * D3D11: Fix a bug, add depth/stencil support to CopyFramebufferToMemorySync * Will fix Android-x86_64 cmake * restructure some flags x86_64 android * Re-enable gradle x86_64 android build * Address review comments. * Buildfix * Remove comment, add check. * RPI: use new vendor graphics library names * Add a controller profile for X360 controllers on RPI, fixes issue #10019 * Update lang submodule- Update to version 1.4.2~git20171015: * Windows: Fix over/under write for multibyte chars. * Savedata: Handle disk full properly in GETSIZE. * Gamedata: Fix savestates for data install. * OSK: Limit allowed keyboards based on input mask.- Update to version 1.4.2~git20171011: * UWP buildfix. See comments in #9575- Update to version 1.4.2~git20171009: * Extra safety when switching GPU backends, fix possible Vulkan shutdown issue. Should help #10005- Update to version 1.4.2~git20171004: * Added default control pad mapping for control pads not found in SDL's game controller database file. * Fix savestates from before 1.4.2-420. Fixes #9998. Unfortunately this also breaks states between 420 and 468, so please save normally before upgrading if you were using one of those. * Add ini-only "Savedata Upgrade" setting.- Update to version 1.4.2~git20171002: * Add additional button defines. * Finish making extra psp keys mappable. * Remove unnecessary ifdef. Thanks Bracket-. See #9548 comments. * Oops, forgot this one. * Fix typo causing Y axis in joystick tester not to be mirrored correctly if backwards. Should fix #9300 * Add Horipad One config. * gamecontrollerdb.txt: Add 8Bitdo NES30 Pro mappings for Linux * Reorder SDL init a bit, allowing us to read the fullscreen option early enough to fix #9086 * Vulkan: If there are no GPUs available, fail properly instead of asserting.- Update to version 1.4.2~git20170928: * Fix the build on the buildbot by avoiding fancy new Java features. Fixes #9979 * Don't default to coldbird adhoc server, it doesn't run anymore (?)- Update to version 1.4.2~git20170923: * GLES: Add OpenGL 3.x core profile support. * GLSL: Set extension flags for elided core exts. * GLES: Android buildfix. * GLES: Allow hwtess for GL 3.1 w/o shader4. * Update lang submodule- Update to version 1.4.2~git20170921: * Headless: Add support for SDL. * GPU: Reset shader state on shader reset. * Headless: Reduce some duplication. * Headless: Oops, call SDL_Init().- Update to version 1.4.2~git20170914: * add support for smart keyboard * map '`' to back instad of esc * forget to modify cmakelists * GPU: Dirty viewport on RT width/height change. * Add uniform to make post process aware of videos. And an example effect ~ subtle AA in-game/heavy smoothing for videos.- Update to version 1.4.2~git20170903: * Add Sony PS3 controller mappings- Update to version 1.4.2~git20170901: * Integrate sceUsbGps and sceUsbCam with Android * Integrate sceUsbGps and sceUsbCam with Android - 2 * More mingw patches * More mingw patches pt. 2 * Simplify this conditional * PACK should be defined different for Win32 based on whether we compile with Mingw or MSVC * Revert "PACK should be defined different for Win32 based on whether" * Get rid of ugly alignment macros and some other cruft, we now have alignas(16) from C++11 * Remove snprintf compatibility hacks for MSVC versions before 2015 * Remove Globals.h * Buildfix * Linux buildfix * mingw patches- Update to version 1.4.2~git20170830: * Assorted cleanup of Vulkan init code. Show Vulkan extensions in system info. * Separate VulkanContext::CreateDevice into ChooseDevice and CreateDevice to give an opportunity to enable extensions. * Buildfix * Minor cleanups * Fix bug in vulkan init. Add some sanity checks to GL shader cache loading. * Add a hack to override the default framebuffer on non-iOS, to unblock the new RetroArch port attempt (#9936) * Fix a PIC compliance bug in the VFPU. Comment other cases properly (for easy searching). * apple buildfix * Patches to make it possible to compile with mingw, pt. 1 * Removed MSVC check * Change this to _MSC_VER * Remove this too - we will use UNICODE and _UNICODE defines for mingw build * SafeMem: Remove the "far" optimization that saves 3 bytes sometimes but is really dangerous and not worth the complexity.- Update to version 1.4.2~git20170825: * Another couple of control mappings, see #9825 * Fix possible crash when loading GL shader caches. Should help #9930.- Update to version 1.4.2~git20170824: * Bump the GL shader cache version- Update to version 1.4.2~git20170821: * Make keys names translatable in pop-up * Reuse some already translated strings * Add a new translation category for the remote ISO feature * Oops, forgot this one * Implement vertex caching for Vulkan. * Vulkan vertex cache: Fix bug with "pure prim" draws (where we avoid the index buffer) * Make FLAG_FLUSHBEFORE a no-op, move flushes into the execution functions. * Fastpath in fastrunloop when diff=0. Remove need for Execute for UV scale/offset. * Minor cleanups * Buildfix for X86 Android * Crashfix on older devices * Vulkan: Add code (disabled) to be able to run with more in-flight frames. Only improves performance marginally and needs more testing. * FRAGMENT_SHADER needs to be marked dirty if shademode changes. Fixes #9904. * Make control mapping pop-up title translatable * Make dev menu pop-up title translatable * Fixed invalid preprocessor directive * ARM: Delete obsolete comments and check * More vulkan microoptimizations. Add more profiler scopes. * Vulkan: Fix some inefficient command pool usage, might also fix a race condition * Vulkan: Fix bug sometimes causing the wrong renderpass to be ended at exit, causing crashes. * Add hooks for Marvel video copy func. * Replace the most critical unordered_maps and maps with two new maps: FastHashMap and PrehashMap. * SIMD-optimize some data conv routines used in uniform updates. * Include Hashmaps.h in CMakeLists.txt. * Maintain the hashmap from time to time. Fix a bug in count reset on grow. * Optimize uniform uploads for D3D9 and GL as well. * Buildfix * 32-bit buildfix * And yet another buildfix. * Minor optimizations (use the new hashmap in a few more places) * ... And also for the vertex decoder (DenseHashMap) * Switch over the GL shader manager to the new hashmaps. * Buildfix * Fix some missing dirty flags (affects FS_BIT_LMODE) * Keeping descriptorsets around between frames can cause problems if we run out.. Try to prevent that. Need a better method than this though. * Linux buildfix * GPU: Consider bbox failed with zero verts. * GPU: Fix alignment on signal jump/call. * This might not always be 16-byte aligned.- Update to version 1.4.2~git20170816: * Simple micro-optimization in AdvanceVerts * Can't dirty VERTEXSHADER_STATE before the flush in Execute_VertexTypeSkinning, causes obscure bugs when software skinning is enabled * NEON-optimize bone matrix loads * Vulkan: More minor optimization (avoid pipeline cache lookups when possible) * NEON-optimize CLUT loads * Neon-optimize the audio s32->s16 packing function * Initial work on supporting sustained perf mode * Cleaner Vulkan shutdown * Add controller entries from gabomdq/SDL_GameControllerDB * Oops, forgot to update NativeQueryConfig, thanks unknown * Spacing- Update to version 1.4.2~git20170815: * Ensure everything is dirty on frame start. * All: Only convert blend state if "dirty" * All: Only convert depth stencil state if dirty * All: Only convert raster state if dirty * Dirty RASTER_STATE when switching between rect and non-rect primitives (culling) * All: Only convert viewportscissor state if dirty * Dirty viewport state on framebuf resize. * Add some missing VIEWPORTSCISSOR dirtying. * D3D11: Make better use of the dirty flags to avoid state calls * All: Only recompute the vertex shader ID when dirty * Dirty vertexshader state on hw bezier/spline. * Dirty things on stencil buffer upload. * Dirty-flag the fragment shader ID. * Add some missing fragment shader state changes. * Dirty on various framebuf state helpers. * Oops, broke Vulkan in the rebase somehow. Fixed. * Use dirty-flags more in Vulkan state setting * Dirty-track the current pipeline to avoid many vkBindPipeline calls. * Fix minor blendstate oversight, restore a disabled optimization * Vulkan: Fix some more state dirtying issues.- Update to version 1.4.2~git20170808: * Common: fix MAP_32BIT after 9f24203ef8f6 * Windows: Use system API to toggle fullscreen. * GPU: Correct 1080p/720p crop for ultrawide/similar. * Windows: Support multi-display full screen. * Core: Handle 20-bit volumes in SIMD optimizations. * GLES: Set target w/h in buffered rendering. * Update submodule lang * Make a state object for the Android audio wrapper * Make the OpenSL wrapper an object too, to make sure it's always initialized the same. * Minor GPU disassembler update * Android: Turn off resizability until we can properly fix the sizing logic. Helps #9866 * Android: Fix scaling issue on configuration changes. Why was that division by 2 there?? * Turn g_dpi into a float, because why not * Separate X and Y dpi_scale * Re-enable resizing the window on Android, change onConfigurationChanged flags * More splitting of dpi vars * updateDisplayMetrics was a poorly defined method, removed it. * Consolidate DPI/sizing handling on Android * Buildfixes * Another buildfix * Review fixes, thanks unknown * Android: Add some missing codepaths when using Vulkan, might fix audio/controller issues on task switching * Format string fixes in DPI logging * Misc cleanup * Always shut down audio, regardless of why the task is being destroyed. Might help #9771 * Disable codepath that requires vibration permission which we don't have * Make some decls private * Android: Fix bug where the surface size could be wrong after task switching and automatic recreation * Reset the UI state properly in NativeInit. Fixes #9771 * Disable the x86-64 Android build until it can be debugged. Works around #9814 (all such devices can run the x86 build instead) * Strip spaces from pasted IP addresses. Helps #9795. Fix accidental typo * Fix space stripping in a few more string input methods. Helps #9795 * Update lang, add language name for Laotian- Update to version 1.4.2~git20170724: * Update lang submodule- Update to version 1.4.2~git20170713: * Vulkan debug mode: In case of missing validation layers, warn, don't error out.- Update to version 1.4.2~git20170710: * x64: Use context register to access saved_flags * X64 vertex decoder: Use relative memory accesses when loading matrices. * X86/X64: We have the context register loaded, let's use it more. * X64/X86: Even more use of the context register * Remove more RIP addressing * Buildfix attempt * Some code cleanup. More work towards removing RIP addressing * More RIP removal * Move mscxr_temp to MIPSState * Remove RIP access from some matrix ops, SafeMem * Move another couple of temps into MIPSState * Move tempValues into MIPSState * More RIP elimination * Guess what? More RIP elimination (but keep the fast path too) * Surprise! More. Making many commits for easier bisects. * Access FPU temps through CTXREG * More RIP removal. Also add some comments to make it easy to just search for "M(&" to find remaining offenders. * Get rid of sincostemp global. Solution not tested on linux yet. * Remove some rip addressing in vertex decoder * Get rid of remaining RIP addressing in vertex decoder * X64: Fix bug in a case in the MOVQ emitter : rex byte should be after the 0x66 prefix * x64: Enable non-RIP addressing for FPU registers * vminmax_sreg only needs a single element * Replace vminmax_sreg with mips->temp * RegCacheFPU * Workaround * Fix software skinning * Buildfix for platforms with standards-compliant offsetof (no dynamic indexing allowed)k * 32-bit fixes * Delete some unnecessary loads. These loads are done properly inside trigCallHelper. * x86-64: Linux ABI fix * Turning off the "close memory finder" lets us find more RIP addressing... * More RIP elimination * More RIP addressing in software skinning.. * More RIP fixes * x64: Fix coreState rip checks. * x64: Avoid clobbering jr dest in cases. * Update gamecontrollerdb.txt- Update to version 1.4.2~git20170703: * Fix Windows XP support in LocalFileLoader * D3D11: Fix texture scaling with blank first half. * GPU: Clean up some GLES3 defaults. * UI: Show slow message based on refresh rate. * Minor debugging feature: Show vertex normals in GE debugger * Don't use stat64 unless we need to * Fix build with NDK 15. This does force us to make do with 32-bit file sizes...- Update to version 1.4.2~git20170627: * Fix running slow message , it's always show when game run stable above 98% speed * Oops * Add credit developer * Add 1 line * Fixes * Fixes- Update to version 1.4.2~git20170624: * Make the Loader API thread-safe * Also support atomic windows readAt * Add conservative locking arond Caching/HTTP FLs * Remove use of C file api in LocalFileLoader * Add a note about thread-safety req in FileLoader * Fix windows build * Core: Windows buildfix. * Core: Buildfix.- Update to version 1.4.2~git20170618: * GE Debugger: Buildfix for BSD.- Update to version 1.4.2~git20170613: * Apply a hack to simulate USB created files.- Update to version 1.4.2~git20170609: * Fix UWP build * D3D11: Fix Star Ocean again (wasn't clearing stencil properly) * Port a small simplification to D3D9- Update to version 1.4.2~git20170608: * Warning fix * Start sketching native text rendering for Android * Fix assorted JNI issues, the calls work now. * Font rendering code runs but it sure ain't right * It works! * Fix vertical positioning, eliminate double-& * Buildfix buildbot * Address comments, make things closer to the Win32 code. Things work better. * Fix some comments * Buildfix qt * We are already shipping Roboto-Condensed.ttf, let's use it * Implemented sceUtilityGetSystemParamInt * Format fix * Fix get/set confusion * Fix minor overallocation during elf loading * Refuse to load truncated ~PSP files. * ELF loading potential out-of-bounds fix * GE Debugger: Gah, fix some pointer size errors. * SoftGPU: Avoid some compile warnings. * UI: Add some missing overrides. * Build: Include Roboto in buildscripts. * Core: Set cwd for non-ms0:/ games on boot. * sceVaudio: Fix typo in constant name.- Update to version 1.4.2~git20170605: * GPU: Refactor common frame dumping code. * Core: Refactor repeating disc id homebrew code. * GE Debugger: Initial structure for GE data dumping. * GE Debugger: Implement basic recording. * GE Debugger: Record memcpy/memset too. * GE Debugger: Simple framework to load dumps. * GE Debugger: Oops, emit transfer/clut cmds. * GE Debugger: Start a module/thread for dump runs. * GPU: Add a debug method to grab list tick wait. * GE Debugger: Initial GE dump replay. * GE Debugger: Oops, don't record if not active. * GE Debugger: Record init state and display buf. * GE Debugger: Clear after replay finished. * GE Debugger: Fix matrix dumping. * GE Debugger: Wait to get the right display buf. * GE Debugger: Load commands more directly. * GE Debugger: Fix memmem and cleanup. * GE Debugger: Implement memory transfer commands. * GE Debugger: Fix recording in softgpu. * GE Debugger: Fix clut command recording. * GE Debugger: Align texture/vertex/etc. data. * GE Debugger: Allocate replay memory smarter. * Jit: Fix syscall outside delay slot. * GE Debugger: Fix replay FPS. * GE Debugger: Run replay using stalling. * GE Debugger: Compress GE dumps. * GE Debugger: Add record button. * GE Debugger: Reduce memory allocation. * GPU: Stall properly on matrix data. * GE Debugger: Add some comments and cleanup. * GE Debugger: Pass filename into dump replay. * GE Debugger: Fix replay timing drift. * Patch unusual way of checking for firmware version.- Update to version 1.4.2~git20170604: * Add "ignoreAddress" to texture replacement. * Expose XXHASH for Texture Replacement * Disable ignoreAddress on quick hash and inform the user about it. * Add reduceHash option, to hash 50% of texture when it's otherwise unreliable. * Fix jpeg's with width not matching psp buffer size. * Needs to be square! O.o * Initialize pspWidth and increase the max size. * UI: Fix Take Screenshot support. * SoftGPU: Support Take Screenshot partially. * GLES: Copy only depth in BlitFramebufferDepth. * Vulkan: Allow blit/copy of depth or stencil only. * SoftGPU: Fix separate mip cluts in linear jit. * Implement software skinning for the Vulkan backend. Fixes #9753 * Fixes for D3D11 postprocessing * UI: Translate AVI start/stop strings. * Some unification in DrawEngine * Unify DecodeVertsStep * Unify ComputeMiniHash * Unify transformed arrays * Unify SetupVertexDecoder * UI: Fix fade-out when editing touch controls. * UI: Enable mouse settings only if checked. * UI: Allow texture ini create only within game. * UI: Remove padding hack for setting info message. * UI: Fix text wrap when kerning adjusts spaces. * UI: Make some tooltips less technical. * Fix reported null pointer error in the Java code * Split TextDrawer into interface and implementation. * Split out DrawTextWin32 into its own file, to be further split later. * Split out the Qt font drawer in its own file.- Update to version 1.4.2~git20170601: * SoftGPU: Move sampler code to a dedicated file. * SoftGPU: Stub a jit for texel fetch. * SoftGPU: Implement basic jit structure. * SoftGPU: Refactor out texture format logic. * SoftGPU: Jit texel fetch for non-clut/non-swizzle. * SoftGPU: Stop calling bufw pixels bytes. * SoftGPU: Jit swizzled texel lookup. * SoftGPU: Jit CLUT lookup. * SoftGPU: Jit 16 bit texel decode. * SoftGPU: Expose jit cache for profiling. * SoftGPU: Reduce overhead in sampler jit. * SoftGPU: Specialize CLUT4 jit. * SoftGPU: Implement separate CLUT in samplerjit. * SoftGPU: Reduce sampler id fuzz. * SoftGPU: Jit the linear sampling too. * SoftGPU: Support separate mip CLUTs with linear. * SoftGPU: Correct linear filter rounding issue. * Android: Just like on Windows, prompt to restart when changing graphics backend. * Simplify some cwc detection code, respect _C2 as activation. * Remove unnecessary \ / conversion. * Vulkan: Fix minor bug when clearing the back buffer (loaded stencil for no reason) * Delete obsolete function ClearBuffer * Fix scaling post-shaders on OpenGL. See #9742 * Update glslang submodule * Update lang submodule * Update submodule SPIRV-Cross, remove workarounds that are no longer needed * Remove obsolete workaround. * Implement sceJpegDecodeMJpeg & sceJpegDecodeMJpegSuccessively * UI: Start a render pass while stepping. * Vulkan: Increment engine version. * GLES: Fix startup crash on desktop OpenGL < 4. * GPU: Block mipmap autogen for matching size. * GPU: Fix negative mip levels with const workaround. * Vulkan: Fix Cardboard rendering. * Fix crash on macOS. Fixes #9751- Update to version 1.4.2~git20170530: * Android: Fallback to OpenGL if Vulkan fails to init. * Only show the Vulkan setting if Vulkan might be available. * For now, only check for vulkan availability on Windows and Android. * Fix a bunch of emu features for Homebrew by better identification. * Try using first screenshot as an icon if no icon is present. * Add savestates to the list(with automatic rename) * Add new format to CWC as well, don't think it's worth auto-rename. * Add matching title for savestates. Cosmetic ~ for savestate manager. * Oops, missed this one:]. * Corrections, some %i->%d around other code as well. * Oops. * Postprocessing fix after the Vulkan refactor. Should help #9742.- Update to version 1.4.2~git20170530: * Reporting: Add compat description to UI. * Reporting: Default better when perfect selected. * Separate BeginFrame from BeginSurfaceRenderPass * Start work on separating frame from backbuffer renderpass * BindBackBufferAsRenderTarget is now replaced with BindFramebufferAsRT(nullptr) * Draw overlays at the proper time in the frame. * Start refactoring things to be more vulkan-friendly * Thin3D GL: Avoid using external functions internally. * Remove some unnecessary framebuffer binding * Use vulkan-style clear-on-bind when switching render targets. Not optimally used yet. * Further steps towards Vulkan framebuffer support * Silence a perf warning * Further steps towards Vulkan framebuffer support * Vulkan backend: Fix various issues, can almost run in buffered now (except the final blit) * Buffered rendering is starting to work, though still kinda broken. * Vulkan: Use suboptimal clears instead of no clears in buffered * Vulkan: Fix binding framebuffers as textures * Add a way to query the current renderpass (for debug checks) * Fix a number of bugs and stuff affecting Vulkan on Mali * Increase the number of sampler/image descriptors further. * Clearing fix, drawpixels fix/hack * Don't forget to initialize logicop.. * Vulkan: Some barrier optimization * Address a bunch of review comments. * Fix more review comments. * Vulkan: Implement depth buffer copies. Not sure all the barriers are right.. * Vulkan: Implement BlitFramebuffer- Update to version 1.4.2~git20170527: * Android: Fix minor typo.- Update to version 1.4.2.0~git20170527: * added ps1controller mapping in gamecontrollerdb for Linux * Remove the Mipmap setting. One step forward for #8171 * Remove "Always Depth Write" setting. One step forward for #8171 * Make extra sure that asserts arrive in the Android log. * Show the Android "board name" in system information. * Don't erase and rewrite the dispatcher when the cache is cleared. Fixes #9708 * Buildfix * Update README for 1.4.2 * Strncpy doesn't terminate correctly, switch to truncate_cpy. * Switch strncpy to truncate_cpy in a bunch of places. * Buildfix, oops * Should probably stick to the old way here. * SoftGPU: Correct mipmaps for points. * SoftGPU: Support UVGen for points and lines. * SoftGPU: Stop calling bufw pixels bytes. * GPU: Cleanup some gstate accesses. * Slightly speed up booting when there are symbols to load. * Update to v1.4.2- Update to version 1.4.1.0~git20170524: * SoftGPU: Make sure transformunit.buf is properly aligned. Helps part of #9718 * Some constification in ElfReader, sanity checks in sceKernelMutex. Might help #9718 a little bit, though probably not the Elf issue (and if the workarea pointer is bad, it's not likely the game will limp along for much longer) * Fix crash when pressing F12 in software mode. * thin3d gles: Unbind buffers after drawing. Fixes #9715 * Use InitMemoryForGamePBP also for homebrew(PSP_PBP_DIRECTORY). * Throw in a few more checks in ElfReader * Reset (through renaming) and hide the software rendering setting on Android. Only show it if it's already enabled. * Typo fix, MOBILE_DEVICE- Update to version 1.4.1.0~git20170524: * Init rtcBaseTime.tv_usec to 0 * D3D9: Correct half-pixel offset.- Update to version 1.4.1.0~git20170523: * Update readme for 1.4.1, which will be released soon * README: Add mention of framebuffer blit fix * Update version to 1.4.1- Update to version 1.4.0~git20170521: * Add sceKernelLoadExec_28D0D249. * Don't use partial-restart unless debugger is present.- Update to version 1.4.0~git20170521: * Quick hack to enable analog stick sensitivity on non-windows platforms. * Make sure the analog sensitivity defaults correctly on non-Windows * Windows: Avoid input race condition on GPU switch. * SoftGPU: Use vertexjit for submitted primitives. * SoftGPU: Fix rendering when using Direct3D 9.- Update to version 1.4.0~git20170519: * gradle: Add a "flavor dimension" to make Android Studio 3.0 happy * Remove unused methods * Minor GameInfo memory handling improvements. Still not great. * When what we need is a shared_ptr, we should just go ahead and use one. * More paranoia * Found a suspicious hang report that makes me think this mutex should be recursive. * Many reported ANRs were from homebrew installs. Make sure installs run on the background thread. * Prevent a deadlock between View::eventMutex_ and ScreenManager::inputMutex_ by locking here so the reverse lock order can't happen. * Move up Software Rendering to Rendering where it belongs. Makes it easier to turn it off if enabled by accident. Also warn if used and it runs slow. * Since we know from #9601 that e9d5eb694b is wrong, at least make it more specific. * Really no need to hold eventMutex_ while dispatching events, only when interacting with the queue. Might fix further deadlocks (see #9698) * Update gpu_features.cpp * Typo fix- Update to version 1.4.0~git20170517: * Update gpu_features.cpp * Update buildassets.sh * Update copyrelease.sh- Update to version 1.4.0~git20170516: * Update ab.cmd * Update gradle plugin version * Remove slowness warning if software renderer is enabled, it'll show on almost everything. * Update ab.sh- Update to version 1.4.0~git20170515: * GPU: Consistently bias const mip levels. * GPU: Flush on mipmap slope change. * SoftGPU: Multiply S/T early via SIMD. * SoftGPU: Improve wsum recip SIMD. * Fix typo in VertexDecoder * SoftGPU: Correct texturing for pixel centers. * SoftGPU: Correct rendering for pixel centers. * SoftGPU: Match GLES lighting better, use floats. * SoftGPU: Correct fog for rectangles. * SoftGPU: Don't wrap negative positions. * D3D11: Fix initialization of mipmaps. * GE Debugger: Fix bias display for auto mip mode. * SoftGPU: Fix texture vertex preview in debugger. * SoftGPU: Avoid rcp due to precision issues. * SoftGPU: Quick hack to fix scissor w/2x2 pixels. * SoftGPU: Implement lines in transform mode. * SoftGPU: Support flat shading for lines. * SoftGPU: Bias bottom right side of line drawing. * SoftGPU: Implement simple mipmapping for lines. * SoftGPU: Implement pretend antialias. * SoftGPU: Clip lines entirely outside early.- Update to version 1.4.0~git20170509: * Update lang- Update to version 1.4.0~git20170509: * x86: More optimal 4444 in vertexjit. * x86: Minor memory copy perf improvement. * x86: Minor optimization for s16 through positions. * SoftGPU: Apply clamp/wrap in through. * SoftGPU: Improve texcoord rounding. * SoftGPU: Refactor mask calculation and use SSE. * SoftGPU: Fix separate mipmap cluts. * SoftGPU: Process mipmaps in texturing. * SoftGPU: Round screencoords. * SoftGPU: Calculate mip level based on float bits. * UI: Enable some settings for software rendering.- Update to version 1.4.0~git20170507: * UnitTest: Correct vertex and jit tests. * GPU: Remove now-unused vertex decoder funcs. * arm: Jit throughmode 16-bit texcoords. * Work towards a clean vulkan shutdown. * More vulkan fixes * More vulkan shutdown fixes * Vulkan: Remove obsolete warning suppressions. Increase descriptor pool sizes. * Windows debug builds: Only break on Vulkan validation warnings if a debugger is attached.- Update to version 1.4.0~git20170505: * Fix to partial restarts (when switching backends), plus misc. Helps #9666 * Oops again.. sigh * Windows: Initialize WindowsHost in EmuThread.- Update to version 1.4.0~git20170505: * Handle alt+tab and drop down menu when mouse is confined and game is running- Update to version 1.4.0~git20170504: * Experiment (#9647): Wipe RawInput buffers * Experiment (#9647): Prevent NaN values from getting into the UI system through TouchInput * Add a constructor to GestureDetector, to see if that fixes initialization * Also memset.- Update to version 1.4.0~git20170501: * Windows: Fix minor leak in disassembly UI. * UI: Make GPU events more consistent. * D3D11: Free swapchain on graphics reset. * Minor OCD fix;]. * Fix "copy type" pointer cwc * UI: Allow choosing bgs (android) * Remove blank line * Windows: Simplify host shutdown. * Core: Cleanup MAC address handling. * UI: Fix crash on item select with hidden items. * System: Use a separate API for bool props. * Windows: Init with OpenGL 4.5 if possible. * SoftGPU: Implement CONTINUE prim type. * Arg, gcc buildfix. * Add some paranoid checks around touch IDs that probably won't help #9647 * Oops * Fix: in some extreme case on-screen touch controls get stuck on iOS- Update to version 1.4.0~git20170427: * Mouse Control(Windows only for now) * Try on a nicer mapping workaround. * Polish the new workaround, seems to be nice and simple. * Add Tip to inform user how to use mouse control. * Handle more mouse buttons(middle, 4, 5) * Add an option to trap mouse within window/display area. * Fix ALT key mapping.- Update to version 1.4.0~git20170425: * GPU: Rebuild FBOs when they now have storage. * Core: Fix PPGe text drawing with missing icon. * GPU: Attempt recreate of FBOs if failed. * Core: Fix log spam in debug mode. * GPU: Consistently use useBufferedRendering_. * GPU: Centralize fb resize, move to begin of frame. * GPU: Fix black screen on buffered render enable.- Update to version 1.4.0~git20170424: * Fix postprocess shader submenu.- Update to version 1.4.0~git20170423: * Headless: Fix DirectX11 support on Windows. * Headless: Enable mipmaps. * GPU: Correct const mip 0 detection. * D3D11: Approximate AUTO/CONST mip bias. * D3D9: Disable mips when mip filtering disabled. * D3D9: Support AUTO mip bias and approximate CONST. * Vulkan: NULL initialize some handles. * GLES: Support AUTO and CONST mip bias. * SoftGPU: Use texture bufw in bytes. * SoftGPU: Rasterize triangles in chunks of 4 pixels. * SoftGPU: Interpolate through texturing better. * GLES: Avoid MIN/MAX LOD without LOD control flag. * SoftGPU: Grab 4 S/T coords in non-through too.- Update to version 1.4~git20170421: * Windows: Fix buffer overflow on load. * Headless: Fix graphics tests. * IR: Cleanup some invalid ops.- Update to version 1.4.0~git20170418: * UI: Proxy devmenu keypress through an event.- Update to version 1.4.0~git20170417: * Linux: add another PS3 controller GUID- Update to version 1.4.0~git20170416: * Vulkan: Detect swapchain init failure. * Add a restarting flag to NativeInit/NativeShutdown. * Windows: Avoid restarting completely on GPU change. * Core: Remove bRestartRequired config hack. * EditorConfig: Workaround MSVC2017 bug. * SoftGPU: Correct negative coord handling. * SoftGPU: Fix crash on matrix load. * SoftGPU: Force render res to 1x. * SoftGPU: Use common spline/bezier rendering. * SoftGPU: Fix indices starting after 0. * SoftGPU: Simplify index conversion. * SoftGPU: Remove old spline handling code.- Update to version 1.4.0~git20170415: * Remove unused parameter to DestroyAllFBOs(). * Destroy FBOs only on actual resize.- Update to version 1.4.0~git20170414: * Disable pause button when not using touch. Remove per-game status from some settings which shouldn't be per-game.- Update to version 1.4.0~git20170413: * Update lang submodule * UI: Respect the pause button display setting.- Update to version 1.4.0~git20170412: * Windows: Fix mismatch on multitouch finger up. * Windows: Cleanup type conversion in touch. * Fix framebuffer size flopping back and forth. * Fix largest framebuf size in throughmode.- Update to version 1.4.0~git20170411: * Fix issues with software GPU on D3D11- Update to version 1.4.0~git20170410: * Update lang * Track flags to reduce unnecessary VRAM zeroing. * Cleanup 16-bit VRAM clearing. * Skip downloads of cleared VRAM. * Linux: Added support for Hidromancer gamepad device driver- Update to version 1.4.0~git20170409: * Windows: Make the window positioning code slightly saner and more straightforward. * Switch back to using CXSCREEN/CYSCREEN for centering instead of the virtual screen. * Typo fix * When not resetting Y position, clamp Y to 0 early. See #9563 * When resetting Y, make sure we don't end up outside the screen. See #9563 * SaveState: Correct crash on rewind usage.- Update to version 1.4.20170407: * Fix out-of-bounds framebuffer blit on color bind. * QtMain: Renamed mis-named variable assets_dir to external_dir * Use the root of the memstick as a tempdir for downloads. Should help #8711- Update to version 1.4.20170406: * Further fixes to #9554 * Make the gesture detector treat all touches fully individually. Fixes issues with last commit. * Windows: Fix check state after menu translate. * Allow using any touchId to scroll. Should help #9554. * Restore calls to UpdateUI from sceUmd, now that it's faster. * Fix XInput polling in UWP apps. Should help #9555 * Touch on Windows Desktop: Apply the DPI scale *after* ScreenToClient. * Minor cleanup with GOLD define - only use it in System_GetPropertyInt * Operator precedence fix in ifdef * Remove unused code * Make scroll gesture detector compatible with other touches than #0. Should help #9554. * Remove unnecessary disable-buildtime-git-version-creation.patch- Update to latest git snapshot * use qt buildbuild72 16194495141.11.2~git20210422-bp153.1.11.11.2~git20210422-bp153.1.1ppsspp-qtppsspp-qtppsspp-qt.desktop/usr/bin//usr/lib/ppsspp//usr/share/applications/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protectionobs://build.opensuse.org/openSUSE:Backports:SLE-15-SP3/standard/436267bf31f043db526e1be5b9337301-ppssppcpioxz5x86_64-suse-linuxPOSIX shell script, ASCII text executableELF 64-bit LSB shared object, x86-64, version 1 (GNU/Linux), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=ee21533b52e22b5374d674569dd573d688234bca, for GNU/Linux 3.2.0, not strippedASCII textJJRIRR'R%R4RR-RERRR RR*R)R+RGR/R2R1R0R@R9RRBR=RAR:R6R;R R#RRRRR R"RRRR!R RRRR.RR,R3R RR RRRRRR$RRRDRFRRHR5R(R&RRPP\\D?DO߽utf-8dd90e793c47d97fbd33d2a3f5bd77223075cc1dca2d9efc3a345896e664b1f01? 7zXZ !t/E/] crv9xn1䅣':mJEJuJk08O;6o\,*WsCco-VZ1"ڀiigt#7woH`%54HG l\G+~؋-G,_?7Ӊ,6!HώO}:P°USGw:x& ?֕Œins]ĝ,io6-<c`m;Qkg&IQtIdC/~ChO͌FRi]aɼ Y\5'"8X[1o,zgas8 0]Ikb-㮽S 6(T34q7ړ0~Pn@ED>}5?)`ꏴ|WTs jwڔ V-4kVMA| Rf (?vu ~IޑxLçbf j+zG,1_yX GYZsv ɮlZ%Y֎vևR_ 5ы3^y|SS2NJBvIQר$td z"ߕ^r׹|Y^VkhPW V1W;_hqα[l8kЌH>Z/eA5 )Ofm穪~Y ; G^^Fh*AICv=$?_?[J<2e9 ~pJ^O.s2 j#iPoެ{-~ϵ`H㎝;^ٯuvU$66f>50[gɟ  FpF Zm<u%pw>=q36WẍןUZo٪@hx|+NpLnV^W|oS#Z'{ RQ0]Ħ/< ޡn 3) sr}@b}e 1㓈`!"3ZQ]#©/v\XEK+qg~VY5o{8J;a;:gmI-ٚEF e, w% t],VQm0JI ߵ~c^_=aiX6~AYmnczd1vOϟ_V6h[xjFo! VDIdxc9?9%'8PIq'pIl>*f7>vxE;2[Ec,!;w_,v5ӎc}XY!\,Rv&5rؕtPuB̠+ux7U#gMJ-N/nk|(IՕha$|X bw;v]^eK,>͸c>6ޖauOdLM:5OF] ~ʌѿC}yY q$lyUMIɈe:WolbG,!{h=nHE.[zN6 0<&gZW-hrZRFX*erz7 %%m.TphB3CCU >)CV F58,%h 6_{單1 VMZG,Osv!eNmCkˣA&c8*"%kqVÅr_C'$7|n;dK2`5Zxiz"ۺ򭚆YNyq?'n FY-^rG93ZIm'bɃ'm%ZsL+I& jsSD!;3 CΒ~4Mб[a#Hj,u8~ɦrD;p'8 s  'vee"BHWGFRx/y}3D`$D2y'm ;.{ܝzـ#*k{` IqAT@،!o [ רcPIT-oUU%>msF˛{i"^&?a {*`*tIGȪL( %'\wl-L棵jŮעLWvf]|3 4uj]eAFx.յcBΖ6d/2Xu.=jA$sNEn%G3-/d6cwWDYĶCїOk5 f)3ڏ 9vK<{n'N3/U2|QfB\7ţrA*^{+P ޛs꽦fc9YGSt{?>|Ce)c3LǷPIfQ5 :gH:>KIvdFGٝ@@RE\4x -j޹Lͼj'Yh)$[B;Xo.BDH;6ZK|4&Ee#fr=0 9zRMgWvOK@=eLZ,D, Jdd:B з/!]P)O_m<+$cb V9ZUX1IBTL]:ap~tX |JuNjHinNm'tA[?auD Y0% XDDjWfD/R5և^듵l#jpoa8 Z" wUB9*N*H#"&jNZfⲆ5n9=$HQMVW76"։O't0Ӷ.s>U;_H]tu𝱳APe?DpV)MѢi, zVqϮ}7sBHH4Usyx;.6 d6|[U)Ό1z3[vK+WzAaZ*^?B31ODs˧jǩRJҢ$!ԅG<ߑE(>X15Jędx>nFsq}aB(r:wևőn|RXaA+ʰSjaJr7Iv٧3TC+V%k"A-چo{gqxX`:̹2aB2Q2^0w׳*ԋg!P z ]Hy^_B F\ +"ԃ ``B0G%T_];̵ p 1ݎ[:XT] oDP 4[RM5Αc.fklߕv)=wFEAA_핓H2$~Dp<BT A0lRhD]s$@!`9ƍumq7L}1=2d=`A&1½i*)Xڈ}Cc,.0ãO vB؁_5*a6tSlG| >ۆ)eOdMkpP%=IH𩋾5SXemݝQP Fh-;, ς7N ̖iѫˁ &)hl@i"#G(`}e} EAZ)(#[H)+/+f5>u li3g)y:KPyUNc;] (T՞>󌲐9exDpEC@*2- YQc~]B\MHLخ+S w8ab&צPGޣRJǦ90!$=7-%1~_jmXu.XQD;$U('cvhb3)kuxltMˆuԚĐ1 \8Mfc%|q֭EeNqi@;DIp) U-*@߽cuTu7S3c㱞r,0>uQ;b:$)4ҭG_ OH{iIZ H} M% fP&hlW/ݒs4#GJq.uC>K%Vx3V%7t41K-ܜ5HlG쀴|S6,xTHPƨ#escdK| v?NK;_JDر%>\4ыڤU nͥ`;5&mcGRʾw3p*2ͺr Ʃ~KnX` NV+ پ- lެ1l2aDVIKɴBKnLى\0_ބ VCt4G;nɊdٶ(u6`tH.}_2\tzғ-ŮdzIn&{Lźᘩ}4@ljh7!l9TQD)AH\ek qU( C'Em4lW& aMg| "h2`I2k;=_#maۼRA6׎g/ )Gx#vQxSt/x "Th=!IG|0-y#_dKvClNĥlؼDڳ7ֲCN ?X(cU{ƾc_ 7OZeи4gUJt0TUH`׌<6vX%lxfPoی!!Ay>m)0_U`C5rs<ެv=rejIf+/$JǛɜaV6x6vw,9`HqG'E4K]WtB Q`|']mzI~]3q% 0˧,oKۇS*.9# 5qe܆=->v^?Yt{.|$Dɫ"ܪ](i(oOr,o:\ }1}A Cb|eξƭ$Xo=bW~=b_:1;ʳ/@ SZT7$?$89.nMxPo|iSKIJEatluO@7g1$$+@ƶi~MOHLz-c=! QH `UԂ/:'.6"!y&&m+ ] i&/ :4Q\鋐v+@HVe*sF}Df6E k9fH aL."klXZNn:T#o/i^^!۳/S;E)klj{pғ>z} } ;$ՠ8F|k+CKp?~4;@~rxygBXIm!= E.i5BtIr3M\v8SܘQ@ Juш{"HT(%_vѽgL~ P2?wU|m7ꁥdX`m0J}XǠ@hTSh7DJ%.X;ycpP؊M}W[V8bs.dUy8TCaX~֮ .I YV; 3ߠmҶ P#1fl tMR! M7̳K7i>ESQ L m0pч'u։в~%Y Xr={ yГ<}[oi!66*sr7/H%#9JzwUo)ˬ`쬳jdra&`+h$nbܐ<WF3q8lpcl>vnU) >³v_ C;a?*4ZI}~rV6ZIt!?ks8|zX~[ґlT5j9`# K LA&M7I(l!cs&J$nwKۻn1KX)2 J䏖 R}9|8vR_;gj7{?рuy[uY()HPH5~tjTylj1-𐅩͂4+P(AX`BǢ`Pf8rn &omj "[|i3)yw)4c_-z wآ~BhTMc-UH<o`"iOja]<3>ܳqkKrKܾD6PhS;$ UHHe .|UEG/ O+E)SU$'YQ8kEKہwZmdpTf}K90Yow$NkS9vRwzp =,pl7]H2UUVi^VKiX" PFg&/Aڨm2WV2r`EE0^vBIeKc&sQf+X=-MnxyE ̙$Vm8mtƕÓmQMaIf wth;^7YAG5Ρt ID`@D=;6㠍kU MNw604saEiݲl̒)ܶغ#Cڥּa̢#oWmDe߬Z(5gr2}Y57?̖ȓbKjE`dUfާ 問.LW vʖ\I蘭^wxNv+ _Z*%X&Pސ0;=Ym6ji_Pcm~?:^YC~"rETe]%҂I1HITƏ:}Qvp*;m@'^3 K"tU?Z))ރ:xڳt6 K5Śz؏(,2(thu2E*(}xķ}BD;yfL@kB727Nׂ < )M,;)^ʦ֛XԦ~j Lf+@ء2U |d&8 dߩOR^p߳$Yo徉0+l%R  k6SnNg<߶{3>ΫeS`%v+'/uUaGQK,-r,JxI3oa͊[[ Hp{4"W? y=0aΌ $|zo2љ 8IS4Xf?s:zN刿`6|3)\R3)H@=^_qCh=]>Ќ<ʛl/qﱷI'ApLp_7Hgt?@|?]cbyth6O$јn{1{5B_ANS鸑Zer#5C0+Q؛WY8 Us$wK9xw ?e)H‹Y꿯1ؽl͝#ܼg ~RpDp?(~[:0$:x)B#{vܶugTBShkiۨM,>K C~yTDO?/+H(}N{Sep]C؋Lک2U¥OV(N l &qc{xium|ػFw:; 8;݉QQxtKr;1{ qTsUg9[kn[Y5oN~W=bVlݪ/ {/c/gj?z,j!D_Ndw 0\-WJZU*R63Oe mJwk yuݪY|Դ(n2(P;Z= aFZ /SZh]e{oh ݬo\}z[Gz>> {AXPzS7gt|` |EY: 矴=M3w ޲w)lS,]ar+<OCYb*Jjݞ5JńBExNgXӀdBp؋a`JzLZZ8L>אpJ"HϘeyHދ~U x.Tq7<A>ˉT)r :#aal}hLLP2m *OOs4O`' Kގ [bzy}'ď]КX|}"7dIb3XIEo=3Kҿ OR7gC˺?So ekU SSrTOÓvݏ|tjgʃFXT.4 侀hw}nM]}nR\;W}> EPR[}.Cǯ9ܯ*Ҕ$ۡ8<:^K5:^R[Bq=gBô=o.L˹.gzTR[ y5gK>L{l_LUths%ѵ۠>NxC37- #j[7+\D#gMJ0w=sN;gw^},R(M#Np4ɷJ/:fԡػ 1DZUp ?iku7L,WkQUN/h%/IT99o>J5+ y&>q.QSJS~`cV&?hOh5p.q8fWC1@c-"B<@7$8>sHnF 9[1F -HrUzUaJnN)2ŪZ+iz~ePx A`"iN]L;'A3[y ^yO%#h݀D?2ew?<0w#be/F38B,PLf@ar l"Fsˍ:Ea3X0y=H\`ѡ$}lT*4ۄ"@v)%r܅9Nn/o.Aj,DPvE>K>vFd: ߯ީ xyi\KG $o !McoTZ놽$<@2x0^(z MX&I4Q>Go<"akom[T-܍WĐ /E΂La8e͕# &.`@hױ9`?O3i=εk\iG,0h2b/YQ]ĿcgVv!A>W>%jH@4XU$bɍJw(FfocJ8 ̼ ˭``J1 ?WŏD ]H6JK4{6*QOĬ8TBmҿNbM X6x'qA3KLc2ޱ8{6NӘ'Jv'db*'=aD]ivFC?`21 ~gJ4/׬F4< rKuďZR.N?jsv[3@%ُ3IE@),fDju"oҴpI wm*6(hJF-3Zl<.߹i(RS3g<*䡘^J}p*1u"i*7|Ȑ~Ӓ^<|Y5/(3ﰎoPp-A8\E`oVaͧKBNrOUv3$N=4KF)n̏`i1: 'ed;qB08(d: 9|֣ؕ3E g ϚaRn^%fPMe[3ʱWWJxu jS~MyY j͔H:y,MD!F S\DcGmQ_ i',++Ch!\s_,,LG`t#uj<ݦ ^oٗs LQ}Ob]ٍ+ ){>Nb1#kչ>D !{| X\7)2QhUwT xz$GhqYy{@Rf+6E_"JvJTu6;Ca/ Hc{M+6M'W{HS셻'YU\xSD05p59(*~]2g NVP/G]Ul`URJ\!ܻˌn5б/d. a'@8KKB|ѬXצ;T$d{<=X.|iPU1lJC"kbMU~)G s,f]5mե U1B7Ev|Ҏrp&Ү)tvLKfʝ;Ƙ<BoPFf u9$(ǮD8d_uoY?ITww2鍫 fSsއ4k3\T=o<ݦ1NkI)%^hmN ]gOEҒ?9W(T@/8eRZA gk^,P]2*yvȶ^~·'ȏt[{:Ld>^-YJ_H[, lTJI6`o iĝ4eT~R V_=LT S:v- $˟gzE- m0eقDg;#x~ ;6*˩ù%HF]Hڥa ?bCOH}CF C\V@ƲZfCA*$FyzJh|1Pd1Jg/TiR Td[yIo aJN[h 斄3g(Yj@|5=$ա + l{!WZ67UrXW CD;{GHy}n_*o<¢V wgO镅B=yKaҍVwT*ESC۬6",jrdM wY\>aIssWm?NG\_]tv<?(/ƬUSa%DaG' [`PR%_MdKQ92^ܓٶDy=}Au6;ʍa*^ /|2Svt UŃ2ifVq[P|L᳸ T̻F.ܸ6+En 0K Ӵ;0b_DԐ7i{+|$‚jS'˳G[nJB70_Ix ek΍_!5Mm R;mo ZpND~ G2q3r"Ɣ117 Lx ze GUC4o:#" I9JI!vMסҹҋ$õKN|Uݸ]|/+lzq1j.cks&cspw(v*ɇs~4HROBvc~?Wv,8ޝ横ZCnuZe {jJvKM eє lP)x!A ?ύS:鴴PD72ZXlz}Q]ӷMX_#jyP∘C٧& ܑ12ng!l#"p/UTx8;PF_|[6 +=TxrSaT;Dvk ݭmCqB6ޝb},RwF j,;W7wglr%Z&38"\aƁGԄCU]ٝIrx#i޴(oobf2%pAOl׆#iO}!r~#7CFIr&"g֚CѧcsKU:D,Hᗗ6l5&erk5̒4+|¾'r:x'ON1 t࡮]e`BnpmͰt<|4$a­.P66S(;_ G&GWuMRasӢ~q ̚5SZru4el+#Y;*Mao}~'nۓD_C%%pe1v.0~FQY6U̩*?5#O.M{:m e*:UVLXr\9_ThKLI E XsB(HOt xIs4i6N;T6]WqIG3fc:EGse.@H.bOh@. [=z c:![jEQbzޖE+hwx5-o# /H<@ FۺhK$d,ϯ i2*Û$ou8Jk>"8J\~3J1xUA .5Ǹ:ױ'mmi Pݖ!B|SKzY "-H %^bVP4n߸lܐ_ ëoaeY88x>Xeuhj\}S#t ]bElU׻s_ pJ 8|,<|. n} B {XU ,CG:'61Px2<"5<}!0VUs^>R/rOl4N幢OG_=9 gDUwuƛGi8B'YT$(yc( C~2*@\M;r/SiB/lK:vUB""䐣\ZucIU?{' I^+=@p&0SN EHAd$wr _6K/6}Rzbwb&M'j¤Yi#cWM&41^%A9-OҙwİM^Lߢ~^?\hdj|l">|?Q#B њ3^eD'v$?U7bďΥN"E4W6^\e953dtGogT4u)6@J=FQ-pخJ_EFb#}BXbdTf<2E4]UTRnLۗ%*}{|8.JuD:4?ª"5+3/S.M37wucn!~MAK`2%|F8B>{e [\u1OuG zVy:"%$CK4Xdrur480S|3!^KwYd>3׿1M8]gэ#>k–RF`ƃp/cVCb\p+P4CV z[fo8vXnA;*$|hP I~9tdW󶕦ϣiצ`Z) kڲpGod1{eA@.lph7Be<@'%'a'y!mBUeAɨgR:hw}56Mϲ3WN؇nb;2@.*M/p'2șqpqr;@5HȿG?2X:zdríaDK2čFW桚Qއ8rةZt&+S=p\͇t*qXO5O~]@TuNv,_ˈ!dmч%Ɯkz`8wR;cf& |?betIXtzJMY<v 028QykJ[,GǟqENe"_7Ͳ#tiOg;͸JTQm]X:Oi[Ԫn`k;G)SIh%Volq aVwasmSZXi2oMkzg\^mꡝIgC#HqD+W`!&qmp="lG:P 8( < T7@1p?&^Pqv`f{O,6{DA3lx|# ޒfl9ԃe ~5b̅Ru~)E䏢#ya]z:r/Ύiie@Meۼ]7AP lo dq,V-8WN<7r jӥw@9a1d>AФi]q`yQ|v5mK]La'ET`r%R`-`֘ҢyT QCP`&/1הf7 7"FUB~]AjvYY=-t:/݅RQ#qwI٥ܦ}O0Z;6>1!29˩\,{:^?3[*c~mO5_qUHwnGR`:Sa k#Ayu 0tV1e41+ 45X|Gp(^&$EZi֢ %PZ5ķ}y^ !K ҍvn?GJmvD$#+v,P 3 C&QIΡS"Р\Q Cqْ wwѹ0A.4Ne~yF_ #ݙv ;T:qo0- 2@ 2hL.5 oDڪ6jA55X+l<; wZ0lq;@  /P^ ЎeYB9N M+C*D,z'׫|?JQA 1r:Azn ՜u;6݋IcmA*2Zf$*8)3[ﵲ8&o6lǾ;\P/d9ׇ^az97)Z$!iG<.W7iicVW;D[s*C]9-o21%_*We#=~?#ܤzu%(V7@>׵G+\.  Z<'j1* XNOคRg \Org×i8G Na{װmϙڜ2ZĖO&9F̒!@S!:)b$l]AS%ݷsñsD ,&7 ܶR+psY]Ղ֟)MJc9$d/k'> H<(6;kS*JF0W8ܺn 97)(0qgmv1PQyG0~a3>AX:['k\˄N2}p2ю9X{pP27p8{OivW0I_B%O?`e2ia0aG1/i8<|&;父xm6oV Bڝ괄 |}[=[= wtȚ c(I6FXbupcwAiwlm<90T'$0`ߧq-[_ճtȫG@qfP! [h{4Ey{BKѣGld;ޜ.<^#_Os]}qT1eC;&lݤZǙLne2*բ.{4gn\W>y"}JfLnC4݁DYc-Oо` &,[\&‹! B}eQ$`7›ye;TL9=tv"OZ-$o|1Hw3:pA$Ctl链?%^R)?t]ecZIɑ*nJ;l0JP ՙud7Y2kSIP-f5@ꊖn>鹍{_{{ދ0H!WAQ8"~1ȹHK%b]X`xFL9GtP{mKRnS$oA"AwnG_:[RdlgܕI kg*zܮ)f+ߚ%Zo-nQ{=+Z&$Ng[b6MT^/Sajc&sa$SfoiU=k&3tDŭ㉤&مByr88]"SdG>GilS1 j<{993(Vle?! M2"Wgά°dbo;q`>}񚚟>O&&8)c ~9rạ( <s>#wU7aW @1ᚨ:'[D2U펮JH΁F;*dB_hAe'#|}1NfMJ apy;ip*um jgLt`MZ^͝ H 9ۭUnؔR}_ڣTpY[[MH-0d 6q*?_p pU =^;Oӳ ηV"BAZ?'Ƌ/)Gz'-#*hU;ܔDdKXoE=Cx ˿ɓ71gOZlTir lT{*Ygo T^ w|6i'l XHgqB=K,/ɺ8+j%V Dkgsf>08496 n}z ?o7o0"3vq@p{n.aG2A / gmN-qg*đQ3'?n[VϢn RWQ*;HaOG+?A䢚)W܎"4LVZS07d("CbJOcx&sr9*c (pE lsOAf;3ϧ̏\˻^FJ*lG֢:^@<&,Ț5[.*Ұm3^hL³˒Md~ر2(f*5rsrv%;Z/sR&wLn 5^tSioyus,q2~@!Imug`GK7#T>m?R$>Yx3AA]<< 4I>clX+,"HݴOiN s Գq3ps83 @ gyi9Wyь{go1 0%! ~ۃl{%)(>_n魘h)A+7 ʁ.RʿԨ-1#m(7*ן=$]ZnŻ`Ł ,9IavWZß6.,vP!HE(d3z׳QA{e!8ZJy|b:~17?z艫b"$(UQԫ|2Vv뇨_**Qe BI5x,qEArjY*"~jJ7yDUGlƭ8昲C0b̟,v} sRtJlvcV冗d猞ӣ8:˞,ޜL:seCh C&&Jl2̂p?L& :P?ɾL˂QMے06pCAI f leQ,Ss&ER!.Ͼ\(yaR~ys_[GCrǑD,wX$öG ohP,55D _4 XcXբU>-, XJ)& WRMl|e8([;;#{dh59d9#w||HQ#OҞg@vb^S7{PQ`awtAPGL+htHt9O/ {!@  A0*%3q.YWaU 5Λ cM p*:2 'nꡭOrb~hʣac3,WmQErZz0.ϔk˥ (=AyV)pP}J@ğN"Q- G~ Qp,vԽn So(K~EТ#[c?5DB3-M} D,$]bu5|S)QG|,40F8e{^.I':j EeO|y>DEk3aN,H&4>2RW] x8.!饈-,8I>ghOI?F}}ӌq"ahR)4]G۰p$0DQ=D!ʿd+c|a%dB8jGvpvjƨy!mv!zR ^AaRu`5 4\9g| ur2{" h>}zkkjUB=*U%FYWy;9!Ŏn0gQN.c:XK嚾)tiDAp\D8|x ATΛ2čqR$pQz26:L6~y%9>S5 U@OOȕ.LG8>遥y+bηl AK4 Z?b\se%TL8L + B[HF nUZvit:ȾeNظ&)J9R\a`0Ki M#0 Խʶzd C&L^n#(ǫåo}rhQ&҆E*:xmW-YĨ~0z2!Qo6f:-Dk.q%2uzSdx )ab`X7e\+b|(ި>Нc59>Gw*!&klRť) DeEm4Y5W 6#UK-ԐZi؟] sct~;,ܺܙКX.;]&3w5@0_=Oc:SK}KDK(1&/$yt>3v:We-=_Tͭgdv|SqOz oy w717J \W!9a_svxݮ^J=,IRMÍ@)qzs3 [;senbz|{ؕ*x?ԖiTZV8,B.>hvt@ޖ9 5 /^˃5Ykh3@^G$AWGҁ1{FM Ѱ@#LPvO \yfm"uS3ֵP UP)+W scGwA6S!|V!cOBCWdKCO2)x!U9<."_纻o@*gs)E6,8~x5IKw΢w{BF:È;ú7"v8~ [?'in#@ 4.vim[5o4+ڷ$-M2ΨLۍK1ӢBJrWJ_ p:ǜPue=fH\z&עiոr7oVtn15k  Iq㰤a' i#(?eIP-ߚk递BkhЦV@7Cs x >_VJO_r&3~v؎Up|%.Id,j& 7SOhWr%rH+'=)W_M)%ȸ'j~ {@x]&43>x2h_JuߨkrOs ͱƟwu .GJ=z @<18o w&.ׄ.qpU3Љ p \ maPn"4o}9=ŷuY Wض3oWkJ qGĻ1)ľ2 +y}lgn\U .wja̿/6G4 qVֱ5n?)֛ t?2"X)g99`-Ft!67AʆG_؊q5h\ELl_XLzgɄC0J"" 4XvpUeI!]>c18NO9)Kn]<N UK @[>`bdqBxm\!47^(-Snp΍&6@bYLKow~U#qBB(79{ȷp 46iԱdL.Ǥ)ZJW`|7rh( "z&g'MUJmks Hv+iN 4( 躿reSrˌf0*$pIBǘ5{kp;K3E]6qıG>m:ۈ/'2&_ք-?KrP%G$XۙD)"@Lgn\<( ^zUos 0бQPFW>(ל!yH "%O<5ZӺj=pa~o4J̢gڗgig k2QByAx& K'{uDyKWlvgJ$$3v`8Wkֻ7b^#=_x4 WF$έ"lñgB-L]SU8,[&3"ajzݣqU://wI!&j q/ր }6Tj9Hӕu{ =&B^r~ CQWc2յDk??{sv:0 F?Gdvo$c"ni+!|\47 "?G>rG~!X$_&?V0˜|ɴ@q mWKʼnT4KiFW!M1J(P4RՀj20jIo_ D[,9+sp]P(}C1tx3cJb h|8KߺM` :5d5L)."LSdVSaev^Z96e>6>.碒Ӆ-Eݢ.mT7O^*Zx$ 7g$ Ik!Y(Ap^9a=rYt~8^='Fr.Jt}Li$悘zrc#*{6LyٷU'Z#y\ji:r\`tD͟4|hA:}OŋPs}~8~~?(?r >Xzeny:28ڎf (8z]J(C15K+,;7,Wi((l|g[y8*/ `^2zPcdhUqOȖ$\'9sط៳iev|ZhKGڷ%EUq?DOHM!UROb>'GFp3mzLWY!"uO^;)r9,x*F` e2$d#saUT~$?u<0 L529m*1*}wT[Hhn 'F†>bjB@}a)Ih奕LZ[4?"N+v;GԸB/UFewRilqŤghxnN|mn Q'aS/SKfU'GQD.3c3gۣ|i]~`N`~!Zk36]YQ/b !Wݵr*ݱnڌOͮ.;(nґ^݉W,+0/xӆ8u}O⛾<;&TA=--=/ňmC^%inKl Hq>1oڏkקf_H.iVM5ۇBcvx>ܱd Ie˜MU R wQdeSpYnрFJY#SiGS`/su7ҿgל̬׏l!o`C,2G`\ g3OԞhXW)6#D68Hm,ūaLP[&B>)\@3Џg@}WWd)bYE_.]' 0y84f"oZG6c5dmdbUuou23ǵ:}uZr,(:Xy&J W!3<k9ny;ALa:% y?~{tI檥*%ys4pmeu&?xP9Zƙ5߬ex߇"&ܩ5\O;=$WEN;ewqh&lhZa{ه%-X24є1Y(O~Q"x1 J],q?Z7sǔ^6tjH jzW#`^,n~G@y)hn붔Nb.u@cnfC#~602N'f`Cw^icib,YziaJzR&jVezc4]: QQӷh*-6gic<@ .s*X@PX* u}G񰒮eq"5f=,rm:TxBZLU\N_+kje)@լrjzHQ r7⛡f`| ~M^eon##ӎ]U!my'gljbrȷB/qN.&w?|зѡ-e3|bN48!D 3zs]@&V(?ɈOat r~b/cdvWs/o#T-0mawgN 0ǴfvT-TxRU"-3ۖy/t7I8 #R>D?"AT.%䅪lFV~q,krkWdShv 9ddI,E01g%vJ 9MUVV=X봸sQL fRtñ]/CЎV&9y)ѴNVCMu{]->{Bq;8)vKLdG-ፋ9dܔzlSXR8*֘5;+Q P;eZR܊3mO?F=MRznoFt~`W !xFHEpÖNĚhɝ-8aږ5QbFWZP+An7;`_"k 1 =δ宻 j8^Dٴwq8S0leb;^mC.1j_2$Tg-8{.? X7~ۍ gպng`>6a@ffԶc{qv#~P`oe>KDw`+ʉr]H-ܝ`rǗi v8z[''d3(%hZ.5o[#{#=YDO9@)__-_Nbni_XBja {b6YƟU_eĥ߆ lӉ$=zb6-TrbCyia52HKN(*M,v Z8+89"NZH}nftDZŢ8Y{Јai+`! `l_clrƢſ> s6q(#' bŞTut`Ү)֌Kyg"㼫pϙOwEk̩M>ߪɴ lo:8P+Nt, U s(Caía[{&ez:+_]J#1%(o͌r"]$뜒W909ę t\y@ YFUJBXdirr&]080ykQ2~f|`OQegS͹xjy0y8$} 1oD/@g hYE$0Dn HTꝓhfgp"Gͫ,\、&UW"?1M} 嵰΃ؑ*M0 <J~= ab%T8| 8NWJ7dAxR"Tol$Ǻ@ *ǵ;1qN@ssi33媒օ z^3!Gz8:ea\ot:rAQ4~UaRO4B)TSxB%lc)P(ФZ< 0H@N%5V57|2VK8i" WV1 Kͥx Pmy8#ĩo`W.[νDkq]7bDA@[b)pdU4!_q$=\ǃ vؔyL#bh8'P!-GT p@2 dC9ۇ|1L qIm&B|^JTwoŵ<:hu,?8~U5Y8S0?Kp1̡6!dG[+&ֿDIkI J<Z^r" =rF@Rh04)hPǯN= w“]p`A ;ddPHPHW$2sV1/,D ^?6aJei_黏ܢ2l^ a҅B3"ĔSkaI#w{J*8GJs،eD2i=)(PA2=Y ܾx}o+q6U]V!nv/+ɀW7M#';v>ȡ$褸q]M{U6yY]"Ms6VoW&Od1ow $C!M 0|`.'bffm&gSEG ܧ ޠ1O)#ILt7uCXQIA0#da>)eQTP[ _pF$`tٛ&Ҧfpr~Όiov铮LCG@3.l r.Skz<lGnKz~e))_''( BxYTaÚYI fhI@o &+9G3.0q54;dhPJ7d>O>8`P@i ±Pr)8* zɃNC^t_:;ضpn|ׇ1:7ypԻo鬔lyl@:hJ>[0\vYT>ob@bʒ](+@J\KF eE09e`*;%d: aGpk6]TSǝ#"H#|D(}y̚ 1%̈3=Z?gْs!8Y8-,IKB\]-i>4A \e7K?+GH 9^hC.ؠe٣0vMe0+R+\~Q}ӭvƯ. =Fj>_=[^S/zoEwmg*wUI\u7A?]Em1"n OѥT$>M6>N2OޛPVDDUID||`BQw ҥ|u$RuH62e#8;#?(5ތ ɕ|x(5)x:$jLgz:uC+_<``{zRv康J.<9Y> ,uYl⟗^셞-VC$CIMȻ^PH-6BH%lK/h'2Iꔈd*#%TSNhc~9.=) ҉jn_tJւw޴cBGBa_ *W&=>%N 5"q1XmN)`Yp_)l: ^]EcƗ;zK Zk. .lY=Nio뎬[ CW ^Z[' F 953έa~{{b7Ҽ =8FrodkK$5QAbBd'Drxʋw$bGm:WOi#q 1?d<Ĉk&`o mMӠav14b9';t7@;Ta #w}ȍ KmBIpDO%Y=u 36D[9b4AzXގMeݘ2:`)wYv PkFXr>KWs)>|(Vsr烇6hh𲫕Ѿop'7V.eRNl>ﺋa9p\dG!d%0ߔ6‚̦\_޲E,MCk E7ŖJIRfB P'tŶ`yeOn? NzmuH`%ɃA" z*dʩ.0?:6|xBVNtMQй~sT|㓅Tmϒ9/_lAN*-ԍ~IYZK=I?iN`58).0S=9=()ŸٿkX Xzހ'ܝ a4Mc7y(Q4̓̍ C,kّGyҥzDK(=oRk:qRw/Bs̜F9ФCE_ +ns?qƦO#j&91hФhy Y#) E(DvgcgZ)ҧD)0O[`z /c|=|,Vãtz  UdT&A/0\~ӡf2]%n ,]b+pq"r,38\ jKXxs+ɓR=܅ N9,ux֜\"cn'_;W4WZl4n-j-pcȫE<`&[Lp[遆p6J5rilY$vMҘ|=n.٤&tHQ/9ϲ ҿt_^̘|YxrO]qhXŷ3m@IF s\mgj(fjZvϑ(d{71݈VB:wIHFB!GT)tJn>V4IDU̅P}9zBG$t2zdKyg T7z~>wxY%ЦKf̼Tbc=,OdZ#oo>qEyÎZYkSէP L7O;dP^\) ǼQS- H:DB3w+Fce^ܙB{ C/\Q1Rza\s ӠCQ2ņK/ Z7$UnO5jNjx}T!֘ޛ$uUUFE.vBݙ1λ yEvp&*^y J~Rȴ;(m5sɳ,xm>wkzj2%I-n(=)EXg p{& BЉzItɔewϞjX%t󄱹HsBٹC@7F 9s5hxM9{W*WXiT5퍑=)d$XAoH:yZ]nNj-U#2̤uNͨoX5-/CH%`dV"y\ha-qs --6+a:F "Qy\ gRDMfj wYou"~2{w=Ev.ERzQG~->dZH[uv~1^}%_4M8bڲa+] V&f{\CQY4 Ae2OpJ%Jcf LKEk f}> ?꾮 fl0za `ƶ2 ,}㇚v.'Ǹ 5ԅ$*]p,8` GR­Rmآd!Sڣn#Їxou$͕ T1=aɤ3\8KԛUFO3^s_\tqUɁ/Ƿ.C{.w=[M r$eey ܩ>GԠ9H nFJRYzA{.?$vPƀЍ~/^T8e =rvgUڵƢJ io/|CRiFUFIt^'  {z/4$$5#`i$bghQ8+);b[ *Ŷ$ES/8}P`cmbxI)ax`P0Z;pSszɣ]-X.1瘏yViI܇:J"׫[km.sH^TW lOZb:@}x5#`/o}νS,aN<{V?+3+4!`=C!'rx@W셏?:'_YU8:W܎,|<^KORC! zLTܚQ)c a}V8Ug_*Nz@[H!2Wa#FU}>E(k{ɇhM~7oP2bG+>N*b:JA$o4 8~ sgF4H'jV܋=.T,Faѧ&=+XY!<n,?dxkQ(\qガ4ֺ A 51!nLmY343VHHS[VX=߆J) %/[L$>?B'dXxUm[өb>h^FNp/59/*UOƆ U5=cyFG$AF!f͓FI37=%gSL ̵Y|GƋY rc*@vk-Ch/ZC.Cd!u|{ "41xA!WѼHTWᒨbO(HY;X:$ˏP;sޢne'(hA\ X[IK*:S<Ѓw[s= a[v >R`Ldɪn/^#{<*Fˮ ~ejMx܋4dD5C^Qcl*~L yD)veI+(L2w|:]kk˅^ZRIdrXh0E/28h Ёm8-uw}F۳`SszWGM+9+*wY|@ßKGZ?ƂC*u?1%+#̊+ޙo˷n5t6r ݐM\Z=|l撪*_#l$x~]cz'86|V2 c‰ZrشI-XkEˉ6j偩_A?W(TzQi"b榆 [4mJOmA]CIB-6}phOcV ^[GTgflh?x!!p^tn<M,q\A\ָ=/C>ww4[̷yVEXP)lGw31dnDq}!扙Rh' /HƠ~ޟ~D]bcNaxnS5ؘaѥh!X'Y[Cvʶs\$b(J6>/:a^QfuU]  VJ9`} J a|a ,k^wuqXĮ8:lM|Wt;\b8ފS5'J;h~nG|LTϷKb Cz MrF:pH"1VN5! 9iw~J3+)a8Ǿ}~`۴[ vA 945I+!`y-*Ep=o"C e]g/'@`#=CP622V)PLKW/}6fJ۞c +1k(AErtgw'\$*',%R*\ZoT\eʜn2[4)J[u2&`Cٟ5w}E"qpU.T i2?dDwvq5a1IO s/ۚKd L:viP9id73&./oQ20T{6WjګT|SE`J ")37 ÄXteB4h*SR dvlf,P}f 8qbԪB.! qc}iaA%7&.^sPI'}-3uM._lê)oya] dMz 7!1"+- kx?J'> J AGyv5f؛XqΩ0O`Y7-Ǯ沍!o\h ?tϘ:#k:"c8d<-:l#K`)~ 2k\ 8+Ƶd눧xdNyEn-a_/.X TȀ̕dQP G YjQVYH!Wd01)RFT]ۡ{##'i9dcAsEŃ:W+fO)RZW4Gx\zx|b`ڪyB@Zzc↰.y-\7Ưu+,+wRptDxC%D]/;@έJ*OQ7[^T=2 NM R}$OڠlO`z2E:(c`!:~sjARPґh]WZQRjE- Gy]--*d R ^`&q".l1[f^۱,TDuԬ%P[BITr";ֵ$V:pFl03㞋`ƱvQD|~:5CtyޭWnaVXm5_ۭ8aR1Mj3W#MIMk`ۋ\?k/w[,17vj0D(AfMWCM+l!%mF8iCIe}x0 '>1?Pr ՀهѕK`u bƃ[<'a %/du\ݩo]ϷC NA/ LSL ˶í37|8rGxYtzv- c3rhS*q"͜ŦetGWinH J4ֳaG@hW_o,4/f|8J[',ԮyH]-˰+@N/L'7<S`.}7wwfj2./pYՋ㸪{!:~t[0v4AFuhCK![w5/E7 ,oq¥32ޅq2fB^ozv;Tv8bo 9[PV97 JWz$x,OuBB|ub&8FO+T,ޫl}h! qDcKڍq^p6>[U} 5rJGLP(A~B>]瓿zkAd^ѹ2(<&+qJ;e 2J%^](0/옴xIUӚ:^EX$"Nﻅ)DÜ =>QU?IQG{H<_e7VI_=slnE :X54}Ksdd3S#K5aiIjexj@i˜* G*a!JZF\́*ZG4E)Zl; 3u6R!u ,M.0޻>"ISo㸌 pwc  -)'xޒ6]uhù Q ڴu胏G JKѻY: Vh}O9z&3fڵB"Ձ N+ֆ s9n|oR l rh Qi)wz; -ޟ!Z,l\.>0M㻝41+uMNMYmmf\e b yrMx~kd8H(>#af@gtOTh".(ws6,} {ܾh:_Is 99օnG]Rι3ylV (i?6.?+ZBz&u@iѱRK/-^ 3%>,T:/tt!n#l|:]ia/qft Up/`o4iv< s{!Di=a ^5hUk`nKT=']BlSVJCXN*:/ V_ c_ǵM3;U;~#b즓W F2+"jS oI>˰N2-"tQb&FxVcb _wS1MJ Dӳ+XoQw@k|i-rMA >gƒ_HHYzi#ٷ†\u90>‡-6ˠ[#6R?|@=w.xr"vDPMJ4lLtSwcG/9Uc$\Uh;<"8#ߣx[~뼟6٭rhu@]ͯS#x f=LIKMubORh 5 x(0\iDoxCb*([1JVrQ e'0-}@{e# '~)8I5媁˝ˈOX XM%Ry9 Q!| žH[48r#>n&#t*5Xs{_#MDTA[SXT!tfCQ\R֗}jrW YzZ եl{yJ0ȋB/\onGkUu8vw`JvK_(ݹ:Q%hm/s{`UĦѯ+XIRڀۆI!@F7a7n* %pd|iN#, X;Z5fyZA)3J훦oY*XEl-KM13 /2|Yv2IZjSܬӁukb^ {;X [ ,Мܶ]rKg!:_% -;7^T3 ƪV[u6&B@{8P6)sQá6G'3df ޚ() twj##$ԨW6y< ߄d:E*7v _WҺvZO}pа#S4sceE݋vWc~#ܘS0%gn1u4 L$1RCwvGez@v[OA 'BAkAJy'&ӧfB#/4\f ٍVOrP}|.y[TLK"|mNu*nNl EuM݋'}(AhH;W“xp9k'x-B[Z Ic/BOFz _u@} C&L 0>mU~* `&P;!1ȣ+Sx ?rv*l] X8^;Jh(H JVi 6 c{XT_]U5i)_#X>PW>,X<%֚CnoT;W3ҥ΂Ev= _!لw 4S$Ǯ*2ӳrUCPL쨅҂ujEL.@ rԐY8>7D1?ub^MoL{}$R`ѽ0tdЍLL}h/ d"ϣ#[*V£v XC'ZJA:Pʓ$u5^e6\$j9BVjǗ+^u={"=wL+J {J\fܛ,=T-Sc3O>}Ӝ \郚6L=#7&"b%G ,D5勭5PNV<#ljGzˋo'=!YP|{ݻ>O)ʑnAs<Ohq>6WN4O#dnTx˶—a Y{!'5[gl$>셴쎤 [~ÇwHFunW֏ m] KdOn=~b~((Z: :KtX7?Y /TlO;B}.+뷙16 M#ü%m~Q*Żh©u@48ZO2XpsL$H:OgdriIBH$ 3_?m1)B  y_‹/azî2) uvRU uw8f+gfO|30iʧDOó4Fbblφ-IHh2p.^X ʷ!4xH/=/kM˃o"Y,iW&hjHc6@56ˆ}R.MzhjWeb7}޲3XCuZ d&K% ˱f[f0M۠h|97SEy"ǫ.%KO.bko# B_Ӄ3{e9Z9e`M/u?p݌oZ?dLTYUjyu@'{u`6l|c%OC5ۀ@rDX4 P(0qqSM- 8E/Xl#  ]Qoȣ!/03b5ݗUEBq 8K\WY" l@ $ dxXV- %WnϴR-nR!t-jyˊ7۫r-%4<mIuR`fY_aXfct8z^.\F7@U%Fzg`fB@Vj~h"~|7|Z䥘/M+x L]CkPJ"vrQJ pvw70"ЌꚑD1MKҥpّLV %|2O;堲}dq~B#(.e*i.XUgZ .5,ڭbs x(*X օQ>~Rp(UcST%|:v;5}(5Y7u }B#NQ>T_*+)"t T4]$W$U<_8w%ljWa9?W6N*7T]5)LHl6eF= r)yCM釭}yc3Tҿ ԆP1C(zȠrpvq㑨fx.iиP՘M 63tAQBr'fэMs\=#.#^ct3XMk}Ocs#dRzi85[).y6z= xpds)t1$iqϞYø +?nTMLZ'!FEg!\cW j g2sAA'[]YB6מ* j1x-cJ̵ [pk#ޓg{Eq mr/˓c.m@&:Ϊԟ9%1 ;gxSsj>2,مceQMb{_q!c> }ϴ⛋w2!k-ŽèFR[T`]X){p[6[5k"UiG?EtSgGKUh j^!nSZ.0W0A'dZ auoz0 +Lv>~kڌ$n'DWBuR>+y9бO T1B!=m3JK>a# G.Yt5b/EB/QN3xo\.| jNb3*K2f_BD$d* t]PY5f(5l37t??\T@;"-7KTw[͕2 hEӞ_ʯkx H*Vq4lAjw1/u]N-' |9B,_uYN$//dȩK2zOϔ`ク)3w:JC}ؿ -Snj/!H|hi&&-*mFJ_@auV DŕC#LqK|zLFwo]7#(d|2 HDQIp$1d 1W[j뿗:)vB -"&6Ms48J!{Jk9#SsU\(щk-4U^Kfh_͵AflO=+n;(iJX ,o|.^{ֱIѺ)9py,wh*' !G~eL]7;9SUNh?wOƋiS{\jSJ 8疥Z5֙5F&MRV"\SBg#rH.JAuBSK!'N#zf J^O1{d}+Yv͟OlowƏBJEM <^=B,*KxX ?@Z.[٤01hQqrhpQsyTQN_rzy_PRE3t}a-2~h jWHV02ck+hI',U_1;M!ܙH%I>,Dɢ"VzfЏήTFTtQQ~.Mi^8ogg7O rqXu9D4 B0 T361|ʃ%܀־5f~$D;C8#BW3PO4P6TBB}w/HDTAE,7y2LQvӐ8_%cwˆ脦&qq3 !w9-;[}&$^.ݮfٙ_6XƄ|KxUO"pr"enzC-n:'/˗ `. )sP?<<٪2(V时P- #)zw2=IfNS(sUP2qe Z?19p&n3&l+N?1$Sst'4<-e%']M afQx[q+sMlζ̊bx ޙa/rҚgjk]pp!ӧhRSArg Tx"uly9a!zj+gb 1Ɣ=0uC!bC6<665ܧsH>l6mռ<} dp' %ZxG:Vz!djsH!W{ S_D \EW?wt)|/}(n+yh(uƝ26$dS0twyzG8BSy 5|YJ^w _\.I;jfr/^'+Ë$w_&1Sbbg\iJi(2bv:ɔ[;3%Ic?NdҘ<&HxxWԴJdxƚqt7eЈGOZM.??e=]ƃH1aFڭOoJYk~&j*6Ł)֫Ac(mq濄褎Qw4>% E 44}6ښX; ZETh^fU4ŹK/qZ Cu z|8>LhǜG;+ѻܤ 3^O"*d͘=L.^WZP<7tN&IA GAjS'@Qz'R@[u]RMzSŐ)7&W9UϮRsY UE 8QEOq8j>q1ϠSsK2)`P)& +QWHZgJkk@p67C1q,Ho͎l_;:zP=;P iAȆ|.+M#6-sÓQkGJ)i\_k9b_m7c[osƥ We~z:xH;g-=@BLև UvR(I˓-`欮VB«tIfu|i Zb#~*Hga:<\#Mµt(RN5IeuKLq&+/S:V湺ysߦ\~k[@Dh`.D&怎sōaxw?s0}s1nv/FEHa8efNa :̆b]Tʤ&4=~!h,QTv\V/?,S9iR^^`ib)NR>@j[F0oz,|I"Pp$ wQ5ʎdóP{رq ͥm [)>smjvG[\lC yQ$|ƾAZ@xx)@B7q߾~NMx3!DBΨMf^6RZ]+ j kӻF30ߴ_N' Iج |[,`Fd)a W)܍/`p^h.cLMV^~+hG$*{"@ 尋uz`k[(& 3/Lz;U?gM1'D{}"3IOK̠\ kqb+$rNVƠ46@1t]C|fJ׊M*VocŇ p8'}т ,]dq줍V+5+{vOM ]0{X3 +(r":nIo곎!JK@|Z5?but" b~z×63vLS%*b<;atRnMx5c'Y.7+W"%JmB)\o b]kD|ŋsS(IF|ю^K'2`l eB :`DoS7:y}*2";+< gxԒPcsIHR9p~ N85ٱ&pgjEhm(:v[z+ a9`/5ݽ^<'SɹVTC#MzLSQwGp5ap#6؃)-tΓc_ u`?%r%l#N'DB+s[Psfw"OeۣgpũOsɠĪXWK8J`R[WlNj2m ,uq^0ꠔ}b=(M$ks +qn/Ҝ;7G_Q kXO~@q@TnqHi Rx/ mu-2Om~Z p@EŴboSq}D|ta *OKs@&"/ZEO]a\H"6x v#BUD~ڥ}'xgJ !Z3,BY>.xN8[ g?a_y:[q5{̂pfn1J1//OIsÿwQ^b%Kv`c`fծd[Y'Rۄ#.6X X{zUTN:x*GBT:oK!yTb## spTdZTm%xp3%bΑٿvmCtN?8)9 vIe cΆAS` JCv;ƆĪf6`` 'a4G#NpB mx zYqj<`%XOBr 46#mb[9VِH )z#%R(Vc;Ou~$,͌g6:GxG]`>L 9gn*5!;:j\_[V ,쐲&xm%[OeyMJ_] ۛ?[m=Yþs)n%xV!T*QW-Hq(Xx^:ڥ݁!X8]LcuGe<I6k8+\^l'*hEs!JVp L{7MV?Fqg3jZd.^^.%/h(xJ<-B1JAzavC7Vo>Q@s _T ClW5bSA)$Mq^ъ Xy P^[-gmm($|b=2=3LjN%sZq+x ی=k}NbC§;|qJ8dꞯlr@k2:P25.CoB] |wayel1Ed$ O%3hOx0 և 5ڽlCLhN@]دL/x5" KI XD_+ɫ4hʒùsN(uMY?fКJ"Y6 h#ki7iwDa{Q#.ѫԐ7VޠDxdu{C~vbCIzs cʴPz^K! ܹ:[iEaD!/*q8(hu&O ǚqb&.l.lebi񹵹$_Dǚmw}bXW[ <=@< x_L̫:Hxq@UV.52Vq^l|umڀ h(aɬ< .I.+i XR4^fW8 gVŻc^e,Y\<틷9UgfYu@~7~Usp*EMB` c!B QEcjb;x>Z >[~5'8O+ݚƒTw|ypL7",،Ev;Dk<~qdFBQ#ot-,ˮMtdšFC#C2hEњr[z~H1Z)S *c;OEX *%@`?ܧkX\orbX]F( f4E~K_dޯXI;3SY JEXZ8qFmٹnX6M,6a:/F mI8'cHe3 ,&fm60L[,R|g""LEo -v ;M _a YĽ>&wa i!91n Җ).yؗ A{.D(BX=`ز+U< r:_;hlhTū5-rB6Pwj8Wi@}T_R[^qLc!%%SMʬtrn6w&%@@O%vh3鞄F<ą: \BOs{_T¿ڒM^M+q|oK&_5E]&_؛,NOPlqX`V٩%3@&"\7EKoBcb=NJ!?ooJX/=8z0&I-ppSՎo*>=?\MSvcsVRmB2z :;)q ?m\ L>]Zs^6te\:LQQ%PO ~;Y(TL"|5U ZԋSб6ec%4ɕˣ"Vs }ȹG8~B<@"#~ Db^}⡿!<@ҋ\p5= 7MΩ¡ 30+%ZIA{zT*[c5/b.h>Dfp]ԁd T,̷Oe/ ]D?X,!{diYdv7`iqbFhkgV"c)A_g}i:m =30H[.Hd^aZ\4@ Ƨ[HE8]ac_UST43rIÅU$ "/6:"sBk6OD=g)-YX!اfxˢ)c0쾢WyAkM/En(z:p,ep&VmnP9opѼZ^\,8IL:5 Ș#AQ6V+0΄|swj*S|Ԟp*Zu-F2jȀMڠo,;Ur-y,z{B_j3-> uyTbi(tqr]0_ N?o5Z/LV0Wp`+zc&[$:v,xv9;c;*?(?{L. Ƞ#K"oy7/p_4Eڈ4_ee,)#> cui<v؀t?!I&"lR cfcݥQ%߷DZt* gd5j3iM܎_S .OS86dɞW8$pGaxWadhY!ӹU!ǕjyN%wЛ$5Yr s%-b>/E/ZƼy6.U;Fԇǫ!MaVo$_MfEbOTP/I<$|F[?#IG@/'࣋w:hH"h*l&g.U6WR_hЀ1cVmsT5-lPU=X X0k$O{mxP Jev%J ` '0;LbԡN&()5O}+6{>C{IO9qFK[%o0zKڲӂVtD^Bgw|Q.5Xrtsrn5h7Re5X|Ȑ4%EyW]EMຼQDq0{)HKra]gxwbrʑ:~ГFk-G}V{Vmj(+#*"a䣎(x,gOhJ{-͓@_ aJ s qoVM3M**~j//`1%:1eXFJ)1vx< PovN=vB0jW ڵh7v/ i;epWʞ$,x+d5 w$M&sZA2>PKjm<h,Xc~)qsKQ[bvqܙG;{geӦ\aO4|GL *e͌nugɢ{LJ?{(lEeCN":Aw BF.ȫR"&JyD$|ױp0tk]r )fصOm^w}"L ص'3XfY>zbfQok2% G?q` )~D7E?jT.4 xOi7Ֆ$X U д S@5.#г Ĭ؝^غ tŠb~nK!x><(ϘQ-l"i-0>Ya@}MqWoTiDhT{+Ў*mŧD!aFc}k8޲-*(?Π`#ٱg?_n5`2msZGb=W#D˫!&MM] Ӊ>EM$*<翞mFϥXX2|oj]2~)qiOgl$/w89 *(kNъF ső|WB|4wiwGF~6Km B$r+(\'ize% 7!o(y\zAZX{Aˆ4dUztgZ nt-MQ]р;ı(_LIZĠXE$\u5Q@I3  8*Z%Z.dJ|0@z>]en>'r+6a!|Ah,9"7]WWłH."dz[GwR[ϥAE)3!.VB_@niy%b"JEy*\bS3"󕦭x0Lb[ Ȟsz^6/d4Gb dAޥМr_t=w6}`wM=HЧKeU[YVph= ^a,@JAf+X I hfF;{ 4oRdۍ؄+ce_E0OGn27Y}jR/J]"pb,'.x,Y͔ |$p &~l$Ib76 D*> qҩ\6"*a>Oũ9s2 N.FrĤ82rCqT~ NoЂqKǚ9nNЯQ]~4"^$Ec BR_e+}b=R2*$-WV=2oOzEa&-"Qz$B$ֹ}ϸU$GbS(mzYn@]8blEct`Ῑ4 Nlt`D6#ӀL/l]'L4kI]mW8QܗK=}M1oȻLڹJl-iHFS$ɥvޗq^mC2M0UjF:}34Of>e?OF6E6Šz8.'q?wFޛX>2R1lY" xZ9q~}%.VJ I +Od:hJzZIEag߲}\I8L3!'bWZ~=h?KN1K90šdkPm"j-"/lIпO]ا.z!JCk$^Lw^]e/h4kesqTz<#[, ީzvNhV 4ћ~ =CLѤPvm~.X/k9cKIOZ;Q=c0i,<d]yT*cl2W 폥'K=" G_>| {+'FG jײ[48_ݣfۛYo@8 k(Q 6ϐ ՐרHҴ72c-s޺`>_zV2teb*mK9TA=[ *G6%+\/|a!9?Q ]@c/ͨ"ZPg#Ɔɴ< PTQ*~JӮS;aC.[+@_u f.l_B%X[}ɃKvҒvʹo36뎫8֥( E7tFGY]|>R_؏tQDǡA.)uYU?fA|s dx㏖F uQ.'RIMP?" *}ܲ;WUŨ8k\0U-yrx jڴ5*I;J {Ay򒴦&u(5IM]ʊ/u_* qHaK„.߈"ċr3Gs˜gg Oo,=!Lɐ,y#:מXX.M95SY]|m3a&1ӎS^guC$(WqGAp\zj+,hJ@nEkH%jq4(`~/V6"qw=E{veO*H70qMP+%RlM?6D_6HVЍMM&k@8jÛ%C>^d?-I# ؂''0b$mOjf0YskXߘC:yjhPvA!"z 6zfho$'H$4dJ喧b+HQ@0 ~~ MJ%GvD()jsdg8( mb 24bSw,Lӕ%@L .SLk!~ -goU܏G 059fR?( gZ{N@ϳ y @Dsl:`Ư f(pXDPE+TD"Z Z^cq&a wG~Rr@ul#WJ,kA!3N .%)3͌Dc;wK}̔ _tdg I7JJcl@r0gixNީ/%5ohe1K o0wX@mFM}g/Ebb~^T zc8I5Vŧ9G':t N52YԔJTѪsnFttG} 0y2-=!k_) 0#B>wXN eêBzH818#xy4e'i l_OuquʕWq 0 ɏ4L̇`h-v4) np֦n1rƧ#6p\;/ IMN-eP8u=~YLK@vBaw _8S'mg3A+ h)˔o0Юs~Jֈː#dD}L7#b a#_] wz~9Dn}4CsUM!QL.\8.adԒ]f`d!7YGu,SnkhwFgA5WOY.OḩFqkKZZS`0P@Q?YŝH8$Țщ#lnWBPsi_ 06P}U)z8 jlv=rʂ}*YM1 4 p]xJfJ8:?p@z CQH>p͋vlu|J D!@[% ɓʛūs0r) 2./TXlXf."h} טxSa DwmuΉ+=RQ,8IʲLK'cF_?ObX,cG{mJK$OnOvuZ5 CQ႞k 06%VJO|a] dInvq"3ہG tlkadpl‡QT-Rq^zcIC>Ӎ1+S5|/1:eq'R< Pp/cF@G|~ĆJ9*pa<8-ηig(܏r ,D`É/0PDy)Cj6C3Kv}x5ѩ̣ܝ+of9IM^u[I10hh[y@'wv3v , vddKBub, ~\Np%LV:-%hO8I&3" Lo3SL{ŕ܁ ~K٣92 7no+mL:/K<=4{[kDBY~K6$@SWF2U^%|Rϳa;TjCXlkIYnޔl55% uT^vķZ$,̗UU=[$M20{ŗ']kpW@\O!+0߭|긁NNa7լm,|K}#o~Cz˄R͍!1~/D'n}ʤbR :nX)s->wfEK%EgXCKYء\pHJ=c}oo7F$BW<OGw}?jc#Pi؇E%Ѫ]{ZFCA$|ql! q\xj!aQBV- |ɀŲ`+Y+8.xDg`mq_JehY&W7} p|}%3)t}_YmX$3x_(6'|R꿭H;[w|Տ{Z,`tcq<>dtZ)IyWZpnym_Gkj@*dKfBL 3π=]텄<IlNɆ<˫ @n7oў2gV7.!9Ok͇ //)09ڬ)I@H_'H7Sg`FI}4+ShQ9.C(Wڱ/ABN)-~go:5dq?Bpqc %323 ^ lv@K}V}<[ʕi\`ltO~rM1FKwA lɘIwvL3QGc_)~z JcejmuMmd[ߴ|m\8mY!}KKcڼGcweWD#"bcWI5bbm s1@ Y]?A!v(\VqO!BlsAoC!ӓ^n_""S5P|T -o4 53QmoV5Bx>{c~P0ߋ I΂L: sѰ,/ "eQKi2J*3avzh1Z.07y^$Qg},)g_=kNDfb>ٶ-,1W7~36#BBՖg?VQּa9qzJ1!iؕ`{qhN>f}-c>fѺ[j::1# V*@a;\dX A3ϧ2Xʍ%C! ҹzrѩ?$&Q%m N'h2} Lsoh:!əAc&/i 8  imgn˚z<]6,:{7aAv6\[crAlQ@TrAU$Qn>t%lQ [*@'ed|Zs.Vpr;sDRUZTYIvOJ$"-ElsˮH1oSfXJɝf3Qbo7JOAI͡mޙrbhkt婗4.9*Dܥ i"|yzɮE$&8/kᵈE- 4VA Ӌۏ˱,1 x>`l&Mqۄqܘ@(CZ5Qܒ>>npHhBsھ c(sj.M^Aenf+מ*Ǚ۵EPE0` *cq,Fopqs P+A\$`>Br ,;ZTj_ mvNEX h( \Udr. 훩^g[ .ha\֕{_]pi/'T:Ǩ軆MuӳEt);^ fv%7tR' Ij`n^mlaX]]Y_\* Q>E0RbQkLŇH_;m#!<׬uB3uAC3#4lV;JV"( !opWęfTV˰m poLVuWiIZ%Y'ɧkSq5l%怙keY4@:lH)ݾHX$v4?γ `0:,Bu6(Iyw)}Q1ftUW>NCl7WK X Ltn E9gX[jD²* \lCv/v Ũ*#H4T/kHog Z6hR BnZ7^ l?iN((ԇz_v8hl$'PKT#DGORך#7T&[CTTh\$r⧖⸑dVv l=DxC$D ʡh4ryvT!*(a4rk=oAislO&=OA<*J)Bknwcưs6aFDnxSwEs#OyhbiW5I?$n ՓxaVblQ %Jbg jʳ+-P ~jަ ͏݇;pYi}~N|Ȼp"bg_̯5(ʱ^@96%Jk'yXr ZeyP9G,}RT-լyyL^Jb]|"8\.XFA1̀!HOjN[0wpRT +m)${H!b3].ZĴ# nkOܐs͵+墦> j-'-Aڛ!\j!_?i1ut޻: & 3tVi;St+abn U &sc̸"XX=~;P٢vTB.7`,gӌChl. h$Tt\D5GU rT4egHyd2w[!/%! ˓`4Z#TR`Dv>:Zg/њY_MZ~wk߶n̢L4*M| e؇8P%T#0*s{d'ISw_kݕX:P< !=Y.R[.܎^5x>8i;>,[nՔA9XCsdf7ehrqi*67@}ta#J6OO)[.{[OWm9duoIY@Y s8HclԬ=abqzEEg;R>z=*l] \n5L olӮa n>ʓGPPt`u\vߖf;iJ34N帹wᇍGԗbHNi$6FH}g]iJk32ԃAvyg/Tbㅊis( /VIńN:ig}Y:tUd{ekХW_FX{EB\cX5m! 0"Yk 2^N0XW#7ngMd@j$ (K%/&}_fE#oٹ6j?+у] |BG9k7?-{m L:+,U| ZNe5D1[-g[8?z?=eY+&O M3(|$S긹lhx+_7F\|V*JCW]nM +wuWB„tVFzq64#/O2U0 Ri@Hץl_N ~Y,RDą2i|<&m6yэ ]>C2˹vt޶jn=%'@K+dJwJf~!f(CW}'UKDqp$H8qT$;ƒ@& xD{#_=Oy)Gd=ug(*'[L3k,htr $\:Ң.0)bcݻE"'?쪑_қ 0U%v$ Vse\E]؃3 gˀRMnhm5-H kpj$7`Ј`]c. N5L2٭iX,M:'f7 PGՊ&v3,.@*],)&h:R/9d0れq;z=7~E sC>/|L.#OCDMPo f`SǾOQAJr5q^5'GA>Fx<}r@[ v3s5WL0Ȁ| ɮ{h>kk:}q2~D:\4fحH|0PJ@ 3_g Hc rOJ Mdwrj:"}*#ԹـZ@T*0DziDǝ"?iޥzxJ,27?G踴9}UyF+У9ê,}t_4iʵ@: a<էx፶voD)W jz68/}Ccc/gZ q:TΌڢ0RktCtxU)(GNA7;.y,^!APMX*9'2UNᰭGӜ4x#ov(6]IAI2t%SFC^R-\/)/T1rk$=eKymѪr_] TdS?iy:j&pXcf ύ[*ڵ?ehw?˚l iy= QJ;p:%A`mrW. }kJ3rؖ5 t/0tYd9tDUHw/waait tqLjRVC\L6\og[`ܞy?CY[|w\깕iT., \#Bn}/?OqL229ݵzgN3>cv?eMBmX?]$hRAA?(yc .;ŎK{!wZb}pVK輪Z`\:F؀dY`g8gl/ sVм6@tk(Fޖ[Q;9|$Tr V<߲*6WjZ;~rro:͉^h+PD9DUg])倾VMɰJs?E _r o`88hʃ&⬽DDoՉb沍AMjBR ΝU¸\72|wTVtʼnS?dro(bR|oywkU?&KUâ y#?F4񴖷4X׸5G 乷&,"m+{`*p-Oݿor`=baZ;8N?0z0%3Q;T2Qط8Ƀv<1$9K!R5&_K88/2/ǎ4krrǞuzgia%,6$ꗯEla^̛NѵD0:m<3 hd0ʔk>ʺ豉08ы3RZ>ٙXl8?^6}_s4/U4~.3a))0)bD)MJ9Cr.cپ18s`fRrk}=sAWa+uB/)I;pc,9gZn Xr+Vp45e[+HV1 qy)1b3ɐ?J?SlUl%BbY,PI1wuu%h0+A0*)8Y8`vx6"-8prfD4ڔ5<ߛ3T@; 1SPq59r$ܛ mGC(7HtXY2 ]Q;lbQvoh &u=CCLE.v"~&vd3En*KMvx's// &Զ(A{؂xE#vlukR_wgW.UAךE=%n55:~9:Մ{n, ,Ӳc=ΩY(ԶF1HӁ!ȹ֣S_+ϗʍC@Eby vQX Z=FzGQpHJq^v0k\ӎL5SD*g~x 1!nl?K{w`Tƻ?~.S9. kոTO*An0W]!JndS[FøcM2^[hFTƟIvK,$5.҃DS /GuIx971 r—H{N0f w lgAFʆ-n"tLq-bpN_~I$` 0Nn>Xq\ߓMB] uvq&8WoGtN5/+d ck6T3W z~&%cCeVKU(<')-,`ϥM  ` ݺt92:: 4V*ؠ1Ԥ&9gGFjqP%Yq AY|A9muдi,rӂ`-,q< S\o0 6>#\U@=[ ! \`lP j*pw;扎[M%Ɖ={r-RH=A6Ӹϐh⢥߈eh0uӶJ,sg0"gB%ITS;nHT*sփp|L@,2B p~SV!N{АdlU`o453!-'  ' ^p߽ DJ,sRϴmMdR[h2ڬ>] IB͛7:7vg-J#Me\u / 0:XhsRkL:/ךR:}&b LƋSJCs6y591Rk@5=X3itEWN 2coyIu=BXu='"o4 0ʂRw Saj7ܢ?8BjzWVL UdySiD֞H刺xA`r+&ejU[{G~ʎaPʋj8M!?[64X )rQml#~?c" K,lSF˹<>5w:Vy+^jA<^ޗV($6DCË'QVOCi9iz"jv4fZ ^k5m RlR*BA ϕ@=pcS{[az@ ':Is#+jp'}]kyX+O^ᖇ띃U52vg$ԻsLni +!ˁf60mq*jKnпR5 : -K2 %@ei)N ;ݕjLd/ĺWбsR]lS"z)31c=O8LcgkPHT(J! Y{J77J"޼K^ 0)pS,b^dV)jGw1du=~CE3FԖˆBZggyEaMfMC&KQp`*oyÄGRN)ҍ.NpQ[Rp̨@.T{Z©c|7# &T̲akN޹XT eY>w;aDi{wX'aciev6}x6t*s*WXlz;c$;KC:Nto-ejrM,H>,{[XQGJ"+E -?LyCRpVe$:^eLsq]LK׳ʂv|8Oe -!Q8ժFfr3Xw5&:S`-M P.8p1mz0\p9)ٙLHu.U_0J>zL&li_ ې;*bm.ܢ3ng'̌IsE[3MQV@}gmSz+E0B%B%!˙3*zb)O,ԄƋNrwdo@oԷbM<u; 5s&.SRDfFX#;[ @n\PmwyԊ~ 2^[.!L\"[ j?8VwЪ6jb*7Av(qGޒ&FFR>7ͣt8l#ΜF Qk4Eu9F'(zÂ$d\0M8p>j l#J-ԀџV}H;E4mchyC6>#%,Fqċ^MP^κnSV" q)]HI1rLsAvxW|0>{*{!ItzkQ?O_`M|o#rpg Z;nu) o`rLh"vY2ՕPrsgi$rBQc/7bx/ٓN\Bژ7!w'T(ͨ ڡ0TB(ѨCz M􋂵sﳃ/$rN̾TaF|p:`)M0c;r- WEkǟ_p ) _M 0ye_LC. ˖Q+_{򵺤#vV̠TEhڢ~80f;ndZ&7ͥ`4(_ӠeAN/ @FyJϕaNZ0SS$eK%LQn;N( ~o ëC3B,*'e,KҡwӜQ[@q O`4/5_|ifDJc j41nKCoSB^c*^*i{~'̰*hm]-,L¶$-j>Q"0R*q|$_hMb Q>kuyҩ:$#P /cBo;@ѱrZBlc%yO߳1Gk!롥څE[9Lx}Xu* Q?,KhO?{JFbsOhq ?"y$[{0* en;ǚ)TY+omw[=?'J(vewxI>{S! ^->M7N{f4{W{N["0\W]mJ{ϓfZ 4L !q: }9Iݨ$+ I?R!O*ljkQ@͊*֞׫EC&v{PJ"?ߦTBzr2B~+wѺr9.4 @Rڊ_-aTt(=$\ R5.pe-"wI߼:Yk>PE >4}{JAUA@|9B@*W=8YMKxպr=+lF}|D áPKŻ$f*} aoۏ=}{[)UsPqW/I|5aN%ntؒ7hkTFUZpGZ?L:oV|<^ڹN߃OhX`5ˑp&,8;%! $ fx +D$X׫Dm8O YH$ID;=[`!4r3"f @:~,kddL{US\nWp#yagT[pވ¡UWDs^)N mVnAA 2ap?=XS-?OZml/l mn&F܅IB,y[Z7( ֘%* 'ÈYc)h āAq+nCӂ\p,rJtX./9'J~cvms"gp3-h,*k9yP[Ђ8[~vmlPtx,y),H8'>8+@LBϓlQn@a{:D&U l:ݥͳzOFҥrk a#$xfIYqӮ/h-w4?8oN5-w~r ZCVջus⇊VËU9}${vXj^ϕ.iށu0}Gvetl-:V k2x).1Xxh)Q34h)QҜGoz8y+9"@)qAZṗ>W:Nw#HAϡG+6 R[LÞ_ЕS߯^>d?^ܷq0Sc>;mW! 32v?--R\3?D/P^XsAxg7s#Ф=枢#3ܯ/GiE ZIh_zjk`lo4Фb-n\ڝ^aeO1mpgj&m]kxIwg~h.mb&{,fMp e);d fp׀fEpxM[\7AEo} >K: | bgV4Iu!rkB/M5I~ЩBVXٕVҍo//j-2kp&&bڔ%Qb^&vydh}G;)Rp׿Qa.46$|30m091q)a \R:gHMKPAXSUfU4:̥wWu!ui-`h`4ՄH|lRjvB&hu2a%C-NC} 9N\\Qr ێ@[c90ɻ4;|NM?M0<@w6"rt^&|t^ZAu*_$ڤ) c!?QRlчM/F9U9Ͽ| AXo]˟:(trƠ+h] 0Z)gGdڍ$rR&`~p $nˬzh1Ȳ{0[ ŤunͶ\4Z9ʑ(]N:rr)HR@鐆.YaKTXKW:g0T|O$b u`EL(z&*xFBWa\fMjxJ:5X`xcgVcF9F \.pd7|sL+'4 hq^"d4pp3)oEkDPR3V@ %$ku9^<+5Bż'zoǂ$p0vP#K-6H:{1? ȚLݢAIAY'_lzF7ܱ' ]&b9g%b#8.vtG@42}@W"W@br' V)hIzXZ\L6R 7Ȫlf4%P%fT_g#;BWC4;vrhaJZ4s-3ư@KU ]vãҒko7js4l`閦%UZYLH(bp2oF ^Ħ=cm⊮8=Jp*܈Sާ`b=-\οѶO舒{g0,'oM9\G, ҕ.L,, wڻFC02LSib~cw;8#: Йhs|EǑ19I }Έ%:jI8:7ww2o>b]Qwa|̂ V;'®F ]jVf֝7+nr){&Ӫ\uYB(}߄$Dj-QUjDM[AdB)/]2?E~Z|DVFp{LN]:Yc7뙵=Zn*MޖS4-= . sC,S;'CmzmT;ȑ{D6 ~I) TD;Yn3~ [>GtIwlLCxE'[f}[;c/D p^P_A `V߫P 80.D*1 xebaF6@dלŮ(^/93`o< #6˜+ZșⒶ`d,x$St k4\KqD\)"AGUôCd= (h}jݭ´HefʢY9YA4M* )eSwRd'ޟ \þix,}>\k|BLۼh] p'(#[2,;}{^[gV LlT|_)Tک%WC di*&p(r `kt4 ~Z?)E֑4+Ԁ^ mɚԥרѪWD 4rِa_r8f5?ksf@"Bsrej5r_K=Z=(Qc4̠ ; J#߰2iIm~)u a}<2KU덉Ծ2O N*iU"@`i@U8!dmutQ"#oq8kX=ĔMBZ:i%2o%U -ڿVL´QN$ q]`x/f.D <:9S12O%a)Jčye -jN6Zn,7W![m0saQFBRb+4o?ltH0tQLYW(m!,oollhR >Jh:N֩Q/aFzVte[־kcKH\qX Zi@ylXsU]PVeJ3D@@o!ڧO i 0|]0+R! u 7ЛkmnSPkѓ+ %h[VW4J**ZupOde5v|v5 V[Q@kra[,KÕe3J/@ƘC"f}z{_ o1_8p_cIM#:B.>Ntn\Y3c$EAn Ԍ(|"s˕߮Ɵ./sfxbirx:( Wݏ!D}7eCW rU;37/Ê-rr\у\ITوwN 9BTBGƥFWj } gA)NR]#QU2~CPtPMOKvj'ؤx=kVX&ơ9K ]ir88V9RV~yx+#X6&N87S8>Fm^8/zvw@kPwә[n2uy^)pI?E UG"=-9# zݞٵYE"{UCHrX#Ȟ:>Qkqf4Z]cz:y93]EItbNr\N/˂ZV?D:g{>1w0fUfr̋G*^jp:̺`5! /}M7{[QZƵ8'K;TxtwU+BvC|p~sxv,|AeY2 gc.~il3 /[YJ5:n.ξe #jR_ߛL^\r(md!x^BM M\XR}EMDO1*Ryn˸5XoB0UAJ9\5 c~{ǫ',mTrqS?+ys' ^+O7 ?'djIxWBL vJs#c 뫼~lB /X.iS"EѵEpcvؙK ʏ7<tڦ>`t]Ĕe<\_,K&(^Sh8G 黾+FJG fZpvFo8hb qø\ BN0?7pٲS/s$}~2{peEL^fT 5;K yghll  b#X;\+oqIVk$QL=v+y/uKwfV:T[ >~A<3 bH5Kc_ل1Lք9攊-YLwyG)qQ,?#hI8j BB v͈20A{YFF-lZؤX,i>>|&&dtlllhEJ|0d ?gyY2(J`%#O7mb?G%9 gUOq}ZA`ăyԝDeljϩȢ Mf8r2DZe" .}Hef#yn8JCEǯׁ-s_MX`S 2~ݖT@ + KKf[:"S_I;(Bŭ@-)͈,3!4W7:ٮRߖE˙88z40^Gc7n&8s+"7+gSX_ZP_KdY,N.RE"A|x{.)go{l}@P٤Lٱ32RiWoZ.|Lm[sof}6Blj YGۭ5mm"C14B,'q"}x/5zy1&^rS9MkI+Rp Կw=bT83B͂wj:LW,K2B s2SԣsQvH;rÞ3^{^Y`WWPW S[Iaفp+'nj8,Z%Y\NZ4 5횈OOȋQTrWpqbRy k6d*)pTZT[,jM`=x3%eptg@@kTu#FFxyO+4lp&?1uʔ!.!\+{Z s,;4bFTq[Z&ށO0|2o:31Cn.kRPś4|qI:9ƮDTn˔RzkD}3zj"l.~pP)$S*4·__>PʧWnn&oh .k [&{ ,WD!kN \B+WJ9C80RPs@{=Xo4yqF)j@=x2eo[H=1L/SqC% A]x)k8[MD)7pz <~_0yfKKW(VtCatϙHY^$\Z孷6!#qU:GA,eC-^m mzfqV#*eOYU4PΥ,%aDrtH'YpT킸oS*I""#цBl؉IUcIN7mGez>7ͦ_B'b ;ǚ v|x8p |poa0wbEA, ]CE>,Daܱr;/ٵ9$-V{xMUDk:1S+׼A@-O$xY\[Iuj.ƒ%EdDfMD?{C{Ɔ`@rIykx;.֘˧NI2VB:+* ^}\Yi Ln\>+za~TUax6{>AIBk,O 10_wp[;e 5IQ;>0cնcR)b'(TBva$CCA[UB:{T?ñֺ#Wsn#k; @]O2<3K3RaI?!ES'BQs.H7okTlw瘜7܈E>}μ7Y_JGZ<䔭5#&ƍixsνrR( :(2i܋ݧO o7g0nS;t+6΄0iաUmQyף td#K`qF#nН=)kD8ȡnv&pc[urEb_~Fnr_nq}pva J+z^5Lɤ#+CvI$۷xBpn2wd#FM4{fx с> fL ͗wlGLQ;"s:\&FR{HKN+)4_'ON& iؾZ*D0 d"8c(RPb&nZ0~>1X6AmuWf&T =Jɜ/Xր{Ȱac3H (S>)IWv*w1o]D&F[ JLI=d'LFs/(i =*-IŤ(.T3A){j䜭M4AvWp01}C˅a0􍎴?b1?~ثS "bY5Pj!~si~+A {D0i4MeiU|'=Gfr_gԍf?ts.A;8w(:Y" +$D3]\;VɞaT5< )|?<- =!s5j#AmLyzό}Ӥtn٢;6WL#[#TQmfS8Sjd'8B|guY 1u9KTt)s~w/jPIzdn>d0P_Z9-@WO\rȷR=MmWm΄DUdh`} Td|;c_tIWC|`ԩ:O@ `#1 "lf. ABV- l5 t6Abb"խ Q4R#ɮv j3īiзi j90&//Ԃ>Z=限hF̡g!Wbŝ@)*=HOWHIm6\uARftwȿe|I%:Jmp|=-.&!*K0])]q њIƗ.&Qr9+yTM;#"U'COl{*jw&ii屋j-yyꃑ!P2VqӬFč(}"\ҍ&q<xx3ID;cם}vR[Sp@k6k^d %ݒ][9ƧU ~#XXȵ f&0"N][jrNJBWZs(>Tc;+[`vkVL0\˿ˬhԊB5S䟠h m=K*޻V]* -IJw.f0]f3!AS4)_-6 [(W5 "YkѵEb>;Jk X\yJ FtR^ #eR Qf kFK$wcAe̝z WC;!ǤXgGN*fq d[F3Os\w܋[PFzJ1$A0/M؉Ig4Ϙ+%A+9aټ}.vԶnfPI#}7SGiΊ="X9>Y[e@#~!-<`+x'a;K(ںčJ Is;u34PL Gp Fs`.6˖qxHE l%e:bu(R3Vg 4 EڝAY;w̰Da'$.;`]4"ߺ_ 3A Ә)vl Z[!ilNS.%Usbc RW)r` …xRygsWȫL. G1Qf%J q֋ڱ >]'#,j܍T`o*JO=ZwLP򎴐<1(#jK{\tvP0r6J[~aʁh |@< jcK-v~FB6Ⲻua] 'hp6 5/5S=i8 6\wU%P?FI6XޣKA<>Y=(:~&;8/E0x0賚۾uGRM.goԨF`vU-y:/F'j߳-%` Z .i,dj_N4أdIq8Px>Oƃ+tkJuw H'(0.ǟ[ɩ䆌` (.~#ʧdH*2x$y1\"fO8*{A08M{SFA[lCUaygKRm?x>y>o+#""N=koO06g馾MJeܧ˔Eqwfsc@v1!p3IW@&[# C":]^O~ZmPTǷwMJYW.B|cHcVO:31mMA-]/լLdL6D%T]в&ep=.XjYf(|Gk|`'»qٍt3~13 AN/@s JVC0*Ȏ$\ژMb8j_tcɭSdMVIj,~]$Bo0!XZY70Fp6xfN:I.LU. $Ech P-t?D'<>AkkqxCዮ4OS[P:SZFpP@h2w_(gTّ%Ew/3>b$μ7^coQ!jوn+SNv,H% 8zU6 x wfV1qt%ZR衞GmyHۗw.h's!DAIP0--)'֝gs7QDrExu Ф5z4O:$:> ㉂U5gH= W'W$?/1cJnN06\zJʥ͗:oF<>oǢ{̜gU"99A4;FX]zצhJ l^re0r?30=$HqLbD,AT,izE+R2i XI6=ROG-:Ҫ%͈Je-" ڧ=<ѮZVS d2C'/U5E S 󢒸D Zhwqzk'X1C\E7Vl:r8ަqBQDܳT*и!;bBy£,qhVa`&Pr λ;> >B k럴ktFz0X {oJyd r\kMriX5).!٢y5K(,hgeQ 48!dQdMƹaXčѴ&7P2r'=[gI1~T+ ZY*\2, +ng؜Q8fD18g˞%æ)6lMS h~AA;l`S dT$P>3H)>ÿqz6rwCH#׌:8|emi}%9UZBd؋`JK̐ >輎o\ /u&-PD\H E<ycP`)7* bk}V\?*C-] w &~._C 3Ncm~l4:FXΓcw.  {Ƴ4ͤ~ĺڮE@>: 0i3^ZyIMwC eT$' 1% |oSL+B囇D bG.5T4z!*1+i/x=p~k=_BDrdlLAkC'tPĪa5DgIK`E2~h0 ZwGkhg|8xD A*xl;x$8? /JӁBh@i-RLm>=)83t~dN8S'zӔUҜ%|ՙd:qgaqmr?HgoweL X* l@?h*ݴaoBlR8v(zSP g^Jk4<[̷0<'sc&^AR>Eo<`<.[Q) 06hxMq3f&z!NtKLVuBE zSD I(.:Yu0C'W}R42ʱN!hl`xb<=Up0<.pĴO$"FS52X qKgkf]Od%d?P#6hJǽ"Ȼ<sng X /"u 4dtSDb,;g١nLȜF<`.'ӟq 85R5>v~RO5<2y؞?NJ$hzɩ`,2z KʥFv4ĕ3! WY\`p0 BȄW{]\T^"g~\iHE {{n˹;-"a~eq?K!“2B]ct]`|k)>ٔj/dlau|c]pnjc.)VGhgI#VIlB[E#Tu8I%Nt f" ʐOf4.٣.Jy̥,hf5/ijZXsܵ4=R.e@r&;xJ#0$kKz3+ HJ^ang#q7$0(Vpe>7u؆ԼaeAs{.ƄikjF=Ve\`Qdںї?KbAYDm#zOa{p?QOpů^w@j5fL?a8k_e Cއ0(J$\[Vuj,{M3hn..c R:ڑPoUihO0s!\$K91[ƭEEyj%9]bNpջ G,̴ _!3 㮃UaZǝ,`KYT7u-7 1I]^H<A节%e.J1 $Xm; pBl>W9{sz La@|(G/ǯe9N,"farPRJxޒ 4A!˜? hIrH:3xq^١QK]CW#fg{7ۇ}_k/!!T@iJGV@ԥd] Ӳ 6$fїGVnmdu Sme3~>d+n&_xp!}9F'ZC07ɔn۳k?M13#`ӂ+F 4@0aijLJ*ыM*WIklKVPἼw5mw^sLP/eG]% =!KmF9cw{pXuqG+Du}-,ow]V*0CMea^(3U4P/0j=\td^<`YZߎ-iD8?82ݓr[VZmlSnM S`뺈p~KM7f"eO8BF&{^X R<^~Dqe(oe} wFDKFcG/4MO"-}m{އ#Mܬ G Ge7_=ϰr.!IYGGP>%Xno2Yhc.NCx~,*g u7~gәUcJVv1UCnbqK;%U)"00?8dMt( L⾂n\mkLKE=<Yc o'A` 퐓˘pbwjȟ$g.  Fx+>g!P#f.b1l jwTI.gRz7$u]+]m+6w6L]ύA^['["3 WqAm>/yG:<;ĄB#ά*!R*=I#f@arz mXGAlX_uou=Ҿᷝǩ@X@M܄qKScM %쐓ʗR4^(/51iW b2 Y.>=}b=/ 8fˠ4ע5mQi#%ZJԜgV>SDTj(.Ch4:JXWYu SZ7rud6h.(@?<B|Av d5Ѽk\']l(e7dF yz٤@"yJpwTp9*osNv&.-qpX;WETDTt$wfihдȊKZf)%E;L5CA/ jԈ`/LڞحAv@x!(ļHI9DU iR';c.>zOn0 vyG@DQJHmRTH;N#^5G^gI\DD-mzU@0`ОN=W뛛nnych#bH!0 5򄊤2sm&t|tIż;#M6΋ @*l\ x[WYux1TOXWl mQk.H 2Xpb 1B>;4xVeISXx;Z=>_: N c\pox#NڲP߳ V.KCc Ds ' A:B=G#+md@z 1}”TnN({"<ՍK5^U dU *{n E<+soׅ;~B/5'Eb8)p|I]^HV7♂ j?kaZ݂mjVELC"[j3VIY^ǩ&;(8z$yiels2pgRq|M+轔-:5{"B&?wC:n'^q퇢,;uKXdL+'$AԉLZ?M#8`:nʯE25.*11P@ToOBFfʢ|qfA(% a3\ߛ8noӫSzk[ԍpC@V(ɋ#hШBO9MZYfILƨY~Ҟeŵߞ=M:#De(] ,eVߨS]5ء)F{#[-߭]<bt4QgZ= G%xY==q< վ}mLs(e%?]g e |f]=` : ;9{ i ?D涡<&#JEks27_ŤwF͏nzɼq䝃h+[̏C􏶌NT(dQix1K|Ow0?zQ}[NRDe?QSNS /V8BIVl g:3OmQʸO BE ϯB *c ~GQ61 PwWENR^+pAg6'0hi8 f1 -ȗմUv.Hs#ɥqyv:4/Ux7ow3F,B^dj߻,d;VⲴVE}c}kr3 m0ە)ɭ ]9<0."VϳnS6VYBvqu<]>}mU:AՆtj"ރ&ﵘɤ @oJڒ6V}r`|`kE%{wCЁOhT{oSS-sUlk+AWr(JLwWW̗=ﰜe[ 3ӞNGeu~ON3H|e- R 7eh[KDs 3.PO#eT.J~ X5RT Xi#I0y׀.iJbހKrq8*oUF3²cB,LdDT<.B[Eڟpa,]>UT2A\7}_zIE.%hw &ɽ#VޣLj;u$t4&%<ɬ:)2]x%[cTz|)s*93*UO`wHi}qt ڃ\sS[J&zrm~ܼY ,0'ADOa)Ǔznd.OU65osPnWQIK,1/'UNrL>ʹ) ;e2Ş9j)A&Hg >k/fʱk_YG3ӏ \%񛒃w\\VS^SwN@ .m1wv=Z&fN5f'{DA9_kV@|FkX<^V+ X D0B~sU6{z$A3c>v^A)S-$;&`^S# X_y 89fg"4U=neTkךeth}ڝxrXd >}?w77M2̾/E6fa@-箠;bbȉq!9h@гWl8pZh69#rvta濷8s/eH*{w^ ?" Jp/8{= :CVa,hW(8a+ALVZ{δz z=| !ÀxJH׷z¿+:z!o-r+gFvk36Ϡ{,)F8E `aj6LZ cih,SEqќI|2*Ry8[S\d 5>`*ј݌,: ȪZ> A1 }ˊ;iׂ aq%Es053!0MK:m߃T}4"oqh.H+-fa} .#uBlɒ[Sd5g+Cy0aS߸(DOܢ-K* uXګ߱}eC-dGc'm{zgh/ Eѳ,[1EϘCMR4Ka%s: $4lŎ>To4[WώhF:=i(KyݐI؄j-H@qRjQ Sd͝ўҀF:f$CUU0ͶZ' DM*qC ʝ->K(4A?Ҋw7䙝ۯI6R֡YJ,($ ~hyy<"d`ddC^^5:j}czm53ʭP}TMaƆ[I;%λOM :!Ó:y?`ɈvԇC%t}a+^*&'AxHKc<*f>|X 0 Jo?H/>;*ʕP;*dP(5נ_v8P@984krx咟13}Y3hdT :0Pl,d|1,}xJWL\ iͫVWi]oJm%- CR,؇`{W -q}Znߋ遗@ഴg?_i{'(uѫ&u^w{:<~ڭVl䩱5{r+,Nr{BǬv]tFacY'@FPʛ?W\c F=Cy(_J]ujfk83eU(C9 |Nq: t3n%"BwV؈HÜPdx Go  >رnh V͛%};h~[gF-<;ؐcSMeet~f|QG20SG?Ƙj2Z쏧6:3/kBT?.|$_yTdcᴥwQn8/@U08^ehEiU82|x{٭#]d O sBUk 50CKu{Y1KdPW2XA4(x>Y@5Exs_98B V%X.Ni,\d%'\Y7 eeCS?Uso2a-Zy91w{v)PK5çufb_ހ;&etEmyHoD. )BWle0"y8-* m5-vO޻ه'Al#9w#xw7U- Q%Y/oQ7I:J= fz6Z|T2OxŁ=3lS-A?89(jC繦0#`<uݠZU)ѰZűs# 'pPprLhE{إAYS+Ƒb ՔU~sYmtP֜Z iWTSH>pfB#G6#~o7%8f؝$pޱ&\V*bKi&qpO4a8 N)6C s$dHS90秋 A CIn)Ttt JpnskӚ?S\S >ǠMܽIsXk L mhU*/US'տdz3h`:z1׊(bo>mE4G)Uk euhkzIf(l53Mn%Jw3Lۣq=gf1'$2f}leTZ+6҂z&> eCO6;{] >.c>׿ݭLg _&)9l2+34K!a;# 4Ҥ 5}:w-_; ϥWE=w7‹뒋YxBJ4"ԁoh8X7~4DT-,@1$" }C3Q0Mt۸4E ŎdÂ97+}ߡ1*ɫG_l&lh[G"7HeLBX[H߱/cZ86%Fhz 3)Cr;IR+EVS}ek0 L.{z&γh/ʭ]duXBmL;+g⯡5Qoل/&dՎɥ;I |&"PXz EvϮ'{ P';0핶DROJXx:'pb0>xEœwW[YVe-vCjPV]@SrϪŭhpkUsK I-bS¬4xY~gxe3k 邊-9_́pG( - B#!r}ZGw;7;k-Xdq=tp#{?2!ٟi9^SB*][H/\뷴ܳB\K bXvۥv ^2]V0pe a!4dO}}23uarW}kb`c؉+8E"/8!%EpN%ߦJcNpV}?Ap+{]ԫ%ivqjVPQ^/lmaHΥ\sersK}J=)LM*#KVq2VO`.2i-JKrz}My2Ri޷޽`zFjI 60'Oa렁nb47SI\MFB 5NHګ蒁=S:/t1eͤRI'ZzBCNvd~p[-ﲆr^ܨ y[D`L8z>-h YjPdcֶ)TE?z23B<|OSπ%RqEiXvAa @CX%}"\py ~@ +rUx3[̙-UOufv ]Tm%ƟŔ4Rm-n/ |fI4dK=ԃ"Tl0Q J(v.nMuvprwܼSJp-}e%$k l)YEx7aXV_jV2#{3CĐRmQ+gۓo 1Y Hoz#7KCٯӿd觿'&i_TzJm,bv^?RNy/ z "~zG#R"`5Ӊg7qpO)5Ƥ',˰p)/rFS"Sd;`甫E[Ū\QUHYߜ#K/1O>bUyO"?)Oqg _s#'"au6ɐɫV8"~=km%?!èWAobP_i,W5Ejt5W+hgN 汤,Y"@ ˶z[_hЬV`keV\T*SQ1mIGĨB%|ѐ8󡠾bAR9{>UU!۷e|aޒߓ* C@%BqaO 1%c={׆$-J/uRDOrζϿu4KJ\U* / \,ڬ:3έÿX( B2ݯwv2R'TsgfYD Vl `_.seZ)6Ft m3#/d( :_=wtSﱢ$sf@z P2K14?(10U Eg3, *$:;S1;G/@.33N2BlHA$?֬}? x-xg|X%oܰh#[>v>"p |Uma3Tgpy|9<FV imgeӊUe$GI2~ =6og>p皊jrկ;^ GVr쿪tJiuY:UOQQ`qXK)/hqI5W2zO?9gP/6Bsˎx병G_nm9d`fU!|g)'EhB} IuvuCObdHp$y{x* X /v]=]ċ"œaJ9刎j_ƆW-޴ٳ1$xCl NX Rzl0|zd\tG!waI_W T4aq o"'"=2kTo0k #qcfkwH`dhQ k,/Xgkw9z\ߝ>)+fdZpν6:"ҩT ,;rĥԍG= }\YP[) 4QOE";Ͽ R!ƛ#u#YYREFC3 YWܷ#&lY2t#ܹ aq {1!?uCEBw_իJ_Cunb&Ű! i$ FJ3rz*7Eڶ; H [hʷm2]Vjt:s pʔs@W ZLbA Tҁ2 j ҐQ!eЎJA"ț4# YH  u ~vRr· qP\6<\ZU"uYUqA"{$_ ˰͢ Ud"UI/ ^ww_*Pѽ@DɊ!7E;`q?<-yNˏ)  PCwN~ (4!sʬ6.Zm.u ]z(,ET?߬9#q;Q Ƃqg9ĩz9r. r2R2<@7'#)_TɎ5}6"r u%/u0=Y)O]} &\Ünf#P_GPĐ\˦,(T61kxQtv[qžs3Fe?bg\[|,) ~bwlܡq [ܺ 9sl߄ԥL}?ӽZ@g"nĪYxx g>!ǭ ǒD/ \;{WߣPНݜ )4:2eGzń O9iZ#bgu6rn_ H=YnaoE6S `5.ג:F8"pwL9}gvO]X- gGpƵLsX~?hzZV{+_*ts-Es7TL6cۤnz؛xSJjjvԝ€n!*Uw  C(2iN ;219 7Z7Jhps3' >GrVqǝБ4T$$8]CցA= `E7BE&hjV.suěP}lq *29#O=j\ŢO) D)VB0o~.=zc>a+Pf?0SӬPXX/6ŀꆚ ySzPY Sy4f)oVDDM)0C8@e*Fm$'䎃-M&ȁ Eܲ\5frozbi|c~ ϶:S/w"l#o79Eg6B7BWMZ>}.e6ImY. <]A'I(/gFibUeE]u\*rM++"FjE ;n+;ӓfߖ:oׁuR_˚Eq U>A|"/ NE?TLw+=bls%$pЗ"h Tkךkj#؋LL$Jg1z@vLt0שou>F&W[ŗW3k:\Lj@ϐAněTI3JA3H_Qq-8l149m-$oE9p[^c?'(ݞWB,QZÅ4lyCZvveo 4z.0#s^ÒBz%JGIJvOH='O%]'.d p"u7LG X?椴1uXhI^GRP:EST`2\B<=|J1CH֣|9Ɗ^/wR^fpYN>6轜y1k*,9ZJRXH%Pi$}H92}{o8&Jf8;-٪8Łg1 d*"!vs\/ĭɲm,ٱ010J(Z=Wc\L87VIg mR]e7mYeL)4o*@;f2TFLJ <4TP=o k.Nwñ,>nհ[3hl}Ytˮs#gOu+N/ ꤩmfyvd'y /qwCRCv?8CՋslC9o[;yj~ROQ"ҐnOԛ_Ċ3'[ɺYR;bn:B _lk.T =0]Ivj^<&q:~55fkzlf?J|Gnoyv}tVC6ꤴְP|J7^d>)7@NYHL ~Ihjl?P~q d-xfmk"7)Vs"ȂP;6Xc}J[9Xz2ͦ2 Gq~mb _2苺9qj` *fOҒ#XJKWǶ3|p+UA˯8eQra.k/82i?F "4㯍lj_>uTM]l) I0IS.Jn'1]9Izqas<Y{f_yYsYۚ)6 Φ.-.p= |m?Xc bSg26,1tG6_Yչ~霡aE}#s\O%s*u8ĭC+c'0c !qE!4V-6L/"U*jUڙҿmUw}r?椷o `(G}Uq2e\O>LT)Ddsu0n!e)[-kfB}S9F'"Y\G)-jVt=rOOڧf [#-L9+pB=5B>ӒٍzS=L*i[1NeFqtZr\!G~lysHT ( gt|eӣ\OqxD C-9+Lx集Ahޯͯ?5ZS3Ns9N'+0\żk*-c@+:Dq!!ǹApaS$*%վcH/Ϋج|b։?T~'qm8ϲ3wÂ1ȭ \(kDܫ~]m"8D>:(Gٮ8RgIOy쵿g* n"h)Mtb:4$qe7 )1!Z( AgipF*,`z'/)F%%b5aU,ɕ0q@S0i&&@!7-E5+['׏ `Bu^Tgk9OΚg4 c6V5XNծ 2y83nWwoٍpo= aOFPlC M5MGdP p7W$;~HZ2ʒu֜^A_8)X%eb$fdz5!1Omb?~n@#bp٩Zppx;!V@ZzUHoxPT45!b(Γ͐ͽF@)Z^NL7pp&a&`94V1Fsp*|7]?Gw5ԗaɾqT"~u"-^d)M !~ML3\t.6lP_A;MC,wl#jIf6O,pIĵmP).P;0L\-f{-$KAAb]jVsc>{j(??>9A0Q3'`[?\.-T҉Ϳ2Lo~Hy 602 mbTM-$G8&+C0OcF?,ˠeuYR-f1qj umݙ3dxRztF/FL|*O{g,2FݞW`0^/'_֫x (0#a}m!FUAa/^8-C\Ar5e:Zu ~-@rA 8W'B.Ke@IY`Ge J$P/dI)ǡv 9M2TFΓ%*2Jܒ786 _pz'fV]lMEX 7S7UvlFEV3gj|e@ʘϿ#$McW%/Q 0VZ`U7({b a hEݐs0aSJ?ZSn>Duu*X@1_/s֞KܫSU ʕnD( sj%EF ԔImiO _Ƽ#c55N7 -{<67lm3>{A ' g9i_9AAǜB85/g@^NJ^*9Nh[IlU񪺬q&oB6T%Vs@*)h2W^r1 )3O\vfyEBGsx|]9 *kF-d%XXTR)5YX9^;J h6灮jŹm(ZWh0[ 11눩1[2d2gP-)qP"2ڸm~x ,5/S|.聄w0̫ i/kM>g~,>Kq3>`G"9 zO1(F> c:+S;ϯ4wNjE {}ѐ_9Nh~=/_i,OSbě?çG_:94bVA}@m E!`/{]H?[aS.IK43g]u SG_Ɔ)9<T#Ι_Ȟ$!v"[@,BZi)s?QE nt2z{=M}[ LZ AǍw_W!!ݒZݠ*e @| $b$dʪY۽rYݹ<]b^_.o# [C$BU} YF;TVwQxOg G]^#_穼Gn5M;#_}&Ve0Y*9ju qI;ޕ&R&r:欢*u hdQ3 E+՞պhⅉwzd 7jY4GE%@: % Vę,đFNI@ o}ŠxHSΪzZ JXl6,bFI_Ra'9')p>\RI*̆Ta$ g`hE]}׷scAq/[H^=etN3?EM-X"!,#S)h/9=GO﬐9 ,wBA QX(/7c̒@#M]d_R2.IxnKWj+  _}],=*}iwީ3= bv $&%"w<EqX H,z_pݚq;zE߳,اk ;޼RF}l4أ8QPO:ϛ8 ͓D\<$?n{}]yZ. ÔR H&l|Ng%Âv Cgu{Qb52ᯊul5''- 7K ٛ-p(mKE`*w8%O f~;P5&) e3%h M TD:%9,/ SxM @4-YTTR!;fwO0Mq tz Mfs_% ?Ӏ"N#}/7+K*c>m\{V(=G% ZYJJuz2'Yҽ{${G^*qªE2 PvI/$*$wUMeg-tin=:O_B̕,d9 'gebyQK}k^wfZU&O]{E"R`dh:SQrp MDS̯q<%f/!AN0>R& řLv}"Xw?q}u輤7+hKo~cDs "A K֔L/>$Nm4J-V)(j1ON\ JLz "r+h&vϯ^6&%i+GB@K/R$;%ŐҮ88 KG0Cs7Y % 1f`r!'Q?8\̧PkO b /lg<ח[]`jQ U/r]P䍬ltfYN&Ƕ<pE"A`bq nbS&P׶eJm4Is A>iq@Pɻ/dG8eߜZ&B\C's- CX7qed~&Q[Ra]s4y<|wocVw6 pä߽_qiվΕJG1t6Wc09&};QyPջ$gםB't\M-msȄ3l@E mTwSS~P 7 9*tQ~i_=N||U[]ȪAr<aԣHkګGp؁'1n{#'\(ELnU9^xo35ܭ5EJT/ Zop !i>yjRxWn7%нAWfcXDU>З7a&[* j4Q5VewsJn%R[Kd^p[6խ44N9,U]hJ29+ ;=w/ 6{yx1BxDƀK_Zף<bY‘ x*wIf-X H$dbJ}dHaUOhs@b ˁ)[AAݭ_՝@r -jB4 +uK!ʎ8RҌU]. 9j@U`&Nn7N&頨n d#4mTF6F+>)%zvj|iYe0h˜V0%ܴ?xCB(Py<̔eKpoǽQҙb!%ٚ)XO.,9!qϝ%a߫*X^p(1(WmrtFq`#+!X|L+0Xr]3OH~"I~Ÿ?~8l(?br+vg'x2$"I?X|z^ǡmJ$1ywB4Zl,n^,>*aнֆ*1^#2dӿx1m. y֠ u+ү5@LgڑY.pȱ#rTblY\^1gk,iѴ?ПpEOP0 Y١#v( (/[ oLD+ B׷!Gq ^aƩFf1L$+ͫ N(.۳ԝo5~<!$̣J6U}UىX~2 )*`Lf=bo:v"z5..^RtZTpei-Dv WB~s\݊a!4R]q ՅCt{sc=m#?6s}(;bI`lUɰMjoSLFX_00QR"Uӳ֢FO ;&~=HmIzc6R&;,lS&Be* ǕNwZW?*al~19MvLm7q7RZx45*fMW/4TaFXLYGiW෿8V4#']KV:ûxaKHDžF5MeNД¿z,y.YEm ,ws T r 2ߚ-9z9;}-r.rD=K?Mڐr/Ej<}(: >t:78R(L-MަlA]pYMPٿv-/j_i>>zF ¬rkHWbxg#[rLf.4s0kIPA0m~\\Z"8pG4 9YcA5C^i1WFTd@t#3Qi~n?|16;Hǎlo#u*$'vjn0gYH& דHf􎰝K,ٙuX]eçi3c<"×FD28q=j15 y0z|[hQ,֧f_45H|D'5fx~WFv&V#L{tHux[.c%G~{ 793 X.'tֺxESn**1O*sLH ӧf0:V:ؽW;wv/Aw6mNG)U(2Se`ED{_0MD7mdR ${~K[^ h,mQ;#T$Tw(UXR԰BV&ƐI,>FcJ]x\IdňXP y TxIbI9.%&$U<'3mäo4ȇº]޳5W BI},K1c9Sʙ^$6ngxL{Oϗ7]/n*:zt>R31.?Cé٫_t!S΀䓁Ji,UߥEU#ۦ1TiWȯ ܼD|Clz)f3l(φArqOG@) 2Zq D[n$&݇$npG ̷[*( pTYNuu-`Ljxَ#%Jf@@^71s;ǎcp2/ a[_X"iSԣ|`.E~yT5MuW6 tOpܜ9 Ր%ejTZvuoLƌcڨT}?E[lM׍_ښt&t@b%e LN.s^P:`@ZYer41ߘ"?͘rVDI1W:n7@oh測k,kyAͪdEi\}H6x2L&8!onl{5+qaxY䳃3lcjGؾQ 5@_ ώ 35deˡF5wWGI FˏwrW3}x?qsMd.**sUKql4ޠ ]{"FX&$I8:PC>F1+gme;hvF 2fE'r?0CB0p]|rj!a9~O s`c]zCo#B_'\ c^C? QP._HB?̸:4} gi4u> n,a9Բ'/ЏoɢeK~YRy|,2*2 Q\( ARmbϥ5M2ȊH>}QNthe8Em-vL3q$7" j(7|TP~j+_'(+0F|qw|8&s$ b)oF>`_ԏ6K"IO~fy[#uKuYamDZNK ގP"}~h]:NC#,%'a͙~S*YwxdW Cͥ0!s{R|o[txQ&ɨH5 q܀̝Ai |Z)[,]naz)]0Q_is~9Nu>U8Yax.Өqg\^zPi}3/ӛ_h'Bb~$DCKipw856*Pl(-U؉H|jD-A<!DMcV)pu#am@o}XE\)r2j9<_-;2މKOkEsRbӻ\4۟{MH]Ӄ7O?~]Bu_8-eBwNIRtf|Q d:.ŹAD'P/CeAxmLH>;%%̵"K!bH-wG3{E gu5me/a,E)4 4(tLIpKwf1"F+j!A ;TM|ԽY݃hS}I.J?MS;r7w'9Ҫͻ"-H55|/ ~ROv-ա'$x"=0at:-΄;^}$ц"̍ K\Q_}/ ' k} &f'݊O=:P{ 8pUpM(OH~kF~9ۓX xVt) #b'̜ u35U<:&*A${@MS50[f@o @{`RK*~-4MrAue[ǥ7%! <0°~83J͌ƭ6sn[o&ӳDQWGɆw\xɈjk l515lB,6qm?{+DeMt,J:pKW(i2rNBe&mGMƨ±\g|q S`K܄ vaJԡ25l(\\4"@D6?o1%p/S&1 oL IoG4'خ`5"LIF։d_/k(1[kv[=. =] U4]GJ ;ҍ,w_>vNG$V\N#5$ Nqgk] *+:8N*/"| ͖E/QD^+'^JHiYD~r[5l{*4!86oX:9/>|#_[ݏ"QmuuWHZ&o9ɲi2dޠ!Nu;iI%{LM݁LABj/琐 pWsaVdr.NB4UƓZh*ptHLJWOO1)ej&+׺AImV_gNׂ[K33ݢTj 2 Ҙ%h\80s)[џה*c?U|L`6xw QmYSՒL=4 ʪ[<1p[,Q=`n^Hk#aEM)'|zp[zZB8iW'4C[;yf=8j''ޭC~U#ڴ < <HuGe.^N0#eyPȯ%03 ]S; F?p7͂O'o ߒ`HMҩV? MSwB_*Y&zÙn3r@o;P=%lG-x[P'M/ K=2U)kWvRUN@xDѿac~U!>3 N&rn cl4^6~>OO]/huTz*S'$\xw qY5yF4k(&=ܧPZZqO!Q ]252Rvuu 7k*AWF`oAGTQ < sxgYKf\LS|^*';oRVaqW`tRWG`d6DNҬZy&ox^ >ZJoe\gKCRFۼ>-+gsYCb $ 02K #iTh!vFʰF|goKO =7C6w-8-\X\ě;`ij8YƜf\_Zy~d`J-O:8jfgXF~!&KKMu SIl35.ijXSU69s7t[}`vIF# !,~j[&8RA|n(%#~靧䵿--r-MP1%0dyHFa)+#aJ9 X*P /ƎtzB'llIk/f[ៅ7G|[+X&dȽpZqKR j'h*e}о8m#DӿR6X#Me#j`dc Lmt$hgNW zZ޷lkW@7ĵ#]m. uL_-"89Sqbt971E7] &bڢa%>jw2: W76OWTg&h5WA"M0tEXYpL6B "ZqxʎxIxrcI3%)E$lB{MxK%W%^ġDB"C$>VV7D &OstDl'JNp^,Ejjgċ{e\2+ h9u21q*Q#Q Ί]`uz `@%P-trxsX&;O8ח7[dGy΀~# qC|Xq&ivE}+ٜ|`<>P&?@{j'S1.!?,kTc[n<{bs]Z4}o|T곫'#0a#ɉ8@_0NCəvibδ}h4hzּYGY=kie7LhR:809F:Yu&G NKOnǻPZR "a +JOS2mٰue4!{VgǞ&j0dkőy6]r*uu-JM: Uȑf鯖d2KdP{?ª :]/,`(SKPYq5>)^ѻj ޏC\=%h:rP)詳Јg$Y_\@lS*{81gAzA{rw HYsT|[ّ*)k>3ܽ]j| SUr5Ql(54"Bn?'¦Z&x GaUE%h¶`r#o"{ lXKp|JR LʏSnp_0A"xD|nƑH#;r_ |!Р; n" J8)I7:0_}w]&Ǐ>1#z0V/AYbdM {Y6y4BCMARm}m-9%.ervf6@QN@m>A%4,TSxJ~I[}@f2)".M^Sndj^g/q6'%Q_}Fx1y_NlHBmXT{o?3h0jUtNvңfSn>&ث˾hfM:>XwvMLk[!oKIAH N͋.?!ЯUX+a,޷;5I7( KC @PMl[r̓ZaZ>Ǻ|0.; m: )rHGxEP"Lw_ Qcw_w;|FOHgs٧{[aF`<^)hޙzW̼xji%u@, gRKS)0DKyiosڻS6%59AY+oɖ|1;u* r(F\ {_L؎t3k˓&~*o1Եf:7Ɣ x'5+WZ$NI|98ag[pET&$Y_ 2ꠤQpbFRS{z9Þ#5}1u٥;{ؚ IB#YvO4ܖJʎ&%A9).53Lr98/Լ'Le:8d'vm8 U2>x>r464>'1kQ;wt_7exyG:rg—ك?tż>`4Ԕ!kUp>}!r jNC{|r:"pOk̮Ĵ8xCď,\8 v!՝3u|5ps?|r^/23vzChtӲuUѠ e+(1S_VxvvpIk@9 $l$G@Q«vJD,E hc |-ZXvKK?<]uu4wYj FL9% mLxcQ#ibGu:"#d&jokNsOjVj7k[X SnR+=Ӟ'a\g~]~wsE4E} -[| 9Fz vi,P¶O)jfc'+|iű.2O.({Jo9Nɓ'|ʑE)8 c TTTNA37߆/;&,LP[m!+XJ$2!ގO,۲ny~;cp. פ~M()=NXse?k8(RO<~MgJ܂.V s\BXf":HGu1z- -IgdYSAK= |qkqti 8E6B{Ʊ(_ 9C f|.V_KjR6'ZDV]MVʧ( sRr҃ΰ}{.! iUm۞֩ązt ^OZ,~`ti';Cdx=49ESC`m;uB^M OE"L3Oxe-`cȹ01 )Y `u1U,e+*A5ɴRzp٫U]v L{5ExjҦ8sNX"?Ka-dZ&!?ϱsl[R$oєp1R+5l?^F21?4'Ġ@UNx`S]Gɴj'Xd6IqaY>(\ p[WGwAVZF0#*<,i,FgSqKP&H BM E, {i޽d__ydV,j!()I1Q.r= K#'0љ@T"@™)Ns(d12xg 6}WSd޳95&M|ZD.X5.he(h,w,cr_?O/' < qgU@E1LvNJ"Ul3vf(]}X'qE'̾?]U/hǓ2OkIQ-_jHh}bPiQ$*l-^To.W(H$ I@9޳f2`}U'=pnDH]r'GlS̊W+q^"1\! 3:B1b \1wt> rj9}*?8D&|5ʅdfLpS˼uMW檱YР{L!%Ymw;YO4SEz5RZژފ#}ksoze3ix"2ezST˸q?o^s}XLpA*uJÜ ;d6*(Ԫ*/,$8e+D8ɑ*@d.­!B Nq ‰|Xէ/ yд;M-&?A[<ŀ(ڭ] Z]TUTl/vl|ţ?T-pVsyT4=K%T,HMo._+C\L=WN:áY)B >j3`=8ӹ'@KCo&U('w@M92@7L ?몞Ȟ"m ˥Aզ)1v opUHrVS.%|;8 sCr684,sCaUD[k} ٟe DRO:^*H`oMьl_A@m)MI>s}ȩ][tRXv=JtV*9@KL,ߔm)[=$ sZLG?>.j?/rxWQX nJeUcu6pڠ996\ISӵz*Qqc!e&gY.Or5Ŋqr±1 Sqy_ .: h~D%2 _!Vm,<:7fVyEGJyR襝 tTA4~p]_׫CdWNv$(s9|ilݴT?~)nCU$-h7`O0 3g;6<ИM5ykKQWSTB%~4ZkX}W;)}QOOF( ޴Qo\<&i?KMKjE )tC <[Q48$4"qH8]!cBK)Ӕ׿t'cfŴ?! . }qڀ@k'Xݔ{YD&īko<e3t,*4AٹB'ߕwQRa,Ӻu;§Wwg@B?C]G NUһ0Cx{0z-R0g >`>vA'%Dz;43R [J^2b  u3#5ZWv:uL&1RT~Wg؀xљg`_6QAi*R{x2SU*dŖaMP ;GDy~ꆊVW* LuL%}d+ѧ#|T׵0:ga5::dO Ӫڎ'e%ARh6ʵO8m28٨>bU'4`\YK'Jx}y;o. T*n%-*(ѧzD\3#Mΐ$0zBL4=U@O5NZqiL,ږ22bV4olިsW#Ƣ%y>]dC0–dIӐ͜c' t%GeR}z3x `L a/o/Fʣ]$UtRYNE*pw6۱3r8Л5Y +:0бNy5ƧBSy csr 79&õpbd,Պv՛#-M[;CQAGvXɨ}1[]?I۲}/Et8: #dOGdz=?k=^eT21+H(9JtOVT+lo?o;'k)T:g>BqQ|寑y3 ~Ufdi$l;V` "tnyJn`*z}fIPťԣ@MA2kP(= @"8/g`N][\^2t@-S:A6(vdbx: 띸#$`Vj; Ӆ¦($8^XQJcQ{ 9zg3 S>y#MY&QcOWD8\(]hrjO Iۼ`Lw%M)cЦL+41d%{7*N4y=fRvx$)i(Wr6Yat С\.r(|"-Dͫ}aY|Ż)uN3;U}e-A$!%2:ѭwC \f:t~ O;kOFT\Pyܩ=7;T۬(>93ɡ`%4DrcNaKZ5ߋ_xȍ<3F;mN?T\ MG82~֊ تf a^QN & z%XsDr%Pk·2Ay**vhӐXa 8az\[zZ\ W=og&GlJP阗Q[1jy>OɆ_/@*l{UȾ'A ~#|@(g0)f/RXSD.5OU1Ob;;2C7'q!8P)t4qLXlX0%~9od~ [yu&i*IJgu1he+XhWH=G ϝ+|JT~W j2yZ9w!RqQ {-5x>fD6GyYrq7up KD_9-5y5ת09pYn,P9ʡYڦs?: QwQ?SbK!#Zn XUH"02g(CxH 4EuV:gczZ_N^S﬈ES+* Wp;2ȭLy37gX.EB BlXZثת0U&$RUljmߘWQC}YE{{ w⊘%oM6X*恂OȰ'i߅|}A^Bꌃ,; :.GPgR wNLi£D IEGL `#ASރp.f9im抹WBcjĀdɶj.GnHN&54fDǁxt]R7o7i;ڞbaTV42[|9UÃCbM .4d'`|-3#7M L/w3~ΩLM3DqL|Ol~NO\hȧrƅ/eFx+ {)%u|r{!*ʶʅUW&&^uu_o7ܫusk!0t AkB<^V"O^h3tjE.32Ay<7t|{firN}B91!QIʣ,.tI׮B$e򑀊9X*ǁI_߭5g4I7 =AHRS(h`mJy;d1+r4GFkÜ 0W`cQW6G(Y@X(b~W8x_g:-IX6D7|w"eu>)%$Uk$iS?>B}' +>V\99, `sVB+}\0*Ȕ vfrC5&^}2G6oX!#y3nO1@pMV!>'9윲>Z)h>:$j9Zl:v7;"bOD@d` 9// [sQ~/jǕ™܀<8k@A][}Z`6@ɩjF:$mOXoSo+ דfLרxڥ?g>Ǎbj[L.Ktp٠Vw c^n)iCݮuW+ \. 6])h]*E`@n,9/kY)oz(4EuD,fqHFBPRHbeej5ljvU ^^QT':{g.tiíe4J7p^'r A;?!bUZxo.[) PFe5KEE tVnm,Z)zmZ[3f2&S6גq 橼nS;zLU .a)[{woۮgӞ*qȊ WʶƢj F偹4T|3pp6yZyYVB}[ϛ] h^6=&IZR#yjU0جX:&p{hCeks6 M$AUm!sDKYF L1Cc?3o(}G=,da6g4[ S"|vч=RI0[/ NDl~ܮ$w珚8ǞeWw`b:)޳z'~tE~`\D_8I^{}R$ŚC,YKXSF$>(S~W2Eg>;#y}3 @9bI0M[;Cz#D/ab,S=A`(Z֥\jᛋ}c#ߌ'ƒB` ElB*+4*sܹ]^`N6 q_mh Q:Xc ;>Y*LwBTM:^'š(!kE'R4 Q}U5R)1OT[@(<5)$ +}OL}?` SYAǎBUSs+Rv]'Rɚ 'cӝX/b<:nJ+㣾UQLez5aKAQ+I ?En8g`ªk̫Yh@R9 Ajb,<kaw&}e2{89-م2IOoT[ |jѝ]XfnVZ@J4p'7)sdXؿꅾ@NV`)B# au:a@MRTyX&T#eEvL5ӳ0Ue>X _C-RϬHEdq51\d1xƨ77/~{lgƢ[B(/JI|Ҟf?!㫸3$RT >qpu8'AX3ŝ1mcnrZh H듃`3߁2^ L+ L$[DjеG%5.,a2,>:Nlh;>?RQBuS*Z?BY^ 0 8Rww9)z2f>P=miH݀Ŗu\'?9j8*ƺn!Z21 *sw+/)G09HmҺYt|Ȅ³#qE9(?ļf? ay#|-\AbL/#-W"AW(聼;¿6Ahn<MK!dK Q,PO1x(XQhu WPX uF'&L hĿoQ2CAl%EShJ4ǣ' ltci*U94(ڼjŒfP7B"@aʣd:PH 1B/?u%^BsԌ_|RP?4Mj6?DszWLn[6[̀6\VK Wޞc1W>c'.ήS>#$SBb!S;R?u/I䶇gNVs^ȻC D7S%;:ȅ|m<璹;>N`[WTo]5$ 1`}wvG%8ua2s)q60.=#ސj:OUS'{ps@T>j¥khSe}!jvG \ŷĺ:PSPv)&։*f!h%3GFV1~WFo sl 6/ypzjPf[+rSbU|jFh_nY@zz%.oͰ84ګqQƵnRmf[|4},x9Ű ܿжmרëMg[oO8PDxnw0qkNi9m~ځ:uqҲV;-U]{s)'tj?SutO "w: H$&ahe+{e\xzdNValQϳnԯj3S=&GԀ@!pҿ$Q/7{sZĠ(oz/P]V9=\C,bH |5XR9A!MO/Bxy v }zw.z0G.]?;yEϋ5@' mt/Gb3$ ⓚ׉ڸa0環「x]VWgWiQ%2[ ?1؟dV{5q%SS1.s[4g/_ j _iϩwHy!dD$! =2#RqOs=El i OuZ YG ߈ zVqq`5# ΃6L9kXZPtG!03{/sh5 + 99K>ºqy#!좉S[[ft\^~Mm)s%Tm5+5髚b۽pi',;Pê5grNE6b@2ֆNfetT'Š*`ĨFBk7V6*:ꕪkR8uExwkd`S((/q,Be27Ws559ACpx/Iz!UY;B?`zm7i{md>d Zwzgr{x W,ދç8'wcN^=LM{*"e}x^AXw DLKDl‰J9"$gSѫsιwY0%|T ;<'Q}?,RyiO爻,Ɔa8Rq'g x 3;%ȍ2%3:8/1!?>}L} 3HӈDl :a7\m*VFsgowPmi{pH\V) ,rSL%UĀcA0[%Q3JUQfdMGc`[n'm:Q0x1VJL8lYރ=Q0Y'pO_΄g7ę>!4]E!iO tָטr[zic}ãr79m l¨!8nP]UMHVEġvʙh qD(R7|JaVa\ VǾ|3f#4&Q3 e_|aE YMԁ[_!':bwLFnc-$9P5lwN}A8&o&LK$5ۙ j#(D _(76_7d-Ǭz] !b'iVao;2ͳCBNA('TھиxE4cPU5MX+[xd]xQ*E~&'.3TE}&"rdq]fI<ը%}scQ%_`&x&F^ !4`Pu[ppLކgj(d? I wmLi0 !zw})rs1sxsU4}g!AuCa;V[e' N:DEHP6vrAEVא3]DtK*W4 d:raU*Xim￴ o]܅Hȁő*ϸr" 墀<N[C7 cS+BYo+tG W4fb!(YW5wԆ%2:f 4:iRSԼyuyOfj]gYYx͏+ɼZBj,E[6)*T^z+t}D,<>~6Hoݛ] 4 4&6Rק,.m{8ji%q`Qˍw1oeCd!0"# NC5TjH. Y:Kvun=:z:&]u &$x0}>ВH=d2WN^B:J,@mB WVp[q 0ii(lYs8҆89?dlF$`zVN5=rnS`TqoMzWWԪjgeno0:XT,\h(';IRA/i<iIXrǦBP@tbflT+rxDd-$L@~[~(Ӵ~7`c o+ )Tvۏ0ܳMIܶfJѾo[2]:i 3f{wwIwk%҇NX2,_5!fy:M 'U5r*7D˃j*GJ_kFkq#ŧܢS7=(@ l+ɜэtjY<ڻkA#H$p SЦح->g`ڈ0~|/Ph^xY喙3= H/U\_'db2md^/0=lɬo~\8 /dGJ# [ ]v#oB+蕸\OVQG:**\hh!c@7 `h1['C=3XVP(5֭Ck7LW7Dݙw DrtI:'_7gQncpHwdrW %[h/NH m4n?Y/T:*a%qJ.H#@ n`ώ4S=C #|M|=ŷuV&-4{D)<،AR/36JA iz2ҲE|j/x zj=ݥ屚v@%.|YS} GRbǸc%DPp݅}D -2#u")zX.Jܞ/ ]aG뱏z7&t/2%mbe1]D4p_y$oقTw/a$VAyg\xg}'ebϾ\ܝ0VTZB}1&fAuXFHKhagv'-<ꁓ'u.H9j D9U1Tl.?ۡѡfu ¦EP:P' qI?֧ε]s>id0j:C.X>(9eMIT|7jq0z)Qj ;xβy-'c&1& fw V\x XZH+Bj Peg .U" } Z~0qõj2[@C=sSȤ=9JZONpBxl!X/乾,WEiDqm9.XMH (0bt%1bIu7_n HG㋤#Z]D7ci4'}'=:hTlF_.d"c/Xɳ~Z'/r\3ɘ-:z*j(2 2WU>jk&nvL?gQat>5<'1ߣD GߐnC}%/M4al<>]5rU~D/gそK0vĊTFKbCgr6D LY>"".Ƿ}5Jp^%*JI)?/Q}g2ֻ1<-2U%#/6[ݴ~Xw(mxSe@уIA>^C5k}Ax{RO OدG+Frfq]\%C}W_T #\Za6OVѠ(?"U*VzS[0 V﫼Ocq[I}ó{Q&W=ʳ=ϭ~h/VH{3]R:46Xc鍪R.<љ᥂sA";x}"i8} <s^ɄY(#.@c9DNI25e&y)(mಌR:0{_JfT#1HDhnx (~ Z2E!n"Uh1Jj#}Z;w p8ztz7sϑ:9]6՛-"j^ Q)!_^ə,spِ]aZ̽#-=iz}`h|W;d$A4Sx{DD)<%s~Pޢ 3Anp;6iU,(| :A' RCWjs[| kvp~cMC{nIȩ.6yԅ` Bn 0I[MiJW,,efǡsӱP`.؉㨔!Q^av5} {)Ppҏ FW5J:L->;ZT!fYq[Q%EĽ⍐ufTՏO/gcg=`{M߾IQg}4T5b_*¶/'#\"8īw g[M$GB/Jwi4GT |j?)BB-( UohzZaIy##2 {&0B3H06(dT#vK@<\8G~_8e|8eS5e9Ns+Pnz$>=iXY*Fp]*C*Qx\Y5k= 7Ub>h@;5 /1:M5ɡRх~̨`n >`syt6ܴDO p#9Hf{_h;J>ƚ>ゥخ||X%_C>t?O2&a)2 e×LERN\ݫ[F.;=ӆHO r$ނo",j9t$E:'$?ayM=Hx!R.b~Htܖybe ot-SJgQ;lL~ٜ>VYϳ` ] Vc(nUiR5wcv 6ݣ4Kxsڬ41eb*PI!G00Ԭ; k,VڊnfǾat0f $KiJS+ߗӔ]f\PN͆M\ϫP"&Qdpp;4u Nl7|*@cGwԁYhW*5ROPL%vʱ-8 , Wcx] C4-)F(\o׭F>َSxBrip.Fc.4 OaB'2OWUa`YݘpT-N[A/yS=c4Q>c^iwȵ8cXDBCޥT&GN>ED^G,|q/eG:ƾ^aK Yh 1Ve;, GqQI0bU04STUsrM\(g Ooح-3lnKb-yq6(eoEz{,u17>KSSZ;| ?AsEK@/ԩrOk΋hS K*j8^耑,oPɱM5M ,Njq?KXl'1wۀ B6'[H~=л_'~KgRQ3 'iʕYCvZ$l +wiŜ{dVZxV6DΠ "YO6̿ ӕ#Ba_@C2vIj|4/OcnI yA(EDU eeVqsvS)I}Wot|:,)v1_ʰX8Z:s 8HY-c64nbIfjJ|:myۈ3iG\d\{{O13"?&Axet R%`+ RrOɋPQ7WvapPx:36FK^U6bڡR2Fڷ/^O]Ԛz(ߗC$L^E!} Iykpغ9Rܻnm1.X1gW% Wd1PU&k9"/nஸ_o#9C1WlyUq)Gb ;}G>Krv EbXCCvYꎱkdyT ~Xŵ7""%} r$um&EȽAPNBBpG{R">:F _gpTާPՁm3WCp7I%+B4 `2[[/ڔjm8R,KWJWO~-iM@+STPZqT#ga+H| fwGBE/P rBj,ֹ{rZe|ei%\΍DlCш~R eBI_!W(YcE2Vq埾34|E"# w;V<ȟ 湝 ' (m`[ʱA<)4\EM%hJ ;;R]9-_&?SF`j θ],ՀT| w>s mOKOBO3er [րAe.<f_n"ԯ+I)q\\^*o5%N{xyi>y 9苒 |R]I)@9 /`a!R }-#WA4?ԉ_?`†,7Ku HC5ė 鉆ǬbE3|46\[;-}Hm%'VnJ>S$WT7S cS|xGJ pX%'g5]‘\^`&xf:Ć&VgfލH2&k[mǛBvGha-fݎbSZGL 7 cİ<Ř=WÅtj[B;;'*ơ={r9E0bJya^Z7oű[5|_8?Ύ 7]߁C3.d8{un,/ 'ɦ϶s8mv|(`cMO1 P!~>[^9* 5h[ƏX O1r }5z:ܦ nsvs9/&T<%Qͅn*!\R/&JQ՛WUOE2: '\+^]lC?#ġہ]=mr+)REk`4yZurGK'.  F%MlC84)p 9YVPuCR'nyMQg9ѬK{ NPQI:F9UakzdAU+OǓfSIٔ2S<Q*R9,:_Eآt> KfYBĆOaDϏ]GS &]ăn}u-vUN͖6~)up!'n„p.6յ+r(&3A8gzr|R!3d9ZA=1/M/K I|~NaS2[L|7M3t%6n,f`H/C٨QѾ) =qPݔ#4\Ծ^b10T0߾i%,8Bu,L9_j>nKC(߶6ǏKhD4m3ΫVGY.X SXS? y>Ï4a5Y? @,Fefz]`·V˝N$χ83Nv|>vm J~#awFXsЖ{gmPTfA\A4ehCw:Aͼ@Ӱ{Bx`W>W"c8Ok!L~\kޠdU`ڴ'!P_cTa㷌t4[χIR]2;t?p.R~PB9߄B#>t`B}BtғKE s[6Rn^c(k2b~ww2yn**H PCA磆\Ƴ? }GD)h? ڽx,];SCw91R2D!}*bP]Q?qFfDqavy<;EWWȼS娑GK䧛ttdjw8d UۄJW {J4V֪5x6)NN'jqCǝ#(K>&yy+q2Z1olI5# +^ i|FwmR=6ֳc?֟`<:6h;mJKWh vnlz@8jLp^ xU[b/'IJl3KF9 C4)!Jڗ? T;@Oa$BioCvHQq^ n$ozEn&߿mwDA"a ;FjdZbQ㸜vHW 2%ԡVtcƛGr(b:jxR^֐UCtsSfNS{;C<5pm0/Nb6}KM@rgq{:=tfCt sWH$Bā |E_ '7V+[y(?C;*<`N9~w57IJQJ;_f%;xBKr(C'laϲrK\W3$_Q9iݝm#r:3DTЈuU1@Kĉ<.rdUkDyb4j(£ZA>E/ %cwZZrP~w>Ŝ6׏jT%"Jη_[U OXpL`!|pÉd;<}$@ꜽqfEWE4t? W,3|,J&%@>%2 |^s>% 7':\.)eނdvy[~՛Rfku˯Ay Y@~D(_wTe_AoPoLߌH./2Mn9E{OU^eUc*zŕ9u.pѠ@0Y3 R2G^ni]bۂm@;W#??$ق=`$a!e&*h r:fi󼃑90+l$F# b\ɕh%ѭKn,9ybsERE-/⋴=;r15cIZ=D 1mo)>cܵQl10 fY`xT*d je/߼HG=dʗꗏ쬸P~'cϦ mqNJTc\8{;ĒY(+0xz>P@'@O1a]Wp<.iW:wT U dZS4J |uģ]tQ nm N1xU/-[(>%/dqa"굎/}(nTENeWco Qh E&Bg_^yCmw<_2BQ4T4$K%:!C| }?,d0#u/l(y~W pYk jr>eƿ]#DfLM(d2}*vϋC!x7e~*?IQ5)q00KH4 d2iFY^֯{~?% :ʕYWێވi{Xb2ߗ:.@T1C;쒲mB ܫ'F"6A~Ħim7&Sp>4\IO".XiS{%Õk+gx}P]23`,_>tӿ;.,صO=%|GGs +o,i7'zW`]CzaH`FϿ`YC15.R FS*wcuMkN&Eq,Kƅ2@XlS*t/S&\Χq^9+ 9"H/*.-VWL6hRy\X /m- :}>P3F9I!) Ah =†krVRR֎a#od R[ Fc4L\Ҥ8t=Zl[y\]؄ Nh8H} Q)ʝAruKH^Kxf6r1r {+y[>o}NK!YL[R;K+ڔE#i$2%.J-$ /) ~-K>.+|dD{@{)^JSN!CZ\9p .Q] bW(k*yRئm5Y( d1ySŁa2=#͒v b/8+\}w!5:ju#=@z9&&MdDx)\ʙ[\сz`](֫00rP+rGcV`wjteXT(i:4=?#Dzo ]'8)j@[dZ>>_|#e!W!5YV im_1kBzKxOcX(l_ e.Qm_F CdHQnj #"k3`gpB9TɡbV=Ր$y$]ż L*u#D\@F<A!*;] !w4Ii](9J@ByPEsDŃ.,q]|ZJ* M,6mF=CGC ~+qP?kA@y(\A0y,v˗&ÃeuU!_͘0;精?!,0-t'ASc ʟL7҆:XuHgi%&@fv ]İbͩs+fτ `6X.pr`1zO2TSG[N@|dn-<{T۞Mctj(_|]!_.$p ,LiK"-`VvXNܴf\N'B DEK#[r5_|Rh=jKO]d#; Ց'nؚ#%;!t#ܡQtH`qphR%w2z"ȊL` v\B{# KmQE"~9Ed7 .lAG5iԳ_уWo5ag1F%tKC`ʬ0dq`#]WdhCpZ3* ړ>ܜbJɪZjH *E®ΉVA=N8h &ab^ukJ ,2d}զ-M>P=4wRdCl`Y TIf6xOfc"Naㆩ ]xT#y.]0N/# i? ĎRs)RMISPVe g9ЎcB چK@rř fYmb_}XVݦjsBDB?K8M:1M$2מi"BR`p17Wii1I /]OBMns8"TԨ/!q~.Hɧ 8]RNl9i)F*xA།wEC H>@9{vvيRpЈ]:Lgڈ|ō1w}}S# 8E:8dX6Jv"ٱr°)vZ5p^,DŽrg^+-$ۖBqHvQ 5@c[U% I%:,mF?_)M>lvIQr2f3Ժ|mjP^ 6l?h7&.( a/N.Ddol7ZLf7]Me;5@Kh0*gN|GnO!IjAºkAC^Ǐf|p:3D[jb%4II#*OH1PkߺJ.GYy8ZU²:`(3x#%f)E1 T)No mOxK L1aգIRg>,_5P ղUQ,nW=';yՉM/1ӱP\"/]]dժ}ГOCHvYf1 ͸0_/0as^03Ş~5l@W\ W5}WZcnCRnUl\.` ŷϣJ 4{{0"6Ê72U()t(* yECjFfpB0V֢h`N Rnr-C[-N U#,BtqXmzўsa!Y, ^ι{ۏQ/..@/P$cU[2S p/@$Hd3 &qu ITE>ib$vd~h*Bh&oM]OWJg {="(XHWHZ`:s, Ls0u9ㆳ ]zl54$ugLc&6N{!5K`⇝;k kVF/1z`#2di :rO SR5~uMGRqw ;i'r0{{ܭh+P2'7hІDAGxr=asj0 Zɦu+> 환wS%<=q$^eO&8 YnFc)=4]Z=i"MSe5'Wwˮ(hp3m 2 )wX+. aj*zƖLku).BަM[SpˬsƖD6VԺubOo%`4Xqg3uHY~VtP'b@6dܯ~JA9mmxY^rB]C@X.s HDu>ADkvcD)j~cnq]E觾ud}nS QhZf#qٸY~ Jϗlw*"*eV"v?S+M5GIUR0Zf|H͆w%k_Oy3")|T'sHh'$!`gXF+fdy@V9eo3Rv}Od-X6z6yi"+׀7ٻ6:!$7XvUn4QmeKΎVv-?RI:e;j5t3xKӡ%g>rmv_.8k%:}\q.1uHi*'yE ?|o ^)>ߵUpz!QJӆP~W'ō,71~yr@Ose )/z!u.C味uYf-Ս2.RlT8Z;I [-3kD-HNB=%\Xm; )oah5$a%6agW!v_}a_Um3Jd|Xyn|R1z laغ504=h7{t*tl0_Bۑq AW5ON=#J[&!2-KgpehAV9 7qys900j={+:@,=|B5v x%l뾯}P*1Y8ԾCl1g)RSZ ]h1QrJ 'q"qWy}7 Jʼn VX\ Ek.YVxoK)=-OitaM^ZfRp7Qf.#`Z8@-m+v~mkd <6^fsQDqw>i`Hea@/s$)/w.YbF_sD֯5,T3 $A 9A>D9#Zؐ*=}d=tCך]jѳ#nuO45^ӸϖC#κ[OH׭!(WUr9x"yGLq6Ue"Rʠ^ G\UI7 ?X{%<QJgH^@%jgPpr M%zlHF(0az5`r4(CIPRN$+(b opЁ\vk2}{qk.St@x’2c܆-u%y{~%qwʻDÈ\/w ;!߫tr]>,by=Ia}1 p' ӥ"Dp̈́%-Ј.&&Usx+1=.U /(tlȚ?((1Q{xW| ^j[~Wxz\8" ˲9Xm!xAZEmo+g<hyRGTNwj29-+ ڲSG%8Œ=r2wS4U8 GEZ8p}*?)cҐ(fo̅==3LIQ!aA 'ؽc QѾ0ydb#3 7+0oAuܵSнbD%@^OJTE,{ҧ"t(tYd66?5aai@=-,f:ь鎶;iP |6`F:bǂb8qOw|}7Y%!Brrg{B5#hfRm!>¾˨UI m3 sHl<zO.҂t_ FrRm,6ڹTBuڙke'7Ym ӹZ}Z0a{|WxE[nmv&Gmt2GRDōQ4ޢ#t|yaY7e0jCH Ϡ|jprGdRO {2w(\ 쪚5 @Ϊ],0`@܄NdoOwU@A1<=Dll$c٥²KpSm\c2.wCISt$Fg%A}vsȘ <.\b7i,Np!j[9㟭f3&QDU>`]۞Ãiސ 2gHz*[8; ٹCNZ'!g8|%25I<öHkAP&)DdLp0}gKٟ _&eyǏWE'O)8>קӔ `PyԮWπxCOZB[Z79uWGWLF% / RPGԟk?PՑF^^<˜ZXtiSse&vߋ6B6.W#$by{b D>C 8VR@jFy:\80]C4SuPJ8cA8U9W4Cߤ^+A;X|Y3xbXcn3/)RN^hrw. ڌ[G1ݼ4$B(6#E6gmeloDKpzlOhw,J[(F9 }]'OCsjuZƲh-rٽ\AtҍY.4 &.v[ 9P"%\8Y"z[큶q&nd˙BK NNp{?sE11Mu ")mGpZ2é9,3 jbE xkp@$!b]R&dYFyXqZU ]qZnYK3#ՄT!:yt eR IohX7){_ DњRX?DI:^1`)|tc2+7m+]w)B7Sl6 pР??ǝZJ~78I~}uϗ uK2fEaiL/-ݦrw^ 1$'!}RSs7A[j)"$yY7e D3E Ɋ[+ E)[xiMU;emWG#F(l&EV4|ۊ=!/~y׈"Ep z[[Rid"R\>;KxCĩ "[ɠpt:J!L2Z % Xb[H~1.;>S$/yY9?[znm H4d3>h([ MN|z(t]ԗֻADE&٩I7]zaT`6K eQNviRF/ޮ8gT wBnqP"w9Sx8qLa5;t>sF<{6o n*fO8wI_K#H?bxIU&7r[)oU|=%!lvضDd?'k^qdYQ|:[vi2gP Mbkύ؇Q;nƻilۄkʑ!٤-/|CTI^]?S񲽟XÕ Ho/rk~}_L|?OF{J &:W*H@!VIfE3uFc %h>ڎXqOa+8rL)gU@N٫ *Sȫbߚ,ጛ`rgG#9섳ED6ax l=Z f3~%a7ݜ17@FY $Pp'F`f`yuma~> X<_`~K:"<|I=œ^\;IHQ4A<^cUNoqS ](:X`8sqf& )ax0-PStk*p~o6VKc=/l\{^BknG "KnOUB y/dW7W ǣ_X'k[M$Ⱅ oc}V໇g1,Pt2jGJB89OaGʗlj;5=E.Ը"!|9AKl\Sx9B0ͣxEtY3@ڸw7~03N 3%[phȁ3nIR&UڇUHE?Ŷw%,vz A7|ij۲[53jor!RK1 Iķ6sMhZ:[VW,&d)0:(K'X8!P0,eK~n8oJ{f}u@gD/ tc8ѡMeUf{tȱաAd iw_Uͥ¯)n]+]־N5B[=l &@S,AFc@="&퉏I1ۥ!.gnwT΃E;llK` w88@ߥ$ܮ/4*n\%j1y$SzO6`G]UUIK6hs(\{un-1rS[OsF<f}ɘ+'e\(y7@sW~E];[n,ǪIFE *lK?wk㍉% .d dq 7p2#6y/2;@<W78 *5 poY:70Ma0޴SLQ,NRCfU6B Ğrm>ex2Ia) i!;9/L\M`=MMm}[.hf*0z{!m!bi,^3Mx;]Ҫު2嵬ȐeϳUĊdhK,DH`39>m&!THG0| `+Eo;4~5 L]ozso(xDel? ,QNcu[L St}3 Ee/`rzY'.Sj}VtŤɼɜ@]%l؂Ջ;T,4&("Rւ60'v6agQ+s^o_ zV!ZXeѧLKa#ty$s(4 〛=1=i ٛT|“2kSrUB?]LRV{;p;CƠ.},Y%,kVaA'!-gU9 ੴvJc⽂,&v&\4u莓X ak#n:*RM} L37s!aKŝE׃v10bHѧZ;A rvIlQ4i$&ͫ3vӓ|m^swA}%5HRV9PyH?w^蟁&"^R6aC^ݾ))8)AI<#@&  |^)#QIAz?DqTk/S |ACf&MIfC!_'V'T܅2B!ӥ`K2uYn*B`{/8t{R.>cB<(LD׬}|3WFk BVwҷr8mgCYȫ`.leCLHn}G͔!*2Br5P@4w ^×B  [?^$VqyusJX@ v=,HoyU* rH)s&xʛM29jC9(/3uݜڭFR %q^H=Do؜m:}VW?Y=?8|G)E;^KBWg~A^0Lܟ!*hhXoΑ!Mڎ0WKA*\Fntn+dZML,D u4rWx*'2y} ]"ݾؠ$(U4\6`}8t#+bqdLVov 7LRq&!͑-a]ȱ jXb vU_p 2<%-1[VVP8ȳ֩@tLI|"kU}[Y؅R 2?]Wsn7yxHwHĤjJ L*qK(\"nn osTk:Sä㳁',7G&չt^z8kbDF*g66{x|s6Z2@r#sT27չ>1͘IGcW< F!j* +Bf6U[@c{|KUk[Sj/bQpͩ/_]'AZJema(7pY7);LoL[ pǰ>r^EB_ 𙧡38-a:T 2㫻^V(E(fL 2llUbI7q{E >͔4riT,ǔKLsNЛHw4~Go# cZQR xdؿ*$qwє40@EQ0M_+7ip'`Sq UWkВk2jX5ћ@;V$u6'9:_Z^%XrGpY R|B]g!ZXvYĩN:|gIhEݸRnnD>~˯qg3ߜv8r%&\<"aH2{B j([x4.PNgҴL&İwꝞ;W)[2YS>%aL-PyHE uUb*FhZ70X3s/ݍ^P?ۻEp*W0 E-na64$Bj^p0:HY x;fp}FȮs"߉|$f"@=YUr!yJF*KX  ^0pPoɇ<;m_s8~ YM7"Fw)f-(2YSQr`}J,B7`?m<fXgck Z,ؕn leDV?w-8.h5HlaGr+ģ P: 4'bf)bDL;ȗJ#zN9 t_JD+ruB[ܶ(QVBdL@4_Hb×|/eG.*b dXb,HӦ^Q!Sݺ:ſ+xzaYYD5t/MĢXGLaǤ.8ftAAP]4ꇞ2!mԥ3,Tե~aZ@"zL~̆"Oa#:j7xc ?B8LRG Ps ᕍii|_=7^2$Au1Tubck;Vj!r #Ft .`&@D}3q,&̧bز͠Q3/bc/?  5Id3g11Wl_ 3bn ߍՌ,G.>;vX&-4{6C.5~V.$r՚y8u)JCAYT$V|xL޽O}zHx cB?dngj"& cVr@9[6zO'vF7 6A-ϊ>;ڧ=JT<ɰ@q`u5D7>N[WOP'd,) œa8K*֏aB2YZr{?3-yO"pZvfLzK>xדzOhXuw1AfjU9L7? %]0bbjKxVTj!+| RMOd!jtT9 ZA 1/KSŽ<|׈Vp4=( }27wKWSTh%ˊY6Rɚf<^h$H6SrL<ʡ=7LA+E#7q"l"Մ ''g^Eʦe;dTQQ]VaDj{"´yMR"zr}񭅿%c%%>48cOޤlKZS$ 5N,~h5 Grh#4ۂ_qۤ6ǽ lAטp=5X2ebh [Q$!ʼn&p?%Wf/ 1=#h^r HLh5foABlAQ<dCQ@'Ӄ^ 50;h R~]~lcRs ]\qIż>AE{.XD$q\>kpXu|©{3iZ\N 隥۶Mt#pc2vUe'>#¯cdQ`XFHtύqvmE"uZkX*Lq?gEPȁ/7lK܇"G}Gw)y{?Y_?r\O.8ѧ6+mQMplR'/ ®n{X 0U }QY4UۭbtC`6np;(̻ 4doXFOCbñ#S],5+ fY6u!~?>bt^֝Ay XY,ŊN1(P{؀Oa:I>_dF1_Xw1 " )jy~ nyX^nOI* v܍{yrכbMw'5YI6k1 s]ZXw*%'w(F\o|XCORl^Y>jYpl?IIƒmZ4y ޳&-<›U:\ې=2U~IQToPj9Mk8 9XۨIe?R}iq'+U;J;֧M:w ݶEn1<9$ų1}\G>{ŐQv P! RH}-*@+j<+gzGFfѕqkdAA},<@k-H:8Z| ac~7 Vrw/(*isbe=|İ5b0ti!̈́F qBX&6w%/r^ɄcFT941k4h\ 8GClfN^Lɦ|3 XF^WyQ5hy 8&ٯas9ȕv9HR [fnΜpm ~ W7 _->L6jDϑ< 5:?a-fQL"l[4<懷NDJk iAHl\lBQ8RI%ˠ& 0|s蕺 (\R~Zmr6#Yؔ)$ם&f"m#@y(#1/' D_'-?>. ^NӲv랗6!|r@r^!Ezpۛ:?/|1dt{֟\:IyiHv,9!?tqS9L;eyT-Y)9Z\D7)^]g[ ֽw6*Dx<>6uΌVZoÂnM3r1̡?\Z3s@(u:-I cu.w~1iui|}ZY%UOKҮҚ?6$l5ljo][J C"g${*8 (G4{w$.3Yb}[@]f18FSih!5--k^ Q~'%>r?0R":Eg c$lW=Kʧc 4P{x!A@ Xe]v$y,<&EV$ڀuܡ8PA{K'{p(sqvÕTnӿtRcU«AvI4S+! R5ݟWP]7M?|pɡ\|.ĵUz=B"'QPvF;5Kۨ ވg*UZ9blButT0Βz4"{캉pJ3u3M# ::$ve%$qf&YKۭTWGJ2P\wtՖHet> c'̜cstRx2øqCB7ۥa /7XBCҦQʃRN12j6@A!j&F:chЀ?'GkLlgS1W359.p]=Rؽ UĨܧC3)'~F&u.+ןPvZ gfxkDֈ(,ST)(Q@&D]pٲL45Uej<7ns,dLtR+g0G½nR k[KӫT.?"/V|LϞ…Mmuq3`YP%Cg(V@\'eW6z_yW8Z=L[wϱLww.Yx` }̉rz!B^H2#9f'fmcĐva'boDKՀ%ӶH21usgE͉Ψ=70 tA+Jj=6+SekŪ2[.*UmkI$CTaqxp?ȉ]޺69`)LyiiWbb1pd"7 Ӌ?%i†LȠY#AA8ЮRr+6bXA'gn_:{ 7mVViB': 8jAB6@Po9*KB\|mTc\M`6rkFqR‹W?Oooܙr El&ŝ ET`sR| T"v~7P"~ a4|7Z7,@ApUz`ɦz77Rd6FON(/8 =o!:K>[7 CfԂ591^>Xn=)2Xq"5n|9鑞wKC/ń3Y?aO '~mT)UZdL!_> Z:c\ +ʡ5 β10󸁙WtIZfeG7m%U+Kh<)a0#^OhZw֋]dݫNWf0Kz,z:'yk,^֦vҍP "249ܥ`KLn[=$6`Br{ >gP4.Z֜QʇkN,:Moǘ{~_t͑0Ʒ݂Jqc0X5A ] az>i:&3CEɇ0?q F9-Ve[q]T''Lc-ixZfk G8[ί˙%YNgT= J}C%$, TkpLm;bB8 ܶ滩0 @nɣ l@9 Ɋ =)p1?F64LSms~jS.myJ0s#UAKRȻ΍ FLw[kn|;K%/a.==x!/jqTXڮ~e~Dpit)CႪbHwg5lg7@AeoK]jlQ0XҊçUBnDȺzķ[a*>y3ol)[g[dr,Z5-ԙ@Y]~• f ıfor¥W!c<|TZyeӇ*:8uqOH,,Hg*u_s Es7wؑ  , |YV섍4ɁoSU~P6:p*e*$ ҸILI"U+I.یN j!D 澪7lOˇsa޳@Q_f]t9*+w7 _1sɘbȫWA[xJfv# MVO'`_7CƆyh~lx]K's~<8s"DFZvIР]臢i ju5*Ϩ՟NbQиt"8q>*-Edt-\biu1M*tE: :.8!̗F蘴Fi,nR7Ld ;Yʖ;tqu9 17LLXdL^El [LE#l`(Er~tۀɗW8d4j>| ǒ=&OTϞ7:Ot:1[Mj\kfiٍ ^jKwNw>_%с6oʽ"$ NCr ='"~[|IS) sM UwP,mG_;`Mj\z uEh3Ӷ!_]tٗȦшPy"}ߔh\k TZ'j2e*Q>;f5IbRi$uPlihZ'P'-<œ-+sIUa84@e]=TalH:]/j/j~'@Mq5ljrGhQ ᩙs^Ow4P uM.m%FUη '*՚}t,J yA\thdQL3n Kds*3ƈ$ DyS)T*]Xm1┞T,8xQS1e 0xQAI?h+֩Wȸ>Y%A} >6CQVvsHnCxfL#u,}h|͋8hD|.Sr /1ӧkwir#B[\dU~s-]C CrLev(]([9,9|,E9u6c[H Px ~+Trܟ^Mg(JȌAV v`- b5)EKy˼&AL0מ˅ ]0SԆ!4){'rlȓD_#]q /Aa)报670.Ytu-6]kZp%K^Ғ~ުM&򏈂/G֌mOP]>. H@J{yQ3 9K-9HF('iv÷:;K-CqXHp3븯XX?z! vb|VqЁsȃEݦ(Yy҃nr&b Hԝ0fꊳVt!G--8mT@h"ʽpi0ƬMˏ>~<=|-v Z+Q ⬒e7w,Ǎwqm#O~GM~+⻗$9(G!v7Qh`<9X3{U/cV G,о"Ȋn+:$ݜםCCP_a6~uFMy3SM?u϶DlTYV^ B< ľR|=I9;A.cHig !Sla6x!,rx=o֭Nֵ*, >np%େBڒ4:Z{uzch'X7`$yy \kAG+1tw'xmXo^}j=tvoC)-'OM;he+ր"Aˎ/A܋R{ih;r\cFoe`?<}nU'"/!E0}T*zǂ$@=_ uCjWd`{W m/`bʉgijߥS%WF3rZId}3';+,5~1M$p; I8 5mO&k6JcwěnBWkqbL5Ign%xvb:7]ߎ(qrZHnTMy(dk d>HA`8{kŸ t Lt=˚ٹ@#K#r/uܽa(؋>͎HR0܌3P0o~2Dž؋OH%$9PϐOY!%TۦPv-z"4" h(4JH뛘gr1f$KWČ&ɄKdcMVI}T*jDZ!ox'oּj1 rI`2f> j's2$|[3S5:_2ӑVGh_V}h+ђaq 'gޯ$yZ&ۣ)6nG>@`{M͸ 6U-o/mې)\ 0EIk`Y;B$;ľ!t}$f ?0=YwK-k^a4Nrz:j+h>i(9B8T>PwS=JUŨ*o+N;>h|0Gjq<hPKuD|8q1@;rH[^Ok ievB*1%δ7g=KXdmbʁsMSYX價 L$𺤪FH'Qn&0ω/Ÿ8lS_h6)idcgm؅sęړR(̌ n98mSIІ]輄 :6q2oe`0d%b)k i9ϖ{7<{yAǷIlݠie@HZdPQqtW9>;[_h yElvpٮvw#x^GZBx\5k@lr^BϠXL%i`]qd~7GY DZLa#69tn 4Q`tb BS[o>nUAVqaGQ"/޼na%a1)DžgG q MR0\\TRS*3Kl~X1K7+*%اڏKM)[׸6m'F{ 5 a4>t޶S0lu*_IaH<1P$4HZ;C܋Kx|a؜nWP}kD@Qb8GÖ8!VȢOVʛCZ o+W-l3:Ǐ[Slbʼt}!G֏5kvPyMWV-\J}Vd- y\eK)9G+U6j iBۙ$xXl{䁯n؀xf[|΅]3R+չYæ Et+m DRhpX|20@fstK8N,/uS?oV{yf:+x^LWQW_7rR\Nh<.'X [hygbL8mI,ul2.4|J2JTw#o|uRt&Ju>@6 KI1PbRDj=ppkI @|bdI@rd3GO1Ƃ!7$g%T%6$'%맸uP]!Cc*O<@D#E#6Vߎc+;\}ںVz&:S/VX.Ly(EhTwX%[:kxT歾BP;BJ'l%baS3 UP|yLf/7Ÿm4:U]ȨPd(-~R7.m͌ӡuM ~;G`E,&=Xc _*gِh֬1[ƸI<ҺNkt+s CI?_`A0旊фEG pEvPbmb|ֹd94ӡos:0߶b?8BF{b4Ôj> #gdI%a}_rgc&ȺZeՀcse*VXռfTy׮tZ S5 /# ~lD< "f,ɼ%2pNA )|H8ܕ$#(*l:PՏ_k[O4 n3ٙ-~qnjxFC%`y$ox)`MAV?gC:CfX?&uly5 P}Aehe +O3IO7\id+RMlahm|)Ae.@&&}vN|[sO[G aaq,в@T(^x_eT]c# J)kpm:#.sb#PԬ|!9\"\+bc{x*滥 k.!2,W({\IrZO;6r\b+ViErNswr[:.xPRjWrO۩R./vGDNe6wHmr>C9z@E3Tr},&Vseh v B̂05'7PG?тt:s/[Xw iczLқo~5'gJ 6'\ ڂa (K6ip[z4$`ZY'e$zr4fl{xU ΋są^(%ofbKEEM6 x|S~01+fV@ OНXRa+ 㰊O=_S˫K׌|;&SlWُ ]gub|M" 5?p h^u͘CP0+gƨ(;}!j!if耫uKD0"s_ZIL/1l+3[v[Gr i@r$dHSaՎ˴lsj}C K&d03ٚSX ~z*,m0nZ܈xfbYEMlƆ΀7$ ,3&(@Y&v]\]|S# w?.+zc3UǪo]}SWμx6pf$'a#Z GofߐQo!l|+W DlΥnV#ϠoC֝c \XVoHSBT Eˇ-CZNDUa9okW[|uy0 Z7B]GRx继lWf@A%ޘL'txZud@'|\gC )|`9{ m)! 󆭉Ldх7b9]cN މZ[&e2,>4f1=dLȼG/u:p7ptH BH/<5LG~A /W/3 VGvOBnl!+B?U؜-Щ#Ey-RZuA7(;։f2e\eA?iz7RZwZ!猙umUk*Bo$zHw"@W$nm;MV&N"J4Rɞ5BXM><{#ǻ;M/ir9 C+!b?y%kb ,fTJAJqF/ΓR%!d-3D'zs0@$ |~l$ pEhG5fߠ ^Q7Exv6Xiy'ڼ-D%<#c}w<Nbd9@h+:'[%f4*6+ٺXy{l 5Tudf^e7[OXԷW*5.rەYKwϦ*Dj4/#'/8#7@ A" ]؀zو(7/qCh&X+@~M=ߪ}߻JAs)t-) Ar;rk& G)J:(0{1K[9 ;̦Uْ]|^6'|RR+SUX,TC`݉Og&E| XD37X2 =*ɘ (կ~$\Mr~!9U{8m6EYm뗫%wC)\[B)by htsyIHDrAy$EHg^md@R%80n~ta@Q|!D C_5':U|qB>5t||:Yb OR RΡ/ %bjSz(NX0_@m.F%0BrXETU& Cd+;vp΋.u YC-Pٺ2F)Z }hQj>RJڥUCKhiQ8释k[E=}} UΕ dK0@Y$I'631dn-$91_. ר>xxҠQX7؊JJ…{)qD\3Z-!k6i 7TpCLg|s|;M\'XZ-&y[w3bw|V} /5s⑎_P$d8c-0Fp ̇kao8zO=Bfǎ^p;>UF4U?F,qlXl0/ n+0X5Baȯ?3d.H&AH0,G;r6ԏ?ƵD?y ۊg,8 2cL´饊<&Csni(l?؟&uI ʯ+rŲk䔝4C!W1}%%;TA;[pQp^v#`h4D"{zu#f!ʼn1HJN)s#X^N3(R #ȎmPSxG@#].M&<%xx"h>GdO{5lb5ArxCTGA;yy]]WMFTM]e2OigL#TȯU{<$:83l=Xj3JĞ3^_Ku)˔r7cj Fy),=(mG eŔ6ʇ8"A/O|%x jUڰi1~-8OA}[/T;R1C EW0=fdމD9;{+/GecY%ca%W~x]zͤeT%A?;g$kqffM6:%Ij szK/<4B+o#\zq|*}U)hWs~YZ< Z^3J( +UZRJ\+Ons4[¤LBb{n|LX@Lh:qh!#όTݥ LHym˽^Ԁ=Z)m]%햢S2|GDde֤ >[oQrМר9shl8nUHqֽV56=#~ `,_c([NFt-lblӁ& #,}^ɞ$/ڧaC:i]_~ӈd-zs/Jqo´(}:Y:sC;u$n;Pa|r;1ȱSUT2) 28`C`Im2 Udq`(T|OsL<-KG#xzIO H* Cv9 rBY@:;eH|v9W7gʦUT9z[|rlu *1ɺ1Q?pL6h ad J7㇨6s^kMtiqUNrG|k%[Q~H9j4U$K#.OGb.$}AL5xf{~qf;t=!e1$a^D~@z s~nYB%{WU-ZG/wIS NJ͚(|O`R):b  v2Z5qBܲ7q(Prp_GkGJrn2R Fp;E\~@A}!)_#љKk=SAݠ>dECvܲ i.SxʋkYw~53WHJPoZ:#zS7bsqiYV FsfMo P.6  6D9QQi4ʽĆ) v BMD٩ ڑ1Wz|]<=iC+<hmoڝP%3T=-] 䩀_Q"_O>Y att]@~p gCx$ѩہT]l]Mo7M0mT4qACjo\4 {QCoTPJE&zoQ}jTM?^wx]dNs˄7} ThU#!Y1B 脄q} T?ڭ EgAE,dǮh O1=(n*zٍsᇙ `Knc>}B3"),Poo[my+pg9@| 0=~1z]7 {Lm.LSQx)^M lIؙDZӾ͔9!r#{~`TK Zd:YG6Za#ER-OqWW b߁SR @?6#cbrp_7eKI/pEҠI_tJrm{2B؅Ы/`^aAJ{Г1{[yR i=Sڗ:f)~@d:Sw#U]-IN"(Q9fN,gH >Gሞ֪{xߠ"k1EfQ4G}/mvjK?w8a|wqlMJ32NtIթHJShN/ Ta[z9r& Wtdk-6'1C)ēJ3k׷'E*dVxjvF'CDk='):ѠاX)`6N(e%4BT=Xne%B(-hyrq_6`S~S4 !W mývlUk "+jnlj~UHv| OAN9~ګSY|Kx;mu3ESO&H/r]lfdt 2!C ,nxR2O> !}9gW qЪRw9 X5,^ym,q嗝FLj z L Bg`Dc) ?pj_8M-Xy@J:^%]h3Y>$ZĶk_82i>NP544&8j m7 B&Ib fdsE.MQXļEpHpJ5IyZ݈#$k$Yd0G¼]Zp}G9R.*"dR9YٙL1e9&> IڇAv3jJYѐeg#Lׁ׫3_gыvY>Q,iH'Db Ade(FcO~V0ICWe勜'=R3s\}!XET7.ǒ@ªAf̓tIl 4*_ՋO~X:3h,ia=m >e0Gq.Vb\-׫]j92}q3@u(lA,krD-KnNuHnx/*Q}bZwUօ÷:޹:=RTj3/kBGKe}5i^=8SZtMI/iV Z H%xVSRu_b3sw\wB[2D|\&Ŝ~(~R(<Ѵ8k7ƨqpV:g ~[śGB}*[ weX: ĝ[qKNwty\XMyR1'uLSVx!b#)uMv@0yoti8.X3\r8n`nڲ\7uI*TMؚ sk36 m m<\P0b< ґi{Vf`RFY)TM^b(!?1&@~ˉØ{m13=W .+PoRV\"Q$@ >j@p$E[}R.)$g`@ͫB 7r<[8Up"vUkں +V]Doy* )Q|NzĆ E%S,T^>Aho ɋ^r:NV@B)7.zeQ =3w,7/wWL v-=vycq[JlkHz׼"/&c YK6IoAWZ}).-tkD%,#b "|Ӭ`Ok.I x֝Sv}:iVLޛ)ǩoI!*75,>`br!i7WNQ]+GMWe(7g=e#'[/]C;c^o534! O8P8{/>Qm|Q>,7CԸ>uJ;e?>?>,Ia>vox:j^:e+(#/9DӤ&V!|)0XƖr*t"jVԘlr{(†T9~tYV5k_4v6a2;Z>B+EsEcQ+S:#DjGspt&znk,Ђii0fkq55o\bP@18 5b5v .LS+:FgsG0rMzP9+oHf}xip>ØJyicn8PV Ȳ֡}=iIs$SR ~s I#[8Ô礂fEigIf}4֐Cw0_ŵ^fzFk<rfp!öΧjr\'*%t'`=3duYQ !Z,-g: r>ŋ7m+_q^Ci>/}Qץ7δ\Z}?% Ԉ4"gVX=ʰ">_wk ̏rW}VPNJ.55Cc^L!FԿ$SkLL N)ɟli˖LW] -hEqCJ>v8O?ā@&82Jw4vLʡhI٘Z6'[8e9SA.uw^Kot0Q.ϢZǜ '#>Cn>I ~QjtJ nNgbD,'S`1p˫9L|l፻[T3uIjG40Y@+jMvufd}s^W֡l0ɓ\Ƀ_C$.2V岜G }9-pkj&֨aP X)\Dj6uLgw;4HfX?7F88ǽx,sEf=FMf)y*]3^9/L&(|23ol;ʎR3` t] 7 ",~)ONT=j'_FqB՞6Gps\N[u( P"k^Jofc3\gQ/D9ŕP9VUNo,f)ulY}sc, Uk0TmfD_͐]GnO3V_;;Ё]Yc`9T&J%~Y R$kR\oہ:],D+nW[s|߮($mo[=R T|hhMX\&i/KC[\u@1b#ȬUE;H"WPMBuQDicq>d?Wޭ)!`yM" ׀yZ@5cb /ek߲xVJ'#>Adh:ӫy v3"K8BF(v-_lڲJy .\ %K2hI[bg{pD?$"Jh\eCPEE8BOq3;*>B\Yۃ:]xXh-AkV_|?@Fd8l'cX;DCÙǴ9$qcWl"Z0卵{/});m:e>_q8"lȈsCOYjƀPȹ4ٖAMlSٮ+R*8.9oR! ʬzVh𵁾8v u!loty[WXl|fSX7u,m_ IдQDp< pǫ{aCxm^-7l9QNJ ;Y*e#k=W|ŕE0i8> /YY!y#J+Vט\+qypa3!KO\L_ynכxwW\V7n=٭q8cG+VˀsCp%~+_е#ܺ*877C^yADT*|OdvScxe)/0Z+"+SXUUN5DHI7cg3 4- +e7nҍfXm~J;>ج2\6)az]w (}?ŠBoU#֕ԧYLa rb3`.M!3$wQM$$ b1Uȕ3mJoZ`],g#l˨&~xub@JJIe˫$+BܵRhL ,XZ P(,f'Y1JHWW;rX<3JǣMn<-Е26㔔Z=Li+^UF&D ch9Ach6:`Z1jm9:0KCJ-ӊR&"[{?#~g:9z2/!J"V6 P3lմ:| ءב9inϑ$;GzXBqۨ<ț$Q"o~3C'Gp +_=V{t=>2j)ґeǯikԷ5F) =ȧRp&HVCe cI+CKhEQ.a%#G-Rg[t0U2,^S˭ۍDPW!cP9su/BGm`ro8;!eoNjI1 Zf.b­EDVL}QpAn|1IJu8 P`ۺ:t^xgk{IbCB]LHJ.rDƉؑQzJAO zxv]])g-[5cj**O^"6 z -v1EJdZ=&D&}egazAe[01Q0[G x}[#^c1ksj G!k[r:C*w\XSDǭcn-+ma=ו _c&33Ớ>Rg^FzulMzw \K>W':CcNb }^ngr 3> A  Sa&Td |Y|Ccܼ3wd1FC%<<0%7tyj ֊ r\h63՚[Ӵ/dۥüed)xZY꿟<F~Q#?3'[x:qwn{ΪmDoQsgwg[|ҵ?f;ڽ$k2hs>Cu!B5%.:'[?K Um/O'cP==X" NxZ]V%TĎPB8!wH}LxKZIhnK!- ǔq>O) [_ 퉀O&foD.dEk1uw7fo":o`ډhEҙTzʵT818IYFyCḍhjϑQ.S:gDXTU|5騑V98us^g{̈́W˥/tƹ*N1xZ^L)Trˇr ,N}*DH"kDh"Nq5r21(`O*?/Ub!֚rޟJjߛ)t^@#kиfen ;#_EBga#IQi&{֘Nipuϲ٫$v FKxJb壊?UkOWX`֙rqyFߒ(iX=pfLJMow#>+`h.{lNa4.G5Wĥp׈TGήTHc5-:~ۗQqaxέY/6!w1  ]0u:H >`g#Wz?g1슐=[Z[T ދZ<+sAa+pG==Kyqfeb#f]vP[=+H5xY0}dM~!mx-.rGv7H|$hc˙uyG]fㆭaÅR{H/쇖2?F0x{K@؞z%C45Edc"VyxC 5 ۼJ CF9>41HTEO-:ڢ_*]X"ah) lo1nP?Cgo('ڲgj/\5)ͼcG !o?c4ۣ!5+_ g M)oߘqjmMeՖ \isNuGZ5D<'5^!5^m =(h4@+{br񛕺:ZB#3TODG A~ |OUO`Srio췎 )Ɠ~fM5ӿ"L9N4$|Ey"jO|ѢSRɘsKY(cup sP; 6ɘn3PԅU\Pa $W1O32`6^vSgg[sEB`ꯢN&* γb"Bmwlz|:/0qUĎGn4 5qOMcȪ ouv?I' ZdL(.~dWdWqeH o5wx^f0yNZP|a]ӤHFۓM`mF t T795w푫zi0/vj |A;Fwft#r~]|o]|wԱIvQm !AM3d6bxOZqjPO.}0*xugr!$CsU:@T[Bh}oiiZ&6eO_[ \zwє#`a&˻<U_ t4O)z!:(X_[@^#`<)<-ʒu(f&))x,<} SSDBx%7-ko!D(; RO%&*tJY6 ܿ:.x_|9w<1ohȑ^6j#/YkKa|jj_F%W+0ݱ]HLAk9,([a:I$S \s=rOq*k*uW͵>t$ßWYKߌ[!V(sU[gc yScGCfUO z*?ۆ]A-гq|Uza}1 wsl$"M|_-*+ /-o oS; <]Oh_seP@c&v8@Idޱ+e>pmsSA}Kt,w$+迵 sv Y:,~<6 ne;wDIxl:߶n0!n؋*Gks#?2TDړF#z判BTKK7^xis-hqO})AJyLCJgCRz}wg_aUgQ>^c*?RBt}gPy/GPog0h ;t7{+b %+UqǞi_R+{*&j_%yS+B/CLn1~ + aPb^ܾ#nA_"Cc? =xJqVoAIC1X~j %=I~js]erѺфsw;i)+9I8,mmxd>z*heHreyh%shr2 t+l)DI!41ĞVnʴ c#fsk笱v'T])Zع{ t,}2 JeˁMy*XQa]&>en<,E ΈB6N_M5i)ib|P +Lƃyz˵VSf.m-=B Vԑ9fNB9:&N"h.q3V&8 ;.#+8Ri6ߥ. q!+A[h)Vm_WwA RB8luHu̐!!; 1ʮdMͿe|Mֺ!6SMqE+.JY9cX]v4Ѽ檬톯g;-C-LeX~-*^?%† Y!.Z_Cy*tD`+p !ٽ=f88;ٛ">F!)F9{岯 ҏ$9Ag*&|FKm-Et\O. ]vhȢ͛+{&{2_(ѭyl :" }]7s >wnbVy!rnxmnPoD]f$UJ<}g!9l~so+`o/CS8>m˩+?&0ҿ(䑒}mCRxkL",:Ǽ/3<w m2ԝG4CAKOb%.~=M9sv;U$Dh aCƠ&Qe1*ɾ$;ɀ}uu7 4tV^4ALK65pێ1C=ʗ.@NTGQ >o?!o^$*1bZ.Ż}KYt|_bA4XiWa"b٭3X@f_'׌S6H mI_#^W!hІ-ƛ:>1μ:9է63聦NIF D|&#Bs,͵$ G#qRm6x"д`(??gW 7;gD ]NԇP1\&[)qo+|/%1s ǷҰf0C\@Ŏ&.@'6ŦMWǑmcâ ^W<#(jFOdhR:4ZpN8yL8}W peɠl sjavZ^bbe`Sv׸s5'7s?b27q% d"Qț/ОuN^NzR;,΀Ha[%M;^ Ru [Sng{Mb ؃xJ:b-S 8pⶠWY'v_9[p3$l+FIc'qA[\1^Ė h F8W]O-T8ޠ8BztH{ʽ > 5*Zs~*϶^X('C%dkEƢ 7D^'M7_qMj!砭E`x0D~D U?6zn \!u* LnMVyl=a"EH*Dض A'ԼP0 ,eW0N-yuvs>BXib4.0+3c)"ŏF*qeJ qu{-3 [㳫tvEOQW:B^rm 5{cc|Ǚ/%S;Y arWx oc.WkJl)t{+hka"'߿,~dͩ'1];ZXk 8U>?NI2%)5\jRആxvtL2j_ݚ޳qb0)jt<&o~z~V%~2@80G`Ut  !oƖwͨV:A؀NR'LB&4j"t͘ձN_סLI п~&{v{5i[TSh2XA|J!,eZu.VćxHRl s)P҄>)9Co,#Fť17|8w"5[ [4 o,ۘv%tHRҠg2epB>,U.YQPὣVy;T7"54N]Rpqg 'wJ@ ]8QvH4ܮAv} *>q*Ⱡ+ *4NlvxTSV*#|aͿܰ3F3]%ر] ^\اemǐ|.5ƹz~/4'tMR| º .` ںb{,~/3fZwJ{()YqYnW]8ZEϰg!mDraJ6Q,9"xoup$}ۤt, +mF;jǪ8K.bA{.yB24bߴǣkMEKj0ehVzãM![cݳBa$i #!cUTd3 \ShbZRZ6e锨T?[12&úYfz<[XlVnžWYe-]*?%L`*Brir| %?kaíWض9l s5ZHk&,ӦIuTEVhK/2zg LZ'+phgMCC/7 pgR?Q:{.-ša:/X :@யXJmN?7)p3-Aij@<"khq>Dqu )?aXTL , WI掃_䗩IZkiD. Q}0wp3R#ϩ9n'vkTHE-rL /].R[='LoW{J tHKF ? i?,A2;NJ`m2 OxȫB u*'0Ԡ"D>y[7gֿ] >ww [dT @dwsrĊq-^^}&pc #siϦ fe1q5:TSXDf^c iq]3JcvZ+娰^tL\#zrCo|;RlAlږNW,4~2|mPt մΓB{| ^!oebdhL #nkiIuƧM/ۧaO2&{ z3珉0AV[z-NlYB'(Oi֋T^x`I `?QgӚ,ئ *]sh0`@ ,'`y dsQdD܃F/Nc |.;bОj͓ILq_W%RTGLN+Qx Dqm<zҠGL+$ᑷiZ0+26(,`_5g88Ѕc,DҗRaQ7g_iْ~q 77/eFl1h4d!yMOF[-}ۍ.'0|*zsY,Y#=t]# bQ]UE(R U[DfU*e2s9 ͕{,CKVѭRԪ8KPT}+q!~)8oqz^y3yb+=T*VxQ Hoac{RNw0 z{Ʃ&';$ze@,ڨp~j82΄Jcg#θ荕V阛n7rJ$Ugqa_(>vX)G\2|dB5#! I~⻦ݠ ( L?2=,hWuvkG'(?`.yIA&s=°7Ϻ?D|eI}`ԟƮ29uiB پ&ϵ4!~/Nþ??c!3ވB|jwG4܀m|yrXQM|nD^h{MiϺGlo@ ~ˋk ;DʡRy Fcު0y]. 9G_Vc1ۭ/S(3gksANkLvi<Ў-*<9hA׸ձ#8ZL۠n 7% ,$-n_ŧxV4@ kS<+KxLօm:2?I@snH)6udԫMxkIOCM0*1 >"otjƋ\8v'ID'vSD4Ɔ̮nORAL\쨕;]?N1 y%*L3S e&gUZJc^h5Nt^aJv&%ZitWgcT p!@PΫ@<(O񴞐IKGMa<_j#'u,R.[[D8fpHeRrGt܊u99?`Lɔ|/e$z|V^iPM"`o~WRq2ސ K)=(Ayltv[!銾E|oHl=VCu8mb9,#~8%]f ė\J6ċ'W}#kt*I`jڌ}ًslLsb~#%*J>S=00Ftxrfd< tK3@|>iiCXCHPo;6trT ӤǬF.nsL\ k WJIQZ4LjzFگI95A>?S$~^MEĥ0SRAyȉ%!EP !$-9X8Tf혎z ݾ[]Œp&X{)oNjly^]SOiq9u8xx$cYB=}EE h`.$NGfLIT&dy%?ךsC݅Ս&@<7d߾AQ[Qe MYQ_лTqTU$t=:+<c?F^&PsӵmoAy9)\/uZ֡zp%8kcTtP:ڈ'-)1>!B s$) FZ]]vo8q2{tc~ (({306& jݕ0R_yďWB8D=,P@;Ok㼙L?Hm8AWŁ_hsUּ3b6ɘc`ufD"Dz g`z@uSD ܎(K1q/;HDʒqpBw!9"ٕ)J>p$\2  ,sMsX ^LCk^Nb;*d7ZlT{vLI4 m!ovӯ$lDjA?ݶ0;| )t_dOc^dT,=􎫲~=Vת;Y2nAqRXy6 y2!F Hu\HaVC;xmD-B*a^kOekڅo[e{ŋEt7RTt 깙PbgئDGK"[4Re/dsmD1ZBDv2miWǕ)8a8h ൱ 0cړf.j'`h,kkTV_*;*6Z :~q6n&׸ݍڈuH`UX16N'A~wn jl>B)V4i%zU oӞ;+qCt-:XnG7e5M}3%P\[f[PqL%] z|Mn97鴽&ZYBDvie!  )7Az'F`?<X8FaLp[95YjITL!uUO=JOR~P@Xl)CZYr6-I!Dݨ 8.SaYÌFi4@EVoB32ϘS\=%klHI7*$c5@[Z8.O=ˎh=G&Mxc9zwPað>}OjCa'PU͞fN٭QjO>m(/Ll2ÝJSj`tgYs*(?RSJ=|&WSv+Ϋl׉Ɏ60څsSX66GrzH*킅w}|-whzTPQ8_w/|֟\òb8&M#=M>"on .Qps&e7{dU=cB=[9#3?A o$w]:c7-M؅*8mdhd;QъYݬ㔦#2[3ch]7{ ~1tTpNDG0\MA_ go-D2 eݫvk<75r@Sפ&&1gNG ~ p/镾|k[a%LJBH159mcMiz}%[]Ɖ)ts|#Ú] ꦏƯ4怬2,^|e?0A ltY~߫QiiƺܗR 9qG1E@C90ʄ;L5Y;@Z2R4ţ+=) ҍR/xrYi;󢹎L3'BY=MgB^ݑkNJJ1B(7;eX:\WHׅgnһLghFlgp.^Cb)t3/ܔWq\qMvo5aؔI.أ3#~ T/Ðm[i)T׆OdƼ+DZ"O}@T6GK^lK {J[;՟^1|\N5dI|ztOwm ߴ}X)Jƚpn]# /@mj.$Ԍ S1z5bpɊmFN<1aj u36Nvc/#+7?0+\i=T>\dnMY#32@p禱S5G_jlBfG6- ETD<ЁuҟH[ؖ}'JS,ilj vε5C~2䤧m A[lnLhS7K?%Cʜ 0>JN ylNuja/]L̯\.kePkf)/a҉cADs*j]<|.J1F*[Ø`w4y@Qn  @ 䵼![6eY!_i`t@{YV-k}舑nI *Ic62z7?]T*T3nCjF훰$P"P6|j cnwiBKmxO#rP:G,N>%RjɁTPfe)"~bjub=UKpEq(mߚb1x( @RmS˼H*\8;U u8 ަH2I ` vGy4*q;̎0Ufӱ9!jϒQ-L}݈ )}e[W {_ΑG(} R2iSC|O k(¸1PAsJWPЛRلoZ\N@.[m5˻yFJi-C458Dnrc]ɣ{;pSo-ИCstQ|RT)jWӸ@Ta1f|Tq= ZB=Ia9AXK[n +'&x!&ݚ=W2ZJdw5KrFk.a~6- u? uʯ3,^ؖ~$wu]^Lwgk7Tx=qwKg8 [b|GxC7u˟.a 11ξH^9ʬbP sfHDԢ?,J*V- 98o YLA! 2%mcdpCd# Fζ'!j_J 2)"NNGI;)F v\Sͅv?#*Aat SY ~+=^Y臍[ Аyd.dխL4s gb(h`/t TW 'K\m 1ۍĜ<_Fr1Y² gkQ XhK ` ZK*Kz w]'9,_ӂTO[~(|p QUq9F,hWVvP߂JhSRbÃww3G2GM |%w>T_m?Ր$UtPGAW >ϧNM}@r_Z9-^!j \2z53so^5_8̛5~~n= GR7p[6.k^NeR-[!b:L(K}]985s0S|oaC^k`NVΕREr[jVԌ}>XϦߙ5wl>K2|R jQz{NJn+?z-eV0g4.H^ ʸЭhwBk"RX25qCr.UY F)QץMXN\|JɫfؚK[6IȎuʢeI,!Co,0VobZTI~* BeN Ku\b5~fxryFV П'IbI!ԂlfءN~9Nb :Z.)Kf44\R:-f$z's xCNǽQ`>N^KQFIiaW=QN3k}ygQ7V#u0*Gz$8Q`flgW$ZqoXz!WWifY*`ՠ8uœMؽq Ntqm O%oѡ@6t۫g:v>)LyVy.MV%vvcLY\a?D5oZ,:ͲVӍOT5 _'8q-0Er;/ gaZf5EPhKϴP/Zv֓tOno&; o'K2[Ovv das2%LCDrVNf*}?7+\JWM/Hs1s /ׂ;p̿isHt?(we'3VQ`FBNvQj/Оs:=q|t/hɇQ׈k\_4z4L_@?xR>þg1!~׵<4_ŗ z+9jF0פcT汅,}@YUghNICd@Dﷻ͒Oрig*TP0pX2>D(!،<']d~7@}S=\~'os#A`]JB@ly]s)HywI5Tagjh_zRZv1i mJ:Lly0 FIiou؅%RHAژ t]_{zB@ ^#흤A4*񖼟H=6}ݍBv7@*zŨ dXըY q}rhpS=ʼnC{&nm 6&IW)@`3 T8˙@iԾwh0ظ1qP*X*l8бsJ q+'2``2SP)JB&,(/3ɋ>4=(q͘5$z,v5(Q>ƾs1Y@|o-=%E^]2LO"񒘥3#dHqogЅ',^圚k=Z1C z%[?'J|3>4>>I+wiL,;dJ"gh|*pqnf~yXq΢z~MbH{O1@N5b~S/zŃ-h"]1?'@[n#9ۑ?]-t0dA:2:llAz~ݪ.UFQWfAy*L@F9Lv?ު'q5iMz>6_pP Edz@X(G=[XdvNL/K?Gu\Y9υLkwg>5q tESArH{!笸=ߑ2 IR0᥌rWݫL̮Xe2p钰T|Xo~^VIbko &R/$jj+Җȉk; `еUsW8*Qګlʩcl  T'N (@]a@sCaҠ>6E"iw)푯hGư v.*oIy' 8 0ڳ]Bs+{ug#f,9x-%޴uƆo=~bJ~$;f:%' 2̓y ,DB|RC$k;CD2T7֑(~ؕE; EooOvxh۸.05U%L1!PX70/JK. "g7Gru)ӊ}&SD޴ ,F~Г70$&/)Ђ[4 ,|izvy ku10Hgɵܫ])ſKx.[a_7/1:|Q`rRl 4u:BB+{ȶn?8h~ `dzgT2; B3dGdKX!;\>]5dxвT 2`4ƟJHE39)3݅gdAEjc\njU? ʬ\XCSFt:>`'r?Z**?0`= BMS~^rɱE=@/%tT04,Eۜ)xc߳hb2cR\n4M/kL 9Iᄀvڅ&!/C{Oq?KrofJRsL+J╟]7ҮkaZ*=O91qAɞk$/[ba}=^AqCc&R]x8ޮq S뗗lφ2ˍt6f}dF -+o!G!Q3H-r1h*?]#Pjɀ ݵM´M8ГCUǝV1ANe0]3ru^7n)2t'JC̲G\O(l2u0uJo!ƼV_)g0`_]VG^7'!PTTfc(5RCf[p5Nb>Y4 H~zUW,ftu/3`&AEUvyvZ:^AQu681Jg"tnl ;0M ӝxD6Wm|Gl2pXI 5j\VHI#mB` ՟ÎXK;1ssӫ_aɊZ<+zI P6f(VOI_|)G*UFYd̏%v7ppNy^9ΣcH0| d 5$*)lW\P|zUXg<؅,eG}$ L@nL<ZIElWEFxXB! @Qj4T 0yXGbEBv[#7&b{+BnMa!FCs- 㔋B6hh'#5Ɨ71:ٴ*V3<9 JgԬbK %U{ TLBD`%@Ƞ0V]< ( j6($+EMb:h.ЄK7@ V鿴JdOα'½!+es [h BR0_&CTv`9= oJK ^CN AGZЉS09)a\\Tw㉖vne94I|@ .E7tmY\7YC B qN^7gF2k!B~"ڵ\b4#"7;qRyePV,b`<<xA Ѹm*DX"GhHmR[汸\W oxp_n "f`̪N_ORƒ#ScgX,OKZ~cOoo$ft@ %Oo'yY,F/պ&Xcþ~CϩzZԁT~3&<5`{q#(@HUk_0\InRA70޾ PP'&K;ڧJh>%:)eQdd{8䠃8,yl_ ǂݎ0¼bQ9Qi[yL'փNYqf>o3=fƶz ꅲK3$t 6YHŁc\$ J?g6XlQgq PitۯZsn:Rhcu* ChN&}6 ~ m@X0k< @%Vl{gWyVS= W\Ah kyĂbvPn|!-d5K=wf (3PD*kb*gMm4TeI^y1ԏAI "\#|ۭ2W9fxY9twIf6cP*Jwzv.g;Og(q~yGAAzG ]`0r83^%Ž]E{+QΨP)%>Mnӑ\lߎVj O'rxsqO1[^\+B#Bxd,"4}xw LB2GF E]RdTΞNiˤB p[w.g3vsa0,8H^lIL۳sKQX ZSY i%3іau+yA57a#(ʼ Roͼ-Y]2]r4M\Bҗ-I^xE}P8#׆ í`~cK\#pm>_*% # u9jΔNAbxϢdTF,^#ۏzͣ,#"B6`C+af?*y7a&y2[ 9 bvCnoRQ_!D<aJLqĔtNcÇl`o[.F!k}\3(6^?瞭 Qˀ%.biL|"{>듥?Z~{LȄza`g{ qY.y@-M5+Mxx;E+ӟuCVE@{,ؘJbm4愑PG5 cA7p@2Vb2s9=v[ǹ_!0Iڂ-2ц]SU=Z_3LOޮ^N$TRH7O]=.(aGTQ E]KoPA*Ֆ/7Ӭ`2JFz?9L@e[dp#y&ٵf4{GN\5ʊ^ZDyߛ݃LF@ΑWw(cmPMy򶩳ǩ׍EG)<<ʙŗNR4Yϳ` K$# HMsj uYz#jcDRBtXyl͉ Yjhw l! p 6Q,8fFSj6RNR\p72^8 0Lb/Qtcoe xϨy"|FN"n`c4&&/=Խ9lj;y G~)I~cGڄsiD{tge֙4OAgw0uevy/|x#U@pyF)sL9015^ʚy J0UZ0V;z !%*6V kڃqæi,C,+KRw$q܆ZdJO2' B+\9 4(XxُPvXx9k^d($J- yCJ0WoL`ٮ\-ܖXKIq[f[BSuXeי47,8(x+;5UFkrH&I֊f4m{7,*YצOYˀB .vx,A\"ֈgɍL(F^@/H?mP=q%)EDzwATH+mPuWz2+I,GEqgQ 2 ZKAC>+ev,D0K¦Rm 0cIOhEz$֒aAy\2nw0Q 36+b%&٣:K[!%)"}ŧg,{\ټ Ti@coz9m7F/dVbtPL48QS6g`s&&2;#^/z8u sC 0vNDXM{iuu-erڼ5^$l e^G Έ*|ޱ x6p盹P{QtCuV?e VXl?"3܃H#ӗs:H ONߐ>1͛ce%-n52j\ͨ~17tԠP(ć.iq%`1!#EF'|y(P-鴫?],^`*W})5.Ŷn9z,+Cqs#e%=w[GuYfi!6d42y1s̉-jܧPd4lrhd{@oP M=>b5,rMY -9f܋(*&Z#:eb_1 Gywf%G:~< V .(cX -N:85XD2X>\(}4/VGfe*EN+,7bw2ecz}P)Mm6 ,U A%)kH/LVv0gu@ߍ M/ WGTK3d*:#s . e UҪ.AXhvZR+Lcym J\]K&RsfK@ҔNmsK8 L# /g 3/Tftd%Ӷ8aw\$/GݣWzĭ0+^'ٶB?ٻWBӲAi]Y?RE9>رӼ1H8`L\ KwXUqr5+v$ZZ7XWO xٍpw. HцZ|4#)vgn彲jyǛ#.9vܳ1!ytLY]iE5*5 j&`n꣰{Sl#:;?Dʣۙt0R*||ʘ]Ȃƈ@qp+о,uIv1^卟^LE@74LXm|֬=G!*)*`hi7wv(MSjO4t+jBRl+p{r7E؋ 88iQ\ZrBAS.2pqYZ0.jqjw4=Z]0%j[3 ma;xU)OE "8t6OE툈V0u z T4X]ރ^^~) 3lf)"!oIܑJL!/!eAso􌼌?;sR5IhaM NeA䑎ݺvx`0&?s-qD1y+,v'L ₘP!o =VhZ"C^qBr v+ؐSesEЛ`lZKP`WYVFA!, %5m>WL.2s:"Ge0UAf 0IPŒ_@yqjȊjLL[8_?aVvع2Hxe "T3XՕ3 Nf=,diT'+NRL;*h9e 0^*{p"ureՒ= t p.jsht GڋS J*8yAoF TB8m:|ð';#.˙ٔ[&UjukCB|L<x*Xt4eJPh V-2lؘF 櫸Ơ'G#O;R.j4"^jh`44ןLҏymM';E^h`Qy=+hⴇ} y4m'G*PqY)6 MMvWiN w_RؽG>snx$7F(X7?C7`&Y+S-˖yA /ۃ :6ϡ[ ѡ?Jܮ &VikjyZbwKf?k*S0J2t(C1|kyK:akBC|& A@T}]N8 q}~j!JE訑]RF5o-^yNc-|;^f野l%R e~2OP9Z=e d#PqYUz Z +ap 1$îPbr,_d؏<*m;*H9 -W˦{d.'Ր/*o"D+CxTDZdܛ=>=DO7 ї|n,A vHD>n&LIq>OJGUd1 E l絲[_9r*[|CсSڄmxyJx޸Df*T$&%Iy$Sd R.e_Œ8B?[;.Sdt:kWŚ5dc;LVr&K~p!zAyC>WQR$d4-4 &2ę-銹q._k AKB61dhE;_u""!enYZ(qHL  ۭD֛`O\65-fZO,QUic s ĖM" v)cMbq"~F's\mn=Xf.,4 =NEab=_S Dzį\mE@UL ntP8lA (Z+X:K_(v+y|%iT~KUJ-YÃAdz@!iH-sW}$}Ѳr72Kz6[:D$">3ya=B IJۿ u,/I_#KiU*e|ŜFEwɱ_'*xѮЖ7_hYyC_1^IERl *gO s`bBoC֞trLKk - 4Wџyœ.H^Iq֚iI& Y)cD#r%n4tیJY0o[EMu,|')Mϊu\W;"aeˠ4݋lW)\}QO•H9w- 9rEw իpZt@O'Sju\~|B28Fz'ܑI3.z@*@YD0`jo܈0mH`.0YNO^TT,~m6;gBp Ǚ|Ƙf:=ۄeO> VC?K?FaT} wCH̷~] "BvYY,{brA.!,t| {wVЕ|FIKpXsDah-Oqeg!UI!6}<YP1Z5X!oQa=ׁro6KDd{_z_FpgUQմOզCA|N{E\?HswSXPIҪHO:(m#/X %JHÂ^JT7 e g@GRŸBBpË55H,~FKgNq8.JĴlI:I0*ICfmcNaF\;^qǛF2lt˜X Fz(P&%~kD37VHFw6F[(O~8qAO?fDž4a>gU\~hFG<91œ m-bS2~^<4>Y=Áڜ L/v~@NJYkB٪wR. j-sm# l:G=F=_p*.>10{$W&'Zo{s̖HQ؜Zuȶ8y{xi[GsvO,*(bo~$],w"hJmڂ \ASEF[֯#ȩǍQRZ^ KN|(y+0EJ ?Tor'vk9A`Ⳛ}/y»K֤':vtTjPpda}eG󦾼aZ刋YoJeK뵟 8%1$@=cbΣ5hNcb*[:bn Hqa6!5 wFlw$y*ʝ,c:vcD :dT&dai3"`>ZR:wV s\RGxwb )stE^~/PjR ;:Ɗf1(YňNR *\7h̫fYR9*g qRUyaԻ+h2?S@f0irUMUsse)#tͱQ4TenFΆ3 s ͘Q+K HH0w\J 'f>:M{JG/#YQozSitofI3A e}fjPY1Հvq,dtI}#C1K!$;'EOfLrQ .qb2Jyo< A|5YxV>B6K.i|5WfB.C[%EPӫq@%x'*R8K]铝^")k-~=il\ 64H8,r3>/<:w:\0%Qor|k@ě`.ƻd2afszReC!W; Js f .ZN?53zeUlQCu)(=WƉ1l3u5-e]K3R9MfUK,Ga/Ӌ?sX69m؉c7H'mnC@M\F (+<:o[ ,NKF.$vShU??7hȗ)jOúy :,rz-Gκs2XM-nޮqbsJbZPo C<0A#w,'Ǧ'b姦F?P> K\.[[Q9|tWV;oJ9t&c@|Y…Icd(:o#koѲM1ߨ 0=5jyWiT:ndǛK5F!7zH%Vw4ёG+zӌ/ M1"62-֟dQ%j&7[4_of#GeEL 7 Oż#aZE>Px0#]A<8Kmwqh5 lZ 5 ?T'n*${o=g6/P6A(U; GM@/3vѶO(Y!"`1Q]s%ACD=mUr~5 `%Hs(hB诒l`*Ξ!GfE7q} 'ۗ^{sL!]:yKRhPt-[ZQkΠʇHף jPU=aqPC^/bf[A[Xh,Ό5 '}$I Rx??4_qa棠}&kr`L-C)RÏ R.ާՀiXJ*TMO&rmw鼆IF+$J"Dy, vl'l99c[?ҏ y҅pIU,/S=[kB0hlT2My w!+~ey|2xO֑UKw(zy<]BMdNUwRf/z/ S.T3!qjf>`" T=79q&Ra;?7-T4ـNW!=ZN/yn1^Xp&psVWN01?&*|6r%88.3v]*4Wsl/*Iji6ث c+ӦۿK5HQTXbZWl/{Y9iR2jPE@p 1?أ"ju;:KAX]q4~z< Y5>dd-/&sW`4Z#36ŸR3!u1- MT{v*/,΢A Ky{-]7K4 :金] _/LMEO'A&~חtүƑ2R_䧮\i7l\#V%%"z? P#A&6RI')HMjo}⬂Ycd')gCsTRmI/'(^:dU&=rތ0DkL?'wK! ؑcbD }~HŠb8*ĮTDOqnr~^'ZW 6`| қs.BEJu0Y69qפ|Ji6%"aU?LM%R/^t^k17knj|t}pu .gC(p._G.^)Nף2T@uD HTGM*)h~:Q\av-PI5^46]ã /*՗>[-ʓ~, º[otjΡ:26ߡAE6ۘ/}\Mn>;T/oj4g1-h>MPGRHtKga<3L>-TϻyQZM:Pz|ٻҡy \̎7g@|@R(ÙBZ"oN% 0Ɠ9Xr24bokϕO O|7V(?\v6|Iq1AUbZT+ _ܙP^=ANpgi>Rke:L%ԶOopV&%$Il5&$y~L2|>n)Vq1\=2|[ drjw:h.RG|Xg~cZ*  CɅ+S'ӎiޅW{{Kk*+ly ;]\[FƱ5,.9Z5%(i?  H$iD'@=㨇.+K>Bk7~h%,1agFc,rϻ^ 396EskB~JT@p|0ŅQhI7a4qIufii駊OVU#s43'$KW\Qc}aя1CgtJy3N0se䏋ހѢ^NQd[WSgu)JQX:T=hgv?ɽ?:2ITH|֍u %\tD|)|m"ڱل0(TkLRES8ќ6:d0eOjV٦1 \q|ԎO~sfAPxI9a2bۊ!ta9Q3K/N Mր#0sAl[M/;ahrPpkܬLB䳔t;R >LފooR-r.^ͧ9A.a≁L-3pA - iPѶb`,`#HiBoݑJe$ FcFcFl{z2!@Փٽr.$_|gJ[jf9!gSWrI"P#> R^<0ԆGGH]?čl77TjJXH!ŢUפ@_ ěxC 76[ I.^}f|u7^ŇSxHf*chrE2'+,~8),}7eQ\Èv^Væ/hwVkp{-O^f¦p#AҶ1&=jKE#,v@UTv͞`I͇}BiD1&^OlwW`jJnj^`?rd){"}` AfxA])7NWʵSe\طQA.~ NhoMwJȻPU0ԵxJ7 ![mIBEǒ+kGF"PjFN}=k(om09zFHm[~Q}y;F&e;R OOEwQ31:K&=+6VZ볱bs;*}@%$CJuZyp,{QN6F'q چ]5f@~IN\WѸevCudNnn7d[vIj#eܨbn+iGqKnx~%m@J_N)mY1vХ9P88@Ou7j矎_UX2 ɧFWmjNg8o9§=@'z'ж! c$Ik`jbM1; q*.665!;pZ0kS,bKECwa!6PJe~eP(g?X^e Ud{Fbz;0+M|$Q ^3xC^ݰļ{ @ee'OOɽhY[ru|)1Q:z3>nGgofyliM[wA aL~)~:? 'N'ΡoaOMO`!OW8>&TixH W.K`t%[PX+\xklVam%aKe%]n+`E*;:ARbm2U2;[zd}hA=%=:^DU`Ľ d1EWdg9Y)'WkH6'ih;FV-! g&oOh:u X8*FiC }\jISedxm#% SKF6uآJKh%ATV)fmM*Mo 8]іrq];Bb3>'Jgi9Q%q|s`n0HT~g骈U]T@<לB#+Zp\5xKR-ty=^G7wh0:0XLTwկS޻R&M1&<3cU>nQ|yenCc,G T T^ͫb7)++*"8[S1A1鑔5+( WR_!{hWg t+T5Vtn2VQkME ȐYQX6y>Y EgU3HۙF`m)!2zG9*hMf"|CӯAXO5  tZ;T~%T ~(5L60`YWQ9햓%| c~X'We O ZC﵋_{6 8U`oboՔ_ xE1;KޫN'wh^a[Ap#q5VH 2QG^oCQkY|3SOѲb 0ۘ<+\ۡ:P1d!"`0x9K%ff+ZjWai 9!#i JW+xE: 2dQc'_FhKc2ʰ֟6KisYpw潋stʛB\v67e/%BʧF&1`vsebƨj؎@O%׍tΗ;&v!}9Kl ])=J[Wr\^`{v';}(.TTWٜ r4[qDTVէlWZqz}F'pZ뼼_#4BR\-+ Xg Sf e}Wr]!6p a ҹvR)/}Nit,z^&U}>(WH&6ӷCr@Ic8f/4e6=㊥+q $Oliǭ˛4\?ހvd{>A] b=*eÆ`6_17,K +ĭXOr wl$oX>̭kAjC rS<=E;~wf:ck6= <ߔWsonRg5J;G(M4ARgjP| +V3hS%p B8Ц ܫA4;P;u(uE3V)Fˢty)݂.KfEBЙ7cFbKQ2(ycz<+nj*c\k] 'Gm_mQ1شzڭv:A9W7̞.ITk'~jCmRӇ 4*M^Dڜ){WME20(5;̮NvagՍ M{[PfrzNS· )k}Bw ҡFv@^A8Fꩂqn?UiبԴG>'aOm8F7cyVmW堽]70 (=e.pK#UA6\)(3w/zic*M\+[eUWۥyjPPM(4clcJ4 vVwZEwn8ĭQ6]ݯm$pd ϸ>Y0+߷"a]T (ۯ:#X|3u^ѡfyBtשIC0 JM&~ؔnK>0+ρ}ݨ~̵$.c/`_CeuEmgŻ١A&U1|D^8YI:IRe_Qe|4룒×ErV);(QTBmkFB[NW2?SX 7ݝִ@y'7[LśouYqaUa-׶孖TǹE|@6Ϸ $uyYιD/n?;s@^Oz8G҂3cǷx6(jh %A$!;}]'}x'MMFt@K [<9qsY~uAClW.s ڎ<'v1䝪= qHˈFGXĔ@-3\YM#'lVu0Mz;xUrputnDmJ'_/[| f~dra(xF}_9Z1d#"^ʗo<;=Irt Z+s7m \2ԞYE칹nOֽ;76wy~7Ⱦ~08B9j}ǎ> :-+`-6ʛQlh{k*3QPg#`V07eOG%H(?NTryҺ *7h¢fפ՟5b L BF@D7]dݞp SXUqfud?_"Xx=y(p\)t7/޼'Cn ~ TdEr  c' auenQK uίߎׇ%zn?zf@ c}lEL·g;Nd$>4nPdg2#;~.&xFDZK |A! 0Wy'ǍN/%킓eT'Y4BQ8y48[-Z+-4?d#I╯kA41*6VZ)bV}jU?bi >ds+u Fhm񘛌w%ㄠm;:(2 2r̹0ݬ۱jP[0>C]8+ ? n@V;BEp~Q=v׼[s%KnI[VM@5ġX;ի pxWKƹ.ݢ@:%z ws&>r9#e|T @ǧ>Y]L QLV8U\TFH'N/a✔_hҪ cxl&W+/Gꗧl/y;RsK'׏][o*d=Ckj#;XT̴y yٞK38Q̵ɔzU:kcYZ.xJYRܞ`zx h1s;)4 h-t^;v#,U#XeԻk5D A֩3P ^f]p]Onu*=8^ vDb5 %_&&/ Selz#n*O6@ uNx%JϠc#jø=(F̸8sD~?Gŗc?Iyw8g)|BQg-z\bڐ{5<9.9tCQO(ƅQ)PG;'>j'[%*C#*KL5CٮW@OL(aeBv@z Łez୶@XaҊB:ϐrz>Ng |\b` R(x2!](KtӅ׎0P5A=8_zȤtmhCsZ=#mj37̎mxZѢ-VK-: LV<ަ@0C4%8thD-Iyx:yHKWOoZO'fm{= ?j+d@fUr܅qzp~CZdC>-˻%>vI7Q2'& Ru:XkX&*y^[K ~0{+]eclx^$3SH,BO¥w1gX~JnȂȐ"D ncNq''j͂-I~Y$b6U@$׏p;5u^8%<ĺeꐈLdN |J[T:{͕ e"Li^e/n'E_p/VobwϓFnUp"q [пء#ˊy֥_l8dWxK0V6x`&N?k񓆶ԙ8`ޗa::*N(7^)xBGyF;mD"C-~O\s22dpH%5#X}r&Q7m1ǭϑ^6Cp1fc .܋߶s+齄<;+ Emn_mKN`ji'<5)Jv0Xc0뉭8-C*ɉI>,ܠywr'i.}Œ(׮KI\TojH%LYߤ; !WX gb?<-!Fsinp,spo8r.Q7h? x@w7`*tP%/>$6I ULam!?lSR,YGI)WkIgNLxsL>*_|l'V wB~|rOe-}E* MIacZ=NyYy!ʕ!h<(.:7-YU#LBy6z['E-ņ,z>+ F[ʜ2R7aVu|0p7 YZPYѼ,ڹ@a6Jj# ԫMyd]ycVNhHM+Rw7rg::=a~)~mvޤyJ8?_10Ѫ%LqsI'>9l&JuL=1Ѝe<頒'p48݌xhAħH}6a)R9WX-児Ml=5v)uťɧ7DƩhG08⋴;]T;#XZ2tZSvLQ9AjnS|F!/O$3AR3N# :ͦ %vx+nbhWmCrF+cwc]*KS,)%qMv 7(g:N=mHmgMZkXEiMFh lmC#5~I޽w&)䪽6rnI^X+ymҽ{ OqҁUŵA.t{#z<U%܂_paA +Wj^/k\i\0lR cOjDB;hMw5844  @t9Jɜ1DŽh=wK|l(H=/;!~cz+8:6 @؋áY8jd&&}xn*lQPZ2( GV>Nנ<ʲ2l%U%8}ז0)@S64Tiō+/TO:B>J?ɽBk2C?Cݑi3Ϊy"C@c [kMLۥ+}xLkH%/{yd]2/\yH> -iDh;,܃v"Ly" [w\;-bS'6PԐHc$ف>Fc.@$$O)JqL~ɞĩ;/q ~( l_501˜ -}q:![/7vc MJ= ߜM;<YPugj]Uk0)(Mh^&= z p#kK8 jy*h~!ogblPלii^ QOVP)0~PŢ< 2留܏utE#=b.l\>TeU!λgjҙ{Usa+ <<~e"ܠ'h}hLY2RJ TSJ ;K2Wv^Il,}+Q0X2}4 ~]ޗ7Δ\)7nm'7&1m{gLZrO (᝖ ϭ&`^eX/$pAHǜGE3ۗ+AKO`gbw/Si@否 AF@8%,6Lb>cYLepLUZ,Zy?tn7_.^}}lb4uƌ 0m O <\Auޚ™Hj|ۜHJK?YNf1ʘ \/?8jbXI`b4,;憛gYbsΚi:@Wm"$_zg5Tom En ?z?,uᔁEh^=.4T|dNf׽ʞ1ЖJ}У_>iIډ۸-cHLQ^A /ܬ_I\f!Hoo 'wdZ0DF2Ǹ>$T9#؋TC X0#Bhajsy}m ָ&-cOʒ?6p6[WV6ڑ}ɉ}NcPYY#tHG`=|˂<"(Y I zM.6>fڴ> s}?X_ K똃*R@]ܚyAMMs><ө< IdY*}u3ƚt'9Fv4< <6\!P޺aCNyB+>ϔ!n"Jusg})@elt= =űeʳ1]$T82Y Fω)o yp$N}`}^/b g&@LH_Ttۨ rDx́!uB3:[y2 9[} ߑ@^o1ɾC~B仚 0H7]x"f<\OT9Vz"9C$UҴgRL׈0z!%f;R )cEzEWr8$U־<7|VQ\?\ d@=a0ʼn ~PE64\T+}(; 6T^0]&ϼԉ$IV=XjBXUZ>ǟ4cbr'lFN"fFwI 9WxVgI R+duit$uv8ەxx}8gD{Mp劏K*ۘ޳YGvEQF͟hPgm0 b(¡:a҅]4%|ڎBqi:L KV^N^DiNi)(Vqz!B=68OhUL÷9]\Rs5MUbK k&FSRz/rQĎAPz3"E6&e qd8[E(D ~Ս2|K禗>~#G{CNtIS?7;{>ƹ+۱c@1ͤ Lے"/L"\O\1^0[TN"AD)˝:li;֯@Ӌ̜ D *ax8Ƚ'dFhD:+Y' ;I [ёhZ#uR*%8ٲ؍%Pt>{y%aؿĦ__Ē=@QIJ'7?}˱ !r!fm{GVR'r衤 u,YsbsTwm;hz{Yd8&Al y/UYt3k/W2,Wy`򒉌jB ewzLDW%MܒzJo8"+׻%9ze9a#{P-MIv~4|r4c1N]/>W4uI bl/"H 5G up̯V:P䩜2k%Ԟ[&if _ֹ-a/skL)P46Sap)>aaz#KbӅ|  6JN&i;ٞKpebZLOrz;D^U"DRCE9ո3̅|VGJc>Eb\ \vrgݤp[9c?Xp 13r~KyX+2iOmהQYw`<m\[~˫{ a/?~kh2|V&? H/G~ɀr -k~k LYy2\"࢑pI\P\5^Kfa'>8Aod+OS8|oI ShG'8s~&} y=")Ř< ]HkT*,y8a7pMF$RFgԄt!!\OBtA\N[8]D-QY}s%oL)Hі xq{3WȚ$8\_ f N@Q%ȗ Wd6a;Մl BlF(.«}"1|x M}AzJKS 1+sL):(RLќs!w0Xj?j>z 2e2ew]-I:4 ^|w;k=J=I["Q3M`$ H7Dz.a*АLji9lh)1/aZE)H4}Bjk~Fh?Q=I]D/L/y,{8 Z[/bqYohr=0drٜ' y?iz>dU3!f :J)K<68N'asЄ;ƠA++nO* X]҆eicVee0SDlZ,ԟGH$A^yB:K/cxV{bb*pf2Z U ة >`d:d\2Sd׿5: `+F׷R;?g9rq2ꄍ~`{V qhNHG.l##06Z@=guw#֦ $r`.#"1#7c;ހ5{T/c'DDy'*U^_X{_7 \Tͪ'6TfF*,7[]A /sOe.Լ47 [)=18xO!  Ej)Z/wlnA~xG5izFD DR/cM2/ړ{swNEa5Tu8ɯA+<䨫"<ɇhD&DLP?UDj"gEїZ昽[\c{A~1086YHJ!WZ&pFO: LYlAηz3 '!ָ[-[t#(pJ" RT1(~ηu,kA1O; Bۤ8!% jWâa ӧ$ﰾk6GVܖd a_lz 1.AI0( 28䗫=(LkBl=Pr'\[S`I^w g ļ8>ђa$ b-?Zz 2oQ9Շ7u*5O0~~dB R#4i{n৻:-e 4=v߹wesO!m[zWf6kʨr:)}s⋢^ӊ Pr3#6|fbp,KA%; y#?=& Q>QҌKa㟢s9ޤ+qtH-JW_P&al#W^}Ȏ;%ʧx ʠ# ^3{DZ3nַ_W>?Rxf rC:dd:^\gȰtFAk#~ kr͹ mGPzynqΡ~kD+#1ya#u)qb9 $iIt>獹©8*Ʋ_ }a m[ L'%+EQLPAnuVQF3!E\l]!\V"R=".cIXx$XO){ ۝eF‰w/7LA5/mK~7q) wUȖp%FGUx7 z5%+k~iFcAWq Nbu>*o 5+37Gct ~tx3gvuB!%.fhVZ"FG?BE|,]Ѿ؇(l!L39bH6)#@V@Um*H[^m}eJ ]6||P iJ}jYޣ׊4 .ƻ0LZt'e\a56srɽTV!?&66HJSN*`z1QGNxl0m"G G6/s-1bPO' M=svR!Wz_ы/NPb!wX; (NR. \w]E}@~CG*~c+f^u-'`c=-؁ghҌ  w8lInV1 6 Ioy}D L0O˼جUyIRJP~/6ՖBǘT')ѣw<؟x"$̷Yzjh #ܖ=U`pBPo;2Xu!A75xS K)xD` ~ Tmmϩab)78[nD$>2دRR%j?St+䉈 >:%/f}E9H*{-e$ wd5n؃b};EL cHU緅 on&LD%o`GڐF(̉ Vĭ] | ^CҊ,ny|1kl+!PlYŚIw86TcAy6e̙c> |=GYԈF1"M0z7IkS1*.F qJa,QdeD/TR9՞م"Ry>>jiDp2NԘS9F r2>W1% $}樶'yqℸ { bH c)zZt4+CVIlWp(ۋk6.wԺ H%7!;-pAֆ/0b2r<>*:P+v`%sObR!RGΊE*úL281&y h܀0pG- LuKD ~.6?|A#{ʖE7\u. !gUL%RVrY^@>'㒮puQSGڞ[*'X)ўM*34' :5] 6buh˜^w[]eIɼ y_hUkJ},=Gudk1Q5 \K50c9yǝ\z$c~1 Tȗw`YTyߜv̲16 .|'p/5DxwolpVDhYPzp]Tup0Z6k0T) v}Qbk8IP3['? -~H01le=6QN|YU%/.%*G[8 ldsC0~==^u4#4 L JhPXʳEEX+|iPx3E`w [b90&MC9xp7d?Z_޳V:P; E7ސܳ9$ie2@ܤ|'rHy7@hզi-o-8!鸦ZbF 4)>-&\)tGx'֍TK#1D;4FDV0#wT顶Ct{j0I16Bpļ?4c4s^T|9"^nb],jAt朞>,M]n,=.w5Dvk6:n%wWN`.X4d'*R#bՉ3Iv|Ճxn`MN>^PbRȲEjSUq{YoM1p%Jxk|@֯g懾O _K+$ Z~/Gp?B}Vs:FJkէ:E)ycz0h}jR10)ۓLdX0JmveJ^=W1N*hM5awq~BDNM(xp-}5\ҦXn•Ǣ >b9sΌͻ!|?׹J.[D?5y`2FSR L7) }&oEL] QVȹg&GpTjEH&rYK/;9E`2ez $^1S1i{VZuoCLҽ_-@L 0C٘֔]S4Xdoz H} Ǥ.csUifg'R6(]¼}9Y &Dҗ秛n' k>a_cI^9/i"%ֈ ~m70]_A|j tSY\ PQBH.0Ǒ0u#4|s5γqX2*6_61hRL3 9uUDW8cr%@ߊt D:Qk\!n8oz@DEes~ 1\Ɔ2)2GHփnqyዃӛe!*b+>cXX=4bSV/sQP=}oƱ7 FCg,_JYunx nSϔ4S}ک۱';S|1J:4.K9Ȯ;l7o6mq=(BNt涻J@4I&9h858M?[oK,2;ϊ}FXWNXQ2d[+#\ˆOzlr_n@Edjd2mpB,wF ]: %%&|+\a xs8ͳ`gJ;qo#tl]2xelϜ* ##p-"œLa-|i}q``!TvR?O.syX إ;ڞ3w}](|ȢkR녬fr-&a%}5i%?3?A0áU9L?s]k#9Tyg%'\x$.3*(,(p %(vmΩRUH剜LB2^.rF!37Y)M[YC1^$0w$p4º<r0uX4rK'vCwk%92h>`q1|j02}b\L\#FFc!lőn-QBx4Ai׋}:Bn _S~_ lYj77/NِFvzךKqϏ!h,q5ц6O_~VNofRJNRJiOkbUƇ*`8%XOlϳo:gæ̭칥P3r2NF-yyZSi<+fZ!ݚ7uYK?r*R>:[h&.6_]ã  si\ kY! X1RC'?u#c BA7&]ؘ/r]DLK>u۽ƘϾg%vQLx&z~_H~GO7MnE<<7L,!13V 5ws`GN74u]ؑ Bc8L9+࡮Lșg8Zz?w%kL/7M",ZۚΘP:q-%eN/dI?orW-h {>A w𡁆;c:@m{J?q:V =s${E[Xqc /MB'&a,>Ya8|= խ";M(f[+@M }U(Nd:ʒJ̿XUb袋"OJ ҅)/-e=:O5Nj0*hC*rj)P~ m-7 DtFϗ7ͨHBDE}[W|P<,9Px-… u0yL?ZƎFcʼnCD"M o[bf]pg)tZ9i>> ĩ/Ewh8n u,G*sN dD#rѶ]r%ecI?~EQ#'DFMx XQC|z?oN|pBu+P~pG_­ :CrV qZ|7 1 `ߖ7yЙc*'WHDhrؗ6kk#^eik*qn\3⾑wg/^60HsݿňEL|C3?pҐC~:C_5VmxƏ x2JTAWElu|zIdjd-,A{pޤ֓]0B;tEidpKqˌGǺWp8xcۜ$þ_SiIMfj@At%%d>Qs3/^0*OWAY.Y yؽǑ=Q# !oUX#hprE0ҋ\־pQS~K;Čɪ٥1k:8vE&$&YYG8[aD'6`- dH6rUzZZT2q) u(%d/9\nJvU‘i{y,LJ'?2(V!*oels7z!V6I Z|mju$39>z9B^jՈ$s;uʡcy[xZIޞG`\xJ6\@{۹pMvӴĺWmШ6=KH cA-&d)c3./5ϩ5yWĹe"a|e& eZ#)9ڡRM LDQ{M9$N`PDe{ݫ& 6kH5&}kl@2aODYFֶ=+ܯQ2JtINiw頨o81,#*(zwNrSL)hy:U"|~j0"*w l)Oa>9j5~p͝Ғҧ"o߶` f? OfA $N)4$l#_o%C)+>fۉ›֬3LKAS>aK9},Ytz@S3U]ϹCʪyYbҳ+"zk-5Xj7pt})7 )s`t`AeY*iN:zL- u ĪVz[4˨*t% ф闕O.pWےwM!qyObGMIجl^Z'RӌW #+[WPc!,ex-u]04gD9(9 ^׸Rq=ٰ\ݙ C<e\AߞvҚG qP40/.ؓ*wtxoa@qԱ{wġ%wrX{eu~䪫}e]llVZ!(hŶ^2To ]9,.)g)\lS&軕KE,Hݜ6͸a 5Q)f9QJ0_4f^KvO 7Gnwk>[zSڭ+2ϥk8u{Dr Pwbf2 ()ypyj]w5T|VskMEGE^4ib'loj̰(6 sGL~uVH,ja$N, p>V!~ VUORqc5 uc 8F:\aP0@z=|M8L^SYDPcKo%Fq0EU;dLkCLuzwz{;bz  #\ n!]$]&;YvUA./XUAYL!gHL S]\ZQC9Z`gf}ՙ,4Yj-Gє$\_!]0S"z{z6Q?hE}v^cMTܕi ੐##g`P4'Y!Mh|;1iVDĐM*![K)N㪐KU>Ba)D=2[Ix0t6(>N94rRjQI H*|$׬_xkJ{ O ĉ.j`duJzb!kɴzAjК͙XG.Tۇă^]8#pseZ*f.䅐ۊJϤkk. U4ڱG)rgArU0] yes2ADAc"30|WWhT~%ςrduD\aJRacۜàǶWw,>,?]_9b hJ}JU/y}b!zYVyWsX`H3U6izw zB eƈB!]'|R|gap5 F݅Z_eЫ :-fxQWV%p]lM @ehCig;X\ztyK+ughkcܩC7N>yQ)Qzw9C=saZ?j2J29\cIש 29zrq#)vRgTFR"v.^?M-!fYn"OY-3JZ_>Zfʂr:lF 8"JMS)m74[aפ[L0d8QabF赫8@n@/oGB:v]kq~.):_g4zD'*8=1LQ1`aG^ Z}bS/?z2S@g@ƌօQ#Wpqm h̜u 6Z7i~6 NX34D9un3K m`gtih_6Ebd 6-VHVgYrp~?n#(7JE^pϢ4u]Öo{qpdխf_M yPa* 7) &gD&I.1Mop@@ uGhiXCy#}> tUB<Օ@ԔUD/=JaۧCwnHI;}(tKƷz[Q'_q%Rok#Aᦄ@ tB1HQ2U5F u?)$?Ҽo{U|3(,C9MRXJ[9]ĸn$psk/>zBwD)D0]Kzg0K]]b=bRUX漇q]<-䄖{HL~$j`61UH"fY5KNԟ9K6,>8VM]mxȯp0z`oLak`ZZyJeD1H*|s{^_G~mSSN1|UQ l`O k1BbOIAYp nup_,^g*8IT Jxː=u[۝'VѾ437}TA%kklKQh @ӱg2AeEN G΢4դwf$fV/:GԆHkj4ZUN_b $ UP|>&۽` (+5.Q8]a$n8F3r;Е4=㰵`rھ': A|zaU,b5SzƐ4 8w&Bju|ZHCѶݱ*֭5dCL@Lh &%@p%h`ڷ}2(TѹAU=q4臰cHϥ@1k6L q,e`wWtd X7 G2B69`23ٽH x"v.Ut]O~|7b˧v;$i! qkkܵ˙ќV5gƌћ<|>>Ofu?gd @o䜊<D$DcL\1bh43aRT|;]&ex1$e .;MVDYTVu=6ut|i쮒tUq%p1re+P?VX0eͤ}]/FUPDF2'|P5<95 B$<{ `cS'671@WG7/>*}7%BVLq̕ۯ"/|>UOˊmj' `#Lj?`cQ˯ fhq[8=e(cȺ EśZ&P<o$yA FWHuh#헆\1S\ZaZ~a*NU0)Y!Q@VqAty*%FwO6K B$ٳQr~;5^ mfRyތKn0pa@)e'#sBf)XqE\*. ǂ-gpr"ѱ 5[9(;<&*N V)Ƚ"ouw7$7!a"iZu2/h TB4;Xi]*WUKš铫gzxGWOOIs\t}  $*()(h!: YH_Hc a_BD\n׺6>Y挶غt%3t8"E4o4/To=aM26T{_X"5V^_Yi aW\8Qq=R1:nIDc=/׺=BldP|TG_W0>gmS.lx!mA XTYIHZz)~N'}*k`NU9-Qva)m*3M;_ u"hrz~u0Wg,n4omE͠X+]{x$9 acc[6B\H.kxB jCo̜wJZ8:X"EJy  0beӕŨ5uCء|# !|8ȹ@SD]>:\aD=uRc2oKd@A>+1&C^[ k9`F Au&jb7f/ ZXI`YV:$vyΦ'gYP{!EdcV$ r0oV@lu>]t[2k#Y+eNl3zR3MҌIui9iy ˳pI0CØ?@|)j4 }m$Jǫ*T,`$ 6 Ƣci}b0Ų[c Wms4$1;bJI\be&JzIN7ZjɶK? BW4dD x%[`Lj:ˤ{JJ{8}('z7 jCt6$u>kae1jjXʤ/@n3V{28Q;.(C1?xLAz\o.>d`} WO (W,G\%Z8u4,Z:oH+-C QsHT &v QSJd eV16eob%c+hJm2Cw! ޴+-;6CgS_4JXܬHS12yT! HZ$h0]#e}CIGnd{ wJr&g90tY>kH*:׫C5?]+jmnm]j2:3 =0SXm-qth]tٺD\L ӏI_%`$W]{tLj^OCt/P CZ1P MFHԌӛ4Rj̤:m&͐^ˬE+L+7U={#qX`E',jBx\PYo¢)PjowBxd+7`jiU Y2 l, $, +N/e !UFUx("Xw@KeOcjwj4^FZjK1H/L) fm F H'l@X#DUjWRҿӵxG#fSbް T܎AڬZdړjĴ*%,D :5l6Ck@E$-%D:ۗKJrluD]է,0_JԱFn3m3R9^@z~- 9!?sĄu8)>MA8["nUj hyf=EsrE?``,}ϤƆbh'gbϤT>b{U|w@TV:dp4"%4ŵ〻vzjx/챂o-E2UC/?!и9`]"'' zw{^OJn6%k1uUZ$ѷ-_u %Dž`üt=鲉pQtS{_)2 5O1fuVixueuZztI^3A X>~b1}O]Qhf1;oF]DF-pݾlw] I1ͧ5 ~' X]@Jm}ʩr(_rly b]ޤ%ն Ҽ9Ք81B!DB/4&BCON~mdc&ǹ;Laᰕ2R ;u@NkI1Qzy]\ϺRN-֕۠T/rE>ZjG iMhI g(;xS$V*ߤ(VF$g=vx%dL)K`׏;m vB^Y̘ͧV϶T!׶۫Me!icPnvuݛܟ>+XrUAPN. ٦œd ]p~ϿmyW#Yۥ6 P!ǁŨq ymcP( +JvDIL'g Y;2}bdx)5=>B|oKj;A"zd[ZyA͒$Y%T&^J4'd%c/oLE+dD{R@hQ~n*TkKl[Ea /[~=4!Q:ac?d3sp\@`Lu)$;.-b7վeAHL샍̪rpZtcr[ެ;ϫ 3-dw[Wcڧ!>izǺٰPi~ sh*x';^ OaN}8~D9Ņ(\.zoIi}),ë:kfDVE7DՌ5؁:|RAb9龫'dHu Sdzοب<6# 2҃A  t59Ծ8J\Mfl(oDu?Z(6>T72Ý3O3߇#^S,ےPvDԖdHnrE"v+opVJcp<5atg^7-VqL[ FG͑pЄm,hѝ6mI,߼ ~`CPT@wǺi@цl]PMZ{Lgg&YRaC,"؛Xgx;)x) uU-df6/E _Ymz)~[BM(E3fcշgqt uE܆d= ?ؘFJkԿ[}w66,K e6.GF& ИxNբTMMh b h}a+FD80Y~MS.#ijfXC+kÈβx- G xհ!=#iW7$+9l`N!L :2l 5M&[|p4?MFPMt[Ɵ -XU q: Lؚ8~{GeejneYLus39'Jݱ$ Uc$@ hW}@r=ER# xv R*8hP-o'`c73ؐ8`K֦>;#_@_n/j/jH]0Q:P܊߳N*z3SU[~"|v yxMu`ho@NG&6-s59u&56{za LƗadto `.~|AS4308ק7r /YDO%~wD[}BjLF[9U dr.qfmZXFfYHxDi1 \wT|tN(ix!ږ9 g*řV33j=҇AY;wjCkLCoFrN#w&~M.q3@魋+>dXw^q/`!INL]EN[~L7 `F$ӲQިCj,-c+Ixp!r S2]rP U ,|'Rli-$Ȟʱ-YM(Zq 0W]pLf}^%r*C ( {SBNǞp8ri.I( ѹb;/8I2%}ԶbtTD PȢsiCbU3,swI^5%u rKV"ΖH27n6-J \ȅ$̖mni,N`)\N PZ/ce;F{&fްТXiL R4BR7;yEjXPSi+ި>FiiV4g(S$[ 0y=ksM"e}K'%4+X eq;*~^VJ? zumE셣H*|jZz9Vh :풶:GN(ǝɑx,y6 ~~V_<+{xyäc̽oxcPOK7X 2PcM%|H)~ࢢ:bXIm 30J1tw䒁ʷF|rm~l$&*,?8Em=vEBU`g[gTiyOK#b rlO($MR#ꊞ|1ʿg-)M.XAbC5"z{?1) I\񔯥`dCq[#n9w*bӿPaR7j@)ߌI/JA&C-7B{Yaړ~,T{ R_ד=_|5kePCII<DACQ DxԋNS!_eNʪ@GOKWz"q `nܷ%LdAAp$zoedH\!~k|!=Ia0oGBb&-P8~I)פ=3CTt{M"%etBI7TS.c@+/}+ef&dj˕fF1PQ[-*K*|cFk<_Sbt v[KI(DfZfV Z^e9kvtj?ߋ^g b;)%Ld Fg-dF˭>)gl7ۢsq ma\7*/BlK*>!u"%&!+A={Ch!ԁfuCBkp䊮 1̦9FT.J a&HX)%Ȣd+tWBa$Rh OEȥ՝fjUʟrٜ{Tn[ > (K7374*\ =x=omc{aW2^&k$ha}'=excEQGPQPczCk5]t-J[p2 7ȾI2ufB=Mz!4#ɉGNZ'rS0RדaJoм rIo#R(ZR_=)l;ZfЩ.LN&N7HFxn7G<W;`,.; $D`u-S*}Q40X8"֧gpEKtʹVp@h 6KZii_Xv08'fݔxf=`JLh}-E(챾5rL6~B{%5 {E~uOP]'wF8O闧Gu+)9e`Ý~6?blSm TqDŰ`Rqm慪 Vjr틫gpŷ|˾v\a$ӿ6SvR9[k{0@r׸8\dz.NJηE@-|!@HÈ~8}&[H m\۞a$rU#0 FGyI~,x]Y. !a[lŀ D1F~p!Vh^R"UIŠ]3+~HW˿C>+RHW)h&^&m`{)VBjmEZ 372 l;*ՀRrShjf[)ܼO`'t"V1pG.ESdJ<4& 9xM <7n\%@ȈS an N\N!XsPZjP$.W)ct۹Nkv_?:,ȶ JFm$*{=N D{'/e~EDDgx?z6޲lW&sH9GBkT*%2ñmŹB  [dHgI? UtN u,Y{^d#Zv7 Ln b QP=>z:q|K*G?.},toT{…VhDCId"2h>.$E_(J2]Ѓxb, wb*3%ӜċB:>CF-C~=@[l1HqQu&V?:PH;ta~矜3Z("F MgEQ(r?i3۫1:ry[=2[[n6,#/[M_ٍ0mRZm? (F'NlT._V(*kfcZu4=vxWcT$B~'„T0]sHjvY0 5A[w:Q3N+<;5U)n&б~ȕ6F9%ƣ$fVFwV?>ԥTboXҹ["o*|G88\ݺi$|xe\PŅ_ޡD A߼o6!n.Gjv<O4C XT>?k+̶0\r= ~c9}aW~nh^n9q[˜ƃ[%L rRVf81"(bod"nGÅ5vĖno .47S zoJ0{"7R fuܗ1)09N$ s92Or',5;3=6=yQ#'HaNzv,\6|npO7SMxSkr鲄wbjluQH{?;rIeaVAK+$JƂ̱֦,}9"&ñXFWN.>BmdRVS!.5{f.6_E#__(D[>!~hđ'Dj Z˯S" i'\yJNҿ CQkW鎒[gB _̱Ov8|*B*leQYݥI>5DWEagX7z̓QTi9d ׮aF8?I& x;zԆtHj5nΧP~8L=OUӒ Ě157BnFLxAYlZrU, &N x "gc׃tݎ^|N§R9k&+E 4s+G]EhI*K/&e&Z547Cr.0EK^jt Ԯ6M+BQSW:JtZTRԻahR]IDZdW j.w^]$-yjW3w$W + jK6*Vꕤ-.B.B􍐲`'JX:|8Oชn!X䉟6P,eT!B+~;fH(t|{-)p :_6t]Z(Wsr̛ ivy%RD͸qLx^y\r)==%:?iwbxI_D{X=)!?XÁ#8xGtWzgh$z pk~tR8/4w ˉn!+ǗQ@Nm0 o(v}q_;aoR:)ȉ`@u{JxxH{g;7s:Hb+:- EDy &bKT\Wmgy&z?kRg7l:`)ԈGmH?葢GwZT''8dOP λ:lHUqptC|Q")j{l1cp{!$X0NݰL;,m_0%!wgoXfX Md}GDg LL;n2l> @1lKAwM"b2yybU3B9Th}bHkb|,k>M|Ǣ_ + Նým߼ӌ&pn#OqE ~ gnQQ \( DfqwSl5N ^S*ݺ[7md;λ 3:!}_jY09 ^nxX(܍(dCGQ bǷʳ{~s G5|4~nЋ\_ǎ x0VOŔR`y uȒgVnrdrN^u"IHQUW:} [hdJIr1v ;?NeY⭊췎Xp>.[j,Kˌڙ v]4^O@9@}3%᪨ƈ%YwMݗOK>mH? С =YޭkSTjf!Y>: UBmܣX#zP!8TSg㡼CCX`Za['ӆ4/ZhaPΩ<m@$heF^ܢ8{4*p/NoJrFH+svy#֏ L`8`$o!uԍ"](f /@) }+gx(~;~O-) /BmclPJ6i]hԀ/cM f 0`;"sJN Og|'o%L˸v羘A`HskEȩfy 7:m:& Z x%գc&y@bq>R1 J2ҐyT;#Oj0\Q[,,z#}n|l/T=jYW#zB$!9(<h("<,!݊ g0aq =" aZPo@#ִA!}P{;t$sSׇ$Ây)'Ռ)xO)ET Ul %n*u=_[ i-nx HrRM[eS*sGӽ)¨'tO9b2'_bBǭ?)~mP7)L4?>56b.7]\Bo h-' f7Py p{ k$h>_k;Ȋΐn5uXue nj+ts8B]is ,;KVЦɶ%s/NFrR Hp]1=tRmn,mN_Ķ[yTzdiW@Z|v]6b4 46!nRo3{9 E(b)1R 5jbi?#~>tx3ٷ>kx Idfg.Scō9KN,,KY]Xp.U0>k4Y&Xd a5Fr+jy%anպҍfƢlT wnkzͤ62QB~@Xh!(0vNk`)eT`83aHIn ™0ɰXi<U,ޓ?RJDlk*;X m&wM)5'@ѶNKĈGᨅ_sqCrbVy&+}‹j0}U(xj! kcp_\ bcD#= rqo?[ft-tY{{ \ BܐIxYWiGht+gH[-9 O2==L-xbۣ>Lj#a^AT2o!+{ }U#Z(wKƽ6 7l\hVe5f'仲{ @?Ca3 $JL S 3°vδ/UIVs1uw3тu>y DQ /-#dɅWVP*+GD~gvjqֱ:l<яjNNP(/ }OYC0/'zDmSĂW!O (*K_V ,ǽ5xO*"UmD1_. NqDa)׆pC{ qeЫ@[9^rϣq@%ȯh5U܎_QaHp‘bTiPK! \O-=saڿOAA(N |.f}xSK($JT`ck5#x1I,իY̊ߛzAMN0}Ӯ0cUQ,oL|S.^@7S#}rd U 7#a-a,w7I29PmZh8H6O! @CxAmSi!mەP&b^N+d/?L|,nX'= 䱉AcK^@wv\c31ipQXĭ2jXq>!Qpy57֐ Kɟ@bV_vx.#h3hDQh 2M"#󅭔(pYJSgAMU~f}r\c3g@ 7x>epH%e<ڣO[/ '] 2N1)>5“!83֘Ӻ`nr2,y| lR5CZ݋bxYVgkIQD phL\ D.rW# )|~R3sv|šgX ^ЁZ %xE ) 0={0yI]_a> &S8SfHT ?TLqd.PȑrvCP*/HX  Cg "gISn)6#RRKdބcSL~iSt}Fd]u3[!SIPB7+)RoaVBu4%^ % cӣFU q=> u%ֽ lppE7EUk^bᅊ}v.B@|@u2:AZ޷&TɩKhWL߽wv0-;;F4Gx@_=yM32M^ T zOp`.XK aI\?S> BQUeXg(GU F^~Tԭ3yBM5E7WQ)様G`lÄKc #qaMƬk&VV3)E,EEmoHIGۓP }3a9+j@DHEfo&SANY鼓G ;>QKa84 X$"K(MP54i&TzXvosF! ʾcSË1BDJuq=`/hP=GC^6}b_ p'tE+h\KT݃O<|-2$CdHƧ[ԹW? %l Z}Gz ྎ:5EPc^IWa#jjc+m[S0J6E1$Xrrx짮 \~Qf=QTJrℛ#WJkh"sJ9܇Σ_Eaqv(k2$ %tR r$2&-R,sQkk 8Ṙ"ecn6oW-/t^}md"R~|AN{(T_]3/D8r Y+ظ$c8? JLiqLFҁ_x尤ޔu?W" t<3h;;9V@c '3K̳ /p~d"C3Bդ*vk^)D&jLm?^ⴊ^G&ehabRU<1tLE"^łuTE,1'QʠXd3+iFe_ICBZg3x\t|ExD0u"Qڱ_) ^$ȺGTgeNO9_t,/ ,rrqMJ1YX#NcnNÃ䕛 _D%c^|^i0ēpcA$yi O vBdXpUpbRO 2^rh;E X WD2f [,6ffuy~`;cAv`֠꬧4,3&=!NEZJ,甬4` L޽ J\w#Ϧ%L@WT$+&3½z̗/Eq֓EgQ܃x zi>_'^!֡`dkЀMX`S^ 8 %P~vJki K:@9ې78~\iU쩳*3;Ǟ絇vU :7{AS/e^o--[~L{zh JpGQ:i{V#s"\wIJ4.*sb[F31M;g7ECN69F0dkixPh9wghCE-!`fPIr BH|*ilo"TsizEj8b14\p¾^|z hpzv 7 Z2Tx ٖi Pﲈ yN8oMdƎTmCPnU'yF7**S<8pCFU~ \"LH[0*-66e^qFka8iq-Om|!bJX œ2+# Zjg`:nļkU>ߵMCh>@ dIt]\:n(MxaSrQèKkO739K3Ҩ!gD˚$] Yߧ񄗙K$'o|2B' jy(QReփ@y0MlT.<F O־9=ۥ(I[(lxoRk'q\At!TxaP=xVZlVffmNo T5옸.Z@!3gpX+^rK' 9Gz DrܧO !f(j6V $=BcpKA‹ΆV2MV 4o1-Jg[~?,jw_q™>Z';58şIVd8aKIYЌOt}<%!:y=x"g"qMnL64ZJQ$7R2J%YD@ eh^CIjʅs[+F\%>ј0tm_6{#H/OkoH&t+wEcAñ-Ѷvbk)cMYւ>c3T.껥2}a[xsNl^yLW$ =Eb#|YI/$/rRO:?x(o].}uvz;O>V̸R덴:7DKD&:Vpʝb3mY{4b0R^Qj.-@ jdSy\+:t[(i[P(aZ&5%R&ԱcЯx _A.p,'+ӱGo{:kA#; oWzЫPȎ׃?0^OLsI$+ʔLXqA* xa7uRD`fX06ɋmghX+[/UCn6$F,h%'$U悬$({I Uju&NM}ݺpbLCX2Pw 1`mV9#wN =H]OC$8bMaB\Xա,+[b2Tb%LN`׮ \YC2ϬAL MI޺|h7li/%}az\͝I~R_@ֺpL%>FsҡeSeրҁw}b}p9[TZw_ CA w=ج2dcFa.E̮ m2C-%Z'T1|NHF!C1= n3 X$ĀLKMČ|sĵO,usd-Z*?*h,/ w]YUn5]DQn\ց!GP7GJ*ҐֈJ=w"5>g_ pEh naOs$Œz9g"]nlLb+gyC\]y3_?gk:W=:ݘ*_}mYJc )û?O..mT/ZjY75#`jPv1O44Ϲwr1\< AKʄʖ<xǢ$a6J*O5@Mgtz!Xh=8-9Z9ɚQ{u&vfbmE!ju( +]{0Zױ^ @ms6CFC&I~ɾWXJ+Nkdz}|0hI\yMFLykOplRz} Ud.fQ'Jʒ+H~:J(0'f! _+$x Ԡ[ iwӋ~XXN,~Zd/۟fpB ]-Js =)xÜdA>Qݏ|ZxL"{v蘱 l_^|AױWH^T&y;ElX{bI\QTC$4rUQs{ZDZPIm)b b,{))RSHT?ޝo6~Q러Fs|`FvUػR nejÜB`zɚw&2 X:#aMNj"Aa Zb;n7wR?2cϧY=fp>Ѝ@ jBڟMteP?dA`S"p 7H/$tŽMd{&Ӹ3g3 Z&a=ÿZ5D/dYz|S?HlwX.ȓCF 'aVT֍*97_Wcq~ KX胆uܩ \M uZOb:{fCdcڱЗCKÿH8)Ppj6S07VW 0FگG ɓ6_6yU=ep3059Lt490i4pQN.(!{~v`;bYwiR?ޝqT 5Mcq2ZRfp|_ܑa1;bMؑ rѴiԎZY@zh@,DN'xihR;cE:G/*~s-@e^8GHsuem zS$Z SKD b)|6%^QP E(PKZS@nj>]cFA FD'M|!$ qI=? coE۔҂1E1ޥ`qbEc7>EyHJi}̒[:>'-ߖb=!T "j@=|֠f~pwL I}GR)޷kU]-qDo* ,Ҹ :f,ʯۀ6~@>mG} %=ބQOEZCԟ!%>ZJd?xy%y%KWm{kH'XT$2(<b&|ˁ^ԑ?~0!}xgyqb=[+EK8 I`xޝ0ҢWdIABG҃ZPa{#`!m@ b|;d!*4ۆfyz_EHXg[X$'(ϻY%G/&QAі=ɳ3+>ku7x֋ЙVgwHjP[w化g-≠145FJF4hY6vF'_L Nǟ$mƶc\:=CTiheی thFzMzē7PKC[7%chr>g=ZJDq-[+1mg;Z7^{,ś=8.8~e< r1:uaX}(a[cG}{'UHC#ϚM|"Ixɸ̝R) 6ވi2J,K]+ (%X3Tkdu!x]ZFng8ˏ%vWSH~ɡazDx>O-?zڨt*ҳcLoa2%nbg]`eqb9;M7q? K3u<ꯡK`&N5+PX6[\ 2UDh|\wT5'\i):=mo5|a~$m_+"zVo07YtFB\v>}w}E Zhi1B>rO+%*ќ,?}U2.\$+ ̎WQvX^'#Is8TPg>Ih4.zW-`LAoLYBhh.S\N)6)5. kJ!(1g}ݨWI'KՀRR/30t;7}qTǥρ­rC NcYCFrc(y;Bn`/d,,[@ғbE<;_/`nhq`#l$NgzU#ςFILEE}8n;`MZgb ,S" ^4y LX &h'wmI =~K:Ez!2ڨ[E]Dy,U|B8XD5ܐrVHEg74s;͚s0qyKp8أ'¢!Ivk+֕SɝJ!u'}&[X!b9̛YU!e\¦]Td5oN!<jO\9]HyWd_` Z| ԛɤpV=U(MMш Pn=֬iff֙)0["/nJ]^ܙC}XI#[~5BUpG(9dQD,[leiaLla#)24bՖ( APXMlu }t?)j`?q "o:q~1A>t$E}F/eWl m4y\S@ Gt֨ɻ!Wui榔--.^='q=e5ݢa_+CF{BsVz0Nj7(Rfl[[|]#LeGcoj9Q9!a rH}vVԚAdy !cU[QʞNԐt,ӿNF׭_! Mw*z6x*@ ue$xz7MqFSkv`M@B6'"ƴ _=9Yoe}LLP٥=C-Z]\[5Ӑ2#`Ԑw_ig4+LGW;FkG-w?Z5(G) }%zo[BF]ͳ.8/XBL=U@%: U2c i31e_YH=tcUˆ'dէJLSfe@"%;_ ^)/ذq 8*J6w}Eb74\*^_iHR͞Eg7яj)&ͣ ǣ)wMd$ڶAU=s (׍f;!m74ۘ"tf* 7"}[I$ SNY&q-:iնC kWX떼e\-e?2#b-ԭ."Õ8CH?UL/p~1vƁd-b߳9J]hQ!2(u2IH~>>;p\ &Zk _D]O',1.뢝-!z(5lk7\W|x s\߽Qwc;޳hj^+01PƑ5t-C`Qݬf@RT[I&ZyNvۭM+/)h)Tzm WtEMI8 >z3+MLzB !TA~:x;@bm}ܸ Pޫ+eA{Jnir  @ڕ|TvȡHߔʩrM$hgS{mL-/j* Y.>񼋉Im 3V[|}3ԬϕgLՓ.[,(Ǻ2}w@~ͭD qD0.itYB %rQמw/h;aץٟVBM oںݹ㔸E}tcC S|<X +&!hn9D (Sl# lwW7!{iA z¹ǥ*Hb!1"v*܁NσǩCLP&xT]r[R1dHAlqqӽrUa_eI4TMUAg-mh0M-/-3zL":8aF̯o{wh MNˢx =Gμ< bOu&R`O 4y]6anbGB WX5$y4`3s[K{.aOjdvJ۟!u)_{,_謕+])7#6؋I#vMB T#ڣ;ܗ%v10X G]WV*qJ>&eTb&<96%ܑp{Q&s^w#^2尝zL̡oW\18sSKq>^=ix qOcwRê¥gk e3cԕGO%6ѲtE_٦U^I# n?F_oZɚcmn[',g_yjb_'Tٻ@$Y'/-opa MgaPv~~Y{l"~>o,sLZb[ː<}FƱ;,DF㠌.OsM5t%VeHmzJ>Mam:+uNsH/]c:/TB^q(~\oqZ\>0PRTyAt7psQqMeQj7 Wɝ!|D("j7Ԛx(G$#+k<ފ>Ѕ'O )f!f^@69!#'w0k_ZT5%cw(![mjV̽ԈqDۧWzdjS2|\xh vicYdg=K'cY ?u8:.,T ?_Hw7=6 |\f=&Sgsd5; E;reU諟ٯwpa>/K8[ y~hr+vEt ,zzfRZAw)떸(&+In#6/;-GgEJ1mLrw@Oy0OO,.9Ǹ1x'O *Tt1-m&vx[2Tf@PU ?~_4V),) Z֙ݒ·?t Qr1gРɆKg8pX[묝*/Kz z*^$5MPuCvl~*auZTi,q*:1)@;1IXP-6 Qg ٤C`YxrQ_EZ2Wg~4yn ̧֌.3UZvfFFJ@X{?%&1X8Gxy\yj>>x :R D&s#f#Hy޳V c~B&WAAz'v6xBA }Il}ȝԟ"F5`@[!Mhd`Fe^%3ςAPƚ G*׆,2PTCCm1ܼ=` =H+tV-.!26wO7'ZŰo N5GbʕRBsS's( 6.l+8xbDIWuG#9Ћξٴ"iD> z=E5w7~b="ÇZiS"{G. Nn1~ pGQQyvf+r3DBB? llm#jn dQP~:bu~sp7TQD뜵ΧԀ%ҩq`MUH] mЈ*6ehv:ذ܏G+)sK#>،XjlQ:%|N@dbqW‚/fd=ګN4,$Ҝrf :_?N?r"%lm+".ᰫ+n߬=2¼HP|p Jo#|9P"L`ѮD./) %/k)X<ؗvG(O{ى?4 LO4HKx3"ڎ;py.=Mı=Ҥv`ę)f!Nz%穚pXDgs}*uldKāBZ7e;[tT`_{Nd/|1fDoM^ 0$-V>Nb2q`OPEG8lLS\ﲆ뤧x0=rtAE fm3_X,ꜵie2_/E3Â&0g6e؃'OHp Ҁ b ,zO 3\^%SxN5KBqk<Pt-og{tln)cSbȇ~eEBMoҡu:F8H>wFbwW}.{,Փ)]~9/3l$2 l6^Q#I{$IZo17D!k¶fT,.Շl3+>A=9 !5_gؕuHύٖz-'>YAdy97۠mCEpOwƕ>bTPrphk LGp1e6311eiDSuD|IP^aTR}bRv|_,Pجf0Rgֹz.TX*7'E#b&D Gf $lR4V{|"MaMI Nf dŁfOF-LY-"s-`ݺɮ B&cj%WT׽Md?%ΐڟ^/7uGIplB=f>M=PUr]n^"5J#8ڷ ]qSq#%G.Cl0u?~Wf6 R}s6ZY)Y',2^M fV%n# D`Tr\aVQgb#W#VIBY^1V!y8 LBMf=ME%k 3H$vi)@EDkX:ZUU=OqUJr$+ax}vXPB~0qӦ(=)|[+rڌx8_y`Y qJYJk<}|]1: pqxKX¬:-49о{d5Rhj6\rXN\o  s碦u~6Hޒ']6[G{ŗ o$ R9!2m-lR19M pxJ>= :rvd٧TRc֩ꍙ\3Ɋ,#vp~|n;q7BOd_QI:CgN|zed>P4G D-TXvٴ YwՂU_h8R_b#(*8ʘ0a=D}IVBmG>'ڍsWkd+]25hl[sn Y 9 BakP,Uj4Ny k9ij GK˽ %JjU;#!E*N \L?F#8صM1rmEDAԱЮHb4 Un'sdQ;Z\V|#p恭ػ?hNC$OUgUra BA%c$j4{+Ss VNmL9nE; V,ڬ@0w(mE-,U(gA&2Xs\qs&TPH>-yd)+{h Tc^ `H?'pq\pH Exs_lI4c& yHH^\Wm$\6"bkWcTacś{TBl 9v }gV$w56#pR_N>z#XP\DT6CS]!ZDQIs&aBRZ-]Q:\o{4[@s_} BԆ/<(!.5c _ݰC4o7jv$TDٶǯ}3OasMy- F NO}KϭGRA(42A|=1 a+ x ~t0$ŭV@#j܎7d$(ŴbH~Vh8$j^3($+3R}ȿL/d׋_Άс$L!dXA[d{WXb~۟z b ?GO9%1hiӔ@fG1KU>&}7a}wœ>݊{cYY4 o @ĥLu:7cgöTWw&/VtcqTĜ"KzKlV,Wkk]]BDCuFMv}/D ד ۊpI:WS'%9Q|TܲoAƍ(0ΊD!ʔIF"ٖ+ޚ3*%C1M;nu`1ZQx2 "Hƶ7.MlV׽dn-ƘJN3y'̴2-{rf5t)S"ifas\kT/7^] <$p5eX+N<eDW&^eeÐ̧ɂqB. I Kq ]g3C|` @MoT >}Dnf![ȃ@j D6ۅO7^ %tyl84:ʱSFel=ѹ];.IŮAo1%LܧJ #R_?pq3|˕p_KpmWTط䦀\[g^52y0֛L$y؆6I`WxܓKԄ;Y,ą^(9]u)[m[Ź쭯YT?b^@&SN $Z" jvyӂe#y[A9Wqf7YgD8%h#~#.*%s_`C_qpޞ] ͡sI%a{ \8i8lN-nAwȔ4r2$s =i*7*3SAѩ,IIR ژ6L`]jȁv/;j`wf®Y=nD=_JMZ6l3)g8tŀK/(m~b*6 )Cl_-TAچ>_LAPO47}A+$ipꢍ֘Ϯxqh|"#%;1<*@Чb[y ݎ/ 9;̿9* vO }~g<7J3'|$)S&05Bi{!5Y0^NV`YߥlkEV nq׽'E(Mo 褐rg}r.U#f4@j&#cm}Q^X%$3˵Wf_pir"Ch9ȸFZ n9}. ňzsĮ̟es5^zRw|uy(% DA~$hg,TCii>IN:O4+GMgW|u71|d )/קTĉ[ U/🪦SfFUi.ӀنD .ZxW\1p7@Km=C9,_(wJ_`Uغޗ˹m)h_xĮl\D9ifq'E&fXT*WB9wLs[MxY&xpqC85)3xjmD,PEbӹEХsNNo;U{7sG)b2ӈéKkSy_'BCŗFRozZˑi8wP/Wy\[ȰsH<)KC- &#dic 4NNL!Ct+/ Y"سlF˴2_it-њ%3:2d{@%B.gnP%P̚xFNЗEwlI4XzQm u[%U·swGҠ>|f5㚔lexκtQlw?T,E;2A͈aM6gB;?c@)WVb(1-ϟ j{5+ȣm^1HdkCr\y-X>R q{AӸ 9T}aŚss iCB35D`=LVn6}i׺qv+ S^6'= &Z-ȑ)Zۿ[.FQgj ]]c].CC(Zl&Ki?Q c; b B?n$DMc|0{iayB+עb˯]y!̸']dtiT (=O%TP7B|FW3&OW1 ;u EM{5xxD3vZb/{C_YPCڨ[;uyBX둏q?+ RJS1 X2=aU4ܹAE6z#vtQW!Cpgt2'\VOC:!!yސ<'~/"VF?fc٥P5M=x1pI-g~?`yc8oCXK?q, C!~1I>w;ѣsCJ&Cl+=[~ǿ3|XV]k>0ly̑mxjIPjw ٹ3ilgz)䀹yYYiyGo7HZJ6M/?wJ^ IVhA!64t'hn"+bn[_rpe:{ Zv<#7MC/p [00$-]nmݍNFT[śЧ"~$Gp]"JnB#ja$E=֓?,9x~6'e-U=,GSb%K ]$XX uNX6*dX":6ݕխeZmls R0taԙg,UiiOM-UH y"|\M ^:HLVS2F,"GcJ b.!.꟤aͿ)]P%-+ZY't87HvJRF$j~|n(D>/ʕLO02e7?٠Bn`MԿ8i EHٸ_\M@IEysT2u PyAq6 %p)pFњW_f=Ì-}3֠hNr1;a`tVDR#R0/}mf=/~(Cg*3`*Ecyt_|VBU699~᧝ZgTݷGV5p/qc|cފrKɱa1MJ7(Ƅ) Aḷj5AgG9}' J5Y/Jc2ivV@ {AOv+蜬)nf!. PJ;YiZ}h( AQ1XR4)F^,b4bqo5 A'o^'CPw 9G`tARkS%by>OCٝ(A1><9e$wYpXr\>WK`Դ@3F+]\PEUV.C2Mң1+*OA_7RtY,IlhG6j_iqR4"CZ= iKxs|Cd!W=KtS_nVS2C}}2^P_: 6 2E][WJoKRN\r B3;O8 ]9&撑 _X/8\iFKaV-4kuⵣ+6:_5,Cjjm%Id6uPdM G\˅wUE 35TBޟ_a Lf8K]l/h_Ւmk_R CAW,U-nF'T,_P+N;(yvEIIhe:iY&F7,hJvu"F+5|d@JRqMl_PThB%VH^ o"D}#d.pP<޻F|ۖуYU@/@jl+}+ׁS۪&juFZUVR "p7xlEVJE!]8τY K~v_~'=ͻN|"D W2|8 ֕v{aهڞ*Lmr-g TVç[A($Ri#6NUGIU;)5\ѧ5|N{5D*UCig/NZ~ ۙk~6 zIghŚzr]+ǦaXxWv%;W{M@oW,6({R%ztsd`լP fhЌm%d(? Tmp|K=Z1h8*M3K89W%O`|Ld\טHgy]I c?<]-?wKGvu*ݺMi (65 ;,[-^Lh;Pn%2Nwg~w̓k<8߉z~uM1g!.m_{[Π(o3MxH %HݾPchdF8Kgk2w"u X }R&k;M![+|B!^ 'X*-Hӿ2aG'N$e?_ٖ0|_0wBw>(2aNY%c0Mru|@\FmŤ?ӆQ\s]m ҸPf2VN^ T`WI)ܴJ^FoI|-v | RoE?רxj'j9x.|tH@2|dXj!2 a3@yڒ:ZWs<2OA(˺&)5N5S }x2䟳+[7^O#o MKTBya氨u=cC \Vako!{ouE>VŊaRY!rw5{?]f'kEbuإҀh\>fV'a 1s$D(ЯK`z8k3}$#dDU0ՍDm Gy6ь0lK@ .tЎum5[Kfmcep9Ԥ|Oj%Y~Rnߝ Tv';;{R,7S݄7Ck2%sY؞,T=GȟDNOInIim;&R=Y$H*9^tam7E+R>Bxu3lh} !ߠ&{זT`rm"fgXy*0(b!b\!2 !/<[꜐q9ۙIfZŻɺD  ϯ笨^G\ޟ(Ώ3nf2ÙZq=vlqL+D%η?ZƃZyH5oxF޵c\[޷4ӭ]G_]/i CG76 Qsj .xaQMeHRObN _ō #Qs<7v,Xo庴 ܪw읁BE}`.k &rZ 6')KiӮ+BvI%l>#lʯE֐\1EM?<$쪃%b^TegnD5KYfʭ[,!t1CD; -o_BbpLq! @_ԍ\>λMdzq 20n1Nr,$G_Z>t,9ZAkŠ;^St;AW3ŁRi E״Ke ? յ{sEDUn3jRjG2#()X |^0$LqՀk,&գ"4Pam٩mt`Un5jt-[0n=?kP) *j19ǼNY b <޵-Qu*LӁﰋ{OjTKvSO3D%ѡ%2ނ ͖+?-iX4!ią:k2dFƽ^KTw0[hc}38D6l)5hߏ p[ "4lDɎ:0[lznseB-l/YĈ/|H­Z yHp\Tg~Zr⁑-Ia>EVm=^Ő e%:Wl4I11:g$U3K/v^?kD銤(nHd?1Qp Lțؑ,)^m!'axϊTj, T?'H𔉯iSr+MОޟ.B33E_(7Ot5z1m l,$O ڇdUdb,PR{~3!jk1M #dwV>=%JxwtmpB6't&ȴ|v*θ#o› TprݲPĹ9.X hF;a%vQI0l <4)mٯt>6VL]*(RwI0J!Pd )J(-N}rS²+wzɸjsui+0d4`x)(1bhܨqH7kcf 6ե3 1! 2)ĊKo)GB0ӌaFv;Nur^'lAͳ-D"#+eK!Y0. v>ygWjs`W29A0ʷ`UTyIIkGA_SG? 3>/Bq"րɳ`L-Kl%j&| G/L~d4 Rƕv'%yiO8٤>\Ս ,?  6kHPHnmƢ' ]@.ᅨJe+Oa=[E];z$%I!kH{ ZoNZ& Q*>bt)Ř|bP/;"Nш'E]O`w7HsrDl,BK&8 "]V| }dYXI6'uj]3]G=nS3 5te0$ÒJ%6Ztܣ@/Z7iF-ĝyz@E,W^&Od,.OSy!6#ToAx0iKrn<^;[M4iT0mx!5AU_\}U Vzq#Tl;iⷺ)`H̡:[{wdcm+羴p bkC 8NO".*, @agBȜT7UJ%BҲa7sj`Ź}Z[>THT. xNIxMN8LAj F滱TizOOjYD̟;߅kn;=qQ۫lVs$D+L69];曐;qGwU+y?X5pBr4#0TH2sYM{j^K Ab%bݭOM_Č!Q72zK`鶮mAB:Tל&Z˹gDR2 +h/p;Mzz89Cs dl9Fz~ƌ9.(=| PX 'j@3'Hto]%"P ,/jp66c{(xG\'Pwqge`L(T%܎nSO,2^ϘF%)nn܃+ ZK~"?~Ypd??|}hxz6œeq*ma*ɣJrӲ!'ZTĘˉ-`|Q9٪JݽV7a̜_5 dکd~ԐHf+;{V[kpzsJU4gԊ. u_R(R&*z(0 ʼnPBG Α@y)^h 4_Mts"IVuƽR R#bLβ3?g]QS?V5 "恭ȣҊ'YjMVE3Ú¦^@%yi #邢Pݸ6BU:n9Aw7CSB|dʌF( 4/Yc69u' o$9YV (;9}=T&ӛ¦mft~x8n)w].|zMy Ey&ҳҷw#%{-B#"*LVСogCsOݙ4 Pcq[o`c> GKtCtc@'G M5r&fCV [mYD{+XƄ=EU킜߲rn]W3HG 0^6. JDם3=3˛M\i>.V묊CK{;0ͼ}qPV} Nyrs+^Wﳤ< < "mvuVѦ(*ĥ({^si6NgTwT,лv g%it$02PLcDt{nc)D'>]9ʙQvJ%ɾ#EtğЁĄ~<4T<)stq"H&HID2HM(G޳~)zV,V$~Q,AS. s1%Su%xc`Q} %m giᱶmzۑ2ĵЁOU:$$ѱ~ 畖eh4ٞFFqpl@r (fE԰ێ#+ěQGN}3UW|@rgt \X#ָαRX΍u ֿ].4epΘas.>(jHc7WSmt@I1+I,:SQI,Z۫BT ̨b^J0K۶ɻlW~A{-+b~ĴڞK ,ؽԤ0f;pV'4nZ3?onJ@EYLCNXcQj[DZșr k l큃)])O?'+f%6 #շ&'`t z%{[Ӑ0(S}Qǽdqmd.ʿx7v-ir'P-nyÅx|g1"zuRLҔ""F@gr=4668hb ⽔f-ȕ3 Q a]|G fkW_ [xƹ8Nwc{G!%dn㏙^vxi[:rxsU9tT}SiJ(Cth{sAN>ΐ#ܫ?c{Oc D޸ĭX>c6va;H4N֊ nm-j i?I[M_ ! t] ']+s64ǨLHI.&+yč ro P?j/󉹳tuuGguCP1} hX1e6U KF\`xfeqz]SFͮc _PG{c(0)HgPu*?dݜky"iKsKjD{A@gEpaJsI)k)5d9Ci1{6i:g!9m$#3ЅʥKyaGa{ JNDu0sJk)խQ]dֵɉ&#?}'S^02Ʌ3(6`ܟ9]b`2yb$b剈ˆ󄐃l$0O֔.[q Z9Y#cs#Z|+<+CkCc yԻ8؂TmEu0G]?ZfCP4M!^e!?l20$pl0 5<1 Rc$DRa9a$>D>J#4q=C_SQBf4 Z|I.WGO(QρڵC~p:81GZ傯 !WE ܒ]; t\T =QP$MPQV(FMsGA\/l}Pi>u[D/E,DgySO',q?J@zR+j`dd,tkwJ*2b+H gkA7Z)^#2jS?=+cHx+/fHRNt9d46Iu|q>;<b:lQ|s|À9B ҌkMּT@lGq su+%v֗r:9qVJvJM[p1ץJ1JfT,ËEr83x8И^c,ʖ?eIzD |nKP&:C󰳔j`@_gAz\}?$$,zyMhp<@f.7k(AoW8>9龞&M^oR.Lۧ*4dJe  c=g݀5W!j>nS:.4^Y7C"rN+_axNT._| -EI A&eT &{a\Aoi~SnprukԳX8rs uqd)t;PN+Ul W|@N, PC Uy!`V`[D:n8Wc~[v?Տ¤ dtc,Ycg$*E =eMGL5LEE (/?4@J'W3QҢanև cicSsZ42 wv-Fp<1.lq^5[bE^]$,oݞ.E> X79A+b؄'}I2idq$p'˗.$(OMs&iK&mN幅&Lk2Y뤻tgK6?܎k7+jbC-4M#ISYfWΑREÅieqotPXBB `bzKa26q"t}qU>=ԤNO[2^yz`ZY Wi;H>@RV3i~qVXAӵJ%T UZzs]՗ y>*Mq`Ln^+{ T9 `#C0ݴ&gN?ޗu(¤'h (ivhhtNrP.1n(0ᮚ/|fr^ l@嚃k~+p_~rYFՖЊ%W' 뚄E6ߊݻ+C&cNfiu0SY;bv]{Tx=>eĬ~16.Q~w|0fλdCf\$׼h~Vm)w8xoh.dwymF~ 4[~m~ޡ(xToVQ{Ktj'FJDM2mi>\mۀswS{ qE" 4P_9{]m;rϊn9 ̾H^`ϲ$f6m`)74bdf)B5԰~织0iuh0\O:Oz>%Ťpл3L򔷍$+MHq~\HFsE"&IjwvIm:K$f,ޏ`=u3mVfcFY6&x'zNnVbN* ߴ?LܽEzEUNX-7htY]FA ^4 "Bڢ`]c2Gl@.b(&Kq=i<.&m &ڣ@L2( G QI%@+X[ZLw=ݕD-n;ۦ^0er1+5 gs5Uh:B6g;d2]2 y'L*M:Y)h5yxO+-E;yN#ps, ]+IZUpw̋:Sk(Qㅧ4m9hUc/uV>):ÏCAJ/k?"MN:5ښh#PG"aH ǜG˒Q+,EiBUϘOx:d8F њOxڔf+b  ` cZ ';!X]ap"D0-;Mf~e4gȹ 73E{ ‰W+.evzN =x/]CUFA&E ݓ0R2u#Vx[=#'ia#6zZ(r 2 {z@vXM:qϜwfcc)JMu-|x.0ԓi/-TSyčO.K H ༭ۨhSs\'־@$fE X<} Ul#wW 9d:JgMKp{1Ld"s񥡝! qi_y _${S]0ncܡE6gk{-3"}C.Tcc񞬸6渏c8}C3agw$ux.]J{y GNC6C&[*(pr:QTK94!1; (mdz]hm@P$:' F#Ꞡ3 m#{}WO6sEs}RJx#]:C@Hh6NM_m^5Z9To1ZT p>l2v,dAqvS7lk͎{Eѣ#`Tr*i¬4vފxDт<X3D,r9j^*) :л&hw.Yb/}&]W9]o3 8WDiw8/FL'~YHYcR!pVcawlkAjءy$۶4M>Ye1&=-53,*pţ-~Ɩd:cS=̖CCߓC5o4ٔ 1~bn4+"v0Nj>1stJ|bsՄ\޹2E,}p.gH)T/ S=xE_(v"a:Z3@+kN8fߩC˙V}@yJvuXw/_5K[]O3n?agXH29=Yv>лXGx{{Y’-B/Ea?'ҲbPҊMǾ]F8kЏA[{C9s-*u]#΂a+7Oc ர4ʟnSu18=l9]f-X =6}$FCsT^ YY ^ rkRA=P{6HǽZ?T `B& %r54eM=<~k>, unKa.O^'(uEVI:z `emTâni 4DC+d5xEXɮ`I :⁰$àǬv{q?ʖݧQS!-cLi+ 7,Xq [/FmZd> EH!Qjp\d EwJ(O5^h]L猾fktfݳJmu!0J HCFj^Z(z| CR>}K/=<+_DP᠙}g*VbXXJ6 #m 1i$J(`"\ F`KiJh&k6vo IN{jzYR7f^'p|prr=B) isRhTԴ -+ 3{TOu=}3/D:4,/¹JF# 8Sʸ kZ zUp*im}{ }aJ^$/ ɰdN K5ŠSe?lu0ɱo{.1Uu2DL D#GܹP zTq2~oa=Y~[W+DvID]< GS(jЛ_<۾h&&7h G|)'yuNa?5 \M/LG֍bq~Rl뺙IĪw`dF(#?5Ě w֖qo҂-H;k81+WUzPVc~ؘ OKUsۼ|P=ZVk )]3YNw9/K<:~3E՟%#5bȻp3d>S:;M`-ڿ-bq?Xl=7.T4 >]e Kp20W?RNcf1M8B @9647iTZvtR{lS4l$zdq6k<׺%)ڍW?ǜɣVNjt6G]%=ut>eUE+0}d]DEORKR^Kt,z\~W=Drkk$,P )~1̥ΊrF*a 5>Hujp_ 58* f%[a(^D Xu`50K6Uـshi+]:b8&'59@{ rNزn3aQ7r?r MIGv95#8~ ĀOC(כbd,]:WJ2#X1pW"f5ŶVu O%ƍZrRG8qz@uRHGy=T~r-v@*X(+@']rƿs|)4zYlsBeqˮqt=7ǓPX G"27š[RMz@ZItc@ޞe,6^[HJn_vl?^=*^,$~0-=@Tz͔2g5x۱$"f}y=WcPW Kd ru֣–``ZQd㛶0W$1?V܅ Bax 5gis_YT|v_X w,/vE"OU)@7耼bjRWG6+_;u*n#`޸ !L!*ȞFwRKk;s㍬fC*-nWB%g߈M5^|/xٕzI (|R{PbUulsn&k0pZ!3āyuWBEM?diA`>MK95%Rj?PFO:+x3G#Kˣm}2l)[LwYi5̄eZsg8͍#S'謟!nO6dk#qUJ+|ҏ^KUDկ/8"a0Ol:ef[!^X(z„Wk8T.=#Xk'?tmO ˰=Ɋwb'3<4h_Կ>`A GB#8[h]x?C/'5ugw Y:SRM{sÆWI9 16ǵʒ:tf|yfBv6iAtQ_?86-B:;"L":Dd{5RE/%ģ9 Md۽3n25 -t#Bm`|[  :4‚Lt v ѽ!iUi/C)2d(-!m#&S!FBPi>r3ۖBkvu*h^1OkW>cScdn( \R޾wOydKz^BFmVw>h(+GBqG1du1{3,P y/1vVʼnLK/{O^k".ه٠ʼn:Զ}k=*>Xx7a=J}yd9OÏP%R~À:#W}3pg1o& zҢܛ۰Uq 4,`[4Oh /kF4ZvA:BTC G%@qHJ%U -0SUC2Օź}0z*LFE/?.0Ӗ[Ib=.5&UrkJ)xH_O 8Y2)Ю/⎫yLj]~Ga8,?b-(90VBIؿ/SU>cE;|i: U̺hh|yO#>a2(+x*8K>#y|ޙ2?co-dP z-04塉Y4 x= hN]VA]Wwe7th΁k\J`qv>3|[+uzuW7Osov3˹wx c&tD d8H񔁇Zɞ[VTB낖 }n3h]ó1&+ nOvw%_DfZ) 9~g0TWDj>}F.Nb'BRGY=Dywފ$XÝTbXbL6)Sx"3E?! $pQ#_*/WQM<$qRWRBf[0oa19g`]*X3zLޠq%lM{KÔ?z%A[4bȰC@R؈Ɋ05^j;Sez|Mͽ0t@Z|CiRan_FZUʼ[Ɍ"t+.4e0n}Et'mR#Dee l0rۜ9K䨇,m] HMSUH܈?U§PQ~Ӳ؆vܓpxzbr_i\ [s rʼ;#`7[v߽/>ndQ1jSV}Tʹ;#lk6“T͊٦.sCFc8ߋG" ?V)}2D\ᆾ>z Y6js 1+9b;~}zPf-oYr\Y0}™:SLX̹$S˥U 6Xckȱ-UDƪlٕ?|&ob_KSX.|.C|M`2et0T:$ QgDeΖ`YdHNE%7;e~Xd4c +O %\ N.hri]dIl64{K}vYzVJhWs >+L'fqT?w]x(Ĺ;K}7w{YyEA?Yͣ7"=&2j7yu]1_{fV+maO9dm=3&2>D'XGHG#TǛ|gv(S2Yz& W 9S9ÑA0@4ɤKȄaOɫr7_ɶ,0gg ˰|_s>1.//N)n:GJxŧG M6\OT {J1 Lb1AL{#DbAl}YIJ49Л ZzWYzRt$<#x262gpk_NQ=81 5Kdâwe\lf=Ysa&B|B]^X :%~}d#j!#( `ѥ4] cG2UHKٛnG,pBHWL`;s*j\7NK韖&''TOq~$}u  ySiJT +8 ՙ0QNfQ - A72o Yse=f/y Cd§rmq7Kn~fQ"v&Q=i[V>PkDM Ĩ4q{B55!aWK)g&vbbK#df7寐V&8?օ,-ᤛI q뀐"6 T/)kpWl#L'LbMkq'#:i0.$̹$K奸 E U#vZїE ź֡ -96ɍUa~c}e% ml*&x 틜'"ALP'zWl1eԇNnp ,G0;?a\*E~٫2Yׯ," T 0۝r M|T8"VKSr+M[/ \Rf %i¦:SC P&MnsS.M 'I!hZW21N D6<4Wζؤ#"7Nܞ@!?!(IM.;6ZԘj}m[&qs{b/hە,[/DJ^E6jv[dCȇ儩C[azEBe "y :'Y+Tk wM@!3by˴E"<xDt9w n/XVs$20aV[21(n,`پw32DSD2pAq d\>KH) ^= zK<זJMwؕ#VYLfK-{h`"ΩG\ 0͛vj!ޗCiNhy3p"3){9lL$, cֽp@:f^-n'}<+ҰYKK8FL+u_:of9 # _%'F3G|RLe*b1C}}M f׉yp-af\rFi9e 80!s?r#~r&RJAd` ֤DO6(#6+ uLA>{h ?=%%ʴ e Rf!ywq9=f5&Ŭ&I6NOPhS6xRo? IjX0 >3ősuk @I33 i B^+M:<"I=>QhG}JV0(~j@++%QlMYfVgG-`eB;KiPA1ad\Ȏ)B=ԓ(5\b,0dž*WuF+NuN{ƽ8newM#`OMFZ1E)b^5 q}ǜOS>私 *SP jUGK ;d %Iޑq04xfT+Mð$[sr4%/9 Q 6d0۹Ƞ0ws.nuvkՊ PC=o=P@IN}B_Qs+ xХFaO1"$wa,C I }Ħj:^|89S' PGEZedy wո?M6(rX |%;&v=w_pC"mph? tH'V+AD'i@I/HSohj E;8SPH#Y69E]@&(Up%9_U[֦sғMW,sI).yeE~E.=sli .јyA< E\f@Ua20s}C四w #:)wPliao&ޖ2$,H*yW}^mHBI.164 =dl1VЁ,t1Ƀ \ ִ-/oX]KB׷;jެQ:ҋgjTyжcP_}f&ތȸV@25,%hTw}HC@E^($U/\חɱ%o.4`GJ)] bmRj0z'U '8 8%cCb=&iPm\3k\r}@QW1ƪWABZ #]3̍=z"KCWl4T]tkOw*GѸPMw+E.S 2zV:Gї @ H تpWab.">б?b\*[dAV^O6P˒g Ec2Egzbݝ2JB w>5D'V [% Ф?0͈@G&~ׇ{Fc"M:,3HCAޟ+ `qG\F6;^'XzS`+X^b/Wgnn65Aاs|6WfZL4^>AzPl Ď6Ei沄k윧Kᜃ5}>J[LaOͣglS h.9-~]gO -vwEDFd@}vպ26_x븂IsqMKi)U,I]Jy-U?8^,H~pϣnMPU^]#z/YN(+j)YC/Rg)x^MA԰[EZlCk$EL[$⢻k_M&D~+}r "5qS h*I(X;I&(D2Ư'ݓ9 ץ?bhV)9#ORNZ< @ QH-^))p[-tƑ1FxF6YA[y!ίJ{vEn*[ػh["Hf;HE]qP*lO!|03Q9Vb{ r~:)f&vt H,Xi0G{7gW>`g_恊t0&drv>KE(l>]; =r\6mF{T{Wzv(7役XkCJ7?`Š(QQ[(n(TU q.tg/#_V~8?䦊Z!!'rݮlM&?< I$ ..2zw.\%7%hv7x`v4VTN^JBQs(7~HaUsY v}O-E2Ib;]bqnje̬4NSi(ThF+6"a(8'^LH*JS̢:7&롪$2DKX%7;$] 17bd+ή]UR;NxpVz:**<{k%7O,o[Mi-r#K`o+hhDJI%zbA]h+ #a*Vn|Gw%OuB tQͶ3JOf']C!Hl )72=J <k6cb;bLs_Z214ST$ 3*)p̩!@fiob xd#u ]"jK~m]o%ʹaOR(=jq4ISWiꞖOih(f=a3L EXKyyXǣ~Cz#tlīw1h"-UUa5]r_:2S?/ =ٲ xwd0%*>T9-t&'PXa|( Rt0T8ER7M&sdD|UF~B*qCTߗ17P]Dc2XD٨@f kh97L9_r_=P]#y77]μ'Yj>39TrmgrMBK3s(zv j;o:KJg=srD=3C2x2=Ȱ'z{O0|_ёD>‡kːkU^e <t&!#5 ` 9nPo$Y9JbF"O߄vh {q gthWSk(X Ghn<}C _YaOta x',! `"sxpI Kؾ"g dlX)' ŝ~H GͰD9ⲨqdiQ%x A: VSޔ*.X!-† Li5]M?=6M|ؠü@Lc"5tSDr8*#SZ|Tg;Nb=)Hy+7-]X|R- ta{ d5 p9n2-SoU]Ϩu?i]~,OCwia%՝R8"lM-Vm͡9ۂ04fgzEYOF|JCN}#JkTkf[6[7\1_!(> H{}=8`6n]o_}fcDyX+Dk^,$tԑ,-bT-54;41\ƒ-T2]) )L=c~#^z#A}0ٚ]]Я8B5YKG0K A5B8)K%G\M")4n7z%㦝c+F_C+A2J 'A:qʺ,v 7:LDJX9OC-؟t@ZRlb.AםH%L_Mӗd3L1]и 0<aB ̥ Vle< h9J,)xl=k:, C% vϬ{Obj6ᩏ37`I6o&|7cs użyԗSe4 - / /_Y]8^ƭ*j[3 X)ٞP@)goS?Bkwj<{6\܇n6ӫdTEe(fI/$+/F=v[`|&5m Dk<ҫ0ZsP^ &h[7q#b/Y-wcWV$Z! p+3Zfu3+qȘ.L 8˘;5EӨqq`/D2 .ø0II$9NRS:JA6fHEzT ]҅;S2Wۇ6iXYc8f[o x}a Hu>Ex}{ЋaղpE88q9gBuH'P^rhf;A RξB#Muڧ;QT 8Ig|,s>;tHx5؊89 L%E1|$;w?pL ldY(Ʀ|dY&V}2|WKQkG[)CGzXlI$(yD|b4qwUwX/U4!e*vs"8@R*OpPLrߐ(a߂+e[ZwYjSs Pz^땧ƮVqBzi=>ܛgKW's"251a$%<+`>?"°ݏdHL8Df1N[{Ŝ%^DZ3>:1H0CZ$ZҞ&0u!nt w}1S4GZQ7߭GQNs4+l$5Bj>e{ݸOWQNI/]/8A7uu|jk-en. Κ Ó7; *e",{x@qs5Ehv\oC oPñUSU 5$rD^H5Xp/at3wp[.Ьw+Weoo%0(,#3)̛f]X>fcw*Gv5e 0\1ϩ?G٧oVv,|}0h62r rXZYe~n/CK ӊU* C=p"y5|؎&FU4o s!Cw hj"]xTL*B3d#N%f^4ͩ:tGby)g *74GɃҖ0+7,м{9֜<B #@pRZjhX6(ţum*Wc49vzE 3*| K]4m ɩz:NEZXÒ/!덒 bo xSC_g T$C8 }y >oOz,dYLnSw*CD/W>ee܄.A`WƾGqUNK?7>KB Z嚪(f7z%cWj\,M8*prђCKؑ8zPx_|@ vK ,͜  ޷`3 XoT[W%c?6pLq_p,89Hz-O} Yh?%ij +Y(B5 qK1ڸT;gRKGf[=qDtT5$Q v`A%4/xߦ!BRdu>vJ,Z.#~3Bf5~@RR'2/6,Iʉa5" wN!0]26:Gj]gjݗWJm^Ycdo\ST$KX=N{CG:IjdYXrƓV["OHqpӸV"J~,o@>?CA>ZF5p/W6G<>l˅øpo"DmsݠFRiJqVUicR'TR QqJ6%Jp_G "CðӴ|qoƬs l#OК׵4U[Iؿ_b*a d6j~*K-t"+SfBQFfN/Jdsxi{T>˾K(HPkh"E?cxI{.yVݡ?]^qGm^ /͢|o«c>A,Au2=M)i?QnYhYJ\s!?0 A?[_rn x]_)7o}k猦ٺ@9IlJ?%0H _taRqӬXl#dvƥ6ەn$bfz |Цat%*FXRwݜ?n?U{ƕ?>Df-i}Gj3֙Uf}D2=( ChV-źɘ0JE/b]70 bnIӱCпS'?bg3Tr A/oTLntmN/n$ȧۥ8vr:ÜVSs9$hb,M!t+TZt"?( ^$xOyweƔҷmP9Ydh[3 =0T ˫rl8&/3FBw7ybfo cnX :#_y&y+_80kIG(&At P< Jag!-; )v߮LGʋ24w?nu*xBK67xo78oѝ,mmqwup~ut(2[ݱf\7ywpSm?U5uZ2ho$^zNa0tU5 *g.<`m_UR̩!w3EԿml ?GËbXG"ӄ*B0?X1YSe 2&3 `-`ZO (_voU{#񗥮n~5`-3t\v/6Jx, ;IسS!@D2XΎ]S~V~# P M6`H9H˕R />{$IܴqnH}vo]>N8/S Hqlo1Aj,Nkllf"9huލ<8+qɯq/X] Wf8ۥ?.΋9zHWZݔ <<^ZeJk Q=^vWnZK7?s!2Z-M@]Ϳ9`BJVŅ=&y6]BS}YɓW zR@j\ɯiD{(ip:$^և'\1XX ~b3kJ힊ͲZD~@0ИKT4Y#2L Qwv6` 7|jK}Q7* O03 &9dXab:bZ-㍷z /J]r6CG j9ZgOQK%Ya@DŰ}ɼ9_GO4%qt*+uOO_e3]Md̄,[F cA˅7*m 5豇i*9 kӂ SBn"d[Xu=|/N  Whw},o)SIT_9;;z4oyK̺i __Y]dhCU kz/*OBPljv6O(vDѳq"o*YOy, lr$w~KQBL#b6fMyz?7ݎc2fC|6ܾaG4cL@kM{o[)Otң:*6,vT{ 9*7"#V|7PׂQԶ)tQw {ba3+B^3論ͭ7[|mq-r l}8MR+',׀Tdw Bj+ӈyt,[O?Zfc&yeK؛KΞl+#8oapQ 6Ə' 'HQU1alRdG&rPF@zˊwlV?|j}Zyu߭~m_¨pLGXW s2%)|$s ۱;e4a~atT'@B`SA$K gז^;M1;:> ڲNܥpIԖ,nw@u'0d,|NN7g EEI L@/2pϹeVNO wbtkLf!32~#p z~DP<G-,cՉ J}Q_dyx.GdܺB^v Vk,Q2ܑE/NBD;ofSDݞ!CII{SWsjܲekFX$/ &s9zGȀ> e$*mg5:(~4;wWݳh@sq:_ L&[IE(YZ|TsɁЧ*j"Dċ2 *fzꌸ34]Zɒ))/\ėfu:A(]k*`OtM܅ҴP%Q [ 44=]Krf]K_)D $k\}02!] /jër In qX:ycRW 4_†s,{mq xd0BYݓi,xvZ"=bAT=v}|Gˁ7wW/JZd^( 잶3Tԫ:Ψ*ב_U-8rNhW `:4? /d@m 3A³5H:>` PH{R Er)V aO2%0½Rrq`,Ӥ@Ķ]&dY uWNڳ1C uR6% gV#,솸=@u[[ C[ۙyi.{`m}̴|a% YG(!7vg{}=pY즰W>e҈ы\Sc<I`EBan̴t1Aݥ<:Ej 6LS37_0uawo1fZ։St0OεoUNpjZ)jKXh`L8X& 4 a%%Iy24e6hw*?T;y!mikвP*F0blAQ6 0jH@ )l'@ЯH®/!B$vbWnW Sr5k81fg|J~S<39QY{ꮜuSU6VKOGyv'==H;M^#U jdp}uެ,RM9g !wzcepПa̧8On3İM!PS=Ckav q;ҥ9CN@!RC9E26Og"A6Ge`Ye'{B\|l.rg޹Dn.-Wo[[];dMBA?{y`K*^W;^ENbkĺ}/u=&c9\Bx%BWu΁6ӊcPRiqvbtO&TFވe.X li+j܋ 3Ĕ dO UFcptyP9aӼDYq ` $W\-A 6JBPhRpfvLfG܄M]4z-w!B)#O G*4u@>]Y b+U;@% 3phU:Ah6wzu'tLԈ'S@n߱٢M>&VcbI" eAaї \PjdJ8{,9 IA rv~f|7,)^K؍r@~\<tH՘aCpBHZCG^FڨU0*䈨[VZY%4NCN.Dt&sK0I:7Y ߗ: p.fSI_2ڰ[V|p1+ _(s+tܛʻ p7&%kHlz=Ulx0-#fFE0kIXyWegIAK*eIp> [eyY(:X\m=0uqwcw社33HP \BxDQ <Bf5'KOi !ޑT_M5ggy!^_l)Kb4!\?umd{KP4U-<R<]Í7P~J T"g{h*!Gc~w K#Wqte3?gwuyR`N5{z8Qe4@ьK#c4 >lZⅆWF ZC8\:\YՑCF6ZjA!*om %roo{ m"26ZH;EI\S P~:gKlN`v sea hF5r\"ܷX;@V̰:+XV{(n)_<}⹅5:,Qθh(YEL]}: \%ZF1ڴ#;-%{^5%< ~Z [ta7wC5vQ<4w"SL}LtU%NW/4h=.gU t}E咘ըWĈ]{&`si*)hf0-HHwnp/2F&.Ɉm$;V.N)o4Mv'&w.5r>Sxi/x~1Ï?ݎ`̙|5wLqc>7J&P-&7񈞚UB[wO՟JCXf,`qgiJ1㸇 r&!T/cٟSC>1OX/0WhUpߟqt̬BmtoVD&g9EH z)^χ1_E/yZJ<xH m 1z~.C] VC(aЇ,wGo$V0C1>ReP U8$mWեC,]Ryu"*G}`D#2av#2Rg /%q ||[CYؙ6#nP9Hb B[b{|b}:6 K`L spεhI]T@ՎI) R *a|ؗ)RBH}gQ_xŗ,~]Fķ$yz7ВOkWy79r><}: >ŕDڱs_6Ʃ ]'ӲSa_BM]\&L˳ V<^,}i8V A?ּٚQ IEtw bs/R5W8yr00㱋.uRl\1&cAX$9C:.HQ}jx7T“2@B8`d  \|*âbi,;LlEP-&lnYA:bAuK~ex穱oΔ}q^(#=軃̺;+F%D |$>}cF@duHFCYB1 E?hɩJc ŋtۍd9.a|uz?771cpwaz] L/P˸FXcal˿FﴆxB”chHƒׯ~綝3HQp6nt{!iT1gڰ2 o]Njf%RSJ~Q 5 gܺsX\Yn -4/"ȠYd ] =mgkSnnU,Ѯ|#78x%WKlycrb,jy#O!)?5|=za^+.o#pnaN$P۰h FBzp\iN0wJ2UA]KzFB78pɋȧ:*dP>0399U矞[&7ݮ*ۨf,{Μh .6/ i,40̧13 z.cat<X$޸BxpQV<:jЉr K-Vt86bGm|j+]gTQlb7͊r c\mݔR)7$ 1lKy 7=X k-fJo㠥{SW*C`LS܈1xkA5kiZu3;!K9ymg:^?O>(KP} WIN2dO-WO{`)kIdտRݻh%olA |*=kbÆ>zH);Jt_Мj2"kI0Cl٭^ǭseGu"`\?$3D_Aڒ`|Fr\&ƨ\S<,{Lq*,ܺNAPۣT }oҌ꺷oG+ dSk|#i 6Q=SuHsBC)d/yTb~R\{CZ:]Ta\~I|ag©J?ӹ˷dp܍%AoL 4y҈+^w+6+%" Ѹ{%D\VKn)ɥyL@GsMBL ~ r d&x` ONӽaE3Z*4K\GlrI-`삟 rPϯ+ сx_R\!OGVꥑ+Kx`?8QœbtǥzL|$nB'_U4@a|Z~gtndҿkx=P%Wn޽ F|K1?8-7$NQgqA`K Hes€@*q@5 EPG1dZzjTr?գ ̟@Nu |-vYsi@tH4H;'Giigu\Y魉_nX@D>D2;iL&t~`q_6fEw, K=6֡xY̙M~S(1Lߪ_ -N6bͿ~Bje0l>9㯢QkI°x]0܁+Vg]Ҫ<(0?nP0clSU0C..㑘`VQ`NFl~rp<|ۓHZ>‡Ƕ4kWvvC}_Ӷ$  ^T*~6"v:Ӭq,Y{hWeQЯ:tUOML=:xK͝n7PULěps}t[? G?z*khF%KhP-"c6Wm2!//1'Q-ٖhDJ;zk<* Ԍ島torǸ1p)\%[IE#ZK( rv7pƨW0å̆6|ZC4=+ض=b* ?}MګYDEs7 P"k W7H!_ÄZOZ[ġŕP$a&Cr貍¿aMX."AՋNթ٦)50 ĉߐ)6CЋɀQ-t6䲼F1Zb3% 83(\J+/?/W^(qI5ǣ8 Bq$Q{)8QV`DCOnݺLL-7)TVߪ12"A^˅ipr8// y9l8 oT }AKm___ zvgV=Xw耫P7$)E|i_Q#LpPwy".;S9s/=LBvIдԯ;~l].2K\-\'*i s.>E#d'G cb# f'{A%8(>8 (B:#l<آZU xǍ+o1\'kaGj[.f:OzyZMʓ|}m yLH;dL:N kx5ӑnt} E(,cȀhom;#:_n.%h#4dֺ:.ߟf¹֩sWk}ſA@ Xȱ]FA4aWQV7rO_!,%7Tw@%|¡yHP"VD%Rs:e-'IX5,7aw"Ar1 |6DSg%LuHǍDMGx d"z:E>/̄]soq4d7jd 6_tmdeT0Cv4͎jyđk|qx.gz+'uBdj~?/ɿ~ODCy1Y|:2>hFG'Okmv,ꛁFE4i8atOGWpﹱ&jR'|3g/LvxղKA8XnÇ3Ss.J ,R E0;IYV$`*s4l]\1fv00w Jp &erc E8 _ dA =uBS@E@'u7N&<&KH78o>DT>)u;cM׋N:\ʬlZܣ? a[H[tv1}X! DPUK(-(bArҟ̝x :`U1 _J3DC\"E׫"09 I<.4h2PpԠG;ʶ^c99ǁn:8sL U,/8u4pF׭d\i= V]47-TE;1g)1՗YK&8ژx]_;N +!~rf8:ٛeW2,̻MKX 7Rz}/*)W [NXx} 숋D,!ZJŅ`%S+4Y[.Bzi%ݱk+uΫIV>r2o(A0tZv ox)ScN9Z @A p*]884WR(Cs"Ƨ.z˪ăBoe6b ox7 OPUcj\`zD)2\BlZu[|^@ڃ1fFٲ@i/a)OhZ }m Y1 R,\1W}ra#2|}~EDQ4:UߢldUs5+O$ rY^ooS|1lV'sk O䡔> 9ןQ::0Xi |~tt9Vo{bs9޻T"K U7 9HJ3S D>}_,8ٻ[FT<|M61s˨A3wZcj$tE(M` ,#w c rMLD6`zY۬]h~% _#j"+yp|ƱnÍ̔a ܥCIsAڎ_A=zGEtu=t]9wMD;?]&_C<::H&ݵ% K @"dbl n&1&"ѓIP;(RfYM9{qw/9Pl6\b4Aؐ`ͳ*23q rb ~xl$#3ƽQӦ)k#icJZu(-+4:ͬvnW~_a4\e&B$'R,\/.}~HOҤ5ߧ&}H7|&L&^quz5MB6 jQkpJ%Ϫp5B?.4*x]ȥҤ#2𕴫o,) UF5|k[P(lR/Yg6PN7UAHN.@֝ו.|≺؜K&@>ʅ@h?/ ;0P 54X]I`BNW%i\ZFo<[8tRY. :pӒpQ; «|xuUEj߱tY H vG(f#``^Q6HU^g"r=cpfpD+>G;JhN=^пT,^Ù8= " yc=\%=8mMEfb'ṛho*Lx{*#3J깯WɱsoF3dbZuW ¯w \iv[ w0~n~ض9++QIZ8eիVZ҄qbI;0w:Ž^f `,%?_.x`83J9]5{N~_~+ ]l6CF|n4d-.B,`?oȽ&צLR )M y^y)  DfH<;bb6il(hYI0®vi^JYc FH9@ 3]# ڴcv^+p@*`G;OoQ"o9u Tg/$[<8.x(/1Hr%w_'ĻiĻySF36p>jzzO1.:a׵E[Ȝ !3xO]:}L FguUȋ ,"MTwhmK˦SO3ԉ#v>֎ OSXX]IdGŌr/ؘcM4VфϒF(1V[@QF{j!2CS( oS;`MyoTPvc%gdWk(6[ɜ I ]9H0Y"h\(*ajP|,2~C*p䙒wJH. .`c |T۫2RF|GɡHXk֭DΠ3g`c__Ԃ\?QL GD`[2j2Ix/DǙ? |{W_KG3OA4A^xt;W> sBǖu!<"^?9ӐF4<(ZȎ}o s .w;ZA.D_h y[Kn,6] H KӬZ ?x8K fֺY&QQ@F!!ॆg=PgW J~'VmWL}N Y51|*{ly{8kk,aG pEeSJ½:0~G]qc@6 !RަҎ@1l. s!mr ~=w/'mW4މ>vHȒp(1@9^D% y?<4ӽ-R[" -OSE݆|bq?`+NFNb_Aq, Y%ј.eɵe-omn_*fFF(~pwt 6hM6H1zs,xۜHabA'7"Zk1pB@Gܺ. D}M QQܸd w΂4\<@qf%4K]Vr3mړ.PBQ6^N&)*W(,ʌKY-A 6*5X!w=vqLZcJk(j}v|=S1A"]sw5n+,`n,{}O,T;D)d=䉢:SxЎ i"S6Oq/sRЛ=\ e0{ UT8BLt(K6\ ~݅zSŎVb/V pS"EoshQ-,] i`J?孷k sre  d5u^3Wϼ`2/}A:I>Pְ[@>)pYi첒ClA io@Ցv_͕=( F-B[suŀ<~/ T25Z{yXq=޴6uւrohDY.eP#/堶 =H54JD"eN<^ʫq!XХߌI5hoO'`\y^tUNrݦ}4 F*ȟ]8yFR4Dm8p!M=; RFTpİb#!_A#}Cou[zF&#Z7ʛςdOHYguoHRHF>4@zk,i -{Țo5~՜5SFThS?7C>?9QOdXoJJjm7; la _Pm(k&Usa-Vz+iKEԦ}kk⇻30oæ ,3 =&.PCsO*)m PɩA9O Υ50C[^V>#>=GRTEc`C<qJc À1:/ҡ ×'+x,M$ #O?{T`okqztavU xA D?sC(_b&tҵ@FrO mt 6}?~(hb$8Y2_^ =6([j7@k[/>aӘiKRFZbL22wq scꕯt B>K2N^""8ϗCjw,"L6 c |U/>m[1]̹wcV4á]pL)'~b]>|eOMrj庞&,-glr Ջ56vc)*է]DQ> lblfêrSަYlsLPC5,U(u_vqi:lO:7 gWSXrOaC]4QtҖ"|Vt<V!l̟;Hכ+^-H's s FX$̚]ɧfL<^R3f5"mAjgVoJb7g- ٙU<է(6V}u|;^~xU1=1Iutvnn67Qlr~?Ȁ>:`{ze)#m,-+®tϘ9U; {oy7w/\u">nYmfϲH!`,#'Nfҡ&<`԰'U~=>uxlwv:vx> HnAj=,ܻJ:"G1 py]\sU9dЏH/K*\o y H1DO)=^B1yd%(A˒~֔IgzwbeJa~+yNH( o+!K;Ɂ5zsRom|?[MId-^֏wD}죹`<`O)N:5=o݋G a!\~ uB 1USAY 2@z&+222}} w LSŨfWiADYei!1$nqV d&P)7Ս<rhO{7$㝆9ܶh x~4[PUm!$?A3:7HI:F"-qiQxky6xp|ˇ9xekZW$FLe*z!*"`iW2?~L?)OniO:KiQr!`D"~C>ui mDۍq [ZbןBհ Rxo$a.b) r{g=Oj~^ x%=%fPot,n4?S\NdxfzxZUl%rECuRnF8DW1#7.6GUQf-尜6<o(Zkw4ͷ@gwbK24s՚^& `<~n M+^0M$ @}a0qỤ.guCݭSm܉ SPR*9l:vˉlTvg+ʙ`[5t 5[2KIՖ3 nޜO?E疣>}ܦts;,tpq(&%fzfDFב"^r*Z?=|n(eln0v;֞×=e@k;F{a?nk,M׀x0h`b>-%'X,{o$)4Fƨ B8FR;V=4 |j$HowYN+Ck)9J3gE=[g$Yy>irQ~9p$NׂisJ"d(rvۉ#\ k|bscc{G/n}(A`G!kP=,F+9&|Fo.Ç^C4;B$KmI m[s`>w>|T2*拁'=Bw9ceƆ .(h#\z71go)hsI*KT#HkfU32}TfG}&D]t K=-*O`|w瓒$&N)ؚL8Z[]~E<]&˓_C" o$JwQAq fh ,ҰX;\ÏSG+A 4uɁH0ȓX.]]-XT]#l٭Sͫ LUIaj,AxT0^M(fFFZv}DVa#HsƷfJ;5+SUyiS" @zwL֌RRNlL2YD3KB͜\YJސ.nv껷f<=P @GcAsWBẪ.M't' /r"?!.n[MZƻU|I[+uh2d}XKĜFՕ71M9DB&"쩟 wxh[ÑeNHu?Lڭt{Z#^7HZr> zG$Qlܷ/8JnU@;UL|Z\]$,s> dOנB.:wH/b!j wGT$Z}:tA߮΂V[J7F%^m*wiLGoqp@nHE'{fH3&v3  DҬ>]QZ?X_YʎaU\Czo ew:+ɒ9t7akFqBel!p03MP\9-l"[:`Đ"(vuЯ-R|Mj6qsEf{u4u0xW?mQ :d珣-IbD 4Ojbo o*R4/JC ю3T~&qB1VOʜA`as=7YO70 gH11IrKQk}LQ=5 =}g$M`5Fs$?>% B,ȼ`I3!ԟhP$1ӓC𲒦\vҁj2%;yqb\-lpI]ַې@tnrEe92L) LWpNt{ih}AKL>ѻ;.UX1WBZ]Se00.fe̹2s-+GY,G,2LK،wU{|thUg'#p"r &~dgKkGx]7lۿΐ1ŷ6],c> leJHЖBaa~u(ŵաҜ~ΎzZu?; 9Åcw hqMY^2.v; ;}V9eCBߡCԪ)u w4x@ѵvN*}`3ډ^Righ7>f4|IwRvZD8c3=G~EYThi RF\ >X `m%әX̫ؾrY`3&Y|, '0n׻O*9m^ ݤXwiI Y}W_vDm-dDKmAh!T3Ur z`3 ::xN'Zœ%!ELuKΩlW 6Ҽu0VOyg PzbudP?.ӢYU{狙 (ds ^Ԉ#ljFKZ1Hּ}0-KHKJg;2Xf#>ffP-`7{=6}- 9! M]͖٪s' )B=i'P(բ1:XлXp?]d%;茵r_KWe{E WlkLFwZV'Z{uS)n9lA_P@*kA/[B C/OBoAւ.xUղ=PG7N: X@ `XZ~*a , ? \NE!OSg1A asZjy]r/H5*J4<Rŋ?MTk[ZJ9M7S"Vt@07M1 L&I?Rkoy3ޛz_|^7U6YK%a XڥE6ށDW31G,$z럑E框}F8)Op+ &]@.I?}94:Ѧ̨O"_Fw s'㖅 .(A;:*ܻJu!-`qy- f{7oGBгdE<0e(V+}Üt{F-PwWxX6A$| C S).Ynm)T 4'-GKtFe 񹨽䚏e'.gWUׄf.a=вkAh5P Ml,":'u@Q@sݐL\I&vbcy"aS|1-INPbF'y91X)5vXuK!rTNeY+!Ʋ`B93ޜcƹPkqg!A_44zVŵNfj\"ͼ*!?-3hړfwiGG{ con\?n ,q`QO,VN<#Ԑ3:WYaQwԁIhW&,y F7W¤3VASKPdR~[1<ض\m1R'P/EZrT0pgFsRĆ>b(o Ɣ(wĿ$ӨOE;dO `10Dv|pk0JQZ{z2΂L/텹ZP[VvNYo{#%DVxƜt8U`6y7O*+Qd8Qi#x2w6.C"C ]UMF52>N·1z9 8Sv ^n7=7&ǔiz]] 8Ȱ4&Va zt_aYf m$0 s\)Ir5rz;G2'ʕi~NʋY5fȫcÓ?q*_Ш|U ?JJ@0?~P}83^K^Gs䜋;5\.iڈ1㥾΄P.j`#\eK37i?:P:p/H^.0 f+<% P?K)Fk[*]:o9LuUi.)b/Wx}%y^5%/}||SӤRUUi3;qOeG٬H}dkꐫ$"H6Q>0lJw~H;K6:-2MRx@[9v%O:q/&va4 —*L/; μp|ψw.He2\ {*da_yMdK 0?5W8Y,u;z%P*k24 NFdǗsRCI;X!6?XH[yE_3%.W4(}z:XՀ{V;NBWcYwry~Ѷ.h,y/A9Xzd;!}JL{"_ @I16n. 7 DZbT@^ @W"'S>!5si=Kt-ɳ_%Y#[4~ll kS]2zm=KT!)$j IuV6*LﴕȆ&> ϥ?ї$OQ3Ȍ]_E% 'oUYMwU<+Tkt!e;*rP1h G |JTw2%ןɢF&RɽF^2\PxianI8^% 7$^G6'f8H'?g~JP@1ee뫔㖮bCzh, 8L,o(y:˚,& }+;sʿ:GhϮ, CP՞.܎ ӱs_yWx Ar_~J7VTa!"fEBsO m6Ahh0 II%?Ci* ׂ~bB%ׯlkќU<Ƞ̷RԆ .'TX2j VjJqHto=m|Z>$Lj^CTMŢ(P-}rɻDf*Md%fFEX5SE)ZA Wd[fVMAQȄOK$$!Ω"l8JA=p$SsQۡ` !Z" X$6TۿROt}W]a9O~.2}C!~)_t oHyD1/QjtѵT{abB4PMf\.?YWB97WȜ1v/CShw\)D@K8%B:O9d5; a#ݎ% ǃ2?M%vUO*$2P)`uJ֚h~q_:fYr`$ 9h9vffw\&(ġ-zGDpp>r]{ BFҟnZWX7g :QJ=Y7:(e bh6&XÅA+w`b~o,Jr7a,ce>Y5P#c-+~2DLgrIӐ]v W-P]n#`և_S,j^xG[9mֲ@y9 ac t!,ßu/.~":!$!Yv/c Ox`GÓI6$%X 瀽a(|eofyÎXڌЎ=4Q P#xj7 P L{A ~9  qts BEB'c]7B60L7W2%& s7Q/zt D c*2搐JQ0gF9zbD_IM[Ԁ 7lEZ&떆]PQg8$+dza ]Ͽfz5!HK\ GSNPTOoƯ=>{Wٺ}xN9C%gn|f2Hy6b]%$:h.+ZT32_$;;gbtL?} gw}M`xy0g f$V2=mHcO 8-- c:"K ,cB#ZwiE9ɺT Ԑ8l霸+j ~%e=r-V!U4qL Es\f8s0|p#Mw!K϶wv+J BִcxQ>c@'M?87@x%B:ŐGv.#.FnCV풿ʳźhDpwYko8L.Meoe9D)̯}QwمMGx)17Kwm`i ȅgoٶ?,zV!"g v%ef?#bMx ܣb; k>sr$}O2)|l[~A;  l[Gk,uU/h3iiJyP}fxp Kwɰdgv05,\_퀤kbnH<4FR# x9!J ]I} AiQa#na;TjޯIIQ 셃9$D{i_/R`FA j7&0kHT;gOĆOhR: |~\ޗ Af\zx}6 v>;n(0.h(J}CR-wp8i*eDX WP_QΩ%)r"i/m*P_X͗ Lg@kÏBC :tb~R%ASb${. r)v :44B]HDomQK(/%qžUln~T7*DN'<p%&fRK=)ٸWlAƻplé/m JB ߎI0D?{&ɪDIp4"DA}G#aܮ[JGՌw&%Y ;=ZA5.ih*C3>Jip]cU8qw䬤Lsbmi+*GHfMPgE ?EwdC~VǛE^Seh? 0i^Y<tfۃ@vt6ClO%m [bô^+z:z]A2s)zFS9D)hHm[YAybqAr^R~C 4B-1w"d^mza%?Q9K% zo@e<:IEK(`UWWEjYekiPk=2{oߙC_^̧Y y3-H/fp*d٩'U 3rjO2TvK,ЯfUbFT ߘ5m wے H?X7U_fS Y=*kz_:2k *ˬ.f{K_^KAwJvj]/ Gd#'}D!q0 -pך簴i Hk?'^5Oc=@]'p:=Q,KǼ13wnD8LRzyzΎmVFPʜH)t6& A-/ QJTGHRvjc@y1jb& 1ciaqs.V x){>TA |\,urf7:*F?hĜ8X:dzѾyq˗2 H N<]}aQ҉5</ж5+i.?2d|i?_ qV<EoA4ƴ,[]R$ҍ46UzBex|阯}3P$2D"V(S7NnH ^8~N;kpOYT%$tuD6Ko @9~zO*bR\gX]Z>/(%Qqh|4?ߧ[:s< rT/&;77 ,a\VC(DKgz4ؖ~hZF(M hL 0e)(8MfTT46GQ; `.O@S)ce%rPNԊ\ k 0IkUI6xrnMČ0o*5 +4̕~L<}n>m}7.B6䞗 R2?\ TEhiQ$ Fp U@ x!%r$ڒU(s*xr5KYB=$F^1L~g)jRTRips?M\vG.)X| }*!eS4χPoc [O6%FTkn 8"3j Co(;̙_(*E"q;:=j%AnaH@EMſ0顠8|=5tA؋FFWW-zOF޹d>?tL6st.SV`CF.s0zaX\ܜk:$912x0Eݮ_F{%!$Dl^~c*P@l4Ge~6-dN_ eO`gxWBz_Z14Awh׈CZj}7D x#߅Rsz-̰I) 3s{kIbm|x럕p'}y۲w]ffgˁx,E{ !"E>*ssU55󅮆+:jַ$)hdSBAuӔ ZeDZ*$M?K^Ux|uO鑨NsU0 O?pg sE@mǷ<K%k7 s  8`Ij.|l@eBho7:FR;½C T0. M˸Щ*m2`@! KǖI t+$J9i痬ZPH$<asot>i fIbk;fҮӤ e\)TΪdJ;MH1'Q:>` hPPazk7IXM1(nlyuqkB9{ C 68ΛiܭQ4iRE_@17h}`1[ŸXͲYJB]Qcºq3TS:rNZP)vYC("SOؒu&,E [_@S pmO:j#`RXM?#z{:ێ (r"٪@[&=)GE>ИAs! R`2X$ZN"XI:{U}y.=rV.I]Df„_sbViJsu΍GFRx'Xˋxf'ԅm:Ƕ|`һ؃[am::Qg%,s_0} 0eQ40^yG#\mgJ*-`dRMI#w4#VygLpF#l2Hxڠ/^G>;dh}@SujDTOđѽ0Bisi2O4E(]ɤ)R/UͼE?4+RTY|#-~m#8M\"≬OlMx\;(z' v( "!q))C[A0خڢYr2CYQ:.3dm 6 ^{ .Gv[3gwTJ.AW(x2_,3[V]ũ6(z!oow*ǯS=$ފ/a쀐J1p[arf`t,DP^0 $[~=@\֕}kIhq!)4sCHa`>J{e(~r5|sTfbɈ^:Dz F^f6}ȾB5!>G-CMR o FgRh./pd \пʼnxYPwlGj1 eO^+9f:\~\Ö+֥EhZ F,GwS@`(cE7e*0F j"((l&7Z_VQ([K{N=TßP9Soij}EԦS)`,;x|!7U7zD8dg_|_bfiJHP􌨒 Q%pͲUou8aѿN2< ~:aY”tdOlt!Cܱv٦~(5R >`3aYP7+8LuM*v-Zuޘ3iJ]eO~jA' ^Zmg y%5(T<jm,CF@bxV r~# 9p9$j*QcTL(@n9~sƉ#ܮ,vnXWi'g~|xTy1yDP@I2Up̈́; %ķġbNP=.o%C$Ƴx%Q "MtZE`AFYX\v|2V zAJH;3l!VqFasjUV,sUOi*:-e~w#z{TUwaY94 X^s n]3p?JR 'K]пܓÏbt8Цz_ĵt k*:/,ӿ@ $D eP!$9W;Mi>}ՏUl\IbC/g;M凜΂DOOyI24/gB?Ԇ$:-fmxXow\=}"(ZoИX}Y(UV+Ŏzh7o@@6D[2+t``j3+%ɉSiHSTuA i=WKC9|`=NBr|Y1󪡍yie8T7&8@9μ 47[ F.5מE%Z[LٙʘUG5YW]TEG\z>W׶0V})]#2W"$־Xi\/RrvͫJV 6WCtuDevmv^]s& Tzނٽ?wm\>Boj2 +VJ^HA} h j%6]rZ7,D%bF.dz`N`:^c0#=5ĸ}(ڛv~x1-1ڟ-hOs~,2w C&[ 'LN ,Z@xgn_^o>㗚M!xoUmC!IZ&x ܲwQ G1YO#8,g_-NKCR^am̗C}77P(Sz"oFKsuOex9y 2w'j}&~$SŃ`7EwLq_ח]"Il'a@#CM6S;eԢ5BXΛ p9zSb &=XaQx1Zf+ TƗLCUva ˽?::jB* YQd9 >}u)TUt *KA[+P' k=h1 [|DZZǙ)x}t/=v|ZR29CB>8K CM̝28(++$i$W-ta/a>%@g+d #?r$2tP7 kzjи,H彃նIdnIRRr"j]PKD@xRe@#秥Lig?߼'ȑª9D)dOUrk=Qo(Kr]i;Q坒KקWEu!vc1١* C#bh pa>oK]|8.mUHԡNy4ѥdLh' OOн k 7,=&EzxErۄ5?F$G6lVb[MӴIqۦ5%a7jъ1&hLh~(n#G.AKRp{$;!''zDjҌp5Mُ %/h7@z{7O @ : 0`Fu^=1g ePgDNDԈg} שfsgb1;^b7;iv^Qt!=H{deȠ{efr@()(3V/9v9֕%{O3V^zȯ:%trv'([ *J V+f.|Be*9dE4!rKoȺ p=Оvzzq@P1hp\;<JM\Zxfr!,#"RP {L,hwgjS% eTP3ys=M} `$uE8|h?Da8% ,B%,a3bn'y)ckxϨ%IUǫ$5$[=䍭]ae^[VC.mQҩ(h StRX쏎$dZ|*~ޕwƯ>8Мzk/VHd^^ɢg_U>5r)ыb/[88YL%H:;eWMƤ݈ګv{8 X շ;z}/s5,^EҿTso@$hb(b{WTg *%QOW2jfMkW$^H7\]zGerKNn?:؛t, =tivw-M!jx:Aimٍ>F$Wjbx3x+`emt z.G"ˡG0:dIxgֽ5uR""ފL 'ffC44fJ;:fz1DI%G[`ۗT4GͣS7{.iZȫ YKVH!]ލ {?d)*+\ e߼o O`@ 4=DSqdK=E%<=!c=%Fo˖ |\s.^+QR*#ޗx 4KBNOɬ$KK6#>2g;K|^]~5 t,\Iܓ@4YcI/^RFIs&~piYLXJ8z>MV'S(^̙9|x5}1H D $v5L.wZ4-:嚨?t P8p]3康%>Cs.uA7{[۱LL-֒鲇 tQRqqB~n]D<vU >Lz`e&_WN emh[9k _ E m*וUZ-Lдfz]jLT1YO^-ۺN/$=ܥM*]eP]^X " l=3-:/7X{ `U7H|q(|׆#%/Tfo%4sNC5=EP/ Wb&a`a+h% #j񐈪h# d־8#SO~yzL=yOѯJk9q V X˞*tCG/3ޫ!l{V-TfB&) OP7#pJ#rK}ySPDr)O-STWj7R5qdo:cPoPG%%#(cOYj^#]X'xqB“9\5Qli&{H)akDp/3ԕ@F]8|jT1{XK$kpuPtaؑ]l&ke;"yN bzuDXh I3Ap;gT%V]ŏu1yWmrrţVoM^PUeB⣯Idc+8Y\ɎŗK5ՎY=lڭwpAo܉D{rnR~*NJ(ǞZU|_ܾKHa@\k2s9^!s,7ds4J&[-6,N %|nb!5aIܵ L!Xywhrg=hH=2bZ 1.AgAJ3W~) r+,J[>|ᤄd<>mh / 9}BTfVZ ); ' >xÆ>U8gOȨG4@"k$Q*Z_> (#]9KmIJ^l+Z1BN|]Ie^{k1r 2;!旊??Dv#kQ;Nx@0SG8 k[kYOGVѤmqܻhKK__A9w۟B]׾n 4KVR1IL_ /@6P ,cdz? 2֒4i{ "",8#cBB?*Ͼ>ٔ)GkcY;>'v.tqP*WD ٳ79k ?b3OL114 3D6wL - _qq9b+՘O򈊉CQCȿ(-wrCkwؽÖTΊNgl$0ʛJKМ%a_ 4 I7rh3FfњGvs}j5t_({-4xf|oiEH@yO酒#ڀX]!IW \u4/,tlS^[} 70ރ{$77w8n$Kɭ ֧[pz'@t"@wSWRD I? ys/]N7}QP˚)1@"hb˨lEpyde҇'% Md&L`e[}ԋDq> %zɌN-;ܦE/bq_aun1Bq!!Зy]+RTP ['|$]L_K~Q3K22$/Y$:p8FƲxKj*smleXlWJ޿S͈e $!yi ;WPN@)K|!ZZU>f۶1c#^bsfeV/!n ́>FwiЭAUqhMG>fdE Drj 3NE]%{܈$ n$(C|Eysy]uGx3dfRz9_gηGdH ˗DJTj=ly9Z ln')ۚBp@H/{9yX ,g-I8+%| |[KJ?EM3f崘oIX/`+e65qijvOa@cZ7 L*m$ =d0v~#x: 6@ D_17EsZ( bjUgމݤ1d ,x=Pȹr9}[^a_;O=So,mmso\jd_B+y-9FN $xR_qy*HN4(f(Բ,)ɣBKpk@j4F;L-DUl-DD ;s̻PwķuP$fkO#  d$SQMye'_)MM]k(Yp#)(C]ލ.zGq'WG'WOTa ] FiL 軾J]ӗ >:Pa u1ȖFŜcz4pAa6ijTՅ_/!:-ik=H6G!fl!\QZ)2:6|f jШ$6}6."]t%Ǡ p\,*ĿJ ګSW,#y#o R(UwT_A>6dx /tvR11"߭_Q; >GMaM#A=ơb7 @Gb #y㴉^QHې ]t` lSMW[-c˔Wu:U=7aYkMS~ժ;c֒z(.j8+T9 SQq^N:n>pRO2(<Br,ÈzaXH-!@, .o"\(=={jy_C+m56czk>"fmw~/ݔ )E{dx?[%l%7U?=Z5+8 #"`^hSfy&t5#C;C#vRGAٺE~Cv| KAc~ƦyX\Ӑ$NPZEe*i۵z-*>^Ώ6ع9CEUvěvI/ɤk@zA f,/i*Y ra.*gc!$xCύEَ;ڦi5RӔAڜMمIiFEJrlhUwz` W3,#U5tyl,@^t4W{ĪByBg1igt(.CeZdn=cO:ʛKY~zrރ{oIFj s[3ݜ${wjF]4Tȫ%$px](RDkzxǣ=Tb/Z–$4uV(O'TgHmxӏ`@8PvE[fq5:G sUh)x?3B: zWȒ\coCE[3%=o~.2_$$:p' rk䪖\W13勃+qVL'_?,3 DHS N}UTV>^frGD *{]W'x;^+B˛MP bl;*oLW*aGP$(> $<5@Ɋ?|iڊEwoDdrM[%7$ K2ҙ\ ҤBȊچiypt=$\FI?~ FU(:![6rUv-&ɓ'[5҂3|` .˧fguC-;)~/?1j~h!jV"փD~:_,VA5|7VgN7;-icο+uFBFdM7d]fC?z?Eiv4)E H37pd?_ 7@ M0$ڻCn[_תٿUnmZJ;YjU:rDϔO`*tBx\p^ 4u#ܓDґK"%~`W ~*C5'Op 9/,HS&*壶0ZYͫ3q%qV_Zc/O<}D[LPT\`!yz'B#.LY8a|+ˇ휲p#-K/FR3(ze֐>N;ID^L|d`$qwt#z gBj'CMqz!/%4czSYN at•2ϡS?F@TUW r7Z騖\sr %@&e$Oom c:EYø>Pڮg_[y4hx!W4pMV# F>Q*D emvILəC~//.kw ;O=IB{]8Nv$Q`2 )w-+OwǍJ5->кenBL2 `~T!ᴼj<%!!K#3pφ4$=@ v|,S8:34{xR7bJ0YjmbB*jMiXT C26]֭gNo,P70MNÏt+c8-=ih'YZB!$iba9FaPVO0A዇SdT@rHS0:+U B 6ü\ "Ea*fЖO';YnoK,-6V{Wn@lrH~,*CK|6h 9+I}&{t1n ⊣rMp8Ӓ%r´wuEHm]l޶XI臘FjT p{ooϧ= +=#2!t~#)qi"N#n PdN$aoj^`!}c qҖAo'f Ĉ v2'9ZAj3áx`W j[z׽T.eR`ԯFrwou!@b[bj`3Gljm24Q[qW Қ8 1P(NFI5nU1![mkRLcmJ5_+߅b3%3- d6{~X]n>ubc9dQ,|p/O[xT֒dPPκ-y{V539I[`+ɪн iB1T|zŐ>:#|: U2K4zu=JFs){ۈ_ѷ[9uu WH;l6R׾g"v-iwe<f.{2Y]erREb< e4ElYcsvtN xE.vI$i+Fxr3-P#Ŧb pf[8zK-c7Z^5N[>(tfeʶ=mGa}=(vdVES^$P qsDy^Wd+7b>:(w`C%Pv|Qt=Ƒ6zv[ Ix3t}g/¬IbB>t"]nо6N+"Eo<+PJ^;v, \ѦR7i<ޞOqC`,UȦvr6S69! ͟\WwGW57JUw1x6y5zУiHh߳"6آr0ͧgLo f g!h(pb+E/PQ L>Dmk~[b/%Qɰ*(H=OjikI@0nj=g*gI~p+}.mkȎM욕ⴌN#!+6oVE?.sS6JCzZ 2SތMNfE X='.%J 垳3޴BY{.fW='ӎv'וxJ׏MG(|]^LTѾj4)F71f r~C26 BA;V4J6"Z&E ǣ^V `{f3!O5'9ʹCF~С"{q_o+]aXL 41E*)vBlgxṳQZfuM;}#cC:_y | c\*Ŧ@^sIZY`vnKXdNdj~>hq:HО{%mcEo@ъ Xr[ @} dOI;|I4}  /%5=KLbR`/E@FjaC"SZe˅r Ndת9#!s }Ez͉ S\Ц$bT֡@X=SXAWS׮+BC4O~]lUgjp:Щ_䂪SgSr G I] ^`O~ǖ:Ȉ7uU4@fZRtWןh vο 17%{KiGBVS-|Lb)?EM*Md OY+w!+lf`v!(S⎓$D3}MJ'ѺʋbDU6.|7.0W"F!>wG}1E%ZSY2/zNo2BF7c{Vtm 񀌂6P/yi"IV'wg?i^kUe!oh7qʗJ* ]2W1wLO^&X?o(4_&mq=z߮ !F0 +Z6 6 (ܺS;d;-Y`̿8:B:u6ZO )QvJ wp;Ϣ"G.r޿jU ߏAQqcDېw@6HR3lO sf\2riQÿtX*,*:1ޭ׽BsG_69Vcz(cB*"qq R\}P%\Wu:SSa"X<-7L/;fi8rPu +=V"UPa&:i^Ѯ0|=1U6G yPF+Qd8wCo6kH'S8O9y\a9CQV*CT)G68 Mo0'U\ >͐7U$R1$ngԠH? `ZȞy؜|q|yL1?6:3{0txm9$ $\Qc"W\(0M0>5e=\&qn5gJ:G,Kuw^a1-X 3KmQ$y(Rb: W,'ʃ; 0_9*]J9{?p=2[pN;YMr`7li'4B9}u-29\~@)= (O2g9rq 04ijlf!iQGD͹ pqLGٝV5fda[kc9T) XL (CH/gDI2"sf\)ԻCגJW_@vyޖv*@%ܭGsVTڪ}✶( `L fy7fJS0k9#W`+ ?eSDž:7eѤU(b{uޒ 7w//w"}4WueVQ_'G3j]I>̴{ٓs3sT9~B)Um@س?)V4GZ]a)xߜ)~uuW9 Z&\.w"+hՌ%=(p/2z*r3FкR ~r`piT`4g乾!>;iGd\XCCkU`8N۶5ByT"sIX\:nֻy |e +{ا"+/_z# >A xcn^_7zx.]$5>E y-m/A/FnBe?{kU *&]&A6k49a{ @ hKO_:.?JStEyq:Wf[Ee-:C&n24 18erKA/O"^NaF,WO?`YƉV(jRm bj sg (m,˫cAS%_3\DEdd|6в@,QV1Hσ(58fƎҡw]J:R0uiULV8 iM!5cSW*߶*B1{B"|ԍLJj]dN :ƭ3x\Ȟ/P0ǾE"ƏIQ.M2tS"{>qgm(q(hAKtJS`f =ֈt *DWW*Y gSsʕ/Sk[ hcenB4-l5fHlz.Y\T2kM@׸#%mn] Eo]x$@+4DœRbgLG uNYn%&9$+ЕrUMFˁQHt I_[(Ǩ5,j` |(e`Bj}r!<2/ Uӵ '{t0YqɒB xmȟܩ8+)(Y^'Lo;֜&a-*-$zۅIP=5Iҳ#o1X5Q-cSjW ;mimF՗Ak1#&kK}W1bX$bA5f`_VGe"<3ˬkmNe= Gn0@HJ+UbVn^3.;f.kDtb:MKꎥF?V՗ z=K5_hDh:%uHe:g3Cf#2aŽ!C743 fqA"gDKZָ~\5_1ŀt"nrY]]6ROZ<ŨݢQ'^%MW&tQES+rOhcӛONO.!jE7rF$Rh%Y- l!s" :13Znxt sIÄ)>8 YT!2Pf숪 2#rz7YYockc!:Mʷrx8!`F{m҆n#^w(>N`8n %fVр&J,<'|[GV;Gt8}:.= P]!nP`tY-+Nj MX6QݕggږS]('aDP`%JG㳺r?Ȅд@/x~bo<&nS3aᣬ|93])"Y#x<ˮQZ:5{њ~B=h-mX} `XU+LDэ]k@3-ViԪR/K{9|zur܉r5P>ҵ&{nD>'nb@Ɵ,vwf9xgQ5*!]U$X/>~Tӟ~0ẀR'\#I T Ue NcM 63M,Tq=^1mk.Iou1Ak\)M&ᦅu~cF[ٱ FJ ΨJP"gTvX0=%s%h DawbwV  ҞI >|Fe sުJf,G*H3~bSZtز`,sg*eUǗ"=mu`~+y!Y7s?܎ÇrO }l\_ >cmQ\cGKcA0wэqjV`׌qN6DaxnPٙōM+C\]D>Dx.(ԛ,>=ifDEl[ՐwcHc^~ 3+]z\Bվ)Tװ`TCHh`-y/ʅ& wH]cת q]᪚33[zE;Uမ&w箿6fP+#$=.xJZ z}*{kAg v{<p6v$6ۮ9mRT#X#8yq5Wp#għZ+ƛ:1DWًOB<#baPzV!d^YAo `נBA3V$Վ% ^ń%J["Orڊo亀 ͩ9&]{V EtQxPmthbS_ww.CtQ@∛K᱄bjJᆴ# !1WdoDh|Y]tM|~BV|n omzˡE\SOy[t}uCKtnk7@5"ֵmɰۀCՔYr&H:FEJdpPeOhG^'8sXXmXGA* e5M8TZh$H̛XАKǩstf?+(M}-Pmu-Bׄx]* ;auwF 擰$wMfkTyC.n.wZؐ68 ZjHL"K>@ [ nT=[)PGac/,``2zGۉ` ;FKnWh^1*$Ѕ@B| ǁ B erTm x,Quho=颈]YSݏxzUU =Z! dȷ\PlgyUBa)'PJ`ʲph*Y{΀zAUarР-ЪF ʄAX>6Zk7&ϵH݃*ҽ7F)ڗ?øhԾ7$NmF%AY{iz"<웰/ޡd${68t-N6x%$\̹):ҳl9Ɂdz0Y&}/~b~\Lcp-?7M |@h>Cog4b:i3 Põj+06F3{3^u4VqdH_}o$Ֆb3Qxv&j56蓧8k~'/0}>˪eR4:cdv[7Z$AZ%lvl;&wzܪ8Ɓ)MJ2 -Az)߯,3eM$rv lPGm_jC(e]mrNOHyc4'; t8 6-X[%*EӓZn/}l/ 3&*R"vùz""{/kQf4@) /z17ZX605ڵN<}G7Q >'X;[5;x%&oZ/v<ľЮm Ѻ=KZ!aL@KvM$ ѻjI>foPid#OI*toHlooC39߁ t'4@E [v.z+(*mCE$Y^\ᨁ x`/yiӫ3k*RkSGAtQ}L@$"8>Jx*>\ޔ%.H=q<6VM9&OM_`/4M=) c ,!^x;fmO_{*\?7+{B)l_>8#o9iCؾ^ Mu׾_1 9BE×*z?O~RPGyW%e.l#ImoXm1i `t֣ABeHfV@\ 腘 D$]w~!Hq7w=~bm˼svBͥTvݟ>hSi:L]ĬB?H nbb ]k@axhgnn%;:9}t. , `SFɚ3Xx~WQ㭊a` d.'񽚫޺zOvhT4H<\rPʇ ʃ4eI좝HV3oWŸO8&⚻: -HBS˶vP'" @ qeG !8she{rhNDVR"jRgLm\9Vh&HsV+'su^b]"Y>v*a[v=.I2rcO潌]ERsבT J6/ | A\>fbt.BFߡh6ɍhX_H#L3IКu R+ 0 RvV{Ftl5oʊ5Q:CLS2?tBT>+v5 iK#~`IhZR`Y쯢LjJG灀{"f2;CJ 9'G=B)rWqQ,yn^?RJ&XFTn-0/vF>v)v闈H&),`@lkQAIÑFȮnW,w9Wt7РJxB-ހ.#EZr,);+Z y\x4/α^$Ʃf>v׆}Z_fNpN4raQX&چWuB_x'':t>5M̻w `H.]USH3Hvf!Pr'}555Rם^'ˁ*dhY$7ag䣮knÊhzq c%Zw,iRĄ{w_-o.-jg$Mu;vZP]FoX=+Ϳ ɚĩ&U^$zrط^3."Gqem4 {қ'i8䊥f@ |w- 1[ [> f0iBbfld|Dт~FA(v X)Pw[J-% o=Y\Gd7M;KSo-xUBX&y!W&'#">(8{bE)G KzkSU/hNf9My"NuxNO\`=@1G=8/W'uq<| v}ORPE(/ɾl)Is-ɔQj.PڋD UԻ֞SO" ߛdSHf.ɮ9 (tz3Y_D>JV鰹dS m\n} S·xgbψi1`O1wM ~>u^.?{C pl Uw#Bb^g(,@a7$Ȼ+L]LR Vp5tVS܉ /:H%}rcKB6&ȉ9ec2 LsfltD 209z3j z>,`SWB{,uÒ&aEבtz57nl3% I2<ׯli spvcJN@ljŖÛ%Zv%>bZc7LY<4:x\󦢭Bø%lȸ)$&^.!3A'.JwE6Q.+++3xv5Il[dev³Sj)U5<2L,^i%@Kw(D@uJځzk#==q))& -kI[ۄ`9SBnU:Y^LWIn>.O4@r5K(F[}N8_X*[,( >cOIfIJF G/A_%]L+ glO$?_z>jE <3aO\ʷ^TdXZmBD$?9R` K$zn#-%p[+.9 *]oFٮK D!r1@c[( \etb!O $㯭5ڷ(}󭋯Τ \2/:i&qx ([K=3)@n=VHV$>*,G?1tZMF;Ρ=G}4,ߟD7` !qp-C&h2p95 )t@{TL$Y)sON.3Ys4"M$` g\G)Hh&q ՎK}3п77nZ8ЊTmj~Ieɫ5{ʰ$2 mi\CVfu]Ki$n nDSH`/G3ĽsJ-Ew8xv[LkʅUİx"Zw/'=F&^t[2'?Folg%|hc`5 j?q1*X|w*r.٠#R}́Lbwt~N4}r|jS?o^~UdRiV(f0߈mǕž82RA +%\횹5ofbp_[O ![?zT\No~%n ͌;}iBc3J@sq% ʵWq1i0 V_5 jCG!9.)mw;U-PweÌn#e! ":ΤmVrC|P=*r֭ -Յ5L^r|D'Dq^1>[( حIcj>#Ѥ[#|"FXzSrY ajѥ [n7nv5h7 +xKWahHh)d+ qp-|ux߽|W~:#'O u:_6P0Rem!~@ SM<+9p>ofM/AN>pluq>,멒e G)uo #s͹9=Z2)3$'{^+=tXA!JMF볧4S>%Y6e+#5P R(li,g'aGPGcI8ǎBS~E_c|٣ a%m]BC]vv(PWX7#mZh|O_(pr죪Mɉ ϟ9>/\ 9ћZŜ':MH蘃Ln{+1? [,O èPtҪANBk`WZq},+s1PkOy78%Ђi2.qrϵSP£&Nm\FoX$nS݅&V:#4jRnJ?Н \NBA|MXC 0_O=@ET0ʛjDka[;n %?Bo~\n dr.1CtwrFo泠M<XRۻϋl=/p'l)y`#dH. 3Oq.HU ?ǥikjN!b0F tbRSF#"k"=C5):&El<: knPgZ"@~`>fakA>:xD2I`gkLv;'ͅ9hpEx `( L_6NshhC"!rC85s[\s@gAGA5W ;bYaРLJXcM, JdB>j`[ǭlzvL?|#?z-BET!r^pa`iGp(G 7pjUwq(U˿ݥ[&:G'T4|ޠ[Q¬Bs>3EƆ@E-N6}@3jpY?-gAEzpRy{ՇW gr:׃Í'q14$ 9~KQD&583 .x "?bcYy_Kx$\%qiF)L4CH+(h~!<Ԗt_#*qp+ ziT}Ea[0+hKY3cfP/x#{c uQC /+:9 fQJDN]›&Qez!A{[Ă lvgk0~p|3mr[Ipz=wtG I.1G>CXptlx/EpV0QVwԑbE'VLD;d`erpi &0X[#-`^ Zyq5-4N{]l Ua 2FMre^\TQ#̖\\4G͇b^~Um1曷8(71~A\ЁƐ$ L.}tjN"&vS%ն \.5,ḱfa/4X9 p\gǧōj.[l k|~VYucva&Os/'H m~G 3ܖ/>xPTZdegi[m;eJ1[Mo;&Y%W*>Imi萮-#q]Xb¾ ?DZ.w_W;œAŕ2FtqZA2jR:'Ξ;_d~5‡3Gm@=t6n]X 0d@ *%[9{^*ք撳K ̍ NwOnrgYM#`(VĶ|'B<Hm{\ch4apn\G9 CnLɄrkwWJ{cZ>?W#j̣/;&.'*ZtFNҪqvQ _I}'>E*+6 f ~ $j4TJ6#sG:ˮ;̃~> S_ Hb-Gu2t՝/GdX^>;Cm %7[md#J|HMNox-K⑾~B@a"*jGx7+wג>qQ;'VV?Ꮂ8.rxz:Q*\m\9BNIC6Q m>?>' $⩨IXCMD&{"%ɂMs-$kptlo#'7Coh.ƕ+-Џ^;]: X%Xe# t1Z&4A0dPq4Ыv+$z/t؝JRZ9'΄/n[F\ :d6fȸ=SdEdzPM&lGJ?f`_tAqULӶdmt] j+~my(|r$3tjL[" C/?X|HJrQrnJzPwX! lkM]˫-~ḀÒ I}z?Jw]k6U ͥSӲZ_M8YT`-V#_ tWTgD{331X0q\XanՂNh1=7υ_D8j? Lq[,ͧP<δTRѯ6pAOҺ g߸c!.C~~GA55RUTZUUgdžJrd^9VnMI*~.읺Qydžœa;3'!mʯ<..yheQq5%w]E֤G^)rj!bn݆%eWUfy$o`ѵ'3|miS6^ w=Lh{:Qz9^70nqQM`!Zp޹,̆ږ38~Xo Hρ ;$r]w轊0k֏Q9\F@ F $.u--/g4 ]lFHVodS]-[3M1f/xyg'@#vIažxn`~y5mfGNVU8lvG.7"CF/Ӿ=P7;ӥȳk`~H!@ynB;P';0JضVyx4F"2fzkXvR~9%ft$i] hLu=tk_PWawN]ݠH6NZS@ }.Y ;m ,:J XcU\:2c?u=Q%] RuO]߂T^J s?Æh1*fɺ2Hi>esl{gw\sc'}k.r0q;&!I`M+7d5^@W\ U'!W3'+F_`.z3,E/}ͷBqֵOؿ[cj?NJӽ[?˴%.1`W$Q ^u ƸK8[i>=HR*M#W('Po/J8.SjwU+GɗTfTEE>XjBdD,A"?O-G@afUׅ2]mAjd؋|HD tW$aF o`̚YtNw|ҵcPkT@dM^Kz.,芬Aj6-ЕNñqj#\PHaLq\ط7c_[U0(i\_oܠ"0% kf\z 4Y OXkLtiNF "*?5b ZTʚ|g(CYT)=H3XTTKMИE'wxdoe?haBFxNj_e9 9wLZmIpW\Vx:Ү'Tq'I>SȀJ.8D( _wWqAʫ<83&lޕvu]dnVb؎Υ,[uǞUu;0>Q`Yۑ׵ũAf9F™6`u2ȏ:h}пv2yScDkȚeĶjK̑I_EF]ӱx0?Od} P dMTz4%ܓ1卸 +wUҜP(2[x7|ױ,PgP80$W?8l0y r u]<ӌ$}3l3JTr1-_}prc&*ײ܀^ɒ J/'dGgpډ־ гbI+u\P ~/5åڦԊX4Ԭ߇(WQ4ل}ɱZݶx"2k f|ڨ~]K[>*NRcVGP,^nZIg@Y=I ts>߅ʁR$$R2cT!Kttn~sA*10Nfkz*qPuP8>.΋T2R_tW##`Θeց9UcdU\hZ`r;d, '|zvhrBJ˾X󺩴&/\^.+P+ֆ3A2H9t H1iiN Jp|TkS6H9; v@4:,3j0 mJntg؞3Nc z">pD7Tȼ;'Qxy&Usܸ#guH6 xى$Rz5g-J i\ ˜i9 N_*#ڋ|-JTI3=%h2Dξ!k ؊53[w3# [v/z\D&\[*(J9Am M!'Д>@5NY{Z]$hA]c6?h4(sw2 H#.ҷ6C-`9Dm-Yz_ppҴ .3C_#ygBI{XNuןLݿ.Of6_mf4gGF%bxo䢋lEpO"6,#ZK*$M> 7_0Џ9ͱݩ7 &U5z@S`NpS4~1,@PTxi{lo ǏޮD3`M$݊Iz & `'|,Y!a3heuAZ2yrntsB{!gqr.7C̦mLi?<;۱4!vcڼMe<$-?$$͇`bN!˽|=Y@n7$3-%K(wRUdi}N}^[ gJvMU6Iv)wiJj\F4Z82x'Ўr^-FRDj|(|A78rT/+S8ݎ=gw]ynzA57Ff|hD,O}ZG:hoS Z?7qf%h A׳' -ֽ |ptlmtx%,;=&O7pۧاms=@Csr"CuzhG~_J=> T WjVJSjtchՖ>Ф5mfPhvZ dr ^J hV:eCIL/ fW[ׅ<w6!<ʑ&uNVR<|Ton 0w#+cr̯2Zk;9ީHO^H} kts<+>{W&Z?µqr7ev\]Ͻx ;YC.:Xu$'ur":G 3 {%&2'@RGR1RCutK-c;l$ 4{z+(kߧ*%RrBFr=PQC'@u1pdI>v) DV, ӯ@ X#(=қo{ }I-kңSgHt;וZ8zC&_3ᑛI]8jվfS p/1*hZ>,DWef"OF9t#rPJD5}8;ACK.)F@=DQYsq|2\{RLFU pgr O_xPS21Nn ^U٩]ouFNjGT 4yR4˗a9ӈ~2dc|¬RVSF:TQ}v*HP֬z  vj=}>uUpo3Ĝ"v*_3ĽK//5Jr? :Ys >m ;_Ԓ%8v [snz=kD+LuHJ_-NG+è.!T"cB24@-eʳSZpnH9-J"+2+UOC#iRu?c(S>i`:ID0qaU3t4 MVAlӐ qڪ?"ǘMrϚj6Ë8^6ɗnFO${[l >3j5{ZXx\:V7}ܖ_F3SF[ф%9[ %vHQq7t,ت{$:L|]8vl_`[Fc[a>4}pxi5 @l8 8XbȢS=3s0,*7,{JU}J6 TQ=zڐQ ?b l#Xұ`a7]hZʭI`z#b0~H"tjFp-NȊ8YT%EJEVȩ`69\(+$ѳȫURx RNNzyWǛ&Ω3^{(wY5rZe!DjJ5ZfY( 2ȕOwU!ib(g%QC?ߌ ^N$To0Fge/a:̀6jAёʱ`w9')NɔèF [0']xs;`\+@!RsV kj.54ySշ> |nġkE@'֮l\/q m`c:өM*6l t#9KbƑVIInB5 }*,(zǽy#rf(/9%Ҍdn8_i09`ޯ%5],){{kgBeUϠrWƓߵnbW qz sE'|N6+_@]X4'8I .|/3plG\aU)$Vwk:|h(7A^,D"hf^o Qk28xj+"3&w?RĊ{\w+t4#!ݻ8Z:Gr#}qu7$GHmկva +v T,c CaD":i#e3vs^v'YRL*i+ޓ|p֫Ia{Ýi~(xԖLM-k\aANLy읒XOm5|~OIܒF{#Z>2Ip<9SPyl i2U`.]:ྲc!*w__YG%i+&V׾J8Tok_4N =3:fW ձZKuʕs)5]uuw`Ji Mh3"},+,}DoJycR!uM{Т#rq8 18RѴas#5%iO6Q%UV(l1;@e!)?Y߼YO1 zfy $yBxXҦjyHfܺWͱlaTXF 9e's=IP\g{؁W\#qa#Ƌ*5pT^CI>k8˛O`1ڈQ6e]_%\-:Zn>R'æ/V5Z^Xv)"Pspz(ڌS&e䏖$<[r,!H,(:Dۨ)=U9!t%:%?˺7 Gs+g~npR/,TՀl7<0!wwmM;Y6[8GJ H akK#jPHR AgYyyx6kl 6^9@v2ȡк-8ng}cd#! 7t81iSk"&#H'VQ8+{رSD^M*wZՑS[otq˭)4л=##J"1kÍd٦GSj`ve xl{ŹwnwNbP} Ϧ') sX~~' W φc4[ӻj?4r֣:3!SFJԱYlu/15C}Sm4ƚY~! "{0w鎺A)o@M{YV^s!3VB @OmF씰% TEK^v[Y&-l攀lLKf l@r`,GKthRbyT!ỿ,tU oRrc4e:ɬzA:ꍈC\sKL&C YI^[ V+kLՍ<߰RO=7?&fv Z183=8! x!ݕɀ)c.R뤄D3oA q2O7G/K7E]06O^E ,) =EȄ߉++ԲIMáQ= H"w=˷oEjtp˷ n($UN{Z%}kt'w IE6;{pR5SꇾcSDI_t"=&:"cʧ$vKU`zS1!O|<,ԅU@fݫ'nm vp0Bw=S"eotfV1vu+^Xye3iRH8ȣ[= I:fo0f }"& I'Og'{VƚElj&ieyalڅI~L Dz3*k+hx>{%c Jwe--w.}U5&UT1Ua𡆠^@Iz8y[(< 0$F;w+#jRp" cJKMp˛_rUej"dwBu&V3I>x w|ӢS vz[;20 !3&w01Jutkq@}VlkVEiZhyܱ_iF =an޺erjɐ_AE7 +7SqGWG ;*O4t{FBՂTnzȷ$j =^Jpزa2F)=}1p,r^ dQVKVU%OK2Gka5^Eϣ4c5y4]qnO˄T~ 2f|D33 yD=55-˗b ^emЁs$_O!H:6Yzw{9zqdMI Eܜ>zVξgf;@>pc{x6#ѻĤ@u?W$gK-!OŧT6ۡ]H51 Mr l-WەfڱS=R_+ FS/kiu(5t??E$Pw`[(p ?I{N0G5zR|4#xmvpZA:<4V 0Ǡ( k@lB5oukIFx1dz`HW]<Б I$+Gw r!_x dNv5}"9m79UJ91Da kGIORkȊ]b@DpbEP5Ȱ27F28V5\>n}в}n{V‚5CzQj[h"88׍[GqyԸǯ$T[ZW3}hYb8ȑu6gqb`;L+vPl]?)}ҖWӵH7X[EjB>d#K7\U4__wy+x^FHsHgH! [SQ"~I+hE(Ӝ't$$:K'ڼrGKlu@C[o _chER6K?_>ilpHҋp1Y c2.t(iK[#_8cp蔀&FC%P"pĘ2 \\Li@8dJ1!FS8L,RzG[GR4ːDQc-IF8BȻ=wr{Dy{j<"X֞nA7I/ ʟycd.9G UҙoZ VeUpKehl.|s MR2agXkj69 k'> &|'t^e߷1x{}+:γ+p|6NA Itv$~-8hct9*_Wг++.'ipl=b u;%qio^+S/k9%9+Xfx5B(JkQ[)T\ xO ?沤NZk a7ۊ7> 9d4)ݠc1JTHm{ cn R}Ui}l W ' ЙףϷ FELZ&B΂'on0`7jȎ _0u9YiK75"mvOM7/LsB O0|,e Jl T Q-&K*nWʜf1[ihq3Lr#B~kXF+ny5lsS96Eƾ ?v*}^ >I䵴 Dkh nx43:SU}^T͢m Nj 3Gp sA'< >gyONqt>I-$Ud|xZʶ)m Dh:1rݬ$d;TCmA-Zw d8ScՏ:GSuʛW7raa*2rQzw;A{k]YBWOS U3G .5(r&oƶ8%0bMg`L@ ԚWz5893~QkQeZ<'LJgM۹S24:pa/B;3ӄ+qbe"6y?2jW~=:1%\8hSY9 .vYƐ/Kf89j+RuL_J ß#L"ucneS܌qKFI噸Z6ʸ-| +&z[O!18Ǯ_;C8bii4Wٮnxz18L1/C2G4/Z̍Ƚy>(TmVoѭj o[+NnXe!0 2(e`$t k +k%sJfl$)GY%BF|Cs7&X m3Sa}E-W \^J[w\)V7/c3҉e֮B-d[eJQ8IBsCw_v|RWQ?| <[ ) (P9*jN(bhs/`2[[afhjMpL>RKMdNZ1G+zxQL1IzXs=S`(2j.Uw@)mG%6LrZ2lmLmI"JlyB~Qrհ-_˗,W\ n%:`O!S E[w1"EoP:Q$-fT(cs}rL@.@SqڲAt|\x-\ţxǩH|0׺X B,(%+%7H[<{|.9FhjNp M_z^itO")hЋ%&hdX lx\S۳+D9c]K9.3}mBGRfINE,tVz`YUtj|-qrt:CE98e쩇SPN5LFˣ5)CcsƥX3p ȝ x.fssPR15~,.Jr 9?.[i+ݩF+蠮syVV9B (34Y-]EU䞁kC9Vc_=>Yڝ (|e 9$\ @Kf iVvv! "'y8}NEpxP\sźsYFq, Zv>tEV5r=v/QFb-;чΡ>U;\I"R@30! WwC0 % f6cI9:C%m CD*~ (B!BMF̈J9C+bu)(/V}Hot"LJwaG{.g GfRœf3*N#vUk,jĥ.c43}RH$xNj'>Ln ߫Nn}>¿[Eb&\`V0 W/|5U+D8"do)E&m*d2RՖ Z:T\P%#WA,zU(VTQ [ޅs'6ۢyj;H2P F(\[N;t+ d2& })<ƄF\: f[u<,+^U~o+:Lcl5n`L ME` 6o[yk:_|CSTD+ۙwv;3bx[TM܉8JXR(џHV]wѤL๏ԆoH S8gd~Kί2*=L+SѢv7pLq'%j6M/hBiq*QM.ӒN0@+XaR ΂Ų𴫕8NıQL.}!*N3;)`2nW`E êmpYbK YegwSe! (8"3PA:P2¨6.cHb~bⲣ6{s?zVIeŕqʨQH4r9'f?}RLN=|f-]#vx[ʑk Wh-Տ5!3PO [n#d5d½]TƢD.koO6=O:{ks bG?۶<&B[b<Ǣ ʛ3q|E&!牎;#9G;1Œ kEo,`ϒw4 hfHI\vдp3dn\5X# 9Dd%9f&*OfM2aZYB,I ,~RHk*ɓc_!::L},  T|*?[{w8>/*dZA$z7P3i76vNNhþ{SV?sk` -?S*}@u{Rހs|Ѫ?a*r)KtK(cݹ^" f&)r|'AN|E2j.'|#*oȱ)@yJ%n+96 ˹Ƥ KWYn٪;Bd2QRZ\#FĿd7J*]9"l#/:%xY3p LEɜK, נ<?Zl&VΣ(1Pq7V+ xFSPQ- %f? Bp5j)b¶n4uuI=l_kfQ+S٭hJˈ³4,ZKꜿ: a1, ܛ7b͹*>  |ꍛt"řhb/D%%5@xJme#RvmRIJ DF*K6`Unx_XHG|H4q( xN)8el0{Q*'vah#}IwZyJ*qK0jީKf4@a9!FZvUKiTw#͵X3xe< bY_i= ! >1i@6OzPN4i<=O&}r#~;xgUQL,J6]PPʽC+h[".J+,k!0h"BQcg!{;6gecJD {Z= +9Z"{Tbsẗ́bܬ_h{yo~o^Q9 8 =1iA =d=p*WRVHNXu {2%RQV:'Ꟗ0Ca !5,Lrvf?Q(}9Jf#;RwsNsƁ,dz-~#$TUyN7Rp]VuF",gO![A^[ Xtc0>uӽa߸Niĸ "M9~a"$,tc˫zgT 6'u <`_Q.یNxfw p4yzӅ> ,X&[@LTʨJZsTck41Ӗ3cXڍEpLeқUH9d>KՌʓ"dZ!`AgO 3m}.g h]m\rÕTWV!̫]~jH})fvX^(zFa¯Wa:^wmqv[WXWLLJaǒųb-yZˋ2vGS ٵξgWTBźsQ0L.~#rSep\c=~OݩҹlaF"钎8297SWۙ;(3r.d-_Mfmɥc&ّd̄$4x9f篺|3|> ?f4wZZ䒑K "TĊ/ڔ3$bwx 8x k 6N\w?ߧMQti'e3uj{ʞ@L~I8mecەQ 2i.+nVS(BEKM-[ڗNô홎3 4C[ꎙIBhI;AXGp4% 9Xs>.3]/ȓ + c\^hP9{BTlIq ihgA0G`r]Dd"ܻ]R5GXQfBz5-}j5 ;߷Pۿ5(GyK"iVx2P\6C}s6UHtO` 9uKN73_+E#HݭD4<u.$!tRph%[p]rmbxRs|lR@Q{Bȧz[MR6/xPۨr`yydys8 H1DY;8)v*H`BÐA]uqVyLoةΔ0$$N]kJuD? fuu>swA"M;EN "q1Շ7d6R+pw_/s8ŮTH'nΩ2.^+5۷ʁ]4e^=Ec0HÌљ֊EhffN[K`PsU ON].nLܳ_zO'8<uXŘ ϩY=15O*x[;zීarPM(T%~:/~5d43?:p~[LvxEtC܃jc KMBxf&ʕv)9eJHH紩Qiu+J@g 6U%*x nF1$-(jT-0"̸nCS{?ց!ia'uȰНJ I3~5Uyq}vq U(3Gz2dbl#CLa9v'q;=$:[t%[.5gq ŃwQG%:/BCr'yMkz**d@ϺD21Q'r '2mz%}}A~}q0LK}ѹ^ vإG Yɠ0C 7` 9 qK~Dm$q%oh?DJBU$!,4:n}k4*<6 iM[|2Cʈ>2vհHOYhhy "91NP|[s-׈OocJE͌N?JMP%d[-j%7`%-_KEH"+|^E̍뙔v$rBZ0Uxɥen.HZNX/5;>xlJ$98?8kK$IJI~Kať\hK\ڕHi&+4h7[Iq&P_s*&$yٝ96Qq|.S.kh(@o\?#}΢dlw_%U=ŠOq`XF W> >=oYlR{U#Fٔ';܄Avk(4&\)bEe~=M K^[{u}umu.*;\? vAaGF|ĜF#E|V5O>~j'SY"]tq9\0^lUYXQhg(3aL*p7暓R-?nט^^(xr=z,ü!B8&X5=Fq&/tw(nx<[#6ĪQn 7cwt^PvwR'"nA{DϤ,B;nqIkOgg)'b\hm#aAܽԍi%R饧õ k%F uz܅|!xyGTHM.奟{88/v{aJ/'H5Gl@J.o&yY8kZXǼp[i,Ig>w0hYwF2?3#uL[ tU~#|Pg?vT~c܇~^3Nmw B@Mk>fȗ]ĕι<. 0/鏶!h y@zlZU.Ԙc[仭(y̝wÛћVA!=6"4 ,v`9S@AuY%7x8DZV!Jێ%HQ@]+>Sz iOK,_m-YI'9ij0^/UF7$}.a ? FS_<$qrE=s=HW o$R/H5yP⍏@El..&rY&h mQM[ )NN}zVL'@oQw BF"Β}Bھk]U40 ¤A0cwǭ]/Pp>3t]tdPg(M\,ЮԢnP[+Li6%BJNi~/ZdXDVg&N-H_- [_MS|U0ʞatn1Zک'?7yc JSU'c[/J_6|&SBSDŞҖS2FȎby _ &9kSQY=wPXQZS2V`l&ǑA+EI!e.fQ)lF8BgQ"Mv,08A>nd$ɶ쐦$ J$n㹙^` DzM1X8d#LzQ؄QD.wǽ鏚ImI$]p4mhgs_#F$S-*C\__KUڼy)}7='{1Y8Yqw!.݀]W'O>P2>=Ȣ+R$xkm5?Zr8^k; pa%&[nװ,.Uo6/(ȱ΋Kt;bW?}OsN1 aCI:NOR+G:Qƀ[3k oܱM(wEȕ[TXV=z8r^`3iTw%o˖{'zM9B(?@ ;>^Ot\)ӟ :";|,O&:w̍3-bixYbopg㲓 BIt"*"Z/Wx;x;nwٲyUo6m.e< ] ijC(Ho<*JoQ>$H W\ D!qt}1Q +xw+ٻW,"Em=zo@JӇA)A #3޳:گ_M--k\!;tDo'X}x~31~*`}W{L(+0BV5‹NOsJK6 ߺZDyCeQZDbh)HVG6:妜ҽ"h,F5@o (1vwX܍rUQ!'z`b54a9r#|ҊT~Cq ON晡>C ?`SJrpR.'1bg:(XQ /mٮ:kA r_oTAJJT> 6B!-ϷpJg.w9z E|)dd> \eCf:VKJ{rYwi(y?=,x-=h +%7 G1\$%o3qAi\ dH51Hy &r+lbHC\T#(Ћ69,(1FKNў7~T$@0qSĺ?e}\N n|#EF6̟">[-!Mp6i Y.H)Df{5š7FrL+Ȏc_Vj\Cwv3 qam5e)AhiN+yI.yvYkz= Z87Y>쬉J,f&rO/Lo%LZ pmJyX4Q!7T{ )8-6^7EW 3`\Gwc}U(@]&:"ej!iy ˳ց|Pٯ.(6^&05çέclفci\F ˅2Qj6?>PB|hlELNt 1488ZgIYz n&W 3s6?끞0M,M׻sAOB߂`iT44zQ'6T?2ocIV] AZA̻j{% H*oiPNNQ&S*bZII}2L\T v3-Q[ 5C+ ԩvE ?[!% M rXGwdPAqee͜y^!`]H7$]?xB͵\W 悮%O,voSwrsb]@1y>By**̀[R_pUqxF eY9ْKzy[GnecOWqZ'_g]W%o'[K$Th93L۸C!'TT(*:0zn\1-\tR (~bxlBLY$w.relG1C.5Kt0>AUx۾+Ŭw=`=jqpD:ĢSg2F c 񴍙6טV^Ժ.dJBayx,Gp]0kܢ#PMӀoN}M,rw9-/\aъ6DVv:(;lCxmzTT:qKwbnOR孉`l atcU_h0]GK}Uڠ`AJ׶n'isc#mKsš&bdf9 gO _Փ6djr}ȦbR  ,obI(8}lwX'׾9 ȭhi[S-z6>b?6 pka=_D7lMC'.}) yFtXa:?z`+{!81>;PJJXH_E`b 7z5$6h^wEdg_}YLg֩ͱgj9r  3h1}b8͟zjJ60Y]0Y8'˘G!.ͧ([֚g)U|2s|DK@3ju@JKh>84(5Jtְs[ȏЙڞ)Ba"LD4Z_PaRcc:l?N(Ò)\1 Ga+<̣E.ބ!д oSX f]7OWv -w z#,̥0I~}Q7f8^̨-ھ a [%0uDmC1~Pxs`$@3a;7er׽r b]V>ŬZD\t'@DDM ZvI2gh(v{F$6qנ5qq9Bvo .#fGEfvd4bgE`v|<HkYK$&^_$窊+*JJFN}YU99Ii_m?$Ro^V 7e>0l1U-pvpu=XvE6r2}(Dd~ݮI .kgЩh{҂Rp~Zȁ 25P mgٝR0=ab}ܪAv}3-`wF!Բ Y)!l+ |L"3FVîڣԄiBh)8?NJ+L .:j&%3ɲw- #%g cl$h1>"׺{XI?@fB] a*uaP=IN`AE^qJi`gg'(ToݬT3MgGT{a~5OEߜbGLC4ܞ6W{_^hd$?S\n ,j_‘u-%]ReYv5mP,&=8!)fa͍Ii aФ3lGL}D/@c2X2BJh WƗ'ZA6lJ$dAEϱ4 ͝߅2", 8 &!F`Y+~ !Ps3kXHVR$-L12h -a% y^xaR GtҖd!ajÈ$7ħřf+-FmMJ9NyYCv.L#+rc%س.|@0? z䐝9 ah'oHOۊxu?!t M-;ZGfs-Jg^vݵU1ns97"!Br~5I< Fnpʧ?5QN% ރ1`)A}ՅQ]دI^jQ%2Y 4!@En6$a^Wbd–|gfܳFS', F_m$gE#0iGRNDZcuOR-ϩt,.S- p!yAB<ϝޠUӡ&W#.dӋC]GLַ:蹀ziʢ÷@Dzxs 8rvSʺf258F:7'åsioɞ@]JPTd824A~7g.jKZ0gis*8-Ƌj} fwǔ|@+_e&oqAz` 7uL75'L+n;.W(k~7--&P7bGZ½z'FUɂ"-Fv .izS,ǰHw,VezUw#n6ؔzm]o$U'Ҡ 0i'(o^XNGҘ9@DMv[%;_Ճ7MK)5+F{'[lZM),Um Ʌب`ː(ëk_`&oMeqe]x=)XѯxK_0)2Tk?MlSFV%ez-i"ߍEQzqR\j%sN(3V){ P"?bY_DKVk`L)sSO{2cE+gmh5qE7"(:gqpӛz}ߙůB`{;/'P p8Rg~TQ_4TjYhVoZy+WO%s +J>Q\mwJ~sUz:SڦAYObPA8*C͘H׭}U+@e{seOCWU-=<;Փj}'G0H-ќԼB~O3pWg}A},e~y6I-jj&=^'c=ꋚOD%aDe:,%s.6$PzB$3>P昡eN CP8]\'a&aobAôh>%wk¾T[$ /ץfuڞف\rT:H+""Um2anOQX{Aǻ/Hr4HX6O`IGZkR4v4FXl0=ci-ܻ`5 M%5=nxD\V$+|^iH<9XQGrS$YW@3XԛVdP6 JoxWIJ[!{Qȕ7+!M\Gazy Z[3zE?H͠|m0!-->.9M>i]x2VwĶ&}HBũO^@l&L AtB;HtQ.̮(9n0yw 2 /wUF/eM~) a$>/KJ\>*tg.2;N d&\*v 'd۷iudV E|RrG:QzAg ʃi߿4GYJی۷ >6<*"9 DޛY/j?b7+ J7H7 @|tLʐEZrvH ZNEbVܐB<ݘw2wC7qmk[]ϊ:-אrt7-ܮ`JPN݆\@'O^:=Th 8\- YizF୲B$Ůn&ɍҽP31F$씪5IQU"60\0)'=WQ+Yz\(Aq>ډd_5Jk['uh ~%;-%srg6m#L_V{J+I -gڡSil#[/5kXl:|kehWDK:;ΑbB~WͯE/!`+͢umGjyre%L8ë#Iّ4XqԱ^t_ >~pX@_=ljVLʜa`C5;4-3"iSQU{ƌ/>XDyd6αsy\!V*[Y-E2oÖ]on>ݟҚb@a-fܟ?D!Lk'1帖FpʡɬK9R{q_4k'H 0hwQAȽ*t|pM).^RBq縘?UDh4a:>*JbeTQdBB.&iey;fR9HxlK5 ^eؖolo'Ւx Y29-LL2sIв@W}BuIqE?Q«ś=}$v;YdzXڠ5/:=guo +\rBK?|@KR\e! 1 Bh#KY_Yv*.*70bQBCdvtJ2Ɉ w8b]sfR7@*LyzV2sL3`gnT/}yparŹMjF垐r*GPs4 10/vA @Ҿ1l>;ï06_A\+ mUFݹD]CcWT(#Q)x9Nx}Σ3&Goç:!я| -v72R su\Wu6@ZI_T% pa}u׮R8NI]2t_Z=+-C1aWͧQXZˏR1iϞII%E kbzS:+= Z.C.7(<ߋuezzhyWI2݅Lѱfml'3X`,OW4. e1>un)tEiX5Խ< ̠YaHԅ XA9PłYi`lѫYi0>DU(\@8Hzg2~e%p3"mP(uZ/ :l%.Ća$bp @b@.I!jb, ͪw0OHׂ:'33hafrD?e7$hRipnz [5pZ&Q{Z]b&)dR~jVP!GϘk.^x*G! dsCihe?,ynA`Pb\nRni/eQ>z$ 78 [ h~!P =A_"n]z%w/ߍL rlPmKCC('#pHv 0Ocezmrps8p惄g%>V 5RϊK@V4z%jvt*TY'b!fbvJlolA-3D',߁[mv`'rUS΀"RxײpV2+qd:O,%WGijH.=jcV$B ,ܱӺeca}!yIP_ּ fUaFxd\DM PcgyR=C,YyҘJzbU3,]a`co0i;o~0՝b PcWڋV`NFu[W``+bmWMKuV`FMiuu oO4-}hLx ky,9?^b5p>iF&:lpU[9VpE-mmbadSR& 1+d{JhЩyӷ2 hv$sdiGUYt1W89bMQ—['I+3բS>w~$돤F"[I8*]P HخZH=+6%E#O͓Ea42YaXL 0HT]㻖eCлs;0u~e3(Ȑf̒I.~.wW5/+PߛE V c 5;'?VM1Kq%77(cl)ߐ=9PP 53bh6LYw{~7aZ3|DްJ+&~@ l+FWBd/LY/֎[<7;SsWv]N8!x2㩳RIEwܭP(Tehk`* UObd x b^so8n1 V@(:-Nk!LBW}h2!-smWE92 Dc #FοPK3\Yw*}8biTܿ[ӄ,*\yXz*? {$lw.stgKuixzS05eTgJ(O Yl#;v_d JFN P8*2kԃ;ç ?S+W>ksu.3jEG`"Ь˞}].E F"pȫAit/ daH}W"u],cq,fB1}ګ1@Q>ȁ7W,jDdJF/x+}xn[gaty5h7IZx e=]OWX&Ad3y.7pKaXv㵴MLuEi;G,̖!i۪ˢzi4@֛*iP_ޚC+B)eA /7XJ:ђvy^9*uR M;@6lUX# 0E]pi_[0VJNiE+Z'܍qDS4帆&Չhk:>+D%4Ǹ>#y"nf:݁>U=Wj'Lfp99ϸ0J+]Tf!:f[E4i|_<9HwF>qÙ WaEwUNM}Y(5#;YffƊuk0OABm5đ ~}6A*cMzï{|ܿu%_27ǛQfR!9\O0Ëxx0~q3H6=fg?ǡUaʣlbm k pYY`O&/ 4BME?8G %yۤ9SoDD GЧ̤ooۚjqy GnBfNsj>9B}SK"h|J'kܠ3<90k>Sе^k6QVا_E ~Ud&.]ˍ^'2f@vRqb]yċ,ގIGHHiNzە>@.'Iw[$ޤ>Ζ22_9J! .R$UB7IO,B2)#4~N|5%]ʶf{u}Fj}#Xu U7Xy٢7 z'q!'d #DLaJWi*#~eʐ"BA꽼Qq"[藠>Vu>ơ9\Ϥ{JH96wHJ+Ƅ \69/RQca<2H ovYMlt IJDao6$$vtDD%sxWB:ig(yUsp8Ȣ{cۤmu(<{&DF[Wc?7 2Qrmt?K2+1촣ӯVb7zyơ:TnI OAƻnsVasQN#:}+X0yAa#sv)H)P=AsݐYҩK˔DHljFͮp[/n/P<O_~&*)گ9QVmdB.MyR[^T)2dፋhoF(ElPsZ|dܙEԻ*mU{Oa GR7hsD|fbWdiy' T}o*W\3\2 ElS 1 4VSxOD/HLa7WHӭ%G?7bZ*^QUWO\yzK\ 5bti@[ 1S]{,-؞xEyMߧg<<"yg@R\jgvF(4$o׻ؕ-P2c;;ʁPJv(G~ COK GD7@&Rixf:Pr/XdL`%ԭ:ESOeJZK;ɰ.y\PT?|܊'v^ԵQSQ1 jAUGSNNkǷ!YXt`fה "H4>Qsp] Su{~2Ng681}ɋSgCPdKjƑBl_zA%)ir5۷4p3NCӳf?rG3 7lBoL!PTG-~S',א*&"-,j!2T&4Tlx:n렑qߦcȊFjyUi&u N2z$i6 PoTcsA~j3^De\ qnNB#Zxu+#'5jH=0hp\Iy θKEntresϜ}Xt &(%|斄.Ԟ`s= C<i~NBLiJ҈YRk(ѻJs=_yUTm^ 3dVޞGNS[;͏r'XտUdC[Rn˛9t22f΢$cf> Q:EY~g,8"`]+հ7icz25] SڬWk3:kI\:U ?Lj, Db" (1$ ` =aՊ=uiUtvg@4֍r6k_ͼy&g  kB;R} Œ0:1͔7Cϟ"”PxselA_zJeSU}H l|kCiBN]*"TZRS%93` -yz8rvoFKZ #<Cۡ4rBy,Qƀ9*NJ;s&+b+1RSmǐ./,* #څ4wXg V XhZ+d FoKשbsy O#m\v ܓJѢMGHH뼽gtx{?ԩ|^;Dܙs"Yh}ιT0&Ecm u|9Umú'VH#38Y@(<%Kqu9[j)IU%ċi(Afi ~C:\H053것-\=5sX/iǩHʹt ӗ:ȋk/P,3'YsApďK!/QVytrꮞ|n}xKFW t1pęCQM+O<$yH6Cw)gT7#qax oni'x8nx(c%ndFK1xe %mzcM် pI%kFiUJ ~`Tal%jT PU_6}4V ,\P$k+b n5GX;!LL}e e^5 7Qy:Bhf0lqSX7p [a/,1=]Vھ1Iٶͱ9F4)afu[2E/p@o5ϯ^5!s@·5%X0dYJЋKn} %V´ge: g?Mi. W:U($I%\RhHZ`oED]}6q-fx$4P(I% +9 #&y::"s17#T d)[̩F8Jś\e vw) fLQVWƼ`{ր)4E j2[%pPFq=k?oX@0I#D29L;VNLuѵR1s0ڳ gRy"8f.Kn;?K_u57G-4;]x$єS5axG#V_5O#>Z?ZscVsAz2=4NЖ/c^^z_L9z੷>ЛN PDcmv${)sȚ =fz9ٓ}"ҡ*HG3kVb QIt}ȃaOh.!Vw-|o;#?peq6rw4qAN涉Kkg*GCZiJcվ"^1  "I@(pO تϥ/ } F?+} `}Qlìpf^<E]Eآ$V~mw( -lK..H?~$+G8 mҩ Π[uE>"<`syFxYN$M1?)I7IX o5#J~:w.掐x1?a@h 8UN aE.ȡ*E.P- QWM">` Gȉ,e=9 qCDa1Ȳ;-oVB86MEnLTK9!fC a/<;Ae˵(Kh/̾@2*tmPV3[:Cٺk;{elO[vKH2o\8g +1A:&F3xbE͈c21<ømer x J-iE=~ %oVue:#oRӢffNi3Z=pK]zgvl?vM VO4[Z^)륛-r* ?d%o=|ƘV-k)=ȩ"d@ԃmiko1(s٤:j:Ks5&[cY;AKUV΃Hk8xBRZM=&`=]u~ z/6i`-?O>.{RS![|! lzh)5n]M^&#(Q:7c%[[ ->; ]K7+VB4zaTeRQ}gHwaGc!,@2,W_JL{==|I]W~-TPAϲ:ݻw]$Ê$(svHhQd ҜκM̄J*UHhYղBEl&Ceɡ I~Zj$KiݏX a5ڱ=%/Ah\ ә29wYOs5Β!䠗m86b!~>x`2q r@Jۘ,EgW,EGg8jMaFALcV`URq%,F=j@,d$NR}SWhHa">m^/:8:-[w=> m0Ee8ҦxePߨ$2#a1o̳L2(<q]TI3Y+ҩ:b;{@)gPOB׵N$QZ+CYy2/!B}qLs}>)x(A30 xtuIBK.a+=Y+3R)r,5Z^#\3Q瑇`2}GEDY0Y\#ۆu_d7*_8\KċohaF` ݭ(O f$."yڏZἙ<"%oG7k !ZJOR+s.21ʋrZ&Gb3Vдܕ)ʽeTT MХR VzDʴ: (q6sSM޶fx Ond#|MPwh+:TR <׍# ~`f3g ;Vdw^5뫡LS:·sm](fb938DvۉA߬I66YL7 .EbpN9+aNg|\\vCVSI`\/!O`^%BSrI'a. %[L([:)I[FPҖ 8P ]~v˨^/u=L8]p;?xwT Kb1Dߍָp~̷̳,Z{FRљt~bF8U#qJp}ͯc铺kP]:8FX1/'p4:9TpGBg]LOPp^MVSUgCqJ(kJ4Ygg1D7ܗxˌew`2'e0rD7:੶RotRyDDge)|n=@d;~AI@x⹨QSm.xaP+|n,ꦁzruI$cҍmMJ ̂PzRdƤZ1b4+K@ 9aE&N7RnlAkT["Ԁ:lป%09FSԙ0@%(%tvX~C]mH!2)4bզ$"Ѕn0@g Z]hsјЮD67U%@[tI"L;])'rϲ& &``u~%KiF͙촁υWq-_OGJ+[NVeG.VY(((WkM-\^s?6^gw$lUyo~ߎ/W:IRVI5Su>vbjN'GmyY:}n/ !-Z0Ѡ~zBor]CҘwi n.<_1-1!:j /eIB]q_ 4izrR!X@W,$Y:өV ӅS*#G*CmLg4Ssuq)3¦ko U.TN4$er|sJãN4P/>_+z$DDO y`$!,N`uEgLۓ֣_m,7[_=L® boI# G- U*>7F_|vftLmGc\,;\cÞ?YH_yHDPZ0̩BǗCLhd%}!-< n6@CXipS J+)!w,vBoGPKdPdg,+ dz~`uZ5T2@D~Nd~ ]]J=fDKTًľwƾKe&0}I\s ]rn1fL H忌VblV,K¥Iu^ɬ'hO;nFe?7;yHx2>7xExr|\^pS$teѓ90m2FhGn+"zh:Ny];O\K1K(R9<9q) vYV ie}ۍ+.CjkaF0͍d`eZ{L3sɢf7Л=vR0L2%xfWIIٸL鍉n)^TN\L v.@w߄!td ;skL)i,3Di8j]w[CtP헟yJ}xI5NڳjdKoɵ[0S&&>"S9J/C(O^Px3]<ݪUlpܭgg WdETEUrRp,LrEf@,ǀ{Q4x8L`O>K-3/ Rσ1N0b|~?3"'IDž ?^wj#ɝozJt?VQq,_5|F,gh>͂;yg6"1d=zth^+yo_ӮXP66Aːpeeˀ~Ă\_On-P/dd ?ZW_a{mXHKwIh-[Wg~Owω]vf`33+F]y m GYUi-6;V63>T1ySdUHx nQ L$smPxD,ߗB A~s>: }TeLʪaX4 ʃu1 ,/ fDbQ_bǾ\sR'(F[x[k6ʹ* ukk^&].*k`B`4a{B\0^*Һhuʀ\%D2fsƆf23d xni;z* jُ%@)vʙ7Q :kčCDʟ;hr<BBnl`Q&N@6@<G.|xw'W(6'QBO1"k?xb,g|Y 7w GܲVQ*9qh mRքLTtH]#^^ ƈ7sox`P5i`0p_;lbt!QO@LӃJ9ZW/@SKqԑN L E#A,ϣu"(x>t>(5 o2!\EhmyF=%R~،oâ<&8o{*ʽX"94xg$Rc1PG+spB,yT]q b^|"F3|PUbsCD:5KNӴc[W(3弯'W2 _q ־a{{Sed/v)P<蘆Ϝae6ĵ$X&4NW~ o.ncb,0!.X)37I'IIG@<Ҽ-pÛb("<ܥD!s1]tCjBD7iPGt(Pq]m▝hrVok򳰲ڲMžZ5QgCDbYg(~(۬wFOvd}Je+ۣ@|gTKɤ]7rL{-0@'  r{~nd֏K u)gMӿ.04 0\.P/h@4~>X'wec7C\ |I_U&.AF5Q.)e4vcIr}E>{S>2qRiԐY/ nvd%$MfA9.Jp\~̄IM{iuhD^D\ L<@l‡g\Ӭ58ﵬ'k0P*yї0pck4&f9d%v9cޱ6iDAR f4;z#yf]Z;ʟ4@Ei3{a΄ Z=Fa_L &jw[kɝъ. #;3XehZ7 M#Ac1s|zCk(|g ̨bOˮv$p u㬄'ϧs9l+2:_%֏S9SBݵ=WЬan,+OG 9~Xoy{ז S.$=)]7pVd_zJp5UQ 2adF}0y`0+ РNlu1WwT4S-|ipG%nfԢ!e̔~uZME^lI؂|'OK6pȑ&E%`!Mro]⑞xE2qߔ'CVEݩ⮒rL\My÷t>.vJS$:˺MruU'"`TMs'&74D(NVx?._%X{q8oeڡ3GcgP?TX<bD.1[$xc42N!Z;Cyb8U6FV*U24h]O"HGd@{>[?+}89⨲ӌ|̚9*TX 666vm萵Gڵ1fЋXb\*F{Gb[%41mW5+\(A]$D, V+#2EEc ضML}N6 CsӬa[eɹa dX\xt6>q> ol!{%gA\s M=)FZ !`@"^P+RMsvrͲIB!wp] S,)WK5̋VEĢJ=vPz0/pj#4Zݯ=oUT <)Bb*>30DqOJM.UKԑ}{8 ̉O'o3Ƥnģ]qJoXERwCNռMto8T2{ 1r:skx߬4`ٌ<+t*4ˀr:Zn $:*Ok`nNƮkfӅ-i^z/9_ BE 3=}:jcmC|w1n7CH܃6px(9ղ q$Y`SUyXըe:9 FL+@-1'OD5 n*L%fJ:OCT/ R"2&ZmCI 6&{Y\ %Fvo?Dl-yPV,F~hIo, ߉s*ɍ#hb߲{ vHؐ[UmK`_]sv}wq§^q }$cghԺ2W xk:0bšo"f4G8*Ci4hHy|FR۔Rj@R5}Rr"X, 51Q V(c5Zm5galcx}Nqm^EDB$6f;]I5 2U"&>ϼWݪG'#5dR}Q=dXr&v:pPbkPog`\$9e1 riHcD1pq\r_KS59&:RZG<2ssNsʃ.nNtnO9uoq&@]׽RM6TH=Eq}鿝ψ[MUb72~_^kiAJ\ m "&ֳB4LÒ !;NtW4Е- s=ޭ|:Yưtk*Q(X(SKվm!]H^ĜgU LHJΩ]SMs2{'W-~85qЇ]4CRUO̐"dehSLwjhMr+ ͤ<2v33]uu>*P+- U/?zC8ns;wM׾<}iIXH MsT9ԤPV9)w Diy@7%dՌ YqIv `dj#ƿVʴ2C}HǣR QLdQ]$M= WDnA\&Wc0֩!D+j4ĵ^A7ZlaJqn̕ؾ%e4$ 9H܎YnTif 7ﹱ4UX_|*iAgGOPA=Lw@N*pJ}`T_DٳŘ hw*{w %,(ID>'=wďO'joS([R0Jl$,ChVb7w KOa2uRQ k"UP }50sy2Hl2jh`K0x :?Gc&5J{|^u 9aX<*)q/As ݄|}P(~V3+2Z68#*&DUb{:t >H)!2|j۳ΞRo̕")xB@/b-5Y1zG?-PlAjyϬ砎fB8ub0׊LIZ{8U w6,|h`~, z0'Czh`$ycǡmc:oi&sh&hTH "VCGS'+/8*ݮEQsKJeW\P,_TX Hŵ؟}r?f:+yqj?j.-wMYg`cҍȞn(:5)Wh xxS էM(a~(a2[ƔqЎ7QNKG၌5K/xJ/`ix:־!4JI1U eMMlѝ!粀E:JZ}B$]^ž2rEwu"x895HiB“%e>ovM(3e܏U̜"e]3(\ar.<ƣl{P LȽscv8&-riTO? /t0œ ^T@h'w@VR!$T4~;J',A2[g#ӄdI?Ƴ[ƥ*S H 4rFK_#8WxS?xخfuЄ6;nҲ칽0vccD+u 6Q4ATGo@v"ݳIir?קU&HڕT@rt`5ek襂QZ(>Ym&XN6+O|٣z"?GJb@غ}b{޳^³b$UWlErY3q/X2M3tۉlrJg_1M: VTiڮ f`kỄr;<dGME=yu%B . $BNh6/fgr$oi_ trk5J vr dY+UT=ƗS6WJ:f]Mv}h޳ "H)bWgLZdvZW3`:1oQE=$Ma(1BJ i/>iR+Z!LA׻&lc'vJ;]_3H8n9 &$VEu:^1yz K$峦f=`C~CSӾJ O4X꿾յ HG,jamcG$_.@~kdH4$R PG 遾[rY;gSXFnڭ؍\`H4Tצ߈eϐ%4l2E9͂t`7/edAwų+h{/I;NP%Hh 9^u\O,!dO ^4rfC_fU yv [ h؃}CDkY7NI}4BN4!Dۢ{Fm^*SpjB|d,uuY)w&#P ⺀Q^&53 FM %ܾՃ'L^Z>*gKNN=;%{p5&Q*ݤoEGտLoĒ6!|6w [Ƶ̘7jNQ%!i5T\x#"]jܔCy3ȧgxfWpeH|ou[#sGWǹK*C8ь,{mqx-'# |I-wcVk@o ߽.{%e078u#u3,Zyo7QZ>\EkpݍXB@DERL`+qQl`F,T)S] ;39C0ww 9 C܌4gwXm(xv~PԦ,# Αކ:@!IbH(ٗIx$Zϳޚyy Lr0{=`>KF" ɊryS2Zz!d1jA\x+0Sm3¥8Dv8^xzu;XG-d=)R~gwg Ce74Wک\w;*[+7M>s;`MgZŴiC^/]<*v& TgPlk0#O('k5I)8h Z4e1SA T,/+QC:;L@'o`lxd(ixC.TuOo}ޡU;A$= Ԗ%}v7}W$^g[{ǏBtZĿM/polI H'J 0t"斝,>J/WgU/d;i^үGNiI"P/^3cO(iK $gD`4psO4v AӮ5BQQ)Y@yۡc2̆޳V.<:KTV໇\8QƕɾՇ ^;Ϟy lC} {I[2OI,ͳQ*pC~asȿh3kiX'chWZHPFiyukN 8V0\VP W.z8v67}D8Vx9(+bŧc_tz&X+16t;/Ċe ['nXSz˛D[h (> >Ԏo:I^TtOw&{YK=Wn۶PHDىWl)+EꓦFJ[10R QA{Olq%@^& &- e;J]-#K7cQq Hf#ި CD("ӉOÒ}wv^2xۿGZȯ[W O?^[_z|Ѓ 9W2$mi4vtirRZY)1Եi6(MOB mm1h xrBy\O;[+?%ˋK%N90B /騍Rf!vn[tMK7OE/z|N|ź=15nMTLLegс[p(in!2h$)](b;5~7?/D*mhYM^uWp$S"ikˆԤl L-N0$|wW7}?|<&^5H9N}nS3-Qq%izy&aN*{vLT ;켇;E&Un0%@ yӼw6;| Bn,fo=SxquCGF%RsV 1mxƗ ""gjlY{eJR2)Z1amd6ݲ3$!qXu4ȱO| 7) }|{ UH!{MЎk%5QzUO0ks'+ho]VA_#5K Q #t~zdBv]->cp>cvG췕m6Ԭqˍʐh1VHxЙ#)j pj!8RICI;FnCS4aUqO܅!K1rwVM,܄beC  L/p\?"/ҞэS-Uß`t1/wi[p7ٚd0K$l"srJ6{ )LEw*`4B,&qeELJovp@l;P;fYsU*c ~ p^wϸV;oBr ]TT"B1Kn͒))Z>_mMa{;P߁*(`缙7Jp,[ЂZqÌ)2KO(=SȥW.oFVdP^蕿FE0jϕh^5;X5q0/lHKƾ^:Vwа1ܺ!K|{X'ٸT c!4^Do iMZvC ɤ}f4ZwA^FtzGKg--|Qv)Oцdc_)ݫ=y j.6Aj|/b W.j7~=+ϣ9rV&?58P4YUId\-sb{P3ĝ~Cy aILqqKkآ 1VVsr@!NVW'g *$?ܑ cm[lھAg&UxP&DDۛyuqu Zʪ4e~MU۱&M>iBxiO=LQU2N,@v/P:ӿҦسbJ]b]-p5A96:Zɧ.Lh &Gyix>%:oz3D Fg]+5<AơCBik5zI9muzOY!!S\Kb CZS'eEX?$AZމ` 0 GW8a|(I3LzMkcӗ U8Hv+5LQu̞27P[4*o_ ҴH]B^h$Cbj/$ؽc`T="8ir$lD.U:95<vܣ9ٰcĀEO6C"9D$`ukoȈWNLyzVpT؛)Bŭ5`n+ˆH[HĚqxӲ=5ˢ zP74eW.9kUBaH{Кa~5ZJD:̍Y N usվܹoU"E$ꍞ =ª'XYj`j_FŅW1 mlvJ ]JJLSU5wch9- wmxLV敓hr|hSt ~ޮA7(,Yؗy4Jf->& Dvk'wBكo@Df(1][/ʑli_=BJTul%/ĐݸlN|6%U/ gg*leSDX$a ֦t]!epgͤ MsJiKP,Dmy9Ct5=^Be59UܒS#CThIg(SMX<@TR@>bχ#t=0 p| 6JE#h}%*Fe()f5X&i#yf%J6HWN(Ħ` ~{7[+t>H!}AO VźsI7AԑFR'E͹L կ.ssȠ^:xM]pq J5R5ѝeq@`!,T,a* aH3Pm'ڡ?SI\"}Ki9P3䔎V>H:om߹Da=..Az|Ph䩧ZBBQiYM^.,d8A>TJr.VJ,2N*$"7P[VHY%.cYTphs?Z=I2ȲOJ7k|}v@0f?D6=Ӛ; ܂ / м>>0.v}Zj@w$(\4~f+ Hd|`H㵏  sqX_~Bn% A_֔|Z߅ѽ;+w#n'|3i|vwu^w0hv'u(4H2?nrw2k4]|6,~}9Ы+ 4z&Oxvwơ܇;Kmhki~V*WE֝h Y8- y83{Ale}?mvu|˙J\7C[e # JcPթ,2&Ѝ%__'a]" ͞Z9&Ю?ڑnF 4[ITͣ#rw& MsquњZ[HrnڇVX~hQfb[k|) qri%)Ío(p O$ <mun6#|\m]1/Pn~VƷe=}u( 6rRTj3E?T-v}j1ӵ68d\2zP/h-QҠwBND0^Vy"/L)!^b/IsL~9ڲAH|{Fy8kLp#ieͧPAIrk@9Q;A!`̥ϓG9BX!bYR!PV]Dz j#(Q7k[dJz|P`8d/$x]O3 5mc>i٦8اA-MaĦ1F{EaT~(S`FLB1)!`Jm`U d`=}F~='7Cw{7Jv%>? x6i0@0☔ ~fo,+Q2aVHqegۣhL9KeW.BUe;]uhY姴wťZdp;tMӿ >D9>%~~ۜ\pUBƒgEt(lRQng]ЁQ͎^=Tia%+ E;dkrjf] 7^Fe'0L1Wg}9 dVT믬ᘙ|2^SW4J#`C*pN8 gbb5>?U A/MTo>B)B^}eœ9Df:4EriZ;5'"We1.^bhPdb7Оt) UpNعSLIw2-xw0N$5QȾԞEѶCmAd1 $-J@ &Y͓OLM)bjh~oH8>j7b<}eИYX~eYsc;4 dXmqciX`k[Uo{?[nD̻$m>H^O2uA;Tjb}FvΛDIqԏO C:&`[*P4=ywA#vbQ<1MmybW;p 9v_֥#s7NcqoeFB$ϓ;[J|gumb="bJ[)uEg>̐P]yW 50P@?,r㴄x+h{ j()Mԉ=-WCq+$:)6S7Fm ʚtj&42#^E;H{Ǘ*fAxذ sZpndgPD"UU`z?kM`y`Q9'%FJ#;cx}NvWhi7OzFQ0wITw56c&ē/*{nG-ۓ2oIAFBNoHƸgV(Ta/nދLj Ke=TYK~^ODbM'YF'@qDv%8p/,VlkN w!UB}޳dGvxt6$Ͳ/L-0G)|_( X:A-XgգRǝ!U]2z黛Z%Ύ6άTs[ʡ߈4Zp(Vջ%2LVnZ7Ӌ߽*$5a<-D|p%"M=G :o#FDYيOX0EX+e)M3)xe@_-q&!א9J>+HHs>F|Hé%xe<&FĽ(=9wh CG%0s%(%o*4v@6 "I{F)i]g{W$J]NXJP;u"5Ńf77yzޡC)n*2fGW Uv4۩.Y9}u$-ƞSAH#xRypT}BާG;`ARWJ$aKIV>mL2iƤ= (C^I5*l@w#g]RT?X ܋!zh(sV5M$Xo0!Mk9ϵ6o=|!e6JJ Fu`FbCGVFUV}<=؟(8Viݘ9 χ<> >LӜjq) c,Fì忧O3oIe7~Ѩ-CKYi,U䰸ڑ{h/Ʀ[?j>2X-d7O#g&y`ȷj?t#)n3 b c|f=L ImQq`6ǦDoE ~ ,Gqx9sm`9Hfn '㮦+Nc`o;%R:S,´s'6A?k\1FC;>'T`(t[5fyAb׻vH`+$ j)7k) SZԁ5)2>քbUBK[e\`oʅb g\&ի?=2 "^`GژeKz>@2`nZ"a,SC`gt(l:y ʕ1ٞWmOLc!Ȼ}Pz^bAQ1?77>BB0.Sen}K:Mky3FkOin؉6 dbnC3&,$ F1<"4IT\ q|0Gl=X~gߟsխ+Z+b[4xUtiɯSKC*OFJ% eu?s‚aLǺDAXO0j];1WTbvN8 ȺL,LBP(9pr2 2Rn $gڅ~=s0[<)˚1jF\$AG/?as3MAjFɞdָT|N$u׏,M+1F ǹ i:OvxR6FQx&.L=O Εs"2CI{?{8VKɋbugTBTqS]jbSb4_f=>;sP`eaށ6V&Mof\|f(/]sNlXʻkb!4JeI%4X QdDL*1*W]r.E39fȅ."]\n#GU ) R(v5ǞRbxt>JUA=vT(jw=o`Q2,%r^zAwzDCZC3-C`&^[,muJfRR,y[e_X ]?;z^,a=xp5Ƶ{%- >lzE3vĻT|kJjOlVT-PbUK"I#fz?HxKED: ` uMl{/D7czH+bYT2ĩ1KF-FL?Dx{}9C؊Cuq[j5R5kyԉ@7t`PE- 3rrvSU+~ñ 28%/> zzLI,\. Vмezroy%2!Z(m~$'Z(_{+=pɦq@ʂ0t$@>rp:wSA典Эä{35b?}G2P$tV?ZzJtƜtu ShgUgDžY7 !`Â5FDTD78 2KAidCdZN;VEzj$< TT$({B2I.M]!uʔdoԚá1Co)4erv#kA;6DXJtT5SIx7;&q mB6}"b`^}$򠧒I^k{2)SlcUR'Um=TJʜ[&(MQCSopl}/)vhɉw3Pc*+\1X+=lunŇ}㌿at`G=0m|AԹY]:Ը-Ys{,)TΉzlV̹3M2¹ T [tNC9JJ:fe @Lㅔ6w[cgS8IaَJOYf7T{qkrͽ&fHvg Wqzʘ ' C6Pa;`Pԏ=ƿBMy΅blRO͂Vdnl{,DZ3ChQJu=`>)iN%(A.#ct<'V嬝@GNb[w[I_*e >8a愢bA-Rv?1gFi 6 Sw=a37x| %AO/^t9I:cO2N},md|":e@A`A C@24JJJtZd63TWzuU{:Wx[GE.VYTYSy_hH$>zu=*sfƔ{V^{w͕ ă#LBcqKIIBh|MK.QQ^(?%i W(9k~VF؅bjD. qh`Vtp5isVg?t~&s ?^m\LjmA'%$ C9)eLC}ڀmfWZ R緮z"Wnu,i3fͶ0-(! 9Mo')_5ڬ-=l=Db =i'lUCg]8YmZLfVNͧD6,#țhԯ Ӈ].lҜ5 O-4ZæsE Uc Xv׵ZS{e>GJjO2b$@{όz[^P]ݦ=TsXiٵ_>l5fn;g i$_>(Y?XњFʫkĕGsypwq-ٚb4~kjJ ~\}ޑ"@ m0()fqG8b41]߅1?SP.S9Y{,VĒt T8LjiA3I ) ^vag.D 9xT_ jlIҧV>ާX$r 1~S>=._&bgX/UlӟUK/Uk ڍ-$}v|THܘ1S\>1Rd-l& K0J VrF= % jeXubs7bgTK.]NN:1ɔFkS"g t i|~;FBʪ]:5)7?yܭPO/"*{3-?J)icTi1X8;F{%kIHkhxhe]XwUeKֱ(C]]3lc 1 %kg sb8eXHJ4@9x2pr_GU"uKQB}ެKb~ ܖkqNſ)i 9V>UJ#슇r0j|L֜MdnYrvs8\+O 0PRPNFiֆ;ٙFxQQo\G yI(|J.gUKxWK Imm^wm(INukEО0Wwګ5^zN!"CWcInKd "ccNAY¦C 39Ğc rf|tgO5ljHz2 V 2An8`D !s $H˯"rz s`nbn4_ ozo⩺m&mH=&%` wn[ -0*[ (B;,c1:(ʃ~SmZCPSZKU# qJn5e$)_zovOt^ - )O>5>hϲ-ے`Ќ.Ŷ*瑽NV)c6"(OE }2 т5}T9+c/GbLEl?֨\t&钃w“"Qo;:Av2Ww٘gi3 H&` RbÐ/,t٠lVpcA/gc4+ J*<)_ k;dR/uBv񼽦BJ[| m;HqՀ#T#!]ˈESFoFd^Z B 52uA %d3rWS4#~`BOw AQSV׋P (ªӢpaW{raӐ14˫7ronQq/QA\ /cy[1=Lp}DZ(*-@ =%ѓl T%`:w="_Ͼ RUD4o'/2-|І@ǧNT.Ae~#ju3~+5mL81?{C2᨜18=D.둿9h{|Fd5Gbej74N ˄q~Vimv:wߣB,6҄)1Q ̏ƛbbL?wԈnݳ#OڈZ'5(=0\bxjJVyGʮ#XW<GM),LS*nkMQϠ*m$5dxԯ(acN!tHo}1WQÓti.g>ZKjß&5xrF"bպCV94AGk !՝X.ǦSKhθ%c4׹7>"^BbS i\C;MD>+tMdkkQp '5\T@z/ `+ .֠o2|8TJP?$@*;wUn5,LLuwnЈb֐8}h0 z.N4m'_{%dمVF) Rf!q@v*V zҰ/#YWGuqLB)ۭV2θu%A-/M Lc+`(߁aVIMc/GfI{'Ӂc^`41lEͺϠ Z%KΛJ#vJa@{yTi;WteS" A ֵ!*aS:*, ԐS+G]R^50>';!#:~cn0QkWu蘟 }й{_7݃J>m@&D^?cGvаDȴΈ"H!VpyMY8$SAGOz T޶.$ >fIM,HXh2̦Q > Yy&_}N vQۥ*ܧN\ܹmb_@僧̩)~¸0B uǵ ْt*MQf|k!K`<EVyZ]Vz uJq!Jݨv a(?Tx~J ,G :^{$?at!o kيD V(TPN"PV|{]8yPC '"L8,3mqTrwjZMz*xP6>ij؍aQfnZv6K>]pnW:LIwiZ8seq LӘtmmXUf,ш7lm\_* ao(2Lz׾ۥ(LoÚ\ n2_In5n`^HOf+(!ˏ5,r kS?.h``{.G7*6`p{Q!@mb.|=Yk/R 'C&aڼd7érb$˶1S=~ayPɽ6tӠlfI>d箖=f]DaG:fje» @}9Da4B/41a%V#n@Cj&~ݬٛ o(aI|(g)>vu^pc @sfѴ(Kz :\-š1hTI&L&NBeG`lfVKydL HOT=Ԭ+*fB<A {s ÏigX=m.O;)x\V8lBZqri`1Vˤ&(*Q2&RVTU4p.SDw=.eN-r v{jS-ɱMQf_Qh0,mE! R 'jE}JwJ5t~[( ?8;zq'a hy_?![p?n!#@}\cqxʖJ#IoVQ 3<_yG' PH3&#wnI&/7mz]"[6˵ge%TbN9wH2&p~/;XmA׋oWЋ(Gą)uoV %ϋ\@MjX!qkznﷱ{K[ L ˂xwMI'aāz)O˰^Ld`k84Q`DdδȧZa]렟`9vEtC(48ڄy&7Тo 7VEH+y`}G f~Tیݔ#'8EQK `Dw?2n_boslb@qВ؞vÙPڛۻl0%*/<sTT/ݦoKD! :mkΡ[ϼT6do+uXj[-HULyxqV( XajAߜuUejT.Q~t=dPʲ(K qi\uXrN.Q#+̕ʂ4g)W^4EvM I/G" Rosk^h,J+P!of _»Ռkyhs]ߣ-p^-yvP<#*cժZK>flH TˆX%,Zè'ckpn(RmWZrgiad9NWN@VMCP㬰g;' ¥J6cK l|h]y]c} ?)Oé(&2, C7bۂ%5(X}_6dO6!~ޟ+)uV <"FUjaGkVғx!b(w]X8HԳQMIxިj O -q]J+U#w$Q]%I}]Խvj"E+CFAw3v1ѩ7$HKC%<@b/GhW2Z6تggȃm,'-PB"N͐L*U7f6{tn6~iBP:]Kad5A<BP+gbYtu%m񤨮yܽ5G%:<`f+9 0:ain@?5ɟ`hD`^T(cEa7e Qdބ߆T}|$8B`ʲriCZiS g__ԠmS"#L~^`)t^Rq៰. b4y(Swݽnv;#t)h_X;6/"o$DPNtf'Iq܉(3Ydž^5_QQ)#<Sq~AЅS ˢrNzO,/&b)ӓϙ0!rijW^Sb&G"E76W7N!/ 2gdSe)wLQA;ry bM_ph=9Wp];Vrח1(L&{7:U$7 i\:٪^ MEv2@+:M 'ʛ"Fm( AoSJ A%PmPY_HknSo@۵U-OźE]f+yp\nQZA:JD ZB" AUSMVXŹ >hkGQkV 8:CGs A)!>&b@L. ػu}2Mjfb{7I/aGHNrŠaz󼸣J%s: L'XvM1Ft &+!Ճϴ5Od$ҡb驏ZL5AV899k=:hdŗ5DT@r3dT>F"BuB14UhU:Ϝ u|SFܬw<=۟%C)BHЌU_)ca- ͕sc2ӬO"p7*po1S0}ܬ&J…Ep^>.Vۥ%͂҃#6iMzSBя|49.""JQ9C,@ {.Ak( IP!#O0,LZ&Ɣ7^"FwY^_nMR##8t,-ˢY\2uCW9Wa5֟SsRR kY;hmY*OOqYI`$ulvzkhК7]_J@4`=|8(m,$ 2h)\G? }AǫԇHfRkإ{X1 &|,ӧ[=xvƚ*zAa(,9N)jJAa2shnI&_R[&\?Pʏ85ȃV(+ȩ#`hF`Cl>v?yѿ@ɱ(*$+buT3NeDm[h9U{2bxgX&`೦ˣn\ d=s+bـbc ^BJ LHWImvYAzvAEVqHQk{f{XJŠ ʒ' t }ƾ?9EۆJ OTjsp>ݨu]ܩ`^GBf):9ӂWl# Y2|L6#$B*G?# ul&V'Alj'/a1?h5\=Tż`)sԓZqHpPI}o݌eo|8Ln?9fsf"5\ 6D (K<:$"GԛjmKnj*ɗ-&ֿe.!??lɔ mhr'o[CNjOʐ&-2c懆?tփBmqyiZR:`w^Q4vqO BZ8qR~S!$0-u;IN VWః7!5X~pV2yASs+= ۖ 3jfͮѵ=vz.rtwzV FMdQ1/ves[ '(ߍEȦgx_³%jHϴ`ՔJ7\pF{\ kl&X#*߂<dfEگJo+\\@}F\K08]R=y{z%8[I#@_p{#ru[E]0ՈKS%Մ\<[ &%NA_(̓dd7,MEnCN'4_?RZ57׏qÛ8o~QJ;- HsEw q(le aƬsgrŕB[ɧ4œڝ{2OGJh, \2?yE`Iˍg2`45n'hNk<081 'OP^G;d ei.v4{œP!ލۯe!XF+e}huk2M)?+%Dئ(aQן.l8t6fK*݈tP1XB9a#@T)|bm,^̿?y%s'E'8@Hg`( ?vWm %m֮Vo7p.0^[mgM&gޓZ?8Ç\?E t Ս 8ISrMymł/"[9p UPO: v- +U,.=ȴR[HB'sTc/O*s u/6kȲ2 ُd6Ӱt)ulֶJƀU0ʦ0{*Gn%ÔNԘLCcd7ԻzjBˡ BJQj6-59ܜ!Lp3L vE2! zJi*Vv jGq#3\?너ɡ*>ܝ ?EkQ[);j,fVWPnbjVy\SAkvުʹY z F+t#hVဈmxcQJbY5H}1XO-5V)+*Z _kcp/DGP!NɯngՇc Dnz%4 ‰o`r -{86wVt\ nQVȽXO.reFn_F6$1PU%̀ ҂wu %<5}Aq}W VQ(<  u z[;U.x t 'ǝZrtwZ=^qZpJۜTYr"|!Wكoh4@zlh6WhBoo >vKSe7O ӂ$0泵rgNpB`*=S9T?h]Cʹ̧^r F6L^ֱ{T3g>IsVc߬uLjb= EUdW#3:q@vy0ħh)& \C5La\eymz0:Ajg[9P^X܆qc.>~-TB z#HJ 44 .VMA%2tBGB} =WP%zD\͉7mٓϫWPSdyNcƘ ;.JNմ- kPXau2tzvO`[3BQeh"[-ġV8̓Zj":tQZ ;; V=+\Tc7X%gCUq`"e8DR b9gp/5wGe3gq Ako\'wRZ$!H,uɊG@nr wC%ӏ V(.f5vH24l@.ř;-.!^ctIA60;~Ѳɠ˯ۙr() "OFbTeU}3 وM"S|}Ś w_hOF28:*qh\y+㳭$2=j^zcsB$7z;y!eҕh <*#zqXL1ПPE4K&.1Ь,,w&;` L9~caNcbɃgګdޖo+|\\m\I-,.N)=Gjܨg='3XRa[]X"z+%8x 8weDpOm|CTU*P*n,|`ٔ"  RzT$vp谿P'k,7:{ 99¬Wm T? Tv7`,V-T80/myt_bP(h(,;R8 \N@>=?6F&Lq%%j6B)qt=9 1')5PS첵,xk,X'ةv_6Yd՘j4g/0-_ɟrX!?s> eW ^aЃSP"BĔa9؅OJ49:fJImv GIrunBjub?

UY+tޱvоBAp)eV-Lv8kқ O1FAI6I\%>,ZۨLvcF'jB2u88{&rXxĽeOBĪI?ű)6VD Ԅ$X㚵\߿%+/ʩ[(ˁ^enƦ-+5!| tPq>y{NʫCW8L#/qƑ\5!*qXX9˜G I2*H3:gĔ|֯"{@ %a),=;Պ0$a#t|7LuT[Ft`,9lL`e6 NUQiVBpvs`|~ Ln\sq z1WwWS0mTS,^Ԥ*9l'_F͊E,&oL)gʺ5VńcA%|)*W+1T|oC(4,d=fi]7/#xHVNP֯Ym.40G.W/)e-T/#.caDz%¾MpMH4y!)2fpER.Br52O^a9;P A wmJ|υ>桖[/ݰoc/M.#BȆgό2+:[dTMiYvn.0_O܂Y@RڸIh$p2|ZÏ+i@])d'΢;PS-ZO݄!y=g-㉬bJwqAeJCxD|$΃m>mtw=B\D`DAگ9׶sE5-b#9wj i0eOfBحve$h߽J-,r^S7]4x)Z{xW֝\N|5CڟuM"Z!e9rg7]f&v,sB+A|D]4djM~\ 3&nG7I> "*HwʉAܾK3P?wɧ٬ .]aiSV̒*mq`Ք3o!߯'} 4P;HaG11/ǧ  cc"H5'EnmTh^Ó^;cA:ѨvӬp8b4?L>OB\ٱUZ8"h||`v|LeS ČFD=rd a8$)>Qb[߆J/,<{ޯG(:8ݮ1ɉAɆC5tucP`=n0UjO4Yng Q kR)HIbl眠oMu' gPZ.1 S7e˙PJ ]07鲿Q)M|=rJ:7#iA3H V)JzWź^FMebZJ>;!lxZC1P;4j1S(]GF_ٶdR$ (rc3^ - Oon N|H~IqÍCxo?3Tp04_Pź'jQoh=#va-C;'Tpd8fO=q@_* ?a$/s#7@*%clէ-m>#苟u/:O{R:_?B2Fhn@#5y?E(p̰,4pF7LTJ`# ,~KhkbiB>ѡ,]ґTr-N^Ca^ߴ(mwX&gykfsA>ɸe.Y=_cxw\]oJ8绤7Oe;T@ܕ&myB=keN[< > fߖћplb:MN+L0!7FV̀[aVz;(>u=XAWݸRA ԮF-i*iu|`" y _:6p ,a&Dţ=@GJD೐XK2m JɉU`Fށ?-wkFKXMG[ʵ#L[! iqS`aLspj qL _ۮ"jFٵY)q M_.2ޠ i붆B!f[Dt[tvOu/#/tda7/W9Sw{Z\lUyEEL. Nc$F>l0Kl.jOP%dBZ069ڏAMm:߾捨@ ҤBH1NÐз,lZ_KI%/n6E 󴎍,X&~Z$8~ܿic1*K!ݱRTksNGb2ȃ*f<5)PY@ZmuOGN3i!Ä6nHi+%A\dw$i$ PLWLi)=M,LzH7 =WeW]cgAy 2 {;-3QzrݦfZuHЯRVib ŋh_]5\SC?AzK;&KO@w/Z' w۽@[*/Pl%>ZWI@vvx;TL K "M fkY6Fm+{ʘW@^mݍ[VnG+;۔K-v{E Ufnl=] P]L.il(Lͯ<#ycZ6+\ No&kͰ:i/_, 9 kBmIIרnj^,9+TȾ:/B@UI&/LOyTg[w`RWG+zr*EZhq_ofgٸcq!ޫC̶̩f[H#C-&Ӵ=>2M y!;J0{2ZI9Cr<2ȁ<ݬY_x+4GG#*=a:g!_AŎ݊oe) 2эAd 6UmWp[qк |V="fwHߌ|eُ+dC3٭$9ߓ赤Jp!'5HeD[:~-"E=r5AE<&ի*?H5>>I9i ZfK

ELm:n$@_ad$1xX>% 7j~BxwSZ;\E[քnlq`)`6X|ȌF^~v7WɓQum8}KC'j3E^mW\褍 Ƅb*q"'r^ iC_x4b=xZf7 B (5¯*L $%E [Y8%Po(mYlt^.ŏ5Ina( ˃LI_>rלw%̳Ex(j$ϨڶBo?>`an˞t=G`ru>gAaE(EGgFn$w*aWʾDuE *&qYdp#9:zӿe2f(=HC9~xPbuZ oM|od  EAW(2‡;iHjc hc+\_Mm xbEbԽFoxwA{8n]- ZNq"Rk{֏6HXܫ/*'E85٫kLJVNa133I]39dS$n t(luxg $,~Bv'  rnȅtpg&' o"C(_Wq ~yy*GU ZqT# $~SUS쐻¤ۯPS.#+)7a&niOdb3).[,Ƶ4Hv}7 mց?~%Ɠe$2N к֝^ BX%f*Ƀ'*Z_˜zCD9ɇ_1lQD?G|ب RkY~7IQXԛ\Lkko,3uj#p>3u+a)Eoӏ΋125NºIjΓ%Wq.oEqx,m|P %b*t5RU/ izgTy>lT#Pi@չC_q" hؒ=VfG5iZ4~CTM[tn;c@Dǧ91Db}"&ѲVK$we23dzr~>^vO8ѻ&ȁJ^\auRQ{aWzQޞEIFT'HBJr6L$(c6YYu7.A2Rvbrd?'H?A{N4ӜQIG35oǟrb#T]gKѪQccB#TgÝ&놇1iof ;ڣ3;ɼ(PE`}k`EEptX)V;;1w2M] `>U_IwۊzApr.'c׳a0G T`-X#p2(WWk pvi'pEC|b{¨]D:3)^Bj5 ~IO*29BF᠒wI~͓?BZUmgaW7" \.i.G5/ ÷<SE"N.Śf,X&M}i`'f>rl8!v;>ߩG1x[7d؞"ftV3Ɔ uN__Aj+yѢRgqˎ_6gNd+ CihSA\(/Y/5v%(Y]9:8a,؅JC!\A<[t Òփ#"]CLmgGԌu0i;~ ,M s=*HU`\zYmh 复zw{kXh+y`o|9I]LӻS9(jY8C5჻OI.[z8MP:Ic=PKK;ippUK2>GM 2K1}y~DF" eҮ bڳr=:J A* , ʫL0WEv( }%cY_DZST]mDA@5q52+@IHLqف3FllJt_*'/Y˅%~H ЙJ7~ք-Dc7J 3M G]7Tep}.UsQ(P%(<ƂƂ^T u 6cUFGCr  :LAx*n0|l7CM#jEe.>,m{`e# ɼNJš  ]RlO*)֪&[ehk vn,";5<;7`T{[ܢ$Q.fR(NN;ĥAtt5S耂NS&LX4mbl߉vv?j] ' &bwh=` cˆ-~Em_:HJe igSbʼnήQMOSK4}x?~epٛ K#,4Ê,*sKVg`Cܙs6- ~07_Êy 94UqPhguln‹3wbiEFvdmE2r|kYVZb2f"N`gGC-jJ'Q{ПdJQNx.%y߸' I/K而\)$p<"ì9 <.zq*Dߛ\t;1xmz,̑V$}qÃLLOur,:$,m/懢OHMdHO9:o`LrfEP}1vLkQK`4`?ms](V|o"E I0VmO~YP]LJY`ASDdCO: ajڣрgA2̢j~..*CTƥ"p=pz8nOG?!p8-˹oSWO|[$4޿yHD?U ` 'ƌds BgZٜn\ G}l'¿&-wHEJҙ56y>P@ HVc|>2q"UvJ{\ ȝ }.ӋG \'L4'x4Z~$t_]`S"s!GV6?tdwMiQ:J5㝪npә6PZ;9gLp_q'j2{zzrYP8lLQ.[KY/S-$1!r7]_$buQ`U1 M~BVtR%H#ĉ?j~~j՞qd%g3)LU1yL(ưV*.Y}?\VO"aFDLv*9*N XOD#h̒ ]u%u 3.Wcz9,4^q;j0|2MBv"h,/gܶj O;rDhu~*pf$ *Nw!;RZ@уۘj|}$}j}U$ODSK$澦xyujכ'Qu>=Yg"ʳfn6Y25reAIZue,p[﹌x>_Bմ-gP$w'=6tAy6-lBOM$(#ӟ(OL2]MW(#pX̵ I¥0?FQ֏.AQo ['J7pzjx:`=+oiݩ;9|d3| ")# Ro-<_% PտI2ܝE˦e$hI6s3<7?ɼ鯼oF(6yJfk_$sa*޽0%}wOR8{L;[N4'|*u>.3eU*E IyxaN]BUftܰ5H$Xq#}'XעB ~I O<uCF$ЙhB|/1Es %3jb9AzRhbmSmhݰrnpu4v Œ#:8W-[)寪gƁSB@vݙ!"|U}XmZ6ƽ,mnգMn )!IoRsף2U㖭1WhjMtްKrawG3o9IᬦG3lax"0$ TF5źUHZ9:&?AlK0mQ٬>JډӕD<ݡhILlHBb,Yԣ m`ƃO1e ~*Ƌ+7fx2呛))WSPp}2Le3r߯1;a9&:&'W[#=*TŞ8ќ Ӧ5Z {?itY0L\L4}CCVuh2*YP,6rT4ɓU[$.WW ılUg&9Žc1/]mω#ln{ _U-l6cR}q=p6")iU^f יKl_ngP%&2֩ʲ>i,j*%?Q.Z2wg,3 te] _zP hw ZG{ȴCy5B]̐7lђh/pB#GTxreFr#& 6bT3 KZƉ. essggERwb 0QP%򼳶CiۖjNR"{d+ctcveǶ &0HۯTBfV5#MfS@serGC#akBSy ܡ]T/'bJ4~VO6(8uʼ h6sB+)@eOŽ`h8AP:I\5G:˞vk5>ID ¹#W1͐XAAS4?AjAt r(}_4ZޮUJk½(4!kJg<e&R䥄V?t&2SL jO)uMa@8^5rmSa5 /ȉe4.u!kx 5c`(u)GvIF?pG2W|7WY tרe0Q ;Գ!w'HN*eQ@~ A2@@w|T=ħIa_ZQ_?xԺ5P..MK&ա`J~h"s:Kv*"5o$)FE 9 vLg(.n,SMqzNn("(_P Yt:C>rp<~41)ZSs4Iub$ǐKHm\a\3&m?0QT´'ڴkتz02=S_T %:-}ׅ,]CxOspkWEax7))jii=EoJBv_G" )iC[楴HJ~OQ- TC9gtONY"=WIQ/[vCpzy)@1M! #2k;m_Q`ߔ-ҟ`AZ.&9N=导(g}P;1~7]侓a1t{?'_\@pD(lrV[LFw)sζn>5lŤ^Ks/7KL8G}Gd Poi[k\$PԠw=EI(zXx`=Yh1jj%4kzȃS:W݂kmSYTySU>U P"_7@X>O*Im2i^ICQYK:Ȓ-`<γ |W%IA))<Se:Z0ȭ!&-G0Y*r_h魟#ѤCx,k:hHM_Mk(|^A9Z*CZMBXУ$,g .[8CcrC& hf#ia?8Hd>TF?_G}q_ sk[ڊtD*T6s֦2JZer^RKFR8 x\tBFHWRLR% vW3>#H\ϨXUkdyߚl`: G s GQ&'3 (qMiׁpڂ0d Fl8Ҿ^cEY,"gC L} |.=d2sn ,-#9k)[ c8=\1@ [t]@s,XP˘>%p>d?d23v!6&ȾY c;#\t6-Q&g 2z9w H_'FN1.]VRu7B6ggm3xBwa¹j"<3!Rl%>ȸ@d:X@s~e,rې+M$ِ#O˷Lm޲"MUt!0ewU$Q j!Kf Aoֳ55Yfc|FTs~)ޔ@2E+},0 !bWkI/`?_Q<@ C1&~tF{^.%  g<9dȾX.1zLט/@-GЫf Ky8&H·KءSr_Fp _c=ˋkH-mHmO@1#jKQ\Ռ<8\巽ȟrQhdU:i8ƛF\${QL%Vo0oI }@' h\t룠saɑbB+ VaX+uN+fc4ǺKK mSo@Z~X]6bُJo^_RL+?ב.ݻD*-Gz4Ԑ~{3-VT ⶎ'>_F|?-/jx}a`&w}\5XbI~i/ d=/nL#7FH™7f8WÐn:C-;/r$[YM' R!.Q|T1+0uHXyOvGEJy7D") d!TjfqxĤYCF=;9JPJ|I5tZC4:voj^ޚRQ0KCik6@B +C{{D^L̘ e aݯ4$(#C+;20( m$Уs^$g.OY-Py&l ^KC.7|};v,'&L#Oeɲ>EUmPQ?g5Ev5gw0I=RBwvciȎ@M JKහ,.NmPhqB̴%Rf|{~oU$S޾p,}GRxU׬-U;9I!uyWKx CrʦEu@ u q>DMz~n>]_mM3 Dolb}\O q'A88l߿OP0Zݒ(iWO9!K V^VFJINH9D4zW\7Mn{p@W!O͎-t&Gv@ӴqdNlEK-دQ\!>2喊dJ㕿}59O,"Y$&9hכM*AB Ovg02hOCTudtR:+4Uo]JSȋ& BxtQ iu1uu$1AZr1{-PIS4]- W%L34i)O{mD9a]5!d#ڃ$߻yzxÅC* KM7'J|X؎$ Q~ J΂/ ޤDK-|ӈ㛏R!hDKmFF=n`v;JYWPJh6(HaH>z= > \5f[ sbmGb #;_ P(Ji@ 20P6,&K6i=VgP9w0Hd8\\CΫ2՟LTMOJ ro߀a)Q74C)4jr5+.<jՍ:Q,_q ־p4$-@kYlq-@)#VCut{X(->BE+taAUĥk0iԢߏHfp9x~cAnϫjxc7m" >(1J|^\:< LJe@5h~\Qf` "}BˑjI-C8Y1@nU:~<ɿKapY?49NViBSIәPP gUy N6߱3ˠ4}qHlL5-g8xX\n;:rH\<߾U╊ȢJi?aLEƋЕ`tҸ ,hy<'giU(5*)+}N(#' f!Zt}/ʄ7f&#+%d-%veq֓C^ؠT ^i pμ0H47'첕;s(Vtp Ŏ>/V19a~j'~CN&$tp5Ė/STqi* p wNW@wIU7tqsk;JZz06g;'suzѝֻV ^E8h۽ػ,'=;ٖ ȩWyXnCv3,Ɩ̺`)h_djTW[V:uxjBiOOL?"2"x;YX&{JE%Eԁ_ .B36^*c1ZArI^FK,w˯_~zHw;Ϻ>?ߎGCRSyIxnAYH\e;V9 {-_+NظyH`?_*% JN#'ޤ_9SyΘXz=O)?gTAҀ3*,ǔsY\`v&)ɊzAS:< /6D9D_Q0yI1FY-%gF%Y i+ ef] sr(`+8O P}0cv:fB\M=ݖq)C9'\RwJIE݁e예 ϵlT@u\Y2>KT W^T"\˄ڎs,+-JE_AoLQm8WR2~OlZ>MMkT1ttl?"wvXD2{COtxKКv;}!vߎ~)rDjlW/ j]$̎)E5D5 Y+*T\3O1עH3I1փQRm(πZ!7qnRNӮٴ}+3Fp&ThPz4[ku="=u0a]LtFZCH=:F&;j i^NUuZOi) %"/H1!RZ0["R t. 3*CKHu|jR@Ik{LL@ɇJl{ty'huek3 DO>(cTifİc (]\iHkӗS\ })wRUۖ,>Xo>zv) <3^+sV9a^EtMZyx_bla>ݐВPi!Ͱ9*Lxscv}! .~2sMϫٖ9Th(y~ğw*㓇 - ;Íٖr5%u3.֝vu.J$5[̃@EeN?\\]TgR)`ڌ- 2ք5 66ʎagiCvV6x5la k[uN-2DͷԥkSyw/ZH<a-,:?k,+[L=ǘ;s34)I!+wcL@ 4rAAᏱ# N)f4tT^kΕ3ӥc;?}jݟVg׿h_ d]7d*96Y22:/MYQ`MތsjgҜlDO+pb~6L-CS>Ew b9yђ~yOUѓlw{VO48?Aſ) R,Ϟ?*A-ӗd<0_0NO ۧ|RCQ!IkҺԃj4%0bL#V=*sm6(۷ A\'!wO& 0Դ @1N 5])M4}&] ,I4=Co)p.'X߬;'zWjM 7/Ÿ쉰_#`+JbT>dPVkI$Pf}GOp)#ك4g/K1#JE6fevZG/B1C{5Hh}%~@XL5LJq?%_+3~rx7P.eZن]Hku%FoC(';LшxI.#p}S%Ͽ $c\~`##R1i;JV1iHd?{a†xX2VML=y|) Q$a4A. فYG rȇIkj^cꕍxu0)"‰>gv?+ &Ѩ\asٛ$Bn$U3 e@H] $@M~A[qȣ^ /EWFx 6J+KA5YQ|qiV4 cU'*d5W/JWէ6n7hnXACh_krf%ѯI[m-uݢޏ/,?mEko4b b!X;ə0Lr-O8ӏ6u_^Ck̗F D8cNddD u v(N Ҳg9*m~Y1t{H 9f4B҅ l}5){ѣChi {u7QRb܀(g‰f}.gm}9؅ eK{:4BC xTdʕkiWcyr`0&5\í :#^97VF/LtLՉ9fSs Rs^6߰Zֳb5[g` &A !rTh!B,L nl*M 5 |酌:AyΨ~mȟژSX%*&W ut cdy<4*+_ Bx!M2M[ !X]5*B\yb@M8zW&lY ~icr~EQzuȥ3AR#t--|YEVॴwЖZcY?soϦz$ v sYw4uᮄ!q-ی+2WL~zgS2\UwLa^ׁ(]gb++*gJ)*@Jz ֜ȑo[eD)t1K@\.L`|oXc\_?'"61?^ etr $GK= RhuU}Kja͔Nh\ +im%@J0>L>g"ryre;}qMv]G%&Ӣ3LT(%q`Ihd<-Ĵn(`hnu?/ ){,74VqˡG/dl/4UVM'\E&sM<8vrp߈x Er.ek䨿~j 1M{:ɡHTjId64ƻ77vTm|,=ouŮ(I@|[Wt"L&#șGHȤ1,HWŒ|d4GIX!" S=+"qOK:Ox#2 mQb$bAV'4J4>X\Hu&Mw!sZa^M^ʨXxZ"!gQsDZeljJOs֡a0p8On3vL=p:sw%3D$߫S|TɈ}ԉ\>bxûՎ"/d$M9UT,y3ڰk!|A$G;x&גܞ/B6ee]:,eqƓ_2@W_RT`S*L* )LjrQtdWA`\]U+gai_u: $9 |ai.ݓ}x )+znc!/@/ 3m8'{[m7Cc D5Uju9 qJVMTDB:=$'QpVM@Vz4W^ g:~o#e2,~/XXu@\Q"_9=ZR>Uh5G狟zI80ȁ0zj*-*&gnM@&;o {//=**[Ge6wq xi'%mDJ!?~̖7){W DݽJ:W5Z-lɀ# 81ZY.p76GXԬJ-r=1z6OhR2PTÙ† byRQFE 4( ldZekW3CO/ʩnDn'Jb)+7OJM#hs:Acɤ"^x}aCʗzjѩ@|(0#1tnӀQatlP]O]4Be@"Q_Ո-^"ly "@ASr:f]ɍ^k n0c}PgNltwOX'icʄ%K BC\Zߥf^љaJum!AaGj7\ў.?qĵP,DD\ڒ)!wK 5?ې`Eƹ\+C"ɻ5?m|X1! Jד귩91FVpكU7hRC@Ă2"".N[mNW^a;} 9rS}3o43Bj\ l­zhŎ"/iG[.iRЏwQЩ "f" Nj[Jb@8f]rÄF#e`CĒ4F@$8k<&?$3D E`8ɚ8R"m&bt^&(WSxzM- T.vn57f`9 )4wq?&>zɶli"ƞ)حYG WH=V&c1@YsYܚ߯zڬ,>8%9\0( JgͰRjd(Ҍ>-t\ {l1L}wRW?.6',W|zGPTmP+0B'VpCCUIpbL"RMhUuPNEc!Ľ Xn!Y\ g|@YX2ng#Ud'P`߈Q+Sոr-!9s_{q~2oM|]\^}RLad;pcqPiBˉ"f(FPy qOQsgf]Jm (A"TfԞ F- ;Ѵ/o>WI،OD"V㡉;`280_( dݛΑ؍pyj; os&)BoZqw& @#=ƠT SA=!G;Kn9<3R]u޷:0xFiC= UO(8tE}9R M}ǍgM0Z;vY`&!H Ts㨣Ӎi E9ӒG{GZmp4 s߈81 ({9h3Y'݋sG-f_t-V#{gNQKܼ~FoxB;0)Eټ͸BdNgx|3h>,ȧP~QqZcj*}$f* ^ؿ&sW?P bQ-k|j1qWQk,|*[Zs$ ]õҒwdZ0*AfMaqEi''6pՏN5b}*5l/,Av t:<!`'Ŕ%?q 55ZtDÓVHtPx$B$?}O6{3A-?tvi84)#_R89qt.M_s%.̞8RNxGkxd9Aw_ƙQͺRm?[9Z\ a)GE2?,N\62yӟI*JgNn}ʇ+ladQ> f0תJ@@Qɺo $d f8rNdD)eʿk \.%/\ 2x熘F4Z3c $x _gΡq (Jd5rvS ]5>!,jx˫YTo';WAV6=m2hqXl_F_­/HzB:Xn̷)Ghn:wL5RN+T^^%Y<|' oj Ҍuo Ȍ{.n4^= j2`L]ilֶCvl8 LuBciI2ő;Y+d$y VaS0ZrP Ʉj{F>ҕZWpvyhx3ٛ ZYCG?.fy:fFP3> "Ƀu[yPb?e>5a$mz(i!nI.Z>dոqt}XCo,' tg!#uPReJkn.M~XIQ E2J:{jFSw`A%e󚤜0wG>Qg`Yd2Ґz`Qѣgq7 t+ ֋bQ#WʍߑeVn@ p@=M]OjTIy7sNrCd^e9DvVʧ@iޅTncOQ"g[g{]͐fM=2"$1<<B|x&~KNČ9W.\ ^Ȭ%fÌCeM1H]^BϦBt50'U2q1 QE5FHbs--QX 2Jzt".ʈ[y惘lSS偦6FP]lhVke&טKuDu^ ճT}M#9sIiJj`Sp߲ jO D5? 0wI&?393MAq922e6TȦ ~~`ɡ dbfu2>'#dA.( gO@fy\I|>郭ol91:.4+BP;FqɁa 8GTxj?ld [gf޳ߟ[ 2/QߴRQWMnXv<㋎S;tyU%n\]FdZtsXX#;Z"ň%rYR9ޫ -gCNch|<5/R0g{ElAM?\>| A:BO+y㸊CTGˁI0@ph-m_A6Uw48HVIYOc#P Ã(th(+c*1-)ЅvXk 9w5,z.='U&)iڍMGv ^b~Bg ㋖sP#Z0UZ<\v[LlD@k&T0 =T m)FOzxI2Mobώp̕ a;B*PxDa5(c޵1[aA?W#TՐ{y@.ǖHOlVxhkh?nZ5߿C>ܴ /6N{9F|ys_9~̤DOn]6E D:쭍%4y-[K8cXf8K_m<ӻքˬw  $!&i۷lF RN*VdeJP?\hf󯆫&j um-j ʍzRhX!Lq)8x_a*fslI:իahW ZNRiVǖo3DzmŃ9?TPaLA 1j~֘Pd`,.&-fx v"`p g3@(S۩;O"뙺Ϡf-1XOH%!~znWWXތXi0#9nb q8}lhɾNY=77ǧŹ<֥je3W ]܆}AdK]ПRorihTɫ=KQtv}ߪH&LLuگm9i=dtYSNQFGe8S`2ow]&Z+ƅ/$hR㦔%VlJؽN͟bD4ւjVkpZp_B(-ZC@lR+FgC% 'VN<@Z]6+Yk!:5W+kI] wP}m64-"7}uRT?:cQu/_۳hJ)ٸRT/]&[^q5I[ord#7g,˛*RāxX\] NÈVY|zB̽2SP}Nk{sB͵PEWqx}0c0Z&Xp]}gA&.9S1 lUG`G#j*vWxubk9* w8^Pi,ᤃʌ3FsTnl~@.jE8gU`㬢l"Rtu.t2 gnCK}ѱQT:'Y82>`sAћ(*2CG=AոNpBm퀐[1LasOn2x֍K2pź<'>SPzWO;U \*@ b4 ÆmkmwQEfϩ 8/ہ iۃ_ҩ*척^:hIjF \/mr6HWnsIJ_ۭt@3"j;a _l%b¾SH Gvs8;>=1Ifp 5"y A/RѼ>d6])6g, ^m4MaIWHw|p9 p/r DJ4q\^TY 1fH~/l$d4o_ٔ&oRjLVeHZ y%$a" !p47"AEo@yQ alL.~;JwظֽK'-J\X m<=WoO!iKǮ| z]7p,ȤeՏeDo,"6 .gdV 'qކ 8,{F)4Ad1ۈRQ ! \pVj[n *%[p㔮ZjՈ'~*66[VЀI2o_C[va%81!#v&H<&L8q1ld˿Utl5J/}͋uN)bDߝpj]~Wpx+پ486I(/Z lϸ:!}07; TFguJo?fF ~%u=r!bwNөUwK>&m R  % n_דM*AgymhberZެ}RlS@k_壊E6D:-IٙO0.PR)̒&/=/8z+ .' 2">ihsk0zOJUe B_V.CH9:&&GȐL#8 s'nM5hpᰶ/{I{B:ZN4\ WIN!_*>M*.>!iǗ?~{,M J+PgSQt$ ^6˱4qN1%AmlM^k=*MX⧄L&r&dD8WʫDz)uF@c}P@^SXlj4wZkEkǙ19 t4F "({N''nl:YhV,"?y톥Oj=ݫKS嗽i BkGsDlUFK~: 8IlRDtk' Qy lԝ@9}f"zMz~JBwʖ p G";yiף]¸îuY>lͲ:ds4X?&\mqŻM:o\?-rQ=#dy%46xU䌭iA~- $1ʭ B? P/I1!(6ע $kZJB3Ux DG}Mwkܪ,}X\6 DY(K$!A7塳9}9~ucnf?-iJ;|UsT~|u<{ϗՌ#0d0V6c'(z I3$!!_>B:Es'[tr-|ifmcVQ{q0a1q*䕌/v1u+̰3 Zd\ #,6̀;͍'_X4b"_6۝So._P:8ɒ[!}^\JZ;COIj-PR,2X^[uW]`YCbgA_tBɜo@d$8tXDd;ͻ$D\eNM,ysd(euV[ h*H˛da <3vR 6`XفD`hrLjN'y Lk7߀6̱7~:jbv- *e *t\j /Tx"{U.j#W-4AuѺk{iM7N %-x YHI/Q4n=`O&l wZi&k' )SozK\ʲC|ܟqG K͝w-P: #r HR,9( %~oYSOy!&SR cBeBsJA-LM1u_fE2Xj9As3em0I;IҐ7mSyb$޲^De]-+:[//9|&41ÿA b݈ݫPȑo2W=lgO硱 @"U.L`Lhtg)(; QffF2U+27\ai*AriI |"-4%A`zPv#ra,ouJ!~<~~@ si7j'G5$}G.l7SD {#^ D7khPG GeQ$5 Ἂt4T% q|Qٚc zꚎ rdғ4WUx͐6:°3 |BF@hshp2TD]ǁHI2Ho*[BX3$=X$a 7JHSd>륩^?Fm^߅"1J;Q9< F>'Mg|*V|oMN wWsZ`KBAz^3T2fհ@7!a e7Xj92'hzk6-raBA ֡!y 2FÚi>/]e]Y{ iDVg{FMez.H|k`+[twcf ˰/-G.VZCH "KWJV-F铯ܴ!gwϴ8uqQʭq)~ȦnD .kd;%Ot #՟/(QNIVk "pF:0>|_(!宭Vy:LօnL `ڄgct}JheXJ@=ۯD nWP^a`8 rEƮ6oXy;e%30OL\{'cq7 I?q=SBkN`,' 7XAh|/iobg<`^s}*Ie %ڸR?١or]~j0뛬"<2'f-uAeFnslZIC&wWe\O蘓c=Wy<ȷ7E+x8F0o#M]FEH45LYPC`執1s$[jV$WC[g! \Kv;BUwb8UOPԬ4c#i7Q%J-{J; LzTj+6cI$iүR 05de[xtԌ@@_꣘8&y;;lR[^Y 3q(׎4Ԋ*˓Y4dͲ/I;egP1eDˍXr[2D11Sgtf E^ѩHmK䍄׺.nget<2-2Ǩ@)eqqdƙ)ojfJ ;ῗXΜA/CWB ,OE[N:~^DFe-P "~_P4 HDae`zt5?Q|W^2.y#m_⤝fv7*E'B X{;V&MR͜QXp@"y }兔#=] `]sY4L%F}=2 oVfőd&J=<)ò-J +v/_6uDԆ :I`p`^ 9(dX ;7z eRoZ&m"^|<%x8#Xld"#$XൂȜR(@ʷSR<$G$l43BIb(nlO@u2x_-%CJYi9ģCKS[%4\1 dcV/@Xr.n>0/&~ԻUf!H1'Y.rv.b 2A(B55dIEjPWZ],cH;wR21T#i#8[W'BP 던BO[ i黂N=OQQ_ڤ(“+j9H: zAW)oΙ3i MVaP_]*r"*ni{7w 1Uċf!4dEhrү"!"{/̿y95bQ[(1U>ZALqil;_WGr_4j U>G G@c6&fհ<؈)nu:4wsO ݝ۟hof0"'uDR?aBЪ_\"Qj~2 Z+|U,3u!/yEd93i "V͹lB_ñ{#+zpE2?qѠZq3KBpfbiO 롴Ilf_c -G=rPX:T}{(+"SuNrKV^!<(nIE*6Kq3زD΂&$gfódӽ#_ b Y,ikH:SV˭&iUiYAzU4Vqc|80uG, e?Fh|¨u FؗdYW]ס}Ih^hOssdj{ ?r]P7VKra. P"+7Im~Rzo W'ˠ2qX߿yҘ/b5(ȗ4iP I-:sMNn0\K+}FimE m-}jDue&wM`z{B(,O!y-04Ecjcxųv#KΨH$FHf_ tb-%i9ƹǕ,Q(9=uYg/ʥ^De}oI\qP jdKǭNtb̭\}K#G  ('I=Od_7ΖCbenˍYÌy{I2LJ^E6tg-VX>[5'.373òoh:hgBÚcYoNi#3OpyޭqX/HA/2PN8)dfR򫅳c$Pr$lfJ9cϗ٭# "©~h[v|'[lͽq[!*`LiߢkPԞ,qϯ+ZHPФ㞙 5hiLyM\DCDn!;\Q=OY0n0>9mu 1;;D*Ҋ,hVhNG/A@P\^;"}4Q)4RLseǛcZc([ ۪WYYo'q^D($^5bt"̵m}Y8&|kk걁7_0bvܗC8|1n:iGC:l{B M;5aiw4xȱjK^ǁ ϳG{6^XJ|k͎s<(U3ō!wnH" j?I?ŋ:=fצs?lT}wc$R Uv.V4{ؼɸ>'t-Y ȭ},#QI.Pz}RTP%nUD <#OpF;[X5cPESNM\TAq|k| <uR(^byIX+]ٴL슅j %e)yeUv$*Ror笴vKUglx%@ N1KoBc rB~xHv|س9_s ':nqjJ@w4 IzU`IHr~I;'U&G%ճ$@ڳ|n4f dDOyiXWeqW9qAGo狤>( %%Y}bQ9x2a$w! ,h֠dq 8[8(MfM,K+|7Ε‡&EJӤZY!2ٴ'1V\B$ln7$Azq\ԴgbQw*Tpװb 'iHS[,Fŀ -:]9aYC>^IR-5=̴YFA@ٶ3Gk).62$ bD~DafۙZЪ"uB 6\&=!@qS"NoӤҼ"^%K2Uo?=KV1PMSJvbNftW|=`܅RJih'0Q,S9 0'i-GMDuʐ?5Y0!c_;&0?`$p Eܥ^H3]YR7-zuWD:SlZ=It-d~J'`޳O&8A:cZ_1!IdzR@ab} dҒgwvޝ9V-[ wMhTE䑥f,>ؗw]@s@MJ!v@cS'_|ܼX≦o 54H7{4= lEڃLt@Y +'_%& YzϾTEz8=pD +T#eZ![>7ܽ 1Γ~NDZ\z4<#.R{A=Zig!9WU1W-Hd~2 4@vE(r[V# (={敁Y"ܺ,ŝ_?[ˠ≝CAvs=_Noز'CgsQT}8:aBs> Tn [#-\u6_{u3nfST$U/W5;{Ʌ G2vLyO|5N8(5o4<>noFZrYFwkHr9pN^xK br!?]BI`%crc'5;zlC4em}Db-8Ѹ7h^5 {oϫ܅[jYj bX}r[J,塳W_yq&ȓtz_o*h$뗺b0偞R:ʚt?QguEU @,$JR%LӞ e謼|ЮI#;|Û=5 rÀ"H3-Sd_2rʑ>3N1GĉxHO2EX4@&е#t5QׅJD:\9f~µQ?A8K=g~Q BC9d]u0MDxl9 F*e #vv,|z?/͞zY*rl+bU Օ]UzrdrS^we)ucK o ]'qMF&2IC- IX >,A/5 !=耳|bjyme0%CQLCU. Kx;| L>[Tw?'zQYL0qbWe?Bܐr oz ÝyO-xf|B'y+[u+(uJO #yA 'I0[fo(hϦaGnRJpJar66W f)([n<|(EB U6abu:ϣ6.ūô/wn][Q y\~p3Y ZL iJE;} T+uAFR 0ȃ.A_T!ī/sT0)>eɫ*1@Ee _Z&gYT3P#%QY̢n^ oDTDфpLaL9@C\t, 1Y \%_NBk*mc*˔&e`C~{\9I ^_ N7VKxk'(5; (( +wF1F;,ZAY9%bCzc{"9!=I 2 Ė'3eR՜ yŠ9@洏҈KQx19eyG- Q㣄u_1y|\;@7:b:=<-ԯ6țz(tI:ͯM u@r~+b;2|Ηm $fQ^F$>T}WjkO.^~%rT\܁ d,koq'}7[G\閒BKT3MׅR|:E<2*G/_ptp-|4J_!*G֎0Кwjlr'uKyWϕAJ}AGLWR8- :R?RMsbYT )Wik=+1o?_G]ׂ3iCL䗳2UJsS&P#:ǦܵUFC'lg[+2T )Hgin9auwWfӅaYF!ݷ]}X9ʉ0XsHyD?'5^ovRWOHdwuqg-P7”x]׈hy8m?OW޸äk.+!WԬ4>h%r;$BEĐr'$Cli[./#b f>:09ݥϋ`gd{$?Hidm~W!R6]lX_xӄiz#:-Ӛ`{˦]lK'**p#cqJQ2ǥ*]~Mϕ .?0h7JL@M=OSUb?4S.duHj\oVA&.,]P$Ae%XmBCPQT`osG'й` |`TjNzO&U)" UVj4ޑNGh:: uB-tr#:^U#f_ w,\7J E Hő$1ŹBF-zג:00{vnLN?۟5w-ӥye 7>ELY>_XyX#TEA3a+* }UDy}Kr:y˔:dj12:py w7Wۗ{XA41:.x5 -ZOty n3_sͤu9H8ƒDW2w^)Ǖ'" $$gwYD+w797w%,^Z]EIwdͬcj}-0W]UH^)H#c:*T>J)r 2!ʰ xQ5dǝK Moh"Dd_.`O43:Ai_[.eNrt D/1,x^|([c"N\|-s f7Z#Q>qp7PmYJa'[|Bڏ2hN(;DŽ%Nj]ZM.9Hase.i"v=C|쨞9)* Ә GR@p8|[Wbm7+bG \F7u(YF 3 o. Lo`%,3Up*:؟oMc`[K X7%Æ"$>-PQ̯ʈWuƩ+dP'㺡@˳S.|]hU\x 4KvUʜСۈP+j+ͤ=JfF}LQjl(Vv%V"7 ;Wpye`ju5nڄAİW r&MLVep5\(};FlDٚR1gmpRN9ٸ}h6tz-#+0=1eBmtEv2h]a4.paB t#+_ɠzTGDO7^&Gs9ʛn rW:ƚ* |ٔB> ԾcM?bNBCђ0/qP'V(o.lڕd{j/})jզ{-h)F$ؒBP,r-dP3w46qNiLZT؁C2lsS:o۩~lyaXY 6[)?{=s\K7duu钭Z/itPr;R7X9*C&bda )g A6"bnKB94$}/lk4UG *@1Owh~$%jGD#JkS>K\/<xE.G"H/?ēNcyrnOJ~)I1qL%a*LxQHnwjFs'?% ᧺7y(lVnO+܂E>st8 Xo xg=.$ څjCtwOZh@(ڲHU U l~?ia#;ۙ%Z,ۖid (j̻r2c ' ~ՙLV+@WmUR:m)̖p#oez.Jf!CLfܓk}Grȍ]ͻwn S^cPbj1DNu*K W3RP{P3)_0rIC^E. C`p@ HR1乮KOŬqǣ!si2/4KiJPǞD:ߑK`(u Z`dx/5UjY[ͻs7#*" r9сANmRY_Qb9>b#0F/Q15| <(*#":pjvƙV}(eB]DxL!Cdg$fZHܴ֟(el6ܠywDr4nZ618ݲ-]^䉑שb`3N-DL5 ^ZhUnHFoUJ `S;HG9 Fn_7_Ә3~mO,ddƔD^0μ;6%EJ/tvph3\è<>b,_]:!vͦM ̔d/q-c! 524n*j1$}F6&*#dP0-J^?5V+>lt ?$EQj6M>0{D z!&)4ǃɏI̚j2b$оDAE j;p$$~`h_&F9`.f6P=Go8!86&aK~o)K!WJwSmeP6|ΎmD2Jn-,hϤBl-{ 1z|bsynr'#p'UR}e:&s邁 c;¯'U"+ZDk$nHq;*&mT_ *A @sWwp"˻HJ3Qbl%UQ#>i+4u Uz:'˭ PF18zQ;"кMT>$ izP 9`$mE i)@F N%DNYC#%i2&'΍WSa{7DbĭЧ Ƭ5VE+(idb-.anTߡ?jUnj+Pq[Mham>1#ت(GL*|{=Io;ly8FQ{#S2Ѫ 2Y<ɶSlB4ȐUxFтT&cyPw=u/*]SO`4ϡ N`tkDn+3?{ژcDd0CՙR.eL ]i&n0#ŎuJ 1QY(9j'(5>ko5_TShǺ 2(~h팵 @404!:sI.%Ё {*r%dq !BfLe-9ʼn]vd[۰Ljc}该8͊0cXL??h24p+8Gh˕4kW<<2sR*J⌊8-*rv]XH՜C;Xw k8|3vHC&q3'nu@DL zP;&wgT%Q('HypM C;wWgŃ9XIeAy|?'k{=q^ؚ w5_RwG҈Swd1tQuv%Ue![HNX`K#04K r[`*„>򌹳{0/]:i6ɫmD묖RSa)">!3d+a93uY&<˕NgU[CϩWq ϩЬ/ħRG0p+%8BnVbK f@w8h4pC_i)3  *UZ]=Qn3~: (~P.q vD+p_TơQECY;лYys:{WݮUdDT" n1*<9|z ՂwML0fa#Pb$a#Jۦ_)ZJs.rx֛%abi<NN(wjO8qem;_I|Ӣhطڦ4kA]d솴.sDll"/ S/a۷g: pHu|hxhgo β)M=XPne4&byRUM_* ed܍!KvpF텱heg1q ߡtF3SB#"8Yf=8U.h )t 0rYk @ƹQ[V@Ib$x^NJ;&Y9 '77blOF0%M31qTG@f)o%sBS?MzBb>I:uXdtt'N+ۇA>sc}ęY$w*Aݸ?A2Қ{eR9b [? D7U6,\tV 31,*>a̙*UEaMCMk5ԗFnmlgү@8}!Q]t:́K 7H 9yg"j,R[mrrglloQ8.!E!"vzff)Q] @J\")%ưO4pwL_u'՗ewKptß\HDfv0l4w&6ımotu [<='=gV(ݝMܰ}$){ -.:I+mU_O7HI"kqէ.ҩDxQ zw<;R 6(gffD)n3ÔZ3_бji"x*]cAq훸î~jP$`BK1XFev(HˣWw6.0;voX==VB/|ȃڷ^P vr}hTB|\G_{=yj㔥oQ24yjy掗d@C:dAC5 rȼG]1¡pۑѩXZ.EbU{%D[`K|D6~j̳)+ߒ',ɜY.gOR(zЙ[j"Op,XX v"^~$wC @ /+jǾ_3 Lg'yjUȃLä@yHA0h;aMVE|TM s'4P8E1mnGۂ I~`˻~$S"CQR7t;"}WK4x:?l8:EqiBxmn9KXѷqXZγI:be`(e_{L:xHHY7g $a€Rٯp+/?f1U]%O)4M$~&ܓrRƺxQlQe>ym<eϢzm~x3v٢^rM|4\|ZA?NL dofL ςNȯs/cuY5ShScU_Y(7B%C:/uVKt䯔s~9  ߻"eb(pkXJ? >QA+s'<$jNEZ娶=46'|zj~{~(הɻ,ZXK]}&Y}#QD!%SB3_%g"w@TIJ;%ze=J׻͗y;8]ғ0 #D߼7aӠ~e ]NmQB9nojѻ§,%iP?djYЍ)R A˗VyOkk~y~4* _l;''դ"W!JzE߲-Ѿ;+)U:&ՂH[o/X?!4!G <kd+m@ִ,?n,tt̜R KԆ\rstXf7lG:!uQ}詔 f6~j\ǠRSAp1 Zf,Ics06 Sm6ubh *LiMMSez>&~EC#mCC4́-VvD] -Xp&AN휥%װl}na9U9~hC"mAoTQahCCTEy_No*J=US}6N&zj5`cm&ŀׄ?x1$T珶g!ǩNN jP&cV`_ *,Thk\HNB^>J{V9Df~䙷lk?gы(7>Q/hH[|)t /ەel #uuqs+)1x {9j\PK=&qcnGBrW1޽$YpaR(,(_/fKm:OM xPLnTjU݃Fb0[EHO3p_ e߁#c/u"\R#}J1*=䄛Ֆʋ^a)^€מj )ӯH7Y _eu6:*=ryHVYϰT|A1OV8q۩RC`dtDo|Y@7kʜ  B΀m0$#dm}҃(t!|^JNP3DeZzQM+kEK_4 5G:qZHZ6w2ɳsӷ$,m: eDSwGGS~yGjO}q;aUdS@ot@*;=TGVPn'H$^1x~Ai4c|0k1ΩevmuSyeA 8!9YQ\}v̠|ݱ E2 'XV$:nۨd "9_Mh`7 س)k)ƞ(+&qetHrް()xZham뤡 O0JdA]Ȼ|NԏH~mZ)[g +Oñf5!S%E{Oۙ'au>qD#-"hx Q4nʌ/2&? ?Xj+>>8sxyAMygݜS(F5A&ZU%D~wۣGěT0R'hЯ'Ry*x /?P T(JE!tOmPG\ ypŎb=Ȣ))YVpJ|p@ 뀗`ٹn`U'Sȃ*hwVẙ3tq_!'ުM-R`4Ue]i"1Mq(iڿ&eP{ڃҦl+T0;qp$"sp6QHΑhjƅB 55l1|е#ʔ.~ `gP*c6gWNv~3F(~oc_]O9ow ?/vpd\I5d)^eZst&;0(=rd 3YY"@f5 HB`1ŗNYssВL65kNJNNulׅ!Wi a pB\<ҁwkcpAL~6,*QcKy!?Q gtN-m$N+ڎln){SBA߱ސCݤT9e/aEjȌ9UKħ~]e_˂Jχ"[$j^4?mq \6j2@:+p)Pcf7t5aS{Io<.(]g c J2,9euƅbV wDG2 1$)4~fq<:b{9̸Hߺ+43R/SUV Gܧty}^ vRв{(cJ)9bK@+̚!ݮ*b*;Q#{F̮Hϧ MuY$NuPNYgզke<@;Z2?r/qQU= hE|h ]\mD5xVV@T3ݴv޴Oux3Y+÷_6?)qD3wBFfL3]f54ǀD'h˽ȸκII`g͠8 |IvD|hVxb"#Pֶq}WF-Ўt2c|w8Z 8oa'*hӶ1p qdk3m͡l!9V5^;U߮%WK:ӴMC !chc2^ˏ[>hWd:15ǥ^p]i@dǘmOAUП&\UEbro: lArRS hx($ePP7}çee , `aƗ&> TXPϳ4*'ujЇpx^(p9"wS>&bE~rAZAl[b~?z^ kmjWGTH|w7dzK.y*+UH,7Jس,Lq6+X?`>m>,2Uh>2r{/fcw(si6u7S0cᶧ0'5&:I+:uq%|GI]  S<@kLbWVvdբ/.I T*ДO"(|)GK>+|kB:s#-}l UU[2A33T'UӉMSO77TfHђ)?-ے ,DZnuOY͚f)e51Rr?̧#2<Ɖ<aUPA7jTn}>:k9K4VD iD2ⶳ; #Unh ØH{xc@]*HQ_}AaSoxq1*|է#CG6/"MQ&ba`Pyc2SEs-ZT%[ӀӺ+1Ceuwoťne+܈p$1ܸϱ|"ʯbVqn)j"ff]m\9O)&Z'61Iٝ27Zϑ3 >r\#-տoz҇r~Z`Tj!gK"EqmZtl_C>6ЊXh_AZT˯s9I4OV|X.EzM}pЏL/jtG":)Pʛ`2Վ;^zj]S]7Rwg7k'K X_XT-0=ԅ)+up/1hۼΫV9P=Esڋ3g$w%'ф$}p=KaHEV`iUCc,Iϒ+Vw &gRtLo`#ىl}*fm 'W-@$fYd\PUJƣϝ~A<s'lu=~c40F;fm[{B7.FKhGMmrX`56zJV)bR\DQ͠'}G/lT Eʿ<$[/}T1ѵT[‡߻x~OUC#ntx^.e8 0ZQKJlb;p[S\8UJ@"N`wu;nMX?3P4ZcdX\-I Oh>g AJ!)>D} H-2LF 0X4GBg2wz'~%wlttw"~1G9Hͤ /J܆̙,qPݒ[ Z J_m/)o S^gx:NmM~6zn˞Fͯ&Ȭ2?fhqEE<*-s<_|Ce"}&j~!zu:FQWs46ѷ R#lcP}qP"鰐^RbW N2ImD&sON13E+J#BծnbZ84 EGvȕUcIvK*jgrVىA N5%;e6S%+5>QV}.4][Z`l()kA.imCp࠹>D[ׄ b0G<;QQkĀ(F)D[xZF=ncqeu}Z GS<deu (pj&Nٴ}o%SK*SH "kq?4Mw~*_% z&CD5ÿ {y<1 gTѶe ISKw N2BPBe+w\m_\ l#Ynz4c~qKÿr/{xɠgPW;%M2-ZDaIZ-DĔҜy# 0n-PXL $Uy=Rne.X E8У{eD٩?s%e"= fRYΥTiޝ?Q:觏+U^8,*=?cn~dӋ֔Q&^rŷ7vbM-a&xIaEMc #NTg3f8)4_:@S=Cr([ѾoO|vNu-8[ ANҟv2RK ^kv߫HNh*Ɋ ٻ!"vV@"j[|[ ]Lfoz?%2ob6vK'ǯ "8C*C\Sz_tZam<ñ!['x(3QPs$o]qPi9S$d _\Zzqx(35uFݠ@(]KɕDS xGNrC'0aLk&~IavCatL zfYu#܃f |?X4Lpjҿq7-SG+CsO&5h.?Q m.(.ɶ _-[/n2:)֡tyQ, dVeAmp`>&A_^Lć3kVx^ T'*v33JyO2.t0ߏZ;uK@l _=p1E$ЛD72ݾQmͱԨ♣z(J#ȿ[7R~) ulz6G!&~YAY?O!!k+F6Ŧ3O//2f'v ꟝рRyy).QrlzM4 ƀNp:0J2G&h1, Ir(-*/4h}/"1© HLr/ 'ʚo|VN'? xx`w2Dm+NHx e6tj [Tӽ +`1 gŒʗ-n)bP|%9m֊\ td7.9".}t*6pA͢U\x <(RF)ˎg7 A L[roCɀg. m GIT~oQ BizNJތ 2-N`ψ~7,R߻yxמ! 5+#Auc8 `{TsڿO=BApyN$Lm^r¿xzlGor޲%jVFѠ䇽4k|g7Li.W&DdU+}C++U%2#<#YPXKZ8wŌL=2~#N;Z1 ?%ɨ_Ga ZsVc+(= /9xJOJͼ+mˀ(/BY6r & <(#/PrC8&W_FҸ'zیJ׀n#fUjk^~>Oa6+6|2sN\+Fc\%R) etsdsOSxv݅= Fќ-/s|OR.V)+_+*'^6ޭFmPbȰA X-N⧡BrWfbRBz=iSuaU\f_}VJuvZ3o܆xhozeɢmϑŜG4lwV/ߒ5ZUM Cyd>PJV(5ZI<RP~zl7LAjqdoTvE562[(/ ~PUMJ4T i9 KŊ#F,FY!m+Xڲ2vuY :-Q=t ]#`䥭 @m3[+#KP0"A܁;:-ՌdN@??.L wO6ήH#uPY7D>lf_ך?֮{1>L$xa88i\H{y?;gDŚ1 fsݼ-}ŭ@Ē@N:u^E=]<ϥkMTVh_h$W/,ӯw߷!B/!ޮ@%AuvpBD_"g8q)MӓoqkH3+`zƅoTIVq8G cϷ }d 8OB/ޙ_T[ux]WWwDNˮs)õ-<C-έ3 {H~r/٪4DnN"ӳ/Fv*-کful"io| *ΗWRd9)wy= LTmoXLm%uF%b6D>Rt^OM*dТ}qK135 dWlL%Xű]\%\h/rX.^*״?pʉQzQ@7l7r@}76Inn*;jsm_ڭF9Q* YvYB$X8rrL$=FB4M\bR6XNVarEBL\dՏaHR:^$QErC;1' jt V;I۴GleC` @rkA*uZ =SbgtץCz.Ojf(ˉaz'O]!v F5'f=3 bed-! n6^mR{cEfP^yI9e#*hݒy2+q?8f(D&{Ȁ+:R.Gx$+oJ.](7蒈S#XoÑDぞ%?ec ^9smi<]Q6 mHYlFbHI aIܙ%]XR lQҒIJ3uyu#;I{bdyT)iyF#(PA]o&S fRHyOɚ'\''H'<ݟQingʕ-ۚE1JehQb@h<IA=@/&7&ߜ z{1G݄FƷFBuXshk h@e`b0VL|f DQDˣ)tuR/x E5|+@f1:7RJ!A<,ۘV'BFY.-'Vѩb# P-ge>R/()1RRM/9*7GYH3SOSEŘx0znTF3'e y~k>:LAmQ49靖/^ U-]5"_d g'ML]3~ a{e9_Z^YX)Հx/PdlM^N$-OI˸jڳτ/0!)VR"hYKhx>)![0or 9O1%P^0kP#_0^Yo<_E BU(FLԆå)$&ͻ]ؒ^턿4}#,=G72%B΃S56bl@z5PnLzUVEk} {nO@Q5l/zCj~j Um #I<5Yiʥ Wk=-{ސƁ/faq86R+5t1c~gX=C.y'ټv[o޳I\Qڀ-2m-_?M|O zV͠$ŸV\(odMw|;wH^ƵJY~[ʊǐ{eUƯ߄L_$DukR1xH~ c.e&rE=mX~ #t<2/~3 ϯ G*ae6<gCli>7LmVY[^r³ŹޭFѬfk  fDqs%^#57'N"ܝaҍ%_yYפ|S<<ҩ8(zmXc2g. PoۨxBR?XJՀSBZEx켠2퍳I5[xݿ_SE$$r[qW`Ɂgh2Z<=~̘u Cs`2 F ISbN1/e;ҙ&*E-*iϰȊݹN$E4vzPcd㽂[T?Y$r:-`s|U20y#m Sѷdq](;b  s]`w-Ă}<7 y@&Nc`DB@ne-фfſqmC1&9H$ShwfH# Ԩ6r4[ǝ@s+·(&tGhvC6RZSD0yy YC˪8I> s3Ȩ4Xg!G*%>h~k _݇d-*k>E=(Wg?e;H;o-q\,{,qlpڏvͿQ%攜Z&E}[0`,& el !w&t<=YBTgyl @-li!7f$0a@0(Ȓ.˲\eZ @> Ba^+ Y)Ex?K#>DQ[WYt4|\+:0GMS-q{L,6fx+g$4MFO~ԡL{ !ILiXGT޸r%X 0A &rF%GӉ`Yn`P@-pܖiGi7Wc;26>F#"[.NMoʚwKɗm@J 3938,wLL)jCw cMG"f[9%$0Hr=٢.-ŏn2va%UVJ`SS=DDbXz5VlqT<A|_"tr5ԡc04'ZT@囸4y7Eu':řL_.M\n9?HaбU YG|睚4?";aT?&V1eĐtWwٮ;'2:jbhkr}pT9{Ƴm4<5%1s'^^kI3]IN>@~/ݠ#-sx>u"GӖY7GG.ca_ [8$H} /0~XDK~*! iVغz/ #ClW}ϓe Rq8})TT;絫;Z aHXNX)3I4[91elLW>8LyV(m`Հ:GF("{Blݵ (*^Ra*2^~"Qtc $dg\k)ۻ:Za~UH#ؚEj_k*֏:[# cȢ@J';{䋩՜4b$:t8ZGnΑf_/.ƳӳѕDmΑ+vzgHe!ep|(+Ԕ]h# -ԙOUZ0ݽ3JD }-ba[TWL ]щ3A<OtqǦϓ ױr*W>6頨PsAmC?8R t ꘐ?b^HwxDi?ӕ`%ŢA.wo5jwq `D\n |GVln= h\dpIu<"`RSD,L8hR9ZjO#<ݥ =}y,wm&K>h_Wz&-̰R-0ň{7  u̖^J}Pw { #إǒ>}VtTjoIə9s5(L ?&  ĘZ(a d'bJ0m?Y2U^#>[jwRG; 1K,vRV y4Mi{ȪyyyNs3ǥ=x>1,GWsMo>c80F7~:nc3\=$+|ަ JB ocv[OSW!Z^o߻H_>CMgU܇l16ԥ$)fl49AhA-( qrW9%MzV@Mf'@:My-3G5OX{HD񷒞0*0H;吪1w X;;93J)t|U6{r9KSYz5G~jq6OH t䄼9$& RCz[IjD[g@;ac5;^, XBрqo| |h8cDSl [+6N$,}$ŔMxqm 9Jae@4QnJ3l(i^%yY~| Sj55 RÿL[6v?YjږϢZ驱XZrޱx9{Xf:#Ӷ: Ϊn{O0&&۵!I\\Pe?0 &^-1&جUt)0n0eq%v@A̵Alӡ& UY֬3VrID$0k=xʪ;F#>0q~PCN!h?.46ooU7V5[ژΊ"KQaӲQfIP83P| l^=:ֺ̎^:8 jWy-G_ˍC>J{aWE olܰ.)htJe$cƲ: A~7 RAvp+@MMg(@ilw_9c1T 8vrHLib "[ 5՘DJX)%M0zO {y?oN%9z󉼄.12 c kKK5/K!i?9|eS+TaDN?p{n 3hp!c}[(#e~_vQUPWB;_(,@ZUlMr Y?kQ4x#$-]qϡ7mB?;x=_0Azޮye,9Sn(抟o唉W8NQul,`Y.X 37^5TՃԽEDX "IF;տp,0.Iu%ȭ[r4|tuEnIÄG1I@!)Q%l*N O:u߯:+8 # !M L)gi^C_QEZ i_KK/KѼ/IS42%{3Ch<|աmc{21oRN8.;4hEOE8}mxp. GЫc t=?ʃ,I6chs٭s|IG S]DVu̝M4Jr? "7:Y9rҮk.mެi)y8͞3 fFpc'݌I\X{.=9>^<~w#>"σ0ѐ̡X%؍$ηVla#'2{D_۫lmnku {tCEh#8W6N.-M Cl?1 A&❅y9Iӈ(嬟%6[Y $]ldkId1):\/KLre`\v6Jxkҡe5D "L|^ G%ђ"Ѐ:eBwU4cӂ)h ,pcWf~:E81l6zz^Gt_\.zm #P\,F k{+Y!Ǣ q,Tó,JR4"LXe򎕬z'/b. 9ϋF]Hzi&_~Ef4!oLMY}zפ&E&Ur+f8dց)|Jd\5}&G&ݧ~p,c.9!s P $ȄhnơxLY9DŠP%4 1^8Y jcՠ܃ʽaԙYFFNbbhLӞ3_eP">k<Yp]t8p^ Fó8ѿ?V[r_#ɜ_Ե9}vR/!T$/yي\~5r6u{*9-<Q"/sk@rg;4>׼tĄK^UgE"{uW7Uw SyV6u@k+~w AOî6l'rӻڹu(F—ۡQuΏ x/:IW(RQkZU>߃fJLH 7{w֮9VȜrEq X>,m+?/01K<+FPv YԄ-bKuoM%8<,&N(Gs#bk-CXb=Hᪧ]6F,ޢjaef[ORN9 xWIXa* cE)JJ$2LL-wtB!n(δw} +aM ҋVrdwShe*ssJc܄ }a}׭]W`wZntaf*rl\fx;dc$~ufYV h,Y^[Z_*,Gt 55LB*gzI!e+4Dq7B 1Jrx1E ^ie@F$vkl*T1:šFu_@8_YY?f6C9w˺os`_EMYT{{+kK& U4`{Q8a ]3 0:J#𐆟S&bVEyPJcMz*IWQjf*"zNࡗ468OYUln?J#e7s4+WAX>_4_{&}jX4'X%Uo+/9B܍ MODJ~v/y~^aS%7SC4~0~rvaA)Ӂ=Ds,BB`rJyrpUMc^v/uxgx`ۡlc39mSblZ0|!ʞWz1 H Nr-W1ĽQȦz%I@ͿֳN2XHLDj`' `S2l08$OuXYNOjR0v:\ J7kmyFy"+d1qcQ@\hx}u dwʡzꇽg^¤DJ Z[=Vt`b#b5)xM4 B7T&ta WI6MZbɻRtޑ}F_D H7Ɵ($"V~pK_D]!4rǥQ:heQB7uX KP4P~NTg+4BT:&79OŒW X<}&yr(fcGfؒWYHDARp@$PП9R)Um=w$>ϋc`1?mR2W|%ɲQv(I5D_?.=DPLe ۚrzک!]dP_Ylo O&J(31֪T6=#PmAo?Cqz;eдYGI *g8AT@$v% Ǩvff>{S`mV'1z7{g ?QB8e?Kr{c.4u,`]Kqw߃Tm+?,yUy% \ b@xym}(&E`/I.M/ !9#x UXbhso:%q@-)-,7X&OR%ce~^ẓr- q"#s*:?t5I||Vw{TfED~(Vi'y VpɕFv аלga΅NiƞpZ Gg >1: *RkN9n4|7 (P˧PȻ!K&/Qa *A`6<-CԍH-Y=ynɧRnm~oC>>靨 =/ʳJR[F>rMZ-ҳX6.]>;lgGþm`NRM(;s64)^V=OhX]U4g62$JVLK-SP|sO^XOϕ+S3ٸ4꾐3+jHTZ:7ޏ6VX՘-ВX1AMEsd-]Fnm(jGG"y j;d h 8~,/3 {Pa4uZP_=;'!QSLd琞lUI:/`Ty;'g%G +D,ᇋ0_jZ00$#'A%$6dS>v 䣬R;vd b5Ω:ߐ+z :Ys]`j "!#SDm]1yBʟJ=5qEXxW#kv>j7"|'\ t(c 3ST66Vsh*u{j_Y6 Ꜫ.[dZ kEcmvUrH;p^P)4Y.]CuFws 3&YS^z.ܤoI. +Rȭ#9xv;e| st "2mVn5FEffV剻XƑ:_hN5qUwod=k}l7_td*pn}|wڐ;Z? j:G+>-6e{%𫅨gŠC+@hU׃v^lP#{qtn=P78rzXKi }̷bW;@uH]'3X׵UM=-{gQK~E|p{Ybn( ngt eԖ$̤;F'8]5CH )o(1&F=u7IUA[*@Fz`cM*l 0mB4p6ӽoSXB8y%ՓNq@?2_6:j B$X w^cʹq,㯸Ok {QcoAQ 40&nȩQz]G$Ce/ (@,(#K\'^ʗ *=xUR6ðT~fmuL"U@"sօ *5.! 2>h0E hkx+/?[pih;YX9Gi<.lJ ٗIq,UK8~ϕeF7W#ӺG'kd`C%9)9 67;#Z9 Y15=J؉U`&CmʬGN1^*81ߑdF]V, &W3~l`(܊wB|`oA^;x˻¦ oh;HלP`5)J(R_güӦi% L39or%&M.T$. }f{(e]_`3ݓFs]uv.lhԐ;eBeN*4㡬xL& j|CQlюR!G)|w["aFXi\B7&3s F`~ٿ&(nBϢ54!YĔH1U FHAz (_R9dGY0"G`ߝ,&1RrPqw,CX雇AM_7 3eSaf<-:路jo ^}ڌݮ PNӈ5Q;\(lcx7_2;omek[ϡ#=pG10}\ћA3FPCnMia?]LvW'䳎%*t"ƌI45J--8K.Zbu] X^Po ?"%,ITzpM"B0 FYtkM!tdO-:wg2YrK9cV#`_~梌%ȟ˯÷Yﲐ׫! ?|  <2z-N}cszA./\ęϖ8+Z;aСSoF`S dn'5#) 8?wP U=Jf>'P:M'= 6<5ZaZ\sPQ 0hfeLA ucudu}s:j63mPK z8 33VMu &)<(Ouss %v$O#rg&-Cf hxW?L DpP'V=mVwR;g#U$[< 2-qN\ݿCpdkhEJ=x솤e_ofKFQt Cڌ1;Fص0D&n^:WM6"jhH7\9Wv*\֐1'V[b8K|VB0tkTv۸ɲIߢsj[Zk;R52b\H}RA"+U;=A Tl78 \y^ur!˅p\Tw4(s7/ Ww{sWS `>ϔ_gQ[g{.n1رI7W낍{POH~.v)Vpw=9Iq F E+k p-!fظa'e`Tc=?f@?+Fajo\A*z_# +Ț=iAB͹R*oH%꒥a"%#'b#>]3f*U-`"o"ᭋڤLL8 YddX- am,΁9p4EpP+ UbG#,GΣk 2n$w)"B%Yst g%懳OVęms$EXъJ*j䒚!ZF{7W"_'ZQV$5󾛂7tNC46 6˺F18{hkJ,1F s.8Q2NLs9[ H#':O3@8Dd6%58akc"8~­ɢ/{d^N-,t)'VSS#Z?aM|KOm;|i-&b=Ozo323.r?*US]4GVD yX]DDIȓ`#vӗVTEsM $4{p76L۲,"kû.p#Obv_rZQڃn/-]V ^ LJnT7iq1TA嶶I@;E +V[-i&+Wn -ڞT*W,<ֈ>Àb$9ć4 Ktf ^CbZSE9K}UƋ%Q !CO?ix[Az )DfyS\iF8 djD׾8Ev9@#zXs aU .>,7EYN0;IJO*iBTu0.R7fcaNrɕfOǖn?LܬŢJz/IUk:9fT 28Op#@e3 _銞O`]UQ@D9zxqP-#Jڱpz&SE<}oSҟ/"ٺ| ODp+'` dsn'D U_08gT#\:7222 g`0CgL<ԎBkHM7 x sH3ө/ ZɦJ$Bz5rdsyspd.#{`CUVWv`/ݷDW | Ľ fn-fnA ßĬXGM[8(t-vvI9T!Dۂ %tE*Қo++B&teMF Afil`ɿ"K^|EԎl1.#H2{s$R[x*S _uTP6O1ubO(f@N_#>'8)18܈G(C-Oy'f> HEk2_ +|BqK3Ҕ`f!gh,C_+&yG2H`' @2Hd(YUUXJ@{#a6f E{=C߄B Z jeCv!NZS3)ͫv6kMWf8(w՚ND`ڧQ=U´8.MXH=ĿvXnr婤{U3a0|Pe>xk3E!2_dDu^@ ;<ٸLŎOfR 1O.i`y֋Q{{Q9}}H:2$jLlSIm 8N{P|[q73`G51PV9rhsj_Fǥ}+,cv؆َܲR (TTy$ڤV3)gdиxmLW)L! Kn#]`{Π<4j7\c '_ˈQdNzCHs #@NNKs{C%@Un B#ŭJ<^"i2*frdvAdN0ȼ̐T3) zb$`vϖ6*6VU!:gݤ =R|}/ -?V`S(B]BJn0bU% W3|)> pi4zVֽlMğx{cx}(f9~l1;gj=/B`ےVYxu/Fi}I )!1MڊWrooaY蜺*rj` xיt>aU-,&N!pԀI=9ze-܋a(-k& j_ՇR[0}b3 lCTwUK~Aն a*x.2c$r.@`迎88S A)Y˸k7crKٖ嬈;~*g};Zѓ f$@_u!)a=3A’ɖ3EaCHm>0.ԾQx*Nj'~fUzp+厊)=x\kS2ul+|i:SFRzY" Z,?Sҗ(<]VH#$1EcDՒZ)p`7;~C$4y\]B *ZP RW~.40lfS\s$ԅ}jw<[s_ިԧ;`X 8 Ylyhx?[{˔/+V6ңW(jMDW, VE4!MzW@튭_o_dCLmooDdoS1䓼jFQ2ݦQ=$lo̝Y#f-}X!#=R%@(~z!V.RrYrRRR5fTB]:G < f kؾyGCRj'zQ^>ħUevV~VUl`1lq2gI 4La,F'nG E1׏Q>ј~FP;q/H eG~g)/D,0ĭ/l2c?jxJ~fNHKbIcb.%ȳ%:l\)x,=n LF]9JU h.-[:;u!řrqb'-U.H qg79HNZJmU95s2h' Ssq7bR>sHuZ9|\~>vhIQDͥ;bXM Fl4CEM Vw!(Z\4_Z${sNG=?a)drpses'׭hQGqR:f/H)%/v FJ$k^ gKeQ l@*ٶ}2b|jk\F*٘oy_F)U<֏@'8,h:8+v'T {ley=#*߸UK^:y8,-y v]6 ? {&'w3sauO$C? !|Z1I8|Jk!B%c]7ڥqWͭ ' #mR*@en0N_I V| W@ɯ9\# pRvWޗSvS: %x+Z–3 ,J(3<YqԺ{uՕ!rر*[$[UTLKLϡU#baX7\c2Pה&5EݼbF[xIz4i;,*`6ln ?Y]նwt6\]%>4$`́?K/'A|'^~MQoI*_H*ޒ0Vu+`+NOďe/`:4' )d0Ep,A7n zmiKzOyX&kscLMQK5u:ǩ jgb@9ZHbxh|'Ӭ:=[UACxO=pƙ۬ϣ !:/:B\`7޼8˅OhzaX3eV5+,qH?t"LIep$4G*r߉G=42T;dwq0Ra-=K7\&WǕ -]qKcf ,}kc,Ae.>U$P46wm"AҡUW ms#P$3\}Oo3{A2U|]FN43s6̚o-l{6}UTI){҄‹d+@,B (}i*6>jZpmu u`KHn05`Q˷efhU8NPRՁةH^aSj|%sDý ׯV9;Sb2.LU!7 w EFXB1=CҋM;%]·Okx(oQ