Repository: EthanSK/Menu-Bar-Dock Branch: master Commit: ff07311aa505 Files: 46 Total size: 577.6 KB Directory structure: gitextract_7cny6vu1/ ├── .gitignore ├── .swiftlint.yml ├── CNAME ├── Launcher/ │ ├── AppDelegateLauncher.swift │ ├── Assets.xcassets/ │ │ ├── AppIcon.appiconset/ │ │ │ └── Contents.json │ │ └── Contents.json │ ├── Base.lproj/ │ │ └── Main.storyboard │ ├── Info.plist │ └── Launcher.entitlements ├── Menu Bar Dock.xcodeproj/ │ └── project.pbxproj ├── Menu Bar Dock.xcworkspace/ │ ├── contents.xcworkspacedata │ └── xcshareddata/ │ └── IDEWorkspaceChecks.plist ├── MenuBarDock/ │ ├── AboutViewController.swift │ ├── AppDelegate.swift │ ├── AppTracker.swift │ ├── AppsTablePreferencesViewController.swift │ ├── Assets.xcassets/ │ │ ├── AppIcon.appiconset/ │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── ETGgames.imageset/ │ │ │ └── Contents.json │ │ └── ETGgamesCircle.imageset/ │ │ └── Contents.json │ ├── Base.lproj/ │ │ └── Main.storyboard │ ├── Constants.swift │ ├── Info.plist │ ├── InfoViewController.swift │ ├── MenuBarDock.entitlements │ ├── MenuBarItem.swift │ ├── MenuBarItems.swift │ ├── OpenableApp.swift │ ├── OpenableApps.swift │ ├── PreferencesViewController.swift │ ├── RegularApp.swift │ ├── RegularApps.swift │ ├── RunningApp.swift │ ├── RunningApps.swift │ ├── UserPrefs.swift │ └── Utils.swift ├── MenuBarDockTests/ │ ├── Info.plist │ └── MenuBarDockTests.swift ├── MenuBarDockUITests/ │ ├── Info.plist │ └── MenuBarDockUITests.swift ├── Podfile ├── README.md ├── _config.yml ├── assets/ │ ├── DownloadButton.psd │ └── logo.ai └── setup.sh ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitignore ================================================ # Xcode # # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore ## User settings xcuserdata/ ## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) *.xcscmblueprint *.xccheckout ## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) build/ DerivedData/ *.moved-aside *.pbxuser !default.pbxuser *.mode1v3 !default.mode1v3 *.mode2v3 !default.mode2v3 *.perspectivev3 !default.perspectivev3 ## Obj-C/Swift specific *.hmap ## App packaging *.ipa *.dSYM.zip *.dSYM ## Playgrounds timeline.xctimeline playground.xcworkspace # Swift Package Manager # # Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. # Packages/ # Package.pins # Package.resolved # *.xcodeproj # # Xcode automatically generates this directory with a .xcworkspacedata file and xcuserdata # hence it is not needed unless you have added a package configuration file to your project # .swiftpm .build/ # CocoaPods # # We recommend against adding the Pods directory to your .gitignore. However # you should judge for yourself, the pros and cons are mentioned at: # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control # Pods/ # # Add this line if you want to avoid checking in source code from the Xcode workspace # *.xcworkspace # Carthage # # Add this line if you want to avoid checking in source code from Carthage dependencies. # Carthage/Checkouts Carthage/Build/ # Accio dependency management Dependencies/ .accio/ # fastlane # # It is recommended to not store the screenshots in the git repo. # Instead, use fastlane to re-generate the screenshots whenever they are needed. # For more information about the recommended setup visit: # https://docs.fastlane.tools/best-practices/source-control/#source-control fastlane/report.xml fastlane/Preview.html fastlane/screenshots/**/*.png fastlane/test_output # Code Injection # # After new code Injection tools there's a generated folder /iOSInjectionProject # https://github.com/johnno1962/injectionforxcode iOSInjectionProject/ ## Gcc Patch /*.gcno ### Xcode Patch ### *.xcodeproj/* !*.xcodeproj/project.pbxproj !*.xcodeproj/xcshareddata/ !*.xcworkspace/contents.xcworkspacedata **/xcshareddata/WorkspaceSettings.xcsettings ### macOS ### # General .DS_Store .AppleDouble .LSOverride ## Storing some api keys and stuff that you don't want to be uploaded on Github Secrets.swift # Icon must end with two \r Icon # Thumbnails ._* # Files that might appear in the root of a volume .DocumentRevisions-V100 .fseventsd .Spotlight-V100 .TemporaryItems .Trashes .VolumeIcon.icns .com.apple.timemachine.donotpresent # Directories potentially created on remote AFP share .AppleDB .AppleDesktop Network Trash Folder Temporary Items .apdisk ================================================ FILE: .swiftlint.yml ================================================ line_length: 420 disabled_rules: - redundant_string_enum_value - identifier_name - cyclomatic_complexity ================================================ FILE: CNAME ================================================ www.menubardock.com ================================================ FILE: Launcher/AppDelegateLauncher.swift ================================================ // // AppDelegate.swift // Launcher // // Created by Ethan Sarif-Kattan on 04/03/2019. // Copyright © 2019 Ethan Sarif-Kattan. All rights reserved. // import Cocoa extension Notification.Name { static let killLauncher = Notification.Name("killLauncher") } @NSApplicationMain class AppDelegateLauncher: NSObject { @objc func terminate() { NSApp.terminate(nil) // off for testing } } extension AppDelegateLauncher: NSApplicationDelegate { func applicationDidFinishLaunching(_ aNotification: Notification) { let mainAppIdentifier = "com.ethansk.MenuBarDock" let runningApps = NSWorkspace.shared.runningApplications let isRunning = !runningApps.filter { $0.bundleIdentifier == mainAppIdentifier }.isEmpty if !isRunning { DistributedNotificationCenter.default().addObserver(self, selector: #selector(self.terminate), name: .killLauncher, object: mainAppIdentifier) let path = Bundle.main.bundlePath as NSString var components = path.pathComponents components.removeLast() components.removeLast() components.removeLast() components.removeLast() // launche the .app, not the binary // components.append("MacOS") // components.append("Menu Bar Dock") //main app name let newPath = NSString.path(withComponents: components) let url = URL(fileURLWithPath: newPath) // Launch the main app if #available(macOS 10.15, *) { NSWorkspace.shared.openApplication(at: url, configuration: NSWorkspace.OpenConfiguration()) { (_, error) in if let error = error { print("Failed to launch app: \(error)") } else { print("Successfully launched app") } // Terminate the helper app self.terminate() } } else { NSWorkspace.shared.launchApplication(newPath) self.terminate() } } else { self.terminate() } } } ================================================ FILE: Launcher/Assets.xcassets/AppIcon.appiconset/Contents.json ================================================ { "images" : [ { "idiom" : "mac", "size" : "16x16", "scale" : "1x" }, { "idiom" : "mac", "size" : "16x16", "scale" : "2x" }, { "idiom" : "mac", "size" : "32x32", "scale" : "1x" }, { "idiom" : "mac", "size" : "32x32", "scale" : "2x" }, { "idiom" : "mac", "size" : "128x128", "scale" : "1x" }, { "idiom" : "mac", "size" : "128x128", "scale" : "2x" }, { "idiom" : "mac", "size" : "256x256", "scale" : "1x" }, { "idiom" : "mac", "size" : "256x256", "scale" : "2x" }, { "idiom" : "mac", "size" : "512x512", "scale" : "1x" }, { "idiom" : "mac", "size" : "512x512", "scale" : "2x" } ], "info" : { "version" : 1, "author" : "xcode" } } ================================================ FILE: Launcher/Assets.xcassets/Contents.json ================================================ { "info" : { "version" : 1, "author" : "xcode" } } ================================================ FILE: Launcher/Base.lproj/Main.storyboard ================================================ Default Left to Right Right to Left Default Left to Right Right to Left ================================================ FILE: Launcher/Info.plist ================================================ CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIconFile CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName $(PRODUCT_NAME) CFBundlePackageType APPL CFBundleShortVersionString 1.0 CFBundleVersion 1 LSBackgroundOnly LSMinimumSystemVersion $(MACOSX_DEPLOYMENT_TARGET) NSHumanReadableCopyright Copyright © 2019 Ethan Sarif-Kattan. All rights reserved. NSMainStoryboardFile Main NSPrincipalClass NSApplication ================================================ FILE: Launcher/Launcher.entitlements ================================================ com.apple.security.app-sandbox com.apple.security.files.user-selected.read-only ================================================ FILE: Menu Bar Dock.xcodeproj/project.pbxproj ================================================ // !$*UTF8*$! { archiveVersion = 1; classes = { }; objectVersion = 54; objects = { /* Begin PBXBuildFile section */ 01DC8CAE270F9515FE1B0FAC /* Pods_Menu_Bar_Dock.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4E25AD7108669ADAF8C59B09 /* Pods_Menu_Bar_Dock.framework */; }; 3821D96E222DAB1800D69BD1 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3821D96D222DAB1700D69BD1 /* Cocoa.framework */; }; 38412F00222B3E2F00D3FA0C /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38412EFF222B3E2F00D3FA0C /* AppDelegate.swift */; }; 38412F02222B3E2F00D3FA0C /* PreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38412F01222B3E2F00D3FA0C /* PreferencesViewController.swift */; }; 38412F04222B3E3000D3FA0C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 38412F03222B3E3000D3FA0C /* Assets.xcassets */; }; 38412F07222B3E3000D3FA0C /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 38412F05222B3E3000D3FA0C /* Main.storyboard */; }; 38412F13222B3E3000D3FA0C /* MenuBarDockTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38412F12222B3E3000D3FA0C /* MenuBarDockTests.swift */; }; 38412F1E222B3E3000D3FA0C /* MenuBarDockUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38412F1D222B3E3000D3FA0C /* MenuBarDockUITests.swift */; }; 38412F30222B715400D3FA0C /* UserPrefs.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38412F2F222B715400D3FA0C /* UserPrefs.swift */; }; 38412F32222B722100D3FA0C /* Constants.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38412F31222B722100D3FA0C /* Constants.swift */; }; 384318F82624A36A00A6B6A0 /* RunningApps.swift in Sources */ = {isa = PBXBuildFile; fileRef = 384318F72624A36A00A6B6A0 /* RunningApps.swift */; }; 384319022624BAB800A6B6A0 /* RegularApps.swift in Sources */ = {isa = PBXBuildFile; fileRef = 384319012624BAB800A6B6A0 /* RegularApps.swift */; }; 384319152626487200A6B6A0 /* RunningApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 384319142626487200A6B6A0 /* RunningApp.swift */; }; 3843191B2626487E00A6B6A0 /* RegularApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3843191A2626487E00A6B6A0 /* RegularApp.swift */; }; 3843194426267FC100A6B6A0 /* AppsTablePreferencesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3843194326267FC100A6B6A0 /* AppsTablePreferencesViewController.swift */; }; 384319582628BD7800A6B6A0 /* AppTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 384319572628BD7800A6B6A0 /* AppTracker.swift */; }; 384319632628EC8700A6B6A0 /* AboutViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 384319612628EC8700A6B6A0 /* AboutViewController.swift */; }; 38431992262911C900A6B6A0 /* InfoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38431990262911C900A6B6A0 /* InfoViewController.swift */; }; 384CBEA526226333000B08FC /* MenuBarItems.swift in Sources */ = {isa = PBXBuildFile; fileRef = 384CBEA426226333000B08FC /* MenuBarItems.swift */; }; 384CBEAB26226677000B08FC /* MenuBarItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 384CBEAA26226677000B08FC /* MenuBarItem.swift */; }; 384CBEB926227329000B08FC /* OpenableApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 384CBEB826227329000B08FC /* OpenableApp.swift */; }; 384CBEBF262276A9000B08FC /* OpenableApps.swift in Sources */ = {isa = PBXBuildFile; fileRef = 384CBEBE262276A9000B08FC /* OpenableApps.swift */; }; 3875B2B6222E1EF70042D748 /* Launcher.app in CopyFiles */ = {isa = PBXBuildFile; fileRef = 38E394E3222D778F006F926E /* Launcher.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; 38D723EB222D8D8600D6F079 /* Launcher.app in Resources */ = {isa = PBXBuildFile; fileRef = 38E394E3222D778F006F926E /* Launcher.app */; }; 38E394E6222D778F006F926E /* AppDelegateLauncher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38E394E5222D778F006F926E /* AppDelegateLauncher.swift */; }; 38E394EA222D7790006F926E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 38E394E9222D7790006F926E /* Assets.xcassets */; }; 38E394ED222D7790006F926E /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 38E394EB222D7790006F926E /* Main.storyboard */; }; 38E394F9222D7B61006F926E /* ServiceManagement.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 38E394F8222D7B61006F926E /* ServiceManagement.framework */; }; 38EEA8BF26238C14005DD6A1 /* Utils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38EEA8BE26238C14005DD6A1 /* Utils.swift */; }; 8025B2CADE468941B1A841B9 /* Pods_Launcher.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 98BF29A3FBD4222A2994CC63 /* Pods_Launcher.framework */; }; 88AD155137A7D16EF21440CF /* Pods_Menu_Bar_DockUITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C9B9AC2CA0427E3D1161227B /* Pods_Menu_Bar_DockUITests.framework */; }; B7AFA862BC6214A4D95098CC /* Pods_Menu_Bar_DockTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 30D61877253F489B8F948C27 /* Pods_Menu_Bar_DockTests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ 38412F0F222B3E3000D3FA0C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 38412EF4222B3E2F00D3FA0C /* Project object */; proxyType = 1; remoteGlobalIDString = 38412EFB222B3E2F00D3FA0C; remoteInfo = MenuDock; }; 38412F1A222B3E3000D3FA0C /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 38412EF4222B3E2F00D3FA0C /* Project object */; proxyType = 1; remoteGlobalIDString = 38412EFB222B3E2F00D3FA0C; remoteInfo = MenuDock; }; 38E394F5222D7B57006F926E /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 38412EF4222B3E2F00D3FA0C /* Project object */; proxyType = 1; remoteGlobalIDString = 38E394E2222D778F006F926E; remoteInfo = Launcher; }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ 3875B2B5222E1EDA0042D748 /* CopyFiles */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; dstPath = Contents/Library/LoginItems; dstSubfolderSpec = 1; files = ( 3875B2B6222E1EF70042D748 /* Launcher.app in CopyFiles */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ 16B37C87D338947865D0A942 /* Pods-Launcher.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Launcher.release.xcconfig"; path = "Target Support Files/Pods-Launcher/Pods-Launcher.release.xcconfig"; sourceTree = ""; }; 2309E0F2AA48CFD993F809B6 /* Pods-Launcher.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Launcher.debug.xcconfig"; path = "Target Support Files/Pods-Launcher/Pods-Launcher.debug.xcconfig"; sourceTree = ""; }; 297EFDBCAC62749525C31A00 /* Pods-Menu Bar Dock.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Menu Bar Dock.release.xcconfig"; path = "Target Support Files/Pods-Menu Bar Dock/Pods-Menu Bar Dock.release.xcconfig"; sourceTree = ""; }; 30D61877253F489B8F948C27 /* Pods_Menu_Bar_DockTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Menu_Bar_DockTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3821D96D222DAB1700D69BD1 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; 38412EFC222B3E2F00D3FA0C /* Menu Bar Dock.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Menu Bar Dock.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 38412EFF222B3E2F00D3FA0C /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 38412F01222B3E2F00D3FA0C /* PreferencesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferencesViewController.swift; sourceTree = ""; }; 38412F03222B3E3000D3FA0C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 38412F06222B3E3000D3FA0C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 38412F08222B3E3000D3FA0C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 38412F09222B3E3000D3FA0C /* MenuBarDock.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = MenuBarDock.entitlements; sourceTree = ""; }; 38412F0E222B3E3000D3FA0C /* Menu Bar DockTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Menu Bar DockTests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 38412F12222B3E3000D3FA0C /* MenuBarDockTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuBarDockTests.swift; sourceTree = ""; }; 38412F14222B3E3000D3FA0C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 38412F19222B3E3000D3FA0C /* Menu Bar DockUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "Menu Bar DockUITests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; 38412F1D222B3E3000D3FA0C /* MenuBarDockUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuBarDockUITests.swift; sourceTree = ""; }; 38412F1F222B3E3000D3FA0C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 38412F2F222B715400D3FA0C /* UserPrefs.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserPrefs.swift; sourceTree = ""; }; 38412F31222B722100D3FA0C /* Constants.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Constants.swift; sourceTree = ""; }; 384318F72624A36A00A6B6A0 /* RunningApps.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunningApps.swift; sourceTree = ""; }; 384319012624BAB800A6B6A0 /* RegularApps.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RegularApps.swift; sourceTree = ""; }; 384319142626487200A6B6A0 /* RunningApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunningApp.swift; sourceTree = ""; }; 3843191A2626487E00A6B6A0 /* RegularApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = RegularApp.swift; path = MenuBarDock/RegularApp.swift; sourceTree = SOURCE_ROOT; }; 3843194326267FC100A6B6A0 /* AppsTablePreferencesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppsTablePreferencesViewController.swift; sourceTree = ""; }; 384319572628BD7800A6B6A0 /* AppTracker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppTracker.swift; sourceTree = ""; }; 384319612628EC8700A6B6A0 /* AboutViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutViewController.swift; sourceTree = ""; }; 38431990262911C900A6B6A0 /* InfoViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InfoViewController.swift; sourceTree = ""; }; 384CBEA426226333000B08FC /* MenuBarItems.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuBarItems.swift; sourceTree = ""; }; 384CBEAA26226677000B08FC /* MenuBarItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuBarItem.swift; sourceTree = ""; }; 384CBEB826227329000B08FC /* OpenableApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenableApp.swift; sourceTree = ""; }; 384CBEBE262276A9000B08FC /* OpenableApps.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenableApps.swift; sourceTree = ""; }; 38E394E3222D778F006F926E /* Launcher.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Launcher.app; sourceTree = BUILT_PRODUCTS_DIR; }; 38E394E5222D778F006F926E /* AppDelegateLauncher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegateLauncher.swift; sourceTree = ""; }; 38E394E9222D7790006F926E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 38E394EC222D7790006F926E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 38E394EE222D7790006F926E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 38E394EF222D7790006F926E /* Launcher.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Launcher.entitlements; sourceTree = ""; }; 38E394F8222D7B61006F926E /* ServiceManagement.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ServiceManagement.framework; path = System/Library/Frameworks/ServiceManagement.framework; sourceTree = SDKROOT; }; 38EEA8BE26238C14005DD6A1 /* Utils.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Utils.swift; sourceTree = ""; }; 489942CC5F97C7BABFC066E7 /* Pods-Menu Bar Dock.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Menu Bar Dock.debug.xcconfig"; path = "Target Support Files/Pods-Menu Bar Dock/Pods-Menu Bar Dock.debug.xcconfig"; sourceTree = ""; }; 4E25AD7108669ADAF8C59B09 /* Pods_Menu_Bar_Dock.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Menu_Bar_Dock.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 6EECCBA0CAA1B9E8A1451213 /* Pods-Menu Bar DockTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Menu Bar DockTests.debug.xcconfig"; path = "Target Support Files/Pods-Menu Bar DockTests/Pods-Menu Bar DockTests.debug.xcconfig"; sourceTree = ""; }; 98BF29A3FBD4222A2994CC63 /* Pods_Launcher.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Launcher.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C9B9AC2CA0427E3D1161227B /* Pods_Menu_Bar_DockUITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Menu_Bar_DockUITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; CAB0347B15BF571A9C8E5CEA /* Pods-Menu Bar DockUITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Menu Bar DockUITests.debug.xcconfig"; path = "Target Support Files/Pods-Menu Bar DockUITests/Pods-Menu Bar DockUITests.debug.xcconfig"; sourceTree = ""; }; E569DC6845C62E8F66979A14 /* Pods-Menu Bar DockTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Menu Bar DockTests.release.xcconfig"; path = "Target Support Files/Pods-Menu Bar DockTests/Pods-Menu Bar DockTests.release.xcconfig"; sourceTree = ""; }; F4C68185006A66C34A217A6D /* Pods-Menu Bar DockUITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Menu Bar DockUITests.release.xcconfig"; path = "Target Support Files/Pods-Menu Bar DockUITests/Pods-Menu Bar DockUITests.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ 38412EF9222B3E2F00D3FA0C /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( 3821D96E222DAB1800D69BD1 /* Cocoa.framework in Frameworks */, 38E394F9222D7B61006F926E /* ServiceManagement.framework in Frameworks */, 01DC8CAE270F9515FE1B0FAC /* Pods_Menu_Bar_Dock.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; 38412F0B222B3E3000D3FA0C /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( B7AFA862BC6214A4D95098CC /* Pods_Menu_Bar_DockTests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; 38412F16222B3E3000D3FA0C /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( 88AD155137A7D16EF21440CF /* Pods_Menu_Bar_DockUITests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; 38E394E0222D778F006F926E /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( 8025B2CADE468941B1A841B9 /* Pods_Launcher.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ 2FD7E510B279AEB90CCCE4FE /* Pods */ = { isa = PBXGroup; children = ( 2309E0F2AA48CFD993F809B6 /* Pods-Launcher.debug.xcconfig */, 16B37C87D338947865D0A942 /* Pods-Launcher.release.xcconfig */, 489942CC5F97C7BABFC066E7 /* Pods-Menu Bar Dock.debug.xcconfig */, 297EFDBCAC62749525C31A00 /* Pods-Menu Bar Dock.release.xcconfig */, 6EECCBA0CAA1B9E8A1451213 /* Pods-Menu Bar DockTests.debug.xcconfig */, E569DC6845C62E8F66979A14 /* Pods-Menu Bar DockTests.release.xcconfig */, CAB0347B15BF571A9C8E5CEA /* Pods-Menu Bar DockUITests.debug.xcconfig */, F4C68185006A66C34A217A6D /* Pods-Menu Bar DockUITests.release.xcconfig */, ); path = Pods; sourceTree = ""; }; 38412EF3222B3E2F00D3FA0C = { isa = PBXGroup; children = ( 38412EFE222B3E2F00D3FA0C /* MenuBarDock */, 38412F11222B3E3000D3FA0C /* MenuBarDockTests */, 38412F1C222B3E3000D3FA0C /* MenuBarDockUITests */, 38E394E4222D778F006F926E /* Launcher */, 38412EFD222B3E2F00D3FA0C /* Products */, 38E394F7222D7B61006F926E /* Frameworks */, 2FD7E510B279AEB90CCCE4FE /* Pods */, ); sourceTree = ""; }; 38412EFD222B3E2F00D3FA0C /* Products */ = { isa = PBXGroup; children = ( 38412EFC222B3E2F00D3FA0C /* Menu Bar Dock.app */, 38412F0E222B3E3000D3FA0C /* Menu Bar DockTests.xctest */, 38412F19222B3E3000D3FA0C /* Menu Bar DockUITests.xctest */, 38E394E3222D778F006F926E /* Launcher.app */, ); name = Products; sourceTree = ""; }; 38412EFE222B3E2F00D3FA0C /* MenuBarDock */ = { isa = PBXGroup; children = ( 38412F03222B3E3000D3FA0C /* Assets.xcassets */, 38412F05222B3E3000D3FA0C /* Main.storyboard */, 38412F01222B3E2F00D3FA0C /* PreferencesViewController.swift */, 384319612628EC8700A6B6A0 /* AboutViewController.swift */, 38431990262911C900A6B6A0 /* InfoViewController.swift */, 38412F08222B3E3000D3FA0C /* Info.plist */, 38412F09222B3E3000D3FA0C /* MenuBarDock.entitlements */, 38EEA8BE26238C14005DD6A1 /* Utils.swift */, 38412EFF222B3E2F00D3FA0C /* AppDelegate.swift */, 3843194326267FC100A6B6A0 /* AppsTablePreferencesViewController.swift */, 38412F2F222B715400D3FA0C /* UserPrefs.swift */, 38412F31222B722100D3FA0C /* Constants.swift */, 384CBEAA26226677000B08FC /* MenuBarItem.swift */, 384CBEA426226333000B08FC /* MenuBarItems.swift */, 384CBEB826227329000B08FC /* OpenableApp.swift */, 384CBEBE262276A9000B08FC /* OpenableApps.swift */, 384319142626487200A6B6A0 /* RunningApp.swift */, 384318F72624A36A00A6B6A0 /* RunningApps.swift */, 3843191A2626487E00A6B6A0 /* RegularApp.swift */, 384319012624BAB800A6B6A0 /* RegularApps.swift */, 384319572628BD7800A6B6A0 /* AppTracker.swift */, ); path = MenuBarDock; sourceTree = ""; }; 38412F11222B3E3000D3FA0C /* MenuBarDockTests */ = { isa = PBXGroup; children = ( 38412F12222B3E3000D3FA0C /* MenuBarDockTests.swift */, 38412F14222B3E3000D3FA0C /* Info.plist */, ); path = MenuBarDockTests; sourceTree = ""; }; 38412F1C222B3E3000D3FA0C /* MenuBarDockUITests */ = { isa = PBXGroup; children = ( 38412F1D222B3E3000D3FA0C /* MenuBarDockUITests.swift */, 38412F1F222B3E3000D3FA0C /* Info.plist */, ); path = MenuBarDockUITests; sourceTree = ""; }; 38E394E4222D778F006F926E /* Launcher */ = { isa = PBXGroup; children = ( 38E394E5222D778F006F926E /* AppDelegateLauncher.swift */, 38E394E9222D7790006F926E /* Assets.xcassets */, 38E394EB222D7790006F926E /* Main.storyboard */, 38E394EE222D7790006F926E /* Info.plist */, 38E394EF222D7790006F926E /* Launcher.entitlements */, ); path = Launcher; sourceTree = ""; }; 38E394F7222D7B61006F926E /* Frameworks */ = { isa = PBXGroup; children = ( 3821D96D222DAB1700D69BD1 /* Cocoa.framework */, 38E394F8222D7B61006F926E /* ServiceManagement.framework */, 98BF29A3FBD4222A2994CC63 /* Pods_Launcher.framework */, 4E25AD7108669ADAF8C59B09 /* Pods_Menu_Bar_Dock.framework */, 30D61877253F489B8F948C27 /* Pods_Menu_Bar_DockTests.framework */, C9B9AC2CA0427E3D1161227B /* Pods_Menu_Bar_DockUITests.framework */, ); name = Frameworks; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ 38412EFB222B3E2F00D3FA0C /* Menu Bar Dock */ = { isa = PBXNativeTarget; buildConfigurationList = 38412F22222B3E3000D3FA0C /* Build configuration list for PBXNativeTarget "Menu Bar Dock" */; buildPhases = ( C5C0404AAACF2DAABE583079 /* [CP] Check Pods Manifest.lock */, 38412EF8222B3E2F00D3FA0C /* Sources */, 38412EF9222B3E2F00D3FA0C /* Frameworks */, 38412EFA222B3E2F00D3FA0C /* Resources */, 3875B2B5222E1EDA0042D748 /* CopyFiles */, 38E38B81262204CA00B95187 /* ShellScript */, ); buildRules = ( ); dependencies = ( 38E394F6222D7B57006F926E /* PBXTargetDependency */, ); name = "Menu Bar Dock"; productName = MenuDock; productReference = 38412EFC222B3E2F00D3FA0C /* Menu Bar Dock.app */; productType = "com.apple.product-type.application"; }; 38412F0D222B3E3000D3FA0C /* Menu Bar DockTests */ = { isa = PBXNativeTarget; buildConfigurationList = 38412F25222B3E3000D3FA0C /* Build configuration list for PBXNativeTarget "Menu Bar DockTests" */; buildPhases = ( 4436723CBA676C3A82A067A6 /* [CP] Check Pods Manifest.lock */, 38412F0A222B3E3000D3FA0C /* Sources */, 38412F0B222B3E3000D3FA0C /* Frameworks */, 38412F0C222B3E3000D3FA0C /* Resources */, ); buildRules = ( ); dependencies = ( 38412F10222B3E3000D3FA0C /* PBXTargetDependency */, ); name = "Menu Bar DockTests"; productName = MenuDockTests; productReference = 38412F0E222B3E3000D3FA0C /* Menu Bar DockTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; 38412F18222B3E3000D3FA0C /* Menu Bar DockUITests */ = { isa = PBXNativeTarget; buildConfigurationList = 38412F28222B3E3000D3FA0C /* Build configuration list for PBXNativeTarget "Menu Bar DockUITests" */; buildPhases = ( B86D3DC26529A66E5DCC6910 /* [CP] Check Pods Manifest.lock */, 38412F15222B3E3000D3FA0C /* Sources */, 38412F16222B3E3000D3FA0C /* Frameworks */, 38412F17222B3E3000D3FA0C /* Resources */, ); buildRules = ( ); dependencies = ( 38412F1B222B3E3000D3FA0C /* PBXTargetDependency */, ); name = "Menu Bar DockUITests"; productName = MenuDockUITests; productReference = 38412F19222B3E3000D3FA0C /* Menu Bar DockUITests.xctest */; productType = "com.apple.product-type.bundle.ui-testing"; }; 38E394E2222D778F006F926E /* Launcher */ = { isa = PBXNativeTarget; buildConfigurationList = 38E394F0222D7790006F926E /* Build configuration list for PBXNativeTarget "Launcher" */; buildPhases = ( 7D2237419116724B6A283AA1 /* [CP] Check Pods Manifest.lock */, 38E394DF222D778F006F926E /* Sources */, 38E394E0222D778F006F926E /* Frameworks */, 38E394E1222D778F006F926E /* Resources */, ); buildRules = ( ); dependencies = ( ); name = Launcher; productName = Launcher; productReference = 38E394E3222D778F006F926E /* Launcher.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ 38412EF4222B3E2F00D3FA0C /* Project object */ = { isa = PBXProject; attributes = { LastSwiftUpdateCheck = 1010; LastUpgradeCheck = 1240; ORGANIZATIONNAME = "Ethan Sarif-Kattan"; TargetAttributes = { 38412EFB222B3E2F00D3FA0C = { CreatedOnToolsVersion = 10.1; LastSwiftMigration = 1240; SystemCapabilities = { com.apple.HardenedRuntime = { enabled = 1; }; }; }; 38412F0D222B3E3000D3FA0C = { CreatedOnToolsVersion = 10.1; LastSwiftMigration = 1240; TestTargetID = 38412EFB222B3E2F00D3FA0C; }; 38412F18222B3E3000D3FA0C = { CreatedOnToolsVersion = 10.1; LastSwiftMigration = 1240; TestTargetID = 38412EFB222B3E2F00D3FA0C; }; 38E394E2222D778F006F926E = { CreatedOnToolsVersion = 10.1; LastSwiftMigration = 1240; SystemCapabilities = { com.apple.HardenedRuntime = { enabled = 1; }; }; }; }; }; buildConfigurationList = 38412EF7222B3E2F00D3FA0C /* Build configuration list for PBXProject "Menu Bar Dock" */; compatibilityVersion = "Xcode 9.3"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, Base, ); mainGroup = 38412EF3222B3E2F00D3FA0C; productRefGroup = 38412EFD222B3E2F00D3FA0C /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( 38412EFB222B3E2F00D3FA0C /* Menu Bar Dock */, 38412F0D222B3E3000D3FA0C /* Menu Bar DockTests */, 38412F18222B3E3000D3FA0C /* Menu Bar DockUITests */, 38E394E2222D778F006F926E /* Launcher */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ 38412EFA222B3E2F00D3FA0C /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( 38412F04222B3E3000D3FA0C /* Assets.xcassets in Resources */, 38D723EB222D8D8600D6F079 /* Launcher.app in Resources */, 38412F07222B3E3000D3FA0C /* Main.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; 38412F0C222B3E3000D3FA0C /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; 38412F17222B3E3000D3FA0C /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( ); runOnlyForDeploymentPostprocessing = 0; }; 38E394E1222D778F006F926E /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( 38E394EA222D7790006F926E /* Assets.xcassets in Resources */, 38E394ED222D7790006F926E /* Main.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ 38E38B81262204CA00B95187 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( ); inputPaths = ( ); outputFileListPaths = ( ); outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "if which \"${PODS_ROOT}/SwiftLint/swiftlint\" >/dev/null; then\n\"${PODS_ROOT}/SwiftLint/swiftlint\" --fix #off for now\n\"${PODS_ROOT}/SwiftLint/swiftlint\"\n\nelse\n echo \"warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint\"\nfi\n"; }; 4436723CBA676C3A82A067A6 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( ); inputPaths = ( "${PODS_PODFILE_DIR_PATH}/Podfile.lock", "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; outputFileListPaths = ( ); outputPaths = ( "$(DERIVED_FILE_DIR)/Pods-Menu Bar DockTests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; 7D2237419116724B6A283AA1 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( ); inputPaths = ( "${PODS_PODFILE_DIR_PATH}/Podfile.lock", "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; outputFileListPaths = ( ); outputPaths = ( "$(DERIVED_FILE_DIR)/Pods-Launcher-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; B86D3DC26529A66E5DCC6910 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( ); inputPaths = ( "${PODS_PODFILE_DIR_PATH}/Podfile.lock", "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; outputFileListPaths = ( ); outputPaths = ( "$(DERIVED_FILE_DIR)/Pods-Menu Bar DockUITests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; C5C0404AAACF2DAABE583079 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( ); inputPaths = ( "${PODS_PODFILE_DIR_PATH}/Podfile.lock", "${PODS_ROOT}/Manifest.lock", ); name = "[CP] Check Pods Manifest.lock"; outputFileListPaths = ( ); outputPaths = ( "$(DERIVED_FILE_DIR)/Pods-Menu Bar Dock-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ 38412EF8222B3E2F00D3FA0C /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 3843194426267FC100A6B6A0 /* AppsTablePreferencesViewController.swift in Sources */, 384CBEAB26226677000B08FC /* MenuBarItem.swift in Sources */, 384319152626487200A6B6A0 /* RunningApp.swift in Sources */, 384CBEB926227329000B08FC /* OpenableApp.swift in Sources */, 38EEA8BF26238C14005DD6A1 /* Utils.swift in Sources */, 3843191B2626487E00A6B6A0 /* RegularApp.swift in Sources */, 38412F32222B722100D3FA0C /* Constants.swift in Sources */, 38412F30222B715400D3FA0C /* UserPrefs.swift in Sources */, 38431992262911C900A6B6A0 /* InfoViewController.swift in Sources */, 384319582628BD7800A6B6A0 /* AppTracker.swift in Sources */, 384319022624BAB800A6B6A0 /* RegularApps.swift in Sources */, 384318F82624A36A00A6B6A0 /* RunningApps.swift in Sources */, 38412F02222B3E2F00D3FA0C /* PreferencesViewController.swift in Sources */, 384CBEBF262276A9000B08FC /* OpenableApps.swift in Sources */, 38412F00222B3E2F00D3FA0C /* AppDelegate.swift in Sources */, 384319632628EC8700A6B6A0 /* AboutViewController.swift in Sources */, 384CBEA526226333000B08FC /* MenuBarItems.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; 38412F0A222B3E3000D3FA0C /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 38412F13222B3E3000D3FA0C /* MenuBarDockTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; 38412F15222B3E3000D3FA0C /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 38412F1E222B3E3000D3FA0C /* MenuBarDockUITests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; 38E394DF222D778F006F926E /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( 38E394E6222D778F006F926E /* AppDelegateLauncher.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ 38412F10222B3E3000D3FA0C /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 38412EFB222B3E2F00D3FA0C /* Menu Bar Dock */; targetProxy = 38412F0F222B3E3000D3FA0C /* PBXContainerItemProxy */; }; 38412F1B222B3E3000D3FA0C /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 38412EFB222B3E2F00D3FA0C /* Menu Bar Dock */; targetProxy = 38412F1A222B3E3000D3FA0C /* PBXContainerItemProxy */; }; 38E394F6222D7B57006F926E /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 38E394E2222D778F006F926E /* Launcher */; targetProxy = 38E394F5222D7B57006F926E /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin PBXVariantGroup section */ 38412F05222B3E3000D3FA0C /* Main.storyboard */ = { isa = PBXVariantGroup; children = ( 38412F06222B3E3000D3FA0C /* Base */, ); name = Main.storyboard; sourceTree = ""; }; 38E394EB222D7790006F926E /* Main.storyboard */ = { isa = PBXVariantGroup; children = ( 38E394EC222D7790006F926E /* Base */, ); name = Main.storyboard; sourceTree = ""; }; /* End PBXVariantGroup section */ /* Begin XCBuildConfiguration section */ 38412F20222B3E3000D3FA0C /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "Mac Developer"; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = dwarf; ENABLE_STRICT_OBJC_MSGSEND = YES; ENABLE_TESTABILITY = YES; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_DYNAMIC_NO_PIC = NO; GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", ); GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.14; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; }; name = Debug; }; 38412F21222B3E3000D3FA0C /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_IDENTITY = "Mac Developer"; COPY_PHASE_STRIP = NO; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; GCC_C_LANGUAGE_STANDARD = gnu11; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; MACOSX_DEPLOYMENT_TARGET = 10.14; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; SDKROOT = macosx; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; }; name = Release; }; 38412F23222B3E3000D3FA0C /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 489942CC5F97C7BABFC066E7 /* Pods-Menu Bar Dock.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = MenuBarDock/MenuBarDock.entitlements; CODE_SIGN_IDENTITY = "Mac Developer"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 26; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = T34G959ZG8; ENABLE_HARDENED_RUNTIME = YES; INFOPLIST_FILE = MenuBarDock/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.15; MARKETING_VERSION = 4.6; PRODUCT_BUNDLE_IDENTIFIER = com.ethansk.MenuBarDock; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_VERSION = 5.0; }; name = Debug; }; 38412F24222B3E3000D3FA0C /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 297EFDBCAC62749525C31A00 /* Pods-Menu Bar Dock.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = MenuBarDock/MenuBarDock.entitlements; CODE_SIGN_IDENTITY = "Mac Developer"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 26; DEVELOPMENT_ASSET_PATHS = ""; DEVELOPMENT_TEAM = T34G959ZG8; ENABLE_HARDENED_RUNTIME = YES; INFOPLIST_FILE = MenuBarDock/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 10.15; MARKETING_VERSION = 4.6; PRODUCT_BUNDLE_IDENTIFIER = com.ethansk.MenuBarDock; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_VERSION = 5.0; }; name = Release; }; 38412F26222B3E3000D3FA0C /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 6EECCBA0CAA1B9E8A1451213 /* Pods-Menu Bar DockTests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_IDENTITY = "Mac Developer"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; DEVELOPMENT_TEAM = T34G959ZG8; INFOPLIST_FILE = MenuBarDockTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", "@loader_path/../Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = com.ethansk.MenuBarDockTests; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Menu Bar Dock.app/Contents/MacOS/Menu Bar Dock"; }; name = Debug; }; 38412F27222B3E3000D3FA0C /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = E569DC6845C62E8F66979A14 /* Pods-Menu Bar DockTests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; BUNDLE_LOADER = "$(TEST_HOST)"; CODE_SIGN_IDENTITY = "Mac Developer"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; DEVELOPMENT_TEAM = T34G959ZG8; INFOPLIST_FILE = MenuBarDockTests/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", "@loader_path/../Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = com.ethansk.MenuBarDockTests; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_VERSION = 5.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Menu Bar Dock.app/Contents/MacOS/Menu Bar Dock"; }; name = Release; }; 38412F29222B3E3000D3FA0C /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = CAB0347B15BF571A9C8E5CEA /* Pods-Menu Bar DockUITests.debug.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_IDENTITY = "Mac Developer"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; DEVELOPMENT_TEAM = T34G959ZG8; INFOPLIST_FILE = MenuBarDockUITests/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", "@loader_path/../Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = com.ethansk.MenuBarDockUITests; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_VERSION = 5.0; TEST_TARGET_NAME = MenuBarDock; }; name = Debug; }; 38412F2A222B3E3000D3FA0C /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = F4C68185006A66C34A217A6D /* Pods-Menu Bar DockUITests.release.xcconfig */; buildSettings = { ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; CODE_SIGN_IDENTITY = "Mac Developer"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; DEVELOPMENT_TEAM = T34G959ZG8; INFOPLIST_FILE = MenuBarDockUITests/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", "@loader_path/../Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = com.ethansk.MenuBarDockUITests; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SWIFT_VERSION = 5.0; TEST_TARGET_NAME = MenuBarDock; }; name = Release; }; 38E394F1222D7790006F926E /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = 2309E0F2AA48CFD993F809B6 /* Pods-Launcher.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = Launcher/Launcher.entitlements; CODE_SIGN_IDENTITY = "Mac Developer"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; DEVELOPMENT_TEAM = T34G959ZG8; ENABLE_HARDENED_RUNTIME = YES; INFOPLIST_FILE = Launcher/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = com.ethansk.MenuBarDockLauncher; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SKIP_INSTALL = YES; SWIFT_VERSION = 5.0; }; name = Debug; }; 38E394F2222D7790006F926E /* Release */ = { isa = XCBuildConfiguration; baseConfigurationReference = 16B37C87D338947865D0A942 /* Pods-Launcher.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = Launcher/Launcher.entitlements; CODE_SIGN_IDENTITY = "Mac Developer"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; DEVELOPMENT_TEAM = T34G959ZG8; ENABLE_HARDENED_RUNTIME = YES; INFOPLIST_FILE = Launcher/Info.plist; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/../Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = com.ethansk.MenuBarDockLauncher; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SKIP_INSTALL = YES; SWIFT_VERSION = 5.0; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ 38412EF7222B3E2F00D3FA0C /* Build configuration list for PBXProject "Menu Bar Dock" */ = { isa = XCConfigurationList; buildConfigurations = ( 38412F20222B3E3000D3FA0C /* Debug */, 38412F21222B3E3000D3FA0C /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 38412F22222B3E3000D3FA0C /* Build configuration list for PBXNativeTarget "Menu Bar Dock" */ = { isa = XCConfigurationList; buildConfigurations = ( 38412F23222B3E3000D3FA0C /* Debug */, 38412F24222B3E3000D3FA0C /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 38412F25222B3E3000D3FA0C /* Build configuration list for PBXNativeTarget "Menu Bar DockTests" */ = { isa = XCConfigurationList; buildConfigurations = ( 38412F26222B3E3000D3FA0C /* Debug */, 38412F27222B3E3000D3FA0C /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 38412F28222B3E3000D3FA0C /* Build configuration list for PBXNativeTarget "Menu Bar DockUITests" */ = { isa = XCConfigurationList; buildConfigurations = ( 38412F29222B3E3000D3FA0C /* Debug */, 38412F2A222B3E3000D3FA0C /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; 38E394F0222D7790006F926E /* Build configuration list for PBXNativeTarget "Launcher" */ = { isa = XCConfigurationList; buildConfigurations = ( 38E394F1222D7790006F926E /* Debug */, 38E394F2222D7790006F926E /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; rootObject = 38412EF4222B3E2F00D3FA0C /* Project object */; } ================================================ FILE: Menu Bar Dock.xcworkspace/contents.xcworkspacedata ================================================ ================================================ FILE: Menu Bar Dock.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist ================================================ IDEDidComputeMac32BitWarning ================================================ FILE: MenuBarDock/AboutViewController.swift ================================================ // // AboutViewController.swift // Menu Bar Dock // // Created by Ethan Sarif-Kattan on 15/04/2021. // Copyright © 2021 Ethan Sarif-Kattan. All rights reserved. // import Cocoa class AboutViewController: NSViewController { @IBOutlet weak var versionLabel: NSTextField! override func viewDidLoad() { super.viewDidLoad() setVersionLabel() } @IBAction func menuBarDockWebsitePressed(_ sender: NSButton) { if let url = URL(string: "https://www.menubardock.com"), NSWorkspace.shared.open(url) { } } @IBAction func myWebsitePressed(_ sender: Any) { if let url = URL(string: "https://portosaurus.github.io/ethansk/"), NSWorkspace.shared.open(url) { } } @IBAction func etgGamesPressed(_ sender: NSButton) { if let url = URL(string: "https://www.etggames.com"), NSWorkspace.shared.open(url) { } } private func setVersionLabel() { guard let version: String = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String else { return } versionLabel.stringValue = "Version \(version)" } } ================================================ FILE: MenuBarDock/AppDelegate.swift ================================================ // // AppDelegate.swift // MenuBarDock // // Created by Ethan Sarif-Kattan on 02/03/2019. // Copyright © 2019 Ethan Sarif-Kattan. All rights reserved. // import Cocoa import ServiceManagement @NSApplicationMain class AppDelegate: NSObject, NSApplicationDelegate { let popover = NSPopover() var storyboard: NSStoryboard! var preferencesWindow = NSWindow() var aboutWindowController: NSWindowController? var infoWindowController: NSWindowController? var userPrefs = UserPrefs() var menuBarItems: MenuBarItems! // need reference so it stays alive var openableApps: OpenableApps! var appTracker: AppTracker! var runningApps: RunningApps! var regularApps: RegularApps! func applicationDidFinishLaunching(_ aNotification: Notification) { initApp() setupLaunchAtLogin() } func applicationWillTerminate(_ aNotification: Notification) { userPrefs.save() } func initApp() { userPrefs.load() storyboard = NSStoryboard(name: "Main", bundle: nil) menuBarItems = MenuBarItems( userPrefsDataSource: userPrefs ) menuBarItems.delegate = self appTracker = AppTracker() appTracker.delegate = self runningApps = RunningApps(userPrefsDataSource: userPrefs) regularApps = RegularApps(userPrefsDataSource: userPrefs) openableApps = OpenableApps(userPrefsDataSource: userPrefs, runningApps: runningApps, regularApps: regularApps) updateMenuBarItems() } func setupLaunchAtLogin() { let launcherAppId = Constants.App.launcherBundleId let runningApps = NSWorkspace.shared.runningApplications if #available(macOS 13.0, *) { do { let appService = SMAppService.loginItem(identifier: launcherAppId) if userPrefs.launchAtLogin { try appService.register() } else { try appService.unregister() } } catch { print("Failed to register/unregister login item: \(error)") } } else { SMLoginItemSetEnabled(launcherAppId as CFString, false) // needs to be set to false to actually create the loginitems.501.plist file, then we can set it to the legit value...weird SMLoginItemSetEnabled(launcherAppId as CFString, userPrefs.launchAtLogin) } let isLauncherRunning = !runningApps.filter { $0.bundleIdentifier == launcherAppId }.isEmpty if isLauncherRunning { DistributedNotificationCenter.default().post(name: Notification.Name("killLauncher"), object: Bundle.main.bundleIdentifier!) } } private func updateMenuBarItems() { menuBarItems.update(openableApps: openableApps) } } extension AppDelegate: MenuBarItemsDelegate { func didSetAppOpeningMethod(_ method: AppOpeningMethod?, _ app: OpenableApp) { userPrefs.appOpeningMethods[app.id] = method userPrefsWasUpdated() } func didOpenPreferencesWindow() { openPreferencesWindow() } func openPreferencesWindow() { if let viewController = NSStoryboard(name: "Main", bundle: nil).instantiateController(withIdentifier: Constants.Identifiers.ViewControllers.preferences) as? PreferencesViewController { viewController.userPrefsDataSource = userPrefs viewController.delegate = self if !preferencesWindow.isVisible == true { preferencesWindow = NSWindow(contentViewController: viewController) preferencesWindow.makeKeyAndOrderFront(self) } preferencesWindow.makeKeyAndOrderFront(self) preferencesWindow.minSize = preferencesWindow.frame.size preferencesWindow.windowController?.showWindow(self) NSApp.activate(ignoringOtherApps: true)// stops bugz n shiz i think } } } extension AppDelegate: AppTrackerDelegate { func appWasActivated(runningApp: NSRunningApplication) { runningApps.handleAppActivation(runningApp: runningApp) regularApps.handleAppActivation(runningApp: runningApp) appActivationChange() } func appWasQuit(runningApp: NSRunningApplication) { runningApps.handleAppQuit(runningApp: runningApp) regularApps.handleAppQuit(runningApp: runningApp) appActivationChange() } private func appActivationChange() { runningApps.update() // regularApps.update() //doesn't make sense to update regular apps based on app activations. we could if we wanted to due to the hot reactive code structure, but best not to. openableApps.update(runningApps: runningApps, regularApps: regularApps) updateMenuBarItems() } } extension AppDelegate: PreferencesViewControllerDelegate { func maxRunningAppsSliderDidChange(_ value: Int) { userPrefs.maxRunningApps = value userPrefsWasUpdated() } func itemSlotWidthSliderDidChange(_ value: Double) { userPrefs.itemSlotWidth = CGFloat(value) userPrefsWasUpdated() } func appIconSizeSliderDidChange(_ value: Double) { userPrefs.appIconSize = CGFloat(value) userPrefsWasUpdated() } func runningAppsSortingMethodDidChange(_ value: RunningAppsSortingMethod) { userPrefs.runningAppsSortingMethod = value userPrefsWasUpdated() } func resetPreferencesToDefaultsWasPressed() { userPrefs.resetToDefaults() userPrefsWasUpdated() } func resetAppOpeningMethodsWasPressed() { userPrefs.resetAppOpeningMethodsToDefaults() userPrefsWasUpdated() } func launchAtLoginDidChange(_ value: Bool) { userPrefs.launchAtLogin = value let launcherAppId = Constants.App.launcherBundleId if #available(macOS 13.0, *) { do { let appService = SMAppService.loginItem(identifier: launcherAppId) if value { try appService.register() } else { try appService.unregister() } } catch { print("Failed to register/unregister login item: \(error)") } } else { SMLoginItemSetEnabled(launcherAppId as CFString, value) } userPrefsWasUpdated() } func aboutWasPressed() { if let windowController = aboutWindowController ?? storyboard.instantiateController(withIdentifier: Constants.Identifiers.WindowControllers.about) as? NSWindowController { windowController.showWindow(self) aboutWindowController = windowController } } func hideFinderDidChange(_ value: Bool) { userPrefs.hideFinderFromRunningApps = value userPrefsWasUpdated() } func hideActiveAppDidChange(_ value: Bool) { userPrefs.hideActiveAppFromRunningApps = value userPrefsWasUpdated() } func preserveAppOrderDidChange(_ value: Bool) { userPrefs.preserveAppOrder = value userPrefsWasUpdated() } func rightClickByDefaultDidChange(_ value: Bool) { userPrefs.rightClickByDefault = value userPrefsWasUpdated() } func appOpeningMethodDidChange(_ value: AppOpeningMethod) { userPrefs.defaultAppOpeningMethod = value userPrefsWasUpdated() } func regularAppsUrlsWereAdded(_ value: [URL]) { value.forEach { (url) in if !userPrefs.regularAppsUrls.contains(url) { userPrefs.regularAppsUrls.append(url) } } userPrefsWasUpdated() } func regularAppsUrlsWereRemoved(_ removedIndexes: IndexSet) { userPrefs.regularAppsUrls.remove(at: removedIndexes) userPrefsWasUpdated() } func regularAppUrlWasMoved(oldIndex: Int, newIndex: Int) { let url = userPrefs.regularAppsUrls.remove(at: oldIndex) userPrefs.regularAppsUrls.insert(url, at: newIndex) userPrefsWasUpdated() } func sideToShowRunningAppsDidChange(_ value: SideToShowRunningApps) { userPrefs.sideToShowRunningApps = value userPrefsWasUpdated() } func hideDuplicateAppsDidChange(_ value: Bool) { userPrefs.hideDuplicateApps = value userPrefsWasUpdated() } func duplicateAppsPriorityDidChange(_ value: DuplicateAppsPriority) { userPrefs.duplicateAppsPriority = value userPrefsWasUpdated() } func infoWasPressed() { if let windowController = infoWindowController ?? storyboard.instantiateController(withIdentifier: Constants.Identifiers.WindowControllers.info) as? NSWindowController { windowController.showWindow(self) infoWindowController = windowController } } private func userPrefsWasUpdated() { userPrefs.save() runningApps.update() regularApps.update() openableApps.update(runningApps: runningApps, regularApps: regularApps) updateMenuBarItems() } } ================================================ FILE: MenuBarDock/AppTracker.swift ================================================ // // AppTracker.swift // Menu Bar Dock // // Created by Ethan Sarif-Kattan on 15/04/2021. // Copyright © 2021 Ethan Sarif-Kattan. All rights reserved. // import Cocoa protocol AppTrackerDelegate: AnyObject { func appWasActivated(runningApp: NSRunningApplication) func appWasQuit(runningApp: NSRunningApplication) } // tracks app activations and quits class AppTracker { public weak var delegate: AppTrackerDelegate? init() { trackAppsBeingActivated() trackAppsBeingQuit() } private func trackAppsBeingActivated() { NSWorkspace.shared.notificationCenter.addObserver(forName: NSWorkspace.didActivateApplicationNotification, object: nil, queue: .main) { (notification) in if let app = notification.userInfo?[NSWorkspace.applicationUserInfoKey] as? NSRunningApplication, NSWorkspace.shared.frontmostApplication == app // make sure it wasn't triggered by some background process { self.delegate?.appWasActivated(runningApp: app) } } } private func trackAppsBeingQuit() { NSWorkspace.shared.notificationCenter.addObserver(forName: NSWorkspace.didTerminateApplicationNotification, object: nil, queue: .main) { (notification) in if let app = notification.userInfo?[NSWorkspace.applicationUserInfoKey] as? NSRunningApplication { self.delegate?.appWasQuit(runningApp: app) } } } } ================================================ FILE: MenuBarDock/AppsTablePreferencesViewController.swift ================================================ // // AppsTablePreferencesViewController.swift // Menu Bar Dock // // Created by Ethan Sarif-Kattan on 14/04/2021. // Copyright © 2021 Ethan Sarif-Kattan. All rights reserved. // import Cocoa extension PreferencesViewController: NSTableViewDataSource { func numberOfRows(in tableView: NSTableView) -> Int { userPrefsDataSource.regularAppsUrls.count } } extension PreferencesViewController: NSTableViewDelegate { func tableView(_ tableView: NSTableView, heightOfRow row: Int) -> CGFloat { return 30 } func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? { var cellIdentifier: String = "" let url = userPrefsDataSource.regularAppsUrls[row] let bundle = Bundle(url: url) let icon = NSWorkspace.shared.icon(forFile: url.path) if tableColumn == tableView.tableColumns[0] { cellIdentifier = "AppCell" } if let cell = tableView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: cellIdentifier), owner: nil) as? NSTableCellView { cell.textField?.stringValue = bundle?.name ?? "NOT FOUND" cell.imageView?.image = icon return cell } return nil } // drag and drop copied from https://stackoverflow.com/questions/2121907/drag-drop-reorder-rows-on-nstableview func tableView(_ tableView: NSTableView, pasteboardWriterForRow row: Int) -> NSPasteboardWriting? { let pasteboard = NSPasteboardItem() pasteboard.setString("\(row)", forType: .string) return pasteboard } func tableView(_ tableView: NSTableView, validateDrop info: NSDraggingInfo, proposedRow row: Int, proposedDropOperation dropOperation: NSTableView.DropOperation) -> NSDragOperation { return .move } func tableView(_ tableView: NSTableView, acceptDrop info: NSDraggingInfo, row: Int, dropOperation: NSTableView.DropOperation) -> Bool { var oldIndexes = [Int]() info.enumerateDraggingItems(options: [], for: tableView, classes: [NSPasteboardItem.self], searchOptions: [:]) { dragItem, _, _ in if let str = (dragItem.item as? NSPasteboardItem)?.string(forType: .string), let index = Int(str) { oldIndexes.append(index) } } var oldIndexOffset = 0 var newIndexOffset = 0 tableView.beginUpdates() for oldIndex in oldIndexes { if oldIndex < row { let old = oldIndex + oldIndexOffset let new = row - 1 tableView.moveRow(at: oldIndex + oldIndexOffset, to: row - 1) delegate?.regularAppUrlWasMoved(oldIndex: old, newIndex: new) oldIndexOffset -= 1 } else { let old = oldIndex let new = row + newIndexOffset tableView.moveRow(at: oldIndex, to: row + newIndexOffset) delegate?.regularAppUrlWasMoved(oldIndex: old, newIndex: new) newIndexOffset += 1 } } tableView.endUpdates() return true } } ================================================ FILE: MenuBarDock/Assets.xcassets/AppIcon.appiconset/Contents.json ================================================ { "images" : [ { "filename" : "icon_16x16.png", "idiom" : "mac", "scale" : "1x", "size" : "16x16" }, { "filename" : "icon_16x16@2x.png", "idiom" : "mac", "scale" : "2x", "size" : "16x16" }, { "filename" : "icon_32x32.png", "idiom" : "mac", "scale" : "1x", "size" : "32x32" }, { "filename" : "icon_32x32@2x.png", "idiom" : "mac", "scale" : "2x", "size" : "32x32" }, { "filename" : "icon_128x128.png", "idiom" : "mac", "scale" : "1x", "size" : "128x128" }, { "filename" : "icon_128x128@2x.png", "idiom" : "mac", "scale" : "2x", "size" : "128x128" }, { "filename" : "icon_256x256.png", "idiom" : "mac", "scale" : "1x", "size" : "256x256" }, { "filename" : "icon_256x256@2x.png", "idiom" : "mac", "scale" : "2x", "size" : "256x256" }, { "filename" : "icon_512x512.png", "idiom" : "mac", "scale" : "1x", "size" : "512x512" }, { "idiom" : "mac", "scale" : "2x", "size" : "512x512" } ], "info" : { "author" : "xcode", "version" : 1 } } ================================================ FILE: MenuBarDock/Assets.xcassets/Contents.json ================================================ { "info" : { "author" : "xcode", "version" : 1 } } ================================================ FILE: MenuBarDock/Assets.xcassets/ETGgames.imageset/Contents.json ================================================ { "images" : [ { "filename" : "logo.png", "idiom" : "universal" } ], "info" : { "author" : "xcode", "version" : 1 } } ================================================ FILE: MenuBarDock/Assets.xcassets/ETGgamesCircle.imageset/Contents.json ================================================ { "images" : [ { "filename" : "spikesSmallerWhiteBG.png", "idiom" : "universal" } ], "info" : { "author" : "xcode", "version" : 1 } } ================================================ FILE: MenuBarDock/Base.lproj/Main.storyboard ================================================ Default Left to Right Right to Left Default Left to Right Right to Left The default way to open apps. We recommend you set this to 'launch', and change individual apps' opening methods to 'activate' when needed (which can be done through the menu opened by right clicking an app in the menu bar dock). ================================================ FILE: MenuBarDock/Constants.swift ================================================ // // Constants.swift // MenuBarDock // // Created by Ethan Sarif-Kattan on 03/03/2019. // Copyright © 2019 Ethan Sarif-Kattan. All rights reserved. // import Cocoa enum Constants { enum App { static let name = "Menu Bar Dock" static let launcherBundleId = "com.ethansk.MenuBarDockLauncher" static let finderBundleId = "com.apple.finder" static let regularAppsSectionTitle = "Regular Apps" static let runningAppsSectionTitle = "Running Apps" static let releasesURL = "https://github.com/EthanSK/Menu-Bar-Dock/releases" } enum UserDefaultsKeys { static let bundleId = "bundleId" } enum Identifiers { enum ViewControllers { static let preferences = "PreferencesViewController" static let about = "AboutViewController" static let info = "InfoViewController" } enum WindowControllers { static let info = "InfoWindowController" static let about = "AboutWindowController" } } enum UserPrefs { static let appIconSize = "appIconSize" static let appOpeningMethods = "appOpeningMethods" static let defaultAppOpeningMethod = "defaultAppOpeningMethod" static let duplicateAppsPriority = "duplicateAppsPriority" static let hideActiveAppFromRunningApps = "hideActiveAppFromRunningApps" static let hideDuplicateApps = "hideDuplicateApps" static let hideFinderFromRunningApps = "hideFinderFromRunningApps" static let launchAtLogin = "launchAtLogin" static let maxNumRunningApps = "maxNumRunningApps" static let preserveAppOrder = "preserveAppOrder" static let regularAppsUrls = "regularAppsUrls" static let rightClickByDefault = "rightClickByDefault" static let runningAppsSortingMethod = "runningAppsSortingMethod" static let sideToShowRunningApps = "sideToShowRunningApps" static let statusItemWidth = "statusItemWidth" } } ================================================ FILE: MenuBarDock/Info.plist ================================================ CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIconFile CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName $(PRODUCT_NAME) CFBundlePackageType APPL CFBundleShortVersionString $(MARKETING_VERSION) CFBundleVersion $(CURRENT_PROJECT_VERSION) LSApplicationCategoryType public.app-category.productivity LSMinimumSystemVersion $(MACOSX_DEPLOYMENT_TARGET) LSUIElement NSHumanReadableCopyright Copyright © 2021 Ethan Sarif-Kattan. All rights reserved. NSMainStoryboardFile Main NSPrincipalClass NSApplication ================================================ FILE: MenuBarDock/InfoViewController.swift ================================================ // // InfoViewController.swift // Menu Bar Dock // // Created by Ethan Sarif-Kattan on 16/04/2021. // Copyright © 2021 Ethan Sarif-Kattan. All rights reserved. // import Cocoa class InfoViewController: NSViewController { @IBOutlet weak var label: NSTextField! let info = [ "Hover over a setting in the preferences window with your cursor to see a tooltip explaining what that setting does.", "Hold command ⌘ while dragging an icon to move its position in the menu bar.", "If clicking on an app in the menu bar doesn't have the desired effect, try changing the app opening method for that app by right clicking it in the menu bar dock", "If \(Constants.App.name) is getting slow, just restart it, and it will clear out and reset all the unused status items. This should happen very rarely if at all", "If you don't want to use the \(Constants.App.runningAppsSectionTitle) feature, just set the max number of running apps to 0. If you don't want to use the \(Constants.App.regularAppsSectionTitle) feature, just remove all the apps from the list.", "You can add multiple versions of the same app to the \(Constants.App.regularAppsSectionTitle) list as long as they have a different path on your system.", "You may notice the ordering of apps will be incorrect when you first open \(Constants.App.name). This is because it tracks what apps you open and close after opening \(Constants.App.name), so it will take a little bit of time to settle. This issue can be avoided if you simple keep 'Launch at Login' on." ] override func viewDidLoad() { super.viewDidLoad() label.stringValue = info.enumerated().reduce("", { (res, next) -> String in res + "• " + next.element + (next.offset == info.count - 1 ? "" : "\n\n") }) } } ================================================ FILE: MenuBarDock/MenuBarDock.entitlements ================================================ ================================================ FILE: MenuBarDock/MenuBarItem.swift ================================================ // // MenuBarItem.swift // Menu Bar Dock // // Created by Ethan Sarif-Kattan on 11/04/2021. // Copyright © 2021 Ethan Sarif-Kattan. All rights reserved. // import Cocoa protocol MenuBarItemDataSource: AnyObject { func appOpeningMethod(for app: OpenableApp) -> AppOpeningMethod? var rightClickByDefault: Bool { get } } protocol MenuBarItemDelegate: AnyObject { func didOpenPreferencesWindow() func didSetAppOpeningMethod(_ method: AppOpeningMethod?, _ app: OpenableApp) } class MenuBarItem { private(set) var statusItem: NSStatusItem private(set) var app: OpenableApp? public var position: CGFloat { return statusItem.button!.superview!.window!.frame.minX } public weak var userPrefsDataSource: MenuBarItemDataSource! public weak var delegate: MenuBarItemDelegate? init( statusItem: NSStatusItem, userPrefsDataSource: MenuBarItemDataSource ) { self.statusItem = statusItem self.userPrefsDataSource = userPrefsDataSource initButton() } func update(for app: OpenableApp, appIconSize: CGFloat, slotWidth: CGFloat) { self.app = app let imageSize = appIconSize let menuBarHeight: CGFloat = 22 // do not use NSApplication.shared.mainMenu?.menuBarHeight, it doesn't work on MBP 16 inch with notch, because the menu bar reports as bigger than the actual height it uses. 22 is a good fixed height. let newView = NSImageView( frame: NSRect( x: (slotWidth - imageSize) / 2, y: -(imageSize - menuBarHeight) / 2, width: imageSize, height: imageSize) ) app.icon.size = NSSize(width: imageSize, height: imageSize) newView.image = app.icon newView.wantsLayer = true if let existingSubview = statusItem.button?.subviews.first as? NSImageView { statusItem.button?.replaceSubview(existingSubview, with: newView) // we have to replace it to get the correct sizing } else { statusItem.button?.addSubview(newView) } statusItem.length = slotWidth } func reset() { self.app = nil if let button = statusItem.button { for subview in button.subviews { subview.removeFromSuperview() } } } private func initButton() { statusItem.button?.wantsLayer = true statusItem.button?.target = self statusItem.button?.action = #selector(handleClick) statusItem.button?.sendAction(on: [.leftMouseUp, .rightMouseUp]) statusItem.button?.appearance = NSAppearance(named: .aqua) } @objc private func handleClick() { if userPrefsDataSource.rightClickByDefault == true { showDropdownMenu() return } let event = NSApp.currentEvent switch event?.type { case .rightMouseUp: showDropdownMenu() case .leftMouseUp: app?.open() default: break } } func showDropdownMenu() { statusItem.button?.appearance = NSAppearance(named: NSAppearance.current.name) let menu = NSMenu() guard let appName = app?.name else { return } if let runningApplication = app?.runningApplication { // only makes sense to hide and show, and activate a running app, not just any app _ = addMenuItem( menu: menu, title: "\(runningApplication.isHidden ? "Unhide" : "Hide") \(appName)", action: #selector(toggleAppHidden), keyEquivalent: "h" ) _ = addMenuItem( menu: menu, title: "Activate \(appName)", action: #selector(activateApp), keyEquivalent: "a" ) } _ = addMenuItem( menu: menu, title: "Reveal \(appName) in Finder", action: #selector(revealAppInFinder), keyEquivalent: "r" ) _ = addMenuItem( menu: menu, title: "Launch \(appName)", action: #selector(launchApp), keyEquivalent: "l" ) if app?.runningApplication != nil { _ = addMenuItem( menu: menu, title: "Quit \(appName)", action: #selector(quitApp), keyEquivalent: "q" ) } // removed open new instance item because it's kinda pointless and will probably cause bugs addAppOpeningMethodMenuItem(menu: menu) menu.addItem(NSMenuItem.separator()) // options to do with menu bar dock itself _ = addMenuItem( menu: menu, title: "\(Constants.App.name) Preferences...", // ... is a standard... action: #selector(openPreferencesWindow), keyEquivalent: "," ) _ = addMenuItem( menu: menu, title: "Quit \(Constants.App.name)", action: #selector(quitMenuBarDock), keyEquivalent: "" ) statusItem.popUpMenu(menu) } private func addAppOpeningMethodMenuItem(menu: NSMenu) { guard let app = app else { return } let appOpeningMethodMenuItem = addMenuItem( menu: menu, title: "Change opening method for \(app.name)", action: nil, keyEquivalent: "" ) appOpeningMethodMenuItem.submenu = NSMenu() let launchItem = addMenuItem( menu: appOpeningMethodMenuItem.submenu!, title: "Launch", action: #selector(setAppOpeningMethodLaunch), keyEquivalent: "" ) let activateItem = addMenuItem( menu: appOpeningMethodMenuItem.submenu!, title: "Activate", action: #selector(setAppOpeningMethodActivate), keyEquivalent: "" ) switch userPrefsDataSource.appOpeningMethod(for: app) { case .launch: launchItem.state = .on activateItem.state = .off case .activate: launchItem.state = .off activateItem.state = .on default: launchItem.state = .off activateItem.state = .off } } private func addMenuItem(menu: NSMenu, title: String, action: Selector?, keyEquivalent: String) -> NSMenuItem { let item = NSMenuItem( title: title, action: action, keyEquivalent: keyEquivalent ) item.target = self menu.addItem(item) return item } @objc private func quitApp() { app?.quit() } @objc private func revealAppInFinder() { app?.revealInFinder() } @objc private func toggleAppHidden() { if let runningApplication = app?.runningApplication { app?.setIsHidden(isHidden: !runningApplication.isHidden) } } @objc private func activateApp() { app?.activate() } @objc private func launchApp() { app?.launch() } @objc private func openNewAppInstance() { app?.openNewAppInstance() } @objc private func setAppOpeningMethodLaunch() { guard let app = app else { return } delegate?.didSetAppOpeningMethod(userPrefsDataSource.appOpeningMethod(for: app) == .launch ? nil : .launch, app) // toggle the current state } @objc private func setAppOpeningMethodActivate() { guard let app = app else { return } delegate?.didSetAppOpeningMethod(userPrefsDataSource.appOpeningMethod(for: app) == .activate ? nil : .activate, app) } @objc private func openPreferencesWindow() { delegate?.didOpenPreferencesWindow() } @objc private func quitMenuBarDock(_ sender: Any?) { NSApp.terminate(nil) } } ================================================ FILE: MenuBarDock/MenuBarItems.swift ================================================ // // MenuBarItems.swift // Menu Bar Dock // // Created by Ethan Sarif-Kattan on 10/04/2021. // Copyright © 2021 Ethan Sarif-Kattan. All rights reserved. // import Cocoa protocol MenuBarItemsUserPrefsDataSource: AnyObject { var appOpeningMethods: [String: AppOpeningMethod] { get } var itemSlotWidth: CGFloat { get } var appIconSize: CGFloat { get } var preserveAppOrder: Bool { get } var rightClickByDefault: Bool { get } } protocol MenuBarItemsDelegate: AnyObject { func didOpenPreferencesWindow() func didSetAppOpeningMethod(_ method: AppOpeningMethod?, _ app: OpenableApp) } class MenuBarItems { public weak var userPrefsDataSource: MenuBarItemsUserPrefsDataSource! public weak var delegate: MenuBarItemsDelegate? private(set) var items: [MenuBarItem] // ordered left to right init( userPrefsDataSource: MenuBarItemsUserPrefsDataSource ) { self.userPrefsDataSource = userPrefsDataSource items = [] } /* KNOWN ISSUE: After opening some apps, then closing some, there will be a gap of empty space where the items of length 0 are (because they are trying to be hidden). There is nothing currently we can do to stop this, the alternative is using statusItem.isVisible = false, but then that causes the items to not restore to their correct, user-defined positions on the menu bar...It is therefore recommended to only drag N apps to the right, where N is a relatively small number that is ideally less than the number of apps you would tend to have running at any given time */ func update( openableApps: OpenableApps ) { createEnoughStatusItems(openableApps: openableApps) sortItems() // sort after adding them all for efficiency. not all of them will be sorted due to layout not updating instantly, but that's fine since we have an extra item at all times. // try and populate the rightmost items since new ones are added to the left of the menu bar for (index, app) in openableApps.apps.enumerated() { let offset = items.count - openableApps.apps.count let item = items[index + offset] showItem(item: item) item.update(for: app, appIconSize: userPrefsDataSource.appIconSize, slotWidth: userPrefsDataSource.itemSlotWidth) } // hide the leftmost items not being used (so the weird gap glitch is as left as possible) for index in 0...items.count - openableApps.apps.count - 1 { let item = items[index] item.reset() hideItem(item: item) } } private func createEnoughStatusItems(openableApps: OpenableApps) { let origItemCount = items.count for index in 0...openableApps.apps.count where index >= origItemCount { // we loop to count not count - 1 so the sort order is always correct as it has sorted one item in advance. https://trello.com/c/Jz312bga let statusItem = NSStatusBar.system.statusItem(withLength: userPrefsDataSource.itemSlotWidth) let item = MenuBarItem( statusItem: statusItem, userPrefsDataSource: self ) item.delegate = self items.append(item)// it's important we never remove items, or the position in the menu bar will be reset. only add if needed, and reuse. } } private func hideItem(item: MenuBarItem) { item.statusItem.length = 0 if #available(OSX 10.12, *) { if userPrefsDataSource.preserveAppOrder == false { item.statusItem.isVisible = false // this prevents the item from remembering its position Thanks Apple. } } } private func showItem(item: MenuBarItem) { item.statusItem.length = userPrefsDataSource.itemSlotWidth if #available(OSX 10.12, *) { item.statusItem.isVisible = true // Don't remove this, no harm, only has benefits } } private func sortItems() { // sorts items array such that order matches that of actual status items being displayed items = items.sorted {$0.position < $1.position} } } extension MenuBarItems: MenuBarItemDataSource { var rightClickByDefault: Bool { return userPrefsDataSource.rightClickByDefault } func appOpeningMethod(for app: OpenableApp) -> AppOpeningMethod? { return userPrefsDataSource.appOpeningMethods[app.id] } } extension MenuBarItems: MenuBarItemDelegate { func didOpenPreferencesWindow() { delegate?.didOpenPreferencesWindow() } func didSetAppOpeningMethod(_ method: AppOpeningMethod?, _ app: OpenableApp) { delegate?.didSetAppOpeningMethod(method, app) } } ================================================ FILE: MenuBarDock/OpenableApp.swift ================================================ // // OpenableApp.swift // Menu Bar Dock // // Created by Ethan Sarif-Kattan on 11/04/2021. // Copyright © 2021 Ethan Sarif-Kattan. All rights reserved. // import Cocoa // represents an app actually being shown in the menu bar class OpenableApp { public var id: String public var appOpeningMethod: AppOpeningMethod? // should only have a value if the user explicitly set it public var bundleId: String? // do NOT use to uniquely identify app. there can be multiple instances of the same app running public var icon: NSImage public var name: String public var bundleUrl: URL public var runningApplication: NSRunningApplication? init( bundleId: String?, icon: NSImage, bundleUrl: URL, name: String, id: String, appOpeningMethod: AppOpeningMethod?, runningApplication: NSRunningApplication? ) { self.bundleId = bundleId self.icon = icon self.bundleUrl = bundleUrl self.name = name self.id = id self.appOpeningMethod = appOpeningMethod self.runningApplication = runningApplication } convenience init( regularApp: RegularApp, appOpeningMethod: AppOpeningMethod ) { self.init( bundleId: regularApp.bundle.bundleIdentifier, icon: regularApp.icon, bundleUrl: regularApp.bundle.bundleURL, name: regularApp.name, id: regularApp.id, appOpeningMethod: appOpeningMethod, runningApplication: regularApp.runningApp ) } convenience init( runningApp: RunningApp, appOpeningMethod: AppOpeningMethod ) throws { guard let icon = runningApp.app.icon else { throw OpenableAppError.noIcon } guard let name = runningApp.app.localizedName ?? runningApp.app.bundleIdentifier else { throw OpenableAppError.noName } guard let bundleUrl = runningApp.app.bundleURL else { throw OpenableAppError.noBundleUrl } self.init( bundleId: runningApp.app.bundleIdentifier, icon: icon, bundleUrl: bundleUrl, name: name, id: runningApp.id, appOpeningMethod: appOpeningMethod, runningApplication: runningApp.app ) } func open() { showOpeningAppWarningIfNeeded() if bundleId == Constants.App.finderBundleId { openFinder() return } openApp() } func quit() { let wasTerminated = runningApplication?.terminate() // needs app sandbox off or explicit com.apple.security.temporary-exception.apple-events entitlement for the specific app print("App \(bundleId ?? "none") termination success status: ", wasTerminated ?? "null") } func revealInFinder() { NSWorkspace.shared.activateFileViewerSelecting([bundleUrl]) } func setIsHidden(isHidden: Bool) { guard let runningApplication = runningApplication else { return } if isHidden { runningApplication.hide() } else { runningApplication.unhide() } } func activate() { activateApp() } func launch() { launchApp() } func openNewAppInstance() { if #available(OSX 10.15, *) { let config = NSWorkspace.OpenConfiguration() config.createsNewApplicationInstance = true NSWorkspace.shared.openApplication(at: bundleUrl, configuration: config) { (runningApp, error) in print("openNewAppInstance running app: ", runningApp?.bundleIdentifier ?? "none", "error: ", error ?? "none") } } } private func openFinder() { launchApp() if let runningApp = runningApplication { runningApp.activate(options: [.activateAllWindows, .activateIgnoringOtherApps]) // this is the only way I can get working to show the finder app } } private func openApp() { if appOpeningMethod == .activate, runningApplication != nil { activateApp() } else { launchApp() } } private func launchApp() { print("Launching app: ", name) // workaround needed to open Steam, otherwise it opens the app path in Finder if bundleId == "com.valvesoftware.steam" { NSWorkspace.shared.launchApplication(withBundleIdentifier: "com.valvesoftware.steam", options: [], additionalEventParamDescriptor: nil, launchIdentifier: nil) return } if #available(OSX 10.15, *) { let config = NSWorkspace.OpenConfiguration() config.activates = true NSWorkspace.shared.openApplication(at: bundleUrl, configuration: config) { (_, _) in } } else if let bundleId = bundleId { NSWorkspace.shared.launchApplication(withBundleIdentifier: bundleId, options: [], additionalEventParamDescriptor: nil, launchIdentifier: nil) // old way } } private func activateApp() { print("Activating app: ", name) guard let runningApp = runningApplication else { return } runningApp.activate(options: [.activateIgnoringOtherApps]) // I removed .activateAllWindows, but if that proves to be a problem, add it back to the options array } private func showOpeningAppWarningIfNeeded() { // allows us to fail gracefully and alert the developer if appOpeningMethod == .activate && runningApplication == nil { let warningMsg = "The app opening method is 'activate' for app \(bundleId ?? "none") but there is no running app, so launched it instead! This shouldn't happen" print(warningMsg) } } } enum AppOpeningMethod: String { case launch = "launch" case activate = "activate" } enum OpenableAppError: Error { case noIcon // we need an icon to show something in the menu bar, so throwing an error is fine if there isn't one. case noName // we need some kind of name case noBundleUrl // we need this for the exact path of the app, so we open the correct version } extension OpenableApp: Reorderable { var orderElement: OrderElement { // so we can order using another array of bundleIds id } typealias OrderElement = String } ================================================ FILE: MenuBarDock/OpenableApps.swift ================================================ // // OpenableApps.swift // Menu Bar Dock // // Created by Ethan Sarif-Kattan on 11/04/2021. // Copyright © 2021 Ethan Sarif-Kattan. All rights reserved. // import Cocoa protocol OpenableAppsUserPrefsDataSource: AnyObject { var appOpeningMethods: [String: AppOpeningMethod] { get } var hideFinderFromRunningApps: Bool { get } var hideActiveAppFromRunningApps: Bool { get } var defaultAppOpeningMethod: AppOpeningMethod { get } var sideToShowRunningApps: SideToShowRunningApps { get } var hideDuplicateApps: Bool { get } var duplicateAppsPriority: DuplicateAppsPriority { get } } class OpenableApps { public var apps: [OpenableApp] = [] // ground truth for all apps to show, both running and non running, ordered left to right public weak var userPrefsDataSource: OpenableAppsUserPrefsDataSource! private var runningApps: RunningApps private var regularApps: RegularApps init( userPrefsDataSource: OpenableAppsUserPrefsDataSource, runningApps: RunningApps, regularApps: RegularApps ) { self.userPrefsDataSource = userPrefsDataSource self.runningApps = runningApps self.regularApps = regularApps populateApps() } func update(runningApps: RunningApps, regularApps: RegularApps) { self.runningApps = runningApps self.regularApps = regularApps populateApps() } private func populateApps() { apps = [] // running and regular apps are already ordered internally switch userPrefsDataSource.sideToShowRunningApps { case .left: populateAppsWithRunningApps() populateAppsWithRegularApps() case .right: populateAppsWithRegularApps() populateAppsWithRunningApps() } } private func populateAppsWithRunningApps() { for runningApp in runningApps.apps { if ( userPrefsDataSource.hideDuplicateApps && userPrefsDataSource.duplicateAppsPriority == .regularApps && regularApps.apps.contains(where: {$0.id == runningApp.id}) ) { continue } guard let openableApp = try? OpenableApp( runningApp: runningApp, appOpeningMethod: userPrefsDataSource.appOpeningMethods[runningApp.id] ?? userPrefsDataSource.defaultAppOpeningMethod ) else { continue } apps.append(openableApp) } } private func populateAppsWithRegularApps() { for regularApp in regularApps.apps { if ( userPrefsDataSource.hideDuplicateApps && userPrefsDataSource.duplicateAppsPriority == .runningApps && runningApps.apps.contains(where: {$0.id == regularApp.id}) ) { continue } let openableApp = OpenableApp( regularApp: regularApp, appOpeningMethod: userPrefsDataSource.appOpeningMethods[regularApp.id] ?? userPrefsDataSource.defaultAppOpeningMethod ) apps.append(openableApp) } } } enum UpdateRegularAppWithRunningAppType { case add case remove } enum DuplicateAppsPriority: String { case runningApps = "runningApps" case regularApps = "regularApps" } ================================================ FILE: MenuBarDock/PreferencesViewController.swift ================================================ // // ViewController.swift // MenuBarDock // // Created by Ethan Sarif-Kattan on 02/03/2019. // Copyright © 2019 Ethan Sarif-Kattan. All rights reserved. // import Cocoa import CoreGraphics import ServiceManagement protocol PreferencesViewControllerDelegate: AnyObject { // Running Apps func runningAppsSortingMethodDidChange(_ value: RunningAppsSortingMethod) func hideFinderDidChange(_ value: Bool) func hideActiveAppDidChange(_ value: Bool) func hideDuplicateAppsDidChange(_ value: Bool) func preserveAppOrderDidChange(_ value: Bool) func rightClickByDefaultDidChange(_ value: Bool) // Regular Apps func regularAppsUrlsWereAdded(_ value: [URL]) func regularAppsUrlsWereRemoved(_ removedIndexes: IndexSet) func regularAppUrlWasMoved(oldIndex: Int, newIndex: Int) // General func infoWasPressed() func itemSlotWidthSliderDidChange(_ value: Double) func appIconSizeSliderDidChange(_ value: Double) func maxRunningAppsSliderDidChange(_ value: Int) func sideToShowRunningAppsDidChange(_ value: SideToShowRunningApps) func duplicateAppsPriorityDidChange(_ value: DuplicateAppsPriority) func appOpeningMethodDidChange(_ value: AppOpeningMethod) // Bottom func aboutWasPressed() func resetPreferencesToDefaultsWasPressed() func resetAppOpeningMethodsWasPressed() func launchAtLoginDidChange(_ value: Bool) } protocol PreferencesViewControllerUserPrefsDataSource: AnyObject { // Running Apps var runningAppsSortingMethod: RunningAppsSortingMethod { get } var hideFinderFromRunningApps: Bool { get } var hideActiveAppFromRunningApps: Bool { get } var hideDuplicateApps: Bool { get } var preserveAppOrder: Bool { get } var rightClickByDefault: Bool { get } // Regular Apps var regularAppsUrls: [URL] { get } // General var itemSlotWidth: CGFloat { get } var appIconSize: CGFloat { get } var maxRunningApps: Int { get } var sideToShowRunningApps: SideToShowRunningApps { get } var duplicateAppsPriority: DuplicateAppsPriority { get } var defaultAppOpeningMethod: AppOpeningMethod { get } // Bottom var launchAtLogin: Bool { get } } class PreferencesViewController: NSViewController { // this should do nothing weak var delegate: PreferencesViewControllerDelegate? weak var userPrefsDataSource: PreferencesViewControllerUserPrefsDataSource! // Running Apps @IBOutlet weak var mostRecentRightRadioButton: NSButton! @IBOutlet weak var mostRecentLeftRadioButton: NSButton! @IBOutlet weak var consistentSortOrderRadioButton: NSButton! @IBOutlet weak var hideFinderFromRunningAppsButton: NSButton! @IBOutlet weak var hideActiveAppFromRunningAppsButton: NSButton! @IBOutlet weak var hideDuplicateAppsButton: NSButton! @IBOutlet weak var preserveAppOrderButton: NSButton! @IBOutlet weak var rightClickByDefaultButton: NSButton! // Regular Apps @IBOutlet weak var regularAppsTable: NSTableView! @IBOutlet weak var regularAppsHintLabel: NSTextField! // General @IBOutlet weak var itemSlotWidthCounterLabel: NSTextField! @IBOutlet weak var itemSlotWidthSlider: NSSlider! @IBOutlet weak var appIconSizeCounterLabel: NSTextField! @IBOutlet weak var appIconSizeSlider: NSSlider! @IBOutlet weak var maxRunningAppsCounterLabel: NSTextField! @IBOutlet weak var maxRunningAppsSlider: NSSlider! @IBOutlet weak var sideToShowRunningAppsControl: NSSegmentedControl! @IBOutlet weak var duplicateAppsPriorityControl: NSSegmentedControl! // Bottom @IBOutlet weak var appOpeningMethodPopUp: NSPopUpButton! @IBOutlet weak var launchAtLoginButton: NSButton! override func viewDidLoad() { super.viewDidLoad() regularAppsTable.delegate = self regularAppsTable.dataSource = self regularAppsTable.doubleAction = #selector(tableRowDoubleClicked) regularAppsTable.registerForDraggedTypes([.string]) updateTable() } override func viewWillAppear() { super.viewWillAppear() initAppOpeningMethodPopup() updateUi() } func updateUi() { self.title = Constants.App.name + " Preferences" // Running Apps switch userPrefsDataSource.runningAppsSortingMethod { case .mostRecentOnRight: mostRecentRightRadioButton.state = .on case .mostRecentOnLeft: mostRecentLeftRadioButton.state = .on case .consistent: consistentSortOrderRadioButton.state = .on } hideFinderFromRunningAppsButton.state = userPrefsDataSource.hideFinderFromRunningApps ? .on : .off hideActiveAppFromRunningAppsButton.state = userPrefsDataSource.hideActiveAppFromRunningApps ? .on : .off hideDuplicateAppsButton.state = userPrefsDataSource.hideDuplicateApps ? .on : .off preserveAppOrderButton.state = userPrefsDataSource.preserveAppOrder ? .on : .off rightClickByDefaultButton.state = userPrefsDataSource.rightClickByDefault ? .on : .off // Regular Apps if userPrefsDataSource.regularAppsUrls.count > 0 { regularAppsHintLabel.stringValue = "Drag apps to reorder them" } else { regularAppsHintLabel.stringValue = "Click + to add apps" } // General itemSlotWidthCounterLabel.stringValue = "\(Int(userPrefsDataSource.itemSlotWidth.rounded()))" itemSlotWidthSlider.doubleValue = Double(userPrefsDataSource.itemSlotWidth) appIconSizeCounterLabel.stringValue = "\(Int(userPrefsDataSource.appIconSize.rounded()))" appIconSizeSlider.doubleValue = Double(userPrefsDataSource.appIconSize) maxRunningAppsCounterLabel.stringValue = "\(userPrefsDataSource.maxRunningApps)" maxRunningAppsSlider.integerValue = userPrefsDataSource.maxRunningApps switch userPrefsDataSource.sideToShowRunningApps { case .left: sideToShowRunningAppsControl.selectedSegment = 0 case .right: sideToShowRunningAppsControl.selectedSegment = 1 } duplicateAppsPriorityControl.isEnabled = userPrefsDataSource.hideDuplicateApps switch userPrefsDataSource.duplicateAppsPriority { case .runningApps: duplicateAppsPriorityControl.selectedSegment = 0 case .regularApps: duplicateAppsPriorityControl.selectedSegment = 1 } // Bottom appOpeningMethodPopUp.selectItem(withTitle: userPrefsDataSource.defaultAppOpeningMethod.rawValue.capitalizingFirstLetter()) launchAtLoginButton.state = userPrefsDataSource.launchAtLogin ? .on : .off } private func initAppOpeningMethodPopup() { appOpeningMethodPopUp.removeAllItems() appOpeningMethodPopUp.addItems(withTitles: [ AppOpeningMethod.launch.rawValue.capitalizingFirstLetter(), AppOpeningMethod.activate.rawValue.capitalizingFirstLetter() ]) } @IBAction func statusItemWidthSliderChanged(_ sender: NSSlider) { handleSliderChanged( slider: sender, sliderLabel: itemSlotWidthCounterLabel, sliderChanged: { (value) in self.delegate?.itemSlotWidthSliderDidChange(value) } ) } @IBAction func appIconSizeSliderChange(_ sender: NSSlider) { handleSliderChanged( slider: sender, sliderLabel: appIconSizeCounterLabel, sliderChanged: { (value) in self.delegate?.appIconSizeSliderDidChange(value) } ) } @IBAction func numberOfAppsSliderChanged(_ sender: NSSlider) { handleSliderChanged( slider: sender, sliderLabel: maxRunningAppsCounterLabel, sliderEndedChanging: { value in self.delegate?.maxRunningAppsSliderDidChange(Int(value)) } ) } @IBAction func runningAppsSortingMethodChanged(_ sender: Any) { var value: RunningAppsSortingMethod? if consistentSortOrderRadioButton.state == .on { value = .consistent } if mostRecentLeftRadioButton.state == .on { value = .mostRecentOnLeft } if mostRecentRightRadioButton.state == .on { value = .mostRecentOnRight } if let value = value { delegate?.runningAppsSortingMethodDidChange(value) } } @IBAction func resetPreferencesToDefaultsPressed(_ sender: Any) { showResetConfirmationAlert(title: "Warning", message: "You are about to reset all the preferences for \(Constants.App.name). The '\(Constants.App.regularAppsSectionTitle)' table will not be reset. Are you sure you want to proceed?") { (result) in if result { delegate?.resetPreferencesToDefaultsWasPressed() updateUi() // show updated user prefs } } } @IBAction func resetAppOpeningMethodsPressed(_ sender: Any) { showResetConfirmationAlert(title: "Warning", message: "You are about to reset all the individual app opening methods you may have previously set. Are you sure you want to proceed?") { (result) in if result { delegate?.resetAppOpeningMethodsWasPressed() } } } @IBAction func aboutPressed(_ sender: Any) { delegate?.aboutWasPressed() } @IBAction func launchAtLoginPressed(_ sender: NSButton) { delegate?.launchAtLoginDidChange(sender.state == .on) } @IBAction func appOpeningMethodChanged(_ sender: NSPopUpButton) { let value = AppOpeningMethod(rawValue: sender.selectedItem?.title.lowercased() ?? "") if let value = value { delegate?.appOpeningMethodDidChange(value) } } @IBAction func hideActiveAppFromRunningAppsPressed(_ sender: NSButton) { delegate?.hideActiveAppDidChange(sender.state == .on) } @IBAction func hideFinderFromRunningAppsPressed(_ sender: NSButton) { delegate?.hideFinderDidChange(sender.state == .on) } @IBAction func preserveAppOrderPressed(_ sender: NSButton) { delegate?.preserveAppOrderDidChange(sender.state == .on) } @IBAction func rightClickByDefaultPressed(_ sender: NSButton) { delegate?.rightClickByDefaultDidChange(sender.state == .on) } @IBAction func addOrRemovePressed(_ sender: NSSegmentedControl) { switch sender.selectedSegment { case 0: showFileExplorerToAddApps() case 1: removeSelectedApps() default: break } } @IBAction func showRunningAppsOnLeftOrRightSelected(_ sender: NSSegmentedControl) { switch sender.selectedSegment { case 0: delegate?.sideToShowRunningAppsDidChange(.left) case 1: delegate?.sideToShowRunningAppsDidChange(.right) default: break } } @IBAction func hideDuplicateAppsPressed(_ sender: NSButton) { delegate?.hideDuplicateAppsDidChange(sender.state == .on) updateUi() // to show or hide duplicate apps priority control } @IBAction func duplicateAppsPrioritySelected(_ sender: NSSegmentedControl) { switch sender.selectedSegment { case 0: delegate?.duplicateAppsPriorityDidChange(.runningApps) case 1: delegate?.duplicateAppsPriorityDidChange(.regularApps) default: break } } @IBAction func infoPressed(_ sender: NSButton) { delegate?.infoWasPressed() } private func handleSliderChanged( slider: NSSlider, sliderLabel: NSTextField, sliderChanged: ((_ value: Double) -> Void)? = nil, sliderEndedChanging: ((_ value: Double) -> Void)? = nil ) { let event = NSApplication.shared.currentEvent let startingDrag = event?.type == .leftMouseDown let endingDrag = event?.type == .leftMouseUp let dragging = event?.type == .leftMouseDragged if !(startingDrag || endingDrag || dragging) { return } sliderChanged?(slider.doubleValue) sliderLabel.stringValue = "\(slider.integerValue)" if endingDrag { sliderEndedChanging?(slider.doubleValue) } } private func showFileExplorerToAddApps() { let dialog = NSOpenPanel() dialog.title = "Select some apps" dialog.showsResizeIndicator = true dialog.directoryURL = URL(fileURLWithPath: "/Applications", isDirectory: true) dialog.showsHiddenFiles = false dialog.allowsMultipleSelection = true dialog.canChooseDirectories = false dialog.canChooseFiles = true dialog.allowedFileTypes = ["app"] if dialog.runModal() == NSApplication.ModalResponse.OK { delegate?.regularAppsUrlsWereAdded(dialog.urls) updateTable() updateUi() } else { // User clicked on "Cancel" return } } @IBAction func checkForUpdates(_ sender: NSButton) { if let url = URL(string: Constants.App.releasesURL) { NSWorkspace.shared.open(url) } } private func removeSelectedApps() { delegate?.regularAppsUrlsWereRemoved(regularAppsTable.selectedRowIndexes) updateTable() updateUi() } private func updateTable() { regularAppsTable.reloadData() } @objc private func tableRowDoubleClicked() { NSWorkspace.shared.activateFileViewerSelecting([userPrefsDataSource.regularAppsUrls[regularAppsTable.clickedRow]]) // reveal in finder } private func showResetConfirmationAlert(title: String, message: String, completion: (Bool) -> Void) { let alert = NSAlert() alert.messageText = title alert.informativeText = message alert.alertStyle = .critical alert.addButton(withTitle: "Reset") alert.addButton(withTitle: "Cancel") completion(alert.runModal() == .alertFirstButtonReturn) } } ================================================ FILE: MenuBarDock/RegularApp.swift ================================================ // // RegularApp.swift // Menu Bar Dock // // Created by Ethan Sarif-Kattan on 13/04/2021. // Copyright © 2021 Ethan Sarif-Kattan. All rights reserved. // import Cocoa class RegularApp { public var bundle: Bundle public var icon: NSImage public var name: String public var runningApp: NSRunningApplication? // once we open a regular app, it will be running, and so we want to show options for running apps in the dropdown menu such as 'quit' var id: String { bundle.bundleURL.absoluteString } init( bundle: Bundle, icon: NSImage, name: String ) { self.bundle = bundle self.icon = icon self.name = name } } ================================================ FILE: MenuBarDock/RegularApps.swift ================================================ // // RegularApps.swift // Menu Bar Dock // // Created by Ethan Sarif-Kattan on 12/04/2021. // Copyright © 2021 Ethan Sarif-Kattan. All rights reserved. // import Cocoa protocol RegularAppsUserPrefsDataSource: AnyObject { var regularAppsUrls: [URL] { get } } class RegularApps { // regular apps are just apps that use user added manually public var apps: [RegularApp] = [] // order is correct weak var userPrefsDataSource: RegularAppsUserPrefsDataSource! init( userPrefsDataSource: RegularAppsUserPrefsDataSource ) { self.userPrefsDataSource = userPrefsDataSource populateApps() } func update() { populateApps() } func handleAppActivation(runningApp: NSRunningApplication) { correspondingRegularApp(for: runningApp)?.runningApp = runningApp // we DON'T want to update here, because it doesn't make sense to update regular apps based on app activations, otherwise they would be RunningApp()s! } func handleAppQuit(runningApp: NSRunningApplication) { correspondingRegularApp(for: runningApp)?.runningApp = nil } private func correspondingRegularApp(for runningApp: NSRunningApplication) -> RegularApp? { return apps.first { $0.id == RunningApp(app: runningApp).id} // we just use RunningApp() just to get the id...kinda hacky } private func populateApps() { apps = [] for url in userPrefsDataSource.regularAppsUrls { if let app = regularApp(for: url) { apps.append(app) } } addRunningApps() } private func regularApp(for url: URL) -> RegularApp? { guard let bundle = Bundle(url: url) else { return nil } let icon = NSWorkspace.shared.icon(forFile: url.path) let app = RegularApp( bundle: bundle, icon: icon, name: bundle.name ) return app } private func addRunningApps() { let runningApps = NSWorkspace.shared.runningApplications for app in apps { app.runningApp = runningApps.first {RunningApp(app: $0).id == app.id} // we instantiate RunningApp just to get id. kinda hacky, but oh well. } } } ================================================ FILE: MenuBarDock/RunningApp.swift ================================================ // // RunningApp.swift // Menu Bar Dock // // Created by Ethan Sarif-Kattan on 13/04/2021. // Copyright © 2021 Ethan Sarif-Kattan. All rights reserved. // import Cocoa class RunningApp { public var app: NSRunningApplication public var id: String { app.bundleURL?.absoluteString ?? "UNKNOWN" // should never be unknown, but if so, fail gracefully } init(app: NSRunningApplication) { self.app = app } } // needs to be orderable so we can cut off the first N apps correctly depending on the max num running apps extension RunningApp: Reorderable { var orderElement: OrderElement { // so we can order using another array of bundleIds id } typealias OrderElement = String } ================================================ FILE: MenuBarDock/RunningApps.swift ================================================ // // RunningApps.swift // Menu Bar Dock // // Created by Ethan Sarif-Kattan on 12/04/2021. // Copyright © 2021 Ethan Sarif-Kattan. All rights reserved. // import Cocoa protocol RunningAppsUserPrefsDataSource: AnyObject { var hideFinderFromRunningApps: Bool { get } var hideActiveAppFromRunningApps: Bool { get } var maxRunningApps: Int { get } var regularAppsUrls: [URL] { get } var runningAppsSortingMethod: RunningAppsSortingMethod { get } } class RunningApps { public var apps: [RunningApp] = [] // state not getter for efficiency, will be ordered correctly private var ordering: [String] = [] // array of ids least to most recently activated weak var userPrefsDataSource: RunningAppsUserPrefsDataSource! public var limit: Int { if userPrefsDataSource.maxRunningApps == 0 && userPrefsDataSource.regularAppsUrls.count == 0 { // we need to show at least one app in the menu bar, or user won't be able to access preferences! return 1 } return userPrefsDataSource.maxRunningApps } init( userPrefsDataSource: RunningAppsUserPrefsDataSource ) { self.userPrefsDataSource = userPrefsDataSource populateApps() ordering = apps.map { $0.id } // populate the ordering array so the openable apps can start displaying correct order from the start. // the reason it's not ordered straight away: https://trello.com/c/ZFs3C32g } func update() { populateApps() } func handleAppActivation(runningApp: NSRunningApplication) { let runningApp = RunningApp(app: runningApp) // to get id self.ordering.removeAll(where: { $0 == runningApp.id }) self.ordering.append(runningApp.id) // needs this order for it to populate from the most helpful side correctly update() } func handleAppQuit(runningApp: NSRunningApplication) { let runningApp = RunningApp(app: runningApp) // to get id self.ordering.removeAll(where: { $0 == runningApp.id }) update() } private func populateApps() { if limit == 0 { apps = [] // for efficiency return } let newApps = NSWorkspace.shared.runningApplications .map { RunningApp(app: $0) } .filter {canShowRunningApp(app: $0)} .reorder(by: correctedOrdering()) apps = Array(limitNumApps(apps: newApps)) } private func canShowRunningApp(app: RunningApp) -> Bool { if app.app.activationPolicy != .regular {return false} if app.app.bundleIdentifier == Constants.App.finderBundleId && userPrefsDataSource.hideFinderFromRunningApps {return false} if userPrefsDataSource.hideActiveAppFromRunningApps == false {return true} else {return app.app != NSWorkspace.shared.frontmostApplication} } private func correctedOrdering() -> [String] { switch userPrefsDataSource.runningAppsSortingMethod { case .mostRecentOnRight: return ordering case .mostRecentOnLeft: return ordering.reversed() case .consistent: return ordering.sorted {$0 < $1} // fixed alphabetical ordering } } private func limitNumApps(apps: [RunningApp]) -> ArraySlice { switch userPrefsDataSource.runningAppsSortingMethod { case .mostRecentOnRight: return apps.suffix(limit) case .mostRecentOnLeft: return apps.prefix(limit) default: return apps.suffix(limit) // doesn't matter for this, because it doesn't really make sense anyway } } } enum RunningAppsSortingMethod: Int { case mostRecentOnRight = 0 case mostRecentOnLeft = 1 case consistent = 2 } enum SideToShowRunningApps: String { case left = "left" case right = "right" } ================================================ FILE: MenuBarDock/UserPrefs.swift ================================================ // // UserPrefs.swift // MenuBarDock // // Created by Ethan Sarif-Kattan on 03/03/2019. // Copyright © 2019 Ethan Sarif-Kattan. All rights reserved. // import Cocoa enum UserPrefsDefaultValues { static let appIconSize: CGFloat = 40 static let appOpeningMethods: [String: AppOpeningMethod] = [:] // openableApp id is the key static let defaultAppOpeningMethod = AppOpeningMethod.launch static let duplicateAppsPriority: DuplicateAppsPriority = .runningApps static let hideActiveAppFromRunningApps = true static let hideDuplicateApps = true static let hideFinderFromRunningApps = false static let launchAtLogin = true static let maxNumRunningApps = 10 // We need to show some apps when the user first open Menu Bar Dock, or it will be an instant turn off. static let preserveAppOrder = true static let regularAppsUrls: [URL] = [] static let rightClickByDefault = false static let sideToShowRunningApps: SideToShowRunningApps = .right static let statusItemWidth = CGFloat(30) static let runningAppsSortingMethod: RunningAppsSortingMethod = .mostRecentOnRight } class UserPrefs { var appIconSize: CGFloat = UserPrefsDefaultValues.appIconSize var appOpeningMethods = UserPrefsDefaultValues.appOpeningMethods var defaultAppOpeningMethod = UserPrefsDefaultValues.defaultAppOpeningMethod var duplicateAppsPriority = UserPrefsDefaultValues.duplicateAppsPriority var hideActiveAppFromRunningApps = UserPrefsDefaultValues.hideActiveAppFromRunningApps var hideDuplicateApps = UserPrefsDefaultValues.hideDuplicateApps var hideFinderFromRunningApps = UserPrefsDefaultValues.hideFinderFromRunningApps var launchAtLogin = UserPrefsDefaultValues.launchAtLogin var maxRunningApps = UserPrefsDefaultValues.maxNumRunningApps // make it go up really high so user has freedom if the have a very large long screen var preserveAppOrder = UserPrefsDefaultValues.preserveAppOrder var regularAppsUrls = UserPrefsDefaultValues.regularAppsUrls var rightClickByDefault = UserPrefsDefaultValues.rightClickByDefault var runningAppsSortingMethod: RunningAppsSortingMethod = UserPrefsDefaultValues.runningAppsSortingMethod var sideToShowRunningApps = UserPrefsDefaultValues.sideToShowRunningApps var itemSlotWidth = UserPrefsDefaultValues.statusItemWidth func resetToDefaults() { // cba about this shitty code tbh not worth my time appIconSize = UserPrefsDefaultValues.appIconSize defaultAppOpeningMethod = UserPrefsDefaultValues.defaultAppOpeningMethod duplicateAppsPriority = UserPrefsDefaultValues.duplicateAppsPriority hideActiveAppFromRunningApps = UserPrefsDefaultValues.hideActiveAppFromRunningApps hideDuplicateApps = UserPrefsDefaultValues.hideDuplicateApps hideFinderFromRunningApps = UserPrefsDefaultValues.hideFinderFromRunningApps maxRunningApps = UserPrefsDefaultValues.maxNumRunningApps // make it go up really high so user has freedom if the have a very large long screen preserveAppOrder = UserPrefsDefaultValues.preserveAppOrder // don't reset regularAppsUrls, it's not right rightClickByDefault = UserPrefsDefaultValues.rightClickByDefault runningAppsSortingMethod = UserPrefsDefaultValues.runningAppsSortingMethod sideToShowRunningApps = UserPrefsDefaultValues.sideToShowRunningApps itemSlotWidth = UserPrefsDefaultValues.statusItemWidth save() } func resetAppOpeningMethodsToDefaults() { appOpeningMethods = UserPrefsDefaultValues.appOpeningMethods } func save() { UserDefaults.standard.set(appIconSize, forKey: Constants.UserPrefs.appIconSize) UserDefaults.standard.set( Dictionary(uniqueKeysWithValues: appOpeningMethods.map({ key, value in (key, value.rawValue) })), forKey: Constants.UserPrefs.appOpeningMethods) UserDefaults.standard.set(defaultAppOpeningMethod.rawValue, forKey: Constants.UserPrefs.defaultAppOpeningMethod) UserDefaults.standard.set(duplicateAppsPriority.rawValue, forKey: Constants.UserPrefs.duplicateAppsPriority) UserDefaults.standard.set(hideActiveAppFromRunningApps, forKey: Constants.UserPrefs.hideActiveAppFromRunningApps) UserDefaults.standard.set(hideDuplicateApps, forKey: Constants.UserPrefs.hideDuplicateApps) UserDefaults.standard.set(hideFinderFromRunningApps, forKey: Constants.UserPrefs.hideFinderFromRunningApps) UserDefaults.standard.set(launchAtLogin, forKey: Constants.UserPrefs.launchAtLogin) UserDefaults.standard.set(maxRunningApps, forKey: Constants.UserPrefs.maxNumRunningApps) UserDefaults.standard.set(preserveAppOrder, forKey: Constants.UserPrefs.preserveAppOrder) UserDefaults.standard.set(regularAppsUrls.map { $0.absoluteString }, forKey: Constants.UserPrefs.regularAppsUrls) UserDefaults.standard.set(rightClickByDefault, forKey: Constants.UserPrefs.rightClickByDefault) UserDefaults.standard.set(runningAppsSortingMethod.rawValue, forKey: Constants.UserPrefs.runningAppsSortingMethod) UserDefaults.standard.set(sideToShowRunningApps.rawValue, forKey: Constants.UserPrefs.sideToShowRunningApps) UserDefaults.standard.set(itemSlotWidth, forKey: Constants.UserPrefs.statusItemWidth) } func load() { if let appIconSize = UserDefaults.standard.object(forKey: Constants.UserPrefs.appIconSize) as? CGFloat { self.appIconSize = appIconSize } if let defaultAppOpeningMethod = UserDefaults.standard.object(forKey: Constants.UserPrefs.defaultAppOpeningMethod) as? String { self.defaultAppOpeningMethod = AppOpeningMethod(rawValue: defaultAppOpeningMethod) ?? UserPrefsDefaultValues.defaultAppOpeningMethod } if let appOpeningMethods = UserDefaults.standard.object(forKey: Constants.UserPrefs.appOpeningMethods) as? [String: String] { self.appOpeningMethods = Dictionary(uniqueKeysWithValues: appOpeningMethods.map({ key, value in (key, AppOpeningMethod(rawValue: value) ?? UserPrefsDefaultValues.defaultAppOpeningMethod) })) } if let duplicateAppsPriority = UserDefaults.standard.object(forKey: Constants.UserPrefs.duplicateAppsPriority) as? String { self.duplicateAppsPriority = DuplicateAppsPriority(rawValue: duplicateAppsPriority) ?? UserPrefsDefaultValues.duplicateAppsPriority } if let hideActiveAppFromRunningApps = UserDefaults.standard.object(forKey: Constants.UserPrefs.hideActiveAppFromRunningApps) as? Bool { self.hideActiveAppFromRunningApps = hideActiveAppFromRunningApps } if let hideDuplicateApps = UserDefaults.standard.object(forKey: Constants.UserPrefs.hideDuplicateApps) as? Bool { self.hideDuplicateApps = hideDuplicateApps } if let hideFinderFromRunningApps = UserDefaults.standard.object(forKey: Constants.UserPrefs.hideFinderFromRunningApps) as? Bool { self.hideFinderFromRunningApps = hideFinderFromRunningApps } if let launchAtLogin = UserDefaults.standard.object(forKey: Constants.UserPrefs.launchAtLogin) as? Bool { self.launchAtLogin = launchAtLogin } if let maxNumRunningApps = UserDefaults.standard.object(forKey: Constants.UserPrefs.maxNumRunningApps) as? Int { self.maxRunningApps = maxNumRunningApps } if let preserveAppOrder = UserDefaults.standard.object(forKey: Constants.UserPrefs.preserveAppOrder) as? Bool { self.preserveAppOrder = preserveAppOrder } if let regularAppsUrlsStrs = UserDefaults.standard.object(forKey: Constants.UserPrefs.regularAppsUrls) as? [String] { var res: [URL] = [] for urlStr in regularAppsUrlsStrs { if let url = URL(string: urlStr) { res.append(url) } } self.regularAppsUrls = res } if let rightClickByDefault = UserDefaults.standard.object(forKey: Constants.UserPrefs.rightClickByDefault) as? Bool { self.rightClickByDefault = rightClickByDefault } if let runningAppsSortingMethodInt = UserDefaults.standard.object(forKey: Constants.UserPrefs.runningAppsSortingMethod) as? Int, let runningAppsSortingMethod = RunningAppsSortingMethod(rawValue: runningAppsSortingMethodInt) { self.runningAppsSortingMethod = runningAppsSortingMethod } if let sideToShowRunningApps = UserDefaults.standard.object(forKey: Constants.UserPrefs.sideToShowRunningApps) as? String { self.sideToShowRunningApps = SideToShowRunningApps(rawValue: sideToShowRunningApps) ?? UserPrefsDefaultValues.sideToShowRunningApps } if let statusItemWidth = UserDefaults.standard.object(forKey: Constants.UserPrefs.statusItemWidth) as? CGFloat { self.itemSlotWidth = statusItemWidth } } } extension UserPrefs: MenuBarItemsUserPrefsDataSource {} extension UserPrefs: OpenableAppsUserPrefsDataSource {} extension UserPrefs: RunningAppsUserPrefsDataSource {} extension UserPrefs: PreferencesViewControllerUserPrefsDataSource {} extension UserPrefs: RegularAppsUserPrefsDataSource {} ================================================ FILE: MenuBarDock/Utils.swift ================================================ // // Utils.swift // Menu Bar Dock // // Created by Ethan Sarif-Kattan on 11/04/2021. // Copyright © 2021 Ethan Sarif-Kattan. All rights reserved. // import Foundation protocol Reorderable { associatedtype OrderElement: Equatable var orderElement: OrderElement { get } } extension Array where Element: Reorderable { func reorder(by preferredOrder: [Element.OrderElement]) -> [Element] { sorted { guard let first = preferredOrder.firstIndex(of: $0.orderElement) else { return false } guard let second = preferredOrder.firstIndex(of: $1.orderElement) else { return true } return first < second } } } extension Array { mutating func remove(at set: IndexSet) { var arr = Swift.Array(self.enumerated()) arr.removeAll {set.contains($0.offset)} self = arr.map {$0.element} } } extension String { func capitalizingFirstLetter() -> String { return prefix(1).capitalized + dropFirst() } mutating func capitalizeFirstLetter() { self = self.capitalizingFirstLetter() } } extension Bundle { var name: String { self.localizedInfoDictionary?[kCFBundleNameKey as String] as? String ?? self.infoDictionary?[kCFBundleNameKey as String] as? String ?? self.bundleURL.lastPathComponent.components(separatedBy: ".")[0] } } ================================================ FILE: MenuBarDockTests/Info.plist ================================================ CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName $(PRODUCT_NAME) CFBundlePackageType BNDL CFBundleShortVersionString 1.0 CFBundleVersion 1 ================================================ FILE: MenuBarDockTests/MenuBarDockTests.swift ================================================ // // MenuBarDockTests.swift // MenuBarDockTests // // Created by Ethan Sarif-Kattan on 02/03/2019. // Copyright © 2019 Ethan Sarif-Kattan. All rights reserved. // import XCTest class MenuBarDockTests: XCTestCase { override func setUp() { // Put setup code here. This method is called before the invocation of each test method in the class. } override func tearDown() { // Put teardown code here. This method is called after the invocation of each test method in the class. } func testExample() { // This is an example of a functional test case. // Use XCTAssert and related functions to verify your tests produce the correct results. } func testPerformanceExample() { // This is an example of a performance test case. self.measure { // Put the code you want to measure the time of here. } } } ================================================ FILE: MenuBarDockUITests/Info.plist ================================================ CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier $(PRODUCT_BUNDLE_IDENTIFIER) CFBundleInfoDictionaryVersion 6.0 CFBundleName $(PRODUCT_NAME) CFBundlePackageType BNDL CFBundleShortVersionString 1.0 CFBundleVersion 1 ================================================ FILE: MenuBarDockUITests/MenuBarDockUITests.swift ================================================ // // MenuBarDockUITests.swift // MenuBarDockUITests // // Created by Ethan Sarif-Kattan on 02/03/2019. // Copyright © 2019 Ethan Sarif-Kattan. All rights reserved. // import XCTest class MenuBarDockUITests: XCTestCase { override func setUp() { // Put setup code here. This method is called before the invocation of each test method in the class. // In UI tests it is usually best to stop immediately when a failure occurs. continueAfterFailure = false // UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method. XCUIApplication().launch() // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. } override func tearDown() { // Put teardown code here. This method is called after the invocation of each test method in the class. } func testExample() { // Use recording to get started writing UI tests. // Use XCTAssert and related functions to verify your tests produce the correct results. } } ================================================ FILE: Podfile ================================================ # Uncomment the next line to define a global platform for your project platform :macos, '10.15' target 'Launcher' do # Comment the next line if you're not using Swift and don't want to use dynamic frameworks use_frameworks! # Pods for Launcher end target 'Menu Bar Dock' do # Comment the next line if you're not using Swift and don't want to use dynamic frameworks use_frameworks! # Pods for Menu Bar Dock pod 'SwiftLint' target 'Menu Bar DockTests' do inherit! :search_paths # Pods for testing end target 'Menu Bar DockUITests' do inherit! :search_paths # Pods for testing end end ================================================ FILE: README.md ================================================
# [Menu Bar Dock](https://www.menubardock.com/)

![Preview Image](./assets/menu-bar-dock-preview.webp) ### Menu Bar Dock shows MacOS apps in the menu bar. With a click of the app icon, you can open the app straight from the menu bar.
**It is highly recommended that you enable automatically hide and show the dock in system preferences**. Now you have freed up all that space at the bottom of the screen where the dock used to always be showing, and you can open apps by clicking their icon in the menu bar at the top! ![Preferences example](./assets/menu-bar-dock-prefs.png) Menu Bar Dock can work in two ways: running apps and regular apps. To get an experience most similar to the normal dock you're used to, just use regular apps. Do this by going to preferences (right-click a menu bar item), add your desired apps to the 'Regular Apps' section, then set the max number of running apps to 0. However, we recommend you give the running apps feature a try, it can be very useful for switching quickly between recently used apps. ### Reasons to use Menu Bar Dock ... - **Save screen space** - You don't need the normal dock to show at the bottom of your screen any more. Lots of valuable space saved! While automatically unhiding the dock to go to your app solves the problem of screen space, you must wait until it shows (if it even does show - often it doesn't due to lag), then look for the icon you want, then drag your mouse across the screen to click and open it. Who actually wants that? - **Laggy computers** - If your computer suffers from lag when your activity gets more heavy and starts causing problems with switching apps, this is the perfect app for you. - **Save time and increase comfort** - While the Command+Tab shortcut can switch between your open apps in order, it requires one hand always on the keyboard, and can be laggy and take a while to show - by then you could have unhide the dock and found the app you want to click on manually! Time-wasting! ### Extra info Access the preferences window by right-clicking any app being displayed in the menu bar dock, and then selecting 'Menu Bar Dock Preferences' at the bottom. If you hold command while dragging the icons to place them where you would like on the menu bar. It will reorder automatically once you change apps again. For more info and tips, press the blue 'i' in the general section of the preferences window of the app. Any feedback or queries can be submitted [here](https://github.com/EthanSK/Menu-Bar-Dock/issues) The number of downloads for this app can be found by running `curl -s https://api.github.com/repos/EthanSK/Menu-Bar-Dock/releases | egrep '"name"|"updated_at"|"download_count"'` in a terminal. Support this project: Buy me a coffee Buy me a coffee ### Notes - Do not upload the binary directly to github releases. Upload a compressed version, otherwise the app won't open after download. - To check downloads of Menu Bar Dock, use Github API https://stackoverflow.com/a/4339085/6820042 `curl -s https://api.github.com/repos/EthanSK/Menu-Bar-Dock/releases | egrep '"name"|"download_count"'` - When exporting, distribute it and make sure to upload to Apple's notary services, otherwise it will give a warning when trying to it normally (and Chrome will say that the download is potentially unsafe) - Disabled app sandbox, otherwise it can't quit apps using the dropdown menu on right click - The login item for the launcher is found in the file at `/private/var/db/com.apple.xpc.launchd/loginitems.501.plist` - The plist with the user prefs is _usually_ found in the file at `/Users/ethansarif-kattan/Library/Preferences/com.ethansk.MenuBarDock.plist`. Use `defaults delete com.ethansk.MenuBarDock` in terminal to delete it properly. ================================================ FILE: _config.yml ================================================ theme: jekyll-theme-cayman show_downloads: false #if true it shows the download links to the actual project not the app which is confusing. favicon: /favicon.ico image: /favicon.ico ================================================ FILE: assets/logo.ai ================================================ %PDF-1.5 % 1 0 obj <>/OCGs[5 0 R 24 0 R 45 0 R 66 0 R 88 0 R 109 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream application/pdf Web Adobe Illustrator CC 23.0 (Macintosh) 2021-04-16T02:12:23+01:00 2021-04-16T02:39:50+01:00 2021-04-16T02:39:50+01:00 252 256 JPEG /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAD8AwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7 FXYq7FXYq7FVK4uoLdOUrBfAdz8hkoxJ5NGfUQxC5GkquNdlaogUIP5m3P3dMyI4B1dJn7YkdoCv egZL27kPxysfatB9wy0QA6Otnq8s+cihZbmBHCyyqrt9kMwBPyrkxEtG5V0nnQ1SRl+RIyJiCzjm nHkSPiioNYvIyOTCRfBuv3jK5YYlzsPauaHM8Q801tNVtrghT+7kP7Ld/kconiId1pu0seXb6ZIz KnYOxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxVB6hqKWq8Vo0zdF8 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 2Q== proof:pdf uuid:65E6390686CF11DBA6E2D887CEACB407 xmp.did:3f6a623f-555c-4fe8-a423-98003deef316 uuid:0372ef3c-d304-074f-a7aa-71cef0e09225 uuid:cebda437-53a2-5141-87f3-042977ff5a19 xmp.did:36a97d48-a2f9-4f7c-b55d-ec24a45439e1 uuid:65E6390686CF11DBA6E2D887CEACB407 proof:pdf saved xmp.iid:3f6a623f-555c-4fe8-a423-98003deef316 2021-04-16T02:12:23+01:00 Adobe Illustrator CC 23.0 (Macintosh) / Web Document 1 False False 512.000000 512.000000 Pixels Cyan Magenta Yellow Default Swatch Group 0 White RGB PROCESS 255 255 255 Black RGB PROCESS 0 0 0 RGB Red RGB PROCESS 255 0 0 RGB Yellow RGB PROCESS 255 255 0 RGB Green RGB PROCESS 0 255 0 RGB Cyan RGB PROCESS 0 255 255 RGB Blue RGB PROCESS 0 0 255 RGB Magenta RGB PROCESS 255 0 255 R=193 G=39 B=45 RGB PROCESS 193 39 45 R=237 G=28 B=36 RGB PROCESS 237 28 36 R=241 G=90 B=36 RGB PROCESS 241 90 36 R=247 G=147 B=30 RGB PROCESS 247 147 30 R=251 G=176 B=59 RGB PROCESS 251 176 59 R=252 G=238 B=33 RGB PROCESS 252 238 33 R=217 G=224 B=33 RGB PROCESS 217 224 33 R=140 G=198 B=63 RGB PROCESS 140 198 63 R=57 G=181 B=74 RGB PROCESS 57 181 74 R=0 G=146 B=69 RGB PROCESS 0 146 69 R=0 G=104 B=55 RGB PROCESS 0 104 55 R=34 G=181 B=115 RGB PROCESS 34 181 115 R=0 G=169 B=157 RGB PROCESS 0 169 157 R=41 G=171 B=226 RGB PROCESS 41 171 226 R=0 G=113 B=188 RGB PROCESS 0 113 188 R=46 G=49 B=146 RGB PROCESS 46 49 146 R=42 G=20 B=100 RGB PROCESS 42 20 100 R=102 G=45 B=145 RGB PROCESS 102 45 145 R=147 G=39 B=143 RGB PROCESS 147 39 143 R=158 G=0 B=93 RGB PROCESS 158 0 93 R=212 G=20 B=90 RGB PROCESS 212 20 90 R=237 G=30 B=121 RGB PROCESS 237 30 121 R=199 G=178 B=153 RGB PROCESS 199 178 153 R=153 G=134 B=117 RGB PROCESS 153 134 117 R=115 G=99 B=87 RGB PROCESS 115 99 87 R=83 G=71 B=65 RGB PROCESS 83 71 65 R=198 G=156 B=109 RGB PROCESS 198 156 109 R=166 G=124 B=82 RGB PROCESS 166 124 82 R=140 G=98 B=57 RGB PROCESS 140 98 57 R=117 G=76 B=36 RGB PROCESS 117 76 36 R=96 G=56 B=19 RGB PROCESS 96 56 19 R=66 G=33 B=11 RGB PROCESS 66 33 11 Grays 1 R=0 G=0 B=0 RGB PROCESS 0 0 0 R=26 G=26 B=26 RGB PROCESS 26 26 26 R=51 G=51 B=51 RGB PROCESS 51 51 51 R=77 G=77 B=77 RGB PROCESS 77 77 77 R=102 G=102 B=102 RGB PROCESS 102 102 102 R=128 G=128 B=128 RGB PROCESS 128 128 128 R=153 G=153 B=153 RGB PROCESS 153 153 153 R=179 G=179 B=179 RGB PROCESS 179 179 179 R=204 G=204 B=204 RGB PROCESS 204 204 204 R=230 G=230 B=230 RGB PROCESS 230 230 230 R=242 G=242 B=242 RGB PROCESS 242 242 242 Web Color Group 1 R=63 G=169 B=245 RGB PROCESS 63 169 245 R=122 G=201 B=67 RGB PROCESS 122 201 67 R=255 G=147 B=30 RGB PROCESS 255 147 30 R=255 G=29 B=37 RGB PROCESS 255 29 37 R=255 G=123 B=172 RGB PROCESS 255 123 172 R=189 G=204 B=212 RGB PROCESS 189 204 212 Adobe PDF library 15.00 21.0.0 endstream endobj 3 0 obj <> endobj 7 0 obj <>/Resources<>/ExtGState<>/Properties<>>>/Thumb 115 0 R/TrimBox[0.0 0.0 512.0 512.0]/Type/Page>> endobj 111 0 obj <>stream HWK7 )t}u0 Y$cGxmT$"Ioӻ|]r*,Ƿ??9[$xxVXޖ 08Is^˙t{xJ-zƫRV!!y/k4ܨ(jleO x3>v[CcB; < վy?2.JY4|XA@_qB=#Hq*3P n ͍㺵K5l6QUܘ)d%H%zE;T2) :sgkiΗw{P^:졡:|N0QڸNh*zBA1$Jد10NF958F}]JE/Bb4PBSl=EQrz; A})2EH4$ Z16ܗ) y&C-zpmZ`um?׆G8׃9.z%-|EA>stream 8;Z,';3o*B#X",SHC19I?XAKIjZ8k:aIm6Jr7arJWGWhA&&W&.@D=`dR%MBH4th $Yk:jATL>e-C'78LjNV''$JNbb^[Ofd+eN1rT1BISZBNU5`G`d8/Mp1@K%]ioaCV( !A\D<`R&Z+e>p@N1gii!/-O3dICSil'o9IEh"qWa=+8Z%.39o?HGBA>VRo"c+WVVE %k>*S+-[;eC&h>s,d2[0!qsT75HeYrg@n)A(&VVI?uSTF.,RSqN9#!$C&UV0%soB3 N%4V:[8"7>TdlZnf=cea60b)fb%Ig"8DC4iHRIo"EjNS,/OKZps.f=V'ruRY3phDQ mks&=O[SYn.Nae9hhUo%l'C'Is.G1M)k=UjHH-A?r72;tQ(E/\(!XKT&`$`Dn=e/7 *.GPMqRDr$p("bD)#,J!$rk8'SFoYWh"R?o@*`b%*?A,QR"*nDqm=-8=c^eAj^0O1 :M$:B<'0\o#$h-6^H[KKl+`j1i^*S@1jh:mqs)1b:VR]'Ho+?HWd9C8T78S.'uWk/ 9(t."D$h0'kOn]`4MFNS@H-,>lqG_=E-VNN5G-p4+8?X_,:A8E^Kf endstream endobj 116 0 obj [/Indexed/DeviceRGB 255 117 0 R] endobj 117 0 obj <>stream 8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn 6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 109 0 obj <> endobj 118 0 obj [/View/Design] endobj 119 0 obj <>>> endobj 114 0 obj <> endobj 113 0 obj [/ICCBased 120 0 R] endobj 120 0 obj <>stream HyTSwoɞc [5laQIBHADED2mtFOE.c}08׎8GNg9w߽'0 ֠Jb  2y.-;!KZ ^i"L0- @8(r;q7Ly&Qq4j|9 V)gB0iW8#8wթ8_٥ʨQQj@&A)/g>'Kt;\ ӥ$պFZUn(4T%)뫔0C&Zi8bxEB;Pӓ̹A om?W= x-[0}y)7ta>jT7@tܛ`q2ʀ&6ZLĄ?_yxg)˔zçLU*uSkSeO4?׸c. R ߁-25 S>ӣVd`rn~Y&+`;A4 A9=-tl`;~p Gp| [`L`< "A YA+Cb(R,*T2B- ꇆnQt}MA0alSx k&^>0|>_',G!"F$H:R!zFQd?r 9\A&G rQ hE]a4zBgE#H *B=0HIpp0MxJ$D1D, VĭKĻYdE"EI2EBGt4MzNr!YK ?%_&#(0J:EAiQ(()ӔWT6U@P+!~mD eԴ!hӦh/']B/ҏӿ?a0nhF!X8܌kc&5S6lIa2cKMA!E#ƒdV(kel }}Cq9 N')].uJr  wG xR^[oƜchg`>b$*~ :Eb~,m,-ݖ,Y¬*6X[ݱF=3뭷Y~dó ti zf6~`{v.Ng#{}}jc1X6fm;'_9 r:8q:˜O:ϸ8uJqnv=MmR 4 n3ܣkGݯz=[==<=GTB(/S,]6*-W:#7*e^YDY}UjAyT`#D="b{ų+ʯ:!kJ4Gmt}uC%K7YVfFY .=b?SƕƩȺy چ k5%4m7lqlioZlG+Zz͹mzy]?uuw|"űNwW&e֥ﺱ*|j5kyݭǯg^ykEklD_p߶7Dmo꿻1ml{Mś nLl<9O[$h՛BdҞ@iءG&vVǥ8nRĩ7u\ЭD-u`ֲK³8%yhYѹJº;.! zpg_XQKFAǿ=ȼ:ɹ8ʷ6˶5̵5͵6ζ7ϸ9к<Ѿ?DINU\dlvۀ܊ݖޢ)߯6DScs 2F[p(@Xr4Pm8Ww)Km endstream endobj 112 0 obj <> endobj 121 0 obj <> endobj 122 0 obj <>stream %!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 17.0 %%AI8_CreatorVersion: 23.0.4 %%For: (Ethan Sarif-Kattan) () %%Title: (logo.ai) %%CreationDate: 16/04/2021 02:39 %%Canvassize: 16383 %%BoundingBox: 33 -484 480 -28 %%HiResBoundingBox: 33.0746670584986 -483.580034269988 479.621006193298 -28 %%DocumentProcessColors: Cyan Magenta Yellow %AI5_FileFormat 13.0 %AI12_BuildNumber: 589 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%RGBProcessColor: 0 0 0 ([Registration]) %AI3_Cropmarks: 0 -512 512 0 %AI3_TemplateBox: 256.5 -256.5 256.5 -256.5 %AI3_TileBox: -23.5 -636 535.5 147 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 6 %AI9_ColorModel: 1 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI9_OpenToView: -1121.8992565707 581.852614276231 0.751786916543069 2548 1389 18 0 0 6 44 0 0 0 1 1 1 1 1 0 0 %AI5_OpenViewLayers: 7 %%PageOrigin:-144 -556 %AI7_GridSettings: 72 8 72 8 1 0 0.800000011920929 0.800000011920929 0.800000011920929 0.899999976158142 0.899999976158142 0.899999976158142 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 123 0 obj <>stream %%BoundingBox: 33 -484 480 -28 %%HiResBoundingBox: 33.0746670584986 -483.580034269988 479.621006193298 -28 %AI7_Thumbnail: 128 128 8 %%BeginData: 17602 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C45FD3AFFAFAFAFFD058BAF8BAFAFFD70FFAFAF8A8B678B668B8B8B66 %8B8B8B668B8BAFAFFD6CFFFD158BAFFD67FFAFAF668B60FD058B668B6085 %608B608B8B8B668B668B608BAFFD64FFAFFD078B60855454294E292A2954 %545A60FD088BFD62FF8B8B668B8B8B66612F2923232329232A2329232923 %29295A60FD058B8AFD60FFFD068B6054232A232A232A292A232A292A232A %232A232A5AFD068BFD5EFF8B8B608B8B8B2F232329232923292329232923 %29232923292329232329618B8B8A8B60FD5CFFAFFD058B292A232A234E29 %2A234E292A234E292A234E292A234E292A235BFD058BFD5AFFAFFD048B85 %2323232A2329232A2329232A2329232A2329232A2329232A2329235A8B8B %668B8BFD58FFAFFD048B85232A292A232A292A232A292A232A292A232A29 %2A232A292A232A292A235AFD048BAFFD57FF8B668B668B29232329232923 %2923292329232923292329232923292329232923292329025A8B8B608BAF %FD56FFFD048B302A234E292A234E292A234E292A234E292A234E292A234E %292A234E292A232A29858B8B8BAFFD55FF8A8B8B8B5A232329232A232923 %2A2329232A2329232A2329232A2329232A2329232A23292323298B8A8B67 %AFFD53FFAFFD048B4E232A292A232A292A232A292A232A232A232A232323 %2A292A232A292A232A292A232A5AFD048BFD53FFAF668B8A5A2329232923 %292329232923292323295A60856061302902292329232923292329232923 %548A8B608BAFFD52FFFD048B2A2A234E292A234E292A234E235460FD088B %5A232A234E292A234E292A234E23858B8B8BAFFD51FFAF8B8B8B5A292329 %232A2329232A232923548B8B668B8B8B66FD048B5A2329232A2329232A23 %292323308B668B8BFD51FFAF678B8B5A232A292A232A292A232A234EFD04 %8B678B8B8B67FD048B5B232A232A292A232A292A234EFD048BFD51FF8B8B %608B2923232923292329232923295A8B608B66AFAEFFAFAF848B8A8B6654 %2329232923292329232923858B8B60FD51FFFD048B4E234E292A234E292A %232A30FD048BAFFD06FFFD048B5A2A234E292A234E292A232A5A8B8B8BAF %FD50FF8B8B8B852329232A2329232A2329235A8B8B66AFFD08FF678B8B8B %2929232A2329232A2329235A8B8B66AFFD4FFFAF8B8B8B602A232A232A29 %2A232A23295A8B8B8BAFFD08FFAF8B8B8B54232A232A292A232A2929308B %8B8BAFFD50FF608B8B602329232923292329232923618A8B8AFD09FF848B %8B8B292323292329232923292354668B66AFFD4FFFAF8B8B8B602A232A23 %4E292A234E292A608B8B8BAFFD08FFAF8B8B8B54232A234E292A234E292A %548B8B8BAFFD50FF8A8B8B85232A2329232A2329232A235A8B8B67AFFD08 %FF668B8B8B23292329232A2329232A235A8B8B67AFFD50FFFD048B4E232A %292A232A292A232A30FD048BAFFD06FFFD048B5A29232A292A232A292A23 %2A5A8B8B8BAFFD50FF8B8B608B2923232923292329232923295A8B608B66 %AFAEFFAFAF848B8A8B66542329232923292329232923858B8B60FD51FFAF %8B8B8B5A234E292A234E292A234E2354FD0D8B5B232A234E292A234E292A %234EFD048BFD51FFAF8B668B6023232A2329232A2329232A2354608B8B8B %668B8B8B668B8B5A232A2329232A2329232A23232F8B8B8B8AFD52FFFD04 %8B292A232A292A232A292A232A235460FD078B615A232A232A292A232A29 %2A232A23858B8B8BAFFD52FFAF668B8B5A23292329232923292329232923 %23295A608560603029022923292329232923292329232A668B608BAFFD52 %FFAFFD048B4E234E292A234E292A234E292A232A232A294E232A234E292A %234E292A234E292A232A5AFD048BFD54FF8B8B668B5A23232A2329232A23 %29232A2329232A2329232A2329232A2329232A2329232A2323298B8B8B66 %FD56FFFD048B3023232A292A232A292A232A292A232A292A232A292A232A %292A232A292A232A23858B8B8BAFFD56FF8B668B668B2923232923292329 %23292329232923292329232923292329232923292329025A8B8B608BAFFD %57FFFD048B85232A292A234E292A234E292A234E292A234E292A234E292A %234E292A235AFD048BAFFD58FFAF8B668B8B6123292329232A2329232A23 %29232A2329232A2329232A2329232A2354FD048B8AFD5AFFFD058B85292A %232A232A292A232A292A232A292A232A292A232A292A235BFD058BFD5CFF %8B8B608B8B8B2F2323292329232923292329232923292329232923232960 %8A8B8A8B60FD5EFFFD068B6054232A292A234E292A234E292A234E292A23 %4E5AFD068BFD60FFFD048B668B8B60292A2329232A2329232A2329232929 %5A608B8B8B668B8BFD62FFAFFD078B5A2A232A232A292A232A292A29FD08 %8BFD64FFAFAF668B608B8B8B23292329232923292329235A8B8B8A8B608B %AFFD68FFFD048B854E232A234E292A234E292A5AFD048BFD6CFF8A8B8B8B %292A2329232A2329232A235A8B8B67AFFD6CFF8B8B8B852A232A292A232A %292A232A5A8B8B8BAFFD62FFAFFFFFFFAFFFFFFFAFFF8B8B668B29232329 %232923292329025A8B8B60AFFFFFAFFFFFFFAFFFFFFFAFFD52FFAFAFFD11 %8B4E234E292A234E292A232A5AFD108BAF8BFD4DFFAF8B8B668B8B8B668B %8B8B668B8B8B66FD058B2929232A2329232A2329235A8B8B668B8B8B668B %8B8B668B8B8B668B678B66AFAFFD49FFAF67FD138B602A232A232A292A23 %2A292930FD138B678BAFFD47FFAF668B608B8B8B60856085608560856085 %608560855A2A232923292329232923292329308560856085608560856085 %60856085668B8B8B608BAFFD45FFAFFD048B8554294E292A234E292A234E %292A234E292A234E292A234E292A234E292A232A292A234E292A234E292A %234E292A23545AFD058BFD45FF8A8B8B8B5A2A2329232A2329232A232923 %2A2329232A2329232A2329232A2329232A2329232A2329232A2329232A23 %29232A23292323308B8A8B67AFFD43FFAF8B8B8B612A232A292A232A292A %232A292A232A292A232A292A232A292A232A292A232A292A232A292A232A %292A232A292A232A292A23245AFD048BFD43FFAF668B8A5A232923292329 %232923292329232923292329232923292329232923292329232923292329 %2329232923292329232923292329232A608B608BAFFD42FFFD048B292A23 %4E292A234E292A234E292A234E292A234E292A234E292A234E292A234E29 %2A234E292A234E292A234E292A234E292A234E23858B8B8BFD43FF8B678B %602A2329232A2329232A2329232A2329232A2329232A2329232A2329232A %2329232A2329232A2329232A2329232A2329232A232923235A8B668BAFFD %42FFFD048B292A292A232A292A232A292A232A292A232A292A232A292A23 %2A292A232A292A232A292A232A292A232A292A232A292A232A292A23858B %8B8BFD43FFAF608B8B5A0229232923292329232923292329232923292329 %232923292329232923292329232923292329232923292329232923292329 %2329608B668BAFFD42FFAF8B8B8B614E232A234E292A234E292A234E292A %234E292A234E292A234E292A234E292A234E292A234E292A234E292A234E %292A234E23235AFD048BFD44FF8A8B8B8B5A2A2329232A2329232A232923 %2A2329232A2329232A2329232A2329232A2329232A2329232A2329232A23 %29232A23292323548B8A8B67AFFD44FFAF678B8B8B605A292A232A292A23 %2A292A232A292A232A232A232A292A232A292A232A2329232A292A232A29 %2A232A292A232A29545A8B8B8B67AFFD46FFAF608B8A8B668B6085608560 %8560856085608560855A5423292329232923292329232A5A856085608560 %85608560856085608B8B8B668B668BAEFD2EFFAFFFAFFD16FFAFFD138BAF %612A234E292A234E292A232A54FD158BAFFD15FFAFAFAFFD14FFAFAF8B8B %668B8BAFAFFD14FFAF8B8B668B8B8B668B8B8B668B8B8B66FD058B292923 %2A2329232A2329235A8B8B668B8B8B668B8B8B668B8B8B668B678B66AFAF %FD14FFAF8A8B678B668BAFFD11FF8B67FD078BAFFD15FFAFAFFD108B604E %232A232A292A232A23295AFD108BAFAFFD16FFAFFD068B678BAFFD0FFFAF %668B608B8B8B608B668BAEFD17FFAFFFFFFFAFFFFFFFAFFFFFFF848B8B8B %29292329232923292329235A8B8B66AFFD04FFAFFFFFFFAFFD1AFF8B608B %8AFD058B608BAFFD0EFFFD048B605A5AFD058BAFFD22FFAF8B8B854E232A %234E292A234E292A5A8B8B8BAFFD22FFAF678B8B8B615B5AFD048BAFFD0D %FFFD048B5A292323308B8B8B668BAFFD21FF8A8B8B8B292A2329232A2329 %232A235A8B8B67AFFD20FFAF8B678B668B602A02232F8B8A8B8BFD0DFFFD %048B54232A232330FD058BAFFD20FF8B8B8B852A232A292A232A292A232A %5A8B8B8BAFFD1FFFAF8B678B8B8B5A2A232A232A608B8B8BAFFD0CFF8A8B %668B292323292323298B8B8B608B8BFD1FFF8B8B668B2923232923292329 %2329025A8B8B60AFFD1EFFAE8B668B668B5A2323292329025A8B8B60AFFD %0BFFAF8B8B8B602A234E292A232A30FD068BFD1EFFAF8B8B8B4E234E292A %234E292A232A5A8B8B8BAFFD1DFFAFFD058B5A2A234E292A232A54FD048B %FD0BFFAF678B8B5A2329232A2329232329FD058B8AFD1DFFFD048B292923 %2A2329232A2329235A8B8B66AFFD1CFFAF8B668B8B8B30232329232A2329 %234E8B8B668BFD0BFFFD048B302A292A232A292A232A2985FD058BFD1CFF %AF8B8B604E232A232A292A232A23295A8B8B8BAFFD1BFFAFFD058B542323 %2A292A232A292A23858B8B8BFD0BFF8B608B602A23292329232923292323 %23858B8B8A8B84FD1BFF848B8B8B29292329232923292329235A8B8B66AF %FD1AFF8B8B608B8B8B2F23232923292329232923235A8B8A8BAEFD0AFF8B %8B8B85232A292A234E292A234E292A2385FD058BFD1AFFAF8B8B854E232A %234E292A234E292A5A8B8B8BAFFD19FFAFFD058B2A2A292A234E292A234E %292A235A8B8B8BAFFD09FFAF8B668B5A23232A2329232A2329232A232323 %618B8B668B8BAFFD18FF8A8B8B8B292A2329232A2329232A235A8B8B67AF %FD18FF8AFD058B2923232A2329232A2329232A2323298B8B8B8AFD09FFAF %8B8B8B5A232A232A292A232A292A232A292A235BFD058BFD18FF8B8B8B85 %2A232A292A232A292A232A5A8B8B8BAFFD17FFFD068B292A292A232A292A %232A292A232A232A608B8B8BAFFD08FF848B8B8B29292329232923292329 %232923292329025A8B8B608B66AFFD16FF8B8B668B292323292329232923 %29025A8B8B60AFFD16FF848B8A8B8B852323232923292329232923292329 %232923608A8B66AFFD07FFAF8B8B8B604E232A234E292A234E292A234E29 %2A234E235AFD058BAFFD15FFAF8B8B8B4E234E292A234E292A232A5A8B8B %8BAFFD15FFFD058B85292A234E292A234E292A234E292A234E292A5A8B8B %8BAFFD07FFAF668B8B5A232A2329232A2329232A2329232A2329232A2354 %668B8B8B66AFFD14FFFD048B2929232A2329232A2329235A8B8B66AFFD14 %FF8B8B668B8B6023292329232A2329232A2329232A2329232A23548B8B67 %8BFD07FFAF8B8B8B5A23232A292A232A292A232A292A232A292A232A2354 %FD048B67AFFD13FFAF8B8B604E232A232A292A232A23295A8B8B8BAFFD13 %FFFD058B5B232A232A292A232A292A232A292A232A292A232A29FD048BFD %07FF8B668B66542329232923292329232923292329232923292329232A60 %8B8A8B60AFFD12FF848B8B8B29292329232923292329235A8B8B66AFFD11 %FFAF668B608B8B5A02292329232923292329232923292329232923292329 %608B608BAFFD06FFFD048B292A234E292A234E292A234E292A234E292A23 %4E292A234E85FD048BAFFD11FFAF8B8B854E232A234E292A234E292A5A8B %8B8BAFFD10FFAFFD058B5A232A292A234E292A234E292A234E292A234E29 %2A234E235B8B8B8BAFFD05FFAF8B8B8B5A292329232A2329232A2329232A %2329232A2329232A2329232A608B668B678BAFFD0FFF8A8B8B8B292A2329 %232A2329232A235A8B8B67AFFD0FFFAF66FD048B542329232A2329232A23 %29232A2329232A2329232A23292329308B668B8BFD05FFAF678B8B5A232A %292A232A292A232A292A232A292A232A292A232A292A232A60FD048BAFFD %0FFF8B8B8B852A232A292A232A292A232A5A8B8B8BAFFD0FFFFD058B5423 %2A292A232A292A232A292A232A292A232A292A232A292A2354FD048BFD05 %FF8B8B668B2F232329232923292329232923292329232923292329232923 %2923295A8B608B66FD0FFF8B8B668B29232329232923292329025A8B8B60 %AFFD0EFF848B8A8B60542329232923292329232923292329232923292329 %23292329232923858B8B60FD05FFFD048B4E234E292A234E292A234E292A %234E292A234E292A234E292A234E232A608B8B8BAFFD0EFFAF8B8B8B4E23 %4E292A234E292A232A5A8B8B8BAFFD0EFFFD048B54232A234E292A234E29 %2A234E292A234E292A234E292A234E292A232A5A8B8B8BAFFD04FF8B8B8B %852329232A2329232A2329232A2329232A2329232A2329232A2329232A23 %548B8B67AFFD0EFFFD048B2929232A2329232A2329235A8B8B66AFFD0EFF %668B8B61232A2329232A2329232A2329232A2329232A2329232A2329232A %2329235A8B8B66AFFFFFFFAF8B8B8B5A2A232A232A292A232A292A232A29 %2A232A292A232A292A232A292A23245A8B8B8BAFFD0EFFAF8B8B604E232A %232A292A232A23295A8B8B8BAFFD0EFF8B8B8B852A232A292A232A292A23 %2A292A232A292A232A292A232A292A232A292A29FD048BFFFFFFAF608B8B %54022923292329232923292329232923292329232923292329232323292F %8B8B8B60AFFD0EFF848B8B8B29292329232923292329235A8B8B66AFFD0E %FF8B8B608B5A292323232923292329232923292329232923292329232923 %2923292329608B668BAFFFFFFD048B292A292A234E292A234E292A234E29 %2A234E292A234E232A234E548585FD048BAFFD0FFFAF8B8B854E232A234E %292A234E292A5A8B8B8BAFFD0EFFAF67FD048B855A54232A232A234E292A %234E292A234E292A234E292A234E292A23858B8B8BFFFFAF8B668B602923 %2A2329232A2329232A2329232A2329232A2329232A3060608B8B8B668B67 %8BAFFD0FFF8A8B8B8B292A2329232A2329232A235A8B8B67AFFD0FFF8B66 %FD068B855A2A2329232A2329232A2329232A2329232A2329232A232354FD %048BFFFF8B8B8B85232A232A292A232A292A232A292A232A292A232A2329 %5AFD078B678BAFFD10FF8B8B8B852A232A292A232A292A232A5A8B8B8BAF %FD10FFAF67FD078B604E232A232A292A232A292A232A292A232A292A232A %23548B8B8BAFFF848B8A8B30232329232923292329232923292329232923 %29232923858B8B8A8B608B8BAFAFFD11FF8B8B668B292323292329232923 %29025A8B8B60AFFD11FFAF848B8A8B608B8B8B2923232923292329232923 %2923292329232923292329298B668B8AFFAF8B8B8B54232A234E292A234E %232A234E292A234E292A234E292A5AFD058BAFFD14FFAF8B8B8B4E234E29 %2A234E292A232A5A8B8B8BAFFD14FFAFFD048B604E232A234E292A234E29 %2A234E292A234E292A234E232A608B8B8BAF8A8B8B8B232A2329232A2323 %23292329232A2329232A2329232A23235A8B8B8B668BAFFD13FFFD048B29 %29232A2329232A2329235A8B8B66AFFD13FFAF8B8B668B602A232A232923 %2A2329232A232923292323232A2329232A235A8B8B67AFFD048B2A232A23 %29232A2A5A605A232A232A292A232A292A232A23295A8B8B8B678BAFFD12 %FFAF8B8B604E232A232A292A232A23295A8B8B8BAFFD12FFAF678B8B8B60 %54232A232A292A232A292A232A23545A85542A232A232A23245A8B8B8BAF %8B8B608B5A29232A2F5A60FD048B5423292329232923292329232923235A %8B8B8B608BAFFD11FF848B8B8B29292329232923292329235A8B8B66AFFD %10FFAF8B668B608B602A022923292329232923292329232A608B8A8B6060 %302A2323298B8B8B60FFAF678B8B8B6085FD098B54234E292A234E292A23 %4E292A232A5AFD058BAFFD10FFAF8B8B854E232A234E292A234E292A5A8B %8B8BAFFD0FFFAFFD058B8554234E292A234E292A234E292A232A60FD088B %8560FD048BAFFFFF8B66FD078B668B678B668B6029232A2329232A232923 %2A2329232954FD058B8AFD0FFF8A8B8B8B292A2329232A2329232A235A8B %8B67AFFD0EFF8B8B668B8B8B602A2329232A2329232A2329232A2323548B %8B8B668B8B8B668B8B8B8A8B678BAFFFFFFF8B67FD088BAFFD048B602A23 %2A292A232A292A232A292A232A30FD068BAFFD0DFF8B8B8B852A232A292A %232A292A232A5A8B8B8BAFFD0DFFFD068B5A2A232A292A232A292A232A29 %2A232A54FD048BAFFD088B678BAFFD05FFAF848B8A8B84AFAFFFFFAF668B %608B5A23232923292329232923292329232329618B8B8A8B608BAFFD0BFF %8B8B668B29232329232923292329025A8B8B60AFFD0AFFAEAF668B608B8B %8B2F232329232923292329232923292323298B8B8B608BFFFFAFAF8B8B60 %8B8AAFAEFD11FFAFFD048B542A292A234E292A234E292A234E292A235BFD %078BFD0AFFAF8B8B8B4E234E292A234E292A232A5A8B8B8BAFFD09FFFD07 %8B85292A232A234E292A234E292A234E292A29FD058BFD1EFF8B668B8B8B %30232329232A2329232A2329232A2329235460FD058B668BAFFD07FFFD04 %8B2929232A2329232A2329235A8B8B66AFFD06FFAFAF8B8B668B8B8B605A %2323232A2329232A2329232A2329232329FD058BAFFD1FFF8B678B8B8B30 %2A232A232A292A232A292A232A292A232A54FD088BAFAFFD04FFAF8B8B60 %4E232A232A292A232A23295A8B8B8BAFFFFFFFAFAF8B8B67FD058B5A2A23 %2A292A232A292A232A292A232A292929FD058BAFFD20FFAF8B608B8B8B2F %2323292329232923292329232923292323235A608B8B8B608B668B60AFAF %AF848B8B8B29292329232923292329235A8B8B66AFAEAF8B8B608B668B66 %8B8B6029232329232923292329232923292329232329858B8B668B84FD22 %FFAFFD058B542A234E292A234E292A234E292A234E292A234E5AFD0D8B85 %4E232A234E292A234E292A5AFD0D8B5A54232A292A234E292A234E292A23 %4E292A232A2AFD058BAFFD24FFAF8B678B8A8B5A23232A2329232A232923 %2A2329232A2329232323545A8B8B8B8A8B8B8B668B8B8B292A2329232A23 %29232A235AFD048B66FD058B605A29232329232A2329232A2329232A2329 %232A2323298B8B8B668B8BFD26FFAFFD058B5A2A232A292A232A292A232A %292A232A292A232A232A295A60FD088B2A232A292A232A292A232A5AFD07 %8B615A292A232A232A292A232A292A232A292A232A292A232A54FD058BAF %FD28FFAF8B668B608B602A02292329232923292329232923292329232923 %23022929545461608B665A232923292329232923292354608B60855A5429 %29232323292329232923292329232923292329232923295A8B8B8B608B8B %FD2BFFFD068B5A232A234E292A234E292A234E292A234E292A234E292A23 %2A232A2954232A234E292A234E292A234E234E304E292A232A232A234E29 %2A234E292A234E292A234E292A234E234E60FD058BAFFD2DFF8B66FD048B %612923232A2329232A2329232A2329232A2329232A2329232A2323232A23 %29232A2329232A2329232A2323232A2329232A2329232A2329232A232923 %2A2329232A23232354618B668B678BAFFD2FFFAF67FD058B5429232A292A %232A292A232A292A232A292A232A292A232A292A232A292A232A292A232A %292A232A292A232A292A232A292A232A292A232A292A232A292A232A2961 %FD048B67AFFD32FFAF608B668B668B5A2A02292329232923292329232923 %292329232923292329232923292329232923292329232923292329232923 %29232923292329232923292329232923232F8B8B8B608B66AFFD35FFFD07 %8B5B292A234E292A234E292A234E292A234E292A234E292A234E292A234E %292A234E292A234E292A234E292A234E292A234E292A234E292A232A2354 %60FD068BFD38FFAF8B66FD058B542923292329232A2329232A2329232A23 %29232A2329232A2329232A2329232A2329232A2329232A2329232A232923 %2A2329232A232329858B8B668B678B8AFD3BFFAF67FD058B855A292A232A %232A292A232A292A232A292A232A292A232A292A232A292A232A292A232A %292A232A292A232A292A232A2323235460FD058B678BAFFD3DFFAF848B66 %8B608B8B8B5A542323232923292329232923292329232923292329232923 %29232923292329232923292329232923292323022A3085668B8B8B608B8A %AFAFFD40FFAF8B67FD068B855454232A234E292A234E292A234E292A234E %292A234E292A234E292A234E292A234E292A232A232A3085FD088BAFFD45 %FFAF8A8B678B668B8B8B6085542AFD05232A2329232A2329232A2329232A %2329232A2329232A23292323232A2F5A60FD058B668B8BAFAFFD48FFAFAF %FD0A8B5A5A2A2A232A2329232A232A232A232A232A232A232A2323232A29 %545A85FD0B8BFD4EFF8B8B608B668B608B8B8B8A8B60605A5A2F30292A23 %2923292329232A2930295A5A60608B8B8B8A8B8B8B608B668B84AFAFFD52 %FFFD128B858B618B60FD128BAFAFFD57FFAFFD048B668B8B8B668B8B8B8A %FD078B8A8B8B8B668B8B8B668B678B668B8BAFAFFD5EFFAFAFFD048B67FD %0F8B67FD048BAFAFFD66FFAFFFAFAF84AF8B8B848B668B608B8B8B84AF8B %AFAEFFAFFD34FFFF %%EndData endstream endobj 124 0 obj <>stream %AI12_CompressedDatax$&?d& C;\6f=Z2Qݭ6Zu1%U.b5ڧ;8*Țm&\뷟v?{//_~觿AF7_|o^Ѣ??{}={~3TŻh͟Yy&:<{>۟Yìa6x?}WM4_xӛ1lg:]av.<xa9z٫%.o߾}o^y/ Oyv_| S㾸{ٻ2_*/o^=Ņ/CΏ|O>ǣ8S;|(?5ro|ۿϜ7߿%ZE;txQ_GnwvaQ?8!5Y?_|>wUvӿw߼O_=?ZT͗/Ѿ~3)j75~wcyWvϕR3:e0t+8BΚ/q9(kJc2 LO~eza64Χ/\sh W勯_՞O~z&<o|߼yv3?Oxo yIA$POY;{A)8?{ş>/=f>{e1ϵkٓp +6^O8:Go^}E.}u/v}H}UϾ|[L߿yx'Mpk_N:͹()/No#vŵe?))˦4$,]r.vXM1MPoԩ)Zu-Vݵ:\1Mqڢ=˔CS4?2Mܭ&Wq㺺NuXvu9Ҭ06KͲ.5rYo yw$ˬi,4,6J\(p]IwWtFpdQJZqι\rbZpGkdl'*φU.2bGe4$ϼ'c7bN(sWXk hoPbo&ҠX+nq7rqw;|7('=0!6B K8s;EC\M]N|V̶9[8t>/;l6%`/xK,|au%be㎸ôyrBAwh`-gf)rjͦ,L'6%4okmi 6tsْy-o۟˦S4eiJܔ7a=Jb2LiGrJENf]Z%. bjVcۉNwnneFa2nfo;cy2?kf$M.KsqX)&=S?WyV9IesٞE}*&Dz -ky+w>N0˴_dodG+dnebN2qww|Y^"/p#C2B+#8_n1 k 'jfA4hHbʫ /bgE*[܊J.]nNj6A=N\~Y05>mb;ͻ[ )r7,wF5!t]īw y6zy3rݕ/Wd4A[aTf\eni6:ԥFf"$R.Dޢ˛[eI\٬,YB+L~a8̺՗)3לd+ԙi\^:H_ޛ\PF,Q^ #0`<|ҜutҊ2aS|SZiiʿĐod-҈fg-i#؝7ߩ?v%%I BmUڢwJ6Uk{azd2,Ң9@^FunNjDd8re9;#ʿؽqz~r]Vӕ;9Vg?WXSWcO0)Ȓ9 |N rYUj ǡ7e H@D AI2DJ2Y?I$ JBgHA'b&;/|! %YҐNҐC,DJDDʥ,݉PD( F7(9G(Qп,BFT6 4~EjVĥ7"2@hT'NF;[a&eF΍[ͳ*['j\Y-f8z3RK.Y7:eUi)a=6e= e-j-m)HKe妖4=ҴQC+DFuJsuZLXi%yLӍ'4L-`Мkd`<{:ChQS䳌8=/X=vM։U6e$[\q+atVZioRlepbM6aiJ[ZoXw#n$-ѥsg$iMV]a7b=^f+|&Zy{ bw5&lY d]i&C"6IEl÷S -Bb iMd5Sԩҕҹ͕V4r-EZ [)ޖjۖaVmIWGv85<>rtlG[ƣd㬸iWkqe;#fϧ|񔦧 |9_oǾCm[RG mYQPĻ:s@ :7 b% OPA> < B,l*On?p9 rkHh1o, F@! K 9F8FZk'hg3Y*:HXoyiu8=n;"ȲdqXlӥ:}߼}_l*S]G+4F`b 8ml_60tnnC<7󱞐;Kg^ao_ig]b_Z3 AYI췐y [0`%TvaQ$qG酗.V '.RY|blY1$-"YyP .JwvWRx#7虓 NrIn8G4ͷWEչ艮Ei-]|OV3(/ ֩qDM .QP)P)%3,.^BrVqd\g1%mrZc N*QolIf \K%՚ⲗ[n8a4~87;Bԋ 沈T$NUbM\$&]e5)RȰQd"^$+j{˲pqq:qS'rO,"Ӟz#,ϺLl7"Ξ8;eyde%SK#*$1֊rbHb)ǺUmؓ"&:t8yܵ^4wZ=H)v5jڿ{L0Ըlo/֟Fl|5(_\:'?4e۸k)*#V17DܯAKGMvp+ڸv_C|]^ksMX'A7r !ɮ3bHWz]}($wjqLJ"+,dRSTXNZEuZTt=btT}Jgw)w~+}UgT{w.ٍSv.O[]Ȟ!{.+.%,Kٳi.BeNyz!&60CS6msP67ʔwxȻ K)Y:rQIoeO{>/F[Ȍm1!]L~FQ#8ƨ1Bx,LW9v9978995g9Iq jD⊳w@ A`sKϬJRTEQ @\o loAW: Q̀.*PCJ &̠ю NI~~\>E#X403LN67np6\9 #CEPwa}q(V3 lGDK0;q2(EfjnG,GVkq^jo^KEEdYHE6o=KjXZK9q9j1ȅmM\jH׀tnY5:XĪ&tm#I295gyp'HxȃO7ryl`L2L02u/|[M"\b.K.t׫N5jYB-K-72U?)bkkm!)2wSMbWr3Z}ׂ{"y(Pio N)C^D8M_:$]xV jO[ S>g1΢**7#m]#˻2.z}D=GvKkrPM:d7^g[%a]kav L$ 1O>i8V+jou[}c:XW[T?'ůiZc3Lu)s[M40 GeGǣk.(D<[Ҏ5gh;TZ]W .EZ@'ΔUYC+rn^V^Vu+QO;g;I:ӎ0VN PjSWẈ׺͍}׈ڷKYH1f٧D'hx-,>pyjʀ^]^ݔLz E\퇔[%n<볋ݍVY1h&fc^pyT}F>Zz٫/ϦW''e`@v0얐 ul,$ȧN d [mׁ']#nk}$oPOu}>deu3|O -ip6SV`WGM+GqeTQomttN8'BcÛ'<]ZÍ8y'uDϾ]ѵl-4$8EPd#{$ IY$w3%&$NR|o**{9ѫ%hHFLՙ%yn#H\?2.՟vJ$CE/W4|#&fcBߔ5D)-E`\6x=2K)SEbvRܶLMWK^UwDֱLOkc; *ORx>_mƶ2yj= BM ZeNR,^bp5bե5qaS+aaŅ.fS6܊=}V1#ݔw9osМĊ[g!RT)U*vRWCVOnyj6خ-U_v,3Wʪ SǓʠږ[7/iE,I'2%b"P$WrWW`rM6>@A i6.5$cU6% .gsU ]u%*KGiJOY6fi7gtfz"t4iڡU$QA'v?u8o0a`6ٳs&QኊQgE$ƨ(ZV` y+l|7NQ<=$&ARBm}wہc.$3ɎhDÓHt0e2tM =rZzUi %$*'P+lim~lՓ,EOgbR5k)ӛ(.ݙ;u{w{ ƄdT8/hpD#EDF=ؒ r6QE܊ .B \uZŶa˱VS x ul]ט)Ɗ]LPvin\%0TVZ7Wj*ԵZ3Ym\SkژzVoںb՚:5Ƥ=kf3e=zuɥ -Ӛ]DMtr~ ?R)'x>? ?R)ȧ{>?[ݴOŒx1fKffz;嗀UJH0J}f1]͛'}x)wlҠ9:Π)1@Txu$أW+-ij>-C8h?Nz@Ε{uޖ"~o ^jK{֧RTm8Ԭ m۾|rݬ;reݐ_fScy+~9LP%Sp*"+ Nlp ηmВQF,` O̗՚g0!zq9&9Oݝ>%heDZJL3á >";dFŅx_Z:eRW7{\1)M4G|JzO`R?5%"d%dh:gLB7lC=委ηyfޘX޷oQLHŋw}Jr;%L%N廎'L%ÝuR8Zn(d_4^7^t b|nsG;M_I T~Az9z0;10" 5CAKΤ|A٩b:3M|:Mq)FK0O:;X$"qW\f>1SEgjZRMSJw__w{clzܧ\8kmEڹo\f6nvgrO*u!Z~lG4SE ;e.g]+^6;!0=SnCscKrī[DZ'h!r4`@KsRYmϫI%fkXbh!L M~NU=lB~Fg`eD!HeEՈ;eHԲlS?MrY?/mm DKxy&+[qa(+qLEt̹ I p?rXNLA2{LfqCYe}A=Oj{gVY|z!%&Z4d'$H˔U1I;> 咂l p3.5Zk6aLͻMs$20N `Gn@Ɣ/B HQ-H ݨ@CDLh~!xAi/L`S舓C27b7-w[v^HWJ*졏IJ+O^ܗ"Xx/C j5NITw ]]CkNw07`kk607E]glj6O9JQ@ʻM_Rm*+u buY/rHq=Uֳ.ٚ61uFj ` jm*)ecyLbۖU؞*R>J%įI^uӷ5x;fdYNJ};ze8C[dgtKQŞjf\eW\֥+ػ-9-Iak,q/&kZk# hlw z Z`kށj Zs4Y,)6%(iV Gf]֬G<] 2yzIWBPOEmն?MQ6wWp+`8Hp qdt<%U?mЇiJo[W7}sz 6 ~؊mK՚$1m8(#2m%5!2QLÀdR |mT87TR5вY+w(TX?\Jt0ټmReO ͍+ܝ2\6ܯ%guпk9~%D7:&g9J$gs29C؋\y 0uHK T/"ܓz0\7dH33jW  $Ϥ N'NY9X%=_wo#A*dv>UBq8Ev\V~,rb)Jcnk`Lܜ)'ZeDRYN)-&I?/ծB( 6 ˴hVET[ĖWW&O,C`@2dQ;yHjj?ᔑb7mobbeP)H:꫽Wd~8)8W0掺N /N{۶(zM,5Dnn1c*k?Q&ͷ}Mmp<SM-iJNrCՑ-LD=S>{ W XqO;EVIQ0+NQH3W{j}ŭw5{zA/s ɛb{L'JXLU}VJ)`M"EɍDF]֢mmJ"?u-wq"h m֠=y ~oQW[&ۣ:sxçޤt&u+o%UQVq!.D{ǫQQD/1Wy_􇫘_a_|FtqS{iߪ6q1R6q'>Y8%b(Nq0لwiǒKڙm ؃3*"s^7LÒgJeA|+IvvMPKVl|28˕krxg{Aq).נM (%cQ)'d} wy\h^~ʈS'pה)#&?+_ߦ,\ضmO)jN >p\gAt?Er%dIx̵B6;hz45A7-,Ʋ 1k^}[O:jսqvow Wqr$]xs?Urן&僷C1W/ӕ e~G&<3E @e -F=nopڇ35os5-w{N[l37'#t w >c<=!!U\AbRq";,k%^'!7HseJuvOY%)6@vŶ`M"MlNeak[ЂS`Ib1L 0)@%#*zAJl27H{"9o\44 ̸?i*H+!أr1y~G !Sgg5vV|N/&2PcWMmL6\vml8*X_{}w?1={}ԧ|+3 BW^PG۝]x^#>?/{~0[X Wo'K5lf,X5r|dcw~J9 <yG*);[Zڣa =K ]TOW*v@MY7ڭ5WFO}p_'pyzڵ r- [Ǡ! "]\U!CiC- Z ל/~N/= n !,PI Irʢ䒁.g^{(x丕$(Q ͙9[X΄P`9LsHMl- \D'M4`r=>O+cR12v SZvʊl3rkgV*T(el ])  /qWuܛp[GVEo<{ s+u1mRaU8%p'rrdkFxt+nww;Lۅu!|`^ i٢~;?_{VU[z{)t-4n䐱I+o&q!E<ӇGۊbI5}o^믟AϿx栭=΋ 1!Z#cEF~#{&~|Wׇe W|t_*v{{~~w/޼~o_7o^b~'/_{ӳd/w?;w|ȯ"&a@A$%sF'emę($e أ%io͖T 'r?k؈,z y=A 0g-:ހt@BOR7 _n@1*<ɇ#xrF]âS4*  XMgYo3u1taіL?P^{wc sK\r30=Gex/T`ރ(c)9ȸ sؙP8'ƂL/|{9`956uQ¤`deH8 r`sop$0DGi_YlCgʨ#~,J_|![Vsņsxs#1$nM'LiQW)HxQA ^>`Nd=2 43 gfs03eфh>D{$B:8kIT: os"t2;ܣ89Z!w3 b;t;lLLG%& 1#x@|=zy%\̤Wi׋lxa <_j!rmH3p8!Z0K^-f&S~6]˟e#Zp# z|z'c(Q3osV+m:-X:X]AŅ@pՂoҤBإVUD%&-g2yN_G+;uĵ7\ߩ~+sW&'3|Wv~櫿} 7|HOvÿ<ʛ`Â'|e& 2;A~c ,Rhw6KfJl<Ł$*.IMgu$Nx R*pH.ܪ`@Jq"UIF$?uK* 鮯gI;I5 i9|n1c#owL2H .ա_RaSύ}P@Qyq"u)8RѱRG㣱38rxv. <æƉqczтW1jLg`zZwPofãxLLo~/Аjm=Q`TC] FwüȵB>%L?N{ҁ=9צjG^GaUNKDflE1Sy⮥"*Hx5hC4S r6/cr8-I(B?ndHbnG0Tt/0hm8;RnO0g{/5Hcf~$HYA-0H6c4,/4DPE,|8B_-pb8T{ F<8guGwlEMXH)j 'd9o5H2GmnnS A4;CZЪa(>Fu1AcӲnɱn ^V2S_$ 5/0 w\V JLGJ"yJ h|tTByε{TiԾΞ"Bj6^ʙ mb6UYkg.L ϒ&+$ML3RT Ylv~gAl T%E;4:I!M!ww|hYk i_$iUX-jJ ֋=DhcHSR<Ơ@U!Cs˜`}5INeCkGWI1؃h*p%r`(ч򅎄.V3AS8\*b mfd$ -lWՌOUAc8YY!L|Ej5#3n2?X@qC1O}y5 c-0&X_1ETಪ݋bHsDK%i7"Wsg},0#aO3NRkB'`[.b1w >B▗[Qs8,EXZT+:G2g5rcj*yAKAsQ3f*Y= ]s6X+0ISpeڶȷɷ2MmirԫmhKce6I )625 mF45/,}7&2xUrBMM+ _;P[sw龯hlIce@6qtJmܿsLe5栕2KLS%j#'M ғ+4 9z.&qNT 1 x.#|RJEr*~oљ#X51fbY8*I2f/W+XEB\fK}I;4[!}4qj3,2 e8jVvZ۠S9|".2z3 po7O/^HD5t#4l-b" 0fGӉfg~ŃBp-a|5xJvFݷHo?3s?GWNGY=lpQ}/?*hZB~[ QH.;&r[U' h38ۙ&d#$Ƽ,*O|Eks^`a`-4ނz6H4xgfYf;N3HHޏ)"Js Ão!xk 4u1ILRQ/ҪVf!8̈́8ZA>l51(=X5&i`꾓 "p["}nJq[;5TT;E 4qK1Z4W ^qh+sgelT^rj֍L87]&gG X1^#Xc^zGGҀ93C<"lps]#@4plˑ>Zh{_I߱7t&鑠 ;M1h(-$#5(%K46ꐋYP Q`/wdrVŒV Pݾ%́́FK*yBbT-p<扴 Jc K`Z14x2N$9uG2wF?8r#Ν{wO>9u㨇>;8 e3StYWW@iHv=yg|].KŮCεsCn.<(N `ȕ]E5Urԓ뷆|(Z?MaTB0Nٜ7R.ʄXA@kXbH. ȎzQRLZ:8ySx׸tr{&$(]U!p KA^bioE zF)Kz0h:շ|+G[$=ɞ&3]FyF CDRz\OM OfN A.O2IL' :>:JPmJ-ܜoXVV*qeu|2齁!C12э-1RMU;&FV۝!-WIO[a*EiV =ngRw^k<TtI}pr:! H{ED e:sz]| +'dFdz88S"/zt2ŗG.?)wG Zal|[;b}'BP B:$id/tΆe8>PӢxkJ v]׵B DsGAB(CŮ_W}آ{]w00f-ҏ/2)z~b~lCxlU>=Oy,imkW?*z_P<܄piaѺ(+N#7EuoYR/{bv[{dwIqKD%n"WD#CGT *N#:6Ǒ"/Su +&,,k8pzRJ)"60'[ t18ƱIkN~.T;p[t|dL6:b7, $W2a|ºf]{D,2!"0zpbMVг8N!i%c 9GOʫVjGKJQpI X:공"iqi{pƝ-tT[hR1\3ڮe6౉(1ʇvW\V8{ٝ=C_4ZdU 1ԕlGc'uv!^9Z& c$IX!<JlSćx-ccҦ0; ٤ZC6)pDR4(O`*&, &l5y틾EҊ-KcYD[0C;ͺj\&Th*qaYׅ7慩,̡G0f=]ڄeH y4Pբs^-*Lz*y0 w%wO@]<.P4NsKVh;"wO)< x:k U/yGWQΐIA,N m$]ܞV'6O,&2.iL 9}B&9$po ҈I+t"q!ZH҃hf HŮCnc"Bnp6mᔴ)⒠bf=io!lɹoO%`*=9nZR \g~:2 $!b% G ^QB=drש^;VEŏ-eŎ d}f  ?ܑ t2z4OVƪQw-R 7 uW{<*.&1 odܳj$)hIqFz{ R$b(}{ hJPt^;CZtTԵ IE~, V3 Ǎ ; U뉝 *G5 5c~љ3( 1 'NL8)%[_\M1GQBr6H4nNVF0$=ihE,a<{3oNeڥ8cDtAY~!{:/xn)ӱ~+KuHS֊ԍCniwI_)kGGk兹"4-J5=Oo8;' 4u!|Rdag,t41No;u-fgn,S]Qmx0KzkrV AmM%65_Jl:-}r6 Vdvl BF{EѴ4_<طYe*ѳr(Ȃ:#c% ǪZ$;gu$k}py7}%\hrޣkQjrg!<YlN1c»Bv[A0LDb)$ &RO /cD7qZrH&Cﷸ3RѿAťLᄊL !YIO0X]OT9 #E'V~'>=ɫ#V)|;5*H UO\tZPk~- uSl>0Ô(Ӊ%a )*P{"#D"}:g|eg=?ܽ{Srxә'(b,?9VKVJT6,`IB ,"Uw *IjTFz xAy2^VAg;:?U {Myl-k;"I^@#aHBCviE0Fa%݀ѢX%^[҄ES&AҳgIrO/u"3[tQsV?F.=i\79Z<φn~ؒ|:U#Zu}g :0x;x2&%sbhM|1RA@o] yD }! DŽf[h /+YC@t,ԚEڭRGLзq! |/ rس=Yl-wqx)Vǖ:x$xk!lZ(!ꧠ<}:T+gJI3 3}VYmۊ +&AD:֙BE̷ #ŕ@ e*6-hBޠ\2$`8KNdaH8 Zɬa<?dm 3 Nc77h(l  L6{Iɥ0 u"QN_t|k>6 7臝ZBtOXܐ<#C-[I =履dTCd|Nd$^m*uElpKwaJN@NŮŸTST#$rl:)6%aoC kE )8m$j}"=`e'_O=wL߬mr 0]$Њi6ɢ@lƴ{X2`7_I 04HsMKu2bZt/TԵ ga ZG;xen'fga,-3$r#DKMed2f/!. ,'lIZ)K.=-i~ q3 87E*кm ykv,h!(^;-IOqW.hXa@hFi 51d_>X$hQI18n)A@0aBaUG/LsU{H_D |'~cW;5k3xYA.1#x#ҝ匘]3P]&3L 2W`@YF@3p&',[prH}K%49go zAs_Z}-jҢQWr[ȭv#وtz`~Ճb1KG2-%1lbj쀬tXv wUg{չ{ԅ8T8YTH)i>PЪ e-- E?bD,p**=’̪S_Qe [*R.h"}%"8+W3U>Hnm-_/n_>/?y)ON BZOLKJ.ąm4_Ml>~|W<ÿ|2u;oHՀLJFsN~<_?%;={v,ù߉:$, 7<:E]ɌDij CX'N ]Jy-hLLY) P h*7 p9eyTC@!DYJ&yN1sc ERe%#!g )9Hnj AugAL ECdl#!AӕA^v ȲIhTYq~+I` eJMR/sJư@&3V83( IJe!&Tat1AbZ'J}C'~7|Jz3È2-):JҨpʿ=g tG[% bWO053p=RA@haD",ehd 4I.#%Δ_'B2l#e# (E`j c-ۈZl< O 6n;A 4rsK⧃| qu'v:ϊk &6Iߧ .L`u6c3”j:!T dD6NXA^0fBX /@(x<**al ,ARP5eҊj!N9pRX|2NJXi*t@S%Z0}[_!d hS"TQfSc~4~PKUK4o)l͊:33#90 /\><׊%#l-f1|q fSn:R)X12HRghf\[NWe>#EvN:3aaˇ>VZyc+cy;P9g|@d/B؂6*nL4c;K#SY+c1 3ALd-ii9H(~4PwD`Zxdۑ{OMBE/3&!bivc18 >HsyCy]: OuS|UF2 S֗>SD|Y='2;3*Y*}~ _NdCkYp. )Oy˕xmK$r8a4H-$*ӧsb%!A/Q UL4:^tH2.tىMt!­(C 4Qpϯ.puO'vF->'JJ|gI>% :.)Ί6%g$'5cf5G}JR ^1?7t"ՇYcCG9ac22 Ch }̑ mnVJV , XҙvI٧ 6kD;^H>Ͽ}$b K}̳< k$22KhMHfN*RD"T`&_q!Ymʸ$\ R+2edpe)'^VZhtLR.y0|Jk+_H=7e$8nSd3^(?|iez됎ÆgIKdraBZ]}],I)$\g)^$f6@{vJOt;Vlxy>ѧg$+H_PAjfCy&..bM%TgO@0p3-إ)Wa/,l}%<4 BaY<x\_"*QI ZE#\-\tWݭ-O|D c5͗wj/˜8?uNM 0*VguU 7+I'g->8CNJLLe/ ^PpeEr=y)Zsn33XeE@0LI8\=Aw咷M!Zo/ysUfrːa=X:9([KC 0xEsRɓ. +0tH 8:ENr޳B|?00LTŸIX`r$(a|% V+ۇOk ޚ@TY+!&m$)p銦DĊKrcҤ PK~ҊL\vے >fWn j$%zFd,t:쐞 |}aJZUpKOa""홷Rob<UXiVvg$+d. TMG*b7RY ΈMz--/-~ɠpIjB nN| լhtS0sEdE37B {ıBrHkÖg_lфj̍T`qvOTꥊXAfA9G\{Ag%ݠۤ*3/f_^[Tq:@Ƥ6׏)2;OY5:oOτ;t+%}%,nR.•L 3sO>|JnGKE'X$E U7Lq6N_\鬄8 D"Ȩ^X!><<|X6]]MR/ZX*C1$WXϤDŽuMJLB9yssR(Hey9M"'$R_cG9$M$0 !7hhA RGBƌU5iIIK!"RKo s 4n^V3 O`-.@LvɅ('Jz*Z$v$ 2ޑx2P]W@ic]8 ݍQz5'jkBR}mWxA_%y'-H*,W=u8 ^e%;pX#ilؖu-7[Ms0pKwoSոJ ~ vlx-@OFdи6S ?)6mjJ)r.&іw붧QFHly8μ+0s1“m i. %@c^tY#EiF|+#ŝR{w~j7o[p-a^2mrb-猆.:<:c˂fX3$Z BWc*cp4 Q@< `?>:'7̃12-kSna hM-~Me/ˀ;rQ>Q 9/䅸ٳ >vS==Q/2,QĽ3e-˛CUCݛ$%H4FR'$imdAD6+*U9J8xf+M ϸ5v}- u>Wzo{]ൗZa2ɪЈFuE* 65J$4׭{6Q洣6UbD>)W6e^n⵶ݖxcMC7 rU^sWL,1Yk+(у4FyΕS+s^ƨ |}?췗ԊyVVƘ= C z0< P㍬绳0qߙkQRYooj,oE02I3IbLy'! DALYE=Q>2 ppAD2$Ҥˤ7.]aߑt^_zJ.NYIvbTXIBPC%,WHu XxM1F.Ns+k^)LBH(CBR+ KKי3-gzyyJnmFGB34D:|`~rTX<}#/ԪW0 _B*﹅ܧ]N,䉯. `_Lr`tDwD!4 hhV1gF9aPuyu.bMyuyiR!6`UlAzwޡI3[,G oFcԴK ܄5"a^,X Ǩq50OnyI4&bAoپ3_@i9uPnu2IGw 4rj w<u.)r~a)4~@a49Byx==4}O7/ {Qj\IW8&C A ҅3Y5DI<OTw6)*l4pp)5sj@DVCAྋ `(f6i+sE>4.zosi[F1,bMwp_o5s$L;dе`Zd#ld|B)z>.M ոVh U9 Se-m*7  4'@BH-k#mD#n4FG4WCĆ<]q :ݔDn+4)M ;7EYgԯo)4ņFܰ;8?cZ?2[SU$)D7kgQޚ~A[ڀ\=׊1\F[mu. v;Pc-D ㄎm$_,7T;OU+l3\HxmhZpN#ڷz~^ [eVE^AӹF767S!zgjJ]<S*v_2RD_I#v+ NyE8ܞÂ'E%= dQshPpci=r6Gti5W!_Z8^Py krVZot~|ldQـ{g"BnȘ&~6T?0GT\%[ (bX#~𩴙8.l`H0Eq5I^I){'.M08=Z/B^e M7 -Vk؊̮C|h2?-P cdylvo;j i.UBȔX0W#(Tj(:U$U@2sAhe7sܻ̭BsqgNr'6y1Ql *bF.dC& "~G8!m5E EUsH$ª0k<;x%lfH  ]  M*MQRc j,$y!@uOrХt՝礱s%NO#6ՕE 79Z>RR6AL#v!2v:AӁt$JtCdp68ZT?]@уww)@^Wc9K(h In50,WM#;z;=v4AdI,VA^ p  <)>ECa?yy ھf|kjB۠ZQs a4C(WQ2q>¯Gӥpڡ: E (q2cX{tr|i2'ZߝTKy=,]4s4'@h ^7 \Q | ?X6JߔT^~#:lxnyڠL\P=kC ٝײ<9 13fiPPZo,>kYc1%XVoQL4-k(ū-J>I%0]JV)/KHJd]2,lz[{dxqOmgm&. #eG)֎#%C*7Fz Fc94o™ P^vL);AHFp{3jQo"ANr+JI7Z4eNIKO9/ mz6` 3D jUc vG<ǍjXl"}jX׺,(i1J7oİ7Ifb,Ui& BcVC9qq nqOkwfe˖tπ!whNlODӌ(ͫ]s*]ԩ!7_WICL0c_ g9@GKAyGӨ3IJێ7fF8 Sctc01BQ#g5\ 9 cnҋ+tHO;EPxV;08Q; .[iY +7KcNt^>]r&ÆFoZfh:o'w EۿԿ/G??7?7p_P,sޱH4-4;Ԑ6dn]#x,KgMW@T9TcZjzMI: }Atѽai?.S$=64l} *H~$J W;=tfd zޣ ̞!a}_8q:ixmֱ;mNpZ/KHrؓԈ07d%H? ~HZDt\"FY@ rw5e,`[ \G&b[2a{k ڟhcWQpd@[`G2cAm~Xxרsb A+v&Z3,pf)NƈbΒIJ`r.ш/њ) ^,DN![\d&i`Ðȩ8O^^exa%b#;bVxpHxkmY89AM0Hpaxd `?vymL}N %DxOPj0wVq_o@ Z)vZ<8X'k>.icVcuĸ!kjP}#22+5}_q6VzB0>:2Ev2S}p;f/K~&TͲVEzcP<ܔ1?4Ci)`d:O_NQlmO(@8 Lv;n ّ$@XB7j6@uڲ}I%˜D cr+PJGWЊHle5 iK: iM$YquhN="(RfC12n xׁeH b~Crc#<8 +Q ibfRkzT`[o}s{\j$4/?VZ@@{;vMudYyAקƈ ZqwրR=@u"_ ^ޤ>Vv8s3HQG ,8s}bM k!zIQ֡b;(dm"  CX&!f%  8R(ءT\Fڈ ?%,,2 '`wG&DԆ"=uXE`^'FA&,ZX@Ys3Xo_R.0r0s`y/kIq>S.h{c^dQ[ё/|An(,SV4>T\:diaɝ([}پE g+|qq`]DQNV$ ؊e5 zx:.ݯjj֖|-l݈]WTT˛J(jVÕ T.n(QI96-b~lIKKT?f{w+WBMԝ3{ԃI6|w;S3 H\‰bu]va @vX`dã6|RиXJ,(H]=)ЋmWM";Mڬhem{valrFYiT젦=rک$i΢IHQb:ho:d I{69@HG$tbL($ɣD~u哔[C_K N/=PN)w8cB#%)XHle,?GX wbC=E4owL:3 LMDyૅ u'Q\X"" %92u)X;``RXa״rzn$Py+r.m_-[*Px?QoB)~<ٰܑ*`]90- 0*e}Ox4BfBXOEdz`Owt-&7]3G¦ htOK6 %M(e4*rΤVmL`@?u Ҭxr@Le,6^Ue1Z+{A~u;zpj &""|)%,E&ԼGs\ݻ7Ђ Ţ;lBׇT\<ǿꃢaE(L17c<4\)MyS>7[^IVW1N8wJ5Ge⠋Bnƃ"0Ӎ)$@*Kz ,.꾳ݦrH䚃1й-ڦ_^ⲇtY˚DHsO3jk׀M Zߒ|2Y^+4LB6Z9Sv5Ï8>p0(n,I(fT>  U65Ȉ'LI`Ʀ uI4m ]a_A-RWRPvX4/ t %Bb2G`"DɓZ "muqJa'90wؤ*:vrAAiHdKĶr:Dw$뀊U%!)3ʦtu+Gb;$)a!%@^6q3ؖxNԀ - U4Dp:,$9=X ]P=9YblvkQ,eMIg❊ ST\2(^kD 4{h .7z J?yb0ZL#4(+1ϐ/@usw@ͨGq 34QUw=?b41-AJű[U`%8PB3\DOт.XzKuovXSw2p=.z.4Lk2AhC{цXK_7} S*W0VybZd%ƀ%"UQL[iMAy8e bY_\{Ǘu82Fki}= wHH_WN98▐߈tMiWuӶK, Ĭ`gx.J&BsB!iIy:C镟_ Len&<*FP׉V#x:s:KquȵrahI<)\l"J.OCxT3 ~uPГ"| 5~_ ׫FqEuRPBIad#Bw:{vAk %Z @X3ZB 4К7 RrPQ Oܞ8B5ړr9*d1ô].HᖘCE1#{Z< LF$L*lCxL`#XŐҫ#x5y#M?kY&Vcm(3{uKOGH! H!FdB,A9/^59tm7ʄ征3 QՐ_{&e=˞ )h@Poo /FιMYOҠAR.Kt_F+wI 4W"s\yS:GPJ$2JnYwDa {G6#E#<Ǹ,,H5`l0*KwJ(4#wWc('TطI]AcN Yʺ|se67X؍ y. kަ(xČ aN꡵߮:Әq̄҃MD( X8ǮNCA*j6C..ڱc#vQ@T9cpm\iɹ)1R$BJpG҂Z^}LNp8[|pQ+YDo5YIb̞jC,:I (W })8Q<-= cqhp>hHΡlB{փ"NsSQ֤(VK$yڈ8:$GZZ8 "Ht6f̕ic҉Yc322eu' ,ܓ,.BBV%XstZtnC^!؂=zTQp3bd@ʡ{4m-ˣnndZpQ-P:z |>@,FS6AgLr$[B?DzRKa)\k瀯A=[wS"P?BH*_dBl;d0 #}Tbl M-JxGPx;Z8_9/˿a {?JǿWo?G=\^N}WgIɳݒ:+(7'3>ǧM,G$vQ'pE]:nd ;sGkKVzz;(9wr]oFaHx;H=v;?rV{F{Ʒ4{EԒ_Ѡ^ %^Eߕ|Iض;.Nزp$zN<Ȭt)᧺<U?LKK`엂nm-Ul*j8ze84),UD'+M ~)˰=Csor.(:)r>p^|1Fc̥J;94U\Bԏp9`nz4Ȕ&w}2F\ZxT/ $( F]pE.ׯ2ۣ/i|Ȋ[MR`Uq&@O}h=R8wp n?ROIk׌VgCy]pa`rGg!(}t&n[kC=@\G 4qw5lY {>"~:ustK^CZD ?Jת!pM5l=2f-{W>j~GZCGШ~ת.{1>j ej,v} RQ罕jE1 j0hDF6(8ИJaZPmet~!NlFs.#t4WCPFQլy *ّ# h%yԀP*#j9s#-2zǔqrdUqMX$UQc%3]fy~0FQ./b+oBŔPrUl/}bv'{%f)?r9GCIy+LNHba`!~ doWZ5^Z7e]W |k(&|̻/l v/_whE|(a^>#˛~j MHHwG,F.lG 9vuly\95~^Jy*v:n\9vTr-ᬏ8f$-)p|@Pt{YlC)hk.⶗r|Kɞ>kQh ֮(kn2,-jTAاs&ed(͆lJz^[R*CStK >_>ޫ ˺.ˆycaFe79B#Ao[څa5XJR򜦴l pCG3T3(bR!.zEW3h>}h@3V~+7#J\oeZkdGؗBŷ4+q!X7!V ++Q#ڈ;7V:&M.͡tWZǞ%o'S*WU9{z&$gMnE ɬ!@GOGKF+?W=h:G51(3˼;"j'4dYTz( L޲I2$]` _.՜=J wUn*HH6Tqz&XeMvUEB]1Qk^UsXqDZ"_«[RSW9 kOUt l,wՐW-TOKoO0}@q~?ACo_C!~ ,[#;!0(ο }{GpOXLp!?Wcs֨ZરܿuV,[gȏo:ݤ͊uVy %Q:«{7Ք+oU!H!vSg5@(ѷΪWRPV,Kf}YG *)J_AhEgwo뫊oUc?VwwUXoK{UQTi|0&Jc=#%ov*WL%8j Rd*o*2ţM2z5gC \6TCu VCxJ_"Hʷܮ—⩩q.t c[3Ă-MEoj?M}ّ)BLlFf:h ;eM P@>L9GŔ\[RU i&lF3tfidn&s?,Vq̿뢦#noRGD5I\9vNf9Rx(ȑ#qKmQ/!>&??K#풑"<ꥑC)r;N:CwGz[:` \R)0؂c/=#ZBrp6|)Q,p|~L}ȘxgI, >5GC\24*:݊6Ҧ4ft lH#P6M2AS0'fAShQ ʦXe>&rM)Ow2Ĺʦb&d]ٔF|lTe]V6-|h*]dĩ)R \G˸xc~(♅TpG4J!PcPQ8Y?g9|('1yݔGt"_G4)-/jS @aAN)],VpzGU:G4K{8%pA|zǯQV%pkZ4+y{NTڥ(*u%!uʇkzQQtJմR5̻Í:R:?[ gvH3.ujk~)z&KR '2qʗloSMe}PS-`/]T@fqSΛEd)qS>p RotMkV$2qκ?Mi*Rc2_TSܔ_@̏H꛸!"j%nϳf?Ma5P3Ħ'-{7 \S̗)FmXdm"i4 &fZ6 mSnr[>ڦ4@t;lX9=6gLi4+L}rwk D&LvM]bK]kSiTy-SaB2)[#cn{߯c{..Vʱ+L1SBHROћ"i9B@3pVvMv'[9tH*9sZG[-ڢS%qwI"Q7=7Ж ]֑ )7PUK$t+h7]4y17(N͓\b~]fw>!H%nb}{w'VHyr p< w%9zmP LGrn$X)$EIЛD]f' uI[ƹ6MK9%$!Y%XL/H( -,щTPfaU:4?3Xm>:z1{M&RQ`%)!L{d"%Ɏx ߱G&g^I\!. IBzz%/(aEDk*%_"R_G2֘a^E_3/? ihJXu!m438|!#}{mG=T ʟFK3JB=0!nܺ7!ɻ r;#:r$\!G| kpՎ >BJуzM@{:kr6G2>RpZz eߙC\3r]Mq@޼tp#i7la$ e /ptvt>e i {8[RE F8<"IPiG2i](:CʍfQ- BrzT wF0{T t@B_A |m-c(£!}ʁx4#d[(=cFP*&<}%JHУ7TB&wx*1Q|4CIx.oJHHD5DdGY>D9q8z8s\R#LsA!2 #8o02.8LGs\\;./|[jQX~|*rd)vGCoӻtW,Mb5HMڊ7@wDj}DIBPYĺj Gٲ? ?9xp!t+%: |+[ ѿ":څ vG/:&.~t}W#l5*a"ZA[?T`S.+K)9jTXm<"krYs >J<5J0 ZH F> ,CB4Af)Q蟔~(~1D`R:4Ed=:~s#g_6)-wrGz5\>`I%֧B{z#+ DrɵPfM1if2G kz*a_=|Y(%ш)u%ݟR n#gs˻HZ X("-g(c0 S[Vn/ڻ\0ڎqyjtq}²?ݾ[$D&h K)}7WI>*1ETA|Hί{_D { zRko0m ".'_(lkD^ ˲#Gt!=cai#GC g@^UkU@?{B\=3Lr<[?T8:ll[uOad~d{`/wY=,>z)= `BJQ[[w7ׯ0Y Nj:#)<W.GcE/;RRO`W$j,GPpw!>$ kbH\@j@ޅkn'l~[/8=O3Rd}# ac>{0 EY=(ZՔB,Gt}R'Z=XįKF q a&3}hVG#K]>T严W1(3~G{G~]q q1mAYmid$ LNh4|D\"wÛ$WK%x55?/Q>y>3XvfdSFC$|DQ"oI=bd vJ' N:(!quxp,݁=ʥ3T`2ףǟ=,J'>:}4s| 8٣;s>}6`uUƣg>C(:}Km.GN&LeQD[>y7>@Է}> hn<}Rc%l6ls_}Qbޥ[KUW?=tw<f~w>된a`vޥOkI+,ݧ@ fɒl7]Ϣ}` 9}_m_}kw\C/>k}yi)W:}4;^hW8H?B\ۺ{Y8U%wIK>|h]v7W"~=]/&ԷySPHI~: Xߤ\TUCϘ:vH|)= = jD|EM/ңw l/D<{=׏^Gao-߇:6xx3h=zT'C#7C*K"Йcȱ yd& QjxdQȅѸlqT:0\/;֙Rw?$;#p )FCֳSND~(^Dn3]7ObplBCQ# С\)y4稴4!3CjC\)~$ əR>m1zr@@МaLH߻|\uߏj|\^q++]cUox;u'܌jomEd xtj6w+$q𝘋mԨ8rmbr\dO#OyRlks ϺlM&Asptx~Nv"i.FGTM[ s]BACu{IS^-*mUiUѨ8!|̂lkci}>YJg~q #kU%,G͌_<"f:haY2E!T&Xela2^]c$;$bX)w {T~խ:Ɵ8jc ܎#2V-nq5`ԐS%J({|˂.~d!p;h7Z`#V R?ȕof,/}/q}zc-sJ3i0/UnKfb ỗTWЕ~fTžrEYoz並=*\l>,`&֌"㭴5GVklVʛmCMC_9_"ZVig|W>%Rʊ_?HzU֧2r4ѥ ǘ9rT PM|0ќN HMMd0*tG1fֻw`\=)#r (p&dCh~hEM tZ6'47x؅ (`%C1-٭)`IYP]ޑv^aw!9ô?BN ͗~9{ 49gH9v^)1Q!rt-9vTT#4^J0돔=h,퐳=$OzICgyԐ%~lP~DZ-$ՐJ7;GxyD U&ԑ:2p;#uD ̻‘ze#13~'&:F_EsO_ŊJ5P>D ]c QG@ko^tcTCT-ꝵK\Nk'(Szm݃1nSUvMV<垫̹U,)j\\o (s 8\&׭xrJB[M/fUٹ*9zn)ºA0 ˺m LÚyg%\ݗJBB 6P(HW&͙I1^_"&3XϵH˗xV҇#gН|MjjEG+KBZ]&b3bWv!D+%6҃T7}h8m0ti\>rpxa\BLv,  Af聇Iv~J^Z <ѰjY2g'p~h"0Fj/agM/2m:uNԺרVqa;SPTX{=#ާ:R)k5 rJWhAG#xt1O  %2X1l']41N#hEvcgCuakȒ>lDTc#c+poG;aldk*ss͕Ka8CԆ>`esu"GY(|z|&fф@V>шbױThNj^ptJ]EO~25 m _=ˈ(Ӄ i 1Ie 6iRi I|Z]7fjɱL&-65W{څ*!\艶dA G|s7ϬN#W]'in$1`,dy1acT(HUǎYQ87bTܦMK@z5 cnq\̈?Ty;F&iD^nם(#X/p{/0[< =ڞL| l~gyza_q>z5UDe tX ꄌx32.\,8ձy&p!>{n</ =LCjXR :DP[ BmBS}?e/rp!&CZZ3@d(Peq z0kwQN4*<% ^Ԭs=GӮoxCE^]{\!腱Vc۾i^pV|ӑï Η]X·0:9a0/etץ 1mRYm&\CĮ c L28MP#xRXW} &ER/I`h[''O)iUj죰i'в{TQ$8g 6cx{KGhhnC&:rZ11z;tQ/ 9OwP>ɸ&Kg?w$n]a MR&Ndj%h̓%7pq; %.U.UŻu^+!R ./|u2v:BN ܻᒫPPKg».l}w8M MI|e9"Ky[665J*H70<ȆW"`܊:M7zhdclָU# #lS|DHͯm_SOҴxPe)a-:I층Wd"qr@XJΖp ,p:= 2q=ЄlDpU&顺EւxLi? q뾛qt ȮyK]Σ{ww5t{)n4[x@~3&~9%>C^r`0}bg@Q#*kГe/9̙ AЗ47^XK@ Z6gϓyuW@6srtJ1*ZT0ͺ^OW˔tg2HT@+w܆4Ig *ʧm?m\c+ -\j8eMo80pYZJX=JWkɱɵTMeǗS7 +K <͋  BrRN*TjtG+v )FB6`xRJ+]GMQ0P%BabHp a"?P:م!ha$\kkܱ/!,ͦxe "8g.pKp uiׅ l'C WX-?ړt7kBPu8([3u=EלYBoJ(yfYm\ ~He#[JEBu=V"c܇"c@5ZPip5~s{:\"ɪVo@,rFi'~hlFg|޹^6P~ A >p,kKFO+ZkӺ5;RaMx[ IjV##w [+"ySHY}@];(U?`hf$)fbN]݋Du!ͱ3A`\4C*e&-918q @ B6Ҝ=oo2wwJWY%JuAKXT7vTr60"ZrFw_eG] I ae.]moB jⶳL^s+PihʧsiG^yA:kY-'S&_fu+ONT00EHت|EJD=W| jXJ$ BYw/ @!ZB|vS}Pnd=PGU!hu. _k=[1+3WyႶE=HEuúE7c> ؋=0߆ٶz9%|Rn< \\'F^f\;,ẽy~"3k9R=H䀘d ]o &6XyZaȰaWs#yΪ1+k0}m|J='$8w.5wɨ㪨*/h)n0P@fo~"kjf}f㼼+"`$׌^_0* ,4ry5A\t -!ʎ-%"܏-Ŭv~λ7ɷ=K,!M -d#7Bqʎ?ъPȱy`,CV%$Eq7HXHøڤP0 JPѬ6IdkkIdCn$4f|*hdH e:E"Mp bX7`GX EZ1.eֈ"dŇڦx?&_r%r/.˩CEF?UTHX ٚED=H &3`RBզ:V{U)5 f(q5D$)"xJv=yDD_egB^L`=9j~:X8ݽ<=kc* gk@$^rcGT u`!ǻ̔c,Gӱ2B(Ӽ.X;Gea 3a Jt&&jdViKavj3zQ2V Vzxh@=m<peCLḧFWj{: y/X ՅB?|\{R|kRulwqxm,klo" 8? ^z9Lt$gT8a2>G=p"Jɿ;F9'Pŵ*6u43P%7/U嵼iGs]/Q3,xS$c#|FS6͍U{=@ .54&w mZw,2m'U{bWxg n,GRb*ub!ZLĎ+g%&߱kQ)?JÝEfN* y(TH/q09r4 ?N͵)xueKwQSW cO3`U̝*`h3,h#Ɉ~a-Jw,a guBVz@h衳 ;1p G)eaMS 9wTVl֧2/5aa>Scna"*N\mFuSrF;^% I<kRYQ/[<)jbDi#p|ЌTfx2Sr;cf XNJHtφ$pSB&IOMD`#4^z P!qOnT6>eRQL02pLYB`V޽^u m3+*NPwHB.ێe4H%Jg`Df?[O+U"the.ĠC `we=]R8>'s sWXGMӨS92~,VS9m$:䰗TXU \@ڔ \e*^sn%W3z\dC=uUr55GvF4 a#1zE`=WCQa.\tF^`^%zEX&ܞ+E=V67|dq`ր(?hx 6jQqKai/.eFUwW` PuvX?|jզ >(:`aT҈&tGsʑMlyR\0òWJ߰K W- بK\)y'z@Y]uX먖5|"KLR |wO(P(jgIe_#JV1,D/ 2sMNK  KJQȪ}W^ C,+Ʈ.*er-R.R:IrGa 18([9ɞT",7Y(l_DP?'򵶿qm^w!YP"iM 'ʩk;v^ B)@yU 9j1}bɠ 2: Ep3[ma' dHKw )`!CY-#DǍzOPVv)#y;zp@Oa++l\"}=C7I:XēQ ݧ $W{<#UwP%o50ctS7auݚPgͧb P080Ck}W ˻2YC',g׭('Ud)@#dYRk\Xs OA<;9dW,)m(631_Hm|MJCmsC fMʼn^t}ezyes hҗe)(M\J5"1厠YhD"P75`\ $+KYוdP 5ˇ֔esD6 ?!l+1DPJGd6>ACY)ybAO[Z'av˭3+=*sOCt;tE*w+pԆ>|wߪj@6 5$x7WT:-S$uL?M⮚ꙉ{?i6X_;.Ja Z|9\^+"Fcէ,MoW5$MEcfh;4+?;I6-7a_yl1TmgAcxC~:)=iH(K9CY&K*BM'rM(3K&vtjg-z7$2,)d@6j^4dJZ3#_*~ц82͆|ԱpnSF\[ {A)[1Kؑqw#J[~md$m,tf)SL,5OgoN5r2J9_Fޖtd?xkfy}x #A{N}":P&PfK3|+$#=IղD8^n,ч/?bEd>j-rduR%;(..tF m>?KQNp4\@ZIfkA{8԰d;HB/h i\`Mi,D.A)NE pLʖ "2^NM@-68f =kOM_y)Ƃ^YToD3ˁ^S\_m:D'z4O͎O-pljk>0*SP,<n%*]_,z˒OVGiKB)7'}k$}kHשlVȼ )%U!.~qVSR, ,[(P25u*Rt%!ֲA` f[_bwj eƨg$[uU v1䳆EuuKhU%MUʄ0 ϧ w! k"}kSWOT%5(ё!BzTɽYkcFrw`'}c^*ݚzZ.V_3O)3{\g~mjF& hHH GӜ*+"[߀7֌YuZЁM_f\4<Eq .U*x8_#m $i$)+<'EK5ّ/ oNdi-GˮIkd`VRITnY|%I@U8DǨTV]4aJCQw#+%4AO/. Rˬʑ}zm1Q.\Z^T_D ֘p1 OC{zB؅hBEih`P<$*ׅZ'&0UD/ c5b|{eepGiFRb:Pޝ?ifl|Ŭ&|1(uaVKӉX*)6x*Ie{}Z(M7օޏ=U=H&ɦP;{JQ9~h,hg/X<`ao)Sz[l$b ȶYp -eqǗ"jUj~1{H*%+8~?`sbs,/h7v/fpHiTBˈTXF$m!"x sxP4  K|fV ws3ъQf+P_J\`O}˿$RUs@zm$@=z t5^^m+سєjIfi8x| ,k]gR$,!mdQO_ǎ!0H3^"~LC}VTw=S=0.raPI%"<^TZ49uZ2aJ 5g! LYm a `XzDZ"AxL۱]C{Zn@ ~q=.i"ek^>߯1fܽ'4b32eW 턟d> " N#qF4h+i\H7=fɌ fKC\=_RbyZ›Zt;@`3m 9~9$km5heٌ{EE(YzXyO.D1E+i#q4#.|Flf"? JV&X/J,2ZR[l4&Q+1iwଚԫIU$JO!k .SiK\ؚ޺X_i?_=ۋŗ?5d+jIE!{g&QJ֋n6bߥgL.*Xʊ삆 " ]"guQJq'Օ+ ?^Y {hˈ^ Y傐2H"\9ѵܲDBVH|+}m*\W I)H} j9[ ?v 4\uS 0L"7(Q?3NOkjKq3Ϯu$P|U^!2@4`l1p$_H%Jf!# "(]V53)@ ѬHn>M Bۣ|pU'^cۧy./KvC+s葴H~{Ȕb/L=]l:@6B%0,Ew h^nl` P+杔/ t8J=|To 4B}"F)U$}h_G6!]OFK};4$4YIǶ4{ [zK-K2*]=3/^ .IQ$J8 J, hhQClFf|r车3E$C/M2!%$d9'Fs uwO~SͩD.KY{5?xcG-HJE&p6T;4MlzelU+ާ^j{Oc9  Of*Q ޟ$]5K$ی9_纱6X{B@XxgJAM;jpU,R]NʩRQZs.>N&)ʚ qCUs_ ~E% :!L?bA5aRi%Y(̓zha2=zH~%@MIj=|+ Vwή=S/!)U4ۼ<ı8j/ poREvdpK6Kw|ăA I{8=⇖L>~K0NFϡ|ѦMGp+aC<x8 ̒ߙP[=w.OemK"g^B_OI8,JcB BB9n n@gjo)!EcCJ9BQPVZ(5p&vpѥ M-XRB*nhIE )Q +ORv4xQ `å&0&WOi^WGri,FQ҅cb b)*c*jeVQ6-6 ij[3{=Ҕ<XǤ 6X7Hby@BexNv*=^{+^12JCEwKl[q(H(hLqKs9\⭅Z1@|W J$[?|ٖz aDuGB"Q5zíe.wB91>2TATQ|XAuͳ }a9y "ǬU"[iG -eCeQ+U6c+&RNx>*p]-aXr F H`(9ؿT65(9:%R- 6ʴ>s ]4Yz%j@PLf,-s2Z7F+a}d+cAbddZ(culs"Q^6Xe'UpԵLsc.z,TF-j*=!Zq-vR".R̀Q Kao>)  v>] yqƖ 71pYaTM:&w2&]e[ks?lPdk٩OVpE˂<;[ y^& +{!kR?p ֬'ħJj{K6San,䘃'ԣOmDnp,ߒ%4%C8& 1`ʞ,)*cIH30]54L = Ţvb_LK3aL~ 8@ӱfk UEɗ0awعPv=-#ݦmy(HmFJa,W*!@CԊi>jod k@&ؚHNؐGq#G2rR-CŮ]hS2RNo-,Bӡ\!drZ%'k?z͒b=yn@.nQ|qD$:v:֤YݓcBeT)TLUx/yȾ!ljTx-JsLO^jȡ|ߋz5HdH$葇z^w@&?w!d^' ʲ JNV߈k&%OA`=r_-".E9iyO$WCINRlDYsT]0R.5sxGB6X` B89~!)MDQ`G =.>N{H=Bh~~$h JBTc ѺCrzF3]~f=> PA^>8}Oz>9*z+x+2H;M1a̰]Zr([ hCf8j ACLIi:N)Mfݣہ$IpHw#g= 8A$14q:PΑoѮu-BuAƐhx5+kLL.")/,B{Hio+*JU= 3=A:K}=S:Շ=k Y"h- {.i$ǧ3J )ƉAo-mh{^R/b Ku">RR+^r><Bxve=bW^S|Yq=0QA#ZF6ڎ^eZ%@ކr[-{،iq٠P)C@]-l$n#!{5}:LjތxW[ͶJr7ΆuaβA7]ƸZGIy>3-G CRT@q+4:t^@552# . hςtmT֗,j]^K0"|Fu8^2@r ߢ6AJf0.&%~-4>)d- 4q0Bq.p!-茄b?-a](\=CT>G=D8jRRdsMKyczQ4^$/([& TQ+9H;?GFQr$==œC}WvTza9v0yi= &/pAݗ,lyeQ1>pet Q(z" ɬpdC)|w\s%P ֣pLѢpS)bPIF oH'hC$C5֮eG/H1^1ТD3A隠y 2NP1FZ'ie>jZU^z3Ր=9IAE|B+ p*"fѡ9 /BzYLd,$L'"֤Y %E=t =^oߊ<|mx%73{esfᾴx7y|u"P|! a3kG/5!h@6hC2=))bKM馂 6zD)ԧy0r'TZ)@c!h [Gq>8KMJ-qK|T4,%B`;Y!&f:Σ ,zK6(.Rqu"9ϰt&jhv E jePFV<ҚY`!iead̆ʔ"aS<2R{{=r~JT}8J~ nٜj؏`v [(Ԕ-S>stream =*(\n?+*PUJd$ 1ҴpNgXm)3=eԫY0VS>Kf-Q&z#$x6`SfBU4ݮ0x2KY`2!f׺ 2Օğ+BbY8OtOq`a;c2R9^`鷽4.6ZƱl%IǶbc.}yQ&$<%)|Y\\les2SrdiC0c!7 T/DE STI$3w*tL,3*Knr!X(%+o'ǁ_QWt?\{x8. n! bۙ#!fk2!MhA9([^/XTW65j,|~\i`EulRSJ]̲i5c9vAF#E IVWQ$hp.6PF\;)@&'C3TsPd;qZxR'xSBGIdL.<']I 171 }?lj~˗ݯ~o??wwo~qU/ 7is/՝I=7 Jd3*R+WO"?C3埨I8>T&N7e$}j(R|͐1ؤV$\Q9~@oxD2ōTI)=#D:.Bܸ0Uhigނ@D}d Kʲ}a4/XR zgdIF<̇k:DN'~500!Se5io{,%De>- /"1vH,*'y}j]'`U4(5/JzUiP5wNxt= B& O=T:g?!K0Ld"\+% ;nq1s7)3urC 7IhMFNV`d_0Eu݉"7QLBN COhH޷4k֦S|UR*¼B$x _z6;M*@UdP34i㞫! <1׏% ؽPɟB ioˑLa"r$Ai>*R]Kce|ի ӧE|u}{N6CL(XNn$}ZFǶtNTt\+H}Tez(=n kq U͇-|Z~&{G$k@a!K㕣숼@@(PNYJv v3R~vvjlEB?"!Uwa(x-W(|RWNȺ.ꚤN(hJ{ρo5& 1 |8:ISIցm9j-;rɇ`NíAXJsJYr g"h݂nJQ/Pe*"(e~rMսhېfiTh qIi$ވKUɁ)!SC>Hycp7Xh0pR,F6p$+=qwmTmzMFz-m=G|҆UQƪw`+"pVE@D `q7|)9jFL so{Ej0写#!K)3RPG B<('or)L]iLI R3R|@oǃҡ}8H)vl)*mZYj =)d[S {p-R ^}lUw۝ ɒO<3#Z2~ -#=?/B>i'o*Lu`9qwM!|fJٸi!*:oAΫ+x3aaڏ켨{'5B;z<$2BP3cP5T١+b .CNt Cj /6i@6 Ͻt$KҐ v"fLhs QEQWe8AZ&iGoP!p#7Uj~LJmprCJ9Z4XPⲈ"x4Ŧb֍P4p\PY%x*N ˡ&tZf B(偻4[MgNe7Fii) a3l^tuC1( ↴~Ў>5f"GtvsB(V/Avī(:L)t/h^+pѰoOPYwfaFhآב%KL.jCtHkD SJs6":7FBd?4<;FMͤ6؆e0JHBVQ L|%{;Ax͆6_eKZ+ڄ :f߸G'Qqp"߳ac%GwZ(~f{mQLjEJZCr35*[Dv+y!Cu1\ǫ oʒcrsUῪ> H)ϜZi,kF^0xP@uA+| c-sdg:+={6_?mǿ4T@^>sn'r6UU~`Jb Ii.I$=7|j]*L*V"?$ 魍>Z>/):|e轖>Mex-$93ňК\b2+C9 $్MOַل*q$tR6\=dC2Μ;0zWHt4 U'ட)nh:2s0p<./M 3P"_eNwI[1oq "1㛾Rd mǓ&2Vp0Y%Q`ރ C;Q*O1 \j;þJx~6'KBJl6xLMeCk^Tke x7:5>ɤ,"ņAҾ=R/,̓ȥbsd D̊OﳒS=*W5`5e&(QcQVb֒am.=x G\Z0Vc4dIkG{urJ`Ťw8e-) -@B!*Nc.VqCZ8 >eOSZߖ`”iWZrXJr\"mnZ, 0"maIlBgT=ʏb $dC@=PA:,?47ɅLc6ηTU(^C3"pnadոS3{j?ԦuQE,{D&󅤗1;WW"Q8JjੇJ(GNR)֮י@Y,Q6-5Ko JVfOt!IE#\\Y7)ːS:_l@B!y#xh|eek!c4tpbZxYwEPBPժ"VyHnp/ YQ' aj$CeA,e_#] 0vHRFD5gz"?1nR$4)( _HCI!'# 2b:փi"VezZʡ2w~Nِ02%@--e'bdqJJXFYHQuX!&iX HLrט`$]& Vȕ-#*r I;L`4ƕ B𓕪Уâoբo/e(Qx#ƥ„ N]T&b=%*WbJRF{5QBR*1kJ̅XƳ*3)H>DvyL|XçA`*(;Q]޴`sL8-^( =.LY9*3دxƘ1ch0N05͖܍h|8d}K{R%z\@kAR:oD-@ Pdo@ХSon>)O{oR$ c( ܌ʵfa)ܬ *BJpfL% J4#v/.=Xѻ@:]"G%hĀU9  ZaP0B_,PbJJ{:HUINh.=H3mgiaAfpyqGN#¬!ceL\ԧ|#ݚHº.II |o$UsZ⯳:HDH r rciDbp3%}4$Bod@JM Q?hy07C)PI^*,X`ըRTJ|>B{cuի[M\#Ay D&M#r'O2:NnBȆ}OFV E!N=;C:=.ӱ\QVF+ THRo)YVD<ֆl Xs<#mu0brsa1/[ ] O}d(8k3zPu lAjǨsԤƴt"J׸$KRo ! -ǟ8$[aoҊ:GU5`db | +a| xF$1PrU~ !19>( :C!f͊)dWsRg%Xd֛6FN+ޕGDD/::6aʛ=@GZ\W\^B('K'5M$j"G0' ')A~!?H=df9Myh+\At$S;2{S6QՓ*`cc8 eCj$LhGͣDl."4BwQW!KQWÚVf ?p("wH"os<Z-)N3id[^ -^YMVdM5qU8O}ƎK$*\'q6(X[ {j@+T!WIrC$q@?~ؖ{6Ս@ Rt%; X@񁃣2\RпzãV|[)&1r+*<^v,ir zsGi+p ٕpǍRLpU!y$h{BID|{T.:7"qd"F.\waY富p@ qCڋ;fOptLʥ#ՏnV ȅ/t;\0|:ipzJշ!L#wYI}m6F o>TógT:IӝHkdr<9ju+[nظ( 1F;_A^]VPfb \,ͶNC:38j3z`L2+(\(pGq@68"nHR_TgX-."޷fehу[RY!|UXO{w%MBͿ/Y3 Ir?~BRj;NҨT(YC>Dq4u Y*^& }(}գ2iU ÄB [| W(*b80 3;^7t牀S;gL],.喰12V9< FĞܢn0{Eٞ+VCYHC" ,Rr6Mkl|̔dn 0 U*G `4cR^|݅مNlXft١I5wAL)‰SQT0`ABhtBW:T'@0>ˈO:C-jД! NdPp$'6?Zv(#nsXC!M{U`ZUUsjL ~k1|h;E tmE9qҽN0Yp0-gG;c&% U" #5p](Iԃ1:y l_{HdkU] Q^!{|2Jdt2B/5Pee@i5p*|p˸logNd| ))XPR!fy w$yvr`W 0Af>e @RTd"`w Fw4Bo 89z@E"fΆ,Db' —Zv<_S2TOcñ |0$왴q`8pZTsPS Ȭ9DٞCp*FEmo (:֟waܞM.d -|b |\NQSb{Rl#QbvpB ,I7:hh8#ϑ.]V=L8^9Ηa$݃o+ncQﴥۄCړ4f9XEQ,ed:i=gڅ|^dI0k'vCI9VXqQ(*)FډM*ڃ>,99&8$0JY%F{Y>)Dw,B8,9TpG .v;Ԃrkih?0%?@CG3ޒO+2INfOwŋ1p3IZu H z4)( Ɇ뛤_Sʲ,TFL)`VIGfK@TL ye0=Nڵ'y`ĆCWҖ{s6I|ZElL)5aE)hP'`Z3tD!%06⯆[{4q1PN)?W{xt 88>Ɓs@X!!+?iዣz#UFs<?1k>(!0n,.%[k.,q)&̲F-jY x@dCRPUp=ݪD%(ENaE.&G*Fg30$'m1::] rtCc{d˔)zKTD(k7A%>+t2=E;vTapN5`Y"6F@oKb<\˹.RBIz c |u@I4z" UrYHOyr6ppoZ(QKaj=7_E2k#VG<MRIiQ[)YJlhStkPnp^4?]}z_f I'ѓC.$*{VLaMHcc{u>ۧԗX-d?XS7a G89SFPBL4rvmo=I zv{Ym,YKwRh;S^f}0/D0aw/$4W+³j +S>Ƙ<Y1s J$OI7fL/3/8RA1~ȸ5TLMk׎EHx?4`!Y:>ݣXZ8ecLIL)' QI~$,YAԣuBPFka^kgZOyH Zn)PDՠt-bT7xp2T=#2tkAҺK♀!Ս7@/dv+>*x',`;qz!u \ް#YG5R$I -,9"Kǘ49oЎ>B>7[y흙Ps+̂,dz^@WI[_}aNbe0VW|NQіD`.$xo4qhܫ\ć0QeY*jCJGi#<~ÿ¨tu߾p`j]ȡ\8+n *%ؕDo+`Pֲj#!YwW`#G ΔՃr/'{i#o> `:@q-$?Udiw~řsz!ZM2h={(alƟBJxH(hD,Ρ?b(mZuR 6^̟LBj29:HQ La~<^JypPC֠DAw.'ڴ+RA(R=Mبu#8?0>\ZRjOt.$<?_S i[ &D  F@jϞ] "_fGbJXU j.ʒ64~.;L#E<&iGq !)Bin5 ^ ."C3V1OMnͲƴ: cvݔd2(Y)fIsJe$D'))o>^$!Iiv΃ԺfRfr]ē p$Ihcd9`610I-X.^eB<'>'>"CE}{ R9A28] eO"5^9FiH$C\L{ȴT\:tJkF%T;HAtC3T"h0NQl@v"rDaLAswQ.Ξ"F~[ }K9 *ࡺrɟJ\Luc =ٕW#KdO& 2'eLX=4W{D_O] Xi[_pk݃a~˜@t!.aE.g3䧤qSlL!eGN'%IKqK@ *z7*})rl }&G\<2JT}{7+!l"4t{ ZlSzA3Wz//"- f=kHeZObdAH+u wI+q 4" : kMg+ON$~@ʪNbSkyV[!(zЕ"V`eȇs:c >sjͱ-9 2rSfR=MM6. _=h ȁXd SPH}+ l]n-@ڱ@;q*ԑ@U"uoZ XI!@ڒR1hk:$%S i{a>P OS!T̗QS1kW;Ƌ$Ku E$ a}=$Z`eT x VqEҴd7#SDO Lڪ0 DB4M`*:{%k|E7at9XVۗRvekv"gVP f^R$SZrqP]ձ=GUhEܴZhdGA:Gv2l1k'j)m0Br߮ B qXAZeH{=@/E6p=>8b&J5,%ԟh%F9kRO!|s#?5t:5C Z"Nu!GHu0̗9+qd8Gܡ@XzΦ\%ȿ%%w Y=,F]aΣOgFt* f|C, =ȥ1Pru:7q-(+a?w"TPW+ZWNozd5ۤ  ΒV lN/-8=\*P$e׋9R9*2Oըe 6åЉ'h,"eC!*76r8Psjo㦬\>-,NẃmK51(ڎn7Bcc "K#J"K05tNo^ò؉,*7nr("OB'yoE$V\ռr*!pt3]J탏|ØvXHӊije R\tyF$}ʸȁƴ;xh%8J2&C59ee "A5"ˆ㘘jvxt6i1"qvc ^QQI+"Ά-4sDRӸԖ8@;:JL4+nȤ0v%=C+M;"˳MM4`>b&UgU]{6uFC"o;fG> sۤ: l 6z:WEa0wrX@Iù@ieqVY^hX+Lsn(w) kt.Bl5B@L&9X;}!/$ɯs:ODy Nyt}+: $' Z)Y]CBP4T[A ZE9Τ|<8Vrл&W Y C=Hg#`!"T 8e.пdڇĴ>\L%3P9 goV˪F00aNF#ۅd™ŧ={XS)J <;}9FqEV@\ ?]Z {Z!,U{`n}rq>c+u~xDXErV[lZJg!ףzoMtHG0OT; M %5GeՂ5YXD"<$,ϲ^zqj-e ̽j*=ÂF1&;zi̱WDA"&pI}ѿa{ܠ/WĥZJּ AdMWĆ|Bo5/I)e;KԶx|oV *pHEcMO=Z @f \d]^머p'SÐDs'L,a>,a ]"Nƺܿ'0;4*ZIC}Y|gܵHq9O~˿~ۿՏ?~}귿~oOo~Oſ{go9w?S~6W?~}|_?|v~'~?y2_߾7|omv 8?q鷿W~w]gOmwwë_ۿow~{/g/9|<w߼W_! ?_~IuW_$(_;XhF !g9~R^E^ (c"FRƨRʘƬN橡HJ{X)em^WZfo8GMэ8xnF/7'Κ"O* R3%77rH׍Xz.CoC4EͱQpcFAU?uBq+{`hs"wÃdz?jN{u~5@s+ϸ06aшSB4!ˈƤՅEXqY^n~8g;FI_?v: 5ͣvcw_єfXH~ၸ(' H0=I.HnκN_Ѹ7S-Ji}g>x O!e3~1u3ߜvsJ7nmCƙrFm5zv~N(fjig= M4/ ՌwP4m GS>#R|'ٍ̍3yK}˝H׫13{ΌcBz`ν!(滟4ׂs m q(ӵܸ62[Ѧ& SD+(rl8Fc9OAS Kˉpm-{} ǂ`iFWe~fz6*cFc/"l8"dx->^ݼؕ7>ˑNAyk`,~ͯbiNm{'q87i};wFlĖ*7iiFܘލ<{  O4'WIC|ק x||^>>_&h. %K߷Hb؍ L}3.x/J§pnP)nG碐(ժwN_=yK:<= q "wiO,,j~7.S9ux.Uo= <[FJ鉫O<'[%LĔ aȼd<3No0O7=G9W$~ߞC2qgȐm;ɗNc)k<'HJv/0-NqB;89b|:}>x709kl8Gsi3=mlkS$8Cg0m%'^y yh|}K[yۼy?wtu6O3n|絣a{(qOJ؝i%%qY+a\~DsgJ~@O󉐈3|"dt^si5םZ*ps{pY~YNh P.Nܙn,5,=ײNZ& Lލ5MwOpQn09]YNs87rDʉ{NC*-T_CU8Au>Q:ktјf *33N~ͯa"eXnSy 7 ~4YGU3׷2tO g3s>4Yhtgʯ՛(` ڼDA%f"Z8[<\xC7\K:{|֒ xl)#u+ȺΙ@ГP̭t&$j=% Ui}_SD͂o,YgF`&}g|L p~>Wc*y_zSμ>7n"I.e p,#(,|',7NxmJ9'}M~r(|'Ow ¸]Ri08A>Z)?蹏Z:g֛wsꃾ7 \%K?39Ag-ʼn[^3lqD6D=&n)ΚYs2eӌXMS{98̆j-&7@ ˟O^y3+ٵ@I9KS׸ks2B ^[O7|%uW*7GNY,ia Fe#2ZUq0zS!wU4 n\Rk){57uCu̇=0o ScUGmFqΞB ^ۇZt5ovIG9KxnLwKU4G .T>nWC4)vcͽ¸|>"\R7P{nE\-ىG}NO]kgu_}72駨/ܾ7; ;'s35rrb;nxO8;?=7\urr`Sʁ"r y믧+Fh@9xa5rLj_78Цu)M4\WW-{|WX%ܳR 4Yc`~n[ޟ]po%ńsOPw {M[`Z<&`YM4zsԈQ<p=ĤxsWLst?ݳ^;\v%@ӽ~«Xp !7w~bprq Ǐ=syPSԔ}eOͯAZ, U`wv'M}ǫ tHSH^|WϽg xgy!Iae;L zF>~zj㗧JrqoWiE fP`Udlzz,Hy"ygaj|]8/1Ym{C^^2r޹ pc_C|7A>u.~'rVT2ΓޗU"Z=(Yq*_yʁcSR*VƋ8Fkq:ai2f:hNO:sf0x%r-_h_וI?h\mxz{y, ϗ_n rƦօ׀9+Q˝o1!:~1hיU9׳⾻qW;8)Z%_"qħ-*䬏fZ)ƍ~88-ҍP֢Nx.2m.ݩ/lqr}})'\O:NZ5cZzɽ_C 쎷ziHrl:A <}36N$h2΢1\(ODsMgNlcm;o{*Ĥv/EAEv^.S.8;ݸl!{u XDڋ|vJ)S:C'k1"#RO)R ~N0^l_'ϙRlI5gZNcgЕW:Nzz6{4?|w"9~J(4}Us߽z+ݭshwHoR>xR[8~{Ť5n0ݭ@Ii@ LFX3IQ"w+BKwIpV}>?<$9^}mxeX:v Vd4W0 AăZxh1$쉿_;.{$l6@bHQ:To7%Z ؓw*PGz35iE:{'wt) aðju. ZJU,kΎxǓ 3թ[/e"pJ[^%\T$/x9r2$KlHBPDZUc<% SI=nKACBA*5)LN/w`[m-Zi?#i$AftǸT* YY !a:i%o1ԒAV!@G:Tz9ZhH8Fq̏W&38|.,%7# +d>Vtxs ){P AJ^7ROT&27Zڒ&8,k*@9HAO"Jmrsٓ6-.8C)^ ;B+g^1nQN`Of BpĘ̂TuDf,X);J .er^Nh)lF9Rc9NÀsye r&4*:%n o*jNBײWzu 3A^^?6hHK !o)F6cHVГg 1@QzTˏ$5*4X9{a j^%7 vd"dP(5zU ,M/zp1CvqI-8𰁔Eabh FhPàbȤ,7J\[ {,(b'D0 DNKNb`#* LA ƞ ک]Y `GWɽilGU`$ZYtʒ}e oK#|[V S#K^ieܝX[5 {e9> 2LO`OZHuvJ0f ׷'+ű*Cf HB"-S`XCtWӣ(IF h.K}X*X*2a(R̻l>Jw- F)G*uD*.-Z`TXKL3$aBZIgULaT%\+'blKN 5n!6ng=-Hތ=qfv8^R4VeA#vR>TPp*~'ҠVMx-7sqiP=3K:]*NAAH=G,q9JQs8@.+;NrEVY BcgQJ"- I'W]t$]R66ĭ-k`ܑ[{b3J8HokGN7 &LL)錅Ux?8.}TE&.&[YqԊwr_7(!O؈X>Vn)!iLⷢh%_PÖd,"pbt''T}R<{PΫҔz'RH.͕xUK6_WzHK>[u~0HP)q[St gQs. A)#m-KSʇȃE*Qie5.Ri mqraO iP&t\TgL9\*T<(G+pޛJNj&{4èU%쫪x[SxPi!JؑA Q:UGN!yq^RH\3Q+ 2c.>EFc Ӓ*U1JTyQ|`'IxHڂ-.V%[%7a*=Erb5 c# Rq ؋BfH!>ij2@j ]Z4YQ|5OFz@7*ұ 0,*Snܥ'%M O!#0Bg]Z84h\8(ݘAJVhxHyvXSĎ,>DKt2SȘvPcˢmqa6EVbEIֺd mk,s&uIHg°Ah+Vjw`O:Tʭm]Pj취kq}ud[<Ҋ˽|y f%F:ӑZMo<:*7P*I OZBhZyk h'Vc9I9xȒ[7I:%6/DU7ltQ='aPDt^ tK:TbxPkɁk>AO@ !jޖJ@|𖗄JUI|TTF#:%"[#k=aF0xeUfd4z XZVb. j JN9Q,7`&jKN# ґ6;ȍw#[iPV`KU\v*V^Y8GpRybpJT$QMZ=i@Ekk }P,}ޠ!*6%Vnd UHh=iPNɁ?3 4͹ %@MIޝ@'7&'(@NǸ4dKV60dXNDuӃ@*X}N(HNE,x9igU}Jk.Dˠܩ+EFtJ#{#d/UJɰBmfPދ^tғ&`RZnO)hhX{%Ռxr`В44Xv"nJC=e^ĭSV],t'ʕX-hWd]U T]:uÕTVC:9%(nB8ΎURIWEۮIJCRiq6à8pl!T$#N;2$Sv=S|uj˙nE/3 +v2VNVA2wfHEvX㋑!)FAi$,IBe 7U 4Τ<Ÿi75OuyO?[WkUJ*7eҸE*\./مmi2ie2.a'Yld8vSwq&*㋇IvPoOp:hړr؊\E[RnK+)l4(%в_d_IBPO,ms|@A#Zݥ7ԲY͒H1 HRR+IWS: zG& _HNjUXI_yej '$EijR3RIY5$OSTB[IRJ }wF^h)ֲiH<8l[+&r%*eɴJe&JobR^i.r`LiS&H1An_D$#]:e t9~:^g/w}(=%h6  @]Wm8d湇dU#,"jeVV\Vvs᳌[a`rɣ2n_.sZr6tsLEy%6z2zr^Q?j'_Z-ZZ-Vu[n^n\e`1c5o՗ 9V皞NAM)~<{.qvZʁvaLc+b'jE觳mM{6k/]ꆏqb}Q^Q肑ĪoDo77_X:XX8@X?TH &׽-WeN& ecԊ<:|%c=*1FNccO//П+-&Lp|dH'給yu 1]?,o3g={P+)s7aͬXՃ M x|z!L&ߝ )ʭBCz^=)nUq}AFW/k[7nE7fex/fz~B\h!w41iD/ۍ ϞqS1AA3*&4MS7&ԿEebBxp6tI\=;8׌+C;I(%ռń aV3AI`(U)ڑvO$W7GgnK+JXͻv4!9][-[,X-hXݍy(N:V-rtYԇgg\әv0zuspp2;WY/^b"Y3k:yw_b2gݣzq CF&ډv2v_[40܇vq AA=h^_R1 q95dn"[:]2݃5Y2Bo'& ĈHGqĨ ?D_7SzU1}ńBq{VL( ǰHvՑ}Y>Bp`sj;bFw ecqŐbd16\[2؃v_Ӵ2ӝrN{ Y_؏ I@2S2_=^+˅:$$U" Gph5X>\h}{u3>D9T.-n/3S$g )o IMomMSQ!M!u"]{;'Lل1|X0:8usr|ƺIbR.<}:՗N&&7Mdò~}<_7Ϳߓkw<|V4Zobxg.[2 }9?e9K+'{7yuw& /ּG7GʙZW`V&6yD2ЫyM+9ݜ8n _|_6|8E @^W|'֎k' ]1E"JF ۦ c%\ҋ& ,oփOhof>`cF9GxDeyM <#{ҫ'93L#G=YKat\7߰Q<gzq Ia=]M})Gb($"rK]> c@БȖ' LT;3 ;=A|lD(BlPk#~9cEraC`A6@Gad2ca W[ Ge S[Rm8A@zuE нºґX6'[>j ȡa} \;d#SܝSәүf1y{qcٸjOЙpy2v`(B5!u"dF#dm"]?BqrYbF ³bA2^0 & MhC{ ݇2P.1A71ţ4`QUkzûNW#{+>*/~wpGfᵅ8F@IמgJ΢O阂|` 6~ sh:SSG-P8|t(h t,hLZxGBz^ CZBl[ øt缐]}-t&ݾBdp>s{\0xd`AFѻO Z0I|D0`BrAkrH:b#e 3`H`#sb ~@EiGdT*"򇱱XIygwNfR3HV sIlH}M>L^c٢ 4 }`ؐAl` &l$ց]6(wTWt ]. mh& ,z?oR_F+Vphc\rD\~wb2 0抐؞>0)?~eʮL:/F |/emM_;ĔdG0ooK4 Q́րIB̌WLoša|hp,V}2,c:?S4x#s߾}MDkjc|rO[m@F?`+ ]`Ox#<0?1n恏+,//1@ ė!܂`9VXNVGd=Ģ ߁k 3d [f$Su{cfzz"KGpaa;ڃ^& qfWd(4G4 \-XaOYdcY_9MWuՋB Dx'`g>,oqʭ½ѮYoCMG\,]`p_>wtX_`H$!yh3|Ha a\ۃ5MQ=/w6  zuZ-#u~uwz51SތAY65q}8An08n#i[&Ӎ?55/c cL-W>aڟ/6n|LF;:-,#!=XN˖аaL+Cz k Nz2 .]EsAq~?gL@b?XS+ 0R/aS.0qet@#pzHkBm Hg#[<ؒ8ĭa A@2mdu6ܙ  ErM@&h~H@w{M܂GǃPp '7! ʆ!C0.oBX0 h8j6cLh`zur?Xk XǢ ߇.,Z 3B G@xofW%"#c1#\b8.uD.zZKi޴O|N8Z9qL"htd3םE${|Hw&ȀWt/XF5=C:;a a]6[q\Vǜq\e̮._J_в c`sp_50z3ЇLh`EJtm0nyLn-I f}0_-#<&}0H@-:Xe<ÄƷܭS1Ml 6N >C!h ZB|X׽K5_?cF &ȲY}\ Pu?ڱ%5HgNVe[K6棫G^k~4kٸ1i>|=z3\ʺلqL|rNg۳7>皯/A^ ەK#[Mv)-.m -:2:_h eK_Grk x9x?S7x?`m"?ؠA-4Ā辀{M+E.jV5T02 WdRqCxX }!ʄ> k@ *.wƕrwNsO 6P?M,қ656ZLiqґ *kR^w9}C: -14me^ܚÐMS 2:BI̡_w s)&n6˖ gġߩ ;21%#(_"r†wg:']L&݆i}  6t˃ϙvLj`؆L!lci=&hl^9l`Ѝ>}V4N'JwdJ w}=s£3}iW%W_;p;X*l$^hnk X I|=nQqE`rHޑqxX/wL_ e5Wt.w͇&81X1<_eڟ.dZ1z%fx[S< xtLh 9΋ka_Ɖ<8uxo7(.{dĝaޜx31]}:pz`YL`!Oto} 5yUsJoj8oy*6 |jĽS%m;$Bvt1f3F6%'ҥ_M7Y{=bDk~x]#Ɣ#U:Ʒ1uaΨ:Ӻ^}v;>#~Z1pHrU|Z2wqAձ&]-SՇtw!&ox-z&t3ul``Ζoa:DӇG񘯻#;pdwle memxk4tݑab6>Zdl>E|%^A)!; ` #a>uOBm&T1_/|<u!:a,.9<|\ RkALKjc>9a:>[&5.bɵM ?\6&mxɄɊv@> ؒhkG\ҺSn{ks掹|j~X0&rE{>ʴ^Gp?sL15]|q.DҷM16وAi@6%ULlǏAD68d8 >tr}~ ]g!FDmSofɛlN5Z~Rz3#҇@shčS5u)N/7#l~#s|<%6L`*kآofaD@b`'!f|Vļ-2sY1ts):V)`bN#khyͼdb|Z1}<.l4H'gZ$U[ӵgs3efquoB"¡yjt 1C t7ҙ ϊQHsmQka xH)O@Oȕ?p~&0g ?=#{:xu[<51,<vi)d9 ̩ 6fdGd cD x& >6u15\wY)4]:"|"+VF](nG`O1tĮ;VNKy,p-1gKzc A61JpQ໙lFuB:O+|]bV1s{ %h ^"DR g`[~Ta}[2l=7ӑL+z@ng!H>!=6_wu[;|)ˍ+͡ݱ̀2p${1,y0́T6-˄ q 7(āc0!!e"pG:;ƿr;WrDmj}9p]2S̓uʆ%_`2@pj#} ŽZws.w?r(kGK<Q@/:_.}OZ_/aѵZ0p9p,Cנ7 ^owxbu?fkN۳wbA޶G0猩-d|i?d1K[Pko}9o( ? } n]6x9eM#f#b\ƆItYa) ?Q6 -,Z/`5gBE X?I\M5!Y9|X.50(:/Q'43]b7|Bx>cS͏*&kXGƔ~fNL9!#\'lρ1գ7@x^!oWrKfӽ%➫N.<8+f 1N[7'$AzzC|Q/rXLYqf36LxfMPנ-o0+9a f+rI X`~L똊BBt ArY&gANiZ&`;³b{|[DZ#,w(ZӃq'*{"_מT~@~ǮbKqa`3E[1[-㾹|*6wߴ% Z9: V8myb۵܆M'@0;ҕ\JD.=*F?Ǣ9EjEM".lE6ܛcl=]m*nX?ZS<~=j:Z1*8|^BZDSl0RZm OJl9k1?i1kk U~C={x::洖Yh>,wVJyMyk]_{{!]zR dDŽX*pt=Dqr?mxJ-OZdG3kk `]4xŽ^{g.b[j`ydߑV7A8YR`pr E`|ށw &0 1J\19̑> ƾ~|X[KۂgdUkanMy}*sqeV`0_NzۻLg_OܚV|svO3}c1G1mSSl WJoB|z,s.e x&cdpχAشFUj?+_8 +9F6[4bNq xvty|y:_tܖ'zp}EZaZnwf 1!YDCp4ݐ yl5Sg:]‹qŷ}܌i\o}KlϤoĤuU5/ ȅcFxl9(~%Š{2q֐ Evr_8QPOg%: 7ΑAx C3'~+jŔ BTb bnmv6QX6r !G.}>.vİs@E2$Վka^3%fkgJYSgiݕL tttHȉ`#*FYp'mR׿ύt'Ā:S15dmzE ric1wtyk'{djy˸},{d|F \`+Z~k)w֌/C.O\b8{B̏vs[ZC>@:<䇰tr W|F _7ԁ8/w8lulCWRDo_j1(=ziG +耚?bgb?&/_9O8 ft/ p5Htk-9B6}O8WZ$.=IԺk_0,6f… c=#)v{6-t~Vx @vAoBzy6U3%{9-FSa}Ʀg0;=vg\2&im |= \q5Kz1->bŦS?ڃnنzAގe!q^i@>]uRKozt͞ -Jy\I)B;k*4&T_Zq( ׍d4r7Oö~s}A. ь~RNG`-viuB?wt/ `['0'4tkX]\ ;p,xP7RؒcjTr ̤+/K, r yi-b^ ?>@LQlx8^b6 [z̖;eH{z}tcP}}#3Z'bz3[fJGA/3 iL1[G~=i`*@/SHOc[l`N;ۦaLl6|ryaۿƶ۳?46w~1)=rz/[`/>8AO5],=a"~7=?`sܽegaڻs٭Ƌ9'Ac(=CZ jϙs:x!)6a3Kֱj17B]pyA2>ipJIBCqwdgdE8˜#u }S]0kt(SXP*y ei_۟/w|-͕:j}KoyyƗٝ]#7nf=' ?vjl~  $U7ߠ7]Whr_{ޙ;=dP +aNhx%tB^|$9g,e6=]¬{>iMC7^u鶇k;>3՞~iY?na;?Gb~c9șc:|@O6sd, j]Ǝ/M[K鵝_Zn~ wS@N@?z̎Ngn-gƆ69ĕ?` {apӛwv:V}͕awu5o1T95UT{yfkW=ˈ[OfOiT/]OLp>LVTTp@tKl׽WI.93O xi1Ǵr1wzF>Ȗփ 8{x俘p=Y>(&kğM&9P;}=x_Foel3Ӂ}dw`pbcw8ܱ{^rtccۣm=͡iK_3_9Q_:.;1%ߩ@.A pmwCtdsy5ʼǴ][@t0{0۴.[~Go~xi˥ԎW˨]^٣ϐxR߼owg}4 ;WGcv2_fO6_77raqnvffs2"7l+Q^'"[ϸ:T0bߟ2}1ĕ,ϋR4s1d9b6QlΞ3zkh/=XD}2e/s /v̝̝x}f=g{cNIz͜{̜}7_?=~s5N\x$;#?_|Hoiާz`>ك@;lĴ\%oo ]wzc'zeܮ{;w;Ŧݯ;]LSԱfįO 0g22P߼M7xjs#Xܼ=t}q\Vu^ԭ370=.C64f 2ib]p)W9]r⩋^_/`}-1c:v9gz>[~Zdncrs|t)+ΞJs;q.V暿7wXeóhd/!L6L0_3t7ߒ ?+~~q.<~w7UvμXX_~!j% ;s{rRxzPߑO_gO^<aZs _}Mb<)wqugO_]Ip}3L<~=zpv{ݣ±H/ߟ N^F:թG.&;]8G^;Q{nf_(1?R?=.>u9?.t^K^q?R`sG}A}T.vUu]Om}oyn>v!ȼyWܙCc=~NjVpj]_ݿ/3| %\_lt߃Mw6;VގƠua7ïWn[uwS%OOӍ|#)'mH>Mo~b16]':3'qCǽO{>ҹ%sss@ve]E3+6^Lu=#O_);y)ܵWJΣ_]v\\ ϧTϭ ŷ%kWnwԾsav|6rdZ/l~D3{gEܣ;KOS38Wr%sQb:q6[|q׊[ n l߰ӹOy;%Wӫ\<}=䭨ooGB?O܈.=q=蕸hݭRBJu柿/v8s,;7e9ޗp qcTg۹3inN?Sp;ظ\S¦p螧xvpx׮g\_trӕ܉LkKMq/ xvjV;ݞFD3¯7KV>_Qx=zZSН߇: o_O~%>/W|cgꎞI}.|z-U;L+YsףW`mTBr_w1&bi]Һ3GO{|OErNg֬?^ Wss饜f?to˟zw;s޵J«E[hzu1x!4zF'[jB{UUVBݵߟ8>}a$T\Ωm8VtzU媚-U!7[k:7U*xrR|zD|pP켛Jj.G]웪Op瘞#y$JÝU:ʩ'oX{RnVlvq"K[xa #t.=JXhs]^wT:uG]>}-,yZ\5kfO=~}aoW2߯d~%qٝҪ^H™WriJZZu1iԺuk' cSgCn5']h\׸dZ*n#ur''k l^#om&{=΢>LFbד6ՇwL˼ܙG=[X=~|ޟ엖֍YRe38?}5EٗkםIDvrm^U0/^707{a WJ<~6b]?T!r5}~kޥ#?&V~&lY.GQ }N#]~#WIvvun%֞,=|+rت t?—|Ńuj`eb+GYXZn;X6%twx/ϗU?]yu'rםL,& auܳ/]pQCƵ?d֭?Zᆚu\n*W'_J>QeFUVβ-?*][}0jRQVFYnؠߧyj[Z$Y/4vaQ%wAŀ#b"g^ɠH$9((H01:P1脽>g=u3s]6t]PM4BhHMd5t"1Y9ɓDn`)aaj_j/^S{?՜[MM-koW޴ri>ҧW˚km {{zkmA{O6=|ϡ6ww߯ӽsvfl{̯o>eQɷDgi4o3il6@H#o#sdl4F&6hc ZRvRߥKY*d?I"œ77VD\vriC]]l~صs׳k]+l䥼sj/^ϩY0PiJ:󋌎_߭}Y+~IV|d2Cm4MC+}Jz|zDј0 Gh(&?jHǚ}j]*mH<FLF3g+Bz~a*JQ/7](ohZrqmcŒm/l8u!ȅcg ๹Z~+y jݮh~zUzXNcA곦O~Z$ ZYqh?|![V@|S5?5J8h7D4h>71~~㣐mTӊgZv/nx!v墆W =}%x%%77Rn݁y-Jb^h}V[\i^B{99܆ko6gKkFZV?wF8uI,r^|a胰{}iзŸ~טv%~cٳ8cFg\#؅Gr^̮Spm(W'y'~2| N(d{mTZ3!иq"43 -)3Mx3sϬoą _k=t5􅂦Kg Ξ/ht`ycySխpu+~O^]Gq'aYaG>S53C#Շ1Cskq #Q}{P ?zتHk<4wGv cмnuχ'黜7_W])1ȇu5B\y%{ M/up^z`^~%z_(]ҪX[MYV#ϾNTy /|b~܇o~rp˓yi:{9  7_)m(f-U&dnwv{6ѧg(i0};I&;9vOBT䣽k;N7;]t\a o^(쿖qbAˑ Ksn5pEmNnǠ5 YT폿#h5f$K  hxdatfh|aB.[?АICEUOcpNF@L ֋ײ>Iۃsu/'.UAV?SlMC's(S'da2pDfsLd:d2֛wYLwj vWBt}qwUClvTIf_*yzdW ^-͂ovvȻ\o iAh)_Z6H?{nw#w3Ĥ *۹>?h}̽!3m d7YOAӱm̌[,!sEd i]Uq3drqPcF·;k<²ez!=y懸g7m9wr;_o&Clim<<>]QCD45Mm@64@O/KYkil*T[Reu{m;z=qr_4b muF|{Tkmǣ)~{l[!s;lqvY-AcQvN $,@јc 푉uhfVχ9& חrW]RYt曣,\I3lY޲q[E'[ٰTqقƇm7՞]NF3?rnv{Ǎޤ+}6?m`,{K5S܇f1A A?4 ѳUhLG |f\`%s@cGNaˀ(بǽʯlmPֈmgYK1New}Ӄ7:_ ZR3Alk37Gh4Yqöb)2HGl3YOu u60 zhiɹڍo/r1FY/aⓂo!_\%ya+!ysqc}J( <(dl4dYQhg:&Lqc#kl/- |d5j>)h4@]tQ%δ ḫ~?ka{aKUQbߕ,{&=uvmKǹu-Oz7~!~]͛k6ȨnVNgۦMc@|pdN= `/Mq b92ւ 25GcR<݈Ż1K \zLh-ߚhAMidž.^0$QH?_) }ƤmAN1]/7S#yRd]7:rDVFѸ~k%3Ф4-}e)U1|{Wܰoxb'tŎ>&YqE򞿻p}8K(wS(*hgIItEtVVhj~C`chlcD d/-AӼW鋣TM<Ѵy6d+2@ x+RɍvO2??Lwev D|C`Bчl݂4>Ө tuA% Ew6Tiow3?IMX $H~T? 쏯^ !ޕt/ B]#eG@[ߒ{K̷EFh5f)쉷JIs=W덟iam#h/qZwVko :s<{h J'Ma#ou}7Z V)>)5_<<^G*}-=K*˵GgQp˜A%c;3gg)2Z)k#οG>;>y1E{2wEU6[, 810;4~.;U0̗0/BW!Qۂ%)PׅC!\A N8)[R^R|ZA6Ht !ƿy6ҽ?rSӨG*U7d>P.8fGOTܬ 쬅.]liXCXGEc1v[hBc 9ZWs9=IH/c{`Kc? >kz;{y f!QbVࡷފWV>ѕeK# ~glI퉉z(W*D(GTPINkBvϢsS.Ku~\(OXjԠ( p >Z1.p FAh~PsQ.in%俽̢QY1s]*}H_앏TO#Ԛ3??2wi[zIڮΐ7:hyw2yݹ֑\ɖE;0And_) :u??{.v|Nܘ+۰g_r>\o34 kx@_ FOqCѢĽCܿ|/08\ktK !d(P8*D=,&S?s"tc1Wq^/EcG!h&Bj98`s'k0N0?{OD0ڠ%oywdkNf^)<;W+SZql xMħ?'lEa >^h1EHfAC8"%k`,)|ncHyDUs6PMo!_l1S͆k`-Nߊ q>R^,s1]rh[2Lf{t8fu⤝ >~΁焰3GN]^tyITHJӐ4 SŎn[}4}E'{z"W!B21AI!]C{'Cm jn/W|~r4F{~p_E6*~wVxːZ5͡Z{Uy]i%/?`+| 9[டo0Oa^āW^;o %,y&?/[ϑd5l!O6j vhy;::w(Բ*ةS3>)CySX|Cg,\N%Նmg CnԅW!K]?vTٕ9=]y?G<ylþq=ֲR=?IjX7ˏLVo0qOukp+V!"Uﶢ[:mOA7􌈞Ё'|{ObRP;A8m aŦm2Ӫ5w~puܝ뽳{ uus>6;2{to Rq%z\$do;?N!UWRfLQ:\x&Z |#r#%s@ՊN4$AS*I\2\QXk5t^^"Xci{YmفO>iٶg$tjTǃַdWcnK5e>dz.eξ e/Q\|8d9X3v-W7>8E]>F)?;;͖QuT%wK醫'йCi&.."8y.G֗LE͏DMd\bgv|Eu/Ssz|q5]wbt?xȶodTr%kά1e3OyDSg p,^m lA$3F :tBYOdD-Z*Lm=n|7"@*BM$ F0B=.括7^7ԎΧ&;0=/@c A ky{=\|mlz*΁ߐ7_C@Gpm6ejF̮!.qHϵ8 j&XwXL_C-+<K^?[3)1\qiupeCe5@)\7A[>u~%ZWZ/Αu?^xlra>޿zW{_b`v~MN6s73ٵ A/C}ܑG LNH/Fw/Oi2XmndΉ=_Y1ԛΏR61)F||>Ā> !Pe:^c T{3xp[FVQsZ:_ x6h )@Å?Rys_9hF ڰێ-bZOt٠=lItB3a&)O+lƝ-k @@N |8A舤* ._-Jsۙ[{pHD5w 0Q竡VJP<y78o(~$銒n.h|st"~se?U ꒰dM?q8 Os݉vZLhE4jSzE۪n tD e~I}vbJ؂=Scof)&H5=g!k?jhRs,c㰭K]õdFHTdX 8VHCV+p5&*hq'^a.YƁpfTJ)և ,T́;T/֠Bb}||6TSdmd"ب!C؜ :|$80eq<,0d:(1H#:lpbX 9pX,X'18FPGdj3+eCd\ )@+?֜+6KA7zߛE46~eN`)wݓ<:7{6d90G-'W%@ʄb[BIqT9 ֪f3j΋тI$HӒ5|p-4!ф-&7O~)hZ2z:JO2e66tksU{]OiDm y0}W.pI=4e'kKPW 8Lm/)H8e8`O6' WhBe{f :ul|垩o87W&nkלnf(f5Yb#E;+t0M@s TLe2jMR=yj-`ep) c 楄 SVkPq Pl@&,%+>+-.bVƤ՚A~lѓuκ#3O{Ŗl0.y|kϙ-7\ Tx./[y5j'OМu<]@YwqELL"_'PNEkSp.R|yܐĹh<ajX :ƘYg.HOjqw{ Tl@u]YH!|гAs|C* V8%Eg߀6{*uVoH> :vuYȵ9ܡ _w 45.^waԋ{, Pu`&, g(eR;Kp}KOXiUBXmkl †'=Aޟ,eCw~Sw2qr<5QaMc;qruȬ!Ws;{^Ujʾ\ E废{#x)yDw;gʽɺ!pSjɺbiLٹ.\ Z<aĜW \`"*em+Dx5HVqVe O;?Y|eAhƪ2ƖIq.G4Ϊi2 ƄYI.FE>hzs7p[pBpgUR@{}$_)C ײ,3уZ܄?:Dtf :ۃf-G#޸5:(eB ;֚T`g!x&C݀~H;k$^ȬA[F+O9MTbFtWnWf(P\o KU~5h髲-.#S+6Bm%cmw7`Vo0QM .2F#F$h)v|yx` C׬m` vm1]iufAy]6;oz@9 mn'\>pB e8lť6]rT1yz!uY8_No5{b`Ry?;e!+4(:B T3TrKuWs#|Cj.a^ɷ<^C*d/ r5'ĭJk(9ydxHB!YP:@ k"pdU~5x#?9xNB~|I\6d-8ӫ [Q[۞vhǦ;kNag홮>L..w6\+Ue֎TV\9>8I>0豷^q"쇀KCW@u#5p7 zuein9;d- \f f6hþGei%Un'뿙Zb†j|m`e,-᷾S> =ȐFb>3D,M.'; ֗9@Jk;'(++ 6Y^jm=UQ{AU~`+9W 8;l؆'7^ C<3UOQn[Ek 8\ G3k̯ƶ~2ڔ0c >݆/ﲅ .RpN.6&SGF˃#w43*MTfR%hHdaj}RT9~pvam? K%;lM@[r.L2F>Xn5Vbf(p Xd Wr8  L`XĚX0pQq[x&pqĊp]E[st"h"v')s~N(u.2_U6 C0 ٺp]=9n6YG|sg`gLd8. |j2ag+ֳ6Y֍ۄ 쬢Av\|d|Un55f L s,_5KvLP5Op%((+:]tgbz3Sg=)h`=SaMC. qYyL]GN8"C֫KƋN'JBӴaG8ʘt]UzSn [’YSm@ xl3* #X7 kpNtU9-V_}Ԙu^[+_&+!# < x/0`#H1$(J7mB>Jba0IKŹQA # ġ| 8Gxpl .*a'p3p;8nm<8 4*Uخۮ\p\#~E5y 8o`gu琼Ŋ>: qyˣ28gZ̀(ʼn>r |gEʜvkܗ ܯ{ݸeC{'匓"LB15aXwƸV˃ql(C2ib2@| b.ͅu OQ*5bm-`aUN7^ `ʑ:Z,V X[p>U_`+ kJR8p ]Qoᣐkj5XۆZ2\"CXÄqQvtxP`lIю _ø'} M*l k|=_lsI|tHz/D}mlB5>ܗxO/=X Trm:4R^Ldɀp!dA&bfH`@B3Ǵ į1m4=]adXCk3*  h໩J{')N̓E))NkG6.GWK`FT>![/ړsyDA6\fHȳuܿ ^^~{G%[mqBpl9a_sv{q 10 'KwSlpn<`Ow=vQ#N \'rcaP;ǵ7`ug|lrM' ;x [-u@XY 1rhG@_&_c<%WҀ\Us܄L9O[,$b;-:uz&<[[̭Pc_VՆjOdn s+鱡7::Q-QM>&Xu؇)́U6G؆ c\p z2CEj _؍mTY97_Z'E2 A p!N\|LQ1YJuB<-aϖn׋iMf;8pW7&{1Sm QgLg9٭8F܄ zš Cas#`bG8Wuv<q` hSwr#ĄLy| N~(aʌȵRMA1i8ކ,:+tM!Ovmr>l<4^{ ̭2S銣ٴ:SH`Ku'O,Q 8oȿz)z_p;U{&1R>?wӃd2=PfH7Gf_/Ǘr|9_/Ǘr|9_/Ǘr|9_/Ǘr|9_/Ǘr|9?&xG&\|UɑI" 3\ݣÓCmS3v! | ~8)zYt<~R9f |mlC#g lg`6.7 | IW-&O|5xڎ!mN6iol*iͲI~t?j3kMB5&^/5w\0g '?a??|}ntl7`{dJtx[gÊ 6T/w={6*Yк;돻6̚OΔ wd0kAu@)ϤuFD)ZQ},:Y]j&WMjSfY@UrD#ɂ+'8%F@-B^(d;h?Ѡu[.7:$P5? jX@G#G)4=t8>1hkz#WX&D.ӕiPšHB4}E2* йiR֟Y>ʩpxpi:P@N IA5A+ TIiz@4VJ AW`㵈dL.AٍVP7'*uP^%p)*Ml]f*m"=x5ȕZ!Hc#jU{**NW6q9zlB.s }#-!uufn"HƦ2s j0o_u\ΠP_}eNyKǁ6gڕbcU~nupnEPRuH}_TŒ+ԓξFz")*ES'jܗɚI"A&NPѠLs>\MB!olDaJA>GBE2Ԉ.3n@s)&ܲ*IйfELLYڠ_ $6&}bE\!Sb;XQL4BXIׁ֠J3.j'2nHj@jkղm /#sYT@ɡ{n@sisP$$bv9g5 {_Kh^f9欪1 ^hϹipk󝉚Q6 ~Nn8٢ {BIKx 9_g]Gb Da2L8{qϹ-9vYqpg*>j3eə 㸓wa-s`|0Ouq5;s.hf̞ϛy]v=k[`2ugis&QSXIXO9>4X8a}c•910A'p൒R4pa']Ї,9ЙT#4 Є(#L"NIsC ~EGɃ,0(PSG\N.mЫ#M 0>'u14\ ܙ _:=:hbp Xr/֕@X[ F.:39pb@r:?p>90둝 gYk4n|J?/HdE`hKx $g}ǃmn5C{8LNcm'5mȇ286BJ_<>w\g=r8J[YBב ;89%>9$3>[0k=z==t[28'?kABlj0ï8wԍhlpy8RƧ2Nh/pt6@ 4lAOHQZĺNYqpZA#Aˊ񻱀ș ,gMќ4^61Jpt X$mb=Fy΅c-c0-]Fs#0 =Bl̫ Vtͅ Z"p>f3p-m[1QhKFrt/P|MMY(sqhJ{(8c$3A#|(Q>3h!sGz{)l3(Fy0q6p<8<2GAC{\_{tqk4>k18?{] z5# gָ 6RD5-hwSG\WA+X4q|d1\ǣV KCT~׹V߻A|@c>11x8V&1Y7 4pEEps)B G!!1T7X\NN h/ 1 8 ?0_`N>ީz6k:dA ;;y;45@ gXM@51EiHiC@-+6Ƶ>ӎ'?w<=@99j( 4&Q>.OTX gEV!M@/ x!6c !TU< }g0 '#.<fДeNzRVE|p`]DCT usib3Puu@1ྉAkТ:984ʸ4y Nj؊sdqJV:WSQR&vQDO4` G^eV36N\`Gnz9z(ҳX9O x^:)\+Zq:֒[mR ֿ<9 c-Yy=~}L,v"3;23b|ƺO]q|jϙA+"\p LhbΈ]Х+4NCŨ6@51a :}a%/N*hvaLN s a,-;Q7?F#C݁r/0VEuX7 4CfD5.h:PZuW&#ւOc]@G >}~ "۠-Uxo$uM \Q>F|[f5CCA+4uq3o7 endstream endobj 126 0 obj <>stream uI{$ =C>DIbѯ>e9dr6t6`3O,?k%{hMf݅"ldžDg$Zq>GW7cdcNŖl"ScVrNF;%s{iy&&n'\M,W~ DWC]@xxf`~\%LȣttzM] -Q @u?֤?zv( jNT?(w49^~f(4bl"1f.߁0CL.=tű_NE'Я_LhqEbBLjx/!a&$Y;~ ",c|!nl7& }Jr6wAJf ݿ<&s) fBMǞ yK:7PkbN3G,tڞ+垈:jP]-GA kB`}sykZM=k, 0+@XAK>l7@z~:3#y6j=7PV!A;joYk i\KhFlb֊9T||..n7xJ5:ؗ<}2][ׁH=z{UX9oi?r"e{ILgu%ބ=&{~qqss8+E?دja075g~5@ OB_\^Ļ˧s^:hk::00*Rk zЧĵ⥸V>5OC a!TȔ{L NlKb _<&cqzb213A8 ;ؿ5Ĥ ZP&7qȡ96A 4WG5vmsŚt~IU[ٽ{|yDpϼ.ϗz$Hkt\&~B3:+VF Ggxc Y#\ GA}%& V& ܏t|4XCsAnQ3zm?΁DŽ ScZÀO)1&cqhN擵 8];葢zٳKPb6KwW ,)3c6U~v W5݈Ú`oЛvljSlGUQmhP؀'>7 sTgd>@SxlG0BsBs {G'$@M= 5^%Tt|V.rgPE٬*N(d޴ x.؇=&DV7"1kWz@  {EA_ 9&A_!⠾Gx}ރ:l%~9 @[$3csau |1'w/K Ѹ5V}{+)GAG\x7{PԪ\z>!V/ "C:O~0zLx{L="PHmQ t~(}`_pK #1@z]h^vR;Tpg ysSm?1E*c3CaY7NWĚꠑ yXAO_'P?Xzj?:p4"ՠ=] V# >75,=V-ԯ(gB|.Px@989 yA l-ڻͩu z@_x<(OGA{LhRI0J5O>7k?[ {C|qO8 8Eu\܋sB<"ESJ`u~idꙠX1*&^ta Ej7u.^W`_hף2; '<1Aŕl~ZƄ.wB|wPg;ax` ~ _=&LQ$ š0T\&px'\^8kNhe:}s[LS4qi8P6\6K? =Ix_]$ˡ:Կ zhc >A*^8_.鰱 5=BuOÀcPTJЯ=tagd=!VÞ/Q`p|jG '? :*┪mLF>1vg)Č?=&N`A?;zkFh>qMS4 x%@l$m{.2VAb=՘gȼ RTO迃` <4EWҗ MZ0U6t$ܐMȟls4Azx?.:oXc.M.Uy!и9=xCDmzcJhʣ pJ~!WK<§rve)x-pm P{{XQ[٤Ljn*l'/հvÁ_-dDJTo-K:|t:}_̚Ėne+wBC˕nz{.PLtNfJ3K?ZB%*S6'G@dSAh| Ƣ (X/$ 9ӂxryϜ 5K*͆`|KW'cQVo{=GRY$AwV~N2ޡtw;ɧB={{{ ^}pHԸآm5;bO@GF>y铗ީ~t ~-r i&z\N.Q /Xb WB4ȇF֐_ܯ:`Nl9m ZPkBׁOX4٩j~(ǝFH!'w 󌜎aYfD9 քb_7X4W 0֞cp0& їraa8w2T]CDXYiP@/  S6v;*aM0={%M_7[DN)" 7z z; |k1RmjI4`s~7qsG/G*C>5 W.4Сŗl:s(F灿4LDJ/_'`?^صeTu%9_5|:xT%W2jG哗d_}T'a9#Xo>"%?;O#}y?BQ?r)eftfxi<I艤S$^>zAAfƢ\ Xe#|@x.e < Xoug:(`?QB&P=2(B]uCfS4^]6 b5JTE;#a!Q}DŽ3M{P:yl0xaNs|*.e#3f7ӫJ6P~WQvѓ`OD?=[•AnLEdubUoT'FCV^ ˋ>{a^GftazuX ^3 u_܀uT)vQ p]qI랰GyƘ:vn(2h!O\>? NRQĥݲUТ;X87%1;0GߋԭKw`/wZ< xC,5kX^DŽK_{f}!X3E؋ qGs ֚!FOu.9 :Z.*3Wy)No왐 >,3bz$SqjkrE CQD>]}Cn/E[5*e8e7Bi 3 gqb&6*ܗFsAynЕVll؆__`z.XKt%lbO#͎དྷSkc4b5zEh@N^?1{C#|/.¹ #q{Q&2>ڿ@-Pp!K'[ :]׭N4XBo~l xb0Je24u(e}y[CܟձWٸ>5 ~歰&EEPjѥI [q܇dR:*Bϛ8rk qoo}2|35{G@A8߁'Lz.2{'Q##a#^EO&3>Pim&[F85y~X{gU.]2f2%'08WbqY2H,G8]&bv25fe$5b*>Qv*J{ hy&>b{ew锖]"땤(Ʒ*ߨ>He~U^_].rXi=X ; z(\9yF2"MһA>k>&Sn3(3wg׭ҿ%ϿIį~7򿙋ߨ\0Z8o}OT;k;iy_Q>1q&_rX!z(b>Jz6yyཔy܃p!~0/v管kFw̽i=f_uDw~Dn"~eK[mJGoΘCw/{Q(:L 41#^ U /}7{C"yU~Zu:R5׾i(TE=덒mR>fMoV*3.-t_$āZsLrr 0WУu~y 3D5Dw}3z>򟊃%짷̯]짆k/m͑hNG=qUN6z{;ΤXƿk 7Rg_~0g8(K޷SʤE(!~ō&-E!|i#ْ+j=%)T9T犛m$k׵V|^Iy9s?c$Ě/Fglٵ(<øՆfH0 {qm>Ү0ioU6ݍAT[i".\T#_*ܼ^,)x{z-/#^^ kד>j' HYITh0ޮ23QeJo㙇o] Ŝo8?;?l==h7#gH 3{wOX'1S}5:Sn՜#Aq{NtC]A!JB{=O]QiÎ#?CFU-=FK[;n`Sɶ4x~DK:KQ'cwctEa @C9W]hp7 5}toء'h6qԲ%+.#63>/ѳ&4tsjyXɗsk-t^ԄrF?_c7}> &p pW:[ [-2ZYu"IJ&XyQji\Q!)pa3eKUBjxlj$H;J5>J4&%y'{'TIZ|ӦS}b"L[/pSy8΃ }_aS)[:n$~V6JW- M K;ݜ}@`]7u]k ߬rE4؆h >مڅ?r]Z<]R! ~+XEFUV}_rˌ|ҤӤ0ش({h--4m%('?b&LsؼV 57.~QplSMcJ֫&= bLzaInqIV-)aLG M^qn+UNQ2Gٳ"׸E.%.Rǖ GZ]uoKjm[憬<@y@y@gyx[Ux\rWlPy``d(=)?!'&KT+99/(zmdWׂKAG~e\֫wbr{gmx5hsLUYc]cmc5ߵ'4k*>ٔv9'{Fx8'~} 9qMn{_f.X48Dv8q+ν>q]ynug%sNҴʠt_!7*3M8)kxDW`5 p`|fWy|qix |QIuіIѩIYeqqi эkw*%= '2]+xvG$N<Ҭ ƼN4Ȥcmٱ]穎gagyyX˶3qqq>u#V0-tn}ؤ7Y+4w"Aհqߊ"{+2Ҡ(˦(Q>/=A1.Go$xU$|&{^u畻kwe^2xD90k@E`ܣ7."Y%vaΆ|DBu^u?>k 6:/46  }/ WA>4Jf3ZONc4[)19͈'6$nNߴX^XvlNbz=byqj[^'_]]J#2ʯ, dA1w8ј7q\bʽ5c^DF9·Ǎ[mïF2?tr?ӳݭK*3 %b:1*C+#v}CqV?n:1~j 1JQ0

t>2a91{ZbѢ:}+b_ŤO-:U+ӆ|-`_2x#y[9usd~Cģ7Q11>qAIaɯ}b1ſ9YL9ݱ1"\X}P4?z=4.|y]XJZoT4sw4 5c4Otz+Oo"b EeO^^F;Gyȣ+|⛛ ]V_=t#5Rwb+anvVmM,B,]P3V}QI3k{y3Uhb(1D u)ϯDW=`"H˨E Ts]XzʞFe11oG3 /{E~&{ 47nF.u J`vſ~r?ֳ1M1{mGS8^?!U)ીJ7|5pFCCGF&-%;@R2Cy0 dr).'+ 52gth1 #*BL= . ؼ%WY\wE[v4kK{cKch|[f(=l&TFNB05MD7}/Wa솣7 %ۏ;Z'] w>'QGZrjlk/^ .b0 /W7=;083@ IPIL43p.1Zq1nRb^b7bᗃTLO -2 'DKkʔ!~29ɚE]A5ms\pP=-b+Q#&^CL2a#bXNlqn󵰂%iH4-7yόz>/;G׾r~UQMؿ"TaΚ( pr(F~ 쟃1CLRLL2n1mvb2 `qbZs -iIb|11y1IY:u/~na եv[ACW8hxUyZp'^/==Q{Y,{[W!)%8A2gjmO؟`?7 =;P<6b1ebByr͋qDLP8a; Msxb Kb?MM]v*~3|z4NեNm. 0k۪\RS^Z?bwmޒ}V SBBjsg$F1!&\m54e=OU&ČVĬ]<@b@,"Uf6iG):w %UddbĽе+v?@9YVUV5tuBka˔1SqkCL(i*ljPtByBhF@9[LYcAnKUw'v#f#f9 ƙ [|(,{/f^*J ̋x|/wJK<79 eq6 qN/s}H; LYokGDk e#T!F8?E$D%t}#FB؈cJ$T*͉YssuYA2k |jGl& Dt;)3w#A(MF1yL4\>e+1mvbNbl=bP͝X.J%VڣllM1uWZK}nv0n222Y<;5KQzOMۨ(io0,K;} '(?^Wn!p̲ CO%ơqRUbu[b3b"Cbm /CykS7"NGZJVr|Փr`b9G=Xquxȍ t?z=P˺,s^%;t1]Q[mTZY}Xo]xBW^\m?^`|=pnK(c98A321~VFgAٵ2"V'"@OCr%|y]=;`΂mC\*1\䝄L5By>`5\C,'VpKBjFo( OnW oKPݸGWpZiMms+ݿej{?٫`bKV *ݴP?p!yO}4aڟ20}7e}6eH-'an`R?=L?t_T YKL9eҽ6mG%kIbR5bBubzX/! Jl*af`#|w1o}~s7[Z-7)]K. kuJ}2LE }'Z'm1f] ְX*e:[<’*Jü*Bbv'5[e P! #Ӧ'1 VkX^&҉r,i7v OĿU8)v6!U.i| SN`78e0 Qp@7ύ& nmu\;ݘb~=IW_X #sIQiM҈:{ eF,_ >zsbop@pPj6 kԺ5?vQ2ר [uHP4Q?6h-S.Z#:W瞰SBAuFBS]sQ޸|sȜǺޝC3&?kPWg9d+kYZ6jGl*"8֘u,8YakH=|ٯ]U$j@XP+uv_/N^>ږ{ݘֽ֨⏃T;7a`z};*ȋR?0F%OnpwBG a)aY~D6=t -{].QN:?zk+t Ǯ[>rտR؂¶OZ vBP,^N~=E=^@މN s-;GPd'7~gm_vDV!Eёuٛɒyf6Km]&M^>|_며sϩluG9c  l̞JaGAjY8^0Fx룼K~A~੍aqwj7"tN2ݳk|jݒfr箜W!Yks_ةBMXh{Vgc'T2b1En3-oҗg5gR?la`?^dȭ:'YS~ b"k 6Ҡ;SU Kw 5o?<LEŋ=KvPw.pm62wx}o&6 nPV?4ެ0<0AbVsޫS7{DD._L\V:JΤ[8{gs[ ٝ{q%:=&{c4vR-+b!{n K(T_fhw ~`so:ڧmBmDDaH3lL6&2]mCbìӈX4Pߵ^u0F1Ӂc^m'yef;dٔ56KxJ_ib.8=ˌn~$ >{u +~%7Px8g9T-r7Fᄽ9_Q<`/kuD竣ma~lJ/n jl78?n֝ i^ bqΓ8 n~Q^+*jhtWM+n9g'7=Oߙ\S(|>cyٙA#'s/9]z&˭Ίц╆AXԻR.UaN)1KvUM#(ikmi{^q:z% fG]^VF!&gb'0vɓ)K3(өっGmNj|eOSTf[(.QbZ2Qu⬞6|}~ h> ɣƥf/K\%y6F> cD3#4='=Gq11i 1a(PpZ0VIأN/=h˂KD^%xJp` u{$h T#m tw,m a89&Y=#b/z0]WNrw!pc{sѬi]%abJ73 tuޱJJ?Z.[N廙MeW*HfPFmToZ|o0!&AAq߹ܱ;: Kn{,#:3nώ})h?^(|PHBlؾx K0qo~e~kױRd-ϗ}Po"n(aӵ]t>}80wuCՊ.S7m[#wmØU}0!jQZr8O0baEz 7=?6i_zKZ|a{AWW h o-炖A=Cpkfh> bĮ M=]}o}ƐB{֚LP8ilүFcubbJfMo7J݉3_%.]o 7盚__`o{>/>˩mu>7n?_|tC;UnӚnm]ܴ¢Qwyrq^;}9l➙a6H/nG7{/߯^N3vSq7t`o[MG>YƧef{ϒ?4>s BQ$SݏV_guK@ݥ~Y{_^cG_zGK{W60ޯ(['\Uhy?(SVSZH%juܚYsMKWs{ٺ"b ZzzZ(hͷg쥾PU~ȗʅ'F/^|EbaD9y=Qicm<_7pzp߶x?G/^6SrRO2t|FY"veO|#=boz爀kyn !vt[!c[K-,RGbi_9vV nVSRЀ0_|]8.'MŬ3۹qO%>9ٹՓJo-ޞC|{b=?uq1U5}[˶RZR4xlōau) ;7r>~Cg h$VPbY1Ǖ@wKO*rQsafXr~^v鹙ozw)Ӎ?2[byfoiu["N2FIgfB;kp_w\gXsqdcNS|7c*|fnB|J /4sY,s&5F,$~^j{3"=Oӹ_waKlx>ێyqs0JH)dm:l5v~6[MWY|Ϻp o# spWplc˜|`+Do zŇEOo_w_ׯÙnؙIܮg̲7Fe$aFsm;n^xl|rPdFP WbFEf:!JlӏK5|y$!h8gO#܆bߣ͏C>UwŁ_=1&_.yF:Oq,/cy<l5dI@QWC o0&ܾ +7pWo<| V4Ĕ;8<[8bȯ W`&O?xcrS`yJPp9ږH.7OX!v}o˥[4^|'8|8 bRpp[GGwZ4WJ"@| V|`aYL\ϗl)q=wܮ~t# I #ܾ ЍwY G2["cnE<o>&߁O*&x~#Ym6S?$_ш9 SӍ÷s@eq[|W ?\d xBFpS|Xsei/_A74zmK ??[i-܊9KEskf.6,]رbˏ_۽ˏ۽ǟ1e4B{3Z֟$X{0kwt|BXsjt~ ەg-ʤ^+מk⅟O3aBp B c+ŋ?( 5^;sMuw&sSCsD=P+}|B!*~ݲ5ܒ) q[2i6Vyv.] &3'r,hY(1G1Xc_3%4Hj+/Ki42ZF5Go/o-L.4|xG+3a0' A|tS %N3eAgR^D\Wa_ey1vX"819C)^ajf__dlf+Y ԯU=oߋW}_Sħ+$M^D̯~b8ƼαIj<6;6OcLIvii֤rw5B~ m q;6fvi|gBMaL(&$d;"l$4;!hBh@՜Ed tPPk="\;]jZONNM{onN=߃9W\ O6qR*814uX=r񒁩R%yx ė8NsԆ|Dh9ÇFq=椡'W_ԾXH(Z93W$wNz1v_=?nl\yq6ݡS }kNX4{ʃ/|M/t@wqtO+Kt|^xLF g<ۄorǡHھX>azo6 G>ZG 㩰:h[rethS%}Sٵt565Bl@jrˡOҸ. Qf cl=LjyqwWFsONO?7 T|m~IK1*|wl[+s?,p?ykpؚabۤ/L0U]iJ=\t60[9ېndc $֎ C7hʃbʅFˆ"G@]8ɟ=mƟxZt`1Lp &,βBbB9&g-u Y}zh*4T⊇ eBP-ZhVW񐋻9-_ |MOVRD]X6U8Ƌ@~%T^Eq|qdYՃgȶ2p)cybz#؜BX-t1W P~FE*IRKGHIl-NEˋHҾ;ҫD\`VIЩZ>\ԝ_}C 0T9n5OK#7f(q Ozj JHZ?^5 6Ϯ%L3GN;2fblư.}V|T=J. 0_zGA]+>=x3%-}"+>?[VͣaP9Y0<|}{ov.ȭK}a\!@3\4;/?<۹5Wqvz@sp*_:jJ7{/OdkyZ:E/h6][.uM鸻Xn#LcnU)t>$ -} I-LtYψg*fW>֙ߟi'[ylmܰÞ/a;Į'[K׈յbК^C ZWbӲuk+pRpltRwEtdBz}~,}0~jmΡR;:R9 `'B^ ;:\n.865~<{gLj -hqCoXK#ӳn[>.+4GWU3ixg| >Wm! /A?Ծ{_]/=!_:t}Z )c);!7GA.w3 t3Ӥ ,{0X]>'ŭQ)ٝIvSyB_pe`zW&<&}ePp>bjtB!\qvl}0gՍCaݣ5\[&~)w UnZwrĽxmr;_v=l/͢qow慟akO>FR>rjV'ﷂrd~?H EXm$cU_^[j.-ԌTG9-㥎[Wj cI z\8ggY^vƣPT+9EOo TsЃE%'^fH5Z]m-w;Ŝ}t^}m1_`l;/=â-5'__}^O屇+X{O~<{>@Zܨ)na5rhXn_b/:C`ziLzbCP_Fˊs+@CW¶r5|˝'^ZMrUl%"nyVb5{Cиd\C]'ZQDZKvZrpz_ks'AV/yszBoHܬڑ`N ;-pR 4VM,zx' ~8CRm516&)zz|Y iKIӶpi*@ p3cb'1Aq.`{gVNO4qD'W_=;9 8pHa?T<(|Sb1Y,fg(eY&=Y?Lg!|+YYe Mr3Ć']ھ)dgim_P ;fk Zm5h`5dՏA>wO{#䰜!w(/v{ D1F)Ԋ-`W C:ugȇoT;섮bǓ-,.̣!8' MWP<* a):VX^>=y++LD-ڨRGE"^ xСj,>WO>!vV/Y5`g.Y+:> z6{2'˃}v8AtZlX;h-KffQZW8F=|d-L&co"-npXW`|s'hOUVw9_i'C,1LqNJEC֓,й8F,K8a`Gi9NvVd#o4̜x&iC¾xaCZlq`g^KvVXPsnJsgUHܮ P̮ ^xd2 }U#KȾ^x8Bs{&C-3[MywOp_z;/ԝ? 7p⅊>I-jHGO5DNwE7˗g'YQ+9;Ci|-\%{~BhQ 2Tى-qX'{ZHd=kÚ?xedD/Y 8~&n2ʚI5 ="D?_3K59Tv#3԰!JxPhOxVxb2xO vmwրC)ծ[53?0_;rsz"|bNJ-ֻwo&w<@NY;J{Bb|H-X̤`nR^oՔQg%v4xe`gYvA1/1Jh=.4uȁsSgud9a<;!bL;Co:^+mb!8:g9un}XgR,ر`YD@lyszp`d V"bˇW8?%ǨrrjG}&|2J|s0W8ag׸Kۧئ;w@,؊a3Ys?ywV7v/Jʁ`gDb6D,/z w=fZ<"0&)(F%4^ SXdo&`Q\{O6益v3Qty>9SA;<[PIr:r~yG&NA氺zp>||/@;bgl}bgI-'vV^ Y6XZ\00ZĦ>xY:`g[Y?_R6jKy/h }o7Uyx" |Vw(AQ6j.r,/k8,2ejΉWHgmzC>(ZؔBp^/3&9yU7}Doa;͇'xUy{8RdMSs򥼒m\V(y+2l/`;;+L[+FS;x+ճigv L.&5GǑ{GW4e^SXuf&FNB;^P-%7Z8U]].6W9QRH9*ۑklD&Z—Dbg=ܬﭞ~3ȨP8LbH#dg*giuiE ) oԫ./RMbX腝-|V7?ءUwm~|-a<| {ў;X%7&sLEJU _].~J=RtQ 6Z#vR M̺޻$.J ɲc+\P _NpA,x>+a☞1b$kEϓm8~_28ClxkPsX yt['#j.QY pCb(Ԧ+~C@L0xX.\N}a`\o0ꐇHG-U~"UMer(V> {uZC't~>'[krb8qO\GKo-N|,cb+Yҡ0!.LH=VY5>+zgb ;K9*ݵoe1_oL&` Z4]=M)FY᛫%-\GY}_r]N&k 'b=x1'ߙ+ .8[AE  yXl0';K: ۊZ&)7!7uy/@b<ዴ^}e,u#fSrgf4GY,&uQ;[ظI6Ynh3'gA~%*%X=9VdV 痈IT{spU`)GsE/Jk S}T<^OG{j9G^0ڦ6fɔƷWbϊa.*nJZ/rKnIhp^"=k*n޵pߋBg%2Aڗd57ůUuk?b@kKO7mn*O!9,磜7)Fu/՝+-+OdX*F 3` [Q: /oxzjwWipCΊK>K (w#TڛA݋/LzIA쌆@ 180U7&Gb9)]`9( j͹yb9TBL,#稇oFF-gޟVqe<g" 8;st%Gns|LJ;)3 ;~U9X92VaVUfiEG&^ّˤO6GY}z1$OXVη~kr=tL܅sΏ-揿RLRlZ?p8CRtjbhlql,X*X,k6ja{oJMtTi^:&QLTo/m<< ]\wIoqd`LkwNY%.QCeyEτXr ?8\>;[cjvX}6jᷖ>"'[ZԳ>'}+F^)ˉgS`NLg6ҖvlW}Ѩڦp:\}n&λ! b}Q-^1REgY>5 ByRKۧ뱞`NM}+G|-ԟ#Fc>waq`G+\}ӺWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWf ,v*!@rX%I;"C#ん2׳o-]|CXp\OrKc4DŽs_gK>{y K \"p^˖hu/_tuK,^|Xu˗/^tv m|o/΢ss:%yGsR슌 [o0~.KKvFm%_g};]˰^xZw}_ߞ~~cJֲ,e3:ϚEwreWqw{>Ck|(`+߀+p kr~+cX=M{ChhÏ۲q7K|h+_s)zA_om;``92 >OƐd[SXCPw@ #s֘z {gH+!<J&zf( Z`S脉gl9P3ӥcLc%-S1iiHa_h(d;B&,,T&&Ȕ\GR`QjJBMI@ڟ>T ?`o+uѓTBDLu"eL{#&XCbh& 15,%C)c#'i!2^H"(p9deTYIƏf?>Q˩UL$ri%AY>{Y:l߃P\Ϥ#I(cZ|r:AL)wGňz T[a{|<'ŚtM09Pp|&pzNCm#APG# fp+CAqɈ9}hMGj}!]SPܹc/Re|di_^̙Q6Pk0=-hGyq>n ΰWɇFJLR5 d/s^ۡd"(SmE=V Oע ajJFT5 M`7r'P2jGCԬ2F~4!2^jDy'iGSogdf;r\& H-SaM͉9zR^=pb;BFCH2:QJiJsIU]\R*8:WZzh%&Q\4l_3H-yb=$:15"LД^a7r) *-w7bQγ(EÌ:h83ozCIhnq94iYvLS*FQiCiS4^x5Q-vW¬wm|. e-Ͼ JzK9ΆcؚV* [> |=|UaE*3`bYNm%G9$T)0F:AO&,PHF:h`U䤥7ѓj\'-::79rsѤ30)#1} uZr+&II/O9G)uo,#&1f  {1-\?xvFJL #ejd31)Tv̡:i%#1Jǘ,)NM)IZ3JK&8w*yvMҔYzYXkZYL(\YgtXiT-mvE'gkA 1R: f4\;]DBWǐ/ԻcCJm16USc}C~_xK#uπ}BBäT!`W{vq{8(8$fg3)' !Iv&=T"҇~MQ6BX-&L\j-eًPkC]6&ak R4_sp /tZ; jCPՁ⅚\ U?X(tmA*, Zt#ԤPr0Ut2lKf'M=埘ULCI=,&e'gӤ4oZ񖼠sV7(Uj./o*ͅ/*]%'[-C0eUQTT2@TȠdxsSg13[T, !7RYcE'|&%L5WmϐRN~dncTJ_05`3̬tNƴ={XKpR\OP=PB1=X1],GLOe |pI7{q=~nV ,H,.D9B]V LeCU xiPŀ g~/u~ʇ @qRZHL>,ĸaP^_Ko!v24d :(0~Saz4)̚=̢> 2ir?&@-6߉Ds7Qby NL"{2 w{Aٴ#nȅ(B>*xd!)<.эRJGhUH|$f3 =:&>QwMӊ;1KSlb]BeS{X7P_QI͡m '@!hrM)6P8P̅*6?0?3i=1eJӓ֠p(X͘/gׂ(~(JI%D(?= ,Dn$9cl lj+)&{|TP1>(b1ia%P | #q,^B/:2Cݭ%X H|rOI o.!eiz1Ej'|}hJ9?mf6)ז`2]i4LCEAee ),~e`. _#KPyx{|lSkQP=Kv*߰(L45fqM  )qN>%%(ܯ*|W`X@KN_N2!eEv(#W΂2G4lTh _I_i5rv(-GxBJ՗d uN"uR|)>ubOK-*__c)ݿxPd*h#PJO͐\Sנ\2&`P#  KW"V(l}­ ,iOVr_&B ESC[+/p4ɜcQJŹYR X-(4RFh)} !Ad#@bX boVJ;jr(+5Vo_\U?:yP@1_Pn.;|@i;|j(!b5>',ޢ9,(,Sl%Mn4C, %V7Dg9R.bIUJIl&hb``M?+eHP@\8 dXx(@%GbFqj١)vXg^PV3ؠfX@Ud=eDhO\?5ҕ(,ʑ`1If ,^`T-ا|vΘ\7ZEB/ y!ޛ= G:$vP3Y,vPBlT=IG~(G D[PU[&ĸ'!(g'ZC=f L#)Ʋ:] E="Aո%!O+?3 DFZ_cy]6J1;߮&31%ȚnwW -S\$;pJ5$ ߤz8 =VKAs ri?Qg@L9 f9= :J@ nP*ӛǐe1  `g[g ח(\:-y <'UPRvI(Td;@מy|'5- %VP t r;&4qB>?j H5lW舵$ւz˛}7eء~Uֲ~R@I eS(PqD17@Oܟ;guui\bE}~faPDw^M2L{CS[ZcǢo =[KAC92 G#_%wV>P3 >ҥ_+4T cq~F3QLAcxRrp"!6R AXE\6(7Y>DKdVCaCrPv.P%@ٹTM֊ۧ"EP˪w3,)_!t~Gi#$ij9W }/ m#ck;ˡhDCᆏ*UkW9'!?#Bu\<:fRTa+saޘ/NnU|]ij%BW ['.%(V".RN1R-o-~zC/vm̮~RJ|CE'(dv> rBogH=j:(:AHNiZI|=a&$֍(XˑyJjhP&ʨWfvߙ4NhQ@rԒH$x8vL>Zß_}M'*4kBy)c3?A9T L>zHΣ~N"(2PZVKA/^ zz  I*wah;Iz| ǒNFD=ӡt(KY VV6*D24c6}b q' ĮJGﯕ .*mï/廿z\7MJwXKayNY;ցzClQ|I>R[}9 KAA *\m:JS ((C.^Gdyz/)hCZ!ȁ KլKZ5z"^@IZ4GlxsRumvM O'{o.6Zq7(ٚPgu [LzQ#'W^8_CB#D2JܰM}߉‘[KsU>6 ?yB%B*$-j:!W-=8TiƢ>ޔ Y= ĉ^WQ;kfbeםQcὑcad,V;ϣ9?(1惯9?5R{m!|%R-rt!X; :$spOA\лVX]tfRpqjIӡbڙxՕ,fC9ͤ%ڀzh;H!1G@ 9kפfNZ:)Q~2 (Mfvz9]SDfk>6ˑT4Uo,UK:ݵeEPc~ D﬐X*"TZ J 6z}h8?u <k9^zw:=; ,웮Dz0A`3^s]sI}&"Bt۩_Nep!"5ex8sAK(ڟ0M(^GN1V~IiE&TSWGCD=:>aPcwV^:Tju(P:IB ]϶B`9)lc xs!"B. L YsbpDrg5솱 B YNX;D)蝂X_!ԶJ|PG ԸBu X𫠋ƮJ=WR;xf6`#?PzA֐ᚕm.pJ\`mH؇k/Ho J|NX~}L4NwRj6ux읕dU`F>xq)^$rˆ`ՊzqrBQδނFu/C2ÙҘo_$5fD<5WkuI:aEe8u(l٥_B3׈B}$ ~ 4w&yz+`!D8PD/c_!Ld! @+g"Dbݘ3X 5T KBaTԎD`wK$r)V{eO). TN)t֯F~y,iXlS jj@:VR@)j!aןcuF'$ָ/Svḿ^1$no=,,L A#zALyVBϷ.*Ax́ D#r{Nޟ3 ԟܟ>5B;\+5PlsTC[4Jmyg#Eu|ktjPI=oܢ6zhc/O~*C1g0_^=S[?ب |'olUfBll!X޾o *(CmH+D(!&B$$B؋A6eM.Y[nNfy' ͅ3X{x/OռPFaHI#\DfVG '?дz|p uY企I|lT܅Oiӏyyp~r"Ye@JzrSeVKkw=Wi,Q=n4,GT[{opm!l;"yND %WDo֓',sOLq ycD Ibl1D33`䇠~zuJ{k̅迃wNͥҹg~So_׶ݢ t!{{5|t(0wIAfZ}fس{If{~©_='[ 1ϰJ^!Ķ'5VO7_X7Nbp~JʃAg{ǽ?ڨt.w.vgػQA.0ozRlͅj^T}v6r:ͱ|3w7n~=ZqnلrZn7/1}'ո`` Y0;E "j(C#@b9ٲݰ/ʟ`)õs~!@!J{Z'& )]zk>!2FQU{r.z^ZIT"BZW@,SX=PN5V0w뾇p''O=gjvBFծ8k-tΠcs x}(|Uy)6~ C{B `/5:ziFR/<o p'ۋαPGzԍ _\1Jb=,ܳc/E *,kqNfDSItX-iDj;2aqQrza4 !% (%Ί ?=OK,NyjaVG6\GsA ck5RjʙWGn镼IЋyAõ7R{>aYXʔ<7agClz ^*NP6Ů[V^ .ǢG'ŗ:?!VҾPiTQOZ?[[T81$]4KYr|8x oBNBJ5mR[;ľډ/vgTG&1-:|yD~bA "JRٹ8#zsd,ݛܮ fR3O"8Zqt<1aLay[a"zOahf )GxdA[#9p]ک8Kqr:_zSXͰ Rˇfu[>*jJ7.8=?)">>ζuM-j!cnbb3ݨ@X.]8d%%wbgڏcl(vX<$5x:/QB^zԭV^CFݵD.)9pvo@a__\[{=k9}L__3󗜜N}!2K{ay,ϐ+F! {ͰцK~:J{f J2q~bTPS{nQIwY W1-q4}V|Vv_?oA_>S{ob|{%Q.dߛ @oG/T**z=|딺;˨/ަ<\u m{ t^ EOqģOexNI)DYIwT^tL$2Kq50rhnӛFə7zӤWJDVB+X <8byӂ2ZPyO~dTqr~CS糍ؓ>Xo{N9WđfU M @dk,X{ (u߻w]CLfm,4,!w @ K /aV5kgsw>sg^3IX]UoRVS^ג[hE95"J<9i1ᑳ T~!q~0}3>cIgkR'DZ.߷# CTlI63кs*3&~]TJ87˪bfLQ'@1+ƣh}Fz//Oj<Tf5Oj=j :Z: qf֥g;3z5o!:U#RAv&{ /1J@IDWnijDF h3@*Xr1th;P5ګ!Maܴn%,rDPw*&WdBv1AA)xêva廰ضCD%ztFThrQNFd 2UQнdtaaBq7z*.5.­Y&;M[5Zj F-Eu6NkQ=H@1C oGZ؂!]ExO g*̧p-;e7{&J7#Y*fέ-/Nd'nU2zSX=bM</DŽ׭g/mL-ķ8MQRҡ}4xmdRN\ԣ%xՊ kE!KL/7@׎0jMH]C"S=Uŧ^ ^q-< uC$C,}5"4ƍ^ROGBQa雊K'dz/(> dsd].wZ~V/M#qv._'o7i*Qi%u(kXZ21͙ GuX!E>S/GEԻᓂsCƼ_*>4t Zc>j+j=LPEOJnWw_V;+3}Q~NW/&; a]tnTD> #G`HDiQ߭0z96rW&!Jt-ԤAV?d/  DYݸ(u 2!=VhEDH*0*EQ" yX~Az OHRf}Qŏ;.1N}7UXsl<ŁE~MTX?+o  [CLj$'{$Z}`? _ECo. D&SEfO+.5/n%$`åZ3gvA?i=2(F&֫I![ݯMvq7ͧEolxy`Ocb~i~i刘x:J_ZP=ɢOVD jY9bK~| / ̈́ /dF ڊzoz+5N>3"oGdMb=ǰ۟4| ԓ^ÌzFYXF:?%~ZwٷE~nI<4&s{v33W=,! zA3*&ZQCTM%r0:,Fur֫89w/Jk7k!Oq|~Lb noؑoJ ]qffpZ\Zvͤü˴Qa@k*wFQF8Gœ ^\A^l1M2H8QO:O}Iz ǫCNwgIwEE܈= ]8rtR" v?m +^w5,m\EִU4 N +L*՝N6Kkӆ+ͶͶ¢~kM+:QqaILo*qoHpryAe'=PhC`p=sV͌[)V5)O!zISG0Qwx;$&w;ݏ36kv75:+Q^qI^GH=c/)mM9SgXwC8zm-s47;o EK龛xrqXxWP@5*/PC"-GĜy`ۙw51ή9.b{LwVxQ(91k,hGx)LA OS&;czȷsY2qҴCEOĬ$ee~C#컙cZj-q kY5‚ w6=zhZd `?3m)D`v z=dBM A6h5e2Q.Tj1D"al2=*-*+ڶ3%Fj TσXX}p3rm46~SHYߵyGH;_tL_4]=?eTD6F_ŝ}o2j2* 46O&gy/p,Y}$9ryɸ7mƽF~(?NteHSk=cn%x5$^LI|+R.(h9$R{Jhg'ٹ0ΏklBܕgb.va&-s'kׁ69;$vf't>H7p&5846|Ck|TwۙWD[&ȊsdU?`9}Mb~yEӶzr,{Gyx#-ݱ]"m rn ̨u6;G5;Uۇ5\/s jrot?_ r(v̨ ڶŚ 7X >`-^>9po\Ɉ@ߜM|foN4EcaOa'sx*t^Bv 8s_^a⦳ʛPӱϦ[;3XY =9wbA̵FgIY6waZXQ󵰗 Npޥ{DxD'zFƊ?i>;j 7V? E-M*Lʂz+"/ձۣ¬iNXc/fTFIYw_}7 /|DhҞrAHE1¯C;ݥ^]ɢPT^WGPwk4]r9yΑ8qppΫrHND >v{;|ō 7=6ªfAe I h1^aR0iRwl`m@"10nr' 񋗖ƤyG;DAJJ t>>f6d y/ۦ=75!('18Ƕm끂:WsX'tw^Ysb(/uȃ=L2 ;m}f:<ĥ!RX+6+*;ʩ>*Bkr֔ӝYpiKh=T$?w}_,:.vdJ8їk>:re c-lkȐ[CO%ƽΉD_GRlwQFW]KrIZ`ܱ۸>2rf [%k| 1l8@ B1Z?Jhp0J_4A_5P|/_\ hAT&cZRXyݴtW~KcTJTČOvih>N: Z=D#m!n'5D&^&/~-ҡ5WRXmPI`A]gRj@{SDٞXD X8N4S~v9ri 2Ha0b*g97b*<%0IyJ|#m:nGZߋ$ƽOV0]O{7'旺KV:GzD~!yM^c5chYu宒 ,質ꯅNtGu-?>vﴹƖu\ {()hs M| |DlTNb2Gec\!8)=T}*`P\d4Z ZfQ%"oIXq` ;oϔGL"NIa^V헐W^Z)?c(<=-o/sr{"m s>g9H I*, `)u#X]l٢ mڭ:# 47mִ\;Kć j.I11վқ I|c2c)+Qy3|*1:q5>ΡxǨ^u˽zn5t_TZ/.݂{B+ŶlTWkmXf`&cI, ΃iW3U'Vhu/9ί5ס~cW8xA썆Qiޒ^2J|UJW:GܩXM-%"3:7. s-KgS"~hս+^٭6m\ m 4.d/Xy܆U\0LS<+vjpq~A?MG5JZK̃#(WglkZWq9JURH[1/ݣy>/s{\#g̻"r?G]XlH_Lp:XwպHWE&U{GsW4}.P.sXvcӘmN9NnOK ̽Py> 3Wy2E p,MV> = ) >ەa۶h^Q~zST̩ <=M?s]fhBիaSV,Ymgr}ݓ{h:|afOi[4wt}z;ovzv>=FcR<*KcZ'tz&wT%4ոļ3yGtBo-ڭ, g)0s ?_=P5s*9 c}`&آb ee+ ?Vmn&~'{Obbϔ W%Kmd:<낣`|{I,U[77cY_Tog<` 0Gf'蓖 (os&ցyӶŋt/@{ybz'5R  (&D׆?V >q[}L +S`Awo-ptv\kNhﴕVZ#z"Xnel+h΂^ Iqx^tXp(.<L wE3-RX&Yr9fV?}ʺaMÝ0J+voGHc#M) ծȒQPKQ~57I4"0~.dX8i3P (L/k6O 졒eSe3B[޻JG=zy#CZS.-HrIKKݥQП-wFGWH{h_vO|tƳOTƏL\8kR8N%ˏe4uld,Y45`&lG\f|w ^Fb[QJ%07<30XeKTs[Tiklm~L캽J0ۅT3Lb?t&.KoKC}8"`F ,^ 5ҥ:w;91k,>ZhhϿa[2 w\{b\$}UuαcMfĦ*E &GW3桹Yy`%`ٌ `_7om0X2(PT8 (gڶ|)XN[>|!T j-~(}[X ǩ95͹fהVծ Womت?͟mx6_v /+$8[ ~ ̆c8 Sց3 m,c Vk\[$*Wӻ%ɡޥA0jm{R Ƹ jZiO-rc|Ȓ9Kq|CEr@qئg=wˁ±}`٢`Z {l<ky `5B:X6s".۲5;Əu:&4:'&UyE.p?~/ O5εp 0@qNfWCK#+wЧeRUF (23{mM/Q_38ז/9 -=V(kY`&s l;x)`B=5SwuNWzFw:rLAq]?c4&;D^r:ẽh6 /Z`A a ]u r@1o/X)Y`6%U/FA`!N?SzGM֬ 5*X a~|ca ݥW)7|Rhߖ(IF;^3gSS-h4ӪƟOy2_ѧ!%C595ڵ=UKduSDGsx[RSkYݭRۜW,G2c)y;ڭ`6Ym΅}ǿr^Sw^}>i5t:sKESf=5GT;ЛimVgC :h>wjrԮ,;ՇDz65T! X*em:إ,3fȯ/Tbh&P./؆;a`rfͦW(SOW#w$eށSr;`8J]cճu)~]_iSΏ ;K ZaձZͯ,x$O#^T |7^|6O .hca>4O]s=`jX;xlԺs|6+`DZS`>lڦ 6o,PgS_/Z ^ ml8Ba_Z|.́~MdM/yp=za5fU6㵍ڛFˑ1o{qN%-8M t{{5&U_ QOXv.eQs8`;f˖=6 I#)ҿh9lz w:G|?Zig|-OކNPr}i Jh=n mi!'1?~^܉\3FlC@Z'_!;~+3o9ic6\mB+B; ~- ~VziZZC5 O^kԸEJ<%h Eڞ[zN 8NoԗOh#3{=-MQv"nsn눬?&xgmcuДm{`٬Zئ̳`5g3X$ Q@O33_i'J f31JڐJ[iG,^:lIvw V>nV;#yWмC`F%Mhuɠҝdai6P4TĪG]ӡ_#̝̟_NkެyWG|b鼥VԱInXEv:/(!۽x#׍Jh?Ju$֥+Yn> zv˙}#o.G&8v.6x6Qh9uPoz,γj{㼻4~uGM>s苹kZER֌53u>Øm'eT]ѨU?bE1k!]7Oۄ ׳RF.te:tH-G :qOi;(;F:^{4j]U\7L|V$!{ "y}ɞ2qw cf5,h9f=]/s`\[l:ā2*CKU_[zbޏ>'/V75M4Ya~e^N7p\]OZtKt;'z?;9Wg}мآ=X֘?6-|W 6R&-iuu9~A240i~nfm &br-`/`-8j`#z0M$Z)AnM ME^s1PǙ)1UǨ'ۍ 8@i2p[-k9M觸1ŻssF {ϸL#,&#,?_2EC wPdAYE,w ,vnW=dŠhc ЖZuO:5,y39S>\A'vbb݋|u2|L+cwӿb=57w عz)سlhs[_wYh|c)'fEsJXW}+oy󱰌xn;Gq܀y.vS}/Y,LZ$'r'V]zԄnT`#K*f`yjHV]=}\Oި@Art#;C`G>\JkVق9.bkI +{ˉstu〣 "3YL[ƍ-͕&c%ߏe{(U/V#y=-zxڤâ}IU &W9E.`ݜ畹P֛%-|YTX:t.Pu+Ak $'>=MߣUٮq O¾  I9)h FʚOa 18Ϭu,.ЁCAx/Ǥ̈́&f&AzEfVB=DMxZt{Q]K5LYƍދ M:*L?Hm5ogtiL>{5g h OƷm#ۇk(yʺ1 "phVpHM -,\[_vU06WO*=?k5 {9XgmNqލX@:A? W˻M۳ ~$E41r!7qo$焿J:.QΏ~.OV~^+m`PN+h7yd# [9crz/@epKEtD$/He[◶QHI:,4wVnqK%< EojϚW_y7rrC> wYk=}rG"wMO6k}Y3u9^>N=ma䞹HGh6i@uF1紱l=gh]BfWjPFs |k6v-d>\ "Jm3B{ve AaHTbNe=xIGɴ Mtϧ2Z%,/[ K aNKfp u{ CZXx++6[DW8vQs5Au#*@e>}L P=t5BlSf[ grǑ10˫?)r?\bwV?$1;:/y#z"όݺLX{,ccP7U8z쯇 `.[F&2.i#,;KXn c{/)Vw=a!>lo%r08a380?:eC,=bcw9GMf>IsQ],v=~u-b!咲p6~ v3}cXq<3s:727dʺ/r~W]M\񙍹^Il=H:nx@ x,Q6CBE5S@ kt5iq zHxAc(3:UURo'Pn?9e"[LN.OSUxi ]:!~ 7V1IUhOݺy,J_;kˎОd^Q)5"_m#nނW%Gy?kcyCxP&9l&]qNZ] /rP_ XRg=s)lX;E,u+ t1g*18nXa[l]Ϳ<2 Du.1~1i&9<\³UAa0K(Ix*7s#v d̘UqWM9_sx_u_;;>c ڛm}W0=曻+垼>Yaz, x\ߩوg:p޽1-;iW2;~q=i9y5T<.Yq>k\x {7(&^ #TQ pyC 1&M aHɰM/ȡ[xg]ы&<ĕ.ěZܧ+zm Mq=:k|] H9u}2&aVW'sW&i?afn38fֲ(VOݘhF68?oc? mlan0|A-JĝAm5$;*-e/R8N1@\t;#XR3׃s77obG<4Ļ~3 6Hyejk@KXs}*~1t.qpk),dK-$\[!IMYiE{*0^D\[#DJq_³4A#tESAP-&^'q"?l}=w;<WL!n&{')IRb̵62{7Gv@hc=c @Gt؀mq^1A{kHB@߃Y2q1PxZ*bvc3#у:]/s&]X{p>'Eo"Kw3\-X]xċozXް7nQnC 8)16 ;76z\k򈳇IK2ү`3|b¼b%q1p~o6n6;4#Ix m=aO0 -m"-'ac^l^~^-ho"ڿF|U$)r/Gy/f~Sf|ڦ7bN\Gk,,iV4]Ӗ:LR;n; 4@#.B Y-m=fⶎ9'.NB ^w\@<߆>*X$<0ĵiRVta#m-W}wUbimlj&2KsnFr>:v>Go]po<^˻j㉴\ cWl%0?|2F'q~ b2v &ҪR3ޱ+;;p ef (SeHkw _@:F+8I.a:a=x^wVKȅyiy of.tvi bͣA{q2'x{~LcRƈk=c2԰qM^J1Í8Dz:b!aekS݆d^|-"vQ܌1U"VĝCq[5|EU\Ru5C}fj1C`qGH5s9zZ%e{^S|@]KL_ؔW*ؗ Ps:O\ı8'4;:%Ճ@_{[>Ƶ{*eX0VpJrڏDD?MJGD\*F]Id &FGqWE7oVƁ*l KD/swqod/ʀg0HP#3t_ sO]+XϳrQ-5j߆Ffmd/eK!p.. at@dIh+> 噼* u CxHi3!i=1\'Ba~E5bF!po3y#y5b=w{{iNsu mnj4gÌB3fR+Pނ }CưA5"2"E 4#Y|睶;:Y u3h|YV"8g ,'$loZkS<%bb!+nvqbɐ ?;cRA777s2MXԛ݌~mfQ)'/WZQm 5ڊznrU"|H}H'yk^BAn1^M>SUC@ 3 ,$}pSz&qE ; ĊB%O:-OMAq[Vl l!&}_;_uaOœ2..LXh%r=:gQ]5?7 K7g!F v%x.+3Hot1!< N2 XG `qPs "7&ī1L'#ZĺCE 3.h"/8``j۽(q/z䙞LmDe+y uH,1 }#a%CZ_b"]a0\K晱iYᙺ7 `ibxtXqih?# sdJ<.uQHYveM$o7)*Tē .vىwx_z~aCFۋ(O~WhǕ05acrbV;.B5BF8T6˫\.]u09 &7O#~)b YY W8o>O(],o;# 8 ں"S) tH:; q1Jh_ a~f"1;E8\!=.mg0&m^UpNa˅4S'#N)pt+7t)xs.FxbVr3 etb! M ~pZ9 0ؗH71Sk <+H+`46yɦe-!%S@ؿXnXBuތt9}b4]Qa݂XH c".ݚC\P`4 ܓVo<:gdN~Z0-Hn"%/ ]3G-:D&WzPm+Sq" M^ba,bNp:7]㗡sЂiiƂsd, {y]kupp~px2lr}|]<ĉG,UFGo9 iCz,#@'F EBTJ:b13L^Ry=bF<${a0 Y}X{ ޥ΋|ImmawŌ};8!Mf,cB"7È>4: 3"0?KߩCDvMX_G|020T_K"&׊-9TE: "eB5H@ ¬F9M\1g~vsV#zD>;T)8+M=ߎǷWD8 !6ѧhBC:'.%]S1zTB ?G[a Ji1 k#-DC+ub" L_ UqԧO5L9 gJ[RAx2BXm ܆ƺ- Ol'#3CnIM]O߼9+yn"c&H3ce a'd;b*kV6HB v%p>M 9 az-z)Sg3^ 0r-8m:|厲#8gu1tb2alsH\ 8ͼM7 DĥɛD-%E@5n!Q2Lj&m!7 V G(iQˊ HY\G9 C vuIf#!H*#V*<;bQ1W7mOXjq7w~|#{÷f jMТuas1ۛ3Qk k@΢N "uE>ÑD18 Y.;F*_( ,%0O`?W$]B&6) St WĻ1iQiga10/{>idj+(\x C91EQ{E.I+EWU`Qe47`E\|F <~ć„&-=Z;[T_i|\FW1:D?YdhA3[MyUFOwZ(XpK-;°QMҡ k=9%٘9̭`h/:EiQG@VF&^=HDF~w qy&+ fG:'t 5ʼnBm(QV2Ƹ ҼBZ 0.Lÿ21.aOFD_ B;G]CBq 㟒%. /{a/tMRsqYT>F9ib ෰LoW[[~m'zQ}soB{)I^Od|,ҜCHh]#  Ӻ5ք~C=^ cvI\ IH[Ggd[t{ q0e'S }&THw.F:3fChft 2֛.4=:in'[?+?aZ΅zM `:M.F~v6?mrKi0F3Y0f3:CNҥH;'dCt}crY>VmsuҦ`.mJFO,a|?Sc89,ҚG#DZ ׃|Z uue4ˋ4)ZH?,a[f_FcbPV*>AR&RiڈH$+Øp;Χh :-,J޺ 3ZXdЃ-̺!yXۅg pՕIu̇y9뢴st9b4ֲ\%1l&#]$FA[^,vs5xb 2: ,طj;#'{)) EnDN[OzoeNM k #~DW9t T: xX{:8+)qd!wkci)*H?F9[bSo@)p웥a'VE+-ιRa:β%%Ovַ'-qԅzNAdg^O1'l4XܔOQ8OyC}!nHOTIsjo*eaw4JoKĒ _ּ1)jsxo-֍P6VLPoXh'Σe9I}gvVE :R>oEBP/,5mܺu؅%mb \93 ԌTd$6p|`Ѓ}3[#b+Bs2kh.-/=U Ng) 6aDv5Bk3Ȃ 6}?Eg拉;&jJ@ykb%*yG䎨gZI 0yb3sK  bU;A)1߂MwMF퀲`N= gUyϹ0yLV;K ,a(;k=<]I,m`9F޳;g/n&.b@C5+i/#_0ux!BՈ1ρ ܔOX6l\B $(kVC5d>6#I^\7YTnNsM(;wOT_, -;KcQwV7eS'Sv ~2YQZv,m=Xkg=GrKy/ }o7&Ɠ5 $m\TT(O=:> qVvDއɜ}z-dv4VV}I@Fwކ’!9CH\Roӆ 5 pU$ )ɧ ^k JmٗRrd|i\I{@l.e,z+UMraG΂F/>|z);kL1|ik+m̕A9#ӭc*[o|k占z7P^CP-{ (o( K> ĺѿ`o0p+b^xpQ᲏Ϣ}l`& %w/aNn1kxb?33?Qrc*[cNmzƼsvSxk!YVVYxY\)֏êFA˚5sS(; ԳRH&Dh-;K;+|/&` f NuW~+V}KYuS Q-\ T BejG')L9p$/>6/S\YHN$ǢFB͟K'Y*n_w|$~Je!|ŝU)K&0kbC$_W 0P7u Qipo9h]`ncDŽ֙v_Q-xEF0/a>27Gp~4G &\[=oo8p_RU0 j% H T?e(e0A*dMr4c(Ґ#F$݀845 #I>ب檚V֛)-(&<+ q{t_ZOv{~"F Y W5/Ft $1>W< 41}d?bʿۈǘ*J%P',1zVXDDf29@rYԢ8'7}p?PˇC{dn(c]?Q\/T%cYCm{Ʉ1gEa_*Qa76nrx=mkԛ*kňwԋ/fźnSy#QȌ+j2{PC飳?%'Q9$1k)X_ F| wz}butC}RީD4N J.3sBľ3ENg ~eBm^\ְL \7 K;#9[!}"q(獵g\m:0ԭKi.XⒷ*ZW`e_Omup0ĬƐK.=ԮXJmXZ88E}+Kk-1(*&̍.L֓VT[H_`-L1eP1QGXG#F¹q;'>#ƑGO?45{hoKaBJsvGpA#gyPҾ`u`ʭ=fQ(sSvk Ex~ '{<1*fT-ꛭ\=e}mKDמֈ5@I{'q$?>\w\:G|cZqt:Uu; uUvJyr ps e?.Sz Rk:W96+]Hw3EGCUEt&1LɪKTEW .^T-/1fa IdXP>p EI<ʧo$ɹb )3%:X&6l󑜉}GK[*,T M#N|+O,9`L{&F<yWB>5[RqXq|W0 37HMID1!σJl ; Lgzbsm``j6yË́ġ|q=8ʹ+uv2D_rH?# "AcsA;"&d. Iyb?:~\)gk`Gm#-qD( tAC']MCƑit=pX n"X/Ecroao_J=825ci?MdƤAIy) _i̤:v&C:Gϛc_/Ǘr|9_/Ǘr|9_/Ǘr|9_/Ǘr|9_/Ǘr|9>&LX~V[nX-mlu605`=kUv[=6z.!O͞9w,K[7Wy;;9o&OZٺ9L1ws&TW.1z\)N^~lk6[K'ϝ;sE -7悹קg/9EnxZ־<`k`)kcϖM[ɥn>\yzjf[w{C!ypنɃ7>O~0"߸| 641نx%vCg.N _־~~ӗ OK &C']b8… ׭gW(֛ +{sIaVNQgXRad,*,tºc116}sKwr3)֯KT骻ƈSZnX\q7sy} [O={doKlo3}cKkFvS:DflaM?B&JzzRa;bCo`C_c;0!":`/ vtΖ8XTrtlFOfW7!thpq{Ho*A.DOdP]뱹j_OqKw~7|A[a=CPV,ͨuT. {c$6D!n*[7=;c 6 1>'o*q156BJic%l 4J#>\J5EMkzdl D6~z'LeŨoX~t|`?kBެAZ3/ )IS1؁`SDxWؤt!>D(0֮z o GsI6p116¦ ލ Ul&5S*1JtSa=%?Cs l`-[[Off5U(.z42R`c8%}XLa݅i9JC VuWBtF"L8-YYoʞXGKx=7:4 }n5 z9~CүJC4ȾC 㴹1 яmq! '&) Cp!ϱABKB7 8ܢoJcWޕAՊ`^Q}d?M[I&ArD'~ۓn^nt>\5\p]̈5 K7y[7KSO)ME05pf=*KƼJ,B}hl,bB\\ec:Phr ،o;Ej5/h`v84r\{.1}D쨵G7%9TN$\{a: moMݱΠ >)K"mMMT$p[PNBYĉMd+ q b{F=Y8>WN=E"5`lKm &M@Wt-i+5'6ԣȾ)nƦشD7 ey[`ik@;v ~̓X=q9f5)f<Ļэo1UcQRG֎Bx(lNJج /#Tn)(&c㧏M[E7lyDsNB䳆c,at3?D>_3cLG`olB6ZRl=Imǰu=aw+NxLKho[C0 b *Y 6eBSӅ4Qח hFpI[Eb>9/DăĸCV}R镌IkuD)xth>#;hɵ/c:%pqևnם3ƀ~ė0p!Gj!X Q#Fۡ 8LQ)ҶT؉ (IGXts9QJQؘL7hq MlHĸH*JyRo~!?)3nDۤ! q-.d~C,6n&ˈ@K7Q CLF+Fl9 퇸-m@aq;A\=[ 8I7RQ1H<5@ғ#b $cc*"14h1[z[B@f/!KCYtl7;6Bəl\YT49T1#XvUO &!dM| aQG5I|CՇ/2Q;Vp6 DxX')A/q0RҎZ#Ϡű!*Cb!asxl"Qh/"lRq}}"΅n&1$O?Kڋ|~Aȳ @13L7݌KIm%} R; 1 1H>0 .|G+?1;B8ؤr9U>O?69o~N=8?`-@*=bI`S!Ϡqos$@8 G_}J ?㶏u,/7W{ ]ג_JI 4b7& aq7d vG7i~1X3K;1 b\Hspa_ &X< 3s^X=tCr25ߎ=@DHܚ9+%oP{ qa}!Tc9ͿzQHWUz LG6 6q5D["NY7@F"q ;D7Cz [-"W3 3i'C\ qQ?!p{}3*A>=ə3r1@4eU^4ףQ39Ob]8p `'%uؔo$ cZBkMגw"y.0ughgbI,KL:4 ⶼwr*Jl?Cֵѳޫ[C$/ tCm݇f|]ܬg"C>ԃ8%%y:bvF6Bk` h{kVeOC䓂r*Yt|>\'m[5n` ^}a7i> ɥ FA QKbྒ_oğR``3@c $&1R endstream endobj 127 0 obj <>stream w5@P[%%D3A *3Z_=Z|YOE`/j^w=`vtRS*Z5e_#턿tF^[WB?fS` &p BFSm@hՀ6P٭17%cAB/_c@+m??8Xw]{nĦ1C3!@XAvSHOɫ-HNcnet`&yDCPwb"_Jփ ǀJ-#6uKNuQ@oQ[ K3&܁wV}n`r0yZqb:5?|cO>/[#* ՒEI^2(7DIC"dC|>pC9';ʶX,a_s!e!T.a1_pP޲R(B,Z1FW"G!/D_%z!CL>:O?=˻T@-XI˜Sq|ߞ7D$ߣ΃zO y QCܫH]`wtCck3u2Ԅ!H> z+mV.KN ڇD߄p%PyK,A]Z !% t'1ܶ(֨T8UɍE=LoYC%W]e!68c;As`EhFњ>jHz}Se "-Z 7H%eS? )IC%@p$S>a}DWFGרRXQB\`ޟ/Q_|c@{MO8>0A!+Ăh/ >42.;.E!d${bRr1.8'@,n\Ζk.B2?b İBցy@0 Apigf~+WVO\C{=s'I܄g~Kg〴 b-9b`6_ߖ4ͅH`yftt?sS`97u`Vi[0*7YG)I":œSZ+$Gkݜ|z@d}S@ќyA<Ҫf^g֓%1ݖn- G~)C*hϨo!.KEFQ+,¡D$#-ȱpnT2xP?ShJO+5֤읊^H=:6)˼8KE>=!) ﴭuTXBsCXϴ~i]I[!|!4%O@@nl+φ(R ,iXp% (1`GBh;įq9w^Z]"4 ,6M厏+,k9_G̣&:f1؛ {+d-FJcH<A!4O5.^ǥ#4o#D9bDGFZ=gބtU@|%iGcQ4_%:mi9n<͗֐~BT u& T6 U\ʲ)™s{;8Gc$o=+ 9^|1G*!.3PO"AH;1CL3E%|=9|5D`CͿ0`6QKi@"Gq9[Ȕ[hSѱ$Z0Ni-J@a.{w|c"Jz}]>eB 샱CA* &fl`״ eP޾sPΑ|O A viGh͕%*kAUv^KpbLTGʞ7P닸{KSM\':sO)ܐV u %'rU[Hs蹡vIĶ.RQ9(u#>@Dv)"🰋d.Ҵؗv\@3 =!F䶴tK O^43O92UkC$1cP0a$7BL@RaŃ0f-G@r5m(t9}=K, 1X>,Zpx#شYmv;?.d} 958 O]ԟa=g1{&$vP#%9juc)h&uT@;sfƂBؙO>>UUؼ@,whԫnc 6J%Lf϶t pu=Sl9Gr[*K!¦!< hߓ|XofcESo9X`E.K<'a()^@Ny;D9/IL7 I 䞱%wWt,W]lU#4.Imv=](Invaۀ+S3YaAEUK:n̝oҼB@ KD~O (Da]9~a\%LB~Czx1P=H%RGg)k+x)ZGݙR=amalOEeJz6pg؅RU!҆"m +"Z >*HQ)'ݝ"* w@2Poy$VUr[|9}qgvXqD` Wv(g8ʹn5<ȩ LeTbȅMff a~WJ?EQ׭e+VN8,jV΀u3a _D@> A-y9M~9/8q_`iMJ德ɘZ7`f!tn+Dqm 0b)Pbi}r_O7װ۬O:z^n܇qF-rN..@"bN:9=˿q& Ѧ lɹZ!Ռt5Tx2ۘCQ[P9^n\'׶ZI;5רJ 2N=Uŗ)-.HƦ SC'QؒoH-BW؅g؅OwY]ti9a٢ywҚAɰ#4 .U>]xeT_{R5[| @r4煨7%# @EdE^ru俀"C Mr){$ seso/CwR@=5s䬻vbʵk-f EV_ !]e՝b(ɧ;Ori\Tٰ˹@"҆? mG~vyt:꟰ O=e 7ik@֬xbĚrH2B!ntZJVpݺIC>\ԌBv® 9#* ў"ŕXlnO h K{BE*>BĥQA Ԛk ߘ (OBK#SnjG2>nYiHr$Ob|Ere5O*ۗc@"O`_XcjjE:1"5!^toXնͺ:} T訥I؞!hz9q~&_>5/y-i-/ xs%VmTKw!}#}Sb1:gz֖aDM#jŜ_ %WH[bl%ֿ)KS`(DHzPɴ:Z5rԢ/sWD)(eD۪Wqr-;ԩڵjiNA`Bhv$Ϡkt1  7`e>0!(VA0 hI$K̺oA Æ g#k@P#5S13f#]5O5 b!֨кcIL Om;rb=?}irkW Gѱ `fֱ@QUk-}h'UɝEl l@PЂDu~>"d mPI>8)@~ud L92s9iTvc'afUB[!$`0e H0  &y бyTȻ Ag.>a_cs~S hcͯ']Z1 s}:c %GxʅuBƭ;Q7{DxMaHR{^"{ oE-5a$oF,XN?kE~HR9bh[YcB1P%X:tXZœ)t.5,_@jG\3hz:bQu֩b91sόTKB" Ntܑi4B]Kj"ʿAd/I'u2x{j.CN>1'yGԌc+3Olt# n3B=>?X~B &=:v)&v:3ƴh|` )kږr⵨*;~yuUIbӔ})k-d}O|Bạx>jb?9Ri|Y Vs6v,XVY;i_`^-,}}V.dll,ŢK)x'c:cLP3ú ќ|ݳ \kcj ̛sKYNR6к4qr'St5l Wޱ KϤ}Si-=8v _=ӳ U5V0+ub}PۺKUţqUMKOЯ˰vڈa 6wʪOʒKTμo<_{.p<}A^+l+}U6 ɺ3ɺ9[Ue/Kc/xL|byW}^Yx9r%@ր˿X*m\%y,^)%ZjDsRs}6hXj}}5lggR\åtN+tcZt|Ͼ>!wNuCszԠI4F=6ּ]gd..Ֆoe>5Xx,9m|_}{%5 8ދwtwC5-rIj:}=ߣ]ӹˤ6;2b5bmJ!#m `<QPy:GnS3n; ?)gnO?t?qw?ekG+k^,<=8҆CT3~`>eC/xCۜEbw]}i:~ sw?؁W\kb#)_ʈO>9 .>$Vsk!\^EL <qS#zJ_+K-_j~Ke|o~һi»_=_ٷGneؿ>qyPz0]|,EQ͋MOΗb}Km.rn= T_hv-6op-/}ʲK/Z6ިQCX4%v\vjl>}U8ɱ_Zґ6[[foFM}OTѧV/[5{7+O-\㳭\so{;obνϔon=^Y#}hMWvtyZt92l=.q`v&>4`2iR[NRԫ,ϰ|힯rɃ5\ƉVX/{֪/˕oZD^]ש=좾v#Fעm. εEUvY<%~n= J;F+[)ipi҇;iϒ?_& ?&M޿7d~dumΟ_gIY/J?ϼ ܞ7f̋ x½mw=G䃭#vmO$3K(^i?,z,|j:{K_cG1X|p?BޔhF˳ewmzqB$1Nlhg/o?;Gؼk|}>ʊ=(n(r}\or&uO73AGڒ5X T>[|oxgߥ8;ƼBM6Og=}p5 ?lMt-=;>euŰJG=dOΝˬJ_w06 (Onoyx9Y}q \)Oۢܞ>WXz;6?NJëCyd?_˴{}\PCdCwߎ,Iuxy4ɾB]S#Ņ|}屮 Lke/bNMdwtVsgUReܞi89=?\(wfM~_`rji@ !s,Md޼u}(-~T}tm5yeudK6~%L>tYm.XXկtvI'Z\t#~sK硲yyjFUɯRGmçAæHMkwkMyxsnY`SQޫ'?*&6lݽWW _-Q^0*%I]!ח«6b;8:Vx[GQQᣨ)_Y>3ej| YE#3vZk?66'4Vߊ{#Jא^|O.} u wgǝaOO/;t-BsvHkGFjN_lSط7r_SN \]Ol֝u1S .wh:9W!q7M)5ջl3>۵4$Mzlh%)[a'+s.W̞be KU:O \]SY1pbq a5 U((*z)zGpPY,?d-;wyɇkڻ֚ڵϮw27/Sb8Tg ӊKU_!v1jl[aKCrv܊#XsZ𜫷CsF5wtlKz듀?nIu{^c.U׺4G)@gΒI gLV]sQt΁z*()z*z(?}r]z䟎B3}U&N~ң%1=WT|Ϥ:5Mx{#Zs>USt6%Os%ISp%)f|^ՄWcv\;t9*ܕͱ+'/F$c͑ysRKߞ' 9fr_iԼ7( %Гwrހ\~Ы!vJⴟ˒]kMqMvgs;w?/xIJO %^ɿp5l+y ɕ>J!q.m]owYbHZרOlX cM3)~le:A>w3J/$SpJDQn^pJd Q/GeLD6ff4$Kȯm$y׽Pކ|ߺ|\Z:n厁f.TO`/zG)k=ӎC=I!V@1B1PwU,]kN~+9߭6gkU>2$K"_[ ]#rQ6*{YdrG_s^O^wwzgz;ԛOG֢jmާkE߰sS*_kUC,뉴zV\*}5!iG7"JۯEU/mZpzDFވ7%Y*+ c \SOmڝI?G|o')S*Ie:?v6ѡu_Bc _*~%ʆ[gFWy5Vz/7<5M3M}ZkGY_Tz!P 3`b&>~bEn)1lbŒM_ſF  y ϧh;Mle%q#5wzVQU]*U)4E`"(9)tQtHW5{51&FMJ{5ɽ;}8e5,k5g-O&j?_ 3^<5^ |t4p14uA&ː'df,@c#cy]ߙi"S.5Uתhm8lŊ_^-x{|ǷJ[?&]XGt~<Gs#6sD֫tOdc'FvRd1M̭<ф)z&U_.l9N/6T܆s-pjqs ~Qŕv|m6-vu|^'ϠIsPd#BYGVW 4sY"qj YMe48Y&{"KKhECϯTAߩ"J=Pw=>_m8wRՍŽw;=|0mR- _|q$GG8`i[ +B627},df30^MV SUܬCMfU#ΛUٻ_S- ^hrϔw޿XnvÜa{]Ykfms\?gXWHx^9g1l22c8?Lء s-BfK}a BBd4ŽMEn4E #Nh7U ٷ23.5RE}u{vz8ݼV͂7 :_EִݭU-Y|TkOdGlߩ[#s{~YBnq* M*A=3MEV dsq'UDTk7_W_vz}^|Ѕ [f|sKNx|+Cʾ?[zP5b5I9"^8bo5b??[b&?Su3|~SD=;d7F?bolh4ea<M jESCuʇzzg!Inh/>Wd1l" 5kr1wESEf&.E%hՏ=؅Mu]N&jynȫ[Z6ih}bʥ'ϗn5\//.4*j+&Sm:$;/K,Жٸ l,4)M%AS'D6_Z;ļr)Eh\MY C3RѼz4Dk?XZ٧*Kw_܃>EoUqU<ߜhxkGZ8g#¾^u֭d7u_+oN, HM9z$#_!iesk<͑u7lڟً3 7I}ZA?,;k0[X)*U^a?=XfOij)8-N@Nt9rfM疫FPM%>py=ْߟe]WGW"gU$Û7P : T~[Ƞݿ/(= f_+{+δ}q_ ".2Nk>P1Ýz+kC޴YIx&;RnDN 紖|iү2ǶGWUdo(_Urg*[Şߨ<Zm;mZeΖ=*'*G[*/3U*z{ O_m WC6ow~m{U*.`KGm%.aF~a?K;n,Nϥ{,e?*Wܺbp0W|3.:7E7U{^/ӰF c)^GS~MWIwU|U8m0P|<ʋ{v;77sQ߽ jEIk5E7h*  <W+,MK%7RZ\ˣees3"+ofz'=ڃppOUkқ2s01c| 95jngƭr^ QN\.//o1Zꍖ:/DAiZGȞ^-Jy1$>-S|^{/sz3-:_Yc}TDžEw^T%TaDofpysE#VōЛW*& G _JН7HkMOkׇmdKФh2Z̚OTs|U\ kt~U| ~ <-߀P!EPӡq%37Vu$i%rfVc%rwBtGٹGSy֋ qdȞ6"KdמB/"v|3fʳTzc.}bM}r[醱s̐Ʋ4Wݥ{Wq%'M|v~x_ {q7oxDZfxe#*VgtXZEVVF)9",O,OW;wE"=?龿zRuGfPt"G֞ M" ZTl{FzvJȅGdE|H}rj4- 97m~`uH}^~~^eMuJv7L &|(Epf;0I0{'{lܽlb/\ Ip\N).+iǥ΋.:2._B|y3)}p%}6{oũBn)}.Ƶ"Ņ{>xB_j*JߨW6oet%t1{Lnᙲ~֛.| Ѓ vg`Nͣv~%+~٭}F[Io.O}B]}I7U䯪t}_hߣeǻ‘|Z`or[3ؓTV5}XHFgtI{?->PyFdzqtZIxJxenDW88>dכUTՠ ]ێZjxI:^-wb[d띅LN9N#=K@8RZ-jq"JV!o)25$=ehQ oW_:y\3ʢԽ w"ɔaGfAozWaJ.у*jƔD }J][Hgl5&S;~wU\xz˒^mLo;.fɔ[SՇŇ~஛ D/ 9(eDw.ߗ*vX{w\,0rM2BRg4\y^6SdT;rz>2C??[;V|vߊۂ84d;P?J${~Z:;{[2E2^Ww*ƐPaHoKI| dkJ@~R7Exx>)6w; =KMҔPqDXie-V|lUT8vvuї?-#b%pԚq]`Oͣ=ZN>ZmCzA{v)֛K/O^R0aŗQ̉7,.t.i|Sb@>x,8(&pž#QYbma[ A ;ޟ>4/ԡS|p6#Ρ{o-g{_s1$z|#> d;WZ|SJX)i y9|~&bI ww|pL To\{]-4 Cg.@SӴhEh͚57  ~< b8"Ij1A/У Z1:J㶞_<[ >wn:X5,H l:-AK{{һ~03\Cɂa'vՑ=6X8*RoޒT͹⁷N߹H+NGku?*RMI'7Ji;/tB'@˗#oJ0"A^q*஁J(% 0Z,t_3ǁIlA9[cC>[Oދí2g⹌:cғWiI/]ڣ SSӤ;^}FLoɃx2$T V]IUA9L4Zڒ\AW}Ԟp)hbZ7I6dtɕ﷣=q&=M:P}7ǿű' ;IGkCSs8S?пƞ2Bg7iA4eY?pv>Wn= 2Od{Hك$]o$~tgN|.=M~F$ĕ8lNϦ%'S~uǃEҌ#:՘xn5~Ց9<)챐VJev!yke'R2Jh~T$l|L%v&rȁқR(' 6L\yL~=;^wZ9M|Łi`rM-' LvX- LRTGvj>'_蘼15ρ>|ШՆ>ik>$ӑjAL'V0_MƝ~I?_o<0Azk=tjX#ᗁܡw⥂/΍НAu|>] _"`ը-&LWBAwwqHϵ :W++防~PơMɗ MҌl5k,+ ٠)Hf}X= $7}u@h\NQcbx>[N,:/.czn.SQ]w~|d]X71Z1g5h:Rǫ/@XSm=. 2Lj>AƏrAcJj۝e\VS,A=þR㢳@ :-qF&̳uDgtb(Ab1)Z/uPlL,aet`L,ĩAf71c|)A+Ŝ1 A7Їʷ_H46N`YnDzmVX; }j{JE)yׄcz.9xM$Jl_ % RR\*h6r 8“^U*.6ItB9o87,ԗnnk0=\f(fmL'2{dqLe0M@k TLe[LلJ=*r2y)uYڄ%Toˮ4;eqGbyF hKGoO JVm7c3[LàF^ߞI:g/bY}/"K?9s2ԃA|~N-z8ӻ~ isgf >/<8Uuett6"CW9X"O7 Wk0}z#Љ-UΨ67x 'g}*_a? <y3MT-sm{clr! f 3ƒj=;7||DxWd 2L;E8NdVq0-GR!\FtR>Cm"ݗV(zι fӴ@zř뽶t3ku\Z__Eqo p!uY뾄ڛ]_eHky嶩#s; cGX?̍h1UVrq4<+ןt`o:Vp``- _y)7\~%WoE^ ؾ۫(˪7&!~7flHQsl6~mab(tD?'.Dr2۰;X7%V}~Ϗ u X'=hr`2Oo3gݓčzLz1\g@qajn+נW#'DǨؾKk1Q Z7q" uƄM9\ НneBKБ zg6wʒu^D쑷dϏln)h2dplƃN:L N]z>:Q+ZYk,b5~hq+4K N6tUv~C1&42C`W.PrsX{˶ۂ3cwOr-m`1toݸ- B'ZGT]ybdbx ؼhqݹ۫}  \?`Ͱ}VSCWN( ׹j|/;|}Pԛ`ÚBv|8d>+t]wf+|v{U,WbvU|djĎ~)R%ixa4Nިn0.ת"DOt$NŨH1U@PQwtb ~C,f,ӂyZχk(m4'Z_Az}!0?YVx%I4JldgAc'h9w"4P[m@b-anx ]i$\vo{}OyӕS* 햊LƟK55?݉UZܾn~((y;XA =pe9↚j\C/AG p[qxiA/txP/Ђ%Sd{e՞+f#6 lK'_穯\)>J- Sc!n X 8.GI#m6K|k(kSyy B:%O+G48Z}'4wAxGg ! + #3؆:dEx8y3:tũk%{?x0M籛/rzܧJzm`]nz!oOW%^A[Tn- є 扦m>T4SGpx~T#`W> ÷r]]~7h<=OWGtKw?t燾R}ql|#WY7CLz1YW?:rn K6hֱrG"so9'huc[8~`lYلV5q Z)hq ,~M= '5@Yl򊾩M}kwV3[Wo{&,؍f;,cGc'961]OV"`=y QRjP;zvTc5]XTe,C,  Vȭ5Sot N~{X; ,ت}A@J֗o9x |:(G,",_~wņZyz,2`4 \d,O`wa,TM"09pͺ⻯,LY4` 'pr*&|M=S;n[# ۬L|ʂ6kE\^hVEHk÷)2b:vAw]$, agt;K ,b}&`$&S-'; ֗9@J;KH|/Α|>4ؕ}+sMŽ\E| 7b x\G(6-/l_,j 8|)'+{,n¾m<ɔ0K^Yc+T ji\-#ԩHu$MzS/KոmEB!ԷƉ<o>8G>0 ýcU iEX&=?8@.qLQ3HgM`X4C uawO҉N8}U> ؖ2ז;K Km ,nYWX5K֜O",`zV-ϪA|N|U6?]u_1☯(!&l|zQh]?EBX'[-#\[Vi,0GޛnB]OJf~sg=kSdwX ZBþ9!{m =s/.%|'\cZ\*a%ȓD0(5LmX󑧔UȨ1nx LN Ÿ^m  #X7 kpNtO(Ps*u;/ t"}ےA%\d&!Umk"al!PXդϥ ʮ# TEV`cyЌ6 'ȋ*m9|ImYO'vzf1J: !z9CNEgkS82̀&ʼn><'{ۈ9q0e;F_w`C]k&t؁ LYm%8=+<5L{ZQg o%G38ݓ&qvMkab!6W OՒe4O}=WAeE\k;}ts}%}}|㮙i[󑜵,_>@V X\̎gt%p7^r=j?,܈)햊[rOw|>Yz^*KP~aB|^eaIAp8$1{~=s\,|BcP6&o |n{| @֭^[ sW3d=q}Y#yf^ kWP\qJMEi@ 1^J҂=".tT2D2*pNpo^sZc{̙MFyΓkprFYj!ab 9|6ELY饰>#?,>e teYį+ XIz~)|G-`nu6\dk:VbQ/',k..zjUl}vo92ɝitDXp &ۈLO[U./i"ڎ-z9}z6"_[įSXVݖOc{(걂9W 2ޫ.t祥 ЋKґm>`Iɮ:CJY[́U(6G؇6k.}xSl=n},D(>ǚᚉyp/-`) ]'V,ClJ{'^!1OWW ْW W9~,s!$ 5d378fJ<^O[̀Lx°_0hsMO+<8x|8¹V,9&׮O /5b0]/k$<1y`<ʈ+9dBmK[ۦ3EGxep.$`&#s~`+pAa~_[WI$.r Lp|Nw1Oa2[M!#^|"d-KF\E}U?U ?Ÿi7ІMN|`R!d^x|<>x|<>x|<>x|<>x|<>>31rMXZc0wI$l}ZTAnikb#bRl][h;_ok?lE1҈Ys\`> ,+*5dAS,n ߎr0ppr^4oӢ%N΋9.u^hxѢy,Zh?xˏ| ζl9`[Ar= B[`؈(@ߖ 2ْ+@??b[¥l.W~Se ӧObpR'WǗE7EH51@!\]DG|FeHBUFjC#MEiK"ӵuO7Zz(S RQq^~Z|Ċ꒨ZatB.BW/ ApO҈4M*l$4S?8_y_%(Q؝J&UcAD]7ԊE]\Bo|t;FY :1e:!MtFI|.’ʆ #DŽ|]>eȒA* =t+DV&*Ro1569_"DekKQѲuP"U62E cJl #:,^Ol4Lm&&ǀ*BդBquy ݳE 9XFlUrU;+v-~뙺ɈJwN , \Zy d V$jb+\O2ZDˆ\(j ]LsT>LHÇ2X ڠ, VKrjKRJ㉒c` B9*%hP||MAsMRPtec+t*]*H`6F((sne>ń)ё*R5=@eqzAgtvU$uzǁ(d֚Ӫ됨襷N 6Q?1 PeY)c||bӞYr}"scd3KtB9،"VI1tn ]=3uC7&*#Yj9x-c[OFI#a+Ouξa;V>0Y^m *;ʒv@ P_(겆.3\98U|Rj!4M ʿ_K1DeԄ&sنq0A*~gex,S OPb !D/@@-0(0@(?$&"URD!1c~7Sa4MzQ(TgrBPey1&4S |anAwhJ*şvT/K3!P YZ1(F<^]31źth&(sT{#qٺ K-TFuy:Ѝ(곃e`[BO<㩰 yK2Iwb %Mb4/,Po.=4||^{EƠE'k-< b׏TyN#!i(2P1xg3kQQm :bFg{n15'8'KБ*=rJ5+p8.+eY6$ME%Pc_ꐿ@"(b͂^^mBm"7 t9nAAy*XQ7E^k W0 {0o@yEF'$ LHbqP S\a{P@3I7%t!@)Ķj+jfؗk|?reQ9b+ =!: bM3&jRz]X6>Pn<ǰ?&]Tfw l1pm_S#e"8@/.SgS5F2@n#Ԟv\w?OT&I Ogs]VMWzCt,LpAh::ɵ+>:AAy2n GyVKeipk5@KUpf 8M9(fn2Cu }l%H'5t5(\HH,҃S> +z<\K<4^e#B`3KNȇBq"1bf1YJ@#7 ؤ[ۨLe ]tt dcsKS0>(@W*F@T^ˎO6 xۼm9~`H*b?!`.ZMcHZ%gcAtnw#wlx|m]@Ei<9>(y5AnkIkp y" Q9? "q$"~ؖ $ٌtq㼅!Cx\7\NEPIl90_`N**;*O(3fB1>0w@r8lk$΁Rv-gDE'(Sf׀ te,Bj=}'\?YFcB(15IlQY @׍j\gZSVaB`- Bll>!A?d3g &\XGV}x6/͠ʧ֌#ʤC~X{mmӘ31笘D@2tNQ̊J9E$ f'8*f=߽߹t3ҵkZﻪ2SVփE{&XPPC~67I 6.9hQ>| ZZ,ᠦG܀@ s\O< &aC\:Fg0&v%=vvOg-aM6HCAeg0 ې) $Dldkqw qP˚DžfDQu]\N)}(UkI@==k];^+p 0}ȕ:~~ ~! l&NI348Br4j@XOyeIr,^ R]m}.2e!j"J;:6s ?@`F?Ġ SZ|~զӘ͐rQCc0T#;%9|G[ u(2?91co :5x?F# T("' Gs\P_`7_ uxPNLߘSB- ([!RUuJ- B`ׇIc<J+A]C$ 3TjE$̔z$ =C}]؀S4ϧϥ˷ף3~㡟I|fK|32w;cܛ\5f(>3 j-P#U&.`;!sa8(3%DMܵgNI½%lt&.N]\)N,B\W╁P'*/w)hUg$Bˀ0 uWD=7$9136qC 1b[@v{8ZNjN>لl-yAbǁ빐T8$>qadpMPv*;Mzu ]t *1<p=#%<_ ՏzF^u1t2ğeAp\+ A!-RtbO" }PYCz)o` D >zƯ8Ou/D1Pw4(59^ڇLl19sa=:; ^'s񵑞*NsT8BL9<>`OHv>O85Ws5*bAG>Z\m7mYu@/7e8c1''@ݒ9ƀ"s؛8$U #u6NrO$ʚa^[`5GǂFggy1xԧ&p>5ז.Hm`C^dCL{1` #^pN3HCǼRGB:p 4]Kb3[욣upI\A Θ`+q4"C4r$N\Bc@P5'56׮ؗlT>Q#>N @Rtu}-=De-r-[>=G _*0Ptj[pB& 0ǹKs;E㏸BpL7*t7e~_7sQFrzb ʨk$OH']98K!p И& _୥fI. 0rm*?~ 9}0R+I?HQqx ?:61ͮ7 ,AȐCpZ bAAX9P|NuuczA3kqb Y.dLb6,o%1wo [gB1x Gɼ9zD-lɞ/6i4Xmr,C 90.&a޳CVy*6}a8B9!^ ^$88 8CA8%Tl|Vy_3&d uYJ($Lo8 z&o7Bn*`XL $$>oW'KZ&;$0=, {o*yC@yVv!{!(#.ٹ Rِ ç<ASr /K115qA!}g+8Sdk=ـ p6E7*MIz.H~J !'7뿺AxAGpm1g?{b(/H:;^摸;;R]Ljb5/uuٸ'XR•3 pjpa+PӫՉ9+##y 9?|} EpݥàюmBUx\bc/` DU+/:@ n f&*Eϋ-뽺xM7lp0%pA2E>M dO#np9n|M&GVCZIGNA0q%pB I)#8B8b{'>!W7 l2iAwaOy&t Sø . ?K q\]d?;AMjuvV{,D]9_RwT8O􀂎1A:Ș;HCw2)j4 \^m6_j҇W)kKdqJN.*6NԗwI΃_ba/7An_ғd}:ԥFu\<;J/7&q2S2pnBL;ekaIn,%8l0WLbVqR&ZɤB /X{7pJBb.`/#9bpd,LG9Cy\lV.R8c=x!<1!~QRnӗݮ]k32vJM؃ZZ6e8bkbEz4#*|ﮐ{_OIp^$$Ie<ف{ N0?Tlz6jpŐ̑+v\|Y@J81iRf;NOzNӁKxlO>8VdUZmo{8qs'c>쉳$ه=porWj OF},[ZN#j=*9#qo"UPjR#@s6)/JbnqjM]j7p gg Od̤Ota8Ez&"n^n@1`>B0O%ju.RK"$ILNvZpH sI$p>ǕKup vȞ^*ptA=Irx~A{ X LmDO#5i&3i-z4 ΢ K:CC6 Nspe {Gp (e2aO/q`=J_s g >b?;!}u.@1Rbu8+ {9MFM'C0Q{mrQF}1Ɗ{<,>ֈ813C{@?bf遃gO|O̎y9 gr9 ا=Uzs{pq٠̑S\r!?\ߠW+s)b5JOE!Q!}DŽ3yہ:wu!9yl V`gW\cZGм,H{l6 *j;Ppm>c5D 8៉Sӳu5)T Tɿ N:П񻵘}~M=؅1G&wr΁EX;o̧3w3{ w5||V Qʇy^)w;(.߸$΀}Ocٓs>;muNQ=Z>)p=?7\'(uci,qp:bteRy&Êu)(KV襞ܥĵ΁gp~.:8>Ay%anak1apsH_Lq%{ $;5C[E\^is3Ї$awW'x6ޤAc#=c _PNN"c`n z4ΧTjUȘ\{`?O젻s0pa.줲Z4z]yf9+PeāW4^p^6^1qfO| r6EL|9/ = 8DcuEI5ħӖYI)5w$I3+}T509FٰI7ŤL^?9;Mph"g- ޒ"􌩣#}vCAJ8ԙlh&lpü^As,b8K`1x :.k5 j*yp) &|>s+55LKx)pXr!o)).7,_r.P`VavJA]Jpq$y-g.Zp"K.gPp7pc"!{(p2擞 #SgZ}[.g/ ilسJ Us_D*t<Ӥx! 쫋  p 򻹘̎]j?%7o=)&p5*j8ňE'5l%q|T-fB}T̏A[}y9R;K{+I4Љ囙 sBwӺٰp!?V6Zl$!i*se.ֶCrI{_qI#Ƚ*nWH]2f2p&rpP.WqU6 ]LE .n e6vJʸ̢"KRW>b |0_|3?f8'}*N:_%>j'{Qw\({C^bl1;<_~a$%U|ӅǫFM:"\;H+HԈ3M$s"+П?] 2C8'\;6>ޫŦ}xSsj 5mbKI_ ~'ٮMnVGpȁ8^_BzŐ+su>h%Vn޴l%n2g6#R #oS!N vu8;\~^oK4{%L.JhLefwIޝ^u>nmeVwI$لVJhdВtUTlFAg5&=9$˫,#˩V Jg MĊ⻭bf<0Mi!|>~a4n&YN[{_WWdq_KS#{Z,zL{ŠT]Qp9יHһuŞ󧩌[L,;oI|j;zSJo%Q<əx+= N^^!q?bK}RGGnW[/d UZ]ljN{!ɭKͦhIr sdNOL0̜/gĩ ҷM[ sKoH4Key5{̟ܫ4g3ڵE[. PcC^c.uj/~8bH~_k&u}\:MjgAS2|\euR7  }rq{~$s6ZW/kk2;cj(jD=p^ݜzU,.mV:xsћ[rr!^j+>Ĺ2.Où`bs.MS`pPW'֒fzDJ.3f=IV٭=X nV܅ bU <^%zwLZ0(o 6A5W<%hqVW(@|9F7e{?z2eyZ.H_QlYY_G)nq~Aiqy ɭfE^ّm-ީSY_DIW:?Zp2_YܨkvZ|Io .v07[&sɳڃg GD~71Wm]=r~/'~nd?e^cKo{ןЅ_~3=" ?Ye]ֲ 2G; {AJiF]{KyMܝnէ2;4Y o̍.SJf#h!~fA_Gh]ov!uʙ{7\YIm1)_uP=;uW$,f -6& AfZP[ O˞t']& P`OrK>@JV\pUj˄׿P7鋞f0W Ql0fI]yV eqUYiؚy9=ڧ<0>\tonަ}ƙwo 73gf_~+JW=k6/,s?h9(~~s>J6ښIK/H[Oʊ*d%UU$omdk%k'Vg8+ JK +gfzk|A\h tQ>I[,D["j m n `Z9Kf!,Ü*JTCSUU׽X駦 ycL^ńXIGժW>s' VfO˟Ys+n5VYݪ`I.{b%)h8&}VwTA%u!u_=oVT8JjM,"tJλ{{J}->[E98\f:bOϳCmmOGhL;Ԛm֟~x% (q͜ESc.q A=eQ-߼ue[~Emގ1{:^ĈDE-B's{!R\-ͭx}FMcFƁ{IfžP׸ʹr$_oO_T4nH p۲cq&+};CAӫ""ILfE.qxmݜ#q+7@XY_e9`OhNuDI][X K_v?9%{qc'v j7VZg$~pqK7QΪ㈨&40[j#s90ZR]h&YP3M<ҒVXPs!ѳ&8TsjUXٗ0 ɷր=N6&l͉}./V\uľr!Ekibw2ˬRĊtUG#f _w"WR "߮}d=N$AQ(yWc4tcRwm`Wm`RJ{Om`6f{^LI1Iqak٫3  wTOv?ҜpRu#Sd~LCD5?P?h71|kw7qMt?f[;ŝGْ?^l2asHoO7;v3~Oèmwl3#|#*}"2"o:Eچ6 .+p+ )?Wڅ8:GdGY7ǚ[v=8.| 7 {=MԯZ˝ {#.8-i wpd}OL{v?y_IyOe$$|z7=/ 1{QP!Ts֥=Oe=E{z]KDlHW*ȢZ:ZUxݥUGgG{DT?b˼ND׷[vRyIyCQE{quqQv&uWS$o+{xZZk/Z 44֢Hq~!oz¤ _ه=qSMcJ=E8ǘGHև΍oNJuLnJ :tJl LuV[N<=/s|V%VKd\W(ǖq{Ꜹ툴VVZ^k#khr8иb؀r$K^(h)7!'&+ک. WrrhŅ\ _/yCQoiRXczUgn Pn/./;Y ת#2"n8F5؆58Kn?`#'WUqbJ<2+bקDO9؜)*زq}c]cO|=닟ײ4DSVڱ}ny _؞nɷ}7-{GL?cU;^q٬. ^(z#';'O2JiZmZt>y9.3.#ڪz)N=/eXg ?_?x[7ʛŰD5-4Я7ۛWWl\U~>)#ξ1.M] ot$u ]"+zFa[s8y_yewaUWn4:4mYo]瘎gqw#ΝVyGڲO7{'?5]oZҨ7ҿaAhTeb^CʠE^+) 8t1ªjտg_|ڋ>@ꠤۯ"u}};#vxޢp~q޸D;eURiLG(¹Ϋ?VGW^`y=RKlQЇ  QM>)eP->zZ n7/AKUМS,4)h:~ VNv ]CqV-fiъS8h`<|RQ^/VCMю w=VbQ6k~gk7ٯb _;.v/(u{9"#&'|e@GeHbkdN="ߜ {>fwϣH㗳LoccXlMِ3x %P?z=x]9|uq.QJ7b y*+ќsʔyx h4B?1&!hDr)n~(3x/Q/YIO񃧤GpsU } "y1*;AK˷Nᗊ=p>|5ekx[2 Ӂ|u6_zOH 7?^mRA7k Tв勐q]S<3'iW?KCcp4 A<.E9)`(<sϣUk$h &T[, 2TdodLoT̛sQq3 .xEzZW{-6oE-rz]~2 +\KLKLf\[τ4⍶D-q8xoR N &\hؠ4Ta i2:~Z~S5EЏ稽C-W \3_{Fe9&YsWEPe_DzWu-+JKK[Kcp|;f#;_*fTFMcNPxLpMh 2 s7{Z\0Rku_b:+,[Dhɉ>[g[Ʋ8&a^y}ЕnQ .1eNҏ߳29^;oldcTyͦ 1B+ϢUc]2~7_z<*p~5טg1{ļw y^\T~>:rkɥ^т ^U$ +{+TT$"9rIw:[t)r*>ܒ|غ!-pJ|Wm9|[rklmhR{eon$RfN{ǿ`60ʌWhKV@FA'[l:61D\mz2#&Ңj=9/rKlz59k ݣ|?j24yDk?t(N?8aPAkIe3 ?V{O~}w̳q  &=-{byKܛB׸Wnq*hx>wfdz,M#HfIyT2M4c:*y_3#EΑJ\b+bjkjJ\esכ XjFWǣ)C#i +pn^_&4mV4q+4q;"sV=!}aGbtލ8Ҙ|\ qG.'Z/rH++魰 M(ӫ cJ3qH䏑$_@4d& x=* Cࡂ&YGs0>>tۮO=nM۴͑=7tV6j÷5L?'L>_|,zhL>அnO8G87upMyO}irt};r'6C|2V6)_,GuEZh9 ^z?z=|هW:?ާlzQ}Gw~3\6f;w[ծsՃh ujyz^dK xLul`W6ήaƌ 5܁@OCvIL~{ݘ&>3hmC\*9>Y h,--q|2Z) Ek]QT3fe~3GԫM {x wkao }}s~]ҵL*ΰ71.Ao!j?5:q+eś ,P?UPB^OX1c땩{)vjqSL221DCCذ94GjiMy}`hÑC6ٜ+۸3O1Kw45Zݼ~ڈȜ2׈ HɇCñߠs_6n-]qQoAܗw Ff4nDzZsTz:bᢲhxk\&w}q^Y>[营o8l4c T8 cмb,YakPD;?;WZ2*)I=o)L;eϸ)6u-ZA6GwOx/ӬE?9yrY??ŋ=Cz-pTZ)+mv}} }yb,u&cfZfn EE.S9~ ҭfYuUyiiQqnT*:wRq%蟊m&2n1y&ZoZ_T=`~ztzci;d)Z.m6&KSzcl$EM'vRa/ oգ ?e{Nw{+x %6Pܸ?{C4 >{oÉ.g>{YD竣]^$kIƗwy-?u:Z21vGwtO-uiE/_~] r@f.o63O[CK|m1UdH^7ԫ Fy}b3~?R1<:Zt1E=]i,cgl=g'\G&`/XD7}_=1,JBlc|.0i" e.yC?픊ݜ#t@{ߝ'}زGVY o807M9MQE&p#~Z#t>=J.^? g[֔]fHKI inRC;6mA"k+mF:I]tuPt-FcN^4Rٵb)3M40D`QWӧ.'0AKYZ{45du>=&m(}+A |JԞM[޶ yD~0ia%Tnϛ ~ap<K!jjHDdgiKж H "eζ^4c :FHce4--N81Hguy1$S{m*Kn /9L.,.,^M(<0JtuY~)VCuOT WPiTeﭹ&uLn4U4t~U_7b,[VMfZ7[/M3vhr&:6k]k;Qd8Yt&tx uMhEh*Ud}e8Zz3A ҕܩ֊[͌zե-gfpv9cη Ө` iRW5Ǩ{+4YՄ`g+wNalPnIs:%ru&xcǼQt2C<Fs\l8\^Gha`f V"5G~DYn8AnA׊+viŖ]!Q%tkUW, .\ <:mp13ywq$׈ xt1u_y!n]C6o-B'QqSNɓM|o2{6s6utAј>``gt1jFhΰh2M+'4D"C}cCl,2D)_IB㱂ݒp#>4 沪 dyқ-r* C*jAV:}cxuH+P8V%ymZdOZpGL.d"{>ghRL~2U9_ ox])tL,:3EL$DZ>[@|n΁Jcg,C"E-]&4n6=[Mj6$Tl.5jPY͚p8s 㖬̞ H OGNE:ݯ.LhzO]tτz%gt=\~>*O(C~'\uu{!g1"ܿEg֕=;hV]ԙy#3>odzpZ4-= UF,*ߵ#M <ooF_z9=>\_yYscckϪ\UëO3MTy+𦷞7۸j_tG`o`,\[++;^Γ\6ܓ^}oAXϟ{ }vI:oD߁o*|q?T{y2~f^ p&7-O6|}Y<]ڝZj~oǚsܩ{6xȿ{Gl~ZφƸwg= 5_w?uf]g3YF^mohcM&M2Mit;m`1+`ctjwԘjb;܃_m̵`O-O|0= {ד)ǜݞ#|^u? o82:|+g+_6;jϑ9S0O(.nzbxs|gj햷ƺ|pcmk3W43&x; jf/izv%ÜhŵBiU7]&ĈOޔ#q0+uכfUL|%?} n|Z|ց+|Kw][w{cS=?o|>td nzy7moX}kʻk\O {5ҳј/>}Zo; 0b6A?9\w.y0wg̿属?œ`W\Ko>{׆M$#v?A{on%W>je]?L\ ~7~?&k_kUZ"Wfǹ/w߷]sC1QnLyZvL.;t;;T4tӍNӤø5tyMpl;e˽gy[Y;'=1()KCPoΑM߈9}0k} s:ΈY4<h\7cx`"zޥ\pjϡ/o6o\*=׵-}*zЛ_?oծ__d΋=^}v)jq}}oz|wo|qwK\~|{#4V4*x"֗aqSΏ5ORN_t̙J ߑ9Z~dw[_zwdד5be y.>ҿp/ʩs7 _ĕe\B$7x7jẃ]1Oc syrX{qjw3/|]'\OOnsnfx4ﳞ/ Agf!<~1?tan:s 06>]@Ǯl)u0'^qJ=Japys&|wQw3Wh_n>5߾wW_#ʗ!Թ] s=*|;ݵ%zMMSȟa~1ϊ7|{-:1[#&oCy#kp 1<*!u7'xS͞bNt_1E_E$w;۷be΂][F3){WWD_M-/@X-R?x3qΤۈ9at?PY~Ѝ q /}wsj"M!jh"9 ٬; <+5m5Aw]C ˷_X#ipaa0_ۖ|s ̧Ias+デ>~ӚOw g_:[`w3=5pӎ)s` ׾oǮ .{2l۴IS`>MkFx>+<1̓DYV$^+ir9=&<۾|}^[<T G}{!vyg^=3d¼Oφ@y\0PǕtS~7ר y~bZ6 sctfp z[ԩnW;E8N\gy&Wp`M9SK , sS޷+[2ǵ13ӿ[1W`;܄8 u+_^*лg'#k]w{vrᜯ}n@A;r1}bҁ-[~ySp"C53an"JoԿed3koo ~j݁|^[ 1Աed`+1! ط(96r}<u>G?a.[C+\Q|ۥ/W~P cS$ l'nkp6bbz}yߧu-0N}k^I~`|Ʒ+Gx8Ӳ3wѰjtP͓L7MՄ{B3=s!;6K2oƛ"FExE@k|>aw6ȠU3L0#o sqcaor111s<~{0h̥x+Oȧ5A]?4´~ozu|V Vafوue#6C`f ~*݇.u7= 1`8yЧNCf]F^y3 b[s*u{??[ 8wX3}1O(DH==ڷ[1w|%}{EXPs o}<|ȑO|}M1[_`gFպƅizj|do }~ ŏM/}n1? }Y"zu` ̃huA<?gp.w*n˶5O\ht^e㹡%/oo/zB]{6bd,`=}M(ڽG)YhGyíN `N=!uK]QpE~ã0,-',Ek xW ?ȣm}ڳ?xiƗ ᄃ rq8YM??aYrq`JݓzHѧ\7 `]m`1%{jzxṾ{Hy]CÙUP·}:-rÙs<#ޑ0 }a`nnꅱ/;*X=4sr-/q}/:nuxEgF,n§^GF .@ӷm<0z] =%ٶfϕ'>go0V ?u"Y`hb 0X~f8l!lՇx a.;4v9Xja9IkOnXmm87D2Bd4쬕vV=w&R ù9í[GunG tJ!=:<2왮 13~ɠ-L+U5ͨf֚|sN[Տ]8);뎏a{v 3z˴8ěG쬙xV2Yn_C,㨟;k<CM<7qgbUb4ZRCCͰ~"v "bQqߌ;/_~Ќv>sM W|Xk a$ccq`o}PQtu󗏸c%%o<2O =ms'H$,oZϞ_vo'v݈ut'Fan¦(ag!~2bgY);kH4|0h"vFa~o@yb+Py;sNx!. 7|`Hy& 5-Ad;K?o;眆˽j'4N2z's:3cr{H#֋1 ĝ4s×t=U 6)ninD;헄7XdWºD}t.2m<]|*Ɏ.;k63u툷{uw\#\ɬ$|k?x1c WP.{+ l S:MN}O0S!Ҿ,9~3_<7 _V—|-8=tYxhYqqs$V`ga| 1_i1--{^F{́3n 7"veeYxV 8MV3|9~nGx/!/z [sm_=w\ tﮋÙm# 9y/a߻pp4_wy Կ?p?>ik'ٿіӧMjgV״loo1OP'xfPdܫ{ugZKV=ڃcuK^Ak$k1O|K%#}[_"\nу>ز=p݉C!C"7%L-K8Tu L[ښxq|;F:C^|lj" v< Ώil"Z >p|_>葏ПKW=W[ם{'=g⾔o#;/}ǿ <;9zu`1bo#, x&O/bgDš_l(5A#f þۀu 9xaͯ92&u!µ=ꗁ~ )UkݢG.56 ?"m6ϣXkl=| h'UFMCх0޳5<̺#[9’{ۅh xUƶ΄F7F<k F8Kά[rB/|(yj|DŽL+xejvaX m~ { G,7c"5Fo\[(ŕ_w Z0P:60o nu|4 5~=Fq*cxFi_"\‡U"CܵA_F⼡ִ,'谳;Αv˃^ew؉q07{.D:>WBlΩG$'FKCum/Za9;N6 Ŭ6u6Z<H!Q~|k^?L`=Wtnc9㟸z^+Ğ{grl3ҽ/Cc[`β3Bk_K>&U?olj°q0~pnwlCU[o5.:ctnay³BF|+ឺ 2>w^/bR=z%al% n9{Vy1L^>1C]bv%ٖ4\[% {k7!=W`:x;@[e顡?s=gY_Tw80{0@/{ss^:4G[f8<_: +=p]&mzzhK:VGv=^Zj@{w%x|m<qџw#~aB:o^ s9r.2 m ĀcOD*Z G?v!N ׂ 5 ώ .f8biOg!8v`I{.}@G%^"{s\wOc4% mĄ/ ̮`ՆcvK`"b  k͞=X?ap6{>;ֳ =wQ%1<1gH=zupMw9B,ul$ :%h煈Lxx^q8{D:' bPねJOAbbXd'h6o?1΃qΣR-3=:B,Z}O]XtWt7D? pnP?< ͯ/99 Ͻ< 8ckNP =_?vgi}7qz`GSΦvӼ~e>OS>OS>OS>OS>OS>OS>OS>OS>OS>OSϘ1&E32ecʧ f鲙ec"әIX&j;dy|m<44MtbNX4gKgTyM2O0v[3O4-"P ~nYDS2E'ZYeM@vD+'DtdV2_Ys٬2y8W}y8Pֹ5 ڬ )23\N4gs,\(ق;uJ"~f5K\ؔl,Ьtbv[&ފJG;H6;k?9d:Z26ۘqD .yN 6DCfon6ѽ Ĝ,)9O"ɖcD;xObsGjx,SjknUzhV#5j2e9P-5iBmOIj7nj S>d({mMձLtAs2mFyK[ے~- #%n3A1W)W&`bh`,Qkn!>6-@dHY@abvZ3 QlPP37;u~FZ[y,Dk0L :`\7gRK563=όa$Zx0JW|w=hZҍX\>ZjB%%ximǪzC8el -MO^ؒj7-`s/LLjSw >FȰT)J{L>rSbԤ͙|L&Vw3J1:sI*v`n8*CabszR(:3C8#qF~`=0HQ.=#|]M'2s*S+h2&zr0KK(7HrjsF<=',>(ߩ6ԵtXLQQKlƍv`re;m܊.Vu \;ee* = ޹诗-b4)s bY~sm<;(s+ s&k ܂MJ$xS93#R|kͬϜj[qIJ/_\ŢPb5QX Uj/(oMbLb8JT,8G@3ϤF~`$lvr3t^z^͆X:Et^54$2y0 [I:$2]vu9LޘH&97$ڜhc&wT;Q:6S`~^l1QDL=QdDϟVlgb3EgbYak8 6iRgbqJgJgJgN 3yB_Jg 0Gb<'>8pgsT,z$o<2_O]Y 8VWR<}qѿm0)#˧E&Q:H~vxH% ,}8Tl/!fgo/鷒~+鷢o@(o%V-J-V2JڭJmi7Q$ 3Rvpj4D?$2|i&>,>(]F]?m<-RXO$^R,RU||.O/ r:}'iצ8 TSKIPs*O/7>83HgpX34#=l%DM'2sKMy@Ŵt`)-^um-^\c9Dsi'3'\a\;Ьmb^giϹp- +9K{?G:dh$sfwK 3t wIg)\mT3XƕEN, t#u_vVCeZy5aK!" K!RsKqBI9xy"Xj'&.Htab*mia8d]hj.e}>y'"DE&%+Bgg&InJofR,Hb-ؖx%p, [#h[eޡ܂`N1^ 攂9`N)S 攂9`N/h H9C1R0}R0sC endstream endobj 128 0 obj <>stream GsIr~Rz (@1*XT?i"Na SP/m0FK3H*U+R Όt!/u]lZ8z߹Y(ݕ闒WN퉆<w}3x>g'.F0?m03hPfc(?Sw1P)?C.6-P KRXgy|*XmDJSwOSZ 玙mOIj7njӝJ}y润X& E ^1jLGAə9S6\D&C[%݉dC1LR2Ϳd|hLtsSʾd~̾dʤ/~`HH*K$=_#u"6iL9)H-=- Cyɗҿ~ Rw -bDzxmB{t@Ρ{ f ȿC5πhA!Ol1̧XO)y%/ 4lXOh8Bq:+9XrKn` N0<8*"7ЗJ5IG-L ,:/0N~0RW"A+ 'baZ}a_8h: b\ 7{d46Y"ZDcBLGxQ#X&U^L˜T~}QTG`4-VJZ9U^-n1,u}ӹXǛKX4(L&V[3ўar}΢#Umh,_e*y?3?6Kds۩?"fHߌr{B_ۦB֞Ϛ~lBUӬJ3/Lg`4tZ>}&TqvN =e$铐UT>(tyr>AO߇} ٴ^LtO+ jݪ"4]f5bRmuǜ1HPlGf$dܛ_T3L9=} ˦5jOXE\nE9ܦpcJʭHG[E?T!_vͭ. g)t#n`OzN1M$ .EN;N'5"ލ1^1[drs e$)1Y$rE|NYC~ru4N%Ɩ74DҨDlrߎ_emڟ2fEt2v !%+\c8x'Mp8XN`<`AΊ`s:lehvwy@j736 sfnՖYlVeMene6n2Û-,oÌwC$`AlqZ팃+4Zh*âjYm;TψVrDN6L+Jh*Q4 Y崲<(e3+\aX;4B_mUe+J8A |+gV NV:o(lE>aEMjr,SIJwTwR vF`'؉`"7Nh q,+gT Ԯ'q88;!:cD'.Pvp,bUxΒȈba#`8D9!]Y=be.4`D|*uc:p40xhPB6eZ=  0hV6U:pp +h[PfvVdXmaüvcemvT e8Q6*JfAͬͼ;`v1 p;L^0mB<8|.&|Ej Hb0f8}C TYX)#Pf7gDRU@]+NaI-’QZz֘H[uJyAި1.D[QJ jlLW 2+e:BA+& ^(5iFFA.R{ڠUnc" +GFō4;9lvvqzpsm gN.q. wpG 'T&1.#F. *A3yjSҊR^HvCժ4ӻwdO9rԋLTIA(1).iZѵ=_2|sg=إj?5Pr5p~N'_kJ׫W-_ExR}^OzK+~hKyJIkI:D.A@aYq6;096s,lgafwNp8;/-Daqu{&je3r?5qaT`CKvQ{X!=u* NX?6,OṗSɦ{]'p-;5opxzWցceRF/tJ-I+H.qZY;K 5=Piw0r)Jnl^|uXEo,+vzMq$ <\`&2NA*+c3vQ@q08(؜ȗ(NtC+ځzD8<N v': _P88fpʳ`E899E`XP6;*QNΰPl Ba?V2zײr"sF`%CO":UI;JЋL%!VXV KL#ӓ3^uњiSyPHRkY`9Ֆu'c -d~ud- >KbdNicEXG%TIȚZ»lݴTZLB-)׫E#iUJGlI䴂] :M0 LtSL)bl+T&3IMX^y~^MOL mb*S#|֙&3Vęb(+&0,N IjU&0 LO"ԊՇkSZKAVݵ,rћc”b(\+&+DXL E:kMN*EB(u**OdLvr+שeYzKBQqj_W1n4&"DR( T\k"R)tbGSaW~&!]&ʫ\ZPgi .MB EaG1T'2GbedISDRT(R\[SWyn-d]-pԩ]2,U8;6imOl]o IOF0tvC4e_V>꧋1d:9{9UtD[>x&ld n /9?H Y&b[CDsu& "n:o1M.u5-gHGcHg ka 1ADHEtV0VR:`st<6tfo`{Ѥ3nۛ&lo6[7KيٹY;J3gڋ-)%lKu!+m"ņΰko6tkd{qhUA/6W֬^ok,YX{Wbf꥚Wz6_K3]LPLY#,W>=۫zIEڪzAMzAUz9]+ THӌS LlP PӬR$T˕O.)?8ѫ}{;7 &"ՠ='%gA%sF`q]PHs'!"NY(QS 8:9"=˰)dt6J -=j×tPݺ;LPlR1u"1(OdBU EmC:邤P Zj61bb HS*?#>hf3f^SYIjd2jK@Q=jOIb@7Ki͝i< B~Kl̳V~c|S`mo C@fWu C` j(ÐEPy@.Er:Au`ɟ,H?0o?$Y.ӫR")@aJv)R΀iRɑ\eh?p&)}vOڜ,#*cVn'|I'Gm[fxFJ)`F{BD*Ƃz!F)pNږQ&`_ rjW(hXt۱K03-E)yp; =O L- 8)7(<_PwkTh@ J+1  \:W=.)UTh#9Vۏ'>@{byBFb4Ss0Bx|B'87E a̕ dYa46FTJb)(d06o]al)G6lWb"mQIIɪ"ҩx6딯qgQ $Y)*.!F$L?SYHi$`Q pۈDRp +*B@odL$hj4\KQ ^}L|)C+JɎG\"O:%r ▛!fЮ^rXr OWFR7'ˑ·I \WO[a QJB]` \.ք.;}MEѕ(`:lR~TVOS b*| Gwȵz,tJW%iUR$~iWI8VXfP~2j$~Cd"+\D9/ fhJi*$ h"=B ZxdZA!hP(J+*FvbSPXtAQ'gST\*OT&)&u!Ƣe#ʥRr-?Z),7,ݱX00D u!(,\˨;:"d=eeP&+ s8)Hi%m\b)!]BgJ*T|[f(TDwVML~5qA`uߡ(#_ҾR']HMH[]^NWr9 F;$R 3X}]E"QnCqݜλq2D3LY,weMxn!k8'x# P{~pj.xq ;\"Y7ɓ ނlrpt;;xlǙx#6OSխi3w*}ԅp8ݹD .JN#\VրWC1pT/̔Hc*ڥo:D_ }73ѕZ%"on8Y{Zn)?ya<ֆmllB֏? QZ'euYό覼\`Z2FY*m1^ZDجJU JFNnw"=- DkK2!];J]6]bkZCʨ^N=,!;6]g60idxY1;Y{ii{qqCЛ@@J wH61I>{>`Y#kFZ~_K3Lb_4dY)t ׂ (O lVzd+?*&~ER,?ōnD6AsF% !(x"] Й0AV_aTAm6ATsO#=HI__eOc Q&e7  B I48$>YP# ۥ0.*/ q^( %/~BW $M3l(t J (H.D2BY,*:V B YP(]k<[ >Y3a:HEa&$h9hqa/zCG;`CL'`N_D{ :'YXIe7B arl")r 8(H뉐3O蠦s "K̭Ds?.#qt21[/XM/=3?gDf?x0' zߕ{dHlqAl%Rʃ~QQx%5~c29l0r.vDGk^A?)\hvW. :Fr"XՙluȆn-Uެvy?~WS}W chk˱b2H9˵[dd%/PxϢ 7̗ӛrOF]댚_5`4OA'Ӡ<'qJ3`(tQ:LPCl8vwBGg]c:LX0R&:,_&)W۠'A_b*l6d=>0amR}7JR.9V~!}8?]ԻfLD쬷;1^;?"Gn?OԿԻ}O+G@1HK lF>uđ,SP(ġK[Y )6zBdW*J!8N,A~&<( +>[IhK<3<?@Q/mQ: f N- $nPno(j?[HðCX?$ϰ4LJB4IS'С,sHQPWG*!xbcJ*Ƅ5$0>JDXD`"xa`0NyxF (fCCIUj0(`P-r肦$U@S@0UdPE< pXT!j" *$qRi$"F7܁i}*z+f"% B!kUV8IkصAàAQ =d'ek ۮtd@cfa4 $Ģ).sPW!DY,[n$q1Xp[Sa‚EѠaaĈ!ddV0PV=VுjuA@0=KM}8.2la vT@ cJ2x0XO5z7 [` cKSH<( k6 rqL`ϙdC D@ 74f q[ZB 2Ue@u#/ɠ/YlXu't KJ zcYl_Z*>e_#.OIc?$%/O5;a )Ϣjۡ6G/wFc:SCJD>VavKOҌ!sW~l>k? 4cSy`(K0p'_czP+Z1VP*d- 8dA'%v [i  )P{R{ISU1aa%k!G|BIʩT6qUfFmz_ILRhL|N8~y[ԙ~*2!4įzIl^#a_@nɷV%p3ʄ`y0=Pa7Poa+xՠYBNbѺ@J!ںl . siI7@jty@ aXà #D HD5!B>q8IS>(̖yᚢB :\'Sdd+~aHVC0Hqh49<( `k@ qAV((D?1> Zpg;)+`ك9_ $pM G'|q\V8' 䰤CwKaB!#.Q\6 BҦ%x^JK(GHw+L!њݛ_qpmNR aBRIځ!(|b@Ra!oLE0Q@|JqB;,&Ő5I9 =0$ֽ!pxx1J7ÿHHPRz-bAtwN|y_7E Ce[43/ 0/, 53 P[:ddRv0HmpnUTÐL]m6:!q ƌ DD2HR e<-DC+CP6r0! 0`0Dy@Q_\/oYÌ۳5=BÚخFIOjM}&r!f֧]? #iZi|]xn q%g606\4m 4L!FHAt065_C%o768Nv8*_]@9`]窮WFI6B3RJ='R j?iD<|5BCOIN{Q\Im'm nQs;aVb>mK8bCvО I.;]7v)M. `^Xɶ[DZaYOtm<ͻf CjԄwxdlh/ݨo3="/)5Yvg4GQzۭěpGu=4p3g4_[Ν_l&+9΅Ik |ޢCȞhx+\I0| ӛU*P2}\-Xx}'a4װkAE^' |iF!xz=d=bNF Xb[V(U\ t7KmϺXqȓG{s?d=B WHċ$jz{)jn:6mׁG[dȒ>4J @IgNLÒr3|֓#f^'Nv^\Ӄ|of'-WX3b_2=݌xW- ډ9 znK|QKa)6&-}o_Q~Š Z6$;0&[Ɉ'"fLNcRyK'(yhDMZ,;|TAV H>Uit {;u|0B(/%C,xP; 2^ڢZN;1@+P&ܫV@sj.bљ꼷&lh?]A&N](;3L#+ ^i{2jE2"@Od"Kb <նdYckx2@J3Ōq i!j3MjF~Z֟ZMA@+SN"-Z 5~[!)Xo1[^27m+v3,5a4@b/FcHsgzCo;bsZsM_3p%M43u7+a^IadFarh"3.] ~k㿙 VQ. Q^;KޜWZlb&B6:{&C e7?Fق,`ݳ3<}ԲafZںzWg?>9,:o7@CKGIfKXFiO6bm h<>1( T Q6e`pfج#{]={ߴBlvK]{=el;9N( =T?ME"f=MsU,Lf8&mjIr}z}]̜ncy\)iᴹ/];Q41*DO1T(e43k*rp'ނYKkNhwxYseKa M* E?WR4w?el6W k߮k(fӨS)pZ>DX/V z6& t.ECY;"B&rZ G]w>Cvtѝ6@fWŅnf& ax㖓BN3ZO L}:tHͧxn5XeU:+wVI'dTa1_u׿)>?ktXN@粽efr 7|KѠhZqhjbLu(5e4ӯ!㙴W MQ-B) :Ԅ=Y5dXϝlk!q5X$CZ-BF4Z c/3FrGT"u+%/IKd~u ;[Rt=7hq2<,U/t0/AAƣ<4+)zVOEG2gBLL>0 i/l%#pFd,zG"Xܙ[rCLǂ5Ty!] ތzy:`5$s6CamRjQMkC3'3v h;2sJsI?R kjfBvq(rUm5);;o֖~n5l˾`w$M }UƓNYOi֌rԱY4^rdwvVEtayz^$6q{b/{Kk;nb@j+Z"qM4=46i:+-T"d zpTkb&tnyֹBo|󔜙bl.ч`UEMh/*jmRC/ͤ_q9ZLI%>7 #BПJfj Mp_OQө"km .PH!LN ^"/oX '&<89.LFjH"e&*HBF.P =d.jGmmJO%0>r˙3emu>^e."'g5t\val|d}Y"$}UbU'DbYJJ{᪒8g(fJq==י% d=Y&anS'\f@:qwsl7@"ωq9YތϾɹ#+ZdϷ\jE:=H:.YL_8o~`ȫ9>3^ђgɦ6p7?\nrk YRWLuG7|x3`3n;Rl꼐y'[:Y?V-Or6x{lQ$PL_ƻI`Y~4=Om[aP'+I1w\b^3^!>4Zx75QE]أƕLQ E#O~lgdR2K Z >OFs9mZ"1rSˁLk /,(T5x,wztozS6v]WbBS2ΑAv?Zu.| k'FKFE ӣՈEXܶba7h?'7܈X$}9FS{œ_[)\9&[{Ul݉KdXd}K*`#wp;tH0Lڂ`v<:+ cdc] z}svbpk9jgT #3H:_:˽-C< >Tz*>z>VhPyWwgxdӗG5ie?w S4wLhު&Iz'_ PYn_ӣ6L`zHI9gfls (Yɳ`=x@9 akP/`PچE Dϩp:1@0bg+@~9 ysop& Rgn,'"XVv\{DP^V@쩒>W:,sX˳ǖ6o=-ʾkf[RkK^kC c/r *@yiCUuAvkg@$Bkt$[{ )Y8'@bm˖ĽLr/-(/AIGW6Ľ@9w}eB7~ф/"Tu gKL'"㭊j,-(&$|:a s%.6BjJMkqb I6z=@vtH=}(:(t+Ab {sbwp2-$\৯~LQ`sUʔ[Uq%12n@ [U&٪$?w%&Yo#~+~u7:b*0PsaP Na-ϋn&wp%{uϹa٩][|OMe#Dt&&C-9jmDz~?8s>;N2m25mGHjL&aOĺw4jJ|ӆmŪD$go]>}Z_Q1S6)Z-ʃʹJp)`q@he6Z>K2g,i0F]WC sDt3+l'PZ㬙{90?Sc1}|N:G^1j9, b(nQ*,*|!-N>(ށZmPmx̶\fRSdmAJnښg1q<]9.s]J1Bqh)zqq܏\wlba :a!.CxE-9}},ߓ=XM>R6~_A߆!nw/뽜d$<̬8X}L2yP0ը?%\$ٰJ z \2bP؞Ϥ<7, dEk}}.A_ag#F) uK{\nZ܋w+wD$Ds4>]rz/.z`v(Amg`=$״8ܚPP#GQ18ɸRYת F=BiVR{tze.'ÚG9q*&{3$m2f)o?@/㍬{OaSQ";MT3\Fq7y> Db7pF܂cKCT.=Eosa"cZzd"ZSS+!ŧĕ;m.zU'kj_t'lj[y0VUl-|xf;@9~+ZSSC%Yw#پ3)+,b &wRX|~,w9fO1x:i|rdAG=)֙˕C۠Ea(9iOi]; riZѲ`E3vi!%do>Ir Qm 4s<24עO(:odV8ݍVWMD5m?\߇9'Cv`*;jѽM[Rstt{Ȕd}v|=EpK]N^;WDDſI+x=vrvz]h"|fy~oNA3&0E9Gإ#, ˖Fl@e-Tp8KkU~z?=dI{H V0;y9or\:mT%3W|_fL8fX|6wGY:˔ zdg9$K/ `rU4% 5j57>!Qg^ yBc,κ R:bu8[6)J++^(?ٙK-Hk[jQ: <];uG_TaLxvkwk ˚..ld T[q.;YG3\Ej|!{8FlK'"*-UU ^hvG,`tT &^hbPbB×0W}X(+y~w2?>ߜ͠i2FcXVm5JGm:P-5 X tcvrE=9]b)`gu?;]Cޞ'`àY!yWy"8*C]§?^yB=#Bwt;`Wg0uퟎ֨qt]^,@` .u#@60`~:3 Āi)]%[f]u/pdH 3j:,CWJ )ѱ&А80K}{sl)WuLF\hV6Ō,#BDg$G9n,;|V-[sU}WHz?ISj*n̲ 98|oQXh `ݶpڪ/z [LW$_7w :睁{P#k#o_wΦGV|i._~?џ[Ӆ#JQy.=x>a"&+:דϕ=My(99,-4L[,5U\+jq_}Z<8^Wh!re˹<'{x+;m[9b23۱9`]GwFu1y͹S,+ky@G1 1_Y׷ж\da} G.-|J[9`\[^,nVsrxT\-鵤"%h{d3K'KYMRi_-^`Nrdi嚸l>/kyx 5gyb~۽=V[^ͩ*mFzh[9gKy_3"Z8 Ygϳxya9KgHYNϪY÷"M= m9[%펻ˊݻq>ή^#nO=?ګ u}g?kx}asܻrӅQGN>:ȳ7eGn9S9,֚=g)~ΗͰ^R|ulj x w.6F\~w*HEWkt]W&)uSeۙw*ep?3+w=0J[Rv-!=6\@=Wys?x:g][܉z|Tx;}UnuW6suoǽ~.Od0߄hm?4љ@ o\Y].&$h-A =[(^Ț>\^@gC\sP;Guq%:Wt\^tUN$y{HDs!srVPQbN/g'T9rOyy W؜;Ӝ,~ӡkΥJs,ATyz[#NLp2sVsfg+fEBޱg rP>5w'B>z< ' l.lFL\3|dh+\nKMܞ.[<ׇyrbt,ca7zsV-J!:˗X,{ׇ*~|1Z8."~|-*vΗX.D&L4]vK7/qn?{vp)#LSLbӁKNRx^҃N&sve*Sa2x6AG|Mwɒ̎vrޱ珻{W޷3>|ݹ~K{4x +-_d0ͺ+`y,/NZSg<'e|}լ<[ia2<ׯkErݻ7o9~{y\wgS"qs~HԛM~Չ6MYz:.9w+;/=ѻgJD_=t1 An3;MZ>^-Cjփӛd\'wttuy.+`}~n~,ދq1o2InX'+~r!S4>M7*W9]a,$f z^*зa'~mQo-^KɿCŶuie"||p>+w>3$#;:Z,v+?&#۳btRmØK߽pϱL:laFx>gwԔ*C͒h i\ű<0NͿPl爛wWp).DlLȔ@\֦AS9SԌp|vS^-/\9Ezvy_4CGx^tD[{/k}}pD:キkg}| 1?l协Q}[||" .=% } F'[\*os]>=}+Kƺ'D(ٕ74^՛0] XujZW$LSnd+>^^$\u|&V78^8\y~ }Q}Z>W湗Prv (;*@-労/'JE<;`o_hhj;@zמ)`Nخ\\fKwL \6w@ia[y˹,4 TKC-v5J~+{U]tPfGJ"%;*udy8kMY.wFj}xk-hWI{mohJgӊPotº(Isie\jͽsg)Uzb'r96xVMmyۍ6>]@ow][=1Oܔ@+:8i]Z@AyZ5Zg__5>E ~܇z9O<^~,0O "xioz-:@﯉hZ_ij|fʽ@;[4JۃRθixDo ǧ$cK5/Zڏnh,*o[ K{`edٯs)h,.cllwf(\&s~KU#"jU@^:~UpxGt_CfI~۰oZGS=ey%>]=dgCsA(֋'ݧEf ͽѓ.o 9FϐK{0?Z#~Y|F}bm 2Bn$ɷRX/ssXF;td3'wVoقX ɚ]n~]ZO;ڐ  JTcbOG(Ry]==9P > ,jʀ(@izi~ޫ1J(u?(E1g]Y@Oj0Zq6(}XdSK7q!Lt&}%{W;.4N)SR{"4dxnPq|pdvu$?p/=pp"?f@p2M"x.~s6%[-FTpط ,j%/[B)nűluۈ (vV%i j.% [Q BGS1AZ>oRCHGg^c~NN֯i=~<"i2~sLgaYGN3.!+?vte>Ǽ&y)ۘR1O=}UZW"Sq)Gv :ѣ,aDǗ "ș6]Ǖ89{Sk1<9U=|!&h$UJdqh̏wN-etɷ g"b}-={c(u;#vƻldzwY3:Еmp-mGlb,@2e}J}ڨ]m$:9xқd误{VhS'*&ϫN2(r4hHOqYY\^ HW k ,<*dqMpt j.BbK(CdUiIi8ŇC05#tf[/I=F:pj_+NՉ؍tܽVpO% t5;)JMEa0) tLe ca6`؍c6@_\sNE|aYe _"WnNmыZMn@@;JpqmXssy=?Q:=[Rtܖ"Suh)@.(9 ޟ]SK)wEMoABgzVhY[QgG0Lsb&^5cwb#yh=qr֛"c9^m};)Q[>L4aHa64nPgT=>#rzLRf~F>ZL-VcD[x&$f$ I|~W]$c;;,NL ξ.Ѷ\DUӒhG>sDۋ]|_^1 \]]P(-:ԶQ_Co >^l XI bȤe>Y'fQBĮ+fdK+<(j&= ssn/8|?Pvt7^MDZЅ0?/.~ǾiX}㻻5͒.tQq u}SKЪb^Z ak^u1 u!0Oֆ ]'PIGBG3Kԕ]-4X9*}&vVrl\mkm1S殴Gk0iM re"N5$]=KZJJJt3t}e&l[Lwf1Pgr'"$18C'kT VL o8e"KYvsAV~or t^Z*opqI8raǿ8KZz6\;AZ=6<]&UJt:,K I'!'e-VG3*R-ڭUgc?*;b^P(k*QhUbE+YN] +ۛ U%`VQPUUر6'y+v{4:W[-]J7Nh1޳}zë +;_쨣oڿR}7§̮@>3׻ ivy~:}^QxaI j2&I@QS7(Ր̊)74$1Q. I;BWe# K+GD.67mo2ι2i;ʦjL^sWeTq~U~a(kFb}͝h_tkڷݙ'Hs 8s#DW8Ϯ ̧U\9ccL|3t ،YN|ɨrCvO8i?y,Is'N8i ZϜ8@*!+L>'$͞3\n XM8iF) pHC9x /7yEyy yIQq~(3n_/ (p}Qot},7Qyy :( ERGWl8jº~ 5w]?~lQuۧ4k]~3 P/+_0 5C]uw89!nhUHb*Ⱥ~C.f7PU* PY#j>9b&Δ < z~'919*b?P/-< T!u—g&|~ }~ὐ'T"3O?#uֺ~:?G]?U:=w{~UJ_kOF\u Zs5s]p2 ׳CL\oL9U%}0vmwں~NUM4ӕgWo=T*VWt~f_xUOm뛰y?P/fI~'{y2W]aWߨSΦ˧fS_x 7y]>iĺr~ 7A_]PT_ah^ki _o$~ ӆsՄu&aNHv B8,!pf4w|ϕmӕx:ڵޗ8@M6ћo雲>Аܻ>U|D_&~A2q>񬙍(*ۨs|-˭qL'sg=o-~~M#꾐P|yIh '?{ nŔFU/?77;'{yo߅畗fNL o~|s9.%jux-tW,gӓibYfMZ.nzqwo${_yk>|)ׇNif=;礆`nީ؜hVːիƝxA j$ՓBc'Y nEFe4&ųӍ[/_YŗNC;vrh;!~7۪&x&}0Ò'iz 5Q$W+Y_B!_):cp VM=O[|fRRy2zjjC:9i<<, *YRnIpwx,P so;yLfcqmf_6\ܻ_:ԫ\9^[Zyz[nVֶ忾|OG^ֶoIl·RPČ=YԎ~dJa{Zwc؜lE.۲367,x81bH\Z"+"f-WuaM11O^_?_UKpyklXtWK]{ k,ϯ*nKjUV/Y#:e6hc_p<[P I\#`jc|4JNmjg=^ Y-JKw_S([Ւ:1joL|`I0ś|Dz^IJgXv"ڿJreCRڵX6yKyوގnbG =w]2}<愭_&ɾ$c9O>FϜ--+-L[N?)DRL2;˴eO6qlk>gz{d֑;A;5>h+Z/>X'W@%Ȓse"d[ZזYtG?9WWRbj,]`xͤN{L2LY:RZ"T<2y,1?Jl`Kk=*~NJ_Dd2v$ʽאaUv;&NddϨ}'t%xi,~I[%d6Κh|I~Vf'{SP[SE$OnzL[Ϟ2DcGtԣ9jv[Bpn2r̬>uY٤[11:oi~fO.ЫC8\ۦ+^^ Ç OVw>3)]/bq#Ƣ w]a e(m&n0P:qpݙO. "H GɤuBјwJQ`ֳ`_L:Hr Ё3$b9DHx<E&ӑFvY. ߣq<-a\xaxaaxf^À~fÝ +C,4dٙ o`u2h6%o<]}ٓ.&B`N-Ƀs`˔yyiљ[f1ԝƠ0i,㧤1/&f1/&f#!2,dgcl.RbFweH1]sP#<ӉAƦ\  (51 irBj v?=9HL0R JLzh6i.P:*'ix)=Vv=FùͰźg^21unέods;WNB,3Yv+kOXS uUW"oA-=HeS{)\CCl^g}bH\ɶ7gyRa ee퍽[H^*i|_t4J-m~ Y6 ZY%~wVm7t)s;݌E#I8o[)e,uu\/K"us$@7Ӄp/v9s‡ (k.ڊzPQx̭(ozu7넝#Qu+y<^œTNi,_Y%Az\|[z 8[K~bVY /ǣƺcQƻ+i;gsHSͩ鷼o[k6.[MEgMQwѬ r"gj9LAO),ʿsmx]_nxEqIz RXsˊXKd1 ^{;89_2Oy{\=k[WI!ߙVl~6Xjm_EKcT`i|b3ے:E-\ހ͒1٤vN>ZQ@>-mLZWi5]I⓶7d_͕%:276E ՂFk3 `2NuCl? ֺU(u\8$Xjm5/n | b,,Xj=Z7T ςnk]cIZX!ih u+OdzXLZ/﬽7GbW"x򖜍.\sWk 57m'ys+7<W/jɵW;n~F6%`?g{s?AG9 I?!5uMv VrkaƦFs%?U}+F?=M R"ؤmqhH/M%>p6 jqDiY-~B&E9i Jr>kȜH U祱hKhdc  4nz~=hl.܁ e_0 -.۲1v6``0h|AVm8*~ F-W7`P7jzykrkyxh%OCCMT>,CrsQcnsQ鑖c4 #aMm=jnyo3V9yuꔺ}YX*ۣƦ}޾^i);%myS[ֽJl Mc3bry3swIFvX&Ju`e2#z魛ۨ3A`nY؃׹x+:YK0C|_\KG`F6qa ]XWNqWmnżP{7 yh f.}2-WƗ)L+CmDQlQ@ rs=qs'3:#R[[`y/+k7 )@wxo謕c;w4xh&O#Q/~e=u)oiʽ:>k;xOa(+lu|YګˏnKS[̹#nwA)DsŊ^+^cԅCmW_(xy4ut}㏅KzۼKbS6.K׊uUn;[jwtz[),EeAD 9|RD^UI8SI1d C̒ @Ȋ"d`xT QF#!SJX$LDG9W@4b _LMiP Uz"x4y 4NT]BDU Z"xtЧ$42Gi\@(4AU!*IBW r2s x8ؐ@<ÕI9%P%]23ހT#ԋi, ha1xs*BA (j46~nqC7 D0w7NYdRJDU&Fd,@Ő UP$WH6-FU3tG@B|B5A7d$͒FdЍ*,$aB@qY8@ p dXB B!jU%#3;Hy0D8 hIMC nYt,fJ DتLb@٨~ pl*$`bС $Q p4B N}´"ii ɘD&W' UV47B3M'u HO %MM F"BaDe& Cm3H#Y4؆N ˜/Y4HdKVe_rW:/ݯVKj-ɓG]j{DJ\E+E+O"Q'FyQ4o"a{ky"O_Foov7ѧ^F~'vDb endstream endobj 5 0 obj <> endobj 24 0 obj <> endobj 45 0 obj <> endobj 66 0 obj <> endobj 88 0 obj <> endobj 97 0 obj [/View/Design] endobj 98 0 obj <>>> endobj 76 0 obj [/View/Design] endobj 77 0 obj <>>> endobj 54 0 obj [/View/Design] endobj 55 0 obj <>>> endobj 33 0 obj [/View/Design] endobj 34 0 obj <>>> endobj 13 0 obj [/View/Design] endobj 14 0 obj <>>> endobj 110 0 obj [109 0 R] endobj 129 0 obj <> endobj xref 0 130 0000000004 65535 f 0000000016 00000 n 0000000218 00000 n 0000052687 00000 n 0000000006 00000 f 0000383670 00000 n 0000000008 00000 f 0000052738 00000 n 0000000009 00000 f 0000000010 00000 f 0000000011 00000 f 0000000012 00000 f 0000000015 00000 f 0000384488 00000 n 0000384519 00000 n 0000000016 00000 f 0000000017 00000 f 0000000018 00000 f 0000000019 00000 f 0000000020 00000 f 0000000021 00000 f 0000000022 00000 f 0000000023 00000 f 0000000025 00000 f 0000383740 00000 n 0000000026 00000 f 0000000027 00000 f 0000000028 00000 f 0000000029 00000 f 0000000030 00000 f 0000000031 00000 f 0000000032 00000 f 0000000035 00000 f 0000384372 00000 n 0000384403 00000 n 0000000036 00000 f 0000000037 00000 f 0000000038 00000 f 0000000039 00000 f 0000000040 00000 f 0000000041 00000 f 0000000042 00000 f 0000000043 00000 f 0000000044 00000 f 0000000046 00000 f 0000383811 00000 n 0000000047 00000 f 0000000048 00000 f 0000000049 00000 f 0000000050 00000 f 0000000051 00000 f 0000000052 00000 f 0000000053 00000 f 0000000056 00000 f 0000384256 00000 n 0000384287 00000 n 0000000057 00000 f 0000000058 00000 f 0000000059 00000 f 0000000060 00000 f 0000000061 00000 f 0000000062 00000 f 0000000063 00000 f 0000000064 00000 f 0000000065 00000 f 0000000067 00000 f 0000383882 00000 n 0000000068 00000 f 0000000069 00000 f 0000000070 00000 f 0000000071 00000 f 0000000072 00000 f 0000000073 00000 f 0000000074 00000 f 0000000075 00000 f 0000000078 00000 f 0000384140 00000 n 0000384171 00000 n 0000000079 00000 f 0000000080 00000 f 0000000081 00000 f 0000000082 00000 f 0000000083 00000 f 0000000084 00000 f 0000000085 00000 f 0000000086 00000 f 0000000087 00000 f 0000000000 00000 f 0000383953 00000 n 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000384024 00000 n 0000384055 00000 n 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000000000 00000 f 0000055446 00000 n 0000384604 00000 n 0000053132 00000 n 0000058438 00000 n 0000055752 00000 n 0000055638 00000 n 0000054065 00000 n 0000054882 00000 n 0000054932 00000 n 0000055520 00000 n 0000055552 00000 n 0000055789 00000 n 0000058514 00000 n 0000058784 00000 n 0000059933 00000 n 0000077760 00000 n 0000143349 00000 n 0000208938 00000 n 0000274527 00000 n 0000340116 00000 n 0000384631 00000 n trailer <]>> startxref 384841 %%EOF ================================================ FILE: setup.sh ================================================ #!/bin/bash # Run this script to setup the project after cloning fresh pod install