// !$*UTF8*$!
{
	archiveVersion = 1;
	classes = {
	};
	objectVersion = 77;
	objects = {

/* Begin PBXBuildFile section */
		0572AF0EFE02ABD12CD5C584 /* SmokeUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE5E1A0BE69AF1FEF73E373F /* SmokeUITests.swift */; };
		05CD861F694B84577A4B5A27 /* PairingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E9BAF4FBE6CC23FDD9B40040 /* PairingTests.swift */; };
		09AC16350B4E83B71B05A9D5 /* ResumeCursor.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7961BE126AFEEE4B7AA6621 /* ResumeCursor.swift */; };
		132F60783EC43AE420FA7CD5 /* LockView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94525E2A804BF64F12806D4E /* LockView.swift */; };
		16095F16FAB72320676A729D /* ResumeCursorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7607FF3804A2602B1C6A05D4 /* ResumeCursorTests.swift */; };
		17F996CE1F5CF3FF12E5C1AB /* LockScreenUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DF52ADD110456E368EAE217C /* LockScreenUITests.swift */; };
		19E584DD72E8F6DE3AF4E77F /* MainTerminalView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D4E4BB86FBFBD80287048C1 /* MainTerminalView.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 */; };
		4334301CFE20E6B66BDE7D19 /* SessionSwitcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = E8C77FC9D24BB5F8DA96386C /* SessionSwitcher.swift */; };
		4877B4085C529C640FBBE6AB /* ThemeStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = BC48E39D19238178A180B30C /* ThemeStore.swift */; };
		56096DB64F700FC00C4D58CE /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AFF032BC30D513204211ADA5 /* Assets.xcassets */; };
		5D6FE414C7ECB0E9146BD388 /* BackgroundLifecycleUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A7B0C4212866DDF358CD483C /* BackgroundLifecycleUITests.swift */; };
		5E831AF2B2F42B09BF6E6960 /* SessionConnectionLifecycleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 30F52BCE08D851960C438B11 /* SessionConnectionLifecycleTests.swift */; };
		5F82D50C477F47893FADA8CB /* PasteSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = A3F776605A4109C047E44A89 /* PasteSheet.swift */; };
		5F8F5E6D2D5277CB90FA98A0 /* ThemeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99FA0A0FD737901834AD5705 /* ThemeTests.swift */; };
		6A52DBC5C2845ADA05B37A35 /* SessionRegistry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 959878B4816DD2617038A339 /* SessionRegistry.swift */; };
		6DDCCD4DB739E7710DCD9737 /* AppStateLifecycleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F758E6F77384904725670529 /* AppStateLifecycleTests.swift */; };
		734F2FECD358816F695D26CD /* AppState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 62DD6C03615573E339057EBF /* AppState.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 */; };
		9BDEBAD2C295FDD53946FB8C /* ModifierBarUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1E689590D75F152E90467016 /* ModifierBarUITests.swift */; };
		9E4B31AA31D8A900D36918A3 /* FaceIDGate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87407DA9C464BA9C9E118308 /* FaceIDGate.swift */; };
		A1527F94754A9205576C317C /* Helpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C1F7B03B47D7766D72BA3B8 /* Helpers.swift */; };
		A1B807C3E8586E99507463B9 /* FrameCodecTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = A85D5F5AF59E84DDC3AE168B /* FrameCodecTests.swift */; };
		A3144EA79E01CB9D2DD552C8 /* PairingFlowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A38B86E930CB34DEB9E4C144 /* PairingFlowView.swift */; };
		A51AABE190B66EE994D8415B /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5BCDE8061BF3E2DABEA12E7 /* SettingsView.swift */; };
		A56F82D6CEC7C6654C02C7BB /* WebSocketClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5205F823929F91450C58D4CA /* WebSocketClient.swift */; };
		AEAB8079223530B0437F3434 /* PairingUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BEEC5B3171A29F91F7D9B67E /* PairingUITests.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 */; };
		C87E6CCFC4ADC4AC4CAC4C0D /* SessionRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C3C69D7879985E77A45DE76 /* SessionRow.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 */; };
		D8F05ED47CD1A4A8298EDDFB /* StatusBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0C66962D8B5B6869B60F8101 /* StatusBar.swift */; };
		E9126D5D059DAD3717FA2398 /* ModifierBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = F553E905D716538D9DA442E7 /* ModifierBar.swift */; };
		EAF7C85B3223C503829028D3 /* SettingsUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96A48B8A34A0647A8BF12B55 /* SettingsUITests.swift */; };
		EF47351AD35418E508ED33C9 /* SessionSwitcherUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED280CEF6D334529433F20A3 /* SessionSwitcherUITests.swift */; };
		F10312EF88278BB719CCF7E7 /* StatusBarUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D30D90D7888D84A2EF1B22EA /* StatusBarUITests.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 */
		4BC4CAFF5DFB43FCB5A72089 /* PBXContainerItemProxy */ = {
			isa = PBXContainerItemProxy;
			containerPortal = B5A2356AA5371FBA25136FA6 /* Project object */;
			proxyType = 1;
			remoteGlobalIDString = 4910ACCEB67B73CBA3440774;
			remoteInfo = piRemote;
		};
		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 = "<group>"; };
		0AF0B5FBC3ACEC8EF5C3FF12 /* QRScannerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QRScannerView.swift; sourceTree = "<group>"; };
		0C66962D8B5B6869B60F8101 /* StatusBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusBar.swift; sourceTree = "<group>"; };
		0E401DECD467A1D3AB030610 /* piRemote.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = piRemote.entitlements; sourceTree = "<group>"; };
		0F544C25D53F52291E2FDB6F /* Pairing.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Pairing.swift; sourceTree = "<group>"; };
		12767F24EC6ECFA77B280A8D /* FontStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FontStore.swift; sourceTree = "<group>"; };
		15B6B497329B98A4508D963B /* FrameCodec.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameCodec.swift; sourceTree = "<group>"; };
		188683139B863ED1AC03A1BB /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
		1E689590D75F152E90467016 /* ModifierBarUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModifierBarUITests.swift; sourceTree = "<group>"; };
		22658EED98A0B3C2183AACDD /* ScrollbackCacheTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScrollbackCacheTests.swift; sourceTree = "<group>"; };
		278215F3FD64C681C55F23A4 /* ModifierStateTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModifierStateTests.swift; sourceTree = "<group>"; };
		2C3C69D7879985E77A45DE76 /* SessionRow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionRow.swift; sourceTree = "<group>"; };
		2E2370A3190FDC144C822FF6 /* piRemote.app */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.application; path = piRemote.app; sourceTree = BUILT_PRODUCTS_DIR; };
		30F52BCE08D851960C438B11 /* SessionConnectionLifecycleTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionConnectionLifecycleTests.swift; sourceTree = "<group>"; };
		39536FD31585716EF30C84C6 /* TerminalViewRepresentable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalViewRepresentable.swift; sourceTree = "<group>"; };
		3D4E4BB86FBFBD80287048C1 /* MainTerminalView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainTerminalView.swift; sourceTree = "<group>"; };
		5205F823929F91450C58D4CA /* WebSocketClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WebSocketClient.swift; sourceTree = "<group>"; };
		55DAE4BC86AE950146CD7B94 /* REVIEW_NOTES_2.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = REVIEW_NOTES_2.md; sourceTree = "<group>"; };
		5C1F7B03B47D7766D72BA3B8 /* Helpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Helpers.swift; sourceTree = "<group>"; };
		62DD6C03615573E339057EBF /* AppState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppState.swift; sourceTree = "<group>"; };
		658CB2FCA96A8913B1753B1C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
		67F95D26CD899B18D07AB0B2 /* SessionConnection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionConnection.swift; sourceTree = "<group>"; };
		6BDDFB0C0D1D6D6FB490BA8D /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
		6DE4A325EEA53870390B89D9 /* REVIEW_NOTES.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = REVIEW_NOTES.md; sourceTree = "<group>"; };
		73D747BC787A24B4E225B142 /* piRemoteApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = piRemoteApp.swift; sourceTree = "<group>"; };
		7607FF3804A2602B1C6A05D4 /* ResumeCursorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ResumeCursorTests.swift; sourceTree = "<group>"; };
		83446A0D895B866E880D4F2D /* DeviceTokenRegistrarTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceTokenRegistrarTests.swift; sourceTree = "<group>"; };
		844A9C78194E7644A78FFA23 /* NotificationDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NotificationDelegate.swift; sourceTree = "<group>"; };
		87407DA9C464BA9C9E118308 /* FaceIDGate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FaceIDGate.swift; sourceTree = "<group>"; };
		94525E2A804BF64F12806D4E /* LockView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LockView.swift; sourceTree = "<group>"; };
		959878B4816DD2617038A339 /* SessionRegistry.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionRegistry.swift; sourceTree = "<group>"; };
		96A48B8A34A0647A8BF12B55 /* SettingsUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsUITests.swift; sourceTree = "<group>"; };
		99FA0A0FD737901834AD5705 /* ThemeTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeTests.swift; sourceTree = "<group>"; };
		9E41A5D34EADEA9D2925DDF0 /* piRemoteUITests.xctest */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.cfbundle; path = piRemoteUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		A38B86E930CB34DEB9E4C144 /* PairingFlowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PairingFlowView.swift; sourceTree = "<group>"; };
		A3F776605A4109C047E44A89 /* PasteSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PasteSheet.swift; sourceTree = "<group>"; };
		A75BE928FA90D8AF2C56615D /* TerminalViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalViewController.swift; sourceTree = "<group>"; };
		A7B0C4212866DDF358CD483C /* BackgroundLifecycleUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackgroundLifecycleUITests.swift; sourceTree = "<group>"; };
		A85D5F5AF59E84DDC3AE168B /* FrameCodecTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FrameCodecTests.swift; sourceTree = "<group>"; };
		AFF032BC30D513204211ADA5 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
		B772854E3FADA8998C93DAF5 /* Keychain.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Keychain.swift; sourceTree = "<group>"; };
		BC48E39D19238178A180B30C /* ThemeStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeStore.swift; sourceTree = "<group>"; };
		BEEC5B3171A29F91F7D9B67E /* PairingUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PairingUITests.swift; sourceTree = "<group>"; };
		C5B05BBDD469F51657ED89B0 /* TerminalFont.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalFont.swift; sourceTree = "<group>"; };
		C5BCDE8061BF3E2DABEA12E7 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = "<group>"; };
		C7961BE126AFEEE4B7AA6621 /* ResumeCursor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ResumeCursor.swift; sourceTree = "<group>"; };
		C98EF1F714A1A5E8D4C3DA2B /* ScrollbackCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScrollbackCache.swift; sourceTree = "<group>"; };
		CD24C7095F23AF63CCFB23F0 /* piRemoteTests.xctest */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.cfbundle; path = piRemoteTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
		D30D90D7888D84A2EF1B22EA /* StatusBarUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StatusBarUITests.swift; sourceTree = "<group>"; };
		D3FCCEE1BAA0983D83FC84DD /* SidecarCredential.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SidecarCredential.swift; sourceTree = "<group>"; };
		DD8434E1D87FFE2616683652 /* ModifierState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModifierState.swift; sourceTree = "<group>"; };
		DF52ADD110456E368EAE217C /* LockScreenUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LockScreenUITests.swift; sourceTree = "<group>"; };
		E3A7FB4B9C4D2B63B016E11A /* TerminalTheme.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalTheme.swift; sourceTree = "<group>"; };
		E8C77FC9D24BB5F8DA96386C /* SessionSwitcher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionSwitcher.swift; sourceTree = "<group>"; };
		E9BAF4FBE6CC23FDD9B40040 /* PairingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PairingTests.swift; sourceTree = "<group>"; };
		ED280CEF6D334529433F20A3 /* SessionSwitcherUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SessionSwitcherUITests.swift; sourceTree = "<group>"; };
		EE5E1A0BE69AF1FEF73E373F /* SmokeUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SmokeUITests.swift; sourceTree = "<group>"; };
		F47CA5A1045A264958B360BF /* KeychainTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeychainTests.swift; sourceTree = "<group>"; };
		F553E905D716538D9DA442E7 /* ModifierBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModifierBar.swift; sourceTree = "<group>"; };
		F758E6F77384904725670529 /* AppStateLifecycleTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppStateLifecycleTests.swift; sourceTree = "<group>"; };
/* 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 */,
				9E41A5D34EADEA9D2925DDF0 /* piRemoteUITests.xctest */,
			);
			name = Products;
			sourceTree = "<group>";
		};
		1909DBD374F6922644BF6B4D /* Sessions */ = {
			isa = PBXGroup;
			children = (
				67F95D26CD899B18D07AB0B2 /* SessionConnection.swift */,
				959878B4816DD2617038A339 /* SessionRegistry.swift */,
			);
			path = Sessions;
			sourceTree = "<group>";
		};
		35A8DD31F76D71B8CDCDDC8D /* Core */ = {
			isa = PBXGroup;
			children = (
				ED7AFC5C0EF365C5831C7245 /* Auth */,
				DCF268D44CD471E86B6192B0 /* Network */,
				D484C43F0BAEF3990BB88D8F /* Persistence */,
				8E5B4A1E4AE8D09F6E581E02 /* Push */,
				1909DBD374F6922644BF6B4D /* Sessions */,
			);
			path = Core;
			sourceTree = "<group>";
		};
		35F24B7F065B257F93810E5B /* Sessions */ = {
			isa = PBXGroup;
			children = (
				2C3C69D7879985E77A45DE76 /* SessionRow.swift */,
				E8C77FC9D24BB5F8DA96386C /* SessionSwitcher.swift */,
			);
			path = Sessions;
			sourceTree = "<group>";
		};
		49209A78102230A37C0FF8D0 /* Terminal */ = {
			isa = PBXGroup;
			children = (
				12767F24EC6ECFA77B280A8D /* FontStore.swift */,
				3D4E4BB86FBFBD80287048C1 /* MainTerminalView.swift */,
				C5B05BBDD469F51657ED89B0 /* TerminalFont.swift */,
				E3A7FB4B9C4D2B63B016E11A /* TerminalTheme.swift */,
				A75BE928FA90D8AF2C56615D /* TerminalViewController.swift */,
				39536FD31585716EF30C84C6 /* TerminalViewRepresentable.swift */,
				BC48E39D19238178A180B30C /* ThemeStore.swift */,
			);
			path = Terminal;
			sourceTree = "<group>";
		};
		58E55A616A534D72FF9D4299 /* Preview Content */ = {
			isa = PBXGroup;
			children = (
				6BDDFB0C0D1D6D6FB490BA8D /* Preview Assets.xcassets */,
			);
			path = "Preview Content";
			sourceTree = "<group>";
		};
		69990A9885FB5B354E73AB90 /* Tests */ = {
			isa = PBXGroup;
			children = (
				C06242078CD1DD2BD7C7A4FA /* CoreTests */,
			);
			path = Tests;
			sourceTree = "<group>";
		};
		8A477F7D38B42EEB3F70323F /* Pairing */ = {
			isa = PBXGroup;
			children = (
				A38B86E930CB34DEB9E4C144 /* PairingFlowView.swift */,
				0AF0B5FBC3ACEC8EF5C3FF12 /* QRScannerView.swift */,
			);
			path = Pairing;
			sourceTree = "<group>";
		};
		8E5B4A1E4AE8D09F6E581E02 /* Push */ = {
			isa = PBXGroup;
			children = (
				03ABB7E636E55917562D9A2C /* DeviceTokenRegistrar.swift */,
				844A9C78194E7644A78FFA23 /* NotificationDelegate.swift */,
			);
			path = Push;
			sourceTree = "<group>";
		};
		9B44B95A69D3C0C00BCF32FB = {
			isa = PBXGroup;
			children = (
				C8D95B3C16FEE9C9FBE38FDE /* Sources */,
				69990A9885FB5B354E73AB90 /* Tests */,
				B259358DD628B98EC61A6736 /* UITests */,
				161D89B853288EC766A0767D /* Products */,
			);
			sourceTree = "<group>";
		};
		9DF960DFB90BF425282C35D0 /* Input */ = {
			isa = PBXGroup;
			children = (
				F553E905D716538D9DA442E7 /* ModifierBar.swift */,
				DD8434E1D87FFE2616683652 /* ModifierState.swift */,
				A3F776605A4109C047E44A89 /* PasteSheet.swift */,
			);
			path = Input;
			sourceTree = "<group>";
		};
		B259358DD628B98EC61A6736 /* UITests */ = {
			isa = PBXGroup;
			children = (
				A7B0C4212866DDF358CD483C /* BackgroundLifecycleUITests.swift */,
				5C1F7B03B47D7766D72BA3B8 /* Helpers.swift */,
				DF52ADD110456E368EAE217C /* LockScreenUITests.swift */,
				1E689590D75F152E90467016 /* ModifierBarUITests.swift */,
				BEEC5B3171A29F91F7D9B67E /* PairingUITests.swift */,
				ED280CEF6D334529433F20A3 /* SessionSwitcherUITests.swift */,
				96A48B8A34A0647A8BF12B55 /* SettingsUITests.swift */,
				EE5E1A0BE69AF1FEF73E373F /* SmokeUITests.swift */,
				D30D90D7888D84A2EF1B22EA /* StatusBarUITests.swift */,
			);
			path = UITests;
			sourceTree = "<group>";
		};
		C06242078CD1DD2BD7C7A4FA /* CoreTests */ = {
			isa = PBXGroup;
			children = (
				F758E6F77384904725670529 /* AppStateLifecycleTests.swift */,
				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 */,
				30F52BCE08D851960C438B11 /* SessionConnectionLifecycleTests.swift */,
				99FA0A0FD737901834AD5705 /* ThemeTests.swift */,
			);
			path = CoreTests;
			sourceTree = "<group>";
		};
		C7FBB3C467939760D2971070 /* Status */ = {
			isa = PBXGroup;
			children = (
				0C66962D8B5B6869B60F8101 /* StatusBar.swift */,
			);
			path = Status;
			sourceTree = "<group>";
		};
		C8D95B3C16FEE9C9FBE38FDE /* Sources */ = {
			isa = PBXGroup;
			children = (
				ECEA8716C9698DDD14367AC9 /* App */,
				35A8DD31F76D71B8CDCDDC8D /* Core */,
				E68CFF24811DAA2A2ACE2EB3 /* UI */,
			);
			path = Sources;
			sourceTree = "<group>";
		};
		D484C43F0BAEF3990BB88D8F /* Persistence */ = {
			isa = PBXGroup;
			children = (
				C98EF1F714A1A5E8D4C3DA2B /* ScrollbackCache.swift */,
			);
			path = Persistence;
			sourceTree = "<group>";
		};
		DCF268D44CD471E86B6192B0 /* Network */ = {
			isa = PBXGroup;
			children = (
				15B6B497329B98A4508D963B /* FrameCodec.swift */,
				C7961BE126AFEEE4B7AA6621 /* ResumeCursor.swift */,
				5205F823929F91450C58D4CA /* WebSocketClient.swift */,
			);
			path = Network;
			sourceTree = "<group>";
		};
		E68CFF24811DAA2A2ACE2EB3 /* UI */ = {
			isa = PBXGroup;
			children = (
				9DF960DFB90BF425282C35D0 /* Input */,
				8A477F7D38B42EEB3F70323F /* Pairing */,
				35F24B7F065B257F93810E5B /* Sessions */,
				F681ED5F43C5283558361FAC /* Settings */,
				C7FBB3C467939760D2971070 /* Status */,
				49209A78102230A37C0FF8D0 /* Terminal */,
			);
			path = UI;
			sourceTree = "<group>";
		};
		ECEA8716C9698DDD14367AC9 /* App */ = {
			isa = PBXGroup;
			children = (
				62DD6C03615573E339057EBF /* AppState.swift */,
				AFF032BC30D513204211ADA5 /* Assets.xcassets */,
				188683139B863ED1AC03A1BB /* ContentView.swift */,
				658CB2FCA96A8913B1753B1C /* Info.plist */,
				0E401DECD467A1D3AB030610 /* piRemote.entitlements */,
				73D747BC787A24B4E225B142 /* piRemoteApp.swift */,
				58E55A616A534D72FF9D4299 /* Preview Content */,
			);
			path = App;
			sourceTree = "<group>";
		};
		ED7AFC5C0EF365C5831C7245 /* Auth */ = {
			isa = PBXGroup;
			children = (
				87407DA9C464BA9C9E118308 /* FaceIDGate.swift */,
				B772854E3FADA8998C93DAF5 /* Keychain.swift */,
				0F544C25D53F52291E2FDB6F /* Pairing.swift */,
				D3FCCEE1BAA0983D83FC84DD /* SidecarCredential.swift */,
			);
			path = Auth;
			sourceTree = "<group>";
		};
		F681ED5F43C5283558361FAC /* Settings */ = {
			isa = PBXGroup;
			children = (
				94525E2A804BF64F12806D4E /* LockView.swift */,
				C5BCDE8061BF3E2DABEA12E7 /* SettingsView.swift */,
			);
			path = Settings;
			sourceTree = "<group>";
		};
