From 4a8ae39bcdfc83bbc9429163eb4d45511ac29c6f Mon Sep 17 00:00:00 2001 From: GitHub Actions Date: Fri, 20 Sep 2024 19:26:47 +0000 Subject: [PATCH] Pre-release 0.22.73 --- .gitattributes | 2 + .github/actions/set-xcode-version/action.yml | 31 + .github/pull_request_template.md | 1 + .github/workflows/auto-close-pr.yml | 20 + .github/workflows/codeql.yml | 71 + .gitignore | 124 ++ .swiftformat | 56 + CODE_OF_CONDUCT.md | 74 + CommunicationBridge/ServiceDelegate.swift | 165 ++ CommunicationBridge/main.swift | 19 + Config.debug.xcconfig | 17 + Config.xcconfig | 15 + Copilot for Xcode.xcodeproj/project.pbxproj | 1358 +++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcschemes/CommunicationBridge.xcscheme | 79 + .../xcschemes/Copilot for Xcode.xcscheme | 88 ++ .../xcschemes/EditorExtension.xcscheme | 101 ++ .../xcschemes/ExtensionService.xcscheme | 105 ++ .../xcschemes/SandboxedClientTester.xcscheme | 78 + .../contents.xcworkspacedata | 7 + .../xcshareddata/IDETemplateMacros.plist | 8 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/swiftpm/Package.resolved | 284 ++++ Copilot for Xcode/App.swift | 29 + .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 68 + .../CopilotforXcode-Icon@128w_1x.png | Bin 0 -> 13942 bytes .../CopilotforXcode-Icon@128w_2x.png | Bin 0 -> 42021 bytes .../CopilotforXcode-Icon@16w_1x.png | Bin 0 -> 1087 bytes .../CopilotforXcode-Icon@16w_2x.png | Bin 0 -> 2105 bytes .../CopilotforXcode-Icon@256w_1x.png | Bin 0 -> 42055 bytes .../CopilotforXcode-Icon@256w_2x.png | Bin 0 -> 121511 bytes .../CopilotforXcode-Icon@32w_1x.png | Bin 0 -> 2105 bytes .../CopilotforXcode-Icon@32w_2x.png | Bin 0 -> 5153 bytes .../CopilotforXcode-Icon@512w_1x.png | Bin 0 -> 121511 bytes .../CopilotforXcode-Icon@512w_2x.png | Bin 0 -> 343228 bytes .../BackgroundColor.colorset/Contents.json | 20 + .../BackgroundColorTop.colorset/Contents.json | 20 + .../Contents.json | 20 + .../Contents.json | 20 + .../Assets.xcassets/Contents.json | 6 + .../Copilot_for_Xcode.entitlements | 16 + .../Preview Assets.xcassets/Contents.json | 6 + Copilot-for-Xcode-Info.plist | 30 + Core/Package.swift | 254 +++ Core/Sources/ChatService/ChatService.swift | 259 ++++ .../ContextAwareAutoManagedChatMemory.swift | 26 + .../CustomCommandTemplateProcessor.swift | 53 + Core/Sources/Client/XPCService.swift | 14 + Core/Sources/ConversationTab/Chat.swift | 387 +++++ .../ConversationTab/ChatContextMenu.swift | 76 + Core/Sources/ConversationTab/ChatPanel.swift | 625 ++++++++ .../CodeBlockHighlighter.swift | 117 ++ .../ConversationTab/ConversationTab.swift | 148 ++ Core/Sources/ConversationTab/Styles.swift | 167 ++ .../ConversationTab/Views/BotMessage.swift | 292 ++++ .../Views/FunctionCallMarkdownTheme.swift | 33 + .../Views/FunctionMessage.swift | 30 + .../Views/InstructionMarkdownTheme.swift | 68 + .../ConversationTab/Views/Instructions.swift | 39 + .../Views/ThemedMarkdownText.swift | 102 ++ .../ConversationTab/Views/UserMessage.swift | 62 + .../FileChangeChecker/FileChangeChecker.swift | 39 + .../AccountSettings/GitHubCopilotView.swift | 267 ++++ .../SuggesionSettingProxyView.swift | 88 ++ ...stionFeatureDisabledLanguageListView.swift | 115 ++ ...gestionFeatureEnabledProjectListView.swift | 140 ++ ...SuggestionSettingsGeneralSectionView.swift | 49 + .../Suggestion/SuggestionSettingsView.swift | 22 + .../Sources/HostApp/FeatureSettingsView.swift | 21 + Core/Sources/HostApp/General.swift | 116 ++ Core/Sources/HostApp/GeneralView.swift | 244 +++ Core/Sources/HostApp/HandleToast.swift | 49 + Core/Sources/HostApp/HostApp.swift | 70 + Core/Sources/HostApp/IsPreview.swift | 3 + Core/Sources/HostApp/LaunchAgentManager.swift | 20 + .../CodeHighlightThemePicker.swift | 71 + .../HostApp/SharedComponents/SubSection.swift | 132 ++ Core/Sources/HostApp/SidebarTabView.swift | 154 ++ Core/Sources/HostApp/TabContainer.swift | 222 +++ .../KeyBindingManager/KeyBindingManager.swift | 29 + .../TabToAcceptSuggestion.swift | 199 +++ .../LaunchAgentManager.swift | 171 +++ .../PreviewPromptToCodeService.swift | 48 + .../PromptToCodeServiceType.swift | 114 ++ Core/Sources/Service/GUI/ChatTabFactory.swift | 27 + .../GraphicalUserInterfaceController.swift | 405 +++++ .../Service/GUI/WidgetDataSource.swift | 67 + .../Service/GlobalShortcutManager.swift | 63 + Core/Sources/Service/Helpers.swift | 51 + .../RealtimeSuggestionController.swift | 193 +++ Core/Sources/Service/ScheduledCleaner.swift | 92 ++ Core/Sources/Service/Service.swift | 122 ++ .../PseudoCommandHandler.swift | 444 ++++++ .../SuggestionCommandHandler.swift | 25 + .../WindowBaseCommandHandler.swift | 473 ++++++ .../PresentInWindowSuggestionPresenter.swift | 66 + .../Workspace+Cleanup.swift | 32 + Core/Sources/Service/XPCService.swift | 221 +++ .../SuggestionInjector.swift | 234 +++ .../SuggestionService/SuggestionService.swift | 86 ++ .../SuggestionWidget/ChatPanelWindow.swift | 107 ++ .../SuggestionWidget/ChatWindowView.swift | 425 ++++++ .../CursorPositionTracker.swift | 53 + .../FeatureReducers/ChatPanelFeature.swift | 297 ++++ .../CircularWidgetFeature.swift | 83 + .../FeatureReducers/PanelFeature.swift | 156 ++ .../FeatureReducers/PromptToCode.swift | 276 ++++ .../FeatureReducers/PromptToCodeGroup.swift | 188 +++ .../FeatureReducers/SharedPanelFeature.swift | 58 + .../SuggestionPanelFeature.swift | 32 + .../FeatureReducers/ToastPanel.swift | 36 + .../FeatureReducers/WidgetFeature.swift | 396 +++++ .../SuggestionWidget/ModuleDependency.swift | 88 ++ .../Providers/CodeSuggestionProvider.swift | 60 + .../SuggestionWidget/SharedPanelView.swift | 184 +++ Core/Sources/SuggestionWidget/Styles.swift | 141 ++ .../CodeBlockSuggestionPanel.swift | 140 ++ .../SuggestionPanelContent/ErrorPanel.swift | 27 + .../PromptToCodePanel.swift | 580 +++++++ .../ToastPanelView.swift | 45 + .../SuggestionPanelView.swift | 56 + .../SuggestionWidgetController.swift | 94 ++ .../SuggestionWidgetDataSource.swift | 24 + .../WidgetPositionStrategy.swift | 346 +++++ .../Sources/SuggestionWidget/WidgetView.swift | 324 ++++ .../WidgetWindowsController.swift | 786 ++++++++++ .../Sources/UpdateChecker/UpdateChecker.swift | 49 + .../UserDefaultsObserver.swift | 36 + .../HighlightJSThemeTemplate.swift | 107 ++ .../HighlightrThemeManager.swift | 89 ++ .../PreferenceKey+Theme.swift | 27 + .../XcodeThemeController.swift | 264 ++++ .../XcodeThemeParser.swift | 358 +++++ .../TabToAcceptSuggestionTests.swift | 227 +++ Core/Tests/ServiceTests/Environment.swift | 74 + .../ExtractSelectedCodeTests.swift | 56 + ...FilespaceSuggestionInvalidationTests.swift | 272 ++++ .../AcceptSuggestionTests.swift | 866 +++++++++++ Core/Tests/SuggestionWidgetTests/File.swift | 1 + DEVELOPMENT.md | 82 + Docs/AppIcon.png | Bin 0 -> 42021 bytes Docs/accessibility-permission-request.png | Bin 0 -> 150851 bytes Docs/accessibility-permission.png | Bin 0 -> 656065 bytes Docs/background-item.png | Bin 0 -> 57932 bytes Docs/demo.gif | Bin 0 -> 533458 bytes Docs/device-code.png | Bin 0 -> 220032 bytes Docs/dmg-open.png | Bin 0 -> 278150 bytes Docs/downloaded-from-internet.png | Bin 0 -> 252966 bytes Docs/extension-permission.png | Bin 0 -> 741377 bytes Docs/signin-button.png | Bin 0 -> 43965 bytes Docs/update-message.png | Bin 0 -> 198097 bytes Docs/xcode-menu.png | Bin 0 -> 75196 bytes .../AcceptPromptToCodeCommand.swift | 31 + EditorExtension/AcceptSuggestionCommand.swift | 33 + EditorExtension/CloseIdleTabsCommand.swift | 20 + EditorExtension/CustomCommand.swift | 23 + EditorExtension/EditorExtension.entitlements | 17 + EditorExtension/GetSuggestionsCommand.swift | 20 + EditorExtension/Helpers.swift | 98 ++ EditorExtension/Info.plist | 46 + EditorExtension/NextSuggestionCommand.swift | 20 + EditorExtension/OpenChat.swift | 19 + EditorExtension/OpenSettingsCommand.swift | 68 + .../PrefetchSuggestionsCommand.swift | 19 + .../PreviousSuggestionCommand.swift | 20 + EditorExtension/PromptToCodeCommand.swift | 19 + EditorExtension/RejectSuggestionCommand.swift | 20 + EditorExtension/SeparatorCommand.swift | 20 + EditorExtension/SourceEditorExtension.swift | 90 ++ EditorExtension/SyncTextSettingsCommand.swift | 19 + .../ToggleRealtimeSuggestionsCommand.swift | 25 + ExtensionPoint.appextensionpoint | 11 + ExtensionService/AppDelegate+Menu.swift | 302 ++++ ExtensionService/AppDelegate.swift | 176 +++ .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 68 + .../CopilotforXcode-Icon@128w_1x.png | Bin 0 -> 13942 bytes .../CopilotforXcode-Icon@128w_2x.png | Bin 0 -> 42021 bytes .../CopilotforXcode-Icon@16w_1x.png | Bin 0 -> 1087 bytes .../CopilotforXcode-Icon@16w_2x.png | Bin 0 -> 2105 bytes .../CopilotforXcode-Icon@256w_1x.png | Bin 0 -> 42055 bytes .../CopilotforXcode-Icon@256w_2x.png | Bin 0 -> 121511 bytes .../CopilotforXcode-Icon@32w_1x.png | Bin 0 -> 2105 bytes .../CopilotforXcode-Icon@32w_2x.png | Bin 0 -> 5153 bytes .../CopilotforXcode-Icon@512w_1x.png | Bin 0 -> 121511 bytes .../CopilotforXcode-Icon@512w_2x.png | Bin 0 -> 343228 bytes .../Assets.xcassets/Contents.json | 6 + .../MenuBarIcon.imageset/Contents.json | 26 + .../MenuBarIcon.imageset/copilot-16.png | Bin 0 -> 1756 bytes .../MenuBarIcon.imageset/copilot-32.png | Bin 0 -> 2557 bytes .../MenuBarIcon.imageset/copilot-48.png | Bin 0 -> 3291 bytes ExtensionService/AuthStatusChecker.swift | 41 + .../ExtensionService.entitlements | 12 + ExtensionService/Info.plist | 31 + ExtensionService/Main.storyboard | 684 +++++++++ ExtensionService/ServiceDelegate.swift | 20 + ExtensionService/XPCController.swift | 68 + Helper/ReloadLaunchAgent.swift | 53 + Helper/main.swift | 14 + LICENSE.txt | 21 + PackageAssets/DSStore.template | Bin 0 -> 16388 bytes PackageAssets/background.png | Bin 0 -> 3866 bytes README.md | 71 +- SECURITY.md | 31 + SUPPORT.md | 20 + .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 58 + .../Assets.xcassets/Contents.json | 6 + SandboxedClientTester/ContentView.swift | 29 + SandboxedClientTester/Info.plist | 8 + .../Preview Assets.xcassets/Contents.json | 6 + .../SandboxedClientTester.entitlements | 14 + .../SandboxedClientTesterApp.swift | 10 + Script/MakeDSStore.py | 56 + Script/MakeDSStore.sh | 40 + Script/next-version.sh | 57 + Script/uninstall-app.sh | 30 + Server/package-lock.json | 23 + Server/package.json | 9 + TestPlan.xctestplan | 97 ++ Tool/Package.swift | 272 ++++ Tool/Sources/AXExtension/AXUIElement.swift | 268 ++++ .../AXNotificationStream.swift | 163 ++ .../ActiveApplicationMonitor.swift | 115 ++ Tool/Sources/AppActivator/AppActivator.swift | 107 ++ .../AsyncPassthroughSubject.swift | 54 + .../BuiltinExtension/BuiltinExtension.swift | 21 + ...ExtensionConversationServiceProvider.swift | 100 ++ .../BuiltinExtensionManager.swift | 46 + ...inExtensionSuggestionServiceProvider.swift | 177 +++ .../BuiltinExtensionWorkspacePlugin.swift | 72 + .../APIs/ChatCompletionsAPIDefinition.swift | 96 ++ .../ChatAPIService/APIs/ResponseStream.swift | 45 + Tool/Sources/ChatAPIService/Debug/Debug.swift | 75 + .../Memory/AutoManagedChatMemory.swift | 89 ++ .../ChatAPIService/Memory/ChatMemory.swift | 33 + .../Memory/ConversationChatMemory.swift | 14 + Tool/Sources/ChatAPIService/Models.swift | 107 ++ Tool/Sources/ChatTab/ChatTab.swift | 236 +++ Tool/Sources/ChatTab/ChatTabItem.swift | 49 + Tool/Sources/ChatTab/ChatTabPool.swift | 55 + Tool/Sources/Configs/Configurations.swift | 13 + .../ConversationServiceProvider.swift | 65 + .../CustomAsyncAlgorithms/TimedDebounce.swift | 69 + .../DebounceFunction/DebounceFunction.swift | 48 + .../DebounceFunction/ThrottleFunction.swift | 42 + Tool/Sources/FileSystem/ByteString.swift | 160 ++ Tool/Sources/FileSystem/FileInfo.swift | 66 + Tool/Sources/FileSystem/FileSystem.swift | 1303 ++++++++++++++++ Tool/Sources/FileSystem/Lock.swift | 214 +++ Tool/Sources/FileSystem/Misc.swift | 426 ++++++ Tool/Sources/FileSystem/Path.swift | 1058 +++++++++++++ Tool/Sources/FileSystem/PathShim.swift | 229 +++ .../FileSystem/WritableByteStream.swift | 846 ++++++++++ .../ConversationProgressHandler.swift | 54 + .../GitHubCopilotExtension.swift | 158 ++ .../GitHubCopilotWorkspacePlugin.swift | 50 + .../CopilotLocalProcessServer.swift | 324 ++++ .../LanguageServer/CustomStdioTransport.swift | 30 + .../GitHubCopilotAccountStatus.swift | 24 + .../GitHubCopilotRequest+Conversation.swift | 98 ++ .../LanguageServer/GitHubCopilotRequest.swift | 374 +++++ .../LanguageServer/GitHubCopilotService.swift | 608 ++++++++ .../ServerNotificationHandler.swift | 49 + .../LanguageServer/SystemInfo.swift | 50 + .../Services/FeatureFlagNotifier.swift | 37 + .../GitHubCopilotConversationService.swift | 46 + .../GitHubCopilotSuggestionService.swift | 107 ++ Tool/Sources/Logger/Logger.swift | 146 ++ Tool/Sources/Preferences/AppStorage.swift | 262 ++++ Tool/Sources/Preferences/Keys.swift | 539 +++++++ .../Preferences/Types/CustomCommand.swift | 75 + Tool/Sources/Preferences/Types/Locale.swift | 15 + .../Preferences/Types/PresentationMode.swift | 4 + .../Preferences/Types/StorableColors.swift | 39 + .../Preferences/Types/StorableFont.swift | 48 + .../Types/SuggestionFeatureProvider.swift | 41 + .../Types/SuggestionWidgetPositionMode.swift | 4 + .../Preferences/Types/WidgetColorScheme.swift | 5 + Tool/Sources/Preferences/UserDefaults.swift | 305 ++++ .../SharedUIComponents/AsyncCodeBlock.swift | 200 +++ .../SharedUIComponents/CodeBlock.swift | 129 ++ .../SharedUIComponents/CopyButton.swift | 39 + .../SharedUIComponents/CustomScrollView.swift | 66 + .../SharedUIComponents/CustomTextEditor.swift | 157 ++ .../SharedUIComponents/DownvoteButton.swift | 32 + .../DynamicHeightTextInFormWorkaround.swift | 17 + .../SharedUIComponents/FontPicker.swift | 89 ++ .../SharedUIComponents/SettingsDivider.swift | 42 + .../SyntaxHighlighting.swift | 159 ++ .../SharedUIComponents/UpvoteButton.swift | 32 + .../SharedUIComponents/View+Modify.swift | 10 + .../SuggestionBasic/CodeSuggestion.swift | 36 + .../SuggestionBasic/EditorInformation.swift | 167 ++ .../SuggestionBasic/ExportedFromLSP.swift | 75 + .../LanguageIdentifierFromFilePath.swift | 274 ++++ .../SuggestionBasic/Modification.swift | 44 + .../SuggestionBasic/String+LineEnding.swift | 52 + ...rocessingSuggestionServiceMiddleware.swift | 71 + .../SuggestionServiceMiddleware.swift | 80 + .../SuggestionServiceProvider.swift | 79 + Tool/Sources/Terminal/Terminal.swift | 200 +++ Tool/Sources/Toast/Toast.swift | 140 ++ .../UserDefaultsObserver.swift | 36 + Tool/Sources/Workspace/FileSaveWatcher.swift | 39 + Tool/Sources/Workspace/Filespace.swift | 172 +++ .../OpenedFileRocoverableStorage.swift | 39 + Tool/Sources/Workspace/Workspace.swift | 184 +++ Tool/Sources/Workspace/WorkspacePool.swift | 172 +++ .../Filespace+SuggestionService.swift | 130 ++ .../WorkspaceSuggestionService/LineEdit.swift | 139 ++ .../SuggestionWorkspacePlugin.swift | 95 ++ .../Workspace+SuggestionService.swift | 171 +++ ...ommunicationBridgeXPCServiceProtocol.swift | 12 + Tool/Sources/XPCShared/Models.swift | 77 + .../XPCShared/XPCCommunicationBridge.swift | 81 + .../XPCShared/XPCExtensionService.swift | 287 ++++ Tool/Sources/XPCShared/XPCService.swift | 153 ++ .../XPCShared/XPCServiceProtocol.swift | 155 ++ .../XcodeInspector/AppInstanceInspector.swift | 46 + .../Apps/XcodeAppInstanceInspector.swift | 400 +++++ Tool/Sources/XcodeInspector/Helpers.swift | 18 + .../Sources/XcodeInspector/SourceEditor.swift | 281 ++++ .../XcodeInspector+TriggerCommand.swift | 173 +++ .../XcodeInspector/XcodeInspector.swift | 404 +++++ .../XcodeInspector/XcodeWindowInspector.swift | 155 ++ .../CursorDeepFirstSearchTests.swift | 91 ++ .../File.swift | 1 + .../ObjectiveCFocusedCodeFinderTests.swift | 462 ++++++ .../SwiftFocusedCodeFinderTests.swift | 507 ++++++ ...nknownLanguageFocusedCodeFinderTests.swift | 98 ++ .../FetchSuggestionsTests.swift | 108 ++ ...leExtensionToLanguageIdentifierTests.swift | 21 + .../SystemInfoTests.swift | 20 + .../ConvertToCodeLinesTests.swift | 159 ++ .../BreakLinePerformanceTests.swift | 18 + .../LineAnnotationParsingTests.swift | 14 + .../ModificationTests.swift | 37 + .../TextExtrationFromCodeTests.swift | 157 ++ ...singSuggestionServiceMiddlewareTests.swift | 188 +++ .../FilespaceSuggestionSnapshotTests.swift | 97 ++ .../LineEditTests.swift | 161 ++ .../EditorRangeConversionTests.swift | 231 +++ .../SourceEditorCachePerformanceTests.swift | 23 + .../SourceEditorCacheTests.swift | 45 + Version.xcconfig | 3 + bridgeLaunchAgent.plist | 15 + export-options.plist | 10 + launchAgent.plist | 15 + 351 files changed, 39279 insertions(+), 1 deletion(-) create mode 100644 .gitattributes create mode 100644 .github/actions/set-xcode-version/action.yml create mode 100644 .github/pull_request_template.md create mode 100644 .github/workflows/auto-close-pr.yml create mode 100644 .github/workflows/codeql.yml create mode 100644 .gitignore create mode 100644 .swiftformat create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CommunicationBridge/ServiceDelegate.swift create mode 100644 CommunicationBridge/main.swift create mode 100644 Config.debug.xcconfig create mode 100644 Config.xcconfig create mode 100644 Copilot for Xcode.xcodeproj/project.pbxproj create mode 100644 Copilot for Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Copilot for Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 Copilot for Xcode.xcodeproj/xcshareddata/xcschemes/CommunicationBridge.xcscheme create mode 100644 Copilot for Xcode.xcodeproj/xcshareddata/xcschemes/Copilot for Xcode.xcscheme create mode 100644 Copilot for Xcode.xcodeproj/xcshareddata/xcschemes/EditorExtension.xcscheme create mode 100644 Copilot for Xcode.xcodeproj/xcshareddata/xcschemes/ExtensionService.xcscheme create mode 100644 Copilot for Xcode.xcodeproj/xcshareddata/xcschemes/SandboxedClientTester.xcscheme create mode 100644 Copilot for Xcode.xcworkspace/contents.xcworkspacedata create mode 100644 Copilot for Xcode.xcworkspace/xcshareddata/IDETemplateMacros.plist create mode 100644 Copilot for Xcode.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 Copilot for Xcode.xcworkspace/xcshareddata/swiftpm/Package.resolved create mode 100644 Copilot for Xcode/App.swift create mode 100644 Copilot for Xcode/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 Copilot for Xcode/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 Copilot for Xcode/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@128w_1x.png create mode 100644 Copilot for Xcode/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@128w_2x.png create mode 100644 Copilot for Xcode/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@16w_1x.png create mode 100644 Copilot for Xcode/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@16w_2x.png create mode 100644 Copilot for Xcode/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@256w_1x.png create mode 100644 Copilot for Xcode/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@256w_2x.png create mode 100644 Copilot for Xcode/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@32w_1x.png create mode 100644 Copilot for Xcode/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@32w_2x.png create mode 100644 Copilot for Xcode/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@512w_1x.png create mode 100644 Copilot for Xcode/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@512w_2x.png create mode 100644 Copilot for Xcode/Assets.xcassets/BackgroundColor.colorset/Contents.json create mode 100644 Copilot for Xcode/Assets.xcassets/BackgroundColorTop.colorset/Contents.json create mode 100644 Copilot for Xcode/Assets.xcassets/ButtonBackgroundColorDefault.colorset/Contents.json create mode 100644 Copilot for Xcode/Assets.xcassets/ButtonBackgroundColorPressed.colorset/Contents.json create mode 100644 Copilot for Xcode/Assets.xcassets/Contents.json create mode 100644 Copilot for Xcode/Copilot_for_Xcode.entitlements create mode 100644 Copilot for Xcode/Preview Content/Preview Assets.xcassets/Contents.json create mode 100644 Copilot-for-Xcode-Info.plist create mode 100644 Core/Package.swift create mode 100644 Core/Sources/ChatService/ChatService.swift create mode 100644 Core/Sources/ChatService/ContextAwareAutoManagedChatMemory.swift create mode 100644 Core/Sources/ChatService/CustomCommandTemplateProcessor.swift create mode 100644 Core/Sources/Client/XPCService.swift create mode 100644 Core/Sources/ConversationTab/Chat.swift create mode 100644 Core/Sources/ConversationTab/ChatContextMenu.swift create mode 100644 Core/Sources/ConversationTab/ChatPanel.swift create mode 100644 Core/Sources/ConversationTab/CodeBlockHighlighter.swift create mode 100644 Core/Sources/ConversationTab/ConversationTab.swift create mode 100644 Core/Sources/ConversationTab/Styles.swift create mode 100644 Core/Sources/ConversationTab/Views/BotMessage.swift create mode 100644 Core/Sources/ConversationTab/Views/FunctionCallMarkdownTheme.swift create mode 100644 Core/Sources/ConversationTab/Views/FunctionMessage.swift create mode 100644 Core/Sources/ConversationTab/Views/InstructionMarkdownTheme.swift create mode 100644 Core/Sources/ConversationTab/Views/Instructions.swift create mode 100644 Core/Sources/ConversationTab/Views/ThemedMarkdownText.swift create mode 100644 Core/Sources/ConversationTab/Views/UserMessage.swift create mode 100644 Core/Sources/FileChangeChecker/FileChangeChecker.swift create mode 100644 Core/Sources/HostApp/AccountSettings/GitHubCopilotView.swift create mode 100644 Core/Sources/HostApp/FeatureSettings/Suggestion/SuggesionSettingProxyView.swift create mode 100644 Core/Sources/HostApp/FeatureSettings/Suggestion/SuggestionFeatureDisabledLanguageListView.swift create mode 100644 Core/Sources/HostApp/FeatureSettings/Suggestion/SuggestionFeatureEnabledProjectListView.swift create mode 100644 Core/Sources/HostApp/FeatureSettings/Suggestion/SuggestionSettingsGeneralSectionView.swift create mode 100644 Core/Sources/HostApp/FeatureSettings/Suggestion/SuggestionSettingsView.swift create mode 100644 Core/Sources/HostApp/FeatureSettingsView.swift create mode 100644 Core/Sources/HostApp/General.swift create mode 100644 Core/Sources/HostApp/GeneralView.swift create mode 100644 Core/Sources/HostApp/HandleToast.swift create mode 100644 Core/Sources/HostApp/HostApp.swift create mode 100644 Core/Sources/HostApp/IsPreview.swift create mode 100644 Core/Sources/HostApp/LaunchAgentManager.swift create mode 100644 Core/Sources/HostApp/SharedComponents/CodeHighlightThemePicker.swift create mode 100644 Core/Sources/HostApp/SharedComponents/SubSection.swift create mode 100644 Core/Sources/HostApp/SidebarTabView.swift create mode 100644 Core/Sources/HostApp/TabContainer.swift create mode 100644 Core/Sources/KeyBindingManager/KeyBindingManager.swift create mode 100644 Core/Sources/KeyBindingManager/TabToAcceptSuggestion.swift create mode 100644 Core/Sources/LaunchAgentManager/LaunchAgentManager.swift create mode 100644 Core/Sources/PromptToCodeService/PreviewPromptToCodeService.swift create mode 100644 Core/Sources/PromptToCodeService/PromptToCodeServiceType.swift create mode 100644 Core/Sources/Service/GUI/ChatTabFactory.swift create mode 100644 Core/Sources/Service/GUI/GraphicalUserInterfaceController.swift create mode 100644 Core/Sources/Service/GUI/WidgetDataSource.swift create mode 100644 Core/Sources/Service/GlobalShortcutManager.swift create mode 100644 Core/Sources/Service/Helpers.swift create mode 100644 Core/Sources/Service/RealtimeSuggestionController.swift create mode 100644 Core/Sources/Service/ScheduledCleaner.swift create mode 100644 Core/Sources/Service/Service.swift create mode 100644 Core/Sources/Service/SuggestionCommandHandler/PseudoCommandHandler.swift create mode 100644 Core/Sources/Service/SuggestionCommandHandler/SuggestionCommandHandler.swift create mode 100644 Core/Sources/Service/SuggestionCommandHandler/WindowBaseCommandHandler.swift create mode 100644 Core/Sources/Service/SuggestionPresenter/PresentInWindowSuggestionPresenter.swift create mode 100644 Core/Sources/Service/WorkspaceExtension/Workspace+Cleanup.swift create mode 100644 Core/Sources/Service/XPCService.swift create mode 100644 Core/Sources/SuggestionInjector/SuggestionInjector.swift create mode 100644 Core/Sources/SuggestionService/SuggestionService.swift create mode 100644 Core/Sources/SuggestionWidget/ChatPanelWindow.swift create mode 100644 Core/Sources/SuggestionWidget/ChatWindowView.swift create mode 100644 Core/Sources/SuggestionWidget/CursorPositionTracker.swift create mode 100644 Core/Sources/SuggestionWidget/FeatureReducers/ChatPanelFeature.swift create mode 100644 Core/Sources/SuggestionWidget/FeatureReducers/CircularWidgetFeature.swift create mode 100644 Core/Sources/SuggestionWidget/FeatureReducers/PanelFeature.swift create mode 100644 Core/Sources/SuggestionWidget/FeatureReducers/PromptToCode.swift create mode 100644 Core/Sources/SuggestionWidget/FeatureReducers/PromptToCodeGroup.swift create mode 100644 Core/Sources/SuggestionWidget/FeatureReducers/SharedPanelFeature.swift create mode 100644 Core/Sources/SuggestionWidget/FeatureReducers/SuggestionPanelFeature.swift create mode 100644 Core/Sources/SuggestionWidget/FeatureReducers/ToastPanel.swift create mode 100644 Core/Sources/SuggestionWidget/FeatureReducers/WidgetFeature.swift create mode 100644 Core/Sources/SuggestionWidget/ModuleDependency.swift create mode 100644 Core/Sources/SuggestionWidget/Providers/CodeSuggestionProvider.swift create mode 100644 Core/Sources/SuggestionWidget/SharedPanelView.swift create mode 100644 Core/Sources/SuggestionWidget/Styles.swift create mode 100644 Core/Sources/SuggestionWidget/SuggestionPanelContent/CodeBlockSuggestionPanel.swift create mode 100644 Core/Sources/SuggestionWidget/SuggestionPanelContent/ErrorPanel.swift create mode 100644 Core/Sources/SuggestionWidget/SuggestionPanelContent/PromptToCodePanel.swift create mode 100644 Core/Sources/SuggestionWidget/SuggestionPanelContent/ToastPanelView.swift create mode 100644 Core/Sources/SuggestionWidget/SuggestionPanelView.swift create mode 100644 Core/Sources/SuggestionWidget/SuggestionWidgetController.swift create mode 100644 Core/Sources/SuggestionWidget/SuggestionWidgetDataSource.swift create mode 100644 Core/Sources/SuggestionWidget/WidgetPositionStrategy.swift create mode 100644 Core/Sources/SuggestionWidget/WidgetView.swift create mode 100644 Core/Sources/SuggestionWidget/WidgetWindowsController.swift create mode 100644 Core/Sources/UpdateChecker/UpdateChecker.swift create mode 100644 Core/Sources/UserDefaultsObserver/UserDefaultsObserver.swift create mode 100644 Core/Sources/XcodeThemeController/HighlightJSThemeTemplate.swift create mode 100644 Core/Sources/XcodeThemeController/HighlightrThemeManager.swift create mode 100644 Core/Sources/XcodeThemeController/PreferenceKey+Theme.swift create mode 100644 Core/Sources/XcodeThemeController/XcodeThemeController.swift create mode 100644 Core/Sources/XcodeThemeController/XcodeThemeParser.swift create mode 100644 Core/Tests/KeyBindingManagerTests/TabToAcceptSuggestionTests.swift create mode 100644 Core/Tests/ServiceTests/Environment.swift create mode 100644 Core/Tests/ServiceTests/ExtractSelectedCodeTests.swift create mode 100644 Core/Tests/ServiceTests/FilespaceSuggestionInvalidationTests.swift create mode 100644 Core/Tests/SuggestionInjectorTests/AcceptSuggestionTests.swift create mode 100644 Core/Tests/SuggestionWidgetTests/File.swift create mode 100644 DEVELOPMENT.md create mode 100644 Docs/AppIcon.png create mode 100644 Docs/accessibility-permission-request.png create mode 100644 Docs/accessibility-permission.png create mode 100644 Docs/background-item.png create mode 100644 Docs/demo.gif create mode 100644 Docs/device-code.png create mode 100644 Docs/dmg-open.png create mode 100644 Docs/downloaded-from-internet.png create mode 100644 Docs/extension-permission.png create mode 100644 Docs/signin-button.png create mode 100644 Docs/update-message.png create mode 100644 Docs/xcode-menu.png create mode 100644 EditorExtension/AcceptPromptToCodeCommand.swift create mode 100644 EditorExtension/AcceptSuggestionCommand.swift create mode 100644 EditorExtension/CloseIdleTabsCommand.swift create mode 100644 EditorExtension/CustomCommand.swift create mode 100644 EditorExtension/EditorExtension.entitlements create mode 100644 EditorExtension/GetSuggestionsCommand.swift create mode 100644 EditorExtension/Helpers.swift create mode 100644 EditorExtension/Info.plist create mode 100644 EditorExtension/NextSuggestionCommand.swift create mode 100644 EditorExtension/OpenChat.swift create mode 100644 EditorExtension/OpenSettingsCommand.swift create mode 100644 EditorExtension/PrefetchSuggestionsCommand.swift create mode 100644 EditorExtension/PreviousSuggestionCommand.swift create mode 100644 EditorExtension/PromptToCodeCommand.swift create mode 100644 EditorExtension/RejectSuggestionCommand.swift create mode 100644 EditorExtension/SeparatorCommand.swift create mode 100644 EditorExtension/SourceEditorExtension.swift create mode 100644 EditorExtension/SyncTextSettingsCommand.swift create mode 100644 EditorExtension/ToggleRealtimeSuggestionsCommand.swift create mode 100644 ExtensionPoint.appextensionpoint create mode 100644 ExtensionService/AppDelegate+Menu.swift create mode 100644 ExtensionService/AppDelegate.swift create mode 100644 ExtensionService/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 ExtensionService/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 ExtensionService/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@128w_1x.png create mode 100644 ExtensionService/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@128w_2x.png create mode 100644 ExtensionService/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@16w_1x.png create mode 100644 ExtensionService/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@16w_2x.png create mode 100644 ExtensionService/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@256w_1x.png create mode 100644 ExtensionService/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@256w_2x.png create mode 100644 ExtensionService/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@32w_1x.png create mode 100644 ExtensionService/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@32w_2x.png create mode 100644 ExtensionService/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@512w_1x.png create mode 100644 ExtensionService/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@512w_2x.png create mode 100644 ExtensionService/Assets.xcassets/Contents.json create mode 100644 ExtensionService/Assets.xcassets/MenuBarIcon.imageset/Contents.json create mode 100644 ExtensionService/Assets.xcassets/MenuBarIcon.imageset/copilot-16.png create mode 100644 ExtensionService/Assets.xcassets/MenuBarIcon.imageset/copilot-32.png create mode 100644 ExtensionService/Assets.xcassets/MenuBarIcon.imageset/copilot-48.png create mode 100644 ExtensionService/AuthStatusChecker.swift create mode 100644 ExtensionService/ExtensionService.entitlements create mode 100644 ExtensionService/Info.plist create mode 100644 ExtensionService/Main.storyboard create mode 100644 ExtensionService/ServiceDelegate.swift create mode 100644 ExtensionService/XPCController.swift create mode 100644 Helper/ReloadLaunchAgent.swift create mode 100644 Helper/main.swift create mode 100644 LICENSE.txt create mode 100644 PackageAssets/DSStore.template create mode 100644 PackageAssets/background.png create mode 100644 SECURITY.md create mode 100644 SUPPORT.md create mode 100644 SandboxedClientTester/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 SandboxedClientTester/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 SandboxedClientTester/Assets.xcassets/Contents.json create mode 100644 SandboxedClientTester/ContentView.swift create mode 100644 SandboxedClientTester/Info.plist create mode 100644 SandboxedClientTester/Preview Content/Preview Assets.xcassets/Contents.json create mode 100644 SandboxedClientTester/SandboxedClientTester.entitlements create mode 100644 SandboxedClientTester/SandboxedClientTesterApp.swift create mode 100644 Script/MakeDSStore.py create mode 100755 Script/MakeDSStore.sh create mode 100755 Script/next-version.sh create mode 100755 Script/uninstall-app.sh create mode 100644 Server/package-lock.json create mode 100644 Server/package.json create mode 100644 TestPlan.xctestplan create mode 100644 Tool/Package.swift create mode 100644 Tool/Sources/AXExtension/AXUIElement.swift create mode 100644 Tool/Sources/AXNotificationStream/AXNotificationStream.swift create mode 100644 Tool/Sources/ActiveApplicationMonitor/ActiveApplicationMonitor.swift create mode 100644 Tool/Sources/AppActivator/AppActivator.swift create mode 100644 Tool/Sources/AsyncPassthroughSubject/AsyncPassthroughSubject.swift create mode 100644 Tool/Sources/BuiltinExtension/BuiltinExtension.swift create mode 100644 Tool/Sources/BuiltinExtension/BuiltinExtensionConversationServiceProvider.swift create mode 100644 Tool/Sources/BuiltinExtension/BuiltinExtensionManager.swift create mode 100644 Tool/Sources/BuiltinExtension/BuiltinExtensionSuggestionServiceProvider.swift create mode 100644 Tool/Sources/BuiltinExtension/BuiltinExtensionWorkspacePlugin.swift create mode 100644 Tool/Sources/ChatAPIService/APIs/ChatCompletionsAPIDefinition.swift create mode 100644 Tool/Sources/ChatAPIService/APIs/ResponseStream.swift create mode 100644 Tool/Sources/ChatAPIService/Debug/Debug.swift create mode 100644 Tool/Sources/ChatAPIService/Memory/AutoManagedChatMemory.swift create mode 100644 Tool/Sources/ChatAPIService/Memory/ChatMemory.swift create mode 100644 Tool/Sources/ChatAPIService/Memory/ConversationChatMemory.swift create mode 100644 Tool/Sources/ChatAPIService/Models.swift create mode 100644 Tool/Sources/ChatTab/ChatTab.swift create mode 100644 Tool/Sources/ChatTab/ChatTabItem.swift create mode 100644 Tool/Sources/ChatTab/ChatTabPool.swift create mode 100644 Tool/Sources/Configs/Configurations.swift create mode 100644 Tool/Sources/ConversationServiceProvider/ConversationServiceProvider.swift create mode 100644 Tool/Sources/CustomAsyncAlgorithms/TimedDebounce.swift create mode 100644 Tool/Sources/DebounceFunction/DebounceFunction.swift create mode 100644 Tool/Sources/DebounceFunction/ThrottleFunction.swift create mode 100644 Tool/Sources/FileSystem/ByteString.swift create mode 100644 Tool/Sources/FileSystem/FileInfo.swift create mode 100644 Tool/Sources/FileSystem/FileSystem.swift create mode 100644 Tool/Sources/FileSystem/Lock.swift create mode 100644 Tool/Sources/FileSystem/Misc.swift create mode 100644 Tool/Sources/FileSystem/Path.swift create mode 100644 Tool/Sources/FileSystem/PathShim.swift create mode 100644 Tool/Sources/FileSystem/WritableByteStream.swift create mode 100644 Tool/Sources/GitHubCopilotService/Conversation/ConversationProgressHandler.swift create mode 100644 Tool/Sources/GitHubCopilotService/GitHubCopilotExtension.swift create mode 100644 Tool/Sources/GitHubCopilotService/GitHubCopilotWorkspacePlugin.swift create mode 100644 Tool/Sources/GitHubCopilotService/LanguageServer/CopilotLocalProcessServer.swift create mode 100644 Tool/Sources/GitHubCopilotService/LanguageServer/CustomStdioTransport.swift create mode 100644 Tool/Sources/GitHubCopilotService/LanguageServer/GitHubCopilotAccountStatus.swift create mode 100644 Tool/Sources/GitHubCopilotService/LanguageServer/GitHubCopilotRequest+Conversation.swift create mode 100644 Tool/Sources/GitHubCopilotService/LanguageServer/GitHubCopilotRequest.swift create mode 100644 Tool/Sources/GitHubCopilotService/LanguageServer/GitHubCopilotService.swift create mode 100644 Tool/Sources/GitHubCopilotService/LanguageServer/ServerNotificationHandler.swift create mode 100644 Tool/Sources/GitHubCopilotService/LanguageServer/SystemInfo.swift create mode 100644 Tool/Sources/GitHubCopilotService/Services/FeatureFlagNotifier.swift create mode 100644 Tool/Sources/GitHubCopilotService/Services/GitHubCopilotConversationService.swift create mode 100644 Tool/Sources/GitHubCopilotService/Services/GitHubCopilotSuggestionService.swift create mode 100644 Tool/Sources/Logger/Logger.swift create mode 100644 Tool/Sources/Preferences/AppStorage.swift create mode 100644 Tool/Sources/Preferences/Keys.swift create mode 100644 Tool/Sources/Preferences/Types/CustomCommand.swift create mode 100644 Tool/Sources/Preferences/Types/Locale.swift create mode 100644 Tool/Sources/Preferences/Types/PresentationMode.swift create mode 100644 Tool/Sources/Preferences/Types/StorableColors.swift create mode 100644 Tool/Sources/Preferences/Types/StorableFont.swift create mode 100644 Tool/Sources/Preferences/Types/SuggestionFeatureProvider.swift create mode 100644 Tool/Sources/Preferences/Types/SuggestionWidgetPositionMode.swift create mode 100644 Tool/Sources/Preferences/Types/WidgetColorScheme.swift create mode 100644 Tool/Sources/Preferences/UserDefaults.swift create mode 100644 Tool/Sources/SharedUIComponents/AsyncCodeBlock.swift create mode 100644 Tool/Sources/SharedUIComponents/CodeBlock.swift create mode 100644 Tool/Sources/SharedUIComponents/CopyButton.swift create mode 100644 Tool/Sources/SharedUIComponents/CustomScrollView.swift create mode 100644 Tool/Sources/SharedUIComponents/CustomTextEditor.swift create mode 100644 Tool/Sources/SharedUIComponents/DownvoteButton.swift create mode 100644 Tool/Sources/SharedUIComponents/DynamicHeightTextInFormWorkaround.swift create mode 100644 Tool/Sources/SharedUIComponents/FontPicker.swift create mode 100644 Tool/Sources/SharedUIComponents/SettingsDivider.swift create mode 100644 Tool/Sources/SharedUIComponents/SyntaxHighlighting.swift create mode 100644 Tool/Sources/SharedUIComponents/UpvoteButton.swift create mode 100644 Tool/Sources/SharedUIComponents/View+Modify.swift create mode 100644 Tool/Sources/SuggestionBasic/CodeSuggestion.swift create mode 100644 Tool/Sources/SuggestionBasic/EditorInformation.swift create mode 100644 Tool/Sources/SuggestionBasic/ExportedFromLSP.swift create mode 100644 Tool/Sources/SuggestionBasic/LanguageIdentifierFromFilePath.swift create mode 100644 Tool/Sources/SuggestionBasic/Modification.swift create mode 100644 Tool/Sources/SuggestionBasic/String+LineEnding.swift create mode 100644 Tool/Sources/SuggestionProvider/PostProcessingSuggestionServiceMiddleware.swift create mode 100644 Tool/Sources/SuggestionProvider/SuggestionServiceMiddleware.swift create mode 100644 Tool/Sources/SuggestionProvider/SuggestionServiceProvider.swift create mode 100644 Tool/Sources/Terminal/Terminal.swift create mode 100644 Tool/Sources/Toast/Toast.swift create mode 100644 Tool/Sources/UserDefaultsObserver/UserDefaultsObserver.swift create mode 100644 Tool/Sources/Workspace/FileSaveWatcher.swift create mode 100644 Tool/Sources/Workspace/Filespace.swift create mode 100644 Tool/Sources/Workspace/OpenedFileRocoverableStorage.swift create mode 100644 Tool/Sources/Workspace/Workspace.swift create mode 100644 Tool/Sources/Workspace/WorkspacePool.swift create mode 100644 Tool/Sources/WorkspaceSuggestionService/Filespace+SuggestionService.swift create mode 100644 Tool/Sources/WorkspaceSuggestionService/LineEdit.swift create mode 100644 Tool/Sources/WorkspaceSuggestionService/SuggestionWorkspacePlugin.swift create mode 100644 Tool/Sources/WorkspaceSuggestionService/Workspace+SuggestionService.swift create mode 100644 Tool/Sources/XPCShared/CommunicationBridgeXPCServiceProtocol.swift create mode 100644 Tool/Sources/XPCShared/Models.swift create mode 100644 Tool/Sources/XPCShared/XPCCommunicationBridge.swift create mode 100644 Tool/Sources/XPCShared/XPCExtensionService.swift create mode 100644 Tool/Sources/XPCShared/XPCService.swift create mode 100644 Tool/Sources/XPCShared/XPCServiceProtocol.swift create mode 100644 Tool/Sources/XcodeInspector/AppInstanceInspector.swift create mode 100644 Tool/Sources/XcodeInspector/Apps/XcodeAppInstanceInspector.swift create mode 100644 Tool/Sources/XcodeInspector/Helpers.swift create mode 100644 Tool/Sources/XcodeInspector/SourceEditor.swift create mode 100644 Tool/Sources/XcodeInspector/XcodeInspector+TriggerCommand.swift create mode 100644 Tool/Sources/XcodeInspector/XcodeInspector.swift create mode 100644 Tool/Sources/XcodeInspector/XcodeWindowInspector.swift create mode 100644 Tool/Tests/ASTParserTests/CursorDeepFirstSearchTests.swift create mode 100644 Tool/Tests/ActiveDocumentChatContextCollectorTests/File.swift create mode 100644 Tool/Tests/FocusedCodeFinderTests/ObjectiveCFocusedCodeFinderTests.swift create mode 100644 Tool/Tests/FocusedCodeFinderTests/SwiftFocusedCodeFinderTests.swift create mode 100644 Tool/Tests/FocusedCodeFinderTests/UnknownLanguageFocusedCodeFinderTests.swift create mode 100644 Tool/Tests/GitHubCopilotServiceTests/FetchSuggestionsTests.swift create mode 100644 Tool/Tests/GitHubCopilotServiceTests/FileExtensionToLanguageIdentifierTests.swift create mode 100644 Tool/Tests/GitHubCopilotServiceTests/SystemInfoTests.swift create mode 100644 Tool/Tests/SharedUIComponentsTests/ConvertToCodeLinesTests.swift create mode 100644 Tool/Tests/SuggestionBasicTests/BreakLinePerformanceTests.swift create mode 100644 Tool/Tests/SuggestionBasicTests/LineAnnotationParsingTests.swift create mode 100644 Tool/Tests/SuggestionBasicTests/ModificationTests.swift create mode 100644 Tool/Tests/SuggestionBasicTests/TextExtrationFromCodeTests.swift create mode 100644 Tool/Tests/SuggestionProviderTests/PostProcessingSuggestionServiceMiddlewareTests.swift create mode 100644 Tool/Tests/WorkspaceSuggestionServiceTests/FilespaceSuggestionSnapshotTests.swift create mode 100644 Tool/Tests/WorkspaceSuggestionServiceTests/LineEditTests.swift create mode 100644 Tool/Tests/XcodeInspectorTests/EditorRangeConversionTests.swift create mode 100644 Tool/Tests/XcodeInspectorTests/SourceEditorCachePerformanceTests.swift create mode 100644 Tool/Tests/XcodeInspectorTests/SourceEditorCacheTests.swift create mode 100644 Version.xcconfig create mode 100644 bridgeLaunchAgent.plist create mode 100644 export-options.plist create mode 100644 launchAgent.plist diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..95ee6e8 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# Always attempt union merge for project files +*.pbxproj merge=union diff --git a/.github/actions/set-xcode-version/action.yml b/.github/actions/set-xcode-version/action.yml new file mode 100644 index 0000000..1a6bb6c --- /dev/null +++ b/.github/actions/set-xcode-version/action.yml @@ -0,0 +1,31 @@ +name: 'Composite Xcode Path' +description: 'Get Xcode version to be used across all actions' +inputs: + xcode-version: + description: + Xcode version to use, in semver(ish)-style matching the format on the Actions runner image. + See available versions at https://github.com/actions/runner-images/blame/main/images/macos/macos-14-Readme.md#xcode + required: false + default: '15.3' +outputs: + xcode-path: + description: "Path to current Xcode version" + value: ${{ steps.xcode-path.outputs.xcode-path }} +runs: + using: "composite" + steps: + - name: Set XCODE_PATH env var + env: + XCODE_PATH: "/Applications/Xcode_${{ inputs.xcode-version }}.app" + run: echo "XCODE_PATH=${{ env.XCODE_PATH }}" >> $GITHUB_ENV + shell: bash + - name: Set Xcode version + run: sudo xcode-select -s ${{ env.XCODE_PATH }} + shell: bash + - name: Enable new build system integration + run: defaults write com.apple.dt.XCBuild EnableSwiftBuildSystemIntegration 1 + shell: bash + - name: Output Xcode path + id: xcode-path + run: echo "xcode-path=$(echo ${{ env.XCODE_PATH }})" >> $GITHUB_OUTPUT + shell: bash diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..0f96f54 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1 @@ +At the moment we are not accepting contributions to the repository. \ No newline at end of file diff --git a/.github/workflows/auto-close-pr.yml b/.github/workflows/auto-close-pr.yml new file mode 100644 index 0000000..de2ca78 --- /dev/null +++ b/.github/workflows/auto-close-pr.yml @@ -0,0 +1,20 @@ +name: Auto-close PR +on: + pull_request_target: + types: [opened, reopened] + +jobs: + close: + name: Run + runs-on: ubuntu-latest + permissions: + pull-requests: write + steps: + - run: | + gh pr close ${{ github.event.pull_request.number }} --comment \ + "At the moment we are not accepting contributions to the repository. + + Feedback for GitHub Copilot for Xcode can be given in the [Copilot community discussions](https://github.com/orgs/community/discussions/categories/copilot)." + env: + GH_REPO: ${{ github.repository }} + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml new file mode 100644 index 0000000..78e3596 --- /dev/null +++ b/.github/workflows/codeql.yml @@ -0,0 +1,71 @@ +name: "CodeQL Advanced" + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + schedule: + - cron: '24 23 * * 1' + +jobs: + analyze: + name: Analyze (${{ matrix.language }}) + runs-on: ${{ (matrix.language == 'swift' && 'macos-latest') || 'ubuntu-latest' }} + permissions: + # required for all workflows + security-events: write + + # required to fetch internal or private CodeQL packs + packages: read + + # only required for workflows in private repositories + actions: read + contents: read + + strategy: + fail-fast: false + matrix: + include: + - language: python + build-mode: none + - language: swift + build-mode: manual + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + # Initializes the CodeQL tools for scanning. + - name: Initialize CodeQL + uses: github/codeql-action/init@v3 + with: + languages: ${{ matrix.language }} + build-mode: ${{ matrix.build-mode }} + # If you wish to specify custom queries, you can do so here or in a config file. + # By default, queries listed here will override any specified in a config file. + # Prefix the list here with "+" to use these queries and those in the config file. + + # For more details on CodeQL's query packs, refer to: https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs + # queries: security-extended,security-and-quality + + - if: matrix.build-mode == 'manual' + uses: ./.github/actions/set-xcode-version + + - if: matrix.build-mode == 'manual' + shell: bash + run: | + xcodebuild \ + -scheme 'Copilot for Xcode' \ + -quiet \ + -archivePath build/Archives/CopilotForXcode.xcarchive \ + -configuration Release \ + -skipMacroValidation \ + -disableAutomaticPackageResolution \ + -workspace 'Copilot for Xcode.xcworkspace' \ + archive \ + CODE_SIGNING_ALLOWED="NO" + + - name: Perform CodeQL Analysis + uses: github/codeql-action/analyze@v3 + with: + category: "/language:${{matrix.language}}" diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..136e234 --- /dev/null +++ b/.gitignore @@ -0,0 +1,124 @@ +# Created by https://www.toptal.com/developers/gitignore/api/xcode,macos,swift,swiftpackagemanager +# Edit at https://www.toptal.com/developers/gitignore?templates=xcode,macos,swift,swiftpackagemanager + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# 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 + +### macOS Patch ### +# iCloud generated files +*.icloud + +### Swift ### +# 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 + +# 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 + +# 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/ + +# End of https://www.toptal.com/developers/gitignore/api/xcode,macos,swift,swiftpackagemanager + +# Local build config +Config.local.xcconfig + +# Avoid checking in package resolved from swift packages +Tool/Package.resolved +Core/Package.resolved + +# Copilot language server +Server/node_modules/ + +# Releases +/releases/ +/release/ +/appcast.xml diff --git a/.swiftformat b/.swiftformat new file mode 100644 index 0000000..a57b933 --- /dev/null +++ b/.swiftformat @@ -0,0 +1,56 @@ +--allman false +--beforemarks +--binarygrouping 4,8 +--categorymark "MARK: %c" +--classthreshold 0 +--closingparen balanced +--commas always +--conflictmarkers reject +--decimalgrouping 3,6 +--elseposition same-line +--enumthreshold 0 +--exponentcase lowercase +--exponentgrouping disabled +--fractiongrouping disabled +--fragment false +--funcattributes preserve +--guardelse auto +--header ignore +--hexgrouping 4,8 +--hexliteralcase uppercase +--ifdef no-indent +--importgrouping testable-bottom +--indent 4 +--indentcase false +--lifecycle +--linebreaks lf +--maxwidth 100 +--modifierorder +--nospaceoperators ...,..< +--nowrapoperators +--octalgrouping 4,8 +--operatorfunc spaced +--patternlet hoist +--ranges spaced +--self remove +--selfrequired +--semicolons inline +--shortoptionals always +--smarttabs enabled +--stripunusedargs unnamed-only +--structthreshold 0 +--tabwidth unspecified +--trailingclosures +--trimwhitespace always +--typeattributes preserve +--varattributes preserve +--voidtype void +--wraparguments before-first +--wrapcollections disabled +--wrapparameters before-first +--xcodeindentation disabled +--yodaswap always + +--enable isEmpty + +--exclude Pods,**/Generated diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..a1f82f0 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,74 @@ +# Contributor Covenant Code of Conduct + +## Our Pledge + +In the interest of fostering an open and welcoming environment, we as +contributors and maintainers pledge to making participation in our project and +our community a harassment-free experience for everyone, regardless of age, body +size, disability, ethnicity, gender identity and expression, level of experience, +nationality, personal appearance, race, religion, or sexual identity and +orientation. + +## Our Standards + +Examples of behavior that contributes to creating a positive environment +include: + +* Using welcoming and inclusive language +* Being respectful of differing viewpoints and experiences +* Gracefully accepting constructive criticism +* Focusing on what is best for the community +* Showing empathy towards other community members + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery and unwelcome sexual attention or +advances +* Trolling, insulting/derogatory comments, and personal or political attacks +* Public or private harassment +* Publishing others' private information, such as a physical or electronic + address, without explicit permission +* Other conduct which could reasonably be considered inappropriate in a + professional setting + +## Our Responsibilities + +Project maintainers are responsible for clarifying the standards of acceptable +behavior and are expected to take appropriate and fair corrective action in +response to any instances of unacceptable behavior. + +Project maintainers have the right and responsibility to remove, edit, or +reject comments, commits, code, wiki edits, issues, and other contributions +that are not aligned to this Code of Conduct, or to ban temporarily or +permanently any contributor for other behaviors that they deem inappropriate, +threatening, offensive, or harmful. + +## Scope + +This Code of Conduct applies both within project spaces and in public spaces +when an individual is representing the project or its community. Examples of +representing a project or community include using an official project e-mail +address, posting via an official social media account, or acting as an appointed +representative at an online or offline event. Representation of a project may be +further defined and clarified by project maintainers. + +## Enforcement + +Instances of abusive, harassing, or otherwise unacceptable behavior may be +reported by contacting the project team at . All +complaints will be reviewed and investigated and will result in a response that +is deemed necessary and appropriate to the circumstances. The project team is +obligated to maintain confidentiality with regard to the reporter of an incident. +Further details of specific enforcement policies may be posted separately. + +Project maintainers who do not follow or enforce the Code of Conduct in good +faith may face temporary or permanent repercussions as determined by other +members of the project's leadership. + +## Attribution + +This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, +available at [http://contributor-covenant.org/version/1/4][version] + +[homepage]: http://contributor-covenant.org +[version]: http://contributor-covenant.org/version/1/4/ \ No newline at end of file diff --git a/CommunicationBridge/ServiceDelegate.swift b/CommunicationBridge/ServiceDelegate.swift new file mode 100644 index 0000000..e34dee9 --- /dev/null +++ b/CommunicationBridge/ServiceDelegate.swift @@ -0,0 +1,165 @@ +import AppKit +import Foundation +import Logger +import XPCShared + +class ServiceDelegate: NSObject, NSXPCListenerDelegate { + func listener( + _: NSXPCListener, + shouldAcceptNewConnection newConnection: NSXPCConnection + ) -> Bool { + newConnection.exportedInterface = NSXPCInterface( + with: CommunicationBridgeXPCServiceProtocol.self + ) + + let exportedObject = XPCService() + newConnection.exportedObject = exportedObject + newConnection.resume() + + Logger.communicationBridge.info("Accepted new connection.") + + return true + } +} + +class XPCService: CommunicationBridgeXPCServiceProtocol { + static let eventHandler = EventHandler() + + func launchExtensionServiceIfNeeded( + withReply reply: @escaping (NSXPCListenerEndpoint?) -> Void + ) { + Task { + await Self.eventHandler.launchExtensionServiceIfNeeded(withReply: reply) + } + } + + func quit(withReply reply: @escaping () -> Void) { + Task { + await Self.eventHandler.quit(withReply: reply) + } + } + + func updateServiceEndpoint( + endpoint: NSXPCListenerEndpoint, + withReply reply: @escaping () -> Void + ) { + Task { + await Self.eventHandler.updateServiceEndpoint(endpoint: endpoint, withReply: reply) + } + } +} + +actor EventHandler { + var endpoint: NSXPCListenerEndpoint? + let launcher = ExtensionServiceLauncher() + var exitTask: Task? + + init() { + Task { await rescheduleExitTask() } + } + + func launchExtensionServiceIfNeeded( + withReply reply: @escaping (NSXPCListenerEndpoint?) -> Void + ) async { + rescheduleExitTask() + #if DEBUG + if let endpoint, !(await testXPCListenerEndpoint(endpoint)) { + self.endpoint = nil + } + reply(endpoint) + #else + if await launcher.isApplicationValid { + Logger.communicationBridge.info("Service app is still valid") + reply(endpoint) + } else { + endpoint = nil + await launcher.launch() + reply(nil) + } + #endif + } + + func quit(withReply reply: () -> Void) { + Logger.communicationBridge.info("Exiting service.") + listener.invalidate() + exit(0) + } + + func updateServiceEndpoint(endpoint: NSXPCListenerEndpoint, withReply reply: () -> Void) { + rescheduleExitTask() + self.endpoint = endpoint + reply() + } + + /// The bridge will kill itself when it's not used for a period. + /// It's fine that the bridge is killed because it will be launched again when needed. + private func rescheduleExitTask() { + exitTask?.cancel() + exitTask = Task { + #if DEBUG + try await Task.sleep(nanoseconds: 60_000_000_000) + Logger.communicationBridge.info("Exit will be called in release build.") + #else + try await Task.sleep(nanoseconds: 1_800_000_000_000) + Logger.communicationBridge.info("Exiting service.") + listener.invalidate() + exit(0) + #endif + } + } +} + +actor ExtensionServiceLauncher { + let appIdentifier = bundleIdentifierBase.appending(".ExtensionService") + let appURL = Bundle.main.bundleURL.appendingPathComponent( + "GitHub Copilot for Xcode Extension.app" + ) + var isLaunching: Bool = false + var application: NSRunningApplication? + var isApplicationValid: Bool { + guard let application else { return false } + if application.isTerminated { return false } + let identifier = application.processIdentifier + if let application = NSWorkspace.shared.runningApplications.first(where: { + $0.processIdentifier == identifier + }) { + Logger.communicationBridge.info( + "Service app found: \(application.processIdentifier) \(String(describing: application.bundleIdentifier))" + ) + return true + } + return false + } + + func launch() { + guard !isLaunching else { return } + isLaunching = true + + Logger.communicationBridge.info("Launching extension service app.") + + NSWorkspace.shared.openApplication( + at: appURL, + configuration: { + let configuration = NSWorkspace.OpenConfiguration() + configuration.createsNewApplicationInstance = false + configuration.addsToRecentItems = false + configuration.activates = false + return configuration + }() + ) { app, error in + if let error = error { + Logger.communicationBridge.error( + "Failed to launch extension service app: \(error)" + ) + } else { + Logger.communicationBridge.info( + "Finished launching extension service app." + ) + } + + self.application = app + self.isLaunching = false + } + } +} + diff --git a/CommunicationBridge/main.swift b/CommunicationBridge/main.swift new file mode 100644 index 0000000..0cac3a3 --- /dev/null +++ b/CommunicationBridge/main.swift @@ -0,0 +1,19 @@ +import AppKit +import Foundation + +class AppDelegate: NSObject, NSApplicationDelegate {} + +let bundleIdentifierBase = Bundle(url: Bundle.main.bundleURL.appendingPathComponent( + "GitHub Copilot For Xcode Extension.app" +))?.object(forInfoDictionaryKey: "BUNDLE_IDENTIFIER_BASE") as? String ?? "com.github.CopilotForXcode" + +let serviceIdentifier = bundleIdentifierBase + ".CommunicationBridge" +let appDelegate = AppDelegate() +let delegate = ServiceDelegate() +let listener = NSXPCListener(machServiceName: serviceIdentifier) +listener.delegate = delegate +listener.resume() +let app = NSApplication.shared +app.delegate = appDelegate +app.run() + diff --git a/Config.debug.xcconfig b/Config.debug.xcconfig new file mode 100644 index 0000000..63fae66 --- /dev/null +++ b/Config.debug.xcconfig @@ -0,0 +1,17 @@ +#include "Version.xcconfig" +SLASH = / // Otherwise a double slash is treated as a comment, even inside a quoted string + +HOST_APP_NAME = GitHub Copilot for Xcode Dev +BUNDLE_IDENTIFIER_BASE = dev.com.github.CopilotForXcode +SPARKLE_FEED_URL = https:$(SLASH)$(SLASH)githubcopilotide.z13.web.core.windows.net/appcast.xml +SPARKLE_PUBLIC_KEY = EGlZbKpzATrZFfzr142PrZbmQr5opzdC8urMU8+dKL0= +APPLICATION_SUPPORT_FOLDER = dev.com.github.CopilotForXcode +EXTENSION_BUNDLE_NAME = GitHub Copilot Dev +EXTENSION_BUNDLE_DISPLAY_NAME = GitHub Copilot Dev +EXTENSION_SERVICE_NAME = GitHub Copilot for Xcode Extension +COPILOT_DOCS_URL = https:$(SLASH)$(SLASH)docs.github.com/en/copilot +COPILOT_FORUM_URL = https:$(SLASH)$(SLASH)github.com/orgs/community/discussions/categories/copilot + +// see also target Configs + +#include? "Config.local.xcconfig" diff --git a/Config.xcconfig b/Config.xcconfig new file mode 100644 index 0000000..5fba347 --- /dev/null +++ b/Config.xcconfig @@ -0,0 +1,15 @@ +#include "Version.xcconfig" +SLASH = / // Otherwise a double slash is treated as a comment, even inside a quoted string + +HOST_APP_NAME = GitHub Copilot for Xcode +BUNDLE_IDENTIFIER_BASE = com.github.CopilotForXcode +SPARKLE_FEED_URL = https:$(SLASH)$(SLASH)githubcopilotide.z13.web.core.windows.net/appcast.xml +SPARKLE_PUBLIC_KEY = EGlZbKpzATrZFfzr142PrZbmQr5opzdC8urMU8+dKL0= +APPLICATION_SUPPORT_FOLDER = com.github.CopilotForXcode +EXTENSION_BUNDLE_NAME = GitHub Copilot +EXTENSION_BUNDLE_DISPLAY_NAME = GitHub Copilot +EXTENSION_SERVICE_NAME = GitHub Copilot for Xcode Extension +COPILOT_DOCS_URL = https:$(SLASH)$(SLASH)docs.github.com/en/copilot +COPILOT_FORUM_URL = https:$(SLASH)$(SLASH)github.com/orgs/community/discussions/categories/copilot + +// see also target Configs diff --git a/Copilot for Xcode.xcodeproj/project.pbxproj b/Copilot for Xcode.xcodeproj/project.pbxproj new file mode 100644 index 0000000..eb77086 --- /dev/null +++ b/Copilot for Xcode.xcodeproj/project.pbxproj @@ -0,0 +1,1358 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 56; + objects = { + +/* Begin PBXBuildFile section */ + 3ABBEA292C8B9FE100C61D61 /* copilot-language-server in Resources */ = {isa = PBXBuildFile; fileRef = 3ABBEA282C8B9FE100C61D61 /* copilot-language-server */; }; + 3ABBEA2B2C8BA00300C61D61 /* copilot-language-server-arm64 in Resources */ = {isa = PBXBuildFile; fileRef = 3ABBEA2A2C8BA00300C61D61 /* copilot-language-server-arm64 */; }; + 3ABBEA2C2C8BA00800C61D61 /* copilot-language-server-arm64 in Resources */ = {isa = PBXBuildFile; fileRef = 3ABBEA2A2C8BA00300C61D61 /* copilot-language-server-arm64 */; }; + 3ABBEA2D2C8BA00B00C61D61 /* copilot-language-server in Resources */ = {isa = PBXBuildFile; fileRef = 3ABBEA282C8B9FE100C61D61 /* copilot-language-server */; }; + 427C63282C6E868B000E557C /* OpenSettingsCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = 427C63272C6E868B000E557C /* OpenSettingsCommand.swift */; }; + 42888D512C66B10100DEF835 /* AuthStatusChecker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42888D502C66B10100DEF835 /* AuthStatusChecker.swift */; }; + C8009BFF2941C551007AA7E8 /* ToggleRealtimeSuggestionsCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8009BFE2941C551007AA7E8 /* ToggleRealtimeSuggestionsCommand.swift */; }; + C8009C032941C576007AA7E8 /* SyncTextSettingsCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8009C022941C576007AA7E8 /* SyncTextSettingsCommand.swift */; }; + C800DBB1294C624D00B04CAC /* PrefetchSuggestionsCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C800DBB0294C624D00B04CAC /* PrefetchSuggestionsCommand.swift */; }; + C80FFB962A95F58200704A25 /* AcceptPromptToCodeCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C80FFB952A95F58200704A25 /* AcceptPromptToCodeCommand.swift */; }; + C81291D72994FE6900196E12 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = C81291D52994FE6900196E12 /* Main.storyboard */; }; + C814588F2939EFDC00135263 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C814588E2939EFDC00135263 /* Cocoa.framework */; }; + C81458942939EFDC00135263 /* SourceEditorExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C81458932939EFDC00135263 /* SourceEditorExtension.swift */; }; + C81458962939EFDC00135263 /* GetSuggestionsCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C81458952939EFDC00135263 /* GetSuggestionsCommand.swift */; }; + C814589B2939EFDC00135263 /* Copilot.appex in Embed Foundation Extensions */ = {isa = PBXBuildFile; fileRef = C814588C2939EFDC00135263 /* Copilot.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + C8189B1A2938972F00C9DCDA /* App.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8189B192938972F00C9DCDA /* App.swift */; }; + C8189B1E2938973000C9DCDA /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C8189B1D2938973000C9DCDA /* Assets.xcassets */; }; + C8189B212938973000C9DCDA /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C8189B202938973000C9DCDA /* Preview Assets.xcassets */; }; + C8216B73298036EC00AD38C7 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8216B72298036EC00AD38C7 /* main.swift */; }; + C8216B782980370100AD38C7 /* ReloadLaunchAgent.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8216B772980370100AD38C7 /* ReloadLaunchAgent.swift */; }; + C8216B7D2980374300AD38C7 /* ArgumentParser in Frameworks */ = {isa = PBXBuildFile; productRef = C8216B7C2980374300AD38C7 /* ArgumentParser */; }; + C8216B802980378300AD38C7 /* Helper in Embed XPCService */ = {isa = PBXBuildFile; fileRef = C8216B70298036EC00AD38C7 /* Helper */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; + C828B27F2B1F7B4F00E7612A /* ExtensionPoint.appextensionpoint in Copy Extension Point */ = {isa = PBXBuildFile; fileRef = C828B27D2B1F241500E7612A /* ExtensionPoint.appextensionpoint */; }; + C8520301293C4D9000460097 /* Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8520300293C4D9000460097 /* Helpers.swift */; }; + C861A6A329E5503F005C41A3 /* PromptToCodeCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C861A6A229E5503F005C41A3 /* PromptToCodeCommand.swift */; }; + C861E6112994F6070056CB02 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C861E6102994F6070056CB02 /* AppDelegate.swift */; }; + C861E6152994F6080056CB02 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C861E6142994F6080056CB02 /* Assets.xcassets */; }; + C861E61E2994F6150056CB02 /* Service in Frameworks */ = {isa = PBXBuildFile; productRef = C861E61D2994F6150056CB02 /* Service */; }; + C861E6202994F63A0056CB02 /* ServiceDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C861E61F2994F6390056CB02 /* ServiceDelegate.swift */; }; + C86612F82A06AF74009197D9 /* HostApp in Frameworks */ = {isa = PBXBuildFile; productRef = C86612F72A06AF74009197D9 /* HostApp */; }; + C8738B662BE4D4B900609E7F /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8738B652BE4D4B900609E7F /* main.swift */; }; + C8738B6B2BE4D56F00609E7F /* ServiceDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8738B6A2BE4D56F00609E7F /* ServiceDelegate.swift */; }; + C8738B6F2BE4F7A600609E7F /* XPCShared in Frameworks */ = {isa = PBXBuildFile; productRef = C8738B6E2BE4F7A600609E7F /* XPCShared */; }; + C8738B712BE4F8B700609E7F /* XPCController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8738B702BE4F8B700609E7F /* XPCController.swift */; }; + C8738B7B2BE5363800609E7F /* SandboxedClientTesterApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8738B7A2BE5363800609E7F /* SandboxedClientTesterApp.swift */; }; + C8738B7D2BE5363800609E7F /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8738B7C2BE5363800609E7F /* ContentView.swift */; }; + C8738B7F2BE5363900609E7F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C8738B7E2BE5363900609E7F /* Assets.xcassets */; }; + C8738B822BE5363900609E7F /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C8738B812BE5363900609E7F /* Preview Assets.xcassets */; }; + C8738B882BE5365000609E7F /* Client in Frameworks */ = {isa = PBXBuildFile; productRef = C8738B872BE5365000609E7F /* Client */; }; + C8738B8A2BE540D000609E7F /* bridgeLaunchAgent.plist in Copy Launch Agent */ = {isa = PBXBuildFile; fileRef = C8738B6D2BE4F3E800609E7F /* bridgeLaunchAgent.plist */; }; + C8738B8B2BE540DD00609E7F /* CommunicationBridge in Embed XPCService */ = {isa = PBXBuildFile; fileRef = C8738B632BE4D4B900609E7F /* CommunicationBridge */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; + C8758E7029F04BFF00D29C1C /* CustomCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8758E6F29F04BFF00D29C1C /* CustomCommand.swift */; }; + C8758E7229F04CF100D29C1C /* SeparatorCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8758E7129F04CF100D29C1C /* SeparatorCommand.swift */; }; + C87B03A5293B261200C77EAE /* AcceptSuggestionCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C87B03A4293B261200C77EAE /* AcceptSuggestionCommand.swift */; }; + C87B03A7293B261900C77EAE /* RejectSuggestionCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C87B03A6293B261900C77EAE /* RejectSuggestionCommand.swift */; }; + C87B03A9293B262600C77EAE /* NextSuggestionCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C87B03A8293B262600C77EAE /* NextSuggestionCommand.swift */; }; + C87B03AB293B262E00C77EAE /* PreviousSuggestionCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C87B03AA293B262E00C77EAE /* PreviousSuggestionCommand.swift */; }; + C87B03AC293B2CF300C77EAE /* XcodeKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C81458902939EFDC00135263 /* XcodeKit.framework */; }; + C87B03AD293B2CF300C77EAE /* XcodeKit.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = C81458902939EFDC00135263 /* XcodeKit.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + C882175C294187EF00A22FD3 /* Client in Frameworks */ = {isa = PBXBuildFile; productRef = C882175B294187EF00A22FD3 /* Client */; }; + C89E75C32A46FB32000DD64F /* AppDelegate+Menu.swift in Sources */ = {isa = PBXBuildFile; fileRef = C89E75C22A46FB32000DD64F /* AppDelegate+Menu.swift */; }; + C8C8B60929AFA35F00034BEE /* GitHub Copilot for Xcode Extension.app in Embed XPCService */ = {isa = PBXBuildFile; fileRef = C861E60E2994F6070056CB02 /* GitHub Copilot for Xcode Extension.app */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; + C8DCF00029CE11D500FDDDD7 /* OpenChat.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8DCEFFF29CE11D500FDDDD7 /* OpenChat.swift */; }; + C8DD9CB12BC673F80036641C /* CloseIdleTabsCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8DD9CB02BC673F80036641C /* CloseIdleTabsCommand.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + C81291AF2994F92700196E12 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = C8189B0E2938972F00C9DCDA /* Project object */; + proxyType = 1; + remoteGlobalIDString = C861E60D2994F6070056CB02; + remoteInfo = ExtensionService; + }; + C81458992939EFDC00135263 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = C8189B0E2938972F00C9DCDA /* Project object */; + proxyType = 1; + remoteGlobalIDString = C814588B2939EFDC00135263; + remoteInfo = EditorExtension; + }; + C8216B7E2980377E00AD38C7 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = C8189B0E2938972F00C9DCDA /* Project object */; + proxyType = 1; + remoteGlobalIDString = C8216B6F298036EC00AD38C7; + remoteInfo = Helper; + }; + C8738B8C2BE540F900609E7F /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = C8189B0E2938972F00C9DCDA /* Project object */; + proxyType = 1; + remoteGlobalIDString = C8738B622BE4D4B900609E7F; + remoteInfo = CommunicationBridge; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + C814589F2939EFDC00135263 /* Embed Foundation Extensions */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 13; + files = ( + C814589B2939EFDC00135263 /* Copilot.appex in Embed Foundation Extensions */, + ); + name = "Embed Foundation Extensions"; + runOnlyForDeploymentPostprocessing = 0; + }; + C8216B6E298036EC00AD38C7 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + ); + runOnlyForDeploymentPostprocessing = 1; + }; + C828B27E2B1F7B3C00E7612A /* Copy Extension Point */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "$(EXTENSIONS_FOLDER_PATH)"; + dstSubfolderSpec = 16; + files = ( + C828B27F2B1F7B4F00E7612A /* ExtensionPoint.appextensionpoint in Copy Extension Point */, + ); + name = "Copy Extension Point"; + runOnlyForDeploymentPostprocessing = 0; + }; + C8520306293CF0EF00460097 /* Embed XPCService */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ../Applications; + dstSubfolderSpec = 6; + files = ( + C8738B8B2BE540DD00609E7F /* CommunicationBridge in Embed XPCService */, + C8216B802980378300AD38C7 /* Helper in Embed XPCService */, + C8C8B60929AFA35F00034BEE /* GitHub Copilot for Xcode Extension.app in Embed XPCService */, + ); + name = "Embed XPCService"; + runOnlyForDeploymentPostprocessing = 0; + }; + C8738B612BE4D4B900609E7F /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 12; + dstPath = ""; + dstSubfolderSpec = 16; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C87B03AE293B2CF300C77EAE /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + C87B03AD293B2CF300C77EAE /* XcodeKit.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; + C8C8B60829AFA32800034BEE /* Embed Service */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = "$(CONTENTS_FOLDER_PATH)/XPCServices"; + dstSubfolderSpec = 16; + files = ( + ); + name = "Embed Service"; + runOnlyForDeploymentPostprocessing = 0; + }; + C8F1032A2A7A38D200D28F4F /* Copy Launch Agent */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 12; + dstPath = Contents/Library/LaunchAgents; + dstSubfolderSpec = 1; + files = ( + C8738B8A2BE540D000609E7F /* bridgeLaunchAgent.plist in Copy Launch Agent */, + ); + name = "Copy Launch Agent"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 3ABBEA282C8B9FE100C61D61 /* copilot-language-server */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; name = "copilot-language-server"; path = "Server/node_modules/@github/copilot-language-server/native/darwin-x64/copilot-language-server"; sourceTree = SOURCE_ROOT; }; + 3ABBEA2A2C8BA00300C61D61 /* copilot-language-server-arm64 */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; name = "copilot-language-server-arm64"; path = "Server/node_modules/@github/copilot-language-server/native/darwin-arm64/copilot-language-server-arm64"; sourceTree = SOURCE_ROOT; }; + 427C63272C6E868B000E557C /* OpenSettingsCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenSettingsCommand.swift; sourceTree = ""; }; + 42888D502C66B10100DEF835 /* AuthStatusChecker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthStatusChecker.swift; sourceTree = ""; }; + C8009BFE2941C551007AA7E8 /* ToggleRealtimeSuggestionsCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ToggleRealtimeSuggestionsCommand.swift; sourceTree = ""; }; + C8009C022941C576007AA7E8 /* SyncTextSettingsCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SyncTextSettingsCommand.swift; sourceTree = ""; }; + C800DBB0294C624D00B04CAC /* PrefetchSuggestionsCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrefetchSuggestionsCommand.swift; sourceTree = ""; }; + C80FFB952A95F58200704A25 /* AcceptPromptToCodeCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AcceptPromptToCodeCommand.swift; sourceTree = ""; }; + C81291D52994FE6900196E12 /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = ""; }; + C81291D92994FE7900196E12 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + C814588C2939EFDC00135263 /* Copilot.appex */ = {isa = PBXFileReference; explicitFileType = "wrapper.app-extension"; includeInIndex = 0; path = Copilot.appex; sourceTree = BUILT_PRODUCTS_DIR; }; + C814588E2939EFDC00135263 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = System/Library/Frameworks/Cocoa.framework; sourceTree = SDKROOT; }; + C81458902939EFDC00135263 /* XcodeKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XcodeKit.framework; path = Library/Frameworks/XcodeKit.framework; sourceTree = DEVELOPER_DIR; }; + C81458932939EFDC00135263 /* SourceEditorExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SourceEditorExtension.swift; sourceTree = ""; }; + C81458952939EFDC00135263 /* GetSuggestionsCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetSuggestionsCommand.swift; sourceTree = ""; }; + C81458972939EFDC00135263 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + C81458982939EFDC00135263 /* EditorExtension.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = EditorExtension.entitlements; sourceTree = ""; }; + C81458AD293A009600135263 /* Config.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; }; + C81458AE293A009800135263 /* Config.debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Config.debug.xcconfig; sourceTree = ""; }; + C8189B162938972F00C9DCDA /* GitHub Copilot for Xcode Dev.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "GitHub Copilot for Xcode Dev.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + C8189B192938972F00C9DCDA /* App.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = App.swift; sourceTree = ""; }; + C8189B1D2938973000C9DCDA /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + C8189B202938973000C9DCDA /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + C8189B222938973000C9DCDA /* Copilot_for_Xcode.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Copilot_for_Xcode.entitlements; sourceTree = ""; }; + C8189B282938979000C9DCDA /* Core */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = Core; sourceTree = ""; }; + C81D181E2A1B509B006C1B70 /* Tool */ = {isa = PBXFileReference; lastKnownFileType = wrapper; path = Tool; sourceTree = ""; }; + C81E867D296FE4420026E908 /* Version.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Version.xcconfig; sourceTree = ""; }; + C8216B70298036EC00AD38C7 /* Helper */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = Helper; sourceTree = BUILT_PRODUCTS_DIR; }; + C8216B72298036EC00AD38C7 /* main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = ""; }; + C8216B772980370100AD38C7 /* ReloadLaunchAgent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReloadLaunchAgent.swift; sourceTree = ""; }; + C828B27D2B1F241500E7612A /* ExtensionPoint.appextensionpoint */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = ExtensionPoint.appextensionpoint; sourceTree = ""; }; + C8520300293C4D9000460097 /* Helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Helpers.swift; sourceTree = ""; }; + C8520308293D805800460097 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; + C861A6A229E5503F005C41A3 /* PromptToCodeCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PromptToCodeCommand.swift; sourceTree = ""; }; + C861E60E2994F6070056CB02 /* GitHub Copilot for Xcode Extension.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "GitHub Copilot for Xcode Extension.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + C861E6102994F6070056CB02 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + C861E6142994F6080056CB02 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + C861E6192994F6080056CB02 /* ExtensionService.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = ExtensionService.entitlements; sourceTree = ""; }; + C861E61F2994F6390056CB02 /* ServiceDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceDelegate.swift; sourceTree = ""; }; + C8738B632BE4D4B900609E7F /* CommunicationBridge */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = CommunicationBridge; sourceTree = BUILT_PRODUCTS_DIR; }; + C8738B652BE4D4B900609E7F /* main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = ""; }; + C8738B6A2BE4D56F00609E7F /* ServiceDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceDelegate.swift; sourceTree = ""; }; + C8738B6D2BE4F3E800609E7F /* bridgeLaunchAgent.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = bridgeLaunchAgent.plist; sourceTree = ""; }; + C8738B702BE4F8B700609E7F /* XPCController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = XPCController.swift; sourceTree = ""; }; + C8738B782BE5363800609E7F /* SandboxedClientTester.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SandboxedClientTester.app; sourceTree = BUILT_PRODUCTS_DIR; }; + C8738B7A2BE5363800609E7F /* SandboxedClientTesterApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SandboxedClientTesterApp.swift; sourceTree = ""; }; + C8738B7C2BE5363800609E7F /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + C8738B7E2BE5363900609E7F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + C8738B812BE5363900609E7F /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + C8738B832BE5363900609E7F /* SandboxedClientTester.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = SandboxedClientTester.entitlements; sourceTree = ""; }; + C8738B892BE5379E00609E7F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; + C8758E6F29F04BFF00D29C1C /* CustomCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomCommand.swift; sourceTree = ""; }; + C8758E7129F04CF100D29C1C /* SeparatorCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SeparatorCommand.swift; sourceTree = ""; }; + C87B03A3293B24AB00C77EAE /* Copilot-for-Xcode-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "Copilot-for-Xcode-Info.plist"; sourceTree = SOURCE_ROOT; }; + C87B03A4293B261200C77EAE /* AcceptSuggestionCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AcceptSuggestionCommand.swift; sourceTree = ""; }; + C87B03A6293B261900C77EAE /* RejectSuggestionCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RejectSuggestionCommand.swift; sourceTree = ""; }; + C87B03A8293B262600C77EAE /* NextSuggestionCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NextSuggestionCommand.swift; sourceTree = ""; }; + C87B03AA293B262E00C77EAE /* PreviousSuggestionCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreviousSuggestionCommand.swift; sourceTree = ""; }; + C887BC832965D96000931567 /* DEVELOPMENT.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = DEVELOPMENT.md; sourceTree = ""; }; + C89E75C22A46FB32000DD64F /* AppDelegate+Menu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AppDelegate+Menu.swift"; sourceTree = ""; }; + C8CD828229B88006008D044D /* TestPlan.xctestplan */ = {isa = PBXFileReference; lastKnownFileType = text; path = TestPlan.xctestplan; sourceTree = ""; }; + C8DCEFFF29CE11D500FDDDD7 /* OpenChat.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OpenChat.swift; sourceTree = ""; }; + C8DD9CB02BC673F80036641C /* CloseIdleTabsCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CloseIdleTabsCommand.swift; sourceTree = ""; }; + C8F103292A7A365000D28F4F /* launchAgent.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = launchAgent.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + C81458892939EFDC00135263 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C87B03AC293B2CF300C77EAE /* XcodeKit.framework in Frameworks */, + C814588F2939EFDC00135263 /* Cocoa.framework in Frameworks */, + C882175C294187EF00A22FD3 /* Client in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C8189B132938972F00C9DCDA /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C86612F82A06AF74009197D9 /* HostApp in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C8216B6D298036EC00AD38C7 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C8216B7D2980374300AD38C7 /* ArgumentParser in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C861E60B2994F6070056CB02 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C861E61E2994F6150056CB02 /* Service in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C8738B602BE4D4B900609E7F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C8738B6F2BE4F7A600609E7F /* XPCShared in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C8738B752BE5363800609E7F /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + C8738B882BE5365000609E7F /* Client in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + C814588D2939EFDC00135263 /* Frameworks */ = { + isa = PBXGroup; + children = ( + C814588E2939EFDC00135263 /* Cocoa.framework */, + C81458902939EFDC00135263 /* XcodeKit.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + C81458922939EFDC00135263 /* EditorExtension */ = { + isa = PBXGroup; + children = ( + C81458932939EFDC00135263 /* SourceEditorExtension.swift */, + C8758E7129F04CF100D29C1C /* SeparatorCommand.swift */, + C8520300293C4D9000460097 /* Helpers.swift */, + C81458952939EFDC00135263 /* GetSuggestionsCommand.swift */, + C87B03A4293B261200C77EAE /* AcceptSuggestionCommand.swift */, + C80FFB952A95F58200704A25 /* AcceptPromptToCodeCommand.swift */, + C87B03A6293B261900C77EAE /* RejectSuggestionCommand.swift */, + C87B03A8293B262600C77EAE /* NextSuggestionCommand.swift */, + C87B03AA293B262E00C77EAE /* PreviousSuggestionCommand.swift */, + C8009BFE2941C551007AA7E8 /* ToggleRealtimeSuggestionsCommand.swift */, + C8009C022941C576007AA7E8 /* SyncTextSettingsCommand.swift */, + C800DBB0294C624D00B04CAC /* PrefetchSuggestionsCommand.swift */, + C8758E6F29F04BFF00D29C1C /* CustomCommand.swift */, + C8DCEFFF29CE11D500FDDDD7 /* OpenChat.swift */, + C8DD9CB02BC673F80036641C /* CloseIdleTabsCommand.swift */, + C861A6A229E5503F005C41A3 /* PromptToCodeCommand.swift */, + C81458972939EFDC00135263 /* Info.plist */, + C81458982939EFDC00135263 /* EditorExtension.entitlements */, + 427C63272C6E868B000E557C /* OpenSettingsCommand.swift */, + ); + path = EditorExtension; + sourceTree = ""; + }; + C8189B0D2938972F00C9DCDA = { + isa = PBXGroup; + children = ( + C887BC832965D96000931567 /* DEVELOPMENT.md */, + C8520308293D805800460097 /* README.md */, + C8F103292A7A365000D28F4F /* launchAgent.plist */, + C8738B6D2BE4F3E800609E7F /* bridgeLaunchAgent.plist */, + C81E867D296FE4420026E908 /* Version.xcconfig */, + C81458AD293A009600135263 /* Config.xcconfig */, + C81458AE293A009800135263 /* Config.debug.xcconfig */, + C8CD828229B88006008D044D /* TestPlan.xctestplan */, + C828B27D2B1F241500E7612A /* ExtensionPoint.appextensionpoint */, + C81D181E2A1B509B006C1B70 /* Tool */, + C8189B282938979000C9DCDA /* Core */, + C8189B182938972F00C9DCDA /* Copilot for Xcode */, + C81458922939EFDC00135263 /* EditorExtension */, + C8216B71298036EC00AD38C7 /* Helper */, + C861E60F2994F6070056CB02 /* ExtensionService */, + C8738B642BE4D4B900609E7F /* CommunicationBridge */, + C8738B792BE5363800609E7F /* SandboxedClientTester */, + C814588D2939EFDC00135263 /* Frameworks */, + C8189B172938972F00C9DCDA /* Products */, + ); + sourceTree = ""; + }; + C8189B172938972F00C9DCDA /* Products */ = { + isa = PBXGroup; + children = ( + C8189B162938972F00C9DCDA /* GitHub Copilot for Xcode Dev.app */, + C814588C2939EFDC00135263 /* Copilot.appex */, + C8216B70298036EC00AD38C7 /* Helper */, + C861E60E2994F6070056CB02 /* GitHub Copilot for Xcode Extension.app */, + C8738B632BE4D4B900609E7F /* CommunicationBridge */, + C8738B782BE5363800609E7F /* SandboxedClientTester.app */, + ); + name = Products; + sourceTree = ""; + }; + C8189B182938972F00C9DCDA /* Copilot for Xcode */ = { + isa = PBXGroup; + children = ( + 3ABBEA2A2C8BA00300C61D61 /* copilot-language-server-arm64 */, + 3ABBEA282C8B9FE100C61D61 /* copilot-language-server */, + C87B03A3293B24AB00C77EAE /* Copilot-for-Xcode-Info.plist */, + C8189B192938972F00C9DCDA /* App.swift */, + C8189B1D2938973000C9DCDA /* Assets.xcassets */, + C8189B222938973000C9DCDA /* Copilot_for_Xcode.entitlements */, + C8189B1F2938973000C9DCDA /* Preview Content */, + ); + path = "Copilot for Xcode"; + sourceTree = ""; + }; + C8189B1F2938973000C9DCDA /* Preview Content */ = { + isa = PBXGroup; + children = ( + C8189B202938973000C9DCDA /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; + C8216B71298036EC00AD38C7 /* Helper */ = { + isa = PBXGroup; + children = ( + C8216B72298036EC00AD38C7 /* main.swift */, + C8216B772980370100AD38C7 /* ReloadLaunchAgent.swift */, + ); + path = Helper; + sourceTree = ""; + }; + C861E60F2994F6070056CB02 /* ExtensionService */ = { + isa = PBXGroup; + children = ( + C81291D92994FE7900196E12 /* Info.plist */, + C861E61F2994F6390056CB02 /* ServiceDelegate.swift */, + C861E6102994F6070056CB02 /* AppDelegate.swift */, + C89E75C22A46FB32000DD64F /* AppDelegate+Menu.swift */, + C8738B702BE4F8B700609E7F /* XPCController.swift */, + C81291D52994FE6900196E12 /* Main.storyboard */, + C861E6142994F6080056CB02 /* Assets.xcassets */, + C861E6192994F6080056CB02 /* ExtensionService.entitlements */, + 42888D502C66B10100DEF835 /* AuthStatusChecker.swift */, + ); + path = ExtensionService; + sourceTree = ""; + }; + C8738B642BE4D4B900609E7F /* CommunicationBridge */ = { + isa = PBXGroup; + children = ( + C8738B652BE4D4B900609E7F /* main.swift */, + C8738B6A2BE4D56F00609E7F /* ServiceDelegate.swift */, + ); + path = CommunicationBridge; + sourceTree = ""; + }; + C8738B792BE5363800609E7F /* SandboxedClientTester */ = { + isa = PBXGroup; + children = ( + C8738B892BE5379E00609E7F /* Info.plist */, + C8738B7A2BE5363800609E7F /* SandboxedClientTesterApp.swift */, + C8738B7C2BE5363800609E7F /* ContentView.swift */, + C8738B7E2BE5363900609E7F /* Assets.xcassets */, + C8738B832BE5363900609E7F /* SandboxedClientTester.entitlements */, + C8738B802BE5363900609E7F /* Preview Content */, + ); + path = SandboxedClientTester; + sourceTree = ""; + }; + C8738B802BE5363900609E7F /* Preview Content */ = { + isa = PBXGroup; + children = ( + C8738B812BE5363900609E7F /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + C814588B2939EFDC00135263 /* EditorExtension */ = { + isa = PBXNativeTarget; + buildConfigurationList = C814589C2939EFDC00135263 /* Build configuration list for PBXNativeTarget "EditorExtension" */; + buildPhases = ( + C81458882939EFDC00135263 /* Sources */, + C81458892939EFDC00135263 /* Frameworks */, + C814588A2939EFDC00135263 /* Resources */, + C87B03AE293B2CF300C77EAE /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = EditorExtension; + packageProductDependencies = ( + C882175B294187EF00A22FD3 /* Client */, + ); + productName = EditorExtension; + productReference = C814588C2939EFDC00135263 /* Copilot.appex */; + productType = "com.apple.product-type.xcode-extension"; + }; + C8189B152938972F00C9DCDA /* Copilot for Xcode */ = { + isa = PBXNativeTarget; + buildConfigurationList = C8189B252938973000C9DCDA /* Build configuration list for PBXNativeTarget "Copilot for Xcode" */; + buildPhases = ( + C8189B122938972F00C9DCDA /* Sources */, + C8189B132938972F00C9DCDA /* Frameworks */, + C8189B142938972F00C9DCDA /* Resources */, + C814589F2939EFDC00135263 /* Embed Foundation Extensions */, + C8520306293CF0EF00460097 /* Embed XPCService */, + C8C8B60829AFA32800034BEE /* Embed Service */, + C8F1032A2A7A38D200D28F4F /* Copy Launch Agent */, + ); + buildRules = ( + ); + dependencies = ( + C8738B8D2BE540F900609E7F /* PBXTargetDependency */, + C81291B02994F92700196E12 /* PBXTargetDependency */, + C8216B7F2980377E00AD38C7 /* PBXTargetDependency */, + C814589A2939EFDC00135263 /* PBXTargetDependency */, + ); + name = "Copilot for Xcode"; + packageProductDependencies = ( + C86612F72A06AF74009197D9 /* HostApp */, + ); + productName = "Copilot for Xcode"; + productReference = C8189B162938972F00C9DCDA /* GitHub Copilot for Xcode Dev.app */; + productType = "com.apple.product-type.application"; + }; + C8216B6F298036EC00AD38C7 /* Helper */ = { + isa = PBXNativeTarget; + buildConfigurationList = C8216B74298036EC00AD38C7 /* Build configuration list for PBXNativeTarget "Helper" */; + buildPhases = ( + C8216B6C298036EC00AD38C7 /* Sources */, + C8216B6D298036EC00AD38C7 /* Frameworks */, + C8216B6E298036EC00AD38C7 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Helper; + packageProductDependencies = ( + C8216B7C2980374300AD38C7 /* ArgumentParser */, + ); + productName = Helper; + productReference = C8216B70298036EC00AD38C7 /* Helper */; + productType = "com.apple.product-type.tool"; + }; + C861E60D2994F6070056CB02 /* ExtensionService */ = { + isa = PBXNativeTarget; + buildConfigurationList = C861E61A2994F6080056CB02 /* Build configuration list for PBXNativeTarget "ExtensionService" */; + buildPhases = ( + C861E60A2994F6070056CB02 /* Sources */, + C861E60B2994F6070056CB02 /* Frameworks */, + 3A60421A2C8955710006B34C /* ShellScript */, + C861E60C2994F6070056CB02 /* Resources */, + C828B27E2B1F7B3C00E7612A /* Copy Extension Point */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ExtensionService; + packageProductDependencies = ( + C861E61D2994F6150056CB02 /* Service */, + ); + productName = ExtensionService; + productReference = C861E60E2994F6070056CB02 /* GitHub Copilot for Xcode Extension.app */; + productType = "com.apple.product-type.application"; + }; + C8738B622BE4D4B900609E7F /* CommunicationBridge */ = { + isa = PBXNativeTarget; + buildConfigurationList = C8738B672BE4D4B900609E7F /* Build configuration list for PBXNativeTarget "CommunicationBridge" */; + buildPhases = ( + C8738B5F2BE4D4B900609E7F /* Sources */, + C8738B602BE4D4B900609E7F /* Frameworks */, + C8738B612BE4D4B900609E7F /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = CommunicationBridge; + packageProductDependencies = ( + C8738B6E2BE4F7A600609E7F /* XPCShared */, + ); + productName = CommunicationBridge; + productReference = C8738B632BE4D4B900609E7F /* CommunicationBridge */; + productType = "com.apple.product-type.tool"; + }; + C8738B772BE5363800609E7F /* SandboxedClientTester */ = { + isa = PBXNativeTarget; + buildConfigurationList = C8738B842BE5363900609E7F /* Build configuration list for PBXNativeTarget "SandboxedClientTester" */; + buildPhases = ( + C8738B742BE5363800609E7F /* Sources */, + C8738B752BE5363800609E7F /* Frameworks */, + C8738B762BE5363800609E7F /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SandboxedClientTester; + packageProductDependencies = ( + C8738B872BE5365000609E7F /* Client */, + ); + productName = SandboxedClientTester; + productReference = C8738B782BE5363800609E7F /* SandboxedClientTester.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + C8189B0E2938972F00C9DCDA /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1520; + LastUpgradeCheck = 1410; + TargetAttributes = { + C814588B2939EFDC00135263 = { + CreatedOnToolsVersion = 14.1; + }; + C8189B152938972F00C9DCDA = { + CreatedOnToolsVersion = 14.1; + }; + C8216B6F298036EC00AD38C7 = { + CreatedOnToolsVersion = 14.1; + }; + C861E60D2994F6070056CB02 = { + CreatedOnToolsVersion = 14.2; + }; + C8738B622BE4D4B900609E7F = { + CreatedOnToolsVersion = 15.2; + }; + C8738B772BE5363800609E7F = { + CreatedOnToolsVersion = 15.2; + }; + }; + }; + buildConfigurationList = C8189B112938972F00C9DCDA /* Build configuration list for PBXProject "Copilot for Xcode" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = C8189B0D2938972F00C9DCDA; + packageReferences = ( + C8216B792980373800AD38C7 /* XCRemoteSwiftPackageReference "swift-argument-parser" */, + ); + productRefGroup = C8189B172938972F00C9DCDA /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + C8189B152938972F00C9DCDA /* Copilot for Xcode */, + C814588B2939EFDC00135263 /* EditorExtension */, + C8216B6F298036EC00AD38C7 /* Helper */, + C861E60D2994F6070056CB02 /* ExtensionService */, + C8738B622BE4D4B900609E7F /* CommunicationBridge */, + C8738B772BE5363800609E7F /* SandboxedClientTester */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + C814588A2939EFDC00135263 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C8189B142938972F00C9DCDA /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C8189B212938973000C9DCDA /* Preview Assets.xcassets in Resources */, + C8189B1E2938973000C9DCDA /* Assets.xcassets in Resources */, + 3ABBEA292C8B9FE100C61D61 /* copilot-language-server in Resources */, + 3ABBEA2B2C8BA00300C61D61 /* copilot-language-server-arm64 in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C861E60C2994F6070056CB02 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3ABBEA2C2C8BA00800C61D61 /* copilot-language-server-arm64 in Resources */, + C861E6152994F6080056CB02 /* Assets.xcassets in Resources */, + 3ABBEA2D2C8BA00B00C61D61 /* copilot-language-server in Resources */, + C81291D72994FE6900196E12 /* Main.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C8738B762BE5363800609E7F /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C8738B822BE5363900609E7F /* Preview Assets.xcassets in Resources */, + C8738B7F2BE5363900609E7F /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 3A60421A2C8955710006B34C /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "$(SRCROOT)/Server/package.json", + "$(SRCROOT)/Server/package-lock.json", + ); + outputFileListPaths = ( + ); + outputPaths = ( + "$(SRCROOT)/Server/node_modules/@github/copilot-language-server/native/darwin-x64/copilot-language-server", + "$(SRCROOT)/Server/node_modules/@github/copilot-language-server/native/darwin-arm64/copilot-language-server-arm64", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "npm -C Server install\ncp Server/node_modules/@github/copilot-language-server/native/darwin-arm64/copilot-language-server Server/node_modules/@github/copilot-language-server/native/darwin-arm64/copilot-language-server-arm64\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + C81458882939EFDC00135263 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C8DCF00029CE11D500FDDDD7 /* OpenChat.swift in Sources */, + C81458942939EFDC00135263 /* SourceEditorExtension.swift in Sources */, + C8DD9CB12BC673F80036641C /* CloseIdleTabsCommand.swift in Sources */, + C8758E7029F04BFF00D29C1C /* CustomCommand.swift in Sources */, + C8758E7229F04CF100D29C1C /* SeparatorCommand.swift in Sources */, + C861A6A329E5503F005C41A3 /* PromptToCodeCommand.swift in Sources */, + C8520301293C4D9000460097 /* Helpers.swift in Sources */, + C8009BFF2941C551007AA7E8 /* ToggleRealtimeSuggestionsCommand.swift in Sources */, + C80FFB962A95F58200704A25 /* AcceptPromptToCodeCommand.swift in Sources */, + 427C63282C6E868B000E557C /* OpenSettingsCommand.swift in Sources */, + C87B03A5293B261200C77EAE /* AcceptSuggestionCommand.swift in Sources */, + C87B03A9293B262600C77EAE /* NextSuggestionCommand.swift in Sources */, + C87B03AB293B262E00C77EAE /* PreviousSuggestionCommand.swift in Sources */, + C87B03A7293B261900C77EAE /* RejectSuggestionCommand.swift in Sources */, + C8009C032941C576007AA7E8 /* SyncTextSettingsCommand.swift in Sources */, + C800DBB1294C624D00B04CAC /* PrefetchSuggestionsCommand.swift in Sources */, + C81458962939EFDC00135263 /* GetSuggestionsCommand.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C8189B122938972F00C9DCDA /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C8189B1A2938972F00C9DCDA /* App.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C8216B6C298036EC00AD38C7 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C8216B73298036EC00AD38C7 /* main.swift in Sources */, + C8216B782980370100AD38C7 /* ReloadLaunchAgent.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C861E60A2994F6070056CB02 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C89E75C32A46FB32000DD64F /* AppDelegate+Menu.swift in Sources */, + C8738B712BE4F8B700609E7F /* XPCController.swift in Sources */, + C861E6202994F63A0056CB02 /* ServiceDelegate.swift in Sources */, + 42888D512C66B10100DEF835 /* AuthStatusChecker.swift in Sources */, + C861E6112994F6070056CB02 /* AppDelegate.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C8738B5F2BE4D4B900609E7F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C8738B6B2BE4D56F00609E7F /* ServiceDelegate.swift in Sources */, + C8738B662BE4D4B900609E7F /* main.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + C8738B742BE5363800609E7F /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + C8738B7D2BE5363800609E7F /* ContentView.swift in Sources */, + C8738B7B2BE5363800609E7F /* SandboxedClientTesterApp.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + C81291B02994F92700196E12 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = C861E60D2994F6070056CB02 /* ExtensionService */; + targetProxy = C81291AF2994F92700196E12 /* PBXContainerItemProxy */; + }; + C814589A2939EFDC00135263 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = C814588B2939EFDC00135263 /* EditorExtension */; + targetProxy = C81458992939EFDC00135263 /* PBXContainerItemProxy */; + }; + C8216B7F2980377E00AD38C7 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = C8216B6F298036EC00AD38C7 /* Helper */; + targetProxy = C8216B7E2980377E00AD38C7 /* PBXContainerItemProxy */; + }; + C8738B8D2BE540F900609E7F /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = C8738B622BE4D4B900609E7F /* CommunicationBridge */; + targetProxy = C8738B8C2BE540F900609E7F /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + C814589D2939EFDC00135263 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = EditorExtension/EditorExtension.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = "$(APP_BUILD)"; + DEVELOPMENT_TEAM = VEKTX9H2N7; + ENABLE_HARDENED_RUNTIME = YES; + INFOPLIST_FILE = EditorExtension/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = "$(EXTESNION_BUNDLE_NAME)"; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@executable_path/../../../../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 12.0; + MARKETING_VERSION = "$(APP_VERSION)"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).EditorExtension"; + PRODUCT_NAME = Copilot; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + C814589E2939EFDC00135263 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_ENTITLEMENTS = EditorExtension/EditorExtension.entitlements; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application"; + CODE_SIGN_STYLE = Manual; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = "$(APP_BUILD)"; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=macosx*]" = VEKTX9H2N7; + ENABLE_HARDENED_RUNTIME = YES; + INFOPLIST_FILE = EditorExtension/Info.plist; + INFOPLIST_KEY_CFBundleDisplayName = "$(EXTESNION_BUNDLE_NAME)"; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@executable_path/../../../../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 12.0; + MARKETING_VERSION = "$(APP_VERSION)"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).EditorExtension"; + PRODUCT_NAME = Copilot; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + C8189B232938973000C9DCDA /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C81458AE293A009800135263 /* Config.debug.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + 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; + 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 = 12.0; + 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; + }; + C8189B242938973000C9DCDA /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = C81458AD293A009600135263 /* Config.xcconfig */; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + 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; + 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 = 12.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + C8189B262938973000C9DCDA /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = "Copilot for Xcode/Copilot_for_Xcode.entitlements"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = "$(APP_BUILD)"; + DEVELOPMENT_ASSET_PATHS = "\"Copilot for Xcode/Preview Content\""; + DEVELOPMENT_TEAM = VEKTX9H2N7; + ENABLE_HARDENED_RUNTIME = YES; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "Copilot-for-Xcode-Info.plist"; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 12.0; + MARKETING_VERSION = "$(APP_VERSION)"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE)"; + PRODUCT_MODULE_NAME = Copilot_for_Xcode; + PRODUCT_NAME = "$(HOST_APP_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + C8189B272938973000C9DCDA /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = "Copilot for Xcode/Copilot_for_Xcode.entitlements"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application"; + CODE_SIGN_STYLE = Manual; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = "$(APP_BUILD)"; + DEVELOPMENT_ASSET_PATHS = "\"Copilot for Xcode/Preview Content\""; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=macosx*]" = VEKTX9H2N7; + ENABLE_HARDENED_RUNTIME = YES; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = "Copilot-for-Xcode-Info.plist"; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 12.0; + MARKETING_VERSION = "$(APP_VERSION)"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE)"; + PRODUCT_NAME = "$(HOST_APP_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + C8216B75298036EC00AD38C7 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = VEKTX9H2N7; + ENABLE_HARDENED_RUNTIME = YES; + MACOSX_DEPLOYMENT_TARGET = 12.0; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + C8216B76298036EC00AD38C7 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application"; + CODE_SIGN_STYLE = Manual; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=macosx*]" = VEKTX9H2N7; + ENABLE_HARDENED_RUNTIME = YES; + MACOSX_DEPLOYMENT_TARGET = 12.0; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + C861E61B2994F6080056CB02 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = ExtensionService/ExtensionService.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = "$(APP_BUILD)"; + DEVELOPMENT_TEAM = VEKTX9H2N7; + ENABLE_HARDENED_RUNTIME = YES; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = ExtensionService/Info.plist; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INFOPLIST_KEY_NSMainStoryboardFile = Main; + INFOPLIST_KEY_NSPrincipalClass = NSApplication; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 12.0; + MARKETING_VERSION = "$(APP_VERSION)"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).ExtensionService"; + PRODUCT_NAME = "$(EXTENSION_SERVICE_NAME)"; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + C861E61C2994F6080056CB02 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = ExtensionService/ExtensionService.entitlements; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application"; + CODE_SIGN_STYLE = Manual; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = "$(APP_BUILD)"; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=macosx*]" = VEKTX9H2N7; + ENABLE_HARDENED_RUNTIME = YES; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = ExtensionService/Info.plist; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + INFOPLIST_KEY_NSMainStoryboardFile = Main; + INFOPLIST_KEY_NSPrincipalClass = NSApplication; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 12.0; + MARKETING_VERSION = "$(APP_VERSION)"; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).ExtensionService"; + PRODUCT_NAME = "$(EXTENSION_SERVICE_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + C8738B682BE4D4B900609E7F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = VEKTX9H2N7; + ENABLE_HARDENED_RUNTIME = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 12.0; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).CommunicationBridge"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SKIP_INSTALL = YES; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + C8738B692BE4D4B900609E7F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Developer ID Application"; + CODE_SIGN_STYLE = Manual; + DEVELOPMENT_TEAM = ""; + "DEVELOPMENT_TEAM[sdk=macosx*]" = VEKTX9H2N7; + ENABLE_HARDENED_RUNTIME = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 12.0; + PRODUCT_BUNDLE_IDENTIFIER = "$(BUNDLE_IDENTIFIER_BASE).CommunicationBridge"; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; + C8738B852BE5363900609E7F /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = SandboxedClientTester/SandboxedClientTester.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_ASSET_PATHS = "\"SandboxedClientTester/Preview Content\""; + DEVELOPMENT_TEAM = VEKTX9H2N7; + ENABLE_HARDENED_RUNTIME = YES; + ENABLE_PREVIEWS = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = SandboxedClientTester/Info.plist; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 14.2; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.github.CopilotForXcode.SandboxedClientTester; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + C8738B862BE5363900609E7F /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_ENTITLEMENTS = SandboxedClientTester/SandboxedClientTester.entitlements; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_ASSET_PATHS = "\"SandboxedClientTester/Preview Content\""; + DEVELOPMENT_TEAM = VEKTX9H2N7; + ENABLE_HARDENED_RUNTIME = YES; + ENABLE_PREVIEWS = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_FILE = SandboxedClientTester/Info.plist; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MACOSX_DEPLOYMENT_TARGET = 14.2; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = com.github.CopilotForXcode.SandboxedClientTester; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + C814589C2939EFDC00135263 /* Build configuration list for PBXNativeTarget "EditorExtension" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C814589D2939EFDC00135263 /* Debug */, + C814589E2939EFDC00135263 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C8189B112938972F00C9DCDA /* Build configuration list for PBXProject "Copilot for Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C8189B232938973000C9DCDA /* Debug */, + C8189B242938973000C9DCDA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C8189B252938973000C9DCDA /* Build configuration list for PBXNativeTarget "Copilot for Xcode" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C8189B262938973000C9DCDA /* Debug */, + C8189B272938973000C9DCDA /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C8216B74298036EC00AD38C7 /* Build configuration list for PBXNativeTarget "Helper" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C8216B75298036EC00AD38C7 /* Debug */, + C8216B76298036EC00AD38C7 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C861E61A2994F6080056CB02 /* Build configuration list for PBXNativeTarget "ExtensionService" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C861E61B2994F6080056CB02 /* Debug */, + C861E61C2994F6080056CB02 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C8738B672BE4D4B900609E7F /* Build configuration list for PBXNativeTarget "CommunicationBridge" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C8738B682BE4D4B900609E7F /* Debug */, + C8738B692BE4D4B900609E7F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C8738B842BE5363900609E7F /* Build configuration list for PBXNativeTarget "SandboxedClientTester" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C8738B852BE5363900609E7F /* Debug */, + C8738B862BE5363900609E7F /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + +/* Begin XCRemoteSwiftPackageReference section */ + C8216B792980373800AD38C7 /* XCRemoteSwiftPackageReference "swift-argument-parser" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/apple/swift-argument-parser.git"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 1.0.0; + }; + }; +/* End XCRemoteSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + C8216B7C2980374300AD38C7 /* ArgumentParser */ = { + isa = XCSwiftPackageProductDependency; + package = C8216B792980373800AD38C7 /* XCRemoteSwiftPackageReference "swift-argument-parser" */; + productName = ArgumentParser; + }; + C861E61D2994F6150056CB02 /* Service */ = { + isa = XCSwiftPackageProductDependency; + productName = Service; + }; + C86612F72A06AF74009197D9 /* HostApp */ = { + isa = XCSwiftPackageProductDependency; + productName = HostApp; + }; + C8738B6E2BE4F7A600609E7F /* XPCShared */ = { + isa = XCSwiftPackageProductDependency; + productName = XPCShared; + }; + C8738B872BE5365000609E7F /* Client */ = { + isa = XCSwiftPackageProductDependency; + productName = Client; + }; + C882175B294187EF00A22FD3 /* Client */ = { + isa = XCSwiftPackageProductDependency; + productName = Client; + }; +/* End XCSwiftPackageProductDependency section */ + }; + rootObject = C8189B0E2938972F00C9DCDA /* Project object */; +} diff --git a/Copilot for Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Copilot for Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/Copilot for Xcode.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Copilot for Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Copilot for Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/Copilot for Xcode.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Copilot for Xcode.xcodeproj/xcshareddata/xcschemes/CommunicationBridge.xcscheme b/Copilot for Xcode.xcodeproj/xcshareddata/xcschemes/CommunicationBridge.xcscheme new file mode 100644 index 0000000..578b11e --- /dev/null +++ b/Copilot for Xcode.xcodeproj/xcshareddata/xcschemes/CommunicationBridge.xcscheme @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Copilot for Xcode.xcodeproj/xcshareddata/xcschemes/Copilot for Xcode.xcscheme b/Copilot for Xcode.xcodeproj/xcshareddata/xcschemes/Copilot for Xcode.xcscheme new file mode 100644 index 0000000..e26142f --- /dev/null +++ b/Copilot for Xcode.xcodeproj/xcshareddata/xcschemes/Copilot for Xcode.xcscheme @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Copilot for Xcode.xcodeproj/xcshareddata/xcschemes/EditorExtension.xcscheme b/Copilot for Xcode.xcodeproj/xcshareddata/xcschemes/EditorExtension.xcscheme new file mode 100644 index 0000000..4844b10 --- /dev/null +++ b/Copilot for Xcode.xcodeproj/xcshareddata/xcschemes/EditorExtension.xcscheme @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Copilot for Xcode.xcodeproj/xcshareddata/xcschemes/ExtensionService.xcscheme b/Copilot for Xcode.xcodeproj/xcshareddata/xcschemes/ExtensionService.xcscheme new file mode 100644 index 0000000..c0e9b79 --- /dev/null +++ b/Copilot for Xcode.xcodeproj/xcshareddata/xcschemes/ExtensionService.xcscheme @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Copilot for Xcode.xcodeproj/xcshareddata/xcschemes/SandboxedClientTester.xcscheme b/Copilot for Xcode.xcodeproj/xcshareddata/xcschemes/SandboxedClientTester.xcscheme new file mode 100644 index 0000000..41fadd0 --- /dev/null +++ b/Copilot for Xcode.xcodeproj/xcshareddata/xcschemes/SandboxedClientTester.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Copilot for Xcode.xcworkspace/contents.xcworkspacedata b/Copilot for Xcode.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..7fb7f27 --- /dev/null +++ b/Copilot for Xcode.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Copilot for Xcode.xcworkspace/xcshareddata/IDETemplateMacros.plist b/Copilot for Xcode.xcworkspace/xcshareddata/IDETemplateMacros.plist new file mode 100644 index 0000000..ea58bd0 --- /dev/null +++ b/Copilot for Xcode.xcworkspace/xcshareddata/IDETemplateMacros.plist @@ -0,0 +1,8 @@ + + + + + FILEHEADER + TODO: Remove this comment + + diff --git a/Copilot for Xcode.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Copilot for Xcode.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/Copilot for Xcode.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Copilot for Xcode.xcworkspace/xcshareddata/swiftpm/Package.resolved b/Copilot for Xcode.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 0000000..9d2675d --- /dev/null +++ b/Copilot for Xcode.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,284 @@ +{ + "pins" : [ + { + "identity" : "cgeventoverride", + "kind" : "remoteSourceControl", + "location" : "https://github.com/devm33/CGEventOverride", + "state" : { + "revision" : "571d36d63e68fac30e4a350600cd186697936f74", + "version" : "1.2.3" + } + }, + { + "identity" : "codablewrappers", + "kind" : "remoteSourceControl", + "location" : "https://github.com/GottaGetSwifty/CodableWrappers", + "state" : { + "revision" : "4eb46a4c656333e8514db8aad204445741de7d40", + "version" : "2.0.7" + } + }, + { + "identity" : "combine-schedulers", + "kind" : "remoteSourceControl", + "location" : "https://github.com/pointfreeco/combine-schedulers", + "state" : { + "revision" : "9dc9cbe4bc45c65164fa653a563d8d8db61b09bb", + "version" : "1.0.0" + } + }, + { + "identity" : "copilotforxcodekit", + "kind" : "remoteSourceControl", + "location" : "https://github.com/devm33/CopilotForXcodeKit", + "state" : { + "branch" : "main", + "revision" : "1f98fe9795766d3e37b5ae3d2e5f69f9b0af308b" + } + }, + { + "identity" : "fseventswrapper", + "kind" : "remoteSourceControl", + "location" : "https://github.com/Frizlab/FSEventsWrapper", + "state" : { + "revision" : "e0c59a2ce2775e5f6642da6d19207445f10112d0", + "version" : "1.0.2" + } + }, + { + "identity" : "glob", + "kind" : "remoteSourceControl", + "location" : "https://github.com/Bouke/Glob", + "state" : { + "revision" : "deda6e163d2ff2a8d7e138e2c3326dbd71157faf", + "version" : "1.0.5" + } + }, + { + "identity" : "highlightr", + "kind" : "remoteSourceControl", + "location" : "https://github.com/devm33/Highlightr", + "state" : { + "branch" : "master", + "revision" : "81d8c8b3733939bf5d9e52cd6318f944cc033bd2" + } + }, + { + "identity" : "jsonrpc", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ChimeHQ/JSONRPC", + "state" : { + "revision" : "5da978702aece6ba5c7879b0d253c180d61e4ef3", + "version" : "0.6.0" + } + }, + { + "identity" : "keyboardshortcuts", + "kind" : "remoteSourceControl", + "location" : "https://github.com/devm33/KeyboardShortcuts", + "state" : { + "branch" : "main", + "revision" : "65fb410b0c6d3ed96623b460bab31ffce5f48b4d" + } + }, + { + "identity" : "languageclient", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ChimeHQ/LanguageClient", + "state" : { + "revision" : "f0198ee0a102d266078f7d9c28f086f2989f988a", + "version" : "0.3.1" + } + }, + { + "identity" : "languageserverprotocol", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ChimeHQ/LanguageServerProtocol", + "state" : { + "revision" : "6e97f943dc024307c5524a80bd33cdbd1cc621de", + "version" : "0.8.0" + } + }, + { + "identity" : "networkimage", + "kind" : "remoteSourceControl", + "location" : "https://github.com/gonzalezreal/NetworkImage", + "state" : { + "revision" : "7aff8d1b31148d32c5933d75557d42f6323ee3d1", + "version" : "6.0.0" + } + }, + { + "identity" : "operationplus", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ChimeHQ/OperationPlus", + "state" : { + "revision" : "1340f95dce3e93d742497d88db18f8676f4badf4", + "version" : "1.6.0" + } + }, + { + "identity" : "processenv", + "kind" : "remoteSourceControl", + "location" : "https://github.com/ChimeHQ/ProcessEnv", + "state" : { + "revision" : "29487b6581bb785c372c611c943541ef4309d051", + "version" : "0.3.1" + } + }, + { + "identity" : "sparkle", + "kind" : "remoteSourceControl", + "location" : "https://github.com/sparkle-project/Sparkle", + "state" : { + "revision" : "87e4fcbac39912f9cdb9a9acf205cad60e1ca3bc", + "version" : "2.4.2" + } + }, + { + "identity" : "swift-argument-parser", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-argument-parser.git", + "state" : { + "revision" : "fee6933f37fde9a5e12a1e4aeaa93fe60116ff2a", + "version" : "1.2.2" + } + }, + { + "identity" : "swift-async-algorithms", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-async-algorithms", + "state" : { + "revision" : "da4e36f86544cdf733a40d59b3a2267e3a7bbf36", + "version" : "1.0.0" + } + }, + { + "identity" : "swift-case-paths", + "kind" : "remoteSourceControl", + "location" : "https://github.com/pointfreeco/swift-case-paths", + "state" : { + "revision" : "8d712376c99fc0267aa0e41fea732babe365270a", + "version" : "1.3.3" + } + }, + { + "identity" : "swift-clocks", + "kind" : "remoteSourceControl", + "location" : "https://github.com/pointfreeco/swift-clocks", + "state" : { + "revision" : "a8421d68068d8f45fbceb418fbf22c5dad4afd33", + "version" : "1.0.2" + } + }, + { + "identity" : "swift-collections", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-collections", + "state" : { + "revision" : "94cf62b3ba8d4bed62680a282d4c25f9c63c2efb", + "version" : "1.1.0" + } + }, + { + "identity" : "swift-composable-architecture", + "kind" : "remoteSourceControl", + "location" : "https://github.com/pointfreeco/swift-composable-architecture", + "state" : { + "revision" : "433a23118f739078644ebeb4009e23d307af694a", + "version" : "1.10.4" + } + }, + { + "identity" : "swift-concurrency-extras", + "kind" : "remoteSourceControl", + "location" : "https://github.com/pointfreeco/swift-concurrency-extras", + "state" : { + "revision" : "bb5059bde9022d69ac516803f4f227d8ac967f71", + "version" : "1.1.0" + } + }, + { + "identity" : "swift-custom-dump", + "kind" : "remoteSourceControl", + "location" : "https://github.com/pointfreeco/swift-custom-dump", + "state" : { + "revision" : "f01efb26f3a192a0e88dcdb7c3c391ec2fc25d9c", + "version" : "1.3.0" + } + }, + { + "identity" : "swift-dependencies", + "kind" : "remoteSourceControl", + "location" : "https://github.com/pointfreeco/swift-dependencies", + "state" : { + "revision" : "350e1e119babe8525f9bd155b76640a5de270184", + "version" : "1.3.0" + } + }, + { + "identity" : "swift-identified-collections", + "kind" : "remoteSourceControl", + "location" : "https://github.com/pointfreeco/swift-identified-collections", + "state" : { + "revision" : "d533cd18b0b456b106694a9899f917ee595f2666", + "version" : "1.0.2" + } + }, + { + "identity" : "swift-markdown-ui", + "kind" : "remoteSourceControl", + "location" : "https://github.com/gonzalezreal/swift-markdown-ui", + "state" : { + "revision" : "55441810c0f678c78ed7e2ebd46dde89228e02fc", + "version" : "2.4.0" + } + }, + { + "identity" : "swift-parsing", + "kind" : "remoteSourceControl", + "location" : "https://github.com/pointfreeco/swift-parsing", + "state" : { + "revision" : "a0e7d73f462c1c38c59dc40a3969ac40cea42950", + "version" : "0.13.0" + } + }, + { + "identity" : "swift-perception", + "kind" : "remoteSourceControl", + "location" : "https://github.com/pointfreeco/swift-perception", + "state" : { + "revision" : "64f7f6c28c6a4d3c4b9da2ba02383e29ab48a8cf", + "version" : "1.2.2" + } + }, + { + "identity" : "swift-syntax", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-syntax.git", + "state" : { + "revision" : "6ad4ea24b01559dde0773e3d091f1b9e36175036", + "version" : "509.0.2" + } + }, + { + "identity" : "swiftui-navigation", + "kind" : "remoteSourceControl", + "location" : "https://github.com/pointfreeco/swiftui-navigation", + "state" : { + "revision" : "7ab04c6e2e6a73d34d5a762970ef88bf0aedb084", + "version" : "1.4.0" + } + }, + { + "identity" : "xctest-dynamic-overlay", + "kind" : "remoteSourceControl", + "location" : "https://github.com/pointfreeco/xctest-dynamic-overlay", + "state" : { + "revision" : "6f30bdba373bbd7fbfe241dddd732651f2fbd1e2", + "version" : "1.1.2" + } + } + ], + "version" : 2 +} diff --git a/Copilot for Xcode/App.swift b/Copilot for Xcode/App.swift new file mode 100644 index 0000000..094e32d --- /dev/null +++ b/Copilot for Xcode/App.swift @@ -0,0 +1,29 @@ +import Client +import HostApp +import LaunchAgentManager +import SwiftUI +import UpdateChecker +import XPCShared + +struct VisualEffect: NSViewRepresentable { + func makeNSView(context: Self.Context) -> NSView { return NSVisualEffectView() } + func updateNSView(_ nsView: NSView, context: Context) { } +} + +@main +struct CopilotForXcodeApp: App { + var body: some Scene { + WindowGroup { + TabContainer() + .frame(minWidth: 800, minHeight: 600) + .background(VisualEffect().ignoresSafeArea()) + .onAppear { + UserDefaults.setupDefaultSettings() + } + .environment(\.updateChecker, UpdateChecker(hostBundle: Bundle.main)) + } + } +} + +var isPreview: Bool { ProcessInfo.processInfo.environment["XCODE_RUNNING_FOR_PREVIEWS"] == "1" } + diff --git a/Copilot for Xcode/Assets.xcassets/AccentColor.colorset/Contents.json b/Copilot for Xcode/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/Copilot for Xcode/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Copilot for Xcode/Assets.xcassets/AppIcon.appiconset/Contents.json b/Copilot for Xcode/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..0a30d46 --- /dev/null +++ b/Copilot for Xcode/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "filename" : "CopilotforXcode-Icon@16w_1x.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "16x16" + }, + { + "filename" : "CopilotforXcode-Icon@16w_2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "16x16" + }, + { + "filename" : "CopilotforXcode-Icon@32w_1x.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "32x32" + }, + { + "filename" : "CopilotforXcode-Icon@32w_2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "32x32" + }, + { + "filename" : "CopilotforXcode-Icon@128w_1x.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "128x128" + }, + { + "filename" : "CopilotforXcode-Icon@128w_2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "128x128" + }, + { + "filename" : "CopilotforXcode-Icon@256w_1x.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "256x256" + }, + { + "filename" : "CopilotforXcode-Icon@256w_2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "256x256" + }, + { + "filename" : "CopilotforXcode-Icon@512w_1x.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "512x512" + }, + { + "filename" : "CopilotforXcode-Icon@512w_2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "512x512" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Copilot for Xcode/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@128w_1x.png b/Copilot for Xcode/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@128w_1x.png new file mode 100644 index 0000000000000000000000000000000000000000..3ee5242756b414a4bb7815a7f914300790965f58 GIT binary patch literal 13942 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 literal 0 HcmV?d00001 diff --git a/Copilot for Xcode/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@128w_2x.png b/Copilot for Xcode/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@128w_2x.png new file mode 100644 index 0000000000000000000000000000000000000000..88b20d1d12ad9876cf5b70268b0abd93bfa8e013 GIT binary patch literal 42021 zcmd2?RZ|>Hu-yd~cXtg=a19O#?(PyixH~NF1b26L3%W>fcXxMp!u{_36}M`-dLHJX zXKJeZ^y%&hB?U6n)J_PTD{s1b>V6bjt=PG;V?F`zR|Z?dTgeutx|3d9enU+ zIsegv5GfHbK0?u*q{Pb&6gAJc?|TP@<)~JeHbDVF+bf(jTZc)O)m1TQ-t7Fug|$@= z7<@v2-KiXxn&fHzu9j-@f-odE zfbj#amjap_04Ok*{w}KK0lfG?Xv-dQ#1GfV?YM&cm4G4##%;r@6n%+|GL`;frkl{b zyjtdw`Mv(YCxV3kabG*snSNn7ef4|Ed#9TWHg9hy)_siM(-lg|nLHR5s?-mhTH+SDvkQ>h|Pc|59<`D;Q)l zwqfqw7-8K(q`#IKZZf@qFK&|o%h{rA)!rf>n=Y}0FM_3!OQ@7=u>~{6sdPjHu`T-+ z9&)x&(*BLQZ4m#oXsllyvOVSbE2eNIx5jhJ^;aExTykSufjo^~hg+t{D!1P%UY#ee zah+$ov}XyQG2sT*#7oFWjKoy=!Qp$ibv7**!m-Y_z69)0 z7@F`qYnU_-C0h z)>_UIV-V_6l|)-X9^^Enf=ht$@{tUIboX>fv)}CrSno^+ayhls7*}ngdu;yk(f$}! zS5|F)CpreLxUvRUowmWlyZQkk+h{**^54YG=TDs-(*VMpU7NU*^q3K3wyxA{{`B^i zWe|bx{ML&Q$iSQKAJiWEfZxxi;dFs0ATYPo%g_wR1qB(6baNq~>u2iwh;0D+NehXHP?S zBTc_!Wj4|X+0e61Wh+vSE3NqEtKu{6{uy;T`k^y}{RS1njx&*qcVM8(DZf+yPLnly4}zk*|DFslclN@aI;!V0kPRKprg_>q!h z@;CNolTLzVnUsoEst%~5>!`*m<6)Jr;lu1OE@-X*w_&F+_}Ph9109s79|^7v$l|W5Q5yx3PS=P92)pDqTK~wMM#~^% zVwv>&q}}wsQ6)X}EJSYK5s9N;V*--CA5a|c;9cYmU_B|nczSD#CfRqQrNS=`S@#d11e z9)9`5Ky)SJAlgE~L^66cP6#!>Jh4uWkOeq>(+osV8iHa64DXl_kS!FmkAuBQ6wCm} zg2egb_;yyvi1&D$vlqbmJB${OP0AH3(JS`ulc}walkz)J1kP<@Mb2koucaGJF7LN) zkj8V@9_(xmt#zE0w|%dQLkyc%9TPKAVnDe6yL;T2WkLJ_M{y9)d=&A3O3vyq-E7Yc zA8Pn3*PhwbGNn;?dn`uVPn)$mH*#%JIg;?v$))ns0!!FH71O6-%UC)`whY*;OS%)H z)jeR>@gPw@*n4XNd*M>bZsg8+m|RZrz>8~WC&j=KtMSLrOao* zXm6`VYlrXpezI9(o9D4F2Jf*?q*WU@jD(kh2Pe@n7ZtJhGHocsm(wVFjNQwFI@!Ca zDqFXjRLvT0VH`U1-mKVp6o~eAdxRY@Ne@CdSoJ){A$zAb@$xGi4aSQ;h{=4bntsv- zDH+^*xH%C#Dlqkq5S&p?a%HQh=}V;P>;2VghFtv+`3RxLVDpJk0;h(<<{N(sUY5AJ zW$@Vaz@2n-q>x#TUN0$5_VJ)jEcLruJs?hLQ9G2XLy>@{+4DW0vZuOhXO3UeI@E!; zagn_)H+8pPYBrYPuDX4uCyqQRdrNvZyq#tcgseVs%tHPIvx&uGO2&l2zgw{G7GFW* zxYZ&A=_QQr48EY30*4ZJcJ1Uh-QvUK^QX*1tQX8J6pp+4c_oIHI(w?D2`aY0=foqa6_IZ);jGS)!Cw z#}hl&c&j=`+J&l$rlR}$=jSa!jDlme>@N=)#?&tcUnd!NzMeW30}kvX5jL8Nr~Za` zQ2w~yBFhMdwn(vlsWs3n;n#FGzIjx9KTc81V$6a3DFBS4eV%N}cEE*wP8!%*YoqHB zg|`}f1K4+&ip(Pf_6+%1JS3mgBHN5cL2IuL^xuj_^1fI!BM&XExC$#ZGrFNO_|$`9 z0H>{6zg{EUzKd>6DNPp1v#a2LDb#EeXP_`dMZd?fOxsnzh7Y3Y@V*eJ=nH1<^<#X+~5ONqX5dOzfPU$g%Bf@pn z(|Xpir1y}Tf_a79pKtgMzeK-3S_@oU5q&$+jBPvillt-B80#qlt29HXeWGJE&TcE;>t#hEi*Q@Fst<-{{%lK zdyE)~XXcW6cRq0c@7q}vy$5BMf=WM~6SbGalP>O&Y@kGw0RaE3jVX%wD_kP2=f&VY zMjX$z|E52z!m@oYSw4yC>IuE^+Wquy#N5{BiND)RMCvNmf46{Kv~F!SKX-rL*AnS> zeHxZI-qQVsUuAs(sIKyDLX&mc4KQD+yIRG5dh)w>*njFVrLv$UGogriT4WFWXf;&P z`4e0NQ;FJbrM!vgS%`Ujc?s*Xb|CM*u?OmoALU799M5R^Jwfx`hs#t2U%|2LwFq5` zzzEBDgdvz(cJJW8OiRy3g7DgmjU^crVEH34`85Wrrbu|6AsS~*3}9I=dtdVPW3m#N z4eAy!j8*n5`xxeJcu;?@n40Qe`nK2eTr2cg|NCoZDy!040s|o9$^Wf@tgFh~0w>LiY?;B$*K&4ozlCp#kop>^t?P6A0sACK$>fup;vb~>EX zM{vIGMjZI*(M?p*u-}g-%eC}7lnw&5gt5MkWqZX04em`u0Mlg-qh?oShYCZm^KW&g z`?k#0D{ckRI5903#C!y#I}M6u?#wns`gvxji92kEYG*E9`CM^bpOYE|Ha4C3>(7CO z{>9~@)WE@$Ma){p$yA*u@Awp&*64&jcv!E-&}$z zGOHF9uKr)s4-@J`r!Lnc!25KuU$=eZRkL%Gq7XN<-kOA_8aIm0+>nvVeJxUiV4|{7 zl4n{P{m;H@bF9DEe6eL|!Gs#PfBf^-5PbX%Q?b5bUj79U4QClRiAg?*4(nb-%B9SD zWH=b}RM@MNIDMw3R#^4EuP3lHZs)n`9?Y5Hi2hcG@4{^j2tX7rMXsXEyG6Q_2iy1s zR_PBXdC$jWJqUEe15!iH9Csz zjv|r%^nLt5W(4VXeSAJN7(R!LeHB7tNya=5OeLS`{EU|*wL<=w?)f~C(46{Yf{CN1 z`bXG1Xy4_+iqIp!pWti$6ip_4nK0r7g6=!5S(`GCq$vKEcfQM3jm(83^>uQ-XxaIfnT0 z85}rJCeOMLml8MJixNysGVygv9hVEL!1q%LvU1K}bi%8csx8h$?P0~(*oC}cQ|qaD zk!#%rX9r}(Vj_xcXc$jg^fAF(RC#qj73p)gxb*z;t*yk=$au`rF%^hIPUqwh!_j#* zx9MM8a{X9l6!Kt!P_aZnv0h_-Q32F?e}1m}?_7|1jVGM^41-ThPo71)xbM3?ZzR~`O@hGl6}fyl|KeAhMB5^}GII~Rxw`u?ShLo82&ex~&3Nzm)y zNXTU^enHdoW>$6wI2|FRUuyrFj>hffnr`trGx{zrx5 zydxRD7HUUbh-*qbH=&rA=qhZ6tBW~~M|dfC4$JfaugkmV8}C%JSpXwcV~r4!VVWyE zgS%Dv3CyOvW|c}IZ{M{88Zzobn{}k_cWRi!7isXVhsN|D#yta_ob4%_Z|q&jZ!{?z z-9VYt6_NYshuOz$W_zld!r}|(9s&YgzxM&?r(IRW9Z8{E4BpI>Dn>xVzt7vAb-uQL zt7OkTHb+D3qn0?MmrE;rhdph6*j_#^8Jw3}E0#TFYqLiQcJ=hhN4AactK@FI-gHi6 z&PcX|_Y%--R9{=Yk^k~oUMe&Fw;UnpEx-rz6K;%)|= z=ABd8|Fns;GI;syLw=TLkm0TBC=aUZsK2NTynD`Gdj`}?spQ3B_hvnyT8?u3!s&$= zDK?K=<|c2O#``roSx+VV6}LBk8}!Q&Y&@?ShR*xGWysHphRvg&{13QPD}=A#!`b;M z`$YQ9<+#cYOQ`aySLdmu-n~CGM?&%QcN83TR5^|1RTsm>N$CW>|I4upBIOdDUNGnH z9}faZtS>}@2k`N`RaNbHV^M_}DKoL@)Z`7wM$=>um|8j)-(k?B6L<9s(% z+tv$0>ro^X&Ed@+!SX#m4(y;M{TQ(hvp$o4rsrz+{(M=d=6Sf8tC^DccE-}zv)f|W zJ;T{j$}w8_GoiviMQTf9r-**6aBe&W|2@l2$jE=)xZFeJ{>iot`oKN^bYqS zB~D4jUsvK$Gi31wpd^kwnhYVuI2iEd{?|W27OYpyZUGtLC8HG{{__&#yAM|SS(I#>=*d-|(tBC;k4SP)a>p~VLv(6Ip|CScqN_#AB}L83#0 z-o`$@xogpC$uf06gmL7klyRMM5opc~(G`NqZNQZ`3eRdCiqZ(d_oQd_vy*CAYxAQp zRJE}CUPFVzoWec%Vcf&L+AxkZLq z8N$ckq-oJpyYTQ>(7QTta}`6C@aPAEbX$csMN@-xi&d3@-l~bR4x@BZ8`W~<%itd{HLH6;3fihVt?7_|*h27dR?A7V^l6VsiZ58s7uvXR=v znrYhMA^4Ghgn4?>Z`c5}Xu4>Tt#d7Y{e_x!_*K4F7*Wlh z`C?s4!3gnHD5(kgYmPhTAlf@in-DqhFfG*$nX8C6H+^JCQwS(GRkYO}Z++UW(83n&uXp>7dJ{rnqCGoH7Qr>u7j7+H2 zVo*V~vK&&q2Dg6W+@KigkAD#!0?XWWslR0C|Dk;cnA8#XuC|`zV1180jdg~jHY*Vn zPdGpe=&2=1t31@QF)H@FMI68@s|ln;PbTLr_2Eeq;F&ry>jPC~4-_?xgh2T;Rk`*} z-b`g>;Jsael7{8tnl(2FLTZ8Ie2rkmKEv+&fw#Y_8Xg0Abf4eM*oQ>Z7Dg0Lg_>p#QBNu?FaTN}8CN~}qPn@VzgoL2>{dq$>hZ?Y)K+5Y zv9DboI+pFX0RKhGJ*5GLPD7`q+&K@Ws!G}bbb9BIMZ9#G5SE5{SAitt{(FQ5`E3mA zbFaAA_7skOL8*BHrD!n&zEAkXtL@-8loRzBbg+}KZ+mW5TB}QrBO9=Q|F6z~7Imcf zH7aHo!PLur056~kEWA5=wBx%l6fze;Rf-o6(|E>PaNsMynt4VjBIFEWs zs>(oaDZ>L3%m78;3q*5Ljc&_f*!8@JPYsu^)>WJoX=!mqyY>2mi3v#cI9N@gcqDq6a&j{x+5ym9wA6maEUD4HW=`@XzC?5q;0y&~+;EFT6Z~U<_ zhbC0My_1E(Eg`LyaL5DfD_lnvJ88ITpa70Q5*QAqIKIS?4Ha5$9Ej(fa9oy}#_Xe!2uZSrKuOQUHc+YPP@ zlNE^^^3Pt5wZZ_SdeJifMCzn?XLDr*y#lc8*(>&OA7hC?Y5igv<3UL%wL*wPt0dD&776z7-YDofJc_9tqh(r*m-c z`nmjC5l$Q}NrQ<^fK7*in%_KQ{&~Tx5?6;XggVhXtc7N?EC8@*aAe~GQ;bC+Hr%Tu z51Z^^9Ks`R=3vR%fxypcLQUU94444((Z+o<_h?-|?@jGf^-(z==K{A`1e*1M(`;Mf zL__WJ{+|=OKxZ7Y?tpB!3m&?a4O-mq$?9Fqv){plSM?uY?*no#Y)(;8@sn+7Xt54F^v{%P_mw* zV!2?)1_YfoKUa*-YRD#f4j zg(Qj8++{k{IZU0k$kfhMmE#sQry+9t4DN8pTM}w8v! z;ypvMkgL~>{E(EgyDpl=?y?WJEdyeY{nGqF{&-ZV_;uX+jns+gSjW|dx_*Z{NGV}! z{yLW}<||QH%l*vkAA6L1`SNN+F#hYJu02-}Rpy(V<`hoSP)yEsPFmjd;#SxWtBJ_X|?6z(iq5pO7SyiBOPW5Zz%^CI`LnunpBwxhNQ z?E|EpDVAn$#BFZC#`B$U`{LuTFYF@o`?H+W`sCQu-@<$cYd%B834U4)ayecj^Y1An z%a>l)iJB6JBY*~#1}7LLtFLo~*wE%I5-4YJabt)@lyDgr_qtHp8cz@h+skjcT>kYk zhVBr4j#}YcHel_qynI&mt$VQ? z(ry`&*`}dd#V7-WU(c)VRu^@DIJ{5WxLyJPmWn}P(YJo;Xnzuh#l{js8qWo3@v5N8 z9--ol*L(}K&+{&2w+^${6vwB8NmDY{l2?U5ZRZVR+#VY-ss`iLq6bdwIeX~@(Ns^E_jgV!>BZ*bodh4Jxc%P3hkrB zX*!?@cjSXf*pVo-f282Z#96`RKUe(}v@_wd=83~B69BGCFh!UKW6WHOT*G)r6X2Mn za=xHW11WSX&%PFJOcpN4v=@!QF4?R%H#NDqccenCwIfRnPfbj4wM)&I_D$8KzZP%V zBhgF914TLj1QRfl*AnQF=9#`{#jKcq4gVxBFjZ;Z!6EkjDfP%r=7`XA1FR2bh1quR z^ACmBZ&$0^RYD&&e0b(DKx|e<;~`-QVeypTk>j9eLi0+u{-=e-sF#+z*i!96KkV@onE4d*D({2p)D*HZs@61?jmmUW_oYJUnW%38kvZBL zQ(kQPFDhNfK2Hv^%8_zKE~V<)Y>%D0>vOQtUljK`dQGP$N(?PV0(Y=Gb*xhbH$Uh} z00Y&9jjv|iIr8HtiL>jwkKP{`o2k+_*?JrBQBk`cKOLhf+2>x31~I61x5c+DA3HeZ}x67Bxr z+}Os!Ci*Xn{qqJ;B-ik~P~jxOOm$izq!o|!agr(jo;JIB5rj*XkDaO=cRkbWp#I<^ zu*1RssiS0!itDKgMTV^$JF~dtt)vQ_N=1s?cHe5ouxkQ-&sSpQA}qBbHdaQTbCwbw z?ell4-bHeFgFZf}a>dh9%qyjMhGDxA5y`NZMK$>?MpQ_Se$*Ar1Icm)nEPzk-Y4GU z--N-3sT6itjIB0X6P3q57PZiW>wdp1*PEbpD6AcDP{eP*6T)&yV$3;^lmLv$u^g0f z`ji*9cSf^KXxM?Qp@{w1+p|9Yrt*sGE2%nrxF8UR6LEr*6knc^!{Hwm!Ez7hrq=kg{AI6KY2I;XCO=G(bv)M6mg z@`dLVq7%SGzh@%DOZ9SU48m6Wv^1x%X%UT+fzvGtQ+ge0| zz#5j3qQ&Y`9%QrGNlv^xX0CtuTM=}xo{sB_oV1+gI4)q0rJt&+_m9%x6SI)I4(lt~ z_5R7s?uqIfWj{uj&SsrHEu)k#C^0U!UztJUu{jCq@vua^^s>?U8TP*VJ!F_Qa9!N| zG_x^af>sgy6G(K9xl<3#ab5+BZb0Pj$+=bJroF{ZDg_&u@(-P1=jtj&Hh}o^Sp|Li zC0;P|;{FdCAD`9gAIxcPG%z~N#Sfiv*x~4Vtg(nHe}g_L`4g2on4QF1*;JJsDcB;z zb?uINGMZRTN!J^0KKyysf~(9{di-$xt+wK&KW{wjJGDtYrj~Xy541Z&Ol^1`RM&?s zx(th!^dTyoGjrP&ig6f4NJMLxIV1xurf=&iGOx3$s}=96wFCi%AHA-1#%+v!pvBO0 z=(5H8br5#6+TDCSUn^7FWuK_~F#NF)WlH8Svo3BqTBpKo2M+Sr_~y!CnMO|`vm zW%U@?Rv*;%wCSA^- zmcg7wn)1++m(w{S#Q#^2Pmj}?&KSV20z8Ww^{3<0q1Xcd-|XHFR9cm?SI<_eh0C^M z^7WYj0_78}Sfbu?06ju}qKROB8tYDJZNQCaTXFeJ?LSCcG>TDvzRfrR5a~YEtk=`K zNub%>H}{u#jNsJL638yu_13L$cc2sVh>eK11ETX;Ax5OC8w9>T8c*ktu%74D6ywrL zW4L`uGlD_g@b9zE(gDM;+gvI{_=&prF9KV?yM%7?gxATmH)*Yve?@+k|FfP!u8Ew|Jj;`6W++K~!!$Qn`)bH0?O8!pMed(Qb%r+>n= zRY*87oY5X;VyUdws?qmfl#%tD+a}OgJ#JcbrAk6>X{}L^L_J`mpPNoGtc-!g9}UMB#ba|#{yELYdU0+_$zLj861fZ+p{6nhO?3^IQ=Ty9$;r=_Mf)p-*Z zW3!L&>po1DJ&wt#NXKS{aG8t+9vrWl7Jb++&&xGdB5Ofl=5XWZWv?Zk)cRdta>`#L zkEsy&uxKhLQ5hr2C3WF8&w1E@x-uUXXuSZK!#xf4bD^ML%(9n4Y&GQpW9dvNl_MaO zw%Kx8Tv~bk**^7({-Bg)F(n)$w?wb31}9&v~y5hGoW`y_7!s zc90mB)(X+-rNwkC7y1Y`W=*?vZ8=`>Kl+_x5R8+de6UZeyI7vF;;#Z=g4nZk3 zWu^xUKAViR0@XNgUdB`H#=QN}`yDIUBYsknsOlEP=u|0 z4cZ;W%zUjLz!ww`|9U4u!G_|YJX!@EIxJLamwGi^*@sbLCTHy|k?pW*h8K3ToKm4g z%IDwqhDQQWW&G@DpgMsmUn1pDgXe;*8P~3ctd2o;pz{D#uTtwoY2J@4b-%(LKZ9X~ z!u;(2(h8%i%`PcYuq=VQF{eENM-*^h2cJ6CdhRRCmjgKT{ntGwt}C=UPd-#y*uQB7 z49&hl`m=ApHJ(rOJtv{{M2|1?RNy-^_3(bZQxoD_^_?MRVSt!dB=0xETReoR?Fs3% z$ZzE8>ZQ=s0@Y3#w?g2m`~-5={5I@xApSl>-*|q+nM@r+g#g1Z*iDg17@+JjudlU! z^INJ-gYSy3QC;CUeOc{^uxo&^hb(XDIXR)l#l?4P(0R?{K3_EuycqPr5Q`C;ScE^* zYA;^XGq$G$P0;+7UmtFQIKY(nnyaUUQ~8V!NP6HaaX+hCHHmx*?}Lrw^95j{u8Yx4 zjE&6C=+!&Zfipx`db`vZfvPeir_IAa5{Ho_1V-J|0!r3~ULWixn-S0V*c;Ney@|a= z#%+7Kk_Z~%b7|%TSc6-5&PsvTgP)Ob(f@HZvHpw~6vHp|zZ%y!ocvTa7n--ZYTJ%8 zO8^@i8(-;O`u^8jVndc&?a9Dv3-CWnRT1l8c=FB%OM?jItKj0GoVrcbC)J#*Af2N6 zE>9YF|5POpjU8v4bHgt+JPzLGd229RpL(3yoWv=blj{P4P2_h~fjK27B1o?nFaI%0 zE*0NGqh8%?A}3F*`^LpW_9S|=Ljz;i&a=`E|MD-o4t;GV*rJeJ!DJdDK z{eGP3@TD_Wk&EQv_#?D;v*L&-v|~e*=Bye#%VyT^ixOq+P9SVEafE7riSjBuzs0}V ziF(=g7W}t(B#B~+%aYPRIMogcX`n&N5hMFjfOQu7tO}FYJQaa@>(>v+GcExc{^ZXz z_b>25nwHTAP-wbn5G|JWYElth9LW27XPtd=+(_3;{Z`tVF}(+lC$(TuTLyek<_JXX z%RA@M@1FVo9N;fYL^#&yh>C!Yn_a)7Kqt{!6GQ#bRBGdr#)q7SzWd>L5UtvmY_QXsiv;wpZ<$|Y^5eFMUa5`e9#fgzn<^~g9U~$hK+wq zCCiOoh13?a-C-z>ALW- zq3vq?bgtFypYIaOd?+5tyjxOD5xw&L3ETa0pM~>Y{9K~7(6CM|AuIRO9^mxuBMQ@l ztSA^fz=>2uDnic@3E1Xdi18_81B zDKPxULNBP|_H>zDUe!iIrUKh~K@8Ua2XCvO;5%W)JWTU&mwMrHPUW5(-FD-5Qa|J{ zQHT7ICkSlfv$-e{vfw?Qo;fuoe@IB!Nt1>>xEb?sCEt)!6phjG{0UybrvL8OviPiDTDexqPVZoo4IWS{unOF&N*= z$=roF%|iSey1(Y)>8+ZlwRnCFqUPaM8nz(I)^qv~?}oy>Jf2BxXCQf1o?1$A522TmHf6Wwc83HW4!rwuuyf7#USe8PW5S`E8TP>@slGA$U^5*@y z3_81&-&iNt+<`tn=f&s{dpcO)zjGv`_zY~cpvyBPl5XHCR=B?&`xwBA!p!?<$WeDw z59$fe<78CJ6EkNgz43pt0?GbmVmYL`=9gwu_N_+B{0m^@EGyTZ8L3lDmYP|=;i28L z>LQ4Z2rf|Ed99HwExaBp*Yd-`t{cEihr+9l5=vjD!E*PpJ`l{!c!w_d$HOLRLZ ztL*`P_}PO?pr__XiCsff{MFxxzkq-v&{_{I=ST6Yo|H z8<2@ZP7MI<%+Py?qcv`|%-Mz`GeL`Ogff(ZzF^_H37X-|kofyzKIZCS|CdV_x7fFp z2?wd03ferN>z#)~1@6m><&zaKTw!Ulx3ji%FS<^S;R8Ot;8z>BLyPhj(lwKq2!wpu zU=EhsV1z{uChEzX((%K67U!DIIOfWoK19KL`fKUM{cIC=^47==_)+7GAp}-)$&y|! zEx+^ZP_Br!#8YG2;I94_&L>W&@~ zCj4&vW#5)I!NXY;UR!Tj=S$T=CrqYMT%`mNp8}aaI9U}{F*xMCQJ0w{IxvtacgpwV z+jyp-B?E{&pb!}p!NSJEc%Rh#6B{j@4?i+vzHDi@DM>5%mRNrVC&~oqHa_-|X<}gm zzLv#u{6>39z{lLA;v5yT(qx3EEbN_}v7l=pmezD%$O9{GR@KkHx#&)+DUF{2)x_WY zAjL}7``rpCxMsFEfXx@GOXqhChc^g8FNz7PIwPyCK zaGy`agwK^JPCO$EMlLLm2{*^>I^F=A%8ao@;!N`dkA4l9&0;6X>T$jBF zjsD0>5c5dgCws;PV>k~k=2YS`8GVU7gM$ZsD;8I_yJZZt_qb6JY^gf(zhHXL9y zsg|Opdc`gK+r`)yT>|X-7)OExUW->iyV`$5+(4gn{m>CYtKIc1X@ULkR4Fg}&w(oAPcNLc>GSs3G!|AR2mc^l#)Ed9;ezdP*)l$Q;)c zHhb<=G~d4y#dUO9!9*(!tE@D*;rqTE2Y25Yl@X^`Yz~p~_FLu}Sa8$C@GR`Vks(Wo z$34r(!d%xI%YgmRQ<5MVF}~$kq7;Fr&I3~PAIqvEXVPpkkxkxsSzXtcz+XFKY+ZoqEoj>gh{f%>Abv@CgfO9e1jDZIxLJJGlMEU+8-w@StO;TKBy z*L!`b1p3tw%dWn=A{aTE@v`eZ-}!)9M7zL=DTJc45_aVP?ga_ze!q+Ga-r{h2H|2a z;8P9>fi6q9SBt~?f}UloA+H$eL`Y#6-bc#TsrGSHjqDs)KeMm)He+5A94_ufA70&K z;sr+?i#E$?v?5${B@ARS^>}%td#%-%ij`^WvA<$c zv&#+G*J0NxO9~$%Q3jgXpHLH)Z=_FX@k@#17h&}ch&ur@-CxXnCfBZge;bt9 z8m&y`S!%C%0?ThWxpy|8MPg+|S zQ^;PmyigI$RX3=>MYZ%=Ij8@$)-klMEs^U|Yw;%t&as~W=Jh%cEZQ4ccg*S8_#UTR7G>FA;mddNKLJ|^!zcDEO|5Pklg-o#4sza`)=T^ zmv+KMdd!Aw=eJ)SlwL{Riy8wgQcF?Lb+({;dn2Jf17%q zM5VA}6oDO=VbrwlT(jt;rsj9<6i~GI&>Qgh&~w;TzC57fd#<$ z!{Gzil58TCHGj)EhJRO1g|qXjSnZ$8MU6#x6tL^oxnGRzZ8D@Y=In*{Mil~@&G@Vlw$6>6nQxe;wWvz1O) zq7o-Z8Nl0dS-L-e%g5ve#Xq#kZq3bs`WGiMi);(HF7QicJPi)1%iJoK{NfR4WNF^n z9M;(>@zMZOmRMzyS!~~ab$U83pl$RFEQNX^Mhv#+5*9Z_gFyMowoa>5DULH979W_0 ziaV9hP-E~Nio60Kt}ZZ$4`sL&T2Ri!sq-h9NzTZLjqn6@6RZV-#QVvB#7v-~=Y8Ff zsog3mdRocUHVdtR6!7`n*=vkx21n9G*V(Wp?YHZ=~#I4|M7&Z;b+JT^- zO&$(o z?+OMn9bR~UvwS&NO)b3bRXpbj#^Byya8R(7%Dw=Mn}>J3zL4)u8@LJc@4)H7vvXRY zNitp_l;M*QwAi9uR?n?d!PG+}(+*In;iooPmcQ#YK5{djfTNFc2;ko~3pF6AO&x`RpeqhXqfeyg zeAWKQqxVA+AhE2L?Crh2Yn1`bC{FJI5ZF{oHUpAXF=1Hr-K+H>b!M`aqQg!uQ!_7q zQ<6v0vUo`{&UDx0AU(2t_OsPpDol!{S5R)aiFVK;ZBS&=Y^h4`g8}IZ@^hR z^T|B>h|;5fBnO({w;_L`*D({(+(I3%Lu`mSg4Ml&UV5HV7c{qoN5G~xweA19Rq{H; zCkz{|=*SsZmga?I?DbhM{|$){9@b&Xjo*k7)T2`O<MW!_)mJlpm0P)TASeV^6yC z>ds`gWt7nFNq2jp{$@NAuA(D6OMROWN82v|##J>HVd8Vu5?&JD6fXx?y6y85bXL&~ zF;&JcS`&Nv#uL<|tl)bxSmz#Dql;7mWnXPt z_azIbsqy~6c0}(mmurvNJm(YKp%Vyitp6UZayu5oP9ID_b*$Wr-?D)n+(F+BTvuL> zrx531V?`HdHqgX@4jRCLevEj4urY=$TWJ$!EEb`r{%$mU|XP zq_ zEz~fT@EY##G1Xap?6xSVpoqdrKmdvp#LJ=ygtz+q#tI{*u_1-LkK{BGqew{)qKFsd zn*7Mf(W;zcbXVo%7p~hrllq0t58q0D)+|H#T-|Nbamv?|&mTNa%gUXf9v@dQwa@Y+Et( zYae0kd52~u0uXuj1~b3*4XOn^VA97IT7TO1>%zMnJfL9r=LZRI*DoyP%i)UEDCMqs zQkjwh`~4yR7-qu&yPP>VM*L3*+7YPaMO_tT}2@cJ>7*gg}_`H)`JnN zF!t>X%b$V}gFn(`1ouc%Dd?~?m>a`FR>pAh$d@3xQR&asfxY-ESQ!cj0I{9I>6!IY4qMWM8 z2rODg&J>d7f*7iEk6)Ngu`ic&I~oO!eWkx93rn2ijZ`=FRl5BVfyyg7XurT=>KmCs znfL_uKBpzZsSxd(hi_kWl^T=RQG~6Bgi9_xb#99YGLj7Gz(mZIfg&YOB z1P4I*d|tHvj%A>+BPvO7uF4C8yh6K^`YD&($bOR6J8a|Vo4o*9AeHFE>;{)z%S5Xp zzK8q|0Fgj$zp@c8rr7w-#tKe)mG#vZ_t!8qyXSqhe+H~@xx-K}#VU9~M;|6>M!f?O z%Es7=A72zSk$scn42o9ySOx`vs!yzIE{@~W7)rR#Q{Y04TtyfV?{pxiR8myo*@BG& zxL*{Gbmw&9_$2QIQNqaZqv?h90NVZAfbHH1n3TFod?^USeJIFWp=f~+qy492nP>+V zO#zH}Lk~0fb@wU1aP7h9H*bLn9I&#q#Fn?BtR3nSeCZ2RLo#JbBET|y-jBsfbWZ+j zF7A(IG)h4rV;v?%Z@4UZZ-%+D$r>^^tbM5fm8Q{stDr-xq!nMNS1G6Ne_ z)RMt!1Qih&n1X-gb}h~|p}0hXIgv$s0uPRZgmKGd1Cl|Eine2A)3%Ryr+Xnxs;$@` z0A(7AeTY_6b4U=t5{yu%LKt4N%?m#yhDK(hqAMKCV!+MjQC&J&H^3n@2H&-{uEg~6Z|fCaw>3rtzm4sKn0$lBvfV6(2eun(@Z zbLXlm3MbD2@n}A6>EAc_6DoOc!U6jB}cY)ofK^N zP>_uakHFv5;9ST<^_+V&@i`P=h&Kxcwl7a(u>L7;EHoDb#;?oCg4@PnpZ32fKDOz)^|j|8q0T(rajuT8%9> zn|WCTCpf^|bq)o6UdSOg`^v&E(ZtlmqI{Ha$8xs94|64<%8_7PYy){$UFZ+40PO~I zZva59ccc^*0IFfa`nGdi4ts8+TfZ@&q@B?TV1ydlU#6Emp z57L5IZRqCzGt0SVWM#G0#L_cNzX{LhlC)%2DS(7yKJQI~NS|HSV~AcqYp1$o2afn> z{7gM8;b&yO10E>=2q5%dYAoVaSw4Ui@6Hp7Pp+tF1JN5UA53ik$g=`KY?CooS z(9IYEr5Z!Iw}MZ@I1kWoYMi%+g7SR;h6zA!wDqxAu^I^1Dg41I2)Gztz~LW=v%uB3x&^n&#OjYDC~A*bQb+#I3)!xaZb2%qNHRXx6sI*R`&>3ZSJiO zEn(vqmkE(i&rDQ)&F<<@V&Ig zxc36y9hD*{L4~=PD0zG$bvd1p2?M6y#m7S1@_L+N2426j3eGlzf)D){?SkkOUA=l+ zzZ52YjgZkfJu3(yBZgQB5dDyx37UsI{cE`2WuMmvg18_cW38gIDVR@;UXc?HA6V)Xnh#Z#+MMaL2ajyRcAJo%9F@U0s#`H69T;t*ax?Mmf7^U`s zD;EYCAy<}huLCF{N_BqX=23C{SIOEJ*g57knH3G+Z@FfuiU$Zh4eJ|7i^=he{WNKe z;v5ia_=6*rfWO|3PxNenDMDkiv5D;E(_60@uJ#UyF<^a>gl@@8f;XZ1`LM1oQ)n0k zSk!HV`~nT=G_CXcJODm_K|QjZuz<=nLf)o&Q zi8J#dM>$sr74vNv>4Kkp?U?A7D2*W8)R-Bk1(^4lDFiHWwdkjDmj8MiAS=D@tNWs` zEB29FpP#&W47RQ7W&#sRrt3700cWk@d}?Z?#A(ijEAa%KXcRn=ctUfi6FehzDljiI zXy@oOeL&To<{ixPL3$3L6$aWVz!G%#H5mSWcckjJ-0lquW-ccbNWbHbJKClM&dPZJ z+6ud5*jsQJk1%FXR+ETKXR<|DnC5;#+oG_nJQfff>PlFQVZvxX6#Tm?Y@1bQ{};y$ z(l*tA_3N#beE0Pu%p(D*_mC+f{Tx|;0fi9(=4xYvgTOr~viz=X$nBZV6R>;^X1(*? z094J;H0S^Qj&;$Mmb(>$0ET`_ND=2y#~4``C2f+TtLQ{y^Z&7JhfP=9JL9;^cnN|y zHQ3(2<(lD0PZaH=8XFY6!($#8$0^h|&I6#-)7Jo_=lcak!oN8k`GKk7RA8$B%Ix|Ob zAiVL4fh14*+_ofVDa#~r;&9*fDr<$e^}%o7eF~0ErsK*uF4Y?f&-+|=o4fZr_TjTJT-0<`;GfVL_CN)!VS z1OcgK>E7rac06(JKyXWdGzE~ROu_ecsyjACkY>pWzJWJei|`gVH)O1f3OvIlqQl?Z zs-#nJCM}=+rytws811jWHw{mpSd73?^(!({G&KxZ(hym_!M+Or_gp_3ttjxBhi9aK zYM6G@Jqhp^AFuXk&^O`h+zmJj}DwoL0gNwU-KcLCa_0El2acIqMKWD(N-#!38bITehM9`vSNiCsAO6ve!h7`%`t&q^?_~bHtYyTX4 zYu}tz1`9AV&xHXs@R~-g(y|^9x!`ZOV$iKtNDHfxNB$Kb?LWQ4(S!5w<=wN+s%HH{)kmI~Rw8)2>>T}y3;SFgBfVyw zht9a?81)`QIx0O(y+D*xly$Z}@&>4_Kl{oVJ4Q>aqW4-MCq!{s4y)jFBLo6&3A|qg@bZ$nD^;3y>Pk)?e`cR9r<^pXLDeHGnI{Sak@b4ZD~5!? z7pEYFe4gjM%i6@@)7+IJ>GYvQ$Bpf`Ucs!L&K$GKVa6YEO^O0kyQcj%nwD3<`uj4=e^+`B> zW?7c;*LQz+%JnM*5=(7n{VFKIi)<`{KG$y#FCs~NQD4Usf@HpKzx0gb@$|_hJ8kF| z^;#)*t_)~-km3w{;zeA zM>-on3=*fe;6HpmTJ)Bfwhr1mR1X(1pTPpv1|Kjd{O_!UUpJ={f?{k2_Ydx!fM5Ug zaVJbU43qbxmGoqdf|ybirx(1Bg~tGruAw;L`|F=M?z|3E@cG7|zr6p9vxITk#z$cj!;J7wx@a9Sz>OQhp}=Pe2R1DT*O-IgW2rrjkYCXu zZMHHBX{l2bfEO{Hm0t!*8Vv=5#MzSO3ZIa1mlkXxm2r@nU+c>|;eY44crJb>j8NcJ zRYrePdd4b&fBT7}Zmx^03+&uaVJ`XffXRbITj3Mxalz*Jm2hMH>go`F|Hk53twJF4 zYZ-#PL4Qw5fINXrIjL)I$dZ+1Ak{TDW*i2vej)3(rj^EnEPkbo)!7h!9Dw1*SxtPa zJZk&(S0p7Ml2-(bdm|9R!Q2yIWwHSRN?}h(nb_z1Zvz4_m96J(oCp~s#v}=VMONgO zRe3rI=6`wTdKW;`30Jr;<)gxY;sG=r_|oI-mFI$R#{2>-&J$1==kTnl%9Mm5CeQqT z{m_(CQYi>$3LTG}sgMEql${Rz>;G}YDUnj* z;GT(UMFmnJ-Bz)k60QArpfxFhcezbnx{@gX)boCm=ZCuzu}bi5+PQOQ9c#WQsci~? zwlDhS3&VG%R2ox_{&SN)S%jGpz3ueJUpHnW&0R%MrUh6g65_rB&Ab?!j-6S8|7Mx+ z5AHeT1g%)706Qc-EezjSz#{-a)el|vm<{s%`d=M~KmUi*OgIW1!lZ;zBkL75_38g* zl>m7JrJ)MKCg^Ee)40^HTDmEkP$H}UZ$Ew%{^r3c(C!*<9}4Xw!&&DU$Z>twYewM8 z&AlE6EOuVM3xOIZ-j){r5<)Ds`(1#xtpd>YMZbpWdKrJYUNIWqfmM>mG(VC|ns%L~ zGGWe7S8ukDV zu==ce>O;{TMi6V!f)>7{?uUo_7_G%yZ-hLO=mDc@0oiW67)YErXc2*cTdCJ4^6ubJb+q}ra42{#mUE;wlo_f zHIo>VI{vWf7v4M$|L)_*Dg|HgWVPy$zqX9Z1wh7BdV0Z>n19yp^8nhq6Ogtsx}AWG z>ytcTWYF|m5RyCidjsyvK3`r=%o|Gct-dtK#GJ&aQF-|N;KmCT-)_mj^)tpB94pDR zVSxQT2?;5J^`qTx8SK?N`lB)kIC7aRS)F(QC-T0sQ)w`<2nohN?3smcKRFAJ9a@O^ zpr-}jjN^f)`^fnGIscNo_fAYM!5@6#l-oK@Yvm2 z58#z)pl(rWY~NX zx$@BMK-9oS(Hj9pKSLrx{L=1Or|hV2q~NN)^|;SqA8(q|E?2w}=0el$PoO?MZ3C>2 z+kWjozK|L<+H3=(O@bZ!s>YKm!_>Zq6&VuccS0PlxUkpl===xUZ;5|WsPsDU(lW~N zt5q~PcN+GW5(Uu7h_-VdKwEbL`V=XIC|$5Bn+u>yYNAFUn|>QGa?mW1`%P9?FbN{F zq9$)MTCChd5lcS;w|ZQ)3rx#XB(U@eiSQWctG2%m`pqNjM;gMj35m9-9-nMli`eu# z2DMp=%eWd9wlDb;zFUK}d=#jJ5Jen9w&7GdJGx7gLsow`KqT*!PV(Z-nA1SfERT-jrTy zCa|>SQC%>15asfg0Hl;Q57wTHSe&d`cB9 zO0>i%ngS3e#CdtNTkr>8F$910%}L%^#G}#OfaOI{)36-7tRWLnK>?Gt0-v{M0#e$# zb*oVP)flGt;NzfRjmV+QqGImkm2ML%i?TE)t=9WPfKZ+{hzw>~L7TjN-wg61yl(U+ zytlyMNAyEJufqEl?@{FG6^E2x2Pef<0AxOt;6O&gm>>I4s2AXsUP6jAHnM#LiAyLV zlIlOlMfZc_2!amY?HA(91wY+a-koHGP!hy4 z`54u+YUQI>bhUq|%l%Ycf**kdr|qa-wj03jPl_0en%3GfUUYQu;==qIo6IgvNsrs8MZY(eh*7eDktr_oDhrPz` z7$cORDU_klI`?zn5Un^FrN#NemTNQxbqP65fQ_|@^*u`Ma{|uBp`e%qn2mH~{E+3f zKWIY9o8?7xffmxZJ;!iuGQ}jWYuiG_MXc|@1Ogc_WJ*)CQS+&Y zEb++77^zh1U;|`Ao-)}t1~~d&wi%UNkc1j=IeiLqFwsxeo|x+cl*Fd4ds+xJSu1!l zCQ~gLR;~06b;H73Gj9Me_jU!151aV7i7T7|Hr z=V1D_1Dq?i^!YsmUG9jn$Ddu`5TVTe;R*L1(%uN#%oHK;-@{{s3V2exuiDWE13g`E zVtNUlKDOxA^wTn=VFS$i6C0N8DT+YR7>JN+xp#alnppdHH2CT02uCT=9VXln95n$E| z!c8nUGqD8y!)Ya;N;!dA3M(^O!Xg!tFm7H$^L<;XJ&$u_-Nf`x%%VavLOI0~aX{`^ zNXjrxL4M%6VfYcd+QH8!+-z6gxdva{2ZFoDgZ?_06`G=co`GuoRZ7pN`vB>QeBU<`{yxi(v_xGEFB=;~p-?io1{D4#_MK9@Hv*lNDS$>Fg_IlS z8-)U*G;r6B{w>Tc!{C}8#^_aj%>YoNb+b0GrTk~w7nR)#n%*#XHCGIJF8~(WPlCo_ zdo18bZWwX9(FXc*hM@fq@3e~Hr{1)dflZ9X=^<7*m~u&i$=YQCOs`dc=!e(C9;iik^a3gUK+s6M@d_ARs_|w?(C-3X^5kMN%2gl;i>M zl>lS{%)wyc12xZ~McMe{7$65S2us>?fXOOpg%&y)m6nkL8T;qAnX38V_gy&%KYYVT z%f30aeeE4+XF|yIchVN%Jyz&keuAz0PY@IdX!L zToVEYXe1+WfSf6?05@E-%O9pqPOPlab=fT`iot&O3l$LGEkL;gQ&cJmqROXTmg9b< z1xjr*xC2)Bf8g5c$4M(Nm@K;g&gQ-)Db#?G^HC`%_v1DLF0?nI`ylzhw}(fA!vm1 zs1*jTfS~d~cw0rDW{JuJBqu(3Apk{ftD6T+e>tz#)j2xa&F5u{V+#3ri@p{bLN*Zn z!`(3B1AwIli?Jy2%TsBZhwPp<(Vf@t0{9b6D+A=UUJRZH8U=37VF)iF!a$g_L9fvb zy)HAeh6rMArxh!5;o*W%7<3LNCFQ<@f~VkcdExzu78w=Js@?TrhohK#MgtQJk?6;` z_m1L{GQ*d{qR}x*E_MIu`MUUv$u)E_67O~FEyt>P6n)KTq{hrU!U=a@5Y>2P0;-?O z=44wj$B5uyq-zasJfF6u({yxha!K-!#!KOskc1=;5vl5)yyx?F3J?;_V>t80(4R3< z0I?7-;=%$TT)N5Q3pV)Doec=9B4PPYQ~%bsq#teAlZZ_1c%(rT{+t;SVQ$%LWunrWbR9 zg#27G9Ypv0fHQX4WpGVp>6%Ub`dh}Lg`AT1#ek~jL#ebhR{`YKm~)NlPqj}Ul5!}S z+Y*ASNKp_OOuqR_6pGg=9}6_+?-hu)7`@_m$kXjWKn#lQ20k!iHx4MJP_C1Wbx<@c zzfe`=%Ptr9hz8&>YjAB(HUGyPXgUiQ1sE(SUQKhVL%$BZbLUQIXKHH@FuV=Oa_cK# z>+IZO7??b|;07SHC-)arW%!ym|3pyw+63m2`EgfY9fI+eO9DhZbh&h(DYQ(OK@YeE zWty&aUxnqVX=qguW(27O#Wy5eV(01)c?Ct+pdk77-Kc1rtH3RS3|>}64{p+in$i4!S_c5bRHa#_fx(q=3S-yqQ-Rwa10XGC&GU3gLk7m;ADz=GX!ZSp`5-fw1E%&ga5_u>eYBidarEbHvNH%mu&1)X~~8;Yf#68jzMh(-iK* z18~SaBuKCkAofdG47v<^RZIP3?dX&k+T>mtYriDOWhIdCZ)$o9_aJ#4DR}GqAlg^U zXC)kwjR8Z13#(TAMFU_UdN}$S0_1tV?X?&5I_tkU+hnjI_Jtomm!*im!iBXFRsmL} zq@QPM>plQF%wT9}2$ykrI$17Yvh20B_~tZ*<}}i8N09#Vi-Q`8DK)u z)B_m_n%){~>b&Se`e!JY8o8o~9a2n;e$@jZJu3yAQXjQvAOjHykjpc2PXL4f@|}K& zl6e_cVB{=K;16O{iqSBCD`)Dg33hD~zN`*Y3m|oeR6vq{s(&W5=;338YqECSnmlV0 z16?tfQ$#%l&~yi9e8>o)=t1JsY^;FueJIU?CQNZa+Cy``Zw00fHT`#F%5X0kO?EU2 zE$1c(f>jZH;@}*NZ0Hr`qYIBp!)71M+Y@;;49}H;s)vvU5HOu<7jP3+feWe!6#EQ? zG8wMr562g?`8Psxag#8_9u%xzR3d`0D;Pzef)zD2%0b4I zSDapOyxH^sYw|h0M4x>7>4e*I!lX^)Cs;vb3Nmsz?<32rnX{t0jtYV+-PrvSK2={t zeyGHxj@L!jaHU*BeN$ADuAJvZV>pj^8b(!NM4i^j!1%@eZt0J9rPk8X6yEhy-Hf?mP*#9=Av*7_SA5xP8%f;ej1g)P_ew8Ad*RbZIT4b_*qFpEr6%EG1WraU zQAtoBvy*bJTr3iwD&_{08%oYQQAt7dGuW9hCP>jC5cEi6l+zspc<)GPZ;8>$BwA%j z(WRst%Cs};nJy;-a7ht_Sb>paZ(=Rbv$CKdWE)1(8$d<>OL#%1)3K$XOAm#T-%Shc zN^MsFHV9Z<1nv;ZE{;MHtQukD?iDgYrq4;Mi6`dr!x*F1N8dnkLk^}kjGX`RBB+W7 zT*4e*zTFqxQ`S!nOwa*x0f^<&bRxRI91ng%MF7KK8UHT40oj&(<(O4u;}Ha@%1&cf zp@nhy_$Dk)z}OAeSBbw#vmOINKy&4Wk*<75IUk5VdZJ*a5E7mx<&)C{ME#Jp-}2nz z%(Cn+r=80%iVr}JJt*2>T1jZ9+t1TknF7e=6effyqou+kB9!Hy1NL*Qr6q)KJ~hXl zODh}lG!tmJI$#K(`ANqZ_(w(@1Rg<%P}bA%6C*1{r4*N}gS?3XqhqGPPy>M^th!&R zD8?}|43;>_7nDLM@Nf`dt?;$(2auD50w{qquax?V0yki|xxR#rMo{K2Q27C$(~Ah- z+cT?pN0mp(6C4RX77}$It6*8@Z4i*s-o1O>w>S*6g#|=TWt}i*zToCk-s8Jx;X9|6 zebIs-D{3P=_rxtmWN@Fy9k((wq~W|VF6dy zgsG*g%)i#=(4vx?!n z#M33(b3@_v)_MIlpx?%bb@6>SH#4TiXn|0#sF@-_vG-Fa7vS@c&BB416a*l$tpc7S>h?Pa&|t0ju&^nf$qCJ^Im14pR1B=U4rAbr?+HibgF2^~~!bC08|Z zaZ`C6u{=r;vkM5kOZmJSpjK*CCyfC)K&A53MvL8pr7@K}PzZJ^8224rg1wK;)V7~p zE1E`QXyh|QfHqF`Yg5}j02>4ZV6GUYaOnbc%^FI_JkG7^F@ktD@$5YO-Qh(zHQfZ{ zra3Yu<5**)Fc=QA%5O6GP0aaE;!@9ewMj5QL=5DF-U`w@3dI){7H6`sTH&*1=9UHA zrtbg>&PLg`Qd)cw>%^HQ=}lw`&G`QnUFmlZr$byuYdi!fYBK(<>dCfSOA4n?s;7d0 zP>%vDF3|nbGYfG4LCasy&cX9dMFXOr2`t*1+I=LLp&($T+)@;mTO-DYS*o5@5{#Ld zW)(dw8kiH-^8N9*r`&gFPguKHRR(pmrUqXvSUc_ta~C#z_{xJ8&Xk`DB$*5F(^(0c zQFkAhhna;Gg$Iqd`lhUG3qT?ZXkrSQmBugi1BwPn(2aQ*9A03vuRJ;fUq7)7 zCrS9#*z<8u@FhKXgCfv}xw2x){`~!IKzbe63V-;ilpWK(fHgfU^uJIsX- zC3JMwY3K1?_^rP>;f|>e%`;y1?WM$@=@00C9`eCy1;wSz`c|hJLE!_Ms+rYz= z0Y+k)Ou47&omO%}Maeoo{rz{Q;G=(g3O4Q>gcJK_VPUojVfSJ36r}r*Jg0nfTTnQ` z7$C#NsB8Yiy6sABKNQr(0ICe;8hOeE?H&dWi-6cSvJtKB)4*3dK%W2)Sv&UrKYijj z{QU#d0&m_gnkxMJ|8dmym(xWoheeu0&iTML8u5?s+wKDk@M|7Ei0T#V(!Bqpe>>q6 zP&pDRB|h4%FpRA(WOwI$)Fd3q$JI4n@%nK_yKnZmgmp!n>7 z^+NvFKRRUFAAl>i_PG;)Debla*ax4Ob<>p$p6HJeIH2!ao?78-a#+FlW;D!ykb+;M z0A&=)cYf)#Rkqc%YvW}@aPq)hW&N4)kz)@amnszRij?rK4<1*{-tJ|gb^1Zc%g>R=kvjeHdWbp4QWms^97b3L3?@P^rB_X z#R{H*$V7pZM$`##QOSL(8${7C+%wgMDBwQ$#GDiOqFizche7s;MTL!_4LRsMX2S7< ztW@=Fm=?eJsv)bG2K{d#KyEjfu%jlcFX)2Ecb|0L4i#K)jR*}P84`&Bun7p`A*`W; zsLTn*6b1XHzu{2O4}9PQhNjfehSYWs;LxE%2C^XxJM^V?!~(%YlpGSHyJwuw*i?b8 zrcW-pa|1V9ra17>q=R(V*Cyeaql<9+Eo)%iXctEZgtvy`OECH6Tl(OC`==McS00&$ z&whQ<{R~zR%u3i4!$u}Fk-7Qnpi*dq!ojk=6LVwFC_#a6+zm5u5w>4)HOclGtt?P6 zGpMc3Y<%KaFd~JyZ*)Ff!Bj6QRbllcT%mND{Dr5SI|6RxjnJ5`AL}Yl0YK6h^+Tv| ze*Bqv_!BGqA$UwD{;u0G2uHl|^YP%2`B)^HAk<5&9I$Mh{Z*I(v`hFYosE})B4Z^P zMLqrXH&RicRu005sj>j7F4}>cfwf!vVQ9P;Ld^%CoV9c5qfXQ76M~^QWZ@n1RDyOH zymr?R{Clei{_zj4h4In!)8xQmqU>{eTzEM}G;dVj15*TCneYRMm_RbN34WNLW{QI0 z8OoZBj!KwND@v2#D|`d45jTK>l0`))j|(dnalk|ex+aVNOYhwP|NNcnoI*!F0H)9n zgxbwEfB)@C7cZ)Q;IzuyblIR2=9ACNWi&{%LB+!!X8?A=E3-ZWikVC9y;X@Hu=`@C zw*NRNgkfWYNQuwC({iu2K#&m-8RHZhigoFG>coOu71(Trb@!J}#d0T3FT?-(hlk)D zH;=;GZyo`$Mh*-5OH7SKt!UNT}D1uq>$h2ixnAi2?MT`Y<;ZMBa>4F9CS$z*!U4HYf5qQ(9 zhMdsLpHo$p{ZIuDh*Fb1r@F!A*W=bd+U<i1nyJukZ^?g>G4@FllB#Ks( z(EieU*H;##q*O51SjMD$^k(hmU4!;BAT|WxPpPF^Y&b=6kkNe7FP~mwtmI2!u1E8IN07){F3u=_A=XP6{ z1<0g^`I;ySB+wyic@g262Pa|sYsTP|b>--ng?Vv`p#PgcJPhx6?I^s>2KWpMz;UZA z=BBAS@SSNSte0)+wQ+)8=UIH##vC5E(c_boY}t$}xdKo$0cNWR@d`-?5CAf|iR-$0 znT9Gjs3|}p4X5xo`0lbbFdawqp5**#sWk-`|&;hoVRpg08*Wl$EP7{JDj8{7KxU~QcO&`v;$ zya_)KR&%@yYqJ`0hIa4-{77d!VgVD3fBcrUuKw2^nQ@*5c?ZSm4YIys@Mx-b^c!lX zP(8_$cZQJ#?U>N=RTj>`yzLBlq*V>G7Z}>K=v!SKo=DJdvI0+nfB9DZQ{?D`Q^=1J zevPwXlYg4)f7V%jWcVh-(=*Uz6~Lh56EYrkeGX$((y5w`Vrr9+h7|B9j}fKwb{UY8 z-wBA=TsF`M@kVyOKC&aXn`{SFRV)$L3o9qOAij6$0F-BiY2ARlfXm-74i{cM42K?` ziu>QAJ8v(J+t>hk18;ieFx>X)VLvSh$Qa4YP!#=$FaNHl2ZPq~G@aY|kX=5bwt`F{ zljOj-?vW{Mjxw?h?oIJc$H)rDrB;(pFygQRRmHOa$w2Y+AFdA)9aX-E##I=GRRQ-^ zT?hD=ZPnI3PsskJ_Bp+isBsT!kB#t?;FA)rOZ0Q|m%i369os-L84b}l(QFta7CFM? z!VbQYg3IG6wInpFKWS zKnz*ExD+gbqECS1apTWq9^?uIxIm_tfWA(v;Qe$Df>mi>@1i-S?exKQ9)FrNCYV!$pVx<`mrZl{4_ZTh}$Gpq7_QET74#2gRrtVjV4Of&(Y!Fz$6+sL;Q*KGs zRLX*OB;I2c`90sBa&J=dp2jyXO_~O+zhn^B?-+nb|L$bv`txywvNw{^PV_iv`rQlm$o&bW2q-~aS+xNhg5v)nYdudHfeGmnAT$A}s0QWJEPzryQs zuMFsxUijI2pxRcu`3JCm`-VOa(Ssm+#2qQ%RsWGlxpvEq`$Dtoz)&YXIJ6 zrv~dry9Fvd0L2q3n&j)|UWs_#*}9>}eQtf#u*)Z}fIg%Q_PF`0wls<10Cn(B+g?&a zNxwnSx^Wsvx)@zXKu>KBSOLFoXTR-7uM_&M{+$KhPY{9tkmf2_wgc)$pG8QCrc|H% z+8O3WN!)}``u=zIG#oFSvh+Rn=$sN0{7P3S5J{&jPARSCqh&TF`wPre+x5B zs{|(9z%R@!x#hvwCMw4yZceJ&|Joz7?n6PnN)dF${+7f^(?s@=875%`QkgJSc-zg@ z!`*gS@mcF795}k@Ud%Z_KTU;fMZ;jGSOV=sIjKaTkk2uMLYb65(A$8m8+%}j6?S?# ziRSZMIYuOcuxfTT>CM3Bk~l5N;(yLt{1p91(8|)N2?-@y8KQLPv1x$JA?Nf_3I&Yf zR}MAts;TkBBxbptWDo-PlhZbS$It$+lLiWs$boGEe( z!o5(#pC!VE=b_Tn@dbGHyHl{`nh}__5&7BEi!rk61iwO_S()_G3?*7J{F?n-b`c5Z zsQU)hF9Q-qu1HFwiVA=MX{ZUeFkRr44%mR^Da-uF=_Mum{p`^NHwQjxudBE70QlYl zje!WU0A^#c-YU6%Yt>262l~34pwm=n>&9MZ?Mve+@h|M72z}yXV`_biEX~} zlnt*@EqM)q;D|ot~?32B2E;pUz(;Kznc>Q*yb}s|s)YKGHfCgI4^`^7KBw9gU zArC8o)jPIAK2J0iAO*1FrZMLU#2sL`ina};NI%kxMoaEPF9(q#piM0|U7b#L;q$`G zJ@n6v$`(qfo_rNLOj&T4SOX&qVC!Z}c^VEE9Nx6XwSaq3LHfLzxu$dR@BKEn_Bl*$ z*+VmiJ>z3PyuKGMe)T9EwsZc|hvswqg77Lq6~&s6c?8*bu}<+#O*0EkfK||i!nHI7 z=ipYWEZXo__ji61Yjt>^wjhQZ>kF6o&d6Fg4rE7{n!CEDy9KxW=DAYgl<+ zH++-8li-sQ2%f+)4V1D13BIy!s0@*>N4w8Dj_twRK$gZ|fe1)c0b*?v8qP$G2X9Ly?+Hq4Q{D&W#F2h8L zaEZT4N;AW=$>QFOk!I9S*s;?Dge=&VvnleP+nvtJ>%h(B#VOH{3122-9%6vO{_1+b zF4550@+E7iHG8%h1H-=f)FgLL!yn@VILnIwPkrq)?0f?$fitW$JMobfQ4sjn@puwSO%?+H+m4@COp4Sx&Avv<{3_QI_F4 zvXnHA(5f6}PLn{H0(uYbopJP`)eYLcr;Mnm%g2%fLJriGqs&Uc2FJSX*sg(NR=Lo$ zFRc!7m{qU&_Mehs2hjYK+7UAWLjlz8h`BRxq7e5^neaPfxjYrU=QgIcDu4|eHZ*M< zpt-y-eFO*AySz*gd9n|V+Q{|x{%%)t!&ny_JF}F*jR6|*c3Kj?DhR}niw*Mh$EGT1SWS@$o?|`^Qc)r-EzKPz55UR~v@^9;0o;4vC8Gq)|7*VsO43GpL|te7_vLdqy`c;b6YZUYM?w^MHCfK>*4c3r(Eg5!NH2?s!8 zDsFv(An;~63{wzb9Ul;nk!>VmDQ95ih6DXfSkqbehxW`m7vCMb6{NuxG(j$6^wq##dc&(jNTqtag6 zuLJHk4dhr?6-^O`oOVpAGj~ScS5vf&R+(+$~k?}ysgv0q?nrvgAL{Pf+N zpFce@%uEaq`nX(nH1_@@3sG3Nv9;|`Cr~cl$5GYh3=4S?8Vf+_U2xSiiV4thP}{B_ zaY|s%7f)47gu=w7_RG8JSf4|c(sR~!U^F_(c+WFUD@1dVYiX^2e5~7TI@;o{yI`HY zF9{(Ju*JkIc!KT)XZ7eo!s}mUf5~#(H^VBW{WF2t;Pje8UBa~ zTa(keaDn~ozyA!Jv@}e@U(lGUX%HRO*{A~8CieuwwN2YL_C$E(-2#;G zuj(1*k~Np+Ppw(ArunUJeXDK4PpR!M15q4c{^0%laohLLn1&fl44RmX2Lm5@I=uk1 z-4c(MP$+Vm0&MJc;6St}VAX)69fzFd{gq>&>OK*c4FFd40t4)`40PeHVYu@9*TEsX zw0G^fqnzyBX*sC zO}E>3Kp#>Hv_p@SMYaAP`lT4jNMTPnq;j)!m4MSmqLbFD(=yfptE4G#_v}#{+&r`B zK~*#r>Q^X?@F3qcCropcyELv*F&bc+EfnEO4cx}AE!Pdhn$3MqX-^$rjJ%cvJ&l{d z9Z{+#hJP4O!-X8#OJ87E5Ha;>*F|a9rsHk&C5ql-x}G`w-QDzk>#et1j5XmKG2fjvDCSE?(SW0u;zWzb>=SG8no4gVyEUwxJgub#KM7_W&4!iYT{s z4`VTm_0k}-ZN6+kxy}!ad+3oVcfZv#R<~uagO5(7enQssoA?cHFKjEifv(B<3a0V4iR^i&g;V;@G#?H=A zz=BG~q~s#)Q5t3R{gy8{VfL8iK^m{24$7PQ^naC2smcWzt~~l z$Zw7Y8TLoXsiof7Tq4_}IQ_I$&3w}m7%8F9+sf~SwcqkgB3G<{V^?0vZ*AO|)GG>q zw%F|OzGCG$XD0(n#>g=GdX2nvVt!mN+wF(F>;4_-wDP#!5-MIsu622NB?Omd(tAd> zl)m)PhIM~`KejDC=m4QF%}=DFul&L&9|6J@>}ui8i^ND^Vx*Iv_fabGLBHB5hAV|y za@X^&(aYy!u9wl-Tz8Z$qc$NczvnvCa9ZW}T*kD^AKy9D+IQ>l{I0Z$;F_iR0&|m; z^If%!c%XgEnaM;IZ$e*##hEk=^@;$)zhC_sOkL+V*zb(?=9LZe=y2~#8q{y=T_X=N z{o_@UoNJH~`fa!&_U=I?h)G|UBO%hUlF-xZ9P0!G6g>3#F$i}S(o&e66|b9w!{M%F zNCW3KoP{=!hmVaDqPO>AXoVjF&4TP`*jQwhVz&t$q`dgtt+bvk`gVjfYiaAYzjsz_ z{RbF?qjQuKRS{;r+)rpUuV-Q8_a-vFqNiiW^t?oGi@_b=Sgl1&rRmsjJDx4N%C~Az zn{#@@)JQBWjlFZ3q%-H#yobV|;T_mVWdK;nMfZz_Mrtd*BzgDKNtaEfca771SG=40 zi`bVEre;||8+-Y}y3?ju%?B3N7)Xi*wjQP3!Jn`Fw?9&V|Cwrr9$VP7J}gU315u&X ztVw2BE@Ngp8)j`6>v4kD^`Ei3D;;0HSg`Ae@Pnh)vsukfvuYdV()~1tL>@)^d7M2R zYbZzVRorDv3yL$ua4cgSBRcu{tW&q^8EoQ&zOzA3-uOvc$`cviuQj)UFFbU6x2B?l zfK+TJsMj$>kljSdtjmr*R&;)Bu6u31i`sQ4$gEqc%6jqiRvg93!pLaaI8Ya3ZrP3j z_;jbwpU=dtsAkeTvQS51***iVRJ2Wm`iNyN`gxUTlNyLG=HC@N(Z%nEyCzcoYkk5k z|FdvSXQ>;YO}vN7ZmNnUt!CL!sr$^7?{2sjqXNMD^;kM-^&lYeUO66=KFfb5JE2z3 z{|9@x@eRH}?;sBYPors8<-O;M3vQ_Ka_d}><(s*U326w}srFk2$bfKF65vRl2B3`q zMAndgN!^dG)GknzHEF?VzHZw#4$?F*1c)kx-IWKk8e9c&@qe?3RRfjb)6 zg;mHFyx3qkN2F(U zTnmyG5vc+CY?-I|loj0afmtlRQZqdId+v5WPa+O%nTCutA%S=%YK%%9p$Dy6^e z{yys2ohTk)85CfP5CDcv@MhKUFgA=jD&oX*wMxvfy|X~$u*ke&ACG}-(5)t z{rvLVc5Q8rKVBNm8q2o?>;e~YE{jQX2HSIwn^vzl=$&Y)^pfuXUaVJ-vY@W|Fyd_p z`fY1tX=5?OczXC%QzN9R^9)BBzGC5=UwoCIcUu&Df0B;Sw4G- zwIM~6QS-4izaQ5~Ee3KeXPSix2^MKw1nS6Z7r%Xj8IU_$bh&Tn@?tO_Hvh%iZD=Xo zZ*Ycw3uF>Rmo7}A(s3u9;m*Oki_C>FEl%P>%t4QTPXRuP^QtHE>ol(CMtUau?3kiz+jv&b=K9hbcOuj@4GJkM_&;T9lsFRY+Mx-wQiDnRXuePXQ7EqX22FaK&wxkt->L()mU-=EKtoHB@WgNXZoo-kV68i!`mpenJ2 z#`5_ALWe9-awC(TfAzG&REoAI658P=tKpR}I1xcM_X8kmbvbUuQ%?^MAjDj6@Yy{} zreQ0ERh*={k27Y9eT|JK*HXrS(se_8hrtBW2bYy$Vuw1rf3;}-cP6K5Nf$`Q0)GtKmM0(UUBjbp> zUL$7A$8v^(ziz(M)~)VrzPse{Mm=uk4ca5V^73)qei@d4(Ca?C*{ELi+S#*HZS+9M z|4Zn)NfS!}6GOecZ<*qt8p zh5ra7q5J+?XG9&m^mr=zvkXpD=Z3#^N=<}Jl`IE-o;&n6e&SxAk`u4_SOvI$LMsaF zC(Nw0B~q*sX`(&O5i>HWF<$z$71*9j{{bAXZduwXe0lGteTi&uE5io(lQ&z0D97^3 z&Ia#9s7v2;IC(up#yG}@R=9AVQPOFuwMM)BQJ3^AV;zaa;$8-!hqtl2AVQo_xb ze-w<-ikh}~3Y)D*J-hp~)@M+MoODcvZCXk1pF;ztn@Jhm+e5;uo)rg$9C|zFAqri& zD*{z`gdef2MSRAgAjN6u*#D$D!uR<Sf z-^FUz?T>N}-P~GBv5whU*M9`vS>u1JagF!adZIKrI5_I4Qy#3^2CE;wb{zv&?>N4_ zw{^Gh9lXDGJkCv(G;KeQp#nYDoifD!$XrM{Dxe0cG7V6&vsu#Twwh6k8-wUt}aa%uvX1q(&XBqS4-Xb@DBR*2t#MCmiea&i5D56 zu=awVp2GXW{e;@xkxF*|MHQ-J6}L?g(@ zNItWYaMJafpfGhj8wbg3*2v@@=6!xK6L%W6F(KT(?uf9){E_UQ_qpaO_iDiYj&~y) z*Mz$~*L@b92=dwtAAiw<8~sFuz&yF~8k1hdf7-=Egy7 zipF-^h2tO&o9Bw(q(yc+4cf6uaB{9mzqQW{zBL!&AuNX5+;82pUx&H6uqK*eGq(Ml zSfM`gMc>77?=H(E{MTtxoEBcOXWp9p_Py@og7*)GG$xDkNuCWwG-&X#eyXEFY2weD z`#nUyt=wo>i#$RmS-nq-e^|YFCECrx04=6xLFzBn?of7Iu^FdK-Gv>NZ% zZe8Z`bm~6&z)v`mFyg}KvdZ^DGgode-(*Zf8VuLOlK}WAdE`$0^Q6y@9AJM51hOuB z<^%AyZ>8%dO`PxqE~lUXULGE(Cwma=G1YRkz)q$2T(pN=vdD)7_}bXmY|crc56lOu z15Q1h$%Hs9ZB!)=W?Q z5RrqAA_*r6vU7!@AjJ@m+ce5~>zJ$Mz z@Y-9fzx}W2@uZ7|0dd>8G5*?+?llT=6)ABJcV~)wug0IoP1!^RX;#+^A$8gXM4SCL zS|4sDP!@#nIQ36NY=XL9QBJ!kAhc9STKjba)fZJ zM+i*m45X1d#X;HRmP5(uy`=TmNm}1vsmzCC+_21;3~EVzOGL>79NMU-eTJ7Bst|7H z&ppI}o!1yd!Dbuxf~eJhbTZX7A@J3|qqWuY59I}D%5jzue@{sHB#WU7#ggkE zzqY6B8E1ST)cZ@lm-F{$yQ)Q->&rGe&A+|0`j+yQR@HR7LCeFB1?+p_CfOfcPVYPIGP;66eZg8!}w(t#{UThHScIwo4rw&q3mdK#=<3T&|NL6gy<5YjV4W`hg>7Jj$cwf8)l)4QmGuo=C{Cm_J8(y_ zF{5$A<)dJvr%X$O@><|iyH0+=C88IOq7-Rh?5VL*t+d^`Fx#Fek?4>gL47l{YE3}r zO@`N7C4V(Vi5<16EsX;RwY;7KV!uRu5>Jon%~KC1nDH^35CKFS1P$VMAhY=i)|fLv z1gH`>^wIpd$*RoecsXS#^)xBirZ{r*hd9XlI!`y`uHb=g;~R&+I(n@SdCQ$qR{ z{B)N9BF-z{8(=PtR?VBokH^MAs={FvVdnf?oizz9@!>zeQ9)Pbtyfy~Q7cw`5v5Ng z{-BZtS{1{F!yI-<3~F7=SZB)KnHF$ch1nWJOsc1&Mxz-MYu?azq(o3sX=n!Wq^l)E zsOb0^YG~?V*-*wS;CrpLVY{apuEm6O_+lN+cr5^|=-@bJm#1<;agA?6$s8FlI(OY* zHTPz35h0F4W#HKvN(Xj*6>a74Zn&inycqgR60}o3p>VcXaH~7E2ve=ZwEfeFX+rX6 zg=tC?ckKmb5JT+Oy%Fdtc>o!6&bM!-Qoif6=8cFec-M?V>#-oeaX)RsWL9eM^;OQ> zyi(Q!59YhVKSH4aKg3-wOZLsFe*Nj{*}Ku2mz+bbD*n(*nHQ}83o$;q=j2-_tyGjr}5 z+Hw?mjCh21O?Ej9Qk2YVzY(j=pMsin5bm6RdG6kBOX*%8ZwvstVwADj@_s#YxG{=UR0gEk+zeeSDZD@)~ zIFQiT<22#KhPwl3fIMRP&Wl)g9#$0!%VQQEQ;H8U{FHFMtE+H%+W`V2n{v`(Qv`*C z{wfww&s%}-NAIr@ryoX=arB0|_+O{}Rz#WFDY(QAfLxo`N+~+*eMbOcOTL%TDZf58 z#ccA!6+Z%vF3rJR1o7(IrJW^@Tu^Ec!B2YzOX&t|uU}7Ie4y1@(Xl`YI&>F#V3h=3 z9iVl>)YP81HEsmdJ#ByYNl1H9<`~O}sP40vX$OrD5l9i4a?We9=IlvzrL1ea;Rw5RW5U-Y0Lg!q|wb>)7f6S)+ z9$8B&HmN1=;b%4^chtP59oZMb`$fJ@T?^!cwX@ z$R{S#q;bJ^V#a=B_SN z>qy=!11oZSHeu!z_Tc1ow+0~(-KBWkx`BbuO*}kKzd@lw@30(&TDJaU92wC>hQ!t< z?dKX`31FPZC2f}+aicgSxkTn%B?p5Dg-qH`G8BUUwT`UbCb(?4dLu! zh<(=e*Uo|-LeIrTfrhCT+#Xb~$bomTm`OYbpr5oCCW^Nafrn!;4G%s-c_SoPy$NsH zK&K~i0Z6uf{Jqg_szb8G#1A3xIqmuTf2=1~!Tsji#uH3G(C5l-G%lNqLp{+pRBi1z z1~|raFB3;AEA&14zNfYdrWB0pT9Xm-dD0a1GSbd$F_0dOoxkb#4UrCCRiuxg|HOUe zMzB7aUFe@bt3=z7wVJ;7_2kA^QHL}BR4V;kGbmy#VRHPEp1a`weEsx(-%1Pkpx|%L z@p5*49#mRZwkzRw)-d%D2spM1(kB~C$Q=*Ff9=Bsp#QW$;kHxe7V1mMc7NBahS*ba znX|axtTqWg%R$VE*YCe4JEUU!q^S9%utl{d!B#A^*w;GWP~4Gm$RFP>ZaBBEr5s3& zg~xYWyLQeut8vWq-l%uW)8|ILmh%sfHPci97Q9}Fw53-`rKH`cS0jZBJWCXRuVu&m z@1@~5t9|Q_lQdd%%Mh-W{KMX$d?030c=WA6LB`4Af%ovdpmut;{C|03dPrU}^Zj-5 zg-qJG6Mi=}Z^T5%j<|)c!o4p76FLM(%g!I&-ILRMkdu2?Q-1Rgy4BB?Zn6QWxewks zP8U$Bse2{magnB$C2jf=eUf-6KuhqNCtR1e1o9nUmQiUafD%`SD(Q2p4OEn`f+^kN zh{DAnK(6q>t|+RT|5BFODbMr2(DY-RABshgUa2GBM3PAZ?vUE^#jneW&S++G3!w|y z)hG>orZN}uX*FRi$j%OT!R`6b3hU!mxvIk1XIiwA%W)YXX`uL0gS)J(Y`@TaX@x#) zwyd~dyxez{2df~_ucDRwne?RJMqk`RbaXWKp+6aXq5F%4Gb6)?Hn&O--`$%VC@c8B z`zAx``Xa^3Ny}Kl+u>)Dr&n7Zd_AMU#bmOm-L+PJ7B-uh55eZ?YRqZRLYFWY;Ofeg z(lzIk+ox!fR6?y<=K}W9VIbq^frYLm8Y$@tE=nI#r|}?U+T`?h$jnCnA$FeCcl+Qa@ujdI)J&d7tF=YtxomC?8WPX z=kM?uwGhYw;}i-j&y~`zZV0de;!pBn>)qQXDU1x|3>@qX?^B#DfyV?uaE2vzdl-`n+@Vgp zS3YGd=DBjeK^x^=sPl`j9?!B~`9AWxZ0}Y@X4Mrq9iHf#g9>Q6(HQ1zhgx-$d1rA` z(AkIle}}&Ed|3HRm=qBTv9R5*HEW(A0Y8q8j)v!@kS%)cH5JHLln2KMhl~Y0-fSNd z41(PDt%A4hJ755RiPl)*y#tnZEUh1`BrbMenQvB7i~%W{9ZCN{PU>>LjAtSnyz|VqG-9gw|n7kZ09Mn z0kBp=p%xtY&?inxjVi!Qqm#HDbxveN{cghI_k_))z^mtT?PSQY(TNG&l*Gi*MWV;$ zyURm*(D70Ox;7;=vGKBz>DEUwZ=R%^ka+)ZD!a7zmReI@?B!C=frX_dOAXUfAg(`F zu-l^LJA$iDco3mo(#gYWL<3wkI7TwXFU8dqA=~U^@WauyWB&kfaKd6jngk7--rKL> znQ^OD*Ec+tJgUc8p26ApkP}R?8i6PD(RsjXo#KV0VD1)wK6k)}-@bA*+y5jF|Iw^& zXe*csUsG)Hck$l>2|fmU?^>LYZTs54aJ7ayDFCT+NU1N}?9mdlW@gzk_#^+O$4a92 z`}c7P9dzZq3T42qK{f|B7wF}P^6fZS9mW;UTJSz{o8NnT_XwRY@X&sr-xMODs<3Qx zJKA!WDLLljWQ_QyzS~CFO???{i$@kuWuhA{&w0_|uU?w+lowmpV(IYRJV|@e^^lsjKd^JJ?G)DchbtsfrwD~L4^(2NZr+km6|r4 z6tWCbJBO~RFb-5H8#A_fp0O zNWZ!fT>E!K9a}l2o3Kj_s~l{RBjs`O3X^2iol}_qxC8jv)=z6Ih|=fn%bv*jkLIx# z29FTwd<($GW+4wKv2LCWj;6{I5c$479GOK(s5?YTbHo5MiS;`pNC)@6jVw%GI_=N^~L^Kk`_R2Z- zM@)kF6aavv>s}EnKfdq<3Gujx1H@Dteyc*Q9)>aIahE z0~+|HulIJj>jJ~T$ay0d7uT}Mf~b&tZWS;ONeXx4%Td0PrutJ_dbuI^|W6w6033#b&R+A%yaf4Ii?3c|7Tq0nPULVyF0Drrpm!TiAy?*& z4TgJABT0~N%%9_b@HJnTz^>~J!9+|`4FV;Eue}C`5&Uandq}I%iDXX+k QurQChijFc=$vX1?0B%>a0{{R3 literal 0 HcmV?d00001 diff --git a/Copilot for Xcode/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@16w_1x.png b/Copilot for Xcode/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@16w_1x.png new file mode 100644 index 0000000000000000000000000000000000000000..2bb554dc085e31b4a4eb7bbb89b181ebcb818617 GIT binary patch literal 1087 zcmV-F1i<@=P)at5VQ9hz=bbGKoXf z(h7EQXe$&&FjNJrQ<{DWZG0ptQgIVkDfk~)!C7#yh*WTKa1cZX5#5|RDY$5O-j`I` zBHqX4{WzR+xm>^-P#G)s0x0R0kxay-wbZ)gdxM9bQ>tdNsG=+i{{6e_^U?L*Pl#Df zyLJ%SPh6MIE|+$m0#kqeUDcn-ni~Dz)Ip6I7T}SIm2Ha&-X$I}Xer{V;JnMng3~Ua zJD!zfocNYl(h6#ZxJfLhJM?@9mx^VrwS(B+pVe2F#T@EU%wZEI7>ZC)fdmENfBe&q zKaMSOS71;sj{+>pL`e}7vc&VypY?`La=`luFqi^{?y=ml8QI(eTNz>H>4`DhO&8ZcWB8pD|Hs-gR5j zJ%FgL7%OH2+~L@uU{sS4pg9=Ryi3uKt$mSXI2H#dU|wqjXiy^P>(OO6Okid_0iXCg+5snT*cc_evbnolZ@Y`e_lUS#UAK5ao19W1^3DkAj767Y} zHe12-w1pF+Asig^BbBjW*E#%@0Ms!)9Kwdh@bqm34targ0GAx~NfMsDDdYXuDvpnK zVrndm^%6tCCn2CKc>Tq~&AB`Z)GPgl0=L~nxMG=%^&HMqQzTv#X#ydo)u@G%3yqq| zv0ATINGh|e)orbO;6iH7h{mV84Hc%%pi literal 0 HcmV?d00001 diff --git a/Copilot for Xcode/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@16w_2x.png b/Copilot for Xcode/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@16w_2x.png new file mode 100644 index 0000000000000000000000000000000000000000..ce02bac7689d5c5506df9842509f6c7f0564e30b GIT binary patch literal 2105 zcmV-92*&q`P)at5VQ9hz=bbGKoXf z(h7EQXe$&&FjNJrQ<{DWZG0ptQgIVkDfk~)!C7#yh*WTKa1cZX5#5|RDY$5O-j`I` zBHqX4{WzR+xm>^-P#G)s0x0R0kxay-wbZ)gdxM9bQ>tdNsG=+i{{6e_^U?L*Pl#Df zyLJ%SPh6MIE|+$m0#kqeUDcn-ni~Dz)Ip6I7T}SIm2Ha&-X$I}Xer{V;JnMng3~Ua zJD!zfocNYl(h6#ZxJfLhJM?@9mx^VrwS(B+pVe2F#T@EU%wZEI7>ZC)fdmENfBe&q zKaMSOS71;sj{+>pL`e}7vc&VypY?`La=`luFqi^{?$uyQ1)e;Ao~E&Mj1_Gtkf? z2J+^_I9D*Fa30}Me*E^8WnVs20DDdhhBX9FC<@x^%U!7Osm>yW40GEsFz+SntjPD) ztcjVFC6--xgLQn#-Lle)EBB3goW(*_k^VGIK_d$4QH!bg`Pn2u!R zzCR|?c$!MVETuW$WkCR@g*ry?i7qFp)~~G(qMV4>IjrMMe*(SZX&J_$mQw6m7ofTW zN4sPAX&@o@G*x@>c1syn6Iwe~`S5+*LfWv);iEEglZEqrss#uTi3GVg1)$R6jBa5? zNR{L|a&`tc9~fjn)R&`cNQa11^saj;xkvQg2Wfo#%d{MCtaOtN289cokhZhQEs6jW zXo*FpBm^x6R)$>|i<$NqY~pj86GStaU0-R~v`-0X2PUEx1;9~B+_8u+0!e1FoXw&L zaEXB3RmDakZg2^6Hbdb^IBa{uFSBIy|F$*$9CBh_bg?H&2+EAPtshLE>!|enc$NNC=Ct`vv2mE}Z5%nROB zPzkab=WLrxAYfURgi_SmuL1Axu0nZGmCh~>q)u(1F=l5a ztjPeK?3gnq1u0KKMX{YJsTmp(S)MA!3+|Y|2OuLYiB@1p9LxTD25wN$U401{lth5;k>qs7 zc{x#XqP!L&MFXHZU7wuItlvPdmp+nRu`f1mK%=9V2r207Nysi*B}s4vUAZZpBSp@q zNs8rlM0-3z4JySK9ZzSmMcpzFhQC9NZ&jKAVViPBONib@wT=N%;xb+By1VOHn zb+=EI jpdc9hx0b}CwnY02JRRZvUWphU00000NkvXXu0mjfnfKp_ literal 0 HcmV?d00001 diff --git a/Copilot for Xcode/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@256w_1x.png b/Copilot for Xcode/Assets.xcassets/AppIcon.appiconset/CopilotforXcode-Icon@256w_1x.png new file mode 100644 index 0000000000000000000000000000000000000000..7674f663f683d3c8b14012770ac9d7e37ac9e4d8 GIT binary patch literal 42055 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

_S? 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