From f4899aee788e5079b99d2cecc713afb8a1b680c1 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 14:25:49 -0500 Subject: [PATCH 01/89] fix: harden playback lifecycle, metadata, and accessibility (WIP from prior session) - Replace isolated deinit (crashes the macOS 15 test host via back-deployment) with main-thread teardown; move the playback timer into a MainActor clock. - Per-analyzer FFT setup ownership; stereo-aware normalization for opposite-phase sources; direct reads for interior separation windows. - Preserve renamed titles against late metadata and publish Now Playing. - Reserve the drop slot before async provider loading. - Macro/preset status, clip-LED hold, key transposition, timecodes. - VoiceOver labels for mixer, transport, and library controls. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/build.yml | 2 +- .github/workflows/release.yml | 2 +- AUDIO_ENGINE.md | 4 +- Isolate.xcodeproj/project.pbxproj | 10 +- Sources/App/AudioEngineManager.swift | 153 +++++++++--------- Sources/App/FFTAnalyzer.swift | 26 +-- Sources/App/IsolateApp.swift | 33 +++- Sources/App/MenuBarManager.swift | 10 +- Sources/App/NowPlayingManager.swift | 2 +- Sources/App/PlaybackClock.swift | 7 + Sources/App/StemCache.swift | 2 +- Sources/App/StreamingAudio.swift | 19 ++- Sources/Library/ImportCoordinator.swift | 10 +- Sources/Library/LibraryView.swift | 62 ++++--- Sources/Player/CustomFader.swift | 24 ++- Sources/Player/PlayerView.swift | 75 ++++++--- .../ImportSeparationRegressionTests.swift | 128 +++++++++++++++ Tests/IsolateTests/IsolateTests.swift | 2 +- .../ProductionRegressionTests.swift | 45 ++++++ UITests/IsolateUITests/IsolateUITests.swift | 64 +++++++- project.yml | 1 - 21 files changed, 520 insertions(+), 161 deletions(-) create mode 100644 Sources/App/PlaybackClock.swift create mode 100644 Tests/IsolateTests/ImportSeparationRegressionTests.swift diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a2cc38e..f99baf4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -34,7 +34,7 @@ jobs: run: xcodebuild test -project Isolate.xcodeproj -scheme Isolate -destination 'platform=macOS,arch=arm64' -derivedDataPath build/DerivedData -only-testing:IsolateTests CODE_SIGNING_ALLOWED=NO - name: Preserve test results if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7.0.1 with: name: test-results path: build/DerivedData/Logs/Test/*.xcresult diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7f1eaaf..0825c14 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -60,7 +60,7 @@ jobs: if macOS requests explicit approval. - name: Preserve test results if: always() - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7.0.1 with: name: release-test-results path: build/DerivedData/Logs/Test/*.xcresult diff --git a/AUDIO_ENGINE.md b/AUDIO_ENGINE.md index 4959c5c..ebfbb21 100644 --- a/AUDIO_ENGINE.md +++ b/AUDIO_ENGINE.md @@ -2,7 +2,7 @@ ## Separation -`ExtAudioFile` decodes supported input into stereo Float32 at 44.1 kHz in 16,384-frame blocks. Normalization uses a mono reference mean and standard deviation. Reflection repeats correctly at both ends even for sources shorter than one model window. +`ExtAudioFile` decodes supported input into stereo Float32 at 44.1 kHz in 16,384-frame blocks. Normalization uses a mono reference mean and standard deviation, with stereo energy as a fallback when opposite-phase channels cancel the mono reference. Interior windows read directly into the reused buffer. Reflection repeats correctly at both ends even for sources shorter than one model window. HTDemucs accepts 441,000 frames. Isolate runs sequential predictions with a 220,500-frame hop, applies a Hann window, divides overlap sums by accumulated weights, and writes completed hops to four Float32 WAV files. Returned tensor strides and Float16/Float32 types are respected. Non-finite source/model samples fail the import. The decoded original is preserved for comparison; no automatic filtering or limiting is applied to cached source audio. @@ -21,6 +21,8 @@ All five players schedule against the same host time. The original and stem sum Seeking clamps to the source range, invalidates old completion callbacks, and reschedules all players. Seeking to exactly the end does not schedule a zero-frame segment. Playback stops at completion unless looping is enabled. Playback progress uses the player clock; the UI timer does not generate audio timing. +Engine teardown cancels pending work, removes its configuration observer, and releases taps and the graph on the main thread. The playback clock owns its timer on the main actor. This avoids the isolated-deinitializer back-deployment runtime that crashed synchronous tests on macOS 15. + A–B looping reschedules at the loop start when the player clock reaches the end marker. It is a practice feature, with scheduling latency at the boundary; no seamless/sample-accurate looping guarantee is made. ## Controls and metering diff --git a/Isolate.xcodeproj/project.pbxproj b/Isolate.xcodeproj/project.pbxproj index 39e763c..2d9a3d0 100644 --- a/Isolate.xcodeproj/project.pbxproj +++ b/Isolate.xcodeproj/project.pbxproj @@ -20,8 +20,10 @@ 64DAA5BF14FB75131FF30C78 /* TrackModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = E404CB7871E1A45DE1242859 /* TrackModel.swift */; }; 669642CCDE25B6636D369197 /* AppMoveHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8902F75890A1D02F662A2C4 /* AppMoveHelper.swift */; }; 6CBEC0DDE108EA06515F8B93 /* AudioEngineManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = F162949F185EF2FA9835DE2C /* AudioEngineManager.swift */; }; + 6E2D4D823F3A717CBBB8088D /* ImportSeparationRegressionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C2EBC811F849DA5036CFC1B /* ImportSeparationRegressionTests.swift */; }; 792E9F6C4E56359D456DDA0F /* MenuBarManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CF938C23122BA151FB3DFCE /* MenuBarManager.swift */; }; 8795659D14EB49E0487CF201 /* PlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59B0F1BF366285DF7ED96856 /* PlayerView.swift */; }; + 8BD92F3394B42C1A0AD566FC /* PlaybackClock.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF8F78D393965984025C15BF /* PlaybackClock.swift */; }; 95C2E3DA7EFB59D971F2F6E1 /* DotGothic16-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 65D4E52007621CC6578509E0 /* DotGothic16-Regular.ttf */; }; 9B785A6BE884B7DEB4B68D29 /* FaderScale.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F482B1CF7D3861CF9CB7BE9 /* FaderScale.swift */; }; A07EF38BF93598B2A4702404 /* ImportCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A85EA9B80B1D07CE0BC012A6 /* ImportCoordinator.swift */; }; @@ -59,6 +61,7 @@ 08F2813A8F193935CAA240FC /* StemCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StemCache.swift; sourceTree = ""; }; 0CA8A3AD0C499BC470D746C2 /* AudioExporter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioExporter.swift; sourceTree = ""; }; 3B32BB7E1AA2EC3946E2671E /* LibraryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LibraryView.swift; sourceTree = ""; }; + 3C2EBC811F849DA5036CFC1B /* ImportSeparationRegressionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImportSeparationRegressionTests.swift; sourceTree = ""; }; 49A8F54BCDFECE3713F6E918 /* FFTAnalyzer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FFTAnalyzer.swift; sourceTree = ""; }; 4CF938C23122BA151FB3DFCE /* MenuBarManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuBarManager.swift; sourceTree = ""; }; 4F482B1CF7D3861CF9CB7BE9 /* FaderScale.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FaderScale.swift; sourceTree = ""; }; @@ -79,6 +82,7 @@ AC1A0F01EE97D0951555E052 /* IsolateApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IsolateApp.swift; sourceTree = ""; }; B807A91D83D445402D9CAF99 /* ProductionRegressionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductionRegressionTests.swift; sourceTree = ""; }; BDB33D51AF84015B27BDB60D /* AudioMeterProcessor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioMeterProcessor.swift; sourceTree = ""; }; + CF8F78D393965984025C15BF /* PlaybackClock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaybackClock.swift; sourceTree = ""; }; D39417E3CC1D1DF6CF0E4656 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; D7C71DE2440945DF04ED48AA /* Haptics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Haptics.swift; sourceTree = ""; }; D9F18A0F03B33726F0C3D41F /* Isolate.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Isolate.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -124,6 +128,7 @@ AC1A0F01EE97D0951555E052 /* IsolateApp.swift */, 4CF938C23122BA151FB3DFCE /* MenuBarManager.swift */, A696B7978AB11ACA46D7592E /* NowPlayingManager.swift */, + CF8F78D393965984025C15BF /* PlaybackClock.swift */, D39417E3CC1D1DF6CF0E4656 /* SettingsView.swift */, 08F2813A8F193935CAA240FC /* StemCache.swift */, 80C4F1BEA2CBC91B8FB4637C /* StreamingAudio.swift */, @@ -166,6 +171,7 @@ B1EA22E3D283A7BD3EAC64FC /* IsolateTests */ = { isa = PBXGroup; children = ( + 3C2EBC811F849DA5036CFC1B /* ImportSeparationRegressionTests.swift */, 9B54412E9E3F71B00BF34FB0 /* IsolateTests.swift */, B807A91D83D445402D9CAF99 /* ProductionRegressionTests.swift */, ); @@ -318,6 +324,7 @@ 49F7C5966BB4966F7B02CE38 /* LibraryView.swift in Sources */, 792E9F6C4E56359D456DDA0F /* MenuBarManager.swift in Sources */, BD13B32036CBA957B6A8FB50 /* NowPlayingManager.swift in Sources */, + 8BD92F3394B42C1A0AD566FC /* PlaybackClock.swift in Sources */, 8795659D14EB49E0487CF201 /* PlayerView.swift in Sources */, EF40587C88F3A21DCBED178E /* SettingsView.swift in Sources */, 1CA50B3B9305F340E86C09ED /* StemCache.swift in Sources */, @@ -331,6 +338,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 6E2D4D823F3A717CBBB8088D /* ImportSeparationRegressionTests.swift in Sources */, CCA10CCFD58840F597E21121 /* IsolateTests.swift in Sources */, 161B67E13457763752062DE1 /* ProductionRegressionTests.swift in Sources */, ); @@ -375,7 +383,6 @@ "$(inherited)", "@executable_path/../Frameworks", ); - OTHER_SWIFT_FLAGS = "-enable-experimental-feature IsolatedDeinit"; PRODUCT_BUNDLE_IDENTIFIER = com.isolate.Isolate; SDKROOT = macosx; SWIFT_VERSION = 5.0; @@ -504,7 +511,6 @@ "$(inherited)", "@executable_path/../Frameworks", ); - OTHER_SWIFT_FLAGS = "-enable-experimental-feature IsolatedDeinit"; PRODUCT_BUNDLE_IDENTIFIER = com.isolate.Isolate; SDKROOT = macosx; SWIFT_VERSION = 5.0; diff --git a/Sources/App/AudioEngineManager.swift b/Sources/App/AudioEngineManager.swift index 830f7f6..795ae5e 100644 --- a/Sources/App/AudioEngineManager.swift +++ b/Sources/App/AudioEngineManager.swift @@ -64,7 +64,7 @@ public final class AudioEngineManager { private let otherMixer = AVAudioMixerNode() private let stemsSumMixer = AVAudioMixerNode() private let comparisonMixer = AVAudioMixerNode() - private var configurationObserver: NSObjectProtocol? + @ObservationIgnored private var configurationObserver: NSObjectProtocol? public var importRequested = false public var hasLoadedTrack: Bool { fileVocals != nil } public var canBypass: Bool { audioFile != nil } @@ -107,9 +107,15 @@ public final class AudioEngineManager { let chromaticScaleSharp = ["C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"] let chromaticScaleFlat = ["C", "Db", "D", "Eb", "E", "F", "Gb", "G", "Ab", "A", "Bb", "B"] - let parts = trackMusicalKey.components(separatedBy: " ") - guard let root = parts.first else { return trackMusicalKey } - let mode = parts.dropFirst().joined(separator: " ") + let key = trackMusicalKey.trimmingCharacters(in: .whitespacesAndNewlines) + .replacingOccurrences(of: "♯", with: "#") + .replacingOccurrences(of: "♭", with: "b") + guard let first = key.first, "ABCDEFG".contains(first.uppercased()) else { return trackMusicalKey } + let rootLength = key.count > 1 && ["#", "b", "B"].contains(String(key.dropFirst().first!)) ? 2 : 1 + let root = String(key.prefix(rootLength)) + let suffix = String(key.dropFirst(rootLength)) + let mode = suffix.trimmingCharacters(in: .whitespaces) + guard ["", "m", "min", "minor", "maj", "major"].contains(mode.lowercased()) else { return trackMusicalKey } var currentIndex = chromaticScaleSharp.firstIndex(of: root.uppercased()) if currentIndex == nil { @@ -121,7 +127,7 @@ public final class AudioEngineManager { if newIdx < 0 { newIdx += 12 } let newRoot = chromaticScaleSharp[newIdx] - return mode.isEmpty ? newRoot : "\(newRoot) \(mode)" + return newRoot + suffix } // Dynamic real-time scaled BPM based on playbackRate @@ -456,7 +462,7 @@ public final class AudioEngineManager { private var fileDrums: AVAudioFile? private var fileBass: AVAudioFile? private var fileOther: AVAudioFile? - private var timer: Timer? + private let playbackClock = PlaybackClock() // MARK: - Initialization public init() { @@ -534,7 +540,7 @@ public final class AudioEngineManager { guard let self, self.hasLoadedTrack else { return } let resume = self.isPlaying self.isPlaying = false - self.timer?.invalidate() + self.playbackClock.timer?.invalidate() self.seek(toPercentage: self.playbackProgress) if resume { self.playSynced() } } @@ -561,18 +567,24 @@ public final class AudioEngineManager { } } - isolated deinit { + deinit { if let configurationObserver { NotificationCenter.default.removeObserver(configurationObserver) } - timer?.invalidate() activeSplitTask?.cancel() - engine.stop() - // AVAudioEngine does not remove node taps when it stops. Release the - // tap closures (and their FFT state) before the graph nodes are torn - // down, which is essential for short-lived managers in test hosts. - for node in [engine.mainMixerNode, vocalMixer, drumMixer, bassMixer, otherMixer] { - node.removeTap(onBus: 0) + metadataTask?.cancel() + let nodes = [engine.mainMixerNode, vocalMixer, drumMixer, bassMixer, otherMixer] + let teardown: @MainActor @Sendable () -> Void = { [engine, playbackClock] in + playbackClock.timer?.invalidate() + engine.stop() + for node in nodes { node.removeTap(onBus: 0) } + engine.reset() + } + // Keep graph/timer cleanup on their owning thread without the isolated + // deinit back-deployment runtime, which crashes on macOS 15 test hosts. + if Thread.isMainThread { + MainActor.assumeIsolated { teardown() } + } else { + DispatchQueue.main.async(execute: teardown) } - engine.reset() } private func configureEQNode(_ eq: AVAudioUnitEQ) { @@ -819,7 +831,10 @@ public final class AudioEngineManager { @MainActor public func updateTrackTitle(id: String, newTitle: String) { if currentTrackID == id { + titleOverride = newTitle currentTrackName = newTitle.uppercased() + trackTitle = newTitle + publishNowPlayingMetadata() } } @@ -830,7 +845,7 @@ public final class AudioEngineManager { do { try installFiles(urls) currentTrackID = track.id - currentTrackName = track.title.uppercased() + updateTrackTitle(id: track.id, newTitle: track.title) extractMetadata(url: track.originalURL) if !AppPreferences.defaults.bool(forKey: "isAutoPlayDisabled") { playSynced() } } catch { @@ -845,7 +860,7 @@ public final class AudioEngineManager { track.bassStemURL = data.bassStemURL track.otherStemURL = data.otherStemURL currentTrackID = track.id - currentTrackName = track.title.uppercased() + updateTrackTitle(id: track.id, newTitle: track.title) do { try track.modelContext?.save() } catch { showError("Could not save the recovered track: \(error.localizedDescription)") } } @@ -884,8 +899,8 @@ public final class AudioEngineManager { otherPlayer.stop() originalPlayer.stop() isPlaying = false - timer?.invalidate() - timer = nil + playbackClock.timer?.invalidate() + playbackClock.timer = nil // 2. Clear all audio file references fileVocals = nil @@ -897,6 +912,7 @@ public final class AudioEngineManager { // 3. Reset all playback state and metadata to default standby currentTrackID = nil currentTrackName = "NO TRACK LOADED" + titleOverride = nil trackTitle = "" trackArtist = "Isolate" trackAlbum = "4-Stem Neural Audio" @@ -928,7 +944,7 @@ public final class AudioEngineManager { } // MARK: - Import lifecycle - private var activeSplitTask: Task<[URL], Error>? + @ObservationIgnored private var activeSplitTask: Task<[URL], Error>? private var splitRequestID = UUID() public private(set) var lastImportCancelled = false @@ -989,6 +1005,7 @@ public final class AudioEngineManager { currentTrackID = url.path let title = url.deletingPathExtension().lastPathComponent currentTrackName = title.uppercased() + trackTitle = title extractMetadata(url: url) splitProgress = 1 if !AppPreferences.defaults.bool(forKey: "isAutoPlayDisabled") { playSynced() } @@ -1012,7 +1029,8 @@ public final class AudioEngineManager { errorMessage = nil } - private var metadataTask: Task? + @ObservationIgnored private var metadataTask: Task? + @ObservationIgnored private var titleOverride: String? private var metadataRequestID = UUID() private func extractMetadata(url: URL) { @@ -1020,7 +1038,7 @@ public final class AudioEngineManager { let requestID = UUID() metadataRequestID = requestID let asset = AVURLAsset(url: url) - metadataTask = Task { + metadataTask = Task { [weak self] in let scoped = url.startAccessingSecurityScopedResource() defer { if scoped { url.stopAccessingSecurityScopedResource() } } var foundBPM: String? @@ -1062,7 +1080,7 @@ public final class AudioEngineManager { if let number, number.isFinite, number > 0 { foundBPM = String(format: "%.1f BPM", number) } } if identifier.contains("tkey"), let value = try? await item.load(.stringValue), !value.isEmpty { - foundKey = value.uppercased() + foundKey = value.trimmingCharacters(in: .whitespacesAndNewlines) } if foundArt == nil && (item.commonKey == .commonKeyArtwork || item.identifier?.rawValue.contains("APIC") == true || item.identifier?.rawValue.contains("artwork") == true) { @@ -1113,9 +1131,9 @@ public final class AudioEngineManager { let finalBitDepth = computedBitDepth await MainActor.run { - guard !Task.isCancelled, self.metadataRequestID == requestID else { return } + guard !Task.isCancelled, let self, self.metadataRequestID == requestID else { return } self.albumArt = finalArt - self.trackTitle = finalTitle + self.trackTitle = self.titleOverride ?? finalTitle self.trackArtist = finalArtist self.trackAlbum = finalAlbum self.trackAudioFormat = finalFormat @@ -1124,20 +1142,18 @@ public final class AudioEngineManager { self.trackSampleRate = finalSampleRate self.trackBitDepth = finalBitDepth - let duration = self.totalTrackDuration ?? 0.0 - let elapsed = self.currentPlaybackTimeSeconds ?? 0.0 - NowPlayingManager.shared.updateNowPlayingInfo( - title: self.trackTitle, - artist: self.trackArtist, - album: self.trackAlbum, - artwork: self.albumArt, - duration: duration, - elapsed: elapsed, - isPlaying: self.isPlaying - ) + self.publishNowPlayingMetadata() } } } + + private func publishNowPlayingMetadata() { + NowPlayingManager.shared.updateNowPlayingInfo( + title: trackTitle, artist: trackArtist, album: trackAlbum, artwork: albumArt, + duration: totalTrackDuration ?? 0, elapsed: currentPlaybackTimeSeconds ?? 0, + isPlaying: isPlaying + ) + } // MARK: - Export public nonisolated static func renderStemToFile(sourceURL: URL, destURL: URL, low: Float, mid: Float, high: Float) throws { @@ -1246,8 +1262,8 @@ public final class AudioEngineManager { otherPlayer.stop() originalPlayer.stop() isPlaying = false - timer?.invalidate() - timer = nil + playbackClock.timer?.invalidate() + playbackClock.timer = nil clearVisualizers() } @@ -1285,7 +1301,7 @@ public final class AudioEngineManager { bassPlayer.pause() otherPlayer.pause() originalPlayer.pause() - timer?.invalidate() + playbackClock.timer?.invalidate() isPlaying = false clearVisualizers() NowPlayingManager.shared.updateNowPlayingPlaybackState() @@ -1297,7 +1313,7 @@ public final class AudioEngineManager { // High-precision 60Hz Playback Timer (16.6ms) for Instantaneous Time & Progress Sync (Active in Common RunLoop Modes) private func startPlaybackTimer() { - timer?.invalidate() + playbackClock.timer?.invalidate() let t = Timer(timeInterval: 1.0 / 60.0, repeats: true) { [weak self] _ in Task { @MainActor in guard let self = self, self.isPlaying, @@ -1319,21 +1335,9 @@ public final class AudioEngineManager { self.playbackProgress = progress - let totalDurationSecs = Int(round(duration)) - let elapsedSecs = min(totalDurationSecs, Int(floor(elapsed))) - let remainingSecs = max(0, totalDurationSecs - elapsedSecs) - - let mins = elapsedSecs / 60 - let secs = elapsedSecs % 60 - let rMins = remainingSecs / 60 - let rSecs = remainingSecs % 60 - self.currentTimeString = String(format: "%02d:%02d / -%02d:%02d", mins, secs, rMins, rSecs) - - let elapsedMs = Int((elapsed.truncatingRemainder(dividingBy: 1.0)) * 1000) - let remExact = max(0.0, duration - elapsed) - let remMs = Int((remExact.truncatingRemainder(dividingBy: 1.0)) * 1000) - self.detailedTimecode = String(format: "%02d:%02d.%03d / -%02d:%02d.%03d", mins, secs, elapsedMs, rMins, rSecs, remMs) + self.updateTimeDisplay(elapsed: elapsed, duration: duration) + let elapsedSecs = Int(min(duration, elapsed)) if elapsedSecs != self.lastSyncedNowPlayingSec { self.lastSyncedNowPlayingSec = elapsedSecs NowPlayingManager.shared.updateNowPlayingProgress(elapsed: elapsed, duration: duration) @@ -1341,29 +1345,34 @@ public final class AudioEngineManager { } } RunLoop.main.add(t, forMode: .common) - self.timer = t + playbackClock.timer = t } @MainActor public func updateTimeString(for progress: Double) { guard let fVocals = fileVocals else { return } let duration = Double(fVocals.length) / fVocals.processingFormat.sampleRate - guard duration > 0 else { return } - let totalDurationSecs = Int(round(duration)) - let elapsedSecs = min(totalDurationSecs, Int(floor(duration * progress))) - let remainingSecs = max(0, totalDurationSecs - elapsedSecs) - - let mins = elapsedSecs / 60 - let secs = elapsedSecs % 60 - let rMins = remainingSecs / 60 - let rSecs = remainingSecs % 60 - currentTimeString = String(format: "%02d:%02d / -%02d:%02d", mins, secs, rMins, rSecs) - - let exactElapsed = duration * progress - let elapsedMs = Int((exactElapsed.truncatingRemainder(dividingBy: 1.0)) * 1000) - let remExact = max(0.0, duration - exactElapsed) - let remMs = Int((remExact.truncatingRemainder(dividingBy: 1.0)) * 1000) - detailedTimecode = String(format: "%02d:%02d.%03d / -%02d:%02d.%03d", mins, secs, elapsedMs, rMins, rSecs, remMs) + guard duration > 0, progress.isFinite else { return } + updateTimeDisplay(elapsed: duration * max(0, min(1, progress)), duration: duration) + } + + private func updateTimeDisplay(elapsed: Double, duration: Double) { + let times = Self.playbackTimecodes(elapsed: elapsed, duration: duration) + currentTimeString = times.compact + detailedTimecode = times.detailed + } + + nonisolated static func playbackTimecodes(elapsed: Double, duration: Double) -> (compact: String, detailed: String) { + let current = min(duration, max(0, elapsed)) + let remaining = max(0, duration - current) + let elapsedMS = Int((current * 1000).rounded()) + let remainingMS = Int((remaining * 1000).rounded()) + let compact = String(format: "%02d:%02d / -%02d:%02d", + Int(current) / 60, Int(current) % 60, Int(ceil(remaining)) / 60, Int(ceil(remaining)) % 60) + let detailed = String(format: "%02d:%02d.%03d / -%02d:%02d.%03d", + elapsedMS / 60_000, elapsedMS / 1000 % 60, elapsedMS % 1000, + remainingMS / 60_000, remainingMS / 1000 % 60, remainingMS % 1000) + return (compact, detailed) } public func seek(toPercentage percentage: Double) { diff --git a/Sources/App/FFTAnalyzer.swift b/Sources/App/FFTAnalyzer.swift index 18b7e45..b63734d 100644 --- a/Sources/App/FFTAnalyzer.swift +++ b/Sources/App/FFTAnalyzer.swift @@ -1,26 +1,6 @@ import Foundation import Accelerate -/// Accelerate FFT setups are immutable and may be shared by analyzers with the -/// same transform size. Keep them alive for the process instead of repeatedly -/// creating and destroying opaque setup handles as short-lived audio graphs -/// are rebuilt. -private final class FFTSetupCache: @unchecked Sendable { - static let shared = FFTSetupCache() - - private let lock = NSLock() - private var setups: [vDSP_Length: FFTSetup] = [:] - - func setup(for log2n: vDSP_Length) -> FFTSetup { - lock.lock() - defer { lock.unlock() } - if let setup = setups[log2n] { return setup } - let setup = vDSP_create_fftsetup(log2n, FFTRadix(kFFTRadix2))! - setups[log2n] = setup - return setup - } -} - /// Reuses FFT working buffers. Confine each instance to one audio tap or caller. public final class FFTAnalyzer { public let fftSize: Int @@ -43,7 +23,7 @@ public final class FFTAnalyzer { self.halfSize = half self.log2n = vDSP_Length(log2(Float(fftSize))) self.windowSize = vDSP_Length(fftSize) - self.fftSetup = FFTSetupCache.shared.setup(for: log2n) + self.fftSetup = vDSP_create_fftsetup(log2n, FFTRadix(kFFTRadix2))! self.window = [Float](repeating: 0, count: fftSize) self.windowedBuffer = [Float](repeating: 0, count: fftSize) @@ -54,6 +34,10 @@ public final class FFTAnalyzer { vDSP_hann_window(&window, windowSize, Int32(vDSP_HANN_NORM)) } + + deinit { + vDSP_destroy_fftsetup(fftSetup) + } /// Transform at most frameCount samples, zero-padding short buffers. public func computeFFT(buffer: UnsafePointer, frameCount: Int, outMagnitudes: inout [Float]) { diff --git a/Sources/App/IsolateApp.swift b/Sources/App/IsolateApp.swift index a8132fe..0b7a76b 100644 --- a/Sources/App/IsolateApp.swift +++ b/Sources/App/IsolateApp.swift @@ -24,14 +24,27 @@ struct IsolateApp: App { } .commands { CommandGroup(replacing: .appInfo) { - Button("About Isolate") { isShowingAboutModal = true } + Button("About Isolate") { + isShowingSettingsModal = false + isShowingAboutModal = true + openWindow(id: "main", value: "main") + } } CommandGroup(replacing: .appSettings) { - Button("Settings…") { isShowingSettingsModal = true } + Button("Settings…") { + isShowingAboutModal = false + isShowingSettingsModal = true + openWindow(id: "main", value: "main") + } .keyboardShortcut(",", modifiers: .command) } CommandGroup(replacing: .newItem) { - Button("Import Audio…") { engineManager.importRequested = true } + Button("Import Audio…") { + isShowingAboutModal = false + isShowingSettingsModal = false + engineManager.importRequested = true + openWindow(id: "main", value: "main") + } .keyboardShortcut("o", modifiers: .command) .disabled(engineManager.isSplitting) Button("Export Stems…") { engineManager.exportStems() } @@ -199,10 +212,19 @@ struct ContentView: View { .onDrop(of: [.fileURL], isTargeted: $isTargeted) { providers in importer.acceptDrop(providers, context: modelContext, engine: engineManager) } - .onChange(of: engineManager.importRequested) { _, requested in + .onChange(of: engineManager.importRequested, initial: true) { _, requested in if requested { engineManager.importRequested = false - importer.chooseFiles(context: modelContext, engine: engineManager) + activeMenuTrackID = nil + isShowingRenameModal = false + isShowingDeleteModal = false + isShowingSettingsModal = false + isShowingAboutModal = false + Task { @MainActor in + // Let any existing sheet close before presenting the file picker. + await Task.yield() + importer.chooseFiles(context: modelContext, engine: engineManager) + } } } .overlay { @@ -366,6 +388,7 @@ struct ContentView: View { } } .onAppear { + theme.updateWindowAppearance() appMoveHelper.checkLocationOnStartup() NowPlayingManager.shared.configure( engineManager: engineManager, diff --git a/Sources/App/MenuBarManager.swift b/Sources/App/MenuBarManager.swift index f1fbaad..b975fc7 100644 --- a/Sources/App/MenuBarManager.swift +++ b/Sources/App/MenuBarManager.swift @@ -52,7 +52,7 @@ public final class MenuBarManager: NSObject, NSMenuDelegate { private func setupStatusItem() { let item = NSStatusBar.system.statusItem(withLength: NSStatusItem.variableLength) if let button = item.button { - button.image = createMenuBarIcon(frame: 0, isPlaying: false) + button.image = createMenuBarIcon(frame: 0, isPlaying: engineManager?.isPlaying ?? false) button.imagePosition = .imageOnly button.toolTip = "Isolate - 4-Stem Neural Audio" } @@ -61,6 +61,7 @@ public final class MenuBarManager: NSObject, NSMenuDelegate { menu.delegate = self item.menu = menu self.statusItem = item + updatePlaybackState(isPlaying: engineManager?.isPlaying ?? false) } public func updatePlaybackState(isPlaying: Bool) { @@ -185,19 +186,20 @@ public final class MenuBarManager: NSObject, NSMenuDelegate { menu.addItem(NSMenuItem.separator()) // 3. Stem Quick Actions + let anySolo = engine.vocalSolo || engine.drumSolo || engine.bassSolo || engine.otherSolo let acapellaItem = NSMenuItem(title: "Acapella (Solo Vocals)", action: #selector(applyAcapella), keyEquivalent: "") acapellaItem.target = self - acapellaItem.state = (engine.vocalSolo && !engine.vocalMuted) ? .on : .off + acapellaItem.state = (engine.vocalSolo && !engine.vocalMuted && !engine.drumSolo && !engine.bassSolo && !engine.otherSolo) ? .on : .off menu.addItem(acapellaItem) let instrumentalItem = NSMenuItem(title: "Instrumental (Mute Vocals)", action: #selector(applyInstrumental), keyEquivalent: "") instrumentalItem.target = self - instrumentalItem.state = (engine.vocalMuted && !engine.drumMuted) ? .on : .off + instrumentalItem.state = (engine.vocalMuted && !engine.drumMuted && !engine.bassMuted && !engine.otherMuted && !anySolo) ? .on : .off menu.addItem(instrumentalItem) let drumlessItem = NSMenuItem(title: "Drumless Backing", action: #selector(applyDrumless), keyEquivalent: "") drumlessItem.target = self - drumlessItem.state = (engine.drumMuted && !engine.vocalMuted) ? .on : .off + drumlessItem.state = (engine.drumMuted && !engine.vocalMuted && !engine.bassMuted && !engine.otherMuted && !anySolo) ? .on : .off menu.addItem(drumlessItem) let resetItem = NSMenuItem(title: "Reset 4-Stem Mix", action: #selector(applyResetMix), keyEquivalent: "") diff --git a/Sources/App/NowPlayingManager.swift b/Sources/App/NowPlayingManager.swift index 4cd429e..4bacc32 100644 --- a/Sources/App/NowPlayingManager.swift +++ b/Sources/App/NowPlayingManager.swift @@ -122,7 +122,7 @@ public final class NowPlayingManager: NSObject { if let art = artwork { let mpArtwork = MPMediaItemArtwork(boundsSize: art.size) { _ in art } info[MPMediaItemPropertyArtwork] = mpArtwork - } else if let appIcon = NSApp.applicationIconImage { + } else if let appIcon = NSApp?.applicationIconImage { let mpArtwork = MPMediaItemArtwork(boundsSize: appIcon.size) { _ in appIcon } info[MPMediaItemPropertyArtwork] = mpArtwork } diff --git a/Sources/App/PlaybackClock.swift b/Sources/App/PlaybackClock.swift new file mode 100644 index 0000000..5486b7b --- /dev/null +++ b/Sources/App/PlaybackClock.swift @@ -0,0 +1,7 @@ +import Foundation + +/// Keeps the non-Sendable run-loop timer on the main actor, including teardown. +@MainActor +final class PlaybackClock { + var timer: Timer? +} diff --git a/Sources/App/StemCache.swift b/Sources/App/StemCache.swift index af4aa2f..269ac48 100644 --- a/Sources/App/StemCache.swift +++ b/Sources/App/StemCache.swift @@ -15,7 +15,7 @@ enum StemCache { defer { try? handle.close() } var hash = SHA256() // Increment when the separation algorithm or model contract changes. - hash.update(data: Data("Isolate-streaming-v2".utf8)) + hash.update(data: Data("Isolate-streaming-v3".utf8)) while let data = try handle.read(upToCount: 1_048_576), !data.isEmpty { try Task.checkCancellation() hash.update(data: data) diff --git a/Sources/App/StreamingAudio.swift b/Sources/App/StreamingAudio.swift index 99386c4..70d1fbe 100644 --- a/Sources/App/StreamingAudio.swift +++ b/Sources/App/StreamingAudio.swift @@ -35,6 +35,7 @@ enum StreamingAudio { var count = 0 var sum = 0.0 var sumSquares = 0.0 + var stereoSumSquares = 0.0 while true { try Task.checkCancellation() buffer.frameLength = buffer.frameCapacity @@ -50,6 +51,8 @@ enum StreamingAudio { let mono = (Double(channels[0][i]) + Double(channels[1][i])) * 0.5 sum += mono sumSquares += mono * mono + stereoSumSquares += (Double(channels[0][i]) * Double(channels[0][i]) + + Double(channels[1][i]) * Double(channels[1][i])) * 0.5 } count += Int(frames) try writer.write(from: buffer) @@ -57,7 +60,11 @@ enum StreamingAudio { guard count > 0 else { throw DemucsError.invalidAudioFormat } let mean = sum / Double(count) let variance = max(0, sumSquares / Double(count) - mean * mean) - return Statistics(frames: count, mean: Float(mean), standardDeviation: max(1e-4, Float(sqrt(variance)))) + // Opposite-phase stereo can have a silent mono reference while both + // channels remain loud. Do not amplify it by 10,000x before inference. + let stereoVariance = max(0, stereoSumSquares / Double(count) - mean * mean) + let normalizationVariance = variance < 1e-8 ? stereoVariance : variance + return Statistics(frames: count, mean: Float(mean), standardDeviation: max(1e-4, Float(sqrt(normalizationVariance)))) } static func reflectedIndex(_ index: Int, count: Int) -> Int { @@ -69,7 +76,15 @@ enum StreamingAudio { static func readWindow(file: AVAudioFile, start: Int, count: Int, into buffer: AVAudioPCMBuffer) throws { let length = Int(file.length) - guard length > 0, count <= buffer.frameCapacity else { throw DemucsError.invalidAudioFormat } + guard length > 0, count > 0, count <= buffer.frameCapacity else { throw DemucsError.invalidAudioFormat } + // Most windows are entirely inside the track. Read them directly into + // the reusable model buffer; only edge windows need reflection. + if start >= 0, start <= length - count { + file.framePosition = AVAudioFramePosition(start) + try file.read(into: buffer, frameCount: AVAudioFrameCount(count)) + guard buffer.frameLength == AVAudioFrameCount(count) else { throw DemucsError.invalidAudioFormat } + return + } var lower = length - 1 var upper = 0 for i in 0.. Bool { - guard !isImporting else { return false } + guard !isImporting, !engine.isSplitting, openPanel == nil else { return false } + let fileProviders = providers.filter { $0.hasItemConformingToTypeIdentifier(UTType.fileURL.identifier) } + guard !fileProviders.isEmpty else { return false } + // Reserve the import slot before loading asynchronous item providers. + // Otherwise a second drop is accepted and discarded once the first starts. + isImporting = true Task { // Sequential collection preserves Finder order and avoids a shared-array data race. var urls: [URL] = [] - for provider in providers { + for provider in fileProviders { let url: URL? = await withCheckedContinuation { continuation in provider.loadItem(forTypeIdentifier: UTType.fileURL.identifier, options: nil) { item, _ in if let data = item as? Data { @@ -93,6 +98,7 @@ final class ImportCoordinator { } if let url { urls.append(url) } } + isImporting = false importFiles(urls, context: context, engine: engine) } return true diff --git a/Sources/Library/LibraryView.swift b/Sources/Library/LibraryView.swift index 309441a..c4fa1e7 100644 --- a/Sources/Library/LibraryView.swift +++ b/Sources/Library/LibraryView.swift @@ -82,20 +82,31 @@ struct LibraryView: View { private func recalculateTotalDuration() { let urlPairs: [(vocal: URL, original: URL)] = tracks.map { ($0.vocalStemURL, $0.originalURL) } statisticsTask?.cancel() + guard !urlPairs.isEmpty else { + totalDurationSeconds = 0 + totalOriginalBytes = 0 + return + } statisticsTask = Task { - let statistics = await Task.detached(priority: .utility) { - var totalBytes: Int64 = 0 - var totalSecs: Double = 0.0 - for pair in urlPairs { - totalBytes += (try? FileManager.default.attributesOfItem(atPath: pair.original.path)[.size] as? Int64) ?? 0 - if let file = try? AVAudioFile(forReading: pair.vocal) { - totalSecs += Double(file.length) / file.processingFormat.sampleRate - } else if let file = try? AVAudioFile(forReading: pair.original) { - totalSecs += Double(file.length) / file.processingFormat.sampleRate + let calculation = Task.detached(priority: .utility) { + var totalBytes: Int64 = 0 + var totalSecs: Double = 0.0 + for pair in urlPairs { + guard !Task.isCancelled else { break } + totalBytes += (try? FileManager.default.attributesOfItem(atPath: pair.original.path)[.size] as? Int64) ?? 0 + if let file = try? AVAudioFile(forReading: pair.vocal) { + totalSecs += Double(file.length) / file.processingFormat.sampleRate + } else if let file = try? AVAudioFile(forReading: pair.original) { + totalSecs += Double(file.length) / file.processingFormat.sampleRate + } } + return (totalSecs, totalBytes) + } + let statistics = await withTaskCancellationHandler { + await calculation.value + } onCancel: { + calculation.cancel() } - return (totalSecs, totalBytes) - }.value guard !Task.isCancelled else { return } totalDurationSeconds = statistics.0 totalOriginalBytes = statistics.1 @@ -169,6 +180,11 @@ struct LibraryView: View { } .background(theme.surface) } + .onAppear { recalculateTotalDuration() } + .onDisappear { statisticsTask?.cancel() } + .onChange(of: tracks.map(\.id)) { _, _ in + recalculateTotalDuration() + } } private var headerView: some View { @@ -210,6 +226,7 @@ struct LibraryView: View { .foregroundColor(isSearchFocused ? .red : theme.textSecondary) TextField("SEARCH STEMS...", text: $searchText) + .accessibilityLabel("Search library") .textFieldStyle(.plain) .font(.custom("DotGothic16-Regular", size: 11.5)) .foregroundColor(theme.textPrimary) @@ -237,6 +254,7 @@ struct LibraryView: View { .foregroundColor(theme.textSecondary) } .buttonStyle(.plain) + .accessibilityLabel("Clear library search") } } .padding(.horizontal, 8) @@ -343,13 +361,6 @@ struct LibraryView: View { .padding(.vertical, 8) .background(CustomScrollerModifier()) } - .onAppear { - recalculateTotalDuration() - } - .onDisappear { statisticsTask?.cancel() } - .onChange(of: tracks.count) { _, _ in - recalculateTotalDuration() - } .contentShape(Rectangle()) .onTapGesture { isSearchFocused = false @@ -373,6 +384,13 @@ struct LibraryView: View { .background(theme.surface) } + private var librarySummary: String { + var parts = ["\(tracks.count) \(tracks.count == 1 ? "track" : "tracks")"] + if totalOriginalBytes > 0 { parts.append(formattedTotalSize) } + if totalDurationSeconds > 0 { parts.append(formattedTotalDuration) } + return parts.joined(separator: ", ") + } + private var telemetryView: some View { HStack(spacing: 4) { Text("\(tracks.count) \(tracks.count == 1 ? "TRACK" : "TRACKS")") @@ -401,6 +419,9 @@ struct LibraryView: View { } .lineLimit(1) .minimumScaleFactor(0.85) + .accessibilityElement(children: .ignore) + .accessibilityIdentifier("library-summary") + .accessibilityLabel(librarySummary) } private var settingsButton: some View { @@ -469,6 +490,8 @@ struct TrackRowView: View { dotsMenuButton } .opacity(isMenuOpen ? 0.0 : 1.0) + .allowsHitTesting(!isMenuOpen) + .accessibilityHidden(isMenuOpen) if isMenuOpen { inlineActionsView @@ -532,6 +555,8 @@ struct TrackRowView: View { .contentShape(Rectangle()) } .buttonStyle(.plain) + .accessibilityLabel("Load \(track.title)") + .accessibilityValue(isActive ? "Selected" : "") } private var dotsMenuButton: some View { @@ -615,6 +640,7 @@ struct TrackRowView: View { .clipShape(RoundedRectangle(cornerRadius: 3)) } .buttonStyle(.plain) + .accessibilityLabel("Close track actions") } } } diff --git a/Sources/Player/CustomFader.swift b/Sources/Player/CustomFader.swift index 37ffc3c..f6098f6 100644 --- a/Sources/Player/CustomFader.swift +++ b/Sources/Player/CustomFader.swift @@ -132,7 +132,7 @@ struct CustomFader: View { // 3. Vertical Track Slot & Active Level Meter with Peak-Hold Clip LED ZStack(alignment: .top) { - let isLit = isClippingHeld + let isLit = peak >= 1 || isClippingHeld Circle() .fill(isLit ? Color.red : Color.red.opacity(0.18)) .frame(width: 4.5, height: 4.5) @@ -232,8 +232,18 @@ struct CustomFader: View { .onKeyPress(.downArrow) { adjust(-0.02); return .handled } .contextMenu { Button("Reset to 0 dB") { value = 1 } } .simultaneousGesture(TapGesture(count: 2).onEnded { value = 1; Haptics.playAlignment() }) - .onChange(of: peak) { _, peak in if peak >= 1 { triggerClipHold() } } - .onDisappear { clipHoldTask?.cancel() } + .onChange(of: peak) { oldPeak, newPeak in + if newPeak >= 1 { + clipHoldTask?.cancel() + isClippingHeld = true + } else if oldPeak >= 1 { + triggerClipHold() + } + } + .onDisappear { + clipHoldTask?.cancel() + isClippingHeld = false + } } @@ -247,10 +257,10 @@ struct CustomFader: View { clipHoldTask = Task { @MainActor in try? await Task.sleep(nanoseconds: 1_200_000_000) guard !Task.isCancelled else { return } - if peak < 1 { - withAnimation(.easeOut(duration: 0.35)) { - isClippingHeld = false - } + // This task starts when the peak falls below clipping. A new clip + // cancels it; avoid reading the stale peak captured with this view. + withAnimation(.easeOut(duration: 0.35)) { + isClippingHeld = false } } } diff --git a/Sources/Player/PlayerView.swift b/Sources/Player/PlayerView.swift index 9ce5827..068752b 100644 --- a/Sources/Player/PlayerView.swift +++ b/Sources/Player/PlayerView.swift @@ -449,13 +449,7 @@ struct StemChannelView: View { } private var isDimmed: Bool { - if isAnySoloed { - return !isSoloed - } else if isAnyMuted { - return isMuted || volume <= 0.001 - } else { - return false - } + effectiveVolume <= 0.001 } var body: some View { @@ -500,7 +494,7 @@ struct StemChannelView: View { .frame(height: isCompactHeight ? 22 : 30) // Bipolar Stereo Panning Control - PanKnobView(pan: $pan, isCompactHeight: isCompactHeight) + PanKnobView(pan: $pan, channelName: title, isCompactHeight: isCompactHeight) // 3-Band Rotary EQ Section (Modular strip with hairlines) StemEQChannelStripView( @@ -508,6 +502,7 @@ struct StemChannelView: View { mid: $midGain, high: $highGain, isBypassed: $isEQBypassed, + channelName: title, isCompactHeight: isCompactHeight, onReset: onResetEQ ) @@ -557,7 +552,15 @@ struct StemChannelView: View { .frame(maxWidth: .infinity, maxHeight: .infinity) .background(theme.surfaceSecondary.opacity(0.35)) .clipShape(RoundedRectangle(cornerRadius: 4)) - .opacity(isDimmed ? 0.35 : 1.0) + // Keep controls readable while a channel is silent so it remains easy to + // unmute it or move the solo to another stem. + .overlay(alignment: .top) { + if isDimmed { + Rectangle().fill(theme.textMuted).frame(height: 2) + .allowsHitTesting(false) + .accessibilityHidden(true) + } + } .animation(.easeInOut(duration: 0.15), value: isDimmed) } @@ -632,6 +635,7 @@ struct StemChannelView: View { struct PanKnobView: View { @Environment(\.isEnabled) private var isEnabled @Binding var pan: Float // -1.0 to +1.0 + var channelName: String = "" var isCompactHeight: Bool = false @State private var theme = ThemeManager.shared @State private var isHovered = false @@ -740,7 +744,7 @@ struct PanKnobView: View { .padding(.horizontal, 4) .padding(.vertical, isCompactHeight ? 1 : 2) .accessibilityElement(children: .ignore) - .accessibilityLabel("Pan") + .accessibilityLabel(channelName.isEmpty ? "Pan" : "\(channelName) pan") .accessibilityValue(panLabel) .accessibilityAdjustableAction { pan = max(-1, min(1, pan + ($0 == .increment ? 0.05 : -0.05))) } .focusable(isEnabled) @@ -757,6 +761,7 @@ struct RotaryEQKnobView: View { let freqLabel: String @Binding var gain: Float // -12.0 ... +12.0 var isBypassed: Bool = false + var channelName: String = "" var isCompactHeight: Bool = false @State private var theme = ThemeManager.shared @@ -910,7 +915,7 @@ struct RotaryEQKnobView: View { .contentShape(Rectangle()) .onHover { isHovered = $0 } .accessibilityElement(children: .ignore) - .accessibilityLabel("\(bandName) EQ") + .accessibilityLabel("\(channelName) \(bandName) EQ".trimmingCharacters(in: .whitespaces)) .accessibilityValue(gainString) .accessibilityAdjustableAction { gain = max(-12, min(12, gain + ($0 == .increment ? 0.5 : -0.5))) } .focusable(isEnabled) @@ -926,6 +931,7 @@ struct StemEQChannelStripView: View { @Binding var mid: Float @Binding var high: Float @Binding var isBypassed: Bool + var channelName: String = "" var isCompactHeight: Bool = false var onReset: (() -> Void)? = nil @State private var theme = ThemeManager.shared @@ -969,7 +975,9 @@ struct StemEQChannelStripView: View { ) } .buttonStyle(.plain) - .help(isBypassed ? "Unbypass EQ (⌘E)" : "Bypass EQ (⌘E)") + .accessibilityLabel("\(channelName) EQ bypass") + .accessibilityValue(isBypassed ? "On" : "Off") + .help(isBypassed ? "Enable this channel's EQ" : "Bypass this channel's EQ") Spacer() @@ -992,6 +1000,7 @@ struct StemEQChannelStripView: View { .clipShape(RoundedRectangle(cornerRadius: 2)) } .buttonStyle(.plain) + .accessibilityLabel("Reset \(channelName) EQ") .help("Reset EQ to Flat 0.0 dB") } } @@ -999,9 +1008,9 @@ struct StemEQChannelStripView: View { // 3 Rotary Knobs Row: LOW (100Hz), MID (1kHz), HIGH (10kHz) HStack(spacing: 2) { - RotaryEQKnobView(bandName: "LOW", freqLabel: "100Hz", gain: $low, isBypassed: isBypassed, isCompactHeight: isCompactHeight) - RotaryEQKnobView(bandName: "MID", freqLabel: "1.0kHz", gain: $mid, isBypassed: isBypassed, isCompactHeight: isCompactHeight) - RotaryEQKnobView(bandName: "HIGH", freqLabel: "10kHz", gain: $high, isBypassed: isBypassed, isCompactHeight: isCompactHeight) + RotaryEQKnobView(bandName: "LOW", freqLabel: "100Hz", gain: $low, isBypassed: isBypassed, channelName: channelName, isCompactHeight: isCompactHeight) + RotaryEQKnobView(bandName: "MID", freqLabel: "1.0kHz", gain: $mid, isBypassed: isBypassed, channelName: channelName, isCompactHeight: isCompactHeight) + RotaryEQKnobView(bandName: "HIGH", freqLabel: "10kHz", gain: $high, isBypassed: isBypassed, channelName: channelName, isCompactHeight: isCompactHeight) } // Hairline Boundary Bottom @@ -1580,6 +1589,8 @@ struct TransportBar: View { } .buttonStyle(.plain) .onHover { isLoopHovered = $0 } + .accessibilityLabel("Loop") + .accessibilityValue(engineManager.isLooping ? "On" : "Off") } private func pitchControl(isCompact: Bool) -> some View { @@ -1594,6 +1605,8 @@ struct TransportBar: View { .frame(width: 14, height: 28) } .buttonStyle(.plain) + .accessibilityLabel("Decrease pitch") + .disabled(engineManager.pitchShiftSemitones <= -12) let st = Int(engineManager.pitchShiftSemitones) let absSt = abs(st) @@ -1626,6 +1639,8 @@ struct TransportBar: View { .frame(width: 14, height: 28) } .buttonStyle(.plain) + .accessibilityLabel("Increase pitch") + .disabled(engineManager.pitchShiftSemitones >= 12) } .padding(.horizontal, 3) .frame(height: 32) @@ -1635,6 +1650,9 @@ struct TransportBar: View { .stroke(engineManager.pitchShiftSemitones != 0 ? Color.red.opacity(0.6) : theme.hairline, lineWidth: 1) ) .onHover { isPitchHovered = $0 } + .accessibilityElement(children: .contain) + .accessibilityLabel("Pitch") + .accessibilityValue("\(Int(engineManager.pitchShiftSemitones)) semitones") } private func speedControl(isCompact: Bool) -> some View { @@ -1654,6 +1672,8 @@ struct TransportBar: View { .frame(width: 12, height: 28) } .buttonStyle(.plain) + .accessibilityLabel("Decrease playback speed") + .disabled(engineManager.playbackRate <= 0.5) Text(String(format: "%.2fx", engineManager.playbackRate)) .font(.custom("DotGothic16-Regular", size: isCompact ? 10 : 11)) @@ -1681,6 +1701,8 @@ struct TransportBar: View { .frame(width: 12, height: 28) } .buttonStyle(.plain) + .accessibilityLabel("Increase playback speed") + .disabled(engineManager.playbackRate >= 1.5) } .padding(.horizontal, 3) .frame(height: 32) @@ -1690,6 +1712,9 @@ struct TransportBar: View { .stroke(engineManager.playbackRate != 1.0 ? Color.red.opacity(0.6) : theme.hairline, lineWidth: 1) ) .onHover { isSpeedHovered = $0 } + .accessibilityElement(children: .contain) + .accessibilityLabel("Playback speed") + .accessibilityValue(String(format: "%.2f times", engineManager.playbackRate)) } private var playButton: some View { @@ -2134,25 +2159,29 @@ struct FFT32BarColumn: View { struct StemMacroPresetsView: View { @Environment(AudioEngineManager.self) private var engineManager @State private var theme = ThemeManager.shared + + private var anySolo: Bool { + engineManager.vocalSolo || engineManager.drumSolo || engineManager.bassSolo || engineManager.otherSolo + } private var isAcapellaActive: Bool { engineManager.vocalSolo && !engineManager.vocalMuted && !engineManager.drumSolo && !engineManager.bassSolo && !engineManager.otherSolo } private var isInstrumentalActive: Bool { - engineManager.vocalMuted && !engineManager.drumMuted && !engineManager.bassMuted && !engineManager.otherMuted && !engineManager.vocalSolo + engineManager.vocalMuted && !engineManager.drumMuted && !engineManager.bassMuted && !engineManager.otherMuted && !anySolo } private var isDrumlessActive: Bool { - engineManager.drumMuted && !engineManager.vocalMuted && !engineManager.bassMuted && !engineManager.otherMuted && !engineManager.drumSolo + engineManager.drumMuted && !engineManager.vocalMuted && !engineManager.bassMuted && !engineManager.otherMuted && !anySolo } private var isKaraokeActive: Bool { - abs(engineManager.vocalVolume - 0.25) < 0.05 && !engineManager.vocalMuted && !engineManager.drumMuted && !engineManager.bassMuted && !engineManager.otherMuted + abs(engineManager.vocalVolume - 0.25) < 0.05 && !engineManager.vocalMuted && !engineManager.drumMuted && !engineManager.bassMuted && !engineManager.otherMuted && !anySolo } private var isDnBActive: Bool { - engineManager.vocalMuted && engineManager.otherMuted && !engineManager.drumMuted && !engineManager.bassMuted + engineManager.vocalMuted && engineManager.otherMuted && !engineManager.drumMuted && !engineManager.bassMuted && !anySolo } var body: some View { @@ -2194,12 +2223,18 @@ struct StemMacroPresetsView: View { } private var activePresetDescription: String { + if engineManager.isBypassed { return "STATUS: ORIGINAL MASTER • STEM MIX BYPASSED" } if isAcapellaActive { return "STATUS: VOCAL ISOLATION • BACKING STEMS MUTED" } if isInstrumentalActive { return "STATUS: INSTRUMENTAL • LEAD VOCALS MUTED" } if isDrumlessActive { return "STATUS: DRUMLESS PRACTICE • DRUMS MUTED" } if isKaraokeActive { return "STATUS: KARAOKE MODE • -12dB LEAD VOCALS" } if isDnBActive { return "STATUS: DRUM & BASS • VOCALS & OTHER MUTED" } - return "STATUS: BALANCED 4-STEM MASTER • 0.0 dB UNITY GAIN" + let volumes = [engineManager.vocalVolume, engineManager.drumVolume, engineManager.bassVolume, engineManager.otherVolume] + let anyMuted = engineManager.vocalMuted || engineManager.drumMuted || engineManager.bassMuted || engineManager.otherMuted + if !anySolo && !anyMuted && volumes.allSatisfy({ abs($0 - 1) < 0.001 }) { + return "STATUS: ALL STEMS ACTIVE • 0.0 dB UNITY GAIN" + } + return "STATUS: CUSTOM STEM MIX" } private func macroButton(title: String, desc: String, isActive: Bool, action: @escaping () -> Void) -> some View { diff --git a/Tests/IsolateTests/ImportSeparationRegressionTests.swift b/Tests/IsolateTests/ImportSeparationRegressionTests.swift new file mode 100644 index 0000000..119d7c1 --- /dev/null +++ b/Tests/IsolateTests/ImportSeparationRegressionTests.swift @@ -0,0 +1,128 @@ +import XCTest +import AVFoundation +import SwiftData +import UniformTypeIdentifiers +@testable import Isolate + +@MainActor +final class ImportSeparationRegressionTests: XCTestCase { + private var directory: URL! + + override func setUpWithError() throws { + directory = FileManager.default.temporaryDirectory.appending(path: UUID().uuidString) + try FileManager.default.createDirectory(at: directory, withIntermediateDirectories: true) + } + + override func tearDownWithError() throws { + try FileManager.default.removeItem(at: directory) + } + + private func audio(frames: Int = 8192, rightGain: Float = 0.5, amplitude: Float = 0.5) throws -> URL { + let url = directory.appending(path: "source.wav") + let buffer = AVAudioPCMBuffer(pcmFormat: StreamingAudio.format, frameCapacity: AVAudioFrameCount(frames))! + buffer.frameLength = buffer.frameCapacity + for frame in 0..()), 0) + XCTAssertFalse(importer.acceptDrop([NSItemProvider(object: "text" as NSString)], context: container.mainContext, engine: engine)) + } +} diff --git a/Tests/IsolateTests/IsolateTests.swift b/Tests/IsolateTests/IsolateTests.swift index d8c78ed..63653df 100644 --- a/Tests/IsolateTests/IsolateTests.swift +++ b/Tests/IsolateTests/IsolateTests.swift @@ -43,7 +43,7 @@ final class IsolateTests: XCTestCase { XCTAssertGreaterThan(maxMagnitude, 0.0, "FFT magnitude for sine wave must be greater than zero") } - func testShortLivedFFTAnalyzersShareSafeSetupOwnership() { + func testShortLivedFFTAnalyzersReleaseSetupOwnership() { autoreleasepool { let analyzers = (0..<5).map { _ in FFTAnalyzer(fftSize: 1024) } var samples = [Float](repeating: 0.5, count: 1024) diff --git a/Tests/IsolateTests/ProductionRegressionTests.swift b/Tests/IsolateTests/ProductionRegressionTests.swift index d4eb2e7..0e61e10 100644 --- a/Tests/IsolateTests/ProductionRegressionTests.swift +++ b/Tests/IsolateTests/ProductionRegressionTests.swift @@ -1,6 +1,7 @@ import XCTest import AVFoundation import SwiftData +import MediaPlayer @testable import Isolate @MainActor @@ -386,7 +387,51 @@ final class ProductionRegressionTests: XCTestCase { await engine.loadTrack(saved) XCTAssertTrue(engine.hasLoadedTrack) XCTAssertEqual(engine.currentTrackName, "RENAMED TRACK") + XCTAssertEqual(engine.trackTitle, "Renamed track") + try await Task.sleep(for: .milliseconds(200)) + XCTAssertEqual(engine.trackTitle, "Renamed track", "Metadata fallback must preserve the library title") XCTAssertNil(engine.errorMessage) engine.unloadTrack() } + + func testRenameUpdatesNowPlayingAndSurvivesPendingMetadata() async throws { + let source = try track() + let engine = AudioEngineManager() + await engine.loadTrack(source) + engine.updateTrackTitle(id: source.id, newTitle: "My rehearsal") + XCTAssertEqual(engine.trackTitle, "My rehearsal") + XCTAssertEqual(MPNowPlayingInfoCenter.default().nowPlayingInfo?[MPMediaItemPropertyTitle] as? String, "My rehearsal") + try await Task.sleep(for: .milliseconds(200)) + XCTAssertEqual(engine.trackTitle, "My rehearsal") + XCTAssertEqual(MPNowPlayingInfoCenter.default().nowPlayingInfo?[MPMediaItemPropertyTitle] as? String, "My rehearsal") + engine.updateTrackTitle(id: "another track", newTitle: "Unrelated") + XCTAssertEqual(engine.trackTitle, "My rehearsal") + engine.unloadTrack() + await engine.loadTrack(source) + XCTAssertEqual(engine.trackTitle, source.title, "A previous title override must not leak into the next load") + engine.unloadTrack() + } + + func testDetailedPlaybackTimeUsesConsistentRemainingDuration() { + let times = AudioEngineManager.playbackTimecodes(elapsed: 3.7, duration: 10.2) + XCTAssertEqual(times.detailed, "00:03.700 / -00:06.500") + XCTAssertEqual(times.compact, "00:03 / -00:07") + XCTAssertEqual(AudioEngineManager.playbackTimecodes(elapsed: 59.9996, duration: 60).detailed, + "01:00.000 / -00:00.000") + XCTAssertEqual(AudioEngineManager.playbackTimecodes(elapsed: 11, duration: 10.2).detailed, + "00:10.200 / -00:00.000") + } + + func testPitchTransposesCompactAndSpacedMusicalKeys() { + let engine = AudioEngineManager() + engine.pitchShiftSemitones = 2 + for (source, expected) in [("Am", "Bm"), ("F#m", "G#m"), ("Bb minor", "C minor"), + ("E♭ major", "F major"), ("KEY UNKNOWN", "KEY UNKNOWN")] { + engine.trackMusicalKey = source + XCTAssertEqual(engine.effectiveMusicalKey, expected) + } + engine.pitchShiftSemitones = -2 + engine.trackMusicalKey = "C minor" + XCTAssertEqual(engine.effectiveMusicalKey, "A# minor") + } } diff --git a/UITests/IsolateUITests/IsolateUITests.swift b/UITests/IsolateUITests/IsolateUITests.swift index 882e22d..8a01eff 100644 --- a/UITests/IsolateUITests/IsolateUITests.swift +++ b/UITests/IsolateUITests/IsolateUITests.swift @@ -59,6 +59,20 @@ final class IsolateUITests: XCTestCase { XCTAssertFalse(app.buttons["Play"].isEnabled) } + func testCommandsReopenClosedMainWindow() { + let app = launch() + app.typeKey("w", modifierFlags: .command) + app.typeKey(",", modifierFlags: .command) + XCTAssertTrue(app.staticTexts["SYSTEM PREFERENCES"].waitForExistence(timeout: 5)) + app.typeKey(.escape, modifierFlags: []) + app.typeKey("w", modifierFlags: .command) + app.typeKey("o", modifierFlags: .command) + XCTAssertTrue(app.buttons["Cancel"].waitForExistence(timeout: 5)) + app.typeKey(.escape, modifierFlags: []) + XCTAssertTrue(app.buttons["Play"].waitForExistence(timeout: 3)) + XCTAssertFalse(app.buttons["Play"].isEnabled) + } + func testImportPlaybackRenameExportAndDelete() throws { let directory = FileManager.default.temporaryDirectory.appending(path: "Isolate-UI-\(UUID().uuidString)") try FileManager.default.createDirectory(at: directory, withIntermediateDirectories: true) @@ -78,6 +92,15 @@ final class IsolateUITests: XCTestCase { } let originalBytes = try Data(contentsOf: source) let app = launch() + // Exercise the preference and avoid racing a two-second auto-playing + // fixture's completion while clicking a changing Play/Pause button. + app.typeKey(",", modifierFlags: .command) + let autoPlay = app.buttons["Auto-play on select"] + XCTAssertTrue(autoPlay.waitForExistence(timeout: 3)) + XCTAssertEqual(autoPlay.value as? String, "On") + autoPlay.click() + XCTAssertEqual(autoPlay.value as? String, "Off") + app.typeKey(.escape, modifierFlags: []) app.typeKey("o", modifierFlags: .command) let openButton = app.windows["open-panel"].buttons["Open"] XCTAssertTrue(openButton.waitForExistence(timeout: 5)) @@ -87,13 +110,50 @@ final class IsolateUITests: XCTestCase { openButton.click() let actions = app.buttons["Actions for UI Workflow"] XCTAssertTrue(actions.waitForExistence(timeout: 120), "Import must publish the track into the library") + let librarySummary = app.descendants(matching: .any)["library-summary"] + let statisticsReady = XCTNSPredicateExpectation( + predicate: NSPredicate(format: "label CONTAINS %@", "MB"), object: librarySummary) + XCTAssertEqual(XCTWaiter.wait(for: [statisticsReady], timeout: 5), .completed, + "Library statistics should reflect the imported audio before deletion") app.activate() - if app.buttons["Pause"].exists { app.buttons["Pause"].click() } + XCTAssertTrue(app.buttons["Play"].waitForExistence(timeout: 3)) app.typeKey("l", modifierFlags: []) app.buttons["Play"].click() XCTAssertTrue(app.buttons["Pause"].waitForExistence(timeout: 3)) app.buttons["Pause"].click() + + let stems = ["VOCALS", "DRUMS", "BASS", "OTHER"] + for selectedStem in stems { + app.buttons["Solo \(selectedStem)"].click() + for stem in stems { + XCTAssertEqual(app.buttons["Solo \(stem)"].value as? String, + stem == selectedStem ? "On" : "Off", + "Solo should make only the selected stem active") + } + } + app.buttons["Solo OTHER"].click() + for stem in stems { + XCTAssertEqual(app.buttons["Solo \(stem)"].value as? String, "Off") + app.buttons["Mute \(stem)"].click() + XCTAssertEqual(app.buttons["Mute \(stem)"].value as? String, "On") + app.buttons["Mute \(stem)"].click() + XCTAssertEqual(app.buttons["Mute \(stem)"].value as? String, "Off") + } + + // Text entry must not accidentally invoke the mixer's unmodified shortcuts. + let search = app.textFields["Search library"] + search.click() + search.typeText("vadbo1234") + XCTAssertTrue(app.staticTexts["NO MATCHING TRACKS"].exists) + for stem in stems { + XCTAssertEqual(app.buttons["Solo \(stem)"].value as? String, "Off") + XCTAssertEqual(app.buttons["Mute \(stem)"].value as? String, "Off") + } + app.buttons["Clear library search"].click() + search.typeKey(.return, modifierFlags: []) + XCTAssertTrue(app.buttons["Actions for UI Workflow"].exists) + app.typeKey("v", modifierFlags: []) XCTAssertEqual(app.buttons["Mute VOCALS"].value as? String, "On") app.typeKey("r", modifierFlags: []) @@ -144,6 +204,8 @@ final class IsolateUITests: XCTestCase { app.buttons["DELETE"].click() XCTAssertFalse(app.buttons["Play"].isEnabled) XCTAssertFalse(app.buttons["Actions for Renamed UI Track"].exists) + XCTAssertEqual(librarySummary.label, "0 tracks", + "Deleting the final track must clear its displayed size and duration") XCTAssertEqual(try Data(contentsOf: source), originalBytes, "Deleting a library track must preserve source audio") capture(app, name: "Library after safe deletion") } diff --git a/project.yml b/project.yml index 74311e4..e474614 100644 --- a/project.yml +++ b/project.yml @@ -26,7 +26,6 @@ targets: ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon ENABLE_PREVIEWS: YES SWIFT_VERSION: 5.0 - OTHER_SWIFT_FLAGS: -enable-experimental-feature IsolatedDeinit ARCHS: arm64 ENABLE_HARDENED_RUNTIME: YES APP_INTENTS_METADATA_EXTRACTION_ENABLED: NO From 94bfb57aad02b8b16f7c29cc0304322091e42656 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 19:06:32 -0500 Subject: [PATCH 02/89] feat(theme): contrast-safe semantic tokens and Increase Contrast support - Readable text tokens now meet WCAG AA (>= 4.5:1) on every background and channel-strip fill in both modes; previous muted values move to textDisabled. - accentRed is mode-aware (#FF4245 dark / #C8141C light) with an onAccent foreground; add a warning token for comparison and loop markers. - Follow the system Increase Contrast setting for text and outlines. Co-Authored-By: Claude Opus 5.5 --- Sources/App/ThemeManager.swift | 67 ++++++++++++++++++++++++++-------- 1 file changed, 52 insertions(+), 15 deletions(-) diff --git a/Sources/App/ThemeManager.swift b/Sources/App/ThemeManager.swift index 0f5622a..909f1ee 100644 --- a/Sources/App/ThemeManager.swift +++ b/Sources/App/ThemeManager.swift @@ -31,11 +31,15 @@ public final class ThemeManager { /// Tracks system dark/light appearance changes public var systemIsDark: Bool = true - + + /// Mirrors System Settings > Accessibility > Display > Increase contrast. + public var increaseContrast: Bool = false + private init() { let saved = AppPreferences.defaults.string(forKey: "hardwareTheme") ?? "system" self.currentTheme = HardwareTheme(rawValue: saved) ?? .system self.systemIsDark = checkSystemIsDark() + self.increaseContrast = NSWorkspace.shared.accessibilityDisplayShouldIncreaseContrast setupAppearanceObserver() } @@ -69,6 +73,15 @@ public final class ThemeManager { self.updateWindowAppearance() } } + NSWorkspace.shared.notificationCenter.addObserver( + forName: NSWorkspace.accessibilityDisplayOptionsDidChangeNotification, + object: nil, + queue: .main + ) { [weak self] _ in + Task { @MainActor [weak self] in + self?.increaseContrast = NSWorkspace.shared.accessibilityDisplayShouldIncreaseContrast + } + } } public var isDark: Bool { @@ -116,30 +129,46 @@ public final class ThemeManager { isDark ? Color.white.opacity(0.10) : Color.black.opacity(0.08) } - // Text + // Text. Readable text uses textPrimary, textSecondary, or textMuted, each at + // least 4.5:1 against the backgrounds and channel-strip fills in its mode. public var textPrimary: Color { isDark ? Color.white : Color(red: 0.08, green: 0.08, blue: 0.09) } - + public var textSecondary: Color { - isDark ? Color.gray : Color(red: 0.46, green: 0.46, blue: 0.49) + if increaseContrast { return textPrimary } + return isDark ? Color(white: 0.66) : Color(red: 0.30, green: 0.30, blue: 0.32) } - + public var textMuted: Color { + if increaseContrast { return textSecondary } + return isDark ? Color(red: 0.52, green: 0.52, blue: 0.54) : Color(red: 0.39, green: 0.39, blue: 0.41) + } + + /// Disabled controls and purely decorative marks only; never information. + public var textDisabled: Color { isDark ? Color.gray.opacity(0.5) : Color.black.opacity(0.35) } - + + /// Caution states such as original-master comparison and loop markers. + public var warning: Color { + isDark ? Color(red: 0.83, green: 0.66, blue: 0.26) : Color(red: 0.49, green: 0.34, blue: 0.0) + } + // Borders & Hairlines public var hairline: Color { - isDark ? Color.white.opacity(0.12) : Color.black.opacity(0.12) + let opacity = increaseContrast ? 0.45 : 0.12 + return isDark ? Color.white.opacity(opacity) : Color.black.opacity(opacity) } - + public var border: Color { - isDark ? Color.white.opacity(0.20) : Color.black.opacity(0.20) + let opacity = increaseContrast ? 0.55 : 0.20 + return isDark ? Color.white.opacity(opacity) : Color.black.opacity(opacity) } - + public var cardBorder: Color { - isDark ? Color.white.opacity(0.16) : Color.black.opacity(0.14) + if increaseContrast { return border } + return isDark ? Color.white.opacity(0.16) : Color.black.opacity(0.14) } // Overlays & Modals @@ -152,16 +181,24 @@ public final class ThemeManager { } // Hardware elements + /// The single interrupt/active accent. Meets 4.5:1 as text on this mode's + /// backgrounds; use `onAccent` for anything drawn on top of a red fill. public var accentRed: Color { - Color.red + isDark ? Color(red: 1.0, green: 0.26, blue: 0.27) : Color(red: 0.78, green: 0.08, blue: 0.11) } - + + /// Foreground for text and glyphs on an `accentRed` fill. + public var onAccent: Color { + isDark ? Color.black : Color.white + } + public var knobFace: Color { isDark ? Color(white: 0.08) : Color(white: 0.93) } - + public var knobArcTrack: Color { - isDark ? Color.white.opacity(0.12) : Color.black.opacity(0.12) + let opacity = increaseContrast ? 0.45 : 0.12 + return isDark ? Color.white.opacity(opacity) : Color.black.opacity(opacity) } public var faderTrack: Color { From 832a0a07f320202b4a91a2c8a7d3bf194969be0b Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 19:07:51 -0500 Subject: [PATCH 03/89] fix(theme): leave the menu bar status item on the system appearance Co-Authored-By: Claude Opus 5.5 --- Sources/App/ThemeManager.swift | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Sources/App/ThemeManager.swift b/Sources/App/ThemeManager.swift index 909f1ee..0fe58c7 100644 --- a/Sources/App/ThemeManager.swift +++ b/Sources/App/ThemeManager.swift @@ -107,7 +107,11 @@ public final class ThemeManager { case .dark: NSAppearance(named: .darkAqua) case .light: NSAppearance(named: .aqua) } - for window in NSApp?.windows ?? [] { window.appearance = appearance } + // The status item must follow the menu bar, not the app theme, or its + // template glyph disappears against a menu bar of the opposite appearance. + for window in NSApp?.windows ?? [] where !window.className.hasPrefix("NSStatusBar") { + window.appearance = appearance + } } // MARK: - Semantic Nothing Hardware Design Tokens From 1eabc219b0ba6f331f5bdc4ca0a13495ad3ce27b Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 19:58:41 -0500 Subject: [PATCH 04/89] fix(export): keep export names visible and extractable on Windows safeFilename now trims leading dots, so titles such as "...Baby One More Time" no longer produce a hidden ZIP and hidden stems. It also replaces ? * " < > | alongside / : \ so shared ZIPs extract in Windows Explorer, and trims trailing dots and spaces, including after truncation. Co-Authored-By: Claude Opus 5.5 --- Sources/App/AudioExporter.swift | 10 ++++-- Tests/IsolateTests/ExporterFixTests.swift | 38 +++++++++++++++++++++++ 2 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 Tests/IsolateTests/ExporterFixTests.swift diff --git a/Sources/App/AudioExporter.swift b/Sources/App/AudioExporter.swift index 9bfc255..9f5eb27 100644 --- a/Sources/App/AudioExporter.swift +++ b/Sources/App/AudioExporter.swift @@ -27,10 +27,13 @@ enum AudioExporter { } static func safeFilename(_ title: String) -> String { - let invalid = CharacterSet(charactersIn: "/:\\").union(.controlCharacters) + // Names are shared in ZIPs, so also exclude characters Windows cannot extract. + let invalid = CharacterSet(charactersIn: "/:\\?*\"<>|").union(.controlCharacters) + // A leading dot hides the file on macOS; Windows drops trailing dots and spaces. + let edges = CharacterSet.whitespacesAndNewlines.union(CharacterSet(charactersIn: ".")) let name = title.components(separatedBy: invalid).joined(separator: "_") - .trimmingCharacters(in: .whitespacesAndNewlines) - guard !name.isEmpty, name != ".", name != ".." else { return "Isolate" } + .trimmingCharacters(in: edges) + guard !name.isEmpty else { return "Isolate" } // Leave room for stem names and extensions on 255-byte file systems. // Truncate at Character boundaries so Unicode titles remain valid. var result = "" @@ -41,6 +44,7 @@ enum AudioExporter { result.append(character) byteCount += size } + result = result.trimmingCharacters(in: edges) return result.isEmpty ? "Isolate" : result } diff --git a/Tests/IsolateTests/ExporterFixTests.swift b/Tests/IsolateTests/ExporterFixTests.swift new file mode 100644 index 0000000..51b1c10 --- /dev/null +++ b/Tests/IsolateTests/ExporterFixTests.swift @@ -0,0 +1,38 @@ +import XCTest +import AVFoundation +@testable import Isolate + +@MainActor +final class ExporterFixTests: XCTestCase { + private var directory: URL! + + override func setUpWithError() throws { + directory = FileManager.default.temporaryDirectory.appending(path: UUID().uuidString) + try FileManager.default.createDirectory(at: directory, withIntermediateDirectories: true) + } + + override func tearDownWithError() throws { + try FileManager.default.removeItem(at: directory) + } + + func testSafeFilenameNeverProducesHiddenOrWindowsInvalidNames() { + XCTAssertEqual(AudioExporter.safeFilename("...Baby One More Time"), "Baby One More Time") + XCTAssertEqual(AudioExporter.safeFilename(".38 Special - Hold On Loosely"), "38 Special - Hold On Loosely") + XCTAssertEqual(AudioExporter.safeFilename("Where Is My Mind?"), "Where Is My Mind_") + XCTAssertEqual(AudioExporter.safeFilename("The \"Heroes\" <*|>"), "The _Heroes_ ____") + XCTAssertEqual(AudioExporter.safeFilename("Trailing dots... "), "Trailing dots") + XCTAssertEqual(AudioExporter.safeFilename("Beyoncé"), "Beyoncé") + for title in [".", "..", "...", " . . ", ""] { + XCTAssertEqual(AudioExporter.safeFilename(title), "Isolate", "Title \(title.debugDescription)") + } + // Truncation must not leave a trailing space or dot either. + let long = AudioExporter.safeFilename(String(repeating: "a", count: 119) + " tail") + XCTAssertFalse(long.hasSuffix(" ") || long.hasSuffix(".")) + for title in ["..Hidden", "A?B*C\"DF|G:H/I\\J", "Name. ", String(repeating: "音", count: 90) + "🎵"] { + let name = AudioExporter.safeFilename(title) + XCTAssertFalse(name.hasPrefix("."), name) + XCTAssertFalse(name.hasSuffix(".") || name.hasSuffix(" "), name) + XCTAssertNil(name.rangeOfCharacter(from: CharacterSet(charactersIn: "/:\\?*\"<>|")), name) + } + } +} From 9852c09db2bba4705d7ef7557a467cba3b36455a Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:00:28 -0500 Subject: [PATCH 05/89] fix(export): align limited mixes and keep the time/pitch tail The peak limiter's look-ahead delayed every mix export by 88 frames and cut the same number of frames from the end. Render past it and discard the look-ahead, so a 1x mix stays sample-aligned with the source and the stems, at the same length. Time/pitch spreads the last frames past the stretched length and reports no latency, so at non-1x speed or shifted pitch up to about 80% of a final hit was lost. Render a fixed 4,096-frame tail whenever time/pitch is active. Such mixes are now 4,096 frames longer than the stretched length; the rate 0.5 length assertion is updated to match. Co-Authored-By: Claude Opus 5.5 --- Sources/App/AudioExporter.swift | 15 +++- Tests/IsolateTests/ExporterFixTests.swift | 69 +++++++++++++++++++ .../ProductionRegressionTests.swift | 3 +- 3 files changed, 83 insertions(+), 4 deletions(-) diff --git a/Sources/App/AudioExporter.swift b/Sources/App/AudioExporter.swift index 9f5eb27..89e81d0 100644 --- a/Sources/App/AudioExporter.swift +++ b/Sources/App/AudioExporter.swift @@ -88,6 +88,7 @@ enum AudioExporter { engine.attach(eq) engine.connect(sum, to: timePitch, format: audioFormat) engine.connect(timePitch, to: eq, format: audioFormat) + var latency: AVAudioFramePosition = 0 if limitPeak { let limiter = AVAudioUnitEffect(audioComponentDescription: AudioComponentDescription( componentType: kAudioUnitType_Effect, componentSubType: kAudioUnitSubType_PeakLimiter, @@ -95,6 +96,9 @@ enum AudioExporter { engine.attach(limiter) engine.connect(eq, to: limiter, format: audioFormat) engine.connect(limiter, to: engine.mainMixerNode, format: audioFormat) + // Drop the limiter's look-ahead so the mix stays aligned with the source and keeps its ending. + let frames = limiter.latency * audioFormat.sampleRate + latency = frames.isFinite ? AVAudioFramePosition(min(max(frames, 0), 4096).rounded()) : 0 } else { engine.connect(eq, to: engine.mainMixerNode, format: audioFormat) } @@ -111,15 +115,20 @@ enum AudioExporter { guard let buffer = AVAudioPCMBuffer(pcmFormat: audioFormat, frameCapacity: 4096) else { throw DemucsError.invalidAudioFormat } - let frameCount = AVAudioFramePosition(ceil(Double(files[0].length) / Double(rate))) + // Time/pitch spreads the final frames past the stretched length and reports no latency, + // so render a fixed tail to keep the ending. + let tail: AVAudioFramePosition = timePitch.bypass ? 0 : 4096 + let frameCount = AVAudioFramePosition(ceil(Double(files[0].length) / Double(rate))) + tail + latency var stalled = 0 while engine.manualRenderingSampleTime < frameCount { try Task.checkCancellation() - let count = AVAudioFrameCount(min(4096, frameCount - engine.manualRenderingSampleTime)) let before = engine.manualRenderingSampleTime + // Blocks never straddle the discarded look-ahead. + let end = before < latency ? latency : frameCount + let count = AVAudioFrameCount(min(4096, end - before)) switch try engine.renderOffline(count, to: buffer) { case .success: - try output.write(from: buffer) + if before >= latency { try output.write(from: buffer) } case .cannotDoInCurrentContext, .insufficientDataFromInputNode: break case .error: diff --git a/Tests/IsolateTests/ExporterFixTests.swift b/Tests/IsolateTests/ExporterFixTests.swift index 51b1c10..eb4e704 100644 --- a/Tests/IsolateTests/ExporterFixTests.swift +++ b/Tests/IsolateTests/ExporterFixTests.swift @@ -15,6 +15,75 @@ final class ExporterFixTests: XCTestCase { try FileManager.default.removeItem(at: directory) } + /// Writes stereo Float32 audio, so samples above full scale are preserved like cached stems. + private func audio(_ name: String, frames: Int, sample: (Int) -> Float) throws -> URL { + let url = directory.appending(path: name) + let buffer = AVAudioPCMBuffer(pcmFormat: StreamingAudio.format, frameCapacity: AVAudioFrameCount(frames))! + buffer.frameLength = buffer.frameCapacity + for frame in 0.. [Float] { + let file = try AVAudioFile(forReading: url) + let buffer = AVAudioPCMBuffer(pcmFormat: file.processingFormat, frameCapacity: AVAudioFrameCount(file.length))! + try file.read(into: buffer) + return Array(UnsafeBufferPointer(start: buffer.floatChannelData![channel], count: Int(buffer.frameLength))) + } + + private func energy(_ values: C) -> Double where C.Element == Float { + values.reduce(0) { $0 + Double($1) * Double($1) } + } + + private func tone(_ frame: Int, amplitude: Float = 0.2) -> Float { + amplitude * sin(Float(frame) * 2 * .pi * 440 / 44_100) + } + + func testLimitedMixIsSampleAlignedAndKeepsItsLastFrames() throws { + // An impulse at a known frame and a tone filling the final 200 frames. + let source = try audio("aligned.wav", frames: 44_100) { frame in + frame == 20_000 ? 0.5 : frame >= 43_900 ? self.tone(frame) : 0 + } + let destination = directory.appending(path: "limited.wav") + try AudioExporter.render(sources: [.init(url: source)], to: destination, limitPeak: true) + let output = try samples(destination) + let input = try samples(source) + XCTAssertEqual(output.count, 44_100) + let impulse = output.prefix(30_000).indices.max { abs(output[$0]) < abs(output[$1]) } + XCTAssertEqual(impulse, 20_000, "The peak limiter's look-ahead must not delay the mix") + XCTAssertGreaterThan(energy(output.suffix(200)), energy(input.suffix(200)) * 0.99, + "The limiter must not cut the final frames") + } + + func testTimePitchExportKeepsTheFinalTransientEnergy() throws { + // A 30 ms burst ends the file; the padded copy shows where time/pitch places all of it. + let source = try audio("final.wav", frames: 44_100) { $0 < 42_777 ? 0 : self.tone($0) } + let padded = try audio("padded.wav", frames: 88_200) { $0 < 42_777 || $0 >= 44_100 ? 0 : self.tone($0) } + let settings: [(rate: Float, pitch: Float)] = [(1, 0), (0.5, 0), (1.5, 0), (2, 0), (1, 4), (1, -4)] + for (index, controls) in settings.enumerated() { + let exported = directory.appending(path: "export-\(index).wav") + let reference = directory.appending(path: "reference-\(index).wav") + try AudioExporter.render(sources: [.init(url: source)], to: exported, + rate: controls.rate, pitch: controls.pitch, limitPeak: true) + try AudioExporter.render(sources: [.init(url: padded)], to: reference, + rate: controls.rate, pitch: controls.pitch, limitPeak: true) + let expected = energy(try samples(reference)) + let kept = energy(try samples(exported)) + XCTAssertGreaterThan(expected, 1) + XCTAssertGreaterThan(kept, expected * 0.999, + "Final burst energy must survive export at rate \(controls.rate), pitch \(controls.pitch)") + let stretched = AVAudioFramePosition(ceil(44_100 / Double(controls.rate))) + let tail: AVAudioFramePosition = controls.rate == 1 && controls.pitch == 0 ? 0 : 4096 + XCTAssertEqual(try AVAudioFile(forReading: exported).length, stretched + tail) + } + } + func testSafeFilenameNeverProducesHiddenOrWindowsInvalidNames() { XCTAssertEqual(AudioExporter.safeFilename("...Baby One More Time"), "Baby One More Time") XCTAssertEqual(AudioExporter.safeFilename(".38 Special - Hold On Loosely"), "38 Special - Hold On Loosely") diff --git a/Tests/IsolateTests/ProductionRegressionTests.swift b/Tests/IsolateTests/ProductionRegressionTests.swift index 0e61e10..b86b646 100644 --- a/Tests/IsolateTests/ProductionRegressionTests.swift +++ b/Tests/IsolateTests/ProductionRegressionTests.swift @@ -185,7 +185,8 @@ final class ProductionRegressionTests: XCTestCase { XCTAssertLessThan(right, left * 0.01) let slower = directory.appending(path: "slower.wav") try AudioExporter.render(sources: [.init(url: source)], to: slower, rate: 0.5) - XCTAssertEqual(try AVAudioFile(forReading: slower).length, 44_100) + // Stretched length plus the fixed time/pitch tail. + XCTAssertEqual(try AVAudioFile(forReading: slower).length, 44_100 + 4096) } func testMixExportAppliesPositiveFaderGain() throws { From be87d3509e27fd5fe983e229d3a9416160df264f Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:02:13 -0500 Subject: [PATCH 06/89] fix(export): stop 24-bit stem exports from hard-clipping Cached Demucs stems are Float32 and often peak above 1.0, and baked stem EQ can push them further. Writing them straight to 24-bit WAV or FLAC pinned every such sample at full scale. archive() now renders each stem to a temporary Float32 file while measuring its post-EQ peak. It then encodes all four with one shared gain, so the loudest stem peaks at -0.1 dBFS and the relative balance and stem sum are preserved. Stems already below that level are written unchanged. archive() returns the applied gain (discardable) so the UI can mention it. Output formats stay 24-bit WAV and FLAC. Co-Authored-By: Claude Opus 5.5 --- Sources/App/AudioExporter.swift | 77 +++++++++++++++++++++-- Tests/IsolateTests/ExporterFixTests.swift | 72 +++++++++++++++++++++ 2 files changed, 143 insertions(+), 6 deletions(-) diff --git a/Sources/App/AudioExporter.swift b/Sources/App/AudioExporter.swift index 89e81d0..fe7409e 100644 --- a/Sources/App/AudioExporter.swift +++ b/Sources/App/AudioExporter.swift @@ -1,3 +1,4 @@ +import Accelerate import AVFoundation enum AudioExporter { @@ -48,10 +49,20 @@ enum AudioExporter { return result.isEmpty ? "Isolate" : result } + /// Stems in fixed-point formats peak at no more than -0.1 dBFS. + static let stemPeakCeiling = Float(pow(10, -0.1 / 20)) + /// Render on a worker task using a separate graph; live playback is untouched. static func render(sources: [Source], to destination: URL, format: Format = .wav, masterEQ: EQ = EQ(), rate: Float = 1, pitch: Float = 0, limitPeak: Bool = false) throws { + _ = try renderMeasured(sources: sources, to: destination, settings: format.settings, + masterEQ: masterEQ, rate: rate, pitch: pitch, limitPeak: limitPeak) + } + + /// Returns the largest sample magnitude written, measured before any fixed-point conversion. + private static func renderMeasured(sources: [Source], to destination: URL, settings: [String: Any], + masterEQ: EQ, rate: Float, pitch: Float, limitPeak: Bool) throws -> Float { guard !sources.isEmpty, rate.isFinite, rate > 0 else { throw DemucsError.invalidAudioFormat } let engine = AVAudioEngine() let audioFormat = StreamingAudio.format @@ -111,7 +122,7 @@ enum AudioExporter { for (player, file) in zip(players, files) { player.scheduleFile(file, at: nil) } try engine.start() for player in players { player.play(at: AVAudioTime(sampleTime: 0, atRate: 44_100)) } - let output = try AVAudioFile(forWriting: destination, settings: format.settings) + let output = try AVAudioFile(forWriting: destination, settings: settings) guard let buffer = AVAudioPCMBuffer(pcmFormat: audioFormat, frameCapacity: 4096) else { throw DemucsError.invalidAudioFormat } @@ -120,6 +131,7 @@ enum AudioExporter { let tail: AVAudioFramePosition = timePitch.bypass ? 0 : 4096 let frameCount = AVAudioFramePosition(ceil(Double(files[0].length) / Double(rate))) + tail + latency var stalled = 0 + var peak: Float = 0 while engine.manualRenderingSampleTime < frameCount { try Task.checkCancellation() let before = engine.manualRenderingSampleTime @@ -128,7 +140,9 @@ enum AudioExporter { let count = AVAudioFrameCount(min(4096, end - before)) switch try engine.renderOffline(count, to: buffer) { case .success: - if before >= latency { try output.write(from: buffer) } + guard before >= latency else { break } + peak = max(peak, Self.peak(of: buffer)) + try output.write(from: buffer) case .cannotDoInCurrentContext, .insufficientDataFromInputNode: break case .error: @@ -139,21 +153,37 @@ enum AudioExporter { stalled = before == engine.manualRenderingSampleTime ? stalled + 1 : 0 guard stalled < 100 else { throw DemucsError.conversionFailed("Offline rendering stopped making progress.") } } + return peak } + /// Returns the gain applied to all four stems to stay below `stemPeakCeiling`, or 1 when none was needed. + @discardableResult static func archive(sources: [Source], title: String, format: Format, to destination: URL, - progress: @Sendable (Double) -> Void) throws { + progress: @Sendable (Double) -> Void) throws -> Float { let fm = FileManager.default let directory = fm.temporaryDirectory.appending(path: UUID().uuidString, directoryHint: .isDirectory) try fm.createDirectory(at: directory, withIntermediateDirectories: true) defer { try? fm.removeItem(at: directory) } guard sources.count == 4 else { throw DemucsError.invalidAudioFormat } - var names: [String] = [] + // Separated stems and EQ boosts can exceed full scale, which 24-bit WAV and FLAC would clip. + // Render in Float32 first, then lower all four by one gain so their balance and sum are kept. + var rendered: [URL] = [] + var peak: Float = 0 for (index, source) in sources.enumerated() { + let url = directory.appending(path: "render-\(index).wav") + peak = max(peak, try renderMeasured(sources: [source], to: url, settings: StreamingAudio.settings, + masterEQ: EQ(), rate: 1, pitch: 0, limitPeak: false)) + rendered.append(url) + progress(Double(index + 1) / 10) + } + let gain = peak > stemPeakCeiling ? stemPeakCeiling / peak : 1 + var names: [String] = [] + for (index, url) in rendered.enumerated() { let name = "\(safeFilename(title))_\(DemucsEngine.stemNames[index]).\(format.fileExtension)" names.append(name) - try render(sources: [source], to: directory.appending(path: name), format: format) - progress(Double(index + 1) / 5) + try encode(url, to: directory.appending(path: name), format: format, gain: gain) + try? fm.removeItem(at: url) + progress(0.4 + Double(index + 1) / 10) } let archive = directory.appending(path: "stems.zip") let process = Process() @@ -166,6 +196,41 @@ enum AudioExporter { try Task.checkCancellation() try publish(archive, to: destination) progress(1) + return gain + } + + /// Converts rendered Float32 audio to the export format, scaling every sample by `gain`. + private static func encode(_ source: URL, to destination: URL, format: Format, gain: Float) throws { + let input = try AVAudioFile(forReading: source) + let output = try AVAudioFile(forWriting: destination, settings: format.settings) + guard let buffer = AVAudioPCMBuffer(pcmFormat: input.processingFormat, frameCapacity: 65_536) else { + throw DemucsError.invalidAudioFormat + } + var scale = gain + while input.framePosition < input.length { + try Task.checkCancellation() + try input.read(into: buffer) + guard buffer.frameLength > 0, let channels = buffer.floatChannelData else { + throw DemucsError.invalidAudioFormat + } + if gain != 1 { + for channel in 0.. Float { + guard let channels = buffer.floatChannelData else { return 0 } + var peak: Float = 0 + for channel in 0.. URL { + let folder = directory.appending(path: UUID().uuidString) + let process = Process() + process.executableURL = URL(filePath: "/usr/bin/unzip") + process.arguments = ["-q", archive.path, "-d", folder.path] + try process.run() + process.waitUntilExit() + XCTAssertEqual(process.terminationStatus, 0) + return folder + } + + private func stems(amplitudes: [Float], frequency: Float = 440) throws -> [AudioExporter.Source] { + try amplitudes.enumerated().map { index, amplitude in + .init(url: try audio("stem-\(index).wav", frames: 8820) { + amplitude * sin(Float($0) * 2 * .pi * frequency / 44_100) + }) + } + } + + func testStemArchiveLowersAllStemsTogetherInsteadOfClipping() throws { + // Cached Float32 stems can peak above 1.0; 24-bit output used to hard-clip them. + let amplitudes: [Float] = [1.5, 0.75, 0.3, 0.15] + let sources = try stems(amplitudes: amplitudes) + for format in AudioExporter.Format.allCases { + let archive = directory.appending(path: "stems.\(format.fileExtension).zip") + let gain = try AudioExporter.archive(sources: sources, title: "Headroom", format: format, to: archive) { _ in } + XCTAssertEqual(gain, AudioExporter.stemPeakCeiling / 1.5, accuracy: 1e-3) + let folder = try extract(archive) + var peaks: [Float] = [] + for stem in DemucsEngine.stemNames { + let url = folder.appending(path: "Headroom_\(stem).\(format.fileExtension)") + if format == .wav { + XCTAssertEqual(try AVAudioFile(forReading: url).fileFormat.settings[AVLinearPCMBitDepthKey] as? Int, 24) + } + let left = try samples(url) + let right = try samples(url, channel: 1) + XCTAssertFalse(left.contains { abs($0) >= 0.999 }, "\(format) \(stem) must not reach full scale") + peaks.append(max(left.map(abs).max() ?? 0, right.map(abs).max() ?? 0)) + } + XCTAssertLessThanOrEqual(peaks[0], AudioExporter.stemPeakCeiling + 1e-6) + XCTAssertEqual(peaks[0], AudioExporter.stemPeakCeiling, accuracy: 1e-3) + for (peak, amplitude) in zip(peaks, amplitudes) { + XCTAssertEqual(peak / peaks[0], amplitude / amplitudes[0], accuracy: 1e-3, "Relative stem balance must be kept") + } + } + } + + func testStemArchiveMeasuresHeadroomAfterEQBoost() throws { + var sources = try stems(amplitudes: [0.5, 0.1, 0.1, 0.1], frequency: 60) + sources[0].eq = .init(low: 12) + let archive = directory.appending(path: "boosted.zip") + let gain = try AudioExporter.archive(sources: sources, title: "Boost", format: .wav, to: archive) { _ in } + XCTAssertLessThan(gain, 0.9, "A +12 dB low shelf pushes a 0.5 bass stem well past full scale") + let bass = try samples(try extract(archive).appending(path: "Boost_vocals.wav")) + let peak = bass.map(abs).max() ?? 0 + XCTAssertLessThanOrEqual(peak, AudioExporter.stemPeakCeiling + 1e-6) + XCTAssertGreaterThan(peak, 0.9) + } + + func testStemArchiveLeavesStemsBelowFullScaleUnchanged() throws { + let archive = directory.appending(path: "quiet.zip") + let gain = try AudioExporter.archive(sources: try stems(amplitudes: [0.2, 0.2, 0.2, 0.2]), + title: "Quiet", format: .wav, to: archive) { _ in } + XCTAssertEqual(gain, 1) + let output = try samples(try extract(archive).appending(path: "Quiet_drums.wav")) + let input = try samples(directory.appending(path: "stem-1.wav")) + XCTAssertEqual(output.count, input.count) + for (exported, original) in zip(output, input) { + XCTAssertEqual(exported, original, accuracy: 2e-7) + } + } + func testLimitedMixIsSampleAlignedAndKeepsItsLastFrames() throws { // An impulse at a known frame and a tone filling the final 200 frames. let source = try audio("aligned.wav", frames: 44_100) { frame in From 57c6ecc6ede2d139604a2e0d5c418ca13569d769 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:03:47 -0500 Subject: [PATCH 07/89] feat(export): report render progress and store ZIP entries render() takes a trailing, defaulted progress callback that receives the rendered fraction at most once per whole percent, ending at 1. Existing call sites compile unchanged; the mix export can now show real progress instead of "RENDERING 0%". archive() reports continuous progress: stem rendering fills 0-40% and encoding 40-80%, as before the archive step reports 80%. Stem entries are now stored rather than deflated, because deflating PCM or FLAC saves little space and was the slowest part of a stem export. Co-Authored-By: Claude Opus 5.5 --- Sources/App/AudioExporter.swift | 39 ++++++++++++++------ Tests/IsolateTests/ExporterFixTests.swift | 44 +++++++++++++++++++++++ 2 files changed, 73 insertions(+), 10 deletions(-) diff --git a/Sources/App/AudioExporter.swift b/Sources/App/AudioExporter.swift index fe7409e..8d3a8e3 100644 --- a/Sources/App/AudioExporter.swift +++ b/Sources/App/AudioExporter.swift @@ -53,16 +53,18 @@ enum AudioExporter { static let stemPeakCeiling = Float(pow(10, -0.1 / 20)) /// Render on a worker task using a separate graph; live playback is untouched. + /// `progress` receives the rendered fraction on the rendering thread, at most once per whole percent. static func render(sources: [Source], to destination: URL, format: Format = .wav, masterEQ: EQ = EQ(), rate: Float = 1, pitch: Float = 0, - limitPeak: Bool = false) throws { - _ = try renderMeasured(sources: sources, to: destination, settings: format.settings, - masterEQ: masterEQ, rate: rate, pitch: pitch, limitPeak: limitPeak) + limitPeak: Bool = false, progress: (@Sendable (Double) -> Void)? = nil) throws { + _ = try renderMeasured(sources: sources, to: destination, settings: format.settings, masterEQ: masterEQ, + rate: rate, pitch: pitch, limitPeak: limitPeak) { progress?($0) } } /// Returns the largest sample magnitude written, measured before any fixed-point conversion. private static func renderMeasured(sources: [Source], to destination: URL, settings: [String: Any], - masterEQ: EQ, rate: Float, pitch: Float, limitPeak: Bool) throws -> Float { + masterEQ: EQ, rate: Float, pitch: Float, limitPeak: Bool, + progress: (Double) -> Void) throws -> Float { guard !sources.isEmpty, rate.isFinite, rate > 0 else { throw DemucsError.invalidAudioFormat } let engine = AVAudioEngine() let audioFormat = StreamingAudio.format @@ -132,6 +134,7 @@ enum AudioExporter { let frameCount = AVAudioFramePosition(ceil(Double(files[0].length) / Double(rate))) + tail + latency var stalled = 0 var peak: Float = 0 + var reported: AVAudioFramePosition = 0 while engine.manualRenderingSampleTime < frameCount { try Task.checkCancellation() let before = engine.manualRenderingSampleTime @@ -152,6 +155,11 @@ enum AudioExporter { } stalled = before == engine.manualRenderingSampleTime ? stalled + 1 : 0 guard stalled < 100 else { throw DemucsError.conversionFailed("Offline rendering stopped making progress.") } + let percent = engine.manualRenderingSampleTime * 100 / frameCount + if percent > reported { + reported = percent + progress(Double(engine.manualRenderingSampleTime) / Double(frameCount)) + } } return peak } @@ -169,27 +177,31 @@ enum AudioExporter { // Render in Float32 first, then lower all four by one gain so their balance and sum are kept. var rendered: [URL] = [] var peak: Float = 0 + // Rendering fills 0-40% and encoding 40-80%; the archive step reports 80%. for (index, source) in sources.enumerated() { let url = directory.appending(path: "render-\(index).wav") peak = max(peak, try renderMeasured(sources: [source], to: url, settings: StreamingAudio.settings, - masterEQ: EQ(), rate: 1, pitch: 0, limitPeak: false)) + masterEQ: EQ(), rate: 1, pitch: 0, limitPeak: false) { + progress((Double(index) + $0) / 10) + }) rendered.append(url) - progress(Double(index + 1) / 10) } let gain = peak > stemPeakCeiling ? stemPeakCeiling / peak : 1 var names: [String] = [] for (index, url) in rendered.enumerated() { let name = "\(safeFilename(title))_\(DemucsEngine.stemNames[index]).\(format.fileExtension)" names.append(name) - try encode(url, to: directory.appending(path: name), format: format, gain: gain) + try encode(url, to: directory.appending(path: name), format: format, gain: gain) { + progress(0.4 + (Double(index) + $0) / 10) + } try? fm.removeItem(at: url) - progress(0.4 + Double(index + 1) / 10) } let archive = directory.appending(path: "stems.zip") let process = Process() process.executableURL = URL(filePath: "/usr/bin/zip") process.currentDirectoryURL = directory - process.arguments = ["-q", archive.path, "--"] + names + // Store entries: PCM and FLAC barely deflate, and compressing them was the slowest export step. + process.arguments = ["-q", "-0", archive.path, "--"] + names try process.run() process.waitUntilExit() guard process.terminationStatus == 0 else { throw DemucsError.conversionFailed("Could not create the stem archive.") } @@ -200,13 +212,15 @@ enum AudioExporter { } /// Converts rendered Float32 audio to the export format, scaling every sample by `gain`. - private static func encode(_ source: URL, to destination: URL, format: Format, gain: Float) throws { + private static func encode(_ source: URL, to destination: URL, format: Format, gain: Float, + progress: (Double) -> Void) throws { let input = try AVAudioFile(forReading: source) let output = try AVAudioFile(forWriting: destination, settings: format.settings) guard let buffer = AVAudioPCMBuffer(pcmFormat: input.processingFormat, frameCapacity: 65_536) else { throw DemucsError.invalidAudioFormat } var scale = gain + var reported: AVAudioFramePosition = 0 while input.framePosition < input.length { try Task.checkCancellation() try input.read(into: buffer) @@ -219,6 +233,11 @@ enum AudioExporter { } } try output.write(from: buffer) + let percent = input.framePosition * 100 / input.length + if percent > reported { + reported = percent + progress(Double(input.framePosition) / Double(input.length)) + } } } diff --git a/Tests/IsolateTests/ExporterFixTests.swift b/Tests/IsolateTests/ExporterFixTests.swift index 7dae346..3343f34 100644 --- a/Tests/IsolateTests/ExporterFixTests.swift +++ b/Tests/IsolateTests/ExporterFixTests.swift @@ -2,6 +2,24 @@ import XCTest import AVFoundation @testable import Isolate +/// Collects progress reports made on the rendering thread. +private final class ProgressLog: @unchecked Sendable { + private let lock = NSLock() + private var storage: [Double] = [] + + var values: [Double] { + lock.lock() + defer { lock.unlock() } + return storage + } + + func append(_ value: Double) { + lock.lock() + storage.append(value) + lock.unlock() + } +} + @MainActor final class ExporterFixTests: XCTestCase { private var directory: URL! @@ -117,6 +135,32 @@ final class ExporterFixTests: XCTestCase { } } + func testMixRenderReportsThrottledProgressUpToCompletion() throws { + let source = try audio("long.wav", frames: 441_000) { self.tone($0) } + let log = ProgressLog() + try AudioExporter.render(sources: [.init(url: source)], to: directory.appending(path: "mix.wav"), + rate: 0.5, limitPeak: true) { log.append($0) } + let values = log.values + XCTAssertGreaterThan(values.count, 10, "Progress must move during the render, not only at the end") + XCTAssertLessThanOrEqual(values.count, 100, "Reports are limited to one per whole percent") + XCTAssertEqual(values.last, 1) + XCTAssertEqual(values, values.sorted()) + XCTAssertEqual(Set(values).count, values.count) + XCTAssertGreaterThan(values.first ?? 0, 0) + } + + func testStemArchiveProgressMovesThroughRenderingAndEncoding() throws { + let log = ProgressLog() + try AudioExporter.archive(sources: try stems(amplitudes: [0.2, 0.2, 0.2, 0.2]), title: "Progress", + format: .flac, to: directory.appending(path: "progress.zip")) { log.append($0) } + let values = log.values + XCTAssertEqual(values, values.sorted()) + XCTAssertTrue(values.contains { $0 > 0 && $0 < 0.4 }, "Stem rendering reports progress") + XCTAssertTrue(values.contains { $0 > 0.4 && $0 < 0.8 }, "Stem encoding reports progress") + XCTAssertTrue(values.contains(0.8), "The archive step starts at 80%") + XCTAssertEqual(values.last, 1) + } + func testLimitedMixIsSampleAlignedAndKeepsItsLastFrames() throws { // An impulse at a known frame and a tone filling the final 200 frames. let source = try audio("aligned.wav", frames: 44_100) { frame in From bd5667e9d1606ad889148adbf449d5bb4afabf4c Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:06:27 -0500 Subject: [PATCH 08/89] fix(export): flag non-ASCII stem ZIP names as UTF-8 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit /usr/bin/zip on macOS stores UTF-8 entry names without general purpose bit 11, so Windows Explorer and other spec-following readers decode a title such as "Beyoncé" as CP437 mojibake. After zipping, set bit 11 in the central and local header of each entry whose name is non-ASCII, valid UTF-8. The stored bytes are already UTF-8 and CRCs cover only file data, so nothing else changes. Zip64 end records and extra fields are followed for archives over 4 GB. The step is best effort, so an unexpected archive layout never fails the export. ASCII-only names are left as they were. Co-Authored-By: Claude Opus 5.5 --- Sources/App/AudioExporter.swift | 78 +++++++++++++++++++ Tests/IsolateTests/ExporterFixTests.swift | 91 +++++++++++++++++++++++ 2 files changed, 169 insertions(+) diff --git a/Sources/App/AudioExporter.swift b/Sources/App/AudioExporter.swift index 8d3a8e3..2a52f04 100644 --- a/Sources/App/AudioExporter.swift +++ b/Sources/App/AudioExporter.swift @@ -205,6 +205,8 @@ enum AudioExporter { try process.run() process.waitUntilExit() guard process.terminationStatus == 0 else { throw DemucsError.conversionFailed("Could not create the stem archive.") } + // Best effort: an unflagged name still extracts correctly on macOS. + try? markUTF8Names(in: archive) try Task.checkCancellation() try publish(archive, to: destination) progress(1) @@ -241,6 +243,75 @@ enum AudioExporter { } } + /// /usr/bin/zip stores UTF-8 names without general purpose bit 11, so Windows and other readers + /// decode non-ASCII names as CP437. Set the bit in the central and local header of each such entry. + static func markUTF8Names(in archive: URL) throws { + let invalid = DemucsError.conversionFailed("Could not read the stem archive.") + let handle = try FileHandle(forUpdating: archive) + defer { try? handle.close() } + func read(_ offset: UInt64, _ count: Int) throws -> [UInt8] { + try handle.seek(toOffset: offset) + guard count > 0, let data = try handle.read(upToCount: count), data.count == count else { throw invalid } + return [UInt8](data) + } + func setFlag(at offset: UInt64, _ flags: UInt16) throws { + let value = flags | 0x0800 + try handle.seek(toOffset: offset) + try handle.write(contentsOf: Data([UInt8(value & 0xFF), UInt8(value >> 8)])) + } + // The end record is 22 bytes plus a comment of up to 65,535 bytes. + let size = try handle.seekToEnd() + let tailStart = size - min(size, 65_557) + let tail = try read(tailStart, Int(size - tailStart)) + guard let end = stride(from: tail.count - 22, through: 0, by: -1).first(where: { + tail.uint32(at: $0) == 0x0605_4B50 && $0 + 22 + Int(tail.uint16(at: $0 + 20)) == tail.count + }) else { throw invalid } + var directorySize = UInt64(tail.uint32(at: end + 12)) + var directoryOffset = UInt64(tail.uint32(at: end + 16)) + if end >= 20, tail.uint32(at: end - 20) == 0x0706_4B50 { + let record = try read(tail.uint64(at: end - 12), 56) + guard record.uint32(at: 0) == 0x0606_4B50 else { throw invalid } + directorySize = record.uint64(at: 40) + directoryOffset = record.uint64(at: 48) + } + guard directorySize < 1 << 24 else { throw invalid } + let directory = try read(directoryOffset, Int(directorySize)) + var position = 0 + while position + 46 <= directory.count { + guard directory.uint32(at: position) == 0x0201_4B50 else { throw invalid } + let nameEnd = position + 46 + Int(directory.uint16(at: position + 28)) + let extraEnd = nameEnd + Int(directory.uint16(at: position + 30)) + let next = extraEnd + Int(directory.uint16(at: position + 32)) + guard next <= directory.count else { throw invalid } + let name = directory[(position + 46)..= 0x80 }), String(bytes: name, encoding: .utf8) != nil { + var local = UInt64(directory.uint32(at: position + 42)) + if local == 0xFFFF_FFFF { + // The Zip64 extra field lists only the saturated sizes before the offset. + var field = nameEnd + var offset: UInt64? + while field + 4 <= extraEnd { + let length = Int(directory.uint16(at: field + 2)) + if directory.uint16(at: field) == 0x0001 { + var value = field + 4 + if directory.uint32(at: position + 24) == 0xFFFF_FFFF { value += 8 } + if directory.uint32(at: position + 20) == 0xFFFF_FFFF { value += 8 } + if value + 8 <= min(field + 4 + length, extraEnd) { offset = directory.uint64(at: value) } + } + field += 4 + length + } + guard let offset else { throw invalid } + local = offset + } + let header = try read(local, 8) + guard header.uint32(at: 0) == 0x0403_4B50 else { throw invalid } + try setFlag(at: local + 6, header.uint16(at: 6)) + try setFlag(at: directoryOffset + UInt64(position) + 8, directory.uint16(at: position + 8)) + } + position = next + } + } + private static func peak(of buffer: AVAudioPCMBuffer) -> Float { guard let channels = buffer.floatChannelData else { return 0 } var peak: Float = 0 @@ -279,3 +350,10 @@ enum AudioExporter { return eq } } + +/// Little-endian reads for ZIP records. Callers check bounds first. +private extension Array where Element == UInt8 { + func uint16(at offset: Int) -> UInt16 { UInt16(self[offset]) | UInt16(self[offset + 1]) << 8 } + func uint32(at offset: Int) -> UInt32 { UInt32(uint16(at: offset)) | UInt32(uint16(at: offset + 2)) << 16 } + func uint64(at offset: Int) -> UInt64 { UInt64(uint32(at: offset)) | UInt64(uint32(at: offset + 4)) << 32 } +} diff --git a/Tests/IsolateTests/ExporterFixTests.swift b/Tests/IsolateTests/ExporterFixTests.swift index 3343f34..c21263f 100644 --- a/Tests/IsolateTests/ExporterFixTests.swift +++ b/Tests/IsolateTests/ExporterFixTests.swift @@ -135,6 +135,97 @@ final class ExporterFixTests: XCTestCase { } } + private struct ZipEntry { + let name: String? + let centralFlags: UInt16 + let localFlags: UInt16 + let method: UInt16 + } + + /// Reads a small archive without a comment or Zip64 records, as /usr/bin/zip writes for these tests. + private func entries(in archive: URL) throws -> [ZipEntry] { + let bytes = [UInt8](try Data(contentsOf: archive)) + func u16(_ index: Int) -> UInt16 { UInt16(bytes[index]) | UInt16(bytes[index + 1]) << 8 } + func u32(_ index: Int) -> Int { Int(u16(index)) | Int(u16(index + 2)) << 16 } + let end = bytes.count - 22 + XCTAssertEqual(u32(end), 0x0605_4B50) + var position = u32(end + 16) + var result: [ZipEntry] = [] + for _ in 0..> ($0 * 8)) } } + let name = Array("é.wav".utf8) + let contents = Array("data".utf8) + le(0x0403_4B50, 4); le(45, 2); le(0, 2); le(0, 2); le(0, 4); le(0, 4) + le(UInt64(contents.count), 4); le(UInt64(contents.count), 4); le(UInt64(name.count), 2); le(0, 2) + bytes += name + contents + let directoryOffset = bytes.count + le(0x0201_4B50, 4); le(45, 2); le(45, 2); le(0, 2); le(0, 2); le(0, 4); le(0, 4) + le(UInt64(contents.count), 4); le(UInt64(contents.count), 4); le(UInt64(name.count), 2); le(12, 2); le(0, 2) + le(0, 2); le(0, 2); le(0, 4); le(0xFFFF_FFFF, 4) + bytes += name + le(0x0001, 2); le(8, 2); le(0, 8) + let directorySize = bytes.count - directoryOffset + let record = bytes.count + le(0x0606_4B50, 4); le(44, 8); le(45, 2); le(45, 2); le(0, 4); le(0, 4) + le(1, 8); le(1, 8); le(UInt64(directorySize), 8); le(UInt64(directoryOffset), 8) + le(0x0706_4B50, 4); le(0, 4); le(UInt64(record), 8); le(1, 4) + le(0x0605_4B50, 4); le(0, 2); le(0, 2); le(0xFFFF, 2); le(0xFFFF, 2); le(0xFFFF_FFFF, 4); le(0xFFFF_FFFF, 4); le(0, 2) + let archive = directory.appending(path: "zip64.zip") + try Data(bytes).write(to: archive) + + try AudioExporter.markUTF8Names(in: archive) + let patched = [UInt8](try Data(contentsOf: archive)) + XCTAssertEqual(patched.count, bytes.count) + XCTAssertEqual(patched[6], 0x00) + XCTAssertEqual(patched[7], 0x08, "Local header flag") + XCTAssertEqual(patched[directoryOffset + 8], 0x00) + XCTAssertEqual(patched[directoryOffset + 9], 0x08, "Central header flag") + var unchanged = patched + unchanged[7] = 0 + unchanged[directoryOffset + 9] = 0 + XCTAssertEqual(unchanged, bytes, "Only the two flag bytes change") + } + func testMixRenderReportsThrottledProgressUpToCompletion() throws { let source = try audio("long.wav", frames: 441_000) { self.tone($0) } let log = ProgressLog() From c5186696beb0ad33e66e5fa8bc375bd210976f14 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:07:52 -0500 Subject: [PATCH 09/89] fix(export): keep staging copies out of the export folder; stop zip on cancel publish() staged its copy as a hidden ".isolate-" file beside the destination, and quitting during a long cross-volume copy left that file behind. It now stages in the system's item replacement directory on the destination volume and replaces or moves the file into place from there. Volumes that cannot provide that directory fall back to the previous sibling file. The zip step blocked in waitUntilExit, so it could not be cancelled. It now polls, terminates zip when the task is cancelled, and reports cancellation before the exit-status check, so a cancelled export surfaces as CancellationError and nothing is published. Render and encode loops already check for cancellation on every block. Co-Authored-By: Claude Opus 5.5 --- Sources/App/AudioExporter.swift | 18 +++++++-- Tests/IsolateTests/ExporterFixTests.swift | 49 +++++++++++++++++++++++ 2 files changed, 64 insertions(+), 3 deletions(-) diff --git a/Sources/App/AudioExporter.swift b/Sources/App/AudioExporter.swift index 2a52f04..5b3a814 100644 --- a/Sources/App/AudioExporter.swift +++ b/Sources/App/AudioExporter.swift @@ -203,7 +203,13 @@ enum AudioExporter { // Store entries: PCM and FLAC barely deflate, and compressing them was the slowest export step. process.arguments = ["-q", "-0", archive.path, "--"] + names try process.run() + // Poll so a cancelled export also stops zip. + while process.isRunning { + if Task.isCancelled { process.terminate() } + Thread.sleep(forTimeInterval: 0.05) + } process.waitUntilExit() + try Task.checkCancellation() guard process.terminationStatus == 0 else { throw DemucsError.conversionFailed("Could not create the stem archive.") } // Best effort: an unflagged name still extracts correctly on macOS. try? markUTF8Names(in: archive) @@ -325,9 +331,15 @@ enum AudioExporter { static func publish(_ source: URL, to destination: URL) throws { let fm = FileManager.default - // Copy alongside the destination first, including when exporting to another volume. - let staging = destination.deletingLastPathComponent().appending(path: ".isolate-\(UUID().uuidString)") - defer { try? fm.removeItem(at: staging) } + let folder = destination.deletingLastPathComponent() + // Copy onto the destination volume first, including when exporting to another volume. The system's + // replacement directory keeps a copy interrupted by quitting out of the user's folder; volumes that + // cannot provide one fall back to a hidden file beside the destination. + let replacement = try? fm.url(for: .itemReplacementDirectory, in: .userDomainMask, + appropriateFor: folder, create: true) + let staging = replacement?.appending(path: destination.lastPathComponent) + ?? folder.appending(path: ".isolate-\(UUID().uuidString)") + defer { try? fm.removeItem(at: replacement ?? staging) } try fm.copyItem(at: source, to: staging) if fm.fileExists(atPath: destination.path) { _ = try fm.replaceItemAt(destination, withItemAt: staging) diff --git a/Tests/IsolateTests/ExporterFixTests.swift b/Tests/IsolateTests/ExporterFixTests.swift index c21263f..f0dcdba 100644 --- a/Tests/IsolateTests/ExporterFixTests.swift +++ b/Tests/IsolateTests/ExporterFixTests.swift @@ -252,6 +252,55 @@ final class ExporterFixTests: XCTestCase { XCTAssertEqual(values.last, 1) } + func testCancellationStopsExportsBeforeAnythingIsPublished() async throws { + let sources = try stems(amplitudes: [0.2, 0.2, 0.2, 0.2]) + // Cancel while the first stem renders, then just before zip runs. + for threshold in [0.0, 0.8] { + let destination = directory.appending(path: "cancelled-\(threshold).zip") + let task = Task.detached { + try AudioExporter.archive(sources: sources, title: "Cancel", format: .wav, to: destination) { value in + if value >= threshold { withUnsafeCurrentTask { $0?.cancel() } } + } + } + do { + _ = try await task.value + XCTFail("A cancelled stem export must not complete (threshold \(threshold))") + } catch is CancellationError {} + XCTAssertFalse(FileManager.default.fileExists(atPath: destination.path)) + } + let long = try audio("long.wav", frames: 441_000) { self.tone($0) } + let mix = directory.appending(path: "cancelled-mix.wav") + let log = ProgressLog() + let task = Task.detached { + try AudioExporter.render(sources: [.init(url: long)], to: mix, limitPeak: true) { value in + log.append(value) + withUnsafeCurrentTask { $0?.cancel() } + } + } + do { + try await task.value + XCTFail("A cancelled mix render must not complete") + } catch is CancellationError {} + XCTAssertEqual(log.values.count, 1, "Rendering stops at the next block") + } + + func testPublishLeavesOnlyTheDestinationInItsFolder() throws { + let fm = FileManager.default + let folder = directory.appending(path: "Exports") + try fm.createDirectory(at: folder, withIntermediateDirectories: true) + let source = directory.appending(path: "rendered.bin") + let destination = folder.appending(path: "Song_Mix.wav") + try Data("first".utf8).write(to: source) + try AudioExporter.publish(source, to: destination) + try Data("second".utf8).write(to: source) + try AudioExporter.publish(source, to: destination) + XCTAssertEqual(try Data(contentsOf: destination), Data("second".utf8)) + XCTAssertTrue(fm.fileExists(atPath: source.path), "Publishing copies; the caller removes its rendered file") + XCTAssertThrowsError(try AudioExporter.publish(directory.appending(path: "missing.bin"), to: destination)) + XCTAssertEqual(try Data(contentsOf: destination), Data("second".utf8), "A failed publish keeps the previous export") + XCTAssertEqual(try fm.contentsOfDirectory(atPath: folder.path), ["Song_Mix.wav"], "No staging files are left behind") + } + func testLimitedMixIsSampleAlignedAndKeepsItsLastFrames() throws { // An impulse at a known frame and a tone filling the final 200 frames. let source = try audio("aligned.wav", frames: 44_100) { frame in From d10f8f86c8266310d7ac9716ecc134baf4360efe Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:14:45 -0500 Subject: [PATCH 10/89] fix(library): keep the library in Isolate's own SwiftData store The library used SwiftData's default configuration, which for this unsandboxed app is the shared ~/Library/Application Support/default.store. Other unsandboxed SwiftData apps open and migrate that same file, dropping each other's tables, so launching one could erase Isolate's library (and Isolate could erase theirs). The library now lives in Application Support/Isolate/Library.store. On first launch, rows from a pre-1.3 library are imported from a copy of default.store (plus -wal/-shm), and only after SQLite confirms the copy has Isolate's table; the shared file is never opened in place, modified or deleted. The container is created explicitly instead of through the scene modifier, whose failure path silently swapped in an in-memory store. An unreadable store is moved (never deleted) into a timestamped Library Backups folder and replaced, and the user is told where it went; only if that also fails does the session run in memory, with a visible notice. Co-Authored-By: Claude Opus 5.5 --- Sources/App/IsolateApp.swift | 10 +- Sources/Library/TrackModel.swift | 173 +++++++++++++++++++++++++++++++ 2 files changed, 182 insertions(+), 1 deletion(-) diff --git a/Sources/App/IsolateApp.swift b/Sources/App/IsolateApp.swift index 0b7a76b..abcb03b 100644 --- a/Sources/App/IsolateApp.swift +++ b/Sources/App/IsolateApp.swift @@ -9,6 +9,11 @@ struct IsolateApp: App { @State private var theme = ThemeManager.shared @State private var isShowingAboutModal = false @State private var isShowingSettingsModal = false + private let libraryContainer: ModelContainer + + init() { + libraryContainer = LibraryStore.makeContainer() + } var body: some Scene { WindowGroup("Isolate", id: "main", for: String.self) { _ in @@ -66,7 +71,7 @@ struct IsolateApp: App { .disabled(!engineManager.canBypass || engineManager.isSplitting) } } - .modelContainer(for: TrackModel.self, inMemory: AppPreferences.isTesting) + .modelContainer(libraryContainer) .defaultSize(width: 1280, height: 800) .windowResizability(.contentMinSize) .windowStyle(.hiddenTitleBar) @@ -416,6 +421,9 @@ struct ContentView: View { } } ) + if let notice = LibraryStore.takeStartupNotice() { + engineManager.showError(notice) + } } .onChange(of: tracks) { _, newTracks in NowPlayingManager.shared.configure( diff --git a/Sources/Library/TrackModel.swift b/Sources/Library/TrackModel.swift index 484308a..79cd838 100644 --- a/Sources/Library/TrackModel.swift +++ b/Sources/Library/TrackModel.swift @@ -1,5 +1,6 @@ import Foundation import SwiftData +import SQLite3 @Model public final class TrackModel { @@ -24,3 +25,175 @@ public final class TrackModel { self.otherStemURL = otherStemURL } } + +// MARK: - Library store + +/// Opens the on-disk library. Builds up to 1.2 used SwiftData's default +/// configuration, which for this unsandboxed app is the shared +/// ~/Library/Application Support/default.store that other apps also open and +/// migrate, dropping each other's tables. The library now has its own file. +@MainActor +enum LibraryStore { + static var storeURL: URL { URL.applicationSupportDirectory.appending(path: "Isolate/Library.store") } + static var legacyStoreURL: URL { URL.applicationSupportDirectory.appending(path: "default.store") } + static let legacyImportKey = "didImportLegacyLibraryStore" + + enum LegacyImport: Equatable { + case noLegacyLibrary + case imported(Int) + case failed(String) + } + + struct Opened { + let container: ModelContainer + let notice: String? + } + + private static var startupNotice: String? + + /// A message about library recovery for the main window to show once. + static func takeStartupNotice() -> String? { + defer { startupNotice = nil } + return startupNotice + } + + static func makeContainer() -> ModelContainer { + guard !AppPreferences.isTesting else { return inMemoryContainer() } + let opened = open(at: storeURL) + startupNotice = opened.notice + let isPersistent = opened.container.configurations.contains { !$0.isStoredInMemoryOnly } + if isPersistent, !AppPreferences.defaults.bool(forKey: legacyImportKey) { + do { + let result = try importLegacyLibrary(from: legacyStoreURL, into: opened.container.mainContext) + if case .failed(let message) = result { + startupNotice = [startupNotice, message].compactMap { $0 }.joined(separator: " ") + } + AppPreferences.defaults.set(true, forKey: legacyImportKey) + } catch { + // Copying failed (for example, no disk space); try again next launch. + NSLog("Isolate: could not read the previous library: \(error)") + } + } + return opened.container + } + + /// Opens the store at `url`. A store that cannot be opened is moved, never + /// deleted, into a timestamped backup folder before starting a new one; if + /// even that fails the session runs in memory and says so. + static func open(at url: URL, now: Date = .now) -> Opened { + do { + return Opened(container: try persistentContainer(at: url), notice: nil) + } catch { + NSLog("Isolate: could not open the library at \(url.path): \(error)") + } + do { + let backup = try moveStoreAside(at: url, now: now) + let container = try persistentContainer(at: url) + let kept = backup.map { " The previous library was moved to \($0.path)." } ?? "" + return Opened(container: container, notice: "Isolate could not open its library and started a new one.\(kept)") + } catch { + NSLog("Isolate: could not start a new library at \(url.path): \(error)") + return Opened(container: inMemoryContainer(), + notice: "Isolate could not open its library at \(url.path). Changes made in this session will not be saved.") + } + } + + private static func persistentContainer(at url: URL) throws -> ModelContainer { + try FileManager.default.createDirectory(at: url.deletingLastPathComponent(), withIntermediateDirectories: true) + return try ModelContainer(for: TrackModel.self, configurations: ModelConfiguration(url: url)) + } + + private static func inMemoryContainer() -> ModelContainer { + do { + return try ModelContainer(for: TrackModel.self, configurations: ModelConfiguration(isStoredInMemoryOnly: true)) + } catch { + fatalError("Could not create an in-memory library: \(error)") + } + } + + private static func sidecars(of url: URL) -> [URL] { + ["", "-wal", "-shm"].map { URL(fileURLWithPath: url.path + $0) } + } + + /// Moves the store and its SQLite sidecars together; a leftover -wal next to + /// a new store could be replayed into it, so this throws unless all moved. + static func moveStoreAside(at url: URL, now: Date) throws -> URL? { + let fm = FileManager.default + let files = sidecars(of: url).filter { fm.fileExists(atPath: $0.path) } + guard !files.isEmpty else { return nil } + let formatter = DateFormatter() + formatter.locale = Locale(identifier: "en_US_POSIX") + formatter.dateFormat = "yyyy-MM-dd HH.mm.ss" + let backup = url.deletingLastPathComponent() + .appending(path: "Library Backups/\(formatter.string(from: now))", directoryHint: .isDirectory) + try fm.createDirectory(at: backup, withIntermediateDirectories: true) + for file in files.reversed() { + try fm.moveItem(at: file, to: backup.appending(path: file.lastPathComponent)) + } + guard !sidecars(of: url).contains(where: { fm.fileExists(atPath: $0.path) }) else { + throw CocoaError(.fileWriteUnknown) + } + return backup + } + + /// Adds tracks from a library kept in the shared default.store. That store is + /// never opened in place: SwiftData would migrate it to this schema and drop + /// other apps' tables. Its files are copied, SQLite confirms the copy holds + /// Isolate's table, and only then is the copy read. Throws only when copying + /// fails, so the caller can retry on a later launch. + static func importLegacyLibrary(from legacyURL: URL, into context: ModelContext, + scratchDirectory: URL = FileManager.default.temporaryDirectory) throws -> LegacyImport { + let fm = FileManager.default + guard fm.fileExists(atPath: legacyURL.path) else { return .noLegacyLibrary } + let scratch = scratchDirectory.appending(path: "Isolate-Legacy-\(UUID().uuidString)", directoryHint: .isDirectory) + try fm.createDirectory(at: scratch, withIntermediateDirectories: true) + defer { try? fm.removeItem(at: scratch) } + let copy = scratch.appending(path: "Legacy.store") + for (source, destination) in zip(sidecars(of: legacyURL), sidecars(of: copy)) where fm.fileExists(atPath: source.path) { + try fm.copyItem(at: source, to: destination) + } + guard containsTrackTable(copy) else { return .noLegacyLibrary } + do { + let added = try copyTracks(from: copy, into: context) + return .imported(added) + } catch { + NSLog("Isolate: could not import the previous library: \(error)") + return .failed("Isolate could not import its previous library; it was left unchanged at \(legacyURL.path).") + } + } + + private static func copyTracks(from store: URL, into context: ModelContext) throws -> Int { + let legacy = try ModelContainer(for: TrackModel.self, configurations: ModelConfiguration(url: store)) + let rows = try ModelContext(legacy).fetch(FetchDescriptor()) + var known = Set(try context.fetch(FetchDescriptor()).map(\.id)) + var added = 0 + for row in rows where !known.contains(row.id) { + context.insert(TrackModel(id: row.id, title: row.title, originalURL: row.originalURL, dateAdded: row.dateAdded, + vocalStemURL: row.vocalStemURL, bassStemURL: row.bassStemURL, + drumStemURL: row.drumStemURL, otherStemURL: row.otherStemURL)) + known.insert(row.id) + added += 1 + } + if added > 0 { + do { try context.save() } + catch { context.rollback(); throw error } + } + return added + } + + /// True when the SQLite file has a TrackModel table with every stored field. + static func containsTrackTable(_ url: URL) -> Bool { + var db: OpaquePointer? + defer { sqlite3_close(db) } + guard sqlite3_open_v2(url.path, &db, SQLITE_OPEN_READWRITE, nil) == SQLITE_OK else { return false } + var statement: OpaquePointer? + defer { sqlite3_finalize(statement) } + guard sqlite3_prepare_v2(db, "PRAGMA table_info(ZTRACKMODEL)", -1, &statement, nil) == SQLITE_OK else { return false } + var columns = Set() + while sqlite3_step(statement) == SQLITE_ROW { + if let name = sqlite3_column_text(statement, 1) { columns.insert(String(cString: name)) } + } + return ["ZID", "ZTITLE", "ZORIGINALURL", "ZDATEADDED", "ZVOCALSTEMURL", + "ZBASSSTEMURL", "ZDRUMSTEMURL", "ZOTHERSTEMURL"].allSatisfy(columns.contains) + } +} From ebd654712773e66f56d3996904a695bb99f64ed9 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:15:03 -0500 Subject: [PATCH 11/89] fix(app): confirm quit mid-work and reopen the main window from the menu bar - Quitting (Cmd-Q or the status menu) while a separation or export is running now asks first. Confirming a quit during separation cancels the import and waits (up to 15 s) for it to clean up before exiting. - The status menu's "Open Isolate" and track items targeted NSApp.windows.first, which is the status item's own window once the main window is closed, so nothing opened. They now use the scene's openWindow action, which reopens a closed window, fronts an open one and restores a minimized one. - Automatic window tabbing is off, so the tab bar's "+" can no longer create a second main window with duplicated modals and importers. - The image-only status item has a VoiceOver label and a Playing/Paused value. Co-Authored-By: Claude Opus 5.5 --- Sources/App/IsolateApp.swift | 61 ++++++++++++++++++++++++++++++++ Sources/App/MenuBarManager.swift | 21 +++++++++-- 2 files changed, 79 insertions(+), 3 deletions(-) diff --git a/Sources/App/IsolateApp.swift b/Sources/App/IsolateApp.swift index abcb03b..8752396 100644 --- a/Sources/App/IsolateApp.swift +++ b/Sources/App/IsolateApp.swift @@ -4,6 +4,7 @@ import UniformTypeIdentifiers @main struct IsolateApp: App { + @NSApplicationDelegateAdaptor(IsolateAppDelegate.self) private var appDelegate @Environment(\.openWindow) private var openWindow @State private var engineManager = AudioEngineManager() @State private var theme = ThemeManager.shared @@ -12,6 +13,8 @@ struct IsolateApp: App { private let libraryContainer: ModelContainer init() { + // One logical main window: without this, the tab bar's "+" opens more. + NSWindow.allowsAutomaticWindowTabbing = false libraryContainer = LibraryStore.makeContainer() } @@ -24,6 +27,12 @@ struct IsolateApp: App { .frame(minWidth: 960, minHeight: 580) .background(WindowAccessor()) .environment(engineManager) + .onAppear { + appDelegate.engineManager = engineManager + // The status menu has no SwiftUI environment; hand it the + // scene's action so it can reopen a closed window. + MenuBarManager.shared.openMainWindow = { openWindow(id: "main", value: "main") } + } } defaultValue: { "main" } @@ -79,6 +88,57 @@ struct IsolateApp: App { } } +/// Asks before quitting while work that cannot resume is running. +@MainActor +final class IsolateAppDelegate: NSObject, NSApplicationDelegate { + weak var engineManager: AudioEngineManager? + + enum PendingWork: Equatable { + case separation + case export + } + + /// A finished export only shows COMPLETED briefly and needs no confirmation. + static func pendingWork(isSplitting: Bool, exportState: ExportState) -> PendingWork? { + if isSplitting { return .separation } + if case .exporting = exportState { return .export } + return nil + } + + func applicationShouldTerminate(_ sender: NSApplication) -> NSApplication.TerminateReply { + guard let engine = engineManager, + let work = Self.pendingWork(isSplitting: engine.isSplitting, exportState: engine.exportState) else { + return .terminateNow + } + let alert = NSAlert() + alert.alertStyle = .warning + switch work { + case .separation: + alert.messageText = "Quit while a track is being separated?" + alert.informativeText = "Quitting cancels the import, and its separation progress is lost." + alert.addButton(withTitle: "Keep Separating") + alert.addButton(withTitle: "Cancel Import & Quit") + case .export: + alert.messageText = "Quit while an export is running?" + alert.informativeText = "The export stops and its file is not saved." + alert.addButton(withTitle: "Keep Exporting") + alert.addButton(withTitle: "Quit") + } + guard alert.runModal() == .alertSecondButtonReturn else { return .terminateCancel } + guard work == .separation else { return .terminateNow } + // Quit once the cancelled separation has removed its temporary files. + engine.cancelSplitAudio() + Task { @MainActor in + let deadline = ContinuousClock.now + .seconds(15) + while engine.isSplitting && ContinuousClock.now < deadline { + try? await Task.sleep(for: .milliseconds(50)) + } + NSApp.reply(toApplicationShouldTerminate: true) + } + return .terminateLater + } +} + struct SplittingProgressModal: View { @Environment(AudioEngineManager.self) private var engineManager @State private var theme = ThemeManager.shared @@ -955,6 +1015,7 @@ struct WindowAccessor: NSViewRepresentable { window.appearance = ThemeManager.shared.currentTheme == .system ? nil : NSAppearance(named: isDark ? .darkAqua : .aqua) window.minSize = NSSize(width: 960, height: 580) window.isMovableByWindowBackground = false + window.tabbingMode = .disallowed if window.toolbar == nil { let toolbar = NSToolbar(identifier: "IsolateMainWindowToolbar") diff --git a/Sources/App/MenuBarManager.swift b/Sources/App/MenuBarManager.swift index b975fc7..0735932 100644 --- a/Sources/App/MenuBarManager.swift +++ b/Sources/App/MenuBarManager.swift @@ -6,8 +6,11 @@ import SwiftUI public final class MenuBarManager: NSObject, NSMenuDelegate { public static let shared = MenuBarManager() - private var statusItem: NSStatusItem? + private(set) var statusItem: NSStatusItem? private weak var engineManager: AudioEngineManager? + /// Opens or fronts the main window through SwiftUI, which can recreate it + /// after it was closed; set by the app scene. + var openMainWindow: (() -> Void)? private var playlistProvider: (() -> [TrackModel])? private var trackSelectHandler: ((TrackModel) -> Void)? @@ -55,6 +58,8 @@ public final class MenuBarManager: NSObject, NSMenuDelegate { button.image = createMenuBarIcon(frame: 0, isPlaying: engineManager?.isPlaying ?? false) button.imagePosition = .imageOnly button.toolTip = "Isolate - 4-Stem Neural Audio" + // The icon is image-only, so VoiceOver needs an explicit name. + button.setAccessibilityLabel("Isolate") } let menu = NSMenu() @@ -69,6 +74,7 @@ public final class MenuBarManager: NSObject, NSMenuDelegate { animationTimer = nil guard statusItem != nil else { return } + statusItem?.button?.setAccessibilityValue(isPlaying ? "Playing" : "Paused") if isPlaying && !NSWorkspace.shared.accessibilityDisplayShouldReduceMotion { animationTimer = Timer.scheduledTimer(withTimeInterval: 0.14, repeats: true) { [weak self] _ in Task { @MainActor [weak self] in @@ -248,11 +254,20 @@ public final class MenuBarManager: NSObject, NSMenuDelegate { } @objc private func bringWindowToFront() { - NSApp.activate(ignoringOtherApps: true) - if let window = NSApp.windows.first { + NSApp.activate() + if let openMainWindow { + openMainWindow() + } else if let window = Self.mainWindowCandidate(in: NSApp.windows) { + if window.isMiniaturized { window.deminiaturize(nil) } window.makeKeyAndOrderFront(nil) } } + + /// The status item's own borderless window is also in `NSApp.windows` (and + /// is first when the main window is closed), so only a titled window counts. + static func mainWindowCandidate(in windows: [NSWindow]) -> NSWindow? { + windows.first { !($0 is NSPanel) && $0.styleMask.contains(.titled) } + } @objc private func quitApp() { NSApp.terminate(nil) From d55c4d90965d7db30d396c4615154bbc9d29e3ce Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:15:16 -0500 Subject: [PATCH 12/89] fix(now-playing): keep numeric titles and stop republishing every second - The track-number cleanup stripped leading digits from real titles ("7-Eleven" became "Eleven", "1-800-273-8255" lost its "1-"). Only an unmistakable "01 - ", "01. " or "01_" prefix before a letter is removed now. - The artwork object is reused while the image is unchanged, and progress is republished only when playback departs from what Control Center extrapolates (seek, loop wrap, rate or duration change), so the once-per-second timer call no longer pushes the full dictionary. Co-Authored-By: Claude Opus 5.5 --- Sources/App/NowPlayingManager.swift | 68 ++++++++++++++++++++++++----- 1 file changed, 58 insertions(+), 10 deletions(-) diff --git a/Sources/App/NowPlayingManager.swift b/Sources/App/NowPlayingManager.swift index 4bacc32..8c67370 100644 --- a/Sources/App/NowPlayingManager.swift +++ b/Sources/App/NowPlayingManager.swift @@ -10,6 +10,20 @@ public final class NowPlayingManager: NSObject { private weak var engineManager: AudioEngineManager? private var playlistProvider: (() -> [TrackModel])? private var trackSelectHandler: ((TrackModel) -> Void)? + + /// The artwork last handed to MediaPlayer, reused while the image is unchanged. + private var artworkImage: NSImage? + private var artwork: MPMediaItemArtwork? + + /// What the system was last told. It extrapolates elapsed time from this, + /// so progress only needs republishing when playback departs from it. + struct PublishedProgress: Equatable { + var elapsed: Double + var duration: Double + var rate: Double + var uptime: TimeInterval + } + private var publishedProgress: PublishedProgress? public override init() { super.init() @@ -119,16 +133,39 @@ public final class NowPlayingManager: NSObject { info[MPNowPlayingInfoPropertyDefaultPlaybackRate] = 1.0 // High-Res Artwork with Nothing OS Application Icon Fallback - if let art = artwork { - let mpArtwork = MPMediaItemArtwork(boundsSize: art.size) { _ in art } - info[MPMediaItemPropertyArtwork] = mpArtwork - } else if let appIcon = NSApp?.applicationIconImage { - let mpArtwork = MPMediaItemArtwork(boundsSize: appIcon.size) { _ in appIcon } - info[MPMediaItemPropertyArtwork] = mpArtwork + if let image = artwork ?? NSApp?.applicationIconImage { + info[MPMediaItemPropertyArtwork] = mediaArtwork(for: image) } MPNowPlayingInfoCenter.default().nowPlayingInfo = info MPNowPlayingInfoCenter.default().playbackState = isPlaying ? .playing : .paused + recordProgress(info) + } + + private func mediaArtwork(for image: NSImage) -> MPMediaItemArtwork { + if let artwork, artworkImage === image { return artwork } + let made = MPMediaItemArtwork(boundsSize: image.size) { _ in image } + artworkImage = image + artwork = made + return made + } + + private func recordProgress(_ info: [String: Any]) { + publishedProgress = PublishedProgress( + elapsed: info[MPNowPlayingInfoPropertyElapsedPlaybackTime] as? Double ?? 0, + duration: info[MPMediaItemPropertyPlaybackDuration] as? Double ?? 0, + rate: info[MPNowPlayingInfoPropertyPlaybackRate] as? Double ?? 0, + uptime: ProcessInfo.processInfo.systemUptime) + } + + /// True when the system's extrapolated position, duration or rate no longer + /// matches playback, e.g. after a seek, loop wrap or rate change. + static func progressNeedsPublish(_ last: PublishedProgress?, elapsed: Double, duration: Double, + rate: Double, uptime: TimeInterval) -> Bool { + guard let last else { return true } + guard last.rate == rate, abs(last.duration - duration) < 0.001 else { return true } + let expected = last.elapsed + (uptime - last.uptime) * last.rate + return abs(expected - elapsed) > 0.25 } public func updateNowPlayingPlaybackState() { @@ -140,19 +177,28 @@ public final class NowPlayingManager: NSObject { } MPNowPlayingInfoCenter.default().nowPlayingInfo = info MPNowPlayingInfoCenter.default().playbackState = engine.isPlaying ? .playing : .paused + recordProgress(info) } public func updateNowPlayingProgress(elapsed: Double, duration: Double) { - guard var info = MPNowPlayingInfoCenter.default().nowPlayingInfo else { return } + let rate = (engineManager?.isPlaying == true) ? (engineManager?.playbackRate ?? 1) : 0.0 + let uptime = ProcessInfo.processInfo.systemUptime + guard Self.progressNeedsPublish(publishedProgress, elapsed: elapsed, duration: duration, + rate: rate, uptime: uptime), + var info = MPNowPlayingInfoCenter.default().nowPlayingInfo else { return } info[MPNowPlayingInfoPropertyElapsedPlaybackTime] = elapsed info[MPMediaItemPropertyPlaybackDuration] = duration - info[MPNowPlayingInfoPropertyPlaybackRate] = (engineManager?.isPlaying == true) ? (engineManager?.playbackRate ?? 1) : 0.0 + info[MPNowPlayingInfoPropertyPlaybackRate] = rate MPNowPlayingInfoCenter.default().nowPlayingInfo = info + publishedProgress = PublishedProgress(elapsed: elapsed, duration: duration, rate: rate, uptime: uptime) } public func clear() { MPNowPlayingInfoCenter.default().nowPlayingInfo = nil MPNowPlayingInfoCenter.default().playbackState = .stopped + publishedProgress = nil + artworkImage = nil + artwork = nil } public func cleanTrackTitle(_ raw: String) -> String { @@ -163,8 +209,10 @@ public final class NowPlayingManager: NSObject { clean = String(clean.dropLast(ext.count)) } } - // Strip leading track numbering e.g. "01 - ", "01. ", "01 " - let pattern = #"^\d{1,3}\s*[-._]\s*"# + // Strip only an unmistakable track-number prefix ("01 - ", "01. ", + // "01_") before a letter, so titles such as "7-Eleven", "22", + // "1-800-273-8255" or "99 Problems" are published unchanged. + let pattern = #"^\d{1,3}(?:\s*[-.]\s+|_\s*)(?=\p{L})"# if let regex = try? NSRegularExpression(pattern: pattern, options: []) { let range = NSRange(clean.startIndex.. Date: Fri, 25 Sep 2026 20:15:35 -0500 Subject: [PATCH 13/89] fix(library): make search, Next/Previous and folder headers match the sidebar - Search matched the shared stem file names and the full source path, so "bass", "drum", "the", "all" or the account name returned every track. It now matches the title, source file name and folder only, without the "stem"/"stems"/"all" show-everything special case. The placeholder reads SEARCH LIBRARY. - Media keys, Control Center and the status menu stepped through date-added order while the sidebar groups by folder; both now use one shared grouping helper, so Next goes to the row below. - Folders with the same name (two "Greatest Hits") get their parent folder in the header. - The filter runs once per update instead of once per visible row. - Typing a search closes an open inline track menu, whose invisible click catcher otherwise swallowed the next click on the player. Co-Authored-By: Claude Opus 5.5 --- Sources/App/IsolateApp.swift | 72 ++++++++------------------- Sources/Library/LibraryView.swift | 81 +++++++++++++------------------ Sources/Library/TrackModel.swift | 31 ++++++++++++ 3 files changed, 87 insertions(+), 97 deletions(-) diff --git a/Sources/App/IsolateApp.swift b/Sources/App/IsolateApp.swift index 8752396..5ae7278 100644 --- a/Sources/App/IsolateApp.swift +++ b/Sources/App/IsolateApp.swift @@ -455,64 +455,34 @@ struct ContentView: View { .onAppear { theme.updateWindowAppearance() appMoveHelper.checkLocationOnStartup() - NowPlayingManager.shared.configure( - engineManager: engineManager, - playlistProvider: { tracks }, - trackSelectHandler: { track in - Task { - guard !engineManager.isSplitting else { return } - await engineManager.loadTrack(track) - if engineManager.currentTrackID == track.id && !engineManager.isPlaying { - engineManager.togglePlayback() - } - } - } - ) - MenuBarManager.shared.configure( - engineManager: engineManager, - playlistProvider: { tracks }, - trackSelectHandler: { track in - Task { - guard !engineManager.isSplitting else { return } - await engineManager.loadTrack(track) - if engineManager.currentTrackID == track.id && !engineManager.isPlaying { - engineManager.togglePlayback() - } - } - } - ) + configureSystemControls(tracks) if let notice = LibraryStore.takeStartupNotice() { engineManager.showError(notice) } } .onChange(of: tracks) { _, newTracks in - NowPlayingManager.shared.configure( - engineManager: engineManager, - playlistProvider: { newTracks }, - trackSelectHandler: { track in - Task { - guard !engineManager.isSplitting else { return } - await engineManager.loadTrack(track) - if engineManager.currentTrackID == track.id && !engineManager.isPlaying { - engineManager.togglePlayback() - } - } - } - ) - MenuBarManager.shared.configure( - engineManager: engineManager, - playlistProvider: { newTracks }, - trackSelectHandler: { track in - Task { - guard !engineManager.isSplitting else { return } - await engineManager.loadTrack(track) - if engineManager.currentTrackID == track.id && !engineManager.isPlaying { - engineManager.togglePlayback() - } - } + configureSystemControls(newTracks) + } + } + + /// Media keys, Control Center and the status menu step through the library + /// in the sidebar's folder order. + private func configureSystemControls(_ library: [TrackModel]) { + let selectTrack: (TrackModel) -> Void = { track in + Task { + guard !engineManager.isSplitting else { return } + await engineManager.loadTrack(track) + if engineManager.currentTrackID == track.id && !engineManager.isPlaying { + engineManager.togglePlayback() } - ) + } } + NowPlayingManager.shared.configure(engineManager: engineManager, + playlistProvider: { library.libraryPlaybackOrder() }, + trackSelectHandler: selectTrack) + MenuBarManager.shared.configure(engineManager: engineManager, + playlistProvider: { library.libraryPlaybackOrder() }, + trackSelectHandler: selectTrack) } } diff --git a/Sources/Library/LibraryView.swift b/Sources/Library/LibraryView.swift index c4fa1e7..97ed5bb 100644 --- a/Sources/Library/LibraryView.swift +++ b/Sources/Library/LibraryView.swift @@ -116,47 +116,24 @@ struct LibraryView: View { @State private var theme = ThemeManager.shared @State private var searchText = "" - private var filteredTracks: [TrackModel] { - let trimmed = searchText.trimmingCharacters(in: .whitespacesAndNewlines).lowercased() - guard !trimmed.isEmpty else { return tracks } - - // If searching generic stem terms, all tracks have 4 isolated stems - if trimmed == "stem" || trimmed == "stems" || trimmed == "all" { - return tracks + /// Group headers: the folder name, extended with parent folders only where + /// two different folders share a name (e.g. ARTIST A / GREATEST HITS). + /// Built from every track so headers stay stable while searching. + static func folderLabels(for folders: [URL]) -> [URL: String] { + let unique = Array(Set(folders)) + func suffix(_ folder: URL, _ count: Int) -> String { + folder.pathComponents.suffix(count).joined(separator: " / ") } - - let queryTokens = trimmed - .components(separatedBy: CharacterSet.alphanumerics.inverted) - .filter { !$0.isEmpty } - - guard !queryTokens.isEmpty else { return tracks } - - return tracks.filter { track in - let titleLower = track.title.lowercased() - let filenameLower = track.originalURL.lastPathComponent.lowercased() - let pathLower = track.originalURL.path.lowercased() - let extLower = track.originalURL.pathExtension.lowercased() - let vocalLower = track.vocalStemURL.lastPathComponent.lowercased() - let drumLower = track.drumStemURL.lastPathComponent.lowercased() - let bassLower = track.bassStemURL.lastPathComponent.lowercased() - let otherLower = track.otherStemURL.lastPathComponent.lowercased() - - let combined = "\(titleLower) \(filenameLower) \(pathLower) \(extLower) \(vocalLower) \(drumLower) \(bassLower) \(otherLower)" - - // Direct substring match - if combined.contains(trimmed) { return true } - - // Multi-token match across words/delimiters - return queryTokens.allSatisfy { token in - combined.contains(token) + var labels: [URL: String] = [:] + for folder in unique { + var count = 1 + while count < folder.pathComponents.count, + unique.contains(where: { $0 != folder && suffix($0, count).lowercased() == suffix(folder, count).lowercased() }) { + count += 1 } + labels[folder] = suffix(folder, count) } - } - - private var groupedTracks: [(folder: URL, tracks: [TrackModel])] { - let groups = Dictionary(grouping: filteredTracks) { $0.originalURL.deletingLastPathComponent() } - return groups.keys.sorted { $0.path.localizedStandardCompare($1.path) == .orderedAscending } - .map { (folder: $0, tracks: groups[$0] ?? []) } + return labels } var body: some View { @@ -185,6 +162,11 @@ struct LibraryView: View { .onChange(of: tracks.map(\.id)) { _, _ in recalculateTotalDuration() } + // A search can hide the row whose inline menu is open; close it rather + // than leave its invisible click catcher over the player. + .onChange(of: searchText) { _, _ in + activeMenuTrackID = nil + } } private var headerView: some View { @@ -225,7 +207,7 @@ struct LibraryView: View { .font(.system(size: 11)) .foregroundColor(isSearchFocused ? .red : theme.textSecondary) - TextField("SEARCH STEMS...", text: $searchText) + TextField("SEARCH LIBRARY...", text: $searchText) .accessibilityLabel("Search library") .textFieldStyle(.plain) .font(.custom("DotGothic16-Regular", size: 11.5)) @@ -266,6 +248,7 @@ struct LibraryView: View { ) .contentShape(Rectangle()) .onTapGesture { + activeMenuTrackID = nil isSearchFocused = true } .padding(.horizontal, 16) @@ -274,9 +257,11 @@ struct LibraryView: View { @ViewBuilder private var trackListView: some View { + // Filter once per update; rows reuse the result instead of re-filtering. + let filtered = tracks.matchingLibrarySearch(searchText) if tracks.isEmpty { emptyStateView - } else if filteredTracks.isEmpty { + } else if filtered.isEmpty { VStack(spacing: 8) { Spacer() Text("NO MATCHING TRACKS") @@ -286,7 +271,7 @@ struct LibraryView: View { } .frame(maxWidth: .infinity) } else { - tracksScrollView + tracksScrollView(filtered) } } @@ -307,19 +292,23 @@ struct LibraryView: View { .frame(maxWidth: .infinity) } - private var tracksScrollView: some View { - ScrollView { + private func tracksScrollView(_ filtered: [TrackModel]) -> some View { + let total = filtered.count + let labels = Self.folderLabels(for: tracks.map { $0.originalURL.deletingLastPathComponent() }) + return ScrollView { LazyVStack(alignment: .leading, spacing: 6) { - ForEach(groupedTracks, id: \.folder) { group in - Text(group.folder.lastPathComponent.uppercased()) + ForEach(filtered.libraryFolderGroups(), id: \.folder) { group in + Text((labels[group.folder] ?? group.folder.lastPathComponent).uppercased()) .font(.system(size: 10, weight: .medium, design: .monospaced)) .foregroundStyle(theme.textSecondary) + .lineLimit(1) + .truncationMode(.head) .padding(.top, 12) .padding(.horizontal, 8) .help(group.folder.path) ForEach(Array(group.tracks.enumerated()), id: \.element.id) { index, track in let isCurrentMenuOpen = activeMenuTrackID == track.id - let zIndexValue: Double = isCurrentMenuOpen ? 1000.0 : Double(filteredTracks.count - index) + let zIndexValue: Double = isCurrentMenuOpen ? 1000.0 : Double(total - index) TrackRowView( track: track, isActive: engineManager.currentTrackID == track.id, diff --git a/Sources/Library/TrackModel.swift b/Sources/Library/TrackModel.swift index 79cd838..2d9ca54 100644 --- a/Sources/Library/TrackModel.swift +++ b/Sources/Library/TrackModel.swift @@ -26,6 +26,37 @@ public final class TrackModel { } } +// MARK: - Library order and search + +extension Array where Element == TrackModel { + /// Sidebar grouping: source folders in path order, each keeping the input + /// (newest-first) order. Next/Previous walk this same order. + func libraryFolderGroups() -> [(folder: URL, tracks: [TrackModel])] { + let groups = Dictionary(grouping: self) { $0.originalURL.deletingLastPathComponent() } + return groups.keys.sorted { $0.path.localizedStandardCompare($1.path) == .orderedAscending } + .map { (folder: $0, tracks: groups[$0] ?? []) } + } + + func libraryPlaybackOrder() -> [TrackModel] { + libraryFolderGroups().flatMap(\.tracks) + } + + /// Matches only what identifies a track to the user: its title, source file + /// name and folder. Stem file names and full paths are shared by every + /// track, so matching them made common words return the whole library. + func matchingLibrarySearch(_ text: String) -> [TrackModel] { + let query = text.trimmingCharacters(in: .whitespacesAndNewlines).lowercased() + guard !query.isEmpty else { return self } + let tokens = query.components(separatedBy: CharacterSet.alphanumerics.inverted).filter { !$0.isEmpty } + return filter { track in + let searchable = [track.title, track.originalURL.lastPathComponent, + track.originalURL.deletingLastPathComponent().lastPathComponent] + .joined(separator: " ").lowercased() + return searchable.contains(query) || (!tokens.isEmpty && tokens.allSatisfy { searchable.contains($0) }) + } + } +} + // MARK: - Library store /// Opens the on-disk library. Builds up to 1.2 used SwiftData's default From b22987a2bddd0c645396e54f5972ec43e7afbc06 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:15:51 -0500 Subject: [PATCH 14/89] fix(ui): keep Escape and deletion from interrupting a separation - CANCEL IMPORT owned Escape even while About or Settings was drawn over the progress screen, so pressing Esc to close About discarded minutes of separation. While another card covers it, the cancel button is disabled and has no shortcut; Escape closes that card instead. - About now closes with Escape like the other cards. - A separation started from a media key closes an open delete card, and deletion is refused while a separation runs, so the track being rebuilt cannot be removed underneath it. - Hiding the sidebar closes an open inline track menu, whose invisible click catcher otherwise swallowed the next click on the player. - Renamed titles are capped at 200 characters, and the delete card truncates the title so its buttons can't be pushed off screen. Co-Authored-By: Claude Opus 5.5 --- Sources/App/IsolateApp.swift | 71 +++++++++++++++++++++++++++++------- 1 file changed, 57 insertions(+), 14 deletions(-) diff --git a/Sources/App/IsolateApp.swift b/Sources/App/IsolateApp.swift index 5ae7278..1f63218 100644 --- a/Sources/App/IsolateApp.swift +++ b/Sources/App/IsolateApp.swift @@ -140,9 +140,16 @@ final class IsolateAppDelegate: NSObject, NSApplicationDelegate { } struct SplittingProgressModal: View { + /// True while About or Settings is drawn on top. Escape then closes that + /// card and must never reach CANCEL IMPORT underneath. + var isCovered = false @Environment(AudioEngineManager.self) private var engineManager @State private var theme = ThemeManager.shared + static func cancelShortcut(isCovered: Bool) -> KeyboardShortcut? { + isCovered ? nil : .cancelAction + } + var body: some View { ZStack { theme.modalBackdrop @@ -172,8 +179,8 @@ struct SplittingProgressModal: View { Button(engineManager.lastImportCancelled ? "CANCELLING…" : "CANCEL IMPORT") { engineManager.cancelSplitAudio() } - .keyboardShortcut(.cancelAction) - .disabled(engineManager.lastImportCancelled) + .keyboardShortcut(Self.cancelShortcut(isCovered: isCovered)) + .disabled(engineManager.lastImportCancelled || isCovered) .tint(.red) } .padding(36) @@ -263,7 +270,7 @@ struct ContentView: View { .frame(maxWidth: .infinity, maxHeight: .infinity) .overlay { // Tap anywhere in PlayerView to dismiss active 3-dots library menu - if activeMenuTrackID != nil { + if isSidebarVisible && activeMenuTrackID != nil { Color.black.opacity(0.001) .contentShape(Rectangle()) .onTapGesture { @@ -292,9 +299,21 @@ struct ContentView: View { } } } + .onChange(of: engineManager.isSplitting) { _, splitting in + // Media keys can start a recovery separation while a delete card is + // open; deleting that track mid-separation would orphan its stems. + if splitting { + isShowingDeleteModal = false + trackToDelete = nil + activeMenuTrackID = nil + } + } + .onChange(of: isSidebarVisible) { _, visible in + if !visible { activeMenuTrackID = nil } + } .overlay { if engineManager.isSplitting { - SplittingProgressModal() + SplittingProgressModal(isCovered: isShowingAboutModal || isShowingSettingsModal || isShowingDeleteModal) } else if isTargeted { Text("DROP AUDIO TO IMPORT") .font(.custom("DotGothic16-Regular", size: 24)) @@ -361,6 +380,10 @@ struct ContentView: View { engineManager.showError("Wait for the export to finish before deleting this track.") return } + guard !engineManager.isSplitting else { + engineManager.showError("Wait for separation to finish before deleting this track.") + return + } let wasActive = engineManager.currentTrackID == track.id let stemDir = track.vocalStemURL.deletingLastPathComponent() let sharedCache = tracks.contains { $0.id != track.id && $0.vocalStemURL.deletingLastPathComponent() == stemDir } @@ -636,6 +659,7 @@ struct AboutModalCard: View { .contentShape(Rectangle()) } .buttonStyle(.plain) + .keyboardShortcut(.cancelAction) .onHover { hovering in if hovering && !isCloseHovered { Haptics.playClick() } isCloseHovered = hovering @@ -765,6 +789,16 @@ struct RenameModalCard: View { @State private var isSaveHovered = false @FocusState private var isTitleFocused: Bool + /// Long enough for any real title; a pasted paragraph would otherwise push + /// the delete confirmation's buttons off screen. + static let maxTitleLength = 200 + + static func sanitizedTitle(_ text: String) -> String? { + let title = String(text.trimmingCharacters(in: .whitespacesAndNewlines).prefix(maxTitleLength)) + .trimmingCharacters(in: .whitespacesAndNewlines) + return title.isEmpty ? nil : title + } + var body: some View { VStack(spacing: 22) { Text("RENAME TRACK") @@ -780,6 +814,9 @@ struct RenameModalCard: View { .background(theme.surface) .overlay(RoundedRectangle(cornerRadius: 4).stroke(Color.red, lineWidth: 1).allowsHitTesting(false)) .foregroundColor(theme.textPrimary) + .onChange(of: renameText) { _, text in + if text.count > Self.maxTitleLength { renameText = String(text.prefix(Self.maxTitleLength)) } + } HStack(spacing: 16) { // Cancel Button @@ -806,9 +843,8 @@ struct RenameModalCard: View { // Save Button Button(action: { Haptics.playClick() - let trimmed = renameText.trimmingCharacters(in: .whitespacesAndNewlines) - if !trimmed.isEmpty { - onSave(trimmed) + if let title = Self.sanitizedTitle(renameText) { + onSave(title) } else { onCancel() } @@ -856,13 +892,20 @@ struct DeleteModalCard: View { .font(.custom("DotGothic16-Regular", size: 22)) .foregroundColor(.red) - Text("Are you sure you want to delete '\(trackTitle)' and its isolated stems?") - .font(.custom("DotGothic16-Regular", size: 14)) - .foregroundColor(theme.textSecondary) - .multilineTextAlignment(.center) - .lineSpacing(4) - .fixedSize(horizontal: false, vertical: true) - .padding(.horizontal, 8) + VStack(spacing: 4) { + Text("Are you sure you want to delete") + Text("'\(trackTitle)'") + .lineLimit(2) + .truncationMode(.middle) + Text("and its isolated stems?") + } + .font(.custom("DotGothic16-Regular", size: 14)) + .foregroundColor(theme.textSecondary) + .multilineTextAlignment(.center) + .lineSpacing(4) + .fixedSize(horizontal: false, vertical: true) + .padding(.horizontal, 8) + .accessibilityElement(children: .combine) HStack(spacing: 16) { // Cancel Button From 1b8ae6d9b9f87e7ab8a38b31dffb4b48745c1f56 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:16:08 -0500 Subject: [PATCH 15/89] fix(install): offer the move for translocated downloads and never overwrite silently - A quarantined app opened from a downloaded DMG runs from a randomized AppTranslocation path, so the /Volumes/ check never matched and the move prompt never appeared for the real distribution path. The original location is resolved first, and only read-only volumes (disk images) count, so apps kept on a writable external drive are left alone. - MOVE & RELAUNCH replaced any /Applications/Isolate.app without asking. An existing copy now needs a second, explicit REPLACE & RELAUNCH click and is moved to the Trash rather than deleted; an app with a different bundle identifier is never touched. The new copy is staged first, so a failed copy leaves the installed app alone. - The installed copy drops the download's quarantine flag, as a copy made by Finder would, so it is not translocated again on every launch. - The prompt no longer promises to eject the installer, and NOT NOW or a backdrop click only dismisses it for this launch. Co-Authored-By: Claude Opus 5.5 --- Sources/App/AppMoveHelper.swift | 111 ++++++++++++++++++++++++++------ Sources/App/IsolateApp.swift | 25 ++++--- 2 files changed, 110 insertions(+), 26 deletions(-) diff --git a/Sources/App/AppMoveHelper.swift b/Sources/App/AppMoveHelper.swift index 15beed6..fe3fefe 100644 --- a/Sources/App/AppMoveHelper.swift +++ b/Sources/App/AppMoveHelper.swift @@ -8,26 +8,55 @@ public final class AppMoveHelper: ObservableObject { @Published public var shouldShowMoveModal = false @Published public var isMoving = false @Published public var moveErrorMessage: String? = nil + /// Set when Applications already holds Isolate; replacing it needs a second click. + @Published public var replacementPrompt: String? = nil + + static let installURL = URL(filePath: "/Applications/Isolate.app") + + enum MoveError: LocalizedError { + case destinationExists + var errorDescription: String? { "Isolate is already in Applications." } + } private init() {} + /// Where the user opened the app. Gatekeeper runs a quarantined app opened + /// from a downloaded disk image from a randomized read-only + /// AppTranslocation path, which never starts with /Volumes/. + nonisolated static func originalURL(of bundleURL: URL) -> URL { + guard bundleURL.path.contains("/AppTranslocation/"), + let security = dlopen("/System/Library/Frameworks/Security.framework/Security", RTLD_LAZY), + let symbol = dlsym(security, "SecTranslocateCreateOriginalPathForURL") else { return bundleURL } + typealias CreateOriginalPath = @convention(c) (CFURL, UnsafeMutablePointer?>?) -> Unmanaged? + let createOriginalPath = unsafeBitCast(symbol, to: CreateOriginalPath.self) + guard let original = createOriginalPath(bundleURL as CFURL, nil)?.takeRetainedValue() else { return bundleURL } + return original as URL + } + + /// A mounted read-only volume, as a disk image is; an app a user keeps on + /// a writable external drive is left alone. + nonisolated static func isDiskImageLocation(_ url: URL) -> Bool { + guard url.path.hasPrefix("/Volumes/") else { return false } + return (try? url.resourceValues(forKeys: [.volumeIsReadOnlyKey]))?.volumeIsReadOnly ?? true + } + public var isRunningFromApplications: Bool { - let bundlePath = Bundle.main.bundlePath + let bundlePath = Self.originalURL(of: Bundle.main.bundleURL).path return bundlePath.hasPrefix("/Applications/") || bundlePath.hasPrefix(NSHomeDirectory() + "/Applications/") } public var isRunningFromDiskImage: Bool { - let bundlePath = Bundle.main.bundlePath - return bundlePath.hasPrefix("/Volumes/") + Self.isDiskImageLocation(Self.originalURL(of: Bundle.main.bundleURL)) } public func checkLocationOnStartup() { #if !DEBUG + // Earlier builds stored a permanent decline; "not now" is per launch. if AppPreferences.defaults.bool(forKey: "hasDeclinedMoveToApplications") { return } - // ONLY prompt if the user is running the app directly off a mounted disk image volume (/Volumes/...) + // ONLY prompt when running from a disk image, including a translocated one. if isRunningFromDiskImage && !isRunningFromApplications { DispatchQueue.main.asyncAfter(deadline: .now() + 1.0) { self.shouldShowMoveModal = true @@ -36,26 +65,38 @@ public final class AppMoveHelper: ObservableObject { #endif } - public func moveToApplications() { + public func dismissMoveModal() { + shouldShowMoveModal = false + replacementPrompt = nil + moveErrorMessage = nil + } + + /// Bundle identifier and version of an installed app, read without Bundle's cache. + nonisolated static func installedInfo(at url: URL) -> (identifier: String?, version: String?)? { + guard let plist = NSDictionary(contentsOf: url.appending(path: "Contents/Info.plist")) else { return nil } + return (plist["CFBundleIdentifier"] as? String, plist["CFBundleShortVersionString"] as? String) + } + + public func moveToApplications(replacingExisting: Bool = false) { guard !isMoving else { return } - isMoving = true moveErrorMessage = nil let source = Bundle.main.bundleURL - let destination = URL(filePath: "/Applications/Isolate.app") + let destination = Self.installURL + if !replacingExisting, FileManager.default.fileExists(atPath: destination.path) { + let installed = Self.installedInfo(at: destination) + guard installed?.identifier == Bundle.main.bundleIdentifier else { + moveErrorMessage = "A different app named Isolate is already in Applications. Drag Isolate into Applications in Finder to choose which to keep." + return + } + let version = installed?.version.map { " \($0)" } ?? "" + replacementPrompt = "Isolate\(version) is already in Applications. Replace it? The installed copy will be moved to the Trash." + return + } + isMoving = true Task { do { try await Task.detached(priority: .userInitiated) { - let fm = FileManager.default - let staging = destination.deletingLastPathComponent() - .appending(path: ".Isolate-install-\(UUID().uuidString).app") - defer { try? fm.removeItem(at: staging) } - // Finish copying before replacing an existing installation. - try fm.copyItem(at: source, to: staging) - if fm.fileExists(atPath: destination.path) { - _ = try fm.replaceItemAt(destination, withItemAt: staging) - } else { - try fm.moveItem(at: staging, to: destination) - } + try Self.install(from: source, to: destination, replacingExisting: replacingExisting) }.value let configuration = NSWorkspace.OpenConfiguration() configuration.createsNewApplicationInstance = true @@ -64,8 +105,42 @@ public final class AppMoveHelper: ObservableObject { NSApp.terminate(nil) } catch { isMoving = false + replacementPrompt = nil moveErrorMessage = "Could not install or open Isolate. \(error.localizedDescription) You can also drag Isolate into Applications in Finder." } } } + + /// Copies the app next to `destination` first, so a failed copy never + /// touches an existing installation. An existing app is only retired (moved + /// to the Trash by default) when the user confirmed replacing it. + nonisolated static func install(from source: URL, to destination: URL, replacingExisting: Bool, + retire: (URL) throws -> Void = { try FileManager.default.trashItem(at: $0, resultingItemURL: nil) }) throws { + let fm = FileManager.default + let staging = destination.deletingLastPathComponent() + .appending(path: ".Isolate-install-\(UUID().uuidString).app") + defer { try? fm.removeItem(at: staging) } + try fm.copyItem(at: source, to: staging) + removeQuarantine(from: staging) + if fm.fileExists(atPath: destination.path) { + guard replacingExisting else { throw MoveError.destinationExists } + try retire(destination) + } + try fm.moveItem(at: staging, to: destination) + } + + /// The user already opened this copy. A copy made by the app, unlike one + /// dragged in Finder, keeps the download's quarantine flag and would be + /// translocated again on every launch from Applications. + nonisolated static func removeQuarantine(from bundle: URL) { + var paths = [bundle.path] + if let enumerator = FileManager.default.enumerator(atPath: bundle.path) { + while let relative = enumerator.nextObject() as? String { + paths.append(bundle.appending(path: relative).path) + } + } + for path in paths { + removexattr(path, "com.apple.quarantine", XATTR_NOFOLLOW) + } + } } diff --git a/Sources/App/IsolateApp.swift b/Sources/App/IsolateApp.swift index 1f63218..e960d8a 100644 --- a/Sources/App/IsolateApp.swift +++ b/Sources/App/IsolateApp.swift @@ -435,19 +435,19 @@ struct ContentView: View { } } else if appMoveHelper.shouldShowMoveModal && !engineManager.isSplitting { // MARK: - Window-Centered Move to Applications Prompt + // Dismissing only lasts for this launch; the prompt appears only + // while running from a disk image, where asking again is correct. ZStack { theme.modalBackdrop .ignoresSafeArea() .onTapGesture { - AppPreferences.defaults.set(true, forKey: "hasDeclinedMoveToApplications") - appMoveHelper.shouldShowMoveModal = false + appMoveHelper.dismissMoveModal() } MoveToApplicationsModalCard( appMoveHelper: appMoveHelper, onDismiss: { - AppPreferences.defaults.set(true, forKey: "hasDeclinedMoveToApplications") - appMoveHelper.shouldShowMoveModal = false + appMoveHelper.dismissMoveModal() } ) } @@ -697,13 +697,21 @@ struct MoveToApplicationsModalCard: View { .foregroundColor(theme.textPrimary) } - Text("Isolate works best when installed in your Applications folder.\nWould you like to move it now and eject the installer?") + Text("Isolate works best when installed in your Applications folder.\nWould you like to move it there and relaunch?") .font(.custom("DotGothic16-Regular", size: 13)) .foregroundColor(theme.textSecondary) .multilineTextAlignment(.center) .lineSpacing(4) .fixedSize(horizontal: false, vertical: true) + if let prompt = appMoveHelper.replacementPrompt { + Text(prompt) + .font(.custom("DotGothic16-Regular", size: 12)) + .foregroundColor(theme.textPrimary) + .multilineTextAlignment(.center) + .fixedSize(horizontal: false, vertical: true) + } + if let error = appMoveHelper.moveErrorMessage { Text(error) .font(.custom("DotGothic16-Regular", size: 11)) @@ -739,7 +747,8 @@ struct MoveToApplicationsModalCard: View { // Move Button Button(action: { Haptics.playClick() - appMoveHelper.moveToApplications() + // A second click after the prompt confirms replacing the installed copy. + appMoveHelper.moveToApplications(replacingExisting: appMoveHelper.replacementPrompt != nil) }) { HStack(spacing: 6) { if appMoveHelper.isMoving { @@ -748,12 +757,12 @@ struct MoveToApplicationsModalCard: View { } else { Image(systemName: "arrow.right.circle.fill") } - Text(appMoveHelper.isMoving ? "INSTALLING..." : "MOVE & RELAUNCH") + Text(appMoveHelper.isMoving ? "INSTALLING..." : (appMoveHelper.replacementPrompt == nil ? "MOVE & RELAUNCH" : "REPLACE & RELAUNCH")) .font(.custom("DotGothic16-Regular", size: 13)) .fontWeight(.bold) } .foregroundColor(isInstallHovered ? .black : .white) - .frame(width: 180, height: 36) + .frame(width: 200, height: 36) .background(isInstallHovered ? Color.white : Color.red) .overlay( RoundedRectangle(cornerRadius: 3) From 9deec6d7730a4746a0344025be32c0f45e70b415 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:16:28 -0500 Subject: [PATCH 16/89] fix(design): theme tokens for library and modals, spoken errors, styled cancel - Red is kept for interrupt and active states only: the loaded track's indicator bar, destructive delete, error toast, drop target and separation progress, all through theme.accentRed (mode-aware, AA as text). IMPORT TRACK, the search focus ring, active-row title, bullets, scroller, About badge and bullets, and the neutral primary buttons (CLOSE, SAVE, MOVE & RELAUNCH) use text/surface tokens; foregrounds on red fills use onAccent. - Library empty and no-match text used Color.gray literals (down to 1.7:1 in light mode); they use textSecondary/textMuted. - Error toasts are announced to VoiceOver and fade instead of sliding when Reduce Motion is on; the decorative red glow is gone. - CANCEL IMPORT was a stock Aqua push button that ignored its red tint. It is now a plain DotGothic16 button in the destructive style, and the separation screen leads with the percentage. Co-Authored-By: Claude Opus 5.5 --- Sources/App/IsolateApp.swift | 107 +++++++++++++++++------------- Sources/Library/LibraryView.swift | 71 ++++++++++---------- 2 files changed, 97 insertions(+), 81 deletions(-) diff --git a/Sources/App/IsolateApp.swift b/Sources/App/IsolateApp.swift index e960d8a..cde24fa 100644 --- a/Sources/App/IsolateApp.swift +++ b/Sources/App/IsolateApp.swift @@ -151,37 +151,51 @@ struct SplittingProgressModal: View { } var body: some View { + let isCancelling = engineManager.lastImportCancelled ZStack { theme.modalBackdrop - VStack(spacing: 24) { - Text(engineManager.splitStatusMessage) - .font(.custom("DotGothic16-Regular", size: 22)) + VStack(spacing: 20) { + Text("\(Int(engineManager.splitProgress * 100))%") + .font(.custom("DotGothic16-Regular", size: 48)) .foregroundStyle(theme.textPrimary) + Text(engineManager.splitStatusMessage) + .font(.custom("DotGothic16-Regular", size: 14)) + .foregroundStyle(theme.textSecondary) .multilineTextAlignment(.center) ModalDotMatrixProgressBar(progress: engineManager.splitProgress) .frame(height: 10) .accessibilityLabel("Separation progress") .accessibilityValue("\(Int(engineManager.splitProgress * 100)) percent") HStack { - Text("\(Int(engineManager.splitProgress * 100))%") - Spacer() if engineManager.totalChunkCount > 0 { Text("\(engineManager.currentChunkNumber) / \(engineManager.totalChunkCount) CHUNKS") } Spacer() Text(engineManager.etaRemainingString) } - .font(.custom("DotGothic16-Regular", size: 16)) - .foregroundStyle(theme.textPrimary) + .font(.custom("DotGothic16-Regular", size: 11)) + .foregroundStyle(theme.textMuted) Text(engineManager.liveSpeedSubtitle) - .font(.custom("DotGothic16-Regular", size: 12)) - .foregroundStyle(theme.textSecondary) - Button(engineManager.lastImportCancelled ? "CANCELLING…" : "CANCEL IMPORT") { + .font(.custom("DotGothic16-Regular", size: 11)) + .foregroundStyle(theme.textMuted) + Button(action: { + Haptics.playClick() engineManager.cancelSplitAudio() + }) { + Text(isCancelling ? "CANCELLING…" : "CANCEL IMPORT") + .font(.custom("DotGothic16-Regular", size: 13)) + .fontWeight(.bold) + .foregroundStyle(isCancelling ? theme.textMuted : theme.accentRed) + .frame(width: 180, height: 36) + .overlay( + RoundedRectangle(cornerRadius: 3) + .stroke(isCancelling ? theme.border : theme.accentRed, lineWidth: 1) + ) + .contentShape(Rectangle()) } + .buttonStyle(.plain) .keyboardShortcut(Self.cancelShortcut(isCovered: isCovered)) - .disabled(engineManager.lastImportCancelled || isCovered) - .tint(.red) + .disabled(isCancelling || isCovered) } .padding(36) .frame(width: 580) @@ -208,7 +222,7 @@ struct ModalDotMatrixProgressBar: View { HStack(spacing: blockSpacing) { ForEach(0.. Self.maxTitleLength { renameText = String(text.prefix(Self.maxTitleLength)) } @@ -861,9 +876,9 @@ struct RenameModalCard: View { Text("SAVE") .font(.custom("DotGothic16-Regular", size: 13)) .fontWeight(.bold) - .foregroundColor(.black) + .foregroundColor(theme.surface) .frame(width: 110, height: 34) - .background(isSaveHovered ? Color.red.opacity(0.85) : Color.red) + .background(isSaveHovered ? theme.textSecondary : theme.textPrimary) .clipShape(RoundedRectangle(cornerRadius: 3)) .contentShape(Rectangle()) // Entire 110x34 area clickable! } @@ -899,7 +914,7 @@ struct DeleteModalCard: View { VStack(spacing: 20) { Text("DELETE TRACK?") .font(.custom("DotGothic16-Regular", size: 22)) - .foregroundColor(.red) + .foregroundColor(theme.accentRed) VStack(spacing: 4) { Text("Are you sure you want to delete") @@ -946,9 +961,9 @@ struct DeleteModalCard: View { Text("DELETE") .font(.custom("DotGothic16-Regular", size: 13)) .fontWeight(.bold) - .foregroundColor(.black) + .foregroundColor(theme.onAccent) .frame(width: 110, height: 34) - .background(isDeleteHovered ? Color.red.opacity(0.85) : Color.red) + .background(isDeleteHovered ? theme.accentRed.opacity(0.85) : theme.accentRed) .clipShape(RoundedRectangle(cornerRadius: 3)) .contentShape(Rectangle()) // Entire 110x34 area clickable! } @@ -1067,7 +1082,7 @@ struct ErrorToastCard: View { HStack(spacing: 8) { Image(systemName: "exclamationmark.triangle.fill") .font(.system(size: 13, weight: .bold)) - .foregroundColor(.red) + .foregroundColor(theme.accentRed) Text(message) .font(.custom("DotGothic16-Regular", size: 12)) @@ -1098,8 +1113,8 @@ struct ErrorToastCard: View { .padding(.vertical, 8) .background(theme.modalBackground) .compositingGroup() - .border(Color.red.opacity(0.8), width: 1) + .border(theme.accentRed, width: 1) .overlay(CornerBrackets()) - .shadow(color: Color.red.opacity(0.3), radius: 14, x: 0, y: 4) + .shadow(color: Color.black.opacity(theme.isDark ? 0.6 : 0.15), radius: 12, x: 0, y: 4) } } diff --git a/Sources/Library/LibraryView.swift b/Sources/Library/LibraryView.swift index 97ed5bb..fc20d26 100644 --- a/Sources/Library/LibraryView.swift +++ b/Sources/Library/LibraryView.swift @@ -188,7 +188,7 @@ struct LibraryView: View { Text("IMPORT TRACK") } .font(.custom("DotGothic16-Regular", size: 14)) - .foregroundColor(.red) + .foregroundColor(theme.textPrimary) .padding(.vertical, 4) .padding(.horizontal, 6) .contentShape(Rectangle()) @@ -205,7 +205,7 @@ struct LibraryView: View { HStack(spacing: 6) { Image(systemName: "magnifyingglass") .font(.system(size: 11)) - .foregroundColor(isSearchFocused ? .red : theme.textSecondary) + .foregroundColor(isSearchFocused ? theme.textPrimary : theme.textSecondary) TextField("SEARCH LIBRARY...", text: $searchText) .accessibilityLabel("Search library") @@ -244,7 +244,7 @@ struct LibraryView: View { .background(isSearchFocused ? theme.surfaceHover : theme.surfaceSecondary) .overlay( RoundedRectangle(cornerRadius: 3) - .stroke(isSearchFocused ? Color.red.opacity(0.8) : theme.cardBorder, lineWidth: 1) + .stroke(isSearchFocused ? theme.textPrimary : theme.cardBorder, lineWidth: 1) ) .contentShape(Rectangle()) .onTapGesture { @@ -266,7 +266,7 @@ struct LibraryView: View { Spacer() Text("NO MATCHING TRACKS") .font(.custom("DotGothic16-Regular", size: 12)) - .foregroundColor(.gray) + .foregroundColor(theme.textSecondary) Spacer() } .frame(maxWidth: .infinity) @@ -280,13 +280,13 @@ struct LibraryView: View { Spacer() Image(systemName: "music.note.list") .font(.system(size: 32)) - .foregroundColor(.gray.opacity(0.5)) + .foregroundColor(theme.textMuted) Text("NO TRACKS IMPORTED") .font(.custom("DotGothic16-Regular", size: 13)) - .foregroundColor(.gray) + .foregroundColor(theme.textSecondary) Text("Drag & drop audio files here") .font(.custom("DotGothic16-Regular", size: 11)) - .foregroundColor(.gray.opacity(0.7)) + .foregroundColor(theme.textSecondary) Spacer() } .frame(maxWidth: .infinity) @@ -389,7 +389,7 @@ struct LibraryView: View { if totalOriginalBytes > 0 { Text("•") .font(.custom("DotGothic16-Regular", size: 9)) - .foregroundColor(.red) + .foregroundColor(theme.textMuted) Text(formattedTotalSize) .font(.custom("DotGothic16-Regular", size: 10.5)) @@ -399,7 +399,7 @@ struct LibraryView: View { if totalDurationSeconds > 0 { Text("•") .font(.custom("DotGothic16-Regular", size: 9)) - .foregroundColor(.red) + .foregroundColor(theme.textMuted) Text(formattedTotalDuration) .font(.custom("DotGothic16-Regular", size: 10.5)) @@ -463,9 +463,7 @@ struct TrackRowView: View { @State private var isDeleteHovered = false private var dotColor: Color { - if isMenuOpen { - return Color.red - } else if isHovered { + if isMenuOpen || isHovered { return theme.textPrimary } else { return theme.textSecondary @@ -489,19 +487,29 @@ struct TrackRowView: View { .padding(.horizontal, 8) .padding(.vertical, 6) .background( - isMenuOpen + isMenuOpen || isActive ? theme.surfaceSecondary - : (isActive ? Color.red.opacity(0.12) : (isHovered ? theme.surfaceHover : Color.clear)) + : (isHovered ? theme.surfaceHover : Color.clear) ) .overlay( RoundedRectangle(cornerRadius: 3) .stroke( isMenuOpen || isActive - ? Color.red.opacity(0.8) + ? theme.border : (isHovered ? theme.cardBorder : Color.clear), lineWidth: 1 ) ) + // The loaded track's indicator bar is the row's only red. + .overlay(alignment: .leading) { + if isActive && !isMenuOpen { + Rectangle() + .fill(theme.accentRed) + .frame(width: 3) + .padding(.vertical, 4) + .allowsHitTesting(false) + } + } .contentShape(Rectangle()) .onHover { hovering in if !isMenuOpen { @@ -525,20 +533,12 @@ struct TrackRowView: View { VStack(alignment: .leading, spacing: 4) { Text(track.title) .font(.custom("DotGothic16-Regular", size: 15)) - .foregroundColor(isActive ? .red : theme.textPrimary) + .foregroundColor(theme.textPrimary) .lineLimit(1) - HStack(spacing: 8) { - Text(track.dateAdded, style: .date) - .font(.custom("DotGothic16-Regular", size: 11)) - .foregroundColor(theme.textSecondary) - - if isActive { - Circle() - .fill(Color.red) - .frame(width: 4, height: 4) - } - } + Text(track.dateAdded, style: .date) + .font(.custom("DotGothic16-Regular", size: 11)) + .foregroundColor(theme.textSecondary) } .frame(maxWidth: .infinity, alignment: .leading) .contentShape(Rectangle()) @@ -559,11 +559,11 @@ struct TrackRowView: View { Circle().fill(dotColor).frame(width: 3, height: 3) } .frame(width: 24, height: 24) - .background(isMenuOpen ? Color.red.opacity(0.18) : (isHovered ? theme.surfaceHover : Color.clear)) + .background(isMenuOpen || isHovered ? theme.surfaceHover : Color.clear) .clipShape(RoundedRectangle(cornerRadius: 3)) .overlay( RoundedRectangle(cornerRadius: 3) - .stroke(isMenuOpen ? Color.red : (isHovered ? theme.border : Color.clear), lineWidth: 1) + .stroke(isMenuOpen ? theme.textPrimary : (isHovered ? theme.border : Color.clear), lineWidth: 1) ) .contentShape(Rectangle()) } @@ -603,10 +603,10 @@ struct TrackRowView: View { .font(.custom("DotGothic16-Regular", size: 12)) .fontWeight(.bold) } - .foregroundColor(isDeleteHovered ? .black : .red) + .foregroundColor(isDeleteHovered ? theme.onAccent : theme.accentRed) .padding(.horizontal, 8) .padding(.vertical, 5) - .background(isDeleteHovered ? Color.red : Color.red.opacity(0.18)) + .background(isDeleteHovered ? theme.accentRed : theme.accentRed.opacity(0.12)) .clipShape(RoundedRectangle(cornerRadius: 3)) } .buttonStyle(.plain) @@ -634,7 +634,7 @@ struct TrackRowView: View { } } -// MARK: - Native AppKit Nothing OS Hardware Red LED Scroller +// MARK: - Native AppKit Nothing OS Hardware Scroller public final class NothingScroller: NSScroller { public override class var isCompatibleWithOverlayScrollers: Bool { return true @@ -684,10 +684,11 @@ public final class NothingScroller: NSScroller { height: thumbHeight ) - // Crisp rectangular Nothing Hardware Red LED (0px corner radius) + // Crisp rectangular thumb (0px corner radius); neutral, since scrolling + // is not an interrupt state. context.addRect(thumbRect) - context.setFillColor(CGColor(red: 1.0, green: 0.15, blue: 0.15, alpha: 0.95)) - context.setShadow(offset: .zero, blur: 4.0, color: CGColor(red: 1.0, green: 0.0, blue: 0.0, alpha: 0.6)) + let isDark = ThemeManager.shared.isDark + context.setFillColor(isDark ? CGColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 0.55) : CGColor(red: 0.0, green: 0.0, blue: 0.0, alpha: 0.45)) context.fillPath() context.restoreGState() From 877e450bbf22b214e9fc48dc9c7e311df368008e Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:17:37 -0500 Subject: [PATCH 17/89] test: cover the shell fixes with hosted regression tests Library store (legacy import from a copied default.store that stays untouched, another app's store left byte-for-byte, backup and recovery of an unreadable store, visible in-memory fallback), search and sidebar order, folder headers, rename bound, Now Playing title cleanup, artwork reuse and progress republishing, quit confirmation, Escape ownership, main-window targeting, window tabbing, status item VoiceOver name, and the move-to-Applications install and translocation checks. All tests use temporary directories and in-memory or temporary SwiftData stores. Co-Authored-By: Claude Opus 5.5 --- Tests/IsolateTests/ShellFixTests.swift | 395 +++++++++++++++++++++++++ 1 file changed, 395 insertions(+) create mode 100644 Tests/IsolateTests/ShellFixTests.swift diff --git a/Tests/IsolateTests/ShellFixTests.swift b/Tests/IsolateTests/ShellFixTests.swift new file mode 100644 index 0000000..1aabe05 --- /dev/null +++ b/Tests/IsolateTests/ShellFixTests.swift @@ -0,0 +1,395 @@ +import XCTest +import AppKit +import CryptoKit +import MediaPlayer +import SQLite3 +import SwiftData +import SwiftUI +@testable import Isolate + +/// Stands in for another unsandboxed app's entity sharing default.store. +@Model +final class SharedStoreForeignModel { + var endpoint: String + init(endpoint: String) { self.endpoint = endpoint } +} + +@MainActor +final class ShellFixTests: XCTestCase { + private var directory: URL! + + override func setUpWithError() throws { + directory = FileManager.default.temporaryDirectory.appending(path: "ShellFixTests-\(UUID().uuidString)") + try FileManager.default.createDirectory(at: directory, withIntermediateDirectories: true) + } + + override func tearDownWithError() throws { + // Undo any permission change a test made so the folder can be removed. + if let enumerator = FileManager.default.enumerator(atPath: directory.path) { + while let relative = enumerator.nextObject() as? String { + try? FileManager.default.setAttributes([.posixPermissions: 0o755], + ofItemAtPath: directory.appending(path: relative).path) + } + } + try FileManager.default.removeItem(at: directory) + } + + private func track(_ id: String, title: String, folder: String, added: Date = .now) -> TrackModel { + let original = directory.appending(path: "Music/\(folder)/\(id).wav") + let stems = directory.appending(path: "Stems/\(id)") + return TrackModel(id: original.path, title: title, originalURL: original, dateAdded: added, + vocalStemURL: stems.appending(path: "vocals.wav"), bassStemURL: stems.appending(path: "bass.wav"), + drumStemURL: stems.appending(path: "drums.wav"), otherStemURL: stems.appending(path: "other.wav")) + } + + private func digest(_ url: URL) throws -> String { + SHA256.hash(data: try Data(contentsOf: url)).map { String(format: "%02x", $0) }.joined() + } + + private func sqliteRowCount(_ url: URL, table: String) -> Int? { + var db: OpaquePointer? + defer { sqlite3_close(db) } + guard sqlite3_open_v2(url.path, &db, SQLITE_OPEN_READONLY, nil) == SQLITE_OK else { return nil } + var statement: OpaquePointer? + defer { sqlite3_finalize(statement) } + guard sqlite3_prepare_v2(db, "SELECT COUNT(*) FROM \(table)", -1, &statement, nil) == SQLITE_OK, + sqlite3_step(statement) == SQLITE_ROW else { return nil } + return Int(sqlite3_column_int64(statement, 0)) + } + + // MARK: - Library store (library-1, library-2) + + func testLibraryUsesItsOwnStoreInsteadOfSharedDefaultStore() { + XCTAssertEqual(LibraryStore.legacyStoreURL.standardizedFileURL, ModelConfiguration().url.standardizedFileURL, + "The legacy location must be where SwiftData's default configuration kept the library") + XCTAssertNotEqual(LibraryStore.storeURL, LibraryStore.legacyStoreURL) + XCTAssertEqual(LibraryStore.storeURL.deletingLastPathComponent().lastPathComponent, "Isolate") + } + + func testLegacyImportReadsCopyAndNeverMigratesSharedStore() throws { + let legacy = directory.appending(path: "Shared/default.store") + try FileManager.default.createDirectory(at: legacy.deletingLastPathComponent(), withIntermediateDirectories: true) + // The writer stays open, so the rows are still only in the -wal file. + let writer = try ModelContainer(for: TrackModel.self, SharedStoreForeignModel.self, + configurations: ModelConfiguration(url: legacy)) + let old = Date(timeIntervalSinceReferenceDate: 700_000_000) + writer.mainContext.insert(track("a", title: "Legacy A", folder: "A", added: old)) + writer.mainContext.insert(track("b", title: "Legacy B", folder: "B", added: old)) + writer.mainContext.insert(SharedStoreForeignModel(endpoint: "https://example.com")) + try writer.mainContext.save() + XCTAssertTrue(FileManager.default.fileExists(atPath: legacy.path + "-wal")) + + let opened = LibraryStore.open(at: directory.appending(path: "Isolate/Library.store")) + XCTAssertNil(opened.notice) + let context = opened.container.mainContext + let existing = track("a", title: "Renamed in new library", folder: "A") + context.insert(existing) + try context.save() + + let scratch = directory.appending(path: "Scratch") + try FileManager.default.createDirectory(at: scratch, withIntermediateDirectories: true) + XCTAssertEqual(try LibraryStore.importLegacyLibrary(from: legacy, into: context, scratchDirectory: scratch), .imported(1)) + XCTAssertEqual(try FileManager.default.contentsOfDirectory(atPath: scratch.path), [], "The copy must be removed") + + let tracks = try context.fetch(FetchDescriptor(sortBy: [SortDescriptor(\.title)])) + XCTAssertEqual(tracks.map(\.title), ["Legacy B", "Renamed in new library"], + "Rows already in the new library keep their newer values") + let imported = try XCTUnwrap(tracks.first) + let expected = track("b", title: "Legacy B", folder: "B") + XCTAssertEqual(imported.id, expected.id) + XCTAssertEqual(imported.originalURL, expected.originalURL) + XCTAssertEqual(imported.vocalStemURL, expected.vocalStemURL) + XCTAssertEqual(imported.drumStemURL, expected.drumStemURL) + XCTAssertEqual(imported.dateAdded, old) + + // The shared store still holds the other app's table and every row. + XCTAssertEqual(sqliteRowCount(legacy, table: "ZSHAREDSTOREFOREIGNMODEL"), 1) + XCTAssertEqual(sqliteRowCount(legacy, table: "ZTRACKMODEL"), 2) + XCTAssertEqual(try LibraryStore.importLegacyLibrary(from: legacy, into: context, scratchDirectory: scratch), .imported(0)) + _ = writer + } + + func testLegacyImportLeavesAnotherAppsStoreByteForByte() throws { + let legacy = directory.appending(path: "default.store") + var db: OpaquePointer? + XCTAssertEqual(sqlite3_open(legacy.path, &db), SQLITE_OK) + defer { sqlite3_close(db) } + for sql in ["PRAGMA journal_mode=WAL", + "CREATE TABLE ZAPIREQUESTMODEL (Z_PK INTEGER PRIMARY KEY, ZURL VARCHAR)", + "INSERT INTO ZAPIREQUESTMODEL (ZURL) VALUES ('https://example.com')"] { + XCTAssertEqual(sqlite3_exec(db, sql, nil, nil, nil), SQLITE_OK, sql) + } + let files = try FileManager.default.contentsOfDirectory(atPath: directory.path).sorted() + XCTAssertTrue(files.contains("default.store-wal")) + let before = try files.map { try digest(directory.appending(path: $0)) } + + let memory = try ModelContainer(for: TrackModel.self, configurations: ModelConfiguration(isStoredInMemoryOnly: true)) + let scratch = directory.appending(path: "Scratch") + XCTAssertEqual(try LibraryStore.importLegacyLibrary(from: legacy, into: memory.mainContext, scratchDirectory: scratch), + .noLegacyLibrary) + + let after = try FileManager.default.contentsOfDirectory(atPath: directory.path).filter { $0 != "Scratch" }.sorted() + XCTAssertEqual(after, files) + XCTAssertEqual(try after.map { try digest(directory.appending(path: $0)) }, before) + XCTAssertEqual(try memory.mainContext.fetchCount(FetchDescriptor()), 0) + XCTAssertEqual(try LibraryStore.importLegacyLibrary(from: directory.appending(path: "missing.store"), + into: memory.mainContext, scratchDirectory: scratch), .noLegacyLibrary) + } + + func testUnreadableLibraryIsMovedToBackupAndReplaced() throws { + let store = directory.appending(path: "Isolate/Library.store") + try FileManager.default.createDirectory(at: store.deletingLastPathComponent(), withIntermediateDirectories: true) + let garbage = Data((0..<8192).map { UInt8(truncatingIfNeeded: $0 &* 31 &+ 7) }) + try garbage.write(to: store) + try Data([1, 2, 3]).write(to: URL(fileURLWithPath: store.path + "-wal")) + + let opened = LibraryStore.open(at: store, now: Date(timeIntervalSince1970: 1_800_000_000)) + let notice = try XCTUnwrap(opened.notice, "Recovery must be reported to the user") + XCTAssertTrue(notice.contains("Library Backups"), notice) + XCTAssertFalse(opened.container.configurations.contains { $0.isStoredInMemoryOnly }, + "A new on-disk library must replace the unreadable one, not an in-memory store") + + let backups = try FileManager.default.contentsOfDirectory( + at: store.deletingLastPathComponent().appending(path: "Library Backups"), includingPropertiesForKeys: nil) + let backup = try XCTUnwrap(backups.first) + XCTAssertEqual(backups.count, 1) + XCTAssertEqual(try Data(contentsOf: backup.appending(path: "Library.store")), garbage) + XCTAssertEqual(try Data(contentsOf: backup.appending(path: "Library.store-wal")), Data([1, 2, 3])) + + opened.container.mainContext.insert(track("new", title: "After recovery", folder: "A")) + try opened.container.mainContext.save() + let reopened = try ModelContainer(for: TrackModel.self, configurations: ModelConfiguration(url: store)) + XCTAssertEqual(try reopened.mainContext.fetchCount(FetchDescriptor()), 1) + } + + func testLibraryThatCannotBeCreatedIsReportedNotSilentlyInMemory() throws { + let locked = directory.appending(path: "Locked") + try FileManager.default.createDirectory(at: locked, withIntermediateDirectories: true) + try FileManager.default.setAttributes([.posixPermissions: 0o555], ofItemAtPath: locked.path) + let opened = LibraryStore.open(at: locked.appending(path: "Isolate/Library.store")) + XCTAssertTrue(opened.container.configurations.allSatisfy { $0.isStoredInMemoryOnly }) + XCTAssertTrue(opened.notice?.contains("will not be saved") == true, opened.notice ?? "no notice") + } + + func testHealthyLibraryOpensWithoutNotice() throws { + let store = directory.appending(path: "Isolate/Library.store") + let opened = LibraryStore.open(at: store) + XCTAssertNil(opened.notice) + XCTAssertEqual(opened.container.configurations.first?.url.standardizedFileURL, store.standardizedFileURL) + XCTAssertFalse(FileManager.default.fileExists(atPath: directory.appending(path: "Isolate/Library Backups").path)) + } + + // MARK: - Search, order and headers (library-6, library-10, library-12) + + func testSearchMatchesTitleFileAndFolderButNotStemNamesOrPath() { + let library = [track("1", title: "Bass Down Low", folder: "Pop"), + track("2", title: "The Other Side", folder: "Pop"), + track("3", title: "Drummer Boy", folder: "Pop"), + track("4", title: "All of the Lights", folder: "Pop"), + track("5", title: "Runaway", folder: "Kanye")] + func titles(_ query: String) -> [String] { library.matchingLibrarySearch(query).map(\.title) } + XCTAssertEqual(titles("bass"), ["Bass Down Low"]) + XCTAssertEqual(titles("drum"), ["Drummer Boy"]) + XCTAssertEqual(titles("the other"), ["The Other Side"]) + XCTAssertEqual(titles("all"), ["All of the Lights"]) + XCTAssertEqual(titles("stems"), []) + XCTAssertEqual(titles("vocals"), []) + XCTAssertEqual(titles(directory.lastPathComponent.lowercased()), [], "Shared path segments must not match") + XCTAssertEqual(titles("kanye"), ["Runaway"], "The folder shown as the group header is searchable") + XCTAssertEqual(titles("lights of"), ["All of the Lights"]) + XCTAssertEqual(titles(" "), library.map(\.title)) + } + + func testNextAndPreviousFollowSidebarFolderOrder() { + let a1 = track("a1", title: "a1", folder: "A", added: Date(timeIntervalSince1970: 1)) + let b1 = track("b1", title: "b1", folder: "B", added: Date(timeIntervalSince1970: 2)) + let a2 = track("a2", title: "a2", folder: "A", added: Date(timeIntervalSince1970: 3)) + let queryOrder = [a2, b1, a1] // @Query: newest first + XCTAssertEqual(queryOrder.libraryFolderGroups().map { $0.folder.lastPathComponent }, ["A", "B"]) + XCTAssertEqual(queryOrder.libraryPlaybackOrder().map(\.title), ["a2", "a1", "b1"]) + + let engine = AudioEngineManager() + let manager = NowPlayingManager() + var selected: [String] = [] + manager.configure(engineManager: engine, playlistProvider: { queryOrder.libraryPlaybackOrder() }, + trackSelectHandler: { selected.append($0.title) }) + engine.currentTrackID = a2.id + manager.playNextTrack() + engine.currentTrackID = a1.id + manager.playNextTrack() + manager.playPreviousTrack() + XCTAssertEqual(selected, ["a1", "b1", "a2"], "Next goes to the row below, not the next import") + } + + func testFolderHeadersDisambiguateSameNamedFolders() { + let base = URL(filePath: "/Users/someone/Music") + let hitsA = base.appending(path: "Artist A/Greatest Hits") + let hitsB = base.appending(path: "Artist B/Greatest Hits") + let other = base.appending(path: "Artist A/Other") + let mixUpper = base.appending(path: "One/Mix") + let mixLower = base.appending(path: "Two/mix") + let labels = LibraryView.folderLabels(for: [hitsA, hitsB, other, hitsA, mixUpper, mixLower]) + XCTAssertEqual(labels[hitsA], "Artist A / Greatest Hits") + XCTAssertEqual(labels[hitsB], "Artist B / Greatest Hits") + XCTAssertEqual(labels[other], "Other") + XCTAssertEqual(labels[mixUpper], "One / Mix", "Headers are uppercased, so names differing by case collide") + XCTAssertEqual(labels[mixLower], "Two / mix") + } + + // MARK: - Rename bound (library-13) + + func testRenameTitleIsTrimmedAndBounded() { + XCTAssertEqual(RenameModalCard.sanitizedTitle(String(repeating: "a", count: 2_000))?.count, RenameModalCard.maxTitleLength) + XCTAssertEqual(RenameModalCard.sanitizedTitle(" My take "), "My take") + XCTAssertNil(RenameModalCard.sanitizedTitle(" \n ")) + } + + // MARK: - Now Playing (robustness-10, performance-9) + + func testNowPlayingKeepsNumbersThatArePartOfTheTitle() { + let manager = NowPlayingManager.shared + for title in ["7-Eleven", "22", "1-800-273-8255", "2-4-6-8 Motorway", "5-4-3-2-1", "99.9F°", + "7_11", "99 Problems", "1.5 Degrees", "12 - 3 AM"] { + XCTAssertEqual(manager.cleanTrackTitle(title), title) + } + XCTAssertEqual(manager.cleanTrackTitle("01 - Intro"), "Intro") + XCTAssertEqual(manager.cleanTrackTitle("03. Hey Jude.mp3"), "Hey Jude") + XCTAssertEqual(manager.cleanTrackTitle("12_Outro"), "Outro") + } + + func testNowPlayingProgressIsRepublishedOnlyWhenPlaybackDeparts() { + let last = NowPlayingManager.PublishedProgress(elapsed: 10, duration: 180, rate: 1, uptime: 100) + XCTAssertTrue(NowPlayingManager.progressNeedsPublish(nil, elapsed: 0, duration: 180, rate: 0, uptime: 0)) + XCTAssertFalse(NowPlayingManager.progressNeedsPublish(last, elapsed: 12.05, duration: 180, rate: 1, uptime: 102), + "Steady playback is extrapolated by the system") + XCTAssertTrue(NowPlayingManager.progressNeedsPublish(last, elapsed: 60, duration: 180, rate: 1, uptime: 102), "Seek") + XCTAssertTrue(NowPlayingManager.progressNeedsPublish(last, elapsed: 0.1, duration: 180, rate: 1, uptime: 150), "Loop wrap") + XCTAssertTrue(NowPlayingManager.progressNeedsPublish(last, elapsed: 12, duration: 180, rate: 1.5, uptime: 102), "Rate") + XCTAssertTrue(NowPlayingManager.progressNeedsPublish(last, elapsed: 12, duration: 200, rate: 1, uptime: 102), "Duration") + let paused = NowPlayingManager.PublishedProgress(elapsed: 42, duration: 180, rate: 0, uptime: 100) + XCTAssertFalse(NowPlayingManager.progressNeedsPublish(paused, elapsed: 42, duration: 180, rate: 0, uptime: 500)) + } + + func testNowPlayingReusesArtworkUntilTheImageChanges() throws { + let manager = NowPlayingManager() + defer { manager.clear() } + func publishedArtwork(_ image: NSImage) throws -> MPMediaItemArtwork { + manager.updateNowPlayingInfo(title: "Track", artwork: image, duration: 10, elapsed: 0, isPlaying: false) + return try XCTUnwrap(MPNowPlayingInfoCenter.default().nowPlayingInfo?[MPMediaItemPropertyArtwork] as? MPMediaItemArtwork) + } + let cover = NSImage(size: NSSize(width: 8, height: 8)) + let first = try publishedArtwork(cover) + XCTAssertTrue(try publishedArtwork(cover) === first) + XCTAssertFalse(try publishedArtwork(NSImage(size: NSSize(width: 8, height: 8))) === first) + } + + // MARK: - Modals, quitting and windows (ui-2, concurrency-4, ui-3, ui-12, design-a11y-15) + + func testEscapeCannotCancelSeparationWhileAnotherCardIsOnTop() { + XCTAssertNil(SplittingProgressModal.cancelShortcut(isCovered: true)) + XCTAssertEqual(SplittingProgressModal.cancelShortcut(isCovered: false), .cancelAction) + } + + func testQuitAsksOnlyWhileSeparationOrExportIsRunning() { + XCTAssertNil(IsolateAppDelegate.pendingWork(isSplitting: false, exportState: .idle)) + XCTAssertNil(IsolateAppDelegate.pendingWork(isSplitting: false, exportState: .completed)) + XCTAssertEqual(IsolateAppDelegate.pendingWork(isSplitting: true, exportState: .idle), .separation) + XCTAssertEqual(IsolateAppDelegate.pendingWork(isSplitting: false, exportState: .exporting(stage: "RENDERING", percent: 0.4)), + .export) + let delegate = IsolateAppDelegate() + let engine = AudioEngineManager() + delegate.engineManager = engine + XCTAssertEqual(delegate.applicationShouldTerminate(NSApplication.shared), .terminateNow) + XCTAssertTrue(delegate.engineManager === engine) + } + + func testStatusMenuTargetsMainWindowNotStatusBarWindow() { + let statusLike = NSWindow(contentRect: .init(x: 0, y: 0, width: 20, height: 20), styleMask: [.borderless], + backing: .buffered, defer: true) + let panel = NSPanel(contentRect: .init(x: 0, y: 0, width: 20, height: 20), styleMask: [.titled], + backing: .buffered, defer: true) + let main = NSWindow(contentRect: .init(x: 0, y: 0, width: 20, height: 20), + styleMask: [.titled, .closable, .resizable, .fullSizeContentView], backing: .buffered, defer: true) + XCTAssertTrue(MenuBarManager.mainWindowCandidate(in: [statusLike, panel, main]) === main) + XCTAssertNil(MenuBarManager.mainWindowCandidate(in: [statusLike, panel])) + } + + func testAutomaticWindowTabbingIsDisabled() { + XCTAssertFalse(NSWindow.allowsAutomaticWindowTabbing, "A tab bar '+' would open a second main window") + } + + func testStatusItemHasVoiceOverNameAndState() throws { + let manager = MenuBarManager() + manager.setEnabled(true) + defer { manager.setEnabled(false) } + let button = try XCTUnwrap(manager.statusItem?.button) + XCTAssertEqual(button.accessibilityLabel(), "Isolate") + XCTAssertEqual(button.accessibilityValue() as? String, "Paused") + manager.updatePlaybackState(isPlaying: true) + XCTAssertEqual(button.accessibilityValue() as? String, "Playing") + manager.updatePlaybackState(isPlaying: false) + XCTAssertEqual(button.accessibilityValue() as? String, "Paused") + } + + // MARK: - Move to Applications (ui-11, robustness-7) + + private func fakeApp(at url: URL, version: String, identifier: String = "com.isolate.Isolate") throws { + let contents = url.appending(path: "Contents/MacOS") + try FileManager.default.createDirectory(at: contents, withIntermediateDirectories: true) + let plist: NSDictionary = ["CFBundleIdentifier": identifier, "CFBundleShortVersionString": version] + try plist.write(to: url.appending(path: "Contents/Info.plist")) + try Data("binary \(version)".utf8).write(to: contents.appending(path: "Isolate")) + } + + private func hasQuarantine(_ url: URL) -> Bool { + getxattr(url.path, "com.apple.quarantine", nil, 0, 0, XATTR_NOFOLLOW) >= 0 + } + + func testMoveNeverReplacesInstalledAppWithoutConfirmation() throws { + let source = directory.appending(path: "Volume/Isolate.app") + let applications = directory.appending(path: "Applications") + let destination = applications.appending(path: "Isolate.app") + let trash = directory.appending(path: "Trash") + try fakeApp(at: source, version: "1.3.0") + try fakeApp(at: destination, version: "9.9.0") + try FileManager.default.createDirectory(at: trash, withIntermediateDirectories: true) + let executable = source.appending(path: "Contents/MacOS/Isolate") + XCTAssertEqual(setxattr(executable.path, "com.apple.quarantine", "0081;00000000;Safari;", 21, 0, XATTR_NOFOLLOW), 0) + + XCTAssertThrowsError(try AppMoveHelper.install(from: source, to: destination, replacingExisting: false, + retire: { _ in XCTFail("Must not retire without confirmation") })) + XCTAssertEqual(AppMoveHelper.installedInfo(at: destination)?.version, "9.9.0") + XCTAssertEqual(try FileManager.default.contentsOfDirectory(atPath: applications.path), ["Isolate.app"], + "A refused install leaves no staging copy behind") + + try AppMoveHelper.install(from: source, to: destination, replacingExisting: true, retire: { + try FileManager.default.moveItem(at: $0, to: trash.appending(path: $0.lastPathComponent)) + }) + XCTAssertEqual(AppMoveHelper.installedInfo(at: destination)?.version, "1.3.0") + XCTAssertEqual(AppMoveHelper.installedInfo(at: trash.appending(path: "Isolate.app"))?.version, "9.9.0", + "The replaced copy is retired, not deleted") + XCTAssertFalse(hasQuarantine(destination.appending(path: "Contents/MacOS/Isolate")), + "The installed copy must not be translocated again") + XCTAssertTrue(hasQuarantine(executable), "The source is left untouched") + XCTAssertEqual(AppMoveHelper.installedInfo(at: destination)?.identifier, "com.isolate.Isolate") + } + + func testMoveInstallsWhenApplicationsHasNoCopy() throws { + let source = directory.appending(path: "Volume/Isolate.app") + let destination = directory.appending(path: "Applications/Isolate.app") + try fakeApp(at: source, version: "1.3.0") + try FileManager.default.createDirectory(at: destination.deletingLastPathComponent(), withIntermediateDirectories: true) + try AppMoveHelper.install(from: source, to: destination, replacingExisting: false, + retire: { _ in XCTFail("Nothing to retire") }) + XCTAssertEqual(AppMoveHelper.installedInfo(at: destination)?.version, "1.3.0") + } + + func testLocationChecksHandleTranslocationAndWritableVolumes() { + XCTAssertEqual(AppMoveHelper.originalURL(of: directory), directory) + let lookalike = URL(filePath: "/private/var/folders/xx/T/AppTranslocation/\(UUID().uuidString)/d/Isolate.app") + XCTAssertEqual(AppMoveHelper.originalURL(of: lookalike).path, lookalike.path, + "A path that is not really translocated resolves to itself") + XCTAssertFalse(AppMoveHelper.isDiskImageLocation(directory)) + XCTAssertFalse(AppMoveHelper.isDiskImageLocation(URL(filePath: "/Applications/Isolate.app"))) + } +} From d6415d7d96c8e95d4074224d7ca0af9ad7a0c364 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:19:56 -0500 Subject: [PATCH 18/89] perf(separation): read the model output buffer once per chunk DemucsEngine.accumulate evaluated MLMultiArray.dataType and dataPointer, both Objective-C getters, for every one of the 3.5 million samples in a chunk. Resolve the element type and storage once and walk raw buffers. The arithmetic and its order are unchanged, so output stays bit-identical; a test compares both loops on strided Float16 and Float32 tensors. Co-Authored-By: Claude Opus 5.5 --- Sources/App/DemucsEngine.swift | 40 ++-- Tests/IsolateTests/SeparationFixTests.swift | 208 ++++++++++++++++++++ 2 files changed, 233 insertions(+), 15 deletions(-) create mode 100644 Tests/IsolateTests/SeparationFixTests.swift diff --git a/Sources/App/DemucsEngine.swift b/Sources/App/DemucsEngine.swift index 697c188..b47981d 100644 --- a/Sources/App/DemucsEngine.swift +++ b/Sources/App/DemucsEngine.swift @@ -283,27 +283,37 @@ public actor DemucsEngine { } } - private static func accumulate(_ output: MLMultiArray, into accumulators: inout [[Float]], - weights: inout [Float], window: [Float], mean: Float, - standardDeviation: Float) throws { + static func accumulate(_ output: MLMultiArray, into accumulators: inout [[Float]], + weights: inout [Float], window: [Float], mean: Float, + standardDeviation: Float) throws { guard output.shape.map(\.intValue) == [1, 4, 2, chunkSize], output.dataType == .float16 || output.dataType == .float32 else { throw DemucsError.conversionFailed("The model returned an unsupported audio tensor.") } let strides = output.strides.map(\.intValue) - for stem in 0..<4 { - for channel in 0..<2 { - let offset = stem * strides[1] + channel * strides[2] - let target = stem * 2 + channel - for i in 0.. Float { + amplitude * sin(Float(frame) * 2 * .pi * 440 / 44_100) + } + + /// Stereo float WAV; `amplitude` makes the bytes, and so the cache key, unique. + private func stereo(_ name: String, frames: Int = 8_820, amplitude: Float = 0.3) throws -> URL { + let url = directory.appending(path: name) + let buffer = AVAudioPCMBuffer(pcmFormat: StreamingAudio.format, frameCapacity: AVAudioFrameCount(frames))! + buffer.frameLength = buffer.frameCapacity + for frame in 0.. AVAudioPCMBuffer { + let layout = AVAudioChannelLayout(layoutTag: tag)! + let format = AVAudioFormat(commonFormat: .pcmFormatFloat32, sampleRate: sampleRate, interleaved: false, channelLayout: layout) + let buffer = AVAudioPCMBuffer(pcmFormat: format, frameCapacity: AVAudioFrameCount(sampleRate))! + buffer.frameLength = buffer.frameCapacity + for channel in 0.. URL { + let url = directory.appending(path: name) + let buffer = surroundBuffer(tag: tag, active: active, sampleRate: sampleRate) + let file = try AVAudioFile(forWriting: url, settings: buffer.format.settings.merging(extra) { $1 }, + commonFormat: .pcmFormatFloat32, interleaved: false) + try file.write(from: buffer) + return url + } + + /// 5.1 ALAC in the codec's native channel order, as afconvert, Music and ffmpeg write it. + private func surroundALAC(_ name: String, active: Int) throws -> URL { + let url = directory.appending(path: name) + let buffer = surroundBuffer(tag: kAudioChannelLayoutTag_MPEG_5_1_A, active: active) + let layout = buffer.format.channelLayout! + var alac = AudioStreamBasicDescription(mSampleRate: 44_100, mFormatID: kAudioFormatAppleLossless, + mFormatFlags: kAppleLosslessFormatFlag_16BitSourceData, mBytesPerPacket: 0, + mFramesPerPacket: 4096, mBytesPerFrame: 0, mChannelsPerFrame: 6, + mBitsPerChannel: 0, mReserved: 0) + var reference: ExtAudioFileRef? + XCTAssertEqual(ExtAudioFileCreateWithURL(url as CFURL, kAudioFileCAFType, &alac, layout.layout, + AudioFileFlags.eraseFile.rawValue, &reference), noErr) + let file = try XCTUnwrap(reference) + defer { ExtAudioFileDispose(file) } + XCTAssertEqual(ExtAudioFileSetProperty(file, kExtAudioFileProperty_ClientDataFormat, + UInt32(MemoryLayout.size), + buffer.format.streamDescription), noErr) + // The encoder reorders to ALAC's native order only when told the input layout. + XCTAssertEqual(ExtAudioFileSetProperty(file, kExtAudioFileProperty_ClientChannelLayout, + UInt32(MemoryLayout.size), layout.layout), noErr) + XCTAssertEqual(ExtAudioFileWrite(file, buffer.frameLength, buffer.audioBufferList), noErr) + return url + } + + /// Float WAV without a channel mask, as many tools write multichannel audio. + private func plainWAV(_ name: String, channels: Int, active: Int) throws -> URL { + let url = directory.appending(path: name) + let frames = 44_100 + var data = Data() + func u32(_ value: UInt32) { withUnsafeBytes(of: value.littleEndian) { data.append(contentsOf: $0) } } + func u16(_ value: UInt16) { withUnsafeBytes(of: value.littleEndian) { data.append(contentsOf: $0) } } + let bytes = frames * channels * 4 + data.append(contentsOf: Array("RIFF".utf8)); u32(UInt32(36 + bytes)); data.append(contentsOf: Array("WAVE".utf8)) + data.append(contentsOf: Array("fmt ".utf8)); u32(16); u16(3); u16(UInt16(channels)); u32(44_100) + u32(UInt32(44_100 * channels * 4)); u16(UInt16(channels * 4)); u16(32) + data.append(contentsOf: Array("data".utf8)); u32(UInt32(bytes)) + for frame in 0.. (left: Float, right: Float, frames: Int) { + let file = try AVAudioFile(forReading: url) + let buffer = AVAudioPCMBuffer(pcmFormat: file.processingFormat, frameCapacity: AVAudioFrameCount(file.length))! + try file.read(into: buffer) + var sums: [Float] = [0, 0] + for channel in 0..<2 { + for frame in 0.. URL { + let cache = StemCache.root.appending(path: try StemCache.key(for: source)) + try FileManager.default.createDirectory(at: cache, withIntermediateDirectories: true) + for name in DemucsEngine.stemNames + ["original"] { + try FileManager.default.copyItem(at: source, to: cache.appending(path: "\(name).wav")) + } + return cache + } + + private func split(_ url: URL, progress: @escaping @Sendable (SplitProgressInfo) -> Void = { _ in }) async throws -> [URL]? { + do { + return try await DemucsEngine.shared.splitAudio(url: url, progressCallback: progress) + } catch DemucsError.modelNotFound(let message) { + if ProcessInfo.processInfo.environment["ISOLATE_REQUIRE_MODEL"] == "1" { XCTFail(message); return nil } + throw XCTSkip("Install the model to run inference: \(message)") + } + } + + private func removeCache(_ stems: [URL]?) { + if let directory = stems?.first?.deletingLastPathComponent(), StemCache.owns(directory) { + try? FileManager.default.removeItem(at: directory) + } + } + + // MARK: - Accumulation (performance-2) + + /// The accumulation loop before hoisting, kept verbatim as the reference. + private static func referenceAccumulate(_ output: MLMultiArray, into accumulators: inout [[Float]], + weights: inout [Float], window: [Float], mean: Float, + standardDeviation: Float) { + let chunkSize = DemucsEngine.chunkSize + let strides = output.strides.map(\.intValue) + for stem in 0..<4 { + for channel in 0..<2 { + let offset = stem * strides[1] + channel * strides[2] + let target = stem * 2 + channel + for i in 0.. Date: Fri, 25 Sep 2026 20:20:17 -0500 Subject: [PATCH 19/89] fix(audio): downmix surround sources and reject truncated decodes StreamingAudio asked ExtAudioFile for stereo, which keeps only channels 0 and 1 of wider files, so a 5.1 mix lost its centre vocal. Decode every channel with an explicit client layout (ALAC and AAC otherwise arrive in codec order) and downmix with AVAudioConverter; files without a declared layout use the WAV/FLAC default order. Some decoders end cleanly at a damaged region. For PCM, FLAC and ALAC, whose declared length is exact, fail with the decoded and expected durations when more than a second and 1% is missing, instead of caching part of the song under the file's hash. Core Audio failures now read as plain language with the four-character code kept for diagnosis. The cache pipeline version moves to v4 because multichannel output changes. Co-Authored-By: Claude Opus 5.5 --- Sources/App/DemucsEngine.swift | 3 + Sources/App/StemCache.swift | 2 +- Sources/App/StreamingAudio.swift | 143 ++++++++++++++++++-- Tests/IsolateTests/SeparationFixTests.swift | 97 +++++++++++++ 4 files changed, 233 insertions(+), 12 deletions(-) diff --git a/Sources/App/DemucsEngine.swift b/Sources/App/DemucsEngine.swift index b47981d..2cfd590 100644 --- a/Sources/App/DemucsEngine.swift +++ b/Sources/App/DemucsEngine.swift @@ -9,6 +9,8 @@ public enum DemucsError: LocalizedError, Sendable { case compilationFailed(String) case assetReaderFailed(String) case conversionFailed(String) + /// A source file that cannot be read; the message is already user-facing. + case unreadableSource(String) case invalidAudioFormat case cancelled @@ -18,6 +20,7 @@ public enum DemucsError: LocalizedError, Sendable { case .compilationFailed(let msg): return "Model Compilation Failed: \(msg)" case .assetReaderFailed(let msg): return "Audio Reading Failed: \(msg)" case .conversionFailed(let msg): return "Audio Conversion Failed: \(msg)" + case .unreadableSource(let msg): return msg case .invalidAudioFormat: return "Invalid Audio Format" case .cancelled: return "Operation Cancelled" } diff --git a/Sources/App/StemCache.swift b/Sources/App/StemCache.swift index 269ac48..fa03224 100644 --- a/Sources/App/StemCache.swift +++ b/Sources/App/StemCache.swift @@ -15,7 +15,7 @@ enum StemCache { defer { try? handle.close() } var hash = SHA256() // Increment when the separation algorithm or model contract changes. - hash.update(data: Data("Isolate-streaming-v3".utf8)) + hash.update(data: Data("Isolate-streaming-v4".utf8)) while let data = try handle.read(upToCount: 1_048_576), !data.isEmpty { try Task.checkCancellation() hash.update(data: data) diff --git a/Sources/App/StreamingAudio.swift b/Sources/App/StreamingAudio.swift index 70d1fbe..da3d267 100644 --- a/Sources/App/StreamingAudio.swift +++ b/Sources/App/StreamingAudio.swift @@ -26,10 +26,33 @@ enum StreamingAudio { try check(ExtAudioFileOpenURL(source as CFURL, &reference)) guard let reference else { throw DemucsError.invalidAudioFormat } defer { ExtAudioFileDispose(reference) } - var description = format.streamDescription.pointee + let info = try sourceInfo(reference) + // A stereo client format keeps only the first two channels of wider + // sources, so decode every channel and downmix by speaker position. + var clientFormat = format + var downmix: AVAudioConverter? + if info.format.mChannelsPerFrame > 2 { + let layout = try channelLayout(of: reference, channels: info.format.mChannelsPerFrame) + clientFormat = AVAudioFormat(commonFormat: .pcmFormatFloat32, sampleRate: 44_100, + interleaved: false, channelLayout: layout) + guard let converter = AVAudioConverter(from: clientFormat, to: format) else { + throw DemucsError.invalidAudioFormat + } + converter.downmix = true + downmix = converter + } + var description = clientFormat.streamDescription.pointee try check(ExtAudioFileSetProperty(reference, kExtAudioFileProperty_ClientDataFormat, UInt32(MemoryLayout.size), &description)) - guard let buffer = AVAudioPCMBuffer(pcmFormat: format, frameCapacity: 16_384), + if let layout = clientFormat.channelLayout, downmix != nil { + // Codecs such as ALAC decode in their native order unless the client layout is explicit. + let size = MemoryLayout.size + + max(0, Int(layout.layout.pointee.mNumberChannelDescriptions) - 1) * MemoryLayout.size + try check(ExtAudioFileSetProperty(reference, kExtAudioFileProperty_ClientChannelLayout, + UInt32(size), layout.layout)) + } + guard let decoded = AVAudioPCMBuffer(pcmFormat: clientFormat, frameCapacity: 16_384), + let buffer = downmix == nil ? decoded : AVAudioPCMBuffer(pcmFormat: format, frameCapacity: 16_384), let channels = buffer.floatChannelData else { throw DemucsError.invalidAudioFormat } let writer = try AVAudioFile(forWriting: destination, settings: settings) var count = 0 @@ -38,12 +61,13 @@ enum StreamingAudio { var stereoSumSquares = 0.0 while true { try Task.checkCancellation() - buffer.frameLength = buffer.frameCapacity - var frames = buffer.frameCapacity - try check(ExtAudioFileRead(reference, &frames, buffer.mutableAudioBufferList)) + decoded.frameLength = decoded.frameCapacity + var frames = decoded.frameCapacity + try check(ExtAudioFileRead(reference, &frames, decoded.mutableAudioBufferList)) guard frames > 0 else { break } - buffer.frameLength = frames - for i in 0.. 0 else { throw DemucsError.invalidAudioFormat } + guard count > 0 else { throw DemucsError.unreadableSource("The file contains no audio that could be decoded.") } + // Some decoders end cleanly at a damaged region instead of failing. Lossless + // formats declare an exact length, so a large shortfall means lost audio. + let exactLength = [kAudioFormatLinearPCM, kAudioFormatFLAC, kAudioFormatAppleLossless].contains(info.format.mFormatID) + if exactLength, info.frames > 0, info.frames - count > max(info.frames / 100, 44_100) { + throw DemucsError.unreadableSource("The file appears damaged or incomplete: only \(clock(count)) of \(clock(info.frames)) could be decoded.") + } let mean = sum / Double(count) let variance = max(0, sumSquares / Double(count) - mean * mean) // Opposite-phase stereo can have a silent mono reference while both @@ -67,6 +97,65 @@ enum StreamingAudio { return Statistics(frames: count, mean: Float(mean), standardDeviation: max(1e-4, Float(sqrt(normalizationVariance)))) } + /// Declared length at 44.1 kHz, or nil when the file does not state one. + static func declaredFrames(of source: URL) -> Int? { + var reference: ExtAudioFileRef? + guard ExtAudioFileOpenURL(source as CFURL, &reference) == noErr, let reference else { return nil } + defer { ExtAudioFileDispose(reference) } + guard let frames = try? sourceInfo(reference).frames, frames > 0 else { return nil } + return frames + } + + private static func sourceInfo(_ reference: ExtAudioFileRef) throws -> (format: AudioStreamBasicDescription, frames: Int) { + var format = AudioStreamBasicDescription() + var size = UInt32(MemoryLayout.size) + try check(ExtAudioFileGetProperty(reference, kExtAudioFileProperty_FileDataFormat, &size, &format)) + var length: Int64 = 0 + size = UInt32(MemoryLayout.size) + // Streams written without a total length report zero. + if ExtAudioFileGetProperty(reference, kExtAudioFileProperty_FileLengthFrames, &size, &length) != noErr { length = 0 } + guard format.mSampleRate > 0, length > 0 else { return (format, 0) } + return (format, Int((Double(length) * 44_100 / format.mSampleRate).rounded())) + } + + /// The file's speaker layout, or the WAV/FLAC default order when it declares none. + private static func channelLayout(of reference: ExtAudioFileRef, channels: UInt32) throws -> AVAudioChannelLayout { + var size: UInt32 = 0 + if ExtAudioFileGetPropertyInfo(reference, kExtAudioFileProperty_FileChannelLayout, &size, nil) == noErr, size > 0 { + let byteCount = max(Int(size), MemoryLayout.size) + let raw = UnsafeMutableRawPointer.allocate(byteCount: byteCount, alignment: MemoryLayout.alignment) + defer { raw.deallocate() } + raw.initializeMemory(as: UInt8.self, repeating: 0, count: byteCount) + let pointer = raw.assumingMemoryBound(to: AudioChannelLayout.self) + if ExtAudioFileGetProperty(reference, kExtAudioFileProperty_FileChannelLayout, &size, raw) == noErr { + let layout = AVAudioChannelLayout(layout: pointer) + let tag = layout.layoutTag + let offset = MemoryLayout.offset(of: \.mChannelDescriptions)! + let descriptions = UnsafeBufferPointer( + start: (raw + offset).assumingMemoryBound(to: AudioChannelDescription.self), + count: min(Int(pointer.pointee.mNumberChannelDescriptions), + (byteCount - offset) / MemoryLayout.stride)) + // Discrete or unlabelled channels have no speaker position to downmix from. + let positioned = tag != kAudioChannelLayoutTag_UseChannelDescriptions + || descriptions.allSatisfy { (1..<100).contains($0.mChannelLabel) } + if layout.channelCount == channels, positioned, + tag & 0xFFFF_0000 != kAudioChannelLayoutTag_DiscreteInOrder, + tag & 0xFFFF_0000 != kAudioChannelLayoutTag_Unknown { + return layout + } + } + } + let defaults: [UInt32: AudioChannelLayoutTag] = [ + 3: kAudioChannelLayoutTag_WAVE_3_0, 4: kAudioChannelLayoutTag_WAVE_4_0_A, + 5: kAudioChannelLayoutTag_WAVE_5_0_A, 6: kAudioChannelLayoutTag_WAVE_5_1_A, + 7: kAudioChannelLayoutTag_WAVE_6_1, 8: kAudioChannelLayoutTag_WAVE_7_1 + ] + guard let tag = defaults[channels], let layout = AVAudioChannelLayout(layoutTag: tag) else { + throw DemucsError.unreadableSource("Audio with \(channels) channels is not supported. Import a stereo or surround mix.") + } + return layout + } + static func reflectedIndex(_ index: Int, count: Int) -> Int { guard count > 1 else { return 0 } let period = 2 * (count - 1) @@ -109,9 +198,41 @@ enum StreamingAudio { } } + // MARK: - Errors + private static func check(_ status: OSStatus) throws { - guard status == noErr else { - throw DemucsError.conversionFailed("Audio decoding failed (\(status)). The file may be damaged or unsupported.") + guard status == noErr else { throw DemucsError.unreadableSource(describe(status)) } + } + + /// Plain-language reasons for common Core Audio failures, keeping the code for diagnosis. + static func describe(_ status: OSStatus) -> String { + let reason: String + switch status { + case kAudioFileUnsupportedFileTypeError, kAudioFileUnsupportedDataFormatError: + reason = "This audio format is not supported" + case kAudioFileInvalidFileError: + reason = "The file is damaged, or its contents do not match its extension" + case kAudioFileInvalidChunkError, kAudioFileInvalidPacketOffsetError, + kAudioFileInvalidPacketDependencyError, kAudioCodecBadDataError: + reason = "The file appears to be damaged" + case kAudioFilePermissionsError: + reason = "Isolate does not have permission to read the file" + case kAudioFileFileNotFoundError: + reason = "The file could not be found" + default: + reason = "The file could not be decoded. It may be damaged or unsupported" } + let bytes = withUnsafeBytes(of: UInt32(bitPattern: status).bigEndian) { Array($0) } + let code = bytes.allSatisfy({ (0x20...0x7E).contains($0) }) + ? "'\(String(decoding: bytes, as: UTF8.self))'" : "\(status)" + return "\(reason) (Core Audio \(code))." + } + + static func clock(_ frames: Int) -> String { + let seconds = frames / 44_100 + return seconds >= 3600 + ? String(format: "%d:%02d:%02d", seconds / 3600, seconds / 60 % 60, seconds % 60) + : String(format: "%d:%02d", seconds / 60, seconds % 60) } } + diff --git a/Tests/IsolateTests/SeparationFixTests.swift b/Tests/IsolateTests/SeparationFixTests.swift index 738cad5..5444a67 100644 --- a/Tests/IsolateTests/SeparationFixTests.swift +++ b/Tests/IsolateTests/SeparationFixTests.swift @@ -205,4 +205,101 @@ final class SeparationFixTests: XCTestCase { XCTAssertTrue(expectedWeights.map(\.bitPattern) == actualWeights.map(\.bitPattern)) } } + + // MARK: - Multichannel downmix (separation-1) + + func testCentreOnlySurroundDecodesToBothSides() throws { + for source in [ + try surround("centre.wav", tag: kAudioChannelLayoutTag_MPEG_5_1_A, active: 2), + try plainWAV("centre-plain.wav", channels: 6, active: 2), + try surroundALAC("centre.caf", active: 2), + try surround("centre.flac", tag: kAudioChannelLayoutTag_MPEG_5_1_A, active: 2, sampleRate: 48_000, + settings: [AVFormatIDKey: kAudioFormatFLAC, AVEncoderBitDepthHintKey: 16]) + ] { + let decoded = directory.appending(path: "decoded-\(source.lastPathComponent).wav") + let stats = try StreamingAudio.decode(source, to: decoded) + let level = try rms(decoded) + XCTAssertEqual(stats.frames, 44_100, accuracy: 2, source.lastPathComponent) + XCTAssertGreaterThan(level.left, 0.05, "Centre content must reach the left channel: \(source.lastPathComponent)") + XCTAssertEqual(level.left, level.right, accuracy: level.left * 0.01, source.lastPathComponent) + } + } + + func testSurroundChannelsKeepTheirSide() throws { + let leftSurround = try surround("ls.wav", tag: kAudioChannelLayoutTag_MPEG_5_1_A, active: 4) + _ = try StreamingAudio.decode(leftSurround, to: directory.appending(path: "ls-decoded.wav")) + var level = try rms(directory.appending(path: "ls-decoded.wav")) + XCTAssertGreaterThan(level.left, 0.05) + XCTAssertLessThan(level.right, 0.001) + let rearRight = try plainWAV("quad.wav", channels: 4, active: 3) + _ = try StreamingAudio.decode(rearRight, to: directory.appending(path: "quad-decoded.wav")) + level = try rms(directory.appending(path: "quad-decoded.wav")) + XCTAssertGreaterThan(level.right, 0.05) + XCTAssertLessThan(level.left, 0.001) + } + + // MARK: - Truncated sources (separation-5) + + func testTruncatedFLACFailsInsteadOfImportingPartOfTheSong() throws { + let frames = 44_100 * 6 + let flac = directory.appending(path: "song.flac") + do { + let buffer = AVAudioPCMBuffer(pcmFormat: StreamingAudio.format, frameCapacity: AVAudioFrameCount(frames))! + buffer.frameLength = buffer.frameCapacity + var generator = SystemRandomNumberGenerator() + for frame in 0.. Date: Fri, 25 Sep 2026 20:20:37 -0500 Subject: [PATCH 20/89] fix(separation): report unusable models, cancel during load, release idle model - A model that exists but fails to load or validate now reports its path and the Core ML reason instead of 'CoreML Model Not Found'. Duplicate bundle candidates are tried once. - The model loads in one shared detached task. Cancelling an import stops waiting at once; the load finishes in the background and the next import reuses it instead of compiling again. - The model is released after 60 s with no separation running and reloaded on demand. In a probe on the development Mac, reloading from the compiled cache took 3.2-3.7 s (about 17 s only the first time a new build loads it); after inference the process footprint was 1.6-2.7 GB and releasing the model brought it to between 40 MB and 1.2 GB. Co-Authored-By: Claude Opus 5.5 --- Sources/App/DemucsEngine.swift | 155 ++++++++++++++++---- Tests/IsolateTests/SeparationFixTests.swift | 71 +++++++++ 2 files changed, 200 insertions(+), 26 deletions(-) diff --git a/Sources/App/DemucsEngine.swift b/Sources/App/DemucsEngine.swift index 2cfd590..080d7b4 100644 --- a/Sources/App/DemucsEngine.swift +++ b/Sources/App/DemucsEngine.swift @@ -3,9 +3,11 @@ import CoreML @preconcurrency import AVFoundation import Accelerate import AudioToolbox +import os public enum DemucsError: LocalizedError, Sendable { case modelNotFound(String) + case modelLoadFailed(String) case compilationFailed(String) case assetReaderFailed(String) case conversionFailed(String) @@ -17,6 +19,7 @@ public enum DemucsError: LocalizedError, Sendable { public var errorDescription: String? { switch self { case .modelNotFound(let msg): return "CoreML Model Not Found: \(msg)" + case .modelLoadFailed(let msg): return "Model Could Not Be Loaded: \(msg)" case .compilationFailed(let msg): return "Model Compilation Failed: \(msg)" case .assetReaderFailed(let msg): return "Audio Reading Failed: \(msg)" case .conversionFailed(let msg): return "Audio Conversion Failed: \(msg)" @@ -62,6 +65,13 @@ public actor DemucsEngine { public static let shared = DemucsEngine() private var model: MLModel? + /// One shared load, so a cancelled import never starts a second compile. + private var modelLoad: Task? + private var modelRelease: Task? + /// Core ML holds a large working set while the model stays loaded. Reloading + /// from its compiled cache is quick next to a separation, so an idle model is + /// released; a batch keeps it because each file starts before this elapses. + private var idleModelLifetime: Duration = .seconds(60) // Demucs HTDemucs operates on 10.0s chunks @ 44.1kHz (441,000 samples) public static let sampleRate: Double = 44100.0 @@ -75,9 +85,77 @@ public actor DemucsEngine { // MARK: - Model loading - private func loadModelIfNeeded() async throws { - if model != nil { return } - + /// Returns the model, sharing one in-flight load. Cancelling an import ends its + /// wait at once; the load finishes in the background for the next import. + private func loadedModel() async throws -> MLModel { + if let model { return model } + let load: Task + if let modelLoad { + load = modelLoad + } else { + load = Task.detached(priority: .userInitiated) { try await Self.loadModel() } + modelLoad = load + Task { await finishModelLoad(load) } + } + let loaded = try await Self.value(of: load) + model = loaded + return loaded + } + + private func finishModelLoad(_ load: Task) async { + let result = await load.result + guard modelLoad == load else { return } + modelLoad = nil + guard case .success(let loaded) = result else { return } + model = loaded + // A load abandoned by a cancelled import must not stay resident. + if !isSeparating { scheduleModelRelease() } + } + + private func scheduleModelRelease() { + modelRelease?.cancel() + let lifetime = idleModelLifetime + modelRelease = Task { + try? await Task.sleep(for: lifetime) + guard !Task.isCancelled else { return } + releaseIdleModel() + } + } + + /// Drops the loaded model unless a separation is using it. + func releaseIdleModel() { + guard !isSeparating else { return } + model = nil + } + + var isModelLoaded: Bool { model != nil } + + /// Tests shorten the lifetime to observe a release. + func setIdleModelLifetime(_ lifetime: Duration) { + idleModelLifetime = lifetime + } + + /// Awaits a task's result while letting the caller's cancellation end the wait. + private static func value(of task: Task) async throws -> T { + let pending = OSAllocatedUnfairLock?>(initialState: nil) + return try await withTaskCancellationHandler { + try await withCheckedThrowingContinuation { continuation in + pending.withLock { $0 = continuation } + if Task.isCancelled { + pending.withLock { $0.take() }?.resume(throwing: CancellationError()) + return + } + Task { + let result = await task.result + pending.withLock { $0.take() }?.resume(with: result) + } + } + } onCancel: { + pending.withLock { $0.take() }?.resume(throwing: CancellationError()) + } + } + + private static func loadModel() async throws -> MLModel { let fileManager = FileManager.default let appSupport = fileManager.urls(for: .applicationSupportDirectory, in: .userDomainMask).first! .appendingPathComponent("Isolate") @@ -99,21 +177,6 @@ public actor DemucsEngine { candidateModelURLs.append(appSupportCompiledURL) } - // Try loading candidate pre-compiled models - for url in candidateModelURLs { - do { - let config = MLModelConfiguration() - config.computeUnits = .all - let loaded = try MLModel(contentsOf: url, configuration: config) - try Self.validateModel(loaded) - self.model = loaded - - return - } catch { - print("Failed to load CoreML model from \(url.path): \(error)") - } - } - // 3. Check for .mlpackage in AppSupport or Bundle to compile on-the-fly var candidatePackages: [URL] = [] if let bundlePkg = Bundle.main.url(forResource: "HTDemucs_CoreML_FP16", withExtension: "mlpackage") { @@ -127,10 +190,32 @@ public actor DemucsEngine { if fileManager.fileExists(atPath: appSupportPkg.path) { candidatePackages.append(appSupportPkg) } + return try await loadModel(compiled: candidateModelURLs, packages: candidatePackages, + compiledCache: appSupportCompiledURL) + } + + static func loadModel(compiled: [URL], packages: [URL], compiledCache appSupportCompiledURL: URL) async throws -> MLModel { + let fileManager = FileManager.default + // Only the first failure is reported: it belongs to the preferred location. + var failure: String? - for pkgURL in candidatePackages { + // Try loading candidate pre-compiled models + for url in unique(compiled) { do { - // The separation guard prevents a second load while compilation awaits. + let config = MLModelConfiguration() + config.computeUnits = .all + let loaded = try MLModel(contentsOf: url, configuration: config) + try Self.validateModel(loaded) + return loaded + } catch { + print("Failed to load CoreML model from \(url.path): \(error)") + failure = failure ?? loadFailure(url, error) + } + } + + for pkgURL in unique(packages) { + do { + // The shared load task prevents a second compile while this one awaits. // Validate before replacing the cached compiled model. let temporary = try await MLModel.compileModel(at: pkgURL) defer { try? fileManager.removeItem(at: temporary) } @@ -143,15 +228,30 @@ public actor DemucsEngine { } else { try fileManager.moveItem(at: temporary, to: appSupportCompiledURL) } - self.model = try MLModel(contentsOf: appSupportCompiledURL, configuration: config) - return + return try MLModel(contentsOf: appSupportCompiledURL, configuration: config) } catch { print("Failed to compile mlpackage from \(pkgURL.path): \(error)") + failure = failure ?? loadFailure(pkgURL, error) } } + // A model that is present but unusable needs a different fix than a missing one. + if let failure { + throw DemucsError.modelLoadFailed("\(failure) Replace it with the validated model described in MODEL.md.") + } throw DemucsError.modelNotFound("Install the complete Isolate release, or follow MODEL.md to place HTDemucs.mlmodelc in ~/Library/Application Support/Isolate.") } + + /// Bundle lookups by name and by resource path can return the same model. + private static func unique(_ urls: [URL]) -> [URL] { + var seen = Set() + return urls.filter { seen.insert($0.standardizedFileURL.path).inserted } + } + + private static func loadFailure(_ url: URL, _ error: Error) -> String { + let reason = if case DemucsError.modelLoadFailed(let message) = error { message } else { error.localizedDescription } + return "\((url.path as NSString).abbreviatingWithTildeInPath) could not be used. \(reason)" + } // MARK: - Streaming separation @@ -166,7 +266,11 @@ public actor DemucsEngine { throw DemucsError.conversionFailed("Another separation is still running.") } isSeparating = true - defer { isSeparating = false } + modelRelease?.cancel() + defer { + isSeparating = false + scheduleModelRelease() + } let scoped = url.startAccessingSecurityScopedResource() defer { if scoped { url.stopAccessingSecurityScopedResource() } } let startTime = CACurrentMediaTime() @@ -189,9 +293,8 @@ public actor DemucsEngine { return cached } report(0.01, "LOADING SEPARATION MODEL...") - try await loadModelIfNeeded() + let model = try await loadedModel() try Task.checkCancellation() - guard let model else { throw DemucsError.modelNotFound("Install the HTDemucs Core ML model.") } try Self.validateModel(model) let fm = FileManager.default try fm.createDirectory(at: StemCache.root, withIntermediateDirectories: true) @@ -282,7 +385,7 @@ public actor DemucsEngine { input.shape.map(\.intValue) == [1, 2, chunkSize], let output = model.modelDescription.outputDescriptionsByName["sources"]?.multiArrayConstraint, output.shape.map(\.intValue) == [1, 4, 2, chunkSize] else { - throw DemucsError.conversionFailed("The model must accept audio [1, 2, 441000] and return sources [1, 4, 2, 441000].") + throw DemucsError.modelLoadFailed("The model must accept audio [1, 2, 441000] and return sources [1, 4, 2, 441000].") } } diff --git a/Tests/IsolateTests/SeparationFixTests.swift b/Tests/IsolateTests/SeparationFixTests.swift index 5444a67..6b775ff 100644 --- a/Tests/IsolateTests/SeparationFixTests.swift +++ b/Tests/IsolateTests/SeparationFixTests.swift @@ -302,4 +302,75 @@ final class SeparationFixTests: XCTestCase { XCTAssertTrue(StreamingAudio.describe(kAudioCodecBadDataError).hasPrefix("The file appears to be damaged")) XCTAssertEqual(StreamingAudio.describe(-50), "The file could not be decoded. It may be damaged or unsupported (Core Audio -50).") } + + // MARK: - Model errors (separation-8) + + func testUnusableModelIsNotReportedAsMissing() async throws { + let broken = directory.appending(path: "HTDemucs.mlmodelc") + try FileManager.default.createDirectory(at: broken, withIntermediateDirectories: true) + try Data("not a model".utf8).write(to: broken.appending(path: "model.mil")) + let cache = directory.appending(path: "compiled.mlmodelc") + do { + _ = try await DemucsEngine.loadModel(compiled: [broken, broken], packages: [], compiledCache: cache) + XCTFail("A damaged model must not load") + } catch DemucsError.modelLoadFailed(let message) { + XCTAssertTrue(message.contains("HTDemucs.mlmodelc could not be used"), message) + XCTAssertTrue(message.contains("MODEL.md"), message) + } + do { + _ = try await DemucsEngine.loadModel(compiled: [], packages: [], compiledCache: cache) + XCTFail("No candidates means no model") + } catch DemucsError.modelNotFound { + } + } + + // MARK: - Model lifetime (concurrency-5, concurrency-8) + + func testCancellingDuringModelLoadReturnsPromptlyAndLaterImportsSucceed() async throws { + let engine = DemucsEngine.shared + await engine.releaseIdleModel() + let source = try stereo("load-cancel.wav", amplitude: Float.random(in: 0.25...0.35)) + let loading = OSAllocatedUnfairLock(initialState: false) + let task = Task { + try await self.split(source) { info in + if info.statusMessage == "LOADING SEPARATION MODEL..." { loading.withLock { $0 = true } } + } + } + let deadline = Date.now.addingTimeInterval(10) + while !loading.withLock({ $0 }), Date.now < deadline { try await Task.sleep(for: .milliseconds(5)) } + XCTAssertTrue(loading.withLock { $0 }) + let cancelled = Date.now + task.cancel() + do { + let stems = try await task.value + removeCache(stems) + XCTFail("The import must stop when cancelled") + } catch is CancellationError { + XCTAssertLessThan(Date.now.timeIntervalSince(cancelled), 1.5, "Cancel must not wait for the model to load") + } + // The abandoned load is shared with the next import instead of being restarted. + let stems = try await split(source) + defer { removeCache(stems) } + XCTAssertEqual(stems?.count, 4) + } + + func testIdleModelIsReleasedAndReloadedOnDemand() async throws { + let engine = DemucsEngine.shared + await engine.setIdleModelLifetime(.milliseconds(300)) + defer { Task { await engine.setIdleModelLifetime(.seconds(60)) } } + let first = try await split(try stereo("idle-1.wav", amplitude: Float.random(in: 0.25...0.35))) + defer { removeCache(first) } + guard first != nil else { return } + let loadedAfterSplit = await engine.isModelLoaded + XCTAssertTrue(loadedAfterSplit) + try await Task.sleep(for: .seconds(1)) + let loadedWhenIdle = await engine.isModelLoaded + XCTAssertFalse(loadedWhenIdle, "An idle model must be released") + await engine.setIdleModelLifetime(.seconds(60)) + let second = try await split(try stereo("idle-2.wav", amplitude: Float.random(in: 0.25...0.35))) + defer { removeCache(second) } + XCTAssertEqual(second?.count, 4) + let loadedAgain = await engine.isModelLoaded + XCTAssertTrue(loadedAgain) + } } From e89e6a296eee0a1a7e02e79ceec2e40d78b896fa Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:21:02 -0500 Subject: [PATCH 21/89] fix(separation): sweep abandoned staging, preflight disk space, fetch iCloud files - Quitting or crashing mid-separation left .partial-* folders (and rarely .backup-*) in the stem cache forever. StemCache.removeAbandonedStaging() deletes them; each separation calls it once it holds the single separation slot, and DemucsEngine.removeAbandonedStaging() is safe to call at launch. - Before loading the model or decoding, compare the space the cache will need (five Float32 stereo files at the declared length, plus headroom) with the volume's available capacity and fail with a readable message. - An evicted iCloud Drive file is downloaded explicitly with a 'DOWNLOADING FROM ICLOUD...' status. The wait honours Cancel, surfaces iCloud download errors, and fails with a clear message after two seconds without a network path instead of blocking in a read. Co-Authored-By: Claude Opus 5.5 --- Sources/App/DemucsEngine.swift | 18 +++- Sources/App/StemCache.swift | 32 +++++++ Sources/App/StreamingAudio.swift | 60 +++++++++++++ Tests/IsolateTests/SeparationFixTests.swift | 95 +++++++++++++++++++++ 4 files changed, 203 insertions(+), 2 deletions(-) diff --git a/Sources/App/DemucsEngine.swift b/Sources/App/DemucsEngine.swift index 080d7b4..2f69472 100644 --- a/Sources/App/DemucsEngine.swift +++ b/Sources/App/DemucsEngine.swift @@ -13,6 +13,7 @@ public enum DemucsError: LocalizedError, Sendable { case conversionFailed(String) /// A source file that cannot be read; the message is already user-facing. case unreadableSource(String) + case insufficientDiskSpace(needed: Int64, available: Int64) case invalidAudioFormat case cancelled @@ -24,6 +25,9 @@ public enum DemucsError: LocalizedError, Sendable { case .assetReaderFailed(let msg): return "Audio Reading Failed: \(msg)" case .conversionFailed(let msg): return "Audio Conversion Failed: \(msg)" case .unreadableSource(let msg): return msg + case .insufficientDiskSpace(let needed, let available): + let size = { ByteCountFormatter.string(fromByteCount: $0, countStyle: .file) } + return "Not enough disk space: separating this track needs about \(size(needed)) free, and \(size(available)) is available." case .invalidAudioFormat: return "Invalid Audio Format" case .cancelled: return "Operation Cancelled" } @@ -257,6 +261,12 @@ public actor DemucsEngine { private var isSeparating = false + /// Launch-time cache cleanup that cannot race a separation this process starts. + public func removeAbandonedStaging() { + guard !isSeparating else { return } + StemCache.removeAbandonedStaging() + } + /// Uses a rolling ten-second overlap accumulator and writes completed hops to disk. public func splitAudio( url: URL, @@ -271,6 +281,8 @@ public actor DemucsEngine { isSeparating = false scheduleModelRelease() } + // Holding the only separation slot means no other staging folder is live. + StemCache.removeAbandonedStaging() let scoped = url.startAccessingSecurityScopedResource() defer { if scoped { url.stopAccessingSecurityScopedResource() } } let startTime = CACurrentMediaTime() @@ -285,6 +297,7 @@ public actor DemucsEngine { )) } try Task.checkCancellation() + try await StreamingAudio.downloadIfNeeded(url) { report(0, "DOWNLOADING FROM ICLOUD...") } report(0, "CHECKING AUDIO CACHE...") let key = try StemCache.key(for: url) let destination = StemCache.root.appending(path: key, directoryHint: .isDirectory) @@ -292,12 +305,13 @@ public actor DemucsEngine { report(1, "LOADED FROM CACHE") return cached } + let fm = FileManager.default + try fm.createDirectory(at: StemCache.root, withIntermediateDirectories: true) + try StemCache.ensureSpace(forFrames: StreamingAudio.declaredFrames(of: url)) report(0.01, "LOADING SEPARATION MODEL...") let model = try await loadedModel() try Task.checkCancellation() try Self.validateModel(model) - let fm = FileManager.default - try fm.createDirectory(at: StemCache.root, withIntermediateDirectories: true) let staging = StemCache.root.appending(path: ".partial-\(UUID().uuidString)", directoryHint: .isDirectory) try fm.createDirectory(at: staging, withIntermediateDirectories: true) defer { try? fm.removeItem(at: staging) } diff --git a/Sources/App/StemCache.swift b/Sources/App/StemCache.swift index fa03224..023dca0 100644 --- a/Sources/App/StemCache.swift +++ b/Sources/App/StemCache.swift @@ -42,6 +42,38 @@ enum StemCache { return parent == root.resolvingSymlinksInPath().standardizedFileURL } + /// Removes staging and backup folders left behind when the app quit or crashed + /// mid-separation. Call only while no separation is running: at launch, or from + /// DemucsEngine once it holds the single separation slot. A backup exists only + /// while an invalid cache is being replaced, so it never holds usable stems. + static func removeAbandonedStaging() { + let fm = FileManager.default + guard let entries = try? fm.contentsOfDirectory(at: root, includingPropertiesForKeys: nil) else { return } + for entry in entries where entry.lastPathComponent.hasPrefix(".partial-") || entry.lastPathComponent.hasPrefix(".backup-") { + try? fm.removeItem(at: entry) + } + } + + /// Float32 stereo WAVs for the decoded original and four stems, plus headroom. + static func requiredBytes(forFrames frames: Int) -> Int64 { + Int64(frames) * Int64(MemoryLayout.size * 2) * 5 + (64 << 20) + } + + /// Fails before decoding and inference when the cache volume cannot hold the result. + static func ensureSpace(forFrames frames: Int?) throws { + guard let frames else { return } + var volume = root + volume.removeAllCachedResourceValues() + let available = try? volume.resourceValues(forKeys: [.volumeAvailableCapacityForImportantUsageKey]) + .volumeAvailableCapacityForImportantUsage + try ensureSpace(needed: requiredBytes(forFrames: frames), available: available) + } + + static func ensureSpace(needed: Int64, available: Int64?) throws { + guard let available, available < needed else { return } + throw DemucsError.insufficientDiskSpace(needed: needed, available: available) + } + static func publish(_ staging: URL, to destination: URL) throws { let fm = FileManager.default guard validFiles(in: staging) != nil else { diff --git a/Sources/App/StreamingAudio.swift b/Sources/App/StreamingAudio.swift index da3d267..a283c5d 100644 --- a/Sources/App/StreamingAudio.swift +++ b/Sources/App/StreamingAudio.swift @@ -1,5 +1,7 @@ import AVFoundation import AudioToolbox +import Network +import os /// Disk-backed audio preparation keeps memory independent of track duration. enum StreamingAudio { @@ -198,6 +200,50 @@ enum StreamingAudio { } } + // MARK: - iCloud Drive + + /// True for an iCloud Drive file whose contents have been evicted from this Mac. + static func isCloudPlaceholder(_ url: URL) -> Bool { + let values = try? url.resourceValues(forKeys: [.isUbiquitousItemKey, .ubiquitousItemDownloadingStatusKey]) + return values?.isUbiquitousItem == true && values?.ubiquitousItemDownloadingStatus == .notDownloaded + } + + /// Reading an evicted file blocks inside the kernel until iCloud delivers it, + /// with no status and no way to cancel. Download it explicitly and wait instead. + static func downloadIfNeeded(_ url: URL, onStart: () -> Void) async throws { + guard isCloudPlaceholder(url) else { return } + onStart() + let name = url.lastPathComponent + do { try FileManager.default.startDownloadingUbiquitousItem(at: url) } + catch { throw DemucsError.unreadableSource("'\(name)' is in iCloud Drive and could not be downloaded: \(error.localizedDescription)") } + let network = NetworkPath() + defer { network.stop() } + try await waitForDownload(named: name, isOffline: { network.isOffline }) { + var item = url + item.removeAllCachedResourceValues() + let values = try item.resourceValues(forKeys: [.ubiquitousItemDownloadingStatusKey, .ubiquitousItemDownloadingErrorKey]) + if let error = values.ubiquitousItemDownloadingError { throw error } + return values.ubiquitousItemDownloadingStatus != .notDownloaded + } + } + + static func waitForDownload(named name: String, interval: Duration = .milliseconds(250), + isOffline: () -> Bool, isDownloaded: () throws -> Bool) async throws { + var offlineChecks = 0 + while true { + let downloaded: Bool + do { downloaded = try isDownloaded() } + catch { throw DemucsError.unreadableSource("'\(name)' is in iCloud Drive and could not be downloaded: \(error.localizedDescription)") } + if downloaded { return } + // Tolerate a brief network change before reporting that the Mac is offline. + offlineChecks = isOffline() ? offlineChecks + 1 : 0 + if offlineChecks >= 8 { + throw DemucsError.unreadableSource("'\(name)' is in iCloud Drive and has not been downloaded to this Mac. Connect to the internet and import it again.") + } + try await Task.sleep(for: interval) + } + } + // MARK: - Errors private static func check(_ status: OSStatus) throws { @@ -236,3 +282,17 @@ enum StreamingAudio { } } +/// Latest network reachability, observed only while an iCloud download is pending. +private final class NetworkPath: @unchecked Sendable { + private let monitor = NWPathMonitor() + private let status = OSAllocatedUnfairLock(initialState: nil) + + init() { + monitor.pathUpdateHandler = { [status] path in status.withLock { $0 = path.status } } + monitor.start(queue: DispatchQueue(label: "Isolate.StreamingAudio.network")) + } + + var isOffline: Bool { status.withLock { $0 } == .unsatisfied } + + func stop() { monitor.cancel() } +} diff --git a/Tests/IsolateTests/SeparationFixTests.swift b/Tests/IsolateTests/SeparationFixTests.swift index 6b775ff..22ed094 100644 --- a/Tests/IsolateTests/SeparationFixTests.swift +++ b/Tests/IsolateTests/SeparationFixTests.swift @@ -373,4 +373,99 @@ final class SeparationFixTests: XCTestCase { let loadedAgain = await engine.isModelLoaded XCTAssertTrue(loadedAgain) } + + // MARK: - Abandoned staging (separation-3) + + func testAbandonedStagingSweepKeepsPublishedCaches() throws { + let fm = FileManager.default + try fm.createDirectory(at: StemCache.root, withIntermediateDirectories: true) + let partial = StemCache.root.appending(path: ".partial-\(UUID().uuidString)") + let backup = StemCache.root.appending(path: ".backup-\(UUID().uuidString)") + let published = StemCache.root.appending(path: "published-\(UUID().uuidString)") + for folder in [partial, backup, published] { + try fm.createDirectory(at: folder, withIntermediateDirectories: true) + try Data("audio".utf8).write(to: folder.appending(path: "original.wav")) + } + defer { try? fm.removeItem(at: published) } + StemCache.removeAbandonedStaging() + XCTAssertFalse(fm.fileExists(atPath: partial.path)) + XCTAssertFalse(fm.fileExists(atPath: backup.path)) + XCTAssertTrue(fm.fileExists(atPath: published.appending(path: "original.wav").path)) + } + + func testSeparationStartSweepsAbandonedStaging() async throws { + let source = try stereo("sweep.wav", amplitude: 0.21) + let cache = try cache(for: source) + defer { try? FileManager.default.removeItem(at: cache) } + let partial = StemCache.root.appending(path: ".partial-\(UUID().uuidString)") + try FileManager.default.createDirectory(at: partial, withIntermediateDirectories: true) + let stems = try await DemucsEngine.shared.splitAudio(url: source) { _ in } + XCTAssertEqual(stems.first?.deletingLastPathComponent().standardizedFileURL, cache.standardizedFileURL) + XCTAssertFalse(FileManager.default.fileExists(atPath: partial.path)) + } + + // MARK: - iCloud Drive (separation-4) + + func testLocalFilesSkipTheICloudDownload() async throws { + let source = try stereo("local.wav") + XCTAssertFalse(StreamingAudio.isCloudPlaceholder(source)) + var started = false + try await StreamingAudio.downloadIfNeeded(source) { started = true } + XCTAssertFalse(started) + } + + func testICloudWaitFinishesFailsOfflineAndHonoursCancel() async throws { + var polls = 0 + try await StreamingAudio.waitForDownload(named: "a.flac", interval: .milliseconds(1), isOffline: { false }) { + polls += 1 + return polls == 3 + } + XCTAssertEqual(polls, 3) + + do { + try await StreamingAudio.waitForDownload(named: "a.flac", interval: .milliseconds(1), isOffline: { true }) { false } + XCTFail("An offline wait must fail") + } catch DemucsError.unreadableSource(let message) { + XCTAssertTrue(message.contains("iCloud Drive") && message.contains("internet"), message) + } + + do { + try await StreamingAudio.waitForDownload(named: "a.flac", interval: .milliseconds(1), isOffline: { false }) { + throw CocoaError(.ubiquitousFileUnavailable) + } + XCTFail("A download error must fail the wait") + } catch DemucsError.unreadableSource(let message) { + XCTAssertTrue(message.contains("could not be downloaded"), message) + } + + let waiting = Task { + try await StreamingAudio.waitForDownload(named: "a.flac", interval: .milliseconds(20), isOffline: { false }) { false } + } + try await Task.sleep(for: .milliseconds(50)) + let cancelled = Date.now + waiting.cancel() + do { + try await waiting.value + XCTFail("Cancelling must end the wait") + } catch is CancellationError { + XCTAssertLessThan(Date.now.timeIntervalSince(cancelled), 1) + } + } + + // MARK: - Disk space (separation-7) + + func testDiskSpacePreflightExplainsTheShortfall() throws { + let minute = 44_100 * 60 + // Five Float32 stereo files: the original and four stems. + XCTAssertEqual(StemCache.requiredBytes(forFrames: minute), Int64(minute) * 8 * 5 + (64 << 20)) + XCTAssertNoThrow(try StemCache.ensureSpace(needed: 1_000, available: nil)) + XCTAssertNoThrow(try StemCache.ensureSpace(needed: 1_000, available: 1_000)) + XCTAssertThrowsError(try StemCache.ensureSpace(needed: 6_000_000_000, available: 4_000_000_000)) { error in + let message = error.localizedDescription + XCTAssertTrue(message.hasPrefix("Not enough disk space"), message) + XCTAssertTrue(message.contains("6 GB") && message.contains("4 GB"), message) + } + XCTAssertNoThrow(try StemCache.ensureSpace(forFrames: nil)) + XCTAssertNoThrow(try StemCache.ensureSpace(forFrames: 44_100)) + } } From 29d8969022327630c775fe28275e1671cc925bb9 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:21:29 -0500 Subject: [PATCH 22/89] fix(import): name batch failures, expose batch progress, accept folders - Failures in a batch are collected and shown once, naming each file with its reason ('2 of 5 files could not be imported. ...'), instead of an anonymous toast that the next failure overwrites. A cancelled batch says how many remaining files were not imported. - ImportCoordinator publishes currentFileName, batchIndex and batchCount for the progress screen. - Dropped or chosen folders expand recursively to supported audio files in Finder name order, off the main actor; duplicates import once. 'aifc' replaces 'alac', which is not a file extension. - New tracks take Finder's display name, so 'AC/DC' is no longer stored as 'AC:DC', and Now Playing keeps that title after tag metadata loads. - A reimport that moves a track to a new cache folder deletes the old one when the cache owns it and no other track uses it. Co-Authored-By: Claude Opus 5.5 --- Sources/Library/ImportCoordinator.swift | 136 ++++++++++++++++-- Tests/IsolateTests/SeparationFixTests.swift | 147 ++++++++++++++++++++ 2 files changed, 270 insertions(+), 13 deletions(-) diff --git a/Sources/Library/ImportCoordinator.swift b/Sources/Library/ImportCoordinator.swift index efe7cb3..a86641d 100644 --- a/Sources/Library/ImportCoordinator.swift +++ b/Sources/Library/ImportCoordinator.swift @@ -6,16 +6,20 @@ import UniformTypeIdentifiers @Observable final class ImportCoordinator { private(set) var isImporting = false + /// The file being separated and its 1-based position in the batch; nil between batches. + private(set) var currentFileName: String? + private(set) var batchIndex = 0 + private(set) var batchCount = 0 private var task: Task? private var openPanel: NSOpenPanel? - static let extensions: Set = ["mp3", "wav", "flac", "m4a", "aac", "aiff", "aif", "caf", "alac"] + nonisolated static let extensions: Set = ["mp3", "wav", "flac", "m4a", "aac", "aiff", "aif", "aifc", "caf"] func chooseFiles(context: ModelContext, engine: AudioEngineManager) { guard !isImporting, !engine.isSplitting, openPanel == nil else { return } let panel = NSOpenPanel() panel.allowedContentTypes = Self.extensions.compactMap { UTType(filenameExtension: $0) } panel.allowsMultipleSelection = true - panel.canChooseDirectories = false + panel.canChooseDirectories = true openPanel = panel // Avoid a nested run loop inside SwiftUI's onChange transaction. panel.begin { [weak self] response in @@ -28,24 +32,48 @@ final class ImportCoordinator { func importFiles(_ urls: [URL], context: ModelContext, engine: AudioEngineManager) { guard !isImporting, !engine.isSplitting else { return } - let audio = urls.filter { $0.isFileURL && Self.extensions.contains($0.pathExtension.lowercased()) } - guard !audio.isEmpty else { - engine.showError("Choose an MP3, WAV, FLAC, M4A, AAC, AIFF or CAF audio file.") - return - } isImporting = true task = Task { - defer { isImporting = false; task = nil } + defer { + isImporting = false + task = nil + currentFileName = nil + batchIndex = 0 + batchCount = 0 + } + // Listing a large dropped folder must not block the main actor. + let audio = await Task.detached { + let files = Self.audioFiles(in: urls) + // Let iCloud Drive fetch queued files while earlier ones separate. + for url in files where StreamingAudio.isCloudPlaceholder(url) { + try? FileManager.default.startDownloadingUbiquitousItem(at: url) + } + return files + }.value + guard !audio.isEmpty else { + engine.showError("Choose MP3, WAV, FLAC, M4A, AAC, AIFF or CAF audio files, or a folder that contains them.") + return + } + batchCount = audio.count var count = 0 var lastTitle = "" - for url in audio { + var failures: [(name: String, reason: String)] = [] + var notImported = 0 + var saveError: Error? + for (index, url) in audio.enumerated() { guard !Task.isCancelled else { break } + batchIndex = index + 1 + currentFileName = Self.title(for: url) let scoped = url.startAccessingSecurityScopedResource() defer { if scoped { url.stopAccessingSecurityScopedResource() } } let path = url.path + // Each failure is collected for one summary instead of replacing the last toast. + engine.dismissError() do { let descriptor = FetchDescriptor(predicate: #Predicate { $0.id == path }) + let imported: Bool if let track = try context.fetch(descriptor).first { + let previousStems = track.vocalStemURL.deletingLastPathComponent() // Reimport must inspect current bytes even when the source path is unchanged. if let data = await engine.loadAndSplitAudio(url: url) { track.vocalStemURL = data.vocalStemURL @@ -55,26 +83,42 @@ final class ImportCoordinator { do { try context.save() } catch { context.rollback(); throw error } engine.updateTrackTitle(id: track.id, newTitle: track.title) - } + if !engine.isExporting { Self.removeReplacedCache(previousStems, context: context) } + imported = true + } else { imported = false } } else if let data = await engine.loadAndSplitAudio(url: url) { - let track = TrackModel(id: data.id, title: data.title, originalURL: data.originalURL, + let track = TrackModel(id: data.id, title: Self.title(for: url), originalURL: data.originalURL, vocalStemURL: data.vocalStemURL, bassStemURL: data.bassStemURL, drumStemURL: data.drumStemURL, otherStemURL: data.otherStemURL) context.insert(track) do { try context.save() } catch { context.rollback(); throw error } + // Keep Now Playing on the library title rather than switching to tag metadata. + engine.updateTrackTitle(id: track.id, newTitle: track.title) count += 1 lastTitle = track.title + imported = true + } else { imported = false } + if engine.lastImportCancelled { + notImported = audio.count - index - 1 + break + } + if !imported { + failures.append((url.lastPathComponent, Self.reason(from: engine.errorMessage))) } - if engine.lastImportCancelled { break } } catch { - engine.showError("Could not save the library: \(error.localizedDescription)") + saveError = error break } } if count > 0, !NSApp.isActive { MenuBarManager.shared.sendBatchCompletionNotification(count: count, lastTitle: lastTitle) } + if let saveError { + engine.showError("Could not save the library: \(saveError.localizedDescription)") + } else if let summary = Self.summary(failures: failures, total: audio.count, notImported: notImported) { + engine.showError(summary) + } } } @@ -103,4 +147,70 @@ final class ImportCoordinator { } return true } + + /// Supported audio files in the given order; folders contribute their audio + /// files recursively in Finder name order. A file listed twice is imported once. + nonisolated static func audioFiles(in urls: [URL]) -> [URL] { + var seen = Set() + var files: [URL] = [] + func add(_ url: URL) { + if extensions.contains(url.pathExtension.lowercased()), seen.insert(url.standardizedFileURL.path).inserted { + files.append(url) + } + } + for url in urls where url.isFileURL { + let values = try? url.resourceValues(forKeys: [.isDirectoryKey, .isPackageKey]) + guard values?.isDirectory == true, values?.isPackage != true else { + add(url) + continue + } + let contents = FileManager.default.enumerator(at: url, includingPropertiesForKeys: nil, + options: [.skipsHiddenFiles, .skipsPackageDescendants]) + let found = (contents?.allObjects.compactMap { $0 as? URL } ?? []) + .sorted { $0.path.localizedStandardCompare($1.path) == .orderedAscending } + found.forEach(add) + } + return files + } + + /// Finder's name without the extension, so "AC/DC" is not shown as "AC:DC". + nonisolated static func title(for url: URL) -> String { + let name = FileManager.default.displayName(atPath: url.path) + // Finder omits the extension from displayName only when it is hidden. + let suffix = "." + url.pathExtension + guard !url.pathExtension.isEmpty, name.lowercased().hasSuffix(suffix.lowercased()) else { return name } + return String(name.dropLast(suffix.count)) + } + + /// Deletes a stem folder that a reimport replaced, unless a track still uses it. + static func removeReplacedCache(_ directory: URL, context: ModelContext) { + let path = directory.standardizedFileURL.path + guard StemCache.owns(directory), FileManager.default.fileExists(atPath: path), + let tracks = try? context.fetch(FetchDescriptor()), + !tracks.contains(where: { $0.vocalStemURL.deletingLastPathComponent().standardizedFileURL.path == path }) + else { return } + try? FileManager.default.removeItem(at: directory) + } + + private static func reason(from message: String?) -> String { + guard let message, !message.isEmpty else { return "The import did not finish." } + let prefix = "Import failed: " + return message.hasPrefix(prefix) ? String(message.dropFirst(prefix.count)) : message + } + + /// One message naming every failed file, so earlier failures are not lost. + static func summary(failures: [(name: String, reason: String)], total: Int, notImported: Int) -> String? { + var parts: [String] = [] + if total == 1, let failure = failures.first { + parts.append("Could not import '\(failure.name)': \(failure.reason)") + } else if !failures.isEmpty { + let listed = failures.prefix(3).map { "'\($0.name)': \($0.reason)" } + let more = failures.count > 3 ? " (+\(failures.count - 3) more)" : "" + parts.append("\(failures.count) of \(total) files could not be imported. " + listed.joined(separator: " ") + more) + } + if notImported > 0 { + parts.append("Import cancelled; \(notImported) remaining \(notImported == 1 ? "file was" : "files were") not imported.") + } + return parts.isEmpty ? nil : parts.joined(separator: " ") + } } diff --git a/Tests/IsolateTests/SeparationFixTests.swift b/Tests/IsolateTests/SeparationFixTests.swift index 22ed094..5a399d4 100644 --- a/Tests/IsolateTests/SeparationFixTests.swift +++ b/Tests/IsolateTests/SeparationFixTests.swift @@ -468,4 +468,151 @@ final class SeparationFixTests: XCTestCase { XCTAssertNoThrow(try StemCache.ensureSpace(forFrames: nil)) XCTAssertNoThrow(try StemCache.ensureSpace(forFrames: 44_100)) } + + // MARK: - Replaced caches (library-3) + + func testReimportRemovesReplacedCacheOnlyWhenNoTrackUsesIt() async throws { + let container = try ModelContainer(for: TrackModel.self, configurations: ModelConfiguration(isStoredInMemoryOnly: true)) + let context = container.mainContext + let source = try stereo("reimport.wav", amplitude: 0.22) + let current = try cache(for: source) + defer { try? FileManager.default.removeItem(at: current) } + func staleCache() throws -> URL { + let stale = StemCache.root.appending(path: "stale-\(UUID().uuidString)") + try FileManager.default.createDirectory(at: stale, withIntermediateDirectories: true) + for name in DemucsEngine.stemNames + ["original"] { + try FileManager.default.copyItem(at: source, to: stale.appending(path: "\(name).wav")) + } + return stale + } + func record(id: String, stems: URL) -> TrackModel { + TrackModel(id: id, title: "Reimport", originalURL: source, + vocalStemURL: stems.appending(path: "vocals.wav"), bassStemURL: stems.appending(path: "bass.wav"), + drumStemURL: stems.appending(path: "drums.wav"), otherStemURL: stems.appending(path: "other.wav")) + } + let engine = AudioEngineManager() + let importer = ImportCoordinator() + + let orphaned = try staleCache() + let track = record(id: source.path, stems: orphaned) + context.insert(track) + try context.save() + importer.importFiles([source], context: context, engine: engine) + while importer.isImporting { try await Task.sleep(for: .milliseconds(20)) } + XCTAssertEqual(track.vocalStemURL.deletingLastPathComponent().standardizedFileURL, current.standardizedFileURL) + XCTAssertFalse(FileManager.default.fileExists(atPath: orphaned.path), "The replaced cache must be deleted") + + let shared = try staleCache() + defer { try? FileManager.default.removeItem(at: shared) } + track.vocalStemURL = shared.appending(path: "vocals.wav") + track.drumStemURL = shared.appending(path: "drums.wav") + track.bassStemURL = shared.appending(path: "bass.wav") + track.otherStemURL = shared.appending(path: "other.wav") + context.insert(record(id: "another-source", stems: shared)) + try context.save() + importer.importFiles([source], context: context, engine: engine) + while importer.isImporting { try await Task.sleep(for: .milliseconds(20)) } + XCTAssertEqual(track.vocalStemURL.deletingLastPathComponent().standardizedFileURL, current.standardizedFileURL) + XCTAssertTrue(FileManager.default.fileExists(atPath: shared.path), "A cache another track uses must be kept") + XCTAssertTrue(FileManager.default.fileExists(atPath: current.path)) + + // Unchanged bytes map to the folder the track already uses. + importer.importFiles([source], context: context, engine: engine) + while importer.isImporting { try await Task.sleep(for: .milliseconds(20)) } + XCTAssertNotNil(StemCache.validFiles(in: current)) + + // Folders outside the cache root are never deleted. + ImportCoordinator.removeReplacedCache(directory, context: context) + XCTAssertTrue(FileManager.default.fileExists(atPath: directory.path)) + engine.unloadTrack() + } + + // MARK: - Batch failures (separation-2, separation-10) + + func testBatchFailuresAreSummarisedByName() { + XCTAssertNil(ImportCoordinator.summary(failures: [], total: 3, notImported: 0)) + XCTAssertEqual(ImportCoordinator.summary(failures: [("a.mp3", "Damaged.")], total: 1, notImported: 0), + "Could not import 'a.mp3': Damaged.") + let many = (1...5).map { ("\($0).flac", "Reason \($0).") } + let summary = try? XCTUnwrap(ImportCoordinator.summary(failures: many, total: 9, notImported: 2)) + XCTAssertEqual(summary, "5 of 9 files could not be imported. '1.flac': Reason 1. '2.flac': Reason 2. '3.flac': Reason 3. (+2 more) Import cancelled; 2 remaining files were not imported.") + XCTAssertEqual(ImportCoordinator.summary(failures: [], total: 4, notImported: 1), + "Import cancelled; 1 remaining file was not imported.") + } + + func testBatchReportsEveryFailedFileAndResetsBatchState() async throws { + let container = try ModelContainer(for: TrackModel.self, configurations: ModelConfiguration(isStoredInMemoryOnly: true)) + let good = try stereo("good.wav", amplitude: 0.23) + let cached = try cache(for: good) + defer { try? FileManager.default.removeItem(at: cached) } + let first = directory.appending(path: "first.wav") + let second = directory.appending(path: "second.m4a") + try Data(repeating: 0x42, count: 2048).write(to: first) + try Data(repeating: 0x43, count: 2048).write(to: second) + let importer = ImportCoordinator() + let engine = AudioEngineManager() + importer.importFiles([first, good, second], context: container.mainContext, engine: engine) + var sawBatch = false + while importer.isImporting { + if importer.batchCount == 3, importer.currentFileName != nil { sawBatch = true } + try await Task.sleep(for: .milliseconds(5)) + } + XCTAssertTrue(sawBatch) + let message = try XCTUnwrap(engine.errorMessage) + XCTAssertTrue(message.hasPrefix("2 of 3 files could not be imported."), message) + XCTAssertTrue(message.contains("'first.wav'") && message.contains("'second.m4a'"), message) + XCTAssertEqual(try container.mainContext.fetchCount(FetchDescriptor()), 1) + XCTAssertNil(importer.currentFileName) + XCTAssertEqual(importer.batchIndex, 0) + XCTAssertEqual(importer.batchCount, 0) + engine.unloadTrack() + } + + // MARK: - Folders and titles (separation-11, separation-12) + + func testFoldersExpandToSupportedAudioInFinderOrder() throws { + let fm = FileManager.default + let album = directory.appending(path: "Album") + try fm.createDirectory(at: album.appending(path: "Disc 2"), withIntermediateDirectories: true) + for name in ["10 c.flac", "02 b.mp3", "1 a.wav", "notes.txt", ".hidden.wav", "Disc 2/01 d.m4a", "cover.AIFC"] { + try Data().write(to: album.appending(path: name)) + } + let loose = directory.appending(path: "single.mp3") + try Data().write(to: loose) + let found = ImportCoordinator.audioFiles(in: [loose, album, album.appending(path: "02 b.mp3")]) + let base = directory.resolvingSymlinksInPath().path + "/" + XCTAssertEqual(found.map { $0.resolvingSymlinksInPath().path.replacingOccurrences(of: base, with: "") }, + ["single.mp3", "Album/1 a.wav", "Album/02 b.mp3", "Album/10 c.flac", "Album/cover.AIFC", "Album/Disc 2/01 d.m4a"]) + } + + func testFolderWithoutAudioShowsAnError() async throws { + let container = try ModelContainer(for: TrackModel.self, configurations: ModelConfiguration(isStoredInMemoryOnly: true)) + let folder = directory.appending(path: "Documents") + try FileManager.default.createDirectory(at: folder, withIntermediateDirectories: true) + try Data("text".utf8).write(to: folder.appending(path: "readme.txt")) + let importer = ImportCoordinator() + let engine = AudioEngineManager() + importer.importFiles([folder], context: container.mainContext, engine: engine) + while importer.isImporting { try await Task.sleep(for: .milliseconds(20)) } + XCTAssertTrue(engine.errorMessage?.contains("folder") == true) + } + + func testTitlesUseFinderDisplayNames() async throws { + XCTAssertEqual(ImportCoordinator.title(for: directory.appending(path: "Song v1.2.mp3")), "Song v1.2") + let container = try ModelContainer(for: TrackModel.self, configurations: ModelConfiguration(isStoredInMemoryOnly: true)) + // Finder shows a POSIX ":" as "/". + let source = try stereo("AC:DC - Back.wav", amplitude: 0.24) + XCTAssertEqual(ImportCoordinator.title(for: source), "AC/DC - Back") + let cached = try cache(for: source) + defer { try? FileManager.default.removeItem(at: cached) } + let importer = ImportCoordinator() + let engine = AudioEngineManager() + importer.importFiles([source], context: container.mainContext, engine: engine) + while importer.isImporting { try await Task.sleep(for: .milliseconds(20)) } + let track = try XCTUnwrap(try container.mainContext.fetch(FetchDescriptor()).first) + XCTAssertEqual(track.title, "AC/DC - Back") + try await Task.sleep(for: .milliseconds(200)) + XCTAssertEqual(engine.trackTitle, "AC/DC - Back", "Now Playing must keep the library title after metadata loads") + engine.unloadTrack() + } } From e66643483f3566640cc4ff765e21bb8752e76637 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:30:36 -0500 Subject: [PATCH 23/89] fix(audio): start stems together and pause through the engine play(at:) blocks for about one output IO cycle per player, so the fixed 30 ms lead let drums, bass, other and the original start 10-43 ms after vocals on every play, seek, loop wrap and autoplay. Size the lead from the device IO buffer, check the calls finished in time, and reschedule from the same frame with a longer lead if they did not. Pause now pauses the engine instead of each player, which freezes all five on one render cycle (no drift across pause/resume), resumes without play(at:) calls, and releases the output device so the Mac can idle-sleep. The engine also idles after the track ends and on unload. Imports pause playback directly because togglePlayback() ignores requests while splitting. Seeks and unloads flush the time/pitch tail from the old position; loop wraps keep it. Seeking to the end while looping wraps to the loop start. Co-Authored-By: Claude Opus 5.5 --- Sources/App/AudioEngineManager.swift | 122 ++++++++++++++---- Tests/IsolateTests/EngineFixTests.swift | 164 ++++++++++++++++++++++++ 2 files changed, 260 insertions(+), 26 deletions(-) create mode 100644 Tests/IsolateTests/EngineFixTests.swift diff --git a/Sources/App/AudioEngineManager.swift b/Sources/App/AudioEngineManager.swift index 795ae5e..7b3dbf1 100644 --- a/Sources/App/AudioEngineManager.swift +++ b/Sources/App/AudioEngineManager.swift @@ -898,6 +898,9 @@ public final class AudioEngineManager { bassPlayer.stop() otherPlayer.stop() originalPlayer.stop() + // Release the output device and drop the previous track's buffered tail. + engine.pause() + timePitchNode.reset() isPlaying = false playbackClock.timer?.invalidate() playbackClock.timer = nil @@ -967,7 +970,8 @@ public final class AudioEngineManager { etaRemainingString = "ESTIMATING..." splitStatusMessage = "CHECKING AUDIO..." liveSpeedSubtitle = "ON-DEVICE CORE ML PROCESSING" - if isPlaying { togglePlayback() } + // togglePlayback() ignores requests while splitting, so pause directly. + if isPlaying { pausePlayback() } let requestID = UUID() splitRequestID = requestID let task = Task { [weak self] in @@ -1242,14 +1246,26 @@ public final class AudioEngineManager { // MARK: - Synchronized Playback Graph Scheduling private func onPlaybackEnded() { - guard isPlaying else { return } - if isLooping { - seek(toPercentage: loopStartProgress) + if isPlaying && isLooping { + seek(toPercentage: loopStartProgress, flushTail: false) } else { + // Also reached when a pause lands while this completion is queued: the players + // have nothing left, so the next Play must restart instead of resuming them. stopPlayers() playbackProgress = 1 updateTimeString(for: 1) NowPlayingManager.shared.updateNowPlayingPlaybackState() + releaseOutputAfterTail() + } + } + + /// Lets the limiter and time/pitch tails play out, then idles the output device + /// so the Mac can sleep. playSynced() restarts the engine. + private func releaseOutputAfterTail() { + Task { @MainActor [weak self] in + try? await Task.sleep(for: .milliseconds(500)) + guard let self, !self.isPlaying else { return } + self.engine.pause() } } @@ -1270,6 +1286,8 @@ public final class AudioEngineManager { @MainActor private func playSynced() { guard fileVocals != nil else { return } + // Players left running by pausePlayback() resume together with the engine. + let resumesPausedPlayers = vocalPlayer.isPlaying if !engine.isRunning { do { try engine.start() @@ -1278,35 +1296,68 @@ public final class AudioEngineManager { return } } - let startHostTime = mach_absolute_time() + AVAudioTime.hostTime(forSeconds: 0.03) - let startTime = AVAudioTime(hostTime: startHostTime) - - vocalPlayer.play(at: startTime) - drumPlayer.play(at: startTime) - bassPlayer.play(at: startTime) - otherPlayer.play(at: startTime) - if audioFile != nil { originalPlayer.play(at: startTime) } + if !resumesPausedPlayers { startPlayersTogether() } self.isPlaying = true self.startPlaybackTimer() NowPlayingManager.shared.updateNowPlayingPlaybackState() } + + /// play(at:) waits for about one output IO cycle per player, and a player whose start + /// time has already passed begins on a later cycle than the others. Lead by the whole + /// call sequence plus the render-ahead margin; if the calls still overran it, reschedule + /// from the same frame and retry with a longer lead. + private func startPlayersTogether() { + var players = [vocalPlayer, drumPlayer, bassPlayer, otherPlayer] + if audioFile != nil { players.append(originalPlayer) } + let cycle = outputCycleDuration() + let margin = 4 * cycle + engine.outputNode.presentationLatency + 0.005 + var lead = Double(players.count + 1) * cycle + margin + for attempt in 1...3 { + let startHostTime = mach_absolute_time() + AVAudioTime.hostTime(forSeconds: lead) + let startTime = AVAudioTime(hostTime: startHostTime) + for player in players { player.play(at: startTime) } + let startedTogether = mach_absolute_time() + AVAudioTime.hostTime(forSeconds: margin) <= startHostTime + guard !startedTogether, attempt < 3 else { return } + stopPlayers() + timePitchNode.reset() + schedulePlayers(from: seekFrameOffset) + lead *= 2 + } + } + + /// One output IO cycle, never taken as shorter than 512 frames. + private func outputCycleDuration() -> TimeInterval { + var frames: UInt32 = 0 + var size = UInt32(MemoryLayout.size) + if let unit = engine.outputNode.audioUnit { + AudioUnitGetProperty(unit, kAudioDevicePropertyBufferFrameSize, kAudioUnitScope_Global, 0, &frames, &size) + } + let rate = engine.outputNode.outputFormat(forBus: 0).sampleRate + return Double(max(frames, 512)) / (rate > 0 ? rate : 44_100) + } + + /// Pausing the engine rather than each player freezes all five on the same render cycle, + /// keeps buffered tails for a seamless resume, and releases the output device so the Mac + /// can idle-sleep. playSynced() restarts the engine to resume. + private func pausePlayback() { + engine.pause() + playbackClock.timer?.invalidate() + isPlaying = false + clearVisualizers() + NowPlayingManager.shared.updateNowPlayingPlaybackState() + } + + /// Engine state for tests; false while paused or stopped. + var isOutputRunning: Bool { engine.isRunning } @MainActor public func togglePlayback() { guard fileVocals != nil, !isSplitting else { return } if isPlaying { - vocalPlayer.pause() - drumPlayer.pause() - bassPlayer.pause() - otherPlayer.pause() - originalPlayer.pause() - playbackClock.timer?.invalidate() - isPlaying = false - clearVisualizers() - NowPlayingManager.shared.updateNowPlayingPlaybackState() + pausePlayback() } else { - if playbackProgress >= 1 { seek(toPercentage: 0) } + if playbackProgress >= 1 { seek(toPercentage: isLooping ? loopStartProgress : 0) } playSynced() } } @@ -1329,7 +1380,7 @@ public final class AudioEngineManager { let progress = max(0, min(1, elapsed / duration)) if self.isLooping && progress >= self.loopEndProgress { - self.seek(toPercentage: self.loopStartProgress) + self.seek(toPercentage: self.loopStartProgress, flushTail: false) return } @@ -1376,11 +1427,23 @@ public final class AudioEngineManager { } public func seek(toPercentage percentage: Double) { + seek(toPercentage: percentage, flushTail: true) + } + + /// Loop wraps keep the time/pitch tail so the end of the region stays audible; other + /// seeks flush it so audio from the old position is not heard after the jump. + private func seek(toPercentage percentage: Double, flushTail: Bool) { guard percentage.isFinite, let vocals = fileVocals, - let drums = fileDrums, let bass = fileBass, let other = fileOther else { return } + fileDrums != nil, fileBass != nil, fileOther != nil else { return } let progress = max(0, min(1, percentage)) + // Reaching the end while looping wraps to the loop start, like a natural end. + if progress >= 1 && isPlaying && isLooping { + seek(toPercentage: loopStartProgress, flushTail: flushTail) + return + } let wasPlaying = isPlaying stopPlayers() + if flushTail { timePitchNode.reset() } let totalFrames = vocals.length let target = min(totalFrames, max(0, AVAudioFramePosition(Double(totalFrames) * progress))) seekFrameOffset = target @@ -1389,10 +1452,18 @@ public final class AudioEngineManager { let duration = totalTrackDuration ?? 0 NowPlayingManager.shared.updateNowPlayingProgress(elapsed: duration * progress, duration: duration) guard target < totalFrames else { + engine.pause() NowPlayingManager.shared.updateNowPlayingPlaybackState() return } - let count = AVAudioFrameCount(min(Int64(UInt32.max), totalFrames - target)) + schedulePlayers(from: target) + if wasPlaying { playSynced() } + } + + private func schedulePlayers(from target: AVAudioFramePosition) { + guard let vocals = fileVocals, let drums = fileDrums, let bass = fileBass, + let other = fileOther, target < vocals.length else { return } + let count = AVAudioFrameCount(min(Int64(UInt32.max), vocals.length - target)) let session = playbackSessionID vocalPlayer.scheduleSegment(vocals, startingFrame: target, frameCount: count, at: nil, completionCallbackType: .dataPlayedBack) { [weak self] _ in @@ -1407,6 +1478,5 @@ public final class AudioEngineManager { if let audioFile { originalPlayer.scheduleSegment(audioFile, startingFrame: target, frameCount: count, at: nil) } - if wasPlaying { playSynced() } } } diff --git a/Tests/IsolateTests/EngineFixTests.swift b/Tests/IsolateTests/EngineFixTests.swift new file mode 100644 index 0000000..6b1430c --- /dev/null +++ b/Tests/IsolateTests/EngineFixTests.swift @@ -0,0 +1,164 @@ +import XCTest +import AVFoundation +@testable import Isolate + +@MainActor +final class EngineFixTests: XCTestCase { + private var directory: URL! + + override func setUpWithError() throws { + directory = FileManager.default.temporaryDirectory.appending(path: UUID().uuidString) + try FileManager.default.createDirectory(at: directory, withIntermediateDirectories: true) + } + + override func tearDownWithError() throws { + try FileManager.default.removeItem(at: directory) + } + + /// Deterministic white noise. Stems written with scales 3, -1, -1, -1 sum to exact + /// silence only while all four players render the same source frame. + private func noise(_ url: URL, seconds: Double, scale: Float) throws { + let frames = Int(44_100 * seconds) + let buffer = AVAudioPCMBuffer(pcmFormat: StreamingAudio.format, frameCapacity: AVAudioFrameCount(frames))! + buffer.frameLength = buffer.frameCapacity + var state: UInt64 = 0x9E37_79B9_7F4A_7C15 + for frame in 0..> 40) / Float(1 << 24) * 2 - 1) * 0.1 * scale + buffer.floatChannelData![0][frame] = sample + buffer.floatChannelData![1][frame] = sample + } + let file = try AVAudioFile(forWriting: url, settings: StreamingAudio.settings) + try file.write(from: buffer) + } + + private func cancellingTrack(seconds: Double = 6, title: String = "Sync Probe", + folder: String = "stems") throws -> TrackModel { + let stems = directory.appending(path: folder) + try FileManager.default.createDirectory(at: stems, withIntermediateDirectories: true) + let original = stems.appending(path: "original.wav") + try noise(original, seconds: seconds, scale: 1) + let scales: [Float] = [3, -1, -1, -1] + let urls = DemucsEngine.stemNames.map { stems.appending(path: "\($0).wav") } + for (url, scale) in zip(urls, scales) { try noise(url, seconds: seconds, scale: scale) } + return TrackModel(id: original.path, title: title, originalURL: original, + vocalStemURL: urls[0], bassStemURL: urls[2], drumStemURL: urls[1], otherStemURL: urls[3]) + } + + private func requirePlayback(_ engine: AudioEngineManager) throws { + guard engine.isPlaying else { + throw XCTSkip("No audio output device: \(engine.errorMessage ?? "playback did not start")") + } + } + + /// Polls the live meters. Returns the loudest master waveform block and each stem's peak. + private func observeMeters(_ engine: AudioEngineManager, for duration: Duration = .milliseconds(600)) async throws -> (master: Float, stems: [Float]) { + var master: Float = 0 + var stems = [Float](repeating: 0, count: 4) + let clock = ContinuousClock() + let end = clock.now + duration + while clock.now < end { + try await Task.sleep(for: .milliseconds(15)) + master = max(master, engine.masterWaveformAmplitudes.max() ?? 0) + for index in stems.indices { stems[index] = max(stems[index], engine.stemPeaks[index]) } + } + return (master, stems) + } + + private func assertStemsAligned(_ engine: AudioEngineManager, _ label: String, + file: StaticString = #filePath, line: UInt = #line) async throws { + let reading = try await observeMeters(engine) + // Every stem must be audible on its own, or silence would prove nothing. + for (index, peak) in reading.stems.enumerated() { + XCTAssertGreaterThan(peak, 0.05, "\(label): stem \(index) did not play", file: file, line: line) + } + // The waveform floor is 0.05; any inter-stem offset leaves uncancelled noise far above it. + XCTAssertLessThan(reading.master, 0.06, "\(label): stems started out of sync", file: file, line: line) + } + + func testStemsStaySampleAlignedAcrossStartSeekAndPauseResume() async throws { + let engine = AudioEngineManager() + await engine.loadTrack(try cancellingTrack()) + try requirePlayback(engine) + try await assertStemsAligned(engine, "autoplay") + + engine.seek(toPercentage: 0.4) + XCTAssertTrue(engine.isPlaying) + try await assertStemsAligned(engine, "seek while playing") + + for cycle in 0..<4 { + engine.togglePlayback() + XCTAssertFalse(engine.isPlaying) + try await Task.sleep(for: .milliseconds(60)) + engine.togglePlayback() + XCTAssertTrue(engine.isPlaying) + try await Task.sleep(for: .milliseconds(120)) + if cycle == 3 { try await assertStemsAligned(engine, "pause/resume") } + } + engine.unloadTrack() + } + + func testPauseEndAndUnloadReleaseTheOutputDevice() async throws { + let engine = AudioEngineManager() + await engine.loadTrack(try cancellingTrack()) + try requirePlayback(engine) + XCTAssertTrue(engine.isOutputRunning) + engine.togglePlayback() + XCTAssertFalse(engine.isOutputRunning, "A paused player must not keep the audio device awake") + engine.togglePlayback() + XCTAssertTrue(engine.isPlaying) + XCTAssertTrue(engine.isOutputRunning) + engine.unloadTrack() + XCTAssertFalse(engine.isOutputRunning) + + await engine.loadTrack(try cancellingTrack(seconds: 0.4, folder: "short")) + try requirePlayback(engine) + try await Task.sleep(for: .milliseconds(1600)) + XCTAssertFalse(engine.isPlaying) + XCTAssertEqual(engine.playbackProgress, 1) + XCTAssertFalse(engine.isOutputRunning, "The engine must idle once the track has ended") + engine.unloadTrack() + } + + func testImportPausesPlaybackBeforeSeparating() async throws { + let model = try cancellingTrack(seconds: 1) + let cache = StemCache.root.appending(path: try StemCache.key(for: model.originalURL)) + try FileManager.default.createDirectory(at: cache, withIntermediateDirectories: true) + defer { try? FileManager.default.removeItem(at: cache) } + let stems = model.originalURL.deletingLastPathComponent() + for name in DemucsEngine.stemNames + ["original"] { + try FileManager.default.copyItem(at: stems.appending(path: "\(name).wav"), to: cache.appending(path: "\(name).wav")) + } + let engine = AudioEngineManager() + await engine.loadTrack(model) + try requirePlayback(engine) + let request = Task { await engine.loadAndSplitAudio(url: model.originalURL) } + let deadline = Date.now.addingTimeInterval(5) + while !engine.isSplitting && Date.now < deadline { await Task.yield() } + XCTAssertTrue(engine.isSplitting) + XCTAssertFalse(engine.isPlaying, "Starting an import must pause the playing track") + XCTAssertFalse(engine.isOutputRunning) + let imported = await request.value + XCTAssertEqual(imported?.title, "original") + engine.unloadTrack() + } + + func testSeekingToTheEndWhileLoopingWrapsToTheLoopStart() async throws { + let engine = AudioEngineManager() + await engine.loadTrack(try cancellingTrack()) + try requirePlayback(engine) + engine.setLoopStart(0.3) + engine.seek(toPercentage: 1) + XCTAssertTrue(engine.isPlaying) + XCTAssertEqual(engine.playbackProgress, 0.3, accuracy: 1e-9) + + engine.togglePlayback() + engine.seek(toPercentage: 1) + XCTAssertFalse(engine.isPlaying) + XCTAssertEqual(engine.playbackProgress, 1) + engine.togglePlayback() + XCTAssertTrue(engine.isPlaying) + XCTAssertEqual(engine.playbackProgress, 0.3, accuracy: 1e-9, "Play at the end resumes the loop, not 0:00") + engine.unloadTrack() + } +} From 60ce9e27a039079d018a2badcb9dd54db0019784 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:31:55 -0500 Subject: [PATCH 24/89] fix(audio): keep loops and mixes across reselection and bad entries The shortest A-B loop was 2% of the track (7.2 s on a six-minute song), so short phrases could not be looped. Use a half-second minimum instead. Pressing [ at or after B, or ] at or before A, now starts a new region rather than clamping back into the old one. Reselecting the loaded track (or Next/Previous in a one-track library) no longer reloads it and resets the mix, loop, speed and position. Selecting an entry whose stems and source are both missing shows the error without unloading a different track that is playing. Co-Authored-By: Claude Opus 5.5 --- Sources/App/AudioEngineManager.swift | 23 +++++++- Tests/IsolateTests/EngineFixTests.swift | 76 +++++++++++++++++++++++++ 2 files changed, 96 insertions(+), 3 deletions(-) diff --git a/Sources/App/AudioEngineManager.swift b/Sources/App/AudioEngineManager.swift index 7b3dbf1..02da232 100644 --- a/Sources/App/AudioEngineManager.swift +++ b/Sources/App/AudioEngineManager.swift @@ -182,16 +182,29 @@ public final class AudioEngineManager { isLooping.toggle() } + /// Shortest A–B region in seconds, so short phrases can be looped on long tracks. + nonisolated static let minimumLoopSeconds = 0.5 + + nonisolated static func minimumLoopProgress(duration: Double?) -> Double { + guard let duration, duration > 0 else { return 0.02 } + return min(0.5, minimumLoopSeconds / duration) + } + public func setLoopStart(_ progress: Double) { guard progress.isFinite else { return } - loopStartProgress = max(0.0, min(progress, loopEndProgress - 0.02)) + let gap = Self.minimumLoopProgress(duration: totalTrackDuration) + // A start at or past the current end begins a new region instead of clamping backwards. + if progress >= loopEndProgress { loopEndProgress = 1.0 } + loopStartProgress = max(0.0, min(progress, loopEndProgress - gap)) isLooping = true Haptics.playClick() } public func setLoopEnd(_ progress: Double) { guard progress.isFinite else { return } - loopEndProgress = min(1.0, max(progress, loopStartProgress + 0.02)) + let gap = Self.minimumLoopProgress(duration: totalTrackDuration) + if progress <= loopStartProgress { loopStartProgress = 0.0 } + loopEndProgress = min(1.0, max(progress, loopStartProgress + gap)) isLooping = true Haptics.playClick() } @@ -840,6 +853,9 @@ public final class AudioEngineManager { public func loadTrack(_ track: TrackModel) async { guard !isSplitting else { return } + // Reselecting the loaded track keeps its mix, loop, speed and position. + if track.id == currentTrackID, let loaded = fileVocals?.url, + loaded.standardizedFileURL == track.vocalStemURL.standardizedFileURL { return } lastImportCancelled = false let urls = [track.vocalStemURL, track.drumStemURL, track.bassStemURL, track.otherStemURL] do { @@ -850,7 +866,8 @@ public final class AudioEngineManager { if !AppPreferences.defaults.bool(forKey: "isAutoPlayDisabled") { playSynced() } } catch { guard FileManager.default.fileExists(atPath: track.originalURL.path) else { - unloadTrack() + // A broken entry must not stop a different track that is playing. + if currentTrackID == track.id { unloadTrack() } showError("AUDIO SOURCE NOT FOUND: '\(track.title)'. Reimport the original file to rebuild its stems.") return } diff --git a/Tests/IsolateTests/EngineFixTests.swift b/Tests/IsolateTests/EngineFixTests.swift index 6b1430c..a8fa621 100644 --- a/Tests/IsolateTests/EngineFixTests.swift +++ b/Tests/IsolateTests/EngineFixTests.swift @@ -143,6 +143,82 @@ final class EngineFixTests: XCTestCase { engine.unloadTrack() } + func testReselectingTheLoadedTrackKeepsMixLoopAndSpeed() async throws { + let track = try cancellingTrack() + let engine = AudioEngineManager() + await engine.loadTrack(track) + engine.vocalVolume = 0.5 + engine.drumPan = -0.5 + engine.bassSolo = true + engine.playbackRate = 0.75 + engine.setLoopStart(0.2) + engine.setLoopEnd(0.4) + let sameEntry = TrackModel(id: track.id, title: track.title, originalURL: track.originalURL, + vocalStemURL: track.vocalStemURL, bassStemURL: track.bassStemURL, + drumStemURL: track.drumStemURL, otherStemURL: track.otherStemURL) + for selection in [track, sameEntry] { + await engine.loadTrack(selection) + XCTAssertEqual(engine.vocalVolume, 0.5) + XCTAssertEqual(engine.drumPan, -0.5) + XCTAssertTrue(engine.bassSolo) + XCTAssertEqual(engine.playbackRate, 0.75) + XCTAssertTrue(engine.isLooping) + XCTAssertEqual(engine.loopStartProgress, 0.2, accuracy: 1e-9) + XCTAssertEqual(engine.loopEndProgress, 0.4, accuracy: 1e-9) + } + engine.unloadTrack() + } + + func testSelectingABrokenEntryKeepsTheCurrentTrack() async throws { + let track = try cancellingTrack(seconds: 1) + let engine = AudioEngineManager() + await engine.loadTrack(track) + engine.vocalVolume = 0.5 + let missing = directory.appending(path: "missing") + let broken = TrackModel(id: missing.appending(path: "gone.mp3").path, title: "Gone", + originalURL: missing.appending(path: "gone.mp3"), + vocalStemURL: missing.appending(path: "vocals.wav"), + bassStemURL: missing.appending(path: "bass.wav"), + drumStemURL: missing.appending(path: "drums.wav"), + otherStemURL: missing.appending(path: "other.wav")) + await engine.loadTrack(broken) + XCTAssertTrue(engine.errorMessage?.contains("NOT FOUND") == true) + XCTAssertEqual(engine.currentTrackID, track.id) + XCTAssertTrue(engine.hasLoadedTrack) + XCTAssertEqual(engine.vocalVolume, 0.5) + engine.unloadTrack() + } + + func testLoopMarkersUseAbsoluteMinimumAndStartNewRegions() async throws { + // Six minutes: a 4 s phrase must keep its end marker (2% would force 7.2 s). + XCTAssertEqual(AudioEngineManager.minimumLoopProgress(duration: 360), 0.5 / 360, accuracy: 1e-12) + XCTAssertLessThan(AudioEngineManager.minimumLoopProgress(duration: 360), 4.0 / 360) + XCTAssertEqual(AudioEngineManager.minimumLoopProgress(duration: 0.4), 0.5) + XCTAssertEqual(AudioEngineManager.minimumLoopProgress(duration: nil), 0.02) + + let engine = AudioEngineManager() + engine.setLoopEnd(0.3) + engine.setLoopStart(0.8) + XCTAssertEqual(engine.loopStartProgress, 0.8) + XCTAssertEqual(engine.loopEndProgress, 1.0, "A start after the old end begins a new region") + engine.resetLoop() + XCTAssertFalse(engine.isLooping) + engine.setLoopStart(0.6) + engine.setLoopEnd(0.2) + XCTAssertEqual(engine.loopStartProgress, 0) + XCTAssertEqual(engine.loopEndProgress, 0.2, "An end before the old start begins a new region") + XCTAssertTrue(engine.isLooping) + + await engine.loadTrack(try cancellingTrack()) + engine.resetLoop() + engine.setLoopStart(0.5) + engine.setLoopEnd(0.51) + XCTAssertEqual(engine.loopEndProgress, 0.5 + 0.5 / 6, accuracy: 1e-9) + engine.setLoopEnd(0.7) + XCTAssertEqual(engine.loopEndProgress, 0.7, accuracy: 1e-9) + engine.unloadTrack() + } + func testSeekingToTheEndWhileLoopingWrapsToTheLoopStart() async throws { let engine = AudioEngineManager() await engine.loadTrack(try cancellingTrack()) From 59747b71a632849950fcc388b103e9b117d6a373 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:32:48 -0500 Subject: [PATCH 25/89] fix(meters): analyse whole tap buffers and blank stems during compare Taps deliver about 100 ms per buffer regardless of the requested 1024 frames, and the spectrum only analysed the oldest 1024 frames. Analyse every FFT-sized hop, newest first, so recent audio and short transients register; 1024-frame buffers are processed exactly as before. Compare Original silences the stem sum after the per-stem taps, so the channel meters and spectra kept moving for stems nobody could hear. Clear them when bypass turns on and ignore stem readings while it is on. Co-Authored-By: Claude Opus 5.5 --- Sources/App/AudioEngineManager.swift | 7 +++++++ Sources/App/AudioMeterProcessor.swift | 16 ++++++++++---- Tests/IsolateTests/EngineFixTests.swift | 28 +++++++++++++++++++++++++ 3 files changed, 47 insertions(+), 4 deletions(-) diff --git a/Sources/App/AudioEngineManager.swift b/Sources/App/AudioEngineManager.swift index 02da232..08fb3d1 100644 --- a/Sources/App/AudioEngineManager.swift +++ b/Sources/App/AudioEngineManager.swift @@ -566,6 +566,8 @@ public final class AudioEngineManager { guard let reading = processor.process(buffer) else { return } Task { @MainActor [weak self] in guard let self, self.isPlaying else { return } + // Compare Original silences the stem sum after these taps. + if stem != nil && self.isBypassed && self.canBypass { return } if let stem { self.stemPeaks[stem] = reading.peak } switch stem { case 0: self.vocalEQMagnitudes = reading.spectrum @@ -629,6 +631,11 @@ public final class AudioEngineManager { if isBypassed && canBypass { stemsSumMixer.outputVolume = 0.0 originalPlayer.volume = 1.0 + stemPeaks = Array(repeating: 0, count: 4) + vocalEQMagnitudes = Array(repeating: 0, count: 7) + drumEQMagnitudes = Array(repeating: 0, count: 7) + bassEQMagnitudes = Array(repeating: 0, count: 7) + otherEQMagnitudes = Array(repeating: 0, count: 7) return } diff --git a/Sources/App/AudioMeterProcessor.swift b/Sources/App/AudioMeterProcessor.swift index 6c5617e..5d33d40 100644 --- a/Sources/App/AudioMeterProcessor.swift +++ b/Sources/App/AudioMeterProcessor.swift @@ -26,11 +26,19 @@ final class AudioMeterProcessor: @unchecked Sendable { guard now - lastUpdate >= 1.0 / 30.0, buffer.frameLength > 0, let channels = buffer.floatChannelData else { return nil } lastUpdate = now - fft.computeFFT(buffer: channels[0], frameCount: Int(buffer.frameLength), outMagnitudes: &magnitudes) + let frameCount = Int(buffer.frameLength) + for bin in magnitudes.indices { magnitudes[bin] = 0 } + // Taps deliver about 100 ms per buffer whatever size is requested. Analyse every + // FFT-sized hop, newest first, so recent audio and short transients register. // Preserve right-only and opposite-phase stereo content in the display. - for channel in 1.. 0.05 }) + engine.isBypassed = true + XCTAssertEqual(engine.stemPeaks, [0, 0, 0, 0]) + let bypassed = try await observeMeters(engine) + XCTAssertEqual(bypassed.stems, [0, 0, 0, 0], "Silenced stems must not show activity") + XCTAssertGreaterThan(bypassed.master, 0.1, "The original is audible and metered") + engine.isBypassed = false + engine.unloadTrack() + } + + func testMetersAnalyseTheNewestAudioInLongTapBuffers() throws { + // macOS delivers ~100 ms tap buffers; the tone sits only in the newest 1024 frames. + let buffer = AVAudioPCMBuffer(pcmFormat: StreamingAudio.format, frameCapacity: 4410)! + buffer.frameLength = 4410 + for channel in 0..<2 { + for frame in 0..<4410 { + buffer.floatChannelData![channel][frame] = frame < 3386 ? 0 : 0.2 * sin(Float(frame) * 2 * .pi * 440 / 44_100) + } + } + let reading = try XCTUnwrap(AudioMeterProcessor(bandCount: 32).process(buffer)) + XCTAssertGreaterThan(reading.spectrum.max() ?? 0, 0.1) + } } From b2b041d9be0ab76b81be85d4dc8a9c285747b9dc Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:33:54 -0500 Subject: [PATCH 26/89] fix(metadata): decode artwork and probe the source off the main actor The metadata task inherits the main actor, so full-resolution artwork decoding and the synchronous AVAudioFile open of the source ran on the main thread. Decode embedded covers as bounded ImageIO thumbnails (at most 1024 px, oversized images rejected) and probe the source format on a worker; results still arrive through the request-ID guard. Fallback titles use the Finder display name, so "AC/DC" is no longer shown as "AC:DC" and a hidden extension is not stripped twice. New imports keep the library title in Now Playing instead of switching to the tag title until the track is selected again. Co-Authored-By: Claude Opus 5.5 --- Sources/App/AudioEngineManager.swift | 66 ++++++++++++++++++------- Tests/IsolateTests/EngineFixTests.swift | 40 +++++++++++++++ 2 files changed, 89 insertions(+), 17 deletions(-) diff --git a/Sources/App/AudioEngineManager.swift b/Sources/App/AudioEngineManager.swift index 08fb3d1..f06186f 100644 --- a/Sources/App/AudioEngineManager.swift +++ b/Sources/App/AudioEngineManager.swift @@ -1031,8 +1031,10 @@ public final class AudioEngineManager { guard !lastImportCancelled else { return nil } try installFiles(stems) currentTrackID = url.path - let title = url.deletingPathExtension().lastPathComponent + let title = Self.displayTitle(for: url) currentTrackName = title.uppercased() + // Keep the library title in Now Playing, matching later loads of this track. + titleOverride = title trackTitle = title extractMetadata(url: url) splitProgress = 1 @@ -1061,6 +1063,43 @@ public final class AudioEngineManager { @ObservationIgnored private var titleOverride: String? private var metadataRequestID = UUID() + /// The Finder name without its extension; POSIX names store "/" as ":". + nonisolated static func displayTitle(for url: URL) -> String { + let name = FileManager.default.displayName(atPath: url.path) + let suffix = "." + url.pathExtension + // Finder may already hide the extension, so only strip one that is present. + guard suffix.count > 1, name.count > suffix.count, + name.lowercased().hasSuffix(suffix.lowercased()) else { return name } + return String(name.dropLast(suffix.count)) + } + + /// Embedded covers can be far larger than any view. Decode a bounded thumbnail + /// (off the main actor at the call site) rather than the full-resolution image. + nonisolated static func artworkImage(from data: Data, maxPixelSize: Int = 1024) -> CGImage? { + guard let source = CGImageSourceCreateWithData(data as CFData, nil) else { return nil } + if let properties = CGImageSourceCopyPropertiesAtIndex(source, 0, nil) as? [CFString: Any], + let width = properties[kCGImagePropertyPixelWidth] as? Int, + let height = properties[kCGImagePropertyPixelHeight] as? Int, + width * height > 100_000_000 { + return nil + } + let options: [CFString: Any] = [ + kCGImageSourceCreateThumbnailFromImageAlways: true, + kCGImageSourceCreateThumbnailWithTransform: true, + kCGImageSourceShouldCacheImmediately: true, + kCGImageSourceThumbnailMaxPixelSize: maxPixelSize + ] + return CGImageSourceCreateThumbnailAtIndex(source, 0, options as CFDictionary) + } + + /// Opening the source can block on sleeping network or external volumes. + nonisolated static func probeFormat(_ url: URL) -> (sampleRate: String, bitDepth: String)? { + guard let file = try? AVAudioFile(forReading: url) else { return nil } + let bitDepth = (file.fileFormat.settings[AVLinearPCMBitDepthKey] as? Int) ?? 0 + return (String(format: "%.1f kHz", file.fileFormat.sampleRate / 1000), + bitDepth > 0 ? "\(bitDepth)-BIT" : "COMPRESSED") + } + private func extractMetadata(url: URL) { metadataTask?.cancel() let requestID = UUID() @@ -1074,14 +1113,14 @@ public final class AudioEngineManager { var foundTitle: String? = nil var foundArtist: String? = nil var foundAlbum: String? = nil - var foundArt: NSImage? = nil + var foundArt: CGImage? = nil do { let metadata = try await asset.load(.commonMetadata) for item in metadata { if item.commonKey == .commonKeyArtwork { if let data = (try? await item.load(.value)) as? Data { - foundArt = NSImage(data: data) + foundArt = await Task.detached(priority: .utility) { Self.artworkImage(from: data) }.value } } else if item.commonKey == .commonKeyTitle { if let titleStr = (try? await item.load(.value)) as? String { @@ -1113,7 +1152,7 @@ public final class AudioEngineManager { if foundArt == nil && (item.commonKey == .commonKeyArtwork || item.identifier?.rawValue.contains("APIC") == true || item.identifier?.rawValue.contains("artwork") == true) { if let data = (try? await item.load(.value)) as? Data { - foundArt = NSImage(data: data) + foundArt = await Task.detached(priority: .utility) { Self.artworkImage(from: data) }.value } } if foundTitle == nil && (item.commonKey == .commonKeyTitle || item.identifier?.rawValue.contains("TIT2") == true || item.identifier?.rawValue.contains("title") == true) { @@ -1137,7 +1176,7 @@ public final class AudioEngineManager { } let finalArt = foundArt - let finalTitle = foundTitle ?? url.deletingPathExtension().lastPathComponent + let finalTitle = foundTitle ?? Self.displayTitle(for: url) let finalArtist = foundArtist ?? "Isolate" let finalAlbum = foundAlbum ?? "4-Stem Neural Audio" let ext = url.pathExtension.uppercased() @@ -1146,21 +1185,14 @@ public final class AudioEngineManager { let finalBPM = foundBPM ?? "BPM UNKNOWN" let finalKey = foundKey ?? "KEY UNKNOWN" - let (computedSampleRate, computedBitDepth): (String, String) = { - guard let f = try? AVAudioFile(forReading: url) else { - return ("44.1 kHz", "24-BIT PCM") - } - let sr = f.fileFormat.sampleRate - let srStr = String(format: "%.1f kHz", sr / 1000) - let bd = (f.fileFormat.settings[AVLinearPCMBitDepthKey] as? Int) ?? 0 - return (srStr, bd > 0 ? "\(bd)-BIT" : "COMPRESSED") - }() - let finalSampleRate = computedSampleRate - let finalBitDepth = computedBitDepth + // This task inherits the main actor; open the source file on a worker instead. + let probed = await Task.detached(priority: .utility) { Self.probeFormat(url) }.value + let finalSampleRate = probed?.sampleRate ?? "44.1 kHz" + let finalBitDepth = probed?.bitDepth ?? "24-BIT PCM" await MainActor.run { guard !Task.isCancelled, let self, self.metadataRequestID == requestID else { return } - self.albumArt = finalArt + self.albumArt = finalArt.map { NSImage(cgImage: $0, size: NSSize(width: $0.width, height: $0.height)) } self.trackTitle = self.titleOverride ?? finalTitle self.trackArtist = finalArtist self.trackAlbum = finalAlbum diff --git a/Tests/IsolateTests/EngineFixTests.swift b/Tests/IsolateTests/EngineFixTests.swift index 4e4b983..6f124b3 100644 --- a/Tests/IsolateTests/EngineFixTests.swift +++ b/Tests/IsolateTests/EngineFixTests.swift @@ -253,6 +253,15 @@ final class EngineFixTests: XCTestCase { engine.unloadTrack() } + func testFallbackTitlesUseFinderDisplayNames() throws { + let slash = directory.appending(path: "AC:DC - Back In Black.wav") + let dotted = directory.appending(path: "Song v1.2.wav") + for url in [slash, dotted] { try Data().write(to: url) } + XCTAssertEqual(AudioEngineManager.displayTitle(for: slash), "AC/DC - Back In Black") + XCTAssertEqual(AudioEngineManager.displayTitle(for: dotted), "Song v1.2") + XCTAssertEqual(AudioEngineManager.displayTitle(for: directory.appending(path: "Missing Take.mp3")), "Missing Take") + } + func testMetersAnalyseTheNewestAudioInLongTapBuffers() throws { // macOS delivers ~100 ms tap buffers; the tone sits only in the newest 1024 frames. let buffer = AVAudioPCMBuffer(pcmFormat: StreamingAudio.format, frameCapacity: 4410)! @@ -265,4 +274,35 @@ final class EngineFixTests: XCTestCase { let reading = try XCTUnwrap(AudioMeterProcessor(bandCount: 32).process(buffer)) XCTAssertGreaterThan(reading.spectrum.max() ?? 0, 0.1) } + + func testEmbeddedArtworkIsDecodedAtDisplaySize() throws { + let context = try XCTUnwrap(CGContext(data: nil, width: 3000, height: 2000, bitsPerComponent: 8, bytesPerRow: 0, + space: CGColorSpaceCreateDeviceRGB(), + bitmapInfo: CGImageAlphaInfo.premultipliedLast.rawValue)) + context.setFillColor(CGColor(red: 1, green: 0, blue: 0, alpha: 1)) + context.fill(CGRect(x: 0, y: 0, width: 3000, height: 2000)) + let image = try XCTUnwrap(context.makeImage()) + let data = NSMutableData() + let destination = try XCTUnwrap(CGImageDestinationCreateWithData(data, "public.png" as CFString, 1, nil)) + CGImageDestinationAddImage(destination, image, nil) + XCTAssertTrue(CGImageDestinationFinalize(destination)) + let artwork = try XCTUnwrap(AudioEngineManager.artworkImage(from: data as Data)) + XCTAssertEqual(artwork.width, 1024) + XCTAssertEqual(artwork.height, 683, accuracy: 1) + XCTAssertNil(AudioEngineManager.artworkImage(from: Data("not an image".utf8))) + } + + func testSourceFormatIsProbedOffTheMainActor() async throws { + let track = try cancellingTrack(seconds: 0.5) + let probed = try XCTUnwrap(AudioEngineManager.probeFormat(track.originalURL)) + XCTAssertEqual(probed.sampleRate, "44.1 kHz") + XCTAssertEqual(probed.bitDepth, "32-BIT") + XCTAssertNil(AudioEngineManager.probeFormat(directory.appending(path: "absent.wav"))) + let engine = AudioEngineManager() + await engine.loadTrack(track) + let deadline = Date.now.addingTimeInterval(3) + while engine.trackBitDepth != "32-BIT" && Date.now < deadline { try await Task.sleep(for: .milliseconds(20)) } + XCTAssertEqual(engine.trackBitDepth, "32-BIT") + engine.unloadTrack() + } } From a222344c2aba05d0473786a05b45e010e9d2b526 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:34:33 -0500 Subject: [PATCH 27/89] fix(settings): scroll the full shortcut list and use theme tokens MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Shortcuts tab scrolls inside its 345pt frame instead of clipping the first and last rows, and lists every real shortcut ([ ], ⌥L, ⌘1-5, ⌘E, ⌘, ⌘0, ?, Esc, arrow keys) (design-a11y-2). - Selected chips and tabs use an inverted neutral style and expose the isSelected trait; option groups are labelled (design-a11y-8). - Replace system red/white/black literals with theme tokens; red stays on the ON toggle only (design-a11y-3/-5/-6); reset button fill follows its rounded outline (design-a11y-20). Co-Authored-By: Claude Opus 5.5 --- Sources/App/SettingsView.swift | 90 +++++++++++++++++++++++----------- 1 file changed, 61 insertions(+), 29 deletions(-) diff --git a/Sources/App/SettingsView.swift b/Sources/App/SettingsView.swift index 86a96c9..3a07289 100644 --- a/Sources/App/SettingsView.swift +++ b/Sources/App/SettingsView.swift @@ -107,7 +107,7 @@ struct SettingsModalCard: View { HStack(spacing: 8) { Image(systemName: "slider.horizontal.3") .font(.system(size: 16, weight: .bold)) - .foregroundColor(.red) + .foregroundColor(theme.textPrimary) Text("SYSTEM PREFERENCES") .font(.custom("DotGothic16-Regular", size: 18)) .fontWeight(.bold) @@ -125,13 +125,14 @@ struct SettingsModalCard: View { Text("SETTINGS") .font(.custom("DotGothic16-Regular", size: 12)) .fontWeight(.bold) - .foregroundColor(selectedTab == 0 ? (theme.isDark ? .black : .white) : theme.textSecondary) + .foregroundColor(selectedTab == 0 ? theme.background : theme.textSecondary) .padding(.horizontal, 10) .padding(.vertical, 5) - .background(selectedTab == 0 ? (theme.isDark ? Color.white : Color.black) : Color.clear) + .background(selectedTab == 0 ? theme.textPrimary : Color.clear) .clipShape(RoundedRectangle(cornerRadius: 3)) } .buttonStyle(.plain) + .accessibilityAddTraits(selectedTab == 0 ? .isSelected : []) Button(action: { Haptics.playClick() @@ -140,13 +141,14 @@ struct SettingsModalCard: View { Text("SHORTCUTS") .font(.custom("DotGothic16-Regular", size: 12)) .fontWeight(.bold) - .foregroundColor(selectedTab == 1 ? (theme.isDark ? .black : .white) : theme.textSecondary) + .foregroundColor(selectedTab == 1 ? theme.background : theme.textSecondary) .padding(.horizontal, 10) .padding(.vertical, 5) - .background(selectedTab == 1 ? (theme.isDark ? Color.white : Color.black) : Color.clear) + .background(selectedTab == 1 ? theme.textPrimary : Color.clear) .clipShape(RoundedRectangle(cornerRadius: 3)) } .buttonStyle(.plain) + .accessibilityAddTraits(selectedTab == 1 ? .isSelected : []) } .padding(3) .background(theme.surfaceSecondary) @@ -156,16 +158,28 @@ struct SettingsModalCard: View { Divider() .background(theme.hairline) - // Content Area based on Tab — Pinned to exact height of 345pt for rock-solid consistency + // Content Area based on Tab — Pinned to exact height of 345pt for rock-solid consistency. + // The shortcut list is taller than that, so it scrolls instead of clipping. Group { if selectedTab == 0 { settingsTabContent } else { - shortcutsTabContent + ScrollView(.vertical) { + shortcutsTabContent + .frame(maxWidth: .infinity, alignment: .leading) + .padding(.bottom, 16) + } + // Fade the bottom edge so the list reads as scrollable. + .mask( + VStack(spacing: 0) { + Rectangle() + LinearGradient(colors: [.black, .clear], startPoint: .top, endPoint: .bottom) + .frame(height: 16) + } + ) } } - .frame(height: 345) - .clipped() + .frame(height: 345, alignment: .top) Divider() .background(theme.hairline) @@ -185,7 +199,7 @@ struct SettingsModalCard: View { .foregroundColor(isResetHovered ? theme.textPrimary : theme.textSecondary) .padding(.horizontal, 10) .padding(.vertical, 6) - .background(isResetHovered ? theme.surfaceHover : Color.clear) + .background(isResetHovered ? theme.surfaceHover : Color.clear, in: RoundedRectangle(cornerRadius: 3)) .overlay( RoundedRectangle(cornerRadius: 3) .stroke(isResetHovered ? theme.border : theme.hairline, lineWidth: 1) @@ -210,9 +224,9 @@ struct SettingsModalCard: View { Text("CLOSE") .font(.custom("DotGothic16-Regular", size: 13)) .fontWeight(.bold) - .foregroundColor(.white) + .foregroundColor(theme.background) .frame(width: 100, height: 32) - .background(isCloseHovered ? Color.red.opacity(0.85) : Color.red) + .background(isCloseHovered ? theme.textPrimary.opacity(0.85) : theme.textPrimary) .clipShape(RoundedRectangle(cornerRadius: 3)) .contentShape(Rectangle()) } @@ -248,6 +262,8 @@ struct SettingsModalCard: View { themeButton("dark", label: "NOTHING DARK") themeButton("light", label: "NOTHING LIGHT") } + .accessibilityElement(children: .contain) + .accessibilityLabel("Theme") } // Setting 2: Default Export Format @@ -259,6 +275,8 @@ struct SettingsModalCard: View { exportFormatButton("WAV", label: "WAV 24B") exportFormatButton("FLAC", label: "FLAC") } + .accessibilityElement(children: .contain) + .accessibilityLabel("Export format") } // Setting 3: Menu Bar Mini Player @@ -301,6 +319,8 @@ struct SettingsModalCard: View { sensitivityButton(1.0, label: "1.0x STD") sensitivityButton(1.5, label: "1.5x") } + .accessibilityElement(children: .contain) + .accessibilityLabel("Waveform sensitivity") } } .padding(.vertical, 4) @@ -309,19 +329,28 @@ struct SettingsModalCard: View { // MARK: - Shortcuts Tab Content private var shortcutsTabContent: some View { VStack(alignment: .leading, spacing: 7) { + shortcutRow(keys: ["Space"], description: "Play / Pause playback") shortcutRow(keys: ["1", "2", "3", "4"], description: "Solo Vocals, Drums, Bass, Other (Exclusive)") shortcutRow(keys: ["V", "D", "B", "O"], description: "Toggle Mute for individual channels") shortcutRow(keys: ["A"], description: "Engage Acapella Preset (Solo Vocals)") shortcutRow(keys: ["I"], description: "Engage Instrumental Preset (Mute Vocals)") shortcutRow(keys: ["R"], description: "Reset 4-Stem Mix to 100% Unity Gain") shortcutRow(keys: ["L"], description: "Toggle A-B Region Loop") - shortcutRow(keys: ["Space"], description: "Play / Pause playback") + shortcutRow(keys: ["[", "]"], description: "Set A-B Loop Start / End at the playhead") + shortcutRow(keys: ["⌥", "L"], description: "Clear A-B Loop Markers") + shortcutRow(keys: ["⌘", "1-5"], description: "Switch HUD: FFT, Macros, Balance, Telemetry, EQ") + shortcutRow(keys: ["⌘", "E"], description: "Bypass All EQ (Stems + Master)") shortcutRow(keys: ["⌘", "⌥", "B"], description: "Compare Original and Stem Mix") shortcutRow(keys: ["⌘", "⇧", "E"], description: "Export 4-Stem Audio Archive") shortcutRow(keys: ["⌘", "⇧", "M"], description: "Export Current Mix as WAV") shortcutRow(keys: ["⌘", "O"], description: "Import / Batch Import audio tracks") shortcutRow(keys: ["⌘", "B"], description: "Toggle Library Sidebar") - shortcutRow(keys: ["Double-Click"], description: "Reset fader or pan dial to Center") + shortcutRow(keys: ["⌘", ","], description: "Open Settings") + shortcutRow(keys: ["⌘", "0"], description: "Show the Isolate Window") + shortcutRow(keys: ["?"], description: "Toggle the Shortcut Cheat Sheet") + shortcutRow(keys: ["Esc"], description: "Close the open panel") + shortcutRow(keys: ["←", "→", "↑", "↓"], description: "Adjust the focused fader, knob, pan or seek bar") + shortcutRow(keys: ["Double-Click"], description: "Reset fader, pan, EQ, pitch or speed") } .padding(.vertical, 4) } @@ -353,17 +382,18 @@ struct SettingsModalCard: View { Text(label) .font(.custom("DotGothic16-Regular", size: 10.5)) .fontWeight(.bold) - .foregroundColor(isSelected ? .white : theme.textSecondary) + .foregroundColor(isSelected ? theme.background : theme.textSecondary) .padding(.horizontal, 7) .padding(.vertical, 4) - .background(isSelected ? Color.red : theme.surfaceSecondary) + .background(isSelected ? theme.textPrimary : theme.surfaceSecondary) .clipShape(RoundedRectangle(cornerRadius: 3)) .overlay( RoundedRectangle(cornerRadius: 3) - .stroke(isSelected ? Color.red : theme.hairline, lineWidth: 1) + .stroke(isSelected ? theme.textPrimary : theme.hairline, lineWidth: 1) ) } .buttonStyle(.plain) + .accessibilityAddTraits(isSelected ? .isSelected : []) } private func themeButton(_ themeName: String, label: String) -> some View { @@ -376,17 +406,18 @@ struct SettingsModalCard: View { Text(label) .font(.custom("DotGothic16-Regular", size: 10)) .fontWeight(.bold) - .foregroundColor(isSelected ? .white : theme.textSecondary) + .foregroundColor(isSelected ? theme.background : theme.textSecondary) .padding(.horizontal, 7) .padding(.vertical, 4) - .background(isSelected ? Color.red : theme.surfaceSecondary) + .background(isSelected ? theme.textPrimary : theme.surfaceSecondary) .clipShape(RoundedRectangle(cornerRadius: 3)) .overlay( RoundedRectangle(cornerRadius: 3) - .stroke(isSelected ? Color.red : theme.hairline, lineWidth: 1) + .stroke(isSelected ? theme.textPrimary : theme.hairline, lineWidth: 1) ) } .buttonStyle(.plain) + .accessibilityAddTraits(isSelected ? .isSelected : []) } private func sensitivityButton(_ value: Double, label: String) -> some View { @@ -398,17 +429,18 @@ struct SettingsModalCard: View { Text(label) .font(.custom("DotGothic16-Regular", size: 10)) .fontWeight(.bold) - .foregroundColor(isSelected ? .white : theme.textSecondary) + .foregroundColor(isSelected ? theme.background : theme.textSecondary) .padding(.horizontal, 7) .padding(.vertical, 4) - .background(isSelected ? Color.red : theme.surfaceSecondary) + .background(isSelected ? theme.textPrimary : theme.surfaceSecondary) .clipShape(RoundedRectangle(cornerRadius: 3)) .overlay( RoundedRectangle(cornerRadius: 3) - .stroke(isSelected ? Color.red : theme.hairline, lineWidth: 1) + .stroke(isSelected ? theme.textPrimary : theme.hairline, lineWidth: 1) ) } .buttonStyle(.plain) + .accessibilityAddTraits(isSelected ? .isSelected : []) } private func toggleSwitch(_ label: String, isOn: Binding) -> some View { @@ -420,10 +452,10 @@ struct SettingsModalCard: View { Text("ON") .font(.custom("DotGothic16-Regular", size: 10)) .fontWeight(.bold) - .foregroundColor(isOn.wrappedValue ? .white : theme.textMuted) + .foregroundColor(isOn.wrappedValue ? theme.onAccent : theme.textMuted) .padding(.horizontal, 8) .padding(.vertical, 3) - .background(isOn.wrappedValue ? Color.red : Color.clear) + .background(isOn.wrappedValue ? theme.accentRed : Color.clear) Text("OFF") .font(.custom("DotGothic16-Regular", size: 10)) @@ -456,14 +488,14 @@ struct SettingsModalCard: View { Text(key) .font(.custom("DotGothic16-Regular", size: 11)) .fontWeight(.bold) - .foregroundColor(.red) + .foregroundColor(theme.textPrimary) .padding(.horizontal, 6) .padding(.vertical, 3) - .background(Color.red.opacity(0.12)) + .background(theme.surfaceSecondary) .clipShape(RoundedRectangle(cornerRadius: 3)) .overlay( RoundedRectangle(cornerRadius: 3) - .stroke(Color.red.opacity(0.4), lineWidth: 1) + .stroke(theme.border, lineWidth: 1) ) } } @@ -472,7 +504,7 @@ struct SettingsModalCard: View { Text(description) .font(.custom("DotGothic16-Regular", size: 12)) - .foregroundColor(theme.textPrimary.opacity(0.88)) + .foregroundColor(theme.textPrimary) Spacer() } From 637e2243d22a5866fbbda4a8fad55dac75377e4b Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:34:33 -0500 Subject: [PATCH 28/89] fix(fader): restore thumb hover and keep red for the clip LED - Hover was dead code under allowsHitTesting(false); track it on the track hit area within the cap's grab band and drop the unbalanced NSCursor push/pop (design-a11y-19). - Level fill, +6 tick and unlit clip LED use neutral tokens; red marks only the lit clip LED and a cap in hand (design-a11y-6). - Tick marks use theme tokens and follow Increase Contrast (design-a11y-13). Co-Authored-By: Claude Opus 5.5 --- Sources/Player/CustomFader.swift | 49 +++++++++++++++++++------------- 1 file changed, 29 insertions(+), 20 deletions(-) diff --git a/Sources/Player/CustomFader.swift b/Sources/Player/CustomFader.swift index f6098f6..450f410 100644 --- a/Sources/Player/CustomFader.swift +++ b/Sources/Player/CustomFader.swift @@ -43,6 +43,17 @@ struct CustomFader: View { Color.clear .frame(maxWidth: .infinity, maxHeight: .infinity) .contentShape(Rectangle()) + // The cap ignores hit testing so drags reach this area; track + // hover here instead, within the same band that grabs the cap. + .onContinuousHover { phase in + let isOverThumb: Bool + if case .active(let location) = phase { + isOverThumb = abs(location.y - thumbCenterY) <= 16 + } else { + isOverThumb = false + } + if isOverThumb != isHovered { isHovered = isOverThumb } + } .gesture( DragGesture(minimumDistance: 0, coordinateSpace: .local) .onChanged { drag in @@ -107,7 +118,7 @@ struct CustomFader: View { if let lbl = tick.label { Text(lbl) .font(.custom("DotGothic16-Regular", size: 7.5)) - .foregroundColor(tick.normVal == 1.0 ? Color.red.opacity(0.85) : theme.textMuted) + .foregroundColor(theme.textMuted) .frame(width: 18, alignment: .trailing) } else { Spacer() @@ -115,7 +126,7 @@ struct CustomFader: View { } Rectangle() - .fill(tick.normVal == 1.0 ? Color.red.opacity(0.8) : (theme.isDark ? Color.white.opacity(tick.isMajor ? 0.25 : 0.12) : Color.black.opacity(tick.isMajor ? 0.35 : 0.16))) + .fill(tickColor(tick)) .frame(width: tick.isMajor ? 6 : 3, height: 1) } .position(x: centerX - 18, y: yPos) @@ -123,7 +134,7 @@ struct CustomFader: View { // Right Symmetrical Ticks Rectangle() - .fill(tick.normVal == 1.0 ? Color.red.opacity(0.8) : (theme.isDark ? Color.white.opacity(tick.isMajor ? 0.25 : 0.12) : Color.black.opacity(tick.isMajor ? 0.35 : 0.16))) + .fill(tickColor(tick)) .frame(width: tick.isMajor ? 6 : 3, height: 1) .position(x: centerX + (tick.isMajor ? 11 : 9.5), y: yPos) .allowsHitTesting(false) @@ -134,9 +145,9 @@ struct CustomFader: View { ZStack(alignment: .top) { let isLit = peak >= 1 || isClippingHeld Circle() - .fill(isLit ? Color.red : Color.red.opacity(0.18)) + .fill(isLit ? theme.accentRed : theme.knobArcTrack) .frame(width: 4.5, height: 4.5) - .shadow(color: isLit ? Color.red : Color.clear, radius: 3) + .shadow(color: isLit ? theme.accentRed : Color.clear, radius: 3) .padding(.bottom, 4) .animation(.easeOut(duration: 0.25), value: isLit) @@ -150,9 +161,9 @@ struct CustomFader: View { .stroke(theme.hairline, lineWidth: 0.5) ) - // Track fill (active level) + // Track fill (active level); red is reserved for the clip LED. Rectangle() - .fill(Color.red) + .fill(theme.spectrumBarDefault) .frame(width: 3.5, height: max(0, (max(0, trackHeight - 12)) * CGFloat(FaderScale.position(for: value)))) } .padding(.top, 10) @@ -163,7 +174,7 @@ struct CustomFader: View { // 4. Machined Hardware Fader Thumb (Nothing OS Style) ZStack { - // Expanded touch target (48x28pt) + // Cap layout box; clicks fall through to the track hit area Color.clear .frame(width: 48, height: 28) .contentShape(Rectangle()) @@ -178,13 +189,13 @@ struct CustomFader: View { RoundedRectangle(cornerRadius: 1.5) .stroke( (isHovered || isDragging) - ? Color.red.opacity(0.90) + ? theme.accentRed.opacity(0.90) : theme.faderThumbStroke, lineWidth: (isHovered || isDragging) ? 1.5 : 1 ) ) .shadow( - color: Color.red.opacity((isHovered || isDragging) ? 0.6 : 0.0), + color: theme.accentRed.opacity((isHovered || isDragging) ? 0.6 : 0.0), radius: 5, x: 0, y: 0 @@ -202,21 +213,13 @@ struct CustomFader: View { } .frame(width: 32) - // Center Nothing Red Alignment Index Stripe + // Center Alignment Index Stripe, red only while the cap is in hand Rectangle() - .fill(Color.red) + .fill(isDragging ? theme.accentRed : theme.background) .frame(width: 22, height: 2) } } .position(x: centerX, y: thumbCenterY) - .onHover { hovering in - isHovered = hovering - if hovering { - NSCursor.pointingHand.push() - } else { - NSCursor.pop() - } - } .allowsHitTesting(false) } } @@ -243,10 +246,16 @@ struct CustomFader: View { .onDisappear { clipHoldTask?.cancel() isClippingHeld = false + isHovered = false } } + private func tickColor(_ tick: FaderTick) -> Color { + guard tick.isMajor else { return theme.hairline } + return theme.increaseContrast ? theme.border : theme.textDisabled + } + private func adjust(_ delta: Double) { value = FaderScale.gain(at: FaderScale.position(for: value) + delta) } From e5500451234f54c498b7ac9fa1044f9db7430842 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:34:45 -0500 Subject: [PATCH 29/89] fix(player): fit the header and transport, fix controls and accessibility MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Layout (ui-1, ui-9) - Header reserves a measured share for the STUDIO HUD; the HUD drops track metadata, then shortens tab, EQ stem and macro labels, and telemetry switches to two-line cards, so nothing truncates from the 860pt threshold up (default 1280x800 window shows full tab names). - Transport picks regular/compact/tight control sizes from the space left for the seek bar, which keeps at least 100pt at the 960pt minimum window with the library open (was 50pt). - ⌘1-5 hide the library when the HUD cannot fit beside it, instead of switching an invisible mode. Controls - Double-click resets pan, EQ knobs and HUD EQ nodes; the tap runs alongside the zero-distance drag (ui-5). - ⌘E global EQ bypass shows "ALL EQ OFF" on every channel strip and "ALL BYP" in the HUD; clicking either restores EQ (ui-6). - Seek bar, LOOP and [ ] L ⌥L do nothing without a loaded track (ui-13). - Pan readout rounds, and keyboard steps snap to the 5% grid (ui-14). - HUD EQ node haptic plays once on entering 0 dB (ui-15). - Clear loop markers with ⌥L or the LOOP context menu (audio-engine-7). - Escape closes the shortcut cheat sheet; it lists ⌥L and ⌘⌥B and names ⌘E correctly (ui-10). Accessibility and theme - Labels, values and selected traits for balance M/S, HUD tabs, EQ stem pills, macro presets, BYPASS and album art; HUD EQ nodes are adjustable and keyboard-focusable; larger hit targets for steppers and chips (design-a11y-7/-8/-10/-11/-17/-23). - Marquee text ends in an ellipsis with a tooltip under Reduce Motion (design-a11y-18); rounded fills stay inside their outlines (-20). - Theme tokens replace system red/yellow/gray literals; red is kept for solo/mute, loop, clip, modified values, export in progress and the play button; comparison and loop markers use warning (design-a11y-3/-4/-5/-6). Co-Authored-By: Claude Opus 5.5 --- Sources/Player/PlayerView.swift | 1317 ++++++++++++++++++++----------- 1 file changed, 858 insertions(+), 459 deletions(-) diff --git a/Sources/Player/PlayerView.swift b/Sources/Player/PlayerView.swift index 068752b..ea38f11 100644 --- a/Sources/Player/PlayerView.swift +++ b/Sources/Player/PlayerView.swift @@ -39,6 +39,7 @@ public struct PlayerView: View { public var body: some View { GeometryReader { windowGeo in let isCompactHeight = windowGeo.size.height < 680 + let showsHUD = PlayerHeaderMetrics.showsHUD(width: windowGeo.size.width) ZStack { VStack(spacing: 0) { @@ -75,49 +76,38 @@ public struct PlayerView: View { } .animation(.easeInOut(duration: 0.15), value: isShowingShortcutCard) .background { - shortcutsOverlay + shortcutsOverlay(showsHUD: showsHUD) } } } private func headerView(isCompactHeight: Bool) -> some View { GeometryReader { geo in - let width = geo.size.width - let isCompact = width < 860 - let isMedium = width >= 860 && width < 1260 - let isWide = width >= 1260 - let isSidebarClosed = (isSidebarVisible?.wrappedValue == false) - let artSize: CGFloat = isCompactHeight ? 76 : 100 - - let maxTrackInfoWidth: CGFloat = { - if isCompact { return .infinity } - let availableForTrack = width - (isCompactHeight ? 76 : 100) - 70 - (isWide ? 440 : 360) - let baseMax: CGFloat = isWide ? (isSidebarClosed ? 680 : 480) : (isSidebarClosed ? 500 : 360) - return max(240, min(availableForTrack, baseMax)) - }() - - HStack(spacing: isCompactHeight ? 10 : 14) { + let metrics = PlayerHeaderMetrics( + width: geo.size.width, + isCompactHeight: isCompactHeight, + hasSidebarToggle: isSidebarVisible != nil, + isSidebarClosed: isSidebarVisible?.wrappedValue == false + ) + let trackInfoWidth: CGFloat? = metrics.showsHUD ? metrics.trackInfoWidth : nil + + HStack(spacing: metrics.spacing) { if let isSidebarVisible = isSidebarVisible { sidebarToggleButton(isSidebarVisible: isSidebarVisible) } - AlbumArtView(image: engineManager.albumArt, size: artSize) + AlbumArtView(image: engineManager.albumArt, size: metrics.artSize) - trackInfoView(isCompact: isCompact, isCompactHeight: isCompactHeight) - .frame(minWidth: 180, maxWidth: maxTrackInfoWidth, alignment: .leading) + trackInfoView(isCompact: !metrics.showsHUD, isCompactHeight: isCompactHeight) + .frame(minWidth: trackInfoWidth ?? 180, maxWidth: trackInfoWidth ?? .infinity, alignment: .leading) - if !isCompact { - Spacer(minLength: 12) - - HeaderCenterTelemetryModule( - isMedium: isMedium, - isWide: isWide, - isCompactHeight: isCompactHeight - ) - .frame(maxWidth: .infinity) + if metrics.showsHUD { + HeaderCenterTelemetryModule(isCompactHeight: isCompactHeight) + .frame(maxWidth: .infinity) + .padding(.leading, PlayerHeaderMetrics.hudGap) } } - .padding(.horizontal, isCompactHeight ? 16 : 24) + .padding(.horizontal, metrics.horizontalPadding) .padding(.top, isCompactHeight ? 40 : 50) .padding(.bottom, 2) } @@ -133,12 +123,12 @@ public struct PlayerView: View { }) { ZStack { RoundedRectangle(cornerRadius: 3) - .stroke(isSidebarVisible.wrappedValue ? Color.red : theme.textSecondary, lineWidth: 1) + .stroke(isSidebarVisible.wrappedValue ? theme.textPrimary : theme.textSecondary, lineWidth: 1) .frame(width: 18, height: 14) HStack(spacing: 2) { Rectangle() - .fill(isSidebarVisible.wrappedValue ? Color.red : theme.textSecondary) + .fill(isSidebarVisible.wrappedValue ? theme.textPrimary : theme.textSecondary) .frame(width: 4, height: 10) Spacer() } @@ -163,7 +153,7 @@ public struct PlayerView: View { MarqueeText( text: engineManager.currentTrackName, fontSize: isCompact ? 20 : (isCompactHeight ? 20 : 24), - color: .red, + color: theme.textPrimary, height: isCompactHeight ? 26 : 30 ) .frame(maxWidth: .infinity, alignment: .leading) @@ -187,21 +177,21 @@ public struct PlayerView: View { HStack(spacing: 8) { Text(engineManager.isBypassed ? "SOURCE: ORIGINAL MASTER" : "SOURCE: 4-STEM ISOLATION") .font(.custom("DotGothic16-Regular", size: isCompactHeight ? 9.5 : 10.5)) - .foregroundColor(engineManager.isBypassed ? .yellow : theme.textSecondary) + .foregroundColor(engineManager.isBypassed ? theme.warning : theme.textSecondary) Text("•") .font(.custom("DotGothic16-Regular", size: isCompactHeight ? 9.0 : 10.0)) - .foregroundColor(theme.textMuted) + .foregroundColor(theme.textDisabled) HStack(spacing: 4) { Circle() - .fill(engineManager.isPlaying ? Color.red : theme.textMuted) + .fill(engineManager.isPlaying ? theme.accentRed : theme.textDisabled) .frame(width: 4.5, height: 4.5) - .shadow(color: engineManager.isPlaying ? Color.red.opacity(0.6) : Color.clear, radius: 2) + .shadow(color: engineManager.isPlaying ? theme.accentRed.opacity(0.6) : Color.clear, radius: 2) Text(engineManager.isPlaying ? "ACTIVE" : "STANDBY") .font(.custom("DotGothic16-Regular", size: isCompactHeight ? 9.0 : 10.0)) - .foregroundColor(engineManager.isPlaying ? .red : theme.textSecondary) + .foregroundColor(engineManager.isPlaying ? theme.textPrimary : theme.textSecondary) } } } @@ -298,7 +288,7 @@ public struct PlayerView: View { .frame(maxHeight: .infinity) } - private var shortcutsOverlay: some View { + private func shortcutsOverlay(showsHUD: Bool) -> some View { Group { // Dedicated Numeric Solos (Keys 1 - 4) Button("") { toggleSolo(0) }.keyboardShortcut("1", modifiers: []).hidden() @@ -316,42 +306,32 @@ public struct PlayerView: View { Button("") { engineManager.applyResetMix() }.keyboardShortcut("r", modifiers: []).hidden() Button("") { engineManager.applyAcapella() }.keyboardShortcut("a", modifiers: []).hidden() Button("") { engineManager.applyInstrumental() }.keyboardShortcut("i", modifiers: []).hidden() - Button("") { engineManager.toggleLoop() }.keyboardShortcut("l", modifiers: []).hidden() + Button("") { TransportActions.toggleLoop(engineManager) }.keyboardShortcut("l", modifiers: []).hidden() + Button("") { TransportActions.clearLoop(engineManager) }.keyboardShortcut("l", modifiers: [.option]).hidden() Button("") { engineManager.toggleGlobalEQBypass() }.keyboardShortcut("e", modifiers: [.command]).hidden() // HUD Visualizer Mode Switching (⌘1 - ⌘5) - Button("") { - Haptics.playClick() - engineManager.setHUDMode(0) - }.keyboardShortcut("1", modifiers: [.command]).hidden() - - Button("") { - Haptics.playClick() - engineManager.setHUDMode(1) - }.keyboardShortcut("2", modifiers: [.command]).hidden() - - Button("") { - Haptics.playClick() - engineManager.setHUDMode(2) - }.keyboardShortcut("3", modifiers: [.command]).hidden() - - Button("") { - Haptics.playClick() - engineManager.setHUDMode(3) - }.keyboardShortcut("4", modifiers: [.command]).hidden() - - Button("") { - Haptics.playClick() - engineManager.setHUDMode(4) - }.keyboardShortcut("5", modifiers: [.command]).hidden() + ForEach(0..<5, id: \.self) { mode in + Button("") { + Haptics.playClick() + engineManager.setHUDMode(mode) + // The HUD only fits beside the library in wide windows; make the + // requested mode visible instead of switching it off-screen. + if !showsHUD, let isSidebarVisible, isSidebarVisible.wrappedValue { + withAnimation(.easeOut(duration: 0.12)) { + isSidebarVisible.wrappedValue = false + } + } + }.keyboardShortcut(KeyEquivalent(Character("\(mode + 1)")), modifiers: [.command]).hidden() + } // On-The-Fly Loop Setters ([ and ]) Button("") { - engineManager.setLoopStart(engineManager.playbackProgress) + TransportActions.setLoopStart(engineManager) }.keyboardShortcut("[", modifiers: []).hidden() Button("") { - engineManager.setLoopEnd(engineManager.playbackProgress) + TransportActions.setLoopEnd(engineManager) }.keyboardShortcut("]", modifiers: []).hidden() // HUD Cheat Sheet Toggle (? / /) @@ -423,13 +403,11 @@ struct StemChannelView: View { private var topAccentColor: Color { if isSoloed { - return Color.red - } else if isAnySoloed { + return theme.accentRed + } else if isAnySoloed || isMuted { return Color.clear - } else if isMuted { - return Color.gray.opacity(0.2) } else { - return Color.red.opacity(0.85) + return theme.hairline } } @@ -502,9 +480,11 @@ struct StemChannelView: View { mid: $midGain, high: $highGain, isBypassed: $isEQBypassed, + isGloballyBypassed: engineManager.isGlobalEQBypassed, channelName: title, isCompactHeight: isCompactHeight, - onReset: onResetEQ + onReset: onResetEQ, + onRestoreGlobalEQ: { engineManager.toggleGlobalEQBypass() } ) // Precision Readout Box (% and dB) @@ -516,7 +496,7 @@ struct StemChannelView: View { Text(dbString) .font(.custom("DotGothic16-Regular", size: isCompactHeight ? 9.0 : 10.0)) - .foregroundColor(abs(volume - 1.0) < 0.01 ? .red : theme.textSecondary) + .foregroundColor(theme.textSecondary) } .padding(.horizontal, 8) .padding(.vertical, isCompactHeight ? 2 : 3) @@ -556,7 +536,7 @@ struct StemChannelView: View { // unmute it or move the solo to another stem. .overlay(alignment: .top) { if isDimmed { - Rectangle().fill(theme.textMuted).frame(height: 2) + Rectangle().fill(theme.textDisabled).frame(height: 2) .allowsHitTesting(false) .accessibilityHidden(true) } @@ -565,9 +545,9 @@ struct StemChannelView: View { } private var muteButton: some View { - let bg: Color = isMuted ? .red : (isMutedHovered ? theme.surfaceHover : .clear) - let strokeColor: Color = isMuted ? .red : (isMutedHovered ? Color.red.opacity(0.7) : theme.cardBorder) - let fg: Color = isMuted ? .black : theme.textPrimary + let bg: Color = isMuted ? theme.accentRed : (isMutedHovered ? theme.surfaceHover : .clear) + let strokeColor: Color = isMuted ? theme.accentRed : (isMutedHovered ? theme.textSecondary : theme.cardBorder) + let fg: Color = isMuted ? theme.onAccent : theme.textPrimary return Button(action: { if let onToggleMute = onToggleMute { @@ -582,7 +562,7 @@ struct StemChannelView: View { .font(.custom("DotGothic16-Regular", size: isCompactHeight ? 12 : 13)) .fontWeight(.bold) .frame(width: isCompactHeight ? 40 : 44, height: isCompactHeight ? 28 : 32) - .background(bg) + .background(bg, in: RoundedRectangle(cornerRadius: 4)) .overlay( RoundedRectangle(cornerRadius: 4) .stroke(strokeColor, lineWidth: 1) @@ -598,9 +578,9 @@ struct StemChannelView: View { } private var soloButton: some View { - let bg: Color = isSoloed ? .red : (isSoloedHovered ? theme.surfaceHover : .clear) - let strokeColor: Color = isSoloed ? .red : (isSoloedHovered ? Color.red.opacity(0.7) : theme.cardBorder) - let fg: Color = isSoloed ? .black : theme.textPrimary + let bg: Color = isSoloed ? theme.accentRed : (isSoloedHovered ? theme.surfaceHover : .clear) + let strokeColor: Color = isSoloed ? theme.accentRed : (isSoloedHovered ? theme.textSecondary : theme.cardBorder) + let fg: Color = isSoloed ? theme.onAccent : theme.textPrimary return Button(action: { if let onToggleSolo = onToggleSolo { @@ -615,7 +595,7 @@ struct StemChannelView: View { .font(.custom("DotGothic16-Regular", size: isCompactHeight ? 12 : 13)) .fontWeight(.bold) .frame(width: isCompactHeight ? 40 : 44, height: isCompactHeight ? 28 : 32) - .background(bg) + .background(bg, in: RoundedRectangle(cornerRadius: 4)) .overlay( RoundedRectangle(cornerRadius: 4) .stroke(strokeColor, lineWidth: 1) @@ -642,13 +622,24 @@ struct PanKnobView: View { @State private var isDragging = false private var panLabel: String { + Self.label(for: pan) + } + + static func label(for pan: Float) -> String { + // Round, not truncate: Float steps of 0.05 land just below the grid. + let percent = Int((abs(pan) * 100).rounded()) if abs(pan) < 0.04 { return "CENTER" - } else if pan < 0 { - return "L \(Int(abs(pan) * 100))" - } else { - return "R \(Int(pan * 100))" } + return pan < 0 ? "L \(percent)" : "R \(percent)" + } + + /// Moves one 5% keyboard step, snapping onto the 5% grid so repeated steps + /// neither drift nor overshoot after a drag left the value off-grid. + static func stepped(_ pan: Float, direction: Float) -> Float { + let grid = pan * 20 + let base = direction > 0 ? (grid + 1e-3).rounded(.down) : (grid - 1e-3).rounded(.up) + return max(-1, min(1, (base + direction) / 20)) } private var isCenter: Bool { @@ -666,7 +657,7 @@ struct PanKnobView: View { Text(panLabel) .font(.custom("DotGothic16-Regular", size: isCompactHeight ? 8.0 : 8.5)) .fontWeight(.bold) - .foregroundColor(isCenter ? theme.textPrimary : .red) + .foregroundColor(isCenter ? theme.textPrimary : theme.accentRed) } .padding(.horizontal, 4) @@ -701,16 +692,16 @@ struct PanKnobView: View { let fillOriginX = min(thumbX, centerX) + (fillWidth / 2.0) Rectangle() - .fill(Color.red) + .fill(theme.accentRed) .frame(width: max(1, fillWidth), height: isCompactHeight ? 2.5 : 3) .position(x: fillOriginX, y: height / 2.0) } // Thumb Needle / Pip RoundedRectangle(cornerRadius: 1) - .fill(isCenter ? theme.faderThumb : Color.red) + .fill(isCenter ? theme.faderThumb : theme.accentRed) .frame(width: 3.5, height: isCompactHeight ? 10 : 12) - .shadow(color: (isHovered || isDragging) ? Color.red.opacity(0.6) : Color.clear, radius: 3) + .shadow(color: (isHovered || isDragging) ? theme.accentRed.opacity(0.6) : Color.clear, radius: 3) .position(x: thumbX, y: height / 2.0) } .contentShape(Rectangle()) @@ -731,12 +722,14 @@ struct PanKnobView: View { isDragging = false } ) - .onTapGesture(count: 2) { + // A zero-distance drag claims every click, so the double-click + // reset has to run alongside it rather than compete with it. + .simultaneousGesture(TapGesture(count: 2).onEnded { Haptics.playAlignment() withAnimation(.easeOut(duration: 0.12)) { pan = 0.0 } - } + }) } .frame(height: isCompactHeight ? 13 : 16) .onHover { isHovered = $0 } @@ -746,10 +739,10 @@ struct PanKnobView: View { .accessibilityElement(children: .ignore) .accessibilityLabel(channelName.isEmpty ? "Pan" : "\(channelName) pan") .accessibilityValue(panLabel) - .accessibilityAdjustableAction { pan = max(-1, min(1, pan + ($0 == .increment ? 0.05 : -0.05))) } + .accessibilityAdjustableAction { pan = Self.stepped(pan, direction: $0 == .increment ? 1 : -1) } .focusable(isEnabled) - .onKeyPress(.leftArrow) { pan = max(-1, pan - 0.05); return .handled } - .onKeyPress(.rightArrow) { pan = min(1, pan + 0.05); return .handled } + .onKeyPress(.leftArrow) { pan = Self.stepped(pan, direction: -1); return .handled } + .onKeyPress(.rightArrow) { pan = Self.stepped(pan, direction: 1); return .handled } .contextMenu { Button("Center Pan") { pan = 0 } } } } @@ -782,7 +775,14 @@ struct RotaryEQKnobView: View { private var accentColor: Color { if isBypassed { return theme.textMuted } if abs(gain) < 0.15 { return theme.textPrimary } - return gain > 0 ? Color.red : theme.textSecondary + return gain > 0 ? theme.accentRed : theme.textSecondary + } + + /// Snaps gains within 0.25 dB to flat. The haptic plays only when a drag + /// enters that detent, not on every drag event inside it. + static func detent(_ target: Float, from current: Float) -> (gain: Float, entersDetent: Bool) { + guard abs(target) < 0.25 else { return (target, false) } + return (0, abs(current) >= 0.25) } var body: some View { @@ -839,7 +839,7 @@ struct RotaryEQKnobView: View { Circle() .trim(from: 0.5, to: 0.5 + (Double(gain) / 24.0) * 0.75) .stroke( - Color.red, + theme.accentRed, style: StrokeStyle(lineWidth: isCompactHeight ? 2.0 : 2.5, lineCap: .round) ) .rotationEffect(.degrees(90)) @@ -863,7 +863,7 @@ struct RotaryEQKnobView: View { .overlay( Circle() .stroke( - isHovered ? Color.red.opacity(0.85) : theme.cardBorder, + isHovered ? theme.accentRed.opacity(0.85) : theme.cardBorder, lineWidth: 1 ) ) @@ -886,26 +886,22 @@ struct RotaryEQKnobView: View { let start = dragStartGain ?? gain let sensitivity: Float = NSEvent.modifierFlags.contains(.option) ? 0.05 : 0.20 let delta = Float(-val.translation.height) * sensitivity - var next = max(-12.0, min(12.0, start + delta)) - - if abs(next) < 0.25 { - if abs(gain) >= 0.25 { - Haptics.playAlignment() - } - next = 0.0 + let next = Self.detent(max(-12.0, min(12.0, start + delta)), from: gain) + if next.entersDetent { + Haptics.playAlignment() } - gain = next + gain = next.gain } .onEnded { _ in dragStartGain = nil } ) - .onTapGesture(count: 2) { + .simultaneousGesture(TapGesture(count: 2).onEnded { Haptics.playAlignment() withAnimation(.easeOut(duration: 0.12)) { gain = 0.0 } - } + }) Text(gainString) .font(.custom("DotGothic16-Regular", size: isCompactHeight ? 7.5 : 8.5)) @@ -931,15 +927,28 @@ struct StemEQChannelStripView: View { @Binding var mid: Float @Binding var high: Float @Binding var isBypassed: Bool + var isGloballyBypassed: Bool = false var channelName: String = "" var isCompactHeight: Bool = false var onReset: (() -> Void)? = nil + var onRestoreGlobalEQ: (() -> Void)? = nil @State private var theme = ThemeManager.shared private var isModified: Bool { abs(low) >= 0.15 || abs(mid) >= 0.15 || abs(high) >= 0.15 } + /// True when no EQ reaches this channel's audio, either from its own + /// bypass or from ⌘E bypassing every EQ. + private var isEffectivelyBypassed: Bool { + isBypassed || isGloballyBypassed + } + + static func headerLabel(isBypassed: Bool, isGloballyBypassed: Bool) -> String { + if isGloballyBypassed { return "ALL EQ OFF" } + return isBypassed ? "EQ: BYP" : "3-BAND EQ" + } + var body: some View { VStack(spacing: isCompactHeight ? 3 : 5) { // Hairline Boundary Top @@ -952,15 +961,20 @@ struct StemEQChannelStripView: View { HStack { Button(action: { Haptics.playClick() - isBypassed.toggle() + if isGloballyBypassed, let onRestoreGlobalEQ { + onRestoreGlobalEQ() + } else { + isBypassed.toggle() + } }) { HStack(spacing: 4) { Circle() - .fill(isBypassed ? theme.textMuted : (isModified ? Color.red : theme.textPrimary)) + .fill(isEffectivelyBypassed ? theme.textDisabled : (isModified ? theme.accentRed : theme.textPrimary)) .frame(width: 4, height: 4) - Text(isBypassed ? "EQ: BYP" : "3-BAND EQ") + Text(Self.headerLabel(isBypassed: isBypassed, isGloballyBypassed: isGloballyBypassed)) .font(.custom("DotGothic16-Regular", size: isCompactHeight ? 8.0 : 8.5)) - .foregroundColor(isBypassed ? theme.textMuted : theme.textPrimary) + .foregroundColor(isGloballyBypassed ? theme.warning : (isBypassed ? theme.textMuted : theme.textPrimary)) + .lineLimit(1) } .padding(.horizontal, 5) .padding(.vertical, 2) @@ -969,15 +983,18 @@ struct StemEQChannelStripView: View { .overlay( RoundedRectangle(cornerRadius: 2) .stroke( - isModified && !isBypassed ? Color.red.opacity(0.5) : theme.hairline, + isGloballyBypassed ? theme.warning : (isModified && !isBypassed ? theme.accentRed.opacity(0.5) : theme.hairline), lineWidth: 0.5 ) ) + .expandedHitArea(vertical: 3) } .buttonStyle(.plain) .accessibilityLabel("\(channelName) EQ bypass") - .accessibilityValue(isBypassed ? "On" : "Off") - .help(isBypassed ? "Enable this channel's EQ" : "Bypass this channel's EQ") + .accessibilityValue(isGloballyBypassed ? "On, all EQ bypassed" : (isBypassed ? "On" : "Off")) + .help(isGloballyBypassed + ? "All EQ is bypassed (⌘E). Click to turn EQ back on." + : (isBypassed ? "Enable this channel's EQ" : "Bypass this channel's EQ")) Spacer() @@ -993,11 +1010,12 @@ struct StemEQChannelStripView: View { }) { Text("[RESET]") .font(.custom("DotGothic16-Regular", size: isCompactHeight ? 7.5 : 8.0)) - .foregroundColor(.red) + .foregroundColor(theme.accentRed) .padding(.horizontal, 4) .padding(.vertical, 2) - .background(Color.red.opacity(0.12)) + .background(theme.accentRed.opacity(0.12)) .clipShape(RoundedRectangle(cornerRadius: 2)) + .expandedHitArea(vertical: 3) } .buttonStyle(.plain) .accessibilityLabel("Reset \(channelName) EQ") @@ -1008,9 +1026,9 @@ struct StemEQChannelStripView: View { // 3 Rotary Knobs Row: LOW (100Hz), MID (1kHz), HIGH (10kHz) HStack(spacing: 2) { - RotaryEQKnobView(bandName: "LOW", freqLabel: "100Hz", gain: $low, isBypassed: isBypassed, channelName: channelName, isCompactHeight: isCompactHeight) - RotaryEQKnobView(bandName: "MID", freqLabel: "1.0kHz", gain: $mid, isBypassed: isBypassed, channelName: channelName, isCompactHeight: isCompactHeight) - RotaryEQKnobView(bandName: "HIGH", freqLabel: "10kHz", gain: $high, isBypassed: isBypassed, channelName: channelName, isCompactHeight: isCompactHeight) + RotaryEQKnobView(bandName: "LOW", freqLabel: "100Hz", gain: $low, isBypassed: isEffectivelyBypassed, channelName: channelName, isCompactHeight: isCompactHeight) + RotaryEQKnobView(bandName: "MID", freqLabel: "1.0kHz", gain: $mid, isBypassed: isEffectivelyBypassed, channelName: channelName, isCompactHeight: isCompactHeight) + RotaryEQKnobView(bandName: "HIGH", freqLabel: "10kHz", gain: $high, isBypassed: isEffectivelyBypassed, channelName: channelName, isCompactHeight: isCompactHeight) } // Hairline Boundary Bottom @@ -1075,9 +1093,9 @@ struct StemDynamicWaveformView: View { let dotColor: Color = { if isLit { - return distance == spread && distance > 1 ? Color.red : theme.textPrimary + return distance == spread && distance > 1 ? theme.accentRed : theme.textPrimary } else if isRestingCenter { - return effectiveVolume <= 0.001 ? theme.knobArcTrack : Color.red.opacity(0.35) + return effectiveVolume <= 0.001 ? theme.knobArcTrack : theme.textDisabled } else { return theme.knobArcTrack // Faint unlit physical LED dot } @@ -1244,11 +1262,11 @@ struct AlbumArtView: View { path.move(to: CGPoint(x: size, y: 0)) path.addLine(to: CGPoint(x: 0, y: size)) } - .stroke(Color.red.opacity(0.5), lineWidth: 1) + .stroke(theme.border, lineWidth: 1) Text("NO ARTWORK") .font(.custom("DotGothic16-Regular", size: size < 85 ? 8.5 : 10)) - .foregroundColor(.red.opacity(0.85)) + .foregroundColor(theme.textSecondary) .padding(3) .background(theme.surface) } @@ -1258,18 +1276,23 @@ struct AlbumArtView: View { Rectangle() .stroke(theme.cardBorder, lineWidth: 1) - // Red Corner Accents (Nothing Hardware Style) + // Corner Accents (Nothing Hardware Style) CornerBrackets() } .frame(width: size, height: size) .clipped() .contentShape(Rectangle()) - .onTapGesture { - guard image != nil else { return } - Haptics.playClick() - withAnimation(.easeInOut(duration: 0.18)) { - showHighRes.toggle() - } + .onTapGesture(perform: toggleArtwork) + .accessibilityElement(children: .ignore) + .accessibilityLabel(image == nil ? "No artwork" : "Album artwork") + .accessibilityValue(image == nil ? "" : (showHighRes ? "Full resolution" : "Dot matrix")) + .accessibilityAddTraits(image == nil ? [] : .isButton) + .accessibilityAction { toggleArtwork() } + // Keyboard focus only with system keyboard navigation, so Space still plays. + .focusable(image != nil, interactions: .activate) + .onKeyPress(.space) { + toggleArtwork() + return .handled } .onChange(of: image) { _, newImage in updateMatrix(for: newImage) @@ -1279,6 +1302,14 @@ struct AlbumArtView: View { } } + private func toggleArtwork() { + guard image != nil else { return } + Haptics.playClick() + withAnimation(reduceMotion ? nil : .easeInOut(duration: 0.18)) { + showHighRes.toggle() + } + } + private func updateMatrix(for img: NSImage?) { guard let img = img else { dotMatrix = nil @@ -1290,6 +1321,8 @@ struct AlbumArtView: View { struct CornerBrackets: View { + @State private var theme = ThemeManager.shared + var body: some View { GeometryReader { geo in let w = geo.size.width @@ -1317,7 +1350,7 @@ struct CornerBrackets: View { p.addLine(to: CGPoint(x: w, y: h)) p.addLine(to: CGPoint(x: w, y: h - len)) } - .stroke(Color.red, lineWidth: 2) + .stroke(theme.textSecondary, lineWidth: 2) } .allowsHitTesting(false) .accessibilityHidden(true) @@ -1393,7 +1426,7 @@ struct DynamicIslandDotWaveformView: View { let isLit = hasSignal && (distance <= spread) RoundedRectangle(cornerRadius: 0.6) - .fill(isLit ? Color.red : theme.knobArcTrack) + .fill(isLit ? theme.accentRed : theme.knobArcTrack) .frame(width: 4.5, height: 2.5) } } @@ -1434,8 +1467,8 @@ struct DotMatrixProgressBar: View { let isPassed = i < activeCount let fill: Color = isPassed - ? (inLoop ? Color.red : Color(red: 1.0, green: 0.35, blue: 0.35)) - : (inLoop ? Color.red.opacity(0.35) : theme.knobArcTrack) + ? (inLoop ? theme.accentRed : theme.textPrimary) + : (inLoop ? theme.accentRed.opacity(0.35) : theme.knobArcTrack) Rectangle() .fill(fill) @@ -1449,14 +1482,14 @@ struct DotMatrixProgressBar: View { HStack { Text("[A]") .font(.custom("DotGothic16-Regular", size: 9)) - .foregroundColor(.yellow) + .foregroundColor(theme.warning) .offset(x: max(0, geo.size.width * loopStart - 6), y: -14) Spacer() } HStack { Text("[B]") .font(.custom("DotGothic16-Regular", size: 9)) - .foregroundColor(.yellow) + .foregroundColor(theme.warning) .offset(x: min(geo.size.width - 18, geo.size.width * loopEnd - 6), y: -14) Spacer() } @@ -1493,6 +1526,42 @@ struct DotMatrixProgressBar: View { } } +/// Transport commands shared by the transport controls and keyboard shortcuts. +/// Seeking and A-B loop edits need a loaded track; without one they would leave +/// a playback position or loop region on screen for audio that does not exist. +@MainActor +enum TransportActions { + static func scrub(_ engine: AudioEngineManager, to percent: Double) { + guard engine.hasLoadedTrack else { return } + engine.playbackProgress = percent + engine.updateTimeString(for: percent) + } + + static func toggleLoop(_ engine: AudioEngineManager) { + guard engine.hasLoadedTrack else { return } + engine.toggleLoop() + } + + static func setLoopStart(_ engine: AudioEngineManager) { + guard engine.hasLoadedTrack else { return } + engine.setLoopStart(engine.playbackProgress) + } + + static func setLoopEnd(_ engine: AudioEngineManager) { + guard engine.hasLoadedTrack else { return } + engine.setLoopEnd(engine.playbackProgress) + } + + static func hasLoopMarkers(_ engine: AudioEngineManager) -> Bool { + engine.isLooping || engine.loopStartProgress > 0 || engine.loopEndProgress < 1 + } + + static func clearLoop(_ engine: AudioEngineManager) { + guard engine.hasLoadedTrack, hasLoopMarkers(engine) else { return } + engine.resetLoop() + } +} + struct TransportBar: View { @Environment(AudioEngineManager.self) private var engineManager @State private var theme = ThemeManager.shared @@ -1503,29 +1572,73 @@ struct TransportBar: View { @State private var isPitchHovered = false @State private var isSpeedHovered = false + /// Control sizes for each transport density. The roomiest density that still + /// leaves the seek bar `minimumSeekWidth` is used, so the fixed controls + /// shrink before the seek bar collapses. + struct Metrics: Equatable { + let isCompact: Bool + let isTight: Bool + let timeFontSize: CGFloat + let spacing: CGFloat + let loopWidth: CGFloat + let pitchReadoutWidth: CGFloat + let speedReadoutWidth: CGFloat + let bypassWidth: CGFloat + let exportWidth: CGFloat + + static let stepperWidth: CGFloat = 20 + static let playDiameter: CGFloat = 38 + static let minimumSeekWidth: CGFloat = 120 + + static let regular = Metrics(isCompact: false, isTight: false, timeFontSize: 15, spacing: 12, loopWidth: 80, + pitchReadoutWidth: 78, speedReadoutWidth: 44, bypassWidth: 110, exportWidth: 140) + static let compact = Metrics(isCompact: true, isTight: false, timeFontSize: 13, spacing: 8, loopWidth: 64, + pitchReadoutWidth: 54, speedReadoutWidth: 38, bypassWidth: 90, exportWidth: 110) + static let tight = Metrics(isCompact: true, isTight: true, timeFontSize: 13, spacing: 6, loopWidth: 52, + pitchReadoutWidth: 44, speedReadoutWidth: 36, bypassWidth: 70, exportWidth: 76) + + /// Width of everything in the row except the seek bar. + func fixedWidth(timeLabel: String) -> CGFloat { + // Each tempo control: two steppers, two 2pt gaps and 3pt padding per side. + let stepperChrome = Self.stepperWidth * 2 + 4 + 6 + return MarqueeText.measureTextWidth(timeLabel, size: timeFontSize) + + loopWidth + + pitchReadoutWidth + stepperChrome + + speedReadoutWidth + stepperChrome + + Self.playDiameter + bypassWidth + exportWidth + + spacing * 7 + } + + static func forWidth(_ width: CGFloat, timeLabel: String) -> Metrics { + [regular, compact].first { width - $0.fixedWidth(timeLabel: timeLabel) >= minimumSeekWidth } ?? tight + } + } + var body: some View { GeometryReader { geo in let w = geo.size.width - let isCompact = w < 800 - let isMini = w < 620 + let timeString = engineManager.currentTimeString + let metrics = Metrics.forWidth(w, timeLabel: timeString) + // Only below the window's minimum width: keep the seek bar usable. + let hidesTempoControls = w - metrics.fixedWidth(timeLabel: timeString) < 40 - HStack(spacing: isCompact ? 8 : 12) { - timeLabel(isCompact: isCompact) + HStack(spacing: metrics.spacing) { + timeLabel(metrics) progressBar .frame(minWidth: 50) // A-B Loop Quick Toggle - loopButton(isCompact: isCompact) + loopButton(metrics) - if !isMini { - pitchControl(isCompact: isCompact) - speedControl(isCompact: isCompact) + if !hidesTempoControls { + pitchControl(metrics) + speedControl(metrics) } playButton - bypassButton(isCompact: isCompact) - exportButton(isCompact: isCompact) + bypassButton(metrics) + exportButton(metrics) } .frame(width: w, height: 48) } @@ -1536,10 +1649,10 @@ struct TransportBar: View { .border(theme.hairline, width: 1) } - private func timeLabel(isCompact: Bool) -> some View { + private func timeLabel(_ metrics: Metrics) -> some View { Text(engineManager.currentTimeString) - .font(.custom("DotGothic16-Regular", size: isCompact ? 13 : 15)) - .foregroundColor(.red) + .font(.custom("DotGothic16-Regular", size: metrics.timeFontSize)) + .foregroundColor(theme.textPrimary) .lineLimit(1) .fixedSize(horizontal: true, vertical: false) } @@ -1551,10 +1664,10 @@ struct TransportBar: View { loopStart: engineManager.loopStartProgress, loopEnd: engineManager.loopEndProgress, onSeek: { percent in - engineManager.playbackProgress = percent - engineManager.updateTimeString(for: percent) + TransportActions.scrub(engineManager, to: percent) }, onSeekingChanged: { isSeeking in + guard engineManager.hasLoadedTrack else { return } if isSeeking { if !wasPlayingBeforeDrag && engineManager.isPlaying { wasPlayingBeforeDrag = true @@ -1569,31 +1682,41 @@ struct TransportBar: View { } } ) + .disabled(!engineManager.hasLoadedTrack) } - private func loopButton(isCompact: Bool) -> some View { - Button(action: { - engineManager.toggleLoop() + private func loopButton(_ metrics: Metrics) -> some View { + let isLooping = engineManager.isLooping + return Button(action: { + TransportActions.toggleLoop(engineManager) }) { - Text(engineManager.isLooping ? (isCompact ? "LOOP" : "LOOP: ON") : (isCompact ? "LOOP" : "LOOP: OFF")) - .font(.custom("DotGothic16-Regular", size: isCompact ? 10.5 : 11.5)) + Text(isLooping ? (metrics.isCompact ? "LOOP" : "LOOP: ON") : (metrics.isCompact ? "LOOP" : "LOOP: OFF")) + .font(.custom("DotGothic16-Regular", size: metrics.isCompact ? 10.5 : 11.5)) .fontWeight(.bold) - .frame(width: isCompact ? 64 : 80, height: 32) - .background(engineManager.isLooping ? Color.red : (isLoopHovered ? theme.surfaceHover : Color.clear)) + .frame(width: metrics.loopWidth, height: 32) + .background(isLooping ? theme.accentRed : (isLoopHovered ? theme.surfaceHover : Color.clear), + in: RoundedRectangle(cornerRadius: 3)) .overlay( RoundedRectangle(cornerRadius: 3) - .stroke(engineManager.isLooping ? Color.red : (isLoopHovered ? theme.textPrimary : theme.border), lineWidth: 1) + .stroke(isLooping ? theme.accentRed : (isLoopHovered ? theme.textPrimary : theme.border), lineWidth: 1) ) - .foregroundColor(engineManager.isLooping ? .black : (isLoopHovered ? theme.textPrimary : theme.textSecondary)) + .foregroundColor(isLooping ? theme.onAccent : (isLoopHovered ? theme.textPrimary : theme.textSecondary)) .contentShape(Rectangle()) } .buttonStyle(.plain) + .disabled(!engineManager.hasLoadedTrack) .onHover { isLoopHovered = $0 } .accessibilityLabel("Loop") - .accessibilityValue(engineManager.isLooping ? "On" : "Off") + .accessibilityValue(isLooping ? "On" : "Off") + .accessibilityAction(named: "Clear loop markers") { TransportActions.clearLoop(engineManager) } + .help("Toggle A-B loop (L). Set points with [ and ]; clear them with ⌥L or right-click.") + .contextMenu { + Button("Clear Loop Markers") { TransportActions.clearLoop(engineManager) } + .disabled(!engineManager.hasLoadedTrack || !TransportActions.hasLoopMarkers(engineManager)) + } } - private func pitchControl(isCompact: Bool) -> some View { + private func pitchControl(_ metrics: Metrics) -> some View { HStack(spacing: 2) { Button(action: { Haptics.playClick() @@ -1602,7 +1725,8 @@ struct TransportBar: View { Text("-") .font(.custom("DotGothic16-Regular", size: 12)) .foregroundColor(theme.textSecondary) - .frame(width: 14, height: 28) + .frame(width: Metrics.stepperWidth, height: 28) + .contentShape(Rectangle()) } .buttonStyle(.plain) .accessibilityLabel("Decrease pitch") @@ -1616,13 +1740,14 @@ struct TransportBar: View { ] let intervalName = intervals[absSt] ?? "\(absSt)ST" let sign = st > 0 ? "+" : "" - let displayText = isCompact ? (st == 0 ? "0 ST" : "\(sign)\(st) ST") : (st == 0 ? "0 ST [ROOT]" : "\(sign)\(st) ST [\(intervalName)]") + let displayText = metrics.isCompact ? (st == 0 ? "0 ST" : "\(sign)\(st) ST") : (st == 0 ? "0 ST [ROOT]" : "\(sign)\(st) ST [\(intervalName)]") Text(displayText) - .font(.custom("DotGothic16-Regular", size: isCompact ? 9.5 : 10)) + .font(.custom("DotGothic16-Regular", size: metrics.isCompact ? 9.5 : 10)) .fontWeight(.bold) - .foregroundColor(st == 0 ? theme.textMuted : .red) - .frame(width: isCompact ? 54 : 78) + .foregroundColor(st == 0 ? theme.textMuted : theme.accentRed) + .lineLimit(1) + .frame(width: metrics.pitchReadoutWidth) .contentShape(Rectangle()) .onTapGesture(count: 2) { Haptics.playClick() @@ -1636,7 +1761,8 @@ struct TransportBar: View { Text("+") .font(.custom("DotGothic16-Regular", size: 12)) .foregroundColor(theme.textSecondary) - .frame(width: 14, height: 28) + .frame(width: Metrics.stepperWidth, height: 28) + .contentShape(Rectangle()) } .buttonStyle(.plain) .accessibilityLabel("Increase pitch") @@ -1644,10 +1770,10 @@ struct TransportBar: View { } .padding(.horizontal, 3) .frame(height: 32) - .background(isPitchHovered ? theme.surfaceHover : theme.surfaceSecondary) + .background(isPitchHovered ? theme.surfaceHover : theme.surfaceSecondary, in: RoundedRectangle(cornerRadius: 3)) .overlay( RoundedRectangle(cornerRadius: 3) - .stroke(engineManager.pitchShiftSemitones != 0 ? Color.red.opacity(0.6) : theme.hairline, lineWidth: 1) + .stroke(engineManager.pitchShiftSemitones != 0 ? theme.accentRed.opacity(0.6) : theme.hairline, lineWidth: 1) ) .onHover { isPitchHovered = $0 } .accessibilityElement(children: .contain) @@ -1655,7 +1781,7 @@ struct TransportBar: View { .accessibilityValue("\(Int(engineManager.pitchShiftSemitones)) semitones") } - private func speedControl(isCompact: Bool) -> some View { + private func speedControl(_ metrics: Metrics) -> some View { HStack(spacing: 2) { Button(action: { Haptics.playClick() @@ -1669,17 +1795,19 @@ struct TransportBar: View { Text("‹") .font(.custom("DotGothic16-Regular", size: 12)) .foregroundColor(theme.textSecondary) - .frame(width: 12, height: 28) + .frame(width: Metrics.stepperWidth, height: 28) + .contentShape(Rectangle()) } .buttonStyle(.plain) .accessibilityLabel("Decrease playback speed") .disabled(engineManager.playbackRate <= 0.5) Text(String(format: "%.2fx", engineManager.playbackRate)) - .font(.custom("DotGothic16-Regular", size: isCompact ? 10 : 11)) + .font(.custom("DotGothic16-Regular", size: metrics.isCompact ? 10 : 11)) .fontWeight(.bold) - .foregroundColor(engineManager.playbackRate == 1.0 ? theme.textMuted : .red) - .frame(width: isCompact ? 38 : 44) + .foregroundColor(engineManager.playbackRate == 1.0 ? theme.textMuted : theme.accentRed) + .lineLimit(1) + .frame(width: metrics.speedReadoutWidth) .contentShape(Rectangle()) .onTapGesture(count: 2) { Haptics.playClick() @@ -1698,7 +1826,8 @@ struct TransportBar: View { Text("›") .font(.custom("DotGothic16-Regular", size: 12)) .foregroundColor(theme.textSecondary) - .frame(width: 12, height: 28) + .frame(width: Metrics.stepperWidth, height: 28) + .contentShape(Rectangle()) } .buttonStyle(.plain) .accessibilityLabel("Increase playback speed") @@ -1706,10 +1835,10 @@ struct TransportBar: View { } .padding(.horizontal, 3) .frame(height: 32) - .background(isSpeedHovered ? theme.surfaceHover : theme.surfaceSecondary) + .background(isSpeedHovered ? theme.surfaceHover : theme.surfaceSecondary, in: RoundedRectangle(cornerRadius: 3)) .overlay( RoundedRectangle(cornerRadius: 3) - .stroke(engineManager.playbackRate != 1.0 ? Color.red.opacity(0.6) : theme.hairline, lineWidth: 1) + .stroke(engineManager.playbackRate != 1.0 ? theme.accentRed.opacity(0.6) : theme.hairline, lineWidth: 1) ) .onHover { isSpeedHovered = $0 } .accessibilityElement(children: .contain) @@ -1724,9 +1853,9 @@ struct TransportBar: View { }) { Image(systemName: engineManager.isPlaying ? "pause.fill" : "play.fill") .font(.system(size: 18)) - .foregroundColor(.black) - .frame(width: 38, height: 38) - .background(Color.red) + .foregroundColor(theme.onAccent) + .frame(width: Metrics.playDiameter, height: Metrics.playDiameter) + .background(theme.accentRed) .clipShape(Circle()) .contentShape(Circle()) } @@ -1736,30 +1865,25 @@ struct TransportBar: View { .disabled(!engineManager.hasLoadedTrack || engineManager.isSplitting) } - private func bypassButton(isCompact: Bool) -> some View { - Button(action: { + private func bypassButton(_ metrics: Metrics) -> some View { + let isBypassed = engineManager.isBypassed + return Button(action: { Haptics.playClick() engineManager.isBypassed.toggle() }) { - Text(engineManager.isBypassed ? (isCompact ? "BYPASS" : "BYPASS: ON") : (isCompact ? "BYPASS" : "BYPASS: OFF")) - .font(.custom("DotGothic16-Regular", size: isCompact ? 11.5 : 13)) + Text(isBypassed ? (metrics.isCompact ? "BYPASS" : "BYPASS: ON") : (metrics.isCompact ? "BYPASS" : "BYPASS: OFF")) + .font(.custom("DotGothic16-Regular", size: metrics.isCompact ? 11.5 : 13)) .fontWeight(.bold) - .frame(width: isCompact ? 90 : 110, height: 34) - .background( - engineManager.isBypassed - ? Color.red - : (isBypassHovered ? theme.surfaceHover : Color.clear) - ) + .lineLimit(1) + .frame(width: metrics.bypassWidth, height: 34) + // Comparing against the original is a caution state, like the header's SOURCE label. + .background(isBypassed ? theme.warning : (isBypassHovered ? theme.surfaceHover : Color.clear), + in: RoundedRectangle(cornerRadius: 4)) .overlay( RoundedRectangle(cornerRadius: 4) - .stroke( - engineManager.isBypassed - ? Color.red - : (isBypassHovered ? theme.textPrimary : Color.red.opacity(0.8)), - lineWidth: 1 - ) + .stroke(isBypassed ? theme.warning : (isBypassHovered ? theme.textPrimary : theme.border), lineWidth: 1) ) - .foregroundColor(engineManager.isBypassed ? .black : .red) + .foregroundColor(isBypassed ? theme.onAccent : theme.textPrimary) .contentShape(Rectangle()) } .buttonStyle(.plain) @@ -1767,54 +1891,67 @@ struct TransportBar: View { .onHover { hovering in isBypassHovered = hovering } + .accessibilityLabel("Compare original") + .accessibilityInputLabels(["Bypass", "Compare original"]) + .accessibilityValue(isBypassed ? "On, playing original" : "Off, playing stem mix") + .help(isBypassed ? "Return to the stem mix (⌥⌘B)" : "Compare with the original (⌥⌘B)") } - private func exportButton(isCompact: Bool) -> some View { - Button(action: { + private func exportButton(_ metrics: Metrics) -> some View { + let state = engineManager.exportState + let isExporting = engineManager.isExporting + return Button(action: { + // Stays enabled while exporting so the progress label is not dimmed. + guard !engineManager.isExporting else { return } Haptics.playClick() engineManager.exportStems() }) { ZStack { - switch engineManager.exportState { + switch state { case .idle: - Text(isCompact ? "EXPORT" : "EXPORT STEMS") + Text(metrics.isCompact ? "EXPORT" : "EXPORT STEMS") .fontWeight(.bold) - .foregroundColor(.red) + .foregroundColor(theme.textPrimary) case .exporting(let stage, let percent): - Text("\(stage) \(Int(percent * 100))%") + Text(metrics.isTight ? "\(Int(percent * 100))%" : "\(stage) \(Int(percent * 100))%") .fontWeight(.bold) - .foregroundColor(.yellow) + .foregroundColor(theme.textPrimary) case .completed: HStack(spacing: 4) { Image(systemName: "checkmark") - Text(isCompact ? "DONE" : "COMPLETED") + Text(metrics.isCompact ? "DONE" : "COMPLETED") } .fontWeight(.bold) - .foregroundColor(theme.isDark ? .black : .white) + .foregroundColor(theme.background) } } - .font(.custom("DotGothic16-Regular", size: isCompact ? 11.5 : 13)) - .frame(width: isCompact ? 110 : 140, height: 34) + .font(.custom("DotGothic16-Regular", size: metrics.isCompact ? 11.5 : 13)) + .lineLimit(1) + .frame(width: metrics.exportWidth, height: 34) .background( - engineManager.exportState == .completed - ? Color.red - : (engineManager.isExporting - ? Color.red.opacity(0.25) - : (isExportHovered ? theme.surfaceHover : Color.clear)) + state == .completed + ? theme.textPrimary + : (isExporting + ? theme.accentRed.opacity(0.18) + : (isExportHovered ? theme.surfaceHover : Color.clear)), + in: RoundedRectangle(cornerRadius: 4) ) .overlay( RoundedRectangle(cornerRadius: 4) .stroke( - engineManager.exportState == .completed + state == .completed ? theme.textPrimary - : (isExportHovered ? theme.textPrimary : Color.red), + : (isExporting ? theme.accentRed : (isExportHovered ? theme.textPrimary : theme.border)), lineWidth: 1 ) ) .contentShape(Rectangle()) } - .disabled(!engineManager.hasLoadedTrack || engineManager.isExporting || engineManager.isSplitting) - .contextMenu { Button("Export Mix…") { engineManager.exportMix() } } + .disabled(!engineManager.hasLoadedTrack || engineManager.isSplitting) + .contextMenu { + Button("Export Mix…") { engineManager.exportMix() } + .disabled(isExporting) + } .buttonStyle(.plain) .onHover { hovering in isExportHovered = hovering @@ -1835,22 +1972,33 @@ struct MarqueeText: View { var body: some View { GeometryReader { geo in let containerWidth = geo.size.width - let textWidth = measureTextWidth(text, size: fontSize) + let textWidth = Self.measureTextWidth(text, size: fontSize) let overflow = textWidth - containerWidth - let needsScroll = overflow > 4 && containerWidth > 30 + let scrolls = Self.scrolls(overflow: overflow, containerWidth: containerWidth, reduceMotion: reduceMotion) ZStack(alignment: .leading) { - Text(text) - .font(.custom("DotGothic16-Regular", size: fontSize)) - .foregroundColor(color) - .fixedSize(horizontal: true, vertical: false) - .offset(x: offset) + if scrolls { + Text(text) + .font(.custom("DotGothic16-Regular", size: fontSize)) + .foregroundColor(color) + .fixedSize(horizontal: true, vertical: false) + .offset(x: offset) + } else { + // Without scrolling (Reduce Motion or a tiny overflow), end with an + // ellipsis rather than clipping mid-glyph; the tooltip has the rest. + Text(text) + .font(.custom("DotGothic16-Regular", size: fontSize)) + .foregroundColor(color) + .lineLimit(1) + .truncationMode(.tail) + } } .frame(width: containerWidth, alignment: .leading) .clipped() + .help(overflow > 0 ? text : "") .mask( Group { - if needsScroll { + if scrolls { HStack(spacing: 0) { LinearGradient( colors: [.clear, .black], @@ -1893,7 +2041,11 @@ struct MarqueeText: View { .frame(height: height) } - private func measureTextWidth(_ string: String, size: CGFloat) -> CGFloat { + static func scrolls(overflow: CGFloat, containerWidth: CGFloat, reduceMotion: Bool) -> Bool { + !reduceMotion && overflow > 6 && containerWidth > 40 + } + + static func measureTextWidth(_ string: String, size: CGFloat) -> CGFloat { let font = NSFont(name: "DotGothic16-Regular", size: size) ?? NSFont.monospacedSystemFont(ofSize: size, weight: .regular) let attr: [NSAttributedString.Key: Any] = [.font: font] return ceil((string as NSString).size(withAttributes: attr).width) @@ -1910,7 +2062,7 @@ struct MarqueeText: View { } let overflow = textWidth - containerWidth - guard !reduceMotion, overflow > 6, containerWidth > 40 else { + guard Self.scrolls(overflow: overflow, containerWidth: containerWidth, reduceMotion: reduceMotion) else { return } @@ -1945,16 +2097,88 @@ struct MarqueeText: View { } } +/// Header geometry, shared with the layout tests so the STUDIO HUD always gets +/// the width its labels are measured against. +struct PlayerHeaderMetrics { + static let hudVisibleWidth: CGFloat = 860 + static let hudGap: CGFloat = 26 + + let width: CGFloat + var isCompactHeight = false + var hasSidebarToggle = true + var isSidebarClosed = false + + static func showsHUD(width: CGFloat) -> Bool { + width >= hudVisibleWidth + } + + var showsHUD: Bool { Self.showsHUD(width: width) } + var isWide: Bool { width >= 1260 } + var artSize: CGFloat { isCompactHeight ? 76 : 100 } + var spacing: CGFloat { isCompactHeight ? 10 : 14 } + var horizontalPadding: CGFloat { isCompactHeight ? 16 : 24 } + + /// Everything in the header row except the track info and the HUD. + private var chrome: CGFloat { + horizontalPadding * 2 + (hasSidebarToggle ? 28 + spacing : 0) + artSize + spacing * 2 + Self.hudGap + } + + var trackInfoWidth: CGFloat { + let hudReserve: CGFloat = isWide ? 520 : 460 + let preferred: CGFloat = isWide ? (isSidebarClosed ? 680 : 480) : (isSidebarClosed ? 500 : 360) + return max(240, min(width - chrome - hudReserve, preferred)) + } + + var hudWidth: CGFloat { + showsHUD ? max(0, width - chrome - trackInfoWidth) : 0 + } +} + +/// Equal-width columns whose ideal width is the widest column's ideal times the +/// column count, so `ViewThatFits` rejects a row in which any column would truncate. +struct EqualWidthHStack: Layout { + var spacing: CGFloat = 6 + + private func columnWidth(for width: CGFloat, count: Int) -> CGFloat { + max(0, (width - spacing * CGFloat(count - 1)) / CGFloat(count)) + } + + func sizeThatFits(proposal: ProposedViewSize, subviews: Subviews, cache: inout ()) -> CGSize { + guard !subviews.isEmpty else { return .zero } + let widestIdeal = (subviews.map { $0.sizeThatFits(.unspecified).width }.max() ?? 0).rounded(.up) + 1 + let idealWidth = widestIdeal * CGFloat(subviews.count) + spacing * CGFloat(subviews.count - 1) + let width = proposal.width.map { $0.isFinite ? $0 : idealWidth } ?? idealWidth + let column = ProposedViewSize(width: columnWidth(for: width, count: subviews.count), height: proposal.height) + let height = subviews.map { $0.sizeThatFits(column).height }.max() ?? 0 + return CGSize(width: width, height: height) + } + + func placeSubviews(in bounds: CGRect, proposal: ProposedViewSize, subviews: Subviews, cache: inout ()) { + let width = columnWidth(for: bounds.width, count: subviews.count) + var x = bounds.minX + for subview in subviews { + subview.place(at: CGPoint(x: x, y: bounds.midY), anchor: .leading, + proposal: ProposedViewSize(width: width, height: bounds.height)) + x += width + spacing + } + } +} + +extension View { + /// Grows a small control's click target vertically without moving the layout. + func expandedHitArea(vertical amount: CGFloat) -> some View { + padding(.vertical, amount) + .contentShape(Rectangle()) + .padding(.vertical, -amount) + } +} + // MARK: - Header Center Telemetry & Visualizer Console Module struct HeaderCenterTelemetryModule: View { @Environment(AudioEngineManager.self) private var engineManager @State private var theme = ThemeManager.shared - let isMedium: Bool - let isWide: Bool var isCompactHeight: Bool = false - private let modes = ["32-BAND FFT", "STEM MACROS", "STEM BALANCE", "TELEMETRY", "EQUALIZER"] - var body: some View { ZStack { theme.surface @@ -1963,75 +2187,17 @@ struct HeaderCenterTelemetryModule: View { Rectangle() .stroke(theme.border, lineWidth: 1) - // Red corner brackets (Nothing aesthetic) + // Corner brackets (Nothing aesthetic) CornerBrackets() VStack(spacing: 0) { - // Top Telemetry / Mode Switcher Header Bar - HStack(spacing: 8) { - HStack(spacing: 4) { - Text("[") - .font(.custom("DotGothic16-Regular", size: isCompactHeight ? 9 : 10)) - .foregroundColor(theme.textMuted) - Text("STUDIO HUD") - .font(.custom("DotGothic16-Regular", size: isCompactHeight ? 9 : 10)) - .foregroundColor(.red) - Text("]") - .font(.custom("DotGothic16-Regular", size: isCompactHeight ? 9 : 10)) - .foregroundColor(theme.textMuted) - } - - if isWide || isMedium { - HStack(spacing: 8) { - Text("• \(engineManager.effectiveBPM)") - .font(.custom("DotGothic16-Regular", size: isCompactHeight ? 8.5 : 10)) - .foregroundColor(theme.textPrimary) - Text("• \(engineManager.effectiveMusicalKey)") - .font(.custom("DotGothic16-Regular", size: isCompactHeight ? 8.5 : 10)) - .foregroundColor(.red) - Text("• \(engineManager.trackSampleRate)") - .font(.custom("DotGothic16-Regular", size: isCompactHeight ? 8.0 : 9.5)) - .foregroundColor(theme.textMuted) - } - } - - Spacer(minLength: 8) - - // Mode Switcher Tabs - HStack(spacing: isCompactHeight ? 2 : 3) { - ForEach(0.. 0 ? theme.accentRed : theme.spectrumBarDefault } else if isUpperMidBlock { return theme.spectrumBarDefault } else { @@ -2190,16 +2449,16 @@ struct StemMacroPresetsView: View { macroButton(title: "ACAPELLA", desc: "SOLO VOCALS", isActive: isAcapellaActive) { engineManager.applyAcapella() } - macroButton(title: "INSTRUMENTAL", desc: "MUTE VOCALS", isActive: isInstrumentalActive) { + macroButton(title: "INSTRUMENTAL", shortTitle: "INSTR.", desc: "MUTE VOCALS", isActive: isInstrumentalActive) { engineManager.applyInstrumental() } macroButton(title: "DRUMLESS", desc: "MUTE DRUMS", isActive: isDrumlessActive) { engineManager.applyDrumless() } - macroButton(title: "KARAOKE", desc: "-12dB VOCALS", isActive: isKaraokeActive) { + macroButton(title: "KARAOKE", desc: "-12dB VOCALS", shortDesc: "-12dB VOX", isActive: isKaraokeActive) { engineManager.applyKaraoke() } - macroButton(title: "D&B", desc: "DRUMS + BASS", isActive: isDnBActive) { + macroButton(title: "D&B", desc: "DRUMS + BASS", shortDesc: "DRUMS+BASS", isActive: isDnBActive) { engineManager.applyDrumAndBass() } macroButton(title: "RESET MIX", desc: "UNITY 0dB", isActive: false) { @@ -2210,7 +2469,7 @@ struct StemMacroPresetsView: View { HStack(spacing: 6) { Circle() - .fill(Color.red) + .fill(theme.textMuted) .frame(width: 4, height: 4) Text(activePresetDescription) .font(.custom("DotGothic16-Regular", size: 9)) @@ -2237,7 +2496,8 @@ struct StemMacroPresetsView: View { return "STATUS: CUSTOM STEM MIX" } - private func macroButton(title: String, desc: String, isActive: Bool, action: @escaping () -> Void) -> some View { + private func macroButton(title: String, shortTitle: String? = nil, desc: String, shortDesc: String? = nil, + isActive: Bool, action: @escaping () -> Void) -> some View { Button(action: { action() }) { @@ -2245,30 +2505,42 @@ struct StemMacroPresetsView: View { HStack(spacing: 3) { if isActive { Circle() - .fill(Color.black) + .fill(theme.background) .frame(width: 4, height: 4) } - Text(title) - .font(.custom("DotGothic16-Regular", size: 9.5)) - .fontWeight(.bold) + // Narrow HUDs use the short title instead of truncating. + ViewThatFits(in: .horizontal) { + Text(title).fixedSize() + Text(shortTitle ?? title) + } + .font(.custom("DotGothic16-Regular", size: 9.5)) + .fontWeight(.bold) + .lineLimit(1) } - Text(desc) - .font(.custom("DotGothic16-Regular", size: 7.5)) - .opacity(isActive ? 0.85 : 0.6) + ViewThatFits(in: .horizontal) { + Text(desc).fixedSize() + Text(shortDesc ?? desc) + } + .font(.custom("DotGothic16-Regular", size: 7.5)) + .foregroundColor(isActive ? theme.background : theme.textSecondary) + .lineLimit(1) } .frame(maxWidth: .infinity) .padding(.vertical, 4) .padding(.horizontal, 4) - .background(isActive ? Color.red : theme.surfaceSecondary) - .foregroundColor(isActive ? .black : theme.textPrimary) + .background(isActive ? theme.textPrimary : theme.surfaceSecondary) + .foregroundColor(isActive ? theme.background : theme.textPrimary) .clipShape(RoundedRectangle(cornerRadius: 3)) .overlay( RoundedRectangle(cornerRadius: 3) - .stroke(isActive ? Color.red : theme.hairline, lineWidth: 1) + .stroke(isActive ? theme.textPrimary : theme.hairline, lineWidth: 1) ) .contentShape(Rectangle()) } .buttonStyle(.plain) + .accessibilityLabel("\(title) preset") + .accessibilityHint(desc) + .accessibilityAddTraits(isActive ? .isSelected : []) } } @@ -2297,7 +2569,7 @@ struct StemBalanceHUDView: View { isMuted: engineManager.drumMuted, isSolo: engineManager.drumSolo, magnitudes: engineManager.drumEQMagnitudes, - accentColor: .red + accentColor: theme.textPrimary ) StemChannelCardView( index: 2, @@ -2307,7 +2579,7 @@ struct StemBalanceHUDView: View { isMuted: engineManager.bassMuted, isSolo: engineManager.bassSolo, magnitudes: engineManager.bassEQMagnitudes, - accentColor: .red + accentColor: theme.textPrimary ) StemChannelCardView( index: 3, @@ -2362,7 +2634,7 @@ struct StemChannelCardView: View { .clipShape(RoundedRectangle(cornerRadius: 3)) .overlay( RoundedRectangle(cornerRadius: 3) - .stroke(isSolo ? Color.red : theme.hairline, lineWidth: 1) + .stroke(isSolo ? theme.accentRed : theme.hairline, lineWidth: 1) ) } @@ -2375,7 +2647,7 @@ struct StemChannelCardView: View { Spacer() Text(isMuted ? "MUTED" : (isSolo ? "SOLO" : "\(Int(vol * 100))%")) .font(.custom("DotGothic16-Regular", size: 8.0)) - .foregroundColor(isMuted ? .red : (isSolo ? .red : theme.textMuted)) + .foregroundColor(isMuted || isSolo ? theme.accentRed : theme.textMuted) } } @@ -2385,7 +2657,7 @@ struct StemChannelCardView: View { let segThreshold = CGFloat(seg + 1) / 10.0 let isLit = clampedEnergy >= segThreshold let isPeak = seg >= 8 - let segColor: Color = isPeak ? Color.red : (accentColor == .red ? Color.red.opacity(0.9) : theme.spectrumBarDefault) + let segColor: Color = isPeak ? theme.accentRed : theme.spectrumBarDefault Rectangle() .fill(isLit ? segColor : theme.knobArcTrack) @@ -2406,16 +2678,20 @@ struct StemChannelCardView: View { .fontWeight(.bold) .frame(maxWidth: .infinity) .padding(.vertical, 2) - .background(isMuted ? Color.red : theme.surfaceHover) - .foregroundColor(isMuted ? .black : theme.textSecondary) + .background(isMuted ? theme.accentRed : theme.surfaceHover) + .foregroundColor(isMuted ? theme.onAccent : theme.textSecondary) .clipShape(RoundedRectangle(cornerRadius: 2)) .overlay( RoundedRectangle(cornerRadius: 2) - .stroke(isMuted ? Color.red : theme.hairline, lineWidth: 1) + .stroke(isMuted ? theme.accentRed : theme.hairline, lineWidth: 1) ) - .contentShape(Rectangle()) + .expandedHitArea(vertical: 3) } .buttonStyle(.plain) + // Distinct from the mixer's "Mute VOCALS" so both stay addressable. + .accessibilityLabel("Balance mute \(name)") + .accessibilityValue(isMuted ? "On" : "Off") + .help("Mute \(name.capitalized)") Button(action: { Haptics.playClick() @@ -2426,16 +2702,19 @@ struct StemChannelCardView: View { .fontWeight(.bold) .frame(maxWidth: .infinity) .padding(.vertical, 2) - .background(isSolo ? Color.red : theme.surfaceHover) - .foregroundColor(isSolo ? .black : theme.textSecondary) + .background(isSolo ? theme.accentRed : theme.surfaceHover) + .foregroundColor(isSolo ? theme.onAccent : theme.textSecondary) .clipShape(RoundedRectangle(cornerRadius: 2)) .overlay( RoundedRectangle(cornerRadius: 2) - .stroke(isSolo ? Color.red : theme.hairline, lineWidth: 1) + .stroke(isSolo ? theme.accentRed : theme.hairline, lineWidth: 1) ) - .contentShape(Rectangle()) + .expandedHitArea(vertical: 3) } .buttonStyle(.plain) + .accessibilityLabel("Balance solo \(name)") + .accessibilityValue(isSolo ? "On" : "Off") + .help("Solo \(name.capitalized)") } } } @@ -2446,7 +2725,30 @@ struct StudioTelemetryHUDView: View { @State private var theme = ThemeManager.shared var body: some View { - HStack(spacing: 6) { + // Narrow HUDs split each reading over two short lines instead of truncating. + ViewThatFits(in: .horizontal) { + fullCards + compactCards + } + .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .center) + } + + private var compactCards: some View { + let timecode = engineManager.detailedTimecode.components(separatedBy: " / ") + return EqualWidthHStack(spacing: 6) { + telemetryCard(title: "TEMPO / KEY", line1: engineManager.effectiveBPM, line2: engineManager.effectiveMusicalKey) + telemetryCard(title: "FORMAT", line1: engineManager.trackBitDepth, line2: engineManager.trackSampleRate) + telemetryCard( + title: "PROCESSING", + line1: AudioEngineManager.systemChipName, + line2: engineManager.isSplitting ? "SEPARATING" : "MODEL IDLE" + ) + telemetryCard(title: "TIMECODE", line1: timecode.first ?? "", line2: timecode.dropFirst().first ?? "") + } + } + + private var fullCards: some View { + EqualWidthHStack(spacing: 6) { telemetryCard( title: "HARMONICS / TEMPO", line1: "\(engineManager.effectiveBPM) • \(engineManager.effectiveMusicalKey)", @@ -2471,19 +2773,19 @@ struct StudioTelemetryHUDView: View { line2: engineManager.isBypassed ? "BYPASS: ON (ORIGINAL)" : "BYPASS: OFF (4-STEMS)" ) } - .frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .center) } private func telemetryCard(title: String, line1: String, line2: String) -> some View { VStack(alignment: .leading, spacing: 2) { HStack(spacing: 3) { Circle() - .fill(Color.red) + .fill(theme.textDisabled) .frame(width: 3.5, height: 3.5) Text(title) .font(.custom("DotGothic16-Regular", size: 8.0)) - .foregroundColor(.red.opacity(0.9)) - Spacer() + .foregroundColor(theme.textSecondary) + .lineLimit(1) + Spacer(minLength: 0) } Text(line1) .font(.custom("DotGothic16-Regular", size: 9.0)) @@ -2509,6 +2811,7 @@ struct StudioTelemetryHUDView: View { // MARK: - HUD Interactive Parametric Equalizer Curve Visualizer struct HUDEqualizerCurveView: View { @Environment(AudioEngineManager.self) private var engineManager + @Environment(\.isEnabled) private var isEnabled @State private var theme = ThemeManager.shared @State private var selectedStemIndex: Int = 0 // 0: VOCALS, 1: DRUMS, 2: BASS, 3: OTHER, 4: MASTER @@ -2516,6 +2819,7 @@ struct HUDEqualizerCurveView: View { @State private var dragStartGain: Float? = nil private let stemNames = ["VOCALS", "DRUMS", "BASS", "OTHER", "MASTER"] + static let shortStemNames = ["VOX", "DRM", "BAS", "OTH", "MST"] private var currentLow: Float { engineManager.getStemEQ(selectedStemIndex).low @@ -2533,110 +2837,29 @@ struct HUDEqualizerCurveView: View { engineManager.getStemEQ(selectedStemIndex).isBypassed || engineManager.isGlobalEQBypassed } + private var isCurrentFlat: Bool { + abs(currentLow) < 0.15 && abs(currentMid) < 0.15 && abs(currentHigh) < 0.15 + } + var body: some View { VStack(spacing: 4) { // Top Toolbar: Stem Pills, Preset Quick Actions, Bypass & Reset HStack(spacing: 6) { - // Stem Selectors - HStack(spacing: 2) { - ForEach(0.. 0.1 ? .red : theme.textMuted) - Text("M: \(formatGain(currentMid))") - .font(.custom("DotGothic16-Regular", size: 8)) - .foregroundColor(abs(currentMid) > 0.1 ? .red : theme.textMuted) - Text("H: \(formatGain(currentHigh))") - .font(.custom("DotGothic16-Regular", size: 8)) - .foregroundColor(abs(currentHigh) > 0.1 ? .red : theme.textMuted) + // Narrow HUDs use short stem names, then drop the gain readout. The + // menu stays outside: AppKit-backed controls measure unreliably here. + ViewThatFits(in: .horizontal) { + stemSelectors(usesShortNames: false, showsReadout: true) + stemSelectors(usesShortNames: true, showsReadout: true) + stemSelectors(usesShortNames: true, showsReadout: false) } - .padding(.horizontal, 4) - // Presets Dropdown Menu - Menu { - ForEach(AudioEngineManager.factoryPresets) { preset in - Button(preset.name) { - engineManager.applyEQPreset(preset, to: selectedStemIndex) - } - } - } label: { - HStack(spacing: 2) { - Text("PRESETS") - .font(.custom("DotGothic16-Regular", size: 7.5)) - Text("▾") - .font(.custom("DotGothic16-Regular", size: 7)) - } - .padding(.horizontal, 4) - .padding(.vertical, 2) - .background(theme.surfaceSecondary) - .foregroundColor(theme.textPrimary) - .clipShape(RoundedRectangle(cornerRadius: 2)) - } - .menuStyle(.borderlessButton) - .fixedSize() + presetsMenu - // Bypass Button - Button(action: { - engineManager.toggleStemEQBypass(selectedStemIndex) - }) { - HStack(spacing: 2.5) { - Circle() - .fill(isCurrentBypassed ? theme.textMuted.opacity(0.5) : Color.red) - .frame(width: 4, height: 4) - Text(isCurrentBypassed ? "BYP" : "ACTIVE") - .font(.custom("DotGothic16-Regular", size: 7.5)) - .foregroundColor(isCurrentBypassed ? theme.textMuted : theme.textPrimary) - } - .padding(.horizontal, 4) - .padding(.vertical, 2) - .background(isCurrentBypassed ? theme.surfaceSecondary : Color.red.opacity(0.12)) - .clipShape(RoundedRectangle(cornerRadius: 2)) - .overlay( - RoundedRectangle(cornerRadius: 2) - .stroke(isCurrentBypassed ? theme.hairline : Color.red.opacity(0.4), lineWidth: 0.5) - ) - } - .buttonStyle(.plain) + bypassChip + .fixedSize() - // Reset Button - Button(action: { - engineManager.resetStemEQ(selectedStemIndex) - }) { - Text("RST") - .font(.custom("DotGothic16-Regular", size: 7.5)) - .foregroundColor(theme.textMuted) - .padding(.horizontal, 4) - .padding(.vertical, 2) - .background(theme.surfaceSecondary) - .clipShape(RoundedRectangle(cornerRadius: 2)) - } - .buttonStyle(.plain) - .help("Reset to 0.0 dB") + resetButton + .fixedSize() } .frame(height: 16) @@ -2656,6 +2879,7 @@ struct HUDEqualizerCurveView: View { let yLow = midY - CGFloat(currentLow / 12.0) * (midY * 0.78) let yMid = midY - CGFloat(currentMid / 12.0) * (midY * 0.78) let yHigh = midY - CGFloat(currentHigh / 12.0) * (midY * 0.78) + let isCurveActive = !isCurrentBypassed && !isCurrentFlat ZStack { // 1. Grid lines & labels @@ -2669,7 +2893,7 @@ struct HUDEqualizerCurveView: View { .fill( LinearGradient( colors: [ - isCurrentBypassed ? Color.gray.opacity(0.08) : Color.red.opacity(0.20), + isCurveActive ? theme.accentRed.opacity(0.20) : theme.textDisabled.opacity(0.12), Color.clear ], startPoint: .top, @@ -2679,7 +2903,7 @@ struct HUDEqualizerCurveView: View { curvePath(w: w, h: h, midY: midY) .stroke( - isCurrentBypassed ? Color.gray.opacity(0.4) : Color.red, + isCurrentBypassed ? theme.textDisabled : (isCurveActive ? theme.accentRed : theme.textSecondary), style: StrokeStyle(lineWidth: 1.5, lineCap: .round, lineJoin: .round) ) @@ -2722,6 +2946,148 @@ struct HUDEqualizerCurveView: View { .frame(maxWidth: .infinity, maxHeight: .infinity) } + private func stemSelectors(usesShortNames: Bool, showsReadout: Bool) -> some View { + HStack(spacing: 6) { + // Stem Selectors + HStack(spacing: 2) { + ForEach(0.. some View { + Text("\(band): +12.0dB") + .font(.custom("DotGothic16-Regular", size: 8)) + .hidden() + .overlay(alignment: .leading) { + Text("\(band): \(formatGain(gain))") + .font(.custom("DotGothic16-Regular", size: 8)) + .foregroundColor(abs(gain) > 0.1 ? theme.accentRed : theme.textMuted) + .fixedSize() + } + } + + private var bypassChip: some View { + let isGloballyBypassed = engineManager.isGlobalEQBypassed + let label = isGloballyBypassed ? "ALL BYP" : (isCurrentBypassed ? "BYP" : "ACTIVE") + return Button(action: { + // While ⌘E bypasses every EQ, this chip is the visible way back. + if isGloballyBypassed { + engineManager.toggleGlobalEQBypass() + } else { + engineManager.toggleStemEQBypass(selectedStemIndex) + } + }) { + HStack(spacing: 2.5) { + Circle() + .fill(isCurrentBypassed ? theme.textDisabled : theme.textPrimary) + .frame(width: 4, height: 4) + ZStack(alignment: .leading) { + Text("ALL BYP").hidden() + Text(label) + .foregroundColor(isGloballyBypassed ? theme.warning : (isCurrentBypassed ? theme.textMuted : theme.textPrimary)) + } + .font(.custom("DotGothic16-Regular", size: 7.5)) + .lineLimit(1) + } + .padding(.horizontal, 4) + .padding(.vertical, 2) + .background(theme.surfaceSecondary) + .clipShape(RoundedRectangle(cornerRadius: 2)) + .overlay( + RoundedRectangle(cornerRadius: 2) + .stroke(isGloballyBypassed ? theme.warning : theme.hairline, lineWidth: 0.5) + ) + .expandedHitArea(vertical: 3) + } + .buttonStyle(.plain) + .accessibilityLabel("\(stemNames[selectedStemIndex]) EQ bypass") + .accessibilityValue(isGloballyBypassed ? "On, all EQ bypassed" : (isCurrentBypassed ? "On" : "Off")) + .help(isGloballyBypassed ? "All EQ is bypassed (⌘E). Click to turn EQ back on." : "Bypass this EQ") + } + private func formatGain(_ gain: Float) -> String { if abs(gain) < 0.15 { return "0.0dB" } return String(format: "%+.1fdB", gain) @@ -2749,15 +3115,15 @@ struct HUDEqualizerCurveView: View { Text("100Hz") .font(.custom("DotGothic16-Regular", size: 6.5)) - .foregroundColor(theme.textMuted.opacity(0.7)) + .foregroundColor(theme.textMuted) .position(x: x100, y: h - 5) Text("1kHz") .font(.custom("DotGothic16-Regular", size: 6.5)) - .foregroundColor(theme.textMuted.opacity(0.7)) + .foregroundColor(theme.textMuted) .position(x: x1k, y: h - 5) Text("10kHz") .font(.custom("DotGothic16-Regular", size: 6.5)) - .foregroundColor(theme.textMuted.opacity(0.7)) + .foregroundColor(theme.textMuted) .position(x: x10k, y: h - 5) } @@ -2832,20 +3198,30 @@ struct HUDEqualizerCurveView: View { .frame(width: 14, height: 14) .overlay( Circle() - .stroke(isDragging ? theme.textPrimary : (isModified ? Color.red : theme.textSecondary), lineWidth: 1.5) + .stroke(isDragging ? theme.textPrimary : (isModified ? theme.accentRed : theme.textSecondary), lineWidth: 1.5) ) Circle() - .fill(isModified ? Color.red : theme.textPrimary) + .fill(isModified ? theme.accentRed : theme.textPrimary) .frame(width: 6, height: 6) Text(isDragging ? String(format: "%+.1fdB", gain) : name) .font(.custom("DotGothic16-Regular", size: 6.5)) - .foregroundColor(isModified ? .red : theme.textPrimary) + .foregroundColor(isModified ? theme.accentRed : theme.textPrimary) .offset(y: y < midY ? 12 : -12) } .frame(width: 24, height: 24) .contentShape(Rectangle()) + // Keyboard and VoiceOver access; MASTER gain has no other control. + // Applied before .position so focus and the element frame stay on the node. + .accessibilityElement(children: .ignore) + .accessibilityLabel("\(stemNames[selectedStemIndex]) \(name) EQ, \(freq)") + .accessibilityValue(String(format: "%+.1f decibels", gain)) + .accessibilityAdjustableAction { nudgeBand(bandIndex, by: $0 == .increment ? 0.5 : -0.5) } + .accessibilityAction(named: "Reset") { applyGainToBand(bandIndex, val: 0) } + .focusable(isEnabled) + .onKeyPress(.upArrow) { nudgeBand(bandIndex, by: 0.5); return .handled } + .onKeyPress(.downArrow) { nudgeBand(bandIndex, by: -0.5); return .handled } .position(x: x, y: y) .gesture( DragGesture(minimumDistance: 0) @@ -2854,22 +3230,28 @@ struct HUDEqualizerCurveView: View { let deltaY = -Float(val.translation.height) * 0.25 if dragStartGain == nil { dragStartGain = gain } let baseGain = dragStartGain ?? gain - var target = max(-12.0, min(12.0, baseGain + deltaY)) - if abs(target) < 0.25 { - target = 0.0 + let target = RotaryEQKnobView.detent(max(-12.0, min(12.0, baseGain + deltaY)), from: gain) + if target.entersDetent { Haptics.playAlignment() } - applyGainToBand(bandIndex, val: target) + applyGainToBand(bandIndex, val: target.gain) } .onEnded { _ in draggingBand = nil dragStartGain = nil } ) - .onTapGesture(count: 2) { + .simultaneousGesture(TapGesture(count: 2).onEnded { Haptics.playAlignment() applyGainToBand(bandIndex, val: 0.0) - } + }) + } + + /// Steps a band from its live value, so key repeat never starts from a stale gain. + private func nudgeBand(_ band: Int, by delta: Float) { + let eq = engineManager.getStemEQ(selectedStemIndex) + let current = band == 0 ? eq.low : (band == 1 ? eq.mid : eq.high) + applyGainToBand(band, val: max(-12, min(12, current + delta))) } private func applyGainToBand(_ band: Int, val: Float) { @@ -2898,7 +3280,7 @@ struct ShortcutsHUDModal: View { HStack { HStack(spacing: 8) { Circle() - .fill(Color.red) + .fill(theme.textPrimary) .frame(width: 8, height: 8) Text("ISOLATE // QUICK SHORTCUTS") .font(.custom("DotGothic16-Regular", size: 16)) @@ -2921,25 +3303,20 @@ struct ShortcutsHUDModal: View { .clipShape(RoundedRectangle(cornerRadius: 3)) } .buttonStyle(.plain) + .keyboardShortcut(.cancelAction) .onHover { isCloseHovered = $0 } + .accessibilityLabel("Close shortcuts") } Divider() .background(theme.hairline) - VStack(alignment: .leading, spacing: 8) { - hudRow(keys: ["⌘", "B"], action: "Toggle Audio Library Sidebar") - hudRow(keys: ["1", "2", "3", "4"], action: "Exclusive Solo Vocals, Drums, Bass, Other") - hudRow(keys: ["V", "D", "B", "O"], action: "Toggle Mute for individual channels") - hudRow(keys: ["⌘1-5"], action: "Switch HUD: FFT, Macros, Balance, Telemetry, EQ") - hudRow(keys: ["⌘", "E"], action: "Toggle Master EQ Processing On / Off") - hudRow(keys: ["[", "]"], action: "Set A-B Loop Start and End points on the fly") - hudRow(keys: ["L"], action: "Toggle A-B Region Loop On / Off") - hudRow(keys: ["A", "I", "R"], action: "Acapella, Instrumental, Reset Unity Mix") - hudRow(keys: ["Space"], action: "Play / Pause playback") - hudRow(keys: ["⌘", "O"], action: "Import / Batch Import audio tracks") - hudRow(keys: ["⌘", ","], action: "Open Studio Settings Modal") - hudRow(keys: ["?"], action: "Toggle this Shortcut Cheat Sheet") + // Scrolls only when the window is too short to show every row. + ViewThatFits(in: .vertical) { + shortcutRows + ScrollView(.vertical) { + shortcutRows + } } } .padding(22) @@ -2948,6 +3325,28 @@ struct ShortcutsHUDModal: View { .border(theme.cardBorder, width: 1) .overlay(CornerBrackets()) .shadow(color: theme.isDark ? Color.black : Color.black.opacity(0.15), radius: 30, x: 0, y: 10) + .padding(.vertical, 16) + .onExitCommand(perform: onClose) + .accessibilityAddTraits(.isModal) + } + + private var shortcutRows: some View { + VStack(alignment: .leading, spacing: 8) { + hudRow(keys: ["⌘", "B"], action: "Toggle Audio Library Sidebar") + hudRow(keys: ["1", "2", "3", "4"], action: "Exclusive Solo Vocals, Drums, Bass, Other") + hudRow(keys: ["V", "D", "B", "O"], action: "Toggle Mute for individual channels") + hudRow(keys: ["⌘1-5"], action: "Switch HUD: FFT, Macros, Balance, Telemetry, EQ") + hudRow(keys: ["⌘", "E"], action: "Bypass All EQ (Stems + Master) On / Off") + hudRow(keys: ["[", "]"], action: "Set A-B Loop Start and End points on the fly") + hudRow(keys: ["L"], action: "Toggle A-B Region Loop On / Off") + hudRow(keys: ["⌥", "L"], action: "Clear A-B Loop Markers") + hudRow(keys: ["A", "I", "R"], action: "Acapella, Instrumental, Reset Unity Mix") + hudRow(keys: ["Space"], action: "Play / Pause playback") + hudRow(keys: ["⌘", "⌥", "B"], action: "Compare Original and Stem Mix") + hudRow(keys: ["⌘", "O"], action: "Import / Batch Import audio tracks") + hudRow(keys: ["⌘", ","], action: "Open Studio Settings Modal") + hudRow(keys: ["?"], action: "Toggle this Shortcut Cheat Sheet") + } } private func hudRow(keys: [String], action: String) -> some View { @@ -2957,14 +3356,14 @@ struct ShortcutsHUDModal: View { Text(key) .font(.custom("DotGothic16-Regular", size: 11)) .fontWeight(.bold) - .foregroundColor(.red) + .foregroundColor(theme.textPrimary) .padding(.horizontal, 6) .padding(.vertical, 2) - .background(Color.red.opacity(0.12)) + .background(theme.surfaceSecondary) .clipShape(RoundedRectangle(cornerRadius: 3)) .overlay( RoundedRectangle(cornerRadius: 3) - .stroke(Color.red.opacity(0.4), lineWidth: 1) + .stroke(theme.border, lineWidth: 1) ) } } From 3e88129c4bb9b5ec39fe9949d3a3179f6bf4b153 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:34:45 -0500 Subject: [PATCH 30/89] test(ui): cover HUD fit, transport density, resets and shortcuts Double-clicks and key presses are posted straight to an offscreen window, so the tests never move the pointer or use the keyboard. Co-Authored-By: Claude Opus 5.5 --- Tests/IsolateTests/UIFixTests.swift | 348 ++++++++++++++++++++++++++++ 1 file changed, 348 insertions(+) create mode 100644 Tests/IsolateTests/UIFixTests.swift diff --git a/Tests/IsolateTests/UIFixTests.swift b/Tests/IsolateTests/UIFixTests.swift new file mode 100644 index 0000000..0881dd8 --- /dev/null +++ b/Tests/IsolateTests/UIFixTests.swift @@ -0,0 +1,348 @@ +import XCTest +import AVFoundation +import SwiftUI +import AppKit +@testable import Isolate + +@MainActor +final class UIFixTests: XCTestCase { + private var directory: URL! + + override func setUpWithError() throws { + directory = FileManager.default.temporaryDirectory.appending(path: UUID().uuidString) + try FileManager.default.createDirectory(at: directory, withIntermediateDirectories: true) + } + + override func tearDownWithError() throws { + try FileManager.default.removeItem(at: directory) + } + + // MARK: - Helpers + + private func audio(_ name: String, seconds: Double = 0.5) throws -> URL { + let url = directory.appending(path: name) + let format = AVAudioFormat(commonFormat: .pcmFormatFloat32, sampleRate: 44_100, channels: 2, interleaved: false)! + let buffer = AVAudioPCMBuffer(pcmFormat: format, frameCapacity: AVAudioFrameCount(44_100 * seconds))! + buffer.frameLength = buffer.frameCapacity + for channel in 0..<2 { + for frame in 0.. AudioEngineManager { + let original = try audio("original.wav") + let urls = try DemucsEngine.stemNames.map { try audio("\($0).wav") } + let track = TrackModel(id: original.path, title: "UI Fix", originalURL: original, + vocalStemURL: urls[0], bassStemURL: urls[2], drumStemURL: urls[1], otherStemURL: urls[3]) + let engine = AudioEngineManager() + await engine.loadTrack(track) + XCTAssertTrue(engine.hasLoadedTrack) + return engine + } + + /// Ideal (unconstrained) width, which is what `ViewThatFits` compares against. + private func idealWidth(_ view: V) -> CGFloat { + NSHostingView(rootView: view).fittingSize.width + } + + private func requireBundledFont() throws { + try XCTSkipIf(NSFont(name: "DotGothic16-Regular", size: 10) == nil, + "Layout widths are only meaningful with the bundled DotGothic16 font") + } + + /// Posts a double-click straight to an offscreen window; the real pointer never moves. + private func doubleClick(_ view: V, size: CGSize, at point: CGPoint) { + let host = NSHostingView(rootView: view.frame(width: size.width, height: size.height)) + host.frame = NSRect(origin: .zero, size: size) + let window = NSWindow(contentRect: NSRect(x: -20_000, y: -20_000, width: size.width, height: size.height), + styleMask: [.borderless], backing: .buffered, defer: false) + window.isReleasedWhenClosed = false + window.contentView = host + window.orderFrontRegardless() + defer { window.orderOut(nil) } + host.layoutSubtreeIfNeeded() + RunLoop.main.run(until: Date().addingTimeInterval(0.2)) + let location = host.convert(point, to: nil) + for clickCount in 1...2 { + for type in [NSEvent.EventType.leftMouseDown, .leftMouseUp] { + let event = NSEvent.mouseEvent(with: type, location: location, modifierFlags: [], + timestamp: ProcessInfo.processInfo.systemUptime, + windowNumber: window.windowNumber, context: nil, + eventNumber: 0, clickCount: clickCount, pressure: 1)! + window.sendEvent(event) + RunLoop.main.run(until: Date().addingTimeInterval(0.02)) + } + } + RunLoop.main.run(until: Date().addingTimeInterval(0.3)) + } + + /// Backs a control's binding in these main-actor tests. + private final class Box: @unchecked Sendable { + var value: Value + init(_ value: Value) { self.value = value } + var binding: Binding { Binding(get: { self.value }, set: { self.value = $0 }) } + } + + // MARK: - ui-14: pan readout + + func testPanReadoutRoundsAndKeyboardStepsStayOnGrid() { + var pan: Float = 1 + var labels: [String] = [] + for _ in 0..<20 { + pan = PanKnobView.stepped(pan, direction: -1) + labels.append(PanKnobView.label(for: pan)) + } + XCTAssertEqual(Array(labels.prefix(5)), ["R 95", "R 90", "R 85", "R 80", "R 75"]) + XCTAssertEqual(labels.last, "CENTER") + XCTAssertEqual(pan, 0, "Twenty 5% steps from full right must land exactly on center") + XCTAssertEqual(PanKnobView.label(for: 0.79999995), "R 80") + XCTAssertEqual(PanKnobView.label(for: -0.3), "L 30") + // A drag can leave the value off-grid; one key step moves onto the next grid point. + XCTAssertEqual(PanKnobView.stepped(0.33, direction: 1), 0.35, accuracy: 1e-6) + XCTAssertEqual(PanKnobView.stepped(0.33, direction: -1), 0.30, accuracy: 1e-6) + XCTAssertEqual(PanKnobView.stepped(1, direction: 1), 1) + XCTAssertEqual(PanKnobView.stepped(-1, direction: -1), -1) + } + + // MARK: - ui-15: EQ detent haptic + + func testEQDetentHapticPlaysOnlyWhenEnteringFlat() { + XCTAssertEqual(RotaryEQKnobView.detent(0.1, from: 3).gain, 0) + XCTAssertTrue(RotaryEQKnobView.detent(0.1, from: 3).entersDetent) + // Pressing or moving within the detent of an already-flat band stays silent. + XCTAssertFalse(RotaryEQKnobView.detent(0, from: 0).entersDetent) + XCTAssertFalse(RotaryEQKnobView.detent(-0.2, from: 0).entersDetent) + XCTAssertEqual(RotaryEQKnobView.detent(2.5, from: 0).gain, 2.5) + XCTAssertFalse(RotaryEQKnobView.detent(2.5, from: 0).entersDetent) + } + + // MARK: - ui-13 and audio-engine-7: transport without a track, clearing loops + + func testSeekAndLoopActionsDoNothingWithoutALoadedTrack() { + let engine = AudioEngineManager() + XCTAssertFalse(engine.hasLoadedTrack) + TransportActions.scrub(engine, to: 0.7) + XCTAssertEqual(engine.playbackProgress, 0, "Scrubbing an empty player must not leave a phantom position") + TransportActions.toggleLoop(engine) + TransportActions.setLoopStart(engine) + TransportActions.setLoopEnd(engine) + XCTAssertFalse(engine.isLooping) + XCTAssertEqual(engine.loopStartProgress, 0) + XCTAssertEqual(engine.loopEndProgress, 1) + XCTAssertFalse(TransportActions.hasLoopMarkers(engine)) + } + + func testLoopMarkersCanBeSetAndClearedWithALoadedTrack() async throws { + let engine = try await loadedEngine() + TransportActions.scrub(engine, to: 0.25) + XCTAssertEqual(engine.playbackProgress, 0.25, accuracy: 1e-9) + TransportActions.setLoopStart(engine) + engine.playbackProgress = 0.6 + TransportActions.setLoopEnd(engine) + XCTAssertTrue(engine.isLooping) + XCTAssertTrue(TransportActions.hasLoopMarkers(engine)) + TransportActions.toggleLoop(engine) + XCTAssertFalse(engine.isLooping) + XCTAssertTrue(TransportActions.hasLoopMarkers(engine), "Turning the loop off keeps its markers") + TransportActions.clearLoop(engine) + XCTAssertFalse(engine.isLooping) + XCTAssertEqual(engine.loopStartProgress, 0) + XCTAssertEqual(engine.loopEndProgress, 1) + XCTAssertFalse(TransportActions.hasLoopMarkers(engine)) + engine.unloadTrack() + } + + // MARK: - ui-6: global EQ bypass indicator + + func testGlobalEQBypassIsShownOnEveryChannelStrip() { + XCTAssertEqual(StemEQChannelStripView.headerLabel(isBypassed: false, isGloballyBypassed: false), "3-BAND EQ") + XCTAssertEqual(StemEQChannelStripView.headerLabel(isBypassed: true, isGloballyBypassed: false), "EQ: BYP") + XCTAssertEqual(StemEQChannelStripView.headerLabel(isBypassed: false, isGloballyBypassed: true), "ALL EQ OFF") + XCTAssertEqual(StemEQChannelStripView.headerLabel(isBypassed: true, isGloballyBypassed: true), "ALL EQ OFF") + } + + // MARK: - ui-1 and ui-9: header, HUD and transport fit + + func testStudioHUDTabsFitWithoutTruncationAtDefaultAndNarrowWidths() throws { + try requireBundledFont() + let engine = AudioEngineManager() + let padding: CGFloat = 20 // HeaderCenterTelemetryModule's horizontal padding + + // Default 1280x800 window with the library open leaves the player 1009pt. + let defaultWindow = PlayerHeaderMetrics(width: 1009, isCompactHeight: false, hasSidebarToggle: true, isSidebarClosed: false) + XCTAssertTrue(defaultWindow.showsHUD) + XCTAssertGreaterThanOrEqual(defaultWindow.trackInfoWidth, 240) + let fullLabels = idealWidth(HUDTopBar(showsMetadata: false, isCompactHeight: false).environment(engine)) + XCTAssertLessThanOrEqual(fullLabels + padding, defaultWindow.hudWidth, + "Full mode tab names must fit the HUD at the default window") + + // The narrowest header that still shows the HUD must fit the short tab names. + for compactHeight in [false, true] { + let narrowest = PlayerHeaderMetrics(width: PlayerHeaderMetrics.hudVisibleWidth, isCompactHeight: compactHeight, + hasSidebarToggle: true, isSidebarClosed: false) + let shortLabels = idealWidth(HUDTopBar(showsMetadata: false, usesShortLabels: true, + isCompactHeight: compactHeight).environment(engine)) + XCTAssertLessThanOrEqual(shortLabels + padding, narrowest.hudWidth) + } + XCTAssertFalse(PlayerHeaderMetrics.showsHUD(width: 859)) + } + + func testEqualWidthRowIdealWidthUsesItsWidestColumn() { + let row = EqualWidthHStack(spacing: 6) { + Color.clear.frame(width: 40, height: 10) + Color.clear.frame(width: 100, height: 10) + Color.clear.frame(width: 10, height: 10) + } + // Equal columns of the widest ideal (plus a point of rounding slack), so a + // ViewThatFits check can't pass a row whose widest column would truncate. + XCTAssertEqual(idealWidth(row), 101 * 3 + 12, accuracy: 0.5) + } + + func testTransportKeepsSeekBarUsableAtEveryWindowWidth() throws { + try requireBundledFont() + let time = "00:00 / -00:00" + // 960pt minimum window with the 270pt library and 1pt divider, less 28pt padding. + let minimumWidth: CGFloat = 960 - 271 - 28 + XCTAssertEqual(TransportBar.Metrics.forWidth(minimumWidth, timeLabel: time), .tight) + XCTAssertEqual(TransportBar.Metrics.forWidth(1280 - 271 - 28, timeLabel: time), .regular) + for width in stride(from: minimumWidth, through: 1800, by: 1) { + let metrics = TransportBar.Metrics.forWidth(width, timeLabel: time) + XCTAssertGreaterThanOrEqual(width - metrics.fixedWidth(timeLabel: time), 100, + "Seek bar collapsed at transport width \(width)") + } + } + + func testTransportLabelsFitTheirButtonsAtEveryDensity() throws { + try requireBundledFont() + func width(_ text: String, size: CGFloat) -> CGFloat { + idealWidth(Text(text).font(.custom("DotGothic16-Regular", size: size)).fontWeight(.bold)) + } + for metrics in [TransportBar.Metrics.regular, .compact, .tight] { + let size: CGFloat = metrics.isCompact ? 11.5 : 13 + XCTAssertLessThan(width(metrics.isCompact ? "BYPASS" : "BYPASS: OFF", size: size), metrics.bypassWidth) + XCTAssertLessThan(width(metrics.isCompact ? "EXPORT" : "EXPORT STEMS", size: size), metrics.exportWidth) + XCTAssertLessThan(width(metrics.isTight ? "100%" : "RENDERING 100%", size: size), metrics.exportWidth) + XCTAssertLessThan(width(metrics.isCompact ? "LOOP" : "LOOP: OFF", size: metrics.isCompact ? 10.5 : 11.5), metrics.loopWidth) + XCTAssertLessThan(width(metrics.isCompact ? "-12 ST" : "-12 ST [OCT]", size: metrics.isCompact ? 9.5 : 10), + metrics.pitchReadoutWidth) + XCTAssertLessThan(width("0.75x", size: metrics.isCompact ? 10 : 11), metrics.speedReadoutWidth) + } + } + + private typealias Key = (characters: String, unmodified: String, keyCode: UInt16, flags: NSEvent.ModifierFlags) + + private func pressKeys(_ keys: [Key], in engine: AudioEngineManager) { + pressKeys(keys, in: PlayerView(isSidebarVisible: .constant(false)).environment(engine), size: CGSize(width: 1009, height: 800)) + } + + /// Posts key presses straight to an offscreen window; the real keyboard is untouched. + private func pressKeys(_ keys: [Key], in view: V, size: CGSize) { + let host = NSHostingView(rootView: view.frame(width: size.width, height: size.height)) + host.frame = NSRect(origin: .zero, size: size) + let window = NSWindow(contentRect: NSRect(x: -20_000, y: -20_000, width: size.width, height: size.height), + styleMask: [.borderless], backing: .buffered, defer: false) + window.isReleasedWhenClosed = false + window.contentView = host + window.orderFrontRegardless() + defer { window.orderOut(nil) } + host.layoutSubtreeIfNeeded() + RunLoop.main.run(until: Date().addingTimeInterval(0.3)) + for key in keys { + for type in [NSEvent.EventType.keyDown, .keyUp] { + let event = NSEvent.keyEvent(with: type, location: .zero, modifierFlags: key.flags, + timestamp: ProcessInfo.processInfo.systemUptime, + windowNumber: window.windowNumber, context: nil, + characters: key.characters, charactersIgnoringModifiers: key.unmodified, + isARepeat: false, keyCode: key.keyCode)! + window.sendEvent(event) + } + RunLoop.main.run(until: Date().addingTimeInterval(0.1)) + } + } + + func testLoopShortcutsSetAndClearMarkers() async throws { + let engine = try await loadedEngine() + pressKeys([("¬", "l", 37, [.option])], in: engine) + XCTAssertFalse(engine.isLooping, "⌥L must not also toggle the loop") + engine.playbackProgress = 0.2 + pressKeys([("[", "[", 33, [])], in: engine) + XCTAssertTrue(engine.isLooping, "[ sets the loop start and turns looping on") + XCTAssertEqual(engine.loopStartProgress, 0.2, accuracy: 1e-9) + pressKeys([("¬", "l", 37, [.option])], in: engine) + XCTAssertFalse(engine.isLooping, "⌥L clears the loop") + XCTAssertEqual(engine.loopStartProgress, 0) + XCTAssertEqual(engine.loopEndProgress, 1) + engine.unloadTrack() + } + + // MARK: - ui-10: Escape closes the shortcut cheat sheet + + func testEscapeClosesShortcutCheatSheet() { + let closed = Box(false) + pressKeys([("\u{1b}", "\u{1b}", 53, [])], in: ShortcutsHUDModal(onClose: { closed.value = true }), + size: CGSize(width: 540, height: 600)) + XCTAssertTrue(closed.value, "The card says ESC / CLOSE, so Escape must close it") + } + + // MARK: - design-a11y-18: Reduce Motion + + func testMarqueeTruncatesInsteadOfScrollingUnderReduceMotion() { + XCTAssertTrue(MarqueeText.scrolls(overflow: 80, containerWidth: 200, reduceMotion: false)) + XCTAssertFalse(MarqueeText.scrolls(overflow: 80, containerWidth: 200, reduceMotion: true)) + // Small overflows no longer get a scroll-style fade without scrolling. + XCTAssertFalse(MarqueeText.scrolls(overflow: 5, containerWidth: 200, reduceMotion: false)) + } + + // MARK: - ui-5: double-click resets + + func testDoubleClickResetsPanBarToCenter() { + let pan = Box(0.6) + doubleClick(PanKnobView(pan: pan.binding, channelName: "VOCALS"), + size: CGSize(width: 200, height: 40), at: CGPoint(x: 40, y: 26)) + XCTAssertEqual(pan.value, 0, "Double-clicking the pan bar must center it, not leave it at the click point") + } + + func testDoubleClickResetsEQKnobToFlat() { + let gain = Box(6) + doubleClick(RotaryEQKnobView(bandName: "MID", freqLabel: "1.0kHz", gain: gain.binding, channelName: "VOCALS"), + size: CGSize(width: 80, height: 90), at: CGPoint(x: 40, y: 45)) + XCTAssertEqual(gain.value, 0, "Double-clicking an EQ knob must reset it to 0 dB") + } + + func testDoubleClickResetsHUDEqualizerNode() { + let engine = AudioEngineManager() + engine.setStemEQ(0, low: 6, mid: 0, high: 0) + let size = CGSize(width: 400, height: 120) + // Canvas starts below the 16pt toolbar and 4pt gap; LOW sits at 100Hz on a log axis. + let canvasHeight = size.height - 20 + let midY = canvasHeight / 2 + let node = CGPoint(x: size.width * log10(5) / 3, y: 20 + midY - 0.5 * midY * 0.78) + doubleClick(HUDEqualizerCurveView().environment(engine), size: size, at: node) + XCTAssertEqual(engine.getStemEQ(0).low, 0, accuracy: 1e-4, "Double-clicking a HUD EQ node must reset its gain") + } + + // MARK: - design-a11y-3/-5/-6: theme tokens only + + func testPlayerAndSettingsViewsUseThemeColorTokens() throws { + let root = URL(filePath: #filePath).deletingLastPathComponent().deletingLastPathComponent().deletingLastPathComponent() + let files = ["Sources/Player/PlayerView.swift", "Sources/Player/CustomFader.swift", "Sources/App/SettingsView.swift"] + // System red/yellow/gray fail contrast in NOTHING LIGHT; white/black text ignores the theme. + let literal = try NSRegularExpression(pattern: #"\.(red|yellow|gray)\b|foregroundColor\(\.(white|black)\)|\? \.(white|black) :|: \.(white|black)\)"#) + for file in files { + let url = root.appending(path: file) + guard let source = try? String(contentsOf: url, encoding: .utf8) else { + throw XCTSkip("Sources are not available at \(url.path)") + } + let matches = literal.matches(in: source, range: NSRange(source.startIndex..., in: source)) + let lines = matches.map { match -> String in + let line = source[.. Date: Fri, 25 Sep 2026 20:34:58 -0500 Subject: [PATCH 31/89] fix(export): name exports truthfully and snapshot before the save panel Export file names and ZIP entries used the uppercased display title; use the library title's own casing. The stems panel now says whether channel EQ will be rendered in, and with Compare Original on the mix export is named "_Original.wav" and described as the original track. Sources and settings are captured before the modal save panel opens. If a remote next/previous command replaces the track while the panel is open, the export is refused with a message instead of writing another track's audio under the first track's name. Co-Authored-By: Claude Opus 5.5 --- Sources/App/AudioEngineManager.swift | 69 +++++++++++++++++---- Tests/IsolateTests/EngineFixTests.swift | 23 +++++++ UITests/IsolateUITests/IsolateUITests.swift | 2 +- 3 files changed, 82 insertions(+), 12 deletions(-) diff --git a/Sources/App/AudioEngineManager.swift b/Sources/App/AudioEngineManager.swift index f06186f..72f1a31 100644 --- a/Sources/App/AudioEngineManager.swift +++ b/Sources/App/AudioEngineManager.swift @@ -247,6 +247,8 @@ public final class AudioEngineManager { public var errorMessage: String? = nil private var playbackSessionID = UUID() + /// Changes whenever the loaded track is replaced or unloaded. + @ObservationIgnored private var loadGeneration = 0 // MARK: - Stem Volumes, Mute, Solo (Default 1.0 = Unity Gain / 0 dB) public var vocalVolume: Double = 1.0 { didSet { applyVolumes() } } @@ -914,6 +916,7 @@ public final class AudioEngineManager { @MainActor public func unloadTrack() { playbackSessionID = UUID() + loadGeneration += 1 metadataTask?.cancel() metadataRequestID = UUID() // 1. Hard stop all audio players & invalidate playback timers @@ -1238,16 +1241,57 @@ public final class AudioEngineManager { } } + /// Export names keep the library title's casing; the player shows it uppercased. + var exportTitle: String { + let title = titleOverride ?? trackTitle + return title.isEmpty ? currentTrackName : title + } + + /// Whether any stem file will have its channel EQ rendered in. + var stemExportIncludesEQ: Bool { + guard shouldBakeEQOnExport, !isGlobalEQBypassed else { return false } + return (0..<4).contains { index in + let eq = getStemEQ(index) + return !eq.isBypassed && (abs(eq.low) >= 0.01 || abs(eq.mid) >= 0.01 || abs(eq.high) >= 0.01) + } + } + + func stemExportMessage(format: String) -> String { + let eq = stemExportIncludesEQ ? "with channel EQ applied" : "without EQ" + return "Four individual stems in \(format) \(eq). Levels, pan, speed and pitch are excluded." + } + + /// Compare Original exports the source instead of the stem mix, so name and describe it that way. + var mixExportPanelText: (name: String, message: String) { + let base = AudioExporter.safeFilename(exportTitle) + guard isBypassed, audioFile != nil else { + return ("\(base)_Mix.wav", "Export the full track with current levels, pan, EQ, speed and pitch as 24-bit WAV.") + } + return ("\(base)_Original.wav", + "Compare Original is on: exports the original track with master EQ, speed and pitch as 24-bit WAV.") + } + + /// Remote media commands can load another track while a modal save panel is open. + private func exportSnapshotIsCurrent(_ generation: Int) -> Bool { + guard generation == loadGeneration, hasLoadedTrack, !isExporting, !isSplitting else { + showError("The track changed while the save panel was open. Nothing was exported.") + return false + } + return true + } + public func exportStems() { guard hasLoadedTrack, !isExporting, !isSplitting else { return } - let panel = NSSavePanel() - panel.nameFieldStringValue = "\(AudioExporter.safeFilename(currentTrackName))_Stems.zip" - panel.allowedContentTypes = [.zip] - panel.message = "Four individual stems in \(AppSettings.shared.defaultExportFormat). Channel levels, pan, speed and pitch are excluded." - guard panel.runModal() == .OK, let destination = panel.url else { return } + let generation = loadGeneration let sources = exportSources(includeMix: false) - let title = currentTrackName + let title = exportTitle let format = AudioExporter.Format(rawValue: AppSettings.shared.defaultExportFormat) ?? .wav + let panel = NSSavePanel() + panel.nameFieldStringValue = "\(AudioExporter.safeFilename(title))_Stems.zip" + panel.allowedContentTypes = [.zip] + panel.message = stemExportMessage(format: AppSettings.shared.defaultExportFormat) + guard panel.runModal() == .OK, let destination = panel.url, + exportSnapshotIsCurrent(generation) else { return } beginExport { [self] in try AudioExporter.archive(sources: sources, title: title, format: format, to: destination) { progress in Task { @MainActor [self] in @@ -1262,16 +1306,19 @@ public final class AudioEngineManager { public func exportMix() { guard hasLoadedTrack, !isExporting, !isSplitting else { return } - let panel = NSSavePanel() - panel.nameFieldStringValue = "\(AudioExporter.safeFilename(currentTrackName))_Mix.wav" - panel.allowedContentTypes = [.wav] - panel.message = "Export the full track with current levels, pan, EQ, speed and pitch as 24-bit WAV." - guard panel.runModal() == .OK, let destination = panel.url else { return } + let generation = loadGeneration + let text = mixExportPanelText let sources = isBypassed && audioFile != nil ? [AudioExporter.Source(url: audioFile!.url)] : exportSources(includeMix: true) let gains = getStemEQ(4) let masterEQ = isGlobalEQBypassed || gains.isBypassed ? AudioExporter.EQ() : .init(low: gains.low, mid: gains.mid, high: gains.high) let rate = Float(playbackRate) let pitch = Float(pitchShiftSemitones) + let panel = NSSavePanel() + panel.nameFieldStringValue = text.name + panel.allowedContentTypes = [.wav] + panel.message = text.message + guard panel.runModal() == .OK, let destination = panel.url, + exportSnapshotIsCurrent(generation) else { return } beginExport { let temporary = FileManager.default.temporaryDirectory.appending(path: "\(UUID().uuidString).wav") defer { try? FileManager.default.removeItem(at: temporary) } diff --git a/Tests/IsolateTests/EngineFixTests.swift b/Tests/IsolateTests/EngineFixTests.swift index 6f124b3..2f14d8f 100644 --- a/Tests/IsolateTests/EngineFixTests.swift +++ b/Tests/IsolateTests/EngineFixTests.swift @@ -253,6 +253,29 @@ final class EngineFixTests: XCTestCase { engine.unloadTrack() } + func testExportNamesKeepTitleCasingAndDescribeWhatIsRendered() async throws { + let engine = AudioEngineManager() + await engine.loadTrack(try cancellingTrack(seconds: 0.5, title: "iPhone Demo (Acoustic)")) + XCTAssertEqual(engine.currentTrackName, "IPHONE DEMO (ACOUSTIC)") + XCTAssertEqual(engine.exportTitle, "iPhone Demo (Acoustic)") + XCTAssertEqual(engine.mixExportPanelText.name, "iPhone Demo (Acoustic)_Mix.wav") + try await Task.sleep(for: .milliseconds(200)) + XCTAssertEqual(engine.exportTitle, "iPhone Demo (Acoustic)", "Metadata must not replace the library title") + + XCTAssertTrue(engine.stemExportMessage(format: "WAV").contains("without EQ")) + engine.setStemEQ(1, low: 3, mid: 0, high: 0) + XCTAssertTrue(engine.stemExportMessage(format: "WAV").contains("with channel EQ applied")) + engine.toggleGlobalEQBypass() + XCTAssertTrue(engine.stemExportMessage(format: "WAV").contains("without EQ")) + + engine.isBypassed = true + XCTAssertEqual(engine.mixExportPanelText.name, "iPhone Demo (Acoustic)_Original.wav") + XCTAssertTrue(engine.mixExportPanelText.message.contains("original track")) + engine.updateTrackTitle(id: try XCTUnwrap(engine.currentTrackID), newTitle: "Straße Mix") + XCTAssertEqual(engine.exportTitle, "Straße Mix") + engine.unloadTrack() + } + func testFallbackTitlesUseFinderDisplayNames() throws { let slash = directory.appending(path: "AC:DC - Back In Black.wav") let dotted = directory.appending(path: "Song v1.2.wav") diff --git a/UITests/IsolateUITests/IsolateUITests.swift b/UITests/IsolateUITests/IsolateUITests.swift index 8a01eff..9fa403a 100644 --- a/UITests/IsolateUITests/IsolateUITests.swift +++ b/UITests/IsolateUITests/IsolateUITests.swift @@ -182,7 +182,7 @@ final class IsolateUITests: XCTestCase { app.typeText(directory.path) app.typeKey(.return, modifierFlags: []) saveButton.click() - let exported = directory.appending(path: "RENAMED UI TRACK_Mix.wav") + let exported = directory.appending(path: "Renamed UI Track_Mix.wav") let written = XCTNSPredicateExpectation(predicate: NSPredicate { _, _ in FileManager.default.fileExists(atPath: exported.path) }, object: nil) From 97ea878d8a66d0f0f380e5e91e0d5885095e0591 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:45:25 -0500 Subject: [PATCH 32/89] fix: wire cross-cluster export, import, and loop behavior - Mix export reports render progress; exports can be cancelled from the EXPORT control or its context menu without an error toast. - Stem export panel discloses the shared anti-clipping gain. - The progress screen names the file and batch position and stays up between files; abandoned staging folders are swept at launch. - Stem recovery removes the replaced cache and tolerates the entry being deleted meanwhile; loop controls require a loaded track. - Releasing a scrub at the very end stops instead of restarting at 0:00. - One filename-to-title rule for the library and the player. Co-Authored-By: Claude Opus 5.5 --- Isolate.xcodeproj/project.pbxproj | 20 ++++++++++ Sources/App/AudioEngineManager.swift | 50 ++++++++++++++++++++----- Sources/App/IsolateApp.swift | 24 ++++++++++-- Sources/Library/ImportCoordinator.swift | 7 +--- Sources/Player/PlayerView.swift | 19 +++++++--- Tests/IsolateTests/EngineFixTests.swift | 7 +++- 6 files changed, 104 insertions(+), 23 deletions(-) diff --git a/Isolate.xcodeproj/project.pbxproj b/Isolate.xcodeproj/project.pbxproj index 2d9a3d0..b0106d8 100644 --- a/Isolate.xcodeproj/project.pbxproj +++ b/Isolate.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 1419844DB45A5A83122232D3 /* SeparationFixTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C2C50DD1D3E61F3C453C02B /* SeparationFixTests.swift */; }; 161B67E13457763752062DE1 /* ProductionRegressionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B807A91D83D445402D9CAF99 /* ProductionRegressionTests.swift */; }; 161EC9862A7208CA69D028EC /* IsolateApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC1A0F01EE97D0951555E052 /* IsolateApp.swift */; }; 1879BCDE487BDB9B7C3761CC /* AudioMeterProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = BDB33D51AF84015B27BDB60D /* AudioMeterProcessor.swift */; }; @@ -21,18 +22,22 @@ 669642CCDE25B6636D369197 /* AppMoveHelper.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8902F75890A1D02F662A2C4 /* AppMoveHelper.swift */; }; 6CBEC0DDE108EA06515F8B93 /* AudioEngineManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = F162949F185EF2FA9835DE2C /* AudioEngineManager.swift */; }; 6E2D4D823F3A717CBBB8088D /* ImportSeparationRegressionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C2EBC811F849DA5036CFC1B /* ImportSeparationRegressionTests.swift */; }; + 724C0E0BA859FFBA0CB4212E /* ShellFixTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09046DA9C244F85B332F5756 /* ShellFixTests.swift */; }; 792E9F6C4E56359D456DDA0F /* MenuBarManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CF938C23122BA151FB3DFCE /* MenuBarManager.swift */; }; 8795659D14EB49E0487CF201 /* PlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59B0F1BF366285DF7ED96856 /* PlayerView.swift */; }; 8BD92F3394B42C1A0AD566FC /* PlaybackClock.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF8F78D393965984025C15BF /* PlaybackClock.swift */; }; 95C2E3DA7EFB59D971F2F6E1 /* DotGothic16-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 65D4E52007621CC6578509E0 /* DotGothic16-Regular.ttf */; }; + 96CEBDABD970A3C881DD01E9 /* EngineFixTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A4285D899C4A5EEEC9EC719 /* EngineFixTests.swift */; }; 9B785A6BE884B7DEB4B68D29 /* FaderScale.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F482B1CF7D3861CF9CB7BE9 /* FaderScale.swift */; }; A07EF38BF93598B2A4702404 /* ImportCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A85EA9B80B1D07CE0BC012A6 /* ImportCoordinator.swift */; }; A424654DA3598C87FECBA99E /* IsolateUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E51723840AA00CB3D59039A2 /* IsolateUITests.swift */; }; A58E8B618E774A7BB42E88EB /* StreamingAudio.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80C4F1BEA2CBC91B8FB4637C /* StreamingAudio.swift */; }; A835E32888406F90B405C409 /* ThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00E25FF2F9713A5963BB3BD4 /* ThemeManager.swift */; }; + AFEB288E772C93176F922D29 /* UIFixTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D721629222D7EC4EFE4580D2 /* UIFixTests.swift */; }; BD13B32036CBA957B6A8FB50 /* NowPlayingManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A696B7978AB11ACA46D7592E /* NowPlayingManager.swift */; }; BF1A95B3725BFC8C84B3AA92 /* DemucsEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53FFF484DB9B227FEA9BFA72 /* DemucsEngine.swift */; }; CCA10CCFD58840F597E21121 /* IsolateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B54412E9E3F71B00BF34FB0 /* IsolateTests.swift */; }; + DB4F240607006163A014D28D /* ExporterFixTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1AE7FC2C60C05B9AB636C6F /* ExporterFixTests.swift */; }; EF40587C88F3A21DCBED178E /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D39417E3CC1D1DF6CF0E4656 /* SettingsView.swift */; }; F0F7BC284EA97E34B007342C /* FFTAnalyzer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49A8F54BCDFECE3713F6E918 /* FFTAnalyzer.swift */; }; F26A92AD18BE6E579AC5EC40 /* Haptics.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7C71DE2440945DF04ED48AA /* Haptics.swift */; }; @@ -59,7 +64,10 @@ /* Begin PBXFileReference section */ 00E25FF2F9713A5963BB3BD4 /* ThemeManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ThemeManager.swift; sourceTree = ""; }; 08F2813A8F193935CAA240FC /* StemCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StemCache.swift; sourceTree = ""; }; + 09046DA9C244F85B332F5756 /* ShellFixTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShellFixTests.swift; sourceTree = ""; }; 0CA8A3AD0C499BC470D746C2 /* AudioExporter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioExporter.swift; sourceTree = ""; }; + 1A4285D899C4A5EEEC9EC719 /* EngineFixTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EngineFixTests.swift; sourceTree = ""; }; + 2C2C50DD1D3E61F3C453C02B /* SeparationFixTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SeparationFixTests.swift; sourceTree = ""; }; 3B32BB7E1AA2EC3946E2671E /* LibraryView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LibraryView.swift; sourceTree = ""; }; 3C2EBC811F849DA5036CFC1B /* ImportSeparationRegressionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImportSeparationRegressionTests.swift; sourceTree = ""; }; 49A8F54BCDFECE3713F6E918 /* FFTAnalyzer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FFTAnalyzer.swift; sourceTree = ""; }; @@ -80,10 +88,12 @@ A85EA9B80B1D07CE0BC012A6 /* ImportCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImportCoordinator.swift; sourceTree = ""; }; A8902F75890A1D02F662A2C4 /* AppMoveHelper.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppMoveHelper.swift; sourceTree = ""; }; AC1A0F01EE97D0951555E052 /* IsolateApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IsolateApp.swift; sourceTree = ""; }; + B1AE7FC2C60C05B9AB636C6F /* ExporterFixTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExporterFixTests.swift; sourceTree = ""; }; B807A91D83D445402D9CAF99 /* ProductionRegressionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductionRegressionTests.swift; sourceTree = ""; }; BDB33D51AF84015B27BDB60D /* AudioMeterProcessor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioMeterProcessor.swift; sourceTree = ""; }; CF8F78D393965984025C15BF /* PlaybackClock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaybackClock.swift; sourceTree = ""; }; D39417E3CC1D1DF6CF0E4656 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; + D721629222D7EC4EFE4580D2 /* UIFixTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIFixTests.swift; sourceTree = ""; }; D7C71DE2440945DF04ED48AA /* Haptics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Haptics.swift; sourceTree = ""; }; D9F18A0F03B33726F0C3D41F /* Isolate.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Isolate.app; sourceTree = BUILT_PRODUCTS_DIR; }; E404CB7871E1A45DE1242859 /* TrackModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrackModel.swift; sourceTree = ""; }; @@ -171,9 +181,14 @@ B1EA22E3D283A7BD3EAC64FC /* IsolateTests */ = { isa = PBXGroup; children = ( + 1A4285D899C4A5EEEC9EC719 /* EngineFixTests.swift */, + B1AE7FC2C60C05B9AB636C6F /* ExporterFixTests.swift */, 3C2EBC811F849DA5036CFC1B /* ImportSeparationRegressionTests.swift */, 9B54412E9E3F71B00BF34FB0 /* IsolateTests.swift */, B807A91D83D445402D9CAF99 /* ProductionRegressionTests.swift */, + 2C2C50DD1D3E61F3C453C02B /* SeparationFixTests.swift */, + 09046DA9C244F85B332F5756 /* ShellFixTests.swift */, + D721629222D7EC4EFE4580D2 /* UIFixTests.swift */, ); name = IsolateTests; path = Tests/IsolateTests; @@ -338,9 +353,14 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + 96CEBDABD970A3C881DD01E9 /* EngineFixTests.swift in Sources */, + DB4F240607006163A014D28D /* ExporterFixTests.swift in Sources */, 6E2D4D823F3A717CBBB8088D /* ImportSeparationRegressionTests.swift in Sources */, CCA10CCFD58840F597E21121 /* IsolateTests.swift in Sources */, 161B67E13457763752062DE1 /* ProductionRegressionTests.swift in Sources */, + 1419844DB45A5A83122232D3 /* SeparationFixTests.swift in Sources */, + 724C0E0BA859FFBA0CB4212E /* ShellFixTests.swift in Sources */, + AFEB288E772C93176F922D29 /* UIFixTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Sources/App/AudioEngineManager.swift b/Sources/App/AudioEngineManager.swift index 72f1a31..072fd49 100644 --- a/Sources/App/AudioEngineManager.swift +++ b/Sources/App/AudioEngineManager.swift @@ -178,6 +178,7 @@ public final class AudioEngineManager { public var loopEndProgress: Double = 1.0 public func toggleLoop() { + guard hasLoadedTrack else { return } Haptics.playClick() isLooping.toggle() } @@ -191,7 +192,7 @@ public final class AudioEngineManager { } public func setLoopStart(_ progress: Double) { - guard progress.isFinite else { return } + guard hasLoadedTrack, progress.isFinite else { return } let gap = Self.minimumLoopProgress(duration: totalTrackDuration) // A start at or past the current end begins a new region instead of clamping backwards. if progress >= loopEndProgress { loopEndProgress = 1.0 } @@ -201,7 +202,7 @@ public final class AudioEngineManager { } public func setLoopEnd(_ progress: Double) { - guard progress.isFinite else { return } + guard hasLoadedTrack, progress.isFinite else { return } let gap = Self.minimumLoopProgress(duration: totalTrackDuration) if progress <= loopStartProgress { loopStartProgress = 0.0 } loopEndProgress = min(1.0, max(progress, loopStartProgress + gap)) @@ -880,15 +881,23 @@ public final class AudioEngineManager { showError("AUDIO SOURCE NOT FOUND: '\(track.title)'. Reimport the original file to rebuild its stems.") return } + let previousStems = track.vocalStemURL.deletingLastPathComponent() if let data = await loadAndSplitAudio(url: track.originalURL) { + // The entry may have been deleted while its stems were rebuilt. + guard let context = track.modelContext else { + unloadTrack() + return + } track.vocalStemURL = data.vocalStemURL track.drumStemURL = data.drumStemURL track.bassStemURL = data.bassStemURL track.otherStemURL = data.otherStemURL currentTrackID = track.id updateTrackTitle(id: track.id, newTitle: track.title) - do { try track.modelContext?.save() } - catch { showError("Could not save the recovered track: \(error.localizedDescription)") } + do { + try context.save() + if !isExporting { ImportCoordinator.removeReplacedCache(previousStems, context: context) } + } catch { showError("Could not save the recovered track: \(error.localizedDescription)") } } } } @@ -1258,7 +1267,7 @@ public final class AudioEngineManager { func stemExportMessage(format: String) -> String { let eq = stemExportIncludesEQ ? "with channel EQ applied" : "without EQ" - return "Four individual stems in \(format) \(eq). Levels, pan, speed and pitch are excluded." + return "Four individual stems in \(format) \(eq). Levels, pan, speed and pitch are excluded. If any stem would clip, all four are lowered together to stay below full scale." } /// Compare Original exports the source instead of the stem mix, so name and describe it that way. @@ -1319,30 +1328,53 @@ public final class AudioEngineManager { panel.message = text.message guard panel.runModal() == .OK, let destination = panel.url, exportSnapshotIsCurrent(generation) else { return } - beginExport { + beginExport { [self] in let temporary = FileManager.default.temporaryDirectory.appending(path: "\(UUID().uuidString).wav") defer { try? FileManager.default.removeItem(at: temporary) } - try AudioExporter.render(sources: sources, to: temporary, masterEQ: masterEQ, rate: rate, pitch: pitch, limitPeak: true) + try AudioExporter.render(sources: sources, to: temporary, masterEQ: masterEQ, rate: rate, pitch: pitch, limitPeak: true) { progress in + Task { @MainActor [self] in + guard case .exporting = self.exportState else { return } + // Rendering reports completion before the file is published. + let shown = min(progress, 0.99) + self.exportProgress = shown + self.exportState = .exporting(stage: "RENDERING", percent: shown) + } + } try AudioExporter.publish(temporary, to: destination) return destination } } + @ObservationIgnored private var exportTask: Task? + + /// Stops an export in progress; the destination is left untouched. + public func cancelExport() { + exportTask?.cancel() + } + private func beginExport(_ operation: @escaping @Sendable () throws -> URL) { exportState = .exporting(stage: "RENDERING", percent: 0) exportProgress = 0 - Task { + exportTask = Task { do { - let destination = try await Task.detached(priority: .userInitiated, operation: operation).value + let worker = Task.detached(priority: .userInitiated, operation: operation) + let destination = try await withTaskCancellationHandler { + try await worker.value + } onCancel: { + worker.cancel() + } exportState = .completed exportProgress = 1 NSWorkspace.shared.activateFileViewerSelecting([destination]) try? await Task.sleep(for: .seconds(2)) + } catch is CancellationError { + // Cancelled by the user or at quit; nothing to report. } catch { showError("Export failed: \(error.localizedDescription)") } exportState = .idle exportProgress = 0 + exportTask = nil } } diff --git a/Sources/App/IsolateApp.swift b/Sources/App/IsolateApp.swift index cde24fa..84c1f42 100644 --- a/Sources/App/IsolateApp.swift +++ b/Sources/App/IsolateApp.swift @@ -143,6 +143,10 @@ struct SplittingProgressModal: View { /// True while About or Settings is drawn on top. Escape then closes that /// card and must never reach CANCEL IMPORT underneath. var isCovered = false + /// The file being separated and its place in a multi-file import. + var fileName: String? = nil + var batchIndex = 0 + var batchCount = 0 @Environment(AudioEngineManager.self) private var engineManager @State private var theme = ThemeManager.shared @@ -158,6 +162,13 @@ struct SplittingProgressModal: View { Text("\(Int(engineManager.splitProgress * 100))%") .font(.custom("DotGothic16-Regular", size: 48)) .foregroundStyle(theme.textPrimary) + if let fileName { + Text(batchCount > 1 ? "\(batchIndex) OF \(batchCount) · \(fileName)" : fileName) + .font(.custom("DotGothic16-Regular", size: 14)) + .foregroundStyle(theme.textPrimary) + .lineLimit(1) + .truncationMode(.middle) + } Text(engineManager.splitStatusMessage) .font(.custom("DotGothic16-Regular", size: 14)) .foregroundStyle(theme.textSecondary) @@ -182,7 +193,7 @@ struct SplittingProgressModal: View { Haptics.playClick() engineManager.cancelSplitAudio() }) { - Text(isCancelling ? "CANCELLING…" : "CANCEL IMPORT") + Text(isCancelling ? "CANCELLING…" : (batchCount > 1 ? "CANCEL ALL (\(batchCount - batchIndex + 1) LEFT)" : "CANCEL IMPORT")) .font(.custom("DotGothic16-Regular", size: 13)) .fontWeight(.bold) .foregroundStyle(isCancelling ? theme.textMuted : theme.accentRed) @@ -331,8 +342,12 @@ struct ContentView: View { if let message { AccessibilityNotification.Announcement("Error: \(message)").post() } } .overlay { - if engineManager.isSplitting { - SplittingProgressModal(isCovered: isShowingAboutModal || isShowingSettingsModal || isShowingDeleteModal) + // Stay up between the files of a batch instead of flashing the player. + if engineManager.isSplitting || (importer.batchCount > 1 && importer.batchIndex < importer.batchCount) { + SplittingProgressModal(isCovered: isShowingAboutModal || isShowingSettingsModal || isShowingDeleteModal, + fileName: importer.currentFileName, + batchIndex: importer.batchIndex, + batchCount: importer.batchCount) } else if isTargeted { Text("DROP AUDIO TO IMPORT") .font(.custom("DotGothic16-Regular", size: 24)) @@ -497,6 +512,9 @@ struct ContentView: View { .onAppear { theme.updateWindowAppearance() appMoveHelper.checkLocationOnStartup() + // Reclaim staging folders left by a quit or crash mid-separation. + // The engine skips this while a separation is running. + Task { await DemucsEngine.shared.removeAbandonedStaging() } configureSystemControls(tracks) if let notice = LibraryStore.takeStartupNotice() { engineManager.showError(notice) diff --git a/Sources/Library/ImportCoordinator.swift b/Sources/Library/ImportCoordinator.swift index a86641d..3c87cc4 100644 --- a/Sources/Library/ImportCoordinator.swift +++ b/Sources/Library/ImportCoordinator.swift @@ -174,12 +174,9 @@ final class ImportCoordinator { } /// Finder's name without the extension, so "AC/DC" is not shown as "AC:DC". + /// Shares the player's rule so library and Now Playing titles always agree. nonisolated static func title(for url: URL) -> String { - let name = FileManager.default.displayName(atPath: url.path) - // Finder omits the extension from displayName only when it is hidden. - let suffix = "." + url.pathExtension - guard !url.pathExtension.isEmpty, name.lowercased().hasSuffix(suffix.lowercased()) else { return name } - return String(name.dropLast(suffix.count)) + AudioEngineManager.displayTitle(for: url) } /// Deletes a stem folder that a reimport replaced, unless a track still uses it. diff --git a/Sources/Player/PlayerView.swift b/Sources/Player/PlayerView.swift index ea38f11..609a85c 100644 --- a/Sources/Player/PlayerView.swift +++ b/Sources/Player/PlayerView.swift @@ -1675,7 +1675,8 @@ struct TransportBar: View { } } else { engineManager.seek(toPercentage: engineManager.playbackProgress) - if wasPlayingBeforeDrag { + // Releasing at the very end stops, unless looping wraps it to A. + if wasPlayingBeforeDrag && (engineManager.playbackProgress < 1 || engineManager.isLooping) { engineManager.togglePlayback() } wasPlayingBeforeDrag = false @@ -1901,10 +1902,13 @@ struct TransportBar: View { let state = engineManager.exportState let isExporting = engineManager.isExporting return Button(action: { - // Stays enabled while exporting so the progress label is not dimmed. - guard !engineManager.isExporting else { return } Haptics.playClick() - engineManager.exportStems() + // While exporting, the same control cancels the render. + if engineManager.isExporting { + engineManager.cancelExport() + } else { + engineManager.exportStems() + } }) { ZStack { switch state { @@ -1913,7 +1917,7 @@ struct TransportBar: View { .fontWeight(.bold) .foregroundColor(theme.textPrimary) case .exporting(let stage, let percent): - Text(metrics.isTight ? "\(Int(percent * 100))%" : "\(stage) \(Int(percent * 100))%") + Text(isExportHovered ? "CANCEL" : (metrics.isTight ? "\(Int(percent * 100))%" : "\(stage) \(Int(percent * 100))%")) .fontWeight(.bold) .foregroundColor(theme.textPrimary) case .completed: @@ -1948,9 +1952,14 @@ struct TransportBar: View { .contentShape(Rectangle()) } .disabled(!engineManager.hasLoadedTrack || engineManager.isSplitting) + .accessibilityLabel(isExporting ? "Cancel export" : "Export stems") + .help(isExporting ? "Cancel the export in progress" : "Export four stems as a ZIP (⇧⌘E)") .contextMenu { Button("Export Mix…") { engineManager.exportMix() } .disabled(isExporting) + if isExporting { + Button("Cancel Export") { engineManager.cancelExport() } + } } .buttonStyle(.plain) .onHover { hovering in diff --git a/Tests/IsolateTests/EngineFixTests.swift b/Tests/IsolateTests/EngineFixTests.swift index 2f14d8f..a440d51 100644 --- a/Tests/IsolateTests/EngineFixTests.swift +++ b/Tests/IsolateTests/EngineFixTests.swift @@ -197,6 +197,12 @@ final class EngineFixTests: XCTestCase { XCTAssertEqual(AudioEngineManager.minimumLoopProgress(duration: nil), 0.02) let engine = AudioEngineManager() + engine.setLoopStart(0.4) + engine.toggleLoop() + XCTAssertEqual(engine.loopStartProgress, 0, "Loop markers need a loaded track") + XCTAssertFalse(engine.isLooping) + + await engine.loadTrack(try cancellingTrack()) engine.setLoopEnd(0.3) engine.setLoopStart(0.8) XCTAssertEqual(engine.loopStartProgress, 0.8) @@ -209,7 +215,6 @@ final class EngineFixTests: XCTestCase { XCTAssertEqual(engine.loopEndProgress, 0.2, "An end before the old start begins a new region") XCTAssertTrue(engine.isLooping) - await engine.loadTrack(try cancellingTrack()) engine.resetLoop() engine.setLoopStart(0.5) engine.setLoopEnd(0.51) From bafaf86ecd8daab93ccc3e01a343f118af444fd5 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:50:08 -0500 Subject: [PATCH 33/89] fix(ui): make switches, tabs, and toast dismiss clickable across their full area Plain-style buttons do not hit-test clear padding, so the center of the settings switches, the unselected tab, and most of the toast's close button ignored clicks. Found by the UI workflow test. Co-Authored-By: Claude Opus 5.5 --- Sources/App/IsolateApp.swift | 4 +++- Sources/App/SettingsView.swift | 4 ++++ UITests/IsolateUITests/IsolateUITests.swift | 3 ++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/Sources/App/IsolateApp.swift b/Sources/App/IsolateApp.swift index 84c1f42..a6a7838 100644 --- a/Sources/App/IsolateApp.swift +++ b/Sources/App/IsolateApp.swift @@ -1116,9 +1116,11 @@ struct ErrorToastCard: View { Image(systemName: "xmark") .font(.system(size: 10, weight: .bold)) .foregroundColor(isCloseHovered ? theme.textPrimary : theme.textSecondary) - .padding(5) + .frame(width: 22, height: 22) .background(isCloseHovered ? theme.surfaceHover : Color.clear) .clipShape(RoundedRectangle(cornerRadius: 3)) + // Clear padding is not hit-testable; keep the whole square clickable. + .contentShape(RoundedRectangle(cornerRadius: 3)) } .buttonStyle(.plain) .accessibilityLabel("Dismiss error") diff --git a/Sources/App/SettingsView.swift b/Sources/App/SettingsView.swift index 3a07289..24636d1 100644 --- a/Sources/App/SettingsView.swift +++ b/Sources/App/SettingsView.swift @@ -130,6 +130,7 @@ struct SettingsModalCard: View { .padding(.vertical, 5) .background(selectedTab == 0 ? theme.textPrimary : Color.clear) .clipShape(RoundedRectangle(cornerRadius: 3)) + .contentShape(RoundedRectangle(cornerRadius: 3)) } .buttonStyle(.plain) .accessibilityAddTraits(selectedTab == 0 ? .isSelected : []) @@ -146,6 +147,7 @@ struct SettingsModalCard: View { .padding(.vertical, 5) .background(selectedTab == 1 ? theme.textPrimary : Color.clear) .clipShape(RoundedRectangle(cornerRadius: 3)) + .contentShape(RoundedRectangle(cornerRadius: 3)) } .buttonStyle(.plain) .accessibilityAddTraits(selectedTab == 1 ? .isSelected : []) @@ -470,6 +472,8 @@ struct SettingsModalCard: View { RoundedRectangle(cornerRadius: 3) .stroke(theme.hairline, lineWidth: 1) ) + // The inactive half has a clear fill; keep the whole switch clickable. + .contentShape(RoundedRectangle(cornerRadius: 3)) } .buttonStyle(.plain) .accessibilityLabel(label) diff --git a/UITests/IsolateUITests/IsolateUITests.swift b/UITests/IsolateUITests/IsolateUITests.swift index 9fa403a..f383ac5 100644 --- a/UITests/IsolateUITests/IsolateUITests.swift +++ b/UITests/IsolateUITests/IsolateUITests.swift @@ -99,7 +99,8 @@ final class IsolateUITests: XCTestCase { XCTAssertTrue(autoPlay.waitForExistence(timeout: 3)) XCTAssertEqual(autoPlay.value as? String, "On") autoPlay.click() - XCTAssertEqual(autoPlay.value as? String, "Off") + let autoPlayOff = XCTNSPredicateExpectation(predicate: NSPredicate(format: "value == %@", "Off"), object: autoPlay) + XCTAssertEqual(XCTWaiter.wait(for: [autoPlayOff], timeout: 2), .completed, "Clicking the switch's center must turn auto-play off") app.typeKey(.escape, modifierFlags: []) app.typeKey("o", modifierFlags: .command) let openButton = app.windows["open-panel"].buttons["Open"] From 7b18ab30effba9879151153cc6fe9c4f98ea0ac5 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 20:58:02 -0500 Subject: [PATCH 34/89] fix(window): open at the intended size on first launch and remember it Restyling the window after SwiftUI creates it discarded defaultSize, so a new install opened at the 960x632 minimum with the Studio HUD hidden. Apply the default (fitted to the display) on first launch and let AppKit autosave the user's frame afterwards; UI tests always use the default. Co-Authored-By: Claude Opus 5.5 --- Isolate.xcodeproj/project.pbxproj | 4 ++++ Sources/App/IsolateApp.swift | 27 +++++++++++++++++++++- Tests/IsolateTests/WindowSizingTests.swift | 19 +++++++++++++++ 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 Tests/IsolateTests/WindowSizingTests.swift diff --git a/Isolate.xcodeproj/project.pbxproj b/Isolate.xcodeproj/project.pbxproj index b0106d8..6f60428 100644 --- a/Isolate.xcodeproj/project.pbxproj +++ b/Isolate.xcodeproj/project.pbxproj @@ -24,6 +24,7 @@ 6E2D4D823F3A717CBBB8088D /* ImportSeparationRegressionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C2EBC811F849DA5036CFC1B /* ImportSeparationRegressionTests.swift */; }; 724C0E0BA859FFBA0CB4212E /* ShellFixTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09046DA9C244F85B332F5756 /* ShellFixTests.swift */; }; 792E9F6C4E56359D456DDA0F /* MenuBarManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CF938C23122BA151FB3DFCE /* MenuBarManager.swift */; }; + 81071D25E7CBF4FDD195C50F /* WindowSizingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E53390C1141BAFC60BD554E9 /* WindowSizingTests.swift */; }; 8795659D14EB49E0487CF201 /* PlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59B0F1BF366285DF7ED96856 /* PlayerView.swift */; }; 8BD92F3394B42C1A0AD566FC /* PlaybackClock.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF8F78D393965984025C15BF /* PlaybackClock.swift */; }; 95C2E3DA7EFB59D971F2F6E1 /* DotGothic16-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 65D4E52007621CC6578509E0 /* DotGothic16-Regular.ttf */; }; @@ -98,6 +99,7 @@ D9F18A0F03B33726F0C3D41F /* Isolate.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Isolate.app; sourceTree = BUILT_PRODUCTS_DIR; }; E404CB7871E1A45DE1242859 /* TrackModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrackModel.swift; sourceTree = ""; }; E51723840AA00CB3D59039A2 /* IsolateUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IsolateUITests.swift; sourceTree = ""; }; + E53390C1141BAFC60BD554E9 /* WindowSizingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowSizingTests.swift; sourceTree = ""; }; EB48C41F9AED4EED81D5AECF /* IsolateUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = IsolateUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; F162949F185EF2FA9835DE2C /* AudioEngineManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioEngineManager.swift; sourceTree = ""; }; /* End PBXFileReference section */ @@ -189,6 +191,7 @@ 2C2C50DD1D3E61F3C453C02B /* SeparationFixTests.swift */, 09046DA9C244F85B332F5756 /* ShellFixTests.swift */, D721629222D7EC4EFE4580D2 /* UIFixTests.swift */, + E53390C1141BAFC60BD554E9 /* WindowSizingTests.swift */, ); name = IsolateTests; path = Tests/IsolateTests; @@ -361,6 +364,7 @@ 1419844DB45A5A83122232D3 /* SeparationFixTests.swift in Sources */, 724C0E0BA859FFBA0CB4212E /* ShellFixTests.swift in Sources */, AFEB288E772C93176F922D29 /* UIFixTests.swift in Sources */, + 81071D25E7CBF4FDD195C50F /* WindowSizingTests.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Sources/App/IsolateApp.swift b/Sources/App/IsolateApp.swift index a6a7838..ab9ed19 100644 --- a/Sources/App/IsolateApp.swift +++ b/Sources/App/IsolateApp.swift @@ -1005,10 +1005,14 @@ struct DeleteModalCard: View { struct WindowAccessor: NSViewRepresentable { final class Coordinator: NSObject { weak var window: NSWindow? - + + static let frameAutosaveName = "IsolateMainWindow" + static let defaultContentSize = NSSize(width: 1280, height: 800) + func attach(to window: NSWindow) { guard self.window !== window else { return } self.window = window + Self.restoreOrApplyDefaultFrame(to: window) NotificationCenter.default.removeObserver(self) NotificationCenter.default.addObserver( @@ -1036,6 +1040,27 @@ struct WindowAccessor: NSViewRepresentable { @objc private func windowDidExitFullScreen() { window?.toolbar?.isVisible = true } + + /// SwiftUI's defaultSize is lost once the window is restyled, so new users + /// saw the minimum-size layout. Restore the user's last frame, or open at + /// the default size on first launch. UI tests always get the default. + static func restoreOrApplyDefaultFrame(to window: NSWindow) { + guard !window.styleMask.contains(.fullScreen) else { return } + if !AppPreferences.isTesting, window.setFrameUsingName(frameAutosaveName) { + window.setFrameAutosaveName(frameAutosaveName) + return + } + let visible = (window.screen ?? NSScreen.main)?.visibleFrame.size ?? defaultContentSize + window.setContentSize(fittedContentSize(visible: visible, minimum: window.minSize)) + window.center() + if !AppPreferences.isTesting { window.setFrameAutosaveName(frameAutosaveName) } + } + + /// The default size, shrunk to fit small displays but never below the minimum. + static func fittedContentSize(visible: NSSize, minimum: NSSize) -> NSSize { + NSSize(width: max(minimum.width, min(defaultContentSize.width, visible.width - 40)), + height: max(minimum.height, min(defaultContentSize.height, visible.height - 60))) + } } func makeCoordinator() -> Coordinator { diff --git a/Tests/IsolateTests/WindowSizingTests.swift b/Tests/IsolateTests/WindowSizingTests.swift new file mode 100644 index 0000000..d8d42b7 --- /dev/null +++ b/Tests/IsolateTests/WindowSizingTests.swift @@ -0,0 +1,19 @@ +import XCTest +import AppKit +@testable import Isolate + +final class WindowSizingTests: XCTestCase { + private let minimum = NSSize(width: 960, height: 580) + + func testFirstLaunchUsesTheDefaultSizeOnTypicalDisplays() { + let size = WindowAccessor.Coordinator.fittedContentSize(visible: NSSize(width: 1728, height: 1079), minimum: minimum) + XCTAssertEqual(size, WindowAccessor.Coordinator.defaultContentSize) + } + + func testDefaultSizeShrinksToFitSmallDisplaysButNotBelowTheMinimum() { + let small = WindowAccessor.Coordinator.fittedContentSize(visible: NSSize(width: 1280, height: 777), minimum: minimum) + XCTAssertEqual(small, NSSize(width: 1240, height: 717)) + let tiny = WindowAccessor.Coordinator.fittedContentSize(visible: NSSize(width: 900, height: 500), minimum: minimum) + XCTAssertEqual(tiny, minimum) + } +} From 107579fa3fa954ce0e6cca7409082aaeb9390536 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:04:31 -0500 Subject: [PATCH 35/89] chore(release): set version 1.3.0 and describe folder access Bump CFBundleShortVersionString and CFBundleVersion to 1.3.0 so the About badge, the replace-in-Applications prompt and the release tag agree. Add a copyright line, the Music app category, and purpose strings for the Desktop, Documents, Downloads, removable and network volume prompts that rereading imported songs can trigger. Co-Authored-By: Claude Opus 5.5 --- Info.plist | 18 ++++++++++++++++-- project.yml | 13 +++++++++++-- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/Info.plist b/Info.plist index 2f61097..73165e1 100644 --- a/Info.plist +++ b/Info.plist @@ -19,12 +19,26 @@ CFBundlePackageType APPL CFBundleShortVersionString - 1.2.8 + 1.3.0 CFBundleVersion - 1.2.8 + 1.3.0 + LSApplicationCategoryType + public.app-category.music LSMinimumSystemVersion 14.0 + NSDesktopFolderUsageDescription + Isolate reads songs you imported from your Desktop folder to show their details and rebuild their stems. + NSDocumentsFolderUsageDescription + Isolate reads songs you imported from your Documents folder to show their details and rebuild their stems. + NSDownloadsFolderUsageDescription + Isolate reads songs you imported from your Downloads folder to show their details and rebuild their stems. NSHighResolutionCapable + NSHumanReadableCopyright + Copyright © 2026 Neo Kumar. MIT License. + NSNetworkVolumesUsageDescription + Isolate reads songs you imported from network drives to show their details and rebuild their stems. + NSRemovableVolumesUsageDescription + Isolate reads songs you imported from external drives to show their details and rebuild their stems. diff --git a/project.yml b/project.yml index e474614..7ea9400 100644 --- a/project.yml +++ b/project.yml @@ -15,12 +15,21 @@ targets: CFBundleIdentifier: com.isolate.Isolate CFBundleName: Isolate CFBundlePackageType: APPL - CFBundleShortVersionString: "1.2.8" - CFBundleVersion: "1.2.8" + CFBundleShortVersionString: "1.3.0" + CFBundleVersion: "1.3.0" CFBundleIconFile: AppIcon LSMinimumSystemVersion: "14.0" + LSApplicationCategoryType: public.app-category.music + NSHumanReadableCopyright: "Copyright © 2026 Neo Kumar. MIT License." NSHighResolutionCapable: true ATSApplicationFontsPath: "." + # Imported songs stay where they are; later launches reread them for + # artwork, tags and stem rebuilds, which macOS gates per location. + NSDesktopFolderUsageDescription: Isolate reads songs you imported from your Desktop folder to show their details and rebuild their stems. + NSDocumentsFolderUsageDescription: Isolate reads songs you imported from your Documents folder to show their details and rebuild their stems. + NSDownloadsFolderUsageDescription: Isolate reads songs you imported from your Downloads folder to show their details and rebuild their stems. + NSRemovableVolumesUsageDescription: Isolate reads songs you imported from external drives to show their details and rebuild their stems. + NSNetworkVolumesUsageDescription: Isolate reads songs you imported from network drives to show their details and rebuild their stems. settings: base: ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon From 987c0ebbf223f24041e8ccd64471db87faf9ec37 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:04:31 -0500 Subject: [PATCH 36/89] chore(git): stop tracking Xcode user state and ignore release archives Untrack the personal xcschememanagement.plist that xcuserdata/ already ignored, and ignore model folders, ZIP/DMG archives and .xcresult bundles anywhere in the tree so a model archive made in the repository root is never staged. Co-Authored-By: Claude Opus 5.5 --- .gitignore | 11 ++++++----- .../xcschemes/xcschememanagement.plist | 14 -------------- 2 files changed, 6 insertions(+), 19 deletions(-) delete mode 100644 Isolate.xcodeproj/xcuserdata/neokumar.xcuserdatad/xcschemes/xcschememanagement.plist diff --git a/.gitignore b/.gitignore index cbc39b0..ff5753a 100644 --- a/.gitignore +++ b/.gitignore @@ -8,13 +8,14 @@ build/ !default.mode2v3 *.perspectivev3 !default.perspectivev3 -xcuserdata +xcuserdata/ *.xccheckout *.moved-aside DerivedData *.hmap *.ipa *.xcuserstate +*.xcresult # SwiftPackageManager .build/ @@ -28,14 +29,14 @@ Manifest.lock *.swp *~.nib -# Other -xcuserdata/ - -# CoreML Model Binaries (>100MB) +# CoreML Model Binaries (>100MB) and archives made from them *.mlmodelc *.mlpackage *.mlmodel +/HTDemucs* # Distribution Artifacts dist/ +*.dmg +*.zip Assets/AppIcon.iconset/ diff --git a/Isolate.xcodeproj/xcuserdata/neokumar.xcuserdatad/xcschemes/xcschememanagement.plist b/Isolate.xcodeproj/xcuserdata/neokumar.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index e8744c9..0000000 --- a/Isolate.xcodeproj/xcuserdata/neokumar.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,14 +0,0 @@ - - - - - SchemeUserState - - Isolate.xcscheme_^#shared#^_ - - orderHint - 0 - - - - From 3a1f0d1938bab67c51ee1d47e898f6afa04e0365 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:13:17 -0500 Subject: [PATCH 37/89] fix(release): check the version before building and harden ad-hoc builds package_release.sh compared the tag with the checked-in Info.plist before xcodegen rewrote it from project.yml, and never looked at the built app. A new scripts/check_version.sh reads project.yml, requires Info.plist to agree and the tag to be v; the script also asserts the built bundle's version. Ad-hoc builds are now signed with the hardened runtime, as Developer ID builds already were, and the script fails if the flag is missing. The DMG is built writable so the volume root gets the custom-icon flag Finder needs to show .VolumeIcon.icns, then converted to UDZO; hdiutil steps retry on transient failures. The byte-identical versioned DMG copy is no longer produced, leaving Isolate.dmg, the ZIP and checksums. Co-Authored-By: Claude Opus 5.5 --- scripts/check_version.sh | 30 ++++++++++++++++++ scripts/package_release.sh | 65 +++++++++++++++++++++++++++----------- 2 files changed, 77 insertions(+), 18 deletions(-) create mode 100755 scripts/check_version.sh diff --git a/scripts/check_version.sh b/scripts/check_version.sh new file mode 100755 index 0000000..5b4f4e5 --- /dev/null +++ b/scripts/check_version.sh @@ -0,0 +1,30 @@ +#!/bin/bash +# Prints the app version from project.yml, the source of truth, after checking +# that the checked-in Info.plist agrees. Given a tag, also requires v. +set -euo pipefail + +PROJECT_DIR="$(cd "$(dirname "$0")/.." && pwd)" +fail() { + if [[ "${GITHUB_ACTIONS:-}" == true ]]; then echo "::error::$1"; else echo "$1" >&2; fi + exit 1 +} +project_value() { + sed -nE "s/^[[:space:]]*$1:[[:space:]]*\"?([^\"[:space:]]+)\"?[[:space:]]*$/\1/p" "$PROJECT_DIR/project.yml" | head -n 1 +} +plist_value() { + /usr/libexec/PlistBuddy -c "Print :$1" "$PROJECT_DIR/Info.plist" 2>/dev/null || true +} + +VERSION=$(project_value CFBundleShortVersionString) +BUILD=$(project_value CFBundleVersion) +[[ "$VERSION" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || fail "project.yml CFBundleShortVersionString must look like 1.3.0; found '${VERSION}'." +[[ -n "$BUILD" ]] || fail "project.yml has no CFBundleVersion." +PLIST_VERSION=$(plist_value CFBundleShortVersionString) +PLIST_BUILD=$(plist_value CFBundleVersion) +if [[ "$PLIST_VERSION" != "$VERSION" || "$PLIST_BUILD" != "$BUILD" ]]; then + fail "Info.plist says ${PLIST_VERSION:-nothing} (${PLIST_BUILD:-nothing}) but project.yml says ${VERSION} (${BUILD}). Run xcodegen generate and commit Info.plist." +fi +if [[ $# -gt 0 && "$1" != "v${VERSION}" ]]; then + fail "Release tag $1 does not match app version ${VERSION} in project.yml. Tag v${VERSION}, or update project.yml and regenerate first." +fi +printf '%s\n' "$VERSION" diff --git a/scripts/package_release.sh b/scripts/package_release.sh index 5f04402..c77f90a 100755 --- a/scripts/package_release.sh +++ b/scripts/package_release.sh @@ -3,12 +3,10 @@ set -euo pipefail PROJECT_DIR="$(cd "$(dirname "$0")/.." && pwd)" cd "$PROJECT_DIR" -APP_VERSION=$(/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' Info.plist) -VERSION="${1:-v${APP_VERSION}}" -if [[ "$VERSION" != "v${APP_VERSION}" ]]; then - echo "Release tag ${VERSION} does not match app version ${APP_VERSION}. Update project.yml and regenerate first." >&2 - exit 1 -fi +# Compare the tag with project.yml before any build work; xcodegen rewrites Info.plist from it. +VERSION="${1:-}" +APP_VERSION=$(bash scripts/check_version.sh ${VERSION:+"$VERSION"}) +VERSION="${VERSION:-v${APP_VERSION}}" MODEL_SOURCE="${ISOLATE_MODEL_PATH:-$HOME/Library/Application Support/Isolate/HTDemucs.mlmodelc}" if [[ ! -d "$MODEL_SOURCE" ]]; then echo "Set ISOLATE_MODEL_PATH to the validated HTDemucs.mlmodelc directory. Releases must include the model." >&2 @@ -20,25 +18,49 @@ DIST_DIR="${ISOLATE_DIST_DIR:-$PROJECT_DIR/dist}" mkdir -p "$DIST_DIR" DIST_DIR="$(cd "$DIST_DIR" && pwd)" WORK_DIR=$(mktemp -d "${TMPDIR:-/tmp}/isolate-release.XXXXXX") -trap 'rm -rf "$WORK_DIR"' EXIT BUILD_DIR="$WORK_DIR/products" STAGING_DIR="$WORK_DIR/staging" -mkdir -p "$STAGING_DIR" +MOUNT_DIR="$WORK_DIR/mount" +cleanup() { + hdiutil detach "$MOUNT_DIR" -quiet 2>/dev/null || true + rm -rf "$WORK_DIR" +} +trap cleanup EXIT +mkdir -p "$STAGING_DIR" "$MOUNT_DIR" + +# hdiutil sometimes reports "Resource busy" on CI runners; a short retry avoids a full rerun. +retry() { + local attempt + for attempt in 1 2 3; do + "$@" && return 0 + echo "$1 failed (attempt ${attempt} of 3)." >&2 + sleep $((attempt * 5)) + done + return 1 +} xcodegen generate xcodebuild build -project Isolate.xcodeproj -scheme Isolate -configuration Release \ -destination 'platform=macOS,arch=arm64' -derivedDataPath "$WORK_DIR/DerivedData" \ CONFIGURATION_BUILD_DIR="$BUILD_DIR" CODE_SIGNING_ALLOWED=NO APP_BUNDLE="$BUILD_DIR/Isolate.app" +BUILT_VERSION=$(/usr/libexec/PlistBuddy -c 'Print :CFBundleShortVersionString' "$APP_BUNDLE/Contents/Info.plist") +if [[ "$BUILT_VERSION" != "$APP_VERSION" ]]; then + echo "The built app reports version ${BUILT_VERSION}, not ${APP_VERSION}." >&2 + exit 1 +fi ditto "$MODEL_SOURCE" "$APP_BUNDLE/Contents/Resources/HTDemucs.mlmodelc" +# Ad-hoc builds also get the hardened runtime, so injected libraries are refused. SIGNING_IDENTITY="${ISOLATE_SIGNING_IDENTITY:--}" -if [[ "$SIGNING_IDENTITY" == "-" ]]; then - codesign --force --deep --sign - "$APP_BUNDLE" -else - codesign --force --deep --options runtime --timestamp --sign "$SIGNING_IDENTITY" "$APP_BUNDLE" -fi +SIGN_ARGS=(--force --deep --options runtime --sign "$SIGNING_IDENTITY") +if [[ "$SIGNING_IDENTITY" != "-" ]]; then SIGN_ARGS+=(--timestamp); fi +codesign "${SIGN_ARGS[@]}" "$APP_BUNDLE" codesign --verify --deep --strict "$APP_BUNDLE" +if ! codesign -dv "$APP_BUNDLE" 2>&1 | grep -q 'flags=.*runtime'; then + echo "The app was signed without the hardened runtime." >&2 + exit 1 +fi if [[ -n "${ISOLATE_NOTARY_PROFILE:-}" ]]; then [[ "$SIGNING_IDENTITY" != "-" ]] || { echo "Notarization requires Developer ID signing." >&2; exit 1; } @@ -53,15 +75,22 @@ mkdir -p "$STAGING_DIR/.background" cp Assets/dmg_background.png "$STAGING_DIR/.background/dmg_background.png" cp Assets/AppIcon.icns "$STAGING_DIR/.VolumeIcon.icns" if [[ -f Assets/dmg_ds_store ]]; then cp Assets/dmg_ds_store "$STAGING_DIR/.DS_Store"; fi -hdiutil create -srcfolder "$STAGING_DIR" -volname Isolate -fs HFS+ -format UDZO \ - "$WORK_DIR/Isolate.dmg" -quiet +# Finder uses .VolumeIcon.icns only when the volume root has the custom-icon flag, +# which -srcfolder cannot set, so build a writable image, flag it, then compress. +retry hdiutil create -ov -srcfolder "$STAGING_DIR" -volname Isolate -fs HFS+ -format UDRW \ + "$WORK_DIR/Isolate-rw.dmg" -quiet +retry hdiutil attach "$WORK_DIR/Isolate-rw.dmg" -nobrowse -noautoopen -noverify \ + -mountpoint "$MOUNT_DIR" -quiet +SetFile -a C "$MOUNT_DIR" || echo "Could not set the volume icon flag; the DMG will show a generic icon." >&2 +retry hdiutil detach "$MOUNT_DIR" -quiet +retry hdiutil convert "$WORK_DIR/Isolate-rw.dmg" -ov -format UDZO -o "$WORK_DIR/Isolate.dmg" -quiet hdiutil verify "$WORK_DIR/Isolate.dmg" -quiet ditto -c -k --keepParent "$APP_BUNDLE" "$WORK_DIR/Isolate-${VERSION}-macOS.zip" # Publish only complete artifacts; existing build directories are never erased. -cp "$WORK_DIR/Isolate.dmg" "$DIST_DIR/Isolate-${VERSION}.dmg" cp "$WORK_DIR/Isolate.dmg" "$DIST_DIR/Isolate.dmg" cp "$WORK_DIR/Isolate-${VERSION}-macOS.zip" "$DIST_DIR/" cd "$DIST_DIR" -shasum -a 256 Isolate.dmg "Isolate-${VERSION}.dmg" "Isolate-${VERSION}-macOS.zip" > SHA256SUMS.txt -printf 'Release artifacts ready in %s\n' "$DIST_DIR" +shasum -a 256 Isolate.dmg "Isolate-${VERSION}-macOS.zip" > SHA256SUMS.txt +printf 'Release artifacts for %s ready in %s\n' "$VERSION" "$DIST_DIR" +printf 'App %s, DMG %s\n' "$(du -sh "$APP_BUNDLE" | cut -f1)" "$(du -h Isolate.dmg | cut -f1)" From 03ed014cd4d2a8a37234990589e2b2eac5d67d7b Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:13:17 -0500 Subject: [PATCH 38/89] fix(scripts): accept an uppercase model checksum and name the mismatch shasum prints lowercase hex, so an uppercase ISOLATE_MODEL_ARCHIVE_SHA256 passed validation and then failed as a mismatch. Normalize it first, print both values on a real mismatch, run from the repository root regardless of the caller's directory, and allow ISOLATE_MODEL_DESTINATION so an archive can be checked without touching an installed model. Co-Authored-By: Claude Opus 5.5 --- scripts/fetch_release_model.sh | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) mode change 100644 => 100755 scripts/fetch_release_model.sh diff --git a/scripts/fetch_release_model.sh b/scripts/fetch_release_model.sh old mode 100644 new mode 100755 index 003dd10..943cd1b --- a/scripts/fetch_release_model.sh +++ b/scripts/fetch_release_model.sh @@ -1,17 +1,21 @@ #!/bin/bash set -euo pipefail +cd "$(dirname "$0")/.." : "${ISOLATE_MODEL_ARCHIVE_URL:?Configure the pinned model URL; see MODEL.md}" : "${ISOLATE_MODEL_ARCHIVE_SHA256:?Configure the pinned model checksum; see MODEL.md}" [[ "$ISOLATE_MODEL_ARCHIVE_URL" == https://* ]] || { echo "Model URL must use HTTPS." >&2; exit 1; } -[[ "$ISOLATE_MODEL_ARCHIVE_SHA256" =~ ^[a-fA-F0-9]{64}$ ]] || { echo "Invalid model SHA-256." >&2; exit 1; } +# shasum prints lowercase hex, so accept a checksum pasted in either case. +EXPECTED=$(printf '%s' "$ISOLATE_MODEL_ARCHIVE_SHA256" | tr 'A-F' 'a-f') +[[ "$EXPECTED" =~ ^[a-f0-9]{64}$ ]] || { echo "Invalid model SHA-256." >&2; exit 1; } WORK_DIR=$(mktemp -d "${TMPDIR:-/tmp}/isolate-model.XXXXXX") trap 'rm -rf "$WORK_DIR"' EXIT curl --proto '=https' --tlsv1.2 -fL --retry 3 "$ISOLATE_MODEL_ARCHIVE_URL" -o "$WORK_DIR/model.zip" ACTUAL=$(shasum -a 256 "$WORK_DIR/model.zip" | awk '{print $1}') -[[ "$ACTUAL" == "$ISOLATE_MODEL_ARCHIVE_SHA256" ]] || { echo "Model archive checksum mismatch." >&2; exit 1; } +[[ "$ACTUAL" == "$EXPECTED" ]] || { echo "Model archive checksum mismatch: expected ${EXPECTED}, got ${ACTUAL}." >&2; exit 1; } ditto -x -k "$WORK_DIR/model.zip" "$WORK_DIR/unpacked" swift scripts/validate_model.swift "$WORK_DIR/unpacked/HTDemucs.mlmodelc" -MODEL_DESTINATION="$HOME/Library/Application Support/Isolate/HTDemucs.mlmodelc" +MODEL_DESTINATION="${ISOLATE_MODEL_DESTINATION:-$HOME/Library/Application Support/Isolate/HTDemucs.mlmodelc}" [[ ! -e "$MODEL_DESTINATION" ]] || { echo "Model already exists; refusing to overwrite it." >&2; exit 1; } mkdir -p "$(dirname "$MODEL_DESTINATION")" ditto "$WORK_DIR/unpacked/HTDemucs.mlmodelc" "$MODEL_DESTINATION" +echo "Installed the validated model at ${MODEL_DESTINATION}." From 2172bd67f31c31516eaf6fae254a905779368bdd Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:13:17 -0500 Subject: [PATCH 39/89] fix(install): explain installer failures instead of printing raw errors Fetch SHA256SUMS.txt before the DMG and refuse a release without it with a pointer to the Releases page, check that /Applications is writable up front, detect Apple silicon even from a Rosetta shell, give every failing step a plain message, keep cleanup running so a previous copy is always restored, and warn rather than fail when the old copy cannot be removed after a successful install. Co-Authored-By: Claude Opus 5.5 --- install.sh | 64 ++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 41 insertions(+), 23 deletions(-) diff --git a/install.sh b/install.sh index 4ce9007..74d7fc2 100755 --- a/install.sh +++ b/install.sh @@ -1,43 +1,61 @@ #!/bin/bash +# Installs the latest Isolate release into /Applications after checking its +# checksum, code signature and bundled model. Read it before running it. set -euo pipefail -[[ "$(uname -s)" == Darwin ]] || { echo "Isolate requires macOS." >&2; exit 1; } -[[ "$(uname -m)" == arm64 ]] || { echo "Isolate requires an Apple Silicon Mac." >&2; exit 1; } +RELEASES="https://github.com/neokumar1/Isolate/releases" +fail() { printf 'Isolate installer: %s\n' "$1" >&2; exit 1; } + +[[ "$(uname -s)" == Darwin ]] || fail "Isolate requires macOS." +# uname reports x86_64 inside a Rosetta shell, so ask the hardware instead. +[[ "$(sysctl -n hw.optional.arm64 2>/dev/null)" == 1 ]] || fail "Isolate requires a Mac with Apple silicon." OS_MAJOR=$(sw_vers -productVersion | cut -d. -f1) -[[ "$OS_MAJOR" -ge 14 ]] || { echo "Isolate requires macOS 14 or newer." >&2; exit 1; } -if pgrep -x Isolate >/dev/null; then - echo "Quit Isolate before installing or updating it." >&2 - exit 1 -fi +[[ "$OS_MAJOR" -ge 14 ]] || fail "Isolate requires macOS 14 Sonoma or later." +if pgrep -x Isolate >/dev/null; then fail "Quit Isolate before installing or updating it."; fi +[[ -w /Applications ]] || fail "This account cannot write to /Applications. Run the installer from an administrator account, or open Isolate.dmg from ${RELEASES} and drag Isolate into Applications." + WORK_DIR=$(mktemp -d "${TMPDIR:-/tmp}/isolate-install.XXXXXX") MOUNT_DIR="$WORK_DIR/volume" APP_TARGET="/Applications/Isolate.app" STAGED_APP="/Applications/.Isolate-install-$$.app" BACKUP_APP="/Applications/.Isolate-backup-$$.app" cleanup() { - hdiutil detach "$MOUNT_DIR" -quiet 2>/dev/null || true - rm -rf "$WORK_DIR" "$STAGED_APP" + # Keep going so the previous copy is restored even if a step here fails. + set +e + hdiutil detach "$MOUNT_DIR" -quiet >/dev/null 2>&1 + rm -rf "$WORK_DIR" "$STAGED_APP" 2>/dev/null if [[ -d "$BACKUP_APP" && ! -e "$APP_TARGET" ]]; then mv "$BACKUP_APP" "$APP_TARGET"; fi } trap cleanup EXIT # Resolve latest once so a concurrent release cannot mix checksums and binaries. -RELEASE_URL=$(curl -fsSL -o /dev/null -w '%{url_effective}' https://github.com/neokumar1/Isolate/releases/latest) +RELEASE_URL=$(curl -fsSL -o /dev/null -w '%{url_effective}' "$RELEASES/latest") \ + || fail "Could not reach GitHub. Check the internet connection and try again." VERSION="${RELEASE_URL##*/}" -[[ "$VERSION" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]] || { echo "Could not resolve the release version." >&2; exit 1; } -BASE_URL="https://github.com/neokumar1/Isolate/releases/download/$VERSION" -curl -fL --retry 3 "$BASE_URL/Isolate.dmg" -o "$WORK_DIR/Isolate.dmg" -curl -fsSL --retry 3 "$BASE_URL/SHA256SUMS.txt" -o "$WORK_DIR/SHA256SUMS.txt" +[[ "$VERSION" =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]] || fail "Could not work out the latest release from ${RELEASE_URL}." +BASE_URL="$RELEASES/download/$VERSION" +# Checksums first: a release without them is refused before the large download. +curl -fsSL --retry 3 "$BASE_URL/SHA256SUMS.txt" -o "$WORK_DIR/SHA256SUMS.txt" 2>/dev/null \ + || fail "Release ${VERSION} has no SHA256SUMS.txt, so it cannot be verified. Download Isolate.dmg from ${RELEASES} instead." EXPECTED=$(awk '$2 == "Isolate.dmg" && length($1) == 64 {print $1}' "$WORK_DIR/SHA256SUMS.txt") +[[ -n "$EXPECTED" ]] || fail "Release ${VERSION} lists no checksum for Isolate.dmg." +printf 'Downloading Isolate %s...\n' "$VERSION" +curl -fL --retry 3 "$BASE_URL/Isolate.dmg" -o "$WORK_DIR/Isolate.dmg" || fail "The download of Isolate.dmg failed." ACTUAL=$(shasum -a 256 "$WORK_DIR/Isolate.dmg" | awk '{print $1}') -[[ -n "$EXPECTED" && "$EXPECTED" == "$ACTUAL" ]] || { echo "Download checksum mismatch; installation stopped." >&2; exit 1; } +[[ "$EXPECTED" == "$ACTUAL" ]] || fail "Download checksum mismatch; installation stopped." -hdiutil attach -nobrowse -readonly -mountpoint "$MOUNT_DIR" "$WORK_DIR/Isolate.dmg" -quiet -codesign --verify --deep --strict "$MOUNT_DIR/Isolate.app" -[[ -d "$MOUNT_DIR/Isolate.app/Contents/Resources/HTDemucs.mlmodelc" ]] || { echo "Release model is missing." >&2; exit 1; } -ditto "$MOUNT_DIR/Isolate.app" "$STAGED_APP" -if [[ -e "$APP_TARGET" ]]; then mv "$APP_TARGET" "$BACKUP_APP"; fi +hdiutil attach -nobrowse -readonly -noautoopen -mountpoint "$MOUNT_DIR" "$WORK_DIR/Isolate.dmg" -quiet \ + || fail "Could not open the downloaded disk image." +codesign --verify --deep --strict "$MOUNT_DIR/Isolate.app" || fail "The app's code signature did not verify; installation stopped." +[[ -d "$MOUNT_DIR/Isolate.app/Contents/Resources/HTDemucs.mlmodelc" ]] \ + || fail "Release ${VERSION} does not include the separation model; installation stopped." +ditto "$MOUNT_DIR/Isolate.app" "$STAGED_APP" || fail "Could not copy Isolate into /Applications." +if [[ -e "$APP_TARGET" ]]; then + mv "$APP_TARGET" "$BACKUP_APP" || fail "Could not move the installed copy aside; it was left unchanged." +fi mv "$STAGED_APP" "$APP_TARGET" -if [[ -d "$BACKUP_APP" ]]; then rm -rf "$BACKUP_APP"; fi -printf 'Installed %s to %s\n' "$VERSION" "$APP_TARGET" -printf 'Open Isolate from Applications. If macOS blocks it, review Privacy & Security → Open Anyway.\n' +if [[ -d "$BACKUP_APP" ]] && ! rm -rf "$BACKUP_APP" 2>/dev/null; then + printf 'Warning: the previous copy could not be removed. Delete it with: sudo rm -rf "%s"\n' "$BACKUP_APP" >&2 +fi +printf 'Installed Isolate %s in %s.\n' "$VERSION" "$APP_TARGET" +printf 'Open it from Applications. If macOS asks you to confirm, see https://github.com/neokumar1/Isolate#first-launch\n' From fcd77f1d85ae917ac752c36bc5e1724454c9b2f7 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:13:17 -0500 Subject: [PATCH 40/89] fix(scripts): render icon and DMG background at exact pixel sizes NSImage.lockFocus draws at the screen's backing scale, so on Retina Macs every icon slot came out twice its size and iconutil dropped the 16 and 128 px images. Draw into NSBitmapImageRep contexts of the exact size instead; the DMG background is now 1320x800 at 144 dpi for the 660x400 pt window. Co-Authored-By: Claude Opus 5.5 --- scripts/generate_assets.swift | 66 ++++++++++++++++++----------------- 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/scripts/generate_assets.swift b/scripts/generate_assets.swift index 0d83df2..328655e 100644 --- a/scripts/generate_assets.swift +++ b/scripts/generate_assets.swift @@ -1,32 +1,40 @@ import Cocoa +// Run from the repository root: swift scripts/generate_assets.swift + +/// A drawing context backed by exactly `width` x `height` pixels. NSImage.lockFocus +/// draws at the main screen's backing scale, which doubled every size on Retina +/// Macs and left the icon without its 16 and 128 px images. +func makeBitmap(width: Int, height: Int) throws -> (rep: NSBitmapImageRep, context: NSGraphicsContext) { + guard let rep = NSBitmapImageRep(bitmapDataPlanes: nil, pixelsWide: width, pixelsHigh: height, + bitsPerSample: 8, samplesPerPixel: 4, hasAlpha: true, isPlanar: false, + colorSpaceName: .deviceRGB, bytesPerRow: 0, bitsPerPixel: 0), + let context = NSGraphicsContext(bitmapImageRep: rep) else { throw AssetError.renderFailed } + return (rep, context) +} + func createDMGBackground() throws { let width: CGFloat = 660 let height: CGFloat = 400 let scale: CGFloat = 2.0 - let size = NSSize(width: width * scale, height: height * scale) - - let image = NSImage(size: size) - image.lockFocus() - - guard let context = NSGraphicsContext.current?.cgContext else { image.unlockFocus(); throw AssetError.renderFailed } + + let bitmap = try makeBitmap(width: Int(width * scale), height: Int(height * scale)) + let context = bitmap.context.cgContext context.scaleBy(x: scale, y: scale) - + // Clean Pure White Background matching reference screenshot context.setFillColor(CGColor(red: 1.0, green: 1.0, blue: 1.0, alpha: 1.0)) context.fill(CGRect(x: 0, y: 0, width: width, height: height)) - - image.unlockFocus() - - if let tiffData = image.tiffRepresentation, - let rep = NSBitmapImageRep(data: tiffData), - let pngData = rep.representation(using: .png, properties: [:]) { - let outDir = URL(fileURLWithPath: "Assets") - try FileManager.default.createDirectory(at: outDir, withIntermediateDirectories: true) - let outURL = outDir.appendingPathComponent("dmg_background.png") - try pngData.write(to: outURL, options: .atomic) - print("Generated DMG background at \(outURL.path)") - } else { throw AssetError.renderFailed } + bitmap.context.flushGraphics() + + // 144 dpi, so Finder draws these pixels into the 660 x 400 pt window. + bitmap.rep.size = NSSize(width: width, height: height) + guard let pngData = bitmap.rep.representation(using: .png, properties: [:]) else { throw AssetError.renderFailed } + let outDir = URL(fileURLWithPath: "Assets") + try FileManager.default.createDirectory(at: outDir, withIntermediateDirectories: true) + let outURL = outDir.appendingPathComponent("dmg_background.png") + try pngData.write(to: outURL, options: .atomic) + print("Generated DMG background at \(outURL.path)") } func createAppIcon() throws { @@ -49,11 +57,9 @@ func createAppIcon() throws { for spec in iconSpecs { let s = CGFloat(spec.pixelSize) - let size = NSSize(width: s, height: s) - let img = NSImage(size: size) - img.lockFocus() - guard let ctx = NSGraphicsContext.current?.cgContext else { img.unlockFocus(); throw AssetError.renderFailed } - + let bitmap = try makeBitmap(width: spec.pixelSize, height: spec.pixelSize) + let ctx = bitmap.context.cgContext + let bounds = CGRect(x: 0, y: 0, width: s, height: s) // 1. Dark hardware background @@ -137,14 +143,10 @@ func createAppIcon() throws { ctx.fillEllipse(in: CGRect(x: dotX, y: dotY, width: dotSize, height: dotSize)) } - img.unlockFocus() - - if let tiffData = img.tiffRepresentation, - let rep = NSBitmapImageRep(data: tiffData), - let png = rep.representation(using: .png, properties: [:]) { - let outURL = iconsetDir.appendingPathComponent(spec.name) - try png.write(to: outURL) - } else { throw AssetError.renderFailed } + bitmap.context.flushGraphics() + + guard let png = bitmap.rep.representation(using: .png, properties: [:]) else { throw AssetError.renderFailed } + try png.write(to: iconsetDir.appendingPathComponent(spec.name)) } let temporaryIcon = iconsetDir.appendingPathComponent("AppIcon.icns") From 60fa30202a3cee6ec4e39e7d2f0878e82bcf7b57 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:13:26 -0500 Subject: [PATCH 41/89] ci(release): fail fast on version mismatch and draft user-facing notes Check the tag against project.yml, Info.plist and CHANGELOG.md before setting up Xcode, downloading the model and running the tests. Build the draft body with scripts/release_notes.sh (download choice, first-launch steps for macOS 15+ and 14, and the CHANGELOG section) instead of generated notes that would list PR titles. Maintainer reminders move to the job summary. Upload one DMG, the ZIP and the checksums, and move softprops/action-gh-release to v3.0.3 (Node 24). Co-Authored-By: Claude Opus 5.5 --- .github/workflows/release.yml | 44 ++++++++++++++++++++++------------- scripts/release_notes.sh | 39 +++++++++++++++++++++++++++++++ 2 files changed, 67 insertions(+), 16 deletions(-) create mode 100755 scripts/release_notes.sh diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0825c14..61cc253 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -15,17 +15,26 @@ concurrency: jobs: release: runs-on: macos-15 - timeout-minutes: 45 + timeout-minutes: 60 env: ISOLATE_MODEL_ARCHIVE_URL: ${{ vars.ISOLATE_MODEL_ARCHIVE_URL }} ISOLATE_MODEL_ARCHIVE_SHA256: ${{ vars.ISOLATE_MODEL_ARCHIVE_SHA256 }} TEST_RUNNER_ISOLATE_REQUIRE_MODEL: '1' + RELEASE_TAG: ${{ github.ref_name }} steps: - uses: actions/checkout@v5 - - name: Require a release tag + # Fail in seconds, before the model download and test run, when the tag, + # project.yml, Info.plist and CHANGELOG.md do not agree. + - name: Require a version tag that matches the app env: REF_TYPE: ${{ github.ref_type }} - run: test "$REF_TYPE" = tag + run: | + if [[ "$REF_TYPE" != tag ]]; then + echo "::error::Run this workflow from a version tag such as v1.3.0, not a branch." + exit 1 + fi + bash scripts/check_version.sh "$RELEASE_TAG" + bash scripts/release_notes.sh "$RELEASE_TAG" > /dev/null - uses: maxim-lobanov/setup-xcode@v1 with: xcode-version: latest-stable @@ -36,28 +45,31 @@ jobs: - name: Require passing tests including actual model inference run: xcodebuild test -project Isolate.xcodeproj -scheme Isolate -destination 'platform=macOS,arch=arm64' -derivedDataPath build/DerivedData -only-testing:IsolateTests CODE_SIGNING_ALLOWED=NO - name: Package release with bundled model - env: - RELEASE_TAG: ${{ github.ref_name }} run: bash scripts/package_release.sh "$RELEASE_TAG" + - name: Write release notes + run: bash scripts/release_notes.sh "$RELEASE_TAG" > dist/RELEASE_NOTES.md - name: Create draft for manual review - uses: softprops/action-gh-release@v2 + uses: softprops/action-gh-release@v3.0.3 with: + name: Isolate ${{ github.ref_name }} + body_path: dist/RELEASE_NOTES.md files: | dist/Isolate.dmg - dist/Isolate-${{ github.ref_name }}.dmg dist/Isolate-${{ github.ref_name }}-macOS.zip dist/SHA256SUMS.txt fail_on_unmatched_files: true - generate_release_notes: true draft: true - body: | - Apple Silicon · macOS 14+ - Includes the validated Core ML separation model. - - These CI artifacts are ad-hoc signed and are not notarized. Before publishing, - complete the platform and distribution checks in RELEASE.md. Download the DMG, - drag Isolate into Applications, and follow Apple's Privacy & Security guidance - if macOS requests explicit approval. + - name: Summarize maintainer checks + run: | + { + echo "### Draft release ${RELEASE_TAG} created" + echo "The artifacts are ad-hoc signed and not notarized. Before publishing, work through the publication checks in RELEASE.md," + echo "then set the Homebrew cask's version and sha256 from the published Isolate.dmg." + echo + echo '```' + cat dist/SHA256SUMS.txt + echo '```' + } >> "$GITHUB_STEP_SUMMARY" - name: Preserve test results if: always() uses: actions/upload-artifact@v7.0.1 diff --git a/scripts/release_notes.sh b/scripts/release_notes.sh new file mode 100755 index 0000000..9a2e5ca --- /dev/null +++ b/scripts/release_notes.sh @@ -0,0 +1,39 @@ +#!/bin/bash +# Prints the public notes for a release tag: what to download, the first-launch +# steps for the ad-hoc-signed build, and that version's CHANGELOG.md section. +set -euo pipefail + +PROJECT_DIR="$(cd "$(dirname "$0")/.." && pwd)" +TAG="${1:?Usage: scripts/release_notes.sh v1.3.0}" +VERSION="${TAG#v}" +[[ -f "$PROJECT_DIR/CHANGELOG.md" ]] || { echo "CHANGELOG.md is missing." >&2; exit 1; } +CHANGES=$(awk -v heading="## [${VERSION}]" ' + /^## / { if (found) exit; if (index($0, heading) == 1) { found = 1; next } } + found { print } +' "$PROJECT_DIR/CHANGELOG.md") +if [[ -z "${CHANGES//[[:space:]]/}" ]]; then + echo "CHANGELOG.md has no '## [${VERSION}]' section." >&2 + exit 1 +fi + +cat < Date: Fri, 25 Sep 2026 21:13:26 -0500 Subject: [PATCH 42/89] ci: run real inference when the model is available and test on macOS 26 When the repository's model variables are present (pushes and same-repository pull requests), fetch and validate the pinned model and set TEST_RUNNER_ISOLATE_REQUIRE_MODEL=1 so inference tests fail rather than skip; fork pull requests keep skipping with a notice. Build and test on macos-15 and macos-26. The syntax check now covers every script (bash -n checked only the first file it was given), the cask's Ruby, and that Info.plist matches project.yml. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/build.yml | 34 +++++++++++++++++++++++++++++----- 1 file changed, 29 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f99baf4..e21fc7c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,6 +5,7 @@ on: branches: [main] pull_request: branches: [main] + workflow_dispatch: permissions: contents: read @@ -15,8 +16,18 @@ concurrency: jobs: build: - runs-on: macos-15 - timeout-minutes: 30 + name: Build & Test (${{ matrix.runner }}) + strategy: + fail-fast: false + matrix: + runner: [macos-15, macos-26] + runs-on: ${{ matrix.runner }} + timeout-minutes: 45 + env: + # Pull requests from forks get no repository variables; they build and + # test without the model, and the inference tests skip. + ISOLATE_MODEL_ARCHIVE_URL: ${{ vars.ISOLATE_MODEL_ARCHIVE_URL }} + ISOLATE_MODEL_ARCHIVE_SHA256: ${{ vars.ISOLATE_MODEL_ARCHIVE_SHA256 }} steps: - uses: actions/checkout@v5 - uses: maxim-lobanov/setup-xcode@v1 @@ -24,10 +35,23 @@ jobs: xcode-version: latest-stable - run: brew install xcodegen - run: xcodegen generate - - name: Check shell scripts and whitespace + - name: Check scripts, version metadata and whitespace run: | - bash -n install.sh scripts/package_release.sh scripts/fetch_release_model.sh + for script in install.sh scripts/*.sh; do bash -n "$script"; done + ruby -c Casks/isolate.rb + bash scripts/check_version.sh + git diff --exit-code -- Info.plist git diff --check + - name: Fetch and validate the pinned model + if: env.ISOLATE_MODEL_ARCHIVE_URL != '' && env.ISOLATE_MODEL_ARCHIVE_SHA256 != '' + run: | + bash scripts/fetch_release_model.sh + # Xcode forwards TEST_RUNNER_ variables to the tests, which then fail + # instead of skipping when the model cannot run. + echo "TEST_RUNNER_ISOLATE_REQUIRE_MODEL=1" >> "$GITHUB_ENV" + - name: Note skipped inference + if: env.ISOLATE_MODEL_ARCHIVE_URL == '' || env.ISOLATE_MODEL_ARCHIVE_SHA256 == '' + run: echo "::notice::The model variables are not available to this run, so Core ML inference tests will skip." - name: Build Apple Silicon release run: xcodebuild build -project Isolate.xcodeproj -scheme Isolate -configuration Release -destination 'platform=macOS,arch=arm64' -derivedDataPath build/DerivedData CODE_SIGNING_ALLOWED=NO - name: Run unit and audio regression tests @@ -36,5 +60,5 @@ jobs: if: always() uses: actions/upload-artifact@v7.0.1 with: - name: test-results + name: test-results-${{ matrix.runner }} path: build/DerivedData/Logs/Test/*.xcresult From 30f57ec471db926c8500b50dfdfc3c48bf465889 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:13:26 -0500 Subject: [PATCH 43/89] chore(cask): add first-launch caveats, livecheck and complete zap Explain the macOS 15+ Open Anyway flow and the macOS 14 Control-click flow, track new releases through livecheck, and zap Saved Application State and Application Scripts as well. Version and sha256 are unchanged until the final DMG exists; the shared default.store is deliberately never zapped. Co-Authored-By: Claude Opus 5.5 --- Casks/isolate.rb | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/Casks/isolate.rb b/Casks/isolate.rb index 6317678..1d4da31 100644 --- a/Casks/isolate.rb +++ b/Casks/isolate.rb @@ -4,17 +4,36 @@ url "https://github.com/neokumar1/Isolate/releases/download/v#{version}/Isolate.dmg" name "Isolate" - desc "Four-stem audio separation and mixing with Core ML" + desc "Stem player that splits songs into vocals, drums, bass and other" homepage "https://github.com/neokumar1/Isolate" - depends_on macos: ">= :sonoma" + livecheck do + url :url + strategy :github_latest + end + depends_on arch: :arm64 + depends_on macos: ">= :sonoma" app "Isolate.app" + # The library lives in Application Support/Isolate. Never add the shared + # ~/Library/Application Support/default.store, which other apps also use. zap trash: [ + "~/Library/Application Scripts/com.isolate.Isolate", "~/Library/Application Support/Isolate", - "~/Library/Preferences/com.isolate.Isolate.plist", "~/Library/Caches/com.isolate.Isolate", + "~/Library/Preferences/com.isolate.Isolate.plist", + "~/Library/Saved Application State/com.isolate.Isolate.savedState", ] + + caveats <<~EOS + Isolate is ad-hoc signed and not notarized by Apple, so macOS asks you to + approve its first launch: + macOS 15 or later: open Isolate and click Done. In System Settings > + Privacy & Security, click Open Anyway next to the Isolate message, + authenticate, then click Open. + macOS 14: Control-click Isolate in Applications, choose Open, then Open. + Details: https://github.com/neokumar1/Isolate#first-launch + EOS end From 9271c0c0ce7f9a090ac7082b15182d26a7dfa5d6 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:20:48 -0500 Subject: [PATCH 44/89] docs: rewrite the README for the v1.3.0 launch and add a changelog MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The README now leads with what Isolate does and a theme-aware screenshot, links the latest release with requirements and sizes, and gives step-by-step first-launch instructions for the ad-hoc-signed build on macOS 15+ and 14 without suggesting that Gatekeeper be turned off. Features and the shortcut table match the current code, including the new ⌥L; speed is reported only as measured, with its caveats. The dated v1.2.7/v1.2.8 notes are gone. CHANGELOG.md records v1.3.0: what is new since v1.2.7 and the fixes, grouped by area. scripts/release_notes.sh reads its section. Co-Authored-By: Claude Opus 5.5 --- CHANGELOG.md | 87 +++++++++++++++++++++++++ README.md | 178 ++++++++++++++++++++++++++++++++++++--------------- 2 files changed, 213 insertions(+), 52 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..da49ea8 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,87 @@ +# Changelog + +User-visible changes to Isolate, newest first. Release downloads are on [GitHub Releases](https://github.com/neokumar1/Isolate/releases). + +## [1.3.0] + +This is the first release since v1.2.7 and the first public build that includes the separation model; the v1.2.7 download did not contain it, so it could not separate songs. Your existing library carries over (see Library). + +New since v1.2.7: three-band EQ on every stem and on the master bus, with presets and bypass; **Export Mix** (⇧⌘M) for the whole track as a 24-bit WAV; light and match-system themes; a peak limiter on the master output; folder import; and ⌥L to clear loop markers. The rest of this release is a broad hardening pass, listed below. + +### Playback + +- All four stems now start on the same audio cycle. Starting from a stop (play, seek, loop wrap, changing songs or output devices) waits for a lead sized to the output device instead of a fixed 30 ms, and reschedules if the start would be missed. +- Pause and resume keep the stems aligned and resume instantly. Pausing, unloading a song and the end of a song (after 0.5 s) release the audio device. +- Seeking no longer plays a moment of audio from the old position through the speed and pitch processor. +- The shortest A–B loop is now 0.5 seconds rather than 2% of the song, so short phrases in long songs can be looped. Setting A after B, or B before A, starts a new loop instead of snapping back into the old one. +- Seeking to the end while looping jumps back to A. Releasing a scrub at the very end stops playback instead of restarting from 0:00. +- The loop controls are disabled until a song is loaded. +- Selecting the song that is already playing, or pressing Next or Previous with one song in the library, no longer resets its mix, loop, speed, pitch and position. +- A library entry whose files are missing no longer stops a different song that is playing. +- Importing a song now pauses the one that is playing. + +### Separation & import + +- Import whole folders by dragging them onto the window or choosing them with ⌘O. Files are added in Finder order, a file is never imported twice in one batch, and AIFC files are accepted. +- Batch imports show "N OF M" with the file name, can be cancelled as a whole, and end with one summary naming each file that failed and why. +- iCloud Drive files that are not on your Mac yet are downloaded first. If you are offline, Isolate says so instead of waiting. +- Surround files (up to 7.1) are downmixed to stereo by speaker position. Before, only their first two channels were used. +- Truncated or damaged WAV, FLAC and ALAC files are refused with how much of them could be read, instead of producing shortened stems. +- Isolate checks free disk space before separating and tells you how much it needs. +- Errors are in plain language: damaged or mislabelled files, an unusable model (with its location and the Core ML reason), and missing disk space. +- Cancelling while the model is loading now stops at once. +- New songs keep their Finder name: "AC/DC" no longer becomes "AC:DC", and a title such as "Song v1.2" keeps its version number. +- Reimporting a song removes the stems it replaced, and leftover temporary folders from an interrupted separation are cleaned up at launch. + +### Library + +- The library now has its own file at `~/Library/Application Support/Isolate/Library.store`. Earlier versions kept it in the shared `default.store`, which other apps can open and rewrite, emptying the library. On first launch, 1.3.0 copies your songs from a temporary copy of the old file; the old file itself is never changed or deleted. +- If the library cannot be opened, it is moved into `Library Backups` with a timestamp, you are told where it went, and a new library starts. It is never deleted. +- Search matches the title, file name and folder only, so common words no longer match every song. +- Folder headers show enough of the path to tell folders with the same name apart. +- Next and Previous, from media keys or the menu bar, follow the sidebar's folder order. +- Songs cannot be deleted while a separation is running. +- Renamed titles are limited to 200 characters, and long titles no longer push the buttons out of the delete dialog. +- Now Playing and the menu bar keep titles that begin with numbers, such as "7-Eleven" and "99 Problems". + +### Export + +- 24-bit stem exports no longer clip. If any stem would go over full scale, all four are lowered by the same amount to −0.1 dBFS, which keeps their balance and their sum. Stems that don't need it are exported unchanged. +- Mix exports line up sample for sample with the source, and keep their full ending when speed or pitch is changed. +- Exports show their progress and can be cancelled from the EXPORT button or its menu. A cancelled export leaves the destination untouched, and quitting mid-export no longer leaves partial files in the export folder. +- File names keep the library title's capitalization. Names that begin with dots are no longer hidden, characters that Windows cannot extract are replaced, and non-ASCII names in stem ZIPs extract correctly on Windows. +- The save panel says whether channel EQ is included. With Compare Original on, a mix export is named `_Original.wav` and says it contains the original recording. +- If the song changes while the save panel is open, nothing is exported and Isolate says why. +- Stem ZIPs are stored uncompressed, so the archiving step is quick. + +### Interface & accessibility + +- Red is reserved for active and interrupting states such as solo, mute, loop, play, clipping, export progress and errors. Resting controls are neutral, and Compare Original is amber. +- Text colors meet at least 4.5:1 contrast in both themes, and Increase Contrast is supported. +- The header, studio display and transport no longer truncate in smaller windows, and the seek bar stays usable down to the minimum window size. ⌘1 to ⌘5 hide the library when the display would not fit beside it. +- VoiceOver announces errors, and the mixer, EQ, macros, tabs, album art and BYPASS have labels, values and actions. The menu bar item reports whether Isolate is playing. Reduce Motion is respected. +- Escape closes About, Settings and the shortcut card without cancelling an import underneath. +- Settings › Shortcuts lists every shortcut and scrolls. +- Double-click resets work on pan controls, EQ knobs and EQ nodes. The pan readout rounds correctly, and keyboard steps land exactly on center. +- With all EQ bypassed (⌘E), every channel shows ALL EQ OFF; click it to turn EQ back on. +- Open Isolate in the menu bar reopens a closed window, and the window no longer opens as tabs. +- The menu bar icon follows the menu bar's appearance, so it no longer disappears when the app theme differs. +- Switches, tabs, steppers and the error toast's close button respond across their full area. + +### Reliability + +- Quitting during a separation or an export asks first. Quitting during a separation cleans up its temporary files before Isolate closes. +- Opening Isolate from the downloaded disk image offers to move it to Applications, including when macOS runs it from a temporary location. Replacing an installed copy asks first and moves the old copy to the Trash. +- Decoding artwork and reading a song's format no longer freeze the window on large images or sleeping network drives. Oversized artwork is skipped. +- The meters show the newest audio and short transients, and the stem meters go blank during Compare Original. +- Release builds include the separation model, are signed with the hardened runtime, and report 1.3.0 in About. + +### Performance + +- Separation reads each chunk of model output in one pass. The stems are bit-for-bit the same. +- Isolate releases the separation model after 60 seconds without a separation, and reloads it when needed. +- The meters and the player do less drawing work for each audio update, and Now Playing is no longer republished every second. + +## Earlier versions + +Notes for v1.2.7 and earlier are on the [Releases page](https://github.com/neokumar1/Isolate/releases). diff --git a/README.md b/README.md index 912efa6..ae6bee4 100644 --- a/README.md +++ b/README.md @@ -1,64 +1,138 @@ # Isolate -A native music stem player for Apple Silicon Macs, with a Nothing-inspired mixer interface. +**Split a song into vocals, drums, bass and other on your Mac, then mix, loop, slow down and export the stems.** -Isolate separates audio into **vocals, drums, bass, and other** using a local Core ML model. Balance the four channels, practice with an A–B loop, compare against the original, and export your work. Audio processing runs on your Mac; no account or cloud service is required. +Isolate is a native macOS stem player for Apple silicon. It runs HTDemucs, the open-source separation model from Meta's Demucs project, through Core ML, so songs are separated on your own Mac with no account and no upload. Once a song is split, four channel strips let you solo the bass line, mute the vocals to sing along, slow a solo to 0.75× without changing its pitch, loop the hard part, and export the stems or your own mix. The interface is a hardware-style mixer inspired by Nothing's dot-matrix design. -## Features + + + + The Isolate window: four channel strips for vocals, drums, bass and other, with the studio display above them and the playback controls below + -- Four synchronized stem channels with calibrated −60 to +6 dB faders, silence at the bottom, mute, solo, and stereo pan. -- Three-band EQ on each stem and the master bus: 100 Hz low shelf, 1 kHz bell, and 10 kHz high shelf. EQ presets and bypass controls. -- Playback speed from 0.5× to 1.5× in preset steps; pitch from −12 to +12 semitones. -- A–B practice loops, original/mix comparison, live spectrum and level meters. -- Batch import, drag and drop, searchable SwiftData library grouped by source folder, and metadata/artwork when present. -- Content-based caching: identical source bytes reuse the same completed separation; unfinished imports never become valid cache entries. -- Four individual **24-bit WAV or FLAC stems in a ZIP**, or a **24-bit WAV mix** with the current channel levels, pan, EQ, speed, and pitch. -- Dark, light, and system appearances; menu bar controls, media keys, and trackpad haptics. +**[Download Isolate for macOS](https://github.com/neokumar1/Isolate/releases/latest)** · Apple silicon · macOS 14 or later · Free and open source (MIT) -The original is decoded to stereo 44.1 kHz for comparison. Stem exports exclude fader, pan, tempo, and pitch changes; optional stem EQ baking is available in the EQ panel. Mix exports render the full track, including the original when comparison bypass is active. Loop boundaries do not trim exports. +## Download -## Requirements and installation +1. Download **[Isolate.dmg](https://github.com/neokumar1/Isolate/releases/latest/download/Isolate.dmg)** from the [latest release](https://github.com/neokumar1/Isolate/releases/latest). +2. Open it and drag **Isolate** into **Applications**. +3. Open Isolate from Applications and approve it once, as described in [First launch](#first-launch). -- Apple Silicon Mac; deployment target macOS 14 or later. -- Disk space for the app/model and decoded stems. Cached float audio uses about **106 MB per minute** across four stems and the original. -- A compatible HTDemucs Core ML model, bundled by the release packaging process. A source checkout does not contain model weights. +| | | +| --- | --- | +| Requires | A Mac with Apple silicon (M1 or later) and macOS 14 Sonoma or later | +| Download | About 160 MB | +| Installed | About 300 MB, including the separation model | +| Separated songs | About 106 MB of disk per minute of audio, kept until you delete the song | + +Each release lists SHA-256 checksums in `SHA256SUMS.txt`. To check your download, run `shasum -a 256 ~/Downloads/Isolate.dmg` and compare the result. Homebrew, a terminal installer and source builds are covered in [INSTALL.md](INSTALL.md). + +## First launch + +Isolate's releases are built by GitHub Actions from this repository and are ad-hoc signed. They are not signed with an Apple Developer ID or notarized by Apple, so macOS can't confirm who made the app and blocks the first launch until you approve it. You do this once for each new version. + +### macOS 15 Sequoia and later + +1. Open Isolate from Applications. macOS says **"Isolate" Not Opened** because Apple could not verify it. Click **Done**, not Move to Trash. +2. Open **System Settings › Privacy & Security** and scroll down to **Security**. +3. Next to the message that Isolate was blocked, click **Open Anyway**. The button only appears for a while after a blocked launch; if it isn't there, repeat step 1. +4. Enter your login password or use Touch ID. +5. When macOS asks one last time, click **Open**. + +From then on, Isolate opens like any other app. + +### macOS 14 Sonoma + +In Applications, Control-click (or right-click) **Isolate**, choose **Open**, then click **Open** in the dialog. + +### Please don't turn off Gatekeeper + +Don't disable Gatekeeper (for example with `spctl --master-disable`) or strip quarantine attributes with `xattr` to skip these steps. Those commands change security checks for every app on your Mac, while the steps above approve only Isolate. If you'd rather not run a prebuilt app, check the download against `SHA256SUMS.txt` or [build Isolate from source](INSTALL.md#build-from-source). + +If you open Isolate straight from the disk image, it offers to move itself into Applications. + +## What it does -The public v1.2.7 DMG inspected on September 21, 2026 lacks the separation model. This checkout prepares v1.2.8 with model-aware packaging; it has not been published. See [INSTALL.md](INSTALL.md) and [MODEL.md](MODEL.md) for working source-build instructions, and [QUALITY_REPORT.md](QUALITY_REPORT.md) for verification. Once a complete package is available on [GitHub Releases](https://github.com/neokumar1/Isolate/releases), open its DMG and drag Isolate into Applications. +**Separate** -## Quick start +- Four stems, always in the same order: vocals, drums, bass and other. HTDemucs runs through Core ML on your Mac. Isolate has no account, analytics or network features of its own. +- Import files or whole folders with ⌘O or by dragging them onto the window. MP3, WAV, FLAC, M4A (AAC or ALAC), AIFF and CAF are supported. Surround files are downmixed to stereo, and iCloud Drive files that aren't on your Mac yet are downloaded first. +- While a song separates, Isolate shows the file name, chunk count, time remaining and measured speed. You can cancel one song or a whole batch, and if you allow notifications, Isolate tells you when an import finishes while it is in the background. +- Separated songs are cached by their audio content. Importing the same audio again, even from a different folder, reuses its stems instead of separating it again. -1. Press **⌘O** or drop local audio files into the window. MP3, WAV, FLAC, M4A/AAC/ALAC, AIFF, and CAF are accepted when supported by the macOS decoder. DRM-protected audio is unsupported. -2. Wait for separation, or press Escape to cancel. Progress and speed are measured from the current job; the first model load can take longer. -3. Adjust the four channels. Double-click a fader, pan dial, or EQ knob to reset it. -4. Set loop markers with **[** and **]**, and toggle looping with **L**. -5. Use **File → Export Stems…** or **File → Export Mix…**. +**Mix** + +- Four channel strips, each with a fader from −60 to +6 dB (the bottom is silence), mute, solo, stereo pan and a live meter. +- Three-band EQ on every stem and on the master bus: a 100 Hz low shelf, a 1 kHz bell and a 10 kHz high shelf, each ±12 dB. It includes factory presets, per-channel bypass and one key (⌘E) to bypass all EQ. +- One-click macros: Acapella, Instrumental, Drumless, Karaoke (vocals at −12 dB), Drums & Bass, and Reset. +- Compare Original (the **BYPASS** button) switches to the source recording under the same speed, pitch and master EQ, so you can check the separation against the real thing. + +**Practice** + +- Speed from 0.5× to 1.5× (0.5, 0.75, 0.85, 1, 1.15, 1.25 and 1.5) without changing pitch, and pitch from −12 to +12 semitones without changing speed. +- A–B loop: set the start and end at the playhead with [ and ], turn looping on or off with L, and clear the markers with ⌥L. +- A studio display above the mixer with five views: a 32-band spectrum, the stem macros, stem balance, telemetry (tempo, key, format and timecode) and the master equalizer (⌘1 to ⌘5). + +**Library** + +- Songs are grouped by the folder they came from and can be searched by title, file name or folder. Next and Previous follow the sidebar order. +- Artist, album, artwork, BPM and key come from the file's own tags. Isolate doesn't estimate BPM or key, and shows them as unknown when the tags don't have them. +- Rename songs in the library. Deleting a song removes only the stems Isolate made; your original file is never changed or deleted. + +**Export** + +- **Stems:** a ZIP of four 24-bit WAV or FLAC files at 44.1 kHz. Channel EQ is included unless it is bypassed; levels, pan, speed and pitch are not. If any stem would clip, all four are lowered by the same amount so they still add up to the same mix. +- **Mix:** a 24-bit WAV of the whole track with your current levels, mutes, solos, pan, EQ, speed and pitch. With Compare Original on, it exports the original recording instead and names the file `_Original.wav`. +- Exports show their progress and can be cancelled. An existing file is replaced only after the new one is complete. + +**On your Mac** + +- Dark, light and match-system themes, with support for Increase Contrast and VoiceOver labels on the controls. +- A menu bar mini controller, media keys and Now Playing, and trackpad haptics. ## Keyboard shortcuts -| Shortcut | Action | +| Keys | Action | | --- | --- | -| Space | Play / pause | -| ⌘O | Import audio / batch import | -| ⌘⇧E | Export four stems as ZIP | -| ⌘⇧M | Export the full current mix as WAV | -| ⌘⌥B | Compare original / stem mix | -| 1 / 2 / 3 / 4 | Solo vocals / drums / bass / other | -| V / D / B / O | Mute vocals / drums / bass / other | -| A / I / R | Acapella / instrumental / reset mix | -| [ / ] / L | Set loop start / end / toggle loop | -| ⌘E | Bypass all EQ | -| ⌘1 … ⌘5 | Select header display mode | -| ⌘B | Show / hide library | -| ⌘0 | Show main window | -| ⌘, | Settings and shortcuts | -| ? or / | Shortcut reference card | -| Escape | Dismiss a dialog or cancel separation | - -Focused faders and dials also support keyboard adjustment and accessibility actions. - -## Development - -Requires Xcode 26.2 or later (Swift 6.2 compiler or later) and [XcodeGen](https://github.com/yonaskolb/XcodeGen). The project currently uses Swift 5 language mode. +| Space | Play or pause | +| 1, 2, 3, 4 | Solo vocals, drums, bass or other | +| V, D, B, O | Mute vocals, drums, bass or other | +| A / I | Acapella (vocals only) / Instrumental (no vocals) | +| R | Reset levels, mutes, solos and pan | +| [ / ] | Set the loop start / end at the playhead | +| L | Turn the A–B loop on or off | +| ⌥L | Clear the loop markers | +| ⌘1 to ⌘5 | Studio display: 32-band FFT, stem macros, stem balance, telemetry, equalizer | +| ⌘E | Bypass all EQ (stems and master) | +| ⌥⌘B | Compare Original (BYPASS) | +| ⌘O | Import files or folders | +| ⇧⌘E | Export stems | +| ⇧⌘M | Export mix | +| ⌘B | Show or hide the library | +| ⌘, | Settings | +| ⌘0 | Show the Isolate window | +| ? or / | Show or hide the shortcut card | +| Esc | Close the open panel, or cancel the import in progress | +| Arrow keys | Adjust the focused fader, knob, pan control or seek bar | +| Double-click | Reset a fader, pan control, EQ knob, pitch or speed | + +The full list is also in **Settings › Shortcuts**. + +## Speed, quality and limits + +- **Speed depends on your Mac.** On an M-series MacBook Pro running macOS 27, real songs separated at about 2.5× realtime during v1.3.0 testing: a 4:37 ALAC track in 1:49 and an 8:24 MP3 in 3:17. Those runs were measured before a later optimization and haven't been re-timed. Your speed will vary with the Mac, the macOS version and what else is running; the progress screen shows the measured speed for each song. +- **The first separation after installing or updating is slower** while macOS prepares the model for your Mac. On the test Mac that took about 17 seconds once, and about 3 to 4 seconds on later loads. +- **Memory:** on the test Mac, Core ML used about 1.6 to 2.7 GB during separation. Isolate releases the model after 60 seconds without a separation. +- **Disk:** separated songs use about 106 MB per minute of audio. Isolate checks for enough free space before it starts. +- **Quality depends on the recording.** Expect some bleed between stems and some artifacts, especially on dense mixes. Isolate makes no guarantee about separation quality. +- **Looping is for practice.** Playback that starts from a stop waits a fraction of a second so all four stems start together, and the A–B loop is not a sample-accurate DAW loop. +- **Not supported:** Intel Macs, DRM-protected files (such as Apple Music downloads), OGG and Opus, files with more than 8 channels, MP3 export, and exporting only the loop region. + +Having trouble? See [TROUBLESHOOTING.md](TROUBLESHOOTING.md). Changes in each version are listed in [CHANGELOG.md](CHANGELOG.md). + +## Build from source + +You need Xcode 26.2 or later and [XcodeGen](https://github.com/yonaskolb/XcodeGen). The model weights are not in this repository; [MODEL.md](MODEL.md) explains how to install the validated model. ```sh brew install xcodegen @@ -68,12 +142,12 @@ xcodebuild build -project Isolate.xcodeproj -scheme Isolate \ open build/DerivedData/Build/Products/Debug/Isolate.app ``` -Set up the model using [MODEL.md](MODEL.md) before importing audio. Run checks using [RELEASE.md](RELEASE.md). Architecture and signal flow are documented in [ARCHITECTURE.md](ARCHITECTURE.md) and [AUDIO_ENGINE.md](AUDIO_ENGINE.md). - -## Practical limits - -Separation quality depends on the source and model; some bleed and artifacts are expected. Processing speed and Core ML compute-device selection depend on hardware, OS, and workload. Isolate does not claim a fixed speed, memory ceiling, or exclusive Neural Engine execution. Looping uses scheduled playback and is intended for practice; it is not a sample-accurate DAW loop engine. BPM and key are read from metadata, with unknown values shown explicitly. +[INSTALL.md](INSTALL.md) has the full steps, [RELEASE.md](RELEASE.md) covers tests and packaging, and [ARCHITECTURE.md](ARCHITECTURE.md), [AUDIO_ENGINE.md](AUDIO_ENGINE.md) and [DESIGN.md](DESIGN.md) describe how the app works. ## Credits -App code: [MIT](LICENSE). Model architecture: [Demucs by Meta](https://github.com/facebookresearch/demucs). Typography: DotGothic16 by Fontworks. See [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). Isolate is an independent project and is not affiliated with Nothing or Apple. +- App code: [MIT License](LICENSE), © 2026 Neo Kumar. +- Separation model: HTDemucs from Meta's [Demucs](https://github.com/facebookresearch/demucs) project, MIT License, converted to Core ML. +- Typeface: [DotGothic16](https://github.com/fontworks-fonts/DotGothic16) by Fontworks, SIL Open Font License 1.1. + +License texts ship inside the app; see [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md). Isolate is an independent project. It is not affiliated with or endorsed by Nothing Technology Limited or Apple; "Nothing-inspired" describes the visual style only. From 7fbb353a83eddcfec28b00a06253d1fec56e14c2 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:20:48 -0500 Subject: [PATCH 45/89] docs: update install and troubleshooting guides for v1.3.0 INSTALL.md covers the DMG, the Homebrew tap, the terminal installer and source builds, and lists where the library, its backups, stems and model live, including the one-time copy from the shared default.store. TROUBLESHOOTING.md adds Gatekeeper and folder-access prompts, model errors, iCloud Drive files, disk space, slow or stuck imports, restoring from Library Backups, and stems lowered to avoid clipping. Co-Authored-By: Claude Opus 5.5 --- INSTALL.md | 67 +++++++++++++++++++++++++++---------- TROUBLESHOOTING.md | 83 ++++++++++++++++++++++++++++++++++++---------- 2 files changed, 115 insertions(+), 35 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index 2f90a64..41b81d5 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,25 +1,45 @@ # Install and build Isolate -## Release app +Isolate needs a Mac with Apple silicon (M1 or later) and macOS 14 Sonoma or later. -The public v1.2.7 DMG inspected on September 21, 2026 does **not** include the separation model or app version metadata. The v1.2.8 work in this checkout fixes packaging, but has not been published. Use the source-build instructions and [MODEL.md](MODEL.md) until a complete release is available. The terminal installer intentionally rejects releases missing checksums or the model. +## Disk image (recommended) -1. Use an Apple Silicon Mac running macOS 14 or later. -2. Download `Isolate.dmg` from the project's [Releases](https://github.com/neokumar1/Isolate/releases). -3. Open the disk image and drag Isolate into Applications. Quit a running copy before replacing it. -4. Launch the app from Applications. Release packages must contain `Contents/Resources/HTDemucs.mlmodelc`. +1. Download `Isolate.dmg` from the [latest release](https://github.com/neokumar1/Isolate/releases/latest). It is about 160 MB. +2. Open the disk image and drag Isolate into Applications. Quit a running copy before replacing it. +3. Open Isolate from Applications and approve the first launch as described in the README's [First launch](README.md#first-launch) section. -If macOS blocks an unsigned or unnotarized build, verify where it came from and review **System Settings → Privacy & Security → Open Anyway**. Do not disable Gatekeeper or recursively clear quarantine. Signing and notarization status belongs in each release's notes. +The app takes about 300 MB once installed, because the separation model is inside it (`Isolate.app/Contents/Resources/HTDemucs.mlmodelc`). Releases are ad-hoc signed and are not notarized by Apple. Approve Isolate in **System Settings › Privacy & Security** rather than disabling Gatekeeper or clearing quarantine attributes. -The Homebrew cask in `Casks/isolate.rb` describes the existing 1.2.5 release. Its version and checksum must be updated together only after a new artifact has been published and verified. +To check a download, compare `shasum -a 256 Isolate.dmg` with the value in the release's `SHA256SUMS.txt`. A checksum published in the same release confirms the file arrived intact; it does not prove who published it. -## Optional terminal installer +If you open Isolate straight from the disk image, it offers to move itself to Applications. If Applications already has a copy, it asks before replacing it and moves the old copy to the Trash. -Download and inspect `install.sh` before running it. It pins the latest release version for the duration of installation, checks the DMG against its release checksum, verifies the app signature, and requires the bundled model. It stages the app before replacing an existing installation. A checksum fetched from the same release checks integrity, not independent publisher identity. +## Homebrew + +The cask lives in this repository rather than in Homebrew's main tap, so tap it by URL: + +```sh +brew tap neokumar1/isolate https://github.com/neokumar1/Isolate +brew install --cask neokumar1/isolate/isolate +``` + +Homebrew quarantines the app like a browser download, so the first launch needs the same approval. `brew uninstall --zap --cask neokumar1/isolate/isolate` also removes the library, the separated stems and the preferences. + +## Terminal installer + +`install.sh` installs the latest release into `/Applications`. Download and read it before running it: + +```sh +curl -fsSLO https://raw.githubusercontent.com/neokumar1/Isolate/main/install.sh +less install.sh +bash install.sh +``` + +It resolves the latest version once, downloads `SHA256SUMS.txt` before the disk image and stops if the checksum is missing or does not match. It also checks the app's code signature and that the model is bundled, and it stages the new copy before replacing an existing one. Run it from an administrator account; it will not install into a folder it cannot write. Because curl does not mark downloads as quarantined, macOS usually does not ask you to approve the first launch of an app installed this way. ## Build from source -Install Xcode 26.2 or newer, select it with Xcode's Locations preferences, and install XcodeGen. The deployment target remains macOS 14. +Install Xcode 26.2 or later and [XcodeGen](https://github.com/yonaskolb/XcodeGen). The deployment target stays macOS 14. ```sh brew install xcodegen @@ -29,13 +49,24 @@ xcodebuild build -project Isolate.xcodeproj -scheme Isolate \ open build/DerivedData/Build/Products/Debug/Isolate.app ``` -No Python runtime or third-party Swift dependencies are needed by the app. The Core ML model is a separate build input; follow [MODEL.md](MODEL.md). Without it, the UI builds and existing valid cached stems can play, but new separation cannot run. +The app needs no Python runtime and no third-party Swift packages. The Core ML model is not in the repository; follow [MODEL.md](MODEL.md) to install the validated model. Without it the app builds and plays songs that were already separated, but it cannot separate new ones. + +## Where Isolate keeps its data + +| Data | Location | +| --- | --- | +| Library | `~/Library/Application Support/Isolate/Library.store` | +| Library backups | `~/Library/Application Support/Isolate/Library Backups//` | +| Separated stems | `~/Library/Application Support/Isolate/Stems/` | +| Model for source builds | `~/Library/Application Support/Isolate/HTDemucs.mlmodelc` (the bundled model is used first) | +| Preferences | the `com.isolate.Isolate` user defaults domain | + +Your original audio files stay where they are; Isolate only reads them. Each separated song uses about 106 MB per minute of audio in the stems folder: 32-bit float copies of the four stems and of the decoded original. + +Versions before 1.3 kept the library in the shared `~/Library/Application Support/default.store`. On its first launch, 1.3 copies your songs out of a temporary copy of that file into `Library.store`. It never opens, changes or deletes `default.store` itself, because other apps can use the same file. If `Library.store` ever cannot be opened, Isolate moves it into `Library Backups` and starts a new library; see [TROUBLESHOOTING.md](TROUBLESHOOTING.md#the-library-is-empty-or-was-moved-to-library-backups). -## Local data +Deleting a song in Isolate removes only the stem folder it owns, and only when no other library entry uses it. Quit Isolate and back up `~/Library/Application Support/Isolate` before changing anything in it by hand. -- Library: SwiftData's application store under the app's Application Support location. -- Model: bundled resources first, then `~/Library/Application Support/Isolate/HTDemucs.mlmodelc`. -- Audio cache: `~/Library/Application Support/Isolate/Stems/`. -- Preferences: `com.isolate.Isolate` user defaults. +## Uninstall -Removing a library entry removes only its owned, unshared stem cache. Original source files are not deleted. Keep original files available if cached stems need rebuilding. Quit Isolate and back up the library/cache before manually changing app data. +Quit Isolate and move `/Applications/Isolate.app` to the Trash. To remove your library and separated stems too, delete `~/Library/Application Support/Isolate`. Your original audio files are not affected. diff --git a/TROUBLESHOOTING.md b/TROUBLESHOOTING.md index 071f649..7a2eeed 100644 --- a/TROUBLESHOOTING.md +++ b/TROUBLESHOOTING.md @@ -1,37 +1,86 @@ # Troubleshooting -## Import reports a missing or invalid model +## macOS won't open Isolate -Use a complete packaged release, or follow [MODEL.md](MODEL.md) for a source build. A model with the right filename can still have incompatible tensor shapes or source order. Run `scripts/validate_model.swift` on the intended model. Isolate does not download models automatically. +Releases are ad-hoc signed and not notarized, so macOS blocks the first launch until you approve it. Follow [First launch](README.md#first-launch) in the README: -## Unsupported or damaged audio +- **macOS 15 and later:** open Isolate once and click **Done**, then go to **System Settings › Privacy & Security**, click **Open Anyway** next to the Isolate message, authenticate, and click **Open**. If Open Anyway is not shown, open Isolate again and go straight back to that page; the button only appears for a while after a blocked launch. If your account can't approve it, ask an administrator of the Mac. +- **macOS 14:** Control-click Isolate in Applications, choose **Open**, then click **Open**. -Try playing the file in a macOS audio application first. Import supports local MP3, WAV, FLAC, M4A/AAC/ALAC, AIFF, and CAF through the system decoder. DRM-protected files and OGG are unsupported. Renaming an extension does not convert a file. +If macOS says Isolate **is damaged and can't be opened**, the download is incomplete or was changed after it was signed. Delete it, download `Isolate.dmg` again, and compare `shasum -a 256 Isolate.dmg` with the release's `SHA256SUMS.txt`. -## Missing stems or moved source files +Don't turn off Gatekeeper or run `xattr -cr` on the app. Those skip the check for more than Isolate and hide real problems with a download. -Isolate attempts to rebuild damaged/missing stems from the original source. Restore that file or reimport it from its new location. Existing complete caches can play without the source, but source metadata may be unavailable. Do not delete the library database as a first troubleshooting step. +## macOS asks to access Downloads, Documents, Desktop or a drive -## No sound +Isolate leaves imported songs where they are. When you select a song later, it rereads the original for its artwork and tags, and to rebuild stems that are missing, so macOS asks for access to the folder or drive it is in. Allow it. If you deny it, stems that were already separated still play, but the artwork and tags may be missing and missing stems can't be rebuilt. You can change the choice in **System Settings › Privacy & Security › Files and Folders**. Because releases are ad-hoc signed, macOS may ask again after you update Isolate. -Check the Mac's output device/volume, Isolate's play state, channel faders, mute/solo buttons, and original comparison. Reset the mix with R. Changing output devices should preserve the current position; pause/resume if the new device is still becoming available. Bluetooth adds latency. +## Import says the model is missing or can't be loaded -## Separation seems slow +- **"CoreML Model Not Found"** means this copy of Isolate has no separation model. The v1.2.x downloads and source builds don't include one. Install the current release from [Releases](https://github.com/neokumar1/Isolate/releases/latest), or follow [MODEL.md](MODEL.md) for a source build. +- **"Model Could Not Be Loaded"** names the model it tried and the reason Core ML gave. If the path is inside `Isolate.app`, reinstall the app. If it is `~/Library/Application Support/Isolate/HTDemucs.mlmodelc`, replace that folder with the validated model from [MODEL.md](MODEL.md) and check it with `scripts/validate_model.swift`. -First use includes model loading or compilation. Speed depends on source duration, hardware, available memory, and Core ML's chosen devices. The displayed ETA is computed from completed chunks. Cancellation waits for the current prediction to return before releasing the job and removing partial files. +Isolate never downloads a model by itself. -## Export fails +## A file won't import + +Isolate imports MP3, WAV, FLAC, M4A (AAC or ALAC), AIFF, AIFC and CAF files through macOS's own decoders. It can't import DRM-protected files such as Apple Music downloads, OGG or Opus, or files with more than 8 channels. Renaming a file's extension does not convert it. + +- **"The file is damaged, or its contents do not match its extension"** or **"The file could not be decoded"**: try playing the file in Music or QuickTime Player. If it doesn't play there either, export or download it again. +- **"The file appears damaged or incomplete: only 2:10 of 4:05 could be decoded"**: a WAV, FLAC or ALAC file is shorter than its header says, usually from an interrupted copy or download. Get a complete copy. + +When several files fail in one batch, the message at the end names each file and its reason. + +## Files in iCloud Drive + +If a song is in iCloud Drive but not downloaded to your Mac, Isolate asks macOS to download it and shows **DOWNLOADING FROM ICLOUD...** until it arrives. There is no percentage because macOS doesn't report one. If your Mac is offline, the import stops with a message saying the file hasn't been downloaded. To avoid the wait, choose **Download Now** on the files in Finder before importing. + +## Not enough disk space + +Before separating, Isolate checks the free space on the disk that holds its library and stops with "Not enough disk space: separating this track needs about … free, and … is available." Each separated song keeps about 106 MB per minute of audio. Free up space, or delete songs you no longer need from the library, which removes their stems. + +Exporting stems also needs temporary space for four 32-bit copies of the stems plus the finished files. If a disk fills up during a separation or export, the error shown comes from macOS. + +## An import looks stuck or slow + +- **LOADING SEPARATION MODEL...** takes longer the first time after you install or update Isolate, while macOS prepares the model for your Mac. On the test Mac that took about 17 seconds; later loads took 3 to 4 seconds. +- **DOWNLOADING FROM ICLOUD...** waits for iCloud; see above. +- **SEPARATING STEMS...** advances one chunk (5 seconds of audio) at a time. The time remaining and speed are measured from the chunks already finished, and speed depends on your Mac and what else is running. +- **CANCELLING...** waits for the chunk in progress to finish, then removes the unfinished files. + +If a separation really stops moving, quit Isolate. It asks first, cancels the import and removes its temporary files. Anything left behind by a crash is cleaned up the next time Isolate starts. -Check free space and write access to the destination. Export Stems creates a ZIP containing WAV or FLAC files; Export Mix creates a WAV. Existing destinations are replaced only after a complete output has been prepared. MP3 export is not supported. +## The library is empty or was moved to Library Backups -## App launches without its window +The library is `~/Library/Application Support/Isolate/Library.store`. + +- **After updating from a version before 1.3:** on its first launch, 1.3 copies your songs from a temporary copy of the old shared `~/Library/Application Support/default.store`. If that fails, Isolate says so and leaves the old file unchanged. +- **"Isolate could not open its library and started a new one":** the old library files were moved, not deleted, into `~/Library/Application Support/Isolate/Library Backups//`, and the message gives the exact folder. + +To restore a backup, quit Isolate, move `Library.store`, `Library.store-wal` and `Library.store-shm` out of `~/Library/Application Support/Isolate`, copy the files from the backup folder in their place, and open Isolate. If it still can't be opened, the backup may have been written by a newer version of Isolate; install that version and try again. + +Your separated stems stay in the `Stems` folder either way. Importing the same original files again finds their stems by content and reuses them without separating again. + +## Stems are missing or the original was moved + +When a song's stems are missing or damaged, Isolate rebuilds them from the original file. If the original has moved too, you'll see **AUDIO SOURCE NOT FOUND**; import the file from its new location. Songs whose stems are complete keep playing without the original, but their artwork and tags may be unavailable. + +## Exported stems are quieter than the player + +Separated stems can peak above full scale; on test songs they reached 1.3 to 1.5 times full scale, and EQ boosts can add more. 24-bit WAV and FLAC can't store that, so when any stem would clip, Isolate lowers all four stems by the same amount until the loudest peak is at −0.1 dBFS. The stems keep their balance and still add up to the mix, just at a lower level. To match the player, raise all four by the same amount in your editor. Stems that don't need it are exported unchanged. Mix exports go through a peak limiter instead. + +## No sound + +Check the Mac's output device and volume, then Isolate's play state, faders, mute and solo buttons (R resets them), and whether Compare Original (BYPASS) is on. Playback from a stop starts a fraction of a second after you press play so all four stems start together. When you change output devices, Isolate restarts playback at the same position; if the new device is still connecting, pause and play again. Bluetooth devices add their own delay. + +## Export fails -Choose **Window → Show Isolate** (⌘0). The app can continue playing while its window is closed. Open Settings with ⌘, once the main window is visible. +Check free space on the destination and on your startup disk, and that you can write to the destination folder. An existing file is replaced only after the new export is complete, and a cancelled or failed export leaves it untouched. If you see "The track changed while the save panel was open. Nothing was exported.", another song loaded, for example from a media key, while the save panel was open; export again. Isolate does not export MP3. -## macOS blocks launch +## The window is gone -Verify the download source and review **Privacy & Security → Open Anyway** if you intend to trust that build. A local ad-hoc signature is not Developer ID notarization. Do not turn off Gatekeeper or remove all extended attributes recursively. +Isolate can keep playing with its window closed. Choose **Window › Show Isolate** (⌘0), or **Open Isolate** from the menu bar icon. ## Reporting a problem -Include the app version, macOS version, Mac model, audio format/sample rate/duration, steps, and the visible error. Avoid attaching private or copyrighted source audio; a short synthetic or freely shareable example is preferable. +Open an issue at with the Isolate version (shown in About), the macOS version, your Mac model, the audio format, sample rate and length, the steps you took, and the exact message. Please don't attach copyrighted or private audio; a short clip you're free to share, or a description of the file, is enough. From 89d197175368a592ddfed4bb69e3c695607d042a Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:23:42 -0500 Subject: [PATCH 46/89] test: add shared waits, fixtures and a model gate for hardening tests Hardening.wait polls a condition with a deadline instead of sleeping a fixed time; finish() bounds ImportCoordinator waits. requirePlayback skips only when no output device can start. disableAutoPlay keeps hosted tests from playing through the speakers and restores the shared preference. splitRequiringModel skips only for a missing model (never with ISOLATE_REQUIRE_MODEL=1), so an installed model that fails to load fails the test. Fixtures give each stem its own tone and can write ID3-tagged WAV sources. Co-Authored-By: Claude Opus 5.5 --- Tests/IsolateTests/HardeningSupport.swift | 220 ++++++++++++++++++++++ 1 file changed, 220 insertions(+) create mode 100644 Tests/IsolateTests/HardeningSupport.swift diff --git a/Tests/IsolateTests/HardeningSupport.swift b/Tests/IsolateTests/HardeningSupport.swift new file mode 100644 index 0000000..fd9d976 --- /dev/null +++ b/Tests/IsolateTests/HardeningSupport.swift @@ -0,0 +1,220 @@ +import XCTest +import AVFoundation +import AppKit +@testable import Isolate + +/// Shared waits and fixtures for the hardening tests. Namespaced so helpers added by +/// other test files cannot collide with these names. +@MainActor +enum Hardening { + // MARK: - Waiting + + /// Polls `condition` until it holds or `timeout` passes. Use it instead of a fixed + /// sleep whenever a test waits for asynchronous work to finish. + @discardableResult + static func wait(timeout: Duration = .seconds(5), interval: Duration = .milliseconds(10), + until condition: () -> Bool) async -> Bool { + let clock = ContinuousClock() + let deadline = clock.now + timeout + while !condition() { + guard clock.now < deadline else { return false } + try? await Task.sleep(for: interval) + } + return true + } + + /// For checks that late metadata changed nothing: repeats the engine's metadata read of + /// `url` (tags, then the format probe) so a request started earlier has had as long as it + /// needs, then lets its main-actor update run. + static func settleMetadata(for url: URL) async { + let asset = AVURLAsset(url: url) + _ = try? await asset.load(.commonMetadata) + _ = try? await asset.load(.metadata) + _ = await Task.detached { AudioEngineManager.probeFormat(url) }.value + try? await Task.sleep(for: .milliseconds(200)) + } + + /// Waits for an import started through ImportCoordinator; a hang fails instead of stalling CI. + static func finish(_ importer: ImportCoordinator, timeout: Duration = .seconds(10), + file: StaticString = #filePath, line: UInt = #line) async { + let finished = await wait(timeout: timeout, interval: .milliseconds(20)) { !importer.isImporting } + XCTAssertTrue(finished, "The import did not finish within \(timeout)", file: file, line: line) + } + + // MARK: - Realtime audio + + struct PlaybackDidNotStart: Error {} + + /// Starts playback if autoplay did not. Skips only when this Mac has no output device + /// the engine can start; any other reason playback stays off fails the test. + static func requirePlayback(_ engine: AudioEngineManager, + file: StaticString = #filePath, line: UInt = #line) throws { + if !engine.isPlaying { engine.togglePlayback() } + guard !engine.isPlaying else { return } + if let message = engine.errorMessage, message.hasPrefix("Could not start audio output") { + throw XCTSkip("No audio output device can start: \(message)") + } + XCTFail("Playback did not start: \(engine.errorMessage ?? "no error was shown")", file: file, line: line) + throw PlaybackDidNotStart() + } + + /// Hosted tests share one preferences domain. Turns autoplay off so loading a track + /// does not play through the speakers, and returns the block that restores it. + static func disableAutoPlay() -> @MainActor @Sendable () -> Void { + let key = "isAutoPlayDisabled" + let previous = AppPreferences.defaults.object(forKey: key) as? Bool + AppPreferences.defaults.set(true, forKey: key) + return { + if let previous { AppPreferences.defaults.set(previous, forKey: key) } + else { AppPreferences.defaults.removeObject(forKey: key) } + } + } + + // MARK: - Model + + struct ModelRequired: Error, CustomStringConvertible { + let description: String + } + + /// Separates with the installed model. Only a missing model skips, and not when + /// ISOLATE_REQUIRE_MODEL=1. A model that is installed but cannot be loaded throws + /// DemucsError.modelLoadFailed, which fails the test. + static func splitRequiringModel(_ url: URL, + progress: @escaping @Sendable (SplitProgressInfo) -> Void = { _ in }) async throws -> [URL] { + do { + return try await DemucsEngine.shared.splitAudio(url: url, progressCallback: progress) + } catch DemucsError.modelNotFound(let message) { + if ProcessInfo.processInfo.environment["ISOLATE_REQUIRE_MODEL"] == "1" { + throw ModelRequired(description: "ISOLATE_REQUIRE_MODEL=1 but no model is installed: \(message)") + } + throw XCTSkip("Install the model to run inference: \(message)") + } + } + + /// Removes a separation result from the test-only cache root. + static func removeCache(_ stems: [URL]) { + if let directory = stems.first?.deletingLastPathComponent(), StemCache.owns(directory) { + try? FileManager.default.removeItem(at: directory) + } + } + + // MARK: - Audio fixtures + + /// One tone per stem in model order (vocals, drums, bass, other), so a swapped + /// label is audible in the data rather than hidden by identical fixtures. + nonisolated static let stemFrequencies: [Double] = [440, 660, 110, 880] + + static func write(_ url: URL, frames: Int, sample: (Int) -> Float) throws { + let buffer = AVAudioPCMBuffer(pcmFormat: StreamingAudio.format, frameCapacity: AVAudioFrameCount(frames))! + buffer.frameLength = buffer.frameCapacity + for frame in 0.. [URL] { + try FileManager.default.createDirectory(at: folder, withIntermediateDirectories: true) + try tone(folder.appending(path: "original.wav"), frequency: 330, seconds: seconds) + return try DemucsEngine.stemNames.indices.map { index in + let url = folder.appending(path: "\(DemucsEngine.stemNames[index]).wav") + try tone(url, frequency: stemFrequencies[index], amplitude: amplitudes[index], seconds: seconds) + return url + } + } + + /// Publishes distinct-tone stems for `source` into the test cache so imports need no model. + static func cacheStems(for source: URL, seconds: Double = 0.5) throws -> URL { + let cache = StemCache.root.appending(path: try StemCache.key(for: source)) + try distinctStems(in: cache, seconds: seconds) + return cache + } + + static func track(title: String, original: URL, stems: [URL]) -> TrackModel { + TrackModel(id: original.path, title: title, originalURL: original, + vocalStemURL: stems[0], bassStemURL: stems[2], drumStemURL: stems[1], otherStemURL: stems[3]) + } + + static func samples(_ url: URL, channel: Int = 0) throws -> [Float] { + let file = try AVAudioFile(forReading: url) + let buffer = AVAudioPCMBuffer(pcmFormat: file.processingFormat, frameCapacity: AVAudioFrameCount(file.length))! + try file.read(into: buffer) + return Array(UnsafeBufferPointer(start: buffer.floatChannelData![channel], count: Int(buffer.frameLength))) + } + + /// Signal power at `frequency` (Goertzel), normalised so a full-scale sine reads about 0.25. + static func power(of samples: [Float], at frequency: Double) -> Double { + let coefficient = 2 * cos(2 * Double.pi * frequency / 44_100) + var previous = 0.0, beforePrevious = 0.0 + for sample in samples { + let current = Double(sample) + coefficient * previous - beforePrevious + beforePrevious = previous + previous = current + } + let power = previous * previous + beforePrevious * beforePrevious - coefficient * previous * beforePrevious + return power / Double(max(1, samples.count * samples.count)) + } + + /// The candidate tone with the most energy in the file's left channel. + static func dominantFrequency(of url: URL, among candidates: [Double] = stemFrequencies) throws -> Double { + let samples = try samples(url) + return candidates.max { power(of: samples, at: $0) < power(of: samples, at: $1) }! + } + + static func peak(_ samples: C) -> Float where C.Element == Float { + samples.reduce(0) { max($0, abs($1)) } + } + + // MARK: - Tagged source + + struct Tags { + var title = "Tag Title" + var artist = "Tag Artist" + var album = "Tag Album" + var bpm = "128" + var key = "F#m" + var artwork = true + } + + /// A float WAV carrying an ID3v2.4 chunk, which AVFoundation reads as it does an MP3's tags. + static func taggedSource(_ url: URL, tags: Tags = Tags(), seconds: Double = 0.5) throws { + try tone(url, frequency: 330, seconds: seconds) + func synchsafe(_ value: Int) -> [UInt8] { + [21, 14, 7, 0].map { UInt8(value >> $0 & 0x7F) } + } + func frame(_ id: String, _ payload: [UInt8]) -> [UInt8] { + Array(id.utf8) + synchsafe(payload.count) + [0, 0] + payload + } + func text(_ id: String, _ value: String) -> [UInt8] { frame(id, [3] + Array(value.utf8)) } // 3: UTF-8 + var frames = text("TIT2", tags.title) + text("TPE1", tags.artist) + text("TALB", tags.album) + + text("TBPM", tags.bpm) + text("TKEY", tags.key) + if tags.artwork { + let bitmap = NSBitmapImageRep(bitmapDataPlanes: nil, pixelsWide: 64, pixelsHigh: 48, bitsPerSample: 8, + samplesPerPixel: 4, hasAlpha: true, isPlanar: false, + colorSpaceName: .deviceRGB, bytesPerRow: 0, bitsPerPixel: 0)! + let png = bitmap.representation(using: .png, properties: [:])! + // Encoding, MIME type, picture type 3 (front cover), empty description. + frames += frame("APIC", [3] + Array("image/png".utf8) + [0, 3, 0] + [UInt8](png)) + } + let tag = Array("ID3".utf8) + [4, 0, 0] + synchsafe(frames.count) + frames + var data = try Data(contentsOf: url) + data.append(contentsOf: Array("id3 ".utf8)) + withUnsafeBytes(of: UInt32(tag.count).littleEndian) { data.append(contentsOf: $0) } + data.append(contentsOf: tag) + if tag.count % 2 == 1 { data.append(0) } + withUnsafeBytes(of: UInt32(data.count - 8).littleEndian) { data.replaceSubrange(4..<8, with: $0) } + try data.write(to: url) + } +} From 7f3b3ca1920e913390cfe2ce8db49ca4aa52af9d Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:23:50 -0500 Subject: [PATCH 47/89] test: replace fixed sleeps with condition waits in regression suites End-of-track, metadata and import checks now wait for the state they assert (with deadlines) instead of sleeping 100 ms to 1 s, so slow or high-latency output devices no longer flake them and a hung import fails instead of stalling CI. Playback tests skip only when no output device can start, autoplay is off while tracks load, and stem fixtures use a distinct tone per stem so the reimport check also verifies which audio each URL holds. The inference test uses the shared model gate. Co-Authored-By: Claude Opus 5.5 --- .../ImportSeparationRegressionTests.swift | 24 ++--------- .../ProductionRegressionTests.swift | 42 ++++++++++++++----- 2 files changed, 35 insertions(+), 31 deletions(-) diff --git a/Tests/IsolateTests/ImportSeparationRegressionTests.swift b/Tests/IsolateTests/ImportSeparationRegressionTests.swift index 119d7c1..061b077 100644 --- a/Tests/IsolateTests/ImportSeparationRegressionTests.swift +++ b/Tests/IsolateTests/ImportSeparationRegressionTests.swift @@ -56,21 +56,9 @@ final class ImportSeparationRegressionTests: XCTestCase { func testOppositePhaseStereoSeparatesIntoFiniteAudibleStems() async throws { let source = try audio(rightGain: -1) - let stems: [URL] - do { - stems = try await DemucsEngine.shared.splitAudio(url: source) { _ in } - } catch DemucsError.modelNotFound(let message) { - if ProcessInfo.processInfo.environment["ISOLATE_REQUIRE_MODEL"] == "1" { - XCTFail(message) - return - } - throw XCTSkip("Install the model to run inference: \(message)") - } - defer { - if let directory = stems.first?.deletingLastPathComponent(), StemCache.owns(directory) { - try? FileManager.default.removeItem(at: directory) - } - } + // Skips only when no model is installed; a model that fails to load fails the test. + let stems = try await Hardening.splitRequiringModel(source) + defer { Hardening.removeCache(stems) } XCTAssertEqual(stems.count, 4) var peak: Float = 0 for url in stems { @@ -116,11 +104,7 @@ final class ImportSeparationRegressionTests: XCTestCase { XCTAssertTrue(importer.acceptDrop([provider], context: container.mainContext, engine: engine)) XCTAssertTrue(importer.isImporting) XCTAssertFalse(importer.acceptDrop([provider], context: container.mainContext, engine: engine)) - let deadline = Date.now.addingTimeInterval(5) - while importer.isImporting, Date.now < deadline { - try await Task.sleep(for: .milliseconds(20)) - } - XCTAssertFalse(importer.isImporting) + await Hardening.finish(importer, timeout: .seconds(5)) XCTAssertNotNil(engine.errorMessage) XCTAssertEqual(try container.mainContext.fetchCount(FetchDescriptor()), 0) XCTAssertFalse(importer.acceptDrop([NSItemProvider(object: "text" as NSString)], context: container.mainContext, engine: engine)) diff --git a/Tests/IsolateTests/ProductionRegressionTests.swift b/Tests/IsolateTests/ProductionRegressionTests.swift index b86b646..7514a28 100644 --- a/Tests/IsolateTests/ProductionRegressionTests.swift +++ b/Tests/IsolateTests/ProductionRegressionTests.swift @@ -11,6 +11,8 @@ final class ProductionRegressionTests: XCTestCase { override func setUpWithError() throws { directory = FileManager.default.temporaryDirectory.appending(path: UUID().uuidString) try FileManager.default.createDirectory(at: directory, withIntermediateDirectories: true) + // Loading a track must not play through the speakers; playback tests start it themselves. + addTeardownBlock(Hardening.disableAutoPlay()) } override func tearDownWithError() throws { @@ -19,7 +21,7 @@ final class ProductionRegressionTests: XCTestCase { private func audio(_ name: String = "source.wav", seconds: Double = 0.2, sampleRate: Double = 44_100, channels: AVAudioChannelCount = 2, - amplitude: Float = 0.2) throws -> URL { + amplitude: Float = 0.2, frequency: Float = 440) throws -> URL { let url = directory.appending(path: name) let format = AVAudioFormat(commonFormat: .pcmFormatFloat32, sampleRate: sampleRate, channels: channels, interleaved: false)! @@ -27,7 +29,7 @@ final class ProductionRegressionTests: XCTestCase { buffer.frameLength = buffer.frameCapacity for channel in 0.. TrackModel { let original = try audio("original.wav", seconds: seconds) - let urls = try DemucsEngine.stemNames.map { try audio("\($0).wav", seconds: seconds) } + // A different tone per stem, so a swapped stem label changes the audio a test reads. + let urls = try zip(DemucsEngine.stemNames, Hardening.stemFrequencies).map { + try audio("\($0).wav", seconds: seconds, frequency: Float($1)) + } return TrackModel(id: original.path, title: "Regression", originalURL: original, vocalStemURL: urls[0], bassStemURL: urls[2], drumStemURL: urls[1], otherStemURL: urls[3]) } @@ -286,9 +291,10 @@ final class ProductionRegressionTests: XCTestCase { func testPlaybackStopsAtEndAndSeekingClampsSafely() async throws { let engine = AudioEngineManager() await engine.loadTrack(try track()) - if !engine.isPlaying { engine.togglePlayback() } - try await Task.sleep(for: .seconds(1)) - XCTAssertFalse(engine.isPlaying) + try Hardening.requirePlayback(engine) + // The end arrives after the output device's latency, which varies by device (AirPlay adds seconds). + let ended = await Hardening.wait(timeout: .seconds(8)) { !engine.isPlaying } + XCTAssertTrue(ended, "A 0.2 s track must stop at its end") XCTAssertEqual(engine.playbackProgress, 1) engine.seek(toPercentage: -1) XCTAssertEqual(engine.playbackProgress, 0) @@ -308,13 +314,18 @@ final class ProductionRegressionTests: XCTestCase { func testUnknownMetadataIsNotFabricatedAndCannotArriveAfterUnload() async throws { let engine = AudioEngineManager() await engine.loadTrack(try track()) - try await Task.sleep(for: .milliseconds(100)) + // The defaults equal the expected values, so first wait until the metadata read has + // finished: the probed bit depth replaces the "24-BIT PCM" placeholder. + let read = await Hardening.wait { engine.trackBitDepth == "32-BIT" } + XCTAssertTrue(read, "The metadata read never finished") XCTAssertEqual(engine.trackBPM, "BPM UNKNOWN") XCTAssertEqual(engine.trackMusicalKey, "KEY UNKNOWN") + XCTAssertEqual(engine.trackArtist, "Isolate") + XCTAssertNil(engine.albumArt) engine.unloadTrack() - try await Task.sleep(for: .milliseconds(100)) XCTAssertEqual(engine.trackTitle, "") XCTAssertNil(engine.albumArt) + // SuiteHardeningTests covers tags that are still loading when the track is unloaded. } func testImportPersistsInProvidedSwiftDataContext() async throws { @@ -331,11 +342,16 @@ final class ProductionRegressionTests: XCTestCase { try context.save() let importer = ImportCoordinator() let engine = AudioEngineManager() + // An existing entry takes the reimport branch; SuiteHardeningTests covers new entries. importer.importFiles([model.originalURL], context: context, engine: engine) - while importer.isImporting { try await Task.sleep(for: .milliseconds(20)) } + await Hardening.finish(importer) XCTAssertEqual(try context.fetchCount(FetchDescriptor()), 1) XCTAssertEqual(engine.currentTrackID, model.id) XCTAssertEqual(model.vocalStemURL, cache.appending(path: "vocals.wav")) + XCTAssertEqual(model.drumStemURL, cache.appending(path: "drums.wav")) + XCTAssertEqual(model.bassStemURL, cache.appending(path: "bass.wav")) + XCTAssertEqual(model.otherStemURL, cache.appending(path: "other.wav")) + XCTAssertEqual(try Hardening.dominantFrequency(of: model.drumStemURL), Hardening.stemFrequencies[1]) engine.unloadTrack() } @@ -389,7 +405,9 @@ final class ProductionRegressionTests: XCTestCase { XCTAssertTrue(engine.hasLoadedTrack) XCTAssertEqual(engine.currentTrackName, "RENAMED TRACK") XCTAssertEqual(engine.trackTitle, "Renamed track") - try await Task.sleep(for: .milliseconds(200)) + // The source was moved, so the read ends on fallbacks that equal the defaults. Repeat + // that read here so the engine's own request has had as long as it needs. + await Hardening.settleMetadata(for: originalURL) XCTAssertEqual(engine.trackTitle, "Renamed track", "Metadata fallback must preserve the library title") XCTAssertNil(engine.errorMessage) engine.unloadTrack() @@ -402,7 +420,9 @@ final class ProductionRegressionTests: XCTestCase { engine.updateTrackTitle(id: source.id, newTitle: "My rehearsal") XCTAssertEqual(engine.trackTitle, "My rehearsal") XCTAssertEqual(MPNowPlayingInfoCenter.default().nowPlayingInfo?[MPMediaItemPropertyTitle] as? String, "My rehearsal") - try await Task.sleep(for: .milliseconds(200)) + // Wait for the pending metadata read to land: its probe replaces the bit-depth placeholder. + let read = await Hardening.wait { engine.trackBitDepth == "32-BIT" } + XCTAssertTrue(read, "The metadata read never finished") XCTAssertEqual(engine.trackTitle, "My rehearsal") XCTAssertEqual(MPNowPlayingInfoCenter.default().nowPlayingInfo?[MPMediaItemPropertyTitle] as? String, "My rehearsal") engine.updateTrackTitle(id: "another track", newTitle: "Unrelated") From 7ad114658f466ea999093c13a502d1f5ef115042 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:23:50 -0500 Subject: [PATCH 48/89] test: make vacuous IsolateTests assertions check real behavior - Replace the Hann self-check with overlap-add through DemucsEngine.accumulate for contiguous Float32 and time-major Float16 tensors. - Assert per-chunk separation progress that never moves backwards, and fail (not skip) when an installed model cannot load. - Check that stem EQ changes the rendered level, that the limiter is wired between master EQ and the output, and that teardown removes every meter tap. - Restore the shared theme, keep autoplay off, and skip playback only without an output device. Co-Authored-By: Claude Opus 5.5 --- Tests/IsolateTests/IsolateTests.swift | 162 ++++++++++++++++++-------- 1 file changed, 114 insertions(+), 48 deletions(-) diff --git a/Tests/IsolateTests/IsolateTests.swift b/Tests/IsolateTests/IsolateTests.swift index 63653df..27029bc 100644 --- a/Tests/IsolateTests/IsolateTests.swift +++ b/Tests/IsolateTests/IsolateTests.swift @@ -1,30 +1,74 @@ import XCTest import Accelerate import AVFoundation +import CoreML import os @testable import Isolate @MainActor final class IsolateTests: XCTestCase { - - func testHannWindowCOLAProperty() { - let chunkSize = 441000 - let hopSize = 220500 - - var window = [Float](repeating: 0.0, count: chunkSize) - for i in 0.. 0 } + XCTAssertEqual(chunked.first?.totalChunks, 4, "11.25 s spans four 5 s hops") + XCTAssertEqual(chunked.map(\.currentChunk), Array(1...4), "Every chunk must report its progress") + XCTAssertEqual(updates.map(\.fraction), updates.map(\.fraction).sorted(), "Progress must never move backwards") + XCTAssertEqual(updates.last?.fraction, 1) + for stemURL in stemURLs { XCTAssertTrue(FileManager.default.fileExists(atPath: stemURL.path), "Stem file must exist on disk at \(stemURL.path)") let audioFile = try AVAudioFile(forReading: stemURL) @@ -273,15 +314,17 @@ final class IsolateTests: XCTestCase { let pL = buffer.floatChannelData![0] let pR = buffer.floatChannelData![1] + // 1 kHz sits at the mid band's centre, so the mid gain applies in full. for i in 0.. AVAudioNode? { graph.outputConnectionPoints(for: node, outputBus: 0).first?.node } + XCTAssertTrue(next(engine.timePitchNode) === engine.masterEQ) + XCTAssertTrue(next(engine.masterEQ) === engine.masterLimiter, "Master EQ must feed the peak limiter") + XCTAssertTrue(next(engine.masterLimiter) === graph.mainMixerNode, "The limiter must feed the output") + XCTAssertFalse(engine.masterLimiter.bypass) } @MainActor @@ -508,10 +576,8 @@ final class IsolateTests: XCTestCase { XCTAssertEqual(engine.currentTrackID, track.id) XCTAssertEqual(engine.currentTrackName, "SAFETY TEST SONG") - // 4. Test togglePlayback (pause / play cycle) - if !engine.isPlaying { - engine.togglePlayback() - } + // 4. Test togglePlayback (pause / play cycle); skips only without an output device + try Hardening.requirePlayback(engine) XCTAssertTrue(engine.isPlaying, "Audio engine must transition to playing without throwing 'disconnected state' error") // 5. Pause From a9351bd32adee7d8ffdae1c4868f89c7ba859309 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:24:00 -0500 Subject: [PATCH 49/89] test: cover new imports, stem order, tags, rendered EQ and device changes SuiteHardeningTests adds coverage the older suites only touched with identical fixtures: importing new files (not just reimports), stem label order through import, playback meters and ZIP entry names, ID3 title/artist/BPM/key/artwork and late metadata after unload or a newer load, channel and master EQ in rendered audio, rebuilding missing stems from the source and saving them, resuming after an output-device configuration change, and engine teardown (engine stopped, taps removed, repeated create/destroy). Co-Authored-By: Claude Opus 5.5 --- Tests/IsolateTests/SuiteHardeningTests.swift | 340 +++++++++++++++++++ 1 file changed, 340 insertions(+) create mode 100644 Tests/IsolateTests/SuiteHardeningTests.swift diff --git a/Tests/IsolateTests/SuiteHardeningTests.swift b/Tests/IsolateTests/SuiteHardeningTests.swift new file mode 100644 index 0000000..1be3b4a --- /dev/null +++ b/Tests/IsolateTests/SuiteHardeningTests.swift @@ -0,0 +1,340 @@ +import XCTest +import AVFoundation +import CoreML +import MediaPlayer +import SwiftData +@testable import Isolate + +/// Coverage for paths the older suites only touched with identical fixtures or fixed sleeps: +/// adding new tracks, stem label order, tag metadata, rendered EQ, stem recovery, +/// output-device changes and engine teardown. +@MainActor +final class SuiteHardeningTests: XCTestCase { + private var directory: URL! + + override func setUpWithError() throws { + directory = FileManager.default.temporaryDirectory.appending(path: "SuiteHardening-\(UUID().uuidString)") + try FileManager.default.createDirectory(at: directory, withIntermediateDirectories: true) + // Tests that need sound start playback themselves. + addTeardownBlock(Hardening.disableAutoPlay()) + } + + override func tearDownWithError() throws { + try FileManager.default.removeItem(at: directory) + } + + // MARK: - New imports and stem order (tests-2, tests-3) + + func testImportAddsNewTracksWithTheirOwnStems() async throws { + let container = try ModelContainer(for: TrackModel.self, configurations: ModelConfiguration(isStoredInMemoryOnly: true)) + let context = container.mainContext + let alpha = directory.appending(path: "Alpha.wav") + let beta = directory.appending(path: "Beta.wav") + try Hardening.tone(alpha, frequency: 220, amplitude: 0.21) + try Hardening.tone(beta, frequency: 220, amplitude: 0.27) + let caches = try [alpha, beta].map { try Hardening.cacheStems(for: $0) } + defer { caches.forEach { try? FileManager.default.removeItem(at: $0) } } + + let importer = ImportCoordinator() + let engine = AudioEngineManager() + importer.importFiles([alpha, beta], context: context, engine: engine) + await Hardening.finish(importer) + + XCTAssertNil(engine.errorMessage) + let tracks = try context.fetch(FetchDescriptor(sortBy: [SortDescriptor(\.title)])) + XCTAssertEqual(tracks.map(\.title), ["Alpha", "Beta"], "Each new file must become its own library entry") + for (track, (source, cache)) in zip(tracks, zip([alpha, beta], caches)) { + XCTAssertEqual(track.id, source.path) + XCTAssertEqual(track.originalURL, source) + let stems = [track.vocalStemURL, track.drumStemURL, track.bassStemURL, track.otherStemURL] + XCTAssertEqual(stems.map(\.lastPathComponent), DemucsEngine.stemNames.map { "\($0).wav" }, + "\(track.title): a stem URL is stored under the wrong label") + for (url, frequency) in zip(stems, Hardening.stemFrequencies) { + XCTAssertEqual(url.deletingLastPathComponent().standardizedFileURL, cache.standardizedFileURL) + XCTAssertEqual(try Hardening.dominantFrequency(of: url), frequency, "\(url.lastPathComponent) holds another stem's audio") + } + } + XCTAssertEqual(engine.currentTrackID, beta.path, "The last file of a batch is the one left loaded") + XCTAssertEqual(engine.trackTitle, "Beta") + engine.unloadTrack() + } + + func testLoadedStemsDriveTheirOwnChannels() async throws { + // Distinct levels per stem: a swapped file, player or mixer shows up on the wrong meter. + let amplitudes: [Float] = [0.1, 0.2, 0.3, 0.4] + let stems = try Hardening.distinctStems(in: directory.appending(path: "levels"), seconds: 3, amplitudes: amplitudes) + let engine = AudioEngineManager() + await engine.loadTrack(Hardening.track(title: "Levels", original: directory.appending(path: "levels/original.wav"), stems: stems)) + try Hardening.requirePlayback(engine) + var peaks = [Float](repeating: 0, count: 4) + let clock = ContinuousClock() + let end = clock.now + .milliseconds(700) + while clock.now < end { + try await Task.sleep(for: .milliseconds(15)) + for index in peaks.indices { peaks[index] = max(peaks[index], engine.stemPeaks[index]) } + } + for (index, name) in DemucsEngine.stemNames.enumerated() { + XCTAssertEqual(peaks[index], amplitudes[index], accuracy: 0.03, "The \(name) meter shows another stem") + } + engine.soloStem(1) + // Let tap buffers rendered before the solo drain. + try await Task.sleep(for: .milliseconds(300)) + var soloed = [Float](repeating: 0, count: 4) + let soloEnd = clock.now + .milliseconds(400) + while clock.now < soloEnd { + try await Task.sleep(for: .milliseconds(15)) + for index in soloed.indices { soloed[index] = max(soloed[index], engine.stemPeaks[index]) } + } + XCTAssertEqual(soloed[1], amplitudes[1], accuracy: 0.03, "Solo DRUMS must keep the drums file audible") + for index in [0, 2, 3] { + XCTAssertLessThan(soloed[index], 0.01, "Solo DRUMS must silence \(DemucsEngine.stemNames[index])") + } + engine.unloadTrack() + } + + func testStemArchiveNamesEachEntryAfterItsStem() throws { + let stems = try Hardening.distinctStems(in: directory.appending(path: "archive")) + let archive = directory.appending(path: "stems.zip") + try AudioExporter.archive(sources: stems.map { .init(url: $0) }, title: "Order", format: .wav, to: archive) { _ in } + let folder = directory.appending(path: "extracted") + let unzip = Process() + unzip.executableURL = URL(filePath: "/usr/bin/unzip") + unzip.arguments = ["-q", archive.path, "-d", folder.path] + try unzip.run() + unzip.waitUntilExit() + XCTAssertEqual(unzip.terminationStatus, 0) + for (name, frequency) in zip(DemucsEngine.stemNames, Hardening.stemFrequencies) { + XCTAssertEqual(try Hardening.dominantFrequency(of: folder.appending(path: "Order_\(name).wav")), frequency, + "Order_\(name).wav holds another stem's audio") + } + } + + // MARK: - Tag metadata (tests-6) + + private func taggedTrack(_ name: String, title: String, tags: Hardening.Tags) throws -> TrackModel { + let source = directory.appending(path: "\(name).wav") + try Hardening.taggedSource(source, tags: tags) + let stems = try Hardening.distinctStems(in: directory.appending(path: "\(name)-stems")) + return Hardening.track(title: title, original: source, stems: stems) + } + + func testTaggedMetadataIsReadButTheLibraryTitleWins() async throws { + let track = try taggedTrack("tagged", title: "Library Title", tags: .init()) + let engine = AudioEngineManager() + await engine.loadTrack(track) + let arrived = await Hardening.wait { engine.trackArtist == "Tag Artist" } + XCTAssertTrue(arrived, "Tag metadata never arrived") + XCTAssertEqual(engine.trackAlbum, "Tag Album") + XCTAssertEqual(engine.trackBPM, "128.0 BPM") + XCTAssertEqual(engine.trackMusicalKey, "F#m") + XCTAssertNotNil(engine.albumArt, "Embedded artwork must be shown") + XCTAssertEqual(engine.trackTitle, "Library Title", "A renamed library title outranks the tag title") + let info = MPNowPlayingInfoCenter.default().nowPlayingInfo + XCTAssertEqual(info?[MPMediaItemPropertyTitle] as? String, "Library Title") + XCTAssertEqual(info?[MPMediaItemPropertyArtist] as? String, "Tag Artist") + engine.unloadTrack() + } + + func testMetadataCannotArriveAfterUnload() async throws { + let track = try taggedTrack("late", title: "Late", tags: .init()) + let engine = AudioEngineManager() + await engine.loadTrack(track) + engine.unloadTrack() + await Hardening.settleMetadata(for: track.originalURL) + XCTAssertEqual(engine.trackTitle, "") + XCTAssertEqual(engine.trackArtist, "Isolate") + XCTAssertEqual(engine.trackBPM, "BPM UNKNOWN") + XCTAssertNil(engine.albumArt) + XCTAssertNil(MPNowPlayingInfoCenter.default().nowPlayingInfo, "An empty player must not publish Now Playing") + + // The same load left alone does deliver these tags, so the checks above are not vacuous. + await engine.loadTrack(track) + let arrived = await Hardening.wait { engine.trackArtist == "Tag Artist" } + XCTAssertTrue(arrived) + engine.unloadTrack() + } + + func testMetadataOfTheLatestTrackWins() async throws { + let first = try taggedTrack("first", title: "First", tags: .init(title: "One", artist: "First Artist", bpm: "90", key: "Am")) + let second = try taggedTrack("second", title: "Second", tags: .init(title: "Two", artist: "Second Artist", bpm: "140", key: "C", artwork: false)) + let engine = AudioEngineManager() + await engine.loadTrack(first) + await engine.loadTrack(second) + let arrived = await Hardening.wait { engine.trackArtist == "Second Artist" } + XCTAssertTrue(arrived) + // Give the replaced request time to finish, then check it changed nothing. + await Hardening.settleMetadata(for: first.originalURL) + XCTAssertEqual(engine.trackArtist, "Second Artist") + XCTAssertEqual(engine.trackBPM, "140.0 BPM") + XCTAssertEqual(engine.trackMusicalKey, "C") + XCTAssertEqual(engine.trackTitle, "Second") + XCTAssertNil(engine.albumArt, "The first track's artwork must not appear on the second") + engine.unloadTrack() + } + + // MARK: - Rendered EQ (tests-7) + + private func renderedGain(frequency: Double, eq: AudioExporter.EQ = .init(), + masterEQ: AudioExporter.EQ = .init()) throws -> Double { + let amplitude: Float = 0.05 + let source = directory.appending(path: "tone-\(Int(frequency)).wav") + if !FileManager.default.fileExists(atPath: source.path) { + try Hardening.tone(source, frequency: frequency, amplitude: amplitude, seconds: 1) + } + let destination = directory.appending(path: "eq-\(UUID().uuidString).wav") + try AudioExporter.render(sources: [.init(url: source, eq: eq)], to: destination, masterEQ: masterEQ) + // Skip the filters' settling time. + let peak = Hardening.peak(try Hardening.samples(destination).dropFirst(22_050)) + return 20 * log10(Double(peak / amplitude)) + } + + func testChannelAndMasterEQChangeTheRenderedAudio() throws { + // The mid band peaks at 1 kHz, so a 1 kHz tone receives its full gain. + XCTAssertEqual(try renderedGain(frequency: 1_000, eq: .init(mid: 12)), 12, accuracy: 0.5) + XCTAssertEqual(try renderedGain(frequency: 1_000, eq: .init(mid: -12)), -12, accuracy: 0.5) + XCTAssertEqual(try renderedGain(frequency: 1_000, masterEQ: .init(mid: 12)), 12, accuracy: 0.5, + "Master EQ must be rendered into mix exports") + // Well inside each shelf the gain approaches its setting. + XCTAssertGreaterThan(try renderedGain(frequency: 30, eq: .init(low: 12)), 9) + XCTAssertLessThan(try renderedGain(frequency: 16_000, eq: .init(high: -12)), -9) + XCTAssertGreaterThan(try renderedGain(frequency: 30, masterEQ: .init(low: 12)), 9) + // Shelves leave the mid range alone. + XCTAssertEqual(try renderedGain(frequency: 1_000, eq: .init(low: 12, high: -12)), 0, accuracy: 1) + } + + func testFlatEQRenderIsSampleIdentical() throws { + let source = directory.appending(path: "flat.wav") + try Hardening.write(source, frames: 22_050) { 0.3 * sin(Float($0) * 0.37) * cos(Float($0) * 0.0021) } + let destination = directory.appending(path: "flat-out.wav") + try AudioExporter.render(sources: [.init(url: source)], to: destination) + let input = try Hardening.samples(source) + let output = try Hardening.samples(destination) + XCTAssertEqual(output.count, input.count) + // 24-bit output: one quantisation step is about 1.2e-7. + let error = zip(input, output).reduce(Float(0)) { max($0, abs($1.0 - $1.1)) } + XCTAssertLessThan(error, 2e-7, "A flat EQ must be bypassed, not rendered") + } + + // MARK: - Stem recovery (tests-11) + + func testMissingStemsAreRebuiltFromTheSourceAndSaved() async throws { + let source = directory.appending(path: "Recovered.wav") + try Hardening.tone(source, frequency: 220, amplitude: 0.23) + let cache = try Hardening.cacheStems(for: source) + defer { try? FileManager.default.removeItem(at: cache) } + // An older cache generation that lost three of its files, as after a partial cleanup. + let stale = StemCache.root.appending(path: "stale-\(UUID().uuidString)") + let staleStems = try Hardening.distinctStems(in: stale) + for url in staleStems.dropFirst() { try FileManager.default.removeItem(at: url) } + defer { try? FileManager.default.removeItem(at: stale) } + + let store = ModelConfiguration(url: directory.appending(path: "library.store")) + let container = try ModelContainer(for: TrackModel.self, configurations: store) + let track = Hardening.track(title: "Recovered", original: source, stems: staleStems) + container.mainContext.insert(track) + try container.mainContext.save() + + let engine = AudioEngineManager() + await engine.loadTrack(track) + XCTAssertNil(engine.errorMessage) + XCTAssertTrue(engine.hasLoadedTrack) + XCTAssertEqual(engine.currentTrackID, track.id) + XCTAssertEqual(engine.trackTitle, "Recovered") + let rebuilt = [track.vocalStemURL, track.drumStemURL, track.bassStemURL, track.otherStemURL] + XCTAssertEqual(rebuilt.map(\.lastPathComponent), DemucsEngine.stemNames.map { "\($0).wav" }) + XCTAssertTrue(rebuilt.allSatisfy { $0.deletingLastPathComponent().standardizedFileURL == cache.standardizedFileURL }) + XCTAssertFalse(FileManager.default.fileExists(atPath: stale.path), "The broken generation no track uses is removed") + + // The repair must survive a relaunch, or the song is re-separated every time. + let reopened = try ModelContainer(for: TrackModel.self, configurations: store) + let saved = try XCTUnwrap(try reopened.mainContext.fetch(FetchDescriptor()).first) + XCTAssertEqual(saved.drumStemURL.standardizedFileURL, cache.appending(path: "drums.wav").standardizedFileURL) + XCTAssertEqual(saved.bassStemURL.standardizedFileURL, cache.appending(path: "bass.wav").standardizedFileURL) + engine.unloadTrack() + // The track's context belongs to this container. + withExtendedLifetime(container) {} + } + + // MARK: - Output device changes (tests-14) + + func testDeviceChangeResumesPlaybackWhereItWas() async throws { + let stems = try Hardening.distinctStems(in: directory.appending(path: "device"), seconds: 2) + let engine = AudioEngineManager() + await engine.loadTrack(Hardening.track(title: "Device", original: directory.appending(path: "device/original.wav"), stems: stems)) + try Hardening.requirePlayback(engine) + let output = try XCTUnwrap(engine.timePitchNode.engine) + engine.seek(toPercentage: 0.5) + XCTAssertTrue(engine.isPlaying) + // Connecting AirPods or changing the sample rate halts the output unit and posts this + // notification; the players keep their scheduled audio. (Switching this engine's output + // device on a Mac with two outputs behaves that way. engine.stop() would also complete + // the players' schedules, which a device change does not do.) + output.pause() + XCTAssertTrue(engine.isPlaying) + NotificationCenter.default.post(name: .AVAudioEngineConfigurationChange, object: output) + let resumed = await Hardening.wait(timeout: .seconds(2)) { engine.isPlaying && engine.isOutputRunning } + XCTAssertTrue(resumed, "Playback must resume on the new device") + XCTAssertEqual(engine.playbackProgress, 0.5, accuracy: 0.15, "Playback must resume where it was, not restart") + // The rescheduled players still reach the end of the track and stop. + let ended = await Hardening.wait(timeout: .seconds(5)) { !engine.isPlaying } + XCTAssertTrue(ended) + XCTAssertEqual(engine.playbackProgress, 1) + engine.unloadTrack() + } + + func testDeviceChangeWithoutATrackStaysIdle() async throws { + let engine = AudioEngineManager() + let output = try XCTUnwrap(engine.timePitchNode.engine) + NotificationCenter.default.post(name: .AVAudioEngineConfigurationChange, object: output) + // The handler hops to the main actor; let it run. + for _ in 0..<10 { await Task.yield() } + try await Task.sleep(for: .milliseconds(50)) + XCTAssertFalse(engine.isPlaying) + XCTAssertFalse(engine.isOutputRunning) + XCTAssertNil(engine.errorMessage) + } + + // MARK: - Teardown (tests-19) + + func testTeardownStopsTheEngineAndRemovesMeterTaps() async throws { + let stems = try Hardening.distinctStems(in: directory.appending(path: "teardown"), seconds: 2) + var manager: AudioEngineManager? = AudioEngineManager() + await manager!.loadTrack(Hardening.track(title: "Teardown", original: directory.appending(path: "teardown/original.wav"), stems: stems)) + manager!.togglePlayback() + let output = try XCTUnwrap(manager!.timePitchNode.engine) + let stemMixers = [manager!.vocalEQ, manager!.drumEQ, manager!.bassEQ, manager!.otherEQ].compactMap { + output.outputConnectionPoints(for: $0, outputBus: 0).first?.node + } + XCTAssertEqual(stemMixers.count, 4) + weak var released: AudioEngineManager? + released = manager + manager = nil + let gone = await Hardening.wait(timeout: .seconds(2)) { released == nil } + XCTAssertTrue(gone, "The manager must be released") + XCTAssertFalse(output.isRunning, "Teardown must stop the engine") + // A tap left behind would make a second install on the same bus raise. + for node in [output.mainMixerNode] + stemMixers { + node.installTap(onBus: 0, bufferSize: 1024, format: nil) { _, _ in } + node.removeTap(onBus: 0) + } + } + + func testManyManagersCanBeCreatedAndDestroyed() async throws { + // The macOS 15 CI crash appeared while managers were torn down; repeat it with and without audio. + let stems = try Hardening.distinctStems(in: directory.appending(path: "stress"), seconds: 1) + let track = Hardening.track(title: "Stress", original: directory.appending(path: "stress/original.wav"), stems: stems) + for round in 0..<24 { + weak var released: AudioEngineManager? + do { + let manager = AudioEngineManager() + released = manager + if round % 3 == 0 { + await manager.loadTrack(track) + manager.togglePlayback() + } + } + let gone = await Hardening.wait(timeout: .seconds(2)) { released == nil } + XCTAssertTrue(gone, "Manager \(round) was not released") + } + } +} From 789f9631dbfdbf5d0ce4bedce0c62b3120f10fc6 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:24:00 -0500 Subject: [PATCH 50/89] test: check model output across chunk boundaries and stem order With the model installed, a 12 s melody's four stems must add back to the source in every second (the reference model measured 39.5-42.6 dB; a misplaced hop sums to other notes), and a low bass line must land in bass.wav. Both skip only when no model is installed. Co-Authored-By: Claude Opus 5.5 --- Tests/IsolateTests/HardeningModelTests.swift | 87 ++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 Tests/IsolateTests/HardeningModelTests.swift diff --git a/Tests/IsolateTests/HardeningModelTests.swift b/Tests/IsolateTests/HardeningModelTests.swift new file mode 100644 index 0000000..fe9c8aa --- /dev/null +++ b/Tests/IsolateTests/HardeningModelTests.swift @@ -0,0 +1,87 @@ +import XCTest +import AVFoundation +@testable import Isolate + +/// Inference checks that need the installed model. They skip only when no model is +/// installed (and fail then too with ISOLATE_REQUIRE_MODEL=1); a model that is present +/// but cannot load fails them. +@MainActor +final class HardeningModelTests: XCTestCase { + private var directory: URL! + + override func setUpWithError() throws { + directory = FileManager.default.temporaryDirectory.appending(path: "HardeningModel-\(UUID().uuidString)") + try FileManager.default.createDirectory(at: directory, withIntermediateDirectories: true) + } + + override func tearDownWithError() throws { + try FileManager.default.removeItem(at: directory) + } + + /// A melody of 250 ms notes with harmonics, so no two 5 s hops look alike. + private func melody(_ url: URL, seconds: Double) throws { + var state: UInt64 = 0x2545_F491_4F6C_DD1D + let notes = (0.. Double in + state = state &* 6_364_136_223_846_793_005 &+ 1_442_695_040_888_963_407 + return 220 * pow(2, Double(state >> 60) / 12) + } + try Hardening.write(url, frames: Int(44_100 * seconds)) { frame in + let note = notes[min(notes.count - 1, frame / 11_025)] + let t = Double(frame) / 44_100 + let local = Double(frame % 11_025) / 11_025 + let envelope = min(1, local * 20) * (1 - 0.6 * local) + let wave = sin(2 * .pi * note * t) + 0.5 * sin(4 * .pi * note * t) + 0.25 * sin(6 * .pi * note * t) + return Float(0.2 * envelope * wave) + } + } + + func testSeparationReconstructsTheMixAcrossChunkBoundaries() async throws { + // 12 s spans four overlapping chunks. A dropped, repeated or shifted hop would put + // the wrong notes in the stems' sum for that stretch. + let source = directory.appending(path: "melody.wav") + try melody(source, seconds: 12) + let stems = try await Hardening.splitRequiringModel(source) + defer { Hardening.removeCache(stems) } + let original = try Hardening.samples(source) + let separated = try stems.map { try Hardening.samples($0) } + XCTAssertTrue(separated.allSatisfy { $0.count == original.count }, "Every stem must match the source length") + for second in 0..<12 { + let range = (second * 44_100)..<((second + 1) * 44_100) + var signal = 0.0, error = 0.0 + for frame in range { + let sum = separated.reduce(Float(0)) { $0 + $1[frame] } + signal += Double(original[frame] * original[frame]) + error += Double((original[frame] - sum) * (original[frame] - sum)) + } + // The reference model measured 39.5-42.6 dB per second on this fixture; a hop + // written in the wrong place sums to other notes, near 0 dB. + let snr = 10 * log10(signal / max(error, 1e-12)) + XCTAssertGreaterThan(snr, 20, "Stems do not add back to the source in second \(second)") + } + } + + func testLowBassLineSeparatesIntoTheBassStem() async throws { + // Swapped source labels (a conversion with another output order, or a mapping slip) + // would put this in another file. Shape checks cannot see that. + let source = directory.appending(path: "bassline.wav") + try Hardening.write(source, frames: 44_100 * 6) { frame in + let local = Double(frame % 22_050) / 44_100 + let note = [55.0, 73.4, 65.4, 49.0][(frame / 22_050) % 4] + let t = Double(frame) / 44_100 + let wave = sin(2 * .pi * note * t) + 0.3 * sin(4 * .pi * note * t) + return Float(0.35 * exp(-local * 3) * min(1, local * 200) * wave) + } + let stems = try await Hardening.splitRequiringModel(source) + defer { Hardening.removeCache(stems) } + XCTAssertEqual(stems.map(\.lastPathComponent), DemucsEngine.stemNames.map { "\($0).wav" }) + let levels = try stems.map { url -> Double in + let samples = try Hardening.samples(url) + return sqrt(samples.reduce(0.0) { $0 + Double($1 * $1) } / Double(samples.count)) + } + // With the reference model, bass.wav measured over 100 times the RMS of any other stem. + for index in [0, 1, 3] { + XCTAssertGreaterThan(levels[2], levels[index] * 10, + "bass.wav must hold the bass line, not \(DemucsEngine.stemNames[index]).wav") + } + } +} From 0b27ec5122b6a0fbcfbdf221cb79beb610733875 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:24:00 -0500 Subject: [PATCH 51/89] test(ui): wait for state changes and cover new export, loop and Escape behavior Reads after a click or key press now wait on predicates, and dismissals wait for the element to disappear. The import flow fails fast with the toast text when an import errors or ends without a track. New checks: EXPORT is announced as Export stems (Cancel export while exporting), L and option-L set and clear the loop, the search placeholder reads SEARCH LIBRARY..., the haptics switch toggles when clicked at its centre, theme and format chips report selection where the platform exposes it, and Escape on Settings or About opened over a running separation closes the card without cancelling the import. Co-Authored-By: Claude Opus 5.5 --- UITests/IsolateUITests/IsolateUITests.swift | 239 ++++++++++++++++---- 1 file changed, 195 insertions(+), 44 deletions(-) diff --git a/UITests/IsolateUITests/IsolateUITests.swift b/UITests/IsolateUITests/IsolateUITests.swift index f383ac5..d01a2f8 100644 --- a/UITests/IsolateUITests/IsolateUITests.swift +++ b/UITests/IsolateUITests/IsolateUITests.swift @@ -22,12 +22,83 @@ final class IsolateUITests: XCTestCase { add(attachment) } + // MARK: - Waits + + /// UI state lags the click or key press that changed it, so wait for it rather than + /// reading it at once. Returns immediately when the state is already there. + private func waitFor(_ element: XCUIElement, _ format: String, _ arguments: [Any] = [], + timeout: TimeInterval = 3) -> Bool { + let predicate = NSPredicate(format: format, argumentArray: arguments) + if predicate.evaluate(with: element) { return true } + let expectation = XCTNSPredicateExpectation(predicate: predicate, object: element) + return XCTWaiter.wait(for: [expectation], timeout: timeout) == .completed + } + + private func expectValue(_ element: XCUIElement, _ value: String, _ message: String = "", + file: StaticString = #filePath, line: UInt = #line) { + let found = waitFor(element, "value == %@", [value]) + XCTAssertTrue(found, "\(message) Expected \(value), found \(element.exists ? String(describing: element.value ?? "nil") : "no element")", + file: file, line: line) + } + + private func expectGone(_ element: XCUIElement, _ message: String, timeout: TimeInterval = 3, + file: StaticString = #filePath, line: UInt = #line) { + XCTAssertTrue(waitFor(element, "exists == false", timeout: timeout), message, file: file, line: line) + } + + private func expectEnabled(_ element: XCUIElement, _ enabled: Bool, _ message: String = "", + file: StaticString = #filePath, line: UInt = #line) { + XCTAssertTrue(waitFor(element, "enabled == %@", [NSNumber(value: enabled)]), message, file: file, line: line) + } + + /// Waits for the imported row. An import that ends in the error toast (a missing model, + /// for example) or ends without a row (cancelled) fails at once instead of waiting out + /// the timeout. + private func waitForImportedRow(_ row: XCUIElement, in app: XCUIApplication, timeout: TimeInterval = 120) { + let toast = app.buttons["Dismiss error"] + let progress = [app.buttons["CANCEL IMPORT"], app.buttons["CANCELLING…"]] + var sawProgress = false + var progressGoneSince: Date? + let deadline = Date().addingTimeInterval(timeout) + while Date() < deadline { + if row.waitForExistence(timeout: 1) { return } + if toast.exists { + capture(app, name: "Import error") + let message = app.staticTexts.matching(NSPredicate(format: "label CONTAINS[c] %@", "import")).firstMatch + XCTFail("Import showed an error instead of adding the track: \(message.exists ? message.label : "see the Import error screenshot")") + return + } + if progress.contains(where: \.exists) { + sawProgress = true + progressGoneSince = nil + } else if sawProgress { + let gone = progressGoneSince ?? Date() + progressGoneSince = gone + if Date().timeIntervalSince(gone) > 5 { + capture(app, name: "Import ended without a track") + XCTFail("The separation ended without adding the track; was it cancelled?") + return + } + } + } + XCTFail("Import must publish the track into the library") + } + + // MARK: - Flows + func testEmptyLibraryAndExportGuards() { let app = launch() - XCTAssertTrue(app.buttons["Play"].exists) - XCTAssertFalse(app.buttons["Play"].isEnabled) + let play = app.buttons["Play"] + XCTAssertTrue(play.waitForExistence(timeout: 5)) + XCTAssertFalse(play.isEnabled) + let export = app.buttons["Export stems"] + XCTAssertTrue(export.exists, "VoiceOver must announce the EXPORT control as Export stems") + XCTAssertFalse(export.isEnabled) + XCTAssertFalse(app.buttons["Loop"].isEnabled, "Loop controls need a loaded track") app.menuBars.menuBarItems["File"].click() - XCTAssertFalse(app.menuItems["Export Stems…"].isEnabled) + let exportStems = app.menuItems["Export Stems…"] + XCTAssertTrue(exportStems.waitForExistence(timeout: 3)) + XCTAssertFalse(exportStems.isEnabled) XCTAssertFalse(app.menuItems["Export Mix…"].isEnabled) app.typeKey(.escape, modifierFlags: []) capture(app, name: "Empty player — dark") @@ -36,41 +107,83 @@ final class IsolateUITests: XCTestCase { func testSettingsThemesAndKeyboardDismissal() { let app = launch() app.typeKey(",", modifierFlags: .command) - XCTAssertTrue(app.staticTexts["SYSTEM PREFERENCES"].waitForExistence(timeout: 3)) - app.buttons["NOTHING LIGHT"].click() + let preferences = app.staticTexts["SYSTEM PREFERENCES"] + XCTAssertTrue(preferences.waitForExistence(timeout: 3)) + let dark = app.buttons["NOTHING DARK"] + let light = app.buttons["NOTHING LIGHT"] + let flac = app.buttons["FLAC"] + // The chips mark their choice with the selected trait. If this macOS does not surface + // it, say so in the report instead of failing on the platform. + let exposesSelection = dark.isSelected + if !exposesSelection { + XCTContext.runActivity(named: "Settings chips do not report AXSelected; selection not asserted") { _ in } + } + light.click() + if exposesSelection { + XCTAssertTrue(waitFor(light, "selected == true"), "Clicking NOTHING LIGHT must select it") + XCTAssertFalse(dark.isSelected) + } capture(app, name: "Settings — light") - app.buttons["FLAC"].click() + flac.click() + if exposesSelection { + XCTAssertTrue(waitFor(flac, "selected == true"), "Clicking FLAC must make it the stem export format") + XCTAssertFalse(app.buttons["WAV 24B"].isSelected) + } + // Switches toggle when clicked at their centre. Hosted tests start with haptics off. + let haptics = app.buttons["Haptic feedback"] + expectValue(haptics, "Off") + haptics.click() + expectValue(haptics, "On", "Clicking the switch's centre must turn it on") + haptics.click() + expectValue(haptics, "Off", "Clicking the switch's centre again must turn it off") app.typeKey(.escape, modifierFlags: []) - XCTAssertFalse(app.staticTexts["SYSTEM PREFERENCES"].exists) + expectGone(preferences, "Escape must close Settings") capture(app, name: "Empty player — light") app.typeKey(",", modifierFlags: .command) - app.buttons["NOTHING DARK"].click() + XCTAssertTrue(preferences.waitForExistence(timeout: 3)) + if exposesSelection { + XCTAssertTrue(flac.isSelected, "The chosen export format must still be selected") + } + dark.click() + if exposesSelection { + XCTAssertTrue(waitFor(dark, "selected == true")) + } app.buttons["SHORTCUTS"].click() - XCTAssertTrue(app.staticTexts["Export Current Mix as WAV"].exists) + XCTAssertTrue(app.staticTexts["Export Current Mix as WAV"].waitForExistence(timeout: 3)) + XCTAssertTrue(app.staticTexts["Clear A-B Loop Markers"].exists, "The shortcut list must include ⌥L") capture(app, name: "Keyboard shortcuts") } func testImportDialogCanBeCancelled() { let app = launch(theme: "light") app.typeKey("o", modifierFlags: .command) - XCTAssertTrue(app.buttons["Cancel"].waitForExistence(timeout: 5)) + let cancel = app.buttons["Cancel"] + XCTAssertTrue(cancel.waitForExistence(timeout: 5)) app.typeKey(.escape, modifierFlags: []) - XCTAssertFalse(app.buttons["Cancel"].exists) + expectGone(cancel, "Escape must close the open panel") XCTAssertFalse(app.buttons["Play"].isEnabled) } func testCommandsReopenClosedMainWindow() { let app = launch() + let play = app.buttons["Play"] + XCTAssertTrue(play.waitForExistence(timeout: 5)) app.typeKey("w", modifierFlags: .command) + expectGone(play, "⌘W must close the main window") app.typeKey(",", modifierFlags: .command) - XCTAssertTrue(app.staticTexts["SYSTEM PREFERENCES"].waitForExistence(timeout: 5)) + let preferences = app.staticTexts["SYSTEM PREFERENCES"] + XCTAssertTrue(preferences.waitForExistence(timeout: 5)) app.typeKey(.escape, modifierFlags: []) + expectGone(preferences, "Escape must close Settings") app.typeKey("w", modifierFlags: .command) + expectGone(play, "⌘W must close the reopened window") app.typeKey("o", modifierFlags: .command) - XCTAssertTrue(app.buttons["Cancel"].waitForExistence(timeout: 5)) + let cancel = app.buttons["Cancel"] + XCTAssertTrue(cancel.waitForExistence(timeout: 5)) app.typeKey(.escape, modifierFlags: []) - XCTAssertTrue(app.buttons["Play"].waitForExistence(timeout: 3)) - XCTAssertFalse(app.buttons["Play"].isEnabled) + expectGone(cancel, "Escape must close the open panel") + XCTAssertTrue(play.waitForExistence(timeout: 3)) + XCTAssertFalse(play.isEnabled) } func testImportPlaybackRenameExportAndDelete() throws { @@ -95,13 +208,14 @@ final class IsolateUITests: XCTestCase { // Exercise the preference and avoid racing a two-second auto-playing // fixture's completion while clicking a changing Play/Pause button. app.typeKey(",", modifierFlags: .command) + let preferences = app.staticTexts["SYSTEM PREFERENCES"] let autoPlay = app.buttons["Auto-play on select"] XCTAssertTrue(autoPlay.waitForExistence(timeout: 3)) XCTAssertEqual(autoPlay.value as? String, "On") autoPlay.click() - let autoPlayOff = XCTNSPredicateExpectation(predicate: NSPredicate(format: "value == %@", "Off"), object: autoPlay) - XCTAssertEqual(XCTWaiter.wait(for: [autoPlayOff], timeout: 2), .completed, "Clicking the switch's center must turn auto-play off") + expectValue(autoPlay, "Off", "Clicking the switch's center must turn auto-play off") app.typeKey(.escape, modifierFlags: []) + expectGone(preferences, "Escape must close Settings") app.typeKey("o", modifierFlags: .command) let openButton = app.windows["open-panel"].buttons["Open"] XCTAssertTrue(openButton.waitForExistence(timeout: 5)) @@ -109,66 +223,99 @@ final class IsolateUITests: XCTestCase { app.typeText(source.path) app.typeKey(.return, modifierFlags: []) openButton.click() + + // Escape on a card opened over the separation closes that card and never cancels the + // import. Checked only while the separation is still running when each card opens. + let cancelImport = app.buttons["CANCEL IMPORT"] + if cancelImport.waitForExistence(timeout: 5) { + app.typeKey(",", modifierFlags: .command) + if preferences.waitForExistence(timeout: 3) { + app.typeKey(.escape, modifierFlags: []) + expectGone(preferences, "Escape must close Settings opened over the separation") + XCTAssertFalse(app.buttons["CANCELLING…"].exists, "Escape on Settings must not cancel the separation") + } + } + if cancelImport.exists { + app.menuBars.menuBarItems["Isolate"].click() + app.menuItems["About Isolate"].click() + let about = app.staticTexts["4-STEM ON-DEVICE AUDIO SEPARATION"] + if about.waitForExistence(timeout: 3) { + app.typeKey(.escape, modifierFlags: []) + expectGone(about, "Escape must close About opened over the separation") + XCTAssertFalse(app.buttons["CANCELLING…"].exists, "Escape on About must not cancel the separation") + } + } + + // A cancelled import adds no row, so this also proves the Escapes above left it running. let actions = app.buttons["Actions for UI Workflow"] - XCTAssertTrue(actions.waitForExistence(timeout: 120), "Import must publish the track into the library") + waitForImportedRow(actions, in: app) let librarySummary = app.descendants(matching: .any)["library-summary"] - let statisticsReady = XCTNSPredicateExpectation( - predicate: NSPredicate(format: "label CONTAINS %@", "MB"), object: librarySummary) - XCTAssertEqual(XCTWaiter.wait(for: [statisticsReady], timeout: 5), .completed, - "Library statistics should reflect the imported audio before deletion") + XCTAssertTrue(waitFor(librarySummary, "label CONTAINS %@", ["MB"], timeout: 5), + "Library statistics should reflect the imported audio before deletion") app.activate() - XCTAssertTrue(app.buttons["Play"].waitForExistence(timeout: 3)) + let play = app.buttons["Play"] + XCTAssertTrue(play.waitForExistence(timeout: 3)) + let export = app.buttons["Export stems"] + XCTAssertTrue(export.exists, "VoiceOver must announce the EXPORT control as Export stems") + expectEnabled(export, true, "EXPORT must be available once a track is loaded") + let loop = app.buttons["Loop"] app.typeKey("l", modifierFlags: []) - app.buttons["Play"].click() + expectValue(loop, "On", "L must turn the loop on") + play.click() XCTAssertTrue(app.buttons["Pause"].waitForExistence(timeout: 3)) app.buttons["Pause"].click() + XCTAssertTrue(play.waitForExistence(timeout: 3)) + app.typeKey("l", modifierFlags: .option) + expectValue(loop, "Off", "⌥L must clear the loop markers") let stems = ["VOCALS", "DRUMS", "BASS", "OTHER"] for selectedStem in stems { app.buttons["Solo \(selectedStem)"].click() for stem in stems { - XCTAssertEqual(app.buttons["Solo \(stem)"].value as? String, - stem == selectedStem ? "On" : "Off", - "Solo should make only the selected stem active") + expectValue(app.buttons["Solo \(stem)"], stem == selectedStem ? "On" : "Off", + "Solo should make only the selected stem active") } } app.buttons["Solo OTHER"].click() for stem in stems { - XCTAssertEqual(app.buttons["Solo \(stem)"].value as? String, "Off") + expectValue(app.buttons["Solo \(stem)"], "Off") app.buttons["Mute \(stem)"].click() - XCTAssertEqual(app.buttons["Mute \(stem)"].value as? String, "On") + expectValue(app.buttons["Mute \(stem)"], "On") app.buttons["Mute \(stem)"].click() - XCTAssertEqual(app.buttons["Mute \(stem)"].value as? String, "Off") + expectValue(app.buttons["Mute \(stem)"], "Off") } // Text entry must not accidentally invoke the mixer's unmodified shortcuts. let search = app.textFields["Search library"] + XCTAssertEqual(search.placeholderValue, "SEARCH LIBRARY...") search.click() search.typeText("vadbo1234") - XCTAssertTrue(app.staticTexts["NO MATCHING TRACKS"].exists) + XCTAssertTrue(app.staticTexts["NO MATCHING TRACKS"].waitForExistence(timeout: 3)) for stem in stems { XCTAssertEqual(app.buttons["Solo \(stem)"].value as? String, "Off") XCTAssertEqual(app.buttons["Mute \(stem)"].value as? String, "Off") } app.buttons["Clear library search"].click() search.typeKey(.return, modifierFlags: []) - XCTAssertTrue(app.buttons["Actions for UI Workflow"].exists) + XCTAssertTrue(actions.waitForExistence(timeout: 3)) app.typeKey("v", modifierFlags: []) - XCTAssertEqual(app.buttons["Mute VOCALS"].value as? String, "On") + expectValue(app.buttons["Mute VOCALS"], "On", "V must mute vocals") app.typeKey("r", modifierFlags: []) - XCTAssertEqual(app.buttons["Mute VOCALS"].value as? String, "Off") + expectValue(app.buttons["Mute VOCALS"], "Off", "R must reset the mix") capture(app, name: "Imported track and mixer") actions.click() - app.buttons["[ RENAME ]"].click() + let rename = app.buttons["[ RENAME ]"] + XCTAssertTrue(rename.waitForExistence(timeout: 3)) + rename.click() let title = app.textFields["Track Title"] XCTAssertTrue(title.waitForExistence(timeout: 3)) title.click() app.typeKey("a", modifierFlags: .command) title.typeText("Renamed UI Track") - XCTAssertEqual(title.value as? String, "Renamed UI Track") + expectValue(title, "Renamed UI Track") app.buttons["SAVE"].click() XCTAssertTrue(app.buttons["Actions for Renamed UI Track"].waitForExistence(timeout: 3)) @@ -183,6 +330,9 @@ final class IsolateUITests: XCTestCase { app.typeText(directory.path) app.typeKey(.return, modifierFlags: []) saveButton.click() + // From the start of the render until COMPLETED clears (about 2 s), EXPORT cancels instead. + XCTAssertTrue(app.buttons["Cancel export"].waitForExistence(timeout: 3), + "VoiceOver must announce the EXPORT control as Cancel export while exporting") let exported = directory.appending(path: "Renamed UI Track_Mix.wav") let written = XCTNSPredicateExpectation(predicate: NSPredicate { _, _ in FileManager.default.fileExists(atPath: exported.path) @@ -191,22 +341,23 @@ final class IsolateUITests: XCTestCase { let mix = try AVAudioFile(forReading: exported) XCTAssertEqual(mix.length, 88_200) XCTAssertEqual(mix.fileFormat.settings[AVLinearPCMBitDepthKey] as? Int, 24) + XCTAssertTrue(export.waitForExistence(timeout: 10), "EXPORT must return to Export stems after the export") // Export reveals its file in Finder; return to the tested app for deletion. app.activate() app.menuBars.menuBarItems["File"].click() - let exportReady = XCTNSPredicateExpectation(predicate: NSPredicate(format: "enabled == true"), - object: app.menuItems["Export Mix…"]) - XCTAssertEqual(XCTWaiter.wait(for: [exportReady], timeout: 5), .completed) + XCTAssertTrue(waitFor(app.menuItems["Export Mix…"], "enabled == true", timeout: 5)) app.typeKey(.escape, modifierFlags: []) app.buttons["Actions for Renamed UI Track"].click() - app.buttons["[ DELETE ]"].click() + let delete = app.buttons["[ DELETE ]"] + XCTAssertTrue(delete.waitForExistence(timeout: 3)) + delete.click() XCTAssertTrue(app.staticTexts["DELETE TRACK?"].waitForExistence(timeout: 3)) app.buttons["DELETE"].click() - XCTAssertFalse(app.buttons["Play"].isEnabled) - XCTAssertFalse(app.buttons["Actions for Renamed UI Track"].exists) - XCTAssertEqual(librarySummary.label, "0 tracks", - "Deleting the final track must clear its displayed size and duration") + expectEnabled(play, false, "Deleting the loaded track must unload it") + expectGone(app.buttons["Actions for Renamed UI Track"], "The deleted track must leave the library") + XCTAssertTrue(waitFor(librarySummary, "label == %@", ["0 tracks"]), + "Deleting the final track must clear its displayed size and duration") XCTAssertEqual(try Data(contentsOf: source), originalBytes, "Deleting a library track must preserve source audio") capture(app, name: "Library after safe deletion") } From 9972c88e7dd1dab2c61dc9299286ba857ff019c1 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:25:35 -0500 Subject: [PATCH 52/89] docs: describe the current engine, import transaction and library store AUDIO_ENGINE.md covers the surround downmix, truncated-decode checks, the device-sized synchronized start with its retry, engine-level pause and idle, loop rules, whole-buffer metering, and the export changes: shared stem gain, limiter alignment, the time/pitch tail, stored and UTF-8-flagged ZIPs, staged publication and filename rules. ARCHITECTURE.md adds the iCloud download, staging sweep, disk-space preflight, cancellable shared model load and idle release to the import transaction, the quit confirmation, and the explicit Library.store with its legacy import, backups and schema rule. Co-Authored-By: Claude Opus 5.5 --- ARCHITECTURE.md | 55 ++++++++++++++++++++++++++++++------------------- AUDIO_ENGINE.md | 39 +++++++++++++++++++++++------------ 2 files changed, 60 insertions(+), 34 deletions(-) diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index 9af431a..7f2e661 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -6,41 +6,54 @@ Isolate is an Apple Silicon macOS app using SwiftUI, SwiftData, AVFoundation, Co | Component | Responsibility | | --- | --- | -| `IsolateApp` / `ContentView` | Main window, commands, shared engine, modal state, SwiftData context | -| `ImportCoordinator` | File selection, ordered drops, sequential batch imports, persistence | -| `DemucsEngine` actor | Exclusive separation, model loading, inference, overlap reconstruction | -| `StreamingAudio` | Bounded decode/resampling, normalization statistics, reflected windows | -| `StemCache` | Content keys, cache validation, staged publication and ownership checks | -| `AudioEngineManager` (`@MainActor`) | Playback graph, controls, metadata tasks, export snapshots | +| `IsolateApp` / `ContentView` | Main window, commands, shared engine, modal state, SwiftData container | +| `IsolateAppDelegate` | Confirms quitting during a separation or export; waits for a cancelled separation to clean up | +| `ImportCoordinator` | File and folder selection, ordered drops, sequential batch imports, batch progress, failure summaries, persistence | +| `DemucsEngine` actor | Exclusive separation, shared model load and idle release, inference, overlap reconstruction | +| `StreamingAudio` | Bounded decode, downmix and resampling, length checks, normalization statistics, reflected windows, iCloud Drive downloads | +| `StemCache` | Content keys, cache validation, disk-space preflight, staged publication, abandoned-staging sweep, ownership checks | +| `AudioEngineManager` (`@MainActor`) | Playback graph, synchronized starts, controls, metadata tasks, export snapshots | | `AudioMeterProcessor` | Tap-local FFT, spectrum, waveform and peak readings | -| `AudioExporter` | Independent offline graph, encoding, ZIP, destination replacement | -| `TrackModel` | SwiftData record for source identity, user title, date and stem paths | -| `ThemeManager` / `AppSettings` | Persisted appearance and application preferences | +| `AudioExporter` | Independent offline graph, peak-safe stem encoding, ZIP, destination replacement | +| `TrackModel` / `LibraryStore` | SwiftData record for source identity, user title, date and stem paths; the library store, its recovery and the legacy import | +| `ThemeManager` / `AppSettings` | Appearance tokens, Increase Contrast, persisted preferences | | `NowPlayingManager` / `MenuBarManager` | System media controls, metadata, optional status item | +| `AppMoveHelper` | Offers to move a copy opened from a disk image, including a translocated one, into Applications | ## Import transaction -1. Reserve import state before suspending; one batch processes files sequentially. -2. Hash source bytes plus a pipeline version. Reuse only complete, consistent caches. -3. Decode a float WAV original into a temporary cache directory, computing mono mean and standard deviation in a streaming pass. -4. Process reflected ten-second windows at five-second hops. Accumulate only the active overlap; write finished hops immediately. -5. Close and validate the four stems and original, then publish the directory. Cancellation/failure removes the unfinished generation. -6. Install validated audio handles into the player; insert/save the SwiftData record. Save errors remain visible. +1. Reserve import state before suspending. Dropped or chosen folders expand to supported audio files off the main actor, in Finder order and without duplicates, and iCloud Drive placeholders in the batch start downloading. Files are processed one at a time. +2. Take the single separation slot and sweep `.partial-*` and `.backup-*` folders left in the cache by an interrupted run. The same sweep runs at launch, and is skipped while a separation is running. +3. If the source is an evicted iCloud Drive file, request it and wait, cancellably, with no invented percentage. Without a network connection the import fails after about two seconds with a clear message. +4. Hash the source bytes with the pipeline version (`Isolate-streaming-v4`). Reuse only complete, consistent caches. +5. Before loading the model, compare the space the result needs (frames × 8 bytes × 5 files, plus 64 MiB) with the volume's available capacity, and fail with the numbers if it is short. The check is skipped when the length or capacity is unknown. +6. Wait for the shared model load. Cancelling the import ends the wait at once; the load finishes in the background and the next import reuses it. +7. Decode a float WAV original into a `.partial-` staging directory, computing the mono mean and standard deviation in the same streaming pass. +8. Process reflected ten-second windows at five-second hops. Accumulate only the active overlap and write finished hops immediately. +9. Close and validate the four stems and the original, then publish the directory, moving any invalid existing cache aside first. Cancellation or failure removes the unfinished generation. +10. Install the validated audio into the player and insert or update the SwiftData record. A reimport deletes the stem folder it replaced when the cache owns it and no other entry references it. Failures are collected into one summary for the batch; save errors take priority. +11. Release the model 60 seconds after the last separation. A batch keeps it loaded, because each file starts before the timer fires. -Memory for input/output audio is bounded by chunk size rather than track length. Core ML memory use is separate and depends on the model/runtime. Temporary and final disk usage still scales with track length. +Memory for input and output audio is bounded by chunk size rather than track length. Core ML memory is separate and depends on the model and runtime; on the development Mac it measured 1.6–2.7 GB after inference. Temporary and final disk use still scale with track length. ## Playback and UI safety -The audio graph and observable UI state belong to the main actor. Each meter tap owns its mutable FFT state; value snapshots cross back to the UI. Playback completion and metadata tasks carry generation IDs so cancelled or replaced tracks cannot update current state. Remote media callbacks enqueue main-actor work. +The audio graph and observable UI state belong to the main actor. Each meter tap owns its mutable FFT state; value snapshots cross back to the UI. Playback completion and metadata tasks carry generation IDs so cancelled or replaced tracks cannot update current state. Artwork decoding and the source-format probe run off the main actor. Remote media callbacks enqueue main-actor work. -Exports snapshot the selected files and controls and use an independent graph on a worker task. Library deletion is blocked while exporting. Existing output files are replaced only after the rendered file/archive has been created successfully. +Exports snapshot the selected files and controls before the save panel opens, check afterwards that the same track is still loaded, and render on an independent graph in a worker task that can be cancelled. Library deletion is blocked while exporting or separating. Existing output files are replaced only after the rendered file or archive is complete. -The app uses one logical main window. Hosted tests and `-ui-testing` launches use separate preferences, an in-memory library, and a temporary stem cache. +Quitting asks for confirmation while a separation or export runs. Confirming during a separation cancels it and waits up to 15 seconds for its temporary files to be removed; confirming during an export quits at once, and because the exporter stages its output in the volume's item-replacement directory, nothing partial is left in the destination folder. -Track renaming uses a native sheet so its text field can accept keyboard focus while the player is blocked. Decorative corner overlays do not receive pointer events; disabled mixer controls stop participating in keyboard focus. +The app uses one logical main window; automatic window tabbing is disabled. The menu bar item reopens a closed window through the scene's `openWindow`. Hosted tests and `-ui-testing` launches use separate preferences, an in-memory library, and a temporary stem cache. + +Track renaming uses a native sheet so its text field can accept keyboard focus while the player is blocked. Decorative corner overlays do not receive pointer events; disabled mixer controls stop participating in keyboard focus. While About, Settings or the delete card covers the separation progress, its cancel button has no keyboard shortcut, so Escape closes the card on top. ## Files and persistence -Source paths identify library entries; identical bytes at different paths may share a cache. Deletion checks both cache ownership and remaining library references. External source audio is never deleted. The app is not App Sandbox enabled; security-scoped access is still balanced for URLs provided by system pickers. +The library is an explicit SwiftData store at `~/Library/Application Support/Isolate/Library.store`. Builds up to 1.2 used SwiftData's default configuration, which for this unsandboxed app is the shared `~/Library/Application Support/default.store` that other apps also open and migrate. On first launch, `LibraryStore` copies `default.store` and its `-wal`/`-shm` files to a temporary folder, checks with SQLite that the copy has a `ZTRACKMODEL` table with all eight columns, opens only the copy, and inserts rows whose IDs are not already present. The shared file is never opened in place, modified or deleted. Completion is recorded under `didImportLegacyLibraryStore`; a failed copy is retried at the next launch. + +If `Library.store` cannot be opened, it and its sidecar files are moved, never deleted, into `Library Backups//` beside it, a new store is opened, and the main window shows where the backup went. If even that fails, the session runs in memory and says that changes will not be saved. Because a store that fails to open is moved aside, any new `TrackModel` attribute must be optional or have a default, or ship with a `SchemaMigrationPlan`. + +Source paths identify library entries; identical bytes at different paths share a cache. Deletion checks both cache ownership and remaining library references. External source audio is never deleted. The app is not App Sandbox enabled; security-scoped access is still balanced for URLs provided by system pickers. Imported sources stay in place and are reread by later launches for metadata and stem rebuilds, so `Info.plist` carries purpose strings for the Desktop, Documents, Downloads, removable-volume and network-volume prompts. See [AUDIO_ENGINE.md](AUDIO_ENGINE.md), [MODEL.md](MODEL.md), and [RELEASE.md](RELEASE.md) for detailed contracts and verification. diff --git a/AUDIO_ENGINE.md b/AUDIO_ENGINE.md index ebfbb21..c0b92c7 100644 --- a/AUDIO_ENGINE.md +++ b/AUDIO_ENGINE.md @@ -2,11 +2,13 @@ ## Separation -`ExtAudioFile` decodes supported input into stereo Float32 at 44.1 kHz in 16,384-frame blocks. Normalization uses a mono reference mean and standard deviation, with stereo energy as a fallback when opposite-phase channels cancel the mono reference. Interior windows read directly into the reused buffer. Reflection repeats correctly at both ends even for sources shorter than one model window. +`ExtAudioFile` decodes supported input into stereo Float32 at 44.1 kHz in 16,384-frame blocks. Sources with more than two channels are decoded at their own channel count with an explicit client channel layout (ALAC and AAC otherwise decode in codec-native order) and downmixed by speaker position with `AVAudioConverter`. Files that declare no usable layout get the WAV/FLAC default order, `WAVE_3_0` through `WAVE_7_1`; more than eight channels is refused. For PCM, FLAC and ALAC, whose declared length is exact, a decode that ends more than 1% and more than one second short is refused as damaged; MP3 and AAC lengths can be estimates and are not checked. Core Audio errors are reported in plain language with the four-character code. -HTDemucs accepts 441,000 frames. Isolate runs sequential predictions with a 220,500-frame hop, applies a Hann window, divides overlap sums by accumulated weights, and writes completed hops to four Float32 WAV files. Returned tensor strides and Float16/Float32 types are respected. Non-finite source/model samples fail the import. The decoded original is preserved for comparison; no automatic filtering or limiting is applied to cached source audio. +Normalization uses a mono reference mean and standard deviation, with stereo energy as a fallback when opposite-phase channels cancel the mono reference. Interior windows read directly into the reused buffer. Reflection repeats correctly at both ends even for sources shorter than one model window. -Model order is vocals, drums, bass, other. See [MODEL.md](MODEL.md) before replacing the model. +HTDemucs accepts 441,000 frames. Isolate runs sequential predictions with a 220,500-frame hop, applies a Hann window, divides overlap sums by accumulated weights, and writes completed hops to four Float32 WAV files. Returned tensor strides and Float16/Float32 types are respected, and the output buffer is read once per chunk. Non-finite source or model samples fail the import. The decoded original is preserved for comparison; no automatic filtering or limiting is applied to cached audio. On test songs, the four stems summed back to the decoded original at 28–33 dB signal-to-residual, and cached stems peaked at 1.3–1.5 times full scale, which is why stem export applies a shared gain (see Exports). + +Model order is vocals, drums, bass, other. See [MODEL.md](MODEL.md) before replacing the model and [ARCHITECTURE.md](ARCHITECTURE.md) for the import transaction around this loop. ## Playback graph @@ -17,27 +19,38 @@ Bass → EQ → gain/pan mixer ┤ ├→ time/pitch → master EQ Other → EQ → gain/pan mixer ┘ Original ┘ ``` -All five players schedule against the same host time. The original and stem sum enter the shared effects path, keeping comparison playback under the same tempo/pitch controls. Original comparison mutes the stem sum. Each channel's audible gain is determined by mute/solo state; solo selection takes priority when any solo is active. +The original and the stem sum meet before the shared effects path, so Compare Original plays under the same speed, pitch and master EQ. Compare Original mutes the stem sum. Each channel's audible gain comes from mute/solo state; solo wins when any solo is active. -Seeking clamps to the source range, invalidates old completion callbacks, and reschedules all players. Seeking to exactly the end does not schedule a zero-frame segment. Playback stops at completion unless looping is enabled. Playback progress uses the player clock; the UI timer does not generate audio timing. +Every start from a stopped state (play, seek, loop wrap, autoplay, restart at the end and resume after an output-device change) goes through one path that schedules all five players against the same host time. The lead is sized from the output device's IO buffer (`kAudioDevicePropertyBufferFrameSize`, floored at 512 frames): one cycle per player plus one, a margin of four cycles, the presentation latency and 5 ms. That is about 113 ms at 512 frames and 48 kHz, and about 430 ms at 2,048 frames. `play(at:)` blocks for about one IO cycle per player, so after scheduling, a wall-clock check confirms the calls finished at least one margin before the start time. If they did not, the players are stopped and rescheduled from the current frame with double the lead, up to three attempts. A polarity null test measured a 0-frame offset between stems at 512, 1,024 and 2,048-frame buffers. -Engine teardown cancels pending work, removes its configuration observer, and releases taps and the graph on the main thread. The playback clock owns its timer on the main actor. This avoids the isolated-deinitializer back-deployment runtime that crashed synchronous tests on macOS 15. +Pause calls `engine.pause()`, so every player freezes on the same render cycle, and resume is only `engine.start()`: instant, with no rescheduling. The engine also pauses, releasing the output device, when a track is unloaded, when a seek lands exactly on the end, and 0.5 s after a track finishes so the limiter and time/pitch tails play out. Do not replace this with `engine.pause(); player.play(); engine.start()`: on macOS 27, `play()` on a stopped engine is silently ignored. -A–B looping reschedules at the loop start when the player clock reaches the end marker. It is a practice feature, with scheduling latency at the boundary; no seamless/sample-accurate looping guarantee is made. +Seeking clamps to the source range, invalidates old completion callbacks, stops the players, resets the time/pitch node so no audio from the old position leaks through, and reschedules. Seeking to exactly the end does not schedule a zero-frame segment; with looping on it wraps to the loop start, and with looping off it stops. Playback stops at completion unless looping is enabled. Playback progress uses the player clock; the UI timer does not generate audio timing. Reselecting the loaded track keeps its mix, loop, speed, pitch and position. + +A–B looping reschedules at the loop start when the player clock reaches the end marker, keeping the time/pitch tail so the end of the region stays audible. The shortest region is 0.5 s (at most half the track). Setting A at or after B resets B to the end, and setting B at or before A resets A to the start, so a new region begins instead of clamping back into the old one; ⌥L clears both. Looping is a practice feature with scheduling latency at the boundary; no seamless or sample-accurate looping is claimed. + +Engine teardown cancels pending work, removes its configuration observer, and releases taps and the graph on the main thread. The playback clock owns its timer on the main actor. This avoids the isolated-deinitializer back-deployment runtime that crashed synchronous tests on macOS 15. ## Controls and metering - Faders: −60…+6 dB logarithmic scale, exact unity tick, zero amplitude at the bottom. -- EQ: 100 Hz shelf / 1 kHz parametric / 10 kHz shelf, ±12 dB. Flat EQ and unchanged time/pitch bypass their DSP nodes. -- Pitch: −12…+12 semitones. UI speed presets: 0.5×…1.5×. +- EQ: 100 Hz low shelf / 1 kHz parametric / 10 kHz high shelf, ±12 dB, on each stem and the master bus. Flat EQ and unchanged time/pitch bypass their DSP nodes. ⌘E bypasses every stem and master EQ at once. +- Pitch: −12…+12 semitones. UI speed presets: 0.5, 0.75, 0.85, 1, 1.15, 1.25 and 1.5×. - Master output uses Apple's peak limiter. It is not a loudness normalizer or a true-peak mastering guarantee. -- Per-tap processors reuse FFT working buffers and throttle UI readings. Spectrum and waveform readings include both stereo channels, including right-only and opposite-phase signals. The display is a live level visualization, not a stored full-track waveform. +- Meters tap the main mixer (32 bands) and each stem mixer (7 bands). macOS delivers tap buffers of roughly 100 ms; each processor analyses every 1,024-frame FFT hop in the buffer, newest first, taking the per-bin maximum across hops and both channels, so recent audio and short transients register. Processors reuse their FFT working buffers, and readings cross to the main actor as value snapshots. Stem readings are dropped while Compare Original is on. Because pause stops the engine, meters do no work while paused. The display is a live level visualization, not a stored full-track waveform. ## Exports | Export | Container | Included controls | | --- | --- | --- | -| Individual stems | ZIP containing four 24-bit WAV or FLAC files | Optional per-stem EQ; unity gain, centered pan, original timing | -| Current mix | Stereo 44.1 kHz 24-bit WAV | Mute/solo, gain, pan, channel/master EQ, tempo, pitch, limiter; original comparison when selected | +| Individual stems | ZIP (entries stored, non-ASCII names flagged as UTF-8) of four 24-bit WAV or FLAC files, stereo 44.1 kHz | Channel EQ unless that channel or all EQ is bypassed; unity gain unless one shared gain is needed to keep the loudest stem at −0.1 dBFS; centered pan; original timing | +| Current mix | Stereo 44.1 kHz 24-bit WAV | Mute/solo, gain, pan, channel and master EQ, speed, pitch, limiter. With Compare Original on: the original with master EQ, speed and pitch, named `_Original.wav` | + +Exports snapshot the sources, title, format, EQ, speed and pitch before the save panel opens, and refuse with a message if the loaded track changed while it was open. A fresh `AVAudioEngine` renders offline on a worker task in blocks of up to 4,096 frames, checks for cancellation on every block, and reports progress at most once per whole percent. Mix exports cover the full track; loop markers do not trim them. + +- **Stem gain.** Each stem is rendered with its EQ to a temporary Float32 WAV and its peak measured. All four are then encoded with one gain, `min(1, 0.98855 / peak)`, so their balance and sum are kept; stems already below −0.1 dBFS are bit-identical to an ungained export. Each temporary file is deleted after it is encoded, so peak temporary use in the system temporary folder is about four Float32 stems plus the encoded files and the ZIP. +- **Mix timing.** With the limiter on, the render runs for the limiter's latency (0.002 s, 88 frames) longer and discards the look-ahead, so a 1× mix is sample-aligned with the source. When speed or pitch is changed, a fixed 4,096-frame (about 93 ms) tail is rendered because the time/pitch unit spreads audio past the stretched length while reporting no latency; such files are `ceil(length / rate) + 4096` frames long. +- **Archive and publication.** `/usr/bin/zip` stores the entries uncompressed and is terminated if the export is cancelled. The finished file is staged in the destination volume's item-replacement directory, then moved or swapped into place, so a cancelled, failed or interrupted export leaves the destination untouched and nothing partial in its folder. +- **File names.** Names come from the library title (keeping its capitalization), with `/ : \ ? * " < > |` and control characters replaced by `_`, leading and trailing dots and spaces trimmed, and the length bounded to 200 UTF-8 bytes on character boundaries. -Mix export covers the full track. A fresh AVAudioEngine renders in blocks of up to 4,096 frames with bounded retry handling. Expected duration follows playback rate. The regression suite checks encoding headers, length, audible signal, final transients, mute/pan behavior, and failed-export preservation. No MP3 encoder is implemented. +The regression suite checks encoding headers, lengths, audible signal, final transients with time/pitch, mute and pan, shared stem gain, sample alignment, cancellation, UTF-8 ZIP flags and failed-export preservation. No MP3 encoder is implemented. From a9057d5af2c757ab8c569e04337e9341cc499736 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:25:35 -0500 Subject: [PATCH 53/89] docs: document the hosted model archive and the v1.3.0 release process MODEL.md records the model-htdemucs-v1 prerelease asset and checksum, shows source builders how to install it with fetch_release_model.sh, explains the new load-failure message and measured load times, and describes CI provisioning for pushes, same-repository and fork pull requests. RELEASE.md covers the version check, CHANGELOG-driven notes, hardened-runtime packaging with measured artifact sizes, the CI matrix, and publication steps including the cask update. Co-Authored-By: Claude Opus 5.5 --- MODEL.md | 43 +++++++++++++++++++++++++++++++++---------- RELEASE.md | 43 +++++++++++++++++++++++++++++-------------- 2 files changed, 62 insertions(+), 24 deletions(-) diff --git a/MODEL.md b/MODEL.md index af92491..2426923 100644 --- a/MODEL.md +++ b/MODEL.md @@ -13,38 +13,61 @@ The reference model's final gather uses `[3, 0, 1, 2]` to reorder Demucs's origi ## Reference artifact -The locally available artifact audited for this checkout has these SHA-256 values: +The reference artifact has these SHA-256 values: ```text 8e321470c16930183821c9b63ab058a2b3adc332d7974dc4aabbab15fbbd4ce0 model.mil efab790ad07d93faeb5a19b6e1eedad8c37ad351563a891a153fce307811c099 weights/weight.bin ``` -`scripts/validate_model.swift` requires these hashes and loads the model to check its contract before packaging. These hashes identify the reference artifact; they are not a reproducible training/conversion provenance record. This repository does not yet contain a conversion pipeline or a verified public download for that exact artifact. Document and publish that model input before relying on public release CI. +`scripts/validate_model.swift` requires these hashes and loads the model to check its contract before packaging. These hashes identify the reference artifact; they are not a reproducible training or conversion provenance record, and this repository does not contain a conversion pipeline. + +The artifact is published as a ZIP with `HTDemucs.mlmodelc` at its root: + +| | | +| --- | --- | +| Release | [`model-htdemucs-v1`](https://github.com/neokumar1/Isolate/releases/tag/model-htdemucs-v1) (prerelease) | +| Asset | `HTDemucs-reference.zip`, 144,236,351 bytes | +| URL | `https://github.com/neokumar1/Isolate/releases/download/model-htdemucs-v1/HTDemucs-reference.zip` | +| SHA-256 | `c497133349d2396a2e865827255d9ceeecc8ce0bee6e25febcac7b04187adc37` | + +Its tag does not start with `v`, so it never starts the release workflow, and it is a prerelease, so it never becomes the repository's Latest release (which `install.sh` and the README's download link resolve). Keep both properties if the archive is ever replaced, and publish a new tag rather than replacing the asset. ## Source builds -Place the validated directory at: +The app looks for the model in its bundle first, then at: ```text ~/Library/Application Support/Isolate/HTDemucs.mlmodelc ``` -Then validate it from the repository: +The simplest way to install it there is the same script CI uses. It downloads the pinned archive, checks its checksum and the reference hashes, and refuses to overwrite an existing model: + +```sh +ISOLATE_MODEL_ARCHIVE_URL=https://github.com/neokumar1/Isolate/releases/download/model-htdemucs-v1/HTDemucs-reference.zip \ +ISOLATE_MODEL_ARCHIVE_SHA256=c497133349d2396a2e865827255d9ceeecc8ce0bee6e25febcac7b04187adc37 \ + bash scripts/fetch_release_model.sh +``` + +Set `ISOLATE_MODEL_DESTINATION` to check an archive into another folder without touching an installed model. To validate a model you placed by hand: ```sh swift scripts/validate_model.swift "$HOME/Library/Application Support/Isolate/HTDemucs.mlmodelc" ``` -The app first looks in its bundle, then Application Support. A compatible `HTDemucs_CoreML_FP16.mlpackage` in either location can be compiled on demand. Failed model loading is reported during import; no network download occurs inside the app. Runtime loading validates tensor shapes; release validation also pins the reference hashes. +A compatible `HTDemucs_CoreML_FP16.mlpackage` in either location can be compiled on demand. The app loads the model once per session with `computeUnits = .all`, shares that load between imports, and releases it 60 seconds after the last separation. On the development Mac, the first load by a newly built or updated app took about 17 seconds while Core ML prepared the model; later loads from its compiled cache took 3.2–3.7 seconds. No network download happens inside the app. + +Runtime loading validates tensor shapes; release validation also pins the reference hashes. When no model exists, imports report **CoreML Model Not Found**. When a model exists but cannot be used, imports report **Model Could Not Be Loaded** with the model's path and the reason Core ML gave, so a damaged or incompatible model is not mistaken for a missing one. ## CI provisioning -Create a ZIP with `HTDemucs.mlmodelc` at its root using `ditto -c -k --keepParent`. Host that immutable artifact and set repository variables: +The repository variables `ISOLATE_MODEL_ARCHIVE_URL` (HTTPS) and `ISOLATE_MODEL_ARCHIVE_SHA256` hold the values above. `scripts/fetch_release_model.sh` accepts the checksum in either case, verifies the archive and the reference hashes, and installs the model into the runner's Application Support directory. + +- **Build & Test** fetches the model whenever the variables are available, which includes pushes and pull requests from branches of this repository, and sets `TEST_RUNNER_ISOLATE_REQUIRE_MODEL=1`. Pull requests from forks receive no repository variables, so they build and test without the model and the inference tests skip with a notice. +- **Prepare Release Draft** always requires the model. -- `ISOLATE_MODEL_ARCHIVE_URL`: HTTPS download URL. -- `ISOLATE_MODEL_ARCHIVE_SHA256`: lowercase SHA-256 of the ZIP. +Xcode forwards `TEST_RUNNER_ISOLATE_REQUIRE_MODEL=1` to the test process as `ISOLATE_REQUIRE_MODEL=1`, so missing-model inference fails instead of silently skipping. Setting only `ISOLATE_REQUIRE_MODEL` in the invoking shell does not enforce this. -`scripts/fetch_release_model.sh` checks the archive checksum and reference model hashes before installing it into the runner's Application Support directory. It refuses to overwrite an existing model. Release CI sets `TEST_RUNNER_ISOLATE_REQUIRE_MODEL=1`; Xcode forwards it as `ISOLATE_REQUIRE_MODEL=1` to the test process, so missing-model inference cannot silently skip. +To publish a new archive, create the ZIP with `ditto -c -k --keepParent HTDemucs.mlmodelc HTDemucs-reference.zip` outside the repository (`.gitignore` excludes model folders and archives, and GitHub rejects files over 100 MB), attach it to a new non-`v` prerelease, confirm the URL downloads anonymously, and update both variables together. -When changing model weights, conversion, or output order: review provenance and licenses, update hash validation, increment the cache pipeline version in `StemCache.swift`, and test real inference and source identity before release. +When changing model weights, conversion, or output order: review provenance and licenses, update hash validation, increment the cache pipeline version in `StemCache.swift` (currently `Isolate-streaming-v4`), and test real inference and source identity before release. diff --git a/RELEASE.md b/RELEASE.md index c200a34..c7b8e61 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -6,7 +6,7 @@ Use Xcode 26.2 or newer and regenerate from `project.yml`: ```sh xcodegen generate -xcodebuild test -project Isolate.xcodeproj -scheme Isolate \ +TEST_RUNNER_ISOLATE_REQUIRE_MODEL=1 xcodebuild test -project Isolate.xcodeproj -scheme Isolate \ -destination 'platform=macOS,arch=arm64' -derivedDataPath build/DerivedData \ -only-testing:IsolateTests CODE_SIGNING_ALLOWED=NO xcodebuild test -project Isolate.xcodeproj -scheme Isolate \ @@ -14,36 +14,51 @@ xcodebuild test -project Isolate.xcodeproj -scheme Isolate \ -only-testing:IsolateUITests ``` -UI tests need a logged-in desktop and Xcode UI automation permission. They launch an isolated empty library and preserve screenshots in the `.xcresult` bundle. The complete import/playback/export/delete UI workflow requires the local model. Tests create synthetic audio rather than relying on personal music files. Unit inference skips when the model is absent in ordinary source CI; run `TEST_RUNNER_ISOLATE_REQUIRE_MODEL=1 xcodebuild test ...` for a release gate. Xcode strips `TEST_RUNNER_` when forwarding the variable to test processes; setting only `ISOLATE_REQUIRE_MODEL` in the invoking shell does not enforce this gate. +Unit tests create synthetic audio rather than relying on personal music files. With the model installed (see [MODEL.md](MODEL.md)), `TEST_RUNNER_ISOLATE_REQUIRE_MODEL=1` makes the inference tests fail instead of skipping when the model cannot run; Xcode strips `TEST_RUNNER_` when forwarding the variable, and setting only `ISOLATE_REQUIRE_MODEL` in the invoking shell does not enforce the gate. A few real-time engine tests skip when no audio output device can start, as on hosted runners. -## Package locally +UI tests take over the mouse and keyboard, so run them on a logged-in desktop you are not using, with Xcode UI automation permission. They launch an isolated empty library and keep screenshots in the `.xcresult` bundle. The complete import, playback, export and delete workflow needs the local model. + +## Version + +`project.yml` is the source of truth. Set `CFBundleShortVersionString` and `CFBundleVersion` there (1.3.0 uses `1.3.0` for both), run `xcodegen generate`, and commit the regenerated `Info.plist`. Add a `## [x.y.z]` section to [CHANGELOG.md](CHANGELOG.md); the release notes are built from it. Then check that everything agrees with the tag you intend to push: + +```sh +bash scripts/check_version.sh v1.3.0 +bash scripts/release_notes.sh v1.3.0 +``` -Update both version values in `project.yml`, regenerate, and use the matching tag. Do not overwrite a published version's artifacts. +Never reuse a tag or overwrite a published version's artifacts. + +## Package locally ```sh ISOLATE_DIST_DIR=/private/tmp/IsolateReleaseCheck \ ISOLATE_MODEL_PATH="$HOME/Library/Application Support/Isolate/HTDemucs.mlmodelc" \ - bash scripts/package_release.sh v1.2.8 + bash scripts/package_release.sh v1.3.0 ``` -The script validates the reference model, builds Release for arm64, bundles the model and licenses, signs the app, verifies the signature, creates/verifies the DMG, and writes a ZIP and checksums. It operates in a temporary build directory. It does not install, commit, tag, push, or publish anything. +The script stops before building if the tag, `project.yml` and `Info.plist` disagree. It then validates the reference model, builds Release for arm64 in a temporary directory, checks the built app's version, bundles the model (the licenses are app resources), signs the app with the hardened runtime and verifies the signature, and builds the DMG. The DMG is created writable so its volume can carry the custom-icon flag, then compressed and verified. It writes `Isolate.dmg`, `Isolate--macOS.zip` and `SHA256SUMS.txt` to the dist directory. It does not install, commit, tag, push, or publish anything. For v1.3.0 on the development Mac it produced a 160 MB DMG, a 148 MB ZIP and a 313 MB app (decimal megabytes, as Finder reports them). + +Default signing is ad hoc, now with the hardened runtime. For Developer ID distribution, supply `ISOLATE_SIGNING_IDENTITY` and an `ISOLATE_NOTARY_PROFILE` already stored in your keychain. The script submits the app to Apple's notary service and staples it before packaging. Verify Gatekeeper on a freshly downloaded artifact before public release. Never place signing credentials in Git. -Default signing is ad hoc for local evaluation. For Developer ID distribution, supply `ISOLATE_SIGNING_IDENTITY` and an `ISOLATE_NOTARY_PROFILE` already stored in your keychain. The script submits the app to Apple's notary service and staples it before packaging. Verify Gatekeeper on a freshly downloaded artifact before public release. Never place signing credentials in Git. +`scripts/generate_assets.swift` regenerates the app icon and DMG background at exact pixel sizes; run it from the repository root and commit `Assets/AppIcon.icns` and `Sources/Resources/AppIcon.icns` together. ## GitHub Actions -- Pull requests/main builds: Release compilation, unit/audio tests, saved `.xcresult` artifacts. -- Tagged release: requires the model URL/checksum from [MODEL.md](MODEL.md), runs model-backed unit tests, builds packages, creates a **draft** GitHub release. +- **Build & Test** runs on pushes and pull requests to `main`, on both `macos-15` and `macos-26`. It checks every shell script's syntax, the cask's Ruby syntax, that `Info.plist` matches `project.yml`, and whitespace; builds Release; and runs the unit and audio tests. When the model variables are available it fetches the pinned model and requires real inference; fork pull requests skip inference with a notice. Test results are kept as `.xcresult` artifacts. +- **Prepare Release Draft** runs on a `v*` tag. Its first step compares the tag with `project.yml`, `Info.plist` and `CHANGELOG.md`, so a mismatch fails in seconds. It then fetches the pinned model, runs the model-backed unit tests, packages, and creates a **draft** release named `Isolate ` with the DMG, the ZIP and the checksums. The draft's notes come from `scripts/release_notes.sh`: what to download, first-launch steps for macOS 15+ and 14, and the CHANGELOG section. Reminders for the maintainer go to the job summary, not the notes. - `workflow_dispatch` must be run against a version tag, not a branch. - Interactive UI tests are a local release gate because hosted runners do not provide a dependable logged-in desktop. ## Publication checks -1. Confirm model provenance, immutable download/checksum, source order, and bundled notices. -2. Pass unit tests with model required, UI tests, Release build, and package validation. -3. Smoke-test import, cancellation, playback, audio-device switching, export, relaunch, and deletion on the minimum supported macOS and a current stable macOS. +1. Confirm model provenance, the immutable download and checksum, source order, and bundled notices. +2. Pass unit tests with the model required, UI tests, the Release build, and local package validation. +3. Smoke-test import, cancellation, playback, audio-device switching, export, relaunch, deletion and the upgrade from a pre-1.3 library on the minimum supported macOS and a current stable macOS. 4. Listen to separated musical material to assess stem identity and artifacts; synthetic tests do not establish perceptual quality. -5. Verify Developer ID/notarization if distributing as a notarized app, or clearly label an ad-hoc build. -6. Review draft release contents, version and checksums; update the cask only against the final artifact. +5. Download the draft's DMG in a browser and walk through the README's [First launch](README.md#first-launch) steps on macOS 15 or later and on macOS 14. If the build is ever Developer ID signed and notarized, update the README, the release notes script and the cask caveats to match. +6. Review the draft's notes, version and checksums, then publish it and mark it as the latest release. The README's download link and `install.sh` follow the latest release, so publish before announcing. +7. Set the cask's `version` and `sha256` from the published `Isolate.dmg` together, and check it with `brew install --cask neokumar1/isolate/isolate` on a clean Mac. +8. Keep the model archive's prerelease unpublished as Latest. Consider editing older release notes that recommend `xattr -cr` or Control-click on macOS 15 and later. See [QUALITY_REPORT.md](QUALITY_REPORT.md) for this checkout's measured verification and remaining external release gates. From b9ec2df60b865c45af6e7213f0bfe56927043ff0 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:25:35 -0500 Subject: [PATCH 54/89] docs: align design, roadmap and notices with the shipped app DESIGN.md now describes the implemented system: DotGothic16, the ThemeManager tokens with measured contrast (all text and accent tokens at least 4.5:1), Increase Contrast, the red-for-active policy, and the real components, motion and accessibility behavior, replacing the NDot, Space Grotesk and #FF0000 notes the app never used. ROADMAP.md lists what 1.3.0 implements and what is deferred; notices name the licenses and add an Apple trademark line. Co-Authored-By: Claude Opus 5.5 --- DESIGN.md | 71 +++++++++++++++++++++++++++++++++--------- ROADMAP.md | 24 +++++++------- THIRD_PARTY_NOTICES.md | 10 +++--- 3 files changed, 75 insertions(+), 30 deletions(-) diff --git a/DESIGN.md b/DESIGN.md index 1f8bf0d..a6e6648 100644 --- a/DESIGN.md +++ b/DESIGN.md @@ -1,21 +1,62 @@ # Isolate - Design System -## Core Aesthetic: The "Nothing" Brand -The app embraces a literal translation of the "Nothing" brand aesthetic, moving away from standard Apple HIG to create a highly stylized, hardware-inspired, utilitarian interface. +## Core aesthetic -### 1. Typography -- **Primary Font**: Dot-matrix style (e.g., NDot or a similar custom font) for all headings, numbers, and key interactive elements. -- **Secondary Font**: A clean, technical sans-serif (like Space Grotesk, Inter, or native SF Pro in a rigid weight) for readable body text and secondary labels. +Isolate looks like a piece of studio hardware: a rigid grid, hairline dividers, dot-matrix type and displays, and custom faders and knobs instead of native sliders. The style is inspired by Nothing's industrial design; Isolate is not affiliated with Nothing. The hardware metaphor overrides standard HIG styling, but never accessibility: contrast, keyboard access, VoiceOver and the system's accessibility settings come first. -### 2. Color Palette -- **Backgrounds**: Deep blacks and dark grays, or stark whites (depending on dark/light mode), mimicking physical hardware casings. -- **Accents**: Stark, highly saturated Red (e.g., `#FF0000`) for active states, recording, and critical actions. -- **Materials**: Use of dotted grids, subtle noise textures, and glassmorphism (translucency) to simulate looking "inside" the hardware. +## Typography -### 3. UI Components (Stem Player UX) -- **Sliders & Knobs**: Custom-built controls that look physical and tactile, eschewing standard native sliders. The 4 stem controls (Vocals, Bass, Drums, Other) should dominate the playback view. -- **Buttons**: Pill-shaped or perfectly circular buttons with solid borders and dot-matrix iconography. -- **Layout**: Rigid, grid-based, and symmetrical, heavily utilizing borders and dividers to separate functional zones (Library vs. Mixer vs. Effects). +- **DotGothic16** (Fontworks, SIL Open Font License 1.1) is bundled and registered through `ATSApplicationFontsPath`. It is used for nearly all text: titles, readouts, labels and buttons, usually in capitals. +- SF Symbols and the system font appear only for a few icons and small auxiliary labels. +- Titles that overflow scroll as a marquee. With Reduce Motion on, or when the overflow is small, they truncate with an ellipsis instead and show the full title as a tooltip. -### 4. Interactive Feedback -- Incorporate subtle haptic feedback (where possible on Mac trackpads) and sharp, snappy animations (no slow, floaty Apple springs—use rigid, fast easing). +## Color tokens + +Every color comes from a semantic token on `ThemeManager`; views do not use literal colors. The themes are **MATCH SYSTEM**, **NOTHING DARK** and **NOTHING LIGHT**. + +| Token | Use | +| --- | --- | +| `background`, `surface`, `surfaceSecondary`, `surfaceHover` | Window, cards and modals, control and channel-strip fills, hover | +| `textPrimary`, `textSecondary`, `textMuted` | All readable text, from most to least prominent | +| `textDisabled` | Disabled controls and purely decorative marks; never information | +| `accentRed` | The single accent, reserved for active and interrupting states (see below) | +| `onAccent` | Text and glyphs drawn on an `accentRed` fill | +| `warning` | Amber for comparison and caution: Compare Original, the [A]/[B] loop markers, ALL EQ OFF | +| `hairline`, `border`, `cardBorder` | Dividers and outlines | +| `modalBackdrop`, `modalBackground` | Modal scrim and card | +| `knobFace`, `knobArcTrack`, `faderTrack`, `faderThumb`, `faderThumbStroke`, `faderThumbKnurling`, `spectrumBarDefault` | Hardware controls and displays | + +`textPrimary`, `textSecondary`, `textMuted`, `accentRed` and `warning` each measure at least 4.5:1 (the lowest is 4.55:1) against the background, surface, modal and channel-strip fills of their mode, and `onAccent` measures at least 5.9:1 on `accentRed`. Keep new text on these tokens; `textDisabled` and translucent strokes are not for text. + +**Increase Contrast.** `ThemeManager` follows System Settings › Accessibility › Display › Increase contrast and updates live. `textSecondary` becomes `textPrimary`, `textMuted` becomes `textSecondary`, hairlines, borders and knob tracks become much more opaque, and fader tick marks switch to the border token. + +## Red policy + +Red means something is active or needs attention. It is used for engaged solo and mute, LOOP ON and the loop region, the play button, the lit clip LED and signal peaks, values changed from their default (such as pitch or speed), export progress, [RESET], destructive delete, the error toast, the drop target, and separation progress and its cancel button. + +Everything at rest is neutral: titles, the clock, resting meters and fader fills, idle buttons, headers and icons. Selected tabs, chips and presets are shown inverted in neutral colors (a `textPrimary` fill with background-colored text), not in red. Compare Original is amber (`warning`), because it marks a comparison rather than an alert. + +## Components + +- **Channel strips:** four identical strips in model order (vocals, drums, bass, other), each with a meter, a bipolar pan bar, three EQ knobs, a fader with a dB and percentage readout, and M and S buttons. +- **Faders:** −60 to +6 dB on a logarithmic scale with an exact unity tick; the bottom is silence. +- **Knobs and EQ nodes:** ±12 dB with a detent at 0 dB. The trackpad gives an alignment tap only when the gain enters the ±0.25 dB detent. +- **Pan:** moves in 5% steps from the keyboard and snaps exactly to center. +- **Buttons and chips:** small 3–4 pt corner radii, 1 pt outlines, and fills that follow the outline shape. +- **Dot matrix:** the album art renders as a dot matrix (click for full resolution), progress bars are rows of blocks, and the spectrum is 32 block columns. +- **Studio display:** five modes (32-band FFT, stem macros, stem balance, telemetry, equalizer). As space shrinks it drops metadata first, then switches to short tab names, then drops its title. +- **Layout:** a 270 pt library sidebar, the header and studio display, the mixer, and a transport pinned to the bottom that switches between regular, compact and tight sizes so the seek bar stays usable. The minimum window is 960 × 580 pt. +- **Corner brackets** are decorative and never take clicks. + +## Motion and feedback + +- Animations are short ease-outs of about 0.1 to 0.18 s; the library sidebar snaps without animating. There are no slow springs. +- Reduce Motion stops the title marquee, fades the error toast instead of moving it, and switches the album art without animation. +- Clicks, detents and resets give a trackpad haptic on Macs with a Force Touch trackpad. **Tactile Haptics** in Settings turns them off. + +## Accessibility + +- Custom controls have VoiceOver labels and values. Faders, knobs, pan bars, the seek bar and EQ nodes are adjustable. Several resets also exist as a named action or a context-menu item: Reset on EQ nodes, Center Pan on pan bars, Reset EQ Gain on knobs, and Clear Loop Markers on LOOP. +- Tabs, chips and presets report their selected state, and errors are announced as well as shown. +- Hit areas are expanded without changing the layout, so small controls respond across their full visible area. +- Every main action has a keyboard shortcut, listed in Settings › Shortcuts and on the shortcut card (?). diff --git a/ROADMAP.md b/ROADMAP.md index 90f4948..ec659bf 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,23 +1,25 @@ # Project status -## Implemented in this checkout +## Implemented in 1.3.0 -- [x] Native SwiftUI library and Nothing-inspired four-channel mixer. -- [x] Core ML separation with bounded audio buffers, progress, cancellation and validated cache publication. -- [x] Synchronized stems, original comparison, faders, mute/solo, pan, EQ, speed and pitch. -- [x] A–B practice looping. -- [x] SwiftData library, folder grouping, search, rename/delete, metadata/artwork. -- [x] Individual WAV/FLAC stem archives and current-mix WAV export. -- [x] Real audio regression coverage and UI smoke tests. -- [x] Model-aware local packaging and draft-only release automation. -- [x] Updated build/audio/model documentation and bundled third-party notices. +- [x] Native SwiftUI library and Nothing-inspired four-channel mixer, with dark, light and match-system themes and Increase Contrast support. +- [x] Core ML separation with bounded audio buffers, progress, cancellation, disk-space preflight, iCloud Drive downloads, surround downmix and validated cache publication. +- [x] File and folder import with batch progress and one failure summary per batch. +- [x] Sample-aligned stems, original comparison, faders, mute/solo, pan, three-band EQ on each stem and the master bus, speed and pitch. +- [x] A–B practice looping with a 0.5 s minimum region and a clear-markers shortcut. +- [x] SwiftData library in its own store, with a one-time import from pre-1.3 libraries, backups instead of deletion, folder grouping, search, rename/delete, and metadata/artwork from tags. +- [x] Individual WAV/FLAC stem archives without clipping and current-mix WAV export, with progress and cancellation. +- [x] Real audio regression coverage and UI smoke tests; CI runs real model inference when the model is available. +- [x] Model-bundled, hardened-runtime packaging and draft-only release automation with user-facing notes. -Verification evidence and public-release gates are tracked in [QUALITY_REPORT.md](QUALITY_REPORT.md) and [RELEASE.md](RELEASE.md). +Verification evidence and public-release gates are tracked in [QUALITY_REPORT.md](QUALITY_REPORT.md) and [RELEASE.md](RELEASE.md); user-visible changes are in [CHANGELOG.md](CHANGELOG.md). ## Future capabilities These are not part of the current product contract: +- Developer ID signing and notarization, so first launch needs no approval. +- Keeping access to imported files across launches, so macOS asks for folder access less often. - Sample-accurate, seamless DAW-style looping. - Original-only playback before separation. - Automatic BPM/key analysis beyond source tags. diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md index 56c6b3f..c3c7298 100644 --- a/THIRD_PARTY_NOTICES.md +++ b/THIRD_PARTY_NOTICES.md @@ -2,16 +2,18 @@ ## Demucs -Isolate uses a Core ML conversion of the Hybrid Transformer Demucs architecture from Meta. Upstream project: . +Isolate uses a Core ML conversion of the Hybrid Transformer Demucs (HTDemucs) model from Meta's Demucs project. Upstream project: . Demucs is released under the MIT License. -The upstream MIT notice is included in `Sources/Resources/Demucs-LICENSE.txt` and bundled in the application. Reference model identification and the remaining conversion-provenance work are documented in [MODEL.md](MODEL.md). +The upstream MIT notice is included in `Sources/Resources/Demucs-LICENSE.txt` and bundled in the application. The model is distributed inside release builds and as the `HTDemucs-reference.zip` asset of the `model-htdemucs-v1` prerelease; reference model identification and the remaining conversion-provenance work are documented in [MODEL.md](MODEL.md). ## DotGothic16 -DotGothic16 is by Fontworks Inc., distributed under the SIL Open Font License 1.1. Its notice is included in `Sources/Resources/DotGothic16-LICENSE.txt` and bundled with the font. +DotGothic16 is by Fontworks Inc. (Copyright 2020 The DotGothic16 Project Authors), distributed under the SIL Open Font License 1.1. Its notice is included in `Sources/Resources/DotGothic16-LICENSE.txt` and bundled with the font. ## Platform frameworks SwiftUI, SwiftData, AVFoundation, Core ML, Accelerate, AppKit and the system audio codecs are provided by Apple. No third-party Swift package dependency is required. -Isolate's Nothing-inspired visual design does not indicate affiliation with or endorsement by Nothing Technology Limited. Apple platform names identify compatibility. +## Trademarks + +Isolate's Nothing-inspired visual design does not indicate affiliation with or endorsement by Nothing Technology Limited. Apple, Mac, macOS and Apple silicon are trademarks of Apple Inc.; they are used only to identify compatibility, and Isolate is not affiliated with or endorsed by Apple. From e64009ad6c39cd4d4c09026b45f28168d5c0503e Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:25:40 -0500 Subject: [PATCH 55/89] docs: state the measured installed size The locally packaged v1.3.0 app is 313 MB in decimal megabytes, as Finder reports it, so say that rather than about 300 MB. Co-Authored-By: Claude Opus 5.5 --- INSTALL.md | 2 +- README.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/INSTALL.md b/INSTALL.md index 41b81d5..becf7db 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -8,7 +8,7 @@ Isolate needs a Mac with Apple silicon (M1 or later) and macOS 14 Sonoma or late 2. Open the disk image and drag Isolate into Applications. Quit a running copy before replacing it. 3. Open Isolate from Applications and approve the first launch as described in the README's [First launch](README.md#first-launch) section. -The app takes about 300 MB once installed, because the separation model is inside it (`Isolate.app/Contents/Resources/HTDemucs.mlmodelc`). Releases are ad-hoc signed and are not notarized by Apple. Approve Isolate in **System Settings › Privacy & Security** rather than disabling Gatekeeper or clearing quarantine attributes. +The app takes about 313 MB once installed, because the separation model is inside it (`Isolate.app/Contents/Resources/HTDemucs.mlmodelc`). Releases are ad-hoc signed and are not notarized by Apple. Approve Isolate in **System Settings › Privacy & Security** rather than disabling Gatekeeper or clearing quarantine attributes. To check a download, compare `shasum -a 256 Isolate.dmg` with the value in the release's `SHA256SUMS.txt`. A checksum published in the same release confirms the file arrived intact; it does not prove who published it. diff --git a/README.md b/README.md index ae6bee4..05748e1 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Isolate is a native macOS stem player for Apple silicon. It runs HTDemucs, the o | --- | --- | | Requires | A Mac with Apple silicon (M1 or later) and macOS 14 Sonoma or later | | Download | About 160 MB | -| Installed | About 300 MB, including the separation model | +| Installed | About 313 MB, including the separation model | | Separated songs | About 106 MB of disk per minute of audio, kept until you delete the song | Each release lists SHA-256 checksums in `SHA256SUMS.txt`. To check your download, run `shasum -a 256 ~/Downloads/Isolate.dmg` and compare the result. Homebrew, a terminal installer and source builds are covered in [INSTALL.md](INSTALL.md). From 1f2ba46bd6795b3c687f2ca77398764938e04ec3 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:26:26 -0500 Subject: [PATCH 56/89] test(ui): report which conditional UI checks ran The Escape-over-separation checks run only while the separation is still going, and chip selection is asserted only where AXSelected is exposed. Name the outcome in an activity so a green run shows whether they were exercised. Co-Authored-By: Claude Opus 5.5 --- UITests/IsolateUITests/IsolateUITests.swift | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/UITests/IsolateUITests/IsolateUITests.swift b/UITests/IsolateUITests/IsolateUITests.swift index d01a2f8..c26cea8 100644 --- a/UITests/IsolateUITests/IsolateUITests.swift +++ b/UITests/IsolateUITests/IsolateUITests.swift @@ -115,9 +115,9 @@ final class IsolateUITests: XCTestCase { // The chips mark their choice with the selected trait. If this macOS does not surface // it, say so in the report instead of failing on the platform. let exposesSelection = dark.isSelected - if !exposesSelection { - XCTContext.runActivity(named: "Settings chips do not report AXSelected; selection not asserted") { _ in } - } + XCTContext.runActivity(named: exposesSelection + ? "Settings chips report selection; asserting it" + : "Settings chips do not report AXSelected; selection not asserted") { _ in } light.click() if exposesSelection { XCTAssertTrue(waitFor(light, "selected == true"), "Clicking NOTHING LIGHT must select it") @@ -227,12 +227,14 @@ final class IsolateUITests: XCTestCase { // Escape on a card opened over the separation closes that card and never cancels the // import. Checked only while the separation is still running when each card opens. let cancelImport = app.buttons["CANCEL IMPORT"] + var checkedCards: [String] = [] if cancelImport.waitForExistence(timeout: 5) { app.typeKey(",", modifierFlags: .command) if preferences.waitForExistence(timeout: 3) { app.typeKey(.escape, modifierFlags: []) expectGone(preferences, "Escape must close Settings opened over the separation") XCTAssertFalse(app.buttons["CANCELLING…"].exists, "Escape on Settings must not cancel the separation") + checkedCards.append("Settings") } } if cancelImport.exists { @@ -243,8 +245,12 @@ final class IsolateUITests: XCTestCase { app.typeKey(.escape, modifierFlags: []) expectGone(about, "Escape must close About opened over the separation") XCTAssertFalse(app.buttons["CANCELLING…"].exists, "Escape on About must not cancel the separation") + checkedCards.append("About") } } + XCTContext.runActivity(named: checkedCards.isEmpty + ? "Escape over separation not checked: the separation finished first" + : "Escape over separation checked on: \(checkedCards.joined(separator: ", "))") { _ in } // A cancelled import adds no row, so this also proves the Escapes above left it running. let actions = app.buttons["Actions for UI Workflow"] From aa804317fe5c64afbfab25edab5fb33c298adb98 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:28:09 -0500 Subject: [PATCH 57/89] chore(github): add a bug report form that points to first-launch help Ask for the Isolate and macOS versions, Mac model, steps, the exact message and the audio details, and link the first-launch steps and troubleshooting guide before a new issue is opened. Co-Authored-By: Claude Opus 5.5 --- .github/ISSUE_TEMPLATE/bug_report.yml | 46 +++++++++++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 8 +++++ 2 files changed, 54 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..9a7395f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,46 @@ +name: Bug report +description: Something in Isolate doesn't work as expected +labels: [bug] +body: + - type: markdown + attributes: + value: | + Thanks for reporting a problem. If macOS won't open Isolate, see [First launch](https://github.com/neokumar1/Isolate#first-launch); many other problems are covered in [Troubleshooting](https://github.com/neokumar1/Isolate/blob/main/TROUBLESHOOTING.md). + - type: input + id: version + attributes: + label: Isolate version + description: Shown in About Isolate. + placeholder: "1.3.0" + validations: + required: true + - type: input + id: macos + attributes: + label: macOS version and Mac model + placeholder: "macOS 15.6, MacBook Air M2" + validations: + required: true + - type: textarea + id: steps + attributes: + label: What did you do? + description: The steps that lead to the problem. + placeholder: | + 1. Imported a 4-minute FLAC file with ⌘O + 2. ... + validations: + required: true + - type: textarea + id: result + attributes: + label: What happened, and what did you expect? + description: Include the exact message Isolate showed, if any. + validations: + required: true + - type: input + id: audio + attributes: + label: Audio file details + description: Format, sample rate, channels and length, if the problem involves a song. Please don't attach copyrighted or private audio. + placeholder: "FLAC, 48 kHz, stereo, 4:05" diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..bd01b6a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: true +contact_links: + - name: macOS won't open Isolate + url: https://github.com/neokumar1/Isolate#first-launch + about: Releases are ad-hoc signed; approve the first launch in System Settings › Privacy & Security. + - name: Troubleshooting guide + url: https://github.com/neokumar1/Isolate/blob/main/TROUBLESHOOTING.md + about: Model errors, iCloud Drive files, disk space, stuck imports, library backups and exports. From 194588cc9f0ec1d38303b8606ead0640d7fbdb6e Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:28:48 -0500 Subject: [PATCH 58/89] docs: describe the measured memory footprint precisely The 1.6-2.7 GB figure is the app's footprint after a separation with the model loaded, not Core ML's use during one. Co-Authored-By: Claude Opus 5.5 --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 05748e1..c503c74 100644 --- a/README.md +++ b/README.md @@ -121,8 +121,8 @@ The full list is also in **Settings › Shortcuts**. ## Speed, quality and limits - **Speed depends on your Mac.** On an M-series MacBook Pro running macOS 27, real songs separated at about 2.5× realtime during v1.3.0 testing: a 4:37 ALAC track in 1:49 and an 8:24 MP3 in 3:17. Those runs were measured before a later optimization and haven't been re-timed. Your speed will vary with the Mac, the macOS version and what else is running; the progress screen shows the measured speed for each song. -- **The first separation after installing or updating is slower** while macOS prepares the model for your Mac. On the test Mac that took about 17 seconds once, and about 3 to 4 seconds on later loads. -- **Memory:** on the test Mac, Core ML used about 1.6 to 2.7 GB during separation. Isolate releases the model after 60 seconds without a separation. +- **The first separation after installing or updating is slower** while macOS prepares the model for your Mac. On the test Mac that took about 17 seconds once; later model loads took 3 to 4 seconds. +- **Memory:** on the test Mac, Isolate's memory footprint was about 1.6 to 2.7 GB after a separation, while the model was loaded. Isolate releases the model after 60 seconds without a separation. - **Disk:** separated songs use about 106 MB per minute of audio. Isolate checks for enough free space before it starts. - **Quality depends on the recording.** Expect some bleed between stems and some artifacts, especially on dense mixes. Isolate makes no guarantee about separation quality. - **Looping is for practice.** Playback that starts from a stop waits a fraction of a second so all four stems start together, and the A–B loop is not a sample-accurate DAW loop. From 032f0f93d6dda102ea8b08f78e466ec20a107bde Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:59:38 -0500 Subject: [PATCH 59/89] perf(meters): give each stem its own observable meter read by leaf views Tap readings used to land in engine-level arrays read by the mixer root and every channel strip, so one stem's reading re-ran the root layout closure and all four StemChannelView bodies. Each tap now writes to its own StemMeter or MasterMeter, and only small leaf views read them: the stem waveform, the fader's clip LED, the balance VU row and the HUD EQ backdrop. - CustomFader takes an isClipping Bool instead of the raw peak; the clip-hold logic is unchanged (a release starts the 1.2 s hold, a new clip cancels it). - The album-art pulse reads a mean waveform level rounded to 1/20 instead of the raw 30-block waveform, and the dot colours are built once per artwork. Rounding moves a dot edge by at most 0.0023 px at 100 pt / 2x. - Removed stemPeaks, masterWaveformAmplitudes and the five *EQMagnitudes arrays; EngineFixTests reads stemMeters / masterMeter instead. Co-Authored-By: Claude Opus 5.5 --- Sources/App/AudioEngineManager.swift | 136 +++++++++++----- Sources/Player/CustomFader.swift | 14 +- Sources/Player/PlayerView.swift | 199 ++++++++++++++---------- Tests/IsolateTests/EngineFixTests.swift | 6 +- 4 files changed, 228 insertions(+), 127 deletions(-) diff --git a/Sources/App/AudioEngineManager.swift b/Sources/App/AudioEngineManager.swift index 072fd49..86b5013 100644 --- a/Sources/App/AudioEngineManager.swift +++ b/Sources/App/AudioEngineManager.swift @@ -22,6 +22,78 @@ public enum ExportState: Equatable, Sendable { case completed } +// MARK: - Live Meters +// Each tap writes to its own observable meter, and only small leaf views read them, so a +// reading re-renders the meter that shows it instead of the whole mixer. + +/// Latest reading from one stem's channel tap. +@MainActor +@Observable +public final class StemMeter { + /// Sample peak of the latest reading. + public internal(set) var peak: Float = 0 + /// True while the latest peak is at or above full scale. The fader's clip LED reads + /// this rather than `peak`, so readings below full scale do not re-render it. + public internal(set) var isClipping = false + /// Smoothed band levels (0-1), low to high. + public internal(set) var spectrum: [Float] + + init(bandCount: Int) { + spectrum = Array(repeating: 0, count: bandCount) + } + + func update(peak newPeak: Float, spectrum newSpectrum: [Float]) { + if peak != newPeak { peak = newPeak } + if isClipping != (newPeak >= 1) { isClipping = newPeak >= 1 } + if spectrum != newSpectrum { spectrum = newSpectrum } + } + + func clearSpectrum() { + if spectrum.contains(where: { $0 != 0 }) { spectrum = Array(repeating: 0, count: spectrum.count) } + } + + func clear() { + if peak != 0 { peak = 0 } + if isClipping { isClipping = false } + clearSpectrum() + } +} + +/// Latest reading from the master output tap. +@MainActor +@Observable +public final class MasterMeter { + public nonisolated static let waveformFloor: Float = 0.05 + /// Steps per unit for `artworkEnergy`. At the largest artwork (100 pt at 2x) rounding + /// moves a dot edge by at most 0.0023 px, which moves no pixel by more than one 8-bit level. + nonisolated static let artworkEnergySteps: Float = 20 + + /// Smoothed 32-band levels (0-1), low to high. + public internal(set) var spectrum: [Float] = Array(repeating: 0, count: 32) + /// RMS of 30 consecutive blocks of the latest buffer, floored at `waveformFloor`. + public internal(set) var waveform: [Float] = Array(repeating: MasterMeter.waveformFloor, count: 30) + /// Mean waveform level for the album-art pulse, rounded to 1/20 so changes that move the + /// dots by a small fraction of a pixel do not redraw all 2,500 of them. + public internal(set) var artworkEnergy: Float = MasterMeter.waveformFloor + + func update(spectrum newSpectrum: [Float], waveform newWaveform: [Float]) { + if spectrum != newSpectrum { spectrum = newSpectrum } + if waveform != newWaveform { waveform = newWaveform } + let energy = Self.artworkEnergy(for: newWaveform) + if artworkEnergy != energy { artworkEnergy = energy } + } + + func clear() { + update(spectrum: Array(repeating: 0, count: spectrum.count), + waveform: Array(repeating: Self.waveformFloor, count: waveform.count)) + } + + nonisolated static func artworkEnergy(for waveform: [Float]) -> Float { + let mean = waveform.reduce(0, +) / Float(max(1, waveform.count)) + return (mean * artworkEnergySteps).rounded() / artworkEnergySteps + } +} + public struct EQPreset: Identifiable, Hashable, Sendable { public let id: String public let name: String @@ -433,15 +505,10 @@ public final class AudioEngineManager { } // MARK: - Live Visualizers (Waveform & Per-Stem EQ) - public var masterWaveformAmplitudes: [Float] = Array(repeating: 0.05, count: 30) + /// One meter per stem in model order: vocals, drums, bass, other. + public let stemMeters: [StemMeter] = (0..<4).map { _ in StemMeter(bandCount: 7) } + public let masterMeter = MasterMeter() public var originalWaveformAmplitudes: [Float] = Array(repeating: 0.05, count: 30) - - public var masterEQMagnitudes: [Float] = Array(repeating: 0, count: 32) - public var stemPeaks: [Float] = Array(repeating: 0, count: 4) - public var vocalEQMagnitudes: [Float] = Array(repeating: 0, count: 7) - public var drumEQMagnitudes: [Float] = Array(repeating: 0, count: 7) - public var bassEQMagnitudes: [Float] = Array(repeating: 0, count: 7) - public var otherEQMagnitudes: [Float] = Array(repeating: 0, count: 7) // MARK: - Splitting & Progress State public var isSplitting = false @@ -568,23 +635,23 @@ public final class AudioEngineManager { node.installTap(onBus: 0, bufferSize: 1024, format: nil) { [weak self] buffer, _ in guard let reading = processor.process(buffer) else { return } Task { @MainActor [weak self] in - guard let self, self.isPlaying else { return } - // Compare Original silences the stem sum after these taps. - if stem != nil && self.isBypassed && self.canBypass { return } - if let stem { self.stemPeaks[stem] = reading.peak } - switch stem { - case 0: self.vocalEQMagnitudes = reading.spectrum - case 1: self.drumEQMagnitudes = reading.spectrum - case 2: self.bassEQMagnitudes = reading.spectrum - case 3: self.otherEQMagnitudes = reading.spectrum - default: - self.masterEQMagnitudes = reading.spectrum - self.masterWaveformAmplitudes = reading.waveform - } + self?.deliverMeterReading(reading, stem: stem) } } } + /// Publishes one tap reading to its meter; `stem` is nil for the master tap. + func deliverMeterReading(_ reading: AudioMeterProcessor.Reading, stem: Int?) { + guard isPlaying else { return } + guard let stem else { + masterMeter.update(spectrum: reading.spectrum, waveform: reading.waveform) + return + } + // Compare Original silences the stem sum after these taps. + guard !(isBypassed && canBypass), stemMeters.indices.contains(stem) else { return } + stemMeters[stem].update(peak: reading.peak, spectrum: reading.spectrum) + } + deinit { if let configurationObserver { NotificationCenter.default.removeObserver(configurationObserver) } activeSplitTask?.cancel() @@ -634,11 +701,7 @@ public final class AudioEngineManager { if isBypassed && canBypass { stemsSumMixer.outputVolume = 0.0 originalPlayer.volume = 1.0 - stemPeaks = Array(repeating: 0, count: 4) - vocalEQMagnitudes = Array(repeating: 0, count: 7) - drumEQMagnitudes = Array(repeating: 0, count: 7) - bassEQMagnitudes = Array(repeating: 0, count: 7) - otherEQMagnitudes = Array(repeating: 0, count: 7) + for meter in stemMeters { meter.clear() } return } @@ -660,10 +723,10 @@ public final class AudioEngineManager { applyChannel(bassVolume, bassMuted, bassSolo, bassMixer) applyChannel(otherVolume, otherMuted, otherSolo, otherMixer) - if vocalVolume <= 0.001 || vocalMuted || (anySolo && !vocalSolo) { vocalEQMagnitudes = Array(repeating: 0, count: 7) } - if drumVolume <= 0.001 || drumMuted || (anySolo && !drumSolo) { drumEQMagnitudes = Array(repeating: 0, count: 7) } - if bassVolume <= 0.001 || bassMuted || (anySolo && !bassSolo) { bassEQMagnitudes = Array(repeating: 0, count: 7) } - if otherVolume <= 0.001 || otherMuted || (anySolo && !otherSolo) { otherEQMagnitudes = Array(repeating: 0, count: 7) } + if vocalVolume <= 0.001 || vocalMuted || (anySolo && !vocalSolo) { stemMeters[0].clearSpectrum() } + if drumVolume <= 0.001 || drumMuted || (anySolo && !drumSolo) { stemMeters[1].clearSpectrum() } + if bassVolume <= 0.001 || bassMuted || (anySolo && !bassSolo) { stemMeters[2].clearSpectrum() } + if otherVolume <= 0.001 || otherMuted || (anySolo && !otherSolo) { stemMeters[3].clearSpectrum() } } // MARK: - Exclusive Radio-Style Stem Soloing & Muting @@ -839,14 +902,13 @@ public final class AudioEngineManager { } private func clearVisualizers() { - stemPeaks = Array(repeating: 0, count: 4) - masterWaveformAmplitudes = Array(repeating: 0.05, count: 30) originalWaveformAmplitudes = Array(repeating: 0.05, count: 30) - masterEQMagnitudes = Array(repeating: 0, count: 32) - vocalEQMagnitudes = Array(repeating: 0, count: 7) - drumEQMagnitudes = Array(repeating: 0, count: 7) - bassEQMagnitudes = Array(repeating: 0, count: 7) - otherEQMagnitudes = Array(repeating: 0, count: 7) + clearMeters() + } + + private func clearMeters() { + masterMeter.clear() + for meter in stemMeters { meter.clear() } } // MARK: - Loading & Splitting Audio diff --git a/Sources/Player/CustomFader.swift b/Sources/Player/CustomFader.swift index 450f410..94edf5d 100644 --- a/Sources/Player/CustomFader.swift +++ b/Sources/Player/CustomFader.swift @@ -5,7 +5,8 @@ struct CustomFader: View { @Environment(\.isEnabled) private var isEnabled @Binding var value: Double let label: String - var peak: Float = 0 + /// True while the channel's latest peak is at or above full scale. + var isClipping = false @Bindable private var theme = ThemeManager.shared @State private var startValue: Double? = nil @@ -143,7 +144,7 @@ struct CustomFader: View { // 3. Vertical Track Slot & Active Level Meter with Peak-Hold Clip LED ZStack(alignment: .top) { - let isLit = peak >= 1 || isClippingHeld + let isLit = isClipping || isClippingHeld Circle() .fill(isLit ? theme.accentRed : theme.knobArcTrack) .frame(width: 4.5, height: 4.5) @@ -235,11 +236,12 @@ struct CustomFader: View { .onKeyPress(.downArrow) { adjust(-0.02); return .handled } .contextMenu { Button("Reset to 0 dB") { value = 1 } } .simultaneousGesture(TapGesture(count: 2).onEnded { value = 1; Haptics.playAlignment() }) - .onChange(of: peak) { oldPeak, newPeak in - if newPeak >= 1 { + .onChange(of: isClipping) { _, clipping in + if clipping { clipHoldTask?.cancel() isClippingHeld = true - } else if oldPeak >= 1 { + } else { + // The peak just fell below full scale: hold the LED for 1.2 s. triggerClipHold() } } @@ -267,7 +269,7 @@ struct CustomFader: View { try? await Task.sleep(nanoseconds: 1_200_000_000) guard !Task.isCancelled else { return } // This task starts when the peak falls below clipping. A new clip - // cancels it; avoid reading the stale peak captured with this view. + // cancels it; avoid reading the stale clip state captured with this view. withAnimation(.easeOut(duration: 0.35)) { isClippingHeld = false } diff --git a/Sources/Player/PlayerView.swift b/Sources/Player/PlayerView.swift index 609a85c..647584f 100644 --- a/Sources/Player/PlayerView.swift +++ b/Sources/Player/PlayerView.swift @@ -214,7 +214,6 @@ public struct PlayerView: View { midGain: $engine.vocalEQMid, highGain: $engine.vocalEQHigh, isEQBypassed: $engine.vocalEQBypassed, - eqMagnitudes: engine.vocalEQMagnitudes, isAnySoloed: anySolo, isAnyMuted: anyMuted, isPlaying: engine.isPlaying, @@ -234,7 +233,6 @@ public struct PlayerView: View { midGain: $engine.drumEQMid, highGain: $engine.drumEQHigh, isEQBypassed: $engine.drumEQBypassed, - eqMagnitudes: engine.drumEQMagnitudes, isAnySoloed: anySolo, isAnyMuted: anyMuted, isPlaying: engine.isPlaying, @@ -254,7 +252,6 @@ public struct PlayerView: View { midGain: $engine.bassEQMid, highGain: $engine.bassEQHigh, isEQBypassed: $engine.bassEQBypassed, - eqMagnitudes: engine.bassEQMagnitudes, isAnySoloed: anySolo, isAnyMuted: anyMuted, isPlaying: engine.isPlaying, @@ -274,7 +271,6 @@ public struct PlayerView: View { midGain: $engine.otherEQMid, highGain: $engine.otherEQHigh, isEQBypassed: $engine.otherEQBypassed, - eqMagnitudes: engine.otherEQMagnitudes, isAnySoloed: anySolo, isAnyMuted: anyMuted, isPlaying: engine.isPlaying, @@ -374,7 +370,6 @@ struct StemChannelView: View { @Binding var midGain: Float @Binding var highGain: Float @Binding var isEQBypassed: Bool - let eqMagnitudes: [Float] let isAnySoloed: Bool let isAnyMuted: Bool let isPlaying: Bool @@ -463,9 +458,9 @@ struct StemChannelView: View { .padding(.top, isCompactHeight ? 1 : 2) // Dynamic Island Symmetrical Dot-Matrix Waveform per stem - StemDynamicWaveformView( + StemMeterWaveformView( + meter: engineManager.stemMeters[channelIndex], title: title, - magnitudes: eqMagnitudes, effectiveVolume: effectiveVolume, isPlaying: isPlaying ) @@ -517,7 +512,7 @@ struct StemChannelView: View { .padding(.top, isCompactHeight ? 0 : 2) // Hardware Fader with Decibel Scale & Machined Thumb - CustomFader(value: $volume, label: title, peak: engineManager.stemPeaks[channelIndex]) + MeteredFader(meter: engineManager.stemMeters[channelIndex], value: $volume, label: title) .frame(minHeight: isCompactHeight ? 75 : 120, maxHeight: .infinity) // Mute & Solo Hardware Switches @@ -1041,6 +1036,37 @@ struct StemEQChannelStripView: View { } } +// MARK: - Meter Leaf Views +// Only these read a stem's meter, so a tap reading re-renders the waveform or clip LED +// that shows it instead of the channel strip around it. + +struct StemMeterWaveformView: View { + let meter: StemMeter + let title: String + let effectiveVolume: Double + let isPlaying: Bool + + var body: some View { + StemDynamicWaveformView( + title: title, + magnitudes: meter.spectrum, + effectiveVolume: effectiveVolume, + isPlaying: isPlaying + ) + } +} + +/// Reads only the clip state, so peak readings below full scale leave the fader alone. +struct MeteredFader: View { + let meter: StemMeter + @Binding var value: Double + let label: String + + var body: some View { + CustomFader(value: $value, label: label, isClipping: meter.isClipping) + } +} + // MARK: - Dynamic Island Symmetrical Dot-Matrix Stem Waveform View struct StemDynamicWaveformView: View { let title: String @@ -1184,7 +1210,8 @@ struct AlbumArtView: View { var size: CGFloat = 100 @Environment(AudioEngineManager.self) private var engineManager @State private var theme = ThemeManager.shared - @State private var dotMatrix: [[DotMatrixCell]]? = nil + /// Dot colours, built once per artwork rather than on every redraw. + @State private var dotColors: [[Color]]? = nil @Environment(\.accessibilityReduceMotion) private var reduceMotion @State private var showHighRes = false @@ -1204,23 +1231,24 @@ struct AlbumArtView: View { .aspectRatio(contentMode: .fill) .frame(width: size, height: size) .clipped() - } else if let matrix = dotMatrix { + } else if let colors = dotColors { + // The dots swell slightly with the music. The engine rounds the level, so + // changes of a small fraction of a pixel do not redraw all 2,500 dots. + let audioEnergy = engineManager.isPlaying ? Double(engineManager.masterMeter.artworkEnergy) : 0.0 + let pulse = engineManager.isPlaying && !reduceMotion ? 1.0 + (audioEnergy * 0.05) : 1.0 + // Real-Time 50x50 Full-Color RGB Dot-Matrix LED Screen Canvas { context, sz in let gridSize = 50 let cellWidth = sz.width / CGFloat(gridSize) let cellHeight = sz.height / CGFloat(gridSize) - - let audioEnergy = engineManager.isPlaying ? Double(engineManager.masterWaveformAmplitudes.reduce(0, +) / Float(max(1, engineManager.masterWaveformAmplitudes.count))) : 0.0 - let pulse = engineManager.isPlaying && !reduceMotion ? 1.0 + (audioEnergy * 0.05) : 1.0 - + // Uniform, crisp circular LED dot radius across all luminance levels (fill ratio 0.90) let baseDotRadius = (cellWidth * 0.5) * 0.90 let dotRadius = min(cellWidth * 0.48, baseDotRadius * CGFloat(pulse)) for y in 0..= segThreshold - let isPeak = seg >= 8 - let segColor: Color = isPeak ? theme.accentRed : theme.spectrumBarDefault - - Rectangle() - .fill(isLit ? segColor : theme.knobArcTrack) - .frame(height: 5) - } - } - .clipShape(RoundedRectangle(cornerRadius: 1)) - } - private var actionsRow: some View { HStack(spacing: 4) { Button(action: { @@ -2728,6 +2730,38 @@ struct StemChannelCardView: View { } } +/// The balance card's 10-segment VU row. It reads the stem meter itself, so readings +/// re-render this row and not the card's labels and buttons. +struct StemVUMeterRow: View { + let meter: StemMeter + let isActive: Bool + @State private var theme = ThemeManager.shared + + private var clampedEnergy: CGFloat { + guard isActive else { return 0.0 } + let magnitudes = meter.spectrum + let avg = magnitudes.reduce(0, +) / Float(max(1, magnitudes.count)) + let energy = CGFloat(avg) * 2.8 + return max(0.0, min(1.0, energy)) + } + + var body: some View { + HStack(spacing: 1.5) { + ForEach(0..<10, id: \.self) { seg in + let segThreshold = CGFloat(seg + 1) / 10.0 + let isLit = clampedEnergy >= segThreshold + let isPeak = seg >= 8 + let segColor: Color = isPeak ? theme.accentRed : theme.spectrumBarDefault + + Rectangle() + .fill(isLit ? segColor : theme.knobArcTrack) + .frame(height: 5) + } + } + .clipShape(RoundedRectangle(cornerRadius: 1)) + } +} + // MARK: - Studio Telemetry HUD Diagnostics View struct StudioTelemetryHUDView: View { @Environment(AudioEngineManager.self) private var engineManager @@ -2895,7 +2929,7 @@ struct HUDEqualizerCurveView: View { gridLines(w: w, h: h, midY: midY, x100: x100, x1k: x1k, x10k: x10k) // 2. Real-time FFT Backdrop - fftBackdrop(w: w, h: h) + HUDSpectrumBackdrop(stemIndex: selectedStemIndex, height: h) // 3. Mathematical Biquad Curve Path curvePath(w: w, h: h, midY: midY) @@ -3136,31 +3170,6 @@ struct HUDEqualizerCurveView: View { .position(x: x10k, y: h - 5) } - @ViewBuilder - private func fftBackdrop(w: CGFloat, h: CGFloat) -> some View { - let mags: [Float] = { - switch selectedStemIndex { - case 0: return engineManager.vocalEQMagnitudes - case 1: return engineManager.drumEQMagnitudes - case 2: return engineManager.bassEQMagnitudes - case 3: return engineManager.otherEQMagnitudes - default: return engineManager.masterEQMagnitudes - } - }() - - HStack(alignment: .bottom, spacing: 2) { - ForEach(0.. Path { let low = currentLow let mid = currentMid @@ -3278,6 +3287,34 @@ struct HUDEqualizerCurveView: View { } } +/// Live spectrum behind the HUD EQ curve (index 4 is the master). Reading the meter here +/// re-renders only these bars on each tap reading, not the curve, grid and nodes. +struct HUDSpectrumBackdrop: View { + @Environment(AudioEngineManager.self) private var engineManager + @State private var theme = ThemeManager.shared + let stemIndex: Int + let height: CGFloat + + var body: some View { + let h = height + let mags = engineManager.stemMeters.indices.contains(stemIndex) + ? engineManager.stemMeters[stemIndex].spectrum + : engineManager.masterMeter.spectrum + + HStack(alignment: .bottom, spacing: 2) { + ForEach(0.. Void diff --git a/Tests/IsolateTests/EngineFixTests.swift b/Tests/IsolateTests/EngineFixTests.swift index a440d51..021a253 100644 --- a/Tests/IsolateTests/EngineFixTests.swift +++ b/Tests/IsolateTests/EngineFixTests.swift @@ -59,8 +59,8 @@ final class EngineFixTests: XCTestCase { let end = clock.now + duration while clock.now < end { try await Task.sleep(for: .milliseconds(15)) - master = max(master, engine.masterWaveformAmplitudes.max() ?? 0) - for index in stems.indices { stems[index] = max(stems[index], engine.stemPeaks[index]) } + master = max(master, engine.masterMeter.waveform.max() ?? 0) + for index in stems.indices { stems[index] = max(stems[index], engine.stemMeters[index].peak) } } return (master, stems) } @@ -250,7 +250,7 @@ final class EngineFixTests: XCTestCase { let stems = try await observeMeters(engine, for: .milliseconds(400)).stems XCTAssertTrue(stems.allSatisfy { $0 > 0.05 }) engine.isBypassed = true - XCTAssertEqual(engine.stemPeaks, [0, 0, 0, 0]) + XCTAssertEqual(engine.stemMeters.map(\.peak), [0, 0, 0, 0]) let bypassed = try await observeMeters(engine) XCTAssertEqual(bypassed.stems, [0, 0, 0, 0], "Silenced stems must not show activity") XCTAssertGreaterThan(bypassed.master, 0.1, "The original is audible and metered") From 435218623b86a9fab1bbb8a7a6ce27fc94761547 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:59:44 -0500 Subject: [PATCH 60/89] perf(hud): draw the 32-band spectrum in one Canvas Spectrum32BandView built 32 columns of 14 RoundedRectangles (448 shape views) and re-diffed them on every master reading in the default HUD mode. It now draws the same blocks in one Canvas. Block edges accumulate in window space the way the HStack and VStacks laid them out and are rounded to device pixels, so ImageRenderer output matches the former views pixel for pixel, including fractional sizes whose edges land on half pixels. Co-Authored-By: Claude Opus 5.5 --- Sources/Player/PlayerView.swift | 155 ++++++++++++++++++-------------- 1 file changed, 87 insertions(+), 68 deletions(-) diff --git a/Sources/Player/PlayerView.swift b/Sources/Player/PlayerView.swift index 647584f..90941dc 100644 --- a/Sources/Player/PlayerView.swift +++ b/Sources/Player/PlayerView.swift @@ -2368,83 +2368,102 @@ struct HUDTopBar: View { } // MARK: - 32-Band Dot-Matrix FFT Spectrum Visualizer +/// 32 bars of 14 blocks drawn in one Canvas rather than 448 shape views. Block edges are +/// rounded to device pixels in window coordinates, the way SwiftUI placed the former +/// per-block views, so the output matches them. struct Spectrum32BandView: View { @Environment(AudioEngineManager.self) private var engineManager - - private var magnitudes: [Float] { - engineManager.masterMeter.spectrum - } - - var body: some View { - GeometryReader { geo in - let totalWidth = geo.size.width - let totalHeight = geo.size.height - let barCount = 32 - let spacing: CGFloat = 2.0 - let totalSpacing = spacing * CGFloat(barCount - 1) - let barWidth = max(2.0, (totalWidth - totalSpacing) / CGFloat(barCount)) - - HStack(alignment: .bottom, spacing: spacing) { - ForEach(0.. CGFloat { + var length: CGFloat = 0 + for index in 0..= blockTopLevel { - return 1.0 - } else if activeBlocksFloat <= blockBottomLevel { - return 0.0 - } else { - return activeBlocksFloat - blockBottomLevel - } - }() - - let isTopTwoBlocks = blockIdx >= (blockCount - 2) - let isUpperMidBlock = blockIdx >= (blockCount - 5) - - let activeColor: Color = { - if isTopTwoBlocks { - // Peak blocks light red only while signal reaches them. - return fillFraction > 0 ? theme.accentRed : theme.spectrumBarDefault - } else if isUpperMidBlock { - return theme.spectrumBarDefault - } else { - return theme.spectrumBarDefault.opacity(0.88) + // Read observable state here rather than in the renderer so each reading redraws. + let magnitudes = engineManager.masterMeter.spectrum + let barColor = theme.spectrumBarDefault + let peakColor = theme.accentRed + let unlitOpacity = theme.isDark ? 0.05 : 0.08 + let scale = max(1, displayScale) + + GeometryReader { geo in + let size = geo.size + let origin = geo.frame(in: .global).origin + Canvas { context, _ in + let barCount = Self.barCount + let blockCount = Self.blockCount + let barWidth = max(2.0, (size.width - Self.barSpacing * CGFloat(barCount - 1)) / CGFloat(barCount)) + let blockHeight = max(1.5, (size.height - Self.blockSpacing * CGFloat(blockCount - 1)) / CGFloat(blockCount)) + // Bars are centered and blocks bottom-aligned, as in the former HStack and VStacks. + let rowWidth = Self.stackLength(count: barCount, item: barWidth, spacing: Self.barSpacing) + let columnHeight = Self.stackLength(count: blockCount, item: blockHeight, spacing: Self.blockSpacing) + // Positions accumulate in window space as the stacks laid them out, then round + // to device pixels; the canvas itself sits at its rounded origin. + func snapped(_ value: CGFloat) -> CGFloat { (value * scale).rounded() / scale } + let canvasX = snapped(origin.x), canvasY = snapped(origin.y) + let block = RoundedRectangle(cornerRadius: 0.5) + + var x = origin.x + (size.width - rowWidth) / 2 + for index in 0..= blockBottomLevel + 1 { + return 1.0 + } else if activeBlocksFloat <= blockBottomLevel { + return 0.0 + } else { + return activeBlocksFloat - blockBottomLevel + } + }() + + let isTopTwoBlocks = blockIdx >= (blockCount - 2) + let isUpperMidBlock = blockIdx >= (blockCount - 5) + let activeColor: Color = { + if isTopTwoBlocks { + // Peak blocks light red only while signal reaches them. + return fillFraction > 0 ? peakColor : barColor + } else if isUpperMidBlock { + return barColor + } else { + return barColor.opacity(0.88) + } + }() + + let minY = snapped(y) - canvasY + let maxY = snapped(y + blockHeight) - canvasY + let rect = CGRect(x: minX, y: minY, width: maxX - minX, height: maxY - minY) + context.fill( + block.path(in: rect), + with: .color(activeColor.opacity(fillFraction > 0 ? max(0.2, fillFraction) : unlitOpacity)) + ) + y = y + blockHeight + Self.blockSpacing } - }() - - RoundedRectangle(cornerRadius: 0.5) - .fill(activeColor.opacity(fillFraction > 0 ? max(0.2, fillFraction) : (theme.isDark ? 0.05 : 0.08))) - .frame(width: width, height: blockHeight) + x = x + barWidth + Self.barSpacing + } } } - .frame(width: width, height: height, alignment: .bottom) } } From a76fc5b6de3f4004a6f7fbc4127551b4be6052f3 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:59:54 -0500 Subject: [PATCH 61/89] perf(engine): hold back meter and timecode updates while the player is hidden SwiftUI keeps re-rendering hidden, minimized and fully covered windows, so playing in the background still ran every meter reading and the 60 Hz position/timecode writes through the view tree. - PlayerVisibilityReporter (a zero-size view in PlayerView) follows the player's own window: occlusion, miniaturize/deminiaturize, becoming key, and app hide/unhide. It reports visible again when it leaves the window. - While hidden, the meter taps skip their analysis (the flag is mirrored in a lock for the tap threads), readings are dropped and the meters are cleared, so no stale clip lights on return. - The timer still wraps A-B loops and updates Now Playing. It keeps playbackProgress current without notifying views, so seeks, loop markers and device-change reseeks read the live position. Showing the window publishes the position and timecode at once. Co-Authored-By: Claude Opus 5.5 --- Sources/App/AudioEngineManager.swift | 59 ++++++++++++++++++-- Sources/Player/PlayerView.swift | 83 ++++++++++++++++++++++++++++ 2 files changed, 136 insertions(+), 6 deletions(-) diff --git a/Sources/App/AudioEngineManager.swift b/Sources/App/AudioEngineManager.swift index 86b5013..dc81a09 100644 --- a/Sources/App/AudioEngineManager.swift +++ b/Sources/App/AudioEngineManager.swift @@ -5,6 +5,7 @@ import SwiftData import Accelerate import AppKit import UniformTypeIdentifiers +import os public struct TrackData: Sendable { public let id: String @@ -213,7 +214,18 @@ public final class AudioEngineManager { public var detailedTimecode: String = "00:00.000 / -00:00.000" public var albumArt: NSImage? - public var playbackProgress: Double = 0.0 + @ObservationIgnored private var storedPlaybackProgress = 0.0 + /// Playback position (0-1). While the player is hidden the timer advances the stored + /// value without notifying views; `setUIVisible(true)` publishes it again. + public var playbackProgress: Double { + get { + access(keyPath: \.playbackProgress) + return storedPlaybackProgress + } + set { + withMutation(keyPath: \.playbackProgress) { storedPlaybackProgress = newValue } + } + } public var seekFrameOffset: AVAudioFramePosition = 0 public var currentTimeString: String = "00:00 / -00:00" public var isBypassed: Bool = false { didSet { applyVolumes() } } @@ -510,6 +522,29 @@ public final class AudioEngineManager { public let masterMeter = MasterMeter() public var originalWaveformAmplitudes: [Float] = Array(repeating: 0.05, count: 30) + // MARK: - Player Visibility + /// False while the player window cannot be seen: the app is hidden, or the window is + /// minimized or fully covered. Meter readings and the 60 Hz position and timecode + /// updates then stay away from SwiftUI, which otherwise keeps re-rendering hidden + /// windows. Audio, loop wraps and Now Playing carry on, and `playbackProgress` stays current. + @ObservationIgnored public private(set) var isUIVisible = true + /// Mirrors `isUIVisible` for the meter taps, which run off the main actor. + @ObservationIgnored private let meterTapsEnabled = OSAllocatedUnfairLock(initialState: true) + + public func setUIVisible(_ visible: Bool) { + guard visible != isUIVisible else { return } + isUIVisible = visible + meterTapsEnabled.withLock { $0 = visible } + if visible { + // Show the current position now rather than on the next timer tick. + withMutation(keyPath: \.playbackProgress) {} + updateTimeString(for: storedPlaybackProgress) + } else { + // Start from empty meters when shown again, not from a stale clip or peak. + clearMeters() + } + } + // MARK: - Splitting & Progress State public var isSplitting = false public var isCompilingModel = false @@ -632,8 +667,10 @@ public final class AudioEngineManager { private func installMeter(on node: AVAudioNode, stem: Int?) { let processor = AudioMeterProcessor(bandCount: stem == nil ? 32 : 7) + let isEnabled = meterTapsEnabled node.installTap(onBus: 0, bufferSize: 1024, format: nil) { [weak self] buffer, _ in - guard let reading = processor.process(buffer) else { return } + // Skip the analysis while the player cannot be seen. + guard isEnabled.withLock({ $0 }), let reading = processor.process(buffer) else { return } Task { @MainActor [weak self] in self?.deliverMeterReading(reading, stem: stem) } @@ -642,7 +679,7 @@ public final class AudioEngineManager { /// Publishes one tap reading to its meter; `stem` is nil for the master tap. func deliverMeterReading(_ reading: AudioMeterProcessor.Reading, stem: Int?) { - guard isPlaying else { return } + guard isPlaying, isUIVisible else { return } guard let stem else { masterMeter.update(spectrum: reading.spectrum, waveform: reading.waveform) return @@ -1581,9 +1618,7 @@ public final class AudioEngineManager { return } - self.playbackProgress = progress - - self.updateTimeDisplay(elapsed: elapsed, duration: duration) + self.publishPlaybackPosition(progress: progress, elapsed: elapsed, duration: duration) let elapsedSecs = Int(min(duration, elapsed)) if elapsedSecs != self.lastSyncedNowPlayingSec { @@ -1596,6 +1631,18 @@ public final class AudioEngineManager { playbackClock.timer = t } + /// The timer's position update. While the player cannot be seen only the stored position + /// advances, so code reading `playbackProgress` stays current without re-rendering + /// hidden views 60 times a second. + func publishPlaybackPosition(progress: Double, elapsed: Double, duration: Double) { + guard isUIVisible else { + storedPlaybackProgress = progress + return + } + playbackProgress = progress + updateTimeDisplay(elapsed: elapsed, duration: duration) + } + @MainActor public func updateTimeString(for progress: Double) { guard let fVocals = fileVocals else { return } diff --git a/Sources/Player/PlayerView.swift b/Sources/Player/PlayerView.swift index 90941dc..b439247 100644 --- a/Sources/Player/PlayerView.swift +++ b/Sources/Player/PlayerView.swift @@ -79,6 +79,11 @@ public struct PlayerView: View { shortcutsOverlay(showsHUD: showsHUD) } } + .background { + PlayerVisibilityReporter(engine: engineManager) + .frame(width: 0, height: 0) + .accessibilityHidden(true) + } } private func headerView(isCompactHeight: Bool) -> some View { @@ -358,6 +363,84 @@ public struct PlayerView: View { } } +/// Tells the engine whether the window showing the player can be seen. SwiftUI keeps +/// re-rendering hidden, minimized and fully covered windows, so the engine holds back +/// meter and timecode updates until the window is visible again. +struct PlayerVisibilityReporter: NSViewRepresentable { + let engine: AudioEngineManager + + func makeNSView(context: Context) -> ReporterView { + ReporterView(engine: engine) + } + + func updateNSView(_ view: ReporterView, context: Context) { + view.engine = engine + } + + static func dismantleNSView(_ view: ReporterView, coordinator: ()) { + view.observe(nil) + } + + final class ReporterView: NSView { + weak var engine: AudioEngineManager? + private weak var observedWindow: NSWindow? + + init(engine: AudioEngineManager) { + self.engine = engine + super.init(frame: .zero) + } + + required init?(coder: NSCoder) { + return nil + } + + override func viewDidMoveToWindow() { + super.viewDidMoveToWindow() + observe(window) + } + + func observe(_ window: NSWindow?) { + if window != nil && window === observedWindow { return } + let center = NotificationCenter.default + center.removeObserver(self) + observedWindow = window + guard let window else { + // Nothing of the player is on screen any more; publish as usual. + engine?.setUIVisible(true) + return + } + let windowNotifications: [Notification.Name] = [ + NSWindow.didChangeOcclusionStateNotification, + NSWindow.didMiniaturizeNotification, + NSWindow.didDeminiaturizeNotification, + NSWindow.didBecomeKeyNotification + ] + for name in windowNotifications { + center.addObserver(self, selector: #selector(visibilityMayHaveChanged), name: name, object: window) + } + for name in [NSApplication.didHideNotification, NSApplication.didUnhideNotification] { + center.addObserver(self, selector: #selector(visibilityMayHaveChanged), name: name, object: nil) + } + // Report after the current SwiftUI update rather than during it. + DispatchQueue.main.async { [weak self] in + self?.reportVisibility() + } + } + + @objc private func visibilityMayHaveChanged(_ notification: Notification) { + reportVisibility() + } + + private func reportVisibility() { + guard let window = observedWindow else { return } + // Hiding the app or minimizing also clears .visible; checking them too keeps + // the result right if their notifications arrive first. + let isVisible = NSApp?.isHidden != true && !window.isMiniaturized && window.occlusionState.contains(.visible) + engine?.setUIVisible(isVisible) + } + } +} + struct StemChannelView: View { @Environment(AudioEngineManager.self) private var engineManager var channelIndex: Int = 0 From cb5dd6609ebb176b7fb1822a6d3a21ae9f1a50d4 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 21:59:59 -0500 Subject: [PATCH 62/89] test: cover per-stem meters, hidden-player gating, spectrum Canvas and clip hold PerfFixTests checks that a stem reading notifies only its own meter, that peaks below full scale never reach the fader, that a hidden player drops readings and keeps playbackProgress current without notifying views, that A-B loops keep wrapping while hidden (skipped without an audio device), that the reporter marks an unseen window hidden and resets on removal, that the Canvas spectrum matches the former per-block views pixel for pixel at 1x and 2x, that album-art energy rounds to 1/20, and that the clip LED still holds for 1.2 s and restarts its hold on a new clip. Co-Authored-By: Claude Opus 5.5 --- Tests/IsolateTests/PerfFixTests.swift | 365 ++++++++++++++++++++++++++ 1 file changed, 365 insertions(+) create mode 100644 Tests/IsolateTests/PerfFixTests.swift diff --git a/Tests/IsolateTests/PerfFixTests.swift b/Tests/IsolateTests/PerfFixTests.swift new file mode 100644 index 0000000..c59a0f2 --- /dev/null +++ b/Tests/IsolateTests/PerfFixTests.swift @@ -0,0 +1,365 @@ +import XCTest +import AVFoundation +import SwiftUI +import AppKit +import Observation +@testable import Isolate + +@MainActor +final class PerfFixTests: XCTestCase { + private var directory: URL! + + override func setUpWithError() throws { + directory = FileManager.default.temporaryDirectory.appending(path: UUID().uuidString) + try FileManager.default.createDirectory(at: directory, withIntermediateDirectories: true) + } + + override func tearDownWithError() throws { + try FileManager.default.removeItem(at: directory) + } + + // MARK: - Helpers + + private final class Flag: @unchecked Sendable { + var value = false + } + + /// Calls `onChange` once if anything `read` touched is mutated afterwards. + private func observe(_ read: () -> Void) -> Flag { + let flag = Flag() + withObservationTracking(read) { flag.value = true } + return flag + } + + private func reading(peak: Float = 0.5, spectrum: [Float], waveform: [Float] = []) -> AudioMeterProcessor.Reading { + AudioMeterProcessor.Reading(spectrum: spectrum, waveform: waveform, peak: peak) + } + + private func playingEngine() -> AudioEngineManager { + let engine = AudioEngineManager() + engine.isPlaying = true + return engine + } + + private func pixels(_ image: CGImage) -> [UInt8] { + let width = image.width, height = image.height + var buffer = [UInt8](repeating: 0, count: width * height * 4) + let context = CGContext(data: &buffer, width: width, height: height, bitsPerComponent: 8, bytesPerRow: width * 4, + space: CGColorSpace(name: CGColorSpace.sRGB)!, + bitmapInfo: CGImageAlphaInfo.premultipliedLast.rawValue)! + context.draw(image, in: CGRect(x: 0, y: 0, width: width, height: height)) + return buffer + } + + private func render(_ view: V, scale: CGFloat) throws -> [UInt8] { + let renderer = ImageRenderer(content: view) + renderer.scale = scale + return pixels(try XCTUnwrap(renderer.cgImage)) + } + + // MARK: - performance-1: per-stem meters + + func testStemReadingNotifiesOnlyThatStemsMeter() { + let engine = playingEngine() + let flags = engine.stemMeters.map { meter in observe { _ = meter.spectrum; _ = meter.isClipping } } + let master = observe { _ = engine.masterMeter.spectrum; _ = engine.masterMeter.artworkEnergy } + + engine.deliverMeterReading(reading(peak: 0.4, spectrum: [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7]), stem: 1) + + XCTAssertEqual(flags.map(\.value), [false, true, false, false], "A drum reading must not redraw the other strips") + XCTAssertFalse(master.value) + XCTAssertEqual(engine.stemMeters[1].spectrum, [0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7]) + XCTAssertEqual(engine.stemMeters[1].peak, 0.4) + XCTAssertEqual(engine.stemMeters[0].spectrum, Array(repeating: 0, count: 7)) + } + + func testPeaksBelowFullScaleDoNotReachTheFader() { + let engine = playingEngine() + let meter = engine.stemMeters[0] + let spectrum: [Float] = Array(repeating: 0.2, count: 7) + engine.deliverMeterReading(reading(peak: 0.3, spectrum: spectrum), stem: 0) + let clip = observe { _ = meter.isClipping } + engine.deliverMeterReading(reading(peak: 0.9, spectrum: spectrum), stem: 0) + XCTAssertFalse(clip.value, "The fader reads only the clip state") + XCTAssertEqual(meter.peak, 0.9) + + engine.deliverMeterReading(reading(peak: 1.2, spectrum: spectrum), stem: 0) + XCTAssertTrue(clip.value) + XCTAssertTrue(meter.isClipping) + engine.deliverMeterReading(reading(peak: 0.99, spectrum: spectrum), stem: 0) + XCTAssertFalse(meter.isClipping) + } + + func testMutedStemAndStopClearTheirMeters() { + let engine = playingEngine() + let spectrum: [Float] = Array(repeating: 0.5, count: 7) + for stem in 0..<4 { engine.deliverMeterReading(reading(peak: 1.1, spectrum: spectrum), stem: stem) } + engine.deliverMeterReading(reading(spectrum: Array(repeating: 0.5, count: 32), waveform: Array(repeating: 1, count: 30)), stem: nil) + + engine.toggleMute(2) + XCTAssertEqual(engine.stemMeters[2].spectrum, Array(repeating: 0, count: 7)) + XCTAssertEqual(engine.stemMeters[1].spectrum, spectrum) + + engine.isPlaying = false + engine.deliverMeterReading(reading(peak: 0.7, spectrum: spectrum), stem: 2) + XCTAssertEqual(engine.stemMeters[2].spectrum, Array(repeating: 0, count: 7), "Readings after a stop are dropped") + engine.unloadTrack() + XCTAssertEqual(engine.stemMeters.map(\.peak), [0, 0, 0, 0]) + XCTAssertEqual(engine.stemMeters.map(\.isClipping), [false, false, false, false]) + XCTAssertEqual(engine.masterMeter.spectrum, Array(repeating: 0, count: 32)) + XCTAssertEqual(engine.masterMeter.waveform, Array(repeating: MasterMeter.waveformFloor, count: 30)) + } + + // MARK: - performance-3: hidden player + + func testHiddenPlayerDropsMeterReadingsAndStartsCleanWhenShown() { + let engine = playingEngine() + engine.deliverMeterReading(reading(peak: 1.3, spectrum: Array(repeating: 0.6, count: 7)), stem: 0) + XCTAssertTrue(engine.stemMeters[0].isClipping) + + engine.setUIVisible(false) + XCTAssertFalse(engine.isUIVisible) + XCTAssertFalse(engine.stemMeters[0].isClipping, "A stale clip must not light the LED when the window returns") + let flags = engine.stemMeters.map { meter in observe { _ = meter.spectrum; _ = meter.isClipping } } + let master = observe { _ = engine.masterMeter.spectrum } + engine.deliverMeterReading(reading(peak: 1.3, spectrum: Array(repeating: 0.6, count: 7)), stem: 0) + engine.deliverMeterReading(reading(spectrum: Array(repeating: 0.4, count: 32), waveform: Array(repeating: 0.5, count: 30)), stem: nil) + XCTAssertEqual(flags.map(\.value), [false, false, false, false]) + XCTAssertFalse(master.value) + + engine.setUIVisible(true) + engine.deliverMeterReading(reading(peak: 0.2, spectrum: Array(repeating: 0.6, count: 7)), stem: 0) + XCTAssertEqual(engine.stemMeters[0].spectrum, Array(repeating: 0.6, count: 7)) + } + + func testHiddenPlayerKeepsPositionCurrentWithoutNotifyingViews() { + let engine = AudioEngineManager() + engine.publishPlaybackPosition(progress: 0.25, elapsed: 50, duration: 200) + XCTAssertEqual(engine.currentTimeString, "00:50 / -02:30") + + engine.setUIVisible(false) + let views = observe { + _ = engine.playbackProgress + _ = engine.currentTimeString + _ = engine.detailedTimecode + } + engine.publishPlaybackPosition(progress: 0.4, elapsed: 80, duration: 200) + XCTAssertFalse(views.value, "Hidden views must not re-render at the timer rate") + XCTAssertEqual(engine.playbackProgress, 0.4, "Seeks, loop markers and device changes read the live position") + + let shown = observe { _ = engine.playbackProgress } + engine.setUIVisible(true) + XCTAssertTrue(shown.value, "Showing the player publishes the current position at once") + engine.publishPlaybackPosition(progress: 0.5, elapsed: 100, duration: 200) + XCTAssertEqual(engine.currentTimeString, "01:40 / -01:40") + } + + func testDirectPositionWritesStillNotifyWhileHidden() { + let engine = AudioEngineManager() + engine.setUIVisible(false) + let views = observe { _ = engine.playbackProgress } + engine.playbackProgress = 0.6 + XCTAssertTrue(views.value, "Only the timer's writes are held back") + XCTAssertEqual(engine.playbackProgress, 0.6) + } + + func testVisibilityReporterMarksAnUnseenWindowHiddenAndResetsOnRemoval() { + let engine = AudioEngineManager() + let host = NSHostingView(rootView: PlayerVisibilityReporter(engine: engine).frame(width: 10, height: 10)) + host.frame = NSRect(x: 0, y: 0, width: 10, height: 10) + // Never ordered in, so its occlusion state has no .visible. + let window = NSWindow(contentRect: NSRect(x: -20_000, y: -20_000, width: 10, height: 10), + styleMask: [.borderless], backing: .buffered, defer: false) + window.isReleasedWhenClosed = false + window.contentView = host + host.layoutSubtreeIfNeeded() + RunLoop.main.run(until: Date().addingTimeInterval(0.3)) + XCTAssertFalse(engine.isUIVisible) + + window.contentView = nil + RunLoop.main.run(until: Date().addingTimeInterval(0.3)) + XCTAssertTrue(engine.isUIVisible, "Without a window the engine goes back to publishing") + } + + /// Silent stems, so the loop test makes no sound. + private func silentTrack(seconds: Double) throws -> TrackModel { + let frames = AVAudioFrameCount(44_100 * seconds) + let buffer = AVAudioPCMBuffer(pcmFormat: StreamingAudio.format, frameCapacity: frames)! + buffer.frameLength = frames + for channel in 0.. some View { + let blockHeight = max(1.5, (height - 1.5 * 13) / 14) + let active = max(0.0, min(14, magnitude * 14)) + return VStack(spacing: 1.5) { + ForEach((0..<14).reversed(), id: \.self) { blockIdx in + let level = CGFloat(blockIdx) + let fill: CGFloat = active >= level + 1 ? 1 : (active <= level ? 0 : active - level) + let color: Color = blockIdx >= 12 ? (fill > 0 ? theme.accentRed : theme.spectrumBarDefault) + : (blockIdx >= 9 ? theme.spectrumBarDefault : theme.spectrumBarDefault.opacity(0.88)) + RoundedRectangle(cornerRadius: 0.5) + .fill(color.opacity(fill > 0 ? max(0.2, fill) : (theme.isDark ? 0.05 : 0.08))) + .frame(width: width, height: blockHeight) + } + } + .frame(width: width, height: height, alignment: .bottom) + } + } + + func testSpectrumCanvasMatchesTheFormerBlockViewsPixelForPixel() throws { + let engine = playingEngine() + let magnitudes: [Float] = (0..<32).map { [0, 0.03, 0.5, 0.97, 1, 0.071, 0.33, 0.9999, 0.2, 0.61, 0.07, 0.14][$0 % 12] } + engine.deliverMeterReading(reading(spectrum: magnitudes, waveform: Array(repeating: 0.5, count: 30)), stem: nil) + XCTAssertEqual(engine.masterMeter.spectrum, magnitudes) + + // Default-window HUD geometry plus fractional sizes and offsets whose block edges + // land exactly on half pixels. + let layouts: [(x: CGFloat, y: CGFloat, width: CGFloat, height: CGFloat)] = [ + (36, 85, 440, 59), (20, 61, 376, 45), (3.5, 0.25, 437.5, 58.5), (7.75, 86.75, 481, 48.5), + (32, 45.25, 446.5, 51.75), (0.3, 0.37, 456.6, 59) + ] + for layout in layouts { + for scale in [1.0, 2.0] { + func placed(_ view: V) -> some View { + view.frame(width: layout.width, height: layout.height) + .padding(.leading, layout.x).padding(.top, layout.y) + .frame(width: 560, height: 160, alignment: .topLeading) + } + let expected = try render(placed(ReferenceSpectrum(magnitudes: magnitudes)), scale: scale) + let actual = try render(placed(Spectrum32BandView().environment(engine)), scale: scale) + let differing = stride(from: 0, to: expected.count, by: 4).filter { + expected[$0..<$0 + 4] != actual[$0..<$0 + 4] + }.count + XCTAssertEqual(differing, 0, "\(layout) at \(scale)x") + } + } + } + + // MARK: - performance-5: album-art pulse + + func testArtworkEnergyRoundsToTwentieths() { + XCTAssertEqual(MasterMeter.artworkEnergy(for: Array(repeating: 1, count: 30)), 1) + XCTAssertEqual(MasterMeter.artworkEnergy(for: Array(repeating: 0.62, count: 30)), 0.6, accuracy: 1e-6) + XCTAssertEqual(MasterMeter.artworkEnergy(for: Array(repeating: 0.63, count: 30)), 0.65, accuracy: 1e-6) + XCTAssertEqual(MasterMeter.artworkEnergy(for: Array(repeating: MasterMeter.waveformFloor, count: 30)), + MasterMeter.waveformFloor, accuracy: 1e-6) + + let engine = playingEngine() + let spectrum = Array(repeating: Float(0.3), count: 32) + engine.deliverMeterReading(reading(spectrum: spectrum, waveform: Array(repeating: 0.61, count: 30)), stem: nil) + let art = observe { _ = engine.masterMeter.artworkEnergy } + engine.deliverMeterReading(reading(spectrum: spectrum, waveform: Array(repeating: 0.62, count: 30)), stem: nil) + XCTAssertFalse(art.value, "A change that rounds to the same level must not redraw the artwork") + XCTAssertEqual(engine.masterMeter.waveform, Array(repeating: 0.62, count: 30)) + engine.deliverMeterReading(reading(spectrum: spectrum, waveform: Array(repeating: 0.9, count: 30)), stem: nil) + XCTAssertTrue(art.value) + } + + // MARK: - performance-1: clip LED hold + + private final class ClipModel: ObservableObject { + @Published var isClipping = false + } + + private struct ClipHost: View { + @ObservedObject var model: ClipModel + @State private var value = 0.5 + + var body: some View { + CustomFader(value: $value, label: "VOCALS", isClipping: model.isClipping) + .frame(width: 80, height: 200) + } + } + + /// True when the clip LED (4.5 pt, centred 3.25 pt below the fader's top edge) is lit red. + private func ledIsLit(_ host: NSView) -> Bool { + host.layoutSubtreeIfNeeded() + guard let rep = host.bitmapImageRepForCachingDisplay(in: host.bounds) else { return false } + host.cacheDisplay(in: host.bounds, to: rep) + let scale = CGFloat(rep.pixelsHigh) / host.bounds.height + guard let color = rep.colorAt(x: rep.pixelsWide / 2, y: Int(3.25 * scale))?.usingColorSpace(.sRGB) else { return false } + return color.redComponent - color.greenComponent > 0.35 + } + + func testClipLEDHoldsAfterThePeakFallsBelowFullScale() { + let model = ClipModel() + let host = NSHostingView(rootView: ClipHost(model: model)) + host.frame = NSRect(x: 0, y: 0, width: 80, height: 200) + let window = NSWindow(contentRect: NSRect(x: -20_000, y: -20_000, width: 80, height: 200), + styleMask: [.borderless], backing: .buffered, defer: false) + window.isReleasedWhenClosed = false + window.contentView = host + defer { window.contentView = nil } + func wait(_ seconds: Double) { RunLoop.main.run(until: Date().addingTimeInterval(seconds)) } + + wait(0.3) + XCTAssertFalse(ledIsLit(host)) + model.isClipping = true + wait(0.4) + XCTAssertTrue(ledIsLit(host)) + model.isClipping = false + wait(0.4) + XCTAssertTrue(ledIsLit(host), "The LED holds for 1.2 s after the clip ends") + // A new clip during the hold cancels it; the second release starts a fresh hold. + wait(0.5) + model.isClipping = true + wait(0.1) + model.isClipping = false + wait(0.9) + XCTAssertTrue(ledIsLit(host), "The first hold would have ended 0.7 s ago") + wait(1.0) + XCTAssertFalse(ledIsLit(host)) + } +} From 3711e459cc969a8075d0a249165af93f0f9510bd Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 22:07:49 -0500 Subject: [PATCH 63/89] docs: add real app screenshots and social preview; complete icon sizes - README screenshots are captured from the app playing a royalty-free synthetic demo (dark, light, and separation in progress). - Replace the mock social preview, which claimed ANE and real-time separation, with a crop of the real window at 1280x640. - Add the missing 16 pt and 128 pt icon images downsampled from the existing artwork; the 1024 px master is unchanged. - Point the hardening test at the per-stem meters from the perf wave. Co-Authored-By: Claude Opus 5.5 --- Assets/AppIcon.icns | Bin 1889987 -> 2015972 bytes Assets/screenshot-dark.png | Bin 0 -> 301760 bytes Assets/screenshot-light.png | Bin 0 -> 314294 bytes Assets/screenshot-separating.png | Bin 0 -> 157809 bytes Assets/social_preview.png | Bin 679261 -> 131813 bytes Isolate.xcodeproj/project.pbxproj | 16 ++++++++++++++++ README.md | 4 +++- Sources/Resources/AppIcon.icns | Bin 1889987 -> 2015972 bytes Tests/IsolateTests/SuiteHardeningTests.swift | 4 ++-- 9 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 Assets/screenshot-dark.png create mode 100644 Assets/screenshot-light.png create mode 100644 Assets/screenshot-separating.png diff --git a/Assets/AppIcon.icns b/Assets/AppIcon.icns index 389aa54d53ed2c5c8bc03ea84d79efdbda8e917a..72d3896767f02ae97fb6b2a69f2325e82124a42f 100644 GIT binary patch delta 20100 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 Y`d4(m3-c^)rFYuCd|e;?f?@^zAK|M2eE~ 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�wqaXIDt8&HOd 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 tnI6dn!qnB?o@QQsE1F2{sj{yY9ast literal 0 HcmV?d00001 diff --git a/Assets/screenshot-light.png b/Assets/screenshot-light.png new file mode 100644 index 0000000000000000000000000000000000000000..c3a13e2070d4e0bbc6c8046b1571cd6a4c158163 GIT binary patch literal 314294 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 rx6nuoNi_#g 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�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¥dI%BAcbno$jRpZdM_*J%z0-T~PQ{*`LfQjRB2$IiZI_ zwxp)Be7<@Xl{tQeO$mM3AXVw|seLP!-HFBpd{J!uy>Yl^n_HH_w2RLKg9XGr1IqOEwN-o)Oj0SwEBgc%Hm{WjC?&`G|;vQ7%j1R=wl; zLXxrHE-Eesb6ZW%<<^#^fa~7J>(x+d;Q=C3*PLKtr^mZXXPfn%5(@?{s@b9CYC8rO$d z3o9Jdz85hkXAFtDbPj3Xw#O31Z%m*oZ(VlA%PK1+Z`3tXWR~$0`GwpLbgzd6mOp^L zQh&;J_z`kEbiL6c7j@LxW}vT60lEe>+c}MMme^EIZc&JJX>M zgc|?aYEn4yb{q{aP1Lgr;y=neDr$e)O_KD$ba~&0ez6S*y|l`pJ=2QvXmQKwdJu2Q zlhZ>7NNY}k8Hrj(qxPY>#Gd^joP;N^cUG9?$12$2e|L45*7ybn+o6ZExvW5V4i}s1 zPAeMJ`iri2NRL~tGcWFINcW^P?$^Yg#9lkL(RD9)b zbt0YiEi~piKT%&{PDy+bscmPW2LI+E5bI5Hqi;twqiW_xk4HwvY;3!A+vz%lhh{ya_^QE{-xOng~Qc@sDn|jlXiXJ;X9+qPMV>)&IQjSH-=;92BLD zUT=^_Ob29d?cD()UUYl(9HvZsGQC`WZtcOLf~qfjBI&ETA5``>=17N5m1=x{al7Pw+z42&F*Zf~g^~B+F8{3g zgj+Cf0jM3|>hV#Ze92We^I5SDICKtQmO^9#nZ5J`_>>nY-4}LoIyJl0x=kkRn;!cP z>(_DL5B@R?Jb3>eU5$~m`6RIEVqCF%C9rZc*(}l#7J_4|Lp=G4u)}#osF!WT`2LD} z{_&>QyB=J(SYSQ>u9E8Qm-u+VXO~wJ`k$66CfFS*ocd_(TP~+;<;s6T|EihHVTa5D zn(~}KJ#v$QU%A;|FS;jvl%21Hao%pyQI7Ll&!b(;428ecAO& zwLX;EPliwd`WZ+N76Fm*gR5nK|J59IuiLdfpJT}CNkN*u69CnT+IVHQblN-7J2G7s zmA?czUVeUZ?`OTF5`TtJv+wVlt`dQ3knT?Fmb~T{z4lA(ck@FPlKmd<8sk)i<)IX( zt-sD!XFWBP^fb21>(?-|cI=I)_83I%fHAZ0O=1>-4sK_-X9^@M5j;7!BcR>1+Q6+Iu~J!-u_x<-PUb?xZ6mNeG#h3q z&z?#%{lvx?qXc75=Np*>aHSeWX{e`i2(L0GRP7R-s&)Z)DHt)c1hK z=sKX|>SbfA1UdKu1q(Ujy0VAPrn-DdL*Q?`^{GW?5U7v^-YggA~GzI1w`HdI1~|V$fhuZ@dxdXyKWNW zNtIt=A=0|}aaLPgvM|T>RwwU+%Fw2bSjDd7tKGt^20);7>i*a05zYdY_W`#%AOaco z6>n)sMXo~XI~uhsdisz80Qqrl`Pm!{s;yo2^FF>t&Hiv(sg!@6ZrBd7ay1- zokWn6bS8;$d!99l52Jh98;)Uu7FcCmGLbTO(s=aIhBmU5HxINtUd2|VtCm`T+^L3SD$S(A{C^sX!$fV2aZ!aKe#)xVLeXA;V89zkvvF()2 zV$`nw`SIBQ2yo2H>Wytz|A%$z;AcvYm2Xd8VW9o}%7YFZGeM-yl`!>_>9(go4xHB? zn!>hIcp7fE(kv==+}rL;L0{#hA zZ{-O))Lb%gvTeGeh$^fWhtNX^Ktb&!>3W7eCLRmXp~l+frxB909!q!o4m3Vg^bR#k za;NatK%Re=L54^zZ9TmkTCi0=1KJ=B&*NLaVT-627X8SC1NSQsyu_+c&clDqqum~E z9P%8dKemTjQ`dwhXzP#Nw=9^#?|LQ5UP|jUb9@oxaQ6T`?1wRB#v?2^kBaq9wDjRw z5-0KUm5q2XJog!#_-X&83(fFYllPMvRi?}8c0{s*o+-J#qguayx~KkbDq%d2NV4;i zgtvNCtA>6cwCZv3*l+uG6Ve*7yzQy$CzQ*(R%{bezTh^0$b-KPEc7iqMA+lIG^Kaz zm@2ulEsV?U=n}vd5_><9^~5gQd$bsL8#QH72CQ9a@ne7&ae!cWz~(Q$TbvvpNbO7s zd7%pnjc(#X1p=JeB^ptEbA-M3lj>L3%l>UyGA^Mamy?>l)c(J+D8>};c+DexHhaA1 z7%jrZ``@ic`CZUU+-?%YAf!xcD2;qC$gN(4kXP-sJza8M12Vp!T%tN4yVawwX8C`R z`+PZ=8TIwPi&LV?DW3t<3Vi14)y%g%QkaQ`E3qPFDFGxIl=3^hIqdLm@OSSoo2>H8Nr8|aD3wnLrVAB@cc3v6E zBSL+btP~1$@5Ja;^!EY6KP(3`0yTmbAIGWl`@8B-lg>7JOaCT-rpR2#)gMXCL=;we z2HDrObxl!rqjLiZ_1-aO=UNhV46v26^J>)1eNk+iTan(aUw^`Y1avET*Y21MvI~1Z z(CSvoP||Mzi_05K?5F*)Z{!eBb`c}13|Dj13n0p38Z=xVwCS*1>k6am<6(>01~xG5 zAYaRz*QQDjT@bpHVS!gNx>6^bV%59tsd}&N@c3N6%p)Xub&!AJ;*0LhaGR5d`jgw& ze>1)vHwYRRv`0?`f}z&=FU6(ii8NA2RfBK#_pjx`K(DBjU_57>k0r$>8z<%YqQ9p1 z%kHIT#X}I-D+H#w(bf2w*=i6_u^c}!sbQ7KNN(tDpw+#jR!5kls4`Sj2n0FZiZJ^xAd;`UVUEq?R&sK zZ^z+-kx4WxaE*QEM0tevP?RKcP|;F@vga3@8_84r2q;;+^pA*8Ccr)THF!bNbWl}| z-8o?_x69CNb^IIhViWf`AgN*?te+-+bJ{p6$&W)HcfqXhc`cmNViVD#@#$_~@pe^W zPe-#?WDif)^MR`<1R?W!0Oq#j$@Gi-WIRt0a7v&2sBGUciHhz%z%yul`R6}&drE+4 z$R}!bcZVF-BLvRQj*^>i;E`N`yNOQmg;BER$aiGgB0#L>6n5rn)$=yh?JE+!<=XlF za+`lKG^!Qf)g)30WqI~13@6_>e~G@gqwwLY#$?li=JKkt3A98>LQ)h&78cryK^k33 z0!A?qx#97bOp~PgEFxQLIcEa7^!2@|FigwItO$N(pj}z@1A}4St~%nv^>!fQDp*{8 zmj1XH8W4#@Z8qP|QMaJM_|rUdtU)HA@oCn|%mRybgUti`0qSlVELS!h!0kb+vw6`E zHvjuUTwL{Gh5Di&&NQ~=@sFO$cku=QzlEMP$YeFdVEtQ`c;TZ8qJYQX-F`Wf0i?6M zoo;W%*3LJW62&j{O&BG^uO(YSuJ?Yq)LCNQk%eQgvv!hzc1pM@JdB^9u+Y)vkL^=V zURg-c=JdabefDSMo$vS_YSE6L@PEfrP;zIq+-;|pJIm@?T!~dTyeydMLGDJ8Bua(9 z6ZBq>n11BP#$t>qPILc(k12TL^w<4ViOvT|JV3y|j%{5C1w&qD2^b*@$E|71sC=C- zGuaFTvq8iL`czSEykc>xCoeenm~|+Q<380aX+~khl`EYLy5RyLV#AGDluyt{ycQFv zBa$T1I@(}T*x;vL+IOVq;fXD+iVDF~ufX9q@~qyaA|*?o`8hFZz`s?qZeQ!~p^n(c&yT(0c zYX{7Of7%gUW{}`_@Bl%Z{?a7T!&>Y>hWli0aoJsxafgV;)sJ3}zC>=H-1OZx0Mg;v zU{z6>>6yGnJg0r?m*v)n*PC!6k4x2)s8bRP^MMp2_f{tpA+Umaf>CU#Q)Y#QYGp&+2(`F9)5bIgJ zt$D(YWSI7e>!CV<-GBuT#0AIW@nd>LbSq1$)>`sTa?0Yx@63!fRJ<%+CVy%y)G@E} z%PirP4Uf@U{}QiGPAl}l(yVKGojc4u!8oG3YXM&kZoaUOF%`xC78~Cw)4j72?-@k| z2*j%`WOrrB!LJo_sr_zfQ%Jk6m_g0SDS^=)RNLt7i%m>y@^4f68`7DPbuAT)zjhcu z{)p-KYbs>3;M`aSvM4%erGDt6%jxxLZ`Msqaa8my3;L(6ar$?Ltw8$qFhw%m0FXf> z^nT60|68s?)Iqd~13|kl;*GP4csq4by&R(0kXL9TZcBvV@#=m<;_*VWH6w#_U=`47 zRU}oCnYB!#!wz9)^A_ot`Y#v25TSv61GVmKl5TPh=hdnB^TYYZ!LPSdy3(}|W@=#_ z47FY!52w8rX+0<;6dR+qw~oafbut=;QzDnirOPw?VIA}SkNd104+quHuQ3JY8!HP1 ze36Q!Rm5*eKCfh}@=xF5*Wc~=4`OT8hIOEiPN|yy?e}PNf8gvAjB2hJ6~AxnfS?)N zvsU(TTLU2>Z&d`vHf6=xx7waA>XGlC_erk~dOb#=?%FR#(}iFgiv(XoLb(I(LnYF8 zb%?PY3)7u`cyGkWS%jD7NT-?OJ?2IVE8JPvUgT%>L|dQPW6(?&=|BgS{7eSbwX>@_ zH;kVf=jwjN@Vs;aP@IEPGD=132gSgs{=qJpw08T#qqh@QLsVP;GwKG=lVvI10N&0R zWAw9yh?nqTbd}&iMb?icv%}(=wY+kVlaA*f*dgiNU2xzA5xtpVkt(%3Sa%yFRhY?? zJn-}3Tlp`jf&bb`0B!VJM06Q+kxjwQN~M(9*9U{kbq>bvE8oy=Y$bMg^vH&5aoEqz zNk!&I-<7ioSFj2kqsvkxk4Sd03jyZ>%8PjZH_{!H($fIsl}*t3gP4K%uF_ap2=7he z|Hs%{M@8AT?V}P7NJvNyrP7_!jevA0CEXwm(k0#9f;6IpbV*BhOLuqIQ2XL}pYPjy zueJC3y??P5i(&4W`?}9M;tXT$odgZmM$MAOj7`#+7?)9ZtbHwsADP!+v86?8dM$x~ zBKA~Zk=94;VlCd+%?Xvvqg|HD)hd}DY8uA4<`ze9a0ss^Aw-rhQC@FG>lra6nK~ij zX^i}+^kl7w)7SznUCH+}Hh|~Z4Uc;EB79oe&mlLtp=BxPxUA@-togC(pSG=hf+d4g9Mzkm#)}yp`6*c= zM6`BGxOX=OVS^ZgF3t0GMtOOar?6lCK}v!kM^vZ%^le4a2p8L){uJ(132Fo6&PuK| z1GMn@-wD*3&N}{WD0%j-1k1y?o#EFl7~}ioydCm<`&;Yf#sNWPD}HX_{b7c}LoVw3 z<9IV_b;eO>_u%?_BjGGTL!{DJpwusnip&fc<>Eac{FOrhR#@oDG!#q3s)tn8fQ zq_(l+#L+U5yB1e;lP@k=fx^W;U$doY=$;}|@yySZy!_nJCSS2_q?-`P)^p3^+K2m_ zYdAjYW>B0ASmxpX=QqIc;FWlZ?1_nYU*Y#+=))j@#04 z92Xs822SZnp*O+=ubzpj%4ZG)kPAUE7N14E&OX)~|6^MV_7=LgehTEWAGiqmwa7FJ zPZRM;FP1qn@_W`aG>!)<0aD&qm+7$2C5;y= zaRfG?JyI)|q@9ge=86a#m04{j7MjS!iV!;NCfds_uJ9n5P)q#E9;(#ZjQcZFuf%hAFWliB zm2YLZc`5M^pBm^T$UQI+#zXNT{OFRiqav>swr|oF(~iku+N_;q-0$VjkakRl(kVBC zSz2Un`(cf{zp%U@Hz8ItSunNVu(Xb<95WhuJ-?jAT!rtX^uN9eo#&`6ShzH9qI7bv zz*`WXf8Bq(Mej0Hr-iTmxr}DnGL>N689URz`I7S%Pr}uW%}v``G*8(qVgur750IBb&UGE=U4- zEHQ|dNe>lc6<^Dpw9}pO#Y*URANQtX1htM77R!k4Iwnn<#;WeIE)wSkq1$T_?=Q#p zR=3MssQ7ZGc*ieH;{z8QCNfqa-by^-&PvUp-(Yf~_zy~?cqDp z{%$MbvK=cT${igE!*G|H`1oRXa%jJ9GhH;!M@topZ7QrmnD9fNxmy9Qt}=gz+1qA6 z{2{oSVej^Hsq>PllcK}y%iI9d+hbIM%{A>N2PVo3EZ8l1B=;X1tGn8oggr`+h(n&F zoEUet{rU@zmFu5r2JV1kCprlcj*TvJ{s#_<|MH|io^p#o9W%My78xDcv%*xtJTL2y zX4TeH==!Fg6{fA_GCbZ`zQSq6nELl-|HYGacn$3qZ1rkVeJA!absa(T(YGnIuxZl_ z=_~WGj|~QX%8XGuFTc{dn*OD&m`~P5j@Ta4fi$Lc>!O+?ZGGk!S=`ow!^EL}J(v zcTQP+own{j$o2GbuCb1Yx!{oNeeS2)!aXT5wvnSq8s@o+3`Ivr^LNI7Y$_=96x_a(;ktu@e8ZH#)eD>;yycbRq)DX&D%Z3ECw0tm% z3&l%=P(5kw91l_VPsf)L*xv~_j}JBU@&XC-RA?hwWKdDP6Gn$C@qUZ?2^#(_BK#vs zLuOJDMRJpZXxMpE)O4ZM}&T^0vpv)FFK zZlg+!YT0c0G?$fUi$v3#F85<{y*?*!l8i4{BEQ4kKTSL%Z|`cs-siNmfS)&4X3`rH zuzSkGtR`=Ds_~6_RIWKbFKkS4fh-}ZrCzNhz1$dUw#?@og`VM%b=4ywrM#THTNkzR z@7R~=4^q4wKS~maGiAD70 z1t?s|HFZ1N@<68(T=k(xW?EZ8!=BU1c15}a(|br04;w>-Zml+#4qq*A+PFp)GNKq- zLlqLRL^TJ_594_nLQaUe4(K($32UyUxIO(Pa^E@h;aEmHxR(%){Ej&d<6LF>4H495 zvOjh|Cq{eu%~mKn`g~*4z0frF^%sPTq>0L-qR1DYE^4X^Fyih*Q)!t%N!J{b^0~ zVPt=_gM}ph#se-VvQpmW#5WB8v?ZXTXA!)=dU1Kw78R`LxRn*uo0W{L+Hc+YP86x} zY9;KNviu>=#-@qqV>p}8-F8;_8dGZv<88Of z1lqEKNMFwy`b2dq?OWuj=SeAGquXj4#RM3m7Jwi!&b<6E{HSX^pcc9gA)o>y`DQjh za{wD)WyNaLY*~OQc-)?=2LMQT5?|Ytw!%(G#T9o|3=QK5Zou>%(wbO7$K7Dv9i4Y8 zSWFh;E9^RN-^a+N`7MR7U7LY9i=nMQ+`y~vPDc*9_S5-LCmZd{)AIu`UQ5`=nmSko zD?PC&T>;pV|1|VTO>#yZA`@~kv2COse20iB+NUO(F)+!V!%%IcnSIp=MzWCz#!A06 zKYkCvirL4ruHS!7D13b!<(y<+Y@+@Bxp|7kZ|ORNr4=gchBMT?~oG*0H8?Kdmhx8lAMQKgkxc?9~RdvB>t}MrK7JO;GD$)uK!FtZgtf^ z)p6--a!bt@pF;a3=+jI<5m;BM%UVI-e0ze*WxwW4QG!HT+w6We($(&Qn(@i{VB59d zvK3v(rui<>hO4Ao?@&MJPFA)5?e24PbwK{Qy|ByZUFgp6f~BOH`uoahum*P=-rpQv zO0T;NabcY7H`L^REA%!$jloNz@Fo#KFvPn%E-Z<(2kli_iKb1Deo7jB3!*>3?MAI? zmjj!K@yB zQk$BioV^@25%o?ClU${D8i1!aO8C*BN{fCHNFSdhZH^PF*(`$4Rpc1%L;T^s13%-& z$tmt^T2=y72ks56E>D~1SELP&+PAv!l8#;vir1e1oi%zHs{&C9&xEr+Dg=d)Hd=UE z{^OSnvnOMaDEs+dbB@TSVSDxWLLXt9<~o|3?hO5PaFWtYsrj9XC_;FO=b-Q_S8+TN z))i~>7eGE8FtVGLI`n zEb|eVAJM+Moow>Fp?2iKPy#BI*463GV22=ZlD%}vgc6$K9nyasa_3tvoTFsyN0m*Bq~Se^-9s`AWwo1g_h)`#*maHMU~ zH0k+{L$WviG&g@D>_}e)*Th$P;pM0s;|KO19Hs=iv2;gjkkvZ5KjPuA;|cdZJ5z-qix& z@g35T9vIR$yuPH#eZ<$0F_5tdGAbCOdP}7l{JZ;dPcpkCw)LHsz^-DOl>IUgDY%~p zN-pUKB0C~7*wW}Pg(!v@lwQnO@LV*m^G&sze>r`xAV3+YgL83zhkw)=bKUOJ$-uuN z`m>8W_OH^#a9=rpc_y3_F()iIgR!xnt*^UC0}`Js)yC!j(Q({;XBm(&K>2ZPe1y<} zng^F9Ly|lexlBZ(-QW2PK}z2uRw+m4T&F%n$-epS;?9fnH3A+~Y+cRdlC1*S&z5K3 zkM~bWG<^U>l)qV7n-;WnsSQe<&U1D_1O%jKAeDKayTuvTVt z^wO5njxRirS%3^GK%$aA2sctZRI(F$u}WvnvCi6pcGamZu=u4*NYLR!ybyNRn@O$J zgytwC;pA!CqnD8GR)RMCLKl`_$Hb0#8{|;VeNV{|V46Y7`pJ)|BHMY|7(XSV=LsW% zwH}(#AEhW)1+qSWe*oJG4_*wj1#d=Nl1nboqwt;+knif<;3edEE0{S%6+v(h|6ube z0-J%wiFH{YnC_I{VL;+2?!__!&;nbN8E;tlN7Iuj;4pHEA1M-6YvHP*v^L#Ht}Vfd z34W3+sSViB$`lZwMZ?w6wm>LpGSH&5CRRV&Bb*^{eBQ>ekJ>N|AL#UAQ>eF%Alx7T z0inI{hCS>v1ZGhZ5zB%m{D=MKEJe-bSM@5xkwHTB26@<32zvfPru#z1#Cm7nTspbd3F7mO*yRo@%xBpk)F>w!($X0YnO_CK@Iw_52=5Twdrq@f)P-qrXHsuC*ta8};cP8;cZwvLF}L|GR}2Z#mvg*eOlD}O z3jhRAY*$1r9#sFft(-eM+Nt(CI#nNLqlytF9*%CZxYaAAplJh)o2OIn$x=RK6R?ON zYhx1PdF49AU%-rhT%KWV#kE)M6ckD~%Uw4fcM{nTp}c^F-s=oTcE#&5fLZ0YV6BGf((bl%D>3-97~RoMrmfqWWgogN;?9k z{~K$@8%5Fxop%^W!?DgRVXJsn>{5>8(n6tR$1No+7qm8;+GX6?$9Z*XMNlY^ z67-XztR#78z+bQ_YQ@p_l97?X#@#J_vCZ3t&-Rs1)5F-wDwL5veS%iN^RETZ^>C?q z35k@STSquo+6EypPAa$HQqdyV!$CSg=EV|d=>MJ)uh~a6v&$imP5OD^4k3GG<0mh= zJQ32<AJgyOB!sA-El2`LXS(k&!<;itD5*pMD zYpYMCS9rf}lwFdC z5$qkcK|dq$E|u4;V5~_hqi*A5q#k`J4EFP^2@`!Zf4>TwH^7Xd165~Q3Qr2>e>;qM za$!l5!=mlXs}Akh#ac2?Dv#LL*!g+)yVqa+#RbFTZt?z5JzEvM-#ynP=1R94=W2}F zXpH}zHpGmgsSY8*i88x&TC_tpn|@C!QimM+K~U$tbZSVFz>t5Cs&eB_t(G%?9yea@ zOR~-eQ^itu=jVrmv`$h#|DMRe{!T1B4WGSeT#EZJDcve}r)-lmh#yx66&CITT!h?< zgdrRLBEg{Qsp`3NO|^Qe<9mwmR?5nb&*=VaK8qZVWRI`S&ej*!98w}iKJ9$SiBSx|)|E?Pn??t4U(M-8|BUPF zWxD1)z-mrqS=L-OKB{EU`k^M*bifJQswk=_5hv#>6ADTgp;5)(eMZ0bbS87?hD*#y`)G|$^db$AxCL(BtK|#aH~Hs%@&=4Lk^}$VpB63QFY>6Zna+m`RzD2I z+J}?Yp9GJXA-J{%xwVGMzNTQ^N=U$}^D=v>$Y~rtLA*E!_5t`LutoA-Jud#5pZpY%CKlXUJ3#Amyn3{|n$x3ql~CoLR&Y26j? zO7Nto`kSd7!k+tu(M#%jkNy;PP003+pG1i)QW(6dc9?|Y%k=|(V;__ud+@U=4@13<(B${M!GE#(PE5TgMorfn z7IAc{L`DKn3^-S*&pdIQ0?oOPLLRi*_7(|F=&ooFSDjW$NMRm8p^X-)c zTC2T??@&ua+vm9aJ{iAYXX*0d?JOcB8o{me15x4TNWg5!m5f9Uue*@9Fe zA&{D)8IOjda<5L?cV5151#F+B)K%~dZ-$4v-E6bT&Gc$}+@9nDB6AAHm(RozduS8m z<!Z{&k^*7soG#V^-+4Om8V$ z(J1+Foo8aNL$+1Uc&T{|8`M1J)9lbkSDem)9hDa9LN{fCyB&`K6Nk#3+yR6CPQL*s zmdWrKQv*&gKyeR+oF?EjrYr2J7YQLa}Z{9gvqzQ-WSm=u{e z@ZSZ+-p8ok>pKAduSoy@5E_LU$shF?TD*yz|7rpL4?k#7LC~c|)xJ!GR zv)6rs$N_czBITmZtga*pT*ea3Z+?(L*`MZ{@hSX(;x>MLQ^*Dd>xEybp+rnqnDTk$ z{Z=-Mht|MKxS;dDahbRVoO#qbdd+Yohf3){!s&)DBo%P0RBE8l6M1+q`|VeJ;EK}L zCk~XXv5Qpw3A`v#1-Qa$tMAbd_DzHll|P;~VvznF9!};|R07MKdW3V_FB$qkEMkmT z#RycP#}T)&-*2lcqRN9tWOoejyb@AHd)v}Q=X`BW(GhX~iT?kAHHCcH+)SybiP-Xd z^UM_2h9lxz1|(o0+>c=s>$4X$D~<0pS(cOIy_?GH^^-+q7N(7w@vCh9w})XPirxuY zyFL<$uEWz>`VwlK{AKB8{!KZt&=e|$yZ2DFN|lO8K7tF6!X;S$g^c(I}E13I!)c1d%J;~oxkhJ!9MoGzM8 z@|zQ3(pKYH2w!C2hB%wbx=?YwL=JapKxu)hHvL<2+JNCIxM&Kae+BZCFI)NvO;$L# zxbVL{RTr(aYLExHa?I?A!>xMMjL$GX;{goL4CMUY-3!F`KBk$Taf-qSmvLPA&e&WZ^rq=rUBppQZjY~Fz7GO5~p!TQD zq(8I73OgM)U$=OZkln-uitZ?yqqH_c!`X_Q5!aTzDBYOBVV<2t_!Y54x$XP8E*Zy0 ztyG+^M}VL@BmM++9flQ4{Rs=SE*1gR3s@S%Gn+3$PJzhTvvEZDLGS5%yL=c$Va{oi z2nT6twrA$p>r<0u-b4uiYgnoVZJvyzL+&KssD8o8j`_e@4Nvh5*WL7=Cp-nY#sAuP zJDVf>aw0cHrD24_NfinZ%1hrNBP=gPOQor989eKq@t=bCZkep&;mZU>qbSMdM{lpv zOw(OwX!^fZ>2#cG_5n$(mHF-W;}>1jFfH>dGp*}`-2liwM$Rh;jtk*+L84&`rv-wl zz{nSGAGH!4fx8mts?aQL{;cpqwZVPlEBuKfNvY%0Utc*+IuZ^&n>e=J|Ky>k{>|vr z9;{k0r@?5WQMcA1lo}Lps-bG~2+tLIWjcP>#H-uP_B; zW%TL{Lfs1X+ZRc+F14>((zl4X1;t1wz4z4rhW;-Mq`kmnC!(p=X3~0bS{0p`C8H#DV+u zxV>F&AJTmVVKto)2HxoZ#Qh&Uh{-=&zO;j#s??nx{&`1z)=v<#xOd^ABePiFmlkY* z-W;tL0TKyu%B)J^!)qaxcWA2QL<-;wC3Ys{62HQZ{$Lb1|RPiL&k&PxbRns}c zTL1UnJVX3k_|!kQ2txkpb-=WZ{<2r=k!1x^Wccq>xNv4np5JZC%2Q;Ph^FQJzEs7`FwzmV7tfcM z#ZTbDe^>ac>T33BNnZqSjLWH5?eU^@Wd5G~Pid%v*x#+A!p+F`Z?zHi<(yF!{ogS* zn$ItvFXz`)8o-lM&Z%gi{HI9)c>Pzik6Qm_(ewg&YMbwk5?UhifBwIZ+uJXcRXefO zHo;z9x<9?Lmsj<#@x1fR%l<=cG{+1+A-JVJ#<_j#eSJ&Qcy$T#AeSeZXTIIk#N$2o z;XtM#Q)-sF&HW&B%$>cQv*1-V3J;w>FW*Ix3cSUNG>L3GG8ytZ|9U2SRI zs-J8b+S@q7k6FY4%MP3=I`|_37pcpG3h_wM=kM=x?4EksCkj&Sco!&OC+fyCA6voB zwgt5eQ!jm*2aXPB#w;mKxB`W#MKc@o@?KCb#QyV!j~-Fuui-({cyQcB=KRPFw)lkd z2T&MEw^emq*TL$fLC|rIX**7+9QYuS;`l8Aan-84(A{Uyf1dVa1}4dMd;>a(gT~7R z{H#ZwgF`crEg1>>M**ld2TYD{=I9EGRw8+KHi1r43ULx3D6QIV+r|fb6+@4b(zq*8 z%L|)-zA;`z7WjLxQ1J7kUXo@Ez&KdF~IqP zG=$9?{IX8a6IPoOB{)+BqL#yB#oDZ-+=QcB<&O6&kt*1(H=UBUl$DqVw zD^q0|bwanxvRuZ!AC{#aIr_8ihmD%91SfN23POx*xNytf)M>W9n&x@9;?-_|*BKC` zpUDr@W^<2}Mt-yzZ`fGI{BV}oJix*~@fYDb)`RfsQ;GaiOyIPC?11dyDt{~Ps0v8P z=8DTYp=^30{9AF8I_||pJSRdrOuGke=R50Om-UNvK){-*qWd1-jlr)?OIWGs`|7IV$^&{f8&D@SNM;*MKV1TbP zSACQERwns>`l(?;tSzcPw1*E zQKDJb^*m2d3mrN`s60d&`qDh_G+TTC7^p8u|JFO(0CCvRGqO|;^U$jlPOGm+1*RFE ze;@VF*!KW6j&=cZXza_aoT%QGUchhWx&+@-LO;fmcCW&cd50E{2Qw+P-It)zb?7$@ z!b_VW@RSW>AtT<4-x&2@L~!XOwW=qyndN7Aoc!Dr@jgSK$f!AiUQGf$>q2kaqhxJa z=Y8UiaSq*A382ZUXv*q4Qr2(>jpdgKq=&p4zkl|CB|4osX{4SW0y$>16P{(7>>JfjQv6O9|=9xLu?6;#|>T+uZ;_qF3fHeI8{rQFhKRxy&omQT#R;~5iAr{jO~g9*XnUXYYk4tc}2P@ zjBv<177nvonSkG=v>s4e?h2}}8&5ocYufiv&Jzd?yU&;d-JU4Z*{zM3P{pxEv+@CU z&EJo^F6ni@+%M-Zjc~gSqXd}Pi7`MV_`sf@K+XE@7JLZz^qIc>%CYCx_t%?4eQ`_f zFR10u*vSs#rx%YJ5>%myy<0TGS3*}LxA!0lI04;d9>KGvgW{bJ4!Sk>c!_)H9s z<~H1^@vKiZ2e2}Ixrig<5L?<7JWkP>9kkcfGCb+&g;jMu-(2q3yfEtM22qgmOl-m)L4*QZ-qE zsCba+_ngir$Pr(M4ai-~Vd$i)?|!`|Tl8RW9cz}SY6KK%UTdJ37@)7G%)-dX;B_o_ zKWYv7h+f!j0vHo{nm~;k=R5U?L~Xr9jLut09 zWNtkBID|)!>}2B!Mm}U>pn!}tg$O<8*7I&2b@E=e+RA#Q`gF6PxwY(C*DkwV&Mw{$ zp86sg<$!jM}|#70(` z%v~`i&*xTGrl2#;7$T_NaQ>H%O(~k=2yJlzAbYuFOVequp1@bbx9|A;PXLUDgC}U6 zfh~1GUso$gN;U4LB>0szlsJ)9G zv>0mNFD#WIc-phH)yLetf;(E%VcV_haiuQ z#&a`K-5}%x3fC>7SFrDp-i|>S;|A{Sw2pamM+DKO<7={4{lG%P|8U^z8%>uX5UMuX zgf_3Yi`rSfdN;Be9_JcG<+-z+OZqhfy-A4vAe!|4sUA#fIagtJCxR1ZFcxM~u`G1da>77F8*DC%`g zg4z@m=YKomr~55*55ku; z!3qEuLsI51wFY6h;C6nHOWh}>n5WBm?L?cD{5dajYO)=&5nlJTjy2u8dGI|*nPGQ< znTG$y52YL<88H_Qy9mP5toqA^nAj5T{oL9;?MdMl)i0kT?5nk)|B2q?nD8|HH0cD` z6R*{uGdePm34rX<C4z^=E!qD&DAv0o5OYs^|l}QL~Hd3d9`yg8#IAs_$Z){@`o?f))0{Dh=QQi&p zM~P;L!+*G2TKd5=Mp1YKM5(Sy4M`tA(Jo8TY)D0((UY0zeHFp0rkMj`L6S|5vYp8N z`l+ZJ5YFO@%a*MEX^EUL6-g!Bh==KD1K{;^)YI#gNV)@94th=?FVp5Pr?@G57;iYGs(}YC$sGrx37dIR1{-#D?4- zzVE^I(ww?@Z51TLIQF!!si|{Rsc6oANX*OVKiMg)!*hNl7Y3^kmxm<%hpyjfS?8nM5B}!3VyGU_dwznbjI#KK4BF#E50=`~0 zS@xse!+X4b_yOeqhK94sS)i((QKFgUuIbkvTDcJJ_8MY>hiXPkZ zd8>TQ=Ju*&9%P7p*JTT@09kJ5Uvlt!Su(G|Y+1W}igE0pB7gw?8wuPuxi-PSG-YVS zU=}j_`W78<5dE7u=!IM0#8apLA~zxrqcU+Tnyjy-ivI`{F>zo&#d?)gY?AC6KV-*3 z=11DU_v&^yOUBhrKgwb>#5O`SN~An1E2xMr1ak<$5cLCH`WDWiabl1clQH+;IsAQ{O6jUSE-k&W?<|g=T zfCgmDW`rd}ZK+KUnIk?b%jE@r5S`@dS7wrn1<(<0kis8xLcOVskDX!t2~JUah-Awt z6(R(f#^Mk_fn=kIK&>eKRumi7tAbX(;m{sI4ABkkwa%sOp~Wz)n&UfcAlEk?Ors2Z zciVPz<_hqySo{GCWsi$Ti0Bi7kMs=fE&M_zj6(CN{lP5osbMHbW0MoCqe*vHZDI9c zq*KG<)OA@9YxaHs9$bN7!&C1d;&JVHiVu;I7$i7luN*jopkh#AED5J+g&^sKlQpHV zBMQIdIv+p!zfG@vXN< zDc!pj3`uS;m>_B7Wq+)R4Ag|^HGvRpYZaLNgy{vpx|U%U7-y{LXDb)S^BUz{H@pfW%Ud?=tw(-wrQt=H za%ef$qBDU8`!kmA1v6JFeJ12}%k`Y}0?>r6HKH-5m}9+ZI=3hikCFK8dk;${}sV6f+4Z*21kB`lW2psCXapr z)NJ@lEQTU8oWj@Ceer_m=+z?hQ@+jh_7Y6xU?Xnf= zum|sb-gcY_HDZAQ|1+W9u3EJe+3Qz_*^!sPui|nRVS$bfe^!V*juo!N{gTBs((2o? zAt>g)MAg?5fkJRQP6@OAs9mF32AGj|W066xXJ!L9fZ_(Yl&Y0usS`DT|rxliNuVbkoIYlolL&5s!C zF*ziD$hdykaq=#!Tf5TX08p;bn-6arz32=0)}Jgq3Kbz@8yEi1U8VpJ z8=Pripz_NL_h8fuyO*Nb`97k2$M0+rm@IhN)+EVF`*Z>7F2w8Nb6B@+m49Pi2Y4n5 zd|HS#crLsjoO3r3xUL+iFwWx?5)&&#rrZwu*&nus@VEDY5)-FpLRB-giIeMG%067a zM?(_LW3O&AYW?hne5f*|NQFA#Opes`JyR`IgQ`sx!EzYmYX=OZ<_$?F~&ef}m->x;>6E?UjyRyxpj=u9{Gd^US2j zQcpQYXp~;bbeXzG3HaKIfrf-;TZ-*(MHKj)WCc^%4z!5n{keOSB_+CU0>b|4*LvQM z(TWSXMPUlwCXA6Y$unzOc?aauBwPbPTFajW%-4n!&+kBvFEj7D`HdQZV%>x^fKU)J zV1G?u*HXxx=>XWht(}c-=Xh-!AVfbFGtNQJwWVE1P+;JQGvCO+_?z~4i}2x(u)}SS z=!{B0MjE(VB~wE#;qA`2s~F_9xM`gi`dxUNA_3eTB;-J)^4FJSdwH+_b_3KHtfU9k zv)1KzOa9MZ+|pG)^rld>1v2XDJ~gd-oGgH?kTiO1y`Ty|2*e;eKoYSzr9UG}u!On{1M*;gXo_?6&{+5doip7=905U<$+cWtzR-x~irXrSCfLZV~xx*Grtl z6&B0_ytk?1bfI1R~9D-wxwKJt9r=3atVXIgO(L?Mj8%Nyni;# z*V@Jwh#r#?M0NTw4eJMP)aksTU?V~WJDhn!tKrx6^I(;$TMu?t;S^AC7NX6}GmqNqXZHbi>i6Et9nud>b0(Czd#*FIUIH~o6AL+JCC zvNe!9M>F25*BS83Vu40p(Hoh?w&i8_&0#Y$YysRD`V=kDc^M@T*{gr}OB*PRt?-)v zH^r<4WgSIR(pr@Bj@nqRN4SN9gJGc{aB^w8^N&9?k`WrT03q}X;M=GR{BJtgfQMIF z$2&PT^~6`k za-SKAmjzp~qgNG8VH={?i2QIm9hQPu1Ss4$+o$rl*0;G1^ZwqgK}$iPdH2s}Z8-r` zy_*RN)4EArZ|x>?k9PD$za+b07Jl0PX!-9U-c1g|H0}=$PFTzJ&KUPS_#R2L_^tBxYG341##M6rW z@(r@H?n*ID->*UTs6p3#B^zDn+mB;Zlj3R)f$~hF`%#z@mMI8EdK{B0>{ZzCGkiqd zTfqDwhiEq08~0BCR%7v4hvag^)QD(}#VENoJ*pL9Nq>DOPN^>RnfvXpCK&Xx#9N!u zPI3%utsqmOKnqtc6*fV?=sQ?YK8ydFJrG!pUtoI1))GNwGd}F??W9Rka868J{Q5&yf-}E^3c|}?mOrU5 zk<7Q;?HC8XsP{WH_0aW5p?hxN)Rd!{V3p@bc91jF@V;vY^{{QfwCy?2iqx;mJ~v@` zu?f!DYRwRoMn9{>E}FBt1S;rJTfdneb6+~7e*h?|r||p4DR8-{%dNysAx9(;VOQCaHY0~4!2J8ug0mykt{+uD6;i0Y zB9omEDDg;;op=$Ud>px{-IhaKae|gE&Zk1!%I<;U-4LW^*VF|HM{+N-RepL5cc7q{ zWA?HupLJP{FnR#R69$L9LuLH;M8Y8@Bn1P_0x%I6EupB>b-@nhKdp9c`yVd=NIRJB zb(~gAzWv$Noo^QtxnDi2dPUk`1H4sSy&q0JtjJRaai`{!cHEXKy>&!>#fW0Vn>#l~ zF0wp-`i_$Ch2s_iV=rxBGGQ`v%`0s?=<5oVx-JABaHN5APai^0SX5nplCA3>#Vh4V zTvvp9QEKX!?bEn#Q;&T3Ewvpe7^lv;;9|(EHoqH)uBkLg{O1r1uBm2g^^(V3-uwdk z9O*&X75*xK{#{o#Yyb}{z7)7`?QMx#_NDn{SxM*c5g-9+K?0LBt$8vgH4YxT=HHe+ z=U^HKJB@To6v4!hd5uBtIl^K7+eJ6Bki!G|Rf3!_k3uVUfij5c!AdP#L?@@2Z0|0z)g-pX*t@M~dr~Zh3Bh=IQd*-4*>Yn3)1OEyZW6Clt>J|AnoeA-Bk4 zz1-^doYWHSKGWGg!ZI@%FxWQBY^@h&_v8=ofIvxNq6WqNPQ-23Hf=iAd;Qpk4wIjD zha&Zc)5FuQ*Mfsk|0t@sP!Tw&H8dt7xCn1v38kL{<@8z-F*CV)@`7F0H-p+$MO!lf zeyDgUj3uq5W;kzMTHU{`j+zB)s?(>vZuSLi%+3%B+Whm&Cl=a6;ymp91>@TUl==^U zTlf<{Zvganx2EdfB~cX=3di<-oj~a_CvCXkdK0`7S%$MpgV1W&6`25Q=%H$x2fgjd zwzYX){;~L}NZKo#3gg7riv`QUNDK1bIoHJ!4I|w49MZGatWe3a8wRrRBD-mWKgAGHE*au0)ta$*EH1~{} zcysomK<9hP*8QUsp)9AzRi}L?5`C9E|MA<)Lft#*nKMw_Z?>iF*VKNTEiV0I&xRSw zP~8e4axq-UW^3tN!wq*?!dcf37?tIn)N(jKTrV&+Min0IqKE+o5GoKS9tT9h!bpeF zC4DqAkE2#3>*A`vXXUdP{?1fYH^PSKDTH^RB?`R_IF8|+D^yd684!eRiM58ffGOyg zqZmT=@2+UG&-pE&@j=&XH}=o`-oc9FEodCp*7vjoMrb6hdxIGEeR(k*&;3<~+p_Bl z4?I5>nb99Xt_b$?aPad)yrMUwgPi8XK8z{OQrcK{my5sBx?H)ke%QtS!pgs6^PDSixD zr|D0HjJH{9BELijA8|1Og_M2Z24<7>2H-(|_4LYTJ{7v8pY30kYuYULS&|V7i9B;h$LNUkSsWjHjFhy;C)J%GmuE318h(01t8t^{f&g8!ps!6Gf z%<>8UTAV7_D1hGE81L1fjuK}^5r9QPv+dXTFaM8*#OGyyJk3b_J1Tj<=eaXX@;Nid zFLX__u~;Ccck7tTsgpz~wR-$-uO({#=zGio6T|j*PN4s)2VK&~>h~g7MiXtVNMsa& zVi)lyE&d4GkLb^{p*@2O6R;zQ@D?-ehDEH*G4b7v z3&(2Vb$aZ6>W<=%LKn=Y<}P;@9UY-dBpnTyf6PniD4Qrgnu8BYzpi~ZoGGx)%m|-_ zZeaPW^UONkIY5jZgJ%uXxrZ_dW_7~k2(0f4Y5e=c7l2KRze1LoViOoZ3(b{y-&wG3 zmGS!e_yHRXMU7`pqf*UB67^LbwqTzbM$P$O%|5s^w4y%5v-GS;ywgE?b?LAMK15+c&1U2ptbJeT%O|^I$mhi{1Q;439j4>0 zvl`lTe@Fv_DkQ0xGsfNaOHgYwSYqLpp3TqD-k$lK-Z95sO;;w>cUI2Q|=C`SuNc76qA{)X${#YCFr-UGw`{@6o z?5)G1YQMH&K@_-=5~NESDd`TSTckxwx}_ULq+yWmP6g>kK)O4Jl+K|$ziagVJ>UC0 z@B4no@%hhq%nW<>wfEZVTI*crI@hn1_YzkhQ{umjX!oVNEO|qU5GAWexn%_}%?`sW zLg1B`tP8R+KH*|Mc1@BeJNnFeYhF#Y)SoAt-w69}dvO9qhbl>}P6dsONJ}*12e_zj zU#JgPJ)^*W0GkBa{}W$(tc*5mGqV^%L%xpel!T+eMEKm1cdros`HWNlZg|b= zD=D>_?J$y2AwKB zu;ypMlVP!CTL2y5Qa$I)m;lvYmr)tItHb~YBXzP=LG7O;0AZ)>w$FekVfz(DODJ3YPYx7zi>+Edwwz<8oN ziNjt!K47%1G}%eO^vpwQxB!XqU|pj-5)cRJ+w4u)<6dXKd57jz$U`LLarRUql3VY) zp9o;~i(c`yj@~~Z6Pz9j5mr+#XY;^Zs0LD+*IM4!J#}OkEib#bQPe|T77Q=imbsja zNcF`b^%s$W+9-LYP$%OKBg&%TwLgdtrr^q?Hd8t-r-ky~)Eos%p)*p-HRbjydHpfm z3CuwJAp^nWxA+}B`Cj2t81aJ7T;yZEOe;yZ~FnrozYx$zp-%a`6+@g=Ap-3;)`MbbM7>7~E1H!m#B;U#k5gv9z{Fy806{MTP)XT`(+h{ouPN=V)Hl*XFAXwyq&Z z%r#%Yca)la>lJl9{J4TKqF9!y^4W${b&9Z7(UTF8d_{Eb2h}k%?Mi}x_tBBtSfK24 zf7>Sd3&d8eH~N=r8Xxmh&n&f4hh9_)d##^qhu^*Ky_k1d#EE)RPUb>_v);Ey#ch+Mh1-tr{*xq0$}y z)dA%c@L*Qwqi!p_*_TvJor$aGHwN=F%|Zk)8b%(Pr~WE~=umQHGmLXHhmc-$OaJU2 z$XXx01-(^AZ_0sVErHvLcP`c0;)FyWj(=jC=ZYlTX*S}!ao3{CAlBft(UHPY>1a%J zmF-yeuHmWSH(p{SZsM+(oo(x?YswZ^6CzHZJdL2jSaS@aMdnyOb;gQ~WA*vd?Io`e zWTgDq!zPzp-(RN5Wk#|>KJ4#=Kb{q7q3UI0XDE4lhtq*ULtE*9+e!xO<>-w^$^R*{ zxKq*jO&0rx{T)w?B;VFlZK#ew(qn=GyGkW;6HRp~W;CZ7XgpWI_I5jA7mHN(2|^Y8 z@D*TE6QYY#>}ZApE@O?Xx!F539f6R?f%c}x7teiGse&I9_#6-Lv>L`p;kHuUG55A1 zqKC0(vWQ<-@-99nTT>&-KVtGK8M;b!trE;~QfSuLAsUdXS`O<{3446$7xY#RC{`RHWOgKgowME5k zV1!;UC=!>@fRMm63bHPcE;55`{j$#!^kXbMI!^xbYQ{yM2u{2`Wz;1f>m)wa2$CF6 zUr?!r$`r|VzDr3e$i?wx&$+G}C1;_*YH(i19uQv7 zumm42ev%Zv!;^TCZY448dhxn4%WkIe`7ji#+oVy>RIFvx@;|H(+*cIr29-fd*Z;)> z`R`2vt5`3+*aIb)=apGdkI^j|g5%;|z{f+VJs8RQ7nLfoMbi9k{#qFpSH^%-rOh2z zKJ)5>-#&b>hs7#XsTe(^n2;P_{x>u$ z5I~YID{P>wdP0b(^8|tTreF=RMmR4{u4_~s4P{vJ;*ppdb58eY1`t>8Y{NxwAVLIy zuyYhS@%0B3MNNV{>Pw97YL4XXeEH+Gc8pg;fnklH`u=yQN0Zb8-vZMi6CUdsP9GQp z$NZblijM5gwy>0A^R7d?KYE1wrBW z9_=u_+!CpfXU{iP=tJ}J@=mZ5l*BSZDIZ{3nwv+y!kSU2Q=HZ3a?=-N*71G(Sf@Ap z@E+>1PtXGq7~<$PQmZ;w7*i!LQKU?k9H5mL2+FE_CqpHWFZBB*@-D2O1g{2p z*8nr{5ytffOr)k(i)rsAKWaq-k3e?fNJ!SRRBEDNN(Q2lAj;$cZlh@HKF3RsMc1(2 z?*4Q3^a1z8Q&ftb#wW+u5}uUX@k_ct-wk*t5gw2tVwq86LFl?ZFWzyOI6C$#*7J0l z-Bv%flCk_&acN|bD{%^i5?0vE*IUWTOsF80pOd(MPcXtm#QO9AiQ;R-uX?AQ0nkym ziO5szB=_o(rdw5XloVF7-v8&iH%@w(m)~?my{3CTdH6fv! zB_;+-6C3G-T6@51y0j%l*lVW0zn_VDb^D&7BsppH{xT)Ce~6Kh#Y<%KE4m6_& zU&^lS(bq__DK>pNW=?6A&#~LjjZ`Y8D2?KjeY(GhPM~zFZlQ7uS!d+u&ndG@++d<( zY~Opfvy`vuY=*5&D)CE7O2YI7hFH#c6)(gx(or`VzK$qEOY8c%<)igxymZ#>=x&SJ zVC7_Flaw|;(vyje{Y00LZVq#<4BpKJ?F9Ddd6A#aSDI%%neyRRhaMWxsSm95C?2Bj zV<|6g0n4eSeis`*el>hg(H9hONlv8)OwU35kjqp&kqFR6o&(C^9vD8 z^(8!Oy)qHUqLBAYS>)>Kv#<7KDKZXoI;CLm&GswZXs&!pb!Ku5Zu7)KSIzN4OATeT zWqsNW5pqPfBj5hLxcI0A6{|kIZ(x0_g$|Rf{Jp;;b*bYqjb!s2KT1Pbqy{bo)8o0)VYPK=`wE zxY_=1|AnEHJ{W~y82mBn|LxQNyn8~80Qt4uV?j0c=bh5GD4YI^gIjFIjZB!x;OH3| zD7E+s0aAwOm0nAxB{9LCuOA>X28tGF}-P=K$N;#~F5gTP+VcG}@n{qv@9X z^ysVAob;o=XGfnZ`h(jF)F^BE0a=ag=O_E&IWTdwmU5>fD$i)@z*@N0|thMk^#$4*kN-R8`QPPIXuq2X}j$&SZZHv zr2c#btN;t4(Mo5f2hCnZN2lN9)B$G5K#O0Xl_r;iQZfAE5?E$)+7-}E8r9I!()I&A zR6Y(qK04(sMR8a7j~6^efYP3}I8Fpad+gr^>vYGW!{zD+KnkInyBmcMzgNt_ zv{#93Zw5h1(YCIVUcd0(WxmQ;rPuc%GNDrSo3`vl)B_~x=Bbx!e(<~MoAx}TxF#0U#x11s=`;z@iMQGNqzg5@zCo5@@`G zmKG_6#xMx5G+&54Kx~u~HK+rr|bX-M@Z)t>jz6z>y~=g76(YPm(}`8!k3P1 zlr}M`gk)sgS5MH?iQ)G1i;kk<gKJyP;bsfm#{6o$soYqYz*EkBJUTU?8U^(~VjrlN?~94LN63H;Z_Gd?12 z69^yovkpv8CqQd#OT3IO+b|;%$!~s(%;*GpoXr^xf|{THXS>O5b>wrfXs&#v^y*Mr z?*LBoTBjX#2cR`*{0>PO`4r&WjC-$` zKpqg!F98GjCN%}lPR53ilq!Twz}TYv%U1k7jGKTTus1hg1xWy5Y%+esL|Ja=eq{~j ztb9YL`*{N<&p_lEp&*y8tNK>o1-Frp+%i(SUK;|7)o4%nh1UV44<*ecnG7Acimu3nV;ZM7U38>YlY_|!sK**Ur{u7#Jq4b5Gkn*1*SCj8rk!0~+E(FLQrgv4 zWh*^Q`=RY#=rASAU+bfHT5p!mon-V(PZc57?yX% zCwAqz$p0F{EVTgbbw;7Eii&A}Fb>`4mgCr#2N$HrV19`v@#<&~nFN%u=WBDT*T$|! zMKgKVJR_tcSXpB+uAcKfFy~mgUo{3xw;4L)q~z(P-11UAKTk#((Vb-uvv&KsrKjmE ztJRv&Eio)p-4s?CkxU%Y2%GIU^0kTh1YepzI@$$lXkh=amtPZ z*DO0Uef=m{n>p29-RESybxKU{C@RP{oWmj@bN71g4XR$>)lTH z`~%VD6)0tETL;J`PyG8My9)1HcMtD7;0lQ4w{HyG2^}#lF?>)GXSefVj+j?1Q$u;`lVY%8++)4**#y8d z7k{48?MuVQpTixc5Czzt3Ld&|z15Sut+>5jEK_nWz@#R&UyIdv=dpaH4GFP|7D-dB zwMr1S-!|WLHVjJ7*DU`={}Mj?SCLH5^VDQFO!FkJTL%=hXo z8!w?l-Ui6i?lSYB*laX3HuYL!SfrA4Y<=EaMj(7!-vYmSr}RbW@v(z%vGOb%q__Mi z7xT~FBY;@WTCTt|_puRLWvOwH79r(_+M*5n+;w{{qMwdLNH7d(f7kcff3)6^U}kIh z!Oi%$F*!S+(QQb_>6cQt-ok~@D*0Ewd19;I8o8#3p*lD`{WBXSKL8dzvd zFZ0R)B!FQXqR4PLi#8*dlf!{1+Us#-0q>iOw~MmQ^7T$dW-%(7DPA!*wU2(&Yh3_$ za;qR}SPe&QJkKgz9*0sWJw_|^Ysu~7wxgm$~-pZLsRQJ!;Mx6R*A`;F=5}nF*IoI=F2(k??{8=y$2^a5n7aW zM6wp2^13`>Q@T^8EUNUVE82ZOU^mQT<{d;ctQ1Zcm zE!|LxckQqkVRODHm0(CBHTeib^z~UFWb^Kg{Xa4vs<*KkK3vj7)1@+fqW;FQ438Jh z#6&wCZEVi6=ijgGTD%FAj21jTcAw)Me=g$mKEyr~ViWU_)Xs@p$g7jACZnb1aXWD6 z7!cuU9Fp+UN|@QUw__#VF2$1w#h~c1-4gEaq+e82mR5RMJnigSnw}`#)w8yZ6i2DR z@EEK7>-eCMlQY?eWIUU}jETLGs)3IcZSb{He$wA_@@I|G9g0akl{HBDIw60M%!xmK z8+Lio#rmXp?2Le*@mfqu{dQYpC`qS*rL^m6>rsnr^mtFew^ZqBZ`;)9u;F6nyr_*) z9z7kt6OZJz`)n=U@$!ZN1fVQM+Wee$ zc<17u`{dFJdzGs(Zf(1^h9O)2{%#=Z!+#v@u5zZ^rNht!?pHG87%e@|T5o@Ve|*oV zWPIv)He=Vs;hu@1&4g5DEH{|$nt4_`PfW_b{`)c0Z5}WBRk|ga(pz%7%6GSg-Ll-0 z``2Fu?3P_if7NrlJ~fIEB9im2nLb=KYjb6n;mfj0n2E5mcuE{69(WYr<)3`pTcvTE zE!HgIX6B+ue7C^WsUq-JuZSK$mrAy}v*h6`KkNHG(%7dWe**JTBn)z4s|bdAQ0L`W z{Ac~uy0h5@PJ}Y)WR}xvBz`RScM|2pql?pe45xoi`icW8Qc;!Wjz&5U zWU{G3#GZnuDigO8RSVr~ycq8X?E5V4?R}uLLYdh8NgJlZ)h0^d$KQn86D-z3eEH`z z&&u?bS*6^lUORqqieI%QEK0%`J=%Vgp1m-cEf=dHRXHxXXtQOuK9vx9v#1Jrv59j1 zVNh|xCElW3T4}|(oM&Wh7_nRRBhqA90O~GKML=rEpK^(T%JaOFawzg#9EnWPtI;%n zpP{6zcqZp8KNv33dqXZRb(GZC)*DWj`eSstcz>?5#*yDKY*GAWnqcwdQDiN`b>;p{ z6@TZ@Rs~YR9`y|wJkhyOt?13}`Ug>xQgip3bobt4%7x*NB_L!e z&L2h?=E_Dxx%);lQImdX*FfjTW_*hm#YssEB)(?7=jk2s;cs2(5BdI3Pcc=^jz5X+ z>}XrM{6UmP;1Km*Q!@WavTmHi8of%_h3kcYW-(;!%&f_Tl!$S2?B?kSQ}WZ!u52e< zEuKsWwxw-o%ue6yK&9;Y+blb4jg^+H6p^%XFOZ_@re;&Q4X8!N?#5r8FX50sbSC*0 zpHWj`FwYct^<^n9VHGgV9M?9Tr_x(Do-wd$)-~`-Y%F37}%ajewbWUdJ-d3Ft(PF zUK~^~#Zn^o|7UdWC6GGxpdY&8hJn?hC9jDb%t~H7ikNtGw4M_E}`mN%{z0 z(uQfF2P?@pI8fzWCgx|O1$28x<9)m{pWS8*BpN_erK^pE}FX^yynM_ zv3Tp)-1;=@+%OrWI*zwhNMnwT8&fj|F7pT@$LjDfzzq)Wtv3-6iz|K?3w<>%M*;8X z2Y;&2*{jF>g$_^O$S8i#vfMWzmn-7Izt718F=#WxY7_?)-SGp9l37N78&C^CejNKfx^g!N_bz=8I5aeZGl_vJBfF8>^V?4Nej5T`5K zvY&4w#SlKrhD@~IZtrWuaS(jjWia#ubCY#4zLBF@wu3J{*ZUp ztJ#mVH82#&6dy+i=EEN2=UckEQg4R-z@*IG*^$_JLvGvMJKN|H5B=$e#@)ZP@sIDb z*P_)Dw>05&5#%Cd)0K78QH89zO-hB0A+qfH_#%0Ev{ub>?(6I8yS(%)z7fKFKCe1ewD<7f4}W zDeVbQvSfkM-rUV)`h6WdxrTj~L#@R^ML<#g`YG+o74#+#G+(>i=euoxqZ?RVHG1R# z6_$J9M@t337qoSyyVYi%oyi|NGTL)ZF<$`eq>MC1 z*IQe$V9QDJxru1DYPz1kuZ9iozKHjOBSKrK05%#NOajD+DbIZmA9Dzq(ACJ;{gyGa z=|ACg@TS~jQ=c=_^#Eewj@Ntk>XPJJCI~qZFQT*lJRYL^Plt1ooq0t-2lYBA(zmR% z7rK|foXI=}eXhxRAoy7ablsgE_OIqBq7=jk&@#|CI4^kEzT#ZU&(EKvFwCCM?{<`P zxurzT4gb1da63BFCng843^K%dN($mLz~)BwO3<6hK6Rf6AQd>vbOWtN{qfB=&nmzr zPfK|KQ%}uC1~{N78ihOmF6h_f48$NUU+FpE^j&z7+ZhekKzt1EG-dg8qQ2K-t%i#0 z!E37~C)4yVC@3T<+QpJ0{39Ei=$x*W<4vI^(i+rWqC6XgROM_8w_lIU4VbL-7D%O^+ zHA$`w07SP=%fsg0egpd!*!?+**_`Y4_|{`$T3927d=Dc*|g_0BnzPZLF@qzV;`O>Zcrkr2{ z{c<2P59*pR==EC%Xoz*sKh8yuP|4t^yHVSCvz=nK=sr(0`WOzSntg9FWNWNp%5lG8 zIDqTwa%m1&?5&h&HRH{qEvXVH08DI-SuuVWHRytnGIyQ&uNADXC%$+|g}H^Qx`Qw1 zbti-H*FkSuBF-ejb>EWT+&Fc#6GNr|G?alCd7w<^rG$(9j{pC1YMaFMW%8f%Bz)O4$`m8I9LLIc$qdj?fkL zY*wv$;#)nBt*ag!;p*^fwt~D2hjPdVJ}!`yD02%1~sh_jBE(&els5k zT>4gs zy<5I7XMJpfog+Wf9q_C7d4@!=$o=vCh}FW+y0weAEQWCls&#+-G#;RdusCCA6%rRA z2zCKu?60?@*Wq^^%@^sghA+Lk-4hT_>?=%@5ufF=LcCbXiZ`jOYRnHU_4R#q?Ba7SW~G^!5sB{mOk8xO0W=#FFs{fL zOuRnC^gi%%xVbodCZ3q3?hm#twQs0L|5~W@D^b6_;9xt4)$VJ_F4mZ>IYbmw`FI&Z zD3)d-JPje)%_92;Pqa5xaC}6g3*yxcX^VyS({mxoQhfv(&A%@azWrvX?ih8HKKQOy z_*rMHtIQzxtt2m!Ivzqe9r#zzo`$Q%{OM)ddoAlC*<53U9NDT@y8rqZR8%tx&qc5E z#6U84dV`RgkxDsfQezT$2t)}GAfeky=wt2A zxtVMSA_4IF5vh`IHDAPQS`dgA3>Kagc1DYdiRJFRLO@DF1r-hXFZ+Lk7GJXG89joH zXgS)7eqMin2o;pta2bk!Fj;A83nGCXgAhd@sMt`U0z)N445MRId1jPj1Y)X~Cj^K8 z9_1&}$+*N^G=85@W;LzDg7}HH-GMm|GEj+Lx-s;Dk>QeVv^Vi6_yx zq{%=m7f$1Zq!y!XBhcx}{$2fm@&84hN$>{$`7@oL?Z!~uU%DUQg48txFe7(L5v^>ogy z(RS;Jn0{o^9$p4@+(KRvp*1_8#Q9r@e66XF-fgcfp?804EI)i97dO^LW3aX~=jtd= zDGQlYhTh*U1hiUSI;;$`x)n!th)c06hQ#`-Y1$sH$UsZWx4GSV-Wgg5esg&zxu)Q) zeAg7iRCIG9vo{j?n)8t&&(yekkCXqhtys3)kKL^|I(7htySTG;LSms^SR?O z&I^kY6_w~}!THPk3>~)thBI}iyb2dJ5v}(P`H?9E_pH5-(Oi}sCBQG)w`wH!xFbP zjIC7d7H_Vr?oQ`tRO#U6R2dCxtM~vL~AE z2YPgBK@_@*H)toaT>!AGG;yBc+X?(W!!{%2WLW)Bevk)9a0>1t{sT#PGjN?^OBGHu zTNFJ;&hCmXe>Nm^p295Z;FDjaI)AE6>!s&g;mPu;X-B1CQ^pzzT*h-^6K|3)hKNX@@>4Rc$<24 zI#aAF(;F$N8&gaTprKp<4ZVG5K}>tGSON{^MK?=T5t4%bgWr@gRUjd>)~K$+2S_zh z)t9SlScT=+Pv%FJ&pxZ$Cr5wrsT}AjrgEF@E~b*HYvopOlI^i{ivs3!$+E{_Ry|UKPM#H~&jYepmT!8z z)#fC>Yb!gp2ufiNE1e4KV9G7V9i2KfHOu(kXA>p)ZkTPs-#%g>1Mc?SfNcUyycy`G)D{rJX_wCNrjqS;*CsD%W-jnqX zKPRp>?wkAt34e4Se{A<%(D5uj88i=0Kl+DX$N>BLl{Ok?`enE7sIy=>! zJQ3T=MnCrqzu_C3yUjP`)XyE@?P%aHR427Sld#&e%BT7+PSh4R#-3HV^rrwlgxZa= zqmp;*ba5`R%_LWxF6DT^+3JBV495kUZeg~`phJ<7m(|DTC52Xy*QHzGmowoH!T=lX zbx749HOve?`1q81NN94I>`oHqHWu zR)+f-E@tANrb7eHM=ys)*kDJv_6z|EDQSCKL4B{-?j)+7uhA;1r}*SQrPmp)lv!~a zg|d*4!ZtYrB+8-`>aMnxl0{R9bwv>5slTi=+MvDL5wnlEC+xd+)j=(Gu#` zmX9!=S#C9W$tG4?jZOUj5dVuUK%6 zJ92nzTn~~fy(vn^3)hgijXt0yfK|YPaNfMXE3eFV3X9!MOxfQ!Ss&S0^~VWBa}$pQ zl!i@Z#7yQ9#MdWfnKB`3R>8%Cm$xr3Xp5_2C1Mq zni9|4O$em`VU{yht0>Wm82`z7+b7I=(!ruo=O6XsR^a%ZSU_7yWF_H@nHv46g-tlfw8#UQhJyioQ-5$ z^_KoGRwqh@;PeiN*;oLsubRhMCI2^Ix~b#gWtWfPP})0?tAa|jkY!tCMq$tER4r!W zILE0ERkGqX;KX7jMU#~lK+9sT!zHL9;-rL&$mm(+0+~oOUoz^9ySPpWm^OAbYL0lt z0>aO7WJbqFCW()}KGWR7CH!Mh>a++76x-8}yjD+8IR4ZyORx^C6Yzve4I1A%tm43L z);RK5gUG7mPV_z|FtQ0CLFRinOA1GN&aqYacVKPJ6a{=YFwFd*dE5c}4RU=`Xmdhsdunk?K$qZ+cX| zc=y9n_OY)w4Fz%Dah8*M_H4RqL88}_b!-i#2F!Y zWTxN7ov@MSG3dGHkj@3f_%OJOx_07r#q@Kr5&%dEgosKn584c!M^=9MJ~UZuYHV?} zH_N5SNWm&aaz#c#|M$kdd4*W@4h)m=WYN6gHGpre3AUaqJL|BT^JJcdi&W(V2lpJU zhbILQtw*)&#v48O=HOay<9r1@KiZ+>pgx{@xgv5G2k#o}hnGZey{>VMn^W`_qWJlg zHAFDoPQSvbHLQr`n9v{zl8G;(?Q(iq-Ilh*_z;Y@?kK z^PWyPNMZ(Xq7ROaOw$s#9)K|7Twyw-V4|=8v4>@gmkF9=B0!Z`ZdlH7mt`xUGhk4j z2{b^g&Z-w_JOD6dVq|2*z#55t_~ikTI+O1&`RVKrMt*<-x0swN;DU5p?j$E@R8u)D zz{WPB-$qMEhuFYFM50Y}7V8+Mj+gHOF{6@?@k&V`-~okQ)FX|y0ApV{B9tO5#3fgI zodcxqK<6jl9?gdn^Du?e8S8PTsWultCoce{rn9*2C6twM$n96fF!jV)pIBSq zk>>b{z6B2;HH`!SNWk(wi3TH$zfz?uT{wIq;1ARpwE?nVC-AH3sFx9N!+boqrXRtQ z+}0CK`^yZwcK5_YJcu~=r^~1`IqR6mv?hA{YylrYKYq9YJymV%jgiRJkjP~Ia+R7GP2j1{&9XIQTh6_x)o0FO^NeTM`5L!TKmTg}KT zDJ8>^U9y$@R`G@e|It22`lUSW*U?+hm-2{?;3pXXvn)!D%QK0&tzH694?navaWjgZ89e-> zPpO3eI=l>h#O)jl}ad0v!~{_cf<@SeGr z{3Uo)w|*Zp90P&LWT57$>w)C=c&+^TJNZW7BR)LeMn#8qR4QJbe(3@%#>?)U%v91I ztN&bFCIIgOb;SfQK+~ruzU~xk@!+nEQ)0u@S zSFec1%x^BLO1x-F@zK^x?)gcSwxvbFMU2I4>SdHRCan`NU$4k?C^s|zh_(r*IbC*Q z{=_-^YD?AU39_#Zmh|H1hDb)oe|Hge0$(V!PT!@U7-->cWvqrezbRB))-p}K9Wm@( z63=v|yi$C)>&&8*|JLu!nI&S^8T6-us#L_M$7M4@7e{?1)33_$K9y4P^eL2Lx0@bdNYbBO-4L9C@dS;Y6lN$ z#6`KyZEO~rSnVw=Mqfi~?NszbCH)Rp&-4ZBdS+NiQ>O&eog5a=b{UCH;D^3@ zpiFz*UG2Y$iS!g+jd@O=1$SEDSiOLvwzxe}xI6Mvv1@lX%nfMOiMShG#&{XId3t88 zrIHyt6ZOTwdV9d84`_}_Og};9_j#zJT69Sixc&pzj-R(@-X7G8;BmCJ);!M9NvzJ3 zhu$hX#2^BOt?$Q{l@R@rm4DF00fqYuKZYX^%W_7pvVvZn?!0rB<(Vb)a!LQ`m~1TI zW_QPu!U%jpIZ8Ke(K{|Y!AR%xw=JjRoySAXSkt8s&r;3G9o!eY>Yc*(gP3}CnHkP( zQmkA~KiB$;YQWJxwK@8KbA@)CH(kSgLiL`2zBx_zy6L=eANk=Hf&-xLA~j$Qt#sod z2ZNt_!vMJ3Xt0Dmu7iad+jKAFZZy`L&b=VeO(yc*9a%b;UC9L8uV+fX_5-)TBrfWSdD;FE1KXWF=c2=E8iP4~CtNGmdi za7tfA=y|$YUQ@U9Ih<)NG->wvZ#7Y4TLrnAq`;Kl;ND1yLC3RKAO+=a$_0w9XhYkIfTj#geuF zwZ`Rca&RTZ_07zNJ+H=ikh;F^m3xEggCX`*)bAl#s$YoRvW0fNpn@ACDH_om|KCYm zCX^$KRen`2Ak_?EzwDGHW=ZP+Yg1T_J8k}b(2eKram0)4y8;Gmr||g z^xl+KWDJSjodnEd01Xhsax$BwI^>FT*-RqKQ&!oH_@R3t7*bisRnqEF&uCbCOB@DA zZ^=w2BB{w)F!)J=2d8q1Dp9ihBLM zY(}=hlP55jIq;+$;KGrAaN)O4zp|w!Cv&+kS!yZbECI087ZObK>?k=sUGFOGoOXO9 z+&+U!M(3Fhxw}^0Oz0xtL?c;v9E(@)M~Qf<7ZIC5Sx;ef>farp(M*c_HfG*FVihR> zNkkc=`yrQ2^}`CEoD?FyVcBibd57l=No5Xrygy(AXjPjM>7yk|x>NAOyD`VM$ilks zN&5@MnhT>w2G=G=6sys8;vk8MgxAE&CwN|Je7%#I`DT4n2JajTU|h|vnl~}{P&S>h z`n?!K{(|EZH#wEKL_$aEwOsz8QQMH{lKZ;#L+U>mp$|=2NR7dmiM@TfA$cirk&z+t zV>m4-H@iv!e+#GFBBnrCQ#HMbP5sDLnLq2TNxtF8pY|b!&!*H@$?@X^(^Eg-X+T^RHiJyZ2%b*5aeKs8Hd0SS zs_Gh|w%W=#iRUV82SRdkT2l`Onw5K0Oe4PWzZg~C=rIofgIO1g8qG+RkFsu(jh3v0peU+q=qZP+)QA&qF4c>YkgorCT@)Fq9PT4Ko111` zI-eNYxy4gcQZA&srlTMQqyp%{Z@s_m0IKcq$T#eT5`VM5;Aw*Su9QA^8yZ^!~o+eb%Ud zkwr`2fRyYQcGW{IKReTA&sn_KE^6<2da3)Z0-9IJ41X9uCjtepN&#$4?S@EQf)PLE zJY@q8W6`p&YIi#Fo;Ehy3V?L;!*=z#Bo-c5Fl*-*CA$d=*KwWU5jES=(ZVuwZ@PkD z$<)E=G#LC*Z?!p#VGsy}Mq!*S4X}Uy3x{(oipoV%Gt9k&m=SY-0NB_wK?Xdb#<>Ce zu&^+smHACiCf@2YdyQQW~Rfqe!D2yqk3Tvi&Om#3|G- zIXR6w8p^0vdf3gW8Z_X$C?l7I@E=}PMhR+xA-|B2^@7iR!M6zufd8qrIJGNMkO{id z6L?}KfTnL#^ABYu25)!)oSWtG@!~}iA+feGnfC>@11P@f<1c^y1G$4FUNu8q93H*VLq6eI zEP8u1|Dmco!|H!|t}*Iy1G)#h$lamRuBfMh!JsENA`jU2wcYu1cwy4;pyO-Ar>hUP zKsa5$&D*9JM6t*Itey+Ii_MEb68(HufuWP>vA4@?$NTdy+QQ*E@XoO}BnUidHyx~L zocli=etDiZ_>i2`RVM?9$2lNTJ=@|sngCex-E;PR104(!Pm$ceh_3Jv3q_figA@#I z2%9{JMAEi1l|7(jFVynO-SDLruUVScnO1|}M)KlK{pHM5lLcG>9#l`7E0lt2j|#JA z_g0pT>#Cy*U&8CP29L{hPBb^3N9AKNz26YiuGV{p+&h+3s|c`TD}fM_|e&G2?SBujqyc_o9|}yDGvqK zThT;JfGFQx9Gz%yC5Lfuu?h26MnGXLJbcEac?UeoFfJ^hXPHSGsKJI0@--%5*a$nP8))m>ilHK@4XUO9m_ zHep^oOQ*gJ?JkoJ*lX2%jV^OzC-*P>dj&*m4n{`Qg=VAR27Af=QkeYa3TMn8c->tB zp34>-Xwvn*G~U?{VZEl&#@R43eceESPqm=8ahlHOK+FAkH(P*Cfcq%|)~8<~l*49i zctzpUWrq2%W2@Qf0pYdvhr#6rgL_XfFcL>bMgkt`iCE`f(?eOp9lvn*Uw#DSI|{6) z2iFQjeIS_|AX9jeTn=bOafhj$(dAysEc*!nFBql;Lqpk1b_;Hnk$riAS8I=KA^!{J zy`l77m*J@y{;gZf$HQX^G?49+{h(03n0q~9{}YTs-2 zA!V+@rpwv@e&IZtd0+978J;n*?{AYLC>V(64br3o=yQm8R!q~&|6QJ>uVNfY=N|WGa8xc z0&Ys`J+jH^_Jmw0#x^fptf=gv9_)!D8l(Afi6dxwp!+P5&_@~ly@Kf$cu)N`?BSfH zp6LAD)s(%{R( zCS_dZndR{y!#VC?o@W%az+Zif1c$JjXeb(TJ03MozdtWWc5kV(dOgoPBQXb`Sj~I3 zjd0EKwb4VwFyh3)ixEmo%0Wd;%Qt9l_d1l$9kr~&U;rnU#b!>e{Iu1HIYYb-&{`S@ zX+piiqCmF_#jrM#Q6L7HVC8uJ=m)>uSX;{!Yd{NJOuj!Lzf1p>S5&bgV;Zme0s0kO zM;2%7)<*I9_~e+FBUg~aKSrw(*hQ4Cc;cl&W{0);7;L)ruLw#1_1Y0AW}gIwgm88% z-7L1u;?RjFkyA%RtfrUpF_sETn(%gC+|mu$lcusp37Ve5!aNO21Y_UrvIUeD|C zoRaBwI7=sSjO`Q;D`wc3e^o}Oc1d=w;roDXZ3f9G*{JPo-=`}roRv67raswr!H}hH zbvd`65t8=nb|k{v>e|%jL`tvftex4LKFcZyvUO~oej_C%WtFagMlryxv?P;y_1TVF zou8v0P8+X-op$z?qS`?(4p<^ZeDhyDvtscKPic4|)I)rTP`h z{PAO3Vw`xCu4j;8ffT~Tc-oVLCVulkz8m)9cQHKebh^yxOuS)jm_ST@>5AwLPVRY- zh~tEC+NVF(By*_+nL_O#8o}1Y{z<+{F;a@>$jFq$4PE`&Mhk=yhG6xDlCBvAb-Aq3 zv+(hm+oT^rUR=N6@o!-OGtEg!v{bC5E$!fETusBo$I*$2w~JO9Lzl&!rs22Lo3CP| zfGY65(6!(88TaqZINkXKHP59O%G43Yh;h1AdvnCWl$%z%X$soKEkJ&Ggi7+>(&_6W zC6Gh+O{021&|I~CAe?IWS)X&MD1)gu$T_QIDIe7&z2 ztO;WP4?!q6O7}DdM6%WE@r<~8GSGYi)iX_M3N_`$hTg%x%uzT9k;6Ax0lq zrmfLQcW|5{hceqj`ki>a<`v;@Jv|ahyH!i<*{<*tRk^aGRMALE^PF^Dz6)boWk+^A z-)F>a3#IH_6tcw>TM($h4%Ta$Tjx}y4Iv9BWBV!j0N5!q&P5__es1`zlt<8FlEg$g zXE@ulrpArNRk))&v{!9en+EJrdVi;%0nkc(JQnl|O1;B64r=)cG9UTyVNEPN|F>jI zsB!F}2J!9N+fZEiB$u6;l3B~@Ago17f4xCy2-=pjeb)0;xspzXw=Lq+dbp@oo@1(J zB9uM=8)4(pTgeLPZG~?3Oue!F=9R1e5!|p`){ReOR;A1g04R!Nm?JG%z5ppATHmGN zHXhY_qI+sFmI4@gePtTjqkiT^-Xa&l`9fp_^3kBbGO4a)@$G1A0$<-pp}BCvKDIoX z#PC)o!hVON>NM)xkdQvvcmotigHiW+oKtJdsegnD@#2>pAI06UpTbxuY-SF2(84fFwb7S8uPH7 z|MG)0NZ4d{9dW%#n)nQE1{qp`(bMDembcna(aNj=m1RPIL_dZjKYuP#m{AA)<)|f6 z&Yd=9J=+&tQuApOGFqRym7=OAODJO$dX!8?o#njx!sqdTP;sbIn43*C>txpUY{@Id zyxkD>R|`=>%U?op=Z3fpwC|)zPH!!~d8TCrq&xjvg}0V7?5=v`aA@>FBH7IXyOC<@N!r&t`8DOx{wLXc@_E**3k<0JGaBzD79&(& z1KKw+C8-= zc=u)yE2OA&=C||e`O^8hO2zB6+bRPRdF-+=0OD!J|H6GdH(Hv>L%9jI$&s`O-A$x~ z)l#l+U-INjw-8FOO{Cpt2ZAv)%WV6N5x?xS%a07{V}ZR8wz+A($T=>Hjo>}qW9JT6 zf|^<~j>CpGHx&sxind+v+W8NE6V+6)LiON?q>s4ul$Qce*&spGVb$LQFysZ<*I}#V+n~0ai z)hf%wFJ5|EnQ9c;Xwso!O>8S4si4f!t=9JG9Zoa6K{`DtT02(ReDJdZ7{@ta|#0QN)wj$Xq=D*w==x_1A zXuG{DH^zH*aSa^9zkmNOfKstQml0p?gpn3=X)U55^P1<1tFtAy{kl{t(fV-(J;heF z-V+L+NMX%~KmHQyTC0w~8;FZ#wv8YyetIY@!s0Qwo;{j*6tHC?IldH1sS#727ZY-r zM21Jzu*9ANJ$g7uU#*cC7^zG8R7yn|h3^F-lj^c`VZO z9##5!m)41mBQlTgIwocS->N!3q4B~|s-2N-YWV6jye@dr84GB>SB*<;X8oB`knzaQ z{{B>iR;%ED@ifMUhMC&nc);GRBZtSg<-p@jaR=!LSy)*1IOe4d390di;Q%0 ze~Jl-|EZXGDh-iS)OSfD%clg^*v1zVUXrmbEiJ=*?>O3+czFp=8Y6WI)VYAoINIy% zt;y~7H93QUY{Bij#^Med0E;hTgMmBXFV*t>Aks(~J19b~?**qx zRq%HVuS&2PUR^F*e1rYfQ1R+j&)|3hgvMv1S4jl815m%geg?=q*;$vLez>&AFbv7y z{v=dgr2FI}vjMe^H6i+83yy>Xw}g1%<1o@3X1iuZwyMHY&SQm7STwZ+Yv*tY#YIDN z>fQBZtnE?RZ;-pk+VMzDKEmCxvMNClZb*Q3Tipv&r@Y$4eBy`+N?K_ye3i$W0oLU3 zCrG>@&5$(F`#F3GVZ40_VbgZ~+a558pOifyDIC5$=T6(ZkDJb{m`4y_-t>82iz{W} z`gChzV{K=)f{4ssT0AVXI(zl+ca7mf`^H8g9wFgs`EAC}!(N#Hej!FZQR|&rA2#|D zw<)e6!qMshlNyk>b;)$`x^1}YgFggqYFt{)miyN0B`r~2s-_vg9|)`HHEXGVovEWs zuI7@7h3e}}`%_>b=MWmo7bK78^x*mVXgIH#a&xx6F(SCv_Vud3;Jd~VhLPgx{HJq^ z{Dg?=VV%Aql}8!y!<#|XkPx2BAxa{&Bn(Mv5MzYu2DgH`%Lk#tGITZC*i@CQQ~G!O zj&jE2;Joe3Odhy5W>1Nho_uu)tuC7Gg_FS~iqBK6Qqjcsjnxfp>Rh$ri~f(!M$ zptC2qIy<{jY@4u$-LxKASgvt8PTSPn{AR=UB@k2R6P&_{N_zu{u+gDc9Nh|LGOP)Z|ohx;9b;5hbfTC&dU_;V;ZgF#U{dQ-d8R*nVf?@^6 zz34F5b9)r2O|`XuxLVV^x;XUi-#C~N-7V8Cj=S9yS_ia)gAP`ozx#stz-Hep<6FP= zp$e2qFL%*-UT6w|{^QEXwh^Fc7Lc?##f~e(OlX5@E6`|H0WJr6|7+_UsRaNoTAz_{ zvjLZh*)Z@8N1y@Iiq%rJyu98NZ}d209kkJ#iqGniA4$Xw05W)F-?O}3hL$s~25LBO zHgzQMa*VVHjxf4_$Yrf4ATo#shU14%6~leWh{4C-2gbF#L>JL4o9|eBnaTjS0X4J>ec(^E9}^sm(-Xr;olX7K*Nnp!R&@WOk(G5 z=aU)S=?c)h zHcCg=c?S-!-wG$>266L;$F=9d8tntG$$qEW-7t*YK_}0l2SsnAq}^H#N%vc*5{p#A zutLu#&rkWIz<8|@SC#NBsSB%JvlJoEhh{Lc({o;jcoc2Q)+73GAxiB@+e~FoK~FlP zb?#PIB)^<+NhNqdD)~2^CWc|VGO%1wYd)B(@^pp0nrYaq+;9R=O((p)=h##Zi)JpE1D@B-ca&q$^7m5Y=CnG!Z-%VTE+Oh%#W+qxw3eu8P z?~D{`3${&r_p*;Ny4>YQjIrmcl;+?ZigTdX)BQ$f?S)%M8VN&Y4CxYM6MPr~<6thM zJ+qiIt%5&3YzF{MRYjUsT8RwRoj1ZbGcDaj*c>}8aAhc=+*#>PS%FN+s z0Lg3v(ihkUz>SUVO-yj=?U!-^WY(w-q-0o!n=_UGCe9@Q622llB~6D4gbsw`ysY-r zjPVy=8`0Mdpbn1)N%?KS9MObt>SY=Qm8%8POz2lcbkxc)n8R#NMHpKLafvjQH2ele z2M5a_4y=GB9&Pf`D+&&Nh1Q-rh5-1Bak?t!WV>kK))cndE7rY;Hqf-koAJ}JjX1qKj z*&x32nA6n+SGUZ3yq8&q%IUtI!D~hBBVD_qyb!{ywMF z>l34?Bjf zDBqI&Q0uYos<1z5pKreOTsOnt0bCvNL z-d({-E3$Hol(~oafp{wYf;LdjaU|!*58+rE0DN@tK;GQ;AjeoLW)OY<;IA&mLmgub z_6_(HT)CMtIa z@gA+IKZ~U{sK*tQG!%SS)GvwNxqO3``|?OK;I>9iwjyhb{3=v+%Ma&yp$j`;7y$7K zBTo~(Ypzx;->?j)Uf{;D$oZo9-r{Fa=TlTYdzu#i8PG(2bfKm)5u$u8gTZP}`)g)2 z+&KaMkHo+^^VaAJ@)zyXJ-{cA2C}CvW+A|w(*~(V-h*FtKi)ST&PS-3mvU$Ah9N=Z zw#m2MJd5Gt?bDmwBk6Q%rBT2F1W#^vgy@)>w$tBfYiuS;vlBx{{3;(mCscLrd{5jr z|M>ubwTK&rJXxWafuc`AYHvEfitlN)+bTF6T4kItP=IcJywi6b#NL6yQ3)D%nC5Yz zHoi2$rp;_a>V1V=U7t}e)X2H#17DtQK=;M$!9;-JjD?uQOPhLSp)a3c_&x)Tunc+d zpNGerH(&^@^YjBHI^N{3&{h27{w9!l*lz!AyW`gw>T41Uw|Row+2>y;s3uP-)WAHD zMYn>W&7LH|V^>DT+IQ4u(V_Nwtx{in4Z&}I?WQ4P?o3`u@!PA@EC!UT(@j8QuM4JA zAALV}+k_I`6n3vNTHli!Mcv+kah z-3)=BaOIteXS^*?AgWXa7S)|IkOJ5!#mEP8CifZ^V|2q-ZRlG&o7WZ}WVXzu=yH36 ztn*8*oKyf4x@C7a=~ z1wvRq!g8;7LR^<581L1NtX20o@v$0Zj`soP^3s(yQ30q#lZx5ow{av@ygft4<+W&* zzCF>qWi%?G{zuKOsOOPWQ>3xNRk#;Q+e%3R7rGI~5r%KNI#1IO$;elY`wDnxPJR;P6CE~FFm|_>=wK+RgCz3144Gv5~@ulIcmKL91KBc_u zRru0U(p|%6Nb7mx@q5bH0GFV}w6ncHuD<(H{aP>Sd8h8VVL!q3F7egZDf zH-wWB?lf9h2?8%rCAaQ@^GjLr%GB(;a+0TOuk%O7KY_{3svAGWC5h;jtDs;c15#s9 zb>m>wLJR9;Vf8EBH!StRk4XgJZNV72@Ud5UE5QlZ(KXaXGRgzvTi`y4|FNk!h2!Fw z7<^=`qchdk@l~6qXymQo4S8R83vbp09xz_0ebi!|BanBmyd&dCvuyI)5IUIt&x zrxv-MR(>yyZ~9Oq%O3~S^Zkf;QKE` zHiLM_D>2YdIc$N`qvsA_ZZa>BPB5Y{nh9SqU0srU$ z{awAr5gLu%9rHpVy%viRX21973oHq~8+3g_Z%odFURg(kcb7CH!xB##!mO@@#%vT- z1LQO>YPC#SV0nUYa1J~2-0>rZVFLmy$rrrYnLDikroZ6L;k^k&{_fwc@4tCp=Wn!{ zNN14H19C4wMD4FYs=3KATsZN3-?S?Qn%ScmVAn%SCoXx2J=oyR#M$-=@8pjDExP|k z=y?PEH=1PbSjz}}vRY7gNMCw7-}j3MByH^GrQ7kZ{d=^@T|gROT&Wp3f$eDD+`op+ z?g@be)|AZO@cPxu@fj+6Uxo4@zWmoeKtwBq0czEQ z7~fi|cC)38Fc+8aDpIns8Ceo!P&9R|cyFU71s7aZPb{GifRz+!INNgGk1rt2iB8h! zfWqRKgypN`M!9VC|A|{-1FAG!DGhoMf5$JujI5}JAX}i?)RBChH0XQBJ|L(Eg6dAn8H*DZsb zAO9;qK~%s?U3dU*I;@3TnD~iuA^+O|$m6TEd!B2sk2N=XAk{anjir!r)u*Un-MJ$S zweE*LO26r0tu8-Grz%&w7!`QH&k&=)N2txcWc$(Bn(*cJ?bf(7{}wylV4`#s1L4%U z0~CK%&MUXIpHyvN<>%ha3YaFHdjh7=!{#0R&oy~+y1fp~s1sp@#DiI@bA32nO?O|S z35wILLf_+4+tb3GJsXGCo&>Xqx2?hcs)h#YPNET%qPa&OWcMVTWPOKZx-cP2w2*Oy zfbefG@VPOWXcY?F(92knUeH zL;wBZ`==>VQc_^wn2LJW>ST~wH!|1}jz7nQKosP9c9Zw;=#vJhjMYa8pXQY1NF9nj z$$3~F_|wkplT;ODmeTkiuUwG0&EVDnTUI`PdG+K~U%z1sc1 z)V@=XeoSP8yoe{n>t3*t2T7Ua;w!>JP^jo z+;QdyM2%ymIXyjJ=fAg4o^GbDEzGCFt05vHTiMz8G#&P@M+ZYN)_QeEbWMn`3 zuFXlct&M2n!udp{lf(p4LHgw1GCCU{m$~#hQay_ig7-plbto{MfilgM!c@_p|A;X0e(jY?1OQ(CODoXos!d<@uVNt_x zVG;F>MNBs+bg;dvE4=hlQDNamFzk?m(C>$F+sTQuZ(M1h>hF@n#q5cktqUz}`{>@Z zy{5(};HvH*!zXVSd{QUA)Ba{{Z>i*SMEyXdSCMLE`kr+U*!v8F4IhF)Qyf_-w zsiB|&e>1hux6j}F>V9hi%8%%nn36qlhvwx<8Eg=xlE$ozg@rZpSuWDA8q$9^)E`P; z0D~53D3{rSXe*2t2Jy(B1!zXWALWJJ2NVl6z)w!sF0VQAwQ!8?hZ%3HL7KG$ro-Es z$c66UPiBS&@(bJBsAEYh{2hKJVrdAW-XIrbdMRa~Ry9}OV8(Q~Bswn6v=4Jd6J3H> zRH37dMTBTymz1iXcD8=5bqIj4o+nM#ozQEFgqa3tsa*1T<_R>ImpsBSber|$x&1xl z#PURjFf59(?UZ+^TZK^1#Y#gxFRqKBqH&_JU`PH$zORY+H*CqbgLVg`4dZ};IixRa z%@ACDlL(daGXr`R2y(!Kcz#LeU6M=9p;7OIy`V_RDKqiu-s5ej;R{FA@(WLeZ3}IX zadY$@=zd7OVB}#xIoldutnK%mYC@09%;>fETXDwSOgp6q*R_GsCwekvoN*c{zHrd; zo)yWM0dGGN5Gjh0$u&l+d!~j-CcNwl2(*b*o2pu(%lz;nt`e?3sVMxQ*f3J~fsh{e zOkub2$`|QR0PREviDk}k^6;2~?4a8kK^w))TwI&Mu&)$^y=s$RXPP>pT7PO(I#8n; zCmu~H{c#sLR#|HcX;4wB{~;~aQKh=?pY<~_hvf0~d;NsDIo}qA3;HSjjkVmr$OU?? zdU`$?Ui`)6FZ!vyvvf^hFa=hu_06nJHT`$VQ8c|4mEW1oN!W2AZJ9;$P>_$ep4p0v z^C356~dZKUYetT$E#&7F?UHW}kF;}+cLLQ{# z()}UDkaK$svKR`dfow7{n5#~k5uOb4qSo(Tz|j4)OWk(}IXQl27eO)9MFw%kUtRZm zPr+rC|D4cjYc3E5wZ*T?{#%}Ku+&UhHR@@aklQj9p&p$(r}cY9giXO=~i)Cm9(hKkP03fL~l4 zga@nEtUhcJD~jW>SCBe6mg4$dMf5cF-!R$LB&N=|ED$nkA4R{gZ}=+Z{ksKw(U-fy-D|bGjg8qkx{*;Ua zs{srbKPRU^vz}-l(aA}iin>J13ytc}pFayUnI`GDiZ;DZl9=@SGe1FeDR=QGhzEg- zP+G9%XJOF+;m)2=1*sVgbe~*yp)kQ!rb9v!X${$dK7!0=ro+{W?FY= zX6M2}-+t^g>!MpeUxF>9HP;5<3_>|>2xY9hUG>9-MxZ@Bb|0r{+OY+XY&YA*{Y=_X zqCtm)*r80IJ2~QQU!S%EAj1JV2L4Y-qv*SLBykUE- zd7hh#@p6>*yXH4fFl1g@D!f$=vm0Q0c3u5+jP3m;yMP;OmA8Z?OjMb2b2G~+EWr-6Cg~lW#B&ZYKpL({lzt2k#x0m&rjZj?qq?5r--;(J~)SRgx z?l9zy%y2yzFn8WCD=RDO&p$y_^Bo^KkJ9CL#)>o=PL-w>Fa-6C$LE9U;v>v$?s3R# zuQ;V6ar}_xH!)>_lcvm-m5#Z_X~&bx(M<;5v)gR#>~JXsr9;9ou_|j$Z;h62eXyz> z5)7OV?RkW2G5vu;@v!B&+ZFO0e@IpOAZrR7W?4 z$k@q)Fd-YU6Hb`3I|^Y7XX1uRM9L6RE$@f;Pp1b2;gm&Cn#QkNu4ZRsaG0mWZ2p`P zB@BdJXJ##>dqzUWHz2H $0rJy>XWdVW#d@ZUvNa0On7$G~_5*og>b$BQpPVTIpqbr*4y^Tdo)dE)>v-~zSqlyYqzq|01Pbx$t zuYAh6t_jggQ9;zn;Y<)NVp-FVU1w#RCwsJUxM9WVGB|^NNA96lANnJ_XLNb7!8G@tFS4y8RQB_P>0;=`(qhLc$2~Hc9JV@Z~txr}9n9 zc|FRVe(;63SOuxz9MIQf`dD$dn~YcQZ_;x{wHw_TQFLrVT=1K=!in?08OwT#?!iHQ zVPUV1#l=iXW*iQcln*mAGm4F0!kO5qb>6@K=^ub{;v)@`xyu`blhL@9AGo>6G^E+D z>C(Lkbd15Yh>T}H>pvmQzuHakFjFplH~u+r*!%|KG%zt?zN18!NtdP35S(0^QJYHY zZtNDJ95CG60Aej*Fr#ZSqj*mi?f1m>n(>#CMYda>bo$o3Kf0fDqMJ$h z*$uO}6;K!s^0!s=`wK9}_}4ReM2hHKj}gn}}Im32`e{zRT< z*b^h*#MSnl?Fq(7j9%jD+Du%l*gDA!B;W0U>;s3P!L_ICx<|*y zt302N+`|QVkptatH+Oq@nA6XR6!L3ql~P={`!W5N`Z7Y_JsZ`P*Tk=#2KYf87rL~+ zd9wt8P!rU2k!945kW0z2!9P(B(_K_g_-n-`z=~~&5^G(zyKYOjzBju~Osq6YSBgI7 zJ`gGgaAOM7QF#^AZb_%*ge!*jT1``1j3732bt|gHCPSMu!$k77n=^$nZF%1fC>EQA z$&&N?8dGg8I39<4W95L;^o!QMP~nSnx^_X~ywXT-f7Sja3c-Etyh(Rey*#LfBWunb zM9p((uhP&?Bzb>exa+>SpFv0%lhl~NUEO+v@by{kVOJwV6FRiN-)Kx571BuOwG z1A`0{3Po*t-@!C@-3qTJl$pHDxk2jVducz_5cC#e%Dd7kHTxS}NQ886nt{W=)i?NX zc`?(Xs$sxkyZH&-Sj3_z+epsZnk|~js5K__xr0@*8_7x@9L#D#Tsr~|?p@`9ExR~r zy#c+-%F5fJ$y6<^o^d(6ydHlY{g`%|xkMdQa2ooF`c1Litx%b@OD!+RIvm3nmQZ6~Diu`{8uwxj8a36_Yu8 zs5ap~_LBN4MZrBH=_Tcy15jp5fK_wtV8f>gAbv4YI5D9)$_I}x-yIZ`&VGpV(~;HN zpJ@4m^j_72NE4p{Tf9Rqf$EwVda~>|P&H-#u9|?$YUhZC`IFwK!0j*<`EOIq&&VX; zM^>7-VbWO(C_;coayQ`8X?Q*Ltb<% z^ASg!#X-4ZCHYX@p;sV$>qdSgQkxT&uOLRuN6d$v(d9@0-Vw((X?cYH2+O$KCiFX1 zwy`o8=F}=We{S{>428&4CQ$B^NKyxWaD48{w3e^~`5#dQT}t<>VK@4CyR zo*Ta|8I|BC^ZfV4z+XT8&!_#Pq2xd7_RmG+|F?HYcQhB~#jVgije$fW+rf+u;4MIq zQ{GBu0?uVUe`P$KP-gV7=i#Vt3lFZ~?V`IlW7_qjC&a`yt3s;-n1pxl-hJ94>-6H8 zghb}*W3`12GMyCcTuSx$K>yTYrPb9{VYh*gXqQ|pCTMv z87XUzHs?4zx%&gc9DKmQH}#y`?8pO!*WHWZ?JH z-w=ViCpxQho8TOkK+_d?^hTCA&&JKx)>aW{YSU|LCp+ab?<#Zk!!@w59%&JSFLSgm zGlvwnr&!{Ub}7u{bAjBXERqzSOWUNu1~@_7g?=MQAWrnhClx6WIBisMC%%p4bxSjg z+uUdWgV)>o3Vf&;@f2v9i9;Dx;`zbBPU&*N-0lbub7RK%f&G?Pn4M*U&`_B1_cBxF*IfXZe-{x zUO3(%&4BXZBo8sissS6Gj6?Q>C2;&sU5p;V!05N?_x%DI_@9))O^rum-!n5ZE*kiP zVbQlMMlx3~wol(Lk+|k6zJ9*lI)1w(7HtT(0&yDjkxZCGhOh`Q?Bs3F2Q#T+D#G(S ztE&1&Xb_~Q3b!5crB+|S{%@V+*T*MZKbxsJRF_YBLKqbPv5B`wx9-1g=M+xuF zR4Y>_ijgwlg>MZx=*q)cc2&uW#bir4t!C<@#SE6pa#0!ck5BWWbsx@M+MKP=HpJ76 zIN#ZQ(7b0*>@o-djF8{}`@H_cp;cQSBfaMuVE@enT@AO z;wH*>dyC)amsH=$6w2#|Zt12~JG-9AQQRaRdZF?!PVLZH85(oW$qlPK+uv=y$Q+J3 z1ES87KqDuN&zaAeKq_&U6P)v$Cf}xZ(8u=_r%E9Dyf2=ADy7w0W*z@|CW9-V0&dGI zx%M(fmS}V5?aBKwUX&fl-w@8fPTGHLD(^K*fNos>lkPwDR)2SdqyJX`j`RI;uOZtj zhkvVQ_|K>PXWjm{-XTdWHrN-pLQ(^|ql^v?)&`@>WuN$LZd%dk)VDr~4`X6t(gsc< z%31^78@m01pnJ>8sb1D`c5X+5|HQUDfY>D$U(Nc$$dp{FW*W~C=T`r#!6PYK(WPO^yV3v(F7kKGmj54@p2C7kgG|P6fVd-&{2K$563uYaOfTZ z82kANca(zHk#;LwwfO~Hb>d95M)wXDmWpegrs-N@FWeBXv0uv}KePjON9zVrPUj`3<$3<{94usmf*g~O|dnwQvPuRfa9>j)&8*gA&_3oD! z513OjUnf4G8K^LgD5L0Mf_F7qxr2Ul@N&p&;Sx$j*E2Xf88MtFw>ozt!}V&-X=|O= z02*DE87IZhFGy`d z5#Vi_wmJxm9ZK5J%&{w{zD{r6}5I!t~fG=@L)v8K1?hH3}q|F&{ z!O4I3mwxwxaMn?%EUp_;euC1jVQp`{5uhbUf+4kH!VxDaz0b&eTX$@ho_tcF7S6jF zfvS+;?HeDTaXrXLV9VD)sScjBZSPKs2&b26xX~4K%?IO1v_3QvKOt8^LZkr_LPnNz zl^o_@vPw&n!)d)t4bRDGdYmtXBOgv)lACSM8v!!cthiRNVR!SsGFSIHz=C!nW-@2I9=VvFxve$Bu3$ z_&t=K@W=$bqqAC&8XVo>JGA>g2LdN0xF! z7Ky3M<2VP5DNK%x9ga;p$jMfMHjd_w@lLJ-Q%HwYl5G^op{rOqK03;kvu~$WX5(kv(pf^SWRMjGpqr3S3sBE;s+3WEXe=Ha>rADTw*2 zaE+vlr3s+A01tE*E6cP)l9ODcR#YtW`i1LI=pWZv6%nC{0)q~YI6ia{LO``_g|1cx zo$FBIhY@S18@oI(la}Wi(hPZFB0Rhgi80?ePW&Z)oD~*`?~{yWk0w4{dXH&=1gejJ+S~QCR%wb~tYyz191%ZNR?Z||e zHuX5t%p$}t{jVKqLdXLr-fpt6d)C5;pA|;W3!2P{Ro

VBY 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 DIq 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 z z!-6^=YuSQAoIfW~9CMGRGVxUyjH#bd5$~^U|t5R=$$AtVU_>9nKe

7+-mq0X%`XoP*!H+ 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 W@oL-YI-1Z4K4@Wg;K}}D7ykv{b!!^{ literal 679261 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

%xz~6oNr$O8AuVa0Br?SiAR*>h?i-=7zD17 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

sL7{eL}yC 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%0AeL6X=-Jx}EngW{i}Fck;InKc_t;6Onn7OTM%| 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 FEK$cu7#hx{&Cut53jVZg8yZl42N#0c8p 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

-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%0D?A9wIlQg1nF=XlX6+ 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Ð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%0Dmc{;Fc-R1-_|bl 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 z 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

%j+?3DxH8iQjsyZaW$8|MVh++?mI?OZu>M2#FfC zXurx;jDTw2^)ZQ}@9H$AR-U76X<|)`0aX86n=P@?H6^}S@2S$BjI;Z06TGF-54&$4 z+E!uXv zt-_6iQ5@@q^6!*kQQ+2^`H$E4Z_5$r*}yxj>lEf()OV--x29z4yKL-0T6d8cM?K)< zk~lu;@U)e5H<9+kO!eTNxDt*`xoG2pHh``Y-RYE@TMt`w1e z?^9{qrUtu`^D4Q>{i6;03sO>!p=NHk&;Qyk{bWlKfu%yEbZHP!jx6W_sH4Vpp;jZSiJ$*4k2M42v@f6{SrNH>R6W z$i*sZJP$~Ov6ap;zY>Q^OL!1gwOQFcop68CKe})D(9`HAt|AZ}3h#_^Gy<%pyv~~0 z1ig3H?^f!!f_`ivhzO_H8&+G5OM-%dB#-m?1_mS^7gq?as}NKOd5WEJ90&fRFxA=# z#`T5@>S_b9qkh{n&IO36?K7E#5K<^^vV2)Ba_RAQ75YlnRZ=T)dpO>vy&Y>Rp*WOu0H3r!M+3C( zm6^RsANz0E;3cD#yNYovL4UNq_jeMmh@^vbg+PzZdmE9?g~jQSQwb@BZw};&Ce>DG z@Nc`%?8&sc=TFK5+l>`WMW|Qu0G6c8oB{?fOBfVsb*Wh^2J11NG;&;uM#l`F-IG!P z3fd9^<+=czm{n`!)kz#BiheIQDFIA?dX+S>8F$h~B6}6SNxV0|=vt<%bSFZ+_3yeI zQ9bG#eAc?)Ff*62SR07=hWX6%-gKx}8~_%E8FgCn0 zo?oD23~FlKvR4_*1Rz8^7qe6;-;G1@;8e9GBEb3+YOpxe#IQdMG+8gX2CWvP>~1&EdZ ze)@FH@pxFyPEqWIQ0kF+2;49c_-#*CfysU4IpxQ8e?VuYLIx|CBXygJcz8@Z$^E1@ zSQGJyUtoqcEy^QFRZf=c{V9H(1sLTv2UQ~@^+#~9H`g9(THV&4adC`4Qjgb`{##rq z(g~3F)@sAm3jp?b^7GK+sq=AQIbsChY>F^r*k&e79r{H$FM1xk#)m|ksKBM?1<0M_GGaO`Q?-e`G{zp zdHEv1dY~MLn3+qC83cVt$IoM;GNb>Jgu0jJBAoj-cL3m#Sa$wJ^F)CItBh~?Lh6A- z@V`{cQz~5EDV2N1HBU?Wg~S;}VRZzzwz*RPOtV^Xji2y<#{j#*?%|j z8_q@uNI2Fm3d#=r$84xlQZSQui@DY|{g_ka0FJpF^ba=}rIzZ2ou%rb{+}g_m4k>i z)KZpi8*F84tCz9q4rf@*h!bfoe95Y>c8Jlx>jWZ)0ctOOC*{#-11p-$1=}k;kDloS zeZ-o3k{|WH&5r*T8F_pfeD&T)q8P!!@s8LmftZZ-i`7OaZj;oh4xq+&d45pPeE2#`4R;Y}uEj;WG1ywPxBOft|$Quj=OX5+Kv>cy^>IXu*iYA@_uIEV2B2N2ew3N5jafVu_j_Psir+R|)WH4l1TE{Timk(PBE4jOA! z0R%w0H?XGk3IcRE=^>Amh$+WysSK$4^c`N`5=$_|sv$|=$z|U&7k4u?>^Tqqf4;fT z>xi5T!OXb*UDY0aT@8R+9Gt|Fe(HL_@8`HqQ-w#XWx*Qea@pu3b$`|_}dL~&^qCQd>e!$CCHpMiZ(b-eFR9`OxswiZt8 z>C-2K?_B4)lh=%vJik@^%iDmg-U}#P4!&FTvUqWv=TC0$pb=7ZF(-g{Qmir{_9p?2 z125G}3h@N@5+1lub@mQaeU>w7qr@Zk^ofIXujBmemJawQ*_!&H`qU~)!Jvyj*%6f= zKFQ0+XqYk+@YhB35aNrMs$MYn044n_ZfmDU)+&A;V~eM4^#1JJYrJ!=%we*b+;+2AY?#Oe4S6 z-7NkppW4Q)ht`VNnwiei@Q6~gNt4|ge*iMCb? z=5iJwHLA>n8@_^&#HV%a4?^nU^lQ{=yZjo)4jsgRXjU+1r7o!~MRqv8eEM7aIek$l zEc`oB@}uVr^Y#2nTHF5NLHhf9@uXygxLmArzd@g`w2K{hgHrYDi=cdCpkPv;KKVIRPTes5( z55SsrKfIgiTZF50J7>D3;o<3f(t^P`c8e3DQR`T%dQy7+X{`v*c1+(9;*jvyh!>}12KV=T%-w9 z9shjE863Y zsOhy5Ca&y2i61YrIyr0N+(yw>o4=kv3cAh9Nv#@EFz0VOpMz}md^nIuL`XdUXGSrO ztF%m-CcHKvQ3ll~N^oz7wUhdlVq58LX`uD6@+@T_hm#jUxUAgoc6~GW!^`h8dm!7) zZ&6m%AC@B27mDw5ysvD^vbO?>OLSU|@AU@48d4zKGSWx7Z$F@*uXOsX!~n-d$5pHm zZM|He%*hY?3))w1QJL)q6d}Li4|6#p>Qqho_c;56L{-@&JBaa8A_cvfDWNnPgx;!r z1Z*lJdfE&nXv<9`0&UUyXG_UXy8``d0M$Qy zEfP1C5W$HhPJHF=NaOs*#^v8C1k zV^l!?N>9OdpC#yG>FKl-R94}gFg#}Ed5#DAk(m#=H9ip9+T#S#a=qB_0H;hkfkre= zP@zy3jQz{FkfG#(94WYPV0Eoh>gr^-`_4EY`z42yXD_L3c!@$phN>y6S%6LBaF+R{ zg_h6evyK`s@(;bMULvy!c&uQm`XdX=h+axEW|ANLBWlH6I8GhNiLkO;0&Mk!a<>>5 zyH*K+;~B4ocdh}%BKv^c(CiT-#Lzi5V00Vpj@~wZGu8UxqUApHq`B=kXBzLz653c5 z;l=m8a(3ep-y$NC(tp?~rjGV*ENFX(7)F3XmH={qpR~pa(*Tf+cjw+1s|sOc(ufer zn-E>{Lj{n%9XE@568pY1->=v>`!!N(p1(o3QuzkaB&0+0rFD2`G|F`}%+#piZ z`rg8QHRT;E40#I*oKe<2R&c^HZ4v7-`&gv{w%8Xy0@1#^2LcWGi{OrhG<;TMQm??5f zccfKA*dK{nv`&G)(Y;3l59hw@7or%)H8}qRAcnm_X%2=)w4z{+A4JtZz7T+Z<@pL3 zK1PmNOTvj1ZEJsHFNy+z3I0@vS2GBVVS{us8*&w zkNv~yl~=dRjvWUHxfzT}fZ~xXLCGU;we^NIKhDz925wt`7WcA-{93kXeV-CZ1uy)v zEaXl99lRw=;re68r2p-~X5+2G_w#S8pXrwV95M+}LZB+l2Gh<08ekrcV85%h>8IyM z_Q){^wxK+YLA`&!_YM6oFQD!02_EZ*O#`*w+>&UL4MI_eXZf_cs!CvPkR1@DaPbx@ z8R;)hU*BhA-K^3JTw))94i!{5`At6U9;wioYD@`@w<)xiGHE^wI&E&G7g=Y7N&ex5 z{Ssq2x=18Uf-`6hNP`JrY7x3IzOXJqLCuZsQiJN!s8kMrMbAKk6v4kR^(joORpS%T zzI(V+CR~MsI*)5BGuGC@mXxCiNZAxk2qTpR_O_3>r)|=|*;CkZaJW+DD|Fpj)3Zc> z#MOGCjJL4{IvaCCkn=#(e$p2QFgR2DDi`Vyrn@WlY^b&2hVsb{VJfjEDLoy7DdD~& zAPKRIr>|!SURn?-#GP4<35&S6lw^lh-UVH>??vi2{R^)V*T@YA-mBKH68JpmQ&Q3m z9M<72&n~}cKKMELY{%6VYrX&1da=o^yl%^NC*+13z2i!kZ1^J<_R`6Hx&C8A`#orl zVO9ALiCnR?De<18BN8#E$=kIs81R%kq8=Zp#o5+tXhe{WxLCWb@7oXis(jx<{o#5g zxjzvGWcTRrGLtm{B`fGrO7t!zJaL|PxxL*RD8Il(+DQfP3x`#VG&WDK#oeIu2oZ+` zwcjYd7*l=*KUn+Sz8t-p3F}cXg3W9>8mwzdL^&NN<&%aZ{Pk@pCe|;z#RK^ONf|GD zfu;g7pkjyTVyi?1piFxwz;!ke->XcRSmwiUxi!!#C@x!6T+eD8Sv@rhd0$pgwiS|+ zx;neqj}dgQK(@xDhIUc#s}GWiq2O#?F^JB}Hd!KVA|6YeNK$xfDh*d{kIo90yaQik zB*8zEz5`p=3y_j)$H1`UXzx*^pTi@o7nJ3uY7--n zw1Sd`kUR{ivWZbdcJWJl+kj7nfRw>@=6ZFTc z2!9LjsvM+$_#Nk*gp&4l$x8MnJ6!+F@bcy<5h38URU)2mhkh)L*KQEDblKRZ#$fgo2ylmK6f_9lk_59&uO4}H^15-mr#Md0-@D!6#r0!5k56&wUHSpYHC5n;E}k8V z>MsZ`kMqLeu!Uk0i#qH!+Lqc<*xUwm{#mQh)VxPa#=+$R59Km5^hb&%)p1h2 z6Q#t2uX|8}-g6^2_xPQ;Jj-VE^T)X&-t0Uv+ydbp@3}?P_Lq`kCzhx+-+1jEBs8!! z9xC{~|B%7SB5t${rSebB6M|Ais5E#fW3 zOS@O4t``}wCeKjgZBJ1KU3msE%ZBs?xj4tCxX6moVmut1I*<@G4fJcFB5q!cJYsN297wD3w&8HUjFij0bWN4;o~zOt~^~Y-H|AhqiW?*!zE&7ksq9FP<5A z%&ZX#U&v>emo*m5!$HTs;m?m_`mSsomvrS5#LWmYeK}4+k;&a%^PKvv3*LbBXbMIF ziDCJi47P2^FJ!Rr;|x8G=?pEuD<$ipXU-+UueX9{Tb1gXKex>lo4E?QC-%wk z&3-hh&Qgng80g%=R+2Rf;x{Co%dB43`#X7-LLQ@O@_IBSg0P$dVyhcQut*GhiAK7s z3>T6P5>%218G8efXWYK4Nl=yX^=2%#Wq82B{{rPWf96ayd46VkpRThwZGY+zoJy-I znQaMv7oTOU#ZyTFu!WMmT8-!(CKbcJ6tPWM>O2JE@hbIjA*`TAbmej+ad9Af$8tte z3P665+=z+-T#s-SrpH!^V{JP0SJN&n!NVE0RWaT^ai`3~q;flkaKxSa)`7xh1GXrnZPFU7H^L9dt0v9$vf z{q4{_!qazw+)ggx3Iu%w5nb=`DToLKi6~WUb!CALB!Yd)f0StCdW{739kCGzA+?B0 zq^N>Z<{5rEG~fchT_K#3Qh{#Vn>=go&@OpDj|wRp`j^$HBo*?qN)#bG*WEk9>=_?F zP>-+LHZqXu(C8FJ0x(5p&guC)wCrPoEkEyTdq-xq7EWMG3}9SsA*N0v4_@=COZL<( z+UeV+4$3jmQP2_qeM}={q*Rr|9z*pwJU{fUF62Bmsqq>OKx58d9-wz@M}^CNYVEk9 zL$josZ_IuKdO{FNh%u``IOJ|-JqQG6l5_VLp$9!mE8$ezm)*;>^$u(!;p00YQS?@& zlPERgsj4sk3kGcB423v|Lv|q>*{@XDtC;$}J6RBWMWLHfKut@L#hoxy`Sg^HU;u@) zZ>@#PS#z`Bek)yF)-+}`XZN_xP%Z5v{tQpVlHH;xe5QKE3`55kRj#as(TC4&|Vu zWR*Kh8$9g|FQlz=^CmxvBU8-E2S+kulauiTyz|HF8}Jm1 zm|KnW-TttW83pdIe&(%85}AMt69y&C*ajK&j(`2yIBzkaz2B;lK3zQe)p*mtq8uwM zxz)O0;2Oz>u?Rs}mqy`2g4+ryJ#|G@uuyMOZd(@1fp1O}gO%T3!pMo;RXNxO2_X7- zxEu|+o!I)pl4Ezgj7)a`jE00{Ly4@H@a$iZByte$A1;CRG$u&MKgzWGA-kHLyaI12 zQosn;o?5l|zbPNS2$|JVdK51_T~N`g<2OF?f}7eQTJDvGve<(`_eJr2!sY77U!mvp z$D++@lXd8m{c>AZ^T&*9QU2UtL_597!wEbGpx)s~P2y4}Az3cCrJ@~kj{!FKtlKBM zRw!J|x~-A}#-_2b>J7);)@{N&0IS3$S8its=Rv5vE6l~%FlNRD`yU|dw8nig%;rT| zzUj1wGYc5jC+9?J@;Fp?J%OQNH#edlCQfCAOG0l-!L`|Cdr8V^+#dFU2y`5c2}Edd zXoKHYnX9cPJ-VwEuU=P^070t>A!z^2q@FX$GxW6X6l(RFe8g4Z0Hq^*2bn2(8{}cA zd83G2Fv>PN!Q)A`bV=OhOgL404ZUt<3Demy zmnjD=eXi@FdqMA+USgb27S$V3>keMLVFLUPGY(>T;0Gjw>$v3_ADaMJ*2O^uSAJGz z&SNzd{!Hz0dfK_?xzaL&_ysy(;MbX}9Qadx`r`h}o?VIRTbVbWO2HS3<=rk83kxew89l=TBBY2g8N2G zPR%Pj!xQf&BhtR_c(-RrcjBoI4w%IuQRSx}+X=7?80;h#U;_B!&ZBYBB@sX8^u;~8 zSH#Hx+0=gna5?yV0zF)^8}Zw@2!UKbCr%?L5;@#`VqwF76ToKp2&v~l zn_P;oO&gKZlfJ3;XV1UxK*mN-n`_6e4?^CQmDLJb&DS!SAa)>gFJ~s= zj19N0?q>+~c-45kxr-RL`kZb@${a5zq)j-i1}nznNh^T>xgU=8dEysw*dNBJRdJCB zkP*eMWfRys0XJZP2JTP#-exdB-?knAZyUTdqN;7}hitU`^))QJH9&`WFAtY6hML_z z*hcP`74+^ENVL@m=&7%)awLA!6?v=XVz7$z@WQIXTlCx z(5t$^_=22R8)QqJkA7=}(;39qE2%3e`5kZh?oE1Z7V~3ucS2ZNruH@~jLUl6_I2h< zO{pHL97FvT==!3&gG8R=!Cpd*HVGn)I3_T`I~h-FWN#E`dAWDJ%S-w{u@WFC(}c{4 zjVO;wnMEl-F>pn{hIM4xMnY*o38Z}+c?-XcjRm^w_1hTc$hh9Sff8b%nxJE17mLvS zqB_^D$y)T4jh=RL{=yd=$nmCj{|I^_$HI# znY=wIw(ss;R{<(SQZz>8%co=w=Xh;=7RfsjD8sUWR<>g zg}Ja;vACzF`b#v%t1U%4h65SQ-06O*ePOgeVU|s*%mvX0W0I#4=S=Xe^OgPcC+20j z>rH)RZ3+bLA;lD*NG_uM@g3VQD9eI66!y&)_1Ni+^`mY!`RTCP zC7Q~?_BH>c!Sdl5atZ}TP6h*?Zep#Gs>8eJoDvt7PD88a;U7(4_)AKItLoC~v^Hb^ z`Nt(97amVPy%O5*2mZ=w+XQ)xTH=K+%h9v+1XZa%CQ}O)Gve6=`P+Dwa3#vP#`cCXaLC2 z9N-Q$gCXV>=&Fj>qs>+g&n-WfmfP2bTUqlo!7Z_H@&WN8e&DbKLKYxO@=KK?CYTqw ze^bUXdA@VGOW_Am2-*rw44Xzqg>ZrEMuiOjjIMu3Sxaj=XfzEp*Wz>e`2-i>^E(ev zHQ>%$*BVm_IU6YZsO{|`VvzLH$)@IqJ$M#INUik(&p0cIj7LLl*P8Cc5Iz1Q$Fznq zwftD{dEL*u8MhZ3e2(u?{2V2s+#1`$H`ypu_OgeJqUBO%9fWTJ%MlZ!Zm#;L7v!D2yUX!y9Y&x<1Z6zCc{^Z7jn#TgO+MZfP5e zn@Q+3l3$`K|DGINUhQ3+-ZXvMFT>uBg{{4Ne=VFHL4Ps~}z1GLpx z46A8G3kN>M!dIJ^drpS zQJ#~}TLo~EwZ>@gC~b9=qoFx9^FtW(zKMxd2|wY6u%K=vxH?j=R$Nh((IGHRF=0$D zX=V>o(lA?D9HIFxP&mL?#-uT1VoLfyfD1ZScZ-; zxJ?*y+R_Nq{DD<3vvU1>^0n`WnKg^LbU!|~LlXWzVGj#c!7MR_Kx8@%ys06^U75p_?Ee3UqwP9 z{O?y!$A5sRmZ#IvB~NkhNIu;3^by8N@i%cU{Ren(S-zg>$NnFmn-Tldys7h z5y#};KGQMm2UpbY=m9UWo!7+QDy+@)oQoz}6C0R96w9DK^DzSvz}r3zcti#lU-U7ji^3i}fnycA-xsWN>QMs;cP z=Na!IUz8%llIy&8kA6%C!sObqU`5zcJ9fHL9)WTWEYZr_f~^<7lv%&G7E0H}lGL*SFIqKn;5(3mP%L{->Stfq;F2@cW-a{=Nk(l~R@W$k> z=vMV`;GW{(KLFvY%aQ*8M2{z0h(E9|%j{j;P`P5(TRSTr+)9s&2$$XlEQbM{vl)(@ z5+p6l)Q(-t0?ZB>iw;w}s8&5FoZkpcDr%Kpl5}T3Y#pl&`S33tS;bp+%y&ymaISur z)DJx`no*5>zlqA(?b4{f4bCnPg`}eM^RvVHx9_(@v zA|rG_zkq7ogRpu8`#bmVHJ?IoxlaDdR38I>evtZTl0(zNrM_fL$dW^Lox{cW(>oVE!v1^f;je|a zdaXylij|kSLWHwt{j6WNr`|JXA0ocBSDJy5`bWx#UQc&bZ=Qb8?oh76J(&JK!1?3D z=&U97*@5$`!w_W23VX~oW0KSIBGskk%Cnkf3YyQ^OjDveCz^=X;wg8 zdE6rB-^&l93KhNng+6YmsTXUU+q&j0@*^{w!=+cK5t>OCn9Zit0k zmfa{^YA(}!xz#&TXj3M;XWc<8GASyrK*GQ^e+w?&{W0mQ%klo%&j zTuTOaUPGj2;9ce1mY*(D&sA}0#F@9+H}7sgT-x05<7TH;nBBoF--=$_Qw&YdBjBax zZ`U`#Ly@MvWnrhD>*k#3Cb_Z?U;il6H9bEP?6`k&I48fK_ZCvt0Y*C~_?>D)?De@-vByU$0Nrm|0r+=9q( zBlG;OI&2B?9{~BZ!zSFOCNZMbsVuDhUg9pt_h~Gq`^S+@`y1&an$LMhB4tMuD^H`` zA-ffdGDocK=VJf*eqHLl%6{VRi$=GHc>V6hM4;dc7*3gxT7S6S@YG(h%k;soYh>=( zBx(>|-CS$36&!MYVxoDqtBG5u83!19oA_2{xgG=t|2Q1R$qPBuKBa1ta6;h}{L7ye zldPn33RLrjJ57eXo@R*HC%kYlFA%gc*ghx+r`IHY|vt!x29|_ft?YrX! ziO`3E?x4nyXsPkCGo|2j=;hn;#pX<=N1k;k=>Gn48N)gP44JeG+<0b(yIi1O6v4co zL#;Q%o3pddEG&O}H`4{6YfNUZXInL0T{lM7_+Ho5OxU9kKD-dKT6OLx(wU5=01&jl zkjoW74OCr51^6e#L%bwkis=8*%>2E}-46(_i)jMWQb$ z#-OlB#o%RDK}QFalkz0{E(LC8VGm_?abubIG<1SsB_QIKKkVk^E#xj<`8^FLaV72< z-`~@C?XCq<58y}YBlzu;!!ga@SSy!wx(_n#*XnVPrD<7}KYOfx7n*l3D<>oyl1$&( z@!f?tqmbyWLi_H6pUvscO4jFFzNqnm3jeT-jl@D-1RT5NZ;^7#_|gfDps@Vfg)|2y ze)pX^qDRK)IL*1DsKpmZK^^i&y~Cba<%?E3iOUimN&uTkKwRe0KmF(DfPgMjHe<5HYOkm_ZiauJtS3EFkqn}!WU1WPDVm~MM&KVBM`+q z#%hR?mhK2<^zA)P-{*m@Pkes|C>Nd45E$%|c|!PWrGt}fg#L5`Ys|Jcwo{RPZ}I-y ziyf!()T>4GZBVT5fWt(=MC9PK_zSKl)*lP3f9FSGN_8h#^{e!?Am~I|7i5(UHU!}h zm%Z(RHM#wWu+e|cug}W*GCV&aPC`GV=CyosWuIH5u31c~r+jUMPu9&BA+u^X+=cLP zVCd>{YKI5?ta(?A|~Ash{i{ zN1#!(9Psc*8ciy~RCi=jVX+^3aXLx0sF#9V7#JVWyw0?3gfizv%Us#1$BRoOv81re z^$e2ZFn(~dZai6pH1gX1f{9j3A_FEPSa18KzEu`4-*)C|M&ik4T$S<;)y?aVEO+Ux z&K0w%=gYY1&UMRsIQ)gFn|-$Cob-~Z=#tTX{M2FMpf3M!lWM@BKl3Bzu{$X$rcN93 zXTbRn#Y=-_JgJ>`%xoLi9tyYF_DKKAR;`qkY(dx01<}S12syj2Zb`jmF$v%`%5NG= z;;?>CQ+&HX<>+&CUFqbN;nvkQ>g9CJIx6ebzj@Dhuld`_tv?b`lW#S|_NlQhq3l=J z(l;*$U9<~+DM8f<^0 z_hsYnGqTIaJu6HdJC@en*9W?n-qP-Q`%=)j^bv2lc=|<|!uoU`)=etc`y{2Wf^RpKTvM*fL6UlQq z1I=LKo&xI!P`|GwXy?LFMU6x^qvG=TqNtE+5`&@dTpI*DT8`uZ5+M7S-YrNtRH$`n zx#0zE7gaN|;f7k#OOqBn$u-*YXpZPfZY0#wxmWfdg^x}1;-QV+r7YL^IPSl3+j?Bz~FGxgdI(l)Ek3{`)d)Me|dsMl$jZ z!`K_llr^vR?|u7LxaE~yI&)bM_r$v&tpejZ9@wF?=`h~zJjhjfK|x*fE_UbF^*tNS z38vxD=F0)3;M1i|7cYOFL%`RL#y(6wLCRbEf#btY_;YHx`NoDD9VuU|m&Zf!@*|DG z$W2p6g_Kls{i0s7S_XmHt7^S78>ZVw?702*B_8z$yQ z8Ig>T;p3K1$QihZ{rI}*!(!*Xz)^NHTe@qg=#k#%Tl12FPr?w}#=a($ZyBd*i11XXeii~>aG+~Bhj6pe-IbHYUjbc zKo0ZP#%JaJ4?wn&hp;>;`s(HUAAs&ZfS^|c`3LV$CmfLPCnSi6?w$dZ)VPv*8ZlKp z;7r<(^%9n0epqlgv|dCxV+F(G$b^v+M-7xG2KX(im(Tlc6{AdO@~ls%-()nGqGgcR zEYgQv&K^{?!1uW-v0agJ-CB0I*a5yMP&NQ$Ora#O(0{ygEuA^wZ&uykCP3mL292oQ z43&d1s$K-8YX=vx2>RC>(09=f(0aZc=w2e;7Y(%aR^edlwC}MC_&pL5KtJ`90{q2{ z*O;?F|I(noiq7K|5<{`=HzEx6zV^d$xpq0eAH3NmJa@IU%~6&0 zNgGBmdS_`3ytSXzNloDeC!cVZ5)_sFpC=+{Yg1XEC$j)Nw?dzW9Iy%er*3E(!bfKA#jF`G9*`x(HCTFMho?`Px>Avqj zK&|HO!|8Kb+`59f@5S{JPHkqdJuno;e-+t|7MH`KYwwrmXzZ?o*Js_?}P>}kkj0L-_94*yK`M&z{T}S6V z&yl@^i*yUek?GeniY$GX1))jRbR}JiCvNv69+1L6?+{va-n$K!lfoGv%lv9)KW2oq zV~&DQKbsmAN-mtYkg*Gz?J%q7u7vvCGho=`kAs6=3EpDgGEd^1h*b0inxpFSWoq82 zOIC2NUudiWGG@U2V9d}kfbh21>!02kE;xnw`z_!wJMYFIbRrC;*_9#4d#QOt6FMBq zHL+i(WHHQtx~I_9`oMS3`M^&@MgWq}!u}_R=;N#4I*tK1DOWNZ$ICCLxcyY_1a}hY zsKD?oo8CT*xhG#eWbOF-zLgr+zq5%<59qLA!OURIu;pJ@m`?{1zvR&P4h5dhtRTO2 z$@|LZblKqVctfagWjys>sX@BzWAL=3CGHNdC_2(%!GwQp{8SY+_GEUCi#hon!Fwo6+4w!YoT2a5%M`PE;mCM2UJ7JFzI?c#p_T z89vqG-*e`DlxPGvXVyLa#_3$MF!}SQ8%_nuq3-wd0zz+(xH9cC>Mhq{RQt~T+!lL? zD>al90(b=QP*FynYbw=8T1m{$PoeXJV!v2;a(O_Xyn3$?OgUrZ{26{}Q$4m1(Lrhv z?8NZdx-~ctqAF^%`=37o>DVhpI1rJKy&co49zvNp-5E;tq5WGy&IVFn(zNO3w9|vV zZ4K#Brx+GwOdnvw8?H*|sof5hDrlkLlaYxC$)c(-KOQ)JeY-HG<_c7K-}TW){G16?ey2Wy&0P-rB)GN8ZC^;nr2vgfn75!|%k8|7lNY!wClb--z; zN$krK_{d8$LnWl9k)DDcDadGy;uOu?hid2OA+1hY!!^*Yupf;j5HW>}ZF4a;6S({h z+ih#Z^3>noN$Wlh`=4nefUg=nt~Wdj{Z@o0t)CY_k_8c= zwq&=o9b>`S4S@&?+T=37PSWzPC|L-ic*gdeS#QCadn*62q@yH)urfyk#V_|3`_CG zBVTHd2|`6EUGJCYIO|0YU8f|Mh64@Z=dPNFl}(oo*Uj9Da(gi|<5v^a*3@bT4UH5T z*~vq-G~tfiB3;IM1X(xIv^GdP+v_dnD^S>t#c)XFn_|PLXQKQjitpWnayYLwnQqBG z)wvPy3Delv_N7BpYA?G;=fRmz?=&B+ipa-JeNfEOOkvJq31qcjCe{-ja59E@#)4e^ zeR1n1C8rP6Ttt$)m{MhU)vHg99lvx7Fobihs4HUdU=Xj*)v;cfZ#X*EfU`rCkSZzB z>8hbHjwO488G`?@d~H+fX-Gk0+y*ka5TOrn|FL+(`Nzl()bNQ8_wtRl=%VHIUTA(D zl&F>x0ftuJ(h7wWk>~#Gd4Gj?CoH66zeYa2B|B`FQ|epXgr=bK{&X(f>ty82{n>v! z9C`1rAF0YaXWzfGu6-ulnFQ))9No#=%?754t@V9(_9pGqF0|)e|GfJcF7R!;MoiiB zfvonh;O9n(jpZ@HWp^7cTEW-qY7&`QKY}tHpZJkw%_5)qjto6Q0)``DBb>>Qq_4DJ zf_+NCEv+apgsgD}h+^}{v5N-q)W!SiUsI~MFUgwcUiv9(Dx%&l>P=Uo0{%JfGnnwH zsQE4FJ^cZ5bdePZETAQt8o`UiNr5iw#s{kjA-IUBrQ`;N0Rb!lm6jTZ8=8ccGrT7D zYYKeVttUypr`9K1>J*1|&xN2S>psnj>6b+c{9beL16B+}Ee)KHHs+jAIi;lV&Ie1@ zm`-5Pnso!MGWBcTV!H73e3v9eyP(xGZ)cN!a~ei^WHkuY?(ctN`!#0i#M*PqD^&qb z*S~drj=LKkTIgikJrbXmAixSN9#x#@EwH{3+d9w6yP-*K1x`|kC45Ap;oB>eP^ufP zggi&J8Sj!}K*{NYu^o^~gi<$1@R^~5SE-B3?4pHETqV>^EVxqldHc* zx4g!eZU~Jdb?~W+H>f1fX9`!W3*l_b65yZ?$ zetc01O#W>zSUBo3Lf0m)-(H%7F8}(Qq1p1-X$bNut!4nP%o!R;jC8Xli}rre8nLDQ zrcTW5Coy>y+sV`avGnuO6x=cllF%{I;3u zusYm;SlzPflg#s$1wZ;4pXvj&+(LBqiGMeu6+hUEP<#b9CD!&T#1u(?&qw&_&wV-R zaKhqWn4JEDbLwOARLaovSn>B)zE%G+oj1DyIW@y$67-E_m3s=4OG1f1Mm%`-`b0{g zxU@SX{_!E~iKRMTh&RVl+7}qdK43pF<|2~ciF9p$gLhG-Myge}Tm8YeV_g=0lFaT{ znewxxjemS&UIzlHv+>8}D4Ix{OF-C-tb$zy$O8i5_f6x7}5!1Chg)FLtuvLcl@D?HA4M3f4c+pk%s9z+KmoY0aB(uSGDO5iI0f# z4J|9_!9HV&mOKL~HMfaps9kZy0t33DCQeI{aoc;m1QS{-BtmyM{{0Wtf-UBr4s&@#n#p52__4P@Ha_b=9N( z_vnWkdGR`jxccp=yMZTl^v>MND+~QNQp=IY6?uCVGL%R^n?8+S`+Qpy(zhj1sIlb3 z!urLX4sbGb7aA**$MiVnKNdf?csI0K4>+z%=(rv04%~Bm(m+uRvW2}DcG``{#dX%v zr%SeToEU56eh+uB%j=U#EI2v&6)eQi4J5)$x))`Cb^s;e(bLpoM3PC z5?A;fh{*{j#|?r`W4(CUm}6bCK)MHh`Iqqk2WP6%bO)j?&D0s11TMpQ5%!iwI_tey zenZe>ku0qx?u|)hQRm1t;*teYK6FU9_nM}iwN5h()xKt-uk@#O7h62{_%GhUddo5x zJrn}Lwi@V`VK1p_fdwqNUm9u?pJv>YY4ScdK&oW{t2gUy2J{-f0%rBHjUQO?Eaa_N z%seB__V^r}Rb`Hzmm{ZmwxSX*JYoOddMZ=?GvKZ5JVPZdL6;xA(%i{*71K$-Rkbd@a+QW(sOMR#4~2AvoBLirHiC)7w{ zL9=7tSSP+WIe*sGHSw6mJpEq|8J)up1_mfo;=WPASA9^XnB+-I^ zeto7UHcL1#>&%+D{-2_+g|eLqL?kaF!@S(K*8S%JtXqI50DV({V~1fXi*aj(WHtzV_iDiBC?P^0QWTQF%c2y8J~zC{{kAW$ zgS}ms$x+35ZHu&f<|2n6{1{YHa48I}du53G71M&3W(d?|39y{(Wt(m1Sv@!njT9z| z53wfDmec#(Syqeg@aN{k{`Nz>eoVBFlYTVJSsvHdT3?o*FUVc+>x4jDkIE)P0aMJW zY;oFeP_xRyQ8|g-bnS%}@*+t6?VY(Hp#UZseeW6Ke9XfG{XOpqAN-rW`CDNyMDG>I zLchF#X;U%!ccS-%ZGD2PVQjnDRT2BsSl@jc+9id4pvJnaz!1r%f{v@A^!|W&4OJ+j z4*w(k+|}4dN*OBS9oI`}c2b%>MWPW3Ugh(UUx=DMruy{A@r2t$%Sx@IRa}-q^>rU8 z%io%#M?l2x0Dv4<5G|Fw(pyBfL&k}O=tgPNBqBdDc#mtI1)ateh8doy8>*ORXi_p? zsyrLrvVwN!Ev0HjvfAbT)tPGOkf6wYb;x?R&&xGyr0TiTe=8gfQPG)g#{}hKwpQOc zANruPXTsa%7v8!+#t&S^_BN+v6E}G;hUIB{oqZ#t@yMEkU2)+rN6%VY+H|}3>&MCG zFO=MTU}{+K=^7gl81J^rW$=n=A9n%w_G1y*2Fv5Ni4_Ji@e+`DOTiTvttFSJ5w~WQ z%w$-d>x?5s^%L}TGX>dyB!&7Xdvr8xftl#wEOwbS)AKH;mH5b3P3$=H{&r(>i5e9G z3H>QIz}>ub^ubZlxgkraihf#M?KWuzjl!fMGL|F0s1WX_2$`MzYx>D#$AC9d?h<-` zqr`r3-1$$wt23;9N|@xi;EgL#i8MS6wO+Ib>z|)|g#OancJ_Su2T>=f+m+mqHJ6Vc zBwtx-oVk(thA$8$VF_&%&6iJJvuM4c!v)NNV^jaO0)5^SdTQ;jLM-(tY$u^l_7YzV zTy>#N;m33Tv%df`<*Z1l!gOG2 z{mvg|8u8v#U0u-)FRf6WpEqD^fyN$newc+>)C}z2A2c3!R{x&E-H^zg?fSeII|b;y zKTFGo&NkG6vhqQ;P>gf@WLalM(POTKg{6m@al)NtEnF%;_P%WknLW!gUq5j_>+B2O zG-FZ54RT?=@K{C{h;fbl^nIn`AUu-TaGI9gD}uS`QVwo*fwp<3clH`P_}=&{%EnTv z3&z8@0p&$p5&7B@P1a`n7&xyqxuH9gB?5ZfiS@$@Y~Z5UDGhy4&W4tTBx5Ox{reSO z0R-FxH5K$vC72}Ib5)@i$(au6%j1ndDB^*38Bh+BbC;Yctln2u^V-Y`qx!()U^9{e zrI(sa3#1zY#&d(o%N)iEW1s#{&EP6dvs@{iG?sGnzCu%-A&Q`Umc!4&?@uyphz;Th zgZ?hg3GK7?6I=aJAc}O{1rjdq)G8G}-T8wH{-VHA-xyLp@pl6~w}@-r7ge-S>N*DX z;c%!d_|E3`*vd&<4@?EOs1TYV6Y^H3aWP<4(LdThfsI9fb*HKY$>p}?ysgv5Q&0zJ zfqo&I{>lA^cF1%R-b-`)7hzI zjANwCk+VJ_&&7%k6z-=0iaR!jp$@n~Xb?DliEO<~y9nO%SRu-!HE%vV(f9#50OXns8p6(=Kn*Il@%$GGuAJz4)1=`uuAYzc`}W znN3gokO{`El1*djX&qM7)2mT+KG2{i-}Hg?TDmf1i}hSY-ExL@2q&N8RP$wd)|fBZ z88)o)tlu8U2_OGK_UMBNrP6?Nj7!@uN&}Ja00Bc0)H4>Z3l=(1ONhDzKziH%D2K}p z@ulR$mkgt-KbnpZ-=mBepBmph(pZAAJk8kZo(&}`CvrI*a)*pfXDF2-GQR=>ptXU* zz4A_4B=C}t7-BeML1a&l+i4~X!)kJW!Lkp0#?YVc%(zSmPMEF@ZSz=^rA3nCRzwrE zLlPG$=k#Tm18}|u)YzB3ynY*9g-ZWE; z&1yo=v@-T*QxWA~zNEFI#)ord8Wf%bqjTl6IDtVSr5O#KEr|@-5joj`xzA}IJ?c5+ zV>vcirA^f}K7gipX)3O7r7{`9!$6|o=>K)PEzy%9|Ho z2c4<>#B#5jFtbJ?cf`umC1pcZSv73?ZR4`zrgRq+ivNb}<@qx5Z(YO{xYUJTD4r<} zb&Y{)SGS?-H#eNT7dN)XpY8wgReWpzQgY`;w3paDu^Zj7<|mLZ3roNn->RJ>(?S%< zy>j|lH~JdIR7)g8KVG;mN$_}Oa%q6wpFG#yr9?wf1OZg|s~fAMMI~*WSdq?l$uHZ2}Gk8Z@fN8)b-rTO;u!2-0{IjF1R-;Ii-9qn+sV;yO? zp~1GO*~#&`_Wa>Vjdk>JIHK%*{A2DcL*J0TjFAMp;qiwE(f&~NAuhzd{us|wj{VCc zfdT8E#2fW5M6-E)h+ER$2X7nDeHk8r86ud|#wU-fx&*wVc&3b%85e9MymO^NwD%=j z&J~Fwa8ZP%E5OQHx_DXsJlN%if_+*hQ44kk{_uJy!*lWe9bG{hLofv@;7Zvnfcu|` z^vk4O8e|BGE+e-qD8tK#+amy%LMe&`Vnot|X{H21fhe6!q`?h&2?dsYdA5yH+CZQx zyf`6?F0yTjm7taW^mBzeyt?l1b&1zZ)0J9CB^ekA*;%=c4iC+iADqjma;bo!wi~?0 zF_HC|1TGsIY~|guCDi5=g1F&+3ZoDoVRHULzQSo0?dUTIR(bcr3hh+S<+G4`)1_~1 zCQ$`9{{Bd4`}}!gx1k=kz!{S;(uwN8h%9@Y)Xi{wm3-Y^BH5WafrSA!d=&uL?$M2- zel4LKxO34=a%Ocgqdvs!9G=fTm|G(z~BaHq%R0>wyY2n#evu& zvXk!lSNbmT6KEyNSP3^;=$)yC2%mb!wf1&$S!TRpBw?6-X${9Psr;%EECsnA?U?Fl zp)0Z#G%Ab-Oh&e3PjX)Rq{-Ou{Wd4mTIf!3!NuExIhsOmMd5e>6SNVEg zzczo|nB&L-o`f*D0Mzgl{Age$ZaVto!pqSqBX z9ijheO9_yt%w&|bkmaS%0RjlCdsdSYcC@$#eA||D!%H~0nWXh{Vnfxvy|ax8#1lg1 ze=Lpt7={Rhd8R+IECSYy`AqYw+XBKU6p1&vL56N#y^!%~c`H-gq;??!OkNxBY@Kd_ zarH0p8~OuAea7O7?^we|Ay3D&pR)G7T4#vs-AK4cE9_|t`uhyr3zfB#7s@Ug+-^0y z=CC}N$?(>;^6FkZNjXec-eyg=1LjNdP(+i1j&)@WYr=y|HZZU7 z(O7-aE4LbXUYuLez7)Sh4V8sB)%m$zCghyEOxlrk7ozU<$T-OrUOCfYr#K`OU2^GJ z9rEcC+KVA2N*Sbj(Y97>WbafV!~oF< zHKGQ<7|9VAmNVHAN)M*B=>H=0D}06hO1IA}44KcwsTpNpWU&sTkVg6MYf^t*Ff?9Bt&aR!RKLrK*e)t++YFE)h zvxP#W^f5of4oG-Z%JL*Ehn|t5Gs3^9c;(`j)+E>t`3J^t^z-cfzN*2d!6G$~QQ!mj z_E7)6Iud&)t%4=sBTS6Y?4`FJ^5TTs9{{dD9T#Cl3#Q01IoE(2c8V5GNwOT*-c5Al zi!yL#fGLY{M5iaI*JmO$R@~x@L1bJ-@uq;4md4BA8W&%e%eRMxh?ZXxN~@lat21?g zi&S3p*(M$Mn~z2B4m8Yy`vrVoWF#!BxI~zcv-^+UNZ;u)qG)v_x=L-rlrR9?3V2u_`Lde%9!zEcrgJ#J9nDS8)TrP=^(*TJMZ2Y1z2 z?$#`*C93W(2VN+c!g}9IPQ6JKF;_UB^Es=F@74D!-+!F>tG{75u1p!?TDw{OZO&Q( zdbYzItRbbh$+0f^AIp;>jP?6x03u((5Ex)U`lEu{yr{&Xj-xRST!=!Xyu=N1YQV;10RW3nZkwLc;#iHP zr3&MfZ<%oY;q76|Sr`o8*5vH6IqN#`T}kg&hc%rw_oC^kRE?q0lQGdO%i$g#tHQ7= zILj%lSD^Ca=P}V~Bp%kam`5!1Zb^}K_Sd)Kn}=cR55Jy&8^|hlD&Qj{9W^8eR$qur5F{f zC#x!#e6mLW)VtM21@E0zg6e5&y)%kAqo1@w_E0TPoL-%L{ozC6Be8_DUr2U81kbH^S1EN zqf)->Y(erKX)&=zmtPNuUDzHs`T}`iYxnHRj(jW+=~qNnZ^D3RVbq@XW%%Rda}yx_ zA2Ci5&FAmSte>eU;S>EO3AAn&DSyPbO}ju`p>r+&|cOox}H# zLOt6WPxoYDU|fK0`*nF~1Xu2+IryHXO)Qr~{`Z{O^7HTXdVuYwtmOfN%BI%fB=Lqn zHO#Yq$5|hb0qV56@HAyCW#176PI7BP#xN`?hkYBBJ(Bo)v}(OiK$c=4k^A16KNL#* zk40#3#XxV(&Kbc6ZZUh!_iBQa!qvt~2h78b^~n!*ps%Pv`7A94b0UFw(43 z(Rz<`UeE&Wf)^@J#v=>&_p(fzje1s{yq&yV`LUZ&i;2gwAqne6900xid5N@6SC0?^>QZZj!!l0= z1x#=toh1j}oO*Tu=IQaO-f$KFf{OtA6C*7jQW}!9u^fn!K3Bf!U^kxr6&J6sAb}3u zO5Zm7*5Zv^yi@8u8kWhuO%C2o00XEHdMw`Xo{#UM4B2LTwgzG1oa+1V*6Btd7-ulK zCs5uWefSbHj7+R@?tYE#;d}j)16G=y(uT$_-7i>j(Rop$q@?6{*Q&Xu)ZF{kHNVw z3#q!wE1Y^Ki6)I&u(9U)MROy0*|m=&X!%Uu|5cqi8&PUAS_3pLy5Od>bT(1N&GM=T zmY1n9*ZI4sV$(tAx-=z9cX-W8i!XXIHIOqz6Q zBhDNbFcj$OQ8UP{MO|5)Z^af|`vICDy6?JDwv@ZA!+>DYxbj_=%0+)?j2dz+pf_rK94b9gGJ zwn8-ccnBOaYmWSTlH3uc>$$GT#?0A<8;Nu#_pjr|`g#?aJg6ETO22`(DB-659RxJ1 z&t8sjJ{k~rG9A-apF5HMtK>@2O70P~Jv^8$keD5iBw_OE>gwrkeM7;F6JuhIk>I_q;W4y57@*zgcb#)WjAshj-u*5?jnj^m;Z%jMlvH`ZW~ zG%az9xEt5uLsYS!ahx=~lXt2Noe550%FpOP!r*ZZU_~k)G6Yj)&?cAr3_E(TSD`4{dS+eM| z+4lXCDlT#}@oOw+k3fsf0I}84Mpp$YNKulvne0 z*Upg9F0?bJrK_RA0lJAgon`5wjm|~C#uOimq~PGA+aEJ=8J~HhI;u3IxLTPe4d@1`l&hJ4O`{8=2H9q znke`EEQhnN5E6}FPGk+*Tq9#&cDS#AxDlGyW1In+6HkpN`)#_`wClI&3vK@{co z#Bb@Oc`hYBN7Em37K*-wb6VNf)bYi+KPWWXp>wy|{JA|G;?vgLwWPWrb>QrXDyBjE zr1d)g2liZ}uqPj+erhvP_=;C8YuMt6Ng9*RFP(FBX*;bbo_m@F##X=FZstq|r5b}= z%9B<=XJ`#QN1xKytuzOuK{!L*Y72h3pc?l&C&!2HPRMZD38X;$7}-U;4a_sTbZ>y< zJ^O}sm#)R^E+SiFW5FDdm5M&zIBJogu@-Y2DZo(hui28mm~qyZ{#Aq4V27FrHWIX@ zB&9Jti6iU-p`ZJSkx{!}u{;s_UxppRLU@-A{354umjwZWJE+O?Qs?2HkvrJdE3?a zu#5pmzmJ8&=D5Y*c*pt-g5l>!uLbOVLSysYdlOGwXFK;JacMyXSqS1(!0XT ze4<{XL;Mm@!B>4c*I4z~!BuTbq-Kgc^NbP@BK(gF!B9|!G>FWb*d@cbeq4t1NC!Fm z>=O5J-pM8mLqKe_;pMTomeR>uLn|V$@D`W+(bLy(?LC(*OsdMt5Ap?6`z;t~1I&;b z@_q%hkg2lq$v;8Ph7&&g4TF9jIzPocf79btdfBSdxq7PdjpF*}CA|3%`JHSitaAYd zJ60=xv6Q#2lHEM5-R?}Puu-T(!!88=OY6X7ke=+lpL7?IhHw{juX4xja|=DfaBGg1 zC1ljpcKq~lHm$4a@UO}GF_a zbHlMV>-o@yXkcs^F!sb$U*VvF$q9&YPK6$qg9%x>MG~l`+4dgb2ZmEPrPrKn^)@AY z1(e8eCn~`VBaHI<9h~Lyl2Lq=nV5^o6>yQwM&HYo58ZmMsJzEy;1JwD^08K=;_zn$ z9km^8oKTP5rwg@53-Frpu+1oUM+9#_bzI1X9nmiss1MEL+UjLLW1$>G_!JTij%Rdr z`m46YT$s|Fe_s;ra7Ol#yW)836DcvJzV8gZ$PZO69~pzk+F(L+5!nTdr!zU1$y`j% z5{d&MGY09k#1Ab(gL(j|lV~3uoE#-Y`Cmifi=DTGhFI4Nv12{25$;5X`1<`3RVeo5 z(Y^!!Cgx~u7LA^;llbPDvPs;cjRSUV#T=Alasi!yr|wT0vQr)cK$V&#qKNpGWI{K+ zPQaqPDGhNdjGN3$6yEp<6{W?IDsQy0Dy1QX0VY5U)}~ao;k>t&kNVu}{8-MHD zFJMOY0cBP>J%n92{Nki*rvPpXcC<4#1oXoy(=sWFGq!Fl3o0kGVq}Zg&HcD$u zby%|Dw|riN0=nwKr87XCPK49syhv7bPsAj_t#=Gy2kbyJg*p^~nm<_CO}y$dknckQ zbw`Pje^M5X6J|S#?orPE&&N2BcP%L&u7VQ`9{^3o^zQ#y_&P-LDiTq1FxI|v8LtEO znJ$GzNraBt;~wZZB4EaRsRp zp7kkPJzbjZKD(2x5OJgB&;rkVkAR@zt zcgug|BQ35!T{pSo6rm{5vcb&%qmQcs(9K!Dh_A0G{qy$7uNF)W1CjQZgl6s+0eX}i zc^X@=T9YODs*xbzBj@S}SpyfxMTtR$8dyUlU?ejf61G-AdEKkLrNw0jEIfw%;hg4KwQPVz{8~FrDQyklNAh;MT z!+Un;#=fFOU9ZxDKY8O^CCJq5mAddA5s-i(h-j(C?GvsAKTAvPlLi?p{p>owaaBmf zS-wz#>~WRU+0s_uUbnRHAB!o74NEA%a$pIiMPyjRHk7VO%UbDKl%x$4k+baI4{t&?m1$DaaAHbdC&lMgc=O%mI`04nZ9*(ux{Da3xpeyXh0 z4;>ZNA0e9)27j{jr61gcs|(2pTpO6zS!2rW zNj}O7>^V)$@%)-)x)7bn_Mx)-lsQ|@zvcw@S1&wx==aEKsZkP)`}xabnH^x{a;5}L zl=#e*gMy7ecz5SqMN-GzK`SF^*2%i4R7;n~=jAPF~ zlaEqi3Sx#{GW?U}w?}k736omvsb3*a<;L>;Lj0cTsd8}KHGbSPB*QWoXZbeArv%jy zRR@7=)od;tJ*?3>fRmd70ULn1Zb9c@ z(($TZzuR4Rt;c=#w`k79;}l+u@hAGE=1p0pFVDJd-_J$&yBY zZHd2zy!ZDa0N8Ux(}; zD0)gA%I&wZuKTO&M)%WKl15Lvh55Zj@4_wzXSlq-bnW>Aj8fq17Cy~a*T?D=m699W zJ6bY0Smywq2qXy8cQrRmJfTy?I~pn?6Qm!xo!twQM>mG;l^cHf+BmxYz`c=&Xe)BT z?8h(9!RI-hy93PB{T%}fROs|9z02Oxtd7y(IRhDEvw(8j4z_z}#M?2@qK3`VoQ5C# zTRvRkidJ;;`T47}w{LXhxryGZL{FBiPtO5v(C~{qK>(o$n``-dT_}5S^*bd_*+Ww9 z^>@O$RQQK9!e7=iBD$i@RzVn@#hd-)*n&ATc8@8Blx3hF zCigGIqQgv8H_QuqvR3N(b2DyHnYh8>$y(hk*TFy^Db$x-aW_!`VTJE@rcsZ6T@wvl zT@So;t<`V{F{AE0tWs<0^d@S@P*i1)WnEGP|6Y$>C6?WmgH$(DUudzkgZXXei^Ia^ zCgG}wkzEd`R0EIZSP8@-8^G1=1Xy^<7qb5tlwn~RW%*q-=c9f-)CfOxSy$yt3Cz>p zhb_G&npY*3bItU{>bX`gtxO-*ho(>7|I{38AwHZTV2Yt??cAO!P&n+e0($ zN=wJplZ#e$d%)e1B7BY<&swdHe%I^%%5zq4118)KS(xq&o*02v+&|a8WHtA~H>bYE z4L3?P%G$a&xxJ1-ceG(Jd8Ds%gK{vRcc1U5iJkb6z`b_Ak*huAL~d9e=~3<`@fI2r z6ESo#5XB#GWuyoG?$yba3thHcSE@#^8bnBk=l|da4E>1OSU#z z&w*Q)JDN)ew&>i0glQMdTdH(^g}vwWod1{$y7G8BCpy^k(f4k3nY4Td+=xnDRJ$<_ zg~OoZ>0Q46u_UIt8O#k^=gIb?7SNyk-r8qhn7R`CB<~`3+Wj0E=}$3i>M~b8pO2QA z_C_gj<>%*fg?}mQXknS3E6G*{tF!5f$!naUTXOu0&xZ0{Zi~z*%!dk>rMLCKIUdE_ z$p|&K2vJ>q`^4g@{CYj&gl}DWX8Ethg-spY;)Asfc*||6dA=R#YmKczX%;ezbfMFa zIQ59BMmjU0;rkHCSkM8g%agh|w6U~}-!Q5})rD?4bxkP;0Yilv>Wfi(s~R_-zG9Ul z`w!|ptp5#vt$Xse$5V?k^WrS0vJAZ^4p|nG3Faja7Drdf)ipy;0@#h;RaN<%i>jA7 z2XsP;G>JbRHgC5S=E0snRr0)A3KU>|Uqt+5y%qfIlpw^05229!DOc`QgTzU3>j@4v zk2Q0dWni!GS@^^-boUU3y+zwmnsd>fgrTRMzpv`(qC?4CsZPYU=&V#_ZZSB^j{PWy ze~;%Q9uB?U%at>>pTlRhR@)PHi|@*#W11BexGlL)DYKsT99=V=|6YB)baH=KN_K8L zFY-$wtDO0F@zp@NgtKxTX`|Z@9z;ErQH&O1IpN`a@jXwO@#oxM*n-=@)JRW*oCohr ze>_QFxcgv1NJM;WF>=^N#S?Y-Z*HG$o4JNQs+-Ak-m3Yl(An8MS&{*n`&RcP>sGR~ z0|$34Cr5`z&WZQ=Cmskj!)!Ub;vao}bba0Mbw+y(0XAT5#uB)#seSfJuS0@NSBzK2 zWwy#L_kjnWhkH#a=$RW2rn1s1xH%uzNB5R`Rj8AezB#}^Kzv__166cO?$<(3NTbEtcXHQp+Uby18A<-{Xq_)?C3@Tz z{#B0n`5rH$c?}nrS1N=MV~;*`H_N(2zLI!k%!g-okd%t@jjKqid1q!HYI$yNM3T?aU#p6nzr--B^~}qZviI+k zSy&8;KI+R>^@PC#{od*{)&01VK0YEoU;B|H?vXYTxqFHZbeRwie|_ZJNr5+Y-LNCI>8thKNI+ zhQbtAm0@4jeKFKro$~P3n|J*$Rebz#~LuTg0Q zdMi)=u*xEY$+ft)Eo|HLF`y>xc)O>{n~JXmd$uM0xGwwM`01T1ezt!$@5U(p0G8u8 z#_IQ5b{5nE{!XhCNTyN1b<|C{eN?tlGLBU}Ms*%cBV9q{r*5;qkI`T#eVl`F1 z!h*aqP$)nFl;*yrr^A~G?;>346zhM}6_Vf=x*dPb?1j_anLnb8j3KaB^-3+SH0h!R{pI^oiPsnC^GSs+Z5SYG@Bwn4knE3&cza^ zl&xx`ezv`9yPWXt%kd{bk0ZsGC|`&UdDXXII;w7ZosoN-114m5anJyvE?ekv6Hs1O zfh7!sDGtlU4F2ihV>!a{$3?fB$rVXK^v)aWuH$Oj`E}9$zMc7q0#su5ucdcdG}Jt)z?(skK1i>3{_|=4R1e37-fXO6D@WZ%Kr4Ex#N8 z&?bziv>;*LM$@HinZXP!FcxaNI~`V@0KPYP)jGxp#y0b!9`$k2CzsPdSS%x1Z*lYc zh|a-m<&xzbqP>gS?0wfEGCMtM=2is^kS(|cfYTp*dD)nDTUYTzeZV!PB{7*t{zK~u zV#3GS$Q~Qd1T0}{i6$?9s2Bc@smPGcm|bOQGR1OXeJ;H_FaPGQkiU%WFOKStXbpzb z+&ow7W9Ep3nrcH?;^OGUxHIuDbJIseDcsT$k(T|?WlU3E{knjKR&!IYO zeXa$|vtUknxyW4Hx#W~)ZC~+prS8BbXQnOt#T*1OI_LZ9miLln=~1vt6rGVdiA^mc z-`N!c>Sh}-AqFV4&44E6D1O==Ih%0t6M22PqNnKP9wLsow`uVSn%fk?kBiU=axrQ_ zJB?O0Z8f^_4G!z%&RB=p^7gtlgBTKCWGwY0FcAelH^)2!qDMuIVL;8G?b#Jx?udI( zKC z6-#LiihU!oNNA(YYTkC!*)_Aq2Om|%?VMA#?QAtFtPf)F7VS9^{(?)n=nzyEVRVeUiYqOM$l{QClJlhpJc`m)?HS#rdDpz zg(I{B*UeMdyjIu;GnF$nqI+JA3LVH>w0tl!t{w}AgsywnQ0FF&O*^LXS#8_fx%s3> zhn)TJK&&{D5QimOgAxI;rE-KNIf)@UNwudH5Z#in+#R7SMQ01jWkB$YprnrL>p_MmrFLX*2>sks?fU|ze3V7#JCyy(M zS$uZLUnTZ?vd@21gbrlJZ@NcRH!Er7KUB91v%4C{$moTaeHr>P8N(D%RT~w)jFtXW(G^oZ90xcghr1ui9?*O!6eX<}XMv`pd=14OG>0n&3;qF?4p zW&$umGAYLJK@GwKvAewV5@i`b(;-Ssn5c)nbtLc9zE)h=m??aAr=1E@lLH@|0A4g<@~YHA9=e@R*rHGo=m=FdihU@C#-WS2lY=I zeK@oD)7F3PJE`3T1@8%RzA%9=%mJR3u9r!uV2E5FJYmclA(NeDfY7DBdzPWc$|jki zZnQ;fMt5Q`aaJ!!U;c&Q<1?dXBFw~PF0B^y1q7TB+XNz-4NWWmUO^N)vd4R#Ti&f1 z*~`8dwRx4MNzGTZkq@%(S!I;&6R~Lq;>s7TjGcDsa8L-s-e~6TC(|<@u86YAtjlD+ ziF+NBQbsW__)`}(GBC5`Is1?F(WnHb0(I-mww#zddLcD6SzMYmBx@!F{cT`we*f-N zvw$g27|X#5+vmz<@AdSH2@{UCl_!t~&kt1Q=K2$GVlY)E%(I%#C2bK-Wqg-~GM z&UHCuLyRiR1?z(zlenCJfxcXb?PUmp&y3q$X;|c6hSR%N`P?UtjSBibJ4!Bog~`r` zliwGeD?&G_bUXKNQjA zS@W3bNCK{CRs-y9LsOiI>5|_<-OpQi%ZuVHer`*L0@4+9YFpU|chBQT0myniP$ZwWM1+^ik@#>D;uUO<)XAS`c zBO5C~RegoiF3vFcGpR>_6?|X>lU;zOaYHqV8Zj}I+%(pcXEcI--vBu0o-XcebDB>n z0(xT_?yN^j#8O0whv_P6znz3(+YH^{5dPmyY06eDsI}=?r~N&bePm%t`h4xdqT7-6 z$cuXPw0DFi@K1qR9kJzSy_h^96bF(D_~jr&2{fm)GS+7^`_f8fXU?)AQCg|Unueqs zw2Y|!ipX~f?FOInd;d=MmcXL&m4T)#@OdDWK^HY^W3~eUPhxb8isIhL3)m>+@1!MF zGaPAf823}9OA)M;;_ov=WYRuK`}v9g-Bs+U(Z)F zox(67gQXAJTE1wW2pAR9V`;obcl$vpWQ<^Bk~zaWl}LFs1`^)fWv8&@BR;azdDST6 z^c&-Pb&8t`SFTN|YbteQ*&ybj*9nAH-205Q6D6mA*w)88fM=XQK?|}y@ZiuuC$#$? zQz_>`XgsK{Q93)uR*87Gk#QkKNCc$K_NYuPeCueO)&hkI4fGzxE2Uyz~e%i^wv zQKX69Xfd`SKzp@{QL>?CCv@rqP?l2PlA1C$z4*#)dT)L!yca6qDw*lpuXuRuM6O43 zYrDuFXI2c@7E~8HtHu!mSB2-tex)g&S=Ab(NsG3~y2}|URg9BZ=g5kUE-FC!-A@8- z6cGd!mK+*WWNvf%x2@fF@1A8ZnP-3}d|G2sRFU+P^iS}>B7&J7!8v@dDQ4?0f9S|T z>Q&)DqLreQ(GkTEtg*Y4GMlwe>B)0J)^qGYXtZ-6)`dq^cR3Ts?oM z0ob*RriSbz`w58C$g}|G+iUzlF-~u(L?U;>tq4cCC?mob~0Jg zSOZxxTa?W|H+;|q9vfJ)iYuFOyQo*mjQ$<4HpTRtCuEP-7dXre!9HaJ7tq(dz-dhN zw)l`TjlS3QeJOBOH#?P~$fg{GnHU zKpmokz6GGi&?hhUE*$TqkK|B^k6rp-EMZO605W~WK{l`>f+_;LhPOf)g?Qve2Gh!> zHdUhP>WG493iZriBd=%sYRdv?Wy3&5hN~dJpi3nrXXJ{O%uk)t0?QbHn^DpPh z%p=qVZ-K&UnyQLwUAJ?N*4Eq{` zFZs97KHQ3~|9B5hQ^WY#yaV3tO)DJk#?EuQb=b6h^+>g9Bi)A%+vmS3;Lj~rI`Jn$ zNs=q;+UBUT_<@gHil83-GyFx}wU4UU+n#5y4Ij+O$>I-e`L2JV>x6}lgNFafrsR`^ zoA+;CYkqn~(!W5f#Lmi4S}03D!9{t7)VjGto2{Gqv^VGGWyf@>!{Q2lfIZgOD;$dO zo2Y0kgknE+-k)p6{QL1xFrVS~^W0lv#jhxZg|ycMT;U?%bTaDS(>>zEFsblEE6S&b z&hTW&d&`vdkJXnG&sDc(1ULtO*Pk! zZsKDyUMk7ho-wdQ9Ka-(hyoQ_d+zhf<$H zDJ(+L;R0b8iH=7L=LmGIOs{F|PqqnlJ@f4JfL+IoF{nH%4CGnJ;z~-Z%Q$OSY?@D{L8{p@^sFL^Xfp9Ac#Ea~V(U$5 zqK+;O9h)$gdyTq0UeAF53nursKkWS@DJ!99!LF<2W*aP8!T5|Pk3 z^b(9M0b`aiwrKW@1zSmoG%)GwV)uNpRQO6*z#{wrpw<)KKlFhkNN<;Fo?qxJenY~} zNIC8jZjlie7hcz_N7QPDow@(ygp8r`Z<~$+d(ZlUDVM#_%_n)b8qsqT0iomTu#VN( zPRq9USnPq77bhI|;*LQ!tlN8r2>UrY!b!5QMCrn!T-(zI>3E_u(a@OCL$+Vo+5)hxv`~ zQl_)3!ls}$S_SOGkHu%qC+yL-q}I4-&8<*$Fq-a%N$~iq*ut|4ZiYVg$wr1`_M#9m zT^5BFQD-|-4=(j^q~9}ExvUZ&& zG%8w4%7fWs|h}_v*F=V2_^y;b;+Gm;MBnb>x!$Si8|hpsJrJioFp))+)EBSgUJ;-t6>C!S+CX{k3Bb1MuS$&DPpc<}|Yb9vS2|)*drx|1sco9ix z>Sz}xsT9(#!n%#p17hC!Oq)sryA&T?1X>7nDg6c=pM-(mSrvK(PDQKSK)K&u#coQV z%7n3VoeM0g{LV85H))XlvA}bQ0GCXx<{Yc<`t8D1Q@u}K;O&^kWNd}(yVyra+>>x(eqgO^S{;kzH1Ip`{O%*IU@YpFgCAk6*OuVe>+Ta20Eo8y|liHazxA-ac#1v(i!O- z!5qfT^{b6Wg=EJTx@xb;jrMcu{mi4bm2Pn(XaV*;jLX0OaRo^bk0^(SsH|-b>_2JO z(4v9f(xHCNd})(PuWdcb9-PQnl;u?CMYd*hxX%1n;N}P4IAa&{dve)&E7Nr|%yhbK za?{yVmPa`Kdy>rlZSVs?U%MI|r^DIxJJwzoqQ=Fp=t<-i)sw+|AXEZsvJr)vge1=MtaRILMw))HVO$@6n zJT`_a<~_u3tcJw~-P_eO@Ei3ibzQC4_&sJ6fnT0IV`*Quj4#$Fl+MpAv+Kaq-r)tZ zb}7xo2JTZ6ZB%HM=gsmId*B4)!sePqP|Aq)cf~)oAjnnG4-&-HK~s}kqXp9+t8X0C zmA+US|MW2I?mO*=WC{=h`6u}E zW2>UYg7~@PItML6K2py0oArm<8oI4+*39GBt!zifiHK(WUYdoSrsk02yNC%3tgma# z-fDf-vT#KBxN+i{vYglVn`(pAlcke-0=(3|{CcP@&E<3iZ3U%d?J`OMHBt7_GHq>3 zS}ff&ZK(_>JZKQ}@~#;9xO}4JavyHwh0v#f?^tV1xzK-$ZLE5K3;j59$nCKcbH~^_ zXAcIhQ21Rar4~-N%f0Y`<<6FoS>0vd@_V&I*}T_ptq^Ngx!=EmbD1Sn<~!h+(eRpe zMA=!IJ`-PH6BEeZ+>3780w+(tQ5#I`s$z~lv~q?}Lh`zoI5O*tfijQR9%@@DXx|PN zU@JMl&R6yEIQ%N-*@<}n0|}flKEC4~@|2{OxOH$TKjmzIn{tx#bv1dYkA6C*#Nt1$ z*_Fk(Nbc9%bC~18f^2R4L>(n_=~Bah(x%bNT&Kjh??XlobSY%P+-9wvwQS~pj*rcC z7B1|EK8SVwIo;vn;2Mh09$Q6}eodvBsG)o1$qkq5Hz1_AuR$Z{88ys?yRq8NmWr>u zzi>d`t6R9-6M1fJhQd2P&0`gd1L<+R_K;RgjEeRzu-S>-Y-7xt(2tFW&@8d4Ca zTciz?4)Xn};ti?@XD=aXZW4V~OJZ&KtxcML4z`f}7l@JdWq?>GFX)maMp?_%#&gCM zWn(|uC#Y4f`#&^O^7(2eEzEDoksWp)pWkSIPTT&8o53+J+kJaSHeChvtTI`y!;o2g z5}4GgMfJNBPC$6$>KoJZZj?gIUF54BbUVuIwkSAo}c54bzKGNY2cJxSOhzk~w zqIa3aR=M{}C(>- z)9U5#j}{1t*GWjoi#N>z13i=!G~F&c1B#CTEkQJRx6s`&vj&vWjLuVWU;g8gLIqLD zk4#mXfy)ajfEyKzjjZ39+QD!k2JH7Mu?kk}ibo~`19e5raFD}32L03zw?fKiul1|^ zA#nJUqx1&Y3Ze|syb;gGEzV6Dz$@aj34-f@YrFB)iFM*+MrXT3gl*NgR!ud8>t;?vq{tP@NO$vy>jOFK`$iodJmamn-0|s% z7-oQOXyj#`B;4)B2L!Iu>Q;sq1Y@`?WxfZ&;c;E?hM7Js;Pfudo=#vo16p!@?|`lA zc{dp7jFqPRb#veWeducL0#crB!8rKi^l)h^c92Kby;P;Iz2qdroRhGKFf6z+zW(l2&6WCG97F;I{CwB9tsnF3+R43bg85Y0KG|!k`@Vhw& z>N>Ku$1_Sm#Dp)HjI9Po@y!3}3iB4@WyY&KoHsnl)B5|}^J($lq*OCJ5^jD2?;ubY zDrqKnH0mArH<2iODnBCs$L23LZYH|@eM_!mR8`CSLKt7|u8xh`pzgSha;}X|d%cUL z7ZgLJ2OH3kEFsjX{gODINU0^&4YgNnUm%ZV6Zi2yE*b3TERveJUzNBr3H2P>zw$v* zbOI|kd}3$#;?fPmMM)fWO9Suu?P{#TNbiR<@AkqIN_Z#Y1S1PRlt?mkA<|)`il8Dz z1?VM)X4*J4lwMX8p-W|IRARCCiBnm?nv|^n2iNqV0Fg;AP(3#XO&LZ4XB0QkJ(uG8 z1hrj*K)$P_0{XFPR~72;qW$Rg0~avgF}71-#exFI$96hGEUjNCx7b2lrb1g*@^!!F zjvmXL6fg#Z_||9J-iarq&~OH9)e@bwY_`LKzDV~sV>tC(grrTed#q48jZQ%JLRML+lH-Q~OO8z`IRJBU7d(H-TS@$`pCpr~E z*rF}bZJ02C$bj{d1>21n_}u|nCm{KiS;e~PNtonn95=%t-B_;@!&WW{t5_aL+nGO1 zzLHaK^KCTjZQ0!Ww#c3+P@-Uhc^st0f-o@i8?en%K}bb2Ybw}!jH}{co-y(Xb}shR z?f_8)b)}Mo=oDfUR+O0*T$sdWnrR>_$8Em4An+IabCj;U^(Ek+de^=o{0Mh+nU866 zrXe~MNiox3vSa04r?(uNI$Jdy7TTJBALR)8g0}b`XC4e6LwWt6a`j;lp|~-46Vrdf z9$2Ki#NI#6)~N8?edrn)w?!>Y(Bo<)ri8}c{}JOu!|f|wXAH#CHn()w<-oY%tY2$Z zk#`huvQ6l8xV^I=P4&Wvp?^q1-q5|vx#zf~q2I`CS!e2KI$F|{AKeX_7G9&-(fzn3 z8H=8o1uK*)(PQnX~NGY}_5A0DYtBK_Qhff+Mb-mNdFe^K|c5t0ej zfVd%ygoa%Z^DqF}+LR!7U$;P#VFfC}ylBc+Kf&x#|F>V(YD%FXLq6khye)~ujJ>E< zm(Sb@Ty?!Y@oQXz2}&pL5)f6faoen$`!D^=Kq^EwEk#-wLsK4!wPbrBH)zuC(Fzq7 z=VHXQ1t9&k8h#xzgqiqFxKHAY9ARP|6x)N}uT;4Adn3>vozav9 zQQ(xx5HAkwc?R*pLE$GgKYXFQ@9!iGp?h5Vq)mo&AIE=h!>F5hGv_;=f?K@=O}7mg zc}Jv=naX9a+P6^<2taH13pHU2zOO_1Y638O3p;dU=WHD z40JL|hNT@@{-NXyo%uTK4T7V#Lh@ zzjftgEB6hed$Hc?%%J9+t68<1{$>a5;%wWg%{|u|Bp!2R?({Lv`dTpb1=kwc&j7(hqi7Do}n`lm!l^lOh3DJbza8wnV- zO}u1Nj(K}!t0cu@{yFMS?p<5TLp zSWQ97>zw0S;tn#V2xg(9VP3VEF=z9(it)Lvsyt89ni{N#Q09hSEXdjS0_XfM-2ILW z(hW#O9D$idG@!K0mOLyf#x|u}_PE`#VVT5D#L3&**0IkZkui1ik>)rBZ;Nr1Wi{KB zu@Ya<+e%K>g^7^?$KKMz?KdbISAUvbz>U-D!lW37v_KJXJ=cEXQDdnZ_I+@bUE}7V z%^2DueOxzp%Z5G_S>EF=$9Ps2=3Cot;JK8|zs@-afI;=gUG~oHH{P;O6SUQ9^eRi0 zEo1=$j-V2_+u@)r*mLmr%>LuQGRoYYYHTxrMj?}ouKW$4_6vcIy713@)1!bJ8uUn+ z1=La@(j5ND%*B)CJ2SP0aDh`wHGq~e-B$tc_U}Kz}(`Grn+mbCLd5n`>*48 zP}-C2d{kV@l`_9pLQjAxk~^}er@@aawj=;?$rXBd-R1cs4Q2cuG~L)Fn)QJAxY-5w zgB6$0*7zj{1XQjMx~%Wv_7!HgK~thnVt^y$$huIL+xQJEGf_r)=CSw%b(Denly!;K z>3_auL$LaL^5{Zo!$<-04Y;MjJ5l@|;rd%LUX?a~+P+Js18`*EnGR|hA-bP?Gd%K5 z%p+lJSp&LFKU54&sc}F{VgnR6(cGL-2sh_6qEnA?^2&*E-CYGPF6-q>Uo{5?LDKsXf$#Tr3Glp5VARfVEBnw)b~^}1bplIOW-fG zEu@Vv`k-pg&8J*{wT-PgY={|Ty${{xve9ch7W=9CVUlXX6#TWcTu4R&+gV~W_u5e5 zZd@hwg#znY!zd9%jR zr0@2~37Ke5^b{UyeAv`iRh8ALit{wI6%qZXj`e^gpH4easV{d$i4YHI`& znbaPzLIc^ViASIoKgch50$tMqXm5pBgo`x zts3vzaC5#5pb z1UTP3+_l}{TvTK2hw;VFsOFP@wB?%*B%YhswmXRDSArnHq1^JXOyUTFfANYs@C59G z?Y!j98$!7=oMk|Vg?T~YmjIjH;ToCmdnq$ealvQzg|yM3%>IJ~-TwC?Z-!GIUX(<* z)#lgO%4Vg=-)j0;~pPDZPZtb*CV0o z^{VK^naY%&|^`3R4A%)Le5uM+TUdjG(Vj&HD=wDJM2zN$qM>+8vAJ z#(;9S1}+Oyxz|oRn2CjLqhv1 zN(V}G@*RQ&yz_eZYThe9?Ms)(nrJay}R89HQICqv1EWzD%jE#vSm2w+LvCea*Ay|-PloqWwkP7y6Xh|v?tH!bc zDzH+mw>$sBcju|LCa3skE{dk3&PTlg4Tjdj6NITy6PNzI*^)D3**l<-&I298ZOtM$ z{19+1D)%v*)6S!dm{f>7M=`Q_ar8s+6^G=FdyJB5@M%ac(FW|R+jiZ99zq-%asNkkb%B$i=_Kxi*?-YMl&vSL3T`)t2 zc!zPn!SCKM*HzE8s5QdOp>09GERl}x7KxJp9c7dX!n-zZ9*lC#YdO z7}@d0CZ6|V7^*HU4b53HCDXPdSQrV~vvsoadD+|o>K?s5S!DW^cP7e_!~Z($EV}#s zU$~cl@I*lm=b~_M2y1k9+cw#HH6B%F$=$L-SV6Ppz;GY05`O;?Iza-OT^L;KB2w%dnfrk+1*!nxnX4)+ z3Bj~^gJq5Bj?g(9IKDK&(VaGKjcG$5Dmo%MvL{97Dy_gkD(~ML#z_1%+P6-KD_#yd z2iB97J-6cXArIu5Dk(kT=&iJXX(!0%LX!6_4rc#b+(k*s_+An+Q}`d(WiT{mn8&yYS zgJ8uBoi;Y78fy5r>%3WW%$H5BOb@Be3|z6D4EVk3ugYFYB+2!T)=g$8I^%VnPmOQ!fMtf+uL}@Oq*B zRw~<(LO$y1e23&VTm}^Mw3fWC_%?hm3Q_Hw2Se8SIyw|qmU@RNw6&}~|J~$n8#}!P zbUt$Fm?k;n!hbvB@PB+-)gV7LSP|&%Y9ifEXls^_n!K`6PJzmxj_tqhlto=&Xk~zc zl+|%(09Jp#;su7(qu+8JepoMaXszQuetWsa)CpXPl_=jml=}DAHOl&}{Gp@g= z%61Xl5!2BLBtMwh~qbyzW#0g2{{I#JB+r+_#_rPcnEMHt)a& zLPwcHAjEcyfbUEKeu!PpQ9pm6@tD1Z-KC|sT&$IxFVVuEkAgeF7h_R3^W!%eeq*r8 z12@b59qrq?j;N@oX`c?%D73(fR~MdBpz>@9S_qh&&&Xg8$hdWJ=iU3Bc+AX*NBl_I zh;ylNLVWaFqcm==?VQ7UAHKye1 z(E5I%>=Tc;&Mqx)P;QlF7~H z2ZG-E8pueA;|ls=X~ZLX&WnVTh9~Lm5jPLn++Y2G?rw9?FC}QP#aSG|!M{6uCeVT9 zJcHtcg2AMO=&+5U<9LQ;8rDj;Ev6_KIPVnc2=4Hn>?F?dT;&^5bH=t&nm26DFycD0{FD)flmZ@r0I5}a|X=I@An&O+imFH|1cnF9EmG+KCPO0i)4A=;80H? zAp;a39jG~|SuxXj24&6&EfjvZXx?93`|b0(M(wpY@G3}zfi3!hEoOz234Glc5EoHp zi+@0WWl_Skcwdge-Fy~KFtReifXV$w#Jp&A zEv7Y7&!UghVG=Og$@-)3TQNl|yEeR8OW6GF8rBNU$p(~7DnMn>W9b}$S-II#itqN@=R10=*uu73$NjQZvAVs9h}>@>!2L z*MdDVVlR73FwQQL!1PIFI)N5f9jHOBG=T-ML{S1;qGpk=ca+bmH^u0JF@#aoS0W4G zUO78qJ`wMaYoL5WmBli1OrNXs{hR5D?jACrvHolC_(=M{Sfk=9fGJ zUFT_Ko27ZMX57}RjsOqlDmr|a86E91GYi4O>9(U^xy`};`WYW(nWMWc(3CfDdCp-Q z2FwvKdB@fOl<1a=scAc)uq@+hfox|sb@)n;?6IvhEL_OXR0~L6a*OCO75hS~L+QO* zh>Yo4kh2AOS*i><-w?OXYzCPv)3Fr$U;q^D(3*?scR%h!#Iunsz4Zm1X_w5|LBo5=xF`9;2X=4K?b8uXPw6rN0#>6h0H>m zHH+`nMP}dbbaTA{kVBdJ;d@zCA>qy6x~l+5mi-ywkd!doL}0yOwGdMIC8UFhoP*E) z$Hn0f1J9-zV}>p6HM9gviqnt#R*KurxW_>Dw?Vkw(lk&QYnyd?`*Sd&wLsOm1DavI;EPd$7kY)wN-am?J99nS$UHrW>iT`n$}c{nz!_ zff?L-2v`;(5GXY%a@DMg5bv5EkE~t{{S}{4UjHHKWtQmYX7Zr%u0e$3(L3|=|IA25 zMBMD?n;Pz|9aY|S)X^CZG0w6vZfg6uVfW*~&6gEb-m!a~_ETYF(XN3x!wNS$7Uo08 z^dbNavP~%G3)E}yDwOV3N~<;FhG1_uz7(0&U|o$HZs+CZdYN_D;^Iyp`WV3=s79x~ z<_OQ-+>0d_vtF#TA5)3V*|XzJZg7HqICIJ$4`OJ#$Cu-K23eOlpBG#*UW$(z`@Q4; zHu5SM0klNcX<5vACrnx0m0UbVIGV-(pj$q6q1dFbGoRIJMB4ootr4(136iX<=oOXu z5$1kXGM;TlfE7rDCSPMBA@$t;(g15YcONcoo|Mu(-dVU_6a55y+Xv@k7^$XmTG z%!0)>TOG>l4u)iT`KnZOW=fJL6HR(Y{W-rbr9bx7Rin6gf64Zukd4sl6IbZ3O8uxC zpUg6_ej9aD0tcQn-wSG1RYlT&9nfbFu$>fuM;BVCkbC1Qw1NaT#pW0E~$Pq-}RZ` z5S^U-!QIK-?D)+ZlaBfJh$9MJFYezw!2Pnw1CM+B_@vX*_g*quEjgKeML`si_J>^D zN;x3Z*p1iYv~HzKPH#qP zXqNUwJ5)r})=J&#;i(+;*tR@+UId><8jTITG2ykj?_R@@^;;X9cbWFBnMX`TAz~+f z=IpnCh$aET7R%!tJ_ZQTksxS(1D$>}uA5BQ`hXOL2>C*#H<6)40YJ@da%(Xj5g`l7 zWSiX!qYt?N-qhH@@tNLH`Zm=T^z|Jn^DevB$Jt`k+ql+gW6OGu9cQkT?hgmq83rgr zP(XNe_6il*gP9{!4j0^upr*qm*aBe9S)dw{to|UXlA)0rud#zX>f5Q=fKQXZMieqV z5xL}cQmrUw@n>zoN+IM4l+s#CzXr1C6Kyz?ARXI!(Kdz(>D5XEak)-OU&RY_QINx- z=(}gqvCu&kvbDT17Iz}jO-ok<`p=gNBE9l8^3B4$Z;mV4$H|AIO5d5{>`c-Ey;*Y{ z5ePtI-H43g2tIhlJ_NYc0X^*E%b+u zue%~c7bsBDEep>@Rfw$?Tljy){icMYh%7cC2rGGc_~1 zNOrBmTSs?@F26&}*1OxJc}6XGd4nnjz7_eF%ggyu!nsx(1L~U_wA{}T+}Rr#>cM>Q z$ecIjX}lx3UtRC|s_OykCfn%}`UwAM+y&6*1^ql{kfgcP1C}_!%xzx+ZYkzHpzm7k z*Kl;c`siOgo~UsY){@#U`+DYgourW){;6-YcbZ*u)vT+FXtN86qeZosX3J(QE! zhT$p_C@uSSR^sT7xM@i9BafhNP#i6Ba-}}l+BnNX`ukJZ7MZOuB>~FH(cyujZ0*u+ zu7f-G^|sPFvWy-^v0nXNhbKcC?6Co?khne}iFDN>mOE#d|8grqi&5Uq%`Fmd-5-1? z()d6U3j@Z*B8DZv0FS5ku>4)lCp1sjw!(D?P>QnsICLZ^EAj&0#LKp-82_0t#Ark79JL%#f$-pX^=03R4{xAaor3~}Iv)x0vi5t=!D=zuj$XUV&(;@RsJ zxq=j~*m1Lu>+|UDFaB~&9`HaMx;84U!O}t$*%+u;c5BUE$~XSL4-6`c8-MKf$Ez)8 z1G-97LJCJ7-R-hWuX?O!VFT-nc3L}$?-S}58Wtr+Oh29O!} zwbcdd&A9WZ>n$z$SKco;vm-Er>KVPu#q%RSz)ZSPr6=3_s(lM*zWm;Iy#``CPugwD ze52Vx1NE!X29NdJ)a+)&FZ@V3jf;^JYSGX$&k`znd_(KR`y2AxWpA^bk9GdVHnKr} z@R9$xJkfIn%vvxDM)gYD7qCzT861+BcSC^1f{iXiG|AY88erMW;bG*zSlJGG4G_Ec z@aa^MldA`;HIUnP6jGW$9+epPb|EM)97sk3$Wwe?wgdlr38f&LC=XS#ZLcZ3RF*xhV>1QXkMH zh~0BD|EK)eOI_a26way5nHt7@HNCK(f~Guz(~+Vy1pQmbK$@vAXUtt-CJ-Ceg1F6q zCoKb>tgDgefd!t9_x2z|1z72JNg*uS{CVz7yE_#(8_2_KXhjWx2GE!0Y0!@c47ND@ z?^!ZzD_jeGr9b9Ry9onCN(82EZS3u)2DB^D^LiakmB)87FJ4*s3hMaX0ah1j+&5Ap zCwr>r+)23}glAeH*1~I^unDD1YXK*xDP)7b{S%QgNDX5#mc{X|@4@f*S?!u36RPGI z5;C?^E|y6~n;c;VBh5EgNptQq>pNE75q*byxx`ve+MGY2%gPOuH-C+7Gj<0RSFvo8Zvi}T_n`y#h- zTy|Q%9p3LR$S^>Blk~iMh{qxsPHo1YvGb_voCp zhcKCS+rrIx#S4n|S^{L)>Nl+!rx$5h7iCjWB0%L7V$VUzuzf4p$N*Q4;KV~~Tdo)?p}wi>Y; zM++FI6FQ0ALff2QRmBqjCn9p-HO$6Azt%ht_+uzlctS)k~`Xc z<*(gI{^qp&-oII&>MEZbeT0jPx2kU9*Pq`sV5b99eS`3)k~Md=elNmqE4J2%c22i{ z)(eh(v~W)~N>)TNG zvNcbr1g@F1Z{#{^iK$$G-42_uwWoCsUCoJ4p-m5phoQ;3SWs-7!fcxu@ z*90sc>nuq+FZFV6xm#7)+ebzt*{wI3i&y=t{7V8l0ufukuZ4U+3)N_?_w;PV;r^)2 z&j$RQpy4WF{=JufTKT!SFYv@*agbHcCud=`6sK)5mQT&~RU$YPMp%{qlOJ_KC`0RR zA3^*Tmw<9ISKgB+u4=wjPkuOE8Rgr1A%M;kc74vH7I5F`5TCDdhR4LF2DLSrQY_SW z%0SbK&sX@(F+(2tBW8#4JDF+W+hfRWc6**LmW1pixCS8n*enCIk@%bRi^`7|mxA8Q zz&?F4>)~D{<1Y%!C&)WWZnrn~83!9{;5~0zXQnBMJmnwc33~of$?(n%316O|9>GUh zdi;;=F2DVLuy^xYbZ$sV$jiLz-46o%CajUtnN=s=7<%!feC+>WbSa?s?9=zkcZKh{ zxVS!#aQWktJAv4$V0ID$YHECcSsTqcV8`k+ncK?wKNbX(vV6-e|D`GiUoljdc#z>8 z#I5{xuxs%6t%}?WPlwbVFJ*{3XC1Tr@*h{sEAAf}@e;Xb+ov4}N3R&u)dmlI4ipl; zn=coC;cl$~S62pO^67*vkHL9k?N_;H4k-j%MDc*d9gZD8V)juf@%)qMbpmKw7;e z-sGFLoTiNk9Kh#cpVnGlL+LZ-uIAH^Tb1+OPq}|UIX5`Cw^13)qyJ9XsS!!W;XW6f zd*$q9n3Jv(`(q)zTK#B)ruawAZdpvx9Hl#%6tCTeusf zn6N%R@Y=5tNZ7)zj922G^eKbr_Y=Eg#giX}jtKiN|KrSc^%LhFPjOW+d6M&uDdk(y zs_`c+xif6w~#?(M5Y=lQ8i%ECFhe4in)Xo^oO z2YTK=x4AXi2uTQw*jDpdtv*#6SlFJX`HDNX(rW7RdCg&2e4iD`JliKkn)F#nIH#l9 zcPuhFtiyb3^LUYEY!B>-mR5A$$v;lF%}xfSM}HpA^>~_Cl=`{VC9oV><6@5X>U&ib zbw%0Bz`^qL&rjBWawe0o&$~b6p0ia`i2n2+*X@q+x;M|}og{T$D9y_Kxv75h53)V~ zyjAz%oquwjg@kkGu`_mm0f;?xt^;3e_;wS3L~1?9tq~sR0Xu)hCs>DkP6QbmczLJ) zn?=?_7B+FqmY(}~boY_}ZOXa2bRrH{+#4Ps?uKhmoVGsv-TAXe|7R;h*g4FF;}3g} zQJZ#(LttN~XSYhOYkHi4x)w^`xC)~9L) zFiyiYLuD3T2J~{{M+1+o`Bi+TZD+l2-=#ehm^`G>eXKC6emApz7eBab$7v0f>m+Oz zgh4FuG!Ohl5bAQ__xvv+hY*pPydPvfmz{4FR+JjH_(v_{W6R-B=Vk5-g7jLSu8-UL z!C#I3DYCHQ^O^l2zm&+;uj9No(&$}gc5Ha}rBdMy!KfQ)cN%Vf?hU*ycEd*8?uRr9 z)Lf)Qs20{=(-x5Ub>Q;r?t$z2+Zo=I9^py^+-70t96H@T7mJ$& zpVoA|(}FJyG1ApIIDk9eC2b@ok!T}5_3WcW!ijJ8=5E(aqHqCv8=4vu*K8{}h6fAo zDHcXobRbjfv-d{ksqweV@%JNAu7{_Hy^tsyBt(1?xl-{T zmydbXT;^o+lRE z1$AM$b4NbEd&S5-Z28&TRm6g9kIVY?wb}L4o#VMWa)&Yt4GzBm72WP6_Qy6o9u zrm^>mQB-Y;mZGgaW5c@u0OH+$peF>NpW?IKgHEOJs8$FRNV4hkDP>bW)mX_t3i4(3xPp9-SB>%K zI>}ROH%i~frC3h6F4A}!Tvg)uvZ|Cne^)co*Rn;UCcEs;PZf_}P!q{fCAu-_<=FZx z*;XO8Q3k=<=Sgp7Yg}ub+pS3}|K$Iz?2gwx1DZ66A!W@47s83gho$8g?Z9K!zMLN!<-Aj_I`*uzcgvk^Ecx5sl7~AZUjcF;RY|6>Ud0IY!W3|$M`Q6L z)JhHn15a>Z4SNj@tN?iB6&OuOZ@Kkf%FXG0`IF`Q6Hg}(A0t+H@aD0wvY_~WL?BNB zBv9pZ<({=k6`s4K!fFTVf$-7DD|^Y#V2gWk`<5+MSN?0^r&Nr2?*JlEP;tatn@cQt zBfZYD+BJ3w3(Ab8k7S(C`SNTd`79zdV9#k5<#5OkU7QQIqX_4804=(^-0`Pl#XvX4 zp^*Z@!+De^K9XXY+MTwzr2EWHP8L& zLw9O1ZSe!QJ%cvz%!bA@FrdGNdr}B=nXq?&`;qL$cYih@&op&LxvjZy|5K;JYAP+! zWaZcxN8dL=y|8TSus}5GMLB;9EO+?y=8vbsox3hpGpBN<_H)gUy~J_DbBvLIF?fBC z4||BEOuMqAd)~@^gX*2*V<}7Xdf>Mht>`^<6TXi@#+zi^moH^9(`tE{^J_2|bjj#- zqzZOX zM(QA!qzqL@L4AmXMVhX!$KcnGs@XqFY&Ksd6$`&plMWuz^NqfFRMouf3g3d4z$YQ$ z{@tiAb2C*ZCcD!AY-~J>_Bu%afdKo$>UW@s3kX=hf?LqBFz5)(`H+Roj&IIF^s537 z3S%LXp5yI5<27xGcD1^I{2j7v^c2^fpq*T88>H0VPoeD&!um73nI_*VMyGkwqD(Jn z$iVN7snG_J-{P+d%M-_dyXBLMFWU0Nf(hgJhxK@oL2!aL4IVg%$u`N@Bvvij@uO|< zru+Ss4!Wf_%MNHeotHGY`CnIQKYNSJbn=N_ItvXB~vQ9j$!GI(&%AUrs zGO2MqTA&-D59_^&T&?y628kTl9i8gXH2e+_7}W@@C8rLh##7{pp=D&{R$_uTz<%%L z*H4JJ9^|{m6~Ev=2Br=AvRmgGup$uO?`1js-Hp-L(@P-(!r_r^Og#A@Vdlp)y35B~ zODz)>Q?U3kW>NHb!cfIJwuEHTlHA$T>vXXw?emDGq&~~B=GT-7W6y-#eVKq|Y{$wk z`LS@>mbsR`EstMk*zYIUO^P1+{b6mhoFVCHV;nE~`3ziP8UMlD~#6aNYq2iT_={rmLsjHihZ=h;q`1nrdUMq@3DBwWN3dwbNvod#P? z8M|ASFT_<0>sW^Qm@0pL%`kd{W1#0;lJ38nF*e{;^<)3REmUG#9Y|febJc&O_cW}2 z#?vEb5nkC%d1YjW2z98*nDakwt|{{+Jf|=Kqlq>JAP+`AoTp3?j7W+>FhY9cMe)8i z-%f5*!L z&jOITRgkVdc$Y|FpeHd7^GBA)?O`05zOvK(0P2Nic3;D1p3sj)rT?HjuJ#Z`B6w5| zMUAlnp2kVFUpaZXMK_ev|2U>>taTz%R(UvbJWMw7SQWt2|jb(qs4aHPnM z5{AEv;TmU~i@IH%h){_d!#&-iy&~ko(SjXxD*{l@^cn(_v7wL_=5e^ttW86f2L44m z$~deZ@j;B3hye?xCc+pzwE*iWqu{^5xN5SFi$8{M^|v-X8T2)7KyqW`iTE2LCb!M4ZP)?_yTe)ny%ebhvi^9{Xp^xruOz)&_qC)kFZNJr||Va zGFQw1m=m^|A<_sZbEfuzsjC5|%^PxMcDNafwGjFcrhj7>ql`*Hbt8H=O&02PuTTOK+n-#m*s`nLK^i|w&g6Zg`H?G zBk#w5q#CE!NX8g3mPGz?(_8uTw|b~SLX}o2_g7iJ;@i{)ml2_wE2KLvp2#BP+E59^ z%Du@zPOiwayB$2ZROR;iQ&t&MqY~>X>yPB9Rw^A$i-MrPz5rGefFsuA9u7MYB~p7} zM9I_?3dof|F=9en2CyWoilC$&M9^bv%#V~=eTU#hZu&jO7#)vvomB@RcO)CXEQww)OI2VCbGd0(YEFm!h z^W}ejcWu-E=SxtHB)xDVv+9Q#gz_;2_DcJ@fE)@ABcV%opzkwn+D zoNibwtlVa2a_CIH|5w00F6PWgW^QW18;%BoCp{9YmPc7}1ZrLhj|uUZ^o|xb>My=S zu1`O-TL&7;sX#(cP`^;k<#|xF%d~#`;oR)Op6;CKZ{*@MkX*cGx(GxlvAU4LiK(kw znYd$X#2;{$e2S1Iw)rg@3oCE|Hk#zsLgAo{yZoaz3DwG3b6QVH zx7^#mO;?w7brhgRfw#b0rv5F=JZiISdNI|uF5KR#YRdB7VDg!86uzBequ2_ zQemCCS*DLr0*b;BxreM8DbiK@_j2*fvTsFOU#{Ds={Vb&l zQMONg>lX$6=Nfon1Y`}&Nh})R=9ess^ScNgpoq;i9kN=QxYXfR3aj1ELb6h#Uf=HZ zaB7;w*1n#GzEQyir`hQBt#Gb9^UajX6wDa45>Mva&}8N^v-@eHCIJc-r=BhqC|h~} zqgq;QwX10Qe`H=kHXTbg*ic*Js!NGkE2VDpSyFPH7xwdW=RZC`Gm+4^bo+k z5ujG8eVXr``Q-!MH;529DqL4B$~8j9IXDR zAL`}(exAYOj4H2Ws*t^`Bg>lL+hw;*AQ2Fsrrk%!imWve$1Nn)Ev%2GtFuiI z=f;pTL$pui+hfqPO)omVdw1zfML}NDRtvio<#r>!%BHUtyT|!ykFOpI&`o{IO84FJ zc-@8@EAXv{%Br&K`d_xbnPwosu5)8pP4tMDBMy{t&rxHm5qoMRGq#t=Ady}xHx?XO z@j{bVUo1IFjBuM)GwVf0K!$oLwxm#ZE)W_x2OmG>3^Z>>hsrHlpsObBcd8a_y!{{k z*@&gflVJbZkg7Nq^QrE|JNX9r-#y$Q569LAX@QcXKVBpisr>X9q9e1;(+j*P(6<9{ zX?Nrd=ZxaiYwZYQQrS`L9o#_S*uz%3HdqUY&UsYzIBK0Ul8-4trB-h!8IN><3N;hAafxHkvKpMw;({kUSw8xQ~gC> zfr6n(dWbfA7k(Td0FE4ly0RdNfS$m|<6k3$Z9q7eW)z7`Cg<5F}OojGTc^5RhLYB3w zOsY)a{sCQXs^42?8$#Y@F9vkAEO!BRK@<;#iBwLRDa08$EF1%#G<-iHa5~I%9lh{j zy$`tH0MaSktn)b3f8MZ;ik-X)8W7$0D0=(xc*wY$OCzGJm2?K$#jmnT{#f7`v17b3yk}g}f$~Zvk4OVt8&2LS^t`s|b`cbm z9JHlMuV(u@r_Zum!-8vjZMU_8YQ;rV8Ch_UbagmNip(xTkYi3scZUIWe=QK~&2d3| zq`FXh)VVMIn8GxH3tTHBUri*KUUWzB0tXuHZVvJ#AOxzPEfT&7od1Q0@cTI6B2AGX z4r9>CS{Cd1SBCh96T-xBnSJK`&LtOBHGiKpj;-4H92v3E?PNdSy}f8yZyh0=_akDy zg-_1E*}+k7c=;H#{Kds{Jk=yVfL7yR=j~TWV%nOrv{F@DqRRbpKC>lLulrG73Ze@o z{CBesfs*Ce#834SzuI;`Qd9Ew?nSMZ&1$GZ+;ifz9>C-{ z0mp}UzCX}%aKb3C5e52kJ>#Ko#qeA!$zP2tRmxzH3S#z=!#-3)?UdE$h{2J4AZ3Mv z#2+!$E&o5|lY43uxLGyc&qje`4@sqcgXp^^oQJ7szS#sQSmytpNw`yZkTcL4c&*=< zDW~fk&p*j=vbja0b#J*5c>aKi!DgFR(rPWmwV$`-9zHXT;cbD=25#m8bR(Rw9m?##% z|9Sn8KPVdGsigz(XNX7)I)Q9lyFBd4S{!KI(ostp%T0k-EJ-%kG&dNBhHE8w(y)ua z|MtRR{qRX!${@Ehp zpfJ29iH2#+X-kk50n@0T>3eN~8Ex+28X}JcJ|`AP`E^@SoQloaN0!)k7h&>hOzygm z%E-Oe?+oqWHAkCIZ_4=d95(|N`H&gdn?qC}A>^Xe56QAX+1`uINWiHU_nuO^M?lu4chu zy{a(xiFh!8KELxdER;AxQVP3!QP(L{LVPe3!Skn^Axtl`|96n7bq8K0Bb(p8OSxML zAhg*D+7Tl*#k&za!dE(S-;Qtrl|!+VAc}m}GZf$Tv?xK>snJJL43QZdzF$E1sNuNv z@*S$mRvC9o8=w{iu?7TZLk1yDHop=;xY z$0j(*3jSKSU!#rvkE0di^P6&HqX5}UB5r;w^;vJ(vI;NNCuNPX6wtAia<5_EI)*0v zd7s`wF6aCFDKg4CDRbf(Ptt~O)(FpxOmNAfQI~Q<`vKu^?#HIt|3Gpp`AwweIo|^j z;td{bR7C`^9k;Lzp;5{x8FAND1CeQ9k;p{io?JYqFb0$C-O$akh&~&UWS$U*exyj4 zc52Ttan|9|;sj6f>!~$kOJbY|Yf$rArm==~TZ4vdAJ*xOD)(FNr{`_dB|mTdeAnqS zBqTs<@GKx&M@tcWb4gK=UTrJMVs?(_`N9KnWgH#nB>|91%Ur*2$7^gnR_e_k9~d4ObcHDqix`!k-+ z3@?%hb1meC^?hr_Z_dSHmCv=owm}8KvKV{=U=Y7D&J(MjQ2gO$G44mWyQZzuj;HUI zF6j#38z8D55}x6Q-`|g_x zAgABoW5i?1^F?OkazudsNifL*)(a@Efi*~<;6jwesBW%szTm2T%qNgqC=aNBx5e#}@u{r9;ba zKkNSr+mij7ROe_yvA)%GU`Cr-L}lzgZ|WIxTuhsf&3pTq|JIh%&@f$F?wvZ}(5q%N88=O(>s%Cu-+p3PT)O~8$8%Vc(EP%R08 zM&Hd3AqWU!YT!^XT9t!~GuU%8d+EtYOw&3|7J5YVgqJ4zwu5mqG6m#`QkQ3mKftQp zzsfqOSiJ4a!jj%>s!s1?D$lTyYbGOjtEqNLcO8RI|pfUbNz1@8)!j?%=K&bH(|`$m~uP=k!?VO;a>Y z%dPuExnhw2UX1eJs{eouU)1peu`HU*Xt`wcr18lgTx*Oo`g~MBj0k43i<0HK>L_n? zi@KIB_*zc;=1+v3zadu6deY9u=5L3C#m$|Pi;aTHIcuAevvXv+H>VRKS)Rqyi~StV zr|J9a(K>Zy#k$*F(7GVW#@)2s_+5IN!Ta9zC~?*_yJL^8?b412X4A>4y|OBx<8rrY|8U`)Crn`t&PP_md&WkHk~Q#jaEz%C zQGB3XDzQ^&4bFx(E`b1D52^T5-aE!T_LI#FLQ+kCPVx;=D@Rjn*Ub&SS!kvyAy0$9 z0o&S7K-LNL_F(bCY&gK>?LuL+A!$>V?6q-{Ng)vl_>@0H)qaiT0Y`D$35B>$3*h8A zXn+ZSVA1+Pb2(g#c@0b7_b>U_Ko0RvndD7d4IUXJcQFiPuRdzt;hA~_PI)VfrCX-L(j8_eRI`OcoSGmEvJo1W;fmh)gTwlU6v zugrFIBPC1PWjrs$C@3_}+ccG;Oc{?5yZ8WmnYy64dPu&KM=-?~zC0J>jW<5CHQ?3BU7nK}X{ zRVN{(sAd#ur*!`!630g7@;L+&!S&F|A~*vsBCBVWO_(+DGte~R(AEN0p5f4&%2W|z zWEK1w;Y}gyM6`Td$+g1xcwOWBU_nd0SF;hQw=}syDSP;UIg|EB%N{0gF8AL559GVa zWErXGn|3vY`b|cVkYA6kz~c?Oh#r1N2X$X2q`Y9T;YUWF&w z3{In$0Ky{Cd(}ut8peMfU~Td(7_vH+wp?EO(zN^Ax#@ z+UCMo>%iVcG+&TD2Ds22baIsjb;AT~ED@1pRVe1~Da~AMm?kDcUck)AsU6~5G$0FG zU$R{S6lvSWMH0ASts7bujMBCs9hxe-o!`-HxZ~a-R`!*9b3;As9vbUoKWL;rJ+%>a zc`18q*ggm(m~JT7rEKl?6D@5cM?x3vn`&k(RP9M3JlkjY{KG>T1hz$5xl z7DSj}Z^4(z>QfY%-Ty#L`(&64WYySZASZ%z`qY7F+AR{4*>h!FzRRfulDVLr1u*_* zM9rpZpB>n!)i@n}&o6f1yQoFF3cyjrgyM^@0Js$Upf9_d_K!9=%o-0LOq`&z+HKgI zE#Pj$$H7(LDyg2ewr;4$sOo@chLifR>z^Huqqgo;OYDoNt^k_cD@!J}dev8AR}8{p zLDZSQHyh~GX}z=kd>D&TbWzV9nkTIb^n?1NRav4neHUwWu`(6P|4JZxp7~8j%O4JA z8yokgOY;wqW`W;z9TC@p$+Jm-MFqil))y7CrAYndb+m!HgyU=VkR;V#zb`&kn1zj2 z4{61UecZHCli(72;lXO1 z<#?~mR!051XB%mB1aZ+UyB^_p(I6UfiKb7N9lQf+EvW zlpB;@3KKBqW*ul@E=DocVcfvCAV(Q5Wa_jF#f-5r2PF>KYn0_?JqcY;{kX49#J^>Jt_klJgEelZxaM2es z14q(N;6}v0*}9$P+9_fXsJ=Q7pL(xqB6)&Vet|C&I}HA4-2~V`E~~KqyUuHKRgF0(gAU!_`2PokySxU4qhyO%!M%0~!%VlUIg zvY|H`AJT9X@iJ0hG>U?w|Ne#FHr?3TShcnt>%0$#l%SnYE%-eQ7yX_YnN|M3>eqju zuRu}+z}{M4hmo%|Voa(?GC*xuXBD<6MUb6ynU(a665%|+OvA}yA_=vnU3itxs}mf% zA@qrU2Eg_wbbl=zVnc+j9Wp}xv9vFpg`^}a#Md_4xvxLF5SvD>ZXV8u68tshQoxR; z#A^=wJ2-*$UllJyAusXzz}$>=`?~m-bN8tM?S?4?2gek~cfPE4MR1HrsJ7FkuEVJp z(LF=z9@lJdP*jRLqfwSn`}>Wy?BaGMaeN=B=1Co&xBw8v&U0H^33laaO*3 z7xJK8%e1eT%YJXuOW5tBnln8na-jP~kVOakzv_A6s^(CSCW{ZIBZQ9bd`iMaInrGu z8QCHQAlK1No>;cEE&TSNXTrZP*6|6=6;SB@Td|hLhL))&2R2uJ!X~q*EVZCwl7xxhnL=%;0%%?yu}snM*-u2?cxLFGOX7if{v`!IITPp zKZm^P(PU%#p8s;zSId?xOx4{02mT;|HE?XFLog;;L_XBvgdk6 zK$*{mAWT#T8U~9*==z1G*_4*snrFO4fk-$0XAA#n4#61#j*;tRTUChb=E1=d{Ox4B zKl`tTlE6H~+Sw_$>%Z>^(Obj~o3)VjfH~y?B#`Vrg8b4F=(>!U<7<{|@G9{n@{6RiRrT)&q z>N|l4igrJZ6q)Ejndx(gXL=09?~5m^6GneTrC~*}qU+I&%kvp@Y!rU)n&^@1?Iki+htRy{Y*gUvj?5jT(cVRDP$T7X?!~9DZ~%BdRG;u7>Nb? zRrGWbBVeHj5ZRTeia`^_(EI+lya5metf#3wMBit>-)i}O zEzKt>xoTuWw7J`mskT#b`D?6Hr~WbmR?ySX>pC|mc5AtO&e-oc1^!pzx~D*xOA9g8 zyV@Phx!r<4OQc+PuyzRIAoG+C7KbATyG4H=3=R}1%#N2J-&M=4#p(FAPvA?(y(0KP=kS7sBet2I#0M>r1?f=jH-e(j)DfwnhKat0uZm( zq!`Yhm3i~6Dhl4(K@=$J8Q-DhuEvHgTQ5p}KR|S>TyVWx%=&j@u`D#i^BC-+Ee7j# zJOzw3Ku!CRDd4a$R1hLlPx+Tq=!tWtcvwFYB}&%qO0}7s*2lv?+_?}p$;9AsNwa5E z!+qMScyRwWFRhm>`VZUcyNzzt%90bh0XtaqOJGm9*9@fjq+&w>D%xT{jO8RXu^stN zOKSa)sed&;Z~)QGF?}eGUx~UNb@wC}8}#5a6P965iO7)f<)PqWZv2>R)T~;Rv(t!}mjMkGU?KYiLX5St z#1&o5-SH1SoGd0l|8`;Jj%CcJyStPTFA#g7Xd{Z$WMMOS7#M4Aho}dH$cy4T3M`gH znWw}veEgco;NBsFTkc2Hczm2^glJISQ~cf8c(*D$>v>yu6_o!_DWT48!o}^*z|-nf z8WY39a=@c1f{5=`m}g!S8Dirjdtbz8vr(4YO$T7KednmQ*3*`3qlYyC zO%|q(9mY+k2$!NW4-{g3c6nlddI*gR2<$;7*bCxJqa!4NZ;Fd@iF^-d+8=7EjE*nh zz!wg}XoAZ6yFpXfCX%r*t7gwXsrP^&V)?Z$uB3@yH#Q}UhW~oL6ZCSPlhdoZ@Qf*j z=jULNrqooj5XsCP$aXC2Q9?HYH|n?D>cpJ&z`hO<8iTTnOpNXpe4W*FkRK?JsePMj zy5K(RrwBIvvFK+j8u^L}3bp+Gy3nxmcjlw6!pGWtL9be(wp*9#Yk&W|nmI=MZMmp%6>fvI6wCf#pVW_aq6jtKiST}!Kyl>NwrhpbUD#QYww*=kqD@5J7Zk(= zzUhHZCRMq8yNG-MEG~B`<04I}@mfOV00RJ+waJBz4p2dozlzCOvyqiW%JVwicd)jscawWTfeeib`Nb%mw))d1pGM5L| z>1h&bJzv%7hGt7wQ!G&>pVnz`3`6wKzr0TW5@}-TdRQ_;a9gf|I-!=^Eo~(d^Fh}s>1c9TOC{+@6Zwd^>@;sZCA|``VYsq)Qaj0<9p3ER& zqt-A5k$0!%T2_L$l=+LF2zmCub%|Uw)~fr#2NuSzxqi##OQ)*$H@ojMStku#!#Ej* zbj0D}{%@&%Md9B`3kpX#^@t^GY(z8gu9wyQYHp8tqLdic7Tee6)YHFllW&_fZk=y6 zS}EeCuDp5s!Y+2wZvP(yS+tvT+s)Gn;(2sJzJv5VdrnvYUNJ5#;Gz?}`o)0?<|vW` zygst3ZxxvvPv5s3a!5!r71*8oU)L-USJW>ojdRWkTm#cD2Zck$X8p&R2fV=VoBi-| zOF5{mLjS5fKmOwES!C?53@snt59h6~`69%XUT-cBJ({pr->6&6jovz7R(};2-dm<- zT+wD`8N0MmC+3@e6cZDZL~Vh7!(nhcI)U?coBbo80p6?U6MFe}nx3ND(5=LPkiUhs z*(VE@0$sJa-RYB%*%ANUvl9b%{g+&8i{+iJKS`fjra(-lqnCfui2|llI(oHni%_U; zGmU>xY}7qIgJ*+n+bkvh9!#T)A1c$M4IDie>;^+Yt&t)MvV|Iv59E~?Mx@|0+(Hf7 zZ*QG4J9QZjpf0)^R#pIiPS!WqlTitNXV5G`3%Cc*2>9Sc+EzMuawf-mf#WS#U z7kj5=0xAr2ygAo2OQOx1{78D}<(#2Dov}-4dizu_>cmVK`!@LGXnPRJ9)_Ps%Rhf) zxy|YQgI7x6fg?+ugqNN}ptn#lr|l@OuCS_5N6MBH)2$((LX{cyC8H=;ZaZa*;o#b< z*B?2V>FzUS6tnAWTC#gRnvi~^S)N?Ge6VCbVMK!GE(c6Q?wV&a-<5CnJb&9RpXx#K zoLP8h6d}J6n88+e{$NzMH%(ik<%Lks;gX3Ctzq=y`xA%QLUy?b9-!`EjMsdEv(Lc` z7!kek3O$s&Ghvr%9F})N^pj=7gw~+92W|&hSp0cwb|~AFALfQ$u+AF);$zqE;(z;I zvgnWF8*uDqNA8GFZqOxp6{XaVk-e4$_p?DKylQ+`5p#8xLz1n|m*(|aO>ZUany6tc zGNU^S;?)#PtU@R3R+10$ET;X7%p+_P?3A%H$~908*c~!9^t`Z41ZUwuyb17Vi87{G zDGVGXGAwf0ukf9BkSazYKH_SS3+5npEpLL?Ef<=dUQ5gy_*dKDUv_#;R#4?69hFM$_Tz=1onv+7!}G zNf-B6RWo8nr1gI>zGUuF7%G#(lu42Wf|!ApixZR$15X5`kyaG;6+ph0p9)->Ip)b$ zUBn0L$-aZ_x|@Iw+X+V(uMl@od(vf(?!_tv1=>QO3c6DV4p?73yeiOf#63S;Tz>-0 z`0R)U2af+h5Uf5XHm7$H2vialCWd}3yo3sBa1dPF!LG8=>y^p>0)CM09id$sGaZ0*4 zJ4ryzSO&afvi@FvL`^O0=2JWs(sjpfxzMP}CbTB=_}=DCJNYi_W-R1frKTaUJ3n2r z(&QE0P7zyM13L@tM!Bpa<6cZbq=)+6zZ&4+pA9^E6dDn-be4`s-)Ku?$Em#G5Nx<1M?%q!|+6M2V zFW#9M{7vriH~pq_jI5U3yP(jTxk>pqC#DZ;3!$Fy!SH-^R(s}NPGD~GP)WHShkP^h z;uyj7+&N=qX~g@Qey8x&AG@*tUK%-Gv0O3kf57`WD#zu}P*8q74FtNB9)$$Su*2RZ zVeJgKij|DjWUdA+y|@Lw#YA^I+Ui5?!R<7!F83S40#$x(@!rY(uf<)KU%}ff|5ZG@ zCmPjDzoqnzOER=dX3r&HzXSCTwOCwT=&fnBST#GcSDHWPcVYUsk-``Q?62hC$kjrT zdigFA8_=(|%}{-J$_TjC%EnF$6t6ZO}u*y%nSPc0wwK( z`|IqD zQ}30M`nprV(pqKbVA@d>QX{fm(*-H8cAGX9@F1L@98z3%d?eZp-;BKh7IsQPQJA zk9c==czO4BgDSHTUUtUPI^x+$Ny#NTms&PWyj~RCj`T9Q$5;BbscU)W#GGPhHj6^Q zhQIpWb+Ea9GKuxnn*qWS!S!7KUzPTu0}S$m!_}}*Jaa#qDeSr<5Vop339y9h zOdY1Rm@$N==_bg7Z$$f9ijaT_NjS9_6`nCF=2eBFAprYODrsg{EGm7|`P@M5iBV?MFRH?iF1#CWwsH+rU1WC30P05e)Eru` zbHr0OG*~6O>R}<&&tr71VMeK|((XNYT8RJEfsTpS7e}E=p89p#=rl&zK=bg^{H4aB zE2EJ6QIae#R3&445dnrR9BJDU2kW&nUvTz)&Is8b)lW79>YPC7O$9zoX>_43e0Nyp z(jEk|7Jt4n5ySsZQt!x2RRx$)kynNFf6^In$ynLRWtz-(G98Kdb==@meIv5`mi-tq}3~YN(uoG0x>fXP`GGix>qd zb2Wc${CgtF4=qeo9injKTaZONqHY1gYRy0rsOI3&g1%txLDd?op;5kJ1ZgdYEI5Nv zhy|ug7zF1)Vbli}xILm6@QH)H52$fkgC&M=1}OpPYaD%asH=ZIb$po zpsHk2>-l=P!|=%W=6=(%zu9LA&_GXe-jY^8{fKgMJ-de^ohdK1`*DT=^>1868ft0S zm(!S?PF0QNMHN+9+Pz;4qQ@DEUJPp0Z8n>e3(cq30Ow59~K!k5ItfCYYqLi>AlIT*4m! zuCEht~Fvg#1)-fY2fmf zTy!Ma;XPL)<9U7>(0pD4QQbW+4A(IRX`6Dvsoa+DG#di?U#PD@M`;ij| z_DFpPZb(5MpzN~%a)4=c15x^DPrvC8p#Fd}?zAYZFI)7f zh72`Ux>1-LLhXzOR1s9ePqO8X{{uY$UjeV~BNwLE!SD4GDZq`TmmS#L*%AvBQcYW? zt_(VG0xK{WkADCBQA5U>k=#vxICsQYdrJj@*+9PbO-mEcO$hbUFT9Sx<4t7Jm-8PP zqR#~?8`3~a)r>3}wxG=-;IeLhk5YXG#Ngi( zRrg`cHvJlfiEw`!91$Pi2m8Pc^v^BBjGQ3lwfSzC1@PLJY5p~vzf`E+b7P-L)Z5@s z<>}GoOaq07S5o?YVvb^_=U;5e^JXn3U1{~RH>H+>KZ9xe+(5|v10oNPj9^DAvzJ{u zPOY_fnoC+50+Hx&a3fL>c(VY54LR6#rPrQ|2ng(HOaNigb)qSz=KWN+a1dk|c7;s6 zF2sYOq`f`4P~It^o9Z+p$w91LV&%Y%P5CmW-0hOF`DOD>T}rAAt&0qVZ=dQPDAt?;ti2-LOu;H1IL%1ucAthu&bW?@l}wPngqM7MIW>|uLV$HfoI z5EQw(EwV62NWfXd021ctT;N4q1G|_mGOuk%p5#Hr9}^KY5to2G;!tO|_oggihD6A^ zv3?)>F3+KMNwu2>Thc+Nf^WIKt+5kkTm?N+pLz_?n}OYic7xapd~y(tF~|jdj7zUV zJi0z-|2akmEApg)NRR72KoMY9mV$gdn}giP22oq-m_xdt2y~w?|DUKiKZQ#{`n}!4 zzvX}uStCRPAoBld%BMSiMCQtcU00V(uY2F|DbnYvkIy^Dv{2!$+jGj;gQAYqUr8~1 z5>)-XqN^1&BKBPj>U$q#Pwo7s?aVTd7L7H+Vt?*;&7NAXUF>Z#8B$O#FI&X0g)>^0TBX3AcbDKbz$&eAbY6#Gz(}%q&pTMc{Z3vr^ zCJz^JfPA;^-H z!DdJ}d$MF}M5EjJqp`CAWBQY;r65Spu}sXwRM16E4*I>rynXf`WUFg)%4A0Z`?W2v z9oxP#vLI74i&8yb`sYG$x+sZ|j2IDVk^*ve99Ai%%7qCcw4MIniR=A7Ki`lpmk=2F zSzq^uEO{$GTOtMyw$sj5VH`M666JI4mmAA%==9TV!_R@y{lAMwg98wqLQxNsA}&;r znHq`A-nb5oGLo4t$_dW|dp}ZBU7#>Ww!TyLXA1|5HYuoYX`N**W7R%MZOkj}daV|% zFf8*K(~xAOmE62^EwbcOn?OgJBAsPs%wh!yWyZpF9F^QJRT;^2;d5DEsGT~uxC^_I zeD{j6Ywq9dc1;94ydN+YP9GpPFI+W#$<#G4m+HfmKf2;0^YpIb?h?g)qP5?Cp|jO3 zzo?wsKYEzmv$YIFjQ_2@!wKjVSBKR4Bs*BaPph}nd3Pp#Ij0=9-U0m0Q5NY55k zsAJyX=+^)`rPo63{W$I(kS% zCB>d%@Aux3gv5kv`N%xdisE|)q5*0GXG{&T_n8&c``L|&pY0|6)eSh_JU^z|#aMD` zME4x@?o8K8mt>tb@BI>8ikJ}9JHFzfgKqv4yC!{`$j@714m?W`O^KHvWhy+w0f6L)Ock{ZR<@@ z+l7HSB5Y0EqK&j>y)w}QkxKVid<>pGXfCKdn;TJXIkAZF_!|!2bn@uNl6?JFmTS*^ z78wUSuWe@4swm`+((xhRCxJ9l9t|1%;QdjlVo)wS=K#%6NkCr+J^dJ|6!Oxi0^!PJ zAQ|;5ST2N7ynuHrsZd_`@;h>I%&@rn4|U#&r%9)SnvlQpo2@CV8;dGKvaQP*dK;h& zvk$9umpV?y`Q6~99XrG`{*{AKLUX41!pfeJ^3*}cUeUqOR}VSX>a?1M77w!?*&f9a zKAMJD@Quep8$LQqA^{%OsHe^Vc(2=hAEYjjAj?!Cli$&8_SS_-S|D*R)D2rx>~bvs zh@rA0I(ptbZ3DziMR#dCvxz#P*2U=2n}S#OAGUd2<=$8Y-O4ax2SR3(>I7rDkvL@s z+`75xi>8H=su`=r)4g!o232M#=ZaDj#vrSgCVWdQ;>jh)R+=QXj|KUzeYxMd^UJcd zhXyY4FQsmb)%KqSig83s$Uc%=h@^3~HWvEH=*{RUZ>F~N$w~TWiT4jo%*|f04;!3{ zv}&iC!L?fm9jVVA=dh3L_Z9W$gC(lCM3lZtsYyn-f0j7+@7kZ9vnxc`63{k_-Zm=+ z9!(I^h+nAWnS$Mg&)O`??PYF|SgwtaHDiH9#v|U8dQJJiBa*>1j*%wb58pS6KTxW! ze^m13gRYf$x=p#CS;BR%EmymsTo(~iuj5s8f8a?V+l z`es`SiY9m6vrx;c*k_5>UTc_%uZ19`HWYGfrkp5~$EvaN>*$}+-unkRt!a%1E1P{c zeQb*%?|*l2i&94_R^^wusS2J_R0ljRzo}Wn%b}h zLU7{tbsi6vw;cs?)lUWA&)1`qzs}|_aoSni+UVZ4F;eE#73zz$=kb?ryg_U7M)(TIwzHnmq0d(_^wN6eyTXemCb_5J1ddYymZob#OXJokNH*Y&QF zLG72){9Dfy1$S^~lqd43ztMfOY#BL*c?c# z*sCMPcugE`WRoY!Pc(B!I9yo`uDg2e$Z^c2bO%*} zw@Moh6cNNJmkWd%wogkvi!z#WnsiFo5yqLxRi&|;mcRLmJQKS8$W*iLi%y47k{84C z$Ufh27Ob2NW@0}FV5s5HK+cv;$U$vaZO$4X>;G1~ZtD^xkx1q?)C7VqT_^uY@R~*9 zPpdh2S&FA`_qFf`1b$*bozazHe2u;jrmsI+7mpBH)J4~FU%3SZuy2V#Bn_Om?>k?n z2`mOSWi~}*`$=M!pB)*~0BAJ#EAD7uA)cB%F5dH)-2CS}>6IB_^d+Y=L>tx__r^yT z!mdzpnUC^!Zr?^an;CZ~9_30^4WaAxMv(;dt0rn#;vUwWZz_Thf20thhF3Qr6bN+EJSSRbQTc|*WIR9F4cP6`qB2Y z+5J!Pu2Ky#3hV6-%4Vh=@}Kyu?9`E}Uyt}ReShu|d76@ANVP2CURJn$5X?L#i_;o_;%5bTcXA} z&om>#WdI$#y$o9*Z)=;h8w)I8Qr0&Jex`xWdNWMQ_{@Ss=s8oETXNUX5fN)qzyPM(rw!?N$bgTZ?kF3)4ip< z>$j46<10gh%@?UP+z%llY(d!F*fj?m-X)X0b`zdsq)MHZF z_Gj@~{2p=nqY?CT-W*jJ95`)vShYiKQ=l+vO?vVCCAjWgX2?^ECcXnG>2$Agr(pQb;MBs!ubxQ#(&f0wzZjY$cnqEU^WLdzP_LdNrEPW$j$;>V;y{e6 z!5;WygfFARFOLx9O!0H9)e4^&=ZoaRq3~^5dQC_BK`!jx09`&WAZt+Vu5(zJ^ly?~ z`|Dk6io~JUu001}vXfgqS4jAomX${$?^G7hd4pVYhzv;a=y*^MK zH$Vl5S7kkT_<}#zq%PJr8w0KH<36j3=cbMH&9VYEcU-YMB8O zJn0Hj7bnXFVKcz@%mYOAesj1WXZgoMRXKgoxQ@`hSwc|fb5cjMQg ze%oh!(`)^wQlTo)q?6gee3aDY@+@Jwo5Mzn-$B$N8id-=;dkfUj1b`{jYw*Sb->gj zV9yAo;Ppl~A@}cBHb=)L5MaSL$+sE|N#9mEb@&?J=}ux^Ts*zK`>V=DuD-~M#T!g# znJ>qA0iQT`JWG3T2XNb(@DiRu6X>P{q=dAsBGL>QME(LuL4d6|BuGl}t&m+5L^*DC0IW0B1gD&k}21}M^ zKY3y4US_Z5+#v7li|1_H^ZDn~hMO?EU9K;5?^SkI3?%;tFnHNTSV1F~TAI)s*2+lc zYs?XvYw7@Cc1fps7w z?iN|q5y_gK8why->p?87%9nnXx$8n7oUp#S<*h1)t%RnwhKBagk^?6xkkv~~P(s(H z?+_o|Gw@M$1UzI_$m^Zm?o}yehm(_ozwy5wGkga5mC6LoSk9;? zFt9d0Aw(OE^a=cN=>+q$;_kDzIFfOGXF8^azVvi1&xuOuZvuwgOCDr@8*6g}`}}~b z_brO+!{H|2eRN*{z;^dPXad z0*d*?$spS8?Axg>=r69mG(r4WWaqx48W<9_(t=AvX80V1)22Ao`@83;cN@K9GaB42Xu8}uj~%Mspv7xax7hOO*^#^ViuODfmbLb_ z@(oZ+2Q4S<=s!2$YP-l;-}}jK^I8&O0B*qz?#>OTgl;o$awiQVdNqOT@mt;5=VHB< zrQ!632xz4d^kd88S>u+Ox*o0(Q0=4bq}#Y}b@63_y-W)}U$H(oMnRb`h1N#ToUka= zz5PK{y00aUf8%x?ZqwMC<=SL87eHWUX1X{qFn`j3Fx!qK8`pWfBI={f&*q;ZmukIk zL&O(TpIvC?QawF-&WsvM;3U4tOwyobg6^)nbF{=8StBmL-VLt=Gb`?D_+l9i6NpAx zvVh)Bz5KXnDa+Ykh&pw1*wTS`i0HeI>Rx2vQFE=%N8P$oz5(tCQm$% zdfhJRFhc^wBPQLL?|qy35e4e7u{s%Pc%NQkq4emN8YcR+uX}naSNj? z!LA-@w;x$#YX<7=O=oz+1Q>>`2E(mlK$$~Qil-}PZLJOM?vw+>5jw{A_7y>U%WE~( z!t}yNy;g=l1UKDJCsvBGp9Z8{#I#)opsGqK8yT~qfm0LdEFPaY7Htapd7aGC?F3GDk$&au$0g7j9@`SDG!XP149>~&oJ*)bv> zH{VuT3(SwavbkN!GOTlN-gklsx{tq7}ERP`UrPh$^Lc zJv2O#O#4O0QdB@y8`-2}Y zB0@HT@WP`Wonh}eXk!PUq?l~rIZdfOd)ahy_-rQ+9WsAHq!hGs7q#VE_xuQ^aKViW z&Ap^vetUyq`hi~5QSQ~-2oFhj)aEbS)W4z6_p-89^o1u!A|ZZ``qj5SokyoNw>5iM4#B*)QoQj0kisPN|GtNsbVi^$0Gg@{%5#oOLiWV=N69&-t1M;1UJV87l*T9e`DP zM+jYvJIw%e4`ebV{c@gz+X>5-?HCS@RNiS0Gz2V3WtHP+s=Fjdd?Zau5fZL1<6vV? zI=7V+y)~d&y(RNIDFJ_yHy39|)LQ$!#Al^JHksW04kj-P>A1S(0uP|<8b(Da#4PSA z>R;&3!i9?607Ixs@QOu1tHR#qtnWs()_u=x@MgU31KW~XX$x$J^6C+M?KnWqK%d|7 zmbbmP>^ESCoot+AGQgD>GHqZzxMxg^RnhNq+L2Syr6QgIn|{31EzX~pk*ux^l9`FO zGT~}FHA6~wW3Z*+mg{ju`CcB8%|0&5Y_i0^ipJ~@p$Ej7p`YCUR@zBPPd~04O_Uq= zv8{25u?HMOIlA9lk&_^3W8RF+ngLZOtZ1kk=B5&!aYKgq--7P=!u4C-Z=<+9!x5$r zo@H*(A{CbIA9XKgeAu~5*S-Ji@ap?1{xvOpSM|ddq>!2D0zI37zCmM4cCSt7DN)}l zaD)?oGvvVHk^w;E>Un3X*a*pGBh-$+nAjmxK?8>5%2U*D$tsV6!==m8Gn9?ngg7Hr zreMo04qqLFgJlE{7*qm|sb1Qj9tAS$k)ndS5YTt!L}QvcsiSc27$|?X5v1WuCC4Ty zU3o)h@Rx4laK2B>yp_2&1FyJG-%FoJSZ<-!;`{=mbY=F@Q`yDQ;XdXq7O=bAe(opI zus6cf9>6s1Mhy95MMhE0ZW1e6NS6~rCBfs6(0Xsag6ZZm@b>64t^3kFsl7!=yCLe5 z1}+BkZmDt_DC({!-w=Z!92^35ZcF6bZzbDnz&38#nQiSb!7SdFOn!{s3TqbO1#tO0G-EflO329~wAg}3rtzJn zknQ%-4*cl9FsaJ3lfCmj5B(dr-x`!OYnB4IP0aqkaO5`gX5goc`lXt(I3;gd<{_M5 zII}p3ep*Mib=Em>uP>rkS>;0odNXpFCAc6o#vxv7wC{lYZ;n&Vh-ux# zLGDzQ^p7_8iXV%&2`cS@jngTDxbR2$&-Zz~efvsW3H7ffBtl+y9J2^}w6)%t_4@B_ zQCXtbFE^P&q!JMdCGb0v$pT70aR?tLngQ_(Bz44SsGVu47|;`sO)C89fEDA9ExN7McN_Yqk&jcMw1?->B3 zWmUS-?>e-1jW&s~hdLua2s*nd(1g9&ebAS4}IT<3sh2;c3t{Pmr3OyB2zulHrjG7w=npMJ~q`G@` zlhb0qW~Bah=#X9Hjzk-Cc=NqwoqBPxw^Lp~YV&wR{4^kUrE8S$Q)GY)Xw5314H;Df zW!EyOuZ`U~Xb!YKMa?d~$}&)ywAllW2RbkbaRJyuwyL!H=sn&q<)uL!aH^OXQNa79Pj9@HLHX>#m)rb) znHA!ryQ5P*!2xH!yxB(gK4g`2U&-AVP6hD@#|$_Cc2cH2DX;MhFAvY8$_3P35Su8I ze}B&!d>8}Wd6bnCUmVAs;1YA=(G@Hb6}<@-iAyLr`woL#ljxJw+uqeG2*0nZ#v2Su zxH=26kNx7~9C)YLBaHjF&x17-TE`cj9Pu(K`lvr_*RmE5luLu6voDuD$`Grhtcv1f z^#prMkWg~Xr}Izjikyu?HV+S_|9G5lx3gsh@StC-J-phV%ni|wzs=G6fdD}=$L8lC z`C0Ab9Qgy!YZ(QtZumzEsg#zDa)8R^idoluH9FS8t2brSqX(JLf45eq7#3RHbIvDM6q1(E%h8$Nx>R4;{_2qo)^topPKqNKJj8f;m7zY_$|K5o zs~{ji&>lb~Hv&3LdR5r|Qw5F)n9m$se$#Rf@Z98tq|yIgxgl}w`u3$WG}#;OYbLf< zXORa_5arl(7vNNIN2v!}8Do6!(+BVkZmjZS9tJ(cXV~o#+g^vKA6Du66Y%M0jQ~>Y zHAo+q+eFrcf*W^%no=V(OCYc3iK^4MRBL_i%Q=UPp=VGBGmE)(YKgAg0V!tHfnsH? zhm4vCjcw`Q|6A(w6Aa3C=+-Pu`^ctyHQMaooH0$(EYM+EVK3vb_8b|^ID&yB|y5#|6fIzx4# zW|=O3Q@N{~pLN$G!DdjIK4$tw4i3l1KMl=Toz7NohO>t4aSFLDA&DvwaYQ|50-QD? z8B_)O(yt6APr2-vQ+G_=loWI@)jtch(1g@G{AW7IwqiG>N}K#`<&v$LRTMuw{HteVK|5FUXuoAGl709 zzuO1>omxrt^sC1%;3c61rKGW-apWe1-i4VKkr3>Ab&yGUR8G!qFYm}p-{#mld8p{r zrmeZ)EWn!N@zlrwULXt69k?MesHL|XTOr0T769N8^udcnhV^jTkRNln#){F%H8Gi> zke~QD8U%`YH~hy`zn5C=oGH#))QyE4_xWyg0Y~TH-*qI1b4pYIapJWl&}-r4)J5Ao zO|r3RuRZs>9x(J##@j6Nt-c(f8=}~I<(Stin*3Zf~U zfb|^J>z}MN;`6OII+x2!cL%#^cn!6rg9Q`rvpVFrR5v!Z)ioykT8&=P$)Gvte(SX8 zoiF;bM~E*-^(t0Y;*3g%`mVT9mXUXdF#&%_^ z!oVOP`0D+$$*GYdcTyQV`tAw=~dG&DfU&uBp`F7%C-(D!3&q_cm zY8J-EcwqAd5Y?|5&6sQ^o`Xc?atFLMmIE+z*#i^keG+7o5GB?Ie$Ri}EZ%D=H;b|G zhA>DrnpWmi8Yja>AN*vHv-$dsOwE^7sN(YJJ$iUWLUh3vFI@ZoT48ymUjmCMg@>4o z!)f<+xx=IB6P{uu8dF7RnzuS@CCn$!Fs=tAI%+`Qc)d`s{7)5QpPKcO#K5(hIEv?LiO3#~=~ulTXA&UN(%7` z^gsJO|Fkf>%Alh0r9Dl<*MHxx@`C#`dS$<{T`kn+XIC$Dh!suz9LhNENSB~=t)3O9 zcs%8O-=9E=l*dcd3$(H=VpQ4LbTJxzdLxtN7&N58rg^5tU04pH{H#WOp$pf|(;;m3 zmJTjIrLspFBd%mG1sshRRJHebRQOY6uO6jTvg{cY2hN(%Ne~H&aho5v!k&qD%i8`_ z7w~2p;IAB+HwRAlGT#?7zjA~{)`B@^1;u#56y#k`X^b>lB$CQBCB0thF8r7gy{OwO zhth(-?9hy4lW#QGd!OxgCl>ZtPB$TO_^NCj4Q+hEHL8V6@Z%wEl#Wi&!KvZ>Wm)T$ zy!o=xbBD`=>vi z)`M>!PjOqd5ah&@#)e-r;K9$`*Jvg5srKWrM5{}eqe1%;Aw~QH%<(b(xlj0w_=#}^igVbtme+UjW&ZZH z2Ni`UgwxC98T`zQ^uUe5a-3i?_*tGmYdO$-0K{pizLm2Yml+GP7euO;%H&edF+3Qg zIuuQgZ&eHrQf3vGxNxtO5{_ODAZGolMY@2Qef#zP_S@1k@W)YvA^-y(T*RMRtaS=U zePDQ6%o2qE3lwJ5!Hj148RD!==B8dkHg}89xDA+ zl?P7E!RW2;5&?^kw7fe3IQsEVe1JtTeuGl9i?`sZ?&Bs5S=SCiUHLlwfuFw24bE%Q zif?R2&vbNh9=iI^Y8O@R&erK$H0`$YxW1^OLb8JYxV7zhJ{{tBVt*Ct3OhxE*VuX%;js}h%ICz0hONxM#k{md;>Hiu-{6JJuJ;cJ0vjTFE&ndb{uc17 zAJT8u&cb-5?~hPt`%)LxjjTRGB3lf}rW^s0;IoQ_iSa{B+g|IxCur*(vUWaZ*1`yt zQRm*OL^yOgIYeKZ#xE}kiywldzv0Hy*j3Vt5?tnm;P5#?VKAsO~QjZoqy!+{cWCU{K=$l@Ltf2gwWy!!rPeU&Q;K|Kp zmbddhn54YgY8``Bj$~Fj*?y6zX?^;2Sd~E5*Igx^s*ocsInRWtD5CsZlg_YI;{sD+5E<61OgVe{QO>$gG2TRBHeeqvZH+Cu~BK}#lk{_2oZ_?d6{nJV{ z1CrhVhhSJQ(N!Ov~rwqF$TgioTmQF3|V zSA{7PQyMarmwv+@K9Q3QD6u%##k8<{>elMk-j;`3=@sPAJ3;xCL6Lg=H#4yoUz7_g zmMVx;%;3(fjfBK*#ca-}m%mp6!~Vd$W-BW4_Z5|KTpWG;KBZZm5N&PV0cB$bkpMmj zPCky=ofK1OwII3>)I0qtkC)4SQ_DWFQ;qRrB#y>CJuH(*TsAwq>o4Sc>3Cf{H~cF^ zMOLEsI0D$VoQ-CXDchrJeiz*Ug+2P))yh8%1+ z6jqMgeqgh*tiM4Fm>mjh-kDBGyN;B&4atw><)=3n=o0H!J5KD}*)uTH{h9~ToqQXw zSz;UlGL~UjI~fsPyk_K~U~F(2oTYB{X|=CDDz1{(mwv{1Qv>Qt|HG;as`#x_q3FA1 z#8ue=X~Z(U%?}|sN8oj+=sL{$UfYtw>xa}J*kZec1)F1wRtgcnO{vmfUdYWwej2Q) zJmq^_8Wl|a4wU&C#Hn&vdL4fFw;s`X1%#ZFVz2rj&?&|EF^&awKzxcR=659Bn`ZG zgWPlTJNAuqV58-<(upco4sLk{jWjZS9yFcEZAFqRErS6tLh5%D;Fc$6f0*;1x%ztv z52q-(Z0nKp;Y;s3Tw$G132s5UkBk8REkWi#p=E>=ZI9n}cKT?|!`A-+)@ILb({d4d zRJd20jYL)2jcPbpC|aX);8wzN!*^8cEBL6PhB40%yW%gsv{wr3lLh0VVi(?Kp24Tc zORYJv#uIN{h6nXlskn=w`nMK*e8G!BT_~)q&Lf97WVp8ydjJ-Et4R;XobU#q%>QoI zBQPZR`JWxqh*ubo;hx#7VMf)%Z=OB{qNY&GCorZPd3T5XvPxx>K4A06NZ zxLkCPAc=|kC7z#?-$OaCs>8j*o)gm?)e5d~on3wL!`%BK^Nk%>37h4ShRb#%21q_8 z{utcVzp(k#;zr3eTDGS8OjIJttsK*xd>>d#?123X_(c8W-;)N4Brjxfc9sC4?)k#= z!(*!MQ}J_dz#}W<_%zCv`~NFaz7l5$>s4F8LEYYf8<@T_8EJ0y;#GD^Ou&ly>I`c@a$M!@oxL@j$;zYp2m_>Of5TQc1_=+ zv=03uEc9+`CF+Tnjj#u4=;v;|MW`3~5kV5bpbntjG^Pp97X-A3$FZV&Ws^6(#brUd zl-oL-s>RZdsB%Mu%9trkE%X3#Xjb!Ryps#_9RYcCMF=d%4Y;lnvp2PIajiMYaBwh4 zT6!a!Qk>v=mETHaknaOPixbGK`3zv1FL?YGb1;j#uSlsQX6#bEbyuGe@}C==ji0-n zTfjHmnblg%tLAd_N_epAD65ckwcSlzs{6Of(8YkL_i!XQwSP)MK>+$*!s zJa#6BGyVs#KDlfkF0X;7#Y49(w<2nDr`%Glc&St5dp@Pl2PSTaDnNruc2q0Z#yzy{rgKz;A5W0O7-j z0FC#47rP1Lc6z$%!v6p`U?1GC4BM6;(HFf#BI$~xj)_Y4YFafoVskSwLOLLlVF%#K zz5EcVCv|(LFG-!Umx^c9F=m^gZIk7*Hab0N=8=^8o73*h_iofIa&B}Hb6)$( zckw1u@rs7Kh*ED+@amSKWvdrn&V_tAV}C`l;rDse6Fn>EFWe< zbrn5$EGzWh$ut1Jn$*d2`qOVNum)6~6$;zQY^!g24>VDHalAKVl)xZ7-(_i@Q zczmG0e*iox!`S(wWQWQz@ENRIx;GGPtu5li%)kH~fRfAsKZ9r+r7JL7t;ELIKxC*7V&N@!yG+nJ(6xLT60)9Bc!KuK}!`b~|Fi-FiUE@PBz?Jy{kuQQcLqvjqun=|B zBRc@al!@}nHnU3D+y7kZWGG_Wt#ag=A%0<Lsn(W@L*_V7PV@vXRZSulXd%5I?9Zrx}%A3An7bZ~I z!Fc}h^29pVp=9JNtY6t4uCW~w73c6J48OX2B?!Z}-zyXI+-fiyz#0*sdL@OG{%A`8 zcDJ3-&`gve+bVFTm~&#pbwRkoZ}fmIXhO4QHj_f&sf7*#wlj-)cUDGHs!@( zSj&fww?Li29Pb=^z@^}n1&)VK{vyLL$yJK@lf;ZYsy%cIJ3c1Nx%&6Rs>cGJJK4#Kr%$?TyhJ?+$*u`s-g4LXvH4K1#7}#8r2_W_~ zHOXj7YO9HW0}IOx2%&1P424(V3aUn;J8k3aIXZa!=b{L_?_>~@JWPU^~3LMsJMdlh}av>7g;TXZRWa*%qb_lvzsLLL3^ zPH`h%z}9Bx`t9gP$&Y2^I|32YX$ttU^ug{79w+dF~ z3vvSDI znEPK(H>pThIBdMD@n`<91*i=3h$H;TCIdtyTyG-uZot3at@tq{3BRPmSrOV89I~*a z6ga;^xX4Z^->ccNNJoF3tE~KN;*Z2F`C^@u=~vBSprG@3urnDfjaW0F7@l1ye%<}A zQ~2vb_e84WL)BD402>>Rh+pO{X_>L8I{I~PI$CblzRdw!Jm4o#FdG0(@RlVpC=^g^ zH&|&9j^SLanMq$0(gs#t)x?|k{s*A_vts(9mT)-z;)u{*HG3C61+REUpCh$Nb~V2BzF{? zSf;BO$Gm91^bRDK$-b*$T5z>_6UQ3_Vh`SCvk=bxh6jFXpbeoZ?C7-!iL_*E4s?W& zXxSzZc7F~it^1eOW$n!kHt4%yN=7IZk8>}~S^w+_Vf^|8ysoiTDUhDq=Gm~bCeDgj z?ap6wl)u_<(&kJa&05@X_waeK1C61pPr1Uc_qY}m*N*@2?{piu_j^MRWuoC~ERYO8 zecGZSPOtZOIo#K$4BS>G~qL`U@MR%Fi+MvS)cb8nqV4 zEnRrJ1&rOOVGzN|Hh2e*NWE~UxU9TBYMv`A47+DtyyxLILws8HxOe8nC*MXJMrdr6 zw-s(kSY*u=$_N!GF5xrrN#ie#%=tl#_!_;%7r6Frn11QP@+J%0n-@|?$4j;MyMZpq zA%GIL6rs%0kQiwM-Z)sjszYPw7r*o`X6x_zqRZ#M5C5NBOI!%Kdt^usep*>{=Uqi5 z>B{gIS3l}-`Ua~lFil1d%w87Ff1Y@}S-rqpmyXG=Qv6)%-t>HKM7dr3O1J&~8~M}$ zS`Q}Hpkoof{G;z(n{l`PbO7EZ1h4 zhnYG>gnZ@vCetO){i&KbdF$3tbj2C5^_KcBWnpOae*ocEdzjCPPnR+zR6gYM*HzRT zDN%bA2kcJb(z4lGA3uqyCPqC)Og$t>N*z+&Y}rA68^gYPoBcakbExe($v87-F#lcd z*TLk5+VFg6HkV^2&L_^b(hvqy%VoXAT5w;cUnok<_GDnS%69D|?cCbQ|^qF(ge(FL_O@P2byWe){<@ zomcYU&pKNz5E&Y0#O3>blh66%u(76Iaegs#S9Yp^jBGvH*5lePdqq}H-pvPiT$^nyJI|X#QC`E-e%d^t|6DJHI@W1bFI-FdY+d=|CY&v^%Hzx^_Hp2Yb)j%* z^a%s__l}XxPN>@KaexszI_vlEc{{Sl*36#}75UH81h4%so{owZJWtVCxhnuFLz%v_ zf1z{3fs9kFJke3r4j1Dqny}=GSIo;xX2U{}Bx!&W8*&)-Fl8+N znBwu`SiP!k>AnP|9Y5QCUMEgAx2do@LtIZmoGN!m?@YZH-UON)MK&JG^Bvq)huYHv zW%m|J#-&U*tVe>NS@uWk53Ij9-)+)ix&!Q;0s>vPH3lk%%Q(x25+jXe7U{itqy3`h z>mmVwYX&Y%!dnc-rF%>9&_ic`w4*;J zg+OQyoOLZu_kjc__UhfQe~)9_FutL-%Qnv-WEE&%pA02feZrZqPb}8;|5Ar+F%=L>@$`1a#pE$K%t=y;Qws29st*h)QBguTK zf)GsbEe3@cSNXf{37j{J9CLbTABEX8KTXm1KY{%-GD9hT|4Lue*yyqIH|M9Lr?PmX zvMFy&SSQ|C%^Wg2#IiThV)IKWF+%h73n5zch zN-H%g!v=&Tz2#jm5*ua%_JcbGITFVNk3XI@iqCHaf?xln+Sa4UUjNZ4W@V4g%$yq7 zc)YfQ-$^WqHy^eO!|NMQs%nZEeh*mRLU3DzwCQa*Q2d=?wEo(DWvTZ*prBSGVogsK zmRQSuqL;$2IeM8%T+A#t(^jztRpe-`<{w_cg1MYm*Eb}3jZ|uq!gXj_OzQT9^skKI znXR<2Dy2C7gpG&H%(8|Bcyy6A))J|fwFKkrqYR#p%5(rdBCoqI9 zr4JhD=N*+DL$$o1^Qde~m%8~m1l4lVU?nm!IBPyR(k`ZWGV_mcJK}PjuBFFLF`Www zjq;57aho{LLzR64qB1#1MRZQ?A*H)Y_ut%dY9L*gJJ;S2@f>NK4W~Kx6=*)?q{`eR zXvb9YqcYjrAD^hHT&8X16mXWwGM8Gt`pKWXgY^#X5a?50MLxfv-cz{63nGEy-?|?5 zn(p=JcHi`g*+f3ct7Z`umba=&*KkV+49$$fzr=nxN@IN1;CQbDV9XyqSm_N@m45a8 zSA#1*Z8l5)BE zz`yJfe#cj!tIB4dq8^0A&g?IE_#dhioCJCt?6nf)erH+T3vx-5!br{VF0+e(uSOQI ztMk4TsMQ(J)H_ff(JI-^`}*hWh-Xpea)XvaFw=FE8Ln9uTOzc98X(G8k_64$Q!DTY zj!66yLUOqM1AE09p_B&IN_Axs*0{M|)GNm$Ar*v(2(7ZD-!a;FamyX!ZndyT_IH;q zD_o#HlS(GCO~AB=M?Iz1`jQ8;!6W~{CNySPP7l2n%xV(X{C+Cyy&V0I^&H0)0CRES z3bEMv$`muGeKCY3&cowB3crbYT@{4Ec&Amw}|ULW%6Bz}y~1 z?%Q{MmK=PAdUy6rC*=o*+L~fUA3k{=NKH$?`!3aAeVDQtaYLXW#a>As?VVWlOQ0NP zGP-8*PE~P&9B5y?6xsKKWtMl9D2oe?HJzi25dx7+Hgf`vg@e~o>U zEJ(J{9HdvbA8x!QZN>@r>kWoP>{EeI)KH_=V$@kk`$H)j@`FFY6-{^lQ)-91?A^%Q zk1NvZ16SipDHz$??8_z)Nx#^SCezyS({HQm zvjbXFT+?{LZ!ky^I^6)&#UPJ5`}L&>LR6$ogFPG5axp`sMkkbACLohzk!^Rh6yV$F z3B&_%_uo<*A^S%@35ydmO_X9bnc0qAGpw%>jL}$^wLD09B?*avV z*J)(~m~eCU?;8iuZzx+Lh3+s~aa-E>IZ0q|&^ipF_Q#vb?Y<>`W!MZLH{1;}=~Tth zlTDe8u45g9ixa26g7QsAzR9ZQP{;<|RPF zD_Y>aAV*y07lt-(i%Le?+>J@4mpxiv#7MrI`T)OZrz?#byc^kUVLdl?0#5$RY7;K5 zAWR?Diuk{toGdn==2-LoA?7tX*V=}qd*mFK3kia~Eja}eW_ooO@_Ajq;u=TX?tq1a zlGC*4RAoRkv`(wlVZaHo9I7;K=ADp(7275W7521tw< z``|RdhqJ}cY4dDUnxCRj6@^67N>#4b<7s#SX3BcZlb8e!G?b}b%Y4})X2JL1#d%z? zw##|++=+nk+~T~=2eAX~jb$6ebwG?|De0$N-7^wJSSEJZmNlZhlAjZ-$Tri-aOGQ6 z)a+c`$+~hE0x5{mUex6k@>O3{q<;uI(2RWbi~q+5m3v{K9cb6ny?2B zYd(bONI`!U;+C6GgbB8}%qrR!!3*BPY8>Kp`*Oz&Ly6*ot6AG?R3U9;Wlkh5oio(i zmvO8PmIBm8GZ5LZRUgu<_p8PG-`UNxX&%}`yzF2Sh2>7I_O$GeSP(L`| zLr~vvOSaL1Sp!w-xPtw*`FU9VDKou<>krj9bT5LTG6>`td9`Fum)9ybnl2g$2=54> z3eoekmDsxY{j@VkE#(y>ubN*{iXZ(!+wY85sEC9qp+YKKpH^bZN?yCzNOh8M8!bZs z-Twrur5ZCBXaR45uUy5Wc>BMZ>g7jTh?i?c@&<}3V^W`G%Ipv7yqruU^4Bn`S+4W; z!jw0n!r7QqnV%kChCRH2xlml#{yZOsE?XH!P>NF8%EEYF-yQolJW0@=a%$C%40_O~ zl-y?WHsy!Yc@P~cAadJRvx#%w^NGKJ$&2&yybDRvLv(8Q<3|zfg9+lSyN$3CnYozG?2Lo6J-}2^-rga7xzC$;KEN|GlqTE{Wu4KTLIm?QjmR5K^MVw?m$7#oNx+`_GW$~x!I2nLIm{h{~tx? z;m-E|wei@as;EtkiW$_ZO;I~FYlqrf%%Z4PqZCDnioI&@nFKN08lfmL6SMYiV|`WI z-;?LM@(<**-sjxsKCe50&w0xwbe@X_9O*wN>oJPDFQ!I2{Ko;S;ZG=Wy8Ou|v9g21MkTZzVYDi|>##@fS~OyAGDejG7;e3R zQO~S<$BlO~$z!FkK)yR;= zcrL8^&<@IDM}?i# zU!o~-HqBK&zt; zS>qoP12Sa4uQP0aP-B&6h|@-mPzHJ~f7!Ow66J;0jR4Qiprhup1DsXlWbOk4K$2@V zT&gfm7Ir6;Mgh}tdH%9n>KqL@=q}qQKrhaZgZ7WhEI;q9;}D!W_%N8LbmmG9u6PZ7u5~05i%N!l0`PVpVT&1ktL-zRAm*qq*iSZwEiRsHhk}shuSIz9~&TO~(pZOI8;)m2s-; zWQ(5lKS=iax_h#XI{1mu1-aaT_y2{U1w0{gibn>Vgnoud>Fic(dT)m4ve@k%iIp4?a zG)7)EcTV=q_Kin+`Uw=fM-0&2&3-S*QHASFJqUv0YhGrTa5e+9xDXty~w!rFcv6Ti!fWl3j5a0FX_M5pR`mrd1O-c{OJetINgMh2*#<}7m+gGcv=MlFp@skVv6G5-B z&M}ZM%^M2{Pk~wlI^PRJ`ldXZ^SpGa;gXc^`p70o=ME3C4fJHve)t8{nIf9ymWmLo zMAiKocc(lX1pFE@wiD-ap&OoalZ!s5^lXt+{->Mbcyn>F|K@wv{`K$g=+#S-z4XdI zvND_S-J~89K8NYMYMX`xek-q9eSc$jq8mg_91z+n$yjegk@-vk6u-+E4oB5YR;F1i z456~ox*qQ$`6G*s$zV+WjnllzFeDX`iy(X6?16FDf9AfQ6v<$4J%=& z0O3FvZvZjmx;Sj#&{^Gs#g?c4UFog{XILhBLA}^&{-y~6ZTkD~n13CFiTu+6{snG! zLd{OX{!GP&xj}cG+v3)IMotRhWE28qg(Z?(C-h$d9Ebz-rb(ho-;@*lvIs#0tfzW)WS@Opu8gCCq3kG9*}2>i!=a{kLWae^jdd+s$1cXn7m{HQi;K_g zD=v`8UQ~PU@d|XUX}c=xPb6jmyh_lxhwd%$(50c@=JbqI8b2$R(-KnOg{d4*J@MK{ zZ(49rK|N7S#&_kyT_VF^rHPiBo?Fsdl)GuEmnwf$CS?ays9wva%517sfwng6WS(|3 zS!IJ#VcKJbL<4gzUa$O}?&HcIDEQ0*9)H?&+BX+-xR*b(&;xBhkDMo*_Cf!BLRdOz z{WKBpj(xK!P)9yi7*~PujEC}=E*CAY=sL_3VZgh^r0M$ogqJBaO1bntf! z(Ke}HCaMDTI2)kAJxZG5!Lq!48!b>ln3g=O9L?A!J;L z+Lgsfgoy<*ZuuWc7a+lfc(cBT*D6tQN^^wZ<+PT~Tm2~*X9gNCOoqp&0#r3XWdc<)+U4o{2ph?9hOK!U`Vt|v^v zDua~g0Ui_yqrBWYhXZO#%-Q3vA4I91s@-bgDJKj|K_){k_|E|Q{?LH+D z&N9F{OSRV)5HL1~B1%jP0EXfyvJe!cWlqF8|I2fY>(9Z#%O0Dz2PtLNNkHydev1Jv zDWw>tYX65#`G?#71h31*JRbxChihNJSvS|_@s)bainK5p_C3+jmgP)K=h(JLeKR?y zmcGjn#}HWlwAV>-*^$$u;Q4#*PpzEGcclMw0o+O$RS97HYf#^XF5RiKO@NqSaeKLCl`PP54P?ljhKF(65B8=?b{?Z@i}@Lbc9*k zo}YI&zfR_H`S6hWl1*^7#nO6kOOD9%XejedeBt4(?cV$oAj}RiuM>wI%|Ha3&g(6% zrxD~9sY3Pq`ShazyDBH8H%yGmLM04+54~rk0;%w>bHvob zgzwzi@95q{)U?9YT%+RLKJL`?a{jWi##t&EbvuYeyz$8$${i6O9b9LcQCznmqk@e_ zl2`C-HTWHc4zjkAf$t(82dg56*JIcP7&|Ex?*Kt802RR9bk;zU134tVaJR|NT7aRb zEYVDvb02<(MrD0hApV4k{wlVp@psez0LA|U2tw;gEV+K-!QY6}z)Sh(go{~0UmGr| z&ts!(ae|j|kstugFTkIdP4ruTe-IjVzr6N$lk&OTECj0$vF^#$h8KD=X@z7-D*}nZj zPY0^ezx>8{;oeLH3SqK$JiT{xQZ%3T_p6e;R1eFyY4v1!g+zso5}ysN!2!`e*$=s} zuCIzu|F+HZln9ocJ?59tx+P{SL91+O9YKMXRyvz6YaifOWnByh*k`D zZQptFuHQ`%AYE8lUbK0XdN?nic$fH@Je8KpgScMURx5xQHZ}WG#=5wBX>}io1A|@< zqQAvxrq9nIX9%Z($q{qcX$d`hZXZEkh0}OJFm9Q{LYZN?QuvDze&cfgXtb?Tu;g8R zDIl$90GYT{M@R=0O9eZD?rHx(n*LA$!n8%{jiyZB0Rb{92ho4NCSAb>!{9w^>zNB& zfUOvB8iCi(UFP>!=i8vdk^cUbjSIhL6{4kzx{uDMF@0E(MvReCnf|{&b`1=!h}W9h z+(|@2$eHXT@o}bCx{g7D|6Hg+T1{lYbdHdFBjXtUXS4%Tn#;Jnl=LxEnr~Xzkz4Us z$yBDnMglGr`5%Crg}-+T!>>r?!{#H0htQ6>j<(2|%N2(!)PnynQPW;%o2~I`)56&t z{-54G&HtQ7Bd4GQMaGYYV9y7HhBnU1lX|yG(RIz*mZ__>NHRO`7-* ze!gl_*5?c53p4YtZ=d#cKWEDU|2bOwf{W>I2l=4qu|x7n2hRc*?>9a>zN}j!serVaZJ880W^aM%N=p0M;{igx-vp_H}8f-o2Pq3yW7F zOQhA{lo48_DCB+fov(MqL7{tLd+i_hYIm9xZ*;$6BWc~jDe#o=eKKa_Zz)1kw~1R; zu<%Z1Xv3nqJ8yvWo!_6?tS;o7pT(xE?8}}nOG3}Gb)qd#}>&3w|>P{9|p5Z7p zBd)EB5y$94D#}fjN>K`60)>i~06+sP00=3}y5M`?Te5wEky_iVXPa4Z_IEmJ$luFx zK5Vcd{{2MjMQh=i=Ip-ScH+3v?ah03t{y+(4?aaYJ%ike61o8$%VFdAcR+<99fh9S zUJQjNly1%55r*o|IaM|(W_iy~7vai70-nGcPhjW(^IED5WoF@X&Bcqd>dJgvIP~(o zea*Y~yiNPH6nip$-01|_w-R%7Y5nllM)eooMuw~?IPK@J^5|_z`wyDA*6QuSGGz5} zzcAUG5wuu-F=ZhQ10ChvM-FrpwHC!>Kysr!0FZn&j<@jFB1sm*EnG)l@|EX5?E4*o zKK$>007D1g@-tGj!h?~jq9->z8?UltQtT*0uV43YK6taZ?wTlbAoui5);#>j{{Tl< zi1|LL*Ab}5%YcSPrRYmjrMsPQIa)5~C&95~M(-BOW~-umwO zOB)Bx{D9;A#wGD;Qdli1#r$x}ql+uJ_iQg5jBP%F5X2{9I z=>qQx5TA^({)DC(Eh)cY1v{num42cPG%P>w0_)o4?*zuk9woYOy3n6PK_HcAqCY+4Z zk@3;HAT8Muq15NY8o!Fm>K+@GQa#uaP!aIX&=xHWdvg|n9i@3FmvHS6fyiI8!9jqh zu^ip#Gd(9DqE^k}_tJ`A(d8Tlzd#IJNo?G>adNvd>(BpjAd1T~*1IK^ZqkPVxRo}qHA&|)Zy?z~N-2!;;B7%TxHaLV@h-6j~_I|(Q4)1^)v5M$4 z%YI9pF`Q9xW3$$FBUtN`pJRcAmhgDNZO&2FU-*uamywkYw*eLK?ohW$T@8oNFxmYCe|>@)#7QyY56_w_#Fp4w zbd54u`!)BnL-+Si0<^jDljBqfLqwLs8$r;`pn&-SAs!mis$)nd!S$cYgr5_{AksI) zS1?HW$12#K9<`(!Drjjj>e56uX-I0oc(d$Q@AuB1?=|ok<3uq^ciT*d$9BT$%Z$Z{ zpRZrJy5}tGB#gmK{8o7WlMFnOY6ukVOj-3Ui$7XmcxJ6LnxJcZqy(Tfr{fnJ+|ysZ z$eLLQg6xs}rMP}CwO+~Jd#G3?BpUY&)%P}9`UCZQ7la}aEJp{-uIQ9->?zWs1y}*3 zS*dtW#(A?$`R_Pa6+LhWkjW7gLt310S00TX<3CcgXArWjNk^LJd#c`Jq{3W=l)_KZ_Zvyo9I$GqN zZ>e4gRRivuw3j@_bZp3w%!<6OMy5xexm!m&0Kn!xtFGo>dl120u^>P4@XZG%eeIOT ztW_i_%#$|kEF0Jz*DpQrZSBr8f7MhDdB6Ms1bifPnlOw&GgBvtOWGOr^bM;;!YIN8 zUUr%2-;gfQIRT;}=i4A{{I@NlquZTXE@Ru%DRX3d1W9~+I!eiqX(T+3$`@{*CQRPo z|Gfs`BBC`MpGH?VA67$O=@(bKYcZr+QZ_y+8bWn-Xuz zZ_^ycOxN3~a$rew4o~0Udw3h^-L$$ox&UcSJrz;4ypsB5XS^>u$HvBTdHHk7_s`JX zOd~l;Vfe%44Q)v+0T#fdN=--d1^BPr{Hb|c@%(|A{7W7D58=;ad#SDC2rj*4E%yZh zh9B?xi~4DT_FoP~DWHt(o!cR5C%qAZCiHj>FQ=HvE+zTT_hmSo1s_GUz^T7)>)g+H zo6X|+FQBd-*?9kUAU5E{E1z@bdFLI*TY*}8*4cwLmgy^`_IqSyu#xH#{UAwN0arEt zH;=&+zUSZ+=;mgS_O^mESH5omV*uFxLZ9=MLv<*zIPm#|rhnd_|1z^1y^Cy=CVyB8 zaJIPAXXq_pXuIQe5-22J`F=Vl8ry|> z%&8}7YUEOnRhHBi?RE3%<3mnABZ7TTykkbvDsHqNBi*IPsOQLX^LWBg_W!Lj>_)7D zx}=VG5c4m#;Ix&QlyV#QHf=LGBsddZ){KY(3T-vY{8U%V6-)CGdBPR!Gj))bj;@4? z@zHzsmBJp2b?-tcDO*2p0yIc}lSE1S&lhL<1+$OqL(M^A)udR?r{$pD+8y)HhIWg8 z@V6Mw+}9eAEJ%^Pok>KwJ2kxvtqtyytbFdB<_(MSmfD`WHL#`N>4v_XDls`3F*D~DCRT33~xHJN5@VNV%e&n2fCs64F>x}QDQ|HrboBH+=z4`9%(5M2H(?&B*`L4GK(^W%&In95 z3{^I?jV9XWb{yS8gm!US({kKOeee{E1*X{Y-9r^X(DSP?37zrdL)~mduzsaQqIS4x z=&vRUlo=U8-bX3A_b+Vuz~Log;kM*hW@Fveje2i^dN{7GUlF{x3BA z(4X@h%kw0YtqKzZ{)82hOdS&0;P9u^spMAyW!O{K?5Wvpw6?LGUlQF=}k8v^jITQU3+7G0?lOWI4X0&vxnA0*Nyml2Yk8-bMcN zfBndWDk8hvDM~}Cj$qK;eYR%V!!6a@R3F(;f$O+xz4j7y-PWZ|ZFQvb`X9iij19~D z=f8taFXX4eCde0PnB?~cdAjT}ywSCB+sAMTGRp|I?K_V&?bspC{z}{{7pdJIt@}R> zx^HDcL%I#V>Ct6Ti`p`dY@3^l@r>WiUN{La(wr3Um{0}h6^EzIH3o|6rq;`<-Cz9L zPN}stfL&*~4H}+s24fl{yZ=0ZcHqnpO2Ex%p?}q=QMT7ne#mRWg)X;gc2GH<2ka}7$V38u>jYoXJU~hicdJ)h4MHv0M-t7IUy z&aB44&T-k^9vmLR@L6=%e4n;y0zEE^`JbFzyw+judM$I$}XvI?2OEA0nO*N9${S(LPnJm@#qfqtO( zx~*I3$|*lX7xhb<(q5J@!YiAjR)ly++we{Em!S6Mf5|GttXsbMlH5+)7t8WflIR(Z z3}X&I3c-(50_3|fyj{Ee;)B2RLd$3 zQ7Bk(Bc55L{10FX$FDApBD0Rr%p89YCEoec+0$w@cIhx&3dY?rkwiIC-rbY2(j_ns+lyWnjz`6 zzpGBXd{w1TnfJa$5U0etG7KlwK${ePHS~3PgK8x_g@2X+5)IMm@j)^5e7l*t`RMnr0{JF0WJGa2 zvc*t2(i}6hFh%vr@1nW4w%lnSQCEyaYHg^xF}CyVeU(t{KsvINLW(#>@%`{MXAJl{ zf*rMH=B$UFoM<-53TI%LKlDY4(LzqdPfYzShfcj)QN=&-cGd6|KA%5%<+Qt5 z38a~HFbD9g=qt3LNb|;_*XNp( zoC$6k$%MbJplf*9%3P|qd<-umPn*C_(tI;=GZQWD%0E7-clQmFE^-&f^$ZG&;G?G9 zC5*S-2C4Nw2a%)+=UmuBR&dK*hJ&Mm6wWQ05GoXv3uo$|(oN;{=VcG0gnM)3{#gIk zX#Oks$BD(5(0h4U+2QZG-Q6}e(@_x1>-e|WXy?Xi)x7}LG-jo2E&~91AVTRPhBrC@ zcde$O7xqUdqWL~}?0X4aYnvzC<7X^%miAiG{ff(RWb}jG4^L{N*v6grXB@7>j?h-< zPLn;d70kDl&T^Nic%RUb)KrS6n7QMoBcXPjXD7O71i$U?|Bh(Y*31}ppQ*A?{$yEe zV3W0@?KnKB7xHU*&FO^Q@7Nbv;2Qu(ACR_Z7iT)(Iu3>e9PQ;W^+-?u9BUJ&91e*y z(9ouIHM5jxDyTH5bdaieAUR-o@=S+<{biuQoorTs%-v2&MicwK{DWKIJm|4^zE4?Z z*#~SMTD2BW|LMfV2#^5CB&OcYG&AU$Jq-}*oR!={7gc7G-}3#zkfJ|NCm_iQ*XB|g zQ1@nYaEfdv9>2y-wW>DSj4doUu^{KN{|4mvFQ=XR@LRvP^Yywr#F^~E_~|~msz*^} z+?T8tmI|WbZg`{4XDQ1`2v-Fh_^~`HlTErI9Z2<hQl6;G0Ki25>-xn=r*VJ+A?mBkwM7>z87^#^0j13yKl&Wk>z#x9>;u^}cl1t4RQi zti6EbGWw8sSV#MDWbD6){{8ul#`)exB;q}B=AS14>~jQ_Iu`WuY5YW+CPOA&kxM%_3VTO{Id^J( z9$wX;ump3(xI117xKoEm{XrUw^J#}rj(n1VVGZ&U!;VZ7(ePST^YuiqrC2Eb2lGs+ z*SC%bsMsh61}`cLv?!G)3+cY~0QzMP+qcoo> z2tk{L-|qeTonWHg`dBj4U~6nUS6rgZ8vJsRVtZ?oFCpyQzt@;J;nm+BB<@t*V977Q5H0G1(`-6ro@V1z5a^D+PcQ2|6&GC1!TUzSuuYOtx>3_f;4jzb{3M zm;`y?HUI!K<2b75L5$7B7082Z3+M; z4lf&Km|Xg9dIhiRbrEFIxm_RBLKH_|n$?}pI$%ioZgVlcJr_6| zWHbhpKbghe?1vyuNP<}F757lBZZ+7JdWyn&rt1GpCp+4H0?M7!eu$>FwELP!drS2%dc?>iW z?inNMrtWX69!FStIi;3$x>+%nZa$J-w}BF3K>bp4t9TOTog?;tfW~``K|oBz%#K%4 zrFIqe#ZRnyTGai~9h=+jR7tmpsfC!p%=BGzvPtf|+P!&v1FCI8p$2*{&xWPckh5II zP2Z}hhN4-bBGsdoIxD5p0ZUz`l=!*Aih5itRM{3Agb4M%Gx3K1yy{zB}HufMZ( z=k$8XQ}o;uTyo>Ig`2*`UFcdWT!~8UUpTKOwbnR=+i&cHW0Fm6g(aLU^$BIXJE)fG z4P_AE-hij}GkL4(o;eOXR2yvArVTD|M%v$5Z!0M&FJ-QwGIu!vX2F&3ua-$&G^P!a zq?N2GZdhinrwdrMUY0p-#IJ}Ds_HFpSI5`+S6}TC=nu*y5^@J3il2}6Bdva)9XIP% zw6=aQ>wry)M5eR3d=R8sY;R}zN(IYCI~;9U2zq3w&zWxKji3uofKqkUi*Puc#U_`GA#h3wx#ivL&`i}dBuLsAVvyhyT9yka2gr7zh+%^ z+P89o$vWt^^qa@}D-gfd-yd@j=$AGB;tq0QPE^)-42as|`98=it4Gfcq6hkY+b(P{ z=Gb)~mnR$dU|HGm%IC9?ax~-Kk?Fa-!hR5(SOXFou;LhQo~?JR{VC8IkZ>tTr7GR29pN9H z@fSmMOEK{WDWLn*^NiPUpw6}EXDL}p9s$As{FwhaBCx(3aEk%GORD_%IR3eu7`~{zl1}2 z9cIAVuC7v_#|1ek2~z@AQ~-1Hnh!4|!Ei0Yz;*(+a#L+@zV88U!P{%Kr1SzaSA{tw z)U8eU`-2Kt^!k(%lJ($%>)zlw<`90>MnNN-oot3*~5kABCeP)YX2!xJUd zgr+iJ`#U6kEjLr^_%@~!x=5uh^^W2lKzx`^F{lyodp<_R90K z@aY$r)z9HNr&Yhq0~8`-pJ?PM=~`Vv8jDyV!lCdxnZ~ZBimk%13<|e~wecvZXIKc- zUlKPQH^K$;rg~2`exJ0t$6`noYyboVpU)9YF@z20coXRKb;@zaMf6Jan*S0c$V_^& zrTv3hd*ayrQ(jFkZYRuAMd%3+Mcgf>QWvsR7HyFV2dN&1iu}59HL#4(n45ZsFO#4U zJ!f1gmCa2>;H2V@`TQ%iqT-d3&CH-W=IYa+g8$o$IyQSU*Dje6$`2*57^_5*J_mJ! z7_??S-^1Msxr~|{k1`&6QW2n5p{97mKqH7|$m{l1iwJQ}S%9*iLWlode2Tunc{N8? z{=RO+UTCOFSuPxfVkN;lz=BW1Kd_xpmx1~R--7Q1H>mL1!PwA=V)q$ZKfh-QQd_J8 zkkScRjGMsG=VW0i-M#bW-d=%{jeI*niprxhCStk)2rpVP7g}pBAp~XCsN(U&Eb5Xt z1qE7;vxXWcigWn4!S*OpHyr=;!086C2RK_?3}_z*b~+}EZ@oSF_qVxmChZ1vjx0Ey zKW{ki3^-|iAe3(p>~%YVvx)OLcHN3I8keD;D5_7OA%&sVR%qALQqD|p4;&5X*zVrx zkbw@wY3t$FS;~U}hz%4+bmheMxvioUCHvGi0eczsCL^jq%PXMXQ&z-Ef=JD{uH%Px zXskghDzZ3od4ObZ)KBW_IOxeYU0-JH$f|`b6bp~B@B1I`hU1Xw5sY0z z#<3M;@|}~#@{W|q@DGv$%KV3{?l8LgNX1_(1QV$2^OWae!*Xl`Ko;#iT8$(RAqjmt zHvP*}s}JVwD0C|V;@c7^thgXay(`$$1;8h;k}s`b=?#?YbKolwyqSXHjESVhb*8Rc z9-5CHR;R=aGosffj4BJ(n5Yq)ns+~)qw*uVU7D*``=GwpYQDXnKMzZ3&V%gkjfw0~ zJLkPO93q66vynI#WWyY_lLxisI{6LxEeLmoysx?sK5`BV1Qi4xSITJ#K!MDKE_OJt z{_Ymo&I#U5BXtx#g>~?@M49b?P_b zrnKSO%2<_h(;&519RCBzMWWEqi#FsewA#Ar60=a|uwarnNj&)l%&X`Db{h_sYk4s0 ztb32ltrbMQ`Z528BL!jNrf4hIN~yVFcJXZ zB?2rtIycpAo@K?nj$xg7w$#Je9*|~3_vtAo0REUfv|=6gDu78_U<>LL9*xIe2lS7Z zA8=pIRW4v`x?=(_Z{X2=S4N5d4rUJQJ@q>T8vLw4O#i%$fX6EIoHgTO046QJ{xEvS zK?O#8%NHwL8F6FjGDE8CKO+j=Q<)4L#}9k;Nv@zqC=h`URo{O#ArGKPaA~SX2FJAm zWq~k##@mEyQrz_q@C#vt-H*&4AI7uMGBkeK7H~2l0gtSKEu4wk(sh5A|6Yd~^wnhp z&Nc$I5_z`QaZ2QIb!RLJKxJToNex7=C+w12cL(TM8G-?aa3e2~I@E`|e(&p}+OF#W z%$_eB8Z^xZg(4I)p7_x&gYTX}>s1{|`N*=%D|jr!3j|m%%*1ZDg=%vN z%=tGyIruRbu;rvKCM6Gf0#UogA`B3@m2HAC<1LgOb#Qo4g|JNu^E^Ve1#`a31QrGWQhNZ&o+{r3B;0G~~ zDCsh|N=0f^?bf#fM?Tpe4|YzVN1V~%=DYCl|3AVb=2xEK9c@>S9S#ol@mDdv-u{?~ zR;s>&+r7t=rESJu7)OOb5}i?5bbJ6SMBy9AN?z(x$c@P1tLF_K2WB>e(vhV$*&PeO zIGL#Lj75PE>svdwz>WHw7CmUhm|9&Gp}RL>ftWI1#+?1h?;=ZFKGl`^{qVA zqE9IZW+Mm4XOM3gigt1e6w6QbdhJI);dYo5it_SZl+R0nl|@1w$r6R4NbcgOg0?s+ zA2-XoRmZn&C;0nW^|uF}@4`t5CUAYNowoCWM$?~854YbF-WGUpp^N3lVfLm!BU$nN zGQ(g#>f5)6_ruLhj$@=6w*wEWGa5yjBTpSxx*?>=^yKgK{+Y5_X{kU@xX(n{vQSd$ zqi_7RSevmo*$3qSibVG6G||Ktye;4)JcrNd?d|UDYerfcn$*O5=}{u-@)G3b^hP z1`Cd*#9^Etb-i}#aJMyDan^%EJ&xyp`yu;^I=b#9yp2#Chtg$EJFPv>UFjMf#g~c= z5C*pRx>Tq!dq1(YB2_bEBB|0s!p4ERVqL;u=6Hm8l#8h$kgfxJdLn7#Plyu8-pZh2 zGU4=@O|T)GEw0R|<^LM1=lkHHY`vZzLJpavy)Kae@P7J>JBb=Ks>m+z z+s7ZTp^6l{+vc7JeqMk;Y&}lv@i$9q1e>gdS@df+^ko}fy-mLj>NXu`ob56uLo$`i z=<9DR2ZI}-?j7jFd5#Ff#A%`R9ALYw>+p9wI4gkcbM1N-Uu8&CkheMtF{OZQ_q&!e zWL2wc4L1#@AZIjOjuJEzPF;AqMB3S4(NjoyQon`eq*Rk=u?Gl=m5pt8|JpZEMu+zz z|0tdP!`yzpgTg~eTF140(9FbR#v)4FvjcI-W~l**Q38VxkJoYM)~?&SEWT%*QKlPF zz+O!m{EevFIwpLZ{j;f6EdwW0C{N(R+?6yuQabIi&OB!W0BghS_g=b{gV3Rj70y5aJDs<(M>4>`?XeJyvCJy<%vBZ5Oe+V3f;VF z8RXGnIzA>|NrL}xoku8S>qvY`rL^F#eI!d}ZRK$xs4r)DqOTdSG~t)rgwys!L4 zO>fv$SiemYP0bj}{&+g-)~Q813~m|Gy7%MSxv_)fnD&pw2UVVyIypJaFZ>SxMI(wd zj2=o!OBv$TnG#U}0RavDD^` z@Aw&`sAhf7_{toWKL+wQ5=r-V1zq1YtSQShPP8DxIZ>t?1Dq5hO%s<%o7q3!6wRw} zEB~pbi?nu&=XuQXt(1*IRDfa<`~d{5clQ6g+N<%@Fm30l>Vb9KZlKd-_#w-{#DZ`9N>S-i>%UOrN_rOu{O1k?tI? z%GTeV%9*AIO^q*a#tl-uvgdSz!JIyyYi}b5MR&X`A2SbJRDr{5q$_VX*jWBe$l$8> zk9uVzn0#Lw39zA+(FP)DxSZOS9c&3;;rjXcHU~`8lxUyNSP z5DPtDh?ozZ@`VD=4A5>-ma4FCtnj)ni8?~urt-5F6YNi&Cj2R{*pGQOwEYEs@@G>XL-gD3l%Cb+ z*p4!n`xZ#n%s9?1QTotQxakWre0mXICH-RsxIvq?n9t=25F}0ODWT81(ZU$Kb~MYh z>UY;K(&mHLj~N9?c#;=o2HPxxOP|3m4zTw^W$2MrSAPeR1@F*7RH#e4$pc#HPbq8B z0prTrWFVrzAMb~1pW7}(_B+|W?m8|Neh_K$@#);T(P7ig>b^6oR*E%MKPkDWCMAVV zblaRYG}LI|u-Fj0`!L6~;&FBFmmy$VY6BYdAZ?OsAxy%0NZzDpHVD|m5fMcH<$eW!XWk1Dt;h1Q$EAV{04(ro zfc4Y0L;L>)84Kq0{#_oAO)RZ`nr**PB_yt|t-9Z;S}hj3Szgw?_aCTfaOxjtGRZ27 zXJ-o=U_R}ol#&Tk@&Flr=q|Uzo=lsWf|galT%3{=0Hpm+ zaZ1;A)w?(8Wov1D-o9_pA2yAl5LFXCzvf}GeO-9-XY~0!~Q*kp}&4Ia?w%Gs*yHqb+lE-gB zO7Z2gS}SR1ySDrFOY+x52{i87P5G{t-@czd`WNo4R_@wsX&IGfLZ#P|xI7V_F}MK0 z@)dsgN`uU3GU~zhI^PAIb679@?~7%$U>^eAhLmwN#ue61PV)*>8stQt**;w zZMC+KugzV%rEMC$*M5&=`}F-9A{tynP<=>AFPzbY5pG{C4#kX|;IjgwAxXeuTL*xz zy|Ir`w`*x0LrlA6ypH10qJjq70|;h~n+{cXGkmR-0sc^V^O%41e1}0oU`|Nd33h+*7~%z-+#xt+M9P*-%Gs}^p5Y#T`$1Ds=dyzJnpV|@X4J4*jU5gr#!&B!D)*Vbu&ZuZXZk-10QgcchPM+YH+JwYdqLC6eXYrFHQEt=WNZFZ8= zc@q+TLfh4V+qZVr!BTUaoZtyH87}RuB%ay>G^pqT7-en?C}LG`aszTQ4>>s;RNgj~ zucP<9e*U+&OYP((%-Z>HcczkV(fwLbctuy1(44@3;Ig-QM21cpMr_tBpo0>o_g!Tgf{=J6omQ*F}95*L#ir&V_Xc)P$3Htro!^N0y^t zM)YE(26prF62KgcI{L;vLIZCkl18P{UD2@Jk&w9u^N)|Rg%t12lC6p{r-2PC3xC+K)wspO2( z_iX!LUH8-Vw~*GYHr=k3wC2;5_wu`2@20wHM!r;WM;JR}R7J~fJ5fLcwhnk5aC7UL z%G317^wT+w=8>)+aWZW?RauAtuTzF%&Tvl$12{L~^UQHG!zg!+9n?i20m_2FWkDc) z-1RudJ#)0{yZfiR7gp^O#V|-Q1jt!_aKVd{yo?~o0OgMy;1`aca{NEwZ>W{i@^1Im z_R`;d(tTdNN8D-AU0vGUyt6CXfwdLBM#C3Uc_n^gLv8!&0-iC6?(HMKw|hw$(InbS zrZ)nN8G4)%k@EsNV+^N}TI%BZ8~ZDGtt5L{%9*7$^FA`f5R4QkD5EE@C!8tfO+stS zds$|;wvt&P$F%Qo;OtT96qF-TEV7r|!1$t*|XzyJ?m0-9D@WHvI~O&pTDT%53wsR{!Y7{JRN z$L}}IkEzZ3ad9QBywgD}Z!9SzfefkxkTL?Y=K~;hByQ?Y6`5gos9a5Uw>E7IaX1i> zZz>WCI3d}-Rw@-qATDx97~m_%-T5Wt-L!h|s^9Y^`8z9U?Q8rt?bloWh?4V7it^^x z<)w9NW5O-~d^YjV@SWHUKw`=iae=nQ<(ghWHM_IMCBWXe-lbVs92^1;(U3qTaxxDh zrRCN9H+C@F+DP$SF!Q7~@~{JVR|v{DAy|@m>bcJ#&wVBBy{yw)+s!1X6e6@Tumzk9 zl~w8k5-?YuNx;P%(0tu{{H^|W*3SC*jVUW%M6J8&qx-GW>1@kZR>^B^4XkWgAW{{a zDJ)r;$!;(KVnzTMQav(h+Gx>3s7rLW5;?hYO0uX_-zv!1B%Q<&g(n+SF*zg=YQgU& zw1RtxBuQmfXGDTzLIbt{47nLl8|5So*awW%8g0(AbE!#c`h4aTxQ$>7XL23!aELO+ wNNwobvZHY)3O-{=$}J~*MRoGh`+0YE-@Vg!yLvRVvP*W>k4~?Ct9R%B**Gn(SO5S3 diff --git a/Isolate.xcodeproj/project.pbxproj b/Isolate.xcodeproj/project.pbxproj index 6f60428..dc9156f 100644 --- a/Isolate.xcodeproj/project.pbxproj +++ b/Isolate.xcodeproj/project.pbxproj @@ -23,6 +23,7 @@ 6CBEC0DDE108EA06515F8B93 /* AudioEngineManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = F162949F185EF2FA9835DE2C /* AudioEngineManager.swift */; }; 6E2D4D823F3A717CBBB8088D /* ImportSeparationRegressionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C2EBC811F849DA5036CFC1B /* ImportSeparationRegressionTests.swift */; }; 724C0E0BA859FFBA0CB4212E /* ShellFixTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 09046DA9C244F85B332F5756 /* ShellFixTests.swift */; }; + 7482AE6E5AF793D0C1211EB7 /* PerfFixTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5E5A0B54BC270C469A336E6F /* PerfFixTests.swift */; }; 792E9F6C4E56359D456DDA0F /* MenuBarManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4CF938C23122BA151FB3DFCE /* MenuBarManager.swift */; }; 81071D25E7CBF4FDD195C50F /* WindowSizingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E53390C1141BAFC60BD554E9 /* WindowSizingTests.swift */; }; 8795659D14EB49E0487CF201 /* PlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59B0F1BF366285DF7ED96856 /* PlayerView.swift */; }; @@ -35,6 +36,7 @@ A58E8B618E774A7BB42E88EB /* StreamingAudio.swift in Sources */ = {isa = PBXBuildFile; fileRef = 80C4F1BEA2CBC91B8FB4637C /* StreamingAudio.swift */; }; A835E32888406F90B405C409 /* ThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00E25FF2F9713A5963BB3BD4 /* ThemeManager.swift */; }; AFEB288E772C93176F922D29 /* UIFixTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D721629222D7EC4EFE4580D2 /* UIFixTests.swift */; }; + B4B2686CB28F09D6CD78E8D8 /* SuiteHardeningTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87C57BDBBA1E4730D9A3DBEA /* SuiteHardeningTests.swift */; }; BD13B32036CBA957B6A8FB50 /* NowPlayingManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A696B7978AB11ACA46D7592E /* NowPlayingManager.swift */; }; BF1A95B3725BFC8C84B3AA92 /* DemucsEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53FFF484DB9B227FEA9BFA72 /* DemucsEngine.swift */; }; CCA10CCFD58840F597E21121 /* IsolateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B54412E9E3F71B00BF34FB0 /* IsolateTests.swift */; }; @@ -43,6 +45,8 @@ F0F7BC284EA97E34B007342C /* FFTAnalyzer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 49A8F54BCDFECE3713F6E918 /* FFTAnalyzer.swift */; }; F26A92AD18BE6E579AC5EC40 /* Haptics.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7C71DE2440945DF04ED48AA /* Haptics.swift */; }; F27D574EC6856B022932FB9D /* AppIcon.icns in Resources */ = {isa = PBXBuildFile; fileRef = 7BEEC1EF4DD1E71AAEA9F300 /* AppIcon.icns */; }; + F8064489140C6F4984AC86AF /* HardeningModelTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 715F9102B1C7078BEEF841DA /* HardeningModelTests.swift */; }; + FB955598DE92CA5F0B6C9E17 /* HardeningSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = 52F3D53A092043D43C33C7C2 /* HardeningSupport.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -74,12 +78,16 @@ 49A8F54BCDFECE3713F6E918 /* FFTAnalyzer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FFTAnalyzer.swift; sourceTree = ""; }; 4CF938C23122BA151FB3DFCE /* MenuBarManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuBarManager.swift; sourceTree = ""; }; 4F482B1CF7D3861CF9CB7BE9 /* FaderScale.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FaderScale.swift; sourceTree = ""; }; + 52F3D53A092043D43C33C7C2 /* HardeningSupport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HardeningSupport.swift; sourceTree = ""; }; 53FFF484DB9B227FEA9BFA72 /* DemucsEngine.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DemucsEngine.swift; sourceTree = ""; }; 59B0F1BF366285DF7ED96856 /* PlayerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlayerView.swift; sourceTree = ""; }; + 5E5A0B54BC270C469A336E6F /* PerfFixTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PerfFixTests.swift; sourceTree = ""; }; 65D4E52007621CC6578509E0 /* DotGothic16-Regular.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "DotGothic16-Regular.ttf"; sourceTree = ""; }; + 715F9102B1C7078BEEF841DA /* HardeningModelTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HardeningModelTests.swift; sourceTree = ""; }; 7BEEC1EF4DD1E71AAEA9F300 /* AppIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon.icns; sourceTree = ""; }; 80C4F1BEA2CBC91B8FB4637C /* StreamingAudio.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StreamingAudio.swift; sourceTree = ""; }; 825F29C7C08E71499FA30D2B /* DotGothic16-LICENSE.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "DotGothic16-LICENSE.txt"; sourceTree = ""; }; + 87C57BDBBA1E4730D9A3DBEA /* SuiteHardeningTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SuiteHardeningTests.swift; sourceTree = ""; }; 8CEABFC996FE6B255FC50AD8 /* IsolateTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = IsolateTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 9735698E807C603F5A017AF1 /* Demucs-LICENSE.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "Demucs-LICENSE.txt"; sourceTree = ""; }; 9B54412E9E3F71B00BF34FB0 /* IsolateTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IsolateTests.swift; sourceTree = ""; }; @@ -185,11 +193,15 @@ children = ( 1A4285D899C4A5EEEC9EC719 /* EngineFixTests.swift */, B1AE7FC2C60C05B9AB636C6F /* ExporterFixTests.swift */, + 715F9102B1C7078BEEF841DA /* HardeningModelTests.swift */, + 52F3D53A092043D43C33C7C2 /* HardeningSupport.swift */, 3C2EBC811F849DA5036CFC1B /* ImportSeparationRegressionTests.swift */, 9B54412E9E3F71B00BF34FB0 /* IsolateTests.swift */, + 5E5A0B54BC270C469A336E6F /* PerfFixTests.swift */, B807A91D83D445402D9CAF99 /* ProductionRegressionTests.swift */, 2C2C50DD1D3E61F3C453C02B /* SeparationFixTests.swift */, 09046DA9C244F85B332F5756 /* ShellFixTests.swift */, + 87C57BDBBA1E4730D9A3DBEA /* SuiteHardeningTests.swift */, D721629222D7EC4EFE4580D2 /* UIFixTests.swift */, E53390C1141BAFC60BD554E9 /* WindowSizingTests.swift */, ); @@ -358,11 +370,15 @@ files = ( 96CEBDABD970A3C881DD01E9 /* EngineFixTests.swift in Sources */, DB4F240607006163A014D28D /* ExporterFixTests.swift in Sources */, + F8064489140C6F4984AC86AF /* HardeningModelTests.swift in Sources */, + FB955598DE92CA5F0B6C9E17 /* HardeningSupport.swift in Sources */, 6E2D4D823F3A717CBBB8088D /* ImportSeparationRegressionTests.swift in Sources */, CCA10CCFD58840F597E21121 /* IsolateTests.swift in Sources */, + 7482AE6E5AF793D0C1211EB7 /* PerfFixTests.swift in Sources */, 161B67E13457763752062DE1 /* ProductionRegressionTests.swift in Sources */, 1419844DB45A5A83122232D3 /* SeparationFixTests.swift in Sources */, 724C0E0BA859FFBA0CB4212E /* ShellFixTests.swift in Sources */, + B4B2686CB28F09D6CD78E8D8 /* SuiteHardeningTests.swift in Sources */, AFEB288E772C93176F922D29 /* UIFixTests.swift in Sources */, 81071D25E7CBF4FDD195C50F /* WindowSizingTests.swift in Sources */, ); diff --git a/README.md b/README.md index c503c74..cdaf109 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Isolate is a native macOS stem player for Apple silicon. It runs HTDemucs, the o - The Isolate window: four channel strips for vocals, drums, bass and other, with the studio display above them and the playback controls below + The Isolate window: the library sidebar on the left, four channel strips for vocals, drums, bass and other, the studio display with a 32-band spectrum above them, and the playback controls below **[Download Isolate for macOS](https://github.com/neokumar1/Isolate/releases/latest)** · Apple silicon · macOS 14 or later · Free and open source (MIT) @@ -60,6 +60,8 @@ If you open Isolate straight from the disk image, it offers to move itself into - While a song separates, Isolate shows the file name, chunk count, time remaining and measured speed. You can cancel one song or a whole batch, and if you allow notifications, Isolate tells you when an import finishes while it is in the background. - Separated songs are cached by their audio content. Importing the same audio again, even from a different folder, reuses its stems instead of separating it again. +Separation in progress: a large percentage, the file name, the current stage and a Cancel Import button + **Mix** - Four channel strips, each with a fader from −60 to +6 dB (the bottom is silence), mute, solo, stereo pan and a live meter. diff --git a/Sources/Resources/AppIcon.icns b/Sources/Resources/AppIcon.icns index 389aa54d53ed2c5c8bc03ea84d79efdbda8e917a..72d3896767f02ae97fb6b2a69f2325e82124a42f 100644 GIT binary patch delta 20100 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 Y`d4(m3-c^)rFYuCd|e;?f?@^zAK|M2eE Date: Fri, 25 Sep 2026 22:16:13 -0500 Subject: [PATCH 64/89] fix: keep stems aligned and mixes on time on macOS 15 - Size the synchronized start from the measured play(at:) calls instead of only the reported IO buffer, allow a fourth attempt, and record a start report for diagnostics. CI on macOS 15 started stems out of sync after a seek. - Resume from the exact paused frame when the players must restart, instead of jumping back to the last seek position. - Measure the peak limiter's look-ahead with an impulse: macOS 15 reports no latency before rendering, which delayed limited mixes by 88 frames and cut their endings. - Split a test expression that Xcode 26 could not type-check. Co-Authored-By: Claude Opus 5.5 --- Sources/App/AudioEngineManager.swift | 54 +++++++++++++++++++---- Sources/App/AudioExporter.swift | 52 +++++++++++++++++++--- Tests/IsolateTests/EngineFixTests.swift | 5 ++- Tests/IsolateTests/ExporterFixTests.swift | 9 ++++ Tests/IsolateTests/IsolateTests.swift | 8 +++- 5 files changed, 113 insertions(+), 15 deletions(-) diff --git a/Sources/App/AudioEngineManager.swift b/Sources/App/AudioEngineManager.swift index dc81a09..118b8ac 100644 --- a/Sources/App/AudioEngineManager.swift +++ b/Sources/App/AudioEngineManager.swift @@ -1506,6 +1506,7 @@ public final class AudioEngineManager { private func stopPlayers() { // Invalidate callbacks before stop() invokes outstanding completions. playbackSessionID = UUID() + pausedFrame = nil vocalPlayer.stop() drumPlayer.stop() bassPlayer.stop() @@ -1522,6 +1523,14 @@ public final class AudioEngineManager { guard fileVocals != nil else { return } // Players left running by pausePlayback() resume together with the engine. let resumesPausedPlayers = vocalPlayer.isPlaying + if !resumesPausedPlayers, let frame = pausedFrame, let vocals = fileVocals, frame < vocals.length { + // The pause did not keep the players armed: restart all five from where it stopped. + stopPlayers() + timePitchNode.reset() + seekFrameOffset = frame + schedulePlayers(from: frame) + } + pausedFrame = nil if !engine.isRunning { do { try engine.start() @@ -1537,26 +1546,43 @@ public final class AudioEngineManager { NowPlayingManager.shared.updateNowPlayingPlaybackState() } + /// How the most recent synchronized start went; read by tests and useful in bug reports. + struct StartReport: Sendable { + var attempts: Int + var lead: TimeInterval + var callDuration: TimeInterval + var startedTogether: Bool + } + private(set) var lastStartReport: StartReport? + /// play(at:) waits for about one output IO cycle per player, and a player whose start /// time has already passed begins on a later cycle than the others. Lead by the whole /// call sequence plus the render-ahead margin; if the calls still overran it, reschedule - /// from the same frame and retry with a longer lead. + /// from the same frame and retry with a lead sized from the measured calls. Some devices + /// report a smaller IO buffer than they render with, so the measurement wins. private func startPlayersTogether() { var players = [vocalPlayer, drumPlayer, bassPlayer, otherPlayer] if audioFile != nil { players.append(originalPlayer) } - let cycle = outputCycleDuration() - let margin = 4 * cycle + engine.outputNode.presentationLatency + 0.005 + var cycle = outputCycleDuration() + var margin = 4 * cycle + engine.outputNode.presentationLatency + 0.005 var lead = Double(players.count + 1) * cycle + margin - for attempt in 1...3 { - let startHostTime = mach_absolute_time() + AVAudioTime.hostTime(forSeconds: lead) + let attempts = 4 + for attempt in 1...attempts { + let issued = mach_absolute_time() + let startHostTime = issued + AVAudioTime.hostTime(forSeconds: lead) let startTime = AVAudioTime(hostTime: startHostTime) for player in players { player.play(at: startTime) } - let startedTogether = mach_absolute_time() + AVAudioTime.hostTime(forSeconds: margin) <= startHostTime - guard !startedTogether, attempt < 3 else { return } + let finished = mach_absolute_time() + let took = AVAudioTime.seconds(forHostTime: finished - issued) + cycle = max(cycle, took / Double(players.count)) + margin = 4 * cycle + engine.outputNode.presentationLatency + 0.005 + let startedTogether = finished + AVAudioTime.hostTime(forSeconds: margin) <= startHostTime + lastStartReport = StartReport(attempts: attempt, lead: lead, callDuration: took, startedTogether: startedTogether) + guard !startedTogether, attempt < attempts else { return } stopPlayers() timePitchNode.reset() schedulePlayers(from: seekFrameOffset) - lead *= 2 + lead = min(2, max(lead * 2, took * 1.5 + margin)) } } @@ -1575,6 +1601,7 @@ public final class AudioEngineManager { /// keeps buffered tails for a seamless resume, and releases the output device so the Mac /// can idle-sleep. playSynced() restarts the engine to resume. private func pausePlayback() { + pausedFrame = currentPlaybackFrame() engine.pause() playbackClock.timer?.invalidate() isPlaying = false @@ -1584,6 +1611,17 @@ public final class AudioEngineManager { /// Engine state for tests; false while paused or stopped. var isOutputRunning: Bool { engine.isRunning } + + /// Where a pause stopped, so a resume that has to restart the players continues there + /// rather than at the last seek. Cleared whenever the players are stopped or rescheduled. + @ObservationIgnored private var pausedFrame: AVAudioFramePosition? + + private func currentPlaybackFrame() -> AVAudioFramePosition? { + guard let vocals = fileVocals, let nodeTime = vocalPlayer.lastRenderTime, + let playerTime = vocalPlayer.playerTime(forNodeTime: nodeTime) else { return nil } + let frame = seekFrameOffset + playerTime.sampleTime + return min(max(0, frame), vocals.length) + } @MainActor public func togglePlayback() { diff --git a/Sources/App/AudioExporter.swift b/Sources/App/AudioExporter.swift index 5b3a814..e406ab3 100644 --- a/Sources/App/AudioExporter.swift +++ b/Sources/App/AudioExporter.swift @@ -61,6 +61,51 @@ enum AudioExporter { rate: rate, pitch: pitch, limitPeak: limitPeak) { progress?($0) } } + private static func makePeakLimiter() -> AVAudioUnitEffect { + AVAudioUnitEffect(audioComponentDescription: AudioComponentDescription( + componentType: kAudioUnitType_Effect, componentSubType: kAudioUnitSubType_PeakLimiter, + componentManufacturer: kAudioUnitManufacturer_Apple, componentFlags: 0, componentFlagsMask: 0)) + } + + /// The peak limiter's look-ahead delay in frames. `AVAudioNode.latency` reads 0 on + /// macOS 15 before rendering starts, so measure it once with an impulse instead. + static let peakLimiterDelay: AVAudioFramePosition = measurePeakLimiterDelay() ?? 0 + + static func measurePeakLimiterDelay() -> AVAudioFramePosition? { + final class Impulse: @unchecked Sendable { var pending = true } + let format = StreamingAudio.format + let engine = AVAudioEngine() + let impulse = Impulse() + let source = AVAudioSourceNode(format: format) { _, _, frameCount, bufferList in + for buffer in UnsafeMutableAudioBufferListPointer(bufferList) { + guard let data = buffer.mData?.assumingMemoryBound(to: Float.self) else { continue } + data.update(repeating: 0, count: Int(frameCount)) + if impulse.pending, frameCount > 0 { data[0] = 0.5 } + } + impulse.pending = false + return noErr + } + let limiter = makePeakLimiter() + engine.attach(source) + engine.attach(limiter) + engine.connect(source, to: limiter, format: format) + engine.connect(limiter, to: engine.mainMixerNode, format: format) + guard let buffer = AVAudioPCMBuffer(pcmFormat: format, frameCapacity: 4096), + (try? engine.enableManualRenderingMode(.offline, format: format, maximumFrameCount: 4096)) != nil, + (try? engine.start()) != nil else { return nil } + defer { engine.stop() } + var position: AVAudioFramePosition = 0 + while position < 8192 { + guard (try? engine.renderOffline(4096, to: buffer)) == .success, + let left = buffer.floatChannelData?[0] else { return nil } + for index in 0.. 0.05 { + return position + AVAudioFramePosition(index) + } + position += AVAudioFramePosition(buffer.frameLength) + } + return nil + } + /// Returns the largest sample magnitude written, measured before any fixed-point conversion. private static func renderMeasured(sources: [Source], to destination: URL, settings: [String: Any], masterEQ: EQ, rate: Float, pitch: Float, limitPeak: Bool, @@ -103,15 +148,12 @@ enum AudioExporter { engine.connect(timePitch, to: eq, format: audioFormat) var latency: AVAudioFramePosition = 0 if limitPeak { - let limiter = AVAudioUnitEffect(audioComponentDescription: AudioComponentDescription( - componentType: kAudioUnitType_Effect, componentSubType: kAudioUnitSubType_PeakLimiter, - componentManufacturer: kAudioUnitManufacturer_Apple, componentFlags: 0, componentFlagsMask: 0)) + let limiter = makePeakLimiter() engine.attach(limiter) engine.connect(eq, to: limiter, format: audioFormat) engine.connect(limiter, to: engine.mainMixerNode, format: audioFormat) // Drop the limiter's look-ahead so the mix stays aligned with the source and keeps its ending. - let frames = limiter.latency * audioFormat.sampleRate - latency = frames.isFinite ? AVAudioFramePosition(min(max(frames, 0), 4096).rounded()) : 0 + latency = peakLimiterDelay } else { engine.connect(eq, to: engine.mainMixerNode, format: audioFormat) } diff --git a/Tests/IsolateTests/EngineFixTests.swift b/Tests/IsolateTests/EngineFixTests.swift index 021a253..be49e8f 100644 --- a/Tests/IsolateTests/EngineFixTests.swift +++ b/Tests/IsolateTests/EngineFixTests.swift @@ -73,7 +73,10 @@ final class EngineFixTests: XCTestCase { XCTAssertGreaterThan(peak, 0.05, "\(label): stem \(index) did not play", file: file, line: line) } // The waveform floor is 0.05; any inter-stem offset leaves uncancelled noise far above it. - XCTAssertLessThan(reading.master, 0.06, "\(label): stems started out of sync", file: file, line: line) + let report = engine.lastStartReport.map { + "attempts \($0.attempts), lead \(String(format: "%.3f", $0.lead)) s, calls \(String(format: "%.3f", $0.callDuration)) s, together \($0.startedTogether)" + } ?? "no start report" + XCTAssertLessThan(reading.master, 0.06, "\(label): stems started out of sync (\(report))", file: file, line: line) } func testStemsStaySampleAlignedAcrossStartSeekAndPauseResume() async throws { diff --git a/Tests/IsolateTests/ExporterFixTests.swift b/Tests/IsolateTests/ExporterFixTests.swift index f0dcdba..c2f320e 100644 --- a/Tests/IsolateTests/ExporterFixTests.swift +++ b/Tests/IsolateTests/ExporterFixTests.swift @@ -360,4 +360,13 @@ final class ExporterFixTests: XCTestCase { XCTAssertNil(name.rangeOfCharacter(from: CharacterSet(charactersIn: "/:\\?*\"<>|")), name) } } + + func testPeakLimiterDelayIsMeasuredRatherThanReported() { + // macOS 15 reports no latency before rendering, which shifted limited mixes by 88 frames. + let measured = AudioExporter.measurePeakLimiterDelay() + XCTAssertNotNil(measured, "The limiter probe must render") + XCTAssertGreaterThan(measured ?? 0, 0, "Apple's peak limiter always looks ahead") + XCTAssertLessThan(measured ?? 4096, 4096) + XCTAssertEqual(AudioExporter.peakLimiterDelay, measured) + } } diff --git a/Tests/IsolateTests/IsolateTests.swift b/Tests/IsolateTests/IsolateTests.swift index 27029bc..4f12173 100644 --- a/Tests/IsolateTests/IsolateTests.swift +++ b/Tests/IsolateTests/IsolateTests.swift @@ -20,7 +20,13 @@ final class IsolateTests: XCTestCase { let hopSize = DemucsEngine.hopSize let mean: Float = 0.05 let deviation: Float = 0.2 - let signal = (0..<(chunkSize + hopSize)).map { Float(0.3 * sin(Double($0) * 0.0123) + 0.1 * sin(Double($0) * 0.00071)) + mean } + // Explicit types keep this within older compilers' type-checking limits. + let signal: [Float] = (0..<(chunkSize + hopSize)).map { (index: Int) -> Float in + let t = Double(index) + let fast: Double = 0.3 * sin(t * 0.0123) + let slow: Double = 0.1 * sin(t * 0.00071) + return Float(fast + slow) + mean + } var window = [Float](repeating: 0, count: chunkSize) vDSP_hann_window(&window, vDSP_Length(chunkSize), Int32(vDSP_HANN_DENORM)) // Contiguous Float32, and Float16 stored time-major so accumulate() must follow the strides. From 018d00c7e10b06415e430142461fbc4e6cf50a71 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 22:30:41 -0500 Subject: [PATCH 65/89] fix(audio): start stems on one render-timeline frame A host-time play(at:) blocked the main thread for about one IO cycle per player and, measured on a real Mac, still started roughly one seek in five out of sync even when every call finished before the start time. Start from a sample time in the players' own render timeline instead: the calls return immediately and all players land on the same frame. The first start after the engine launches waits briefly for a render timestamp and otherwise keeps the host-time path. The regression test now seeks six times. Co-Authored-By: Claude Opus 5.5 --- Sources/App/AudioEngineManager.swift | 28 +++++++++++++++++++------ Tests/IsolateTests/EngineFixTests.swift | 10 ++++++--- 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/Sources/App/AudioEngineManager.swift b/Sources/App/AudioEngineManager.swift index 118b8ac..40a34a5 100644 --- a/Sources/App/AudioEngineManager.swift +++ b/Sources/App/AudioEngineManager.swift @@ -1555,11 +1555,12 @@ public final class AudioEngineManager { } private(set) var lastStartReport: StartReport? - /// play(at:) waits for about one output IO cycle per player, and a player whose start - /// time has already passed begins on a later cycle than the others. Lead by the whole - /// call sequence plus the render-ahead margin; if the calls still overran it, reschedule - /// from the same frame and retry with a lead sized from the measured calls. Some devices - /// report a smaller IO buffer than they render with, so the measurement wins. + /// Starts all players on one frame of the engine's render timeline. A host-time start + /// makes each play(at:) wait about one IO cycle and, measured on a real Mac, still + /// misaligned about one seek in five; a sample-time start returns immediately and lands + /// every player on the same render frame. Before the engine has rendered once there is + /// no timeline yet, so the first start falls back to a host time with a lead that covers + /// the blocking calls, rescheduling and retrying with a measured lead if they overran it. private func startPlayersTogether() { var players = [vocalPlayer, drumPlayer, bassPlayer, otherPlayer] if audioFile != nil { players.append(originalPlayer) } @@ -1570,7 +1571,7 @@ public final class AudioEngineManager { for attempt in 1...attempts { let issued = mach_absolute_time() let startHostTime = issued + AVAudioTime.hostTime(forSeconds: lead) - let startTime = AVAudioTime(hostTime: startHostTime) + let startTime = renderTimelineStart(after: lead) ?? AVAudioTime(hostTime: startHostTime) for player in players { player.play(at: startTime) } let finished = mach_absolute_time() let took = AVAudioTime.seconds(forHostTime: finished - issued) @@ -1586,6 +1587,21 @@ public final class AudioEngineManager { } } + /// A start `lead` seconds ahead in the players' own render timeline (44.1 kHz), waiting + /// briefly for the first render after the engine starts. The output node runs at the + /// device rate, so its timeline must never be used for the players. + private func renderTimelineStart(after lead: TimeInterval) -> AVAudioTime? { + var now = vocalPlayer.lastRenderTime + let deadline = Date().addingTimeInterval(0.1) + while !(now?.isSampleTimeValid ?? false), engine.isRunning, Date() < deadline { + usleep(2_000) + now = vocalPlayer.lastRenderTime + } + guard let now, now.isSampleTimeValid, now.sampleRate > 0 else { return nil } + return AVAudioTime(sampleTime: now.sampleTime + AVAudioFramePosition((lead * now.sampleRate).rounded()), + atRate: now.sampleRate) + } + /// One output IO cycle, never taken as shorter than 512 frames. private func outputCycleDuration() -> TimeInterval { var frames: UInt32 = 0 diff --git a/Tests/IsolateTests/EngineFixTests.swift b/Tests/IsolateTests/EngineFixTests.swift index be49e8f..b85fac9 100644 --- a/Tests/IsolateTests/EngineFixTests.swift +++ b/Tests/IsolateTests/EngineFixTests.swift @@ -85,9 +85,13 @@ final class EngineFixTests: XCTestCase { try requirePlayback(engine) try await assertStemsAligned(engine, "autoplay") - engine.seek(toPercentage: 0.4) - XCTAssertTrue(engine.isPlaying) - try await assertStemsAligned(engine, "seek while playing") + // A host-time start misaligned about one seek in five on a real Mac, so one seek + // proves little: every one of these must land all players on the same frame. + for (index, position) in [0.4, 0.1, 0.6, 0.25, 0.75, 0.5].enumerated() { + engine.seek(toPercentage: position) + XCTAssertTrue(engine.isPlaying) + try await assertStemsAligned(engine, "seek \(index + 1) while playing") + } for cycle in 0..<4 { engine.togglePlayback() From c824ef2ddebaf123a7a7aadd8fede9753f32ae53 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 22:43:18 -0500 Subject: [PATCH 66/89] fix(separation): verify the model separates correctly before using it On hosted macOS 14 and 15, Core ML's CPU path computes this network incorrectly: the stems reconstruct a test signal at about 3 dB instead of 42 dB, the same for the shipped and an on-device compiled model. The GPU path on macOS 14 and every path on macOS 26 are correct. Each loaded model now separates a built-in signal and each compute path is tried in turn; if none reconstructs it, Isolate refuses with a message to update macOS instead of writing wrong stems. Inference tests skip where the engine refuses, a new test enforces 'verified or refused' on every host, and double-click tests skip where the host does not deliver synthetic clicks (macOS 26). Co-Authored-By: Claude Opus 5.5 --- Isolate.xcodeproj/project.pbxproj | 4 + Sources/App/DemucsEngine.swift | 99 +++++++++++++++++++-- Tests/IsolateTests/HardeningSupport.swift | 3 + Tests/IsolateTests/ModelSelfTestTests.swift | 36 ++++++++ Tests/IsolateTests/SeparationFixTests.swift | 3 + Tests/IsolateTests/UIFixTests.swift | 23 +++-- 6 files changed, 155 insertions(+), 13 deletions(-) create mode 100644 Tests/IsolateTests/ModelSelfTestTests.swift diff --git a/Isolate.xcodeproj/project.pbxproj b/Isolate.xcodeproj/project.pbxproj index dc9156f..d4a557e 100644 --- a/Isolate.xcodeproj/project.pbxproj +++ b/Isolate.xcodeproj/project.pbxproj @@ -37,6 +37,7 @@ A835E32888406F90B405C409 /* ThemeManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 00E25FF2F9713A5963BB3BD4 /* ThemeManager.swift */; }; AFEB288E772C93176F922D29 /* UIFixTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D721629222D7EC4EFE4580D2 /* UIFixTests.swift */; }; B4B2686CB28F09D6CD78E8D8 /* SuiteHardeningTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87C57BDBBA1E4730D9A3DBEA /* SuiteHardeningTests.swift */; }; + BA4FE14242EEF97C53744DA3 /* ModelSelfTestTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED9249DA0AFAB419C7252B18 /* ModelSelfTestTests.swift */; }; BD13B32036CBA957B6A8FB50 /* NowPlayingManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A696B7978AB11ACA46D7592E /* NowPlayingManager.swift */; }; BF1A95B3725BFC8C84B3AA92 /* DemucsEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53FFF484DB9B227FEA9BFA72 /* DemucsEngine.swift */; }; CCA10CCFD58840F597E21121 /* IsolateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B54412E9E3F71B00BF34FB0 /* IsolateTests.swift */; }; @@ -109,6 +110,7 @@ E51723840AA00CB3D59039A2 /* IsolateUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IsolateUITests.swift; sourceTree = ""; }; E53390C1141BAFC60BD554E9 /* WindowSizingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowSizingTests.swift; sourceTree = ""; }; EB48C41F9AED4EED81D5AECF /* IsolateUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = IsolateUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + ED9249DA0AFAB419C7252B18 /* ModelSelfTestTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModelSelfTestTests.swift; sourceTree = ""; }; F162949F185EF2FA9835DE2C /* AudioEngineManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioEngineManager.swift; sourceTree = ""; }; /* End PBXFileReference section */ @@ -197,6 +199,7 @@ 52F3D53A092043D43C33C7C2 /* HardeningSupport.swift */, 3C2EBC811F849DA5036CFC1B /* ImportSeparationRegressionTests.swift */, 9B54412E9E3F71B00BF34FB0 /* IsolateTests.swift */, + ED9249DA0AFAB419C7252B18 /* ModelSelfTestTests.swift */, 5E5A0B54BC270C469A336E6F /* PerfFixTests.swift */, B807A91D83D445402D9CAF99 /* ProductionRegressionTests.swift */, 2C2C50DD1D3E61F3C453C02B /* SeparationFixTests.swift */, @@ -374,6 +377,7 @@ FB955598DE92CA5F0B6C9E17 /* HardeningSupport.swift in Sources */, 6E2D4D823F3A717CBBB8088D /* ImportSeparationRegressionTests.swift in Sources */, CCA10CCFD58840F597E21121 /* IsolateTests.swift in Sources */, + BA4FE14242EEF97C53744DA3 /* ModelSelfTestTests.swift in Sources */, 7482AE6E5AF793D0C1211EB7 /* PerfFixTests.swift in Sources */, 161B67E13457763752062DE1 /* ProductionRegressionTests.swift in Sources */, 1419844DB45A5A83122232D3 /* SeparationFixTests.swift in Sources */, diff --git a/Sources/App/DemucsEngine.swift b/Sources/App/DemucsEngine.swift index 2f69472..44fdcd6 100644 --- a/Sources/App/DemucsEngine.swift +++ b/Sources/App/DemucsEngine.swift @@ -8,6 +8,8 @@ import os public enum DemucsError: LocalizedError, Sendable { case modelNotFound(String) case modelLoadFailed(String) + /// The model loads, but this macOS computes it incorrectly on every available path. + case modelIncompatibleWithSystem(String) case compilationFailed(String) case assetReaderFailed(String) case conversionFailed(String) @@ -21,6 +23,8 @@ public enum DemucsError: LocalizedError, Sendable { switch self { case .modelNotFound(let msg): return "CoreML Model Not Found: \(msg)" case .modelLoadFailed(let msg): return "Model Could Not Be Loaded: \(msg)" + case .modelIncompatibleWithSystem(let detail): + return "This version of macOS computes the separation model incorrectly on this Mac (\(detail)), so Isolate will not separate with it. Update to macOS 26 or later to separate songs." case .compilationFailed(let msg): return "Model Compilation Failed: \(msg)" case .assetReaderFailed(let msg): return "Audio Reading Failed: \(msg)" case .conversionFailed(let msg): return "Audio Conversion Failed: \(msg)" @@ -206,11 +210,11 @@ public actor DemucsEngine { // Try loading candidate pre-compiled models for url in unique(compiled) { do { - let config = MLModelConfiguration() - config.computeUnits = .all - let loaded = try MLModel(contentsOf: url, configuration: config) - try Self.validateModel(loaded) - return loaded + return try verifiedModel(at: url).model + } catch let error as DemucsError { + if case .modelIncompatibleWithSystem = error { throw error } + print("Failed to load CoreML model from \(url.path): \(error)") + failure = failure ?? loadFailure(url, error) } catch { print("Failed to load CoreML model from \(url.path): \(error)") failure = failure ?? loadFailure(url, error) @@ -224,15 +228,17 @@ public actor DemucsEngine { let temporary = try await MLModel.compileModel(at: pkgURL) defer { try? fileManager.removeItem(at: temporary) } let config = MLModelConfiguration() - config.computeUnits = .all - let loaded = try MLModel(contentsOf: temporary, configuration: config) - try Self.validateModel(loaded) + config.computeUnits = try verifiedModel(at: temporary).computeUnits if fileManager.fileExists(atPath: appSupportCompiledURL.path) { _ = try fileManager.replaceItemAt(appSupportCompiledURL, withItemAt: temporary) } else { try fileManager.moveItem(at: temporary, to: appSupportCompiledURL) } return try MLModel(contentsOf: appSupportCompiledURL, configuration: config) + } catch let error as DemucsError { + if case .modelIncompatibleWithSystem = error { throw error } + print("Failed to compile mlpackage from \(pkgURL.path): \(error)") + failure = failure ?? loadFailure(pkgURL, error) } catch { print("Failed to compile mlpackage from \(pkgURL.path): \(error)") failure = failure ?? loadFailure(pkgURL, error) @@ -246,6 +252,83 @@ public actor DemucsEngine { throw DemucsError.modelNotFound("Install the complete Isolate release, or follow MODEL.md to place HTDemucs.mlmodelc in ~/Library/Application Support/Isolate.") } + // MARK: - Model self-test + + /// Core ML's CPU implementation of an operation in this network is wrong on macOS 14 + /// and 15: measured on hosted Macs, the stems reconstruct a test signal at about 3 dB + /// instead of 42 dB, while the GPU path on macOS 14 and every path on macOS 26 are + /// correct. Which path runs on a real Mac depends on the OS and hardware, so every + /// loaded model separates a built-in signal first and each compute path is tried until + /// one reconstructs it. A model that fails everywhere is never used. + static let selfTestFloorDB = 20.0 + + static func verifiedModel(at url: URL) throws -> (model: MLModel, computeUnits: MLComputeUnits) { + var measured: [String] = [] + let paths: [(MLComputeUnits, String)] = [(.all, "all"), (.cpuAndGPU, "CPU and GPU"), + (.cpuAndNeuralEngine, "CPU and Neural Engine"), (.cpuOnly, "CPU")] + for (units, name) in paths { + let config = MLModelConfiguration() + config.computeUnits = units + let model = try MLModel(contentsOf: url, configuration: config) + try validateModel(model) + let quality = try selfTestReconstructionDB(model) + if quality >= selfTestFloorDB { return (model, units) } + print("Model self-test on \(name): \(String(format: "%.1f", quality)) dB") + measured.append("\(name) \(Int(quality.rounded())) dB") + } + throw DemucsError.modelIncompatibleWithSystem("self-test: " + measured.joined(separator: ", ")) + } + + /// Separates ten seconds of a bass, melody and kick mix and returns how closely the four + /// stems add back up to it, in dB. HTDemucs output sums to its input; a faulty compute + /// path does not. + static func selfTestReconstructionDB(_ model: MLModel) throws -> Double { + let n = chunkSize + let input = try MLMultiArray(shape: [1, 2, NSNumber(value: n)], dataType: .float32) + let samples = input.dataPointer.assumingMemoryBound(to: Float.self) + let melody: [Double] = [440, 494, 523, 587, 659, 587, 523, 494] + var sum = 0.0, squares = 0.0 + for i in 0.. [URL] { var seen = Set() diff --git a/Tests/IsolateTests/HardeningSupport.swift b/Tests/IsolateTests/HardeningSupport.swift index fd9d976..1a14033 100644 --- a/Tests/IsolateTests/HardeningSupport.swift +++ b/Tests/IsolateTests/HardeningSupport.swift @@ -83,6 +83,9 @@ enum Hardening { progress: @escaping @Sendable (SplitProgressInfo) -> Void = { _ in }) async throws -> [URL] { do { return try await DemucsEngine.shared.splitAudio(url: url, progressCallback: progress) + } catch DemucsError.modelIncompatibleWithSystem(let detail) { + // Isolate correctly refuses to separate here; see DemucsEngine.verifiedModel. + throw XCTSkip("Core ML on this macOS cannot run the model correctly: \(detail)") } catch DemucsError.modelNotFound(let message) { if ProcessInfo.processInfo.environment["ISOLATE_REQUIRE_MODEL"] == "1" { throw ModelRequired(description: "ISOLATE_REQUIRE_MODEL=1 but no model is installed: \(message)") diff --git a/Tests/IsolateTests/ModelSelfTestTests.swift b/Tests/IsolateTests/ModelSelfTestTests.swift new file mode 100644 index 0000000..71aa634 --- /dev/null +++ b/Tests/IsolateTests/ModelSelfTestTests.swift @@ -0,0 +1,36 @@ +import XCTest +import CoreML +@testable import Isolate + +/// Core ML computes this model incorrectly on some macOS versions and compute paths +/// (measured on hosted macOS 14 and 15). Whatever the host, the installed model must be +/// either verified to separate correctly or refused — never accepted with bad output. +final class ModelSelfTestTests: XCTestCase { + func testInstalledModelIsVerifiedOrRefused() throws { + let url = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask)[0] + .appending(path: "Isolate/HTDemucs.mlmodelc") + guard FileManager.default.fileExists(atPath: url.path) else { + if ProcessInfo.processInfo.environment["ISOLATE_REQUIRE_MODEL"] == "1" { + XCTFail("ISOLATE_REQUIRE_MODEL=1 but no model is installed at \(url.path)") + return + } + throw XCTSkip("Install the model to run the self-test.") + } + do { + let verified = try DemucsEngine.verifiedModel(at: url) + let quality = try DemucsEngine.selfTestReconstructionDB(verified.model) + XCTAssertGreaterThanOrEqual(quality, DemucsEngine.selfTestFloorDB) + print("Model verified with compute units \(verified.computeUnits.rawValue) at \(String(format: "%.1f", quality)) dB") + } catch DemucsError.modelIncompatibleWithSystem(let detail) { + // Refusing is the correct outcome where every compute path is wrong. + XCTAssertTrue(detail.hasPrefix("self-test:"), detail) + print("Model refused on this macOS: \(detail)") + } + } + + func testIncompatibilityMessageTellsPeopleWhatToDo() { + let message = DemucsError.modelIncompatibleWithSystem("self-test: CPU 3 dB").localizedDescription + XCTAssertTrue(message.contains("macOS 26"), message) + XCTAssertTrue(message.contains("CPU 3 dB"), message) + } +} diff --git a/Tests/IsolateTests/SeparationFixTests.swift b/Tests/IsolateTests/SeparationFixTests.swift index 5a399d4..bda6a11 100644 --- a/Tests/IsolateTests/SeparationFixTests.swift +++ b/Tests/IsolateTests/SeparationFixTests.swift @@ -135,6 +135,9 @@ final class SeparationFixTests: XCTestCase { private func split(_ url: URL, progress: @escaping @Sendable (SplitProgressInfo) -> Void = { _ in }) async throws -> [URL]? { do { return try await DemucsEngine.shared.splitAudio(url: url, progressCallback: progress) + } catch DemucsError.modelIncompatibleWithSystem(let detail) { + // Isolate correctly refuses to separate here; see DemucsEngine.verifiedModel. + throw XCTSkip("Core ML on this macOS cannot run the model correctly: \(detail)") } catch DemucsError.modelNotFound(let message) { if ProcessInfo.processInfo.environment["ISOLATE_REQUIRE_MODEL"] == "1" { XCTFail(message); return nil } throw XCTSkip("Install the model to run inference: \(message)") diff --git a/Tests/IsolateTests/UIFixTests.swift b/Tests/IsolateTests/UIFixTests.swift index 0881dd8..09e6bf1 100644 --- a/Tests/IsolateTests/UIFixTests.swift +++ b/Tests/IsolateTests/UIFixTests.swift @@ -55,7 +55,17 @@ final class UIFixTests: XCTestCase { } /// Posts a double-click straight to an offscreen window; the real pointer never moves. - private func doubleClick(_ view: V, size: CGSize, at point: CGPoint) { + /// macOS 26 does not deliver synthetic mouse events to a hosted view (a single click + /// on the pan bar leaves it untouched there, while macOS 15 and 27 move it). Probe once + /// so the double-click tests skip, rather than fail, where the harness cannot click. + private func requireSyntheticClicks() throws { + let pan = Box(0.6) + doubleClick(PanKnobView(pan: pan.binding, channelName: "PROBE"), + size: CGSize(width: 200, height: 40), at: CGPoint(x: 40, y: 26), clicks: 1) + try XCTSkipIf(pan.value == 0.6, "Synthetic mouse events do not reach hosted views on this macOS") + } + + private func doubleClick(_ view: V, size: CGSize, at point: CGPoint, clicks: Int = 2) { let host = NSHostingView(rootView: view.frame(width: size.width, height: size.height)) host.frame = NSRect(origin: .zero, size: size) let window = NSWindow(contentRect: NSRect(x: -20_000, y: -20_000, width: size.width, height: size.height), @@ -67,7 +77,7 @@ final class UIFixTests: XCTestCase { host.layoutSubtreeIfNeeded() RunLoop.main.run(until: Date().addingTimeInterval(0.2)) let location = host.convert(point, to: nil) - for clickCount in 1...2 { + for clickCount in 1...clicks { for type in [NSEvent.EventType.leftMouseDown, .leftMouseUp] { let event = NSEvent.mouseEvent(with: type, location: location, modifierFlags: [], timestamp: ProcessInfo.processInfo.systemUptime, @@ -299,21 +309,24 @@ final class UIFixTests: XCTestCase { // MARK: - ui-5: double-click resets - func testDoubleClickResetsPanBarToCenter() { + func testDoubleClickResetsPanBarToCenter() throws { + try requireSyntheticClicks() let pan = Box(0.6) doubleClick(PanKnobView(pan: pan.binding, channelName: "VOCALS"), size: CGSize(width: 200, height: 40), at: CGPoint(x: 40, y: 26)) XCTAssertEqual(pan.value, 0, "Double-clicking the pan bar must center it, not leave it at the click point") } - func testDoubleClickResetsEQKnobToFlat() { + func testDoubleClickResetsEQKnobToFlat() throws { + try requireSyntheticClicks() let gain = Box(6) doubleClick(RotaryEQKnobView(bandName: "MID", freqLabel: "1.0kHz", gain: gain.binding, channelName: "VOCALS"), size: CGSize(width: 80, height: 90), at: CGPoint(x: 40, y: 45)) XCTAssertEqual(gain.value, 0, "Double-clicking an EQ knob must reset it to 0 dB") } - func testDoubleClickResetsHUDEqualizerNode() { + func testDoubleClickResetsHUDEqualizerNode() throws { + try requireSyntheticClicks() let engine = AudioEngineManager() engine.setStemEQ(0, low: 6, mid: 0, high: 0) let size = CGSize(width: 400, height: 120) From ae34480c66924ae39674e945b772abb286871bad Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 22:44:44 -0500 Subject: [PATCH 67/89] docs: document the macOS 14/15 model check and render-timeline start - README, INSTALL and TROUBLESHOOTING explain that Core ML in macOS 14 and 15 computes the model incorrectly on some paths, that Isolate checks it first, and what to do if it refuses (update to macOS 26). - AUDIO_ENGINE and MODEL describe the sample-time start and self-test. - Add the opt-in real-music smoke test as a documented release gate. Co-Authored-By: Claude Opus 5.5 --- AUDIO_ENGINE.md | 2 +- CHANGELOG.md | 5 +- INSTALL.md | 2 +- Isolate.xcodeproj/project.pbxproj | 4 + MODEL.md | 2 +- README.md | 4 +- RELEASE.md | 10 +++ TROUBLESHOOTING.md | 4 + Tests/IsolateTests/RealMusicSmokeTests.swift | 82 ++++++++++++++++++++ 9 files changed, 110 insertions(+), 5 deletions(-) create mode 100644 Tests/IsolateTests/RealMusicSmokeTests.swift diff --git a/AUDIO_ENGINE.md b/AUDIO_ENGINE.md index c0b92c7..3c889a2 100644 --- a/AUDIO_ENGINE.md +++ b/AUDIO_ENGINE.md @@ -21,7 +21,7 @@ Other → EQ → gain/pan mixer ┘ Original ┘ The original and the stem sum meet before the shared effects path, so Compare Original plays under the same speed, pitch and master EQ. Compare Original mutes the stem sum. Each channel's audible gain comes from mute/solo state; solo wins when any solo is active. -Every start from a stopped state (play, seek, loop wrap, autoplay, restart at the end and resume after an output-device change) goes through one path that schedules all five players against the same host time. The lead is sized from the output device's IO buffer (`kAudioDevicePropertyBufferFrameSize`, floored at 512 frames): one cycle per player plus one, a margin of four cycles, the presentation latency and 5 ms. That is about 113 ms at 512 frames and 48 kHz, and about 430 ms at 2,048 frames. `play(at:)` blocks for about one IO cycle per player, so after scheduling, a wall-clock check confirms the calls finished at least one margin before the start time. If they did not, the players are stopped and rescheduled from the current frame with double the lead, up to three attempts. A polarity null test measured a 0-frame offset between stems at 512, 1,024 and 2,048-frame buffers. +Every start from a stopped state (play, seek, loop wrap, autoplay, restart at the end and resume after an output-device change) goes through one path that starts all five players on the same frame of their shared render timeline: `play(at:)` receives a sample time about 110 ms ahead of the players' last render time. A host-time start made each `play(at:)` block for about one IO cycle and, measured on a real Mac, still started roughly one seek in five out of sync; with a sample time the calls return immediately and every seek in a polarity null test stayed aligned on macOS 15, 26 and 27. Before the engine has rendered once there is no timeline, so the first start waits up to 100 ms for one and otherwise falls back to a host-time lead sized from the IO buffer and the measured duration of the calls, retrying from the same frame if they overran it. Pause calls `engine.pause()`, so every player freezes on the same render cycle, and resume is only `engine.start()`: instant, with no rescheduling. The engine also pauses, releasing the output device, when a track is unloaded, when a seek lands exactly on the end, and 0.5 s after a track finishes so the limiter and time/pitch tails play out. Do not replace this with `engine.pause(); player.play(); engine.start()`: on macOS 27, `play()` on a stopped engine is silently ignored. diff --git a/CHANGELOG.md b/CHANGELOG.md index da49ea8..ed62a56 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,7 @@ New since v1.2.7: three-band EQ on every stem and on the master bus, with preset ### Playback -- All four stems now start on the same audio cycle. Starting from a stop (play, seek, loop wrap, changing songs or output devices) waits for a lead sized to the output device instead of a fixed 30 ms, and reschedules if the start would be missed. +- All five players (four stems and the original) now start on the same audio frame after play, seek, loop wrap, song changes and output-device changes. Previously stems could start 9–42 ms apart, and about one seek in five came out of sync. Starting also no longer stalls the window for about 50 ms. - Pause and resume keep the stems aligned and resume instantly. Pausing, unloading a song and the end of a song (after 0.5 s) release the audio device. - Seeking no longer plays a moment of audio from the old position through the speed and pitch processor. - The shortest A–B loop is now 0.5 seconds rather than 2% of the song, so short phrases in long songs can be looped. Setting A after B, or B before A, starts a new loop instead of snapping back into the old one. @@ -22,6 +22,8 @@ New since v1.2.7: three-band EQ on every stem and on the master bus, with preset ### Separation & import +- Isolate now checks the separation model on a built-in test signal before using it. Core ML in macOS 14 and 15 computes the model incorrectly on some compute paths; Isolate picks one that passes, or asks you to update to macOS 26 instead of producing broken stems. + - Import whole folders by dragging them onto the window or choosing them with ⌘O. Files are added in Finder order, a file is never imported twice in one batch, and AIFC files are accepted. - Batch imports show "N OF M" with the file name, can be cancelled as a whole, and end with one summary naming each file that failed and why. - iCloud Drive files that are not on your Mac yet are downloaded first. If you are offline, Isolate says so instead of waiting. @@ -79,6 +81,7 @@ New since v1.2.7: three-band EQ on every stem and on the master bus, with preset ### Performance - Separation reads each chunk of model output in one pass. The stems are bit-for-bit the same. +- Mix exports use the peak limiter's measured delay, so they stay sample-aligned with the source on every macOS version. - Isolate releases the separation model after 60 seconds without a separation, and reloads it when needed. - The meters and the player do less drawing work for each audio update, and Now Playing is no longer republished every second. diff --git a/INSTALL.md b/INSTALL.md index becf7db..e52a195 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -1,6 +1,6 @@ # Install and build Isolate -Isolate needs a Mac with Apple silicon (M1 or later) and macOS 14 Sonoma or later. +Isolate needs a Mac with Apple silicon (M1 or later) and macOS 14 Sonoma or later. macOS 26 or later is recommended: on macOS 14 and 15, Core ML computes the separation model incorrectly on some compute paths, so Isolate checks the model first and may ask you to update (see [TROUBLESHOOTING.md](TROUBLESHOOTING.md)). ## Disk image (recommended) diff --git a/Isolate.xcodeproj/project.pbxproj b/Isolate.xcodeproj/project.pbxproj index d4a557e..cd7fea1 100644 --- a/Isolate.xcodeproj/project.pbxproj +++ b/Isolate.xcodeproj/project.pbxproj @@ -30,6 +30,7 @@ 8BD92F3394B42C1A0AD566FC /* PlaybackClock.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF8F78D393965984025C15BF /* PlaybackClock.swift */; }; 95C2E3DA7EFB59D971F2F6E1 /* DotGothic16-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 65D4E52007621CC6578509E0 /* DotGothic16-Regular.ttf */; }; 96CEBDABD970A3C881DD01E9 /* EngineFixTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A4285D899C4A5EEEC9EC719 /* EngineFixTests.swift */; }; + 96E80690607437453B6037E1 /* RealMusicSmokeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C70B0ECC18309C897B93F11C /* RealMusicSmokeTests.swift */; }; 9B785A6BE884B7DEB4B68D29 /* FaderScale.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F482B1CF7D3861CF9CB7BE9 /* FaderScale.swift */; }; A07EF38BF93598B2A4702404 /* ImportCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A85EA9B80B1D07CE0BC012A6 /* ImportCoordinator.swift */; }; A424654DA3598C87FECBA99E /* IsolateUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E51723840AA00CB3D59039A2 /* IsolateUITests.swift */; }; @@ -101,6 +102,7 @@ B1AE7FC2C60C05B9AB636C6F /* ExporterFixTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExporterFixTests.swift; sourceTree = ""; }; B807A91D83D445402D9CAF99 /* ProductionRegressionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductionRegressionTests.swift; sourceTree = ""; }; BDB33D51AF84015B27BDB60D /* AudioMeterProcessor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioMeterProcessor.swift; sourceTree = ""; }; + C70B0ECC18309C897B93F11C /* RealMusicSmokeTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RealMusicSmokeTests.swift; sourceTree = ""; }; CF8F78D393965984025C15BF /* PlaybackClock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaybackClock.swift; sourceTree = ""; }; D39417E3CC1D1DF6CF0E4656 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; D721629222D7EC4EFE4580D2 /* UIFixTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIFixTests.swift; sourceTree = ""; }; @@ -202,6 +204,7 @@ ED9249DA0AFAB419C7252B18 /* ModelSelfTestTests.swift */, 5E5A0B54BC270C469A336E6F /* PerfFixTests.swift */, B807A91D83D445402D9CAF99 /* ProductionRegressionTests.swift */, + C70B0ECC18309C897B93F11C /* RealMusicSmokeTests.swift */, 2C2C50DD1D3E61F3C453C02B /* SeparationFixTests.swift */, 09046DA9C244F85B332F5756 /* ShellFixTests.swift */, 87C57BDBBA1E4730D9A3DBEA /* SuiteHardeningTests.swift */, @@ -380,6 +383,7 @@ BA4FE14242EEF97C53744DA3 /* ModelSelfTestTests.swift in Sources */, 7482AE6E5AF793D0C1211EB7 /* PerfFixTests.swift in Sources */, 161B67E13457763752062DE1 /* ProductionRegressionTests.swift in Sources */, + 96E80690607437453B6037E1 /* RealMusicSmokeTests.swift in Sources */, 1419844DB45A5A83122232D3 /* SeparationFixTests.swift in Sources */, 724C0E0BA859FFBA0CB4212E /* ShellFixTests.swift in Sources */, B4B2686CB28F09D6CD78E8D8 /* SuiteHardeningTests.swift in Sources */, diff --git a/MODEL.md b/MODEL.md index 2426923..90bf3ae 100644 --- a/MODEL.md +++ b/MODEL.md @@ -57,7 +57,7 @@ swift scripts/validate_model.swift "$HOME/Library/Application Support/Isolate/HT A compatible `HTDemucs_CoreML_FP16.mlpackage` in either location can be compiled on demand. The app loads the model once per session with `computeUnits = .all`, shares that load between imports, and releases it 60 seconds after the last separation. On the development Mac, the first load by a newly built or updated app took about 17 seconds while Core ML prepared the model; later loads from its compiled cache took 3.2–3.7 seconds. No network download happens inside the app. -Runtime loading validates tensor shapes; release validation also pins the reference hashes. When no model exists, imports report **CoreML Model Not Found**. When a model exists but cannot be used, imports report **Model Could Not Be Loaded** with the model's path and the reason Core ML gave, so a damaged or incompatible model is not mistaken for a missing one. +Runtime loading validates tensor shapes and then separates a built-in ten-second test signal, requiring the four stems to add back up to it within 20 dB (correct runs measure 36–43 dB). Core ML in macOS 14 and 15 computes this model incorrectly on some compute paths — about 3 dB on the CPU path of both, the same for the shipped model and one compiled on the machine — so each path (`all`, CPU and GPU, CPU and Neural Engine, CPU) is tried until one passes. If none does, imports report that this version of macOS computes the model incorrectly and suggest macOS 26 or later. Release validation also pins the reference hashes. When no model exists, imports report **CoreML Model Not Found**. When a model exists but cannot be used, imports report **Model Could Not Be Loaded** with the model's path and the reason Core ML gave, so a damaged or incompatible model is not mistaken for a missing one. ## CI provisioning diff --git a/README.md b/README.md index cdaf109..4c57bef 100644 --- a/README.md +++ b/README.md @@ -20,11 +20,13 @@ Isolate is a native macOS stem player for Apple silicon. It runs HTDemucs, the o | | | | --- | --- | -| Requires | A Mac with Apple silicon (M1 or later) and macOS 14 Sonoma or later | +| Requires | A Mac with Apple silicon (M1 or later) and macOS 14 Sonoma or later; macOS 26 or later recommended for separation (see below) | | Download | About 160 MB | | Installed | About 313 MB, including the separation model | | Separated songs | About 106 MB of disk per minute of audio, kept until you delete the song | +**Separation on macOS 14 and 15.** Testing on hosted Macs found that Core ML in macOS 14 and 15 computes Isolate's separation model incorrectly on some of its compute paths (the CPU path on both, and every path available on the macOS 15 test machine), while macOS 26 and 27 are correct on every path. Before it separates anything, Isolate checks the model on a built-in test signal and uses a compute path that passes. If none passes on your Mac, it says so and asks you to update to macOS 26 or later; it never writes stems from a model that failed the check. Separation has been verified end to end on macOS 26 and 27. + Each release lists SHA-256 checksums in `SHA256SUMS.txt`. To check your download, run `shasum -a 256 ~/Downloads/Isolate.dmg` and compare the result. Homebrew, a terminal installer and source builds are covered in [INSTALL.md](INSTALL.md). ## First launch diff --git a/RELEASE.md b/RELEASE.md index c7b8e61..02de3eb 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -16,6 +16,16 @@ xcodebuild test -project Isolate.xcodeproj -scheme Isolate \ Unit tests create synthetic audio rather than relying on personal music files. With the model installed (see [MODEL.md](MODEL.md)), `TEST_RUNNER_ISOLATE_REQUIRE_MODEL=1` makes the inference tests fail instead of skipping when the model cannot run; Xcode strips `TEST_RUNNER_` when forwarding the variable, and setting only `ISOLATE_REQUIRE_MODEL` in the invoking shell does not enforce the gate. A few real-time engine tests skip when no audio output device can start, as on hosted runners. +Before a release, also separate real music. Point `TEST_RUNNER_ISOLATE_REAL_AUDIO_DIR` at a folder of a few songs in different formats (for example an ALAC `.m4a`, a long MP3 and a file with punctuation in its name); the files are only read: + +```sh +TEST_RUNNER_ISOLATE_REAL_AUDIO_DIR="$HOME/Music/Isolate check" TEST_RUNNER_ISOLATE_REQUIRE_MODEL=1 \ + xcodebuild test -project Isolate.xcodeproj -scheme Isolate -destination 'platform=macOS,arch=arm64' \ + -derivedDataPath build/DerivedData -only-testing:IsolateTests/RealMusicSmokeTests CODE_SIGNING_ALLOWED=NO +``` + +It checks that every song separates into four finite stereo stems with the original's length, that each stem carries audio, and that the stems add back up to the decoded original within 10 dB, and it prints the speed and reconstruction per song. Correct separations of full mixes measure about 28–33 dB. Ordinary runs skip it. + UI tests take over the mouse and keyboard, so run them on a logged-in desktop you are not using, with Xcode UI automation permission. They launch an isolated empty library and keep screenshots in the `.xcresult` bundle. The complete import, playback, export and delete workflow needs the local model. ## Version diff --git a/TROUBLESHOOTING.md b/TROUBLESHOOTING.md index 7a2eeed..6a2d7f9 100644 --- a/TROUBLESHOOTING.md +++ b/TROUBLESHOOTING.md @@ -84,3 +84,7 @@ Isolate can keep playing with its window closed. Choose **Window › Show Isolat ## Reporting a problem Open an issue at with the Isolate version (shown in About), the macOS version, your Mac model, the audio format, sample rate and length, the steps you took, and the exact message. Please don't attach copyrighted or private audio; a short clip you're free to share, or a description of the file, is enough. + +## "This version of macOS computes the separation model incorrectly" + +Core ML in macOS 14 and 15 produces wrong output from Isolate's separation model on some compute paths. Isolate tests the model before every separation session and uses a path that passes; this message means none did on your Mac, so Isolate refused rather than create broken stems. Update to macOS 26 or later (every Apple silicon Mac can run it) and import the song again. Songs you already separated keep playing and exporting normally. diff --git a/Tests/IsolateTests/RealMusicSmokeTests.swift b/Tests/IsolateTests/RealMusicSmokeTests.swift new file mode 100644 index 0000000..ccd5466 --- /dev/null +++ b/Tests/IsolateTests/RealMusicSmokeTests.swift @@ -0,0 +1,82 @@ +import XCTest +import AVFoundation +@testable import Isolate + +/// Opt-in release gate that separates real music. Set `TEST_RUNNER_ISOLATE_REAL_AUDIO_DIR` +/// to a folder of audio files when invoking `xcodebuild test`; ordinary runs skip. +final class RealMusicSmokeTests: XCTestCase { + private static let extensions: Set = ["mp3", "m4a", "wav", "aif", "aiff", "flac", "caf"] + + func testRealMusicSeparatesIntoAlignedStemsThatReconstructTheMix() async throws { + guard let path = ProcessInfo.processInfo.environment["ISOLATE_REAL_AUDIO_DIR"], !path.isEmpty else { + throw XCTSkip("Set TEST_RUNNER_ISOLATE_REAL_AUDIO_DIR to run real-music separation.") + } + let sources = try FileManager.default.contentsOfDirectory(at: URL(filePath: path), includingPropertiesForKeys: nil) + .filter { Self.extensions.contains($0.pathExtension.lowercased()) } + .sorted { $0.lastPathComponent < $1.lastPathComponent } + XCTAssertFalse(sources.isEmpty, "No audio files found in \(path)") + + for source in sources { + let start = CFAbsoluteTimeGetCurrent() + let stems: [URL] + do { + stems = try await DemucsEngine.shared.splitAudio(url: source) { _ in } + } catch DemucsError.modelIncompatibleWithSystem(let detail) { + throw XCTSkip("Core ML on this macOS cannot run the model correctly: \(detail)") + } + let seconds = CFAbsoluteTimeGetCurrent() - start + let directory = try XCTUnwrap(stems.first?.deletingLastPathComponent()) + defer { if StemCache.owns(directory) { try? FileManager.default.removeItem(at: directory) } } + + XCTAssertEqual(stems.map { $0.deletingPathExtension().lastPathComponent }, DemucsEngine.stemNames) + let original = try AVAudioFile(forReading: directory.appending(path: "original.wav")) + let frames = Int(original.length) + XCTAssertGreaterThan(frames, 0) + let files = try stems.map { try AVAudioFile(forReading: $0) } + for (file, url) in zip(files, stems) { + XCTAssertEqual(Int(file.length), frames, "\(url.lastPathComponent) must match the original length") + XCTAssertEqual(file.processingFormat.sampleRate, 44_100) + XCTAssertEqual(file.processingFormat.channelCount, 2) + } + + // Stream through all files, measuring stem energy and how well the stem sum + // reconstructs the decoded original. Misaligned hops, wrong scaling, or lost + // stems collapse this ratio even when every sample is finite. + let block: AVAudioFrameCount = 65_536 + let buffers = (0..<5).map { _ in AVAudioPCMBuffer(pcmFormat: StreamingAudio.format, frameCapacity: block)! } + var stemEnergy = [Double](repeating: 0, count: 4) + var signal = 0.0, error = 0.0, peak: Float = 0 + var remaining = frames + while remaining > 0 { + let count = AVAudioFrameCount(min(Int(block), remaining)) + try original.read(into: buffers[4], frameCount: count) + for (index, file) in files.enumerated() { try file.read(into: buffers[index], frameCount: count) } + for channel in 0..<2 { + let mix = buffers[4].floatChannelData![channel] + for frame in 0.. 1e-4 }, "\(source.lastPathComponent): every stem of a full mix should carry audio") + } + } +} From 63492ae5e890c48b1bf78f2d967aff7925f4fa99 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 23:01:20 -0500 Subject: [PATCH 68/89] fix(audio): anchor the synchronized start to real time and verify it Starting at the last render time plus a lead could name a frame that had already passed when the timestamp was stale or rendering ran ahead, and on hosted macOS 15 some starts never played. Map the host-time start onto the players' timeline through the last render's sample and host times, so every player still gets one frame that is a real future moment. A watchdog confirms the players moved once the start has passed and otherwise restarts from the same frame on the host-time path. Co-Authored-By: Claude Opus 5.5 --- Sources/App/AudioEngineManager.swift | 62 ++++++++++++++++++++----- Tests/IsolateTests/EngineFixTests.swift | 8 ++-- 2 files changed, 55 insertions(+), 15 deletions(-) diff --git a/Sources/App/AudioEngineManager.swift b/Sources/App/AudioEngineManager.swift index 40a34a5..a40f62b 100644 --- a/Sources/App/AudioEngineManager.swift +++ b/Sources/App/AudioEngineManager.swift @@ -1552,8 +1552,13 @@ public final class AudioEngineManager { var lead: TimeInterval var callDuration: TimeInterval var startedTogether: Bool + var usedRenderTimeline: Bool + var watchdogRestarts: Int } private(set) var lastStartReport: StartReport? + /// Set when a render-timeline start never took effect on this output; later starts use host time. + @ObservationIgnored private var renderTimelineStartUnreliable = false + @ObservationIgnored private var watchdogRestarts = 0 /// Starts all players on one frame of the engine's render timeline. A host-time start /// makes each play(at:) wait about one IO cycle and, measured on a real Mac, still @@ -1571,15 +1576,20 @@ public final class AudioEngineManager { for attempt in 1...attempts { let issued = mach_absolute_time() let startHostTime = issued + AVAudioTime.hostTime(forSeconds: lead) - let startTime = renderTimelineStart(after: lead) ?? AVAudioTime(hostTime: startHostTime) + let timelineStart = renderTimelineStartUnreliable ? nil : renderTimelineStart(at: startHostTime) + let startTime = timelineStart ?? AVAudioTime(hostTime: startHostTime) for player in players { player.play(at: startTime) } let finished = mach_absolute_time() let took = AVAudioTime.seconds(forHostTime: finished - issued) cycle = max(cycle, took / Double(players.count)) margin = 4 * cycle + engine.outputNode.presentationLatency + 0.005 let startedTogether = finished + AVAudioTime.hostTime(forSeconds: margin) <= startHostTime - lastStartReport = StartReport(attempts: attempt, lead: lead, callDuration: took, startedTogether: startedTogether) - guard !startedTogether, attempt < attempts else { return } + lastStartReport = StartReport(attempts: attempt, lead: lead, callDuration: took, startedTogether: startedTogether, + usedRenderTimeline: timelineStart != nil, watchdogRestarts: watchdogRestarts) + if startedTogether || attempt == attempts { + verifyStartTookEffect(session: playbackSessionID, after: lead) + return + } stopPlayers() timePitchNode.reset() schedulePlayers(from: seekFrameOffset) @@ -1587,19 +1597,49 @@ public final class AudioEngineManager { } } - /// A start `lead` seconds ahead in the players' own render timeline (44.1 kHz), waiting + /// The host-time start mapped onto the players' own render timeline (44.1 kHz) through + /// the last render timestamp. Every player receives the same frame, and that frame is a + /// real future moment even when the timestamp is stale or rendering runs far ahead. Waits /// briefly for the first render after the engine starts. The output node runs at the /// device rate, so its timeline must never be used for the players. - private func renderTimelineStart(after lead: TimeInterval) -> AVAudioTime? { - var now = vocalPlayer.lastRenderTime + private func renderTimelineStart(at hostTime: UInt64) -> AVAudioTime? { + func usable(_ time: AVAudioTime?) -> Bool { + guard let time else { return false } + return time.isSampleTimeValid && time.isHostTimeValid && time.sampleRate > 0 + } + var anchor = vocalPlayer.lastRenderTime let deadline = Date().addingTimeInterval(0.1) - while !(now?.isSampleTimeValid ?? false), engine.isRunning, Date() < deadline { + while !usable(anchor), engine.isRunning, Date() < deadline { usleep(2_000) - now = vocalPlayer.lastRenderTime + anchor = vocalPlayer.lastRenderTime + } + guard usable(anchor), let anchor else { return nil } + let offset = hostTime >= anchor.hostTime + ? AVAudioTime.seconds(forHostTime: hostTime - anchor.hostTime) + : -AVAudioTime.seconds(forHostTime: anchor.hostTime - hostTime) + return AVAudioTime(sampleTime: anchor.sampleTime + AVAudioFramePosition((offset * anchor.sampleRate).rounded()), + atRate: anchor.sampleRate) + } + + /// A start that never takes effect leaves every player silent. Once the start time has + /// passed, confirm the players moved; if not, restart from the same frame through the + /// host-time path and keep using it on this output. + private func verifyStartTookEffect(session: UUID, after lead: TimeInterval) { + Task { @MainActor [weak self] in + try? await Task.sleep(for: .seconds(lead + 0.25)) + guard let self, self.isPlaying, self.playbackSessionID == session, + self.lastStartReport?.usedRenderTimeline == true else { return } + if let nodeTime = self.vocalPlayer.lastRenderTime, + let playerTime = self.vocalPlayer.playerTime(forNodeTime: nodeTime), playerTime.sampleTime > 0 { return } + self.renderTimelineStartUnreliable = true + self.watchdogRestarts += 1 + let frame = self.seekFrameOffset + self.stopPlayers() + self.timePitchNode.reset() + self.seekFrameOffset = frame + self.schedulePlayers(from: frame) + self.playSynced() } - guard let now, now.isSampleTimeValid, now.sampleRate > 0 else { return nil } - return AVAudioTime(sampleTime: now.sampleTime + AVAudioFramePosition((lead * now.sampleRate).rounded()), - atRate: now.sampleRate) } /// One output IO cycle, never taken as shorter than 512 frames. diff --git a/Tests/IsolateTests/EngineFixTests.swift b/Tests/IsolateTests/EngineFixTests.swift index b85fac9..669901e 100644 --- a/Tests/IsolateTests/EngineFixTests.swift +++ b/Tests/IsolateTests/EngineFixTests.swift @@ -68,14 +68,14 @@ final class EngineFixTests: XCTestCase { private func assertStemsAligned(_ engine: AudioEngineManager, _ label: String, file: StaticString = #filePath, line: UInt = #line) async throws { let reading = try await observeMeters(engine) + let report = engine.lastStartReport.map { + "attempts \($0.attempts), lead \(String(format: "%.3f", $0.lead)) s, calls \(String(format: "%.3f", $0.callDuration)) s, together \($0.startedTogether), timeline \($0.usedRenderTimeline), watchdog restarts \($0.watchdogRestarts)" + } ?? "no start report" // Every stem must be audible on its own, or silence would prove nothing. for (index, peak) in reading.stems.enumerated() { - XCTAssertGreaterThan(peak, 0.05, "\(label): stem \(index) did not play", file: file, line: line) + XCTAssertGreaterThan(peak, 0.05, "\(label): stem \(index) did not play (\(report))", file: file, line: line) } // The waveform floor is 0.05; any inter-stem offset leaves uncancelled noise far above it. - let report = engine.lastStartReport.map { - "attempts \($0.attempts), lead \(String(format: "%.3f", $0.lead)) s, calls \(String(format: "%.3f", $0.callDuration)) s, together \($0.startedTogether)" - } ?? "no start report" XCTAssertLessThan(reading.master, 0.06, "\(label): stems started out of sync (\(report))", file: file, line: line) } From b6013c58ac6fa36e10b3cac39f220710229805d8 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 23:03:42 -0500 Subject: [PATCH 69/89] fix(release): reliable hardened-runtime check, macOS 26 release gate, doc accuracy - package_release.sh captured codesign output through grep -q under pipefail, so SIGPIPE could fail the check at random. - Run the release workflow on macos-26, where inference is verified; hosted macOS 14/15 refuse to separate, which would skip the gate. - RELEASE.md: merge to main before announcing and bump the cask there. - Correct cache, batch-summary, equalizer, shortcut-card and staging descriptions against the code. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/release.yml | 4 +++- AUDIO_ENGINE.md | 2 +- CHANGELOG.md | 2 +- DESIGN.md | 2 +- README.md | 4 ++-- RELEASE.md | 7 ++++--- TROUBLESHOOTING.md | 4 ++-- scripts/package_release.sh | 4 +++- 8 files changed, 17 insertions(+), 12 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 61cc253..eafdba0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,7 +14,9 @@ concurrency: jobs: release: - runs-on: macos-15 + # Core ML computes the model incorrectly on hosted macOS 14 and 15 (Isolate refuses to + # separate there), so the inference gate must run where separation is verified. + runs-on: macos-26 timeout-minutes: 60 env: ISOLATE_MODEL_ARCHIVE_URL: ${{ vars.ISOLATE_MODEL_ARCHIVE_URL }} diff --git a/AUDIO_ENGINE.md b/AUDIO_ENGINE.md index 3c889a2..abc3d98 100644 --- a/AUDIO_ENGINE.md +++ b/AUDIO_ENGINE.md @@ -50,7 +50,7 @@ Exports snapshot the sources, title, format, EQ, speed and pitch before the save - **Stem gain.** Each stem is rendered with its EQ to a temporary Float32 WAV and its peak measured. All four are then encoded with one gain, `min(1, 0.98855 / peak)`, so their balance and sum are kept; stems already below −0.1 dBFS are bit-identical to an ungained export. Each temporary file is deleted after it is encoded, so peak temporary use in the system temporary folder is about four Float32 stems plus the encoded files and the ZIP. - **Mix timing.** With the limiter on, the render runs for the limiter's latency (0.002 s, 88 frames) longer and discards the look-ahead, so a 1× mix is sample-aligned with the source. When speed or pitch is changed, a fixed 4,096-frame (about 93 ms) tail is rendered because the time/pitch unit spreads audio past the stretched length while reporting no latency; such files are `ceil(length / rate) + 4096` frames long. -- **Archive and publication.** `/usr/bin/zip` stores the entries uncompressed and is terminated if the export is cancelled. The finished file is staged in the destination volume's item-replacement directory, then moved or swapped into place, so a cancelled, failed or interrupted export leaves the destination untouched and nothing partial in its folder. +- **Archive and publication.** `/usr/bin/zip` stores the entries uncompressed and is terminated if the export is cancelled. The finished file is staged in the destination volume's item-replacement directory, then moved or swapped into place, so a cancelled, failed or interrupted export leaves the destination untouched and nothing partial in its folder. On a volume that cannot provide an item-replacement directory, the staging copy is a hidden `.isolate-` file beside the destination, which a forced quit can leave behind. - **File names.** Names come from the library title (keeping its capitalization), with `/ : \ ? * " < > |` and control characters replaced by `_`, leading and trailing dots and spaces trimmed, and the length bounded to 200 UTF-8 bytes on character boundaries. The regression suite checks encoding headers, lengths, audible signal, final transients with time/pitch, mute and pan, shared stem gain, sample alignment, cancellation, UTF-8 ZIP flags and failed-export preservation. No MP3 encoder is implemented. diff --git a/CHANGELOG.md b/CHANGELOG.md index ed62a56..7e0210e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,7 +25,7 @@ New since v1.2.7: three-band EQ on every stem and on the master bus, with preset - Isolate now checks the separation model on a built-in test signal before using it. Core ML in macOS 14 and 15 computes the model incorrectly on some compute paths; Isolate picks one that passes, or asks you to update to macOS 26 instead of producing broken stems. - Import whole folders by dragging them onto the window or choosing them with ⌘O. Files are added in Finder order, a file is never imported twice in one batch, and AIFC files are accepted. -- Batch imports show "N OF M" with the file name, can be cancelled as a whole, and end with one summary naming each file that failed and why. +- Batch imports show "N OF M" with the file name, can be cancelled as a whole, and end with one summary of the files that failed and why (the first three are named, the rest are counted). - iCloud Drive files that are not on your Mac yet are downloaded first. If you are offline, Isolate says so instead of waiting. - Surround files (up to 7.1) are downmixed to stereo by speaker position. Before, only their first two channels were used. - Truncated or damaged WAV, FLAC and ALAC files are refused with how much of them could be read, instead of producing shortened stems. diff --git a/DESIGN.md b/DESIGN.md index a6e6648..0981a80 100644 --- a/DESIGN.md +++ b/DESIGN.md @@ -59,4 +59,4 @@ Everything at rest is neutral: titles, the clock, resting meters and fader fills - Custom controls have VoiceOver labels and values. Faders, knobs, pan bars, the seek bar and EQ nodes are adjustable. Several resets also exist as a named action or a context-menu item: Reset on EQ nodes, Center Pan on pan bars, Reset EQ Gain on knobs, and Clear Loop Markers on LOOP. - Tabs, chips and presets report their selected state, and errors are announced as well as shown. - Hit areas are expanded without changing the layout, so small controls respond across their full visible area. -- Every main action has a keyboard shortcut, listed in Settings › Shortcuts and on the shortcut card (?). +- Every main action has a keyboard shortcut. Settings › Shortcuts lists them all; the shortcut card (? or /) shows the most-used ones. diff --git a/README.md b/README.md index 4c57bef..1cc75d6 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ If you open Isolate straight from the disk image, it offers to move itself into - Four stems, always in the same order: vocals, drums, bass and other. HTDemucs runs through Core ML on your Mac. Isolate has no account, analytics or network features of its own. - Import files or whole folders with ⌘O or by dragging them onto the window. MP3, WAV, FLAC, M4A (AAC or ALAC), AIFF and CAF are supported. Surround files are downmixed to stereo, and iCloud Drive files that aren't on your Mac yet are downloaded first. - While a song separates, Isolate shows the file name, chunk count, time remaining and measured speed. You can cancel one song or a whole batch, and if you allow notifications, Isolate tells you when an import finishes while it is in the background. -- Separated songs are cached by their audio content. Importing the same audio again, even from a different folder, reuses its stems instead of separating it again. +- Separated songs are cached by the file's exact contents. Importing the identical file again, even from a different folder, reuses its stems instead of separating it again; a copy with edited tags or artwork, or in another format, is separated again. Separation in progress: a large percentage, the file name, the current stage and a Cancel Import button @@ -75,7 +75,7 @@ If you open Isolate straight from the disk image, it offers to move itself into - Speed from 0.5× to 1.5× (0.5, 0.75, 0.85, 1, 1.15, 1.25 and 1.5) without changing pitch, and pitch from −12 to +12 semitones without changing speed. - A–B loop: set the start and end at the playhead with [ and ], turn looping on or off with L, and clear the markers with ⌥L. -- A studio display above the mixer with five views: a 32-band spectrum, the stem macros, stem balance, telemetry (tempo, key, format and timecode) and the master equalizer (⌘1 to ⌘5). +- A studio display above the mixer with five views: a 32-band spectrum, the stem macros, stem balance, telemetry (tempo, key, format and timecode) and an equalizer for any stem or the master bus (⌘1 to ⌘5). **Library** diff --git a/RELEASE.md b/RELEASE.md index 02de3eb..e2301ed 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -67,8 +67,9 @@ Default signing is ad hoc, now with the hardened runtime. For Developer ID distr 3. Smoke-test import, cancellation, playback, audio-device switching, export, relaunch, deletion and the upgrade from a pre-1.3 library on the minimum supported macOS and a current stable macOS. 4. Listen to separated musical material to assess stem identity and artifacts; synthetic tests do not establish perceptual quality. 5. Download the draft's DMG in a browser and walk through the README's [First launch](README.md#first-launch) steps on macOS 15 or later and on macOS 14. If the build is ever Developer ID signed and notarized, update the README, the release notes script and the cask caveats to match. -6. Review the draft's notes, version and checksums, then publish it and mark it as the latest release. The README's download link and `install.sh` follow the latest release, so publish before announcing. -7. Set the cask's `version` and `sha256` from the published `Isolate.dmg` together, and check it with `brew install --cask neokumar1/isolate/isolate` on a clean Mac. -8. Keep the model archive's prerelease unpublished as Latest. Consider editing older release notes that recommend `xattr -cr` or Control-click on macOS 15 and later. +6. Merge the release branch into `main` (use a merge commit so the tagged commit stays in `main`'s history). The release notes' and cask's `#first-launch` links, the issue templates, the `install.sh` URL in INSTALL.md and the Homebrew tap all read `main`. +7. Review the draft's notes, version and checksums, then publish it and mark it as the latest release. The README's download link and `install.sh` follow the latest release, so publish and merge before announcing, then confirm that https://github.com/neokumar1/Isolate#first-launch opens the First launch section. +8. Commit the cask's `version` and `sha256` for the published `Isolate.dmg` to `main` together, and check it with `brew install --cask neokumar1/isolate/isolate` on a clean Mac. +9. Keep the model archive's prerelease unpublished as Latest. Consider editing older release notes that recommend `xattr -cr` or Control-click on macOS 15 and later. See [QUALITY_REPORT.md](QUALITY_REPORT.md) for this checkout's measured verification and remaining external release gates. diff --git a/TROUBLESHOOTING.md b/TROUBLESHOOTING.md index 6a2d7f9..4aee1d8 100644 --- a/TROUBLESHOOTING.md +++ b/TROUBLESHOOTING.md @@ -29,7 +29,7 @@ Isolate imports MP3, WAV, FLAC, M4A (AAC or ALAC), AIFF, AIFC and CAF files thro - **"The file is damaged, or its contents do not match its extension"** or **"The file could not be decoded"**: try playing the file in Music or QuickTime Player. If it doesn't play there either, export or download it again. - **"The file appears damaged or incomplete: only 2:10 of 4:05 could be decoded"**: a WAV, FLAC or ALAC file is shorter than its header says, usually from an interrupted copy or download. Get a complete copy. -When several files fail in one batch, the message at the end names each file and its reason. +When several files fail in one batch, the message at the end names up to three files with their reasons and counts the rest. ## Files in iCloud Drive @@ -59,7 +59,7 @@ The library is `~/Library/Application Support/Isolate/Library.store`. To restore a backup, quit Isolate, move `Library.store`, `Library.store-wal` and `Library.store-shm` out of `~/Library/Application Support/Isolate`, copy the files from the backup folder in their place, and open Isolate. If it still can't be opened, the backup may have been written by a newer version of Isolate; install that version and try again. -Your separated stems stay in the `Stems` folder either way. Importing the same original files again finds their stems by content and reuses them without separating again. +Your separated stems stay in the `Stems` folder either way. Importing the same original files again reuses stems made by Isolate 1.3 or later without separating again. Stems made by earlier versions can't be matched, so those songs are separated again, and their old folders stay in `~/Library/Application Support/Isolate/Stems` until you delete them. ## Stems are missing or the original was moved diff --git a/scripts/package_release.sh b/scripts/package_release.sh index c77f90a..099c3e9 100755 --- a/scripts/package_release.sh +++ b/scripts/package_release.sh @@ -57,7 +57,9 @@ SIGN_ARGS=(--force --deep --options runtime --sign "$SIGNING_IDENTITY") if [[ "$SIGNING_IDENTITY" != "-" ]]; then SIGN_ARGS+=(--timestamp); fi codesign "${SIGN_ARGS[@]}" "$APP_BUNDLE" codesign --verify --deep --strict "$APP_BUNDLE" -if ! codesign -dv "$APP_BUNDLE" 2>&1 | grep -q 'flags=.*runtime'; then +# Capture first: grep -q exits early, and under pipefail codesign's SIGPIPE fails the check. +SIGN_INFO=$(codesign -dv "$APP_BUNDLE" 2>&1) +if [[ "$SIGN_INFO" != *flags=*runtime* ]]; then echo "The app was signed without the hardened runtime." >&2 exit 1 fi From 5ab25129b6dbbc863e652259dac51b3a10de90fb Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 23:12:40 -0500 Subject: [PATCH 70/89] fix(import): prefetch one iCloud file ahead and wait out a separation started while listing A batch no longer asks iCloud Drive for every evicted file up front. The next file is requested from inside the loop while the current one separates, so Cancel leaves at most one extra download running instead of the rest of the folder, and prefetched sources no longer compete with the per-file disk-space preflight. (separation-1) A library track re-separated while a dropped folder was being listed held the engine, and every file in the batch then failed at once with "The import did not finish." The batch now waits for that separation before it starts. (separation-3) Co-Authored-By: Claude Opus 5.5 --- Sources/Library/ImportCoordinator.swift | 37 ++++++++--- Tests/IsolateTests/FinalSeparationTests.swift | 65 +++++++++++++++++++ 2 files changed, 94 insertions(+), 8 deletions(-) create mode 100644 Tests/IsolateTests/FinalSeparationTests.swift diff --git a/Sources/Library/ImportCoordinator.swift b/Sources/Library/ImportCoordinator.swift index 3c87cc4..6d41142 100644 --- a/Sources/Library/ImportCoordinator.swift +++ b/Sources/Library/ImportCoordinator.swift @@ -42,18 +42,16 @@ final class ImportCoordinator { batchCount = 0 } // Listing a large dropped folder must not block the main actor. - let audio = await Task.detached { - let files = Self.audioFiles(in: urls) - // Let iCloud Drive fetch queued files while earlier ones separate. - for url in files where StreamingAudio.isCloudPlaceholder(url) { - try? FileManager.default.startDownloadingUbiquitousItem(at: url) - } - return files - }.value + let audio = await Task.detached { Self.audioFiles(in: urls) }.value guard !audio.isEmpty else { engine.showError("Choose MP3, WAV, FLAC, M4A, AAC, AIFF or CAF audio files, or a folder that contains them.") return } + // A library track re-separated while the folder was listed holds the engine. + // Wait for it; otherwise every file in the batch fails at once. + while engine.isSplitting, !Task.isCancelled { + try? await Task.sleep(for: .milliseconds(200)) + } batchCount = audio.count var count = 0 var lastTitle = "" @@ -64,6 +62,8 @@ final class ImportCoordinator { guard !Task.isCancelled else { break } batchIndex = index + 1 currentFileName = Self.title(for: url) + // Requested here, one file ahead, so a cancelled batch stops asking. + Self.prefetch(Self.upcoming(after: index, in: audio)) let scoped = url.startAccessingSecurityScopedResource() defer { if scoped { url.stopAccessingSecurityScopedResource() } } let path = url.path @@ -173,6 +173,27 @@ final class ImportCoordinator { return files } + /// How many queued files iCloud Drive fetches ahead of the one separating. The next + /// download overlaps this separation, and a cancelled batch leaves at most this + /// many extra downloads running instead of the rest of the folder. + nonisolated static let prefetchCount = 1 + + /// The queued files to fetch while the file at `index` separates. + nonisolated static func upcoming(after index: Int, in files: [URL]) -> ArraySlice { + files.dropFirst(index + 1).prefix(prefetchCount) + } + + /// Starts iCloud Drive downloads for evicted files, off the main actor. + nonisolated static func prefetch(_ files: ArraySlice) { + guard !files.isEmpty else { return } + let files = Array(files) + Task.detached(priority: .utility) { + for url in files where StreamingAudio.isCloudPlaceholder(url) { + try? FileManager.default.startDownloadingUbiquitousItem(at: url) + } + } + } + /// Finder's name without the extension, so "AC/DC" is not shown as "AC:DC". /// Shares the player's rule so library and Now Playing titles always agree. nonisolated static func title(for url: URL) -> String { diff --git a/Tests/IsolateTests/FinalSeparationTests.swift b/Tests/IsolateTests/FinalSeparationTests.swift new file mode 100644 index 0000000..ebf0e17 --- /dev/null +++ b/Tests/IsolateTests/FinalSeparationTests.swift @@ -0,0 +1,65 @@ +import XCTest +import AVFoundation +import SwiftData +import os +@testable import Isolate + +@MainActor +final class FinalSeparationTests: XCTestCase { + private var directory: URL! + + override func setUpWithError() throws { + directory = FileManager.default.temporaryDirectory.appending(path: UUID().uuidString) + try FileManager.default.createDirectory(at: directory, withIntermediateDirectories: true) + } + + override func tearDownWithError() throws { + try FileManager.default.removeItem(at: directory) + } + + // MARK: - iCloud prefetch window (separation-1) + + func testICloudPrefetchAsksOnlyForTheNextFile() { + let files = (1...5).map { directory.appending(path: "\($0).flac") } + XCTAssertEqual(ImportCoordinator.prefetchCount, 1) + XCTAssertEqual(Array(ImportCoordinator.upcoming(after: 0, in: files)), [files[1]]) + XCTAssertEqual(Array(ImportCoordinator.upcoming(after: 3, in: files)), [files[4]]) + XCTAssertTrue(ImportCoordinator.upcoming(after: 4, in: files).isEmpty) + XCTAssertTrue(ImportCoordinator.upcoming(after: 0, in: Array(files.prefix(1))).isEmpty) + for index in files.indices { + XCTAssertLessThanOrEqual(ImportCoordinator.upcoming(after: index, in: files).count, 1, + "A batch must never ask iCloud Drive for the rest of the folder") + } + } + + // MARK: - Folder listing window (separation-3) + + func testFolderImportWaitsForASeparationStartedWhileListing() async throws { + let restoreAutoPlay = Hardening.disableAutoPlay() + defer { restoreAutoPlay() } + let container = try ModelContainer(for: TrackModel.self, configurations: ModelConfiguration(isStoredInMemoryOnly: true)) + let folder = directory.appending(path: "Album") + try FileManager.default.createDirectory(at: folder, withIntermediateDirectories: true) + let first = folder.appending(path: "01 a.wav") + let second = folder.appending(path: "02 b.wav") + try Hardening.tone(first, frequency: 523) + try Hardening.tone(second, frequency: 587) + let caches = try [first, second].map { try Hardening.cacheStems(for: $0) } + defer { caches.forEach { try? FileManager.default.removeItem(at: $0) } } + let importer = ImportCoordinator() + let engine = AudioEngineManager() + importer.importFiles([folder], context: container.mainContext, engine: engine) + // A library track's recovery split takes the engine before the listing returns. + engine.isSplitting = true + try await Task.sleep(for: .milliseconds(600)) + XCTAssertTrue(importer.isImporting) + XCTAssertEqual(importer.batchCount, 0, "The batch must not start while another separation runs") + XCTAssertNil(engine.errorMessage) + XCTAssertEqual(try container.mainContext.fetchCount(FetchDescriptor()), 0) + engine.isSplitting = false + await Hardening.finish(importer) + XCTAssertNil(engine.errorMessage, "No file may be reported as failed") + XCTAssertEqual(try container.mainContext.fetchCount(FetchDescriptor()), 2) + engine.unloadTrack() + } +} From be93b83dfee23b6ab6c0aa093cfe1e28f63c2c25 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 23:12:50 -0500 Subject: [PATCH 71/89] fix(cache): lock live staging so another running copy does not sweep it Two copies of Isolate at different paths (the DMG copy beside /Applications, or the move-to-Applications relaunch) share the Stems cache, and each one's abandoned-staging sweep deleted the other's live .partial folder, so that separation failed at publish after minutes of inference. A separation now holds a non-blocking flock on a .lock file inside its staging folder until it finishes. The sweep skips a .partial folder whose lock is held and still removes folders with no lock file or a released one, since the kernel drops the lock when the owner exits or crashes. The lock file is removed from the published cache after the move. If the lock cannot be taken the separation still runs, as before. (separation-2) Co-Authored-By: Claude Opus 5.5 --- Sources/App/DemucsEngine.swift | 4 ++ Sources/App/StemCache.swift | 28 +++++++++ Tests/IsolateTests/FinalSeparationTests.swift | 63 +++++++++++++++++++ 3 files changed, 95 insertions(+) diff --git a/Sources/App/DemucsEngine.swift b/Sources/App/DemucsEngine.swift index 44fdcd6..3e440bd 100644 --- a/Sources/App/DemucsEngine.swift +++ b/Sources/App/DemucsEngine.swift @@ -398,6 +398,10 @@ public actor DemucsEngine { let staging = StemCache.root.appending(path: ".partial-\(UUID().uuidString)", directoryHint: .isDirectory) try fm.createDirectory(at: staging, withIntermediateDirectories: true) defer { try? fm.removeItem(at: staging) } + // A second running copy of Isolate (say, the DMG copy beside /Applications) + // shares this cache and sweeps staging; the lock marks this folder as live. + let stagingLock = StemCache.lockStaging(staging) + defer { if stagingLock >= 0 { close(stagingLock) } } report(0.02, "DECODING AUDIO...") let original = staging.appending(path: "original.wav") let stats = try StreamingAudio.decode(url, to: original) diff --git a/Sources/App/StemCache.swift b/Sources/App/StemCache.swift index 023dca0..e96b175 100644 --- a/Sources/App/StemCache.swift +++ b/Sources/App/StemCache.swift @@ -46,14 +46,40 @@ enum StemCache { /// mid-separation. Call only while no separation is running: at launch, or from /// DemucsEngine once it holds the single separation slot. A backup exists only /// while an invalid cache is being replaced, so it never holds usable stems. + /// Staging that another running copy of Isolate still locks is kept. static func removeAbandonedStaging() { let fm = FileManager.default guard let entries = try? fm.contentsOfDirectory(at: root, includingPropertiesForKeys: nil) else { return } for entry in entries where entry.lastPathComponent.hasPrefix(".partial-") || entry.lastPathComponent.hasPrefix(".backup-") { + if entry.lastPathComponent.hasPrefix(".partial-"), isStagingLocked(entry) { continue } try? fm.removeItem(at: entry) } } + private static let lockName = ".lock" + + /// Locks `staging` for as long as the returned descriptor stays open. The lock is + /// released when the process exits or crashes. Returns -1 if it could not be taken; + /// the separation still runs, unprotected as before. + static func lockStaging(_ staging: URL) -> Int32 { + let fd = open(staging.appending(path: lockName).path, O_CREAT | O_RDWR | O_CLOEXEC, 0o600) + guard fd >= 0 else { return -1 } + guard flock(fd, LOCK_EX | LOCK_NB) == 0 else { + close(fd) + return -1 + } + return fd + } + + /// True while a live process holds the staging lock. Staging with no lock file, + /// from a crash before it was made or from an older version, is abandoned. + static func isStagingLocked(_ staging: URL) -> Bool { + let fd = open(staging.appending(path: lockName).path, O_RDONLY | O_CLOEXEC) + guard fd >= 0 else { return errno != ENOENT && errno != ENOTDIR } + defer { close(fd) } + return flock(fd, LOCK_EX | LOCK_NB) != 0 + } + /// Float32 stereo WAVs for the decoded original and four stems, plus headroom. static func requiredBytes(forFrames frames: Int) -> Int64 { Int64(frames) * Int64(MemoryLayout.size * 2) * 5 + (64 << 20) @@ -92,5 +118,7 @@ enum StemCache { } else { try fm.moveItem(at: staging, to: destination) } + // Removed only after the move, so the staging folder is never left unlocked. + try? fm.removeItem(at: destination.appending(path: lockName)) } } diff --git a/Tests/IsolateTests/FinalSeparationTests.swift b/Tests/IsolateTests/FinalSeparationTests.swift index ebf0e17..70e3474 100644 --- a/Tests/IsolateTests/FinalSeparationTests.swift +++ b/Tests/IsolateTests/FinalSeparationTests.swift @@ -62,4 +62,67 @@ final class FinalSeparationTests: XCTestCase { XCTAssertEqual(try container.mainContext.fetchCount(FetchDescriptor()), 2) engine.unloadTrack() } + + // MARK: - Staging lock (separation-2) + + func testSweepKeepsStagingThatALiveProcessLocks() throws { + let fm = FileManager.default + try fm.createDirectory(at: StemCache.root, withIntermediateDirectories: true) + let live = StemCache.root.appending(path: ".partial-\(UUID().uuidString)") + let crashed = StemCache.root.appending(path: ".partial-\(UUID().uuidString)") + let legacy = StemCache.root.appending(path: ".partial-\(UUID().uuidString)") + for folder in [live, crashed, legacy] { + try fm.createDirectory(at: folder, withIntermediateDirectories: true) + try Data("audio".utf8).write(to: folder.appending(path: "original.wav")) + } + defer { [live, crashed, legacy].forEach { try? fm.removeItem(at: $0) } } + // flock locks taken through separate descriptors conflict even within one + // process, so a held descriptor stands in for another running copy. + let held = StemCache.lockStaging(live) + XCTAssertGreaterThanOrEqual(held, 0) + let released = StemCache.lockStaging(crashed) + XCTAssertGreaterThanOrEqual(released, 0) + close(released) // As when the owning process exits or crashes. + XCTAssertTrue(StemCache.isStagingLocked(live)) + XCTAssertFalse(StemCache.isStagingLocked(crashed)) + StemCache.removeAbandonedStaging() + XCTAssertTrue(fm.fileExists(atPath: live.appending(path: "original.wav").path)) + XCTAssertFalse(fm.fileExists(atPath: crashed.path)) + XCTAssertFalse(fm.fileExists(atPath: legacy.path), "Staging from an older version has no lock and is abandoned") + close(held) + StemCache.removeAbandonedStaging() + XCTAssertFalse(fm.fileExists(atPath: live.path)) + } + + func testPublishedCacheCarriesNoLockFile() throws { + let fm = FileManager.default + try fm.createDirectory(at: StemCache.root, withIntermediateDirectories: true) + let staging = StemCache.root.appending(path: ".partial-\(UUID().uuidString)") + let destination = StemCache.root.appending(path: "published-\(UUID().uuidString)") + defer { [staging, destination].forEach { try? fm.removeItem(at: $0) } } + try Hardening.distinctStems(in: staging) + let lock = StemCache.lockStaging(staging) + XCTAssertGreaterThanOrEqual(lock, 0) + defer { close(lock) } + try StemCache.publish(staging, to: destination) + XCTAssertNotNil(StemCache.validFiles(in: destination)) + XCTAssertFalse(fm.fileExists(atPath: destination.appending(path: ".lock").path)) + XCTAssertFalse(fm.fileExists(atPath: staging.path)) + } + + func testSeparationSurvivesASweepFromAnotherCopy() async throws { + let source = directory.appending(path: "shared-cache.wav") + try Hardening.tone(source, frequency: 392, amplitude: Float.random(in: 0.15...0.25), seconds: 1) + let swept = OSAllocatedUnfairLock(initialState: false) + let stems = try await Hardening.splitRequiringModel(source) { info in + guard info.statusMessage == "SEPARATING STEMS...", !swept.withLock({ $0 }) else { return } + // What a second running copy's launch sweep does mid-separation. + StemCache.removeAbandonedStaging() + swept.withLock { $0 = true } + } + defer { Hardening.removeCache(stems) } + XCTAssertTrue(swept.withLock { $0 }, "The sweep must run while inference is under way") + XCTAssertEqual(stems.count, 4) + XCTAssertNotNil(StemCache.validFiles(in: try XCTUnwrap(stems.first).deletingLastPathComponent())) + } } From d02f0e38bb92905a47d78a56682ecafaf08c0d5b Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 23:13:08 -0500 Subject: [PATCH 72/89] perf(library): build folder labels in linear time and reuse them folderLabels compared every folder against every other one and ran on each LibraryView body update, so search keystrokes and SETTINGS hover stalled the main thread in libraries with hundreds of album folders. Count each depth's suffixes in a dictionary instead (same labels), and keep the result in a non-observable cache that rebuilds only when the set of folders changes. Co-Authored-By: Claude Opus 5.5 --- Sources/Library/LibraryView.swift | 52 +++++++++++++++++++++++++------ 1 file changed, 42 insertions(+), 10 deletions(-) diff --git a/Sources/Library/LibraryView.swift b/Sources/Library/LibraryView.swift index fc20d26..c8eb051 100644 --- a/Sources/Library/LibraryView.swift +++ b/Sources/Library/LibraryView.swift @@ -119,23 +119,36 @@ struct LibraryView: View { /// Group headers: the folder name, extended with parent folders only where /// two different folders share a name (e.g. ARTIST A / GREATEST HITS). /// Built from every track so headers stay stable while searching. + /// One pass per depth: each suffix is counted in a dictionary rather than compared + /// against every other folder, so a large library stays linear in its folders. static func folderLabels(for folders: [URL]) -> [URL: String] { let unique = Array(Set(folders)) - func suffix(_ folder: URL, _ count: Int) -> String { - folder.pathComponents.suffix(count).joined(separator: " / ") - } + let components = unique.map(\.pathComponents) var labels: [URL: String] = [:] - for folder in unique { - var count = 1 - while count < folder.pathComponents.count, - unique.contains(where: { $0 != folder && suffix($0, count).lowercased() == suffix(folder, count).lowercased() }) { - count += 1 + var pending = Array(unique.indices) + var count = 1 + while !pending.isEmpty { + let keys = components.map { $0.suffix(count).joined(separator: " / ").lowercased() } + var tally: [String: Int] = [:] + for key in keys { tally[key, default: 0] += 1 } + var colliding: [Int] = [] + for index in pending { + if count < components[index].count, tally[keys[index], default: 0] > 1 { + colliding.append(index) + } else { + labels[unique[index]] = components[index].suffix(count).joined(separator: " / ") + } } - labels[folder] = suffix(folder, count) + pending = colliding + count += 1 } return labels } + /// Folder labels from the last body update, rebuilt only when the library's set of + /// folders changes rather than on every search keystroke or hover. + @State private var folderLabelCache = FolderLabelCache() + var body: some View { ZStack { VStack(alignment: .leading, spacing: 0) { @@ -294,7 +307,7 @@ struct LibraryView: View { private func tracksScrollView(_ filtered: [TrackModel]) -> some View { let total = filtered.count - let labels = Self.folderLabels(for: tracks.map { $0.originalURL.deletingLastPathComponent() }) + let labels = folderLabelCache.labels(for: tracks.map { $0.originalURL.deletingLastPathComponent() }) return ScrollView { LazyVStack(alignment: .leading, spacing: 6) { ForEach(filtered.libraryFolderGroups(), id: \.folder) { group in @@ -448,6 +461,25 @@ struct LibraryView: View { } +/// Remembers `LibraryView.folderLabels` for the last set of folders. It is not +/// observable, so reading it never invalidates the view. +@MainActor +final class FolderLabelCache { + private var folders: Set? + private var labels: [URL: String] = [:] + private(set) var buildCount = 0 + + func labels(for folders: [URL]) -> [URL: String] { + let current = Set(folders) + if current != self.folders { + self.folders = current + labels = LibraryView.folderLabels(for: Array(current)) + buildCount += 1 + } + return labels + } +} + struct TrackRowView: View { let track: TrackModel let isActive: Bool From d13e9353616a679ef559ba8b9e42008b76f8a631 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 23:13:08 -0500 Subject: [PATCH 73/89] fix(player): export state for VoiceOver, marquee widths, HUD polish - EXPORT: "Cancel export" carries " percent" as its value while rendering, and COMPLETED reads "Export complete" with no Cancel Export menu item or cancel tooltip. The UI test accepts either busy label, since a short render may already show COMPLETED. - MarqueeText draws with a fixed-size font so the width it measures is the width it draws; the artist line uses 11/10 pt, the sizes macOS 27 already drew for 10.5/9.5. Long album names no longer truncate with no tooltip, and the scroll reaches the end of the line. - The stem waveform's idle center row uses border under Increase Contrast so it stays brighter than the unlit dots. - The compact STUDIO HUD hides the EQ curve's Hz captions, which the band nodes and their names covered. - The shortcut cheat sheet cross-fades under Reduce Motion. Co-Authored-By: Claude Opus 5.5 --- Sources/Player/PlayerView.swift | 83 +++++++++++++++------ UITests/IsolateUITests/IsolateUITests.swift | 8 +- 2 files changed, 67 insertions(+), 24 deletions(-) diff --git a/Sources/Player/PlayerView.swift b/Sources/Player/PlayerView.swift index b439247..950400d 100644 --- a/Sources/Player/PlayerView.swift +++ b/Sources/Player/PlayerView.swift @@ -31,7 +31,8 @@ public struct PlayerView: View { var isSidebarVisible: Binding? @State private var isShowingShortcutCard = false - + @Environment(\.accessibilityReduceMotion) private var reduceMotion + public init(isSidebarVisible: Binding? = nil) { self.isSidebarVisible = isSidebarVisible } @@ -71,7 +72,7 @@ public struct PlayerView: View { isShowingShortcutCard = false } }) - .transition(.scale(scale: 0.95).combined(with: .opacity)) + .transition(reduceMotion ? .opacity : .scale(scale: 0.95).combined(with: .opacity)) } } .animation(.easeInOut(duration: 0.15), value: isShowingShortcutCard) @@ -167,7 +168,8 @@ public struct PlayerView: View { let artistAlbum = "\(engineManager.trackArtist.uppercased()) • \(engineManager.trackAlbum.uppercased())" MarqueeText( text: artistAlbum, - fontSize: isCompactHeight ? 9.5 : 10.5, + // macOS 27 already drew the old 10.5/9.5 sizes at 11/10 pt. + fontSize: isCompactHeight ? 10 : 11, color: theme.textSecondary, height: isCompactHeight ? 14 : 16 ) @@ -1204,7 +1206,7 @@ struct StemDynamicWaveformView: View { if isLit { return distance == spread && distance > 1 ? theme.accentRed : theme.textPrimary } else if isRestingCenter { - return effectiveVolume <= 0.001 ? theme.knobArcTrack : theme.textDisabled + return Self.restingCenterColor(theme: theme, effectiveVolume: effectiveVolume) } else { return theme.knobArcTrack // Faint unlit physical LED dot } @@ -1220,6 +1222,13 @@ struct StemDynamicWaveformView: View { } .frame(height: 30) } + + /// The idle center row of an audible channel. It must stay brighter than the unlit + /// dots, which Increase Contrast raises above textDisabled. + static func restingCenterColor(theme: ThemeManager, effectiveVolume: Double) -> Color { + guard effectiveVolume > 0.001 else { return theme.knobArcTrack } + return theme.increaseContrast ? theme.border : theme.textDisabled + } } // MARK: - Nothing 50x50 Real-Time RGB Color Dot-Matrix Processor @@ -2006,9 +2015,23 @@ struct TransportBar: View { .help(isBypassed ? "Return to the stem mix (⌥⌘B)" : "Compare with the original (⌥⌘B)") } + /// VoiceOver name and value, and the tooltip, for the EXPORT control. The label + /// replaces the visible text, so the render progress is carried in the value. + static func exportAccessibility(for state: ExportState) -> (label: String, value: String, help: String) { + switch state { + case .idle: + return ("Export stems", "", "Export four stems as a ZIP (⇧⌘E)") + case .exporting(_, let percent): + return ("Cancel export", "\(Int(percent * 100)) percent", "Cancel the export in progress") + case .completed: + return ("Export complete", "", "Export complete") + } + } + private func exportButton(_ metrics: Metrics) -> some View { let state = engineManager.exportState let isExporting = engineManager.isExporting + let accessibility = Self.exportAccessibility(for: state) return Button(action: { Haptics.playClick() // While exporting, the same control cancels the render. @@ -2060,12 +2083,14 @@ struct TransportBar: View { .contentShape(Rectangle()) } .disabled(!engineManager.hasLoadedTrack || engineManager.isSplitting) - .accessibilityLabel(isExporting ? "Cancel export" : "Export stems") - .help(isExporting ? "Cancel the export in progress" : "Export four stems as a ZIP (⇧⌘E)") + .accessibilityLabel(accessibility.label) + .accessibilityValue(accessibility.value) + .help(accessibility.help) .contextMenu { Button("Export Mix…") { engineManager.exportMix() } .disabled(isExporting) - if isExporting { + // COMPLETED is only the brief confirmation; there is nothing left to cancel. + if case .exporting = state { Button("Cancel Export") { engineManager.cancelExport() } } } @@ -2096,7 +2121,7 @@ struct MarqueeText: View { ZStack(alignment: .leading) { if scrolls { Text(text) - .font(.custom("DotGothic16-Regular", size: fontSize)) + .font(Self.font(size: fontSize)) .foregroundColor(color) .fixedSize(horizontal: true, vertical: false) .offset(x: offset) @@ -2104,7 +2129,7 @@ struct MarqueeText: View { // Without scrolling (Reduce Motion or a tiny overflow), end with an // ellipsis rather than clipping mid-glyph; the tooltip has the rest. Text(text) - .font(.custom("DotGothic16-Regular", size: fontSize)) + .font(Self.font(size: fontSize)) .foregroundColor(color) .lineLimit(1) .truncationMode(.tail) @@ -2162,6 +2187,12 @@ struct MarqueeText: View { !reduceMotion && overflow > 6 && containerWidth > 40 } + /// Drawn at exactly `size` points, the size `measureTextWidth` measures, so the + /// scroll distance and tooltip match the rendered width. + static func font(size: CGFloat) -> Font { + .custom("DotGothic16-Regular", fixedSize: size) + } + static func measureTextWidth(_ string: String, size: CGFloat) -> CGFloat { let font = NSFont(name: "DotGothic16-Regular", size: size) ?? NSFont.monospacedSystemFont(ofSize: size, weight: .regular) let attr: [NSAttributedString.Key: Any] = [.font: font] @@ -3258,18 +3289,28 @@ struct HUDEqualizerCurveView: View { } .stroke(theme.hairline, style: StrokeStyle(lineWidth: 0.5, dash: [2, 3])) - Text("100Hz") - .font(.custom("DotGothic16-Regular", size: 6.5)) - .foregroundColor(theme.textMuted) - .position(x: x100, y: h - 5) - Text("1kHz") - .font(.custom("DotGothic16-Regular", size: 6.5)) - .foregroundColor(theme.textMuted) - .position(x: x1k, y: h - 5) - Text("10kHz") - .font(.custom("DotGothic16-Regular", size: 6.5)) - .foregroundColor(theme.textMuted) - .position(x: x10k, y: h - 5) + // The compact HUD's curve is too short for these under the band nodes and their + // names; the nodes' VoiceOver labels still give each frequency. + if Self.showsFrequencyLabels(canvasHeight: h) { + Text("100Hz") + .font(.custom("DotGothic16-Regular", size: 6.5)) + .foregroundColor(theme.textMuted) + .position(x: x100, y: h - 5) + Text("1kHz") + .font(.custom("DotGothic16-Regular", size: 6.5)) + .foregroundColor(theme.textMuted) + .position(x: x1k, y: h - 5) + Text("10kHz") + .font(.custom("DotGothic16-Regular", size: 6.5)) + .foregroundColor(theme.textMuted) + .position(x: x10k, y: h - 5) + } + } + + /// Room for the Hz captions below the band nodes: the regular HUD's curve, not the + /// compact one. + static func showsFrequencyLabels(canvasHeight: CGFloat) -> Bool { + canvasHeight >= 36 } private func curvePath(w: CGFloat, h: CGFloat, midY: CGFloat) -> Path { diff --git a/UITests/IsolateUITests/IsolateUITests.swift b/UITests/IsolateUITests/IsolateUITests.swift index c26cea8..49494cc 100644 --- a/UITests/IsolateUITests/IsolateUITests.swift +++ b/UITests/IsolateUITests/IsolateUITests.swift @@ -336,9 +336,11 @@ final class IsolateUITests: XCTestCase { app.typeText(directory.path) app.typeKey(.return, modifierFlags: []) saveButton.click() - // From the start of the render until COMPLETED clears (about 2 s), EXPORT cancels instead. - XCTAssertTrue(app.buttons["Cancel export"].waitForExistence(timeout: 3), - "VoiceOver must announce the EXPORT control as Cancel export while exporting") + // During the render EXPORT cancels instead; a short render may already show + // COMPLETED (about 2 s) by the first check. + let busyExport = app.buttons.matching(NSPredicate(format: "label IN %@", ["Cancel export", "Export complete"])).firstMatch + XCTAssertTrue(busyExport.waitForExistence(timeout: 3), + "VoiceOver must announce the EXPORT control as Cancel export while exporting, then Export complete") let exported = directory.appending(path: "Renamed UI Track_Mix.wav") let written = XCTNSPredicateExpectation(predicate: NSPredicate { _, _ in FileManager.default.fileExists(atPath: exported.path) From f79d6a4bb4bde13841f53b62658ffedd98e1931a Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 23:13:08 -0500 Subject: [PATCH 74/89] test(ui): cover export announcements, folder labels and HUD fixes Co-Authored-By: Claude Opus 5.5 --- Tests/IsolateTests/FinalUITests.swift | 142 ++++++++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 Tests/IsolateTests/FinalUITests.swift diff --git a/Tests/IsolateTests/FinalUITests.swift b/Tests/IsolateTests/FinalUITests.swift new file mode 100644 index 0000000..f01f156 --- /dev/null +++ b/Tests/IsolateTests/FinalUITests.swift @@ -0,0 +1,142 @@ +import XCTest +import SwiftUI +import AppKit +@testable import Isolate + +@MainActor +final class FinalUITests: XCTestCase { + + // MARK: - ui-1: EXPORT control speaks its state + + func testExportControlAnnouncesStateAndProgress() { + let idle = TransportBar.exportAccessibility(for: .idle) + XCTAssertEqual(idle.label, "Export stems") + XCTAssertEqual(idle.value, "") + + let rendering = TransportBar.exportAccessibility(for: .exporting(stage: "RENDERING", percent: 0.456)) + XCTAssertEqual(rendering.label, "Cancel export") + XCTAssertEqual(rendering.value, "45 percent", "The label replaces the visible progress, so the value must carry it") + XCTAssertEqual(rendering.help, "Cancel the export in progress") + + let archiving = TransportBar.exportAccessibility(for: .exporting(stage: "ARCHIVING", percent: 0.83)) + XCTAssertEqual(archiving.value, "83 percent") + + let completed = TransportBar.exportAccessibility(for: .completed) + XCTAssertEqual(completed.label, "Export complete", "COMPLETED has nothing left to cancel") + XCTAssertNotEqual(completed.help, rendering.help) + } + + // MARK: - ui-2: folder labels + + /// The pairwise definition the per-depth tally replaced. + private func pairwiseFolderLabels(for folders: [URL]) -> [URL: String] { + let unique = Array(Set(folders)) + func suffix(_ folder: URL, _ count: Int) -> String { + folder.pathComponents.suffix(count).joined(separator: " / ") + } + var labels: [URL: String] = [:] + for folder in unique { + var count = 1 + while count < folder.pathComponents.count, + unique.contains(where: { $0 != folder && suffix($0, count).lowercased() == suffix(folder, count).lowercased() }) { + count += 1 + } + labels[folder] = suffix(folder, count) + } + return labels + } + + func testFolderLabelsMatchPairwiseDefinitionOnALargeLibrary() { + let music = URL(filePath: "/Users/someone/Music") + var folders: [URL] = [] + for artist in 0..<40 { + for album in ["Greatest Hits", "Live", "Album \(artist)", "Disc 1", "disc 1"] { + folders.append(music.appending(path: "Artist \(artist % 25)/\(album)")) + } + } + // Same name at different depths, and folders that differ only by case. + folders += [ + URL(filePath: "/Volumes/Archive/Live"), + URL(filePath: "/Volumes/Archive/Music/Artist 1/Live"), + URL(filePath: "/Users/someone/Music/MIX"), + URL(filePath: "/Users/someone/music/Mix"), + URL(filePath: "/Mix"), + ] + folders += folders.prefix(30) + + let labels = LibraryView.folderLabels(for: folders) + XCTAssertEqual(labels, pairwiseFolderLabels(for: folders)) + XCTAssertEqual(labels[music.appending(path: "Artist 3/Album 3")], "Album 3") + XCTAssertEqual(labels[music.appending(path: "Artist 3/Live")], "Artist 3 / Live") + XCTAssertEqual(labels[music.appending(path: "Artist 1/Live")], "someone / Music / Artist 1 / Live") + } + + func testFolderLabelCacheRebuildsOnlyWhenTheFoldersChange() { + let base = URL(filePath: "/Users/someone/Music") + let hitsA = base.appending(path: "Artist A/Greatest Hits") + let hitsB = base.appending(path: "Artist B/Greatest Hits") + let other = base.appending(path: "Artist A/Other") + let cache = FolderLabelCache() + + let first = cache.labels(for: [hitsA, other]) + XCTAssertEqual(first[hitsA], "Greatest Hits") + // Search keystrokes and hover re-run the body with the same folders. + _ = cache.labels(for: [hitsA, other]) + _ = cache.labels(for: [other, hitsA, hitsA]) + XCTAssertEqual(cache.buildCount, 1, "The same set of folders must reuse the labels") + + let second = cache.labels(for: [hitsA, other, hitsB]) + XCTAssertEqual(cache.buildCount, 2) + XCTAssertEqual(second[hitsA], "Artist A / Greatest Hits", "A new same-named folder must relabel the old one") + XCTAssertEqual(second[hitsB], "Artist B / Greatest Hits") + } + + // MARK: - ui-3: marquee measures what it draws + + func testMarqueeTextDrawsAtTheWidthItMeasures() throws { + try XCTSkipIf(NSFont(name: "DotGothic16-Regular", size: 10) == nil, + "Widths are only meaningful with the bundled DotGothic16 font") + let line = "QUEEN • A NIGHT AT THE OPERA (DELUXE REMASTERED VERSION)" + for size: CGFloat in [9.5, 10, 10.5, 11, 24] { + let drawn = NSHostingView(rootView: Text(line).font(MarqueeText.font(size: size)).fixedSize()).fittingSize.width + XCTAssertEqual(drawn, MarqueeText.measureTextWidth(line, size: size), accuracy: 1, + "At \(size) pt the scroll distance and tooltip must use the drawn width") + } + } + + // MARK: - ui-4: resting center under Increase Contrast + + func testRestingCenterStaysAboveTheUnlitDotsWithIncreaseContrast() { + let theme = ThemeManager.shared + let saved = theme.increaseContrast + defer { theme.increaseContrast = saved } + let environment = EnvironmentValues() + + for increaseContrast in [false, true] { + theme.increaseContrast = increaseContrast + let grid = theme.knobArcTrack.resolve(in: environment) + let center = StemDynamicWaveformView.restingCenterColor(theme: theme, effectiveVolume: 1).resolve(in: environment) + let muted = StemDynamicWaveformView.restingCenterColor(theme: theme, effectiveVolume: 0).resolve(in: environment) + XCTAssertEqual(muted, grid, "A silent channel's center matches the unlit grid") + if increaseContrast { + XCTAssertEqual(center.red, grid.red, accuracy: 0.001) + XCTAssertGreaterThan(center.opacity, grid.opacity, + "With Increase Contrast the idle center row must stand out from the unlit dots") + } else { + XCTAssertEqual(center, theme.textDisabled.resolve(in: environment)) + } + } + } + + // MARK: - ui-6: HUD EQ captions at compact height + + func testHUDEqualizerHidesFrequencyCaptionsOnlyInTheCompactHUD() { + // HUD height, minus its top bar, divider and the EQ view's vertical padding, + // then the 16 pt toolbar and 4 pt gap above the curve. + let compactCanvas: CGFloat = 76 - 24 - 1 - 2 * 2 - (16 + 4) + let regularCanvas: CGFloat = 100 - 28 - 1 - 4 * 2 - (16 + 4) + XCTAssertFalse(HUDEqualizerCurveView.showsFrequencyLabels(canvasHeight: compactCanvas), + "The compact curve is too short for captions under the band nodes") + XCTAssertTrue(HUDEqualizerCurveView.showsFrequencyLabels(canvasHeight: regularCanvas)) + } +} From a5aafbcae598c5543b7aaff4e640cf3503ac85fa Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 23:25:01 -0500 Subject: [PATCH 75/89] fix(library): never strand the library in a backup, and search artist folders - Only a store SQLite itself reports as damaged (NOTADB/CORRUPT or a failed quick_check) is moved to Library Backups. Any other open failure (full disk, permissions, a lock, a newer schema) leaves the file in place and runs the session in memory with a notice that it was left unchanged. - If a new store cannot be started after the move, the original files are put back so the next launch retries them; if that fails too, the notice names the backup folder. - The backup location is saved and shown at every launch until the user closes the notice or the folder is gone (not while still in memory). - Moving the store aside is all-or-nothing, so a failed move never leaves Library.store without its -wal. - A failed legacy import is reported and retried at up to three launches instead of being given up on at once; a failed copy now shows a notice. - In an in-memory session the "will not be saved" warning is repeated when an import batch ends, since each file clears the startup toast. - Search also matches the folders below the path all tracks share, so artist folders shown in group headers match while /Users//Music does not. Co-Authored-By: Claude Opus 5.5 --- Sources/App/IsolateApp.swift | 10 ++ Sources/Library/TrackModel.swift | 207 ++++++++++++++++++++++++++----- 2 files changed, 185 insertions(+), 32 deletions(-) diff --git a/Sources/App/IsolateApp.swift b/Sources/App/IsolateApp.swift index ab9ed19..c12bd69 100644 --- a/Sources/App/IsolateApp.swift +++ b/Sources/App/IsolateApp.swift @@ -337,6 +337,14 @@ struct ContentView: View { .onChange(of: isSidebarVisible) { _, visible in if !visible { activeMenuTrackID = nil } } + .onChange(of: importer.isImporting) { _, importing in + // Each file of a batch clears the startup warning, so repeat it when + // the batch ends: the tracks it added are gone after quitting. + guard !importing, LibraryStore.isInMemory else { return } + let current = engineManager.errorMessage ?? "" + guard !current.contains(LibraryStore.inMemoryWarning) else { return } + engineManager.showError(current.isEmpty ? LibraryStore.inMemoryWarning : current + " " + LibraryStore.inMemoryWarning) + } .onChange(of: engineManager.errorMessage) { _, message in // The toast is visual only; speak errors for VoiceOver users. if let message { AccessibilityNotification.Announcement("Error: \(message)").post() } @@ -493,6 +501,8 @@ struct ContentView: View { ErrorToastCard( message: errorMsg, onDismiss: { + // Closing a library recovery notice stops it repeating at launch. + LibraryStore.noticeDismissed(errorMsg) engineManager.dismissError() } ) diff --git a/Sources/Library/TrackModel.swift b/Sources/Library/TrackModel.swift index 2d9ca54..a361d06 100644 --- a/Sources/Library/TrackModel.swift +++ b/Sources/Library/TrackModel.swift @@ -42,18 +42,26 @@ extension Array where Element == TrackModel { } /// Matches only what identifies a track to the user: its title, source file - /// name and folder. Stem file names and full paths are shared by every - /// track, so matching them made common words return the whole library. + /// name and the folders below the path every track shares, so artist and + /// album folders match (as group headers show them) but /Users//Music + /// does not. Stem file names and shared path words are in every track, so + /// matching them made common words return the whole library. func matchingLibrarySearch(_ text: String) -> [TrackModel] { let query = text.trimmingCharacters(in: .whitespacesAndNewlines).lowercased() guard !query.isEmpty else { return self } let tokens = query.components(separatedBy: CharacterSet.alphanumerics.inverted).filter { !$0.isEmpty } - return filter { track in - let searchable = [track.title, track.originalURL.lastPathComponent, - track.originalURL.deletingLastPathComponent().lastPathComponent] + let folders: [[String]] = map { $0.originalURL.deletingLastPathComponent().pathComponents } + var shared = folders.first?.count ?? 0 + for folder in folders.dropFirst() { + shared = Swift.min(shared, zip(folders[0], folder).prefix { $0 == $1 }.count) + } + return zip(self, folders).filter { track, folder in + // Always keep the track's own folder, even when it is the shared one. + let names = folder.dropFirst(Swift.max(0, Swift.min(shared, folder.count - 1))) + let searchable = ([track.title, track.originalURL.lastPathComponent] + names) .joined(separator: " ").lowercased() return searchable.contains(query) || (!tokens.isEmpty && tokens.allSatisfy { searchable.contains($0) }) - } + }.map { $0.0 } } } @@ -78,9 +86,21 @@ enum LibraryStore { struct Opened { let container: ModelContainer let notice: String? + /// Where an unreadable library was moved, so later launches can still say so. + var backup: URL? = nil } private static var startupNotice: String? + /// True when no library file could be opened or created: nothing added in + /// this session survives quitting. + static private(set) var isInMemory = false + static let inMemoryWarning = "Isolate could not save its library, so tracks added in this session will be gone after you quit." + /// Backup folder of a library that was moved aside. Its notice is shown at + /// every launch until the user closes it. + static let recoveryBackupKey = "libraryRecoveryBackupPath" + static let legacyImportAttemptsKey = "legacyImportAttempts" + /// A legacy import that fails at this many launches is not tried again. + static let maxLegacyImportAttempts = 3 /// A message about library recovery for the main window to show once. static func takeStartupNotice() -> String? { @@ -90,46 +110,56 @@ enum LibraryStore { static func makeContainer() -> ModelContainer { guard !AppPreferences.isTesting else { return inMemoryContainer() } + let defaults = AppPreferences.defaults let opened = open(at: storeURL) - startupNotice = opened.notice - let isPersistent = opened.container.configurations.contains { !$0.isStoredInMemoryOnly } - if isPersistent, !AppPreferences.defaults.bool(forKey: legacyImportKey) { - do { - let result = try importLegacyLibrary(from: legacyStoreURL, into: opened.container.mainContext) - if case .failed(let message) = result { - startupNotice = [startupNotice, message].compactMap { $0 }.joined(separator: " ") - } - AppPreferences.defaults.set(true, forKey: legacyImportKey) - } catch { - // Copying failed (for example, no disk space); try again next launch. - NSLog("Isolate: could not read the previous library: \(error)") - } + if let backup = opened.backup { defaults.set(backup.path, forKey: recoveryBackupKey) } + startupNotice = opened.notice ?? pendingRecoveryNotice(defaults: defaults) + isInMemory = !opened.container.configurations.contains { !$0.isStoredInMemoryOnly } + if !isInMemory, let message = importLegacyLibraryIfNeeded(from: legacyStoreURL, into: opened.container.mainContext, + defaults: defaults) { + startupNotice = [startupNotice, message].compactMap { $0 }.joined(separator: " ") } return opened.container } - /// Opens the store at `url`. A store that cannot be opened is moved, never - /// deleted, into a timestamped backup folder before starting a new one; if - /// even that fails the session runs in memory and says so. - static func open(at url: URL, now: Date = .now) -> Opened { + /// Opens the store at `url`. Only a file SQLite itself finds damaged is + /// retired: it is moved, never deleted, into a timestamped backup folder and + /// a new library is started. Any other failure (no space, permissions, a + /// lock, a newer schema) may pass at a later launch, so the file stays in + /// place and the session runs in memory and says so. + static func open(at url: URL, now: Date = .now, + create: (URL) throws -> ModelContainer = persistentContainer(at:)) -> Opened { do { - return Opened(container: try persistentContainer(at: url), notice: nil) + return Opened(container: try create(url), notice: nil) } catch { NSLog("Isolate: could not open the library at \(url.path): \(error)") } + let unsaved = "Isolate could not open its library at \(url.path). Changes made in this session will not be saved." + guard isDamagedDatabase(url) else { + let kept = FileManager.default.fileExists(atPath: url.path) + ? " The library file was left unchanged; Isolate will try to open it again next launch." : "" + return Opened(container: inMemoryContainer(), notice: unsaved + kept) + } + var backup: URL? do { - let backup = try moveStoreAside(at: url, now: now) - let container = try persistentContainer(at: url) + backup = try moveStoreAside(at: url, now: now) + let container = try create(url) let kept = backup.map { " The previous library was moved to \($0.path)." } ?? "" - return Opened(container: container, notice: "Isolate could not open its library and started a new one.\(kept)") + return Opened(container: container, notice: "Isolate could not open its library and started a new one.\(kept)", + backup: backup) } catch { NSLog("Isolate: could not start a new library at \(url.path): \(error)") - return Opened(container: inMemoryContainer(), - notice: "Isolate could not open its library at \(url.path). Changes made in this session will not be saved.") } + // Put the library back so the next launch tries it again instead of + // quietly starting an empty one. + guard let moved = backup, !restoreStore(from: moved, to: url) else { + return Opened(container: inMemoryContainer(), notice: unsaved) + } + return Opened(container: inMemoryContainer(), + notice: unsaved + " The previous library was moved to \(moved.path).", backup: moved) } - private static func persistentContainer(at url: URL) throws -> ModelContainer { + nonisolated static func persistentContainer(at url: URL) throws -> ModelContainer { try FileManager.default.createDirectory(at: url.deletingLastPathComponent(), withIntermediateDirectories: true) return try ModelContainer(for: TrackModel.self, configurations: ModelConfiguration(url: url)) } @@ -146,6 +176,45 @@ enum LibraryStore { ["", "-wal", "-shm"].map { URL(fileURLWithPath: url.path + $0) } } + /// True only when SQLite reports the file damaged or not a database at all. + /// Opens it read-only; a missing or unreadable file is not damaged. + nonisolated static func isDamagedDatabase(_ url: URL) -> Bool { + guard FileManager.default.fileExists(atPath: url.path) else { return false } + var db: OpaquePointer? + defer { sqlite3_close(db) } + var statement: OpaquePointer? + defer { sqlite3_finalize(statement) } + var code = sqlite3_open_v2(url.path, &db, SQLITE_OPEN_READONLY, nil) + if code == SQLITE_OK { code = sqlite3_prepare_v2(db, "PRAGMA quick_check(1)", -1, &statement, nil) } + if code == SQLITE_OK { + code = sqlite3_step(statement) + if code == SQLITE_ROW, let result = sqlite3_column_text(statement, 0) { return String(cString: result) != "ok" } + } + return code & 0xFF == SQLITE_CORRUPT || code & 0xFF == SQLITE_NOTADB + } + + /// Moves every file or none: if one move fails, the files already moved go + /// back, so a store is never separated from its -wal. + private static func moveTogether(_ moves: [(from: URL, to: URL)]) throws { + let fm = FileManager.default + var done: [(from: URL, to: URL)] = [] + do { + for move in moves { + try fm.moveItem(at: move.from, to: move.to) + done.append(move) + } + } catch { + for move in done.reversed() { try? fm.moveItem(at: move.to, to: move.from) } + throw error + } + } + + private static func removeIfEmpty(_ directory: URL) { + if (try? FileManager.default.contentsOfDirectory(atPath: directory.path))?.isEmpty == true { + try? FileManager.default.removeItem(at: directory) + } + } + /// Moves the store and its SQLite sidecars together; a leftover -wal next to /// a new store could be replayed into it, so this throws unless all moved. static func moveStoreAside(at url: URL, now: Date) throws -> URL? { @@ -158,8 +227,11 @@ enum LibraryStore { let backup = url.deletingLastPathComponent() .appending(path: "Library Backups/\(formatter.string(from: now))", directoryHint: .isDirectory) try fm.createDirectory(at: backup, withIntermediateDirectories: true) - for file in files.reversed() { - try fm.moveItem(at: file, to: backup.appending(path: file.lastPathComponent)) + do { + try moveTogether(files.reversed().map { (from: $0, to: backup.appending(path: $0.lastPathComponent)) }) + } catch { + removeIfEmpty(backup) + throw error } guard !sidecars(of: url).contains(where: { fm.fileExists(atPath: $0.path) }) else { throw CocoaError(.fileWriteUnknown) @@ -167,6 +239,77 @@ enum LibraryStore { return backup } + /// Moves a library that was set aside back to `url`, replacing what a failed + /// attempt to start a new one left there. True when it is back in place. + static func restoreStore(from backup: URL, to url: URL) -> Bool { + let fm = FileManager.default + // Every original file is in `backup`; anything at `url` is new and empty. + for file in sidecars(of: url) where fm.fileExists(atPath: file.path) { + try? fm.removeItem(at: file) + } + let moves = sidecars(of: url).reversed() + .map { (from: backup.appending(path: $0.lastPathComponent), to: $0) } + .filter { fm.fileExists(atPath: $0.from.path) } + do { + try moveTogether(moves) + } catch { + NSLog("Isolate: could not put the library back from \(backup.path): \(error)") + return false + } + removeIfEmpty(backup) + removeIfEmpty(backup.deletingLastPathComponent()) + return true + } + + /// The notice for a library moved aside at an earlier launch. It is shown + /// at every launch until the user closes it or the backup folder is gone. + static func pendingRecoveryNotice(defaults: UserDefaults) -> String? { + guard let path = defaults.string(forKey: recoveryBackupKey) else { return nil } + guard FileManager.default.fileExists(atPath: path) else { + defaults.removeObject(forKey: recoveryBackupKey) + return nil + } + return "Isolate could not open its library and started a new one. The previous library was moved to \(path)." + } + + /// Closing the recovery notice is the acknowledgement that stops it. In an + /// in-memory session the new, empty library only starts next launch, so the + /// notice must still be shown then. + static func noticeDismissed(_ message: String, defaults: UserDefaults = AppPreferences.defaults) { + guard !isInMemory else { return } + if let path = defaults.string(forKey: recoveryBackupKey), message.contains(path) { + defaults.removeObject(forKey: recoveryBackupKey) + } + } + + /// Imports the pre-1.3 library once. A failure is reported and tried again + /// at the next launches, up to `maxLegacyImportAttempts`, since a full disk + /// or an unreadable file may be fixed by then. + static func importLegacyLibraryIfNeeded(from legacyURL: URL, into context: ModelContext, defaults: UserDefaults, + scratchDirectory: URL = FileManager.default.temporaryDirectory) -> String? { + guard !defaults.bool(forKey: legacyImportKey) else { return nil } + let result: LegacyImport + do { + result = try importLegacyLibrary(from: legacyURL, into: context, scratchDirectory: scratchDirectory) + } catch { + NSLog("Isolate: could not read the previous library: \(error)") + result = .failed("Isolate could not read its previous library; it was left unchanged at \(legacyURL.path).") + } + guard case .failed(let message) = result else { + defaults.set(true, forKey: legacyImportKey) + defaults.removeObject(forKey: legacyImportAttemptsKey) + return nil + } + let attempts = defaults.integer(forKey: legacyImportAttemptsKey) + 1 + guard attempts < maxLegacyImportAttempts else { + defaults.set(true, forKey: legacyImportKey) + defaults.removeObject(forKey: legacyImportAttemptsKey) + return message + } + defaults.set(attempts, forKey: legacyImportAttemptsKey) + return message + " Isolate will try again next launch." + } + /// Adds tracks from a library kept in the shared default.store. That store is /// never opened in place: SwiftData would migrate it to this schema and drop /// other apps' tables. Its files are copied, SQLite confirms the copy holds From 2463ff73a0faaba1326fdef773588fdf36158289 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 23:25:08 -0500 Subject: [PATCH 76/89] fix(shell): always answer a deferred quit, cancel exports at quit, harden the move prompt - The quit confirmation now answers .terminateLater from a run-loop timer in common modes instead of a Task, so the reply arrives even when terminate runs inside a main-queue job (it no longer hangs forever). - Move & Relaunch quits from a run-loop callout instead of the install Task; if the user keeps a separation or export running, the card resets. - Quitting during an export cancels it and waits up to 5 s for its temporary renders and zip process to be cleaned up, as separation already did. - NOT NOW, Escape and the backdrop cannot hide the card while installing, so an install failure is always seen; declining lasts for the whole launch even when the window is reopened. - The replace prompt says when the installed copy is newer, and the second click of a double-click can no longer confirm the replacement. - The completion notification reads "Stems Ready" for a single track. Co-Authored-By: Claude Opus 5.5 --- Sources/App/AppMoveHelper.swift | 42 +++++++++++++++++++++++++++++--- Sources/App/IsolateApp.swift | 37 +++++++++++++++++++++------- Sources/App/MenuBarManager.swift | 7 +++++- 3 files changed, 73 insertions(+), 13 deletions(-) diff --git a/Sources/App/AppMoveHelper.swift b/Sources/App/AppMoveHelper.swift index fe3fefe..063471c 100644 --- a/Sources/App/AppMoveHelper.swift +++ b/Sources/App/AppMoveHelper.swift @@ -10,6 +10,10 @@ public final class AppMoveHelper: ObservableObject { @Published public var moveErrorMessage: String? = nil /// Set when Applications already holds Isolate; replacing it needs a second click. @Published public var replacementPrompt: String? = nil + /// When the prompt appeared: the second click of a double-click on MOVE + /// must not confirm the replacement the first click just asked about. + private var promptShownAt: TimeInterval = 0 + private var didCheckLocation = false static let installURL = URL(filePath: "/Applications/Isolate.app") @@ -50,6 +54,10 @@ public final class AppMoveHelper: ObservableObject { } public func checkLocationOnStartup() { + // The window's onAppear repeats each time it is reopened; NOT NOW must + // still last for the whole launch. + guard !didCheckLocation else { return } + didCheckLocation = true #if !DEBUG // Earlier builds stored a permanent decline; "not now" is per launch. if AppPreferences.defaults.bool(forKey: "hasDeclinedMoveToApplications") { @@ -66,6 +74,8 @@ public final class AppMoveHelper: ObservableObject { } public func dismissMoveModal() { + // An install in progress keeps the card up so its failure is seen. + guard !isMoving else { return } shouldShowMoveModal = false replacementPrompt = nil moveErrorMessage = nil @@ -77,8 +87,18 @@ public final class AppMoveHelper: ObservableObject { return (plist["CFBundleIdentifier"] as? String, plist["CFBundleShortVersionString"] as? String) } + /// Says when the installed copy is newer, so replacing it reads as the downgrade it is. + nonisolated static func replacementPrompt(installed: String?, running: String?) -> String { + if let installed, let running, installed.compare(running, options: .numeric) == .orderedDescending { + return "A newer Isolate (\(installed)) is already in Applications; this copy is \(running). Replace it with this older version? The installed copy will be moved to the Trash." + } + let version = installed.map { " \($0)" } ?? "" + return "Isolate\(version) is already in Applications. Replace it? The installed copy will be moved to the Trash." + } + public func moveToApplications(replacingExisting: Bool = false) { guard !isMoving else { return } + if replacingExisting, ProcessInfo.processInfo.systemUptime - promptShownAt < NSEvent.doubleClickInterval { return } moveErrorMessage = nil let source = Bundle.main.bundleURL let destination = Self.installURL @@ -88,8 +108,9 @@ public final class AppMoveHelper: ObservableObject { moveErrorMessage = "A different app named Isolate is already in Applications. Drag Isolate into Applications in Finder to choose which to keep." return } - let version = installed?.version.map { " \($0)" } ?? "" - replacementPrompt = "Isolate\(version) is already in Applications. Replace it? The installed copy will be moved to the Trash." + let running = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as? String + replacementPrompt = Self.replacementPrompt(installed: installed?.version, running: running) + promptShownAt = ProcessInfo.processInfo.systemUptime return } isMoving = true @@ -102,7 +123,7 @@ public final class AppMoveHelper: ObservableObject { configuration.createsNewApplicationInstance = true _ = try await NSWorkspace.shared.openApplication(at: destination, configuration: configuration) // Keep this instance alive if macOS cannot launch the installed copy. - NSApp.terminate(nil) + quitAfterInstall() } catch { isMoving = false replacementPrompt = nil @@ -111,6 +132,21 @@ public final class AppMoveHelper: ObservableObject { } } + /// Quits from a run-loop callout rather than from the install Task: inside + /// a main-queue job, AppKit's wait for a quit confirmation cannot drain the + /// main queue, and the app would hang. + private func quitAfterInstall() { + RunLoop.main.perform(inModes: [.default]) { + MainActor.assumeIsolated { + NSApp.terminate(nil) + // Returns only when the user kept a separation or export running; + // the installed copy is already open. + self.isMoving = false + self.dismissMoveModal() + } + } + } + /// Copies the app next to `destination` first, so a failed copy never /// touches an existing installation. An existing app is only retired (moved /// to the Trash by default) when the user confirmed replacing it. diff --git a/Sources/App/IsolateApp.swift b/Sources/App/IsolateApp.swift index c12bd69..a0fcc95 100644 --- a/Sources/App/IsolateApp.swift +++ b/Sources/App/IsolateApp.swift @@ -125,18 +125,35 @@ final class IsolateAppDelegate: NSObject, NSApplicationDelegate { alert.addButton(withTitle: "Quit") } guard alert.runModal() == .alertSecondButtonReturn else { return .terminateCancel } - guard work == .separation else { return .terminateNow } - // Quit once the cancelled separation has removed its temporary files. - engine.cancelSplitAudio() - Task { @MainActor in - let deadline = ContinuousClock.now + .seconds(15) - while engine.isSplitting && ContinuousClock.now < deadline { - try? await Task.sleep(for: .milliseconds(50)) - } - NSApp.reply(toApplicationShouldTerminate: true) + // Quit once the cancelled work has removed its temporary files. + switch work { + case .separation: + engine.cancelSplitAudio() + Self.replyToTermination(within: .seconds(15), when: { !engine.isSplitting }) + case .export: + engine.cancelExport() + Self.replyToTermination(within: .seconds(5), when: { !engine.isExporting }) } return .terminateLater } + + /// Answers `.terminateLater` once `isDone` holds or `timeout` passes. Polls + /// with a run-loop timer, not a Task: when terminate is called from inside + /// a main-queue job, AppKit's wait for the reply cannot drain the main + /// queue, so a Task would never run and the app would never quit. + static func replyToTermination(within timeout: Duration, when isDone: @escaping @MainActor () -> Bool, + reply: @escaping @MainActor () -> Void = { NSApp.reply(toApplicationShouldTerminate: true) }) { + let deadline = ContinuousClock.now + timeout + let timer = Timer(timeInterval: 0.05, repeats: true) { timer in + MainActor.assumeIsolated { + guard isDone() || ContinuousClock.now >= deadline else { return } + timer.invalidate() + reply() + } + } + // Common modes include the modal-panel mode AppKit waits in. + RunLoop.main.add(timer, forMode: .common) + } } struct SplittingProgressModal: View { @@ -785,6 +802,8 @@ struct MoveToApplicationsModalCard: View { } .buttonStyle(.plain) .keyboardShortcut(.escape, modifiers: []) + // The card stays up while installing so a failure is seen. + .disabled(appMoveHelper.isMoving) .onHover { hovering in if hovering && !isSkipHovered { Haptics.playClick() } isSkipHovered = hovering diff --git a/Sources/App/MenuBarManager.swift b/Sources/App/MenuBarManager.swift index 0735932..0aa9f06 100644 --- a/Sources/App/MenuBarManager.swift +++ b/Sources/App/MenuBarManager.swift @@ -127,6 +127,11 @@ public final class MenuBarManager: NSObject, NSMenuDelegate { return img } + /// A single track needs no count; the subtitle already names it. + static func batchCompletionTitle(count: Int) -> String { + count == 1 ? "Stems Ready" : "Stems Ready (\(count) Tracks)" + } + public func sendBatchCompletionNotification(count: Int, lastTitle: String) { Task { let center = UNUserNotificationCenter.current() @@ -134,7 +139,7 @@ public final class MenuBarManager: NSObject, NSMenuDelegate { let granted = try await center.requestAuthorization(options: [.alert, .sound]) guard granted else { return } let content = UNMutableNotificationContent() - content.title = "Stems Ready (\(count) Tracks)" + content.title = Self.batchCompletionTitle(count: count) content.subtitle = lastTitle content.body = "Four-stem separation complete. Ready to play and mix." content.sound = .default From dc35f714ba8d6ba75ace81b76e5cadbe8f68b02b Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 23:25:13 -0500 Subject: [PATCH 77/89] test: cover library recovery, search, legacy retry, quit replies and move prompt FinalLibraryTests adds regression tests for library-1/2/4/5, shell-1/3/4/6 and export-2: a readable store that fails to open stays in place, a damaged one is put back when no new store can start (or its backup is named when it cannot), the recovery notice repeats until closed, a partial move aside is rolled back, artist folders are searchable but the shared path is not, a failed legacy copy is retried and then capped, the quit reply arrives from inside a main-queue job and at its deadline, and the move card cannot be dismissed while installing. Co-Authored-By: Claude Opus 5.5 --- Tests/IsolateTests/FinalLibraryTests.swift | 340 +++++++++++++++++++++ 1 file changed, 340 insertions(+) create mode 100644 Tests/IsolateTests/FinalLibraryTests.swift diff --git a/Tests/IsolateTests/FinalLibraryTests.swift b/Tests/IsolateTests/FinalLibraryTests.swift new file mode 100644 index 0000000..f1e7c08 --- /dev/null +++ b/Tests/IsolateTests/FinalLibraryTests.swift @@ -0,0 +1,340 @@ +import XCTest +import AppKit +import SwiftData +@testable import Isolate + +/// Final-wave fixes for the library store, search, quitting and the move prompt. +@MainActor +final class FinalLibraryTests: XCTestCase { + private var directory: URL! + private var defaults: UserDefaults! + private var suiteName: String! + + override func setUpWithError() throws { + directory = FileManager.default.temporaryDirectory.appending(path: "FinalLibraryTests-\(UUID().uuidString)") + try FileManager.default.createDirectory(at: directory, withIntermediateDirectories: true) + suiteName = "FinalLibraryTests-\(UUID().uuidString)" + defaults = UserDefaults(suiteName: suiteName) + } + + override func tearDownWithError() throws { + defaults.removePersistentDomain(forName: suiteName) + // Undo flags, ACLs and permission changes a test made so the folder can be removed. + runChmod(["-R", "-N", directory.path]) + if let enumerator = FileManager.default.enumerator(atPath: directory.path) { + while let relative = enumerator.nextObject() as? String { + let path = directory.appending(path: relative).path + _ = Darwin.chflags(path, 0) + try? FileManager.default.setAttributes([.posixPermissions: 0o755], ofItemAtPath: path) + } + } + try FileManager.default.removeItem(at: directory) + } + + private func runChmod(_ arguments: [String]) { + let process = Process() + process.executableURL = URL(filePath: "/bin/chmod") + process.arguments = arguments + process.standardError = FileHandle.nullDevice + try? process.run() + process.waitUntilExit() + } + + private func track(_ relativePath: String, title: String? = nil) -> TrackModel { + let original = directory.appending(path: relativePath) + let stems = directory.appending(path: "Stems/\(UUID().uuidString)") + return TrackModel(id: original.path, title: title ?? original.deletingPathExtension().lastPathComponent, + originalURL: original, + vocalStemURL: stems.appending(path: "vocals.wav"), bassStemURL: stems.appending(path: "bass.wav"), + drumStemURL: stems.appending(path: "drums.wav"), otherStemURL: stems.appending(path: "other.wav")) + } + + private func makeStore(at url: URL, trackCount: Int) throws { + try FileManager.default.createDirectory(at: url.deletingLastPathComponent(), withIntermediateDirectories: true) + let container = try ModelContainer(for: TrackModel.self, configurations: ModelConfiguration(url: url)) + for index in 0.. [String: Data] { + var files: [String: Data] = [:] + for suffix in ["", "-wal", "-shm"] { + let file = URL(fileURLWithPath: url.path + suffix) + files[suffix] = try? Data(contentsOf: file) + } + return files + } + + private func writeDamagedStore(at store: URL, wal: Bool) throws -> Data { + try FileManager.default.createDirectory(at: store.deletingLastPathComponent(), withIntermediateDirectories: true) + let garbage = Data((0..<8192).map { UInt8(truncatingIfNeeded: $0 &* 31 &+ 7) }) + try garbage.write(to: store) + if wal { try Data([1, 2, 3]).write(to: URL(fileURLWithPath: store.path + "-wal")) } + return garbage + } + + private var failingCreate: (URL) throws -> ModelContainer { + { _ in throw CocoaError(.fileWriteOutOfSpace) } + } + + // MARK: - library-2: search matches artist and album folders, not the shared path + + func testSearchMatchesArtistFoldersButNotThePathEveryTrackShares() { + let library = [track("Music/Kanye West/Graduation/01 Good Morning.mp3", title: "Good Morning"), + track("Music/Kanye West/Greatest Hits/01 Intro.mp3", title: "Kanye Intro"), + track("Music/Daft Punk/Greatest Hits/01 Intro.mp3", title: "Daft Intro")] + func titles(_ query: String) -> [String] { library.matchingLibrarySearch(query).map(\.title) } + XCTAssertEqual(titles("kanye"), ["Good Morning", "Kanye Intro"], "The artist folder above the album is searchable") + XCTAssertEqual(titles("kanye west"), ["Good Morning", "Kanye Intro"]) + XCTAssertEqual(titles("daft punk"), ["Daft Intro"]) + XCTAssertEqual(titles("kanye greatest"), ["Kanye Intro"]) + XCTAssertEqual(titles("greatest hits"), ["Kanye Intro", "Daft Intro"]) + XCTAssertEqual(titles("music"), [], "A folder every track shares must not match the whole library") + XCTAssertEqual(titles(directory.lastPathComponent.lowercased()), []) + XCTAssertEqual(titles("users"), []) + + let single = [track("Music/Kanye West/Graduation/01 Good Morning.mp3", title: "Good Morning")] + XCTAssertEqual(single.matchingLibrarySearch("graduation").map(\.title), ["Good Morning"], + "A track's own folder stays searchable even when it is the shared one") + } + + // MARK: - library-1: recovery never hides or strands the only copy of the library + + func testLibraryThatFailsToOpenButIsNotDamagedStaysInPlace() throws { + let store = directory.appending(path: "Isolate/Library.store") + try makeStore(at: store, trackCount: 3) + // The -shm is SQLite's shared wal-index, which any reader updates. + func data() -> [String: Data] { contents(store).filter { $0.key != "-shm" } } + let before = data() + + // A full disk, a lock or a permission problem can pass by the next launch. + let opened = LibraryStore.open(at: store, create: failingCreate) + XCTAssertTrue(opened.container.configurations.allSatisfy { $0.isStoredInMemoryOnly }) + XCTAssertNil(opened.backup) + let notice = try XCTUnwrap(opened.notice) + XCTAssertTrue(notice.contains("will not be saved"), notice) + XCTAssertTrue(notice.contains("left unchanged"), notice) + XCTAssertEqual(data(), before, "The library files must not be moved or changed") + XCTAssertFalse(FileManager.default.fileExists(atPath: directory.appending(path: "Isolate/Library Backups").path)) + + let reopened = LibraryStore.open(at: store) + XCTAssertNil(reopened.notice) + XCTAssertEqual(try reopened.container.mainContext.fetchCount(FetchDescriptor()), 3) + } + + func testUnreadableButIntactLibraryFileIsNotMovedAside() throws { + let store = directory.appending(path: "Isolate/Library.store") + try makeStore(at: store, trackCount: 2) + try FileManager.default.setAttributes([.posixPermissions: 0o000], ofItemAtPath: store.path) + + let opened = LibraryStore.open(at: store) + XCTAssertTrue(opened.container.configurations.allSatisfy { $0.isStoredInMemoryOnly }) + XCTAssertTrue(opened.notice?.contains("left unchanged") == true, opened.notice ?? "no notice") + XCTAssertTrue(FileManager.default.fileExists(atPath: store.path)) + XCTAssertFalse(FileManager.default.fileExists(atPath: directory.appending(path: "Isolate/Library Backups").path)) + + try FileManager.default.setAttributes([.posixPermissions: 0o644], ofItemAtPath: store.path) + let reopened = LibraryStore.open(at: store) + XCTAssertEqual(try reopened.container.mainContext.fetchCount(FetchDescriptor()), 2) + } + + func testDamagedLibraryIsPutBackWhenNoNewLibraryCanBeStarted() throws { + let store = directory.appending(path: "Isolate/Library.store") + let garbage = try writeDamagedStore(at: store, wal: true) + var attempts = 0 + let opened = LibraryStore.open(at: store, now: Date(timeIntervalSince1970: 1_800_000_000)) { url in + attempts += 1 + // The failed second attempt leaves a new, empty store behind. + if attempts == 2 { try Data().write(to: url) } + throw CocoaError(.fileWriteOutOfSpace) + } + XCTAssertEqual(attempts, 2) + XCTAssertTrue(opened.container.configurations.allSatisfy { $0.isStoredInMemoryOnly }) + XCTAssertNil(opened.backup, "The library is back in place, so there is no backup to report") + XCTAssertTrue(opened.notice?.contains("will not be saved") == true, opened.notice ?? "no notice") + XCTAssertEqual(try Data(contentsOf: store), garbage) + XCTAssertEqual(try Data(contentsOf: URL(fileURLWithPath: store.path + "-wal")), Data([1, 2, 3])) + XCTAssertFalse(FileManager.default.fileExists(atPath: directory.appending(path: "Isolate/Library Backups").path), + "The emptied backup folder is removed") + } + + func testDamagedLibraryThatCannotBePutBackNamesItsBackup() throws { + let folder = directory.appending(path: "Isolate") + let store = folder.appending(path: "Library.store") + let garbage = try writeDamagedStore(at: store, wal: false) + // The folder refuses new files but still lets existing ones be moved out. + runChmod(["+a", "everyone deny add_file", folder.path]) + defer { runChmod(["-N", folder.path]) } + + let opened = LibraryStore.open(at: store, now: Date(timeIntervalSince1970: 1_800_000_000)) + XCTAssertTrue(opened.container.configurations.allSatisfy { $0.isStoredInMemoryOnly }) + let backup = try XCTUnwrap(opened.backup, "The caller must keep reporting where the library went") + let notice = try XCTUnwrap(opened.notice) + XCTAssertTrue(notice.contains(backup.path), notice) + XCTAssertTrue(notice.contains("will not be saved"), notice) + XCTAssertEqual(try Data(contentsOf: backup.appending(path: "Library.store")), garbage) + } + + func testRecoveryNoticeRepeatsUntilClosedOrTheBackupIsGone() throws { + let store = directory.appending(path: "Isolate/Library.store") + _ = try writeDamagedStore(at: store, wal: true) + let opened = LibraryStore.open(at: store, now: Date(timeIntervalSince1970: 1_800_000_000)) + XCTAssertFalse(opened.container.configurations.contains { $0.isStoredInMemoryOnly }) + let backup = try XCTUnwrap(opened.backup) + XCTAssertTrue(opened.notice?.contains(backup.path) == true, opened.notice ?? "no notice") + + XCTAssertNil(LibraryStore.pendingRecoveryNotice(defaults: defaults)) + defaults.set(backup.path, forKey: LibraryStore.recoveryBackupKey) + let pending = try XCTUnwrap(LibraryStore.pendingRecoveryNotice(defaults: defaults)) + XCTAssertTrue(pending.contains(backup.path), pending) + LibraryStore.noticeDismissed("Export failed: something else", defaults: defaults) + XCTAssertEqual(LibraryStore.pendingRecoveryNotice(defaults: defaults), pending, "Other toasts do not acknowledge it") + LibraryStore.noticeDismissed(pending, defaults: defaults) + XCTAssertNil(LibraryStore.pendingRecoveryNotice(defaults: defaults)) + + defaults.set(backup.path, forKey: LibraryStore.recoveryBackupKey) + try FileManager.default.removeItem(at: backup) + XCTAssertNil(LibraryStore.pendingRecoveryNotice(defaults: defaults), "Nothing to point at once the backup is gone") + XCTAssertNil(defaults.string(forKey: LibraryStore.recoveryBackupKey)) + } + + // MARK: - library-5: a partial move aside is rolled back + + func testPartialMoveAsideLeavesTheStoreWithItsSidecars() throws { + let store = directory.appending(path: "Isolate/Library.store") + try FileManager.default.createDirectory(at: store.deletingLastPathComponent(), withIntermediateDirectories: true) + try Data("store".utf8).write(to: store) + try Data("wal".utf8).write(to: URL(fileURLWithPath: store.path + "-wal")) + try Data("shm".utf8).write(to: URL(fileURLWithPath: store.path + "-shm")) + let before = contents(store) + // The sidecars move first; the store itself then cannot be moved. + XCTAssertEqual(Darwin.chflags(store.path, UInt32(UF_IMMUTABLE)), 0) + defer { _ = Darwin.chflags(store.path, 0) } + + XCTAssertThrowsError(try LibraryStore.moveStoreAside(at: store, now: Date(timeIntervalSince1970: 1_800_000_000))) + XCTAssertEqual(contents(store), before, "The -wal and -shm must be moved back next to the store") + let backups = directory.appending(path: "Isolate/Library Backups") + XCTAssertEqual((try? FileManager.default.contentsOfDirectory(atPath: backups.path)) ?? [], [], + "No half-filled backup folder is left behind") + } + + // MARK: - library-4: the legacy import is retried after a failure + + func testLegacyImportRetriesAFailedCopyAndReportsIt() throws { + let legacy = directory.appending(path: "Shared/default.store") + try makeStore(at: legacy, trackCount: 2) + let memory = try ModelContainer(for: TrackModel.self, configurations: ModelConfiguration(isStoredInMemoryOnly: true)) + let scratch = directory.appending(path: "Scratch") + try FileManager.default.createDirectory(at: scratch, withIntermediateDirectories: true) + try FileManager.default.setAttributes([.posixPermissions: 0o555], ofItemAtPath: scratch.path) + + for attempt in 1..()), 2) + } + + func testLegacyImportStopsRetryingAfterRepeatedFailures() throws { + let legacy = directory.appending(path: "Shared/default.store") + try makeStore(at: legacy, trackCount: 1) + let memory = try ModelContainer(for: TrackModel.self, configurations: ModelConfiguration(isStoredInMemoryOnly: true)) + let scratch = directory.appending(path: "Scratch") + try FileManager.default.createDirectory(at: scratch, withIntermediateDirectories: true) + try FileManager.default.setAttributes([.posixPermissions: 0o555], ofItemAtPath: scratch.path) + + var messages: [String] = [] + for _ in 0.. Date: Fri, 25 Sep 2026 23:39:27 -0500 Subject: [PATCH 78/89] fix(audio): start seeks and loop wraps three IO cycles after the newest render Loop wraps and seeks still waited out the host-time lead (per-player term, presentation latency and a 5 ms pad), about 0.1 s of silence at a 512-frame buffer. The render-timeline start now uses its own lead: three output cycles past the newest render on the players' timeline, scaled by the time/pitch rate, and it retries unless every play(at:) landed with at least two cycles to spare. The long host-time lead and retry remain only for the fallback, and the watchdog is unchanged. The frame is derived from sample time alone. While the engine is paused the players' sample time stands still but the host time reported with it keeps the pause as an offset, so mapping a host time through it started every seek or wrap after a pause late by the pause (0.5 s measured) until the watchdog switched the session to host-time starts. After the engine starts, the anchor waits for its first render so it is never the one from before the stop. The host-time retry cap also leaves room past the margin on outputs whose latency alone nears 2 s, so later attempts can succeed. Measured on this Mac (512 frames at 48 kHz): loop-wrap gaps 32-43 ms, down from 99-104 ms; a wrap after a 0.8 s pause 32 ms, down from 493 ms with a watchdog restart. Co-Authored-By: Claude Opus 5.5 --- Sources/App/AudioEngineManager.swift | 94 ++++++---- Tests/IsolateTests/FinalEngineTests.swift | 219 ++++++++++++++++++++++ 2 files changed, 280 insertions(+), 33 deletions(-) create mode 100644 Tests/IsolateTests/FinalEngineTests.swift diff --git a/Sources/App/AudioEngineManager.swift b/Sources/App/AudioEngineManager.swift index a40f62b..3255b86 100644 --- a/Sources/App/AudioEngineManager.swift +++ b/Sources/App/AudioEngineManager.swift @@ -1531,15 +1531,17 @@ public final class AudioEngineManager { schedulePlayers(from: frame) } pausedFrame = nil + var startedEngine = false if !engine.isRunning { do { try engine.start() + startedEngine = true } catch { showError("Could not start audio output: \(error.localizedDescription)") return } } - if !resumesPausedPlayers { startPlayersTogether() } + if !resumesPausedPlayers { startPlayersTogether(afterEngineStart: startedEngine) } self.isPlaying = true self.startPlaybackTimer() @@ -1563,62 +1565,88 @@ public final class AudioEngineManager { /// Starts all players on one frame of the engine's render timeline. A host-time start /// makes each play(at:) wait about one IO cycle and, measured on a real Mac, still /// misaligned about one seek in five; a sample-time start returns immediately and lands - /// every player on the same render frame. Before the engine has rendered once there is - /// no timeline yet, so the first start falls back to a host time with a lead that covers - /// the blocking calls, rescheduling and retrying with a measured lead if they overran it. - private func startPlayersTogether() { + /// every player on the same render frame, a few IO cycles ahead so seeks and loop wraps + /// stay short. Without a usable timeline, or when this output ignored one, the start + /// falls back to a host time with a lead that covers the blocking calls, rescheduling + /// and retrying with a measured lead if they overran it. + private func startPlayersTogether(afterEngineStart: Bool = false) { var players = [vocalPlayer, drumPlayer, bassPlayer, otherPlayer] if audioFile != nil { players.append(originalPlayer) } var cycle = outputCycleDuration() + var attempt = 0 + if !renderTimelineStartUnreliable { + while attempt < 3, let start = renderTimelineStart(cycle: cycle, afterEngineStart: afterEngineStart && attempt == 0) { + attempt += 1 + let issued = mach_absolute_time() + for player in players { player.play(at: start.time) } + let took = AVAudioTime.seconds(forHostTime: mach_absolute_time() - issued) + // Every call must land before the render that reaches the start frame, so the + // newest render may have advanced by at most one cycle while they ran. + let newest = vocalPlayer.lastRenderTime.map { $0.isSampleTimeValid ? $0.sampleTime : start.anchor } ?? start.anchor + let startedTogether = newest + 2 * start.framesPerCycle <= start.time.sampleTime + lastStartReport = StartReport(attempts: attempt, lead: start.lead, callDuration: took, startedTogether: startedTogether, + usedRenderTimeline: true, watchdogRestarts: watchdogRestarts) + if startedTogether { + verifyStartTookEffect(session: playbackSessionID, after: start.lead) + return + } + stopPlayers() + timePitchNode.reset() + schedulePlayers(from: seekFrameOffset) + } + } var margin = 4 * cycle + engine.outputNode.presentationLatency + 0.005 var lead = Double(players.count + 1) * cycle + margin - let attempts = 4 - for attempt in 1...attempts { + let attempts = attempt + 4 + while attempt < attempts { + attempt += 1 let issued = mach_absolute_time() let startHostTime = issued + AVAudioTime.hostTime(forSeconds: lead) - let timelineStart = renderTimelineStartUnreliable ? nil : renderTimelineStart(at: startHostTime) - let startTime = timelineStart ?? AVAudioTime(hostTime: startHostTime) - for player in players { player.play(at: startTime) } + for player in players { player.play(at: AVAudioTime(hostTime: startHostTime)) } let finished = mach_absolute_time() let took = AVAudioTime.seconds(forHostTime: finished - issued) cycle = max(cycle, took / Double(players.count)) margin = 4 * cycle + engine.outputNode.presentationLatency + 0.005 let startedTogether = finished + AVAudioTime.hostTime(forSeconds: margin) <= startHostTime lastStartReport = StartReport(attempts: attempt, lead: lead, callDuration: took, startedTogether: startedTogether, - usedRenderTimeline: timelineStart != nil, watchdogRestarts: watchdogRestarts) - if startedTogether || attempt == attempts { - verifyStartTookEffect(session: playbackSessionID, after: lead) - return - } + usedRenderTimeline: false, watchdogRestarts: watchdogRestarts) + guard !startedTogether, attempt < attempts else { return } stopPlayers() timePitchNode.reset() schedulePlayers(from: seekFrameOffset) - lead = min(2, max(lead * 2, took * 1.5 + margin)) + // The cap leaves room past the margin on outputs whose latency alone nears 2 s. + lead = min(max(2, margin + 0.5), max(lead * 2, took * 1.5 + margin)) } } - /// The host-time start mapped onto the players' own render timeline (44.1 kHz) through - /// the last render timestamp. Every player receives the same frame, and that frame is a - /// real future moment even when the timestamp is stale or rendering runs far ahead. Waits - /// briefly for the first render after the engine starts. The output node runs at the - /// device rate, so its timeline must never be used for the players. - private func renderTimelineStart(at hostTime: UInt64) -> AVAudioTime? { + /// A start three output cycles past the newest render on the players' own timeline + /// (44.1 kHz). The output node runs at the device rate, so its timeline must never be + /// used for the players. The frame comes from sample time alone: sample time stands still + /// while the engine is paused, but the host time reported with it then trails real time + /// by the pause, so a start mapped through host time would come that much late. Right + /// after the engine starts, waits briefly for its first render so the anchor is current. + private func renderTimelineStart(cycle: TimeInterval, afterEngineStart: Bool) + -> (time: AVAudioTime, anchor: AVAudioFramePosition, framesPerCycle: AVAudioFramePosition, lead: TimeInterval)? { func usable(_ time: AVAudioTime?) -> Bool { guard let time else { return false } - return time.isSampleTimeValid && time.isHostTimeValid && time.sampleRate > 0 + return time.isSampleTimeValid && time.sampleRate > 0 } var anchor = vocalPlayer.lastRenderTime + // Until the restarted engine renders, the reported time is the one from before it stopped. + let stale = afterEngineStart && usable(anchor) ? anchor?.sampleTime : nil let deadline = Date().addingTimeInterval(0.1) - while !usable(anchor), engine.isRunning, Date() < deadline { - usleep(2_000) + while !usable(anchor) || anchor?.sampleTime == stale, engine.isRunning, Date() < deadline { + usleep(1_000) anchor = vocalPlayer.lastRenderTime } - guard usable(anchor), let anchor else { return nil } - let offset = hostTime >= anchor.hostTime - ? AVAudioTime.seconds(forHostTime: hostTime - anchor.hostTime) - : -AVAudioTime.seconds(forHostTime: anchor.hostTime - hostTime) - return AVAudioTime(sampleTime: anchor.sampleTime + AVAudioFramePosition((offset * anchor.sampleRate).rounded()), - atRate: anchor.sampleRate) + guard usable(anchor), let anchor, anchor.sampleTime != stale else { return nil } + // Time/pitch pulls the players `speed` times faster than the output plays them. + let speed = timePitchNode.bypass ? 1 : Double(timePitchNode.rate) + let perCycle: Double = cycle * anchor.sampleRate * max(1, speed) + let framesPerCycle = AVAudioFramePosition(perCycle.rounded(.up)) + let frame = anchor.sampleTime + 3 * framesPerCycle + let lead: TimeInterval = Double(3 * framesPerCycle) / (anchor.sampleRate * speed) + return (AVAudioTime(sampleTime: frame, atRate: anchor.sampleRate), anchor.sampleTime, framesPerCycle, lead) } /// A start that never takes effect leaves every player silent. Once the start time has @@ -1642,8 +1670,8 @@ public final class AudioEngineManager { } } - /// One output IO cycle, never taken as shorter than 512 frames. - private func outputCycleDuration() -> TimeInterval { + /// One output IO cycle, never taken as shorter than 512 frames. Internal for tests. + func outputCycleDuration() -> TimeInterval { var frames: UInt32 = 0 var size = UInt32(MemoryLayout.size) if let unit = engine.outputNode.audioUnit { diff --git a/Tests/IsolateTests/FinalEngineTests.swift b/Tests/IsolateTests/FinalEngineTests.swift new file mode 100644 index 0000000..3eb6f21 --- /dev/null +++ b/Tests/IsolateTests/FinalEngineTests.swift @@ -0,0 +1,219 @@ +import XCTest +import AVFoundation +import IOKit.pwr_mgt +import os +@testable import Isolate + +@MainActor +final class FinalEngineTests: XCTestCase { + private var directory: URL! + private var restoreAutoPlay: (() -> Void)? + + override func setUpWithError() throws { + directory = FileManager.default.temporaryDirectory.appending(path: UUID().uuidString) + try FileManager.default.createDirectory(at: directory, withIntermediateDirectories: true) + // Hosted tests share one preferences domain; these tests rely on autoplay. + let key = "isAutoPlayDisabled" + let previous = AppPreferences.defaults.object(forKey: key) as? Bool + AppPreferences.defaults.set(false, forKey: key) + restoreAutoPlay = { + if let previous { AppPreferences.defaults.set(previous, forKey: key) } + else { AppPreferences.defaults.removeObject(forKey: key) } + } + } + + override func tearDownWithError() throws { + restoreAutoPlay?() + try FileManager.default.removeItem(at: directory) + } + + // MARK: - Fixtures + + /// Deterministic white noise in every stem, scaled per stem in model order. Scales + /// 3, -1, -1, -1 sum to exact silence only while all four players render the same frame. + private func noiseTrack(seconds: Double, scales: [Float], folder: String = "stems") throws -> TrackModel { + let stems = directory.appending(path: folder) + try FileManager.default.createDirectory(at: stems, withIntermediateDirectories: true) + func write(_ url: URL, scale: Float) throws { + var state: UInt64 = 0x9E37_79B9_7F4A_7C15 + try Hardening.write(url, frames: Int(44_100 * seconds)) { _ in + state = state &* 6_364_136_223_846_793_005 &+ 1_442_695_040_888_963_407 + return (Float(state >> 40) / Float(1 << 24) * 2 - 1) * 0.1 * scale + } + } + let original = stems.appending(path: "original.wav") + try write(original, scale: 1) + let urls = DemucsEngine.stemNames.map { stems.appending(path: "\($0).wav") } + for (url, scale) in zip(urls, scales) { try write(url, scale: scale) } + return TrackModel(id: original.path, title: "Timing Probe", originalURL: original, + vocalStemURL: urls[0], bassStemURL: urls[2], drumStemURL: urls[1], otherStemURL: urls[3]) + } + + /// Collects channel 0 of every tap buffer in delivery order. + private final class TapRecorder: @unchecked Sendable { + private let lock = NSLock() + private var samples: [Float] = [] + + /// Formed outside the main actor: the tap runs on the audio engine's thread. + var tap: AVAudioNodeTapBlock { + { [self] buffer, _ in + guard let channel = buffer.floatChannelData?[0] else { return } + let chunk = Array(UnsafeBufferPointer(start: channel, count: Int(buffer.frameLength))) + lock.lock() + samples.append(contentsOf: chunk) + lock.unlock() + } + } + + /// Silent runs with audio on both sides, in seconds. + func silentGaps() -> [Double] { + lock.lock() + defer { lock.unlock() } + var gaps: [Double] = [] + var heardAudio = false + var silent = 0 + for sample in samples { + if abs(sample) < 1e-7 { + silent += 1 + } else { + if heardAudio && silent >= 32 { gaps.append(Double(silent) / 44_100) } + heardAudio = true + silent = 0 + } + } + return gaps + } + + /// Stretches of audible output, in seconds; zero crossings within 256 frames do not split one. + func audibleStretches() -> [Double] { + lock.lock() + defer { lock.unlock() } + var stretches: [Double] = [] + var first: Int? + var last = 0 + for (index, sample) in samples.enumerated() where abs(sample) >= 1e-3 { + if let start = first, index - last > 256 { + stretches.append(Double(last - start + 1) / 44_100) + first = index + } else if first == nil { + first = index + } + last = index + } + if let first { stretches.append(Double(last - first + 1) / 44_100) } + return stretches + } + } + + /// Records what the master limiter renders while `body` runs. + private func recordOutput(_ engine: AudioEngineManager, during body: () async throws -> Void) async throws -> TapRecorder { + let recorder = TapRecorder() + engine.masterLimiter.installTap(onBus: 0, bufferSize: 4096, format: nil, block: recorder.tap) + defer { engine.masterLimiter.removeTap(onBus: 0) } + try await body() + // Let the tap deliver its last buffer (about 0.1 s) before reading. + try await Task.sleep(for: .milliseconds(250)) + return recorder + } + + /// The short gaps come from render-timeline starts. An output that never honored one + /// makes the engine use host-time starts for good, which these measurements do not cover. + private func requireRenderTimelineStarts(_ engine: AudioEngineManager) async throws { + // Past the watchdog, which checks the start a quarter second after it was due. + try await Task.sleep(for: .milliseconds(500)) + guard let report = engine.lastStartReport, report.usedRenderTimeline, report.watchdogRestarts == 0 else { + throw XCTSkip("This output does not honor render-timeline starts: \(describe(engine))") + } + } + + private func describe(_ engine: AudioEngineManager) -> String { + engine.lastStartReport.map { + "attempts \($0.attempts), lead \(String(format: "%.3f", $0.lead)) s, together \($0.startedTogether), timeline \($0.usedRenderTimeline), watchdog restarts \($0.watchdogRestarts)" + } ?? "no start report" + } + + private func milliseconds(_ durations: [Double]) -> String { + durations.map { String(format: "%.1f ms", $0 * 1000) }.joined(separator: ", ") + } + + /// Loops the shortest region allowed, where a long gap costs the most, from `start`. + /// The seek into it also flushes the time/pitch tail, so recordings begin after it. + private func loopShortestRegion(_ engine: AudioEngineManager, from start: Double) async throws { + let duration = try XCTUnwrap(engine.totalTrackDuration) + engine.setLoopStart(start) + engine.setLoopEnd(start + AudioEngineManager.minimumLoopSeconds / duration) + engine.seek(toPercentage: start) + try await Task.sleep(for: .milliseconds(150)) + } + + // MARK: - Short, aligned restarts + + func testLoopWrapsLeaveOnlyAShortSilentGap() async throws { + let engine = AudioEngineManager() + await engine.loadTrack(try noiseTrack(seconds: 6, scales: [1, 1, 1, 1])) + try Hardening.requirePlayback(engine) + try await requireRenderTimelineStarts(engine) + try await loopShortestRegion(engine, from: 0.2) + let gaps = try await recordOutput(engine) { + try await Task.sleep(for: .milliseconds(2300)) + }.silentGaps() + XCTAssertGreaterThanOrEqual(gaps.count, 3, "Expected a gap at each wrap: \(milliseconds(gaps))") + // Each wrap waited about 0.11 s at a 512-frame buffer before the fix; the render-timeline + // start needs about three IO cycles after the stop. + let limit = max(0.06, 5 * engine.outputCycleDuration()) + print("Loop wrap gaps: \(milliseconds(gaps)); IO cycle \(String(format: "%.1f", engine.outputCycleDuration() * 1000)) ms") + let median = gaps.sorted()[gaps.count / 2] + XCTAssertLessThan(median, limit, "Loop wraps went silent too long: \(milliseconds(gaps)) (\(describe(engine)))") + XCTAssertEqual(engine.lastStartReport?.watchdogRestarts, 0) + engine.unloadTrack() + } + + func testLoopWrapsStartTheStemsTogether() async throws { + let engine = AudioEngineManager() + await engine.loadTrack(try noiseTrack(seconds: 6, scales: [3, -1, -1, -1])) + try Hardening.requirePlayback(engine) + try await requireRenderTimelineStarts(engine) + try await loopShortestRegion(engine, from: 0.5) + var stems = [Float](repeating: 0, count: 4) + let stretches = try await recordOutput(engine) { + let clock = ContinuousClock() + let end = clock.now + .milliseconds(2300) + while clock.now < end { + try await Task.sleep(for: .milliseconds(15)) + for index in stems.indices { stems[index] = max(stems[index], engine.stemMeters[index].peak) } + } + }.audibleStretches() + // Every stem must be audible on its own, or a silent sum would prove nothing. + for (index, peak) in stems.enumerated() { + XCTAssertGreaterThan(peak, 0.05, "Stem \(index) did not play (\(describe(engine)))") + } + // Stopping the five players can span a render cycle or two as a pass ends; players + // started on different frames would leave the whole next pass uncancelled. + let limit = 4 * engine.outputCycleDuration() + XCTAssertLessThan(stretches.max() ?? 0, limit, "A wrap started the stems apart: \(milliseconds(stretches)) (\(describe(engine)))") + XCTAssertEqual(engine.lastStartReport?.watchdogRestarts, 0) + engine.unloadTrack() + } + + func testLoopWrapAfterAPauseStartsPromptly() async throws { + let engine = AudioEngineManager() + await engine.loadTrack(try noiseTrack(seconds: 6, scales: [1, 1, 1, 1])) + try Hardening.requirePlayback(engine) + try await requireRenderTimelineStarts(engine) + try await loopShortestRegion(engine, from: 0.3) + let gaps = try await recordOutput(engine) { + // While paused the players' sample time stands still, but the host time reported with + // it keeps counting, so a start derived from host time would come late by the pause. + engine.togglePlayback() + try await Task.sleep(for: .milliseconds(800)) + engine.togglePlayback() + try await Task.sleep(for: .milliseconds(1300)) + }.silentGaps() + print("Loop wrap gaps after a pause: \(milliseconds(gaps))") + XCTAssertEqual(engine.lastStartReport?.watchdogRestarts, 0, "A start after the pause never took effect (\(describe(engine)))") + XCTAssertFalse(gaps.isEmpty, "Expected a gap at each wrap") + // A host-time start left about 0.4 s of silence here, until the watchdog restarted it. + XCTAssertLessThan(gaps.max() ?? 0, 0.2, "A wrap after the pause went silent too long: \(milliseconds(gaps))") + engine.unloadTrack() + } +} From 4fcf1da5a16f6a661d43f26bcc5060627d99d57a Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 23:39:40 -0500 Subject: [PATCH 79/89] fix(audio): replay a finished track when its row is selected again Reselecting the loaded track returns early to keep its mix, loop, speed and position, which also swallowed the click once the track had played to its end. With autoplay on, a stopped track at its end now plays again from the start, or from the loop start when looping, like the menu and media-key selection already did. Playing or paused mid-track, reselecting still changes nothing. Co-Authored-By: Claude Opus 5.5 --- Sources/App/AudioEngineManager.swift | 9 ++++-- Tests/IsolateTests/FinalEngineTests.swift | 39 +++++++++++++++++++++++ 2 files changed, 46 insertions(+), 2 deletions(-) diff --git a/Sources/App/AudioEngineManager.swift b/Sources/App/AudioEngineManager.swift index 3255b86..7f4f347 100644 --- a/Sources/App/AudioEngineManager.swift +++ b/Sources/App/AudioEngineManager.swift @@ -962,9 +962,14 @@ public final class AudioEngineManager { public func loadTrack(_ track: TrackModel) async { guard !isSplitting else { return } - // Reselecting the loaded track keeps its mix, loop, speed and position. + // Reselecting the loaded track keeps its mix, loop, speed and position; once it has + // played to the end, reselecting it plays it again like selecting any other track. if track.id == currentTrackID, let loaded = fileVocals?.url, - loaded.standardizedFileURL == track.vocalStemURL.standardizedFileURL { return } + loaded.standardizedFileURL == track.vocalStemURL.standardizedFileURL { + if !isPlaying, playbackProgress >= 1, + !AppPreferences.defaults.bool(forKey: "isAutoPlayDisabled") { togglePlayback() } + return + } lastImportCancelled = false let urls = [track.vocalStemURL, track.drumStemURL, track.bassStemURL, track.otherStemURL] do { diff --git a/Tests/IsolateTests/FinalEngineTests.swift b/Tests/IsolateTests/FinalEngineTests.swift index 3eb6f21..69208bf 100644 --- a/Tests/IsolateTests/FinalEngineTests.swift +++ b/Tests/IsolateTests/FinalEngineTests.swift @@ -216,4 +216,43 @@ final class FinalEngineTests: XCTestCase { XCTAssertLessThan(gaps.max() ?? 0, 0.2, "A wrap after the pause went silent too long: \(milliseconds(gaps))") engine.unloadTrack() } + + // MARK: - Reselecting the loaded track + + func testReselectingAFinishedTrackPlaysItAgain() async throws { + let short = try noiseTrack(seconds: 0.4, scales: [1, 1, 1, 1], folder: "short") + let engine = AudioEngineManager() + await engine.loadTrack(short) + try Hardening.requirePlayback(engine) + engine.vocalVolume = 0.5 + let ended = await Hardening.wait(timeout: .seconds(8)) { !engine.isPlaying && engine.playbackProgress == 1 } + XCTAssertTrue(ended, "A 0.4 s track must play to its end") + + await engine.loadTrack(short) + XCTAssertTrue(engine.isPlaying, "Selecting the finished track must play it again") + XCTAssertLessThan(engine.playbackProgress, 1) + XCTAssertEqual(engine.vocalVolume, 0.5, "Replaying keeps the mix") + + // Without autoplay, selecting only loads; a finished track stays where it ended. + let endedAgain = await Hardening.wait(timeout: .seconds(8)) { !engine.isPlaying && engine.playbackProgress == 1 } + XCTAssertTrue(endedAgain) + AppPreferences.defaults.set(true, forKey: "isAutoPlayDisabled") + await engine.loadTrack(short) + XCTAssertFalse(engine.isPlaying) + XCTAssertEqual(engine.playbackProgress, 1) + AppPreferences.defaults.set(false, forKey: "isAutoPlayDisabled") + + // Mid-track, reselecting neither restarts nor resumes. + let long = try noiseTrack(seconds: 6, scales: [1, 1, 1, 1], folder: "long") + await engine.loadTrack(long) + try Hardening.requirePlayback(engine) + try await Task.sleep(for: .milliseconds(300)) + engine.togglePlayback() + let position = engine.playbackProgress + XCTAssertGreaterThan(position, 0) + await engine.loadTrack(long) + XCTAssertFalse(engine.isPlaying) + XCTAssertEqual(engine.playbackProgress, position) + engine.unloadTrack() + } } From 2e3f24c053826d608c8a802201ae00ce652f9fc5 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 23:40:02 -0500 Subject: [PATCH 80/89] fix(export): keep the destination when an export is cancelled after rendering Rendering checks for cancellation only at the top of each block, and publishing did not check at all, so a Cancel clicked at RENDERING 99% or ARCHIVING 80% (while a cross-volume copy runs) still replaced the destination and revealed it in Finder. The mix export now checks before publishing, and publish checks again after its copy to the destination volume and before the swap; the existing defer removes the staged copy. Only a cancel during the swap itself can still complete, and then the file really was replaced, so beginExport keeps reporting it. Co-Authored-By: Claude Opus 5.5 --- Sources/App/AudioEngineManager.swift | 4 ++++ Sources/App/AudioExporter.swift | 2 ++ Tests/IsolateTests/FinalEngineTests.swift | 28 +++++++++++++++++++++++ 3 files changed, 34 insertions(+) diff --git a/Sources/App/AudioEngineManager.swift b/Sources/App/AudioEngineManager.swift index 7f4f347..9769a35 100644 --- a/Sources/App/AudioEngineManager.swift +++ b/Sources/App/AudioEngineManager.swift @@ -1444,6 +1444,8 @@ public final class AudioEngineManager { self.exportState = .exporting(stage: "RENDERING", percent: shown) } } + // A cancel after the last rendered block must still keep the destination. + try Task.checkCancellation() try AudioExporter.publish(temporary, to: destination) return destination } @@ -1467,6 +1469,8 @@ public final class AudioEngineManager { } onCancel: { worker.cancel() } + // Exports check for cancellation up to the final swap, so returning means the + // destination was replaced, even if Cancel arrived during that swap. exportState = .completed exportProgress = 1 NSWorkspace.shared.activateFileViewerSelecting([destination]) diff --git a/Sources/App/AudioExporter.swift b/Sources/App/AudioExporter.swift index e406ab3..e873f53 100644 --- a/Sources/App/AudioExporter.swift +++ b/Sources/App/AudioExporter.swift @@ -383,6 +383,8 @@ enum AudioExporter { ?? folder.appending(path: ".isolate-\(UUID().uuidString)") defer { try? fm.removeItem(at: replacement ?? staging) } try fm.copyItem(at: source, to: staging) + // The copy is the slow step on another volume; a cancel during it keeps the destination. + try Task.checkCancellation() if fm.fileExists(atPath: destination.path) { _ = try fm.replaceItemAt(destination, withItemAt: staging) } else { diff --git a/Tests/IsolateTests/FinalEngineTests.swift b/Tests/IsolateTests/FinalEngineTests.swift index 69208bf..6b0d69e 100644 --- a/Tests/IsolateTests/FinalEngineTests.swift +++ b/Tests/IsolateTests/FinalEngineTests.swift @@ -255,4 +255,32 @@ final class FinalEngineTests: XCTestCase { XCTAssertEqual(engine.playbackProgress, position) engine.unloadTrack() } + + // MARK: - Export cancellation + + func testPublishCancelledAfterRenderingKeepsTheDestination() async throws { + let fm = FileManager.default + let folder = directory.appending(path: "Exports") + try fm.createDirectory(at: folder, withIntermediateDirectories: true) + let source = directory.appending(path: "rendered.bin") + try Data("new render".utf8).write(to: source) + let existing = folder.appending(path: "Song_Mix.wav") + try Data("previous export".utf8).write(to: existing) + let absent = folder.appending(path: "Song_Stems.zip") + for destination in [existing, absent] { + let publish = Task.detached { + // Cancel lands once rendering is done, as when Cancel is clicked at 99%. + withUnsafeCurrentTask { $0?.cancel() } + try AudioExporter.publish(source, to: destination) + } + do { + try await publish.value + XCTFail("A cancelled publish must not complete") + } catch { + XCTAssertTrue(error is CancellationError, "Unexpected error: \(error)") + } + } + XCTAssertEqual(try Data(contentsOf: existing), Data("previous export".utf8), "The previous export is kept") + XCTAssertEqual(try fm.contentsOfDirectory(atPath: folder.path), ["Song_Mix.wav"], "Nothing new or staged is left behind") + } } From 227045b1148be6a3473f8148464f19b94476e44b Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 23:40:40 -0500 Subject: [PATCH 81/89] fix(audio): keep the Mac awake while stems are separated or exported Separation and export hold no power assertion, and pausing through the engine now releases the output device, so nothing kept an unattended folder import or long export from idle sleep or App Nap. Each separation and each export now holds a user-initiated activity that disables idle system sleep until it finishes, fails or is cancelled. The display may still sleep. Co-Authored-By: Claude Opus 5.5 --- Sources/App/AudioEngineManager.swift | 33 +++++++++++----- Tests/IsolateTests/FinalEngineTests.swift | 47 +++++++++++++++++++++++ 2 files changed, 70 insertions(+), 10 deletions(-) diff --git a/Sources/App/AudioEngineManager.swift b/Sources/App/AudioEngineManager.swift index 9769a35..f54e191 100644 --- a/Sources/App/AudioEngineManager.swift +++ b/Sources/App/AudioEngineManager.swift @@ -1138,10 +1138,12 @@ public final class AudioEngineManager { splitRequestID = UUID() } do { - let stems = try await withTaskCancellationHandler { - try await task.value - } onCancel: { - task.cancel() + let stems = try await whileKeepingAwake("Separating stems") { + try await withTaskCancellationHandler { + try await task.value + } onCancel: { + task.cancel() + } } try Task.checkCancellation() guard !lastImportCancelled else { return nil } @@ -1458,16 +1460,19 @@ public final class AudioEngineManager { exportTask?.cancel() } - private func beginExport(_ operation: @escaping @Sendable () throws -> URL) { + /// Runs `operation` off the main actor. Internal for tests. + func beginExport(_ operation: @escaping @Sendable () throws -> URL) { exportState = .exporting(stage: "RENDERING", percent: 0) exportProgress = 0 exportTask = Task { do { - let worker = Task.detached(priority: .userInitiated, operation: operation) - let destination = try await withTaskCancellationHandler { - try await worker.value - } onCancel: { - worker.cancel() + let destination = try await whileKeepingAwake("Exporting audio") { + let worker = Task.detached(priority: .userInitiated, operation: operation) + return try await withTaskCancellationHandler { + try await worker.value + } onCancel: { + worker.cancel() + } } // Exports check for cancellation up to the final swap, so returning means the // destination was replaced, even if Cancel arrived during that swap. @@ -1486,6 +1491,14 @@ public final class AudioEngineManager { } } + /// Keeps the Mac from idle-sleeping and the app out of App Nap while `work` runs, since + /// separations and exports can run unattended for minutes. The display may still sleep. + private func whileKeepingAwake(_ reason: String, _ work: () async throws -> T) async rethrows -> T { + let activity = ProcessInfo.processInfo.beginActivity(options: [.userInitiated, .idleSystemSleepDisabled], reason: reason) + defer { ProcessInfo.processInfo.endActivity(activity) } + return try await work() + } + // MARK: - Synchronized Playback Graph Scheduling private func onPlaybackEnded() { diff --git a/Tests/IsolateTests/FinalEngineTests.swift b/Tests/IsolateTests/FinalEngineTests.swift index 6b0d69e..483b466 100644 --- a/Tests/IsolateTests/FinalEngineTests.swift +++ b/Tests/IsolateTests/FinalEngineTests.swift @@ -283,4 +283,51 @@ final class FinalEngineTests: XCTestCase { XCTAssertEqual(try Data(contentsOf: existing), Data("previous export".utf8), "The previous export is kept") XCTAssertEqual(try fm.contentsOfDirectory(atPath: folder.path), ["Song_Mix.wav"], "Nothing new or staged is left behind") } + + // MARK: - Sleep assertions + + /// Names of this process's assertions that keep the Mac from idle-sleeping. + nonisolated private static func idleSleepAssertions() -> [String] { + var unmanaged: Unmanaged? + guard IOPMCopyAssertionsByProcess(&unmanaged) == kIOReturnSuccess, + let byProcess = unmanaged?.takeRetainedValue() as? [NSNumber: [[String: Any]]] else { return [] } + return (byProcess[NSNumber(value: getpid())] ?? []).compactMap { assertion in + guard assertion[kIOPMAssertionTypeKey] as? String == "PreventUserIdleSystemSleep" else { return nil } + return assertion[kIOPMAssertionNameKey] as? String + } + } + + func testSeparationAndExportKeepTheMacAwakeUntilTheyFinish() async throws { + // A cached result, so the separation finishes without running the model. + let track = try noiseTrack(seconds: 1, scales: [1, 1, 1, 1]) + let cache = StemCache.root.appending(path: try StemCache.key(for: track.originalURL)) + try FileManager.default.createDirectory(at: cache, withIntermediateDirectories: true) + defer { try? FileManager.default.removeItem(at: cache) } + let stems = track.originalURL.deletingLastPathComponent() + for name in DemucsEngine.stemNames + ["original"] { + try FileManager.default.copyItem(at: stems.appending(path: "\(name).wav"), to: cache.appending(path: "\(name).wav")) + } + AppPreferences.defaults.set(true, forKey: "isAutoPlayDisabled") + let engine = AudioEngineManager() + let request = Task { await engine.loadAndSplitAudio(url: track.originalURL) } + let deadline = Date.now.addingTimeInterval(5) + while !engine.isSplitting && Date.now < deadline { await Task.yield() } + XCTAssertTrue(engine.isSplitting) + // The split cannot finish while this test holds the main actor. + XCTAssertTrue(Self.idleSleepAssertions().contains("Separating stems"), "Assertions: \(Self.idleSleepAssertions())") + _ = await request.value + XCTAssertFalse(Self.idleSleepAssertions().contains("Separating stems"), "The assertion must end with the separation") + + let heldDuringExport = OSAllocatedUnfairLock(initialState: false) + engine.beginExport { + heldDuringExport.withLock { $0 = Self.idleSleepAssertions().contains("Exporting audio") } + // Leave quietly instead of revealing a file in Finder. + throw CancellationError() + } + let finished = await Hardening.wait(timeout: .seconds(5)) { engine.exportState == .idle } + XCTAssertTrue(finished) + XCTAssertTrue(heldDuringExport.withLock { $0 }, "An export must keep the Mac awake") + XCTAssertFalse(Self.idleSleepAssertions().contains("Exporting audio"), "The assertion must end with the export") + engine.unloadTrack() + } } From b54c0f3ba1f395aef6e9adc9d58c85e3c784ee3c Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Fri, 25 Sep 2026 23:40:56 -0500 Subject: [PATCH 82/89] test(engine): wait for the short track to end instead of a fixed 1.6 s The end of playback arrives after the output device's latency, which is seconds on AirPlay, and the output idles 0.5 s after that, so a fixed sleep failed on high-latency outputs. Poll for both, with an 8 s bound, before the existing assertions. Also state the measured pause regression precisely in the new loop-wrap test. Co-Authored-By: Claude Opus 5.5 --- Tests/IsolateTests/EngineFixTests.swift | 4 +++- Tests/IsolateTests/FinalEngineTests.swift | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Tests/IsolateTests/EngineFixTests.swift b/Tests/IsolateTests/EngineFixTests.swift index 669901e..520bb01 100644 --- a/Tests/IsolateTests/EngineFixTests.swift +++ b/Tests/IsolateTests/EngineFixTests.swift @@ -120,7 +120,9 @@ final class EngineFixTests: XCTestCase { await engine.loadTrack(try cancellingTrack(seconds: 0.4, folder: "short")) try requirePlayback(engine) - try await Task.sleep(for: .milliseconds(1600)) + // The end arrives after the output device's latency (AirPlay adds seconds), and the output idles 0.5 s later. + let idled = await Hardening.wait(timeout: .seconds(8)) { !engine.isPlaying && !engine.isOutputRunning } + XCTAssertTrue(idled, "A 0.4 s track must end and release the output device") XCTAssertFalse(engine.isPlaying) XCTAssertEqual(engine.playbackProgress, 1) XCTAssertFalse(engine.isOutputRunning, "The engine must idle once the track has ended") diff --git a/Tests/IsolateTests/FinalEngineTests.swift b/Tests/IsolateTests/FinalEngineTests.swift index 483b466..7ea041b 100644 --- a/Tests/IsolateTests/FinalEngineTests.swift +++ b/Tests/IsolateTests/FinalEngineTests.swift @@ -202,8 +202,8 @@ final class FinalEngineTests: XCTestCase { try await requireRenderTimelineStarts(engine) try await loopShortestRegion(engine, from: 0.3) let gaps = try await recordOutput(engine) { - // While paused the players' sample time stands still, but the host time reported with - // it keeps counting, so a start derived from host time would come late by the pause. + // While paused the players' sample time stands still, and the host time reported with + // it then trails real time by the pause, so a start derived from it comes that late. engine.togglePlayback() try await Task.sleep(for: .milliseconds(800)) engine.togglePlayback() @@ -212,7 +212,7 @@ final class FinalEngineTests: XCTestCase { print("Loop wrap gaps after a pause: \(milliseconds(gaps))") XCTAssertEqual(engine.lastStartReport?.watchdogRestarts, 0, "A start after the pause never took effect (\(describe(engine)))") XCTAssertFalse(gaps.isEmpty, "Expected a gap at each wrap") - // A host-time start left about 0.4 s of silence here, until the watchdog restarted it. + // A start mapped through host time left about 0.5 s of silence here, until the watchdog restarted it. XCTAssertLessThan(gaps.max() ?? 0, 0.2, "A wrap after the pause went silent too long: \(milliseconds(gaps))") engine.unloadTrack() } From 375f70295a99da99dcf8511ed518878e51261246 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Sat, 26 Sep 2026 00:15:55 -0500 Subject: [PATCH 83/89] =?UTF-8?q?fix(ui):=20add=20File=20=E2=80=BA=20Cance?= =?UTF-8?q?l=20Export;=20docs:=20match=20the=20final-wave=20behavior?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Cancel Export in the File menu stays reachable while an overlay covers the EXPORT control. - Document the render-timeline start and loop-wrap gap, damage-only library recovery with in-memory fallback, legacy import retries, next-file iCloud prefetch, quit-during-export cancellation, keep-awake activity, folder search and replaying a finished song. Co-Authored-By: Claude Opus 5.5 --- ARCHITECTURE.md | 8 ++++---- AUDIO_ENGINE.md | 2 +- CHANGELOG.md | 10 ++++++---- INSTALL.md | 2 +- Isolate.xcodeproj/project.pbxproj | 16 ++++++++++++++++ README.md | 4 ++-- Sources/App/IsolateApp.swift | 3 +++ TROUBLESHOOTING.md | 5 +++-- 8 files changed, 36 insertions(+), 14 deletions(-) diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md index 7f2e661..95f3b57 100644 --- a/ARCHITECTURE.md +++ b/ARCHITECTURE.md @@ -22,7 +22,7 @@ Isolate is an Apple Silicon macOS app using SwiftUI, SwiftData, AVFoundation, Co ## Import transaction -1. Reserve import state before suspending. Dropped or chosen folders expand to supported audio files off the main actor, in Finder order and without duplicates, and iCloud Drive placeholders in the batch start downloading. Files are processed one at a time. +1. Reserve import state before suspending. Dropped or chosen folders expand to supported audio files off the main actor, in Finder order and without duplicates, and files are processed one at a time. While one separates, iCloud Drive is asked only for the next file, so a cancelled batch does not leave the rest of a folder downloading. 2. Take the single separation slot and sweep `.partial-*` and `.backup-*` folders left in the cache by an interrupted run. The same sweep runs at launch, and is skipped while a separation is running. 3. If the source is an evicted iCloud Drive file, request it and wait, cancellably, with no invented percentage. Without a network connection the import fails after about two seconds with a clear message. 4. Hash the source bytes with the pipeline version (`Isolate-streaming-v4`). Reuse only complete, consistent caches. @@ -42,7 +42,7 @@ The audio graph and observable UI state belong to the main actor. Each meter tap Exports snapshot the selected files and controls before the save panel opens, check afterwards that the same track is still loaded, and render on an independent graph in a worker task that can be cancelled. Library deletion is blocked while exporting or separating. Existing output files are replaced only after the rendered file or archive is complete. -Quitting asks for confirmation while a separation or export runs. Confirming during a separation cancels it and waits up to 15 seconds for its temporary files to be removed; confirming during an export quits at once, and because the exporter stages its output in the volume's item-replacement directory, nothing partial is left in the destination folder. +Quitting asks for confirmation while a separation or export runs. Confirming during a separation cancels it and waits up to 15 seconds for its temporary files to be removed; confirming during an export cancels it and waits up to 5 seconds for its temporary renders to be removed. The exporter stages its output in the volume's item-replacement directory, so nothing partial is left in the destination folder. Separations and exports hold an activity that keeps the Mac from idle-sleeping until they finish. The app uses one logical main window; automatic window tabbing is disabled. The menu bar item reopens a closed window through the scene's `openWindow`. Hosted tests and `-ui-testing` launches use separate preferences, an in-memory library, and a temporary stem cache. @@ -50,9 +50,9 @@ Track renaming uses a native sheet so its text field can accept keyboard focus w ## Files and persistence -The library is an explicit SwiftData store at `~/Library/Application Support/Isolate/Library.store`. Builds up to 1.2 used SwiftData's default configuration, which for this unsandboxed app is the shared `~/Library/Application Support/default.store` that other apps also open and migrate. On first launch, `LibraryStore` copies `default.store` and its `-wal`/`-shm` files to a temporary folder, checks with SQLite that the copy has a `ZTRACKMODEL` table with all eight columns, opens only the copy, and inserts rows whose IDs are not already present. The shared file is never opened in place, modified or deleted. Completion is recorded under `didImportLegacyLibraryStore`; a failed copy is retried at the next launch. +The library is an explicit SwiftData store at `~/Library/Application Support/Isolate/Library.store`. Builds up to 1.2 used SwiftData's default configuration, which for this unsandboxed app is the shared `~/Library/Application Support/default.store` that other apps also open and migrate. On first launch, `LibraryStore` copies `default.store` and its `-wal`/`-shm` files to a temporary folder, checks with SQLite that the copy has a `ZTRACKMODEL` table with all eight columns, opens only the copy, and inserts rows whose IDs are not already present. The shared file is never opened in place, modified or deleted. Completion is recorded under `didImportLegacyLibraryStore` only after an import succeeds or finds no old library; a failed copy or read is reported and retried at up to three launches. -If `Library.store` cannot be opened, it and its sidecar files are moved, never deleted, into `Library Backups//` beside it, a new store is opened, and the main window shows where the backup went. If even that fails, the session runs in memory and says that changes will not be saved. Because a store that fails to open is moved aside, any new `TrackModel` attribute must be optional or have a default, or ship with a `SchemaMigrationPlan`. +If `Library.store` cannot be opened and SQLite reports the file damaged (not a database, corrupt, or a failed `quick_check`), it and its sidecar files are moved, never deleted, into `Library Backups//` beside it and a new store is opened; the main window shows where the backup went at every launch until the notice is closed. If no new store can be created, the originals are moved back. Any other failure (a full disk, permissions, a lock, a store from a newer version) leaves `Library.store` untouched and runs that session in memory with a notice that changes will not be saved and the library will be tried again next launch. Any new `TrackModel` attribute must still be optional or have a default, or ship with a `SchemaMigrationPlan`, or upgraded stores will not open. Source paths identify library entries; identical bytes at different paths share a cache. Deletion checks both cache ownership and remaining library references. External source audio is never deleted. The app is not App Sandbox enabled; security-scoped access is still balanced for URLs provided by system pickers. Imported sources stay in place and are reread by later launches for metadata and stem rebuilds, so `Info.plist` carries purpose strings for the Desktop, Documents, Downloads, removable-volume and network-volume prompts. diff --git a/AUDIO_ENGINE.md b/AUDIO_ENGINE.md index abc3d98..db69df4 100644 --- a/AUDIO_ENGINE.md +++ b/AUDIO_ENGINE.md @@ -21,7 +21,7 @@ Other → EQ → gain/pan mixer ┘ Original ┘ The original and the stem sum meet before the shared effects path, so Compare Original plays under the same speed, pitch and master EQ. Compare Original mutes the stem sum. Each channel's audible gain comes from mute/solo state; solo wins when any solo is active. -Every start from a stopped state (play, seek, loop wrap, autoplay, restart at the end and resume after an output-device change) goes through one path that starts all five players on the same frame of their shared render timeline: `play(at:)` receives a sample time about 110 ms ahead of the players' last render time. A host-time start made each `play(at:)` block for about one IO cycle and, measured on a real Mac, still started roughly one seek in five out of sync; with a sample time the calls return immediately and every seek in a polarity null test stayed aligned on macOS 15, 26 and 27. Before the engine has rendered once there is no timeline, so the first start waits up to 100 ms for one and otherwise falls back to a host-time lead sized from the IO buffer and the measured duration of the calls, retrying from the same frame if they overran it. +Every start from a stopped state (play, seek, loop wrap, autoplay, restart at the end and resume after an output-device change) starts all five players on one frame of their shared 44.1 kHz render timeline: `play(at:)` receives a sample time three output IO cycles past the newest render (scaled up at playback rates above 1×), and after the calls the newest render must still be at least two cycles short of that frame, otherwise the players are rescheduled from the same frame and started again. A host-time start made each `play(at:)` block for about one IO cycle and, measured on a real Mac, still started roughly one seek in five out of sync; the sample-time calls return immediately, and a polarity null test stayed aligned on every seek on macOS 15, 26 and 27. At 512 frames and 48 kHz a loop wrap now leaves a 32–43 ms gap (about 100 ms with the earlier start). After `engine.start()` the start waits for the first new render, so it never uses a timestamp from before a pause. If no render timestamp arrives, it falls back to a host-time lead sized from the IO buffer and the measured duration of the calls. A watchdog confirms the players moved once the start has passed and otherwise restarts from the same frame on the host-time path for the rest of the session. Seeks that jump also reset the time/pitch unit, which refills 4,096 frames (about 93 ms) with silence so no audio from the old position is heard. Pause calls `engine.pause()`, so every player freezes on the same render cycle, and resume is only `engine.start()`: instant, with no rescheduling. The engine also pauses, releasing the output device, when a track is unloaded, when a seek lands exactly on the end, and 0.5 s after a track finishes so the limiter and time/pitch tails play out. Do not replace this with `engine.pause(); player.play(); engine.start()`: on macOS 27, `play()` on a stopped engine is silently ignored. diff --git a/CHANGELOG.md b/CHANGELOG.md index 7e0210e..115ba92 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,7 +10,8 @@ New since v1.2.7: three-band EQ on every stem and on the master bus, with preset ### Playback -- All five players (four stems and the original) now start on the same audio frame after play, seek, loop wrap, song changes and output-device changes. Previously stems could start 9–42 ms apart, and about one seek in five came out of sync. Starting also no longer stalls the window for about 50 ms. +- All five players (four stems and the original) now start on the same audio frame after play, seek, loop wrap, song changes and output-device changes. Previously stems could start 9–42 ms apart, and about one seek in five came out of sync. Starting also no longer stalls the window for about 50 ms, and the silence at each A–B loop wrap is down to roughly 30–40 ms. +- Selecting a song that has finished plays it again from the start (or from the loop start), keeping its mix. - Pause and resume keep the stems aligned and resume instantly. Pausing, unloading a song and the end of a song (after 0.5 s) release the audio device. - Seeking no longer plays a moment of audio from the old position through the speed and pitch processor. - The shortest A–B loop is now 0.5 seconds rather than 2% of the song, so short phrases in long songs can be looped. Setting A after B, or B before A, starts a new loop instead of snapping back into the old one. @@ -38,8 +39,8 @@ New since v1.2.7: three-band EQ on every stem and on the master bus, with preset ### Library - The library now has its own file at `~/Library/Application Support/Isolate/Library.store`. Earlier versions kept it in the shared `default.store`, which other apps can open and rewrite, emptying the library. On first launch, 1.3.0 copies your songs from a temporary copy of the old file; the old file itself is never changed or deleted. -- If the library cannot be opened, it is moved into `Library Backups` with a timestamp, you are told where it went, and a new library starts. It is never deleted. -- Search matches the title, file name and folder only, so common words no longer match every song. +- If the library file is damaged, it is moved into `Library Backups` with a timestamp, you are told where it went until you dismiss the notice, and a new library starts. It is never deleted. Other open failures leave the file untouched and retry at the next launch. +- Search matches the title, the file name and the folders shown in the sidebar (such as artist and album folders), but no longer the parts of the path every song shares, so common words don't match every song. - Folder headers show enough of the path to tell folders with the same name apart. - Next and Previous, from media keys or the menu bar, follow the sidebar's folder order. - Songs cannot be deleted while a separation is running. @@ -50,7 +51,7 @@ New since v1.2.7: three-band EQ on every stem and on the master bus, with preset - 24-bit stem exports no longer clip. If any stem would go over full scale, all four are lowered by the same amount to −0.1 dBFS, which keeps their balance and their sum. Stems that don't need it are exported unchanged. - Mix exports line up sample for sample with the source, and keep their full ending when speed or pitch is changed. -- Exports show their progress and can be cancelled from the EXPORT button or its menu. A cancelled export leaves the destination untouched, and quitting mid-export no longer leaves partial files in the export folder. +- Exports show their progress and can be cancelled from the EXPORT button, its menu or File › Cancel Export. A cancelled export leaves the destination untouched, and quitting mid-export no longer leaves partial files in the export folder. - File names keep the library title's capitalization. Names that begin with dots are no longer hidden, characters that Windows cannot extract are replaced, and non-ASCII names in stem ZIPs extract correctly on Windows. - The save panel says whether channel EQ is included. With Compare Original on, a mix export is named `_Original.wav` and says it contains the original recording. - If the song changes while the save panel is open, nothing is exported and Isolate says why. @@ -72,6 +73,7 @@ New since v1.2.7: three-band EQ on every stem and on the master bus, with preset ### Reliability +- Separating and exporting keep the Mac from idle-sleeping until they finish. - Quitting during a separation or an export asks first. Quitting during a separation cleans up its temporary files before Isolate closes. - Opening Isolate from the downloaded disk image offers to move it to Applications, including when macOS runs it from a temporary location. Replacing an installed copy asks first and moves the old copy to the Trash. - Decoding artwork and reading a song's format no longer freeze the window on large images or sleeping network drives. Oversized artwork is skipped. diff --git a/INSTALL.md b/INSTALL.md index e52a195..891b1aa 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -63,7 +63,7 @@ The app needs no Python runtime and no third-party Swift packages. The Core ML m Your original audio files stay where they are; Isolate only reads them. Each separated song uses about 106 MB per minute of audio in the stems folder: 32-bit float copies of the four stems and of the decoded original. -Versions before 1.3 kept the library in the shared `~/Library/Application Support/default.store`. On its first launch, 1.3 copies your songs out of a temporary copy of that file into `Library.store`. It never opens, changes or deletes `default.store` itself, because other apps can use the same file. If `Library.store` ever cannot be opened, Isolate moves it into `Library Backups` and starts a new library; see [TROUBLESHOOTING.md](TROUBLESHOOTING.md#the-library-is-empty-or-was-moved-to-library-backups). +Versions before 1.3 kept the library in the shared `~/Library/Application Support/default.store`. On its first launch, 1.3 copies your songs out of a temporary copy of that file into `Library.store`. It never opens, changes or deletes `default.store` itself, because other apps can use the same file. If `Library.store` is ever damaged, Isolate moves it into `Library Backups` and starts a new library; if it cannot be opened for another reason, Isolate leaves it untouched and tries again at the next launch; see [TROUBLESHOOTING.md](TROUBLESHOOTING.md#the-library-is-empty-or-was-moved-to-library-backups). Deleting a song in Isolate removes only the stem folder it owns, and only when no other library entry uses it. Quit Isolate and back up `~/Library/Application Support/Isolate` before changing anything in it by hand. diff --git a/Isolate.xcodeproj/project.pbxproj b/Isolate.xcodeproj/project.pbxproj index cd7fea1..f4d12f3 100644 --- a/Isolate.xcodeproj/project.pbxproj +++ b/Isolate.xcodeproj/project.pbxproj @@ -7,6 +7,8 @@ objects = { /* Begin PBXBuildFile section */ + 01DBA77A67ADC621DEA46203 /* FinalSeparationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C5609077229DD52FB45EAE0A /* FinalSeparationTests.swift */; }; + 078304508565C9F89E4D57F6 /* FinalLibraryTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE2E169E5C0E362D36A132D9 /* FinalLibraryTests.swift */; }; 1419844DB45A5A83122232D3 /* SeparationFixTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2C2C50DD1D3E61F3C453C02B /* SeparationFixTests.swift */; }; 161B67E13457763752062DE1 /* ProductionRegressionTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B807A91D83D445402D9CAF99 /* ProductionRegressionTests.swift */; }; 161EC9862A7208CA69D028EC /* IsolateApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = AC1A0F01EE97D0951555E052 /* IsolateApp.swift */; }; @@ -28,6 +30,7 @@ 81071D25E7CBF4FDD195C50F /* WindowSizingTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E53390C1141BAFC60BD554E9 /* WindowSizingTests.swift */; }; 8795659D14EB49E0487CF201 /* PlayerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59B0F1BF366285DF7ED96856 /* PlayerView.swift */; }; 8BD92F3394B42C1A0AD566FC /* PlaybackClock.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF8F78D393965984025C15BF /* PlaybackClock.swift */; }; + 9567D8734665373069E224DF /* FinalUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C8FA41F8C246C64D13774AA1 /* FinalUITests.swift */; }; 95C2E3DA7EFB59D971F2F6E1 /* DotGothic16-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = 65D4E52007621CC6578509E0 /* DotGothic16-Regular.ttf */; }; 96CEBDABD970A3C881DD01E9 /* EngineFixTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1A4285D899C4A5EEEC9EC719 /* EngineFixTests.swift */; }; 96E80690607437453B6037E1 /* RealMusicSmokeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = C70B0ECC18309C897B93F11C /* RealMusicSmokeTests.swift */; }; @@ -41,6 +44,7 @@ BA4FE14242EEF97C53744DA3 /* ModelSelfTestTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ED9249DA0AFAB419C7252B18 /* ModelSelfTestTests.swift */; }; BD13B32036CBA957B6A8FB50 /* NowPlayingManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A696B7978AB11ACA46D7592E /* NowPlayingManager.swift */; }; BF1A95B3725BFC8C84B3AA92 /* DemucsEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = 53FFF484DB9B227FEA9BFA72 /* DemucsEngine.swift */; }; + CB9B464C3969BCC6ADD31B4D /* FinalEngineTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 868D3EA947238BC8C0808689 /* FinalEngineTests.swift */; }; CCA10CCFD58840F597E21121 /* IsolateTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9B54412E9E3F71B00BF34FB0 /* IsolateTests.swift */; }; DB4F240607006163A014D28D /* ExporterFixTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B1AE7FC2C60C05B9AB636C6F /* ExporterFixTests.swift */; }; EF40587C88F3A21DCBED178E /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = D39417E3CC1D1DF6CF0E4656 /* SettingsView.swift */; }; @@ -89,6 +93,7 @@ 7BEEC1EF4DD1E71AAEA9F300 /* AppIcon.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = AppIcon.icns; sourceTree = ""; }; 80C4F1BEA2CBC91B8FB4637C /* StreamingAudio.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StreamingAudio.swift; sourceTree = ""; }; 825F29C7C08E71499FA30D2B /* DotGothic16-LICENSE.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "DotGothic16-LICENSE.txt"; sourceTree = ""; }; + 868D3EA947238BC8C0808689 /* FinalEngineTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FinalEngineTests.swift; sourceTree = ""; }; 87C57BDBBA1E4730D9A3DBEA /* SuiteHardeningTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SuiteHardeningTests.swift; sourceTree = ""; }; 8CEABFC996FE6B255FC50AD8 /* IsolateTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = IsolateTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 9735698E807C603F5A017AF1 /* Demucs-LICENSE.txt */ = {isa = PBXFileReference; lastKnownFileType = text; path = "Demucs-LICENSE.txt"; sourceTree = ""; }; @@ -102,12 +107,15 @@ B1AE7FC2C60C05B9AB636C6F /* ExporterFixTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExporterFixTests.swift; sourceTree = ""; }; B807A91D83D445402D9CAF99 /* ProductionRegressionTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ProductionRegressionTests.swift; sourceTree = ""; }; BDB33D51AF84015B27BDB60D /* AudioMeterProcessor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AudioMeterProcessor.swift; sourceTree = ""; }; + C5609077229DD52FB45EAE0A /* FinalSeparationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FinalSeparationTests.swift; sourceTree = ""; }; C70B0ECC18309C897B93F11C /* RealMusicSmokeTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RealMusicSmokeTests.swift; sourceTree = ""; }; + C8FA41F8C246C64D13774AA1 /* FinalUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FinalUITests.swift; sourceTree = ""; }; CF8F78D393965984025C15BF /* PlaybackClock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PlaybackClock.swift; sourceTree = ""; }; D39417E3CC1D1DF6CF0E4656 /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; D721629222D7EC4EFE4580D2 /* UIFixTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIFixTests.swift; sourceTree = ""; }; D7C71DE2440945DF04ED48AA /* Haptics.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Haptics.swift; sourceTree = ""; }; D9F18A0F03B33726F0C3D41F /* Isolate.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Isolate.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DE2E169E5C0E362D36A132D9 /* FinalLibraryTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FinalLibraryTests.swift; sourceTree = ""; }; E404CB7871E1A45DE1242859 /* TrackModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TrackModel.swift; sourceTree = ""; }; E51723840AA00CB3D59039A2 /* IsolateUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IsolateUITests.swift; sourceTree = ""; }; E53390C1141BAFC60BD554E9 /* WindowSizingTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowSizingTests.swift; sourceTree = ""; }; @@ -197,6 +205,10 @@ children = ( 1A4285D899C4A5EEEC9EC719 /* EngineFixTests.swift */, B1AE7FC2C60C05B9AB636C6F /* ExporterFixTests.swift */, + 868D3EA947238BC8C0808689 /* FinalEngineTests.swift */, + DE2E169E5C0E362D36A132D9 /* FinalLibraryTests.swift */, + C5609077229DD52FB45EAE0A /* FinalSeparationTests.swift */, + C8FA41F8C246C64D13774AA1 /* FinalUITests.swift */, 715F9102B1C7078BEEF841DA /* HardeningModelTests.swift */, 52F3D53A092043D43C33C7C2 /* HardeningSupport.swift */, 3C2EBC811F849DA5036CFC1B /* ImportSeparationRegressionTests.swift */, @@ -376,6 +388,10 @@ files = ( 96CEBDABD970A3C881DD01E9 /* EngineFixTests.swift in Sources */, DB4F240607006163A014D28D /* ExporterFixTests.swift in Sources */, + CB9B464C3969BCC6ADD31B4D /* FinalEngineTests.swift in Sources */, + 078304508565C9F89E4D57F6 /* FinalLibraryTests.swift in Sources */, + 01DBA77A67ADC621DEA46203 /* FinalSeparationTests.swift in Sources */, + 9567D8734665373069E224DF /* FinalUITests.swift in Sources */, F8064489140C6F4984AC86AF /* HardeningModelTests.swift in Sources */, FB955598DE92CA5F0B6C9E17 /* HardeningSupport.swift in Sources */, 6E2D4D823F3A717CBBB8088D /* ImportSeparationRegressionTests.swift in Sources */, diff --git a/README.md b/README.md index 1cc75d6..d74a620 100644 --- a/README.md +++ b/README.md @@ -79,7 +79,7 @@ If you open Isolate straight from the disk image, it offers to move itself into **Library** -- Songs are grouped by the folder they came from and can be searched by title, file name or folder. Next and Previous follow the sidebar order. +- Songs are grouped by the folder they came from and can be searched by title, file name, or the artist and album folders they sit in. Next and Previous follow the sidebar order. - Artist, album, artwork, BPM and key come from the file's own tags. Isolate doesn't estimate BPM or key, and shows them as unknown when the tags don't have them. - Rename songs in the library. Deleting a song removes only the stems Isolate made; your original file is never changed or deleted. @@ -87,7 +87,7 @@ If you open Isolate straight from the disk image, it offers to move itself into - **Stems:** a ZIP of four 24-bit WAV or FLAC files at 44.1 kHz. Channel EQ is included unless it is bypassed; levels, pan, speed and pitch are not. If any stem would clip, all four are lowered by the same amount so they still add up to the same mix. - **Mix:** a 24-bit WAV of the whole track with your current levels, mutes, solos, pan, EQ, speed and pitch. With Compare Original on, it exports the original recording instead and names the file `_Original.wav`. -- Exports show their progress and can be cancelled. An existing file is replaced only after the new one is complete. +- Exports show their progress and can be cancelled (EXPORT button or File › Cancel Export). An existing file is replaced only after the new one is complete. **On your Mac** diff --git a/Sources/App/IsolateApp.swift b/Sources/App/IsolateApp.swift index a0fcc95..0b65a34 100644 --- a/Sources/App/IsolateApp.swift +++ b/Sources/App/IsolateApp.swift @@ -67,6 +67,9 @@ struct IsolateApp: App { Button("Export Mix…") { engineManager.exportMix() } .keyboardShortcut("m", modifiers: [.command, .shift]) .disabled(!engineManager.hasLoadedTrack || engineManager.isSplitting || engineManager.isExporting) + // Reachable even while an overlay covers the EXPORT control. + Button("Cancel Export") { engineManager.cancelExport() } + .disabled({ if case .exporting = engineManager.exportState { return false }; return true }()) } CommandGroup(after: .windowArrangement) { Button("Show Isolate") { openWindow(id: "main", value: "main") } diff --git a/TROUBLESHOOTING.md b/TROUBLESHOOTING.md index 4aee1d8..40ec994 100644 --- a/TROUBLESHOOTING.md +++ b/TROUBLESHOOTING.md @@ -54,8 +54,9 @@ If a separation really stops moving, quit Isolate. It asks first, cancels the im The library is `~/Library/Application Support/Isolate/Library.store`. -- **After updating from a version before 1.3:** on its first launch, 1.3 copies your songs from a temporary copy of the old shared `~/Library/Application Support/default.store`. If that fails, Isolate says so and leaves the old file unchanged. -- **"Isolate could not open its library and started a new one":** the old library files were moved, not deleted, into `~/Library/Application Support/Isolate/Library Backups//`, and the message gives the exact folder. +- **After updating from a version before 1.3:** on its first launch, 1.3 copies your songs from a temporary copy of the old shared `~/Library/Application Support/default.store`. If that fails, Isolate says so, leaves the old file unchanged and tries again at the next launch, up to three times. +- **"Isolate could not open its library and started a new one":** SQLite reported the library file as damaged, so it was moved, not deleted, into `~/Library/Application Support/Isolate/Library Backups//`. The message gives the exact folder and appears at each launch until you close it. +- **The library opened in memory and changes won't be saved:** the file could not be opened for another reason (for example a full disk or missing permissions). It was left untouched; free some space or fix the permissions, and Isolate tries again at the next launch. To restore a backup, quit Isolate, move `Library.store`, `Library.store-wal` and `Library.store-shm` out of `~/Library/Application Support/Isolate`, copy the files from the backup folder in their place, and open Isolate. If it still can't be opened, the backup may have been written by a newer version of Isolate; install that version and try again. From 4b217a6c8d75e53630feba6fc6d967a717ca2610 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Sat, 26 Sep 2026 00:18:13 -0500 Subject: [PATCH 84/89] docs(release): mention the macOS 26 recommendation in release notes Co-Authored-By: Claude Opus 5.5 --- scripts/release_notes.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/release_notes.sh b/scripts/release_notes.sh index 9a2e5ca..92aa0b8 100755 --- a/scripts/release_notes.sh +++ b/scripts/release_notes.sh @@ -17,7 +17,7 @@ if [[ -z "${CHANGES//[[:space:]]/}" ]]; then fi cat < Date: Sat, 26 Sep 2026 00:29:42 -0500 Subject: [PATCH 85/89] test: keep a HUD layout test within Xcode 26.3's type-check limits Co-Authored-By: Claude Opus 5.5 --- Tests/IsolateTests/FinalUITests.swift | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Tests/IsolateTests/FinalUITests.swift b/Tests/IsolateTests/FinalUITests.swift index f01f156..9171da3 100644 --- a/Tests/IsolateTests/FinalUITests.swift +++ b/Tests/IsolateTests/FinalUITests.swift @@ -133,8 +133,11 @@ final class FinalUITests: XCTestCase { func testHUDEqualizerHidesFrequencyCaptionsOnlyInTheCompactHUD() { // HUD height, minus its top bar, divider and the EQ view's vertical padding, // then the 16 pt toolbar and 4 pt gap above the curve. - let compactCanvas: CGFloat = 76 - 24 - 1 - 2 * 2 - (16 + 4) - let regularCanvas: CGFloat = 100 - 28 - 1 - 4 * 2 - (16 + 4) + // Integer arithmetic keeps these quick for older compilers to type-check. + let compactHeight: Int = 76 - 24 - 1 - 2 * 2 - (16 + 4) + let regularHeight: Int = 100 - 28 - 1 - 4 * 2 - (16 + 4) + let compactCanvas = CGFloat(compactHeight) + let regularCanvas = CGFloat(regularHeight) XCTAssertFalse(HUDEqualizerCurveView.showsFrequencyLabels(canvasHeight: compactCanvas), "The compact curve is too short for captions under the band nodes") XCTAssertTrue(HUDEqualizerCurveView.showsFrequencyLabels(canvasHeight: regularCanvas)) From 42398cc7f7a79f32f21922dc736e79b474624ea6 Mon Sep 17 00:00:00 2001 From: Neo Kumar Date: Sat, 26 Sep 2026 16:59:05 -0500 Subject: [PATCH 86/89] fix: verify model and audio paths for v1.3.0 launch --- .github/workflows/build.yml | 3 + .github/workflows/release.yml | 1 + AUDIO_ENGINE.md | 2 +- Assets/AppIcon-macOS27.png | Bin 0 -> 1656686 bytes Assets/AppIcon.icns | Bin 2015972 -> 3038430 bytes Assets/dmg_background.png | Bin 587060 -> 20372 bytes Assets/social_preview.png | Bin 131813 -> 301760 bytes CHANGELOG.md | 6 +- Info.plist | 2 + Isolate.xcodeproj/project.pbxproj | 8 +- LAUNCH.md | 50 +++++++ MODEL.md | 6 +- QUALITY_REPORT.md | 132 +++++++++++++----- README.md | 6 +- RELEASE.md | 10 +- Sources/App/DemucsEngine.swift | 48 +++++-- Sources/App/StemCache.swift | 2 +- Sources/App/StreamingAudio.swift | 11 +- Sources/Resources/AppIcon.icns | Bin 2015972 -> 3038430 bytes .../Resources/AppIcon.icon/Assets/1-stem.svg | 6 + .../Resources/AppIcon.icon/Assets/2-stem.svg | 8 ++ .../Resources/AppIcon.icon/Assets/3-stem.svg | 10 ++ .../Resources/AppIcon.icon/Assets/4-stem.svg | 7 + Sources/Resources/AppIcon.icon/icon.json | 78 +++++++++++ Tests/IsolateTests/EngineFixTests.swift | 6 + Tests/IsolateTests/HardeningModelTests.swift | 21 +++ Tests/IsolateTests/HardeningSupport.swift | 16 ++- Tests/IsolateTests/IsolateTests.swift | 8 +- Tests/IsolateTests/ModelSelfTestTests.swift | 64 ++++++++- Tests/IsolateTests/RealMusicSmokeTests.swift | 20 +-- Tests/IsolateTests/SeparationFixTests.swift | 61 ++++++-- UITests/IsolateUITests/IsolateUITests.swift | 34 +++++ project.yml | 8 ++ scripts/generate_assets.swift | 125 +++++------------ 34 files changed, 568 insertions(+), 191 deletions(-) create mode 100644 Assets/AppIcon-macOS27.png create mode 100644 LAUNCH.md create mode 100644 Sources/Resources/AppIcon.icon/Assets/1-stem.svg create mode 100644 Sources/Resources/AppIcon.icon/Assets/2-stem.svg create mode 100644 Sources/Resources/AppIcon.icon/Assets/3-stem.svg create mode 100644 Sources/Resources/AppIcon.icon/Assets/4-stem.svg create mode 100644 Sources/Resources/AppIcon.icon/icon.json diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e21fc7c..f14eaf5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,6 +28,9 @@ jobs: # test without the model, and the inference tests skip. ISOLATE_MODEL_ARCHIVE_URL: ${{ vars.ISOLATE_MODEL_ARCHIVE_URL }} ISOLATE_MODEL_ARCHIVE_SHA256: ${{ vars.ISOLATE_MODEL_ARCHIVE_SHA256 }} + # macOS 15 checks safe refusal of its known-bad Core ML runtime. macOS 26 + # must actually separate; an incompatible model there fails the build. + TEST_RUNNER_ISOLATE_ALLOW_INCOMPATIBLE_MODEL: ${{ matrix.runner == 'macos-15' && '1' || '0' }} steps: - uses: actions/checkout@v5 - uses: maxim-lobanov/setup-xcode@v1 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index eafdba0..e071bc2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -22,6 +22,7 @@ jobs: ISOLATE_MODEL_ARCHIVE_URL: ${{ vars.ISOLATE_MODEL_ARCHIVE_URL }} ISOLATE_MODEL_ARCHIVE_SHA256: ${{ vars.ISOLATE_MODEL_ARCHIVE_SHA256 }} TEST_RUNNER_ISOLATE_REQUIRE_MODEL: '1' + TEST_RUNNER_ISOLATE_ALLOW_INCOMPATIBLE_MODEL: '0' RELEASE_TAG: ${{ github.ref_name }} steps: - uses: actions/checkout@v5 diff --git a/AUDIO_ENGINE.md b/AUDIO_ENGINE.md index db69df4..cfe6359 100644 --- a/AUDIO_ENGINE.md +++ b/AUDIO_ENGINE.md @@ -4,7 +4,7 @@ `ExtAudioFile` decodes supported input into stereo Float32 at 44.1 kHz in 16,384-frame blocks. Sources with more than two channels are decoded at their own channel count with an explicit client channel layout (ALAC and AAC otherwise decode in codec-native order) and downmixed by speaker position with `AVAudioConverter`. Files that declare no usable layout get the WAV/FLAC default order, `WAVE_3_0` through `WAVE_7_1`; more than eight channels is refused. For PCM, FLAC and ALAC, whose declared length is exact, a decode that ends more than 1% and more than one second short is refused as damaged; MP3 and AAC lengths can be estimates and are not checked. Core Audio errors are reported in plain language with the four-character code. -Normalization uses a mono reference mean and standard deviation, with stereo energy as a fallback when opposite-phase channels cancel the mono reference. Interior windows read directly into the reused buffer. Reflection repeats correctly at both ends even for sources shorter than one model window. +Normalization uses a mono reference mean and standard deviation, with stereo energy as a fallback when opposite-phase channels cancel the mono reference. Denormalization distributes the removed mean equally across the four stems so their sum restores it once. Interior windows read directly into the reused buffer. Reflection repeats correctly at both ends even for sources shorter than one model window. HTDemucs accepts 441,000 frames. Isolate runs sequential predictions with a 220,500-frame hop, applies a Hann window, divides overlap sums by accumulated weights, and writes completed hops to four Float32 WAV files. Returned tensor strides and Float16/Float32 types are respected, and the output buffer is read once per chunk. Non-finite source or model samples fail the import. The decoded original is preserved for comparison; no automatic filtering or limiting is applied to cached audio. On test songs, the four stems summed back to the decoded original at 28–33 dB signal-to-residual, and cached stems peaked at 1.3–1.5 times full scale, which is why stem export applies a shared gain (see Exports). diff --git a/Assets/AppIcon-macOS27.png b/Assets/AppIcon-macOS27.png new file mode 100644 index 0000000000000000000000000000000000000000..71ba585b1d6f9de05c2ddc08b0e80153e9fdb84e GIT binary patch literal 1656686 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≠JHb4~- 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⋘E9g8 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

Q=WP3Zp)Suxa}*v@m##?Un~ z!KqO}O@K$+sR;4Tl8T!=>8sCnHGdd>C$OqBv)ue)l=d(q^d-L#zvy`oJ%LRq27#|;AGbg?0uCAyXew9*q zxVH0rll`W-s(Vq-s5Rua;i?;Bb<n-ZEYVF1eJTobS-_b-h7c4 z=CP`EkY@=##f8cliK?91fT%dT)hy1lS?YUvgXKGQHfNu8KdfV|k&R4vw&h~1o}1U> z?sRsj5KG}{`r?)S?!S?OAzDYR~P8{@K>& zH+taYfeI00+2#`NMwn zbn33F+GJtvWIepul@%(s$O8{w=_n(W$~j%xyR)qpPM9W`yjs!pr@&gk(QcRansS`AqiU@CMD$^98dc8bFl2e(LRQOt25rloS4=6aUU<(}#+6o>C?|gGyw2Hm*6Q zYI{0VV!C`!3L5lQ2aT>eux9M4C}0&08k|qJj5kPIH2YxuHyKmyFo@h&_NoCh5Lf#K z-69hH2jXEaqb%vu8)SLhbF^mTBlXOeUv%V&qc9llqlae4earVff^pq&*iVU+xj)W& z6=3-;5sYK`!NtlsFQTBj+?#pCp-amdP3J0OO`%(D?dya~;+)oOfhTu>xwvkE1x5i* z0L9W2!xf#pbAt$6c$HELcY!e9-38M}@m6|bSi*%Tjb?KspL|x2-l3-wy={o)_(3w;qN-d0H-ESRJ4ZeYQZc8GK-kRBp zybY}?CI~n%-yCn3p&&{0;3l8mHG(dNF_IgC zA&&ys9rF=GdfvG78DnoTTj#32d)!VENH_%v%DQcp)Q(>Q*{Xx-65m5xHVyt`ySb$| z!GYuqV?zZGw9&I>b~n)1lMO!N`p(L_B%N{d0%q-|1h2+17ZOTgAnO!e?0&0 znXQ=?<_2D^c-DjFnSawh>|e&V3XInj+l~pPp;M4|YvS+sOKzANON#RH9GOV3BhsqI@i!3)7$rp)a~nNW zjH}SZX*Gnjl_9$<(CKp_eeOA*O>gM8hdCHk{<_k zBMz$aYMo#7w9s%(0pXXEN#B{w*b-;|gCZ%3Z?g+hFqxu3QD)_gdt93SJvOAhvUMfN z9~umQ44T%LfY0{1v%VPYLT~L>q#yq-PBD7#Jyf|rdW6ZFChc3Mm_$9_Bm#Ad#*}~% zA1_!il$*Q-1IR*gqg!rZtT7FkjF8lWCXN(?$9npINOI|T?qTA!cD#Bk7QxpfEHLeW z3Un-f%yD;->`@z1Ysfv&_P$DD$)WTqSna18ol5^}qW~_2paqvChQA59td()klPx|b z%iJr2lE$nU2-ENf$UcawUE#)sEGPPFlBdwv%mGeCcC6`fjfm9bd>V86lere!B_m33 zi?J@Lrc+AIu?1@sI)pd@xOFAZO6Q$Zlm^&cLzb2epf9hRhWEP z+>G|(rqv#}UJAceAJHrUjF3qujBqKepTSvyryn;@=)~lxVu1$T*rGzs8{uIeY)nr` z)!r{8B}-B?Ulqye4?KGmL-f~v#P9n)XfmcJXDvN)8v|V{={Y;%(F2mSd=WpyhIr0G zim{kohh`&<7q3@K#q%3xv@h*?y8wb8c-j9^(Cz#+xJt;q5y2io>5LDO6o5G41G&rhed99bNP^K`mm4L}@s5R%*E5)jV(bk@qbn!IYb8HHIOo}TeN7rzqD=Mxy2iqW^D{J{BWNUYQz{s)@8`M@AgO_ z$QA2ZtaBbju-N_k{Y(+KA2kU-mqF#-TI?e>?vY+SD2DrTR+QK7M$#iV*?eXOBn7vi zl5HqK1vesriIH|G_Z_CFDTX6dBaU(d<4Icb&f6RGvnZDWvE&5jEze1=p@|3^xSo8L$dwiEEh|#WIKLjX6{j6UD)^lwH@^E^GX1*g{ABa(S&8{z%drRfkH1RT zk~5ZhFlX<7@n=?ibuxJLFW500-8%+&>!}}R*;3+Zz7I(ztTm(2+d0fI*T1PNw&0|y z1kI2DR^}z@JH>3M`{PQRh-6kbG#hUP>GX_nlKZR>@AAxuG%N)BAGk7i>KH3@^lN)Z zzCx^*P?wwfrq3nSrJGqEs!i~}(jUJ6+>t?*9jXtD&l5dMTh2*ZYk32onPT>CmQiPV zCYH!QxP@?AeoaQ2f|1+FWyt6PYdg&UGU!0*MkdJ#OWjK%FYr#bjIWFFm z4ftnT&`Vxo^bnr$Qn(f%+N;Dpi9u6j8sQD#sa^&MjJl+508m1e!;iYjUf%`wSH6%E z?~N4nkuTtkryCV_E03Ij%?@ktM6tAS52RZ?iB7$ZejS@N?b_ArzMYy^iml~_7RO&X z`W0dLl4XC~2hGhMzbNDU#qxo(=*>eZS{{H|`i1w9sraGU&)Rnt>cN>ABEF5%vzae| z_$mfat}LnwxrI+`U^BjABv(805 zHV18guy=3nOdYQxm-9RS(P?hV_1i6fD|;WuDeq~6|2hQl*{UbFX# z@^PD+1;th@1X|1*9tWO;!w-cUDVADY+l7*i1nsb<3{5OOERK3iFmEWCpwN&7?w9s2 znveuwWK2Rhtqd05FbG2?p+tf(p<%Ig%JMBfK_~$?me_O>1B3P_>(B}_k`@Skn6?)! zXP?y^z?4Pj6-J{*p<+Hv&Sim`!AqkW)97~{=1#j*`flBy61d9Tr%#ON#8{mKFME?* zbXVc*iAsH0d7iq;^lt=f*(;LL4Vj@IBiy|{xS&*DBo@BE}qfkx|dN#1wS_n)m7Qi*% ziV;~JW{|eON`+F_tdg?aiygX~{Bfxtw))iEU+obue%*S=G{{Qh-PAMG0C}~&Q_AUP zRvsdXfjt!BH?WOS-+T9UjyUODgfy#*AyzCVY>uc$h2RUQVCLj)Fzujy{=Er1nl)Ni zE*UPLFiLdPja8gSGj6<*e)iG1QpU4RVwUzH6mDhI$t|M{uhjZSJ6W-oaV$RUMkVT= z1bgmNE)0bF4API6>(Y}zqALd5D;DkI<_UL-gKT{aQtwYrrrv|Ebj1`p)5oVN54%_6 zB#3G|F+WGo>wEhxuc!#xcFAC>RPkTe<_0=Hrn7!W`yR1CtMR3`TxOE^fm73O2H$5)qac<)Crv$)m3GHu*Or3H)< z*#Hi`f?M@ufs#@RcBTe*j{)iAbVe0fa+%+b`GCtE7k!t4lsv2yt92&YO~ycajM168 z;6>uYeS6jZ+n-IE4_50^4v%a9Z+WoT3z+%;Dg!55=v(*wv9Y$l&8? zu*hC%F45&vsN9Si9Nn;6%9mDJGYM{dV$g`=X-%bYZpR5LJ^?O$8pTJmB&2I>nE7S; zw=vprY%)A=8#0v2CSpk!cr#tw+G|rlyR2o!fA~Y@hKZ*wvOB~(4E@HoE-i^_@+1JS znw1F3$oo7adMM1vkxQ^v4@xFp?)Fjiq&1x=%~X+DS`~1-LW!WPuQ~~hc3b+x=Ur=- zIJIHpa>qT3b2qP($gq@gs z=v_Sgy1=d~=3og@oDIlABzuPoRvRVYbiSQD;chIb$TQf=-=e zREMc7FUVxsB=>n|iapqo$<>9G-AN!W~Q+rb>4d%wHOS}C0<9$M? z10DJGBVkR-)bh&_;>ea($DL7#+URfNx-qKFJSSaiEwS-@)9Z=g=xebfhc2%Q)8fF; z%qq9}15SLo!ORvk@X0&^_mB+eaMMqYpzOVBHZ74S)SjiD8@ylH30uofOh+Mj_iXw9 zf@KTbO-mh4%@a%$Oh+2Vo0uko15(mG?ZA2W?S;cq%6nEi35u-u>e&p&bXyPvlB zGQG4|Wb+Q0{FTU$S5fh1cMRtC6CxHt_ia5wmzgN*?YiCYKTOEW+)Mpw<^N6%FA73y znJzE9q86Xv7O2Mq2kgVK6Lm~y{SZi|h;!Ifot9i}l1ruCC`g?QxLGCuT zEXhMj5O^@UXK$;LB)qPn4U8i*r1y0H@xtHg;G>G#1Bm`XLI>{Y(Lhzk@I(TWH&ram zk$2T>@!8&qF-ubt%^uoo!`Ezz4s%*?_=f4qFyol>Sk@Y%yt?({G-IJ>Lt$1prtI~R z)|U4Vxv-s3yd=E0v!y!qK6w`}ek5y5tB&OBm+~ErMku-AvP9srL1ed+XsI<4J_@?A zz{kiB)SzOyr5D`+?$^D`hz9$C!^F32>QXoso-Zu=< zTJ7+%q!;v}Xb*)$x`cr$B_-sJM_(|A0d!x(cJuz>R+?>P=wP02+TXE|Vntd^1z?di z6u{fst^Z}4Ur%c2UFL6&w7wcbu^C}hfQ=WE5`w8jV=vq+@4Vtfh|h?eh2ZC(%sIIW zwsB!B_xr9YoS{0u6p{>f4m64P;JCiIJ|-y`j2=Yi7|`FF+PB2Il_NALa7=g*x-W6$ zmi7}1fM|wnbw{rG5jPC>bXNBC95DnOtVU!NJA#N?a&ZU?m^FiLKjd>XgR1WCY1r4cr6-#f;RO! z(Ps_KW6)!R=mfNt8y7BCOdFs=P;*r(tb7hbxCoS3wO3+mKTf4`am$~kYw=t4ryB&9NJPNa=I%punKp`;ph8x)4*57N0I`Ady0(G^T2p*n(OJV*Fdzw_8U_qaoFc_%-tHoforbRM9k z2Ge(-TWr{${3srf@mNpb;Z(Z6{!i%5$-6V6+sc4cm_PK}E!*Cd2Uf2z#IBvC{^_*Z zTl_?Go!~5j;TpwK3&n!sdsF=dEvypp=^&ckcdY+-{PX^*vJ|ZG07YL}YFPq!Q7MbJ zGW-o-6p=Oxi>LcE^^0U|!_Si8c!&-9;hbzA(_uYllcqje6TPVa6@YV`k>+E>@uqaG zg{NiHuL*55Uuw0>pv~J~G+!xd!#3-0Rv<1>ab%+fdmjgEpmwWT<`};D1iS{o-btuk zsCD~l4oS7nFR{KWp@b{5BiT>}Q9L$CUu|RidR6o%&H!qoTY$iBt!TjhRc{3yTEWiC z0f1|Ex|pa=dBf!CTa*Yow&ai(xO4cDz|}MVQM#e{3>`RdnT{5i0a+zf`2tYwT^F#{L)NxiT3Vim4g(*&n40v9n&{Fts?rd=@}@pY zUm?qzcgY6t0Zf~O;Y54ZMAovu@Q#?Kbz;B2nl)O*M+InmuZw_A1S%OWh2P(B4R=&2 z;ZugxW?*5z`B)Hs<4&zS5Q1)N6++5|!L#iQ=_`buo_2-3qUwD4>G+P$! zn^`2I-LtvSKY*|Av1}`%5W&N3uap3l??jx#-uX9NSPc{6dKCgOgn3h5XrgFmg(LWs zxw7_t@?!3Z#-uTBUB)3ZOHA$73$2WjjM#8*K`O_FsXpW}kg>n!Bv z`D5_KEl>i*kJS45?Y~5%Xh&=*bTr^6!b8IScv(zvAc`L~Ru}jXH8NdCgrIKYK+T~3 z!Z#ihZKncD?tM%)zL-76#uT_Djpob8+_jDZ5lYbM#sS; z+QdAgek5a3VCHHS()yA8mWufH=7SZ;2pv!(g$fDQIY!x?BT7~#jvgihY$gg_SAR+k zm*GpKb5ij0K;BR;{D+fc581!KMovzr zQ4W)TM*%&^I}gytgUkYA^>%;QETIuPZ?8>>_$Prs@$AtmyYo#EwP{a_TUF$$n`=%t zr9yGU@RjIuM@!)kkxZ;5BG#apwJ_F(v(Hq4a_532>@Uly0cpo&=@g57Z{K;I@EhF+ z?o&@ax~bGNw{gqB1ixW?*L_|1marXFzU%<6F(+BL&DI8~-N~bLOdaFneg~_gVsI+! zZ@km$diN?Q^(qJWHF6)Ozkmr2&MbhEqExkE0*t2@OuIis!4mCV5k(4);2fvv}mIub;-0Vz?go*9p zbpv^P(meWCV(Cqx@h+|_?KHTKOV=HtmUnV@cE67mvq(k!YU!H-iK%fR^lm+9K_tiB zYB^KIZ@*#^7OjdNlh+*;87KqC8}>w@+|J|Hffp;W#sd7;?Me)hQXf6W7_;T7eA*|p z&i*ZbmA-`$o%xo_oU1a+lVO~W^dvLwo=USJGM%`|y`BsaSjBAKR|j zCJR9Wi5Id5`|tk5t;W+MX6K~mJlyx``ds^-M|3G%pN3jKL(g%utWIe>_GbDzB%?A7|B4RB$+JIu3%F2WdR2Bk9~tfZRJ`HJkK`{(5Vv%QxgB#OeTOPuF+ zJUwcJxVq(Sd-6Z@C_KQ0A2VbFh7tMxvy3OsoHg3Wmy#=w!Tc>8(+1saJ1U<+{H$5w z2S2Onu=$cJ7Zs%G@0G29!*ueX>g!Nh(yzWGe%kOcKxKIG9Y`=*PV$an1@k(7^>OWL zAK`iqet5_V>JLJ7oP*j>9f*zJKy9SQWnDUI?S429wLB7e_INyrdRhgv;iAyS+WUa5 zy-Mb9I$yoJ3o9@+-7?;!f8A@et)`ILqXEb89od&GmqY*6jEPdqCYdW-oL_^RA8=H} zkOVQ^{jn>gtGKmr7!&WUrgVOJ^_IBofmfYU0^fd1baYL*=n>ss7#YS@c+n5e5>Anj zl1aFvL!%1(^z0=uFYOVSpe+*}--I3{A2A>R`NJPAN5F#J({H~B)1Q{rofmochVoPJ zInI7ZhzXk8g8+;`B8GQn{UIj{R=|dFaIRF4v;p}Jxb5hlJa^Moc@3hH$k+txG<q941G~{CS^vy6(15e6CyYj?M$D@A_hTxU?4Hqo-+CQG3?bo61R9D!x&gNX0TfZt#3YKoKU7j^lJ^_C#OjJCHL}0Z zvNOZNh`%Mtj2}>76Lg)&+<z8xwv%$=mF^;2h^#y@UlhTD@4mVVhq6gt?1pN%)o zcWlQROHS>*vA`Y9auqnB@Y?mm(1)RS@-jE4^XR`QbUbtYWo7pgF~HbnCG^?0QXC9w zE%-sW`E48-7p0$&mIXFBKt0~m`Rr_2&rgV0nr~^>nz-72>H#*k!P;=${S%p}1fLuj z8~&}ZeUjm_Zb5eWqJ10Yc247IttM!u+Bo*ccOnoPXp9rW_tw03is0Ge z33+cD0g#O&QVnVKsD0fCuH9xbba}T=l63BO_kc`ZJrCA7%_Mmh49h?8V3NLH`aKM$ zK{a%7pY0ezY9JOD_#;N)5A9U0JW!)943}llpXA2_{+=EtU~J7%T_BfOK|CW-|M^89 z&V`PUU}5`Kxrlq~~Y4c^r;dn*6%@5-%Z!06W(UopNUbzUR=gir}0g)5MjO zk$pyvDw;(s%4Q1M=oSj9Wb=>M(+yLn>XKX~Y2IYiQHJ$Zx;l4aewRP1YGKLGA4Yf9 z`_nsP3THWKo;i`l$@1X8IT83{D7dVeP?f69AjnnNf?=JC)HIwKUprbT=?>`w>h!oQ z8zBmq&t`!N(EiH$! zXqZPL4hEw7z|V}TLu6G`#{aC#m1MdHM4XI5+O#Yb-xpc(FS#+fQF8Ux{rqW$63pUd zwx2aoS%`%qss6>W^D>?>{BsLy=fOB>m21I(VqC44K9V+wsNLgXNMC*A)f57qS`}%6 z-cx7_Na)G0sFPHW$+7&Pv8>L+q2}X{M$#C%e#j>-!j>PPEdh%MG z>{4cSO|uVCyc6xP=(Yi@@Kty8{3{$>MFdkX|IfxErnR^!ismteodgj=q4!&o_S$yU z>^Ep0DWt)|XJZ>Ap$7{m7P_=!8_jc|Nod)CiQyikK1u=Wc;egKX~5F3?Jwo--0?!f z8h81W@B#7~Pwwc%B-w-C7W>>?Pm$mC5t64@S!`DpZ8%Ih;PK&!4O!4FvJ(utMeO&W z){y%*AWoFT{nT%;HqvLG$p^X8xUb}cG_z$`y+^HJq3%FXCeiLbpz;=e0l zZTcX%Rbk|9v$$IA<{KsYH(Vrfexf~i)Hu`TGIio^d#Mf-$pEklZMW*{!APPN@=9|O zx8G?nwtJIlw8uI{r0(3Wz_fPXJUzbTeIVtVs~@nEWVfJVh9>m4_-7FxK)W(7H85UKK( zjnk*^8r0P<`eH_kLK$?-T;&D$KYA#x{KAc@@Pw!j?*>$_WWXpt%c0_7E3A3(3XwPz zJj?rnMc3qk@}&SSbOh%!5cWBhjG4G!nA5Bv59w;k{@Z3>>u^nh(v2`@S~#YYlV;HL zFTN?oLwc7%sV~;q~Ury+lmOrwY9W`ky?iFLkbK=~c ziT|F;&QIXqW%;1D8NSlS3eWAm=9kQb>J!h-hWN$?^DbCf@02mc`1-mqgd7S>1@ znVR$@CtAj|%ktU}3;PC3=la~)V^7VYdX#C~#fAv2#7Tux%>x3A^rUa@%_f>D4!LlM z#&=uE?H>fbsHC@53~UtmDO@VmA?;lJZ~J{v2R>jW&?6}D@eoyZ`8&*=sSU#!3pr}Y zd~dYSbi7mpx$?ytw|s}GxBdNS}Qf5!#X!M)@43_$}%aOjzg z-HrWwLphJTi^*eYOPZx$%0EO`jJp`K!QxsxFdPPM|#dt9av>@GGN{7zkG~W?(pgM{8-9(K3XpQI-OH}9ld5aJIbV;~K<_cbUN)|(GneVEDztvzgP(Spd} zp1-y;J0MLa_)#WWMMX%o5fVR?l3u0D&-Wd z_q^#n5o0n)ybuH8kn}1Ud5GTh0_pLq-ftQzuHiUm1DV=Fb3IAQ9HLtIq}`j&;-+|v z9x$TOJg_g|(HqNU^O7HDZ5kPi?&A40-R|7f_f4gMWb^N(o(*4XSRsWO9pB{R2IKn% z@Ojt)&cBytHJE>&xcE(yS8tn9)t17s1=FE=q>c|X>|xFL?9cTU`ZGOmU1ndw58tH- z5Ua8`x&-wl-J&f>?X>}{`nG!tvdLF<6DWpbeQLvgc#mB~(Eaq?7wo|F8=1aQ-fOcg;&W zk&=pJ82x>;d1JxYlOS)9e=Yx^kZ9b~MRui=z{oz|T_wQWL_RUA>a@C~d&EQ`xE@RQ zcoO718!qkW@RR*EOC|cQqSeb=rO?A$J{yd2xQq6BmQ=jZk!my`9FfdSD-=w3#*Z&u ztJNdpL<0%_9NXpa=s{CP2*X1ZgC4ZNmj*PjuECTeY2Cs1Aq|5{JQ> z4LZ`uzh3%1b##^9Nmfn`~7viO)4LT@ELmct9aV zzMRwoqN}LuV3JgwkUpN-3__$*i8JjwE`Zq1kj`A>vxkHw^&xVU;h}({o~5MqEG`r% zq9xO^m5W6+|22iBzYJ*^UE6s;%`I3P_h~qS)`mw$s(7}h4=G%C4&VbhGtqqH&{9f< z_UZyzkfjpOFn>B|4o4Nm;;}YG_3BxgN(tvUj9aW_DEJSKkOieP-xZ4~Y$F-J@5WNa z`l=TwGkTOks%0_`*sWZdV@RdPKVP|8jKiL;fWA%xyqPBevg%w)0j#q(Bz*cmtq++m zMbMTU?upeWKM|qChv+L>Y2>HrHTeSjf+0dDjq+Vc4Z$d8LYNGMBPJ3*alH)Q5*B$% zBngh&RB(p(n9F$c6w-ewlX^h@?q56t?hoLPHu`|O*Va^|uDh(XTjz!(7IoiH)P-F0 z11@z`Ma3t|=GJ;N)_xManC?TE`810^<-H(v&`dM7rq4Fyd+OKRMrEBHK*P{537QJeT2spe zGjj0t%J(Ix%BIT!HUjeZ~}d-9f6yoK8Ge;+2zlHvAXW*O%CIaK8_=L z14%!vY}Avz{fmO0pp?sxt@j%+SjUC*A5N5e*u{SlGUft>6(RPpG=?~b?)(OwLrwPc zcAxto5Ri#}Q2QvY$)@zC65CJBYHR3=n0x^ACHtmEXqhQGe7h9h# zbJmXN8<9wsqNsNLl!<&ep>7Q-2=AvWK~Aym%l3+Z;h1>TS>Ww&S$@{b8#J537*~%r z2MjnNRP&O_o#b@{Ss%h)>EN5n1LVb!D1^k&RPSN45C)0fOlSg*LV77pS{1f72e?WL ziToA_jqS`|{WZcwukN+5!I;JWsN4+Wfqb2}Xgs8E6-Xn=DqQcUl0A+YL^(|FNoLfJ z2m9j^zAmNZOXoidChX_&LeV&s_bhV9vyaxE=BYU!A%&=P)|IWRzgdhyxJZROd01wmAv9?rZH2=(Jf6{f55RPS;6n515OiDSOkT6-8zr6Of2U8*HCE zlcB>{1=#8ZhabJ(az)L!}8CNB@k=A&|v?b>9MOA0Age~he( zEL&xIoBQ%1y^?MRi!?2sb=oSc`|TVk>C>flC>$l=%C*0O7et6TLUFS*<63+VLH0C( zCWEeKM1t)eT%}jLeXCbTYC=uIdYVYH9@I|8ym$4VuUnxI+>ZBLUuqt8m_N*O7WnTG zz$TY=G;;!XHlA2}Xv`EYVx{~HR)iX6ZkFlvc8fphI#&^I{b}teo_5awhDDr-5&Mj} zX6fo?B)tL*hVwFPra0G^fBe)8&zL|O$3kLjzEZ3(OHb4{gv2{!i9v4d6@|ejpC`H| zq$oZ17(lY(t74I($oY!SX)b;gX?lnJ!Xa4BhNcDEF4gs*nmEhSOs3fM4Aw}5lo$4p zXS@fg!rNgb84u0l9Rmyn(Wz4YRZLbciB=_yg zBR+7$RDyWt? zGJpH{tnxWr@B202qa3J^@~6i$V>VJehoRMK4%7+81I{|xx;1f;uo7RTb)4)hx!W0h zhSm|itHw8rsIWLUm2U72bg8U3%|D@Cyl9F)zMuP%h|rn5zm^SWHtJy{> zan)%+_#wsv@5nZU;+nF0RAh7GYro;g`v6eTTC$yN@G{2_)?=7{Lx@OAt;=(b^es9} z^tO3{;odJ!3FZ$K3L;CsqMz(}0|NZDD)5z+?r)HTtSksVh8&u$s&9mbd^TD|Uel@j zdA2HBpFkLrYco>i;HuZ9CXIbjrR36DU)K;nDbER`>F9R&Fyc8}v}43Q^>skhwoC1J z?-4fbbga`1hdnywJh&75HEHA3NL$k8jgr>({c~TbmKb3X1{dj&`Z{wFX|jJ7AYe?bi;##d7%T3KTBjVn9b%= zX3k&obEMG{+1~1x;IZ8zUykD(l6$B65qRN)Pk&AuXe<4Np|Lpv9^b(z5*WMngVm3T z|9EPwsRY&y?>tM<-I=ZFyi73uSF8|**2B5&RQa0Bznn4^#}SXjyBnx~aqz#bhbCxe zLPuJiW&Vy0p|?HC^eFe3x~5qS|EwfXA96_uT)YLopaEjXs?@8tjV$CcZ#%5^$yO>p znnJUNF3c-7I9r(vcb&MUAlSFIgmw(6;a+z|n%nk13b3cXz^7^75}86)SUKES?lJ#I zz*5n~?%4eanIwL3@FQ~#&8(vMJ-DghawAODYhVb&h5a5@83>3r z`S6RW??#>hi}sHe!VX(=KjKfQW|y#F45mEZ4!~ta6xR+tR{}m zL-E=FgU!=p323x0E=)lfA7cA5FdTG3GR3GCFz_~s073nD@vWj;kR0I$&2MjPhK$FU zKb&$(!;EqOSt#Q3$%W zi^;o=4g}0@!XO2$4+$VixObx!{MIpS8Wu9I1k^+VUA+}X?rGr9iEI0j;q-OZ?nH=L z4q0!RZ7z+MlJCx2cAiD@S)&t*Na@lHkm69-t;%7K+eEeyW;||?{W@MzXm8Jb~&S-+D-V{5)IX6pn_1nBpz(U)q=gpA|X zFqfs+%XiGv81-4X+0yl{Vtr6(k9G1Eew6SAToTDS0B#9si`w5v9qAi#N@q?55cZqC z1F|K)!i_y?r@N7pp-MnT37^%r_#OiU|17_L?*62ivpxD+4n&LQ*%U?8syWi#8v6R6B zrnUQ^aK{#;4LLf>PdyqF-hQX@HKG2*6Ti?Q>iML|>31gj?x66fS}eDN<)VOjPDVDK z*}|!{Yo?KvfQ6R=?;+VtR`Km!$^rS)kMncL;hZRp;Y)dD7XyQM!IRME1$z|H{)=|f z(+&c<{?`;dkAEu1YlF&xN;j&G^&|>GF-ptq_WEv-tj_I`5_mpwL`1n{Tmr( zrbP@*+^{?~wBN-~oyGq4$Z4|?<%DCL)2IctlZ7q)-7$@Wbe1&VGb`y(Zt{NN9X)T7 zOf1^K7m>D23;8gZtem6D3Yl0~nai$jPgVBo{dE#Of}EJW2&Y1x=F{ zJa(y7C<2pv$2I2R+!efaB-=gFlaTj{|96xc31l z1|$kS;Ee|PL&jZiBvqmB`c8U#-j!5hFs{`5EjQGfK%L^n@kL*}$nj1^smn{}FJ2p z-*op%WXC6+zaMYJAKH^2P2Ad0Dvi+Ff4PPyoPUe^oFHJ3W+toX63q9D8g2z4Bqyer zeQnB42gYD4oX?#@PpG)-Gr-KqMR(<%EmW|^+thUDR_mJ*1Z~C5u($Gg8aD%#?PSqR zF4Z!w#-_sfTDB(URpmJsyWYC(M-Rmbf>i@6PwHx|DrHH#3PwZwX(c zEZ`R8g1$hd5be!*X9PjrJP;v!oAK?>{tVOarb^ZYYD2S{G7gNq&<g&xh4<8ePFnVH@491VW8+`b z7cQSyDq6gYzpki`;Xmj}W*4swil%A4E&4;DdCctR7+27gTRByVeN|YDZZS)|o;cnA zHg)um`|=eFG<$zC)q|Ob`cj#fIp_KK5x@W&%wAaFz|ww+d=q|*_^@AL7ZTJ{2!Xez zv%w?k5PtC53f zWN6Y`>lOzq5D9xlCJKz(p^1L0doLK@9;m=G>M7O0);DdxsxxjaFKq3nTZRTh+Ypi0` z#J8#p^=$h?Y&uzNo7zb)b{p`it?~G#6m~e?r~k1k7lV+Zsj;19oCWD`o3U4Do2(G3 z#w-iY;-Ao2bHxWXx}pzKp?vrp@Dyw6Fsn2lMp)^0tBQ{CsWIxcWY7tFjMfS;%=9cvN{$bOn{0*?fe{U1Q6I9)FxSw>+2sUd zL10a`I!^f*js^<3zmmnITzo=v^Qq2AUsowhO7v2x;7i$A<|sEsBp`E5ii zXso-EDtj;PD1?aA7$7!x^$aHoKe~CQ=JIUhw5;KJXWtmF5B%VXoDDgKpS??xs!%l} z4tQPg{NXzGs@@7(dc?RiyMl4|r693U!-UmDsg|1&Xy3~Q=gW{WNaLV^{KKmal&6w^#<$XM&HtU)2x1V>p{qKcjjt}3ys4ahJ!qNg zy0T-7X)PK%czr#+#F8h|O%YX-!h0fpw`g_7u}a}R;WYbb(x`|WVkp6VUWWH&_K=Q6 zcSTHqfkdb5ljGu+Ek%=v=97QOzVgL(=#Ut}NH%xh!KVH#Kg`Ds+>YTwv_%5w?!YaN zWuV=~b;fHFuo>|zdMa5Sp6;E~l7PC#BcqsKbu_~YjQJ~`3v2)j2U$FcWm5ED3d|S# zwI8THcQ864g!7<;M*r^zj^Cz>&<+!Yf z2Jpny6v1eQWZT_7A-daw3&jFUsEZS?5m6Bxh_}rnqasi5B4?~Kdr1Sl>Yc_@WW@sK z$-O${1EM%B6K3%>Srs4YemfC#=d-Ciffv4bh1@CdA{|>a-aZ!96VIyAb^5abz0fmX zvA-pDlz2X1^XBpp`9-=aE?D=NpUh%ECD6!Ve5{hI77#LJIL%mzp%Hehzo)-Nb{oej zkyMUm$+=mGe(r*e5!Ew2Rl z)AbYR`_tfE9c<-ypcMD3wf|69L_euAlzh>5VGSTrXR!IWcv}-wuy_%4X<>%g&Hb=( zmVLs~4F&6Lkef&HCTn!JOqq#B#gfLiuYMMk1zN}!TSOe})6B(aD*dd-w!ngE&5~v! zm1?hM@&s6^%zn+Im!wkU<|n~Av4VZV%l0t4I!rMJYkk4XQbYD|-uz>-peFqIO}a+i z0Wph%`FvaGRM8Kp=%pzfFc`z$PZ>^yh-N^tButGdwC+$2)=3$8bxCq1t?HEfR?t0~_+|Kyfo^VwFR&o5zDwKLy^7WeBbisdqa2 z>(AxLF3q$kn*=9hyIT9=pP&+fRjC=_RAqbLDD|An4j;vVlN8D z5OsXN*@imtQUFYN&{*0iwV1m3Lc1HMP~VOri{b9)trXO`lO>#Sdq3>ei!AGO&KVY&gO{;)RywX@iq| zK#~~GWMAQk2$4WHQDdPT`PEScm8WDQkZ`a!6je2E>#Q)fTV73I3Ptmjii4bkPf8pi z-1+}!nuQItt^dd-gN5in1H*e)ffe!kVdH-d3=mT7=H)*K)7!LADl!TOQEz{n5<}O7 zZy= zseV<{>RPJDR?`a^cd;C)jYk!1@xkM2l~CJjr7Y6Ws<0pW=)PzR5==_KZqUl>H>BHm zjVh0LZcBu#J}cF#($A$zMA)QF-WG1AdCtyg#+Q4idQ94;Vew$jO4c2PH1md?HFVzd zfr}BNz8m`+z?7|IHR=?Aje7@uhuRoDggo-a1Go9oNw``BW?lSt{_6DhQX6NU;q9;5 zS6ps-2g4~whY9#@Es^c ztobYSf&7=krS0@)$xtry?~mj(zT$%6M4{67l?E7X6_Wa0yi*eyJ2JyHYKe(=Z)v>9 zr9PTO5;xIs?BrhmnvWp*BZG_X##e0w1@&`n@~#xOzwg{Q4e=B$gC+b{JTFPagl-@4VxX|C!isFIfI8?VO%%N-p?KVaz^Ip>bCPm?px;Ta2$$O3Tn1 zPuDG5iZcEcdRG%_Jmd5Ozk20!|BC$d7fo_S82w(*xnGIJ;P2WqX~l&3kq}bSS9@f! zm`HURMy!t3UVOY$%(X{fuvQ&OUxh@20i5iZ;okcutY+In%E8)}qZPlf^x1rs?P2_T zzYPf%f$pDmrRd9%9qbu3{zk|qnUsIJT+-^RlQqd0l{es{XvO$E4aGYYzAI9j2FCkh z9Y1L8rv!94;9=#&;jL%_6%i;$6KszZysii362AB(N^G~E#RieW;ad9}^*4ne4Xd75 z$;QM4Lim@DmftwfAjSb&j!6f~!ChrTcZQRC&L@Q*W!q$J5AX`jf1%Gr9=_B)d$j!UX(^fIMGT^FH|3)>SGJ#cnO;8NPQ-y z7JZtT#UiqA$10NOqD7E10h2nu*w4Lo1h)Z-5eL8+VF&jfY(U_p(j?%xUAbE!8gH|Y z6Mbo+<5Agd+%I;K_sh$P44-Ho1L3$O*r3M zEw2u13kD8l_BlsIA%Ytjl9dYe+$QEmoj$!#)ypPk(Q?bbIq=>}C7(RAwWga)Q6#-< zr&85Goq+6j9|uo^j?2Bxb);vksdFxw14^h@J0y-Y4cr?dFlp$I{Lke>xpj3h!bDl80(`cP%BvW z5glFPRw=Ifvi*xP>x=uh{QL_vL3##uj+blMwWXe6z02k4g2bukKx~<`^|u&be26(@ zB~@F>Xx!N!Cl!B@5Sf>tZR|QCU#GWaTfRAl4GdbS1s%q9b1*gE-owE?uv^geAmXo> z^Z|Cqe<&T|8)p$h2dCZRAI7lVZn|0^2IW&WRs<3AOxqRG*E(0GLavMEK*H%B1~NB{ zg(gF!lEb>9cXm5(W-KD^*=JaKLS@i~kcucC@;C#uO@u!XXT4cw4vvp1n=gE$xRX{8 z|MW&hJd5z{mN;9$pUQz_+pUu1?H>O>I9u3|x%f9)4aB8p(A^poa*#V1B7(rWH-H?h#QFH+5%x!D-<#2c<#mDno9@UM)>cpi_{F9olTI zpO2cf0~-BObw*?x*hb2N}yjR|`3_!xs(H0CM)cJLr*_g_z zVk}WqU?Njq2Np|YtfQ)b#<~uW1k5gb?SOd`88%69b)J*IL`3%8A0kC_jyHbr>~eZ) z9Qu#zOhn6Uf2iz!9usQJU!DXqoS&h&sXucGl8I;{-(NXGNz^_7qKi=RZ8s0Tt{ zA9=ne)C5)Q)ER|As3`xCL1#VbPc+*|!h9$;(5x~-3=z!7=&|YSm6Ha?1lXI>;nJ*< zDi3DPmP;yi7EwQzl(Mk23fu!G^WFJ~hvN#L)SU?3B4#IZ+alZL;E~YKJK*u9B4m?^h%xG4g zDoJ&fpJ-P!QQa8a-AaY32Yd)R)=g1No9d%uE_k|97u+;UMICN_!N&KS+FxT>>J|=TP!LfJqtXfeXPi(KB)S=FkwtL1##%>GukD4=zYO zIPj&YFWzsS*Fp8W6%NtlSAS|twa8*s?P}g~VbK8WFD2Y0sIoQCc*}m;^x1q1w!a!| zxV<39tYA#oz}J;3m+*7`yFIem{XA{ZAGieGu>B5(@RzA&oB$d1A3OT6w!ASi#0WNG z30wkr`0c27uCD;K@8S`Q^thAFT%tCevTg{jJ*A=s$!nZ&>+2(?{WGXiYqPg9@4N6I zk~5mvQnpJ$;n{B~C>@&Je*0=65i_rf{cFFJnO*+t4ub4HteOoBCl&8X&rrML$Kqf0iA+^7rc`x8qnmyW(0e13ihQI3!?&}_%;h+cj34SZmC?xmt5#a*YgG;nS zw&WJU!Yn!rN)Wmn<aC|FHq9sh=WaTAG`a?k(F8 zM$J1G##=3eCu`YQT96srU8o|bTa)_Y8^TfgkGG>rsr4v|$owM}Q~-Cz=fi#v!d#>a zuj4`3#tIz<@TYjnIh|MmLoS9zzL3FI2}T929ej>sM#!ipcFhJka#8{khyJDG*G1kL zjj-D=hAePR*)|uaez|Gy=t=3+4!uUl>O%+<1|D0w0Wmv7N0MX!J7Yl%NWvHRBEG+% zt#J7vKRf3Y+OnpzG8Qur7S`$Gs|EF7)ixV0)lBCH#t`dDw=$%IE|o#7r^NrZ@D zCOi7;$lv4X1q0JoC>GXc0+-JQ=RyES+i<6m zXQx+AClQUwT1I<4w>1{e$zVLYKp{3Z9ZUBWL^0fzKF7K)kO7GK!eYSKJ6{kqoTBIy zm2DIDvd~aIBI7kXxnReNQ>I9iF&$02R*yY!y=xu<_>EF^Z5D=2Z*6&&} zaOfze*m&X1d!x)jqKgRuC`~kd@b$>*nm2xzL$t7vVVV{!;gaTtfc?PTGSz#KY;$H`Fmzih$L_kfzfUm;0!B$Y`kM zyPO!IyQv>qOID-bHJNC`W-O&K4<6DK`e%#^rg{YbsE{aQ z*dAm0S5<7Kf-mLD9mX`^sG!fT;8E6^4iM1j=B>zfeAoUlUAjnd_Lijp?hWzRT9<%P z?RdPA4&c92#|a^hX~uoXZKA>2Q`NWltB9;A={8oN#X!2OjG5@laA9IvOv?80U9k8$ z|4l`{Uo4rW>g)KAeKm1>PSk6Ldml<%AHqfFvxOngrPGOue)?rrPv7XaeAt#y!d&FX z8vS~}2RgMQeya0T+Fw=8d93OP`D}4tvXnkmHy%xbQha7y6{cGy=RUi$=A^ab?gpzrs?6H8S~EL#Gh{vV4W^uc zE~geEq#JU$K#$bxb%=5JhMSlgW&aqv4ouioX^IJx)nwaNnKGu*2Wm>pvSN{-+ZT4EmcoQe3@QK0K3|@p zTEhLjLAYGPngw$)QOni%D1GnW?@)VrM>bz_$}xI4yG>eXiU$2v4iE*DNDMmHnmi%>BCgV9HqA4tqnw~d!73>>4a<$pQm+t@iW zeCnqpew^`cHt_D<13|WVV$?+XI0P2qy0Uyiqs(MQx14=sPrn)rcfafCp3%>b5EKSv zi6z$1`Ntp0$OLfEBot$lv*)QvPd2jM>>Al=oiP@DBVCJ(Z||{XmwjS4U}2G`Ip(Kv z0HqzIg>MWdhCNuu@@Gt&fH#QcF&U7m86U5=1$o42j5oq9W^V*|dHfEIk@b&=hk2s8 z&;$8ioai_yZ~Z@Q`M);Usm(tl?0Iy7h`aqu0r=zn#|S%zj%RW}2IrX&bFMWUn+%WS?SgH*K*B@3_EYS*Oh*aV>3V zVc305C0>GBAu%>mXR2S#PruJlen>@A3pPV5-pAIj_%4C;Jcc&o3o@zfDNkA(+mjAv z&k)vb4as#g~~`e5dLHf3j36IF80(hGVFyF2F1h-n;Oa^3sbL^f7|)P?TksRxQznJV@e{0td1y;fCd%)iU2;C z9ma-(`?k(X4NOx`Mq0U%>`3kc38yfYRAt6haJ2>uYS73%r9~wTgn~+AECdL0|56`c zAC!#mok%}^SpY$LCu$KV1VP|1X_=Ip5fy*p|K^;ef1*5UUL|{TUUr&?VTK_3di-Gp zK9}@5j(w($*Ci|Xe z=lwJbAVlt~sO>siP9Lt3k@S*&ZyD-@MLsT6l6d>9K=ClZN<76{-|uuQTkP|8VBrk4 zTA~9}&RUcuNgiW0BKxd%J}@e69*w?9+?HbOS3J!Q!@_M>{)HQ~09H(Mk%y=SLS{~y zGUOxe<(!-kbp9SW1)?LLl~?!55PdgjI5;sx4F_^q{r%eWjqUW?N@KX%5N=JssElMD zLvV?SzS~ibfT|6b;4NLP%+=G9&2@S#4fAk=N@dyWBjQ0}+Sg13{f1MDG6E}i&3?kYZ<&|1-1jVN=7mIblmmUiL`<-c@lQ{2MFOC>A~r~Odntq z&`=vfUX2MS@eTk=MP2k@D$;*MUuNQLCy?%a9}aID-JGsfn@X%fGFRc6Xuaj?>l_ES z#4y)2sVVdN|6cajsCoZ+{|CAQs6ZLjWZK4)CHz~CT2l=xC~dl7-tN>C1xd0WY|U_H zT~sgALGv~B`X)AwUibX`Smq%1b86U^g|sy9sw01WTq&ugPtsMj^v3NE2S%v>6Hi~e zFP!oX`;WwOI`6>~K_n1%bKjUB}C7!oh$7Dl8tHZbKp} zXr_@(@V>JJ*hTLpI(t!mU-+gFg;x7@O?Z*$|Yo2K+o z%w}WaguO`(P;rUX?O$(ADYvmO2VWzmvU!<9?$QfFDjs9k4G~E&5JD5NN8EGyR^z|! zILFpv?{h*Dxr_#qgc)Lad;O$sr{v=Oc;u^q;DPQPZY^PEI!IjpF)Vrc#etdR$IodT zRBfmYA>EOb>?7xwYsxS7ViK@m$hfUM*IG%yYV30T*N;L;Y<9-lypwVj+B3V#ypi(k zMs@k5kZ^lP6B5_syz~^WgAH-1-?`lD%yt_Yzda zD_6kojs@?RnDY4L*{0kel^Fs6q#28dZA098D`uv5o?{gAJ99J&ho`siC&)sAr9v-^ z6K4SE2$gyW#>H1w>Z4MAx@7zV0rFN`$~kIq(Jw4#xWEl9*x@&&n#u=^axvyM`u-ss zTL*-%6A->p@Nmwb9eVgzDhDsxP=h)icVi-<)GHt;FmMqs6l(cR+q)set(|xxRE{Iwq+_`zIZJM|MQA*nC;L}y zBrnXXa~)G(Yl0zw)VW7|QH#EYsgt_ZCSPivLJWkJviu|5<2x<}_Yw|GUmI8ikK= zhb)2cAQlv8+Q0dw+$D0S2U;1@P-S8WxbTC@GnGGcDv1oH7eWfzQ&ldtB^&Vdo)zkM z1YU-}hdj_jgTBbt_2FRk5?HHr*}5I@2k{oP_*E)cmKB&M9SFg4Y)o7AD_i1@=3nb> zH_blxnC&$LUIx3ZbKIu5r-s9bPhTqi)FCvcDv8Yqz?JMPk{#AY*?OxTlISl>0G~JA zsyc8Jm~t9Nqzk_{Evm(PhgSE?WEC#DPNpQq^WkT*AJjaRtv$egCd9o`b;ZM03j(}t zhx8v5IZS&!q9VEhFpIvKdW}btk(N*}hiC|8cVD|!vS=?i1uFzGxQ(C*2xUJq+s_UQ zD7U{_32&f5lvCKb1WF}`B*u6<{JEBD!nzm{JCmK8v{wd6b?Fw{S`!F%Pnc%4+pD|} zHOV#sN6@@~v3MkH!?CSQ@wq=lH+nHPaa3^uQWV8TJtLi#*;R>6tMGH;rI$5FW(E#O1lo6aeJd+rBSp3GaO4|XaL|W{Eg1O^ zVbS_q6J`>2a06IDsbph`o(h2>KAFpou*4pMN|IUo;oi9?9dN)r>VX zfQ!SN-)id!(-3Dpzt7s$(eG+sCcTdkS!=Zsn8xmdv1&D2{E1b^9%^uQmKXlPK{+35 zh@>byeia3x-#Y=%YcsgvR$EIa8cz z=T7oE7AuraR$BOTz+a^qO?4jp!#{Uwm9Fe|E%#g`1R$V7bqs>=brJdzdsUNTsrbH7d=W8h0TQ};Wx6(qZf!kc1*t zt(tIc-DVhGYk?h|C7##>7XQFPddSa0PHc}Mi~p?m(+UU!H#xS&Xfd0J_&~tHkG(50 zy1Vy4(J|Jp$Zz5OxR#{!WH@?*6@rItwJRZVryO=$tXBoW1?)||Hu>L15UNXPH`{=FpZLs)QCJdLfcCvlK}QT^fRvv zyW+gSF`vkikVTF3m)MsVSM@4xN_1j5wU>E2zc>}@bq)oUmB<>c!c`6a^nB}R+YW5Djx zWt?4sJFQ3!O;9MdLT=D3x)ml!L#4YkEk=$OQz)Cj05=vHxhC_pm4$BO$48yBKkmEk zTj>wFL^=*Jt*stL;d%1!z>&oCJ1lF~h)+DQ@*=$bKXg64qkk`T7%-J#*g(LGnDfx8 z%q^#OnF3WWBJ?!|2APNEc^Bk*H#d_j;lFCS-kNR*g?P{_iF-lpkP0{*kg2lZka;|g z=7^gCHMMR<@M|Q&1#uc3-p0^PA^5#9r%KHIhsSv}R<*>pGdVdFpAhMBti%^m1oH-9 z#z#BQ^;6+nDgP$WSMg$;d-rDoVG@>ou$H(Mx%MyD3r%_g-SjDK@Fz;UhA^1J_Ix81 zpZmIIdiJwFeN%GAH2j`4xFh{L3pnmc`Xvc~d8v+z^tfx#x>jyO`e4LQ61y@pU*C{j z+D5Ja}DwqCS>96m*MOJ=`^_IlW^ z6L;-Br4+HbafM{tT=x*KxZ#I)1kyo)OX7FoIBX5rpEVu+(obr~s=h$R(DX2hvDMur z9d~8Cq&e=YOro#| z!W0w_?J1YCBt55?e5t=#(WF(J?^?M+k+2HfFt|^Je}`bhWFaDzoCI)m?{Z9(uK(8s zP>1#AN@V^ZJ8t$OapME&d1K{^5WVB0PCaGm@8)bYhmQ+b0wYZ~=&&r($~(R?!%%7Y zJ?@96V~zdtZ2~v;{>-gHT?g1J2=_bMidFg(H$d>Knr^}X#*j(ljP-9)2~(XfNIJEK zzbPH#{YX9@8aG7dvQgvowt&8a0k3J7*d0}Sf+Kay*1w+XSVVo<5$ex>SGePWY@*Ti z22Jc%QTOR0O6se|ZO4nL_5g*X&5dev){|oMvh&!&(DgE@$#}v~0NHofDYuQ*N8{D^ zXQCVN?}c!Bs>m0-57Vn3k^b&%G$x*evKmGs7z+;3!{^)EP1GLzZ(o-%j0Spt{}{8F zG2>#dkK%k~B!lECtMsUtxctAC?*CK^us&6-AQX)~u2cU1WaEFbyU);pkI*T~)(p?$ z@aDB|*sLsEupo8S%h&Q9#^}6h52zYayfCO+m`df}C7OLIvJK|ISH7aA`-(meA{=4v z^Yq;8n_ai_vLwAO)Z$%oWkiIeF0${@B4dLDp^}?9g(Z2kJxamIa0ggM(&^*7RCPCf z9+Fmrr`?Sj&qeKXyepl>(9MJ^M!LmqTyN(a^oLGlX=DVNEAwtwQZHo>UTHuK*tdjb zgQbgdBOS>C1Cej6BuVhIeN!Rjkh-mej091>d3n6RHZPb#d|!(JCDhfw#;Jrn%Pp!r zaubhl-8`n(h!coiZ7K=h)qP!ZR#>#@!t<$O8V^hAZC7otHlXmtI6l&uzPE+E#JcBz z^4o*RLT1c`tH3}(E2`?_PcM+P?2O#Z^}QGF*us>++i=sVlnNm`YWxw zW1PE8NZb`h>4B(~?^dvfGAoS--mh>0*E!dBJrDg&Z~}>u2+Z+1QU4)YF8Fq%^v!2! z=r}FtVbeEf-i@{eWh$3cS<3apG0Wq#M)7oiv0(vg*uDRLU$h)Dfca&BoG57j0zP?9 z0dAO)WZRFS?}j^51&43Qe{K3U^s1PD9sY^N-&*X&&&xH<0fMi>-M{?qax>Vr`LSBR z7rv7f3a!iL_W_F#7C+IR zzdIW?8XPDHi2OwE`cb>}ix*`MLrEy+&|Kk<_;z)Erg}N7hXy6bWGL=kkn?=xehd94 zEzYOKAFicu1X5ZDzlePfF!g<>vhziJHqzSFYS#h2N;KTgnuNzvy z)!vr!nA_ON#-R1&M%otkZ<7hAYq{g z&TDqS9Rx!-g@I5Ah-s&y#HAosQ;%fvp@Rv?cU^y9P9nKBD z^pfdf@{0Y2@u2XQ?eASXmWRNG*&xGk+`>+DH@0-eU8zJg{c{t7ceswqQ{&{vC@8vq zg{rtyC#GWMw#!QB>DQvnJ4#3LbYe8+H-Sk33Cm41YLffxFzOS}s?h^Sbk5XUU>!cY z?`S)ZHUTP7K~m8xG55OQ*oq{>>Z*l5UWge=6tRWe-9G?hmJe{~?qhwY`cS0vW`biEjtm5Zt$7T3k3w3V z(mcw60!0^lvPS@3XHdbl(e&OYmytQr*_8m5OLsmKO_H@lRclf=IO|6~59xhm0|Q#z zhhWtJK&BYQ21UV*(P8XzEBhfC#{+f~{>M{!)XOC)(Gw0J$bq%t8znZ|4(&2loBAZ< z`=E?8M7x^U(bpt95asyDyFP?x#@JD~UMfMWL@#5buO9wwFr~B6jGgu)=F*vQXGqXq zs4~?KN3h2${+%+A{HzN{7B?D#N}^q0jXPXKD(}IIiU`Q^n1M z_1zydK0K(`s6xa>WgqWdC)VD)e#CSwACjoTwpi4=eXE+}Afj1{G5ktrF;=Bv!6w%T8wbBW>gNT>t>U3Qxts5FH zY{1B1Q`33SCtsMWCQAX==>~`$6X;!&(~ZD4whAkFj)uey@>8m$=+^#k$_6B@&mr=#)e zw8*h(hxh!Z^B>VC(in#CdyJQlhTT!}i5kM&+3#xUg;}F*CyzJ;{xNzQRYNI9DOku- zu>I%pnAeV1<&gb@!1}7*DP+7lQ@@6g&II>tHK@HD={@p@b)&9lHtM9r?~ z%cs#QdMR#`lBI(9uSpjYdU#FJ6cAj8;o=dtwF1`j#J-*b0rff$R9 z6vGHkLjUOFP5k{+MZC=Efk2Els4M<6mNYEoHHsR;F1z&t5!1yi9e7)nLpt;G(OTj& zX;D0{Nf^R>g+}_+fd^d0D@?>=nTt@f-qWy&#^SA^!8MJ@#~K{akA8!@bi%Bc((aIh z_!>c-T&kn>QU=#HzJVnPJ~A_IH^PQfr&7yUAUMIy$iGI38m@N*Oh@#)KsHklaYAX{hbH!90+EbcV|PxoDF(^7q+;?U zWQJ+p%$cmueM41VAQM=@zjmdQeyATg;FDPwl|eOx$Yb46nuuMOG!(t_%%74$m@FZ4#B>q8EUH!TB|B6zvaD6x-^3(NZ*zt;95yKhue zKqwX;&Oah?C%+!pBqwT=;CTXFj;^k@Ux#js{Mj_jTQkmTH2Q}&CPjJnk8i>KAmEZij z%~8ws-hmaJ#alR$mT+>3y~Z0F-F9Y^Tc@^ySh;zLJ5GtwmocL+QY4?d8$0$QipVq! zoyQ}FD*yNAI4U@{=)KY5@xQP6n>c=Ge$ZO|Y=25k$v;f{tXz~>Y=b_zr0Z#Cqx4*k$-F3(^j;<;+R@oGr9ci~?csyz@b=znm(0Gt!KQ(ZA?1Vo1(Uo`B zD&I`%SHei-iW_lur0a?Wj(-AI!w!pG_(kmLHlnWMr(OFGqiPlYJw^7LNxg9^O3UZn zU_woPm?Mt#M2U`Ic>&x^a>n;`-z$1N6z|$*spc}ja_b*Pt{-knU-coA2@`#F^-f}l zKJ1N=#ujIFk3j~SsAJ%6J>w_OImL`rKTFt?SN|wbC9E31ikNzjOA1i#x`i)_-*uel z@d*U%GqE`(zxx!@SJnvP@!<-3i%|ftSnH?WSaTMV7Kh;^x-P9fxbppQRd4hia!U;; zcA2Z7MtF+nXLP5}DY;2@9^LH^(5j*}bO~j1514L5UB5(?{383Gr`}*pJ)~&Vt^Cb) z|NJNS!oJ-OQz80`y=J16MAyJH2{SuA5>nWI0r=Qxi}_^*>WQ*A(jR8QSaNISgqbTk zVRvP8+!TL(9d+E00hXsZ%m~+Ktl!59FO{Y$7JlShH@Eyg;vTcoLviW(@HthNvGlsX zv(BHeZ?H+Jog;B`L#zNQ?Z)f4vM%dJ*Ju1Edhd{Iy|mMl*Lnf1r{b}Mh(CsGh zc%0)%MPUT0*;Zoy7nk*$`fk4rs=LOK92n1uyU+cYq}sTklp9A%yu#JikA-gQ!Gt$G zVNGuKqg|fPFZo%^+k^6+ByT2n_!}5#yxV?OK&iep(=9Z9k#IPIX{NsM534I3_O90( zJ*UB+$}OrzQ4ErqxeGyEOpJm+_`p{lE&93)JuSf~tE}%V+4D%wwfo|3%{Q(sr{5Ew&-DQ0y9!K%jM{>*5&T+T8U+MdA zM{-zRnh)9M$I+}l6fj_`q_4ve6*D64(i*(glDU{J5%(;40?T{z}#KPJw4~t{4bIrcU9lDZM#W@vGqS` z6lD`e7C{=N?(U`iK^+6;lm5wmYx4VKqB|MYDZ}-p&`SR8JVJr-^NaWQjp;f2KBk@B z`#d+Ye$sH$46#+x8}v^hjPr8=(~fsyz9RC-DN1N{=?JNMVR#N-f9DvAT0;tZM_mIM zFPff2_cbpiFUIB1N*)e8+;LnY{t6E}qW_#DvWvH9bdBFsBHmZqbqvriuUpEOaZ z=ZfYF)P+e$MjDtY#_7y4=Su=qEpMnMQ?IZ;zK$Hd_6t;``-%S6zy3NEGL?W`!;x_v-NK3e4vFEg$r3x34dagBohD-S>~84|dY^q_h~gcJ5qo7p4w0HUzM&CiudP zN&tP|>J$AM>v7PAbItB*$3GBcC-{N1?VW0Ex5oqJ+~j{&G+o^c46GjlE34jGKH|tM zZ?^rESx?=NG+ae7BPaLpi`!FOw4mIbUJ1i^w}<*SANM@>xKk}7aoe9Ic~~rQ*iu%) z@O7}V#KRHIUWsa#AP;hDc8)N5c=(mdxww3uv1rQLDWNmuBqZd37!E~goCkMp~_d1G=<5D+M(m=QVCsv3QEaS*W76PW7IY|JrP4kbnsPp;ruPzS=*Nh+9ld4e8- z5%E{4XJ{zZaw_hs7D_zF($^A?u+p`}t5=gy-W`^Xsfp&C^pmRE%C_z52@`KMt=!vX zuzrDGJ0JW3r`whja_4%f$&O)Gn5L%E*?rB|tq*2)Iz^+KpX3sQ5G{UmdQT#SUAjp) z_Z8HA1M*@sS50CBP9;6wY#AZ7glMO|Aju=y?0~Iv(9OE zr)+-gYz@kid-R?#I>G8obGt%QY~g|l@Y-|-Ly52X5+ex@j{Wxhm{mJ6 zy84uV{77UUoeZ0!@f1y7u@#SaZ~N?EP$tO zu9h7GJ4pXHj&+^M!#~vk&*5$a0-6wbLSyhcc5g}~9clpH-ViGUfE#R&Wo#1^vx6As7Wcd9Wq7WBd7w z4x>}x^V1C5$uD``$qV_wVPnQ5Fdcw}ilgr}si$a*Rfd;kt!ahoB|EDRhJhrazoGM& zZ1kD+ppiuo0Ly;|M83+bK&HHTUIW0f7C6v}jqTQuAsfv=xGa?-J+ax<77Nk5rgZ>G zL3QJAHr-e`1rzBXTa*U>d>NGr?y;gz`thx%J!q=Qkf7jmy+VWnk;ku5QyNGU`KWnG z)hq|XBLvAb0{9ARU361nLn9T9Y_PU;KwG_si`rk}^q+BQ8boH{GSw*FXm{WK&XL8t zb=a4{LHE;9cxXa-k+CU3_y@UV%Tdt zWxY~Zt#GSgM9--}Bbo7;eP4|FV2Svy`Ht_;t&sYS8A#H5#^EoyF!*FyqntTGZjVz4 za^L;-Ug>JY3+CTQ%FJ7Nu9NB_xBSxfj1qCwo zz5W!RFiQ-;(b2?~$9ki^@3F zFb7QeSu!Q5MFFGph?}WQj8jNNQd_HH42k5vgR7h zE>h+ZB@4G(wCFSoODD*!cyIVHJ*J#N`1-p=Y4ly*tFfy#QAuW{?kIjk2QIxj+-@gV zp0&i_7`JaT;M2kwA6II7nhq91TxLENvKZX*>%5PaE!=Jm_DE1r8qbzkP=_}UeQ5K@ z^nLgN2I=AOIbmkgW(f%R^A6tcM!W7RX5kY?c$MZGVu0M_kVSt;W|E))w3*_`UO^$d zWh+Kot1Fo(7Htj4MLGgW2_?L^8!o*sgUsi$ID*I8HX zci)YjHMNyI$Vb%@$-nS#4SyeekTF6g%Ts2jI~c3psOi8ROMk4bkQTItOVSz9o}YlT zme&U_dy>OBa_J+{-gw`&fq`n``pKQ=*i^@8^b!mE)iO^TU#la@HGgebl-OW?lt=O(vq|mC%ul3ukExKs*l5Kq5C!Wm-x;4zAZ~2)#!t0car`WdlYr*dm{z z7M@MqQ|kr`=3|>YMR-EgT{p=oL3J>iRF7KjO#`9ZQxaK%SvJOwO*!#FF9)hrqPkv_ z;?qPM;{a?ujs~cd4~`%iwD$S066WppIl$)1lorA7P)zQ5MHcY>{rA_K-IY}?tO)x* z29K;AqhNjS(+P~@F9f4hJd)MSHy-WYSULaOlpiAks8jo`*08o}S=(MxY6NReqASQ> zi;~wSC=c>r*T(WyR4knC2H$W_ue-Od+^C0bKVt#qdiy-l!25Q{j=AP*U6IxS8@!d1 z2Agg~VLwKi%-UWjMjFhG!gpCtQ-D8eqr;gA91r~|IDKNLL@+9J6qCqzK{`=^xNYPI zAe;YzaiU1zyU!D|TJmH&(mH$(>A%`=3{v-;z>P0iQux>k$?+1hR5vS+o5p(STkN9R zVU)>m0TAt}R$AJn4}Y66n9_cOqCB`D3Co%il*~qeZ2Rvry31IuE0()+Y=#DoY4@Ep z;sKX7z?_k`zuU8?-w&01lOIPfJE3hnw>8v-Td$7YXys`G@__*`Luy^tS1PEAWbE>sMv3y2%P|K>nHih&eBhwA>u|_0N-Ck>SCZ zyDHsB3$u3Xu^L^BlVeld{Y z&7l-n%CJAzGhDlDfCYWxRZ$yIRZpHkig5^RXz^P~3{2<(K(!YCY$15y8bWsGGtdOGZtX9FopI^wCEETK2 zA?yQhr#pM1waj(aB#Jmd00Q*{RbQ0T#Aab5$4g6i^ui+JMrMx+Y9ey{r)rTra`5hb z=f5ZnvXO&L1DsBA>tXdIsLGu)GHJ#g)zETsw|soMcf0!&IGyzP(5flLGfvJk-;}^i#!YO_KGz5F{5GwI01kbz%vyIqm?jq=&I|iQ< zQU!!@gSFk~i_{^&D0HjgCg`?g8f5o_W9t^%fv8?mXnzpw(j-JG_eL$YT<%RBuL#NE zlylEh#+#5FISs`SL4c75`vWVcwt+^fjZ~COLy&#cl@C;b>;APU%J7+W$0`nyYTU)~ zZWv)jHAX+C!F7-#7=rV5_{<^T^s=vycB8H|=~^fU5Z^P4tv!xG05cZ!>pL1=VBdnm zK02-HUyzgWUQ%XrfYuG8_rEMk)cuv)d9mo0QPe470q$V_%;AyiXDQ~-0GQuogn34S z1@t0W!$$4ZOWKv8yV|Gxe1Yq>`DcFIyaS8>8T%QCJ-`?h* zaq66aX&?_EqxrF2AQ_w)rd;}~yB;zbc|AytR35Oe>@p%`sNMvrO*gZ}fC^Kc?lZjZ zikrc+ZWp&i7dDf3dGFX14g!wQ7DPq60X<@P(Q*Lq@!+n(#Q2^(UZLLYW26*-JU z>+FsqdZ<=s&C01&_hQl3{lWy1yrWlh8k4Y|J5@awDZgVggFN=1`I5PgN~?9N^%|9~ zc=wQdkwN%UA-fCNvFkhZ%uzxY_8)`8cC9+4=^(p$vrE(Dem(sRkvi6-6Y^!gw{La^ z>jaY*BSPC(qpnE1v8?;I#5e??`dfLLZ9}-Fh*NQK>a`dS&#Y^npT#QA_DzK{QCrvf zUN_5QVYwrb#u1YSDJSO2?3-c@6!(SJ=89Qngtwg;5Ybtpvc`C34WE!7bRz7b0}Xmt zas=k~18(ju;bp*14!>ry>Fg(--!s+*BQ5Rh{FJZ_zt^{LURaSplYyKd2Vz81z*_1p zUR>Y28npNdJKNk2KZ7fk+#w!G9(H~sT?U}SH;gZR+gMr-7uX`@u8`0!UP1@9^Ux}1 z24`{6e^^#);x}u$6nYqJW~u(m?86iL@@OP<;btLFhnQtt`)OaMKVB1r;S+|)+G*QL z;E3ma4BcXCe1f(=He{YNXqD1cbx@-mTNMIBdDS%_Dyr|X;_8(ZsR@K4N(!}Dr+LGu zm!!;7ygy3!)o~z+U9v@Pmlx?6{R*mgfV3&im})^*&)wuF0Sr&M1>dh8r5Hy3B59SU zJQF`2d1gw+u@c|3s9pTJ+CCPei`udBuz5K>C&#(8n4E9Q}nZABB<@zh?|^TI}eC{fR+R^9GH3!i4_tZg|@?11|mRzR?ep z!~z$Kv9cZympnh!&X=$ZSFovcrHu=`dZ(L_+%5^Cqm>xzd%!GDwlUC9;PAu5lFotZ zIswNaC}wn(>i<*wJqDQak2;@@N?H_}Xc6lig0UAIg6N{7@8_#>!J-=?K3VOQc+N2Qi4*r}{VaHjHYwIS_Ybe% zzJnq6W6b#WwqzS1Pmd^>QLo$?Lhny8!3PTIDo&+)HK0fG{QQ%3lAP!FHSXn^*5?l~ z!z>oSLXby`KD5O%+$Ji7Azlurx=9v}xG9y&vMVY>q8vpx-MvDk@zIYlda94zNwcSD z9#{|Xa3?Tld^kF<0K2=}Un+}{?9UsI(s7oQz1fl6H%FC=o+w+ALn!S3@v38;(H@tf zAUWRKZuzLv1bMTV+@tO2^8ux>P5v8%+#YG0Qx1qdh8(6c;ZqOsd}&=nUue80i}~q2 zx5=W2bUU&mv<3Dqyp3Xx*I7EF$Wc1sA5l_YVU1vgn%^L-_s$mjAYv77-Vw6)1CISY zo8Sm7y#jfCiY8vLT+}#{cmodYiHVVQplrAEXT%g3(H$JrD;jxa3cOOWs<**orQ=~V z-U@L2?(6{e4;F-#F)=pQf{VV?_b(T#>tZ}CL|9qPm>*kKSaQwR)41?ErQVabE5ZGv z?E17AEF?x`3`khA^SswMGzK%3_N2r=@o3j} z*4L>dOF|)lsIr&5k(sDtH?jdb)*#4*XI~m+kp}4o?RHs;hgWYil@}af=EG(|^;zL+ z><5}bJ6xwTP{jc;CfF2UAGsqGBZ#1MIb#p|QT`cW4H4OQzAbYQ^;aBlWq)DMBO|9i z6sR+cl4gn{W(0X}vcHc9uPWEyBdB4$+?j1GvT_Tx->#V?W2{cwFz)bjIEt33R7G_t zx~TTmy4Wo(BG*_ilw7T!>f!}Pmz($2YIo){yEe0AGOTdiMCF*=1Y+uD1ot@pg&46) zb&Cui&iyXG6sJ_(_=|L>M$PHh_KkY(zP~8r0lI9u-%_B81=~F4?dd*8+oH~eSn&wr z$1V=8A2!B(U&~sgv?|IltRmzl-a84`_{b>SbS5wZvTo9qvg;}57OmyRIKeOBcsr?c$*Q$soaB7$K6%$zl z)o?dYU&X!U=!YP#g-p7)u%5;h@$FmnY;qa!6b4I{iyURCPAZL=t1RYt2aF?ZokOLG9k}x?J}BX2%MnUAM}rCYaX1ls4y`2~ zV)<%`$5?PJ5l25oJSZYUxH@0ZLYlYpgtnm*3%geno3+KzPO4vx+o9f8tEOYtl~}s1 zbOL`m@EK~>hZYC}1i?Aq)yB<3M|V>Bx+lyrKlrBZDzuX-8>IX8)p(8i|8z;RVbd~PK+D!6e1{bI zG-EWYD^(bF(Q3U_)l|KOp~5jC;J=YmFCOIoky;H9rJ%4PZHaaNt74}uML&dC&S;Oa zp}nz54!59bliDX)96vEPNWX4pl(6iWL}l_((ZvSPGpOkmIVkY7o``XnHq>duRcfgV4U3(9^xd0Kf8cbmR zN73!Xivyza6>OXQFRI2`NrOPM3FjtX*+ss{hBXkITXp-Rw>~&?M6@u8&~o|CH9TV5 zg}W48OagH^ZO*+)y*__7ltwe-N|e6%+)u90;c*-;$b&RMnvgjXRm{W7!*3~t) z!Jw6;o#d9Z09HxZ(WWrDcass-SZvd>2T8)I3VP}6?#0IuEF1bbhjf_}1+m&+xm8mG z4=z?Bo)7ap*jhYk&s$smaEO+d94Ko&j=suQ zMmZh$P;0meZ-kmq-n!J2Ww{_#7`(S!+VMXXkN>}~_sR)k7kR-e1hK~d`@z~a6xKJ5 z=EZ#5!o)>VY3%OA2`G_BP~Fmrf@Mc+x3>w=F&)MDjkBN8 z-EL~@U19cu7|Tn^yjB?uo~~YHPt1fq!II~MjN9uUGCe+JkKnk|mI3Qkg2qOsw8S)l zpqwvhy6LXRa)IQlh?(53F#T$I#W%L?I{>0Ul*Se#p_bBt1m(c0OTLMm8O>>Fwyt1% z8o=Y@u<`{iS=Z`7ZYP~CBk1<$=tUaoKEh*`K|kD*Ft6n z+ru|KQNM&-Xx5des)ZW2;?e+{o;mT-jD}GJhDm+v!iZFcyEi=8XxgQASg;@cI8Zo| z9bnjS_Y^(Y&5nv{Y5X;*Jf*1M&GN#Z>Auv9u-Es$rkA*uW&6Z<(Wt3C_apw25+QYA zsFNVI9rqDM0J;n#dD@Z_r7cqCC`tc*Fp!Q=lx0seRb5rR0V|ui6#z@0H8vMa^GvOm zQXc8z8EB?=bn5a0paSpd&GL=)UWFdoCE1V4dd^ zb#YTW@^OZmz7t>FvKKAqGY)8MdXE*>VnAD~I8^pFDou8ePEii3;*%@)L4KRj#W4s@ zEpYWoDV^oL-xr{b!pmy_v^uRzGGi>w!#gDJoLthPo0hWI0g87hn6Vig=(Mf@VRFdv zLzV8I%3(o2Ii9|B_Ew2;+@hK(B)@0yG(YtFSRma4?~!+|pc9IaF6L187TKDsnq?9; zxuKTuxtDVH2lls+EvLV0m~v1aBJhx+$7xPER47pL65sig%VHD zZ~`8=2ks!0#j79wYsH;l$Kj9hXe#W2`sd(@sr>S{?XHnjwzzDJ)g%JA*QmjSuhr0k zzgxDo8U4Bqx4w}ei}`Cu{OljLtXLOB(?!vD`%-ipS^>IP3g*4EY`kE^IEHUm4;rJL zIO|L=Z-s4p4x4-MhfKN$PV6j*PA~@=d#7_2FG@sXz7Ufo+Ky(#&BLXNeBWStyGahu z`aJttAO}VoxV1ed<8Egvg)-*SowP*77QK%c-YkKeL*?=*VhS~q9$g;~NcXJx=DIj< ziqBf=_J9LuFr_+SA0n`K^-O}4O*wEvhOM`;2PBuWoon;&{(S8nm>0 z+gg;_v2qvR3**JbVx1}2Ch{BoD^9ifzf!kiWtq1d$}sx~(Hto4<~Q=~voD{s-?HOB`arUEapwvZ}awZO-c#0QZteeaRe zJ1(^y9?`sjbzBy%Bq2k5ubt9GJ+c4X)oYU7Gb{gI+9#4e=Qam~VNr0{wBe}tLhvto zVk-Td!G-V%7$1=bxCTG(fGI0UF*$Sy_1?RdRtn$J>0kaPLErh1^$vOSWq+M>&P!YW z9o;8s`!nk@j2^mbza@1l?RdHkG`{A10}!*UvM$ZTHJ;E`T0}p35|Ggss}Wx?EL0>> za(Lt6{@Y4!_u;oejUeU)vVfEeS3FZRyY4oXg3dvI=dwGb~& z#vbsCJTD4e1dJLfy+-1Q?heT69U8U9SHBqe>D==P;3RFsh~hBE2xuUrEZUOg-$)bF zFtlkwbZt}tqssf5L0;>X8dFS83j>~J17Hv!FGd356kZ~&s_ZbZLra% zjE|YwHAl5fM{PIrnhg)=imYxQ?jCY@el%ZncymjOixjbEtg%v~nCQ9?BDUuAokA`$ zDsZP+>u=l*4^#8jP*~lt@C8-=lN3MhjP-Efki*0agjIEJq0WbCl_>Dj^~RB{QGAt* z?k6I5KDP3AmfZV>aoI{kVpUNDxb=~TBc0Qzv)#?9X0Q9ytP*CgLyMxkFLoPy%jm zoJhbAUVm`z7+QPwe>}cJBg$cPQhG!}Zm1Pb?;5ZYmUirjz!pWM@xYJ>LABWB7I^r!h9C zI4Sv_B?HN8745#$oMH_u3H{KU7uQtXssl^tU}hl6VbT9=nW?j7p+y$ntT^R8}hv=}h`+P{NzgTIg-B+K#? zYH%y^&{=-B47ikFCo@*czul1h0RGk)c=`y6jXxV0K2YJyVfl!&gZ%A8wHEOFl;)20 zUpk}V`;$Y6H761(vxxUN&;B*eE3S>U`+kcP%PCvkX58RyAU;I{s`%h@T zdUeBbL`kQ>Plzk{J%iL8kKs}s#hElO2Qo_5hxK(o4K!Rg-Gu0ZQNo?xboIto&q&4z z+?c-6oIAtSD{HAvw9S;qegL!AYtC#as88qykdE@%&=-;n!^L$yi^{J{%;Ww|=lWHb z4C-3j7FCy-b<@Cdg9tNI)#jm+0!l^D_IcFUMz<`0*WooO`yR=q{$G;w6{Xsc=YLdf z7>qO{*HvjW@C;GXh!OP&j`VPV*{+x9P`#1=={aLP`Fs-awY&o)f5ErtF!0_DYz8!e z;YbvrC|GZX4ZX@%Gg_zo3D(DE(lxF-zO%I}BUFSLMFkIR>40|1Fl%8Sa8;o(-%)^W z7FxESQ1%w=vx`UgWRa&`UDl31QJ4O^kELi(1wVMslMwDyDNt#Qg?(MHR`4_z_O8c3 zq!n3b+XsYhRYKTE*Y2@A*;sm-K`k>s3}Luvd-LOEg^i413*F=O&_xp{{T?u8C8@A4 z@D&el|6-9gme;Us%h)j?oJaMG!+Qp;2+cLDc%{;ky1|(*p0&cTr?cu)6!F|djL5G~ zNsz+b>`Cnc*jtG--7De^)b+fIj7OAg-M{IuN%`VaO#c((S6m&a={Cc6LX!0R4wt61#4QID`Wr zfDj%C-~5@lbv)D(t(?`&(zw%{7TF$Yzx0MTR9_=r>aj26K%mX#3;Nb|U?MP_aX*sz zu`WG9c_+utIQ;Ggwk6#j2(i^Dg;R7sLf*zgNYQYV&)Yj5DHzfHclXg9gC8jj*TDmB zEeVayRo={ocZUt~beGfHj1MXB1)4WC6d7sgxDUIk58ss8aX});+lF4ZCvDGG?y|1| zd^n#pg-)vJEq;M&jy%LHmu2&m6o~SZZ^Hwv(7V1NvZmQFd=*tF_QqL;T+mDY-9yGv zA-lL}A#Qr+Mrq%my>(Z?l^U7E-46u@SnkprPfB>#-v5c?`@zP2|Mvigxo@=gz2Kd) zLO&@v@0*JT*y@Eg6pdn$Qf?&Sp0`R{$&*(E7KO{edHeo)Sqih2w~xL=@HCt6PJrs! zJ<1IJE_3e?EAfxoBmE!3$k8d)*OdK}cd5kD%Xym@-g%HUSVSiyLF(?mURg7QeBJyP z6h|GgVB@s17fd{Ry(Q#{KOd#vGY6j>O(b6qZ@^DHNq@vaDKNY0d%pk$U7Tk>cpIJH zt^)5wg;SC*rzVPO2;dW5PE%iK@;of`oMNUA!x26LaG6mTWINX>65F8Htul;)GE#Rh zMY;Sr;9je{1uY$Y^O&H<7!FYBwXrERUWuS+Sa&n*WEsgQW=>2!X_?#L_WN37+^9G&EsHd z%gkg4JL1Y%#*e#6(e6iq%$C z=0IO_$Zg)eRpV5RuNS=gkEw>nC{-zSM7oX&(Vi~~1!ufKY- zzL4%;2=mL>?eX7;qB(_^r!JjWz4O}OIA!W7_v*u;3wA{pYN}%Z2yDD+%QogG9AVTz7%4^+$(MZ5t0G7X*IgHmFEI5kv9 zh0C`>;9e8=A=ie|pKg*(@@|TNF47Vq3NL!ipZ4;e$BbHIG6Kb`a#Gha1F8|w&Ow3| zXPIq`O&e7Ou*;J&+LapLi{nK=mYeeU$9FV-u!?tMN;%(y%`Vw-oTd_>H~I5fMijQBH9nrv+zjuf6ec+L z9>k~qNtS0&o(@%U+E(5qTgc#RHDz7@8ZFiYrEc%GX1w60P)!+|4^+7r8svU}&Y%Qw z$@nV@gGlJ)n3}e!5m3PO8JC=+`CjTaQ9LkZNA$WTOr%q1ypl$Cq9nG!HUII;0y${Lj1hQupv* z-8%K$;6GNi(j09Ep?42D96{ef7}+B}yWmYM{xA!TMDIcyJf>$uQ%*b@^udrKllw#{ zMVkyAlFX!5h}b;wP`cNAj;iMxFQ(?R;R--LIn;MKJt#2O)FC>?BKv#Z1x*~o3XKP& zQ;mSzy*;9fJm*rpvSBZ*4RrZl(;;k%VVfpVWKLb*rtC@<%N$b93Y86Bso{xa0_U!W zlG}LkTDl%S{-DRwDuaW9BIL(}%uPp%`Ff$FsKF~uVJvjsV^47-hhM_2ynyzB=A}Rv zqWLb#rdgKnnQ?77wE-DQ6m{44qG?}Nr$_dAwqhb3{MpGNQ*Z$#3uxr#O`N_D(+7&e zLiTO#g$?FK28O`l@3%7VDkMq1;QdT{l6hRr$79bn)6@BF zH)|gjacRTm&~`N_6>%y=VvYazYV{(o$^IU((00OuFR1CZ=L+^(#1Ha`&oiHvVJD>F z&j?m0O20JD2h7-zICU;p*{at!Jdlm#iO+JbfBz5e|TO9S;=d7 z+=z|^Gy<(|tgWB#muUNvz3g)HaBo!KO`VxT4N3<}C3Sl+wRF*cY@glBsB{WJXm@k( zn5mJc;y+QcJE3ZrU(&?QNx#=jKy4H^C`zMb3y!)&$7~p*LgjV=Q^J#FdB`@(<1WBx zRKIA{2DL!=rq-5#qTgUil9Pm%%}yw2zAw{kTfCc~7?5v6V8?e>yrA^vK&!mmV~0iR z=xoikK=jCpYIZet*nGgNw2ZuntfypgPQM8R%bB{>R5+LJdok zychZ`2p9kyC$LN+XF+G4*q_W=&`%g$1BpiMLp<4KI5xEPo0f*27W7e8lAS6)&h<=N z#i(L~PW0h_vjDha#G99AcbM^-xbKb6#Liq& z5?(%z(GpAXzcC4$vhpLZjWq1s-%gKwgh2*P`*Ga4Ox^MCW3>pg0G$hJzm-rtXi9|4W#GEqS8>}AWm?!e? z_sh1V9bw*d%aG?yL-NyIs+--^3vP=)GF;>>Hkok+y#Fmke1`vk&F8xYf3WtU z4YBy}&tU_YhCih?lD1p(h3Yqw1nY&~&3lY>*MxIVXWE>v0=V~YMikj=ju)hEZ2qcn zF1{NW^CPR!u+(Y5O;^$LPo3GHdv6TS#KKe}TS4~R`;O1n3@nDK<-S=qmq2s|XBkaG z^1lfvtrWk!Dsfc_zD-I;Jk4z^HkeD&pDRyj6Ak|1dRt~~fDuIDAPRR@(m(808Ih;@ zJ`QF?_zRW;PPcMFmx}wmy`o2#?zxoT6ZfE|JOB;JztcesDJDxP7izIm%to+)YjtTW z8vgQz;!6`pFPmJaO8@g;iDCLLSAy&=CG$6f=fd;&-&QK=Y0XOmJmCg}yLP;YqDbatS0yDEG$S;jHx{drf6hkE6Ug-I~{5 zg^zMS%+=P<3&acJ$ck#|@+Q$kB=M?un|aXC;`!Np$bM70d0wY)?Bw0vARI^!J1;PVGD1$&+OGA%=i9R@(`I_CygK16 zdq2ZBa?Ui$kX?*7S8ozXYXY_#eBJk=B2d{B@0|-E5T5&CCK@RN;nbW!7A^1>-iNj2 zAaUZi&SjOq-!bp#z^yj+f&+KLd{5)`zV(YAJOUwvqx_p_cAjr8NGB z_Bp{R5o_z;9DJ-E03BI;a+)N>)))1Fux5jL(nh+5oScbpjU?B!izW}8y=*7SyjKK2)pXN*OniUY z0kOqzkGnX#t(Eoo@F;||y9FV~$SiF4_Q%VD z+oxtDnfIvMbX5T@KN*g}d3!;EY!Ar4P&#Vb;*VDT0v(Xuy1iAG+VCMcHtarw)K1(<2m0#`Hj^@)a=r?~ zYcm-7xssmrlVN@~eM5=)&JFj=tlzSXLy2Cm+@fmaU?d9ht)v_E=L@XbH81*fhAhA% z7u1xa!b|;M&2L|tyt04XX2fg5&;P(}ncU@Ou8zCs7j2a;(pQkl#zi_go?;)kW2 z!$SbzO218`0dI3W?h)Jn&U=~(@^${3|4>P|Jb{6UDHpsKCvYf{<51%e4JF`}ex7&# zXZ~Z`y@N2g2k#(^?}0lB=WhvW)lHhep{bO6wF>bhOe9f~!C8pQHCxJ2O_44hr3@VTYsqRR%9AeOR-=SC~sb}d|-$IZ&z%JX-D=24WO(w#Ih+HJzltGOfA(H zqDTcKZ{tCh1Ny2kKg8-5ygRM%qTzW}Ty*c!8EomU|E%{S&(+`B|A()y@QSi;yPcs+ zy1Prdd+3k`5kWddMOvB}x*KUJNrMms6k%wPmKLPDYv_qHKJWXTFV^|apKz~r?{)pI zeeDRj-2DiJ<1VVH(EdYEy~4ivc=mS#Mk_iG8vT)n-H|&s&CrCpOBck(nq<@+IK9mv z==~SK4dB!mc%yYD;xP{p#T;y)`yk@*&|%wY;Rd;*!=v1h2rv@S2OjJHiPJW=e>jpy z9g_4Es4+AnN;Pl)-oVDdc0awCu0m@w(K+uGEG|+E`V+_6D+b`cl<^T$+dTo&^4`B-CkRu+(BoGyxQ7iJ$v-EnSb1X1`OvVIS?w^(9 zq3nrn;ZmNQ?!hZzN959#_}}45q-vw23?}Zm`!bpxE0&xU*ZSqv)wfr9_)Mc;1A0tT z0{zuH_kS2nW=0j7SE}DJSCqr!v+4NTA%R^Od#<_og&EBDSabnHZC;Y@sq=Uaf$c|8 z8xUh35u*dEAQ8+_QbyOjFWBpBMkMwYRD{aPXJ}Sqr}gt?l()0Od4)}SE4JWn!|{QT zugZfZGKZA6j8$QeS%$m1U*%$w4SEibdB09yRXAld-A#lgvkI3+9|~;aN=}L^AGlZN z$_|Ea!_+V%1kF4+-cnqV7->D{?tVixX$rEsATH%&VL<-2L8R= zYDDkyFnlrYFf4Vy#@w zy3s&&eFsfX&3D+6#|pPO)q+76n4}PbyA$iLd$2ooV%EZTb<$l~+zw{MYh!3_9WA>A z{s++BIfo3e%yuB%OB*3}oG3dft)g{4p}{n@yV%92zEKO4NeMP;`%Dsn1!vP%d$2&T zFBaCn;Ee-t_RQox>Yr$;Dlt~Qcjc4bBoF6oigPKt;~$;@%A-R*$njf~b?g~BFeZc# zjPQpdf_E_jbS;M(R7IaN&tb*Y9#m(%F@=$`l^PC_()Ve68E=|&{3beC_n}bN`mO1U zS3KIoHzKcilT-#ibWPAEi zS2CTle038g!fPwdhy&QmC*=!mp$$?@Lz30fQ7$5Q+L&-@;TBLyd%ftRSe>C6GJyx@ zv9y#DrEY*r>Ly~+cj0eHb+QHw+YcZw!l+6Z>lJaPQWT^AvVh6GyjCUlGJ))DSkB=CHW=q{ zB&2?^fSOQTGO~4VGK_(>5Gl%%>$SmvJ1E>WPBz$~*XDINP`;GyPPPFFx&jnPH9T(f z)*Aifw$Uz>?afE#3E9ZRfMG_>6|Rmp3=K@{eshGFFnPDE@$5Qhdh?8UQ_BsfV|1n1 z9hqt_=zjNm=xrp!fxsjC?Wpi9Xa&DpF2ZbkK#QFPt<*4k{x0k(O|YH_3TunR*Ghoe zqNRvp*P5N~Qx8qV4~7%Y3!5kwGId_!(evU+;`iUr6{yV^J#D{z-T!4%#Gw^+MUj=} zX93I}S21iwXz#y~WfcLn^?xuh?RZTv##+)F;`%dnzfv48*OBUqPdfZo1>LsrPzm=f zX0$>oM?2?+DV57lm7nAP!`(cn_V+T22H=g_D$(9wRkU!C{{M2%u|eH`o&>i{)Jq5c z&Sjg115X%@Ps7EZ_ZO``<|T^}Hy95qnR=54lNAzCQn5APTz47@5A4MP*2hLI)O8oH z&NdSY{n|>f{q=r4!a%)LXUP)>`0RNP?qrIP?0~EhHO;L*omzMXY?!K(eaDiOLh-I9 zT=g_`0AQb5EaR|%-Q}fhXgMil8AL;7;j!+S%NAPAB!r0+^}V~|Pswzj?E73tfEMsY ztfbLL*43o=2w+S8@>@7KpXJ&(h!klM>NRKn!oB`jChM|ut!Z;Vl0O_jo+XSBE8=5e zmvcFaiIg1ur1^EC{H#Q{Y2)0dlMFMh@{>u9Ne*Go9*+P;V*Z^K+dI-9F*bzcXOO|^ zccjZwJ=LQK`n;Tn9YM3hREZ9c<-fEoB_8=$Y%@1?GBHAg#n? zj$+b&(rWhYBK7!>b-?C_R1x;SzJ?qdps2}TJfgZDdb)bL9@n0&V&02iwM?HNA``bY z+sJJOrS;siq}`{^4+sKQ9 zk&CJBPF6$35$uRsODa?n-8ar<^5$k^Zm^5cLB9jT)uDebMPI>h(OrNPZ-eRF1d=hqmZV z#9r3K*>HKw>4@teymAFD;5L~T<}RJ*9o|9=vv|tfOzqPE<729Zc|s{z9>cZIzM?VZ z@B1UaUQ%T{?>RU<%>6PUMRmozZb+`$HE$p^>seP0is{DUc%AH55KkkL_K0W3=T9w% z|16Zve`>LSEF>c=uEHwPo8%+zXYI0VrAZGJXf?Cvf%m)i&Lhx}O=?_d0W3F62g)<8 zBwQK;YsXvlU$X`B??52RRzCiiidCc1!8E0f0dbxuRcSG!3yuVTL}0jmz^};1|?G0hQIzO z5Boat^5(_h-D}Uo*5oVd8IC*b8!>-2Ce@Ygy)QPFd%`k3N!3BqK%^R?=-C|8>qq>? zLLXmGr>f9Q57#0U@7&Rx)4Tn!Jn2CBeFb>>_pb3`zteFvaa6n&yo%OJ{HK_)xIl*I zpV#YoQ91mtb-AA9=K5c*rCa&a{~Jeeac5YELOh%Xf1Fbh!fFY4oC70+2}16|w6T>J>4n}}61!{6rbkct&^ zOd1}w2jwg3SR3V=A9XQ4Q9MFf>8fdW93aD0do>T#B~`CYm&6Os(}H6)F(NLPLJ8nNK{<>BDCf#6G*HeqH94TCPEFWx*itpopNI4eIK*JEyN@1sG!Q_|i zb5MJz7i@O$n}NwZ`k)H$dje>A@)x}{w&-9g*jTDCoS@)L@rvam=;nw;68!vwJ<`Vy za#yqm92qF};stbIo;OU1y^7;@lUr|KextuqK7S)tKBsd+=f6XU15oSfH&{hA^Qq}R zHPR@xepTZg0Iw466Kb@NNv?lAIh{%tRUGoVtR~U5z2*yIQrQ0oQP%W$LGFc&tErjb z(2iNpY^mhxDxRB}>Vm1^+utdP6S=hsfF3|xeaRCW%HQ`Fp`MG4cQpa0xg z#*lnTNX!J{!MXWm)3m9m&%VN1aNL6I4Mq+|9OSpF&FOsGDCt-%>7DYL{x;Or<(-|9 zDy-1xwY8s>Q@EoZx!9@V*OTL2x8Hoy(AHWCH2{UgA@F`8fodgy%;|!7zSwnGyW4QF zl_DN9@N0B&_-mCd(^V9+LlYr7bMbyc;KH7HddZ&+mQ#}+y|Qk{x;5SkSKd!GMLXiV zpY%?4ZL^W9lTl!=%4w4d9~v^mn_X@7zKAfmfBbTOXGT6DE>!?z`r5{P-N$w z|J_Us3IxAR{V{%bZTnw!5V6Q#|E!VnWhf=_XXM|cb1VE|M^|YjD2m-4*Gta)uv!4= zDcfCFLxQl<7S9k)x+Ld68uZl%pM)|xwA`!Axx7^pL*liq!q-c9AD=9~WyJ*n zo{p>O-kcK_Ye1oxh*OI4R*X_TuvMo3~un9+M!c2q6g1oR|?SLC%Z?i8?P6bEI=c`H=LmYJy14t%<|fV z!iQ-#1ngoRtQ6Cc+!Az71LqTLX`n4%No}kL`&<}84_Fn+HzSB8$fo@Y;hcL3@DC}e zEvvzfk38cV%7h$E!c}_a>u@SiY;_*LP;c*W!8?Yw-(iy#b;$L%yo8T0{*FqUhn>Z> ze@#Nywm|l!;V_y3an$fW3Z9I%0t{VsckP_N|Kd*e*e36Ju7rlva*pih_EA;eHMCI@MYS=Baq3E}Zi^u_;;(MQU9fTfm|4CPno z@_9~E`kNG}1u2NZTz=O45F^5puO`+uR5u_>TQ|TbA+F>{k=O%Ea=TF0mHd7&|MgS$JC#nM_D^Xxn8dDyfSutn zjL!)GoAM<|g;Qxae`7-5)KyL2MzOAtdd+8ef$Cu9A^!MPwZeYq_J*rxvlhEV;+0G@ z&8A<%AX`i+XyLKw1`(}8+$JSF!5fFpTZU8(vtQIh14xfqUj^2D>zf^j-N7-;9~pKz5sJFD;A#+9mf zG4BR$)QDIf<=;9`dvW73Vue~UrGaz?3yI(k^@9t%3$%L=hRpHYIo5s=1~Skk|q5+ z#Ul_=HHYf|1p@EDR(uRlp%KVuup`;vb;yky>}(aI1V=~E7Xtu#aI{X^G8AAqZA=;q zGJ1BL5FV%~%)Bo{XCVKB-R+^JFTk3Sd*B!JB;2MX7T26tZV6y+D?2c(&*X!+>cWp{ zGG8SKXBuMK_`vIp0RneXb*jplpHjX9yeCUVQ8BSWKRzM4q*c=mV8TujPFq%il5o{} znJq{MzV(I#WBR(rp5rfiGG7H+o^<*9F3=H8*KizZDM#~97CpjCmBm~IHK_{hNHpP` zu7vl)Cf2k{yh>)%Ga6z)mTIO8~6|M2L`sMVOw7-_4FpV^Ba59)lMos#^q zJJ_A*1B#|JL=f~QHz@~UZL;ZqD@z_$=oG;EY2ql8F%*>NG=WbSD-`4073=HuN$bYX;rrVEP|(WpTwvH)z2=$R9fb)Dk7UYQBnU!?5jtv+oa` zZbapTF8sLCy(JR?55_nJu@x{f%y$xZ3xxC>YRBc&dwf{`<}GlCJ~m_!oPVwFQK>)k5S%I5-^{*qvXKKg%LUWIOGJo z6N&*h|JGLlw8h=7WEyf}v=ahAUp2WA;oVI?^g19sBF!n`*aD=BW8gWq8Z`vo)F#J4 zybB~Y%ICghQ5;A%sAqcNi9C2^O=-sxpy*0aenPPy?X5007;g{g3^EZ|gZ$PtfXu>} zm2NQtq?sm)ziPa?Y~|1rBoG50G-={_@ zer(nma;Cg1hXi=dax2EP%5x&7pBxEr%jrIZQg+Y(IKc*Hd)G{K{Jj8VqeBB3=(i^JC(5?)Qp3yMJdMXe)Rf zik@Y~h@pRJ5mFHo|6MlZ6QS@AcWS;|hq#B%fdde!bKpQk@flrfhEG6R4MkTg{{{dz z{Z2ovm^y?2D=J6^BGs2pIxxw!!mGsv`dh(F&j1T0fu!~FNHu(x zCt4a_)ej2nfliP5X}$(NU*1$3GOiO(P^}|LT!Ra5%>>_p=?=g(RexzwTRZH{wqvxG z9{GoA5H1ZuWcs&X+gsW0_N7BPEdfe4zYQ zjK1|Aj{n%>wZvB&(~eVucpi;UU#s*j>*_)s4zeM{^SQz0u4dE>0@41#OTfFwR9!&E z<*bkqg70_?6+Qv*mche$<}}%j%2@6Y2CrX`N+OlDQm^(sWI)+`QrCKF7*>}9ktu{0 zPVP{u9jx0qA$Y@GidfvNY6y7GVzU(*y@pp||#b@=n)3%Qf;;b}& zMCCt?v-ipY?rVii3{!92ckVJhpBwu=aTN&hei~(=Ulg0K+N;yXRZBoywai$L;6Li6 z-NOm7PPPhrmp+==VfZ|BXpzE2vc$&N?wg?{d=4y?l*{4?dVc0%+Vg;guAl+_c`^WF>QO*1~z&Vz^O$3 zW|l?uWmKyzB)ii(ig}&AQ4_&W>{oCqSbMb;ejI_ZS-QK-q*VX8j9vkP2i4!XX<@NC zOA?;a&G#h&Fe-7##C>wreHR}NkVE0qc(Lj`ZHwLIW$-7evAhPG)*@&v5ejffT&Kp+ z#@WfTEyF73^qjjQr9#Yt+fZBw^!PLauQ8#Aq|@9oD-l~`&LEumyxbrEyf}v1^J#g< zG3M>Sn!Mb=;MNH<5k5W7thhRfpUNpZKBmcF{pSkHNm5QLeThU7^Lv4>^p0wi6jm4_ z5SApG$mUi0Ua6QA=T=Tu{X61~^5v&|)p9?o8Px~YA0<~scGDh_<1VW{`!}QM`%Q1kHjB??1?N9BT&pcb8<5|vH#`bpQsG5_- zg?N}k^}m^gJqpU1Nkcxnsb(3JAq#&9gQf~T%YiXR)M^FMk-bG*LCdO$Qs31C>@KE= z(;0QHT6g+5ORdFj){#xHsOXlUibl*?8t9u+je8Rggg+Sm38087DpmYCvZU}atHAXS zy4nEE>fUixJOL@$cxbT8LVh6d-oq|3PWf@cm$2=LcyL7({y9h`>>bbJ*wUd1J6#t=gWI5;Qu<%R`5d0{+Vg`I}s=52!G}yaOO#%0Sn=3icn~e zhC-3@v+-*dfa0;$wq@r!!|u$KRgJEgGxeXh7!QLi{nsjHxo;zKIvpwN^#$w~HXZ?Z zgOGf&ReEF%-+;xxtmUzjF=kkdlpZmLb8cPSsh{F6VdhkKT?6K0Prb=hV!SQhPG=Ev zwh*txK71rw`+PZk7I3rH1sLKd6gI~Hdt*Y7b&ozoP0}h%&-%AaTZ|p5d`AR}xAlwz zW49$~YZd}y2HH$cUd)G6ANW2R^LI?M!xF z1Brauep(LcuH%s3i?88oa|rEHj5pUMb(0U4MQ^1t-o!lmyTz&|{BBYw=CkQVkq-X+_Mk^RnjDIOZ>Gph3(!6ztCS7Yi7=4|R?2c^GsK1fu*W zNT~hvV5mo7{S%G;%2Idbj}h_y5oxMy8!-ti)7yemzGC z2cNJk9lxEsUAmwD8CS#5`^o=<%P4DySEN)x9La%lhgtp5 zN+p%d?|i{$awe zUZW^F%4a{R^&?LwV5e?5-kTb;&ck%6sOhbdEi5tm+9j%EC6j`714e&wjWB&ToK=0UIIggKCg! zi}MBx6p;ZqsrJ~SE-Vw&g#sHG#?(4EB+0W4!&h)lf0P?u=z_HsDLM-@PT`dKQi3h` zsjx!8>I>pT3C`jEY*?i8F8otrS-u~_{Y%KDj%{a;lFpqn%W#BN`%9Pb)A-s)fnSqD zt@Q6|u9+@ToPlNVCwZUBC4Wq{3Ax8G@LA^T2E)BX{`EcaeggjGI8r^^0)Y?M_U>_Yht5DPD~ongj<^z|-g zEMc!KtW~YGWR|HO1n}TB5gIFnO0F+XKRnXx0&NDq1|(!~TVa#%Q=~-p_TpWaB6*U0 z+*IGjd8~QntF9}f^HH0~X~x4&3o3ge%Z1`o=PS8cG;tyX@Rht$SnxX@b9Sh<_SJnE9tilTee`sdE#J~%l#%n;7yK^z&8;Pe@V#;z#*>) z9^&jyi&{^QQt~lUC)1xmfIC49P(p9%~b5-s1p$w)(Ge)`zV3y^X5k5&PYf>NcWZ^IW4qGEeZnYWm=-V#o% zco8T@v-5m1ndUk3GVt0nv1Q39z+21mBw}r>hO^z?bxvYBMcO1Vmi0T9*KK@TW(z6V zDXf^2X)gm$Y+PgCJb6~x$KIt`w)_SH9TYlKH1#gJ5N%)Mg+F_vaUE}najFZY_KPYM z(60PB$wyfIwBYASP1IR8NLu~5>7wYFDujd34Y!lgjw$uF^?dkH{w6^)> zBer2$qQ`0aF1C>K5Rrk&PcST}C$d8))%i?3VI&kW5@HcY3wV5#3Ur&4t{9&=NJjBB z@daQiqk-qHxjI8W`Z8F6KmZhQQNhD{npe3jLkdNY>E?g$TL%R~7#$2)5s7wkWLgfS=n$uVQQ3K} zKg}1%pV&cRU<5j=a0MMq7Kk{R13{7ZJ1i*pPB9qq?>DOKKNA#zj9o$5LkCa5w+N`j z3MLe_cMV1$uTh~W=t*lxv>f60 zKhOK6)+GyLk26g7q~?Y+Yqw+OlB|+=XK*9pEajtubH%6Cab!g(qZ^bZXi2w~UAmk* zjR@9P@i$Z^*XUREQo_G!kEFq}M&lf-$8gE?L%%z3)dR3?y)+iK;vi8lwH?1%Iw^^W zh*b*_a_!M13U!W{SJm3+i~|}*!J%}(uZQ~^)AGyobvAUa$b1!B3Kl0{-E%Ke6${-E z;W*p}PV(9~?wdoojzlHW>8v_3OzId5Bro8UnhPV&tL^VUEk zPQX?_Bgh7@0I7ldH5_b7UevbjJ}+p9upE?O-2fvmLY3t!CwyQwiwyrA<5y#0NXQ~^ zNGBIlJC@FFg^rW)WA;lefrU+uPB1VKqcf%3kNOpRTfRaySFX%_e=~dI!ZmG^*RVCAt%05O4P==hYkIMp}YJ6_8m{=W#@XE-k(sldo zW~Xq#4RczD9S>j*JFeI-3$7bA=lYHy7$lxomBCM#CNow%%h z*N+tee`B(4aTSzyU<$%gq~q*_4udc|4br}6evf>$Tl;iKm9gmv5SS9x8Kt6d$7AtG zG!25ustdk&pvURYTazVIb$&RCC=px47OfNdkQF=sn% zV|s=4-K@mz&-PvFKSkCV-b1M?w&2?iO_5(Z?Ef3M!09`x|HTe@&oUO?eS*3{2t!dk z_ZnfSsT0&4;sp8!Ww_o=v(b^eUcW|fLM*?nXnAFJc4Qu;AwQt(FdSi8jc-b!=@5Vs zG^UKE@*EOQ74Y!x8-i4hI-aY;qZ&YfznAj0L=b1 zH^Xxib5DX149i?<-ig#NJueq}zuxp+tgJnDPx&FF!+4YYL#x-fZw+)xB%}4~dwk*s zI}Xmn+9DzZtr5$mwp^>GWxwQ5^5gklHmRU*0pGBNvPCuQ7l;ok86VxdrAe08%>NK% z_3?Bw9qZLn9KcG$HBZc7Sq6Bu_H{|oOnxeHw2!)`!h&0Hll-a8tW3x6-KZeaaY>$>ftBi8ak!ptm_AsR(5v-%T zG+?Otk5kDdJlm(RMU-aoRK$-M@#}<;Me7AVDlT4{e4;T|N712u zrG3^vH}JYPRw3e4Nvng}1%E2)eJ;NM>*8jK;_6j-z>leg+lU2wPLtOW8G`F`PnD_h z#~=Dv5~FyqSO@g%<^or99-B6bm~MvvKTZ)^RNv<^upUv18-iz2n15n$@$BwWISKGS z-5ck;;N6>o@g!PpexCqQ@5j&z)Cb4|iYU+at9~$>ya(tVz*MSlX!<A_$ z6P;przJ84%yZWhw++>7da?qmxYj_sPk(-;KPViPs3T0f!WxICT7~Da?n3_>*4!x4)w_=3~_M)4G#b31xOOQ`k%AvpNQ>y1W8dU0-3skI=@Fd z8~+6)l<+-@Y9d~7HkB5XILOC(WVT$_Jd=Hh+9+&2@{CAwmx0?ok&c#C-hxfYo@ywI zT1I8E(q_#C8ew%2R>swk9q)pB7ozzCk#fB>YerpNe2Q#Kd#z|*-pxvf2lqyfJA2XrU5 zJc)HmM=w3;>E;4_t&(Z%ajH{y`W;QcMtC0v+4X)k$!Fs|Cgmz5nsmh9Ib)e&pAx~0 zJKVLO(5mgEQvPNq^Tg|jD{}W~{P~{p9{ri{t_N{8vg$_=2VSIy?afK?;$3pPEvjcu zm=_gjKH53o_M$1Qe*dZ%%29AzdG>NT=kRDh#`Y!<0!IzPdvTv}$81q1#6!7&@CIH> zQH$;Z7lUd`$mLuQez%%;+4GUo-%@H$`5XYF!{+!pFs^KJA9<&A)Gfn$ywXtA7TIOY zXXB7*?lA1hJ9-)irs7j_?>v*~s+{Rh^7o-*7-babR|K5;mZy3z$`iBi5omq_)H_S4 z37D2t#-)B%u>L#co67I)npg^J)>xYTnq8IYfHDj(HV9m>bx0Tm?dB5}9g?(QR??GkVVSJcX=8j;Z_rxFJS)sflNZi? zTf3E&Ux0787Kt)D*Z*++`y(Dm?IStr%l>ZcV9O_FJM~9PRmaoC>dPgyUkuqmCCuj1 z>^l~;TnHoRG4(7_494U*Nlhp4d@)FKN$tiB5Lip$E7QXSJ>e>!*1xhu zVC@zEBD<$uqnMc_+w9rrz9bim4U8Q*APn*>N?q8GvfV5=HQqEA{d|hvy3oQf1mfhf zcn~RLU>``WuVdy?Hj$N6Gr&h^hZ0Q^_%NB%s;{(cA7fJV&z;mR%vslD_0pyuy7re z0Sl(y5X6J;b+OappNn_u?VV4|J+#})Lv;Yb!NS^u5Lg?mR9rb1XXYs@I@~eIQK*%o z+%XewJ1yI;8^VO!M`VAtBFrXzsWg}dxJdNQ5wL_N9O9_!h?W zN5U{|*ptzNlm%Njf$b$NaaR2JuC-$H;Z!%#86hn3P9#yrYXlG5#WnecqHXn#Vyd7S z*P!|J7?a9H=at)e6(1;7VYc870yiB=Yyx3~r{CSd%GFV;@}vX$OwNp6_>MyLDtB^~ zWb%U&8>CiSBJ<>t*og5X;azE{AfZoB-Tp})@|e)v_QG`PI^@dZ#~&oZRtYJ2QMCyx z_U|IXI*AayV?(~Bn_v+qS?uNTSqmPyjs;zj1l#xds!pQa_yoa&SXoH&ZCqX}6%O{Q z0^VoRZdoM}C7dtCqNXZe7%9_Y!LV*f8oBwIPrF&|EO)C6XxpsRnzbS_AMzp=y<-&A zdDYH5wSG4DMi9u7riT1De#b>wUz-sP;L7)+Uf`o-^}?`~A4gFYWMHc}mR7v%HFxiC zO2-!X@g%pPT?oVQ_LXKK(eP_40Gt6?miF8*Y2-vVzW1y=lK^D)Dn z#`n#K7}7cM#m2a=?Pa4?O4I`gpNX9Bxf^_9BhqWHxfqP0ZU$Dv8~6_Rj3+`%|G3&X zKwv}L4SU`yJZQbL@rmB%9sTfsQ!?*S)j14%QQlh-4dv%ayS>akRXq~<7R&I2q+ZLN^vB@Wm zSpj}`Dw>mgcUY?Ar;NlT6QeWSnMTr}qr<(zN_+|!@wY*(p#GpOGOAe;DQxq%J4 zj=)V6m0Qm5Az1)OlV ziw##B_$4|e-s>0_jBbP3xrExH;CCm*;DFlmf5Yq|+RBW0idUeC>zdJ%W7<`v`+L_C?La5swE8i~o*3ZYndd`~g%P6p zz%T3i32pdNdXJfRV_nUx-vd3((;OeTBkm0e?V+ zOPRG_5`){%w;=yldh^ygxF|0zRTMVTac;DEc*Vs19d|pF=MyoUOs>s;CArySENO}*h? z@l7~3yaE=g!(=J?D?&~27Rw2bse!Hs1>gC|43y!iSXD1&6>1|K-C{kveAV1|Vn;Z{ zHKVPaC}^yI7SqjOpHTc6kAnx?4DCKc*&80^9~}MSSkcNt{YZ4NJG7RV^}jR{MvN{B zyYz>ZQz*FJ;#&KniQ_cM>P@+Etv=8HsH@4RsL1ori$ zbUInbC8t-@C98a9ltUrY!LwJqAn|-+M*zy_eYUBU8>MA50k?4p2CaGNE0wd46l0%o zcl#Xpxo~gp0Cr+Z3MK&{KZA*%7GVvglG}9iw5KX)P7=E=8y+}serNt2 z>NGASAKhNYeMo-Uca~O11|9Xt_9T!@V((*qRXEl4_PCpl6%kMu1Z{em514x}xhMdN zvdEo%$7PvW;S_#;bANCjUu;tBNno?LQ^6j?0Bxfqf-+(I+5mSIs!ef zmHS~vclyFBo>{UiG1AHcOD*+QAKCj9RPMf2*P8iruwb3$cw^t&&tuv>hTyLzA$ws3 zX;ZxIc>VyNsKCytCO&GH@o#5N7DJO!;qbl*NMN827>6$eYhbXgCiZqxOU^S1V~&1} z$mo=m^YUV_u9`;hNc`#=n}ogieQ^kQcaZ@CCkTrQ^A2USk;fS zQH&5>=pds+NN>*W4^E({Ke$Nb_1*XZ7>c~TTmhk`15*A2RR7=E^&5=JKSF`KLvT1X z!kH9^#mc7D0;a)lucrVsBL!*Fr!Cs>#G3{v#L8?up;QcltXyS%LlL6k8QIpwmUc4= z`q(!Gwy}QTP(FQm2sR}d>3?{GB;4p^2+BOQzAJMSOZlB^a>nKPA6Wnw0Z@`Kh{9PY zFT9Jv)A7gL8aWB(^l-=TOc`p;_|$L!Q|GIYx-d0H!Y-MN$UGJeQ&m`yD2shurXJR^&xK zqvhk5xs&#Famj4FFcCaD=4mAhdL`6f~k4*DD#M^whXd}HPBZLFuP zYe?j45_mP8rksAxNgr1OC~YWMydfcXd8$&7rk|P~9GiV6j~w$MBV~87oZ9qT#!VW) zE8qa3s$wLD-Un*8;ASlYXX0J#J>Kn@WA>V!&}^gkt}o3w+Vnd5YumPE+)Bmer6 zj}*e3;v7iL>2yb--1lK_&{)-+t7e%Or3rec&q_kNDh{+g_a7@D_*z(t?!VLP$#yDLWvJxcsJ$5GxPZmJ znaO5Cmrr#El!xX;Q$t0>2Cp?9!0;t`MI$`*NZKkt@Wk6bS+qRIC+Wd=t1A4W_Eas~ zkuxm(Nd=0JNKy`6clKXs!xbmR(}QAL)JJqw>P0FTxgk4^K5_p|dx}(oouD1BErWj@ zujsw(H|XpyG5<34Bzy&3dRQEWnmYl5KVPAIl*f!=W3|gZ0gucsm&nE=DC&z-p?BYS z5E=aVHV$v5KZtM~WE(8fZ&jYP(7@kUS+-JkQvwz^=evvOWg+sen?|nAYaBST89r&&ui=!^zo^M?tm+B7#C(f_ zqQdjNehoMO@aSY&`lavG#byzq<%c!?g=~rRPlV+~cQsMv6S7LT%r0Bo$u@pLNPDuW zY5a{uz=O-0vN74%Kg>rGc&@LkPFsePhcAtZ3I$VAQGnmfZ}sxd%}y02d!9cP3EbD| ze4zZjX7xh>cRO~OmfY^|N4e~OqyxKd^)SuRpB7`UdiujyaHN3z4D0t{xziwBCBUDB}K<-W)^gcCAF7uDl$KH_ibUU%n;8hVvnc9l~XS3qCR{%01j z+anVHYCeV+i&BT@Qwgb9CC#=mmOEu4Z#DXfxEZ+%rhSv9k%`aHD{U;&yI5;xva&T> zEyGX#y7cL!UdVJmR_lOAI~zc%1er!!v}1H}!BQ{7b?X#hCdih_J4k#RQ{7KM-fBbn zZM4j!BII4Z_KwG&@I%3wH`(T@6SgHC?15#2L|pio*Ca+Y7z$O-)qZPaPMCBMISG0L z{uulSd6ncn^=6rGSz$u;?OQm#-_z*eR{Qt@d~Y!-$K_c= z$}h%x!qP4BxWdA>93SvS*;sGJ$MpFoqLPUd!@Y!2LE2>pQ;r;0=^thwgXGta84^MF<}m3 zTwad3Z{Cx_BN9=vz#gCrb719xOT4$59`CNOmvyMN4BI<_v~4?=*oXR=x}Gt) z{c|k8dp%2{tuR1?Y=o;C;sa*f(=)+9m3f!t${X zD>FCuTagls%w{Fqa(VYKs8-0z6D-$Bs-o6GTo2zq*;*-OHCo(OL#uANgpV(yJjr`` z4ZacF(5Un;MJ3WR;`{5Tlcl9H?_t{AQj5K(uVsmdkihqM@9mw(NwrEz!HLS`X6WzQ zz_L}Fv>es`*6bFQQMC3P!nP;tB0*Sd&gh3_3mnju|5NL1lCmf7hEvK8?vlZ^xp2GB zTtol+u`4fU-C@OukBg|TBdE{7b(nv&02($jn17;?7s(QsEeMv26(6^C1QX=ExN+tD z8%qPo$>uBSc_o#Ud)Lw~09Dq?dc~42K~T!!H9n|0&6Y2d^Cgn#v$h9GoaF&!3R&wrD?~u9x8%N*c_Oy@vbaa&qbvPx(xG ztfG`=-NaH~IskF0#y&Ml6yPM}z)aCq={mMgrsV!fl^lsoC`b?x2@-#r5kQ?3NXN5H z#ni5!+nD@RwW0idk@)&8UZ=s!i`QL=A{V$(bM;A%;btFUMQ@&J4%~iZZLX0SZjx($ z6Uv@%^lQY#BfimVp^D{N6e+hVe`EYGgo!EWO1t$kO4 zbCL*dy?`#NGHN6S9@-{I?a2tLPa1vqbV2ZZ?!WMYXus&?cpVCPJAkgw-9fKW|53Q3 ze;RhUg8FZ3)9k#+iD zS+OSX@C;BIX*@Z~w_&Trp;rkFdQkXY171J&($# zeOQa$1G;m6KdZ^E_xusyuICdpaDvC>AMh9HztRla&S+S36%LfJ>D&Q&HHUN*1G^(k z-r~1-roDQksG`5ECA~(JcD3)=#~KrA7#JdA!}$k)!I270+KbcDzQm0$QERO%AZK|T z*#T+qeKQc$dmT}kLYiVK?)^#f37%L~rW_4XS_Lajnl0+ZX&iD#%Z=*8aM#Bc#Nkdx z@qI9qEKE`-0~LZf0tw-P?=aZmYzJSojmrOAs)Upk!{_s(%3OMG3Xpw@fRn^wD&D zp~~mk_=n0xw(K3B>0P2d37n@{8L?LlFTn9?*bY&SnP2y}XY^S%*kgyNVwaWyzRgqauItU)+Jp!MY4q7b0 zm52R$r)rF%W%A8yfIsky{jlY}#S_ypHBe7Rh;}RB40JmqghPwhKiy5KOoVy&T~qPd zi+(z*!_3sP3Ck5GI+2PNrj77iy7G7$5~RRZ^BQZK7gN`B<=~M!w4I+(oX|vRIOE|_ zvdsVC>^*~;;J3ElgwR2H@4YBU6X_6|fb=fXK}AG*uL&Ii=}mf5KoC%nCJ>qwsZyj$ z?;wO8LP$=$pS{oX?)N$GIWy-|K4m78nKf(u*ZN)8|9(K;L3zp$0kFzzKOO6BOqwU;0JKT#X$gUrR+f>`Ucc3wyTOuXd7<-oh9k# z%yTD-3GNT-A@TBoVdl^&LGpbQIs&u$iZl>9b1Y&+K=fmjD`(#H%A*$^jXb2_6))*0 zHcsC;zyr!!Rt4oe4EjLads-nHl43xph2_M({=ELJ2YMmu0}<^;=8tN1Y?PIJ6<@yn zl)|y?MOy02zFZJe@>d%Q5JkGhsl=kSUYjYoJN}uLl#5C zM&6;wXLVSUL)<*%YsSaHTI({&I1fMqNbWxWUIlM(fbJ(|8c`3-n|c1QMK;yb+Es!a zN^-x3mwqQQ=6quoJQk#QO+6ikci!ERaxL7hIIQI@`sB4uL`=ULz&Jx_P&bRW+aCZR z%t6F2)N}0sqYQ=ohtiPRiUKkWRT2``S#*MZbVAk0wW>MOnBbx!OJ?8n0wBjlG_I> z-!Dm%oR1EQ$IvEoSJWF@f;-JS4v`H#?V@a*-p{3q>KZcKTF>PqXSMD`e482An+4wf zp!`cM{r}sauUy|?_`7+VF_`=yHj&WxM+A4MtV-*Sf0;*;0QO~-=|MKLxzEU z-Y*+SRgsk2zIU6zI`@S)R}T(MPmOh-1l<%%*Wj!c5t6+xnvO+M4^r~s>r-QD!Y0-p z)vd1*DuT{DRY?h^JG#!EpZ>0s`tE6@P;KJ_M)RBIDgvN;^ig6Kv)8GYU<03A_(K8n zw+1ShrcBR#=0}&vXr82 zA1L9F$~!gdG8cC~Bg1QnML=E}3B;RfE;0|weElQ;MQS7!Fz44(lk2+~!}Nm@4!}@i zZA0&@2h!-a^v-jO!7tmUHG2p4=Pblv)X|E5tVQy5Nq zqE-bOYjNk42zur+=qW$rOg>!d{SnRUD{!l#Fq0oq6r%!(407;e&f_1GZEQ$VUKI_n z0ziU3bCX2=*~>Oab9kBJpMiW7YKjE8be9UK&}HA*nTI5|S<8Nz`aGF=@60*@&xT+E% z>LRy7!@TFy=?-tIgWxHSx_PY8)`nMGLJ5f!R;c8gz$PyQd~z|pg%z5nen z+@OmE@lk&d!|RH>CkIy;6uM#sb8)k>LU@Dm2Ssai5wPK40;qpCk;6mTPbF_XQy2vP zm_nyMe7RbP_0Tgx+8EsFHq@D*(9rbd7BJ35R9xh_h3@Wx1_nbwl>?^bJh>D1eRgHbN@`H>ZAfdc6%DC%1!csnZqvE_d z#zG~-1Er`+4FyQOFHtV(mJ-+L27SG7a+1ASpz$gX3ajq*a+jl*{mj(hE5K#xLT92g~$e zGml$WNY)@FP99ER{9C>$~=N>?@ZLKh$B1VgT#}#sk(>P1T1tMd)3pbSR1J;~ox8Uv0;!SUh{d#noUl%o?I4j{pX>EKSAu5!@1J2S zPKwVX;9stjuF6Ntb47Jqe~xDCaW#tq!1jWN0et{K4OcdM&W_yjpdvs zqs(91Ks~>`Bp=~hD-)HBcK}SV=_Y1XR#c6td3xG)w4BJR6toLm{`&_9a%%4jA zG44khTk$FJ)^?Q>d9=ya3_Jxv@CT$);E>6d%}r=9Su}la`TO;;XZ#7DHPx#SYZdjY zl&dPIzV)Fo&}*2obVaSN21WY^TUxw2#SxK<{W|f^2dB!fzc&rp8X4XzJT|unz-c$N zQ}&dg?JtjKs>_+}j+luCPG;yiP{58l5d-w|;xlH#{+hK zocw#bF{tC_*?9HbHXHqxpri{$D?A}EGJ(Nd;DRv#pLo!8gzi~MULQpS-k1&PhjP|X zP{sD3icGl~odE-J(@X&tP6A$WoeEyqB)l&O-Icf2c;|GgdV3lc`UaI;?-2%t&&-Vy ztwMMuwL(a!lZ`jM_kFY2THQ2+;va{`+3pS0-nKNBb#_H?&o-3UPS+WZ=Z*YO?=jB! zM)uF#*n!>j{l7wk{{}H&n2jqK3cZp&$A9|ob>GGjMx^SXU;uT|@*skGRTB|~=DE5h zJ&FzN!GlNLBa#9vJzqg+-D2&Eyg2TzlC|NRVC>KTZ~&PB%M?mNBiVZ3awBnS^XO+-x1~A*?o=tvVF(Z2N6=E zkyuKeHKmkrEiK5ZIVCvbDfqsZ=1+Wastn)p87cmxil&(1yW^4paCc`9ngD{23<`1f z=ISi3F7j(%AtM>VhIQ0#d%^=Iq4-{0dxp|Qi{7Dt`R2HwnA7AEe zch`e!bNg+yb*32vC%Jp?dyk}TOL6Ux0;Z!5bzp82d|joqP*RR*k9_gB=pyfD`CK$r zxPM!_)Zq7@&i<3obTOYiN9zr{u5}lV@?De?bDQYY$`y*Y!+ir2$Z>2S7laY-jM7lt z2g5AHLno&$4M>4HI4=N`e}D!Ey6az~O=~ey6>G{Zgf?Mceel^uGBu;DM|Xo*CqnHNly&*sw%<`-?x#?xx*p3 zUd%c89EM+1nJcVleKi7oiO==q8qIvB`AjVvzC~3?Ypc^trGD`LR6AL_kke9Lp#J&>GVlwM%IrM1`*^9aqhyTVq|S zJ=Ok=Mv7Fm1}gxKcWVUwo~uwY&9sGN;NVH6mM!Lc?^Zf}FnEPiK`==DTr}EXpEFCs zFqxeDybYaD3b zKbTPk{2k0SM|!_4?7Ns%v7&Et=2M#C zLv?$De<2vH=v)r>SE-$?Dm zyMF?3d+SbRgNvcaU$lW z$=n*oI<}V-c>=CFIFwh#u}(Z3))9*|cy%}wwsaq!-^2y6zJ6pM=8?Sm5NUtW4mfNo zv-Jv?N?+yPb?G`|b*eY$Sv!vl+Ai6x~dxqFtS?%BRWY<-5;zwuoe#S?U72D6a>#EM)yaB!78JnKn6D~wUO?G$Y__m z%j+E_cu!wsqtAUe>7Ksum@y>6AQgcp=@>LEF@W=v-^$3Ek)GIJmqyID7?~ngd7)i? zES@XT!{7KQ3~-yzfM2{Rh1+7TK&B5qQPuGliXqC;O2p04(0W+lunopFPtGykbe3`| z(<^C86)>s!vCTTs8LN!v*aNlK>JMMI-xB>kiU>4g=(kwfG9&xG{8skTB1$IL-iD4) zzyVqN8?>;(v($U3eaiZ?hwe0kl5#sImdL+Pg_gM)w0_k}CHYLN;(3YPk@1*a8%X|c(#t~XP<8~6Jo|$p*kvY`N?a@W8w-5Pe+R`*{C{L5b(j`xjKS3b`$3&8=JubP zRp8Hm-K_qdP~x-#<>vm6)!~oe(tpOqY${@X8R*NBeVeEWNY0c7tZE^DdDa@P~=72ERGD3^(#I z)SZ>%0DKlZJ=OD7LM!0SuPt<5j}C`!h+24vLD&#qUn))3E^BPUcORx*_O61+#_GZL zWsjC80~b$n?#Kf7pl7OYW`!r1eyGBWs2(}xd>!{}%B_{=P;|-54V!1+<=)hWH^&_= z#;m?-Ec8qKB^`%P+Y^}Q*{XlvR?|WdHf!&YFOSwEaVqi__4JN7~e*-9Ytw18+rfsIJ(H}`uMP_`a)Iq*85XJ zvaQuOg`%6mvnwSC#{JjfxMn8$?6M$y_0OW@N&`$5gq+%j8QKQ!HeCAm6xDYtI2*Hl zEtx0i`pUR-Vq5Q-p2GZ#j74;rH2s5)^z$;lq}TJMa#Y2yyj7GPi20~qw4@rd04F#| zC+-0d0(4D}mgY8J*{NZtWv36%ocYT>k|FSI`~Wuq+P@j#>)2b5(0(;^q`Kva$$YI1 z<$lNrer}~eN#F4a?7WQob~4a1R9lR1MO;XLgqOt6O7*jqk#Ivo+IA&i+K=+hf`1I| zk8__y52nTHyBC8*_gwcCej(7*%YEz4nn;Q>kYG_ow)1*Acv6TIu*Ykd11GN;N(C{9 zPve3IUJ2dBn&LmYDrY$)RM5VK{_-S%O9jv>@aC`8M@c-xHT|a7**V&J0(vbcc-^d( z>~QjR11XVohdz<8(vi-M>~Rh?o^A)IxtIsKw-MzOe)Jxq3k@LBCxS%YjA$y{b$x22 z^d~uimt{88YV39Q-0BGMdTL~ybM4{q81y_aNYINlGFtZ;S$wv_v-~hU4sH+G&E0X_ zj0e0@%Z=yhkz`y9>Y7Sa`+(K~+SE&OL7Dq|ew#@lPgXxp3(}W$NN5f4ebTsL{R$-t zXNSSC**@c;P{q@~B<{a9?()ruf2lZe3#@3=!tNjVSJ zWLrx6b_TO?MQUR0Vxr_e@V3~`^_JvpPxE6Z;q>51(=~vrIz*=t046ZPZx3`}whu--O-f_Mf34b21GkcWh*mHob4!(RT zOB_^g%UK`+$AFv0IyWNBJ;gn4=az^HLM_8(XTtPVBXrVy2Ph#479$HjOQTuUrDHX>vi*x9TGzwiYZEWTi0$u06Wjb-W zeB^bnqvoygoJ$V1CTu*XLMt`@bvpPLqZZ|LVpu#(RIuLUnV`RWJr}eiDAVRw<#E_8 z=er`iRDx$-3$gDY0-n?9Eb8@d^8r5~>|ZoLPGf8=)A5YIMg%t|9#C-yCY=fSl`ucfI{sq|55ufoK~U)I{{|;+ZZQ}q)CSu`esF-htRcIv z^avD`+b!cmS9C#kqm3wzBh!$!p)rd@;=p?wanav0Q*;km|phR?R4J9*`69GSgZ zx3ZlA06-IXMIcFWGMqrqo_ld9l+|I3i{*nFU|VQ@_OM7 zaFeF)W8s4&IoaS;tB78fNGZuwYl?e4c34w1+k~H%$YI1I<#*@Yq@)j1Vp|4(r8p#k zzjeQ^zh|#d8qIT(-V*pCg~UTcgn~RsKsx)?Ue+q~JXn{M+sAMRXMai^JxM0t^iA*n zo{aT-b__Ul8Qm=9BoeaOGZuX>?CRGtzwLbB`>V$V`RKEU`Qazc_C+DtIpGPI>+jc# zimWa38lt)sz9O2AO3EZvF0NaK;@X(aYLyNu^@q^Gjm-o5*$n=U zHwx6x!w=3XUw^mY9#i>oy_mj2#}N1yLAHn*gtEuX$Rmlqj-C?Uf31FrSIOFtjiQbzp07f z6cwd(#{8ZWKdEMsOi@pgt|?YVg8#^NwGaQYNk(we*@m8ya}H>9FUkn@lo#GDdy)T2 z_T>-xecV6k?Bgw+4XA~#2w|0=aJHlr5+P}0tGc9|z!Zr2aU5Rm{VxC=W4*YWp^D}w zbpAv25z60r#NYRS7maKTMgLGqr%Vu*98H^1CS$Zt3rf~e#mbd^h8Wpu?3lbXk;*CE zJRp2L?_HsFv%T*uYr0=IlODh9Vm9EBPa^7N+|vIHO~1atmJ)2>s_Q>^b|B#QfVlig ziHl9!fpgp737&SG25SZ)fCgSvXLQv+BG+Zg7h&&V)I)!${UP7uSkO`WVS4Vd!PmfrdsVb$n#W0Zz@-`S zQLRv)JjQz@NiXB2*|If7DjmQb51F405JxrG>r&jkb#%OQv18u<2l5JHg*kxa>cjjF zM1EiT?=XG3y8T5Sb_6+c8d_I!FJmNJeiV9QZIADE+kGBM57UPL9;0Vx*hBa8MisWr zdt7Rr=f4a|17Pfh#@W+rIJ=&pEZ4`_pL?EA3gFljAYL6?i3e;B)*2*vsDzr(P>uk1 zGBB=g&)htqn8CPH=z%kEJ5|+GrC-+&;6J?(Uq|aakq>F#9M!t%~^dlAO)Ei7Qqd^`sSf@U(wDJxP4%U{4CrWIHHkin>5p?jAr$3$y!jZOB1N`H&@FH!+K7&rJn$Glltjq zH+rjJP}RFrOM_qfoU!>cTqJ7jl3~!1^kt3vB{|~*-;QZ6aW|3P)5eb1FEwRo zBL(Lqt1A|zqkF0r0VauC>!hvS&GuBSRRnI`mf@R4Xo;BTVx&+zr%h6_^)M6~d2Ia{L_8rlurKzpPyQ7{+0hWuV65kWXQRl z0Uar*y$`r)DQ$I{|3>bRGAC)3lYgD?mHv4Y%T|r~bUWY{aAv$tK^*kczePKhI~$Mw z9fygEpS?Uj`)86>qtG8)=fGGBsC)RXnr8C8`i}HdL;fSpaB6r3DfX1C>ml%!?7lJB z4D6w%_Ytov5RWe13!#%MjRYOd(4gL+$yhl=PEPkWpo?5sy_6^)%M+Q8cG0KLlSalk zxtn(Se~X*$vF{p^nCoiq>jNLUA!UFOna~icZr9J{qd{oB#H(1>Ns@=O zekq5t*t2l#SwF=$2YIqkxOwGBQ;mFn_=?kX7p@+h za2ivKuY z5hv}UU&;6hxixgk;IzFr60OT*19Z@%thINhQQm$%?h_}nRwZ)nwY|gv_{KpXDrI1& zx_*Xw&zg}3LK$X=5oC~uBX0T}%{YijLE$`{G!pSuNkYB224KHy+A6GDRHwwWLxLU2 zu1t7hv7O_fFlwv{hzM4tVQR-QmAe;DIhmn5Nq^Yh=yc`NE4ZI)-CMyv%ug5NE9gX? zU#j$Lptd9Ml}oy!D6^5Cd1NDld@(xfT-s~)zDzGPY1y0Y0t8r>@%p+d(w;2 zsGZ+94z9!@^SXT@$!SX8=vXu@D_@eYFGCB5Wo)wmh z$4JtL&d<^MJ>m6_AWw7fMyO$rFjqwMhQlL~igxphs&odo306B2wHr8VY#l$+iWFO~ zDaXV1?STocaH`8^iN@-qWRGq3Htc>2he$LX3hnCIiKkrR2ko-WS^8NOQP{*-a73PC z+X|%MIQ%ao0qef%`in_exS;+8N}QKK(0R|<{-GtZubBQ3^HO0Kbz~Dg9{Sj)b8W$?pvLk^Ur%8weoRKVm!jRzwknU?2v`XaSlO%64_VlM8dA& z2;AjcaW-kc-;`rAI&?Ic=6vOz_^|_~Eu*`oH+@cf`s5Y_lFU@LWUpl7GbSyb0o5wY zr!!~n#cte-qE-%V7fSoJ3z=YX!7G=r>>(Y;8t!W$=4$X}-$h?Ie1@>Rmu^7LeN04dwUZ<7duVo`X| z{o3gSVbhFr;Fq`&<$~kWqN@akL}G;SJ}p6hGf#w90{A4u-%s1K=O*I^C$)eb4FSw3 z0jCygPbv%jsH6+IXE08#r8!?H0Iq~rkFC4>t|h@EX4aw2V5762woxmbkW0NIpbOwT z7l%tS8@9P$S=~qmA2Ja8ag2-`L4aTdt#6io%PhvVW%1&5vbwjS&!Vz+;+)=jZqN)j z1omhNjkT30%qvI2KwhdRgf>XB5Q^lZRjJ6~zNQUcRlz%69Gy&&Dp&m9!e4{XA z+C@JRah?$UM8EQ7&Trv8{`wF#`E$t_(v(vY$KF=XM*|Pl*Y-^Vs0ZsFHGYYe@7aMs zm+Wx8%aeNxDELQGagN$9F4FFbp@qrrrXVd@jsPv={%aGgY$>tQPHA2}xSuuK|Lz5_ zzJUMQs{P%mVL|Y3^6dZK3;f$fLZcn)A8(66i~O~Yz&>O?VhiPed&@A~;6Z*PG^X5K zy7}pp{c$nUpEv5i5Ti{$J2f@~P+=-4PQ)-_D*@VA?Wh_zc;2h=tW!EMf=n3Nt|^lu zIT_1$Z|j_peu}XtFNah|Q=ZTamk9Kg0SB-tHy$JzjrE~K2zcUc-tTJBB(=RJ8S@Uq zg({X_JXmXEm0h~~-g3Q#xG6jBb)zi>2xkhqkrz_zEf@=Vvsl+Si({G=_Tk#11pM7B zLYj&_G*;s48iOW<(0tr#7)!VT{Sqm`QvPaSvCDHYa90^jyBF83;)~rvllSMqW{pyozAi^7?Wggv_^AQKLw+XHAQ~*B^vw7P&2+8+%NWPJhwIpGZnaZniz3XDg%hkeZ8;=ZNh#`+ za2o5*$WmT>s83DTb4znAi!wc?ArGKh` z^#lB0q<-T;SmiqEtO#qtDYNibQ(Huh)ve$BKfY10#P{V5#+C#HGB@x@P;^T;kdM_+ zHXkF@SM^+3yM4`Q;*@}Jy>lRO;yHr5{pL7Qln5;W+VOmMPDqw+J(=x!gDb-6Ix40T zIe^Q(uCJU-yr~p(4$<)7`C4Ocb?XwdquAkk6(M=*Y7b4x43NghkHS034jW1NCVXrB z95`ay$8yjf70KBB$A^CDlS){ze^;1Tj;5T3dD5g`fXc60_0WjuQM5FFPR9w8h7HaXE^ z^6ITzWFJEJHwI5WlU`iKaVzdd>P#kkd~X!Gz@tU8b3_Lh^K7l%t>|1G6-&hJtRg7u zV#k-mlxLx{o0kJT&$gv3SI#VL1H%5S*l4+;&wO)$v0GuR3m3YblAyig_AOZ3MOmhK z56n?ykpRNu=4jtvK;ae>nVmWN>1 z9>Xo6jQT?@8K{L&XxpZUfnrSJlvzQD=NLyxe!OD<7{Za}E{iAEl~$#NlD;j607hw@ z0z@O7l@mNt4RTRhfPkJ?zu3}@E1y2n0~U7795pi0e}A(z+1lN6zoKkHDTvvd_(tb@ zq5w)E2jDeG{YW{izwtomTMS~Wti|w9Rfkx#l4H8KGgQJO2G@g7njGag=2Zei=@weX z*o)Rb4*R_EsHE(ObtZ9P)_K6AK7J2}gy8IFZ@-RE?bCqY3Chs|u48FyiP=0CqvDnu zgABul(K3sT1mKIu%@%1-z=z^z8Zy?6VzaPOyKZ5MhI6-UWLgfvV8EilrNrht#MYUh zcYrDh(ahUCCz-_;3g*4Ea~nhuBg2$NTH{Cix%VTC8d9F{D0u z<9}?)An>R?b7Wyy*s$cYt#db#vbLK`FdIeGVy84X1qIu z^OK7~MW=Gb_e|FhI7D1F55oO?tvcJKJsfaFsYGc>1=jc9?x_o3)Y;2&wESRFI;6*Y zt{@VSIUgO%p@k+=ah+`T)rT`Ckq$;;Z!@^Q-M;|K%t6qa6p_b4EK&E>r9n1k9828K zH3QV8SR1@qHe*ptbG9C$*0FEe^f9k;IBAHotC}^!x-nm(ya5+lJ(ACsw)C}70nS2l zS!S_YXMCBkWVuJ{JFBdAyYHL}gSuA-)sZ6T*T-j(<9R#m!Xa{E|I`SnBx>hC4AhLuJNLKBM~0gr@`n~b z6TE7|pMgX%fBjx{zSLqrb8h%F0HwNRtNc(`MaZ*d$edIv3xEM{{Mghn6nb5Zh{Y}R z3gtLu`$9q1EA&P2M^eiPU@KP7&{xNhrucD;bqxfUqr!Bu+MwMDQ4zZa*m_M(sPrb0 zgk^-kwji23UNw=rURovfG9^$bBTm&>I=asx8+YBjGP?I(MOwnSqfkjXK|rl)fAWsl63(4XA!4~V@@5qiiGvo8 zg5Uozc{M+qz$3WzuCGLTX5fD7m@UrYVMAoUT!3 zbSVjy%@0nhE6*rT2{Yd~RAiEcrUhwy0gJZLCBzs{=c0!-M2%7_c0=u>;esFVf}^zO`bSe>FIYf02}|M$>~vf?+y>+;vGELi zgNUlB|3csNy=@WyCxrXdW_tzmKVKw720K@f!29c1IA`AJ3fow0QDxtM{&en4WPuB@ z?NeM!b*pvhk3{|9+*z|KRAKARBRvB7nb5=lPG6IN$^T#s;PeIfC8;~@bTPP~_1Qr@ z8=Om@QhzPmHO+lG`<(Y{Pw8S8vb;$@MWPLompw#b^^PLa`nRwy7$5jgO!@I#`>65# zh=j^%2=2JlmI?h4PLG|nYiuwPT;yN`N+&?zHtR#WNJ$EO6}8bg3%&#g4dP<}PslKK zdK_nV8>oJYXye*d8HxavcW$pg03;e6d-L!S)mKAZUJtM^`q~Yy+9W- z){)HSV+aZ;U6)d?Fv*M(CY9V98Ut8aN?|;SBBCb>b^$Z0N92z`K*#LH~%Sdz7{jk#+@e zI()o}L82tWC+bZ;>d;_QBW`r5A)qTch1Dbw_gxgF9pk(1GTVOtVwQB^p3KQJ0=TW$ z*>GZ6h6Ug-SAr*pV}NCihFe%mp3a11Q^dipOWLO(@V&fuN=o4L6kw~z{$f+kffAA?8vkM|Y_Q?oPgVRox zQ$h%9PoPjO16H=}saMs#3e2k$qOu|MXH9!GDTri>y`u?{uxh2+<9%UA&A5{S=pTA% z<};hQ=uvp{O0x15t}55$WRAf|+@hcpjI9@0 zDs%CJgFX$%_ypc#iWvN$;FqJ%ZCTxK@BaWGM2H zOQ-0ry9r8<;k=v<{AO&#&M;lIDrKh=N+E)We2<&mUA&44V~lkv)Abi;5l5y8y!Ce{Vuco?j)Hx=-Ze9UB^*A_X0zf$#cg{y^X zW0u7L@Fg18A|1i@S*s`XY1y(Uo!KKX`Kx;$L)GKYUmK+RfyhWHmc}z8lU5UpGs%=# z5^$^PRYH1bB1josJcQL!WGqvz858!DIWGEoEqj@LorPpCt5%bWTz{X=TZV0|$3jGq z*D%cW*Bwkl9htzIl5Hd-!wpm8S{~w_1l+YK!98@bL+R?dgiGBQShn6m)VoyX(fphz z(%StW7DP3@UzooY_$XB2%|moGG<4^Aa}UwZ5Nmg~f<_42%mi2GYrZ?g{545QDgY}L z=A<4amlqdzFW5>yRMLxJRDlb?XeZVbo2hD}qNn{Bg|{`k!p_OmyWtb52L_on=}NKT z(4~nvIhn4G*%zRQ2=YLBI!}m8jU;u_03jXvzFD;pu ze|2}*LksNoBw1wt+qCp}U7feusr6uGn3lrZcJ>Dc)T`20k^7`XEAP=Fm&*h#w`a9y zA%%6nYwqv3sQ*g;Nn^_uUr}~|jMzm|@%l#W1||q}n*9k1?o6tfp`DtcOP}%Ji(9|9 zU>D!y6vUNNyKoXgxLi7vQ##tJJ}aSK&KFl(M=PVRw|GV;*`l6(;iE2QL0PlYI=kb! zy*u(HI9gcYr6TezggvwnGhViH9a40Bh7M62cVt@*8FBi9b8gy1L>H+7#S`QD4U8$% z?-7~9PFRPm+fAz$$gjoHMm9_G4A5g~fr;OJQmt`dc%FaGIG%i!^KxP`(2%F)dm)wE zA-@XJ{GB;&cL>NCC4lB)|IguRE)zWD76!W<_3(Io% z%Dnix8vXO-N3NK9KPK{@{N>uK8g`&CHX73Wn!=OZcb{s5P>?{8C|{prNkc{)=9?Aq0x@KmQCye6@{%j zePIt79_(0B*u`L{#{8Vd@9Ox4fPQMawtL^0XRiX42(ysFS&zf?&?kJ5gm$O#Cc5U_#v7H><`BLo{LgA7s1(3DF z^umO1!`ol?2`u9@DRrivoNEWf!;I1Em(qy?#P7$Ak7C>xdDhgu@6w%?=Y1gUo%{9O zSIO0RUiN{8{!4aZYN?G>HQ`dimEvEdf0!n6Ndl}833mK{UQp~#y|_m>!MUF9X+J_A z`5jHPa)ZkBc+zm^ZCSksslub@P|r0cXyWAcfpW)YJ~_2=auW4KsBsa^w6Pb8wTa z%SC>EtG@y<&mlmf>vq_K&}BQeLFkH|BBDZqAawQ4itl!KAqF$kuVfb9n2adMx_#6I zNn3TWSUw(W5p7dOFya?dL1GxUna+vZdGW2k3tdL|xRgKEme-t0+a%e}UspzQ2#_Y~ z!k@S%yGpJKfnZFNnc$%QO&7C=zyfzuT@BL8J5AE@E>Kj{tj!CyvsP?hiLYrS14|v5USg{tdWGgo(|-KiP(nB3k)LfD8};k{N$%8KL5+DkLx@ zEG;#9KxGVfRsMUA))#}vLWg1x_NHp}L&mqBakg!ji>Bh4!ay}CONy{6*2_ay z1wmn#7tm*HOhcmil`rcA&7uxicbzRtBk0QgwyU*sRj--t<9tNL$=cIQUrRRkC>$EL znxn|yC7Y`!x6TRhxM3;~26o;|LLiz)yoho+8a%**Z1GaVsQM8+dL(}(spjo$1~};S z6TTfLUe10JF6ppSqTRJOy+Myqzf_T_dI<{aHBtANmsuf=Csb#nHbn$Jx*?A54FUT{ zUPaBrIVu6)vx(UA%wF1#IF*@HVl=Jx7hSCSMhsV8H!{*tjWK?vMP#*-(cPNf_b#?V z37JF!Z2K8UA6~y;_%8f13GM$zB&T%(tynS(cV)AnT@UuVhjMFpp-m$)am=J855v4L z5O~u4a};{cEiXzjejFwkPq=^`6@AeSdOo++DC299al=sb-kI%{(%*`xJHlMtYG9G- zTmOQqXQ7zcGjavY&odDP%+#5_0%qpST>*o^+InZ<*HD%s&peDA~M!fBtsx0!{@bi*_)%Xmxc7pNkw>uZD*N^b@5Q^7QX1> zFUR$Szx9>`1H*^NQivQVew!9H zSZP#O?G>$@?89*SLs~(Xzl7365&1C2C5`DleO2?3`9di}HI-WOUS;v8(dii97ehqdW=-gA|2 zrV|5#W9D%3m++|gC7BX{4EIa*COG92z$xdteK;BF5boVqgmeq8;zwOhC0cG(u^b~2 z+vNUpD=#1Nw#wUSc0TucPfSPwEc^!7eGr4>Z0EZuDXzbNv1a#NeIdb1l~;hr$}?b|R*T1g8NT|3v~H-Ub5# zS2(P*g5tOPC&TE;@h6w@lkY63esc9`HwfwC?_yco36bM&XK>ARekmB|ROK%_y`u3v zGOUDbA|vFu%UDE&o*p7T8u$hP9nTS07`7&?P%c zLFo58kRWu`4vh6OItcw~2eT4~&`^3z?DoPqfG~$Zq-vF3wmZbOenvneU|6ITh$<6P>^K})e`8Yn5J z@1k@^JgfE~9k(ii*Zj`ffbHRyx$&-SUEWpQ=M&{Pd(=`bY&lkPo5yfhP3e{#0g6>d z<|z|IlW=?~)HPK}`1-Z(!XxH|k`5xQhm^T|WVRs_fWL7RI&S*u4e=&(By{VghW}j! zb-9Xk*SvR?jSc1QQWcfVlsBJLKAe$y@ncTqK@7X@C-u=h zpT;4zp-KhX*yZH?URRi1A)bR9p#4CQ$Ut-GBl z-KG}#ul!Mz*2=9JcC=iv1M&k-EeO-6ef0s)?QV1?@`uWTX}H^!wAy&O+^I)7CfDj= zTwO}9a4dc{p2z?&`C<^G!VEqCCma=h3r7P5xInLZUSn1mGX*h8&c* zs?6Y=Q%~?@Q%0#XKM~5s5?bTkPG$#mcTg^|$KZ9hMl+11gwb(?B?SP^?E+!( zyL?JT4HL^WZJNF<;$64058e*nia&6+e5i*mS-F#iP%S>=T$6mN-(e-;A#xdNBNAf>67Ac!p#; z+3e{f8u|c=X6tg)wGN?`SVx3YZQBp!P5{W(%>Urqv8;qR{n?!<|hW6jx|`PjNP zIFtZKO(HudKS@)*ZQ9~iX;Bw`on4=2>@{ySQGwU5wl0q4J?WZ1T{X|2ok(h{N)b_( zN05O-$IaGURuzTU6FAH>$REzpq3(B`8Kj4Ht9Hd91y=lab@P1!h0X;DUW@QaTlLX` zl*NjjX3JUnD_jWr+shSci}+Z<5cM&V(w`acN^KTnw+Cqdh2f-ii_UzA>j^~3hzFkcLP7HWJs%UAn_Ex;~&-Hnv5Wzp-Py9Yu> za-7~JLOgMJpa=Em}=Cn9!UH z+!0a~z$02Gag5jYh%#LG;?G2^A*dJ@H=hhbGB@nmQbK?HUwnOMP*dxob`l7^cWI#) zrGs=x5NQH}q9RHYq^UINHK7QIGy$p7QLs@2rIXMVL?WUf2ubLj&=UyBhkNgP?m73n zbAR!J8D^MS>s?QMpYf@WdNJ@Zy+sU-&}8Dq8?(b|c(1MkZqY74U~lP5V(-?-8zi=w+mJ4TD|q{MU=oYEush;tK`TViEdB*{Jr0fGu^4pW=bT@b1D6+e{dp#e8 z%m@OW=_v!Rh&MyAx*Kjb#+2si7cjE2xZ;9Up~nYGN*tN2O$qu7SJjR{qsVK2zd1in zke!s}M^nyzD!InhOZDyis7ro+G6+`k@AFcH84!7BEkWm+t%e)*>0%ALKw+a#>$~a z;yCooNO6mX-BVEwF2CTh%6baL)a$zkv~ki)QM-3h_39`%YQ@u50kB=G5)vawAAJy> z;sJ(6ys$s-JxE@-!rkgNv!E>U;TU__l@Jt}xMiS-2NX$1j*rlF(pp31g)3V&Mci$A zU9)^WHJX1U%Yd9|{8Qe8X!=N&yG=>Ax_NMk(KCt}wFxGG!6xD>)ofm-ma8g`DTB|v zGdh#P0+{vVmST7!^UndQc`GLJWE3Ve7n`p7@Uu?QqCYw{48+5q^w9#`WlGMM>^^z2 zqBHe5qI2O`IO@A9^q4rpl-6%~b#>{!5(sqV^oJJcI^;0q+RSqFPs{?8_|8raY4SVv zj{T%tWDIx|@YOvAa6AB9@Lw=U>K$kf(5Hv=m;)FG_Z?Qk0Z^K=RVtUw}QNIOTaOt51^f{#6YW)W&fnG%R?d|VfZWQHN z9GiY0MvfS49c8+EGAfMo>GLx{x%+*Crz(t{-wu12>N`3VDncVr*6tngn1Ook(Xvi? z4r6$LLF5;w=7P#54`8(u40}l@GuuMD@#D{xs`nzira`+nD1;k80V`%0R#a_CK zP8(M{8NUL;Egzh@<-v6e&8z<irrc{C&#);W%+59Ok%uddx|5`mF;i;Wq1h9dLwu zS`dCjJ>Q6bY#v3M(Si^mQ-SxaP#1AjF49& zFYuO^2@>j`FKgQFx!Q6*=NPNw+FAI*PgfbLqR8-dMW;r_V;ftntgK5@wXUk3?W#S? zUZkHYJ%*dK&%Z3c$@>LDVAotlM^zDzpJ~jDy`{k48N=FDmj68V=COdxbr@N5m9!4`&nrKw8F}hafeWzmvS&$>{&p!f2D7)D&mdv z9sT%zd;jikzh`DMZe8hfS&Qen-W)$*(>!nY9NoC~FS6Vb4*xQMxie zvA=#BQ;xYFAX8&wO|@LUK<#JXbzG^nKv5%|Nd}59=e6DZSsLY|`zuEM3ah6<$mbvN z!RU%xl9<;;+{2QE>hF?v*pqaCO3-p+FRM{00wg9`;k!y8*ys_%-k4LVs*&E6^YI>h zW-RDebGLLw2%HM;r9xMp=Pcql4|HYtdmU8w;NU*6SK@N^6{=Z$Qs(lJS2Lu+@eT=+ma zIv#5OPOM#X`XfI5uQdALFVzs&Oe-3oK5t9_)8(PTx(wIooWNb> zLh(5gzkN#S&@qs#bF>@3ZhnFsp3$jnPk5IE^t+}qU2UOTf+&>qe#Vn*vMNBeaQ+&g zHQQEIGTdd^@G_IPwS+s^Rm6XRT5zSR$u;D}XDjBA(d-spUVfJ=uBTpgcNkgcQ;{?=?Y@JOUm^ z9)#!G;43nQ1{T(`N8QuEy$Tsot*tEfIyQ zIm2xdGx~RWACZTMStIZ0<_{kcVo%f}1svp#Jo*oY$zh(~q%Pu*Y#%;0$PKi*I&{0t z@R)@?!&ANk^P8C>Z2$I?W_y>ev@Ms2X-Sh)to{n-?8bKON2?)j(9dri{@XhYdriGB z$YRJZROk`^fzRT-(8RoK|K=aaaZ|GG@ddwOmHQrOc21)hlVJz+q4?yI83qgyqvF7Q_+q2|S zYWp5T35BnKF9gt4;i!O3z!H&d#qpkRAA!@z%}=x|NS}t`17O%?g5k3JR$T?)6OuFA z|6(X};434-cLLw1-Qotog}@7hHNbjT!#a&rds}=7I+?k9fRH*PPGT|wjb_1h`1*ql z0Q3V?22Osu*<3VbCqn2?LEXGCKmeNhq(q9$Kst9iVI2x6Ew1+c4*EUSeQid{Oyh~y zwk}Qwt76!#*xY!8z^m9o0?X|D%w{d+&kp_o@O_f%wdUQOaJv$(G;*<@bSYciS0(+I z)yccrBHuRG$R!k&-#HSyT_cv*v#q@^Mm2L>w1J8_G?#h+#p|Q;MYmckOwq$d-h7S*?7+n&!~W ziUcnnO;V*sevv6Tz}^k^4fC0nSKKwLzhBr^Xi=njkJlupw~(g%!r*Na4KHfU`Q3@6 zCku0BfPJ~8OuWIca~8f_Z{Tx#bLVZgCjkLG9X4Dnb)HCn?#zp7-fYpd=4w*7iSeP> zFMh63JV*47;#Fn7FWlasZS%$_S+h3fgD)fC4OsQq`&}LzZR_`ONIIDtCneU?g-DUkTSwmd&cYWKV7fwrVBmG|QFPA1p(nA54mtf`;_yPqunqY~c7q$z z^q176TFJ*WylwuSJ@rw@ohph1DUm)(vN6pAu=6X*nB-5W@*ceuI)!1ckqA`_A2TN} zeW^Ngn_Bjj1UcyUYGy_8sYqNa*6so^y!K=u#)@%dSU$>&w%dO)8C5%BYZh@OKD4$4 ze0rN$ZKAGEG`bx;`N-q>uxiSx5IW@~zS+JWB0cVn9-rdNK&G75pr}w-IAcP|Mw^5;1rYn{grXrPKQIt;xC_L&j(LMOUO_&DL>)HMs{_A-x?zh<-4XM=|2Gc zRE|rL^}o~O6zKgrA1E4xqq3ADPvq2CN2zPvbx>=uYwbV+oSyte{Q)-_aBYn*yp7_g z#1vH$C4qG-QQGfRgsi0CQ!x+RZp7bFr$?c+D!$z^{u(pu(P zULhSISVP_Hx2uBl*Mx7flogUSW!SRq1G+EdOVkWq<~a)zm5UE(h(BiAL_3$gpes2z zSFSZb;Q3{}4#u(p?50LxBrf7mKBCE$WHDJc;O3kkoT)=9I3~2^Nhdwry@avGA{n)R z8}AgWa4AgA=GBtJ;+2-$y)WyOp|K?fy2CICutqG7hD>o106=0Xjg zeR5Q=!OoPM+WU)aa6aX5AVsZW?*_pt-(xtv~MNNdpO_BHUEIEHa0G{`lgR9$lhqnLOvm+;;%yOBS!$hrqrrfjD?531NvOMk*Xydfs|9?~UK_a4)vPMiSrYsY4 ziz)t>d-Lz$WnM3p{ACC}uUaD_XCY3^z?nZ6Kjw!AiM(pxSZ@I5`h$pGpttj-=d ztsfh&5HmxS@y7Zj~?&VbI-l#JSfF}Q}yv*!sCfR`mPH&Q36B$oQ}qL~|H z_P;OIjL`;%$lHb=%PkJ-5zI-$mxnn(B3R$!Y~*k)b|t^!By#~&2UwP>4%ao_H3 zukqu-WRA-8F#ppr0YFxLd3+66k2gF4c=^MwZkcYwa-4K^{*gX@I}!UZ?bg4#_~z-HO|RPqwkEUOG2 zc;3C_gX8zZL$Ou0(&ct{=UF1C1vWRADi}!lW}3jCg`Lid)wafq1q8ibQ`)mUQS`GB z?w>EUzQ^Q}=LWDM%`CrO{=80LY>=LdUwi6DOMhgTSne4!+jF^jr!=j!HMX|UaJv__ zs&xh`w{2rk$MSjlCB@{*4Yk~L`V-7cvV@m5-lW%^pnuR|y@j^_tO=SQxacfe=@Hir zV;YcC(f_`D=SP`N5?XoXau~H~=+Cz_eT+U&>l?B|EPTAGn(y8rt;_M>@+Zjey~9TJ zY}pM;M`q>6ES|Y+%Y*$xT5|Itf8LE+G1foKef*CK97L%&Mv5I@oTjXjoo3GM{V@r1 z{@CTG_K58r;bmgtANumwo3cWzDyFOwL(-Q{J@a$qZ)8?1^j$3q9;_Ks()ZC(Upn}T zZlvo-G4D_WU^@@15lwT^lkpblUDqxmx^W`TDupoCQ7>Ih& zE^7KMZ%>}BTw*01uxJwB)Y7g)Gfg!-!~vx_j57h^B(TPMH6o{zRt-U2ujXU@tfKVY zc&QUF6qR!62H9E|DVd(jp`7WSvgbzaqMtob#a=hVe_AYBKUv4@rqYi5(u`9JdPn_}|LBI+J@J-j?gADqk4m~EMqigJ+lW*w{+xPGKK_zzP9|VfpccZr2bc`X{_c--K*gI9=m=f= z;*?`U2&FdKqX#*pyFod0YWp5lc$_))(N4`>`#siSrFAy1`cwct7ui=OB~B1!09_}% zmTgs!9PaC*0>I!pH}^s;e=674PQgdTB{_>CwQi}qhh1e+dT27s&Jx8_)y(3RfM+37 zzsH+RvB09cu6uKI8vN2DAIW`JW_(5SR(^j}#fui6?`#JZdC7#S`d~MEXf3+jBd&Q- zL?kqJ008g5@C^Thtta-w6l{Wy0WQP9h+6O{)BEnDL-&>+aIC#;vN-vpbcn#G8Rs~u zFvDU^4Y*WASFMkMMi{erjdQ>=p=q>n-kwxJ2(HFQ(bnwRTif>l z4#u=*-Bu@HJr|LU))Z*Y4sW$s63q=iyI9TNPY;Mus}<30?kyLA1sCNu+4Z@cnCDAy zS7T@bi*x8o%G#B;+m^+Ivh)*^ik}9)TsmisjclVC7Wa7}lu}Y@sCZ9ZCKNE0*r$Ga zcy&+dihV81t+wnfD|Z)}tNSvoEVSBkcaML}rp#SdI@RSdT7BQ6jH*BJ)C~DcywXPh z7bW@28Jwo9kZlhs|LzLbcWEX6dFaR0mZ<-Vi|{_L{YTRM^KCds@|aod-4P1hlEeD9 z!#kawZ?hR*)1{J|44Xa8FddfZq2EcU(F#VA-=umG>ez6d{0)cY@Kxm2t>c_mQudMx^e!lxY-(Ek~NT?Ky+4q`C z7+CL?!mWwKyRLd!KC4RBl=Ho8`;sQU%3C}(eKk_NL;hls>FD9Q<~`HUyVOg`7Gs5j zu;Xeq>oj>zv6Y|Y#$3`Q)^)2XH_YSYZxl~T*Xia%*2werwJgd?EpJM6=WF()&ezup zKFJMtEPiJtjg5u0s4MLqQs#@un9IU@O8^SknIr*==uSOBfVmEp2jand@9JcjO2cjg z?%0!?Vrdb$N)9gI)fzd*+`gY2h|p03_EK7?O5c4MRD_*WJAg9FKXVv`IsGp@7qfA1 zG*Hl$+aOe%J|-ca*Zb<*vF(c@Ek;(xznumz_>}2M6a(LPQ5j^`@vU6`9RnEdd_wh< z{f>KaDvL^=4@x! zO{(gM$N1JMx}4)T?j~|;!#rZM2)y`eq8NbZqNv!i5j{$H?kZ3g-o*;S!a;b&6#;T~ zJ*qo>ONS(1T2KeTd}wR5M(i}=>E8E=_=P+e$>OQMfn?9iHm0!WU1dzBO{$e};<<8- z&yW#D8bZ^!_|X|voO^B1mW1YB=4aqoo1ZeuU1e%DF)i?`r}%blU1Zz?mI@0=y-HLf z3Xx=aNV#a;4qef=F;BADNy^BO#Dla7=4^RCqxh;vr%QjH@eXXr#oAChzHI88uu#vx zp8S95RU3HSu|H|4iLI5tHCqp%<>T~DiYV*;-}WC>SoOafXsKLj}OkU#HM+i*BsNX7GT%+A(i@j=Og$R2VXIeVOf= zig9P>D~r*wtX@uSIW=`Jj&#<2rRejDvZ*7MJC~1$LYu<0ENd>=*9f0=oOVCm7jB_c z*wl)@iSA5hw+16>T{0x-m3+Vc+B$I!s9n2U+%A3pENs!WyUpFwerc{1s!*UG9|S7Z z4?cN3Z?1a&k@~j{FGHP|dMoCSBNg%EA{vYX%=W=o6RRWw9eTl^5Q1_N4|X4I%`%G6 zTXxi;3H${0p~qkj1R2z5{8(OWp*-e!w(nWc^Y3ZrE^-vp%H#(FWVDa#_M|5zG6?%tJ=ptLCJVma!@JNgP*qaBjKEKKeM8F zN~p>oH^!rtHNRj&dJEI^7(ppJRGP(x=wUWw+5#z$!1?^Tk3k^}`yFlGCKUqr1H!&a z$-;kCn%(~buAv;`uRDiPi^m?w$%v{|Unkrj<2;ZJ8Gkn`4(s0+Yve73?nw^=4f652 zA5V-%e++}mZ*Zx)({sBe+`p8ay4#6N_*(iY1Hr>SL>C-!$0Ifo5PPA+HA1e&(bHQY z)Z$YG52{&3duT@|zl^(txjFLjqFXT@kjH6YHvPRZe*5tBH{UQ9L;ZcxX_BJ@j+zrc zP8oE`UH#=#{Rx@&+?rUm<5U7aB8{J6FK z7;sV`tG@r>>~|Z`s(-f~Sl9Og3GE)=Qzt!rbp%>E%)Qa>C(v#Kc_MmliRcll=-+iH zh}N=o?=g?$CeiACDnV4!Z)W$5xdDngx*j3cc6o?t{+srImHVY$LIk1J+6*gQW;*%i zi%J(aVlz^4z@x5aAN?>>!A51q;fIodjj~}^WfHjW9xVdta<7Zc77#s2`%(x7ED$Lv$^$>s^$d`Hb|T~)AMiIds_+ZGDYKDZy_5!`tgChG*HV8l^!VP>-}!&fgLgqL;{Cj#Zy?|pbAk`hKSrdT0cVizrbGRGR5dx>#I&C|Ze+fSz0=i+xH zxaAJpEH*&fK@av$r<=QG&*HrUz4B1wb8BBK4La-JSiZNI=Xeb|Kih_Lsw1(Y{CghC z0&uQs4m9XSZY4~!?$9|#%$=}N7XNwHW#0!qy?0|Oq{kTe^|XhZPxgA>-ljb2^4>{v1$-0?0_;?BP&Me`KKR zXCyY(1l%C-&NR%C#2^BQSxL+ZUzvJDClhhn;in4K7bRtmttmCHvu>O#ziBPzLlsjX z-X0$+cp=wXKnBLj_fBcvX_tsXb99Arb^{H=W$!9_3J ztk7I6ACpmEd;Vb=0Cym9mR46bam%Z#sBVunp}}^7??9+2@uXu2?R?3*a_2@tu)o^~rXTi}DY zV&+~{Ars99dl;h0AGa|2(6H0E+V`%>N0~I{m)bUa=U(H}4=%otVZUx>n^wTSV0`{| zeRqX3+YfA;jq5fnEha!xjB+i!Rbr!bze2_^@|#q-E(!U8HE)Y@!EMzo_?JG}iM;Ns zPnn;VhVJ?*JpMLPq73>DH_oGpTA*Y4A~4)UMkAGw3-F=Hy}~S1M|qqW${T+54lvt} z#sc=X!^Xhyg}#@z)Y)j@p;Jsqo<4H3r z;6PB0mAu?~-l>j$8DxIe>`1lOlwLm-96{SUmm3E@7GtqIJKsh#nRBq$tcHC~kaynW z!kuXo=Hf7})E0?c&s~mbZcnGG7ie2i6{91mwCc}S4G)M}+YiZ`9%DyH^xN05VKO=U zbETn(BbZ;%LudEj>oKXY?2pL?D!Jxi(sjp}>Cjo(;ymc+PvY)9i@aUlPN!+1P>z-(PB7VS;I1XFf6Xc5&$M+vNMUq7wY=OQMc# zn%{!hT-_j@&r>)(1TczGb7?uV9Bxgg`JP@R%Fyn6FtuKTA=FaqjIn1v*{OL!1bwyF zEK*PzN;PdFYS15odPJR_&flF9D)A@xcdD1}m!9gSPT;WWKZm{U!2X}$-}EV}3HsN8 zA4U0b2>*I+@9%)qlc=Y~lz(V#(_fr+Aq>CY4S%gcVC`=*v$z1RFsIgimnNz}NXG=M zb%}g%Q8Z!)h)+nifrMhUnM-*^Tp7`Jx_3&R3P)a%n~PcM;hy5_FHXkEk*PDwZ#s{c zdn+r^=uEM$P^*G$FR)|Tu2XNzMadQ;y%|`i-9|05t`bf=0Y#L9Wa)rz zZ;XdGZF1FasWZCi1=ddFQH#<-fu>~IXXyM@fSD~7`#VlYT5j|1CK7*;bW`ZRZn&ck+Ustu%9y922#mKY_wH;oaatSw=LVw4gnK6MGdk88I&ZXOl+ zS{AYvKmsW1uQXb<;7IuDPlf~H4<+EZRFQN2^t=zFlx`M$_(NXa3$wb?5YL|$m+<$q zUdze6T^K0m!#-(l{N!49J+D{#KHkFnAvQA(&3;X8sKH`hEhHd=at)EYADkR{~}Ec#do$wZ?^1tePepF3bs*(#=ejNr?Y(K+3DY$$ly?j`EVRx z;!kUu8SaY0ohMXkaaaoRY=07UCP@uFpoWe>R$5xb6=H|KxKb%DK&I@`T=xhydhsKo zri-6WT{8YKjE~|x)9$myCW6_kWyG^9p^Y_?tkk;lfkt-#2G8kYiC^9(!Tw;LkwJDa zdlBU=uLI>QS0ZU3-CK=Vt8Yxz z_ytSJ&|cxVd!kl#pK7O6aIzSdgnDnkE_Ko^H9EDqfRA)gKo_-Dg+tT|?>m`MUaHj} z^=CZ!ZRXW-NO9F}^d-rz->vFWZ$|<%qWP|aYkN3hdiU68BqbQ%O@4gG;rQW~Cmkkf zvYgMEF%LFQ4|#fFCu)4`+y>_e_d2G5qC45V7E=5>Y^Tjim}0B<8a-m0f=FqJCckAT z3@l!cKGIVRpe6q}XaG?9K3f4+1)zXdA(-mTy@672puaX~j|!)HB?hOXpJVdFd3pHr5z1Adt>y4sTShlQo>M14OJZmk$$I3ftb2BbV1s8@cNy? zi61r)e!~ygR(%$%g+4N&FX|DV1tiLfq$d4-1nnN}WQ7=_D(#fs1aE>7ZKo4}H0D7T zkqjb*k?x<19@A1mKRy9vRG3`L(z#S;0!aqz6;r7%q;Zny1e2Ws^T_^NGa}D_8g&5% zq`2!nO;GgBmM5E&5cXnYjihkE;sER*g{Q!Tw(@pWJbTC6@@`VOEL6cT^JM1n)V_a2i3_j_d8u5LS-QbHx0WiXiOH+H^&;o2Q z-v1pX*G@NMJ}TKV>CC8I-l@0q1g4z;8I1*xx>xazr(lG552C*v5W(=HJF z89ecm;WNq+>B(;7U-UMRQg!U~rwBB{{r@>-+%u;Z*=ZVs_6yaY`oosmlJQ?4h%O9I z(I9`{@5*ZU)#ImT9+5K5Yj|A_({xc3rI5$nwL)U>iv+fM-uh@9IwhAZ?a6eRH4e8T z-1)XE*PfLiK%!gsl(z?FbY%o(MF!PSXN(T1bNf}=={|}xy3?yIP7p3LkF|-VymMJ+ zOrvwmLqLs0VScaYJms;`RRmN`PYH4j9N;m zOin6u{I_D@W?J|2B$vvfbj7$%-LPHo(H&IZCthZ}h;>e=92w{E!=r*J^2GQlN*#8) zt#WNP2DTIQa+ifasQ0(sBrmh|89;7F%P5Lcj~s5t{Y)TQ?oN^G5ARB*hLJX6mf>)1 z(6^H4AHFJ}!)KevuZ~rpa8v3iVesQ{4nn8aXXW~SK#!0oCNS^)&BfzvIe-RA3v7cP zpN7e;I&h5daeLBu5S2ZP+;XM#`;nj;#ht95m8_UxZo9M5%MBXB)R8uWcfK_m?e_EB zd}$H7PM*4B*5~~+F(3GQfSwj7FBq6|A<~?u`Ai*lFgv%O15W285t6xQj{4jj-wO z4A7mk!;cG#K&(J^*(`N$tD+~nZeEL(`o_)x;)v#Z{=D=|ymXx0_LF9EMxe6DL-xRP zzyy;y+R#XVRRKPq$`A9hn3Md0zU2b;0qnGPHaf}`&BG$=krge0wY8R!$&BW%&xxH? z>dTthEZYvGneMiMW$q0{oAh(X++dv3^!WaCugN(;Y#FeyR_=%BhH3ikO4F4x5ig}^ zE@UoRaA_}}DoKu;f%G6j$)uQ;gj#XX3q4y+FG(SgpZX~W&gi@tnK^)HgvKQ%oxOGp z|17h73VNKzDTqfI3s(Anj{AS%ey75vnExI6|D|XCWp#y<6+`1@A@C3Q5`98$d##WQ zww2B@_Vzml@Ez)HRP#qkntJC)LjJ_`aF|9YQy#Lb$8;Pp1wy_b0OoBW4*E>tsX#n9 zaNWnAxU|uZj4jzcafY?gfi!YKs)mYw;PpiBezk{2`d^Yajr8#5L2*LUh?v zvAI#fT;iq|k=%HF#;#;Ne_gRX%B=X*y=qz?WNwbe^%`>Yiab)>EFx`R}(Mq_)|q$OWf@J2n9N|`7gxqcZ)QWpq;pw&#XNT zlHM^5#7ckVhnMwk{~qm1un|lEyc7tzx06H{7Zss622Zic5+zB^WtWrXPM&hmpr((} zOtJEoTIU6Wxp2gZ>*TNO_vy5G!W9~k;>z(J)^|O3-C#95B>iY`WxFm6N+f~q0javv zw^Oaf+fPvwx_I)1WGFv==?Y6Ujeiph^4=xb5oj-j8dYUkP0cnF5(Py-4I}Mg9>WHJ z%@Jb1<}dDsmST%IVpXOCnVNAK~UET`T3^GuO~1wtp%-eZ;~) zNPY=%c=4Y$n=PqgWaf0EgB$=Pi*MX=!Mvx_15kb;9Cw<|?hK`aX2#SRJ7Ih@4LBw_ zoUO&9CBcNoSjCugkIn%<>G0x_cGk7(xMS>%=Ou9l!nC}kbMDufLY1LD)U4l6coBz^ zO!l&@wxnT%>QC4_>IL2=dNZQZw?auo^EwA){ER16!z59Gvb)3$`%#tY- zVC6cEQ!JI=NC@`vQ;2*yV45oizdaha{-aDevc!hvC&j4C>}28t)#YD78pU15GE&yU zURTRYu>mrg8Ib4PTeMeMI$5s9FUb}KUS?`|@mtNk(XhLP&f(||S^Cha1p*rIZdRPg zy|F2A5$bfxU!As3j867va2<#3iyvyeo13g07dz)7I(r844k($AubVVTunw2K$;=V$ z_8Q=i>>02ZtVxvy&?~k~RMKE*$-?YTAXDiH?iL0F{ie2Nn=?rDm%t4v9~uFIT>Ghh z6Uo%vMx_`In_r6Xo9^mfWAt0!?L0r2`d@be$Z60kwwKab1FfY?KL2`n(^~7+ZxM$d zye}M1n@<_G_WN73yu!QHAXBZ`38z6V=JH36l7zxpqtn9gp%pNf%WQ+^X)BSaePh~i zhTo|um#5Nf+&5bb!>$C@O_4dQe-o%6Atv*MM)l527^9I_OvpGReIjr&H||`PTu8h< zs*2r$PIrAL4$;$PCQ65DbYhM5FMcPu;3v({RAxN`u8Sx+;z$`1B_##hb08Bv;`O@M zqBSNFkb<(C>#nbmDNWRI6_iHy@C2BixPDAYtk&|Gma^b+pRz!axu+yep<7yWvr5*ZCEe zmfvLz$W>Oq$pm)N z(!?|&QopVN_{j;_$(!%*$BpLq z+UCFMS8~b`ibQ$*OYzyPkA3HV*xPNiL<(p#^J~U#B3OTx<*mkoW7G3*p&BMdJhGp3 z?c75l2Sq&128CimS?H}|zb;_MVY3oWh1s&*EiSsND8|)a&jPXGMvrNC6rT$78?-pL zG2ghi4hUFO*?v(ia#GUkV6Xdj>dIKXVYhN4&nm-Hf~Lw9=9?uC9T*_1=La9hNi3%1 zziytqCfMn|hGU3%s0OO%?3sGL*F%0y#C?XI6hBxT%6Ez$PDg(H7UgxgMPAG*k;#}f zI(h6k)={+^g4~^9ojEpmdtkEYl-B||4%!_!fE13*l~!Pn6wE;{-&v?RFP6TV-KnNl z0_JZ{?5MJH{!V?08v>MS(O6bwjf!`E;-Cv04N&RgT)rpW9WV5R7I0f_zYg6ydPSc~ zjvxu=<^~KdeN87b7RVK4C_JV~8B>+Y3G@W)vx#QbaHu6G*k6I^p$3D1rCuQ>J2v4L zxOnceAAT>`w112@@nqOAYq{BYXogHlK+E9* zmW9204qK+@o)Ziscu?D%y}iI~vnjd_M|F>C8SDzcMA~}iE5T;AzBG5oBKamju`Qwh z>SKbdTIHgIAW(9HE0M@N+mNzIPvVfghJBMlRt_u(w&K)JmqcbyRZwiN3h#fWdDYu& z9`QcKP$>DF_e0a;sd7Y26#4O9df=LYi0|Z?i^?a)?W6h;@pC+{mf{aC=}pN5qV?Nm zL*f#y3R=p&s=ZHZP+yklV=JI<7$Gyhnfb=FGa;XcS+)dwmBtJXYi_jq)7}@`HTWB` zpQY^oM|t4C`Kd2Hy82IJKcGA8>7Q23sjTxKYNeAe$-{G;iVaG8>BE=Z4sa=}J~d2H z>UHQ?e=stoedHK;3dw&cbxb38rYF?tN~HGbwBxMqbrrQ9zyQA1ALkHG-hPiXmIg~7 z=60zbo;O`QLuzU1qVzAC;tfjrps)ne8J*rwKb@~d%7+RePRbQwYXsqCPDkwEmU1AV zCP&hVxAYX3zHp!IYIcdW83a?8O`n0XJp$tgu{goK%pnHTl7V8UWj5|amTbl!aWCK? zszt8mRlm`qMp{gIuf^fzj;Xy7* zhCu=g@1Z17a#Omq4z`FTgnB2W?|$*r*6s7Y5{pJBVc*UHEc9GEouS)$VNStK%}WqZ zY^c~dSbZ(9dC5%-Q-W$0bc_ExvNLbBV6lK%LAhC6@G!gj_RZ4c zAK0f@2D;7*?FQa=OhZ#{9F#Fyv+E|l6t@2X5q0N}AA0}QFe^#nRn>6O!BXXvd)THm z8Hm@XowUEGB=QKb;L4yqI>7-CS!9(!yqR5=k z9XnlabUJtV1s(RWu>s%qBn9pQbMnRGk3`Ol|+nCZWs^YzmT%zvu#;Nrh8r_gy= zQ~t+v?K|zroMt%3{w~U#TCQnf!la-9_*cO1+=->1%6;!(Z4)O|T~#~o;|e{#lWWc* zPx?Cf8eQVU7f?@8Zwg`?h+#-!rtlHqD7Z&k`4>VpRn`Pw>oA^k4uBF{+K|*GKyC^U zATQrtCrCAWu!M6*rau807~r)vICg(qJE`!s|HS7PNnikK^=22p->uZ&o|E4Q;J$^C zY)|U)7QWSk&@_(Zx50@;X0~4^@a%6#Tg|*~KH!yOlC!CyPI^2WBS5@rZC^bqJlH3G z!A>{rxW+Q3i@#~{-0aG4>FO)pTVe9Px~_dQnoCXXYEJC{}>C@4}Hr4E|>5xy-?W}$#X)K0~zk=Xvv^+jE0 zI{bCy8Xn}CMs$H7aDdBpnouaFzSREUk&X_}$@7~D4T8xa5ho34_xEP4l2C}$DhK{R zKP$56u{`6B<|J3{pO5Uhw*)G&=& zL#4L{yeHG;TCOv9e7R5O5KeW_^~{q{^tDTQCb}mo5S5TZNW8wK`K?|!%eRM&jqaNa zi0HdB$!sc%u8Td3RAal*QzGwf_J*8Hqt6}ZMe%OC?KXO{5EIuq$r<=2;%iAg&=$`( z#EviCw};26QO~#DDTfps$DbO-m0A(PN#?85K6&q;ASwfc-oeO&zDDy1y-qCCL*5TD zxwA)c)5SL zGtS;B0|&g-wPk461UL~GQx#_3wwk0hB!=Mb0(YV==0W!t)#^f&jt}Zg^KVkhp z!87PIMfknq&;M*u`lVI;lRbD2S^Yb5_Lnxlo%)!*AZ3dHF+q$)ifNj&7S(A zEllxKA=a~LVkrp@)f8KDJMcety9QLc2Br+cF!zKtwqg_tA&s%=dfw1^I15=`EZePMWwh=Z~}xr-7+eU#Eb|q<2~%pDRU4EyIbnI=lvS({V~bg6Ee|GM*YZ5 z_um^ir`JdTcV?{?I7Y8u5N;Cx8VVF|SiZzy-Q&B%wc0lqz+(g5sZ zyV-?gKVoIqyLo|7dnHrwIHTr_a&dcCmC_Bzy*8{>9%Yh!#mDoOq-L`wG|zF?jDA%`jR%Am9vSWluv5C0U8UEhD6!Jc*?H`ns0>_ zNY_meZS>RVUINi*zh!Ak)wgZScG$yC6QVJNJmDl$o=Zp}BSYdoH!kwg+xqGK_Q4Kz z_eovPS9&RmYBRrl57euwd_Oa-P;$~mb}PA4yhb|jz~PEW^JPopEV;-h9IFx*#2AZf zh~?;;Hzn0>NVFT%TUcK>2BJ5wT%d~XeIEl-XzGqV^Zu?ZCYv;I6*BZvkR@r6bi>-Z z8st5mWEG%87vJYEvp+GK%E-=hjkZX1&Z90P_u*x4D=rYAqRJ8+9%B+my;69k-#2S> zY)QWE$yEtJLC8tWb;e$uiGTPQ2iAo{-*%Ee}Wv`g^fV>NL9V3sOI#x zp}F5z{;`^#CjOw!_GSnQ5O>{Lp{pY~SR8v_M6TTw784SLYp_>FCwwit0MjbsM`ibPu7Eok@JM5AxkGs_R-jQfO^P?7+l(lAzdT0SrX%-mRe0qaS04L#D=Y4* z*P%2?-^@cXPkxrG`W<9NoY!TQ6e{@PY~bXg#Xh2<#lX1LJ3_-qcGWqTm{zl_E$0o0 zLeAd03+=vc;xO3b-+!Ly@{&(2>Xwv%S};$jq@9GLqqRxzR@o=(M^3ZvV};cW-yD`! zX>R1=C1O){zPY}pu_d~~Iqb7~>oRz|5~_fa)FRbv7WB*DRp8hfE!{`&C^H9@jl-1lgmM;7;D6!F3Kv|2msH~k2=c+(0W2gvl zR$rmiY(1H!y$9B@9~3EO4u47IU=kG*{-AsF^!6xU|HnOIIP>i1;`VBF33zW##u{>N z{&{>gaDL+T)lNM$S(W8Kij3}I`hPVUBi0%Jk6hRsAdj~?g%hN%q z!-7)(*obE^`T(?03H`Ro>E=k6x4jnDPPUM7^CeZj-)5+9S4EzkCrE`>p!rbI zs%Q%oG66>9xLnv%m9i8_oGI_P?#Zk=r?&qRC2fO`?GMJTDbSY7*p@a?BMZ4umYVu-6mO6}66fJi8aq*BTPqSCvxh|&Vm zO9)6Uy}+`sAHMJV6Zdz%-`~v6uz&6hXU<&bx*q2|>3-LLrsZ4Z`{mgCsoh$xJm?&m zm+ffQLvbxTgBOy%G~%G)m~bTbZZ zUmmy3!qrX`foqY=!9TddW$Z>KUY?rBiU!(>el`zzy)7?k^X~T3q!EyxdAnQGPGwhc z?Mil14vAJaW%j*};8%q<6ErX=&mQxuLeI-PdCQj;0^U&e3L4t~(UgBj&Yt`UE^x!V z{XWkM_NyQhYhU_3gC{1xt3m4*P|OpsI@5yRt?OsJZ^p64Nc`ttv{bb*JOoZ`**lqY zzp^e1lxK~jI~~;~X!U@M9g(1Lr|%8LdDRPP!w^PxRXuz$sy}+=V%>NXMD4;%Bk(Pk zD)>=h0vCxn8AW&w?&T~aSflEGj9@24)&&SmH;p&$sG>-|OyFicx&66_d`xhjQji4v z;HoY&gUeAKa{VC1avC|{%YsQKtig+%?rze9YmM+Cjc;G`hMJV_t6jt8;U*5;qXKNQ zPZ_ZCnP$zNWTa4zGNoyj9Feh6Ikyo$UoOh?m5BlJ_7^J?ee^DJy~Pr-cFaGiVsiDl z3t$a<`nHmEPK%P@;`3aVGI25#Mb4G&Nx+2^%)FY61XJD|{#l$~|DpQ)!Rv#ID-JRn ztbOGh1-JjgkwEm5!vDu%6Zk6Uf1B*D{xR8U%Pz9gi{pv^H1HG};8i3T`1b2AhP?OX zaL^O!V&3I@1tBDlZY2!-QKpxGd!bGS$2OY%IJ#AdG?^FCE zq;Et{zV*UKE0#R|wltKV1j_8>o;xW)L3G_SzXSblwxi@)1qg(rt39hK;1 zn1PQsZl=cj-yg~QO2W1DO;PH^=l1isVzf~1rOSnFCgGqZzn6t_uBXb_EYSH!3*=-9 zj>GZxQ^TCkZeU`}8>2X%?J0`gkjoUwV4G~$qyVMIqi^S`(K@#J%#b5U;Vdcd4#S(p zpmYUnPPqj2TkbH4EwYw3B6?F3v~NJt5lmQ2Z*`Jj%#WgU{u5YcdcyBp3y>O_5+8mn zOUFmyRkJWSMZI)30Z;Bu)(_Ao(@KqekQFSwW~@#_@z{N<(QdBf;aGdnoZUgzax%!J z{_Hbd8Y%i9?-F#+PZuQf)`sE{Se@ooU0aC~-ca0`U4uqKk z^~-JyDU)Y178~>~p1CC*#goGvOJ@l0dO~io!JqMU7OVHbSE9}!_02*G!P15gK#RBVM}e1_rylTmSKOeZp}ga|dq>mDZ*D@gRkvw#iaA$rb1b<^m+@cuASk&} z%)22d?b)gP8hYt;TTv}5~3U3Iy0mDpBrw&cGP0Uz{Vo#ih* zP7nM3)+g;uDgNb))miOrQ(W0L3u#Z(AiNlAy$#I{XSL5j(PhZfeU%6t3AuMneV{$m zOzD!D<`KGAW8(3I@Nqj(QX-ZInVkK?@UFc&NUFI^cd0f1OW|Q_uNu3_(Y!8fhjJyv zvh&Qglv6lbUC=u{2g~Ot)8~eFkyXoQk`X}#GHeH*={|v}W2Fyn(}rW-!f{VL|oH5DJvW`2|=|-%%a!s;67%I zP>vi5`*j7=?MK$D@ww)Tz#p;g(mr?12*VykJeY;zz5C=uEF*qj+l}WAuI2u7rsKSE zt`%N|{)9e6^u#?w1)>(us`?=$hsdD<5681Ohlr~ozld@4ZQ zK3oN;-*-^~KJOzs;ncthV$r4Gxp^~d!$>D)V!_tcM+Ql%Y|(kGiLRy~vVE)HY2ijP zJd!hbNClPnvt%y>(|DvYe1t7nzOh{(LTEmhU2r=7*4gFbwf1IVBFghE#O#QY**#}r zRr9kMC7epSB4oOGHpUJWxE-;Oqu&7EQGUcQ)5=HUNf99w4f;cbe4SPfj~TnUP*s@l zF%u=~;94TC5)z+d^;H35 zT=WzclW`9w1^M9@fmV&Zn1s*G5%Mz?*daT8C=@WYwbh-Qj4QBGW&X4TwJ`~zO5}CN z!y!@O=d*`{fNcTLy9yjkv_%hAomx^H*qqM*-Q=O(PmZFJ&!)FGW*o9}y;yu&J9ZMi zCQG#It;yfm4kh|2U+hv|1y$l$3TGh12skCkUx<_R1%tM0tK4>$I9DJg$`(pL$W}{n z@f<~2K(TT-BRHB>LF`i@gR?$FRGWO`_Hv|7gR1f&{j${+WzfMJI?|~meTtdqGeuR( zWPL3`?$-|TVB%M1ZZf;-U)O9_%U#F(Tux~}c@Go6I7hByq^G!ayi9$Zbh*5z`Kbi? z3I9_I+GuKj>NO_<)mJiKSvp7c578iYW{CvCJ9gP+A>DX)8X!=IkF_Yzy@`pI=469W z;kkhQC}FsEN2}L;k*>%_=hFQ`k%weSZ-u0J?L=FR`41JgY0wOy5gIa|*9Z0)qo>8e z2)$G@vby&>Op}pHFNp=aXQ4kqA3j%XJJ$F}ffcD2DKdLMkp3V-M5-CRsa}ZN1Gg@7 zKJM(T_`y=&DFV7R!}c&v+x_|Yz>95F2m?9J-~H5zZ*Gy@py1fR;|ta!@sUMjm*RbE zR}E#8-V~gEU2J)5$*0;l(5F*}GrD#1aln%>O?a@6{#)qqAE)i(@XtiIbN3Aw2Vk0* za9I1d+WXZV9|PX2d_hFFRhJ;*gVll{qQ~ld5YZdoOS+-ei6GAJqSTYSO^?h~_^lsy zzqQCyi~B6XhHF=KA1B*EiRbZ$SNgQDSGVy-O&wBBU~l*hlz_gGOIjdX_gd`ndU8Q} zil^t7#qG%=<5|nK{T;DRmdQp}HUc%y)hnA)sYoAb7Bw!8ly%AaL}bQ4GXSZ=CQ^>R>*KKUh5OM~F*gOjS2g1^ zO~HIbGonDn<&nD2JXD6zcn!&g{>JwtYhrK~fF2|CkFwH;T!1;@3;qk>Bgv_^o=3?U zN-{GSd$Z(cp3NG+(IfKI_-f{dy&QURpar&)q@cC(b|H zxjR%8sws#RtX%v%`pe=PqXE5S#8crD9wxK%LoJYae!bbm1bBp&hXKlVTjR$DZt)h5 z&7ge^lSljR4~mdPOAo^B55-NKC&NVfXGdwFVQW^26l*=X4sh{cvD}H!K6NJT1Rt8< z(v@S+hwI2?*HZ;M;WeS(76}DpMlzZ*Q3Oi!#tg0S(#YzI$h`FRhLd3CeMy5q0TQOr z$PV08+#hY?SE08oU&+JKFbK`YSmD#Kp1=-};{(Vgi)!VH$Jj{SlSe}mgru~<_*}?t zUH6vgb*ni=7RPj5I3L;W%ZH_j`h4xt(3xfpTvcpdFlj6|ePKFHK6_(~j=zsz&-6EX z;`e)FSD@a9%$DFE!KJ(IIdADvND-2b(VJ&@B}5`cuN*;Xg)4mk)?@kmXTc>JgMzEC zhlB2(=D~In5FdywP!GfgaFysu{CG0ohHz@jJ39YzX#OfN>I3ljygxMWjLP%e#nrj~ zZzuo!lFjq~(aZtGBl36zJF)X<0Z2vo+5}=YESh+tq8jbu`#XQ>lXW(zOa z6tT1z-*8`(d0}CG-&%f7>f0UAB-;ss93Vwg6@LXldkc<*_sS|4V9uW}$>U{&Zqg^n zxLj(9W*Aq97z@f_E(~U|&_5j9E!mhfwl3edP{5y5h0L^3pOiiGU`oCYGOEvHdi{|G zRfSkAX$aqf2mDxo2WfXxo>NrEA&yTa!4-FA;FLRei=(NmlDKxca9f6iM$2lLa2N@dXM2v1?jZ6Il7l{YW96$w~%4Dh-+V(=^#XwJ8Yh1_XF&C9#xl zHvORv9OC>+(wLjeYIhcZ0%A0i|er!EAQo&SA8b(jN^x- z3LnwfYH3yKT_*uYuOsH-j;Mm;G@0`G_eVy8-qI!%xmYt$+V#S>-bF7&{hXgF@QuSI zA0oJbtH3XU_dNWJIDOhXj`&Qx*Xq52mJxMVJ^s zZxQBkY0x(EP^GH~P&^HAa=hTO%{^Ar7p4q;HU&bwkMT&w_AWTK=pSsLtcPuot1*kR z?r+HTwKbpQ(I?NdXw+D^uUzryh)TPM+-~P%;3(IY!T*X$odI{8I%cJYUf#HQhliBl z%`tNsib#gkHqmL=Db7Cit`JoVxlNM;B9PBWQ}V*zvEt07Y`Ib{W&mDzpgYUVMg<|d{<5kVfg63gSbi;qKT>GqL$QY1?}+!O_Bz+s zjm7>jpq7m|3xcl<6Ib*s)x?S8CHCdP@|hVvmfdue$4@LeW#INL=wr-xhqi-!!)JSs z!ks@sKzn??R^g|+J548Pgcz??JvJz@og}vEVi~6-YKc9eumpFlj1#a_{Z?fdS?X2? zd+atfuPecw8-QlDHZ>V~9)5CP@LT(YTyC05emRq{ou0wFA>X&;^^V=>AF}q{2!n}t zLX{w-LXi-1`FcGx;KMe}os}XbG_N8BI>rz-vRjtQ)Lu`SK@~+)pD8cg^6|d?Tl)hmx1dJ}gv?NJYY^8M zd9fP8gH$01^x$nq)lg6#q$-C=)OXos8J`_N`Ff~l)f?48ZY3`UFF_j81+2||a!TQM z&+RE{lVsy_S(R3tX?fpOMi9a%=rggOYl<`?6Un*Bs6doFrz8#sp(^Z5+07OUyqd^; zejgv{vm({A$hFT&^TL_qVym>)BT2z=a*-okjg>~Q+iifXi7>}gJc_Y8kO~8T@NMMu z-4pH8NR_&hXtqeQ6l$T7;q~-`myfR$@!slEllJ8smNcDF`ATc5`GGi2{4X&A_~Lmd zk5Qe$V{O1^Vuc)UgX*_&L<^|{Fm*bA1g9pM27VE94x_e!Ekfr2Vw2E60BjOQ2M}9? z=>dQSu)FQ#jvqwx0e|K@(0?>`HpQY=b7CM~+%2ZND665%J`!Wdn0M-HbG(&F3kd!~ zi8b}LtVQQC$H@E`q6^+dJIIX%uarJ0fR)yqyKk7L5F_XV$%BTrB`tc=Gg}b+AaK1+ z&};ewPsKZG34)%}Hc9eFRX32l$h`I!H)JRn511vooTLhReFxl9^1~Yo37iRA(E&#b zOv~1B_ceZB49ZoPXsIG|V29;*EYIc#NM%C-{E6PI|0~qtd|zof%rG_fr)2{ zsjWVy#-yB*$xC{=er2x-Td}y^wcrxOlah_LX}EA2oam(U#713{eetLD$FqWF;Q6MC zOYMXmwvofd^JN*sxV?pRw;7LC*Vsmj6_GoG+NY&bWLI-bqkzN#*5=yl0}g8FCkmv8nM#vUPPwRR zD8Le*3gfj_;6+yjD25n%L=tkKT6EE5xwLmcRP7NwiD+{4`ZWd~i==`$`p~cG9~L8} z1FvD;#&xC9`j`yMD;c>pA&NLF$PVd;WQz>7hUqhd8re?op{y`8EnS>R2>;=scVz}@`RQR$K^9+4j zJ+(rF=xgp5*+QS9b1!SsR+Q|p#fY4Ph9($Z+X>HbGHR#{y=GQhY0j!LVwCzrB1-dW z96#yw(zcNAcC5k+VOx-a45I9CV53?H#tcN{u)yA zSDJ(uZ2fDttTn4YM125W(Rl)HXYgsDPP*nC5OpEF%s6$D(3aqH)Txw`4@{oqP&Ud3(QM)phRMVvA&aT)n$|=$hDpA|`Tep^4w_@m{%|Syl zQ38^@js70pjg{;ocDF30D8I7kov&i8)T@%wUUWb2toXBU$t=zXdqjQ>AIq$l{1zQd z&1|4A5u&|o=~MF)c`0>w)TOns85zdPY_={38|Rdvk$e@;*JEZg>SB>X))!E|F%Er0 zwqVZv3CClr!K=8O31jSPnABKk7ucv=*l4P)Q=rJvZ*TrH^X!{-pwZHb+gm$|L7SM^ zv_m(ZbQ7N&6I`wIrU?aw&}u5_(wjcsqqAAG^pxeAFD#etbKCc-X*Q6&lkgj2RbIH~ z-ZK%?jbzYQ(G4*%7uPWD6=vNXTSNw7s>ielkPI1{nc$N9pt@;$NXL%RprVfp$j*zA zSA&;Lxy3pVc}DZ|VZx5_GXbs8ZEJfrc7D zJ|zaH#+uWHQaYk_38t=*qOgUtz?E}Vk#+6k5Vu=|K?#OAuc+4x94*Gmg|E^-W+3M~ z?`ZMbXWSzDI49@FX|gP{$BN~^o!P4gOIX3)TO~7FCHzJg?NG_ZHK7G(DCxtQoV)pY z@CAbI488f3(bFahj%JEt$oVi$*QGI$Wo}~fmzqQbt?9*eTfr}{>ajnCRZfiZDXZuZ z8j=a6VYQZ&*XXTu>mOkhW=G7gGcDkz?XeG6@X*y z7&Cz0B&6-@{imz)a8C^nBqIVZ%3PWnZly8n68-+3k~jOQQ+FArty;>utVXRo#Fd8N z!38Lq34bMj>(n~KsR>p%?H}?SYE#DkZeQobh2CZ(iZ|bnj@#B=jQSWA_k*7qw7@65 zPR6D^;j-_v(&C{(h!{ht;PN!n_;`Pke_Oq&Il4H+P`*iFpE6RKc)yK0{5ej74f(`k z)DhR)@p&;s+~is`B_M22{%$(U3nOD$4~5#aN4=9&p1+J2m=I{FNZs+RxE8YZDOIJy z)~zbG^GX9ul;q$ObwQ8~i!f-TD*C0Qx?>`&tKVo_kLh@#nXY;48tsZ9f>mVhP<|W5 zsJ}yk$hs)-jL?QN;ClxOj{E)$eo!^+-4C2jrUJUk(5z82(AZ}2=N(c|go(cA@Q^O( z{uapdm5weUOudRHecRp!Ieo3TEjL-i>s_Trn6*|JnjDq8C$vVA#I(W{AfQYie?%_X zxOg@J6)$}z4$)341f*9Mrk8 z4Awv|&ZX8QL}f%91`8c-MHM_K%)v6neq}&yHzz`H6u)Kg(|3^GozAkz)k3Pwn`b+X zaEn5|q@tfb3Hr|+)U&a91|8H{dSay};mGh0-o}0!b1%iUSZk>eak^301E>;JOH?`c zxbWtaLkqOF)FU%))JMlY^J4jA*!!$&A;;zNwC8?h;@ClDb+&L~-S64wYeO_0=l z>Y#q+L>l|vSYFb7_RGSh4;$4MWh~_99KIUwx88{!^09KfRRcl@+V}<8Q5wWkx@9}) zB2&WrZqc{dcLgrH9HFyeo9KrMG@XOH`qW9AL zZ+ITCb@pH$;Q&mYnokscCVn~usL%c>ZPbG^muX=7Bq1NbsnzVur~n`L%~gO;``#+R zH9{w@0D$kx_{c6Co+E*`chzsa{zIQxOX;N7ZsUup@OTyi@6bUXp{pjd?C+ECw32WI zlz0D*7L9~hzmGxK{HABrXy+I+LpwxR=yXqK&pekj@;}!QTPXNgSJmJ$CRX=CS&9`Ybat;S~0uCq262o9Avz!Qnfn`+CDAdbVha6EFRopb; z!$AUF5ROy6hShw)m273SbKjX1T=QPtf}ii~0-fV*+f=rM0xeaQ{LwP{v-EJapU-+q z?GN5gB5_RfDW41*c<;q%1u13QI{pNZgw##7-)xZ)*u|)v$aOmNNc`R3jm=(>LIOK$ zVnO;j#46Yhf=+`_7Kzh8M{LaTo$r3JjgYD|NQ-yU9oJT|%W@EH8nXFPnIZXD?~0|- zc}XgaqWnPLea$hmq468w+2ouNkJ2~&#JmvNR{Cyh-SJ7GPu$MvjZT-MW!muQYQ@+; zJQu$?Z5zRsTQ+@ZORz*c#6A5w*83(oJM@nN=#+~3ttvssT8u9R8lWlF8^^tlxx-)9 ziP;dCwwg#yb8lDJHoYOPIeSPpD${>c_SXFIXri!dWr3q;h>K<2J@>px{h{dBv8Qj( zpL2Jn-BW8Q&=r%^)Q(6MFOeR*BH)}0a1q`>HnpE`N>GfkK^&_OXUOjcXC4j}c&NID zO9jVW3!`ie5F3dyV_(?l^8Ob3l}#)n+%Pwi={WXoZR3LVV}8jcIc+J%Azsnb1bo3) z5(coSGG#Vp$i(UxgCVaH3*iZy=_lcZm*W8)7>I_Ji?rV@@Um?==@1ec{wg-B8o=T<~AqcOVJ@Lc{bOK zBhGm-ZtCtrZ@CfMuKE1?xX_8+OXY}VuWBu;(h_WQ8;cLdWrcCH(Hqs&JIiPIn;enJ z?97q|(`=D^69+uLO(eqcc<(br$Ltnj=giMi{ZDMF1$vy2mXQb%emL~hSl6lYHORSa zxa2b2#+`H&pd|EqF%CyX$mF_{H!HQQ7q|3iGqoDDh-v`rQ{Xqe*fto5E=@P8E-1X| zfp!#P`>Wkg+O_HBQDN24tz32fAWenv8I=CF!P_rOX!A)EWi*b5qsm@`emg0yF#H@+ z5JP--eH|B7qoqFs)bG041(p6_r6-|4VUq=JO8pq{!3`Ik^f_5A3*-69pAtBevJ_0?1~>m*bz1+ zy)Q*3#BF>;4$@$B9jMW*c4nwkvV2wB*B3jb6|i3Rz4>e!cUEg3X9D(T9Uu|urQoCg?E1U)95<2cY*n{8kT^%|?9FykjzUI9sq2_vEpZ2Gs1!XAyf}n#IZrR71B{=Z_+U1NGsxDoqE>k=Vw#YihWvU=|Q9lK`fVE87%+1F&c)g?tVhN~Xs@oM}CeGxOzz6XrZ%&hzjXGi9~ zhQZY6sJ(1rUo1oWK3#YreR{l1lGYB}N<{W)TJc6P=wRbzahJ3g( zO-&Cr?!nBi-jy`C{$uFPeylB}_+nqGi^e;H=?Gm?8Un-Ngr83qXeatW{Ez|rfY1VC z#@$RXvA>D<5AQlW_*VDi@%-ON=HuT1@!#X&6mfn4zDel)E0krrpA_XIrcO}#i0KnF zmM_tld(fX-(A~3H)q6}%fr89f;dCU5m>_XN<4hi+OONIFh z@WSCsbdu8y!y$g=-J|88o18wP>m)i@>n4}Du6K-wO?f}R_UQcf0tb{ z1rlWDYi*O0dOF11;KfC{{WCA0Kf2;*y1AiD^8^+<*yKAF`-f#mZN@>}F)kIT9Pbnp z>ej2JUr3lVzyPNch_C|@1TLaGu56CbdJG)2vN-On>2I%%SmEOeTtX(!5x9Q!(^8-z z2d!5!yIHXgo2M93)M)FUvyN1hB-cRe>rc>HbckZo$)txp|KQx7>Sh*7Rg>`(estOF z-RD$~xd*}z(OkSi*knfYhHFtfG|=SFsO9io842WId&mvNoj$da6W1F;Jj%{0YxN~^ zNjj!%$Dik^85P68USvZ(BIYe68(@;J`IbrSO>QCqZ9-bXiNT~6rs}czH#K;NBDufG z-R5_c<4=_hMG=j?#9oeFU;YL)Elb9L*Zb!J)u~YmO^4LnGq#3ht7jSUsdt?fPliL# zFz6Cv9_ZF$Rw*NyUi586ftl>)p`=)JD8>6xOx!qIMWHDNBbxd#;%OMnQ21N-nTo~5 zC9c-AuhI6`*UIDJFN}stMba1qI)yH!OCC|zM>e;R{xEmY8|~XwK~CRav+YBrZjt=a z^}KH_tC7(H|Ikae<3@fgufsclwecxT1zt5%LpaVRnBrIOGYD`;vr95+Jh`i8Vqr)k zwul=YGugOzA%!O*@1M{2pno8)0@Ht`1NnP8Y5b?dw7;o~$Ny@-e0Apae@8u~`=0Lq znI@vYA7gNI7il8Nu8hLj2G(fP|BGuluO;@T!#uZ%=Xf=Wnu^h-g2ogA4t=Q(@$ z`v5oYZIG;l`m`C)N)fEsv_wLwntLbHJe_j1S zhdxO;MjUX>tpmnDbM?pUf-{_^{}}`9ZI!T*=_P7c6Y)3K z)1ArG2c#Gx+_S16Jwum8w|vW(x)g;SSt;yQ?mL;rn8ibh z0eY*VSB3~tuO?WAf*+JZi(=ya1bweiY8(rkEc?!rZWpAx#DR4}Naz{cV-euUF=P)%CePc0q35w1YXT(IBw95D=L)#wHzDroI08X z2U{bj0W#p!J5Ta_a_6g;4>aav7(=;;V>_}HYdT}adZAzR%}pC#oW9${&RN*L5m?#m z;JczGvLMF2<OJ_WRMk2;-u1Fo0wI78TT}IZ?Poi z+nb2-uH8|kU|z1py@}&%Zuzb4rL=g_n?Dr#%mf1$FFk!4%S-VlcAo(&*IHhr2QT~g z!ax+)I{R0FZ(QL@r`88s^QzR|XmjX;h^xh#_YCxh3Go%jB^qs%dws_6*jbFYlq_ zc&VWH(y%Y6vw2FOB(>ltZQ}jVoBQ|h-}l)@0i2Wjj8pROFk_)NSj!t2ha+Ug^KyZM ziujaN$P5Y;;UMCA-KXNtyO{91E>WH)xZ{&Rzjj>TQeyhVcTZRcKX`H8%s`1S{gU^E%w3U$R5+x znc=7)B6FLGD~0%7AKO{tL+%kTc>TmH?u5N+pNn^bfy~E3B!!#=v99(5inl*QL=c=L zu%mK;-B+wf^z9m;c9;0$jJy3)(O)i%HwWO$uJ?Yy55TF7>#qui_e1^~6NBUE?+Jea zCiCZ!u76$T|B(?>m(#cYBO$zK!fi+R36Zb7Aw2jgEsY@~jbEG77=bh>=#6g}7*N3+ zT@T@MJrx%>qGK?(BlCW2?DD7Kfkk5L0$~G2NI#iXteyC z8c+U|-+LiF`M|bNJjhmoPqsOE@$I9cTcjkoOCC*yFGRYX8izm|8@N7k6l^kCzY-M9 zC#Y;;rOv5q;~vEqm}a#keIjB}(^GJ2#*BI@%AhEEj{XgJ0KyIavw-f217d|Hwn3-> zR5_OJefaNf=WN2GVg<|+}Y)Id87<`->UTbJfMcy4Khl-`WiYyMsW=S!H!_1h!J>}iFLLgO&E>8-C9)hn}mRP$52 z#_#09U|oN%B(G~Y3$_N%42D=y;sq9|dxx%EJPcp@#nBQ)#=qn7gP^EH8BHnQpoq6A zkBCE)K25QJhs%#W3l-GV4v&Stv$lvfbdzf-vzj~N*ft<5nnq=)O6`puD-Q1sXX|>( zG@S4wEqlh`SOYZ zZF!LiAsie=OwKe}TZ@Rr)R;bI9nts17PkM;zu4wS^FU2%{a+FB?iSwUa*B2-K_Hb3noboSp8cM|5wiK@t*E))J@mjcR}R6=teWHwG7trPHWtLl6UL^ zIaVbHrqivS9#?5-Xn{jBlT=*eD?us4k>k7F<=@{f4ty}G0U^(_E`YNY9beU&_E$(Z zX=7D!;cLZCg^}d2FOm`NBc3Fh$hre&09uwuho2{J?VxWWG3 z;#I_6XYBIHSH;E{V$XJAU3~G}F}&sE{20CCyo#1T6$J)AO7e`1(z1&b=NhH*CtcCI z4lIge~?=d9yYP<>O=vO*!$_Dw=jr#r-};Ng{{iYeA%+167z}~Ds%Iz z(V~cyl0JoS!~1tmVBKw``BafM1PGHy8C%?{_)?Y_5OKxV1 zP+05C0;_p#h%dJN*>A5m`04UzR?wj1J;e@G-uxqSgMuCN14GB&u^gidEn}jL@7lPH zl#yq6*bwm!`EjAG8iO_who1ic@$kngtpoi5fs$I5aN@|QUa<$WT_UdLBo;Ol|iAf4-TyrJ19jJd(_z4R;ru^!Y6E6Q;GO1ZSK{+I~#&gd2(omhVp)`gN z%A)#qO`?s`Y=-=m&TZ97j}V}B*u25{bLhNF%T5ZFOAA|?%0}Z73203kz0PLDNY@>2g->E(8k6}pU7Up1yUN$5TQ8(@k9O{%=%F}@eKSNNxIH1H!)2PP& z77RGgYEpMHwtDEnR$TJgMgs&rW*3jwKt~eIFJ3kO4qH9gzvdx z1fo9D&g$B}fzk;3hNuj2W`h@MRcdw~6pm&Zt6eRZTJMW1{SNB9fW8?FO^mPoMVwkE6ZP6LBHmE%@d*`LBv>eS1A!jBz2hd)M8n&+ z+#BEj!)I{V{srsYlOs#%?58X)tUrAa%wgVLmgn^JTaYyhPyV>o4h34KBM`h zge$9QEWp9Ox`;$aJ`SC|!J3|?wNnS#rQmg3`Vc}2u>KkMd|6i-6L(;yyoHhANhmDhf$Fi^-fuoTJeSL{-h9i+?c=I~Guv&& zJx*YtG{w(SUUJBSW!a!`=1{h=f~Gs4W(woJ+{==lhTKwo%{Tg8%6;5iQ2EiAhD9NX zss2`8#3BtcR!ktD+sQcUka9$VQys-96A;dF)xwJD5foHNT_C_CJ%C)th@DKwI$OTE zj+G@TW0dfE6P`pK@+R8fk8)EDIlnK`y6?O*O|e_nSCoPk&Kcf)twdngW4VnSjv-Np+LKd`Gt_UYw5u6QU5w#ThZ1Gq zee+7j5xgoCPda!ZgI3Pp>Xz9GrzsfSlkB~y1VEQ5zD5~s^J~_l?)5Son1O>X)2s!; z20r-Q)}U>Yet?A`vj-`#^mpuRG+b`ju^Mz1xN;SdroAO&d5klzD~7P(dt&qe!CJ$K zdr_Mgo)HSg?i0u#)*)x{QBoXpH!$j#rqq1nYO8A-BC3L4Rnm7^T7=0Y&%{lr5bE;$ z$)~3pN~@oo-U=`Auiw3}D+WhVfAeWRIrzoB?|Bnl@dfR_JoEj(Q6pKx>QN8+sCFmfYtuch1Ns&y=~U)oU|rmgT%O;%ZbRrxGi41V zp;S#9r!ZExqBC*vq3t5GaLtAW_zk2}Q0>}>XmCP?<6;q*Q4$ z-8SVM>!sU84#(yniPqpCT$}cHoXTeLL_K#c_oK!?F00?R8Hqn8BQ?xY3iC+uls#vC zY$m9x5Gh~(Np6a?#qbQsN=)?p%{v@;2!uKUpWELx^5_)Mv)MHv#LGQ%X?s45my`BM z3tZS3v5dQy)N7<^*}P76O!<)oCy}d1z46J41`3^qsKiX0XL%3lNjL6$nDVDqTuUz$PXj!QJ#Lu_NW&In_K)T4h^yZMq*f46uHz%&;9sMgMCt%w_=(DOZV`)1`c_GjSE4T~VUP6E|G!_C6 z6&A1gdh^HEfYU-^>{SzKpQj0^GOA37s(zcXGYs7}khZQP+XCtpu-EWml%75!TFJO+ z6N+YBKlPb*hbj9J)sQarl(27swp)P@<}5I43fmF=$@NM}l6N-#EYc{x!Cbz`M03=R z*G`adtG;~2ZIX8_Y{85!OKBv0wYIJ>8Yb}$_NhVkSt1f9y3AaD>@h=HydrT$WWCF} zxK+AO?1MK2@Wyy8toVq9CDe6M$pTE$C9HMw#N0u-NFcwv$x@BdD$GJ+^$G`AJ z!QbNka*}p3{2Osb+`7Uy_18yEc>m&WATm#SdI3ZKZ#VfyINkptpxc?QBfk7=qopxo z7bRrv{8KAPV!=iC@v&pOivS~NfQ(p+!t<}qXh`BV_(K*lU0>)YH{YIDdAZ%I9;|+q zrhxGicwu=AResO!SC(RH2UnZugRW*j`Sy%8k+o@%>K@WD0Y9;##o#d18V4FG5EKVF z_W{1$-m}S$>q@F@6xVgAxQ`$=zyjRBHsENxn}6(d$9KZi7J7un zJ~QD0N8U5+9525!7tIfk3HusxaK_h}uu0W3`nqSZt9yidM> zOtwm`*cW#sFsY^Ao(EAVoQSPek6K1`i8Zhdx7%W#nBY4&ly6&P{*Ao;^~=wbfeZxb_QpyH zF0J8%L9;n*Hc*+PU{nM!TkG7GJ|-pb`J?=I;^FDXDNS(f&K+6hW7r|K6*NLl1>UO< z-?aDZQCs5eikOJdihSjFNDz91-=pwT8N|-*^Vvws>|gy9PG_;7*16*bS=yjPOYm8` zI?ss)H%bzB$O{pdR5R4Kg@&|GULr`2VXWlN(c2crAC5mtzhi~WxG`GwgQ=UokeQwj zcJb;@eeHWi5dE!fZLx@Hr38YT^jEZT$_#ag7^`p~-|J1aZ7&;lvQ54|s-cME@dIMuRlLsK$0d;XUNYQL*NIG)b(I4Hz^u#;bguI+-vj9(*Np3FAiTNGfn=l|L<$ z$_HTg04-!xSMHG3UyIqhvXXc&W^upXxEmwXE^BVleV>~jsS&w7G1Gge0Eq8fs~84$ z;}HAv1WD;Hhw_0AIjJ2HgLB6%2fw?$)l;@ph$^psAQAxggPdY%nk(7Qy|t#ISPmH1VLZ4NZgCxc)f5IX9N!k2QSjO)0*1e&%(^5XOs z`~&nU`r)JUllnl7E2fTplDjz^T1)|tL1}_F7zGdT+N0PU6-bZ{&T&Vq8cp@06P_h$sb-L$%bT0R=Mca)6ifsCSsqKHQ zW+9&K#Qq%^5tviV|6dgNU)IMzzDFlw`z~RFf^dnF_bR#cwZ$3#SN)^cio`IpWv>xV zMKNhA+4aE?+6gdfrW0Xx8XBnV?&jdDd)dDL=>#c<9tRikShQUx>Wf?3F33bpFU3xi z^Tg?+5u)Nc-VHzOm;nDF<2`K4mJv(k`DKY{gYwaPA+A9|cW8hNu$+j4bCO0V{}PWRZvx{PFv1vy8}@U4F|e zUG?fM#)2s$Ek8AThPai?eRhges&_B3zbX^rN7k^9yn3L)kh;eUi^clBJ-Ly6NlJ{B zvM19JMK(EH1vOZb1udS?8>=jcgMNLa?j*rlEw_PZ$>+Q^2HB0M1oDM$jD!8?XKbUS z>mB>Q&OFw%<%q^xZ3Oc8+<5T|v?c=`9wY;{Tq{d3E6_9Ct(=LFm%T0%VBt~s#TR@# z%hwI?+*RM{R-~HuEz%yk9#+Qp?sW)k8}3Q`e|)`%Kihr#{+}TB-h1y&DQyv(QZ-v0 zwkkT5qPD~yRkReff+|XD^wOG@*sCQ*OKZj65;H+0-{^JU_xHX&zt8XcFL=DYa-PR| z9M3}^NHA!6_L3)8bjJSyoL1YQNN=#<@M^IR-q{1`UJ_Hq@t{#@ZJ7$`z9pLfa)(r- zahmJFZL721Pm@9aN~^V>EWB`DgUTY~3e}P6@wX}fC`L_i1FkQB2-d507a(%7kxC&J z%19C(6@}=Bvvr~KTgnCazh>+I+){p>kJev^b?4&UALVX!EA4*_9)}LI=N|rwjgXh~ z;2?PdNQbiLOSOG?46mfS(VFbqg2Z-cx5Ps7;72IDJ%%MqPxA0|!aAR!eoxxrY8!BT zw!I)nmK$Xs!WXe7naJ0U(5#83B(N}R9T%^Jv0&gSa};;%^I)LZ?q=3fI?3}dv)px?89LsvfTUTUpj53nv9jtC`R2x# zx(%K%mYlvtCtun6PPFBUx;wWrysZSlaHX4uZ1lF#SnL=A2vmS08s4&j&7F0BPQ;0e z;gB=n+F$m&PvVh79DwxxG~g(cK)}Lf8&RTrwskV)X`l%lz%A6Vde-#Jbf+8^%N`)? z)qESUrWPP%+CnRUX&HKwN6Zwx#0J=$Rej$BaqYq8`$ zPby!4Tf!uQnpx16t8XP;Xo0m?l}>y0L9AB5?ST^L@h6gtbcTEZ*70@IQX6qa86PjS z03NI@)1qIMqkR1n&Mh9D>+|iSP%ESfVMf{yA1UABcj&OzxpoR$H;ih8(q5{#lxmm= zzPHB0vkMuNU|4h@+TiX&XB@nCL zn2{Md8iQ6fx=~DpvjJ0Fcu={E_Mc4YThQ6N(8}_6)cfB#Dmd$$!FiO*Gda>_6MUCg zIKuRZWO{>%oJySg-hv8_5l6&lgqQbq{-nNn{i^T()BPr0=!P3EcmYw@9qFlG^i!kO z{4FE>e!<)CIvFjp0Q#laSI%5GKc@{FQ&bF*>710@?TL+!COS$Zl^nMMA2xDe;7Qed zHyE-_y1lSP$&fP46PH*xBcz>3hyPMn>LjTR+G;2I z^Z_S9YqMP@ipKsn7D1_fi4ahD_4?P|Ie~3`SQga{W&}C@f*1QZK{fre{}a^CiL9ED z#x@GxHN!rL@z=3|{?^_R^bgXTGie}(;^D$AJN}s4K|R_$4<0OfU0J=R0@mw04k2qjf zLq#;NO7Lv_CF(&`!D)!JVQzapzooJ^{4}i397#HQ&oNk7S4DXJ>RzJpawxnxCR%@N zz7uFg`m7<@1W%F`1H7O1w;3Z1T@pcje3tQ+Bsi0TLy!dU*P z)>a_~-XDVVf0`Dq*V_b_Lp__)okDk;F z;WU;=5g^#b-fH8NX^u63_QzXx>-#2*~Z zs8{D3z01WosOhX;_w?_F1)t4DoPmkR;WQof6BJj2vrXy#m(Vhws?qR3*GRcL{^0%2 zD+F{S$pHY04O$8#%&`^;{9xDZEeeZQta`<_>rzsZG)Il)q}=zuq836mBysGG%FwQ;3qBmwROcq^O_vjOjnoVe{t4l8R-^ z8lqB?o*@T?HQtUY?YiVbfMFC}tLs)$y_hDe4N3Y~;I3pq5Cu)?_U0!>aEwa_h#=>4 zn=1KUdc{aon6dXd#({^qT2!~z?Rt%91=kly0lOVsdb#jTK{pz`6CGZN02W>fjx`bGk5`{ zeo|@bIIRHk{esZsG3;L!xu7?sC@kqJ*a>kGz}d4psJ35z^3wX_DO}P^bdgW($xV*% z2)cWI^f2JsY#p;boD?+Mub?2y}m-x7I^dmu5MmjR-3snfj zyM=HUC zFt8Z~-Hzir#WWLK*hN{C5KA;^W8_?KG%b4D_;9=@I&7$kk0bm9hed=vw5kSBFJEiU zU0LL_MkKK$R5Zzkt7KW@?KUtLUTIa|{2SAjJsmX4Xv>_r^trY%KK?5{(+|{EC`-a01jmNxDeypl4x# z6V$L^790e!ZEKbw0)#G8Xe!P-z5Rumpz@t*GR(9^O}QWF&-7go8ujk`QtIo~C$Az< zAXZf-8=jmx9_8cw5Jw(4>`kR-sco6vSpukq@Lf(bq$M9rQ_+e7FMB^YBis6Fijy?H zcr`E^(WJChG45ShbKprEpyM{_v~RG{>traG;Tb z(2?*_G{S&sOu)YJ+)(sc=oZO}0d{q&J04zvwDk_1pG+G5?T91UGpN20M`p6l2^$Yj ziQ5U zqhjYh+0${*yB2YW7`bm)>Is1MxAq#~_7j6_+&VLXbxj);?=TZV4^PW!=bwLwo1h6I zlg*1$YIzJ=0iLX~LqH7EK{qdmh&s#fyupd4I5@ zDHy)LReb??8^E5%@tHUab?&|y&QIir4D#;WALc5ajAOE=7M3ouAIP|Cl*{YXlPnf< zdc8!CI{Qa(1#XqR`WM;mRt8~zCv3(MHQBI!A+Y7O+RC?&Vk)x# zEPvDZbA?>1*R|tpaty2lc-V~v;944`0Bb*-^J>Tx+*)-&0%LKTu@9R#v1*z?922Xe zMZh=pNP*{MYV38*zv~$%TJbd;ybpLcRiv~rru64+S7$33&14g$6{9G64uh#WYJiKJH;0YjFxNv~1Z zd*LW>nFC3zm*|D@sa*Hqjm(O2iuS=7kQ(f}dT$1xjs@gFDJTu`>Q`D$HTuYdqX>2S zKK3kNDh3|V@_Uz~ag{47RypOp6e~D0uf6r{j_QG*fT@q-Ps7X9K-wMFOCqgV?*`F| zdwRLEW$b6nf=$A=B^>D9G@q(S_SlFr!~w#7oN z0~jTE039(ekt7d_lhbCG6<$fM+}(OB{Q>97HE!Ye8I&>)WAULrxfP2pE((9q@&Xwj z)TP5DxqqRkP@sdu+KLh$5I1?tPx}|u#1--BOS-4>0d#hCDPd`LSDC)~Ttd}6HuNQZ z6D*e8tPqw=wKU?iI!f_*MQDcL(PY?CG3NqbI~k&K6Uy#hr;A80ma)tI3wgN&M1!1Y zMt2zxMH#QCf0gFz7Tbf5d}V=;2s@A&t=0F4WtNTU{|LF(wtefyu4j@Mv-SAXDB8uL zu=f-WjWRbr&V8RdygPD+T_$YJ4Tmqc9W-nco!$}Wz+l{&y8bMu<<=MJZhNi;A7V6- zPi}1FGG@ERr476-r7_itO0F`|CQJ3|k!MIJpRJY~c6L(xZj(h>zfk!*9r`N}RQi_R z;%1Z(xf0i|lGwVnjbIX^MMI2FB&$x`NRlKW<}M)eB?eQ%MRsp@RTfxuKLKqFs0!+9 zdVWg5N3rxgf1ubVemJ~QwTP10Nd&JoW3$iGxryj&mRV=>p%sXHkqs1{@ZHS$GTd(2 zB*wvwKpL-!L(%254s0g2h-kpB+O))sGEG6}JtMB)x=&5!hL1l!4RinlHWSq-7>EM5 znRFoqa#Zo9*^*l_Z~>nxVepbiY6pTs*B&YqapL_N-(KHazp`phh%K&Ic4m^;Y?cFU z9EY)Ne0{!q#@10FhCzzYwt=b1Av_k50}^94H}oh+b6NKeW#V@L$wu+QJa(?pNM5P; zMA4nwa49-cjlD@Q1^vPUZ)jAZ^_bX$4xwUDLD6*s?cY1HUbsb$(QQ=~?-0A{isyMG zNQQGS>>QC{u)=VT@oG3vo<2TvKi}(qp92KG5Z#@J2xI?Ao!0$VE)UJWx^@mWN|*;j zLNPU>$pbV;1{|06_fv>u&BXkS#t$E;!mDZaCZb_bOIaU#AXqzIu;kUPR$-pw zpybUNYxIxO&v+3;D25|Qe85uoltgu%V9Wwq&D{)VJ*X3A!c54V)g7PF>td zaQNjEcmMqjU@mm*4;Lkj3l*SawZj4fd zq<$e={J3Eg6Q6%W*dfaIoi<>h}oBXhg4`Zxi zx>L<|u!2Pi`8~)@d#GG$nVh{D>!(tKR83y^JIo*5?r$rf});9iNbC?JXx00>kWIJ(e!v zVhj-sm%=GRxq8mP433y5qd=)#fGXrWRrFo-$!h!)=DsZ?^AwX@4xXF7yie&`u`)S{V$9z(x*(ibP($ooVj*b zm}cYK@kXGP8Bgoll~%($USH(eG@dF^PVcA}y+S?OF+gRc={mnG2a(;xnp*kJzBH?4 z$6RK<;%kZ-aK7ol7Py)W&-S%!DIXWT{663Z1y~m%f28AeXZ9mNd%ev7ab@``*4vOe zp9pPb_x+hY-OCQ6Xoz@`uLq_poa_OUZ`_8$=@%#;sI-1aZm)=d$?C|2p^6ibBKF+! zFWVMX{gyp-`NEKa8d71J<+_&#F}8J8E+OG#kNcPj6!<_E;%zR{#o97N&JlMbNdC4> zRbTG6h1usfI)5zNQfo2~oylRZW1HXLvkAYl3FRYFuoGIvhHn2UY5@LMm?{JvMp&6y zB?#=)v@|&fBZ(c~ov|7cag^A$SqT<}Qx;VjHR#-E>imQULj~;0+{-g0WnNLs9CY|? z6f71E?6*(SVB0nfkQcx71#mjDW|HZm-{{U8nRqIHvH&Ykvy0 z4yAH9i`Fu4+f+18=I`qF$FEM4cilxq41vwEi=7-4mC2VCQvelc@^T1(Fs}U_<+moc zB}%5N9j@MkaGP`h>BWdkqUB2cQI$LXIJgBPaIrvZ^;9+;z&$5codss2?64iT3DKu~ zapH}QUg>o?Nu;GTg%$Th1BdsIgkswUBeYr*WP%#ng1p(DV^KSP!@%|{SY>9NT^4to zMF=f{#@n3jL`1``oj#VvNt8jr3riUV{nUy`@1&@z8hDFboo18O1h`;9X3-v?0W9y5 zc$PE>P31ylqrT*Ym&Ybl08DK$<%~)y%bLd)U8-e?*u2({G&}$8lY=CoqyCG&NYaf@ zv}^ySFAnPdS@DphW$sT1>VJ&O1iJ<2y=Orma3z^bi_!{LFu!6USMbk;3uQntYlWYI_l(bq&4EIA<_9fG3y_9WT`PW{ri3Li9J=?S^*Tr@ z;02&jsQCVe#?^dHrpSRG6lqn_z8?UQv^!K=5T1^0^0^@D2}-8#x^t-ebsp8hTlr+C zMfv@;g-ZQRS#mdfU*S~NACpgI=rnqm=|)DJ@j6TVjF&YuuvCZL;wplLy0+t4?KvE{ zA71Kz%Zr)Ueh|;Zy%JiRC>WH)tSa@_)2P#^0HfW->}9> zdRLQjM6`N2U9*1SQ2qN^)dk|vnjZEWlVcM^1iloh_w-dde~);+5ShDYNR%J%C$m^d zD=>+HU06IaUK*tMfHX2|2x}FH^FWDY2s}lbUWH4w`zJ(D0 zYj5YP`$!rBUE0);r#S1uFt)h~%mZ)V(wvK90FuYs0+?wOWa9<0^G9 z3zYy!o;GxZ4Vv4JWmlqYB$qre0xYhyi<}ZT9b@PxjQ=No%HOhXJPNon{!I=LVSL#2 zD?%k$HCHJ9LXT?PY3kh98$|M}^Wb6RRb3_?mpiEu@*>}uQ(KIfd#o&CZ(=NuIi5ai zUCvz*x*OnL?QTU!W-lw#CG3PT!d)gIuW%f9aIBFX?*IZgO?xub^)oIKi;n8t&m2Jh zx5_*m)bq~`ke*KLpZJUSb(UYwXA!*OA00?IyL~}>rZeOpX!>syf<&cToy)_gPC!=3At?Cr3OHr<@G*!4IPoHq1IAKT zkw&O>-hjfE#kAtyM9TW$Aiuek<;>>q(sbI`CZveD+B7Sk8|GTXk)lxn)%Ef%HCq|k zrplqRl63raAQLdnLY-bRs|SRFDecPQMqHg^BBQS?f3}r?*0UiKpqt*ej+rIaIz3gs z!9kFnIZ1RJ7=gj7*2i4eq55w6BEO1KdsHMXHucILnjxA-VYG>kXfpD$#=sfDu5;MQ zPRz`0EYC;3_C)#bl|pz!lUE|RuoeKEWyWkAe~;Q+`OF|e8)-pockwPti((u|Yfqg4 z>Nw$E^Lbr-4;f}vD z(*@Il5gD;z)KPTe6z^}q)Yxx@m`Oau)AXqL_W1UgAZ2{pa{=38LH%6!*oftCpGkXW zH{h)C8q05Gn>vjcAJ5X0%N()1W`AnCqf-C~o~s#)8fpm_>e1n!5YMkP0yL718p>jn zm*MnZ6N(8p*IJhSWtm<705FDwYyXa${A*Dh|CD(i`K#KDI46j%zWO_CvJvibj?C@z z^KttpI^g5#{vVF0$Qc3y13Tifon}62Za!@KkQV~5J>{B|4En_2h85pQE520_liF0u z&wo8Kh7IJaL&Cst`P#r`u&%R0=BQf>1hNB>5QQ(3b>A35=~5GB_OUMSrjBKkf1twm z^d6O@6~j`0kP|dwHUfAF5k-korBlz)B2)^)?-yDD$Ib|9IQhG46xh?+I>zhL=!|ST zkvDR5vn$Uq&VJ8z55Kv4tt_UJ9Y)1>D(X1_!|_=$%X^LoM;fRLsLzgGW(#`huBaXr z3ww@lgGdfT9!ew)?&Ct%^NNeTQO`F~MRJYy?@YOG;C-64y*Lk70#|+T?#DvQQfS#U z!eRC^V<7?tJ-@FW!On`y)p>Gq;mJw+w`};j2R3z0h3NlFR{8W+)KmrK^p#RCS#UAK z55rX*nq`_-x4hM+|N8CcpfP~TIZ}9xs#sQ&d?jXmrNlLfOP&T`zdEi8bp}-njp=$U zsm0^CqPq4Q8{SnB)Skpi1|)KAc_mO#!YF87mC&ot238|geS?{Z2KpH_okLK&;wkPg z6?!IK8?$$pINoP;E7EgOEm`81CH0fmsBL=^}9 zzxrw_To9C(RG8EKZzEF&l(~%(kRCzBWs=O-y-)_n_2I1Q4_o?b0TzgK+G7Ac!ec8zU^+aj#Pzg^cJ zM8RA(IUZGPnV!?+qWfe4ZYjSJBks{zj@jxSEsiu#G`4CZW_-mm`4HRCr?coZFOI-V zOyx+`ji-zs+!bz>c^G=|e{<)*<*xqCLw$TXyduroDs2@NkP;p8p(j|2$>KJ{&07hF zDzuePFD}$FR@UlVa}P*N+fScv5Ui|Klpmu#hjJ@3%3qM(aMvDxr-RmZQj)zi_p@bY zp+=mzdxGiXaz>Nn02uc4Ec~m}li%Ji9&#%;al9Tc(SK$0u!$M)^5g?1tQ~#vP)HVB zg;4Z~!s8%jQV$rf3er3|Y#%ioNd|Hlz$%QyAGe-Sy{ zaTAiOadR(-1+;}^1Px06yI2dms^!W9ks{4xIAN0XUXt;|Wt*_SJ2Pth;?l-slheUq zK3BO3iH$hm!GVyrn9Ey<_D1ePbO7)6;|__+VL6O@7hOCuB)#`yJz3jCT(myfXpC4q z-3PhJ zU~G5c!#`$skAlMS36W&er#B*fLSF9&y~n=$X+`zv3R+D<07|O&YDTJn?PiY2${stCjgqhnW5CS(NGR49V=f@LIKBfohweTFK5=`>9i5D})CbwwI_SOwjt2e>^!KyrM(icUYA zY3O49oJNXRy5@_G@c;OSSbVSVa;KbQnX^BcD z8F7XTbwO5GXAjL47;ymQ$40uR^F98R6epg1^fwDh8a4pQS2dxWhw?T*@$yl`-^zA#w z$iAIgDj$mBbhdF=YS*4MEDE)=XRsCDR3T1M5p_?oP(wZPZ8&$%w13Z z$#cTYl@wCe<$s5(tKbKtXujMQXu$xPzYoU@2kKG)TkBE^8Bk$}jjQR`0T67va@Uzc zQ8YTPZ4Qotb)2yvJJoU3unH)GH*2E(5dSsuw!$;WIDF6?r|4CMN`e{ag#x~kTZBzt zb-!DqMZB2_3ga*b2#J^7lDt|}qOjaw^lb}ofY+bNSR)viy6a))*8Y+iVMRVz?njkGO!+hg!DQqq=fx8;vu38tiC(=(^Tli%VaSreeKoY`jRhp0SmX8vHGB6Js)DG6{|pJ4(;(pZ7N3M~{Spyz zdcAss3lQAt_ym_`3&#gRkY^D)70zu{*W8!8DIl%eWk$@+m zG^i8VaM1w$H@^O^(bnPORtr2T>uK!$rfSojp*efz0aKhlR=TIjrf#Uawlo=+;1WSv z%x$ZCv0*=@ltV>gD&BEYxux8Cv_MpMoA4#3pdVfu0uFeXb>%EkA< z5XihJr{j1s;u!rdKc1#~)L7`q`Nz}Q?l^K!jP^B5P*I)v!%I3#a9;6(`qO3zXKv}N zYCDrtZlWd9<{;)v_0kmOEG%wzMJSsK_>le}bFY!Ff_Uaz zey#kHSK(dH!k8W89XjMhJe8pfAV$35J%Wsrnb|0vVDTQ&{xC!!sVMfx+zIj7`Fy{9 z=81;1QT<0QCvj)a2cUmx<#7JBU*{08KM==X$K?gY-^UFFL_UHmE)5kB4>?QNg;Skz z$FgJ`&wFxYxAa2ns*SPUzC(At8^UIS?CemC*AD4+f+&)MxCkb0AA};QounJRx$3Qb ze=Eq>l79a-;fYTfvxd%8s9_G6umk2P2=;XfYH) zO(%H~+INl}o1SWi7C;otW`?xs1m#TE&x-19uOa4Y?0Gd8>=P$CvjB|>xAvND(PF3& zC*C*@d+I5(sh6=2q1n&aQDBzvu^2`3OX06?WrBZ8z7q(9-TZJo;2iqiIZmL5a%bDC zg0|_@r-bttWSSH~?6uxM-qDB*JAmLf&}@4*LQ3o<>{Y*>uFev&=XO8dCH*O==2xfF zeduW*AoiKZxcRJaLea#2(!-58sP<~2*@4;sf(1{(}(B6yAf+9|SFCI$MNfJdhy zBB_38vaf86EmRVrD`SqLZV(qS8usJqb!m?b-*S3?O7Xz!Y`w>J znG?VQMsF7J#G|)Al*MPY*s`NibUWgI!g&X-8AJW6ulJ#x{O(?M>0UDC3z}wrzzj_B zNq@=_MfB&bHtAoMjrNyJ8uvG&pdmBXz1NYz;X{;OEG&QKII8(hLt@rp5~T{L3AXly8%O?`wG?_1;%`C%PV`$r1{kt`>&l09@2#VAn&00i#6>b zfb&iBO`_esvpIL+Nm5+k$=`zpiQZvAI!>OmzdrE&0X1qZ{&}JKJ~`K))oc?lw36Zi zB=YXY`Ahxp28=eEXN2#k$aC|aGQJm618yfK7sX_w9zR5qp{WGxR~#Er_ds~2N1x`a zkUTC&ylAA@ctHE9?$w}n^*Rq0s& zR3_SxN^Y0_a(1GYXSd?e82f&vEh*F!v)T3v-bMamgNyGR{p4Nj># zWI`lzWcx(i?i$WK;>5uU8I$U0vO7m(dSR!S`!_4BYCS=?nNdC@L)q;ZFh$k)#3om< zUg&9Zd0Bdh@Q7csS+Gn55^fZo zP}V~k!?P$Kdr5Omtl_fa`N-Z}8I`9|PH99a8d&Oh1%8bwF{UNyAYBH)%jVgn9y9zG zz$7e#47-g=B*a=w=Zs;5`8?-sviPXz3JdP1Qa`8+?-yNqNrfnEO2K(cO+Ba5;W1!Nq@c83 zdR?>@nv#+;%UvOp9t-Pu0G(D7yU2sYtUhBN4ctbu+X}f#?sQ!JdU}Ug(t`1C6iR5j zm55q-Ngkqya2_!1MD*nTfF0Em8g_@nzx@3j@9Wh6&vvr%cJQU@hI<7hUraxMQ%`DZO zNjsxinT92%t50|*g~G}3J{4KbX^GB~vy{Q^d6-ilTZJN~#$bm%7|6a`=-qnV0$d^J zgFP_6F|hmW^1K~;dqGiUDW5ahH&4@=1UGdiFV}u-afq+;07Fj|PRXyijZ(?u+TIo5 zgn(XEo8mF_F73GGrK{?6M$EFD;ZLJ!gYpih6pI`E6xHnX?#d6?`=L)lwM6(ASloUI z&vuddu|zVz5{4<>3+DuL5#mn+;W=G}z>Bmu5$(?JOlo)Smzz#s>=PwVvrGtBT*gSj z{1;e%g4QRFQQxMA{V&ox8^H_-{Y1BGQoyY=2O1(P89-+GdF-&hT)XA0^Lnq!*Re3H!+I)+0A zYvJLg0)>k|X>L&l7*WusGq1Ca0-FOqYi%M35~FepPveQCi$EXL$8Kyl_ibnCqDCloWTt8F~bbz+SIje>f>H(emis+SQg4>6>5 zx7I;7JUh*jf?EHBE0eM#g;aHV?#ri{H^@x(vdWKNC8cOXk`7Y$FC_A$(7^QvujVAl zZBk6rTo4_J7KoyI#N;4Uv0Q9Xmb7$NkKGN_Y_MSiCr1$|>Jz?MvNo?8kMJMR>m{%R zT)5M@5ha$1=ja!Ct>e)#ZuGPlEy^9m7tQNg7{Gl0mc1U7N1oiYNm`(Ta@0p+XWsXk zeii&6<`Djm$@pJgL)nMT{|aawnVg^6i7e;t5HAYBE5xRYEDz7QNm8Ea|D-RHc0D2= zaq9Vf>!xm2O;ZoS--i;`2SzMcq>?)vs;X%b(!eLOC@>T4ZDim|N<#GfXCwbv0Ye4Q z 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

CtNP#;876O2yR?7UZhy7GUeqLLZZ947 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

    jsmODUE#Cd-L51p+Tk8km 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 z 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

    qyNMeZat8uet8l?mW}PJH`f% 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 z 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

    b)U05Sv%$z_Zhx&3JBHs#P=pPoziIHe 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%0DLjgvdACp+gtU@RD$sS~+7c#N{D7ij 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

    c6*;OTUyds%h#VRz5NmZ+vo_XdiACZ$;HF0 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

    V+P^Eagy&99RT|J@ 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

    yRE!s1(NM&Qx` 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 u(Y-g^X6o;tT?Ye;7&)Y7(T#1^!lW-j68> zy32kzDA;k&Zsp!mWmKZR3oq#R?FUrC9G}cIuNOym8;`mt#Tx!DvJ*VqvbaU(Bwa?UT9KrbcvFi%_#}SlIqq zmvI@8!5BU>j2)n=*uGv=A6;xERk$X5k4`l4@Ey#Vl)D;shjlV?|IfF8Yeu??T}R@- zI+e5p46Wuv?`{SR%RV?RNa(?RXOMCs2_jh7Q+(ffdE)_(vhAdrZNRN4teo4m|I=Z^ zNFhYXli!8#Vxdfh1Ny*3rxjv_*AitB@DL?8c$K0*oDDmDa0j4^zpD!_NfOwj;lL-o zD)l)25NBQyF+R*SrSk2P882(agim_+23qh%fDl}9TahCDF>l^#;LJMA(vx63stb|M zw&>QLj01$BPk%ALXA9q6i&~fSytp{Xgy~tsBqL)) zYr+DX?9xH|C!?WGNtqrx*sk(JhP4 zIBiq$>r1SJR?o2aB5`qgW@*bol&MB*q_0xL?0@EnGUDq=CLLS~YOA5qF+wf68HZ^M z^EF24m&T(?QAOS8jo`P?7$hSyy~G=p|0sOu1L6@+MoTJ=c&_Ua?Vq|I#u-e!?lG_a z4LK`aIEl|0@1?Fwzn}ZUL1*@u7N^?&oIYaYdy$_&zs>gWaI3XFG4K30`5GK);d?(O zouXqw^;OrhnPzDSCjo8|#ibP|<;uf+3Rxq~`q@glQlfKaSU0( zi|8^*ATP!_pB)i@X*34c@`({-OPShF4Vv9j7>k>!p$htQ-9i}Ph~~tqjQVek!Fin+ zu~HhP(Kp7^Rj{phh#IXeZ^X*!FnX66<$4#HPI)u&@Mv!#u}@Tj_XdyGv`Vz$Vunp; zk(F^9LrrAiEE%JgZ!d9#FG2OzT+ry;7A}=z9veh+IfSmRWQEA0)4D?kgXWLcd#u7p z+ZM>fk{`Vt{b0_j-+Wt!<~rnhy>??%47p?ABBBFK95^Z9$Lzeqy9bp697fnt zvi1_#SYHM~oWoR2evgiRyN^HwZ|0C?^J@G- zm*`VmJIHGj_xDc0UDx~aE7}^tac0EN2xJ7XQWNMh#2gG&VM`&uBou@2rYj*Reydql zs2KXPYjO(sdX@j3iV3*vF*op55c5ZL?6j{5)*E?;)bB*1twDr1X86k4GMd`^#R$QA zVEjZB)4eT%P3PsIj&2*g0;zwTIa{`7T66b;$-;1kqv4}cD`yBgspF_^6__@Di2W<25d1Cz^77&LxkNAvJkQ{OO}<(Ys3`!x)hQsC_)Sy){|=Wo88oxq|6Vpe&3 z2Em`U%>lSi=p&FqE$%|1pT}RMR3^6W=}edO4_D&S&ZvnNhzCac*6k)bH9r|1 zMk6HfnLv1K&_skHwa&&GAgE5T`cdZ0zF41?Y;o%0ZJ7p;R)TSPc7hY3o*PdN$IMsf zM|76{?rOC5xWl*G(}+a?4N+!TQeEnquF7Vhvdw7eDjI&M5_?>MxmNiCJ#>ywIu@(SP9LULV}(^7f64n*bf6UV(2yP~VSOT%0; zp>T_4e?{ag#UKMr=EA$;qBfG`@|clZwvlxAb%ki{WL~8Pb{fZ(bcv%3Kq1t2v1n6H|yZqX7G7G zZ9<*fMWJHJpr&>D2BjFAS!5qT%{5nIyhDz3pA}gt6UvOeAoJsSa#7Wo#HYwObjBL( zrCaea?BJ=fhciXi9}lS}=E-!*8z_Zx#VG8PI)bCCq>0rr*@O5=9UUwD)cB)8*#CtvTNLzKxa8iwjrzB zaNEgW9vfCzYPzvzb24=8t+aS8u)3>dD|@$nYZ1MhYUv)mE4d0A$j{B z!XhOi6>`S)e=}hE37}gBHRb8-MIG~C12syargZ`1a7F|SAqDAV2SkvOgNPLg2sImi z@b=bwIqb?NL85WpAlMKXjk#X6#&ua)+`&1ZU_z;l3=D9K!JRwlrGc3gpB^({cB;OO znZ7muRS%2Q^rU4HD9_ty4IJ}ETt7TXZ7V&^^eU>oV3YSlKrIu`Xh(m>!A%LgPfG3* z-r8iv4(TkbxjuwG9YU%(JK2+wJ&S!k`)0sbgp4M<%B6)qSbY-ypP1UYfK=ctu)DEi zCM9Oa$)tx2I-O~wYHU##2hyT!+<50sOQVQkzW!oRz=HQA{N{t~gmlT8);H595>QiJvi=uXw)rK-qewHq!pO z(pqJ32>&a^kv508hxQK#LoSD49j%YD3BN`<=gwe3m*HVfWU7)1Je|S5P&s;_f$;aT z`Hf>LPBBmSBQkqDU1yf6-G}nzVaSS}i?CVKS~kOtqdYN+nZDeT+dQh9Dj34hqDW#X_h>g1*$Exs?*Z5av=>DS?_^Q6bK>+fvP+kR>Ub`*48*9b1(N-Blo)xLY0ZF-ddY3Hib6=C_2X#Uc_KJji$D0=_s zT>WT5`>e9}6Kll%XRDtKAm(`@CrooC&VJn-5_+xw^9e433C z5a}p);QCA&N!sh~kbK>Q-k=Qx)cR+Kr3VEFLzAv-FiSfGqARVKq}&WBDPRtJ;`;xH zdJDHE|3B=T?v!qj1}W(rNQ;!Hpu|8#1izFZ4FgH(l7`Wsf}nJcZfQZu(cJ^a*mgbp z-Ov3T&p)tZ$F^&q_vd_{=j(Jx?=olbAr$FT-gXJJ<%jZLI2m9p_CbepkS;943``6O z-Bxx^0AhC$WMof6l86-b%V-p8)8~<*zAl4ng6f~K7WYdZ@#^Ly46xduMciu4^l7tZ zC=F_1^G0+g>n!8av@BVs$KdBMrb>Vk_OJB^}6Xzt|#DAt!|h zNFIuFj(f9g&d)EjtR{2iYp(h zdoaVm#$-O#j4T#359tR)h5lBMrC=bY$k_4MDB4~8nCs-9*xBA5+TY>P|E>H0c%MJW z2?=Jt<^PRI(7K3eCVE~5{297V)n^bx~HYn2%=vpdr_K++K)Ta6Pj z>2D#-R-~!GVfiNTKKUJN4-orsDTn}l#vJUY&2;H#xx8r^e<-Nho%K(eg#}_ME|WU@4|;A zW`tJ@VWzjt&dmVc{>>eXfuFZKKH!hFlYLS;TA7^pq*Ds{{^b2K^6~^4P+MMfFL>&X z(^Kp^BdC-8)9?58?W+qp1d~CO8$kOoNPDVw#x9-xfm0KB58aBh;}C$yOOzpVs9{xc4nWXL+c8XXUaC%DN=+ zhRnbtFZeT=CVQ5xearSOhNyHyEHl@0UpOz*TnTh-hjC=v$YJB#2iNSiOwyqJM>F_^ z%9Q?O8%h}zWq#6552o!{uHt=9Sph~Ih2?+Ipa0j3 z|40Es%J|)E{vJ=EGthcL*ur0k%F1u2FJzfiR=VX=VJZZgzC# z07g6?{wPh#e9`13mX>gEv1($2u-=oraUljf%MH;!7d0Vh*?=HF3y`UgQhFVvB#6sGL+hDKxbbNgc|!(qzEdUGaK2>#NQ^cd~q?H~s58 zt{(^LKGl~Ts{7#!-lF^}pZtcyZkB{~TfO%4?soJQG>gj#t)ClSZ{EJ%5#e;xfwKqQ zQ0TPMT$KgAz$8OQk{WJ{#=U*|A0UTOJVpGUK=udtb>vRd2CinsA@KWr{&*9B3;XK$ zy(}oNBcbShBP=7zJKcw8Xi+|8`Y{jzH7y#a1T6H1$OJ6e?ru&KfraeLkKiOOfWsHa zCy4BZ&@hx0I3gx&7wrUyZ2Vto{xV2~;bG&ud}JEF+ub9K9;GEq$tRphYyJ(+1S41$ zA4+IbY_2NYI%5@3mSv$LzeT3h${@jC|LqY%Guzn!rYql+gsNob0&ljN!uF=_YRMmj ziP{&*gW`e9MRrlEQ($qz4l7F?uw8WyAggxspAYR}?%{`wHjZ~+)TI%`Hk_`Vm!e7H z>*B)BPZss)&LL+rph()jwQ1(2VmXRuN5fd%Z@jJeoE(AjGa+3BQh^^5qu$~C&H%W$ z;_Plz+DJJ5xs&}H>ruuY;zA8#A5!e4%LoS=RJp2fVfrO-n60Ta6d$`*sXhWCE<*6w z9`fJf?tB7QIB9P1A{iHFD}_mvLiRv@Q!o?byLG=cF? zihy@$6z{u4pJWD;K+O>dIot~Solnb!lc_9H`68Y(b(J7+9>=m_URe?4Jj z=teTM^V6?RwERd^*5p*Gx0E}+F9*@18xinOTlEzf&cN=*i)N2kL_?QFXGn*o#MbbD z9-g|_FZ{*Oia|bwiL`Jol*I};xIc&X7BYK6a|_5^DXs%=E+MwpkfZrx3@(*rQHc^n}!;xUIl1c^mF91!D%@z>of&@r@%8w)t_ZI^<>@|MuY9^XM zdN)3^SLdV*#v=-`W=!{MwIq1OnD?BXHTg}DVcTal73b5n*^slYmk(agJY{%m`Tpr; z2D-%h3z|bfNpY8`CC(>UtCNJ?ckD#fN86s_%s>%ch5ReKj&?2) z>%yps>D_yJErmnoqG+^5PYeBh&aj3?F|D?vg;Y< zP8mDRgFYM)wmSbFR3CA8d;p^|YKT#iyp@&0}?EUbsL0ft0#hVL5sy&@lu*EK5<{khYmV!R;vAf z1PQ?CGuE&tf?}!ppa?=<5d5k1Kp6#L!SMSVO@F*(O)i2QjeD5GlJ0ogD52IdLEkH{iT91Rv6ipd@>!zk6dwM6}QYH)V( z64a!i`nAX^plELGetyBlm~VLi;WU<~+g4@kwEovO7o^ z2T-3~D42EP1-@t1YbG_W_I&u;40_`OgF)~ZI=dwEOmS1PvGn&A%o~o&C2E2nq~ppf zngoc6TR$*6<`WQJkDtXjP?GD>%uR)Zy~WcabY+#8EiZhKzn5wFi){C7AJLFxWL85A zZq*=8GbL_rp$yks6Ufduo5`pLOU&vUxlI7c zspmhR_$?oBDULcn&JORnp;GvNzzZ~l%5HNe46{9+sTaD6unBb`$zD3 z$4k*YWj?7#XnP8z%$zOtG?vc+0MvXiGY4cB8ZmpY9pW_r)hWcj-_NM0VWl) zTBDsT2bP*)n$BWz*#M4`xztYQ8Rl0AO~7P-4aY(w5TRkzhRfrZuIL&SFG&*uLe-2c zJnw76m@b1@kCmwr}ZJCW7NPjE_ojKIhGsB=e}HFgNCB^ zXkIEW|C}-Hi8$7=UKgED4kt8CaT-O_V*7v|?Wfj4EQUbqeJ~RC1fxDPMSLO;5V*yl zCN-X>EPjth(KftUN|T(i^q}7Apq}uA#$Nu77}^mGJ*L{kn13RhGGHqG128NZ{cQ3FY4fxFCvYw{f&5 zD{U@RHfRAqQ+XPK01J1OOC@x{wv2pb^`47r12MTO=uV?W_!phE~LU=*>I_ zh5TwB$2dzKOMYGJt_?KCFd+cSi*q2(-^t6mD(XW(r`!hQA_n>a%=y)uUTJ7H zD~xn_r5e<7#3X;F-529R`rTUpG{Wt&zBr%D#t7>J-!2z zb(yrCXx!_FN2pFO!Q$_L@Vn=EF{j-pHv!x{cZONiSQ+A<@Z%l$nx~BF3*KGWijegA zFs*-WMR;zInr2FO@T=gh_ODpR|NJ$vU#;hLio5eZeOmk}sy8WcG`xNkeN;aB)NYXJ zDX(pJMvHzM2j{!pdn<13#s@JnOoa>VopmZggw+1=F4;sAbTU2O(w0ZPTmQcHGdS<* zCt1!rz0P}b_Hf&4QSkTs4qxXvql*T${Se<@-*G+Du`pg+Z+#)$1FzNbJ4EjLHghz48+kpYl^UMp;VOjb#2F!8Ef=2>tVq94-5KbF(qju4P75 z&)A(4^T`+0$rrEh&nxRdcS|*0`U?-+(mtDIWyiCT#u+X$rn_XyU26JlN)8H8&2j!| zGr_14B=7J~6w+{jO5-e62a19u4OADp<*)Mv!ghZY5sxBiZMl@i>sc85!03F zgofKJ@@Er2qfZumD@L{)++ASM(nO@&wq?LwHF3r6=Wm8nU+MO!3hI(N2wF zDFB6GwVRbwg?@M}Y{)G|e(uwkZZ;+4a5r_K%(!P;!|)PDwcKxB_XtA>D=p|JnmK>& z0cZ2MjYCzkHnE6+_!@qc-pOF9RzA~XCi~<+WSCBu9GGga(~3%I^#stU{UlA!Sbrd_ zq0O_{bQu%jZ<~e?eb1=J9fybpm@|HHBLm(hcD(5)o(Zh8QYq(j`xi$}(&B4+{yQ9bKAoLA- zY0KNESy@u~u?>lKNl_nOMdtS$8^iQ@NKX)W{0O=>(EdBmK{{jpPn|N_Hh0-2$YgP^ z6f*~@@~_V{u=*C=f!ST;f3J!D`sE+%w=i6sJ5?!X6qm#)yDV{693#)XuNhtrAS~d3Q=z$OqA1e3JW5<5_ z>b9x%0^%?3h;M#t%FERToCRvO$Cy<)U5M`$C&ZNg?DKG~ZJRnD{Lczc`RiZiZ40x{ zMi(kmSxmh62_=>dtxhDqG#gBv{p!sUofe2>MgCTScpc(`v&n6|;;eO~RQKq^eSU$Q z2X!QW_VCLAZP@aYae^;o*5Fj^n8oh+8Ay6RChn%w?r%`X>9HR(&LuN(>;JXf&J{s? zlww4sa&IiRFqLuvgbsQU%ziidd5>%6@fh+(!Afb&dVQ(fokY#>C%q2ql!Md^(V5tb zI!(TiD#DK4{4rE)a%~)}-3bA`f8)TEzDa#&$r>x7{`H4%N={RiFz)Wic{_9lp}*-o zyN+ZpQ8e5lJ8*nYsR%a!a`+*{n99+Rf+Yl$`!-9h(HO)3s9`LFq1zteL5gViy$Q0$0@nh9R_S^+Xj-_*q~7F%z;Pb|DSA4ZY&lCa`$&tHO_I`${{&bO)? z$sw0NNp1`Qm)Rx+&l$Ox#dA$+B+nvD>R$<-U7Jo_sqfGE)AySk!d&E~g|m>+zo5V^ z@R@$lUsx6uV7+y1XlYZ0leYE=o6;l>7wB=hrPd={d7^Ok5cQ&gmXvUKzW>g|h^eD) zG552tZ}3069X(Ks_oh9;ag~-}P5_%Hgb)`6i9K2y*Gh*CV|o4oiapS*HVh7Pr2Zck zW?T=UPI*)e>;UqpWOXsqwg`YlgSA1KO{@$s-ju3WTJ|e?AG9}gCWu_CI0v~Yt(9wF z!JB_XM-R|W+INr#l$M(s0A8(cI$E^MVapoFAV8oDYlSe13Q<@vFDwqqYXm|@a!;mp z9#5gyzAT~F<{VWuM+oqfu%PQz(jW5&9hbI;>UX?_5t&;Xr9U;|`cWSJ%Kg!}0w1~K*OiZ~F**lFN^<3yRkgu96*%-NQnG8L>xjE`ojwO|^QCK{>!F1OztohYk{n&ju32U?ir&Q_( zxN>c?N9ZkOTaZJob#Gtz=?J^GioXPy$zju1+opJ@w6!uCcjSIgF#X2x?3x(xIEb^m zHM+Uw(hK$RLn1iJIsJKn6{r+Eo`(dFNr8- zriWlXhE0Su7G6@+TWdaTB^@AQjHOSK{^56WhSwEEzH#+C!q`3&e}A{f`>gc={Gq2o zN{_e4D%C&ZTbB*{GfbSQ&f$M#TP{kvFS&A9Wd~k=>lU^Udmnv6ef_c~#V+Q4diY?% zni~Z^WA4-7i+lHXzNYrot?2qMnT}`@@Ye}wtJcJ4hgZrRS%%)tM3AHr78=v1z16o+ zycIGB$)pIGNPAYb9vhH#{ZVuOWFhg*4mHw4bveH#+Mg$PtFm8%noM;Z%--{(zGXfu zo4e$Y9w-Ytj(v#$EuVW|PT36xY-tPnKlv1-hA>{D~G32mH%G>ei%ExyeWlYU!e z)fApD0(TL9Torpf_gCZ^v_ZM1V%@Xp{pvOj;~{bl`NPt+uQbfPKvUQ!jMpFg62Q;5 ztV*U82R_!6njqbLibt^^NRy^?!P z4w1-APwvq;yhE0RLd6Y}dA%;3RIH+RX42^7uU;o2^G;)eg|Df*j|S53b-OsuP=)-# z6*2Wvm(3F@nopA7zgVRAKLDsE54R>%Zv2nVoAfO+LQ#kNwEJ&EOudIppu1mUB{J@rcapV9Y}%Uf3Iuo3mP8)IfF)ND}82t!juF?%%&x1oBSUh6%q_g2&K ze@i~ZSVig~g~weab#`V*TJ?3cWO-HBX7ZDk7}Q|T4AuD=B$oHXmd{+6^F#gHiZFyW zLBcr%F^L2<)<FIDoh9%|6toZAjY5mFuw?lZpgAVZd~0zmT(g7v-Bd$ ztah*K{qZ0D!y$Q|_(N_XM2Vy3;EruHn@u)oDH^hZ6q3Y z8$RaGhE4>#Q3d#iKUdMc6H4`E8UDtg=;K!ZAsMgP3iCdEb{OW$f;=6{zFBFRauyxR z!rwlN`4z}K`m`G|kTnnS96N&yvM@3WqH81g4bp^er3jXjf$Y_Cyi~M!+ovEjiP(pc zA&$2y$zE@o_b8B3fzg2>Z6W~k9u&z_n8+p;@rx_QQ)EWLVH)PpTLS3?xLp4hp}A4c zr}}F%CxUi}T0$~RdJi38Z;2^=QnW9TqF$<@@)Ik-rP7>bI>%&Atj1Nban@u!o!wd) zZ|(r2rh)u>P|C2S3KyHrA|%-fQf>>I9Dm*3{cEFfq$99qI%~pPWwk7m=1vgSjfOhd z779MlhcXo*A$w$Mk7ts)n6V6zexF%aDNEbQYd<`yIHPD=X9?HE#srtXwO}OH$YWs7y_wbz528`;@((oA) z&cD;#ApCkGOf#&5@b+2}NpfrpaDSypK5)oO2!sxWJ;go@4oM0-Mw`Owj@xMn1_XA5 z716q{6j4_h?tbu(`Ws2eQ{1b3J%k)k^0Z*P|D)+D-~Y?L-{-DU<-on+{|*Vx1@?Kx zhWHg7&3uR@uSy>pu%DKZ{DDi<*SAm z9p)kFkXL<7UuX~GFDC6Uq?6?By^_iTY*<{93T?_vQP=BzxDMI*JlO+0Be*#LI39E@ z?ZL;Ufj9oE`-nB`IflzaA^k5`Yfc#0PS8KBMH578VH5={#9}NEJRNctAEVzQKmt z8+QrLk>lS)DsE3|{?|QqhvSpVRZoKt-0?MbJkEh=D!(ZG#Ay(-TnwtBJ1uCcGX`;o zd54tjb(BkqMs1?Gx23|v3!>XZC-C+N4vL7`qZhq2<4DFu6PwNy+ae{9;=#xEiAb6x zB1Y}0s45WoGW@LQ#lic27G-S}^Qs4Qoc4@qM6ZTLm5B3X2>v_E8}v707V5wC-I%}q zt~Z5WWcA14og}^1{LGu=m1f68wrwJd^l@@5u;Lgue_c* zHJJ+ipJcxBIDam38Cp(FV{xTV_?2uehKFC1HFDR9y-FS@(WupW61~^&>A~ML>QocR z5z^Ms4J3``;4RNQe&?zNdSVv7En`ak*`dCy8J=G4W&G>1l;*Fl)S(NQg(1)P)?sl# ziT8{N1@22_5ZzFwup|&rZBnS#5Y2XuW!Y5J!!oa$5Y~~9)G{fFT{2sic=ii8rko>^ zu~K=YhONN%4Y&|+LPOMXtl8pe&|cm&jJ!8!4=OrX1hMm}V@53)YfM9?gT@^%miuC} zWKe5SyX|{rdusxoVb5PvD~-0{*<)N&yW>+6YeOvDQ~Fd!Vm336GuAa#Lsn=e)tcX~ zQMvlOv}Rd)x$rb2xh{9W0Qz>tMj&BS47vl*2op|es2y-TIWO!NsM=LLZyw+|)jBMf zk)W`=%&I7SJkPb~D}Azq=3Qq(lPr9#%$;Hk@M&b}-p7IprfUv-U>_EY*wD03BRfAx zh%6u;Cv}Go{K4MbJys>k*x5F^cEBGD3A@#xT+4Wi^>_$G)oM$hjrBVsSu|RirG43z zXoUqkj-7|Zrc8R#+v10y3^J7I0gv$9OHZ<1 zv!8;KPAzX3Bp;)p8S|cH7t#|c_X8E2grmyP_T5T#j(+AOO8$ESrXQv_?{vbFW^|Nk z0DZAZ?R+r=q+e>pg6)SdVd0D556#C`xg|Ray^XkLiy6}8*z+h3hdC6-rCUkXU_Aj% zTcL45{=~q!qk+yhT3W7*L%9DtyOA>weaxN6+j#fwHODiLUl$)nzNi%^%kF)P+WjMF z8QW=DK0Vhdv%Lo7^QSZh1RQ)`>JYWfQvfkURxs(@`z(8Uum53k$az_qbYFtd$_{aB z_IE%;KWwI>j6!+}3%!PN;{TS8?sgZxeTSV)|2TZv_#RH>pHZSNtF@lj*a-*u2rq{d zTH#&SC)K9b7F@9g>xCwClkY7>RL(=nOO;|`yfoMq{P&2KM}8gub-T=~BJq4fK>K}! zMPF)7JT{+{KR8!@=6qnO z%IM7a*8nKh49VpsIT}o9CEEIB%EowSdYEVX3B_tD()=S91A>G1)id|U@Cgx}ESR%VQfQ?j;9v7zMz@2n*JdHpPWJY z!6v&Wd1(3PwQ{WKMlWtM>l+b2#I-v*F8khsra=Rnnr@6v30VF7pq-;l%VRYyH2#A1 z;_AaI%;kh_X4g?B6gltm(5YyUjS3)NIXX+)Urm>aZfF*^*(eQpbyFB@UbVS;R#K%ul^cP8A^qpE>$rjqEtVhxADC6ugV=V;2PkQ7L0K4N2oe7dTNhoi*uzqogdA<`IA`Ssa77_<@) zJ%IfqF_03m{EThS`5=Q7w|@!P&I4J;JiL1UJ6(ZsSz5aw6l8yt5&*-XF3#HoQsVUf; zRBZW|?MJ$GFFo4S(CTt&xXRELH%mEWu&QXpHZmQraoioP;SkVIQoER5?0f zP53Ud!o7*H3qw_)%FrlU>n@|8{Ie5h8}|XzwZ0%xKPirz=KWJZ=XFcY1@IgA22h=^ zkuCIr@USg+LEc;OHr{*bG0+X7Ft9pe6|VL$bP*a*Md;rOvn;&p38JAUq3~<_43Cdo zz}(46cd52WDrq50d-`5ihs2c{b2vPCCH{*^rdNWB&LJ{9k_y=^Bs<};Ui$MfE3F+3 zTW?shL#|$5$B-NRJH1@SYNSfUZZ~J1uq0JT9wYsO>#>J6rB&HkkC-SM+cY$%v^EG(6lhImUhq9*kz|M2WhERy?T%9RdMU_4)`2#5cAc#ovgN9d5LX+ zl(IkNESExG?Zy2Ks?@G9y!88BiJ$8p`4iEmIE-4v5OFUHZU|Yua~3&PEU!lmIqB;( zO#`|F=2qQgDW&rQEyZ*ruYmJ6sRSGfReu<@F$pvn=VzAHfOv4d;nmf950Z~6jE`#6 z{HFOX=wKt@r*7fJ99w=|u0@RdW_}TF2GTgbyQVAe4*gV8gJ=gJ*b64J`))s-`jGb89%zl1!~EX*J*^-%~2eG zicha)zII4J&@7q;@#KY6JJc7P;V%?GTQ0RBXXMDtXV$2p64Ez;Y}0qtz2)}- zD{X+1@l83!*x7To@Ce3dQdf0p1n(hTkZ;=EkAnHG_1PF}7r@t1&=#CMqq27>I?4Et z`zMy*_E+fS-vHx2r|x@_ssr>dMsO%UtDNo!7HH8W<|)LqtJ-r zaGseu97e8Cu(c}G(Z}~z=3*A2Xo^)~^f2!CFe3;g0Gi)opc`cJ)8bd)E9r`-bLU5& z94u7hghiqKD#im-c7avxknWCk3Z|x*bB%@sz5EZjq1WNAl>Q|=?(U8Ig#Hakq(F_QNK_3r4 zB#Pg^K&6FT#W^e@;_AlqW#Dnu#Ox;>{^9)^rn4nUF+U-I`- z0iA_}RcVc>Qv&SwRpN~(z`C1cYnc7QNJEfYFmz^1ZwoXSSMU)I(0Edynu#*-J?Vx8 zmCbP?K}FyzB~vAQOgv#;>bsyY#|$gdB!*ckMvTRs>@X1Mad$_{C8LtAyRI=RyC`#Z zuEv@5ii-B`T{0>iPIeyZyVInxdiIXxiqn%Vq!_FRwi5t<_0Q?b(Axl$1XIsuO&rsg zN|i#!)HL=~n!Nw}`2rEcby6KXaa;iOCOf(BD0U1-BELxQHg{ZWZ1&_pDuilMu}DFUN78=K zD00#3h2`Iq$$YOl>$ek^bbSMi1x*o>_#7?q%i=wcan)lEpPEtH8lK zJl3HI{9c<1D+%;621rHdzlB6yID%BJ(-qH-uU5phX=Pc_7HtKpsT)Zr6}^?7P>K_* ziUGISm}tb%~OP1KiGMmXx{Gsp0+mEMq5nygK4#aV~TRQuqfBoP-k8qwBVHwLL}2jb4=_eR?UnAuDLdWm0@C>(WHT}k z4hh#7fQ%Mb9x?)Aw+r(Ep}8F$Ygh?8n^VCd@^kV~zj`c=YB1Y^cq#lA`hDo=I7%Ew95}?bUervo0lKNUGscq4S*)p7ZJh+$5qR3dRmU zsqSPoKoNOZ`&LpbdyzHj8Y#Ns>jd4%6)ECIv z5ZJ7*ySVpG?^z-K2+9ynqImqMv$XHaSJiyxQrfiXjey5Xqrx?I&zN18?YVjl2_xDfl`fw!Q#ZZ`6 z*MYPiii#wMv5t7&DG~X?>RPw=ONK?~RRUQ8XI|2QO+Y|SZ3Lg?yj673&G>XUsB?cGZH7np88DZMQt>+4{X z;fIb>W8a_65M8_-p>WCKdTxhoy#r2~SB_6Z^D=K0ZXAcFq;AB-TkK8@IyEjrDk+B3 zKD~!MsxN~tf%>t%1(5Xuq zv{+n^E=+fVVua4_jj21Q(i2QXx1rJmKAibSv9;#00rLv`(E4ZJp7*ACpE^heKrCno zO?oQ|WVQvotp+ek279fPM??pLJm3q3p)fn-Z~BXc)+$D)vodQvMeEN{p{|%x-{$bm z266nYhi%XP_i?R){;e(-bGzYvTTKjEr>%m!_@QKz7mqu?Zih5zbGkpN6Y(@8viXHH z;V>nA{>El_!H$ZBXHe<1J>fLDtzk5)*3y~CpSGRl-aw&|RnWof{hWp1t*~JxBZvicYgQW z`<^uzc3uvYV&nmq&!^#FGtBohLJG?q#wgA)?s>Kg{ZvSL!}mh8%Zz?%Ra9kO>|F`} z(ye5v)XNvQMC;0DF!GqY3TbyFj2f#S%YvQ7l?1_BzL?KgR0Chi7H(zOjxa(>(p4rbI2m<4=rxR;}t*7hMnwjk)tztn#^Yk>v?Rw{qQZ+meo>B2gJ1+xD`;%wujeE_WE9-4kfSu8% z%Z-NE0ej{5h^PnHEaVUq_AUMiW-`df^m6%O$UjxFHB}h69Lk5w3Gpyan zgZ7OdlS{Y8wf?w;QDv+{@_hCo3I^a0@mj(T%VEcFidZSM&mvc}LZSifP&xrTpg88` zMk6)?GL=u3XHp~um!}KnkPa=ThI|^Qk++LKa1i z{t5#L$D<&ZbSVURs@(12UgBu|`9O^sfY3=I*-#=j!Q|t~Pzy1Oa3JB?>DOeR!gEPNPCu;F zs(+1c5d%Lt3OMC~-5lbYEqC=-OkbUptb?F4##iPmnHL?9yW5p}Ae)V3qZ}i&_h+c& z01pw&LIYD2IC>7W(EGQZetmX_z3JqD+DB&)REC!a3=FEeBR{pcKh!(+J;k7cV5=s? zunBeF+>5x4!|oZdPqDXeOV1VsYIOr$E6FNnBaDX7A_cG@lN`Y_X+32mL~ilne4Z8| z*4YT1v<2O*0hIPSs?ha3fPNo2Px-3XIQt9Gy(Oac=Y>mJs%db5eVrO4oW!NkgSg&< zQ+^nfJ4q-lqb&lsN!{U`ckbhWwjf`WE)14(h;`+)S zh~SY&fhcVvWpS`3$Aa(EYI+b_O-VOd(x163e0iZ;mC!M>e8OgmLKUHA( zK>-6(rkLvi-7{T%Tp$M*-DV+EY|j|Ex;lfs!XGmg&AJh= z6kzeLh>q(^$@Jv?sj}EfCYbTF$%$Jzha{zk+QW3U(nhyVuG_cSoq5K}^x`7C!7%G{ zqcX**QIY-Ui1yEcOKgFtQ{}~!k#PP98$vQu?+d&Xm}}&H)b?FsxTZOOIKjukiYpim zlRovn3-qCuQK+EWT786tzT5{yHCK(!F=5?{r_U@O(`jiv+p`q+5d491828uc%xBRi zvTi6L@0m!Ek@;XpBGy0so^?5w@0%l41un^KG(kc_kSE4{S*`*-cD4#ZC zSMC!g>Lt~H7I z_{{;K&EC-1koz4cEK~Xwt&Wu+h{;bZwAfy^nA!>w&wtJCt;NKBi?}$JvZR5T=(JkuMfkw9!q?1&veL&sc@k;!3_n1$Wwao~b;Z5OJuY>=11C>2qh}^is8@188b; zf9@jMd+9ql5ZM{4e-xd6~A4nlvgj9up*3_SKmGNwIqJ$fjy^X zugaQEuwYE^kIQ8?8m1pHU2~Qi!Ed-x4^z}n+0t&nml39AScgBY(D*;UVJ^8`#{0wF z4ukbRy7xFM^a6euW5$Hv`6Zwj#w9m$2(+^whMAdMX$$?X9!O^1ytAnsa4z~g;Y{|N zrMD#ACW@|tu(Xz0w@ZZI+}~ZMg39hUJ(;XhLiJGyLB1|uM~&5LeJ5mGAr>B0M`dWg zOC&RzI;F<97PljK-Xyu%!gb@7#?WDWKzVOGPR>C&fr?jHxI5XGatW6H)8;~XbP{&^ z`Pz+hLvX3^MCJ0AEbId!#^CEsmXVz!D6n8l;;n^cb}`qX$gdp0liE63(fkbbsD*yS z9baVVl(UZOOPD>^rx5YF#86A~P*zzrQh~ECU`2T+sY7S(ib< zzWVHe8LP0TX56E$+eM%R;(%u|3;!PrAlhK{$7qdafm~AXthopa z^ebO}b*fsOGDi+S5Un|_9x$I)^b{73;bhT9;Q_X?alom9HB(u*Ow%Wr9kxpjWg8tY*Pd@BZ=}Eo^tWgUMRF%`; zR+1>izE3=R-7B?E#P{O7icRg;z!lH!&?z18`Xc!ZLNw&MzW%^nbuL2nG<)6g;2#(yYvZTmP9< zS0^>O_2J@!nUDF%SBei}NG1q58$NpW6|jVU@yxfE-Tx6)2#ELVN)xMG-dvQ? zQ%CLmJN}Nhy7Th;Nn(Y8m%Em#H0zJC75+KzM36P%t|ax^ZZaJtV(py0ie9InmaedL zo}qg(hF`&c2}`a%w32XOsn5T%S=%FU()+%TqaQA<{KA+|Wqdl3kom_)#Z;j51Ya}^ zL){>zi=>C-=b9mkt{n(kHzhTFyu1EEHAgmj^XLb%@q*v2KTS0C{{s87X4=Kk8>1Aj zwQ0N0EtK!)XShBpN-c5mH>}uIQL8f7GLf`$w_DHn!66W^WeG?LR^uRWdlV=LaouMu zl$x{5mVJ$K<>R_-H@_OxAHqk&^*+*DL;Lqch{k_ZUum1ZSrX8b_EO(jldtV^D@0iQ z-z9Ph>HpTq(=Z}R^~01s=)6oRWGI}vDg#Cm!V%>vMYzUf_fB7X^=AyWG8WuxVTw?r z3HgJD{N=LHI0z17iu*{^crWFT{R)+nFxt(`YWlo7h-Y7A@$S{03+}yfo!_(>I;kHZGTuV;o1f7o;^q;o-axdPF z;;=Kd-#)6|)RMO3S?zwTbl^QAaX+j8i?@9haBUW6LwQMUR;UZc#_>$_U^$)zC!8tx zHBf<1H}TSKB{bYD&2#w5Johmy4lad6E-T~u?duH9AJbvEdAE_uYTOT{P7FduRTQpUa2}#iJZ9y`*J5V}q3|ed3sUXxvFdm?MB{;igC#yr z0z@t?+h#Lww=SJ{kWLhZ1+qx%iO!hIZF3<>{GM^xX)2l27)M%g76*|Y;{cOTK5Y8j z9Nx3f3NyGWD-`nrsV$WqvGgCeS%RE(yuWb*3{=5DlPTIX01 z{Lpa4;~7pBK}O4xw}E;HJJ!+Xj$CVxM&9sU5Oo{xt;K{VA^?0i{VQq^h06a!(_6ST z{l5SEbV-MR#6((sZESn~ z_Wm5d@3DViJGR}&^}Mh1aXyf5&*VJm%b>9SyE(Ty5{XELw%O3hq?MVtqbwnE{b;FP znWD+X}g3M;PkuJm61 z-BimTip((G9y1WwQ=zg~Tl!GZ?<8Hp!UOilnB)n^okqQ$2pFlL8~;cS+om}=H>FTC z|NGGC-cic2xW=`^xsa+%N^v>bSDZ`#h43=wp9wGY-80_x4mS_tC6a2@-YglhRyj(y zS#2~j1)D7ffxfurb*cR}c3s;c7+<}L`NQ@s*RjB&M739g4Eh0Xl$iFVt6yNtQbU3J z&+GQ@%t4JFf;w%_wC1YbdWKUT6NRuFJj3fSO>EB-mhVN=j5_e9n)F_-f zXngu(s_+Q%ZA90=*=w)8;M1FBIIpAvWpcQE&-M|WtRhx+RGJ2o{!?oYME0!YTUcU9 z`5f?Cl4r?M!0LvqKA?2@a8<=yWqrUJ5|hK;k@+mF$Ws|_CV=v2=DLX= zmwUv#4zGoD91$)7TJ;6u+i~6JhU7>f`L()S>J+Eub2A6(nOY7@W$Fi z@#<$mG#e+*mp9MN?$iDlDEi*~eGRVdD5zEx`a1E9^let^P@TPM@gCk8rcGpH>^fI@Sx!c>Cn*W8CjI# zr#+XOS>IUVe{bWJKde9llCVu|01EB$PZ|N=+{-9L)e`jWK4XB9-$a-gUY%Hpeur?3 zf)c5M*m@2GFOLlA@G!+nfe~W)Xw;f4qBW9*-J?r5k`_12(?LrgfT%Mf`%U{Rk9s*Y z8zSs#;K(?3{swVM$FJBasKIyFoGy~LY?tA(kK@p7lF8Ar1?Ii(Hi?n{=g_> zB7wIhHZT=^qSJ80{~;sUqWr%2fO7J9ip&Q__Se=Mvj=vJv)}$UM!LS>LW#|q5I@A` zZ=bwEy#DaGPS|;bC+=IFULrWBZ~6tj%CKpTjT0w}bK{Q)$JyIfONQV_vQqRARDeNy zh3eytV)%hvna0~?y=Zpcp)5Q?o}BuvVtUk*YQRTMOzydgp4U?+phG$T z+qiFHSp>6>fkqSHQwbo@CO%dhA;w4O-f=w}=dXNpmIm?VBh*Th8rtCkCuP=IUHtvw z?1UrIz!%|WZ5aqWwo4)ovvws=P?nBQ7;DW@%(Tqubyz;rn*^*EYRjZ;#INaZ^eq_a zw_3M~l`M^kM&2#GQ*?>Rch{`YTY69ZOFh)YZ2vD0(8%F2G1qHyA|?qQd0zA?bh(pp z?tTzcFywi7wfR4PC(TL?+Fn#CV|0j3Q$kUT6J0O+cx9kf@A%UdQlhDm1Dr{?jlHxZ zBG+=ZAeg0v`muK9^A*QHNaE{W_p(MWgfJ}@uz)Q-C`N$1(|Co!<3dD%=y`emNO2VBRefo8 z3gR1t6`c0ydEkGHi}tk1k)k#yma*47OV|3ZGeP~b-^Zfa|D{>1Hk&1l_oRdFh1Ig? zu4|wyFjAXYl{eZ>Nqafv66%U*G?@EBlLct)0=!PD0$*uTQr-H!SWp&dSlE@C59z;4SESk6 zV|LS1n!>$A?EXGLfkM3iXm{a#?opHR=|!td=5VtN7t75OvnQR}&l~C9b-R4_r?w1} z;EC?QAEO|ax8e%}FMS|mEBA3LQb}#zms`MT5A_(yVHC7}KFfPRU77e!FN?83+i$}3 zwMFlvjrs>K@1Kh152h4};C?^V^2$7!NWUk^82YqE@&44AV8S>~0!~svl7H0|aEaEl zNy^z)wX<1=Bze6;FAI>bIA*QDWPBv1jpvRSrI6A`@|J!}HN#@#QV@yRIgi zEd5cFx*L_r4{4ZRVM>xdY^*t5KizvN4I4crruEk^{;|N@tq|O{j=qvjoI^Ro)ywF} zx!~4brlO}aX0-Xan0vB^J9a(3c9iri|7p1sFNI3_2AXzTl8&(e3s85+%QAZVD0Iz1(o4&q5s^PjwWcX*)l8OkJfbZta$T(bN5T(ZSGBaM1O zSc^>6pAF6g|VAz0=sel9XyVNydaFH z3vMpmLca?jz#i28dKjdL`K29lLrv*^APdn5{1PL}C{5}S)VzWHqm(UAbY;XlG+c

nH>R}Er0Vy`PDgA8=HbG_T7F6O7d79p9tp8XYOiat zeDCQ$w`GpK&pa9d*F8+dOpwhSMN9QS@HDC?|L zz%|i8TdGJ94xvE3Qj;q9|5C6{yvQnx=i@mF@ydY}R8in})VMWBPkEv;O@3hynDV&q zbpBHM#6%$_gtj29nwA+>v3KOHEM<#|h2)%uG>%~T0~S6cnae>Kw6>wZU#J(8k=U0% z{{;IQP_tOEzCJ2>+PpxkHv_W6%=Q#Q^G8v;`L*<-!5&JNQTIYNtL&Qm~H^1IClffCzSJjE99P;FGfXbYNfid|NNc-aRNgsTcD+D6jy4*J zINpFWV<=JFR9am3ie;IswxC)@-lUVMB3#$z=YFQm%U9pC8v5E*B?LM-YQ&D9;hBf* zX_v)PG)hU=R}CHIw`BWziek_&7VaI=Rq{42tK}6w%j4BA{SD^Z1%ePjH}%1$l(c{f z(+tf@=_|YhEKegzmyVV>cMa|3rg(tP@j6eg!ARoh}etN1sqv@8pQJy z>b^S3{b{9~DGRZX_h_{`8~-L2GXFC*J(9@HJmW}RE9Y`eEDhd)qICrx*?WE&G(VPr z@CgjDulJzq02&dKg;l)g`W3cV#&(04!6NKz=R7|eouLOrxNi1kTAAd#xKqe3sTiY6 z2TYQD;d7*k%}O0Z5$BCdd01sjl;{xp8;)wN)+N=3#7OQ?hn@@kfZ8ByynLCL*;rg^ zZW(Z;fT}NsOJ~bBFp}(|@@)&`tpSlVQbkrVx7m%YU3G`Ype#j#I`lwe(!U_m{{VfF zKp@EcmO7|AOa8I)~gfc?@8-6G$X;k>ROO*=GDk>nz^P5|D`rvjo_Evs>eeOhN#LA(E2F`}`bm`$KYndbUF-R0 z!Fl>@EE=<{6ZUM8$Q)uyd6mVT$>bGN{o;rXnod|3^8IKV@!$cnYQ%KFpq>w*>Rzk! z{17HX+e0@dWohqRl)l#=X{!Nr?~gH5*~v^N`#CT$WEY(rz(Gi*W``cvU;9XW&XJ^ zm7jKc_EXA5?+qGFh3u?V9<&q+CVK5R~0N zRvOO2L4>U80>34*=Pi?qxK$$m)J5le^jM-BA<3?G%}@_H72`y1CllONi`KI*PB$og z(vRx)-+fB^^NRoIf;FOcASWP0l`Bn`y*O zDn0j>%tck`@$qHvS}5y1%5&? z@6ueoSB2$zn{3YthwB@f5vOYjBhV1ktkE)E9UHzR%%JZo+jRY@%;HpD20x2;PHw3mD}J7P&gdPi|05>|_M`88fc}`H)HR}+1!iabMw(s*ykqCr zH&%*(XL(h9x)uXpPDAx?8nmJPIihIascFBi2_O)snZARA34|{~ihUo?b0N+9w6%o3 zKKEVbu>4P~C-?^AcZV|dw6LDv0tpvhdmLlUV3fuf3%nUeK%ZI~R{aFR?I?@B2EsMx zc^IZ*$2F3V?Rdw~j*jmq{IPKfw9jR3dxZ*1XmX#hYc}HpZ$&7_yqF9AXB@Oql#wn{<{>WF2~w>b4}ITDu)Ha51bG6wmyl^`SP zh~7%x1AF;th&!1fZM&KX2Dg)oVJW*BU6}o1gSh;k4|cm%MWv%^T9dJn6l4)@>?b30 zFVoR88yFHGP!=XhsX*c1Q7Wp01L5uO!C3 zr-Tse+Ueq0C}f^mTY!;ds|cu=6CK;?8LPMsmQ4qzm=fEHke;SQ0d>birTaUUgch6O zdKpy-HbYq5$ru|ljo>2bkHg=}KME2YCV&F)_Uo-zF4!NP#!?ru8XD#|s7D^&?BLX@K;zuG z8&i}3w1XXrD7jqrhj_oUlH?y2v8&OU{MVb1P&GC-&Z=M%IG*|bR>Hdu+GfoB{3|5% zM{lJ`=jYfzE(!oX#RsPmya-YS|6@3U?mdK(FWvi#5Vb$~sU$W~xnP6%n$UEA0`V&f zVLyUb6%Nqq{z;;Qt9}k*$)j7 zJkJhMKmRRk|HsiWDV|wa$mDpanyg%RczD>o-00wNK`Z}Hn-dFA@CXPZW@eM+S!+sw z001!=$lYC+D~lqC7w#!Z@X4eatiLsvU@=rkXegwx-|T82H1xaa>FKfCE}3>ggb|Dk z)H`b;<3+uxxSM-2OWhq$0IE**H{&(ea}BRw5aRaI;UWeC6}m9LWj8ms2a0bcc{`jp zrrqswr?!JhR;>SDBdRb$rDkA&-|Y9nBXZwcyYaU4;*`tCEGgkVs$YvN_4)K+&Eo@l z79+aAxweE){}}>&)wKsVB|8ve=pQqV`$XX zBZQ2@-XIR2%F~IRw(s>GNY4T=az{iOBT_vdKCWe-*JlP|p?GCwRz{Mg!CBpPpEa*r z0BUixsnnZdrm-NBI^-+c@xGS+7l&Pl`}#e!X%QMtOsp5%hC@I%@vJJZ zoOU;-qJqTp%Qext;*AZQk1h^?wZ_UK9fH zsr}wW%JptNxb^h=m9c?OzFUNw&CSsQSxNn><_m+BckRBKlT%!)skCOI*}|3$C<0UB zC>|)QJ7yW~2ZmUHg;$XuwVh(=TH@;qtyaMLBZ#s6OR3^mpfTj%7_vH99XFGBCRH zvgZu0uCgvcpImh~h+$n`o_5;r@R9wNkm_`}t{ z#YGZmR!xW~X60Rf5|=~%t!XwdMf3PmY8(W)fHqdqUjo(vfqr-5!T~EmVD}l9-7;}0 ze1x4AtW$`gOd^t~(Y1Oz;UWQPy33a9cDZ^t*V3iqyEGVU^lqAqwYqU!oYtsO*>k!o=46N@K*SKdsY9^IF6X$Bg#l`S$eRD4f`XI0P}NFn29w;O37q4nagCi zA*w~x?1}r~b5tJX)Q4G8xyLU0#D-+ltf#UO5bzR_Cx>ZV)G zcg`)q7OEFE!eXMlO2p^B7_zzD9YR~isYkjWeDR~WIOQ~1jvQ*^;KL2i2)jc{Q@?Jg z!F(GYMk6*34#$z+!qba7$6JhkJ39wr=^aK@6ehIqUP7#d*L3{l(ik!7YMSmatX%sp zhk$i4ON%V~TNl%jLOA;8LTQMe@o;LYdINxM)kV%1G6maz^lt?wYDeszSwR|6y8A&A zlf|rzvhT;Q85&25pTEA9+|0^f`1A7eK)+MMVC!=XzkJ3_skH99l3xCZLbZ z({ylP?xR~=RHVI7_hF{~4zY@nYFuB7GM}{izD+TIL9$CLISrFU+F_se^!H#Z5;1^; zmwAkUIFjw{?NGO(xRwv#Fo_vHFOB6-Q5R&g;{T<=fx;8~5FBfs(ha9=Z?s)CwY3eZ z^HKr|juFfTZ%2m$BKh&~#UtCuEnCjTtql^Aw$?l^!%f@t+P%YtpD8l>{I^lpSwoNm zu3+=+sG}5oNn(w)>uL~Ga02MAZ5M0I%8qb(T`O3P#71Ljls%zEGx)u*wdY$&;4~3W z*4>Pq@DUY|&pQ?83WL2KZ;(ooH5Ro!Vb;OF)PxR^_`t{xqNUOD;Cc5Ls(FbD0?vvw;+;Ytb% zC(=oh^szVB5?jrs?>oUhIe)>~6#g{%w`#c%_H`kKNEcrh(=|}clqU7tpE9NUwlJiX z?%Ib+FqXtRw<*Zbaamx>=&}{oy;m&}97RMG6g}YY)y-A~q$^NdJD7d)7WLmEgz>aJ zchgBu>UdXOW;^!l!+V~m`iv@v=^R&5?`D&p7j+NZ^7AL>x}3JD_=(qV#>+`&Q4qPT zX0&Bu!oT9wbm7_`S5CVz5>Km<44YRwdOla?5!}|TjFyq?B5DK?WignYs+CeWs zWa*@2zx|!U1=t4I#)sQeoVLrfYhewIAL9@wVXj#H--W z{W#`!39*=?DHcncG;zuk62gol@q8@EN-Hj}zbRu-bZW?k?0o}|@_2VD{20D=m-5({ zZd!j-CDI*)?>(n>)q}Fux;n~ca@?CZ3)R!cWM42c#OYJ)Q!bE0Fzjo=2ly$-_HJEbaks*D zkOHUP!pG01Jq-^?&ReLs-_cTUkQH8feYtJd^#P37p$Rzn<+<2; zF;u*24G^oeWGg?Q_L*dlqtnOp*%+Vj}GgJA7Z(kE+KJEy`O}6PZ8;4Nn)eEBx9} zK?||hb9#&f9!Ebxy;y3WI1@M?c58#b^CMK+2h))DtwfQ5q2c;oUVt? z-M;)d(i=iYUs?f{;pD&wgIfKKt8bhP&Y3uFpL{>Cl zu|Nz8rDwm@Quw9gbyn0o;Jv4IIPFwNY!65bn3|Y1$Xca#ZMr`SM(}!=vzA9ljc-b9X z5wB&f;SoXPY>W}oz4vig-p5@Im+JynUYd9Ow*BSW#>2S`xxDRR(lZ2cF&aaTlg1N} zCGX+0b*%NB6q}k|TS&DCBKrXl_L@k(>*7fHB_QdmaQ(zS*|jJZnvZr~1u1MfPesMW zPdZbHg~+_V*WZbPRV3=t0KZjTwb#^S=<{Y# zk-Adk^W;eJ@qOCsZnyh)Hy@ZmyS5C6-k<62wMKCgUS2AXENgOWS6QxV+fy_V%ljcS z8>1n0ZBnZ2(7|ijXf*VaUz%AeA>PD$u z$P)9^OXA9u=GLbTtIWX=TCPtfvy=mWP(hQAcy35rm8Q*7WAQ~@twkOye z=WQox|Mum|WQWxOa>r3u(udpX`~_E_{X8RyxXe^{lY@bUhQ*J<7?04+s!4TgpZo-u z|MoKFs$iIZHCW)H%ZXq&8swNejLo)B&77Sp!Jm`)|&xpC?$u$I~{FxS9A z=+ctj#<4C)C?EWtz_d@KA)1!opoz23CYkxgfY)=Ab51dW3FH3rWgUM!*}Z&!N|N(r z=k>t*{Ll|3550O%xk(c3Ofo!U5-$V=o9~Vi#ZLyqXbH#s2{4E@Yq+(}1zQ>t<-F@Z ziQf&67;;-l5;e5%FKnjoeRoYsR~~ba4@+5#7PByp>6uDJyRF;%mD2Q4>y-FFz{_sY zho>%P@Xa_=_Q*l0l^~K}YkphB4_@Omc*eD0hh5csVaOXN$+^;-{uEvu*EU( z?U{9WRCHPJx_;x!aY{yN67P$cFL?e%D6e-wQU0#EAFbStjGMCxv6trm_2yIkx@s&tOaUzFlEnpVd08cu>Th)wC!rxn1W9 zT5-)m#>R(WY&pxYT@S=bvft2W^>NB;htiTFfDBTW=j%<#$gu0v0EM&7p1IF_e;v6D z{H(-EaE%n$J6~zoEk#?p70z26#s75H9ptY3D~0R0eywf&YD(UwH7RX?B0$;~fd zmmQF|w=-&%nt?2Z5|QadU8Wgc=4Mp%m&+sbnL=OiM0Rx3v#y3?B5-KS6uf_XuH8B*eC99E^{{ zm1NnJ88vElnM-IOlc4CHpKtF!b0JSg4bujgTHc*eI;aD(TK$3N)#a0SjcK<-Iw5x+ zf>t?BaMKc64-YLdlU@U|>0u)UF_4!feqQu{L64tG_WCn(HF5jNQ7O6O5)!oZyo>t= z1Cl^2lpqvQsC1c3b1Ot1w+jw$zB0?;alkyTgIM2%+}5VC3?pu5WgGOGD6U7!dU@QQ z%($kzbOsYgT)T`((W=xmO?u~RxF#|i2FaFamYsX6#-S63AW)Xa#gcCzJVi5VS5b+R zsuS_IY;(@P*#MHJ?RzmcTY*gX@TCOKe%FvELc1O`cFIGdmzUeeE&vWV@tx#m?*KyVX`C0*2yxGOj ze6$gddeU;qKzwOX`YTxADNEiw+b5#K830h$^HZ$hi9OFcJu#4eD0>{&s?9quS+z#6 zi1%t=-<@xk9v#Z6RvT1vKmPiH5(F5YQ7SNdzPG_MNlw8(2q){;7jh$ea#tmYy{4(o z-}!V+4gh8?ekMV*V{B_F9VqxZOef5{OR4h_<@y@P$4<9t@&;tUH7$6_ZC3{s@Xq?% zUOyk*_IaO);XIQbHQU&Sho}48HWz#PlVWfQJRY&8d~j9aJS?eR)`Z%=z8Ef_4;U7> z+iHeH=A0OEe1q`H>oF$a5X9SFknUbIST%bE7pSIvuH_Ly<<4Vw^;5!46Cf{RJ%Z=N z_BEK$IWbsB!zDnZ^W(jaU2j|)F$p$91i$;IyMyBLuC2isJ~_^H)aCCum|a^)@7VFD z%WEcW*H9m0mE|s)KA4PntOGtA@@~d!bHK?(!Vh0j74{NE|F~1ClRviUQcv(I`f_ zr)`gwwcRsgzB2(euLJU~;uvpbCf~e{xwLH_)9m*cAes5i04(S^`Tm-K3w!*r0yMnj zurf{+LgtYDBJh00s`^S?fAO#=FfBcl-_kNdc|~-BU#lD$opeDraq@a><8#|I_z2E5 zB}tXGcYJT-eVJl=-rIgwgHC)=N*2Mny!c~=PX}Qr;BlbeI6>#c{Ivuuu-QtY&0^9Gb+Rafb}(>~^O zwHMk-FI5oJFtM;=QWN;R>Y09RYmm`2VoW!6^g#oY@QxY)w`kaTKX5&UD=}R zAfMw5npUadF2hKE?6RllQ<2CMzM~t>6w6ja&V$07)I+b^6&s9~Q(I{nVBbzqt)ED# zjC|FHF*1|-GRIjB)8yJ*etHVlL$^seFH!M%v`xjXjU>xqMYW4;Ff-Z>?J~$f3g%%( zfs&t(kv=W;90Vm>oL3WHTK$oUT4Y!S`UzNv@Un}&OzwMe^!6CViDd9J3DUUnknvav z&TUg8f?*PZ?rz)L`vU4DJa8Q=KF6Z5ZvxxFHYsC$sq2BwS&DhlI&Rx>5aBAC9dc5y z4|5*R6mFf+yKK?`!byw=>@d>s0k0+=s2XNiI&$~$KC|!qfJKY`avu5E8c_+(Gvqrz zxCQDD!0;dvmDoKfDlV%N-~FuBYZt-BM5SfAqixZFa)qUEXBaqC*-vCsoaJrKIE}=| z%iZYMVe5!p*7o3%&&xZl_fYb6(P4Zgt=sFC?-ye}ZFx%<4|dDPIb9y+f^Clav*0mc z|IEtX`0&;KREdaP$Z1m5IKRgu0*sb73g4BD4Yj271>pB)mQ_4Gtxnp1Wef9q-j>I7 z6m-P~F|Be-08$@OfO4q{7_9&&-})OIO#e>=NQZ$qx}O=BqGywM7A{h$E`g2l@%1{t^mL3aa>GE?WOw&DdMjsoRe2C9wCT6IPUfOjKVh}g3LAW#gJeWsvApHeN|?nZJvpU#sVD@3yaa2Qr9 z_ZpO8awEBIcN@cgyiDlwh7CaRNBnwtjFFjLsAv-CJbV^qY_Cs@sIWg@^t`TT zyyzrwWng9cC6X0!nWB%|9#1ShBQrk;eGHj|hbFqMFi$*x*VWYn)d+V{^1=eQTQenh zd+IoUOs{)Dt|bB6GRRKlmF1V7?qt zUVgd)RJ-}Lc|-w*#!moh1icW~z$FDY=syioWgvPSRW=V-uuKJN916VNGrrKVvIliX zdS8hkAgo{TDie6^t?};4^PcAxpdcUsn@+1MZ-`~?9>Q6uv2EVZd0@hiL0ZN=H zVkQ8v=j>1W@^g)Xi8GhCYp=ctti?q;4{nn+&o@hr`Yfzo$M@kSUn<|mC@OlQGGeeO zc3qvU@bF%au$F!5B~~Rzo$kI`cJMh6c03^7En zM)NSN7vbDEyyEiOJAAb4FkX3M={pSZ?aQw3Ll9|%Wa@H?^ON|F#KKhFna4&C+${3S zwiV$qyc3e~5=Fw(o9;1GfTsF;2T~8sQ)*uAJs{ zcBS&{Hv58sJ*G$Z+MU~i!*s0kR3XZ@wldzvlXR91I1=6pA1*DQ57cs=Qz?FKm(?%Z z7b7%tELkd>ezhfD=$O-!XI~hHE2Hx#tor&5gQ}?o$qjiZAWn_wgmO{f-l%0RE6sUv z5DQ$!V8y!G>bUj7&*2vKcpO-c>Zh8H_6z9Rthuym1&|P7`nBLFW@Z<1y*_0$SEaK& z08X#@@yh37t(DTF;xssIeIc*j&fss*M~a=bxeQ^W$plYII0`Tdbp!3Ll- z^+-MaTRMwIlh|&r7YXgos?@mx&yFnu2{jggPb@Y(PQsD0$#_1u1f{(-d#%dgr$T(A zV|pyc2an35XW_K`f$W|7TFd<6u_jMltuK){bp`*IKtH9bkq1(o#60p?mO1T937_3+ ziCvNWWxmsvjQdLw_x9K4G+ucbPRdB?IYpD_4IG>?)1MUI$RG7EZ4x`)GoGG|YdGs! zWd!m(i>^XfM$|jwcwfw=SkmthlpC|757SkLC2?yEemENE2omg$b?y#Exs6x|d&`P1 zpM%zRP-M}<>fBH0qM66&aO`pw^%f-#vy=dZGyHTQIyglmTWk5#oLxWRX8rT?DN4gl zl*K3H#@=ACm{@qD#83LWXIE3>4@E(NqgYO~{9)57 z2cMdh<28I}WfG+et^uQQ>jw>q#eI1_QyU)3Q7iOw z;qrJ2<9WaN5H<6Ob!lr>Y5Y>Gd0gKQ8G-Pj(AVOaU+0h$qVeQDnqGWSbP>@)>7Qhz zMMpe)*Ry*|cLM1$)8kzz&AljVP8>_7x#{IhoXRWc-rQ z3%zCAJaZW1nhNBSxoSFX^O?630)k=fhd=s=h2Ii*xd)KJssZT!1T?10vRy*nt{lfy z3T*lL!d3%YM9PLn7nRK9G-{1r$nM8EV1klt?a6TX*W7k9_{MX@34fB1M82Z{b;FxT z7m28k^>9IH?501m;=mj3gM~s;Q1mkJiY10B+`PV=65-#zbOh+kjr2pcQGY0FI(Wa! z>3;P&#nw5ImMk%E%{VOs(2euE8=TJ&%PssiJ4#eAI`cXAEXFOzRM>v{k%|!Ws_X~!es_^7iM*!HaAp42wMxzJ{E3`(djK7#2TRI z?qAY>16T?4#xjH?&xyZ?cy0{!paC8K$}YB8L{C|6I-afybLhdZ*hT2Rw_aALPsuOE z3H3T4tdQN6QYF`%dt}OEI)uEv1}w{tAbb{CN^B;)ZBGI7YT;yEm9*E^sRoi$cEHPMxU4c0{)sCr zgz!M7&J&%A_F5l{kOhB?@8u4Ih&_Y=Q=ue4u&yUyVZECcFAf*LjYG6hh2XpZY)=E< zzBaO*W;0GzbMV&fZp>x&au+-BvI5lY**mW&5q_b95jNx2Hg%De7!Q5F;}wJm=CHq& z;hB>P_{c7$vQ1NsAjRzgG6{FBfGTS4p)~H{;5e0O45L75NH<-sweLBt->i^ds1e!< zWbS7%1u;rqo;orFjLev=nCZGGM{PGQyAT*3bUO#eG)owfoZ^$ETdQ7?E|ZVu4}!~| zDt61pR8>9Cqi8IMJ;+B=nE4zzC^UNg1mL_%yb7ylxC8r&J0{bYwTWR634U3@nDML! zY|6;FX9*BX5VA+PdrHo9eGZ$mYY_g>%MP{VI9F-3^COWEJY3|E4hmV z;HWOdcys+wHWgyu*^0(@aK&;amUjy5cXfW)0!k=P`rJGuhSWt461icfYOXG%KBE=}_59Yy%rJ0wqoBveM^Mz|r=$rZE+ zPDzxD50f8^27cL|b-rmli*0B`HpI0L>(-MYzP(t-bBcTjWWjvrBOSrp_ZU-Ey|5au zrrIyMK$ze4jVfi+`+%o7{@aZ_~2CwZTZJwiVI^&+28{kH&H9f~nj^ zu6uX>?#NYUWgU+p!F6iCU%)J)C0eI5^ztVfPWvX;Nx{+NI7EMHOqkUx*pHG_QtWHOaP&{yfyhmp7&hiB$F~! zeS6Y;$|({XyA^%)>m$l}4>$VM2-_s?lCpRG{?UC$SR7U=jX=rRLcJOP6I#;M76$03 z_Wxt+8^h!5+IFMHY;3DZqe)}5aT+zn#I|j_u``**jf!|;+iGmvHul};d){{+-#+%A z`8CI2t#z+;U8j~GDhOb?w!CjmZni?UJMPuAiA+_}SK7Lh>8rKsL)zXa6u618)yXrn zeIDmY2Ech%sZGVC!X7i|kA?`VUz3pr5k}JC@<6T4tOR=ck+#&P8;nlGBGA4Nlrb|ItmE^z%Ja4t)Swq@WA#${60->H^hoC41xyM@Zm(%w| za`DaV-n%rKqeW3ahg&7(5+!)HAK(kgClP~QHQ$<6ppBQ7RTN_tvA4_6MDtDK<F zk;sZl<|@dhZ`K0Ge9%bAtWAxMwQJXS^gFXD2M+s~?nLM9J#)ES$y77;%vY`_ss*4L5wt=9SNcGkT!iApgsTSXk_(5Cx3omuF)^SRDn#p>KFIVeiZvOl^-qvmu&s6bqdMygJ8?tNU z%-AXrSewk>Pb)t-G=*i5_K4s1sdz6(EV?Z(Udc7Jh3v1}xWNDB=CXJ*Vu}D%y*wrF zA@~(Iz96(DLX^QBQ@@zyhpmrkAL@T$c&O&l5Xjspdnl!HwRJ3dpAQW&3`5S}6;j;h z4ZJ!GznQ`DC#0UxLds7SEU*R8$6+xsX1hGcmJ1=gKtBt|5r614OHPcr8Dv_RIw8F(`gk+l@^t7W(s;Y|>^&u%h{f%Z zq6~sH<4t{1QP+^xF#s%1&E&O>>>!)N$05+yimy%HKv~uq3)SxzLt|Nz^D-uG!Q+E1 z!~GV}4@RRqQ}OEZNYd^I#R7HD4%K|b`9M|v5}Ec4Ag4I_$GdNk@V7VcObF4{i!4^e z(Zr|B{B17}n&Rm({` zMkcs6_p8#?cS}nrIU|J_9%*OK@u;3$$5bf|POp0))hY5l z_8!vV)cFXrg=yCe5Jkj|9}>3J*>x^KDP#91j?>uk;6)%0Vu&myK4$SyC!xB~EAdB$ z!JC!G(Og4!$JpDNpuB?xwTHys8TkPK6FRV=8o~M9;a<>(V$nm3-@{#A_q(&{M2@n&x(l;`*L`-V2;{rir&QawHK=f~q?a}X<46=Y@m z>0_S3^D54@buCb_;|Kg$-IVsv{bPz)$eiguw%EEaN7Z`tUG==;7Ru zF)G9%xM9xn_pE}Kj^1!R!0|NrNLgzY5YpVNoAibup947ZX=o@mLdN(MndMlIA}TLT z%cd&YP2c>vO!U1DGe?S^Yf7ZWtm8njC}&=XGR@Y8?-eY|b33e3+xwK!^!{A%(-_53 zHC?%?=Sf@GH=9wbBB!y^p$!=(=SJ1Q(bE)sc+?Y2Eb7eE4nsy%M7~3`gsghJWNK?g z(&VAraQU47DqPu7;e-9cC>+b|C;&A>X?>jG^W!xLRx!XSXYbJxR!(ko2#6Xi@yQsO zN|(HF0!-%b3AaQYbXX9&%TZ5f69c0gR_~Udn~x-J09;~(zt#kRwbO7Lzsw-fA!$aH zlZ=%A6bW=0WTBO!;L^{=aEc!|01!t$gR&X^8PnKqKwL5&(%JiI2JRa-Ah1|oGtxrx zs}owwRS6GgZwwvhD2#- z$p=_MmJ_PBPv|CS6)Y6jv?tOxDl?qTH{a8;3`6+tqsvsx3RW_(zT>$YF-25Jw6!xG z0aXTA`3xntHd(y0XU5-0v9$aVi3)(WKw;Nz%d&xeQP3EX4`x{&TN-9EP|!QVnn9i* z?e2g^M6q6?3PJVqk4PRkml-~+z7Oj@?8leQ@IsDwU^74ra9aJ!#>*^?6x)Dn)#G<@ zwIfL9{-~j)6gg+%19J2Ea6^f{`A7rzz&K{49u|kV{f+VXZRf_5*#5pj z_daG5Y_^$P5p@9ieQ=*C+iYZC32jHKd+E`Bpmn_DQ=}u8G}G(GLur7=cZg&HkCWsZ zH55N@Yj%(Rm*Sh^I5gdUwe=eUUEO?YU|oWO%x*znHDr=7^U!4PWyr@9f~ak1e-i-2mm%VZ8is4l-6r?|L|a{m_9-Fh zMUgqbI$`2%V?l?V2$SAb`s&N7n8(dlm=*cFmas9}_5LZ&ne!FOs`tk*@)G{*t<^YW z0;=9E+xlH1D~Rb`1j`ki!E+kWoVAUMdz?*QiIHyFxJ8*cJnLE$(y)Ncxki0IX?UdK znj6Rx6qB`oK@WwZu>Z`Z-R752O{tUSciO__%oDwunM5yWe{%{*xuU*Q{5%Tr`cR#{ znnyPZr!Sd6Oqk65>g~zkASqH!5mmOtin!QkZZRKDPlQG;=$rO12o~1Tv7cYQ8@Ajc zKu@h)JyLnG&%zL1kSR3T0|re^Ata1_ca0Bj7B@dyymv^XWo37=p1pe^F|dUMzKA;? zpeMa8Saz2BFxlOnOqhd79s5fUn~z1xwK zL#yDD+HQfoBRpgvfBF8FTbw!r?_W)CR{)%k1CunR%Y+>HedC_d3;!e1YDAU|Ruc{+nM zEKZ4oDrcqAk||Mz>mZ~9sJ}_YmtE(JOQOhl&9e{vPORoTR;89D;k(ERbkwnU0GdoJ zGxzyvR1&AIF<1aKlI#1rrSwu=oAT(d#U=&QOP-IWmn!aAiI~ zr@@rhv_anogYB-gm&N=z!I0~N@rK|@o*vf|JG8%dh=mM%n=45L}y7vkBn1Y4x2fVLlrSOkN z&Z`+I{Y01+y;&N7-DNoW{ee^KW0}e1V5#q=6}g)0wTJ^XyF(sSXlYeezIdhHhc{2K)AVjE?td zS4riH?%tba=m@PZw9NP7PwpVaQmpn8GG`{vL&frF5YE#$0gbSiNboo}N4HlJ8;2@t zLKe4CxB5vqsdy4ks(;jG*Eyk%NSI-Hg=2MTzrG4ZM9N*S3 zHtOG7o1X5(-%O$1#4B$Ys1r)G1-p=`=dkzp#lL-C5%wraJjT6?QU@t|+%l>q#I*=1 zNY*U*NXBleT{KCcN2!ca%=$c)vUc|(<_o@uia+kga;S-}N5QPc3%njQq*;}q0KsHA zbd_L%ZgMKx-y|h0h{LN4Y&0nrkQuIBcdMvam$c0FZl5(x76S6m6e;vneh=kG+W<*> z0U6M;YZ_10M33w5Wq(Q0BZ6DbbG|~$C4SnuE`r&<*3~T;$Rv7rHD`rGyzp}B9SUWf zr~g>9bK?)RvW3`~?jGt`D@AmZ7~CWk>mtDdgV=r?k#k2Ar~vt{OK@(?84ryznRv{2 z%&_R`c|u`{ZQUkOHS}8Wh!FxoX#1mT@~LF`@u=pndgNqiarPpdF+F3~P!q`2Q;W6$ zVCnOR%^=aP9Tp6+a)(WFu~WAT$n7Igqz>^Lug!+71NhWxh6^}JpGd*BkLE4&@8bGV zu(HK+7!LK(2!DpUkiR3PB-|znC`w&(5YF8|#~O!-k7AMYKQ5iobU6G{uG>IC;wyN; zt<+raEU6@#y84jA#Qb9wYO}~J2YgU70NYUGXFrYxk9fTZmW#@<-@PC2*)7u)%DRFv zP}9FP+PeRtnyYQ!r+5%6cGnA*EC*H4V&jDS^(&I$r%!rNX!Y3@y2DSsDSFHrTIh%In15q(G`m-_Ez3Qhtg_W(u9BxA zk&h>ls!^p*tJc3M|6Xw9@uV9a z88!vI84R8Qv;nag%P5#T$L*#M-Q1|ly`SPTXfW;`&N;Q0zVd8sLiDa27%-=- zxMv`xA(%6%Ne-W@!1)->rY0CRNN}!}ij>!+FHQ|kENOYV(?0rGBL8~%MMBeI_52Lx z-JU&wJ2h0Z&Iic`6xdXqR!H5r>=(P$%0OkpA?{Y+-n3^+oFw!+r*Gr4>20|@>RupK zFF3NPS^lY$&57Gp*O1y4O6wqE3VOkJprtO0sK6XbiZqjBd`tgZ%y2Qssj7#nK_lp4 zASC+N?4$h6i^!1IVq@)2@0)YiZ>4A*A5NL)F!FncX8+u*7gixZNAv5}K+&F0@{@uG zin0L&U=msG{w@l`+IeghvR{wHG7U)1-7_?1v`3ZIW>x~=;eVs3X_zF3l77J;KO6J% zlVua9Aw{W_Z>YMc_%i%2+?Jh-Mq}Ry$ZFfAi8GeX(b3M;o^MAYU&}~mQM^-kZp_Nf zjurFqe8{-5nJq%S&JWQ+<;7F3z8c;pGh(@O5QuR={j<*95}tPAu*C~fSrHN+=$a@(1O+*ppSkx z9z(*joIxCe&Ykfb%NH(ta#lPUmCM?(@*p-Y*EtJWHKYvZv2dm&@5wP-Z)(&%O5d9p zY~55_BLq5FJ)S3z0gm`$!?iuUh=k;WgB@R(-d!hZ^eqh+75@=_ji%#>sGn;!$ZXj0 z1>qE3>O+{tPv6J8Fo4p|;){F;Ykq#QdR}C07V!(1jq&lIgP=26j`m+)0U6wqF+s;- zI{tDmgF3gvL3t0aS9e7|2;#J1@{gE~XuaufPh8-WKsHj~3u+3B(0PD0H1;??oYpXD zv-Z|DM#$oIYneF-<0^X!XouWID~1u`*|j`YL*{=LW?G+4lIA|c2tW8a$N-}7gVlKK zD=zn^+ie}&uV@T&DS%1C3M@EW;mGR3F~JYMU2tDl8isr!NL@Gk$i$|tt}3|*l=lU# z$EMJZFUZ$Fk&2V$fq8qda zhiCeY$)~*|m%4WvcwKY17n>U^HZ@=ausjZl=LfHY0x4nI;x}!|rmqfD>*NLb9K#5IA*j<1NRYzmok6)+FRD}SVoY*Q*Tr3yCfJe&iw?e9%aPv}>a6IH z+?LB?S40%rs4#)m@}LEzCekA zw?1tX8SG0icBMuBWds5KJ}%SFX0xApy*tDMEcSP*y?=)Rv6J@^ID3KxB|i|0mfjJm zEGiFNk6CCh#5N=$Af<}r5jdN!Iz_kVe(D+Yt8A1E!{&Rv@Y@#~21d0zu$^82tV|7J zMzmT2O`ey|Ug5xjlgHmqX@DJm(dU8&J{)Bk=HT`g+J{kFZDE%qbH?|{-O|br??I&2K9>W+Mke9MvJ5Vn z)@gxvN4^jOQRE@1kZGkj*kNCG9>==knQzl28IgleK%SD09lta)fW7s}De*ZA=abP> zPZ|7XU^)Y^GD60iJ?#au*Z(zgF|4np2+&vqvhgoNBEu~{v5KZ;Eoc2!d}8Jm9V#ts zi`NqF9ZTVZ6lQe9t^*pU;ay1GOL@yA84V?CXjXbD8n(ma%OH4qt!-mZ-_0*yfGC-!5`aIQ#} zFUG)|)iVTCLRJK8s=9zlV%w-$pBFj9`k4O6%${xF9>C>ZprRp;?^+dCrD)*@Zl{BE^np#fZz))N#Q85x z7UtDUi!v|jV|~Cg>~YfA)rhzJ70;@cCnEX>z%=tfKs3{>e9vii&AaV>?XokmjzMM{ zJ>pO0b|t>^Hg2^q4L5q}6<4A?a)ls}I6Y(L0}P2LqN&rtioJtDkP1H=Vaw^GJ04do z*_*L}=H^VoR|B_-j@{>|ALCzWy8{lQFmps8rg-HH^C~2#sr}$6iga8_uF;V`HdXm7 zl8Z{Z51^e6FA1%v0GWF_TL{;=%(t(RqFA_mx$L!o;HRmmj`~F_Q=0e40DHfBoKaaU zas=FwWPpF`Ltdh?eF%?fCcs0U*>~c}-t~tAl=T2uxN*;hs@-X!(c{hVWuds}d`BPn zikrI57aw^_@&ngsN&@Fixt>xKG2>tH{?6eRz}ge3Px`M5{_P1x#mzE3QeX@%C;5Zs z`x@{P_3_cgmZnF5bA}uMLnCCsB8BR=E3=`(zJ`>4HEfGTR2J=cOlNAoxdPdgc0V7l z$%#&IMph7UL{<`G&;mtHwbOm?ESk;Ok6~!|Otlt#OpKpG0mRj$AT^Z;xVpkm%cizQ zrGIlal+$JjutDmuUUZW`V*uK1Q+l?+ejUd?b2Zl-)QI;!XL6!z89lyo!5zY>O>#ek z0i3TQEWW5xqh|oKi{Lt5w}`EkrNRpTMRaXfK(5V?-~3%N@qJT+fkaHD5lR7n+zwsZ zjxE~k0z~&;Ts?8{nt=LohjRvh7Nrx$h;0d|pu9g0!V#MpNF(G0=*Dl``w!=STZc0W zoJ|WeS5?sNu2IP)0vdv)b|Kzni=HPccFFH!e?FKAQ8mWXx{t&^6d1oE8@6 z2=-B{n>t8AhI|>=UdD)=u~_AK)*mYBzM|ax0Vxlf$mFtktETz0UC)$Pk&uwk_a4{| zx2|67Vs=85gtQ-)>^oe*Zv6Jr!*}~`OENpV&h}Ad7kB&5#)#QiO|VnIA$J>wt zF1&UbTVb*&p?7VAFOXM7v>fa3-`?hkiaTyIX8r5+9MwR=eWFK|k&hEx+A)It8LNStO6ffM#4!_no!5d_geNnX{0$A~>RzhV3sBd3 ziPa7>O#=O6e%h3AeSCYe4L|z)}`@MoIwR z8B0@IO9K7yorFGWhj}Q|vE_0~OSG6`{l~zK*}0u*c49##J;hb|Tl37KdUFo`_xCo( z+`9!-)GiY&{Ff5ig9oww@WGANB-s2&X+TMnI=PSd`WuUy#9N&;Z}n*ZNram$mno<& zXC1Q;NrGC^3r5E9Th3uh_mu!&@t!1Fi#3gW%-OG^v#k%v*B!OU;s=)!z{W8W&dfwk z*g*iAwP&DykfG`hy|TU;Y6=b*%gd!G`pZu?ap4w#@H5@}!XEh(z5BMt2EWSg_--b* zTw0-Z1f!WK&zWbvdIc`4*R%=T8Q=cI(3)5aoO^SjT!CzX`sK^M_oU06MWpN&)KhwX zi0dh+8Ajfn_yd^A0wgdxf2)ar+KLrGjOo~%7wPGLmh89%$WrE0+l@Y9EC-c|hf75B zFg?ZCb4i(o%sQ_zJONg=Ht>zLpk8AqWMUp+K=!5ZtyG(=0Qa+^ob(mCQ+sC)ZhNK3 z(+`zDcI^1>fX^UwTIYtr<>*ER9Q;mjdYV{3I0^nhnqZ%0TDU!449p2cfI1}bzWfFC zsW@Ziw5PL4-Igqmd_$v{r{nin<(pZr(#)!`$8w2g%JPAQCo_4g2>ns;duAE&O9zK2 zp07UE-(ZHxn&qVw@B6bPV0UKUkl=dOW54#BmZtCAP*H5G<#1G zJAU@Te{i19)NC`X6mE6)yD}MZQk4j?Z`R^_@^>C!@AfdDT{U?kI4OjQ?>j>9+&5Z zbV*e-XU;{&XGiql{`b;b@Un?v8p%7TvF8Nrr-kERsgEKl1!BfI(w;9|C^@N+-0f$P z_GgS@Vb}mg2=4eJ8|#Q==4t;H(S19^uNteaq#C(mB1K_|=+&!Nj>A$#El?MhOlF!r z4Qsiz+Y2{^cy6n`Z&pwG(Z})4o)$oZcZ!^l-=R$|dS{pgO}M3q6BoKRATLvG)rfvrV%6zS5jnRmP5PRg1-`zZhw)pC{ODvebp6-qmZ zUFB;;2dwi`6QDymbO%IY?eV)Loc~a>y&T)@u+wfF=HA2|ITsc>>d@np^{yS<&l9B7 zyVG5>IP{#e^NRgh8l{x`J*xIQy(p^Ex?pBV8a?)=@cJ$e7hY6nKPJ%dw5r~9B`-~x}5R(B($_0OKxYDIN3X?34Y|E zL1G}w<;80vyI(z4HJ!CP;`#26H{S{4j#EFLDnau)zMj%9w{?}(w&Y*Y-i0rhr>{Sr ziWqb{hK~8ITm%zBi6$a%+VZIseQ5kIu;7%#j3SITs2#O++ox8~!@3w32G%+F^NKB5d zO>H45$g;lasOn|($uufCZR@&OvlE{kqaMI{60reaA7;-M;+})6={h^;+*=mPWKj>x zmW|MH8%Fk>Fwn8uRm9aEj`nzx05j+b?uWh^TCwq*MMEZ3Humow;)HaMhPe+vMAo~b zLGZ^)VEfN8Lc}q;9-AghALwff67r5C4VZ8Y&fYR%eH_QY5dW+`oa@kGXYCJ+fG|iW zo!O2zZ*L7V!20)1a>9EAFp$0Zj7G_jBUqC<$!fxjEOzkzAv9Dxc!<3Sz-U{q z>)bcuWqoKIR{~JfGdard2b!KnPxGRKm_R5k2d1BGK*(48N)IZF^FsSYHlT*1YqRGL9C6Fupf?9t z*F3PTW51T^Bf(Ze&A~?ha_wpQRxi3jVn1P6cZ1>0NkK9V%X-5dMq>u*+#%&A3PNJc z+=+-5!j5rIjBEA25c7X9%eV}<{y+e@JC?1PIzC)%fL!LNjgX--2~^Z6N~5iZ0gnx9 z+H|+mY!bS9h&mt%Cwr`PZ7nhtv*2qyhGzprLJ#OigOwZkgE*3B;0Tz%%%{F2e0yn;~z3moHM z%7e*LS~D}~HFSEd=~VbmN%Y+9ZfVf!X4`WPXIp5_BoZRPvu@L;CnRc<&#y%S zJ*^~^5fY1;M+bo#2bZC%E*rWkCO4-X3Pe1c3-1?+_(+F&TvS(%_G1(M!n2~^Gnx5Pv3kKHn)t8%g*+fU(z_H`33A$^JZ_?UHDcFW;sA| zhO$Toy?>o+Fc6vO96Z8wXN>mA?8;3}hol+PA?{2ZTd)>tO&Ct8IVQPZUQo2fj+8-A zG%3m;k-YG*0dq`@w$KAWnvRjT0}3Gpujx}ma$T`opuWWqwxQXX3YRRBiqr* zqPNlXP*NDnnm#VbVGRk!+~m0gTogsVK14w@Qj$ayJ!#b(H2lFAcNegZ9YQlrs?AZ1 zDUAmqWkkyQOYn^B?>D_C7l*@h$Ikv3Bdk8p3gZa;j@XaI!BD^_{Gi%ek?sG25YJja zyql!qdpSh^puEd3qFgQNTjz|HHMgs@Dqcf5bA*oJ3)Qk0xKf^vS;uu=OT)TL^KRQs zI_iMg-p6aX!3}T*EvG|;oraSTW?%2~c{v8*@A6WBxuc6hDg_2|r7@VS0HW12Sx~Q* zfx0;F&~!~&k)B${wRG2D(jH&gvdq%cVszU;u@ybimggP)M=2UM1mT0S+)ST@%$<}s zPZcCFlk6Q~;=ksbxMm~Dh46PCxc4i*Dx`>j3QQM*eWE~uG0~}qVODx5*0D~|iL&F#@&jDD7 z;c}}_&WwF54#V`Goghk>ZCDpNp4{56dC8K<#F@F^~;)4Y-u!~Q+>#`UHr9SVPJ^d zLaP1vfnNhDWk2}R2Xkjd++;r)76|d=n^7{d{45q>1;30mQixLZE1naL7lQ& z8$9s7lM!pgA&!XKiX0sb?Iz7g*LckFzpplG_Gli{n!|Ak%RTskYv7vu4ZUpvVoZ9}XR>l$%r z(Iw-bcV)Z}I}N#6QH-tgM_~?no{~Y48KP2@ZzOtZN7NC#Qy8^dgZZL_c8(Q|XIO~% z`1-0$*4{e3!S8Iv6br8U{U8VSBgr+{(9HcZAQx)HNB__7lFB}%YgO=Yz@-fMwUI+3`XA0XlK>rnAjNOu0>FNTYN)L4N;q9?y8?Q6M3@rk%%q+2}#k5U7 zF`+1IMRsJT^4_c@>A!XBV}$fx#r}pkZ(*qCj~8di&~+7QfEb^d_oq^lnpV95IJy@2 zutsI5)i%AL?2(FJz4}`8D2~D~V2cOBHM4N|k<9?jMr8v)k#uHPq&HlQDNwQ{kXB}s z>)UTZ&GxFH-u#BUd_wi-!{Q^mp`ww~U*G<_#Pjf0R<42nstX3iPF_CpB)vCK1~4?c=~*ExSKryth?;fVh#mI-w;k=-)ZS@9iIi#ro1j=QpqeDLGOuC zL8sNfOj#7%VV1aHoZSmIdNG4-rNMAFba3--nfkl$M?Gj>&nYsv2Eu54Hrb|mJAFzt zUiwST>vIF2a|4?q+u4FWjP1^B+3M7CP5e7zUO2J+pzc3ERQ(&SdOGaujFj=FAIQocv8KKTYE28V-co~=9{T7`2$aOc zzIr8Y#g`Qcoc_2`h(WE;;r>xZ`0&E1=8p{dt|etZi{64a4|!}bC!74M$sA)7sii`d ztQ^E~?^6pE0EHKRtrCT#ujqT5O)gN#LOvXI=8|bI(9Jhz-jP0ddvkx*b^P~X1jeQ8 zfUXtX>b7{P;xg=H%6c4sd%oE^FDHn!V>^1iaxmNMb6*cA$>^sG*PEi=C0~07EVqV4X{Nf7^T9 zfwTC`9}NWOKgt8oeZ)CDZd|ds&4u zDNWn5y+XhF_lDc8v_)WWU$b$S5Zv;WhB&=+bBeF)_DJURF=i6&pEQkS68ik}+QIZD z7_%2p5_!gmrZ54y~t>%WgWy9QE9@E;s{<79z%sk6h@cHqDpm_rIX9afqraF#X_ zRFasNO?Vdxw21-Um)X0$mWqC(Pj6(5CS;iFngQi&Mf6njHzX}>Zm%+{=@KEYxY{i5 zvvBe^do3k?&q|9xhhH4(7*{lQ_&_xRv7U&OS^Q~(0IgF+2Jvttpudm< z2PisOhnWOFl_|m7^Z+BA?DWkci%{CSj1%UlX>AXSPd_VjWa5U=n^usO{Y+WdLJ$tN z3;%+BZfCJ`%iWik#DWjCB!htDi{G=PSDF~>4{2De2#=!Lmn1r;W&r^fu5Xfg(aPt- zJ}kmv&NvjcRYJE1D>ms==UYQ=KrE)etr?IKYKI1Td(3FT_yE=}_jzp=283RzJOR-K z;@Ur##~*H^g92@SJsm$QyHI;`^=J5rZM#%D0q39k>-5Lkt}zs1RCb31hXV9@E8tlw z?#I_%iCN$OksC8sR`ldQ$_93|cSYOIr|{T_2V9C?n-_HP9?e=#LvOy6+WXr3Vq#|k zPt)|5@J}fs(h>iyApSdmf5-C-7Z}8|lgRS_oZ?h?`coGPbbgF-pTtQX0m9k^2wSTn z)0?$&)nL+s50peTx;XZ|*2)NoU5BH8)7c;L1+3AP;WRvJyE7W*oW>58JfY}tf9du* z{9ageRD=@ZlOU-62!w1a4MVNK)AgPP!0jZZ_HD(# ze3H1gdcQ;~eMN~{B1VtXGdg+$5Nx~q7o{Qg#1mw|9Tv2y=z@BdSRro2E(F>YZNdYkeBE7BwC zpP^JhLoofU`*H0|!jutp-r&s_W>hn5z(>GeA3XwqVvTv(Q_kFQX$HRX=n{47y#8FK z=koY6Ru_pHwkhc>hY`RxKFj^{OS!D=nwwU~GW zJiHU<@7a~OuJ_42R%`H(-F@$`-Mhj1(a;ATOVo6XQzY?z|KEcAt>GsHYWfE!e`j|LFT3gH>HgSdQ*Bqe+yvW z277RAD=`7l+ZLHm#}XrtTp?$1oF($m7`to9(#W%)8muY4DVzKTV?Y$@XD=&GjP)MQ zPP0GvAub&^Q`(a4Q=PA_Y*e8UU8sIkh!mBUhfIq(|> zY+{8hwqZ=;6%RvyP2iFQ+O}7?#ym#%5-waox*u}=FGCf;BX;!DawsK1p#LeJ&-yiKHyS4xBptoIAOdlThg|cFaay&y{zX*i`7H|7|_~ z86opM)Y0ei@}J^F*h4kZf+YMyS$f`XFUE>RD=?I}L;r15;NQ4&f6Wkfdl!^rAXDS5 z^a-*I-S9OK+wjBX+0sKJ8@8si9>ZCWJ z8d^U;SZZvJF9!2the;Lg=*MGkOWbtktfViF{v3a08C4Gu#5%`IjbxKSPv zv0+o#BQwuN0C#u{QraFQ5NY_usQ_8Vcff8j04H^qd0q27a4YfRCggcCnw)>h zWoJ|uj8tVW{&bUD(Vunn-7G=fBO6Bs%>3YWRh0BQKfe1Hfo{lJCoeiJZ0GUoU*mUn2-|LNe!>Pd8O^5j2aw+!8du`xv!vno2AA$ zm6oS!+eM)sYK_(8iGZy--U>tgZIzX514gXI9ZbU=vk;7yVvBFwM)hZfLluqjVge3~ z6rtW{z)>()siADrecJ{D7i(f1PepD(c;z6xdqEG*@p$R1{1gPfVsaQBuh_IKDva4! z>9_6~V#*|Vtb+Ia(5MnR_72ts)E&AA7YWrKl(02gT6LU;s(x`IB4auO6+mKoDbFVy z9%d?`;28FAw!VvSY~xso@T7mf^p}eD_BTpn^ygMTO{4g^Ggwr3OG$9GXr=9pFCJM)%c=(dy^VS(YSF?NeT-y=cJ+~6u zMAmKbuXXK*+2tj+ets&fhYd@ZQuN*C8*Fw1`AX!XikVP(T$5-?v!=@_Vo{6VH{X^V zTfQ5n{4GkHJcdUEm!kjwbqHg?TW5cEvJT18}=F2Oa1TUpZYOh7)YHauH7OPYd?{RIqdi(HH^94*pyM#-nN0UHV}Wd?it` z7JuJmf(Rd_OM(W?AK;^pC*wy5iHeMVXQ_o&!AlWk%O*}X9`?qw_Ln}%K7#p`*>IPUs8=tQQElJ8W{G(@od?9oG=U5$0#Ve~uA+_-1YUMWa0|IL%Xa7WN zT(M}aOT*DSdNRrx3FGILQ@Jm>D^$tw%mG27KzbOo3cIk&{s~BVZ2+`1a)>}yPe2LK zoz%OeEKg0?Yd$QSZ>xvsE0Z^`qgtRM6avCzT^zVVB_&}20oYfV;NWRvUQG)EqH$+= zTh8XK@s-0G1)gzwjqQi z4%Z7#HQibiJVXkJ9_3alsyHK9fI>HX^I5i5v9|JXlWmQEcd2y zYH&R~>p$pG+V1f)UA91J75E?QR6QNlTl7Ko`mvXPA+XMgVfNegXKvD0ue53b&D4?5 z)$-s_B3fjYwoix_jnDcE&nZwNrXV|o63zB#|m zRd>M$O*vXd%a5No>@wXKl)MkW)O;A$L+?`=AOwHbnCrh)=;hf;X=xDrR6r0!d))|a zoMzh)oqYUCuah>cvoH}W=B&5mR-+~0rhE0!+fXe5hLnz4>C|jJp}aaq<7`^l>c7>( zFnKA##3>{q6|)&4+fX(Ar;@qpt|Cp;A>m|TsnBjpaY_Dgz9G4WY~`E0xPLhgzL3On zOV!=Wv!|zrE3Ji#a-*Pr6rKJ0d)*SrWu+I9tViQkrLO1kjIa_krZGQr*58g^4|fdH zic2+mSYEwKzT1Zh7tQ-rUJcl37cNfH;$lrlzbrK>_O%q+T#AFR9c=2IU0_TPBhgKV zru^GsKLvGOJu&vF+(+NnPF|DcwYB&K3Ph?D9--eu#_>5oLR!7-L&LK>C z{h2)qighmT)a@}QwRX$jLGv-1*I5OA6MB+Kj@42@v6f31_ue5V@$7|hrZR=+onNK|b%;z(an|kRP4-nDbfs)T)2i-@ z-0r&wi(bEAWz_EW$7bza;vo5yr}8W{uJYu)1=*BQc~uK4K-fId7`%Z(6&HQn|Hn&Q zJii~Igzt!5db$_m6k7HofHmubBJeaDI0m24*pyX0oHUewY7%-27mYKFW7?_t0_{b4 zc@WWNB(U|Ta3HzA)6ZKs;rF?7J{+|#WsR?Dah^)xbIZ~0aO@>TX`JBJB(khYe3Aqm zV&bI`Q^~YStadQS3CUb`vGE?poj8;H`b9R~wo`rh#Ypr-gt~dhY6p&vui`TL0blG0lxqe zwwjM9z19xi-mZ^T;RYNHG;8+IZSayK+Xy^Qdo=Z(zYu%{EMBanw<6)B4L%Uh{X&T! ziF7w4sGx4k7sb2+)>Za+Yg6;JT=f3N-}XwP%`sZ<0OI5iNoj0%xWD@iL>`Uu{?ct|^Kry0qE9c!_}KamSHPir$@h2K(r-o_91>IRE0IwSbXQ|yW!$2$Bn7gT1duD??9 zmra2V4()u?=eoYmaZ3wa+#@ioS7=iWe8>TS9AquJH!b8|z#LRX@f5+2eOGU=<5pwq z>|`+2a($*AR(90SS2`TAq=i^0iuc^T1eT|Cv zZb9RH%pP|O40rR7VO{keoCZy(L%I#9<&i_~_|G)o@8Ydr*kYZ1{u4?b+m!subJggx z-F(5V)k=`bNq7knF4p`kxuyVfVwSYdwxSxIM}@O-!EHF`QAU-uvEm4zp(nk7pRHVju5m~`?l ztIirBRHh`A9brWBnA4SvcehCrC*==GFZ~?4e@@4fWy1@htG*8^7XVR>|3zU^UL#dX z(!%Oz3veVS$HwG{*%;5dR)+*Qdq0I>W+yf3r7)y)wZ(@S}Ktd5m&J6|>X~Yia-e?(aD)$@%ID#W^ zMFUJga4N}3>}glXWiP3QI&mU?Lz@;^Fo$x;n!Iv+h|Y zT5>M5@!Z8FSf1_*5vht39m%TscWZUQxMU(_Vx8Yq_&Z;k zYqGr&&w^t78BhCy_C#f>KQzgvSZcpdHfbK*8ac()jY@oF-1QdqHExHY=5ZRRLH8~j zY7rWI;jGl^aH8MsXPO|e7YAT>Ii3h95ry1%+TUtkt~>g(>(_s{`x$qZcm@_lGf(_c zvlD8a3%pdc$@NqJ*@_&?PNHcaC(I3Nmyf-92=7 zH_`}5Iw0NM-AFe`cY3zJ?>lFmzg#Yq1uoh9eV^yPudDP!*&`YQNm!YOXqCp7`CZLwoUC=%mmZ-usZk zkr`C-To?@c$CF=3A-NZZ>BdPg7R)cqh9mJmv%M%ZL}KU2z?x69?Ywk%a&bWfiTseo zevXZ;AW4)Wmm(e}TZ|tgCXDulU>(+ATyth^jgrvnniXjat?#V7|#2SEIvhoF^Bhs+;+W!(FnD zwsS8fDCYF*LazAefUjTcj2zQptyr4pw@xG?%>f#ueD%_@yxzg_$C^Lm6Tgaif{k99 z3R2Ya4ZcS|=^b<#It({87Ojw5@IVf*QYSw@S6g5b+EtV+O%AL6&`ScfFURS!kJw&R z6Mv`GTUPI%A!yWSnVcl;tWe9q8Is)cx0J%96^GSqC{D!YP))FbKY`wCuFgWIwAdw; zs}x5kLG2cuAp=3DYdudut2~46bvr*Nwu2R1WG$sv$T=rT?u{X;?Jqg&7F#-x41P!_5(Z3~YLxPlhZ8%FXX3%dgL}P!K(702^XEN- z3}{elF-Ok)6Xjr&bCH^Jp5e};Z|T9_j|P0XB!^ioN2r?rCQD#!+s7^TJgmS9m76mh zyY8P$i_EFioClJl3KD#omduu!bXKp5loHFV5mQ5za(1N}?yYz^bi;Oc!&Y-Qb84~@ z-^r(kuzu<-`&xCsmY^i~Bp4xN&fiY+c}^zeXO3!m(K4&c)i!HL$XJm^y8OL6@ZK*I zL-6&|nSjJy8bC)CQrJzs}ziHP)CdhQY7pHmFFNDU75I9~z&RhG4UQT?0sz!Dc;?#dAGhVn{ z%*d>87?^5f=+<&pB>k*Xs9krzD;)NT@x$EOdZhsLp+8?IDYFYVud?7|Xwrf zPf>bQQ=Junx0sbs`U8u z(}K4($;893!soe1o-lUC&6JPl;%&r+;Gh1@ymIRXsqHAxJ?xNJifp$;%(w3%&Z;bx zPQ({AWT!St5zZ?=LnE>0J~~BRMxm@)KSE#Ab%%_{eZ1;UpPRB&d>DF^!R zD*NW8m@Y;X5vMK}--o@_DnMd5lrp>)r-X~F7wP|O75MQ~%i)eeaxtARQCv+8{wA<% zqRI87;#+7s&edOQ|3B_efGneF?~#E*YcOV%t&{-(yYS2bYo9uRAH5y9xOW8veT%eA zo^IMGek33nxxjTYhu_WASJNJsR{*Fz8-P+cG$Xt5Q3;@mMtB0CTnBq=71bY?({&5g zyB3SUsxswpvd~dUH=7=dXtMEYc4-=+t!9=TqI}mHz-iXtdjV*pQo7t_T?Q2^P5ZBj zfX`E{_2rs#6(CwWY#TRrfUHhhQud^nOtIx3{!6=rqHc-jB=J=dgio;5Fc;~V&%R4z z5C2)II9EYSlrX{&brw&wl#6VB9%!&!Tu8W|wof4^>;1#*I)x#^*4UP6$&8yoS}HUb zH%$$zV+xhp)ezRBpH|4M+oniO%blWD}x}l5+Ya+JTKjwC!n+8IN(#k}kpl@&3Lf zxALAaT#G&WtZa(yff0_9D~oRdCTBy)EnNejKYADY%y@KyG`XD_^QS(P<|qWl!@1wr z#Y7(;xL6}9K@_##v!FDQOz^N|e%aLj_28_x;8D6$M%vRroZYxN^Hig)uoexz^cu>& zk4J(I7T(7einvWn6U~K?Zf`X3ZOlzq^u%c@Q2*}+@&MD%7<3-L>M*X`h|zmTF2Hbu zC>uGr?J5JyiZ~P`Lm{O|9NO5EaQZW^YWmj|+(g|_e>#wY^=-{Tu=DOV__tAEA0i6r zTJ5U0rzd!@^LKhfyJs_?6(QksR{*EGPQyi2`A-@UUoevkOWQ~^sWasW9 z%IX`SA60oAFVEr(0E3bM&yMh~-{Voq@DW6dt&0FDZ))$+6vS4 z%J|6Rj^)kHSzkT$??ZHo29F3AOsw>%KH<>o_|^T>lx2mJ(e@u^=h4rQITYtdage&g zWz&H`UFSVXeVU%n_6pxUDsYRZfLBW8Vjj-a98i_g> z(`+oR41ppp(uB95yMD`eHhr#xuzH2&TPhZ?0p6vk~@e$ zlomE0Z`Fm)0)p1gmN!e0yC!C^i!_15DtN5?#TheA>36M8Jpo53QnWex+KA#8b;mSlFZhi8WgiG58zx8)hPi%bj7<(e9# zm`}F#P%{3^L-8jxXXCt&R+zmYmvO;1$c*Csjb)li?#ZCQ85@S7CZ12Su$Sab#L`;7WF}_BM<72k{%ayYC(lGBNVeJ|D!*v2LgC*1 zb;L~efa9CTsLg`gX4Ep!r>!VOv2%Gmiz$*X%4UuxbW{(uf3jRwdhz?=>aeKyYM;Zd zrXEPD(pBHCx+c&m#@G8y^MP)FNBl_7(JCYi-Fu7Vo8MS06@mP27F2gQT5eM3tr5}i zP`9n);3$#hy2Lj-W?xAh}2CLsg z5u#Bd2XaG19lzdYp0s_D0fnCJ^(jM~9k(%f&0{&bxa3J|tLc@-PaTVtoFOniIZ^`d z>hINThC^i(QeLs>0#}7ZYd!RN$8Rr2S( z_dr+$6}CzK($@h&Att}Bnu&bJ6Whp3PU9rAs+A$=`%Hruxt{Nb!2IBMq|YPJ4`r{> zsO}vuT4di%$;X;}zoagTA}SxSXgXb0)l3mzq}d-XSuwgaD~0cO+V+0QyIJA!gr0LN z8>d|z%@HSxka^X^yqX%_{KBs63HoVL&GR9SHNU7Ddl7dMOK}At;_7iBH8F`tHDe;2 zpaU@K2zuN=L=Pw6qzH-aspczOdyU$5 zRK4)G{HmF*n}Zo8xupj|Ws@(i;3Sp_!lLXw13Z5d0CPC^7|3tB0CNjRW-}1yJs{n{ zwi(Z9>4{yHjhgoUouDKz03-);kAePgTs6N%Uyn-kCu86bIN0M+H)BxJT9Z-&(fe#C z%5{x;-A|A`CNjt2iI>wbleAZoLS4BP0;UF!SU>5up7P1q(oR|k(g>1LYWt2Id#L_x zZR*ubmO?)+#Vziyl)ixy(~+Av^%9xY16VGdDMOc(7*3@O&trqXCz2*SKpDt}cIOM{vk`%~@%;wf>nM15KKA^0Dpj1H=`mDA(%&NbnzDynP7L z#sm%(mU%E?a%mmgL*#A$?n#Oye!pkm*BCiFAHWD{z)MG4k@IhUiH*MbN{6hr>_CT3 zu|5&6Ry2d`Ec{Z(G(Ln>h$X6&n9-8VpJmh-ixWF-9V1(v(cfX z+gl7ip@moE{?Qnu3bui`>ONCuqoGVFpgODU%rsHbT8+;AoLvu-t&Rr7?gSe7^qr?3S5du2kvUz!XP5m{j32wVBZ4}PB*@zYS>x?>U zYWVPIh3$_UrbB+boDhX_btwNWj+0ZTx_o=cg(Y9pyXut)(vhVCCq?zTc3#ek_=*Ez zEnA{0F6tFN+yyv}y|Iox3j>q2zj5579Z2;a$B7h|Dm8~-uVp*8ko1RcLvyB@pTV3H z8@-7iD_umtQTP19y_ZYn{0y&1KooiJvr+pGv^XRTtWjyPETZL~-&f1nPz;jNE`>Rm*+cUWd z?#Z*hH&KibD4RyS0dWvgpdWj{G{Db39F|3n1CosChl^_0ZxS1I5A+wlynJ7(rt!BG zyOkpN;d?4*?0CV;yJ)kZ>voJ;H$D4oT{HB&XM})9j}Q33MuEwBc478|xeEUiT;@Wt zkGr*SYfhQh`(JS4ochCqMrc{WIS_8HXZ+-?f<#8f-zM^Xb2JW7R8kWCTNs9|;9Fv( zcTys?TJL+QM>v5CDp>YqF-m4!=N}KJd7qHN?K~T&gK61&a-C%$1jrnGxKBLR2`uiX ztbx>t4Nw#Qm|v@xGHGxBHI`07CtcVxx%-g06p`nRnKTFCJ1pmL>#6u8ic8mce5#;c zDb7fc_g62U`u&@ud0bC^D0q>(L^utrjAy-K9yb(_?9N zjKmI4qtmzBLX}phC$2R#OHy1C8yO<&VkO#*?FcOeWVfl~2@3Aa3G^TF83$>Lqax*9~LsWZ6jv+Y&iY)@Z zTps7T*Jfrn@#5oiA{z_?qe5}-JiXsbBq!5FkouE@(Y0jcv_|>qR8aU|dM!yy(WDx~ z)CNd;)j|h$_8x7w%E`+u_xN)FREH%7g zx>{AJMQu{ALmk9mvZ8@7Z|NY@!uzTA%2NBm=(rgT$ul82j@xVYUb1F8RQ{o)rqfc% zzhVS>)yUo@ykWC48&$D}@1y2$(Iw95Icw!GdYn2_G%W{e`k(WC2##Do;NW<{%9VoO!`#7KV+o%xXDMEYk1s?*z1=H7z9}4Ct#G^!#m!zE1I|< z<`&9R#%+CzjWfS?*R>Y$U$%P%%4tzFq#mpk)U|?#&!zeJOJEZ#>yM875&fahWmiu} zz>l1}0qHA)N^7~0oP=!r?MKG@eJbN^OZ#y=hQOFgdKjzZoXk{8kaYuLThJgP1+`Pb zXW=swcJHXGMTHNqnXUvJ&I7gk_Ju%B=$W1{Xb& z+4dqTAyMP52m2TcS)w(1wniAh4L>Y4Ma(T$+U+d5Fh-oLhf%e7l;+CfJD*t5*Qc%D zXb0wnq_KNN1{(H-F|jsZaM-ek-@6@9+)-k0z4Gq2@+$m1t^m0x%uqs-3a*aPYpsXA zkuLonu|d&kh>9xRaA!K>$ev5)LABa2~I`;nI7#Ni~@XsbvP{XY9@ z_NbCpJsx=%UPY#)kPqT3p-{vwO?P2Vnt}Vw>d#zG=Cs@^)G|WN3$ZG+>TJ?}rn6cf z2W~U;h&G1Qyme0`C4&We5mu?ui2+Jzwm}UpbthwZJLDSa$541e57<+ zgYqs_OPJ**zVxDW;01-eCst~)YSU=(FY=Gb`Y*8EMw8CYUqJWug)CojTi3O)b$_#iiM6(la>0UXCt(Hc^sPNP9SKhd}~E@ z86bjn#TNMagch<#YAjIdV5)Dte!j06yw^Z^DtjorP5mkn{nH=$cjz8^Q(12#KK
>2Al(JRV0r1~MPse@2)msOV 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