9/* Begin PBXBuildFile section */
10 940331732A336B5100200C5D /* DeferredRendering.swift in Sources */ = {isa = PBXBuildFile; fileRef = 940331722A336B5100200C5D /* DeferredRendering.swift */; };
11 9404B57D2A3EEBBA00068FA8 /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9404B57C2A3EEBBA00068FA8 /* SettingsView.swift */; };
12 941E18FA2A35362600A2EA98 /* Info.swift in Sources */ = {isa = PBXBuildFile; fileRef = 941E18F92A35362600A2EA98 /* Info.swift */; };
13 944EB0DB2FF1A0D5002C81C3 /* CaptionOverlay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 944EB0DA2FF1A0D1002C81C3 /* CaptionOverlay.swift */; };
14 944EB0DF2FF1AF01002C81C3 /* ScriptHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 944EB0DE2FF1AEFE002C81C3 /* ScriptHelper.swift */; };
15 945F17B02A33D167004FC479 /* ThumbnailImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 945F17AF2A33D167004FC479 /* ThumbnailImage.swift */; };
16 945F17B22A33D69B004FC479 /* FavoriteOverlay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 945F17B12A33D69B004FC479 /* FavoriteOverlay.swift */; };
17 945F17B42A33D726004FC479 /* ReviewStateIcon.swift in Sources */ = {isa = PBXBuildFile; fileRef = 945F17B32A33D726004FC479 /* ReviewStateIcon.swift */; };
18 945F17B62A33D7AA004FC479 /* ReviewStateBorder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 945F17B52A33D7AA004FC479 /* ReviewStateBorder.swift */; };
19 945F17B82A33DAC7004FC479 /* ReviewStateSaturation.swift in Sources */ = {isa = PBXBuildFile; fileRef = 945F17B72A33DAC7004FC479 /* ReviewStateSaturation.swift */; };
20 9492C9702A3C3803002E44EC /* Timer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9492C96F2A3C3803002E44EC /* Timer.swift */; };
21 94A0835E2A33E49E00238964 /* FocusedImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94A0835D2A33E49E00238964 /* FocusedImage.swift */; };
22 94A083612A33E98000238964 /* AlbumInfoOverlay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94A083602A33E98000238964 /* AlbumInfoOverlay.swift */; };
23 94A083632A33F30300238964 /* LoadingIndicatorOverlay.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94A083622A33F30300238964 /* LoadingIndicatorOverlay.swift */; };
24 94A083662A33F50900238964 /* Debug.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94A083652A33F50900238964 /* Debug.swift */; };
25 94A083682A33F6E900238964 /* ThumbnailList.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94A083672A33F6E900238964 /* ThumbnailList.swift */; };
26 94C5FFF22A33ADD4004ADDF5 /* PHFetchResultCollection.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94C5FFF12A33ADD4004ADDF5 /* PHFetchResultCollection.swift */; };
27 94C5FFF62A33B698004ADDF5 /* PHAssetHStack.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94C5FFF52A33B698004ADDF5 /* PHAssetHStack.swift */; };
28 94D2C8B92A320E6F00BEE15B /* ReviewState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94D2C8B82A320E6F00BEE15B /* ReviewState.swift */; };
29 94D2C8BD2A32796500BEE15B /* AlbumHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94D2C8BC2A32796500BEE15B /* AlbumHelpers.swift */; };
30 94D2C8BF2A3299BD00BEE15B /* PhotosLibrary.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94D2C8BE2A3299BD00BEE15B /* PhotosLibrary.swift */; };
31 94D2C8C12A32FCE300BEE15B /* PHAssetImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94D2C8C02A32FCE300BEE15B /* PHAssetImage.swift */; };
32 94D750F02A31A796005859E7 /* BlinkApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94D750EF2A31A796005859E7 /* BlinkApp.swift */; };
33 94D750F42A31A797005859E7 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 94D750F32A31A797005859E7 /* Assets.xcassets */; };
34 94D750F72A31A797005859E7 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 94D750F62A31A797005859E7 /* Preview Assets.xcassets */; };
35 94D751022A31A798005859E7 /* BlinkTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94D751012A31A798005859E7 /* BlinkTests.swift */; };
36 94D7510C2A31A798005859E7 /* BlinkUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94D7510B2A31A798005859E7 /* BlinkUITests.swift */; };
37 94D7510E2A31A798005859E7 /* BlinkUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94D7510D2A31A798005859E7 /* BlinkUITestsLaunchTests.swift */; };
38 94D751222A31BD8E005859E7 /* PhotoReviewer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94D751212A31BD8E005859E7 /* PhotoReviewer.swift */; };
39 94D7512B2A31D6AC005859E7 /* AssetHelpers.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94D7512A2A31D6AC005859E7 /* AssetHelpers.swift */; };
40 94F7E39E2A331A9E00763DB9 /* Statistics.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94F7E39D2A331A9E00763DB9 /* Statistics.swift */; };
41 94FCD4F42A3A62A800D884A1 /* OrderedCollections in Frameworks */ = {isa = PBXBuildFile; productRef = 94FCD4F32A3A62A800D884A1 /* OrderedCollections */; };
42 94FCD4F62A3A64F800D884A1 /* LRUCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = 94FCD4F52A3A64F800D884A1 /* LRUCache.swift */; };
43/* End PBXBuildFile section */
45/* Begin PBXContainerItemProxy section */
46 94D750FE2A31A798005859E7 /* PBXContainerItemProxy */ = {
47 isa = PBXContainerItemProxy;
48 containerPortal = 94D750E42A31A796005859E7 /* Project object */;
50 remoteGlobalIDString = 94D750EB2A31A796005859E7;
51 remoteInfo = BlinkReviewer;
53 94D751082A31A798005859E7 /* PBXContainerItemProxy */ = {
54 isa = PBXContainerItemProxy;
55 containerPortal = 94D750E42A31A796005859E7 /* Project object */;
57 remoteGlobalIDString = 94D750EB2A31A796005859E7;
58 remoteInfo = BlinkReviewer;
60/* End PBXContainerItemProxy section */
62/* Begin PBXFileReference section */
63 940331722A336B5100200C5D /* DeferredRendering.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeferredRendering.swift; sourceTree = "<group>"; };
64 9404B57C2A3EEBBA00068FA8 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = "<group>"; };
65 941E18F92A35362600A2EA98 /* Info.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Info.swift; sourceTree = "<group>"; };
66 944EB0DA2FF1A0D1002C81C3 /* CaptionOverlay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CaptionOverlay.swift; sourceTree = "<group>"; };
67 944EB0DE2FF1AEFE002C81C3 /* ScriptHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScriptHelper.swift; sourceTree = "<group>"; };
68 945F17AF2A33D167004FC479 /* ThumbnailImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThumbnailImage.swift; sourceTree = "<group>"; };
69 945F17B12A33D69B004FC479 /* FavoriteOverlay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FavoriteOverlay.swift; sourceTree = "<group>"; };
70 945F17B32A33D726004FC479 /* ReviewStateIcon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReviewStateIcon.swift; sourceTree = "<group>"; };
71 945F17B52A33D7AA004FC479 /* ReviewStateBorder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReviewStateBorder.swift; sourceTree = "<group>"; };
72 945F17B72A33DAC7004FC479 /* ReviewStateSaturation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReviewStateSaturation.swift; sourceTree = "<group>"; };
73 9492C96F2A3C3803002E44EC /* Timer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Timer.swift; sourceTree = "<group>"; };
74 94A0835D2A33E49E00238964 /* FocusedImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FocusedImage.swift; sourceTree = "<group>"; };
75 94A083602A33E98000238964 /* AlbumInfoOverlay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlbumInfoOverlay.swift; sourceTree = "<group>"; };
76 94A083622A33F30300238964 /* LoadingIndicatorOverlay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoadingIndicatorOverlay.swift; sourceTree = "<group>"; };
77 94A083652A33F50900238964 /* Debug.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Debug.swift; sourceTree = "<group>"; };
78 94A083672A33F6E900238964 /* ThumbnailList.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThumbnailList.swift; sourceTree = "<group>"; };
79 94C5FFF12A33ADD4004ADDF5 /* PHFetchResultCollection.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PHFetchResultCollection.swift; sourceTree = "<group>"; };
80 94C5FFF52A33B698004ADDF5 /* PHAssetHStack.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PHAssetHStack.swift; sourceTree = "<group>"; };
81 94D2C8B82A320E6F00BEE15B /* ReviewState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ReviewState.swift; sourceTree = "<group>"; };
82 94D2C8BC2A32796500BEE15B /* AlbumHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AlbumHelpers.swift; sourceTree = "<group>"; };
83 94D2C8BE2A3299BD00BEE15B /* PhotosLibrary.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotosLibrary.swift; sourceTree = "<group>"; };
84 94D2C8C02A32FCE300BEE15B /* PHAssetImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PHAssetImage.swift; sourceTree = "<group>"; };
85 94D750EC2A31A796005859E7 /* Blink.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Blink.app; sourceTree = BUILT_PRODUCTS_DIR; };
86 94D750EF2A31A796005859E7 /* BlinkApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlinkApp.swift; sourceTree = "<group>"; };
87 94D750F32A31A797005859E7 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
88 94D750F62A31A797005859E7 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
89 94D750F82A31A797005859E7 /* Blink.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Blink.entitlements; sourceTree = "<group>"; };
90 94D750FD2A31A798005859E7 /* BlinkTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BlinkTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
91 94D751012A31A798005859E7 /* BlinkTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlinkTests.swift; sourceTree = "<group>"; };
92 94D751072A31A798005859E7 /* BlinkUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BlinkUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
93 94D7510B2A31A798005859E7 /* BlinkUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlinkUITests.swift; sourceTree = "<group>"; };
94 94D7510D2A31A798005859E7 /* BlinkUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlinkUITestsLaunchTests.swift; sourceTree = "<group>"; };
95 94D751212A31BD8E005859E7 /* PhotoReviewer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PhotoReviewer.swift; sourceTree = "<group>"; };
96 94D7512A2A31D6AC005859E7 /* AssetHelpers.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AssetHelpers.swift; sourceTree = "<group>"; };
97 94F7E39D2A331A9E00763DB9 /* Statistics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Statistics.swift; sourceTree = "<group>"; };
98 94FCD4F52A3A64F800D884A1 /* LRUCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LRUCache.swift; sourceTree = "<group>"; };
99/* End PBXFileReference section */
101/* Begin PBXFrameworksBuildPhase section */
102 94D750E92A31A796005859E7 /* Frameworks */ = {
103 isa = PBXFrameworksBuildPhase;
104 buildActionMask = 2147483647;
106 94FCD4F42A3A62A800D884A1 /* OrderedCollections in Frameworks */,
108 runOnlyForDeploymentPostprocessing = 0;
110 94D750FA2A31A798005859E7 /* Frameworks */ = {
111 isa = PBXFrameworksBuildPhase;
112 buildActionMask = 2147483647;
115 runOnlyForDeploymentPostprocessing = 0;
117 94D751042A31A798005859E7 /* Frameworks */ = {
118 isa = PBXFrameworksBuildPhase;
119 buildActionMask = 2147483647;
122 runOnlyForDeploymentPostprocessing = 0;
124/* End PBXFrameworksBuildPhase section */
126/* Begin PBXGroup section */
127 940331742A336BEB00200C5D /* Helpers */ = {
130 940331722A336B5100200C5D /* DeferredRendering.swift */,
131 94C5FFF52A33B698004ADDF5 /* PHAssetHStack.swift */,
134 sourceTree = "<group>";
136 945F17AE2A33D15D004FC479 /* Thumbnails */ = {
139 945F17AF2A33D167004FC479 /* ThumbnailImage.swift */,
140 945F17B12A33D69B004FC479 /* FavoriteOverlay.swift */,
141 945F17B32A33D726004FC479 /* ReviewStateIcon.swift */,
142 945F17B52A33D7AA004FC479 /* ReviewStateBorder.swift */,
143 945F17B72A33DAC7004FC479 /* ReviewStateSaturation.swift */,
144 94A083672A33F6E900238964 /* ThumbnailList.swift */,
147 sourceTree = "<group>";
149 9492C96E2A3C37FA002E44EC /* Helpers */ = {
152 944EB0DE2FF1AEFE002C81C3 /* ScriptHelper.swift */,
153 9492C96F2A3C3803002E44EC /* Timer.swift */,
156 sourceTree = "<group>";
158 94A0835F2A33E7E900238964 /* FocusedImage */ = {
161 944EB0DA2FF1A0D1002C81C3 /* CaptionOverlay.swift */,
162 94A0835D2A33E49E00238964 /* FocusedImage.swift */,
163 94A083602A33E98000238964 /* AlbumInfoOverlay.swift */,
164 94A083622A33F30300238964 /* LoadingIndicatorOverlay.swift */,
167 sourceTree = "<group>";
169 94A083642A33F48E00238964 /* Info */ = {
172 94F7E39D2A331A9E00763DB9 /* Statistics.swift */,
173 94A083652A33F50900238964 /* Debug.swift */,
174 941E18F92A35362600A2EA98 /* Info.swift */,
177 sourceTree = "<group>";
179 94D2C8B72A320E6600BEE15B /* Model */ = {
182 94D2C8B82A320E6F00BEE15B /* ReviewState.swift */,
183 94C5FFF12A33ADD4004ADDF5 /* PHFetchResultCollection.swift */,
184 94FCD4F52A3A64F800D884A1 /* LRUCache.swift */,
187 sourceTree = "<group>";
189 94D750E32A31A796005859E7 = {
192 94D750EE2A31A796005859E7 /* Blink */,
193 94D751002A31A798005859E7 /* BlinkTests */,
194 94D7510A2A31A798005859E7 /* BlinkUITests */,
195 94D750ED2A31A796005859E7 /* Products */,
197 sourceTree = "<group>";
199 94D750ED2A31A796005859E7 /* Products */ = {
202 94D750EC2A31A796005859E7 /* Blink.app */,
203 94D750FD2A31A798005859E7 /* BlinkTests.xctest */,
204 94D751072A31A798005859E7 /* BlinkUITests.xctest */,
207 sourceTree = "<group>";
209 94D750EE2A31A796005859E7 /* Blink */ = {
212 9492C96E2A3C37FA002E44EC /* Helpers */,
213 94D2C8B72A320E6600BEE15B /* Model */,
214 94D751272A31D61D005859E7 /* Photos */,
215 94D7511A2A31A7A6005859E7 /* Views */,
216 94D750EF2A31A796005859E7 /* BlinkApp.swift */,
217 94D750F32A31A797005859E7 /* Assets.xcassets */,
218 94D750F82A31A797005859E7 /* Blink.entitlements */,
219 94D750F52A31A797005859E7 /* Preview Content */,
222 sourceTree = "<group>";
224 94D750F52A31A797005859E7 /* Preview Content */ = {
227 94D750F62A31A797005859E7 /* Preview Assets.xcassets */,
229 path = "Preview Content";
230 sourceTree = "<group>";
232 94D751002A31A798005859E7 /* BlinkTests */ = {
235 94D751012A31A798005859E7 /* BlinkTests.swift */,
238 sourceTree = "<group>";
240 94D7510A2A31A798005859E7 /* BlinkUITests */ = {
243 94D7510B2A31A798005859E7 /* BlinkUITests.swift */,
244 94D7510D2A31A798005859E7 /* BlinkUITestsLaunchTests.swift */,
247 sourceTree = "<group>";
249 94D7511A2A31A7A6005859E7 /* Views */ = {
252 94A083642A33F48E00238964 /* Info */,
253 94A0835F2A33E7E900238964 /* FocusedImage */,
254 945F17AE2A33D15D004FC479 /* Thumbnails */,
255 940331742A336BEB00200C5D /* Helpers */,
256 94D751212A31BD8E005859E7 /* PhotoReviewer.swift */,
257 94D2C8C02A32FCE300BEE15B /* PHAssetImage.swift */,
258 9404B57C2A3EEBBA00068FA8 /* SettingsView.swift */,
261 sourceTree = "<group>";
263 94D751272A31D61D005859E7 /* Photos */ = {
266 94D7512A2A31D6AC005859E7 /* AssetHelpers.swift */,
267 94D2C8BC2A32796500BEE15B /* AlbumHelpers.swift */,
268 94D2C8BE2A3299BD00BEE15B /* PhotosLibrary.swift */,
271 sourceTree = "<group>";
273/* End PBXGroup section */
275/* Begin PBXNativeTarget section */
276 94D750EB2A31A796005859E7 /* Blink */ = {
277 isa = PBXNativeTarget;
278 buildConfigurationList = 94D751112A31A798005859E7 /* Build configuration list for PBXNativeTarget "Blink" */;
280 94D750E82A31A796005859E7 /* Sources */,
281 94D750E92A31A796005859E7 /* Frameworks */,
282 94D750EA2A31A796005859E7 /* Resources */,
283 94FCD4F72A3A6E4600D884A1 /* ShellScript */,
290 packageProductDependencies = (
291 94FCD4F32A3A62A800D884A1 /* OrderedCollections */,
293 productName = BlinkReviewer;
294 productReference = 94D750EC2A31A796005859E7 /* Blink.app */;
295 productType = "com.apple.product-type.application";
297 94D750FC2A31A798005859E7 /* BlinkTests */ = {
298 isa = PBXNativeTarget;
299 buildConfigurationList = 94D751142A31A798005859E7 /* Build configuration list for PBXNativeTarget "BlinkTests" */;
301 94D750F92A31A798005859E7 /* Sources */,
302 94D750FA2A31A798005859E7 /* Frameworks */,
303 94D750FB2A31A798005859E7 /* Resources */,
308 94D750FF2A31A798005859E7 /* PBXTargetDependency */,
311 productName = BlinkReviewerTests;
312 productReference = 94D750FD2A31A798005859E7 /* BlinkTests.xctest */;
313 productType = "com.apple.product-type.bundle.unit-test";
315 94D751062A31A798005859E7 /* BlinkUITests */ = {
316 isa = PBXNativeTarget;
317 buildConfigurationList = 94D751172A31A798005859E7 /* Build configuration list for PBXNativeTarget "BlinkUITests" */;
319 94D751032A31A798005859E7 /* Sources */,
320 94D751042A31A798005859E7 /* Frameworks */,
321 94D751052A31A798005859E7 /* Resources */,
326 94D751092A31A798005859E7 /* PBXTargetDependency */,
329 productName = BlinkReviewerUITests;
330 productReference = 94D751072A31A798005859E7 /* BlinkUITests.xctest */;
331 productType = "com.apple.product-type.bundle.ui-testing";
333/* End PBXNativeTarget section */
335/* Begin PBXProject section */
336 94D750E42A31A796005859E7 /* Project object */ = {
339 BuildIndependentTargetsInParallel = 1;
340 LastSwiftUpdateCheck = 1430;
341 LastUpgradeCheck = 2620;
343 94D750EB2A31A796005859E7 = {
344 CreatedOnToolsVersion = 14.3.1;
346 94D750FC2A31A798005859E7 = {
347 CreatedOnToolsVersion = 14.3.1;
348 TestTargetID = 94D750EB2A31A796005859E7;
350 94D751062A31A798005859E7 = {
351 CreatedOnToolsVersion = 14.3.1;
352 TestTargetID = 94D750EB2A31A796005859E7;
356 buildConfigurationList = 94D750E72A31A796005859E7 /* Build configuration list for PBXProject "Blink" */;
357 compatibilityVersion = "Xcode 14.0";
358 developmentRegion = en;
359 hasScannedForEncodings = 0;
364 mainGroup = 94D750E32A31A796005859E7;
365 packageReferences = (
366 94FCD4F22A3A62A800D884A1 /* XCRemoteSwiftPackageReference "swift-collections" */,
368 productRefGroup = 94D750ED2A31A796005859E7 /* Products */;
372 94D750EB2A31A796005859E7 /* Blink */,
373 94D750FC2A31A798005859E7 /* BlinkTests */,
374 94D751062A31A798005859E7 /* BlinkUITests */,
377/* End PBXProject section */
379/* Begin PBXResourcesBuildPhase section */
380 94D750EA2A31A796005859E7 /* Resources */ = {
381 isa = PBXResourcesBuildPhase;
382 buildActionMask = 2147483647;
384 94D750F72A31A797005859E7 /* Preview Assets.xcassets in Resources */,
385 94D750F42A31A797005859E7 /* Assets.xcassets in Resources */,
387 runOnlyForDeploymentPostprocessing = 0;
389 94D750FB2A31A798005859E7 /* Resources */ = {
390 isa = PBXResourcesBuildPhase;
391 buildActionMask = 2147483647;
394 runOnlyForDeploymentPostprocessing = 0;
396 94D751052A31A798005859E7 /* Resources */ = {
397 isa = PBXResourcesBuildPhase;
398 buildActionMask = 2147483647;
401 runOnlyForDeploymentPostprocessing = 0;
403/* End PBXResourcesBuildPhase section */
405/* Begin PBXShellScriptBuildPhase section */
406 94FCD4F72A3A6E4600D884A1 /* ShellScript */ = {
407 isa = PBXShellScriptBuildPhase;
409 buildActionMask = 2147483647;
412 inputFileListPaths = (
416 outputFileListPaths = (
420 runOnlyForDeploymentPostprocessing = 0;
422 shellScript = "xcrun agvtool next-version -all\n";
424/* End PBXShellScriptBuildPhase section */
426/* Begin PBXSourcesBuildPhase section */
427 94D750E82A31A796005859E7 /* Sources */ = {
428 isa = PBXSourcesBuildPhase;
429 buildActionMask = 2147483647;
431 94D7512B2A31D6AC005859E7 /* AssetHelpers.swift in Sources */,
432 94D2C8BD2A32796500BEE15B /* AlbumHelpers.swift in Sources */,
433 945F17B02A33D167004FC479 /* ThumbnailImage.swift in Sources */,
434 94D2C8BF2A3299BD00BEE15B /* PhotosLibrary.swift in Sources */,
435 94C5FFF62A33B698004ADDF5 /* PHAssetHStack.swift in Sources */,
436 945F17B22A33D69B004FC479 /* FavoriteOverlay.swift in Sources */,
437 94A083632A33F30300238964 /* LoadingIndicatorOverlay.swift in Sources */,
438 945F17B42A33D726004FC479 /* ReviewStateIcon.swift in Sources */,
439 945F17B62A33D7AA004FC479 /* ReviewStateBorder.swift in Sources */,
440 94A083612A33E98000238964 /* AlbumInfoOverlay.swift in Sources */,
441 94C5FFF22A33ADD4004ADDF5 /* PHFetchResultCollection.swift in Sources */,
442 944EB0DF2FF1AF01002C81C3 /* ScriptHelper.swift in Sources */,
443 944EB0DB2FF1A0D5002C81C3 /* CaptionOverlay.swift in Sources */,
444 94A083662A33F50900238964 /* Debug.swift in Sources */,
445 94A083682A33F6E900238964 /* ThumbnailList.swift in Sources */,
446 94D750F02A31A796005859E7 /* BlinkApp.swift in Sources */,
447 940331732A336B5100200C5D /* DeferredRendering.swift in Sources */,
448 9404B57D2A3EEBBA00068FA8 /* SettingsView.swift in Sources */,
449 9492C9702A3C3803002E44EC /* Timer.swift in Sources */,
450 94A0835E2A33E49E00238964 /* FocusedImage.swift in Sources */,
451 945F17B82A33DAC7004FC479 /* ReviewStateSaturation.swift in Sources */,
452 94D751222A31BD8E005859E7 /* PhotoReviewer.swift in Sources */,
453 94D2C8B92A320E6F00BEE15B /* ReviewState.swift in Sources */,
454 94FCD4F62A3A64F800D884A1 /* LRUCache.swift in Sources */,
455 94F7E39E2A331A9E00763DB9 /* Statistics.swift in Sources */,
456 94D2C8C12A32FCE300BEE15B /* PHAssetImage.swift in Sources */,
457 941E18FA2A35362600A2EA98 /* Info.swift in Sources */,
459 runOnlyForDeploymentPostprocessing = 0;
461 94D750F92A31A798005859E7 /* Sources */ = {
462 isa = PBXSourcesBuildPhase;
463 buildActionMask = 2147483647;
465 94D751022A31A798005859E7 /* BlinkTests.swift in Sources */,
467 runOnlyForDeploymentPostprocessing = 0;
469 94D751032A31A798005859E7 /* Sources */ = {
470 isa = PBXSourcesBuildPhase;
471 buildActionMask = 2147483647;
473 94D7510E2A31A798005859E7 /* BlinkUITestsLaunchTests.swift in Sources */,
474 94D7510C2A31A798005859E7 /* BlinkUITests.swift in Sources */,
476 runOnlyForDeploymentPostprocessing = 0;
478/* End PBXSourcesBuildPhase section */
480/* Begin PBXTargetDependency section */
481 94D750FF2A31A798005859E7 /* PBXTargetDependency */ = {
482 isa = PBXTargetDependency;
483 target = 94D750EB2A31A796005859E7 /* Blink */;
484 targetProxy = 94D750FE2A31A798005859E7 /* PBXContainerItemProxy */;
486 94D751092A31A798005859E7 /* PBXTargetDependency */ = {
487 isa = PBXTargetDependency;
488 target = 94D750EB2A31A796005859E7 /* Blink */;
489 targetProxy = 94D751082A31A798005859E7 /* PBXContainerItemProxy */;
491/* End PBXTargetDependency section */
493/* Begin XCBuildConfiguration section */
494 94D7510F2A31A798005859E7 /* Debug */ = {
495 isa = XCBuildConfiguration;
497 ALWAYS_SEARCH_USER_PATHS = NO;
498 CLANG_ANALYZER_NONNULL = YES;
499 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
500 CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
501 CLANG_ENABLE_MODULES = YES;
502 CLANG_ENABLE_OBJC_ARC = YES;
503 CLANG_ENABLE_OBJC_WEAK = YES;
504 CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
505 CLANG_WARN_BOOL_CONVERSION = YES;
506 CLANG_WARN_COMMA = YES;
507 CLANG_WARN_CONSTANT_CONVERSION = YES;
508 CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
509 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
510 CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
511 CLANG_WARN_EMPTY_BODY = YES;
512 CLANG_WARN_ENUM_CONVERSION = YES;
513 CLANG_WARN_INFINITE_RECURSION = YES;
514 CLANG_WARN_INT_CONVERSION = YES;
515 CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
516 CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
517 CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
518 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
519 CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
520 CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
521 CLANG_WARN_STRICT_PROTOTYPES = YES;
522 CLANG_WARN_SUSPICIOUS_MOVE = YES;
523 CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
524 CLANG_WARN_UNREACHABLE_CODE = YES;
525 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
526 COPY_PHASE_STRIP = NO;
527 DEAD_CODE_STRIPPING = YES;
528 DEBUG_INFORMATION_FORMAT = dwarf;
529 ENABLE_STRICT_OBJC_MSGSEND = YES;
530 ENABLE_TESTABILITY = YES;
531 GCC_C_LANGUAGE_STANDARD = gnu11;
532 GCC_DYNAMIC_NO_PIC = NO;
533 GCC_NO_COMMON_BLOCKS = YES;
534 GCC_OPTIMIZATION_LEVEL = 0;
535 GCC_PREPROCESSOR_DEFINITIONS = (
539 GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
540 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
541 GCC_WARN_UNDECLARED_SELECTOR = YES;
542 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
543 GCC_WARN_UNUSED_FUNCTION = YES;
544 GCC_WARN_UNUSED_VARIABLE = YES;
545 MACOSX_DEPLOYMENT_TARGET = 13.3;
546 MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
548 ONLY_ACTIVE_ARCH = YES;
550 STRING_CATALOG_GENERATE_SYMBOLS = YES;
551 SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
552 SWIFT_OPTIMIZATION_LEVEL = "-Onone";
556 94D751102A31A798005859E7 /* Release */ = {
557 isa = XCBuildConfiguration;
559 ALWAYS_SEARCH_USER_PATHS = NO;
560 CLANG_ANALYZER_NONNULL = YES;
561 CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
562 CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
563 CLANG_ENABLE_MODULES = YES;
564 CLANG_ENABLE_OBJC_ARC = YES;
565 CLANG_ENABLE_OBJC_WEAK = YES;
566 CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
567 CLANG_WARN_BOOL_CONVERSION = YES;
568 CLANG_WARN_COMMA = YES;
569 CLANG_WARN_CONSTANT_CONVERSION = YES;
570 CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
571 CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
572 CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
573 CLANG_WARN_EMPTY_BODY = YES;
574 CLANG_WARN_ENUM_CONVERSION = YES;
575 CLANG_WARN_INFINITE_RECURSION = YES;
576 CLANG_WARN_INT_CONVERSION = YES;
577 CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
578 CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
579 CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
580 CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
581 CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
582 CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
583 CLANG_WARN_STRICT_PROTOTYPES = YES;
584 CLANG_WARN_SUSPICIOUS_MOVE = YES;
585 CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
586 CLANG_WARN_UNREACHABLE_CODE = YES;
587 CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
588 COPY_PHASE_STRIP = NO;
589 DEAD_CODE_STRIPPING = YES;
590 DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
591 ENABLE_NS_ASSERTIONS = NO;
592 ENABLE_STRICT_OBJC_MSGSEND = YES;
593 GCC_C_LANGUAGE_STANDARD = gnu11;
594 GCC_NO_COMMON_BLOCKS = YES;
595 GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
596 GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
597 GCC_WARN_UNDECLARED_SELECTOR = YES;
598 GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
599 GCC_WARN_UNUSED_FUNCTION = YES;
600 GCC_WARN_UNUSED_VARIABLE = YES;
601 MACOSX_DEPLOYMENT_TARGET = 13.3;
602 MTL_ENABLE_DEBUG_INFO = NO;
605 STRING_CATALOG_GENERATE_SYMBOLS = YES;
606 SWIFT_COMPILATION_MODE = wholemodule;
607 SWIFT_OPTIMIZATION_LEVEL = "-O";
611 94D751122A31A798005859E7 /* Debug */ = {
612 isa = XCBuildConfiguration;
614 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
615 ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
616 AUTOMATION_APPLE_EVENTS = YES;
617 CODE_SIGN_ENTITLEMENTS = Blink/Blink.entitlements;
618 CODE_SIGN_STYLE = Automatic;
619 COMBINE_HIDPI_IMAGES = YES;
620 CURRENT_PROJECT_VERSION = 199;
621 DEAD_CODE_STRIPPING = YES;
622 DEVELOPMENT_ASSET_PATHS = "\"Blink/Preview Content\"";
623 ENABLE_HARDENED_RUNTIME = YES;
624 ENABLE_PREVIEWS = YES;
625 ENABLE_RESOURCE_ACCESS_PHOTO_LIBRARY = YES;
626 GENERATE_INFOPLIST_FILE = YES;
627 INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.photography";
628 INFOPLIST_KEY_NSHumanReadableCopyright = "Made by Alex Chan <alex@alexwlchan.net>";
629 INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "This app needs full Photo Library permissions.";
630 LD_RUNPATH_SEARCH_PATHS = (
632 "@executable_path/../Frameworks",
634 MACOSX_DEPLOYMENT_TARGET = 15.6;
635 MARKETING_VERSION = 1.0;
636 PRODUCT_BUNDLE_IDENTIFIER = net.alexwlchan.Blink;
637 PRODUCT_NAME = "$(TARGET_NAME)";
638 SWIFT_EMIT_LOC_STRINGS = YES;
640 VERSIONING_SYSTEM = "apple-generic";
644 94D751132A31A798005859E7 /* Release */ = {
645 isa = XCBuildConfiguration;
647 ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
648 ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
649 AUTOMATION_APPLE_EVENTS = YES;
650 CODE_SIGN_ENTITLEMENTS = Blink/Blink.entitlements;
651 CODE_SIGN_STYLE = Automatic;
652 COMBINE_HIDPI_IMAGES = YES;
653 CURRENT_PROJECT_VERSION = 199;
654 DEAD_CODE_STRIPPING = YES;
655 DEVELOPMENT_ASSET_PATHS = "\"Blink/Preview Content\"";
656 ENABLE_HARDENED_RUNTIME = YES;
657 ENABLE_PREVIEWS = YES;
658 ENABLE_RESOURCE_ACCESS_PHOTO_LIBRARY = YES;
659 GENERATE_INFOPLIST_FILE = YES;
660 INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.photography";
661 INFOPLIST_KEY_NSHumanReadableCopyright = "Made by Alex Chan <alex@alexwlchan.net>";
662 INFOPLIST_KEY_NSPhotoLibraryUsageDescription = "This app needs full Photo Library permissions.";
663 LD_RUNPATH_SEARCH_PATHS = (
665 "@executable_path/../Frameworks",
667 MACOSX_DEPLOYMENT_TARGET = 15.6;
668 MARKETING_VERSION = 1.0;
669 PRODUCT_BUNDLE_IDENTIFIER = net.alexwlchan.Blink;
670 PRODUCT_NAME = "$(TARGET_NAME)";
671 SWIFT_EMIT_LOC_STRINGS = YES;
673 VERSIONING_SYSTEM = "apple-generic";
677 94D751152A31A798005859E7 /* Debug */ = {
678 isa = XCBuildConfiguration;
680 BUNDLE_LOADER = "$(TEST_HOST)";
681 CODE_SIGN_STYLE = Automatic;
682 CURRENT_PROJECT_VERSION = 199;
683 DEAD_CODE_STRIPPING = YES;
684 GENERATE_INFOPLIST_FILE = YES;
685 MACOSX_DEPLOYMENT_TARGET = 13.3;
686 MARKETING_VERSION = 1.0;
687 PRODUCT_BUNDLE_IDENTIFIER = net.alexwlchan.BlinkReviewerTests;
688 PRODUCT_NAME = "$(TARGET_NAME)";
689 SWIFT_EMIT_LOC_STRINGS = NO;
691 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BlinkReviewer.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/BlinkReviewer";
695 94D751162A31A798005859E7 /* Release */ = {
696 isa = XCBuildConfiguration;
698 BUNDLE_LOADER = "$(TEST_HOST)";
699 CODE_SIGN_STYLE = Automatic;
700 CURRENT_PROJECT_VERSION = 199;
701 DEAD_CODE_STRIPPING = YES;
702 GENERATE_INFOPLIST_FILE = YES;
703 MACOSX_DEPLOYMENT_TARGET = 13.3;
704 MARKETING_VERSION = 1.0;
705 PRODUCT_BUNDLE_IDENTIFIER = net.alexwlchan.BlinkReviewerTests;
706 PRODUCT_NAME = "$(TARGET_NAME)";
707 SWIFT_EMIT_LOC_STRINGS = NO;
709 TEST_HOST = "$(BUILT_PRODUCTS_DIR)/BlinkReviewer.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/BlinkReviewer";
713 94D751182A31A798005859E7 /* Debug */ = {
714 isa = XCBuildConfiguration;
716 CODE_SIGN_STYLE = Automatic;
717 CURRENT_PROJECT_VERSION = 199;
718 DEAD_CODE_STRIPPING = YES;
719 GENERATE_INFOPLIST_FILE = YES;
720 MARKETING_VERSION = 1.0;
721 PRODUCT_BUNDLE_IDENTIFIER = net.alexwlchan.BlinkReviewerUITests;
722 PRODUCT_NAME = "$(TARGET_NAME)";
723 SWIFT_EMIT_LOC_STRINGS = NO;
725 TEST_TARGET_NAME = BlinkReviewer;
729 94D751192A31A798005859E7 /* Release */ = {
730 isa = XCBuildConfiguration;
732 CODE_SIGN_STYLE = Automatic;
733 CURRENT_PROJECT_VERSION = 199;
734 DEAD_CODE_STRIPPING = YES;
735 GENERATE_INFOPLIST_FILE = YES;
736 MARKETING_VERSION = 1.0;
737 PRODUCT_BUNDLE_IDENTIFIER = net.alexwlchan.BlinkReviewerUITests;
738 PRODUCT_NAME = "$(TARGET_NAME)";
739 SWIFT_EMIT_LOC_STRINGS = NO;
741 TEST_TARGET_NAME = BlinkReviewer;
745/* End XCBuildConfiguration section */
747/* Begin XCConfigurationList section */
748 94D750E72A31A796005859E7 /* Build configuration list for PBXProject "Blink" */ = {
749 isa = XCConfigurationList;
750 buildConfigurations = (
751 94D7510F2A31A798005859E7 /* Debug */,
752 94D751102A31A798005859E7 /* Release */,
754 defaultConfigurationIsVisible = 0;
755 defaultConfigurationName = Release;
757 94D751112A31A798005859E7 /* Build configuration list for PBXNativeTarget "Blink" */ = {
758 isa = XCConfigurationList;
759 buildConfigurations = (
760 94D751122A31A798005859E7 /* Debug */,
761 94D751132A31A798005859E7 /* Release */,
763 defaultConfigurationIsVisible = 0;
764 defaultConfigurationName = Release;
766 94D751142A31A798005859E7 /* Build configuration list for PBXNativeTarget "BlinkTests" */ = {
767 isa = XCConfigurationList;
768 buildConfigurations = (
769 94D751152A31A798005859E7 /* Debug */,
770 94D751162A31A798005859E7 /* Release */,
772 defaultConfigurationIsVisible = 0;
773 defaultConfigurationName = Release;
775 94D751172A31A798005859E7 /* Build configuration list for PBXNativeTarget "BlinkUITests" */ = {
776 isa = XCConfigurationList;
777 buildConfigurations = (
778 94D751182A31A798005859E7 /* Debug */,
779 94D751192A31A798005859E7 /* Release */,
781 defaultConfigurationIsVisible = 0;
782 defaultConfigurationName = Release;
784/* End XCConfigurationList section */
786/* Begin XCRemoteSwiftPackageReference section */
787 94FCD4F22A3A62A800D884A1 /* XCRemoteSwiftPackageReference "swift-collections" */ = {
788 isa = XCRemoteSwiftPackageReference;
789 repositoryURL = "https://github.com/apple/swift-collections.git";
791 kind = upToNextMajorVersion;
792 minimumVersion = 1.0.0;
795/* End XCRemoteSwiftPackageReference section */
797/* Begin XCSwiftPackageProductDependency section */
798 94FCD4F32A3A62A800D884A1 /* OrderedCollections */ = {
799 isa = XCSwiftPackageProductDependency;
800 package = 94FCD4F22A3A62A800D884A1 /* XCRemoteSwiftPackageReference "swift-collections" */;
801 productName = OrderedCollections;
803/* End XCSwiftPackageProductDependency section */
805 rootObject = 94D750E42A31A796005859E7 /* Project object */;