// !$*UTF8*$! { archiveVersion = 1; classes = { }; objectVersion = 77; objects = { /* Begin PBXBuildFile section */ 05CD861F694B84577A4B5A27 /* PairingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9BAF4FBE6CC23FDD9B40040 /* PairingTests.swift */; }; 09AC16350B4E83B71B05A9D5 /* ResumeCursor.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7961BE126AFEEE4B7AA6621 /* ResumeCursor.swift */; }; 16095F16FAB72320676A729D /* ResumeCursorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7607FF3804A2602B1C6A05D4 /* ResumeCursorTests.swift */; }; 1F353AB548615ECD7D241EF7 /* SessionConnection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 67F95D26CD899B18D07AB0B2 /* SessionConnection.swift */; }; 2AA3AC859917D32C1444FC5B /* FrameCodec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 15B6B497329B98A4508D963B /* FrameCodec.swift */; }; 2D8C05476A83F5CAB9A55A11 /* SidecarCredential.swift in Sources */ = {isa = PBXBuildFile; fileRef = D3FCCEE1BAA0983D83FC84DD /* SidecarCredential.swift */; }; 304D26AD20F8DCE216490695 /* REVIEW_NOTES_2.md in Resources */ = {isa = PBXBuildFile; fileRef = 55DAE4BC86AE950146CD7B94 /* REVIEW_NOTES_2.md */; }; 30E07FF586EABBBB8C70AE60 /* piRemoteApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 73D747BC787A24B4E225B142 /* piRemoteApp.swift */; }; 3486C15393498F5306C8F43B /* ScrollbackCacheTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 22658EED98A0B3C2183AACDD /* ScrollbackCacheTests.swift */; }; 3AC56484E8AC068C10F31324 /* REVIEW_NOTES.md in Resources */ = {isa = PBXBuildFile; fileRef = 6DE4A325EEA53870390B89D9 /* REVIEW_NOTES.md */; }; 4877B4085C529C640FBBE6AB /* ThemeStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC48E39D19238178A180B30C /* ThemeStore.swift */; }; 56096DB64F700FC00C4D58CE /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AFF032BC30D513204211ADA5 /* Assets.xcassets */; }; 5F82D50C477F47893FADA8CB /* PasteSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3F776605A4109C047E44A89 /* PasteSheet.swift */; }; 5F8F5E6D2D5277CB90FA98A0 /* ThemeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99FA0A0FD737901834AD5705 /* ThemeTests.swift */; }; 7936EDE3DC79D02CF66F8863 /* QRScannerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0AF0B5FBC3ACEC8EF5C3FF12 /* QRScannerView.swift */; }; 7BD37B4A99532FD542D21526 /* TerminalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A75BE928FA90D8AF2C56615D /* TerminalViewController.swift */; }; 873DC9D5342E8F4AF2C5BEE9 /* Starscream in Frameworks */ = {isa = PBXBuildFile; productRef = CCBD990EEA7AD9DCF714DF97 /* Starscream */; }; 909A26B85FA298A870E407CD /* DeviceTokenRegistrar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 03ABB7E636E55917562D9A2C /* DeviceTokenRegistrar.swift */; }; 9855E1E1C856E20B339F2A0A /* NotificationDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 844A9C78194E7644A78FFA23 /* NotificationDelegate.swift */; }; 9AC28FD7FD38F250FE477441 /* ScrollbackCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = C98EF1F714A1A5E8D4C3DA2B /* ScrollbackCache.swift */; }; A1B807C3E8586E99507463B9 /* FrameCodecTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A85D5F5AF59E84DDC3AE168B /* FrameCodecTests.swift */; }; A3144EA79E01CB9D2DD552C8 /* PairingFlowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A38B86E930CB34DEB9E4C144 /* PairingFlowView.swift */; }; A56F82D6CEC7C6654C02C7BB /* WebSocketClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5205F823929F91450C58D4CA /* WebSocketClient.swift */; }; AF1F7740D9A9F40BA8308052 /* TerminalViewRepresentable.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39536FD31585716EF30C84C6 /* TerminalViewRepresentable.swift */; }; B3809456CF2E96F1B1B862C2 /* FontStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12767F24EC6ECFA77B280A8D /* FontStore.swift */; }; B73AD1B4B8830C1DEE8A78AE /* ModifierStateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 278215F3FD64C681C55F23A4 /* ModifierStateTests.swift */; }; B8800C5E81FBB0C3CE9C6E7D /* ModifierState.swift in Sources */ = {isa = PBXBuildFile; fileRef = DD8434E1D87FFE2616683652 /* ModifierState.swift */; }; C1F266B0DC9D7029E5E5B203 /* DeviceTokenRegistrarTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 83446A0D895B866E880D4F2D /* DeviceTokenRegistrarTests.swift */; }; C776D609DB29E5B4C90881F9 /* Keychain.swift in Sources */ = {isa = PBXBuildFile; fileRef = B772854E3FADA8998C93DAF5 /* Keychain.swift */; }; C823749124F98D46FB993247 /* KeychainTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F47CA5A1045A264958B360BF /* KeychainTests.swift */; }; D3E1C0562B97260D28FF1C11 /* Pairing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F544C25D53F52291E2FDB6F /* Pairing.swift */; }; D3E8D6064F38E4024A6863C9 /* TerminalTheme.swift in Sources */ = {isa = PBXBuildFile; fileRef = E3A7FB4B9C4D2B63B016E11A /* TerminalTheme.swift */; }; D77D662C3311D9646BE57596 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6BDDFB0C0D1D6D6FB490BA8D /* Preview Assets.xcassets */; }; E9126D5D059DAD3717FA2398 /* ModifierBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = F553E905D716538D9DA442E7 /* ModifierBar.swift */; }; F6C311D17A8DAA4F19464E25 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 188683139B863ED1AC03A1BB /* ContentView.swift */; }; F8CBA52AE2CC3D8496361D45 /* TerminalFont.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5B05BBDD469F51657ED89B0 /* TerminalFont.swift */; }; FADABBF0D0229D84832D3B78 /* SwiftTerm in Frameworks */ = {isa = PBXBuildFile; productRef = D095700C52C60FDA2CB38679 /* SwiftTerm */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ B301DDFED8092F66145718E3 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = B5A2356AA5371FBA25136FA6 /* Project object */; proxyType = 1; remoteGlobalIDString = 4910ACCEB67B73CBA3440774; remoteInfo = piRemote; }; /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ 03ABB7E636E55917562D9A2C /* DeviceTokenRegistrar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceTokenRegistrar.swift; sourceTree = ""; }; 0AF0B5FBC3ACEC8EF5C3FF12 /* QRScannerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QRScannerView.swift; sourceTree = ""; }; 0E401DECD467A1D3AB030610 /* piRemote.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = piRemote.entitlements; sourceTree = ""; }; 0F544C25D53F52291E2FDB6F /* Pairing.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Pairing.swift; sourceTree = ""; }; 12767F24EC6ECFA77B280A8D /* FontStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontStore.swift; sourceTree = ""; }; 15B6B497329B98A4508D963B /* FrameCodec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameCodec.swift; sourceTree = ""; }; 188683139B863ED1AC03A1BB /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; 22658EED98A0B3C2183AACDD /* ScrollbackCacheTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScrollbackCacheTests.swift; sourceTree = ""; }; 278215F3FD64C681C55F23A4 /* ModifierStateTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModifierStateTests.swift; sourceTree = ""; }; 2E2370A3190FDC144C822FF6 /* piRemote.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = piRemote.app; sourceTree = BUILT_PRODUCTS_DIR; }; 39536FD31585716EF30C84C6 /* TerminalViewRepresentable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalViewRepresentable.swift; sourceTree = ""; }; 5205F823929F91450C58D4CA /* WebSocketClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebSocketClient.swift; sourceTree = ""; }; 55DAE4BC86AE950146CD7B94 /* REVIEW_NOTES_2.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = REVIEW_NOTES_2.md; sourceTree = ""; }; 658CB2FCA96A8913B1753B1C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = ""; }; 67F95D26CD899B18D07AB0B2 /* SessionConnection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionConnection.swift; sourceTree = ""; }; 6BDDFB0C0D1D6D6FB490BA8D /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; 6DE4A325EEA53870390B89D9 /* REVIEW_NOTES.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = REVIEW_NOTES.md; sourceTree = ""; }; 73D747BC787A24B4E225B142 /* piRemoteApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = piRemoteApp.swift; sourceTree = ""; }; 7607FF3804A2602B1C6A05D4 /* ResumeCursorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ResumeCursorTests.swift; sourceTree = ""; }; 83446A0D895B866E880D4F2D /* DeviceTokenRegistrarTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceTokenRegistrarTests.swift; sourceTree = ""; }; 844A9C78194E7644A78FFA23 /* NotificationDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationDelegate.swift; sourceTree = ""; }; 99FA0A0FD737901834AD5705 /* ThemeTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeTests.swift; sourceTree = ""; }; A38B86E930CB34DEB9E4C144 /* PairingFlowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PairingFlowView.swift; sourceTree = ""; }; A3F776605A4109C047E44A89 /* PasteSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasteSheet.swift; sourceTree = ""; }; A75BE928FA90D8AF2C56615D /* TerminalViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalViewController.swift; sourceTree = ""; }; A85D5F5AF59E84DDC3AE168B /* FrameCodecTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameCodecTests.swift; sourceTree = ""; }; AFF032BC30D513204211ADA5 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; B772854E3FADA8998C93DAF5 /* Keychain.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Keychain.swift; sourceTree = ""; }; BC48E39D19238178A180B30C /* ThemeStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeStore.swift; sourceTree = ""; }; C5B05BBDD469F51657ED89B0 /* TerminalFont.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalFont.swift; sourceTree = ""; }; C7961BE126AFEEE4B7AA6621 /* ResumeCursor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ResumeCursor.swift; sourceTree = ""; }; C98EF1F714A1A5E8D4C3DA2B /* ScrollbackCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScrollbackCache.swift; sourceTree = ""; }; CD24C7095F23AF63CCFB23F0 /* piRemoteTests.xctest */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.cfbundle; path = piRemoteTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; D3FCCEE1BAA0983D83FC84DD /* SidecarCredential.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidecarCredential.swift; sourceTree = ""; }; DD8434E1D87FFE2616683652 /* ModifierState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModifierState.swift; sourceTree = ""; }; E3A7FB4B9C4D2B63B016E11A /* TerminalTheme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalTheme.swift; sourceTree = ""; }; E9BAF4FBE6CC23FDD9B40040 /* PairingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PairingTests.swift; sourceTree = ""; }; F47CA5A1045A264958B360BF /* KeychainTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeychainTests.swift; sourceTree = ""; }; F553E905D716538D9DA442E7 /* ModifierBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModifierBar.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ C346201325F7F2939EB7A792 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( FADABBF0D0229D84832D3B78 /* SwiftTerm in Frameworks */, 873DC9D5342E8F4AF2C5BEE9 /* Starscream in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ 161D89B853288EC766A0767D /* Products */ = { isa = PBXGroup; children = ( 2E2370A3190FDC144C822FF6 /* piRemote.app */, CD24C7095F23AF63CCFB23F0 /* piRemoteTests.xctest */, ); name = Products; sourceTree = ""; }; 1909DBD374F6922644BF6B4D /* Sessions */ = { isa = PBXGroup; children = ( 67F95D26CD899B18D07AB0B2 /* SessionConnection.swift */, ); path = Sessions; sourceTree = ""; }; 35A8DD31F76D71B8CDCDDC8D /* Core */ = { isa = PBXGroup; children = ( ED7AFC5C0EF365C5831C7245 /* Auth */, DCF268D44CD471E86B6192B0 /* Network */, D484C43F0BAEF3990BB88D8F /* Persistence */, 8E5B4A1E4AE8D09F6E581E02 /* Push */, 1909DBD374F6922644BF6B4D /* Sessions */, ); path = Core; sourceTree = ""; }; 49209A78102230A37C0FF8D0 /* Terminal */ = { isa = PBXGroup; children = ( 12767F24EC6ECFA77B280A8D /* FontStore.swift */, C5B05BBDD469F51657ED89B0 /* TerminalFont.swift */, E3A7FB4B9C4D2B63B016E11A /* TerminalTheme.swift */, A75BE928FA90D8AF2C56615D /* TerminalViewController.swift */, 39536FD31585716EF30C84C6 /* TerminalViewRepresentable.swift */, BC48E39D19238178A180B30C /* ThemeStore.swift */, ); path = Terminal; sourceTree = ""; }; 58E55A616A534D72FF9D4299 /* Preview Content */ = { isa = PBXGroup; children = ( 6BDDFB0C0D1D6D6FB490BA8D /* Preview Assets.xcassets */, ); path = "Preview Content"; sourceTree = ""; }; 69990A9885FB5B354E73AB90 /* Tests */ = { isa = PBXGroup; children = ( C06242078CD1DD2BD7C7A4FA /* CoreTests */, ); path = Tests; sourceTree = ""; }; 8A477F7D38B42EEB3F70323F /* Pairing */ = { isa = PBXGroup; children = ( A38B86E930CB34DEB9E4C144 /* PairingFlowView.swift */, 0AF0B5FBC3ACEC8EF5C3FF12 /* QRScannerView.swift */, ); path = Pairing; sourceTree = ""; }; 8E5B4A1E4AE8D09F6E581E02 /* Push */ = { isa = PBXGroup; children = ( 03ABB7E636E55917562D9A2C /* DeviceTokenRegistrar.swift */, 844A9C78194E7644A78FFA23 /* NotificationDelegate.swift */, ); path = Push; sourceTree = ""; }; 9B44B95A69D3C0C00BCF32FB = { isa = PBXGroup; children = ( C8D95B3C16FEE9C9FBE38FDE /* Sources */, 69990A9885FB5B354E73AB90 /* Tests */, 161D89B853288EC766A0767D /* Products */, ); sourceTree = ""; }; 9DF960DFB90BF425282C35D0 /* Input */ = { isa = PBXGroup; children = ( F553E905D716538D9DA442E7 /* ModifierBar.swift */, DD8434E1D87FFE2616683652 /* ModifierState.swift */, A3F776605A4109C047E44A89 /* PasteSheet.swift */, ); path = Input; sourceTree = ""; }; C06242078CD1DD2BD7C7A4FA /* CoreTests */ = { isa = PBXGroup; children = ( 83446A0D895B866E880D4F2D /* DeviceTokenRegistrarTests.swift */, A85D5F5AF59E84DDC3AE168B /* FrameCodecTests.swift */, F47CA5A1045A264958B360BF /* KeychainTests.swift */, 278215F3FD64C681C55F23A4 /* ModifierStateTests.swift */, E9BAF4FBE6CC23FDD9B40040 /* PairingTests.swift */, 7607FF3804A2602B1C6A05D4 /* ResumeCursorTests.swift */, 55DAE4BC86AE950146CD7B94 /* REVIEW_NOTES_2.md */, 6DE4A325EEA53870390B89D9 /* REVIEW_NOTES.md */, 22658EED98A0B3C2183AACDD /* ScrollbackCacheTests.swift */, 99FA0A0FD737901834AD5705 /* ThemeTests.swift */, ); path = CoreTests; sourceTree = ""; }; C8D95B3C16FEE9C9FBE38FDE /* Sources */ = { isa = PBXGroup; children = ( ECEA8716C9698DDD14367AC9 /* App */, 35A8DD31F76D71B8CDCDDC8D /* Core */, E68CFF24811DAA2A2ACE2EB3 /* UI */, ); path = Sources; sourceTree = ""; }; D484C43F0BAEF3990BB88D8F /* Persistence */ = { isa = PBXGroup; children = ( C98EF1F714A1A5E8D4C3DA2B /* ScrollbackCache.swift */, ); path = Persistence; sourceTree = ""; }; DCF268D44CD471E86B6192B0 /* Network */ = { isa = PBXGroup; children = ( 15B6B497329B98A4508D963B /* FrameCodec.swift */, C7961BE126AFEEE4B7AA6621 /* ResumeCursor.swift */, 5205F823929F91450C58D4CA /* WebSocketClient.swift */, ); path = Network; sourceTree = ""; }; E68CFF24811DAA2A2ACE2EB3 /* UI */ = { isa = PBXGroup; children = ( 9DF960DFB90BF425282C35D0 /* Input */, 8A477F7D38B42EEB3F70323F /* Pairing */, 49209A78102230A37C0FF8D0 /* Terminal */, ); path = UI; sourceTree = ""; }; ECEA8716C9698DDD14367AC9 /* App */ = { isa = PBXGroup; children = ( AFF032BC30D513204211ADA5 /* Assets.xcassets */, 188683139B863ED1AC03A1BB /* ContentView.swift */, 658CB2FCA96A8913B1753B1C /* Info.plist */, 0E401DECD467A1D3AB030610 /* piRemote.entitlements */, 73D747BC787A24B4E225B142 /* piRemoteApp.swift */, 58E55A616A534D72FF9D4299 /* Preview Content */, ); path = App; sourceTree = ""; }; ED7AFC5C0EF365C5831C7245 /* Auth */ = { isa = PBXGroup; children = ( B772854E3FADA8998C93DAF5 /* Keychain.swift */, 0F544C25D53F52291E2FDB6F /* Pairing.swift */, D3FCCEE1BAA0983D83FC84DD /* SidecarCredential.swift */, ); path = Auth; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ 2C3DD20A67B90DDE04FDEE41 /* piRemoteTests */ = { isa = PBXNativeTarget; buildConfigurationList = C553B125FB09A7C04D602AE2 /* Build configuration list for PBXNativeTarget "piRemoteTests" */; buildPhases = ( 6DDDB771E08071591D668B0A /* Sources */, 69F2CE4274A9B3A8BBB13CA5 /* Resources */, ); buildRules = ( ); dependencies = ( 2965A47833122165B123DA9B /* PBXTargetDependency */, ); name = piRemoteTests; packageProductDependencies = ( ); productName = piRemoteTests; productReference = CD24C7095F23AF63CCFB23F0 /* piRemoteTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; 4910ACCEB67B73CBA3440774 /* piRemote */ = { isa = PBXNativeTarget; buildConfigurationList = 7D4FC8D9F69801EED9D13DA7 /* Build configuration list for PBXNativeTarget "piRemote" */; buildPhases = ( 26E05B31335CA4B7811BD0F7 /* Sources */, 31D09DC5D7BBE74682559B5C /* Resources */, C346201325F7F2939EB7A792 /* Frameworks */, ); buildRules = ( ); dependencies = ( ); name = piRemote; packageProductDependencies = ( D095700C52C60FDA2CB38679 /* SwiftTerm */, CCBD990EEA7AD9DCF714DF97 /* Starscream */, ); productName = piRemote; productReference = 2E2370A3190FDC144C822FF6 /* piRemote.app */; productType = "com.apple.product-type.application"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ B5A2356AA5371FBA25136FA6 /* Project object */ = { isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = YES; LastUpgradeCheck = 1640; TargetAttributes = { 2C3DD20A67B90DDE04FDEE41 = { DevelopmentTeam = KNXX8R3648; ProvisioningStyle = Automatic; }; 4910ACCEB67B73CBA3440774 = { DevelopmentTeam = KNXX8R3648; ProvisioningStyle = Automatic; }; }; }; buildConfigurationList = 193C24354F678E5C0C3CC4D1 /* Build configuration list for PBXProject "piRemote" */; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( Base, en, ); mainGroup = 9B44B95A69D3C0C00BCF32FB; minimizedProjectReferenceProxies = 1; packageReferences = ( 310EBBB8ACF6C94857EC49A2 /* XCRemoteSwiftPackageReference "Starscream" */, D0AD1BFEB65E0B0DA2A16FC7 /* XCRemoteSwiftPackageReference "SwiftTerm" */, ); preferredProjectObjectVersion = 77; productRefGroup = 161D89B853288EC766A0767D /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( 4910ACCEB67B73CBA3440774 /* piRemote */, 2C3DD20A67B90DDE04FDEE41 /* piRemoteTests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ 31D09DC5D7BBE74682559B5C /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( 56096DB64F700FC00C4D58CE /* Assets.xcassets in Resources */, D77D662C3311D9646BE57596 /* Preview Assets.xcassets in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; 69F2CE4274A9B3A8BBB13CA5 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( 3AC56484E8AC068C10F31324 /* REVIEW_NOTES.md in Resources */, 304D26AD20F8DCE216490695 /* REVIEW_NOTES_2.md in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ 26E05B31335CA4B7811BD0F7 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( F6C311D17A8DAA4F19464E25 /* ContentView.swift in Sources */, 909A26B85FA298A870E407CD /* DeviceTokenRegistrar.swift in Sources */, B3809456CF2E96F1B1B862C2 /* FontStore.swift in Sources */, 2AA3AC859917D32C1444FC5B /* FrameCodec.swift in Sources */, C776D609DB29E5B4C90881F9 /* Keychain.swift in Sources */, E9126D5D059DAD3717FA2398 /* ModifierBar.swift in Sources */, B8800C5E81FBB0C3CE9C6E7D /* ModifierState.swift in Sources */, 9855E1E1C856E20B339F2A0A /* NotificationDelegate.swift in Sources */, D3E1C0562B97260D28FF1C11 /* Pairing.swift in Sources */, A3144EA79E01CB9D2DD552C8 /* PairingFlowView.swift in Sources */, 5F82D50C477F47893FADA8CB /* PasteSheet.swift in Sources */, 7936EDE3DC79D02CF66F8863 /* QRScannerView.swift in Sources */, 09AC16350B4E83B71B05A9D5 /* ResumeCursor.swift in Sources */, 9AC28FD7FD38F250FE477441 /* ScrollbackCache.swift in Sources */, 1F353AB548615ECD7D241EF7 /* SessionConnection.swift in Sources */, 2D8C05476A83F5CAB9A55A11 /* SidecarCredential.swift in Sources */, F8CBA52AE2CC3D8496361D45 /* TerminalFont.swift in Sources */, D3E8D6064F38E4024A6863C9 /* TerminalTheme.swift in Sources */, 7BD37B4A99532FD542D21526 /* TerminalViewController.swift in Sources */, AF1F7740D9A9F40BA8308052 /* TerminalViewRepresentable.swift in Sources */, 4877B4085C529C640FBBE6AB /* ThemeStore.swift in Sources */, A56F82D6CEC7C6654C02C7BB /* WebSocketClient.swift in Sources */, 30E07FF586EABBBB8C70AE60 /* piRemoteApp.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; 6DDDB771E08071591D668B0A /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( C1F266B0DC9D7029E5E5B203 /* DeviceTokenRegistrarTests.swift in Sources */, A1B807C3E8586E99507463B9 /* FrameCodecTests.swift in Sources */, C823749124F98D46FB993247 /* KeychainTests.swift in Sources */, B73AD1B4B8830C1DEE8A78AE /* ModifierStateTests.swift in Sources */, 05CD861F694B84577A4B5A27 /* PairingTests.swift in Sources */, 16095F16FAB72320676A729D /* ResumeCursorTests.swift in Sources */, 3486C15393498F5306C8F43B /* ScrollbackCacheTests.swift in Sources */, 5F8F5E6D2D5277CB90FA98A0 /* ThemeTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ 2965A47833122165B123DA9B /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 4910ACCEB67B73CBA3440774 /* piRemote */; targetProxy = B301DDFED8092F66145718E3 /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ 0E6C5BC837AB6537852A7F92 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = de.vpsj.piRemoteTests; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/piRemote.app/piRemote"; }; name = Debug; }; 2E146A9E4FCF9F393A9D41C0 /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = Sources/App/piRemote.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; INFOPLIST_FILE = Sources/App/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 17.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = "de.vpsj.pi-remote"; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Release; }; 30909A3060849FE14F196221 /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = KNXX8R3648; ENABLE_BITCODE = NO; 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 = ( "$(inherited)", "DEBUG=1", ); 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; IPHONEOS_DEPLOYMENT_TARGET = 17.0; MARKETING_VERSION = 0.1.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 6.0; }; name = Debug; }; 3C99CD7AE03C725305B787EA /* Release */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; CLANG_ANALYZER_NONNULL = YES; CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; CLANG_WARN_SUSPICIOUS_MOVE = YES; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = KNXX8R3648; ENABLE_BITCODE = NO; 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; IPHONEOS_DEPLOYMENT_TARGET = 17.0; MARKETING_VERSION = 0.1.0; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; SWIFT_COMPILATION_MODE = wholemodule; SWIFT_OPTIMIZATION_LEVEL = "-O"; SWIFT_VERSION = 6.0; }; name = Release; }; BCA8D933602A624F296AC6AB /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CODE_SIGN_ENTITLEMENTS = Sources/App/piRemote.entitlements; CODE_SIGN_IDENTITY = "iPhone Developer"; INFOPLIST_FILE = Sources/App/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 17.0; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = "de.vpsj.pi-remote"; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; BCD063DCDE72A18833A2C42B /* Release */ = { isa = XCBuildConfiguration; buildSettings = { BUNDLE_LOADER = "$(TEST_HOST)"; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", "@loader_path/Frameworks", ); PRODUCT_BUNDLE_IDENTIFIER = de.vpsj.piRemoteTests; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/piRemote.app/piRemote"; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ 193C24354F678E5C0C3CC4D1 /* Build configuration list for PBXProject "piRemote" */ = { isa = XCConfigurationList; buildConfigurations = ( 30909A3060849FE14F196221 /* Debug */, 3C99CD7AE03C725305B787EA /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; 7D4FC8D9F69801EED9D13DA7 /* Build configuration list for PBXNativeTarget "piRemote" */ = { isa = XCConfigurationList; buildConfigurations = ( BCA8D933602A624F296AC6AB /* Debug */, 2E146A9E4FCF9F393A9D41C0 /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; C553B125FB09A7C04D602AE2 /* Build configuration list for PBXNativeTarget "piRemoteTests" */ = { isa = XCConfigurationList; buildConfigurations = ( 0E6C5BC837AB6537852A7F92 /* Debug */, BCD063DCDE72A18833A2C42B /* Release */, ); defaultConfigurationIsVisible = 0; defaultConfigurationName = Debug; }; /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ 310EBBB8ACF6C94857EC49A2 /* XCRemoteSwiftPackageReference "Starscream" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/daltoniam/Starscream"; requirement = { kind = upToNextMajorVersion; minimumVersion = 4.0.0; }; }; D0AD1BFEB65E0B0DA2A16FC7 /* XCRemoteSwiftPackageReference "SwiftTerm" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/migueldeicaza/SwiftTerm"; requirement = { kind = upToNextMajorVersion; minimumVersion = 1.2.0; }; }; /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ CCBD990EEA7AD9DCF714DF97 /* Starscream */ = { isa = XCSwiftPackageProductDependency; package = 310EBBB8ACF6C94857EC49A2 /* XCRemoteSwiftPackageReference "Starscream" */; productName = Starscream; }; D095700C52C60FDA2CB38679 /* SwiftTerm */ = { isa = XCSwiftPackageProductDependency; package = D0AD1BFEB65E0B0DA2A16FC7 /* XCRemoteSwiftPackageReference "SwiftTerm" */; productName = SwiftTerm; }; /* End XCSwiftPackageProductDependency section */ }; rootObject = B5A2356AA5371FBA25136FA6 /* Project object */; }