// !$*UTF8*$! { archiveVersion = 1; classes = { }; objectVersion = 90; objects = { /* Begin PBXBuildFile section */ 1D3623260D0F684500981E51 /* OTPAppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* OTPAppDelegate.swift */; }; 8B0028B511EB75920092DE18 /* ScannerOverlayView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8B0028B411EB75920092DE18 /* ScannerOverlayView.swift */; }; C910ADC11BF0315A00C988F5 /* TokenList.swift in Sources */ = {isa = PBXBuildFile; fileRef = C910ADC01BF0315A00C988F5 /* TokenList.swift */; }; C9204A851E886A3500998D3E /* Acknowledgements.html in Resources */ = {isa = PBXBuildFile; fileRef = C9204A841E886A3500998D3E /* Acknowledgements.html */; }; C92708AC19CFB0750033128B /* TokenListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C92708AB19CFB0750033128B /* TokenListViewController.swift */; }; C93AD15219CD51BE007480E9 /* Colors.swift in Sources */ = {isa = PBXBuildFile; fileRef = C93AD15119CD51BE007480E9 /* Colors.swift */; }; C93BD6231C167CD100FFFB8F /* Root.swift in Sources */ = {isa = PBXBuildFile; fileRef = C93BD6221C167CD100FFFB8F /* Root.swift */; }; C93BD6251C16841D00FFFB8F /* RootViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C93BD6241C16841D00FFFB8F /* RootViewController.swift */; }; C93BD6291C168EBF00FFFB8F /* RootViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C93BD6281C168EBF00FFFB8F /* RootViewModel.swift */; }; C944A5571A7ECB0800E08B1E /* OneTimePassword.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = C944A5561A7ECB0800E08B1E /* OneTimePassword.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; C944A5591A7ECB3100E08B1E /* Base32.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = C944A5581A7ECB3100E08B1E /* Base32.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; C968D1151CB4C639004ED7BB /* DisplayTime.swift in Sources */ = {isa = PBXBuildFile; fileRef = C968D1141CB4C639004ED7BB /* DisplayTime.swift */; }; C97CDF261BEEA66A00D64406 /* SVProgressHUD.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = C97CDF241BEEA49300D64406 /* SVProgressHUD.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; C97CDF2C1BEEC90100D64406 /* QRScanner.swift in Sources */ = {isa = PBXBuildFile; fileRef = C97CDF2B1BEEC90100D64406 /* QRScanner.swift */; }; C983AB74197F98FC00975003 /* OTPAuthenticatorTests.m in Sources */ = {isa = PBXBuildFile; fileRef = C983AB73197F98FC00975003 /* OTPAuthenticatorTests.m */; }; C98B1ECA1AB2CEC300C59E53 /* TokenRowModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C98B1EC91AB2CEC300C59E53 /* TokenRowModel.swift */; }; C98B1ECC1AB3CF0700C59E53 /* TokenRowCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C98B1ECB1AB3CF0700C59E53 /* TokenRowCell.swift */; }; C99069D1180CBAC900BAEF53 /* TokenScannerViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C99069D0180CBAC900BAEF53 /* TokenScannerViewController.swift */; }; C99112681E202B860006A6C0 /* UITableView+Updates.swift in Sources */ = {isa = PBXBuildFile; fileRef = C99112671E202B860006A6C0 /* UITableView+Updates.swift */; }; C991126A1E2073710006A6C0 /* UITableViewUpdateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C99112691E2073710006A6C0 /* UITableViewUpdateTests.swift */; }; C9919CDD1BA64EED006237C1 /* TokenEntryForm.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9919CDC1BA64EED006237C1 /* TokenEntryForm.swift */; }; C9919CE01BA721A1006237C1 /* ButtonHeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9919CDF1BA721A1006237C1 /* ButtonHeaderView.swift */; }; C9919CE21BA733FD006237C1 /* Section.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9919CE11BA733FD006237C1 /* Section.swift */; }; C99B85251BC9AB7100A6C75D /* BarButtonViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C99B85241BC9AB7100A6C75D /* BarButtonViewModel.swift */; }; C9A1C1A61E501CB2009E65D6 /* InfoViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9A1C1A51E501CB2009E65D6 /* InfoViewController.swift */; }; C9A1C1A91E501D8B009E65D6 /* Info.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9A1C1A81E501D8B009E65D6 /* Info.swift */; }; C9A1C1AC1E5021A6009E65D6 /* BackupInfo.html in Resources */ = {isa = PBXBuildFile; fileRef = C9A1C1AA1E502195009E65D6 /* BackupInfo.html */; }; C9A1C1CE1E6CDBFB009E65D6 /* RootTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9A1C1CD1E6CDBFB009E65D6 /* RootTests.swift */; }; C9A23F2E2159C28200615846 /* Settings.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9A23F2D2159C28200615846 /* Settings.swift */; }; C9A262D01E170BD4004E6CEB /* AuthenticatorScreenshots.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9A262CF1E170BD4004E6CEB /* AuthenticatorScreenshots.swift */; }; C9A262D81E170E3A004E6CEB /* SnapshotHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9A262D71E170E3A004E6CEB /* SnapshotHelper.swift */; }; C9A262DA1E176A18004E6CEB /* Demo.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9A262D91E176A18004E6CEB /* Demo.swift */; }; C9AAB0791B9113BF000CE547 /* TokenFormModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9AAB0781B9113BF000CE547 /* TokenFormModels.swift */; }; C9AAB07F1B917EC3000CE547 /* TokenEditForm.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9AAB07E1B917EC3000CE547 /* TokenEditForm.swift */; }; C9B7328D1C09495D0076F77E /* TableDiff.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9B7328C1C09495D0076F77E /* TableDiff.swift */; }; C9B7328F1C0A8AE60076F77E /* TokenListViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9B7328E1C0A8AE60076F77E /* TokenListViewModel.swift */; }; C9BA64EA1C0C4FBC00610C7C /* UITableView+ReusableCells.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9BA64E91C0C4FBC00610C7C /* UITableView+ReusableCells.swift */; }; C9BEAE6019C67FD800533385 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = C9BEAE5F19C67FD800533385 /* LaunchScreen.xib */; }; C9C27228299946190067D723 /* ViewHierarchyHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9C27227299946190067D723 /* ViewHierarchyHelpers.swift */; }; C9C6CCA21842E331000100C2 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C9C6CCA11842E331000100C2 /* Images.xcassets */; }; C9CC09511BA903B7008C54FE /* TokenFormViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9CC09501BA903B7008C54FE /* TokenFormViewController.swift */; }; C9CC09531BA9133B008C54FE /* FocusCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9CC09521BA9133B008C54FE /* FocusCell.swift */; }; C9CC09551BA91D1C008C54FE /* TableViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9CC09541BA91D1C008C54FE /* TableViewModel.swift */; }; C9CDD1CF209662E100636056 /* DisplayOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9CDD1CE209662E100636056 /* DisplayOptions.swift */; }; C9CDD1D12096635300636056 /* DisplayOptionsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9CDD1D02096635300636056 /* DisplayOptionsViewController.swift */; }; C9D6C83F1906BD68004F0E08 /* SegmentedControlRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9D6C83E1906BD68004F0E08 /* SegmentedControlRow.swift */; }; C9D6C8461906CD54004F0E08 /* TextFieldRow.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9D6C8451906CD54004F0E08 /* TextFieldRow.swift */; }; C9D6C84C19075044004F0E08 /* ProgressRingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9D6C84B19075044004F0E08 /* ProgressRingView.swift */; }; C9DE02E71ED2234D00D7E01C /* InfoList.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DE02E61ED2234D00D7E01C /* InfoList.swift */; }; C9DE02E91ED227D600D7E01C /* InfoListViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9DE02E81ED227D600D7E01C /* InfoListViewController.swift */; }; C9E11E1121543E2A00C1AA53 /* Menu.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9E11E1021543E2A00C1AA53 /* Menu.swift */; }; C9E3FB9A1E281CBC00EFA8BB /* TokenScanner.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9E3FB991E281CBC00EFA8BB /* TokenScanner.swift */; }; C9E3FB9C1E2860DD00EFA8BB /* TokenScannerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9E3FB9B1E2860DD00EFA8BB /* TokenScannerTests.swift */; }; C9EB448E1C52A74200ACFA87 /* Component.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9EB448D1C52A74200ACFA87 /* Component.swift */; }; C9EB44901C52AE4500ACFA87 /* AppController.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9EB448F1C52AE4500ACFA87 /* AppController.swift */; }; C9F7A8611C4D90B50082E5AE /* TokenStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9F7A8601C4D90B50082E5AE /* TokenStore.swift */; }; CC46C4711DB3007D00EB4605 /* SearchField.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC46C4701DB3007D00EB4605 /* SearchField.swift */; }; CC46C4731DB3040300EB4605 /* TokenListTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC46C4721DB3040300EB4605 /* TokenListTests.swift */; }; CC471EEB1DC027A6006858AC /* TokenListViewControllerTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC471EEA1DC027A6006858AC /* TokenListViewControllerTest.swift */; }; CC471EED1DC1377F006858AC /* MockTableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC471EEC1DC1377F006858AC /* MockTableView.swift */; }; CCC409761DB28BFE000A050D /* TableDiffTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCC409751DB28BFE000A050D /* TableDiffTests.swift */; }; CCCD668B1E1C74B4005FE96E /* OneTimePasswordExtensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCCD668A1E1C74B4005FE96E /* OneTimePasswordExtensions.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ C9906A3C1812522100BAEF53 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; proxyType = 1; remoteGlobalIDString = 1D6058900D05DD3D006BFB54; remoteInfo = Authenticator; }; C9A262D21E170BD4004E6CEB /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 29B97313FDCFA39411CA2CEA /* Project object */; proxyType = 1; remoteGlobalIDString = 1D6058900D05DD3D006BFB54; remoteInfo = Authenticator; }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ C944A5531A7ECA5000E08B1E /* Copy Frameworks */ = { isa = PBXCopyFilesBuildPhase; dstPath = ""; dstSubfolder = Frameworks; files = ( C944A5591A7ECB3100E08B1E /* Base32.framework in Copy Frameworks */, C944A5571A7ECB0800E08B1E /* OneTimePassword.framework in Copy Frameworks */, C97CDF261BEEA66A00D64406 /* SVProgressHUD.framework in Copy Frameworks */, ); name = "Copy Frameworks"; }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ 1D3623250D0F684500981E51 /* OTPAppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OTPAppDelegate.swift; sourceTree = ""; }; 1D6058910D05DD3D006BFB54 /* Authenticator.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Authenticator.app; sourceTree = BUILT_PRODUCTS_DIR; }; 8B0028B411EB75920092DE18 /* ScannerOverlayView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ScannerOverlayView.swift; sourceTree = ""; }; 8B2B8AE1118BA49F00437315 /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README.md; sourceTree = ""; }; 8BF5147F118799AE005C936F /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; C910ADC01BF0315A00C988F5 /* TokenList.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TokenList.swift; sourceTree = ""; }; C91CDAEE214EEA82006488F7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; C91CDAFD214EF044006488F7 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; C9204A841E886A3500998D3E /* Acknowledgements.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = Acknowledgements.html; sourceTree = ""; }; C92708AB19CFB0750033128B /* TokenListViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TokenListViewController.swift; sourceTree = ""; }; C931A5FC1BFF6F9D00706A1C /* .hound.yml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = .hound.yml; sourceTree = ""; }; C931A5FE1BFF6FA600706A1C /* .swiftlint.yml */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 2; lastKnownFileType = text; path = .swiftlint.yml; sourceTree = ""; usesTabs = 0; }; C931A6021BFF707E00706A1C /* Cartfile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Cartfile; sourceTree = ""; }; C93AD15119CD51BE007480E9 /* Colors.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Colors.swift; sourceTree = ""; }; C93BD6221C167CD100FFFB8F /* Root.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Root.swift; sourceTree = ""; }; C93BD6241C16841D00FFFB8F /* RootViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RootViewController.swift; sourceTree = ""; }; C93BD6281C168EBF00FFFB8F /* RootViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RootViewModel.swift; sourceTree = ""; }; C944A5561A7ECB0800E08B1E /* OneTimePassword.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OneTimePassword.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C944A5581A7ECB3100E08B1E /* Base32.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = Base32.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C944A56A1A7F772600E08B1E /* Debug.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Configurations/Debug.xcconfig; sourceTree = ""; }; C944A56B1A7F772600E08B1E /* Profile.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Profile.xcconfig; path = Configurations/Profile.xcconfig; sourceTree = ""; }; C944A56C1A7F772600E08B1E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Configurations/Release.xcconfig; sourceTree = ""; }; C944A56D1A7F772600E08B1E /* Test.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Test.xcconfig; path = Configurations/Test.xcconfig; sourceTree = ""; }; C944A5731A7F772600E08B1E /* iOS-Application.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "iOS-Application.xcconfig"; sourceTree = ""; }; C944A5751A7F772600E08B1E /* iOS-Framework.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "iOS-Framework.xcconfig"; sourceTree = ""; }; C944A5761A7F772600E08B1E /* iOS-StaticLibrary.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = "iOS-StaticLibrary.xcconfig"; sourceTree = ""; }; C94765081C646E5E00C7527E /* Cartfile.private */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Cartfile.private; sourceTree = ""; }; C959A63C190A69120042DEC0 /* Icon.svg */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = Icon.svg; sourceTree = ""; }; C959A63E190A69E60042DEC0 /* GenerateIcons.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = GenerateIcons.sh; sourceTree = ""; }; C968D1141CB4C639004ED7BB /* DisplayTime.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DisplayTime.swift; sourceTree = ""; }; C96E60561DBC5F1B00484823 /* .codecov.yml */ = {isa = PBXFileReference; lastKnownFileType = text; path = .codecov.yml; sourceTree = ""; }; C9776E3318518801003D53CB /* LICENSE.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = LICENSE.txt; sourceTree = ""; }; C97CDF041BEE927200D64406 /* AUTHORS */ = {isa = PBXFileReference; lastKnownFileType = text; path = AUTHORS; sourceTree = ""; }; C97CDF241BEEA49300D64406 /* SVProgressHUD.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = SVProgressHUD.framework; sourceTree = BUILT_PRODUCTS_DIR; }; C97CDF2B1BEEC90100D64406 /* QRScanner.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = QRScanner.swift; sourceTree = ""; }; C983AB73197F98FC00975003 /* OTPAuthenticatorTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = OTPAuthenticatorTests.m; sourceTree = ""; }; C98B1EC91AB2CEC300C59E53 /* TokenRowModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TokenRowModel.swift; sourceTree = ""; }; C98B1ECB1AB3CF0700C59E53 /* TokenRowCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TokenRowCell.swift; sourceTree = ""; }; C98C7F331C5E888100DB1478 /* CHANGELOG.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = CHANGELOG.md; sourceTree = ""; }; C99069D0180CBAC900BAEF53 /* TokenScannerViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TokenScannerViewController.swift; sourceTree = ""; }; C9906A2E1812522100BAEF53 /* AuthenticatorTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AuthenticatorTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; C99112671E202B860006A6C0 /* UITableView+Updates.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UITableView+Updates.swift"; sourceTree = ""; }; C99112691E2073710006A6C0 /* UITableViewUpdateTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UITableViewUpdateTests.swift; sourceTree = ""; }; C9919CDC1BA64EED006237C1 /* TokenEntryForm.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TokenEntryForm.swift; sourceTree = ""; }; C9919CDF1BA721A1006237C1 /* ButtonHeaderView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ButtonHeaderView.swift; sourceTree = ""; }; C9919CE11BA733FD006237C1 /* Section.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Section.swift; sourceTree = ""; }; C99B85241BC9AB7100A6C75D /* BarButtonViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BarButtonViewModel.swift; sourceTree = ""; }; C9A1C1A51E501CB2009E65D6 /* InfoViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfoViewController.swift; sourceTree = ""; }; C9A1C1A81E501D8B009E65D6 /* Info.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Info.swift; sourceTree = ""; }; C9A1C1AA1E502195009E65D6 /* BackupInfo.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = BackupInfo.html; sourceTree = ""; }; C9A1C1CD1E6CDBFB009E65D6 /* RootTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RootTests.swift; sourceTree = ""; }; C9A23F2D2159C28200615846 /* Settings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Settings.swift; sourceTree = ""; }; C9A262CD1E170BD4004E6CEB /* AuthenticatorScreenshots.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = AuthenticatorScreenshots.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; C9A262CF1E170BD4004E6CEB /* AuthenticatorScreenshots.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AuthenticatorScreenshots.swift; sourceTree = ""; }; C9A262D71E170E3A004E6CEB /* SnapshotHelper.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = SnapshotHelper.swift; path = fastlane/SnapshotHelper.swift; sourceTree = SOURCE_ROOT; }; C9A262D91E176A18004E6CEB /* Demo.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Demo.swift; sourceTree = ""; }; C9AAB0781B9113BF000CE547 /* TokenFormModels.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TokenFormModels.swift; sourceTree = ""; }; C9AAB07E1B917EC3000CE547 /* TokenEditForm.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TokenEditForm.swift; sourceTree = ""; }; C9B7328C1C09495D0076F77E /* TableDiff.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableDiff.swift; sourceTree = ""; }; C9B7328E1C0A8AE60076F77E /* TokenListViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TokenListViewModel.swift; sourceTree = ""; }; C9BA64E91C0C4FBC00610C7C /* UITableView+ReusableCells.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UITableView+ReusableCells.swift"; sourceTree = ""; }; C9BEAE5F19C67FD800533385 /* LaunchScreen.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = LaunchScreen.xib; sourceTree = ""; }; C9C27227299946190067D723 /* ViewHierarchyHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewHierarchyHelpers.swift; sourceTree = ""; }; C9C6CCA11842E331000100C2 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; C9CC09501BA903B7008C54FE /* TokenFormViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TokenFormViewController.swift; sourceTree = ""; }; C9CC09521BA9133B008C54FE /* FocusCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FocusCell.swift; sourceTree = ""; }; C9CC09541BA91D1C008C54FE /* TableViewModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableViewModel.swift; sourceTree = ""; }; C9CDD1CE209662E100636056 /* DisplayOptions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DisplayOptions.swift; sourceTree = ""; }; C9CDD1D02096635300636056 /* DisplayOptionsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DisplayOptionsViewController.swift; sourceTree = ""; }; C9D6C83E1906BD68004F0E08 /* SegmentedControlRow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SegmentedControlRow.swift; sourceTree = ""; }; C9D6C8451906CD54004F0E08 /* TextFieldRow.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TextFieldRow.swift; sourceTree = ""; }; C9D6C84B19075044004F0E08 /* ProgressRingView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ProgressRingView.swift; sourceTree = ""; }; C9D844341D4C576B00D5E343 /* CONTRIBUTING.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = CONTRIBUTING.md; sourceTree = ""; }; C9D844361D4C59D600D5E343 /* CONDUCT.md */ = {isa = PBXFileReference; lastKnownFileType = net.daringfireball.markdown; path = CONDUCT.md; sourceTree = ""; }; C9DE02E61ED2234D00D7E01C /* InfoList.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfoList.swift; sourceTree = ""; }; C9DE02E81ED227D600D7E01C /* InfoListViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = InfoListViewController.swift; sourceTree = ""; }; C9E11E1021543E2A00C1AA53 /* Menu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Menu.swift; sourceTree = ""; }; C9E3FB991E281CBC00EFA8BB /* TokenScanner.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TokenScanner.swift; sourceTree = ""; }; C9E3FB9B1E2860DD00EFA8BB /* TokenScannerTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TokenScannerTests.swift; sourceTree = ""; }; C9EB448D1C52A74200ACFA87 /* Component.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Component.swift; sourceTree = ""; }; C9EB448F1C52AE4500ACFA87 /* AppController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppController.swift; sourceTree = ""; }; C9F7A8601C4D90B50082E5AE /* TokenStore.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TokenStore.swift; sourceTree = ""; }; CC46C4701DB3007D00EB4605 /* SearchField.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchField.swift; sourceTree = ""; }; CC46C4721DB3040300EB4605 /* TokenListTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TokenListTests.swift; sourceTree = ""; }; CC471EEA1DC027A6006858AC /* TokenListViewControllerTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TokenListViewControllerTest.swift; sourceTree = ""; }; CC471EEC1DC1377F006858AC /* MockTableView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MockTableView.swift; sourceTree = ""; }; CCC409751DB28BFE000A050D /* TableDiffTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TableDiffTests.swift; sourceTree = ""; }; CCCD668A1E1C74B4005FE96E /* OneTimePasswordExtensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = OneTimePasswordExtensions.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ 1D60588F0D05DD3D006BFB54 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; files = ( ); }; C9906A2B1812522100BAEF53 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; files = ( ); }; C9A262DB1E177431004E6CEB /* Frameworks */ = { isa = PBXFrameworksBuildPhase; files = ( ); }; /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ 080E96DDFE201D6D7F000001 /* Source */ = { isa = PBXGroup; children = ( 1D3623250D0F684500981E51 /* OTPAppDelegate.swift */, C9EB448F1C52AE4500ACFA87 /* AppController.swift */, C9EB448D1C52A74200ACFA87 /* Component.swift */, C9F7A8621C4F2E200082E5AE /* Data Store */, C981BBF21C5094A500A30CBA /* Root Component */, C98C1C4917D2F03400A07D3F /* Token List */, C9B0B9501BC9159300BD5844 /* Forms */, C97CDF2D1BEF10B300D64406 /* Scanner */, C9A1C1A71E501D5F009E65D6 /* Info */, C98C1C4E17D2F14500A07D3F /* Utility */, ); path = Source; sourceTree = ""; }; 19C28FACFE9D520D11CA2CBB /* Products */ = { isa = PBXGroup; children = ( 1D6058910D05DD3D006BFB54 /* Authenticator.app */, C9906A2E1812522100BAEF53 /* AuthenticatorTests.xctest */, C9A262CD1E170BD4004E6CEB /* AuthenticatorScreenshots.xctest */, ); name = Products; sourceTree = ""; }; 29B97314FDCFA39411CA2CEA /* CustomTemplate */ = { isa = PBXGroup; children = ( C97B68CB17D964D4005D1FE0 /* Authenticator */, C9906A331812522100BAEF53 /* AuthenticatorTests */, C9A262CE1E170BD4004E6CEB /* AuthenticatorScreenshots */, 29B97323FDCFA39411CA2CEA /* Frameworks */, C944A5661A7F772500E08B1E /* Configuration */, 19C28FACFE9D520D11CA2CBB /* Products */, C931A5FB1BFF6F3A00706A1C /* Tools */, C9776E32185187E8003D53CB /* Docs */, ); indentWidth = 4; name = CustomTemplate; sourceTree = ""; usesTabs = 0; }; 29B97317FDCFA39411CA2CEA /* Resources */ = { isa = PBXGroup; children = ( C9204A841E886A3500998D3E /* Acknowledgements.html */, C9A1C1AA1E502195009E65D6 /* BackupInfo.html */, 8BF5147F118799AE005C936F /* Info.plist */, C9F75C921843CFFD00B6FA14 /* App Icon */, C9C6CCA11842E331000100C2 /* Images.xcassets */, C9BEAE5F19C67FD800533385 /* LaunchScreen.xib */, ); path = Resources; sourceTree = ""; }; 29B97323FDCFA39411CA2CEA /* Frameworks */ = { isa = PBXGroup; children = ( C944A5581A7ECB3100E08B1E /* Base32.framework */, C944A5561A7ECB0800E08B1E /* OneTimePassword.framework */, C97CDF241BEEA49300D64406 /* SVProgressHUD.framework */, ); name = Frameworks; sourceTree = ""; }; C931A5FB1BFF6F3A00706A1C /* Tools */ = { isa = PBXGroup; children = ( C931A6021BFF707E00706A1C /* Cartfile */, C94765081C646E5E00C7527E /* Cartfile.private */, C96E60561DBC5F1B00484823 /* .codecov.yml */, C931A5FC1BFF6F9D00706A1C /* .hound.yml */, C931A5FE1BFF6FA600706A1C /* .swiftlint.yml */, ); name = Tools; sourceTree = ""; }; C944A5661A7F772500E08B1E /* Configuration */ = { isa = PBXGroup; children = ( C944A5671A7F772500E08B1E /* Base */, C944A5721A7F772600E08B1E /* iOS */, ); name = Configuration; path = Carthage/Checkouts/xcconfigs; sourceTree = ""; }; C944A5671A7F772500E08B1E /* Base */ = { isa = PBXGroup; children = ( C944A56A1A7F772600E08B1E /* Debug.xcconfig */, C944A56B1A7F772600E08B1E /* Profile.xcconfig */, C944A56C1A7F772600E08B1E /* Release.xcconfig */, C944A56D1A7F772600E08B1E /* Test.xcconfig */, ); path = Base; sourceTree = ""; }; C944A5721A7F772600E08B1E /* iOS */ = { isa = PBXGroup; children = ( C944A5731A7F772600E08B1E /* iOS-Application.xcconfig */, C944A5751A7F772600E08B1E /* iOS-Framework.xcconfig */, C944A5761A7F772600E08B1E /* iOS-StaticLibrary.xcconfig */, ); path = iOS; sourceTree = ""; }; C9776E32185187E8003D53CB /* Docs */ = { isa = PBXGroup; children = ( C97CDF041BEE927200D64406 /* AUTHORS */, C98C7F331C5E888100DB1478 /* CHANGELOG.md */, C9D844361D4C59D600D5E343 /* CONDUCT.md */, C9D844341D4C576B00D5E343 /* CONTRIBUTING.md */, C9776E3318518801003D53CB /* LICENSE.txt */, 8B2B8AE1118BA49F00437315 /* README.md */, ); name = Docs; sourceTree = ""; }; C97B68CB17D964D4005D1FE0 /* Authenticator */ = { isa = PBXGroup; children = ( 080E96DDFE201D6D7F000001 /* Source */, 29B97317FDCFA39411CA2CEA /* Resources */, ); path = Authenticator; sourceTree = ""; }; C97CDF2D1BEF10B300D64406 /* Scanner */ = { isa = PBXGroup; children = ( C9E3FB991E281CBC00EFA8BB /* TokenScanner.swift */, C97CDF2B1BEEC90100D64406 /* QRScanner.swift */, C99069D0180CBAC900BAEF53 /* TokenScannerViewController.swift */, 8B0028B411EB75920092DE18 /* ScannerOverlayView.swift */, ); name = Scanner; sourceTree = ""; }; C981BBF21C5094A500A30CBA /* Root Component */ = { isa = PBXGroup; children = ( C93BD6221C167CD100FFFB8F /* Root.swift */, C93BD6281C168EBF00FFFB8F /* RootViewModel.swift */, C93BD6241C16841D00FFFB8F /* RootViewController.swift */, ); name = "Root Component"; sourceTree = ""; }; C98C1C4517D2EDF500A07D3F /* Cells */ = { isa = PBXGroup; children = ( C98B1EC91AB2CEC300C59E53 /* TokenRowModel.swift */, C98B1ECB1AB3CF0700C59E53 /* TokenRowCell.swift */, C968D1141CB4C639004ED7BB /* DisplayTime.swift */, ); name = Cells; sourceTree = ""; }; C98C1C4917D2F03400A07D3F /* Token List */ = { isa = PBXGroup; children = ( C910ADC01BF0315A00C988F5 /* TokenList.swift */, C9B7328E1C0A8AE60076F77E /* TokenListViewModel.swift */, C92708AB19CFB0750033128B /* TokenListViewController.swift */, C98C1C4517D2EDF500A07D3F /* Cells */, C9D6C84B19075044004F0E08 /* ProgressRingView.swift */, CC46C4701DB3007D00EB4605 /* SearchField.swift */, ); name = "Token List"; sourceTree = ""; }; C98C1C4E17D2F14500A07D3F /* Utility */ = { isa = PBXGroup; children = ( C93AD15119CD51BE007480E9 /* Colors.swift */, C9A262D91E176A18004E6CEB /* Demo.swift */, C9B7328C1C09495D0076F77E /* TableDiff.swift */, C9BA64E91C0C4FBC00610C7C /* UITableView+ReusableCells.swift */, C99112671E202B860006A6C0 /* UITableView+Updates.swift */, ); name = Utility; sourceTree = ""; }; C9906A331812522100BAEF53 /* AuthenticatorTests */ = { isa = PBXGroup; children = ( C91CDAEE214EEA82006488F7 /* Info.plist */, C983AB73197F98FC00975003 /* OTPAuthenticatorTests.m */, C9A1C1CD1E6CDBFB009E65D6 /* RootTests.swift */, CCC409751DB28BFE000A050D /* TableDiffTests.swift */, CC46C4721DB3040300EB4605 /* TokenListTests.swift */, CC471EEA1DC027A6006858AC /* TokenListViewControllerTest.swift */, C9E3FB9B1E2860DD00EFA8BB /* TokenScannerTests.swift */, CC471EEC1DC1377F006858AC /* MockTableView.swift */, CCCD668A1E1C74B4005FE96E /* OneTimePasswordExtensions.swift */, C99112691E2073710006A6C0 /* UITableViewUpdateTests.swift */, C9C27227299946190067D723 /* ViewHierarchyHelpers.swift */, ); path = AuthenticatorTests; sourceTree = ""; }; C9A1C1A71E501D5F009E65D6 /* Info */ = { isa = PBXGroup; children = ( C9E11E1021543E2A00C1AA53 /* Menu.swift */, C9DE02E61ED2234D00D7E01C /* InfoList.swift */, C9DE02E81ED227D600D7E01C /* InfoListViewController.swift */, C9A1C1A81E501D8B009E65D6 /* Info.swift */, C9A1C1A51E501CB2009E65D6 /* InfoViewController.swift */, C9CDD1CE209662E100636056 /* DisplayOptions.swift */, C9CDD1D02096635300636056 /* DisplayOptionsViewController.swift */, ); name = Info; sourceTree = ""; }; C9A262CE1E170BD4004E6CEB /* AuthenticatorScreenshots */ = { isa = PBXGroup; children = ( C91CDAFD214EF044006488F7 /* Info.plist */, C9A262CF1E170BD4004E6CEB /* AuthenticatorScreenshots.swift */, C9A262D71E170E3A004E6CEB /* SnapshotHelper.swift */, ); path = AuthenticatorScreenshots; sourceTree = ""; }; C9B0B94F1BC9158200BD5844 /* View Models */ = { isa = PBXGroup; children = ( C9CC09541BA91D1C008C54FE /* TableViewModel.swift */, C9AAB0781B9113BF000CE547 /* TokenFormModels.swift */, C99B85241BC9AB7100A6C75D /* BarButtonViewModel.swift */, C9919CE11BA733FD006237C1 /* Section.swift */, ); name = "View Models"; sourceTree = ""; }; C9B0B9501BC9159300BD5844 /* Forms */ = { isa = PBXGroup; children = ( C9AAB07E1B917EC3000CE547 /* TokenEditForm.swift */, C9919CDC1BA64EED006237C1 /* TokenEntryForm.swift */, C9B0B94F1BC9158200BD5844 /* View Models */, C9D6C8401906BD6F004F0E08 /* Views */, ); name = Forms; sourceTree = ""; }; C9D6C8401906BD6F004F0E08 /* Views */ = { isa = PBXGroup; children = ( C9CC09501BA903B7008C54FE /* TokenFormViewController.swift */, C9CC09521BA9133B008C54FE /* FocusCell.swift */, C9D6C8451906CD54004F0E08 /* TextFieldRow.swift */, C9D6C83E1906BD68004F0E08 /* SegmentedControlRow.swift */, C9919CDF1BA721A1006237C1 /* ButtonHeaderView.swift */, ); name = Views; sourceTree = ""; }; C9F75C921843CFFD00B6FA14 /* App Icon */ = { isa = PBXGroup; children = ( C959A63C190A69120042DEC0 /* Icon.svg */, C959A63E190A69E60042DEC0 /* GenerateIcons.sh */, ); name = "App Icon"; sourceTree = ""; }; C9F7A8621C4F2E200082E5AE /* Data Store */ = { isa = PBXGroup; children = ( C9F7A8601C4D90B50082E5AE /* TokenStore.swift */, C9A23F2D2159C28200615846 /* Settings.swift */, ); name = "Data Store"; sourceTree = ""; }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ 1D6058900D05DD3D006BFB54 /* Authenticator */ = { isa = PBXNativeTarget; buildConfigurationList = 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "Authenticator" */; buildPhases = ( 1D60588D0D05DD3D006BFB54 /* Resources */, 1D60588E0D05DD3D006BFB54 /* Sources */, C910ADBF1BF00ABF00C988F5 /* Lint */, 1D60588F0D05DD3D006BFB54 /* Frameworks */, C944A5531A7ECA5000E08B1E /* Copy Frameworks */, ); buildRules = ( ); name = Authenticator; productName = Authenticator; productReference = 1D6058910D05DD3D006BFB54 /* Authenticator.app */; productType = "com.apple.product-type.application"; }; C9906A2D1812522100BAEF53 /* AuthenticatorTests */ = { isa = PBXNativeTarget; buildConfigurationList = C9906A401812522200BAEF53 /* Build configuration list for PBXNativeTarget "AuthenticatorTests" */; buildPhases = ( C9906A2A1812522100BAEF53 /* Sources */, C9906A2B1812522100BAEF53 /* Frameworks */, C9906A2C1812522100BAEF53 /* Resources */, ); buildRules = ( ); dependencies = ( C9906A3D1812522100BAEF53 /* PBXTargetDependency */, ); name = AuthenticatorTests; productName = AuthenticatorTests; productReference = C9906A2E1812522100BAEF53 /* AuthenticatorTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; C9A262CC1E170BD4004E6CEB /* AuthenticatorScreenshots */ = { isa = PBXNativeTarget; buildConfigurationList = C9A262D61E170BD4004E6CEB /* Build configuration list for PBXNativeTarget "AuthenticatorScreenshots" */; buildPhases = ( C9A262C91E170BD4004E6CEB /* Sources */, C9A262DB1E177431004E6CEB /* Frameworks */, ); buildRules = ( ); dependencies = ( C9A262D31E170BD4004E6CEB /* PBXTargetDependency */, ); name = AuthenticatorScreenshots; productName = AuthenticatorScreenshots; productReference = C9A262CD1E170BD4004E6CEB /* AuthenticatorScreenshots.xctest */; productType = "com.apple.product-type.bundle.ui-testing"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ 29B97313FDCFA39411CA2CEA /* Project object */ = { isa = PBXProject; attributes = { BuildIndependentTargetsInParallel = YES; CLASSPREFIX = OTP; LastSwiftMigration = 0700; LastSwiftUpdateCheck = 1000; LastUpgradeCheck = 2620; ORGANIZATIONNAME = "Matt Rubin"; TargetAttributes = { 1D6058900D05DD3D006BFB54 = { DevelopmentTeam = WD7ETSN9J9; LastSwiftMigration = 1020; ProvisioningStyle = Automatic; }; C9906A2D1812522100BAEF53 = { LastSwiftMigration = 1020; TestTargetID = 1D6058900D05DD3D006BFB54; }; C9A262CC1E170BD4004E6CEB = { CreatedOnToolsVersion = 8.2.1; LastSwiftMigration = 1020; TestTargetID = 1D6058900D05DD3D006BFB54; }; }; }; buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Authenticator" */; developmentRegion = en; hasScannedForEncodings = 1; knownRegions = ( en, Base, ); mainGroup = 29B97314FDCFA39411CA2CEA /* CustomTemplate */; preferredProjectObjectVersion = 90; projectDirPath = ""; projectRoot = ""; targets = ( 1D6058900D05DD3D006BFB54 /* Authenticator */, C9906A2D1812522100BAEF53 /* AuthenticatorTests */, C9A262CC1E170BD4004E6CEB /* AuthenticatorScreenshots */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ 1D60588D0D05DD3D006BFB54 /* Resources */ = { isa = PBXResourcesBuildPhase; files = ( C9A1C1AC1E5021A6009E65D6 /* BackupInfo.html in Resources */, C9204A851E886A3500998D3E /* Acknowledgements.html in Resources */, C9BEAE6019C67FD800533385 /* LaunchScreen.xib in Resources */, C9C6CCA21842E331000100C2 /* Images.xcassets in Resources */, ); }; C9906A2C1812522100BAEF53 /* Resources */ = { isa = PBXResourcesBuildPhase; files = ( ); }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ C910ADBF1BF00ABF00C988F5 /* Lint */ = { isa = PBXShellScriptBuildPhase; alwaysOutOfDate = 1; name = Lint; shellPath = /bin/sh; shellScript = ( "if command -v swiftlint >/dev/null 2>&1", "then", " swiftlint", "else", " echo \"warning: `swiftlint` command not found - See https://github.com/realm/SwiftLint#installation for installation instructions.\"", "fi", "", ); }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ 1D60588E0D05DD3D006BFB54 /* Sources */ = { isa = PBXSourcesBuildPhase; files = ( C93AD15219CD51BE007480E9 /* Colors.swift in Sources */, C9CDD1D12096635300636056 /* DisplayOptionsViewController.swift in Sources */, C9CDD1CF209662E100636056 /* DisplayOptions.swift in Sources */, C9DE02E71ED2234D00D7E01C /* InfoList.swift in Sources */, C9A23F2E2159C28200615846 /* Settings.swift in Sources */, C93BD6251C16841D00FFFB8F /* RootViewController.swift in Sources */, C9919CE01BA721A1006237C1 /* ButtonHeaderView.swift in Sources */, C9EB44901C52AE4500ACFA87 /* AppController.swift in Sources */, C99112681E202B860006A6C0 /* UITableView+Updates.swift in Sources */, C98B1ECA1AB2CEC300C59E53 /* TokenRowModel.swift in Sources */, C9BA64EA1C0C4FBC00610C7C /* UITableView+ReusableCells.swift in Sources */, CC46C4711DB3007D00EB4605 /* SearchField.swift in Sources */, C9B7328F1C0A8AE60076F77E /* TokenListViewModel.swift in Sources */, C99B85251BC9AB7100A6C75D /* BarButtonViewModel.swift in Sources */, C9AAB0791B9113BF000CE547 /* TokenFormModels.swift in Sources */, 1D3623260D0F684500981E51 /* OTPAppDelegate.swift in Sources */, C9919CE21BA733FD006237C1 /* Section.swift in Sources */, C9D6C8461906CD54004F0E08 /* TextFieldRow.swift in Sources */, C9B7328D1C09495D0076F77E /* TableDiff.swift in Sources */, C93BD6231C167CD100FFFB8F /* Root.swift in Sources */, C97CDF2C1BEEC90100D64406 /* QRScanner.swift in Sources */, C9AAB07F1B917EC3000CE547 /* TokenEditForm.swift in Sources */, C9D6C84C19075044004F0E08 /* ProgressRingView.swift in Sources */, C9A1C1A91E501D8B009E65D6 /* Info.swift in Sources */, C9CC09531BA9133B008C54FE /* FocusCell.swift in Sources */, C99069D1180CBAC900BAEF53 /* TokenScannerViewController.swift in Sources */, C9EB448E1C52A74200ACFA87 /* Component.swift in Sources */, C9A1C1A61E501CB2009E65D6 /* InfoViewController.swift in Sources */, C9D6C83F1906BD68004F0E08 /* SegmentedControlRow.swift in Sources */, C968D1151CB4C639004ED7BB /* DisplayTime.swift in Sources */, 8B0028B511EB75920092DE18 /* ScannerOverlayView.swift in Sources */, C9E11E1121543E2A00C1AA53 /* Menu.swift in Sources */, C9CC09551BA91D1C008C54FE /* TableViewModel.swift in Sources */, C92708AC19CFB0750033128B /* TokenListViewController.swift in Sources */, C9A262DA1E176A18004E6CEB /* Demo.swift in Sources */, C9DE02E91ED227D600D7E01C /* InfoListViewController.swift in Sources */, C9E3FB9A1E281CBC00EFA8BB /* TokenScanner.swift in Sources */, C93BD6291C168EBF00FFFB8F /* RootViewModel.swift in Sources */, C9F7A8611C4D90B50082E5AE /* TokenStore.swift in Sources */, C9CC09511BA903B7008C54FE /* TokenFormViewController.swift in Sources */, C98B1ECC1AB3CF0700C59E53 /* TokenRowCell.swift in Sources */, C910ADC11BF0315A00C988F5 /* TokenList.swift in Sources */, C9919CDD1BA64EED006237C1 /* TokenEntryForm.swift in Sources */, ); }; C9906A2A1812522100BAEF53 /* Sources */ = { isa = PBXSourcesBuildPhase; files = ( C9C27228299946190067D723 /* ViewHierarchyHelpers.swift in Sources */, C9E3FB9C1E2860DD00EFA8BB /* TokenScannerTests.swift in Sources */, CCCD668B1E1C74B4005FE96E /* OneTimePasswordExtensions.swift in Sources */, C991126A1E2073710006A6C0 /* UITableViewUpdateTests.swift in Sources */, CC471EEB1DC027A6006858AC /* TokenListViewControllerTest.swift in Sources */, C983AB74197F98FC00975003 /* OTPAuthenticatorTests.m in Sources */, CCC409761DB28BFE000A050D /* TableDiffTests.swift in Sources */, CC471EED1DC1377F006858AC /* MockTableView.swift in Sources */, C9A1C1CE1E6CDBFB009E65D6 /* RootTests.swift in Sources */, CC46C4731DB3040300EB4605 /* TokenListTests.swift in Sources */, ); }; C9A262C91E170BD4004E6CEB /* Sources */ = { isa = PBXSourcesBuildPhase; files = ( C9A262D01E170BD4004E6CEB /* AuthenticatorScreenshots.swift in Sources */, C9A262D81E170E3A004E6CEB /* SnapshotHelper.swift in Sources */, ); }; /* End PBXSourcesBuildPhase section */ /* Begin PBXTargetDependency section */ C9906A3D1812522100BAEF53 /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 1D6058900D05DD3D006BFB54 /* Authenticator */; targetProxy = C9906A3C1812522100BAEF53 /* PBXContainerItemProxy */; }; C9A262D31E170BD4004E6CEB /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 1D6058900D05DD3D006BFB54 /* Authenticator */; targetProxy = C9A262D21E170BD4004E6CEB /* PBXContainerItemProxy */; }; /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ 1D6058940D05DD3E006BFB54 /* Debug configuration for PBXNativeTarget "Authenticator" */ = { isa = XCBuildConfiguration; baseConfigurationReference = C944A5731A7F772600E08B1E /* iOS-Application.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; BUNDLE_DISPLAY_NAME = "${PRODUCT_NAME} ∆"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = WD7ETSN9J9; ENABLE_USER_SCRIPT_SANDBOXING = NO; INFOPLIST_FILE = Authenticator/Resources/Info.plist; PRODUCT_BUNDLE_IDENTIFIER = me.mattrubin.authenticator.dev; PRODUCT_NAME = Authenticator; SWIFT_TREAT_WARNINGS_AS_ERRORS = NO; TARGETED_DEVICE_FAMILY = 1; VERSIONING_SYSTEM = "apple-generic"; }; name = Debug; }; 1D6058950D05DD3E006BFB54 /* Release configuration for PBXNativeTarget "Authenticator" */ = { isa = XCBuildConfiguration; baseConfigurationReference = C944A5731A7F772600E08B1E /* iOS-Application.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; BUNDLE_DISPLAY_NAME = "${PRODUCT_NAME}"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_TEAM = WD7ETSN9J9; ENABLE_USER_SCRIPT_SANDBOXING = NO; INFOPLIST_FILE = Authenticator/Resources/Info.plist; PRODUCT_BUNDLE_IDENTIFIER = me.mattrubin.authenticator; PRODUCT_NAME = Authenticator; SWIFT_TREAT_WARNINGS_AS_ERRORS = NO; TARGETED_DEVICE_FAMILY = 1; VERSIONING_SYSTEM = "apple-generic"; }; name = Release; }; C01FCF4F08A954540054247B /* Debug configuration for PBXProject "Authenticator" */ = { isa = XCBuildConfiguration; baseConfigurationReference = C944A56A1A7F772600E08B1E /* Debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_MODULES_AUTOLINK = YES; CURRENT_PROJECT_VERSION = 0; DEAD_CODE_STRIPPING = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(BUILT_PRODUCTS_DIR)", ); GCC_DYNAMIC_NO_PIC = NO; IPHONEOS_DEPLOYMENT_TARGET = 16.0; MARKETING_VERSION = 2.1.3; STRING_CATALOG_GENERATE_SYMBOLS = YES; SWIFT_VERSION = 5.0; }; name = Debug; }; C01FCF5008A954540054247B /* Release configuration for PBXProject "Authenticator" */ = { isa = XCBuildConfiguration; baseConfigurationReference = C944A56C1A7F772600E08B1E /* Release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; CLANG_MODULES_AUTOLINK = YES; CURRENT_PROJECT_VERSION = 0; DEAD_CODE_STRIPPING = YES; ENABLE_USER_SCRIPT_SANDBOXING = YES; FRAMEWORK_SEARCH_PATHS = ( "$(inherited)", "$(BUILT_PRODUCTS_DIR)", ); GCC_DYNAMIC_NO_PIC = NO; IPHONEOS_DEPLOYMENT_TARGET = 16.0; MARKETING_VERSION = 2.1.3; STRING_CATALOG_GENERATE_SYMBOLS = YES; SWIFT_VERSION = 5.0; }; name = Release; }; C9906A3E1812522100BAEF53 /* Debug configuration for PBXNativeTarget "AuthenticatorTests" */ = { isa = XCBuildConfiguration; baseConfigurationReference = C944A5731A7F772600E08B1E /* iOS-Application.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/Authenticator.app/Authenticator"; DEAD_CODE_STRIPPING = YES; INFOPLIST_FILE = AuthenticatorTests/Info.plist; PRODUCT_NAME = "$(TARGET_NAME)"; TEST_HOST = "$(BUNDLE_LOADER)"; }; name = Debug; }; C9906A3F1812522100BAEF53 /* Release configuration for PBXNativeTarget "AuthenticatorTests" */ = { isa = XCBuildConfiguration; baseConfigurationReference = C944A5731A7F772600E08B1E /* iOS-Application.xcconfig */; buildSettings = { BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/Authenticator.app/Authenticator"; DEAD_CODE_STRIPPING = YES; INFOPLIST_FILE = AuthenticatorTests/Info.plist; PRODUCT_NAME = "$(TARGET_NAME)"; TEST_HOST = "$(BUNDLE_LOADER)"; }; name = Release; }; C9A262D41E170BD4004E6CEB /* Debug configuration for PBXNativeTarget "AuthenticatorScreenshots" */ = { isa = XCBuildConfiguration; baseConfigurationReference = C944A5731A7F772600E08B1E /* iOS-Application.xcconfig */; buildSettings = { DEAD_CODE_STRIPPING = YES; INFOPLIST_FILE = AuthenticatorScreenshots/Info.plist; PRODUCT_BUNDLE_IDENTIFIER = me.mattrubin.authenticator.screenshots; PRODUCT_NAME = "$(TARGET_NAME)"; TEST_TARGET_NAME = Authenticator; }; name = Debug; }; C9A262D51E170BD4004E6CEB /* Release configuration for PBXNativeTarget "AuthenticatorScreenshots" */ = { isa = XCBuildConfiguration; baseConfigurationReference = C944A5731A7F772600E08B1E /* iOS-Application.xcconfig */; buildSettings = { DEAD_CODE_STRIPPING = YES; INFOPLIST_FILE = AuthenticatorScreenshots/Info.plist; PRODUCT_BUNDLE_IDENTIFIER = me.mattrubin.authenticator.screenshots; PRODUCT_NAME = "$(TARGET_NAME)"; TEST_TARGET_NAME = Authenticator; }; name = Release; }; /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ 1D6058960D05DD3E006BFB54 /* Build configuration list for PBXNativeTarget "Authenticator" */ = { isa = XCConfigurationList; buildConfigurations = ( 1D6058940D05DD3E006BFB54 /* Debug configuration for PBXNativeTarget "Authenticator" */, 1D6058950D05DD3E006BFB54 /* Release configuration for PBXNativeTarget "Authenticator" */, ); defaultConfigurationName = Release; }; C01FCF4E08A954540054247B /* Build configuration list for PBXProject "Authenticator" */ = { isa = XCConfigurationList; buildConfigurations = ( C01FCF4F08A954540054247B /* Debug configuration for PBXProject "Authenticator" */, C01FCF5008A954540054247B /* Release configuration for PBXProject "Authenticator" */, ); defaultConfigurationName = Release; }; C9906A401812522200BAEF53 /* Build configuration list for PBXNativeTarget "AuthenticatorTests" */ = { isa = XCConfigurationList; buildConfigurations = ( C9906A3E1812522100BAEF53 /* Debug configuration for PBXNativeTarget "AuthenticatorTests" */, C9906A3F1812522100BAEF53 /* Release configuration for PBXNativeTarget "AuthenticatorTests" */, ); defaultConfigurationName = Release; }; C9A262D61E170BD4004E6CEB /* Build configuration list for PBXNativeTarget "AuthenticatorScreenshots" */ = { isa = XCConfigurationList; buildConfigurations = ( C9A262D41E170BD4004E6CEB /* Debug configuration for PBXNativeTarget "AuthenticatorScreenshots" */, C9A262D51E170BD4004E6CEB /* Release configuration for PBXNativeTarget "AuthenticatorScreenshots" */, ); defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; }