diff --git a/osxphotos/adjustmentsinfo.py b/osxphotos/adjustmentsinfo.py
index c1217d8b..bc4db9b7 100644
--- a/osxphotos/adjustmentsinfo.py
+++ b/osxphotos/adjustmentsinfo.py
@@ -1,8 +1,8 @@
""" AdjustmentsInfo class to read adjustments data for photos edited in Apple's Photos.app
In Catalina and Big Sur, the adjustments data (data about edits done to the photo)
- is stored in a plist file in
+ is stored in a plist file in
~/Pictures/Photos Library.photoslibrary/resources/renders/X/UUID.plist
- where X is first character of the photo's UUID string and UUID is the full UUID,
+ where X is first character of the photo's UUID string and UUID is the full UUID,
e.g.: ~/Pictures/Photos Library.photoslibrary/resources/renders/3/30362C1D-192F-4CCD-9A2A-968F436DC0DE.plist
Thanks to @neilpa who figured out how to decode this information:
@@ -11,6 +11,7 @@
import datetime
import json
+import logging
import plistlib
import zlib
@@ -18,6 +19,8 @@
__all__ = ["AdjustmentsDecodeError", "AdjustmentsInfo"]
+logger = logging.getLogger("osxphotos")
+
class AdjustmentsDecodeError(Exception):
"""Could not decode adjustments plist file"""
@@ -44,6 +47,7 @@ def __init__(self, plist_file):
try:
self._adjustments = self._decode_adjustments_from_plist(self._plist)
except Exception as e:
+ logger.debug(f"Could not decode adjustments data: {plist_file}")
self._adjustments = None
def _decode_adjustments_from_plist(self, plist):
@@ -70,7 +74,11 @@ def _load_plist_file(self, plist_file):
plist as dict
"""
with open(str(plist_file), "rb") as fd:
- plist_dict = plistlib.load(fd)
+ try:
+ plist_dict = plistlib.load(fd)
+ except Exception as e:
+ logger.debug(f"Could not load plist file: {plist_file}")
+ plist_dict = {}
return plist_dict
@property
@@ -113,7 +121,7 @@ def adjustments(self):
"""List of adjustment dictionaries (or empty list if none or could not be decoded)"""
try:
return self._adjustments["adjustments"] if self._adjustments else []
- except KeyError:
+ except (KeyError, TypeError):
return []
@property
@@ -121,7 +129,7 @@ def adj_metadata(self):
"""Metadata dictionary or None if adjustment data could not be decoded"""
try:
return self._adjustments["metadata"] if self._adjustments else None
- except KeyError:
+ except (KeyError, TypeError):
return None
@property
@@ -129,11 +137,8 @@ def adj_orientation(self):
"""EXIF orientation of image or 0 if none specified or None if adjustments could not be decoded"""
try:
return self._adjustments["metadata"]["orientation"]
- except KeyError:
- # no orientation field
- return 0
- except TypeError:
- # adjustments is None
+ except (KeyError, TypeError):
+ # no orientation field or adjustments is None
return 0
@property
@@ -141,7 +146,7 @@ def adj_format_version(self):
"""Format version for adjustments data (formatVersion field from adjustmentData) or None if adjustments could not be decoded"""
try:
return self._adjustments["formatVersion"] if self._adjustments else None
- except KeyError:
+ except (KeyError, TypeError):
return None
@property
@@ -149,7 +154,7 @@ def adj_version_info(self):
"""version info for adjustments data or None if adjustments data could not be decoded"""
try:
return self._adjustments["versionInfo"] if self._adjustments else None
- except KeyError:
+ except (KeyError, TypeError):
return None
def asdict(self):
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/com.apple.Photos.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/com.apple.Photos.plist
new file mode 100644
index 00000000..37a1785b
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/com.apple.Photos.plist
@@ -0,0 +1,267 @@
+
+
+
+
+ ExportDirectory
+ /Users/mika/Desktop
+ ExportMastersDirectory
+ /Users/mika/Desktop
+ IPXAdjustmentSliderOptionCollapse_SmartColor
+
+ IPXAdjustmentSliderOptionCollapse_SmartTone
+
+ IPXAdjustmentsExpandedIdentifiers
+
+ CinematicDepthEffect
+
+ DGDefinition2Operation
+
+ DGVignetteEffectOperation
+
+ DepthEffect
+
+ RKCurvesOperation
+
+ RKLevelsOperation
+
+ RKNoiseReductionOperation
+
+ RKProSharpenOperation
+
+ RKRetouchOperation
+
+ RKSelectiveColorOperation
+
+ SmartBlackAndWhite
+
+ SmartColor
+
+ SmartTone
+
+ WhiteBalance
+
+
+ IPXAspectRatioCustomHeight
+ 4500
+ IPXAspectRatioCustomWidth
+ 3000
+ IPXCurvesRangeDefault
+ 0
+ IPXCurvesShowOverlay
+
+ IPXDefaultAutoplayVideos
+
+ IPXDefaultDidPromoteiCloudPhotosInGettingStarted
+
+ IPXDefaultHasBeenLaunched
+
+ IPXDefaultHasChosenToEnableiCloudPhotosInGettingStarted
+
+ IPXDefaultIsRestoringViewControllers
+
+ IPXDefaultLibraryURLBookmark
+
+ Ym9va6ADAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnAIA
+ AAUAAAABAQAAVXNlcnMAAAAEAAAAAQEAAG1pa2EHAAAAAQEAAERlc2t0b3AAHAAAAAEB
+ AABQaG90b21hdG9yVGVzdC5waG90b3NsaWJyYXJ5EAAAAAEGAAAEAAAAFAAAACAAAAAw
+ AAAACAAAAAQDAAAWPgAAAAAAAAgAAAAEAwAAYWMAAAAAAAAIAAAABAMAAGZjAAAAAAAA
+ CAAAAAQDAAAKttUEAAAAABAAAAABBgAAbAAAAHwAAACMAAAAnAAAAAgAAAAABAAAQcXo
+ VNRVmd4YAAAAAQIAAAIAAAAAAAAADwAAAAAAAAAAAAAAAAAAAAgAAAAEAwAAAgAAAAAA
+ AAAEAAAAAwMAAPUBAAAIAAAAAQkAAGZpbGU6Ly8vBgAAAAEBAABTeXN0ZW0AAAgAAAAE
+ AwAAAJCClucAAAAIAAAAAAQAAEHF1gPBgAAAJAAAAAEBAAA4QzE1QUQ5Ny05OUMwLTQy
+ NzYtQjgwMS1FODRGQzQ3MzY4NDMYAAAAAQIAAIEAAAABAAAA7xMAAAEAAAAAAAAAAAAA
+ AAEAAAABAQAALwAAAAAAAAABBQAA4gAAAAECAABlM2IzMjBkMGM2MTllZTkzYjFhY2I3
+ ZWMwM2UyMjViOGIwYTNmZDFiNmRmNjgxMmY2OGY3MGRlYWIwZWI5NThiOzAwOzAwMDAw
+ MDAwOzAwMDAwMDAwOzAwMDAwMDAwOzAwMDAwMDAwMDAwMDAwMjA7Y29tLmFwcGxlLmFw
+ cC1zYW5kYm94LnJlYWQtd3JpdGU7MDE7MDEwMDAwMTE7MDAwMDAwMDAwNGQ1YjYwYTs0
+ MTsvdXNlcnMvbWlrYS9kZXNrdG9wL3Bob3RvbWF0b3J0ZXN0LnBob3Rvc2xpYnJhcnkA
+ AADMAAAA/v///wEAAAAAAAAAEAAAAAQQAABUAAAAAAAAAAUQAACsAAAAAAAAABAQAADU
+ AAAAAAAAAEAQAADEAAAAAAAAAAIgAACcAQAAAAAAAAUgAAAQAQAAAAAAABAgAAAgAQAA
+ AAAAABEgAABQAQAAAAAAABIgAAAwAQAAAAAAABMgAABAAQAAAAAAACAgAAB8AQAAAAAA
+ ADAgAACoAQAAAAAAAAHAAAD0AAAAAAAAABHAAAAUAAAAAAAAABLAAAAEAQAAAAAAAIDw
+ AACwAQAAAAAAAA==
+
+ IPXDefaultShowEditedBadge
+ 1
+ IPXDefaultShowFaces
+
+ IPXDefaultShowKeywordsBadge
+ 1
+ IPXDefaultShowLibraryChooserOnLaunch
+
+ IPXDefaultShowLocationBadge
+ 1
+ IPXDefaultShowPhotoCellCaptions
+ 1
+ IPXDefaultShowReferencedFileBadge
+ 1
+ IPXDefaultWorkspace
+
+ YnBsaXN0MDDUAQIDBAUGBwpYJHZlcnNpb25ZJGFyY2hpdmVyVCR0b3BYJG9iamVjdHMS
+ AAGGoF8QD05TS2V5ZWRBcmNoaXZlctEICVRyb290gAGvEBULDBEdHiQqMT0+P0BBQkNE
+ RUlNUFRVJG51bGzSDQ4PEF8QFnJlc3RvcmF0aW9uRGVzdGluYXRpb25WJGNsYXNzgAKA
+ FNYSExQVFg4XGBkYGxxfEDBJUFhOYXZpZ2F0aW9uRGVzdGluYXRpb25BdXhpbGlhcnlT
+ dG9yZUFyY2hpdmVLZXlfEDNJUFhOYXZpZ2F0aW9uRGVzdGluYXRpb25QYXJlbnREZXN0
+ aW5hdGlvbkFyY2hpdmVLZXlfEEJJUFhOYXZpZ2F0aW9uRGVzdGluYXRpb25SZXF1aXJl
+ ZERlc3RpbmF0aW9uQXV4aWxpYXJ5S2V5c0FyY2hpdmVLZXlfECdJUFhOYXZpZ2F0aW9u
+ RGVzdGluYXRpb25UaXRsZUFyY2hpdmVLZXlfECxJUFhOYXZpZ2F0aW9uRGVzdGluYXRp
+ b25JZGVudGlmaWVyQXJjaGl2ZUtleYAEgACAEYAAgAOAE18QFmNvbS5hcHBsZS5waG90
+ b3MuYWxidW3THyAOISIjXxAxVVhBdXhpbGlhcnlOYXZpZ2F0aW9uU3RvcmVOYW1lc3Bh
+ Y2VEaWN0QXJjaGl2ZUtleV8QLlVYQXV4aWxpYXJ5TmF2aWdhdGlvblN0b3JlR2xvYmFs
+ RGljdEFyY2hpdmVLZXmABYAHgBDTJSYOJygpV05TLmtleXNaTlMub2JqZWN0c6CggAbS
+ KywtLlokY2xhc3NuYW1lWCRjbGFzc2VzXxATTlNNdXRhYmxlRGljdGlvbmFyeaMtLzBc
+ TlNEaWN0aW9uYXJ5WE5TT2JqZWN00yUmDjI3KaQzNDU2gAiACYAKgAukODk6O4AMgA2A
+ DoAPgAZfECBJUFhDdXJhdGVkTGlicmFyeURlc3RpbmF0aW9uVGltZV8QIklQWFBob3Rv
+ c09iamVjdFRyYW5zaWVudElkZW50aWZpZXJfEBpJUFhDdXJhdGVkTGlicmFyeVpvb21M
+ ZXZlbF8QIlVYU291cmNlQ29udHJvbGxlclNlbmRlcklkZW50aWZpZXIjQcXoVxVig1Zf
+ EBlQWFBob3Rvc1ZpcnR1YWxDb2xsZWN0aW9uEARfEBZJUFhXb3Jrc3BhY2VDb250cm9s
+ bGVy0issRkdfEBtVWERlc3RpbmF0aW9uQXV4aWxpYXJ5U3RvcmWiSDBfEBtVWERlc3Rp
+ bmF0aW9uQXV4aWxpYXJ5U3RvcmXSJg5KTKE0gAmAEtIrLE5PVU5TU2V0ok4w0issUVJf
+ EBhJUFhOYXZpZ2F0aW9uRGVzdGluYXRpb26iUzBfEBhJUFhOYXZpZ2F0aW9uRGVzdGlu
+ YXRpb27SKyxVVlxJUFhXb3Jrc3BhY2WiVzBcSVBYV29ya3NwYWNlAAgAEQAaACQAKQAy
+ ADcASQBMAFEAUwBrAHEAdgCPAJYAmACaAKcA2gEQAVUBfwGuAbABsgG0AbYBuAG6AdMB
+ 2gIOAj8CQQJDAkUCTAJUAl8CYAJhAmMCaAJzAnwCkgKWAqMCrAKzArgCugK8Ar4CwALF
+ AscCyQLLAs0CzwLyAxcDNANZA2IDfgOAA5kDngO8A78D3QPiA+QD5gPoA+0D8wP2A/sE
+ FgQZBDQEOQRGBEkAAAAAAAACAQAAAAAAAABYAAAAAAAAAAAAAAAAAAAEVg==
+
+ IPXExportFileNaingPreset_Masters
+
+ AlbumName
+ Product Selects
+ CustomString
+
+ FormatString
+ %f
+ Name
+ Untitled
+ StartingCounterNumber
+ 1
+
+ IPXExportFileNaingPreset_Versions
+
+ AlbumName
+ Export Panel Placeholder
+ CustomString
+
+ FormatString
+ %n
+ Name
+ Untitled
+ StartingCounterNumber
+ 1
+
+ IPXExportIntoMomentsSubfolders
+
+ IPXExportMastersMetadataMode
+ 0
+ IPXExportPhotosViewExpanded
+
+ IPXExportPreset_Versions
+
+ BlackPointCompensation
+
+ DestinationPixelHeight
+ 1024
+ DestinationPixelWidth
+ 1024
+ ExportColorSpace
+ 1
+ ExportSizeStyle
+ 2
+ ImageFormat
+ 0
+ ImageQuality
+ 0.75
+ IncludeGPS
+
+ IncludeIPTC
+
+ MovieExportQuality
+ AVAssetExportPreset1280x720
+ RenderingIntent
+ 0
+
+ IPXExternalEditLastUsedApplicationURLBookmark
+
+ Ym9va0wDAAAAAAQQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbAIA
+ AAwAAAABAQAAQXBwbGljYXRpb25zFAAAAAEBAABBZG9iZSBQaG90b3Nob3AgMjAyNBgA
+ AAABAQAAQWRvYmUgUGhvdG9zaG9wIDIwMjQuYXBwDAAAAAEGAAAEAAAAGAAAADQAAAAI
+ AAAABAMAAEbfLQQAAAAACAAAAAQDAAB4ItAEAAAAAAgAAAAEAwAALFLQBAAAAAAMAAAA
+ AQYAAGgAAAB4AAAAiAAAAAgAAAAABAAAQcXm5E+NPuEYAAAAAQIAAAIAAAAAAAAADwAA
+ AAAAAAAAAAAAAAAAAAgAAAABCQAAZmlsZTovLy8GAAAAAQEAAFN5c3RlbQAACAAAAAQD
+ AAAAkIKW5wAAAAgAAAAABAAAQcXWA8GAAAAkAAAAAQEAADhDMTVBRDk3LTk5QzAtNDI3
+ Ni1CODAxLUU4NEZDNDczNjg0MxgAAAABAgAAgQAAAAEAAADvEwAAAQAAAAAAAAAAAAAA
+ AQAAAAEBAAAvAAAAAAAAAAEFAADnAAAAAQIAADM3M2VjMmYxNThhZGNlNmRjOThiYzY3
+ YjAzY2I0YzZmYWJlMGRmNmZlNzlmNmNlNmRiZWIxZDgxYmY1ZmVhMGI7MDA7MDAwMDAw
+ MDA7MDAwMDAwMDA7MDAwMDAwMDA7MDAwMDAwMDAwMDAwMDAxYTtjb20uYXBwbGUuYXBw
+ LXNhbmRib3gucmVhZDswMTswMTAwMDAwZjswMDAwMDAwMDA0ZDA1MjJjOzAwOy9hcHBs
+ aWNhdGlvbnMvYWRvYmUgcGhvdG9zaG9wIDIwMjQvYWRvYmUgcGhvdG9zaG9wIDIwMjQu
+ YXBwAACoAAAA/v///wEAAAAAAAAADQAAAAQQAABUAAAAAAAAAAUQAACYAAAAAAAAABAQ
+ AAC8AAAAAAAAAEAQAACsAAAAAAAAAAIgAABoAQAAAAAAAAUgAADcAAAAAAAAABAgAADs
+ AAAAAAAAABEgAAAcAQAAAAAAABIgAAD8AAAAAAAAABMgAAAMAQAAAAAAACAgAABIAQAA
+ AAAAADAgAAB0AQAAAAAAAIHwAAB8AQAAAAAAAA==
+
+ IPXInfoPanelFrame
+ {{968, 393}, {287, 94}}
+ IPXPhotoEditCropAspectRatioLocked
+
+ IPXPluginHostClearVisualizeConstraints
+
+ IPXWhatsNewCurrentVersion
+ 6
+ IPXWorkspace.UXSourceListWidth
+ 400
+ LastCuratedLibraryFirstTimeExperienceReadinessLogged
+ 1
+ LastKnownHasSharedLibrary
+ 0
+ LastKnownHasSharedLibraryPreview
+ 0
+ NSNavLastRootDirectory
+ ~/Desktop
+ NSNavPanelExpandedSizeForOpenMode
+ {800, 448}
+ NSPreferencesContentSize
+ {600, 518}
+ NSPreferencesSelectedIndex
+ 0
+ NSScrollViewShouldScrollUnderTitlebar
+
+ NSWindow Frame KeywordInspector
+ 1471 474 762 319 0 0 2560 1415
+ NSWindow Frame MainWindow
+ 637 98 1512 950 0 0 2560 1415
+ NSWindow Frame NSNavPanelAutosaveName
+ 884 483 800 448 0 0 2560 1415
+ NSWindow Frame NSSpellCheckerSubstitutionsPanel2
+ 691 407 425 137 0 0 2560 1415
+ NSWindow Frame Preferences
+ 980 483 600 546 0 0 2560 1415
+ PXRootSettingsHideWIPAlerts
+
+ RecentlyDeletedItemsConfirmed
+
+ RetouchAutoSourceDefaultsKey
+
+ RetouchBrushRadiusDefaultsKey
+ 27.486760853293411
+ StoryExportAspectRatio
+ 16x9
+ allPhotosPreferredIndividualItemsColumns
+ 9
+ curatedLibraryInitialNavigationVersion
+ 1
+ curatedLibraryZoomLevel
+ 4
+ didShowCompletedCurationFooterAnimation
+
+ didShowCurationFooter
+
+ photosGridPreferredIndividualItemsColumns
+ 7
+ storyTitleStyleNextIndex
+ 80
+ userDefaultsPhotosGridVersion
+ 3
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/DataModelVersion.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/DataModelVersion.plist
new file mode 100644
index 00000000..be9740fe
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/DataModelVersion.plist
@@ -0,0 +1,10 @@
+
+
+
+
+ LibrarySchemaVersion
+ 5001
+ MetaSchemaVersion
+ 3
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/Photos.sqlite b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/Photos.sqlite
new file mode 100644
index 00000000..0ebce559
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/Photos.sqlite differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/Photos.sqlite-shm b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/Photos.sqlite-shm
new file mode 100644
index 00000000..c396ac70
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/Photos.sqlite-shm differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/Photos.sqlite-wal b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/Photos.sqlite-wal
new file mode 100644
index 00000000..674f1d31
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/Photos.sqlite-wal differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/Photos.sqlite.lock b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/Photos.sqlite.lock
new file mode 100644
index 00000000..2126bfb2
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/Photos.sqlite.lock
@@ -0,0 +1,16 @@
+
+
+
+
+ hostname
+ Machine-Max.local
+ hostuuid
+ 2AD2CC76-2AE5-5DFB-BC60-18107842D061
+ pid
+ 770
+ processname
+ photolibraryd
+ uid
+ 501
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/metaSchema.db b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/metaSchema.db
new file mode 100644
index 00000000..2d75bd40
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/metaSchema.db differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/photos.db b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/photos.db
new file mode 100644
index 00000000..2d75bd40
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/photos.db differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/protection b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/protection
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/graphDataProgress.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/graphDataProgress.plist
new file mode 100644
index 00000000..c4e5e427
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/graphDataProgress.plist differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/psi.sqlite b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/psi.sqlite
new file mode 100644
index 00000000..6b10830d
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/psi.sqlite differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/psi.sqlite-shm b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/psi.sqlite-shm
new file mode 100644
index 00000000..fe9ac284
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/psi.sqlite-shm differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/psi.sqlite-wal b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/psi.sqlite-wal
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/searchProgress.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/searchProgress.plist
new file mode 100644
index 00000000..d243cc99
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/searchProgress.plist
@@ -0,0 +1,28 @@
+
+
+
+
+ insertAlbum
+
+ insertAsset
+
+ insertHighlight
+
+ insertMemory
+
+ insertMoment
+
+ removeAlbum
+
+ removeAsset
+
+ removeHighlight
+
+ removeMemory
+
+ removeMoment
+
+ renamePerson
+
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/searchSystemInfo.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/searchSystemInfo.plist
new file mode 100644
index 00000000..313a631c
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/searchSystemInfo.plist
@@ -0,0 +1,18 @@
+
+
+
+
+ embeddingVersion
+ 1
+ featureFlags
+ 0
+ featuredContentAllowed
+ 0
+ localeIdentifier
+ en_US
+ sceneTaxonomySHA
+ 369901436fd615bca250de71d821f7fbf8ec8691f3eb4712a79087d7201201a3,0c16d1e369b4e72de7d61ab7ebaf163472abb06c991d4330610e46a7400b24b1
+ searchIndexVersion
+ 16046
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/synonyms.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/synonyms.plist
new file mode 100644
index 00000000..c4e5e427
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/database/search/synonyms.plist differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/originals/3/3B7F1829-DDC0-4ADE-BCFB-0885EDDD9705.jpeg b/tests/ExternalAdjustments-14.4.1.photoslibrary/originals/3/3B7F1829-DDC0-4ADE-BCFB-0885EDDD9705.jpeg
new file mode 100644
index 00000000..6d19c3bd
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/originals/3/3B7F1829-DDC0-4ADE-BCFB-0885EDDD9705.jpeg differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/originals/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35.jpeg b/tests/ExternalAdjustments-14.4.1.photoslibrary/originals/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35.jpeg
new file mode 100644
index 00000000..6d19c3bd
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/originals/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35.jpeg differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/originals/C/C110AED9-D250-4B9A-BD5B-697931BF02CF.jpeg b/tests/ExternalAdjustments-14.4.1.photoslibrary/originals/C/C110AED9-D250-4B9A-BD5B-697931BF02CF.jpeg
new file mode 100644
index 00000000..6d19c3bd
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/originals/C/C110AED9-D250-4B9A-BD5B-697931BF02CF.jpeg differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/private/com.apple.Photos/appPrivateData.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/private/com.apple.Photos/appPrivateData.plist
new file mode 100644
index 00000000..11ffb260
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/private/com.apple.Photos/appPrivateData.plist
@@ -0,0 +1,19 @@
+
+
+
+
+ CollapsedSidebarSectionIdentifiers
+
+ ExpandedSidebarItemIdentifiers
+
+ IPXWorkspaceControllerZoomLevelsKey
+
+ kZoomLevelIdentifierPhotosGrid
+ 2
+
+ PeoplePetsHomeVisibilitySourceLastKnownHasHumans
+
+ PeoplePetsHomeVisibilitySourceLastKnownHasPets
+
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/private/com.apple.mediaanalysisd/caches/vision/mediaAnalysisVersionState.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/private/com.apple.mediaanalysisd/caches/vision/mediaAnalysisVersionState.plist
new file mode 100644
index 00000000..5badb44d
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/private/com.apple.mediaanalysisd/caches/vision/mediaAnalysisVersionState.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ FaceProcessingInternalVersion
+ 15
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotoAnalysisServiceFeaturesAnalytics.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotoAnalysisServiceFeaturesAnalytics.plist
new file mode 100644
index 00000000..5b837684
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/private/com.apple.photoanalysisd/caches/graph/PhotoAnalysisServiceFeaturesAnalytics.plist
@@ -0,0 +1,1010 @@
+
+
+
+
+ firstSeenDates_V2
+
+ com.apple.photos.CPAnalytics.addAssetsToLibrary
+ 2024-04-17
+ com.apple.photos.CPAnalytics.addPeople.addedPeople
+ 2024-04-17
+ com.apple.photos.CPAnalytics.addPeople.openedPicker
+ 2024-04-17
+ com.apple.photos.CPAnalytics.appleMusicPreparationFailed
+ 2024-04-17
+ com.apple.photos.CPAnalytics.appleMusicPreparationSucceeded
+ 2024-04-17
+ com.apple.photos.CPAnalytics.appleMusicPreparedToPlay
+ 2024-04-17
+ com.apple.photos.CPAnalytics.appleMusicSongDownloaded
+ 2024-04-17
+ com.apple.photos.CPAnalytics.assetCollectionBlocked
+ 2024-04-17
+ com.apple.photos.CPAnalytics.assetCollectionDeleted
+ 2024-04-17
+ com.apple.photos.CPAnalytics.assetCollectionFavorited
+ 2024-04-17
+ com.apple.photos.CPAnalytics.assetCollectionMoviePlayed
+ 2024-04-17
+ com.apple.photos.CPAnalytics.assetCollectionUnfavorited
+ 2024-04-17
+ com.apple.photos.CPAnalytics.assetCollectionViewed
+ 2024-04-17
+ com.apple.photos.CPAnalytics.assetExportItemPreparationCompleted
+ 2024-04-17
+ com.apple.photos.CPAnalytics.assetExportPreparationCanceled
+ 2024-04-17
+ com.apple.photos.CPAnalytics.assetExportPreparationCompleted
+ 2024-04-17
+ com.apple.photos.CPAnalytics.assetExportPreparationFailed
+ 2024-04-17
+ com.apple.photos.CPAnalytics.assetFavorited
+ 2024-04-17
+ com.apple.photos.CPAnalytics.assetSharedStandardSelectionSize
+ 2024-04-17
+ com.apple.photos.CPAnalytics.assetUnfavorited
+ 2024-04-17
+ com.apple.photos.CPAnalytics.assetViewed
+ 2024-04-17
+ com.apple.photos.CPAnalytics.assetsDeleted
+ 2024-04-17
+ com.apple.photos.CPAnalytics.assetsDeletedFromTrash
+ 2024-04-17
+ com.apple.photos.CPAnalytics.assetsRestored
+ 2024-04-17
+ com.apple.photos.CPAnalytics.cmmAddAssetToLibrary
+ 2024-04-17
+ com.apple.photos.CPAnalytics.cmmPublishFromDetailViewMenuAction
+ 2024-04-17
+ com.apple.photos.CPAnalytics.cmmPublishFromForYouSuggestion
+ 2024-04-17
+ com.apple.photos.CPAnalytics.cmmPublishFromMessagesSuggestion
+ 2024-04-17
+ com.apple.photos.CPAnalytics.cmmPublishFromShareSheet
+ 2024-04-17
+ com.apple.photos.CPAnalytics.cmmPublishFromUnknown
+ 2024-04-17
+ com.apple.photos.CPAnalytics.cmmReceivedSharesOpened
+ 2024-04-17
+ com.apple.photos.CPAnalytics.cmmReceivedSharesSeen
+ 2024-04-17
+ com.apple.photos.CPAnalytics.cmmSentSharesOpened
+ 2024-04-17
+ com.apple.photos.CPAnalytics.cmmSentSharesSeen
+ 2024-04-17
+ com.apple.photos.CPAnalytics.cropButtonEnabled
+ 2024-04-17
+ com.apple.photos.CPAnalytics.cropButtonPressed
+ 2024-04-17
+ com.apple.photos.CPAnalytics.deduplicationEventFailed
+ 2024-04-17
+ com.apple.photos.CPAnalytics.deduplicationEventOneUpSelect
+ 2024-04-17
+ com.apple.photos.CPAnalytics.deduplicationEventSkip
+ 2024-04-17
+ com.apple.photos.CPAnalytics.deduplicationFromAlbumSection
+ 2024-04-17
+ com.apple.photos.CPAnalytics.deduplicationFromAlbumSelection
+ 2024-04-17
+ com.apple.photos.CPAnalytics.deduplicationFromOneUpMergeAll
+ 2024-04-17
+ com.apple.photos.CPAnalytics.deduplicationFromOneUpSelection
+ 2024-04-17
+ com.apple.photos.CPAnalytics.deduplicationFromUnspecified
+ 2024-04-17
+ com.apple.photos.CPAnalytics.deduplicationMerge1
+ 2024-04-17
+ com.apple.photos.CPAnalytics.deduplicationMerge11+
+ 2024-04-17
+ com.apple.photos.CPAnalytics.deduplicationMerge2
+ 2024-04-17
+ com.apple.photos.CPAnalytics.deduplicationMerge3-5
+ 2024-04-17
+ com.apple.photos.CPAnalytics.deduplicationMerge6-10
+ 2024-04-17
+ com.apple.photos.CPAnalytics.deduplicationMergeAll
+ 2024-04-17
+ com.apple.photos.CPAnalytics.deduplicationSkipPerceptualMerge
+ 2024-04-17
+ com.apple.photos.CPAnalytics.filterAllItemsSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.filterEditedSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.filterFavoritedSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.filterHeaderSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.filterIncludeSharedWithYouSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.filterKeywordHeaderSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.filterKeywordManagerSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.filterKeywordsSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.filterPhotosSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.filterSavedItemsOnlySelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.filterSharedLibraryAllDisplayed
+ 2024-04-17
+ com.apple.photos.CPAnalytics.filterSharedLibraryAllSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.filterSharedLibraryDismissed
+ 2024-04-17
+ com.apple.photos.CPAnalytics.filterSharedLibraryMineDisplayed
+ 2024-04-17
+ com.apple.photos.CPAnalytics.filterSharedLibraryMineSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.filterSharedLibraryPresented
+ 2024-04-17
+ com.apple.photos.CPAnalytics.filterSharedLibrarySharedDisplayed
+ 2024-04-17
+ com.apple.photos.CPAnalytics.filterSharedLibrarySharedSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.filterShowOnlySharedWithYouSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.filterUnsavedItemsOnlySelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.filterVideosSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.firstTimeExperienceNotReady
+ 2024-04-17
+ com.apple.photos.CPAnalytics.firstTimeExperienceReady
+ 2024-04-17
+ com.apple.photos.CPAnalytics.flexMusicDownloadRequiredAtPlaybackTime
+ 2024-04-17
+ com.apple.photos.CPAnalytics.flexMusicSongArtworkDownloaded
+ 2024-04-17
+ com.apple.photos.CPAnalytics.flexMusicSongAudioDownloaded
+ 2024-04-17
+ com.apple.photos.CPAnalytics.forYouInboxItemSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.forYouInboxItemSelectedWithTypeCMMPublishedShare
+ 2024-04-17
+ com.apple.photos.CPAnalytics.forYouInboxItemSelectedWithTypeCMMReceivedShare
+ 2024-04-17
+ com.apple.photos.CPAnalytics.forYouInboxItemSelectedWithTypeSharedAlbumAccept
+ 2024-04-17
+ com.apple.photos.CPAnalytics.forYouInboxItemSelectedWithTypeSharedAlbumCoalescedWithComments
+ 2024-04-17
+ com.apple.photos.CPAnalytics.forYouInboxItemSelectedWithTypeSharedAlbumCoalescedWithCommentsAndLikes
+ 2024-04-17
+ com.apple.photos.CPAnalytics.forYouInboxItemSelectedWithTypeSharedAlbumComment
+ 2024-04-17
+ com.apple.photos.CPAnalytics.forYouInboxItemSelectedWithTypeSharedAlbumDecline
+ 2024-04-17
+ com.apple.photos.CPAnalytics.forYouInboxItemSelectedWithTypeSharedAlbumInvitation
+ 2024-04-17
+ com.apple.photos.CPAnalytics.forYouInboxItemSelectedWithTypeSharedAlbumLike
+ 2024-04-17
+ com.apple.photos.CPAnalytics.forYouInboxItemSelectedWithTypeSharedAlbumPost
+ 2024-04-17
+ com.apple.photos.CPAnalytics.forYouTabOpenedFromInAppUserNavigation
+ 2024-04-17
+ com.apple.photos.CPAnalytics.forYouTabOpenedFromNotification
+ 2024-04-17
+ com.apple.photos.CPAnalytics.forYouTabOpenedFromOtherURL
+ 2024-04-17
+ com.apple.photos.CPAnalytics.forYouTabOpenedFromStateRestoration
+ 2024-04-17
+ com.apple.photos.CPAnalytics.forYouTabOpenedFromUndefined
+ 2024-04-17
+ com.apple.photos.CPAnalytics.forYouTabOpenedFromWidget
+ 2024-04-17
+ com.apple.photos.CPAnalytics.gadgetSeenWithTypeAlbumGadget
+ 2024-04-17
+ com.apple.photos.CPAnalytics.gadgetSeenWithTypeAlbumListGadget
+ 2024-04-17
+ com.apple.photos.CPAnalytics.gadgetSeenWithTypeCMMInviteGadget
+ 2024-04-17
+ com.apple.photos.CPAnalytics.gadgetSeenWithTypeContentSyndication
+ 2024-04-17
+ com.apple.photos.CPAnalytics.gadgetSeenWithTypeDebugGadget
+ 2024-04-17
+ com.apple.photos.CPAnalytics.gadgetSeenWithTypeFooterGadget
+ 2024-04-17
+ com.apple.photos.CPAnalytics.gadgetSeenWithTypeInboxGadget
+ 2024-04-17
+ com.apple.photos.CPAnalytics.gadgetSeenWithTypeListViewGadget
+ 2024-04-17
+ com.apple.photos.CPAnalytics.gadgetSeenWithTypeMemoryRowGadget
+ 2024-04-17
+ com.apple.photos.CPAnalytics.gadgetSeenWithTypeNoContentGadget
+ 2024-04-17
+ com.apple.photos.CPAnalytics.gadgetSeenWithTypeRecentPhotosGadget
+ 2024-04-17
+ com.apple.photos.CPAnalytics.gadgetSeenWithTypeRecentSearchesGadget
+ 2024-04-17
+ com.apple.photos.CPAnalytics.gadgetSeenWithTypeSearchZeroKeywordGadget
+ 2024-04-17
+ com.apple.photos.CPAnalytics.gadgetSeenWithTypeSettingsAdvisory
+ 2024-04-17
+ com.apple.photos.CPAnalytics.gadgetSeenWithTypeSharedAlbumActivityGadget
+ 2024-04-17
+ com.apple.photos.CPAnalytics.gadgetSeenWithTypeSharedAlbumGadget
+ 2024-04-17
+ com.apple.photos.CPAnalytics.gadgetSeenWithTypeSharedAlbumInviteGadget
+ 2024-04-17
+ com.apple.photos.CPAnalytics.gadgetSeenWithTypeSuggestedEditGadget
+ 2024-04-17
+ com.apple.photos.CPAnalytics.gadgetSeenWithTypeSuggestionGadget
+ 2024-04-17
+ com.apple.photos.CPAnalytics.gadgetSeenWithTypeSurveyCongratulations
+ 2024-04-17
+ com.apple.photos.CPAnalytics.gadgetSeenWithTypeSurveyQuestionGadget
+ 2024-04-17
+ com.apple.photos.CPAnalytics.gadgetSeenWithTypeTapToRadarGadget
+ 2024-04-17
+ com.apple.photos.CPAnalytics.gadgetWithTypeMemoryRowGadgetSelectedAccessoryButtonWithTypeSeeAll
+ 2024-04-17
+ com.apple.photos.CPAnalytics.gadgetWithTypeSharedAlbumGadgetSelectedAccessoryButtonWithTypeSeeAll
+ 2024-04-17
+ com.apple.photos.CPAnalytics.infoPanelAddLocationTapped
+ 2024-04-17
+ com.apple.photos.CPAnalytics.infoPanelAdjustLocationTapped
+ 2024-04-17
+ com.apple.photos.CPAnalytics.infoPanelEditChangesCancelled
+ 2024-04-17
+ com.apple.photos.CPAnalytics.infoPanelEditChangesConfirmed
+ 2024-04-17
+ com.apple.photos.CPAnalytics.infoPanelEditChangesReverted
+ 2024-04-17
+ com.apple.photos.CPAnalytics.infoPanelEditDateTapped
+ 2024-04-17
+ com.apple.photos.CPAnalytics.infoPanelEditTimezoneTapped
+ 2024-04-17
+ com.apple.photos.CPAnalytics.infoPanelLocationTapped
+ 2024-04-17
+ com.apple.photos.CPAnalytics.infoPanelNewDateSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.infoPanelNewTimezoneSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.infoPanelSavedFromAppsWidgetTapped
+ 2024-04-17
+ com.apple.photos.CPAnalytics.infoPanelSyndicatedWidgetTapped
+ 2024-04-17
+ com.apple.photos.CPAnalytics.mapViewAdjustLocationTapped
+ 2024-04-17
+ com.apple.photos.CPAnalytics.mediaViewed
+ 2024-04-17
+ com.apple.photos.CPAnalytics.memoryCreatedViaAddToMemories
+ 2024-04-17
+ com.apple.photos.CPAnalytics.memoryNotificationResponded
+ 2024-04-17
+ com.apple.photos.CPAnalytics.memoryNotificationSeen
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigateToFailedToUploadItemsAlbumFailed
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigateToFailedToUploadItemsAlbumSucceeded
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigatedToSharedAlbumActivityViewFromCollageView
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigatedToSharedAlbumActivityViewFromRecentActivityEntry
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigatedToSharedAlbumActivityViewFromSeeAllButton
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigationList.favorites
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigationList.hidden
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigationList.imports
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigationList.mediaTypes.animated
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigationList.mediaTypes.bursts
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigationList.mediaTypes.cinematicVideos
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigationList.mediaTypes.depthEffect
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigationList.mediaTypes.livePhotos
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigationList.mediaTypes.longExposures
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigationList.mediaTypes.panoramas
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigationList.mediaTypes.proRes
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigationList.mediaTypes.raw
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigationList.mediaTypes.screenrecordings
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigationList.mediaTypes.screenshots
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigationList.mediaTypes.selfPortraits
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigationList.mediaTypes.slomoVideos
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigationList.mediaTypes.timelapses
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigationList.mediaTypes.videos
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigationList.people
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigationList.places
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigationList.recentlyedited
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigationList.recentlysaved
+ 2024-04-17
+ com.apple.photos.CPAnalytics.navigationList.trashBin
+ 2024-04-17
+ com.apple.photos.CPAnalytics.oneUpCaptionEditExited
+ 2024-04-17
+ com.apple.photos.CPAnalytics.oneUpCaptionEditExitedWith1-10Characters
+ 2024-04-17
+ com.apple.photos.CPAnalytics.oneUpCaptionEditExitedWith101+Characters
+ 2024-04-17
+ com.apple.photos.CPAnalytics.oneUpCaptionEditExitedWith11+Hashtags
+ 2024-04-17
+ com.apple.photos.CPAnalytics.oneUpCaptionEditExitedWith11-20Characters
+ 2024-04-17
+ com.apple.photos.CPAnalytics.oneUpCaptionEditExitedWith1Hashtags
+ 2024-04-17
+ com.apple.photos.CPAnalytics.oneUpCaptionEditExitedWith21-30Characters
+ 2024-04-17
+ com.apple.photos.CPAnalytics.oneUpCaptionEditExitedWith2Hashtags
+ 2024-04-17
+ com.apple.photos.CPAnalytics.oneUpCaptionEditExitedWith31-50Characters
+ 2024-04-17
+ com.apple.photos.CPAnalytics.oneUpCaptionEditExitedWith3Hashtags
+ 2024-04-17
+ com.apple.photos.CPAnalytics.oneUpCaptionEditExitedWith4-5Hashtags
+ 2024-04-17
+ com.apple.photos.CPAnalytics.oneUpCaptionEditExitedWith51-100Characters
+ 2024-04-17
+ com.apple.photos.CPAnalytics.oneUpCaptionEditExitedWith6-10Hashtags
+ 2024-04-17
+ com.apple.photos.CPAnalytics.oneUpLivePhotoEffectApplied
+ 2024-04-17
+ com.apple.photos.CPAnalytics.people.addToPeopleHome
+ 2024-04-17
+ com.apple.photos.CPAnalytics.people.bootstrap.inlineControl.dismiss
+ 2024-04-17
+ com.apple.photos.CPAnalytics.people.bootstrap.inlineControl.review
+ 2024-04-17
+ com.apple.photos.CPAnalytics.people.bootstrap.mergeCandidates.confirmedAndRejectedCounts
+ 2024-04-17
+ com.apple.photos.CPAnalytics.people.bootstrap.speedbump.advance
+ 2024-04-17
+ com.apple.photos.CPAnalytics.people.bootstrap.speedbump.cancel
+ 2024-04-17
+ com.apple.photos.CPAnalytics.people.confirmAdditional.mergeCandidates.confirmedAndRejectedCounts
+ 2024-04-17
+ com.apple.photos.CPAnalytics.people.confirmAdditional.personSuggestions.confirmedAndRejectedCounts
+ 2024-04-17
+ com.apple.photos.CPAnalytics.people.confirmAdditional.suggestion
+ 2024-04-17
+ com.apple.photos.CPAnalytics.people.detailView.keyPhotoChanged
+ 2024-04-17
+ com.apple.photos.CPAnalytics.people.detailView.notThisPerson
+ 2024-04-17
+ com.apple.photos.CPAnalytics.people.detailView.showFaces
+ 2024-04-17
+ com.apple.photos.CPAnalytics.people.manageTags.commitTapped
+ 2024-04-17
+ com.apple.photos.CPAnalytics.people.me.confirmed
+ 2024-04-17
+ com.apple.photos.CPAnalytics.people.me.rejected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.people.naming.contactChosen
+ 2024-04-17
+ com.apple.photos.CPAnalytics.people.naming.personChosen
+ 2024-04-17
+ com.apple.photos.CPAnalytics.people.naming.skipped
+ 2024-04-17
+ com.apple.photos.CPAnalytics.people.naming.stringChosen
+ 2024-04-17
+ com.apple.photos.CPAnalytics.people.removeFromPeopleHome
+ 2024-04-17
+ com.apple.photos.CPAnalytics.people.untag.cancelTapped
+ 2024-04-17
+ com.apple.photos.CPAnalytics.people.untag.newTagTapped
+ 2024-04-17
+ com.apple.photos.CPAnalytics.people.untag.untagTapped
+ 2024-04-17
+ com.apple.photos.CPAnalytics.photosCloudQuotaOfferAdded
+ 2024-04-17
+ com.apple.photos.CPAnalytics.photosCloudQuotaOfferRemoved
+ 2024-04-17
+ com.apple.photos.CPAnalytics.photosCloudQuotaOfferReplaced
+ 2024-04-17
+ com.apple.photos.CPAnalytics.photosDetailsAllAssetsCounted
+ 2024-04-17
+ com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth1
+ 2024-04-17
+ com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth10
+ 2024-04-17
+ com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth11-12
+ 2024-04-17
+ com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth13-15
+ 2024-04-17
+ com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth16-20
+ 2024-04-17
+ com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth2
+ 2024-04-17
+ com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth21-30
+ 2024-04-17
+ com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth3
+ 2024-04-17
+ com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth31-50
+ 2024-04-17
+ com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth4
+ 2024-04-17
+ com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth5
+ 2024-04-17
+ com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth51+
+ 2024-04-17
+ com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth6
+ 2024-04-17
+ com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth7
+ 2024-04-17
+ com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth8
+ 2024-04-17
+ com.apple.photos.CPAnalytics.photosDetailsNavigatedToDepth9
+ 2024-04-17
+ com.apple.photos.CPAnalytics.photosDetailsShowMoreButtonSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.photosDetailsSummaryAssetsCounted
+ 2024-04-17
+ com.apple.photos.CPAnalytics.photosDetailsSummaryButtonSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.places.locationAction
+ 2024-04-17
+ com.apple.photos.CPAnalytics.rendering.livePhotoEffectFailed
+ 2024-04-17
+ com.apple.photos.CPAnalytics.rendering.livePhotoEffectPreviewRenderingDuration
+ 2024-04-17
+ com.apple.photos.CPAnalytics.search.session
+ 2024-04-17
+ com.apple.photos.CPAnalytics.selectModeEntered
+ 2024-04-17
+ com.apple.photos.CPAnalytics.shareCanceled
+ 2024-04-17
+ com.apple.photos.CPAnalytics.shareCompleted
+ 2024-04-17
+ com.apple.photos.CPAnalytics.shareFailed
+ 2024-04-17
+ com.apple.photos.CPAnalytics.sharedAlbumInvitationAccepted
+ 2024-04-17
+ com.apple.photos.CPAnalytics.sharedAlbumInvitationDeclined
+ 2024-04-17
+ com.apple.photos.CPAnalytics.sharedAlbumInvitationReportedAsJunk
+ 2024-04-17
+ com.apple.photos.CPAnalytics.sharedAlbumsActivityFeedPostLiked
+ 2024-04-17
+ com.apple.photos.CPAnalytics.sharedAlbumsActivityFeedPostUnliked
+ 2024-04-17
+ com.apple.photos.CPAnalytics.sharedLibrary.suggestionsBanner.dismissed
+ 2024-04-17
+ com.apple.photos.CPAnalytics.sharedLibrary.suggestionsBanner.presented
+ 2024-04-17
+ com.apple.photos.CPAnalytics.sharedLibrary.suggestionsBanner.reviewed
+ 2024-04-17
+ com.apple.photos.CPAnalytics.showOnlyReceivedICloudLinksSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.showOnlySentICloudLinksSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowExportCancelledAfter10.0-60.0Seconds
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowExportCancelledAfter2.0-10.0Seconds
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowExportCancelledAfter<2.0Seconds
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowExportCancelledAfter>60.0Seconds
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowExportEndedSuccessfullyAfter0.0-1.0Seconds
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowExportEndedSuccessfullyAfter1.0-2.0Seconds
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowExportEndedSuccessfullyAfter10.0-20.0Seconds
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowExportEndedSuccessfullyAfter120.0-300.0Seconds
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowExportEndedSuccessfullyAfter2.0-5.0Seconds
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowExportEndedSuccessfullyAfter20.0-60.0Seconds
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowExportEndedSuccessfullyAfter300.0-600.0Seconds
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowExportEndedSuccessfullyAfter5.0-10.0Seconds
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowExportEndedSuccessfullyAfter60.0-120.0Seconds
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowExportEndedSuccessfullyAfter600.0-3600.0Seconds
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowExportEndedSuccessfullyAfter<0.0Seconds
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowExportEndedSuccessfullyAfter>3600.0Seconds
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowExportFailed
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowExportStarted
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction0.0-0.1
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction0.1-0.2
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction0.2-0.2
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction0.3-0.4
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction0.4-0.5
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction0.5-0.6
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction0.6-0.7
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction0.7-0.8
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction0.8-0.9
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction0.9-1.0
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction1.0-1.5
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction1.5-2.0
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction2.0-3.0
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction3.0-5.0
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction<0.0
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackEndedAfterTimeFraction>5.0
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackEndedByEndReached
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackEndedByUndefined
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackEndedByUser
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackStarted
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith0-Assets
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith1-5Assets
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith1001+Assets
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith101-200Assets
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith11-15Assets
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith16-20Assets
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith201-300Assets
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith21-30Assets
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith301-500Assets
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith31-50Assets
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith501-1000Assets
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith51-100Assets
+ 2024-04-17
+ com.apple.photos.CPAnalytics.slideshowPlaybackStartedWith6-10Assets
+ 2024-04-17
+ com.apple.photos.CPAnalytics.syndicatedAssetsFilterTipAnchorButtonTapped
+ 2024-04-17
+ com.apple.photos.CPAnalytics.syndicatedAssetsSaved
+ 2024-04-17
+ com.apple.photos.CPAnalytics.syndicationSuggestionRemoved
+ 2024-04-17
+ com.apple.photos.CPAnalytics.tabIdentifierChanged
+ 2024-04-17
+ com.apple.photos.CPAnalytics.toggleMineAndSharedSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.toggleMyPhotosOnlySelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.tvWelcomeSharedLibrarySelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.tvWelcomeiCloudSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.userChoices.livePhotoEffectBounceSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.userChoices.livePhotoEffectLongExposureSelected
+ 2024-04-17
+ com.apple.photos.CPAnalytics.userChoices.livePhotoEffectsAppeared
+ 2024-04-17
+ com.apple.photos.CPAnalytics.viewScrolledToBottom
+ 2024-04-17
+ com.apple.photos.CPAnalytics.viewScrolledToInitialPosition
+ 2024-04-17
+ com.apple.photos.CPAnalytics.visualLookupTriggered
+ 2024-04-17
+ com.apple.photos.CPAnalytics.widget.open
+ 2024-04-17
+ com.apple.photos.cpa.active_user_feature.actionOnSharedLibrarySuggestions
+ 2024-04-17
+ com.apple.photos.cpa.active_user_feature.interactiveMemoryExport
+ 2024-04-17
+ com.apple.photos.cpa.active_user_feature.interactiveMemoryPlayback
+ 2024-04-17
+ com.apple.photos.cpa.active_user_feature.memoryMoviePlayed
+ 2024-04-17
+ com.apple.photos.cpa.active_user_feature.memoryViewed
+ 2024-04-17
+ com.apple.photos.cpa.active_user_feature.mobileSlideShowActive
+ 2024-04-17
+ com.apple.photos.cpa.active_user_feature.slideshowExported
+ 2024-04-17
+ com.apple.photos.cpa.active_user_feature.slideshowPlayed
+ 2024-04-17
+ com.apple.photos.edit.perf.exitedit
+ 2024-04-17
+ com.apple.photos.memory.appleMusicFixation
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryErrorOccurred
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryErrorOccurredInAdditionalAutoEditDecisionLists
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryErrorOccurredInAssets
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryErrorOccurredInAssetsPreloading
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryErrorOccurredInAutoEditClip
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryErrorOccurredInAutoEditDecisionLists
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryErrorOccurredInAutoEditTransitionInfo
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryErrorOccurredInColorNormalization
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryErrorOccurredInCuratedSongs
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryErrorOccurredInInitialStyle
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryErrorOccurredInMovieHighlights
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryErrorOccurredInMusicPlayback
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryErrorOccurredInPersistableRecipe
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryErrorOccurredInPersistence
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryErrorOccurredInRecipePersistence
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryErrorOccurredInStoryModel
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryErrorOccurredInStyleManager
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryErrorOccurredInStyles
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryErrorOccurredInTargetDurationCuration
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryErrorOccurredInTimelineManager
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryErrorOccurredInTimelineValidation
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryErrorOccurredInTransitions
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryExportCancelled
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryExportFailed
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryExported
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStarted
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedByAutoplayedRelated
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedByUserSelectingRelated
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedWith1-10CuratedAssets
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedWith10001-20000CuratedAssets
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedWith1001-2000CuratedAssets
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedWith101-200CuratedAssets
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedWith11-50CuratedAssets
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedWith20000+CuratedAssets
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedWith2001-5000CuratedAssets
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedWith201-300CuratedAssets
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedWith301-500CuratedAssets
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedWith5001-10000CuratedAssets
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedWith501-1000CuratedAssets
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryFullscreenPlaybackStartedWith51-100CuratedAssets
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryMusicFellBackToLocalFlexSong
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryMusicUsedFlexMusic
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryMusicUseedAppleMusic
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryPlaybackFinishedMuted
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryPlaybackFinishedTruncated
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryPlaybackFinishedUnmuted
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryPlaybackFinishedWith0Pauses
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryPlaybackFinishedWith1-2Pauses
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryPlaybackFinishedWith101+Pauses
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryPlaybackFinishedWith11-50Pauses
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryPlaybackFinishedWith3-5Pauses
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryPlaybackFinishedWith51-100Pauses
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryPlaybackFinishedWith6-10Pauses
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryPlaybackMutedDueToExplicitUserAction
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryPlaybackMutedDueToSilentModeSwitch
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryPlaybackUnmutedDueToExplicitUserAction
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryPlaybackUnmutedDueToSilentModeSwitch
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryPlaybackUnmutedDueToSongPick
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryPlaybackUnmutedDueToVolumeIncrease
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryRecipeErrorOccurred
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemorySessionBegan
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemorySessionEnded
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemorySessionPaused
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemorySessionPlayed
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryTimelinePlayedWith0-49PercentTransitionsOnBar
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryTimelinePlayedWith50-74PercentTransitionsOnBar
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryTimelinePlayedWith75-84PercentTransitionsOnBar
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryTimelinePlayedWith85-94PercentTransitionsOnBar
+ 2024-04-17
+ com.apple.photos.memory.interactiveMemoryTimelinePlayedWith95-100PercentTransitionsOnBar
+ 2024-04-17
+ com.apple.photos.memory.playbackLaunchPerformance
+ 2024-04-17
+ com.apple.photos.memory.playbackReliability
+ 2024-04-17
+ screen_CuratedLibrary_AllPhotos
+ 2024-04-17
+ screen_CuratedLibrary_Days
+ 2024-04-17
+ screen_CuratedLibrary_Months
+ 2024-04-17
+ screen_CuratedLibrary_Years
+ 2024-04-17
+ screen_DuplicatesAlbum
+ 2024-04-17
+ screen_FavoriteMemories
+ 2024-04-17
+ screen_IPXFeedViewController
+ 2024-04-17
+ screen_InteractiveMemory
+ 2024-04-17
+ screen_InteractiveMemoryBrowserGrid
+ 2024-04-17
+ screen_InteractiveMemoryStyleSwitcher
+ 2024-04-17
+ screen_MFMailComposeViewController
+ 2024-04-17
+ screen_MFMessageComposeViewController
+ 2024-04-17
+ screen_Memories
+ 2024-04-17
+ screen_MemoriesFeed
+ 2024-04-17
+ screen_MemoriesWidget
+ 2024-04-17
+ screen_MiniTipUIPopoverViewController
+ 2024-04-17
+ screen_ObjectManipulationViewController
+ 2024-04-17
+ screen_PMEditorNavigationController
+ 2024-04-17
+ screen_PMiOSMainViewController
+ 2024-04-17
+ screen_PXAssistantController
+ 2024-04-17
+ screen_PXCMMAssetsViewController
+ 2024-04-17
+ screen_PXEducationalTipViewController
+ 2024-04-17
+ screen_PXFeedViewController
+ 2024-04-17
+ screen_PXFeedbackTapToRadarViewController
+ 2024-04-17
+ screen_PXFloatingCardViewController
+ 2024-04-17
+ screen_PXForYouGadgetViewController
+ 2024-04-17
+ screen_PXPeopleBootstrapConfirmationViewController
+ 2024-04-17
+ screen_PXPeopleBootstrapSummaryViewController
+ 2024-04-17
+ screen_PXPeopleCollectionViewController
+ 2024-04-17
+ screen_PXPeopleConfirmationSummaryViewController
+ 2024-04-17
+ screen_PXPeopleDetailViewController
+ 2024-04-17
+ screen_PXPeopleNamePickerViewController
+ 2024-04-17
+ screen_PXPeopleRecoCollectionViewController
+ 2024-04-17
+ screen_PXPlacesMapInfoViewController
+ 2024-04-17
+ screen_PXPlacesMapViewController
+ 2024-04-17
+ screen_PXSharedLibraryAssistantCameraViewController
+ 2024-04-17
+ screen_PXSharedLibraryAssistantHowToViewController
+ 2024-04-17
+ screen_PXSharedLibraryAssistantReviewParticipantsViewController
+ 2024-04-17
+ screen_PXSharedLibraryAssistantRulesViewController
+ 2024-04-17
+ screen_PXSharedLibraryAssistantSummaryViewController
+ 2024-04-17
+ screen_PXSurveyRadarReporterViewController
+ 2024-04-17
+ screen_PXUIPeopleBootstrapNamingViewController
+ 2024-04-17
+ screen_PhotosDetailsEXIFWidgetView
+ 2024-04-17
+ screen_PhotosDetailsSharedWithYouWidgetView
+ 2024-04-17
+ screen_PhotosDetailsTimeWidgetView
+ 2024-04-17
+ screen_PhotosDetailsVisualLookupWidgetView
+ 2024-04-17
+ screen_PhotosDetails_Collection
+ 2024-04-17
+ screen_PhotosDetails_CuratedLibraryDays
+ 2024-04-17
+ screen_PhotosDetails_CuratedLibraryMonths
+ 2024-04-17
+ screen_PhotosDetails_CuratedLibraryYears
+ 2024-04-17
+ screen_PhotosDetails_Memories
+ 2024-04-17
+ screen_PhotosDetails_Moment
+ 2024-04-17
+ screen_PhotosDetails_NonTracking
+ 2024-04-17
+ screen_PhotosDetails_OneUpAccessory
+ 2024-04-17
+ screen_PhotosDetails_OtherAlbums
+ 2024-04-17
+ screen_PhotosDetails_People
+ 2024-04-17
+ screen_PhotosDetails_Places
+ 2024-04-17
+ screen_PhotosDetails_RelatedWidget
+ 2024-04-17
+ screen_PhotosDetails_Search
+ 2024-04-17
+ screen_PhotosDetails_Year
+ 2024-04-17
+ screen_PhotosUIPrivate.StoryColorGradeEditorViewController
+ 2024-04-17
+ screen_PhotosUIPrivate.StoryExportActivityPreviewViewController
+ 2024-04-17
+ screen_PhotosUIPrivate.StoryExportActivityViewController
+ 2024-04-17
+ screen_PhotosUIPrivate.StoryMusicEditorViewController
+ 2024-04-17
+ screen_PhotosView
+ 2024-04-17
+ screen_PhotosView_PXPersonVirtualCollection
+ 2024-04-17
+ screen_PhotosView_PXPetVirtualCollection
+ 2024-04-17
+ screen_PhotosView_PXSocialGroupVirtualCollection
+ 2024-04-17
+ screen_PhotosView_albumCloudShared
+ 2024-04-17
+ screen_PhotosView_albumImported
+ 2024-04-17
+ screen_PhotosView_albumMyPhotoStream
+ 2024-04-17
+ screen_PhotosView_albumRegular
+ 2024-04-17
+ screen_PhotosView_albumSyncedAlbum
+ 2024-04-17
+ screen_PhotosView_albumSyncedEvent
+ 2024-04-17
+ screen_PhotosView_albumSyncedFaces
+ 2024-04-17
+ screen_PhotosView_duplicates
+ 2024-04-17
+ screen_PhotosView_photosHighlightDay
+ 2024-04-17
+ screen_PhotosView_photosHighlightDayGroup
+ 2024-04-17
+ screen_PhotosView_sharedAlbumOwned
+ 2024-04-17
+ screen_PhotosView_smartAlbumActionCam
+ 2024-04-17
+ screen_PhotosView_smartAlbumAllHidden
+ 2024-04-17
+ screen_PhotosView_smartAlbumAnimated
+ 2024-04-17
+ screen_PhotosView_smartAlbumBursts
+ 2024-04-17
+ screen_PhotosView_smartAlbumCinematic
+ 2024-04-17
+ screen_PhotosView_smartAlbumDepthEffect
+ 2024-04-17
+ screen_PhotosView_smartAlbumFavorites
+ 2024-04-17
+ screen_PhotosView_smartAlbumGeneric
+ 2024-04-17
+ screen_PhotosView_smartAlbumLivePhotos
+ 2024-04-17
+ screen_PhotosView_smartAlbumLongExposures
+ 2024-04-17
+ screen_PhotosView_smartAlbumPanoramas
+ 2024-04-17
+ screen_PhotosView_smartAlbumRAW
+ 2024-04-17
+ screen_PhotosView_smartAlbumRecentlyAdded
+ 2024-04-17
+ screen_PhotosView_smartAlbumRecents
+ 2024-04-17
+ screen_PhotosView_smartAlbumScreenshots
+ 2024-04-17
+ screen_PhotosView_smartAlbumSelfPortraits
+ 2024-04-17
+ screen_PhotosView_smartAlbumSlomoVideos
+ 2024-04-17
+ screen_PhotosView_smartAlbumSpatial
+ 2024-04-17
+ screen_PhotosView_smartAlbumTimelapses
+ 2024-04-17
+ screen_PhotosView_smartAlbumUnableToUpload
+ 2024-04-17
+ screen_PhotosView_smartAlbumUserLibrary
+ 2024-04-17
+ screen_PhotosView_smartAlbumVideos
+ 2024-04-17
+ screen_PhotosView_smartImported
+ 2024-04-17
+ screen_PhotosView_smartTrashBin
+ 2024-04-17
+ screen_SBSUIWallpaperPreviewViewController
+ 2024-04-17
+ screen_SLComposeViewController
+ 2024-04-17
+ screen_UIImagePickerController
+ 2024-04-17
+ screen__UIActivityUserDefaultsViewController
+ 2024-04-17
+
+ lastSeenDates_v2
+
+ com.apple.photos.CPAnalytics.assetCollectionViewed
+ 2024-04-17
+ com.apple.photos.CPAnalytics.mediaViewed
+ 2024-04-17
+ screen_CuratedLibrary_AllPhotos
+ 2024-04-17
+ screen_DuplicatesAlbum
+ 2024-04-17
+
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/private/com.apple.photolibraryd/caches/CreateDatabase_20230913-105815-07:00 b/tests/ExternalAdjustments-14.4.1.photoslibrary/private/com.apple.photolibraryd/caches/CreateDatabase_20230913-105815-07:00
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/masters/3/3B7F1829-DDC0-4ADE-BCFB-0885EDDD9705_4_5005_c.jpeg b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/masters/3/3B7F1829-DDC0-4ADE-BCFB-0885EDDD9705_4_5005_c.jpeg
new file mode 100644
index 00000000..b60fb580
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/masters/3/3B7F1829-DDC0-4ADE-BCFB-0885EDDD9705_4_5005_c.jpeg differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/masters/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35_4_5005_c.jpeg b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/masters/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35_4_5005_c.jpeg
new file mode 100644
index 00000000..041c1630
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/masters/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35_4_5005_c.jpeg differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/masters/C/C110AED9-D250-4B9A-BD5B-697931BF02CF_4_5005_c.jpeg b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/masters/C/C110AED9-D250-4B9A-BD5B-697931BF02CF_4_5005_c.jpeg
new file mode 100644
index 00000000..d6a40c87
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/masters/C/C110AED9-D250-4B9A-BD5B-697931BF02CF_4_5005_c.jpeg differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/thumbs/3356.ithmb b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/thumbs/3356.ithmb
new file mode 100644
index 00000000..8c7232dc
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/thumbs/3356.ithmb differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/thumbs/4133.ithmb b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/thumbs/4133.ithmb
new file mode 100644
index 00000000..a94492a2
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/thumbs/4133.ithmb differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/thumbs/4532.ithmb b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/thumbs/4532.ithmb
new file mode 100644
index 00000000..763bf839
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/thumbs/4532.ithmb differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/thumbs/thumbnailConfiguration b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/thumbs/thumbnailConfiguration
new file mode 100644
index 00000000..6c331ad1
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/derivatives/thumbs/thumbnailConfiguration
@@ -0,0 +1,17 @@
+
+
+
+
+ PLThumbnailManagerThumbnailFormatKey
+ 5005
+ PLThumbnailManagerThumbnailFormatsKey
+
+ 5005
+ 4532
+ 4133
+ 3356
+
+ PLThumbnailManagerVersionKey
+ 31
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Album-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Album-change.plj
new file mode 100644
index 00000000..364f2179
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Album-change.plj differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Album-snapshot.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Album-snapshot.plj
new file mode 100644
index 00000000..c2ec7c14
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Album-snapshot.plj differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Album.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Album.plist
new file mode 100644
index 00000000..2250fa4c
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Album.plist
@@ -0,0 +1,18 @@
+
+
+
+
+ coalesceDate
+ 2024-04-18T01:21:17Z
+ coalescePayloadVersion
+ 1
+ currentPayloadVersion
+ 1
+ snapshotChecksum
+
+ snapshotDate
+ 2023-09-13T17:58:15Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Asset-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Asset-change.plj
new file mode 100644
index 00000000..4e50a193
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Asset-change.plj differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Asset-snapshot.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Asset-snapshot.plj
new file mode 100644
index 00000000..56036ef9
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Asset-snapshot.plj differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Asset.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Asset.plist
new file mode 100644
index 00000000..68746b77
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Asset.plist
@@ -0,0 +1,18 @@
+
+
+
+
+ coalesceDate
+ 2024-04-18T01:09:25Z
+ coalescePayloadVersion
+ 103
+ currentPayloadVersion
+ 103
+ snapshotChecksum
+
+ snapshotDate
+ 2023-09-13T17:58:15Z
+ snapshotPayloadVersion
+ 103
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/DeferredRebuildFace-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/DeferredRebuildFace-change.plj
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/DeferredRebuildFace.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/DeferredRebuildFace.plist
new file mode 100644
index 00000000..7e78b1a6
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/DeferredRebuildFace.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2023-09-13T17:58:15Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/DetectedFace-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/DetectedFace-change.plj
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/DetectedFace.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/DetectedFace.plist
new file mode 100644
index 00000000..7e78b1a6
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/DetectedFace.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2023-09-13T17:58:15Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/FetchingAlbum-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/FetchingAlbum-change.plj
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/FetchingAlbum.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/FetchingAlbum.plist
new file mode 100644
index 00000000..b62fb6a2
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/FetchingAlbum.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 2
+ snapshotDate
+ 2023-09-13T17:58:15Z
+ snapshotPayloadVersion
+ 2
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/FileSystemVolume-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/FileSystemVolume-change.plj
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/FileSystemVolume.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/FileSystemVolume.plist
new file mode 100644
index 00000000..7e78b1a6
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/FileSystemVolume.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2023-09-13T17:58:15Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Folder-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Folder-change.plj
new file mode 100644
index 00000000..3979045a
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Folder-change.plj differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Folder-snapshot.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Folder-snapshot.plj
new file mode 100644
index 00000000..a72afc38
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Folder-snapshot.plj differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Folder.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Folder.plist
new file mode 100644
index 00000000..7e78b1a6
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Folder.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2023-09-13T17:58:15Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/HistoryToken.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/HistoryToken.plist
new file mode 100644
index 00000000..32600d8e
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/HistoryToken.plist differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ImportSession-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ImportSession-change.plj
new file mode 100644
index 00000000..7c81e006
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ImportSession-change.plj differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ImportSession-snapshot.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ImportSession-snapshot.plj
new file mode 100644
index 00000000..9535aee5
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ImportSession-snapshot.plj differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ImportSession.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ImportSession.plist
new file mode 100644
index 00000000..9e9d1d03
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ImportSession.plist
@@ -0,0 +1,18 @@
+
+
+
+
+ coalesceDate
+ 2024-04-18T01:09:25Z
+ coalescePayloadVersion
+ 1
+ currentPayloadVersion
+ 1
+ snapshotChecksum
+
+ snapshotDate
+ 2023-09-13T17:58:15Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Keyword-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Keyword-change.plj
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Keyword.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Keyword.plist
new file mode 100644
index 00000000..7e78b1a6
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Keyword.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2023-09-13T17:58:15Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Memory-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Memory-change.plj
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Memory.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Memory.plist
new file mode 100644
index 00000000..7e78b1a6
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Memory.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2023-09-13T17:58:15Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/MigrationHistory-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/MigrationHistory-change.plj
new file mode 100644
index 00000000..c452fcee
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/MigrationHistory-change.plj differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/MigrationHistory.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/MigrationHistory.plist
new file mode 100644
index 00000000..e77fe849
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/MigrationHistory.plist
@@ -0,0 +1,8 @@
+
+
+
+
+ currentPayloadVersion
+ 1
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Person-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Person-change.plj
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Person.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Person.plist
new file mode 100644
index 00000000..7e78b1a6
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/Person.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2023-09-13T17:58:15Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ProjectAlbum-change.plj b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ProjectAlbum-change.plj
new file mode 100644
index 00000000..e69de29b
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ProjectAlbum.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ProjectAlbum.plist
new file mode 100644
index 00000000..7e78b1a6
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/journals/ProjectAlbum.plist
@@ -0,0 +1,12 @@
+
+
+
+
+ currentPayloadVersion
+ 1
+ snapshotDate
+ 2023-09-13T17:58:15Z
+ snapshotPayloadVersion
+ 1
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/3/3B7F1829-DDC0-4ADE-BCFB-0885EDDD9705.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/3/3B7F1829-DDC0-4ADE-BCFB-0885EDDD9705.plist
new file mode 100644
index 00000000..b1f308f3
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/3/3B7F1829-DDC0-4ADE-BCFB-0885EDDD9705.plist
@@ -0,0 +1,26 @@
+
+
+
+
+ adjustmentBaseVersion
+ 0
+ adjustmentData
+
+ XZFda8MgFIb/i9dR/Iw2dzExd2ODXZZRrJU1I2lCavZB6X/fSdtBOwQ97wuvx/O4ZtkJ
+ HVFxQp+o4BkKSzmgAjFJJGEoW3wkiCAK6j3U0eciDwbUDGqct10byMcY38GZwHnZD2no
+ fRomMHZgPPnAVMYoyIQKLRRd5UYJoplS4ny+9FwLeAacSIu64dqVmDaUYllahksHm6Ta
+ GcptY4WDi47zGKdb7AAxSWVNObdY17LCUlUKr7S22FgtnXYr4WS9kRtFqdoEyLeQMaoy
+ ZckkNkZrLCteYZMbgZvaadsYK7iVtynD0JOx/Y7dZa4U/b3E4zIxjrs2kd0Q5j4eEtm2
+ Bz/9QDyiIk1zvLL7a3nFCri/YIblB+4hP9D/B9AvyO8Bbx9+BJCwnAuaoRH83ofnV3R+
+ y1AHqhuC70At6xc=
+
+ adjustmentEditorBundleID
+ com.pixelmatorteam.pixelmator.touch.x.photo
+ adjustmentFormatIdentifier
+ com.pixelmatorteam.touch.x.photo.PhotosAdjustmentData.SidecarConfigurationInfo.compressed
+ adjustmentFormatVersion
+ 1.0
+ adjustmentTimestamp
+ 2024-04-18T01:09:25Z
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/3/3B7F1829-DDC0-4ADE-BCFB-0885EDDD9705_1_201_a.jpeg b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/3/3B7F1829-DDC0-4ADE-BCFB-0885EDDD9705_1_201_a.jpeg
new file mode 100644
index 00000000..0eb8e6fd
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/3/3B7F1829-DDC0-4ADE-BCFB-0885EDDD9705_1_201_a.jpeg differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35.plist
new file mode 100644
index 00000000..436bf1eb
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35.plist
@@ -0,0 +1,367 @@
+
+
+
+
+ adjustmentBaseVersion
+ 1
+ adjustmentData
+
+ 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
+ 8Hi4FmbBAng6LIXVsAG2wXNgDxyCE/Cl8BXwdfBS+E54FfwQ/AT8LPwS/Ba8E/4I/hw+
+ Av8AnySRSYWkMtIo0gRSA0lAQkiNJBNpNslD6iB1kxaRbiTdTlpNepS0gfQS6R3Sh6QD
+ pG9JP5Mh8kByOXksmU4WkMXkJnIL2U2Oki8jX0teTl5Nfpy8mfwG+X3yAfJR8m+UXEop
+ hUahU6ZQFBQzxUHpoFxGuZ5yJ+VBygbKq5T3KZ9TjlFO5xTljMypzZmco8xpzvHkJHMW
+ 5yzPWZvzTM5rOR/mHMo5kZubW55bncvPVeTacttz5+Zen3t37rrcrbk7cw/m/pyXlzcs
+ rzZvWl5THpoXz1ucd0feo3kv5u3KO5T3a/7A/DH5rHxZfkt+KH9h/vL8h/O35O/K/zr/
+ VEFJwfiCyQVNBc6CVMFNBWsKNhfsKDhUcGrAoAHVA6YNMA1oH7BgwO0DHh/w2oB9A34c
+ OHBg5UDhQP1A38D5A28fuH7gmwM/H/hb4eDCSYXiwtbCROGNhQ8Ubi38qPDHoqKiCUUz
+ i1qK4kU3Fj1U9ErR/qJfi0uL64uVxc7iy4tXFG8o3lX8PbWAOp6KUC+hdlOXU5+i7qAe
+ LSkomVAiLkFLLitZUfJsyZ6SnweVDmIOahoUHHT9oIcHvTXo8OC8wRMGSwc7By8afN/g
+ VwYfLCWXjisVlzpKryhdU/pa6aGy3LLqMmVZe9l1ZY+VbS87NmTwEM4Qy5CuISuGvDDk
+ QDm5fEK5sjxQflP5k+W7y09WjKpAKlwV11Q8XrGr4pehI4bOHOoaeu3QdUM/HHpyGG2Y
+ dJh/2M3DNg77dDhl+KTh+uHJ4SuHvzb86IiyEVNGOEZcO+LJER+PJI2cNNIwcu7I+0Zu
+ G/nzqNGj5KMio+4Y9cqoo6PLR88c3T562egto4+MKR0zfYxvzLIxL475hjaEhtACtNtp
+ r9KOjR05VjE2MXbV2O1jT1VWV5orF1auq/x03IBxgnHuccvGvTzuWNWYKk3VpVWPVH08
+ vmC8YLx3/G3j3xj/y4TqCdYJV03YOOFw9dBqZXV39SPV+yYWTZwxsWPi6okf1OTWCGr8
+ NXfXvDeJNIk7yTtpxaQdtaRaXq2v9u7anXU5dcK6UN3quj30QjpC76Q/Qv+8vrxeXb+w
+ fmP99w1VDS0NNze80XCawWUEGGsYnzAHM1XMhczNzB9Yk1gO1grWB+witox9OXsT+zin
+ luPirOTs5ZZyNdyruC9z/+DxeVHe47wj/Cr+HP5d/D2CMoFOcL3gTWGOUCS8XPi88LfJ
+ vMnxyU9O/scU+hT/lIenHJ5aPdU1dc3Ug9Mqp6HTVk07MJ02fc70e6cfmDF2Bjpj9Ywv
+ Zo6b6Zy5dubXSA3SjjyKfC9iiKKiZ0S/iCeL54m3SsgSueRayXbpYKlZeqd0v6xS5pE9
+ Ijsm58rnyrcqchSNipsVe5SjlA7lQ8pjKr5qnurVxsJGY+OdjV+oJ6mj6s0akkaluUWz
+ TzteG9JubIKalE23NH2qq9Z16J7T5+p1+hX6rwxMw6WGN4ylxjbjw8YTJpHpJtMn5onm
+ hPllC9XSannI8otVYl1qPdDc0Dyv+R3bcJvPtqklr8XSsrbl51nSWbfOOtTKbV3cunt2
+ 9eyu2W9dMvySwCUvtFHb0Lan5uTMsc55eM7vaBO6Gv3ZrrTfZT/mEDtuc3zrnOlc5jzi
+ muZa6vraPc291H3YM81zi+eId4Z3ufeoT+y703e8XdF+T/sv/ib/A/4/A9bAumB+cE7w
+ 2dDgkD/0anh0uCu8M1IbWRw50DG549aOY9HG6NoYHJsd2xQvA4OpbYmJiSsTn3dO71zR
+ +WvSknyqa1BXqGtbalLqmtTX3bLu++dS5jrmvnzp2EsXXPr5PGTeqsvgy+yXvXz5uMsX
+ XX5ovnz+gwsGLPAveHchY+HShT9dYb1i86JRi+YvOnil/MpHFhcvji7ec9WUq+65mnK1
+ 7+rt17CvueOa09c6r337OsZ1y6/7/XrH9W/fwLzh9hv+vNF94/abeDetXJK7JLRk980z
+ bn5w6aCl3UsP3qK5ZcMy2rJrl/10a9utby3nLL/ntgG3JW47cLv69k13VN2x5I7f7/Te
+ +eEK0Yp1d42865q7frnbefeulTNXPn7PqHuuu+fkvb57966Sr9qwesLq5ffl3td531dr
+ LGveuF9w/0Nrh6+9bu0fD4QeOPCg4cFXH+I/9NDDIx++6RHSI4lHjjza+uh7j0ke2/Q4
+ /fFV68rXXbceWp9Y/80Tc57Y/WTjky8/JXjq8afHP33XM6XPXLsB3pDacGyjd+OBTbZN
+ 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
+ 5i4LVBfm3p1fbel2qp+m7wrllF9ZeIp05IHy135W3b9uwpJF3L3uH6NDDk7+aEbR3i83
+ rL159/ROw1e1q73fKK5w7fh8mnE7YzFp0qMnD5dv+un4c/lCzd5Xfj3Rcjz/rrmXCm5a
+ paOP2vjIhwinbv+WX+lb5HP4T5VUrchhlR/eMrKx4hfayq9/UJU/G6v60Fzm37j3lVS5
+ dvrDsZHvfPHCEYSkz3tl7BOPfDlqyc0Qckloz5LyHyhPfrJPFPnqimsfe06wfGslt+zH
+ evjKZ0z0VTtrBHOO0O995N6Vdx6lDb5tnmav53Nz6XWTJOPNpx+accM9A5qtBTz0w+8S
+ D9LmFD4n+z5IuXN95eZp9z34cN11v77jWC8KffKN8u5ZysObP5n9QQF6/JpQsmSIZeSG
+ k6yWHZRfH2nlXT+g9ofLTvmXpFgLTR5dxY9LrL9+NWXO1ydechd9OP/LVS9uz2v5B+cS
+ 1dgTLOXLlnmR9nsH/7Rkwv6usXfUvxi54a1nyR/UtLUdVt4y6Tnt6W9+W7J32IFDG36n
+ tE16dG9w++nJS0IPX/a14M5DV7837XT+m2+brDbeqLod/N8Ok+fUNsRJLTe9NvjU7D/u
+ LKy1P/kO/PCyLV803XJk9zjSPV+WQom3I6yPrhg+X7fhtx+3PAQ/YPxOvva5pVrqz9fZ
+ BBO+3T/zOTl5aEFs4+cP3P/TkFLF4T+fG/NQdd7tNX80Tftql2nxU7XHjv12FXLHkvt/
+ +2nk5Juuf7tl6NCNFbdrfza9u/DB43krUN/Wu1684ovdv/808+llEzSvz/lM8SKlLnea
+ 8MVJEtUDb63/x9Pr3p4v3bdbLnSsibsoK/f8dDQ6x7Wp/tPTAq5m4vxFq0Bj4Z3ctm74
+ ntrDzy9r37X/fei2nK/WPqYaa77ttx/4luULDc5tTx0+PWrdvZZX5/x2eNSQrWvLp+ne
+ u4Tx2Q0tspK8+rfW5Q0N0zXmWftq4IrlNzXV5jYvF+3QDi1ur5EPc02/+Z7TlLqS5vtk
+ P5/2keSzy+e+cXnHwNtvenmO5mTsxSVTvqpYuPWD96EhA6787ruuk69UXn7VMvOa2YnS
+ ujq7t+aj1a/Zi488cNfSIsZ9T2x/7KNjrNrX0VfmdP1QM2rmj098cWLoTQ350eqrxiJd
+ rxetfQXZbd37q4O1/9Opopl3zl4w9+W3yskj1ty9k/HtNxt8rQpelWndJGTrreuPh33B
+ aaXf1Xx3U94PeuEzc74db/nyxMkVsWdGS9Z/7V/eOnOrpSRQmCxfe8Oyweib4y81l3YN
+ uu/Ghx+pmSaTLhp7/NfEz3P+eOIGW8wz97Kly/aOHXTDZ7q8wIqiPdVHHw5PW/5V9RH2
+ 2JXR3dstW1fuzN2/s7suRnpxx6Ku/f8Y80Fslf7qlyKeU7O+2cK5++sVy/4c4C1YURLf
+ c1D81FUHH7ht6mWprb/p1V88s4o3eXjDjl+WfDLBOnTTw4UHLqv4zajZXDtLJOW9c+vr
+ Rx85uFWOHpsd3LNR88SzrpWV3dZRfON1t4+o/37Wmicee2mf/ZepVY0k53MPrZ3I3jv5
+ 2fX2TvjNQ/NHVQSLxqf0rED0ypeO8AXH9UO3HFe+xWcfuv3QgCvY33c4Z3g53ocmr1zz
+ qv2edxYdbZ+CQC8wny6r3/D9sKs/23fw6PWT3xmz86PEn7+8wlxXN+wW8zusYPWX19/9
+ oX/q+qP64Rseu/M6WvjU8pXbl3447lbv9PHF275cMuvpl0+91lX35Wb1tocOvam0Dft+
+ //Brt9OPch3J8UmRbLN/xkDZA5YD3GDyhdJRc154RFhbeOWQh9f+4+svAqzjvz1zTw66
+ fvrxKcJDJ1y5J5rclYl99XO+vjW//NSIcud9ee0zRP8Y1hY7fH8JORrnYLqHpjzLoc37
+ pO2+ne9OX/DGoh0LQsmf39nz8TcPK18aUE3acfX17ZEplcX35tu/bz1y5Unn3nlvL16x
+ tVMy8cGr33p6P3VgzttvfrhROPBH72Xo9g2jF5V4l88mzx269cZDN1bccfCJPxxP8A4N
+ qK6ljdi8xblljOWHshvU9V+8N+VO1eAhzfXjhy7vIh3dmTdl7IpJxqtsbHnCPvbNg97O
+ ex9U3Up//22defmv9E0vv7X648XhLZsZlNrBSlLpDtInzticIS9wyz6+MTd/4eD6Dj3j
+ yKmFK5c2VU7Tm8trKoaQG36/eVP9jju/qz14/NDH3PtHvnxieejqgcfKtz5+kLdn/uNH
+ lt7+3R9Nu/fNuVJy7/Vv1x3c1fjpjrtntBT/WaFrhEllpelNzJqBS5s/qhpWBi2BIUwV
+ QWci6Iqj2LZmPXbeO9vrufY/+1ALArv43dDGnFzMEwn8LQXP7x/FFs7aSiYKWC4WH7UL
+ WS4hx85zokImk8FxMVx8vpPFdqJ8PpvP4Tu47NUwY+d45mqY9UFeWSmZDYJcDXNWcdtK
+ qvgSrkSIIAwQvVhK5zAQNl0kBKlhC/hikYDLEnI4rFmRhD3gc9S3R1weECmDz+Xx7CjH
+ yWEK3Ew+D3WjLgbKcLrZDDaLL2Rx3SyHWyhEx2Ebti2Gw4sHQ/Bjy3cNoYyYsodcllM6
+ ZNzYqbxpdTXTJ2Rc3NisQR1Mbh2T0aLzhuPhIBoPRyGci7j4M4zrgIPQaKBoEL4BiG2o
+ YZtz2KYftjGHLT9CXqDagQoDlQDqLqDuAQq7ov4klD6dvgGoTUBtBup5oLYA9SpQ7wK1
+ A6gTEASDcOFqoEC4sBCoKUBNA2oGUAhQYqBUQOmAsgHVBpQdKGwTNwHB6wYBNRWoGUCJ
+ gJICpQVKD5QRqG6gFgP1BFCbgXoRqFeBeh+ofUAdgnBQ4PQTmgFlA1537P8A
+
+ adjustmentEditorBundleID
+ com.pixelmatorteam.pixelmator.touch.x.photo
+ adjustmentFormatIdentifier
+ com.pixelmatorteam.touch.x.photo.PhotosAdjustmentData.EmbeddedSlimSidecarFileInfo.compressed
+ adjustmentFormatVersion
+ 1.0
+ adjustmentTimestamp
+ 2024-04-18T01:09:25Z
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35_1_201_a.jpeg b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35_1_201_a.jpeg
new file mode 100644
index 00000000..5a68ac85
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35_1_201_a.jpeg differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35_p.jpeg b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35_p.jpeg
new file mode 100644
index 00000000..5a80d087
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/7/7AAE68AE-4503-4A6D-85D4-B49E9361FC35_p.jpeg differ
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/C/C110AED9-D250-4B9A-BD5B-697931BF02CF.plist b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/C/C110AED9-D250-4B9A-BD5B-697931BF02CF.plist
new file mode 100644
index 00000000..df42a088
--- /dev/null
+++ b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/C/C110AED9-D250-4B9A-BD5B-697931BF02CF.plist
@@ -0,0 +1,20 @@
+
+
+
+
+ adjustmentBaseVersion
+ 0
+ adjustmentData
+
+ 89DVBAAAAAAKAAAA
+
+ adjustmentEditorBundleID
+ com.apple.Photos
+ adjustmentFormatIdentifier
+ com.apple.Photos.externalEdit
+ adjustmentFormatVersion
+ 1
+ adjustmentTimestamp
+ 2024-04-18T01:09:25Z
+
+
diff --git a/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/C/C110AED9-D250-4B9A-BD5B-697931BF02CF_1_201_a.jpeg b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/C/C110AED9-D250-4B9A-BD5B-697931BF02CF_1_201_a.jpeg
new file mode 100644
index 00000000..ff6f5d23
Binary files /dev/null and b/tests/ExternalAdjustments-14.4.1.photoslibrary/resources/renders/C/C110AED9-D250-4B9A-BD5B-697931BF02CF_1_201_a.jpeg differ
diff --git a/tests/test_external_adjustments.py b/tests/test_external_adjustments.py
new file mode 100644
index 00000000..bd0bdbbf
--- /dev/null
+++ b/tests/test_external_adjustments.py
@@ -0,0 +1,18 @@
+"""Test for external adjustments"""
+
+import osxphotos
+
+ADJUSTMENTS_LIBRARY = "tests/ExternalAdjustments-14.4.1.photoslibrary"
+
+
+def test_external_adjustments():
+ """Test for external adjustments, #1518"""
+ photosdb = osxphotos.PhotosDB(dbfile=ADJUSTMENTS_LIBRARY)
+ photos = photosdb.photos()
+ assert len(photos) == 1
+ photo = photos[0]
+ assert photo.adjustments is not None
+ assert (
+ photo.adjustments.asdict()["editor"]
+ == "com.pixelmatorteam.pixelmator.touch.x.photo"
+ )