/* End PBXGroup section */

/* Begin PBXNativeTarget section */
		2B14D5AC9C0B9175642D6460 /* piRemoteUITests */ = {
			isa = PBXNativeTarget;
			buildConfigurationList = FAF190D5257A3BA4C5F939C3 /* Build configuration list for PBXNativeTarget "piRemoteUITests" */;
			buildPhases = (
				6588DBB02A562A96AA88EE1A /* Sources */,
			);
			buildRules = (
			);
			dependencies = (
				94235F03119D91B660C7E290 /* PBXTargetDependency */,
			);
			name = piRemoteUITests;
			packageProductDependencies = (
			);
			productName = piRemoteUITests;
			productReference = 9E41A5D34EADEA9D2925DDF0 /* piRemoteUITests.xctest */;
			productType = "com.apple.product-type.bundle.ui-testing";
		};
		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 = {
					2B14D5AC9C0B9175642D6460 = {
						DevelopmentTeam = KNXX8R3648;
						ProvisioningStyle = Automatic;
						TestTargetID = 4910ACCEB67B73CBA3440774;
					};
					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 */,
				2B14D5AC9C0B9175642D6460 /* piRemoteUITests */,
			);
		};
/* 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 = (
				734F2FECD358816F695D26CD /* AppState.swift in Sources */,
				F6C311D17A8DAA4F19464E25 /* ContentView.swift in Sources */,
				909A26B85FA298A870E407CD /* DeviceTokenRegistrar.swift in Sources */,
				9E4B31AA31D8A900D36918A3 /* FaceIDGate.swift in Sources */,
				B3809456CF2E96F1B1B862C2 /* FontStore.swift in Sources */,
				2AA3AC859917D32C1444FC5B /* FrameCodec.swift in Sources */,
				C776D609DB29E5B4C90881F9 /* Keychain.swift in Sources */,
				132F60783EC43AE420FA7CD5 /* LockView.swift in Sources */,
				19E584DD72E8F6DE3AF4E77F /* MainTerminalView.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 */,
				6A52DBC5C2845ADA05B37A35 /* SessionRegistry.swift in Sources */,
				C87E6CCFC4ADC4AC4CAC4C0D /* SessionRow.swift in Sources */,
				4334301CFE20E6B66BDE7D19 /* SessionSwitcher.swift in Sources */,
				A51AABE190B66EE994D8415B /* SettingsView.swift in Sources */,
				2D8C05476A83F5CAB9A55A11 /* SidecarCredential.swift in Sources */,
				D8F05ED47CD1A4A8298EDDFB /* StatusBar.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;
		};
		6588DBB02A562A96AA88EE1A /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				5D6FE414C7ECB0E9146BD388 /* BackgroundLifecycleUITests.swift in Sources */,
				A1527F94754A9205576C317C /* Helpers.swift in Sources */,
				17F996CE1F5CF3FF12E5C1AB /* LockScreenUITests.swift in Sources */,
				9BDEBAD2C295FDD53946FB8C /* ModifierBarUITests.swift in Sources */,
				AEAB8079223530B0437F3434 /* PairingUITests.swift in Sources */,
				EF47351AD35418E508ED33C9 /* SessionSwitcherUITests.swift in Sources */,
				EAF7C85B3223C503829028D3 /* SettingsUITests.swift in Sources */,
				0572AF0EFE02ABD12CD5C584 /* SmokeUITests.swift in Sources */,
				F10312EF88278BB719CCF7E7 /* StatusBarUITests.swift in Sources */,
			);
			runOnlyForDeploymentPostprocessing = 0;
		};
		6DDDB771E08071591D668B0A /* Sources */ = {
			isa = PBXSourcesBuildPhase;
			buildActionMask = 2147483647;
			files = (
				6DDCCD4DB739E7710DCD9737 /* AppStateLifecycleTests.swift in Sources */,
				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 */,
				5E831AF2B2F42B09BF6E6960 /* SessionConnectionLifecycleTests.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 */;
		};
		94235F03119D91B660C7E290 /* PBXTargetDependency */ = {
			isa = PBXTargetDependency;
			target = 4910ACCEB67B73CBA3440774 /* piRemote */;
			targetProxy = 4BC4CAFF5DFB43FCB5A72089 /* 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;
		};
		CB33989104A2C99094B6896C /* Debug */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				BUNDLE_LOADER = "$(TEST_HOST)";
				IPHONEOS_DEPLOYMENT_TARGET = 17.0;
				LD_RUNPATH_SEARCH_PATHS = (
					"$(inherited)",
					"@executable_path/Frameworks",
					"@loader_path/Frameworks",
				);
				PRODUCT_BUNDLE_IDENTIFIER = "de.vpsj.pi-remote.uitests";
				SDKROOT = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
				TEST_TARGET_NAME = piRemote;
			};
			name = Debug;
		};
		F837F7618AB4341D74A53209 /* Release */ = {
			isa = XCBuildConfiguration;
			buildSettings = {
				BUNDLE_LOADER = "$(TEST_HOST)";
				IPHONEOS_DEPLOYMENT_TARGET = 17.0;
				LD_RUNPATH_SEARCH_PATHS = (
					"$(inherited)",
					"@executable_path/Frameworks",
					"@loader_path/Frameworks",
				);
				PRODUCT_BUNDLE_IDENTIFIER = "de.vpsj.pi-remote.uitests";
				SDKROOT = iphoneos;
				TARGETED_DEVICE_FAMILY = "1,2";
				TEST_TARGET_NAME = 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;
		};
		FAF190D5257A3BA4C5F939C3 /* Build configuration list for PBXNativeTarget "piRemoteUITests" */ = {
			isa = XCConfigurationList;
			buildConfigurations = (
				CB33989104A2C99094B6896C /* Debug */,
				F837F7618AB4341D74A53209 /* 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 */;
}
